pax_global_header00006660000000000000000000000064151212064370014513gustar00rootroot0000000000000052 comment=90eaeede39857c0fec9eedb84c66963bc722bdb5 xfel-1.3.5/000077500000000000000000000000001512120643700124575ustar00rootroot00000000000000xfel-1.3.5/.gitignore000066400000000000000000000001471512120643700144510ustar00rootroot00000000000000# # Normal rules # *.d *.o *.map *.exe *~ # # Generated files # /.cproject /.project /.settings /xfel xfel-1.3.5/99-xfel.rules000066400000000000000000000005401512120643700147270ustar00rootroot00000000000000# Copy this file to /etc/udev/rules.d/ or /usr/lib/udev/rules.d/ # If rules fail to reload automatically, you can refresh udev rules # with the command "sudo udevadm control --reload" ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="1f3a", ATTRS{idProduct}=="efe8", MODE="666", GROUP="users" TEST=="power/autosuspend", ATTR{power/autosuspend}="-1" xfel-1.3.5/LICENSE000066400000000000000000000021031512120643700134600ustar00rootroot00000000000000MIT License Copyright(c) 2007-2022 Jianjun Jiang <8192542@qq.com> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. xfel-1.3.5/Makefile000066400000000000000000000037061512120643700141250ustar00rootroot00000000000000# # Top makefile # CROSS ?= AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump RM := rm -fr ASFLAGS := -g -ggdb -Wall -O3 CFLAGS := -g -ggdb -Wall -O3 CXXFLAGS := -g -ggdb -Wall -O3 LDFLAGS := ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := LIBDIRS := LIBS := `pkg-config --libs libusb-1.0` INCDIRS := -I . `pkg-config --cflags libusb-1.0` SRCDIRS := . chips SFILES := $(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.S)) CFILES := $(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.c)) CPPFILES := $(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.cpp)) SDEPS := $(patsubst %, %, $(SFILES:.S=.o.d)) CDEPS := $(patsubst %, %, $(CFILES:.c=.o.d)) CPPDEPS := $(patsubst %, %, $(CPPFILES:.cpp=.o.d)) DEPS := $(SDEPS) $(CDEPS) $(CPPDEPS) SOBJS := $(patsubst %, %, $(SFILES:.S=.o)) COBJS := $(patsubst %, %, $(CFILES:.c=.o)) CPPOBJS := $(patsubst %, %, $(CPPFILES:.cpp=.o)) OBJS := $(SOBJS) $(COBJS) $(CPPOBJS) OBJDIRS := $(patsubst %, %, $(SRCDIRS)) NAME := xfel VPATH := $(OBJDIRS) .PHONY: all install clean all : $(NAME) $(NAME) : $(OBJS) @echo [LD] Linking $@ @$(CC) $(LDFLAGS) $(LIBDIRS) $^ -o $@ $(LIBS) $(SOBJS) : %.o : %.S @echo [AS] $< @$(AS) $(ASFLAGS) -MD -MP -MF $@.d $(INCDIRS) -c $< -o $@ $(COBJS) : %.o : %.c @echo [CC] $< @$(CC) $(CFLAGS) -MD -MP -MF $@.d $(INCDIRS) -c $< -o $@ $(CPPOBJS) : %.o : %.cpp @echo [CXX] $< @$(CXX) $(CXXFLAGS) -MD -MP -MF $@.d $(INCDIRS) -c $< -o $@ install: install -Dm0755 xfel /usr/local/bin/xfel install -Dm0644 99-xfel.rules /etc/udev/rules.d/99-xfel.rules install -Dm0644 LICENSE /usr/share/licenses/xfel/LICENSE uninstall: rm -f /usr/local/bin/xfel rm -f /etc/udev/rules.d/99-xfel.rules rm -f /usr/share/licenses/xfel/LICENSE clean: @$(RM) $(DEPS) $(OBJS) $(NAME).exe $(NAME) *~ xfel-1.3.5/Makefile.win000066400000000000000000000033031512120643700147120ustar00rootroot00000000000000# # Top makefile # CROSS ?= x86_64-w64-mingw32- AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump RM := rm -fr ASFLAGS := -g -ggdb -Wall -O3 CFLAGS := -g -ggdb -Wall -O3 CXXFLAGS := -g -ggdb -Wall -O3 LDFLAGS := ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := LIBDIRS := LIBS := -L/usr/x86_64-w64-mingw32/lib -lusb-1.0 INCDIRS := -I . -I /usr/x86_64-w64-mingw32/include/libusb-1.0 SRCDIRS := . chips SFILES := $(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.S)) CFILES := $(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.c)) CPPFILES := $(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.cpp)) SDEPS := $(patsubst %, %, $(SFILES:.S=.o.d)) CDEPS := $(patsubst %, %, $(CFILES:.c=.o.d)) CPPDEPS := $(patsubst %, %, $(CPPFILES:.cpp=.o.d)) DEPS := $(SDEPS) $(CDEPS) $(CPPDEPS) SOBJS := $(patsubst %, %, $(SFILES:.S=.o)) COBJS := $(patsubst %, %, $(CFILES:.c=.o)) CPPOBJS := $(patsubst %, %, $(CPPFILES:.cpp=.o)) OBJS := $(SOBJS) $(COBJS) $(CPPOBJS) OBJDIRS := $(patsubst %, %, $(SRCDIRS)) NAME := xfel VPATH := $(OBJDIRS) .PHONY: all clean all : $(NAME) $(NAME) : $(OBJS) @echo [LD] Linking $@ @$(CC) $(LDFLAGS) $(LIBDIRS) $^ -o $@ $(LIBS) -static $(SOBJS) : %.o : %.S @echo [AS] $< @$(AS) $(ASFLAGS) -MD -MP -MF $@.d $(INCDIRS) -c $< -o $@ $(COBJS) : %.o : %.c @echo [CC] $< @$(CC) $(CFLAGS) -MD -MP -MF $@.d $(INCDIRS) -c $< -o $@ $(CPPOBJS) : %.o : %.cpp @echo [CXX] $< @$(CXX) $(CXXFLAGS) -MD -MP -MF $@.d $(INCDIRS) -c $< -o $@ clean: @$(RM) $(DEPS) $(OBJS) $(NAME).exe $(NAME) *~ xfel-1.3.5/README.md000066400000000000000000000066771512120643700137560ustar00rootroot00000000000000 *** # XFEL Tiny FEL tools for allwinner SOC. [Documentation](https://xboot.github.io/xfel) — [Support Lists](https://xboot.github.io/xfel#/?id=support-lists) — [Examples](https://xboot.github.io/xfel#/?id=examples) — [Releases](https://github.com/xboot/xfel/releases/) ## Usage ```shell usage: xfel version - Show chip version xfel hexdump
- Dumps memory region in hex xfel dump
- Binary memory dump to stdout xfel read32
- Read 32-bits value from device memory xfel write32
- Write 32-bits value to device memory xfel read
- Read memory to file xfel write
- Write file to memory xfel exec
- Call function address xfel reset - Reset device using watchdog xfel sid - Show sid information xfel jtag - Enable jtag debug xfel ddr [type] - Initial ddr controller with optional type xfel sign - Generate ecdsa256 signature file for sha256 of sid xfel spinor - Detect spi nor flash xfel spinor erase
- Erase spi nor flash xfel spinor read
- Read spi nor flash to file xfel spinor write
- Write file to spi nor flash xfel spinand - Detect spi nand flash xfel spinand erase
- Erase spi nand flash xfel spinand read
- Read spi nand flash to file xfel spinand write
- Write file to spi nand flash xfel spinand splwrite
- Write file to spi nand flash with split support xfel extra [...] - The extra commands ``` ## Links * [The chinese discussion posts](https://whycan.com/t_6546.html) * [The linux-sunxi community](http://sunxi.org/) ## License MIT License Copyright(c) 2007-2022 Jianjun Jiang <8192542@qq.com> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. xfel-1.3.5/chips/000077500000000000000000000000001512120643700135655ustar00rootroot00000000000000xfel-1.3.5/chips/a10.c000066400000000000000000000016471512120643700143220ustar00rootroot00000000000000#include static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00162300) return 1; return 0; } static int chip_reset(struct xfel_ctx_t * ctx) { return 0; } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { return 0; } static int chip_jtag(struct xfel_ctx_t * ctx) { return 0; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { return 0; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { return 0; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { return 0; } static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { return 0; } struct chip_t a10 = { .name = "A10", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/chips/a13_a10s_r8.c000066400000000000000000000016671512120643700155640ustar00rootroot00000000000000#include static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00162500) return 1; return 0; } static int chip_reset(struct xfel_ctx_t * ctx) { return 0; } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { return 0; } static int chip_jtag(struct xfel_ctx_t * ctx) { return 0; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { return 0; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { return 0; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { return 0; } static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { return 0; } struct chip_t a13_a10s_r8 = { .name = "A13/A10S/R8", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/chips/a20.c000066400000000000000000000016471512120643700143230ustar00rootroot00000000000000#include static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00165100) return 1; return 0; } static int chip_reset(struct xfel_ctx_t * ctx) { return 0; } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { return 0; } static int chip_jtag(struct xfel_ctx_t * ctx) { return 0; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { return 0; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { return 0; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { return 0; } static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { return 0; } struct chip_t a20 = { .name = "A20", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/chips/a23.c000066400000000000000000000016471512120643700143260ustar00rootroot00000000000000#include static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00165000) return 1; return 0; } static int chip_reset(struct xfel_ctx_t * ctx) { return 0; } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { return 0; } static int chip_jtag(struct xfel_ctx_t * ctx) { return 0; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { return 0; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { return 0; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { return 0; } static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { return 0; } struct chip_t a23 = { .name = "A23", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/chips/a31.c000066400000000000000000000016471512120643700143250ustar00rootroot00000000000000#include static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00163300) return 1; return 0; } static int chip_reset(struct xfel_ctx_t * ctx) { return 0; } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { return 0; } static int chip_jtag(struct xfel_ctx_t * ctx) { return 0; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { return 0; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { return 0; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { return 0; } static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { return 0; } struct chip_t a31 = { .name = "A31", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/chips/a33_r16.c000066400000000000000000000016571512120643700150200ustar00rootroot00000000000000#include static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00166700) return 1; return 0; } static int chip_reset(struct xfel_ctx_t * ctx) { return 0; } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { return 0; } static int chip_jtag(struct xfel_ctx_t * ctx) { return 0; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { return 0; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { return 0; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { return 0; } static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { return 0; } struct chip_t a33_r16 = { .name = "A33/R16", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/chips/a40i_r40.c000066400000000000000000003140311512120643700151550ustar00rootroot00000000000000#include struct ddr3_param_t { uint32_t dram_clk; uint32_t dram_type; uint32_t dram_zq; uint32_t dram_odt_en; uint32_t dram_para1; uint32_t dram_para2; uint32_t dram_mr0; uint32_t dram_mr1; uint32_t dram_mr2; uint32_t dram_mr3; uint32_t dram_tpr0; uint32_t dram_tpr1; uint32_t dram_tpr2; uint32_t dram_tpr3; uint32_t dram_tpr4; uint32_t dram_tpr5; uint32_t dram_tpr6; uint32_t dram_tpr7; uint32_t dram_tpr8; uint32_t dram_tpr9; uint32_t dram_tpr10; uint32_t dram_tpr11; uint32_t dram_tpr12; uint32_t dram_tpr13; uint32_t reserve[8]; }; static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00170100) return 1; return 0; } static uint32_t payload_read32(struct xfel_ctx_t * ctx, uint32_t addr) { static const uint8_t payload[] = { 0x00, 0x00, 0xa0, 0xe3, 0x17, 0x0f, 0x08, 0xee, 0x15, 0x0f, 0x07, 0xee, 0xd5, 0x0f, 0x07, 0xee, 0x9a, 0x0f, 0x07, 0xee, 0x95, 0x0f, 0x07, 0xee, 0xff, 0xff, 0xff, 0xea, 0x0c, 0x00, 0x9f, 0xe5, 0x0c, 0x10, 0x8f, 0xe2, 0x00, 0x20, 0x90, 0xe5, 0x00, 0x20, 0x81, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, }; uint32_t adr = cpu_to_le32(addr); uint32_t val; fel_write(ctx, ctx->version.scratchpad, (void *)payload, sizeof(payload)); fel_write(ctx, ctx->version.scratchpad + sizeof(payload), (void *)&adr, sizeof(adr)); fel_exec(ctx, ctx->version.scratchpad); fel_read(ctx, ctx->version.scratchpad + sizeof(payload) + sizeof(adr), (void *)&val, sizeof(val)); return le32_to_cpu(val); } static void payload_write32(struct xfel_ctx_t * ctx, uint32_t addr, uint32_t val) { static const uint8_t payload[] = { 0x00, 0x00, 0xa0, 0xe3, 0x17, 0x0f, 0x08, 0xee, 0x15, 0x0f, 0x07, 0xee, 0xd5, 0x0f, 0x07, 0xee, 0x9a, 0x0f, 0x07, 0xee, 0x95, 0x0f, 0x07, 0xee, 0xff, 0xff, 0xff, 0xea, 0x08, 0x00, 0x9f, 0xe5, 0x08, 0x10, 0x9f, 0xe5, 0x00, 0x10, 0x80, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, }; uint32_t params[2] = { cpu_to_le32(addr), cpu_to_le32(val), }; fel_write(ctx, ctx->version.scratchpad, (void *)payload, sizeof(payload)); fel_write(ctx, ctx->version.scratchpad + sizeof(payload), (void *)params, sizeof(params)); fel_exec(ctx, ctx->version.scratchpad); } static int chip_reset(struct xfel_ctx_t * ctx) { uint32_t val; val = payload_read32(ctx, 0x01c20c00 + 0x94); val &= ~(0xf << 3); val |= (1 << 3) | (0x1 << 1) | (0x1 << 0); payload_write32(ctx, 0x01c20c00 + 0x94, val); payload_write32(ctx, 0x01c20c00 + 0x90, (0xa57 << 1) | (1 << 0)); return 1; } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { uint32_t id[4]; id[0] = payload_read32(ctx, 0x01c1b200 + 0x0); id[1] = payload_read32(ctx, 0x01c1b200 + 0x4); id[2] = payload_read32(ctx, 0x01c1b200 + 0x8); id[3] = payload_read32(ctx, 0x01c1b200 + 0xc); sprintf(sid, "%08x%08x%08x%08x", id[0], id[1], id[2], id[3]); return 1; } static int chip_jtag(struct xfel_ctx_t * ctx) { return 0; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { static const uint8_t ddr3_payload[] = { 0xbc, 0x00, 0x00, 0xea, 0x65, 0x47, 0x4f, 0x4e, 0x2e, 0x42, 0x54, 0x30, 0x7c, 0xa5, 0xb4, 0xee, 0x00, 0x3e, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x31, 0x31, 0x30, 0x30, 0x10, 0x72, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x2e, 0x30, 0x2e, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x02, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf9, 0x3b, 0x3b, 0x00, 0x01, 0x00, 0x00, 0x00, 0xe4, 0x10, 0xe4, 0x10, 0x00, 0x00, 0x00, 0x00, 0x40, 0x18, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x92, 0xa1, 0x48, 0x00, 0x4b, 0xa9, 0xb1, 0x01, 0x43, 0x10, 0x06, 0x00, 0x96, 0x78, 0x78, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0xe0, 0xa1, 0x08, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x33, 0x77, 0x77, 0x00, 0x00, 0xd0, 0x29, 0x09, 0x0c, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x16, 0x02, 0x01, 0xff, 0xff, 0x00, 0x00, 0x02, 0x17, 0x02, 0x01, 0xff, 0xff, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x0e, 0x03, 0xff, 0xff, 0xff, 0x00, 0x00, 0x02, 0x0f, 0x03, 0xff, 0xff, 0xff, 0x00, 0x00, 0x02, 0x10, 0x03, 0xff, 0xff, 0xff, 0x00, 0x00, 0x02, 0x11, 0x03, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x02, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x03, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x04, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x05, 0x02, 0x01, 0x02, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0xff, 0xff, 0xff, 0xea, 0x00, 0x40, 0x2d, 0xe9, 0x02, 0x00, 0x00, 0xeb, 0x76, 0x0d, 0x00, 0xfa, 0x00, 0x40, 0xbd, 0xe8, 0x0e, 0xf0, 0xa0, 0xe1, 0x18, 0x00, 0x9f, 0xe5, 0x18, 0x10, 0x9f, 0xe5, 0x00, 0x20, 0xa0, 0xe3, 0x00, 0x20, 0x80, 0xe5, 0x04, 0x00, 0x80, 0xe2, 0x01, 0x00, 0x50, 0xe1, 0xfb, 0xff, 0xff, 0x1a, 0x0e, 0xf0, 0xa0, 0xe1, 0xe8, 0xbd, 0x00, 0x00, 0xec, 0xbd, 0x00, 0x00, 0xf0, 0xb5, 0x07, 0x46, 0x12, 0x4e, 0x13, 0x4d, 0x31, 0x68, 0x13, 0x4b, 0x2a, 0x68, 0x88, 0x06, 0x1b, 0x68, 0x03, 0xd5, 0x90, 0x06, 0x01, 0xd5, 0x00, 0x2b, 0x15, 0xdb, 0x41, 0xf0, 0x20, 0x00, 0x0d, 0x4c, 0x30, 0x60, 0x42, 0xf0, 0x20, 0x00, 0x28, 0x60, 0x43, 0xf0, 0x00, 0x40, 0x20, 0x60, 0xdf, 0xf8, 0x2c, 0xc0, 0x09, 0x48, 0x00, 0x68, 0xdc, 0xf8, 0x00, 0xc0, 0xc7, 0xf8, 0x00, 0xc0, 0x31, 0x60, 0x2a, 0x60, 0x23, 0x60, 0xf0, 0xbd, 0x4f, 0xf0, 0xff, 0x30, 0xf0, 0xbd, 0x00, 0xbf, 0x60, 0x00, 0xc2, 0x01, 0xc0, 0x02, 0xc2, 0x01, 0x9c, 0x00, 0xc2, 0x01, 0x04, 0x50, 0xc1, 0x01, 0x00, 0xb2, 0xc1, 0x01, 0x13, 0xb5, 0x00, 0x23, 0x02, 0xa8, 0x40, 0xf8, 0x04, 0x3d, 0xff, 0xf7, 0xc7, 0xff, 0x9d, 0xf8, 0x04, 0x30, 0x00, 0xf0, 0x0f, 0x00, 0x43, 0xea, 0x00, 0x24, 0xb4, 0xf5, 0x41, 0x7f, 0x12, 0xd0, 0x08, 0xdc, 0x40, 0xf2, 0x01, 0x13, 0x9c, 0x42, 0x13, 0xd0, 0x40, 0xf2, 0x02, 0x33, 0x9c, 0x42, 0x13, 0xd1, 0x0a, 0xe0, 0xb4, 0xf5, 0x42, 0x7f, 0x09, 0xd0, 0x40, 0xf2, 0x05, 0x53, 0x9c, 0x42, 0x0b, 0xd1, 0x09, 0x48, 0x0a, 0xe0, 0x09, 0x48, 0x08, 0xe0, 0x09, 0x48, 0x06, 0xe0, 0x09, 0x48, 0x04, 0xe0, 0x09, 0x48, 0x02, 0xf0, 0x9e, 0xfc, 0x04, 0xe0, 0x08, 0x48, 0x4f, 0xf0, 0xff, 0x34, 0x02, 0xf0, 0x98, 0xfc, 0x20, 0x46, 0x1c, 0xbd, 0xa1, 0xb9, 0x00, 0x00, 0xac, 0xb9, 0x00, 0x00, 0xb7, 0xb9, 0x00, 0x00, 0xc1, 0xb9, 0x00, 0x00, 0xcb, 0xb9, 0x00, 0x00, 0xd6, 0xb9, 0x00, 0x00, 0x08, 0xb5, 0xff, 0xf7, 0xbd, 0xff, 0xb0, 0xf1, 0xff, 0x3f, 0x0c, 0xbf, 0x4f, 0xf0, 0xff, 0x30, 0x00, 0x20, 0x08, 0xbd, 0x10, 0xb5, 0x04, 0x46, 0xff, 0xf7, 0xf2, 0xff, 0x28, 0xb9, 0x20, 0x46, 0x01, 0x21, 0xbd, 0xe8, 0x10, 0x40, 0x01, 0xf0, 0x5b, 0xbd, 0x00, 0x20, 0x10, 0xbd, 0x00, 0xbf, 0x01, 0xf0, 0xd2, 0xbd, 0x03, 0x68, 0x23, 0xea, 0x01, 0x03, 0x13, 0x43, 0x03, 0x60, 0x70, 0x47, 0x03, 0x4b, 0x4f, 0xf0, 0xff, 0x32, 0x0a, 0x20, 0x1a, 0x60, 0x01, 0xf0, 0xc5, 0xbd, 0x00, 0xbf, 0x94, 0x20, 0xc6, 0x01, 0x02, 0x4b, 0x01, 0x22, 0x0a, 0x20, 0x1a, 0x60, 0x01, 0xf0, 0xbc, 0xbd, 0x94, 0x20, 0xc6, 0x01, 0x79, 0x4b, 0x7a, 0x4a, 0x70, 0xb5, 0x04, 0x46, 0x61, 0x6d, 0xa5, 0x6d, 0x18, 0x68, 0x01, 0xf0, 0x0f, 0x01, 0x09, 0x02, 0x05, 0xf0, 0x0f, 0x05, 0x41, 0xea, 0x45, 0x01, 0x01, 0x43, 0x43, 0xf8, 0x04, 0x1b, 0x93, 0x42, 0xf0, 0xd1, 0x72, 0x4b, 0x72, 0x4a, 0x61, 0x6d, 0xa5, 0x6d, 0x18, 0x68, 0xc1, 0xf3, 0x03, 0x11, 0x09, 0x02, 0xc5, 0xf3, 0x03, 0x15, 0x41, 0xea, 0x45, 0x01, 0x01, 0x43, 0x43, 0xf8, 0x04, 0x1b, 0x93, 0x42, 0xf0, 0xd1, 0x6b, 0x4b, 0x6c, 0x4a, 0xa5, 0x6d, 0x61, 0x6d, 0x18, 0x68, 0xc5, 0xf3, 0x03, 0x25, 0x01, 0xf4, 0x70, 0x61, 0x41, 0xea, 0x45, 0x01, 0x01, 0x43, 0x43, 0xf8, 0x04, 0x1b, 0x93, 0x42, 0xf1, 0xd1, 0x65, 0x4b, 0x66, 0x4a, 0x61, 0x6d, 0xa5, 0x6d, 0x18, 0x68, 0xc1, 0xf3, 0x03, 0x31, 0x09, 0x02, 0xc5, 0xf3, 0x03, 0x35, 0x41, 0xea, 0x45, 0x01, 0x01, 0x43, 0x43, 0xf8, 0x04, 0x1b, 0x93, 0x42, 0xf0, 0xd1, 0x5f, 0x4a, 0x11, 0x68, 0x21, 0xf0, 0x80, 0x61, 0x11, 0x60, 0x55, 0x49, 0xa5, 0x6d, 0x60, 0x6d, 0x0e, 0x68, 0xc5, 0xf3, 0x03, 0x45, 0xc0, 0xf3, 0x03, 0x40, 0x35, 0x43, 0x45, 0xea, 0x40, 0x20, 0x08, 0x60, 0xa5, 0x6d, 0x4e, 0x68, 0x60, 0x6d, 0xc5, 0xf3, 0x03, 0x45, 0x35, 0x43, 0xc0, 0xf3, 0x03, 0x40, 0x45, 0xea, 0x40, 0x20, 0x48, 0x60, 0xa5, 0x6d, 0xd1, 0xf8, 0x80, 0x60, 0x60, 0x6d, 0xc5, 0xf3, 0x03, 0x55, 0x35, 0x43, 0xc0, 0xf3, 0x03, 0x50, 0x45, 0xea, 0x40, 0x20, 0xc1, 0xf8, 0x80, 0x00, 0xa5, 0x6d, 0xd1, 0xf8, 0x84, 0x60, 0x60, 0x6d, 0xc5, 0xf3, 0x03, 0x55, 0x35, 0x43, 0xc0, 0xf3, 0x03, 0x50, 0x45, 0xea, 0x40, 0x20, 0xc1, 0xf8, 0x84, 0x00, 0xa5, 0x6d, 0xd1, 0xf8, 0x00, 0x61, 0x60, 0x6d, 0xc5, 0xf3, 0x03, 0x65, 0x35, 0x43, 0xc0, 0xf3, 0x03, 0x60, 0x45, 0xea, 0x40, 0x20, 0xc1, 0xf8, 0x00, 0x01, 0xa5, 0x6d, 0xd1, 0xf8, 0x04, 0x61, 0x60, 0x6d, 0xc5, 0xf3, 0x03, 0x65, 0x35, 0x43, 0xc0, 0xf3, 0x03, 0x60, 0x45, 0xea, 0x40, 0x20, 0xc1, 0xf8, 0x04, 0x01, 0x19, 0x68, 0xa0, 0x6d, 0x41, 0xea, 0x10, 0x70, 0x61, 0x6d, 0x09, 0x0f, 0x40, 0xea, 0x41, 0x21, 0x19, 0x60, 0x33, 0x4b, 0xa0, 0x6d, 0x19, 0x68, 0x41, 0xea, 0x10, 0x70, 0x61, 0x6d, 0x09, 0x0f, 0x40, 0xea, 0x41, 0x21, 0x19, 0x60, 0xa3, 0xf5, 0xbe, 0x73, 0x18, 0x68, 0x61, 0x6d, 0xc1, 0xf3, 0x03, 0x41, 0x40, 0xea, 0x41, 0x61, 0x19, 0x60, 0xd3, 0xf8, 0x80, 0x00, 0x61, 0x6d, 0xc1, 0xf3, 0x03, 0x51, 0x40, 0xea, 0x41, 0x61, 0xc3, 0xf8, 0x80, 0x10, 0xd3, 0xf8, 0x00, 0x01, 0x61, 0x6d, 0xc1, 0xf3, 0x03, 0x61, 0x40, 0xea, 0x41, 0x61, 0xc3, 0xf8, 0x00, 0x11, 0x61, 0x6d, 0xd3, 0xf8, 0x80, 0x01, 0x09, 0x0f, 0x40, 0xea, 0x41, 0x61, 0x01, 0x20, 0xc3, 0xf8, 0x80, 0x11, 0x13, 0x68, 0x43, 0xf0, 0x80, 0x63, 0x13, 0x60, 0x01, 0xf0, 0xe8, 0xfc, 0x1a, 0x4b, 0x1b, 0x4a, 0x18, 0x68, 0x21, 0x6d, 0xc1, 0xf3, 0x03, 0x11, 0x40, 0xea, 0x01, 0x21, 0x43, 0xf8, 0x04, 0x1b, 0x93, 0x42, 0xf5, 0xd1, 0x16, 0x4b, 0x22, 0x6d, 0x19, 0x68, 0x02, 0xf0, 0x0f, 0x02, 0x41, 0xea, 0x02, 0x22, 0x1a, 0x60, 0x22, 0x6d, 0x59, 0x68, 0x02, 0xf4, 0x70, 0x62, 0x0a, 0x43, 0x5a, 0x60, 0x99, 0x6e, 0x22, 0x6d, 0xc2, 0xf3, 0x03, 0x32, 0x41, 0xea, 0x02, 0x22, 0x9a, 0x66, 0x70, 0xbd, 0x10, 0x33, 0xc6, 0x01, 0x34, 0x33, 0xc6, 0x01, 0x90, 0x33, 0xc6, 0x01, 0xb4, 0x33, 0xc6, 0x01, 0x10, 0x34, 0xc6, 0x01, 0x34, 0x34, 0xc6, 0x01, 0x90, 0x34, 0xc6, 0x01, 0xb4, 0x34, 0xc6, 0x01, 0x00, 0x31, 0xc6, 0x01, 0xb8, 0x34, 0xc6, 0x01, 0x40, 0x32, 0xc6, 0x01, 0x68, 0x32, 0xc6, 0x01, 0x18, 0x32, 0xc6, 0x01, 0x43, 0x68, 0x10, 0xb5, 0x02, 0x3b, 0x05, 0x2b, 0x18, 0xd8, 0xdf, 0xe8, 0x03, 0xf0, 0x03, 0x06, 0x17, 0x17, 0x09, 0x0c, 0x90, 0xf8, 0x37, 0x30, 0x07, 0xe0, 0x90, 0xf8, 0x34, 0x30, 0x04, 0xe0, 0x90, 0xf8, 0x36, 0x30, 0x01, 0xe0, 0x90, 0xf8, 0x35, 0x30, 0x0a, 0x24, 0x5c, 0x43, 0x20, 0x46, 0x02, 0xf0, 0xbc, 0xf9, 0x18, 0xb1, 0x03, 0x48, 0x02, 0xf0, 0x2c, 0xfb, 0x00, 0x24, 0x20, 0x46, 0x10, 0xbd, 0x00, 0xbf, 0xe9, 0xb9, 0x00, 0x00, 0x23, 0x4b, 0x40, 0xf2, 0x8f, 0x12, 0x23, 0x49, 0x23, 0x48, 0x1a, 0x60, 0x4f, 0xf4, 0x80, 0x32, 0xc3, 0xf8, 0x84, 0x20, 0x01, 0x22, 0xc3, 0xf8, 0x8c, 0x20, 0x20, 0x4a, 0x5a, 0x60, 0x20, 0x4a, 0x99, 0x60, 0xda, 0x60, 0x1f, 0x4a, 0x1a, 0x61, 0x1f, 0x4a, 0x5a, 0x61, 0x98, 0x61, 0x1f, 0x4b, 0x1f, 0x48, 0x03, 0x60, 0x41, 0x60, 0x1f, 0x49, 0x1f, 0x48, 0x08, 0x60, 0x1f, 0x48, 0x48, 0x60, 0x80, 0x20, 0x8b, 0x60, 0xc8, 0x60, 0x0b, 0x61, 0x1d, 0x4b, 0x1e, 0x48, 0x4b, 0x61, 0x1e, 0x49, 0x01, 0x60, 0x43, 0x60, 0x81, 0x60, 0x1d, 0x49, 0x0b, 0x60, 0x1d, 0x4b, 0x1d, 0x49, 0x19, 0x60, 0x1d, 0x49, 0x59, 0x60, 0x1d, 0x49, 0x99, 0x60, 0x30, 0x21, 0xd9, 0x60, 0x1c, 0x49, 0x19, 0x61, 0x4f, 0xf4, 0x80, 0x71, 0x59, 0x61, 0x9a, 0x61, 0x1a, 0x4a, 0xda, 0x61, 0x1a, 0x4a, 0x1a, 0x62, 0x1a, 0x4a, 0x5a, 0x62, 0x1a, 0x4a, 0x9a, 0x62, 0x1a, 0x4a, 0xda, 0x62, 0x70, 0x47, 0x00, 0xbf, 0x0c, 0x20, 0xc6, 0x01, 0x64, 0x00, 0x50, 0x00, 0x00, 0x01, 0x60, 0x00, 0x0d, 0x00, 0xa0, 0x00, 0x09, 0x00, 0x00, 0x06, 0x78, 0x05, 0x00, 0x01, 0x0d, 0x00, 0x00, 0x02, 0x09, 0x00, 0x00, 0x01, 0x28, 0x20, 0xc6, 0x01, 0x30, 0x20, 0xc6, 0x01, 0x09, 0x00, 0x00, 0x07, 0x40, 0x06, 0x00, 0x01, 0x80, 0x00, 0x40, 0x00, 0x48, 0x20, 0xc6, 0x01, 0x0d, 0x00, 0x00, 0x01, 0x54, 0x20, 0xc6, 0x01, 0x58, 0x20, 0xc6, 0x01, 0x09, 0x00, 0x00, 0x04, 0x00, 0x01, 0x40, 0x00, 0x09, 0x00, 0x80, 0x00, 0x09, 0x00, 0x80, 0x01, 0x80, 0x01, 0x00, 0x01, 0x0d, 0x02, 0x00, 0x20, 0x00, 0x18, 0x00, 0x04, 0x09, 0x00, 0x00, 0x05, 0x90, 0x00, 0x40, 0x00, 0x38, 0xb5, 0x00, 0xfb, 0x01, 0xf4, 0x4f, 0xf4, 0x7a, 0x71, 0x20, 0x46, 0x02, 0xf0, 0x10, 0xff, 0x0d, 0x1c, 0x20, 0x46, 0x18, 0xbf, 0x01, 0x25, 0x4f, 0xf4, 0x7a, 0x71, 0x02, 0xf0, 0xda, 0xfd, 0x28, 0x18, 0x38, 0xbd, 0x2d, 0xe9, 0xf0, 0x4f, 0x99, 0xb0, 0x06, 0x68, 0x05, 0x46, 0xc3, 0x6d, 0x42, 0x68, 0x74, 0x08, 0x9b, 0x07, 0x01, 0x92, 0x25, 0xd5, 0x87, 0x6a, 0xc7, 0xf3, 0x42, 0x53, 0xc7, 0xf3, 0xc5, 0x32, 0x17, 0x93, 0xc7, 0xf3, 0xc3, 0x23, 0x02, 0x93, 0xc7, 0xf3, 0x84, 0x1b, 0xc3, 0x6a, 0x07, 0xf0, 0x3f, 0x07, 0x04, 0x92, 0x03, 0x97, 0xc3, 0xf3, 0xc4, 0x32, 0xc3, 0xf3, 0xc4, 0x57, 0xc3, 0xf3, 0x02, 0x58, 0xc3, 0xf3, 0xc3, 0x29, 0xc3, 0xf3, 0x84, 0x1a, 0x03, 0xf0, 0x3f, 0x03, 0x05, 0x93, 0x03, 0x6b, 0x16, 0x92, 0xc3, 0xf3, 0x08, 0x32, 0x1b, 0x05, 0x07, 0x92, 0x1b, 0x0d, 0x06, 0x93, 0x3f, 0xe1, 0x01, 0x9b, 0x03, 0x2b, 0x39, 0xd1, 0x21, 0x46, 0x32, 0x20, 0xff, 0xf7, 0xb6, 0xff, 0x21, 0x46, 0x04, 0x90, 0x0a, 0x20, 0xff, 0xf7, 0xb1, 0xff, 0x01, 0x28, 0x98, 0xbf, 0x02, 0x20, 0x21, 0x46, 0x02, 0x90, 0x0f, 0x20, 0xff, 0xf7, 0xa9, 0xff, 0x21, 0x46, 0x83, 0x46, 0x35, 0x20, 0xbb, 0xf1, 0x02, 0x0f, 0x2c, 0xbf, 0xd9, 0x46, 0x4f, 0xf0, 0x02, 0x09, 0xff, 0xf7, 0x9e, 0xff, 0x21, 0x46, 0x03, 0x90, 0x08, 0x20, 0xda, 0x46, 0xff, 0xf7, 0x98, 0xff, 0x21, 0x46, 0x01, 0x28, 0x8c, 0xbf, 0x07, 0x46, 0x02, 0x27, 0x26, 0x20, 0xb8, 0x46, 0xff, 0xf7, 0x8f, 0xff, 0x21, 0x46, 0x05, 0x90, 0x41, 0xf6, 0x78, 0x60, 0xff, 0xf7, 0x89, 0xff, 0x40, 0x09, 0x21, 0x46, 0x06, 0x90, 0x4f, 0xf4, 0xaf, 0x70, 0xff, 0xf7, 0x82, 0xff, 0x07, 0x90, 0xe0, 0xe0, 0x01, 0x9a, 0x02, 0x2a, 0x32, 0xd1, 0x21, 0x46, 0x32, 0x20, 0xff, 0xf7, 0x79, 0xff, 0x21, 0x46, 0x04, 0x90, 0x0a, 0x20, 0xff, 0xf7, 0x74, 0xff, 0x21, 0x46, 0x02, 0x90, 0x14, 0x20, 0xff, 0xf7, 0x6f, 0xff, 0x21, 0x46, 0x83, 0x46, 0x41, 0x20, 0xff, 0xf7, 0x6a, 0xff, 0x21, 0x46, 0x03, 0x90, 0x08, 0x20, 0xff, 0xf7, 0x65, 0xff, 0x21, 0x46, 0x80, 0x46, 0x0f, 0x20, 0xff, 0xf7, 0x60, 0xff, 0x21, 0x46, 0x81, 0x46, 0x2d, 0x20, 0xca, 0x46, 0xff, 0xf7, 0x5a, 0xff, 0x21, 0x46, 0x05, 0x90, 0x41, 0xf6, 0x78, 0x60, 0xff, 0xf7, 0x54, 0xff, 0x40, 0x09, 0x21, 0x46, 0x06, 0x90, 0x4f, 0xf4, 0xa4, 0x70, 0xff, 0xf7, 0x4d, 0xff, 0x01, 0x9f, 0x07, 0x90, 0xaa, 0xe0, 0x01, 0x9b, 0x06, 0x2b, 0x49, 0xd1, 0x21, 0x46, 0x32, 0x20, 0xff, 0xf7, 0x43, 0xff, 0x03, 0x28, 0x98, 0xbf, 0x04, 0x20, 0x21, 0x46, 0x04, 0x90, 0x0a, 0x20, 0xff, 0xf7, 0x3b, 0xff, 0x00, 0x28, 0x08, 0xbf, 0x01, 0x20, 0x21, 0x46, 0x02, 0x90, 0x18, 0x20, 0xff, 0xf7, 0x33, 0xff, 0x21, 0x46, 0x01, 0x28, 0x8c, 0xbf, 0x83, 0x46, 0x4f, 0xf0, 0x02, 0x0b, 0x46, 0x20, 0xff, 0xf7, 0x2a, 0xff, 0x21, 0x46, 0x03, 0x90, 0x08, 0x20, 0xff, 0xf7, 0x25, 0xff, 0x07, 0x46, 0x00, 0x28, 0x00, 0xf0, 0x4b, 0x82, 0x01, 0x28, 0x40, 0xf2, 0x48, 0x82, 0x80, 0x46, 0x21, 0x46, 0x0f, 0x20, 0xff, 0xf7, 0x19, 0xff, 0x21, 0x46, 0x01, 0x28, 0x8c, 0xbf, 0x81, 0x46, 0x4f, 0xf0, 0x02, 0x09, 0x1b, 0x20, 0xff, 0xf7, 0x10, 0xff, 0x21, 0x46, 0x82, 0x46, 0x2a, 0x20, 0xff, 0xf7, 0x0b, 0xff, 0x21, 0x46, 0x05, 0x90, 0x40, 0xf6, 0x3c, 0x70, 0xff, 0xf7, 0x05, 0xff, 0x40, 0x09, 0x21, 0x46, 0x06, 0x90, 0xd2, 0x20, 0xff, 0xf7, 0xff, 0xfe, 0x07, 0x90, 0x5d, 0xe0, 0x01, 0x9a, 0x07, 0x2a, 0x46, 0xd1, 0x21, 0x46, 0x32, 0x20, 0xff, 0xf7, 0xf6, 0xfe, 0x03, 0x28, 0x98, 0xbf, 0x04, 0x20, 0x21, 0x46, 0x04, 0x90, 0x0a, 0x20, 0xff, 0xf7, 0xee, 0xfe, 0x00, 0x28, 0x08, 0xbf, 0x01, 0x20, 0x21, 0x46, 0x02, 0x90, 0x18, 0x20, 0xff, 0xf7, 0xe6, 0xfe, 0x21, 0x46, 0x01, 0x28, 0x8c, 0xbf, 0x83, 0x46, 0x4f, 0xf0, 0x02, 0x0b, 0x46, 0x20, 0xff, 0xf7, 0xdd, 0xfe, 0x21, 0x46, 0x03, 0x90, 0x08, 0x20, 0xff, 0xf7, 0xd8, 0xfe, 0x21, 0x46, 0x01, 0x28, 0x8c, 0xbf, 0x07, 0x46, 0x02, 0x27, 0x0f, 0x20, 0xb8, 0x46, 0xff, 0xf7, 0xcf, 0xfe, 0x21, 0x46, 0x01, 0x28, 0x8c, 0xbf, 0x81, 0x46, 0x4f, 0xf0, 0x02, 0x09, 0x1b, 0x20, 0xff, 0xf7, 0xc6, 0xfe, 0x21, 0x46, 0x82, 0x46, 0x2a, 0x20, 0xff, 0xf7, 0xc1, 0xfe, 0x21, 0x46, 0x05, 0x90, 0x40, 0xf6, 0x3c, 0x70, 0xff, 0xf7, 0xbb, 0xfe, 0x40, 0x09, 0x21, 0x46, 0x06, 0x90, 0xd2, 0x20, 0xff, 0xf7, 0xb5, 0xfe, 0x07, 0x90, 0x13, 0xe0, 0x80, 0x23, 0x4f, 0xf0, 0x06, 0x0a, 0x62, 0x22, 0x07, 0x93, 0x0a, 0x27, 0x0e, 0x23, 0x4f, 0xf0, 0x08, 0x09, 0xd3, 0x46, 0x06, 0x92, 0x4f, 0xf0, 0x03, 0x08, 0x05, 0x93, 0x10, 0x22, 0x14, 0x23, 0x04, 0x92, 0x03, 0x93, 0xcd, 0xf8, 0x08, 0x80, 0x03, 0x9a, 0x07, 0x99, 0xcd, 0xf8, 0x58, 0x80, 0x42, 0xf4, 0x80, 0x03, 0x02, 0x9a, 0x43, 0xea, 0x8b, 0x13, 0x43, 0xea, 0xc2, 0x23, 0x04, 0x9a, 0x43, 0xea, 0xc2, 0x33, 0x05, 0x9a, 0xab, 0x62, 0x4f, 0xea, 0xc9, 0x23, 0x43, 0xea, 0x8a, 0x13, 0x13, 0x43, 0x06, 0x9a, 0x43, 0xea, 0xc8, 0x33, 0x43, 0xea, 0x08, 0x53, 0x43, 0xea, 0xc7, 0x53, 0xeb, 0x62, 0x42, 0xea, 0x01, 0x33, 0x02, 0x22, 0x2b, 0x63, 0x17, 0x92, 0x01, 0x9a, 0x93, 0x1e, 0x05, 0x2b, 0x00, 0xf2, 0xe6, 0x80, 0xdf, 0xe8, 0x13, 0xf0, 0x06, 0x00, 0x47, 0x00, 0xe4, 0x00, 0xe4, 0x00, 0x7d, 0x00, 0xae, 0x00, 0x0f, 0x21, 0x20, 0x46, 0x02, 0xf0, 0x56, 0xfc, 0xea, 0x69, 0xcd, 0x2c, 0x34, 0xbf, 0x01, 0x23, 0x02, 0x23, 0x34, 0xbf, 0x03, 0x24, 0x04, 0x24, 0x0e, 0x93, 0x40, 0xf6, 0x73, 0x63, 0x0c, 0x92, 0x40, 0xf6, 0x63, 0x22, 0x38, 0xbf, 0x13, 0x46, 0x13, 0x90, 0x0b, 0x93, 0x4f, 0xf4, 0x7a, 0x71, 0x4f, 0xf4, 0xc8, 0x73, 0x4f, 0xf4, 0xfa, 0x70, 0x73, 0x43, 0x70, 0x43, 0x01, 0x33, 0x09, 0xf1, 0x05, 0x09, 0x01, 0x93, 0x08, 0xf1, 0x05, 0x08, 0x02, 0xf0, 0x34, 0xfc, 0xc8, 0x23, 0x73, 0x43, 0x01, 0x36, 0x01, 0x33, 0x01, 0x30, 0x09, 0x93, 0x0a, 0x96, 0x02, 0x23, 0x0c, 0x26, 0x08, 0x90, 0x11, 0x96, 0x03, 0x20, 0x10, 0x93, 0x01, 0x26, 0x00, 0x23, 0xcd, 0xf8, 0x48, 0x90, 0xcd, 0xf8, 0x50, 0x80, 0x05, 0x22, 0x15, 0x94, 0x04, 0x21, 0x0f, 0x90, 0x99, 0x46, 0x00, 0x96, 0x0d, 0x93, 0xb7, 0xe0, 0x20, 0x46, 0x0f, 0x21, 0x02, 0xf0, 0x15, 0xfc, 0xea, 0x69, 0x4f, 0xf4, 0x7a, 0x71, 0x13, 0x90, 0x4f, 0xf4, 0xfa, 0x73, 0x4f, 0xf4, 0xb4, 0x70, 0x73, 0x43, 0x70, 0x43, 0x01, 0x33, 0x0c, 0x92, 0x09, 0xf1, 0x06, 0x09, 0x01, 0x93, 0x08, 0xf1, 0x06, 0x08, 0x02, 0xf0, 0x02, 0xfc, 0xc8, 0x23, 0x73, 0x43, 0x01, 0x33, 0x01, 0x36, 0x09, 0x93, 0x0c, 0x23, 0x04, 0x21, 0x01, 0x30, 0x0a, 0x96, 0x05, 0x22, 0x02, 0x26, 0x11, 0x93, 0x00, 0x23, 0x08, 0x90, 0xcd, 0xf8, 0x48, 0x90, 0x03, 0x20, 0x00, 0x96, 0x06, 0x24, 0xcd, 0xf8, 0x50, 0x80, 0x4f, 0xf0, 0x18, 0x09, 0x15, 0x92, 0x41, 0xf6, 0x70, 0x46, 0x10, 0x91, 0x0f, 0x91, 0x0e, 0x91, 0x0d, 0x93, 0x64, 0xe0, 0x20, 0x46, 0x1e, 0x21, 0x02, 0xf0, 0xdf, 0xfb, 0x6a, 0x6a, 0x4f, 0xf4, 0x7a, 0x71, 0x13, 0x90, 0xc8, 0x23, 0x64, 0x20, 0x73, 0x43, 0x70, 0x43, 0x01, 0x33, 0x0d, 0x92, 0x09, 0xf1, 0x05, 0x09, 0x01, 0x93, 0x08, 0xf1, 0x05, 0x08, 0x02, 0xf0, 0xce, 0xfb, 0x0b, 0x23, 0x73, 0x43, 0x01, 0x33, 0x01, 0x30, 0x01, 0x36, 0x09, 0x93, 0x0a, 0x23, 0x05, 0x22, 0x08, 0x90, 0x02, 0x20, 0x0a, 0x96, 0x01, 0x26, 0x15, 0x93, 0x03, 0x23, 0xcd, 0xf8, 0x48, 0x90, 0x11, 0x46, 0xcd, 0xf8, 0x50, 0x80, 0x04, 0x24, 0x11, 0x92, 0x4f, 0xf0, 0x06, 0x09, 0x10, 0x92, 0x0f, 0x90, 0x00, 0x96, 0x0e, 0x93, 0x30, 0xe0, 0x20, 0x46, 0x1e, 0x21, 0x02, 0xf0, 0xae, 0xfb, 0x6a, 0x6a, 0x4f, 0xf4, 0x7a, 0x71, 0x13, 0x90, 0xc8, 0x23, 0x64, 0x20, 0x73, 0x43, 0x70, 0x43, 0x01, 0x33, 0x0d, 0x92, 0x09, 0xf1, 0x08, 0x09, 0x01, 0x93, 0x0c, 0x24, 0x02, 0xf0, 0x9e, 0xfb, 0x0b, 0x23, 0x73, 0x43, 0x01, 0x33, 0x05, 0x22, 0x09, 0x93, 0x0d, 0x23, 0x01, 0x30, 0x01, 0x36, 0xcd, 0xf8, 0x48, 0x90, 0x11, 0x46, 0x15, 0x93, 0x4f, 0xf0, 0x0a, 0x09, 0x11, 0x94, 0x13, 0x46, 0x06, 0x24, 0x08, 0x90, 0x0a, 0x96, 0x08, 0xf1, 0x08, 0x08, 0x03, 0x20, 0x02, 0x26, 0xcd, 0xf8, 0x50, 0x80, 0x10, 0x92, 0x0f, 0x90, 0x00, 0x96, 0x0e, 0x92, 0xc3, 0x26, 0x0c, 0x96, 0x00, 0x26, 0x0b, 0x96, 0x1a, 0xe0, 0x08, 0x23, 0x03, 0x21, 0x14, 0x93, 0x06, 0x23, 0x1b, 0x24, 0x11, 0x93, 0x00, 0x23, 0x0c, 0x26, 0x13, 0x94, 0x99, 0x46, 0x0c, 0x46, 0x04, 0x22, 0x12, 0x96, 0x02, 0x20, 0x01, 0x26, 0x15, 0x92, 0x10, 0x90, 0x0f, 0x91, 0x00, 0x96, 0x0e, 0x96, 0x0d, 0x93, 0x0c, 0x93, 0x0b, 0x93, 0x0a, 0x93, 0x09, 0x93, 0x08, 0x93, 0x01, 0x93, 0x16, 0x9e, 0x04, 0xf1, 0x02, 0x0c, 0x06, 0xeb, 0x0a, 0x08, 0xe0, 0x45, 0x04, 0xd2, 0xca, 0xf1, 0x02, 0x0c, 0xa4, 0x44, 0xcd, 0xf8, 0x58, 0xc0, 0xb5, 0xf8, 0x1a, 0xc0, 0xbc, 0xf1, 0x00, 0x0f, 0x01, 0xd1, 0x0b, 0x9e, 0xae, 0x61, 0xb5, 0xf8, 0x1e, 0xc0, 0xbc, 0xf1, 0x00, 0x0f, 0x01, 0xd1, 0x0c, 0x9e, 0xee, 0x61, 0xb5, 0xf8, 0x22, 0xc0, 0xbc, 0xf1, 0x00, 0x0f, 0x01, 0xd1, 0xc5, 0xf8, 0x20, 0x90, 0xb5, 0xf8, 0x26, 0xc0, 0xbc, 0xf1, 0x00, 0x0f, 0x01, 0xd1, 0x0d, 0x9e, 0x6e, 0x62, 0xb5, 0xf8, 0x18, 0x80, 0x24, 0x04, 0xdf, 0xf8, 0x18, 0xc1, 0x04, 0x9e, 0xcc, 0xf8, 0x00, 0x80, 0xb5, 0xf8, 0x1c, 0x80, 0xcc, 0xf8, 0x04, 0x80, 0xb5, 0xf8, 0x20, 0x80, 0xcc, 0xf8, 0x08, 0x80, 0xb5, 0xf8, 0x24, 0x80, 0xcc, 0xf8, 0x0c, 0x80, 0xed, 0x68, 0xc5, 0xf3, 0x01, 0x1c, 0x32, 0x4d, 0xc5, 0xf8, 0x00, 0xc0, 0x05, 0x9d, 0x45, 0xea, 0x06, 0x49, 0x12, 0x9d, 0x13, 0x9e, 0x49, 0xea, 0x05, 0x69, 0x2e, 0x4d, 0x49, 0xea, 0x06, 0x29, 0x16, 0x9e, 0xc5, 0xf8, 0x00, 0x90, 0x03, 0x9d, 0x45, 0xea, 0x07, 0x47, 0x2b, 0x4d, 0x47, 0xea, 0x06, 0x27, 0x14, 0x9e, 0x2f, 0x60, 0x0f, 0x9d, 0x44, 0xea, 0x05, 0x64, 0x15, 0x9d, 0x34, 0x43, 0x10, 0x9e, 0x44, 0xea, 0x05, 0x24, 0x25, 0x4d, 0x2c, 0x60, 0x34, 0x03, 0x02, 0x9e, 0x44, 0xea, 0x03, 0x43, 0x11, 0x9c, 0x23, 0x43, 0x22, 0x4c, 0x6b, 0x60, 0x17, 0x9d, 0x2b, 0x04, 0x43, 0xea, 0x0b, 0x6b, 0x4b, 0xea, 0x0a, 0x0b, 0x4b, 0xea, 0x06, 0x23, 0x23, 0x60, 0x13, 0x04, 0x43, 0xea, 0x02, 0x62, 0x1c, 0x4b, 0x10, 0x43, 0x1c, 0x4a, 0x40, 0xea, 0x01, 0x21, 0x19, 0x60, 0x13, 0x68, 0x00, 0x99, 0x1b, 0x0c, 0x41, 0xf0, 0x00, 0x76, 0x46, 0xf4, 0x80, 0x76, 0x1b, 0x04, 0x43, 0xf4, 0xcc, 0x43, 0x43, 0xf0, 0x10, 0x03, 0x13, 0x60, 0x0e, 0x9a, 0x14, 0x4b, 0x46, 0xea, 0x02, 0x46, 0x14, 0x4a, 0x1e, 0x60, 0x01, 0x9c, 0x08, 0x9d, 0x09, 0x9e, 0x0a, 0x99, 0x44, 0xea, 0x05, 0x53, 0x06, 0x9c, 0x13, 0x60, 0x46, 0xea, 0x01, 0x53, 0x53, 0x60, 0x07, 0x9a, 0x42, 0xea, 0x04, 0x43, 0x0d, 0x4a, 0x13, 0x60, 0x19, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x01, 0x27, 0x4f, 0xf0, 0x02, 0x08, 0xb4, 0xe5, 0x2c, 0x30, 0xc6, 0x01, 0x58, 0x30, 0xc6, 0x01, 0x5c, 0x30, 0xc6, 0x01, 0x60, 0x30, 0xc6, 0x01, 0x68, 0x30, 0xc6, 0x01, 0x6c, 0x30, 0xc6, 0x01, 0x78, 0x30, 0xc6, 0x01, 0x80, 0x30, 0xc6, 0x01, 0x50, 0x30, 0xc6, 0x01, 0x90, 0x30, 0xc6, 0x01, 0x30, 0x30, 0xc6, 0x01, 0x38, 0xb5, 0xc3, 0x6d, 0xc3, 0xf3, 0x03, 0x44, 0xc3, 0xf3, 0x02, 0x50, 0x0b, 0x2c, 0x88, 0xbf, 0x09, 0x24, 0x05, 0x28, 0x0c, 0xd8, 0x18, 0xb9, 0x59, 0x05, 0x37, 0xd5, 0x01, 0x23, 0x0e, 0xe0, 0x80, 0x04, 0x0a, 0x21, 0x02, 0xf0, 0x92, 0xfa, 0x01, 0x23, 0xa3, 0x40, 0xc3, 0x1a, 0x05, 0xe0, 0x01, 0x23, 0xa3, 0x40, 0xc3, 0xf5, 0xcc, 0x33, 0x03, 0xf2, 0x99, 0x13, 0xe3, 0x40, 0x14, 0x4a, 0xa3, 0x40, 0x14, 0x4d, 0x11, 0x68, 0x41, 0xf0, 0x10, 0x00, 0x41, 0xf0, 0x12, 0x01, 0x10, 0x60, 0x14, 0x20, 0x11, 0x60, 0x10, 0x4a, 0x29, 0x68, 0x0a, 0x40, 0x14, 0x43, 0x44, 0xea, 0x03, 0x33, 0x0e, 0x4c, 0x2b, 0x60, 0x23, 0x68, 0x43, 0xf0, 0x80, 0x43, 0x23, 0x60, 0x01, 0xf0, 0x90, 0xf8, 0x2b, 0x68, 0x43, 0xf0, 0x00, 0x43, 0x2b, 0x60, 0x23, 0x68, 0x43, 0xf0, 0x80, 0x43, 0x23, 0x60, 0x23, 0x68, 0x5a, 0x00, 0xfc, 0xd4, 0x14, 0x20, 0x01, 0xf0, 0x82, 0xf8, 0x01, 0x20, 0x38, 0xbd, 0xf0, 0x00, 0xc2, 0x01, 0xf8, 0x00, 0xc2, 0x01, 0xf0, 0x0f, 0x00, 0xe0, 0x4c, 0x00, 0xc2, 0x01, 0x08, 0xb5, 0xc3, 0x6d, 0xc3, 0xf3, 0x02, 0x53, 0x05, 0x2b, 0x0c, 0xd8, 0xdf, 0xe8, 0x03, 0xf0, 0x1d, 0x03, 0x05, 0x07, 0x0b, 0x09, 0x0e, 0x4a, 0x06, 0xe0, 0x0e, 0x4a, 0x04, 0xe0, 0x0e, 0x4a, 0x02, 0xe0, 0x0e, 0x4a, 0x00, 0xe0, 0x0e, 0x4a, 0x0e, 0x4b, 0x1a, 0x60, 0x0e, 0x4b, 0x1a, 0x68, 0x42, 0xf0, 0x80, 0x72, 0x1a, 0x60, 0x1a, 0x68, 0x42, 0xf4, 0x80, 0x12, 0x1a, 0x60, 0x1a, 0x68, 0x50, 0x00, 0xfc, 0xd4, 0x14, 0x20, 0x01, 0xf0, 0x53, 0xf8, 0x01, 0x20, 0x08, 0xbd, 0x00, 0xbf, 0xcc, 0xcc, 0x86, 0xe4, 0x99, 0x99, 0x06, 0xe9, 0x66, 0x66, 0x86, 0xed, 0x00, 0x00, 0x86, 0xf5, 0x33, 0x33, 0x06, 0xf2, 0x90, 0x02, 0xc2, 0x01, 0x20, 0x00, 0xc2, 0x01, 0x24, 0x4b, 0x70, 0xb5, 0x05, 0x46, 0x1a, 0x68, 0x22, 0xf0, 0x10, 0x02, 0x1a, 0x60, 0xc3, 0x6d, 0x5c, 0x06, 0x4c, 0xbf, 0xc0, 0x6c, 0x28, 0x68, 0x18, 0x21, 0x40, 0x00, 0x02, 0xf0, 0x10, 0xfa, 0x20, 0x28, 0x06, 0x46, 0x0e, 0xd9, 0x00, 0xf0, 0x01, 0x04, 0x03, 0x21, 0x02, 0xf0, 0x36, 0xfb, 0x8c, 0x42, 0x8c, 0xbf, 0x03, 0x24, 0x02, 0x24, 0x30, 0x46, 0x21, 0x46, 0x02, 0xf0, 0x00, 0xfa, 0x06, 0x46, 0x00, 0xe0, 0x01, 0x24, 0x14, 0x4b, 0x71, 0x1e, 0x1a, 0x68, 0x62, 0x1e, 0x12, 0x01, 0x42, 0xea, 0x01, 0x22, 0x42, 0xf0, 0x00, 0x42, 0x1a, 0x60, 0x42, 0xf4, 0x80, 0x12, 0x1a, 0x60, 0x0c, 0x4a, 0x11, 0x68, 0x41, 0xf0, 0x10, 0x01, 0x11, 0x60, 0x18, 0x68, 0x0b, 0x49, 0x01, 0x40, 0xb1, 0xf1, 0x80, 0x5f, 0xf9, 0xd1, 0x13, 0x68, 0x14, 0x20, 0x66, 0x43, 0x23, 0xf0, 0x10, 0x03, 0x13, 0x60, 0x00, 0xf0, 0xff, 0xff, 0x28, 0x46, 0xff, 0xf7, 0x84, 0xff, 0x18, 0x20, 0x70, 0x43, 0x70, 0xbd, 0x00, 0xbf, 0x20, 0x03, 0xc2, 0x01, 0x20, 0x00, 0xc2, 0x01, 0x00, 0x00, 0x10, 0x10, 0x38, 0xb5, 0x04, 0x46, 0x1a, 0x4b, 0x1a, 0x68, 0x22, 0xf4, 0x00, 0x62, 0x1a, 0x60, 0xc3, 0x6d, 0x5d, 0x06, 0x4c, 0xbf, 0x00, 0x68, 0xe0, 0x6c, 0x0c, 0x21, 0x02, 0xf0, 0xc1, 0xf9, 0x15, 0x4b, 0x05, 0x46, 0x0b, 0x28, 0x98, 0xbf, 0x0c, 0x25, 0x69, 0x1e, 0x1a, 0x68, 0x22, 0xf4, 0xfe, 0x42, 0x42, 0xf0, 0x00, 0x42, 0x42, 0xea, 0x01, 0x22, 0x1a, 0x60, 0x42, 0xf0, 0x80, 0x42, 0x1a, 0x60, 0x0b, 0x4a, 0x11, 0x68, 0x41, 0xf4, 0x00, 0x61, 0x11, 0x60, 0x19, 0x68, 0x01, 0xf0, 0xa0, 0x41, 0xb1, 0xf1, 0x80, 0x5f, 0xf9, 0xd1, 0x13, 0x68, 0x64, 0x20, 0x23, 0xf4, 0x00, 0x63, 0x13, 0x60, 0x00, 0xf0, 0xc0, 0xff, 0x20, 0x46, 0xff, 0xf7, 0xf5, 0xfe, 0x18, 0x20, 0x68, 0x43, 0x38, 0xbd, 0x20, 0x03, 0xc2, 0x01, 0x4c, 0x00, 0xc2, 0x01, 0x38, 0xb5, 0x04, 0x46, 0x41, 0x4b, 0x0a, 0x20, 0x41, 0x4d, 0x1a, 0x68, 0x22, 0xf0, 0x00, 0x42, 0x1a, 0x60, 0x53, 0xf8, 0x60, 0x2c, 0x22, 0xf0, 0x00, 0x42, 0x43, 0xf8, 0x60, 0x2c, 0x53, 0xf8, 0xfc, 0x2c, 0x22, 0xf4, 0x80, 0x42, 0x43, 0xf8, 0xfc, 0x2c, 0xd3, 0xf8, 0x64, 0x21, 0x22, 0xf4, 0x80, 0x42, 0xc3, 0xf8, 0x64, 0x21, 0x03, 0xf5, 0xb2, 0x73, 0xa3, 0xf5, 0x28, 0x73, 0x1a, 0x68, 0x22, 0xf0, 0x00, 0x42, 0x1a, 0x60, 0x42, 0xf4, 0x80, 0x12, 0x1a, 0x60, 0xda, 0x6a, 0x22, 0xf0, 0x00, 0x42, 0xda, 0x62, 0x42, 0xf0, 0x80, 0x42, 0xda, 0x62, 0x2b, 0x68, 0x23, 0xf0, 0x00, 0x43, 0x2b, 0x60, 0x00, 0xf0, 0x83, 0xff, 0xe3, 0x6d, 0x2d, 0x68, 0x5b, 0x06, 0x25, 0xf4, 0x40, 0x15, 0x0c, 0xd5, 0x20, 0x46, 0x45, 0xf4, 0x80, 0x15, 0xff, 0xf7, 0x86, 0xff, 0xe3, 0x6c, 0x40, 0x08, 0x20, 0x60, 0x7b, 0xb1, 0x20, 0x46, 0xff, 0xf7, 0x2f, 0xff, 0x09, 0xe0, 0x20, 0x46, 0xff, 0xf7, 0x2b, 0xff, 0xe3, 0x6c, 0x40, 0x08, 0x20, 0x60, 0x23, 0xb1, 0x20, 0x46, 0xff, 0xf7, 0x74, 0xff, 0x40, 0x08, 0xe0, 0x64, 0x1a, 0x4c, 0x4f, 0xf4, 0x7a, 0x70, 0x00, 0xf0, 0x5f, 0xff, 0x0a, 0x20, 0x25, 0x60, 0x45, 0xf4, 0x80, 0x35, 0x00, 0xf0, 0x59, 0xff, 0x16, 0x4b, 0x0a, 0x20, 0x25, 0x60, 0x1a, 0x68, 0x42, 0xf4, 0x80, 0x42, 0x1a, 0x60, 0xa3, 0xf5, 0x18, 0x73, 0x1a, 0x68, 0x42, 0xf4, 0x80, 0x42, 0x1a, 0x60, 0x01, 0x22, 0x10, 0x4b, 0x1a, 0x60, 0x10, 0x4b, 0x1a, 0x68, 0x42, 0xf0, 0x00, 0x42, 0x1a, 0x60, 0x1a, 0x6e, 0x42, 0xf0, 0x00, 0x42, 0x1a, 0x66, 0x23, 0x68, 0x43, 0xf0, 0x00, 0x43, 0x23, 0x60, 0x00, 0xf0, 0x3a, 0xff, 0x09, 0x4b, 0x4f, 0xf4, 0x00, 0x42, 0x0a, 0x20, 0x1a, 0x60, 0x00, 0xf0, 0x33, 0xff, 0x00, 0x20, 0x38, 0xbd, 0x00, 0xbf, 0x5c, 0x01, 0xc2, 0x01, 0xf4, 0x00, 0xc2, 0x01, 0xc0, 0x02, 0xc2, 0x01, 0x94, 0x20, 0xc6, 0x01, 0xfc, 0x00, 0xc2, 0x01, 0x0c, 0x30, 0xc6, 0x01, 0xc3, 0x6d, 0x10, 0xb5, 0x13, 0xf0, 0x80, 0x4f, 0x41, 0x4b, 0x1a, 0x68, 0x14, 0xbf, 0x22, 0xf0, 0x00, 0x62, 0x42, 0xf0, 0x00, 0x62, 0x1a, 0x60, 0x43, 0x69, 0x13, 0xf4, 0x70, 0x4f, 0x04, 0xd1, 0x3c, 0x4b, 0x1a, 0x68, 0x42, 0xf4, 0x00, 0x12, 0x1a, 0x60, 0x39, 0x4b, 0x41, 0x68, 0x1a, 0x68, 0x01, 0xf0, 0x07, 0x04, 0x22, 0xf4, 0x7f, 0x02, 0x22, 0xf4, 0x70, 0x42, 0x42, 0xf4, 0x80, 0x02, 0x42, 0xea, 0x04, 0x42, 0x44, 0x69, 0x14, 0xf0, 0x01, 0x0f, 0x0c, 0xbf, 0x4f, 0xf4, 0x80, 0x54, 0x00, 0x24, 0x06, 0x39, 0x01, 0x29, 0x42, 0xea, 0x04, 0x02, 0x89, 0xbf, 0xc1, 0x6d, 0x42, 0xf4, 0x00, 0x22, 0xc1, 0xf3, 0x40, 0x11, 0x42, 0xea, 0xc1, 0x42, 0x1a, 0x60, 0x1a, 0x68, 0x43, 0x69, 0x22, 0xf4, 0x7f, 0x62, 0x22, 0xf0, 0x0f, 0x02, 0xc3, 0xf3, 0x01, 0x33, 0x13, 0x43, 0x02, 0x69, 0xc2, 0xf3, 0x00, 0x31, 0x43, 0xea, 0x81, 0x03, 0x22, 0xf0, 0x0f, 0x01, 0x10, 0x39, 0xc9, 0xb2, 0x02, 0xf0, 0x0f, 0x02, 0x01, 0x3a, 0x0b, 0x43, 0x07, 0x2a, 0x11, 0xd8, 0xdf, 0xe8, 0x02, 0xf0, 0x0d, 0x0a, 0x10, 0x07, 0x10, 0x10, 0x10, 0x04, 0x43, 0xf4, 0x20, 0x63, 0x0a, 0xe0, 0x43, 0xf4, 0x10, 0x63, 0x07, 0xe0, 0x43, 0xf4, 0x00, 0x63, 0x04, 0xe0, 0x43, 0xf4, 0xe0, 0x63, 0x01, 0xe0, 0x43, 0xf4, 0xc0, 0x63, 0x12, 0x4a, 0x40, 0xf2, 0x01, 0x21, 0x13, 0x60, 0x13, 0x68, 0x13, 0xf0, 0x01, 0x0f, 0x40, 0xf2, 0x03, 0x33, 0x18, 0xbf, 0x19, 0x46, 0x0f, 0x4b, 0x19, 0x60, 0x43, 0x69, 0xd9, 0x07, 0x04, 0xd5, 0x0d, 0x49, 0x00, 0x23, 0x0b, 0x60, 0xc1, 0xf8, 0x80, 0x30, 0x11, 0x68, 0x83, 0x6b, 0x03, 0xf0, 0x03, 0x03, 0x41, 0xea, 0x43, 0x63, 0x13, 0x60, 0x05, 0x4b, 0x82, 0x6b, 0x19, 0x68, 0xc2, 0xf3, 0x88, 0x02, 0x41, 0xea, 0x02, 0x32, 0x1a, 0x60, 0x10, 0xbd, 0x00, 0xbf, 0x00, 0x20, 0xc6, 0x01, 0x04, 0x20, 0xc6, 0x01, 0x20, 0x31, 0xc6, 0x01, 0x44, 0x34, 0xc6, 0x01, 0xf8, 0xb5, 0x0c, 0x46, 0x9c, 0x4b, 0xce, 0x6d, 0x1a, 0x68, 0xc6, 0xf3, 0x81, 0x06, 0x22, 0xf4, 0x70, 0x62, 0x42, 0xf4, 0x40, 0x72, 0x1a, 0x60, 0x03, 0xf5, 0x0f, 0x73, 0xc8, 0x68, 0x97, 0x49, 0x00, 0xf0, 0x01, 0x00, 0x80, 0xf0, 0x01, 0x00, 0x40, 0x01, 0x1a, 0x68, 0x22, 0xf4, 0x70, 0x42, 0x22, 0xf0, 0x3e, 0x02, 0x02, 0x43, 0x43, 0xf8, 0x80, 0x2b, 0x8b, 0x42, 0xf5, 0xd1, 0x90, 0x4b, 0x20, 0x46, 0x1a, 0x68, 0x42, 0xf0, 0x02, 0x02, 0x22, 0xf4, 0x00, 0x62, 0x1a, 0x60, 0xff, 0xf7, 0xb1, 0xf8, 0x01, 0x2e, 0x03, 0xd0, 0x02, 0x2e, 0x87, 0x4d, 0x35, 0xd1, 0x10, 0xe0, 0x89, 0x4b, 0x1b, 0x68, 0x9d, 0x07, 0x04, 0xd1, 0x84, 0x4b, 0x1a, 0x68, 0x22, 0xf0, 0xc0, 0x02, 0x1a, 0x60, 0x85, 0x4a, 0x13, 0x68, 0x23, 0xf4, 0x83, 0x73, 0x23, 0xf0, 0x01, 0x03, 0x13, 0x60, 0x2e, 0xe0, 0x2b, 0x68, 0x0a, 0x20, 0x23, 0xf0, 0x40, 0x03, 0x2b, 0x60, 0x00, 0xf0, 0x4d, 0xfe, 0x2b, 0x68, 0x7d, 0x4a, 0x23, 0xf0, 0xc0, 0x03, 0x43, 0xf0, 0x80, 0x03, 0x2b, 0x60, 0x7b, 0x4b, 0x19, 0x68, 0x13, 0x68, 0xc1, 0xf3, 0x04, 0x41, 0x23, 0xf4, 0x83, 0x73, 0x02, 0x39, 0x23, 0xf0, 0x01, 0x03, 0x43, 0xf4, 0x80, 0x73, 0x0b, 0x43, 0x13, 0x60, 0x75, 0x4b, 0x1a, 0x68, 0x42, 0xf0, 0x00, 0x62, 0x22, 0xf0, 0x00, 0x42, 0x1a, 0x60, 0x0a, 0xe0, 0x2b, 0x68, 0x0a, 0x20, 0x23, 0xf0, 0x40, 0x03, 0x2b, 0x60, 0x00, 0xf0, 0x29, 0xfe, 0x2b, 0x68, 0x43, 0xf0, 0xc0, 0x03, 0x2b, 0x60, 0x63, 0x68, 0x06, 0x3b, 0x01, 0x2b, 0x06, 0xd8, 0x6a, 0x4b, 0x1a, 0x68, 0x22, 0xf0, 0xee, 0x42, 0x42, 0xf0, 0x08, 0x52, 0x1a, 0x60, 0x63, 0x69, 0x67, 0x4d, 0x13, 0xf4, 0x80, 0x5f, 0x66, 0x4b, 0x14, 0xbf, 0x66, 0x4a, 0x67, 0x4a, 0x19, 0x68, 0x01, 0xf0, 0x70, 0x41, 0x0a, 0x43, 0x1a, 0x60, 0x5d, 0x4b, 0x1a, 0x68, 0x12, 0xf0, 0x03, 0x0f, 0x70, 0xd0, 0x1a, 0x68, 0x0a, 0x20, 0x22, 0xf0, 0x02, 0x02, 0x1a, 0x60, 0x00, 0xf0, 0x01, 0xfe, 0x2a, 0x68, 0x01, 0x2e, 0xa3, 0x68, 0x02, 0xf0, 0x7f, 0x42, 0x23, 0xf0, 0x7f, 0x43, 0x43, 0xea, 0x02, 0x03, 0x2b, 0x60, 0x0d, 0xd1, 0x59, 0x4b, 0x52, 0x22, 0x1a, 0x60, 0x53, 0x22, 0x1a, 0x60, 0x10, 0x33, 0x1a, 0x68, 0xd0, 0x07, 0xfc, 0xd5, 0x0a, 0x20, 0x00, 0xf0, 0xea, 0xfd, 0x20, 0x23, 0x00, 0xe0, 0x62, 0x23, 0x52, 0x4a, 0x0a, 0x20, 0x13, 0x60, 0x43, 0xf0, 0x01, 0x03, 0x13, 0x60, 0x00, 0xf0, 0xdf, 0xfd, 0x4f, 0x4b, 0x1a, 0x68, 0xd1, 0x07, 0xfc, 0xd5, 0x4e, 0x4b, 0x0a, 0x20, 0x1a, 0x68, 0x22, 0xf0, 0xc0, 0x62, 0x42, 0xf0, 0x80, 0x62, 0x1a, 0x60, 0x00, 0xf0, 0xd1, 0xfd, 0x4a, 0x4b, 0x1a, 0x68, 0x42, 0xf0, 0x01, 0x02, 0x1a, 0x60, 0x14, 0x33, 0x1a, 0x68, 0x02, 0xf0, 0x07, 0x02, 0x03, 0x2a, 0xfa, 0xd1, 0x39, 0x4b, 0x0a, 0x20, 0x1a, 0x68, 0x22, 0xf0, 0x01, 0x02, 0x1a, 0x60, 0x00, 0xf0, 0xbe, 0xfd, 0x40, 0x4b, 0x1a, 0x68, 0x22, 0xf0, 0x01, 0x02, 0x1a, 0x60, 0x14, 0x33, 0x1a, 0x68, 0x02, 0xf0, 0x07, 0x02, 0x01, 0x2a, 0xfa, 0xd1, 0x0f, 0x20, 0x00, 0xf0, 0xb0, 0xfd, 0x01, 0x2e, 0x48, 0xd1, 0x2a, 0x4b, 0x30, 0x46, 0x1a, 0x68, 0x22, 0xf0, 0xc0, 0x02, 0x1a, 0x60, 0x5a, 0x68, 0x22, 0xf0, 0xc0, 0x62, 0x42, 0xf0, 0x00, 0x72, 0x5a, 0x60, 0x00, 0xf0, 0xa0, 0xfd, 0x2e, 0x4b, 0x40, 0xf2, 0x01, 0x42, 0x1a, 0x60, 0x10, 0x33, 0x1a, 0x68, 0xd2, 0x07, 0xfc, 0xd5, 0x31, 0xe0, 0x2a, 0x68, 0x01, 0x2e, 0xa3, 0x68, 0x02, 0xf0, 0x7f, 0x42, 0x23, 0xf0, 0x7f, 0x43, 0x43, 0xea, 0x02, 0x03, 0x2b, 0x60, 0x13, 0xd1, 0x24, 0x4b, 0x52, 0x22, 0x1a, 0x60, 0x53, 0x22, 0x1a, 0x60, 0x10, 0x33, 0x1a, 0x68, 0xd7, 0x07, 0xfc, 0xd5, 0x0a, 0x20, 0x00, 0xf0, 0x80, 0xfd, 0x63, 0x68, 0x03, 0x2b, 0x0c, 0xbf, 0x4f, 0xf4, 0xb4, 0x63, 0x4f, 0xf4, 0xa4, 0x63, 0x06, 0xe0, 0x63, 0x68, 0x03, 0x2b, 0x0c, 0xbf, 0x4f, 0xf4, 0xf9, 0x73, 0x4f, 0xf4, 0xb9, 0x73, 0x17, 0x4a, 0x0a, 0x20, 0x13, 0x60, 0x43, 0xf0, 0x01, 0x03, 0x13, 0x60, 0x00, 0xf0, 0x69, 0xfd, 0x14, 0x4b, 0x1a, 0x68, 0xd5, 0x07, 0xfc, 0xd5, 0x12, 0x4b, 0x1f, 0x68, 0xc7, 0xf3, 0x07, 0x53, 0x3b, 0xb3, 0x17, 0xf4, 0x80, 0x17, 0x25, 0xd0, 0x11, 0x48, 0x00, 0x27, 0x01, 0xf0, 0xf7, 0xfb, 0x20, 0xe0, 0x08, 0x31, 0xc6, 0x01, 0x44, 0x35, 0xc6, 0x01, 0x08, 0x32, 0xc6, 0x01, 0xf4, 0x05, 0xc2, 0x01, 0xbc, 0x30, 0xc6, 0x01, 0x60, 0x30, 0xc6, 0x01, 0x1c, 0x31, 0xc6, 0x01, 0x40, 0x31, 0xc6, 0x01, 0xc0, 0x30, 0xc6, 0x01, 0x87, 0x30, 0x00, 0x03, 0x87, 0x30, 0x00, 0x01, 0x00, 0x30, 0xc6, 0x01, 0x10, 0x30, 0xc6, 0x01, 0x0c, 0x31, 0xc6, 0x01, 0x04, 0x30, 0xc6, 0x01, 0x0e, 0xba, 0x00, 0x00, 0x01, 0x27, 0x17, 0x4b, 0x1a, 0x68, 0xd0, 0x07, 0xfc, 0xd5, 0x16, 0x4d, 0x0a, 0x20, 0x2b, 0x68, 0x43, 0xf0, 0x00, 0x43, 0x2b, 0x60, 0x00, 0xf0, 0x2b, 0xfd, 0x2b, 0x68, 0x0a, 0x20, 0x23, 0xf0, 0x00, 0x43, 0x2b, 0x60, 0x00, 0xf0, 0x24, 0xfd, 0x0f, 0x4b, 0x0a, 0x20, 0x1a, 0x68, 0x42, 0xf0, 0x00, 0x42, 0x1a, 0x60, 0x00, 0xf0, 0x1c, 0xfd, 0x0c, 0x4b, 0x1a, 0x68, 0x22, 0xf0, 0xc0, 0x62, 0x1a, 0x60, 0x63, 0x68, 0x06, 0x3b, 0x01, 0x2b, 0x08, 0xd8, 0x01, 0x2e, 0x06, 0xd1, 0x08, 0x4b, 0x1a, 0x68, 0x22, 0xf0, 0xc0, 0x02, 0x42, 0xf0, 0x40, 0x02, 0x1a, 0x60, 0x38, 0x46, 0xf8, 0xbd, 0x18, 0x30, 0xc6, 0x01, 0x8c, 0x30, 0xc6, 0x01, 0xd0, 0x20, 0xc6, 0x01, 0x0c, 0x31, 0xc6, 0x01, 0x1c, 0x31, 0xc6, 0x01, 0x12, 0x4b, 0x01, 0x21, 0x10, 0xb5, 0x1b, 0x68, 0xc3, 0xf3, 0x03, 0x12, 0xc3, 0xf3, 0x03, 0x20, 0x80, 0x18, 0xc3, 0xf3, 0x81, 0x02, 0x0e, 0x38, 0x80, 0x18, 0x11, 0xfa, 0x00, 0xf0, 0x13, 0xf0, 0x03, 0x03, 0x10, 0xd0, 0x0a, 0x4b, 0x1a, 0x68, 0x93, 0x07, 0x0b, 0xd0, 0xc2, 0xf3, 0x03, 0x24, 0xc2, 0xf3, 0x03, 0x13, 0xe3, 0x18, 0xc2, 0xf3, 0x81, 0x02, 0x0e, 0x3b, 0x9b, 0x18, 0x11, 0xfa, 0x03, 0xf3, 0x00, 0xe0, 0x03, 0x46, 0x18, 0x18, 0x10, 0xbd, 0x00, 0xbf, 0x00, 0x20, 0xc6, 0x01, 0x04, 0x20, 0xc6, 0x01, 0x25, 0x4b, 0x70, 0xb5, 0x1b, 0x68, 0x5a, 0x02, 0x3e, 0xd5, 0x24, 0x4b, 0x19, 0x68, 0xd3, 0xf8, 0x80, 0x40, 0xd3, 0xf8, 0x00, 0x61, 0xc1, 0xf3, 0x01, 0x61, 0xd3, 0xf8, 0x80, 0x51, 0x02, 0x29, 0xc4, 0xf3, 0x01, 0x64, 0xc6, 0xf3, 0x01, 0x66, 0xc5, 0xf3, 0x01, 0x65, 0x0b, 0xd1, 0x02, 0x2c, 0x15, 0xd1, 0x43, 0x69, 0x02, 0x2e, 0x23, 0xf4, 0x70, 0x43, 0x23, 0xf0, 0x0f, 0x03, 0x09, 0xd1, 0x02, 0x2d, 0x07, 0xd1, 0x08, 0xe0, 0x51, 0xb9, 0x4c, 0xb9, 0x43, 0x69, 0x43, 0xf4, 0x80, 0x53, 0x23, 0xf0, 0x0f, 0x03, 0x43, 0xf0, 0x01, 0x03, 0x43, 0x61, 0x01, 0x20, 0x70, 0xbd, 0xc0, 0x6d, 0x10, 0xf0, 0x00, 0x50, 0x17, 0xd0, 0x0e, 0x48, 0x01, 0xf0, 0x3c, 0xfb, 0x21, 0x46, 0x0d, 0x48, 0x01, 0xf0, 0x38, 0xfb, 0x31, 0x46, 0x0c, 0x48, 0x01, 0xf0, 0x34, 0xfb, 0x0b, 0x48, 0x29, 0x46, 0x01, 0xf0, 0x30, 0xfb, 0x00, 0x20, 0x70, 0xbd, 0x43, 0x69, 0x23, 0xf0, 0x0f, 0x03, 0x43, 0xf4, 0x80, 0x53, 0x43, 0x61, 0x01, 0x20, 0x70, 0xbd, 0x10, 0x30, 0xc6, 0x01, 0x48, 0x33, 0xc6, 0x01, 0x45, 0xba, 0x00, 0x00, 0x53, 0xba, 0x00, 0x00, 0x61, 0xba, 0x00, 0x00, 0x6f, 0xba, 0x00, 0x00, 0xf0, 0xb5, 0x85, 0xb0, 0x00, 0x21, 0x10, 0x22, 0x04, 0x46, 0x68, 0x46, 0x01, 0xf0, 0xbb, 0xfb, 0x69, 0x4b, 0x0a, 0x20, 0x1a, 0x68, 0x42, 0xf0, 0x00, 0x72, 0x1a, 0x60, 0x4f, 0xf0, 0x80, 0x43, 0x66, 0x4a, 0x1a, 0x60, 0x1b, 0x68, 0x00, 0xf0, 0x67, 0xfc, 0x65, 0x4b, 0x1b, 0x68, 0x9d, 0x04, 0x2d, 0xd5, 0x64, 0x4b, 0x64, 0x49, 0x1a, 0x68, 0x80, 0x33, 0xc2, 0xf3, 0x00, 0x72, 0x00, 0x92, 0x1b, 0x68, 0xc3, 0xf3, 0x00, 0x73, 0x01, 0x93, 0x09, 0x68, 0xc1, 0xf3, 0x00, 0x71, 0x02, 0x91, 0x5e, 0x49, 0x09, 0x68, 0xc1, 0xf3, 0x00, 0x71, 0x03, 0x91, 0x32, 0xb9, 0x2b, 0xb9, 0x63, 0x69, 0x23, 0xf0, 0x0f, 0x03, 0x43, 0xf0, 0x01, 0x03, 0x16, 0xe0, 0xe5, 0x6d, 0x15, 0xf0, 0x00, 0x55, 0x14, 0xd0, 0xad, 0xf1, 0x04, 0x06, 0x00, 0x25, 0x29, 0x46, 0x55, 0x48, 0x56, 0xf8, 0x04, 0x2f, 0x01, 0x35, 0x01, 0xf0, 0xd7, 0xfa, 0x04, 0x2d, 0xf6, 0xd1, 0x00, 0x25, 0x06, 0xe0, 0x63, 0x69, 0x18, 0x07, 0x02, 0xd1, 0x23, 0xf0, 0x0f, 0x03, 0x63, 0x61, 0x01, 0x25, 0x46, 0x4e, 0x64, 0x20, 0x37, 0x68, 0x27, 0xf0, 0x80, 0x67, 0x37, 0x60, 0x47, 0xf0, 0x80, 0x67, 0x00, 0xf0, 0x24, 0xfc, 0x37, 0x60, 0x0a, 0x20, 0x33, 0x68, 0x42, 0x4f, 0x43, 0xf0, 0x80, 0x73, 0x33, 0x60, 0x3b, 0x68, 0x23, 0xf4, 0x00, 0x53, 0x3b, 0x60, 0x00, 0xf0, 0x17, 0xfc, 0x25, 0xb9, 0x33, 0x68, 0x23, 0xf0, 0x00, 0x73, 0x33, 0x60, 0x6d, 0xe0, 0x63, 0x69, 0x13, 0xf4, 0x70, 0x4f, 0x63, 0xd0, 0x23, 0x69, 0x01, 0x25, 0x0a, 0x20, 0xc3, 0xf3, 0x03, 0x31, 0xc3, 0xf3, 0x07, 0x12, 0x8a, 0x18, 0x03, 0xf0, 0x0f, 0x03, 0x0b, 0x32, 0x02, 0xeb, 0x43, 0x03, 0x36, 0x4a, 0x15, 0xfa, 0x03, 0xf3, 0x03, 0xf1, 0x80, 0x43, 0x1a, 0x60, 0x1b, 0x68, 0x00, 0xf0, 0xf7, 0xfb, 0x3b, 0x68, 0x99, 0x04, 0x2e, 0xd5, 0x2c, 0x4b, 0x2d, 0x4a, 0x18, 0x68, 0x80, 0x33, 0xc0, 0xf3, 0x00, 0x70, 0x00, 0x90, 0x1b, 0x68, 0xc3, 0xf3, 0x00, 0x73, 0x01, 0x93, 0x11, 0x68, 0x80, 0x32, 0xc1, 0xf3, 0x00, 0x71, 0x02, 0x91, 0x12, 0x68, 0xc2, 0xf3, 0x00, 0x72, 0x03, 0x92, 0x30, 0xb1, 0x33, 0xb1, 0x29, 0xb1, 0x22, 0xb1, 0x63, 0x69, 0x23, 0xf4, 0x70, 0x43, 0x15, 0xe0, 0x8b, 0xb1, 0xe5, 0x6d, 0x15, 0xf0, 0x00, 0x55, 0x11, 0xd0, 0xad, 0xf1, 0x04, 0x05, 0x00, 0x24, 0x21, 0x46, 0x1f, 0x48, 0x55, 0xf8, 0x04, 0x2f, 0x01, 0x34, 0x01, 0xf0, 0x67, 0xfa, 0x04, 0x2c, 0xf6, 0xd1, 0x00, 0x25, 0x03, 0xe0, 0x63, 0x69, 0x43, 0xf4, 0x80, 0x53, 0x63, 0x61, 0x10, 0x4c, 0x64, 0x20, 0x26, 0x68, 0x26, 0xf0, 0x80, 0x66, 0x26, 0x60, 0x46, 0xf0, 0x80, 0x66, 0x00, 0xf0, 0xb7, 0xfb, 0x26, 0x60, 0x0a, 0x20, 0x23, 0x68, 0x43, 0xf0, 0x80, 0x73, 0x23, 0x60, 0x0a, 0x4b, 0x1a, 0x68, 0x22, 0xf4, 0x00, 0x52, 0x1a, 0x60, 0x00, 0xf0, 0xaa, 0xfb, 0x00, 0xe0, 0x01, 0x25, 0x03, 0x4b, 0x1a, 0x68, 0x22, 0xf0, 0x00, 0x72, 0x1a, 0x60, 0x28, 0x46, 0x05, 0xb0, 0xf0, 0xbd, 0x00, 0x31, 0xc6, 0x01, 0x78, 0x56, 0x34, 0x12, 0x10, 0x30, 0xc6, 0x01, 0x48, 0x33, 0xc6, 0x01, 0x48, 0x34, 0xc6, 0x01, 0xc8, 0x34, 0xc6, 0x01, 0x7d, 0xba, 0x00, 0x00, 0xcd, 0xab, 0x34, 0x12, 0x92, 0xba, 0x00, 0x00, 0x40, 0x08, 0x70, 0xb5, 0x4f, 0xf0, 0x80, 0x42, 0x0d, 0x46, 0x00, 0x05, 0x00, 0x23, 0x07, 0xe0, 0x15, 0x49, 0x59, 0x18, 0x11, 0x60, 0x15, 0x49, 0x59, 0x18, 0x01, 0x33, 0x11, 0x50, 0x04, 0x32, 0xab, 0x42, 0xf5, 0xd1, 0x4f, 0xf0, 0x80, 0x43, 0x00, 0x26, 0x16, 0xe0, 0x0f, 0x4a, 0x1c, 0x18, 0x19, 0x58, 0xb2, 0x18, 0x91, 0x42, 0x02, 0xd0, 0x0d, 0x48, 0x23, 0x46, 0x07, 0xe0, 0x1c, 0x46, 0x09, 0x4a, 0x54, 0xf8, 0x04, 0x1b, 0xb2, 0x18, 0x91, 0x42, 0x04, 0xd0, 0x08, 0x48, 0x01, 0xf0, 0x03, 0xfa, 0x01, 0x20, 0x70, 0xbd, 0x01, 0x36, 0x23, 0x46, 0xae, 0x42, 0xe6, 0xd1, 0x05, 0x48, 0x01, 0xf0, 0xfa, 0xf9, 0x00, 0x20, 0x70, 0xbd, 0x67, 0x45, 0x23, 0x01, 0x98, 0xba, 0xdc, 0xfe, 0xa7, 0xba, 0x00, 0x00, 0xd9, 0xba, 0x00, 0x00, 0x10, 0xb5, 0x04, 0x46, 0xff, 0xf7, 0x98, 0xfb, 0x20, 0x46, 0xff, 0xf7, 0x27, 0xfc, 0x20, 0x46, 0xfe, 0xf7, 0x4e, 0xff, 0x00, 0x20, 0x21, 0x46, 0xbd, 0xe8, 0x10, 0x40, 0xff, 0xf7, 0xae, 0xbc, 0x2d, 0xe9, 0xf0, 0x41, 0x4f, 0xf0, 0xb0, 0x12, 0xc6, 0x6d, 0x04, 0x46, 0xd0, 0xf8, 0x10, 0x80, 0x46, 0xf0, 0x01, 0x03, 0x02, 0x61, 0x00, 0x22, 0xd9, 0x06, 0xc3, 0x65, 0x44, 0xbf, 0x46, 0xf0, 0x05, 0x03, 0xc3, 0x65, 0xc3, 0x6d, 0x47, 0x69, 0x42, 0x61, 0x5a, 0x00, 0x54, 0xbf, 0x03, 0x6c, 0x43, 0x6c, 0x9b, 0x05, 0x9b, 0x0d, 0x03, 0x60, 0x07, 0x23, 0x43, 0x60, 0x4c, 0x4b, 0x83, 0x60, 0x08, 0x23, 0x03, 0x65, 0x4b, 0x4b, 0x43, 0x65, 0x49, 0xf2, 0x77, 0x73, 0x83, 0x65, 0x02, 0x23, 0x43, 0x62, 0xfe, 0xf7, 0x6b, 0xfe, 0x00, 0x28, 0x00, 0xf0, 0x87, 0x80, 0x20, 0x46, 0xff, 0xf7, 0xbf, 0xff, 0xe3, 0x6d, 0x20, 0x46, 0xdb, 0x06, 0x02, 0xd4, 0xff, 0xf7, 0x8f, 0xfe, 0x01, 0xe0, 0xff, 0xf7, 0x34, 0xfe, 0x00, 0x28, 0x70, 0xd1, 0xe3, 0x6d, 0x58, 0x00, 0x20, 0x46, 0x54, 0xbf, 0x23, 0x6c, 0x63, 0x6c, 0xc3, 0xf3, 0x89, 0x23, 0x23, 0x60, 0x06, 0x23, 0x63, 0x60, 0x38, 0x4b, 0xa3, 0x60, 0x08, 0x23, 0x23, 0x65, 0x38, 0x4b, 0x63, 0x65, 0x49, 0xf6, 0x87, 0x03, 0xa3, 0x65, 0x02, 0x23, 0x63, 0x62, 0xff, 0xf7, 0x9c, 0xff, 0xe3, 0x6d, 0x20, 0x46, 0xd9, 0x06, 0x02, 0xd4, 0xff, 0xf7, 0x6c, 0xfe, 0x01, 0xe0, 0xff, 0xf7, 0x11, 0xfe, 0x00, 0x28, 0x4d, 0xd1, 0xe3, 0x6d, 0x2b, 0x49, 0x13, 0xf0, 0x80, 0x42, 0x0c, 0xbf, 0x23, 0x6c, 0x63, 0x6c, 0xa1, 0x60, 0xc3, 0xf3, 0x09, 0x53, 0x23, 0x60, 0x03, 0x23, 0x63, 0x60, 0x23, 0x65, 0x28, 0x4b, 0x63, 0x65, 0x12, 0xb9, 0x47, 0xf2, 0x76, 0x73, 0x01, 0xe0, 0x47, 0xf2, 0x77, 0x73, 0xa3, 0x65, 0x40, 0x23, 0xe3, 0x61, 0x20, 0x46, 0xfe, 0xf7, 0x1b, 0xfe, 0x00, 0x28, 0x37, 0xd0, 0x20, 0x46, 0xff, 0xf7, 0x70, 0xff, 0xe3, 0x6d, 0x20, 0x46, 0xda, 0x06, 0x02, 0xd4, 0xff, 0xf7, 0x40, 0xfe, 0x01, 0xe0, 0xff, 0xf7, 0xe5, 0xfd, 0x05, 0x46, 0x08, 0xbb, 0xe3, 0x6b, 0x20, 0x46, 0x9b, 0x05, 0x9b, 0x0d, 0x23, 0x60, 0x02, 0x23, 0x63, 0x60, 0x12, 0x4b, 0xa3, 0x60, 0x03, 0x23, 0x23, 0x65, 0x13, 0x4b, 0x63, 0x65, 0x47, 0xf2, 0x76, 0x73, 0xa3, 0x65, 0x40, 0x23, 0xe3, 0x61, 0xfe, 0xf7, 0xf7, 0xfd, 0x98, 0xb1, 0x20, 0x46, 0xff, 0xf7, 0x4d, 0xff, 0xe3, 0x6d, 0x20, 0x46, 0xdb, 0x06, 0x02, 0xd4, 0xff, 0xf7, 0x1d, 0xfe, 0x01, 0xe0, 0xff, 0xf7, 0xc2, 0xfd, 0x38, 0xb1, 0xe6, 0x65, 0x01, 0x20, 0xc4, 0xf8, 0x10, 0x80, 0x67, 0x61, 0xbd, 0xe8, 0xf0, 0x81, 0x28, 0x46, 0xbd, 0xe8, 0xf0, 0x81, 0x00, 0xbf, 0xfb, 0x3b, 0x3b, 0x00, 0x00, 0x00, 0x56, 0x45, 0x00, 0x00, 0x23, 0x22, 0x00, 0x00, 0x33, 0x33, 0x70, 0xb5, 0x4f, 0xf0, 0xb0, 0x12, 0xc5, 0x6d, 0x04, 0x46, 0x06, 0x69, 0x45, 0xf0, 0x01, 0x03, 0x02, 0x61, 0xd9, 0x06, 0xc3, 0x65, 0x4f, 0xf4, 0x80, 0x52, 0x44, 0xbf, 0x45, 0xf0, 0x05, 0x03, 0xc3, 0x65, 0x42, 0x61, 0xff, 0xf7, 0x1c, 0xff, 0x09, 0x4b, 0x1b, 0x68, 0xda, 0x02, 0x0d, 0xd4, 0xe3, 0x6d, 0x20, 0x46, 0xdb, 0x06, 0x02, 0xd4, 0xff, 0xf7, 0xe8, 0xfd, 0x01, 0xe0, 0xff, 0xf7, 0x8d, 0xfd, 0x20, 0xb1, 0xe5, 0x65, 0x01, 0x20, 0x26, 0x61, 0x70, 0xbd, 0x00, 0x20, 0x70, 0xbd, 0x10, 0x30, 0xc6, 0x01, 0xf7, 0xb5, 0x00, 0x24, 0x05, 0x46, 0x01, 0x94, 0xff, 0xf7, 0x00, 0xff, 0x06, 0x46, 0x20, 0xb9, 0x60, 0x48, 0x01, 0xf0, 0xeb, 0xf8, 0x30, 0x46, 0xb9, 0xe0, 0x4f, 0xf0, 0x80, 0x43, 0xe2, 0x07, 0x01, 0xd4, 0xda, 0x43, 0x00, 0xe0, 0x1a, 0x46, 0x01, 0x34, 0x43, 0xf8, 0x04, 0x2b, 0x40, 0x2c, 0xf5, 0xd1, 0x59, 0x4e, 0x02, 0xac, 0x4f, 0xf4, 0x70, 0x61, 0x4f, 0xf4, 0xc0, 0x62, 0x33, 0x68, 0x44, 0xf8, 0x04, 0x3d, 0x20, 0x46, 0xfe, 0xf7, 0x61, 0xfc, 0x20, 0x46, 0x00, 0x22, 0x0c, 0x21, 0x01, 0x24, 0xfe, 0xf7, 0x5b, 0xfc, 0x01, 0x9b, 0x0b, 0x22, 0x43, 0xf0, 0xf0, 0x03, 0x01, 0x93, 0x33, 0x60, 0x02, 0xf1, 0x0b, 0x06, 0x4f, 0xf0, 0x80, 0x43, 0x14, 0xfa, 0x06, 0xf6, 0x00, 0x20, 0xc7, 0x07, 0x01, 0xd4, 0xd9, 0x43, 0x00, 0xe0, 0x19, 0x46, 0x9f, 0x59, 0xb9, 0x42, 0x03, 0xd0, 0x01, 0x32, 0x11, 0x2a, 0xed, 0xd1, 0x05, 0xe0, 0x01, 0x30, 0x04, 0x33, 0x40, 0x28, 0xef, 0xd1, 0x01, 0x91, 0x01, 0xe0, 0x10, 0x22, 0x01, 0x91, 0x3f, 0x4e, 0x10, 0x35, 0x28, 0x46, 0x4f, 0xf4, 0x7f, 0x61, 0x12, 0x01, 0x02, 0xac, 0xfe, 0xf7, 0x31, 0xfc, 0x33, 0x68, 0xf0, 0x21, 0xa0, 0x22, 0x44, 0xf8, 0x04, 0x3d, 0x20, 0x46, 0xfe, 0xf7, 0x29, 0xfc, 0x20, 0x46, 0x0c, 0x21, 0x04, 0x22, 0xfe, 0xf7, 0x24, 0xfc, 0x4f, 0xf4, 0xc0, 0x62, 0x20, 0x46, 0x4f, 0xf4, 0x70, 0x61, 0xfe, 0xf7, 0x1d, 0xfc, 0x01, 0x9b, 0x00, 0x22, 0x33, 0x60, 0x4f, 0xf0, 0x80, 0x43, 0xd1, 0x07, 0x01, 0xd4, 0xd9, 0x43, 0x00, 0xe0, 0x19, 0x46, 0xd3, 0xf8, 0x00, 0x08, 0x81, 0x42, 0x03, 0xd1, 0x01, 0x32, 0x04, 0x33, 0x40, 0x2a, 0xf2, 0xd1, 0x40, 0x3a, 0x27, 0x4e, 0x18, 0xbf, 0x01, 0x22, 0x01, 0x91, 0x28, 0x46, 0x4f, 0xf4, 0x70, 0x41, 0x12, 0x03, 0x02, 0xac, 0xfe, 0xf7, 0xff, 0xfb, 0x33, 0x68, 0xf0, 0x21, 0xa0, 0x22, 0x44, 0xf8, 0x04, 0x3d, 0x20, 0x46, 0xfe, 0xf7, 0xf7, 0xfb, 0x20, 0x46, 0x0c, 0x21, 0x00, 0x22, 0xfe, 0xf7, 0xf2, 0xfb, 0x20, 0x46, 0x4f, 0xf4, 0x20, 0x62, 0x4f, 0xf4, 0x70, 0x61, 0x01, 0x24, 0xfe, 0xf7, 0xea, 0xfb, 0x01, 0x9b, 0x09, 0x22, 0x33, 0x60, 0x14, 0xfa, 0x02, 0xf6, 0x4f, 0xf0, 0x80, 0x43, 0x00, 0x20, 0xc7, 0x07, 0x01, 0xd4, 0xd9, 0x43, 0x00, 0xe0, 0x19, 0x46, 0x9f, 0x59, 0xb9, 0x42, 0x03, 0xd0, 0x01, 0x32, 0x0e, 0x2a, 0xef, 0xd1, 0x09, 0xe0, 0x01, 0x30, 0x04, 0x33, 0x40, 0x28, 0xef, 0xd1, 0x0d, 0x2a, 0x01, 0x91, 0x10, 0xd0, 0x09, 0x2a, 0x07, 0xd0, 0x01, 0xe0, 0x01, 0x91, 0x0b, 0xe0, 0x0a, 0x3a, 0x01, 0x23, 0x13, 0xfa, 0x02, 0xf2, 0x00, 0xe0, 0x00, 0x22, 0x28, 0x46, 0x0f, 0x21, 0xfe, 0xf7, 0xc0, 0xfb, 0x01, 0x20, 0xfe, 0xbd, 0x0d, 0x22, 0xf1, 0xe7, 0xef, 0xba, 0x00, 0x00, 0x00, 0x20, 0xc6, 0x01, 0x38, 0xb5, 0x04, 0x46, 0xc3, 0x6d, 0x9d, 0x04, 0x05, 0xd4, 0xff, 0xf7, 0x41, 0xfe, 0x05, 0x46, 0x08, 0xb9, 0x10, 0x48, 0x0f, 0xe0, 0xe3, 0x6d, 0x58, 0x04, 0x06, 0xd4, 0x20, 0x46, 0xff, 0xf7, 0xf7, 0xfe, 0x05, 0x46, 0x08, 0xb9, 0x0c, 0x48, 0x05, 0xe0, 0x20, 0x46, 0xff, 0xf7, 0x1a, 0xff, 0x05, 0x46, 0x18, 0xb9, 0x09, 0x48, 0x01, 0xf0, 0x0b, 0xf8, 0x08, 0xe0, 0xe3, 0x6d, 0x19, 0x04, 0x04, 0xd4, 0x43, 0xf4, 0xc0, 0x43, 0x43, 0xf0, 0x03, 0x03, 0xe3, 0x65, 0x01, 0x25, 0x28, 0x46, 0x38, 0xbd, 0x00, 0xbf, 0x16, 0xbb, 0x00, 0x00, 0x40, 0xbb, 0x00, 0x00, 0x70, 0xbb, 0x00, 0x00, 0x53, 0x4b, 0x70, 0xb5, 0x0c, 0x46, 0x1b, 0x68, 0x13, 0xf0, 0x01, 0x0f, 0xcb, 0x6d, 0x04, 0xd0, 0x43, 0xf0, 0x80, 0x43, 0x4f, 0x48, 0xcb, 0x65, 0x03, 0xe0, 0x4f, 0x48, 0x23, 0xf0, 0x80, 0x43, 0xcb, 0x65, 0x00, 0xf0, 0xe5, 0xff, 0x4d, 0x4b, 0x1e, 0x68, 0x16, 0xf0, 0x03, 0x06, 0x03, 0xd0, 0x4b, 0x48, 0x00, 0xf0, 0xdd, 0xff, 0x18, 0xe0, 0x4a, 0x48, 0x00, 0xf0, 0xd9, 0xff, 0xe3, 0x6d, 0x1d, 0x06, 0x05, 0xd4, 0x00, 0xf0, 0xc3, 0xf8, 0x05, 0x46, 0x08, 0xb9, 0x46, 0x48, 0x1e, 0xe0, 0x20, 0x46, 0xfe, 0xf7, 0x83, 0xfc, 0x00, 0x28, 0x75, 0xd0, 0xe3, 0x6d, 0xd8, 0x07, 0x04, 0xd4, 0x20, 0x46, 0xff, 0xf7, 0x9d, 0xff, 0x00, 0x28, 0x6d, 0xd0, 0x21, 0x68, 0x3f, 0x48, 0x00, 0xf0, 0xbf, 0xff, 0x61, 0x68, 0x3e, 0x48, 0x00, 0xf0, 0xbb, 0xff, 0xa1, 0x68, 0x3d, 0x48, 0x00, 0xf0, 0xb7, 0xff, 0x20, 0x46, 0xff, 0xf7, 0xc4, 0xfd, 0x05, 0x46, 0x18, 0xb9, 0x3a, 0x48, 0x00, 0xf0, 0xaf, 0xff, 0x5b, 0xe0, 0x65, 0x69, 0x00, 0x2d, 0x02, 0xda, 0xc5, 0xf3, 0x0e, 0x45, 0x0a, 0xe0, 0xff, 0xf7, 0x0a, 0xfc, 0x05, 0x46, 0x35, 0x48, 0x29, 0x46, 0x00, 0xf0, 0xa1, 0xff, 0xa3, 0x8a, 0x43, 0xea, 0x05, 0x43, 0x63, 0x61, 0xe3, 0x6d, 0x13, 0xf4, 0x00, 0x7f, 0x30, 0x4b, 0x02, 0xd1, 0x62, 0x68, 0x06, 0x2a, 0x05, 0xd1, 0x1a, 0x68, 0x22, 0xf4, 0x70, 0x42, 0x42, 0xf4, 0xa0, 0x42, 0x02, 0xe0, 0x1a, 0x68, 0x22, 0xf4, 0x70, 0x42, 0x1a, 0x60, 0x2a, 0x4b, 0x1a, 0x68, 0x42, 0xf0, 0x00, 0x42, 0x1a, 0x60, 0xe3, 0x6d, 0xd9, 0x05, 0x04, 0xd5, 0x27, 0x4b, 0x1a, 0x68, 0x42, 0xf4, 0x40, 0x72, 0x1a, 0x60, 0xe3, 0x6d, 0x13, 0xf0, 0x80, 0x6f, 0x24, 0x4b, 0x1a, 0x68, 0x14, 0xbf, 0x22, 0xf4, 0x00, 0x52, 0x42, 0xf4, 0x00, 0x52, 0x1a, 0x60, 0x63, 0x68, 0x07, 0x2b, 0x06, 0xd1, 0x1f, 0x4b, 0x1a, 0x68, 0x22, 0xf4, 0x70, 0x22, 0x42, 0xf4, 0x80, 0x32, 0x1a, 0x60, 0xe3, 0x6d, 0x1a, 0x01, 0x01, 0xd4, 0xfe, 0xf7, 0x3e, 0xfc, 0x16, 0xb1, 0xe3, 0x6d, 0xdb, 0x00, 0x0d, 0xd5, 0x18, 0x4b, 0x4f, 0xf0, 0xff, 0x32, 0x28, 0x46, 0x4f, 0xf4, 0x80, 0x71, 0x1a, 0x60, 0xff, 0xf7, 0x2b, 0xfd, 0x18, 0xb1, 0x01, 0xe0, 0x05, 0x46, 0x00, 0xe0, 0x00, 0x25, 0x28, 0x46, 0x70, 0xbd, 0x04, 0x50, 0xc1, 0x01, 0x9a, 0xbb, 0x00, 0x00, 0xa9, 0xbb, 0x00, 0x00, 0xf4, 0x05, 0xc2, 0x01, 0xb7, 0xbb, 0x00, 0x00, 0xd6, 0xbb, 0x00, 0x00, 0xf2, 0xbb, 0x00, 0x00, 0x16, 0xbc, 0x00, 0x00, 0x28, 0xbc, 0x00, 0x00, 0x59, 0xbc, 0x00, 0x00, 0x6e, 0xbc, 0x00, 0x00, 0x88, 0xbc, 0x00, 0x00, 0x00, 0x31, 0xc6, 0x01, 0x40, 0x31, 0xc6, 0x01, 0xb8, 0x30, 0xc6, 0x01, 0x08, 0x31, 0xc6, 0x01, 0x7c, 0x30, 0xc6, 0x01, 0x94, 0x20, 0xc6, 0x01, 0x07, 0x4a, 0x80, 0xea, 0x01, 0x20, 0x08, 0x23, 0x00, 0xf4, 0x00, 0x41, 0x40, 0x00, 0x80, 0xb2, 0x09, 0xb1, 0x50, 0x40, 0x80, 0xb2, 0x01, 0x3b, 0x9b, 0xb2, 0x00, 0x2b, 0xf4, 0xd1, 0x70, 0x47, 0x05, 0x80, 0xff, 0xff, 0x38, 0xb5, 0x05, 0x46, 0x0c, 0x46, 0x2c, 0x19, 0xff, 0xf7, 0xe8, 0xff, 0x44, 0xea, 0x00, 0x40, 0x38, 0xbd, 0x70, 0xb5, 0x00, 0x20, 0xfe, 0xf7, 0x8d, 0xfa, 0x01, 0x25, 0x04, 0x46, 0x00, 0x20, 0x29, 0x46, 0xff, 0xf7, 0xed, 0xff, 0xa0, 0x42, 0x05, 0xd0, 0x01, 0x35, 0xed, 0xb2, 0x11, 0x2d, 0xf5, 0xd1, 0x00, 0x20, 0x70, 0xbd, 0x01, 0x24, 0x20, 0x46, 0xfe, 0xf7, 0x7b, 0xfa, 0x29, 0x46, 0x06, 0x46, 0x20, 0x46, 0xff, 0xf7, 0xdc, 0xff, 0x86, 0x42, 0x05, 0xd1, 0x01, 0x34, 0xa4, 0xb2, 0x05, 0x2c, 0xf1, 0xd1, 0x01, 0x20, 0x70, 0xbd, 0x00, 0x20, 0x70, 0xbd, 0x38, 0xb5, 0x47, 0xf2, 0x10, 0x24, 0x05, 0x46, 0x00, 0x21, 0x88, 0x22, 0x20, 0x46, 0x00, 0xf0, 0x8c, 0xff, 0x09, 0x4b, 0x80, 0x22, 0x47, 0xf2, 0x18, 0x20, 0x84, 0xe8, 0x28, 0x00, 0x07, 0x4c, 0x21, 0x46, 0x00, 0xf0, 0x87, 0xff, 0x4f, 0xf0, 0x81, 0x40, 0x21, 0x46, 0x80, 0x22, 0xbd, 0xe8, 0x38, 0x40, 0x00, 0xf0, 0x7f, 0xbf, 0x00, 0xbf, 0x44, 0x52, 0x41, 0x4d, 0x38, 0x80, 0x00, 0x00, 0x00, 0x20, 0x70, 0x47, 0x70, 0x47, 0x00, 0xbf, 0x0b, 0x4b, 0x1a, 0x68, 0x42, 0xf0, 0x00, 0x42, 0x1a, 0x60, 0x00, 0x20, 0x09, 0x4b, 0x18, 0x60, 0x5a, 0x68, 0x42, 0xf0, 0x3f, 0x02, 0x5a, 0x60, 0x03, 0x22, 0xc3, 0xf8, 0x80, 0x20, 0x06, 0x4a, 0xc3, 0xf8, 0x8c, 0x20, 0xc3, 0xf8, 0x84, 0x00, 0xc3, 0xf8, 0x88, 0x00, 0x70, 0x47, 0x00, 0xbf, 0x44, 0x01, 0xc2, 0x01, 0x00, 0x0c, 0xc2, 0x01, 0xe0, 0x2e, 0x0c, 0x00, 0x04, 0x4b, 0xd3, 0xf8, 0x84, 0x20, 0x82, 0x18, 0xd3, 0xf8, 0x84, 0x10, 0x8a, 0x42, 0xfb, 0xd2, 0x70, 0x47, 0x00, 0xbf, 0x00, 0x0c, 0xc2, 0x01, 0x04, 0x4b, 0xd3, 0xf8, 0x88, 0x20, 0x82, 0x18, 0xd3, 0xf8, 0x88, 0x10, 0x8a, 0x42, 0xfb, 0xd2, 0x70, 0x47, 0x00, 0xbf, 0x00, 0x0c, 0xc2, 0x01, 0x70, 0x47, 0x00, 0xbf, 0x2d, 0xe9, 0xf0, 0x4f, 0x8b, 0xb0, 0x08, 0x91, 0x03, 0x46, 0x00, 0x21, 0x03, 0x90, 0x09, 0x92, 0x6d, 0xe0, 0x93, 0xf8, 0x00, 0x80, 0x1d, 0x46, 0x5c, 0x78, 0x08, 0x33, 0xb8, 0xf1, 0x00, 0x0f, 0x01, 0xd1, 0x01, 0x31, 0x63, 0xe0, 0x24, 0x22, 0xe6, 0x08, 0x02, 0xfb, 0x08, 0xf2, 0x4f, 0xea, 0x14, 0x19, 0x02, 0xf1, 0xe1, 0x73, 0x03, 0xf2, 0xdc, 0x73, 0x03, 0xeb, 0x86, 0x00, 0x53, 0xf8, 0x26, 0x30, 0x04, 0x90, 0x02, 0xeb, 0x89, 0x00, 0x02, 0xf1, 0xe1, 0x72, 0x00, 0xf1, 0xe1, 0x70, 0x02, 0xf2, 0xec, 0x72, 0x00, 0xf5, 0xff, 0x67, 0x06, 0x97, 0x00, 0xf5, 0xfe, 0x67, 0x07, 0x97, 0xd0, 0xf8, 0xf8, 0x77, 0x02, 0x97, 0xd0, 0xf8, 0xf0, 0x07, 0x05, 0x90, 0xd2, 0xf8, 0x00, 0xb0, 0xf0, 0x00, 0x4f, 0xf0, 0x07, 0x0c, 0x09, 0x9f, 0x20, 0x1a, 0x80, 0x00, 0x0c, 0xfa, 0x00, 0xfc, 0x23, 0xea, 0x0c, 0x03, 0x37, 0xb1, 0x95, 0xf8, 0x02, 0xc0, 0x0c, 0xf0, 0x07, 0x0c, 0x0c, 0xfa, 0x00, 0xf0, 0x03, 0x43, 0x4f, 0xea, 0x09, 0x10, 0x95, 0xf8, 0x03, 0xc0, 0x4f, 0xf0, 0x03, 0x0a, 0x02, 0x9f, 0x20, 0x1a, 0x40, 0x00, 0x0c, 0xf0, 0x03, 0x0c, 0x0a, 0xfa, 0x00, 0xfa, 0x0c, 0xfa, 0x00, 0xfc, 0x6f, 0xea, 0x0a, 0x0a, 0x0a, 0xea, 0x07, 0x07, 0x02, 0x97, 0x47, 0xea, 0x0c, 0x0c, 0x05, 0x9f, 0x0a, 0xea, 0x07, 0x0a, 0x2f, 0x79, 0x07, 0xf0, 0x03, 0x07, 0x87, 0x40, 0xa8, 0x78, 0x4a, 0xea, 0x07, 0x07, 0x01, 0x28, 0x11, 0xd1, 0x6d, 0x79, 0x00, 0xfa, 0x04, 0xfa, 0x2b, 0xea, 0x0a, 0x0a, 0x05, 0xf0, 0x01, 0x05, 0xa5, 0x40, 0x4a, 0xea, 0x05, 0x05, 0x08, 0xe0, 0xdd, 0xf8, 0x20, 0xb0, 0x59, 0x45, 0x8d, 0xd1, 0x4f, 0xf0, 0xff, 0x30, 0xc2, 0xe0, 0x5d, 0x46, 0x00, 0x20, 0xdd, 0xf8, 0x0c, 0xb0, 0x4c, 0x1c, 0xc2, 0x46, 0x05, 0x94, 0x02, 0x90, 0xc8, 0x46, 0x01, 0x96, 0x0b, 0xeb, 0xc1, 0x01, 0xb3, 0x46, 0xa4, 0xe0, 0x91, 0xf8, 0x08, 0x90, 0x4e, 0x7a, 0xb9, 0xf1, 0x00, 0x0f, 0x00, 0xf0, 0xa3, 0x80, 0x30, 0x09, 0xf4, 0x08, 0x40, 0x45, 0x03, 0x90, 0x01, 0xd1, 0xd1, 0x45, 0x30, 0xd0, 0x04, 0x98, 0x03, 0x60, 0x06, 0x9b, 0xc3, 0xf8, 0x00, 0xc0, 0x07, 0x98, 0x02, 0x9b, 0x07, 0x60, 0x03, 0xb1, 0x15, 0x60, 0x0f, 0xfa, 0x89, 0xf3, 0xdd, 0xf8, 0x0c, 0xb0, 0x5a, 0x01, 0x02, 0xeb, 0x83, 0x02, 0x02, 0xf1, 0xe1, 0x73, 0x02, 0xeb, 0x8b, 0x05, 0x03, 0xf2, 0xdc, 0x73, 0x03, 0xeb, 0x84, 0x07, 0x05, 0xf1, 0xe1, 0x75, 0x05, 0xf5, 0xff, 0x60, 0x53, 0xf8, 0x24, 0x30, 0x04, 0x97, 0x02, 0xf1, 0xe1, 0x72, 0x05, 0xf5, 0xfe, 0x67, 0x06, 0x90, 0x07, 0x97, 0x02, 0xf2, 0xec, 0x72, 0xd5, 0xf8, 0xf8, 0x07, 0xd5, 0xf8, 0xf0, 0x77, 0x15, 0x68, 0x84, 0x46, 0x00, 0x20, 0x02, 0x90, 0x14, 0xe0, 0xdd, 0xf8, 0x04, 0xb0, 0xa3, 0x45, 0x10, 0xd0, 0x04, 0x98, 0x0f, 0xfa, 0x8a, 0xfa, 0x03, 0x60, 0x4f, 0xea, 0x4a, 0x13, 0x03, 0xeb, 0x8a, 0x03, 0x03, 0xf1, 0xe1, 0x73, 0x03, 0xf2, 0xdc, 0x73, 0x03, 0xeb, 0x84, 0x00, 0x53, 0xf8, 0x24, 0x30, 0x04, 0x90, 0x4f, 0xea, 0xc4, 0x0a, 0x4f, 0xf0, 0x07, 0x0b, 0x09, 0x98, 0xca, 0xeb, 0x06, 0x0a, 0x4f, 0xea, 0x8a, 0x0a, 0x0b, 0xfa, 0x0a, 0xf8, 0x23, 0xea, 0x08, 0x03, 0x38, 0xb1, 0x91, 0xf8, 0x0a, 0x80, 0x08, 0xea, 0x0b, 0x08, 0x08, 0xfa, 0x0a, 0xf8, 0x43, 0xea, 0x08, 0x03, 0xdd, 0xf8, 0x0c, 0xb0, 0x03, 0x20, 0x4f, 0xea, 0x0b, 0x1a, 0xca, 0xeb, 0x06, 0x0a, 0x4f, 0xea, 0x4a, 0x0a, 0x00, 0xfa, 0x0a, 0xf8, 0x6f, 0xea, 0x08, 0x08, 0x0c, 0xea, 0x08, 0x0b, 0x07, 0xea, 0x08, 0x08, 0x0f, 0x7b, 0x91, 0xf8, 0x0b, 0xc0, 0x07, 0x40, 0x07, 0xfa, 0x0a, 0xf7, 0x0c, 0xea, 0x00, 0x0c, 0x0c, 0xfa, 0x0a, 0xfc, 0x48, 0xea, 0x07, 0x07, 0x91, 0xf8, 0x0a, 0x80, 0x4b, 0xea, 0x0c, 0x0c, 0xb8, 0xf1, 0x01, 0x0f, 0x0b, 0xd1, 0x08, 0xfa, 0x06, 0xf0, 0xcd, 0xf8, 0x08, 0x80, 0x25, 0xea, 0x00, 0x05, 0x48, 0x7b, 0x00, 0xf0, 0x01, 0x00, 0x10, 0xfa, 0x06, 0xf6, 0x35, 0x43, 0xdd, 0xf8, 0x14, 0xb0, 0x08, 0x31, 0xdd, 0xf8, 0x0c, 0x80, 0xca, 0x46, 0x01, 0x94, 0x0b, 0xf1, 0x01, 0x0b, 0xcd, 0xf8, 0x14, 0xb0, 0x05, 0x98, 0x08, 0x9c, 0xa0, 0x42, 0xff, 0xf4, 0x56, 0xaf, 0x02, 0x98, 0x04, 0x99, 0x0b, 0x60, 0x06, 0x9b, 0xc3, 0xf8, 0x00, 0xc0, 0x07, 0x9c, 0x27, 0x60, 0x08, 0xb1, 0x00, 0x20, 0x15, 0x60, 0x0b, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x10, 0xb5, 0x0b, 0x46, 0x04, 0x46, 0x40, 0xbb, 0x14, 0x49, 0x08, 0x68, 0x20, 0xf4, 0x80, 0x30, 0x08, 0x60, 0x40, 0xf4, 0x80, 0x30, 0x08, 0x60, 0xa1, 0xf5, 0x1b, 0x71, 0x08, 0x68, 0x20, 0xf4, 0x80, 0x30, 0x08, 0x60, 0x40, 0xf4, 0x80, 0x30, 0x08, 0x60, 0x11, 0x46, 0x18, 0x46, 0x01, 0x22, 0xff, 0xf7, 0xa2, 0xfe, 0x0a, 0x4b, 0x0b, 0x4a, 0x13, 0x60, 0x03, 0x22, 0x1a, 0x61, 0xd9, 0x68, 0x41, 0xf0, 0x80, 0x01, 0xd9, 0x60, 0x0d, 0x21, 0x5c, 0x60, 0x19, 0x60, 0xd9, 0x68, 0x21, 0xf0, 0x80, 0x01, 0xd9, 0x60, 0xda, 0x60, 0x07, 0x22, 0x9a, 0x60, 0x10, 0xbd, 0xd8, 0x02, 0xc2, 0x01, 0x00, 0x80, 0xc2, 0x01, 0xe8, 0xbd, 0x00, 0x00, 0x03, 0x4b, 0x1b, 0x68, 0x5a, 0x69, 0x52, 0x06, 0xfc, 0xd5, 0x18, 0x60, 0x70, 0x47, 0x00, 0xbf, 0xe8, 0xbd, 0x00, 0x00, 0x03, 0x4b, 0x1b, 0x68, 0x5a, 0x69, 0xd1, 0x07, 0xfc, 0xd5, 0x18, 0x68, 0xc0, 0xb2, 0x70, 0x47, 0xe8, 0xbd, 0x00, 0x00, 0x02, 0x4b, 0x1b, 0x68, 0x58, 0x69, 0x00, 0xf0, 0x01, 0x00, 0x70, 0x47, 0xe8, 0xbd, 0x00, 0x00, 0x02, 0x4b, 0x1a, 0x68, 0x10, 0x43, 0x18, 0x60, 0x70, 0x47, 0x00, 0xbf, 0x20, 0x03, 0xc2, 0x01, 0x02, 0x4b, 0x1a, 0x68, 0x22, 0xea, 0x00, 0x00, 0x18, 0x60, 0x70, 0x47, 0x20, 0x03, 0xc2, 0x01, 0x10, 0xb5, 0x14, 0x20, 0x14, 0x4a, 0x15, 0x4b, 0x1a, 0x60, 0xff, 0xf7, 0x47, 0xfe, 0x01, 0x20, 0xff, 0xf7, 0xee, 0xff, 0x4f, 0xf0, 0xe1, 0x74, 0x4f, 0xf4, 0x80, 0x53, 0x23, 0x60, 0x01, 0x20, 0xff, 0xf7, 0xde, 0xff, 0x23, 0x68, 0x43, 0xf0, 0x00, 0x43, 0x23, 0x60, 0x23, 0x68, 0xdb, 0x00, 0xfc, 0xd5, 0x14, 0x20, 0xff, 0xf7, 0x32, 0xfe, 0x01, 0x20, 0xff, 0xf7, 0xd9, 0xff, 0x07, 0x4b, 0x1a, 0x68, 0x22, 0xf4, 0x40, 0x32, 0x42, 0xf4, 0x00, 0x32, 0x4f, 0xf4, 0x7a, 0x70, 0x1a, 0x60, 0xbd, 0xe8, 0x10, 0x40, 0xff, 0xf7, 0x22, 0xbe, 0x02, 0x03, 0x01, 0x00, 0x50, 0x00, 0xc2, 0x01, 0x13, 0x4b, 0x10, 0xb5, 0x1a, 0x68, 0x22, 0xf4, 0x40, 0x52, 0x42, 0xf4, 0x80, 0x52, 0x20, 0x20, 0x1a, 0x60, 0xff, 0xf7, 0xbd, 0xff, 0x0f, 0x4c, 0x20, 0x20, 0x0f, 0x4b, 0x23, 0x60, 0xff, 0xf7, 0xaf, 0xff, 0x23, 0x68, 0x43, 0xf0, 0x00, 0x43, 0x23, 0x60, 0x23, 0x68, 0xda, 0x00, 0xfc, 0xd5, 0x14, 0x20, 0xff, 0xf7, 0x03, 0xfe, 0x20, 0x20, 0xff, 0xf7, 0xaa, 0xff, 0x04, 0x4b, 0x4f, 0xf4, 0xc0, 0x72, 0x1a, 0x60, 0x1a, 0x68, 0x42, 0xf4, 0x40, 0x52, 0x1a, 0x60, 0x10, 0xbd, 0x00, 0xbf, 0x54, 0x00, 0xc2, 0x01, 0x28, 0x00, 0xc2, 0x01, 0x11, 0x18, 0x04, 0x00, 0x08, 0xb5, 0x07, 0x4b, 0x1a, 0x68, 0x42, 0xf0, 0x40, 0x02, 0x14, 0x20, 0x1a, 0x60, 0xff, 0xf7, 0xe7, 0xfd, 0x04, 0x4b, 0x1a, 0x68, 0x42, 0xf0, 0x40, 0x02, 0x1a, 0x60, 0x08, 0xbd, 0x00, 0xbf, 0xc0, 0x02, 0xc2, 0x01, 0x60, 0x00, 0xc2, 0x01, 0x10, 0xb5, 0x4f, 0xf0, 0x00, 0x42, 0x0a, 0x4b, 0x1a, 0x60, 0x0a, 0x4c, 0x02, 0x23, 0x01, 0x20, 0x23, 0x60, 0xff, 0xf7, 0xd1, 0xfd, 0x08, 0x4b, 0x01, 0x20, 0x23, 0x60, 0xff, 0xf7, 0xcc, 0xfd, 0x06, 0x4b, 0x01, 0x20, 0x23, 0x60, 0xbd, 0xe8, 0x10, 0x40, 0xff, 0xf7, 0xc5, 0xbd, 0x00, 0xbf, 0xfc, 0x00, 0xc2, 0x01, 0x5c, 0x01, 0xc2, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x81, 0x05, 0x4b, 0x1a, 0x68, 0x42, 0xf0, 0x20, 0x02, 0x1a, 0x60, 0xa3, 0xf5, 0x18, 0x73, 0x1a, 0x68, 0x42, 0xf0, 0x20, 0x02, 0x1a, 0x60, 0x70, 0x47, 0xc0, 0x02, 0xc2, 0x01, 0x08, 0xb5, 0x16, 0x48, 0x00, 0xf0, 0x48, 0xfc, 0x15, 0x4b, 0x1a, 0x68, 0x42, 0xf0, 0x80, 0x52, 0x0a, 0x20, 0x1a, 0x60, 0xff, 0xf7, 0xa2, 0xfd, 0x4f, 0xf0, 0x80, 0x50, 0xff, 0xf7, 0x40, 0xff, 0xff, 0xf7, 0x4e, 0xff, 0xff, 0xf7, 0x7c, 0xff, 0xff, 0xf7, 0xa8, 0xff, 0xff, 0xf7, 0xba, 0xff, 0xff, 0xf7, 0xd8, 0xff, 0x4f, 0xf0, 0x80, 0x50, 0xff, 0xf7, 0x3a, 0xff, 0x09, 0x48, 0x00, 0xf0, 0x2b, 0xfc, 0x09, 0x4b, 0x1b, 0x68, 0x03, 0xf0, 0x07, 0x03, 0x01, 0x2b, 0x04, 0xd0, 0x00, 0x20, 0xbd, 0xe8, 0x08, 0x40, 0x00, 0xf0, 0xf8, 0xba, 0x08, 0xbd, 0x00, 0xbf, 0xcd, 0xbc, 0x00, 0x00, 0xf0, 0x00, 0xc0, 0x01, 0xde, 0xbc, 0x00, 0x00, 0x04, 0x50, 0xc1, 0x01, 0x08, 0xb5, 0x11, 0x48, 0x00, 0xf0, 0x12, 0xfc, 0x10, 0x4a, 0x0a, 0x20, 0x10, 0x4b, 0x1a, 0x60, 0xff, 0xf7, 0x62, 0xfd, 0x0f, 0x4b, 0x41, 0xf2, 0x10, 0x02, 0x0a, 0x20, 0x1a, 0x60, 0xff, 0xf7, 0x5b, 0xfd, 0x4f, 0xf4, 0x80, 0x52, 0x4f, 0xf0, 0xe1, 0x73, 0x1a, 0x60, 0x0a, 0x20, 0xff, 0xf7, 0x53, 0xfd, 0x09, 0x4a, 0x0a, 0x20, 0x09, 0x4b, 0x1a, 0x60, 0xff, 0xf7, 0x4d, 0xfd, 0x08, 0x48, 0xbd, 0xe8, 0x08, 0x40, 0x00, 0xf0, 0xf2, 0xbb, 0xcb, 0xbc, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x50, 0x00, 0xc2, 0x01, 0x54, 0x00, 0xc2, 0x01, 0x11, 0x18, 0x04, 0x00, 0x28, 0x00, 0xc2, 0x01, 0xdc, 0xbc, 0x00, 0x00, 0x70, 0x47, 0x00, 0xbf, 0x0f, 0x4b, 0x00, 0x22, 0x1b, 0x68, 0xda, 0x61, 0x01, 0x22, 0x9a, 0x61, 0xda, 0x68, 0x42, 0xf0, 0x20, 0x02, 0xda, 0x60, 0x0b, 0x4a, 0x12, 0xf1, 0xff, 0x32, 0x0b, 0xd3, 0xd9, 0x68, 0x09, 0x07, 0xf9, 0xd5, 0x00, 0x2a, 0x09, 0xdd, 0x1b, 0x69, 0x08, 0x2b, 0x0c, 0xbf, 0x00, 0x20, 0x6f, 0xf0, 0x07, 0x00, 0x70, 0x47, 0x6f, 0xf0, 0x03, 0x00, 0x70, 0x47, 0x6f, 0xf0, 0x03, 0x00, 0x70, 0x47, 0xe0, 0xbd, 0x00, 0x00, 0xff, 0xff, 0x0f, 0x00, 0x14, 0x4b, 0xc0, 0xb2, 0x01, 0xf0, 0x01, 0x01, 0x41, 0xea, 0x40, 0x00, 0x1b, 0x68, 0x98, 0x60, 0xda, 0x68, 0x42, 0xf0, 0x08, 0x02, 0xda, 0x60, 0x4f, 0xf6, 0xff, 0x72, 0x12, 0xf1, 0xff, 0x32, 0x12, 0xd3, 0xd8, 0x68, 0x00, 0x07, 0xf9, 0xd5, 0x00, 0x2a, 0x10, 0xdd, 0x1b, 0x69, 0x29, 0xb9, 0x18, 0x2b, 0x14, 0xbf, 0x6f, 0xf0, 0x17, 0x00, 0x00, 0x20, 0x70, 0x47, 0x40, 0x2b, 0x14, 0xbf, 0x6f, 0xf0, 0x3f, 0x00, 0x00, 0x20, 0x70, 0x47, 0x6f, 0xf0, 0x03, 0x00, 0x70, 0x47, 0x6f, 0xf0, 0x03, 0x00, 0x70, 0x47, 0xe0, 0xbd, 0x00, 0x00, 0x0f, 0x4b, 0xc0, 0xb2, 0x1b, 0x68, 0x98, 0x60, 0xda, 0x68, 0x42, 0xf0, 0x08, 0x02, 0xda, 0x60, 0x4f, 0xf6, 0xff, 0x72, 0x12, 0xf1, 0xff, 0x32, 0x0b, 0xd3, 0xd9, 0x68, 0x09, 0x07, 0xf9, 0xd5, 0x00, 0x2a, 0x09, 0xdd, 0x1b, 0x69, 0x28, 0x2b, 0x0c, 0xbf, 0x00, 0x20, 0x6f, 0xf0, 0x27, 0x00, 0x70, 0x47, 0x6f, 0xf0, 0x03, 0x00, 0x70, 0x47, 0x6f, 0xf0, 0x03, 0x00, 0x70, 0x47, 0x00, 0xbf, 0xe0, 0xbd, 0x00, 0x00, 0x13, 0x4b, 0x1b, 0x68, 0xda, 0x68, 0x42, 0xf0, 0x10, 0x02, 0xda, 0x60, 0xda, 0x68, 0x42, 0xf0, 0x08, 0x02, 0xda, 0x60, 0x4f, 0xf6, 0xff, 0x72, 0x12, 0xf1, 0xff, 0x32, 0x12, 0xd3, 0xd9, 0x68, 0xc8, 0x06, 0xf9, 0xd4, 0x00, 0x2a, 0x10, 0xdd, 0x4f, 0xf4, 0x80, 0x32, 0x01, 0x3a, 0x02, 0xd0, 0x19, 0x69, 0xf8, 0x29, 0xfa, 0xd1, 0x1b, 0x69, 0xf8, 0x2b, 0x0c, 0xbf, 0x00, 0x20, 0x6f, 0xf0, 0x03, 0x00, 0x70, 0x47, 0x6f, 0xf0, 0x03, 0x00, 0x70, 0x47, 0x6f, 0xf0, 0x03, 0x00, 0x70, 0x47, 0xe0, 0xbd, 0x00, 0x00, 0x38, 0xb5, 0x0a, 0x4b, 0x1a, 0x68, 0x42, 0xf0, 0x01, 0x02, 0x09, 0x4c, 0x01, 0x20, 0x1a, 0x60, 0xff, 0xf7, 0x92, 0xfc, 0x25, 0x68, 0x25, 0xf0, 0x01, 0x05, 0x01, 0x20, 0x25, 0x60, 0xff, 0xf7, 0x8b, 0xfc, 0x45, 0xf0, 0x01, 0x05, 0x25, 0x60, 0x38, 0xbd, 0x00, 0xbf, 0xd8, 0x02, 0xc2, 0x01, 0x6c, 0x00, 0xc2, 0x01, 0x7f, 0xb5, 0x00, 0x21, 0x10, 0x22, 0x05, 0x46, 0x68, 0x46, 0x02, 0x26, 0x00, 0xf0, 0xcd, 0xfb, 0x01, 0x24, 0xff, 0x23, 0x8d, 0xf8, 0x03, 0x30, 0x8d, 0xf8, 0x04, 0x30, 0x8d, 0xf8, 0x05, 0x30, 0x8d, 0xf8, 0x0b, 0x30, 0x8d, 0xf8, 0x0c, 0x30, 0x8d, 0xf8, 0x0d, 0x30, 0x8d, 0xf8, 0x00, 0x60, 0x8d, 0xf8, 0x02, 0x60, 0x8d, 0xf8, 0x08, 0x60, 0x8d, 0xf8, 0x09, 0x40, 0x8d, 0xf8, 0x0a, 0x60, 0xff, 0xf7, 0xc4, 0xff, 0x22, 0x46, 0x68, 0x46, 0x31, 0x46, 0xff, 0xf7, 0x75, 0xfc, 0x2d, 0x4b, 0x2d, 0x4a, 0x13, 0x60, 0x4f, 0xf4, 0x80, 0x32, 0x9c, 0x61, 0x99, 0x69, 0x09, 0xb1, 0x01, 0x3a, 0xfb, 0xd1, 0x1b, 0x6a, 0x03, 0xf0, 0x30, 0x03, 0x30, 0x2b, 0x30, 0xd0, 0x25, 0x4b, 0x05, 0x22, 0x4f, 0xf4, 0xfa, 0x70, 0x0a, 0x24, 0x24, 0x4e, 0x1a, 0x62, 0xff, 0xf7, 0x4f, 0xfc, 0x1a, 0xe0, 0x1a, 0x6a, 0x4f, 0xf4, 0x7a, 0x70, 0x42, 0xf0, 0x08, 0x02, 0x1a, 0x62, 0x1a, 0x6a, 0x42, 0xf0, 0x02, 0x02, 0x1a, 0x62, 0xff, 0xf7, 0x42, 0xfc, 0x33, 0x68, 0x4f, 0xf4, 0x7a, 0x70, 0x1a, 0x6a, 0x22, 0xf0, 0x08, 0x02, 0x1a, 0x62, 0x1a, 0x6a, 0x22, 0xf0, 0x02, 0x02, 0x1a, 0x62, 0xff, 0xf7, 0x35, 0xfc, 0x01, 0x3c, 0x03, 0xd0, 0x33, 0x68, 0x1a, 0x6a, 0x92, 0x07, 0xe0, 0xd5, 0x12, 0x4b, 0x00, 0x22, 0x4f, 0xf4, 0xfa, 0x70, 0x1b, 0x68, 0x1a, 0x62, 0xff, 0xf7, 0x27, 0xfc, 0x63, 0x2d, 0x05, 0xdd, 0xb5, 0xf5, 0xc8, 0x7f, 0xa8, 0xbf, 0x4f, 0xf4, 0xc8, 0x75, 0x00, 0xe0, 0x64, 0x25, 0x09, 0x4b, 0x4f, 0xf4, 0x16, 0x60, 0x03, 0x21, 0x69, 0x43, 0x1c, 0x68, 0x00, 0xf0, 0x30, 0xff, 0x43, 0x1e, 0xdb, 0x00, 0x43, 0xf0, 0x01, 0x03, 0x63, 0x61, 0x40, 0x23, 0xe3, 0x60, 0x00, 0x23, 0xe3, 0x61, 0x7f, 0xbd, 0x00, 0xac, 0xc2, 0x01, 0xe0, 0xbd, 0x00, 0x00, 0x02, 0x4b, 0x1a, 0x68, 0x22, 0xf0, 0x01, 0x02, 0x1a, 0x60, 0x70, 0x47, 0x6c, 0x00, 0xc2, 0x01, 0xf7, 0xb5, 0x04, 0x46, 0x01, 0x91, 0x15, 0x46, 0x1e, 0x46, 0x08, 0x9f, 0xff, 0xf7, 0xb4, 0xfe, 0x01, 0x46, 0x00, 0x28, 0x7f, 0xd1, 0x20, 0x46, 0xff, 0xf7, 0xd2, 0xfe, 0x00, 0x28, 0x7a, 0xd1, 0x02, 0x2d, 0x03, 0xdc, 0x14, 0xbf, 0x00, 0x25, 0x01, 0x25, 0x00, 0xe0, 0x02, 0x25, 0x01, 0xab, 0x58, 0x5d, 0xff, 0xf7, 0xf1, 0xfe, 0x00, 0x28, 0x6d, 0xd1, 0x15, 0xf1, 0xff, 0x35, 0xf6, 0xd2, 0x3c, 0x4b, 0x1d, 0x68, 0xeb, 0x68, 0x43, 0xf0, 0x20, 0x03, 0xeb, 0x60, 0x4f, 0xf6, 0xff, 0x73, 0x13, 0xf1, 0xff, 0x33, 0x5d, 0xd3, 0xea, 0x68, 0x11, 0x07, 0xf9, 0xd5, 0x00, 0x2b, 0x5a, 0xdd, 0x2b, 0x69, 0x10, 0x2b, 0x57, 0xd1, 0x5c, 0xe0, 0x01, 0x2f, 0x2f, 0xd1, 0xeb, 0x68, 0x43, 0xf0, 0x08, 0x03, 0xeb, 0x60, 0x4f, 0xf6, 0xff, 0x73, 0x13, 0xf1, 0xff, 0x33, 0x4b, 0xd3, 0xea, 0x68, 0x12, 0x07, 0xf9, 0xd5, 0x00, 0x2b, 0x46, 0xdd, 0xab, 0x68, 0x33, 0x70, 0x2b, 0x69, 0x58, 0x2b, 0x4e, 0xd0, 0x40, 0xe0, 0xeb, 0x68, 0x43, 0xf0, 0x0c, 0x03, 0xeb, 0x60, 0x4f, 0xf6, 0xff, 0x73, 0x13, 0xf1, 0xff, 0x33, 0x37, 0xd3, 0xe9, 0x68, 0x0c, 0x07, 0xf9, 0xd5, 0x00, 0x2b, 0x32, 0xdd, 0xab, 0x68, 0x33, 0x54, 0x4f, 0xf6, 0xff, 0x73, 0x13, 0xf1, 0xff, 0x33, 0x2b, 0xd3, 0x29, 0x69, 0x50, 0x29, 0xf9, 0xd1, 0x00, 0x2b, 0x26, 0xdd, 0x01, 0x30, 0x00, 0xe0, 0x7a, 0x1e, 0x90, 0x42, 0xeb, 0x68, 0xdf, 0xd3, 0x03, 0xf0, 0xfb, 0x03, 0xeb, 0x60, 0xeb, 0x68, 0x43, 0xf0, 0x08, 0x03, 0xeb, 0x60, 0x4f, 0xf6, 0xff, 0x73, 0x13, 0xf1, 0xff, 0x33, 0x14, 0xd3, 0xea, 0x68, 0x11, 0x07, 0xf9, 0xd5, 0x00, 0x2b, 0x0f, 0xdd, 0xab, 0x68, 0xf6, 0x19, 0x06, 0xf8, 0x01, 0x3c, 0x64, 0x23, 0x13, 0xf1, 0xff, 0x33, 0x07, 0xd3, 0x2a, 0x69, 0x58, 0x2a, 0xf9, 0xd1, 0x00, 0x2b, 0x0f, 0xdc, 0x01, 0xe0, 0x1c, 0x46, 0x01, 0xe0, 0x4f, 0xf0, 0xff, 0x34, 0xff, 0xf7, 0x9f, 0xfe, 0x20, 0x46, 0xfe, 0xbd, 0x20, 0x46, 0x01, 0x21, 0xff, 0xf7, 0x4b, 0xfe, 0x00, 0x28, 0x9c, 0xd0, 0xf2, 0xe7, 0x00, 0x24, 0xf2, 0xe7, 0xe0, 0xbd, 0x00, 0x00, 0xf7, 0xb5, 0x04, 0x46, 0x01, 0x91, 0x15, 0x46, 0x1e, 0x46, 0x08, 0x9f, 0xff, 0xf7, 0x18, 0xfe, 0x01, 0x46, 0x00, 0x28, 0x34, 0xd1, 0x20, 0x46, 0xff, 0xf7, 0x36, 0xfe, 0x80, 0xbb, 0x02, 0x2d, 0x03, 0xdc, 0x14, 0xbf, 0x00, 0x24, 0x01, 0x24, 0x00, 0xe0, 0x02, 0x24, 0x01, 0xab, 0x18, 0x5d, 0xff, 0xf7, 0x56, 0xfe, 0x20, 0xbb, 0x14, 0xf1, 0xff, 0x34, 0xf7, 0xd2, 0x13, 0x4b, 0x1b, 0x68, 0x1a, 0xe0, 0x32, 0x5c, 0x4f, 0xf6, 0xff, 0x74, 0x9a, 0x60, 0xda, 0x68, 0x42, 0xf0, 0x08, 0x02, 0xda, 0x60, 0x14, 0xf1, 0xff, 0x34, 0x15, 0xd3, 0xda, 0x68, 0x12, 0x07, 0xf9, 0xd5, 0x00, 0x2c, 0x0e, 0xdd, 0x4f, 0xf6, 0xff, 0x74, 0x14, 0xf1, 0xff, 0x34, 0x0b, 0xd3, 0x1a, 0x69, 0x28, 0x2a, 0xf9, 0xd1, 0x00, 0x2c, 0x04, 0xdd, 0x01, 0x30, 0xb8, 0x42, 0xe2, 0xd1, 0x00, 0x24, 0x01, 0xe0, 0x4f, 0xf0, 0xff, 0x34, 0xff, 0xf7, 0x4e, 0xfe, 0x20, 0x46, 0xfe, 0xbd, 0xe0, 0xbd, 0x00, 0x00, 0x07, 0xb5, 0x13, 0x46, 0x01, 0x22, 0x00, 0x92, 0xff, 0xf7, 0x16, 0xff, 0x0e, 0xbd, 0x07, 0xb5, 0x34, 0x20, 0x03, 0x21, 0x0d, 0xf1, 0x07, 0x02, 0xff, 0xf7, 0xf2, 0xff, 0x08, 0xb1, 0x11, 0x48, 0x1a, 0xe0, 0x9d, 0xf8, 0x07, 0x30, 0x10, 0x48, 0x03, 0xf0, 0x0f, 0x03, 0x8d, 0xf8, 0x07, 0x30, 0x00, 0xf0, 0xa0, 0xf9, 0x9d, 0xf8, 0x07, 0x30, 0x13, 0xf0, 0x06, 0x0f, 0x04, 0xd0, 0x0b, 0x48, 0x00, 0xf0, 0x98, 0xf9, 0x16, 0x20, 0x0b, 0xe0, 0xd9, 0x07, 0x04, 0xd5, 0x08, 0x48, 0x00, 0xf0, 0x91, 0xf9, 0xd1, 0x20, 0x04, 0xe0, 0x07, 0x48, 0x00, 0xf0, 0x8c, 0xf9, 0x4f, 0xf0, 0xff, 0x30, 0x0e, 0xbd, 0x00, 0xbf, 0xeb, 0xbc, 0x00, 0x00, 0x08, 0xbd, 0x00, 0x00, 0x0e, 0xbd, 0x00, 0x00, 0x16, 0xbd, 0x00, 0x00, 0x1e, 0xbd, 0x00, 0x00, 0x1f, 0xb5, 0x04, 0xab, 0x03, 0xf8, 0x01, 0x2d, 0x01, 0x22, 0x00, 0x92, 0xff, 0xf7, 0x74, 0xff, 0x05, 0xb0, 0x00, 0xbd, 0x37, 0xb5, 0x10, 0x21, 0x04, 0x46, 0x20, 0x48, 0xff, 0xf7, 0x42, 0xfe, 0xff, 0xf7, 0xb9, 0xff, 0x16, 0x28, 0x32, 0xd1, 0x00, 0x20, 0x84, 0x42, 0x8d, 0xf8, 0x07, 0x00, 0x32, 0xdd, 0xb4, 0xf5, 0x7a, 0x7f, 0x05, 0xdb, 0x40, 0xf6, 0xf6, 0x13, 0x9c, 0x42, 0xa8, 0xbf, 0x1c, 0x46, 0x01, 0xe0, 0x4f, 0xf4, 0x7a, 0x74, 0x34, 0x20, 0x25, 0x21, 0x0d, 0xf1, 0x07, 0x02, 0xff, 0xf7, 0x9a, 0xff, 0x08, 0xb1, 0x12, 0x48, 0x0e, 0xe0, 0x32, 0x21, 0xa4, 0xf5, 0x7a, 0x70, 0x00, 0xf0, 0xc8, 0xfd, 0xc2, 0xb2, 0x25, 0x21, 0x34, 0x20, 0x8d, 0xf8, 0x07, 0x20, 0xff, 0xf7, 0xc7, 0xff, 0x05, 0x46, 0x28, 0xb1, 0x0b, 0x48, 0x00, 0xf0, 0x40, 0xf9, 0x4f, 0xf0, 0xff, 0x30, 0x0a, 0xe0, 0x09, 0x48, 0x21, 0x46, 0x00, 0xf0, 0x39, 0xf9, 0x28, 0x46, 0x04, 0xe0, 0xd1, 0x28, 0x14, 0xbf, 0x4f, 0xf0, 0xff, 0x30, 0x00, 0x20, 0x3e, 0xbd, 0x00, 0xbf, 0x80, 0x1a, 0x06, 0x00, 0x2b, 0xbd, 0x00, 0x00, 0x53, 0xbd, 0x00, 0x00, 0x7a, 0xbd, 0x00, 0x00, 0x70, 0xb5, 0x10, 0x21, 0x90, 0xb0, 0x1c, 0x48, 0xff, 0xf7, 0xf6, 0xfd, 0xff, 0xf7, 0x6d, 0xff, 0xd1, 0x28, 0x2c, 0xd1, 0x19, 0x4c, 0x6d, 0x46, 0x0f, 0xcc, 0x0f, 0xc5, 0x94, 0xe8, 0x0f, 0x00, 0x10, 0x34, 0x85, 0xe8, 0x0f, 0x00, 0x08, 0xad, 0x0f, 0xcc, 0x0f, 0xc5, 0x94, 0xe8, 0x0f, 0x00, 0x00, 0x24, 0x85, 0xe8, 0x0f, 0x00, 0x08, 0xab, 0x5d, 0xf8, 0x04, 0x60, 0xe5, 0x58, 0x10, 0x48, 0x31, 0x46, 0x2a, 0x46, 0x00, 0xf0, 0x04, 0xf9, 0xea, 0xb2, 0x34, 0x20, 0xf1, 0xb2, 0xff, 0xf7, 0x81, 0xff, 0x05, 0x46, 0x18, 0xb1, 0x0b, 0x48, 0x00, 0xf0, 0xfa, 0xf8, 0x07, 0xe0, 0x04, 0x34, 0x1c, 0x2c, 0xe8, 0xd1, 0x08, 0x48, 0x00, 0xf0, 0xf3, 0xf8, 0x28, 0x46, 0x01, 0xe0, 0x4f, 0xf0, 0xff, 0x30, 0x10, 0xb0, 0x70, 0xbd, 0x00, 0xbf, 0x80, 0x1a, 0x06, 0x00, 0x50, 0xb9, 0x00, 0x00, 0x8f, 0xbd, 0x00, 0x00, 0x9f, 0xbd, 0x00, 0x00, 0xb5, 0xbd, 0x00, 0x00, 0x00, 0x20, 0x70, 0x47, 0x70, 0x47, 0x00, 0x00, 0x10, 0xb5, 0x00, 0x23, 0x0d, 0x24, 0x09, 0xe0, 0x0a, 0x2a, 0x04, 0xbf, 0x01, 0xf8, 0x01, 0x4b, 0x01, 0x33, 0x10, 0xf8, 0x01, 0x2c, 0x01, 0x33, 0x01, 0xf8, 0x01, 0x2b, 0x10, 0xf8, 0x01, 0x2b, 0x00, 0x2a, 0xf1, 0xd1, 0x18, 0x46, 0x10, 0xbd, 0x2d, 0xe9, 0xff, 0x41, 0x05, 0x1e, 0x0e, 0x46, 0x03, 0xd1, 0x30, 0x23, 0x4d, 0x70, 0x0b, 0x70, 0x2a, 0xe0, 0x02, 0xda, 0x6d, 0x42, 0x01, 0x27, 0x00, 0xe0, 0x00, 0x27, 0x00, 0x24, 0x0d, 0xf1, 0x04, 0x08, 0x00, 0xe0, 0x1c, 0x46, 0x28, 0x46, 0x0a, 0x21, 0x00, 0xf0, 0x79, 0xfe, 0x30, 0x31, 0x28, 0x46, 0x04, 0xf8, 0x08, 0x10, 0x0a, 0x21, 0x00, 0xf0, 0x28, 0xfd, 0x63, 0x1c, 0x05, 0x46, 0x00, 0x28, 0xef, 0xd1, 0x22, 0x46, 0x17, 0xb1, 0x3d, 0x46, 0x2d, 0x23, 0x33, 0x70, 0x2b, 0x46, 0x04, 0xe0, 0x18, 0xf8, 0x04, 0x10, 0x01, 0x3c, 0xf1, 0x54, 0x01, 0x33, 0x61, 0x1c, 0xf8, 0xd1, 0x75, 0x19, 0x00, 0x23, 0xad, 0x18, 0x6b, 0x70, 0xbd, 0xe8, 0xff, 0x81, 0x06, 0x4a, 0x07, 0x23, 0x10, 0xb5, 0x00, 0xf0, 0x0f, 0x04, 0x00, 0x11, 0x14, 0x5d, 0xcc, 0x54, 0x13, 0xf1, 0xff, 0x33, 0xf7, 0xd2, 0x00, 0x23, 0x0b, 0x72, 0x10, 0xbd, 0x90, 0xb9, 0x00, 0x00, 0x2d, 0xe9, 0xf0, 0x43, 0x05, 0x46, 0x85, 0xb0, 0x0c, 0x46, 0x06, 0x46, 0x4f, 0xf0, 0x0d, 0x08, 0x25, 0x27, 0x3c, 0xe0, 0x25, 0x2b, 0x32, 0xd1, 0x63, 0x78, 0x64, 0x2b, 0x0a, 0xd0, 0x04, 0xd8, 0x58, 0x2b, 0x0e, 0xd0, 0x63, 0x2b, 0x24, 0xd1, 0x13, 0xe0, 0x73, 0x2b, 0x17, 0xd0, 0x78, 0x2b, 0x1f, 0xd1, 0x06, 0xe0, 0x10, 0x68, 0x69, 0x46, 0x02, 0xf1, 0x04, 0x09, 0xff, 0xf7, 0x9a, 0xff, 0x05, 0xe0, 0x10, 0x68, 0x69, 0x46, 0x02, 0xf1, 0x04, 0x09, 0xff, 0xf7, 0xc9, 0xff, 0x68, 0x46, 0x08, 0xe0, 0x13, 0x68, 0x02, 0x34, 0x04, 0x32, 0x06, 0xf8, 0x01, 0x3b, 0x17, 0xe0, 0x10, 0x68, 0x02, 0xf1, 0x04, 0x09, 0x31, 0x46, 0x02, 0x34, 0xff, 0xf7, 0x70, 0xff, 0x4a, 0x46, 0x36, 0x18, 0x0d, 0xe0, 0x37, 0x70, 0x63, 0x78, 0x02, 0x34, 0x73, 0x70, 0x02, 0x36, 0x07, 0xe0, 0x0a, 0x2b, 0x08, 0xbf, 0x06, 0xf8, 0x01, 0x8b, 0x14, 0xf8, 0x01, 0x3b, 0x06, 0xf8, 0x01, 0x3b, 0x23, 0x78, 0x00, 0x2b, 0xbf, 0xd1, 0x33, 0x70, 0x70, 0x1b, 0x05, 0xb0, 0xbd, 0xe8, 0xf0, 0x83, 0x10, 0xb5, 0x04, 0x46, 0x01, 0xe0, 0xff, 0xf7, 0x18, 0xfb, 0x14, 0xf8, 0x01, 0x0b, 0x00, 0x28, 0xf9, 0xd1, 0x10, 0xbd, 0x0e, 0xb4, 0x03, 0xb5, 0x03, 0xaa, 0x52, 0xf8, 0x04, 0x1b, 0x01, 0x92, 0xff, 0xf7, 0x9f, 0xff, 0xbd, 0xe8, 0x0c, 0x40, 0x03, 0xb0, 0x70, 0x47, 0x0d, 0x4b, 0x4f, 0xf4, 0x7a, 0x71, 0x30, 0xb5, 0xe1, 0xb0, 0x1c, 0x68, 0x20, 0x46, 0x00, 0xf0, 0x56, 0xfb, 0x4f, 0xf4, 0x7a, 0x71, 0x05, 0x46, 0x20, 0x46, 0x00, 0xf0, 0x7e, 0xfc, 0x68, 0x46, 0x0b, 0x46, 0x2a, 0x46, 0x05, 0x49, 0xff, 0xf7, 0xdf, 0xff, 0x68, 0x46, 0xff, 0xf7, 0xd2, 0xff, 0x61, 0xb0, 0x30, 0xbd, 0x00, 0xbf, 0x84, 0x0c, 0xc2, 0x01, 0xc9, 0xbd, 0x00, 0x00, 0x0f, 0xb4, 0x30, 0xb5, 0xe3, 0xb0, 0x66, 0xac, 0x54, 0xf8, 0x04, 0x5b, 0xff, 0xf7, 0xd9, 0xff, 0x01, 0xa8, 0x22, 0x46, 0x29, 0x46, 0x61, 0x94, 0xff, 0xf7, 0x6e, 0xff, 0x04, 0x46, 0x01, 0xa8, 0xff, 0xf7, 0xb9, 0xff, 0x20, 0x46, 0x63, 0xb0, 0xbd, 0xe8, 0x30, 0x40, 0x04, 0xb0, 0x70, 0x47, 0x03, 0x46, 0x11, 0xf8, 0x01, 0x2b, 0x03, 0xf8, 0x01, 0x2b, 0x00, 0x2a, 0xf9, 0xd1, 0x70, 0x47, 0x00, 0x23, 0x10, 0xb5, 0x93, 0x42, 0x04, 0xd0, 0xcc, 0x5c, 0xc4, 0x54, 0x01, 0x33, 0x00, 0x2c, 0xf8, 0xd1, 0x10, 0xbd, 0x02, 0x46, 0x10, 0xb5, 0x13, 0x46, 0x01, 0x32, 0x1c, 0x78, 0x00, 0x2c, 0xfa, 0xd1, 0x11, 0xf8, 0x01, 0x2b, 0x03, 0xf8, 0x01, 0x2b, 0x00, 0x2a, 0xf9, 0xd1, 0x10, 0xbd, 0x30, 0xb5, 0x92, 0xb1, 0x04, 0x46, 0x23, 0x46, 0x01, 0x34, 0x1d, 0x78, 0x00, 0x2d, 0xfa, 0xd1, 0x04, 0xe0, 0x01, 0x3a, 0x01, 0xd1, 0x5a, 0x70, 0x30, 0xbd, 0x23, 0x46, 0x11, 0xf8, 0x01, 0x5b, 0x1c, 0x46, 0x04, 0xf8, 0x01, 0x5b, 0x00, 0x2d, 0xf3, 0xd1, 0x30, 0xbd, 0x10, 0xf8, 0x01, 0x2b, 0x11, 0xf8, 0x01, 0x3b, 0xd3, 0x1a, 0xdb, 0xb2, 0x0b, 0xb9, 0x00, 0x2a, 0xf6, 0xd1, 0x58, 0xb2, 0x70, 0x47, 0x30, 0xb5, 0x00, 0x23, 0x06, 0xe0, 0xc5, 0x5c, 0xcc, 0x5c, 0x2c, 0x1b, 0xe4, 0xb2, 0x24, 0xb9, 0x01, 0x33, 0x15, 0xb1, 0x93, 0x42, 0xf6, 0xd1, 0x00, 0x24, 0x60, 0xb2, 0x30, 0xbd, 0x03, 0x46, 0xc9, 0xb2, 0x00, 0xe0, 0x2a, 0xb1, 0x1a, 0x78, 0x18, 0x46, 0x01, 0x33, 0x8a, 0x42, 0xf9, 0xd1, 0x70, 0x47, 0x10, 0x46, 0x70, 0x47, 0x03, 0x46, 0x1a, 0x46, 0x01, 0x33, 0x11, 0x78, 0x00, 0x29, 0xfa, 0xd1, 0x10, 0x1a, 0x70, 0x47, 0x38, 0xb5, 0x0d, 0x46, 0x04, 0x46, 0xed, 0xb2, 0xff, 0xf7, 0xf2, 0xff, 0x23, 0x18, 0x18, 0x46, 0x01, 0x3b, 0x02, 0x78, 0xaa, 0x42, 0x02, 0xd0, 0x9c, 0x42, 0xf8, 0xd9, 0x00, 0x20, 0x38, 0xbd, 0x03, 0x46, 0x10, 0xb5, 0x1a, 0x46, 0x21, 0xb1, 0x14, 0x78, 0x01, 0x33, 0x01, 0x39, 0x00, 0x2c, 0xf8, 0xd1, 0x10, 0x1a, 0x10, 0xbd, 0x03, 0x46, 0x30, 0xb5, 0x00, 0x20, 0x08, 0xe0, 0xac, 0x42, 0x01, 0xd1, 0x01, 0x30, 0x04, 0xe0, 0x12, 0xf8, 0x01, 0x5b, 0x00, 0x2d, 0xf7, 0xd1, 0x30, 0xbd, 0x1c, 0x5c, 0x0c, 0xb1, 0x0a, 0x46, 0xf6, 0xe7, 0x30, 0xbd, 0x01, 0x4b, 0x18, 0x47, 0x70, 0x47, 0x44, 0xaf, 0x00, 0x00, 0x01, 0x4b, 0x18, 0x47, 0x70, 0x47, 0x00, 0xbf, 0xfc, 0xaf, 0x00, 0x00, 0x30, 0xb5, 0x00, 0x23, 0x05, 0xe0, 0xc5, 0x5c, 0xcc, 0x5c, 0x01, 0x33, 0x2c, 0x1b, 0xe4, 0xb2, 0x14, 0xb9, 0x93, 0x42, 0xf7, 0xd1, 0x00, 0x24, 0x60, 0xb2, 0x30, 0xbd, 0x10, 0xb5, 0x03, 0x46, 0x04, 0xe0, 0x04, 0x78, 0x01, 0x33, 0x8c, 0x42, 0x03, 0xd0, 0x01, 0x3a, 0x18, 0x46, 0x00, 0x2a, 0xf7, 0xd1, 0x10, 0xbd, 0xf8, 0xb5, 0x04, 0x46, 0x08, 0x46, 0x0f, 0x46, 0xff, 0xf7, 0xa0, 0xff, 0x06, 0x46, 0x78, 0xb1, 0x20, 0x46, 0xff, 0xf7, 0x9b, 0xff, 0x05, 0x46, 0x07, 0xe0, 0x20, 0x46, 0x39, 0x46, 0x32, 0x46, 0xff, 0xf7, 0xd4, 0xff, 0x20, 0xb1, 0x01, 0x3d, 0x01, 0x34, 0xb5, 0x42, 0xf5, 0xda, 0x00, 0x24, 0x20, 0x46, 0xf8, 0xbd, 0x10, 0xb5, 0xc9, 0xb2, 0x05, 0xe0, 0x04, 0x78, 0x43, 0x1c, 0x01, 0x3a, 0x8c, 0x42, 0x03, 0xd0, 0x18, 0x46, 0x00, 0x2a, 0xf7, 0xd1, 0x10, 0x46, 0x10, 0xbd, 0x00, 0xbf, 0x4f, 0xf0, 0x00, 0x02, 0x07, 0xee, 0xd5, 0x2f, 0x80, 0x47, 0x70, 0x47, 0x04, 0x20, 0x52, 0xe2, 0x2c, 0x00, 0x00, 0xba, 0x02, 0x00, 0x53, 0xe3, 0x01, 0x10, 0xc0, 0xb4, 0x01, 0x10, 0xc0, 0xd4, 0x01, 0x10, 0xc0, 0xe4, 0x03, 0x20, 0x82, 0xe0, 0x03, 0x30, 0x10, 0xe2, 0xf6, 0xff, 0xff, 0x1a, 0x01, 0x14, 0x81, 0xe1, 0x01, 0x18, 0x81, 0xe1, 0x01, 0x30, 0xa0, 0xe1, 0x10, 0x00, 0x52, 0xe3, 0x1c, 0x00, 0x00, 0xba, 0xf0, 0x40, 0x2d, 0xe9, 0x01, 0x40, 0xa0, 0xe1, 0x01, 0x50, 0xa0, 0xe1, 0x01, 0x60, 0xa0, 0xe1, 0x01, 0x70, 0xa0, 0xe1, 0x01, 0xc0, 0xa0, 0xe1, 0x01, 0xe0, 0xa0, 0xe1, 0x60, 0x00, 0x52, 0xe3, 0x1f, 0x00, 0x10, 0xc3, 0x08, 0x00, 0x00, 0xda, 0x1f, 0xc0, 0x00, 0xe2, 0x20, 0xc0, 0x6c, 0xe2, 0x0c, 0x20, 0x42, 0xe0, 0x0c, 0xce, 0xb0, 0xe1, 0xf0, 0x00, 0xa0, 0x28, 0x30, 0x00, 0xa0, 0x48, 0x01, 0x01, 0x1c, 0xe3, 0x01, 0xc0, 0xa0, 0xe1, 0x04, 0x10, 0x80, 0x14, 0x40, 0x20, 0x52, 0xe2, 0xfa, 0x50, 0xa0, 0xa8, 0xfa, 0x50, 0xa0, 0xa8, 0xfb, 0xff, 0xff, 0xca, 0xf0, 0x80, 0xbd, 0x08, 0x20, 0x00, 0x12, 0xe3, 0xfa, 0x50, 0xa0, 0x18, 0x10, 0x00, 0x12, 0xe3, 0xf0, 0x00, 0xa0, 0x18, 0xf0, 0x40, 0xbd, 0xe8, 0x08, 0x00, 0x12, 0xe3, 0x0a, 0x00, 0xa0, 0x18, 0x04, 0x00, 0x12, 0xe3, 0x04, 0x10, 0x80, 0x14, 0x02, 0x00, 0x12, 0xe3, 0x01, 0x10, 0xc0, 0x14, 0x01, 0x10, 0xc0, 0x14, 0x01, 0x00, 0x12, 0xe3, 0x01, 0x10, 0xc0, 0x14, 0x3e, 0xff, 0x2f, 0xe1, 0x01, 0x00, 0x50, 0xe1, 0x0e, 0xf0, 0xa0, 0x01, 0x11, 0x40, 0x2d, 0xe9, 0x04, 0x20, 0x52, 0xe2, 0x33, 0x00, 0x00, 0xba, 0x03, 0xc0, 0x10, 0xe2, 0x00, 0xf0, 0xd1, 0xf5, 0x39, 0x00, 0x00, 0x1a, 0x03, 0xc0, 0x11, 0xe2, 0x43, 0x00, 0x00, 0x1a, 0x1c, 0x20, 0x52, 0xe2, 0xe0, 0x01, 0x2d, 0xe9, 0x13, 0x00, 0x00, 0xba, 0x1f, 0xc0, 0x10, 0xe2, 0x20, 0x30, 0x6c, 0xe2, 0x02, 0x40, 0xd3, 0x10, 0x03, 0x00, 0x00, 0x2a, 0x48, 0x40, 0x8f, 0xe2, 0x03, 0x20, 0x52, 0xe0, 0x0c, 0xf0, 0x84, 0xe0, 0x00, 0xf0, 0xd1, 0xf5, 0x60, 0x20, 0x52, 0xe2, 0x1c, 0xf0, 0xd1, 0xf5, 0x02, 0x00, 0x00, 0xba, 0x3c, 0xf0, 0xd1, 0xf5, 0x5c, 0xf0, 0xd1, 0xf5, 0x7c, 0xf0, 0xd1, 0xf5, 0xf8, 0x51, 0xb1, 0xe8, 0x20, 0x20, 0x52, 0xe2, 0xf8, 0x51, 0xa0, 0xe8, 0xfa, 0xff, 0xff, 0xaa, 0x60, 0x00, 0x72, 0xe3, 0xf9, 0xff, 0xff, 0xaa, 0x1c, 0xc0, 0x12, 0xe2, 0x20, 0xc0, 0x6c, 0xe2, 0x0c, 0xf0, 0x8f, 0x10, 0x12, 0x00, 0x00, 0xea, 0x00, 0xf0, 0x20, 0xe3, 0x04, 0x30, 0x91, 0xe4, 0x04, 0x40, 0x91, 0xe4, 0x04, 0x50, 0x91, 0xe4, 0x04, 0x60, 0x91, 0xe4, 0x04, 0x70, 0x91, 0xe4, 0x04, 0x80, 0x91, 0xe4, 0x04, 0xe0, 0x91, 0xe4, 0x0c, 0xf0, 0x8f, 0xe0, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0xf0, 0x20, 0xe3, 0x04, 0x30, 0x80, 0xe4, 0x04, 0x40, 0x80, 0xe4, 0x04, 0x50, 0x80, 0xe4, 0x04, 0x60, 0x80, 0xe4, 0x04, 0x70, 0x80, 0xe4, 0x04, 0x80, 0x80, 0xe4, 0x04, 0xe0, 0x80, 0xe4, 0xdc, 0xff, 0xff, 0x2a, 0xe0, 0x01, 0xbd, 0xe8, 0x82, 0x2f, 0xb0, 0xe1, 0x01, 0x30, 0xd1, 0x14, 0x01, 0x40, 0xd1, 0x24, 0x01, 0xc0, 0xd1, 0x24, 0x01, 0x30, 0xc0, 0x14, 0x01, 0x40, 0xc0, 0x24, 0x01, 0xc0, 0xc0, 0x24, 0x11, 0x40, 0xbd, 0xe8, 0x3e, 0xff, 0x2f, 0xe1, 0x04, 0xc0, 0x6c, 0xe2, 0x02, 0x00, 0x5c, 0xe3, 0x01, 0x30, 0xd1, 0xc4, 0x01, 0x40, 0xd1, 0xa4, 0x01, 0xe0, 0xd1, 0xe4, 0x01, 0x30, 0xc0, 0xc4, 0x01, 0x40, 0xc0, 0xa4, 0x0c, 0x20, 0x52, 0xe0, 0x01, 0xe0, 0xc0, 0xe4, 0xec, 0xff, 0xff, 0xba, 0x03, 0xc0, 0x11, 0xe2, 0xbb, 0xff, 0xff, 0x0a, 0x03, 0x10, 0xc1, 0xe3, 0x02, 0x00, 0x5c, 0xe3, 0x04, 0xe0, 0x91, 0xe4, 0x33, 0x00, 0x00, 0x0a, 0x65, 0x00, 0x00, 0xca, 0x1c, 0x20, 0x52, 0xe2, 0x24, 0x00, 0x00, 0xba, 0x1f, 0xc0, 0x10, 0xe2, 0x20, 0xc0, 0x6c, 0xe2, 0x02, 0x40, 0xdc, 0x10, 0x0c, 0x20, 0x42, 0x30, 0x21, 0x00, 0x00, 0x3a, 0xe0, 0x03, 0x2d, 0xe9, 0x00, 0xf0, 0xd1, 0xf5, 0x60, 0x20, 0x52, 0xe2, 0x1c, 0xf0, 0xd1, 0xf5, 0x02, 0x00, 0x00, 0xba, 0x3c, 0xf0, 0xd1, 0xf5, 0x5c, 0xf0, 0xd1, 0xf5, 0x7c, 0xf0, 0xd1, 0xf5, 0xf0, 0x00, 0xb1, 0xe8, 0x2e, 0x34, 0xa0, 0xe1, 0x20, 0x20, 0x52, 0xe2, 0x00, 0x53, 0xb1, 0xe8, 0x04, 0x3c, 0x83, 0xe1, 0x24, 0x44, 0xa0, 0xe1, 0x05, 0x4c, 0x84, 0xe1, 0x25, 0x54, 0xa0, 0xe1, 0x06, 0x5c, 0x85, 0xe1, 0x26, 0x64, 0xa0, 0xe1, 0x07, 0x6c, 0x86, 0xe1, 0x27, 0x74, 0xa0, 0xe1, 0x08, 0x7c, 0x87, 0xe1, 0x28, 0x84, 0xa0, 0xe1, 0x09, 0x8c, 0x88, 0xe1, 0x29, 0x94, 0xa0, 0xe1, 0x0c, 0x9c, 0x89, 0xe1, 0x2c, 0xc4, 0xa0, 0xe1, 0x0e, 0xcc, 0x8c, 0xe1, 0xf8, 0x13, 0xa0, 0xe8, 0xe9, 0xff, 0xff, 0xaa, 0x60, 0x00, 0x72, 0xe3, 0xe8, 0xff, 0xff, 0xaa, 0xe0, 0x03, 0xbd, 0xe8, 0x1c, 0xc0, 0x12, 0xe2, 0x07, 0x00, 0x00, 0x0a, 0x2e, 0x34, 0xa0, 0xe1, 0x04, 0xe0, 0x91, 0xe4, 0x04, 0xc0, 0x5c, 0xe2, 0x0e, 0x3c, 0x83, 0xe1, 0x04, 0x30, 0x80, 0xe4, 0xf9, 0xff, 0xff, 0xca, 0x00, 0x00, 0x52, 0xe3, 0xd5, 0xff, 0xff, 0xaa, 0x03, 0x10, 0x41, 0xe2, 0xb2, 0xff, 0xff, 0xea, 0x1c, 0x20, 0x52, 0xe2, 0x24, 0x00, 0x00, 0xba, 0x1f, 0xc0, 0x10, 0xe2, 0x20, 0xc0, 0x6c, 0xe2, 0x02, 0x40, 0xdc, 0x10, 0x0c, 0x20, 0x42, 0x30, 0x21, 0x00, 0x00, 0x3a, 0xe0, 0x03, 0x2d, 0xe9, 0x00, 0xf0, 0xd1, 0xf5, 0x60, 0x20, 0x52, 0xe2, 0x1c, 0xf0, 0xd1, 0xf5, 0x02, 0x00, 0x00, 0xba, 0x3c, 0xf0, 0xd1, 0xf5, 0x5c, 0xf0, 0xd1, 0xf5, 0x7c, 0xf0, 0xd1, 0xf5, 0xf0, 0x00, 0xb1, 0xe8, 0x2e, 0x38, 0xa0, 0xe1, 0x20, 0x20, 0x52, 0xe2, 0x00, 0x53, 0xb1, 0xe8, 0x04, 0x38, 0x83, 0xe1, 0x24, 0x48, 0xa0, 0xe1, 0x05, 0x48, 0x84, 0xe1, 0x25, 0x58, 0xa0, 0xe1, 0x06, 0x58, 0x85, 0xe1, 0x26, 0x68, 0xa0, 0xe1, 0x07, 0x68, 0x86, 0xe1, 0x27, 0x78, 0xa0, 0xe1, 0x08, 0x78, 0x87, 0xe1, 0x28, 0x88, 0xa0, 0xe1, 0x09, 0x88, 0x88, 0xe1, 0x29, 0x98, 0xa0, 0xe1, 0x0c, 0x98, 0x89, 0xe1, 0x2c, 0xc8, 0xa0, 0xe1, 0x0e, 0xc8, 0x8c, 0xe1, 0xf8, 0x13, 0xa0, 0xe8, 0xe9, 0xff, 0xff, 0xaa, 0x60, 0x00, 0x72, 0xe3, 0xe8, 0xff, 0xff, 0xaa, 0xe0, 0x03, 0xbd, 0xe8, 0x1c, 0xc0, 0x12, 0xe2, 0x07, 0x00, 0x00, 0x0a, 0x2e, 0x38, 0xa0, 0xe1, 0x04, 0xe0, 0x91, 0xe4, 0x04, 0xc0, 0x5c, 0xe2, 0x0e, 0x38, 0x83, 0xe1, 0x04, 0x30, 0x80, 0xe4, 0xf9, 0xff, 0xff, 0xca, 0x00, 0x00, 0x52, 0xe3, 0xd5, 0xff, 0xff, 0xaa, 0x02, 0x10, 0x41, 0xe2, 0x7f, 0xff, 0xff, 0xea, 0x1c, 0x20, 0x52, 0xe2, 0x24, 0x00, 0x00, 0xba, 0x1f, 0xc0, 0x10, 0xe2, 0x20, 0xc0, 0x6c, 0xe2, 0x02, 0x40, 0xdc, 0x10, 0x0c, 0x20, 0x42, 0x30, 0x21, 0x00, 0x00, 0x3a, 0xe0, 0x03, 0x2d, 0xe9, 0x00, 0xf0, 0xd1, 0xf5, 0x60, 0x20, 0x52, 0xe2, 0x1c, 0xf0, 0xd1, 0xf5, 0x02, 0x00, 0x00, 0xba, 0x3c, 0xf0, 0xd1, 0xf5, 0x5c, 0xf0, 0xd1, 0xf5, 0x7c, 0xf0, 0xd1, 0xf5, 0xf0, 0x00, 0xb1, 0xe8, 0x2e, 0x3c, 0xa0, 0xe1, 0x20, 0x20, 0x52, 0xe2, 0x00, 0x53, 0xb1, 0xe8, 0x04, 0x34, 0x83, 0xe1, 0x24, 0x4c, 0xa0, 0xe1, 0x05, 0x44, 0x84, 0xe1, 0x25, 0x5c, 0xa0, 0xe1, 0x06, 0x54, 0x85, 0xe1, 0x26, 0x6c, 0xa0, 0xe1, 0x07, 0x64, 0x86, 0xe1, 0x27, 0x7c, 0xa0, 0xe1, 0x08, 0x74, 0x87, 0xe1, 0x28, 0x8c, 0xa0, 0xe1, 0x09, 0x84, 0x88, 0xe1, 0x29, 0x9c, 0xa0, 0xe1, 0x0c, 0x94, 0x89, 0xe1, 0x2c, 0xcc, 0xa0, 0xe1, 0x0e, 0xc4, 0x8c, 0xe1, 0xf8, 0x13, 0xa0, 0xe8, 0xe9, 0xff, 0xff, 0xaa, 0x60, 0x00, 0x72, 0xe3, 0xe8, 0xff, 0xff, 0xaa, 0xe0, 0x03, 0xbd, 0xe8, 0x1c, 0xc0, 0x12, 0xe2, 0x07, 0x00, 0x00, 0x0a, 0x2e, 0x3c, 0xa0, 0xe1, 0x04, 0xe0, 0x91, 0xe4, 0x04, 0xc0, 0x5c, 0xe2, 0x0e, 0x34, 0x83, 0xe1, 0x04, 0x30, 0x80, 0xe4, 0xf9, 0xff, 0xff, 0xca, 0x00, 0x00, 0x52, 0xe3, 0xd5, 0xff, 0xff, 0xaa, 0x01, 0x10, 0x41, 0xe2, 0x4c, 0xff, 0xff, 0xea, 0x00, 0x00, 0x00, 0x00, 0x4a, 0x1e, 0x08, 0xbf, 0x70, 0x47, 0xc0, 0xf0, 0x24, 0x81, 0x88, 0x42, 0x40, 0xf2, 0x16, 0x81, 0x11, 0x42, 0x00, 0xf0, 0x17, 0x81, 0xb0, 0xfa, 0x80, 0xf3, 0xb1, 0xfa, 0x81, 0xf2, 0xa2, 0xeb, 0x03, 0x03, 0xc3, 0xf1, 0x1f, 0x03, 0x04, 0xa2, 0x02, 0xeb, 0x03, 0x13, 0x4f, 0xf0, 0x00, 0x02, 0x9f, 0x46, 0x00, 0xbf, 0xaf, 0xf3, 0x00, 0x80, 0xb0, 0xeb, 0xc1, 0x7f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x70, 0xb0, 0xeb, 0x81, 0x7f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x70, 0xb0, 0xeb, 0x41, 0x7f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x70, 0xb0, 0xeb, 0x01, 0x7f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x70, 0xb0, 0xeb, 0xc1, 0x6f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x60, 0xb0, 0xeb, 0x81, 0x6f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x60, 0xb0, 0xeb, 0x41, 0x6f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x60, 0xb0, 0xeb, 0x01, 0x6f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x60, 0xb0, 0xeb, 0xc1, 0x5f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x50, 0xb0, 0xeb, 0x81, 0x5f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x50, 0xb0, 0xeb, 0x41, 0x5f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x50, 0xb0, 0xeb, 0x01, 0x5f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x50, 0xb0, 0xeb, 0xc1, 0x4f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x40, 0xb0, 0xeb, 0x81, 0x4f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x40, 0xb0, 0xeb, 0x41, 0x4f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x40, 0xb0, 0xeb, 0x01, 0x4f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x40, 0xb0, 0xeb, 0xc1, 0x3f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x30, 0xb0, 0xeb, 0x81, 0x3f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x30, 0xb0, 0xeb, 0x41, 0x3f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x30, 0xb0, 0xeb, 0x01, 0x3f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x30, 0xb0, 0xeb, 0xc1, 0x2f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x20, 0xb0, 0xeb, 0x81, 0x2f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x20, 0xb0, 0xeb, 0x41, 0x2f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x20, 0xb0, 0xeb, 0x01, 0x2f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x20, 0xb0, 0xeb, 0xc1, 0x1f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x10, 0xb0, 0xeb, 0x81, 0x1f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x10, 0xb0, 0xeb, 0x41, 0x1f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x10, 0xb0, 0xeb, 0x01, 0x1f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x10, 0xb0, 0xeb, 0xc1, 0x0f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x00, 0xb0, 0xeb, 0x81, 0x0f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x00, 0xb0, 0xeb, 0x41, 0x0f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x00, 0xb0, 0xeb, 0x01, 0x0f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x00, 0x10, 0x46, 0x70, 0x47, 0x0c, 0xbf, 0x01, 0x20, 0x00, 0x20, 0x70, 0x47, 0xb1, 0xfa, 0x81, 0xf2, 0xc2, 0xf1, 0x1f, 0x02, 0x20, 0xfa, 0x02, 0xf0, 0x70, 0x47, 0x08, 0xb1, 0x4f, 0xf0, 0xff, 0x30, 0x00, 0xf0, 0x66, 0xb9, 0x00, 0x29, 0xf8, 0xd0, 0x2d, 0xe9, 0x03, 0x40, 0xff, 0xf7, 0xcc, 0xfe, 0xbd, 0xe8, 0x06, 0x40, 0x02, 0xfb, 0x00, 0xf3, 0xa1, 0xeb, 0x03, 0x01, 0x70, 0x47, 0x00, 0xbf, 0x00, 0x29, 0x00, 0xf0, 0x3e, 0x81, 0x80, 0xea, 0x01, 0x0c, 0x48, 0xbf, 0x49, 0x42, 0x4a, 0x1e, 0x00, 0xf0, 0x1f, 0x81, 0x03, 0x00, 0x48, 0xbf, 0x43, 0x42, 0x8b, 0x42, 0x40, 0xf2, 0x1e, 0x81, 0x11, 0x42, 0x00, 0xf0, 0x23, 0x81, 0xb3, 0xfa, 0x83, 0xf2, 0xb1, 0xfa, 0x81, 0xf0, 0xa0, 0xeb, 0x02, 0x02, 0xc2, 0xf1, 0x1f, 0x02, 0x04, 0xa0, 0x00, 0xeb, 0x02, 0x12, 0x4f, 0xf0, 0x00, 0x00, 0x97, 0x46, 0x00, 0xbf, 0xaf, 0xf3, 0x00, 0x80, 0xb3, 0xeb, 0xc1, 0x7f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x73, 0xb3, 0xeb, 0x81, 0x7f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x73, 0xb3, 0xeb, 0x41, 0x7f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x73, 0xb3, 0xeb, 0x01, 0x7f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x73, 0xb3, 0xeb, 0xc1, 0x6f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x63, 0xb3, 0xeb, 0x81, 0x6f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x63, 0xb3, 0xeb, 0x41, 0x6f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x63, 0xb3, 0xeb, 0x01, 0x6f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x63, 0xb3, 0xeb, 0xc1, 0x5f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x53, 0xb3, 0xeb, 0x81, 0x5f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x53, 0xb3, 0xeb, 0x41, 0x5f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x53, 0xb3, 0xeb, 0x01, 0x5f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x53, 0xb3, 0xeb, 0xc1, 0x4f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x43, 0xb3, 0xeb, 0x81, 0x4f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x43, 0xb3, 0xeb, 0x41, 0x4f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x43, 0xb3, 0xeb, 0x01, 0x4f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x43, 0xb3, 0xeb, 0xc1, 0x3f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x33, 0xb3, 0xeb, 0x81, 0x3f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x33, 0xb3, 0xeb, 0x41, 0x3f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x33, 0xb3, 0xeb, 0x01, 0x3f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x33, 0xb3, 0xeb, 0xc1, 0x2f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x23, 0xb3, 0xeb, 0x81, 0x2f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x23, 0xb3, 0xeb, 0x41, 0x2f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x23, 0xb3, 0xeb, 0x01, 0x2f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x23, 0xb3, 0xeb, 0xc1, 0x1f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x13, 0xb3, 0xeb, 0x81, 0x1f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x13, 0xb3, 0xeb, 0x41, 0x1f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x13, 0xb3, 0xeb, 0x01, 0x1f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x13, 0xb3, 0xeb, 0xc1, 0x0f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x03, 0xb3, 0xeb, 0x81, 0x0f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x03, 0xb3, 0xeb, 0x41, 0x0f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x03, 0xb3, 0xeb, 0x01, 0x0f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x03, 0xbc, 0xf1, 0x00, 0x0f, 0x48, 0xbf, 0x40, 0x42, 0x70, 0x47, 0x9c, 0xea, 0x00, 0x0f, 0x48, 0xbf, 0x40, 0x42, 0x70, 0x47, 0x38, 0xbf, 0x00, 0x20, 0x04, 0xbf, 0x4f, 0xea, 0xec, 0x70, 0x40, 0xf0, 0x01, 0x00, 0x70, 0x47, 0xb1, 0xfa, 0x81, 0xf2, 0xc2, 0xf1, 0x1f, 0x02, 0xbc, 0xf1, 0x00, 0x0f, 0x23, 0xfa, 0x02, 0xf0, 0x48, 0xbf, 0x40, 0x42, 0x70, 0x47, 0x00, 0x28, 0xc8, 0xbf, 0x6f, 0xf0, 0x00, 0x40, 0xb8, 0xbf, 0x4f, 0xf0, 0x00, 0x40, 0x00, 0xf0, 0x0e, 0xb8, 0x00, 0x29, 0xf4, 0xd0, 0x2d, 0xe9, 0x03, 0x40, 0xff, 0xf7, 0xb3, 0xfe, 0xbd, 0xe8, 0x06, 0x40, 0x02, 0xfb, 0x00, 0xf3, 0xa1, 0xeb, 0x03, 0x01, 0x70, 0x47, 0x00, 0xbf, 0x02, 0xb5, 0x4f, 0xf0, 0x08, 0x00, 0xfe, 0xf7, 0x5b, 0xfb, 0x02, 0xbd, 0x10, 0xb5, 0x13, 0x4c, 0xfe, 0xf7, 0x5a, 0xfb, 0x04, 0xf1, 0xbc, 0x01, 0xd4, 0xf8, 0xb8, 0x00, 0x02, 0x22, 0xfe, 0xf7, 0xcf, 0xfc, 0xfe, 0xf7, 0xcd, 0xfd, 0xfe, 0xf7, 0x33, 0xfe, 0x0d, 0x48, 0xff, 0xf7, 0x14, 0xfa, 0x04, 0xf1, 0x38, 0x01, 0x00, 0x20, 0xfe, 0xf7, 0x17, 0xfa, 0x04, 0x46, 0x20, 0xb1, 0x01, 0x20, 0xfe, 0xf7, 0x1e, 0xfb, 0x07, 0x48, 0x02, 0xe0, 0xfe, 0xf7, 0x1a, 0xfb, 0x06, 0x48, 0xff, 0xf7, 0x03, 0xfa, 0x0a, 0x20, 0xfe, 0xf7, 0x56, 0xfb, 0x20, 0x46, 0x10, 0xbd, 0x00, 0x80, 0x00, 0x00, 0x99, 0xbc, 0x00, 0x00, 0xad, 0xbc, 0x00, 0x00, 0xbb, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x00, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x54, 0x33, 0x41, 0x0a, 0x00, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x54, 0x33, 0x4c, 0x0a, 0x00, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x54, 0x33, 0x0a, 0x00, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x50, 0x39, 0x0a, 0x00, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x41, 0x34, 0x30, 0x0a, 0x00, 0x75, 0x6e, 0x6b, 0x6f, 0x6e, 0x77, 0x20, 0x43, 0x70, 0x75, 0x20, 0x74, 0x79, 0x70, 0x65, 0x21, 0x21, 0x0a, 0x00, 0x5b, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x3a, 0x20, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x20, 0x53, 0x45, 0x54, 0x54, 0x49, 0x4e, 0x47, 0x20, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x21, 0x0a, 0x00, 0x5a, 0x51, 0x20, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2c, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x20, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x20, 0x32, 0x34, 0x30, 0x20, 0x6f, 0x68, 0x6d, 0x20, 0x72, 0x65, 0x73, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x2e, 0x0a, 0x00, 0x44, 0x58, 0x30, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x44, 0x58, 0x31, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x44, 0x58, 0x32, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x44, 0x58, 0x33, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x44, 0x58, 0x25, 0x64, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x30, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x44, 0x58, 0x25, 0x64, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x31, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x46, 0x41, 0x49, 0x4c, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x25, 0x78, 0x20, 0x21, 0x3d, 0x20, 0x25, 0x78, 0x20, 0x61, 0x74, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x25, 0x78, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x4f, 0x4b, 0x2e, 0x0a, 0x00, 0x5b, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x3a, 0x20, 0x30, 0x21, 0x0a, 0x00, 0x5b, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x61, 0x6e, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x20, 0x21, 0x0a, 0x00, 0x5b, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x61, 0x6e, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x26, 0x77, 0x69, 0x64, 0x74, 0x68, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x20, 0x21, 0x0a, 0x00, 0x5b, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x61, 0x6e, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x20, 0x21, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x43, 0x20, 0x49, 0x53, 0x20, 0x46, 0x4f, 0x55, 0x52, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x43, 0x20, 0x49, 0x53, 0x20, 0x54, 0x57, 0x4f, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x42, 0x59, 0x20, 0x44, 0x52, 0x49, 0x56, 0x45, 0x20, 0x49, 0x4e, 0x46, 0x4f, 0x3a, 0x20, 0x56, 0x31, 0x2e, 0x31, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x42, 0x4f, 0x4f, 0x54, 0x20, 0x44, 0x52, 0x49, 0x56, 0x45, 0x20, 0x49, 0x4e, 0x46, 0x4f, 0x3a, 0x20, 0x56, 0x31, 0x2e, 0x31, 0x0a, 0x00, 0x69, 0x63, 0x20, 0x63, 0x61, 0x6e, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x2c, 0x20, 0x70, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x2e, 0x2e, 0x2e, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x43, 0x4c, 0x4b, 0x20, 0x3d, 0x25, 0x64, 0x20, 0x4d, 0x48, 0x5a, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x54, 0x79, 0x70, 0x65, 0x20, 0x3d, 0x25, 0x64, 0x20, 0x28, 0x32, 0x3a, 0x44, 0x44, 0x52, 0x32, 0x2c, 0x33, 0x3a, 0x44, 0x44, 0x52, 0x33, 0x2c, 0x36, 0x3a, 0x4c, 0x50, 0x44, 0x44, 0x52, 0x32, 0x2c, 0x37, 0x3a, 0x4c, 0x50, 0x44, 0x44, 0x52, 0x33, 0x29, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x7a, 0x71, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x3a, 0x20, 0x31, 0x20, 0x21, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x53, 0x49, 0x5a, 0x45, 0x20, 0x3d, 0x25, 0x64, 0x20, 0x4d, 0x0a, 0x00, 0x62, 0x65, 0x69, 0x67, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x0a, 0x00, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x6f, 0x6b, 0x0a, 0x00, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x0a, 0x00, 0x72, 0x65, 0x73, 0x65, 0x74, 0x20, 0x70, 0x6c, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x0a, 0x00, 0x72, 0x65, 0x73, 0x65, 0x74, 0x20, 0x70, 0x6c, 0x6c, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x00, 0x61, 0x78, 0x70, 0x32, 0x32, 0x78, 0x20, 0x6f, 0x72, 0x20, 0x61, 0x78, 0x70, 0x32, 0x30, 0x39, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x50, 0x4d, 0x55, 0x3a, 0x20, 0x00, 0x41, 0x58, 0x50, 0x32, 0x32, 0x31, 0x0a, 0x00, 0x41, 0x58, 0x50, 0x32, 0x30, 0x39, 0x0a, 0x00, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x20, 0x70, 0x6d, 0x75, 0x0a, 0x00, 0x73, 0x75, 0x6e, 0x78, 0x69, 0x20, 0x70, 0x6d, 0x75, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x3a, 0x20, 0x75, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x64, 0x63, 0x64, 0x63, 0x35, 0x0a, 0x00, 0x73, 0x75, 0x6e, 0x78, 0x69, 0x20, 0x70, 0x6d, 0x75, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x3a, 0x20, 0x75, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x64, 0x63, 0x64, 0x63, 0x35, 0x0a, 0x00, 0x64, 0x64, 0x72, 0x20, 0x76, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x6d, 0x76, 0x0a, 0x00, 0x73, 0x65, 0x74, 0x20, 0x72, 0x65, 0x67, 0x25, 0x78, 0x20, 0x3d, 0x20, 0x25, 0x78, 0x0a, 0x00, 0x73, 0x65, 0x74, 0x20, 0x72, 0x74, 0x63, 0x20, 0x76, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x0a, 0x00, 0x73, 0x65, 0x74, 0x20, 0x72, 0x74, 0x63, 0x20, 0x76, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x6b, 0x0a, 0x00, 0x5b, 0x20, 0x20, 0x20, 0x20, 0x20, 0x25, 0x64, 0x2e, 0x25, 0x64, 0x5d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xac, 0xc2, 0x01, 0x01, 0x00, 0x00, 0x00, 0x2c, 0x36, 0x41, 0x62, 0xc2, 0x3a, 0x87, 0x1d, 0xf7, 0xbf, 0xd9, 0x24, 0x40, 0x5b, 0xb6, 0x7b, 0xa6, 0x80, 0x09, 0x1f, 0x8b, 0xb6, 0x51, 0x72 }; if(strcmp(type, "ddr3") == 0) { static const struct ddr3_param_t ddr3 = { .dram_clk = 672, .dram_type = 3, .dram_zq = 0x3b3bf9, .dram_odt_en = 0x1, .dram_para1 = 0x10e410e4, .dram_para2 = 0x0000, .dram_mr0 = 0x1840, .dram_mr1 = 0x40, .dram_mr2 = 0x18, .dram_mr3 = 0x2, .dram_tpr0 = 0x0048a192, .dram_tpr1 = 0x01b1a94b, .dram_tpr2 = 0x00061043, .dram_tpr3 = 0xb4787896, .dram_tpr4 = 0x0000, .dram_tpr5 = 0x0, .dram_tpr6 = 100, .dram_tpr7 = 0x1e08a1e0, .dram_tpr8 = 0x0, .dram_tpr9 = 0, .dram_tpr10 = 0x0003, .dram_tpr11 = 0x33330000, .dram_tpr12 = 0x7777, .dram_tpr13 = 0xc0929d0, }; fel_write(ctx, 0x00008000, (void *)&ddr3_payload[0], sizeof(ddr3_payload)); fel_write(ctx, 0x00008038, (void *)&ddr3, sizeof(ddr3)); fel_exec(ctx, 0x00008000); return 1; } else if(strcmp(type, "lpddr3") == 0) { static const struct ddr3_param_t lpddr3 = { .dram_clk = 648, .dram_type = 7, .dram_zq = 0x3b3bfb, .dram_odt_en = 0x31, .dram_para1 = 0x10e410e4, .dram_para2 = 0x1000, .dram_mr0 = 0x1840, .dram_mr1 = 0x40, .dram_mr2 = 0x18, .dram_mr3 = 0x2, .dram_tpr0 = 0x0048a192, .dram_tpr1 = 0x01b1a94b, .dram_tpr2 = 0x00061043, .dram_tpr3 = 0xb47d7d96, .dram_tpr4 = 0x0000, .dram_tpr5 = 0x0, .dram_tpr6 = 100, .dram_tpr7 = 0x1e08a1e0, .dram_tpr8 = 0x0, .dram_tpr9 = 0x0, .dram_tpr10 = 0x0008, .dram_tpr11 = 0x44450000, .dram_tpr12 = 0x9777, .dram_tpr13 = 0xc0929d0, }; fel_write(ctx, 0x00008000, (void *)&ddr3_payload[0], sizeof(ddr3_payload)); fel_write(ctx, 0x00008038, (void *)&lpddr3, sizeof(lpddr3)); fel_exec(ctx, 0x00008000); return 1; } printf("usage:\r\n"); printf(" xfel ddr ddr3 - Initial ddr controller for DDR3\r\n"); printf(" xfel ddr lpddr3 - Initial ddr controller for LPDDR3\r\n"); return 0; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { return 0; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { return 0; } static const struct sid_section_t { char * name; uint32_t offset; uint32_t size_bits; } sids[] = { { "chipid", 0x0000, 128 }, { "in", 0x0010, 256 }, { "ssk", 0x0030, 128 }, { "thermal", 0x0040, 32 }, { "ft-zone", 0x0044, 64 }, { "tvout", 0x004c, 128 }, { "rssk", 0x005c, 256 }, { "hdcp-hash", 0x007c, 128 }, { "reserved", 0x0090, 896 }, }; static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { if(argc > 0) { if(!strcmp(argv[0], "efuse")) { argc -= 1; argv += 1; if(argc > 0) { if(!strcmp(argv[0], "dump") && (argc == 1)) { uint32_t buffer[2048 / 4]; for(int n = 0; n < ARRAY_SIZE(sids); n++) { uint32_t count = sids[n].size_bits / 32; for(int i = 0; i < count; i++) buffer[i] = payload_read32(ctx, 0x01c1b200 + sids[n].offset + i * 4); printf("%s:(0x%04x %d-bits)", sids[n].name, sids[n].offset, sids[n].size_bits); for(int i = 0; i < count; i++) { if(i >= 0 && ((i % 8) == 0)) printf("\r\n%-4s", ""); printf("%08x ", buffer[i]); } printf("\r\n"); } return 1; } } } } printf("usage:\r\n"); printf(" xfel extra efuse dump - Dump all of the efuse information\r\n"); return 0; } struct chip_t a40i_r40 = { .name = "A40I/R40", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/chips/a50.c000066400000000000000000000016471512120643700143260ustar00rootroot00000000000000#include static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00175500) return 1; return 0; } static int chip_reset(struct xfel_ctx_t * ctx) { return 0; } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { return 0; } static int chip_jtag(struct xfel_ctx_t * ctx) { return 0; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { return 0; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { return 0; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { return 0; } static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { return 0; } struct chip_t a50 = { .name = "A50", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/chips/a523_a527_t527.c000066400000000000000000010234611512120643700157310ustar00rootroot00000000000000#include static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00189000) return 1; return 0; } static uint32_t payload_read32(struct xfel_ctx_t * ctx, uint32_t addr) { static const uint8_t payload[] = { 0x00, 0x00, 0xa0, 0xe3, 0x17, 0x0f, 0x08, 0xee, 0x15, 0x0f, 0x07, 0xee, 0xd5, 0x0f, 0x07, 0xee, 0x9a, 0x0f, 0x07, 0xee, 0x95, 0x0f, 0x07, 0xee, 0xff, 0xff, 0xff, 0xea, 0x0c, 0x00, 0x9f, 0xe5, 0x0c, 0x10, 0x8f, 0xe2, 0x00, 0x20, 0x90, 0xe5, 0x00, 0x20, 0x81, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, }; uint32_t adr = cpu_to_le32(addr); uint32_t val; fel_write(ctx, ctx->version.scratchpad, (void *)payload, sizeof(payload)); fel_write(ctx, ctx->version.scratchpad + sizeof(payload), (void *)&adr, sizeof(adr)); fel_exec(ctx, ctx->version.scratchpad); fel_read(ctx, ctx->version.scratchpad + sizeof(payload) + sizeof(adr), (void *)&val, sizeof(val)); return le32_to_cpu(val); } static void payload_write32(struct xfel_ctx_t * ctx, uint32_t addr, uint32_t val) { static const uint8_t payload[] = { 0x00, 0x00, 0xa0, 0xe3, 0x17, 0x0f, 0x08, 0xee, 0x15, 0x0f, 0x07, 0xee, 0xd5, 0x0f, 0x07, 0xee, 0x9a, 0x0f, 0x07, 0xee, 0x95, 0x0f, 0x07, 0xee, 0xff, 0xff, 0xff, 0xea, 0x08, 0x00, 0x9f, 0xe5, 0x08, 0x10, 0x9f, 0xe5, 0x00, 0x10, 0x80, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, }; uint32_t params[2] = { cpu_to_le32(addr), cpu_to_le32(val), }; fel_write(ctx, ctx->version.scratchpad, (void *)payload, sizeof(payload)); fel_write(ctx, ctx->version.scratchpad + sizeof(payload), (void *)params, sizeof(params)); fel_exec(ctx, ctx->version.scratchpad); } static void payload_jmp_to_arm64(struct xfel_ctx_t * ctx, uint32_t addr) { static const uint8_t payload[] = { 0x00, 0x00, 0xa0, 0xe3, 0x17, 0x0f, 0x08, 0xee, 0x15, 0x0f, 0x07, 0xee, 0xd5, 0x0f, 0x07, 0xee, 0x9a, 0x0f, 0x07, 0xee, 0x95, 0x0f, 0x07, 0xee, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x40, 0x5c, 0x00, 0x9f, 0xe5, 0x00, 0xd0, 0x80, 0xe5, 0x04, 0xe0, 0x80, 0xe5, 0x00, 0xe0, 0x0f, 0xe1, 0x08, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x0c, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x1c, 0xee, 0x10, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x14, 0xe0, 0x80, 0xe5, 0x38, 0x00, 0x1f, 0xe5, 0x0c, 0x00, 0x00, 0xeb, 0x28, 0x00, 0x9f, 0xe5, 0x00, 0xd0, 0x90, 0xe5, 0x04, 0xe0, 0x90, 0xe5, 0x14, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x10, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x0c, 0xee, 0x0c, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x08, 0x10, 0x90, 0xe5, 0x01, 0xf0, 0x29, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0xe0, 0x7f, 0x04, 0x00, 0x02, 0x23, 0xa0, 0xe3, 0x00, 0x10, 0xa0, 0xe3, 0x40, 0x00, 0x82, 0xe5, 0x44, 0x10, 0x82, 0xe5, 0x50, 0x2f, 0x1c, 0xee, 0x03, 0x20, 0x82, 0xe3, 0x4f, 0xf0, 0x7f, 0xf5, 0x50, 0x2f, 0x0c, 0xee, 0x6f, 0xf0, 0x7f, 0xf5, 0x03, 0xf0, 0x20, 0xe3, 0xfd, 0xff, 0xff, 0xea, 0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x4e, 0x55, 0x00, 0xec, 0x31, 0xc0, 0x4b, 0x42, 0x7a, 0x23, 0x57, 0x32, 0xfa, 0xfc, 0xe1, 0x02, 0xe3, 0xc1, 0x18, 0x42, 0x45, 0x69, 0x4c, 0x2f, 0x6c, 0x69, 0x62, 0x2f, 0x6c, 0x64, 0x2d, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x2d, 0x61, 0x72, 0x6d, 0x68, 0x66, 0x2e, 0x73, 0x6f, 0x2e, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0xfe, 0xff, 0x6f, 0x08, 0x01, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x01, 0x02, 0x00, 0x06, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x02, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xfb, 0xff, 0xff, 0x6f, 0x01, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; uint32_t adr = cpu_to_le32(addr); fel_write(ctx, ctx->version.scratchpad, (void *)payload, sizeof(payload)); fel_write(ctx, ctx->version.scratchpad + 0x1c, (void *)&adr, sizeof(adr)); fel_exec(ctx, ctx->version.scratchpad); } static int chip_reset(struct xfel_ctx_t * ctx) { payload_write32(ctx, 0x02050000 + 0x08, (0x16aa << 16) | (0x1 << 0)); return 1; } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { uint32_t id[4]; id[0] = payload_read32(ctx, 0x03006200 + 0x0); id[1] = payload_read32(ctx, 0x03006200 + 0x4); id[2] = payload_read32(ctx, 0x03006200 + 0x8); id[3] = payload_read32(ctx, 0x03006200 + 0xc); sprintf(sid, "%08x%08x%08x%08x", id[0], id[1], id[2], id[3]); return 1; } static int chip_jtag(struct xfel_ctx_t * ctx) { return 0; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { static const uint8_t lpddr4_payload [] = { 0xde, 0x04, 0x00, 0xea, 0x65, 0x47, 0x4f, 0x4e, 0x2e, 0x42, 0x54, 0x30, 0xc4, 0x68, 0x85, 0x5d, 0x60, 0xa6, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x33, 0x30, 0x30, 0x30, 0x40, 0xc3, 0x04, 0x00, 0x00, 0xc0, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x2e, 0x30, 0x2e, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x0d, 0x0d, 0x0d, 0x0d, 0x0e, 0x0e, 0x00, 0x00, 0x84, 0x84, 0x84, 0x84, 0x0a, 0x31, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x06, 0x06, 0x06, 0x06, 0x03, 0x05, 0x07, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x33, 0x33, 0x2f, 0x80, 0xb2, 0xae, 0xb2, 0xb0, 0x2d, 0x29, 0x31, 0x2e, 0x64, 0x00, 0x00, 0x00, 0x48, 0x48, 0x48, 0x48, 0x00, 0x00, 0x00, 0x00, 0x02, 0x09, 0x02, 0x01, 0xff, 0xff, 0x00, 0x00, 0x02, 0x0a, 0x02, 0x01, 0xff, 0xff, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x03, 0xff, 0xff, 0xff, 0x00, 0x00, 0x06, 0x05, 0x03, 0xff, 0xff, 0xff, 0x00, 0x00, 0x06, 0x03, 0x03, 0xff, 0xff, 0xff, 0x00, 0x00, 0x06, 0x01, 0x03, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x02, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x03, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x04, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x05, 0x02, 0x01, 0x02, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x63, 0x37, 0x32, 0x65, 0x61, 0x39, 0x39, 0x62, 0x39, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x02, 0x01, 0xff, 0xff, 0x06, 0x00, 0x0c, 0x01, 0x02, 0x01, 0xff, 0xff, 0x06, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x72, 0x61, 0x6d, 0x32, 0x2e, 0x30, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x2e, 0x65, 0x78, 0x74, 0x03, 0x01, 0x00, 0x00, 0x08, 0x10, 0x00, 0x01, 0xff, 0xff, 0x00, 0x00, 0x08, 0x11, 0x00, 0x01, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x02, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x19, 0x19, 0x00, 0x00, 0x11, 0x14, 0x17, 0x16, 0xeb, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 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, 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, 0x80, 0xb4, 0x2f, 0x6b, 0x87, 0x2f, 0x00, 0x05, 0x0c, 0x12, 0x10, 0x11, 0x11, 0x12, 0x12, 0x61, 0x00, 0x00, 0x00, 0x22, 0x1e, 0x1e, 0x21, 0xa0, 0x02, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x19, 0x19, 0x00, 0x00, 0x11, 0x14, 0x17, 0x16, 0xeb, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 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, 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, 0x80, 0xb4, 0x2f, 0x6b, 0x87, 0x2f, 0x00, 0x05, 0x0c, 0x12, 0x10, 0x11, 0x11, 0x12, 0x12, 0x61, 0x00, 0x00, 0x00, 0x22, 0x1e, 0x1e, 0x21, 0xa0, 0x02, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x19, 0x19, 0x00, 0x00, 0x11, 0x14, 0x17, 0x16, 0xeb, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 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, 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, 0x80, 0xb4, 0x2f, 0x6b, 0x87, 0x2f, 0x00, 0x05, 0x0c, 0x12, 0x10, 0x11, 0x11, 0x12, 0x12, 0x61, 0x00, 0x00, 0x00, 0x22, 0x1e, 0x1e, 0x21, 0xa0, 0x02, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x19, 0x19, 0x00, 0x00, 0x11, 0x14, 0x17, 0x16, 0xeb, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 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, 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, 0x80, 0xb4, 0x2f, 0x6b, 0x87, 0x2f, 0x00, 0x05, 0x0c, 0x12, 0x10, 0x11, 0x11, 0x12, 0x12, 0x61, 0x00, 0x00, 0x00, 0x22, 0x1e, 0x1e, 0x21, 0xa0, 0x02, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x19, 0x19, 0x00, 0x00, 0x11, 0x14, 0x17, 0x16, 0xeb, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 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, 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, 0x80, 0xb4, 0x2f, 0x6b, 0x87, 0x2f, 0x00, 0x05, 0x0c, 0x12, 0x10, 0x11, 0x11, 0x12, 0x12, 0x61, 0x00, 0x00, 0x00, 0x22, 0x1e, 0x1e, 0x21, 0xd0, 0x02, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x1f, 0x1f, 0x1f, 0x1f, 0x0e, 0x0e, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0xfa, 0x30, 0x00, 0x00, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x7a, 0x77, 0x2f, 0x80, 0x81, 0x7c, 0x7c, 0x7d, 0x29, 0x22, 0x2b, 0x29, 0x20, 0x00, 0x00, 0x00, 0x50, 0x50, 0x50, 0x50, 0xa5, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x0d, 0x0d, 0x0d, 0x0d, 0x0e, 0x0e, 0x00, 0x00, 0x84, 0x84, 0x84, 0x84, 0x0a, 0x31, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x06, 0x06, 0x06, 0x06, 0x03, 0x05, 0x07, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x33, 0x33, 0x2f, 0x80, 0xb2, 0xae, 0xb2, 0xb0, 0x2d, 0x29, 0x31, 0x2e, 0x64, 0x00, 0x00, 0x00, 0x48, 0x48, 0x48, 0x48, 0xb0, 0x04, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x0d, 0x0d, 0x0d, 0x0d, 0x0e, 0x0e, 0x00, 0x00, 0x84, 0x84, 0x84, 0x84, 0x0a, 0x31, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x06, 0x06, 0x06, 0x06, 0x03, 0x05, 0x09, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x33, 0x33, 0x2f, 0x80, 0xbf, 0xbb, 0xc0, 0xc0, 0x31, 0x2f, 0x35, 0x35, 0x64, 0x00, 0x00, 0x00, 0x48, 0x48, 0x48, 0x48, 0xa0, 0x02, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x19, 0x19, 0x00, 0x00, 0x11, 0x14, 0x17, 0x16, 0xeb, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 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, 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, 0x80, 0xb4, 0x2f, 0x6b, 0x87, 0x2f, 0x00, 0x05, 0x0c, 0x12, 0x10, 0x11, 0x11, 0x12, 0x12, 0x61, 0x00, 0x00, 0x00, 0x22, 0x1e, 0x1e, 0x21, 0xa0, 0x02, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x19, 0x19, 0x00, 0x00, 0x11, 0x14, 0x17, 0x16, 0xeb, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 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, 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, 0x80, 0xb4, 0x2f, 0x6b, 0x87, 0x2f, 0x00, 0x05, 0x0c, 0x12, 0x10, 0x11, 0x11, 0x12, 0x12, 0x61, 0x00, 0x00, 0x00, 0x22, 0x1e, 0x1e, 0x21, 0xa0, 0x02, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x19, 0x19, 0x00, 0x00, 0x11, 0x14, 0x17, 0x16, 0xeb, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 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, 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, 0x80, 0xb4, 0x2f, 0x6b, 0x87, 0x2f, 0x00, 0x05, 0x0c, 0x12, 0x10, 0x11, 0x11, 0x12, 0x12, 0x61, 0x00, 0x00, 0x00, 0x22, 0x1e, 0x1e, 0x21, 0xa0, 0x02, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x19, 0x19, 0x00, 0x00, 0x11, 0x14, 0x17, 0x16, 0xeb, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 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, 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, 0x80, 0xb4, 0x2f, 0x6b, 0x87, 0x2f, 0x00, 0x05, 0x0c, 0x12, 0x10, 0x11, 0x11, 0x12, 0x12, 0x61, 0x00, 0x00, 0x00, 0x22, 0x1e, 0x1e, 0x21, 0xa0, 0x02, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x19, 0x19, 0x00, 0x00, 0x11, 0x14, 0x17, 0x16, 0xeb, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 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, 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, 0x80, 0xb4, 0x2f, 0x6b, 0x87, 0x2f, 0x00, 0x05, 0x0c, 0x12, 0x10, 0x11, 0x11, 0x12, 0x12, 0x61, 0x00, 0x00, 0x00, 0x22, 0x1e, 0x1e, 0x21, 0xa0, 0x02, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x19, 0x19, 0x00, 0x00, 0x11, 0x14, 0x17, 0x16, 0xeb, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 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, 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, 0x80, 0xb4, 0x2f, 0x6b, 0x87, 0x2f, 0x00, 0x05, 0x0c, 0x12, 0x10, 0x11, 0x11, 0x12, 0x12, 0x61, 0x00, 0x00, 0x00, 0x22, 0x1e, 0x1e, 0x21, 0xa0, 0x02, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x19, 0x19, 0x00, 0x00, 0x11, 0x14, 0x17, 0x16, 0xeb, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 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, 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, 0x80, 0xb4, 0x2f, 0x6b, 0x87, 0x2f, 0x00, 0x05, 0x0c, 0x12, 0x10, 0x11, 0x11, 0x12, 0x12, 0x61, 0x00, 0x00, 0x00, 0x22, 0x1e, 0x1e, 0x21, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xea, 0x00, 0x40, 0x2d, 0xe9, 0x05, 0x00, 0x00, 0xeb, 0x10, 0x0f, 0x11, 0xee, 0x01, 0x0a, 0x80, 0xe3, 0x10, 0x0f, 0x01, 0xee, 0xa8, 0x1e, 0x00, 0xfa, 0x00, 0x40, 0xbd, 0xe8, 0x0e, 0xf0, 0xa0, 0xe1, 0x18, 0x00, 0x9f, 0xe5, 0x18, 0x10, 0x9f, 0xe5, 0x00, 0x20, 0xa0, 0xe3, 0x00, 0x20, 0x80, 0xe5, 0x04, 0x00, 0x80, 0xe2, 0x01, 0x00, 0x50, 0xe1, 0xfb, 0xff, 0xff, 0x1a, 0x0e, 0xf0, 0xa0, 0xe1, 0x44, 0x66, 0x05, 0x00, 0x8c, 0x6e, 0x05, 0x00, 0x5f, 0xf0, 0x7f, 0xf5, 0x30, 0x0f, 0x30, 0xee, 0xa0, 0x3b, 0xa0, 0xe1, 0x0e, 0x30, 0x13, 0xe2, 0x1c, 0x00, 0x00, 0x0a, 0x00, 0xa0, 0xa0, 0xe3, 0xaa, 0x20, 0x8a, 0xe0, 0x30, 0x12, 0xa0, 0xe1, 0x07, 0x10, 0x01, 0xe2, 0x02, 0x00, 0x51, 0xe3, 0x13, 0x00, 0x00, 0xba, 0x10, 0xaf, 0x40, 0xee, 0x6f, 0xf0, 0x7f, 0xf5, 0x10, 0x1f, 0x30, 0xee, 0x07, 0x20, 0x01, 0xe2, 0x04, 0x20, 0x82, 0xe2, 0xff, 0x43, 0x00, 0xe3, 0xa1, 0x41, 0x14, 0xe0, 0x14, 0x5f, 0x6f, 0xe1, 0xff, 0x7f, 0x07, 0xe3, 0xa1, 0x76, 0x17, 0xe0, 0x07, 0x90, 0xa0, 0xe1, 0x14, 0x65, 0xa0, 0xe1, 0x06, 0xb0, 0x8a, 0xe1, 0x19, 0x62, 0xa0, 0xe1, 0x06, 0xb0, 0x8b, 0xe1, 0x5e, 0xbf, 0x07, 0xee, 0x01, 0x90, 0x59, 0xe2, 0xf8, 0xff, 0xff, 0xaa, 0x01, 0x40, 0x54, 0xe2, 0xf5, 0xff, 0xff, 0xaa, 0x02, 0xa0, 0x8a, 0xe2, 0x0a, 0x00, 0x53, 0xe1, 0xe3, 0xff, 0xff, 0xca, 0x00, 0xa0, 0xa0, 0xe3, 0x10, 0xaf, 0x40, 0xee, 0x4e, 0xf0, 0x7f, 0xf5, 0x6f, 0xf0, 0x7f, 0xf5, 0x1e, 0xff, 0x2f, 0xe1, 0xf0, 0x4e, 0x2d, 0xe9, 0xd6, 0xff, 0xff, 0xeb, 0xf0, 0x4e, 0xbd, 0xe8, 0x1e, 0xff, 0x2f, 0xe1, 0x04, 0x20, 0x52, 0xe2, 0x2c, 0x00, 0x00, 0xba, 0x02, 0x00, 0x53, 0xe3, 0x01, 0x10, 0xc0, 0xb4, 0x01, 0x10, 0xc0, 0xd4, 0x01, 0x10, 0xc0, 0xe4, 0x03, 0x20, 0x82, 0xe0, 0x03, 0x30, 0x10, 0xe2, 0xf6, 0xff, 0xff, 0x1a, 0x01, 0x14, 0x81, 0xe1, 0x01, 0x18, 0x81, 0xe1, 0x01, 0x30, 0xa0, 0xe1, 0x10, 0x00, 0x52, 0xe3, 0x1c, 0x00, 0x00, 0xba, 0xf0, 0x40, 0x2d, 0xe9, 0x01, 0x40, 0xa0, 0xe1, 0x01, 0x50, 0xa0, 0xe1, 0x01, 0x60, 0xa0, 0xe1, 0x01, 0x70, 0xa0, 0xe1, 0x01, 0xc0, 0xa0, 0xe1, 0x01, 0xe0, 0xa0, 0xe1, 0x60, 0x00, 0x52, 0xe3, 0x1f, 0x00, 0x10, 0xc3, 0x08, 0x00, 0x00, 0xda, 0x1f, 0xc0, 0x00, 0xe2, 0x20, 0xc0, 0x6c, 0xe2, 0x0c, 0x20, 0x42, 0xe0, 0x0c, 0xce, 0xb0, 0xe1, 0xf0, 0x00, 0xa0, 0x28, 0x30, 0x00, 0xa0, 0x48, 0x01, 0x01, 0x1c, 0xe3, 0x01, 0xc0, 0xa0, 0xe1, 0x04, 0x10, 0x80, 0x14, 0x40, 0x20, 0x52, 0xe2, 0xfa, 0x50, 0xa0, 0xa8, 0xfa, 0x50, 0xa0, 0xa8, 0xfb, 0xff, 0xff, 0xca, 0xf0, 0x80, 0xbd, 0x08, 0x20, 0x00, 0x12, 0xe3, 0xfa, 0x50, 0xa0, 0x18, 0x10, 0x00, 0x12, 0xe3, 0xf0, 0x00, 0xa0, 0x18, 0xf0, 0x40, 0xbd, 0xe8, 0x08, 0x00, 0x12, 0xe3, 0x0a, 0x00, 0xa0, 0x18, 0x04, 0x00, 0x12, 0xe3, 0x04, 0x10, 0x80, 0x14, 0x02, 0x00, 0x12, 0xe3, 0x01, 0x10, 0xc0, 0x14, 0x01, 0x10, 0xc0, 0x14, 0x01, 0x00, 0x12, 0xe3, 0x01, 0x10, 0xc0, 0x14, 0x3e, 0xff, 0x2f, 0xe1, 0x01, 0x00, 0x50, 0xe1, 0x0e, 0xf0, 0xa0, 0x01, 0x11, 0x40, 0x2d, 0xe9, 0x04, 0x20, 0x52, 0xe2, 0x29, 0x00, 0x00, 0xba, 0x03, 0xc0, 0x10, 0xe2, 0x30, 0x00, 0x00, 0x1a, 0x03, 0xc0, 0x11, 0xe2, 0x3a, 0x00, 0x00, 0x1a, 0x1c, 0x20, 0x52, 0xe2, 0xe0, 0x01, 0x2d, 0xe9, 0x0a, 0x00, 0x00, 0xba, 0x1f, 0xc0, 0x10, 0xe2, 0x20, 0x30, 0x6c, 0xe2, 0x02, 0x40, 0xd3, 0x10, 0x02, 0x00, 0x00, 0x2a, 0x24, 0x40, 0x8f, 0xe2, 0x03, 0x20, 0x52, 0xe0, 0x0c, 0xf0, 0x84, 0xe0, 0xf8, 0x51, 0xb1, 0xe8, 0x20, 0x20, 0x52, 0xe2, 0xf8, 0x51, 0xa0, 0xe8, 0xfb, 0xff, 0xff, 0xaa, 0x1c, 0xc0, 0x12, 0xe2, 0x20, 0xc0, 0x6c, 0xe2, 0x0c, 0xf0, 0x8f, 0x10, 0x12, 0x00, 0x00, 0xea, 0x00, 0xf0, 0x20, 0xe3, 0x04, 0x30, 0x91, 0xe4, 0x04, 0x40, 0x91, 0xe4, 0x04, 0x50, 0x91, 0xe4, 0x04, 0x60, 0x91, 0xe4, 0x04, 0x70, 0x91, 0xe4, 0x04, 0x80, 0x91, 0xe4, 0x04, 0xe0, 0x91, 0xe4, 0x0c, 0xf0, 0x8f, 0xe0, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0xf0, 0x20, 0xe3, 0x04, 0x30, 0x80, 0xe4, 0x04, 0x40, 0x80, 0xe4, 0x04, 0x50, 0x80, 0xe4, 0x04, 0x60, 0x80, 0xe4, 0x04, 0x70, 0x80, 0xe4, 0x04, 0x80, 0x80, 0xe4, 0x04, 0xe0, 0x80, 0xe4, 0xe4, 0xff, 0xff, 0x2a, 0xe0, 0x01, 0xbd, 0xe8, 0x82, 0x2f, 0xb0, 0xe1, 0x01, 0x30, 0xd1, 0x14, 0x01, 0x40, 0xd1, 0x24, 0x01, 0xc0, 0xd1, 0x24, 0x01, 0x30, 0xc0, 0x14, 0x01, 0x40, 0xc0, 0x24, 0x01, 0xc0, 0xc0, 0x24, 0x11, 0x40, 0xbd, 0xe8, 0x3e, 0xff, 0x2f, 0xe1, 0x04, 0xc0, 0x6c, 0xe2, 0x02, 0x00, 0x5c, 0xe3, 0x01, 0x30, 0xd1, 0xc4, 0x01, 0x40, 0xd1, 0xa4, 0x01, 0xe0, 0xd1, 0xe4, 0x01, 0x30, 0xc0, 0xc4, 0x01, 0x40, 0xc0, 0xa4, 0x0c, 0x20, 0x52, 0xe0, 0x01, 0xe0, 0xc0, 0xe4, 0xec, 0xff, 0xff, 0xba, 0x03, 0xc0, 0x11, 0xe2, 0xc4, 0xff, 0xff, 0x0a, 0x03, 0x10, 0xc1, 0xe3, 0x02, 0x00, 0x5c, 0xe3, 0x04, 0xe0, 0x91, 0xe4, 0x2a, 0x00, 0x00, 0x0a, 0x53, 0x00, 0x00, 0xca, 0x1c, 0x20, 0x52, 0xe2, 0x1b, 0x00, 0x00, 0xba, 0x1f, 0xc0, 0x10, 0xe2, 0x20, 0xc0, 0x6c, 0xe2, 0x02, 0x40, 0xdc, 0x10, 0x0c, 0x20, 0x42, 0x30, 0x18, 0x00, 0x00, 0x3a, 0xe0, 0x03, 0x2d, 0xe9, 0xf0, 0x00, 0xb1, 0xe8, 0x2e, 0x34, 0xa0, 0xe1, 0x20, 0x20, 0x52, 0xe2, 0x00, 0x53, 0xb1, 0xe8, 0x04, 0x3c, 0x83, 0xe1, 0x24, 0x44, 0xa0, 0xe1, 0x05, 0x4c, 0x84, 0xe1, 0x25, 0x54, 0xa0, 0xe1, 0x06, 0x5c, 0x85, 0xe1, 0x26, 0x64, 0xa0, 0xe1, 0x07, 0x6c, 0x86, 0xe1, 0x27, 0x74, 0xa0, 0xe1, 0x08, 0x7c, 0x87, 0xe1, 0x28, 0x84, 0xa0, 0xe1, 0x09, 0x8c, 0x88, 0xe1, 0x29, 0x94, 0xa0, 0xe1, 0x0c, 0x9c, 0x89, 0xe1, 0x2c, 0xc4, 0xa0, 0xe1, 0x0e, 0xcc, 0x8c, 0xe1, 0xf8, 0x13, 0xa0, 0xe8, 0xea, 0xff, 0xff, 0xaa, 0xe0, 0x03, 0xbd, 0xe8, 0x1c, 0xc0, 0x12, 0xe2, 0x07, 0x00, 0x00, 0x0a, 0x2e, 0x34, 0xa0, 0xe1, 0x04, 0xe0, 0x91, 0xe4, 0x04, 0xc0, 0x5c, 0xe2, 0x0e, 0x3c, 0x83, 0xe1, 0x04, 0x30, 0x80, 0xe4, 0xf9, 0xff, 0xff, 0xca, 0x00, 0x00, 0x52, 0xe3, 0xde, 0xff, 0xff, 0xaa, 0x03, 0x10, 0x41, 0xe2, 0xbb, 0xff, 0xff, 0xea, 0x1c, 0x20, 0x52, 0xe2, 0x1b, 0x00, 0x00, 0xba, 0x1f, 0xc0, 0x10, 0xe2, 0x20, 0xc0, 0x6c, 0xe2, 0x02, 0x40, 0xdc, 0x10, 0x0c, 0x20, 0x42, 0x30, 0x18, 0x00, 0x00, 0x3a, 0xe0, 0x03, 0x2d, 0xe9, 0xf0, 0x00, 0xb1, 0xe8, 0x2e, 0x38, 0xa0, 0xe1, 0x20, 0x20, 0x52, 0xe2, 0x00, 0x53, 0xb1, 0xe8, 0x04, 0x38, 0x83, 0xe1, 0x24, 0x48, 0xa0, 0xe1, 0x05, 0x48, 0x84, 0xe1, 0x25, 0x58, 0xa0, 0xe1, 0x06, 0x58, 0x85, 0xe1, 0x26, 0x68, 0xa0, 0xe1, 0x07, 0x68, 0x86, 0xe1, 0x27, 0x78, 0xa0, 0xe1, 0x08, 0x78, 0x87, 0xe1, 0x28, 0x88, 0xa0, 0xe1, 0x09, 0x88, 0x88, 0xe1, 0x29, 0x98, 0xa0, 0xe1, 0x0c, 0x98, 0x89, 0xe1, 0x2c, 0xc8, 0xa0, 0xe1, 0x0e, 0xc8, 0x8c, 0xe1, 0xf8, 0x13, 0xa0, 0xe8, 0xea, 0xff, 0xff, 0xaa, 0xe0, 0x03, 0xbd, 0xe8, 0x1c, 0xc0, 0x12, 0xe2, 0x07, 0x00, 0x00, 0x0a, 0x2e, 0x38, 0xa0, 0xe1, 0x04, 0xe0, 0x91, 0xe4, 0x04, 0xc0, 0x5c, 0xe2, 0x0e, 0x38, 0x83, 0xe1, 0x04, 0x30, 0x80, 0xe4, 0xf9, 0xff, 0xff, 0xca, 0x00, 0x00, 0x52, 0xe3, 0xde, 0xff, 0xff, 0xaa, 0x02, 0x10, 0x41, 0xe2, 0x91, 0xff, 0xff, 0xea, 0x1c, 0x20, 0x52, 0xe2, 0x1b, 0x00, 0x00, 0xba, 0x1f, 0xc0, 0x10, 0xe2, 0x20, 0xc0, 0x6c, 0xe2, 0x02, 0x40, 0xdc, 0x10, 0x0c, 0x20, 0x42, 0x30, 0x18, 0x00, 0x00, 0x3a, 0xe0, 0x03, 0x2d, 0xe9, 0xf0, 0x00, 0xb1, 0xe8, 0x2e, 0x3c, 0xa0, 0xe1, 0x20, 0x20, 0x52, 0xe2, 0x00, 0x53, 0xb1, 0xe8, 0x04, 0x34, 0x83, 0xe1, 0x24, 0x4c, 0xa0, 0xe1, 0x05, 0x44, 0x84, 0xe1, 0x25, 0x5c, 0xa0, 0xe1, 0x06, 0x54, 0x85, 0xe1, 0x26, 0x6c, 0xa0, 0xe1, 0x07, 0x64, 0x86, 0xe1, 0x27, 0x7c, 0xa0, 0xe1, 0x08, 0x74, 0x87, 0xe1, 0x28, 0x8c, 0xa0, 0xe1, 0x09, 0x84, 0x88, 0xe1, 0x29, 0x9c, 0xa0, 0xe1, 0x0c, 0x94, 0x89, 0xe1, 0x2c, 0xcc, 0xa0, 0xe1, 0x0e, 0xc4, 0x8c, 0xe1, 0xf8, 0x13, 0xa0, 0xe8, 0xea, 0xff, 0xff, 0xaa, 0xe0, 0x03, 0xbd, 0xe8, 0x1c, 0xc0, 0x12, 0xe2, 0x07, 0x00, 0x00, 0x0a, 0x2e, 0x3c, 0xa0, 0xe1, 0x04, 0xe0, 0x91, 0xe4, 0x04, 0xc0, 0x5c, 0xe2, 0x0e, 0x34, 0x83, 0xe1, 0x04, 0x30, 0x80, 0xe4, 0xf9, 0xff, 0xff, 0xca, 0x00, 0x00, 0x52, 0xe3, 0xde, 0xff, 0xff, 0xaa, 0x01, 0x10, 0x41, 0xe2, 0x67, 0xff, 0xff, 0xea, 0x70, 0x00, 0x60, 0xe1, 0x0e, 0xf0, 0xa0, 0xe1, 0x70, 0x00, 0x60, 0xe1, 0x0e, 0xf0, 0xa0, 0xe1, 0xf8, 0x5f, 0x2d, 0xe9, 0xa8, 0xc2, 0x9f, 0xe5, 0x9c, 0x02, 0x02, 0xe0, 0x01, 0x20, 0x82, 0xe2, 0x02, 0x30, 0xa0, 0xe1, 0x98, 0xc2, 0x9f, 0xe5, 0x9c, 0x02, 0x02, 0xe0, 0x01, 0x20, 0x82, 0xe2, 0x02, 0x40, 0xa0, 0xe1, 0x88, 0xc2, 0x9f, 0xe5, 0x9c, 0x02, 0x02, 0xe0, 0x01, 0x20, 0x82, 0xe2, 0x02, 0x50, 0xa0, 0xe1, 0x78, 0xc2, 0x9f, 0xe5, 0x9c, 0x02, 0x02, 0xe0, 0x01, 0x20, 0x82, 0xe2, 0x02, 0x60, 0xa0, 0xe1, 0x68, 0xc2, 0x9f, 0xe5, 0x9c, 0x02, 0x02, 0xe0, 0x01, 0x20, 0x82, 0xe2, 0x02, 0x70, 0xa0, 0xe1, 0x58, 0xc2, 0x9f, 0xe5, 0x9c, 0x02, 0x02, 0xe0, 0x01, 0x20, 0x82, 0xe2, 0x02, 0x80, 0xa0, 0xe1, 0x48, 0xc2, 0x9f, 0xe5, 0x9c, 0x02, 0x02, 0xe0, 0x01, 0x20, 0x82, 0xe2, 0x02, 0x90, 0xa0, 0xe1, 0x38, 0xc2, 0x9f, 0xe5, 0x9c, 0x02, 0x02, 0xe0, 0x01, 0x20, 0x82, 0xe2, 0x02, 0xa0, 0xa0, 0xe1, 0xf8, 0x07, 0xa0, 0xe8, 0x01, 0x00, 0x50, 0xe1, 0xdc, 0xff, 0xff, 0x1a, 0xf8, 0x9f, 0xbd, 0xe8, 0x0f, 0x06, 0xa0, 0xe3, 0x50, 0x0f, 0x01, 0xee, 0x01, 0x31, 0xa0, 0xe3, 0x10, 0x3a, 0xe8, 0xee, 0x1e, 0xff, 0x2f, 0xe1, 0xf8, 0x5f, 0x2d, 0xe9, 0x00, 0x20, 0x82, 0xe0, 0x10, 0x0b, 0xb0, 0xec, 0x10, 0x8b, 0xb1, 0xec, 0x58, 0x01, 0x40, 0xf3, 0x5a, 0x21, 0x42, 0xf3, 0x5c, 0x41, 0x44, 0xf3, 0x5e, 0x61, 0x46, 0xf3, 0xf2, 0x81, 0x60, 0xf2, 0xf4, 0xa1, 0x66, 0xf2, 0xfa, 0xc1, 0x68, 0xf2, 0xbd, 0xe1, 0x6c, 0xf2, 0x3e, 0x4b, 0x55, 0xec, 0x05, 0x60, 0x84, 0xe1, 0x00, 0x00, 0x56, 0xe3, 0x03, 0x00, 0x00, 0x1a, 0x02, 0x00, 0x50, 0xe1, 0xef, 0xff, 0xff, 0x1a, 0x00, 0x00, 0xa0, 0xe3, 0xf8, 0x9f, 0xbd, 0xe8, 0x06, 0x00, 0xa0, 0xe1, 0xf8, 0x9f, 0xbd, 0xe8, 0xf0, 0x5f, 0x2d, 0xe9, 0x00, 0x20, 0x82, 0xe0, 0x10, 0x0b, 0xb0, 0xec, 0x10, 0x8b, 0xb1, 0xec, 0x58, 0x01, 0x40, 0xf3, 0x5a, 0x21, 0x42, 0xf3, 0x5c, 0x41, 0x44, 0xf3, 0x5e, 0x61, 0x46, 0xf3, 0xf2, 0x81, 0x60, 0xf2, 0xf4, 0xa1, 0x66, 0xf2, 0xfa, 0xc1, 0x68, 0xf2, 0xbd, 0xe1, 0x6c, 0xf2, 0x3e, 0x4b, 0x55, 0xec, 0x05, 0x60, 0x84, 0xe1, 0x03, 0x60, 0xc6, 0xe1, 0x00, 0x00, 0x56, 0xe3, 0x04, 0x00, 0x00, 0x1a, 0x02, 0x00, 0x50, 0xe1, 0xee, 0xff, 0xff, 0x1a, 0x00, 0x00, 0xa0, 0xe3, 0xf0, 0x9f, 0xbd, 0xe8, 0x1e, 0xff, 0x2f, 0xe1, 0x06, 0x00, 0xa0, 0xe1, 0xf0, 0x9f, 0xbd, 0xe8, 0x1e, 0xff, 0x2f, 0xe1, 0xf8, 0x5f, 0x2d, 0xe9, 0x02, 0x30, 0xe0, 0xe1, 0x02, 0x40, 0xa0, 0xe1, 0x02, 0x50, 0xe0, 0xe1, 0x10, 0x3b, 0x42, 0xec, 0x11, 0x5b, 0x44, 0xec, 0x50, 0x21, 0x20, 0xf2, 0x50, 0x41, 0x20, 0xf2, 0x50, 0x61, 0x20, 0xf2, 0x50, 0x81, 0x20, 0xf2, 0x50, 0xa1, 0x20, 0xf2, 0x50, 0xc1, 0x20, 0xf2, 0x50, 0xe1, 0x20, 0xf2, 0x20, 0x0b, 0xa0, 0xec, 0x20, 0x0b, 0xa0, 0xec, 0x20, 0x0b, 0xa0, 0xec, 0x20, 0x0b, 0xa0, 0xec, 0x20, 0x0b, 0xa0, 0xec, 0x20, 0x0b, 0xa0, 0xec, 0x20, 0x0b, 0xa0, 0xec, 0x20, 0x0b, 0xa0, 0xec, 0x20, 0x0b, 0xa0, 0xec, 0x20, 0x0b, 0xa0, 0xec, 0x20, 0x0b, 0xa0, 0xec, 0x20, 0x0b, 0xa0, 0xec, 0x20, 0x0b, 0xa0, 0xec, 0x20, 0x0b, 0xa0, 0xec, 0x20, 0x0b, 0xa0, 0xec, 0x20, 0x0b, 0xa0, 0xec, 0x01, 0x00, 0x50, 0xe1, 0xed, 0xff, 0xff, 0x1a, 0xf8, 0x9f, 0xbd, 0xe8, 0xf0, 0x5f, 0x2d, 0xe9, 0x02, 0x40, 0xa0, 0xe1, 0x03, 0x50, 0xa0, 0xe1, 0x10, 0x3b, 0x42, 0xec, 0x11, 0x5b, 0x44, 0xec, 0x50, 0x21, 0x20, 0xf2, 0x50, 0x41, 0x20, 0xf2, 0x50, 0x61, 0x20, 0xf2, 0x50, 0x81, 0x20, 0xf2, 0x50, 0xa1, 0x20, 0xf2, 0x50, 0xc1, 0x20, 0xf2, 0x50, 0xe1, 0x20, 0xf2, 0x20, 0x0b, 0xa0, 0xec, 0x20, 0x0b, 0xa0, 0xec, 0x20, 0x0b, 0xa0, 0xec, 0x20, 0x0b, 0xa0, 0xec, 0x20, 0x0b, 0xa0, 0xec, 0x20, 0x0b, 0xa0, 0xec, 0x20, 0x0b, 0xa0, 0xec, 0x20, 0x0b, 0xa0, 0xec, 0x20, 0x0b, 0xa0, 0xec, 0x20, 0x0b, 0xa0, 0xec, 0x20, 0x0b, 0xa0, 0xec, 0x20, 0x0b, 0xa0, 0xec, 0x20, 0x0b, 0xa0, 0xec, 0x20, 0x0b, 0xa0, 0xec, 0x20, 0x0b, 0xa0, 0xec, 0x20, 0x0b, 0xa0, 0xec, 0x01, 0x00, 0x50, 0xe1, 0xed, 0xff, 0xff, 0x1a, 0xf0, 0x9f, 0xbd, 0xe8, 0xf8, 0x5f, 0x2d, 0xe9, 0x00, 0x20, 0x82, 0xe0, 0x20, 0x0b, 0xb0, 0xec, 0x20, 0x0b, 0xa1, 0xec, 0x20, 0x0b, 0xb0, 0xec, 0x20, 0x0b, 0xa1, 0xec, 0x20, 0x0b, 0xb0, 0xec, 0x20, 0x0b, 0xa1, 0xec, 0x20, 0x0b, 0xb0, 0xec, 0x20, 0x0b, 0xa1, 0xec, 0x20, 0x0b, 0xb0, 0xec, 0x20, 0x0b, 0xa1, 0xec, 0x20, 0x0b, 0xb0, 0xec, 0x20, 0x0b, 0xa1, 0xec, 0x20, 0x0b, 0xb0, 0xec, 0x20, 0x0b, 0xa1, 0xec, 0x20, 0x0b, 0xb0, 0xec, 0x20, 0x0b, 0xa1, 0xec, 0x02, 0x00, 0x50, 0xe1, 0xed, 0xff, 0xff, 0x1a, 0xf8, 0x9f, 0xbd, 0xe8, 0x35, 0x4e, 0x5a, 0x01, 0x4a, 0x1e, 0x08, 0xbf, 0x70, 0x47, 0xc0, 0xf0, 0x24, 0x81, 0x88, 0x42, 0x40, 0xf2, 0x16, 0x81, 0x11, 0x42, 0x00, 0xf0, 0x17, 0x81, 0xb0, 0xfa, 0x80, 0xf3, 0xb1, 0xfa, 0x81, 0xf2, 0xa2, 0xeb, 0x03, 0x03, 0xc3, 0xf1, 0x1f, 0x03, 0x04, 0xa2, 0x02, 0xeb, 0x03, 0x13, 0x4f, 0xf0, 0x00, 0x02, 0x9f, 0x46, 0x00, 0xbf, 0xaf, 0xf3, 0x00, 0x80, 0xb0, 0xeb, 0xc1, 0x7f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x70, 0xb0, 0xeb, 0x81, 0x7f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x70, 0xb0, 0xeb, 0x41, 0x7f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x70, 0xb0, 0xeb, 0x01, 0x7f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x70, 0xb0, 0xeb, 0xc1, 0x6f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x60, 0xb0, 0xeb, 0x81, 0x6f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x60, 0xb0, 0xeb, 0x41, 0x6f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x60, 0xb0, 0xeb, 0x01, 0x6f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x60, 0xb0, 0xeb, 0xc1, 0x5f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x50, 0xb0, 0xeb, 0x81, 0x5f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x50, 0xb0, 0xeb, 0x41, 0x5f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x50, 0xb0, 0xeb, 0x01, 0x5f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x50, 0xb0, 0xeb, 0xc1, 0x4f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x40, 0xb0, 0xeb, 0x81, 0x4f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x40, 0xb0, 0xeb, 0x41, 0x4f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x40, 0xb0, 0xeb, 0x01, 0x4f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x40, 0xb0, 0xeb, 0xc1, 0x3f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x30, 0xb0, 0xeb, 0x81, 0x3f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x30, 0xb0, 0xeb, 0x41, 0x3f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x30, 0xb0, 0xeb, 0x01, 0x3f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x30, 0xb0, 0xeb, 0xc1, 0x2f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x20, 0xb0, 0xeb, 0x81, 0x2f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x20, 0xb0, 0xeb, 0x41, 0x2f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x20, 0xb0, 0xeb, 0x01, 0x2f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x20, 0xb0, 0xeb, 0xc1, 0x1f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x10, 0xb0, 0xeb, 0x81, 0x1f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x10, 0xb0, 0xeb, 0x41, 0x1f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x10, 0xb0, 0xeb, 0x01, 0x1f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x10, 0xb0, 0xeb, 0xc1, 0x0f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x00, 0xb0, 0xeb, 0x81, 0x0f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x00, 0xb0, 0xeb, 0x41, 0x0f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x00, 0xb0, 0xeb, 0x01, 0x0f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x00, 0x10, 0x46, 0x70, 0x47, 0x0c, 0xbf, 0x01, 0x20, 0x00, 0x20, 0x70, 0x47, 0xb1, 0xfa, 0x81, 0xf2, 0xc2, 0xf1, 0x1f, 0x02, 0x20, 0xfa, 0x02, 0xf0, 0x70, 0x47, 0x08, 0xb1, 0x4f, 0xf0, 0xff, 0x30, 0x00, 0xf0, 0x66, 0xb9, 0x00, 0x29, 0xf8, 0xd0, 0x2d, 0xe9, 0x03, 0x40, 0xff, 0xf7, 0xcc, 0xfe, 0xbd, 0xe8, 0x06, 0x40, 0x02, 0xfb, 0x00, 0xf3, 0xa1, 0xeb, 0x03, 0x01, 0x70, 0x47, 0x00, 0xbf, 0x00, 0x29, 0x00, 0xf0, 0x3e, 0x81, 0x80, 0xea, 0x01, 0x0c, 0x48, 0xbf, 0x49, 0x42, 0x4a, 0x1e, 0x00, 0xf0, 0x1f, 0x81, 0x03, 0x00, 0x48, 0xbf, 0x43, 0x42, 0x8b, 0x42, 0x40, 0xf2, 0x1e, 0x81, 0x11, 0x42, 0x00, 0xf0, 0x23, 0x81, 0xb3, 0xfa, 0x83, 0xf2, 0xb1, 0xfa, 0x81, 0xf0, 0xa0, 0xeb, 0x02, 0x02, 0xc2, 0xf1, 0x1f, 0x02, 0x04, 0xa0, 0x00, 0xeb, 0x02, 0x12, 0x4f, 0xf0, 0x00, 0x00, 0x97, 0x46, 0x00, 0xbf, 0xaf, 0xf3, 0x00, 0x80, 0xb3, 0xeb, 0xc1, 0x7f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x73, 0xb3, 0xeb, 0x81, 0x7f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x73, 0xb3, 0xeb, 0x41, 0x7f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x73, 0xb3, 0xeb, 0x01, 0x7f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x73, 0xb3, 0xeb, 0xc1, 0x6f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x63, 0xb3, 0xeb, 0x81, 0x6f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x63, 0xb3, 0xeb, 0x41, 0x6f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x63, 0xb3, 0xeb, 0x01, 0x6f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x63, 0xb3, 0xeb, 0xc1, 0x5f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x53, 0xb3, 0xeb, 0x81, 0x5f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x53, 0xb3, 0xeb, 0x41, 0x5f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x53, 0xb3, 0xeb, 0x01, 0x5f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x53, 0xb3, 0xeb, 0xc1, 0x4f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x43, 0xb3, 0xeb, 0x81, 0x4f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x43, 0xb3, 0xeb, 0x41, 0x4f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x43, 0xb3, 0xeb, 0x01, 0x4f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x43, 0xb3, 0xeb, 0xc1, 0x3f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x33, 0xb3, 0xeb, 0x81, 0x3f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x33, 0xb3, 0xeb, 0x41, 0x3f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x33, 0xb3, 0xeb, 0x01, 0x3f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x33, 0xb3, 0xeb, 0xc1, 0x2f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x23, 0xb3, 0xeb, 0x81, 0x2f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x23, 0xb3, 0xeb, 0x41, 0x2f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x23, 0xb3, 0xeb, 0x01, 0x2f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x23, 0xb3, 0xeb, 0xc1, 0x1f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x13, 0xb3, 0xeb, 0x81, 0x1f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x13, 0xb3, 0xeb, 0x41, 0x1f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x13, 0xb3, 0xeb, 0x01, 0x1f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x13, 0xb3, 0xeb, 0xc1, 0x0f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x03, 0xb3, 0xeb, 0x81, 0x0f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x03, 0xb3, 0xeb, 0x41, 0x0f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x03, 0xb3, 0xeb, 0x01, 0x0f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x03, 0xbc, 0xf1, 0x00, 0x0f, 0x48, 0xbf, 0x40, 0x42, 0x70, 0x47, 0x9c, 0xea, 0x00, 0x0f, 0x48, 0xbf, 0x40, 0x42, 0x70, 0x47, 0x38, 0xbf, 0x00, 0x20, 0x04, 0xbf, 0x4f, 0xea, 0xec, 0x70, 0x40, 0xf0, 0x01, 0x00, 0x70, 0x47, 0xb1, 0xfa, 0x81, 0xf2, 0xc2, 0xf1, 0x1f, 0x02, 0xbc, 0xf1, 0x00, 0x0f, 0x23, 0xfa, 0x02, 0xf0, 0x48, 0xbf, 0x40, 0x42, 0x70, 0x47, 0x00, 0x28, 0xc8, 0xbf, 0x6f, 0xf0, 0x00, 0x40, 0xb8, 0xbf, 0x4f, 0xf0, 0x00, 0x40, 0x00, 0xf0, 0x0e, 0xb8, 0x00, 0x29, 0xf4, 0xd0, 0x2d, 0xe9, 0x03, 0x40, 0xff, 0xf7, 0xb3, 0xfe, 0xbd, 0xe8, 0x06, 0x40, 0x02, 0xfb, 0x00, 0xf3, 0xa1, 0xeb, 0x03, 0x01, 0x70, 0x47, 0x00, 0xbf, 0x02, 0xb5, 0x4f, 0xf0, 0x08, 0x00, 0x00, 0xf0, 0x8b, 0xfd, 0x02, 0xbd, 0x53, 0xec, 0x0e, 0x2f, 0x02, 0x4b, 0xa2, 0xfb, 0x03, 0x23, 0x58, 0x0a, 0x70, 0x47, 0x00, 0xbf, 0xf1, 0x19, 0x76, 0x05, 0x2d, 0xe9, 0x70, 0x48, 0x51, 0xec, 0x0e, 0x6f, 0x8c, 0x46, 0x18, 0x21, 0x48, 0x43, 0x32, 0x18, 0x4c, 0xf1, 0x00, 0x03, 0x51, 0xec, 0x0e, 0x0f, 0x8b, 0x42, 0x08, 0xbf, 0x82, 0x42, 0xf9, 0xd2, 0xbd, 0xe8, 0x70, 0x88, 0x4f, 0xf4, 0x7a, 0x73, 0x58, 0x43, 0xff, 0xf7, 0xe9, 0xbf, 0x43, 0x1e, 0x09, 0x2b, 0x88, 0xbf, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x08, 0xb5, 0x0a, 0x4b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xdb, 0x07, 0x08, 0xd5, 0x08, 0x48, 0x00, 0xf0, 0x10, 0xfd, 0xbf, 0xf3, 0x5f, 0x8f, 0x06, 0x4b, 0x01, 0x22, 0x1a, 0x60, 0x08, 0xbd, 0x05, 0x48, 0xbd, 0xe8, 0x08, 0x40, 0x00, 0xf0, 0x05, 0xbd, 0x00, 0xbf, 0x48, 0x23, 0x02, 0x07, 0x02, 0x50, 0x05, 0x00, 0x40, 0x23, 0x02, 0x07, 0x1b, 0x50, 0x05, 0x00, 0x7f, 0xb5, 0x00, 0xf0, 0xc9, 0xf9, 0xff, 0xf7, 0xdd, 0xff, 0x00, 0x20, 0x06, 0xf0, 0x74, 0xfa, 0x40, 0xf2, 0x4c, 0x40, 0x06, 0xf0, 0x64, 0xfa, 0x00, 0x20, 0x06, 0xf0, 0x3f, 0xfe, 0x00, 0x28, 0x22, 0xdd, 0x1e, 0x22, 0x1d, 0x21, 0x36, 0x20, 0x01, 0xf0, 0x37, 0xfa, 0x02, 0x22, 0x22, 0x21, 0x36, 0x20, 0x01, 0xf0, 0x32, 0xfa, 0x22, 0x22, 0x1a, 0x21, 0x36, 0x20, 0x01, 0xf0, 0x2d, 0xfa, 0x40, 0xf2, 0x4c, 0x40, 0x06, 0xf0, 0x12, 0xfe, 0x06, 0xf0, 0x64, 0xfa, 0x3d, 0x4a, 0xc5, 0x17, 0x06, 0x46, 0x80, 0xfb, 0x02, 0x23, 0xc5, 0xeb, 0xa3, 0x03, 0x02, 0x2b, 0x54, 0xd0, 0x03, 0x2b, 0x16, 0xd0, 0x4f, 0xf4, 0x61, 0x74, 0x3b, 0xe0, 0x00, 0x20, 0x06, 0xf0, 0xdb, 0xfc, 0x00, 0x28, 0x04, 0xdd, 0x40, 0xf2, 0x4c, 0x40, 0x06, 0xf0, 0x31, 0xfc, 0xe5, 0xe7, 0x00, 0x20, 0x06, 0xf0, 0xa7, 0xfd, 0x00, 0x28, 0xe0, 0xdd, 0x40, 0xf2, 0x4c, 0x40, 0x06, 0xf0, 0xfd, 0xfc, 0xdb, 0xe7, 0x2d, 0x4b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x2c, 0x4a, 0x9b, 0xb2, 0x01, 0x93, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xc3, 0xf3, 0x07, 0x13, 0x02, 0x93, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xc3, 0xf3, 0x07, 0x33, 0x03, 0x93, 0x03, 0x9b, 0x0b, 0xb1, 0x03, 0x9b, 0x02, 0x93, 0x02, 0x9b, 0x14, 0x2b, 0x24, 0xd8, 0x01, 0x22, 0x9a, 0x40, 0x12, 0xf0, 0x14, 0x1f, 0x1c, 0xd1, 0xf3, 0xb9, 0x01, 0x9b, 0xb3, 0xf5, 0xa4, 0x4f, 0x14, 0xbf, 0x4f, 0xf4, 0x70, 0x74, 0x4f, 0xf4, 0x61, 0x74, 0x22, 0x46, 0x31, 0x46, 0x1a, 0x48, 0x00, 0xf0, 0x87, 0xfc, 0x16, 0x4a, 0x86, 0xfb, 0x02, 0x23, 0xc5, 0xeb, 0xa3, 0x05, 0x0a, 0x23, 0x03, 0xfb, 0x15, 0x65, 0x04, 0x2d, 0x0e, 0xd8, 0xdf, 0xe8, 0x05, 0xf0, 0x1c, 0x0d, 0x09, 0x17, 0x1c, 0x00, 0x40, 0xf2, 0xb6, 0x34, 0xe8, 0xe7, 0x4f, 0xf4, 0x70, 0x74, 0xe5, 0xe7, 0x21, 0x46, 0x0f, 0x48, 0x06, 0xf0, 0xd6, 0xf9, 0x01, 0xf0, 0x6c, 0xfa, 0x00, 0xf0, 0xcc, 0xf8, 0x0c, 0x48, 0x00, 0xf0, 0x67, 0xfc, 0x00, 0x20, 0x04, 0xb0, 0x70, 0xbd, 0x21, 0x46, 0x0a, 0x48, 0x06, 0xf0, 0xc8, 0xf9, 0xf0, 0xe7, 0x21, 0x46, 0x08, 0x48, 0x06, 0xf0, 0xc3, 0xf9, 0xeb, 0xe7, 0x67, 0x66, 0x66, 0x66, 0x00, 0x62, 0x00, 0x03, 0x48, 0x62, 0x00, 0x03, 0x34, 0x50, 0x05, 0x00, 0x4f, 0x50, 0x05, 0x00, 0x61, 0x50, 0x05, 0x00, 0x55, 0x50, 0x05, 0x00, 0x5b, 0x50, 0x05, 0x00, 0x00, 0x20, 0x70, 0x47, 0x0d, 0x4b, 0x1a, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x2a, 0x13, 0xda, 0x22, 0xf0, 0x00, 0x42, 0xbf, 0xf3, 0x5f, 0x8f, 0x1a, 0x60, 0x1a, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x42, 0xf0, 0x20, 0x61, 0xbf, 0xf3, 0x5f, 0x8f, 0x19, 0x60, 0x42, 0xf0, 0x0a, 0x42, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x20, 0x1a, 0x60, 0x70, 0x47, 0x00, 0x20, 0x70, 0x47, 0x00, 0x18, 0x00, 0x02, 0x1a, 0x4a, 0x38, 0xb5, 0x05, 0x46, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf0, 0x00, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x16, 0x4c, 0x64, 0x20, 0x13, 0x60, 0xff, 0xf7, 0xe1, 0xfe, 0x23, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf4, 0x40, 0x33, 0xbf, 0xf3, 0x5f, 0x8f, 0x64, 0x20, 0x23, 0x60, 0xff, 0xf7, 0xd6, 0xfe, 0x23, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf0, 0x01, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x64, 0x20, 0x23, 0x60, 0xff, 0xf7, 0xcb, 0xfe, 0xbf, 0xf3, 0x5f, 0x8f, 0x09, 0x4b, 0x1d, 0x60, 0x23, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf4, 0x80, 0x23, 0xbf, 0xf3, 0x5f, 0x8f, 0x64, 0x20, 0x23, 0x60, 0xbd, 0xe8, 0x38, 0x40, 0xff, 0xf7, 0xba, 0xbe, 0x20, 0x21, 0x10, 0x07, 0x24, 0x21, 0x10, 0x07, 0x04, 0x02, 0x13, 0x07, 0x0c, 0x4a, 0x08, 0xb5, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf4, 0xe0, 0x23, 0x23, 0xf0, 0x01, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x64, 0x20, 0x13, 0x60, 0xff, 0xf7, 0xa5, 0xfe, 0x06, 0x4a, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf0, 0x00, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0x08, 0xbd, 0x00, 0xbf, 0x24, 0x21, 0x10, 0x07, 0x20, 0x21, 0x10, 0x07, 0x10, 0xb5, 0x16, 0x4c, 0x04, 0xf5, 0xf8, 0x70, 0x00, 0xf0, 0xca, 0xfb, 0xef, 0xf3, 0x00, 0x80, 0x40, 0xf0, 0x80, 0x00, 0x80, 0xf3, 0x00, 0x81, 0xbf, 0xf3, 0x6f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x0f, 0x4b, 0x00, 0x22, 0x21, 0x46, 0x4f, 0xf4, 0x00, 0x30, 0x1a, 0x60, 0x4f, 0xf4, 0xb7, 0x72, 0x00, 0xf0, 0x80, 0xfa, 0x4f, 0xf4, 0x00, 0x30, 0xff, 0xf7, 0x88, 0xff, 0x20, 0xbf, 0x20, 0xbf, 0xbf, 0xf3, 0x6f, 0x8f, 0xff, 0xf7, 0xbe, 0xff, 0xef, 0xf3, 0x00, 0x80, 0x20, 0xf0, 0x80, 0x00, 0x80, 0xf3, 0x00, 0x81, 0xbf, 0xf3, 0x6f, 0x8f, 0x10, 0xbd, 0x00, 0xbf, 0x80, 0x4e, 0x05, 0x00, 0xc0, 0x00, 0x00, 0x03, 0x08, 0xb5, 0x08, 0x4b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x03, 0xf0, 0x07, 0x03, 0x01, 0x2b, 0x06, 0xd8, 0xff, 0xf7, 0x4b, 0xff, 0x18, 0xb1, 0xbd, 0xe8, 0x08, 0x40, 0xff, 0xf7, 0xbe, 0xbf, 0x08, 0xbd, 0x00, 0xbf, 0x24, 0x00, 0x00, 0x03, 0x02, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x23, 0x03, 0xfa, 0x01, 0xf1, 0x11, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x60, 0x70, 0x47, 0x00, 0x00, 0x38, 0xb5, 0x04, 0x46, 0xbf, 0xf3, 0x5f, 0x8f, 0x22, 0x4b, 0x03, 0x60, 0x03, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf0, 0x00, 0x63, 0xbf, 0xf3, 0x5f, 0x8f, 0x03, 0x60, 0x03, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x1d, 0x4a, 0x4d, 0x68, 0x1a, 0x40, 0xcb, 0x68, 0x1b, 0x04, 0x43, 0xea, 0x05, 0x53, 0x8d, 0x68, 0x09, 0x68, 0x2b, 0x43, 0x43, 0xea, 0x01, 0x23, 0x13, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x1f, 0x21, 0x03, 0x60, 0xff, 0xf7, 0xd0, 0xff, 0x1e, 0x21, 0xff, 0xf7, 0xcd, 0xff, 0x05, 0x20, 0xff, 0xf7, 0x1a, 0xfe, 0x1d, 0x21, 0x20, 0x46, 0xff, 0xf7, 0xc6, 0xff, 0x1a, 0x21, 0xff, 0xf7, 0xc3, 0xff, 0x23, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xdb, 0x00, 0xfa, 0xd5, 0x14, 0x20, 0xff, 0xf7, 0x0b, 0xfe, 0x1b, 0x21, 0x20, 0x46, 0xff, 0xf7, 0xb7, 0xff, 0x23, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf0, 0x00, 0x53, 0xbf, 0xf3, 0x5f, 0x8f, 0x1a, 0x21, 0x23, 0x60, 0xbd, 0xe8, 0x38, 0x40, 0xff, 0xf7, 0xaa, 0xbf, 0x00, 0x14, 0x80, 0x48, 0xf0, 0x00, 0xc0, 0xff, 0x2d, 0xe9, 0xff, 0x41, 0x01, 0x20, 0x9c, 0x4a, 0x9c, 0x4c, 0x13, 0x68, 0x43, 0xf4, 0x00, 0x73, 0x13, 0x60, 0xff, 0xf7, 0xeb, 0xfd, 0x23, 0x68, 0x01, 0x20, 0x43, 0xf0, 0x02, 0x03, 0x23, 0x60, 0xff, 0xf7, 0xe4, 0xfd, 0x23, 0x68, 0x01, 0x20, 0x23, 0xf0, 0x01, 0x03, 0x23, 0x60, 0xff, 0xf7, 0xdd, 0xfd, 0x23, 0x68, 0x01, 0x20, 0x43, 0xf0, 0x01, 0x03, 0x23, 0x60, 0xff, 0xf7, 0xd6, 0xfd, 0xbf, 0xf3, 0x5f, 0x8f, 0x8e, 0x4a, 0x01, 0x23, 0x13, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0xf5, 0x68, 0x42, 0x84, 0x32, 0x13, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x8a, 0x4f, 0x40, 0xf2, 0x05, 0x33, 0x3b, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x88, 0x4e, 0x14, 0x20, 0x33, 0x60, 0xff, 0xf7, 0xbe, 0xfd, 0xbf, 0xf3, 0x5f, 0x8f, 0x85, 0x4d, 0x00, 0x24, 0x14, 0x20, 0x4f, 0xf0, 0x2a, 0x08, 0x2c, 0x60, 0xff, 0xf7, 0xb4, 0xfd, 0x69, 0x46, 0x82, 0x48, 0x01, 0x94, 0xcd, 0xf8, 0x00, 0x80, 0xcd, 0xe9, 0x02, 0x44, 0xff, 0xf7, 0x67, 0xff, 0x69, 0x46, 0x7e, 0x48, 0xcd, 0xe9, 0x00, 0x84, 0xcd, 0xe9, 0x02, 0x44, 0xff, 0xf7, 0x5f, 0xff, 0x27, 0x23, 0x69, 0x46, 0x7b, 0x48, 0x01, 0x94, 0x00, 0x93, 0xcd, 0xe9, 0x02, 0x44, 0xff, 0xf7, 0x56, 0xff, 0x3a, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x77, 0x4c, 0x22, 0x40, 0x42, 0xf0, 0x40, 0x72, 0xbf, 0xf3, 0x5f, 0x8f, 0x14, 0x20, 0x3a, 0x60, 0xff, 0xf7, 0x8d, 0xfd, 0x32, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x22, 0x40, 0x42, 0xf0, 0x40, 0x72, 0xbf, 0xf3, 0x5f, 0x8f, 0x14, 0x20, 0x32, 0x60, 0xff, 0xf7, 0x81, 0xfd, 0x2b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0x40, 0x43, 0xf0, 0x40, 0x73, 0xbf, 0xf3, 0x5f, 0x8f, 0x69, 0x4c, 0x14, 0x20, 0x2b, 0x60, 0xff, 0xf7, 0x74, 0xfd, 0x22, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x2a, 0x5a, 0xda, 0x65, 0x48, 0x00, 0xf0, 0xa6, 0xfa, 0x64, 0x4c, 0x23, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x2b, 0x7e, 0xda, 0x60, 0x48, 0x00, 0xf0, 0x9d, 0xfa, 0xbf, 0xf3, 0x5f, 0x8f, 0x60, 0x4b, 0x02, 0x22, 0x1a, 0x60, 0x1a, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x42, 0xf0, 0x40, 0x72, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x20, 0x1a, 0x60, 0xff, 0xf7, 0x53, 0xfd, 0xbf, 0xf3, 0x5f, 0x8f, 0x59, 0x4b, 0x05, 0x22, 0x1a, 0x60, 0x1a, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x42, 0xf0, 0x40, 0x72, 0xbf, 0xf3, 0x5f, 0x8f, 0x55, 0x4c, 0x01, 0x20, 0x1a, 0x60, 0xff, 0xf7, 0x42, 0xfd, 0x23, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf4, 0x80, 0x33, 0xbf, 0xf3, 0x5f, 0x8f, 0x14, 0x20, 0x23, 0x60, 0xff, 0xf7, 0x37, 0xfd, 0x23, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf0, 0x01, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x80, 0x43, 0xa4, 0xf5, 0xe6, 0x74, 0x23, 0x60, 0x01, 0x20, 0xff, 0xf7, 0x25, 0xfd, 0xbf, 0xf3, 0x5f, 0x8f, 0x44, 0x4b, 0x01, 0x20, 0x23, 0x60, 0xff, 0xf7, 0x1e, 0xfd, 0x00, 0xf0, 0xb4, 0xff, 0x00, 0xf0, 0xc6, 0xff, 0x40, 0x48, 0x00, 0xf0, 0x51, 0xfa, 0x04, 0xb0, 0xbd, 0xe8, 0xf0, 0x81, 0xbf, 0xf3, 0x5f, 0x8f, 0x3d, 0x4a, 0x22, 0x60, 0x22, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x42, 0xf0, 0x00, 0x52, 0xbf, 0xf3, 0x5f, 0x8f, 0x22, 0x60, 0x22, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x42, 0xf0, 0x80, 0x42, 0xbf, 0xf3, 0x5f, 0x8f, 0x22, 0x60, 0x22, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x42, 0xf0, 0x00, 0x42, 0xbf, 0xf3, 0x5f, 0x8f, 0x22, 0x60, 0x23, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xda, 0x00, 0xfa, 0xd5, 0x14, 0x20, 0xff, 0xf7, 0xf0, 0xfc, 0x23, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf0, 0x00, 0x53, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0x60, 0x7a, 0xe7, 0xbf, 0xf3, 0x5f, 0x8f, 0x27, 0x4b, 0x23, 0x60, 0x23, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf0, 0x00, 0x53, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0x60, 0x23, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf0, 0x80, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0x60, 0x23, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf0, 0x00, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0x60, 0x23, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xdb, 0x00, 0xfa, 0xd5, 0x14, 0x20, 0xff, 0xf7, 0xc3, 0xfc, 0x23, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf0, 0x00, 0x53, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0x60, 0x56, 0xe7, 0x50, 0x02, 0x01, 0x07, 0x10, 0x03, 0x01, 0x07, 0xbc, 0x17, 0x00, 0x02, 0x60, 0x70, 0x81, 0x08, 0x64, 0x70, 0x81, 0x08, 0x6c, 0x70, 0x81, 0x08, 0x04, 0x70, 0x81, 0x08, 0x0c, 0x70, 0x81, 0x08, 0x08, 0x70, 0x81, 0x08, 0xff, 0xff, 0xfc, 0xf8, 0x20, 0x10, 0x00, 0x02, 0x49, 0x52, 0x05, 0x00, 0x28, 0x10, 0x00, 0x02, 0x10, 0x15, 0x00, 0x02, 0x20, 0x15, 0x00, 0x02, 0x0c, 0x17, 0x00, 0x02, 0x03, 0x00, 0x00, 0xc8, 0x63, 0x52, 0x05, 0x00, 0x10, 0x63, 0x21, 0x48, 0x38, 0xb5, 0x0d, 0x4d, 0x2c, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x24, 0xf4, 0x80, 0x34, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x20, 0x2c, 0x60, 0xff, 0xf7, 0x87, 0xfc, 0x44, 0xf4, 0x80, 0x34, 0xbf, 0xf3, 0x5f, 0x8f, 0x2c, 0x60, 0x2b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf0, 0x01, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x20, 0x2b, 0x60, 0x38, 0xbd, 0x9c, 0x1a, 0x00, 0x02, 0x00, 0x20, 0x70, 0x47, 0x13, 0x4a, 0x38, 0xb5, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf0, 0x1f, 0x03, 0x43, 0xf0, 0x00, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x0f, 0x4d, 0x13, 0x60, 0x2c, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x24, 0xf4, 0x80, 0x34, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x20, 0x2c, 0x60, 0xff, 0xf7, 0x5c, 0xfc, 0x44, 0xf4, 0x80, 0x34, 0xbf, 0xf3, 0x5f, 0x8f, 0x2c, 0x60, 0x2b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf0, 0x01, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x20, 0x2b, 0x60, 0x38, 0xbd, 0x00, 0xbf, 0xe0, 0x19, 0x00, 0x02, 0xec, 0x19, 0x00, 0x02, 0x10, 0x4a, 0x10, 0xb5, 0x14, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x23, 0x00, 0xf1, 0x10, 0x01, 0x03, 0xfa, 0x01, 0xf1, 0x24, 0xea, 0x01, 0x04, 0xbf, 0xf3, 0x5f, 0x8f, 0x14, 0x60, 0x21, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x11, 0x60, 0x11, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x03, 0xfa, 0x00, 0xf0, 0x21, 0xea, 0x00, 0x01, 0xbf, 0xf3, 0x5f, 0x8f, 0x11, 0x60, 0x08, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x10, 0x60, 0x10, 0xbd, 0x0c, 0x19, 0x00, 0x02, 0x42, 0x1e, 0x11, 0xf8, 0x01, 0x3b, 0x02, 0xf8, 0x01, 0x3f, 0x00, 0x2b, 0xf9, 0xd1, 0x70, 0x47, 0x43, 0x1e, 0x0a, 0x44, 0x10, 0xb5, 0x91, 0x42, 0x01, 0xd1, 0x00, 0x20, 0x08, 0xe0, 0x13, 0xf8, 0x01, 0x4f, 0x11, 0xf8, 0x01, 0x0b, 0x20, 0x1a, 0x40, 0xb2, 0x08, 0xb9, 0x00, 0x2c, 0xf2, 0xd1, 0x10, 0xbd, 0x03, 0x46, 0x1a, 0x78, 0x59, 0x1c, 0x0a, 0xb9, 0x18, 0x1a, 0x70, 0x47, 0x0b, 0x46, 0xf8, 0xe7, 0x00, 0x00, 0x01, 0x4b, 0x18, 0x47, 0x70, 0x47, 0x00, 0xbf, 0x94, 0xd4, 0x04, 0x00, 0x01, 0x4b, 0x18, 0x47, 0x70, 0x47, 0x00, 0xbf, 0x4c, 0xd5, 0x04, 0x00, 0x83, 0x68, 0x5a, 0x1c, 0x82, 0x60, 0x19, 0x70, 0x70, 0x47, 0x08, 0x46, 0x00, 0xf0, 0x9c, 0xb9, 0x30, 0xb5, 0x00, 0x25, 0x0c, 0x68, 0xeb, 0xb2, 0x01, 0x35, 0x94, 0x42, 0x0e, 0xd2, 0x02, 0x79, 0x02, 0xb9, 0x53, 0xb1, 0x02, 0x68, 0x0a, 0x2b, 0x34, 0xbf, 0x30, 0x21, 0x57, 0x21, 0x0b, 0x44, 0x54, 0x1c, 0x04, 0x60, 0x13, 0x70, 0x01, 0x23, 0x03, 0x71, 0x30, 0xbd, 0xa4, 0x1a, 0x0c, 0x60, 0xe8, 0xe7, 0x00, 0x00, 0x2d, 0xe9, 0xf0, 0x4f, 0x85, 0xb0, 0x04, 0x46, 0x0d, 0x46, 0x91, 0x46, 0x01, 0xae, 0x2f, 0x78, 0x00, 0x2f, 0x33, 0xd0, 0x25, 0x2f, 0x0d, 0xd0, 0x0a, 0x2f, 0x03, 0xd1, 0xe3, 0x68, 0x0d, 0x21, 0x20, 0x46, 0x98, 0x47, 0x01, 0x35, 0xc8, 0x46, 0xe3, 0x68, 0x39, 0x46, 0x20, 0x46, 0x98, 0x47, 0xc1, 0x46, 0xec, 0xe7, 0x6b, 0x78, 0x00, 0x27, 0x2d, 0x2b, 0x0a, 0xbf, 0xab, 0x78, 0x02, 0x35, 0x03, 0x35, 0x30, 0x2b, 0x03, 0xbf, 0x2b, 0x78, 0x4f, 0xf0, 0x01, 0x0b, 0x01, 0x35, 0x4f, 0xf0, 0x00, 0x0b, 0xa3, 0xf1, 0x30, 0x02, 0x09, 0x2a, 0x1e, 0xd9, 0x6c, 0x2b, 0x4f, 0xf0, 0x00, 0x01, 0x04, 0xbf, 0x2b, 0x78, 0x01, 0x35, 0x26, 0x60, 0x21, 0x71, 0x64, 0x2b, 0x2f, 0xd0, 0x15, 0xd8, 0x25, 0x2b, 0x00, 0xf0, 0x9a, 0x80, 0x63, 0x2b, 0x66, 0xd0, 0xa3, 0xb9, 0x00, 0x20, 0x05, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x01, 0xfb, 0x07, 0x37, 0x15, 0xf8, 0x01, 0x3b, 0x30, 0x3f, 0xa3, 0xf1, 0x30, 0x02, 0x09, 0x2a, 0xf6, 0xd9, 0xe0, 0xe7, 0x0a, 0x21, 0xf8, 0xe7, 0x73, 0x2b, 0x5d, 0xd0, 0x03, 0xd8, 0x70, 0x2b, 0x77, 0xd0, 0xc8, 0x46, 0x3d, 0xe0, 0x75, 0x2b, 0x0f, 0xd0, 0x78, 0x2b, 0xf9, 0xd1, 0xd9, 0xf8, 0x00, 0x30, 0x09, 0xf1, 0x04, 0x08, 0x00, 0x93, 0x00, 0x9b, 0xa3, 0xbb, 0x0d, 0xf1, 0x05, 0x03, 0x23, 0x60, 0x30, 0x23, 0x8d, 0xf8, 0x04, 0x30, 0x17, 0xe0, 0xd9, 0xf8, 0x00, 0x20, 0x64, 0x2b, 0x09, 0xf1, 0x04, 0x08, 0x00, 0x92, 0x09, 0xd1, 0x00, 0x2a, 0x07, 0xda, 0x0d, 0xf1, 0x05, 0x03, 0x52, 0x42, 0x23, 0x60, 0x2d, 0x23, 0x00, 0x92, 0x8d, 0xf8, 0x04, 0x30, 0x00, 0x9b, 0x3b, 0xb9, 0x23, 0x68, 0x5a, 0x1c, 0x22, 0x60, 0x30, 0x22, 0x1a, 0x70, 0x01, 0x23, 0x23, 0x71, 0x10, 0xe0, 0xdf, 0xf8, 0xd8, 0x90, 0x4f, 0xf0, 0x0a, 0x0a, 0x4a, 0x46, 0x69, 0x46, 0x20, 0x46, 0xff, 0xf7, 0x5b, 0xff, 0x30, 0x4b, 0xba, 0xf1, 0x01, 0x0a, 0xa9, 0xfb, 0x03, 0x01, 0x4f, 0xea, 0xd1, 0x09, 0xf2, 0xd1, 0xb1, 0x46, 0x1c, 0xe0, 0x4f, 0xf0, 0x08, 0x09, 0x4f, 0xf0, 0x80, 0x5a, 0x52, 0x46, 0x69, 0x46, 0x20, 0x46, 0x4f, 0xea, 0x1a, 0x1a, 0xff, 0xf7, 0x46, 0xff, 0xb9, 0xf1, 0x01, 0x09, 0xf5, 0xd1, 0xee, 0xe7, 0x99, 0xf8, 0x00, 0x30, 0x0d, 0xf1, 0x05, 0x02, 0x09, 0xf1, 0x04, 0x08, 0x22, 0x60, 0x8d, 0xf8, 0x04, 0x30, 0xe4, 0xe7, 0x09, 0xf1, 0x04, 0x08, 0xd9, 0xf8, 0x00, 0x90, 0x23, 0x68, 0x00, 0x22, 0x1a, 0x70, 0xc4, 0xf8, 0x00, 0x90, 0x23, 0x68, 0x5a, 0x1c, 0x22, 0x60, 0x1b, 0x78, 0x03, 0xbb, 0xbb, 0xf1, 0x00, 0x0f, 0x14, 0xbf, 0x4f, 0xf0, 0x30, 0x0a, 0x4f, 0xf0, 0x20, 0x0a, 0x17, 0xf1, 0xff, 0x37, 0x18, 0xd3, 0xe3, 0x68, 0x51, 0x46, 0x20, 0x46, 0x98, 0x47, 0xf7, 0xe7, 0x11, 0x4a, 0x09, 0xf1, 0x04, 0x08, 0x2b, 0x78, 0x69, 0x1c, 0xd3, 0x5c, 0x5b, 0x07, 0xbf, 0xd0, 0x0d, 0x46, 0xf8, 0xe7, 0x0d, 0xf1, 0x05, 0x02, 0x8d, 0xf8, 0x04, 0x30, 0x22, 0x60, 0x77, 0xe7, 0x01, 0x3f, 0xd9, 0xe7, 0x00, 0x2f, 0xfb, 0xd1, 0xb9, 0xf1, 0x00, 0x0f, 0x3f, 0xf4, 0x35, 0xaf, 0x19, 0xf8, 0x01, 0x1b, 0x00, 0x29, 0x3f, 0xf4, 0x30, 0xaf, 0xe3, 0x68, 0x20, 0x46, 0x98, 0x47, 0xf6, 0xe7, 0xcd, 0xcc, 0xcc, 0xcc, 0x86, 0x50, 0x05, 0x00, 0x00, 0xca, 0x9a, 0x3b, 0x01, 0x4b, 0x18, 0x78, 0x70, 0x47, 0x00, 0xbf, 0x40, 0x5d, 0x05, 0x00, 0x0e, 0xb4, 0x3f, 0xb5, 0x07, 0xaa, 0x52, 0xf8, 0x04, 0x1b, 0x07, 0x4b, 0x04, 0x90, 0x02, 0xa8, 0x01, 0x92, 0x05, 0x93, 0xff, 0xf7, 0xfc, 0xfe, 0x04, 0x9b, 0x00, 0x22, 0x1a, 0x70, 0x06, 0xb0, 0x5d, 0xf8, 0x04, 0xeb, 0x03, 0xb0, 0x70, 0x47, 0x8d, 0xe8, 0x04, 0x00, 0x0f, 0xb4, 0x30, 0xb5, 0x89, 0xb0, 0x01, 0xad, 0x00, 0x24, 0xff, 0xf7, 0xb5, 0xfa, 0x0c, 0x49, 0x02, 0x46, 0x28, 0x46, 0xff, 0xf7, 0xde, 0xff, 0x28, 0x5d, 0x20, 0xb1, 0x01, 0x34, 0x00, 0xf0, 0x63, 0xf8, 0x0c, 0x2c, 0xf8, 0xd1, 0x07, 0x4b, 0x0d, 0xaa, 0x0c, 0x99, 0x04, 0xa8, 0x00, 0x92, 0x07, 0x93, 0xff, 0xf7, 0xd7, 0xfe, 0x09, 0xb0, 0xbd, 0xe8, 0x30, 0x40, 0x04, 0xb0, 0x70, 0x47, 0x70, 0x52, 0x05, 0x00, 0x97, 0xe8, 0x04, 0x00, 0x00, 0x48, 0x70, 0x47, 0x38, 0xc0, 0x04, 0x00, 0x00, 0x48, 0x70, 0x47, 0x70, 0x6a, 0x05, 0x00, 0x00, 0x20, 0x70, 0x47, 0x10, 0xb5, 0x80, 0x22, 0x07, 0x4c, 0x08, 0x49, 0xa3, 0x69, 0x04, 0xf5, 0x80, 0x60, 0x43, 0xf0, 0x01, 0x03, 0xa3, 0x61, 0xff, 0xf7, 0x90, 0xfe, 0x04, 0x49, 0x20, 0x46, 0xff, 0xf7, 0x64, 0xfe, 0x00, 0x20, 0x10, 0xbd, 0x70, 0x66, 0x05, 0x00, 0x38, 0xc0, 0x04, 0x00, 0xf5, 0x52, 0x05, 0x00, 0x00, 0x20, 0x70, 0x47, 0x70, 0x47, 0x00, 0x00, 0xf8, 0xb5, 0x04, 0x46, 0x4f, 0xf0, 0x14, 0x70, 0x0e, 0x46, 0x17, 0x46, 0xff, 0xf7, 0xf6, 0xff, 0x05, 0x46, 0x20, 0x46, 0xff, 0xf7, 0x28, 0xfe, 0x01, 0x22, 0x39, 0x46, 0x30, 0x46, 0xa4, 0x02, 0x00, 0xf0, 0x96, 0xf8, 0x0a, 0x4a, 0x2b, 0x19, 0x03, 0x21, 0x19, 0x61, 0x13, 0x60, 0xda, 0x68, 0x42, 0xf0, 0x80, 0x02, 0xda, 0x60, 0x00, 0x22, 0x5a, 0x60, 0x0d, 0x22, 0x2a, 0x51, 0xda, 0x68, 0x22, 0xf0, 0x80, 0x02, 0xda, 0x60, 0x07, 0x22, 0xd9, 0x60, 0x9a, 0x60, 0xf8, 0xbd, 0x00, 0xbf, 0x70, 0x6e, 0x05, 0x00, 0x03, 0x4b, 0x1b, 0x68, 0x5a, 0x69, 0x52, 0x06, 0xfc, 0xd5, 0x18, 0x60, 0x70, 0x47, 0x00, 0xbf, 0x70, 0x6e, 0x05, 0x00, 0x08, 0xb5, 0xff, 0xf7, 0x5c, 0xfa, 0x07, 0x49, 0x0a, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xc0, 0xb2, 0x01, 0x23, 0x03, 0xfa, 0x00, 0xf0, 0x22, 0xea, 0x00, 0x03, 0x18, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x08, 0x60, 0x08, 0xbd, 0x84, 0x03, 0x00, 0x02, 0x08, 0xb5, 0xff, 0xf7, 0x48, 0xfa, 0x06, 0x4b, 0x1a, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xc3, 0xb2, 0x01, 0x20, 0x98, 0x40, 0x10, 0x42, 0x0c, 0xbf, 0x01, 0x20, 0x00, 0x20, 0x08, 0xbd, 0x00, 0xbf, 0x88, 0x03, 0x00, 0x02, 0x10, 0xb5, 0x0c, 0x46, 0xff, 0xf7, 0x35, 0xfa, 0x02, 0x2c, 0xc2, 0xb2, 0x13, 0xd1, 0x1a, 0x49, 0x0b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x20, 0x90, 0x40, 0xc0, 0x43, 0x03, 0x40, 0xbf, 0xf3, 0x5f, 0x8f, 0x0b, 0x60, 0x15, 0x4b, 0x1a, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x10, 0x40, 0xbf, 0xf3, 0x5f, 0x8f, 0x18, 0x60, 0x1e, 0xe0, 0x01, 0x23, 0x03, 0x2c, 0x03, 0xfa, 0x02, 0xf0, 0x0f, 0x4b, 0x6f, 0xea, 0x00, 0x02, 0x0d, 0xd1, 0x0c, 0x4c, 0x21, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x11, 0x40, 0xbf, 0xf3, 0x5f, 0x8f, 0x21, 0x60, 0x19, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x0a, 0x40, 0x10, 0x43, 0xe5, 0xe7, 0x00, 0x2c, 0xf7, 0xd1, 0x18, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x40, 0xbf, 0xf3, 0x5f, 0x8f, 0x1a, 0x60, 0x10, 0xbd, 0x00, 0xbf, 0x84, 0x03, 0x00, 0x02, 0x80, 0x03, 0x00, 0x02, 0x10, 0xb5, 0x04, 0x46, 0xff, 0xf7, 0x96, 0xff, 0x20, 0x46, 0xff, 0xf7, 0xa7, 0xff, 0x01, 0x46, 0x20, 0x46, 0xbd, 0xe8, 0x10, 0x40, 0xff, 0xf7, 0xb3, 0xbf, 0x00, 0x00, 0x2d, 0xe9, 0xf0, 0x4f, 0x05, 0x46, 0x00, 0x27, 0x8b, 0xb0, 0xcd, 0xe9, 0x08, 0x12, 0x08, 0x9b, 0x9f, 0x42, 0x04, 0xd1, 0x4f, 0xf0, 0xff, 0x30, 0x0b, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x15, 0xf8, 0x37, 0x60, 0x05, 0xeb, 0xc7, 0x09, 0x01, 0x37, 0x00, 0x2e, 0xf0, 0xd0, 0x99, 0xf8, 0x01, 0x80, 0x70, 0x1e, 0xff, 0xf7, 0xd7, 0xff, 0x06, 0xeb, 0x46, 0x00, 0x0b, 0x2e, 0x4f, 0xea, 0xd8, 0x03, 0x4f, 0xea, 0x00, 0x10, 0x06, 0x93, 0x4f, 0xea, 0x18, 0x13, 0x07, 0x93, 0x06, 0x9b, 0x00, 0xeb, 0x83, 0x02, 0x07, 0x9b, 0x4f, 0xea, 0x83, 0x04, 0x7a, 0xd8, 0x02, 0xf1, 0x00, 0x71, 0x00, 0xf1, 0x00, 0x72, 0xa1, 0xf1, 0x30, 0x03, 0xa2, 0xf1, 0x0c, 0x00, 0x1c, 0x39, 0x20, 0x3a, 0x20, 0x44, 0x02, 0x90, 0x03, 0x92, 0xd3, 0xf8, 0x00, 0xe0, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x98, 0x00, 0x68, 0x00, 0x90, 0xbf, 0xf3, 0x5f, 0x8f, 0x08, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x03, 0x9a, 0x14, 0x68, 0x01, 0x94, 0xbf, 0xf3, 0x5f, 0x8f, 0x08, 0xf0, 0x07, 0x0c, 0x09, 0x9a, 0x4f, 0xea, 0x8c, 0x0c, 0x0f, 0x24, 0x04, 0xfa, 0x0c, 0xf4, 0x2e, 0xea, 0x04, 0x04, 0x3a, 0xb1, 0x99, 0xf8, 0x02, 0xe0, 0x0e, 0xf0, 0x0f, 0x0e, 0x0e, 0xfa, 0x0c, 0xfe, 0x44, 0xea, 0x0e, 0x04, 0x99, 0xf9, 0x03, 0xe0, 0xbe, 0xf1, 0x00, 0x0f, 0x11, 0xdb, 0x08, 0xf0, 0x0f, 0x0b, 0x00, 0x9a, 0x4f, 0xea, 0x4b, 0x0b, 0x4f, 0xf0, 0x03, 0x0a, 0x0e, 0xf0, 0x03, 0x0e, 0x0a, 0xfa, 0x0b, 0xfa, 0x0e, 0xfa, 0x0b, 0xfe, 0x22, 0xea, 0x0a, 0x0a, 0x4e, 0xea, 0x0a, 0x02, 0x00, 0x92, 0x99, 0xf9, 0x04, 0xe0, 0xbe, 0xf1, 0x00, 0x0f, 0x0b, 0xdb, 0x4f, 0xf0, 0x03, 0x0a, 0x0e, 0xf0, 0x03, 0x0e, 0x0a, 0xfa, 0x0c, 0xfa, 0x0e, 0xfa, 0x0c, 0xfe, 0x20, 0xea, 0x0a, 0x00, 0x4e, 0xea, 0x00, 0x00, 0x99, 0xf9, 0x02, 0xc0, 0xbc, 0xf1, 0x01, 0x0f, 0x27, 0xd1, 0x99, 0xf9, 0x05, 0xe0, 0xbe, 0xf1, 0x00, 0x0f, 0x22, 0xdb, 0x01, 0x9a, 0x0c, 0xfa, 0x08, 0xf9, 0x0e, 0xf0, 0x01, 0x0e, 0x0e, 0xfa, 0x08, 0xfe, 0x22, 0xea, 0x09, 0x09, 0x4e, 0xea, 0x09, 0x02, 0x01, 0x92, 0x05, 0xeb, 0xc7, 0x05, 0x04, 0x97, 0x04, 0x9a, 0x08, 0x9f, 0xba, 0x42, 0x12, 0xd3, 0x00, 0x2b, 0x40, 0xf0, 0xf3, 0x80, 0x00, 0x20, 0x63, 0xe7, 0x83, 0x49, 0x84, 0x4b, 0x01, 0x44, 0x21, 0x44, 0x13, 0x44, 0x02, 0x91, 0x82, 0x49, 0x11, 0x44, 0x82, 0x4a, 0x02, 0x44, 0x85, 0xe7, 0x4f, 0xf0, 0x00, 0x0c, 0xe5, 0xe7, 0x2f, 0x78, 0x95, 0xf8, 0x01, 0x90, 0x00, 0x2f, 0xe7, 0xd0, 0x4f, 0xea, 0x19, 0x12, 0x4f, 0xea, 0xd9, 0x0b, 0x05, 0x92, 0x07, 0x9a, 0x96, 0x46, 0x05, 0x9a, 0x96, 0x45, 0x02, 0xd1, 0xbe, 0x42, 0x00, 0xf0, 0xac, 0x80, 0xbf, 0xf3, 0x5f, 0x8f, 0x1c, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x9b, 0x1a, 0x46, 0x00, 0x9b, 0x13, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x08, 0x60, 0xbc, 0xf1, 0x00, 0x0f, 0x04, 0xd0, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9b, 0x03, 0x9a, 0x13, 0x60, 0x07, 0xeb, 0x47, 0x02, 0x05, 0x9b, 0x0b, 0x2f, 0x4f, 0xea, 0x02, 0x12, 0x4f, 0xea, 0x83, 0x00, 0x02, 0xeb, 0x8b, 0x01, 0x79, 0xd8, 0x01, 0xf1, 0x00, 0x71, 0x02, 0xf1, 0x00, 0x72, 0xa2, 0xf1, 0x0c, 0x04, 0xa1, 0xf1, 0x30, 0x03, 0x20, 0x3a, 0x1c, 0x39, 0x20, 0x18, 0x02, 0x90, 0x03, 0x92, 0x1c, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x9a, 0x12, 0x68, 0x00, 0x92, 0xbf, 0xf3, 0x5f, 0x8f, 0x08, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x03, 0x9a, 0x12, 0x68, 0x01, 0x92, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x00, 0x0c, 0x95, 0xf9, 0x02, 0xe0, 0x09, 0xf0, 0x07, 0x06, 0xb6, 0x00, 0xbe, 0xf1, 0x00, 0x0f, 0x0c, 0xdb, 0x0f, 0x22, 0x02, 0xfa, 0x06, 0xf8, 0x09, 0x9a, 0x24, 0xea, 0x08, 0x04, 0x2a, 0xb1, 0x0e, 0xf0, 0x0f, 0x08, 0x08, 0xfa, 0x06, 0xf8, 0x44, 0xea, 0x08, 0x04, 0x95, 0xf9, 0x03, 0x80, 0xb8, 0xf1, 0x00, 0x0f, 0x13, 0xdb, 0x09, 0xf0, 0x0f, 0x0a, 0x08, 0xf0, 0x03, 0x08, 0x4f, 0xea, 0x4a, 0x02, 0x4f, 0xf0, 0x03, 0x0a, 0x06, 0x92, 0x0a, 0xfa, 0x02, 0xfa, 0x00, 0x9a, 0x22, 0xea, 0x0a, 0x0a, 0x06, 0x9a, 0x08, 0xfa, 0x02, 0xf8, 0x48, 0xea, 0x0a, 0x02, 0x00, 0x92, 0x95, 0xf9, 0x04, 0x80, 0xb8, 0xf1, 0x00, 0x0f, 0x0a, 0xdb, 0x03, 0x22, 0x02, 0xfa, 0x06, 0xfa, 0x08, 0xea, 0x02, 0x08, 0x08, 0xfa, 0x06, 0xf8, 0x20, 0xea, 0x0a, 0x00, 0x48, 0xea, 0x00, 0x00, 0xbe, 0xf1, 0x01, 0x0f, 0x10, 0xd1, 0x95, 0xf9, 0x05, 0x60, 0x00, 0x2e, 0x0c, 0xdb, 0x01, 0x9a, 0x0e, 0xfa, 0x09, 0xf8, 0x06, 0xf0, 0x01, 0x06, 0x06, 0xfa, 0x09, 0xf6, 0xf4, 0x46, 0x22, 0xea, 0x08, 0x08, 0x46, 0xea, 0x08, 0x02, 0x01, 0x92, 0x04, 0x9e, 0x08, 0x35, 0x05, 0x9a, 0x01, 0x36, 0x04, 0x96, 0x3e, 0x46, 0xcd, 0xe9, 0x06, 0xb2, 0x3d, 0xe7, 0x28, 0x4b, 0x26, 0x4c, 0xcb, 0x18, 0x01, 0xf1, 0xe0, 0x61, 0x14, 0x19, 0x02, 0xf1, 0xe0, 0x62, 0x20, 0x18, 0x01, 0xf5, 0x07, 0x31, 0x02, 0xf5, 0x07, 0x32, 0x02, 0x90, 0x01, 0xf5, 0xea, 0x71, 0x02, 0xf5, 0xe8, 0x72, 0x7e, 0xe7, 0x06, 0x9a, 0x5a, 0x45, 0x8e, 0xd0, 0xbf, 0xf3, 0x5f, 0x8f, 0x1c, 0x60, 0x30, 0x23, 0x7b, 0x43, 0x0b, 0x2f, 0x4f, 0xea, 0x8b, 0x0e, 0x03, 0xf1, 0x00, 0x76, 0x85, 0xbf, 0x03, 0xf1, 0xe0, 0x63, 0x03, 0xf5, 0x07, 0x33, 0xa6, 0xf1, 0x30, 0x03, 0x03, 0xf5, 0xe0, 0x73, 0x73, 0x44, 0x1c, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x1c, 0x3e, 0x08, 0x60, 0x06, 0xeb, 0x0e, 0x01, 0x56, 0xf8, 0x2b, 0x00, 0xbf, 0xf3, 0x5f, 0x8f, 0x6c, 0xe7, 0xbf, 0xf3, 0x5f, 0x8f, 0x1c, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x9b, 0x1a, 0x46, 0x00, 0x9b, 0x13, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x08, 0x60, 0xbc, 0xf1, 0x00, 0x0f, 0x3f, 0xf4, 0xfd, 0xae, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9b, 0x03, 0x9a, 0x13, 0x60, 0xf6, 0xe6, 0x00, 0xbf, 0xe4, 0x1d, 0x02, 0x07, 0xc0, 0x1d, 0x02, 0x07, 0xd4, 0x1d, 0x02, 0x07, 0xd0, 0x1d, 0x02, 0x07, 0x0c, 0x4b, 0x1b, 0x68, 0x98, 0x60, 0xda, 0x68, 0x42, 0xf0, 0x08, 0x02, 0xda, 0x60, 0x4f, 0xf6, 0xff, 0x72, 0x12, 0xf1, 0xff, 0x32, 0x0a, 0xd3, 0xd9, 0x68, 0x09, 0x07, 0xf9, 0xd5, 0x32, 0xb1, 0x1b, 0x69, 0x28, 0x2b, 0x14, 0xbf, 0x6f, 0xf0, 0x27, 0x00, 0x00, 0x20, 0x70, 0x47, 0x6f, 0xf0, 0x03, 0x00, 0x70, 0x47, 0x74, 0x6e, 0x05, 0x00, 0x0e, 0x4b, 0x00, 0x22, 0x1b, 0x68, 0xda, 0x61, 0x01, 0x22, 0x9a, 0x61, 0xda, 0x68, 0x42, 0xf0, 0x20, 0x02, 0xda, 0x60, 0x4f, 0xf6, 0xff, 0x72, 0x12, 0xf1, 0xff, 0x32, 0x0a, 0xd3, 0xd9, 0x68, 0x09, 0x07, 0xf9, 0xd5, 0x32, 0xb1, 0x1b, 0x69, 0x08, 0x2b, 0x14, 0xbf, 0x6f, 0xf0, 0x07, 0x00, 0x00, 0x20, 0x70, 0x47, 0x6f, 0xf0, 0x03, 0x00, 0x70, 0x47, 0x00, 0xbf, 0x74, 0x6e, 0x05, 0x00, 0x11, 0x4b, 0x41, 0xea, 0x40, 0x00, 0x1b, 0x68, 0x98, 0x60, 0xda, 0x68, 0x42, 0xf0, 0x08, 0x02, 0xda, 0x60, 0x4f, 0xf6, 0xff, 0x72, 0x12, 0xf1, 0xff, 0x32, 0x12, 0xd3, 0xd8, 0x68, 0x10, 0xf0, 0x08, 0x0f, 0xf8, 0xd0, 0x6a, 0xb1, 0x1b, 0x69, 0x29, 0xb9, 0x18, 0x2b, 0x0c, 0xbf, 0x00, 0x20, 0x6f, 0xf0, 0x17, 0x00, 0x70, 0x47, 0x40, 0x2b, 0x0c, 0xbf, 0x00, 0x20, 0x6f, 0xf0, 0x3f, 0x00, 0x70, 0x47, 0x6f, 0xf0, 0x03, 0x00, 0x70, 0x47, 0x74, 0x6e, 0x05, 0x00, 0x11, 0x4b, 0x1b, 0x68, 0xda, 0x68, 0x42, 0xf0, 0x10, 0x02, 0xda, 0x60, 0xda, 0x68, 0x42, 0xf0, 0x08, 0x02, 0xda, 0x60, 0x4f, 0xf6, 0xff, 0x72, 0x12, 0xf1, 0xff, 0x32, 0x11, 0xd3, 0xd9, 0x68, 0xc9, 0x06, 0xf9, 0xd4, 0x6a, 0xb1, 0x4f, 0xf4, 0x80, 0x32, 0x01, 0x3a, 0x02, 0xd0, 0x19, 0x69, 0xf8, 0x29, 0xfa, 0xd1, 0x1b, 0x69, 0xf8, 0x2b, 0x14, 0xbf, 0x6f, 0xf0, 0x03, 0x00, 0x00, 0x20, 0x70, 0x47, 0x6f, 0xf0, 0x03, 0x00, 0x70, 0x47, 0x74, 0x6e, 0x05, 0x00, 0x2d, 0xe9, 0xf3, 0x47, 0x1f, 0x46, 0x54, 0x4b, 0x14, 0x46, 0x80, 0x46, 0x01, 0x91, 0x5a, 0x68, 0x9a, 0x46, 0x0a, 0x9e, 0x00, 0x2a, 0x00, 0xf0, 0x9b, 0x80, 0xff, 0xf7, 0x85, 0xff, 0x05, 0x46, 0x20, 0xbb, 0x01, 0x46, 0x40, 0x46, 0xff, 0xf7, 0x9f, 0xff, 0x05, 0x46, 0xf0, 0xb9, 0x02, 0x2c, 0x22, 0xdc, 0x0c, 0xbf, 0x01, 0x24, 0x00, 0x24, 0x0d, 0xf1, 0x04, 0x09, 0x4c, 0x44, 0x14, 0xf8, 0x01, 0x09, 0xff, 0xf7, 0x55, 0xff, 0x05, 0x46, 0x80, 0xb9, 0xa4, 0xeb, 0x09, 0x03, 0x01, 0x33, 0xf5, 0xd1, 0xda, 0xf8, 0x00, 0x40, 0xe3, 0x68, 0x43, 0xf0, 0x20, 0x03, 0xe3, 0x60, 0x4f, 0xf6, 0xff, 0x73, 0x13, 0xf1, 0xff, 0x33, 0x09, 0xd2, 0x6f, 0xf0, 0x03, 0x05, 0xff, 0xf7, 0xa2, 0xff, 0x28, 0x46, 0x02, 0xb0, 0xbd, 0xe8, 0xf0, 0x87, 0x02, 0x24, 0xdd, 0xe7, 0xe2, 0x68, 0x15, 0x07, 0xef, 0xd5, 0x00, 0x2b, 0xf0, 0xd0, 0x23, 0x69, 0x10, 0x2b, 0x5b, 0xd1, 0x01, 0x21, 0x40, 0x46, 0xff, 0xf7, 0x6a, 0xff, 0x05, 0x46, 0x00, 0x28, 0xe8, 0xd1, 0x01, 0x2e, 0x21, 0xd0, 0x3a, 0x46, 0x01, 0x3e, 0xd3, 0x1b, 0x9e, 0x42, 0xe3, 0x68, 0x30, 0xd8, 0x03, 0xf0, 0xfb, 0x03, 0xe3, 0x60, 0xe3, 0x68, 0x43, 0xf0, 0x08, 0x03, 0xe3, 0x60, 0x4f, 0xf6, 0xff, 0x73, 0x13, 0xf1, 0xff, 0x33, 0xd2, 0xd3, 0xe2, 0x68, 0x12, 0x07, 0xf9, 0xd5, 0x00, 0x2b, 0xcd, 0xd0, 0xa3, 0x68, 0xbb, 0x55, 0x64, 0x23, 0x13, 0xf1, 0xff, 0x33, 0xc7, 0xd3, 0x22, 0x69, 0x58, 0x2a, 0xf9, 0xd1, 0x9b, 0xb9, 0xc2, 0xe7, 0xe3, 0x68, 0x43, 0xf0, 0x08, 0x03, 0xe3, 0x60, 0x4f, 0xf6, 0xff, 0x73, 0x13, 0xf1, 0xff, 0x33, 0xb9, 0xd3, 0xe2, 0x68, 0x10, 0x07, 0xf9, 0xd5, 0x00, 0x2b, 0xb4, 0xd0, 0xa3, 0x68, 0x3b, 0x70, 0x23, 0x69, 0x58, 0x2b, 0x20, 0xd1, 0x00, 0x25, 0xaf, 0xe7, 0xe3, 0x68, 0x43, 0xf0, 0x0c, 0x03, 0xe3, 0x60, 0x4f, 0xf6, 0xff, 0x73, 0x13, 0xf1, 0xff, 0x33, 0xa4, 0xd3, 0xe1, 0x68, 0x09, 0x07, 0xf9, 0xd5, 0x00, 0x2b, 0x9f, 0xd0, 0xa3, 0x68, 0x02, 0xf8, 0x01, 0x3b, 0x4f, 0xf6, 0xff, 0x73, 0x13, 0xf1, 0xff, 0x33, 0x97, 0xd3, 0x21, 0x69, 0x50, 0x29, 0xf9, 0xd1, 0x00, 0x2b, 0xaf, 0xd1, 0x91, 0xe7, 0x6f, 0xf0, 0x0f, 0x05, 0x90, 0xe7, 0x6f, 0xf0, 0x57, 0x05, 0x8d, 0xe7, 0x6f, 0xf0, 0x03, 0x05, 0x8c, 0xe7, 0x00, 0xbf, 0x74, 0x6e, 0x05, 0x00, 0x2d, 0xe9, 0xf3, 0x41, 0x1c, 0x46, 0x29, 0x4b, 0x15, 0x46, 0x06, 0x46, 0x01, 0x91, 0x5a, 0x68, 0x98, 0x46, 0x00, 0x2a, 0x46, 0xd0, 0xff, 0xf7, 0xd9, 0xfe, 0x01, 0x46, 0x38, 0xb1, 0x4f, 0xf0, 0xff, 0x36, 0xff, 0xf7, 0x19, 0xff, 0x30, 0x46, 0x02, 0xb0, 0xbd, 0xe8, 0xf0, 0x81, 0x30, 0x46, 0xff, 0xf7, 0xec, 0xfe, 0x00, 0x28, 0xf2, 0xd1, 0x02, 0x2d, 0x31, 0xdc, 0x0c, 0xbf, 0x01, 0x25, 0x00, 0x25, 0x01, 0xaf, 0x3d, 0x44, 0x15, 0xf8, 0x01, 0x09, 0xff, 0xf7, 0xa3, 0xfe, 0x06, 0x46, 0x00, 0x28, 0xe4, 0xd1, 0xeb, 0x1b, 0x01, 0x33, 0xf5, 0xd1, 0x08, 0x99, 0x23, 0x46, 0xd8, 0xf8, 0x00, 0x20, 0x60, 0x18, 0x98, 0x42, 0xdc, 0xd0, 0x13, 0xf8, 0x01, 0x1b, 0x91, 0x60, 0xd1, 0x68, 0x41, 0xf0, 0x08, 0x01, 0xd1, 0x60, 0x4f, 0xf6, 0xff, 0x71, 0x11, 0xf1, 0xff, 0x31, 0xce, 0xd3, 0xd4, 0x68, 0x24, 0x07, 0xf9, 0xd5, 0x00, 0x29, 0xc9, 0xd0, 0x4f, 0xf6, 0xff, 0x71, 0x11, 0xf1, 0xff, 0x31, 0xc4, 0xd3, 0x14, 0x69, 0x28, 0x2c, 0xf9, 0xd1, 0x00, 0x29, 0xe2, 0xd1, 0xbe, 0xe7, 0x02, 0x25, 0xce, 0xe7, 0x6f, 0xf0, 0x03, 0x06, 0xbd, 0xe7, 0x00, 0xbf, 0x74, 0x6e, 0x05, 0x00, 0x70, 0xb5, 0x01, 0x22, 0x33, 0x4d, 0x04, 0x46, 0x2b, 0x68, 0x9a, 0x61, 0x4f, 0xf4, 0x80, 0x32, 0x99, 0x69, 0x09, 0xb1, 0x01, 0x3a, 0xfb, 0xd1, 0x1a, 0x6a, 0x02, 0xf0, 0x30, 0x02, 0x30, 0x2a, 0x2c, 0xd0, 0x05, 0x22, 0x0a, 0x26, 0x1a, 0x62, 0x4f, 0xf4, 0xfa, 0x70, 0xfe, 0xf7, 0x76, 0xfe, 0x2b, 0x68, 0x1a, 0x6a, 0x92, 0x07, 0x1a, 0xd4, 0x1a, 0x6a, 0x4f, 0xf4, 0x7a, 0x70, 0x42, 0xf0, 0x08, 0x02, 0x1a, 0x62, 0x1a, 0x6a, 0x42, 0xf0, 0x02, 0x02, 0x1a, 0x62, 0xfe, 0xf7, 0x66, 0xfe, 0x2b, 0x68, 0x4f, 0xf4, 0x7a, 0x70, 0x1a, 0x6a, 0x22, 0xf0, 0x08, 0x02, 0x1a, 0x62, 0x1a, 0x6a, 0x22, 0xf0, 0x02, 0x02, 0x1a, 0x62, 0xfe, 0xf7, 0x59, 0xfe, 0x01, 0x3e, 0xe0, 0xd1, 0x2b, 0x68, 0x00, 0x22, 0x4f, 0xf4, 0xfa, 0x70, 0x1a, 0x62, 0xfe, 0xf7, 0x50, 0xfe, 0x16, 0x4a, 0x84, 0xfb, 0x02, 0x23, 0xe4, 0x17, 0x00, 0x22, 0xc4, 0xeb, 0xa3, 0x14, 0x01, 0x23, 0xb4, 0xf5, 0xc8, 0x7f, 0x21, 0x46, 0xa8, 0xbf, 0x4f, 0xf4, 0xc8, 0x71, 0x64, 0x29, 0xb8, 0xbf, 0x64, 0x21, 0x64, 0x2c, 0xcc, 0xbf, 0x00, 0x24, 0x01, 0x24, 0xa2, 0x42, 0x10, 0xdb, 0x59, 0x43, 0x4f, 0xf4, 0x16, 0x60, 0x2d, 0x68, 0xfe, 0xf7, 0xcb, 0xfc, 0x01, 0x38, 0x44, 0xea, 0xc0, 0x04, 0x6c, 0x61, 0xeb, 0x68, 0x43, 0xf0, 0x40, 0x03, 0xeb, 0x60, 0x00, 0x23, 0xeb, 0x61, 0x70, 0xbd, 0x5b, 0x00, 0x01, 0x22, 0xe9, 0xe7, 0x00, 0xbf, 0x74, 0x6e, 0x05, 0x00, 0xd3, 0x4d, 0x62, 0x10, 0x0a, 0x48, 0x10, 0xb5, 0x90, 0xf8, 0x08, 0x23, 0x6a, 0xb1, 0x09, 0x49, 0x0c, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x23, 0x01, 0x3a, 0x93, 0x40, 0x23, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0xf5, 0x42, 0x70, 0x0b, 0x60, 0x10, 0xbd, 0x03, 0x48, 0xfc, 0xe7, 0x00, 0xbf, 0x00, 0xc0, 0x04, 0x00, 0x80, 0x03, 0x00, 0x02, 0x44, 0x5d, 0x05, 0x00, 0x2c, 0x4b, 0x2d, 0xe9, 0xf0, 0x41, 0x04, 0x46, 0x0d, 0x46, 0x16, 0x46, 0x02, 0x21, 0x01, 0x22, 0x18, 0x60, 0x98, 0x68, 0xff, 0xf7, 0x24, 0xfc, 0xa4, 0xf1, 0x14, 0x73, 0xa3, 0xf5, 0x00, 0x53, 0x9b, 0x0a, 0x05, 0x2b, 0x24, 0xd8, 0x24, 0x4f, 0x39, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x20, 0x03, 0xf1, 0x10, 0x02, 0x00, 0xfa, 0x02, 0xf2, 0x0a, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x3a, 0x60, 0xd7, 0xf8, 0x00, 0x80, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0xfa, 0x03, 0xf4, 0x28, 0xea, 0x04, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x3b, 0x60, 0x48, 0xea, 0x04, 0x04, 0xfe, 0xf7, 0xe7, 0xfd, 0xbf, 0xf3, 0x5f, 0x8f, 0x3c, 0x60, 0x31, 0x46, 0x28, 0x46, 0xbd, 0xe8, 0xf0, 0x41, 0xff, 0xf7, 0x3e, 0xbf, 0x12, 0x4f, 0xa4, 0xf1, 0xe1, 0x64, 0xa4, 0xf5, 0xa0, 0x54, 0xa4, 0x0a, 0x3a, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x20, 0x04, 0xf1, 0x10, 0x03, 0x00, 0xfa, 0x03, 0xf3, 0x22, 0xea, 0x03, 0x02, 0xbf, 0xf3, 0x5f, 0x8f, 0x3a, 0x60, 0x3a, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x3b, 0x60, 0xd7, 0xf8, 0x00, 0x80, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0xfa, 0x04, 0xf4, 0xcc, 0xe7, 0x00, 0xbf, 0x74, 0x6e, 0x05, 0x00, 0x1c, 0x19, 0x00, 0x02, 0x9c, 0x01, 0x01, 0x07, 0xf8, 0xb5, 0x06, 0x46, 0x0c, 0x4c, 0x0f, 0x46, 0x63, 0x68, 0x8b, 0xb9, 0xff, 0xf7, 0x7c, 0xff, 0xa0, 0x60, 0x70, 0xb1, 0x80, 0x79, 0x3a, 0x46, 0x31, 0x46, 0x06, 0x28, 0x17, 0xbf, 0x00, 0xf5, 0x14, 0x40, 0x06, 0x48, 0x08, 0x30, 0x80, 0x02, 0xff, 0xf7, 0x8a, 0xff, 0x01, 0x23, 0x63, 0x60, 0xf8, 0xbd, 0x60, 0x60, 0xfc, 0xe7, 0x00, 0xbf, 0x74, 0x6e, 0x05, 0x00, 0x00, 0x14, 0x08, 0x07, 0x08, 0xb5, 0xff, 0xf7, 0xdd, 0xff, 0x00, 0x20, 0x08, 0xbd, 0x13, 0xb5, 0x01, 0x24, 0x13, 0x46, 0x00, 0x94, 0x22, 0x46, 0xc0, 0xb2, 0xff, 0xf7, 0xe3, 0xfd, 0x02, 0xb0, 0x10, 0xbd, 0x1f, 0xb5, 0x04, 0xab, 0x03, 0xf8, 0x01, 0x2d, 0x01, 0x22, 0xc0, 0xb2, 0x00, 0x92, 0xff, 0xf7, 0x86, 0xfe, 0x05, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x00, 0x00, 0x08, 0xb5, 0xff, 0xf7, 0xd1, 0xf8, 0x00, 0x20, 0x06, 0x4a, 0x13, 0x68, 0x23, 0xf0, 0x7f, 0x43, 0x23, 0xf0, 0x0e, 0x03, 0x43, 0xf0, 0x41, 0x03, 0x13, 0x60, 0x41, 0xf6, 0x1f, 0x73, 0x50, 0x60, 0x93, 0x60, 0x08, 0xbd, 0x00, 0x98, 0x00, 0x02, 0x08, 0xb5, 0xff, 0xf7, 0xdd, 0xf8, 0x14, 0x4a, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x9b, 0xb2, 0x43, 0xf0, 0xbb, 0x43, 0x43, 0xf4, 0x7c, 0x13, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0x04, 0x32, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf4, 0x80, 0x23, 0x43, 0xf4, 0x00, 0x23, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf4, 0x80, 0x33, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x04, 0x4b, 0x00, 0x20, 0x18, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x22, 0x1a, 0x61, 0x08, 0xbd, 0x00, 0x90, 0x00, 0x02, 0x28, 0x90, 0x00, 0x02, 0x0e, 0x4a, 0x38, 0xb5, 0x05, 0x46, 0x01, 0x20, 0x00, 0xfa, 0x05, 0xf4, 0x40, 0xf2, 0xdc, 0x50, 0x13, 0x68, 0x23, 0x43, 0x13, 0x60, 0xfe, 0xf7, 0x17, 0xfd, 0x09, 0x4b, 0x18, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x20, 0x40, 0xbf, 0xf3, 0x5f, 0x8f, 0x18, 0x60, 0x28, 0xb1, 0x05, 0x4b, 0x2b, 0x44, 0x9b, 0x00, 0x18, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x38, 0xbd, 0x00, 0xbf, 0x08, 0x90, 0x00, 0x02, 0x38, 0x90, 0x00, 0x02, 0x20, 0x24, 0x80, 0x00, 0x2d, 0xe9, 0xff, 0x47, 0x06, 0x46, 0xdf, 0xf8, 0x68, 0x80, 0x4f, 0xf4, 0xe1, 0x67, 0xfe, 0xf7, 0xed, 0xfc, 0x05, 0x46, 0x00, 0x24, 0x0d, 0xf1, 0x04, 0x0a, 0xa1, 0x46, 0x30, 0x46, 0xff, 0xf7, 0xcb, 0xff, 0x40, 0xf6, 0xff, 0x71, 0x78, 0x43, 0xfe, 0xf7, 0x82, 0xfb, 0x4a, 0xf8, 0x29, 0x00, 0x09, 0xf1, 0x01, 0x09, 0xb9, 0xf1, 0x03, 0x0f, 0x04, 0x44, 0xef, 0xd1, 0x84, 0xfb, 0x08, 0x23, 0xa3, 0xeb, 0xe4, 0x74, 0x01, 0x9b, 0xe3, 0x1a, 0x00, 0x2b, 0xb8, 0xbf, 0x5b, 0x42, 0x04, 0x2b, 0x08, 0xdd, 0xfe, 0xf7, 0xcb, 0xfc, 0x40, 0x1b, 0xb0, 0xf5, 0xfa, 0x6f, 0xda, 0xd3, 0x03, 0x48, 0xff, 0xf7, 0x08, 0xfa, 0x20, 0x46, 0x04, 0xb0, 0xbd, 0xe8, 0xf0, 0x87, 0x3a, 0x55, 0x05, 0x00, 0x56, 0x55, 0x55, 0x55, 0x2d, 0xe9, 0xf0, 0x41, 0x88, 0xb0, 0x6c, 0x4d, 0x6c, 0x46, 0x0f, 0xcd, 0x0f, 0xc4, 0x95, 0xe8, 0x0f, 0x00, 0x6a, 0x4d, 0x84, 0xe8, 0x0f, 0x00, 0xd5, 0xf8, 0x94, 0x30, 0x00, 0x2b, 0xc0, 0xf2, 0xc7, 0x80, 0x67, 0x48, 0xff, 0xf7, 0xa7, 0xf8, 0x65, 0x49, 0x02, 0x46, 0x05, 0xf5, 0x52, 0x70, 0xff, 0xf7, 0x90, 0xf8, 0x06, 0x46, 0x00, 0x28, 0x40, 0xf0, 0xb2, 0x80, 0x01, 0x22, 0x06, 0x21, 0x05, 0xf5, 0x55, 0x70, 0xff, 0xf7, 0xce, 0xfa, 0x95, 0xf8, 0x50, 0x83, 0xb8, 0xf1, 0x01, 0x0f, 0x4d, 0xd1, 0x28, 0x46, 0x31, 0x46, 0x37, 0x46, 0x30, 0x24, 0x42, 0x46, 0x90, 0xf8, 0x54, 0x33, 0x7b, 0xb1, 0x01, 0x3b, 0x90, 0xf8, 0x55, 0xc3, 0x63, 0x43, 0x03, 0xf1, 0x00, 0x73, 0xd3, 0xf8, 0x10, 0xe0, 0x02, 0xfa, 0x0c, 0xf3, 0x03, 0xea, 0x0e, 0x03, 0x23, 0xfa, 0x0c, 0xf3, 0x8b, 0x40, 0x1f, 0x43, 0x01, 0x31, 0x08, 0x30, 0x04, 0x29, 0xe8, 0xd1, 0x00, 0x24, 0x4f, 0xf0, 0x20, 0x08, 0x17, 0xeb, 0xc4, 0x04, 0x0b, 0xd0, 0x61, 0x1e, 0xc9, 0x01, 0x6b, 0x18, 0xd3, 0xf8, 0x74, 0x73, 0x00, 0x2f, 0x75, 0xd1, 0x21, 0x46, 0x3c, 0x46, 0x46, 0x48, 0xff, 0xf7, 0xa9, 0xf9, 0x01, 0x21, 0x05, 0xeb, 0xc6, 0x13, 0xd3, 0xf8, 0x74, 0x33, 0x03, 0xb1, 0x01, 0x31, 0x01, 0x36, 0xb0, 0x45, 0xf6, 0xd1, 0x22, 0x46, 0x40, 0x48, 0xff, 0xf7, 0x9b, 0xf9, 0xff, 0xf7, 0x7d, 0xf9, 0x03, 0x28, 0x0b, 0xd9, 0x3e, 0x4d, 0x00, 0x24, 0x3e, 0x4e, 0x21, 0x46, 0x55, 0xf8, 0x04, 0x2f, 0x30, 0x46, 0x01, 0x34, 0xff, 0xf7, 0x8d, 0xf9, 0x20, 0x2c, 0xf6, 0xd1, 0x00, 0x20, 0x5d, 0xe0, 0xb8, 0xf1, 0x00, 0x0f, 0x46, 0xd0, 0x95, 0xf8, 0x51, 0x43, 0x37, 0x46, 0x04, 0xf0, 0x0f, 0x00, 0xff, 0xf7, 0x45, 0xff, 0x6b, 0x46, 0x53, 0xf8, 0x04, 0x2f, 0x07, 0xf1, 0x01, 0x0c, 0x53, 0xf8, 0x04, 0x1c, 0x0a, 0x44, 0xb0, 0xeb, 0x52, 0x0f, 0x02, 0xd3, 0x67, 0x46, 0x07, 0x2f, 0xf2, 0xd1, 0xb8, 0xf1, 0x03, 0x0f, 0x21, 0xd1, 0x25, 0x49, 0x00, 0x24, 0x22, 0x46, 0x30, 0x20, 0x4f, 0xf0, 0x01, 0x0c, 0x91, 0xf8, 0x54, 0x33, 0x7b, 0xb1, 0x01, 0x3b, 0x91, 0xf8, 0x55, 0xe3, 0x43, 0x43, 0x03, 0xf1, 0x00, 0x73, 0xd3, 0xf8, 0x10, 0x80, 0x0c, 0xfa, 0x0e, 0xf3, 0x03, 0xea, 0x08, 0x03, 0x23, 0xfa, 0x0e, 0xf3, 0x93, 0x40, 0x1c, 0x43, 0x01, 0x32, 0x08, 0x31, 0x04, 0x2a, 0xe8, 0xd1, 0x20, 0x21, 0x1c, 0x48, 0xff, 0xf7, 0x4d, 0xf9, 0x91, 0xe7, 0xb8, 0xf1, 0x04, 0x0f, 0x0e, 0xd1, 0x20, 0x09, 0xff, 0xf7, 0x0c, 0xff, 0xa0, 0xf2, 0xf6, 0x60, 0x24, 0x28, 0x8c, 0xbf, 0x00, 0x24, 0x01, 0x24, 0xed, 0xe7, 0x34, 0x46, 0x37, 0x46, 0x4f, 0xf0, 0x07, 0x08, 0x81, 0xe7, 0x00, 0x24, 0xfa, 0xe7, 0x01, 0xf5, 0x5d, 0x71, 0x80, 0x22, 0x29, 0x44, 0x0f, 0x48, 0xfe, 0xf7, 0xfb, 0xff, 0x86, 0xe7, 0x0e, 0x48, 0xff, 0xf7, 0x2d, 0xf9, 0x4f, 0xf0, 0xff, 0x30, 0x08, 0xb0, 0xbd, 0xe8, 0xf0, 0x81, 0x0b, 0x48, 0xff, 0xf7, 0x25, 0xf9, 0x88, 0xe7, 0xac, 0x51, 0x05, 0x00, 0x00, 0xc0, 0x04, 0x00, 0x4f, 0x55, 0x05, 0x00, 0x6e, 0x55, 0x05, 0x00, 0x94, 0x55, 0x05, 0x00, 0x34, 0xc0, 0x04, 0x00, 0xe2, 0x55, 0x05, 0x00, 0x58, 0x55, 0x05, 0x00, 0x38, 0xc0, 0x04, 0x00, 0xb7, 0x55, 0x05, 0x00, 0xcc, 0x55, 0x05, 0x00, 0x01, 0x4b, 0x18, 0x47, 0x70, 0x47, 0x00, 0xbf, 0x0c, 0xd9, 0x04, 0x00, 0x01, 0x4b, 0x18, 0x47, 0x70, 0x47, 0x00, 0xbf, 0x20, 0xd9, 0x04, 0x00, 0x01, 0x4b, 0x18, 0x47, 0x70, 0x47, 0x00, 0xbf, 0x78, 0xd9, 0x04, 0x00, 0x01, 0x4b, 0x18, 0x47, 0x70, 0x47, 0x00, 0xbf, 0xdc, 0xd9, 0x04, 0x00, 0x01, 0x4b, 0x18, 0x47, 0x70, 0x47, 0x00, 0xbf, 0x5c, 0xda, 0x04, 0x00, 0x01, 0x4b, 0x18, 0x47, 0x70, 0x47, 0x00, 0xbf, 0xd8, 0xda, 0x04, 0x00, 0x10, 0xb5, 0x14, 0x46, 0x1a, 0x46, 0x02, 0x9b, 0x1b, 0xb1, 0xbd, 0xe8, 0x10, 0x40, 0xff, 0xf7, 0xd9, 0xbf, 0xe4, 0x00, 0xff, 0x23, 0xa3, 0x40, 0xdb, 0x43, 0xff, 0xf7, 0xd9, 0xff, 0xe0, 0x40, 0xc0, 0xb2, 0x10, 0xbd, 0x2d, 0xe9, 0xf0, 0x4f, 0x84, 0x46, 0x69, 0x4c, 0x0f, 0x46, 0x16, 0x46, 0x8f, 0xb0, 0x08, 0xad, 0x0d, 0xf1, 0x20, 0x0a, 0x0f, 0xcc, 0x0f, 0xc5, 0x94, 0xe8, 0x03, 0x00, 0x85, 0xe8, 0x03, 0x00, 0xbc, 0xf1, 0x00, 0x0f, 0x49, 0xd0, 0x4f, 0xea, 0x5c, 0x05, 0x0c, 0xf1, 0x80, 0x44, 0x08, 0x34, 0x05, 0xf1, 0x80, 0x45, 0x0c, 0x35, 0x03, 0x2e, 0x02, 0xd9, 0x07, 0x2e, 0x40, 0xd8, 0x04, 0x3e, 0x4f, 0xf0, 0x00, 0x08, 0xeb, 0x19, 0x4f, 0xf0, 0x00, 0x09, 0x04, 0x93, 0x07, 0xf1, 0x80, 0x43, 0x05, 0x93, 0x5a, 0xf8, 0x29, 0xb0, 0x28, 0x46, 0x04, 0x99, 0x5a, 0x46, 0xff, 0xf7, 0xac, 0xff, 0x5a, 0x46, 0x05, 0x99, 0x4f, 0xf0, 0x80, 0x40, 0xff, 0xf7, 0xa6, 0xff, 0x3a, 0x46, 0x21, 0x46, 0x4f, 0xf0, 0x80, 0x40, 0xff, 0xf7, 0xac, 0xff, 0x18, 0x9b, 0x32, 0x46, 0x29, 0x46, 0x20, 0x46, 0x00, 0x93, 0x3b, 0x46, 0xff, 0xf7, 0xaa, 0xff, 0x03, 0x90, 0x00, 0x28, 0x7f, 0xd1, 0x09, 0xf1, 0x01, 0x09, 0xb9, 0xf1, 0x06, 0x0f, 0xdc, 0xd1, 0xf3, 0x00, 0x4f, 0xf0, 0x01, 0x09, 0x07, 0x93, 0x08, 0x33, 0x43, 0x44, 0x4f, 0xea, 0xc6, 0x08, 0x06, 0x93, 0x06, 0x9b, 0x43, 0x45, 0x0f, 0xd8, 0x4f, 0xf0, 0x00, 0x0a, 0xdd, 0xf8, 0x1c, 0x90, 0x51, 0xe0, 0x3d, 0x4c, 0x3d, 0x4d, 0xba, 0xe7, 0x08, 0x2e, 0x01, 0xd0, 0x00, 0x26, 0xbb, 0xe7, 0x4f, 0xf0, 0x18, 0x08, 0x00, 0x26, 0xb9, 0xe7, 0x09, 0xfa, 0x08, 0xfa, 0x04, 0x99, 0x28, 0x46, 0x52, 0x46, 0xff, 0xf7, 0x6d, 0xff, 0x52, 0x46, 0x05, 0x99, 0x4f, 0xf0, 0x80, 0x40, 0xff, 0xf7, 0x67, 0xff, 0x3a, 0x46, 0x21, 0x46, 0x4f, 0xf0, 0x80, 0x40, 0xff, 0xf7, 0x6d, 0xff, 0x18, 0x9b, 0x32, 0x46, 0x29, 0x46, 0x20, 0x46, 0x00, 0x93, 0x3b, 0x46, 0xff, 0xf7, 0x6b, 0xff, 0x00, 0x28, 0x4e, 0xd1, 0x08, 0xf1, 0x01, 0x08, 0xcc, 0xe7, 0x01, 0x23, 0x03, 0xfa, 0x09, 0xfb, 0xba, 0xf1, 0x00, 0x0f, 0x29, 0xd1, 0x6f, 0xea, 0x0b, 0x08, 0xd3, 0x46, 0x5b, 0x46, 0x42, 0x46, 0x04, 0x99, 0x28, 0x46, 0xff, 0xf7, 0x4b, 0xff, 0x5b, 0x46, 0x42, 0x46, 0x05, 0x99, 0x4f, 0xf0, 0x80, 0x40, 0xff, 0xf7, 0x44, 0xff, 0x3a, 0x46, 0x21, 0x46, 0x4f, 0xf0, 0x80, 0x40, 0xff, 0xf7, 0x44, 0xff, 0x18, 0x9b, 0x32, 0x46, 0x29, 0x46, 0x20, 0x46, 0x00, 0x93, 0x3b, 0x46, 0xff, 0xf7, 0x42, 0xff, 0x30, 0xbb, 0x09, 0xf1, 0x01, 0x09, 0x06, 0x9b, 0x4b, 0x45, 0xd5, 0xd8, 0xba, 0xf1, 0x00, 0x0f, 0x05, 0xd1, 0x4f, 0xf0, 0x01, 0x0a, 0xa1, 0xe7, 0x4f, 0xf0, 0xff, 0x38, 0xd5, 0xe7, 0x04, 0xf1, 0x44, 0x02, 0x23, 0x46, 0x19, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x41, 0xb9, 0x04, 0x33, 0x9a, 0x42, 0xf8, 0xd1, 0x01, 0x23, 0x03, 0x93, 0x03, 0x98, 0x0f, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x23, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x33, 0xf6, 0xd1, 0x04, 0x34, 0xa2, 0x42, 0xf7, 0xd1, 0xf0, 0xe7, 0x03, 0x90, 0xf0, 0xe7, 0xcc, 0x51, 0x05, 0x00, 0x08, 0x00, 0x00, 0x42, 0x0c, 0x00, 0x00, 0x41, 0x2d, 0xe9, 0xf0, 0x4f, 0x84, 0x46, 0x57, 0x4c, 0x0e, 0x46, 0x17, 0x46, 0x8b, 0xb0, 0x04, 0xad, 0x0f, 0xcc, 0x0f, 0xc5, 0x94, 0xe8, 0x03, 0x00, 0x85, 0xe8, 0x03, 0x00, 0xbc, 0xf1, 0x00, 0x0f, 0x3f, 0xd0, 0x4f, 0xea, 0x5c, 0x05, 0x0c, 0xf1, 0x80, 0x44, 0x08, 0x34, 0x05, 0xf1, 0x80, 0x45, 0x0c, 0x35, 0xab, 0x19, 0x4f, 0xf0, 0x00, 0x09, 0x00, 0x93, 0x06, 0xf1, 0x80, 0x43, 0x01, 0x93, 0x04, 0xab, 0x00, 0x99, 0x53, 0xf8, 0x29, 0x80, 0x28, 0x46, 0x42, 0x46, 0xff, 0xf7, 0xd8, 0xfe, 0x42, 0x46, 0x01, 0x99, 0x4f, 0xf0, 0x80, 0x40, 0xff, 0xf7, 0xd2, 0xfe, 0x32, 0x46, 0x21, 0x46, 0x4f, 0xf0, 0x80, 0x40, 0xff, 0xf7, 0xd8, 0xfe, 0x32, 0x46, 0x29, 0x46, 0x20, 0x46, 0xff, 0xf7, 0xbb, 0xfe, 0x80, 0x46, 0x00, 0x28, 0x6e, 0xd1, 0x09, 0xf1, 0x01, 0x09, 0xb9, 0xf1, 0x06, 0x0f, 0xde, 0xd1, 0x27, 0xf0, 0x07, 0x03, 0x4f, 0xf0, 0x01, 0x0a, 0x02, 0x93, 0x08, 0x33, 0x02, 0x9f, 0x03, 0x93, 0x03, 0x9b, 0xbb, 0x42, 0x07, 0xd8, 0x4f, 0xf0, 0x00, 0x0a, 0xdd, 0xf8, 0x08, 0x90, 0x42, 0xe0, 0x31, 0x4c, 0x31, 0x4d, 0xc4, 0xe7, 0x0a, 0xfa, 0x07, 0xf9, 0x00, 0x99, 0x28, 0x46, 0x4a, 0x46, 0xff, 0xf7, 0xa5, 0xfe, 0x4a, 0x46, 0x01, 0x99, 0x4f, 0xf0, 0x80, 0x40, 0xff, 0xf7, 0x9f, 0xfe, 0x32, 0x46, 0x21, 0x46, 0x4f, 0xf0, 0x80, 0x40, 0xff, 0xf7, 0xa5, 0xfe, 0x32, 0x46, 0x29, 0x46, 0x20, 0x46, 0xff, 0xf7, 0x88, 0xfe, 0x00, 0x28, 0x40, 0xd1, 0x01, 0x37, 0xd8, 0xe7, 0x01, 0x23, 0x03, 0xfa, 0x09, 0xfb, 0xba, 0xf1, 0x00, 0x0f, 0x26, 0xd1, 0x6f, 0xea, 0x0b, 0x07, 0xd3, 0x46, 0x5b, 0x46, 0x3a, 0x46, 0x00, 0x99, 0x28, 0x46, 0xff, 0xf7, 0x87, 0xfe, 0x5b, 0x46, 0x3a, 0x46, 0x01, 0x99, 0x4f, 0xf0, 0x80, 0x40, 0xff, 0xf7, 0x80, 0xfe, 0x32, 0x46, 0x21, 0x46, 0x4f, 0xf0, 0x80, 0x40, 0xff, 0xf7, 0x80, 0xfe, 0x32, 0x46, 0x29, 0x46, 0x20, 0x46, 0xff, 0xf7, 0x63, 0xfe, 0xe0, 0xb9, 0x09, 0xf1, 0x01, 0x09, 0x03, 0x9b, 0x4b, 0x45, 0xd8, 0xd8, 0xba, 0xf1, 0x00, 0x0f, 0x05, 0xd1, 0x4f, 0xf0, 0x01, 0x0a, 0xb0, 0xe7, 0x4f, 0xf0, 0xff, 0x37, 0xd8, 0xe7, 0x04, 0xf1, 0x44, 0x03, 0x22, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x22, 0xb9, 0x04, 0x34, 0xa3, 0x42, 0xf8, 0xd1, 0x4f, 0xf0, 0x01, 0x08, 0x40, 0x46, 0x0b, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x80, 0x46, 0xf9, 0xe7, 0x00, 0xbf, 0xcc, 0x51, 0x05, 0x00, 0x08, 0x00, 0x00, 0x42, 0x0c, 0x00, 0x00, 0x41, 0x2d, 0xe9, 0xf0, 0x41, 0x4f, 0xf0, 0x01, 0x34, 0xdf, 0xf8, 0x3c, 0xc0, 0x62, 0x43, 0x00, 0x24, 0x09, 0x1a, 0xdf, 0xf8, 0x38, 0xe0, 0x25, 0x46, 0x94, 0x42, 0x05, 0xd1, 0xd8, 0x00, 0x25, 0xfa, 0x00, 0xf0, 0xc0, 0xb2, 0xbd, 0xe8, 0xf0, 0x81, 0x0f, 0x58, 0x04, 0xeb, 0x0c, 0x06, 0x50, 0xf8, 0x04, 0x8b, 0x7e, 0x40, 0x04, 0xeb, 0x0e, 0x07, 0x87, 0xea, 0x08, 0x07, 0x04, 0xf1, 0x01, 0x34, 0x3e, 0x43, 0x35, 0x43, 0xe8, 0xe7, 0x00, 0xbf, 0x98, 0xba, 0xdc, 0xfe, 0x67, 0x45, 0x23, 0x01, 0x2d, 0xe9, 0xf0, 0x4f, 0x50, 0x22, 0xbd, 0xb0, 0x04, 0x46, 0x00, 0x21, 0x0d, 0xeb, 0x02, 0x00, 0xfe, 0xf7, 0xd6, 0xfd, 0x50, 0x22, 0x00, 0x21, 0x28, 0xa8, 0x10, 0xad, 0xfe, 0xf7, 0xd0, 0xfd, 0x99, 0x4b, 0x26, 0x68, 0x0f, 0xcb, 0x85, 0xe8, 0x0f, 0x00, 0xe3, 0x6e, 0xa5, 0x6f, 0x23, 0xf0, 0x00, 0x63, 0xe3, 0x66, 0xff, 0xf7, 0xf2, 0xfd, 0xa3, 0x6e, 0x27, 0x68, 0x02, 0x93, 0xe3, 0x6e, 0x06, 0x93, 0x23, 0x6f, 0x07, 0x93, 0x63, 0x6f, 0x08, 0x93, 0x63, 0x69, 0x04, 0x93, 0xe3, 0x6f, 0x05, 0x93, 0x4f, 0xf4, 0xb4, 0x73, 0x23, 0x60, 0x63, 0x68, 0x03, 0x2b, 0x1d, 0xd1, 0x8b, 0x4b, 0x23, 0x67, 0x8b, 0x4b, 0x63, 0x67, 0xdf, 0xf8, 0x40, 0xa2, 0x4f, 0xf0, 0x01, 0x0b, 0x20, 0x46, 0x03, 0xf0, 0x98, 0xff, 0xa2, 0x6f, 0x80, 0x46, 0xd2, 0x07, 0x0a, 0xd4, 0x20, 0x46, 0x04, 0xf0, 0x43, 0xf9, 0x81, 0x46, 0x20, 0x46, 0x03, 0xf0, 0x8d, 0xff, 0x09, 0xea, 0x00, 0x00, 0x08, 0xea, 0x00, 0x08, 0xb8, 0xf1, 0x00, 0x0f, 0x1c, 0xd1, 0xfe, 0xe7, 0x04, 0x2b, 0x03, 0xd1, 0x7d, 0x4b, 0x23, 0x67, 0x7d, 0x4b, 0xde, 0xe7, 0x07, 0x2b, 0x0c, 0xd1, 0x4f, 0xf4, 0x30, 0x03, 0xa3, 0x66, 0x4f, 0xf0, 0x80, 0x33, 0x63, 0x61, 0x4f, 0xf0, 0x50, 0x33, 0xe3, 0x67, 0x77, 0x4b, 0x23, 0x67, 0x77, 0x4b, 0xcf, 0xe7, 0x08, 0x2b, 0xce, 0xd1, 0x4f, 0xf0, 0x9a, 0x33, 0x23, 0x67, 0x75, 0x4b, 0xc8, 0xe7, 0xcd, 0xf8, 0x00, 0xb0, 0x01, 0x23, 0x08, 0x22, 0x4f, 0xf4, 0x00, 0x41, 0x00, 0x20, 0xff, 0xf7, 0xd2, 0xfd, 0x0c, 0x90, 0x00, 0x28, 0x00, 0xf0, 0xc1, 0x82, 0xe3, 0x6f, 0x03, 0xf1, 0x04, 0x33, 0x53, 0x45, 0xe3, 0x67, 0xba, 0xd9, 0x01, 0x23, 0x0c, 0x93, 0xb3, 0xe2, 0x00, 0x23, 0x02, 0x9a, 0x00, 0x93, 0x4f, 0xf4, 0x80, 0x51, 0x01, 0x23, 0x03, 0x98, 0xff, 0xf7, 0xbc, 0xfd, 0x2c, 0xe3, 0xba, 0xf1, 0x00, 0x0f, 0x40, 0xf0, 0x94, 0x80, 0x2b, 0x68, 0xf2, 0x1b, 0x6a, 0x60, 0xfb, 0x1a, 0x13, 0x44, 0x02, 0x2b, 0xab, 0x60, 0x40, 0xf2, 0x3a, 0x83, 0xd5, 0xe9, 0x00, 0x13, 0x0b, 0x98, 0xda, 0x19, 0x52, 0x1a, 0x19, 0x44, 0x2b, 0x69, 0xaa, 0x60, 0xc3, 0x1a, 0x03, 0xeb, 0x51, 0x03, 0x7f, 0x2b, 0x88, 0xbf, 0x7f, 0x23, 0xeb, 0x60, 0x08, 0x9b, 0x08, 0xea, 0x03, 0x01, 0xeb, 0x68, 0x03, 0xf0, 0x7f, 0x03, 0x03, 0xfa, 0x0b, 0xf3, 0x0b, 0x43, 0x08, 0x93, 0x05, 0x9b, 0x08, 0xea, 0x03, 0x08, 0x0b, 0x9b, 0x03, 0xfa, 0x0b, 0xfb, 0x4b, 0xea, 0x08, 0x03, 0x05, 0x93, 0x08, 0x9b, 0x63, 0x67, 0x05, 0x9b, 0xe3, 0x67, 0x0a, 0x9b, 0x9a, 0x42, 0xbc, 0xd3, 0x02, 0x9b, 0x14, 0x35, 0x01, 0x33, 0x02, 0x93, 0x02, 0x9a, 0x0e, 0x9b, 0x93, 0x42, 0x40, 0xf0, 0xc5, 0x82, 0x04, 0xf1, 0x80, 0x01, 0x00, 0x23, 0x08, 0x98, 0x23, 0xf0, 0x07, 0x02, 0x01, 0x33, 0x20, 0x2b, 0x20, 0xfa, 0x02, 0xf2, 0x01, 0xf8, 0x01, 0x2b, 0xf5, 0xd1, 0xb9, 0xf1, 0x00, 0x0f, 0x40, 0xf0, 0xec, 0x80, 0x28, 0xad, 0x4e, 0x46, 0x63, 0x69, 0x4f, 0xea, 0xc6, 0x0b, 0x4f, 0xf0, 0x00, 0x08, 0x4f, 0xf0, 0x01, 0x0a, 0x23, 0xfa, 0x0b, 0xf3, 0xdb, 0xb2, 0x06, 0x93, 0x2b, 0x61, 0xff, 0x23, 0x03, 0xfa, 0x0b, 0xf9, 0x6f, 0xea, 0x09, 0x09, 0x23, 0x6f, 0x08, 0xfa, 0x0b, 0xf2, 0x20, 0x46, 0x09, 0xea, 0x03, 0x03, 0x13, 0x43, 0x23, 0x67, 0x01, 0xf0, 0x3e, 0xf8, 0x00, 0x23, 0x32, 0x46, 0x00, 0x93, 0x4f, 0xf4, 0x80, 0x51, 0x01, 0x23, 0x03, 0x98, 0xff, 0xf7, 0x45, 0xfd, 0x00, 0x28, 0x54, 0xd1, 0xba, 0xf1, 0x00, 0x0f, 0x00, 0xf0, 0x9c, 0x80, 0xc5, 0xf8, 0x00, 0x80, 0xb8, 0xf1, 0x00, 0x0f, 0x0f, 0xd1, 0x2b, 0x69, 0xfd, 0x2b, 0x00, 0xf2, 0xb3, 0x80, 0x62, 0x69, 0x01, 0x33, 0x2b, 0x61, 0x03, 0xfa, 0x0b, 0xf3, 0x01, 0x20, 0x09, 0xea, 0x02, 0x02, 0x4f, 0xf0, 0xff, 0x38, 0x13, 0x43, 0x63, 0x61, 0x08, 0xf1, 0x01, 0x08, 0x82, 0x46, 0xb8, 0xf5, 0x80, 0x7f, 0xcb, 0xd1, 0x41, 0xe0, 0x50, 0xea, 0x0a, 0x0a, 0x40, 0xf0, 0xab, 0x82, 0x7f, 0x2e, 0x6e, 0x60, 0x16, 0xd1, 0x2b, 0x69, 0x29, 0x68, 0x00, 0x2b, 0x3f, 0xf4, 0x69, 0xaf, 0x00, 0x29, 0x3f, 0xf4, 0x66, 0xaf, 0xe2, 0x6f, 0xdb, 0x1b, 0x2b, 0x61, 0x03, 0xfa, 0x0b, 0xf3, 0x0d, 0x9e, 0xc9, 0x1b, 0x08, 0xea, 0x02, 0x02, 0x29, 0x60, 0x13, 0x43, 0xe3, 0x67, 0xc7, 0xf1, 0x7f, 0x03, 0x6b, 0x60, 0x50, 0x46, 0x8e, 0xe2, 0x30, 0x46, 0x8c, 0xe2, 0x00, 0xbf, 0xe4, 0x51, 0x05, 0x00, 0x92, 0x90, 0x92, 0x92, 0x1a, 0x14, 0x1c, 0x20, 0x9a, 0x98, 0x9a, 0x9a, 0x0c, 0x0a, 0x0d, 0x0e, 0x82, 0x7f, 0x82, 0x7e, 0x0d, 0x0a, 0x0b, 0x0c, 0x0a, 0x07, 0x0f, 0x0e, 0xfb, 0xfc, 0xfc, 0xfc, 0xba, 0xf1, 0x00, 0x0f, 0x47, 0xd1, 0x2b, 0x68, 0x08, 0xf1, 0xff, 0x32, 0x6a, 0x60, 0xc3, 0xf1, 0x01, 0x03, 0x13, 0x44, 0x02, 0x2b, 0xab, 0x60, 0xb6, 0xd9, 0xd5, 0xe9, 0x00, 0x23, 0x01, 0x36, 0x14, 0x35, 0x59, 0x1c, 0x89, 0x1a, 0x1a, 0x44, 0x45, 0xf8, 0x0c, 0x1c, 0x55, 0xf8, 0x04, 0x3c, 0x06, 0x99, 0xcb, 0x1a, 0x03, 0xeb, 0x52, 0x03, 0xb3, 0xf5, 0x80, 0x7f, 0x28, 0xbf, 0xff, 0x23, 0x45, 0xf8, 0x08, 0x3c, 0x07, 0x9b, 0x09, 0xea, 0x03, 0x02, 0x15, 0xf8, 0x08, 0x3c, 0x03, 0xfa, 0x0b, 0xf3, 0x01, 0xfa, 0x0b, 0xfb, 0x13, 0x43, 0x07, 0x93, 0x04, 0x9b, 0x09, 0xea, 0x03, 0x09, 0x4b, 0xea, 0x09, 0x03, 0x04, 0x93, 0x07, 0x9b, 0x23, 0x67, 0x04, 0x9b, 0x63, 0x61, 0x02, 0x9b, 0x9e, 0x42, 0x7f, 0xf4, 0x4a, 0xaf, 0x04, 0xf1, 0xa0, 0x01, 0x00, 0x23, 0x07, 0x98, 0x23, 0xf0, 0x07, 0x02, 0x01, 0x33, 0x20, 0x2b, 0x20, 0xfa, 0x02, 0xf2, 0x01, 0xf8, 0x01, 0x2b, 0xf5, 0xd1, 0x4f, 0xf0, 0x01, 0x09, 0xd8, 0xe1, 0x50, 0xea, 0x0a, 0x0a, 0x7f, 0xf4, 0x75, 0xaf, 0xb8, 0xf1, 0xff, 0x0f, 0xc5, 0xf8, 0x04, 0x80, 0x18, 0xd1, 0x2b, 0x69, 0x29, 0x68, 0x00, 0x2b, 0xb4, 0xd0, 0x00, 0x29, 0xb2, 0xd0, 0x62, 0x69, 0x01, 0x3b, 0x2b, 0x61, 0x03, 0xfa, 0x0b, 0xf3, 0x01, 0x39, 0x09, 0xea, 0x02, 0x02, 0x29, 0x60, 0x13, 0x43, 0x50, 0x46, 0x63, 0x61, 0xfe, 0x23, 0x6b, 0x60, 0x4f, 0xf0, 0xfd, 0x08, 0x58, 0xe7, 0x40, 0x46, 0x56, 0xe7, 0x50, 0x46, 0x54, 0xe7, 0xb9, 0xf1, 0x00, 0x0f, 0xd5, 0xd0, 0xa3, 0x6f, 0x5b, 0x05, 0x40, 0xf1, 0x67, 0x81, 0xe3, 0x6e, 0x00, 0x25, 0xaa, 0x46, 0xa9, 0x46, 0x43, 0xf0, 0x00, 0x63, 0xe3, 0x66, 0x04, 0xf1, 0x87, 0x03, 0x08, 0x93, 0x4f, 0xea, 0xc9, 0x03, 0x07, 0x93, 0x07, 0x9a, 0x05, 0x9b, 0x23, 0xfa, 0x02, 0xf8, 0x7f, 0x22, 0x08, 0xf0, 0x7f, 0x03, 0x0f, 0x93, 0x07, 0x9b, 0x02, 0xfa, 0x03, 0xf8, 0x05, 0x9b, 0x07, 0x9a, 0x23, 0xea, 0x08, 0x03, 0x0d, 0x93, 0x06, 0x9b, 0x1b, 0x69, 0x0e, 0x93, 0x93, 0x40, 0x0d, 0x9a, 0x13, 0x43, 0xe3, 0x67, 0x08, 0x9b, 0xa3, 0xf1, 0x08, 0x06, 0x06, 0x9b, 0x4f, 0xf0, 0x00, 0x0b, 0x06, 0x9a, 0x4f, 0xf0, 0x03, 0x08, 0x0b, 0x95, 0x1b, 0x68, 0x52, 0x68, 0x13, 0x44, 0xc3, 0xf3, 0x46, 0x03, 0x05, 0x93, 0x9d, 0xf8, 0x14, 0x30, 0x06, 0xf8, 0x01, 0x3f, 0x35, 0x78, 0x3c, 0xab, 0x03, 0xeb, 0x88, 0x03, 0x05, 0xf0, 0x7f, 0x05, 0x53, 0xf8, 0xb0, 0x7c, 0xbb, 0xf1, 0x00, 0x0f, 0x24, 0xd1, 0xbd, 0x42, 0x27, 0xd9, 0xed, 0x1b, 0xeb, 0xb2, 0x20, 0x46, 0x09, 0x93, 0x03, 0xf0, 0x7f, 0x03, 0x33, 0x70, 0x00, 0xf0, 0x1a, 0xff, 0x00, 0x23, 0x4a, 0x46, 0x00, 0x93, 0x4f, 0xf4, 0x80, 0x51, 0x01, 0x23, 0x03, 0x98, 0xff, 0xf7, 0xfd, 0xfc, 0x28, 0xb3, 0xbb, 0xf1, 0x00, 0x0f, 0x1c, 0xd1, 0xb8, 0xf1, 0x00, 0x0f, 0x10, 0xd1, 0x9d, 0xf8, 0x14, 0x30, 0x55, 0x46, 0x33, 0x70, 0x4f, 0xf0, 0x03, 0x08, 0xaa, 0x46, 0x4f, 0xf0, 0x01, 0x0b, 0xcf, 0xe7, 0x3d, 0x44, 0x7f, 0x2d, 0x28, 0xbf, 0x7f, 0x25, 0xd8, 0xe7, 0x5d, 0x46, 0xd6, 0xe7, 0x09, 0x9b, 0x3b, 0x44, 0x1f, 0x46, 0x07, 0xf0, 0x7f, 0x07, 0x08, 0xf1, 0xff, 0x38, 0x37, 0x70, 0xbf, 0xe7, 0xb8, 0xf1, 0x00, 0x0f, 0x10, 0xd0, 0x09, 0x9b, 0xdf, 0x1b, 0xf3, 0xe7, 0xbb, 0xf1, 0x00, 0x0f, 0x04, 0xd1, 0x3d, 0xb9, 0x9d, 0xf8, 0x14, 0x30, 0x33, 0x70, 0xdb, 0xe7, 0x7f, 0x2d, 0x04, 0xd0, 0x0b, 0x95, 0xad, 0xe7, 0xaa, 0x46, 0xab, 0xe7, 0x0b, 0x9d, 0xdd, 0xe9, 0x0e, 0x12, 0x0a, 0xeb, 0x05, 0x03, 0x52, 0x1a, 0x02, 0xeb, 0x53, 0x03, 0x0a, 0x9a, 0x7f, 0x2b, 0x28, 0xbf, 0x7f, 0x23, 0x33, 0x70, 0x6b, 0x1c, 0xa3, 0xeb, 0x0a, 0x03, 0x93, 0x42, 0xff, 0xf4, 0x11, 0xae, 0x08, 0x9b, 0xb3, 0x42, 0x84, 0xd1, 0x0f, 0x9b, 0x09, 0xf1, 0x01, 0x09, 0x07, 0x9a, 0x03, 0xfa, 0x02, 0xfb, 0x0d, 0x9b, 0x4b, 0xea, 0x03, 0x03, 0x05, 0x93, 0xe3, 0x67, 0x06, 0x9b, 0x14, 0x33, 0x06, 0x93, 0x08, 0x9b, 0x08, 0x33, 0x08, 0x93, 0x02, 0x9b, 0x99, 0x45, 0x7f, 0xf4, 0x53, 0xaf, 0x00, 0x25, 0x04, 0xf1, 0xa7, 0x03, 0xaa, 0x46, 0xa9, 0x46, 0x06, 0x93, 0x4f, 0xea, 0xc9, 0x03, 0x05, 0x93, 0xdd, 0xe9, 0x04, 0x32, 0x23, 0xfa, 0x02, 0xfb, 0x5f, 0xfa, 0x8b, 0xf3, 0x4f, 0xf0, 0xff, 0x0b, 0x0b, 0xfa, 0x02, 0xfb, 0x0d, 0x93, 0x04, 0x9b, 0x23, 0xea, 0x0b, 0x03, 0x08, 0x93, 0x14, 0x23, 0x03, 0xfb, 0x09, 0xf3, 0x0f, 0x93, 0x28, 0xab, 0x0f, 0x9a, 0x13, 0x44, 0x05, 0x9a, 0x0e, 0x93, 0x1b, 0x69, 0x09, 0x93, 0x93, 0x40, 0x08, 0x9a, 0x13, 0x43, 0x63, 0x61, 0x06, 0x9b, 0xa3, 0xf1, 0x08, 0x06, 0x0f, 0x9b, 0x28, 0xaa, 0x4f, 0xf0, 0x00, 0x0b, 0x03, 0x27, 0x0b, 0x95, 0xd3, 0x58, 0x0e, 0x9a, 0x52, 0x68, 0x13, 0x44, 0xc3, 0xf3, 0x47, 0x03, 0x04, 0x93, 0x9d, 0xf8, 0x10, 0x30, 0x06, 0xf8, 0x01, 0x3f, 0x3c, 0xab, 0x35, 0x78, 0x03, 0xeb, 0x87, 0x03, 0x53, 0xf8, 0xb0, 0x8c, 0xbb, 0xf1, 0x00, 0x0f, 0x22, 0xd1, 0x45, 0x45, 0x25, 0xd9, 0xa5, 0xeb, 0x08, 0x05, 0xeb, 0xb2, 0x20, 0x46, 0x07, 0x93, 0x9d, 0xf8, 0x1c, 0x30, 0x33, 0x70, 0x00, 0xf0, 0x61, 0xfe, 0x00, 0x23, 0x4a, 0x46, 0x00, 0x93, 0x4f, 0xf4, 0x80, 0x51, 0x01, 0x23, 0x03, 0x98, 0xff, 0xf7, 0x44, 0xfc, 0xf8, 0xb1, 0xbb, 0xf1, 0x00, 0x0f, 0x17, 0xd1, 0x7f, 0xb9, 0x9d, 0xf8, 0x10, 0x30, 0x55, 0x46, 0x33, 0x70, 0x03, 0x27, 0xaa, 0x46, 0x4f, 0xf0, 0x01, 0x0b, 0xd3, 0xe7, 0x45, 0x44, 0xff, 0x2d, 0x28, 0xbf, 0xff, 0x25, 0xdb, 0xe7, 0x5d, 0x46, 0xd9, 0xe7, 0x07, 0x9b, 0x43, 0x44, 0x98, 0x46, 0x86, 0xf8, 0x00, 0x80, 0x01, 0x3f, 0xc5, 0xe7, 0x8f, 0xb1, 0x07, 0x9b, 0xa3, 0xeb, 0x08, 0x08, 0xf6, 0xe7, 0xbb, 0xf1, 0x00, 0x0f, 0x04, 0xd1, 0x3d, 0xb9, 0x9d, 0xf8, 0x10, 0x30, 0x33, 0x70, 0xdf, 0xe7, 0xff, 0x2d, 0x04, 0xd0, 0x0b, 0x95, 0xb4, 0xe7, 0xaa, 0x46, 0xb2, 0xe7, 0x0b, 0x9d, 0x0d, 0x9a, 0x05, 0xeb, 0x0a, 0x03, 0x09, 0x99, 0x52, 0x1a, 0x02, 0xeb, 0x53, 0x03, 0x0a, 0x9a, 0xff, 0x2b, 0x28, 0xbf, 0xff, 0x23, 0x33, 0x70, 0x6b, 0x1c, 0xa3, 0xeb, 0x0a, 0x03, 0x93, 0x42, 0xff, 0xf4, 0x5e, 0xad, 0x06, 0x9b, 0xb3, 0x42, 0x8b, 0xd1, 0x0d, 0x9b, 0x09, 0xf1, 0x01, 0x09, 0x05, 0x9a, 0x03, 0xfa, 0x02, 0xfb, 0x08, 0x9b, 0x4b, 0xea, 0x03, 0x03, 0x04, 0x93, 0x63, 0x61, 0x06, 0x9b, 0x08, 0x33, 0x06, 0x93, 0x02, 0x9b, 0x99, 0x45, 0x7f, 0xf4, 0x56, 0xaf, 0x0c, 0x98, 0x3d, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0xe3, 0x69, 0x20, 0x46, 0x13, 0xf0, 0x01, 0x0f, 0x0c, 0xbf, 0x04, 0x23, 0x02, 0x23, 0x0e, 0x93, 0x00, 0xf0, 0x51, 0xf9, 0x40, 0x08, 0x4f, 0xf0, 0x80, 0x42, 0x03, 0x05, 0x48, 0x48, 0x08, 0xbf, 0x4f, 0xf0, 0x00, 0x43, 0x03, 0x93, 0x03, 0xf1, 0x80, 0x43, 0x03, 0x99, 0x0c, 0x33, 0x09, 0x93, 0x44, 0x4b, 0x01, 0xf1, 0x0c, 0x0c, 0x43, 0x49, 0x13, 0x60, 0x03, 0xeb, 0x00, 0x0e, 0x03, 0xf1, 0x01, 0x33, 0x4c, 0xf8, 0x02, 0xe0, 0x8b, 0x42, 0x02, 0xf1, 0x04, 0x02, 0xf4, 0xd1, 0x4f, 0xf4, 0xc8, 0x53, 0xc5, 0xf3, 0x01, 0x22, 0x5e, 0x43, 0x27, 0x60, 0x4f, 0xf0, 0x00, 0x09, 0x04, 0x27, 0x02, 0xfb, 0x06, 0x66, 0x39, 0x4a, 0xa6, 0xfb, 0x02, 0x23, 0x9b, 0x0c, 0x0a, 0x93, 0x02, 0x9b, 0xa3, 0x66, 0x06, 0x9b, 0xe3, 0x66, 0x07, 0x9b, 0x23, 0x67, 0x08, 0x9b, 0x63, 0x67, 0x04, 0x9b, 0x63, 0x61, 0x05, 0x9b, 0xe3, 0x67, 0x20, 0x46, 0x03, 0xf0, 0x55, 0xfc, 0x01, 0x28, 0x7f, 0xf4, 0xfc, 0xac, 0xb9, 0xf1, 0x01, 0x0f, 0x08, 0xbf, 0x01, 0x27, 0x7b, 0x00, 0xc3, 0xf1, 0x7f, 0x03, 0x0d, 0x93, 0x14, 0xab, 0x06, 0x93, 0x1d, 0x46, 0x00, 0x23, 0x02, 0x93, 0x02, 0x9b, 0x4f, 0xf0, 0x7f, 0x08, 0x00, 0x26, 0x4f, 0xf0, 0x01, 0x0a, 0x4f, 0xea, 0xc3, 0x0b, 0xe3, 0x6f, 0x08, 0xfa, 0x0b, 0xf8, 0x23, 0xfa, 0x0b, 0xf3, 0x6f, 0xea, 0x08, 0x08, 0x03, 0xf0, 0x7f, 0x03, 0x0b, 0x93, 0x2b, 0x61, 0x63, 0x6f, 0x06, 0xfa, 0x0b, 0xf2, 0x20, 0x46, 0x08, 0xea, 0x03, 0x03, 0x13, 0x43, 0x63, 0x67, 0x00, 0xf0, 0x8a, 0xfd, 0xb9, 0xf1, 0x00, 0x0f, 0x7f, 0xf4, 0xd1, 0xac, 0x02, 0x9b, 0x4f, 0xf4, 0x80, 0x72, 0x09, 0x99, 0x4f, 0xf0, 0x80, 0x40, 0xff, 0xf7, 0x22, 0xfc, 0x00, 0x28, 0x7f, 0xf4, 0xd0, 0xac, 0xba, 0xf1, 0x00, 0x0f, 0x3f, 0xf4, 0x64, 0xad, 0x2e, 0x60, 0x86, 0xb9, 0x2b, 0x69, 0xc7, 0xf1, 0x7f, 0x02, 0x93, 0x42, 0xbf, 0xf4, 0x7c, 0xad, 0xe2, 0x6f, 0x3b, 0x44, 0x2b, 0x61, 0x03, 0xfa, 0x0b, 0xf3, 0x7e, 0x42, 0x08, 0xea, 0x02, 0x02, 0x01, 0x20, 0x13, 0x43, 0xe3, 0x67, 0x3e, 0x44, 0x82, 0x46, 0x7f, 0x2e, 0xcb, 0xd9, 0xc0, 0xe4, 0x00, 0xbf, 0x31, 0x75, 0xb9, 0xfd, 0x67, 0x45, 0x23, 0x01, 0x67, 0x46, 0x24, 0x02, 0x83, 0xde, 0x1b, 0x43, 0x2d, 0xe9, 0xf7, 0x43, 0x05, 0x25, 0xdf, 0xf8, 0x74, 0x90, 0x4f, 0xf0, 0x01, 0x08, 0x06, 0x46, 0x16, 0x49, 0x17, 0x48, 0xfe, 0xf7, 0x32, 0xfb, 0x01, 0x3d, 0x04, 0xd1, 0x15, 0x48, 0x01, 0x24, 0xfe, 0xf7, 0x2c, 0xfb, 0x1e, 0xe0, 0x30, 0x46, 0xff, 0xf7, 0x0c, 0xfc, 0x07, 0x46, 0x00, 0x28, 0xf2, 0xd1, 0x30, 0x46, 0x03, 0xf0, 0xd8, 0xfb, 0xb0, 0xfa, 0x80, 0xf4, 0xcd, 0xf8, 0x00, 0x80, 0x64, 0x09, 0x01, 0x23, 0x08, 0x22, 0x4f, 0xf4, 0x00, 0x41, 0x38, 0x46, 0xff, 0xf7, 0x3e, 0xfa, 0x04, 0x43, 0x03, 0xd0, 0x48, 0x46, 0xfe, 0xf7, 0x11, 0xfb, 0xdd, 0xe7, 0x31, 0x68, 0x06, 0x48, 0xfe, 0xf7, 0x0c, 0xfb, 0x20, 0x46, 0x03, 0xb0, 0xbd, 0xe8, 0xf0, 0x83, 0x0b, 0x56, 0x05, 0x00, 0x10, 0x56, 0x05, 0x00, 0x83, 0x56, 0x05, 0x00, 0x56, 0x56, 0x05, 0x00, 0x2b, 0x56, 0x05, 0x00, 0x0a, 0x4b, 0x0b, 0x4a, 0x1a, 0x60, 0x0b, 0x4a, 0x5a, 0x60, 0x0b, 0x4a, 0x9a, 0x60, 0x02, 0xf1, 0x9e, 0x62, 0x02, 0xf6, 0xff, 0x72, 0xda, 0x60, 0x08, 0x4a, 0x1a, 0x61, 0x08, 0x4a, 0x5a, 0x61, 0x08, 0x4a, 0x9a, 0x61, 0x08, 0x4a, 0xda, 0x61, 0x70, 0x47, 0x00, 0xbf, 0x54, 0x00, 0x14, 0x03, 0x10, 0x03, 0x0a, 0x15, 0x16, 0x08, 0x14, 0x13, 0x1b, 0x0d, 0x1c, 0x00, 0x0b, 0x06, 0x11, 0x04, 0x17, 0x12, 0x07, 0x09, 0x01, 0x0e, 0x19, 0x18, 0x00, 0x1e, 0x0f, 0x02, 0x10, 0xb5, 0x01, 0xfb, 0x00, 0xf4, 0x4f, 0xf4, 0x7a, 0x71, 0x20, 0x46, 0xfd, 0xf7, 0x20, 0xfc, 0x03, 0x4a, 0xa4, 0xfb, 0x02, 0x23, 0x98, 0x09, 0x00, 0x29, 0x18, 0xbf, 0x01, 0x30, 0x10, 0xbd, 0xd3, 0x4d, 0x62, 0x10, 0x40, 0x08, 0xf8, 0xb5, 0x18, 0x4a, 0x4f, 0xf0, 0x80, 0x43, 0x00, 0x05, 0x00, 0x24, 0x17, 0x4d, 0x8c, 0x42, 0x0c, 0xd1, 0x15, 0x4f, 0x4f, 0xf0, 0x80, 0x43, 0xdf, 0xf8, 0x4c, 0xc0, 0x00, 0x25, 0xac, 0x42, 0x0b, 0xd1, 0x12, 0x48, 0xfe, 0xf7, 0xb1, 0xfa, 0x00, 0x20, 0x10, 0xe0, 0xa6, 0x18, 0x1e, 0x60, 0x66, 0x19, 0xc6, 0x50, 0x01, 0x34, 0x04, 0x33, 0xe9, 0xe7, 0xc1, 0x58, 0xea, 0x19, 0xc6, 0x18, 0x8a, 0x42, 0x05, 0xd0, 0x33, 0x46, 0x0a, 0x48, 0xfe, 0xf7, 0x9f, 0xfa, 0x01, 0x20, 0xf8, 0xbd, 0x1e, 0x46, 0x05, 0xeb, 0x0c, 0x02, 0x56, 0xf8, 0x04, 0x1b, 0x8a, 0x42, 0xf3, 0xd1, 0x01, 0x35, 0x33, 0x46, 0xdc, 0xe7, 0x00, 0xbf, 0x67, 0x45, 0x23, 0x01, 0x98, 0xba, 0xdc, 0xfe, 0xe4, 0x56, 0x05, 0x00, 0xb2, 0x56, 0x05, 0x00, 0x83, 0x69, 0x10, 0xb5, 0xc3, 0xf3, 0x07, 0x12, 0xc3, 0xf3, 0x01, 0x34, 0x03, 0xf0, 0x0f, 0x01, 0x22, 0x44, 0x0a, 0x44, 0xc1, 0x69, 0xc3, 0xf3, 0x81, 0x33, 0x13, 0x44, 0x0a, 0x0b, 0x02, 0xf0, 0x07, 0x04, 0x07, 0x2c, 0x16, 0xbf, 0x02, 0xf0, 0x0f, 0x02, 0x02, 0x33, 0x9b, 0x18, 0x11, 0xf0, 0x0f, 0x0f, 0x4f, 0xf0, 0x01, 0x02, 0x0c, 0xbf, 0x12, 0x3b, 0x13, 0x3b, 0x02, 0xfa, 0x03, 0xf3, 0xb0, 0xf8, 0x7a, 0x20, 0x52, 0x07, 0x05, 0xd0, 0x89, 0x0f, 0x02, 0x29, 0x1c, 0xbf, 0x03, 0xeb, 0x43, 0x03, 0x9b, 0x08, 0x18, 0x46, 0x10, 0xbd, 0x43, 0x68, 0x10, 0xb5, 0x03, 0x3b, 0x05, 0x2b, 0x1b, 0xd8, 0xdf, 0xe8, 0x03, 0xf0, 0x03, 0x0c, 0x1a, 0x1a, 0x1c, 0x1f, 0x90, 0xf8, 0x64, 0x30, 0x0a, 0x24, 0x5c, 0x43, 0x40, 0xf2, 0xdc, 0x53, 0x08, 0xbf, 0x1c, 0x46, 0x06, 0xe0, 0x90, 0xf8, 0x65, 0x30, 0x0a, 0x24, 0x5c, 0x43, 0x08, 0xbf, 0x4f, 0xf4, 0x96, 0x64, 0x20, 0x46, 0x03, 0xf0, 0x95, 0xff, 0x70, 0xb1, 0x0a, 0x48, 0xfe, 0xf7, 0x3d, 0xfa, 0x00, 0x24, 0x0d, 0xe0, 0x90, 0xf8, 0x66, 0x30, 0xee, 0xe7, 0x90, 0xf8, 0x67, 0x30, 0x0a, 0x24, 0x5c, 0x43, 0x40, 0xf2, 0x4c, 0x43, 0xe2, 0xe7, 0x21, 0x46, 0x03, 0x48, 0xfe, 0xf7, 0x2d, 0xfa, 0x20, 0x46, 0x10, 0xbd, 0x00, 0xbf, 0xfa, 0x56, 0x05, 0x00, 0x10, 0x57, 0x05, 0x00, 0x83, 0x6f, 0xc3, 0xf3, 0x02, 0x53, 0x05, 0x2b, 0x16, 0xd8, 0xdf, 0xe8, 0x03, 0xf0, 0x06, 0x03, 0x0c, 0x0f, 0x15, 0x12, 0x0a, 0x4b, 0x0b, 0x4a, 0x1a, 0x60, 0x0b, 0x4a, 0x13, 0x68, 0x43, 0xf0, 0x80, 0x73, 0x13, 0x60, 0x70, 0x47, 0x06, 0x4b, 0x08, 0x4a, 0xf5, 0xe7, 0x04, 0x4b, 0x08, 0x4a, 0xf2, 0xe7, 0x03, 0x4b, 0x07, 0x4a, 0xef, 0xe7, 0x01, 0x4b, 0x07, 0x4a, 0xec, 0xe7, 0x00, 0xbf, 0x10, 0x11, 0x00, 0x02, 0xcc, 0xcc, 0x86, 0xe4, 0x10, 0x10, 0x00, 0x02, 0x99, 0x99, 0x06, 0xe9, 0x66, 0x66, 0x86, 0xed, 0x00, 0x00, 0x86, 0xf5, 0x33, 0x33, 0x06, 0xf2, 0x38, 0xb5, 0x0f, 0x4c, 0xa0, 0xfb, 0x04, 0x45, 0x0c, 0x68, 0x10, 0x46, 0x24, 0xf4, 0x7f, 0x44, 0x24, 0xf0, 0x03, 0x04, 0x2d, 0x09, 0x6b, 0x1e, 0x44, 0xea, 0x03, 0x24, 0x44, 0xf0, 0x00, 0x43, 0x0c, 0x60, 0x0b, 0x60, 0xff, 0xf7, 0xbe, 0xff, 0x44, 0xf0, 0x60, 0x43, 0x44, 0xf0, 0x20, 0x44, 0x0b, 0x60, 0x0c, 0x60, 0x0b, 0x68, 0xdb, 0x00, 0xfc, 0xd5, 0x18, 0x20, 0x68, 0x43, 0x38, 0xbd, 0xab, 0xaa, 0xaa, 0xaa, 0x95, 0x4a, 0xf8, 0xb5, 0x04, 0x46, 0x95, 0x4e, 0x13, 0x68, 0x95, 0x4d, 0x43, 0xf4, 0x80, 0x73, 0x13, 0x60, 0x00, 0x23, 0x2b, 0x60, 0x32, 0x68, 0x92, 0x4b, 0x42, 0xf0, 0x01, 0x02, 0x32, 0x60, 0x1f, 0x46, 0x32, 0x68, 0x42, 0xf0, 0x20, 0x02, 0x32, 0x60, 0x01, 0x22, 0x2a, 0x60, 0x1a, 0x68, 0xd0, 0x07, 0xfc, 0xd5, 0x8c, 0x4a, 0x13, 0x68, 0xd9, 0x07, 0xfc, 0xd5, 0x4f, 0xf4, 0xfa, 0x70, 0xfd, 0xf7, 0x7a, 0xfc, 0x89, 0x4a, 0x01, 0x20, 0x13, 0x68, 0x43, 0xf0, 0x01, 0x03, 0x13, 0x60, 0xfd, 0xf7, 0x72, 0xfc, 0x00, 0x23, 0x2b, 0x60, 0x33, 0x68, 0x23, 0xf0, 0x20, 0x03, 0x33, 0x60, 0x01, 0x23, 0x2b, 0x60, 0x3b, 0x68, 0xdb, 0x07, 0xfc, 0xd5, 0x81, 0x4a, 0x00, 0x23, 0x2b, 0x60, 0x13, 0x68, 0x23, 0xf0, 0x20, 0x03, 0x13, 0x60, 0x01, 0x23, 0x2b, 0x60, 0x3b, 0x68, 0xd8, 0x07, 0xfc, 0xd5, 0x7c, 0x4a, 0x13, 0x68, 0x03, 0xf0, 0x03, 0x03, 0x01, 0x2b, 0xfa, 0xd1, 0xa3, 0x6f, 0xd9, 0x06, 0x03, 0xd4, 0x4f, 0xf4, 0xfa, 0x70, 0xfd, 0xf7, 0x4e, 0xfc, 0x00, 0x23, 0x2b, 0x60, 0x33, 0x68, 0x23, 0xf0, 0x01, 0x03, 0x33, 0x60, 0x01, 0x23, 0x2b, 0x60, 0x3b, 0x68, 0xda, 0x07, 0xfc, 0xd5, 0x63, 0x68, 0x08, 0x2b, 0x59, 0xd1, 0x23, 0x6a, 0x6f, 0x4a, 0x6f, 0x49, 0x13, 0x60, 0x6f, 0x4b, 0x19, 0x60, 0x19, 0x68, 0x00, 0x29, 0xfc, 0xdb, 0x61, 0x6a, 0x41, 0xf4, 0x80, 0x71, 0x11, 0x60, 0x6a, 0x49, 0x19, 0x60, 0x19, 0x68, 0x00, 0x29, 0xfc, 0xdb, 0xa1, 0x6a, 0x41, 0xf4, 0x00, 0x71, 0x11, 0x60, 0x65, 0x49, 0x19, 0x60, 0x19, 0x68, 0x00, 0x29, 0xfc, 0xdb, 0xe1, 0x6a, 0x41, 0xf4, 0x40, 0x71, 0x11, 0x60, 0x61, 0x49, 0x19, 0x60, 0x19, 0x68, 0x00, 0x29, 0xfc, 0xdb, 0x21, 0x6b, 0x41, 0xf4, 0x80, 0x61, 0x11, 0x60, 0x5c, 0x49, 0x19, 0x60, 0x19, 0x68, 0x00, 0x29, 0xfc, 0xdb, 0xe1, 0x6b, 0x41, 0xf4, 0x30, 0x61, 0x11, 0x60, 0x58, 0x49, 0x19, 0x60, 0x19, 0x68, 0x00, 0x29, 0xfc, 0xdb, 0x21, 0x6c, 0x41, 0xf4, 0x40, 0x61, 0x11, 0x60, 0x53, 0x49, 0x19, 0x60, 0x19, 0x68, 0x00, 0x29, 0xfc, 0xdb, 0x61, 0x6c, 0x41, 0xf4, 0x50, 0x61, 0x11, 0x60, 0x4f, 0x49, 0x19, 0x60, 0x19, 0x68, 0x00, 0x29, 0xfc, 0xdb, 0xa1, 0x6c, 0x41, 0xf4, 0x60, 0x61, 0x11, 0x60, 0x4a, 0x49, 0x19, 0x60, 0x19, 0x68, 0x00, 0x29, 0xfc, 0xdb, 0x61, 0x6d, 0x41, 0xf4, 0xb0, 0x51, 0x11, 0x60, 0x46, 0x4a, 0x1a, 0x60, 0x1a, 0x68, 0x00, 0x2a, 0xfc, 0xdb, 0x63, 0x68, 0x07, 0x2b, 0x25, 0xd1, 0x63, 0x6a, 0x40, 0x4a, 0x41, 0x49, 0x43, 0xf4, 0x80, 0x73, 0x13, 0x60, 0x40, 0x4b, 0x19, 0x60, 0x19, 0x68, 0x00, 0x29, 0xfc, 0xdb, 0xa1, 0x6a, 0x41, 0xf4, 0x00, 0x71, 0x11, 0x60, 0x3a, 0x49, 0x19, 0x60, 0x19, 0x68, 0x00, 0x29, 0xfc, 0xdb, 0xe1, 0x6a, 0x41, 0xf4, 0x40, 0x71, 0x11, 0x60, 0x36, 0x49, 0x19, 0x60, 0x19, 0x68, 0x00, 0x29, 0xfc, 0xdb, 0xe1, 0x6b, 0x41, 0xf4, 0x30, 0x61, 0x11, 0x60, 0x31, 0x4a, 0x1a, 0x60, 0x1a, 0x68, 0x00, 0x2a, 0xfc, 0xdb, 0x63, 0x68, 0x04, 0x2b, 0x40, 0xf0, 0xc5, 0x80, 0x2f, 0x4a, 0x10, 0x46, 0x15, 0x68, 0x15, 0xf0, 0x01, 0x05, 0xfb, 0xd1, 0x23, 0x6a, 0xf0, 0x22, 0x28, 0x49, 0x01, 0x26, 0x0b, 0x60, 0x28, 0x4b, 0x1a, 0x60, 0x29, 0x4a, 0x16, 0x60, 0x25, 0x4e, 0x1e, 0x60, 0x15, 0x60, 0x1d, 0x68, 0x00, 0x2d, 0xfc, 0xdb, 0x05, 0x68, 0x15, 0xf0, 0x01, 0x05, 0xfb, 0xd1, 0x66, 0x6a, 0x0e, 0x60, 0x41, 0xf2, 0xf0, 0x06, 0x1e, 0x60, 0x01, 0x26, 0x16, 0x60, 0x21, 0x4e, 0x1e, 0x60, 0x15, 0x60, 0x1d, 0x68, 0x00, 0x2d, 0xfc, 0xdb, 0x05, 0x68, 0x15, 0xf0, 0x01, 0x05, 0xfb, 0xd1, 0xa6, 0x6a, 0x0e, 0x60, 0x42, 0xf2, 0xf0, 0x06, 0x1e, 0x60, 0x01, 0x26, 0x16, 0x60, 0x19, 0x4e, 0x1e, 0x60, 0x15, 0x60, 0x1d, 0x68, 0x00, 0x2d, 0xfc, 0xdb, 0x05, 0x68, 0x15, 0xf0, 0x01, 0x05, 0xfb, 0xd1, 0xe6, 0x6a, 0x0e, 0x60, 0x43, 0xf2, 0xf0, 0x06, 0x1e, 0x60, 0x01, 0x26, 0x16, 0x60, 0x12, 0x4e, 0x1e, 0x60, 0x15, 0x60, 0x1d, 0x68, 0x00, 0x2d, 0xfc, 0xdb, 0x1f, 0xe0, 0x20, 0x00, 0x12, 0x03, 0xb0, 0x01, 0x13, 0x03, 0x20, 0x03, 0x13, 0x03, 0x24, 0x03, 0x13, 0x03, 0xbc, 0x01, 0x13, 0x03, 0x50, 0x02, 0x01, 0x07, 0x30, 0x00, 0x13, 0x03, 0x04, 0x00, 0x13, 0x03, 0x14, 0x00, 0x13, 0x03, 0xf0, 0x00, 0x00, 0x80, 0x10, 0x00, 0x13, 0x03, 0x18, 0x00, 0x13, 0x03, 0x04, 0x03, 0x13, 0x03, 0xf0, 0x10, 0x00, 0x80, 0xf0, 0x20, 0x00, 0x80, 0xf0, 0x30, 0x00, 0x80, 0x05, 0x68, 0x15, 0xf0, 0x01, 0x05, 0xfb, 0xd1, 0x26, 0x6b, 0x0e, 0x60, 0x44, 0xf2, 0xf0, 0x06, 0x1e, 0x60, 0x01, 0x26, 0x16, 0x60, 0x41, 0x4e, 0x1e, 0x60, 0x15, 0x60, 0x1d, 0x68, 0x00, 0x2d, 0xfc, 0xdb, 0x05, 0x68, 0x15, 0xf0, 0x01, 0x05, 0xfb, 0xd1, 0x66, 0x6b, 0x0e, 0x60, 0x45, 0xf2, 0xf0, 0x06, 0x1e, 0x60, 0x01, 0x26, 0x16, 0x60, 0x39, 0x4e, 0x1e, 0x60, 0x15, 0x60, 0x1d, 0x68, 0x00, 0x2d, 0xfc, 0xdb, 0x05, 0x68, 0x15, 0xf0, 0x01, 0x05, 0xfb, 0xd1, 0xa6, 0x6b, 0x35, 0x4f, 0x46, 0xf0, 0x80, 0x06, 0x0e, 0x60, 0x46, 0xf2, 0xf0, 0x06, 0x1e, 0x60, 0x01, 0x26, 0x16, 0x60, 0x1f, 0x60, 0x15, 0x60, 0x1d, 0x68, 0x00, 0x2d, 0xfc, 0xdb, 0x05, 0x68, 0x15, 0xf0, 0x01, 0x05, 0xfb, 0xd1, 0xa6, 0x6b, 0x46, 0xf0, 0x80, 0x06, 0x0e, 0x60, 0x46, 0xf2, 0xf0, 0x06, 0x1e, 0x60, 0x01, 0x26, 0x16, 0x60, 0x1f, 0x60, 0x15, 0x60, 0x1d, 0x68, 0x00, 0x2d, 0xfc, 0xdb, 0x05, 0x68, 0x15, 0xf0, 0x01, 0x05, 0xfb, 0xd1, 0xa6, 0x6b, 0x26, 0xf0, 0x80, 0x06, 0x0e, 0x60, 0x46, 0xf2, 0xf0, 0x01, 0x19, 0x60, 0x01, 0x21, 0x11, 0x60, 0x1f, 0x60, 0x15, 0x60, 0x1a, 0x68, 0x00, 0x2a, 0xfc, 0xdb, 0x03, 0x68, 0xdb, 0x07, 0xfc, 0xd4, 0x63, 0x68, 0x03, 0x2b, 0x2c, 0xd1, 0x23, 0x6a, 0xf0, 0x21, 0x19, 0x4a, 0x13, 0x60, 0x19, 0x4b, 0x19, 0x60, 0x01, 0xf1, 0x00, 0x41, 0x19, 0x60, 0x19, 0x68, 0x00, 0x29, 0xfc, 0xdb, 0x61, 0x6a, 0x11, 0x60, 0x41, 0xf2, 0xf0, 0x01, 0x19, 0x60, 0x01, 0xf1, 0x00, 0x41, 0x19, 0x60, 0x19, 0x68, 0x00, 0x29, 0xfc, 0xdb, 0xa1, 0x6a, 0x11, 0x60, 0x42, 0xf2, 0xf0, 0x01, 0x19, 0x60, 0x01, 0xf1, 0x00, 0x41, 0x19, 0x60, 0x19, 0x68, 0x00, 0x29, 0xfc, 0xdb, 0xe1, 0x6a, 0x11, 0x60, 0x43, 0xf2, 0xf0, 0x02, 0x1a, 0x60, 0x02, 0xf1, 0x00, 0x42, 0x1a, 0x60, 0x1a, 0x68, 0x00, 0x2a, 0xfc, 0xdb, 0xf8, 0xbd, 0x00, 0xbf, 0xf0, 0x40, 0x00, 0x80, 0xf0, 0x50, 0x00, 0x80, 0xf0, 0x60, 0x00, 0x80, 0x14, 0x00, 0x13, 0x03, 0x10, 0x00, 0x13, 0x03, 0x38, 0xb5, 0x43, 0x68, 0x03, 0x3b, 0x05, 0x2b, 0x5b, 0xd8, 0xdf, 0xe8, 0x03, 0xf0, 0x03, 0x4f, 0x5a, 0x5a, 0x52, 0x55, 0x83, 0x6e, 0x13, 0xf0, 0xff, 0x0f, 0x54, 0xd0, 0x5b, 0x00, 0x03, 0xf4, 0xff, 0x73, 0x2b, 0x49, 0xdb, 0x05, 0x2b, 0x4c, 0x0a, 0x20, 0x2b, 0x4d, 0x0a, 0x68, 0xc2, 0xf3, 0x16, 0x02, 0x1a, 0x43, 0x22, 0xf0, 0x60, 0x02, 0x42, 0xf0, 0x40, 0x02, 0x0a, 0x60, 0x01, 0xf5, 0xc0, 0x71, 0xd1, 0xf8, 0x80, 0x21, 0xc2, 0xf3, 0x16, 0x02, 0x1a, 0x43, 0x22, 0xf0, 0x60, 0x02, 0x42, 0xf0, 0x40, 0x02, 0xc1, 0xf8, 0x80, 0x21, 0x0a, 0x68, 0xc2, 0xf3, 0x16, 0x02, 0x1a, 0x43, 0x22, 0xf0, 0x60, 0x02, 0x42, 0xf0, 0x40, 0x02, 0x0a, 0x60, 0xd1, 0xf8, 0x00, 0x23, 0xc2, 0xf3, 0x16, 0x02, 0x13, 0x43, 0x23, 0xf0, 0x60, 0x03, 0x43, 0xf0, 0x40, 0x03, 0xc1, 0xf8, 0x00, 0x33, 0x23, 0x68, 0x43, 0xf0, 0x00, 0x63, 0x23, 0x60, 0x2b, 0x68, 0x43, 0xf0, 0x80, 0x03, 0x2b, 0x60, 0xfd, 0xf7, 0x6e, 0xfa, 0x2b, 0x68, 0x0a, 0x20, 0x23, 0xf0, 0x80, 0x03, 0x2b, 0x60, 0xfd, 0xf7, 0x67, 0xfa, 0x23, 0x68, 0x23, 0xf0, 0x00, 0x63, 0x23, 0x60, 0x38, 0xbd, 0x83, 0x6e, 0x1b, 0x0a, 0xb1, 0xe7, 0xb0, 0xf8, 0x6a, 0x30, 0xae, 0xe7, 0x90, 0xf8, 0x6b, 0x30, 0x2b, 0xb1, 0x5b, 0x00, 0xaf, 0xe7, 0x00, 0x23, 0xad, 0xe7, 0x80, 0x23, 0xab, 0xe7, 0x33, 0x23, 0xa9, 0xe7, 0x00, 0xbf, 0x00, 0x03, 0x14, 0x03, 0x84, 0x00, 0x14, 0x03, 0x94, 0x00, 0x14, 0x03, 0xc3, 0x68, 0x80, 0x4a, 0x30, 0xb5, 0x03, 0xf0, 0x1f, 0x04, 0x23, 0x04, 0x11, 0x68, 0x43, 0xea, 0x04, 0x63, 0x21, 0xf0, 0xf8, 0x51, 0x21, 0xf4, 0xf8, 0x11, 0x0b, 0x43, 0x13, 0x60, 0x43, 0x68, 0x08, 0x2b, 0x11, 0xd1, 0xc3, 0x6d, 0x13, 0xf0, 0x1f, 0x3f, 0x1b, 0xbf, 0x11, 0x68, 0x1b, 0x04, 0x13, 0x68, 0x03, 0xf4, 0xf8, 0x13, 0x15, 0xbf, 0x21, 0xf4, 0xf8, 0x11, 0x23, 0xf4, 0xf8, 0x13, 0x0b, 0x43, 0x43, 0xf4, 0x80, 0x23, 0x13, 0x60, 0xc3, 0x68, 0x6f, 0x4a, 0xc3, 0xf3, 0x04, 0x24, 0x11, 0x68, 0x23, 0x04, 0x43, 0xea, 0x04, 0x63, 0x21, 0xf0, 0xf8, 0x51, 0x21, 0xf4, 0xf8, 0x11, 0x0b, 0x43, 0x13, 0x60, 0x43, 0x68, 0x08, 0x2b, 0x11, 0xd1, 0xc3, 0x6d, 0x13, 0xf0, 0x1f, 0x3f, 0x1b, 0xbf, 0x11, 0x68, 0x1b, 0x02, 0x13, 0x68, 0x03, 0xf4, 0xf8, 0x13, 0x15, 0xbf, 0x21, 0xf4, 0xf8, 0x11, 0x23, 0xf4, 0xf8, 0x13, 0x0b, 0x43, 0x43, 0xf4, 0x80, 0x23, 0x13, 0x60, 0xc2, 0x89, 0x5e, 0x4b, 0x02, 0xf0, 0x1f, 0x04, 0x19, 0x68, 0x22, 0x04, 0x42, 0xea, 0x04, 0x62, 0x21, 0xf0, 0xf8, 0x51, 0x21, 0xf4, 0xf8, 0x11, 0x0a, 0x43, 0x1a, 0x60, 0x42, 0x68, 0x08, 0x2a, 0x10, 0xd1, 0xc2, 0x6d, 0x12, 0xf0, 0x1f, 0x3f, 0x1b, 0xbf, 0x19, 0x68, 0x02, 0xf4, 0xf8, 0x12, 0x1a, 0x68, 0x21, 0xf4, 0xf8, 0x11, 0x0a, 0xbf, 0x22, 0xf4, 0xf8, 0x12, 0x0a, 0x43, 0x42, 0xf4, 0x80, 0x22, 0x1a, 0x60, 0xc3, 0x7b, 0x4e, 0x4a, 0x03, 0xf0, 0x1f, 0x04, 0x11, 0x68, 0x23, 0x04, 0x43, 0xea, 0x04, 0x63, 0x21, 0xf0, 0xf8, 0x51, 0x21, 0xf4, 0xf8, 0x11, 0x0b, 0x43, 0x13, 0x60, 0x43, 0x68, 0x08, 0x2b, 0x11, 0xd1, 0xc3, 0x6d, 0x13, 0xf0, 0x1f, 0x3f, 0x1b, 0xbf, 0x11, 0x68, 0x1b, 0x0a, 0x13, 0x68, 0x03, 0xf4, 0xf8, 0x13, 0x15, 0xbf, 0x21, 0xf4, 0xf8, 0x11, 0x23, 0xf4, 0xf8, 0x13, 0x0b, 0x43, 0x43, 0xf4, 0x80, 0x23, 0x13, 0x60, 0x3e, 0x49, 0x03, 0x69, 0x3e, 0x4d, 0x0a, 0x68, 0x03, 0xf0, 0x1f, 0x04, 0x23, 0x04, 0x22, 0xf0, 0xf8, 0x52, 0x43, 0xea, 0x04, 0x63, 0x22, 0xf4, 0xf8, 0x12, 0x13, 0x43, 0x0b, 0x60, 0x02, 0x69, 0xc2, 0xf3, 0x04, 0x24, 0x0a, 0x68, 0x2a, 0x40, 0x22, 0x43, 0x42, 0xea, 0x04, 0x22, 0x0a, 0x60, 0x2e, 0x4a, 0x81, 0x68, 0x13, 0x68, 0x01, 0xf0, 0x1f, 0x01, 0x2b, 0x40, 0x0b, 0x43, 0x43, 0xea, 0x01, 0x23, 0x41, 0x68, 0x04, 0x29, 0x01, 0xd0, 0x07, 0x29, 0x01, 0xd1, 0x23, 0xf4, 0xf8, 0x53, 0x08, 0x29, 0x08, 0xbf, 0x23, 0xf0, 0x1f, 0x03, 0x13, 0x60, 0x25, 0x4a, 0x83, 0x68, 0xc3, 0xf3, 0x04, 0x21, 0x13, 0x68, 0x23, 0xf4, 0xf8, 0x53, 0x23, 0xf0, 0x1f, 0x03, 0x0b, 0x43, 0x43, 0xea, 0x01, 0x23, 0x41, 0x68, 0x04, 0x29, 0x01, 0xd0, 0x07, 0x29, 0x01, 0xd1, 0x23, 0xf4, 0xf8, 0x53, 0x08, 0x29, 0x08, 0xbf, 0x23, 0xf0, 0x1f, 0x03, 0x13, 0x60, 0x1a, 0x4a, 0x43, 0x89, 0x03, 0xf0, 0x1f, 0x01, 0x13, 0x68, 0x23, 0xf4, 0xf8, 0x53, 0x23, 0xf0, 0x1f, 0x03, 0x0b, 0x43, 0x43, 0xea, 0x01, 0x23, 0x41, 0x68, 0x04, 0x29, 0x01, 0xd0, 0x07, 0x29, 0x01, 0xd1, 0x23, 0xf4, 0xf8, 0x53, 0x08, 0x29, 0x08, 0xbf, 0x23, 0xf0, 0x1f, 0x03, 0x13, 0x60, 0x0f, 0x4a, 0xc3, 0x7a, 0x03, 0xf0, 0x1f, 0x01, 0x13, 0x68, 0x23, 0xf4, 0xf8, 0x53, 0x23, 0xf0, 0x1f, 0x03, 0x0b, 0x43, 0x43, 0xea, 0x01, 0x23, 0x41, 0x68, 0x04, 0x29, 0x01, 0xd0, 0x07, 0x29, 0x01, 0xd1, 0x23, 0xf4, 0xf8, 0x53, 0x08, 0x29, 0x08, 0xbf, 0x23, 0xf0, 0x1f, 0x03, 0x13, 0x60, 0x30, 0xbd, 0x04, 0x03, 0x14, 0x03, 0x84, 0x04, 0x14, 0x03, 0x04, 0x06, 0x14, 0x03, 0x84, 0x07, 0x14, 0x03, 0xf4, 0x00, 0x14, 0x03, 0xe0, 0xe0, 0xff, 0xff, 0xc2, 0x6e, 0x10, 0xb5, 0x41, 0x68, 0x00, 0x2a, 0x17, 0xda, 0x83, 0x6d, 0x3d, 0x48, 0x02, 0x68, 0x42, 0xf4, 0x80, 0x22, 0x02, 0x60, 0x82, 0x6a, 0x42, 0xf4, 0x80, 0x52, 0x82, 0x62, 0x50, 0xf8, 0x3c, 0x2c, 0x22, 0xf0, 0x40, 0x42, 0x40, 0xf8, 0x3c, 0x2c, 0xca, 0x1e, 0x05, 0x2a, 0x32, 0xd8, 0xdf, 0xe8, 0x02, 0xf0, 0x17, 0x17, 0x31, 0x31, 0x17, 0x46, 0x53, 0x01, 0x50, 0x02, 0x03, 0xf4, 0xf0, 0x53, 0x00, 0xf4, 0xf0, 0x10, 0x03, 0x43, 0x50, 0x00, 0x00, 0xf0, 0x1e, 0x00, 0x03, 0x43, 0x50, 0x03, 0x52, 0x0f, 0x00, 0xf0, 0xf0, 0x50, 0x43, 0xea, 0x00, 0x03, 0x18, 0xbf, 0x5b, 0x00, 0xd4, 0xe7, 0xc3, 0xf3, 0x07, 0x21, 0x28, 0x48, 0x0a, 0x04, 0x42, 0xea, 0x01, 0x22, 0x0a, 0x43, 0x42, 0xea, 0x01, 0x62, 0x25, 0x49, 0x0a, 0x60, 0x4a, 0x60, 0x8a, 0x60, 0xca, 0x60, 0x0a, 0x61, 0x4a, 0x61, 0x8a, 0x61, 0x02, 0x60, 0xd8, 0xb2, 0x8a, 0x69, 0x03, 0x04, 0x43, 0xea, 0x00, 0x63, 0x92, 0xb2, 0x13, 0x43, 0x8b, 0x61, 0x1e, 0x4b, 0x1a, 0x68, 0x42, 0xf0, 0x01, 0x02, 0x1a, 0x60, 0x1a, 0x68, 0x22, 0xf0, 0x01, 0x02, 0x1a, 0x60, 0x1a, 0x4a, 0x13, 0x68, 0x23, 0xf4, 0x80, 0x53, 0x13, 0x60, 0x52, 0xf8, 0x28, 0x3c, 0x23, 0xf4, 0x80, 0x23, 0x42, 0xf8, 0x28, 0x3c, 0x10, 0xbd, 0xc3, 0xf3, 0x07, 0x21, 0x14, 0x48, 0x0a, 0x04, 0x0f, 0x4c, 0xdb, 0xb2, 0x42, 0xea, 0x01, 0x22, 0x0a, 0x43, 0x42, 0xea, 0x01, 0x62, 0x0d, 0x49, 0x0a, 0x60, 0x4a, 0x60, 0x8a, 0x60, 0x02, 0x60, 0x0a, 0x61, 0x4a, 0x61, 0x8a, 0x61, 0x22, 0x60, 0x02, 0x68, 0x12, 0x0c, 0x12, 0x04, 0x1a, 0x43, 0x42, 0xea, 0x03, 0x22, 0x02, 0x60, 0x1a, 0x04, 0x88, 0x69, 0x42, 0xea, 0x03, 0x63, 0x80, 0xb2, 0x03, 0x43, 0xc7, 0xe7, 0x84, 0x00, 0x14, 0x03, 0x20, 0x01, 0x14, 0x03, 0x04, 0x01, 0x14, 0x03, 0x38, 0x00, 0x14, 0x03, 0xac, 0x00, 0x14, 0x03, 0x10, 0x01, 0x14, 0x03, 0xf0, 0xb5, 0xc1, 0xb0, 0x04, 0x46, 0x80, 0x22, 0x00, 0x21, 0x68, 0x46, 0x20, 0xad, 0xfd, 0xf7, 0xa3, 0xfc, 0x00, 0x21, 0x80, 0x22, 0x28, 0x46, 0xfd, 0xf7, 0x9e, 0xfc, 0xe1, 0x6e, 0x11, 0xf0, 0x00, 0x63, 0x00, 0xf0, 0xf9, 0x84, 0x04, 0xf1, 0x80, 0x02, 0x00, 0x23, 0x92, 0xf8, 0x20, 0x60, 0x01, 0x32, 0x12, 0xf8, 0x01, 0x0c, 0x4d, 0xf8, 0x23, 0x60, 0x45, 0xf8, 0x23, 0x00, 0x01, 0x33, 0x20, 0x2b, 0xf3, 0xd1, 0x4a, 0x03, 0x40, 0xf1, 0x63, 0x82, 0xba, 0x49, 0xba, 0x4a, 0x0b, 0x68, 0x43, 0xf4, 0x80, 0x23, 0x0b, 0x60, 0x13, 0x68, 0x23, 0xf0, 0x03, 0x03, 0x13, 0x60, 0x52, 0xf8, 0x9c, 0x3c, 0x43, 0xf0, 0x80, 0x03, 0x42, 0xf8, 0x9c, 0x3c, 0x52, 0xf8, 0x5c, 0x3c, 0x23, 0xf0, 0x80, 0x53, 0x42, 0xf8, 0x5c, 0x3c, 0x00, 0x98, 0xb0, 0x4b, 0x18, 0x60, 0xdd, 0xe9, 0x01, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x03, 0x98, 0x03, 0x43, 0x00, 0x98, 0x43, 0xea, 0x00, 0x63, 0xab, 0x48, 0x03, 0x60, 0xdd, 0xe9, 0x05, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x07, 0x98, 0x03, 0x43, 0x04, 0x98, 0x43, 0xea, 0x00, 0x63, 0xa6, 0x48, 0x03, 0x60, 0x00, 0x98, 0xa6, 0x4b, 0x18, 0x60, 0xdd, 0xe9, 0x01, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x03, 0x98, 0x03, 0x43, 0x00, 0x98, 0x43, 0xea, 0x00, 0x63, 0xa1, 0x48, 0x03, 0x60, 0xdd, 0xe9, 0x05, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x07, 0x98, 0x03, 0x43, 0x04, 0x98, 0x43, 0xea, 0x00, 0x63, 0x9c, 0x48, 0x03, 0x60, 0xd0, 0xf8, 0xc4, 0x30, 0x00, 0x9d, 0x23, 0xf4, 0x7f, 0x43, 0x43, 0xea, 0x05, 0x23, 0xc0, 0xf8, 0xc4, 0x30, 0xdd, 0xe9, 0x01, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x03, 0x98, 0x03, 0x43, 0x00, 0x98, 0x43, 0xea, 0x00, 0x63, 0x92, 0x48, 0x03, 0x60, 0xdd, 0xe9, 0x05, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x07, 0x98, 0x03, 0x43, 0x04, 0x98, 0x43, 0xea, 0x00, 0x63, 0x8d, 0x48, 0x03, 0x60, 0x00, 0x98, 0x8d, 0x4b, 0x18, 0x60, 0xdd, 0xe9, 0x01, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x03, 0x98, 0x03, 0x43, 0x00, 0x98, 0x43, 0xea, 0x00, 0x63, 0x88, 0x48, 0x03, 0x60, 0xdd, 0xe9, 0x05, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x07, 0x98, 0x03, 0x43, 0x04, 0x98, 0x43, 0xea, 0x00, 0x63, 0x83, 0x48, 0x03, 0x60, 0x20, 0x7d, 0x03, 0x06, 0x43, 0xea, 0x00, 0x23, 0x81, 0x48, 0x03, 0x60, 0x03, 0x62, 0xc0, 0xf8, 0xdc, 0x30, 0xc0, 0xf8, 0xfc, 0x30, 0x08, 0x98, 0x7e, 0x4b, 0x18, 0x60, 0xdd, 0xe9, 0x09, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x0b, 0x98, 0x03, 0x43, 0x08, 0x98, 0x43, 0xea, 0x00, 0x63, 0x79, 0x48, 0x03, 0x60, 0xdd, 0xe9, 0x0d, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x0f, 0x98, 0x03, 0x43, 0x0c, 0x98, 0x43, 0xea, 0x00, 0x63, 0x74, 0x48, 0x03, 0x60, 0x08, 0x98, 0x73, 0x4b, 0x18, 0x60, 0xdd, 0xe9, 0x09, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x0b, 0x98, 0x03, 0x43, 0x08, 0x98, 0x43, 0xea, 0x00, 0x63, 0x6e, 0x48, 0x03, 0x60, 0xdd, 0xe9, 0x0d, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x0f, 0x98, 0x03, 0x43, 0x0c, 0x98, 0x43, 0xea, 0x00, 0x63, 0x69, 0x48, 0x03, 0x60, 0x08, 0x9d, 0xd0, 0xf8, 0xc4, 0x30, 0x23, 0xf4, 0x7f, 0x43, 0x43, 0xea, 0x05, 0x23, 0xc0, 0xf8, 0xc4, 0x30, 0xdd, 0xe9, 0x09, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x0b, 0x98, 0x03, 0x43, 0x08, 0x98, 0x43, 0xea, 0x00, 0x63, 0x60, 0x48, 0x03, 0x60, 0xdd, 0xe9, 0x0d, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x0f, 0x98, 0x03, 0x43, 0x0c, 0x98, 0x43, 0xea, 0x00, 0x63, 0x5b, 0x48, 0x03, 0x60, 0x08, 0x98, 0x5a, 0x4b, 0x18, 0x60, 0xdd, 0xe9, 0x09, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x0b, 0x98, 0x03, 0x43, 0x08, 0x98, 0x43, 0xea, 0x00, 0x63, 0x55, 0x48, 0x03, 0x60, 0xdd, 0xe9, 0x0d, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x0f, 0x98, 0x03, 0x43, 0x0c, 0x98, 0x43, 0xea, 0x00, 0x63, 0x50, 0x48, 0x03, 0x60, 0x60, 0x7d, 0x03, 0x06, 0x43, 0xea, 0x00, 0x23, 0x4e, 0x48, 0x03, 0x60, 0x03, 0x62, 0xc0, 0xf8, 0xdc, 0x30, 0xc0, 0xf8, 0xfc, 0x30, 0x10, 0x98, 0x4b, 0x4b, 0x18, 0x60, 0xdd, 0xe9, 0x11, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x13, 0x98, 0x03, 0x43, 0x10, 0x98, 0x43, 0xea, 0x00, 0x63, 0x46, 0x48, 0x03, 0x60, 0xdd, 0xe9, 0x15, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x17, 0x98, 0x03, 0x43, 0x14, 0x98, 0x43, 0xea, 0x00, 0x63, 0x41, 0x48, 0x03, 0x60, 0x10, 0x98, 0x41, 0x4b, 0x18, 0x60, 0xdd, 0xe9, 0x11, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x13, 0x98, 0x03, 0x43, 0x10, 0x98, 0x43, 0xea, 0x00, 0x63, 0x3c, 0x48, 0x03, 0x60, 0xdd, 0xe9, 0x15, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x17, 0x98, 0x03, 0x43, 0x14, 0x98, 0x43, 0xea, 0x00, 0x63, 0x37, 0x48, 0x03, 0x60, 0x10, 0x9d, 0xd0, 0xf8, 0xc4, 0x30, 0x23, 0xf4, 0x7f, 0x43, 0x43, 0xea, 0x05, 0x23, 0xc0, 0xf8, 0xc4, 0x30, 0xdd, 0xe9, 0x11, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x13, 0x98, 0x03, 0x43, 0x10, 0x98, 0x43, 0xea, 0x00, 0x63, 0x2d, 0x48, 0x03, 0x60, 0xdd, 0xe9, 0x15, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x17, 0x98, 0x03, 0x43, 0x14, 0x98, 0x43, 0xea, 0x00, 0x63, 0x28, 0x48, 0x03, 0x60, 0x10, 0x98, 0x28, 0x4b, 0x18, 0x60, 0xdd, 0xe9, 0x11, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x13, 0x98, 0x03, 0x43, 0x10, 0x98, 0x43, 0xea, 0x00, 0x63, 0x45, 0xe0, 0x84, 0x00, 0x14, 0x03, 0xa0, 0x00, 0x14, 0x03, 0x20, 0x03, 0x14, 0x03, 0x24, 0x03, 0x14, 0x03, 0x28, 0x03, 0x14, 0x03, 0x40, 0x03, 0x14, 0x03, 0x44, 0x03, 0x14, 0x03, 0x48, 0x03, 0x14, 0x03, 0x00, 0x04, 0x14, 0x03, 0x04, 0x04, 0x14, 0x03, 0x1c, 0x04, 0x14, 0x03, 0x20, 0x04, 0x14, 0x03, 0x24, 0x04, 0x14, 0x03, 0x2c, 0x03, 0x14, 0x03, 0xa0, 0x04, 0x14, 0x03, 0xa4, 0x04, 0x14, 0x03, 0xa8, 0x04, 0x14, 0x03, 0xc0, 0x04, 0x14, 0x03, 0xc4, 0x04, 0x14, 0x03, 0xc8, 0x04, 0x14, 0x03, 0x80, 0x05, 0x14, 0x03, 0x84, 0x05, 0x14, 0x03, 0x9c, 0x05, 0x14, 0x03, 0xa0, 0x05, 0x14, 0x03, 0xa4, 0x05, 0x14, 0x03, 0xac, 0x04, 0x14, 0x03, 0x20, 0x06, 0x14, 0x03, 0x24, 0x06, 0x14, 0x03, 0x28, 0x06, 0x14, 0x03, 0x40, 0x06, 0x14, 0x03, 0x44, 0x06, 0x14, 0x03, 0x48, 0x06, 0x14, 0x03, 0x00, 0x07, 0x14, 0x03, 0x04, 0x07, 0x14, 0x03, 0x1c, 0x07, 0x14, 0x03, 0xb2, 0x48, 0x03, 0x60, 0xdd, 0xe9, 0x15, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x17, 0x98, 0x03, 0x43, 0x14, 0x98, 0x43, 0xea, 0x00, 0x63, 0xad, 0x48, 0x03, 0x60, 0xa0, 0x7d, 0x03, 0x06, 0x43, 0xea, 0x00, 0x23, 0xab, 0x48, 0x03, 0x60, 0x03, 0x62, 0xc0, 0xf8, 0xdc, 0x30, 0xc0, 0xf8, 0xfc, 0x30, 0x18, 0x98, 0xa8, 0x4b, 0x18, 0x60, 0xdd, 0xe9, 0x19, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x1b, 0x98, 0x03, 0x43, 0x18, 0x98, 0x43, 0xea, 0x00, 0x63, 0xa3, 0x48, 0x03, 0x60, 0xdd, 0xe9, 0x1d, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x1f, 0x98, 0x03, 0x43, 0x1c, 0x98, 0x43, 0xea, 0x00, 0x63, 0x9e, 0x48, 0x03, 0x60, 0x18, 0x98, 0x9e, 0x4b, 0x18, 0x60, 0xdd, 0xe9, 0x19, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x1b, 0x98, 0x03, 0x43, 0x18, 0x98, 0x43, 0xea, 0x00, 0x63, 0x99, 0x48, 0x03, 0x60, 0xdd, 0xe9, 0x1d, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x1f, 0x98, 0x03, 0x43, 0x1c, 0x98, 0x43, 0xea, 0x00, 0x63, 0x94, 0x48, 0x03, 0x60, 0x18, 0x9d, 0xd0, 0xf8, 0xc4, 0x30, 0x23, 0xf4, 0x7f, 0x43, 0x43, 0xea, 0x05, 0x23, 0xc0, 0xf8, 0xc4, 0x30, 0xdd, 0xe9, 0x19, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x1b, 0x98, 0x03, 0x43, 0x18, 0x98, 0x43, 0xea, 0x00, 0x63, 0x8a, 0x48, 0x03, 0x60, 0xdd, 0xe9, 0x1d, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x1f, 0x98, 0x03, 0x43, 0x1c, 0x98, 0x43, 0xea, 0x00, 0x63, 0x85, 0x48, 0x03, 0x60, 0x18, 0x98, 0x85, 0x4b, 0x18, 0x60, 0xdd, 0xe9, 0x19, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x1b, 0x98, 0x03, 0x43, 0x18, 0x98, 0x43, 0xea, 0x00, 0x63, 0x80, 0x48, 0x03, 0x60, 0xdd, 0xe9, 0x1d, 0x30, 0x1b, 0x04, 0x43, 0xea, 0x00, 0x23, 0x1f, 0x98, 0x03, 0x43, 0x1c, 0x98, 0x43, 0xea, 0x00, 0x63, 0x7b, 0x48, 0x03, 0x60, 0x63, 0x69, 0x18, 0x0e, 0x03, 0xf0, 0x7f, 0x43, 0x43, 0xea, 0x00, 0x23, 0x78, 0x48, 0x03, 0x60, 0x03, 0x62, 0xc0, 0xf8, 0xdc, 0x30, 0xc0, 0xf8, 0xfc, 0x30, 0x52, 0xf8, 0x5c, 0x3c, 0x43, 0xf0, 0x80, 0x53, 0x42, 0xf8, 0x5c, 0x3c, 0x52, 0xf8, 0x5c, 0x3c, 0x23, 0xf0, 0x80, 0x53, 0x42, 0xf8, 0x5c, 0x3c, 0x0b, 0x68, 0x23, 0xf4, 0x80, 0x23, 0x0b, 0x60, 0xe3, 0x6e, 0x9b, 0x03, 0x40, 0xf1, 0x4b, 0x82, 0x6b, 0x4a, 0x6c, 0x49, 0x13, 0x68, 0x43, 0xf4, 0x80, 0x23, 0x13, 0x60, 0x20, 0x9b, 0x1b, 0x02, 0x0b, 0x60, 0x21, 0x9b, 0x22, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x23, 0x99, 0x0b, 0x43, 0x20, 0x99, 0x43, 0xea, 0x01, 0x63, 0x64, 0x49, 0x0b, 0x60, 0x25, 0x9b, 0x26, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x27, 0x99, 0x0b, 0x43, 0x24, 0x99, 0x43, 0xea, 0x01, 0x63, 0x5f, 0x49, 0x0b, 0x60, 0x20, 0x9b, 0x1b, 0x02, 0x8b, 0x61, 0x21, 0x9b, 0x22, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x23, 0x99, 0x0b, 0x43, 0x20, 0x99, 0x43, 0xea, 0x01, 0x63, 0x58, 0x49, 0x0b, 0x60, 0x25, 0x9b, 0x26, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x27, 0x99, 0x0b, 0x43, 0x24, 0x99, 0x43, 0xea, 0x01, 0x63, 0x53, 0x49, 0x0b, 0x60, 0xd1, 0xf8, 0xb4, 0x30, 0x20, 0x98, 0x23, 0xf0, 0xff, 0x03, 0x03, 0x43, 0xc1, 0xf8, 0xb4, 0x30, 0x21, 0x9b, 0x22, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x23, 0x99, 0x0b, 0x43, 0x20, 0x99, 0x43, 0xea, 0x01, 0x63, 0x4a, 0x49, 0x0b, 0x60, 0x25, 0x9b, 0x26, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x27, 0x99, 0x0b, 0x43, 0x24, 0x99, 0x43, 0xea, 0x01, 0x63, 0x45, 0x49, 0x0b, 0x60, 0x20, 0x9b, 0x1b, 0x02, 0x8b, 0x61, 0x21, 0x9b, 0x22, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x23, 0x99, 0x0b, 0x43, 0x20, 0x99, 0x43, 0xea, 0x01, 0x63, 0x3f, 0x49, 0x0b, 0x60, 0x25, 0x9b, 0x26, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x27, 0x99, 0x0b, 0x43, 0x24, 0x99, 0x43, 0xea, 0x01, 0x63, 0x3a, 0x49, 0x0b, 0x60, 0xe3, 0x6f, 0x03, 0xf0, 0x7f, 0x01, 0x0b, 0x06, 0x43, 0xea, 0x01, 0x23, 0x37, 0x49, 0x0b, 0x60, 0x0b, 0x62, 0xc1, 0xf8, 0xdc, 0x30, 0xc1, 0xf8, 0xfc, 0x30, 0x28, 0x9b, 0x1b, 0x02, 0xc1, 0xf8, 0x74, 0x31, 0x29, 0x9b, 0x2a, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x2b, 0x99, 0x0b, 0x43, 0x28, 0x99, 0x43, 0xea, 0x01, 0x63, 0x2d, 0x49, 0x0b, 0x60, 0x2d, 0x9b, 0x2e, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x2f, 0x99, 0x0b, 0x43, 0x2c, 0x99, 0x43, 0xea, 0x01, 0x63, 0x28, 0x49, 0x0b, 0x60, 0x28, 0x9b, 0x1b, 0x02, 0x8b, 0x61, 0x29, 0x9b, 0x2a, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x2b, 0x99, 0x0b, 0x43, 0x28, 0x99, 0x43, 0xea, 0x01, 0x63, 0x22, 0x49, 0x0b, 0x60, 0x2d, 0x9b, 0x2e, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x2f, 0x99, 0x0b, 0x43, 0x2c, 0x99, 0x43, 0xea, 0x01, 0x63, 0x39, 0xe0, 0x20, 0x07, 0x14, 0x03, 0x24, 0x07, 0x14, 0x03, 0x2c, 0x06, 0x14, 0x03, 0xa0, 0x07, 0x14, 0x03, 0xa4, 0x07, 0x14, 0x03, 0xa8, 0x07, 0x14, 0x03, 0xc0, 0x07, 0x14, 0x03, 0xc4, 0x07, 0x14, 0x03, 0xc8, 0x07, 0x14, 0x03, 0x80, 0x08, 0x14, 0x03, 0x84, 0x08, 0x14, 0x03, 0x9c, 0x08, 0x14, 0x03, 0xa0, 0x08, 0x14, 0x03, 0xa4, 0x08, 0x14, 0x03, 0xac, 0x07, 0x14, 0x03, 0x84, 0x00, 0x14, 0x03, 0x30, 0x03, 0x14, 0x03, 0x34, 0x03, 0x14, 0x03, 0x38, 0x03, 0x14, 0x03, 0x54, 0x03, 0x14, 0x03, 0x58, 0x03, 0x14, 0x03, 0x10, 0x04, 0x14, 0x03, 0x14, 0x04, 0x14, 0x03, 0x30, 0x04, 0x14, 0x03, 0x34, 0x04, 0x14, 0x03, 0x3c, 0x03, 0x14, 0x03, 0xb4, 0x04, 0x14, 0x03, 0xb8, 0x04, 0x14, 0x03, 0xd4, 0x04, 0x14, 0x03, 0xac, 0x49, 0x0b, 0x60, 0xd1, 0xf8, 0xb4, 0x30, 0x28, 0x98, 0x23, 0xf0, 0xff, 0x03, 0x03, 0x43, 0xc1, 0xf8, 0xb4, 0x30, 0x29, 0x9b, 0x2a, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x2b, 0x99, 0x0b, 0x43, 0x28, 0x99, 0x43, 0xea, 0x01, 0x63, 0xa3, 0x49, 0x0b, 0x60, 0x2d, 0x9b, 0x2e, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x2f, 0x99, 0x0b, 0x43, 0x2c, 0x99, 0x43, 0xea, 0x01, 0x63, 0x9e, 0x49, 0x0b, 0x60, 0x28, 0x9b, 0x1b, 0x02, 0x8b, 0x61, 0x29, 0x9b, 0x2a, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x2b, 0x99, 0x0b, 0x43, 0x28, 0x99, 0x43, 0xea, 0x01, 0x63, 0x98, 0x49, 0x0b, 0x60, 0x2d, 0x9b, 0x2e, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x2f, 0x99, 0x0b, 0x43, 0x2c, 0x99, 0x43, 0xea, 0x01, 0x63, 0x93, 0x49, 0x0b, 0x60, 0xe3, 0x6f, 0xc3, 0xf3, 0x06, 0x21, 0x0b, 0x06, 0x43, 0xea, 0x01, 0x23, 0x90, 0x49, 0x0b, 0x60, 0x0b, 0x62, 0xc1, 0xf8, 0xdc, 0x30, 0xc1, 0xf8, 0xfc, 0x30, 0x30, 0x9b, 0x1b, 0x02, 0xc1, 0xf8, 0x74, 0x31, 0x31, 0x9b, 0x32, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x33, 0x99, 0x0b, 0x43, 0x30, 0x99, 0x43, 0xea, 0x01, 0x63, 0x86, 0x49, 0x0b, 0x60, 0x35, 0x9b, 0x36, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x37, 0x99, 0x0b, 0x43, 0x34, 0x99, 0x43, 0xea, 0x01, 0x63, 0x81, 0x49, 0x0b, 0x60, 0x30, 0x9b, 0x1b, 0x02, 0x8b, 0x61, 0x31, 0x9b, 0x32, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x33, 0x99, 0x0b, 0x43, 0x30, 0x99, 0x43, 0xea, 0x01, 0x63, 0x7b, 0x49, 0x0b, 0x60, 0x35, 0x9b, 0x36, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x37, 0x99, 0x0b, 0x43, 0x34, 0x99, 0x43, 0xea, 0x01, 0x63, 0x76, 0x49, 0x0b, 0x60, 0xd1, 0xf8, 0xb4, 0x30, 0x30, 0x98, 0x23, 0xf0, 0xff, 0x03, 0x03, 0x43, 0xc1, 0xf8, 0xb4, 0x30, 0x31, 0x9b, 0x32, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x33, 0x99, 0x0b, 0x43, 0x30, 0x99, 0x43, 0xea, 0x01, 0x63, 0x6d, 0x49, 0x0b, 0x60, 0x35, 0x9b, 0x36, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x37, 0x99, 0x0b, 0x43, 0x34, 0x99, 0x43, 0xea, 0x01, 0x63, 0x68, 0x49, 0x0b, 0x60, 0x30, 0x9b, 0x1b, 0x02, 0x8b, 0x61, 0x31, 0x9b, 0x32, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x33, 0x99, 0x0b, 0x43, 0x30, 0x99, 0x43, 0xea, 0x01, 0x63, 0x61, 0x49, 0x0b, 0x60, 0x35, 0x9b, 0x36, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x37, 0x99, 0x0b, 0x43, 0x34, 0x99, 0x43, 0xea, 0x01, 0x63, 0x5c, 0x49, 0x0b, 0x60, 0xb4, 0xf8, 0x7e, 0x30, 0x03, 0xf0, 0x7f, 0x01, 0x0b, 0x06, 0x43, 0xea, 0x01, 0x23, 0x59, 0x49, 0x0b, 0x60, 0x0b, 0x62, 0xc1, 0xf8, 0xdc, 0x30, 0xc1, 0xf8, 0xfc, 0x30, 0x38, 0x9b, 0x1b, 0x02, 0xc1, 0xf8, 0x74, 0x31, 0x39, 0x9b, 0x3a, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x3b, 0x99, 0x0b, 0x43, 0x38, 0x99, 0x43, 0xea, 0x01, 0x63, 0x4f, 0x49, 0x0b, 0x60, 0x3d, 0x9b, 0x3e, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x3f, 0x99, 0x0b, 0x43, 0x3c, 0x99, 0x43, 0xea, 0x01, 0x63, 0x4a, 0x49, 0x0b, 0x60, 0x38, 0x9b, 0x1b, 0x02, 0x8b, 0x61, 0x39, 0x9b, 0x3a, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x3b, 0x99, 0x0b, 0x43, 0x38, 0x99, 0x43, 0xea, 0x01, 0x63, 0x44, 0x49, 0x0b, 0x60, 0x3d, 0x9b, 0x3e, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x3f, 0x99, 0x0b, 0x43, 0x3c, 0x99, 0x43, 0xea, 0x01, 0x63, 0x3f, 0x49, 0x0b, 0x60, 0xd1, 0xf8, 0xb4, 0x30, 0x38, 0x98, 0x23, 0xf0, 0xff, 0x03, 0x03, 0x43, 0xc1, 0xf8, 0xb4, 0x30, 0x39, 0x9b, 0x3a, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x3b, 0x99, 0x0b, 0x43, 0x38, 0x99, 0x43, 0xea, 0x01, 0x63, 0x36, 0x49, 0x0b, 0x60, 0x3d, 0x9b, 0x3e, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x3f, 0x99, 0x0b, 0x43, 0x3c, 0x99, 0x43, 0xea, 0x01, 0x63, 0x31, 0x49, 0x0b, 0x60, 0x38, 0x9b, 0x1b, 0x02, 0x8b, 0x61, 0x39, 0x9b, 0x3a, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x3b, 0x99, 0x0b, 0x43, 0x38, 0x99, 0x43, 0xea, 0x01, 0x63, 0x2a, 0x49, 0x0b, 0x60, 0x3d, 0x9b, 0x3e, 0x99, 0x1b, 0x04, 0x43, 0xea, 0x01, 0x23, 0x3f, 0x99, 0x0b, 0x43, 0x3c, 0x99, 0x43, 0xea, 0x01, 0x63, 0x25, 0x49, 0x0b, 0x60, 0x94, 0xf8, 0x7f, 0x30, 0x03, 0xf0, 0x7f, 0x01, 0x0b, 0x06, 0x43, 0xea, 0x01, 0x23, 0x22, 0x49, 0x0b, 0x60, 0x0b, 0x62, 0xc1, 0xf8, 0xdc, 0x30, 0xc1, 0xf8, 0xfc, 0x30, 0x1f, 0x4b, 0x19, 0x68, 0x41, 0xf0, 0x04, 0x01, 0x19, 0x60, 0x19, 0x68, 0x21, 0xf0, 0x04, 0x01, 0x19, 0x60, 0x13, 0x68, 0x23, 0xf4, 0x80, 0x23, 0x13, 0x60, 0x41, 0xb0, 0xf0, 0xbd, 0x00, 0xbf, 0xd8, 0x04, 0x14, 0x03, 0x90, 0x05, 0x14, 0x03, 0x94, 0x05, 0x14, 0x03, 0xb0, 0x05, 0x14, 0x03, 0xb4, 0x05, 0x14, 0x03, 0xbc, 0x04, 0x14, 0x03, 0x34, 0x06, 0x14, 0x03, 0x38, 0x06, 0x14, 0x03, 0x54, 0x06, 0x14, 0x03, 0x58, 0x06, 0x14, 0x03, 0x10, 0x07, 0x14, 0x03, 0x14, 0x07, 0x14, 0x03, 0x30, 0x07, 0x14, 0x03, 0x34, 0x07, 0x14, 0x03, 0x3c, 0x06, 0x14, 0x03, 0xb4, 0x07, 0x14, 0x03, 0xb8, 0x07, 0x14, 0x03, 0xd4, 0x07, 0x14, 0x03, 0xd8, 0x07, 0x14, 0x03, 0x90, 0x08, 0x14, 0x03, 0x94, 0x08, 0x14, 0x03, 0xb0, 0x08, 0x14, 0x03, 0xb4, 0x08, 0x14, 0x03, 0xbc, 0x07, 0x14, 0x03, 0x94, 0x00, 0x14, 0x03, 0xd4, 0xe9, 0x1c, 0x76, 0x23, 0xf0, 0x07, 0x02, 0x27, 0xfa, 0x02, 0xf0, 0x26, 0xfa, 0x02, 0xf2, 0xc0, 0xb2, 0x02, 0xf0, 0x7f, 0x02, 0x45, 0xf8, 0x23, 0x20, 0x4d, 0xf8, 0x23, 0x00, 0x01, 0x33, 0x20, 0x2b, 0xef, 0xd1, 0xff, 0xf7, 0x02, 0xbb, 0x43, 0x68, 0x03, 0x3b, 0x05, 0x2b, 0x17, 0xd8, 0xdf, 0xe8, 0x03, 0xf0, 0x03, 0x05, 0x16, 0x16, 0x17, 0x2b, 0xfe, 0xf7, 0xbf, 0xbd, 0x1e, 0x4b, 0x1e, 0x4a, 0x1a, 0x60, 0x1e, 0x4a, 0x5a, 0x60, 0x1e, 0x4a, 0x9a, 0x60, 0x1e, 0x4a, 0xda, 0x60, 0x1e, 0x4a, 0x1a, 0x61, 0x1e, 0x4a, 0x5a, 0x61, 0x1e, 0x4a, 0x9a, 0x61, 0x1e, 0x4a, 0xda, 0x61, 0x70, 0x47, 0x15, 0x4b, 0x1d, 0x4a, 0x1a, 0x60, 0x1d, 0x4a, 0x5a, 0x60, 0x02, 0xf5, 0x7e, 0x02, 0x02, 0xf2, 0x0b, 0x12, 0x9a, 0x60, 0x1b, 0x4a, 0xda, 0x60, 0x1b, 0x4a, 0x1a, 0x61, 0x1b, 0x4a, 0x5a, 0x61, 0x1b, 0x4a, 0x9a, 0x61, 0x1b, 0x4a, 0xe9, 0xe7, 0x0b, 0x4b, 0x1a, 0x4a, 0x1a, 0x60, 0x02, 0xf1, 0x04, 0x32, 0x5a, 0x60, 0x02, 0xf1, 0x04, 0x32, 0x9a, 0x60, 0x02, 0xf1, 0x04, 0x32, 0xda, 0x60, 0x02, 0xf1, 0x04, 0x32, 0x1a, 0x61, 0x02, 0xf1, 0x04, 0x32, 0x5a, 0x61, 0x02, 0xf1, 0x04, 0x32, 0x9a, 0x61, 0x11, 0x4a, 0xd2, 0xe7, 0x54, 0x00, 0x14, 0x03, 0x14, 0x1c, 0x0c, 0x09, 0x0f, 0x06, 0x00, 0x13, 0x07, 0x08, 0x03, 0x12, 0x02, 0x0a, 0x10, 0x0b, 0x05, 0x0e, 0x11, 0x1a, 0x17, 0x16, 0x04, 0x0d, 0x1b, 0x01, 0x19, 0x18, 0x00, 0x1e, 0x1d, 0x15, 0x0f, 0x1a, 0x0a, 0x01, 0x07, 0x1b, 0x08, 0x10, 0x09, 0x14, 0x13, 0x00, 0x16, 0x0e, 0x03, 0x15, 0x17, 0x0d, 0x0c, 0x0b, 0x04, 0x02, 0x19, 0x18, 0x00, 0x1e, 0x1d, 0x05, 0x03, 0x02, 0x01, 0x00, 0x00, 0x1e, 0x1d, 0x1c, 0x10, 0xb5, 0x01, 0x20, 0x06, 0x4c, 0x23, 0x68, 0x23, 0xf0, 0x80, 0x73, 0x43, 0xf4, 0x00, 0x73, 0x23, 0x60, 0xfc, 0xf7, 0x17, 0xfb, 0x23, 0x68, 0x43, 0xf0, 0x80, 0x73, 0x23, 0x60, 0x10, 0xbd, 0x08, 0x00, 0x12, 0x03, 0x8b, 0x4a, 0x70, 0xb5, 0x04, 0x46, 0xd0, 0xe9, 0x00, 0x65, 0x01, 0x20, 0x13, 0x68, 0x23, 0xf0, 0x01, 0x03, 0x13, 0x60, 0xfc, 0xf7, 0x04, 0xfb, 0xe3, 0x69, 0xc3, 0xf3, 0x02, 0x33, 0x07, 0x2b, 0x01, 0xbf, 0x4f, 0xf0, 0x45, 0x72, 0x13, 0x68, 0x43, 0xf4, 0x80, 0x13, 0x13, 0x60, 0x81, 0x4a, 0x13, 0x68, 0x23, 0xf4, 0x80, 0x23, 0x13, 0x60, 0x4f, 0xf0, 0x45, 0x72, 0x13, 0x68, 0xe1, 0x69, 0x23, 0xf4, 0x70, 0x63, 0xc9, 0x07, 0x4c, 0xbf, 0x43, 0xf4, 0x40, 0x73, 0x43, 0xf4, 0x70, 0x63, 0x13, 0x60, 0xa3, 0x6f, 0x9b, 0x06, 0x5f, 0xbf, 0x77, 0x4a, 0x13, 0x68, 0x43, 0xf4, 0x00, 0x33, 0x13, 0x60, 0x07, 0x2d, 0x00, 0xf0, 0x9e, 0x80, 0x08, 0x2d, 0x00, 0xf0, 0x9e, 0x80, 0x04, 0x2d, 0x40, 0xf0, 0xa3, 0x80, 0x26, 0xf0, 0x01, 0x03, 0xb3, 0xf5, 0x6a, 0x7f, 0x40, 0xf2, 0xa0, 0x80, 0xb3, 0xf5, 0x96, 0x6f, 0x95, 0xbf, 0x0c, 0x22, 0x0e, 0x22, 0x10, 0x23, 0x12, 0x23, 0x11, 0x04, 0x20, 0x46, 0x41, 0xea, 0x02, 0x61, 0x11, 0x43, 0x41, 0xea, 0x02, 0x22, 0x67, 0x49, 0x0a, 0x60, 0x1a, 0x04, 0x42, 0xea, 0x03, 0x62, 0x1a, 0x43, 0x42, 0xea, 0x03, 0x23, 0x64, 0x4a, 0x13, 0x60, 0x00, 0x22, 0x64, 0x4b, 0x1a, 0x60, 0xff, 0xf7, 0x25, 0xff, 0xff, 0xf7, 0x67, 0xf8, 0xb4, 0xf8, 0x6e, 0x30, 0x0b, 0xb1, 0xff, 0xf7, 0x70, 0xf9, 0x5f, 0x49, 0x07, 0x2d, 0x0a, 0x68, 0xd2, 0xb2, 0x78, 0xd0, 0x08, 0x2d, 0x79, 0xd0, 0x04, 0x2d, 0x79, 0xd1, 0x42, 0xf0, 0x61, 0x53, 0x43, 0xf4, 0xdc, 0x33, 0x0b, 0x60, 0x4f, 0xf0, 0x45, 0x73, 0x1b, 0x68, 0x07, 0x2d, 0x23, 0xf0, 0x70, 0x03, 0x6f, 0xd0, 0x08, 0x2d, 0x70, 0xd0, 0x04, 0x2d, 0x71, 0xd1, 0x43, 0xf0, 0x40, 0x03, 0x43, 0xf0, 0x80, 0x03, 0x4f, 0xf0, 0x45, 0x72, 0x13, 0x60, 0x21, 0x68, 0xa1, 0xf1, 0xfb, 0x03, 0xf9, 0x2b, 0x49, 0x4b, 0x67, 0xd8, 0x1a, 0x68, 0x22, 0xf0, 0xf0, 0x42, 0x42, 0xf0, 0xc0, 0x52, 0x1a, 0x60, 0x4a, 0x4a, 0x13, 0x68, 0x03, 0xf0, 0x87, 0x33, 0x43, 0xf0, 0x18, 0x33, 0x13, 0x60, 0x0a, 0x20, 0x47, 0x4a, 0x13, 0x68, 0x23, 0xf4, 0x00, 0x73, 0x13, 0x60, 0xfc, 0xf7, 0x71, 0xfa, 0x20, 0x46, 0x44, 0x4c, 0xfe, 0xf7, 0xb5, 0xff, 0x44, 0x48, 0x08, 0x2d, 0x23, 0x68, 0x43, 0x49, 0x44, 0x4a, 0x23, 0xf4, 0x00, 0x73, 0x23, 0x60, 0x03, 0x68, 0x23, 0xf4, 0x00, 0x73, 0x03, 0x60, 0x0b, 0x68, 0x23, 0xf4, 0x00, 0x73, 0x0b, 0x60, 0x13, 0x68, 0x23, 0xf4, 0x00, 0x73, 0x13, 0x60, 0x3d, 0x4b, 0x1e, 0x68, 0x26, 0xf4, 0x00, 0x76, 0x1e, 0x60, 0x13, 0xd1, 0x25, 0x68, 0x45, 0xf4, 0x00, 0x75, 0x25, 0x60, 0x04, 0x68, 0x44, 0xf4, 0x00, 0x74, 0x04, 0x60, 0x08, 0x68, 0x40, 0xf4, 0x00, 0x70, 0x08, 0x60, 0x11, 0x68, 0x41, 0xf4, 0x00, 0x71, 0x11, 0x60, 0x1a, 0x68, 0x42, 0xf4, 0x00, 0x72, 0x1a, 0x60, 0x70, 0xbd, 0x08, 0x22, 0x0e, 0x23, 0x71, 0xe7, 0xa3, 0x6f, 0x0a, 0x22, 0x13, 0xf0, 0x00, 0x6f, 0x0c, 0xbf, 0x14, 0x23, 0x16, 0x23, 0x69, 0xe7, 0x09, 0x22, 0x0d, 0x23, 0x66, 0xe7, 0x0a, 0x22, 0xf0, 0xe7, 0x28, 0x4b, 0x13, 0x43, 0x8b, 0xe7, 0x28, 0x4b, 0xfb, 0xe7, 0x28, 0x4b, 0xf9, 0xe7, 0x43, 0xf0, 0x30, 0x03, 0x92, 0xe7, 0x43, 0xf0, 0x50, 0x03, 0x8f, 0xe7, 0x43, 0xf0, 0x20, 0x03, 0x8c, 0xe7, 0xa1, 0xf1, 0x7e, 0x02, 0x7c, 0x2a, 0x18, 0x4a, 0x0b, 0xd8, 0x19, 0x68, 0x21, 0xf0, 0xf0, 0x41, 0x41, 0xf0, 0x20, 0x51, 0x19, 0x60, 0x13, 0x68, 0x03, 0xf0, 0x87, 0x33, 0x43, 0xf0, 0x28, 0x33, 0x92, 0xe7, 0x7d, 0x29, 0x19, 0x68, 0x21, 0xf0, 0xf0, 0x41, 0x08, 0xd8, 0x41, 0xf0, 0x60, 0x51, 0x19, 0x60, 0x13, 0x68, 0x03, 0xf0, 0x87, 0x33, 0x43, 0xf0, 0x38, 0x33, 0x84, 0xe7, 0x41, 0xf0, 0xc0, 0x51, 0x19, 0x60, 0x13, 0x68, 0x03, 0xf0, 0x87, 0x33, 0x7d, 0xe7, 0x50, 0x02, 0x01, 0x07, 0x84, 0x00, 0x14, 0x03, 0xc0, 0x00, 0x14, 0x03, 0x10, 0x00, 0x14, 0x03, 0x0c, 0x00, 0x14, 0x03, 0x08, 0x00, 0x14, 0x03, 0xa8, 0x00, 0x14, 0x03, 0xd0, 0x00, 0x14, 0x03, 0x08, 0x00, 0x12, 0x03, 0x08, 0x03, 0x14, 0x03, 0x88, 0x04, 0x14, 0x03, 0x08, 0x06, 0x14, 0x03, 0x88, 0x07, 0x14, 0x03, 0x08, 0x09, 0x14, 0x03, 0x00, 0x63, 0x01, 0x19, 0x00, 0x63, 0xfd, 0x18, 0x00, 0x49, 0xbd, 0x2b, 0x6e, 0x4a, 0x41, 0x68, 0x30, 0xb5, 0x13, 0x68, 0x04, 0x29, 0x23, 0xf4, 0x70, 0x63, 0x43, 0xf4, 0x60, 0x63, 0x13, 0x60, 0x6a, 0x4b, 0x40, 0xf0, 0x99, 0x80, 0x90, 0xf8, 0x24, 0x10, 0x1d, 0x78, 0xcc, 0xb2, 0x09, 0x0e, 0x1c, 0x70, 0x5c, 0x78, 0x00, 0x24, 0x5c, 0x70, 0x9c, 0x78, 0x00, 0x24, 0x9c, 0x70, 0xdc, 0x78, 0xd9, 0x70, 0x90, 0xf8, 0x25, 0x30, 0x43, 0xf0, 0x40, 0x03, 0x13, 0x60, 0x60, 0x4a, 0x13, 0x88, 0x51, 0x88, 0x14, 0x88, 0x43, 0xea, 0x01, 0x43, 0x43, 0xf0, 0x04, 0x03, 0x99, 0xb2, 0x1b, 0x0c, 0x11, 0x80, 0x51, 0x88, 0x53, 0x80, 0xc3, 0x69, 0xd9, 0x07, 0x40, 0xf1, 0x95, 0x80, 0x60, 0x32, 0x13, 0x88, 0x51, 0x88, 0x03, 0xf0, 0x03, 0x03, 0x03, 0x2b, 0xf9, 0xd1, 0x54, 0x4a, 0x13, 0x88, 0x51, 0x88, 0x14, 0x88, 0x43, 0xea, 0x01, 0x43, 0x23, 0xf0, 0x04, 0x03, 0x99, 0xb2, 0x1b, 0x0c, 0x11, 0x80, 0x51, 0x88, 0x00, 0x21, 0x53, 0x80, 0x0c, 0x46, 0x0b, 0x46, 0x03, 0xf1, 0x45, 0x73, 0xd3, 0xf8, 0x96, 0x30, 0x00, 0x2b, 0x00, 0xf0, 0x86, 0x80, 0x3f, 0x2b, 0x08, 0xbf, 0x01, 0x21, 0x62, 0x1c, 0x04, 0x2a, 0x78, 0xd1, 0x46, 0x4b, 0x1a, 0x88, 0x5c, 0x88, 0x1d, 0x88, 0x42, 0xea, 0x04, 0x42, 0x22, 0xf0, 0xc0, 0x02, 0x94, 0xb2, 0x12, 0x0c, 0x1c, 0x80, 0x5c, 0x88, 0x5a, 0x80, 0xc2, 0x69, 0xd2, 0x04, 0x30, 0xd5, 0x1a, 0x88, 0x5c, 0x88, 0x1d, 0x88, 0x42, 0xea, 0x04, 0x42, 0x22, 0xf0, 0xc0, 0x02, 0x42, 0xf0, 0x40, 0x02, 0x94, 0xb2, 0x12, 0x0c, 0x1c, 0x80, 0x5c, 0x88, 0x5a, 0x80, 0x1a, 0x88, 0x5c, 0x88, 0x1d, 0x88, 0x42, 0xea, 0x04, 0x42, 0x42, 0xf0, 0x04, 0x02, 0x94, 0xb2, 0x12, 0x0c, 0x1c, 0x80, 0x5c, 0x88, 0x5a, 0x80, 0xc3, 0x69, 0x31, 0x4a, 0xdb, 0x07, 0x53, 0xd5, 0x13, 0x88, 0x50, 0x88, 0x03, 0xf0, 0x03, 0x03, 0x03, 0x2b, 0xf9, 0xd1, 0x2c, 0x4a, 0x13, 0x88, 0x50, 0x88, 0x14, 0x88, 0x43, 0xea, 0x00, 0x43, 0x23, 0xf0, 0x04, 0x03, 0x98, 0xb2, 0x1b, 0x0c, 0x10, 0x80, 0x50, 0x88, 0x53, 0x80, 0x25, 0x4a, 0x13, 0x88, 0x50, 0x88, 0x14, 0x88, 0x43, 0xea, 0x00, 0x43, 0x23, 0xf0, 0xc0, 0x03, 0x98, 0xb2, 0x1b, 0x0c, 0x10, 0x80, 0x50, 0x88, 0x81, 0xf0, 0x01, 0x00, 0x53, 0x80, 0x30, 0xbd, 0x06, 0x39, 0x02, 0x29, 0x10, 0xd8, 0x90, 0xf8, 0x28, 0x10, 0x1d, 0x78, 0xcc, 0xb2, 0x09, 0x0e, 0x1c, 0x70, 0x5c, 0x78, 0x00, 0x24, 0x5c, 0x70, 0x9c, 0x78, 0x00, 0x24, 0x9c, 0x70, 0xdc, 0x78, 0xd9, 0x70, 0x90, 0xf8, 0x29, 0x30, 0x64, 0xe7, 0x19, 0x78, 0x04, 0x24, 0x00, 0x21, 0x1c, 0x70, 0x5c, 0x78, 0x59, 0x70, 0x9c, 0x78, 0x99, 0x70, 0xdc, 0x78, 0xd9, 0x70, 0x40, 0x23, 0x58, 0xe7, 0x0e, 0x4a, 0x13, 0x88, 0x51, 0x88, 0x03, 0xf0, 0x0f, 0x03, 0x0f, 0x2b, 0xf9, 0xd1, 0x69, 0xe7, 0x01, 0x2a, 0x14, 0xbf, 0x04, 0xf1, 0x2f, 0x03, 0x13, 0x46, 0x14, 0x46, 0x72, 0xe7, 0x01, 0x21, 0x7a, 0xe7, 0x13, 0x88, 0x50, 0x88, 0x03, 0xf0, 0x0f, 0x03, 0x0f, 0x2b, 0xf9, 0xd1, 0xaa, 0xe7, 0x04, 0x00, 0x14, 0x03, 0x03, 0x00, 0x14, 0x03, 0x02, 0x00, 0x14, 0x03, 0x62, 0x00, 0x14, 0x03, 0x43, 0x68, 0x10, 0xb5, 0x04, 0x2b, 0x22, 0xd1, 0x75, 0x4a, 0x13, 0x68, 0x23, 0xf0, 0x80, 0x73, 0x13, 0x60, 0xd2, 0xf8, 0xc4, 0x32, 0x23, 0xf0, 0x03, 0x03, 0xc2, 0xf8, 0xc4, 0x32, 0xd2, 0xf8, 0x44, 0x34, 0x23, 0xf0, 0x03, 0x03, 0xc2, 0xf8, 0x44, 0x34, 0xd2, 0xf8, 0xc4, 0x35, 0x23, 0xf0, 0x03, 0x03, 0xc2, 0xf8, 0xc4, 0x35, 0xd2, 0xf8, 0x44, 0x37, 0x23, 0xf0, 0x03, 0x03, 0xc2, 0xf8, 0x44, 0x37, 0xd2, 0xf8, 0xc4, 0x38, 0x23, 0xf0, 0x03, 0x03, 0xc2, 0xf8, 0xc4, 0x38, 0x43, 0x68, 0x64, 0x49, 0x08, 0x2b, 0x01, 0xbf, 0x62, 0x4a, 0x13, 0x68, 0x23, 0xf0, 0x00, 0x53, 0x13, 0x60, 0x61, 0x4a, 0x13, 0x68, 0x23, 0xf0, 0x3c, 0x03, 0x43, 0xf0, 0x38, 0x03, 0x13, 0x60, 0x13, 0x68, 0x43, 0xf0, 0x01, 0x03, 0x13, 0x60, 0xc3, 0x69, 0x13, 0xf0, 0x01, 0x03, 0x78, 0xd0, 0x0a, 0x68, 0x02, 0xf0, 0x03, 0x02, 0x03, 0x2a, 0x01, 0xd1, 0x00, 0x23, 0x02, 0xe0, 0x0a, 0x68, 0x94, 0x06, 0xf5, 0xd5, 0x55, 0x4a, 0x11, 0x68, 0x21, 0xf0, 0x01, 0x01, 0x11, 0x60, 0x11, 0x68, 0x21, 0xf0, 0x3c, 0x01, 0x11, 0x60, 0xc1, 0x69, 0xcc, 0x04, 0x1c, 0xd5, 0x11, 0x68, 0x21, 0xf0, 0x3c, 0x01, 0x41, 0xf0, 0x34, 0x01, 0x11, 0x60, 0x11, 0x68, 0x41, 0xf0, 0x01, 0x01, 0x11, 0x60, 0xc2, 0x69, 0x12, 0xf0, 0x01, 0x02, 0x5c, 0xd0, 0x47, 0x4c, 0x21, 0x68, 0x01, 0xf0, 0x03, 0x01, 0x03, 0x29, 0x61, 0xd1, 0x45, 0x4a, 0x11, 0x68, 0x21, 0xf0, 0x01, 0x01, 0x11, 0x60, 0x11, 0x68, 0x21, 0xf0, 0x3c, 0x01, 0x11, 0x60, 0xc2, 0x69, 0xc2, 0xf3, 0x02, 0x32, 0x07, 0x2a, 0x3a, 0xd1, 0x3e, 0x49, 0x0a, 0x68, 0x22, 0xf0, 0x3c, 0x02, 0x42, 0xf0, 0x2c, 0x02, 0x0a, 0x60, 0x0a, 0x68, 0x42, 0xf0, 0x01, 0x02, 0x0a, 0x60, 0xc2, 0x69, 0x12, 0xf0, 0x01, 0x02, 0x49, 0xd0, 0x35, 0x4c, 0x21, 0x68, 0x01, 0xf0, 0x03, 0x01, 0x03, 0x29, 0x4e, 0xd1, 0x33, 0x4a, 0x11, 0x68, 0x21, 0xf0, 0x01, 0x01, 0x11, 0x60, 0x11, 0x68, 0x21, 0xf0, 0x3c, 0x01, 0x11, 0x60, 0x11, 0x68, 0x21, 0xf0, 0x3c, 0x01, 0x41, 0xf0, 0x1c, 0x01, 0x11, 0x60, 0x11, 0x68, 0x41, 0xf0, 0x01, 0x01, 0x11, 0x60, 0xc2, 0x69, 0x12, 0xf0, 0x01, 0x02, 0x3c, 0xd0, 0x27, 0x48, 0x01, 0x68, 0x01, 0xf0, 0x03, 0x01, 0x03, 0x29, 0x41, 0xd1, 0x25, 0x4a, 0x11, 0x68, 0x21, 0xf0, 0x01, 0x01, 0x11, 0x60, 0x11, 0x68, 0x21, 0xf0, 0x3c, 0x01, 0x11, 0x60, 0x83, 0xf0, 0x01, 0x00, 0x10, 0xbd, 0x0a, 0x68, 0x92, 0x06, 0x05, 0xd4, 0x0a, 0x68, 0x02, 0xf0, 0x0f, 0x02, 0x0f, 0x2a, 0xf7, 0xd1, 0x8a, 0xe7, 0x01, 0x23, 0x88, 0xe7, 0x18, 0x49, 0x0a, 0x68, 0x02, 0xf0, 0x0f, 0x02, 0x0f, 0x2a, 0xa2, 0xd0, 0x0a, 0x68, 0x94, 0x06, 0xf7, 0xd5, 0x01, 0x23, 0x9d, 0xe7, 0x21, 0x68, 0x89, 0x06, 0x95, 0xd5, 0x13, 0x46, 0x98, 0xe7, 0x10, 0x49, 0x0a, 0x68, 0x02, 0xf0, 0x0f, 0x02, 0x0f, 0x2a, 0xb5, 0xd0, 0x0a, 0x68, 0x94, 0x06, 0xf7, 0xd5, 0x01, 0x23, 0xb0, 0xe7, 0x21, 0x68, 0x89, 0x06, 0xa8, 0xd5, 0x13, 0x46, 0xab, 0xe7, 0x08, 0x49, 0x0a, 0x68, 0x02, 0xf0, 0x0f, 0x02, 0x0f, 0x2a, 0xc2, 0xd0, 0x0a, 0x68, 0x92, 0x06, 0xf7, 0xd5, 0x01, 0x23, 0xbd, 0xe7, 0x01, 0x68, 0x89, 0x06, 0xb5, 0xd5, 0x13, 0x46, 0xb8, 0xe7, 0x44, 0x00, 0x14, 0x03, 0x0c, 0x02, 0x14, 0x03, 0x04, 0x00, 0x14, 0x03, 0x2d, 0xe9, 0xf8, 0x4f, 0xca, 0x00, 0x07, 0x6e, 0x05, 0x46, 0x0e, 0x46, 0xba, 0x4b, 0xd0, 0xe9, 0x1c, 0x98, 0x18, 0x20, 0xd7, 0x40, 0x1b, 0x68, 0x07, 0xf0, 0x1f, 0x07, 0x79, 0x1c, 0xc3, 0xf3, 0x07, 0x23, 0x03, 0xfb, 0x00, 0x00, 0xfb, 0xf7, 0x41, 0xfd, 0x44, 0x00, 0x31, 0x46, 0xb3, 0x48, 0x22, 0x46, 0xfc, 0xf7, 0x19, 0xfd, 0xb2, 0x4b, 0x1a, 0x68, 0x9a, 0x46, 0x42, 0xf0, 0x20, 0x02, 0x1a, 0x60, 0xb0, 0x4a, 0x93, 0x46, 0x13, 0x68, 0x03, 0xf0, 0x07, 0x03, 0x03, 0x2b, 0xfa, 0xd1, 0x01, 0x20, 0xfb, 0xf7, 0xcf, 0xff, 0xac, 0x49, 0x01, 0x20, 0x0b, 0x68, 0x23, 0xf0, 0x01, 0x03, 0x0b, 0x60, 0xfb, 0xf7, 0xc7, 0xff, 0xa9, 0x48, 0x00, 0x23, 0xa7, 0x49, 0x03, 0x60, 0xa8, 0x4b, 0x1a, 0x68, 0x22, 0xf4, 0xf8, 0x52, 0x42, 0xea, 0x06, 0x22, 0x22, 0xf0, 0x01, 0x02, 0x1a, 0x60, 0x1a, 0x68, 0x42, 0xf0, 0x20, 0x02, 0x1a, 0x60, 0x01, 0x22, 0x02, 0x60, 0xa1, 0x4a, 0x94, 0x46, 0xd2, 0xf8, 0x00, 0xe0, 0x1e, 0xf0, 0x01, 0x0f, 0xfa, 0xd1, 0x9f, 0x4a, 0xd2, 0xf8, 0x00, 0xe0, 0x2e, 0xf0, 0x40, 0x7e, 0xc2, 0xf8, 0x00, 0xe0, 0xd2, 0xf8, 0x00, 0xe0, 0x2e, 0xf0, 0x1f, 0x0e, 0x47, 0xea, 0x0e, 0x07, 0x17, 0x60, 0x47, 0xf0, 0x00, 0x67, 0x17, 0x60, 0xa4, 0xf1, 0xfb, 0x02, 0xf9, 0x2a, 0x96, 0x4a, 0x00, 0xf2, 0xcc, 0x80, 0x17, 0x68, 0x27, 0xf0, 0xf0, 0x47, 0x47, 0xf0, 0xc0, 0x57, 0x17, 0x60, 0x92, 0x4f, 0x3a, 0x68, 0x02, 0xf0, 0x87, 0x32, 0x42, 0xf0, 0x18, 0x32, 0x3a, 0x60, 0x00, 0x22, 0x8f, 0x4f, 0x02, 0x60, 0x3a, 0x68, 0x60, 0x37, 0x42, 0xf0, 0x00, 0x52, 0x47, 0xf8, 0x60, 0x2c, 0x57, 0xf8, 0x38, 0x2c, 0x22, 0xf0, 0x03, 0x02, 0x32, 0x43, 0x47, 0xf8, 0x38, 0x2c, 0x3a, 0x68, 0x12, 0xf0, 0x02, 0x0f, 0x14, 0xbf, 0x22, 0xf0, 0x02, 0x02, 0x42, 0xf0, 0x02, 0x02, 0x3a, 0x60, 0x1a, 0x68, 0x22, 0xf0, 0x20, 0x02, 0x1a, 0x60, 0x01, 0x23, 0x82, 0x4a, 0x03, 0x60, 0x13, 0x68, 0x01, 0x2b, 0xfc, 0xd1, 0xdc, 0xf8, 0x00, 0x30, 0xda, 0x07, 0xfb, 0xd5, 0x0b, 0x68, 0x01, 0x20, 0x43, 0xf0, 0x01, 0x03, 0x0b, 0x60, 0xfb, 0xf7, 0x5b, 0xff, 0xda, 0xf8, 0x00, 0x30, 0x23, 0xf0, 0x20, 0x03, 0xca, 0xf8, 0x00, 0x30, 0xdb, 0xf8, 0x00, 0x30, 0x03, 0xf0, 0x03, 0x03, 0x03, 0x2b, 0xf9, 0xd0, 0x75, 0x4a, 0xb4, 0xf5, 0x34, 0x7f, 0x28, 0x46, 0x13, 0x68, 0xa2, 0xf1, 0x98, 0x02, 0x43, 0xf4, 0x80, 0x53, 0x43, 0xf0, 0x10, 0x03, 0xc2, 0xf8, 0x98, 0x30, 0x13, 0x68, 0x23, 0xf0, 0xf8, 0x53, 0x2c, 0xbf, 0x43, 0xf0, 0x40, 0x63, 0x43, 0xf0, 0xd8, 0x53, 0x13, 0x60, 0xff, 0xf7, 0x47, 0xfe, 0x90, 0x2c, 0x07, 0x46, 0x40, 0xf2, 0x90, 0x80, 0xb4, 0xf5, 0x9b, 0x7f, 0x40, 0xf2, 0x8f, 0x80, 0xb4, 0xf5, 0xcd, 0x7f, 0x40, 0xf2, 0x8f, 0x80, 0xb4, 0xf5, 0xfc, 0x7f, 0x40, 0xf2, 0x8d, 0x80, 0xb4, 0xf5, 0x16, 0x7f, 0x40, 0xf2, 0x8c, 0x80, 0xb4, 0xf5, 0x2f, 0x7f, 0x40, 0xf2, 0x8a, 0x80, 0xb4, 0xf5, 0x4c, 0x7f, 0x40, 0xf2, 0x89, 0x80, 0xb4, 0xf5, 0x6a, 0x7f, 0x40, 0xf2, 0x88, 0x80, 0xb4, 0xf5, 0x7c, 0x7f, 0x40, 0xf2, 0x87, 0x80, 0xb4, 0xf5, 0x84, 0x6f, 0x40, 0xf2, 0x86, 0x80, 0x56, 0x49, 0x40, 0xf2, 0x56, 0x43, 0x9c, 0x42, 0x55, 0x4a, 0x55, 0x4b, 0x84, 0xbf, 0x4f, 0xf0, 0x03, 0x23, 0x0a, 0x46, 0x54, 0x49, 0x08, 0x68, 0x40, 0xf4, 0x80, 0x20, 0x08, 0x60, 0x52, 0x48, 0x02, 0x60, 0xc0, 0xf8, 0x80, 0x31, 0xc0, 0xf8, 0x00, 0x23, 0x50, 0x4a, 0x13, 0x60, 0xa2, 0xf2, 0x8c, 0x72, 0x13, 0x68, 0x43, 0xf0, 0x02, 0x03, 0x13, 0x60, 0x4d, 0x4b, 0x1a, 0x68, 0x42, 0xf0, 0x00, 0x62, 0x1a, 0x60, 0x1a, 0x68, 0x22, 0xf0, 0x00, 0x62, 0x1a, 0x60, 0x0b, 0x68, 0x23, 0xf4, 0x80, 0x23, 0x0b, 0x60, 0x27, 0xb9, 0x22, 0x46, 0x31, 0x46, 0x46, 0x48, 0xfc, 0xf7, 0x19, 0xfc, 0xeb, 0x6c, 0xdb, 0x03, 0x02, 0xd5, 0xb4, 0xf5, 0xb4, 0x7f, 0x02, 0xd9, 0xb4, 0xf5, 0xfa, 0x7f, 0x4f, 0xd2, 0x41, 0x4b, 0x2b, 0x67, 0x41, 0x4b, 0x6b, 0x67, 0x28, 0x46, 0xfe, 0xf7, 0x21, 0xfe, 0xc5, 0xe9, 0x1c, 0x98, 0x38, 0x46, 0xbd, 0xe8, 0xf8, 0x8f, 0xa4, 0xf1, 0x7e, 0x07, 0xd2, 0xf8, 0x00, 0xe0, 0x7c, 0x2f, 0x2d, 0x4f, 0x2e, 0xf0, 0xf0, 0x4e, 0x09, 0xd8, 0x4e, 0xf0, 0x20, 0x5e, 0xc2, 0xf8, 0x00, 0xe0, 0x3a, 0x68, 0x02, 0xf0, 0x87, 0x32, 0x42, 0xf0, 0x28, 0x32, 0x2c, 0xe7, 0x7d, 0x2c, 0x09, 0xd8, 0x4e, 0xf0, 0x60, 0x5e, 0xc2, 0xf8, 0x00, 0xe0, 0x3a, 0x68, 0x02, 0xf0, 0x87, 0x32, 0x42, 0xf0, 0x38, 0x32, 0x20, 0xe7, 0x4e, 0xf0, 0xc0, 0x5e, 0xc2, 0xf8, 0x00, 0xe0, 0x3a, 0x68, 0x02, 0xf0, 0x87, 0x32, 0x18, 0xe7, 0x2a, 0x4b, 0x1a, 0x46, 0x9a, 0xe7, 0x4f, 0xf0, 0x02, 0x23, 0x28, 0x4a, 0x96, 0xe7, 0x28, 0x4b, 0xf7, 0xe7, 0x28, 0x4b, 0x29, 0x4a, 0x91, 0xe7, 0x29, 0x4b, 0xf2, 0xe7, 0x29, 0x4b, 0x29, 0x4a, 0x8c, 0xe7, 0x29, 0x4b, 0x2a, 0x4a, 0x89, 0xe7, 0x2a, 0x4b, 0x2a, 0x4a, 0x86, 0xe7, 0x2a, 0x4b, 0x2b, 0x4a, 0x83, 0xe7, 0x2b, 0x4b, 0x2b, 0x4a, 0x80, 0xe7, 0x40, 0xf2, 0x61, 0x23, 0x9c, 0x42, 0x57, 0xd8, 0x29, 0x4b, 0x2b, 0x67, 0x29, 0x4b, 0xaa, 0xe7, 0x10, 0x10, 0x00, 0x02, 0x27, 0x57, 0x05, 0x00, 0x30, 0x00, 0x13, 0x03, 0x04, 0x00, 0x13, 0x03, 0x50, 0x02, 0x01, 0x07, 0x20, 0x03, 0x13, 0x03, 0xb0, 0x01, 0x13, 0x03, 0xbc, 0x01, 0x13, 0x03, 0x00, 0x18, 0x00, 0x02, 0xc0, 0x00, 0x14, 0x03, 0xd0, 0x00, 0x14, 0x03, 0x00, 0x00, 0x13, 0x03, 0x24, 0x03, 0x13, 0x03, 0xac, 0x00, 0x14, 0x03, 0xfe, 0x02, 0xfe, 0x02, 0xe8, 0x02, 0xe8, 0x02, 0xf2, 0x02, 0xf2, 0x02, 0x84, 0x00, 0x14, 0x03, 0x10, 0x03, 0x14, 0x03, 0x90, 0x07, 0x14, 0x03, 0x44, 0x00, 0x14, 0x03, 0x3c, 0x57, 0x05, 0x00, 0xa0, 0x9c, 0xa0, 0xa0, 0x09, 0x07, 0x0e, 0x0e, 0xe0, 0x01, 0xe0, 0x01, 0xfd, 0x01, 0xfd, 0x01, 0x2b, 0x02, 0x2b, 0x02, 0x4e, 0x02, 0x4e, 0x02, 0x4b, 0x02, 0x4b, 0x02, 0x6a, 0x02, 0x6a, 0x02, 0x83, 0x02, 0x83, 0x02, 0x80, 0x02, 0x80, 0x02, 0x9d, 0x02, 0x9d, 0x02, 0x97, 0x02, 0x97, 0x02, 0xc0, 0x02, 0xc0, 0x02, 0xb5, 0x02, 0xb5, 0x02, 0xd2, 0x02, 0xd2, 0x02, 0xca, 0x02, 0xca, 0x02, 0xe2, 0x02, 0xe2, 0x02, 0xd8, 0x02, 0xd8, 0x02, 0xa6, 0xa4, 0xa6, 0xa6, 0x19, 0x16, 0x1d, 0x1d, 0xb4, 0xf5, 0x2a, 0x7f, 0x03, 0xd2, 0x12, 0x4b, 0x2b, 0x67, 0x12, 0x4b, 0x4f, 0xe7, 0xb4, 0xf5, 0x48, 0x7f, 0x03, 0xd2, 0x10, 0x4b, 0x2b, 0x67, 0x10, 0x4b, 0x48, 0xe7, 0xb4, 0xf5, 0x6b, 0x7f, 0x03, 0xd2, 0x0f, 0x4b, 0x2b, 0x67, 0x0f, 0x4b, 0x41, 0xe7, 0x40, 0xf2, 0xb9, 0x43, 0x9c, 0x42, 0x3f, 0xf6, 0x3e, 0xaf, 0x03, 0xf1, 0x47, 0x43, 0xa3, 0xf5, 0x6d, 0x13, 0xa3, 0xf2, 0xf7, 0x33, 0x2b, 0x67, 0x03, 0xf1, 0x70, 0x23, 0x03, 0xf5, 0xe2, 0x03, 0x6f, 0x33, 0x2f, 0xe7, 0x00, 0xbf, 0xaa, 0xa8, 0xaa, 0xaa, 0x20, 0x1d, 0x23, 0x23, 0xae, 0xac, 0xae, 0xae, 0x26, 0x23, 0x2a, 0x29, 0xb8, 0xb4, 0xb8, 0xb4, 0x2c, 0x2a, 0x31, 0x2f, 0x43, 0x68, 0x2d, 0xe9, 0xf0, 0x41, 0x05, 0x46, 0x08, 0x2b, 0x0a, 0xd1, 0xa3, 0x4b, 0x00, 0x22, 0x1a, 0x60, 0xd9, 0x79, 0xda, 0x71, 0x19, 0x7a, 0x1a, 0x72, 0x59, 0x7a, 0x5a, 0x72, 0x99, 0x7a, 0x9a, 0x72, 0x9f, 0x49, 0x6b, 0x8b, 0x0a, 0x88, 0x48, 0x88, 0x0c, 0x88, 0x5b, 0x00, 0x13, 0xf0, 0x1e, 0x03, 0x42, 0xea, 0x00, 0x42, 0x08, 0xbf, 0x0f, 0x23, 0x22, 0xf0, 0x03, 0x02, 0x42, 0xf0, 0x02, 0x02, 0x90, 0xb2, 0x12, 0x0c, 0x08, 0x80, 0x48, 0x88, 0x4a, 0x80, 0x01, 0xf5, 0xce, 0x71, 0x11, 0xf8, 0x01, 0x2c, 0x08, 0x78, 0x42, 0xea, 0x00, 0x22, 0x48, 0x78, 0x42, 0xea, 0x00, 0x42, 0x88, 0x78, 0x11, 0xf8, 0x01, 0x4c, 0x42, 0xea, 0x00, 0x62, 0x22, 0xf0, 0x3f, 0x02, 0x1a, 0x43, 0xd0, 0xb2, 0x01, 0xf8, 0x01, 0x0c, 0xc2, 0xf3, 0x07, 0x20, 0x0c, 0x78, 0x08, 0x70, 0xc2, 0xf3, 0x07, 0x40, 0x12, 0x0e, 0x4c, 0x78, 0x48, 0x70, 0x88, 0x78, 0x8a, 0x70, 0x0a, 0x88, 0x48, 0x88, 0x0c, 0x88, 0x42, 0xea, 0x00, 0x42, 0x22, 0xf0, 0x3f, 0x02, 0x1a, 0x43, 0x90, 0xb2, 0x12, 0x0c, 0x08, 0x80, 0x48, 0x88, 0x4a, 0x80, 0x91, 0xf8, 0x7f, 0x20, 0x91, 0xf8, 0x80, 0x00, 0x42, 0xea, 0x00, 0x22, 0x91, 0xf8, 0x81, 0x00, 0x42, 0xea, 0x00, 0x42, 0x91, 0xf8, 0x82, 0x00, 0x91, 0xf8, 0x7f, 0x40, 0x42, 0xea, 0x00, 0x62, 0x22, 0xf0, 0x3f, 0x02, 0x1a, 0x43, 0xd0, 0xb2, 0x81, 0xf8, 0x7f, 0x00, 0xc2, 0xf3, 0x07, 0x20, 0x91, 0xf8, 0x80, 0x40, 0x81, 0xf8, 0x80, 0x00, 0xc2, 0xf3, 0x07, 0x40, 0x12, 0x0e, 0x91, 0xf8, 0x81, 0x40, 0x81, 0xf8, 0x81, 0x00, 0x91, 0xf8, 0x82, 0x00, 0x81, 0xf8, 0x82, 0x20, 0x6b, 0x4a, 0x11, 0x88, 0x50, 0x88, 0x41, 0xea, 0x00, 0x41, 0x10, 0x88, 0x21, 0xf0, 0x3f, 0x01, 0x0b, 0x43, 0x99, 0xb2, 0x1b, 0x0c, 0x11, 0x80, 0x51, 0x88, 0x53, 0x80, 0x65, 0x4b, 0x1a, 0x68, 0x42, 0xf0, 0x06, 0x02, 0x1a, 0x60, 0x1a, 0x68, 0x42, 0xf0, 0x01, 0x02, 0x1a, 0x60, 0x62, 0x4a, 0x13, 0x68, 0x03, 0xf0, 0x0c, 0x03, 0x0c, 0x2b, 0xfa, 0xd1, 0x14, 0x68, 0x14, 0xf0, 0x03, 0x04, 0x03, 0xd0, 0x01, 0x24, 0x5d, 0x48, 0xfc, 0xf7, 0x91, 0xfa, 0xeb, 0x69, 0xdb, 0x07, 0x0c, 0xd4, 0x5b, 0x4a, 0x13, 0x68, 0x03, 0xf0, 0x0c, 0x03, 0x0c, 0x2b, 0xfa, 0xd1, 0x13, 0x68, 0x9f, 0x07, 0x03, 0xd0, 0x01, 0x24, 0x57, 0x48, 0xfc, 0xf7, 0x81, 0xfa, 0x57, 0x4b, 0x57, 0x4e, 0xdf, 0xf8, 0xd8, 0x81, 0x1b, 0x68, 0x56, 0x4b, 0x57, 0x4f, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x55, 0x4b, 0x1a, 0x88, 0x5b, 0x88, 0x55, 0x4b, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x53, 0x4b, 0x1b, 0x68, 0x53, 0x4b, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x52, 0x4b, 0x1a, 0x88, 0x5b, 0x88, 0x51, 0x4b, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x50, 0x4b, 0x1b, 0x68, 0x33, 0x68, 0x56, 0xf8, 0x12, 0x3c, 0x32, 0x68, 0xd2, 0x1a, 0x06, 0x2a, 0x0b, 0xd8, 0xa6, 0xf1, 0x45, 0x71, 0x40, 0x46, 0xa1, 0xf2, 0x27, 0x21, 0xfc, 0xf7, 0x4f, 0xfa, 0xeb, 0x6e, 0x13, 0xf0, 0x80, 0x5f, 0x08, 0xbf, 0x01, 0x24, 0x01, 0x36, 0xbe, 0x42, 0xe9, 0xd1, 0x45, 0x4b, 0xdf, 0xf8, 0x68, 0x81, 0x44, 0x4f, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x43, 0x4b, 0x1a, 0x88, 0x5b, 0x88, 0x42, 0x4b, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x41, 0x4b, 0x1b, 0x68, 0x41, 0x4b, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x3f, 0x4b, 0x1a, 0x88, 0x5b, 0x88, 0x3f, 0x4b, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x3d, 0x4b, 0x1b, 0x68, 0x3d, 0x4b, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x33, 0x68, 0x56, 0xf8, 0x12, 0x3c, 0x32, 0x68, 0xd2, 0x1a, 0x06, 0x2a, 0x0b, 0xd8, 0xa6, 0xf1, 0x45, 0x71, 0x40, 0x46, 0xa1, 0xf5, 0x0c, 0x71, 0xfc, 0xf7, 0x13, 0xfa, 0xeb, 0x6e, 0x13, 0xf0, 0x80, 0x5f, 0x08, 0xbf, 0x01, 0x24, 0x01, 0x36, 0xbe, 0x42, 0xe9, 0xd1, 0xeb, 0x69, 0xde, 0x07, 0x00, 0xf1, 0xcd, 0x80, 0x2f, 0x4b, 0x2f, 0x4e, 0xdf, 0xf8, 0xec, 0x80, 0x1b, 0x68, 0x2e, 0x4b, 0x2f, 0x4f, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x2d, 0x4b, 0x1a, 0x88, 0x5b, 0x88, 0x2d, 0x4b, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x2b, 0x4b, 0x1b, 0x68, 0x2b, 0x4b, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x2a, 0x4b, 0x1a, 0x88, 0x5b, 0x88, 0x29, 0x4b, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x28, 0x4b, 0x1b, 0x68, 0x55, 0xe0, 0x00, 0x02, 0x14, 0x03, 0x66, 0x00, 0x14, 0x03, 0x82, 0x02, 0x14, 0x03, 0x64, 0x00, 0x14, 0x03, 0x10, 0x02, 0x14, 0x03, 0x69, 0x57, 0x05, 0x00, 0x90, 0x02, 0x14, 0x03, 0x8d, 0x57, 0x05, 0x00, 0x14, 0x02, 0x14, 0x03, 0x26, 0x02, 0x14, 0x03, 0x15, 0x02, 0x14, 0x03, 0x2f, 0x02, 0x14, 0x03, 0x16, 0x02, 0x14, 0x03, 0x17, 0x02, 0x14, 0x03, 0x18, 0x02, 0x14, 0x03, 0x19, 0x02, 0x14, 0x03, 0x1a, 0x02, 0x14, 0x03, 0x1b, 0x02, 0x14, 0x03, 0x1c, 0x02, 0x14, 0x03, 0x1d, 0x02, 0x14, 0x03, 0x38, 0x02, 0x14, 0x03, 0x1e, 0x02, 0x14, 0x03, 0x1f, 0x02, 0x14, 0x03, 0x20, 0x02, 0x14, 0x03, 0x21, 0x02, 0x14, 0x03, 0x22, 0x02, 0x14, 0x03, 0x23, 0x02, 0x14, 0x03, 0x24, 0x02, 0x14, 0x03, 0x25, 0x02, 0x14, 0x03, 0x94, 0x02, 0x14, 0x03, 0xa6, 0x02, 0x14, 0x03, 0x95, 0x02, 0x14, 0x03, 0xaf, 0x02, 0x14, 0x03, 0x96, 0x02, 0x14, 0x03, 0x97, 0x02, 0x14, 0x03, 0x98, 0x02, 0x14, 0x03, 0x99, 0x02, 0x14, 0x03, 0x9a, 0x02, 0x14, 0x03, 0x9b, 0x02, 0x14, 0x03, 0x9c, 0x02, 0x14, 0x03, 0xb2, 0x57, 0x05, 0x00, 0xda, 0x57, 0x05, 0x00, 0x02, 0x58, 0x05, 0x00, 0x33, 0x68, 0x56, 0xf8, 0x12, 0x3c, 0x32, 0x68, 0xd2, 0x1a, 0x06, 0x2a, 0x0b, 0xd8, 0xa6, 0xf1, 0x45, 0x71, 0x40, 0x46, 0xa1, 0xf2, 0xa7, 0x21, 0xfc, 0xf7, 0x7e, 0xf9, 0xeb, 0x6e, 0x13, 0xf0, 0x80, 0x5f, 0x08, 0xbf, 0x01, 0x24, 0x01, 0x36, 0xbe, 0x42, 0xe9, 0xd1, 0x47, 0x4b, 0xdf, 0xf8, 0x58, 0x81, 0x47, 0x4f, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x45, 0x4b, 0x1a, 0x88, 0x5b, 0x88, 0x45, 0x4b, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x43, 0x4b, 0x1b, 0x68, 0x43, 0x4b, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x42, 0x4b, 0x1a, 0x88, 0x5b, 0x88, 0x41, 0x4b, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x40, 0x4b, 0x1b, 0x68, 0x40, 0x4b, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x33, 0x68, 0x56, 0xf8, 0x12, 0x3c, 0x32, 0x68, 0xd2, 0x1a, 0x06, 0x2a, 0x0b, 0xd8, 0xa6, 0xf1, 0x45, 0x71, 0x40, 0x46, 0xa1, 0xf5, 0x2c, 0x71, 0xfc, 0xf7, 0x42, 0xf9, 0xeb, 0x6e, 0x13, 0xf0, 0x80, 0x5f, 0x08, 0xbf, 0x01, 0x24, 0x01, 0x36, 0xbe, 0x42, 0xe9, 0xd1, 0x33, 0x4a, 0x13, 0x68, 0x23, 0xf0, 0x03, 0x03, 0x13, 0x60, 0xeb, 0x69, 0xd8, 0x04, 0x39, 0xd5, 0x30, 0x49, 0x0b, 0x88, 0x48, 0x88, 0x0e, 0x88, 0x43, 0xea, 0x00, 0x43, 0x23, 0xf0, 0x03, 0x03, 0x43, 0xf0, 0x02, 0x03, 0x98, 0xb2, 0x1b, 0x0c, 0x08, 0x80, 0x48, 0x88, 0x4b, 0x80, 0x13, 0x68, 0x43, 0xf0, 0x06, 0x03, 0x13, 0x60, 0x13, 0x68, 0x43, 0xf0, 0x01, 0x03, 0x13, 0x60, 0x02, 0xf5, 0xd6, 0x72, 0x13, 0x68, 0x03, 0xf0, 0x0c, 0x03, 0x0c, 0x2b, 0xfa, 0xd1, 0x13, 0x68, 0x99, 0x07, 0x03, 0xd0, 0x01, 0x24, 0x20, 0x48, 0xfc, 0xf7, 0x0d, 0xf9, 0xeb, 0x69, 0xda, 0x07, 0x0c, 0xd4, 0x1e, 0x4a, 0x13, 0x68, 0x03, 0xf0, 0x0c, 0x03, 0x0c, 0x2b, 0xfa, 0xd1, 0x13, 0x68, 0x9b, 0x07, 0x03, 0xd0, 0x01, 0x24, 0x1a, 0x48, 0xfc, 0xf7, 0xfd, 0xf8, 0x15, 0x4a, 0x13, 0x68, 0x23, 0xf0, 0x03, 0x03, 0x13, 0x60, 0x13, 0x4a, 0x13, 0x88, 0x51, 0x88, 0x10, 0x88, 0x84, 0xf0, 0x01, 0x00, 0x43, 0xea, 0x01, 0x43, 0x23, 0xf0, 0x03, 0x03, 0x99, 0xb2, 0x1b, 0x0c, 0x11, 0x80, 0x51, 0x88, 0x53, 0x80, 0xbd, 0xe8, 0xf0, 0x81, 0x00, 0xbf, 0x9d, 0x02, 0x14, 0x03, 0xb8, 0x02, 0x14, 0x03, 0x9e, 0x02, 0x14, 0x03, 0x9f, 0x02, 0x14, 0x03, 0xa0, 0x02, 0x14, 0x03, 0xa1, 0x02, 0x14, 0x03, 0xa2, 0x02, 0x14, 0x03, 0xa3, 0x02, 0x14, 0x03, 0xa4, 0x02, 0x14, 0x03, 0xa5, 0x02, 0x14, 0x03, 0x64, 0x00, 0x14, 0x03, 0x66, 0x00, 0x14, 0x03, 0x69, 0x57, 0x05, 0x00, 0x90, 0x02, 0x14, 0x03, 0x8d, 0x57, 0x05, 0x00, 0x2a, 0x58, 0x05, 0x00, 0x9c, 0x4a, 0x2d, 0xe9, 0xf0, 0x41, 0x06, 0x46, 0x19, 0x32, 0x12, 0xf8, 0x19, 0x3c, 0x00, 0x23, 0x02, 0xf8, 0x19, 0x3c, 0x12, 0xf8, 0x18, 0x1c, 0x02, 0xf8, 0x18, 0x3c, 0x12, 0xf8, 0x17, 0x1c, 0x02, 0xf8, 0x17, 0x3c, 0x12, 0xf8, 0x16, 0x1c, 0x02, 0xf8, 0x16, 0x3c, 0x32, 0xf8, 0x18, 0x1c, 0x22, 0xf8, 0x18, 0x3c, 0x32, 0xf8, 0x16, 0x1c, 0x22, 0xf8, 0x16, 0x3c, 0x51, 0x78, 0x53, 0x70, 0x91, 0x78, 0x93, 0x70, 0xd1, 0x78, 0xd3, 0x70, 0x11, 0x79, 0x13, 0x71, 0xc2, 0xf8, 0x02, 0x30, 0x13, 0x88, 0x51, 0x88, 0x10, 0x88, 0x43, 0xea, 0x01, 0x43, 0x23, 0xf0, 0x0c, 0x03, 0x43, 0xf0, 0x08, 0x03, 0x99, 0xb2, 0x1b, 0x0c, 0x11, 0x80, 0x51, 0x88, 0x53, 0x80, 0x82, 0x4b, 0x1a, 0x68, 0x42, 0xf0, 0x10, 0x02, 0x1a, 0x60, 0x1a, 0x68, 0x42, 0xf0, 0x20, 0x02, 0x1a, 0x60, 0x7f, 0x4a, 0x13, 0x68, 0x03, 0xf0, 0x03, 0x03, 0x03, 0x2b, 0xfa, 0xd1, 0x14, 0x68, 0x14, 0xf0, 0x0c, 0x04, 0x03, 0xd0, 0x01, 0x24, 0x7a, 0x48, 0xfc, 0xf7, 0x79, 0xf8, 0xf3, 0x69, 0xdd, 0x07, 0x0d, 0xd4, 0x78, 0x4a, 0x13, 0x68, 0x03, 0xf0, 0x03, 0x03, 0x03, 0x2b, 0xfa, 0xd1, 0x13, 0x68, 0x13, 0xf0, 0x0c, 0x0f, 0x03, 0xd0, 0x01, 0x24, 0x74, 0x48, 0xfc, 0xf7, 0x68, 0xf8, 0x73, 0x4b, 0x74, 0x4d, 0xdf, 0xf8, 0x70, 0x82, 0x1b, 0x68, 0x73, 0x4b, 0x73, 0x4f, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x72, 0x4b, 0x1a, 0x88, 0x5b, 0x88, 0x71, 0x4b, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x70, 0x4b, 0x1b, 0x68, 0x70, 0x4b, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x6e, 0x4b, 0x1a, 0x88, 0x5b, 0x88, 0x6e, 0x4b, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x6c, 0x4b, 0x1b, 0x68, 0x2b, 0x68, 0x55, 0xf8, 0x12, 0x3c, 0x2a, 0x68, 0xd2, 0x1a, 0x06, 0x2a, 0x0b, 0xd8, 0xa5, 0xf1, 0x45, 0x71, 0x40, 0x46, 0xa1, 0xf2, 0x4f, 0x21, 0xfc, 0xf7, 0x36, 0xf8, 0xf3, 0x6e, 0x13, 0xf0, 0x80, 0x5f, 0x08, 0xbf, 0x01, 0x24, 0x01, 0x35, 0xbd, 0x42, 0xe9, 0xd1, 0x61, 0x4b, 0xdf, 0xf8, 0x04, 0x82, 0x61, 0x4f, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x5f, 0x4b, 0x1a, 0x88, 0x5b, 0x88, 0x5f, 0x4b, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x5d, 0x4b, 0x1b, 0x68, 0x5d, 0x4b, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x5c, 0x4b, 0x1a, 0x88, 0x5b, 0x88, 0x5b, 0x4b, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x5a, 0x4b, 0x1b, 0x68, 0x5a, 0x4b, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x2b, 0x68, 0x55, 0xf8, 0x12, 0x3c, 0x2a, 0x68, 0xd2, 0x1a, 0x06, 0x2a, 0x0b, 0xd8, 0xa5, 0xf1, 0x45, 0x71, 0x40, 0x46, 0xa1, 0xf5, 0x16, 0x71, 0xfb, 0xf7, 0xfa, 0xff, 0xf3, 0x6e, 0x13, 0xf0, 0x80, 0x5f, 0x08, 0xbf, 0x01, 0x24, 0x01, 0x35, 0xbd, 0x42, 0xe9, 0xd1, 0xf3, 0x69, 0xd8, 0x07, 0x00, 0xf1, 0xe0, 0x80, 0x4b, 0x4b, 0x4c, 0x4d, 0xdf, 0xf8, 0x84, 0x81, 0x1b, 0x68, 0x4b, 0x4b, 0x4b, 0x4f, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x4a, 0x4b, 0x1a, 0x88, 0x5b, 0x88, 0x49, 0x4b, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x48, 0x4b, 0x1b, 0x68, 0x48, 0x4b, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x46, 0x4b, 0x1a, 0x88, 0x5b, 0x88, 0x46, 0x4b, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x44, 0x4b, 0x1b, 0x68, 0x2b, 0x68, 0x55, 0xf8, 0x12, 0x3c, 0x2a, 0x68, 0xd2, 0x1a, 0x06, 0x2a, 0x0b, 0xd8, 0xa5, 0xf1, 0x45, 0x71, 0x40, 0x46, 0xa1, 0xf2, 0xcf, 0x21, 0xfb, 0xf7, 0xbc, 0xff, 0xf3, 0x6e, 0x13, 0xf0, 0x80, 0x5f, 0x08, 0xbf, 0x01, 0x24, 0x01, 0x35, 0xbd, 0x42, 0xe9, 0xd1, 0x39, 0x4b, 0xdf, 0xf8, 0x18, 0x81, 0x39, 0x4f, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x37, 0x4b, 0x1a, 0x88, 0x5b, 0x88, 0x37, 0x4b, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x35, 0x4b, 0x1b, 0x68, 0x35, 0x4b, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x34, 0x4b, 0x1a, 0x88, 0x5b, 0x88, 0x33, 0x4b, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x32, 0x4b, 0x1b, 0x68, 0x32, 0x4b, 0x1a, 0x78, 0x5a, 0x78, 0x9a, 0x78, 0xdb, 0x78, 0x68, 0xe0, 0x00, 0xbf, 0x4d, 0x00, 0x14, 0x03, 0x64, 0x00, 0x14, 0x03, 0x38, 0x02, 0x14, 0x03, 0x52, 0x58, 0x05, 0x00, 0xb8, 0x02, 0x14, 0x03, 0x77, 0x58, 0x05, 0x00, 0x3c, 0x02, 0x14, 0x03, 0x4e, 0x02, 0x14, 0x03, 0x3d, 0x02, 0x14, 0x03, 0x57, 0x02, 0x14, 0x03, 0x3e, 0x02, 0x14, 0x03, 0x3f, 0x02, 0x14, 0x03, 0x40, 0x02, 0x14, 0x03, 0x41, 0x02, 0x14, 0x03, 0x42, 0x02, 0x14, 0x03, 0x43, 0x02, 0x14, 0x03, 0x44, 0x02, 0x14, 0x03, 0x45, 0x02, 0x14, 0x03, 0x60, 0x02, 0x14, 0x03, 0x46, 0x02, 0x14, 0x03, 0x47, 0x02, 0x14, 0x03, 0x48, 0x02, 0x14, 0x03, 0x49, 0x02, 0x14, 0x03, 0x4a, 0x02, 0x14, 0x03, 0x4b, 0x02, 0x14, 0x03, 0x4c, 0x02, 0x14, 0x03, 0x4d, 0x02, 0x14, 0x03, 0xbc, 0x02, 0x14, 0x03, 0xce, 0x02, 0x14, 0x03, 0xbd, 0x02, 0x14, 0x03, 0xd7, 0x02, 0x14, 0x03, 0xbe, 0x02, 0x14, 0x03, 0xbf, 0x02, 0x14, 0x03, 0xc0, 0x02, 0x14, 0x03, 0xc1, 0x02, 0x14, 0x03, 0xc2, 0x02, 0x14, 0x03, 0xc3, 0x02, 0x14, 0x03, 0xc4, 0x02, 0x14, 0x03, 0xc5, 0x02, 0x14, 0x03, 0xe0, 0x02, 0x14, 0x03, 0xc6, 0x02, 0x14, 0x03, 0xc7, 0x02, 0x14, 0x03, 0xc8, 0x02, 0x14, 0x03, 0xc9, 0x02, 0x14, 0x03, 0xca, 0x02, 0x14, 0x03, 0xcb, 0x02, 0x14, 0x03, 0xcc, 0x02, 0x14, 0x03, 0xcd, 0x02, 0x14, 0x03, 0x9d, 0x58, 0x05, 0x00, 0xc6, 0x58, 0x05, 0x00, 0xef, 0x58, 0x05, 0x00, 0x18, 0x59, 0x05, 0x00, 0x2b, 0x68, 0x55, 0xf8, 0x12, 0x3c, 0x2a, 0x68, 0xd2, 0x1a, 0x06, 0x2a, 0x0b, 0xd8, 0xa5, 0xf1, 0x45, 0x71, 0x40, 0x46, 0xa1, 0xf5, 0x36, 0x71, 0xfb, 0xf7, 0x16, 0xff, 0xf3, 0x6e, 0x13, 0xf0, 0x80, 0x5f, 0x08, 0xbf, 0x01, 0x24, 0x01, 0x35, 0xbd, 0x42, 0xe9, 0xd1, 0x2a, 0x4a, 0x13, 0x68, 0x23, 0xf0, 0x60, 0x03, 0x13, 0x60, 0xf3, 0x69, 0xd9, 0x04, 0x3b, 0xd5, 0x27, 0x49, 0x0b, 0x88, 0x48, 0x88, 0x0d, 0x88, 0x43, 0xea, 0x00, 0x43, 0x23, 0xf0, 0x0c, 0x03, 0x43, 0xf0, 0x04, 0x03, 0x98, 0xb2, 0x1b, 0x0c, 0x08, 0x80, 0x48, 0x88, 0x4b, 0x80, 0x13, 0x68, 0x43, 0xf0, 0x10, 0x03, 0x13, 0x60, 0x13, 0x68, 0x43, 0xf0, 0x20, 0x03, 0x13, 0x60, 0x02, 0xf5, 0xea, 0x72, 0x13, 0x68, 0x03, 0xf0, 0x03, 0x03, 0x03, 0x2b, 0xfa, 0xd1, 0x13, 0x68, 0x13, 0xf0, 0x0c, 0x0f, 0x03, 0xd0, 0x01, 0x24, 0x17, 0x48, 0xfb, 0xf7, 0xe0, 0xfe, 0xf3, 0x69, 0xdb, 0x07, 0x0d, 0xd4, 0x15, 0x4a, 0x13, 0x68, 0x03, 0xf0, 0x03, 0x03, 0x03, 0x2b, 0xfa, 0xd1, 0x13, 0x68, 0x13, 0xf0, 0x0c, 0x0f, 0x03, 0xd0, 0x01, 0x24, 0x10, 0x48, 0xfb, 0xf7, 0xcf, 0xfe, 0x0b, 0x4a, 0x13, 0x68, 0x23, 0xf0, 0x60, 0x03, 0x13, 0x60, 0x09, 0x4a, 0x13, 0x88, 0x51, 0x88, 0x10, 0x88, 0x84, 0xf0, 0x01, 0x00, 0x43, 0xea, 0x01, 0x43, 0x23, 0xf0, 0x0c, 0x03, 0x99, 0xb2, 0x1b, 0x0c, 0x11, 0x80, 0x51, 0x88, 0x53, 0x80, 0xbd, 0xe8, 0xf0, 0x81, 0x00, 0xbf, 0x64, 0x00, 0x14, 0x03, 0x66, 0x00, 0x14, 0x03, 0x52, 0x58, 0x05, 0x00, 0xb8, 0x02, 0x14, 0x03, 0x77, 0x58, 0x05, 0x00, 0x03, 0x4a, 0x13, 0x68, 0x23, 0xf0, 0x01, 0x03, 0x18, 0x43, 0x10, 0x60, 0x70, 0x47, 0x00, 0xbf, 0x60, 0x00, 0x13, 0x03, 0x10, 0xb5, 0x00, 0x23, 0x06, 0x4c, 0x01, 0x46, 0x18, 0x46, 0x23, 0x60, 0xff, 0xf7, 0xee, 0xff, 0x04, 0x4a, 0x01, 0x23, 0x23, 0x60, 0x13, 0x68, 0xdb, 0x07, 0xfc, 0xd5, 0x10, 0xbd, 0x00, 0xbf, 0x20, 0x03, 0x13, 0x03, 0x24, 0x03, 0x13, 0x03, 0x01, 0x46, 0x08, 0xb5, 0x01, 0x20, 0xff, 0xf7, 0xdd, 0xff, 0x06, 0x4b, 0x00, 0x22, 0x06, 0x49, 0x1a, 0x60, 0x0a, 0x68, 0x22, 0xf0, 0x01, 0x02, 0x0a, 0x60, 0x1a, 0x68, 0x42, 0xf0, 0x20, 0x02, 0x1a, 0x60, 0x08, 0xbd, 0x30, 0x00, 0x13, 0x03, 0xb0, 0x01, 0x13, 0x03, 0x83, 0x6f, 0x9b, 0x00, 0x41, 0xbf, 0x03, 0x4a, 0x13, 0x68, 0x43, 0xf0, 0x04, 0x03, 0x13, 0x60, 0x70, 0x47, 0x00, 0xbf, 0xc0, 0x01, 0x13, 0x03, 0x0e, 0x4a, 0x13, 0x68, 0x43, 0xf0, 0x40, 0x43, 0x13, 0x60, 0x52, 0xf8, 0x20, 0x3c, 0x43, 0xf0, 0x40, 0x43, 0x42, 0xf8, 0x20, 0x3c, 0x02, 0xf5, 0xff, 0x52, 0x13, 0x68, 0x43, 0xf0, 0x40, 0x43, 0x13, 0x60, 0x02, 0xf5, 0x80, 0x52, 0x13, 0x68, 0x43, 0xf0, 0x40, 0x43, 0x13, 0x60, 0x02, 0xf5, 0x80, 0x52, 0x13, 0x68, 0x43, 0xf0, 0x40, 0x43, 0x13, 0x60, 0x70, 0x47, 0xa0, 0x01, 0x13, 0x03, 0x98, 0x4a, 0x18, 0x21, 0x43, 0x68, 0x2d, 0xe9, 0xf0, 0x4f, 0xa3, 0xb0, 0x12, 0x68, 0x03, 0x26, 0x08, 0x25, 0x4f, 0xf0, 0x0e, 0x0a, 0x01, 0x93, 0x4f, 0xf0, 0x06, 0x09, 0xc2, 0xf3, 0x07, 0x22, 0x05, 0x96, 0x02, 0xfb, 0x01, 0x13, 0xcd, 0xf8, 0x2c, 0x90, 0x04, 0x96, 0xcd, 0xf8, 0x28, 0x90, 0x83, 0x46, 0x37, 0x46, 0xb0, 0x46, 0x1b, 0x93, 0x9b, 0x08, 0x21, 0x93, 0x04, 0x23, 0x08, 0x93, 0xcd, 0xe9, 0x1e, 0x33, 0x08, 0x23, 0x1d, 0x93, 0x20, 0x93, 0x01, 0x23, 0x0d, 0x93, 0x02, 0x23, 0x1a, 0x93, 0x04, 0x23, 0xcd, 0xe9, 0x06, 0x33, 0xcd, 0xe9, 0x11, 0x36, 0x1b, 0x23, 0xcd, 0xe9, 0x18, 0x35, 0x0c, 0x23, 0x10, 0x93, 0x80, 0x23, 0x17, 0x93, 0x62, 0x23, 0x0f, 0x93, 0x0a, 0x23, 0x0c, 0x93, 0x10, 0x23, 0xcd, 0xe9, 0x15, 0x3a, 0x14, 0x23, 0x14, 0x93, 0x02, 0x23, 0x00, 0x93, 0x35, 0x46, 0x13, 0x93, 0x0e, 0x93, 0x00, 0x23, 0x09, 0x93, 0x01, 0x23, 0xcd, 0xe9, 0x02, 0x33, 0x73, 0x1c, 0x02, 0xd1, 0x23, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0xdb, 0xf8, 0x78, 0x30, 0x40, 0xf6, 0x05, 0x02, 0x1a, 0x40, 0x1c, 0x93, 0x05, 0x2a, 0x18, 0xbf, 0x00, 0x26, 0x13, 0xf0, 0x04, 0x0a, 0x68, 0xd0, 0xdb, 0xf8, 0x60, 0x10, 0x00, 0x2e, 0x50, 0xd1, 0x01, 0xf0, 0x1f, 0x01, 0x1b, 0x98, 0x01, 0x31, 0xb2, 0x46, 0xfa, 0xf7, 0x0c, 0xfe, 0x04, 0x46, 0x01, 0x9b, 0x03, 0x2b, 0x5d, 0xd1, 0x21, 0x46, 0x32, 0x20, 0xfd, 0xf7, 0x0a, 0xfb, 0xc3, 0xb2, 0x21, 0x46, 0x0a, 0x20, 0x15, 0x93, 0xfd, 0xf7, 0x04, 0xfb, 0xc0, 0xb2, 0x21, 0x46, 0x02, 0x28, 0x38, 0xbf, 0x02, 0x20, 0x04, 0x90, 0x0f, 0x20, 0xfd, 0xf7, 0xfb, 0xfa, 0xc3, 0xb2, 0x21, 0x46, 0x35, 0x20, 0x0b, 0x93, 0xfd, 0xf7, 0xf5, 0xfa, 0xc3, 0xb2, 0x21, 0x46, 0x08, 0x20, 0x14, 0x93, 0xfd, 0xf7, 0xef, 0xfa, 0xc5, 0xb2, 0x21, 0x46, 0x26, 0x20, 0x02, 0x2d, 0x38, 0xbf, 0x02, 0x25, 0xfd, 0xf7, 0xe7, 0xfa, 0xc3, 0xb2, 0x21, 0x46, 0x41, 0xf6, 0x78, 0x60, 0x16, 0x93, 0xfd, 0xf7, 0xe0, 0xfa, 0x21, 0x46, 0xc0, 0xf3, 0x4f, 0x13, 0x4f, 0xf4, 0xaf, 0x70, 0x0f, 0x93, 0xfd, 0xf7, 0xd8, 0xfa, 0x83, 0xb2, 0x21, 0x46, 0x4f, 0xf4, 0xb4, 0x70, 0x17, 0x93, 0xfd, 0xf7, 0xd1, 0xfa, 0xdd, 0xf8, 0x2c, 0x90, 0xc0, 0xf3, 0x47, 0x13, 0x1f, 0x93, 0x0c, 0x95, 0x05, 0x95, 0x02, 0x23, 0x74, 0xe0, 0x01, 0x2e, 0x0a, 0xd1, 0xc1, 0xf3, 0x04, 0x21, 0x01, 0x31, 0x1b, 0x98, 0xfa, 0xf7, 0xba, 0xfd, 0x04, 0x46, 0x72, 0x1c, 0x4f, 0xea, 0x02, 0x3a, 0xa9, 0xe7, 0x02, 0x2e, 0x0c, 0xbf, 0xc1, 0xf3, 0x04, 0x41, 0xc1, 0xf3, 0x04, 0x61, 0xef, 0xe7, 0x21, 0x9c, 0x00, 0x2e, 0x9f, 0xd0, 0xf0, 0xe7, 0x01, 0x9b, 0x04, 0x2b, 0x6a, 0xd1, 0x21, 0x46, 0x23, 0x20, 0xfd, 0xf7, 0xa9, 0xfa, 0xc3, 0xb2, 0x21, 0x46, 0x08, 0x20, 0x15, 0x93, 0xfd, 0xf7, 0xa3, 0xfa, 0xc0, 0xb2, 0x21, 0x46, 0x02, 0x28, 0x38, 0xbf, 0x02, 0x20, 0x04, 0x90, 0x06, 0x20, 0xfd, 0xf7, 0x9a, 0xfa, 0xc0, 0xb2, 0x21, 0x46, 0x02, 0x28, 0x38, 0xbf, 0x02, 0x20, 0x0c, 0x90, 0x0a, 0x20, 0xfd, 0xf7, 0x91, 0xfa, 0xc0, 0xb2, 0x21, 0x46, 0x08, 0x28, 0x38, 0xbf, 0x08, 0x20, 0x1d, 0x90, 0x0f, 0x20, 0xfd, 0xf7, 0x88, 0xfa, 0xc3, 0xb2, 0x21, 0x46, 0x31, 0x20, 0x0b, 0x93, 0xfd, 0xf7, 0x82, 0xfa, 0xc3, 0xb2, 0x21, 0x46, 0x03, 0x20, 0x14, 0x93, 0xfd, 0xf7, 0x7c, 0xfa, 0xc3, 0xb2, 0x21, 0x46, 0x22, 0x20, 0x00, 0x2b, 0x08, 0xbf, 0x01, 0x23, 0x0d, 0x93, 0xfd, 0xf7, 0x73, 0xfa, 0xc3, 0xb2, 0x21, 0x46, 0x41, 0xf6, 0x78, 0x60, 0x16, 0x93, 0xfd, 0xf7, 0x6c, 0xfa, 0x21, 0x46, 0xc0, 0xf3, 0x4f, 0x13, 0x4f, 0xf4, 0xaf, 0x70, 0x0f, 0x93, 0xfd, 0xf7, 0x64, 0xfa, 0x83, 0xb2, 0x21, 0x46, 0x4f, 0xf4, 0xb4, 0x70, 0x17, 0x93, 0xfd, 0xf7, 0x5d, 0xfa, 0xc0, 0xf3, 0x47, 0x13, 0xdd, 0xf8, 0x2c, 0x90, 0x1f, 0x93, 0x0c, 0x9b, 0x1a, 0x93, 0x04, 0x9b, 0x05, 0x93, 0x03, 0x23, 0x13, 0x93, 0x01, 0x9b, 0xd9, 0x1e, 0x05, 0x29, 0x00, 0xf2, 0x29, 0x81, 0xdf, 0xe8, 0x11, 0xf0, 0xd3, 0x01, 0xbf, 0x00, 0x27, 0x01, 0x27, 0x01, 0x23, 0x02, 0x65, 0x02, 0x00, 0xbf, 0x10, 0x10, 0x00, 0x02, 0x01, 0x9b, 0x07, 0x2b, 0x4b, 0xd1, 0x21, 0x46, 0x32, 0x20, 0xfd, 0xf7, 0x3b, 0xfa, 0xc0, 0xb2, 0x21, 0x46, 0x04, 0x28, 0x38, 0xbf, 0x04, 0x20, 0x15, 0x90, 0x0a, 0x20, 0xfd, 0xf7, 0x32, 0xfa, 0xc3, 0xb2, 0x21, 0x46, 0x18, 0x20, 0x00, 0x2b, 0x08, 0xbf, 0x01, 0x23, 0x04, 0x93, 0xfd, 0xf7, 0x29, 0xfa, 0xc0, 0xb2, 0x21, 0x46, 0x02, 0x28, 0x38, 0xbf, 0x02, 0x20, 0x0b, 0x90, 0x46, 0x20, 0xfd, 0xf7, 0x20, 0xfa, 0xc3, 0xb2, 0x21, 0x46, 0x08, 0x20, 0x14, 0x93, 0xfd, 0xf7, 0x1a, 0xfa, 0xc5, 0xb2, 0x21, 0x46, 0x1b, 0x20, 0x02, 0x2d, 0x38, 0xbf, 0x02, 0x25, 0xfd, 0xf7, 0x12, 0xfa, 0x21, 0x46, 0x5f, 0xfa, 0x80, 0xf9, 0x2a, 0x20, 0xfd, 0xf7, 0x0c, 0xfa, 0xc3, 0xb2, 0x21, 0x46, 0x40, 0xf6, 0x3c, 0x70, 0x16, 0x93, 0xfd, 0xf7, 0x05, 0xfa, 0x21, 0x46, 0xc0, 0xf3, 0x4f, 0x13, 0xd2, 0x20, 0x0f, 0x93, 0xfd, 0xf7, 0xfe, 0xf9, 0x83, 0xb2, 0x21, 0x46, 0xdc, 0x20, 0x17, 0x93, 0xfd, 0xf7, 0xf8, 0xf9, 0xc3, 0xb2, 0x0c, 0x95, 0x05, 0x95, 0x1e, 0x93, 0x28, 0xe7, 0x01, 0x9b, 0x08, 0x2b, 0x9d, 0xd1, 0x21, 0x46, 0x28, 0x20, 0xfd, 0xf7, 0xec, 0xf9, 0xc3, 0xb2, 0x21, 0x46, 0x0a, 0x20, 0x15, 0x93, 0xfd, 0xf7, 0xe6, 0xf9, 0x5f, 0xfa, 0x80, 0xf9, 0x21, 0x46, 0x12, 0x20, 0x4b, 0x46, 0x02, 0x2b, 0x38, 0xbf, 0x02, 0x23, 0x04, 0x93, 0xfd, 0xf7, 0xdb, 0xf9, 0xc0, 0xb2, 0x21, 0x46, 0x02, 0x28, 0x38, 0xbf, 0x02, 0x20, 0x0b, 0x90, 0x41, 0x20, 0xfd, 0xf7, 0xd2, 0xf9, 0xc3, 0xb2, 0x21, 0x46, 0x01, 0x98, 0x14, 0x93, 0xfd, 0xf7, 0xcc, 0xf9, 0xc5, 0xb2, 0x02, 0x2d, 0x2b, 0x46, 0x38, 0xbf, 0x02, 0x23, 0x0c, 0x93, 0x1c, 0x9b, 0x19, 0x01, 0x30, 0xd5, 0x21, 0x46, 0x0c, 0x20, 0xfd, 0xf7, 0xbf, 0xf9, 0xc0, 0xb2, 0x04, 0x28, 0x38, 0xbf, 0x04, 0x20, 0x05, 0x90, 0x04, 0x2d, 0x21, 0x46, 0x4f, 0xf0, 0x15, 0x00, 0x38, 0xbf, 0x04, 0x25, 0xfd, 0xf7, 0xb2, 0xf9, 0x21, 0x46, 0x5f, 0xfa, 0x80, 0xf9, 0x2a, 0x20, 0xfd, 0xf7, 0xac, 0xf9, 0xc3, 0xb2, 0x21, 0x46, 0x4f, 0xf4, 0x74, 0x60, 0x16, 0x93, 0xfd, 0xf7, 0xa5, 0xf9, 0x21, 0x46, 0xc0, 0xf3, 0x4f, 0x13, 0x4f, 0xf4, 0x8c, 0x70, 0x0f, 0x93, 0xfd, 0xf7, 0x9d, 0xf9, 0x83, 0xb2, 0x21, 0x46, 0x4f, 0xf4, 0x91, 0x70, 0x17, 0x93, 0xfd, 0xf7, 0x96, 0xf9, 0xc3, 0xb2, 0x1e, 0x93, 0x04, 0x23, 0x3e, 0xe7, 0x4b, 0x46, 0x04, 0x2b, 0x38, 0xbf, 0x04, 0x23, 0x05, 0x93, 0xd1, 0xe7, 0x21, 0x46, 0x0f, 0x20, 0xfd, 0xf7, 0x88, 0xf9, 0xc0, 0xb2, 0x21, 0x46, 0x0c, 0x28, 0x38, 0xbf, 0x0c, 0x20, 0x0a, 0x90, 0x05, 0x20, 0xfd, 0xf7, 0x7f, 0xf9, 0xc0, 0xb2, 0x21, 0x46, 0x02, 0x28, 0x38, 0xbf, 0x02, 0x20, 0x00, 0x90, 0x0a, 0x20, 0xfd, 0xf7, 0x76, 0xf9, 0x00, 0x9b, 0xc0, 0xb2, 0x03, 0x28, 0x03, 0xf1, 0x01, 0x01, 0x38, 0xbf, 0x03, 0x20, 0xcb, 0xb2, 0x07, 0x90, 0x21, 0x46, 0xaa, 0x20, 0x12, 0x93, 0xfd, 0xf7, 0x68, 0xf9, 0x21, 0x46, 0xc0, 0xf3, 0x47, 0x13, 0x64, 0x00, 0xaf, 0x48, 0x08, 0x93, 0xfd, 0xf7, 0x60, 0xf9, 0xdb, 0xf8, 0x28, 0x10, 0xb4, 0xf5, 0x6a, 0x7f, 0xc0, 0xf3, 0x87, 0x23, 0x18, 0x93, 0x21, 0xf0, 0x38, 0x01, 0x00, 0xf2, 0xb9, 0x80, 0x41, 0xf0, 0x08, 0x01, 0x06, 0x23, 0xcb, 0xf8, 0x28, 0x10, 0x07, 0x21, 0x03, 0x93, 0x04, 0x25, 0x05, 0x27, 0x88, 0x46, 0x0a, 0x23, 0x40, 0xf2, 0x24, 0x50, 0xcb, 0xf8, 0x20, 0x00, 0x39, 0x44, 0x02, 0x93, 0x8b, 0x1c, 0x05, 0xeb, 0x09, 0x04, 0x10, 0x93, 0x08, 0xf1, 0x01, 0x00, 0x05, 0x9b, 0xa0, 0x42, 0xa4, 0xbf, 0xc9, 0xf1, 0x02, 0x05, 0x45, 0x44, 0x03, 0xf1, 0x02, 0x01, 0xa8, 0xbf, 0xed, 0xb2, 0x39, 0x44, 0xcb, 0xb2, 0x19, 0x93, 0x0d, 0x9b, 0x99, 0x1c, 0x39, 0x44, 0xcb, 0xb2, 0x20, 0x93, 0x07, 0x9b, 0x06, 0x93, 0x05, 0x23, 0x11, 0x93, 0x04, 0x23, 0x0e, 0x93, 0x00, 0x23, 0x09, 0x93, 0xdd, 0xe9, 0x15, 0x23, 0x8f, 0x48, 0x43, 0xea, 0x02, 0x41, 0x10, 0x9b, 0x0c, 0x9a, 0x41, 0xea, 0x03, 0x61, 0x18, 0x9b, 0x41, 0xea, 0x03, 0x21, 0x14, 0x9b, 0x4a, 0xf8, 0x00, 0x10, 0x24, 0x30, 0x43, 0xea, 0x02, 0x41, 0x88, 0x4b, 0x41, 0xea, 0x05, 0x21, 0x4a, 0xf8, 0x03, 0x10, 0x4f, 0xea, 0x08, 0x41, 0x19, 0x9b, 0x41, 0xea, 0x07, 0x61, 0x19, 0x43, 0x11, 0x9b, 0x41, 0xea, 0x03, 0x21, 0x82, 0x4b, 0x4a, 0xf8, 0x03, 0x10, 0x0e, 0x9b, 0x19, 0x03, 0x09, 0x9b, 0x41, 0xea, 0x03, 0x51, 0x0a, 0x9b, 0x19, 0x43, 0x7e, 0x4b, 0x4a, 0xf8, 0x03, 0x10, 0x13, 0x9b, 0x19, 0x04, 0x0b, 0x9b, 0x41, 0xea, 0x03, 0x61, 0x04, 0x9b, 0x41, 0xea, 0x09, 0x01, 0x41, 0xea, 0x03, 0x21, 0x79, 0x4b, 0x4a, 0xf8, 0x03, 0x10, 0x06, 0x9b, 0x19, 0x04, 0x07, 0x9b, 0x41, 0xea, 0x03, 0x61, 0x00, 0x9b, 0x19, 0x43, 0x12, 0x9b, 0x41, 0xea, 0x03, 0x21, 0x73, 0x4b, 0x4a, 0xf8, 0x03, 0x10, 0x91, 0x1c, 0x72, 0x4b, 0x41, 0xf0, 0x00, 0x71, 0x41, 0xf4, 0x00, 0x31, 0x1a, 0x9a, 0x4a, 0xf8, 0x03, 0x10, 0x1f, 0x9b, 0x43, 0xf4, 0x80, 0x51, 0x08, 0x9b, 0x41, 0xea, 0x03, 0x61, 0x41, 0xea, 0x03, 0x41, 0x6b, 0x4b, 0x4a, 0xf8, 0x03, 0x10, 0x20, 0x9b, 0x43, 0xea, 0x02, 0x21, 0x41, 0xf4, 0x00, 0x31, 0x4a, 0xf8, 0x00, 0x10, 0x67, 0x49, 0x68, 0x48, 0x4a, 0xf8, 0x01, 0x00, 0x04, 0x31, 0x67, 0x48, 0x4a, 0xf8, 0x01, 0x00, 0x04, 0x31, 0x1d, 0x9b, 0x65, 0x48, 0x4a, 0xf8, 0x01, 0x30, 0x04, 0x31, 0x1e, 0x9b, 0x4a, 0xf8, 0x01, 0x00, 0x04, 0x31, 0x4a, 0xf8, 0x01, 0x30, 0x61, 0x4b, 0x1c, 0x68, 0x01, 0x9b, 0x98, 0x1f, 0x01, 0x28, 0x00, 0xf2, 0x1b, 0x81, 0x24, 0xf0, 0x43, 0x44, 0x24, 0xf4, 0x7f, 0x04, 0x44, 0xf4, 0x09, 0x04, 0x5c, 0x49, 0x21, 0x40, 0x41, 0xf4, 0xab, 0x71, 0x16, 0xe1, 0xb4, 0xf5, 0x96, 0x6f, 0x10, 0xd8, 0x41, 0xf0, 0x18, 0x01, 0x40, 0xf6, 0x34, 0x10, 0x4f, 0xf0, 0x08, 0x08, 0xcb, 0xf8, 0x28, 0x10, 0xcb, 0xf8, 0x20, 0x00, 0x05, 0x25, 0x09, 0x21, 0x06, 0x27, 0xcd, 0xf8, 0x0c, 0x80, 0x0c, 0x23, 0x41, 0xe7, 0x41, 0xf0, 0x20, 0x01, 0x4f, 0xf4, 0x34, 0x60, 0xcb, 0xf8, 0x28, 0x10, 0x0a, 0x21, 0xcb, 0xf8, 0x20, 0x00, 0x05, 0x25, 0x07, 0x27, 0x4f, 0xf0, 0x09, 0x08, 0x03, 0x91, 0x0e, 0x23, 0x31, 0xe7, 0x21, 0x46, 0x08, 0x20, 0xfd, 0xf7, 0x74, 0xf8, 0x21, 0x46, 0x07, 0x46, 0x0a, 0x20, 0xfd, 0xf7, 0x6f, 0xf8, 0xc3, 0xb2, 0x02, 0x2b, 0x07, 0x93, 0x3f, 0xd9, 0xf8, 0xb2, 0x02, 0x28, 0x38, 0xbf, 0x02, 0x20, 0x00, 0x90, 0x00, 0x9b, 0x20, 0x46, 0x05, 0x27, 0x4f, 0xf0, 0x07, 0x08, 0x59, 0x1c, 0xcb, 0xb2, 0x0f, 0x21, 0x12, 0x93, 0xfa, 0xf7, 0x91, 0xfc, 0xdb, 0xf8, 0x28, 0x10, 0xc3, 0xb2, 0x41, 0xf6, 0x14, 0x70, 0x18, 0x93, 0x21, 0xf0, 0x38, 0x01, 0x05, 0x9b, 0x41, 0xf0, 0x20, 0x01, 0xcb, 0xf8, 0x20, 0x00, 0xcb, 0xf8, 0x28, 0x10, 0x00, 0x21, 0xcb, 0xf8, 0x2c, 0x10, 0x05, 0xeb, 0x09, 0x01, 0x08, 0x29, 0x03, 0xf1, 0x07, 0x01, 0xcb, 0xb2, 0x4f, 0xf0, 0x05, 0x01, 0xd8, 0xbf, 0xc9, 0xf1, 0x09, 0x05, 0x19, 0x93, 0xd8, 0xbf, 0xed, 0xb2, 0x07, 0x9b, 0x06, 0x93, 0x0e, 0x23, 0xcd, 0xe9, 0x10, 0x31, 0x0c, 0x23, 0x0a, 0x93, 0x04, 0x23, 0x0e, 0x93, 0x00, 0x23, 0x09, 0x93, 0x06, 0x23, 0x03, 0x93, 0x0a, 0x23, 0x02, 0x93, 0x06, 0xe7, 0x06, 0x23, 0x00, 0x93, 0xc1, 0xe7, 0x05, 0x9b, 0x1c, 0x21, 0x83, 0x20, 0x04, 0x27, 0xcb, 0xe9, 0x09, 0x01, 0x00, 0x21, 0xcb, 0xf8, 0x20, 0x10, 0x03, 0xf1, 0x09, 0x01, 0xcb, 0xb2, 0x4f, 0xf0, 0x07, 0x08, 0x19, 0x93, 0x05, 0x23, 0xcd, 0xe9, 0x06, 0x33, 0x12, 0x93, 0x0d, 0x23, 0x11, 0x93, 0x18, 0x23, 0x18, 0x93, 0x10, 0x23, 0x10, 0x93, 0x03, 0x23, 0x00, 0x93, 0x0c, 0x23, 0x0a, 0x93, 0x05, 0x23, 0x0e, 0x93, 0x09, 0x93, 0x06, 0x23, 0x03, 0x93, 0x0c, 0x23, 0xd6, 0xe7, 0x38, 0x12, 0x01, 0x00, 0x00, 0x01, 0x13, 0x03, 0x04, 0x01, 0x13, 0x03, 0x08, 0x01, 0x13, 0x03, 0x0c, 0x01, 0x13, 0x03, 0x10, 0x01, 0x13, 0x03, 0x14, 0x01, 0x13, 0x03, 0x18, 0x01, 0x13, 0x03, 0x20, 0x01, 0x13, 0x03, 0x28, 0x01, 0x13, 0x03, 0x05, 0x0c, 0x0e, 0x00, 0x1c, 0x02, 0x0c, 0x44, 0x02, 0x00, 0x10, 0x0a, 0xd0, 0x00, 0x13, 0x03, 0x00, 0xf0, 0xff, 0x3f, 0x21, 0x46, 0x0e, 0x20, 0xfc, 0xf7, 0xe2, 0xff, 0xc0, 0xb2, 0x21, 0x46, 0x05, 0x27, 0x05, 0x28, 0x38, 0xbf, 0x05, 0x20, 0x09, 0x90, 0x0f, 0x20, 0xfc, 0xf7, 0xd8, 0xff, 0xc0, 0xb2, 0x21, 0x46, 0x02, 0x28, 0x38, 0xbf, 0x02, 0x20, 0x00, 0x90, 0x02, 0x20, 0xfc, 0xf7, 0xcf, 0xff, 0xc0, 0xb2, 0x21, 0x46, 0x02, 0x28, 0x38, 0xbf, 0x02, 0x20, 0x07, 0x90, 0x05, 0x20, 0xfc, 0xf7, 0xc6, 0xff, 0x0f, 0x9b, 0xc0, 0xb2, 0x02, 0x28, 0x38, 0xbf, 0x02, 0x20, 0x03, 0xeb, 0xc3, 0x01, 0x06, 0x90, 0x04, 0x20, 0xc1, 0xf3, 0x47, 0x13, 0x21, 0x46, 0x18, 0x93, 0xfc, 0xf7, 0xb7, 0xff, 0x05, 0x46, 0x21, 0x46, 0x01, 0x20, 0x11, 0x35, 0xfc, 0xf7, 0xb1, 0xff, 0x2d, 0x1a, 0x1b, 0x21, 0xeb, 0xb2, 0x34, 0x22, 0xcb, 0xe9, 0x09, 0x21, 0x04, 0x25, 0x11, 0x93, 0x05, 0x9b, 0x03, 0xf1, 0x0e, 0x01, 0xcb, 0xb2, 0x19, 0x93, 0x1c, 0x9b, 0x13, 0xf0, 0x00, 0x6f, 0x00, 0x9b, 0x07, 0xbf, 0x4f, 0xf0, 0x0a, 0x08, 0x03, 0x97, 0x4f, 0xf0, 0x0b, 0x08, 0x03, 0x97, 0x12, 0x93, 0x09, 0x9b, 0x0e, 0x93, 0x4f, 0xf0, 0x18, 0x03, 0x10, 0x93, 0x4f, 0xf0, 0x0c, 0x03, 0x0a, 0x93, 0x0c, 0xbf, 0x11, 0x23, 0x13, 0x23, 0x5e, 0xe7, 0x01, 0x9b, 0x08, 0x2b, 0x55, 0xd1, 0x46, 0x49, 0x21, 0x40, 0x41, 0xf4, 0xab, 0x61, 0x45, 0x4b, 0x4f, 0xf0, 0xf9, 0x74, 0x02, 0x28, 0x19, 0x60, 0x03, 0xf1, 0x0c, 0x03, 0x42, 0x49, 0x0c, 0x60, 0x42, 0x4c, 0x21, 0x68, 0x21, 0xf4, 0x7f, 0x41, 0x21, 0xf0, 0x0f, 0x01, 0x41, 0xf4, 0xb8, 0x51, 0x41, 0xf0, 0x05, 0x01, 0x21, 0x60, 0x4f, 0xf0, 0x00, 0x04, 0x3d, 0x49, 0x0c, 0x60, 0x3d, 0x4c, 0xdb, 0xf8, 0x24, 0x20, 0x38, 0xd8, 0xdb, 0xf8, 0x28, 0x10, 0x41, 0xea, 0x02, 0x41, 0x4a, 0xf8, 0x03, 0x10, 0xdb, 0xf8, 0x2c, 0x10, 0x01, 0x9b, 0x09, 0x04, 0x08, 0x2b, 0x4a, 0xf8, 0x04, 0x10, 0x46, 0xd0, 0x35, 0x48, 0x5a, 0xf8, 0x00, 0x10, 0x21, 0xf4, 0x7f, 0x61, 0x41, 0xf4, 0xcc, 0x61, 0x4a, 0xf8, 0x00, 0x10, 0xdb, 0xf8, 0x78, 0x10, 0x11, 0xf0, 0x20, 0x0f, 0x2f, 0x49, 0x48, 0xd1, 0x02, 0x9b, 0x58, 0x1e, 0x03, 0x9b, 0x5c, 0x1e, 0x44, 0xf0, 0x00, 0x74, 0x44, 0xea, 0x00, 0x40, 0x01, 0x43, 0x2b, 0x48, 0x17, 0x9b, 0x01, 0x3e, 0x0f, 0x9a, 0x4a, 0xf8, 0x00, 0x10, 0x29, 0x49, 0x29, 0x48, 0x4a, 0xf8, 0x01, 0x00, 0x43, 0xea, 0x02, 0x41, 0x28, 0x48, 0x4a, 0xf8, 0x00, 0x10, 0x04, 0xe4, 0x24, 0xf0, 0x40, 0x44, 0x8e, 0xe6, 0xdb, 0xf8, 0x20, 0x00, 0x42, 0xea, 0x00, 0x40, 0x4a, 0xf8, 0x03, 0x00, 0xdb, 0xe9, 0x0a, 0x01, 0x01, 0x9b, 0x41, 0xea, 0x00, 0x41, 0x04, 0x2b, 0x4a, 0xf8, 0x04, 0x10, 0xc5, 0xd1, 0xdb, 0xe9, 0x0c, 0x01, 0x41, 0xea, 0x00, 0x41, 0x1c, 0x48, 0x4a, 0xf8, 0x00, 0x10, 0x1b, 0x49, 0xdb, 0xf8, 0x38, 0x00, 0x4a, 0xf8, 0x01, 0x00, 0xb8, 0xe7, 0xdb, 0xe9, 0x0f, 0x01, 0x41, 0xea, 0x00, 0x41, 0x15, 0x48, 0x4a, 0xf8, 0x00, 0x10, 0xdb, 0xf8, 0x54, 0x00, 0xdb, 0xf8, 0x48, 0x10, 0x41, 0xea, 0x00, 0x41, 0x12, 0x48, 0x4a, 0xf8, 0x00, 0x10, 0xa7, 0xe7, 0x03, 0x9b, 0x43, 0xf0, 0x00, 0x70, 0x02, 0x9b, 0x40, 0xea, 0x03, 0x40, 0xb7, 0xe7, 0x00, 0xf0, 0xff, 0x3f, 0xd0, 0x00, 0x13, 0x03, 0xd4, 0x00, 0x13, 0x03, 0xd8, 0x00, 0x13, 0x03, 0xb0, 0x01, 0x13, 0x03, 0xe0, 0x00, 0x13, 0x03, 0xf4, 0x00, 0x13, 0x03, 0x00, 0x80, 0x80, 0x00, 0x90, 0x01, 0x13, 0x03, 0x94, 0x01, 0x13, 0x03, 0x02, 0x02, 0x10, 0x00, 0x64, 0x00, 0x13, 0x03, 0xe8, 0x00, 0x13, 0x03, 0xec, 0x00, 0x13, 0x03, 0xc1, 0x69, 0x83, 0x69, 0x2d, 0xe9, 0xf0, 0x4f, 0xc1, 0xf3, 0x02, 0x35, 0x07, 0x2d, 0x03, 0xf0, 0x0f, 0x0c, 0xc3, 0xf3, 0x07, 0x12, 0xc3, 0xf3, 0x01, 0x34, 0xc3, 0xf3, 0x81, 0x33, 0x1f, 0xd0, 0x6e, 0x1e, 0x75, 0x42, 0x75, 0x41, 0x1e, 0x02, 0x1f, 0x04, 0xdf, 0xf8, 0xd8, 0xe1, 0x09, 0x07, 0x4f, 0xea, 0x03, 0x61, 0x18, 0xbf, 0x0c, 0xf1, 0xff, 0x3c, 0x46, 0xea, 0x07, 0x0a, 0xac, 0xf1, 0x08, 0x09, 0x4a, 0xea, 0x01, 0x08, 0x0e, 0xf1, 0x08, 0x0e, 0x4e, 0xf8, 0x08, 0x8c, 0xdf, 0xf8, 0xb8, 0x81, 0xb9, 0xf1, 0x03, 0x0f, 0x56, 0xd8, 0xdf, 0xe8, 0x09, 0xf0, 0x04, 0x40, 0x47, 0x4d, 0x02, 0x25, 0xe0, 0xe7, 0x43, 0xf0, 0xf8, 0x51, 0x41, 0xf4, 0xf8, 0x11, 0x0e, 0x43, 0xc8, 0xf8, 0x00, 0x60, 0x41, 0xf6, 0x1f, 0x71, 0xce, 0xf8, 0x00, 0x10, 0x02, 0x2b, 0x4b, 0xd0, 0x43, 0xf6, 0x3f, 0x71, 0x43, 0xf6, 0x01, 0x76, 0x01, 0x2b, 0x08, 0xbf, 0x31, 0x46, 0x58, 0x4e, 0x03, 0x2c, 0x58, 0x4f, 0xa2, 0xf1, 0x0e, 0x08, 0x31, 0x60, 0xa3, 0xf1, 0x02, 0x01, 0x61, 0x44, 0x23, 0x44, 0x4f, 0xea, 0x01, 0x26, 0x18, 0xbf, 0x41, 0xf4, 0x7c, 0x11, 0x63, 0x44, 0x08, 0xbf, 0x46, 0xea, 0x01, 0x46, 0x31, 0x43, 0x50, 0x4e, 0x39, 0x60, 0x99, 0x1f, 0x41, 0xea, 0x01, 0x24, 0x4f, 0x4f, 0x08, 0x36, 0x44, 0xea, 0x01, 0x4e, 0x4e, 0xea, 0x01, 0x6c, 0x46, 0xf8, 0x08, 0xcc, 0xb8, 0xf1, 0x03, 0x0f, 0x77, 0xd8, 0xdf, 0xe8, 0x08, 0xf0, 0x22, 0x3e, 0x5c, 0x71, 0x43, 0xf0, 0xf8, 0x51, 0x0e, 0x43, 0x37, 0x43, 0xc8, 0xf8, 0x00, 0x70, 0xc3, 0xe7, 0x19, 0x43, 0x41, 0xea, 0x0a, 0x01, 0xc8, 0xf8, 0x00, 0x10, 0xbd, 0xe7, 0x19, 0x43, 0x41, 0xea, 0x0a, 0x01, 0xc8, 0xf8, 0x00, 0x10, 0x43, 0xf4, 0xf8, 0x51, 0xb7, 0xe7, 0x1e, 0x43, 0x0f, 0x43, 0x37, 0x43, 0xc8, 0xf8, 0x00, 0x70, 0xce, 0xf8, 0x00, 0x60, 0xb1, 0xe7, 0x40, 0xf2, 0x01, 0x11, 0xb7, 0xe7, 0x44, 0xf0, 0x70, 0x64, 0x44, 0xf4, 0x70, 0x24, 0x3c, 0x60, 0x40, 0xf6, 0x0f, 0x71, 0x31, 0x60, 0xc1, 0x69, 0xc1, 0xf3, 0x02, 0x31, 0x07, 0x29, 0x4a, 0xd1, 0xb0, 0xf8, 0x7a, 0x10, 0x01, 0xf0, 0x07, 0x01, 0x01, 0x39, 0x02, 0x29, 0x05, 0xd9, 0x06, 0x3a, 0x1a, 0x44, 0x42, 0xea, 0x02, 0x22, 0x2c, 0x4b, 0x1a, 0x60, 0xbd, 0xe8, 0xf0, 0x8f, 0xb0, 0xf8, 0x7a, 0x40, 0x04, 0xf0, 0x07, 0x04, 0x01, 0x3c, 0x01, 0x2c, 0x12, 0xd8, 0xac, 0x1f, 0x41, 0xf0, 0x70, 0x61, 0x1c, 0x44, 0x41, 0xea, 0x04, 0x21, 0x41, 0xea, 0x04, 0x41, 0x39, 0x60, 0xd9, 0x1d, 0x02, 0x2d, 0x21, 0x4c, 0x0c, 0xbf, 0x41, 0xea, 0x01, 0x21, 0x41, 0xf4, 0xf8, 0x51, 0x21, 0x60, 0xce, 0xe7, 0x4e, 0xf0, 0x70, 0x61, 0x39, 0x60, 0xca, 0xe7, 0xb0, 0xf8, 0x7a, 0x10, 0x01, 0xf0, 0x07, 0x01, 0x01, 0x29, 0x0b, 0xd1, 0xa9, 0x1f, 0x01, 0xeb, 0x03, 0x0c, 0x4f, 0xea, 0x0c, 0x61, 0x41, 0xea, 0x0c, 0x41, 0x0c, 0x43, 0x03, 0xf1, 0x08, 0x01, 0x3c, 0x60, 0xe0, 0xe7, 0xc7, 0xf8, 0x00, 0xc0, 0xb5, 0xe7, 0xc7, 0xf8, 0x00, 0xc0, 0x41, 0xf4, 0x70, 0x61, 0xb2, 0xe7, 0xc7, 0xf8, 0x00, 0xc0, 0x34, 0x60, 0xaf, 0xe7, 0x01, 0x29, 0x0b, 0xd1, 0xb0, 0xf8, 0x7a, 0x10, 0x01, 0xf0, 0x07, 0x01, 0x01, 0x39, 0x02, 0x29, 0xb8, 0xd9, 0x06, 0x3a, 0x1a, 0x44, 0x42, 0xf4, 0xf8, 0x52, 0xb1, 0xe7, 0x05, 0x4b, 0x41, 0xf6, 0x1f, 0x72, 0xae, 0xe7, 0x20, 0x02, 0x13, 0x03, 0x04, 0x02, 0x13, 0x03, 0x14, 0x02, 0x13, 0x03, 0x18, 0x02, 0x13, 0x03, 0x00, 0x02, 0x13, 0x03, 0x08, 0x02, 0x13, 0x03, 0x0c, 0x02, 0x13, 0x03, 0xc3, 0x69, 0x30, 0xb5, 0xc3, 0xf3, 0x02, 0x32, 0x07, 0x2a, 0x20, 0xd0, 0x40, 0xf2, 0x03, 0x33, 0x40, 0xf2, 0x01, 0x21, 0x01, 0x2a, 0x18, 0xbf, 0x0b, 0x46, 0x1f, 0x4a, 0x13, 0x60, 0x43, 0x68, 0x03, 0xf0, 0x07, 0x03, 0x04, 0x2b, 0x15, 0xd0, 0x07, 0x2b, 0x1f, 0xd0, 0x03, 0x2b, 0x1b, 0x4b, 0x18, 0xbf, 0x4f, 0xf0, 0x04, 0x23, 0x1a, 0x4a, 0x13, 0x60, 0x02, 0xf5, 0x00, 0x52, 0x13, 0x60, 0x02, 0xf5, 0x80, 0x52, 0x13, 0x60, 0x02, 0xf5, 0x80, 0x52, 0x13, 0x60, 0x30, 0xbd, 0x4f, 0xf0, 0x0f, 0x33, 0xe2, 0xe7, 0x02, 0x6b, 0xc2, 0xf3, 0x00, 0x33, 0x99, 0x1d, 0x93, 0x02, 0x03, 0xf4, 0xe0, 0x23, 0x43, 0xf4, 0x80, 0x63, 0x43, 0xea, 0x01, 0x63, 0xe4, 0xe7, 0x01, 0x68, 0x0d, 0x4c, 0xb1, 0xf5, 0xc8, 0x7f, 0xc1, 0xeb, 0xc1, 0x02, 0x34, 0xbf, 0x03, 0x21, 0x04, 0x21, 0x82, 0xfb, 0x04, 0x45, 0xd2, 0x17, 0xc2, 0xeb, 0xe5, 0x12, 0xd3, 0x1d, 0x8a, 0x1a, 0x1b, 0x06, 0x43, 0xf4, 0x80, 0x63, 0x43, 0xea, 0x02, 0x43, 0xce, 0xe7, 0x44, 0x02, 0x13, 0x03, 0x00, 0x04, 0x00, 0x06, 0x40, 0x02, 0x13, 0x03, 0xd3, 0x4d, 0x62, 0x10, 0x06, 0x4a, 0x13, 0x68, 0x19, 0x05, 0x03, 0xd5, 0x23, 0xf4, 0x80, 0x63, 0x13, 0x60, 0x70, 0x47, 0x81, 0x6f, 0x89, 0x06, 0xf8, 0xd4, 0x43, 0xf4, 0x80, 0x63, 0xf7, 0xe7, 0x00, 0x00, 0x13, 0x03, 0x83, 0x6f, 0x04, 0x4a, 0xdb, 0x0c, 0x11, 0x68, 0x03, 0xf4, 0x00, 0x63, 0x0b, 0x43, 0x13, 0x60, 0x70, 0x47, 0x00, 0xbf, 0x00, 0x00, 0x13, 0x03, 0x43, 0x68, 0x03, 0xf0, 0x0f, 0x03, 0x04, 0x3b, 0x04, 0x2b, 0x96, 0xbf, 0x09, 0x4a, 0x0a, 0x49, 0x52, 0xf8, 0x23, 0x10, 0xc3, 0x69, 0xda, 0x0a, 0x1b, 0x03, 0x02, 0xf0, 0x0e, 0x02, 0x03, 0xf4, 0x80, 0x53, 0x01, 0x32, 0x43, 0xf0, 0x40, 0x43, 0x43, 0xea, 0x02, 0x63, 0x03, 0x4a, 0x0b, 0x43, 0x13, 0x60, 0x70, 0x47, 0xf4, 0x51, 0x05, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x13, 0x03, 0x10, 0xb5, 0x04, 0x46, 0xff, 0xf7, 0xdc, 0xff, 0x43, 0x68, 0x04, 0x2b, 0x01, 0xd1, 0xff, 0xf7, 0xcb, 0xff, 0x63, 0x68, 0x03, 0x3b, 0x01, 0x2b, 0x02, 0xd8, 0x20, 0x46, 0xff, 0xf7, 0xb4, 0xff, 0x20, 0x46, 0xff, 0xf7, 0x5d, 0xff, 0xff, 0xf7, 0x55, 0xfe, 0xff, 0xf7, 0xbd, 0xf9, 0x09, 0x4b, 0x00, 0x22, 0x20, 0x46, 0x1a, 0x60, 0xff, 0xf7, 0x97, 0xf9, 0x63, 0x68, 0x04, 0x2b, 0x01, 0xd0, 0x08, 0x2b, 0x02, 0xd1, 0x20, 0x46, 0xff, 0xf7, 0x83, 0xf9, 0x20, 0x46, 0xbd, 0xe8, 0x10, 0x40, 0xff, 0xf7, 0x68, 0xb9, 0x30, 0x00, 0x13, 0x03, 0x08, 0xb5, 0x43, 0x68, 0x08, 0x2b, 0x0c, 0xd1, 0x1d, 0x4a, 0x13, 0x68, 0x43, 0xf0, 0x01, 0x03, 0x13, 0x60, 0x02, 0xf5, 0x9a, 0x22, 0x02, 0xf5, 0xb0, 0x72, 0x13, 0x68, 0x43, 0xf0, 0x01, 0x03, 0x13, 0x60, 0x18, 0x4a, 0x13, 0x68, 0x23, 0xf4, 0x7f, 0x43, 0x23, 0xf0, 0x08, 0x03, 0x43, 0xf4, 0x40, 0x53, 0x13, 0x60, 0x83, 0x6f, 0xdb, 0x00, 0x09, 0xd5, 0x13, 0x68, 0x12, 0x48, 0x23, 0xf0, 0x0f, 0x03, 0x43, 0xf0, 0x01, 0x03, 0x13, 0x60, 0x11, 0x68, 0xfa, 0xf7, 0xcf, 0xff, 0x0f, 0x4a, 0x13, 0x68, 0x23, 0xf0, 0xee, 0x43, 0x43, 0xf0, 0x4c, 0x53, 0x13, 0x60, 0xd3, 0x69, 0x1b, 0x0c, 0x1b, 0x04, 0x43, 0xf4, 0x00, 0x63, 0x43, 0xf0, 0x08, 0x03, 0xd3, 0x61, 0x13, 0x69, 0x03, 0xf4, 0x7f, 0x03, 0x43, 0xf0, 0xf8, 0x53, 0x43, 0xf0, 0x30, 0x03, 0x13, 0x61, 0x08, 0xbd, 0x00, 0xbf, 0xa8, 0x3e, 0x02, 0x02, 0x50, 0x02, 0x13, 0x03, 0x41, 0x59, 0x05, 0x00, 0x54, 0x02, 0x13, 0x03, 0x2d, 0xe9, 0xf0, 0x41, 0x80, 0x46, 0x2c, 0x4d, 0x05, 0x20, 0x2c, 0x4e, 0x2b, 0x68, 0x2c, 0x4f, 0x2c, 0x4c, 0x23, 0xf0, 0x00, 0x43, 0x43, 0xf0, 0x00, 0x63, 0x2b, 0x60, 0x2b, 0x68, 0x23, 0xf0, 0x80, 0x43, 0x43, 0xf0, 0x00, 0x63, 0x2b, 0x60, 0x33, 0x68, 0x23, 0xf0, 0x01, 0x03, 0x33, 0x60, 0x33, 0x68, 0x23, 0xf4, 0x80, 0x33, 0x33, 0x60, 0x3b, 0x68, 0x23, 0xf0, 0x00, 0x43, 0x3b, 0x60, 0x23, 0x68, 0x23, 0xf0, 0x00, 0x43, 0x23, 0x60, 0xfa, 0xf7, 0x4e, 0xfa, 0xd8, 0xf8, 0x00, 0x00, 0x42, 0x46, 0x39, 0x46, 0x40, 0x00, 0xfc, 0xf7, 0x89, 0xfd, 0x23, 0x68, 0x05, 0x20, 0x43, 0xf0, 0x30, 0x63, 0x23, 0x60, 0x23, 0x68, 0x23, 0xf0, 0x1f, 0x03, 0x43, 0xf0, 0x03, 0x02, 0x43, 0xf0, 0x00, 0x63, 0x43, 0xf0, 0x03, 0x03, 0x22, 0x60, 0x23, 0x60, 0x33, 0x68, 0x43, 0xf4, 0x80, 0x33, 0x33, 0x60, 0x33, 0x68, 0x43, 0xf0, 0x01, 0x03, 0x33, 0x60, 0x2b, 0x68, 0x43, 0xf0, 0x90, 0x43, 0x2b, 0x60, 0x2b, 0x68, 0x43, 0xf0, 0x08, 0x43, 0x2b, 0x60, 0x23, 0x68, 0x43, 0xf0, 0x08, 0x43, 0x23, 0x60, 0x23, 0x68, 0x23, 0xf0, 0x40, 0x73, 0x43, 0xf0, 0x00, 0x63, 0x23, 0x60, 0xbd, 0xe8, 0xf0, 0x41, 0xfa, 0xf7, 0x19, 0xba, 0x00, 0xbf, 0x40, 0x15, 0x00, 0x02, 0x0c, 0x18, 0x00, 0x02, 0x10, 0x10, 0x00, 0x02, 0x00, 0x18, 0x00, 0x02, 0x10, 0xb5, 0x04, 0x46, 0xff, 0xf7, 0x98, 0xff, 0x20, 0x46, 0x00, 0xf0, 0xc3, 0xfb, 0x63, 0x68, 0x04, 0x2b, 0x04, 0xbf, 0x4f, 0xf0, 0x80, 0x43, 0x1b, 0x68, 0x10, 0xbd, 0x2d, 0xe9, 0xf8, 0x4f, 0x04, 0x46, 0xc6, 0x6e, 0x85, 0x69, 0x46, 0xf0, 0x80, 0x53, 0xc3, 0x66, 0x43, 0x68, 0x04, 0x2b, 0x0c, 0xbf, 0x4b, 0xf2, 0xeb, 0x03, 0x43, 0xf2, 0xeb, 0x03, 0x83, 0x61, 0xd0, 0xe9, 0x06, 0x73, 0x13, 0xf0, 0x0f, 0x0f, 0x14, 0xbf, 0x4f, 0xf0, 0x01, 0x09, 0x4f, 0xf0, 0x02, 0x09, 0xff, 0xf7, 0xd7, 0xff, 0x10, 0xb9, 0x00, 0x20, 0xbd, 0xe8, 0xf8, 0x8f, 0x4f, 0xf0, 0x80, 0x42, 0x00, 0x23, 0xd9, 0x07, 0x54, 0xbf, 0xd1, 0x43, 0x11, 0x46, 0x42, 0xf8, 0x04, 0x1b, 0xbf, 0xf3, 0x4f, 0x8f, 0x01, 0x33, 0x10, 0x2b, 0xf4, 0xd1, 0x4f, 0xf0, 0x80, 0x43, 0x00, 0x21, 0xc8, 0x07, 0x40, 0xf1, 0x89, 0x80, 0x1a, 0x46, 0x18, 0x6c, 0x82, 0x42, 0x40, 0xf0, 0x86, 0x80, 0x01, 0x31, 0x04, 0x33, 0x10, 0x29, 0xf3, 0xd1, 0x4f, 0xf0, 0x01, 0x08, 0xc7, 0xf3, 0x81, 0x32, 0x4f, 0xf0, 0x01, 0x0e, 0x4a, 0x44, 0x07, 0x27, 0xd0, 0x19, 0x4f, 0xf0, 0x80, 0x43, 0x0e, 0xfa, 0x00, 0xf0, 0x00, 0x21, 0x50, 0xf8, 0x03, 0x90, 0x11, 0xf0, 0x01, 0x0f, 0x0c, 0xbf, 0x6f, 0xea, 0x03, 0x0c, 0x9c, 0x46, 0xe1, 0x45, 0x40, 0xf0, 0x84, 0x80, 0x01, 0x31, 0x04, 0x33, 0x10, 0x29, 0xf0, 0xd1, 0x01, 0x23, 0x0d, 0x32, 0x03, 0xfa, 0x02, 0xf2, 0x4f, 0xf0, 0x80, 0x41, 0x00, 0x23, 0x52, 0xf8, 0x01, 0xc0, 0xd8, 0x07, 0x54, 0xbf, 0xc8, 0x43, 0x08, 0x46, 0x84, 0x45, 0x6d, 0xd1, 0x01, 0x33, 0x04, 0x31, 0x10, 0x2b, 0xf3, 0xd1, 0x4f, 0xf0, 0x02, 0x0a, 0x63, 0x68, 0x20, 0x46, 0x04, 0x2b, 0x0c, 0xbf, 0x46, 0xf2, 0x18, 0x13, 0x42, 0xf2, 0x18, 0x13, 0xa3, 0x61, 0xd4, 0xe9, 0x06, 0x93, 0x13, 0xf0, 0x0f, 0x0f, 0x14, 0xbf, 0x4f, 0xf0, 0x01, 0x0b, 0x4f, 0xf0, 0x02, 0x0b, 0xff, 0xf7, 0x70, 0xff, 0x00, 0x28, 0x97, 0xd0, 0x4f, 0xf0, 0x80, 0x42, 0x00, 0x23, 0xd9, 0x07, 0x54, 0xbf, 0xd1, 0x43, 0x11, 0x46, 0x42, 0xf8, 0x04, 0x1b, 0xbf, 0xf3, 0x4f, 0x8f, 0x01, 0x33, 0x10, 0x2b, 0xf4, 0xd1, 0xc9, 0xf3, 0x81, 0x39, 0x0c, 0x21, 0x09, 0xf1, 0x0a, 0x09, 0x4f, 0xf0, 0x01, 0x0e, 0xd9, 0x44, 0x09, 0xeb, 0x01, 0x00, 0x4f, 0xf0, 0x80, 0x42, 0x0e, 0xfa, 0x00, 0xf0, 0x00, 0x23, 0x50, 0xf8, 0x02, 0xb0, 0x13, 0xf0, 0x01, 0x0f, 0x0c, 0xbf, 0x6f, 0xea, 0x02, 0x0c, 0x94, 0x46, 0xe3, 0x45, 0x32, 0xd1, 0x01, 0x33, 0x04, 0x32, 0x10, 0x2b, 0xf1, 0xd1, 0x2b, 0x0c, 0xe6, 0x66, 0x01, 0x20, 0x1b, 0x04, 0x43, 0xea, 0x88, 0x33, 0x3b, 0x43, 0x43, 0xea, 0x0a, 0x33, 0x43, 0xea, 0x01, 0x13, 0xa3, 0x61, 0x60, 0xe7, 0xda, 0x43, 0x75, 0xe7, 0x4f, 0xf0, 0x80, 0x43, 0x00, 0x21, 0xca, 0x07, 0x10, 0xd5, 0x1a, 0x46, 0xd3, 0xf8, 0x80, 0x00, 0x82, 0x42, 0x03, 0xd1, 0x01, 0x31, 0x04, 0x33, 0x10, 0x29, 0xf4, 0xd1, 0x63, 0x68, 0x04, 0x2b, 0x14, 0xbf, 0x4f, 0xf0, 0x00, 0x08, 0x4f, 0xf0, 0x02, 0x08, 0x69, 0xe7, 0xda, 0x43, 0xed, 0xe7, 0x4f, 0xf0, 0x03, 0x0a, 0x94, 0xe7, 0x01, 0x37, 0x0b, 0x2f, 0x7f, 0xf4, 0x67, 0xaf, 0x7a, 0xe7, 0x01, 0x31, 0x11, 0x29, 0xb8, 0xd1, 0xcc, 0xe7, 0x2d, 0xe9, 0xf0, 0x47, 0x04, 0x46, 0xc7, 0x6e, 0xd0, 0xf8, 0x78, 0x80, 0x47, 0xf0, 0x80, 0x53, 0xd0, 0xe9, 0x06, 0x96, 0xc3, 0x66, 0x48, 0xf0, 0x01, 0x03, 0x83, 0x67, 0x43, 0x68, 0x04, 0x2b, 0x0c, 0xbf, 0x46, 0xf2, 0xb7, 0x03, 0x42, 0xf2, 0xb7, 0x03, 0x83, 0x61, 0x4f, 0xf4, 0xe0, 0x43, 0xc3, 0x61, 0xff, 0xf7, 0xf5, 0xfe, 0x05, 0x46, 0x88, 0xb1, 0x4c, 0x48, 0x36, 0x0c, 0x4f, 0xf0, 0x01, 0x0a, 0xfa, 0xf7, 0x37, 0xfe, 0xe3, 0x69, 0x36, 0x04, 0xc4, 0xf8, 0x78, 0x80, 0xc4, 0xf8, 0x18, 0x90, 0x1e, 0x43, 0xe7, 0x66, 0xe6, 0x61, 0x50, 0x46, 0xbd, 0xe8, 0xf0, 0x87, 0xa3, 0x6f, 0x9a, 0x07, 0x0a, 0xd5, 0x20, 0x46, 0xfd, 0xf7, 0xfb, 0xff, 0x01, 0x28, 0x08, 0xbf, 0x0a, 0x25, 0x01, 0x35, 0x09, 0x2d, 0xf6, 0xd9, 0x00, 0x28, 0xdf, 0xd1, 0x4f, 0xf4, 0x80, 0x53, 0x20, 0x46, 0xe3, 0x61, 0xff, 0xf7, 0xcd, 0xfe, 0x05, 0x46, 0x08, 0xb1, 0x39, 0x48, 0xd6, 0xe7, 0xa3, 0x6f, 0x9b, 0x07, 0x0a, 0xd5, 0x20, 0x46, 0xfd, 0xf7, 0xe3, 0xff, 0x01, 0x28, 0x08, 0xbf, 0x0a, 0x25, 0x01, 0x35, 0x09, 0x2d, 0xf6, 0xd9, 0x00, 0x28, 0xef, 0xd1, 0x00, 0x23, 0x20, 0x46, 0xe3, 0x61, 0xff, 0xf7, 0xb6, 0xfe, 0x05, 0x46, 0x08, 0xb1, 0x2e, 0x48, 0xbf, 0xe7, 0xa3, 0x6f, 0x98, 0x07, 0x0a, 0xd5, 0x20, 0x46, 0xfd, 0xf7, 0xcc, 0xff, 0x01, 0x28, 0x08, 0xbf, 0x0a, 0x25, 0x01, 0x35, 0x09, 0x2d, 0xf6, 0xd9, 0x00, 0x28, 0xef, 0xd1, 0x47, 0xf2, 0x01, 0x03, 0x20, 0x46, 0xe3, 0x61, 0xff, 0xf7, 0x9e, 0xfe, 0x05, 0x46, 0x08, 0xb1, 0x23, 0x48, 0xa7, 0xe7, 0xa3, 0x6f, 0x99, 0x07, 0x0a, 0xd5, 0x20, 0x46, 0xfd, 0xf7, 0xb4, 0xff, 0x01, 0x28, 0x08, 0xbf, 0x0a, 0x25, 0x01, 0x35, 0x09, 0x2d, 0xf6, 0xd9, 0x00, 0x28, 0xef, 0xd1, 0x41, 0xf2, 0x01, 0x03, 0x20, 0x46, 0xe3, 0x61, 0xff, 0xf7, 0x86, 0xfe, 0x05, 0x46, 0x08, 0xb1, 0x18, 0x48, 0x8f, 0xe7, 0xa3, 0x6f, 0x9a, 0x07, 0x0a, 0xd5, 0x20, 0x46, 0xfd, 0xf7, 0x9c, 0xff, 0x01, 0x28, 0x08, 0xbf, 0x0a, 0x25, 0x01, 0x35, 0x09, 0x2d, 0xf6, 0xd9, 0x00, 0x28, 0xef, 0xd1, 0x01, 0x23, 0x20, 0x46, 0xe3, 0x61, 0xff, 0xf7, 0x6f, 0xfe, 0x82, 0x46, 0x08, 0xb1, 0x0e, 0x48, 0x78, 0xe7, 0xa3, 0x6f, 0x9b, 0x07, 0x83, 0xd5, 0x05, 0x46, 0x20, 0x46, 0xfd, 0xf7, 0x84, 0xff, 0x01, 0x28, 0x08, 0xbf, 0x0a, 0x25, 0x01, 0x35, 0x09, 0x2d, 0xf6, 0xd9, 0x00, 0x28, 0x3f, 0xf4, 0x77, 0xaf, 0xec, 0xe7, 0x5d, 0x59, 0x05, 0x00, 0x8a, 0x59, 0x05, 0x00, 0xb7, 0x59, 0x05, 0x00, 0xe4, 0x59, 0x05, 0x00, 0x12, 0x5a, 0x05, 0x00, 0x40, 0x5a, 0x05, 0x00, 0x2d, 0xe9, 0xf8, 0x4f, 0x04, 0x46, 0x83, 0x6f, 0xd0, 0xf8, 0x00, 0xa0, 0x13, 0xf0, 0x04, 0x06, 0x1e, 0xbf, 0x23, 0xf0, 0x04, 0x03, 0x01, 0x26, 0x83, 0x67, 0x83, 0x6f, 0xd8, 0x04, 0x05, 0xd5, 0xba, 0xf5, 0xb4, 0x7f, 0x84, 0xbf, 0x4f, 0xf4, 0xb4, 0x72, 0x22, 0x60, 0x13, 0xf4, 0x00, 0x65, 0x55, 0xd0, 0x4f, 0xf4, 0xb4, 0x72, 0xd4, 0xf8, 0x00, 0xa0, 0x22, 0x60, 0x62, 0x68, 0x65, 0x69, 0xd4, 0xf8, 0x7c, 0x90, 0x03, 0x2a, 0xd4, 0xe9, 0x1c, 0x87, 0x24, 0xd1, 0x4f, 0xf0, 0x90, 0x32, 0x62, 0x61, 0x4f, 0xf0, 0x48, 0x32, 0xe2, 0x67, 0x6c, 0x4a, 0x22, 0x67, 0x6c, 0x4a, 0x62, 0x67, 0x9a, 0x01, 0x0d, 0xd5, 0x6b, 0x4a, 0x65, 0x69, 0xdf, 0xf8, 0xcc, 0xc1, 0x62, 0x61, 0x6a, 0x4a, 0xd4, 0xe9, 0x1c, 0x87, 0xd4, 0xf8, 0x7c, 0x90, 0xc4, 0xe9, 0x1c, 0xc2, 0x67, 0x4a, 0xe2, 0x67, 0x59, 0x04, 0x30, 0xd5, 0x20, 0x46, 0xff, 0xf7, 0x17, 0xfe, 0x00, 0x28, 0x31, 0xd1, 0x00, 0x26, 0x30, 0x46, 0xbd, 0xe8, 0xf8, 0x8f, 0x04, 0x2a, 0x09, 0xd1, 0x4f, 0xf0, 0x97, 0x32, 0x62, 0x61, 0x4f, 0xf0, 0x48, 0x32, 0xe2, 0x67, 0x5e, 0x4a, 0x22, 0x67, 0x5e, 0x4a, 0xd7, 0xe7, 0x07, 0x2a, 0x08, 0xd1, 0x4f, 0xf0, 0x68, 0x32, 0x4f, 0xf0, 0x50, 0x31, 0x62, 0x61, 0x22, 0x67, 0xe1, 0x67, 0x59, 0x4a, 0xcc, 0xe7, 0x08, 0x2a, 0xcb, 0xd1, 0x4f, 0xf0, 0x84, 0x32, 0x62, 0x61, 0x4f, 0xf0, 0x48, 0x32, 0xe2, 0x67, 0x4f, 0xf0, 0x9a, 0x32, 0x22, 0x67, 0x54, 0x4a, 0xbf, 0xe7, 0xa9, 0x46, 0x2f, 0x46, 0xa8, 0x46, 0xbc, 0xe7, 0x20, 0x46, 0xff, 0xf7, 0xc8, 0xfe, 0x00, 0x28, 0xc9, 0xd1, 0xcd, 0xe7, 0xa3, 0x6f, 0x1a, 0x04, 0x5e, 0xbf, 0x43, 0xf4, 0xc0, 0x43, 0x43, 0xf0, 0x01, 0x03, 0xa3, 0x67, 0xa3, 0x6f, 0x18, 0x03, 0x2e, 0xd5, 0x20, 0x46, 0xff, 0xf7, 0xc7, 0xfd, 0x00, 0x28, 0xbd, 0xd0, 0x20, 0x46, 0xfc, 0xf7, 0x82, 0xfa, 0xa3, 0x6f, 0xb0, 0xf5, 0x80, 0x5f, 0x23, 0xf4, 0x00, 0x23, 0xa3, 0x67, 0x3b, 0xd1, 0x4f, 0xf0, 0x20, 0x43, 0x4f, 0xf0, 0xa0, 0x32, 0x1a, 0x60, 0xbf, 0xf3, 0x4f, 0x8f, 0x1b, 0x68, 0x93, 0x42, 0x07, 0xd0, 0xa1, 0x6f, 0x3c, 0x48, 0x41, 0xf4, 0x80, 0x31, 0xa1, 0x67, 0xfa, 0xf7, 0xf4, 0xfc, 0x0d, 0xe0, 0x4f, 0xf0, 0x70, 0x33, 0x4f, 0xf0, 0xe0, 0x4b, 0xcb, 0xf8, 0x00, 0x30, 0x01, 0x20, 0xf9, 0xf7, 0xb0, 0xff, 0xdb, 0xf8, 0x00, 0x30, 0xb3, 0xf1, 0x70, 0x3f, 0xe9, 0xd1, 0xa3, 0x6f, 0x99, 0x01, 0x09, 0xd5, 0xe2, 0x69, 0xc2, 0xf3, 0x02, 0x32, 0x01, 0x2a, 0x3d, 0xd1, 0x65, 0x61, 0xc4, 0xe9, 0x1c, 0x87, 0xc4, 0xf8, 0x7c, 0x90, 0x1a, 0x05, 0xc4, 0xf8, 0x00, 0xa0, 0x42, 0xbf, 0x65, 0x61, 0xc4, 0xf8, 0x7c, 0x90, 0xc4, 0xe9, 0x1c, 0x87, 0x00, 0x2e, 0x38, 0xd0, 0x43, 0xf0, 0x04, 0x03, 0xa3, 0x67, 0x78, 0xe7, 0xb0, 0xf5, 0x00, 0x6f, 0xe0, 0xd1, 0x4f, 0xf0, 0xe0, 0x43, 0x4f, 0xf0, 0x70, 0x32, 0x1a, 0x60, 0xbf, 0xf3, 0x4f, 0x8f, 0x1b, 0x68, 0x93, 0x42, 0x05, 0xd0, 0xa1, 0x6f, 0x41, 0xf4, 0x00, 0x31, 0xa1, 0x67, 0x1c, 0x48, 0xbf, 0xe7, 0x4f, 0xf0, 0x20, 0x4b, 0x4f, 0xf0, 0xa0, 0x33, 0xcb, 0xf8, 0x00, 0x30, 0x4f, 0xf0, 0x80, 0x32, 0x4f, 0xf0, 0x00, 0x43, 0x01, 0x20, 0x1a, 0x60, 0xf9, 0xf7, 0x6e, 0xff, 0xdb, 0xf8, 0x00, 0x30, 0xb3, 0xf1, 0xa0, 0x3f, 0xbd, 0xd0, 0xa1, 0x6f, 0x41, 0xf4, 0xa0, 0x21, 0xe5, 0xe7, 0x00, 0x2a, 0xc4, 0xd1, 0x22, 0x6d, 0x62, 0x61, 0xe2, 0x6d, 0x22, 0x67, 0x22, 0x6e, 0x62, 0x67, 0x62, 0x6d, 0xe2, 0x67, 0xbb, 0xe7, 0x01, 0x26, 0x41, 0xe7, 0x92, 0x90, 0x92, 0x92, 0x1a, 0x14, 0x1c, 0x20, 0x1c, 0x1a, 0x15, 0x14, 0x17, 0x18, 0x17, 0x18, 0x2b, 0x28, 0x28, 0x2a, 0x9a, 0x98, 0x9a, 0x9a, 0x0c, 0x0a, 0x0d, 0x0e, 0x0d, 0x0a, 0x0b, 0x0c, 0x0a, 0x07, 0x0f, 0x0e, 0x6e, 0x5a, 0x05, 0x00, 0x9f, 0x5a, 0x05, 0x00, 0x19, 0x16, 0x13, 0x0e, 0x2d, 0xe9, 0xf8, 0x43, 0x05, 0x46, 0xfd, 0xf7, 0x2b, 0xfc, 0x00, 0x27, 0x28, 0x46, 0x6d, 0x4a, 0x01, 0x24, 0x29, 0x68, 0x6c, 0x4e, 0x13, 0x68, 0xb1, 0xf5, 0x34, 0x7f, 0x23, 0xf0, 0xf8, 0x53, 0x2c, 0xbf, 0x43, 0xf0, 0x40, 0x63, 0x43, 0xf0, 0xd8, 0x53, 0x13, 0x60, 0xfc, 0xf7, 0x8c, 0xfa, 0x37, 0x60, 0x29, 0x46, 0x38, 0x46, 0xfe, 0xf7, 0xaf, 0xfd, 0x34, 0x60, 0xeb, 0x6e, 0x13, 0xf4, 0x80, 0x16, 0x11, 0xd0, 0x18, 0x03, 0x72, 0xd5, 0x28, 0x46, 0xfd, 0xf7, 0x43, 0xfd, 0x01, 0x28, 0x04, 0x46, 0x08, 0xbf, 0x05, 0x27, 0x01, 0x37, 0x04, 0x2f, 0xf5, 0xd9, 0x00, 0x2c, 0x6b, 0xd1, 0x01, 0x26, 0x5a, 0x48, 0xfa, 0xf7, 0x46, 0xfc, 0xeb, 0x6e, 0x13, 0xf4, 0x00, 0x17, 0x0f, 0xd0, 0x19, 0x03, 0x63, 0xd5, 0x00, 0x27, 0x28, 0x46, 0xfd, 0xf7, 0x12, 0xfe, 0x01, 0x28, 0x04, 0x46, 0x08, 0xbf, 0x05, 0x27, 0x01, 0x37, 0x04, 0x2f, 0xf5, 0xd9, 0xb4, 0xfa, 0x84, 0xf7, 0x7f, 0x09, 0xeb, 0x6e, 0x13, 0xf4, 0x80, 0x09, 0x18, 0xd0, 0x01, 0x2f, 0x59, 0xd0, 0x1a, 0x03, 0x52, 0xd5, 0xb8, 0x46, 0x28, 0x46, 0xfe, 0xf7, 0xf6, 0xf8, 0x01, 0x28, 0x04, 0x46, 0x08, 0xbf, 0x4f, 0xf0, 0x05, 0x08, 0x08, 0xf1, 0x01, 0x08, 0xb8, 0xf1, 0x04, 0x0f, 0xf2, 0xd9, 0x00, 0x2c, 0x4a, 0xd1, 0x4f, 0xf0, 0x01, 0x09, 0x42, 0x48, 0xfa, 0xf7, 0x15, 0xfc, 0xeb, 0x6e, 0x13, 0xf4, 0x00, 0x02, 0x16, 0xd0, 0x01, 0x2f, 0x46, 0xd0, 0x1b, 0x03, 0x3f, 0xd5, 0xb8, 0x46, 0x28, 0x46, 0xfe, 0xf7, 0x43, 0xfb, 0x01, 0x28, 0x04, 0x46, 0x08, 0xbf, 0x4f, 0xf0, 0x05, 0x08, 0x08, 0xf1, 0x01, 0x08, 0xb8, 0xf1, 0x04, 0x0f, 0xf2, 0xd9, 0xbc, 0xbb, 0x36, 0x48, 0xfa, 0xf7, 0xfb, 0xfb, 0x01, 0x22, 0xeb, 0x6e, 0x3e, 0x43, 0x46, 0xea, 0x09, 0x06, 0x16, 0x43, 0x13, 0xf4, 0x00, 0x23, 0x54, 0xd0, 0x8e, 0xb3, 0x31, 0x4e, 0x00, 0x27, 0x33, 0x68, 0x01, 0x33, 0x0a, 0x2b, 0x33, 0x60, 0x25, 0xd1, 0x3c, 0x46, 0x2e, 0x48, 0xfa, 0xf7, 0xe6, 0xfb, 0x20, 0x46, 0xbd, 0xe8, 0xf8, 0x83, 0x28, 0x46, 0xfd, 0xf7, 0xd0, 0xfc, 0x04, 0x46, 0x91, 0xe7, 0x00, 0x26, 0x95, 0xe7, 0x28, 0x46, 0xfd, 0xf7, 0xaf, 0xfd, 0x04, 0x46, 0xa1, 0xe7, 0x28, 0x46, 0xfe, 0xf7, 0xa4, 0xf8, 0x04, 0x46, 0xb5, 0xe7, 0x4f, 0xf0, 0x00, 0x09, 0xb9, 0xe7, 0xb9, 0x46, 0xb7, 0xe7, 0x28, 0x46, 0xfe, 0xf7, 0x04, 0xfb, 0x04, 0x46, 0xc8, 0xe7, 0x00, 0x22, 0xcb, 0xe7, 0x3a, 0x46, 0xc9, 0xe7, 0x28, 0x46, 0xff, 0xf7, 0x77, 0xfc, 0x04, 0x46, 0x37, 0x60, 0x28, 0x46, 0xfc, 0xf7, 0xd4, 0xfd, 0xab, 0x6f, 0x23, 0xf4, 0xff, 0x63, 0x23, 0xf0, 0x02, 0x03, 0x1b, 0x05, 0x1b, 0x0d, 0x05, 0x2b, 0xcc, 0xd1, 0x01, 0x21, 0x28, 0x46, 0xfd, 0xf7, 0x7b, 0xfe, 0x02, 0x21, 0x06, 0x46, 0x28, 0x46, 0xfd, 0xf7, 0x76, 0xfe, 0x30, 0x40, 0x03, 0x21, 0x04, 0x40, 0x28, 0x46, 0xfd, 0xf7, 0x70, 0xfe, 0x00, 0x21, 0x04, 0x40, 0x28, 0x46, 0xfd, 0xf7, 0x6b, 0xfe, 0x04, 0x40, 0xb6, 0xe7, 0x00, 0x2e, 0xdb, 0xd0, 0x1c, 0x46, 0xb2, 0xe7, 0x00, 0xbf, 0x14, 0x00, 0x14, 0x03, 0x20, 0x03, 0x13, 0x03, 0xd2, 0x5a, 0x05, 0x00, 0xe9, 0x5a, 0x05, 0x00, 0xff, 0x5a, 0x05, 0x00, 0x80, 0x6e, 0x05, 0x00, 0x16, 0x5b, 0x05, 0x00, 0x10, 0xb5, 0x04, 0x46, 0xfd, 0xf7, 0x2a, 0xfb, 0x20, 0x46, 0xbd, 0xe8, 0x10, 0x40, 0xff, 0xf7, 0x07, 0xbf, 0x00, 0x00, 0x11, 0x4a, 0x38, 0xb5, 0x04, 0x46, 0x11, 0x49, 0x13, 0x68, 0x43, 0xf4, 0x00, 0x73, 0x13, 0x60, 0x0b, 0x68, 0x23, 0xf0, 0x80, 0x73, 0x43, 0xf0, 0x02, 0x23, 0x0b, 0x60, 0x13, 0x68, 0x43, 0xf4, 0x00, 0x43, 0x13, 0x60, 0xff, 0xf7, 0x76, 0xfb, 0x09, 0x4b, 0x00, 0x22, 0x20, 0x46, 0x1a, 0x60, 0xff, 0xf7, 0x44, 0xfb, 0x20, 0x46, 0xff, 0xf7, 0xd9, 0xff, 0x05, 0x46, 0x20, 0x46, 0xfe, 0xf7, 0xbb, 0xfc, 0x28, 0x46, 0x38, 0xbd, 0x00, 0xbf, 0x20, 0x00, 0x12, 0x03, 0x08, 0x00, 0x12, 0x03, 0x38, 0x00, 0x13, 0x03, 0x2d, 0xe9, 0xf3, 0x41, 0x0c, 0x46, 0x8f, 0x6f, 0x48, 0x48, 0x17, 0xf4, 0x00, 0x07, 0x14, 0xbf, 0xd1, 0xe9, 0x1c, 0x78, 0xb8, 0x46, 0x46, 0x49, 0xfa, 0xf7, 0x48, 0xfb, 0x45, 0x4a, 0x20, 0x46, 0x13, 0x68, 0x43, 0xf4, 0x80, 0x73, 0x13, 0x60, 0x93, 0x68, 0x23, 0xf0, 0x3f, 0x03, 0x93, 0x60, 0xfc, 0xf7, 0xde, 0xf8, 0x18, 0xb9, 0x00, 0x20, 0x02, 0xb0, 0xbd, 0xe8, 0xf0, 0x81, 0xa3, 0x6f, 0xdd, 0x07, 0x12, 0xd5, 0xe3, 0x6d, 0x00, 0x2b, 0x15, 0xda, 0x21, 0x68, 0x3a, 0x48, 0xfa, 0xf7, 0x2d, 0xfb, 0x61, 0x68, 0x39, 0x48, 0xfa, 0xf7, 0x29, 0xfb, 0x20, 0x46, 0xff, 0xf7, 0xdc, 0xfb, 0xb0, 0xb9, 0x37, 0x48, 0xfa, 0xf7, 0x22, 0xfb, 0xe5, 0xe7, 0x20, 0x46, 0xff, 0xf7, 0x86, 0xfd, 0x00, 0x28, 0xe7, 0xd1, 0xdf, 0xe7, 0xa3, 0x6f, 0x18, 0x05, 0xe6, 0xd5, 0x20, 0x46, 0xfb, 0xf7, 0xd7, 0xff, 0xa3, 0x6f, 0x23, 0xf4, 0x00, 0x63, 0xa3, 0x67, 0x00, 0x28, 0xdd, 0xd0, 0xd2, 0xe7, 0xe6, 0x69, 0xb3, 0x0f, 0x03, 0x2b, 0x0c, 0xd1, 0x20, 0x46, 0xfc, 0xf7, 0x7d, 0xf8, 0xc6, 0xf3, 0x0d, 0x42, 0x05, 0x46, 0x82, 0x42, 0x08, 0xd0, 0x01, 0x46, 0x26, 0x48, 0xfa, 0xf7, 0xfe, 0xfa, 0xc1, 0xe7, 0x02, 0x2b, 0x20, 0xd1, 0xc6, 0xf3, 0x0d, 0x45, 0x23, 0x4b, 0x29, 0x46, 0x23, 0x48, 0x1b, 0x68, 0xa3, 0x6f, 0x00, 0x93, 0xd4, 0xe9, 0x06, 0x23, 0xfa, 0xf7, 0xef, 0xfa, 0xa3, 0x6f, 0x28, 0x46, 0xd9, 0x01, 0x4f, 0xf4, 0x80, 0x51, 0x41, 0xbf, 0x1d, 0x4a, 0x13, 0x68, 0x43, 0xf0, 0x09, 0x03, 0x13, 0x60, 0xa3, 0x6f, 0x1a, 0x02, 0x48, 0xbf, 0xc4, 0xe9, 0x1c, 0x78, 0xfc, 0xf7, 0x17, 0xf8, 0x50, 0xb9, 0x28, 0x46, 0x9f, 0xe7, 0xb6, 0xb2, 0x20, 0x46, 0xfc, 0xf7, 0x4c, 0xf8, 0x46, 0xea, 0x00, 0x46, 0x05, 0x46, 0xe6, 0x61, 0xd7, 0xe7, 0xa3, 0x6f, 0x5b, 0x06, 0x92, 0xd4, 0x20, 0x46, 0xff, 0xf7, 0x81, 0xfb, 0x00, 0x28, 0xa3, 0xd0, 0x4f, 0xf4, 0x80, 0x51, 0x28, 0x46, 0xfb, 0xf7, 0xfe, 0xff, 0x00, 0x28, 0xe5, 0xd0, 0x85, 0xe7, 0x00, 0xbf, 0x34, 0x5b, 0x05, 0x00, 0x2c, 0x5b, 0x05, 0x00, 0x60, 0x01, 0x00, 0x03, 0x4e, 0x5b, 0x05, 0x00, 0x60, 0x5b, 0x05, 0x00, 0x9a, 0x5b, 0x05, 0x00, 0xb4, 0x5b, 0x05, 0x00, 0x00, 0x62, 0x00, 0x03, 0xf4, 0x5b, 0x05, 0x00, 0x30, 0x00, 0x13, 0x03, 0x07, 0x4b, 0x1b, 0x68, 0x03, 0x2b, 0x01, 0xd1, 0x00, 0xf0, 0x7a, 0xb9, 0x05, 0x4b, 0x93, 0xf8, 0x35, 0x00, 0x10, 0xf1, 0xff, 0x30, 0x18, 0xbf, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x00, 0xbf, 0x84, 0x6e, 0x05, 0x00, 0x00, 0xc0, 0x04, 0x00, 0x04, 0x4b, 0x1b, 0x68, 0x03, 0x2b, 0x02, 0xd1, 0x01, 0x22, 0x00, 0xf0, 0x75, 0xb9, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x84, 0x6e, 0x05, 0x00, 0x04, 0x4b, 0x1b, 0x68, 0x03, 0x2b, 0x01, 0xd1, 0x00, 0xf0, 0x62, 0xb9, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x00, 0xbf, 0x84, 0x6e, 0x05, 0x00, 0x38, 0xb5, 0x4f, 0xf0, 0xff, 0x34, 0x04, 0x4d, 0x2c, 0x60, 0x00, 0xf0, 0x5f, 0xf9, 0x03, 0x28, 0x0c, 0xbf, 0x28, 0x60, 0x20, 0x46, 0x38, 0xbd, 0x84, 0x6e, 0x05, 0x00, 0x01, 0x4b, 0x93, 0xf8, 0x35, 0x00, 0x70, 0x47, 0x00, 0xc0, 0x04, 0x00, 0x2d, 0xe9, 0xf0, 0x4f, 0x07, 0x46, 0xdf, 0xf8, 0x54, 0xa1, 0x88, 0x46, 0x00, 0x25, 0x4f, 0xf0, 0x6c, 0x09, 0x85, 0xb0, 0x00, 0x92, 0x09, 0xfb, 0x05, 0xa4, 0x20, 0x46, 0xfa, 0xf7, 0x17, 0xf9, 0x21, 0x46, 0x02, 0x46, 0x38, 0x46, 0xfa, 0xf7, 0x01, 0xf9, 0x06, 0x46, 0x00, 0x28, 0x68, 0xd0, 0x01, 0x35, 0x0c, 0x2d, 0xef, 0xd1, 0x4f, 0xf0, 0xff, 0x36, 0x30, 0x46, 0x05, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x22, 0x69, 0x00, 0x2a, 0x61, 0xd0, 0x42, 0x45, 0x4a, 0xd9, 0x90, 0x46, 0x42, 0x4f, 0x0d, 0xf1, 0x0f, 0x02, 0x21, 0x7e, 0x38, 0x68, 0xfa, 0xf7, 0x85, 0xff, 0x00, 0x28, 0xea, 0xd1, 0x9d, 0xf8, 0x0f, 0x50, 0x02, 0x46, 0x94, 0xf8, 0x1c, 0x90, 0x25, 0xea, 0x09, 0x0b, 0x05, 0x46, 0x8d, 0xf8, 0x0f, 0xb0, 0x5f, 0xfa, 0x82, 0xfa, 0x4f, 0xea, 0x0a, 0x11, 0x60, 0x18, 0x00, 0x6b, 0x38, 0xb3, 0x80, 0x45, 0x06, 0xd9, 0x04, 0xeb, 0x0a, 0x1c, 0xdc, 0xf8, 0x3c, 0x30, 0x98, 0x45, 0x38, 0xbf, 0x80, 0x46, 0x0a, 0xf1, 0x03, 0x0a, 0x80, 0x45, 0x04, 0xeb, 0x0a, 0x1a, 0x21, 0x44, 0xcb, 0x6a, 0x02, 0xf1, 0x01, 0x02, 0xda, 0xf8, 0x04, 0x10, 0x1f, 0xd8, 0xa8, 0xeb, 0x03, 0x00, 0xf9, 0xf7, 0x34, 0xfa, 0x05, 0x44, 0xa0, 0x6a, 0xda, 0xf8, 0x08, 0x30, 0x85, 0x40, 0x4b, 0xea, 0x05, 0x05, 0xed, 0xb2, 0x8d, 0xf8, 0x0f, 0x50, 0x1b, 0xb1, 0x89, 0xea, 0x05, 0x05, 0x8d, 0xf8, 0x0f, 0x50, 0x9d, 0xf8, 0x0f, 0x20, 0x21, 0x7e, 0x38, 0x68, 0xfa, 0xf7, 0x4e, 0xff, 0xa8, 0xb1, 0xa9, 0xe7, 0x62, 0x69, 0x90, 0x45, 0x28, 0xbf, 0x90, 0x46, 0xb0, 0xe7, 0x08, 0x44, 0x01, 0x92, 0xc0, 0x1a, 0xf9, 0xf7, 0x13, 0xfa, 0x05, 0x44, 0x01, 0x9a, 0xed, 0xb2, 0xba, 0xe7, 0x13, 0x43, 0x1c, 0xe0, 0x00, 0x2c, 0x97, 0xd0, 0xb8, 0xf1, 0x00, 0x0f, 0x9a, 0xdc, 0x00, 0x9b, 0x00, 0x2b, 0x93, 0xdb, 0x11, 0x4d, 0x0d, 0xf1, 0x0f, 0x02, 0x94, 0xf8, 0x20, 0x10, 0x28, 0x68, 0xfa, 0xf7, 0x22, 0xff, 0x00, 0x28, 0x87, 0xd1, 0x62, 0x6a, 0x01, 0x23, 0x00, 0x99, 0x93, 0x40, 0x9d, 0xf9, 0x0f, 0x20, 0x5b, 0xb2, 0x00, 0x29, 0xe2, 0xd1, 0x22, 0xea, 0x03, 0x03, 0x8d, 0xf8, 0x0f, 0x30, 0x94, 0xf8, 0x20, 0x10, 0x9d, 0xf8, 0x0f, 0x20, 0x28, 0x68, 0xfa, 0xf7, 0x16, 0xff, 0x00, 0x30, 0x18, 0xbf, 0x01, 0x20, 0x46, 0x42, 0x70, 0xe7, 0x88, 0x6e, 0x05, 0x00, 0x68, 0x5d, 0x05, 0x00, 0x2d, 0xe9, 0xf7, 0x4f, 0x8a, 0x46, 0x16, 0x46, 0x00, 0xf0, 0xd4, 0xfa, 0x05, 0x46, 0x20, 0xb9, 0x4f, 0xf0, 0xff, 0x30, 0x03, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0xba, 0xf1, 0x00, 0x0f, 0x03, 0xdc, 0x00, 0x2e, 0x5a, 0xda, 0x00, 0x20, 0xf5, 0xe7, 0x03, 0x69, 0x00, 0x2b, 0xf8, 0xd0, 0x53, 0x45, 0x47, 0xd9, 0x9a, 0x46, 0x0d, 0xf1, 0x07, 0x02, 0x29, 0x7e, 0x36, 0x20, 0xfa, 0xf7, 0xe3, 0xfe, 0x00, 0x28, 0xe5, 0xd1, 0x9d, 0xf8, 0x07, 0x90, 0x83, 0x46, 0x2f, 0x7f, 0x04, 0x46, 0x29, 0xea, 0x07, 0x09, 0x8d, 0xf8, 0x07, 0x90, 0x5f, 0xfa, 0x8b, 0xf8, 0x4f, 0xea, 0x08, 0x12, 0xab, 0x18, 0x1b, 0x6b, 0x2b, 0xb3, 0x9a, 0x45, 0x05, 0xd9, 0x05, 0xeb, 0x08, 0x11, 0xc9, 0x6b, 0x8a, 0x45, 0x38, 0xbf, 0x9a, 0x46, 0x08, 0xf1, 0x03, 0x08, 0x9a, 0x45, 0x05, 0xeb, 0x08, 0x18, 0x2a, 0x44, 0xd0, 0x6a, 0x0b, 0xf1, 0x01, 0x0b, 0xd8, 0xf8, 0x04, 0x10, 0x1f, 0xd8, 0xaa, 0xeb, 0x00, 0x00, 0xf9, 0xf7, 0x94, 0xf9, 0x20, 0x44, 0xac, 0x6a, 0xd8, 0xf8, 0x08, 0x30, 0xa0, 0x40, 0x49, 0xea, 0x00, 0x00, 0xc0, 0xb2, 0x8d, 0xf8, 0x07, 0x00, 0x13, 0xb1, 0x78, 0x40, 0x8d, 0xf8, 0x07, 0x00, 0x9d, 0xf8, 0x07, 0x20, 0x36, 0x20, 0x29, 0x7e, 0xfa, 0xf7, 0xaf, 0xfe, 0x00, 0x28, 0xaf, 0xd0, 0xa6, 0xe7, 0x43, 0x69, 0x9a, 0x45, 0x28, 0xbf, 0x9a, 0x46, 0xb3, 0xe7, 0x0b, 0x44, 0x18, 0x1a, 0xf9, 0xf7, 0x74, 0xf9, 0x04, 0x44, 0xe4, 0xb2, 0xbd, 0xe7, 0x0d, 0xf1, 0x07, 0x02, 0x95, 0xf8, 0x20, 0x10, 0x36, 0x20, 0xfa, 0xf7, 0x8f, 0xfe, 0x00, 0x28, 0x91, 0xd1, 0x6a, 0x6a, 0x01, 0x23, 0x93, 0x40, 0x9d, 0xf9, 0x07, 0x20, 0x5b, 0xb2, 0x7e, 0xb9, 0x22, 0xea, 0x03, 0x03, 0x8d, 0xf8, 0x07, 0x30, 0x36, 0x20, 0x9d, 0xf8, 0x07, 0x20, 0x95, 0xf8, 0x20, 0x10, 0xfa, 0xf7, 0x85, 0xfe, 0x00, 0x30, 0x18, 0xbf, 0x01, 0x20, 0x40, 0x42, 0x7c, 0xe7, 0x13, 0x43, 0xef, 0xe7, 0x00, 0x00, 0x01, 0x46, 0x01, 0x22, 0x01, 0x48, 0xff, 0xf7, 0xbb, 0xbe, 0x00, 0xbf, 0x2e, 0x5c, 0x05, 0x00, 0x01, 0x46, 0x01, 0x22, 0x01, 0x48, 0xff, 0xf7, 0xb3, 0xbe, 0x00, 0xbf, 0x40, 0x5c, 0x05, 0x00, 0xff, 0xf7, 0xae, 0xbe, 0x37, 0xb5, 0x34, 0x21, 0x3e, 0x4d, 0x3f, 0x48, 0x29, 0x60, 0x2c, 0x46, 0xfa, 0xf7, 0x54, 0xfe, 0x28, 0xb1, 0x3d, 0x48, 0xfa, 0xf7, 0x0e, 0xf9, 0x4f, 0xf0, 0xff, 0x30, 0x64, 0xe0, 0x0d, 0xf1, 0x06, 0x02, 0x0e, 0x21, 0x28, 0x68, 0xfa, 0xf7, 0x4c, 0xfe, 0x60, 0xb1, 0x37, 0x48, 0xfa, 0xf7, 0x01, 0xf9, 0x35, 0x20, 0x0d, 0xf1, 0x06, 0x02, 0x0e, 0x21, 0x28, 0x60, 0xfa, 0xf7, 0x41, 0xfe, 0x08, 0xb1, 0x32, 0x48, 0xe6, 0xe7, 0x9d, 0xf8, 0x06, 0x30, 0x02, 0x2b, 0x55, 0xd1, 0x30, 0x48, 0x02, 0xad, 0xfa, 0xf7, 0xef, 0xf8, 0x26, 0x22, 0x17, 0x21, 0x20, 0x68, 0x05, 0xf8, 0x01, 0x2d, 0xfa, 0xf7, 0x39, 0xfe, 0x2a, 0x46, 0xc0, 0x21, 0x20, 0x68, 0xfa, 0xf7, 0x2a, 0xfe, 0x9d, 0xf8, 0x07, 0x20, 0xc0, 0x21, 0x20, 0x68, 0x42, 0xf0, 0x33, 0x02, 0x8d, 0xf8, 0x07, 0x20, 0xfa, 0xf7, 0x2a, 0xfe, 0x2a, 0x46, 0x15, 0x21, 0x20, 0x68, 0xfa, 0xf7, 0x1b, 0xfe, 0x06, 0x22, 0x15, 0x21, 0x20, 0x68, 0x8d, 0xf8, 0x07, 0x20, 0xfa, 0xf7, 0x1e, 0xfe, 0x2a, 0x46, 0x23, 0x21, 0x20, 0x68, 0xfa, 0xf7, 0x0f, 0xfe, 0x9d, 0xf8, 0x07, 0x20, 0x23, 0x21, 0x20, 0x68, 0x02, 0xf0, 0xfe, 0x02, 0x8d, 0xf8, 0x07, 0x20, 0xfa, 0xf7, 0x0f, 0xfe, 0x2a, 0x46, 0x0f, 0x21, 0x20, 0x68, 0xfa, 0xf7, 0x00, 0xfe, 0x9d, 0xf8, 0x07, 0x30, 0x2a, 0x46, 0x19, 0x21, 0x20, 0x68, 0x73, 0xb1, 0xfa, 0xf7, 0xf8, 0xfd, 0x9d, 0xf8, 0x07, 0x20, 0x42, 0xf0, 0x10, 0x02, 0x19, 0x21, 0x20, 0x68, 0x8d, 0xf8, 0x07, 0x20, 0xfa, 0xf7, 0xf8, 0xfd, 0x03, 0x20, 0x03, 0xb0, 0x30, 0xbd, 0xfa, 0xf7, 0xe9, 0xfd, 0x9d, 0xf8, 0x07, 0x20, 0x02, 0xf0, 0xef, 0x02, 0xef, 0xe7, 0x06, 0x48, 0x8a, 0xe7, 0x00, 0xbf, 0x88, 0x6e, 0x05, 0x00, 0x80, 0x1a, 0x06, 0x00, 0x4c, 0x5c, 0x05, 0x00, 0x63, 0x5c, 0x05, 0x00, 0x7a, 0x5c, 0x05, 0x00, 0x88, 0x5c, 0x05, 0x00, 0x2d, 0xe9, 0xf3, 0x47, 0x06, 0x46, 0x4e, 0x48, 0xf9, 0xf7, 0x43, 0xff, 0x4c, 0x49, 0x02, 0x46, 0x4c, 0x48, 0xf9, 0xf7, 0x2d, 0xff, 0x4a, 0x4d, 0x88, 0xb1, 0x05, 0xf1, 0x6c, 0x00, 0xf9, 0xf7, 0x38, 0xff, 0x05, 0xf1, 0x6c, 0x01, 0x02, 0x46, 0x46, 0x48, 0xf9, 0xf7, 0x21, 0xff, 0x28, 0xb1, 0x4f, 0xf0, 0xff, 0x35, 0x28, 0x46, 0x02, 0xb0, 0xbd, 0xe8, 0xf0, 0x87, 0x01, 0x20, 0x6c, 0x24, 0x04, 0xfb, 0x00, 0x54, 0x00, 0x2c, 0xf3, 0xd0, 0x0a, 0x20, 0x70, 0x43, 0x00, 0x28, 0x21, 0xdc, 0x0d, 0xf1, 0x07, 0x02, 0x94, 0xf8, 0x20, 0x10, 0x41, 0x20, 0xfa, 0xf7, 0xa6, 0xfd, 0x00, 0x28, 0xe6, 0xd1, 0x63, 0x6a, 0x01, 0x22, 0x94, 0xf8, 0x20, 0x10, 0x41, 0x20, 0x9a, 0x40, 0x9d, 0xf8, 0x07, 0x30, 0x1a, 0x43, 0xd2, 0xb2, 0x8d, 0xf8, 0x07, 0x20, 0xfa, 0xf7, 0xa0, 0xfd, 0x05, 0x46, 0x00, 0x28, 0xd5, 0xd1, 0x0d, 0xf1, 0x07, 0x02, 0x94, 0xf8, 0x20, 0x10, 0x41, 0x20, 0xfa, 0xf7, 0x8c, 0xfd, 0xcf, 0xe7, 0x26, 0x69, 0x00, 0x2e, 0xda, 0xd0, 0xb0, 0x42, 0x03, 0xdb, 0x66, 0x69, 0x86, 0x42, 0xa8, 0xbf, 0x06, 0x46, 0x0d, 0xf1, 0x07, 0x02, 0x21, 0x7e, 0x41, 0x20, 0xfa, 0xf7, 0x7c, 0xfd, 0x00, 0x28, 0xbc, 0xd1, 0x9d, 0xf8, 0x07, 0x80, 0x82, 0x46, 0x27, 0x7f, 0x05, 0x46, 0x28, 0xea, 0x07, 0x08, 0x8d, 0xf8, 0x07, 0x80, 0x5f, 0xfa, 0x8a, 0xf2, 0x04, 0xeb, 0x02, 0x11, 0x0b, 0x6b, 0x1b, 0xb3, 0x02, 0xf1, 0x03, 0x09, 0xc8, 0x6a, 0xb3, 0x42, 0x04, 0xeb, 0x09, 0x11, 0x49, 0x68, 0x24, 0xda, 0x04, 0xeb, 0x02, 0x12, 0xa3, 0xeb, 0x00, 0x0c, 0x0a, 0xf1, 0x01, 0x0a, 0xd2, 0x6b, 0xb2, 0x42, 0x1d, 0xdd, 0x18, 0x1a, 0x04, 0xeb, 0x09, 0x19, 0xf9, 0xf7, 0x6c, 0xf9, 0x28, 0x44, 0xa5, 0x6a, 0xd9, 0xf8, 0x08, 0x30, 0xa8, 0x40, 0x40, 0xea, 0x08, 0x00, 0xc0, 0xb2, 0x8d, 0xf8, 0x07, 0x00, 0x13, 0xb1, 0x78, 0x40, 0x8d, 0xf8, 0x07, 0x00, 0x9d, 0xf8, 0x07, 0x20, 0x41, 0x20, 0x21, 0x7e, 0xfa, 0xf7, 0x4b, 0xfd, 0x00, 0x28, 0x91, 0xd0, 0x80, 0xe7, 0x33, 0x46, 0xe1, 0xe7, 0x01, 0xeb, 0x0c, 0x00, 0xf9, 0xf7, 0x4f, 0xf9, 0x05, 0x44, 0xed, 0xb2, 0xc3, 0xe7, 0x78, 0x62, 0x05, 0x00, 0x94, 0x5c, 0x05, 0x00, 0x13, 0xb5, 0x41, 0x21, 0x12, 0x48, 0xfa, 0xf7, 0x27, 0xfd, 0x28, 0xb1, 0x11, 0x48, 0xf9, 0xf7, 0xe1, 0xff, 0x4f, 0xf0, 0xff, 0x30, 0x14, 0xe0, 0x0d, 0xf1, 0x07, 0x02, 0x03, 0x21, 0x41, 0x20, 0xfa, 0xf7, 0x1f, 0xfd, 0x08, 0xb1, 0x0c, 0x48, 0xf1, 0xe7, 0x9d, 0xf8, 0x07, 0x40, 0x04, 0xf0, 0xe0, 0x04, 0x80, 0x2c, 0x8d, 0xf8, 0x07, 0x40, 0x05, 0xd1, 0x08, 0x48, 0xf9, 0xf7, 0xca, 0xff, 0x20, 0x46, 0x02, 0xb0, 0x10, 0xbd, 0x21, 0x46, 0x05, 0x48, 0xf9, 0xf7, 0xc3, 0xff, 0xe0, 0xe7, 0x80, 0x1a, 0x06, 0x00, 0x4c, 0x5c, 0x05, 0x00, 0x63, 0x5c, 0x05, 0x00, 0x9a, 0x5c, 0x05, 0x00, 0xa8, 0x5c, 0x05, 0x00, 0x2d, 0xe9, 0xf3, 0x47, 0x06, 0x46, 0x4e, 0x48, 0xf9, 0xf7, 0x6d, 0xfe, 0x4c, 0x49, 0x02, 0x46, 0x4c, 0x48, 0xf9, 0xf7, 0x57, 0xfe, 0x4a, 0x4d, 0x88, 0xb1, 0x05, 0xf1, 0x6c, 0x00, 0xf9, 0xf7, 0x62, 0xfe, 0x05, 0xf1, 0x6c, 0x01, 0x02, 0x46, 0x46, 0x48, 0xf9, 0xf7, 0x4b, 0xfe, 0x28, 0xb1, 0x4f, 0xf0, 0xff, 0x35, 0x28, 0x46, 0x02, 0xb0, 0xbd, 0xe8, 0xf0, 0x87, 0x01, 0x20, 0x6c, 0x24, 0x04, 0xfb, 0x00, 0x54, 0x00, 0x2c, 0xf3, 0xd0, 0x0a, 0x20, 0x70, 0x43, 0x00, 0x28, 0x21, 0xdc, 0x0d, 0xf1, 0x07, 0x02, 0x94, 0xf8, 0x20, 0x10, 0x60, 0x20, 0xfa, 0xf7, 0xd0, 0xfc, 0x00, 0x28, 0xe6, 0xd1, 0x63, 0x6a, 0x01, 0x22, 0x94, 0xf8, 0x20, 0x10, 0x60, 0x20, 0x9a, 0x40, 0x9d, 0xf8, 0x07, 0x30, 0x1a, 0x43, 0xd2, 0xb2, 0x8d, 0xf8, 0x07, 0x20, 0xfa, 0xf7, 0xca, 0xfc, 0x05, 0x46, 0x00, 0x28, 0xd5, 0xd1, 0x0d, 0xf1, 0x07, 0x02, 0x94, 0xf8, 0x20, 0x10, 0x60, 0x20, 0xfa, 0xf7, 0xb6, 0xfc, 0xcf, 0xe7, 0x26, 0x69, 0x00, 0x2e, 0xda, 0xd0, 0xb0, 0x42, 0x03, 0xdb, 0x66, 0x69, 0x86, 0x42, 0xa8, 0xbf, 0x06, 0x46, 0x0d, 0xf1, 0x07, 0x02, 0x21, 0x7e, 0x60, 0x20, 0xfa, 0xf7, 0xa6, 0xfc, 0x00, 0x28, 0xbc, 0xd1, 0x9d, 0xf8, 0x07, 0x80, 0x82, 0x46, 0x27, 0x7f, 0x05, 0x46, 0x28, 0xea, 0x07, 0x08, 0x8d, 0xf8, 0x07, 0x80, 0x5f, 0xfa, 0x8a, 0xf2, 0x04, 0xeb, 0x02, 0x11, 0x0b, 0x6b, 0x1b, 0xb3, 0x02, 0xf1, 0x03, 0x09, 0xc8, 0x6a, 0xb3, 0x42, 0x04, 0xeb, 0x09, 0x11, 0x49, 0x68, 0x24, 0xda, 0x04, 0xeb, 0x02, 0x12, 0xa3, 0xeb, 0x00, 0x0c, 0x0a, 0xf1, 0x01, 0x0a, 0xd2, 0x6b, 0xb2, 0x42, 0x1d, 0xdd, 0x18, 0x1a, 0x04, 0xeb, 0x09, 0x19, 0xf9, 0xf7, 0x96, 0xf8, 0x28, 0x44, 0xa5, 0x6a, 0xd9, 0xf8, 0x08, 0x30, 0xa8, 0x40, 0x40, 0xea, 0x08, 0x00, 0xc0, 0xb2, 0x8d, 0xf8, 0x07, 0x00, 0x13, 0xb1, 0x78, 0x40, 0x8d, 0xf8, 0x07, 0x00, 0x9d, 0xf8, 0x07, 0x20, 0x60, 0x20, 0x21, 0x7e, 0xfa, 0xf7, 0x75, 0xfc, 0x00, 0x28, 0x91, 0xd0, 0x80, 0xe7, 0x33, 0x46, 0xe1, 0xe7, 0x01, 0xeb, 0x0c, 0x00, 0xf9, 0xf7, 0x79, 0xf8, 0x05, 0x44, 0xed, 0xb2, 0xc3, 0xe7, 0x50, 0x63, 0x05, 0x00, 0x94, 0x5c, 0x05, 0x00, 0x13, 0xb5, 0x60, 0x21, 0x12, 0x48, 0xfa, 0xf7, 0x51, 0xfc, 0x28, 0xb1, 0x11, 0x48, 0xf9, 0xf7, 0x0b, 0xff, 0x4f, 0xf0, 0xff, 0x30, 0x14, 0xe0, 0x0d, 0xf1, 0x07, 0x02, 0x03, 0x21, 0x60, 0x20, 0xfa, 0xf7, 0x49, 0xfc, 0x08, 0xb1, 0x0c, 0x48, 0xf1, 0xe7, 0x9d, 0xf8, 0x07, 0x40, 0x04, 0xf0, 0xe0, 0x04, 0x80, 0x2c, 0x8d, 0xf8, 0x07, 0x40, 0x05, 0xd1, 0x08, 0x48, 0xf9, 0xf7, 0xf4, 0xfe, 0x20, 0x46, 0x02, 0xb0, 0x10, 0xbd, 0x21, 0x46, 0x05, 0x48, 0xf9, 0xf7, 0xed, 0xfe, 0xe0, 0xe7, 0x80, 0x1a, 0x06, 0x00, 0x4c, 0x5c, 0x05, 0x00, 0x63, 0x5c, 0x05, 0x00, 0xb7, 0x5c, 0x05, 0x00, 0xc5, 0x5c, 0x05, 0x00, 0x2d, 0xe9, 0xf0, 0x41, 0x06, 0x46, 0xdf, 0xf8, 0x2c, 0x80, 0x00, 0x25, 0x6c, 0x27, 0x07, 0xfb, 0x05, 0x84, 0x20, 0x46, 0xf9, 0xf7, 0x91, 0xfd, 0x21, 0x46, 0x02, 0x46, 0x30, 0x46, 0xf9, 0xf7, 0x7b, 0xfd, 0x18, 0xb1, 0x01, 0x35, 0x05, 0x2d, 0xf1, 0xd1, 0x00, 0x24, 0x20, 0x46, 0xbd, 0xe8, 0xf0, 0x81, 0x00, 0xbf, 0x28, 0x64, 0x05, 0x00, 0x38, 0xb5, 0x01, 0x46, 0x05, 0x46, 0x01, 0x22, 0x07, 0x48, 0xff, 0xf7, 0x03, 0xfd, 0x04, 0x46, 0x01, 0x22, 0x29, 0x46, 0x05, 0x48, 0xff, 0xf7, 0xfd, 0xfc, 0x14, 0xb1, 0x04, 0x1c, 0x18, 0xbf, 0x01, 0x24, 0x20, 0x46, 0x38, 0xbd, 0x00, 0xbf, 0x40, 0x5c, 0x05, 0x00, 0x46, 0x5c, 0x05, 0x00, 0x07, 0xb5, 0x36, 0x21, 0x25, 0x48, 0xfa, 0xf7, 0xeb, 0xfb, 0x28, 0xb1, 0x24, 0x48, 0xf9, 0xf7, 0xa5, 0xfe, 0x4f, 0xf0, 0xff, 0x30, 0x3c, 0xe0, 0x0d, 0xf1, 0x06, 0x02, 0x03, 0x21, 0x36, 0x20, 0xfa, 0xf7, 0xe3, 0xfb, 0x08, 0xb1, 0x1f, 0x48, 0xf1, 0xe7, 0x9d, 0xf8, 0x06, 0x30, 0x03, 0xf0, 0xcf, 0x03, 0xa3, 0xf1, 0x48, 0x02, 0x8d, 0xf8, 0x06, 0x30, 0x01, 0x2a, 0x02, 0xd9, 0x4b, 0x3b, 0x01, 0x2b, 0x29, 0xd8, 0x0d, 0xf1, 0x07, 0x02, 0x14, 0x21, 0x36, 0x20, 0xfa, 0xf7, 0xcd, 0xfb, 0xd8, 0xb9, 0x9d, 0xf8, 0x07, 0x20, 0x14, 0x21, 0x36, 0x20, 0x42, 0xf0, 0x80, 0x02, 0x8d, 0xf8, 0x07, 0x20, 0xfa, 0xf7, 0xcc, 0xfb, 0x80, 0xb9, 0x0d, 0xf1, 0x07, 0x02, 0x1a, 0x21, 0x36, 0x20, 0xfa, 0xf7, 0xbb, 0xfb, 0x48, 0xb9, 0x9d, 0xf8, 0x07, 0x20, 0x1a, 0x21, 0x36, 0x20, 0x42, 0xf0, 0x02, 0x02, 0x8d, 0xf8, 0x07, 0x20, 0xfa, 0xf7, 0xba, 0xfb, 0x07, 0x48, 0xf9, 0xf7, 0x66, 0xfe, 0x48, 0x20, 0x03, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x04, 0x48, 0xb8, 0xe7, 0x80, 0x1a, 0x06, 0x00, 0x4c, 0x5c, 0x05, 0x00, 0x63, 0x5c, 0x05, 0x00, 0xda, 0x5c, 0x05, 0x00, 0x88, 0x5c, 0x05, 0x00, 0x0e, 0x4b, 0x02, 0x22, 0x10, 0xb5, 0x03, 0xf1, 0xbc, 0x01, 0xd3, 0xf8, 0xb8, 0x00, 0xf9, 0xf7, 0x97, 0xfe, 0xf9, 0xf7, 0x4f, 0xf9, 0x04, 0x46, 0x68, 0xb9, 0xf9, 0xf7, 0x75, 0xfe, 0xf9, 0xf7, 0x6d, 0xfe, 0x01, 0x46, 0x20, 0x46, 0xff, 0xf7, 0xeb, 0xfa, 0x04, 0x46, 0x0a, 0x20, 0xf9, 0xf7, 0x15, 0xf9, 0x20, 0x46, 0x10, 0xbd, 0x00, 0x24, 0xfb, 0xe7, 0x00, 0xbf, 0x00, 0xc0, 0x04, 0x00, 0x81, 0x40, 0x01, 0x41, 0x81, 0x41, 0x01, 0x42, 0x81, 0x42, 0x01, 0x43, 0x81, 0x43, 0x01, 0x44, 0x81, 0x44, 0x01, 0x45, 0x81, 0x45, 0x01, 0x46, 0x81, 0x46, 0x01, 0x47, 0x81, 0x47, 0x01, 0x48, 0x81, 0x48, 0x01, 0x49, 0x81, 0x49, 0x01, 0x4a, 0x81, 0x4a, 0x01, 0x4b, 0x81, 0x4b, 0x01, 0x4c, 0x81, 0x4c, 0x01, 0x4d, 0x81, 0x4d, 0x01, 0x4e, 0x81, 0x4e, 0x01, 0x4f, 0x81, 0x4f, 0xb7, 0x06, 0x40, 0x00, 0x73, 0xa0, 0x06, 0x7c, 0x37, 0x01, 0x02, 0x00, 0x13, 0x01, 0x01, 0x60, 0xb7, 0x06, 0x03, 0x00, 0x93, 0x86, 0x36, 0x01, 0x73, 0xa0, 0x26, 0x7c, 0x99, 0x62, 0x73, 0xb0, 0x02, 0x30, 0xef, 0x00, 0xe0, 0x0e, 0x01, 0xa0, 0x01, 0x11, 0x22, 0xce, 0x00, 0x10, 0x23, 0x26, 0xa4, 0xfe, 0x01, 0x00, 0x83, 0x27, 0xc4, 0xfe, 0x13, 0x87, 0xf7, 0xff, 0x23, 0x26, 0xe4, 0xfe, 0xf5, 0xfb, 0x01, 0x00, 0x72, 0x44, 0x05, 0x61, 0x82, 0x80, 0x79, 0x71, 0x06, 0xd6, 0x22, 0xd4, 0x00, 0x18, 0xb7, 0x57, 0x81, 0x08, 0x23, 0x24, 0xf4, 0xfe, 0xb7, 0x57, 0x81, 0x08, 0x93, 0x87, 0x07, 0x03, 0x23, 0x22, 0xf4, 0xfe, 0xb7, 0x57, 0x81, 0x08, 0xd1, 0x07, 0x23, 0x20, 0xf4, 0xfe, 0x23, 0x26, 0x04, 0xfe, 0x23, 0x2e, 0x04, 0xfc, 0x05, 0xa0, 0x83, 0x27, 0x44, 0xfe, 0x9c, 0x43, 0xa1, 0x83, 0x85, 0x8b, 0x23, 0x26, 0xf4, 0xfe, 0x03, 0x27, 0x44, 0xfe, 0xb7, 0x07, 0x00, 0x03, 0x93, 0x87, 0x07, 0x0c, 0x18, 0x43, 0x98, 0xc3, 0x03, 0x27, 0xc4, 0xfe, 0x85, 0x47, 0xe3, 0x1e, 0xf7, 0xfc, 0x83, 0x27, 0x84, 0xfe, 0x13, 0x07, 0x10, 0x37, 0x98, 0xc3, 0x29, 0x45, 0xad, 0x3f, 0xb7, 0x07, 0x00, 0x03, 0x93, 0x87, 0x07, 0x0c, 0x98, 0x43, 0xb7, 0x07, 0x00, 0x05, 0xd9, 0x8f, 0x23, 0x2e, 0xf4, 0xfc, 0xb7, 0x07, 0x00, 0x03, 0x93, 0x87, 0x07, 0x0c, 0x03, 0x27, 0xc4, 0xfd, 0x98, 0xc3, 0x83, 0x27, 0x84, 0xfe, 0x13, 0x07, 0x10, 0x3f, 0x98, 0xc3, 0x29, 0x45, 0xa9, 0x37, 0x83, 0x27, 0x04, 0xfe, 0x9c, 0x43, 0x23, 0x2e, 0xf4, 0xfc, 0x83, 0x27, 0xc4, 0xfd, 0x93, 0xe7, 0x17, 0x00, 0x23, 0x2e, 0xf4, 0xfc, 0x83, 0x27, 0x04, 0xfe, 0x03, 0x27, 0xc4, 0xfd, 0x98, 0xc3, 0x29, 0x45, 0x1d, 0x37, 0x81, 0x47, 0x3e, 0x85, 0xb2, 0x50, 0x22, 0x54, 0x45, 0x61, 0x82, 0x80, 0x01, 0x11, 0x06, 0xce, 0x22, 0xcc, 0x00, 0x10, 0x23, 0x26, 0x04, 0xfe, 0x3d, 0x37, 0x23, 0x26, 0xa4, 0xfe, 0x83, 0x27, 0xc4, 0xfe, 0x3e, 0x85, 0xf2, 0x40, 0x62, 0x44, 0x05, 0x61, 0x82, 0x80, 0x6e, 0x73, 0x69, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x32, 0x30, 0x32, 0x33, 0x2d, 0x32, 0x2d, 0x32, 0x33, 0x0a, 0x00, 0x50, 0x4c, 0x20, 0x67, 0x70, 0x69, 0x6f, 0x20, 0x76, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x20, 0x3a, 0x20, 0x31, 0x2e, 0x38, 0x56, 0x20, 0x0a, 0x00, 0x50, 0x4c, 0x20, 0x67, 0x70, 0x69, 0x6f, 0x20, 0x76, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x20, 0x3a, 0x20, 0x33, 0x2e, 0x33, 0x56, 0x20, 0x0a, 0x00, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x3a, 0x25, 0x64, 0x2c, 0x20, 0x73, 0x79, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x64, 0x63, 0x64, 0x63, 0x63, 0x00, 0x64, 0x63, 0x64, 0x63, 0x32, 0x00, 0x64, 0x63, 0x64, 0x63, 0x34, 0x00, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x6f, 0x6b, 0x0a, 0x00, 0x73, 0x75, 0x6e, 0x78, 0x69, 0x5f, 0x61, 0x64, 0x62, 0x34, 0x30, 0x30, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x0a, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x28, 0x28, 0x28, 0x28, 0x28, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0xa0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x10, 0x10, 0x10, 0x10, 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, 0x00, 0xa0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x10, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x00, 0x73, 0x75, 0x6e, 0x78, 0x69, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x7e, 0x01, 0x00, 0x00, 0x60, 0x02, 0x00, 0x00, 0x2b, 0x03, 0x00, 0x00, 0x1a, 0x04, 0x00, 0x00, 0x23, 0x05, 0x00, 0x00, 0x21, 0x06, 0x00, 0x00, 0x08, 0x07, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x5a, 0x5a, 0x5a, 0x5a, 0x55, 0x55, 0x55, 0x55, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x04, 0x00, 0x01, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08, 0x00, 0x04, 0x00, 0x20, 0x00, 0x08, 0x00, 0x6f, 0x70, 0x74, 0x65, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x20, 0x28, 0x25, 0x78, 0x29, 0x2e, 0x2e, 0x2e, 0x2c, 0x64, 0x74, 0x62, 0x20, 0x28, 0x25, 0x78, 0x29, 0x0a, 0x00, 0x4a, 0x75, 0x6d, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x20, 0x28, 0x25, 0x78, 0x29, 0x2e, 0x2e, 0x2e, 0x2c, 0x64, 0x74, 0x62, 0x20, 0x28, 0x25, 0x78, 0x29, 0x0a, 0x00, 0x70, 0x65, 0x72, 0x69, 0x70, 0x68, 0x30, 0x20, 0x68, 0x61, 0x73, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x0a, 0x00, 0x73, 0x65, 0x74, 0x20, 0x70, 0x6c, 0x6c, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x00, 0x5b, 0x25, 0x64, 0x5d, 0x00, 0x25, 0x73, 0x00, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x62, 0x6f, 0x6f, 0x74, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x6d, 0x3d, 0x25, 0x78, 0x20, 0x73, 0x72, 0x63, 0x5f, 0x73, 0x75, 0x6d, 0x3d, 0x25, 0x78, 0x0a, 0x00, 0x6b, 0x65, 0x79, 0x20, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x3a, 0x20, 0x25, 0x63, 0x0a, 0x00, 0x69, 0x6e, 0x62, 0x75, 0x66, 0x3a, 0x25, 0x78, 0x0a, 0x00, 0x25, 0x30, 0x32, 0x78, 0x20, 0x00, 0x25, 0x73, 0x3a, 0x25, 0x75, 0x3a, 0x20, 0x25, 0x73, 0x3a, 0x20, 0x41, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x60, 0x25, 0x73, 0x27, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x2e, 0x00, 0x62, 0x6f, 0x6f, 0x74, 0x70, 0x61, 0x72, 0x61, 0x00, 0x77, 0x6f, 0x72, 0x6b, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x46, 0x61, 0x69, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x20, 0x68, 0x65, 0x61, 0x64, 0x0a, 0x00, 0x41, 0x4e, 0x44, 0x52, 0x4f, 0x49, 0x44, 0x21, 0x00, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x3a, 0x25, 0x78, 0x0a, 0x00, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x20, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x20, 0x69, 0x73, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x0a, 0x00, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x50, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x21, 0x21, 0x21, 0x0a, 0x00, 0x62, 0x6f, 0x6f, 0x74, 0x2e, 0x69, 0x6d, 0x67, 0x3a, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x2d, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x0a, 0x00, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x3a, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x2d, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x0a, 0x00, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x3a, 0x25, 0x78, 0x20, 0x25, 0x78, 0x0a, 0x00, 0x72, 0x61, 0x6d, 0x64, 0x69, 0x73, 0x6b, 0x3a, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x2d, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x0a, 0x00, 0x2f, 0x63, 0x68, 0x6f, 0x73, 0x65, 0x6e, 0x00, 0x62, 0x6f, 0x6f, 0x74, 0x61, 0x72, 0x67, 0x73, 0x00, 0x25, 0x73, 0x28, 0x29, 0x25, 0x64, 0x20, 0x2d, 0x20, 0x62, 0x6f, 0x6f, 0x74, 0x61, 0x72, 0x67, 0x73, 0x5f, 0x73, 0x74, 0x72, 0x20, 0x69, 0x73, 0x20, 0x4e, 0x55, 0x4c, 0x4c, 0x21, 0x21, 0x21, 0x0a, 0x00, 0x25, 0x73, 0x28, 0x29, 0x25, 0x64, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6e, 0x64, 0x20, 0x72, 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x21, 0x21, 0x21, 0x0a, 0x00, 0x72, 0x6f, 0x6f, 0x74, 0x3d, 0x2f, 0x64, 0x65, 0x76, 0x2f, 0x00, 0x6c, 0x69, 0x62, 0x66, 0x64, 0x74, 0x20, 0x66, 0x64, 0x74, 0x5f, 0x73, 0x65, 0x74, 0x70, 0x72, 0x6f, 0x70, 0x28, 0x29, 0x3a, 0x20, 0x25, 0x73, 0x0a, 0x00, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x66, 0x64, 0x74, 0x5f, 0x63, 0x68, 0x6f, 0x73, 0x65, 0x6e, 0x3a, 0x20, 0x25, 0x73, 0x0a, 0x00, 0x72, 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x40, 0x00, 0x72, 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x40, 0x00, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x64, 0x74, 0x73, 0x0a, 0x00, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x6e, 0x61, 0x6e, 0x64, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x20, 0x25, 0x73, 0x0a, 0x00, 0x72, 0x74, 0x63, 0x5b, 0x25, 0x64, 0x5d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x65, 0x72, 0x61, 0x6c, 0x79, 0x20, 0x6a, 0x75, 0x6d, 0x70, 0x20, 0x66, 0x65, 0x6c, 0x0a, 0x00, 0x63, 0x61, 0x72, 0x73, 0x68, 0x64, 0x75, 0x6d, 0x70, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x2c, 0x20, 0x6a, 0x75, 0x6d, 0x70, 0x20, 0x66, 0x65, 0x6c, 0x0a, 0x00, 0x6b, 0x65, 0x79, 0x20, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x67, 0x65, 0x74, 0x20, 0x61, 0x64, 0x63, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x21, 0x21, 0x21, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x2e, 0x65, 0x78, 0x74, 0x00, 0x64, 0x72, 0x61, 0x6d, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x70, 0x61, 0x72, 0x61, 0x25, 0x64, 0x20, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x70, 0x61, 0x72, 0x61, 0x0a, 0x00, 0x76, 0x61, 0x69, 0x6c, 0x64, 0x20, 0x70, 0x61, 0x72, 0x61, 0x3a, 0x25, 0x64, 0x20, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x70, 0x61, 0x72, 0x61, 0x25, 0x64, 0x0a, 0x00, 0x65, 0x78, 0x74, 0x64, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x20, 0x62, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x0a, 0x00, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, 0x20, 0x6f, 0x6b, 0x0a, 0x00, 0x64, 0x72, 0x61, 0x6d, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x5b, 0x25, 0x64, 0x5d, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x70, 0x20, 0x69, 0x64, 0x20, 0x69, 0x73, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x54, 0x32, 0x2e, 0x30, 0x00, 0x53, 0x6f, 0x66, 0x74, 0x20, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x25, 0x73, 0x0a, 0x00, 0x5b, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, 0x53, 0x4f, 0x46, 0x54, 0x20, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5d, 0x20, 0x53, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x6d, 0x65, 0x6d, 0x74, 0x65, 0x73, 0x74, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x0a, 0x00, 0x5b, 0x53, 0x4f, 0x46, 0x54, 0x20, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5d, 0x20, 0x43, 0x4c, 0x4b, 0x3d, 0x25, 0x64, 0x4d, 0x20, 0x53, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x6d, 0x65, 0x6d, 0x74, 0x65, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x0a, 0x00, 0x5b, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, 0x53, 0x4f, 0x46, 0x54, 0x20, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5d, 0x20, 0x44, 0x72, 0x61, 0x6d, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x20, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x46, 0x41, 0x49, 0x4c, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x25, 0x78, 0x20, 0x21, 0x3d, 0x20, 0x25, 0x78, 0x20, 0x61, 0x74, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x25, 0x78, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x4f, 0x4b, 0x2e, 0x0a, 0x00, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x20, 0x53, 0x45, 0x54, 0x54, 0x49, 0x4e, 0x47, 0x20, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x21, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x5f, 0x56, 0x43, 0x43, 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x64, 0x20, 0x6d, 0x76, 0x0a, 0x00, 0x70, 0x68, 0x79, 0x5f, 0x64, 0x66, 0x73, 0x5f, 0x63, 0x6c, 0x6b, 0x25, 0x64, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x4d, 0x0a, 0x00, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x20, 0x70, 0x68, 0x79, 0x5f, 0x64, 0x66, 0x73, 0x5f, 0x63, 0x6c, 0x6b, 0x25, 0x64, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x61, 0x74, 0x65, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x21, 0x0a, 0x00, 0x64, 0x78, 0x5f, 0x6c, 0x6f, 0x77, 0x20, 0x31, 0x36, 0x62, 0x69, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x20, 0x0a, 0x00, 0x64, 0x78, 0x5f, 0x68, 0x69, 0x67, 0x68, 0x20, 0x31, 0x36, 0x62, 0x69, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x20, 0x0a, 0x00, 0x72, 0x65, 0x61, 0x64, 0x20, 0x64, 0x78, 0x30, 0x5f, 0x64, 0x71, 0x25, 0x64, 0x20, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x3d, 0x30, 0x78, 0x25, 0x78, 0x20, 0x0a, 0x00, 0x72, 0x65, 0x61, 0x64, 0x20, 0x64, 0x78, 0x31, 0x5f, 0x64, 0x71, 0x25, 0x64, 0x20, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x3d, 0x30, 0x78, 0x25, 0x78, 0x20, 0x0a, 0x00, 0x72, 0x65, 0x61, 0x64, 0x20, 0x64, 0x78, 0x32, 0x5f, 0x64, 0x71, 0x25, 0x64, 0x20, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x3d, 0x30, 0x78, 0x25, 0x78, 0x20, 0x0a, 0x00, 0x72, 0x65, 0x61, 0x64, 0x20, 0x64, 0x78, 0x33, 0x5f, 0x64, 0x71, 0x25, 0x64, 0x20, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x3d, 0x30, 0x78, 0x25, 0x78, 0x20, 0x0a, 0x00, 0x64, 0x78, 0x5f, 0x6c, 0x6f, 0x77, 0x20, 0x31, 0x36, 0x62, 0x69, 0x74, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x20, 0x0a, 0x00, 0x64, 0x78, 0x5f, 0x68, 0x69, 0x67, 0x68, 0x20, 0x31, 0x36, 0x62, 0x69, 0x74, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x20, 0x0a, 0x00, 0x77, 0x72, 0x69, 0x74, 0x65, 0x20, 0x64, 0x78, 0x30, 0x5f, 0x64, 0x71, 0x25, 0x64, 0x20, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x3d, 0x30, 0x78, 0x25, 0x78, 0x20, 0x0a, 0x00, 0x77, 0x72, 0x69, 0x74, 0x65, 0x20, 0x64, 0x78, 0x31, 0x5f, 0x64, 0x71, 0x25, 0x64, 0x20, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x3d, 0x30, 0x78, 0x25, 0x78, 0x20, 0x0a, 0x00, 0x77, 0x72, 0x69, 0x74, 0x65, 0x20, 0x64, 0x78, 0x32, 0x5f, 0x64, 0x71, 0x25, 0x64, 0x20, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x3d, 0x30, 0x78, 0x25, 0x78, 0x20, 0x0a, 0x00, 0x77, 0x72, 0x69, 0x74, 0x65, 0x20, 0x64, 0x78, 0x33, 0x5f, 0x64, 0x71, 0x25, 0x64, 0x20, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x3d, 0x30, 0x78, 0x25, 0x78, 0x20, 0x0a, 0x00, 0x4d, 0x58, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x28, 0x30, 0x78, 0x30, 0x34, 0x38, 0x32, 0x30, 0x32, 0x35, 0x30, 0x29, 0x20, 0x3d, 0x20, 0x25, 0x78, 0x20, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x33, 0x32, 0x62, 0x69, 0x74, 0x2c, 0x34, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x21, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x33, 0x32, 0x62, 0x69, 0x74, 0x2c, 0x32, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x21, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x33, 0x32, 0x62, 0x69, 0x74, 0x2c, 0x31, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x21, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x31, 0x36, 0x20, 0x62, 0x69, 0x74, 0x2c, 0x34, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x21, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x31, 0x36, 0x20, 0x62, 0x69, 0x74, 0x2c, 0x32, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x21, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x31, 0x36, 0x20, 0x62, 0x69, 0x74, 0x2c, 0x31, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x21, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x33, 0x47, 0x42, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6e, 0x20, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x2c, 0x64, 0x72, 0x61, 0x6d, 0x5f, 0x74, 0x70, 0x72, 0x31, 0x33, 0x20, 0x3d, 0x20, 0x25, 0x78, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x31, 0x2e, 0x35, 0x47, 0x42, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6e, 0x20, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x2c, 0x64, 0x72, 0x61, 0x6d, 0x5f, 0x74, 0x70, 0x72, 0x31, 0x33, 0x20, 0x3d, 0x20, 0x25, 0x78, 0x0a, 0x00, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x0a, 0x00, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x0a, 0x00, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x65, 0x6e, 0x20, 0x0a, 0x00, 0x56, 0x30, 0x2e, 0x36, 0x35, 0x38, 0x31, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x42, 0x4f, 0x4f, 0x54, 0x20, 0x44, 0x52, 0x49, 0x56, 0x45, 0x20, 0x49, 0x4e, 0x46, 0x4f, 0x3a, 0x20, 0x25, 0x73, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x43, 0x4c, 0x4b, 0x20, 0x3d, 0x25, 0x64, 0x20, 0x4d, 0x48, 0x5a, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x54, 0x79, 0x70, 0x65, 0x20, 0x3d, 0x25, 0x64, 0x20, 0x28, 0x33, 0x3a, 0x44, 0x44, 0x52, 0x33, 0x2c, 0x34, 0x3a, 0x44, 0x44, 0x52, 0x34, 0x2c, 0x36, 0x3a, 0x4c, 0x50, 0x44, 0x44, 0x52, 0x32, 0x2c, 0x37, 0x3a, 0x4c, 0x50, 0x44, 0x44, 0x52, 0x33, 0x2c, 0x38, 0x3a, 0x4c, 0x50, 0x44, 0x44, 0x52, 0x34, 0x29, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x3a, 0x20, 0x31, 0x20, 0x21, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x53, 0x49, 0x5a, 0x45, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x21, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x5f, 0x64, 0x72, 0x61, 0x6d, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x2c, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x64, 0x72, 0x61, 0x6d, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x53, 0x49, 0x5a, 0x45, 0x20, 0x3d, 0x25, 0x64, 0x20, 0x4d, 0x42, 0x79, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x31, 0x20, 0x3d, 0x20, 0x25, 0x78, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x32, 0x20, 0x3d, 0x20, 0x25, 0x78, 0x2c, 0x20, 0x74, 0x70, 0x72, 0x31, 0x33, 0x20, 0x3d, 0x20, 0x25, 0x78, 0x0a, 0x00, 0x64, 0x63, 0x64, 0x63, 0x33, 0x00, 0x62, 0x6c, 0x64, 0x6f, 0x32, 0x00, 0x63, 0x6c, 0x64, 0x6f, 0x31, 0x00, 0x64, 0x63, 0x64, 0x63, 0x31, 0x00, 0x64, 0x63, 0x64, 0x63, 0x32, 0x00, 0x5b, 0x70, 0x6d, 0x75, 0x5d, 0x3a, 0x20, 0x62, 0x75, 0x73, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x5b, 0x70, 0x6d, 0x75, 0x5d, 0x3a, 0x20, 0x62, 0x75, 0x73, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x50, 0x4d, 0x55, 0x3a, 0x20, 0x41, 0x58, 0x50, 0x32, 0x32, 0x30, 0x32, 0x0a, 0x00, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x20, 0x50, 0x4d, 0x55, 0x0a, 0x00, 0x64, 0x63, 0x64, 0x63, 0x30, 0x00, 0x54, 0x43, 0x53, 0x3a, 0x20, 0x54, 0x43, 0x53, 0x34, 0x38, 0x33, 0x38, 0x0a, 0x00, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x20, 0x54, 0x43, 0x53, 0x3a, 0x25, 0x78, 0x0a, 0x00, 0x45, 0x58, 0x54, 0x3a, 0x20, 0x53, 0x59, 0x38, 0x38, 0x32, 0x37, 0x47, 0x0a, 0x00, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x20, 0x45, 0x58, 0x54, 0x3a, 0x25, 0x78, 0x0a, 0x00, 0x61, 0x6c, 0x64, 0x6f, 0x31, 0x00, 0x50, 0x4d, 0x55, 0x3a, 0x20, 0x41, 0x58, 0x50, 0x31, 0x35, 0x33, 0x30, 0x0a, 0x00, 0x62, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x2c, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x3a, 0x20, 0x25, 0x64, 0x0a, 0x00, 0x72, 0x65, 0x61, 0x64, 0x20, 0x72, 0x65, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x77, 0x72, 0x69, 0x74, 0x65, 0x20, 0x72, 0x65, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x02, 0x01, 0x00, 0x00, 0x06, 0x00, 0x0c, 0x01, 0x02, 0x01, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x64, 0x63, 0x64, 0x63, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xb0, 0x04, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x04, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x14, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x63, 0x64, 0x63, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x48, 0x0d, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xb0, 0x04, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x04, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x06, 0x00, 0x00, 0x48, 0x0d, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x63, 0x64, 0x63, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x30, 0x07, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xb0, 0x04, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x04, 0x00, 0x00, 0x30, 0x07, 0x00, 0x00, 0x14, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x6c, 0x64, 0x6f, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x6c, 0x64, 0x6f, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x6c, 0x64, 0x6f, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x6c, 0x64, 0x6f, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x6c, 0x64, 0x6f, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x6c, 0x64, 0x6f, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x6c, 0x64, 0x6f, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x6c, 0x64, 0x6f, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x6c, 0x64, 0x6f, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x63, 0x64, 0x63, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd5, 0x1b, 0x00, 0x00, 0x98, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd5, 0x1b, 0x00, 0x00, 0x98, 0x3a, 0x00, 0x00, 0x7d, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x63, 0x64, 0x63, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd5, 0x1b, 0x00, 0x00, 0x98, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd5, 0x1b, 0x00, 0x00, 0x98, 0x3a, 0x00, 0x00, 0x7d, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x63, 0x64, 0x63, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x17, 0x00, 0x00, 0x33, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x17, 0x00, 0x00, 0x33, 0x36, 0x00, 0x00, 0x7d, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x63, 0x64, 0x63, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x17, 0x00, 0x00, 0x33, 0x36, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x17, 0x00, 0x00, 0x33, 0x36, 0x00, 0x00, 0x7d, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x63, 0x64, 0x63, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x48, 0x0d, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xb0, 0x04, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x04, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x06, 0x00, 0x00, 0x48, 0x0d, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x63, 0x64, 0x63, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xb0, 0x04, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x04, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x14, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x63, 0x64, 0x63, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x30, 0x07, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xb0, 0x04, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x04, 0x00, 0x00, 0x30, 0x07, 0x00, 0x00, 0x14, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x6c, 0x64, 0x6f, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x6c, 0x64, 0x6f, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xef, 0x44, 0x9a, 0x10, 0xa8, 0x6b, 0x71, 0x2c, 0xe7, 0x22, 0xb2, 0x56, 0x3f, 0x9e, 0x57, 0x1a, 0x6f, 0x1f, 0xd2, 0x07, 0x18, 0xce, 0x39, 0x28, 0x57, 0xb2, 0xd5, 0x42 }; if(type) { if(strcmp(type, "lpddr4") == 0) { fel_write(ctx, 0x0004c000, (void *)&lpddr4_payload[0], sizeof(lpddr4_payload)); fel_exec(ctx, 0x0004c000); return 1; } } printf("usage:\r\n"); printf(" xfel ddr lpddr4 - Initial DRAM controller for lpddr4\r\n"); return 0; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { return 0; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { return 0; } enum { SID_PRCTL = 0x03006000 + 0x040, SID_PRKEY = 0x03006000 + 0x050, SID_RDKEY = 0x03006000 + 0x060, EFUSE_HV_SWITCH = 0x07090000 + 0x204, }; static uint32_t efuse_read(struct xfel_ctx_t * ctx, uint32_t offset) { uint32_t val; val = payload_read32(ctx, SID_PRCTL); val &= ~((0x1ff << 16) | 0x3); val |= offset << 16; payload_write32(ctx, SID_PRCTL, val); val &= ~((0xff << 8) | 0x3); val |= (0xac << 8) | 0x2; payload_write32(ctx, SID_PRCTL, val); while(payload_read32(ctx, SID_PRCTL) & 0x2); val &= ~((0x1ff << 16) | (0xff << 8) | 0x3); payload_write32(ctx, SID_PRCTL, val); val = payload_read32(ctx, SID_RDKEY); return val; } static void efuse_write(struct xfel_ctx_t * ctx, uint32_t offset, uint32_t value) { uint32_t val; payload_write32(ctx, EFUSE_HV_SWITCH, 0x1); payload_write32(ctx, SID_PRKEY, value); val = payload_read32(ctx, SID_PRCTL); val &= ~((0x1ff << 16) | 0x3); val |= offset << 16; payload_write32(ctx, SID_PRCTL, val); val &= ~((0xff << 8) | 0x3); val |= (0xac << 8) | 0x1; payload_write32(ctx, SID_PRCTL, val); while(payload_read32(ctx, SID_PRCTL) & 0x1); val &= ~((0x1ff << 16) | (0xff << 8) | 0x3); payload_write32(ctx, SID_PRCTL, val); payload_write32(ctx, EFUSE_HV_SWITCH, 0x0); } static const struct sid_section_t { char * name; uint32_t offset; uint32_t size_bits; } sids[] = { { "chipid", 0x00, 128 }, { "brom-config", 0x10, 32 }, { "aldo-fix", 0x14, 32 }, { "thermal-sensor", 0x30, 64 }, { "tf-zone", 0x28, 128 }, { "oem-program", 0x3c, 160 }, { "write-protect", 0x80, 32 }, { "read-protect", 0x84, 32 }, { "lcjs", 0x88, 32 }, { "attr", 0x90, 32 }, { "huk", 0x94, 192 }, { "reserved1", 0xac, 64 }, { "rotpk", 0xb4, 256 }, { "ssk", 0xd4, 128 }, { "rssk", 0xf4, 256 }, { "sn", 0xb0, 192 }, { "nv1", 0x124, 32 }, { "nv2", 0x128, 32 }, { "hdcp-hash", 0x114, 128 }, { "backup-key", 0x164, 192 }, { "backup-key2", 0x1a4, 72 } }; static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { if(argc > 0) { if(!strcmp(argv[0], "efuse")) { argc -= 1; argv += 1; if(argc > 0) { if(!strcmp(argv[0], "dump") && (argc == 1)) { uint32_t buffer[2048 / 4]; for(int n = 0; n < ARRAY_SIZE(sids); n++) { uint32_t count = sids[n].size_bits / 32; for(int i = 0; i < count; i++) buffer[i] = efuse_read(ctx, sids[n].offset + i * 4); printf("%s:(0x%04x %d-bits)", sids[n].name, sids[n].offset, sids[n].size_bits); for(int i = 0; i < count; i++) { if(i >= 0 && ((i % 8) == 0)) printf("\r\n%-4s", ""); printf("%08x ", buffer[i]); } printf("\r\n"); } return 1; } else if(!strcmp(argv[0], "read32") && (argc == 2)) { uint32_t offset = strtoul(argv[1], NULL, 0); printf("0x%08x\r\n", efuse_read(ctx, offset)); return 1; } else if(!strcmp(argv[0], "write32") && (argc == 3)) { uint32_t offset = strtoul(argv[1], NULL, 0); size_t value = strtoul(argv[2], NULL, 0); efuse_write(ctx, offset, value); return 1; } else if(!strcmp(argv[0], "write") && (argc == 3)) { uint32_t offset = strtoul(argv[1], NULL, 0); uint64_t len; void * buf = file_load(argv[2], &len); if(buf && (len > 0)) { uint8_t * p = buf; uint32_t l = len; uint32_t o = 0; uint32_t v; while(l >= 4) { v = *((uint32_t *)p); efuse_write(ctx, offset + o, v); l -= 4; o += 4; p += 4; } if(l > 0) { uint32_t v = 0; for(int i = 0; i < l; i++) v = ((v << 8) & 0xffffff00) | p[i]; efuse_write(ctx, offset + o, v); } free(buf); return 1; } } } } else if(!strcmp(argv[0], "checksboot")) { uint32_t secure_status = payload_read32(ctx, 0x03006000 + 0xA0); if(secure_status) printf("The device enabled the security boot.\r\n"); else printf("The device does not enabled the security boot.\r\n"); return 1; } else if(!strcmp(argv[0], "exec")) { argc -= 1; argv += 1; if(argc > 0) { if(!strcmp(argv[0], "arm64") && (argc == 2)) { uint32_t addr = strtoul(argv[1], NULL, 0); payload_jmp_to_arm64(ctx, addr); return 1; } } } } printf("usage:\r\n"); printf(" xfel extra efuse dump - Dump all of the efuse information\r\n"); printf(" xfel extra efuse read32 - Read 32-bits value from efuse\r\n"); printf(" xfel extra efuse write32 - Write 32-bits value to efuse\r\n"); printf(" xfel extra efuse write - Write file to efuse\r\n"); printf(" xfel extra checksboot - Check whether security boot is enabled on the device\r\n"); printf(" xfel extra exec arm64
- Boot arm64 and jump to address\r\n"); return 0; } struct chip_t a523_a527_t527 = { .name = "A523/A527/T527/MR527", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/chips/a537_a333.c000066400000000000000000000052031512120643700151410ustar00rootroot00000000000000#include static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00191900) return 1; return 0; } static uint32_t payload_read32(struct xfel_ctx_t * ctx, uint32_t addr) { static const uint8_t payload[] = { 0x00, 0x00, 0xa0, 0xe3, 0x17, 0x0f, 0x08, 0xee, 0x15, 0x0f, 0x07, 0xee, 0xd5, 0x0f, 0x07, 0xee, 0x9a, 0x0f, 0x07, 0xee, 0x95, 0x0f, 0x07, 0xee, 0xff, 0xff, 0xff, 0xea, 0x0c, 0x00, 0x9f, 0xe5, 0x0c, 0x10, 0x8f, 0xe2, 0x00, 0x20, 0x90, 0xe5, 0x00, 0x20, 0x81, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, }; uint32_t adr = cpu_to_le32(addr); uint32_t val; fel_write(ctx, ctx->version.scratchpad, (void *)payload, sizeof(payload)); fel_write(ctx, ctx->version.scratchpad + sizeof(payload), (void *)&adr, sizeof(adr)); fel_exec(ctx, ctx->version.scratchpad); fel_read(ctx, ctx->version.scratchpad + sizeof(payload) + sizeof(adr), (void *)&val, sizeof(val)); return le32_to_cpu(val); } static void payload_write32(struct xfel_ctx_t * ctx, uint32_t addr, uint32_t val) { static const uint8_t payload[] = { 0x00, 0x00, 0xa0, 0xe3, 0x17, 0x0f, 0x08, 0xee, 0x15, 0x0f, 0x07, 0xee, 0xd5, 0x0f, 0x07, 0xee, 0x9a, 0x0f, 0x07, 0xee, 0x95, 0x0f, 0x07, 0xee, 0xff, 0xff, 0xff, 0xea, 0x08, 0x00, 0x9f, 0xe5, 0x08, 0x10, 0x9f, 0xe5, 0x00, 0x10, 0x80, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, }; uint32_t params[2] = { cpu_to_le32(addr), cpu_to_le32(val), }; fel_write(ctx, ctx->version.scratchpad, (void *)payload, sizeof(payload)); fel_write(ctx, ctx->version.scratchpad + sizeof(payload), (void *)params, sizeof(params)); fel_exec(ctx, ctx->version.scratchpad); } static int chip_reset(struct xfel_ctx_t * ctx) { return 0; } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { uint32_t id[4]; id[0] = payload_read32(ctx, 0x03006200 + 0x0); id[1] = payload_read32(ctx, 0x03006200 + 0x4); id[2] = payload_read32(ctx, 0x03006200 + 0x8); id[3] = payload_read32(ctx, 0x03006200 + 0xc); sprintf(sid, "%08x%08x%08x%08x", id[0], id[1], id[2], id[3]); return 1; } static int chip_jtag(struct xfel_ctx_t * ctx) { return 0; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { return 0; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { return 0; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { return 0; } static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { return 0; } struct chip_t a537_a333 = { .name = "A537/A333", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/chips/a64.c000066400000000000000000000016471512120643700143330ustar00rootroot00000000000000#include static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00168900) return 1; return 0; } static int chip_reset(struct xfel_ctx_t * ctx) { return 0; } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { return 0; } static int chip_jtag(struct xfel_ctx_t * ctx) { return 0; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { return 0; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { return 0; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { return 0; } static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { return 0; } struct chip_t a64 = { .name = "A64", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/chips/a733.c000066400000000000000000000161621512120643700144140ustar00rootroot00000000000000#include static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00190300) return 1; return 0; } static uint32_t payload_read32(struct xfel_ctx_t * ctx, uint32_t addr) { static const uint8_t payload[] = { 0x00, 0x00, 0xa0, 0xe3, 0x17, 0x0f, 0x08, 0xee, 0x15, 0x0f, 0x07, 0xee, 0xd5, 0x0f, 0x07, 0xee, 0x9a, 0x0f, 0x07, 0xee, 0x95, 0x0f, 0x07, 0xee, 0xff, 0xff, 0xff, 0xea, 0x0c, 0x00, 0x9f, 0xe5, 0x0c, 0x10, 0x8f, 0xe2, 0x00, 0x20, 0x90, 0xe5, 0x00, 0x20, 0x81, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, }; uint32_t adr = cpu_to_le32(addr); uint32_t val; fel_write(ctx, ctx->version.scratchpad, (void *)payload, sizeof(payload)); fel_write(ctx, ctx->version.scratchpad + sizeof(payload), (void *)&adr, sizeof(adr)); fel_exec(ctx, ctx->version.scratchpad); fel_read(ctx, ctx->version.scratchpad + sizeof(payload) + sizeof(adr), (void *)&val, sizeof(val)); return le32_to_cpu(val); } static void payload_write32(struct xfel_ctx_t * ctx, uint32_t addr, uint32_t val) { static const uint8_t payload[] = { 0x00, 0x00, 0xa0, 0xe3, 0x17, 0x0f, 0x08, 0xee, 0x15, 0x0f, 0x07, 0xee, 0xd5, 0x0f, 0x07, 0xee, 0x9a, 0x0f, 0x07, 0xee, 0x95, 0x0f, 0x07, 0xee, 0xff, 0xff, 0xff, 0xea, 0x08, 0x00, 0x9f, 0xe5, 0x08, 0x10, 0x9f, 0xe5, 0x00, 0x10, 0x80, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, }; uint32_t params[2] = { cpu_to_le32(addr), cpu_to_le32(val), }; fel_write(ctx, ctx->version.scratchpad, (void *)payload, sizeof(payload)); fel_write(ctx, ctx->version.scratchpad + sizeof(payload), (void *)params, sizeof(params)); fel_exec(ctx, ctx->version.scratchpad); } static int chip_reset(struct xfel_ctx_t * ctx) { return 0; } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { uint32_t id[4]; id[0] = payload_read32(ctx, 0x03006200 + 0x0); id[1] = payload_read32(ctx, 0x03006200 + 0x4); id[2] = payload_read32(ctx, 0x03006200 + 0x8); id[3] = payload_read32(ctx, 0x03006200 + 0xc); sprintf(sid, "%08x%08x%08x%08x", id[0], id[1], id[2], id[3]); return 1; } static int chip_jtag(struct xfel_ctx_t * ctx) { return 0; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { return 0; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { return 0; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { return 0; } enum { SID_PRCTL = 0x03006000 + 0x040, SID_PRKEY = 0x03006000 + 0x050, SID_RDKEY = 0x03006000 + 0x060, EFUSE_HV_SWITCH = 0x07090000 + 0x204, }; static uint32_t efuse_read(struct xfel_ctx_t * ctx, uint32_t offset) { uint32_t val; val = payload_read32(ctx, SID_PRCTL); val &= ~((0x1ff << 16) | 0x3); val |= offset << 16; payload_write32(ctx, SID_PRCTL, val); val &= ~((0xff << 8) | 0x3); val |= (0xac << 8) | 0x2; payload_write32(ctx, SID_PRCTL, val); while(payload_read32(ctx, SID_PRCTL) & 0x2); val &= ~((0x1ff << 16) | (0xff << 8) | 0x3); payload_write32(ctx, SID_PRCTL, val); val = payload_read32(ctx, SID_RDKEY); return val; } static void efuse_write(struct xfel_ctx_t * ctx, uint32_t offset, uint32_t value) { uint32_t val; payload_write32(ctx, EFUSE_HV_SWITCH, 0x1); payload_write32(ctx, SID_PRKEY, value); val = payload_read32(ctx, SID_PRCTL); val &= ~((0x1ff << 16) | 0x3); val |= offset << 16; payload_write32(ctx, SID_PRCTL, val); val &= ~((0xff << 8) | 0x3); val |= (0xac << 8) | 0x1; payload_write32(ctx, SID_PRCTL, val); while(payload_read32(ctx, SID_PRCTL) & 0x1); val &= ~((0x1ff << 16) | (0xff << 8) | 0x3); payload_write32(ctx, SID_PRCTL, val); payload_write32(ctx, EFUSE_HV_SWITCH, 0x0); } static const struct sid_section_t { char * name; uint32_t offset; uint32_t size_bits; } sids[] = { { "chipid", 0x00, 128 }, { "brom-config", 0x10, 32 }, { "tf-zone", 0x28, 128 }, { "thermal-sensor", 0x30, 64 }, { "oem-program", 0x3c, 160 }, { "write-protect", 0x80, 32 }, { "read-protect", 0x84, 32 }, { "lcjs", 0x88, 32 }, { "attr", 0x90, 32 }, { "huk", 0x94, 192 }, { "reserved1", 0xac, 64 }, { "rotpk", 0xb4, 256 }, { "ssk", 0xd4, 128 }, { "rssk", 0xf4, 256 }, { "sn", 0xb0, 192 }, { "nv1", 0x124, 32 }, { "nv2", 0x128, 224 }, { "hdcp-hash", 0x114, 128 }, { "backup-key", 0x164, 192 }, { "backup-key2", 0x1a4, 72 } }; static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { if(argc > 0) { if(!strcmp(argv[0], "efuse")) { argc -= 1; argv += 1; if(argc > 0) { if(!strcmp(argv[0], "dump") && (argc == 1)) { uint32_t buffer[2048 / 4]; for(int n = 0; n < ARRAY_SIZE(sids); n++) { uint32_t count = sids[n].size_bits / 32; for(int i = 0; i < count; i++) buffer[i] = efuse_read(ctx, sids[n].offset + i * 4); printf("%s:(0x%04x %d-bits)", sids[n].name, sids[n].offset, sids[n].size_bits); for(int i = 0; i < count; i++) { if(i >= 0 && ((i % 8) == 0)) printf("\r\n%-4s", ""); printf("%08x ", buffer[i]); } printf("\r\n"); } return 1; } else if(!strcmp(argv[0], "read32") && (argc == 2)) { uint32_t offset = strtoul(argv[1], NULL, 0); printf("0x%08x\r\n", efuse_read(ctx, offset)); return 1; } else if(!strcmp(argv[0], "write32") && (argc == 3)) { uint32_t offset = strtoul(argv[1], NULL, 0); size_t value = strtoul(argv[2], NULL, 0); efuse_write(ctx, offset, value); return 1; } else if(!strcmp(argv[0], "write") && (argc == 3)) { uint32_t offset = strtoul(argv[1], NULL, 0); uint64_t len; void * buf = file_load(argv[2], &len); if(buf && (len > 0)) { uint8_t * p = buf; uint32_t l = len; uint32_t o = 0; uint32_t v; while(l >= 4) { v = *((uint32_t *)p); efuse_write(ctx, offset + o, v); l -= 4; o += 4; p += 4; } if(l > 0) { uint32_t v = 0; for(int i = 0; i < l; i++) v = ((v << 8) & 0xffffff00) | p[i]; efuse_write(ctx, offset + o, v); } free(buf); return 1; } } } } else if(!strcmp(argv[0], "checksboot")) { uint32_t secure_status = payload_read32(ctx, 0x03006000 + 0xA0); if(secure_status) printf("The device enabled the security boot.\r\n"); else printf("The device does not enabled the security boot.\r\n"); return 1; } } printf("usage:\r\n"); printf(" xfel extra efuse dump - Dump all of the efuse information\r\n"); printf(" xfel extra efuse read32 - Read 32-bits value from efuse\r\n"); printf(" xfel extra efuse write32 - Write 32-bits value to efuse\r\n"); printf(" xfel extra efuse write - Write file to efuse\r\n"); printf(" xfel extra checksboot - Check whether security boot is enabled on the device\r\n"); return 0; } struct chip_t a733 = { .name = "A733", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/chips/a80.c000066400000000000000000000016471512120643700143310ustar00rootroot00000000000000#include static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00163900) return 1; return 0; } static int chip_reset(struct xfel_ctx_t * ctx) { return 0; } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { return 0; } static int chip_jtag(struct xfel_ctx_t * ctx) { return 0; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { return 0; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { return 0; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { return 0; } static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { return 0; } struct chip_t a80 = { .name = "A80", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/chips/a83t.c000066400000000000000000000016511512120643700145130ustar00rootroot00000000000000#include static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00167300) return 1; return 0; } static int chip_reset(struct xfel_ctx_t * ctx) { return 0; } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { return 0; } static int chip_jtag(struct xfel_ctx_t * ctx) { return 0; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { return 0; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { return 0; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { return 0; } static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { return 0; } struct chip_t a83t = { .name = "A83T", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/chips/d1_f133.c000066400000000000000000006707331512120643700150110ustar00rootroot00000000000000#include struct ddr2_param_t { uint32_t dram_clk; uint32_t dram_type; uint32_t dram_zq; uint32_t dram_odt_en; uint32_t dram_para1; uint32_t dram_para2; uint32_t dram_mr0; uint32_t dram_mr1; uint32_t dram_mr2; uint32_t dram_mr3; uint32_t dram_tpr0; uint32_t dram_tpr1; uint32_t dram_tpr2; uint32_t dram_tpr3; uint32_t dram_tpr4; uint32_t dram_tpr5; uint32_t dram_tpr6; uint32_t dram_tpr7; uint32_t dram_tpr8; uint32_t dram_tpr9; uint32_t dram_tpr10; uint32_t dram_tpr11; uint32_t dram_tpr12; uint32_t dram_tpr13; uint32_t reserve[8]; }; struct ddr3_param_t { uint32_t dram_clk; uint32_t dram_type; uint32_t dram_zq; uint32_t dram_odt_en; uint32_t dram_para1; uint32_t dram_para2; uint32_t dram_mr0; uint32_t dram_mr1; uint32_t dram_mr2; uint32_t dram_mr3; uint32_t dram_tpr0; uint32_t dram_tpr1; uint32_t dram_tpr2; uint32_t dram_tpr3; uint32_t dram_tpr4; uint32_t dram_tpr5; uint32_t dram_tpr6; uint32_t dram_tpr7; uint32_t dram_tpr8; uint32_t dram_tpr9; uint32_t dram_tpr10; uint32_t dram_tpr11; uint32_t dram_tpr12; uint32_t dram_tpr13; uint32_t reserve[8]; }; static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00185900) { /* * XuanTie C906 RISC-V */ if(R32(0x00000000) == 0x43014281) return 1; } return 0; } static uint32_t payload_read32(struct xfel_ctx_t * ctx, uint32_t addr) { static const uint8_t payload[] = { 0x37, 0x03, 0x40, 0x00, 0x73, 0x20, 0x03, 0x7c, 0x37, 0x03, 0x03, 0x00, 0x1b, 0x03, 0x33, 0x01, 0x73, 0x20, 0x23, 0x7c, 0x6f, 0x00, 0x40, 0x00, 0x97, 0x02, 0x00, 0x00, 0x93, 0x82, 0x02, 0x02, 0x83, 0xa2, 0x02, 0x00, 0x83, 0xa2, 0x02, 0x00, 0x17, 0x03, 0x00, 0x00, 0x13, 0x03, 0x43, 0x01, 0x23, 0x20, 0x53, 0x00, 0x67, 0x80, 0x00, 0x00, }; uint32_t adr = cpu_to_le32(addr); uint32_t val; fel_write(ctx, ctx->version.scratchpad, (void *)payload, sizeof(payload)); fel_write(ctx, ctx->version.scratchpad + sizeof(payload), (void *)&adr, sizeof(adr)); fel_exec(ctx, ctx->version.scratchpad); fel_read(ctx, ctx->version.scratchpad + sizeof(payload) + sizeof(adr), (void *)&val, sizeof(val)); return le32_to_cpu(val); } static void payload_write32(struct xfel_ctx_t * ctx, uint32_t addr, uint32_t val) { static const uint8_t payload[] = { 0x37, 0x03, 0x40, 0x00, 0x73, 0x20, 0x03, 0x7c, 0x37, 0x03, 0x03, 0x00, 0x1b, 0x03, 0x33, 0x01, 0x73, 0x20, 0x23, 0x7c, 0x6f, 0x00, 0x40, 0x00, 0x97, 0x02, 0x00, 0x00, 0x93, 0x82, 0x02, 0x02, 0x83, 0xa2, 0x02, 0x00, 0x17, 0x03, 0x00, 0x00, 0x13, 0x03, 0x83, 0x01, 0x03, 0x23, 0x03, 0x00, 0x23, 0xa0, 0x62, 0x00, 0x67, 0x80, 0x00, 0x00, }; uint32_t params[2] = { cpu_to_le32(addr), cpu_to_le32(val), }; fel_write(ctx, ctx->version.scratchpad, (void *)payload, sizeof(payload)); fel_write(ctx, ctx->version.scratchpad + sizeof(payload), (void *)params, sizeof(params)); fel_exec(ctx, ctx->version.scratchpad); } static int chip_reset(struct xfel_ctx_t * ctx) { payload_write32(ctx, 0x020500a0 + 0x08, (0x16aa << 16) | (0x1 << 0)); return 1; } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { uint32_t id[4]; id[0] = payload_read32(ctx, 0x03006200 + 0x0); id[1] = payload_read32(ctx, 0x03006200 + 0x4); id[2] = payload_read32(ctx, 0x03006200 + 0x8); id[3] = payload_read32(ctx, 0x03006200 + 0xc); sprintf(sid, "%08x%08x%08x%08x", id[0], id[1], id[2], id[3]); return 1; } static int chip_jtag(struct xfel_ctx_t * ctx) { static const uint8_t payload[] = { 0x37, 0x03, 0x40, 0x00, 0x73, 0x20, 0x03, 0x7c, 0x37, 0x03, 0x03, 0x00, 0x1b, 0x03, 0x33, 0x01, 0x73, 0x20, 0x23, 0x7c, 0x6f, 0x00, 0x40, 0x00, 0x13, 0x01, 0x01, 0xfe, 0x23, 0x34, 0x81, 0x00, 0x23, 0x38, 0x91, 0x00, 0x23, 0x3c, 0x11, 0x00, 0x13, 0x04, 0x05, 0x00, 0xef, 0x00, 0x40, 0x02, 0x83, 0x30, 0x81, 0x01, 0x03, 0x34, 0x81, 0x00, 0x83, 0x34, 0x01, 0x01, 0x13, 0x01, 0x01, 0x02, 0x67, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, 0x07, 0x00, 0x02, 0x03, 0xa7, 0x07, 0x0f, 0xb7, 0x16, 0xff, 0xff, 0x93, 0x86, 0xf6, 0xff, 0x13, 0x77, 0x07, 0xff, 0x13, 0x67, 0x47, 0x00, 0x23, 0xa8, 0xe7, 0x0e, 0x03, 0xa7, 0x07, 0x0f, 0x13, 0x77, 0xf7, 0xf0, 0x13, 0x67, 0x07, 0x04, 0x23, 0xa8, 0xe7, 0x0e, 0x03, 0xa7, 0x07, 0x0f, 0x33, 0x77, 0xd7, 0x00, 0xb7, 0x46, 0x00, 0x00, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xa8, 0xe7, 0x0e, 0x03, 0xa7, 0x07, 0x0f, 0xb7, 0x06, 0x10, 0xff, 0x93, 0x86, 0xf6, 0xff, 0x33, 0x77, 0xd7, 0x00, 0xb7, 0x06, 0x40, 0x00, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xa8, 0xe7, 0x0e, 0x67, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; fel_write(ctx, 0x00020000, (void *)&payload[0], sizeof(payload)); fel_exec(ctx, 0x00020000); return 1; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { static const uint8_t d1_ddr_payload[] = { 0x37, 0x03, 0x40, 0x00, 0x73, 0x20, 0x03, 0x7c, 0x37, 0x03, 0x03, 0x00, 0x1b, 0x03, 0x33, 0x01, 0x73, 0x20, 0x23, 0x7c, 0x6f, 0x00, 0x40, 0x08, 0x18, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xfb, 0x7b, 0x7b, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd2, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x1c, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x95, 0x21, 0x4a, 0x00, 0x90, 0x31, 0x42, 0x02, 0x61, 0xb0, 0x08, 0x00, 0x96, 0x78, 0x78, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x48, 0x48, 0x48, 0x48, 0x48, 0x00, 0x00, 0x00, 0x1e, 0x12, 0x20, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x01, 0x05, 0x34, 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, 0x00, 0x13, 0x01, 0x01, 0xfe, 0x23, 0x34, 0x81, 0x00, 0x23, 0x38, 0x91, 0x00, 0x23, 0x3c, 0x11, 0x00, 0x13, 0x04, 0x05, 0x00, 0xb7, 0x02, 0x09, 0x07, 0x9b, 0x82, 0x82, 0x10, 0x23, 0xa0, 0x02, 0x00, 0xef, 0x30, 0x80, 0x13, 0xef, 0x30, 0x40, 0x48, 0x17, 0x05, 0x00, 0x00, 0x13, 0x05, 0x85, 0xf5, 0xef, 0x30, 0x90, 0x1b, 0x83, 0x30, 0x81, 0x01, 0x03, 0x34, 0x81, 0x00, 0x83, 0x34, 0x01, 0x01, 0x13, 0x01, 0x01, 0x02, 0x67, 0x80, 0x00, 0x00, 0x93, 0x0f, 0x05, 0x00, 0x93, 0x36, 0x06, 0x08, 0x63, 0x9a, 0x06, 0x0c, 0x93, 0xf6, 0x7f, 0x00, 0x13, 0xf7, 0x75, 0x00, 0x63, 0x94, 0xe6, 0x0c, 0x63, 0x84, 0x06, 0x02, 0x93, 0xf6, 0x85, 0xff, 0x93, 0x86, 0x86, 0x00, 0x33, 0x87, 0xb6, 0x40, 0x83, 0x87, 0x05, 0x00, 0x93, 0x85, 0x15, 0x00, 0x23, 0x80, 0xff, 0x00, 0x93, 0x8f, 0x1f, 0x00, 0xe3, 0xe8, 0xd5, 0xfe, 0x33, 0x06, 0xe6, 0x40, 0x13, 0x77, 0x06, 0xf8, 0x63, 0x0c, 0x07, 0x08, 0xb3, 0x86, 0xe5, 0x00, 0x03, 0xb7, 0x05, 0x00, 0x83, 0xb7, 0x85, 0x00, 0x03, 0xb8, 0x05, 0x01, 0x83, 0xb8, 0x85, 0x01, 0x83, 0xb2, 0x05, 0x02, 0x03, 0xb3, 0x85, 0x02, 0x83, 0xb3, 0x05, 0x03, 0x03, 0xbe, 0x85, 0x03, 0x83, 0xbe, 0x05, 0x04, 0x03, 0xbf, 0x85, 0x04, 0x23, 0xb0, 0xef, 0x00, 0x23, 0xb4, 0xff, 0x00, 0x23, 0xb8, 0x0f, 0x01, 0x23, 0xbc, 0x1f, 0x01, 0x23, 0xb0, 0x5f, 0x02, 0x23, 0xb4, 0x6f, 0x02, 0x23, 0xb8, 0x7f, 0x02, 0x23, 0xbc, 0xcf, 0x03, 0x23, 0xb0, 0xdf, 0x05, 0x23, 0xb4, 0xef, 0x05, 0x03, 0xb7, 0x05, 0x05, 0x83, 0xb7, 0x85, 0x05, 0x03, 0xb8, 0x05, 0x06, 0x83, 0xb8, 0x85, 0x06, 0x83, 0xb2, 0x05, 0x07, 0x03, 0xb3, 0x85, 0x07, 0x93, 0x85, 0x05, 0x08, 0x23, 0xb8, 0xef, 0x04, 0x23, 0xbc, 0xff, 0x04, 0x23, 0xb0, 0x0f, 0x07, 0x23, 0xb4, 0x1f, 0x07, 0x23, 0xb8, 0x5f, 0x06, 0x23, 0xbc, 0x6f, 0x06, 0x93, 0x8f, 0x0f, 0x08, 0xe3, 0xec, 0xd5, 0xf6, 0x13, 0x76, 0xf6, 0x07, 0x63, 0x02, 0x06, 0x04, 0xb3, 0x86, 0xc5, 0x00, 0xb3, 0xe7, 0xf5, 0x01, 0xb3, 0xe7, 0xd7, 0x00, 0x93, 0xf7, 0x37, 0x00, 0x63, 0x9e, 0x07, 0x00, 0x03, 0xa7, 0x05, 0x00, 0x93, 0x85, 0x45, 0x00, 0x23, 0xa0, 0xef, 0x00, 0x93, 0x8f, 0x4f, 0x00, 0xe3, 0xe8, 0xd5, 0xfe, 0x67, 0x80, 0x00, 0x00, 0x03, 0x87, 0x05, 0x00, 0x93, 0x85, 0x15, 0x00, 0x23, 0x80, 0xef, 0x00, 0x93, 0x8f, 0x1f, 0x00, 0xe3, 0xe8, 0xd5, 0xfe, 0x67, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x93, 0x02, 0x05, 0x00, 0x93, 0x36, 0x06, 0x01, 0x63, 0x9e, 0x06, 0x0e, 0x93, 0x86, 0x72, 0x00, 0x93, 0xf6, 0x86, 0xff, 0x63, 0x8c, 0x56, 0x00, 0x33, 0x87, 0x56, 0x40, 0x23, 0x80, 0xb2, 0x00, 0x93, 0x82, 0x12, 0x00, 0xe3, 0xec, 0xd2, 0xfe, 0x33, 0x06, 0xe6, 0x40, 0x93, 0xf5, 0xf5, 0x0f, 0x93, 0x96, 0x85, 0x00, 0xb3, 0xe5, 0xb6, 0x00, 0x93, 0x96, 0x05, 0x01, 0xb3, 0xe5, 0xb6, 0x00, 0x93, 0x96, 0x05, 0x02, 0xb3, 0xe5, 0xb6, 0x00, 0x13, 0x77, 0x86, 0xff, 0xb3, 0x86, 0xe2, 0x00, 0x13, 0x77, 0x87, 0x0f, 0x63, 0x02, 0x07, 0x02, 0x33, 0x07, 0xe0, 0x40, 0x13, 0x07, 0x07, 0x10, 0xb3, 0x82, 0xe2, 0x40, 0x97, 0x07, 0x00, 0x00, 0x93, 0x87, 0x47, 0x01, 0x13, 0x57, 0x17, 0x00, 0xb3, 0x87, 0xe7, 0x00, 0x67, 0x80, 0x07, 0x00, 0x23, 0xb0, 0xb2, 0x00, 0x23, 0xb4, 0xb2, 0x00, 0x23, 0xb8, 0xb2, 0x00, 0x23, 0xbc, 0xb2, 0x00, 0x23, 0xb0, 0xb2, 0x02, 0x23, 0xb4, 0xb2, 0x02, 0x23, 0xb8, 0xb2, 0x02, 0x23, 0xbc, 0xb2, 0x02, 0x23, 0xb0, 0xb2, 0x04, 0x23, 0xb4, 0xb2, 0x04, 0x23, 0xb8, 0xb2, 0x04, 0x23, 0xbc, 0xb2, 0x04, 0x23, 0xb0, 0xb2, 0x06, 0x23, 0xb4, 0xb2, 0x06, 0x23, 0xb8, 0xb2, 0x06, 0x23, 0xbc, 0xb2, 0x06, 0x23, 0xb0, 0xb2, 0x08, 0x23, 0xb4, 0xb2, 0x08, 0x23, 0xb8, 0xb2, 0x08, 0x23, 0xbc, 0xb2, 0x08, 0x23, 0xb0, 0xb2, 0x0a, 0x23, 0xb4, 0xb2, 0x0a, 0x23, 0xb8, 0xb2, 0x0a, 0x23, 0xbc, 0xb2, 0x0a, 0x23, 0xb0, 0xb2, 0x0c, 0x23, 0xb4, 0xb2, 0x0c, 0x23, 0xb8, 0xb2, 0x0c, 0x23, 0xbc, 0xb2, 0x0c, 0x23, 0xb0, 0xb2, 0x0e, 0x23, 0xb4, 0xb2, 0x0e, 0x23, 0xb8, 0xb2, 0x0e, 0x23, 0xbc, 0xb2, 0x0e, 0x93, 0x82, 0x02, 0x10, 0xe3, 0xee, 0xd2, 0xf6, 0x13, 0x76, 0x76, 0x00, 0x63, 0x0a, 0x06, 0x00, 0xb3, 0x86, 0xc2, 0x00, 0x23, 0x80, 0xb2, 0x00, 0x93, 0x82, 0x12, 0x00, 0xe3, 0xec, 0xd2, 0xfe, 0x67, 0x80, 0x00, 0x00, 0x67, 0x80, 0x00, 0x00, 0x67, 0x80, 0x00, 0x00, 0x13, 0x05, 0xf0, 0xff, 0x67, 0x80, 0x00, 0x00, 0x93, 0x07, 0x00, 0x00, 0x63, 0x14, 0xf6, 0x00, 0x67, 0x80, 0x00, 0x00, 0x0b, 0xc7, 0xf5, 0x80, 0x0b, 0x57, 0xf5, 0x00, 0x93, 0x87, 0x17, 0x00, 0x6f, 0xf0, 0xdf, 0xfe, 0x0b, 0x35, 0x05, 0x7c, 0x6f, 0x30, 0xc0, 0x1c, 0x83, 0x27, 0x45, 0x00, 0x13, 0x01, 0x01, 0xff, 0x23, 0x34, 0x11, 0x00, 0x93, 0x06, 0x20, 0x00, 0x13, 0x07, 0xf0, 0x02, 0x63, 0x8a, 0xd7, 0x00, 0x93, 0x06, 0x30, 0x00, 0x13, 0x07, 0x90, 0x01, 0x63, 0x84, 0xd7, 0x00, 0x13, 0x07, 0x00, 0x00, 0x37, 0x06, 0x00, 0x03, 0x83, 0x27, 0x06, 0x15, 0x0f, 0x00, 0xa0, 0x0a, 0xb7, 0x06, 0xff, 0xff, 0x93, 0x86, 0xf6, 0x0f, 0xb3, 0xf7, 0xd7, 0x00, 0x1b, 0x17, 0x87, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0xe0, 0xff, 0x13, 0x07, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x23, 0x28, 0xf6, 0x14, 0x13, 0x05, 0x10, 0x00, 0xef, 0x30, 0x80, 0x16, 0x0f, 0x00, 0xa0, 0x0a, 0x83, 0x30, 0x81, 0x00, 0x13, 0x01, 0x01, 0x01, 0x67, 0x80, 0x00, 0x00, 0x83, 0x27, 0x05, 0x00, 0x93, 0xc5, 0xf5, 0xff, 0xb3, 0xf5, 0xf5, 0x00, 0xb3, 0xe5, 0xc5, 0x00, 0x23, 0x20, 0xb5, 0x00, 0x67, 0x80, 0x00, 0x00, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x27, 0x10, 0x03, 0x13, 0x07, 0xf0, 0xff, 0x23, 0xa0, 0xe7, 0x02, 0x0f, 0x00, 0x50, 0x05, 0x13, 0x07, 0xf0, 0x0f, 0x23, 0xa2, 0xe7, 0x02, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x01, 0x00, 0x1b, 0x07, 0xf7, 0xff, 0x23, 0xa4, 0xe7, 0x02, 0x13, 0x05, 0xa0, 0x00, 0x6f, 0x30, 0xc0, 0x10, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x27, 0x10, 0x03, 0x13, 0x07, 0x10, 0x00, 0x23, 0xa0, 0xe7, 0x02, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xa2, 0x07, 0x02, 0x0f, 0x00, 0x50, 0x05, 0x13, 0x05, 0xa0, 0x00, 0x23, 0xa4, 0x07, 0x02, 0x6f, 0x30, 0x40, 0x0e, 0x13, 0x01, 0x01, 0xfe, 0x37, 0x37, 0x10, 0x03, 0xb7, 0x25, 0x00, 0x00, 0xb7, 0x36, 0x10, 0x03, 0x23, 0x38, 0x91, 0x00, 0x23, 0x3c, 0x11, 0x00, 0x93, 0x04, 0x05, 0x00, 0x23, 0x34, 0x81, 0x00, 0x13, 0x07, 0x07, 0x31, 0x93, 0x85, 0x05, 0xe0, 0x13, 0x85, 0x46, 0x33, 0x03, 0x28, 0x07, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x83, 0xa7, 0x44, 0x05, 0x03, 0xa6, 0x84, 0x05, 0x9b, 0x97, 0x97, 0x00, 0x1b, 0x16, 0x16, 0x00, 0xb3, 0xf7, 0xb7, 0x00, 0x13, 0x76, 0xe6, 0x01, 0xb3, 0xe7, 0xc7, 0x00, 0xb3, 0xe7, 0x07, 0x01, 0x9b, 0x87, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x8b, 0x57, 0x47, 0x58, 0xe3, 0x16, 0xa7, 0xfc, 0xb7, 0x27, 0x00, 0x00, 0x37, 0x34, 0x10, 0x03, 0x93, 0x86, 0x06, 0x39, 0x13, 0x86, 0x07, 0xe0, 0x93, 0x05, 0x44, 0x3b, 0x03, 0xa5, 0x06, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x03, 0xa7, 0x44, 0x05, 0x83, 0xa7, 0x84, 0x05, 0x1b, 0x57, 0x47, 0x00, 0x9b, 0xd7, 0x47, 0x00, 0x1b, 0x17, 0x97, 0x00, 0x9b, 0x97, 0x17, 0x00, 0x33, 0x77, 0xc7, 0x00, 0x93, 0xf7, 0xe7, 0x01, 0x33, 0x67, 0xf7, 0x00, 0x33, 0x67, 0xa7, 0x00, 0x1b, 0x07, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x0b, 0xd7, 0x46, 0x58, 0xe3, 0x92, 0xb6, 0xfc, 0x83, 0x27, 0x04, 0x10, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0xfc, 0x13, 0x07, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x23, 0x20, 0xf4, 0x10, 0x83, 0x25, 0x44, 0x33, 0x0f, 0x00, 0xa0, 0x0a, 0x03, 0xd7, 0x64, 0x05, 0x83, 0xd7, 0xa4, 0x05, 0x1b, 0x17, 0x97, 0x00, 0x9b, 0x97, 0x17, 0x00, 0x33, 0x77, 0xc7, 0x00, 0x93, 0xf7, 0xe7, 0x01, 0x33, 0x67, 0xf7, 0x00, 0x33, 0x67, 0xb7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x2a, 0xe4, 0x32, 0x83, 0x25, 0x84, 0x33, 0x0f, 0x00, 0xa0, 0x0a, 0x03, 0xd7, 0x64, 0x05, 0x83, 0xd7, 0xa4, 0x05, 0x1b, 0x17, 0x97, 0x00, 0x9b, 0x97, 0x17, 0x00, 0x33, 0x77, 0xc7, 0x00, 0x93, 0xf7, 0xe7, 0x01, 0x33, 0x67, 0xf7, 0x00, 0x33, 0x67, 0xb7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x2c, 0xe4, 0x32, 0x83, 0xa5, 0x06, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x03, 0xa7, 0x44, 0x05, 0x83, 0xa7, 0x84, 0x05, 0x1b, 0x57, 0x47, 0x01, 0x9b, 0xd7, 0x47, 0x01, 0x1b, 0x17, 0x97, 0x00, 0x9b, 0x97, 0x17, 0x00, 0x33, 0x77, 0xc7, 0x00, 0x93, 0xf7, 0xe7, 0x01, 0x33, 0x67, 0xf7, 0x00, 0x33, 0x67, 0xb7, 0x00, 0x1b, 0x07, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xa0, 0xe6, 0x00, 0x83, 0x26, 0x84, 0x3b, 0x0f, 0x00, 0xa0, 0x0a, 0x83, 0xa7, 0x44, 0x05, 0x03, 0xa7, 0x84, 0x05, 0x9b, 0xd7, 0x47, 0x01, 0x1b, 0x57, 0x47, 0x01, 0x9b, 0x97, 0x97, 0x00, 0x1b, 0x17, 0x17, 0x00, 0xb3, 0xf7, 0xc7, 0x00, 0x13, 0x77, 0xe7, 0x01, 0xb3, 0xe7, 0xe7, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x2c, 0xf4, 0x3a, 0x83, 0x27, 0xc4, 0x33, 0x0f, 0x00, 0xa0, 0x0a, 0x03, 0xd7, 0x64, 0x05, 0xb7, 0x06, 0x00, 0x1e, 0x1b, 0x17, 0x97, 0x01, 0x33, 0x77, 0xd7, 0x00, 0x33, 0x67, 0xf7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x2e, 0xe4, 0x32, 0x03, 0x27, 0xc4, 0x3b, 0x0f, 0x00, 0xa0, 0x0a, 0x83, 0xa7, 0x44, 0x05, 0x9b, 0xd7, 0x47, 0x01, 0x9b, 0x97, 0x97, 0x01, 0xb3, 0xf7, 0xd7, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x2e, 0xf4, 0x3a, 0x83, 0x27, 0x04, 0x10, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0x04, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0x20, 0xf4, 0x10, 0x13, 0x05, 0x10, 0x00, 0xef, 0x20, 0x10, 0x6d, 0x37, 0x17, 0x00, 0x00, 0x37, 0x36, 0x10, 0x03, 0x13, 0x04, 0x04, 0x24, 0x13, 0x07, 0x07, 0xf0, 0x93, 0x06, 0xc6, 0x27, 0x83, 0x25, 0x04, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x83, 0xa7, 0x04, 0x05, 0x9b, 0xd7, 0x47, 0x00, 0x9b, 0x97, 0x87, 0x00, 0xb3, 0xf7, 0xe7, 0x00, 0xb3, 0xe7, 0xb7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x8b, 0x57, 0x44, 0x58, 0xe3, 0x1c, 0xd4, 0xfc, 0xb7, 0x17, 0x00, 0x00, 0xb7, 0x36, 0x10, 0x03, 0x93, 0x85, 0x07, 0xf0, 0x13, 0x06, 0x86, 0x22, 0x93, 0x87, 0x06, 0x24, 0x03, 0x25, 0x06, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x03, 0xa7, 0x04, 0x05, 0x1b, 0x57, 0x47, 0x00, 0x1b, 0x17, 0x87, 0x00, 0x33, 0x77, 0xb7, 0x00, 0x33, 0x67, 0xa7, 0x00, 0x1b, 0x07, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x0b, 0x57, 0x46, 0x58, 0xe3, 0x1c, 0xf6, 0xfc, 0x83, 0xa7, 0x86, 0x21, 0x0f, 0x00, 0xa0, 0x0a, 0x03, 0xa7, 0x04, 0x05, 0x1b, 0x17, 0x87, 0x00, 0x33, 0x77, 0xb7, 0x00, 0x33, 0x67, 0xf7, 0x00, 0x1b, 0x07, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xac, 0xe6, 0x20, 0x83, 0xa7, 0xc6, 0x21, 0x0f, 0x00, 0xa0, 0x0a, 0x03, 0xa7, 0x04, 0x05, 0x33, 0x77, 0xb7, 0x00, 0x33, 0x67, 0xf7, 0x00, 0x1b, 0x07, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xae, 0xe6, 0x20, 0x03, 0xa7, 0x06, 0x28, 0x0f, 0x00, 0xa0, 0x0a, 0x83, 0xa7, 0x04, 0x05, 0x9b, 0xd7, 0xc7, 0x00, 0x9b, 0x97, 0x87, 0x00, 0xb3, 0xf7, 0xb7, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x83, 0x30, 0x81, 0x01, 0x03, 0x34, 0x81, 0x00, 0x23, 0xa0, 0xf6, 0x28, 0x83, 0x34, 0x01, 0x01, 0x13, 0x01, 0x01, 0x02, 0x67, 0x80, 0x00, 0x00, 0x13, 0x01, 0x01, 0xe9, 0xb7, 0x45, 0x02, 0x00, 0x23, 0x30, 0x81, 0x16, 0x13, 0x06, 0x00, 0x0b, 0x13, 0x84, 0x05, 0xac, 0x13, 0x05, 0x01, 0x00, 0x93, 0x85, 0x05, 0xac, 0x23, 0x34, 0x11, 0x16, 0xef, 0xf0, 0xdf, 0x96, 0x13, 0x08, 0x01, 0x0b, 0x13, 0x06, 0x00, 0x0b, 0x93, 0x05, 0x04, 0x0b, 0x13, 0x05, 0x08, 0x00, 0xef, 0xf0, 0x9f, 0x95, 0xb7, 0x37, 0x10, 0x03, 0x13, 0x08, 0x05, 0x00, 0x03, 0xa7, 0x07, 0x10, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x06, 0x00, 0xfc, 0x93, 0x86, 0xf6, 0xff, 0x33, 0x77, 0xd7, 0x00, 0xb7, 0x35, 0x10, 0x03, 0x23, 0xa0, 0xe7, 0x10, 0x13, 0x05, 0x00, 0x00, 0x93, 0x87, 0x07, 0x31, 0x93, 0x08, 0xc0, 0x02, 0x13, 0x83, 0x05, 0x51, 0x13, 0x06, 0x05, 0x00, 0x93, 0x06, 0x00, 0x00, 0x0b, 0x47, 0xc8, 0x40, 0x0b, 0x4e, 0xc1, 0x40, 0x1b, 0x17, 0x87, 0x00, 0x3b, 0x07, 0xc7, 0x01, 0x0b, 0xce, 0xd7, 0x40, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x3b, 0x07, 0xc7, 0x01, 0x0b, 0xd7, 0xd7, 0x40, 0x93, 0x86, 0x46, 0x00, 0x13, 0x06, 0x46, 0x00, 0xe3, 0x9a, 0x16, 0xfd, 0x93, 0x87, 0x07, 0x08, 0x13, 0x05, 0xc5, 0x02, 0xe3, 0x90, 0x67, 0xfc, 0x83, 0xa7, 0x05, 0x10, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0x04, 0x83, 0x30, 0x81, 0x16, 0x03, 0x34, 0x01, 0x16, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0xa0, 0xf5, 0x10, 0x13, 0x01, 0x01, 0x17, 0x67, 0x80, 0x00, 0x00, 0xb7, 0x27, 0x10, 0x03, 0x03, 0xa7, 0xc7, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0xb7, 0xf6, 0xff, 0xff, 0x33, 0x77, 0xd7, 0x00, 0x83, 0x26, 0x05, 0x00, 0x9b, 0xd6, 0x16, 0x00, 0x9b, 0x86, 0xf6, 0xff, 0x33, 0x67, 0xd7, 0x00, 0x1b, 0x07, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xa6, 0xe7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x01, 0x00, 0x23, 0xa0, 0xe7, 0x20, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0x01, 0x1b, 0x07, 0x97, 0x00, 0x23, 0xa8, 0xe7, 0x20, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x06, 0x50, 0x00, 0x9b, 0x86, 0x46, 0x06, 0x23, 0xaa, 0xd7, 0x20, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x06, 0x00, 0x02, 0x1b, 0x06, 0xd6, 0x00, 0x23, 0xa8, 0xc7, 0x22, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x06, 0x60, 0x00, 0x1b, 0x06, 0x06, 0x10, 0x23, 0xaa, 0xc7, 0x22, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xa0, 0xe7, 0x24, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xa2, 0xd7, 0x24, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x06, 0x64, 0x00, 0x9b, 0x86, 0x96, 0x20, 0x23, 0xa0, 0xd7, 0x26, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x06, 0x20, 0x00, 0x9b, 0x86, 0x06, 0x04, 0x23, 0xa2, 0xd7, 0x26, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xa8, 0xe7, 0x28, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x40, 0x00, 0x1b, 0x07, 0x07, 0x08, 0x23, 0xaa, 0xe7, 0x28, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xa8, 0x07, 0x46, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xaa, 0x07, 0x46, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x37, 0x80, 0x0f, 0xb7, 0x37, 0x10, 0x03, 0x1b, 0x07, 0x57, 0xf0, 0x23, 0xa0, 0xe7, 0x1c, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0x0f, 0x1b, 0x07, 0xf7, 0x0f, 0x23, 0xa4, 0xe7, 0x1c, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0x3f, 0x1b, 0x07, 0xf7, 0x05, 0x23, 0xa8, 0xe7, 0x1c, 0x67, 0x80, 0x00, 0x00, 0xbb, 0x05, 0xb5, 0x02, 0x93, 0x07, 0x80, 0x3e, 0x3b, 0xf5, 0xf5, 0x02, 0xbb, 0xd5, 0xf5, 0x02, 0x33, 0x35, 0xa0, 0x00, 0x3b, 0x05, 0xb5, 0x00, 0x67, 0x80, 0x00, 0x00, 0x83, 0x27, 0xc5, 0x05, 0x13, 0x01, 0x01, 0xf3, 0x23, 0x30, 0x41, 0x0b, 0x23, 0x3c, 0x51, 0x09, 0x23, 0x30, 0x81, 0x09, 0x23, 0x38, 0xf1, 0x04, 0x23, 0x34, 0x11, 0x0c, 0x23, 0x30, 0x81, 0x0c, 0x23, 0x3c, 0x91, 0x0a, 0x23, 0x38, 0x21, 0x0b, 0x23, 0x34, 0x31, 0x0b, 0x23, 0x38, 0x61, 0x09, 0x23, 0x34, 0x71, 0x09, 0x23, 0x3c, 0x91, 0x07, 0x23, 0x38, 0xa1, 0x07, 0x23, 0x34, 0xb1, 0x07, 0x93, 0xf7, 0x27, 0x00, 0x93, 0x0a, 0x05, 0x00, 0x0b, 0x4a, 0x85, 0xe1, 0x63, 0x80, 0x07, 0x32, 0x83, 0x2c, 0x85, 0x02, 0x03, 0x26, 0xc5, 0x02, 0x03, 0x29, 0x05, 0x03, 0x8b, 0xb7, 0x5c, 0x5d, 0x23, 0x3c, 0xf1, 0x04, 0x8b, 0x37, 0xf6, 0x4c, 0x23, 0x30, 0xf1, 0x04, 0x8b, 0x37, 0x66, 0x28, 0x23, 0x30, 0xf1, 0x00, 0x8b, 0x37, 0xc9, 0x50, 0x0b, 0x39, 0x09, 0x2c, 0x0b, 0xbd, 0xfc, 0x50, 0x8b, 0xbb, 0xbc, 0x38, 0x8b, 0xb9, 0x6c, 0x28, 0x0b, 0x38, 0x76, 0x6d, 0x93, 0xfc, 0xfc, 0x03, 0x8b, 0x34, 0x46, 0x59, 0x0b, 0x3b, 0xb6, 0x38, 0x93, 0x7d, 0xf6, 0x03, 0x23, 0x34, 0xf1, 0x00, 0x1b, 0x09, 0x09, 0x00, 0x83, 0xa7, 0x4a, 0x02, 0x23, 0x34, 0xf1, 0x04, 0x83, 0xa7, 0xca, 0x01, 0x23, 0x3c, 0xf1, 0x02, 0x93, 0x07, 0x30, 0x00, 0xe3, 0x04, 0xfc, 0x10, 0x63, 0xe2, 0x87, 0x7b, 0x93, 0x07, 0x20, 0x00, 0xe3, 0x04, 0xfc, 0x04, 0x93, 0x07, 0x80, 0x00, 0x23, 0x38, 0xf1, 0x02, 0x13, 0x03, 0x40, 0x00, 0x93, 0x0e, 0x30, 0x00, 0x93, 0x0f, 0x40, 0x00, 0x13, 0x0e, 0xb0, 0x01, 0x13, 0x0b, 0xc0, 0x00, 0x13, 0x0c, 0x20, 0x00, 0x93, 0x02, 0x60, 0x00, 0x13, 0x0f, 0x20, 0x00, 0x93, 0x05, 0x00, 0x00, 0x93, 0x07, 0x30, 0x00, 0x13, 0x05, 0x30, 0x00, 0x93, 0x08, 0x10, 0x00, 0x13, 0x07, 0x10, 0x00, 0x13, 0x04, 0x00, 0x00, 0x93, 0x03, 0x00, 0x00, 0x93, 0x04, 0x00, 0x00, 0x93, 0x06, 0x00, 0x00, 0x23, 0x34, 0x01, 0x02, 0x23, 0x30, 0x01, 0x02, 0x23, 0x3c, 0x01, 0x00, 0x23, 0x38, 0x01, 0x00, 0x03, 0x36, 0x01, 0x04, 0x03, 0x3a, 0x01, 0x00, 0x3b, 0x0a, 0xca, 0x00, 0x1b, 0x06, 0x25, 0x00, 0x63, 0x7a, 0xca, 0x00, 0x03, 0x36, 0x01, 0x00, 0x3b, 0x0a, 0xc5, 0x40, 0x1b, 0x06, 0x2a, 0x00, 0x23, 0x30, 0xc1, 0x04, 0x03, 0xda, 0xaa, 0x01, 0x63, 0x14, 0x0a, 0x00, 0x23, 0xac, 0xda, 0x00, 0x83, 0x36, 0x81, 0x03, 0x8b, 0xb6, 0x06, 0x7d, 0x63, 0x94, 0x06, 0x00, 0x23, 0xae, 0x9a, 0x00, 0x83, 0xd6, 0x2a, 0x02, 0x63, 0x94, 0x06, 0x00, 0x23, 0xa0, 0x7a, 0x02, 0x83, 0x36, 0x81, 0x04, 0x8b, 0xb6, 0x06, 0x7d, 0x63, 0x94, 0x06, 0x00, 0x23, 0xa2, 0x8a, 0x02, 0x83, 0xd3, 0x8a, 0x01, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x36, 0x10, 0x03, 0x23, 0xa8, 0x76, 0x02, 0x83, 0xd3, 0xca, 0x01, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xaa, 0x76, 0x02, 0x83, 0xd3, 0x0a, 0x02, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xac, 0x76, 0x02, 0x83, 0xd3, 0x4a, 0x02, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xae, 0x76, 0x02, 0x83, 0xa3, 0xca, 0x00, 0x8b, 0xb3, 0x43, 0x14, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xa6, 0x76, 0x02, 0x0f, 0x00, 0x50, 0x05, 0x1b, 0x1d, 0x0d, 0x01, 0x33, 0xed, 0xad, 0x01, 0x9b, 0x13, 0x8b, 0x01, 0x33, 0x6d, 0x7d, 0x00, 0x1b, 0x1e, 0x8e, 0x00, 0x33, 0x6d, 0xcd, 0x01, 0x23, 0xac, 0xa6, 0x05, 0x0f, 0x00, 0x50, 0x05, 0x03, 0x36, 0x01, 0x04, 0x1b, 0x18, 0x08, 0x01, 0x33, 0xe8, 0x0c, 0x01, 0x1b, 0x1a, 0x86, 0x00, 0x33, 0x68, 0x48, 0x01, 0x23, 0xae, 0x06, 0x05, 0x0f, 0x00, 0x50, 0x05, 0x9b, 0x94, 0x87, 0x01, 0x83, 0x37, 0x01, 0x03, 0x1b, 0x15, 0x05, 0x01, 0xb3, 0xe4, 0xa4, 0x00, 0xb3, 0xe4, 0xf4, 0x00, 0x9b, 0x9f, 0x8f, 0x00, 0xb3, 0xef, 0xf4, 0x01, 0x23, 0xa0, 0xf6, 0x07, 0x0f, 0x00, 0x50, 0x05, 0x1b, 0x1f, 0xcf, 0x00, 0x9b, 0x95, 0x05, 0x01, 0xb3, 0xe5, 0xe5, 0x01, 0xb3, 0xe2, 0x55, 0x00, 0x23, 0xa2, 0x56, 0x06, 0x0f, 0x00, 0x50, 0x05, 0x83, 0x37, 0x81, 0x05, 0x9b, 0x99, 0x89, 0x01, 0x9b, 0x9b, 0x8b, 0x00, 0x9b, 0x97, 0x07, 0x01, 0xb3, 0xe9, 0xf9, 0x00, 0x83, 0x37, 0x01, 0x00, 0x33, 0xee, 0xf9, 0x00, 0xb3, 0x6b, 0x7e, 0x01, 0x23, 0xa4, 0x76, 0x07, 0x0f, 0x00, 0x50, 0x05, 0x9b, 0x17, 0x83, 0x01, 0x1b, 0x13, 0x03, 0x01, 0x33, 0xe3, 0x67, 0x00, 0x33, 0x6c, 0x83, 0x01, 0x9b, 0x9e, 0x8e, 0x00, 0xb3, 0x6e, 0xdc, 0x01, 0x23, 0xa6, 0xd6, 0x07, 0x83, 0xa7, 0x86, 0x07, 0x0f, 0x00, 0xa0, 0x0a, 0x83, 0xa5, 0x0a, 0x00, 0xb7, 0x06, 0xff, 0x0f, 0xb3, 0xf7, 0xd7, 0x00, 0x93, 0x06, 0x00, 0x32, 0xe3, 0xe0, 0xb6, 0x0c, 0xb7, 0x66, 0x00, 0xf0, 0x93, 0x86, 0x06, 0x60, 0xb3, 0xe7, 0xd7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x36, 0x10, 0x03, 0x93, 0xe7, 0x07, 0x01, 0x23, 0xac, 0xf6, 0x06, 0x0f, 0x00, 0x50, 0x05, 0x1b, 0x17, 0x07, 0x01, 0x33, 0xe7, 0xe8, 0x00, 0xb7, 0x08, 0x00, 0x02, 0x93, 0x88, 0x08, 0x10, 0x33, 0x67, 0x17, 0x01, 0x23, 0xa0, 0xe6, 0x08, 0x0f, 0x00, 0x50, 0x05, 0x83, 0x37, 0x81, 0x01, 0x03, 0x37, 0x01, 0x01, 0x9b, 0x97, 0x47, 0x01, 0xb3, 0x67, 0xf7, 0x00, 0x23, 0xa8, 0xf6, 0x04, 0x0f, 0x00, 0x50, 0x05, 0x83, 0x37, 0x81, 0x02, 0x03, 0x37, 0x01, 0x02, 0x9b, 0x97, 0x47, 0x01, 0xb3, 0x67, 0xf7, 0x00, 0x23, 0xaa, 0xf6, 0x04, 0x0f, 0x00, 0x50, 0x05, 0x03, 0x37, 0x81, 0x00, 0x9b, 0x17, 0x09, 0x01, 0xb3, 0x67, 0xf7, 0x00, 0x23, 0xa8, 0xf6, 0x08, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x07, 0xff, 0x0f, 0x83, 0x30, 0x81, 0x0c, 0x03, 0x34, 0x01, 0x0c, 0x1b, 0x19, 0xf9, 0x00, 0x33, 0x79, 0xf9, 0x00, 0x23, 0xaa, 0x26, 0x09, 0x83, 0x34, 0x81, 0x0b, 0x03, 0x39, 0x01, 0x0b, 0x83, 0x39, 0x81, 0x0a, 0x03, 0x3a, 0x01, 0x0a, 0x83, 0x3a, 0x81, 0x09, 0x03, 0x3b, 0x01, 0x09, 0x83, 0x3b, 0x81, 0x08, 0x03, 0x3c, 0x01, 0x08, 0x83, 0x3c, 0x81, 0x07, 0x03, 0x3d, 0x01, 0x07, 0x83, 0x3d, 0x81, 0x06, 0x13, 0x01, 0x01, 0x0d, 0x67, 0x80, 0x00, 0x00, 0x93, 0x07, 0x30, 0x00, 0x0b, 0x34, 0x1a, 0x7c, 0x63, 0x1a, 0xfc, 0x1a, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0xe0, 0x15, 0xef, 0xf0, 0x5f, 0xc6, 0x9b, 0x07, 0x05, 0x00, 0x37, 0x25, 0x00, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x85, 0xe7, 0x23, 0x34, 0xf1, 0x00, 0xef, 0xf0, 0xdf, 0xc4, 0x1b, 0x05, 0x05, 0x00, 0x13, 0x79, 0xf5, 0x01, 0x33, 0x39, 0x20, 0x01, 0x1b, 0x55, 0x55, 0x00, 0x93, 0x05, 0x04, 0x00, 0x3b, 0x09, 0xa9, 0x00, 0x13, 0x05, 0x80, 0x00, 0xef, 0xf0, 0xdf, 0xc2, 0x1b, 0x0b, 0x05, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0xf0, 0x00, 0xef, 0xf0, 0xdf, 0xc1, 0x93, 0x07, 0x20, 0x00, 0x9b, 0x09, 0x05, 0x00, 0x93, 0x04, 0x0b, 0x00, 0x63, 0x74, 0xfb, 0x00, 0x93, 0x04, 0x20, 0x00, 0x93, 0x07, 0x20, 0x00, 0x13, 0x8b, 0x09, 0x00, 0x63, 0xf4, 0xf9, 0x00, 0x13, 0x0b, 0x20, 0x00, 0x93, 0x07, 0x00, 0x32, 0x93, 0x05, 0x04, 0x00, 0x63, 0xe6, 0x47, 0x0d, 0x13, 0x05, 0x20, 0x03, 0xef, 0xf0, 0x5f, 0xbe, 0x1b, 0x0d, 0x05, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0xa0, 0x00, 0xef, 0xf0, 0x5f, 0xbd, 0x1b, 0x05, 0x05, 0x00, 0x93, 0x07, 0x20, 0x00, 0x93, 0x0b, 0x05, 0x00, 0x63, 0x74, 0xf5, 0x00, 0x93, 0x0b, 0x20, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x50, 0x03, 0xef, 0xf0, 0x5f, 0xbb, 0x9b, 0x0c, 0x05, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x60, 0x02, 0xef, 0xf0, 0x5f, 0xba, 0x9b, 0x0d, 0x05, 0x00, 0x13, 0x88, 0x04, 0x00, 0x23, 0x30, 0x31, 0x01, 0x1b, 0x17, 0xfd, 0x00, 0x9b, 0x97, 0x69, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0xb3, 0xe7, 0x97, 0x01, 0x1b, 0x97, 0xbb, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x37, 0x07, 0x40, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0xa4, 0xfa, 0x02, 0x83, 0x37, 0x01, 0x00, 0x1b, 0x17, 0xbb, 0x00, 0x23, 0x30, 0x91, 0x04, 0x9b, 0x97, 0x67, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0xb3, 0xe7, 0xb7, 0x01, 0x1b, 0x97, 0xf4, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x1b, 0x97, 0x44, 0x01, 0xb3, 0xe7, 0xe7, 0x00, 0x1b, 0x17, 0x78, 0x01, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0xa6, 0xfa, 0x02, 0x83, 0x37, 0x81, 0x00, 0x9b, 0x97, 0xc7, 0x00, 0xb3, 0x67, 0xf9, 0x00, 0x23, 0xa8, 0xfa, 0x02, 0x93, 0x07, 0x20, 0x00, 0x23, 0x3c, 0xf1, 0x04, 0x6f, 0xf0, 0x5f, 0xbe, 0x13, 0x05, 0x30, 0x02, 0xef, 0xf0, 0xdf, 0xb1, 0x1b, 0x0d, 0x05, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x60, 0x00, 0xef, 0xf0, 0xdf, 0xb0, 0x1b, 0x05, 0x05, 0x00, 0x93, 0x07, 0x20, 0x00, 0x93, 0x0b, 0x05, 0x00, 0x63, 0x74, 0xf5, 0x00, 0x93, 0x0b, 0x20, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0xe0, 0x00, 0xef, 0xf0, 0xdf, 0xae, 0x93, 0x05, 0x04, 0x00, 0x9b, 0x09, 0x05, 0x00, 0x13, 0x05, 0x00, 0x03, 0xef, 0xf0, 0xdf, 0xad, 0x9b, 0x0c, 0x05, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x20, 0x02, 0xef, 0xf0, 0xdf, 0xac, 0x9b, 0x0d, 0x05, 0x00, 0x13, 0x88, 0x0b, 0x00, 0x6f, 0xf0, 0x9f, 0xf2, 0x93, 0x07, 0x20, 0x00, 0x63, 0x1e, 0xfc, 0x0a, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x20, 0x03, 0xef, 0xf0, 0xdf, 0xaa, 0x93, 0x05, 0x04, 0x00, 0x1b, 0x0d, 0x05, 0x00, 0x13, 0x05, 0xa0, 0x00, 0xef, 0xf0, 0xdf, 0xa9, 0x93, 0x05, 0x04, 0x00, 0x9b, 0x0b, 0x05, 0x00, 0x13, 0x05, 0x40, 0x01, 0xef, 0xf0, 0xdf, 0xa8, 0x93, 0x05, 0x04, 0x00, 0x9b, 0x09, 0x05, 0x00, 0x13, 0x05, 0x10, 0x04, 0xef, 0xf0, 0xdf, 0xa7, 0x93, 0x05, 0x04, 0x00, 0x9b, 0x0c, 0x05, 0x00, 0x13, 0x05, 0x80, 0x00, 0xef, 0xf0, 0xdf, 0xa6, 0x93, 0x05, 0x04, 0x00, 0x9b, 0x04, 0x05, 0x00, 0x13, 0x05, 0xf0, 0x00, 0xef, 0xf0, 0xdf, 0xa5, 0x9b, 0x07, 0x05, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0xd0, 0x02, 0x23, 0x30, 0xf1, 0x00, 0xef, 0xf0, 0x9f, 0xa4, 0x9b, 0x0d, 0x05, 0x00, 0x37, 0x25, 0x00, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x85, 0xe7, 0xef, 0xf0, 0x5f, 0xa3, 0x1b, 0x05, 0x05, 0x00, 0x1b, 0x59, 0x55, 0x00, 0x13, 0x75, 0xf5, 0x01, 0x33, 0x35, 0xa0, 0x00, 0x3b, 0x09, 0xa9, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x80, 0x14, 0xef, 0xf0, 0x5f, 0xa1, 0x9b, 0x07, 0x05, 0x00, 0x23, 0x34, 0xf1, 0x00, 0x13, 0x08, 0x20, 0x00, 0x03, 0x3b, 0x01, 0x00, 0x6f, 0xf0, 0xdf, 0xe6, 0x93, 0x07, 0x60, 0x00, 0x63, 0x14, 0xfc, 0x12, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x20, 0x03, 0xef, 0xf0, 0xdf, 0x9e, 0x1b, 0x05, 0x05, 0x00, 0x93, 0x07, 0x40, 0x00, 0x13, 0x0d, 0x05, 0x00, 0x63, 0x74, 0xf5, 0x00, 0x13, 0x0d, 0x40, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0xa0, 0x00, 0xef, 0xf0, 0xdf, 0x9c, 0x9b, 0x0b, 0x05, 0x00, 0x63, 0x94, 0x0b, 0x00, 0x93, 0x0b, 0x10, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x80, 0x01, 0xef, 0xf0, 0x5f, 0x9b, 0x1b, 0x05, 0x05, 0x00, 0x93, 0x07, 0x20, 0x00, 0x93, 0x09, 0x05, 0x00, 0x63, 0x74, 0xf5, 0x00, 0x93, 0x09, 0x20, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x60, 0x04, 0xef, 0xf0, 0x5f, 0x99, 0x9b, 0x0c, 0x05, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x80, 0x00, 0xef, 0xf0, 0x5f, 0x98, 0x1b, 0x08, 0x05, 0x00, 0x63, 0x02, 0x08, 0x0a, 0x93, 0x07, 0x20, 0x00, 0x93, 0x04, 0x08, 0x00, 0x63, 0x74, 0xf8, 0x00, 0x93, 0x04, 0x20, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0xf0, 0x00, 0x23, 0x30, 0x01, 0x01, 0xef, 0xf0, 0xdf, 0x95, 0x1b, 0x05, 0x05, 0x00, 0x93, 0x07, 0x20, 0x00, 0x13, 0x0b, 0x05, 0x00, 0x03, 0x38, 0x01, 0x00, 0x63, 0x74, 0xf5, 0x00, 0x13, 0x0b, 0x20, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x10, 0x01, 0x23, 0x38, 0x01, 0x01, 0xef, 0xf0, 0x5f, 0x93, 0x9b, 0x07, 0x05, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0xa0, 0x02, 0x23, 0x30, 0xf1, 0x00, 0xef, 0xf0, 0x1f, 0x92, 0x9b, 0x0d, 0x05, 0x00, 0x37, 0x15, 0x00, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0xc5, 0xf3, 0xef, 0xf0, 0xdf, 0x90, 0x1b, 0x05, 0x05, 0x00, 0x1b, 0x59, 0x55, 0x00, 0x13, 0x75, 0xf5, 0x01, 0x33, 0x35, 0xa0, 0x00, 0x3b, 0x09, 0xa9, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x20, 0x0d, 0xef, 0xf0, 0xdf, 0x8e, 0x9b, 0x07, 0x05, 0x00, 0x23, 0x34, 0xf1, 0x00, 0x03, 0x38, 0x01, 0x01, 0x6f, 0xf0, 0x9f, 0xd4, 0x13, 0x08, 0x10, 0x00, 0x6f, 0xf0, 0x9f, 0xf6, 0x93, 0x07, 0x70, 0x00, 0x63, 0x18, 0xfc, 0x10, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x20, 0x03, 0xef, 0xf0, 0x1f, 0x8c, 0x1b, 0x05, 0x05, 0x00, 0x93, 0x07, 0x40, 0x00, 0x13, 0x0d, 0x05, 0x00, 0x63, 0x74, 0xf5, 0x00, 0x13, 0x0d, 0x40, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0xa0, 0x00, 0xef, 0xf0, 0x1f, 0x8a, 0x9b, 0x0b, 0x05, 0x00, 0x63, 0x94, 0x0b, 0x00, 0x93, 0x0b, 0x10, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x80, 0x01, 0xef, 0xf0, 0x9f, 0x88, 0x1b, 0x05, 0x05, 0x00, 0x93, 0x07, 0x20, 0x00, 0x93, 0x09, 0x05, 0x00, 0x63, 0x74, 0xf5, 0x00, 0x93, 0x09, 0x20, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x60, 0x04, 0xef, 0xf0, 0x9f, 0x86, 0x9b, 0x0c, 0x05, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x80, 0x00, 0xef, 0xf0, 0x9f, 0x85, 0x1b, 0x05, 0x05, 0x00, 0x93, 0x07, 0x20, 0x00, 0x93, 0x04, 0x05, 0x00, 0x63, 0x74, 0xf5, 0x00, 0x93, 0x04, 0x20, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0xf0, 0x00, 0xef, 0xf0, 0x9f, 0x83, 0x1b, 0x05, 0x05, 0x00, 0x93, 0x07, 0x20, 0x00, 0x13, 0x0b, 0x05, 0x00, 0x63, 0x74, 0xf5, 0x00, 0x13, 0x0b, 0x20, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x10, 0x01, 0xef, 0xf0, 0x9f, 0x81, 0x9b, 0x07, 0x05, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0xa0, 0x02, 0x23, 0x30, 0xf1, 0x00, 0xef, 0xf0, 0x5f, 0x80, 0x9b, 0x0d, 0x05, 0x00, 0x37, 0x15, 0x00, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0xc5, 0xf3, 0xef, 0xf0, 0x0f, 0xff, 0x1b, 0x05, 0x05, 0x00, 0x1b, 0x59, 0x55, 0x00, 0x13, 0x75, 0xf5, 0x01, 0x33, 0x35, 0xa0, 0x00, 0x3b, 0x09, 0xa9, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x20, 0x0d, 0xef, 0xf0, 0x0f, 0xfd, 0x9b, 0x07, 0x05, 0x00, 0x23, 0x34, 0xf1, 0x00, 0x13, 0x88, 0x04, 0x00, 0x6f, 0xf0, 0xdf, 0xc2, 0x93, 0x07, 0x00, 0x08, 0x23, 0x34, 0xf1, 0x00, 0x93, 0x07, 0x60, 0x00, 0x13, 0x09, 0x20, 0x06, 0x13, 0x08, 0xa0, 0x00, 0x13, 0x0b, 0x80, 0x00, 0x93, 0x04, 0x30, 0x00, 0x23, 0x30, 0xf1, 0x00, 0x93, 0x0d, 0xe0, 0x00, 0x13, 0x0d, 0x00, 0x01, 0x93, 0x0c, 0x40, 0x01, 0x93, 0x09, 0x60, 0x00, 0x93, 0x0b, 0x30, 0x00, 0x6f, 0xf0, 0x5f, 0xbf, 0x93, 0x07, 0x60, 0x00, 0x63, 0x0a, 0xfc, 0x22, 0x93, 0x07, 0x70, 0x00, 0xe3, 0x1e, 0xfc, 0x84, 0x93, 0x07, 0xc0, 0x03, 0x3b, 0x5e, 0xfa, 0x02, 0x93, 0x07, 0x00, 0x32, 0x63, 0xf8, 0x47, 0x2b, 0x93, 0x07, 0x40, 0x00, 0x93, 0x08, 0x30, 0x00, 0x13, 0x07, 0x60, 0x00, 0x93, 0x03, 0xc0, 0x00, 0x93, 0x06, 0x80, 0x0c, 0x93, 0x05, 0x80, 0x3e, 0x9b, 0x84, 0x54, 0x00, 0x1b, 0x0b, 0x5b, 0x00, 0x13, 0x05, 0x0c, 0x00, 0x3b, 0x0b, 0xfb, 0x00, 0x03, 0x34, 0x81, 0x04, 0x13, 0x03, 0x50, 0x00, 0x93, 0x0e, 0x50, 0x00, 0x93, 0x0f, 0xd0, 0x00, 0x13, 0x0c, 0x30, 0x00, 0x93, 0x02, 0xc0, 0x00, 0x13, 0x0f, 0x50, 0x00, 0xbb, 0x86, 0x46, 0x03, 0x9b, 0x86, 0x16, 0x00, 0x23, 0x38, 0xd1, 0x00, 0x93, 0x06, 0x40, 0x06, 0xbb, 0x86, 0x46, 0x03, 0xbb, 0xd6, 0xb6, 0x02, 0x93, 0x05, 0x50, 0x00, 0x9b, 0x86, 0x16, 0x00, 0x23, 0x3c, 0xd1, 0x00, 0x93, 0x06, 0xb0, 0x00, 0xbb, 0x86, 0x46, 0x03, 0x9b, 0x86, 0x16, 0x00, 0x23, 0x30, 0xd1, 0x02, 0x9b, 0x06, 0x1a, 0x00, 0x23, 0x34, 0xd1, 0x02, 0xbb, 0x86, 0xf4, 0x00, 0x23, 0x38, 0xd1, 0x02, 0x6f, 0x00, 0x80, 0x21, 0x93, 0x07, 0xe0, 0x01, 0x3b, 0x5e, 0xfa, 0x02, 0x93, 0x07, 0x90, 0x19, 0x63, 0xea, 0x47, 0x09, 0xb7, 0x16, 0x00, 0x00, 0x13, 0x05, 0x30, 0x00, 0x13, 0x07, 0x10, 0x00, 0x93, 0x86, 0x36, 0xa6, 0x93, 0x07, 0x00, 0x19, 0x93, 0x05, 0x80, 0x3e, 0x13, 0x0f, 0x0c, 0x00, 0x1b, 0x0b, 0x5b, 0x00, 0x13, 0x03, 0x50, 0x00, 0x93, 0x0e, 0x40, 0x00, 0x93, 0x0f, 0x40, 0x00, 0x13, 0x0c, 0x30, 0x00, 0x93, 0x02, 0xc0, 0x00, 0x93, 0x08, 0x10, 0x00, 0x13, 0x04, 0x00, 0x00, 0x93, 0x03, 0x00, 0x00, 0xbb, 0x87, 0x47, 0x03, 0x9b, 0x87, 0x17, 0x00, 0x23, 0x38, 0xf1, 0x00, 0x93, 0x07, 0x40, 0x1f, 0xbb, 0x87, 0x47, 0x03, 0xbb, 0xd7, 0xb7, 0x02, 0x93, 0x05, 0x00, 0x00, 0x9b, 0x87, 0x17, 0x00, 0x23, 0x3c, 0xf1, 0x00, 0x93, 0x07, 0x80, 0x0c, 0xbb, 0x87, 0x47, 0x03, 0x9b, 0x87, 0x17, 0x00, 0x23, 0x30, 0xf1, 0x02, 0x9b, 0x07, 0x1a, 0x00, 0x23, 0x34, 0xf1, 0x02, 0x9b, 0x87, 0x54, 0x00, 0x23, 0x38, 0xf1, 0x02, 0x83, 0x34, 0x81, 0x03, 0x93, 0x07, 0x30, 0x00, 0x6f, 0xf0, 0xcf, 0xf7, 0xb7, 0x16, 0x00, 0x00, 0x13, 0x07, 0x20, 0x00, 0x13, 0x05, 0x40, 0x00, 0x93, 0x86, 0x36, 0xe7, 0x6f, 0xf0, 0x1f, 0xf7, 0x93, 0x07, 0xe0, 0x01, 0x3b, 0x5e, 0xfa, 0x02, 0x93, 0x07, 0x00, 0x32, 0x63, 0xf8, 0x47, 0x0b, 0xb7, 0x26, 0x00, 0x00, 0x93, 0x08, 0x30, 0x00, 0x13, 0x05, 0x70, 0x00, 0x13, 0x07, 0x50, 0x00, 0x93, 0x03, 0x00, 0x02, 0x93, 0x86, 0x46, 0xe1, 0x93, 0x07, 0x40, 0x1f, 0x93, 0x05, 0x80, 0x3e, 0x9b, 0x84, 0x24, 0x00, 0x1b, 0x0b, 0x2b, 0x00, 0x3b, 0x0b, 0xeb, 0x00, 0xbb, 0x87, 0x47, 0x03, 0x9b, 0x87, 0x17, 0x00, 0x23, 0x38, 0xf1, 0x00, 0x93, 0x07, 0x80, 0x16, 0xbb, 0x87, 0x47, 0x03, 0xbb, 0xd7, 0xb7, 0x02, 0x9b, 0x87, 0x17, 0x00, 0x23, 0x3c, 0xf1, 0x00, 0x93, 0x07, 0x80, 0x0c, 0xbb, 0x87, 0x47, 0x03, 0x9b, 0x87, 0x17, 0x00, 0x23, 0x30, 0xf1, 0x02, 0x9b, 0x07, 0x1a, 0x00, 0x23, 0x34, 0xf1, 0x02, 0xbb, 0x87, 0xe4, 0x00, 0x23, 0x38, 0xf1, 0x02, 0x83, 0x37, 0x01, 0x05, 0x8b, 0xb5, 0x27, 0x0c, 0x93, 0x07, 0x10, 0x00, 0x63, 0x86, 0xf5, 0x00, 0x93, 0x07, 0x00, 0x39, 0x63, 0xea, 0x47, 0x0f, 0x83, 0x34, 0x81, 0x03, 0x93, 0x07, 0x07, 0x00, 0x13, 0x03, 0x50, 0x00, 0x93, 0x0e, 0x40, 0x00, 0x93, 0x0f, 0x50, 0x00, 0x93, 0x02, 0xc0, 0x00, 0x13, 0x0f, 0x40, 0x00, 0x93, 0x05, 0x00, 0x00, 0x13, 0x04, 0x00, 0x00, 0x6f, 0xf0, 0xcf, 0xea, 0xb7, 0x26, 0x00, 0x00, 0x13, 0x05, 0x60, 0x00, 0x93, 0x08, 0x20, 0x00, 0x13, 0x07, 0x40, 0x00, 0x93, 0x03, 0x80, 0x01, 0x93, 0x86, 0x06, 0xc7, 0x6f, 0xf0, 0x5f, 0xf5, 0x93, 0x07, 0xc0, 0x03, 0x3b, 0x5e, 0xfa, 0x02, 0x93, 0x07, 0x80, 0x0c, 0x13, 0x07, 0x80, 0x3e, 0x03, 0x34, 0x81, 0x04, 0x1b, 0x0b, 0x5b, 0x00, 0x93, 0x03, 0x60, 0x00, 0x13, 0x03, 0x50, 0x00, 0x93, 0x0e, 0x50, 0x00, 0x93, 0x0f, 0xa0, 0x00, 0x13, 0x0c, 0x20, 0x00, 0x93, 0x02, 0x50, 0x00, 0x13, 0x0f, 0x50, 0x00, 0x93, 0x05, 0x30, 0x00, 0x13, 0x05, 0x40, 0x00, 0x93, 0x08, 0x10, 0x00, 0xbb, 0x87, 0x47, 0x03, 0x9b, 0x87, 0x17, 0x00, 0x23, 0x38, 0xf1, 0x00, 0x93, 0x07, 0x40, 0x06, 0xbb, 0x87, 0x47, 0x03, 0xbb, 0xd7, 0xe7, 0x02, 0x13, 0x07, 0x30, 0x00, 0x9b, 0x87, 0x17, 0x00, 0x23, 0x3c, 0xf1, 0x00, 0x93, 0x07, 0xb0, 0x00, 0xbb, 0x87, 0x47, 0x03, 0x9b, 0x87, 0x17, 0x00, 0x23, 0x30, 0xf1, 0x02, 0x9b, 0x07, 0x1a, 0x00, 0x23, 0x34, 0xf1, 0x02, 0x9b, 0x87, 0x54, 0x00, 0x23, 0x38, 0xf1, 0x02, 0x93, 0x07, 0x20, 0x00, 0x93, 0x04, 0x30, 0x0c, 0x93, 0x06, 0x00, 0x00, 0x6f, 0xf0, 0xcf, 0xdf, 0x93, 0x07, 0x30, 0x00, 0x13, 0x0c, 0x60, 0x00, 0x93, 0x08, 0x20, 0x00, 0x13, 0x07, 0x50, 0x00, 0x93, 0x03, 0xa0, 0x00, 0x6f, 0xf0, 0x1f, 0xd5, 0x93, 0x07, 0x07, 0x00, 0x83, 0x34, 0x81, 0x03, 0x13, 0x03, 0x50, 0x00, 0x93, 0x0e, 0x40, 0x00, 0x93, 0x0f, 0x60, 0x00, 0x6f, 0xf0, 0x1f, 0xf1, 0xb7, 0x76, 0x00, 0xf0, 0x6f, 0xf0, 0x4f, 0xf4, 0x93, 0x07, 0x80, 0x01, 0x3b, 0xd7, 0xf5, 0x02, 0xbb, 0x87, 0xe7, 0x02, 0x63, 0x8c, 0xb7, 0x0c, 0x13, 0x01, 0x01, 0xfe, 0x23, 0x38, 0x91, 0x00, 0x8b, 0x34, 0x06, 0x7c, 0x23, 0x3c, 0x11, 0x00, 0x23, 0x34, 0x81, 0x00, 0x83, 0xa7, 0x04, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x8b, 0xb7, 0x17, 0x04, 0x0b, 0xb4, 0x06, 0x7c, 0x63, 0x8e, 0x07, 0x00, 0x83, 0x27, 0x04, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x06, 0x08, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x23, 0x20, 0xf4, 0x00, 0xb7, 0x47, 0x02, 0x00, 0x07, 0xa7, 0x87, 0xcc, 0xd3, 0xf7, 0x15, 0xd0, 0xb7, 0x47, 0x02, 0x00, 0xd3, 0xf7, 0xe7, 0x18, 0x53, 0x77, 0x07, 0xd0, 0xd3, 0xf7, 0xe7, 0x08, 0x07, 0xa7, 0xc7, 0xcc, 0xd3, 0xf7, 0xe7, 0x10, 0xd3, 0x97, 0x07, 0xc0, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x20, 0xf4, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x37, 0x07, 0x0a, 0x00, 0x1b, 0x07, 0xf7, 0xff, 0xb3, 0x77, 0xf7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x06, 0xe0, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0x20, 0xf4, 0x00, 0x13, 0x05, 0x40, 0x01, 0xef, 0x10, 0x10, 0x7c, 0x83, 0xa7, 0x04, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0x01, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0xa0, 0xf4, 0x00, 0x03, 0x25, 0x04, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x83, 0x30, 0x81, 0x01, 0x03, 0x34, 0x81, 0x00, 0x0b, 0x35, 0x05, 0x40, 0x83, 0x34, 0x01, 0x01, 0x1b, 0x05, 0x05, 0x00, 0x13, 0x01, 0x01, 0x02, 0x67, 0x80, 0x00, 0x00, 0x13, 0x05, 0x00, 0x00, 0x67, 0x80, 0x00, 0x00, 0x13, 0x01, 0x01, 0xff, 0x23, 0x30, 0x81, 0x00, 0x0b, 0xb4, 0x05, 0x7c, 0x23, 0x34, 0x11, 0x00, 0x83, 0x27, 0x04, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x8b, 0xb7, 0x17, 0x04, 0x0b, 0x36, 0x06, 0x7c, 0x63, 0x8e, 0x07, 0x00, 0x83, 0x27, 0x06, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x08, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0x20, 0xf6, 0x00, 0x83, 0x27, 0xc5, 0x05, 0x13, 0x07, 0x40, 0x00, 0x8b, 0xb7, 0x47, 0x59, 0x9b, 0x86, 0xf7, 0xff, 0x63, 0x62, 0xd7, 0x08, 0x37, 0x47, 0x02, 0x00, 0x13, 0x07, 0x07, 0xa9, 0x8b, 0x47, 0xd7, 0x54, 0x67, 0x80, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0xd7, 0x86, 0xe4, 0x9b, 0x87, 0xc7, 0xcc, 0x23, 0x20, 0xf6, 0x00, 0x13, 0x05, 0x40, 0x01, 0xef, 0x10, 0x50, 0x70, 0x83, 0x27, 0x04, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0x01, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0x20, 0xf4, 0x00, 0x83, 0x30, 0x81, 0x00, 0x03, 0x34, 0x01, 0x00, 0x13, 0x05, 0x00, 0x00, 0x13, 0x01, 0x01, 0x01, 0x67, 0x80, 0x00, 0x00, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0xa7, 0x06, 0xe9, 0x9b, 0x87, 0x97, 0x99, 0x6f, 0xf0, 0xdf, 0xfb, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x67, 0x86, 0xed, 0x9b, 0x87, 0x67, 0x66, 0x6f, 0xf0, 0xdf, 0xfa, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x07, 0x86, 0xf5, 0x6f, 0xf0, 0x1f, 0xfa, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x37, 0x06, 0xf2, 0x9b, 0x87, 0x37, 0x33, 0x6f, 0xf0, 0x1f, 0xf9, 0x83, 0xa7, 0xc5, 0x05, 0x13, 0x01, 0x01, 0xfe, 0x23, 0x3c, 0x11, 0x00, 0x23, 0x34, 0x81, 0x00, 0x23, 0x38, 0x91, 0x00, 0x8b, 0xb7, 0x67, 0x18, 0x63, 0x98, 0xa7, 0x0e, 0x03, 0xa4, 0x05, 0x00, 0x93, 0x07, 0x80, 0x01, 0x37, 0x17, 0x00, 0x02, 0x1b, 0x14, 0x14, 0x00, 0x3b, 0x54, 0xf4, 0x02, 0x83, 0x27, 0x07, 0x01, 0x0f, 0x00, 0xa0, 0x0a, 0x37, 0x06, 0xf8, 0xff, 0x9b, 0x06, 0xf4, 0xff, 0x13, 0x06, 0xc6, 0x0f, 0x9b, 0x96, 0x86, 0x00, 0xb3, 0xf7, 0xc7, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x06, 0x00, 0xc0, 0x33, 0xe6, 0xd7, 0x00, 0x23, 0x28, 0xc7, 0x00, 0x37, 0x06, 0x00, 0xe0, 0x13, 0x06, 0xf6, 0xff, 0xb3, 0xf7, 0xc7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0xb3, 0xe6, 0xd7, 0x00, 0x23, 0x28, 0xd7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x06, 0x00, 0xe0, 0xb3, 0xe7, 0xd7, 0x00, 0x23, 0x28, 0xf7, 0x00, 0xb7, 0x06, 0x00, 0x10, 0x93, 0x04, 0x07, 0x01, 0x83, 0x27, 0x07, 0x01, 0x0f, 0x00, 0xa0, 0x0a, 0xb3, 0xf7, 0xd7, 0x00, 0xe3, 0x88, 0x07, 0xfe, 0x13, 0x05, 0x40, 0x01, 0xef, 0x10, 0x10, 0x5f, 0x83, 0xa7, 0x04, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0x08, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0xa0, 0xf4, 0x00, 0xb7, 0x26, 0x00, 0x02, 0x83, 0xa7, 0x06, 0x80, 0x0f, 0x00, 0xa0, 0x0a, 0x37, 0x07, 0x00, 0xfd, 0x13, 0x07, 0xc7, 0xcf, 0xb3, 0xf7, 0xe7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x13, 0x05, 0x80, 0x01, 0x3b, 0x05, 0x85, 0x02, 0x83, 0x30, 0x81, 0x01, 0x03, 0x34, 0x81, 0x00, 0x37, 0x07, 0x00, 0x80, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0xa0, 0xf6, 0x80, 0x83, 0x34, 0x01, 0x01, 0x13, 0x01, 0x01, 0x02, 0x67, 0x80, 0x00, 0x00, 0x03, 0xa4, 0xc5, 0x04, 0x6f, 0xf0, 0x5f, 0xf1, 0x13, 0x01, 0x01, 0xfe, 0x0b, 0x54, 0x91, 0xf8, 0xb7, 0x14, 0x00, 0x02, 0x23, 0x38, 0x21, 0x01, 0x23, 0x3c, 0x11, 0x00, 0x13, 0x09, 0x05, 0x00, 0x83, 0xa7, 0x04, 0x54, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0xc0, 0x13, 0x07, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x23, 0xa0, 0xf4, 0x54, 0x37, 0x24, 0x00, 0x02, 0x83, 0x27, 0xc4, 0x80, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xf6, 0xe7, 0xff, 0x23, 0x26, 0xd4, 0x80, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x06, 0xff, 0xff, 0x93, 0x86, 0xe6, 0xff, 0xb3, 0xf7, 0xd7, 0x00, 0x23, 0x26, 0xf4, 0x80, 0x83, 0x27, 0x04, 0x80, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x33, 0xf7, 0xe7, 0x00, 0x23, 0x20, 0xe4, 0x80, 0x0f, 0x00, 0xa0, 0x0a, 0x8b, 0xb7, 0x07, 0x74, 0x9b, 0x87, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x20, 0xf4, 0x80, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0x08, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0x20, 0xf4, 0x80, 0x13, 0x05, 0xa0, 0x00, 0xef, 0x10, 0x50, 0x4e, 0x93, 0x05, 0x09, 0x00, 0x13, 0x05, 0x00, 0x00, 0xef, 0xf0, 0x1f, 0xe4, 0x1b, 0x55, 0x15, 0x00, 0x23, 0x20, 0xa9, 0x00, 0x13, 0x05, 0x40, 0x06, 0xef, 0x10, 0x90, 0x4c, 0xef, 0xe0, 0xdf, 0xbb, 0x83, 0x27, 0xc4, 0x80, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x01, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0x26, 0xf4, 0x80, 0x03, 0xa7, 0x04, 0x54, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x06, 0x00, 0x40, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xa0, 0xe4, 0x54, 0x83, 0x27, 0x04, 0x80, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb3, 0xe7, 0xd7, 0x00, 0x23, 0x20, 0xf4, 0x80, 0x13, 0x05, 0x50, 0x00, 0xef, 0x10, 0x90, 0x47, 0x83, 0x27, 0xc4, 0x80, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xe7, 0x17, 0x00, 0x23, 0x26, 0xf4, 0x80, 0x83, 0x27, 0x04, 0x80, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0x80, 0x33, 0xe7, 0xe7, 0x00, 0x23, 0x20, 0xe4, 0x80, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0x88, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0x20, 0xf4, 0x80, 0x13, 0x05, 0x50, 0x00, 0xef, 0x10, 0x10, 0x43, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x37, 0x10, 0x03, 0x37, 0x87, 0x00, 0x00, 0x13, 0x05, 0xa0, 0x00, 0x23, 0xa6, 0xe7, 0x00, 0xef, 0x10, 0x90, 0x41, 0x83, 0x30, 0x81, 0x01, 0x0b, 0x44, 0x91, 0xf8, 0x03, 0x39, 0x01, 0x01, 0x13, 0x05, 0x00, 0x00, 0x13, 0x01, 0x01, 0x02, 0x67, 0x80, 0x00, 0x00, 0x37, 0x27, 0x10, 0x03, 0x83, 0x27, 0x87, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0xb7, 0xc6, 0xff, 0xff, 0x93, 0x86, 0xf6, 0x0f, 0xb3, 0xf7, 0xd7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x26, 0x00, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x23, 0x24, 0xf7, 0x00, 0x83, 0x27, 0x07, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x03, 0x26, 0x45, 0x00, 0x37, 0x17, 0x00, 0xff, 0x13, 0x07, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0xb7, 0x06, 0x07, 0x00, 0x1b, 0x17, 0x06, 0x01, 0x33, 0x77, 0xd7, 0x00, 0x83, 0x26, 0x45, 0x01, 0xb3, 0x67, 0xf7, 0x00, 0x1b, 0x06, 0xa6, 0xff, 0x93, 0xf6, 0x16, 0x00, 0x93, 0xb6, 0x16, 0x00, 0x93, 0x96, 0xc6, 0x00, 0x33, 0xe7, 0xd7, 0x00, 0x93, 0x07, 0x10, 0x00, 0x63, 0xe8, 0xc7, 0x0c, 0xb7, 0x07, 0x48, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x27, 0x10, 0x03, 0x23, 0x20, 0xf7, 0x00, 0x83, 0x27, 0x45, 0x01, 0x93, 0x05, 0x10, 0x00, 0x13, 0xf7, 0x07, 0x10, 0x63, 0x08, 0x07, 0x00, 0x8b, 0xb7, 0xc7, 0x3c, 0x63, 0x94, 0xb7, 0x00, 0x93, 0x05, 0x20, 0x00, 0x37, 0x18, 0x00, 0x00, 0x93, 0x0e, 0x08, 0x80, 0x93, 0x0f, 0x08, 0x90, 0x93, 0x95, 0x45, 0x00, 0x13, 0x06, 0x00, 0x00, 0xb7, 0x28, 0x10, 0x03, 0x37, 0xfe, 0xff, 0xff, 0x13, 0x03, 0x20, 0x00, 0x13, 0x0f, 0x40, 0x00, 0x93, 0x02, 0x80, 0x00, 0x13, 0x08, 0x08, 0xa0, 0x93, 0x03, 0x10, 0x00, 0x83, 0xa7, 0x08, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x0b, 0x47, 0xd5, 0xe4, 0xb3, 0xf7, 0xc7, 0x01, 0x8b, 0xb6, 0xc6, 0x34, 0xb3, 0xe6, 0xf6, 0x00, 0x9b, 0x07, 0xc6, 0x00, 0xbb, 0x57, 0xf7, 0x00, 0x9b, 0x97, 0x27, 0x00, 0x93, 0xf7, 0x47, 0x00, 0x9b, 0x86, 0x06, 0x00, 0xb3, 0xe6, 0xd7, 0x00, 0x9b, 0x07, 0x46, 0x00, 0xbb, 0x57, 0xf7, 0x00, 0x9b, 0x87, 0xf7, 0xff, 0x9b, 0x97, 0x47, 0x00, 0x93, 0xf7, 0xf7, 0x0f, 0x3b, 0x57, 0xc7, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x13, 0x77, 0xf7, 0x00, 0xb3, 0xe6, 0xd7, 0x01, 0x63, 0x04, 0x67, 0x04, 0x63, 0x6a, 0xe3, 0x02, 0x93, 0xe6, 0x07, 0x70, 0x63, 0x0e, 0x77, 0x02, 0x93, 0xe6, 0x07, 0x60, 0x6f, 0x00, 0x40, 0x03, 0x83, 0x27, 0xc5, 0x05, 0xb7, 0x06, 0x08, 0x00, 0x9b, 0xd7, 0x57, 0x00, 0x9b, 0x97, 0x37, 0x01, 0xb3, 0xf7, 0xd7, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x37, 0x07, 0x40, 0x00, 0x6f, 0xf0, 0xdf, 0xf1, 0xb3, 0xe6, 0xf7, 0x01, 0x63, 0x06, 0xe7, 0x01, 0xb3, 0xe6, 0x07, 0x01, 0xe3, 0x16, 0x57, 0xfc, 0x0f, 0x00, 0x50, 0x05, 0x8b, 0xd6, 0x48, 0x58, 0x1b, 0x06, 0x06, 0x01, 0xe3, 0x9c, 0xc5, 0xf4, 0xb7, 0x27, 0x10, 0x03, 0x83, 0xa7, 0x07, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x93, 0xf7, 0x17, 0x00, 0x93, 0x06, 0x30, 0x30, 0x63, 0x94, 0x07, 0x00, 0x93, 0x06, 0x10, 0x20, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x37, 0x10, 0x03, 0x23, 0x20, 0xd7, 0x12, 0x83, 0x27, 0x45, 0x01, 0x93, 0xf7, 0x17, 0x00, 0x63, 0x86, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x22, 0x07, 0x3c, 0x83, 0x27, 0x85, 0x03, 0x63, 0x8a, 0x07, 0x04, 0x37, 0x27, 0x10, 0x03, 0x83, 0x26, 0x07, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x83, 0x27, 0x85, 0x03, 0x37, 0x06, 0x00, 0x06, 0x9b, 0x97, 0x97, 0x01, 0xb3, 0xf7, 0xc7, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x20, 0xf7, 0x00, 0x83, 0x26, 0x47, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x83, 0x27, 0x85, 0x03, 0x37, 0xf6, 0x1f, 0x00, 0x9b, 0xd7, 0x27, 0x00, 0x9b, 0x97, 0xc7, 0x00, 0xb3, 0xf7, 0xc7, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x22, 0xf7, 0x00, 0x67, 0x80, 0x00, 0x00, 0x13, 0x01, 0x01, 0xf2, 0xb7, 0x67, 0x00, 0x03, 0x23, 0x38, 0x81, 0x0c, 0x23, 0x34, 0x91, 0x0c, 0x23, 0x3c, 0x11, 0x0c, 0x93, 0x04, 0x05, 0x00, 0x03, 0xa4, 0x87, 0x22, 0x0f, 0x00, 0xa0, 0x0a, 0xb7, 0x47, 0x02, 0x00, 0x93, 0x87, 0x07, 0xac, 0x83, 0xb6, 0x07, 0x16, 0x03, 0xb7, 0xe7, 0x16, 0x23, 0x30, 0x01, 0x00, 0x23, 0x3c, 0xd1, 0x00, 0x83, 0xb6, 0x87, 0x16, 0x23, 0x34, 0x01, 0x00, 0x23, 0x28, 0x01, 0x00, 0x23, 0x30, 0xd1, 0x02, 0x83, 0xb6, 0x87, 0x17, 0x23, 0x33, 0xe1, 0x02, 0x03, 0xb7, 0x67, 0x18, 0x23, 0x38, 0xd1, 0x02, 0x83, 0xb6, 0x07, 0x18, 0x23, 0x1a, 0x01, 0x00, 0x0b, 0x34, 0x84, 0x2c, 0x23, 0x3c, 0xd1, 0x02, 0x83, 0xb6, 0x07, 0x19, 0x23, 0x3f, 0xe1, 0x02, 0x03, 0xb7, 0xe7, 0x19, 0x23, 0x34, 0xd1, 0x04, 0x83, 0xb6, 0x87, 0x19, 0x37, 0x45, 0x02, 0x00, 0x93, 0x05, 0x04, 0x00, 0x23, 0x38, 0xd1, 0x04, 0x83, 0xb6, 0x87, 0x1a, 0x23, 0x3b, 0xe1, 0x04, 0x03, 0xb7, 0x67, 0x1b, 0x23, 0x30, 0xd1, 0x06, 0x83, 0xb6, 0x07, 0x1b, 0x13, 0x05, 0x05, 0xcf, 0x23, 0x34, 0xd1, 0x06, 0x83, 0xb6, 0x07, 0x1c, 0x23, 0x37, 0xe1, 0x06, 0x23, 0x3c, 0xd1, 0x06, 0x83, 0xb6, 0x87, 0x1c, 0x23, 0x30, 0xd1, 0x08, 0x03, 0xb7, 0xe7, 0x1c, 0x83, 0xb6, 0x87, 0x1d, 0x23, 0x33, 0xe1, 0x08, 0x23, 0x38, 0xd1, 0x08, 0x83, 0xb6, 0x07, 0x1e, 0x03, 0xb7, 0x67, 0x1e, 0x23, 0x3c, 0xd1, 0x08, 0x23, 0x3f, 0xe1, 0x08, 0x13, 0x87, 0x07, 0x1f, 0x83, 0xb7, 0x07, 0x1f, 0x23, 0x34, 0xf1, 0x0a, 0x83, 0x37, 0x87, 0x00, 0x23, 0x38, 0xf1, 0x0a, 0x83, 0x37, 0xe7, 0x00, 0x23, 0x3b, 0xf1, 0x0a, 0xef, 0x10, 0x40, 0x67, 0x83, 0xa7, 0xc4, 0x05, 0x8b, 0xb7, 0x27, 0x4d, 0x63, 0x94, 0x07, 0x08, 0x9b, 0x06, 0x84, 0xff, 0x93, 0x07, 0x60, 0x00, 0x63, 0xe8, 0xd7, 0x06, 0xb7, 0x47, 0x02, 0x00, 0x93, 0x87, 0x47, 0xaa, 0x8b, 0xc7, 0xd7, 0x54, 0x67, 0x80, 0x07, 0x00, 0x13, 0x06, 0x60, 0x01, 0x93, 0x05, 0x81, 0x01, 0x13, 0x05, 0x01, 0x00, 0xef, 0xe0, 0x0f, 0xed, 0x83, 0xa7, 0x44, 0x00, 0x13, 0x07, 0x20, 0x00, 0x63, 0x8e, 0xe7, 0x04, 0x13, 0x07, 0x30, 0x00, 0x63, 0x88, 0xe7, 0x06, 0x83, 0x30, 0x81, 0x0d, 0x03, 0x34, 0x01, 0x0d, 0x83, 0x34, 0x81, 0x0c, 0x13, 0x01, 0x01, 0x0e, 0x67, 0x80, 0x00, 0x00, 0x13, 0x06, 0x60, 0x01, 0x93, 0x05, 0x01, 0x03, 0x6f, 0xf0, 0x9f, 0xfc, 0x13, 0x06, 0x60, 0x01, 0x93, 0x05, 0x81, 0x04, 0x6f, 0xf0, 0xdf, 0xfb, 0x13, 0x06, 0x60, 0x01, 0x93, 0x05, 0x81, 0x07, 0x6f, 0xf0, 0x1f, 0xfb, 0x13, 0x06, 0x60, 0x01, 0x93, 0x05, 0x01, 0x06, 0x6f, 0xf0, 0x5f, 0xfa, 0x13, 0x06, 0x60, 0x01, 0x93, 0x05, 0x81, 0x0a, 0x6f, 0xf0, 0x9f, 0xf9, 0x1b, 0x04, 0x34, 0xff, 0x93, 0x07, 0x10, 0x00, 0xe3, 0xe4, 0x87, 0xfa, 0x13, 0x06, 0x60, 0x01, 0x93, 0x05, 0x01, 0x09, 0x13, 0x05, 0x01, 0x00, 0xef, 0xe0, 0x0f, 0xe5, 0x83, 0x47, 0x01, 0x00, 0x03, 0x47, 0x11, 0x00, 0x9b, 0x97, 0x57, 0x00, 0x1b, 0x17, 0xa7, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x03, 0x47, 0x21, 0x00, 0x1b, 0x17, 0xf7, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x03, 0x47, 0x31, 0x00, 0x1b, 0x17, 0x47, 0x01, 0xb3, 0xe7, 0xe7, 0x00, 0x03, 0x47, 0x41, 0x00, 0x1b, 0x17, 0x97, 0x01, 0xb3, 0xe7, 0xe7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x27, 0x10, 0x03, 0x23, 0x20, 0xf7, 0x50, 0x83, 0x47, 0x61, 0x00, 0x83, 0x46, 0x71, 0x00, 0x9b, 0x97, 0x57, 0x00, 0x9b, 0x96, 0xa6, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x83, 0x46, 0x51, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x83, 0x46, 0x81, 0x00, 0x9b, 0x96, 0xf6, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x83, 0x46, 0x91, 0x00, 0x9b, 0x96, 0x46, 0x01, 0xb3, 0xe7, 0xd7, 0x00, 0x83, 0x46, 0xa1, 0x00, 0x9b, 0x96, 0x96, 0x01, 0xb3, 0xe7, 0xd7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x22, 0xf7, 0x50, 0x83, 0x47, 0xc1, 0x00, 0x83, 0x46, 0xd1, 0x00, 0x9b, 0x97, 0x57, 0x00, 0x9b, 0x96, 0xa6, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x83, 0x46, 0xb1, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x83, 0x46, 0xe1, 0x00, 0x9b, 0x96, 0xf6, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x83, 0x46, 0xf1, 0x00, 0x9b, 0x96, 0x46, 0x01, 0xb3, 0xe7, 0xd7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x24, 0xf7, 0x50, 0x83, 0x47, 0x11, 0x01, 0x83, 0x46, 0x21, 0x01, 0x9b, 0x97, 0x57, 0x00, 0x9b, 0x96, 0xa6, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x83, 0x46, 0x01, 0x01, 0xb3, 0xe7, 0xd7, 0x00, 0x83, 0x46, 0x31, 0x01, 0x9b, 0x96, 0xf6, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x83, 0x46, 0x41, 0x01, 0x9b, 0x96, 0x46, 0x01, 0xb3, 0xe7, 0xd7, 0x00, 0x83, 0x46, 0x51, 0x01, 0x9b, 0x96, 0x96, 0x01, 0xb3, 0xe7, 0xd7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x26, 0xf7, 0x50, 0x83, 0x47, 0x01, 0x00, 0x83, 0x46, 0x41, 0x00, 0x9b, 0x97, 0x57, 0x00, 0x9b, 0x96, 0x96, 0x01, 0xb3, 0xe7, 0xd7, 0x00, 0x83, 0x46, 0x11, 0x00, 0x9b, 0x96, 0xa6, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x83, 0x46, 0x21, 0x00, 0x9b, 0x96, 0xf6, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x83, 0x46, 0x31, 0x00, 0x9b, 0x96, 0x46, 0x01, 0xb3, 0xe7, 0xd7, 0x00, 0x93, 0xe7, 0x17, 0x00, 0x9b, 0x87, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x20, 0xf7, 0x50, 0x6f, 0xf0, 0x1f, 0xe3, 0x13, 0x01, 0x01, 0xfd, 0x23, 0x38, 0x91, 0x00, 0x83, 0xa4, 0xc5, 0x05, 0xb7, 0x26, 0x10, 0x03, 0x23, 0x3c, 0x21, 0x01, 0x23, 0x34, 0x11, 0x02, 0x23, 0x34, 0x81, 0x00, 0x23, 0x30, 0x31, 0x03, 0x13, 0x89, 0x05, 0x00, 0x8b, 0xb4, 0x24, 0x0c, 0x83, 0xa7, 0xc6, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x37, 0xf7, 0xff, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x03, 0xa7, 0x05, 0x00, 0x1b, 0x57, 0x17, 0x00, 0x1b, 0x07, 0xf7, 0xff, 0xb3, 0xe7, 0xe7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x37, 0x10, 0x03, 0x23, 0xa6, 0xf6, 0x00, 0x83, 0x27, 0x87, 0x10, 0x0f, 0x00, 0xa0, 0x0a, 0xb7, 0xf6, 0xff, 0xff, 0x93, 0x86, 0xf6, 0x0f, 0xb3, 0xf7, 0xd7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xe7, 0x07, 0x30, 0x23, 0x24, 0xf7, 0x10, 0x83, 0xa7, 0xc5, 0x00, 0x03, 0x27, 0x47, 0x34, 0x93, 0xc7, 0xf7, 0xff, 0x0f, 0x00, 0xa0, 0x0a, 0x9b, 0x97, 0x57, 0x00, 0x03, 0xa6, 0x05, 0x00, 0x93, 0xf7, 0x07, 0x02, 0x13, 0x77, 0xf7, 0xfc, 0x9b, 0x87, 0x07, 0x00, 0x93, 0x06, 0x00, 0x2a, 0x33, 0x67, 0xf7, 0x00, 0x63, 0xe8, 0xc6, 0x0a, 0xb7, 0x16, 0xff, 0xff, 0x93, 0x86, 0x16, 0xff, 0x33, 0x77, 0xd7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x36, 0x10, 0x03, 0x23, 0xa2, 0xe6, 0x34, 0x03, 0xa7, 0x46, 0x3c, 0x0f, 0x00, 0xa0, 0x0a, 0x83, 0x26, 0x09, 0x00, 0x13, 0x77, 0xf7, 0xfc, 0xb3, 0xe7, 0xe7, 0x00, 0x13, 0x07, 0x00, 0x2a, 0x63, 0x68, 0xd7, 0x08, 0x37, 0x17, 0xff, 0xff, 0x13, 0x07, 0x17, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x34, 0x10, 0x03, 0x23, 0x22, 0xf4, 0x3c, 0x83, 0x27, 0x84, 0x20, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xe7, 0x27, 0x00, 0x23, 0x24, 0xf4, 0x20, 0x13, 0x05, 0x09, 0x00, 0xef, 0xe0, 0x4f, 0xce, 0x13, 0x07, 0x10, 0x00, 0x83, 0x27, 0x84, 0x10, 0x63, 0x82, 0xe4, 0x06, 0x13, 0x07, 0x20, 0x00, 0x63, 0x86, 0xe4, 0x2a, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xf7, 0xf7, 0xfb, 0x23, 0x24, 0xf4, 0x10, 0x13, 0x05, 0xa0, 0x00, 0xef, 0x10, 0x80, 0x59, 0x83, 0x27, 0x84, 0x10, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xe7, 0x07, 0x0c, 0x23, 0x24, 0xf4, 0x10, 0x6f, 0x00, 0x00, 0x05, 0xb7, 0x16, 0xff, 0xff, 0x93, 0x86, 0x16, 0x9f, 0x33, 0x77, 0xd7, 0x00, 0x13, 0x67, 0x07, 0x40, 0x6f, 0xf0, 0x1f, 0xf5, 0x37, 0x17, 0xff, 0xff, 0x13, 0x07, 0x17, 0x9f, 0xb3, 0xf7, 0xe7, 0x00, 0x93, 0xe7, 0x07, 0x40, 0x6f, 0xf0, 0x1f, 0xf7, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xf7, 0xf7, 0xf3, 0x23, 0x24, 0xf4, 0x10, 0x83, 0x27, 0xc4, 0x0b, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xf7, 0x87, 0xef, 0x23, 0x2e, 0xf4, 0x0a, 0x83, 0x27, 0x49, 0x00, 0x93, 0x06, 0x10, 0x00, 0x9b, 0x87, 0xa7, 0xff, 0x63, 0xe8, 0xf6, 0x02, 0x37, 0x37, 0x10, 0x03, 0x83, 0x27, 0xc7, 0x11, 0x63, 0x9c, 0xd4, 0x26, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x06, 0x00, 0xf8, 0x93, 0x86, 0xf6, 0xf3, 0xb3, 0xf7, 0xd7, 0x00, 0xb7, 0x06, 0x00, 0x80, 0xb3, 0xe7, 0xd7, 0x00, 0x23, 0x2e, 0xf7, 0x10, 0x37, 0x37, 0x10, 0x03, 0x83, 0x27, 0x07, 0x0c, 0xb7, 0x06, 0x00, 0xf0, 0xb3, 0xf7, 0xd7, 0x00, 0x83, 0x26, 0x49, 0x01, 0x13, 0x96, 0x36, 0x03, 0x63, 0x5e, 0x06, 0x24, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x06, 0x00, 0x03, 0x93, 0x86, 0x16, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x23, 0x20, 0xf7, 0x0c, 0xb7, 0x07, 0x00, 0x07, 0x83, 0xa7, 0x47, 0x5d, 0x0f, 0x00, 0xa0, 0x0a, 0x13, 0x97, 0xf7, 0x02, 0x63, 0x52, 0x07, 0x02, 0x37, 0x07, 0x01, 0x07, 0x83, 0x27, 0x07, 0x25, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xf7, 0xd7, 0xff, 0x23, 0x28, 0xf7, 0x24, 0x13, 0x05, 0xa0, 0x00, 0xef, 0x10, 0x00, 0x49, 0x37, 0x37, 0x10, 0x03, 0x83, 0x27, 0x07, 0x14, 0x0f, 0x00, 0xa0, 0x0a, 0xb7, 0x06, 0x00, 0xfc, 0xb3, 0xf6, 0xd7, 0x00, 0x83, 0x27, 0x89, 0x00, 0x8b, 0xb7, 0x07, 0x5c, 0xb3, 0xe7, 0xd7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x06, 0x00, 0x02, 0xb3, 0xe7, 0xd7, 0x00, 0x23, 0x20, 0xf7, 0x14, 0x93, 0x07, 0x10, 0x00, 0x63, 0x96, 0xf4, 0x1e, 0x0f, 0x00, 0x50, 0x05, 0x93, 0x07, 0x20, 0x05, 0x23, 0x20, 0xf7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x93, 0x07, 0x30, 0x05, 0x23, 0x20, 0xf7, 0x00, 0x83, 0x27, 0x07, 0x01, 0x0f, 0x00, 0xa0, 0x0a, 0x93, 0xf7, 0x17, 0x00, 0xe3, 0x8a, 0x07, 0xfe, 0x13, 0x05, 0xa0, 0x00, 0xef, 0x10, 0x80, 0x42, 0x83, 0x26, 0x49, 0x00, 0x13, 0x07, 0x30, 0x00, 0x93, 0x07, 0x00, 0x52, 0x63, 0x94, 0xe6, 0x00, 0x93, 0x07, 0x00, 0x5a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x37, 0x10, 0x03, 0x23, 0x20, 0xf7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xe7, 0x17, 0x00, 0x23, 0x20, 0xf7, 0x00, 0x13, 0x05, 0xa0, 0x00, 0xef, 0x10, 0x40, 0x3f, 0x37, 0x39, 0x10, 0x03, 0x03, 0x24, 0x09, 0x01, 0x0f, 0x00, 0xa0, 0x0a, 0x13, 0x74, 0x14, 0x00, 0xe3, 0x0a, 0x04, 0xfe, 0xb7, 0x07, 0x00, 0x07, 0x83, 0xa7, 0x47, 0x5d, 0x0f, 0x00, 0xa0, 0x0a, 0x13, 0x97, 0xf7, 0x02, 0x63, 0x48, 0x07, 0x18, 0xb7, 0x37, 0x10, 0x03, 0x83, 0xa7, 0x07, 0x01, 0x0f, 0x00, 0xa0, 0x0a, 0x0b, 0xb7, 0x47, 0x6d, 0x63, 0x18, 0x07, 0x28, 0x37, 0x39, 0x10, 0x03, 0x83, 0x27, 0x89, 0x01, 0x0f, 0x00, 0xa0, 0x0a, 0x93, 0xf7, 0x17, 0x00, 0xe3, 0x8a, 0x07, 0xfe, 0x03, 0x27, 0xc9, 0x08, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x09, 0x00, 0x80, 0x33, 0x67, 0x37, 0x01, 0x23, 0x26, 0xe9, 0x08, 0x13, 0x05, 0xa0, 0x00, 0xef, 0x10, 0x40, 0x38, 0x03, 0x27, 0xc9, 0x08, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x0b, 0x37, 0x07, 0x78, 0x23, 0x26, 0xe9, 0x08, 0x13, 0x05, 0xa0, 0x00, 0xef, 0x10, 0x80, 0x36, 0x37, 0x27, 0x10, 0x03, 0x83, 0x27, 0x47, 0x01, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb3, 0xe7, 0x37, 0x01, 0x23, 0x2a, 0xf7, 0x00, 0x13, 0x05, 0xa0, 0x00, 0xef, 0x10, 0x80, 0x34, 0x83, 0x27, 0xc9, 0x10, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0xfa, 0x13, 0x07, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x23, 0x26, 0xf9, 0x10, 0x93, 0x07, 0x10, 0x00, 0x63, 0x9c, 0xf4, 0x20, 0x83, 0x27, 0xc9, 0x11, 0x0f, 0x00, 0xa0, 0x0a, 0x93, 0xf7, 0xf7, 0xf3, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xe7, 0x07, 0x04, 0x23, 0x2e, 0xf9, 0x10, 0x6f, 0x00, 0xc0, 0x1f, 0x0f, 0x00, 0xa0, 0x0a, 0x93, 0xf7, 0xf7, 0xf3, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xe7, 0x07, 0x08, 0x23, 0x24, 0xf4, 0x10, 0x03, 0x27, 0x04, 0x06, 0x0f, 0x00, 0xa0, 0x0a, 0x83, 0x27, 0xc4, 0x0b, 0x0f, 0x00, 0xa0, 0x0a, 0x0b, 0x37, 0x07, 0x51, 0x1b, 0x07, 0xe7, 0xff, 0x93, 0xf7, 0x87, 0xef, 0xb3, 0xe7, 0xe7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xe7, 0x07, 0x10, 0x23, 0x2e, 0xf4, 0x0a, 0x83, 0x27, 0xc4, 0x11, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0x08, 0x8b, 0xb7, 0x07, 0x78, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0x2e, 0xf4, 0x10, 0x6f, 0xf0, 0x5f, 0xd7, 0x0f, 0x00, 0xa0, 0x0a, 0xb7, 0x06, 0x00, 0x89, 0x93, 0x86, 0xf6, 0xff, 0xb3, 0xf7, 0xd7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x06, 0x00, 0x22, 0x6f, 0xf0, 0x9f, 0xd8, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x36, 0x00, 0x01, 0x93, 0x86, 0x76, 0x08, 0x6f, 0xf0, 0x9f, 0xda, 0xb7, 0x07, 0x00, 0x07, 0x03, 0xa7, 0x47, 0x5d, 0x0f, 0x00, 0xa0, 0x0a, 0x93, 0x16, 0xf7, 0x02, 0x93, 0x07, 0x20, 0x06, 0xe3, 0xc4, 0x06, 0xe4, 0x83, 0x26, 0x49, 0x00, 0x13, 0x07, 0x30, 0x00, 0x93, 0x07, 0x20, 0x17, 0xe3, 0x9c, 0xe6, 0xe2, 0x93, 0x07, 0x20, 0x1f, 0x6f, 0xf0, 0x1f, 0xe3, 0x83, 0x27, 0xc9, 0x10, 0x0f, 0x00, 0xa0, 0x0a, 0x37, 0x07, 0x00, 0xfa, 0x13, 0x07, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0x04, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0x26, 0xf9, 0x10, 0x13, 0x05, 0xa0, 0x00, 0xef, 0x10, 0x40, 0x21, 0x83, 0x27, 0x49, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xe7, 0x17, 0x00, 0x23, 0x22, 0xf9, 0x00, 0x13, 0x07, 0x30, 0x00, 0x37, 0x39, 0x10, 0x03, 0x83, 0x27, 0x89, 0x01, 0x0f, 0x00, 0xa0, 0x0a, 0x93, 0xf7, 0x77, 0x00, 0xe3, 0x9a, 0xe7, 0xfe, 0x37, 0x07, 0x01, 0x07, 0x83, 0x27, 0x07, 0x25, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xf7, 0xe7, 0xff, 0x23, 0x28, 0xf7, 0x24, 0x13, 0x05, 0xa0, 0x00, 0xef, 0x10, 0x80, 0x1c, 0x83, 0x27, 0x49, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xf7, 0xe7, 0xff, 0x23, 0x22, 0xf9, 0x00, 0x93, 0x09, 0x10, 0x00, 0x37, 0x39, 0x10, 0x03, 0x83, 0x27, 0x89, 0x01, 0x0f, 0x00, 0xa0, 0x0a, 0x93, 0xf7, 0x77, 0x00, 0xe3, 0x9a, 0x37, 0xff, 0x13, 0x05, 0xf0, 0x00, 0xef, 0x10, 0x40, 0x19, 0xe3, 0x94, 0x34, 0xdd, 0x83, 0x27, 0x89, 0x10, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xf7, 0xf7, 0xf3, 0x23, 0x24, 0xf9, 0x10, 0x83, 0x27, 0xc9, 0x10, 0x0f, 0x00, 0xa0, 0x0a, 0x37, 0x07, 0x00, 0xfa, 0x13, 0x07, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0x02, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0x26, 0xf9, 0x10, 0x13, 0x05, 0x10, 0x00, 0xef, 0x10, 0x00, 0x15, 0x0f, 0x00, 0x50, 0x05, 0x93, 0x07, 0x10, 0x40, 0x23, 0x20, 0xf9, 0x00, 0x37, 0x37, 0x10, 0x03, 0x83, 0x27, 0x07, 0x01, 0x0f, 0x00, 0xa0, 0x0a, 0x93, 0xf7, 0x17, 0x00, 0xe3, 0x8a, 0x07, 0xfe, 0x6f, 0xf0, 0x5f, 0xd6, 0x37, 0x04, 0x10, 0x00, 0x33, 0xf4, 0x87, 0x00, 0xe3, 0x06, 0x04, 0xd6, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x95, 0xd0, 0xef, 0x00, 0x50, 0x69, 0x13, 0x04, 0x00, 0x00, 0x13, 0x05, 0x04, 0x00, 0x83, 0x30, 0x81, 0x02, 0x03, 0x34, 0x81, 0x00, 0x83, 0x34, 0x01, 0x01, 0x03, 0x39, 0x81, 0x01, 0x83, 0x39, 0x01, 0x02, 0x13, 0x01, 0x01, 0x03, 0x67, 0x80, 0x00, 0x00, 0x37, 0x27, 0x10, 0x03, 0x83, 0x27, 0x07, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x8b, 0xb6, 0x47, 0x1c, 0x0b, 0xb5, 0x87, 0x2c, 0x3b, 0x05, 0xd5, 0x00, 0x1b, 0x05, 0x25, 0xff, 0x8b, 0xb6, 0x27, 0x0c, 0x3b, 0x05, 0xd5, 0x00, 0x93, 0x06, 0x10, 0x00, 0xbb, 0x95, 0xa6, 0x00, 0x93, 0xf7, 0x37, 0x00, 0x13, 0x85, 0x05, 0x00, 0x63, 0x8a, 0x07, 0x02, 0x03, 0x27, 0x47, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x13, 0x76, 0x37, 0x00, 0x93, 0x87, 0x05, 0x00, 0x63, 0x00, 0x06, 0x02, 0x8b, 0x37, 0x87, 0x2c, 0x0b, 0x36, 0x47, 0x1c, 0xbb, 0x87, 0xc7, 0x00, 0x9b, 0x87, 0x27, 0xff, 0x0b, 0x37, 0x27, 0x0c, 0xbb, 0x87, 0xe7, 0x00, 0xbb, 0x97, 0xf6, 0x00, 0x3b, 0x05, 0xf5, 0x00, 0x67, 0x80, 0x00, 0x00, 0x13, 0x01, 0x01, 0xff, 0xb7, 0x37, 0x10, 0x03, 0x23, 0x34, 0x11, 0x00, 0x23, 0x30, 0x81, 0x00, 0x03, 0xa7, 0x07, 0x01, 0x0f, 0x00, 0xa0, 0x0a, 0x93, 0x16, 0x97, 0x02, 0x63, 0xd4, 0x06, 0x04, 0x83, 0xa5, 0x87, 0x34, 0x0f, 0x00, 0xa0, 0x0a, 0x8b, 0xb5, 0x85, 0x65, 0x03, 0xa4, 0x87, 0x3c, 0x0f, 0x00, 0xa0, 0x0a, 0x93, 0x07, 0x20, 0x00, 0x0b, 0x34, 0x84, 0x65, 0x63, 0x98, 0xf5, 0x06, 0x03, 0x27, 0x45, 0x01, 0xb7, 0x17, 0xff, 0xff, 0x93, 0x87, 0x07, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x63, 0x14, 0xb4, 0x04, 0x23, 0x2a, 0xf5, 0x00, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x75, 0xd6, 0x6f, 0x00, 0x00, 0x02, 0x83, 0x27, 0x45, 0x01, 0x37, 0x17, 0x00, 0x00, 0x93, 0xf7, 0x07, 0xff, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0x2a, 0xf5, 0x00, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x25, 0xd4, 0xef, 0x00, 0xd0, 0x57, 0x13, 0x05, 0x10, 0x00, 0x83, 0x30, 0x81, 0x00, 0x03, 0x34, 0x01, 0x00, 0x13, 0x01, 0x01, 0x01, 0x67, 0x80, 0x00, 0x00, 0x93, 0xe7, 0x17, 0x00, 0x23, 0x2a, 0xf5, 0x00, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x05, 0xd9, 0x6f, 0xf0, 0x9f, 0xfd, 0x63, 0x94, 0x05, 0x02, 0x83, 0x27, 0x45, 0x01, 0x37, 0x17, 0x00, 0x00, 0x13, 0x07, 0x17, 0x00, 0x93, 0xf7, 0x07, 0xff, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0x2a, 0xf5, 0x00, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x85, 0xdb, 0x6f, 0xf0, 0x1f, 0xfb, 0x03, 0x25, 0xc5, 0x05, 0xb7, 0x07, 0x00, 0x20, 0x33, 0x75, 0xf5, 0x00, 0xe3, 0x04, 0x05, 0xfa, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0xe5, 0xdd, 0xef, 0x00, 0x10, 0x51, 0x37, 0x45, 0x02, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0xd5, 0xde, 0xef, 0x00, 0x10, 0x50, 0x13, 0x05, 0x00, 0x00, 0x6f, 0xf0, 0x5f, 0xf8, 0x1b, 0x55, 0x15, 0x00, 0x13, 0x01, 0x01, 0xfd, 0x1b, 0x17, 0x45, 0x01, 0x37, 0x46, 0x23, 0x01, 0x37, 0xc5, 0xdc, 0xfe, 0x0b, 0x54, 0x91, 0xfa, 0x23, 0x34, 0x11, 0x02, 0x23, 0x30, 0x21, 0x03, 0x93, 0x88, 0x05, 0x00, 0x93, 0x04, 0x07, 0x00, 0xb7, 0x06, 0x00, 0x40, 0x93, 0x07, 0x00, 0x00, 0x1b, 0x06, 0x76, 0x56, 0x1b, 0x05, 0x85, 0xa9, 0x63, 0x9c, 0x17, 0x03, 0xb7, 0xc7, 0xdc, 0xfe, 0x37, 0x45, 0x23, 0x01, 0x13, 0x04, 0x00, 0x00, 0x0b, 0x37, 0x07, 0x7c, 0x37, 0x03, 0x00, 0x40, 0x9b, 0x87, 0x87, 0xa9, 0x1b, 0x05, 0x75, 0x56, 0x63, 0x14, 0x14, 0x05, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x25, 0xe3, 0xef, 0x00, 0x10, 0x49, 0x13, 0x05, 0x00, 0x00, 0x6f, 0x00, 0x40, 0x08, 0x0f, 0x00, 0x50, 0x05, 0x8b, 0xb5, 0x06, 0x7c, 0x3b, 0x88, 0xc7, 0x00, 0x23, 0xa0, 0x05, 0x01, 0x0f, 0x00, 0x50, 0x05, 0x3b, 0x08, 0xd7, 0x00, 0xbb, 0x85, 0xa7, 0x00, 0x0b, 0x38, 0x08, 0x7c, 0x23, 0x20, 0xb8, 0x00, 0x9b, 0x87, 0x17, 0x00, 0x9b, 0x86, 0x46, 0x00, 0x6f, 0xf0, 0xdf, 0xf9, 0x1b, 0x19, 0x24, 0x00, 0x0b, 0x36, 0x09, 0x7c, 0x33, 0x06, 0xe6, 0x00, 0x8b, 0x45, 0xc3, 0x40, 0x0f, 0x00, 0xa0, 0x0a, 0x3b, 0x86, 0x87, 0x00, 0x63, 0x06, 0xb6, 0x04, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x05, 0xe0, 0x23, 0x34, 0xb1, 0x00, 0x23, 0x30, 0xc1, 0x00, 0xef, 0x00, 0x90, 0x42, 0x37, 0x05, 0x00, 0x40, 0xbb, 0x04, 0x95, 0x00, 0xbb, 0x86, 0x24, 0x01, 0x37, 0x45, 0x02, 0x00, 0x0b, 0x46, 0xb1, 0xf8, 0x13, 0x05, 0x95, 0xe1, 0xef, 0x00, 0xd0, 0x40, 0x13, 0x05, 0x10, 0x00, 0x83, 0x30, 0x81, 0x02, 0x0b, 0x44, 0x91, 0xfa, 0x03, 0x39, 0x01, 0x02, 0x13, 0x01, 0x01, 0x03, 0x67, 0x80, 0x00, 0x00, 0x8b, 0x45, 0x23, 0x51, 0x0f, 0x00, 0xa0, 0x0a, 0x3b, 0x06, 0x85, 0x00, 0x63, 0x04, 0xb6, 0x02, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x05, 0xe0, 0x23, 0x34, 0xb1, 0x00, 0x23, 0x30, 0xc1, 0x00, 0xef, 0x00, 0x10, 0x3d, 0xb7, 0x06, 0x00, 0x10, 0xbb, 0x86, 0x86, 0x00, 0x9b, 0x96, 0x26, 0x00, 0x6f, 0xf0, 0x9f, 0xfa, 0x1b, 0x04, 0x14, 0x00, 0x6f, 0xf0, 0xdf, 0xf1, 0x83, 0x27, 0xc5, 0x05, 0x13, 0x97, 0xe7, 0x02, 0x63, 0x4e, 0x07, 0x04, 0x37, 0x37, 0x10, 0x03, 0x83, 0x27, 0x07, 0x11, 0x0f, 0x00, 0xa0, 0x0a, 0xb7, 0x86, 0x80, 0x80, 0x93, 0x86, 0x06, 0x08, 0xb3, 0xf7, 0xd7, 0x00, 0x83, 0x26, 0xc5, 0x03, 0xb3, 0xe7, 0xd7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x28, 0xf7, 0x10, 0x83, 0x27, 0xc5, 0x05, 0x93, 0x96, 0xf7, 0x02, 0x63, 0xc2, 0x06, 0x02, 0x83, 0x27, 0x47, 0x11, 0x0f, 0x00, 0xa0, 0x0a, 0x93, 0xf6, 0x07, 0xf8, 0x83, 0x27, 0x05, 0x04, 0x93, 0xf7, 0xf7, 0x07, 0xb3, 0xe7, 0xd7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x2a, 0xf7, 0x10, 0x67, 0x80, 0x00, 0x00, 0x13, 0x01, 0x01, 0xff, 0x23, 0x34, 0x11, 0x00, 0x23, 0x30, 0x81, 0x00, 0x13, 0x04, 0x05, 0x00, 0xef, 0xf0, 0x4f, 0x83, 0x13, 0x05, 0x04, 0x00, 0xef, 0xf0, 0x1f, 0xf8, 0x13, 0x05, 0x04, 0x00, 0xef, 0xf0, 0x0f, 0x9b, 0x13, 0x05, 0x04, 0x00, 0xef, 0xf0, 0xcf, 0xbb, 0x13, 0x05, 0x04, 0x00, 0xef, 0xe0, 0x4f, 0x9d, 0x93, 0x05, 0x04, 0x00, 0x03, 0x34, 0x01, 0x00, 0x83, 0x30, 0x81, 0x00, 0x13, 0x05, 0x00, 0x00, 0x13, 0x01, 0x01, 0x01, 0x6f, 0xf0, 0x4f, 0xeb, 0x13, 0x01, 0x01, 0xf8, 0x23, 0x34, 0x91, 0x06, 0x23, 0x3c, 0x71, 0x03, 0x23, 0x3c, 0x11, 0x06, 0x23, 0x38, 0x81, 0x06, 0x23, 0x30, 0x21, 0x07, 0x23, 0x3c, 0x31, 0x05, 0x23, 0x38, 0x41, 0x05, 0x23, 0x34, 0x51, 0x05, 0x23, 0x30, 0x61, 0x05, 0x23, 0x38, 0x81, 0x03, 0x23, 0x34, 0x91, 0x03, 0x23, 0x30, 0xa1, 0x03, 0x23, 0x3c, 0xb1, 0x01, 0x93, 0x0b, 0x05, 0x00, 0xef, 0xf0, 0x9f, 0xf7, 0x9b, 0x04, 0x05, 0x00, 0x63, 0x98, 0x04, 0x04, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x95, 0xe4, 0xef, 0x00, 0x10, 0x2b, 0x83, 0x30, 0x81, 0x07, 0x03, 0x34, 0x01, 0x07, 0x13, 0x85, 0x04, 0x00, 0x03, 0x39, 0x01, 0x06, 0x83, 0x34, 0x81, 0x06, 0x83, 0x39, 0x81, 0x05, 0x03, 0x3a, 0x01, 0x05, 0x83, 0x3a, 0x81, 0x04, 0x03, 0x3b, 0x01, 0x04, 0x83, 0x3b, 0x81, 0x03, 0x03, 0x3c, 0x01, 0x03, 0x83, 0x3c, 0x81, 0x02, 0x03, 0x3d, 0x01, 0x02, 0x83, 0x3d, 0x81, 0x01, 0x13, 0x01, 0x01, 0x08, 0x67, 0x80, 0x00, 0x00, 0x83, 0xa7, 0x4b, 0x01, 0x13, 0x04, 0x10, 0x00, 0x8b, 0xb7, 0xc7, 0x3c, 0x63, 0x94, 0x87, 0x00, 0x13, 0x04, 0x20, 0x00, 0x37, 0xfa, 0xff, 0xff, 0xb7, 0x19, 0x00, 0x00, 0x37, 0x2b, 0x10, 0x03, 0x13, 0x0d, 0x00, 0x00, 0x13, 0x0c, 0x00, 0x00, 0xb7, 0x04, 0x00, 0x40, 0xb7, 0x0c, 0x00, 0x40, 0x13, 0x09, 0x00, 0x04, 0xb7, 0x4a, 0x02, 0x00, 0x93, 0x0d, 0x3a, 0x00, 0x93, 0x89, 0x09, 0xaa, 0x0b, 0xb7, 0x0c, 0x7c, 0x93, 0x07, 0x00, 0x00, 0x13, 0xf6, 0x17, 0x00, 0x9b, 0x06, 0x07, 0x00, 0x63, 0x14, 0x06, 0x00, 0x93, 0xc6, 0xf6, 0xff, 0x0f, 0x00, 0x50, 0x05, 0x8b, 0x56, 0x47, 0x58, 0x9b, 0x87, 0x17, 0x00, 0xe3, 0x92, 0x27, 0xff, 0x83, 0x27, 0x0b, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x13, 0x07, 0x3a, 0x0f, 0xb3, 0xf7, 0xe7, 0x00, 0x93, 0xe7, 0x07, 0x6f, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x20, 0xfb, 0x00, 0x03, 0x27, 0x0b, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0xe3, 0x9c, 0xe7, 0xfe, 0x13, 0x07, 0xb0, 0x00, 0x93, 0x08, 0x10, 0x00, 0x13, 0x08, 0x10, 0x01, 0x9b, 0x07, 0xb7, 0x00, 0xbb, 0x97, 0xf8, 0x00, 0xbb, 0x87, 0x97, 0x01, 0x8b, 0xb7, 0x07, 0x7c, 0x13, 0x86, 0x04, 0x00, 0x93, 0x06, 0x00, 0x00, 0x13, 0xf5, 0x16, 0x00, 0x93, 0x05, 0x06, 0x00, 0x63, 0x16, 0x05, 0x00, 0x93, 0x45, 0xf6, 0xff, 0x9b, 0x85, 0x05, 0x00, 0x03, 0xa5, 0x07, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x63, 0x92, 0xa5, 0x2e, 0x9b, 0x86, 0x16, 0x00, 0x1b, 0x06, 0x46, 0x00, 0x93, 0x87, 0x47, 0x00, 0xe3, 0x9a, 0x26, 0xfd, 0x13, 0x06, 0x07, 0x00, 0x93, 0x05, 0x0c, 0x00, 0x13, 0x85, 0x4a, 0xe7, 0x23, 0x34, 0xe1, 0x00, 0xef, 0x00, 0x90, 0x17, 0x9b, 0x07, 0x4d, 0x00, 0x83, 0xa6, 0x0b, 0x01, 0x13, 0x06, 0xf0, 0x0f, 0x03, 0x37, 0x81, 0x00, 0x3b, 0x16, 0xf6, 0x00, 0x13, 0x46, 0xf6, 0xff, 0x3b, 0x17, 0xf7, 0x00, 0x33, 0x76, 0xd6, 0x00, 0x33, 0x66, 0xe6, 0x00, 0x23, 0xa8, 0xcb, 0x00, 0x93, 0x07, 0x10, 0x00, 0x63, 0x12, 0xfc, 0x02, 0x37, 0x27, 0x10, 0x03, 0x83, 0x27, 0x07, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb3, 0xf7, 0xb7, 0x01, 0x93, 0xe7, 0x47, 0x6a, 0x23, 0x20, 0xf7, 0x00, 0xb7, 0x0c, 0x80, 0x40, 0x83, 0x27, 0x0b, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0xb3, 0xf7, 0xb7, 0x01, 0x93, 0xe7, 0x47, 0x6a, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x20, 0xfb, 0x00, 0x03, 0x27, 0x0b, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0xe3, 0x1c, 0xf7, 0xfe, 0xb7, 0x17, 0x00, 0x00, 0x9b, 0x87, 0x07, 0x80, 0xbb, 0x87, 0xfc, 0x00, 0x8b, 0xb7, 0x07, 0x7c, 0x93, 0x86, 0x04, 0x00, 0x13, 0x07, 0x00, 0x00, 0x93, 0x75, 0x17, 0x00, 0x13, 0x86, 0x06, 0x00, 0x63, 0x96, 0x05, 0x00, 0x13, 0xc6, 0xf6, 0xff, 0x1b, 0x06, 0x06, 0x00, 0x83, 0xa5, 0x07, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x63, 0x14, 0xb6, 0x1e, 0x1b, 0x07, 0x17, 0x00, 0x9b, 0x86, 0x46, 0x00, 0x93, 0x87, 0x47, 0x00, 0xe3, 0x1a, 0x27, 0xfd, 0x13, 0x07, 0x00, 0x00, 0x1b, 0x06, 0x17, 0x00, 0x37, 0x45, 0x02, 0x00, 0x13, 0x16, 0x26, 0x00, 0x93, 0x05, 0x0c, 0x00, 0x13, 0x05, 0x55, 0xe9, 0x23, 0x34, 0xe1, 0x00, 0xef, 0x00, 0xd0, 0x09, 0x9b, 0x06, 0xcd, 0x00, 0x03, 0xa6, 0x0b, 0x01, 0x93, 0x07, 0xf0, 0x00, 0x03, 0x37, 0x81, 0x00, 0xbb, 0x97, 0xd7, 0x00, 0x93, 0xc7, 0xf7, 0xff, 0xb3, 0xf7, 0xc7, 0x00, 0x3b, 0x17, 0xd7, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0xa8, 0xfb, 0x00, 0x93, 0x07, 0x10, 0x00, 0x63, 0x12, 0xfc, 0x02, 0x37, 0x27, 0x10, 0x03, 0x83, 0x27, 0x07, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb3, 0xf7, 0xb7, 0x01, 0xb3, 0xe7, 0x37, 0x01, 0x23, 0x20, 0xf7, 0x00, 0xb7, 0x0c, 0x00, 0x44, 0x83, 0x27, 0x0b, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0xb3, 0xf7, 0xb7, 0x01, 0xb3, 0xe7, 0x37, 0x01, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x20, 0xfb, 0x00, 0x03, 0x27, 0x0b, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0xe3, 0x1c, 0xf7, 0xfe, 0x13, 0x07, 0x90, 0x00, 0x93, 0x08, 0x10, 0x00, 0x13, 0x08, 0xe0, 0x00, 0xbb, 0x97, 0xe8, 0x00, 0xbb, 0x87, 0x97, 0x01, 0x8b, 0xb7, 0x07, 0x7c, 0x13, 0x86, 0x04, 0x00, 0x93, 0x06, 0x00, 0x00, 0x13, 0xf5, 0x16, 0x00, 0x93, 0x05, 0x06, 0x00, 0x63, 0x16, 0x05, 0x00, 0x93, 0x45, 0xf6, 0xff, 0x9b, 0x85, 0x05, 0x00, 0x03, 0xa5, 0x07, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x63, 0x90, 0xa5, 0x12, 0x9b, 0x86, 0x16, 0x00, 0x1b, 0x06, 0x46, 0x00, 0x93, 0x87, 0x47, 0x00, 0xe3, 0x9a, 0x26, 0xfd, 0x93, 0x07, 0xd0, 0x00, 0x63, 0x08, 0xf7, 0x00, 0x93, 0x07, 0x90, 0x00, 0x93, 0x06, 0x00, 0x00, 0x63, 0x08, 0xf7, 0x00, 0x1b, 0x07, 0x67, 0xff, 0x93, 0x06, 0x10, 0x00, 0xbb, 0x96, 0xe6, 0x00, 0x37, 0x45, 0x02, 0x00, 0x13, 0x86, 0x06, 0x00, 0x93, 0x05, 0x0c, 0x00, 0x13, 0x05, 0x85, 0xeb, 0x23, 0x34, 0xd1, 0x00, 0xef, 0x00, 0x00, 0x7a, 0x03, 0xa7, 0x0b, 0x01, 0x93, 0x07, 0xf0, 0x00, 0x83, 0x36, 0x81, 0x00, 0xbb, 0x97, 0xa7, 0x01, 0x93, 0xc7, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x3b, 0x97, 0xa6, 0x01, 0xb3, 0xe7, 0xe7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0x23, 0xa8, 0xfb, 0x00, 0x1b, 0x0c, 0x1c, 0x00, 0x63, 0x1e, 0x84, 0x03, 0x13, 0x07, 0x20, 0x00, 0x93, 0x04, 0x10, 0x00, 0xe3, 0x1c, 0xe4, 0xca, 0x83, 0xa6, 0x4b, 0x01, 0x37, 0xf7, 0xff, 0xff, 0x13, 0x07, 0xf7, 0x0f, 0x33, 0x77, 0xd7, 0x00, 0x8b, 0xb6, 0x07, 0x7d, 0x8b, 0xb7, 0x07, 0x3c, 0x63, 0x96, 0xf6, 0x06, 0x37, 0x45, 0x02, 0x00, 0x23, 0xaa, 0xeb, 0x00, 0x13, 0x05, 0x25, 0xee, 0x6f, 0xf0, 0x9f, 0xc8, 0x93, 0x07, 0x10, 0x00, 0x63, 0x10, 0xfc, 0x04, 0x37, 0x27, 0x10, 0x03, 0x83, 0x27, 0x07, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb3, 0xf7, 0xb7, 0x01, 0x93, 0xe7, 0x07, 0x6f, 0x23, 0x20, 0xf7, 0x00, 0x83, 0x27, 0x47, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb3, 0xf7, 0xb7, 0x01, 0x93, 0xe7, 0x17, 0x6f, 0x23, 0x22, 0xf7, 0x00, 0xb7, 0x04, 0x00, 0x48, 0xb7, 0x0c, 0x00, 0x48, 0x1b, 0x0d, 0x0d, 0x01, 0x13, 0x0b, 0x4b, 0x00, 0x6f, 0xf0, 0xdf, 0xcb, 0x13, 0x07, 0x10, 0x00, 0x6f, 0xf0, 0xdf, 0xe2, 0x13, 0x67, 0x07, 0x10, 0x37, 0x45, 0x02, 0x00, 0x23, 0xaa, 0xeb, 0x00, 0x13, 0x05, 0x05, 0xf0, 0x6f, 0xf0, 0xdf, 0xc1, 0x1b, 0x07, 0x17, 0x00, 0xe3, 0x16, 0x07, 0xeb, 0x13, 0x07, 0xd0, 0x00, 0x6f, 0xf0, 0xdf, 0xef, 0x1b, 0x07, 0x17, 0x00, 0xe3, 0x12, 0x07, 0xcf, 0x13, 0x07, 0x00, 0x01, 0x6f, 0xf0, 0x5f, 0xd2, 0x13, 0x01, 0x01, 0xfe, 0xb7, 0x07, 0xb0, 0x00, 0x0b, 0x54, 0x91, 0xf8, 0x23, 0x38, 0x21, 0x01, 0x23, 0x3c, 0x11, 0x00, 0x9b, 0x87, 0x07, 0x0b, 0x03, 0x29, 0x05, 0x01, 0x23, 0x28, 0xf5, 0x00, 0x83, 0x27, 0x45, 0x01, 0x83, 0x24, 0xc5, 0x05, 0x37, 0x17, 0x00, 0x00, 0x93, 0xf7, 0x07, 0xff, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0x2a, 0xf5, 0x00, 0x93, 0xf7, 0x74, 0xff, 0x93, 0xe7, 0x57, 0x00, 0x23, 0x2e, 0xf5, 0x04, 0x13, 0x04, 0x05, 0x00, 0xef, 0xf0, 0x5f, 0xb1, 0xb7, 0x37, 0x10, 0x03, 0x83, 0xa7, 0x07, 0x01, 0x0f, 0x00, 0xa0, 0x0a, 0x13, 0x97, 0xb7, 0x02, 0x63, 0x5e, 0x07, 0x00, 0x13, 0x05, 0x00, 0x00, 0x83, 0x30, 0x81, 0x01, 0x0b, 0x44, 0x91, 0xf8, 0x03, 0x39, 0x01, 0x01, 0x13, 0x01, 0x01, 0x02, 0x67, 0x80, 0x00, 0x00, 0x13, 0x05, 0x04, 0x00, 0xef, 0xf0, 0x1f, 0x83, 0x1b, 0x05, 0x05, 0x00, 0xe3, 0x0e, 0x05, 0xfc, 0x23, 0x2e, 0x94, 0x04, 0x23, 0x28, 0x24, 0x01, 0x13, 0x05, 0x10, 0x00, 0x6f, 0xf0, 0x1f, 0xfd, 0x83, 0x27, 0xc5, 0x05, 0x13, 0x01, 0x01, 0xfe, 0x23, 0x38, 0x91, 0x00, 0x23, 0x3c, 0x11, 0x00, 0x23, 0x34, 0x81, 0x00, 0x13, 0x97, 0x17, 0x03, 0x93, 0x04, 0x05, 0x00, 0x63, 0x4a, 0x07, 0x02, 0xef, 0xf0, 0x9f, 0xf4, 0x1b, 0x04, 0x05, 0x00, 0x63, 0x14, 0x04, 0x02, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x45, 0xf2, 0xef, 0x00, 0xc0, 0x5d, 0x13, 0x05, 0x04, 0x00, 0x83, 0x30, 0x81, 0x01, 0x03, 0x34, 0x81, 0x00, 0x83, 0x34, 0x01, 0x01, 0x13, 0x01, 0x01, 0x02, 0x67, 0x80, 0x00, 0x00, 0x83, 0xa7, 0xc4, 0x05, 0x93, 0xf7, 0x17, 0x00, 0x63, 0x90, 0x07, 0x02, 0x13, 0x85, 0x04, 0x00, 0xef, 0xf0, 0x1f, 0xab, 0x1b, 0x04, 0x05, 0x00, 0x63, 0x18, 0x04, 0x00, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x65, 0xf5, 0x6f, 0xf0, 0x1f, 0xfc, 0x83, 0xa7, 0xc4, 0x05, 0x13, 0x04, 0x10, 0x00, 0x13, 0x97, 0x07, 0x03, 0xe3, 0x4a, 0x07, 0xfa, 0x37, 0x67, 0x00, 0x00, 0x13, 0x07, 0x37, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0xae, 0xf4, 0x04, 0x6f, 0xf0, 0x1f, 0xfa, 0x83, 0xa7, 0xc5, 0x05, 0x13, 0x01, 0x01, 0xfe, 0x23, 0x34, 0x81, 0x00, 0x23, 0x3c, 0x11, 0x00, 0x23, 0x38, 0x91, 0x00, 0x13, 0x97, 0xf7, 0x02, 0x13, 0x84, 0x05, 0x00, 0x63, 0x46, 0x07, 0x10, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x07, 0x01, 0x07, 0x23, 0xaa, 0x07, 0x24, 0xb7, 0x04, 0x00, 0x03, 0x83, 0xa7, 0x04, 0x16, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xf7, 0xc7, 0xff, 0x23, 0xa0, 0xf4, 0x16, 0x13, 0x05, 0xa0, 0x00, 0xef, 0x00, 0xc0, 0x7a, 0x83, 0xa7, 0x04, 0x16, 0x0f, 0x00, 0xa0, 0x0a, 0x93, 0xf7, 0x77, 0xef, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xa0, 0xf4, 0x16, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xe7, 0x27, 0x00, 0x23, 0xa0, 0xf4, 0x16, 0x13, 0x05, 0xa0, 0x00, 0xef, 0x00, 0x00, 0x78, 0x83, 0xa7, 0x04, 0x16, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xe7, 0x17, 0x00, 0x23, 0xa0, 0xf4, 0x16, 0x13, 0x05, 0x40, 0x01, 0xef, 0x00, 0x40, 0x76, 0x83, 0xa5, 0xc4, 0x16, 0x0f, 0x00, 0xa0, 0x0a, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x15, 0xf8, 0xef, 0x00, 0x00, 0x4d, 0xef, 0xd0, 0x8f, 0xd5, 0x93, 0x04, 0x05, 0x00, 0x93, 0x05, 0x05, 0x00, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0xf5, 0xfb, 0xef, 0x00, 0x80, 0x4b, 0x63, 0xd0, 0x04, 0x0a, 0x13, 0x05, 0x04, 0x00, 0xef, 0xd0, 0x4f, 0xd6, 0x83, 0x27, 0xc4, 0x05, 0x93, 0xf7, 0x17, 0x00, 0x63, 0x8a, 0x07, 0x0a, 0xb7, 0x45, 0x02, 0x00, 0x37, 0x45, 0x02, 0x00, 0x93, 0x85, 0x65, 0xfd, 0x13, 0x05, 0xc5, 0xfd, 0xef, 0x00, 0xc0, 0x48, 0x83, 0x25, 0x04, 0x00, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x75, 0xff, 0xef, 0x00, 0xc0, 0x47, 0x83, 0x25, 0x44, 0x00, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x05, 0x01, 0xef, 0x00, 0xc0, 0x46, 0x83, 0x27, 0xc4, 0x00, 0x93, 0xf7, 0x17, 0x00, 0x63, 0x9e, 0x07, 0x08, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x85, 0x04, 0xef, 0x00, 0x40, 0x45, 0x6f, 0x00, 0xc0, 0x09, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x05, 0xfa, 0xef, 0x00, 0x40, 0x44, 0xb7, 0x07, 0x00, 0x03, 0x03, 0xa7, 0x07, 0x16, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x13, 0x67, 0x07, 0x10, 0x23, 0xa0, 0xe7, 0x16, 0x0f, 0x00, 0x50, 0x05, 0x13, 0x05, 0xa0, 0x00, 0x23, 0xa4, 0x07, 0x16, 0xef, 0x00, 0xc0, 0x69, 0x6f, 0xf0, 0xdf, 0xf4, 0x83, 0x27, 0x44, 0x00, 0x13, 0x07, 0x20, 0x00, 0x63, 0x8a, 0xe7, 0x00, 0x13, 0x07, 0x30, 0x00, 0xe3, 0x9e, 0xe7, 0xf4, 0x13, 0x05, 0xc0, 0x5d, 0x6f, 0x00, 0x80, 0x00, 0x13, 0x05, 0x80, 0x70, 0xef, 0xd0, 0x8f, 0xc7, 0x6f, 0xf0, 0x9f, 0xf4, 0x13, 0x05, 0x04, 0x00, 0xef, 0xf0, 0x9f, 0xdd, 0x1b, 0x05, 0x05, 0x00, 0xe3, 0x12, 0x05, 0xf4, 0x13, 0x05, 0x00, 0x00, 0x83, 0x30, 0x81, 0x01, 0x03, 0x34, 0x81, 0x00, 0x83, 0x34, 0x01, 0x01, 0x13, 0x01, 0x01, 0x02, 0x67, 0x80, 0x00, 0x00, 0x83, 0x25, 0x84, 0x00, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x15, 0x03, 0xef, 0x00, 0x80, 0x3b, 0x83, 0x25, 0xc4, 0x01, 0x93, 0xf7, 0x45, 0x04, 0x63, 0x88, 0x07, 0x02, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0xf5, 0x05, 0xef, 0x00, 0x00, 0x3a, 0x13, 0x05, 0x04, 0x00, 0xef, 0xf0, 0xdf, 0x84, 0x1b, 0x05, 0x05, 0x00, 0x63, 0x12, 0x05, 0x02, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x85, 0x08, 0xef, 0x00, 0x40, 0x38, 0x6f, 0xf0, 0x5f, 0xfa, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x85, 0x07, 0xef, 0x00, 0x40, 0x37, 0x6f, 0xf0, 0x5f, 0xfd, 0x83, 0x24, 0x44, 0x01, 0x63, 0xde, 0x04, 0x14, 0x8b, 0xb4, 0x04, 0x79, 0x83, 0x27, 0xc4, 0x05, 0x13, 0x97, 0x17, 0x02, 0x63, 0x5c, 0x07, 0x16, 0x0f, 0x00, 0xa0, 0x0a, 0x83, 0x27, 0x84, 0x04, 0x63, 0x96, 0x07, 0x00, 0xb7, 0x07, 0x00, 0x10, 0x93, 0x87, 0x07, 0x20, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x37, 0x10, 0x03, 0x23, 0x20, 0xf7, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0x07, 0xa0, 0x40, 0x23, 0x2e, 0xf7, 0x08, 0x83, 0x27, 0x47, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x45, 0x02, 0x00, 0x93, 0xe7, 0x17, 0x00, 0x23, 0x22, 0xf7, 0x00, 0x13, 0x05, 0x65, 0x0b, 0xef, 0x00, 0xc0, 0x30, 0xb7, 0x36, 0x10, 0x03, 0x03, 0xa7, 0x06, 0x10, 0xb7, 0x17, 0xff, 0xff, 0x93, 0x87, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x03, 0x27, 0xc4, 0x05, 0x13, 0x77, 0x07, 0x20, 0x63, 0x18, 0x07, 0x00, 0x03, 0x26, 0x44, 0x00, 0x13, 0x07, 0x60, 0x00, 0x63, 0x1a, 0xe6, 0x12, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x57, 0x00, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x37, 0x37, 0x10, 0x03, 0x23, 0x20, 0xf7, 0x10, 0xb7, 0x37, 0x10, 0x03, 0x03, 0xa7, 0x07, 0x14, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x06, 0x00, 0x80, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xa0, 0xe7, 0x14, 0x03, 0x27, 0xc4, 0x05, 0x13, 0x77, 0x07, 0x10, 0x63, 0x0c, 0x07, 0x00, 0x03, 0xa7, 0x87, 0x0b, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x13, 0x67, 0x07, 0x30, 0x23, 0xac, 0xe7, 0x0a, 0x83, 0x26, 0xc4, 0x05, 0x37, 0x37, 0x10, 0x03, 0x83, 0x27, 0x87, 0x10, 0x13, 0x96, 0x56, 0x02, 0x63, 0x5e, 0x06, 0x0c, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0xe6, 0xff, 0xff, 0x93, 0x86, 0xf6, 0xff, 0xb3, 0xf7, 0xd7, 0x00, 0x23, 0x24, 0xf7, 0x10, 0x03, 0x27, 0x44, 0x00, 0x93, 0x07, 0x70, 0x00, 0x63, 0x16, 0xf7, 0x02, 0xb7, 0x36, 0x10, 0x03, 0x83, 0xa7, 0xc6, 0x07, 0x0f, 0x00, 0xa0, 0x0a, 0x37, 0x07, 0xf1, 0xff, 0x13, 0x07, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x01, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0xae, 0xf6, 0x06, 0xef, 0xd0, 0xcf, 0xb6, 0x83, 0x27, 0xc4, 0x05, 0x13, 0x97, 0x37, 0x02, 0x63, 0x4a, 0x07, 0x08, 0xef, 0xd0, 0x0f, 0xaa, 0x1b, 0x85, 0x04, 0x00, 0x6f, 0xf0, 0x9f, 0xe3, 0xef, 0xf0, 0x0f, 0xba, 0x9b, 0x04, 0x05, 0x00, 0x37, 0x45, 0x02, 0x00, 0x93, 0x85, 0x04, 0x00, 0x13, 0x05, 0x45, 0x0a, 0xef, 0x00, 0x80, 0x1f, 0x83, 0x57, 0x44, 0x01, 0x1b, 0x97, 0x04, 0x01, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0x2a, 0xf4, 0x00, 0x6f, 0xf0, 0x5f, 0xe8, 0xb7, 0x37, 0x10, 0x03, 0x03, 0xa7, 0x07, 0x0a, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x06, 0xff, 0xff, 0x33, 0x77, 0xd7, 0x00, 0x23, 0xa0, 0xe7, 0x0a, 0x03, 0xa7, 0x47, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x13, 0x77, 0xe7, 0xff, 0x23, 0xa2, 0xe7, 0x00, 0x6f, 0xf0, 0x9f, 0xea, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xa0, 0xf6, 0x10, 0x6f, 0xf0, 0xdf, 0xed, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x26, 0x00, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x6f, 0xf0, 0xdf, 0xf2, 0xb7, 0x07, 0x00, 0x07, 0x83, 0xa7, 0x47, 0x5d, 0x0f, 0x00, 0xa0, 0x0a, 0x13, 0x97, 0xf7, 0x02, 0xe3, 0x40, 0x07, 0xf6, 0xb7, 0x15, 0x00, 0x00, 0x13, 0x85, 0x04, 0x00, 0xef, 0xf0, 0x8f, 0xc7, 0x1b, 0x05, 0x05, 0x00, 0xe3, 0x06, 0x05, 0xf4, 0x6f, 0xf0, 0x5f, 0xd8, 0x13, 0x07, 0x10, 0x00, 0x93, 0x17, 0x17, 0x02, 0x13, 0x01, 0x01, 0xf9, 0x93, 0x87, 0x07, 0x21, 0x23, 0x30, 0xf1, 0x00, 0xb7, 0x87, 0x7b, 0x00, 0x93, 0x87, 0x97, 0xbf, 0x23, 0x34, 0xf1, 0x00, 0x93, 0x07, 0x20, 0x0d, 0x23, 0x38, 0xf1, 0x00, 0xb7, 0x47, 0x02, 0x00, 0x83, 0xb7, 0x07, 0xcd, 0x13, 0x17, 0x27, 0x03, 0x93, 0x05, 0x01, 0x00, 0x23, 0x3c, 0xf1, 0x00, 0xb7, 0x47, 0x02, 0x00, 0x83, 0xb7, 0x87, 0xcd, 0x13, 0x05, 0x00, 0x00, 0x23, 0x34, 0x11, 0x06, 0x23, 0x34, 0xf1, 0x02, 0xb7, 0x47, 0x02, 0x00, 0x83, 0xb7, 0x07, 0xce, 0x23, 0x30, 0x01, 0x02, 0x23, 0x34, 0x01, 0x04, 0x23, 0x38, 0xf1, 0x02, 0xb7, 0x17, 0x09, 0x09, 0x93, 0x87, 0x97, 0x90, 0x93, 0x97, 0x37, 0x02, 0x23, 0x3c, 0xf1, 0x02, 0xb7, 0x47, 0x02, 0x00, 0x83, 0xb7, 0x87, 0xce, 0x23, 0x38, 0xe1, 0x04, 0x23, 0x30, 0xf1, 0x04, 0x93, 0x07, 0xd0, 0x00, 0x93, 0x97, 0xa7, 0x03, 0x93, 0x87, 0x57, 0x04, 0x23, 0x3c, 0xf1, 0x04, 0xef, 0xf0, 0x5f, 0xb5, 0x83, 0x30, 0x81, 0x06, 0x13, 0x35, 0x15, 0x00, 0x13, 0x01, 0x01, 0x07, 0x67, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x07, 0x00, 0x02, 0x83, 0x27, 0x47, 0x03, 0xb7, 0x26, 0x00, 0x02, 0x93, 0xf7, 0x07, 0xff, 0x93, 0xe7, 0x67, 0x00, 0x23, 0x2a, 0xf7, 0x02, 0x83, 0x27, 0x47, 0x03, 0x37, 0x06, 0x01, 0x00, 0x93, 0xf7, 0xf7, 0xf0, 0x93, 0xe7, 0x07, 0x06, 0x23, 0x2a, 0xf7, 0x02, 0x03, 0xa7, 0xc6, 0x90, 0xb7, 0x07, 0x50, 0x02, 0x13, 0x67, 0x17, 0x00, 0x23, 0xa6, 0xe6, 0x90, 0x03, 0xa7, 0xc6, 0x90, 0x33, 0x67, 0xc7, 0x00, 0x23, 0xa6, 0xe6, 0x90, 0x23, 0xa2, 0x07, 0x00, 0x13, 0x07, 0x70, 0x0f, 0x23, 0xa4, 0xe7, 0x00, 0x23, 0xa8, 0x07, 0x00, 0x03, 0xa7, 0xc7, 0x00, 0x13, 0x67, 0x07, 0x08, 0x23, 0xa6, 0xe7, 0x00, 0x13, 0x07, 0xd0, 0x00, 0x23, 0xa0, 0xe7, 0x00, 0x23, 0xa2, 0x07, 0x00, 0x03, 0xa7, 0xc7, 0x00, 0x13, 0x77, 0xf7, 0xf7, 0x23, 0xa6, 0xe7, 0x00, 0x03, 0xa7, 0xc7, 0x00, 0x13, 0x77, 0x07, 0xfe, 0x13, 0x67, 0x37, 0x00, 0x23, 0xa6, 0xe7, 0x00, 0x67, 0x80, 0x00, 0x00, 0x37, 0x07, 0x50, 0x02, 0x13, 0x00, 0x00, 0x00, 0x83, 0x27, 0xc7, 0x07, 0x93, 0xf7, 0x27, 0x00, 0xe3, 0x8c, 0x07, 0xfe, 0x1b, 0x05, 0x05, 0x00, 0x23, 0x20, 0xa7, 0x00, 0x67, 0x80, 0x00, 0x00, 0x13, 0x01, 0x01, 0xf3, 0x23, 0x34, 0x11, 0x0d, 0x23, 0x34, 0x11, 0x08, 0x23, 0x30, 0x81, 0x08, 0x23, 0x3c, 0x91, 0x06, 0x23, 0x38, 0x21, 0x07, 0x23, 0x34, 0x31, 0x07, 0x23, 0x30, 0x41, 0x07, 0x23, 0x3c, 0x51, 0x05, 0x23, 0x38, 0x61, 0x05, 0x23, 0x34, 0x71, 0x05, 0x23, 0x30, 0x81, 0x05, 0x23, 0x3c, 0x91, 0x03, 0x23, 0x3c, 0xb1, 0x08, 0x23, 0x30, 0xc1, 0x0a, 0x23, 0x34, 0xd1, 0x0a, 0x23, 0x38, 0xe1, 0x0a, 0x23, 0x3c, 0xf1, 0x0a, 0x23, 0x30, 0x01, 0x0d, 0x93, 0x08, 0x81, 0x09, 0x83, 0x45, 0x05, 0x00, 0x23, 0x34, 0x11, 0x01, 0x63, 0x88, 0x05, 0x04, 0x13, 0x04, 0x50, 0x02, 0xb7, 0x0a, 0x50, 0x02, 0x13, 0x0b, 0x90, 0x00, 0x93, 0x09, 0x40, 0x06, 0x13, 0x09, 0xf0, 0x01, 0x93, 0x04, 0xf0, 0x01, 0x13, 0x00, 0x00, 0x00, 0x93, 0x0b, 0x15, 0x00, 0x63, 0x82, 0x85, 0x06, 0x83, 0xa7, 0xca, 0x07, 0x93, 0xf7, 0x27, 0x00, 0xe3, 0x8c, 0x07, 0xfe, 0x93, 0x87, 0x0b, 0x00, 0x9b, 0x85, 0x05, 0x00, 0x93, 0x0b, 0x05, 0x00, 0x23, 0xa0, 0xba, 0x00, 0x13, 0x85, 0x07, 0x00, 0x83, 0xc5, 0x1b, 0x00, 0xe3, 0x9a, 0x05, 0xfc, 0x83, 0x30, 0x81, 0x08, 0x03, 0x34, 0x01, 0x08, 0x83, 0x34, 0x81, 0x07, 0x03, 0x39, 0x01, 0x07, 0x83, 0x39, 0x81, 0x06, 0x03, 0x3a, 0x01, 0x06, 0x83, 0x3a, 0x81, 0x05, 0x03, 0x3b, 0x01, 0x05, 0x83, 0x3b, 0x81, 0x04, 0x03, 0x3c, 0x01, 0x04, 0x83, 0x3c, 0x81, 0x03, 0x13, 0x05, 0x00, 0x00, 0x13, 0x01, 0x01, 0x0d, 0x67, 0x80, 0x00, 0x00, 0x03, 0x46, 0x15, 0x00, 0x13, 0x0c, 0x00, 0x00, 0x1b, 0x07, 0x06, 0xfd, 0x93, 0x77, 0xf7, 0x0f, 0x63, 0x7e, 0xfb, 0x0e, 0x13, 0x08, 0x06, 0x00, 0x63, 0x14, 0x36, 0x0d, 0x93, 0x8c, 0x08, 0x00, 0x0b, 0xca, 0x8c, 0x58, 0x13, 0x06, 0x00, 0x02, 0x93, 0x05, 0x00, 0x02, 0x13, 0x05, 0x01, 0x01, 0xef, 0xc0, 0x9f, 0xe5, 0x93, 0x88, 0x0c, 0x00, 0x13, 0x06, 0xa0, 0x00, 0x13, 0x05, 0x01, 0x01, 0x93, 0x06, 0x00, 0x00, 0x6f, 0x00, 0xc0, 0x00, 0x93, 0x86, 0x05, 0x00, 0x13, 0x8a, 0x07, 0x00, 0x3b, 0x77, 0xca, 0x02, 0x9b, 0x85, 0x16, 0x00, 0x93, 0x77, 0xf7, 0x0f, 0x33, 0x37, 0xeb, 0x00, 0x13, 0x88, 0x77, 0x05, 0x13, 0x47, 0x17, 0x00, 0x93, 0x87, 0x07, 0x03, 0x8b, 0x17, 0xe8, 0x40, 0x8b, 0x57, 0x15, 0x18, 0xbb, 0x57, 0xca, 0x02, 0xe3, 0x78, 0xca, 0xfc, 0x63, 0x06, 0x0c, 0x02, 0x33, 0x27, 0x89, 0x01, 0x13, 0x47, 0x17, 0x00, 0x93, 0x07, 0x0c, 0x00, 0x8b, 0x97, 0xe4, 0x40, 0x1b, 0x87, 0x07, 0x00, 0x33, 0x27, 0xb7, 0x00, 0x13, 0x47, 0x17, 0x00, 0x8b, 0x97, 0xe5, 0x40, 0x9b, 0x85, 0x07, 0x00, 0x9b, 0x86, 0xf7, 0xff, 0x93, 0x07, 0x01, 0x01, 0x0b, 0xd0, 0xb7, 0x00, 0x13, 0x06, 0xf1, 0x00, 0xb3, 0x87, 0xd7, 0x00, 0x03, 0xc7, 0x07, 0x00, 0x13, 0x00, 0x00, 0x00, 0x83, 0xa6, 0xca, 0x07, 0x93, 0xf6, 0x26, 0x00, 0xe3, 0x8c, 0x06, 0xfe, 0x23, 0xa0, 0xea, 0x00, 0x93, 0x87, 0xf7, 0xff, 0xe3, 0x12, 0xf6, 0xfe, 0x13, 0x85, 0x1b, 0x00, 0x6f, 0xf0, 0x5f, 0xee, 0x93, 0x07, 0x80, 0x07, 0x63, 0x1e, 0xf6, 0x04, 0x93, 0x8c, 0x08, 0x00, 0x0b, 0xca, 0x8c, 0x58, 0x13, 0x06, 0x00, 0x02, 0x93, 0x05, 0x00, 0x02, 0x13, 0x05, 0x01, 0x01, 0xef, 0xc0, 0xdf, 0xd8, 0x93, 0x88, 0x0c, 0x00, 0x13, 0x06, 0x00, 0x01, 0x6f, 0xf0, 0x5f, 0xf3, 0x93, 0x86, 0x0b, 0x00, 0x9b, 0x17, 0x2c, 0x00, 0xbb, 0x87, 0x87, 0x01, 0x0b, 0xc6, 0x16, 0x88, 0x9b, 0x97, 0x17, 0x00, 0x3b, 0x0c, 0xf7, 0x00, 0x1b, 0x07, 0x06, 0xfd, 0x93, 0x77, 0xf7, 0x0f, 0xe3, 0x72, 0xfb, 0xfe, 0xbb, 0x86, 0x76, 0x41, 0xb3, 0x8b, 0xdb, 0x00, 0x03, 0xc6, 0x0b, 0x00, 0x6f, 0xf0, 0x9f, 0xed, 0xb3, 0x87, 0xab, 0x40, 0x13, 0x07, 0x05, 0x00, 0x33, 0x05, 0xf5, 0x00, 0x63, 0x52, 0xf0, 0x02, 0x83, 0x46, 0x07, 0x00, 0x13, 0x00, 0x00, 0x00, 0x83, 0xa7, 0xca, 0x07, 0x93, 0xf7, 0x27, 0x00, 0xe3, 0x8c, 0x07, 0xfe, 0x23, 0xa0, 0xda, 0x00, 0x13, 0x07, 0x17, 0x00, 0xe3, 0x12, 0xe5, 0xfe, 0x93, 0x87, 0x1b, 0x00, 0x13, 0x85, 0x0b, 0x00, 0x63, 0x04, 0x08, 0x00, 0x93, 0x05, 0x06, 0x00, 0x93, 0x8b, 0x07, 0x00, 0x6f, 0xf0, 0xdf, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf3, 0x27, 0x10, 0xc0, 0x0b, 0x15, 0xa5, 0x02, 0x0b, 0x95, 0xa7, 0x06, 0x13, 0x00, 0x00, 0x00, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf5, 0xfe, 0x67, 0x80, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0xb7, 0x27, 0x00, 0x02, 0x13, 0x07, 0x10, 0x30, 0x23, 0xa0, 0xe7, 0xd0, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x87, 0x01, 0x13, 0x00, 0x00, 0x00, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0x37, 0x17, 0x00, 0x02, 0x83, 0x27, 0x07, 0x00, 0xb7, 0x06, 0x00, 0xf8, 0x93, 0x86, 0xf6, 0xff, 0xb3, 0xf7, 0xd7, 0x00, 0x23, 0x20, 0xf7, 0x00, 0x83, 0x27, 0x07, 0x00, 0xb7, 0x06, 0x00, 0x40, 0xb3, 0xe7, 0xd7, 0x00, 0x23, 0x20, 0xf7, 0x00, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x87, 0x07, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0x37, 0x17, 0x00, 0x02, 0x83, 0x27, 0x07, 0x00, 0xb7, 0x06, 0xfc, 0xff, 0x93, 0x86, 0xc6, 0x0f, 0xb3, 0xf7, 0xd7, 0x00, 0xb7, 0x36, 0x00, 0x00, 0x93, 0x86, 0x06, 0x90, 0xb3, 0xe7, 0xd7, 0x00, 0x23, 0x20, 0xf7, 0x00, 0x83, 0x27, 0x07, 0x00, 0xb7, 0x06, 0x00, 0x20, 0xb3, 0xe7, 0xd7, 0x00, 0x23, 0x20, 0xf7, 0x00, 0x83, 0x27, 0x07, 0x00, 0xb7, 0x06, 0x00, 0x80, 0xb3, 0xe7, 0xd7, 0x00, 0x23, 0x20, 0xf7, 0x00, 0xb7, 0x16, 0x00, 0x02, 0x37, 0x07, 0x00, 0x10, 0x13, 0x00, 0x00, 0x00, 0x83, 0xa7, 0x06, 0x00, 0xb3, 0xf7, 0xe7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0xe3, 0x8a, 0x07, 0xfe, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x07, 0x1e, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0x37, 0x17, 0x00, 0x02, 0x83, 0x27, 0x07, 0x00, 0xb7, 0x06, 0x00, 0x08, 0xb3, 0xe7, 0xd7, 0x00, 0x23, 0x20, 0xf7, 0x00, 0x83, 0x27, 0x07, 0x00, 0xb7, 0x06, 0x00, 0xe0, 0x93, 0x86, 0xf6, 0xff, 0xb3, 0xf7, 0xd7, 0x00, 0x23, 0x20, 0xf7, 0x00, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x87, 0x01, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0xb7, 0x26, 0x00, 0x02, 0x83, 0xa7, 0x06, 0xd0, 0x37, 0x07, 0x00, 0xf9, 0x13, 0x07, 0x07, 0xcf, 0xb3, 0xf7, 0xe7, 0x00, 0x37, 0x07, 0x00, 0x05, 0x13, 0x07, 0x07, 0x10, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0xa0, 0xf6, 0xd0, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x87, 0x01, 0x13, 0x00, 0x00, 0x00, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0xb7, 0x17, 0x00, 0x02, 0x03, 0xa7, 0x07, 0x02, 0x63, 0x48, 0x07, 0x08, 0x83, 0xa6, 0x07, 0x51, 0x37, 0x07, 0x00, 0xfd, 0x13, 0x07, 0xf7, 0xff, 0x33, 0x77, 0xd7, 0x00, 0x0b, 0x37, 0x07, 0x7c, 0x93, 0x86, 0x07, 0x51, 0x23, 0x20, 0xd7, 0x00, 0x37, 0x67, 0x00, 0x00, 0x13, 0x07, 0x07, 0x30, 0x23, 0xa0, 0xe7, 0x02, 0x03, 0xa7, 0x07, 0x02, 0xb7, 0x06, 0x00, 0x20, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xa0, 0xe7, 0x02, 0x03, 0xa7, 0x07, 0x02, 0xb7, 0x06, 0x00, 0x80, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xa0, 0xe7, 0x02, 0xb7, 0x16, 0x00, 0x02, 0x37, 0x07, 0x00, 0x10, 0x13, 0x00, 0x00, 0x00, 0x83, 0xa7, 0x06, 0x02, 0xb3, 0xf7, 0xe7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0xe3, 0x8a, 0x07, 0xfe, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x07, 0x1e, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0xb7, 0x16, 0x00, 0x02, 0x83, 0xa7, 0x06, 0x02, 0x37, 0x07, 0x00, 0xe0, 0x13, 0x07, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x23, 0xa0, 0xf6, 0x02, 0xb7, 0x17, 0x00, 0x02, 0x13, 0x07, 0x20, 0x00, 0x23, 0xa8, 0xe7, 0x50, 0x03, 0xa7, 0x07, 0x51, 0xb7, 0x06, 0x00, 0x03, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xa8, 0xe7, 0x50, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x87, 0x01, 0x13, 0x00, 0x00, 0x00, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0xb7, 0x17, 0x00, 0x02, 0x13, 0x07, 0x20, 0x10, 0x23, 0xa0, 0xe7, 0x52, 0x03, 0xa7, 0x07, 0x52, 0xb7, 0x06, 0x00, 0x03, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xa0, 0xe7, 0x52, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x87, 0x01, 0x13, 0x00, 0x00, 0x00, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0x37, 0x17, 0x00, 0x02, 0x83, 0x27, 0xc7, 0x70, 0xb7, 0x06, 0x01, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x23, 0x26, 0xf7, 0x70, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x07, 0x1e, 0x13, 0x00, 0x00, 0x00, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0x37, 0x17, 0x00, 0x02, 0x83, 0x27, 0xc7, 0x70, 0xb7, 0x06, 0x00, 0x40, 0x93, 0xe7, 0x17, 0x00, 0x23, 0x26, 0xf7, 0x70, 0x83, 0x27, 0x07, 0x54, 0xb3, 0xe7, 0xd7, 0x00, 0x23, 0x20, 0xf7, 0x54, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x87, 0x01, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0xb7, 0x17, 0x00, 0x00, 0x37, 0x27, 0x00, 0x02, 0x93, 0x87, 0x77, 0xd8, 0x23, 0x22, 0xf7, 0x80, 0xb7, 0x17, 0x00, 0x02, 0x03, 0xa7, 0x07, 0x02, 0x63, 0x44, 0x07, 0x06, 0x03, 0xa7, 0x07, 0x02, 0xb7, 0x06, 0x00, 0xc0, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xa0, 0xe7, 0x02, 0x03, 0xa7, 0x07, 0x02, 0xb7, 0x06, 0x00, 0x20, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xa0, 0xe7, 0x02, 0xb7, 0x16, 0x00, 0x02, 0x37, 0x07, 0x00, 0x10, 0x13, 0x00, 0x00, 0x00, 0x83, 0xa7, 0x06, 0x02, 0xb3, 0xf7, 0xe7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0xe3, 0x8a, 0x07, 0xfe, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x07, 0x1e, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0xb7, 0x16, 0x00, 0x02, 0x83, 0xa7, 0x06, 0x02, 0x37, 0x07, 0x00, 0xe0, 0x13, 0x07, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x23, 0xa0, 0xf6, 0x02, 0xb7, 0x17, 0x00, 0x02, 0x03, 0xa7, 0x07, 0x04, 0x63, 0x44, 0x07, 0x06, 0x03, 0xa7, 0x07, 0x04, 0xb7, 0x06, 0x00, 0xc0, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xa0, 0xe7, 0x04, 0x03, 0xa7, 0x07, 0x04, 0xb7, 0x06, 0x00, 0x20, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xa0, 0xe7, 0x04, 0xb7, 0x16, 0x00, 0x02, 0x37, 0x07, 0x00, 0x10, 0x13, 0x00, 0x00, 0x00, 0x83, 0xa7, 0x06, 0x04, 0xb3, 0xf7, 0xe7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0xe3, 0x8a, 0x07, 0xfe, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x07, 0x1e, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0xb7, 0x16, 0x00, 0x02, 0x83, 0xa7, 0x06, 0x04, 0x37, 0x07, 0x00, 0xe0, 0x13, 0x07, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x23, 0xa0, 0xf6, 0x04, 0xb7, 0x17, 0x00, 0x02, 0x03, 0xa7, 0x87, 0x04, 0x63, 0x44, 0x07, 0x06, 0x03, 0xa7, 0x87, 0x04, 0xb7, 0x06, 0x00, 0xc0, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xa4, 0xe7, 0x04, 0x03, 0xa7, 0x87, 0x04, 0xb7, 0x06, 0x00, 0x20, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xa4, 0xe7, 0x04, 0xb7, 0x16, 0x00, 0x02, 0x37, 0x07, 0x00, 0x10, 0x13, 0x00, 0x00, 0x00, 0x83, 0xa7, 0x86, 0x04, 0xb3, 0xf7, 0xe7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0xe3, 0x8a, 0x07, 0xfe, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x07, 0x1e, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0xb7, 0x16, 0x00, 0x02, 0x83, 0xa7, 0x86, 0x04, 0x37, 0x07, 0x00, 0xe0, 0x13, 0x07, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x23, 0xa4, 0xf6, 0x04, 0xb7, 0x17, 0x00, 0x02, 0x03, 0xa7, 0x87, 0x05, 0x63, 0x44, 0x07, 0x06, 0x03, 0xa7, 0x87, 0x05, 0xb7, 0x06, 0x00, 0xc0, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xac, 0xe7, 0x04, 0x03, 0xa7, 0x87, 0x05, 0xb7, 0x06, 0x00, 0x20, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xac, 0xe7, 0x04, 0xb7, 0x16, 0x00, 0x02, 0x37, 0x07, 0x00, 0x10, 0x13, 0x00, 0x00, 0x00, 0x83, 0xa7, 0x86, 0x05, 0xb3, 0xf7, 0xe7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0xe3, 0x8a, 0x07, 0xfe, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x07, 0x1e, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0xb7, 0x16, 0x00, 0x02, 0x83, 0xa7, 0x86, 0x05, 0x37, 0x07, 0x00, 0xe0, 0x13, 0x07, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x23, 0xac, 0xf6, 0x04, 0xb7, 0x17, 0x00, 0x02, 0x03, 0xa7, 0x87, 0x07, 0x63, 0x44, 0x07, 0x06, 0x03, 0xa7, 0x87, 0x07, 0xb7, 0x06, 0x00, 0xc0, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xac, 0xe7, 0x06, 0x03, 0xa7, 0x87, 0x07, 0xb7, 0x06, 0x00, 0x20, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xac, 0xe7, 0x06, 0xb7, 0x16, 0x00, 0x02, 0x37, 0x07, 0x00, 0x10, 0x13, 0x00, 0x00, 0x00, 0x83, 0xa7, 0x86, 0x07, 0xb3, 0xf7, 0xe7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0xe3, 0x8a, 0x07, 0xfe, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x07, 0x1e, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0xb7, 0x16, 0x00, 0x02, 0x83, 0xa7, 0x86, 0x07, 0x37, 0x07, 0x00, 0xe0, 0x13, 0x07, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x23, 0xac, 0xf6, 0x06, 0xb7, 0x17, 0x00, 0x02, 0x03, 0xa7, 0x07, 0x08, 0x63, 0x44, 0x07, 0x06, 0x03, 0xa7, 0x07, 0x08, 0xb7, 0x06, 0x00, 0xc0, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xa0, 0xe7, 0x08, 0x03, 0xa7, 0x07, 0x08, 0xb7, 0x06, 0x00, 0x20, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xa0, 0xe7, 0x08, 0xb7, 0x16, 0x00, 0x02, 0x37, 0x07, 0x00, 0x10, 0x13, 0x00, 0x00, 0x00, 0x83, 0xa7, 0x06, 0x08, 0xb3, 0xf7, 0xe7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0xe3, 0x8a, 0x07, 0xfe, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x07, 0x1e, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0xb7, 0x16, 0x00, 0x02, 0x83, 0xa7, 0x06, 0x08, 0x37, 0x07, 0x00, 0xe0, 0x13, 0x07, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x23, 0xa0, 0xf6, 0x08, 0x67, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x93, 0x05, 0x05, 0x00, 0x13, 0x05, 0x00, 0x00, 0x6f, 0xf0, 0x4f, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x08, 0x16, 0x02, 0x00, 0x4c, 0x16, 0x02, 0x00, 0x5c, 0x16, 0x02, 0x00, 0x78, 0x16, 0x02, 0x00, 0x6c, 0x16, 0x02, 0x00, 0x90, 0x1c, 0x02, 0x00, 0x9c, 0x1c, 0x02, 0x00, 0xa8, 0x1c, 0x02, 0x00, 0xb4, 0x1c, 0x02, 0x00, 0x58, 0x1c, 0x02, 0x00, 0x68, 0x1c, 0x02, 0x00, 0x68, 0x1c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x09, 0x03, 0x07, 0x08, 0x12, 0x04, 0x0d, 0x05, 0x06, 0x0a, 0x02, 0x0e, 0x0c, 0x00, 0x00, 0x15, 0x11, 0x14, 0x13, 0x0b, 0x16, 0x00, 0x00, 0x04, 0x09, 0x03, 0x07, 0x08, 0x12, 0x01, 0x0d, 0x02, 0x06, 0x0a, 0x05, 0x0e, 0x0c, 0x00, 0x00, 0x15, 0x11, 0x14, 0x13, 0x0b, 0x16, 0x00, 0x00, 0x01, 0x07, 0x08, 0x0c, 0x0a, 0x12, 0x04, 0x0d, 0x05, 0x06, 0x03, 0x02, 0x09, 0x00, 0x00, 0x00, 0x15, 0x11, 0x14, 0x13, 0x0b, 0x16, 0x00, 0x00, 0x04, 0x0c, 0x0a, 0x07, 0x08, 0x12, 0x01, 0x0d, 0x02, 0x06, 0x03, 0x05, 0x09, 0x00, 0x00, 0x00, 0x15, 0x11, 0x14, 0x13, 0x0b, 0x16, 0x00, 0x00, 0x0d, 0x02, 0x07, 0x09, 0x0c, 0x13, 0x05, 0x01, 0x06, 0x03, 0x04, 0x08, 0x0a, 0x00, 0x00, 0x00, 0x15, 0x16, 0x12, 0x11, 0x0b, 0x14, 0x00, 0x00, 0x03, 0x0a, 0x07, 0x0d, 0x09, 0x0b, 0x01, 0x02, 0x04, 0x06, 0x08, 0x05, 0x0c, 0x00, 0x00, 0x00, 0x14, 0x01, 0x00, 0x15, 0x16, 0x11, 0x00, 0x00, 0x03, 0x02, 0x04, 0x07, 0x09, 0x01, 0x11, 0x0c, 0x12, 0x0e, 0x0d, 0x08, 0x0f, 0x06, 0x0a, 0x05, 0x13, 0x16, 0x10, 0x15, 0x14, 0x0b, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x41, 0x00, 0x00, 0x00, 0x48, 0x73, 0x0e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x92, 0x19, 0x47, 0x00, 0x0c, 0xa1, 0x31, 0x01, 0x41, 0x70, 0x05, 0x00, 0x96, 0x78, 0x78, 0xb4, 0x48, 0x00, 0x00, 0x00, 0x1e, 0x12, 0x21, 0x16, 0x64, 0x64, 0x72, 0x5f, 0x65, 0x66, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0d, 0x0a, 0x00, 0x00, 0x00, 0x5a, 0x51, 0x20, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2c, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x20, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x20, 0x32, 0x34, 0x30, 0x20, 0x6f, 0x68, 0x6d, 0x20, 0x72, 0x65, 0x73, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x2e, 0x0d, 0x0a, 0x00, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x44, 0x51, 0x21, 0x0d, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x44, 0x51, 0x21, 0x0d, 0x0a, 0x00, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x68, 0x61, 0x6c, 0x66, 0x20, 0x44, 0x51, 0x21, 0x0d, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x64, 0x75, 0x61, 0x6c, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x68, 0x61, 0x6c, 0x66, 0x20, 0x44, 0x51, 0x21, 0x0d, 0x0a, 0x00, 0x44, 0x58, 0x30, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x25, 0x64, 0x0d, 0x0a, 0x00, 0x44, 0x58, 0x31, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x25, 0x64, 0x0d, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x46, 0x41, 0x49, 0x4c, 0x2e, 0x0d, 0x0a, 0x00, 0x25, 0x78, 0x20, 0x21, 0x3d, 0x20, 0x25, 0x78, 0x20, 0x61, 0x74, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x25, 0x78, 0x0d, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x4f, 0x4b, 0x2e, 0x0d, 0x0a, 0x00, 0x5b, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x3a, 0x20, 0x30, 0x21, 0x0d, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x25, 0x64, 0x20, 0x72, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x0d, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x25, 0x64, 0x20, 0x62, 0x61, 0x6e, 0x6b, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x0d, 0x0a, 0x00, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x25, 0x64, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x4b, 0x42, 0x20, 0x0d, 0x0a, 0x00, 0x72, 0x61, 0x6e, 0x6b, 0x31, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x30, 0x0d, 0x0a, 0x00, 0x00, 0x72, 0x61, 0x6e, 0x6b, 0x31, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x30, 0x0d, 0x0a, 0x00, 0x5b, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x61, 0x6e, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x26, 0x77, 0x69, 0x64, 0x74, 0x68, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x20, 0x21, 0x0d, 0x0a, 0x00, 0x00, 0x5b, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x61, 0x6e, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x20, 0x21, 0x0d, 0x0a, 0x00, 0x5a, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x0d, 0x0a, 0x00, 0x00, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x20, 0x5a, 0x51, 0x21, 0x21, 0x0d, 0x0a, 0x00, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x6d, 0x75, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x28, 0x29, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x0d, 0x0a, 0x00, 0x56, 0x30, 0x2e, 0x32, 0x34, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x42, 0x4f, 0x4f, 0x54, 0x20, 0x44, 0x52, 0x49, 0x56, 0x45, 0x20, 0x49, 0x4e, 0x46, 0x4f, 0x3a, 0x20, 0x25, 0x73, 0x0d, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x43, 0x4c, 0x4b, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x4d, 0x48, 0x7a, 0x0d, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x54, 0x79, 0x70, 0x65, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x28, 0x32, 0x3a, 0x44, 0x44, 0x52, 0x32, 0x2c, 0x33, 0x3a, 0x44, 0x44, 0x52, 0x33, 0x29, 0x0d, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x43, 0x20, 0x5a, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0d, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x43, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x4f, 0x44, 0x54, 0x20, 0x20, 0x6f, 0x66, 0x66, 0x2e, 0x0d, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x4f, 0x44, 0x54, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x30, 0x78, 0x25, 0x78, 0x2e, 0x0d, 0x0a, 0x00, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x4f, 0x44, 0x54, 0x20, 0x6f, 0x66, 0x66, 0x2e, 0x0d, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x3a, 0x20, 0x31, 0x20, 0x21, 0x0d, 0x0a, 0x00, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x53, 0x49, 0x5a, 0x45, 0x20, 0x3d, 0x25, 0x64, 0x20, 0x4d, 0x0d, 0x0a, 0x00, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x41, 0x75, 0x74, 0x6f, 0x20, 0x53, 0x52, 0x0d, 0x0a, 0x00, 0x00 }; static const uint8_t f133_ddr_payload[] = { 0x37, 0x03, 0x40, 0x00, 0x73, 0x20, 0x03, 0x7c, 0x37, 0x03, 0x03, 0x00, 0x1b, 0x03, 0x33, 0x01, 0x73, 0x20, 0x23, 0x7c, 0x6f, 0x00, 0x40, 0x08, 0x10, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xf9, 0x7b, 0x7b, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x0e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x19, 0x47, 0x00, 0x0c, 0xa1, 0x31, 0x01, 0x41, 0x70, 0x05, 0x00, 0x96, 0x78, 0x78, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x48, 0x48, 0x48, 0x48, 0x48, 0x00, 0x00, 0x00, 0x1e, 0x12, 0x21, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x03, 0x00, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 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, 0x00, 0x13, 0x01, 0x01, 0xfe, 0x23, 0x34, 0x81, 0x00, 0x23, 0x38, 0x91, 0x00, 0x23, 0x3c, 0x11, 0x00, 0x13, 0x04, 0x05, 0x00, 0xb7, 0x02, 0x09, 0x07, 0x9b, 0x82, 0x82, 0x10, 0x23, 0xa0, 0x02, 0x00, 0xef, 0x30, 0x80, 0x13, 0xef, 0x30, 0x40, 0x49, 0x17, 0x05, 0x00, 0x00, 0x13, 0x05, 0x85, 0xf5, 0xef, 0x30, 0x90, 0x1c, 0x83, 0x30, 0x81, 0x01, 0x03, 0x34, 0x81, 0x00, 0x83, 0x34, 0x01, 0x01, 0x13, 0x01, 0x01, 0x02, 0x67, 0x80, 0x00, 0x00, 0x93, 0x0f, 0x05, 0x00, 0x93, 0x36, 0x06, 0x08, 0x63, 0x9a, 0x06, 0x0c, 0x93, 0xf6, 0x7f, 0x00, 0x13, 0xf7, 0x75, 0x00, 0x63, 0x94, 0xe6, 0x0c, 0x63, 0x84, 0x06, 0x02, 0x93, 0xf6, 0x85, 0xff, 0x93, 0x86, 0x86, 0x00, 0x33, 0x87, 0xb6, 0x40, 0x83, 0x87, 0x05, 0x00, 0x93, 0x85, 0x15, 0x00, 0x23, 0x80, 0xff, 0x00, 0x93, 0x8f, 0x1f, 0x00, 0xe3, 0xe8, 0xd5, 0xfe, 0x33, 0x06, 0xe6, 0x40, 0x13, 0x77, 0x06, 0xf8, 0x63, 0x0c, 0x07, 0x08, 0xb3, 0x86, 0xe5, 0x00, 0x03, 0xb7, 0x05, 0x00, 0x83, 0xb7, 0x85, 0x00, 0x03, 0xb8, 0x05, 0x01, 0x83, 0xb8, 0x85, 0x01, 0x83, 0xb2, 0x05, 0x02, 0x03, 0xb3, 0x85, 0x02, 0x83, 0xb3, 0x05, 0x03, 0x03, 0xbe, 0x85, 0x03, 0x83, 0xbe, 0x05, 0x04, 0x03, 0xbf, 0x85, 0x04, 0x23, 0xb0, 0xef, 0x00, 0x23, 0xb4, 0xff, 0x00, 0x23, 0xb8, 0x0f, 0x01, 0x23, 0xbc, 0x1f, 0x01, 0x23, 0xb0, 0x5f, 0x02, 0x23, 0xb4, 0x6f, 0x02, 0x23, 0xb8, 0x7f, 0x02, 0x23, 0xbc, 0xcf, 0x03, 0x23, 0xb0, 0xdf, 0x05, 0x23, 0xb4, 0xef, 0x05, 0x03, 0xb7, 0x05, 0x05, 0x83, 0xb7, 0x85, 0x05, 0x03, 0xb8, 0x05, 0x06, 0x83, 0xb8, 0x85, 0x06, 0x83, 0xb2, 0x05, 0x07, 0x03, 0xb3, 0x85, 0x07, 0x93, 0x85, 0x05, 0x08, 0x23, 0xb8, 0xef, 0x04, 0x23, 0xbc, 0xff, 0x04, 0x23, 0xb0, 0x0f, 0x07, 0x23, 0xb4, 0x1f, 0x07, 0x23, 0xb8, 0x5f, 0x06, 0x23, 0xbc, 0x6f, 0x06, 0x93, 0x8f, 0x0f, 0x08, 0xe3, 0xec, 0xd5, 0xf6, 0x13, 0x76, 0xf6, 0x07, 0x63, 0x02, 0x06, 0x04, 0xb3, 0x86, 0xc5, 0x00, 0xb3, 0xe7, 0xf5, 0x01, 0xb3, 0xe7, 0xd7, 0x00, 0x93, 0xf7, 0x37, 0x00, 0x63, 0x9e, 0x07, 0x00, 0x03, 0xa7, 0x05, 0x00, 0x93, 0x85, 0x45, 0x00, 0x23, 0xa0, 0xef, 0x00, 0x93, 0x8f, 0x4f, 0x00, 0xe3, 0xe8, 0xd5, 0xfe, 0x67, 0x80, 0x00, 0x00, 0x03, 0x87, 0x05, 0x00, 0x93, 0x85, 0x15, 0x00, 0x23, 0x80, 0xef, 0x00, 0x93, 0x8f, 0x1f, 0x00, 0xe3, 0xe8, 0xd5, 0xfe, 0x67, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x93, 0x02, 0x05, 0x00, 0x93, 0x36, 0x06, 0x01, 0x63, 0x9e, 0x06, 0x0e, 0x93, 0x86, 0x72, 0x00, 0x93, 0xf6, 0x86, 0xff, 0x63, 0x8c, 0x56, 0x00, 0x33, 0x87, 0x56, 0x40, 0x23, 0x80, 0xb2, 0x00, 0x93, 0x82, 0x12, 0x00, 0xe3, 0xec, 0xd2, 0xfe, 0x33, 0x06, 0xe6, 0x40, 0x93, 0xf5, 0xf5, 0x0f, 0x93, 0x96, 0x85, 0x00, 0xb3, 0xe5, 0xb6, 0x00, 0x93, 0x96, 0x05, 0x01, 0xb3, 0xe5, 0xb6, 0x00, 0x93, 0x96, 0x05, 0x02, 0xb3, 0xe5, 0xb6, 0x00, 0x13, 0x77, 0x86, 0xff, 0xb3, 0x86, 0xe2, 0x00, 0x13, 0x77, 0x87, 0x0f, 0x63, 0x02, 0x07, 0x02, 0x33, 0x07, 0xe0, 0x40, 0x13, 0x07, 0x07, 0x10, 0xb3, 0x82, 0xe2, 0x40, 0x97, 0x07, 0x00, 0x00, 0x93, 0x87, 0x47, 0x01, 0x13, 0x57, 0x17, 0x00, 0xb3, 0x87, 0xe7, 0x00, 0x67, 0x80, 0x07, 0x00, 0x23, 0xb0, 0xb2, 0x00, 0x23, 0xb4, 0xb2, 0x00, 0x23, 0xb8, 0xb2, 0x00, 0x23, 0xbc, 0xb2, 0x00, 0x23, 0xb0, 0xb2, 0x02, 0x23, 0xb4, 0xb2, 0x02, 0x23, 0xb8, 0xb2, 0x02, 0x23, 0xbc, 0xb2, 0x02, 0x23, 0xb0, 0xb2, 0x04, 0x23, 0xb4, 0xb2, 0x04, 0x23, 0xb8, 0xb2, 0x04, 0x23, 0xbc, 0xb2, 0x04, 0x23, 0xb0, 0xb2, 0x06, 0x23, 0xb4, 0xb2, 0x06, 0x23, 0xb8, 0xb2, 0x06, 0x23, 0xbc, 0xb2, 0x06, 0x23, 0xb0, 0xb2, 0x08, 0x23, 0xb4, 0xb2, 0x08, 0x23, 0xb8, 0xb2, 0x08, 0x23, 0xbc, 0xb2, 0x08, 0x23, 0xb0, 0xb2, 0x0a, 0x23, 0xb4, 0xb2, 0x0a, 0x23, 0xb8, 0xb2, 0x0a, 0x23, 0xbc, 0xb2, 0x0a, 0x23, 0xb0, 0xb2, 0x0c, 0x23, 0xb4, 0xb2, 0x0c, 0x23, 0xb8, 0xb2, 0x0c, 0x23, 0xbc, 0xb2, 0x0c, 0x23, 0xb0, 0xb2, 0x0e, 0x23, 0xb4, 0xb2, 0x0e, 0x23, 0xb8, 0xb2, 0x0e, 0x23, 0xbc, 0xb2, 0x0e, 0x93, 0x82, 0x02, 0x10, 0xe3, 0xee, 0xd2, 0xf6, 0x13, 0x76, 0x76, 0x00, 0x63, 0x0a, 0x06, 0x00, 0xb3, 0x86, 0xc2, 0x00, 0x23, 0x80, 0xb2, 0x00, 0x93, 0x82, 0x12, 0x00, 0xe3, 0xec, 0xd2, 0xfe, 0x67, 0x80, 0x00, 0x00, 0x67, 0x80, 0x00, 0x00, 0x67, 0x80, 0x00, 0x00, 0x13, 0x05, 0xf0, 0xff, 0x67, 0x80, 0x00, 0x00, 0x93, 0x07, 0x00, 0x00, 0x63, 0x14, 0xf6, 0x00, 0x67, 0x80, 0x00, 0x00, 0x0b, 0xc7, 0xf5, 0x80, 0x0b, 0x57, 0xf5, 0x00, 0x93, 0x87, 0x17, 0x00, 0x6f, 0xf0, 0xdf, 0xfe, 0x0b, 0x35, 0x05, 0x7c, 0x6f, 0x30, 0xc0, 0x1d, 0x83, 0x27, 0x45, 0x00, 0x13, 0x01, 0x01, 0xff, 0x23, 0x34, 0x11, 0x00, 0x93, 0x06, 0x20, 0x00, 0x13, 0x07, 0xf0, 0x02, 0x63, 0x8a, 0xd7, 0x00, 0x93, 0x06, 0x30, 0x00, 0x13, 0x07, 0x90, 0x01, 0x63, 0x84, 0xd7, 0x00, 0x13, 0x07, 0x00, 0x00, 0x37, 0x06, 0x00, 0x03, 0x83, 0x27, 0x06, 0x15, 0x0f, 0x00, 0xa0, 0x0a, 0xb7, 0x06, 0xff, 0xff, 0x93, 0x86, 0xf6, 0x0f, 0xb3, 0xf7, 0xd7, 0x00, 0x1b, 0x17, 0x87, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0xe0, 0xff, 0x13, 0x07, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x23, 0x28, 0xf6, 0x14, 0x13, 0x05, 0x10, 0x00, 0xef, 0x30, 0x80, 0x17, 0x0f, 0x00, 0xa0, 0x0a, 0x83, 0x30, 0x81, 0x00, 0x13, 0x01, 0x01, 0x01, 0x67, 0x80, 0x00, 0x00, 0x83, 0x27, 0x05, 0x00, 0x93, 0xc5, 0xf5, 0xff, 0xb3, 0xf5, 0xf5, 0x00, 0xb3, 0xe5, 0xc5, 0x00, 0x23, 0x20, 0xb5, 0x00, 0x67, 0x80, 0x00, 0x00, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x27, 0x10, 0x03, 0x13, 0x07, 0xf0, 0xff, 0x23, 0xa0, 0xe7, 0x02, 0x0f, 0x00, 0x50, 0x05, 0x13, 0x07, 0xf0, 0x0f, 0x23, 0xa2, 0xe7, 0x02, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x01, 0x00, 0x1b, 0x07, 0xf7, 0xff, 0x23, 0xa4, 0xe7, 0x02, 0x13, 0x05, 0xa0, 0x00, 0x6f, 0x30, 0xc0, 0x11, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x27, 0x10, 0x03, 0x13, 0x07, 0x10, 0x00, 0x23, 0xa0, 0xe7, 0x02, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xa2, 0x07, 0x02, 0x0f, 0x00, 0x50, 0x05, 0x13, 0x05, 0xa0, 0x00, 0x23, 0xa4, 0x07, 0x02, 0x6f, 0x30, 0x40, 0x0f, 0x13, 0x01, 0x01, 0xfe, 0x37, 0x37, 0x10, 0x03, 0xb7, 0x25, 0x00, 0x00, 0xb7, 0x36, 0x10, 0x03, 0x23, 0x38, 0x91, 0x00, 0x23, 0x3c, 0x11, 0x00, 0x93, 0x04, 0x05, 0x00, 0x23, 0x34, 0x81, 0x00, 0x13, 0x07, 0x07, 0x31, 0x93, 0x85, 0x05, 0xe0, 0x13, 0x85, 0x46, 0x33, 0x03, 0x28, 0x07, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x83, 0xa7, 0x44, 0x05, 0x03, 0xa6, 0x84, 0x05, 0x9b, 0x97, 0x97, 0x00, 0x1b, 0x16, 0x16, 0x00, 0xb3, 0xf7, 0xb7, 0x00, 0x13, 0x76, 0xe6, 0x01, 0xb3, 0xe7, 0xc7, 0x00, 0xb3, 0xe7, 0x07, 0x01, 0x9b, 0x87, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x8b, 0x57, 0x47, 0x58, 0xe3, 0x16, 0xa7, 0xfc, 0xb7, 0x27, 0x00, 0x00, 0x37, 0x34, 0x10, 0x03, 0x93, 0x86, 0x06, 0x39, 0x13, 0x86, 0x07, 0xe0, 0x93, 0x05, 0x44, 0x3b, 0x03, 0xa5, 0x06, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x03, 0xa7, 0x44, 0x05, 0x83, 0xa7, 0x84, 0x05, 0x1b, 0x57, 0x47, 0x00, 0x9b, 0xd7, 0x47, 0x00, 0x1b, 0x17, 0x97, 0x00, 0x9b, 0x97, 0x17, 0x00, 0x33, 0x77, 0xc7, 0x00, 0x93, 0xf7, 0xe7, 0x01, 0x33, 0x67, 0xf7, 0x00, 0x33, 0x67, 0xa7, 0x00, 0x1b, 0x07, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x0b, 0xd7, 0x46, 0x58, 0xe3, 0x92, 0xb6, 0xfc, 0x83, 0x27, 0x04, 0x10, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0xfc, 0x13, 0x07, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x23, 0x20, 0xf4, 0x10, 0x83, 0x25, 0x44, 0x33, 0x0f, 0x00, 0xa0, 0x0a, 0x03, 0xd7, 0x64, 0x05, 0x83, 0xd7, 0xa4, 0x05, 0x1b, 0x17, 0x97, 0x00, 0x9b, 0x97, 0x17, 0x00, 0x33, 0x77, 0xc7, 0x00, 0x93, 0xf7, 0xe7, 0x01, 0x33, 0x67, 0xf7, 0x00, 0x33, 0x67, 0xb7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x2a, 0xe4, 0x32, 0x83, 0x25, 0x84, 0x33, 0x0f, 0x00, 0xa0, 0x0a, 0x03, 0xd7, 0x64, 0x05, 0x83, 0xd7, 0xa4, 0x05, 0x1b, 0x17, 0x97, 0x00, 0x9b, 0x97, 0x17, 0x00, 0x33, 0x77, 0xc7, 0x00, 0x93, 0xf7, 0xe7, 0x01, 0x33, 0x67, 0xf7, 0x00, 0x33, 0x67, 0xb7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x2c, 0xe4, 0x32, 0x83, 0xa5, 0x06, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x03, 0xa7, 0x44, 0x05, 0x83, 0xa7, 0x84, 0x05, 0x1b, 0x57, 0x47, 0x01, 0x9b, 0xd7, 0x47, 0x01, 0x1b, 0x17, 0x97, 0x00, 0x9b, 0x97, 0x17, 0x00, 0x33, 0x77, 0xc7, 0x00, 0x93, 0xf7, 0xe7, 0x01, 0x33, 0x67, 0xf7, 0x00, 0x33, 0x67, 0xb7, 0x00, 0x1b, 0x07, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xa0, 0xe6, 0x00, 0x83, 0x26, 0x84, 0x3b, 0x0f, 0x00, 0xa0, 0x0a, 0x83, 0xa7, 0x44, 0x05, 0x03, 0xa7, 0x84, 0x05, 0x9b, 0xd7, 0x47, 0x01, 0x1b, 0x57, 0x47, 0x01, 0x9b, 0x97, 0x97, 0x00, 0x1b, 0x17, 0x17, 0x00, 0xb3, 0xf7, 0xc7, 0x00, 0x13, 0x77, 0xe7, 0x01, 0xb3, 0xe7, 0xe7, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x2c, 0xf4, 0x3a, 0x83, 0x27, 0xc4, 0x33, 0x0f, 0x00, 0xa0, 0x0a, 0x03, 0xd7, 0x64, 0x05, 0xb7, 0x06, 0x00, 0x1e, 0x1b, 0x17, 0x97, 0x01, 0x33, 0x77, 0xd7, 0x00, 0x33, 0x67, 0xf7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x2e, 0xe4, 0x32, 0x03, 0x27, 0xc4, 0x3b, 0x0f, 0x00, 0xa0, 0x0a, 0x83, 0xa7, 0x44, 0x05, 0x9b, 0xd7, 0x47, 0x01, 0x9b, 0x97, 0x97, 0x01, 0xb3, 0xf7, 0xd7, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x2e, 0xf4, 0x3a, 0x83, 0x27, 0x04, 0x10, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0x04, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0x20, 0xf4, 0x10, 0x13, 0x05, 0x10, 0x00, 0xef, 0x20, 0x10, 0x6e, 0x37, 0x17, 0x00, 0x00, 0x37, 0x36, 0x10, 0x03, 0x13, 0x04, 0x04, 0x24, 0x13, 0x07, 0x07, 0xf0, 0x93, 0x06, 0xc6, 0x27, 0x83, 0x25, 0x04, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x83, 0xa7, 0x04, 0x05, 0x9b, 0xd7, 0x47, 0x00, 0x9b, 0x97, 0x87, 0x00, 0xb3, 0xf7, 0xe7, 0x00, 0xb3, 0xe7, 0xb7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x8b, 0x57, 0x44, 0x58, 0xe3, 0x1c, 0xd4, 0xfc, 0xb7, 0x17, 0x00, 0x00, 0xb7, 0x36, 0x10, 0x03, 0x93, 0x85, 0x07, 0xf0, 0x13, 0x06, 0x86, 0x22, 0x93, 0x87, 0x06, 0x24, 0x03, 0x25, 0x06, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x03, 0xa7, 0x04, 0x05, 0x1b, 0x57, 0x47, 0x00, 0x1b, 0x17, 0x87, 0x00, 0x33, 0x77, 0xb7, 0x00, 0x33, 0x67, 0xa7, 0x00, 0x1b, 0x07, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x0b, 0x57, 0x46, 0x58, 0xe3, 0x1c, 0xf6, 0xfc, 0x83, 0xa7, 0x86, 0x21, 0x0f, 0x00, 0xa0, 0x0a, 0x03, 0xa7, 0x04, 0x05, 0x1b, 0x17, 0x87, 0x00, 0x33, 0x77, 0xb7, 0x00, 0x33, 0x67, 0xf7, 0x00, 0x1b, 0x07, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xac, 0xe6, 0x20, 0x83, 0xa7, 0xc6, 0x21, 0x0f, 0x00, 0xa0, 0x0a, 0x03, 0xa7, 0x04, 0x05, 0x33, 0x77, 0xb7, 0x00, 0x33, 0x67, 0xf7, 0x00, 0x1b, 0x07, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xae, 0xe6, 0x20, 0x03, 0xa7, 0x06, 0x28, 0x0f, 0x00, 0xa0, 0x0a, 0x83, 0xa7, 0x04, 0x05, 0x9b, 0xd7, 0xc7, 0x00, 0x9b, 0x97, 0x87, 0x00, 0xb3, 0xf7, 0xb7, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x83, 0x30, 0x81, 0x01, 0x03, 0x34, 0x81, 0x00, 0x23, 0xa0, 0xf6, 0x28, 0x83, 0x34, 0x01, 0x01, 0x13, 0x01, 0x01, 0x02, 0x67, 0x80, 0x00, 0x00, 0x13, 0x01, 0x01, 0xe9, 0xb7, 0x45, 0x02, 0x00, 0x23, 0x30, 0x81, 0x16, 0x13, 0x06, 0x00, 0x0b, 0x13, 0x84, 0x05, 0xad, 0x13, 0x05, 0x01, 0x00, 0x93, 0x85, 0x05, 0xad, 0x23, 0x34, 0x11, 0x16, 0xef, 0xf0, 0xdf, 0x96, 0x13, 0x08, 0x01, 0x0b, 0x13, 0x06, 0x00, 0x0b, 0x93, 0x05, 0x04, 0x0b, 0x13, 0x05, 0x08, 0x00, 0xef, 0xf0, 0x9f, 0x95, 0xb7, 0x37, 0x10, 0x03, 0x13, 0x08, 0x05, 0x00, 0x03, 0xa7, 0x07, 0x10, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x06, 0x00, 0xfc, 0x93, 0x86, 0xf6, 0xff, 0x33, 0x77, 0xd7, 0x00, 0xb7, 0x35, 0x10, 0x03, 0x23, 0xa0, 0xe7, 0x10, 0x13, 0x05, 0x00, 0x00, 0x93, 0x87, 0x07, 0x31, 0x93, 0x08, 0xc0, 0x02, 0x13, 0x83, 0x05, 0x51, 0x13, 0x06, 0x05, 0x00, 0x93, 0x06, 0x00, 0x00, 0x0b, 0x47, 0xc8, 0x40, 0x0b, 0x4e, 0xc1, 0x40, 0x1b, 0x17, 0x87, 0x00, 0x3b, 0x07, 0xc7, 0x01, 0x0b, 0xce, 0xd7, 0x40, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x3b, 0x07, 0xc7, 0x01, 0x0b, 0xd7, 0xd7, 0x40, 0x93, 0x86, 0x46, 0x00, 0x13, 0x06, 0x46, 0x00, 0xe3, 0x9a, 0x16, 0xfd, 0x93, 0x87, 0x07, 0x08, 0x13, 0x05, 0xc5, 0x02, 0xe3, 0x90, 0x67, 0xfc, 0x83, 0xa7, 0x05, 0x10, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0x04, 0x83, 0x30, 0x81, 0x16, 0x03, 0x34, 0x01, 0x16, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0xa0, 0xf5, 0x10, 0x13, 0x01, 0x01, 0x17, 0x67, 0x80, 0x00, 0x00, 0xb7, 0x27, 0x10, 0x03, 0x03, 0xa7, 0xc7, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0xb7, 0xf6, 0xff, 0xff, 0x33, 0x77, 0xd7, 0x00, 0x83, 0x26, 0x05, 0x00, 0x9b, 0xd6, 0x16, 0x00, 0x9b, 0x86, 0xf6, 0xff, 0x33, 0x67, 0xd7, 0x00, 0x1b, 0x07, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xa6, 0xe7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x01, 0x00, 0x23, 0xa0, 0xe7, 0x20, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0x01, 0x1b, 0x07, 0x97, 0x00, 0x23, 0xa8, 0xe7, 0x20, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x06, 0x50, 0x00, 0x9b, 0x86, 0x46, 0x06, 0x23, 0xaa, 0xd7, 0x20, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x06, 0x00, 0x02, 0x1b, 0x06, 0xd6, 0x00, 0x23, 0xa8, 0xc7, 0x22, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x06, 0x60, 0x00, 0x1b, 0x06, 0x06, 0x10, 0x23, 0xaa, 0xc7, 0x22, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xa0, 0xe7, 0x24, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xa2, 0xd7, 0x24, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x06, 0x64, 0x00, 0x9b, 0x86, 0x96, 0x20, 0x23, 0xa0, 0xd7, 0x26, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x06, 0x20, 0x00, 0x9b, 0x86, 0x06, 0x04, 0x23, 0xa2, 0xd7, 0x26, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xa8, 0xe7, 0x28, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x40, 0x00, 0x1b, 0x07, 0x07, 0x08, 0x23, 0xaa, 0xe7, 0x28, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xa8, 0x07, 0x46, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xaa, 0x07, 0x46, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x37, 0x80, 0x0f, 0xb7, 0x37, 0x10, 0x03, 0x1b, 0x07, 0x57, 0xf0, 0x23, 0xa0, 0xe7, 0x1c, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0x0f, 0x1b, 0x07, 0xf7, 0x0f, 0x23, 0xa4, 0xe7, 0x1c, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0x3f, 0x1b, 0x07, 0xf7, 0x05, 0x23, 0xa8, 0xe7, 0x1c, 0x67, 0x80, 0x00, 0x00, 0xbb, 0x05, 0xb5, 0x02, 0x93, 0x07, 0x80, 0x3e, 0x3b, 0xf5, 0xf5, 0x02, 0xbb, 0xd5, 0xf5, 0x02, 0x33, 0x35, 0xa0, 0x00, 0x3b, 0x05, 0xb5, 0x00, 0x67, 0x80, 0x00, 0x00, 0x83, 0x27, 0xc5, 0x05, 0x13, 0x01, 0x01, 0xf3, 0x23, 0x30, 0x41, 0x0b, 0x23, 0x3c, 0x51, 0x09, 0x23, 0x30, 0x81, 0x09, 0x23, 0x38, 0xf1, 0x04, 0x23, 0x34, 0x11, 0x0c, 0x23, 0x30, 0x81, 0x0c, 0x23, 0x3c, 0x91, 0x0a, 0x23, 0x38, 0x21, 0x0b, 0x23, 0x34, 0x31, 0x0b, 0x23, 0x38, 0x61, 0x09, 0x23, 0x34, 0x71, 0x09, 0x23, 0x3c, 0x91, 0x07, 0x23, 0x38, 0xa1, 0x07, 0x23, 0x34, 0xb1, 0x07, 0x93, 0xf7, 0x27, 0x00, 0x93, 0x0a, 0x05, 0x00, 0x0b, 0x4a, 0x85, 0xe1, 0x63, 0x80, 0x07, 0x32, 0x83, 0x2c, 0x85, 0x02, 0x03, 0x26, 0xc5, 0x02, 0x03, 0x29, 0x05, 0x03, 0x8b, 0xb7, 0x5c, 0x5d, 0x23, 0x3c, 0xf1, 0x04, 0x8b, 0x37, 0xf6, 0x4c, 0x23, 0x30, 0xf1, 0x04, 0x8b, 0x37, 0x66, 0x28, 0x23, 0x30, 0xf1, 0x00, 0x8b, 0x37, 0xc9, 0x50, 0x0b, 0x39, 0x09, 0x2c, 0x0b, 0xbd, 0xfc, 0x50, 0x8b, 0xbb, 0xbc, 0x38, 0x8b, 0xb9, 0x6c, 0x28, 0x0b, 0x38, 0x76, 0x6d, 0x93, 0xfc, 0xfc, 0x03, 0x8b, 0x34, 0x46, 0x59, 0x0b, 0x3b, 0xb6, 0x38, 0x93, 0x7d, 0xf6, 0x03, 0x23, 0x34, 0xf1, 0x00, 0x1b, 0x09, 0x09, 0x00, 0x83, 0xa7, 0x4a, 0x02, 0x23, 0x34, 0xf1, 0x04, 0x83, 0xa7, 0xca, 0x01, 0x23, 0x3c, 0xf1, 0x02, 0x93, 0x07, 0x30, 0x00, 0xe3, 0x04, 0xfc, 0x10, 0x63, 0xe2, 0x87, 0x7b, 0x93, 0x07, 0x20, 0x00, 0xe3, 0x04, 0xfc, 0x04, 0x93, 0x07, 0x80, 0x00, 0x23, 0x38, 0xf1, 0x02, 0x13, 0x03, 0x40, 0x00, 0x93, 0x0e, 0x30, 0x00, 0x93, 0x0f, 0x40, 0x00, 0x13, 0x0e, 0xb0, 0x01, 0x13, 0x0b, 0xc0, 0x00, 0x13, 0x0c, 0x20, 0x00, 0x93, 0x02, 0x60, 0x00, 0x13, 0x0f, 0x20, 0x00, 0x93, 0x05, 0x00, 0x00, 0x93, 0x07, 0x30, 0x00, 0x13, 0x05, 0x30, 0x00, 0x93, 0x08, 0x10, 0x00, 0x13, 0x07, 0x10, 0x00, 0x13, 0x04, 0x00, 0x00, 0x93, 0x03, 0x00, 0x00, 0x93, 0x04, 0x00, 0x00, 0x93, 0x06, 0x00, 0x00, 0x23, 0x34, 0x01, 0x02, 0x23, 0x30, 0x01, 0x02, 0x23, 0x3c, 0x01, 0x00, 0x23, 0x38, 0x01, 0x00, 0x03, 0x36, 0x01, 0x04, 0x03, 0x3a, 0x01, 0x00, 0x3b, 0x0a, 0xca, 0x00, 0x1b, 0x06, 0x25, 0x00, 0x63, 0x7a, 0xca, 0x00, 0x03, 0x36, 0x01, 0x00, 0x3b, 0x0a, 0xc5, 0x40, 0x1b, 0x06, 0x2a, 0x00, 0x23, 0x30, 0xc1, 0x04, 0x03, 0xda, 0xaa, 0x01, 0x63, 0x14, 0x0a, 0x00, 0x23, 0xac, 0xda, 0x00, 0x83, 0x36, 0x81, 0x03, 0x8b, 0xb6, 0x06, 0x7d, 0x63, 0x94, 0x06, 0x00, 0x23, 0xae, 0x9a, 0x00, 0x83, 0xd6, 0x2a, 0x02, 0x63, 0x94, 0x06, 0x00, 0x23, 0xa0, 0x7a, 0x02, 0x83, 0x36, 0x81, 0x04, 0x8b, 0xb6, 0x06, 0x7d, 0x63, 0x94, 0x06, 0x00, 0x23, 0xa2, 0x8a, 0x02, 0x83, 0xd3, 0x8a, 0x01, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x36, 0x10, 0x03, 0x23, 0xa8, 0x76, 0x02, 0x83, 0xd3, 0xca, 0x01, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xaa, 0x76, 0x02, 0x83, 0xd3, 0x0a, 0x02, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xac, 0x76, 0x02, 0x83, 0xd3, 0x4a, 0x02, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xae, 0x76, 0x02, 0x83, 0xa3, 0xca, 0x00, 0x8b, 0xb3, 0x43, 0x14, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xa6, 0x76, 0x02, 0x0f, 0x00, 0x50, 0x05, 0x1b, 0x1d, 0x0d, 0x01, 0x33, 0xed, 0xad, 0x01, 0x9b, 0x13, 0x8b, 0x01, 0x33, 0x6d, 0x7d, 0x00, 0x1b, 0x1e, 0x8e, 0x00, 0x33, 0x6d, 0xcd, 0x01, 0x23, 0xac, 0xa6, 0x05, 0x0f, 0x00, 0x50, 0x05, 0x03, 0x36, 0x01, 0x04, 0x1b, 0x18, 0x08, 0x01, 0x33, 0xe8, 0x0c, 0x01, 0x1b, 0x1a, 0x86, 0x00, 0x33, 0x68, 0x48, 0x01, 0x23, 0xae, 0x06, 0x05, 0x0f, 0x00, 0x50, 0x05, 0x9b, 0x94, 0x87, 0x01, 0x83, 0x37, 0x01, 0x03, 0x1b, 0x15, 0x05, 0x01, 0xb3, 0xe4, 0xa4, 0x00, 0xb3, 0xe4, 0xf4, 0x00, 0x9b, 0x9f, 0x8f, 0x00, 0xb3, 0xef, 0xf4, 0x01, 0x23, 0xa0, 0xf6, 0x07, 0x0f, 0x00, 0x50, 0x05, 0x1b, 0x1f, 0xcf, 0x00, 0x9b, 0x95, 0x05, 0x01, 0xb3, 0xe5, 0xe5, 0x01, 0xb3, 0xe2, 0x55, 0x00, 0x23, 0xa2, 0x56, 0x06, 0x0f, 0x00, 0x50, 0x05, 0x83, 0x37, 0x81, 0x05, 0x9b, 0x99, 0x89, 0x01, 0x9b, 0x9b, 0x8b, 0x00, 0x9b, 0x97, 0x07, 0x01, 0xb3, 0xe9, 0xf9, 0x00, 0x83, 0x37, 0x01, 0x00, 0x33, 0xee, 0xf9, 0x00, 0xb3, 0x6b, 0x7e, 0x01, 0x23, 0xa4, 0x76, 0x07, 0x0f, 0x00, 0x50, 0x05, 0x9b, 0x17, 0x83, 0x01, 0x1b, 0x13, 0x03, 0x01, 0x33, 0xe3, 0x67, 0x00, 0x33, 0x6c, 0x83, 0x01, 0x9b, 0x9e, 0x8e, 0x00, 0xb3, 0x6e, 0xdc, 0x01, 0x23, 0xa6, 0xd6, 0x07, 0x83, 0xa7, 0x86, 0x07, 0x0f, 0x00, 0xa0, 0x0a, 0x83, 0xa5, 0x0a, 0x00, 0xb7, 0x06, 0xff, 0x0f, 0xb3, 0xf7, 0xd7, 0x00, 0x93, 0x06, 0x00, 0x32, 0xe3, 0xe0, 0xb6, 0x0c, 0xb7, 0x66, 0x00, 0xf0, 0x93, 0x86, 0x06, 0x60, 0xb3, 0xe7, 0xd7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x36, 0x10, 0x03, 0x93, 0xe7, 0x07, 0x01, 0x23, 0xac, 0xf6, 0x06, 0x0f, 0x00, 0x50, 0x05, 0x1b, 0x17, 0x07, 0x01, 0x33, 0xe7, 0xe8, 0x00, 0xb7, 0x08, 0x00, 0x02, 0x93, 0x88, 0x08, 0x10, 0x33, 0x67, 0x17, 0x01, 0x23, 0xa0, 0xe6, 0x08, 0x0f, 0x00, 0x50, 0x05, 0x83, 0x37, 0x81, 0x01, 0x03, 0x37, 0x01, 0x01, 0x9b, 0x97, 0x47, 0x01, 0xb3, 0x67, 0xf7, 0x00, 0x23, 0xa8, 0xf6, 0x04, 0x0f, 0x00, 0x50, 0x05, 0x83, 0x37, 0x81, 0x02, 0x03, 0x37, 0x01, 0x02, 0x9b, 0x97, 0x47, 0x01, 0xb3, 0x67, 0xf7, 0x00, 0x23, 0xaa, 0xf6, 0x04, 0x0f, 0x00, 0x50, 0x05, 0x03, 0x37, 0x81, 0x00, 0x9b, 0x17, 0x09, 0x01, 0xb3, 0x67, 0xf7, 0x00, 0x23, 0xa8, 0xf6, 0x08, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x07, 0xff, 0x0f, 0x83, 0x30, 0x81, 0x0c, 0x03, 0x34, 0x01, 0x0c, 0x1b, 0x19, 0xf9, 0x00, 0x33, 0x79, 0xf9, 0x00, 0x23, 0xaa, 0x26, 0x09, 0x83, 0x34, 0x81, 0x0b, 0x03, 0x39, 0x01, 0x0b, 0x83, 0x39, 0x81, 0x0a, 0x03, 0x3a, 0x01, 0x0a, 0x83, 0x3a, 0x81, 0x09, 0x03, 0x3b, 0x01, 0x09, 0x83, 0x3b, 0x81, 0x08, 0x03, 0x3c, 0x01, 0x08, 0x83, 0x3c, 0x81, 0x07, 0x03, 0x3d, 0x01, 0x07, 0x83, 0x3d, 0x81, 0x06, 0x13, 0x01, 0x01, 0x0d, 0x67, 0x80, 0x00, 0x00, 0x93, 0x07, 0x30, 0x00, 0x0b, 0x34, 0x1a, 0x7c, 0x63, 0x1a, 0xfc, 0x1a, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0xe0, 0x15, 0xef, 0xf0, 0x5f, 0xc6, 0x9b, 0x07, 0x05, 0x00, 0x37, 0x25, 0x00, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x85, 0xe7, 0x23, 0x34, 0xf1, 0x00, 0xef, 0xf0, 0xdf, 0xc4, 0x1b, 0x05, 0x05, 0x00, 0x13, 0x79, 0xf5, 0x01, 0x33, 0x39, 0x20, 0x01, 0x1b, 0x55, 0x55, 0x00, 0x93, 0x05, 0x04, 0x00, 0x3b, 0x09, 0xa9, 0x00, 0x13, 0x05, 0x80, 0x00, 0xef, 0xf0, 0xdf, 0xc2, 0x1b, 0x0b, 0x05, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0xf0, 0x00, 0xef, 0xf0, 0xdf, 0xc1, 0x93, 0x07, 0x20, 0x00, 0x9b, 0x09, 0x05, 0x00, 0x93, 0x04, 0x0b, 0x00, 0x63, 0x74, 0xfb, 0x00, 0x93, 0x04, 0x20, 0x00, 0x93, 0x07, 0x20, 0x00, 0x13, 0x8b, 0x09, 0x00, 0x63, 0xf4, 0xf9, 0x00, 0x13, 0x0b, 0x20, 0x00, 0x93, 0x07, 0x00, 0x32, 0x93, 0x05, 0x04, 0x00, 0x63, 0xe6, 0x47, 0x0d, 0x13, 0x05, 0x20, 0x03, 0xef, 0xf0, 0x5f, 0xbe, 0x1b, 0x0d, 0x05, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0xa0, 0x00, 0xef, 0xf0, 0x5f, 0xbd, 0x1b, 0x05, 0x05, 0x00, 0x93, 0x07, 0x20, 0x00, 0x93, 0x0b, 0x05, 0x00, 0x63, 0x74, 0xf5, 0x00, 0x93, 0x0b, 0x20, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x50, 0x03, 0xef, 0xf0, 0x5f, 0xbb, 0x9b, 0x0c, 0x05, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x60, 0x02, 0xef, 0xf0, 0x5f, 0xba, 0x9b, 0x0d, 0x05, 0x00, 0x13, 0x88, 0x04, 0x00, 0x23, 0x30, 0x31, 0x01, 0x1b, 0x17, 0xfd, 0x00, 0x9b, 0x97, 0x69, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0xb3, 0xe7, 0x97, 0x01, 0x1b, 0x97, 0xbb, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x37, 0x07, 0x40, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0xa4, 0xfa, 0x02, 0x83, 0x37, 0x01, 0x00, 0x1b, 0x17, 0xbb, 0x00, 0x23, 0x30, 0x91, 0x04, 0x9b, 0x97, 0x67, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0xb3, 0xe7, 0xb7, 0x01, 0x1b, 0x97, 0xf4, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x1b, 0x97, 0x44, 0x01, 0xb3, 0xe7, 0xe7, 0x00, 0x1b, 0x17, 0x78, 0x01, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0xa6, 0xfa, 0x02, 0x83, 0x37, 0x81, 0x00, 0x9b, 0x97, 0xc7, 0x00, 0xb3, 0x67, 0xf9, 0x00, 0x23, 0xa8, 0xfa, 0x02, 0x93, 0x07, 0x20, 0x00, 0x23, 0x3c, 0xf1, 0x04, 0x6f, 0xf0, 0x5f, 0xbe, 0x13, 0x05, 0x30, 0x02, 0xef, 0xf0, 0xdf, 0xb1, 0x1b, 0x0d, 0x05, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x60, 0x00, 0xef, 0xf0, 0xdf, 0xb0, 0x1b, 0x05, 0x05, 0x00, 0x93, 0x07, 0x20, 0x00, 0x93, 0x0b, 0x05, 0x00, 0x63, 0x74, 0xf5, 0x00, 0x93, 0x0b, 0x20, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0xe0, 0x00, 0xef, 0xf0, 0xdf, 0xae, 0x93, 0x05, 0x04, 0x00, 0x9b, 0x09, 0x05, 0x00, 0x13, 0x05, 0x00, 0x03, 0xef, 0xf0, 0xdf, 0xad, 0x9b, 0x0c, 0x05, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x20, 0x02, 0xef, 0xf0, 0xdf, 0xac, 0x9b, 0x0d, 0x05, 0x00, 0x13, 0x88, 0x0b, 0x00, 0x6f, 0xf0, 0x9f, 0xf2, 0x93, 0x07, 0x20, 0x00, 0x63, 0x1e, 0xfc, 0x0a, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x20, 0x03, 0xef, 0xf0, 0xdf, 0xaa, 0x93, 0x05, 0x04, 0x00, 0x1b, 0x0d, 0x05, 0x00, 0x13, 0x05, 0xa0, 0x00, 0xef, 0xf0, 0xdf, 0xa9, 0x93, 0x05, 0x04, 0x00, 0x9b, 0x0b, 0x05, 0x00, 0x13, 0x05, 0x40, 0x01, 0xef, 0xf0, 0xdf, 0xa8, 0x93, 0x05, 0x04, 0x00, 0x9b, 0x09, 0x05, 0x00, 0x13, 0x05, 0x10, 0x04, 0xef, 0xf0, 0xdf, 0xa7, 0x93, 0x05, 0x04, 0x00, 0x9b, 0x0c, 0x05, 0x00, 0x13, 0x05, 0x80, 0x00, 0xef, 0xf0, 0xdf, 0xa6, 0x93, 0x05, 0x04, 0x00, 0x9b, 0x04, 0x05, 0x00, 0x13, 0x05, 0xf0, 0x00, 0xef, 0xf0, 0xdf, 0xa5, 0x9b, 0x07, 0x05, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0xd0, 0x02, 0x23, 0x30, 0xf1, 0x00, 0xef, 0xf0, 0x9f, 0xa4, 0x9b, 0x0d, 0x05, 0x00, 0x37, 0x25, 0x00, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x85, 0xe7, 0xef, 0xf0, 0x5f, 0xa3, 0x1b, 0x05, 0x05, 0x00, 0x1b, 0x59, 0x55, 0x00, 0x13, 0x75, 0xf5, 0x01, 0x33, 0x35, 0xa0, 0x00, 0x3b, 0x09, 0xa9, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x80, 0x14, 0xef, 0xf0, 0x5f, 0xa1, 0x9b, 0x07, 0x05, 0x00, 0x23, 0x34, 0xf1, 0x00, 0x13, 0x08, 0x20, 0x00, 0x03, 0x3b, 0x01, 0x00, 0x6f, 0xf0, 0xdf, 0xe6, 0x93, 0x07, 0x60, 0x00, 0x63, 0x14, 0xfc, 0x12, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x20, 0x03, 0xef, 0xf0, 0xdf, 0x9e, 0x1b, 0x05, 0x05, 0x00, 0x93, 0x07, 0x40, 0x00, 0x13, 0x0d, 0x05, 0x00, 0x63, 0x74, 0xf5, 0x00, 0x13, 0x0d, 0x40, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0xa0, 0x00, 0xef, 0xf0, 0xdf, 0x9c, 0x9b, 0x0b, 0x05, 0x00, 0x63, 0x94, 0x0b, 0x00, 0x93, 0x0b, 0x10, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x80, 0x01, 0xef, 0xf0, 0x5f, 0x9b, 0x1b, 0x05, 0x05, 0x00, 0x93, 0x07, 0x20, 0x00, 0x93, 0x09, 0x05, 0x00, 0x63, 0x74, 0xf5, 0x00, 0x93, 0x09, 0x20, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x60, 0x04, 0xef, 0xf0, 0x5f, 0x99, 0x9b, 0x0c, 0x05, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x80, 0x00, 0xef, 0xf0, 0x5f, 0x98, 0x1b, 0x08, 0x05, 0x00, 0x63, 0x02, 0x08, 0x0a, 0x93, 0x07, 0x20, 0x00, 0x93, 0x04, 0x08, 0x00, 0x63, 0x74, 0xf8, 0x00, 0x93, 0x04, 0x20, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0xf0, 0x00, 0x23, 0x30, 0x01, 0x01, 0xef, 0xf0, 0xdf, 0x95, 0x1b, 0x05, 0x05, 0x00, 0x93, 0x07, 0x20, 0x00, 0x13, 0x0b, 0x05, 0x00, 0x03, 0x38, 0x01, 0x00, 0x63, 0x74, 0xf5, 0x00, 0x13, 0x0b, 0x20, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x10, 0x01, 0x23, 0x38, 0x01, 0x01, 0xef, 0xf0, 0x5f, 0x93, 0x9b, 0x07, 0x05, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0xa0, 0x02, 0x23, 0x30, 0xf1, 0x00, 0xef, 0xf0, 0x1f, 0x92, 0x9b, 0x0d, 0x05, 0x00, 0x37, 0x15, 0x00, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0xc5, 0xf3, 0xef, 0xf0, 0xdf, 0x90, 0x1b, 0x05, 0x05, 0x00, 0x1b, 0x59, 0x55, 0x00, 0x13, 0x75, 0xf5, 0x01, 0x33, 0x35, 0xa0, 0x00, 0x3b, 0x09, 0xa9, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x20, 0x0d, 0xef, 0xf0, 0xdf, 0x8e, 0x9b, 0x07, 0x05, 0x00, 0x23, 0x34, 0xf1, 0x00, 0x03, 0x38, 0x01, 0x01, 0x6f, 0xf0, 0x9f, 0xd4, 0x13, 0x08, 0x10, 0x00, 0x6f, 0xf0, 0x9f, 0xf6, 0x93, 0x07, 0x70, 0x00, 0x63, 0x18, 0xfc, 0x10, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x20, 0x03, 0xef, 0xf0, 0x1f, 0x8c, 0x1b, 0x05, 0x05, 0x00, 0x93, 0x07, 0x40, 0x00, 0x13, 0x0d, 0x05, 0x00, 0x63, 0x74, 0xf5, 0x00, 0x13, 0x0d, 0x40, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0xa0, 0x00, 0xef, 0xf0, 0x1f, 0x8a, 0x9b, 0x0b, 0x05, 0x00, 0x63, 0x94, 0x0b, 0x00, 0x93, 0x0b, 0x10, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x80, 0x01, 0xef, 0xf0, 0x9f, 0x88, 0x1b, 0x05, 0x05, 0x00, 0x93, 0x07, 0x20, 0x00, 0x93, 0x09, 0x05, 0x00, 0x63, 0x74, 0xf5, 0x00, 0x93, 0x09, 0x20, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x60, 0x04, 0xef, 0xf0, 0x9f, 0x86, 0x9b, 0x0c, 0x05, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x80, 0x00, 0xef, 0xf0, 0x9f, 0x85, 0x1b, 0x05, 0x05, 0x00, 0x93, 0x07, 0x20, 0x00, 0x93, 0x04, 0x05, 0x00, 0x63, 0x74, 0xf5, 0x00, 0x93, 0x04, 0x20, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0xf0, 0x00, 0xef, 0xf0, 0x9f, 0x83, 0x1b, 0x05, 0x05, 0x00, 0x93, 0x07, 0x20, 0x00, 0x13, 0x0b, 0x05, 0x00, 0x63, 0x74, 0xf5, 0x00, 0x13, 0x0b, 0x20, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x10, 0x01, 0xef, 0xf0, 0x9f, 0x81, 0x9b, 0x07, 0x05, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0xa0, 0x02, 0x23, 0x30, 0xf1, 0x00, 0xef, 0xf0, 0x5f, 0x80, 0x9b, 0x0d, 0x05, 0x00, 0x37, 0x15, 0x00, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0xc5, 0xf3, 0xef, 0xf0, 0x0f, 0xff, 0x1b, 0x05, 0x05, 0x00, 0x1b, 0x59, 0x55, 0x00, 0x13, 0x75, 0xf5, 0x01, 0x33, 0x35, 0xa0, 0x00, 0x3b, 0x09, 0xa9, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0x20, 0x0d, 0xef, 0xf0, 0x0f, 0xfd, 0x9b, 0x07, 0x05, 0x00, 0x23, 0x34, 0xf1, 0x00, 0x13, 0x88, 0x04, 0x00, 0x6f, 0xf0, 0xdf, 0xc2, 0x93, 0x07, 0x00, 0x08, 0x23, 0x34, 0xf1, 0x00, 0x93, 0x07, 0x60, 0x00, 0x13, 0x09, 0x20, 0x06, 0x13, 0x08, 0xa0, 0x00, 0x13, 0x0b, 0x80, 0x00, 0x93, 0x04, 0x30, 0x00, 0x23, 0x30, 0xf1, 0x00, 0x93, 0x0d, 0xe0, 0x00, 0x13, 0x0d, 0x00, 0x01, 0x93, 0x0c, 0x40, 0x01, 0x93, 0x09, 0x60, 0x00, 0x93, 0x0b, 0x30, 0x00, 0x6f, 0xf0, 0x5f, 0xbf, 0x93, 0x07, 0x60, 0x00, 0x63, 0x0a, 0xfc, 0x22, 0x93, 0x07, 0x70, 0x00, 0xe3, 0x1e, 0xfc, 0x84, 0x93, 0x07, 0xc0, 0x03, 0x3b, 0x5e, 0xfa, 0x02, 0x93, 0x07, 0x00, 0x32, 0x63, 0xf8, 0x47, 0x2b, 0x93, 0x07, 0x40, 0x00, 0x93, 0x08, 0x30, 0x00, 0x13, 0x07, 0x60, 0x00, 0x93, 0x03, 0xc0, 0x00, 0x93, 0x06, 0x80, 0x0c, 0x93, 0x05, 0x80, 0x3e, 0x9b, 0x84, 0x54, 0x00, 0x1b, 0x0b, 0x5b, 0x00, 0x13, 0x05, 0x0c, 0x00, 0x3b, 0x0b, 0xfb, 0x00, 0x03, 0x34, 0x81, 0x04, 0x13, 0x03, 0x50, 0x00, 0x93, 0x0e, 0x50, 0x00, 0x93, 0x0f, 0xd0, 0x00, 0x13, 0x0c, 0x30, 0x00, 0x93, 0x02, 0xc0, 0x00, 0x13, 0x0f, 0x50, 0x00, 0xbb, 0x86, 0x46, 0x03, 0x9b, 0x86, 0x16, 0x00, 0x23, 0x38, 0xd1, 0x00, 0x93, 0x06, 0x40, 0x06, 0xbb, 0x86, 0x46, 0x03, 0xbb, 0xd6, 0xb6, 0x02, 0x93, 0x05, 0x50, 0x00, 0x9b, 0x86, 0x16, 0x00, 0x23, 0x3c, 0xd1, 0x00, 0x93, 0x06, 0xb0, 0x00, 0xbb, 0x86, 0x46, 0x03, 0x9b, 0x86, 0x16, 0x00, 0x23, 0x30, 0xd1, 0x02, 0x9b, 0x06, 0x1a, 0x00, 0x23, 0x34, 0xd1, 0x02, 0xbb, 0x86, 0xf4, 0x00, 0x23, 0x38, 0xd1, 0x02, 0x6f, 0x00, 0x80, 0x21, 0x93, 0x07, 0xe0, 0x01, 0x3b, 0x5e, 0xfa, 0x02, 0x93, 0x07, 0x90, 0x19, 0x63, 0xea, 0x47, 0x09, 0xb7, 0x16, 0x00, 0x00, 0x13, 0x05, 0x30, 0x00, 0x13, 0x07, 0x10, 0x00, 0x93, 0x86, 0x36, 0xa6, 0x93, 0x07, 0x00, 0x19, 0x93, 0x05, 0x80, 0x3e, 0x13, 0x0f, 0x0c, 0x00, 0x1b, 0x0b, 0x5b, 0x00, 0x13, 0x03, 0x50, 0x00, 0x93, 0x0e, 0x40, 0x00, 0x93, 0x0f, 0x40, 0x00, 0x13, 0x0c, 0x30, 0x00, 0x93, 0x02, 0xc0, 0x00, 0x93, 0x08, 0x10, 0x00, 0x13, 0x04, 0x00, 0x00, 0x93, 0x03, 0x00, 0x00, 0xbb, 0x87, 0x47, 0x03, 0x9b, 0x87, 0x17, 0x00, 0x23, 0x38, 0xf1, 0x00, 0x93, 0x07, 0x40, 0x1f, 0xbb, 0x87, 0x47, 0x03, 0xbb, 0xd7, 0xb7, 0x02, 0x93, 0x05, 0x00, 0x00, 0x9b, 0x87, 0x17, 0x00, 0x23, 0x3c, 0xf1, 0x00, 0x93, 0x07, 0x80, 0x0c, 0xbb, 0x87, 0x47, 0x03, 0x9b, 0x87, 0x17, 0x00, 0x23, 0x30, 0xf1, 0x02, 0x9b, 0x07, 0x1a, 0x00, 0x23, 0x34, 0xf1, 0x02, 0x9b, 0x87, 0x54, 0x00, 0x23, 0x38, 0xf1, 0x02, 0x83, 0x34, 0x81, 0x03, 0x93, 0x07, 0x30, 0x00, 0x6f, 0xf0, 0xcf, 0xf7, 0xb7, 0x16, 0x00, 0x00, 0x13, 0x07, 0x20, 0x00, 0x13, 0x05, 0x40, 0x00, 0x93, 0x86, 0x36, 0xe7, 0x6f, 0xf0, 0x1f, 0xf7, 0x93, 0x07, 0xe0, 0x01, 0x3b, 0x5e, 0xfa, 0x02, 0x93, 0x07, 0x00, 0x32, 0x63, 0xf8, 0x47, 0x0b, 0xb7, 0x26, 0x00, 0x00, 0x93, 0x08, 0x30, 0x00, 0x13, 0x05, 0x70, 0x00, 0x13, 0x07, 0x50, 0x00, 0x93, 0x03, 0x00, 0x02, 0x93, 0x86, 0x46, 0xe1, 0x93, 0x07, 0x40, 0x1f, 0x93, 0x05, 0x80, 0x3e, 0x9b, 0x84, 0x24, 0x00, 0x1b, 0x0b, 0x2b, 0x00, 0x3b, 0x0b, 0xeb, 0x00, 0xbb, 0x87, 0x47, 0x03, 0x9b, 0x87, 0x17, 0x00, 0x23, 0x38, 0xf1, 0x00, 0x93, 0x07, 0x80, 0x16, 0xbb, 0x87, 0x47, 0x03, 0xbb, 0xd7, 0xb7, 0x02, 0x9b, 0x87, 0x17, 0x00, 0x23, 0x3c, 0xf1, 0x00, 0x93, 0x07, 0x80, 0x0c, 0xbb, 0x87, 0x47, 0x03, 0x9b, 0x87, 0x17, 0x00, 0x23, 0x30, 0xf1, 0x02, 0x9b, 0x07, 0x1a, 0x00, 0x23, 0x34, 0xf1, 0x02, 0xbb, 0x87, 0xe4, 0x00, 0x23, 0x38, 0xf1, 0x02, 0x83, 0x37, 0x01, 0x05, 0x8b, 0xb5, 0x27, 0x0c, 0x93, 0x07, 0x10, 0x00, 0x63, 0x86, 0xf5, 0x00, 0x93, 0x07, 0x00, 0x39, 0x63, 0xea, 0x47, 0x0f, 0x83, 0x34, 0x81, 0x03, 0x93, 0x07, 0x07, 0x00, 0x13, 0x03, 0x50, 0x00, 0x93, 0x0e, 0x40, 0x00, 0x93, 0x0f, 0x50, 0x00, 0x93, 0x02, 0xc0, 0x00, 0x13, 0x0f, 0x40, 0x00, 0x93, 0x05, 0x00, 0x00, 0x13, 0x04, 0x00, 0x00, 0x6f, 0xf0, 0xcf, 0xea, 0xb7, 0x26, 0x00, 0x00, 0x13, 0x05, 0x60, 0x00, 0x93, 0x08, 0x20, 0x00, 0x13, 0x07, 0x40, 0x00, 0x93, 0x03, 0x80, 0x01, 0x93, 0x86, 0x06, 0xc7, 0x6f, 0xf0, 0x5f, 0xf5, 0x93, 0x07, 0xc0, 0x03, 0x3b, 0x5e, 0xfa, 0x02, 0x93, 0x07, 0x80, 0x0c, 0x13, 0x07, 0x80, 0x3e, 0x03, 0x34, 0x81, 0x04, 0x1b, 0x0b, 0x5b, 0x00, 0x93, 0x03, 0x60, 0x00, 0x13, 0x03, 0x50, 0x00, 0x93, 0x0e, 0x50, 0x00, 0x93, 0x0f, 0xa0, 0x00, 0x13, 0x0c, 0x20, 0x00, 0x93, 0x02, 0x50, 0x00, 0x13, 0x0f, 0x50, 0x00, 0x93, 0x05, 0x30, 0x00, 0x13, 0x05, 0x40, 0x00, 0x93, 0x08, 0x10, 0x00, 0xbb, 0x87, 0x47, 0x03, 0x9b, 0x87, 0x17, 0x00, 0x23, 0x38, 0xf1, 0x00, 0x93, 0x07, 0x40, 0x06, 0xbb, 0x87, 0x47, 0x03, 0xbb, 0xd7, 0xe7, 0x02, 0x13, 0x07, 0x30, 0x00, 0x9b, 0x87, 0x17, 0x00, 0x23, 0x3c, 0xf1, 0x00, 0x93, 0x07, 0xb0, 0x00, 0xbb, 0x87, 0x47, 0x03, 0x9b, 0x87, 0x17, 0x00, 0x23, 0x30, 0xf1, 0x02, 0x9b, 0x07, 0x1a, 0x00, 0x23, 0x34, 0xf1, 0x02, 0x9b, 0x87, 0x54, 0x00, 0x23, 0x38, 0xf1, 0x02, 0x93, 0x07, 0x20, 0x00, 0x93, 0x04, 0x30, 0x0c, 0x93, 0x06, 0x00, 0x00, 0x6f, 0xf0, 0xcf, 0xdf, 0x93, 0x07, 0x30, 0x00, 0x13, 0x0c, 0x60, 0x00, 0x93, 0x08, 0x20, 0x00, 0x13, 0x07, 0x50, 0x00, 0x93, 0x03, 0xa0, 0x00, 0x6f, 0xf0, 0x1f, 0xd5, 0x93, 0x07, 0x07, 0x00, 0x83, 0x34, 0x81, 0x03, 0x13, 0x03, 0x50, 0x00, 0x93, 0x0e, 0x40, 0x00, 0x93, 0x0f, 0x60, 0x00, 0x6f, 0xf0, 0x1f, 0xf1, 0xb7, 0x76, 0x00, 0xf0, 0x6f, 0xf0, 0x4f, 0xf4, 0x93, 0x07, 0x80, 0x01, 0x3b, 0xd7, 0xf5, 0x02, 0xbb, 0x87, 0xe7, 0x02, 0x63, 0x8c, 0xb7, 0x0c, 0x13, 0x01, 0x01, 0xfe, 0x23, 0x38, 0x91, 0x00, 0x8b, 0x34, 0x06, 0x7c, 0x23, 0x3c, 0x11, 0x00, 0x23, 0x34, 0x81, 0x00, 0x83, 0xa7, 0x04, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x8b, 0xb7, 0x17, 0x04, 0x0b, 0xb4, 0x06, 0x7c, 0x63, 0x8e, 0x07, 0x00, 0x83, 0x27, 0x04, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x06, 0x08, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x23, 0x20, 0xf4, 0x00, 0xb7, 0x47, 0x02, 0x00, 0x07, 0xa7, 0x87, 0xcd, 0xd3, 0xf7, 0x15, 0xd0, 0xb7, 0x47, 0x02, 0x00, 0xd3, 0xf7, 0xe7, 0x18, 0x53, 0x77, 0x07, 0xd0, 0xd3, 0xf7, 0xe7, 0x08, 0x07, 0xa7, 0xc7, 0xcd, 0xd3, 0xf7, 0xe7, 0x10, 0xd3, 0x97, 0x07, 0xc0, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x20, 0xf4, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x37, 0x07, 0x0a, 0x00, 0x1b, 0x07, 0xf7, 0xff, 0xb3, 0x77, 0xf7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x06, 0xe0, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0x20, 0xf4, 0x00, 0x13, 0x05, 0x40, 0x01, 0xef, 0x10, 0x10, 0x7d, 0x83, 0xa7, 0x04, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0x01, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0xa0, 0xf4, 0x00, 0x03, 0x25, 0x04, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x83, 0x30, 0x81, 0x01, 0x03, 0x34, 0x81, 0x00, 0x0b, 0x35, 0x05, 0x40, 0x83, 0x34, 0x01, 0x01, 0x1b, 0x05, 0x05, 0x00, 0x13, 0x01, 0x01, 0x02, 0x67, 0x80, 0x00, 0x00, 0x13, 0x05, 0x00, 0x00, 0x67, 0x80, 0x00, 0x00, 0x13, 0x01, 0x01, 0xff, 0x23, 0x30, 0x81, 0x00, 0x0b, 0xb4, 0x05, 0x7c, 0x23, 0x34, 0x11, 0x00, 0x83, 0x27, 0x04, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x8b, 0xb7, 0x17, 0x04, 0x0b, 0x36, 0x06, 0x7c, 0x63, 0x8e, 0x07, 0x00, 0x83, 0x27, 0x06, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x08, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0x20, 0xf6, 0x00, 0x83, 0x27, 0xc5, 0x05, 0x13, 0x07, 0x40, 0x00, 0x8b, 0xb7, 0x47, 0x59, 0x9b, 0x86, 0xf7, 0xff, 0x63, 0x62, 0xd7, 0x08, 0x37, 0x47, 0x02, 0x00, 0x13, 0x07, 0x07, 0xaa, 0x8b, 0x47, 0xd7, 0x54, 0x67, 0x80, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0xd7, 0x86, 0xe4, 0x9b, 0x87, 0xc7, 0xcc, 0x23, 0x20, 0xf6, 0x00, 0x13, 0x05, 0x40, 0x01, 0xef, 0x10, 0x50, 0x71, 0x83, 0x27, 0x04, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0x01, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0x20, 0xf4, 0x00, 0x83, 0x30, 0x81, 0x00, 0x03, 0x34, 0x01, 0x00, 0x13, 0x05, 0x00, 0x00, 0x13, 0x01, 0x01, 0x01, 0x67, 0x80, 0x00, 0x00, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0xa7, 0x06, 0xe9, 0x9b, 0x87, 0x97, 0x99, 0x6f, 0xf0, 0xdf, 0xfb, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x67, 0x86, 0xed, 0x9b, 0x87, 0x67, 0x66, 0x6f, 0xf0, 0xdf, 0xfa, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x07, 0x86, 0xf5, 0x6f, 0xf0, 0x1f, 0xfa, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x37, 0x06, 0xf2, 0x9b, 0x87, 0x37, 0x33, 0x6f, 0xf0, 0x1f, 0xf9, 0x83, 0xa7, 0xc5, 0x05, 0x13, 0x01, 0x01, 0xfe, 0x23, 0x3c, 0x11, 0x00, 0x23, 0x34, 0x81, 0x00, 0x23, 0x38, 0x91, 0x00, 0x8b, 0xb7, 0x67, 0x18, 0x63, 0x98, 0xa7, 0x0e, 0x03, 0xa4, 0x05, 0x00, 0x93, 0x07, 0x80, 0x01, 0x37, 0x17, 0x00, 0x02, 0x1b, 0x14, 0x14, 0x00, 0x3b, 0x54, 0xf4, 0x02, 0x83, 0x27, 0x07, 0x01, 0x0f, 0x00, 0xa0, 0x0a, 0x37, 0x06, 0xf8, 0xff, 0x9b, 0x06, 0xf4, 0xff, 0x13, 0x06, 0xc6, 0x0f, 0x9b, 0x96, 0x86, 0x00, 0xb3, 0xf7, 0xc7, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x06, 0x00, 0xc0, 0x33, 0xe6, 0xd7, 0x00, 0x23, 0x28, 0xc7, 0x00, 0x37, 0x06, 0x00, 0xe0, 0x13, 0x06, 0xf6, 0xff, 0xb3, 0xf7, 0xc7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0xb3, 0xe6, 0xd7, 0x00, 0x23, 0x28, 0xd7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x06, 0x00, 0xe0, 0xb3, 0xe7, 0xd7, 0x00, 0x23, 0x28, 0xf7, 0x00, 0xb7, 0x06, 0x00, 0x10, 0x93, 0x04, 0x07, 0x01, 0x83, 0x27, 0x07, 0x01, 0x0f, 0x00, 0xa0, 0x0a, 0xb3, 0xf7, 0xd7, 0x00, 0xe3, 0x88, 0x07, 0xfe, 0x13, 0x05, 0x40, 0x01, 0xef, 0x10, 0x10, 0x60, 0x83, 0xa7, 0x04, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0x08, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0xa0, 0xf4, 0x00, 0xb7, 0x26, 0x00, 0x02, 0x83, 0xa7, 0x06, 0x80, 0x0f, 0x00, 0xa0, 0x0a, 0x37, 0x07, 0x00, 0xfd, 0x13, 0x07, 0xc7, 0xcf, 0xb3, 0xf7, 0xe7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x13, 0x05, 0x80, 0x01, 0x3b, 0x05, 0x85, 0x02, 0x83, 0x30, 0x81, 0x01, 0x03, 0x34, 0x81, 0x00, 0x37, 0x07, 0x00, 0x80, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0xa0, 0xf6, 0x80, 0x83, 0x34, 0x01, 0x01, 0x13, 0x01, 0x01, 0x02, 0x67, 0x80, 0x00, 0x00, 0x03, 0xa4, 0xc5, 0x04, 0x6f, 0xf0, 0x5f, 0xf1, 0x13, 0x01, 0x01, 0xfe, 0x0b, 0x54, 0x91, 0xf8, 0xb7, 0x14, 0x00, 0x02, 0x23, 0x38, 0x21, 0x01, 0x23, 0x3c, 0x11, 0x00, 0x13, 0x09, 0x05, 0x00, 0x83, 0xa7, 0x04, 0x54, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0xc0, 0x13, 0x07, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x23, 0xa0, 0xf4, 0x54, 0x37, 0x24, 0x00, 0x02, 0x83, 0x27, 0xc4, 0x80, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xf6, 0xe7, 0xff, 0x23, 0x26, 0xd4, 0x80, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x06, 0xff, 0xff, 0x93, 0x86, 0xe6, 0xff, 0xb3, 0xf7, 0xd7, 0x00, 0x23, 0x26, 0xf4, 0x80, 0x83, 0x27, 0x04, 0x80, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x33, 0xf7, 0xe7, 0x00, 0x23, 0x20, 0xe4, 0x80, 0x0f, 0x00, 0xa0, 0x0a, 0x8b, 0xb7, 0x07, 0x74, 0x9b, 0x87, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x20, 0xf4, 0x80, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0x08, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0x20, 0xf4, 0x80, 0x13, 0x05, 0xa0, 0x00, 0xef, 0x10, 0x50, 0x4f, 0x93, 0x05, 0x09, 0x00, 0x13, 0x05, 0x00, 0x00, 0xef, 0xf0, 0x1f, 0xe4, 0x1b, 0x55, 0x15, 0x00, 0x23, 0x20, 0xa9, 0x00, 0x13, 0x05, 0x40, 0x06, 0xef, 0x10, 0x90, 0x4d, 0xef, 0xe0, 0xdf, 0xbb, 0x83, 0x27, 0xc4, 0x80, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x01, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0x26, 0xf4, 0x80, 0x03, 0xa7, 0x04, 0x54, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x06, 0x00, 0x40, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xa0, 0xe4, 0x54, 0x83, 0x27, 0x04, 0x80, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb3, 0xe7, 0xd7, 0x00, 0x23, 0x20, 0xf4, 0x80, 0x13, 0x05, 0x50, 0x00, 0xef, 0x10, 0x90, 0x48, 0x83, 0x27, 0xc4, 0x80, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xe7, 0x17, 0x00, 0x23, 0x26, 0xf4, 0x80, 0x83, 0x27, 0x04, 0x80, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0x80, 0x33, 0xe7, 0xe7, 0x00, 0x23, 0x20, 0xe4, 0x80, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0x88, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0x20, 0xf4, 0x80, 0x13, 0x05, 0x50, 0x00, 0xef, 0x10, 0x10, 0x44, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x37, 0x10, 0x03, 0x37, 0x87, 0x00, 0x00, 0x13, 0x05, 0xa0, 0x00, 0x23, 0xa6, 0xe7, 0x00, 0xef, 0x10, 0x90, 0x42, 0x83, 0x30, 0x81, 0x01, 0x0b, 0x44, 0x91, 0xf8, 0x03, 0x39, 0x01, 0x01, 0x13, 0x05, 0x00, 0x00, 0x13, 0x01, 0x01, 0x02, 0x67, 0x80, 0x00, 0x00, 0x37, 0x27, 0x10, 0x03, 0x83, 0x27, 0x87, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0xb7, 0xc6, 0xff, 0xff, 0x93, 0x86, 0xf6, 0x0f, 0xb3, 0xf7, 0xd7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x26, 0x00, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x23, 0x24, 0xf7, 0x00, 0x83, 0x27, 0x07, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x03, 0x26, 0x45, 0x00, 0x37, 0x17, 0x00, 0xff, 0x13, 0x07, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0xb7, 0x06, 0x07, 0x00, 0x1b, 0x17, 0x06, 0x01, 0x33, 0x77, 0xd7, 0x00, 0x83, 0x26, 0x45, 0x01, 0xb3, 0x67, 0xf7, 0x00, 0x1b, 0x06, 0xa6, 0xff, 0x93, 0xf6, 0x16, 0x00, 0x93, 0xb6, 0x16, 0x00, 0x93, 0x96, 0xc6, 0x00, 0x33, 0xe7, 0xd7, 0x00, 0x93, 0x07, 0x10, 0x00, 0x63, 0xe8, 0xc7, 0x0c, 0xb7, 0x07, 0x48, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x27, 0x10, 0x03, 0x23, 0x20, 0xf7, 0x00, 0x83, 0x27, 0x45, 0x01, 0x93, 0x05, 0x10, 0x00, 0x13, 0xf7, 0x07, 0x10, 0x63, 0x08, 0x07, 0x00, 0x8b, 0xb7, 0xc7, 0x3c, 0x63, 0x94, 0xb7, 0x00, 0x93, 0x05, 0x20, 0x00, 0x37, 0x18, 0x00, 0x00, 0x93, 0x0e, 0x08, 0x80, 0x93, 0x0f, 0x08, 0x90, 0x93, 0x95, 0x45, 0x00, 0x13, 0x06, 0x00, 0x00, 0xb7, 0x28, 0x10, 0x03, 0x37, 0xfe, 0xff, 0xff, 0x13, 0x03, 0x20, 0x00, 0x13, 0x0f, 0x40, 0x00, 0x93, 0x02, 0x80, 0x00, 0x13, 0x08, 0x08, 0xa0, 0x93, 0x03, 0x10, 0x00, 0x83, 0xa7, 0x08, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x0b, 0x47, 0xd5, 0xe4, 0xb3, 0xf7, 0xc7, 0x01, 0x8b, 0xb6, 0xc6, 0x34, 0xb3, 0xe6, 0xf6, 0x00, 0x9b, 0x07, 0xc6, 0x00, 0xbb, 0x57, 0xf7, 0x00, 0x9b, 0x97, 0x27, 0x00, 0x93, 0xf7, 0x47, 0x00, 0x9b, 0x86, 0x06, 0x00, 0xb3, 0xe6, 0xd7, 0x00, 0x9b, 0x07, 0x46, 0x00, 0xbb, 0x57, 0xf7, 0x00, 0x9b, 0x87, 0xf7, 0xff, 0x9b, 0x97, 0x47, 0x00, 0x93, 0xf7, 0xf7, 0x0f, 0x3b, 0x57, 0xc7, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x13, 0x77, 0xf7, 0x00, 0xb3, 0xe6, 0xd7, 0x01, 0x63, 0x04, 0x67, 0x04, 0x63, 0x6a, 0xe3, 0x02, 0x93, 0xe6, 0x07, 0x70, 0x63, 0x0e, 0x77, 0x02, 0x93, 0xe6, 0x07, 0x60, 0x6f, 0x00, 0x40, 0x03, 0x83, 0x27, 0xc5, 0x05, 0xb7, 0x06, 0x08, 0x00, 0x9b, 0xd7, 0x57, 0x00, 0x9b, 0x97, 0x37, 0x01, 0xb3, 0xf7, 0xd7, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x37, 0x07, 0x40, 0x00, 0x6f, 0xf0, 0xdf, 0xf1, 0xb3, 0xe6, 0xf7, 0x01, 0x63, 0x06, 0xe7, 0x01, 0xb3, 0xe6, 0x07, 0x01, 0xe3, 0x16, 0x57, 0xfc, 0x0f, 0x00, 0x50, 0x05, 0x8b, 0xd6, 0x48, 0x58, 0x1b, 0x06, 0x06, 0x01, 0xe3, 0x9c, 0xc5, 0xf4, 0xb7, 0x27, 0x10, 0x03, 0x83, 0xa7, 0x07, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x93, 0xf7, 0x17, 0x00, 0x93, 0x06, 0x30, 0x30, 0x63, 0x94, 0x07, 0x00, 0x93, 0x06, 0x10, 0x20, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x37, 0x10, 0x03, 0x23, 0x20, 0xd7, 0x12, 0x83, 0x27, 0x45, 0x01, 0x93, 0xf7, 0x17, 0x00, 0x63, 0x86, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x22, 0x07, 0x3c, 0x83, 0x27, 0x85, 0x03, 0x63, 0x8a, 0x07, 0x04, 0x37, 0x27, 0x10, 0x03, 0x83, 0x26, 0x07, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x83, 0x27, 0x85, 0x03, 0x37, 0x06, 0x00, 0x06, 0x9b, 0x97, 0x97, 0x01, 0xb3, 0xf7, 0xc7, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x20, 0xf7, 0x00, 0x83, 0x26, 0x47, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x83, 0x27, 0x85, 0x03, 0x37, 0xf6, 0x1f, 0x00, 0x9b, 0xd7, 0x27, 0x00, 0x9b, 0x97, 0xc7, 0x00, 0xb3, 0xf7, 0xc7, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x22, 0xf7, 0x00, 0x67, 0x80, 0x00, 0x00, 0x13, 0x01, 0x01, 0xf2, 0xb7, 0x67, 0x00, 0x03, 0x23, 0x38, 0x81, 0x0c, 0x23, 0x34, 0x91, 0x0c, 0x23, 0x3c, 0x11, 0x0c, 0x93, 0x04, 0x05, 0x00, 0x03, 0xa4, 0x87, 0x22, 0x0f, 0x00, 0xa0, 0x0a, 0xb7, 0x47, 0x02, 0x00, 0x93, 0x87, 0x07, 0xad, 0x83, 0xb6, 0x07, 0x16, 0x03, 0xb7, 0xe7, 0x16, 0x23, 0x30, 0x01, 0x00, 0x23, 0x3c, 0xd1, 0x00, 0x83, 0xb6, 0x87, 0x16, 0x23, 0x34, 0x01, 0x00, 0x23, 0x28, 0x01, 0x00, 0x23, 0x30, 0xd1, 0x02, 0x83, 0xb6, 0x87, 0x17, 0x23, 0x33, 0xe1, 0x02, 0x03, 0xb7, 0x67, 0x18, 0x23, 0x38, 0xd1, 0x02, 0x83, 0xb6, 0x07, 0x18, 0x23, 0x1a, 0x01, 0x00, 0x0b, 0x34, 0x84, 0x2c, 0x23, 0x3c, 0xd1, 0x02, 0x83, 0xb6, 0x07, 0x19, 0x23, 0x3f, 0xe1, 0x02, 0x03, 0xb7, 0xe7, 0x19, 0x23, 0x34, 0xd1, 0x04, 0x83, 0xb6, 0x87, 0x19, 0x37, 0x45, 0x02, 0x00, 0x93, 0x05, 0x04, 0x00, 0x23, 0x38, 0xd1, 0x04, 0x83, 0xb6, 0x87, 0x1a, 0x23, 0x3b, 0xe1, 0x04, 0x03, 0xb7, 0x67, 0x1b, 0x23, 0x30, 0xd1, 0x06, 0x83, 0xb6, 0x07, 0x1b, 0x13, 0x05, 0x05, 0xd0, 0x23, 0x34, 0xd1, 0x06, 0x83, 0xb6, 0x07, 0x1c, 0x23, 0x37, 0xe1, 0x06, 0x23, 0x3c, 0xd1, 0x06, 0x83, 0xb6, 0x87, 0x1c, 0x23, 0x30, 0xd1, 0x08, 0x03, 0xb7, 0xe7, 0x1c, 0x83, 0xb6, 0x87, 0x1d, 0x23, 0x33, 0xe1, 0x08, 0x23, 0x38, 0xd1, 0x08, 0x83, 0xb6, 0x07, 0x1e, 0x03, 0xb7, 0x67, 0x1e, 0x23, 0x3c, 0xd1, 0x08, 0x23, 0x3f, 0xe1, 0x08, 0x13, 0x87, 0x07, 0x1f, 0x83, 0xb7, 0x07, 0x1f, 0x23, 0x34, 0xf1, 0x0a, 0x83, 0x37, 0x87, 0x00, 0x23, 0x38, 0xf1, 0x0a, 0x83, 0x37, 0xe7, 0x00, 0x23, 0x3b, 0xf1, 0x0a, 0xef, 0x10, 0x40, 0x69, 0x83, 0xa7, 0xc4, 0x05, 0x8b, 0xb7, 0x27, 0x4d, 0x63, 0x94, 0x07, 0x08, 0x9b, 0x06, 0x84, 0xff, 0x93, 0x07, 0x60, 0x00, 0x63, 0xe8, 0xd7, 0x06, 0xb7, 0x47, 0x02, 0x00, 0x93, 0x87, 0x47, 0xab, 0x8b, 0xc7, 0xd7, 0x54, 0x67, 0x80, 0x07, 0x00, 0x13, 0x06, 0x60, 0x01, 0x93, 0x05, 0x81, 0x01, 0x13, 0x05, 0x01, 0x00, 0xef, 0xe0, 0x0f, 0xed, 0x83, 0xa7, 0x44, 0x00, 0x13, 0x07, 0x20, 0x00, 0x63, 0x8e, 0xe7, 0x04, 0x13, 0x07, 0x30, 0x00, 0x63, 0x88, 0xe7, 0x06, 0x83, 0x30, 0x81, 0x0d, 0x03, 0x34, 0x01, 0x0d, 0x83, 0x34, 0x81, 0x0c, 0x13, 0x01, 0x01, 0x0e, 0x67, 0x80, 0x00, 0x00, 0x13, 0x06, 0x60, 0x01, 0x93, 0x05, 0x01, 0x03, 0x6f, 0xf0, 0x9f, 0xfc, 0x13, 0x06, 0x60, 0x01, 0x93, 0x05, 0x81, 0x04, 0x6f, 0xf0, 0xdf, 0xfb, 0x13, 0x06, 0x60, 0x01, 0x93, 0x05, 0x81, 0x07, 0x6f, 0xf0, 0x1f, 0xfb, 0x13, 0x06, 0x60, 0x01, 0x93, 0x05, 0x01, 0x06, 0x6f, 0xf0, 0x5f, 0xfa, 0x13, 0x06, 0x60, 0x01, 0x93, 0x05, 0x81, 0x0a, 0x6f, 0xf0, 0x9f, 0xf9, 0x1b, 0x04, 0x34, 0xff, 0x93, 0x07, 0x10, 0x00, 0xe3, 0xe4, 0x87, 0xfa, 0x13, 0x06, 0x60, 0x01, 0x93, 0x05, 0x01, 0x09, 0x13, 0x05, 0x01, 0x00, 0xef, 0xe0, 0x0f, 0xe5, 0x83, 0x47, 0x01, 0x00, 0x03, 0x47, 0x11, 0x00, 0x9b, 0x97, 0x57, 0x00, 0x1b, 0x17, 0xa7, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x03, 0x47, 0x21, 0x00, 0x1b, 0x17, 0xf7, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x03, 0x47, 0x31, 0x00, 0x1b, 0x17, 0x47, 0x01, 0xb3, 0xe7, 0xe7, 0x00, 0x03, 0x47, 0x41, 0x00, 0x1b, 0x17, 0x97, 0x01, 0xb3, 0xe7, 0xe7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x27, 0x10, 0x03, 0x23, 0x20, 0xf7, 0x50, 0x83, 0x47, 0x61, 0x00, 0x83, 0x46, 0x71, 0x00, 0x9b, 0x97, 0x57, 0x00, 0x9b, 0x96, 0xa6, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x83, 0x46, 0x51, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x83, 0x46, 0x81, 0x00, 0x9b, 0x96, 0xf6, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x83, 0x46, 0x91, 0x00, 0x9b, 0x96, 0x46, 0x01, 0xb3, 0xe7, 0xd7, 0x00, 0x83, 0x46, 0xa1, 0x00, 0x9b, 0x96, 0x96, 0x01, 0xb3, 0xe7, 0xd7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x22, 0xf7, 0x50, 0x83, 0x47, 0xc1, 0x00, 0x83, 0x46, 0xd1, 0x00, 0x9b, 0x97, 0x57, 0x00, 0x9b, 0x96, 0xa6, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x83, 0x46, 0xb1, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x83, 0x46, 0xe1, 0x00, 0x9b, 0x96, 0xf6, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x83, 0x46, 0xf1, 0x00, 0x9b, 0x96, 0x46, 0x01, 0xb3, 0xe7, 0xd7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x24, 0xf7, 0x50, 0x83, 0x47, 0x11, 0x01, 0x83, 0x46, 0x21, 0x01, 0x9b, 0x97, 0x57, 0x00, 0x9b, 0x96, 0xa6, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x83, 0x46, 0x01, 0x01, 0xb3, 0xe7, 0xd7, 0x00, 0x83, 0x46, 0x31, 0x01, 0x9b, 0x96, 0xf6, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x83, 0x46, 0x41, 0x01, 0x9b, 0x96, 0x46, 0x01, 0xb3, 0xe7, 0xd7, 0x00, 0x83, 0x46, 0x51, 0x01, 0x9b, 0x96, 0x96, 0x01, 0xb3, 0xe7, 0xd7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x26, 0xf7, 0x50, 0x83, 0x47, 0x01, 0x00, 0x83, 0x46, 0x41, 0x00, 0x9b, 0x97, 0x57, 0x00, 0x9b, 0x96, 0x96, 0x01, 0xb3, 0xe7, 0xd7, 0x00, 0x83, 0x46, 0x11, 0x00, 0x9b, 0x96, 0xa6, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x83, 0x46, 0x21, 0x00, 0x9b, 0x96, 0xf6, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x83, 0x46, 0x31, 0x00, 0x9b, 0x96, 0x46, 0x01, 0xb3, 0xe7, 0xd7, 0x00, 0x93, 0xe7, 0x17, 0x00, 0x9b, 0x87, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x20, 0xf7, 0x50, 0x6f, 0xf0, 0x1f, 0xe3, 0x13, 0x01, 0x01, 0xfd, 0x23, 0x38, 0x91, 0x00, 0x83, 0xa4, 0xc5, 0x05, 0xb7, 0x26, 0x10, 0x03, 0x23, 0x3c, 0x21, 0x01, 0x23, 0x34, 0x11, 0x02, 0x23, 0x34, 0x81, 0x00, 0x23, 0x30, 0x31, 0x03, 0x13, 0x89, 0x05, 0x00, 0x8b, 0xb4, 0x24, 0x0c, 0x83, 0xa7, 0xc6, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x37, 0xf7, 0xff, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x03, 0xa7, 0x05, 0x00, 0x1b, 0x57, 0x17, 0x00, 0x1b, 0x07, 0xf7, 0xff, 0xb3, 0xe7, 0xe7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x37, 0x10, 0x03, 0x23, 0xa6, 0xf6, 0x00, 0x83, 0x27, 0x87, 0x10, 0x0f, 0x00, 0xa0, 0x0a, 0xb7, 0xf6, 0xff, 0xff, 0x93, 0x86, 0xf6, 0x0f, 0xb3, 0xf7, 0xd7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xe7, 0x07, 0x30, 0x23, 0x24, 0xf7, 0x10, 0x83, 0xa7, 0xc5, 0x00, 0x03, 0x27, 0x47, 0x34, 0x93, 0xc7, 0xf7, 0xff, 0x0f, 0x00, 0xa0, 0x0a, 0x9b, 0x97, 0x57, 0x00, 0x03, 0xa6, 0x05, 0x00, 0x93, 0xf7, 0x07, 0x02, 0x13, 0x77, 0xf7, 0xfc, 0x9b, 0x87, 0x07, 0x00, 0x93, 0x06, 0x00, 0x2a, 0x33, 0x67, 0xf7, 0x00, 0x63, 0xe8, 0xc6, 0x0a, 0xb7, 0x16, 0xff, 0xff, 0x93, 0x86, 0x16, 0xff, 0x33, 0x77, 0xd7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x36, 0x10, 0x03, 0x23, 0xa2, 0xe6, 0x34, 0x03, 0xa7, 0x46, 0x3c, 0x0f, 0x00, 0xa0, 0x0a, 0x83, 0x26, 0x09, 0x00, 0x13, 0x77, 0xf7, 0xfc, 0xb3, 0xe7, 0xe7, 0x00, 0x13, 0x07, 0x00, 0x2a, 0x63, 0x68, 0xd7, 0x08, 0x37, 0x17, 0xff, 0xff, 0x13, 0x07, 0x17, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x34, 0x10, 0x03, 0x23, 0x22, 0xf4, 0x3c, 0x83, 0x27, 0x84, 0x20, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xe7, 0x27, 0x00, 0x23, 0x24, 0xf4, 0x20, 0x13, 0x05, 0x09, 0x00, 0xef, 0xe0, 0x4f, 0xce, 0x13, 0x07, 0x10, 0x00, 0x83, 0x27, 0x84, 0x10, 0x63, 0x82, 0xe4, 0x06, 0x13, 0x07, 0x20, 0x00, 0x63, 0x86, 0xe4, 0x2a, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xf7, 0xf7, 0xfb, 0x23, 0x24, 0xf4, 0x10, 0x13, 0x05, 0xa0, 0x00, 0xef, 0x10, 0x80, 0x5a, 0x83, 0x27, 0x84, 0x10, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xe7, 0x07, 0x0c, 0x23, 0x24, 0xf4, 0x10, 0x6f, 0x00, 0x00, 0x05, 0xb7, 0x16, 0xff, 0xff, 0x93, 0x86, 0x16, 0x9f, 0x33, 0x77, 0xd7, 0x00, 0x13, 0x67, 0x07, 0x40, 0x6f, 0xf0, 0x1f, 0xf5, 0x37, 0x17, 0xff, 0xff, 0x13, 0x07, 0x17, 0x9f, 0xb3, 0xf7, 0xe7, 0x00, 0x93, 0xe7, 0x07, 0x40, 0x6f, 0xf0, 0x1f, 0xf7, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xf7, 0xf7, 0xf3, 0x23, 0x24, 0xf4, 0x10, 0x83, 0x27, 0xc4, 0x0b, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xf7, 0x87, 0xef, 0x23, 0x2e, 0xf4, 0x0a, 0x83, 0x27, 0x49, 0x00, 0x93, 0x06, 0x10, 0x00, 0x9b, 0x87, 0xa7, 0xff, 0x63, 0xe8, 0xf6, 0x02, 0x37, 0x37, 0x10, 0x03, 0x83, 0x27, 0xc7, 0x11, 0x63, 0x9c, 0xd4, 0x26, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x06, 0x00, 0xf8, 0x93, 0x86, 0xf6, 0xf3, 0xb3, 0xf7, 0xd7, 0x00, 0xb7, 0x06, 0x00, 0x80, 0xb3, 0xe7, 0xd7, 0x00, 0x23, 0x2e, 0xf7, 0x10, 0x37, 0x37, 0x10, 0x03, 0x83, 0x27, 0x07, 0x0c, 0xb7, 0x06, 0x00, 0xf0, 0xb3, 0xf7, 0xd7, 0x00, 0x83, 0x26, 0x49, 0x01, 0x13, 0x96, 0x36, 0x03, 0x63, 0x5e, 0x06, 0x24, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x06, 0x00, 0x03, 0x93, 0x86, 0x16, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x23, 0x20, 0xf7, 0x0c, 0xb7, 0x07, 0x00, 0x07, 0x83, 0xa7, 0x47, 0x5d, 0x0f, 0x00, 0xa0, 0x0a, 0x13, 0x97, 0xf7, 0x02, 0x63, 0x52, 0x07, 0x02, 0x37, 0x07, 0x01, 0x07, 0x83, 0x27, 0x07, 0x25, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xf7, 0xd7, 0xff, 0x23, 0x28, 0xf7, 0x24, 0x13, 0x05, 0xa0, 0x00, 0xef, 0x10, 0x00, 0x4a, 0x37, 0x37, 0x10, 0x03, 0x83, 0x27, 0x07, 0x14, 0x0f, 0x00, 0xa0, 0x0a, 0xb7, 0x06, 0x00, 0xfc, 0xb3, 0xf6, 0xd7, 0x00, 0x83, 0x27, 0x89, 0x00, 0x8b, 0xb7, 0x07, 0x5c, 0xb3, 0xe7, 0xd7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x06, 0x00, 0x02, 0xb3, 0xe7, 0xd7, 0x00, 0x23, 0x20, 0xf7, 0x14, 0x93, 0x07, 0x10, 0x00, 0x63, 0x96, 0xf4, 0x1e, 0x0f, 0x00, 0x50, 0x05, 0x93, 0x07, 0x20, 0x05, 0x23, 0x20, 0xf7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x93, 0x07, 0x30, 0x05, 0x23, 0x20, 0xf7, 0x00, 0x83, 0x27, 0x07, 0x01, 0x0f, 0x00, 0xa0, 0x0a, 0x93, 0xf7, 0x17, 0x00, 0xe3, 0x8a, 0x07, 0xfe, 0x13, 0x05, 0xa0, 0x00, 0xef, 0x10, 0x80, 0x43, 0x83, 0x26, 0x49, 0x00, 0x13, 0x07, 0x30, 0x00, 0x93, 0x07, 0x00, 0x52, 0x63, 0x94, 0xe6, 0x00, 0x93, 0x07, 0x00, 0x5a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x37, 0x10, 0x03, 0x23, 0x20, 0xf7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xe7, 0x17, 0x00, 0x23, 0x20, 0xf7, 0x00, 0x13, 0x05, 0xa0, 0x00, 0xef, 0x10, 0x40, 0x40, 0x37, 0x39, 0x10, 0x03, 0x03, 0x24, 0x09, 0x01, 0x0f, 0x00, 0xa0, 0x0a, 0x13, 0x74, 0x14, 0x00, 0xe3, 0x0a, 0x04, 0xfe, 0xb7, 0x07, 0x00, 0x07, 0x83, 0xa7, 0x47, 0x5d, 0x0f, 0x00, 0xa0, 0x0a, 0x13, 0x97, 0xf7, 0x02, 0x63, 0x48, 0x07, 0x18, 0xb7, 0x37, 0x10, 0x03, 0x83, 0xa7, 0x07, 0x01, 0x0f, 0x00, 0xa0, 0x0a, 0x0b, 0xb7, 0x47, 0x6d, 0x63, 0x18, 0x07, 0x28, 0x37, 0x39, 0x10, 0x03, 0x83, 0x27, 0x89, 0x01, 0x0f, 0x00, 0xa0, 0x0a, 0x93, 0xf7, 0x17, 0x00, 0xe3, 0x8a, 0x07, 0xfe, 0x03, 0x27, 0xc9, 0x08, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x09, 0x00, 0x80, 0x33, 0x67, 0x37, 0x01, 0x23, 0x26, 0xe9, 0x08, 0x13, 0x05, 0xa0, 0x00, 0xef, 0x10, 0x40, 0x39, 0x03, 0x27, 0xc9, 0x08, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x0b, 0x37, 0x07, 0x78, 0x23, 0x26, 0xe9, 0x08, 0x13, 0x05, 0xa0, 0x00, 0xef, 0x10, 0x80, 0x37, 0x37, 0x27, 0x10, 0x03, 0x83, 0x27, 0x47, 0x01, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb3, 0xe7, 0x37, 0x01, 0x23, 0x2a, 0xf7, 0x00, 0x13, 0x05, 0xa0, 0x00, 0xef, 0x10, 0x80, 0x35, 0x83, 0x27, 0xc9, 0x10, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0xfa, 0x13, 0x07, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x23, 0x26, 0xf9, 0x10, 0x93, 0x07, 0x10, 0x00, 0x63, 0x9c, 0xf4, 0x20, 0x83, 0x27, 0xc9, 0x11, 0x0f, 0x00, 0xa0, 0x0a, 0x93, 0xf7, 0xf7, 0xf3, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xe7, 0x07, 0x04, 0x23, 0x2e, 0xf9, 0x10, 0x6f, 0x00, 0xc0, 0x1f, 0x0f, 0x00, 0xa0, 0x0a, 0x93, 0xf7, 0xf7, 0xf3, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xe7, 0x07, 0x08, 0x23, 0x24, 0xf4, 0x10, 0x03, 0x27, 0x04, 0x06, 0x0f, 0x00, 0xa0, 0x0a, 0x83, 0x27, 0xc4, 0x0b, 0x0f, 0x00, 0xa0, 0x0a, 0x0b, 0x37, 0x07, 0x51, 0x1b, 0x07, 0xe7, 0xff, 0x93, 0xf7, 0x87, 0xef, 0xb3, 0xe7, 0xe7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xe7, 0x07, 0x10, 0x23, 0x2e, 0xf4, 0x0a, 0x83, 0x27, 0xc4, 0x11, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0x08, 0x8b, 0xb7, 0x07, 0x78, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0x2e, 0xf4, 0x10, 0x6f, 0xf0, 0x5f, 0xd7, 0x0f, 0x00, 0xa0, 0x0a, 0xb7, 0x06, 0x00, 0x89, 0x93, 0x86, 0xf6, 0xff, 0xb3, 0xf7, 0xd7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x06, 0x00, 0x22, 0x6f, 0xf0, 0x9f, 0xd8, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x36, 0x00, 0x01, 0x93, 0x86, 0x76, 0x08, 0x6f, 0xf0, 0x9f, 0xda, 0xb7, 0x07, 0x00, 0x07, 0x03, 0xa7, 0x47, 0x5d, 0x0f, 0x00, 0xa0, 0x0a, 0x93, 0x16, 0xf7, 0x02, 0x93, 0x07, 0x20, 0x06, 0xe3, 0xc4, 0x06, 0xe4, 0x83, 0x26, 0x49, 0x00, 0x13, 0x07, 0x30, 0x00, 0x93, 0x07, 0x20, 0x17, 0xe3, 0x9c, 0xe6, 0xe2, 0x93, 0x07, 0x20, 0x1f, 0x6f, 0xf0, 0x1f, 0xe3, 0x83, 0x27, 0xc9, 0x10, 0x0f, 0x00, 0xa0, 0x0a, 0x37, 0x07, 0x00, 0xfa, 0x13, 0x07, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0x04, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0x26, 0xf9, 0x10, 0x13, 0x05, 0xa0, 0x00, 0xef, 0x10, 0x40, 0x22, 0x83, 0x27, 0x49, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xe7, 0x17, 0x00, 0x23, 0x22, 0xf9, 0x00, 0x13, 0x07, 0x30, 0x00, 0x37, 0x39, 0x10, 0x03, 0x83, 0x27, 0x89, 0x01, 0x0f, 0x00, 0xa0, 0x0a, 0x93, 0xf7, 0x77, 0x00, 0xe3, 0x9a, 0xe7, 0xfe, 0x37, 0x07, 0x01, 0x07, 0x83, 0x27, 0x07, 0x25, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xf7, 0xe7, 0xff, 0x23, 0x28, 0xf7, 0x24, 0x13, 0x05, 0xa0, 0x00, 0xef, 0x10, 0x80, 0x1d, 0x83, 0x27, 0x49, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xf7, 0xe7, 0xff, 0x23, 0x22, 0xf9, 0x00, 0x93, 0x09, 0x10, 0x00, 0x37, 0x39, 0x10, 0x03, 0x83, 0x27, 0x89, 0x01, 0x0f, 0x00, 0xa0, 0x0a, 0x93, 0xf7, 0x77, 0x00, 0xe3, 0x9a, 0x37, 0xff, 0x13, 0x05, 0xf0, 0x00, 0xef, 0x10, 0x40, 0x1a, 0xe3, 0x94, 0x34, 0xdd, 0x83, 0x27, 0x89, 0x10, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xf7, 0xf7, 0xf3, 0x23, 0x24, 0xf9, 0x10, 0x83, 0x27, 0xc9, 0x10, 0x0f, 0x00, 0xa0, 0x0a, 0x37, 0x07, 0x00, 0xfa, 0x13, 0x07, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0x02, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0x26, 0xf9, 0x10, 0x13, 0x05, 0x10, 0x00, 0xef, 0x10, 0x00, 0x16, 0x0f, 0x00, 0x50, 0x05, 0x93, 0x07, 0x10, 0x40, 0x23, 0x20, 0xf9, 0x00, 0x37, 0x37, 0x10, 0x03, 0x83, 0x27, 0x07, 0x01, 0x0f, 0x00, 0xa0, 0x0a, 0x93, 0xf7, 0x17, 0x00, 0xe3, 0x8a, 0x07, 0xfe, 0x6f, 0xf0, 0x5f, 0xd6, 0x37, 0x04, 0x10, 0x00, 0x33, 0xf4, 0x87, 0x00, 0xe3, 0x06, 0x04, 0xd6, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x95, 0xd1, 0xef, 0x00, 0x50, 0x6b, 0x13, 0x04, 0x00, 0x00, 0x13, 0x05, 0x04, 0x00, 0x83, 0x30, 0x81, 0x02, 0x03, 0x34, 0x81, 0x00, 0x83, 0x34, 0x01, 0x01, 0x03, 0x39, 0x81, 0x01, 0x83, 0x39, 0x01, 0x02, 0x13, 0x01, 0x01, 0x03, 0x67, 0x80, 0x00, 0x00, 0x37, 0x27, 0x10, 0x03, 0x83, 0x27, 0x07, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x8b, 0xb6, 0x47, 0x1c, 0x0b, 0xb5, 0x87, 0x2c, 0x3b, 0x05, 0xd5, 0x00, 0x1b, 0x05, 0x25, 0xff, 0x8b, 0xb6, 0x27, 0x0c, 0x3b, 0x05, 0xd5, 0x00, 0x93, 0x06, 0x10, 0x00, 0xbb, 0x95, 0xa6, 0x00, 0x93, 0xf7, 0x37, 0x00, 0x13, 0x85, 0x05, 0x00, 0x63, 0x8a, 0x07, 0x02, 0x03, 0x27, 0x47, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x13, 0x76, 0x37, 0x00, 0x93, 0x87, 0x05, 0x00, 0x63, 0x00, 0x06, 0x02, 0x8b, 0x37, 0x87, 0x2c, 0x0b, 0x36, 0x47, 0x1c, 0xbb, 0x87, 0xc7, 0x00, 0x9b, 0x87, 0x27, 0xff, 0x0b, 0x37, 0x27, 0x0c, 0xbb, 0x87, 0xe7, 0x00, 0xbb, 0x97, 0xf6, 0x00, 0x3b, 0x05, 0xf5, 0x00, 0x67, 0x80, 0x00, 0x00, 0x13, 0x01, 0x01, 0xff, 0xb7, 0x37, 0x10, 0x03, 0x23, 0x34, 0x11, 0x00, 0x23, 0x30, 0x81, 0x00, 0x03, 0xa7, 0x07, 0x01, 0x0f, 0x00, 0xa0, 0x0a, 0x93, 0x16, 0x97, 0x02, 0x63, 0xd4, 0x06, 0x04, 0x83, 0xa5, 0x87, 0x34, 0x0f, 0x00, 0xa0, 0x0a, 0x8b, 0xb5, 0x85, 0x65, 0x03, 0xa4, 0x87, 0x3c, 0x0f, 0x00, 0xa0, 0x0a, 0x93, 0x07, 0x20, 0x00, 0x0b, 0x34, 0x84, 0x65, 0x63, 0x98, 0xf5, 0x06, 0x03, 0x27, 0x45, 0x01, 0xb7, 0x17, 0xff, 0xff, 0x93, 0x87, 0x07, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x63, 0x14, 0xb4, 0x04, 0x23, 0x2a, 0xf5, 0x00, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x75, 0xd7, 0x6f, 0x00, 0x00, 0x02, 0x83, 0x27, 0x45, 0x01, 0x37, 0x17, 0x00, 0x00, 0x93, 0xf7, 0x07, 0xff, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0x2a, 0xf5, 0x00, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x25, 0xd5, 0xef, 0x00, 0xd0, 0x59, 0x13, 0x05, 0x10, 0x00, 0x83, 0x30, 0x81, 0x00, 0x03, 0x34, 0x01, 0x00, 0x13, 0x01, 0x01, 0x01, 0x67, 0x80, 0x00, 0x00, 0x93, 0xe7, 0x17, 0x00, 0x23, 0x2a, 0xf5, 0x00, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x05, 0xda, 0x6f, 0xf0, 0x9f, 0xfd, 0x63, 0x94, 0x05, 0x02, 0x83, 0x27, 0x45, 0x01, 0x37, 0x17, 0x00, 0x00, 0x13, 0x07, 0x17, 0x00, 0x93, 0xf7, 0x07, 0xff, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0x2a, 0xf5, 0x00, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x85, 0xdc, 0x6f, 0xf0, 0x1f, 0xfb, 0x03, 0x25, 0xc5, 0x05, 0xb7, 0x07, 0x00, 0x20, 0x33, 0x75, 0xf5, 0x00, 0xe3, 0x04, 0x05, 0xfa, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0xe5, 0xde, 0xef, 0x00, 0x10, 0x53, 0x37, 0x45, 0x02, 0x00, 0x93, 0x05, 0x04, 0x00, 0x13, 0x05, 0xd5, 0xdf, 0xef, 0x00, 0x10, 0x52, 0x13, 0x05, 0x00, 0x00, 0x6f, 0xf0, 0x5f, 0xf8, 0x1b, 0x55, 0x15, 0x00, 0x13, 0x01, 0x01, 0xfd, 0x1b, 0x17, 0x45, 0x01, 0x37, 0x46, 0x23, 0x01, 0x37, 0xc5, 0xdc, 0xfe, 0x0b, 0x54, 0x91, 0xfa, 0x23, 0x34, 0x11, 0x02, 0x23, 0x30, 0x21, 0x03, 0x93, 0x88, 0x05, 0x00, 0x93, 0x04, 0x07, 0x00, 0xb7, 0x06, 0x00, 0x40, 0x93, 0x07, 0x00, 0x00, 0x1b, 0x06, 0x76, 0x56, 0x1b, 0x05, 0x85, 0xa9, 0x63, 0x9c, 0x17, 0x03, 0xb7, 0xc7, 0xdc, 0xfe, 0x37, 0x45, 0x23, 0x01, 0x13, 0x04, 0x00, 0x00, 0x0b, 0x37, 0x07, 0x7c, 0x37, 0x03, 0x00, 0x40, 0x9b, 0x87, 0x87, 0xa9, 0x1b, 0x05, 0x75, 0x56, 0x63, 0x14, 0x14, 0x05, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x25, 0xe4, 0xef, 0x00, 0x10, 0x4b, 0x13, 0x05, 0x00, 0x00, 0x6f, 0x00, 0x40, 0x08, 0x0f, 0x00, 0x50, 0x05, 0x8b, 0xb5, 0x06, 0x7c, 0x3b, 0x88, 0xc7, 0x00, 0x23, 0xa0, 0x05, 0x01, 0x0f, 0x00, 0x50, 0x05, 0x3b, 0x08, 0xd7, 0x00, 0xbb, 0x85, 0xa7, 0x00, 0x0b, 0x38, 0x08, 0x7c, 0x23, 0x20, 0xb8, 0x00, 0x9b, 0x87, 0x17, 0x00, 0x9b, 0x86, 0x46, 0x00, 0x6f, 0xf0, 0xdf, 0xf9, 0x1b, 0x19, 0x24, 0x00, 0x0b, 0x36, 0x09, 0x7c, 0x33, 0x06, 0xe6, 0x00, 0x8b, 0x45, 0xc3, 0x40, 0x0f, 0x00, 0xa0, 0x0a, 0x3b, 0x86, 0x87, 0x00, 0x63, 0x06, 0xb6, 0x04, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x05, 0xe1, 0x23, 0x34, 0xb1, 0x00, 0x23, 0x30, 0xc1, 0x00, 0xef, 0x00, 0x90, 0x44, 0x37, 0x05, 0x00, 0x40, 0xbb, 0x04, 0x95, 0x00, 0xbb, 0x86, 0x24, 0x01, 0x37, 0x45, 0x02, 0x00, 0x0b, 0x46, 0xb1, 0xf8, 0x13, 0x05, 0x95, 0xe2, 0xef, 0x00, 0xd0, 0x42, 0x13, 0x05, 0x10, 0x00, 0x83, 0x30, 0x81, 0x02, 0x0b, 0x44, 0x91, 0xfa, 0x03, 0x39, 0x01, 0x02, 0x13, 0x01, 0x01, 0x03, 0x67, 0x80, 0x00, 0x00, 0x8b, 0x45, 0x23, 0x51, 0x0f, 0x00, 0xa0, 0x0a, 0x3b, 0x06, 0x85, 0x00, 0x63, 0x04, 0xb6, 0x02, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x05, 0xe1, 0x23, 0x34, 0xb1, 0x00, 0x23, 0x30, 0xc1, 0x00, 0xef, 0x00, 0x10, 0x3f, 0xb7, 0x06, 0x00, 0x10, 0xbb, 0x86, 0x86, 0x00, 0x9b, 0x96, 0x26, 0x00, 0x6f, 0xf0, 0x9f, 0xfa, 0x1b, 0x04, 0x14, 0x00, 0x6f, 0xf0, 0xdf, 0xf1, 0x83, 0x27, 0xc5, 0x05, 0x13, 0x97, 0xe7, 0x02, 0x63, 0x4e, 0x07, 0x04, 0x37, 0x37, 0x10, 0x03, 0x83, 0x27, 0x07, 0x11, 0x0f, 0x00, 0xa0, 0x0a, 0xb7, 0x86, 0x80, 0x80, 0x93, 0x86, 0x06, 0x08, 0xb3, 0xf7, 0xd7, 0x00, 0x83, 0x26, 0xc5, 0x03, 0xb3, 0xe7, 0xd7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x28, 0xf7, 0x10, 0x83, 0x27, 0xc5, 0x05, 0x93, 0x96, 0xf7, 0x02, 0x63, 0xc2, 0x06, 0x02, 0x83, 0x27, 0x47, 0x11, 0x0f, 0x00, 0xa0, 0x0a, 0x93, 0xf6, 0x07, 0xf8, 0x83, 0x27, 0x05, 0x04, 0x93, 0xf7, 0xf7, 0x07, 0xb3, 0xe7, 0xd7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x2a, 0xf7, 0x10, 0x67, 0x80, 0x00, 0x00, 0x13, 0x01, 0x01, 0xff, 0x23, 0x34, 0x11, 0x00, 0x23, 0x30, 0x81, 0x00, 0x13, 0x04, 0x05, 0x00, 0xef, 0xf0, 0x4f, 0x83, 0x13, 0x05, 0x04, 0x00, 0xef, 0xf0, 0x1f, 0xf8, 0x13, 0x05, 0x04, 0x00, 0xef, 0xf0, 0x0f, 0x9b, 0x13, 0x05, 0x04, 0x00, 0xef, 0xf0, 0xcf, 0xbb, 0x13, 0x05, 0x04, 0x00, 0xef, 0xe0, 0x4f, 0x9d, 0x93, 0x05, 0x04, 0x00, 0x03, 0x34, 0x01, 0x00, 0x83, 0x30, 0x81, 0x00, 0x13, 0x05, 0x00, 0x00, 0x13, 0x01, 0x01, 0x01, 0x6f, 0xf0, 0x4f, 0xeb, 0x13, 0x01, 0x01, 0xf8, 0x23, 0x34, 0x91, 0x06, 0x23, 0x3c, 0x71, 0x03, 0x23, 0x3c, 0x11, 0x06, 0x23, 0x38, 0x81, 0x06, 0x23, 0x30, 0x21, 0x07, 0x23, 0x3c, 0x31, 0x05, 0x23, 0x38, 0x41, 0x05, 0x23, 0x34, 0x51, 0x05, 0x23, 0x30, 0x61, 0x05, 0x23, 0x38, 0x81, 0x03, 0x23, 0x34, 0x91, 0x03, 0x23, 0x30, 0xa1, 0x03, 0x23, 0x3c, 0xb1, 0x01, 0x93, 0x0b, 0x05, 0x00, 0xef, 0xf0, 0x9f, 0xf7, 0x9b, 0x04, 0x05, 0x00, 0x63, 0x98, 0x04, 0x04, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x95, 0xe5, 0xef, 0x00, 0x10, 0x2d, 0x83, 0x30, 0x81, 0x07, 0x03, 0x34, 0x01, 0x07, 0x13, 0x85, 0x04, 0x00, 0x03, 0x39, 0x01, 0x06, 0x83, 0x34, 0x81, 0x06, 0x83, 0x39, 0x81, 0x05, 0x03, 0x3a, 0x01, 0x05, 0x83, 0x3a, 0x81, 0x04, 0x03, 0x3b, 0x01, 0x04, 0x83, 0x3b, 0x81, 0x03, 0x03, 0x3c, 0x01, 0x03, 0x83, 0x3c, 0x81, 0x02, 0x03, 0x3d, 0x01, 0x02, 0x83, 0x3d, 0x81, 0x01, 0x13, 0x01, 0x01, 0x08, 0x67, 0x80, 0x00, 0x00, 0x83, 0xa7, 0x4b, 0x01, 0x13, 0x04, 0x10, 0x00, 0x8b, 0xb7, 0xc7, 0x3c, 0x63, 0x94, 0x87, 0x00, 0x13, 0x04, 0x20, 0x00, 0x37, 0xfa, 0xff, 0xff, 0xb7, 0x19, 0x00, 0x00, 0x37, 0x2b, 0x10, 0x03, 0x13, 0x0d, 0x00, 0x00, 0x13, 0x0c, 0x00, 0x00, 0xb7, 0x04, 0x00, 0x40, 0xb7, 0x0c, 0x00, 0x40, 0x13, 0x09, 0x00, 0x04, 0xb7, 0x4a, 0x02, 0x00, 0x93, 0x0d, 0x3a, 0x00, 0x93, 0x89, 0x09, 0xaa, 0x0b, 0xb7, 0x0c, 0x7c, 0x93, 0x07, 0x00, 0x00, 0x13, 0xf6, 0x17, 0x00, 0x9b, 0x06, 0x07, 0x00, 0x63, 0x14, 0x06, 0x00, 0x93, 0xc6, 0xf6, 0xff, 0x0f, 0x00, 0x50, 0x05, 0x8b, 0x56, 0x47, 0x58, 0x9b, 0x87, 0x17, 0x00, 0xe3, 0x92, 0x27, 0xff, 0x83, 0x27, 0x0b, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x13, 0x07, 0x3a, 0x0f, 0xb3, 0xf7, 0xe7, 0x00, 0x93, 0xe7, 0x07, 0x6f, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x20, 0xfb, 0x00, 0x03, 0x27, 0x0b, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0xe3, 0x9c, 0xe7, 0xfe, 0x13, 0x07, 0xb0, 0x00, 0x93, 0x08, 0x10, 0x00, 0x13, 0x08, 0x10, 0x01, 0x9b, 0x07, 0xb7, 0x00, 0xbb, 0x97, 0xf8, 0x00, 0xbb, 0x87, 0x97, 0x01, 0x8b, 0xb7, 0x07, 0x7c, 0x13, 0x86, 0x04, 0x00, 0x93, 0x06, 0x00, 0x00, 0x13, 0xf5, 0x16, 0x00, 0x93, 0x05, 0x06, 0x00, 0x63, 0x16, 0x05, 0x00, 0x93, 0x45, 0xf6, 0xff, 0x9b, 0x85, 0x05, 0x00, 0x03, 0xa5, 0x07, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x63, 0x92, 0xa5, 0x2e, 0x9b, 0x86, 0x16, 0x00, 0x1b, 0x06, 0x46, 0x00, 0x93, 0x87, 0x47, 0x00, 0xe3, 0x9a, 0x26, 0xfd, 0x13, 0x06, 0x07, 0x00, 0x93, 0x05, 0x0c, 0x00, 0x13, 0x85, 0x4a, 0xe8, 0x23, 0x34, 0xe1, 0x00, 0xef, 0x00, 0x90, 0x19, 0x9b, 0x07, 0x4d, 0x00, 0x83, 0xa6, 0x0b, 0x01, 0x13, 0x06, 0xf0, 0x0f, 0x03, 0x37, 0x81, 0x00, 0x3b, 0x16, 0xf6, 0x00, 0x13, 0x46, 0xf6, 0xff, 0x3b, 0x17, 0xf7, 0x00, 0x33, 0x76, 0xd6, 0x00, 0x33, 0x66, 0xe6, 0x00, 0x23, 0xa8, 0xcb, 0x00, 0x93, 0x07, 0x10, 0x00, 0x63, 0x12, 0xfc, 0x02, 0x37, 0x27, 0x10, 0x03, 0x83, 0x27, 0x07, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb3, 0xf7, 0xb7, 0x01, 0x93, 0xe7, 0x47, 0x6a, 0x23, 0x20, 0xf7, 0x00, 0xb7, 0x0c, 0x80, 0x40, 0x83, 0x27, 0x0b, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0xb3, 0xf7, 0xb7, 0x01, 0x93, 0xe7, 0x47, 0x6a, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x20, 0xfb, 0x00, 0x03, 0x27, 0x0b, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0xe3, 0x1c, 0xf7, 0xfe, 0xb7, 0x17, 0x00, 0x00, 0x9b, 0x87, 0x07, 0x80, 0xbb, 0x87, 0xfc, 0x00, 0x8b, 0xb7, 0x07, 0x7c, 0x93, 0x86, 0x04, 0x00, 0x13, 0x07, 0x00, 0x00, 0x93, 0x75, 0x17, 0x00, 0x13, 0x86, 0x06, 0x00, 0x63, 0x96, 0x05, 0x00, 0x13, 0xc6, 0xf6, 0xff, 0x1b, 0x06, 0x06, 0x00, 0x83, 0xa5, 0x07, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x63, 0x14, 0xb6, 0x1e, 0x1b, 0x07, 0x17, 0x00, 0x9b, 0x86, 0x46, 0x00, 0x93, 0x87, 0x47, 0x00, 0xe3, 0x1a, 0x27, 0xfd, 0x13, 0x07, 0x00, 0x00, 0x1b, 0x06, 0x17, 0x00, 0x37, 0x45, 0x02, 0x00, 0x13, 0x16, 0x26, 0x00, 0x93, 0x05, 0x0c, 0x00, 0x13, 0x05, 0x55, 0xea, 0x23, 0x34, 0xe1, 0x00, 0xef, 0x00, 0xd0, 0x0b, 0x9b, 0x06, 0xcd, 0x00, 0x03, 0xa6, 0x0b, 0x01, 0x93, 0x07, 0xf0, 0x00, 0x03, 0x37, 0x81, 0x00, 0xbb, 0x97, 0xd7, 0x00, 0x93, 0xc7, 0xf7, 0xff, 0xb3, 0xf7, 0xc7, 0x00, 0x3b, 0x17, 0xd7, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0xa8, 0xfb, 0x00, 0x93, 0x07, 0x10, 0x00, 0x63, 0x12, 0xfc, 0x02, 0x37, 0x27, 0x10, 0x03, 0x83, 0x27, 0x07, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb3, 0xf7, 0xb7, 0x01, 0xb3, 0xe7, 0x37, 0x01, 0x23, 0x20, 0xf7, 0x00, 0xb7, 0x0c, 0x00, 0x44, 0x83, 0x27, 0x0b, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0xb3, 0xf7, 0xb7, 0x01, 0xb3, 0xe7, 0x37, 0x01, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x20, 0xfb, 0x00, 0x03, 0x27, 0x0b, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0xe3, 0x1c, 0xf7, 0xfe, 0x13, 0x07, 0x90, 0x00, 0x93, 0x08, 0x10, 0x00, 0x13, 0x08, 0xe0, 0x00, 0xbb, 0x97, 0xe8, 0x00, 0xbb, 0x87, 0x97, 0x01, 0x8b, 0xb7, 0x07, 0x7c, 0x13, 0x86, 0x04, 0x00, 0x93, 0x06, 0x00, 0x00, 0x13, 0xf5, 0x16, 0x00, 0x93, 0x05, 0x06, 0x00, 0x63, 0x16, 0x05, 0x00, 0x93, 0x45, 0xf6, 0xff, 0x9b, 0x85, 0x05, 0x00, 0x03, 0xa5, 0x07, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x63, 0x90, 0xa5, 0x12, 0x9b, 0x86, 0x16, 0x00, 0x1b, 0x06, 0x46, 0x00, 0x93, 0x87, 0x47, 0x00, 0xe3, 0x9a, 0x26, 0xfd, 0x93, 0x07, 0xd0, 0x00, 0x63, 0x08, 0xf7, 0x00, 0x93, 0x07, 0x90, 0x00, 0x93, 0x06, 0x00, 0x00, 0x63, 0x08, 0xf7, 0x00, 0x1b, 0x07, 0x67, 0xff, 0x93, 0x06, 0x10, 0x00, 0xbb, 0x96, 0xe6, 0x00, 0x37, 0x45, 0x02, 0x00, 0x13, 0x86, 0x06, 0x00, 0x93, 0x05, 0x0c, 0x00, 0x13, 0x05, 0x85, 0xec, 0x23, 0x34, 0xd1, 0x00, 0xef, 0x00, 0x00, 0x7c, 0x03, 0xa7, 0x0b, 0x01, 0x93, 0x07, 0xf0, 0x00, 0x83, 0x36, 0x81, 0x00, 0xbb, 0x97, 0xa7, 0x01, 0x93, 0xc7, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x3b, 0x97, 0xa6, 0x01, 0xb3, 0xe7, 0xe7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0x23, 0xa8, 0xfb, 0x00, 0x1b, 0x0c, 0x1c, 0x00, 0x63, 0x1e, 0x84, 0x03, 0x13, 0x07, 0x20, 0x00, 0x93, 0x04, 0x10, 0x00, 0xe3, 0x1c, 0xe4, 0xca, 0x83, 0xa6, 0x4b, 0x01, 0x37, 0xf7, 0xff, 0xff, 0x13, 0x07, 0xf7, 0x0f, 0x33, 0x77, 0xd7, 0x00, 0x8b, 0xb6, 0x07, 0x7d, 0x8b, 0xb7, 0x07, 0x3c, 0x63, 0x96, 0xf6, 0x06, 0x37, 0x45, 0x02, 0x00, 0x23, 0xaa, 0xeb, 0x00, 0x13, 0x05, 0x25, 0xef, 0x6f, 0xf0, 0x9f, 0xc8, 0x93, 0x07, 0x10, 0x00, 0x63, 0x10, 0xfc, 0x04, 0x37, 0x27, 0x10, 0x03, 0x83, 0x27, 0x07, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb3, 0xf7, 0xb7, 0x01, 0x93, 0xe7, 0x07, 0x6f, 0x23, 0x20, 0xf7, 0x00, 0x83, 0x27, 0x47, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb3, 0xf7, 0xb7, 0x01, 0x93, 0xe7, 0x17, 0x6f, 0x23, 0x22, 0xf7, 0x00, 0xb7, 0x04, 0x00, 0x48, 0xb7, 0x0c, 0x00, 0x48, 0x1b, 0x0d, 0x0d, 0x01, 0x13, 0x0b, 0x4b, 0x00, 0x6f, 0xf0, 0xdf, 0xcb, 0x13, 0x07, 0x10, 0x00, 0x6f, 0xf0, 0xdf, 0xe2, 0x13, 0x67, 0x07, 0x10, 0x37, 0x45, 0x02, 0x00, 0x23, 0xaa, 0xeb, 0x00, 0x13, 0x05, 0x05, 0xf1, 0x6f, 0xf0, 0xdf, 0xc1, 0x1b, 0x07, 0x17, 0x00, 0xe3, 0x16, 0x07, 0xeb, 0x13, 0x07, 0xd0, 0x00, 0x6f, 0xf0, 0xdf, 0xef, 0x1b, 0x07, 0x17, 0x00, 0xe3, 0x12, 0x07, 0xcf, 0x13, 0x07, 0x00, 0x01, 0x6f, 0xf0, 0x5f, 0xd2, 0x13, 0x01, 0x01, 0xfe, 0xb7, 0x07, 0xb0, 0x00, 0x0b, 0x54, 0x91, 0xf8, 0x23, 0x38, 0x21, 0x01, 0x23, 0x3c, 0x11, 0x00, 0x9b, 0x87, 0x07, 0x0b, 0x03, 0x29, 0x05, 0x01, 0x23, 0x28, 0xf5, 0x00, 0x83, 0x27, 0x45, 0x01, 0x83, 0x24, 0xc5, 0x05, 0x37, 0x17, 0x00, 0x00, 0x93, 0xf7, 0x07, 0xff, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0x2a, 0xf5, 0x00, 0x93, 0xf7, 0x74, 0xff, 0x93, 0xe7, 0x57, 0x00, 0x23, 0x2e, 0xf5, 0x04, 0x13, 0x04, 0x05, 0x00, 0xef, 0xf0, 0x5f, 0xb1, 0xb7, 0x37, 0x10, 0x03, 0x83, 0xa7, 0x07, 0x01, 0x0f, 0x00, 0xa0, 0x0a, 0x13, 0x97, 0xb7, 0x02, 0x63, 0x5e, 0x07, 0x00, 0x13, 0x05, 0x00, 0x00, 0x83, 0x30, 0x81, 0x01, 0x0b, 0x44, 0x91, 0xf8, 0x03, 0x39, 0x01, 0x01, 0x13, 0x01, 0x01, 0x02, 0x67, 0x80, 0x00, 0x00, 0x13, 0x05, 0x04, 0x00, 0xef, 0xf0, 0x1f, 0x83, 0x1b, 0x05, 0x05, 0x00, 0xe3, 0x0e, 0x05, 0xfc, 0x23, 0x2e, 0x94, 0x04, 0x23, 0x28, 0x24, 0x01, 0x13, 0x05, 0x10, 0x00, 0x6f, 0xf0, 0x1f, 0xfd, 0x83, 0x27, 0xc5, 0x05, 0x13, 0x01, 0x01, 0xfe, 0x23, 0x38, 0x91, 0x00, 0x23, 0x3c, 0x11, 0x00, 0x23, 0x34, 0x81, 0x00, 0x13, 0x97, 0x17, 0x03, 0x93, 0x04, 0x05, 0x00, 0x63, 0x4a, 0x07, 0x02, 0xef, 0xf0, 0x9f, 0xf4, 0x1b, 0x04, 0x05, 0x00, 0x63, 0x14, 0x04, 0x02, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x45, 0xf3, 0xef, 0x00, 0xc0, 0x5f, 0x13, 0x05, 0x04, 0x00, 0x83, 0x30, 0x81, 0x01, 0x03, 0x34, 0x81, 0x00, 0x83, 0x34, 0x01, 0x01, 0x13, 0x01, 0x01, 0x02, 0x67, 0x80, 0x00, 0x00, 0x83, 0xa7, 0xc4, 0x05, 0x93, 0xf7, 0x17, 0x00, 0x63, 0x90, 0x07, 0x02, 0x13, 0x85, 0x04, 0x00, 0xef, 0xf0, 0x1f, 0xab, 0x1b, 0x04, 0x05, 0x00, 0x63, 0x18, 0x04, 0x00, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x65, 0xf6, 0x6f, 0xf0, 0x1f, 0xfc, 0x83, 0xa7, 0xc4, 0x05, 0x13, 0x04, 0x10, 0x00, 0x13, 0x97, 0x07, 0x03, 0xe3, 0x4a, 0x07, 0xfa, 0x37, 0x67, 0x00, 0x00, 0x13, 0x07, 0x37, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0xae, 0xf4, 0x04, 0x6f, 0xf0, 0x1f, 0xfa, 0x83, 0xa7, 0xc5, 0x05, 0x13, 0x01, 0x01, 0xfe, 0x23, 0x34, 0x81, 0x00, 0x23, 0x3c, 0x11, 0x00, 0x23, 0x38, 0x91, 0x00, 0x13, 0x97, 0xf7, 0x02, 0x13, 0x84, 0x05, 0x00, 0x63, 0x46, 0x07, 0x10, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x07, 0x01, 0x07, 0x23, 0xaa, 0x07, 0x24, 0xb7, 0x04, 0x00, 0x03, 0x83, 0xa7, 0x04, 0x16, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xf7, 0xc7, 0xff, 0x23, 0xa0, 0xf4, 0x16, 0x13, 0x05, 0xa0, 0x00, 0xef, 0x00, 0xc0, 0x7b, 0x83, 0xa7, 0x04, 0x16, 0x0f, 0x00, 0xa0, 0x0a, 0x93, 0xf7, 0x77, 0xef, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xa0, 0xf4, 0x16, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xe7, 0x27, 0x00, 0x23, 0xa0, 0xf4, 0x16, 0x13, 0x05, 0xa0, 0x00, 0xef, 0x00, 0x00, 0x79, 0x83, 0xa7, 0x04, 0x16, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xe7, 0x17, 0x00, 0x23, 0xa0, 0xf4, 0x16, 0x13, 0x05, 0x40, 0x01, 0xef, 0x00, 0x40, 0x77, 0x83, 0xa5, 0xc4, 0x16, 0x0f, 0x00, 0xa0, 0x0a, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x15, 0xf9, 0xef, 0x00, 0x00, 0x4f, 0xef, 0xd0, 0x8f, 0xd5, 0x93, 0x04, 0x05, 0x00, 0x93, 0x05, 0x05, 0x00, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0xf5, 0xfc, 0xef, 0x00, 0x80, 0x4d, 0x63, 0xd0, 0x04, 0x0a, 0x13, 0x05, 0x04, 0x00, 0xef, 0xd0, 0x4f, 0xd6, 0x83, 0x27, 0xc4, 0x05, 0x93, 0xf7, 0x17, 0x00, 0x63, 0x8a, 0x07, 0x0a, 0xb7, 0x45, 0x02, 0x00, 0x37, 0x45, 0x02, 0x00, 0x93, 0x85, 0x65, 0xfe, 0x13, 0x05, 0xc5, 0xfe, 0xef, 0x00, 0xc0, 0x4a, 0x83, 0x25, 0x04, 0x00, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x75, 0x00, 0xef, 0x00, 0xc0, 0x49, 0x83, 0x25, 0x44, 0x00, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x05, 0x02, 0xef, 0x00, 0xc0, 0x48, 0x83, 0x27, 0xc4, 0x00, 0x93, 0xf7, 0x17, 0x00, 0x63, 0x9e, 0x07, 0x08, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x85, 0x05, 0xef, 0x00, 0x40, 0x47, 0x6f, 0x00, 0xc0, 0x09, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x05, 0xfb, 0xef, 0x00, 0x40, 0x46, 0xb7, 0x07, 0x00, 0x03, 0x03, 0xa7, 0x07, 0x16, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x13, 0x67, 0x07, 0x10, 0x23, 0xa0, 0xe7, 0x16, 0x0f, 0x00, 0x50, 0x05, 0x13, 0x05, 0xa0, 0x00, 0x23, 0xa4, 0x07, 0x16, 0xef, 0x00, 0xc0, 0x6a, 0x6f, 0xf0, 0xdf, 0xf4, 0x83, 0x27, 0x44, 0x00, 0x13, 0x07, 0x20, 0x00, 0x63, 0x8a, 0xe7, 0x00, 0x13, 0x07, 0x30, 0x00, 0xe3, 0x9e, 0xe7, 0xf4, 0x13, 0x05, 0xc0, 0x5d, 0x6f, 0x00, 0x80, 0x00, 0x13, 0x05, 0x80, 0x70, 0xef, 0xd0, 0x8f, 0xc7, 0x6f, 0xf0, 0x9f, 0xf4, 0x13, 0x05, 0x04, 0x00, 0xef, 0xf0, 0x9f, 0xdd, 0x1b, 0x05, 0x05, 0x00, 0xe3, 0x12, 0x05, 0xf4, 0x13, 0x05, 0x00, 0x00, 0x83, 0x30, 0x81, 0x01, 0x03, 0x34, 0x81, 0x00, 0x83, 0x34, 0x01, 0x01, 0x13, 0x01, 0x01, 0x02, 0x67, 0x80, 0x00, 0x00, 0x83, 0x25, 0x84, 0x00, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x15, 0x04, 0xef, 0x00, 0x80, 0x3d, 0x83, 0x25, 0xc4, 0x01, 0x93, 0xf7, 0x45, 0x04, 0x63, 0x88, 0x07, 0x02, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0xf5, 0x06, 0xef, 0x00, 0x00, 0x3c, 0x13, 0x05, 0x04, 0x00, 0xef, 0xf0, 0xdf, 0x84, 0x1b, 0x05, 0x05, 0x00, 0x63, 0x12, 0x05, 0x02, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x85, 0x09, 0xef, 0x00, 0x40, 0x3a, 0x6f, 0xf0, 0x5f, 0xfa, 0x37, 0x45, 0x02, 0x00, 0x13, 0x05, 0x85, 0x08, 0xef, 0x00, 0x40, 0x39, 0x6f, 0xf0, 0x5f, 0xfd, 0x83, 0x24, 0x44, 0x01, 0x63, 0xde, 0x04, 0x14, 0x8b, 0xb4, 0x04, 0x79, 0x83, 0x27, 0xc4, 0x05, 0x13, 0x97, 0x17, 0x02, 0x63, 0x5c, 0x07, 0x16, 0x0f, 0x00, 0xa0, 0x0a, 0x83, 0x27, 0x84, 0x04, 0x63, 0x96, 0x07, 0x00, 0xb7, 0x07, 0x00, 0x10, 0x93, 0x87, 0x07, 0x20, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x37, 0x10, 0x03, 0x23, 0x20, 0xf7, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0x07, 0xa0, 0x40, 0x23, 0x2e, 0xf7, 0x08, 0x83, 0x27, 0x47, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x45, 0x02, 0x00, 0x93, 0xe7, 0x17, 0x00, 0x23, 0x22, 0xf7, 0x00, 0x13, 0x05, 0x65, 0x0c, 0xef, 0x00, 0xc0, 0x32, 0xb7, 0x36, 0x10, 0x03, 0x03, 0xa7, 0x06, 0x10, 0xb7, 0x17, 0xff, 0xff, 0x93, 0x87, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x03, 0x27, 0xc4, 0x05, 0x13, 0x77, 0x07, 0x20, 0x63, 0x18, 0x07, 0x00, 0x03, 0x26, 0x44, 0x00, 0x13, 0x07, 0x60, 0x00, 0x63, 0x1a, 0xe6, 0x12, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x57, 0x00, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x37, 0x37, 0x10, 0x03, 0x23, 0x20, 0xf7, 0x10, 0xb7, 0x37, 0x10, 0x03, 0x03, 0xa7, 0x07, 0x14, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x06, 0x00, 0x80, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xa0, 0xe7, 0x14, 0x03, 0x27, 0xc4, 0x05, 0x13, 0x77, 0x07, 0x10, 0x63, 0x0c, 0x07, 0x00, 0x03, 0xa7, 0x87, 0x0b, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x13, 0x67, 0x07, 0x30, 0x23, 0xac, 0xe7, 0x0a, 0x83, 0x26, 0xc4, 0x05, 0x37, 0x37, 0x10, 0x03, 0x83, 0x27, 0x87, 0x10, 0x13, 0x96, 0x56, 0x02, 0x63, 0x5e, 0x06, 0x0c, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0xe6, 0xff, 0xff, 0x93, 0x86, 0xf6, 0xff, 0xb3, 0xf7, 0xd7, 0x00, 0x23, 0x24, 0xf7, 0x10, 0x03, 0x27, 0x44, 0x00, 0x93, 0x07, 0x70, 0x00, 0x63, 0x16, 0xf7, 0x02, 0xb7, 0x36, 0x10, 0x03, 0x83, 0xa7, 0xc6, 0x07, 0x0f, 0x00, 0xa0, 0x0a, 0x37, 0x07, 0xf1, 0xff, 0x13, 0x07, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x01, 0x00, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0xae, 0xf6, 0x06, 0xef, 0xd0, 0xcf, 0xb6, 0x83, 0x27, 0xc4, 0x05, 0x13, 0x97, 0x37, 0x02, 0x63, 0x4a, 0x07, 0x08, 0xef, 0xd0, 0x0f, 0xaa, 0x1b, 0x85, 0x04, 0x00, 0x6f, 0xf0, 0x9f, 0xe3, 0xef, 0xf0, 0x0f, 0xba, 0x9b, 0x04, 0x05, 0x00, 0x37, 0x45, 0x02, 0x00, 0x93, 0x85, 0x04, 0x00, 0x13, 0x05, 0x45, 0x0b, 0xef, 0x00, 0x80, 0x21, 0x83, 0x57, 0x44, 0x01, 0x1b, 0x97, 0x04, 0x01, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0x2a, 0xf4, 0x00, 0x6f, 0xf0, 0x5f, 0xe8, 0xb7, 0x37, 0x10, 0x03, 0x03, 0xa7, 0x07, 0x0a, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x06, 0xff, 0xff, 0x33, 0x77, 0xd7, 0x00, 0x23, 0xa0, 0xe7, 0x0a, 0x03, 0xa7, 0x47, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x13, 0x77, 0xe7, 0xff, 0x23, 0xa2, 0xe7, 0x00, 0x6f, 0xf0, 0x9f, 0xea, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xa0, 0xf6, 0x10, 0x6f, 0xf0, 0xdf, 0xed, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x26, 0x00, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x6f, 0xf0, 0xdf, 0xf2, 0xb7, 0x07, 0x00, 0x07, 0x83, 0xa7, 0x47, 0x5d, 0x0f, 0x00, 0xa0, 0x0a, 0x13, 0x97, 0xf7, 0x02, 0xe3, 0x40, 0x07, 0xf6, 0xb7, 0x15, 0x00, 0x00, 0x13, 0x85, 0x04, 0x00, 0xef, 0xf0, 0x8f, 0xc7, 0x1b, 0x05, 0x05, 0x00, 0xe3, 0x06, 0x05, 0xf4, 0x6f, 0xf0, 0x5f, 0xd8, 0x13, 0x07, 0x10, 0x00, 0x93, 0x17, 0x17, 0x02, 0x13, 0x01, 0x01, 0xf9, 0x93, 0x87, 0x07, 0x21, 0x23, 0x30, 0xf1, 0x00, 0xb7, 0x87, 0x7b, 0x00, 0x93, 0x87, 0x97, 0xbf, 0x23, 0x34, 0xf1, 0x00, 0x93, 0x07, 0x20, 0x0d, 0x23, 0x38, 0xf1, 0x00, 0xb7, 0x47, 0x02, 0x00, 0x83, 0xb7, 0x07, 0xce, 0x13, 0x17, 0x27, 0x03, 0x93, 0x05, 0x01, 0x00, 0x23, 0x3c, 0xf1, 0x00, 0xb7, 0x47, 0x02, 0x00, 0x83, 0xb7, 0x87, 0xce, 0x13, 0x05, 0x00, 0x00, 0x23, 0x34, 0x11, 0x06, 0x23, 0x34, 0xf1, 0x02, 0xb7, 0x47, 0x02, 0x00, 0x83, 0xb7, 0x07, 0xcf, 0x23, 0x30, 0x01, 0x02, 0x23, 0x34, 0x01, 0x04, 0x23, 0x38, 0xf1, 0x02, 0xb7, 0x17, 0x09, 0x09, 0x93, 0x87, 0x97, 0x90, 0x93, 0x97, 0x37, 0x02, 0x23, 0x3c, 0xf1, 0x02, 0xb7, 0x47, 0x02, 0x00, 0x83, 0xb7, 0x87, 0xcf, 0x23, 0x38, 0xe1, 0x04, 0x23, 0x30, 0xf1, 0x04, 0x93, 0x07, 0xd0, 0x00, 0x93, 0x97, 0xa7, 0x03, 0x93, 0x87, 0x57, 0x04, 0x23, 0x3c, 0xf1, 0x04, 0xef, 0xf0, 0x5f, 0xb5, 0x83, 0x30, 0x81, 0x06, 0x13, 0x35, 0x15, 0x00, 0x13, 0x01, 0x01, 0x07, 0x67, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x07, 0x00, 0x02, 0x83, 0x27, 0x07, 0x0c, 0xb7, 0xf6, 0xff, 0xff, 0x93, 0x86, 0xf6, 0x0f, 0xb3, 0xf7, 0xd7, 0x00, 0x93, 0xe7, 0x07, 0x60, 0x23, 0x20, 0xf7, 0x0c, 0x83, 0x27, 0x07, 0x0c, 0xb7, 0x16, 0xff, 0xff, 0x93, 0x86, 0xf6, 0xff, 0xb3, 0xf7, 0xd7, 0x00, 0xb7, 0x66, 0x00, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x23, 0x20, 0xf7, 0x0c, 0x37, 0x27, 0x00, 0x02, 0x83, 0x27, 0xc7, 0x90, 0x37, 0x06, 0x01, 0x00, 0x93, 0xe7, 0x17, 0x00, 0x23, 0x26, 0xf7, 0x90, 0x83, 0x26, 0xc7, 0x90, 0xb7, 0x07, 0x50, 0x02, 0xb3, 0xe6, 0xc6, 0x00, 0x23, 0x26, 0xd7, 0x90, 0x23, 0xa2, 0x07, 0x00, 0x13, 0x07, 0x70, 0x0f, 0x23, 0xa4, 0xe7, 0x00, 0x23, 0xa8, 0x07, 0x00, 0x03, 0xa7, 0xc7, 0x00, 0x13, 0x67, 0x07, 0x08, 0x23, 0xa6, 0xe7, 0x00, 0x13, 0x07, 0xd0, 0x00, 0x23, 0xa0, 0xe7, 0x00, 0x23, 0xa2, 0x07, 0x00, 0x03, 0xa7, 0xc7, 0x00, 0x13, 0x77, 0xf7, 0xf7, 0x23, 0xa6, 0xe7, 0x00, 0x03, 0xa7, 0xc7, 0x00, 0x13, 0x77, 0x07, 0xfe, 0x13, 0x67, 0x37, 0x00, 0x23, 0xa6, 0xe7, 0x00, 0x67, 0x80, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x37, 0x07, 0x50, 0x02, 0x13, 0x00, 0x00, 0x00, 0x83, 0x27, 0xc7, 0x07, 0x93, 0xf7, 0x27, 0x00, 0xe3, 0x8c, 0x07, 0xfe, 0x1b, 0x05, 0x05, 0x00, 0x23, 0x20, 0xa7, 0x00, 0x67, 0x80, 0x00, 0x00, 0x13, 0x01, 0x01, 0xf3, 0x23, 0x34, 0x11, 0x0d, 0x23, 0x34, 0x11, 0x08, 0x23, 0x30, 0x81, 0x08, 0x23, 0x3c, 0x91, 0x06, 0x23, 0x38, 0x21, 0x07, 0x23, 0x34, 0x31, 0x07, 0x23, 0x30, 0x41, 0x07, 0x23, 0x3c, 0x51, 0x05, 0x23, 0x38, 0x61, 0x05, 0x23, 0x34, 0x71, 0x05, 0x23, 0x30, 0x81, 0x05, 0x23, 0x3c, 0x91, 0x03, 0x23, 0x3c, 0xb1, 0x08, 0x23, 0x30, 0xc1, 0x0a, 0x23, 0x34, 0xd1, 0x0a, 0x23, 0x38, 0xe1, 0x0a, 0x23, 0x3c, 0xf1, 0x0a, 0x23, 0x30, 0x01, 0x0d, 0x93, 0x08, 0x81, 0x09, 0x83, 0x45, 0x05, 0x00, 0x23, 0x34, 0x11, 0x01, 0x63, 0x88, 0x05, 0x04, 0x13, 0x04, 0x50, 0x02, 0xb7, 0x0a, 0x50, 0x02, 0x13, 0x0b, 0x90, 0x00, 0x93, 0x09, 0x40, 0x06, 0x13, 0x09, 0xf0, 0x01, 0x93, 0x04, 0xf0, 0x01, 0x13, 0x00, 0x00, 0x00, 0x93, 0x0b, 0x15, 0x00, 0x63, 0x82, 0x85, 0x06, 0x83, 0xa7, 0xca, 0x07, 0x93, 0xf7, 0x27, 0x00, 0xe3, 0x8c, 0x07, 0xfe, 0x93, 0x87, 0x0b, 0x00, 0x9b, 0x85, 0x05, 0x00, 0x93, 0x0b, 0x05, 0x00, 0x23, 0xa0, 0xba, 0x00, 0x13, 0x85, 0x07, 0x00, 0x83, 0xc5, 0x1b, 0x00, 0xe3, 0x9a, 0x05, 0xfc, 0x83, 0x30, 0x81, 0x08, 0x03, 0x34, 0x01, 0x08, 0x83, 0x34, 0x81, 0x07, 0x03, 0x39, 0x01, 0x07, 0x83, 0x39, 0x81, 0x06, 0x03, 0x3a, 0x01, 0x06, 0x83, 0x3a, 0x81, 0x05, 0x03, 0x3b, 0x01, 0x05, 0x83, 0x3b, 0x81, 0x04, 0x03, 0x3c, 0x01, 0x04, 0x83, 0x3c, 0x81, 0x03, 0x13, 0x05, 0x00, 0x00, 0x13, 0x01, 0x01, 0x0d, 0x67, 0x80, 0x00, 0x00, 0x03, 0x46, 0x15, 0x00, 0x13, 0x0c, 0x00, 0x00, 0x1b, 0x07, 0x06, 0xfd, 0x93, 0x77, 0xf7, 0x0f, 0x63, 0x7e, 0xfb, 0x0e, 0x13, 0x08, 0x06, 0x00, 0x63, 0x14, 0x36, 0x0d, 0x93, 0x8c, 0x08, 0x00, 0x0b, 0xca, 0x8c, 0x58, 0x13, 0x06, 0x00, 0x02, 0x93, 0x05, 0x00, 0x02, 0x13, 0x05, 0x01, 0x01, 0xef, 0xc0, 0x9f, 0xe3, 0x93, 0x88, 0x0c, 0x00, 0x13, 0x06, 0xa0, 0x00, 0x13, 0x05, 0x01, 0x01, 0x93, 0x06, 0x00, 0x00, 0x6f, 0x00, 0xc0, 0x00, 0x93, 0x86, 0x05, 0x00, 0x13, 0x8a, 0x07, 0x00, 0x3b, 0x77, 0xca, 0x02, 0x9b, 0x85, 0x16, 0x00, 0x93, 0x77, 0xf7, 0x0f, 0x33, 0x37, 0xeb, 0x00, 0x13, 0x88, 0x77, 0x05, 0x13, 0x47, 0x17, 0x00, 0x93, 0x87, 0x07, 0x03, 0x8b, 0x17, 0xe8, 0x40, 0x8b, 0x57, 0x15, 0x18, 0xbb, 0x57, 0xca, 0x02, 0xe3, 0x78, 0xca, 0xfc, 0x63, 0x06, 0x0c, 0x02, 0x33, 0x27, 0x89, 0x01, 0x13, 0x47, 0x17, 0x00, 0x93, 0x07, 0x0c, 0x00, 0x8b, 0x97, 0xe4, 0x40, 0x1b, 0x87, 0x07, 0x00, 0x33, 0x27, 0xb7, 0x00, 0x13, 0x47, 0x17, 0x00, 0x8b, 0x97, 0xe5, 0x40, 0x9b, 0x85, 0x07, 0x00, 0x9b, 0x86, 0xf7, 0xff, 0x93, 0x07, 0x01, 0x01, 0x0b, 0xd0, 0xb7, 0x00, 0x13, 0x06, 0xf1, 0x00, 0xb3, 0x87, 0xd7, 0x00, 0x03, 0xc7, 0x07, 0x00, 0x13, 0x00, 0x00, 0x00, 0x83, 0xa6, 0xca, 0x07, 0x93, 0xf6, 0x26, 0x00, 0xe3, 0x8c, 0x06, 0xfe, 0x23, 0xa0, 0xea, 0x00, 0x93, 0x87, 0xf7, 0xff, 0xe3, 0x12, 0xf6, 0xfe, 0x13, 0x85, 0x1b, 0x00, 0x6f, 0xf0, 0x5f, 0xee, 0x93, 0x07, 0x80, 0x07, 0x63, 0x1e, 0xf6, 0x04, 0x93, 0x8c, 0x08, 0x00, 0x0b, 0xca, 0x8c, 0x58, 0x13, 0x06, 0x00, 0x02, 0x93, 0x05, 0x00, 0x02, 0x13, 0x05, 0x01, 0x01, 0xef, 0xc0, 0xdf, 0xd6, 0x93, 0x88, 0x0c, 0x00, 0x13, 0x06, 0x00, 0x01, 0x6f, 0xf0, 0x5f, 0xf3, 0x93, 0x86, 0x0b, 0x00, 0x9b, 0x17, 0x2c, 0x00, 0xbb, 0x87, 0x87, 0x01, 0x0b, 0xc6, 0x16, 0x88, 0x9b, 0x97, 0x17, 0x00, 0x3b, 0x0c, 0xf7, 0x00, 0x1b, 0x07, 0x06, 0xfd, 0x93, 0x77, 0xf7, 0x0f, 0xe3, 0x72, 0xfb, 0xfe, 0xbb, 0x86, 0x76, 0x41, 0xb3, 0x8b, 0xdb, 0x00, 0x03, 0xc6, 0x0b, 0x00, 0x6f, 0xf0, 0x9f, 0xed, 0xb3, 0x87, 0xab, 0x40, 0x13, 0x07, 0x05, 0x00, 0x33, 0x05, 0xf5, 0x00, 0x63, 0x52, 0xf0, 0x02, 0x83, 0x46, 0x07, 0x00, 0x13, 0x00, 0x00, 0x00, 0x83, 0xa7, 0xca, 0x07, 0x93, 0xf7, 0x27, 0x00, 0xe3, 0x8c, 0x07, 0xfe, 0x23, 0xa0, 0xda, 0x00, 0x13, 0x07, 0x17, 0x00, 0xe3, 0x12, 0xe5, 0xfe, 0x93, 0x87, 0x1b, 0x00, 0x13, 0x85, 0x0b, 0x00, 0x63, 0x04, 0x08, 0x00, 0x93, 0x05, 0x06, 0x00, 0x93, 0x8b, 0x07, 0x00, 0x6f, 0xf0, 0xdf, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf3, 0x27, 0x10, 0xc0, 0x0b, 0x15, 0xa5, 0x02, 0x0b, 0x95, 0xa7, 0x06, 0x13, 0x00, 0x00, 0x00, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf5, 0xfe, 0x67, 0x80, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0xb7, 0x27, 0x00, 0x02, 0x13, 0x07, 0x10, 0x30, 0x23, 0xa0, 0xe7, 0xd0, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x87, 0x01, 0x13, 0x00, 0x00, 0x00, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0x37, 0x17, 0x00, 0x02, 0x83, 0x27, 0x07, 0x00, 0xb7, 0x06, 0x00, 0xf8, 0x93, 0x86, 0xf6, 0xff, 0xb3, 0xf7, 0xd7, 0x00, 0x23, 0x20, 0xf7, 0x00, 0x83, 0x27, 0x07, 0x00, 0xb7, 0x06, 0x00, 0x40, 0xb3, 0xe7, 0xd7, 0x00, 0x23, 0x20, 0xf7, 0x00, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x87, 0x07, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0x37, 0x17, 0x00, 0x02, 0x83, 0x27, 0x07, 0x00, 0xb7, 0x06, 0xfc, 0xff, 0x93, 0x86, 0xc6, 0x0f, 0xb3, 0xf7, 0xd7, 0x00, 0xb7, 0x36, 0x00, 0x00, 0x93, 0x86, 0x06, 0x90, 0xb3, 0xe7, 0xd7, 0x00, 0x23, 0x20, 0xf7, 0x00, 0x83, 0x27, 0x07, 0x00, 0xb7, 0x06, 0x00, 0x20, 0xb3, 0xe7, 0xd7, 0x00, 0x23, 0x20, 0xf7, 0x00, 0x83, 0x27, 0x07, 0x00, 0xb7, 0x06, 0x00, 0x80, 0xb3, 0xe7, 0xd7, 0x00, 0x23, 0x20, 0xf7, 0x00, 0xb7, 0x16, 0x00, 0x02, 0x37, 0x07, 0x00, 0x10, 0x13, 0x00, 0x00, 0x00, 0x83, 0xa7, 0x06, 0x00, 0xb3, 0xf7, 0xe7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0xe3, 0x8a, 0x07, 0xfe, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x07, 0x1e, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0x37, 0x17, 0x00, 0x02, 0x83, 0x27, 0x07, 0x00, 0xb7, 0x06, 0x00, 0x08, 0xb3, 0xe7, 0xd7, 0x00, 0x23, 0x20, 0xf7, 0x00, 0x83, 0x27, 0x07, 0x00, 0xb7, 0x06, 0x00, 0xe0, 0x93, 0x86, 0xf6, 0xff, 0xb3, 0xf7, 0xd7, 0x00, 0x23, 0x20, 0xf7, 0x00, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x87, 0x01, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0xb7, 0x26, 0x00, 0x02, 0x83, 0xa7, 0x06, 0xd0, 0x37, 0x07, 0x00, 0xf9, 0x13, 0x07, 0x07, 0xcf, 0xb3, 0xf7, 0xe7, 0x00, 0x37, 0x07, 0x00, 0x05, 0x13, 0x07, 0x07, 0x10, 0xb3, 0xe7, 0xe7, 0x00, 0x23, 0xa0, 0xf6, 0xd0, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x87, 0x01, 0x13, 0x00, 0x00, 0x00, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0xb7, 0x17, 0x00, 0x02, 0x03, 0xa7, 0x07, 0x02, 0x63, 0x48, 0x07, 0x08, 0x83, 0xa6, 0x07, 0x51, 0x37, 0x07, 0x00, 0xfd, 0x13, 0x07, 0xf7, 0xff, 0x33, 0x77, 0xd7, 0x00, 0x0b, 0x37, 0x07, 0x7c, 0x93, 0x86, 0x07, 0x51, 0x23, 0x20, 0xd7, 0x00, 0x37, 0x67, 0x00, 0x00, 0x13, 0x07, 0x07, 0x30, 0x23, 0xa0, 0xe7, 0x02, 0x03, 0xa7, 0x07, 0x02, 0xb7, 0x06, 0x00, 0x20, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xa0, 0xe7, 0x02, 0x03, 0xa7, 0x07, 0x02, 0xb7, 0x06, 0x00, 0x80, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xa0, 0xe7, 0x02, 0xb7, 0x16, 0x00, 0x02, 0x37, 0x07, 0x00, 0x10, 0x13, 0x00, 0x00, 0x00, 0x83, 0xa7, 0x06, 0x02, 0xb3, 0xf7, 0xe7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0xe3, 0x8a, 0x07, 0xfe, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x07, 0x1e, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0xb7, 0x16, 0x00, 0x02, 0x83, 0xa7, 0x06, 0x02, 0x37, 0x07, 0x00, 0xe0, 0x13, 0x07, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x23, 0xa0, 0xf6, 0x02, 0xb7, 0x17, 0x00, 0x02, 0x13, 0x07, 0x20, 0x00, 0x23, 0xa8, 0xe7, 0x50, 0x03, 0xa7, 0x07, 0x51, 0xb7, 0x06, 0x00, 0x03, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xa8, 0xe7, 0x50, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x87, 0x01, 0x13, 0x00, 0x00, 0x00, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0xb7, 0x17, 0x00, 0x02, 0x13, 0x07, 0x20, 0x10, 0x23, 0xa0, 0xe7, 0x52, 0x03, 0xa7, 0x07, 0x52, 0xb7, 0x06, 0x00, 0x03, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xa0, 0xe7, 0x52, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x87, 0x01, 0x13, 0x00, 0x00, 0x00, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0x37, 0x17, 0x00, 0x02, 0x83, 0x27, 0xc7, 0x70, 0xb7, 0x06, 0x01, 0x00, 0xb3, 0xe7, 0xd7, 0x00, 0x23, 0x26, 0xf7, 0x70, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x07, 0x1e, 0x13, 0x00, 0x00, 0x00, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0x37, 0x17, 0x00, 0x02, 0x83, 0x27, 0xc7, 0x70, 0xb7, 0x06, 0x00, 0x40, 0x93, 0xe7, 0x17, 0x00, 0x23, 0x26, 0xf7, 0x70, 0x83, 0x27, 0x07, 0x54, 0xb3, 0xe7, 0xd7, 0x00, 0x23, 0x20, 0xf7, 0x54, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x87, 0x01, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0xb7, 0x17, 0x00, 0x00, 0x37, 0x27, 0x00, 0x02, 0x93, 0x87, 0x77, 0xd8, 0x23, 0x22, 0xf7, 0x80, 0xb7, 0x17, 0x00, 0x02, 0x03, 0xa7, 0x07, 0x02, 0x63, 0x44, 0x07, 0x06, 0x03, 0xa7, 0x07, 0x02, 0xb7, 0x06, 0x00, 0xc0, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xa0, 0xe7, 0x02, 0x03, 0xa7, 0x07, 0x02, 0xb7, 0x06, 0x00, 0x20, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xa0, 0xe7, 0x02, 0xb7, 0x16, 0x00, 0x02, 0x37, 0x07, 0x00, 0x10, 0x13, 0x00, 0x00, 0x00, 0x83, 0xa7, 0x06, 0x02, 0xb3, 0xf7, 0xe7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0xe3, 0x8a, 0x07, 0xfe, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x07, 0x1e, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0xb7, 0x16, 0x00, 0x02, 0x83, 0xa7, 0x06, 0x02, 0x37, 0x07, 0x00, 0xe0, 0x13, 0x07, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x23, 0xa0, 0xf6, 0x02, 0xb7, 0x17, 0x00, 0x02, 0x03, 0xa7, 0x07, 0x04, 0x63, 0x44, 0x07, 0x06, 0x03, 0xa7, 0x07, 0x04, 0xb7, 0x06, 0x00, 0xc0, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xa0, 0xe7, 0x04, 0x03, 0xa7, 0x07, 0x04, 0xb7, 0x06, 0x00, 0x20, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xa0, 0xe7, 0x04, 0xb7, 0x16, 0x00, 0x02, 0x37, 0x07, 0x00, 0x10, 0x13, 0x00, 0x00, 0x00, 0x83, 0xa7, 0x06, 0x04, 0xb3, 0xf7, 0xe7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0xe3, 0x8a, 0x07, 0xfe, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x07, 0x1e, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0xb7, 0x16, 0x00, 0x02, 0x83, 0xa7, 0x06, 0x04, 0x37, 0x07, 0x00, 0xe0, 0x13, 0x07, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x23, 0xa0, 0xf6, 0x04, 0xb7, 0x17, 0x00, 0x02, 0x03, 0xa7, 0x87, 0x04, 0x63, 0x44, 0x07, 0x06, 0x03, 0xa7, 0x87, 0x04, 0xb7, 0x06, 0x00, 0xc0, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xa4, 0xe7, 0x04, 0x03, 0xa7, 0x87, 0x04, 0xb7, 0x06, 0x00, 0x20, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xa4, 0xe7, 0x04, 0xb7, 0x16, 0x00, 0x02, 0x37, 0x07, 0x00, 0x10, 0x13, 0x00, 0x00, 0x00, 0x83, 0xa7, 0x86, 0x04, 0xb3, 0xf7, 0xe7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0xe3, 0x8a, 0x07, 0xfe, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x07, 0x1e, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0xb7, 0x16, 0x00, 0x02, 0x83, 0xa7, 0x86, 0x04, 0x37, 0x07, 0x00, 0xe0, 0x13, 0x07, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x23, 0xa4, 0xf6, 0x04, 0xb7, 0x17, 0x00, 0x02, 0x03, 0xa7, 0x87, 0x05, 0x63, 0x44, 0x07, 0x06, 0x03, 0xa7, 0x87, 0x05, 0xb7, 0x06, 0x00, 0xc0, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xac, 0xe7, 0x04, 0x03, 0xa7, 0x87, 0x05, 0xb7, 0x06, 0x00, 0x20, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xac, 0xe7, 0x04, 0xb7, 0x16, 0x00, 0x02, 0x37, 0x07, 0x00, 0x10, 0x13, 0x00, 0x00, 0x00, 0x83, 0xa7, 0x86, 0x05, 0xb3, 0xf7, 0xe7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0xe3, 0x8a, 0x07, 0xfe, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x07, 0x1e, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0xb7, 0x16, 0x00, 0x02, 0x83, 0xa7, 0x86, 0x05, 0x37, 0x07, 0x00, 0xe0, 0x13, 0x07, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x23, 0xac, 0xf6, 0x04, 0xb7, 0x17, 0x00, 0x02, 0x03, 0xa7, 0x87, 0x07, 0x63, 0x44, 0x07, 0x06, 0x03, 0xa7, 0x87, 0x07, 0xb7, 0x06, 0x00, 0xc0, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xac, 0xe7, 0x06, 0x03, 0xa7, 0x87, 0x07, 0xb7, 0x06, 0x00, 0x20, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xac, 0xe7, 0x06, 0xb7, 0x16, 0x00, 0x02, 0x37, 0x07, 0x00, 0x10, 0x13, 0x00, 0x00, 0x00, 0x83, 0xa7, 0x86, 0x07, 0xb3, 0xf7, 0xe7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0xe3, 0x8a, 0x07, 0xfe, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x07, 0x1e, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0xb7, 0x16, 0x00, 0x02, 0x83, 0xa7, 0x86, 0x07, 0x37, 0x07, 0x00, 0xe0, 0x13, 0x07, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x23, 0xac, 0xf6, 0x06, 0xb7, 0x17, 0x00, 0x02, 0x03, 0xa7, 0x07, 0x08, 0x63, 0x44, 0x07, 0x06, 0x03, 0xa7, 0x07, 0x08, 0xb7, 0x06, 0x00, 0xc0, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xa0, 0xe7, 0x08, 0x03, 0xa7, 0x07, 0x08, 0xb7, 0x06, 0x00, 0x20, 0x33, 0x67, 0xd7, 0x00, 0x23, 0xa0, 0xe7, 0x08, 0xb7, 0x16, 0x00, 0x02, 0x37, 0x07, 0x00, 0x10, 0x13, 0x00, 0x00, 0x00, 0x83, 0xa7, 0x06, 0x08, 0xb3, 0xf7, 0xe7, 0x00, 0x9b, 0x87, 0x07, 0x00, 0xe3, 0x8a, 0x07, 0xfe, 0x73, 0x27, 0x10, 0xc0, 0x13, 0x07, 0x07, 0x1e, 0xf3, 0x27, 0x10, 0xc0, 0xe3, 0x7e, 0xf7, 0xfe, 0xb7, 0x16, 0x00, 0x02, 0x83, 0xa7, 0x06, 0x08, 0x37, 0x07, 0x00, 0xe0, 0x13, 0x07, 0xf7, 0xff, 0xb3, 0xf7, 0xe7, 0x00, 0x23, 0xa0, 0xf6, 0x08, 0x67, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x93, 0x05, 0x05, 0x00, 0x13, 0x05, 0x00, 0x00, 0x6f, 0xf0, 0x4f, 0xa9, 0x00, 0x00, 0x00, 0x00, 0x08, 0x16, 0x02, 0x00, 0x4c, 0x16, 0x02, 0x00, 0x5c, 0x16, 0x02, 0x00, 0x78, 0x16, 0x02, 0x00, 0x6c, 0x16, 0x02, 0x00, 0x90, 0x1c, 0x02, 0x00, 0x9c, 0x1c, 0x02, 0x00, 0xa8, 0x1c, 0x02, 0x00, 0xb4, 0x1c, 0x02, 0x00, 0x58, 0x1c, 0x02, 0x00, 0x68, 0x1c, 0x02, 0x00, 0x68, 0x1c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x09, 0x03, 0x07, 0x08, 0x12, 0x04, 0x0d, 0x05, 0x06, 0x0a, 0x02, 0x0e, 0x0c, 0x00, 0x00, 0x15, 0x11, 0x14, 0x13, 0x0b, 0x16, 0x00, 0x00, 0x04, 0x09, 0x03, 0x07, 0x08, 0x12, 0x01, 0x0d, 0x02, 0x06, 0x0a, 0x05, 0x0e, 0x0c, 0x00, 0x00, 0x15, 0x11, 0x14, 0x13, 0x0b, 0x16, 0x00, 0x00, 0x01, 0x07, 0x08, 0x0c, 0x0a, 0x12, 0x04, 0x0d, 0x05, 0x06, 0x03, 0x02, 0x09, 0x00, 0x00, 0x00, 0x15, 0x11, 0x14, 0x13, 0x0b, 0x16, 0x00, 0x00, 0x04, 0x0c, 0x0a, 0x07, 0x08, 0x12, 0x01, 0x0d, 0x02, 0x06, 0x03, 0x05, 0x09, 0x00, 0x00, 0x00, 0x15, 0x11, 0x14, 0x13, 0x0b, 0x16, 0x00, 0x00, 0x0d, 0x02, 0x07, 0x09, 0x0c, 0x13, 0x05, 0x01, 0x06, 0x03, 0x04, 0x08, 0x0a, 0x00, 0x00, 0x00, 0x15, 0x16, 0x12, 0x11, 0x0b, 0x14, 0x00, 0x00, 0x03, 0x0a, 0x07, 0x0d, 0x09, 0x0b, 0x01, 0x02, 0x04, 0x06, 0x08, 0x05, 0x0c, 0x00, 0x00, 0x00, 0x14, 0x01, 0x00, 0x15, 0x16, 0x11, 0x00, 0x00, 0x03, 0x02, 0x04, 0x07, 0x09, 0x01, 0x11, 0x0c, 0x12, 0x0e, 0x0d, 0x08, 0x0f, 0x06, 0x0a, 0x05, 0x13, 0x16, 0x10, 0x15, 0x14, 0x0b, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x41, 0x00, 0x00, 0x00, 0x48, 0x73, 0x0e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x92, 0x19, 0x47, 0x00, 0x0c, 0xa1, 0x31, 0x01, 0x41, 0x70, 0x05, 0x00, 0x96, 0x78, 0x78, 0xb4, 0x48, 0x00, 0x00, 0x00, 0x1e, 0x12, 0x21, 0x16, 0x64, 0x64, 0x72, 0x5f, 0x65, 0x66, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0d, 0x0a, 0x00, 0x00, 0x00, 0x5a, 0x51, 0x20, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2c, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x20, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x20, 0x32, 0x34, 0x30, 0x20, 0x6f, 0x68, 0x6d, 0x20, 0x72, 0x65, 0x73, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x2e, 0x0d, 0x0a, 0x00, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x44, 0x51, 0x21, 0x0d, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x44, 0x51, 0x21, 0x0d, 0x0a, 0x00, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x68, 0x61, 0x6c, 0x66, 0x20, 0x44, 0x51, 0x21, 0x0d, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x64, 0x75, 0x61, 0x6c, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x68, 0x61, 0x6c, 0x66, 0x20, 0x44, 0x51, 0x21, 0x0d, 0x0a, 0x00, 0x44, 0x58, 0x30, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x25, 0x64, 0x0d, 0x0a, 0x00, 0x44, 0x58, 0x31, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x25, 0x64, 0x0d, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x46, 0x41, 0x49, 0x4c, 0x2e, 0x0d, 0x0a, 0x00, 0x25, 0x78, 0x20, 0x21, 0x3d, 0x20, 0x25, 0x78, 0x20, 0x61, 0x74, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x25, 0x78, 0x0d, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x4f, 0x4b, 0x2e, 0x0d, 0x0a, 0x00, 0x5b, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x3a, 0x20, 0x30, 0x21, 0x0d, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x25, 0x64, 0x20, 0x72, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x0d, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x25, 0x64, 0x20, 0x62, 0x61, 0x6e, 0x6b, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x0d, 0x0a, 0x00, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x25, 0x64, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x4b, 0x42, 0x20, 0x0d, 0x0a, 0x00, 0x72, 0x61, 0x6e, 0x6b, 0x31, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x30, 0x0d, 0x0a, 0x00, 0x00, 0x72, 0x61, 0x6e, 0x6b, 0x31, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x30, 0x0d, 0x0a, 0x00, 0x5b, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x61, 0x6e, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x26, 0x77, 0x69, 0x64, 0x74, 0x68, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x20, 0x21, 0x0d, 0x0a, 0x00, 0x00, 0x5b, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x61, 0x6e, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x20, 0x21, 0x0d, 0x0a, 0x00, 0x5a, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x0d, 0x0a, 0x00, 0x00, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x20, 0x5a, 0x51, 0x21, 0x21, 0x0d, 0x0a, 0x00, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x6d, 0x75, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x28, 0x29, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x0d, 0x0a, 0x00, 0x56, 0x30, 0x2e, 0x32, 0x34, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x42, 0x4f, 0x4f, 0x54, 0x20, 0x44, 0x52, 0x49, 0x56, 0x45, 0x20, 0x49, 0x4e, 0x46, 0x4f, 0x3a, 0x20, 0x25, 0x73, 0x0d, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x43, 0x4c, 0x4b, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x4d, 0x48, 0x7a, 0x0d, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x54, 0x79, 0x70, 0x65, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x28, 0x32, 0x3a, 0x44, 0x44, 0x52, 0x32, 0x2c, 0x33, 0x3a, 0x44, 0x44, 0x52, 0x33, 0x29, 0x0d, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x43, 0x20, 0x5a, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0d, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x43, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x4f, 0x44, 0x54, 0x20, 0x20, 0x6f, 0x66, 0x66, 0x2e, 0x0d, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x4f, 0x44, 0x54, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x30, 0x78, 0x25, 0x78, 0x2e, 0x0d, 0x0a, 0x00, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x4f, 0x44, 0x54, 0x20, 0x6f, 0x66, 0x66, 0x2e, 0x0d, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x3a, 0x20, 0x31, 0x20, 0x21, 0x0d, 0x0a, 0x00, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x53, 0x49, 0x5a, 0x45, 0x20, 0x3d, 0x25, 0x64, 0x20, 0x4d, 0x0d, 0x0a, 0x00, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x41, 0x75, 0x74, 0x6f, 0x20, 0x53, 0x52, 0x0d, 0x0a, 0x00, 0x00 }; if(type) { if(strcmp(type, "d1") == 0) { static const struct ddr3_param_t ddr3 = { .dram_clk = 792, .dram_type = 3, .dram_zq = 0x7b7bfb, .dram_odt_en = 0x01, .dram_para1 = 0x000010d2, .dram_para2 = 0x0000, .dram_mr0 = 0x1c70, .dram_mr1 = 0x042, .dram_mr2 = 0x18, .dram_mr3 = 0x0, .dram_tpr0 = 0x004A2195, .dram_tpr1 = 0x02423190, .dram_tpr2 = 0x0008B061, .dram_tpr3 = 0xB4787896, .dram_tpr4 = 0x0, .dram_tpr5 = 0x48484848, .dram_tpr6 = 0x00000048, .dram_tpr7 = 0x1620121e, .dram_tpr8 = 0x0, .dram_tpr9 = 0x0, .dram_tpr10 = 0x0, .dram_tpr11 = 0x00870000, .dram_tpr12 = 0x00000024, .dram_tpr13 = 0x34050100, }; fel_write(ctx, 0x00020000, (void *)&d1_ddr_payload[0], sizeof(d1_ddr_payload)); fel_write(ctx, 0x00020018, (void *)&ddr3, sizeof(ddr3)); fel_exec(ctx, 0x00020000); return 1; } else if(strcmp(type, "f133") == 0) { static const struct ddr2_param_t ddr2 = { .dram_clk = 528, .dram_type = 2, .dram_zq = 0x07b7bf9, .dram_odt_en = 0x00, .dram_para1 = 0x000000d2, .dram_para2 = 0x00000000, .dram_mr0 = 0x00000e73, .dram_mr1 = 0x02, .dram_mr2 = 0x0, .dram_mr3 = 0x0, .dram_tpr0 = 0x00471992, .dram_tpr1 = 0x0131a10c, .dram_tpr2 = 0x00057041, .dram_tpr3 = 0xb4787896, .dram_tpr4 = 0x0, .dram_tpr5 = 0x48484848, .dram_tpr6 = 0x48, .dram_tpr7 = 0x1621121e, .dram_tpr8 = 0x0, .dram_tpr9 = 0x0, .dram_tpr10 = 0x00000000, .dram_tpr11 = 0x00030010, .dram_tpr12 = 0x00000035, .dram_tpr13 = 0x34000000, }; fel_write(ctx, 0x00020000, (void *)&f133_ddr_payload[0], sizeof(f133_ddr_payload)); fel_write(ctx, 0x00020018, (void *)&ddr2, sizeof(ddr2)); fel_exec(ctx, 0x00020000); return 1; } } printf("usage:\r\n"); printf(" xfel ddr d1 - Initial ddr controller for D1\r\n"); printf(" xfel ddr f133 - Initial ddr controller for F133\r\n"); return 0; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { static const uint8_t payload[] = { 0x37, 0x03, 0x40, 0x00, 0x73, 0x20, 0x03, 0x7c, 0x37, 0x03, 0x03, 0x00, 0x1b, 0x03, 0x33, 0x01, 0x73, 0x20, 0x23, 0x7c, 0x6f, 0x00, 0x40, 0x00, 0x13, 0x01, 0x01, 0xfe, 0x23, 0x34, 0x81, 0x00, 0x23, 0x38, 0x91, 0x00, 0x23, 0x3c, 0x11, 0x00, 0x13, 0x04, 0x05, 0x00, 0x37, 0x15, 0x02, 0x00, 0xef, 0x00, 0x00, 0x02, 0x83, 0x30, 0x81, 0x01, 0x03, 0x34, 0x81, 0x00, 0x83, 0x34, 0x01, 0x01, 0x13, 0x01, 0x01, 0x02, 0x67, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x01, 0x01, 0xfb, 0x23, 0x34, 0x81, 0x04, 0x23, 0x30, 0x91, 0x04, 0x23, 0x3c, 0x21, 0x03, 0x23, 0x38, 0x31, 0x03, 0x23, 0x34, 0x41, 0x03, 0x23, 0x30, 0x51, 0x03, 0x23, 0x3c, 0x61, 0x01, 0x23, 0x38, 0x71, 0x01, 0x23, 0x34, 0x81, 0x01, 0x23, 0x30, 0x91, 0x01, 0x13, 0x08, 0x05, 0x00, 0x0b, 0x47, 0x18, 0x98, 0xb7, 0x57, 0x02, 0x04, 0xb7, 0xcf, 0x00, 0x00, 0x37, 0xfa, 0xff, 0xff, 0xb7, 0x19, 0xff, 0xff, 0x37, 0x09, 0xf1, 0xff, 0xb7, 0x04, 0x10, 0xff, 0x37, 0x04, 0x00, 0xfd, 0xb7, 0x03, 0x00, 0x80, 0x93, 0x06, 0x10, 0x00, 0x13, 0x0f, 0x20, 0x00, 0x93, 0x8f, 0xff, 0x00, 0x93, 0x85, 0x07, 0x03, 0x13, 0x06, 0x20, 0x00, 0x93, 0x08, 0xf0, 0xff, 0x93, 0x0e, 0xf0, 0xff, 0x13, 0x0a, 0xfa, 0x0f, 0x93, 0x89, 0xf9, 0xff, 0x13, 0x09, 0xf9, 0xff, 0x93, 0x84, 0xf4, 0xff, 0x13, 0x04, 0xf4, 0xff, 0x93, 0x83, 0x33, 0x08, 0x63, 0x0c, 0xd7, 0x0c, 0x63, 0x06, 0xe7, 0x1d, 0x13, 0x03, 0x30, 0x00, 0x63, 0x0c, 0x67, 0x1c, 0x13, 0x03, 0x40, 0x00, 0x63, 0x04, 0x67, 0x1e, 0x13, 0x03, 0x50, 0x00, 0x63, 0x06, 0x67, 0x28, 0x13, 0x03, 0x60, 0x00, 0x63, 0x0e, 0x67, 0x32, 0x13, 0x05, 0x70, 0x00, 0x63, 0x00, 0xa7, 0x40, 0x13, 0x05, 0x80, 0x00, 0x63, 0x16, 0xa7, 0x48, 0x37, 0x07, 0xff, 0xff, 0xb3, 0xf2, 0xe2, 0x00, 0xb3, 0xe2, 0xf2, 0x01, 0x13, 0xf3, 0xff, 0x0f, 0x0b, 0xbe, 0x8f, 0x3c, 0x37, 0x05, 0x00, 0x80, 0x23, 0xa0, 0xc5, 0x00, 0x23, 0xaa, 0xc7, 0x02, 0x23, 0xac, 0xc7, 0x02, 0x23, 0x80, 0x67, 0x20, 0x23, 0x80, 0xc7, 0x21, 0x03, 0xa7, 0x87, 0x00, 0x33, 0x67, 0xa7, 0x00, 0x23, 0xa4, 0xe7, 0x00, 0x03, 0xa7, 0x87, 0x00, 0xe3, 0x4e, 0x07, 0xfe, 0x03, 0xa7, 0xc7, 0x01, 0x13, 0x77, 0xe7, 0x0f, 0xe3, 0x0c, 0x07, 0xfe, 0x03, 0xc7, 0x07, 0x30, 0x03, 0xc7, 0x07, 0x30, 0x23, 0xa0, 0xd5, 0x00, 0x23, 0xaa, 0xd7, 0x02, 0x23, 0xac, 0xd7, 0x02, 0x23, 0x80, 0x17, 0x21, 0x03, 0xa7, 0x87, 0x00, 0x33, 0x67, 0xa7, 0x00, 0x23, 0xa4, 0xe7, 0x00, 0x03, 0xa7, 0x87, 0x00, 0xe3, 0x4e, 0x07, 0xfe, 0x03, 0xa7, 0xc7, 0x01, 0x13, 0x77, 0xf7, 0x0f, 0xe3, 0x0c, 0x07, 0xfe, 0x03, 0xc7, 0x07, 0x30, 0x13, 0x77, 0x17, 0x00, 0xe3, 0x16, 0x07, 0xf8, 0x13, 0x05, 0x08, 0x00, 0x13, 0x08, 0x05, 0x00, 0x0b, 0x47, 0x18, 0x98, 0xe3, 0x18, 0xd7, 0xf2, 0x37, 0x05, 0x00, 0x02, 0x03, 0x27, 0x05, 0x06, 0x37, 0x23, 0x00, 0x00, 0x33, 0x77, 0x47, 0x01, 0x13, 0x67, 0x07, 0x20, 0x23, 0x20, 0xe5, 0x06, 0x03, 0x27, 0x05, 0x06, 0x37, 0x0e, 0x20, 0x00, 0x33, 0x77, 0x37, 0x01, 0x33, 0x67, 0x67, 0x00, 0x23, 0x20, 0xe5, 0x06, 0x03, 0x27, 0x05, 0x06, 0x37, 0x03, 0x02, 0x00, 0x33, 0x77, 0x27, 0x01, 0x33, 0x67, 0x67, 0x00, 0x23, 0x20, 0xe5, 0x06, 0x03, 0x23, 0x05, 0x06, 0x37, 0x27, 0x00, 0x02, 0x33, 0x73, 0x93, 0x00, 0x33, 0x63, 0xc3, 0x01, 0x23, 0x20, 0x65, 0x06, 0x03, 0x25, 0xc7, 0x96, 0x37, 0x03, 0x01, 0x00, 0x33, 0x65, 0x65, 0x00, 0x23, 0x26, 0xa7, 0x96, 0x03, 0x25, 0x07, 0x94, 0x37, 0x03, 0x00, 0x80, 0x33, 0x65, 0x65, 0x00, 0x23, 0x20, 0xa7, 0x94, 0x03, 0x25, 0xc7, 0x96, 0x37, 0x03, 0x00, 0x01, 0x13, 0x65, 0x15, 0x00, 0x23, 0x26, 0xa7, 0x96, 0x03, 0x25, 0x07, 0x94, 0x33, 0x75, 0x85, 0x00, 0x33, 0x65, 0x65, 0x00, 0x23, 0x20, 0xa7, 0x94, 0x03, 0x25, 0x07, 0x94, 0x13, 0x75, 0xf5, 0xcf, 0x23, 0x20, 0xa7, 0x94, 0x03, 0x25, 0x07, 0x94, 0x13, 0x75, 0x05, 0xff, 0x13, 0x65, 0x55, 0x00, 0x23, 0x20, 0xa7, 0x94, 0x37, 0x17, 0x00, 0x00, 0x23, 0xa2, 0xe7, 0x02, 0x03, 0xa7, 0x47, 0x00, 0x33, 0xe7, 0xe3, 0x00, 0x1b, 0x07, 0x07, 0x00, 0x23, 0xa2, 0xe7, 0x00, 0x03, 0xa7, 0x47, 0x00, 0xe3, 0x4e, 0x07, 0xfe, 0x03, 0xa7, 0x87, 0x00, 0x37, 0x85, 0x00, 0x80, 0x13, 0x77, 0xc7, 0xff, 0x13, 0x67, 0x47, 0x04, 0x23, 0xa4, 0xe7, 0x00, 0x03, 0xa7, 0x87, 0x01, 0x33, 0x67, 0xa7, 0x00, 0x23, 0xac, 0xe7, 0x00, 0x13, 0x05, 0x08, 0x00, 0x6f, 0xf0, 0x1f, 0xf0, 0x03, 0xa7, 0x87, 0x00, 0x13, 0x05, 0x08, 0x00, 0x13, 0x77, 0xf7, 0xf4, 0x23, 0xa4, 0xe7, 0x00, 0x6f, 0xf0, 0xdf, 0xee, 0x03, 0xa7, 0x87, 0x00, 0x13, 0x05, 0x08, 0x00, 0x13, 0x77, 0xf7, 0xf4, 0x13, 0x67, 0x07, 0x08, 0x23, 0xa4, 0xe7, 0x00, 0x6f, 0xf0, 0x5f, 0xed, 0x03, 0x4e, 0x15, 0x00, 0x13, 0x0c, 0x00, 0x04, 0x93, 0x0a, 0x0e, 0x00, 0x13, 0x05, 0x25, 0x00, 0x93, 0x0b, 0x00, 0x04, 0x37, 0x0b, 0x00, 0x80, 0x63, 0x00, 0x0e, 0x08, 0x33, 0x33, 0xcc, 0x01, 0x13, 0x43, 0x13, 0x00, 0x13, 0x87, 0x0b, 0x00, 0x0b, 0x17, 0x6e, 0x42, 0x23, 0xa0, 0xe5, 0x00, 0x23, 0xaa, 0xe7, 0x02, 0x1b, 0x03, 0x07, 0x00, 0x23, 0xac, 0xe7, 0x02, 0x13, 0x07, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x8b, 0x4c, 0xe5, 0x80, 0x13, 0x07, 0x17, 0x00, 0x23, 0x80, 0x97, 0x21, 0x9b, 0x0c, 0x07, 0x00, 0xe3, 0xc8, 0x6c, 0xfe, 0x03, 0xa7, 0x87, 0x00, 0x33, 0x67, 0x67, 0x01, 0x23, 0xa4, 0xe7, 0x00, 0x03, 0xa7, 0x87, 0x00, 0xe3, 0x4e, 0x07, 0xfe, 0x03, 0xa7, 0xc7, 0x01, 0x13, 0x77, 0xf7, 0x0f, 0xe3, 0x6c, 0x67, 0xfe, 0x13, 0x07, 0x00, 0x00, 0x83, 0xcc, 0x07, 0x30, 0x1b, 0x07, 0x17, 0x00, 0xe3, 0x4c, 0x67, 0xfe, 0x0b, 0x37, 0x03, 0x7c, 0x3b, 0x0e, 0x6e, 0x40, 0x33, 0x05, 0xe5, 0x00, 0xe3, 0x14, 0x0e, 0xf8, 0x1b, 0x87, 0x1a, 0x00, 0x0b, 0x37, 0x07, 0x7c, 0x33, 0x08, 0xe8, 0x00, 0x13, 0x05, 0x08, 0x00, 0x6f, 0xf0, 0x9f, 0xe2, 0x03, 0x2e, 0x55, 0x00, 0x03, 0x63, 0x15, 0x00, 0x93, 0x0b, 0x00, 0x04, 0x13, 0x0b, 0x00, 0x04, 0xb7, 0x0a, 0x00, 0x80, 0x63, 0x02, 0x0e, 0x08, 0x33, 0xb7, 0xcb, 0x01, 0x13, 0x47, 0x17, 0x00, 0x13, 0x08, 0x0b, 0x00, 0x0b, 0x18, 0xee, 0x42, 0x23, 0xa0, 0x05, 0x01, 0x23, 0xaa, 0x07, 0x03, 0x23, 0xac, 0x07, 0x03, 0x13, 0x07, 0x00, 0x00, 0x63, 0x06, 0x03, 0x06, 0x13, 0x00, 0x00, 0x00, 0x0b, 0x4c, 0xe3, 0x80, 0x13, 0x07, 0x17, 0x00, 0x23, 0x80, 0x87, 0x21, 0x1b, 0x0c, 0x07, 0x00, 0xe3, 0x48, 0x0c, 0xff, 0x03, 0xa7, 0x87, 0x00, 0x33, 0x67, 0x57, 0x01, 0x23, 0xa4, 0xe7, 0x00, 0x03, 0xa7, 0x87, 0x00, 0xe3, 0x4e, 0x07, 0xfe, 0x03, 0xa7, 0xc7, 0x01, 0x13, 0x77, 0xf7, 0x0f, 0xe3, 0x6c, 0x07, 0xff, 0x13, 0x07, 0x00, 0x00, 0x03, 0xcc, 0x07, 0x30, 0x1b, 0x07, 0x17, 0x00, 0xe3, 0x4c, 0x07, 0xff, 0x0b, 0x37, 0x08, 0x7c, 0x33, 0x07, 0xe3, 0x00, 0x3b, 0x0e, 0x0e, 0x41, 0x0b, 0x13, 0x67, 0x42, 0xe3, 0x12, 0x0e, 0xf8, 0x13, 0x08, 0x95, 0x00, 0x13, 0x05, 0x08, 0x00, 0x6f, 0xf0, 0x5f, 0xd8, 0x13, 0x8c, 0x07, 0x20, 0x23, 0x00, 0xdc, 0x01, 0x1b, 0x07, 0x17, 0x00, 0xe3, 0x4c, 0x07, 0xff, 0x6f, 0xf0, 0x1f, 0xfa, 0x03, 0x2e, 0x55, 0x00, 0x03, 0x63, 0x15, 0x00, 0x93, 0x0b, 0x00, 0x04, 0x13, 0x0b, 0x00, 0x04, 0xb7, 0x0a, 0x00, 0x80, 0xe3, 0x06, 0x0e, 0xfc, 0x33, 0xb8, 0xcb, 0x01, 0x13, 0x48, 0x18, 0x00, 0x13, 0x07, 0x0b, 0x00, 0x0b, 0x17, 0x0e, 0x43, 0x23, 0xa0, 0xe5, 0x00, 0x23, 0xaa, 0xe7, 0x02, 0x13, 0x08, 0x07, 0x00, 0x23, 0xac, 0xe7, 0x02, 0x13, 0x8c, 0x07, 0x20, 0x13, 0x07, 0x00, 0x00, 0x23, 0x00, 0xdc, 0x01, 0x1b, 0x07, 0x17, 0x00, 0xe3, 0x4c, 0x07, 0xff, 0x03, 0xa7, 0x87, 0x00, 0x33, 0x67, 0x57, 0x01, 0x23, 0xa4, 0xe7, 0x00, 0x03, 0xa7, 0x87, 0x00, 0xe3, 0x4e, 0x07, 0xfe, 0x03, 0xa7, 0xc7, 0x01, 0x13, 0x77, 0xf7, 0x0f, 0xe3, 0x6c, 0x07, 0xff, 0x13, 0x07, 0x00, 0x00, 0x83, 0xcc, 0x07, 0x30, 0x13, 0x0c, 0x03, 0x00, 0x93, 0xfc, 0xfc, 0x0f, 0x1b, 0x07, 0x17, 0x00, 0x63, 0x00, 0x03, 0x02, 0x8b, 0x5c, 0x1c, 0x18, 0x13, 0x03, 0x0c, 0x00, 0xe3, 0x42, 0x07, 0xff, 0x3b, 0x0e, 0x0e, 0x41, 0xe3, 0x12, 0x0e, 0xf8, 0x13, 0x08, 0x95, 0x00, 0x6f, 0xf0, 0x9f, 0xf4, 0x1b, 0x0c, 0x17, 0x00, 0xe3, 0x56, 0x07, 0xff, 0x83, 0xcc, 0x07, 0x30, 0xe3, 0x52, 0x0c, 0xff, 0x03, 0xcc, 0x07, 0x30, 0x1b, 0x07, 0x27, 0x00, 0x1b, 0x0c, 0x17, 0x00, 0xe3, 0x46, 0x07, 0xff, 0x3b, 0x0e, 0x0e, 0x41, 0xe3, 0x1a, 0x0e, 0xf4, 0x6f, 0xf0, 0x1f, 0xfd, 0x93, 0xf2, 0x02, 0xf0, 0x93, 0xe2, 0x52, 0x00, 0x13, 0x03, 0x50, 0x00, 0x13, 0x0e, 0x10, 0x00, 0x37, 0x05, 0x00, 0x80, 0x23, 0xa0, 0xc5, 0x01, 0x23, 0xaa, 0xc7, 0x03, 0x23, 0xac, 0xc7, 0x03, 0x23, 0x80, 0x67, 0x20, 0x03, 0xa7, 0x87, 0x00, 0x33, 0x67, 0xa7, 0x00, 0x23, 0xa4, 0xe7, 0x00, 0x13, 0x00, 0x00, 0x00, 0x03, 0xa7, 0x87, 0x00, 0xe3, 0x4e, 0x07, 0xfe, 0x03, 0xa7, 0xc7, 0x01, 0x13, 0x77, 0xf7, 0x0f, 0xe3, 0x0c, 0x07, 0xfe, 0x03, 0xc7, 0x07, 0x30, 0x23, 0xa0, 0xd5, 0x00, 0x23, 0xaa, 0xd7, 0x02, 0x23, 0xac, 0xd7, 0x02, 0x23, 0x80, 0x17, 0x21, 0x03, 0xa7, 0x87, 0x00, 0x33, 0x67, 0xa7, 0x00, 0x23, 0xa4, 0xe7, 0x00, 0x13, 0x00, 0x00, 0x00, 0x03, 0xa7, 0x87, 0x00, 0xe3, 0x4e, 0x07, 0xfe, 0x03, 0xa7, 0xc7, 0x01, 0x13, 0x77, 0xf7, 0x0f, 0xe3, 0x0c, 0x07, 0xfe, 0x03, 0xc7, 0x07, 0x30, 0x13, 0x77, 0x17, 0x00, 0xe3, 0x16, 0x07, 0xf8, 0x13, 0x05, 0x08, 0x00, 0x6f, 0xf0, 0x1f, 0xc1, 0x03, 0x34, 0x81, 0x04, 0x83, 0x34, 0x01, 0x04, 0x03, 0x39, 0x81, 0x03, 0x83, 0x39, 0x01, 0x03, 0x03, 0x3a, 0x81, 0x02, 0x83, 0x3a, 0x01, 0x02, 0x03, 0x3b, 0x81, 0x01, 0x83, 0x3b, 0x01, 0x01, 0x03, 0x3c, 0x81, 0x00, 0x83, 0x3c, 0x01, 0x00, 0x13, 0x01, 0x01, 0x05, 0x67, 0x80, 0x00, 0x00 }; fel_write(ctx, 0x00020000, (void *)&payload[0], sizeof(payload)); if(swapbuf) *swapbuf = 0x00022000; if(swaplen) *swaplen = 65536; if(cmdlen) *cmdlen = 4096; return 1; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { fel_write(ctx, 0x00021000, (void *)cbuf, clen); fel_exec(ctx, 0x00020000); return 1; } enum { SID_PRCTL = 0x03006000 + 0x040, SID_PRKEY = 0x03006000 + 0x050, SID_RDKEY = 0x03006000 + 0x060, EFUSE_HV_SWITCH = 0x07090000 + 0x204, }; static uint32_t efuse_read(struct xfel_ctx_t * ctx, uint32_t offset) { uint32_t val; val = payload_read32(ctx, SID_PRCTL); val &= ~((0x1ff << 16) | 0x3); val |= offset << 16; payload_write32(ctx, SID_PRCTL, val); val &= ~((0xff << 8) | 0x3); val |= (0xac << 8) | 0x2; payload_write32(ctx, SID_PRCTL, val); while(payload_read32(ctx, SID_PRCTL) & 0x2); val &= ~((0x1ff << 16) | (0xff << 8) | 0x3); payload_write32(ctx, SID_PRCTL, val); val = payload_read32(ctx, SID_RDKEY); return val; } static void efuse_write(struct xfel_ctx_t * ctx, uint32_t offset, uint32_t value) { uint32_t val; payload_write32(ctx, EFUSE_HV_SWITCH, 0x1); payload_write32(ctx, SID_PRKEY, value); val = payload_read32(ctx, SID_PRCTL); val &= ~((0x1ff << 16) | 0x3); val |= offset << 16; payload_write32(ctx, SID_PRCTL, val); val &= ~((0xff << 8) | 0x3); val |= (0xac << 8) | 0x1; payload_write32(ctx, SID_PRCTL, val); while(payload_read32(ctx, SID_PRCTL) & 0x1); val &= ~((0x1ff << 16) | (0xff << 8) | 0x3); payload_write32(ctx, SID_PRCTL, val); payload_write32(ctx, EFUSE_HV_SWITCH, 0x0); } static const struct sid_section_t { char * name; uint32_t offset; uint32_t size_bits; } sids[] = { { "chipid", 0x0000, 128 }, { "brom-conf-try", 0x0010, 32 }, { "thermal-sensor", 0x0014, 64 }, { "ft-zone", 0x001c, 128 }, { "tvout", 0x002c, 32 }, { "tvout-gamma", 0x0030, 64 }, { "oem-program", 0x0038, 64 }, { "write-protect", 0x0040, 32 }, { "read-protect", 0x0044, 32 }, { "reserved1", 0x0048, 64 }, { "huk", 0x0050, 192 }, { "reserved2", 0x0068, 64 }, { "rotpk", 0x0070, 256 }, { "ssk", 0x0090, 256 }, { "rssk", 0x00b0, 128 }, { "hdcp-hash", 0x00c0, 128 }, { "nv1", 0x00d0, 32 }, { "nv2", 0x00d4, 32 }, { "reserved3", 0x00d8, 96 }, { "oem-program-secure", 0x00e4, 224 }, }; static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { if(argc > 0) { if(!strcmp(argv[0], "efuse")) { argc -= 1; argv += 1; if(argc > 0) { if(!strcmp(argv[0], "dump") && (argc == 1)) { uint32_t buffer[2048 / 4]; for(int n = 0; n < ARRAY_SIZE(sids); n++) { uint32_t count = sids[n].size_bits / 32; for(int i = 0; i < count; i++) buffer[i] = efuse_read(ctx, sids[n].offset + i * 4); printf("%s:(0x%04x %d-bits)", sids[n].name, sids[n].offset, sids[n].size_bits); for(int i = 0; i < count; i++) { if(i >= 0 && ((i % 8) == 0)) printf("\r\n%-4s", ""); printf("%08x ", buffer[i]); } printf("\r\n"); } return 1; } else if(!strcmp(argv[0], "read32") && (argc == 2)) { uint32_t offset = strtoul(argv[1], NULL, 0); printf("0x%08x\r\n", efuse_read(ctx, offset)); return 1; } else if(!strcmp(argv[0], "write32") && (argc == 3)) { uint32_t offset = strtoul(argv[1], NULL, 0); size_t value = strtoul(argv[2], NULL, 0); efuse_write(ctx, offset, value); return 1; } else if(!strcmp(argv[0], "write") && (argc == 3)) { uint32_t offset = strtoul(argv[1], NULL, 0); uint64_t len; void * buf = file_load(argv[2], &len); if(buf && (len > 0)) { uint8_t * p = buf; uint32_t l = len; uint32_t o = 0; uint32_t v; while(l >= 4) { v = *((uint32_t *)p); efuse_write(ctx, offset + o, v); l -= 4; o += 4; p += 4; } if(l > 0) { uint32_t v = 0; for(int i = 0; i < l; i++) v = ((v << 8) & 0xffffff00) | p[i]; efuse_write(ctx, offset + o, v); } free(buf); return 1; } } } } } printf("usage:\r\n"); printf(" xfel extra efuse dump - Dump all of the efuse information\r\n"); printf(" xfel extra efuse read32 - Read 32-bits value from efuse\r\n"); printf(" xfel extra efuse write32 - Write 32-bits value to efuse\r\n"); printf(" xfel extra efuse write - Write file to efuse\r\n"); return 0; } struct chip_t d1_f133 = { .name = "D1/F133", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/chips/f1c100s_f1c200s_f1c500s.c000066400000000000000000001064051512120643700173130ustar00rootroot00000000000000#include static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00166300) return 1; return 0; } static int chip_reset(struct xfel_ctx_t * ctx) { uint32_t val; val = R32(0x01c20ca0 + 0x18); val &= ~(0xf << 4); val |= (1 << 4) | (0x1 << 0); W32(0x01c20ca0 + 0x18, val); W32(0x01c20ca0 + 0x10, (0xa57 << 1) | (1 << 0)); return 1; } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { uint32_t swapbuf, swaplen, cmdlen; uint8_t tx[5], rx[8]; /* * The f1c100s have no sid, using spi nor flash's id. */ if(fel_spi_init(ctx, &swapbuf, &swaplen, &cmdlen)) { tx[0] = 0x4b; tx[1] = 0x0; tx[2] = 0x0; tx[3] = 0x0; tx[4] = 0x0; if(fel_spi_xfer(ctx, swapbuf, swaplen, cmdlen, tx, 5, rx, 8)) { sprintf(sid, "%02x%02x%02x%02x%02x%02x%02x%02x", rx[0], rx[1], rx[2], rx[3], rx[4], rx[5], rx[6], rx[7]); return 1; } } return 0; } static int chip_jtag(struct xfel_ctx_t * ctx) { static const uint8_t payload[] = { 0xff, 0xff, 0xff, 0xea, 0x40, 0x00, 0xa0, 0xe3, 0x00, 0xd0, 0x80, 0xe5, 0x04, 0xe0, 0x80, 0xe5, 0x00, 0xe0, 0x0f, 0xe1, 0x08, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x0c, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x10, 0xe0, 0x80, 0xe5, 0x1a, 0x00, 0x00, 0xeb, 0x04, 0x00, 0xa0, 0xe3, 0x65, 0x10, 0xa0, 0xe3, 0x00, 0x10, 0xc0, 0xe5, 0x47, 0x10, 0xa0, 0xe3, 0x01, 0x10, 0xc0, 0xe5, 0x4f, 0x10, 0xa0, 0xe3, 0x02, 0x10, 0xc0, 0xe5, 0x4e, 0x10, 0xa0, 0xe3, 0x03, 0x10, 0xc0, 0xe5, 0x2e, 0x10, 0xa0, 0xe3, 0x04, 0x10, 0xc0, 0xe5, 0x46, 0x10, 0xa0, 0xe3, 0x05, 0x10, 0xc0, 0xe5, 0x45, 0x10, 0xa0, 0xe3, 0x06, 0x10, 0xc0, 0xe5, 0x4c, 0x10, 0xa0, 0xe3, 0x07, 0x10, 0xc0, 0xe5, 0x40, 0x00, 0xa0, 0xe3, 0x00, 0xd0, 0x90, 0xe5, 0x04, 0xe0, 0x90, 0xe5, 0x10, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x0c, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x08, 0x10, 0x90, 0xe5, 0x01, 0xf0, 0x29, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0x40, 0x30, 0x9f, 0xe5, 0xb4, 0x28, 0x93, 0xe5, 0x0f, 0x20, 0xc2, 0xe3, 0x03, 0x20, 0x82, 0xe3, 0xb4, 0x28, 0x83, 0xe5, 0xb4, 0x28, 0x93, 0xe5, 0xf0, 0x20, 0xc2, 0xe3, 0x30, 0x20, 0x82, 0xe3, 0xb4, 0x28, 0x83, 0xe5, 0xb4, 0x28, 0x93, 0xe5, 0x0f, 0x2a, 0xc2, 0xe3, 0x03, 0x2a, 0x82, 0xe3, 0xb4, 0x28, 0x83, 0xe5, 0xb4, 0x28, 0x93, 0xe5, 0x0f, 0x26, 0xc2, 0xe3, 0x03, 0x26, 0x82, 0xe3, 0xb4, 0x28, 0x83, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0xc2, 0x01 }; fel_write(ctx, 0x00008800, (void *)&payload[0], sizeof(payload)); fel_exec(ctx, 0x00008800); return 1; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { static const uint8_t payload[] = { 0xff, 0xff, 0xff, 0xea, 0x40, 0x00, 0xa0, 0xe3, 0x00, 0xd0, 0x80, 0xe5, 0x04, 0xe0, 0x80, 0xe5, 0x00, 0xe0, 0x0f, 0xe1, 0x08, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x0c, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x10, 0xe0, 0x80, 0xe5, 0x6a, 0x01, 0x00, 0xeb, 0x96, 0x01, 0x00, 0xeb, 0xb2, 0x02, 0x00, 0xeb, 0x04, 0x00, 0xa0, 0xe3, 0x65, 0x10, 0xa0, 0xe3, 0x00, 0x10, 0xc0, 0xe5, 0x47, 0x10, 0xa0, 0xe3, 0x01, 0x10, 0xc0, 0xe5, 0x4f, 0x10, 0xa0, 0xe3, 0x02, 0x10, 0xc0, 0xe5, 0x4e, 0x10, 0xa0, 0xe3, 0x03, 0x10, 0xc0, 0xe5, 0x2e, 0x10, 0xa0, 0xe3, 0x04, 0x10, 0xc0, 0xe5, 0x46, 0x10, 0xa0, 0xe3, 0x05, 0x10, 0xc0, 0xe5, 0x45, 0x10, 0xa0, 0xe3, 0x06, 0x10, 0xc0, 0xe5, 0x4c, 0x10, 0xa0, 0xe3, 0x07, 0x10, 0xc0, 0xe5, 0x40, 0x00, 0xa0, 0xe3, 0x00, 0xd0, 0x90, 0xe5, 0x04, 0xe0, 0x90, 0xe5, 0x10, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x0c, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x08, 0x10, 0x90, 0xe5, 0x01, 0xf0, 0x29, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0x51, 0xe1, 0x91, 0x00, 0x00, 0x3a, 0x00, 0x00, 0xa0, 0x03, 0x0e, 0xf0, 0xa0, 0x01, 0x01, 0x40, 0x2d, 0xe9, 0x04, 0x20, 0x52, 0xe2, 0x20, 0x00, 0x00, 0xba, 0x03, 0xc0, 0x10, 0xe2, 0x28, 0x00, 0x00, 0x1a, 0x03, 0xc0, 0x11, 0xe2, 0x32, 0x00, 0x00, 0x1a, 0x08, 0x20, 0x52, 0xe2, 0x12, 0x00, 0x00, 0xba, 0x14, 0x20, 0x52, 0xe2, 0x0b, 0x00, 0x00, 0xba, 0x10, 0x00, 0x2d, 0xe9, 0x18, 0x50, 0xb1, 0xe8, 0x18, 0x50, 0xa0, 0xe8, 0x18, 0x50, 0xb1, 0xe8, 0x18, 0x50, 0xa0, 0xe8, 0x20, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x10, 0x00, 0x72, 0xe3, 0x18, 0x50, 0xb1, 0xa8, 0x18, 0x50, 0xa0, 0xa8, 0x10, 0x20, 0x42, 0xa2, 0x10, 0x00, 0xbd, 0xe8, 0x14, 0x20, 0x92, 0xe2, 0x08, 0x50, 0xb1, 0xa8, 0x08, 0x50, 0xa0, 0xa8, 0x0c, 0x20, 0x52, 0xa2, 0xfb, 0xff, 0xff, 0xaa, 0x08, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x04, 0x20, 0x52, 0xe2, 0x04, 0x30, 0x91, 0xb4, 0x04, 0x30, 0x80, 0xb4, 0x08, 0x10, 0xb1, 0xa8, 0x08, 0x10, 0xa0, 0xa8, 0x04, 0x20, 0x42, 0xa2, 0x04, 0x20, 0x92, 0xe2, 0x01, 0x80, 0xbd, 0x08, 0x02, 0x00, 0x52, 0xe3, 0x01, 0x30, 0xd1, 0xe4, 0x01, 0x30, 0xc0, 0xe4, 0x01, 0x30, 0xd1, 0xa4, 0x01, 0x30, 0xc0, 0xa4, 0x01, 0x30, 0xd1, 0xc4, 0x01, 0x30, 0xc0, 0xc4, 0x01, 0x80, 0xbd, 0xe8, 0x04, 0xc0, 0x6c, 0xe2, 0x02, 0x00, 0x5c, 0xe3, 0x01, 0x30, 0xd1, 0xe4, 0x01, 0x30, 0xc0, 0xe4, 0x01, 0x30, 0xd1, 0xa4, 0x01, 0x30, 0xc0, 0xa4, 0x01, 0x30, 0xd1, 0xc4, 0x01, 0x30, 0xc0, 0xc4, 0x0c, 0x20, 0x52, 0xe0, 0xeb, 0xff, 0xff, 0xba, 0x03, 0xc0, 0x11, 0xe2, 0xcc, 0xff, 0xff, 0x0a, 0x03, 0x10, 0xc1, 0xe3, 0x04, 0xe0, 0x91, 0xe4, 0x02, 0x00, 0x5c, 0xe3, 0x36, 0x00, 0x00, 0xca, 0x1a, 0x00, 0x00, 0x0a, 0x0c, 0x00, 0x52, 0xe3, 0x10, 0x00, 0x00, 0xba, 0x0c, 0x20, 0x42, 0xe2, 0x30, 0x00, 0x2d, 0xe9, 0x2e, 0x34, 0xa0, 0xe1, 0x30, 0x50, 0xb1, 0xe8, 0x04, 0x3c, 0x83, 0xe1, 0x24, 0x44, 0xa0, 0xe1, 0x05, 0x4c, 0x84, 0xe1, 0x25, 0x54, 0xa0, 0xe1, 0x0c, 0x5c, 0x85, 0xe1, 0x2c, 0xc4, 0xa0, 0xe1, 0x0e, 0xcc, 0x8c, 0xe1, 0x38, 0x10, 0xa0, 0xe8, 0x10, 0x20, 0x52, 0xe2, 0xf3, 0xff, 0xff, 0xaa, 0x30, 0x00, 0xbd, 0xe8, 0x0c, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x2e, 0xc4, 0xa0, 0xe1, 0x04, 0xe0, 0x91, 0xe4, 0x0e, 0xcc, 0x8c, 0xe1, 0x04, 0xc0, 0x80, 0xe4, 0x04, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x03, 0x10, 0x41, 0xe2, 0xc9, 0xff, 0xff, 0xea, 0x0c, 0x00, 0x52, 0xe3, 0x10, 0x00, 0x00, 0xba, 0x0c, 0x20, 0x42, 0xe2, 0x30, 0x00, 0x2d, 0xe9, 0x2e, 0x38, 0xa0, 0xe1, 0x30, 0x50, 0xb1, 0xe8, 0x04, 0x38, 0x83, 0xe1, 0x24, 0x48, 0xa0, 0xe1, 0x05, 0x48, 0x84, 0xe1, 0x25, 0x58, 0xa0, 0xe1, 0x0c, 0x58, 0x85, 0xe1, 0x2c, 0xc8, 0xa0, 0xe1, 0x0e, 0xc8, 0x8c, 0xe1, 0x38, 0x10, 0xa0, 0xe8, 0x10, 0x20, 0x52, 0xe2, 0xf3, 0xff, 0xff, 0xaa, 0x30, 0x00, 0xbd, 0xe8, 0x0c, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x2e, 0xc8, 0xa0, 0xe1, 0x04, 0xe0, 0x91, 0xe4, 0x0e, 0xc8, 0x8c, 0xe1, 0x04, 0xc0, 0x80, 0xe4, 0x04, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x02, 0x10, 0x41, 0xe2, 0xae, 0xff, 0xff, 0xea, 0x0c, 0x00, 0x52, 0xe3, 0x10, 0x00, 0x00, 0xba, 0x0c, 0x20, 0x42, 0xe2, 0x30, 0x00, 0x2d, 0xe9, 0x2e, 0x3c, 0xa0, 0xe1, 0x30, 0x50, 0xb1, 0xe8, 0x04, 0x34, 0x83, 0xe1, 0x24, 0x4c, 0xa0, 0xe1, 0x05, 0x44, 0x84, 0xe1, 0x25, 0x5c, 0xa0, 0xe1, 0x0c, 0x54, 0x85, 0xe1, 0x2c, 0xcc, 0xa0, 0xe1, 0x0e, 0xc4, 0x8c, 0xe1, 0x38, 0x10, 0xa0, 0xe8, 0x10, 0x20, 0x52, 0xe2, 0xf3, 0xff, 0xff, 0xaa, 0x30, 0x00, 0xbd, 0xe8, 0x0c, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x2e, 0xcc, 0xa0, 0xe1, 0x04, 0xe0, 0x91, 0xe4, 0x0e, 0xc4, 0x8c, 0xe1, 0x04, 0xc0, 0x80, 0xe4, 0x04, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x01, 0x10, 0x41, 0xe2, 0x93, 0xff, 0xff, 0xea, 0x02, 0x10, 0x81, 0xe0, 0x02, 0x00, 0x80, 0xe0, 0x04, 0x20, 0x52, 0xe2, 0x1f, 0x00, 0x00, 0xba, 0x03, 0xc0, 0x10, 0xe2, 0x27, 0x00, 0x00, 0x1a, 0x03, 0xc0, 0x11, 0xe2, 0x30, 0x00, 0x00, 0x1a, 0x08, 0x20, 0x52, 0xe2, 0x11, 0x00, 0x00, 0xba, 0x10, 0x40, 0x2d, 0xe9, 0x14, 0x20, 0x52, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x18, 0x50, 0x31, 0xe9, 0x18, 0x50, 0x20, 0xe9, 0x18, 0x50, 0x31, 0xe9, 0x18, 0x50, 0x20, 0xe9, 0x20, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x10, 0x00, 0x72, 0xe3, 0x18, 0x50, 0x31, 0xa9, 0x18, 0x50, 0x20, 0xa9, 0x10, 0x20, 0x42, 0xa2, 0x14, 0x20, 0x92, 0xe2, 0x08, 0x50, 0x31, 0xa9, 0x08, 0x50, 0x20, 0xa9, 0x0c, 0x20, 0x42, 0xa2, 0x10, 0x40, 0xbd, 0xe8, 0x08, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x04, 0x20, 0x52, 0xe2, 0x04, 0x30, 0x31, 0xb5, 0x04, 0x30, 0x20, 0xb5, 0x08, 0x10, 0x31, 0xa9, 0x08, 0x10, 0x20, 0xa9, 0x04, 0x20, 0x42, 0xa2, 0x04, 0x20, 0x92, 0xe2, 0x0e, 0xf0, 0xa0, 0x01, 0x02, 0x00, 0x52, 0xe3, 0x01, 0x30, 0x71, 0xe5, 0x01, 0x30, 0x60, 0xe5, 0x01, 0x30, 0x71, 0xa5, 0x01, 0x30, 0x60, 0xa5, 0x01, 0x30, 0x71, 0xc5, 0x01, 0x30, 0x60, 0xc5, 0x0e, 0xf0, 0xa0, 0xe1, 0x02, 0x00, 0x5c, 0xe3, 0x01, 0x30, 0x71, 0xe5, 0x01, 0x30, 0x60, 0xe5, 0x01, 0x30, 0x71, 0xa5, 0x01, 0x30, 0x60, 0xa5, 0x01, 0x30, 0x71, 0xc5, 0x01, 0x30, 0x60, 0xc5, 0x0c, 0x20, 0x52, 0xe0, 0xec, 0xff, 0xff, 0xba, 0x03, 0xc0, 0x11, 0xe2, 0xce, 0xff, 0xff, 0x0a, 0x03, 0x10, 0xc1, 0xe3, 0x00, 0x30, 0x91, 0xe5, 0x02, 0x00, 0x5c, 0xe3, 0x36, 0x00, 0x00, 0xba, 0x1a, 0x00, 0x00, 0x0a, 0x0c, 0x00, 0x52, 0xe3, 0x10, 0x00, 0x00, 0xba, 0x0c, 0x20, 0x42, 0xe2, 0x30, 0x40, 0x2d, 0xe9, 0x03, 0xe4, 0xa0, 0xe1, 0x38, 0x10, 0x31, 0xe9, 0x2c, 0xec, 0x8e, 0xe1, 0x0c, 0xc4, 0xa0, 0xe1, 0x25, 0xcc, 0x8c, 0xe1, 0x05, 0x54, 0xa0, 0xe1, 0x24, 0x5c, 0x85, 0xe1, 0x04, 0x44, 0xa0, 0xe1, 0x23, 0x4c, 0x84, 0xe1, 0x30, 0x50, 0x20, 0xe9, 0x10, 0x20, 0x52, 0xe2, 0xf3, 0xff, 0xff, 0xaa, 0x30, 0x40, 0xbd, 0xe8, 0x0c, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x03, 0xc4, 0xa0, 0xe1, 0x04, 0x30, 0x31, 0xe5, 0x23, 0xcc, 0x8c, 0xe1, 0x04, 0xc0, 0x20, 0xe5, 0x04, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x03, 0x10, 0x81, 0xe2, 0xca, 0xff, 0xff, 0xea, 0x0c, 0x00, 0x52, 0xe3, 0x10, 0x00, 0x00, 0xba, 0x0c, 0x20, 0x42, 0xe2, 0x30, 0x40, 0x2d, 0xe9, 0x03, 0xe8, 0xa0, 0xe1, 0x38, 0x10, 0x31, 0xe9, 0x2c, 0xe8, 0x8e, 0xe1, 0x0c, 0xc8, 0xa0, 0xe1, 0x25, 0xc8, 0x8c, 0xe1, 0x05, 0x58, 0xa0, 0xe1, 0x24, 0x58, 0x85, 0xe1, 0x04, 0x48, 0xa0, 0xe1, 0x23, 0x48, 0x84, 0xe1, 0x30, 0x50, 0x20, 0xe9, 0x10, 0x20, 0x52, 0xe2, 0xf3, 0xff, 0xff, 0xaa, 0x30, 0x40, 0xbd, 0xe8, 0x0c, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x03, 0xc8, 0xa0, 0xe1, 0x04, 0x30, 0x31, 0xe5, 0x23, 0xc8, 0x8c, 0xe1, 0x04, 0xc0, 0x20, 0xe5, 0x04, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x02, 0x10, 0x81, 0xe2, 0xaf, 0xff, 0xff, 0xea, 0x0c, 0x00, 0x52, 0xe3, 0x10, 0x00, 0x00, 0xba, 0x0c, 0x20, 0x42, 0xe2, 0x30, 0x40, 0x2d, 0xe9, 0x03, 0xec, 0xa0, 0xe1, 0x38, 0x10, 0x31, 0xe9, 0x2c, 0xe4, 0x8e, 0xe1, 0x0c, 0xcc, 0xa0, 0xe1, 0x25, 0xc4, 0x8c, 0xe1, 0x05, 0x5c, 0xa0, 0xe1, 0x24, 0x54, 0x85, 0xe1, 0x04, 0x4c, 0xa0, 0xe1, 0x23, 0x44, 0x84, 0xe1, 0x30, 0x50, 0x20, 0xe9, 0x10, 0x20, 0x52, 0xe2, 0xf3, 0xff, 0xff, 0xaa, 0x30, 0x40, 0xbd, 0xe8, 0x0c, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x03, 0xcc, 0xa0, 0xe1, 0x04, 0x30, 0x31, 0xe5, 0x23, 0xc4, 0x8c, 0xe1, 0x04, 0xc0, 0x20, 0xe5, 0x04, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x01, 0x10, 0x81, 0xe2, 0x94, 0xff, 0xff, 0xea, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x2d, 0xe9, 0xff, 0x10, 0x01, 0xe2, 0x04, 0x00, 0x52, 0xe3, 0x1c, 0x00, 0x00, 0xba, 0x03, 0x30, 0x10, 0xe2, 0x07, 0x00, 0x00, 0x0a, 0x04, 0x30, 0x63, 0xe2, 0x03, 0x20, 0x42, 0xe0, 0x02, 0x00, 0x53, 0xe3, 0x01, 0x10, 0xc0, 0xe4, 0x01, 0x10, 0xc0, 0xa4, 0x01, 0x10, 0xc0, 0xc4, 0x04, 0x00, 0x52, 0xe3, 0x12, 0x00, 0x00, 0xba, 0x01, 0x34, 0x81, 0xe1, 0x03, 0x38, 0x83, 0xe1, 0x20, 0x00, 0x52, 0xe3, 0x0a, 0x00, 0x00, 0xba, 0x70, 0x00, 0x2d, 0xe9, 0x03, 0x40, 0xa0, 0xe1, 0x03, 0x50, 0xa0, 0xe1, 0x03, 0x60, 0xa0, 0xe1, 0x78, 0x00, 0xa0, 0xe8, 0x10, 0x20, 0x42, 0xe2, 0x10, 0x00, 0x52, 0xe3, 0xfb, 0xff, 0xff, 0xca, 0x70, 0x00, 0xbd, 0xe8, 0x04, 0x00, 0x52, 0xe3, 0x03, 0x00, 0x00, 0xba, 0x04, 0x30, 0x80, 0xe4, 0x04, 0x20, 0x42, 0xe2, 0x04, 0x00, 0x52, 0xe3, 0xfb, 0xff, 0xff, 0xaa, 0x00, 0x00, 0x52, 0xe3, 0x01, 0x00, 0xbd, 0x08, 0x0e, 0xf0, 0xa0, 0x01, 0x02, 0x00, 0x52, 0xe3, 0x01, 0x10, 0xc0, 0xe4, 0x01, 0x10, 0xc0, 0xa4, 0x01, 0x10, 0xc0, 0xc4, 0x01, 0x00, 0xbd, 0xe8, 0x0e, 0xf0, 0xa0, 0xe1, 0x88, 0x20, 0x9f, 0xe5, 0x04, 0xe0, 0x2d, 0xe5, 0x28, 0x18, 0x92, 0xe5, 0x80, 0x30, 0x9f, 0xe5, 0x0f, 0x10, 0xc1, 0xe3, 0x03, 0x10, 0x81, 0xe3, 0x28, 0x18, 0x82, 0xe5, 0x28, 0x18, 0x92, 0xe5, 0x00, 0x00, 0xa0, 0xe3, 0xf0, 0x10, 0xc1, 0xe3, 0x30, 0x10, 0x81, 0xe3, 0x28, 0x18, 0x82, 0xe5, 0x6c, 0x10, 0x92, 0xe5, 0xf7, 0xe0, 0xa0, 0xe3, 0x01, 0x18, 0x81, 0xe3, 0x6c, 0x10, 0x82, 0xe5, 0xd8, 0x12, 0x92, 0xe5, 0x0d, 0xc0, 0xa0, 0xe3, 0x01, 0x18, 0x81, 0xe3, 0xd8, 0x12, 0x82, 0xe5, 0x04, 0x00, 0x83, 0xe5, 0x08, 0xe0, 0x83, 0xe5, 0x10, 0x00, 0x83, 0xe5, 0x0c, 0x20, 0x93, 0xe5, 0x80, 0x20, 0x82, 0xe3, 0x0c, 0x20, 0x83, 0xe5, 0x00, 0xc0, 0x83, 0xe5, 0x04, 0x00, 0x83, 0xe5, 0x0c, 0x20, 0x93, 0xe5, 0x80, 0x20, 0xc2, 0xe3, 0x0c, 0x20, 0x83, 0xe5, 0x0c, 0x20, 0x93, 0xe5, 0x1f, 0x20, 0xc2, 0xe3, 0x03, 0x20, 0x82, 0xe3, 0x0c, 0x20, 0x83, 0xe5, 0x04, 0xf0, 0x9d, 0xe4, 0x00, 0x00, 0xc2, 0x01, 0x00, 0x80, 0xc2, 0x01, 0x10, 0x20, 0x9f, 0xe5, 0x7c, 0x30, 0x92, 0xe5, 0x02, 0x00, 0x13, 0xe3, 0xfc, 0xff, 0xff, 0x0a, 0x00, 0x00, 0x82, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x80, 0xc2, 0x01, 0xd8, 0x30, 0x9f, 0xe5, 0xd8, 0x10, 0x9f, 0xe5, 0x64, 0x20, 0xa0, 0xe3, 0x00, 0x12, 0x83, 0xe5, 0x04, 0x12, 0x83, 0xe5, 0x50, 0x10, 0x93, 0xe5, 0x02, 0x00, 0xa0, 0xe1, 0x03, 0x18, 0xc1, 0xe3, 0x01, 0x18, 0x81, 0xe3, 0x50, 0x10, 0x83, 0xe5, 0x01, 0x00, 0x50, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0xb0, 0x00, 0x9f, 0xe5, 0x02, 0x10, 0xa0, 0xe1, 0x10, 0x00, 0x83, 0xe5, 0x01, 0x10, 0x51, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0xa0, 0x00, 0x9f, 0xe5, 0x02, 0x10, 0xa0, 0xe1, 0x28, 0x00, 0x83, 0xe5, 0x01, 0x10, 0x51, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0xc6, 0x1d, 0xa0, 0xe3, 0x54, 0x10, 0x83, 0xe5, 0x02, 0x10, 0xa0, 0xe1, 0x01, 0x10, 0x51, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x00, 0x11, 0x93, 0xe5, 0x05, 0x14, 0x81, 0xe3, 0x00, 0x11, 0x83, 0xe5, 0x01, 0x20, 0x52, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x68, 0x20, 0x9f, 0xe5, 0x00, 0x10, 0x93, 0xe5, 0x03, 0x00, 0xa0, 0xe1, 0x01, 0x20, 0x02, 0xe0, 0x02, 0x21, 0x82, 0xe3, 0x01, 0x2a, 0x82, 0xe3, 0x00, 0x20, 0x83, 0xe5, 0x50, 0x20, 0x9f, 0xe5, 0x00, 0x30, 0x93, 0xe5, 0x02, 0x00, 0x00, 0xea, 0x01, 0x20, 0x52, 0xe2, 0x00, 0x30, 0x90, 0xe5, 0x01, 0x00, 0x00, 0x0a, 0x01, 0x02, 0x13, 0xe3, 0xfa, 0xff, 0xff, 0x0a, 0x1c, 0x10, 0x9f, 0xe5, 0x64, 0x20, 0xa0, 0xe3, 0x50, 0x30, 0x91, 0xe5, 0x03, 0x38, 0xc3, 0xe3, 0x02, 0x38, 0x83, 0xe3, 0x50, 0x30, 0x81, 0xe5, 0x01, 0x20, 0x52, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0xc2, 0x01, 0xff, 0x01, 0x00, 0x00, 0x07, 0x41, 0x00, 0x81, 0x00, 0x18, 0x04, 0x80, 0xcc, 0xe0, 0xfc, 0xff, 0xfe, 0x0f, 0x00, 0x00, 0xd8, 0x30, 0x9f, 0xe5, 0x00, 0x20, 0x93, 0xe5, 0xa2, 0x22, 0xa0, 0xe1, 0x0f, 0x20, 0x02, 0xe2, 0x0c, 0x00, 0x52, 0xe3, 0x16, 0x00, 0x00, 0x0a, 0x0b, 0x00, 0x52, 0xe3, 0x03, 0x00, 0x00, 0x0a, 0x00, 0x30, 0xa0, 0xe3, 0xb4, 0x20, 0x9f, 0xe5, 0x10, 0x30, 0x82, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, 0xac, 0x30, 0x9f, 0xe5, 0x03, 0x00, 0x50, 0xe1, 0x23, 0x00, 0x00, 0x3a, 0x20, 0x32, 0xa0, 0xe1, 0xa0, 0x31, 0x83, 0xe0, 0x9c, 0x20, 0x9f, 0xe5, 0x00, 0x30, 0x83, 0xe0, 0xa0, 0x02, 0x83, 0xe0, 0x02, 0x00, 0x50, 0xe1, 0xf1, 0xff, 0xff, 0x9a, 0x8c, 0x10, 0x9f, 0xe5, 0x00, 0x30, 0xa0, 0xe3, 0x01, 0x00, 0x80, 0xe0, 0x02, 0x00, 0x50, 0xe1, 0x01, 0x30, 0x83, 0xe2, 0xfb, 0xff, 0xff, 0x8a, 0xeb, 0xff, 0xff, 0xea, 0x68, 0x30, 0x9f, 0xe5, 0x03, 0x00, 0x50, 0xe1, 0x0d, 0x00, 0x00, 0x3a, 0x20, 0x32, 0xa0, 0xe1, 0xa0, 0x31, 0x83, 0xe0, 0x60, 0x20, 0x9f, 0xe5, 0x00, 0x30, 0x83, 0xe0, 0xa0, 0x02, 0x83, 0xe0, 0x02, 0x00, 0x50, 0xe1, 0xe0, 0xff, 0xff, 0x9a, 0x50, 0x10, 0x9f, 0xe5, 0x00, 0x30, 0xa0, 0xe3, 0x01, 0x00, 0x80, 0xe0, 0x02, 0x00, 0x50, 0xe1, 0x01, 0x30, 0x83, 0xe2, 0xfb, 0xff, 0xff, 0x8a, 0xda, 0xff, 0xff, 0xea, 0x80, 0x22, 0x60, 0xe0, 0x82, 0x21, 0x80, 0xe0, 0x82, 0x30, 0x80, 0xe0, 0x23, 0x33, 0xa0, 0xe1, 0xd5, 0xff, 0xff, 0xea, 0x80, 0x32, 0x60, 0xe0, 0x83, 0x31, 0x80, 0xe0, 0x83, 0x30, 0x80, 0xe0, 0xa3, 0x32, 0xa0, 0xe1, 0xd0, 0xff, 0xff, 0xea, 0x00, 0x10, 0xc0, 0x01, 0x40, 0x42, 0x0f, 0x00, 0x2c, 0x31, 0x01, 0x00, 0xd3, 0xce, 0xfe, 0xff, 0x59, 0x62, 0x02, 0x00, 0xa6, 0x9d, 0xfd, 0xff, 0x28, 0x30, 0x90, 0xe5, 0x30, 0x40, 0x2d, 0xe9, 0x18, 0x50, 0xd0, 0xe5, 0x23, 0x31, 0xa0, 0xe1, 0x83, 0x41, 0xa0, 0xe1, 0x1c, 0x30, 0x90, 0xe5, 0x14, 0x20, 0x90, 0xe5, 0x00, 0x00, 0x55, 0xe3, 0x10, 0xe0, 0x90, 0xe5, 0x24, 0xc0, 0x90, 0xe5, 0x20, 0x10, 0x90, 0xe5, 0x23, 0x32, 0xa0, 0x11, 0x0c, 0x00, 0x90, 0xe5, 0xa3, 0x32, 0xa0, 0x01, 0x83, 0x36, 0xa0, 0xe1, 0x03, 0x20, 0x82, 0xe1, 0x80, 0x37, 0x82, 0xe1, 0xae, 0xe0, 0xa0, 0xe1, 0x01, 0xc0, 0x4c, 0xe2, 0x0e, 0xe2, 0xa0, 0xe1, 0x04, 0x30, 0x83, 0xe1, 0x01, 0x10, 0x41, 0xe2, 0x8c, 0xc2, 0xa0, 0xe1, 0x0e, 0x30, 0x83, 0xe1, 0x81, 0x14, 0xa0, 0xe1, 0x0c, 0x30, 0x83, 0xe1, 0x01, 0x30, 0x83, 0xe1, 0x48, 0x10, 0x9f, 0xe5, 0x05, 0x38, 0x83, 0xe1, 0x02, 0x30, 0x83, 0xe3, 0x00, 0x30, 0x81, 0xe5, 0x0c, 0x30, 0x91, 0xe5, 0x01, 0x20, 0xa0, 0xe1, 0x02, 0x37, 0x83, 0xe3, 0x0c, 0x30, 0x81, 0xe5, 0x0c, 0x30, 0x91, 0xe5, 0xff, 0x04, 0xe0, 0xe3, 0x01, 0x30, 0x83, 0xe3, 0x0c, 0x30, 0x81, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x01, 0x00, 0x50, 0xe2, 0x30, 0x80, 0xbd, 0x08, 0x0c, 0x30, 0x92, 0xe5, 0x01, 0x00, 0x13, 0xe3, 0xfa, 0xff, 0xff, 0x1a, 0x01, 0x00, 0xa0, 0xe3, 0x30, 0x80, 0xbd, 0xe8, 0x00, 0x10, 0xc0, 0x01, 0x01, 0x00, 0x50, 0xe3, 0x48, 0x00, 0x00, 0x1a, 0xb0, 0xc1, 0x9f, 0xe5, 0xf0, 0x40, 0x2d, 0xe9, 0x00, 0x50, 0xa0, 0xe3, 0x05, 0x40, 0xa0, 0xe1, 0x05, 0xe0, 0xa0, 0xe1, 0x0c, 0x20, 0x9c, 0xe5, 0xff, 0x34, 0xe0, 0xe3, 0x07, 0x2d, 0xc2, 0xe3, 0x0e, 0x23, 0x82, 0xe1, 0x0c, 0x20, 0x8c, 0xe5, 0x24, 0x20, 0x9c, 0xe5, 0x01, 0x20, 0x82, 0xe3, 0x24, 0x20, 0x8c, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x01, 0x30, 0x53, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0x24, 0x20, 0x9c, 0xe5, 0x01, 0x00, 0x12, 0xe3, 0xfa, 0xff, 0xff, 0x1a, 0x24, 0x30, 0x9c, 0xe5, 0x30, 0x00, 0x13, 0xe3, 0x02, 0x00, 0x00, 0x1a, 0x24, 0x00, 0x9c, 0xe5, 0x10, 0x00, 0x10, 0xe2, 0x14, 0x00, 0x00, 0x0a, 0x01, 0xe0, 0x8e, 0xe2, 0x08, 0x00, 0x5e, 0xe3, 0xe8, 0xff, 0xff, 0x1a, 0x40, 0x21, 0x9f, 0xe5, 0xff, 0x34, 0xe0, 0xe3, 0x0c, 0x00, 0x92, 0xe5, 0x02, 0x10, 0xa0, 0xe1, 0x07, 0x0d, 0xc0, 0xe3, 0x05, 0x53, 0x80, 0xe1, 0x0c, 0x50, 0x82, 0xe5, 0x24, 0x00, 0x92, 0xe5, 0x01, 0x00, 0x80, 0xe3, 0x24, 0x00, 0x82, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x01, 0x30, 0x53, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0x24, 0x20, 0x91, 0xe5, 0x01, 0x00, 0x12, 0xe3, 0xfa, 0xff, 0xff, 0x1a, 0x00, 0x00, 0xa0, 0xe3, 0xf0, 0x80, 0xbd, 0xe8, 0x00, 0x30, 0x91, 0xe5, 0x00, 0x60, 0xa0, 0xe1, 0x10, 0x00, 0x53, 0xe3, 0x04, 0x70, 0xa0, 0x03, 0x02, 0x70, 0xa0, 0x13, 0x00, 0x00, 0x56, 0xe3, 0x30, 0x20, 0x9c, 0x05, 0x05, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x56, 0xe3, 0x34, 0x20, 0x9c, 0x05, 0x02, 0x00, 0x00, 0x0a, 0x02, 0x00, 0x56, 0xe3, 0x38, 0x20, 0x9c, 0x05, 0x3c, 0x20, 0x9c, 0x15, 0x20, 0x30, 0xa0, 0xe3, 0x01, 0x00, 0x12, 0xe3, 0x01, 0x00, 0x80, 0x12, 0x01, 0x30, 0x53, 0xe2, 0xa2, 0x20, 0xa0, 0xe1, 0xfa, 0xff, 0xff, 0x1a, 0x01, 0x60, 0x86, 0xe2, 0x07, 0x00, 0x56, 0xe1, 0xed, 0xff, 0xff, 0x1a, 0x04, 0x00, 0x50, 0xe1, 0x00, 0x40, 0xa0, 0x81, 0x0e, 0x50, 0xa0, 0x81, 0xcf, 0xff, 0xff, 0xea, 0x8c, 0x30, 0x9f, 0xe5, 0x00, 0x00, 0xa0, 0xe3, 0x00, 0x20, 0x93, 0xe5, 0x03, 0xc0, 0xa0, 0xe1, 0x16, 0x2a, 0xc2, 0xe3, 0x00, 0x20, 0x83, 0xe5, 0x0c, 0x10, 0x9c, 0xe5, 0x02, 0x21, 0xa0, 0xe3, 0x07, 0x1d, 0xc1, 0xe3, 0x00, 0x10, 0x81, 0xe1, 0x00, 0x30, 0xa0, 0xe3, 0x0c, 0x10, 0x8c, 0xe5, 0x04, 0x30, 0x82, 0xe4, 0x01, 0x30, 0x83, 0xe2, 0x20, 0x00, 0x53, 0xe3, 0xfb, 0xff, 0xff, 0x1a, 0x02, 0x21, 0xa0, 0xe3, 0x00, 0x30, 0xa0, 0xe3, 0x01, 0x00, 0x00, 0xea, 0x20, 0x00, 0x53, 0xe3, 0x08, 0x00, 0x00, 0x0a, 0x00, 0x10, 0x92, 0xe5, 0x04, 0x20, 0x82, 0xe2, 0x03, 0x00, 0x51, 0xe1, 0x01, 0x30, 0x83, 0xe2, 0xf8, 0xff, 0xff, 0x0a, 0x40, 0x00, 0x80, 0xe2, 0x02, 0x0c, 0x50, 0xe3, 0xe8, 0xff, 0xff, 0x1a, 0x00, 0x00, 0xa0, 0xe3, 0x14, 0x20, 0x9f, 0xe5, 0x0c, 0x30, 0x92, 0xe5, 0x07, 0x3d, 0xc3, 0xe3, 0x00, 0x00, 0x83, 0xe1, 0x0c, 0x00, 0x82, 0xe5, 0x00, 0x00, 0xa0, 0xe3, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x10, 0xc0, 0x01, 0x30, 0x40, 0x2d, 0xe9, 0x02, 0x01, 0xa0, 0xe3, 0x34, 0xd0, 0x4d, 0xe2, 0x00, 0x10, 0xa0, 0xe3, 0x9c, 0x40, 0xa0, 0xe3, 0x01, 0x50, 0xa0, 0xe3, 0x01, 0x30, 0xa0, 0xe3, 0xf0, 0x00, 0xcd, 0xe1, 0xf8, 0x40, 0xcd, 0xe1, 0x18, 0x30, 0xcd, 0xe5, 0x10, 0xe0, 0xa0, 0xe3, 0x0a, 0xc0, 0xa0, 0xe3, 0x0d, 0x00, 0xa0, 0xe3, 0x01, 0x40, 0xa0, 0xe3, 0x00, 0x50, 0xa0, 0xe3, 0x04, 0x10, 0xa0, 0xe3, 0x03, 0x20, 0xa0, 0xe3, 0x00, 0x30, 0xa0, 0xe3, 0xf0, 0x41, 0xcd, 0xe1, 0x1c, 0xe0, 0x8d, 0xe5, 0x20, 0xc0, 0x8d, 0xe5, 0x24, 0x00, 0x8d, 0xe5, 0x28, 0x10, 0x8d, 0xe5, 0x2c, 0x20, 0x8d, 0xe5, 0x5c, 0x30, 0x93, 0xe5, 0x23, 0x3c, 0xa0, 0xe1, 0x58, 0x00, 0x53, 0xe3, 0xd3, 0x00, 0x00, 0x0a, 0x00, 0x24, 0x9f, 0xe5, 0x00, 0x34, 0x9f, 0xe5, 0x24, 0x18, 0x92, 0xe5, 0x07, 0x1a, 0x81, 0xe3, 0x24, 0x18, 0x82, 0xe5, 0x01, 0x30, 0x53, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x2c, 0x30, 0x9d, 0xe5, 0x08, 0x00, 0x13, 0xe3, 0xc4, 0x3a, 0x92, 0x15, 0x03, 0x35, 0x83, 0x13, 0xc4, 0x3a, 0x82, 0x15, 0x08, 0x30, 0x9d, 0xe5, 0x90, 0x20, 0x43, 0xe2, 0x24, 0x00, 0x52, 0xe3, 0xc4, 0x33, 0x9f, 0x95, 0xc8, 0x23, 0x9f, 0x95, 0xc0, 0x2a, 0x83, 0x95, 0x08, 0x30, 0x9d, 0x95, 0xb3, 0x00, 0x53, 0xe3, 0xb0, 0x33, 0x9f, 0x85, 0xb8, 0x23, 0x9f, 0x85, 0xc0, 0x2a, 0x83, 0x85, 0x08, 0x30, 0x9d, 0x85, 0xb0, 0x23, 0x9f, 0xe5, 0x60, 0x00, 0x53, 0xe3, 0x83, 0x30, 0xa0, 0xe1, 0x92, 0x13, 0x83, 0xe0, 0x2c, 0x20, 0x9d, 0xe5, 0xa3, 0x31, 0xa0, 0x91, 0x23, 0x32, 0xa0, 0x81, 0x01, 0x30, 0x43, 0x92, 0x01, 0x30, 0x43, 0x82, 0x03, 0x34, 0xa0, 0x91, 0x03, 0x34, 0xa0, 0x81, 0x06, 0x31, 0x83, 0x93, 0x02, 0x31, 0x83, 0x83, 0x10, 0x00, 0x12, 0xe3, 0xae, 0x00, 0x00, 0x0a, 0x64, 0x23, 0x9f, 0xe5, 0x74, 0x13, 0x9f, 0xe5, 0x90, 0x12, 0x82, 0xe5, 0x2c, 0x20, 0x9d, 0xe5, 0xf0, 0x00, 0x12, 0xe3, 0x50, 0x23, 0x9f, 0xe5, 0x01, 0x34, 0x83, 0x13, 0x20, 0x30, 0x82, 0xe5, 0x20, 0x10, 0x92, 0xe5, 0x02, 0x30, 0xa0, 0xe1, 0x01, 0x16, 0x81, 0xe3, 0x20, 0x10, 0x82, 0xe5, 0x20, 0x20, 0x93, 0xe5, 0x01, 0x02, 0x12, 0xe3, 0xfc, 0xff, 0xff, 0x0a, 0x2c, 0x23, 0x9f, 0xe5, 0x01, 0x20, 0x52, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x60, 0x20, 0x93, 0xe5, 0x30, 0x43, 0x9f, 0xe5, 0x01, 0x29, 0x82, 0xe3, 0x60, 0x20, 0x83, 0xe5, 0xc0, 0x22, 0x93, 0xe5, 0x24, 0x13, 0x9f, 0xe5, 0x01, 0x29, 0xc2, 0xe3, 0xc0, 0x22, 0x83, 0xe5, 0xc0, 0x22, 0x93, 0xe5, 0xf8, 0x02, 0x9f, 0xe5, 0x01, 0x29, 0x82, 0xe3, 0xc0, 0x22, 0x83, 0xe5, 0x18, 0x20, 0xdd, 0xe5, 0xc4, 0x3a, 0x93, 0xe5, 0x01, 0x00, 0x52, 0xe3, 0x00, 0x23, 0x9f, 0xe5, 0x01, 0x38, 0x83, 0x03, 0x01, 0x38, 0xc3, 0x13, 0xc4, 0x3a, 0x80, 0xe5, 0x04, 0x10, 0x84, 0xe5, 0x0d, 0x00, 0xa0, 0xe1, 0x08, 0x20, 0x84, 0xe5, 0xf2, 0xfe, 0xff, 0xeb, 0x00, 0x10, 0xa0, 0xe3, 0x04, 0x30, 0xa0, 0xe1, 0x01, 0xc0, 0xa0, 0xe1, 0x0c, 0x20, 0x93, 0xe5, 0xff, 0x04, 0xe0, 0xe3, 0x07, 0x2d, 0xc2, 0xe3, 0x01, 0x20, 0x82, 0xe1, 0x0c, 0x20, 0x83, 0xe5, 0x24, 0x20, 0x93, 0xe5, 0x01, 0x20, 0x82, 0xe3, 0x24, 0x20, 0x83, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x01, 0x00, 0x50, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0x24, 0x20, 0x93, 0xe5, 0x01, 0x00, 0x12, 0xe3, 0xfa, 0xff, 0xff, 0x1a, 0x24, 0x20, 0x93, 0xe5, 0x40, 0x10, 0x81, 0xe2, 0x30, 0x00, 0x12, 0xe3, 0x01, 0xc0, 0x8c, 0x12, 0x02, 0x0c, 0x51, 0xe3, 0xeb, 0xff, 0xff, 0x1a, 0x64, 0x32, 0x9f, 0xe5, 0x08, 0x00, 0x5c, 0xe3, 0x01, 0x20, 0xa0, 0x13, 0x00, 0x20, 0xa0, 0x03, 0x18, 0x20, 0xcd, 0xe5, 0xc4, 0x3a, 0x93, 0xe5, 0x4c, 0x22, 0x9f, 0xe5, 0x01, 0x38, 0x83, 0x13, 0x01, 0x38, 0xc3, 0x03, 0xc4, 0x3a, 0x82, 0xe5, 0x08, 0x00, 0x9d, 0xe5, 0x80, 0x32, 0x60, 0xe0, 0x03, 0x33, 0x63, 0xe0, 0x83, 0x01, 0x80, 0xe0, 0x00, 0x03, 0xa0, 0xe1, 0x8d, 0xfe, 0xff, 0xeb, 0x1c, 0x10, 0x8d, 0xe2, 0x18, 0x00, 0xdd, 0xe5, 0xf8, 0xfe, 0xff, 0xeb, 0x0a, 0x20, 0xa0, 0xe3, 0x0d, 0x30, 0xa0, 0xe3, 0x0d, 0x00, 0xa0, 0xe1, 0xf0, 0x22, 0xcd, 0xe1, 0xc3, 0xfe, 0xff, 0xeb, 0x1c, 0x10, 0x8d, 0xe2, 0x18, 0x00, 0xdd, 0xe5, 0xf0, 0xfe, 0xff, 0xeb, 0x1c, 0x32, 0x9f, 0xe5, 0x1c, 0x02, 0x9f, 0xe5, 0x1c, 0x12, 0x9f, 0xe5, 0x1c, 0x22, 0x9f, 0xe5, 0x00, 0x00, 0x83, 0xe5, 0x00, 0x14, 0x83, 0xe5, 0x01, 0x30, 0x83, 0xe2, 0x02, 0x00, 0x53, 0xe1, 0xfa, 0xff, 0xff, 0x1a, 0xf8, 0x31, 0x9f, 0xe5, 0xfc, 0xc1, 0x9f, 0xe5, 0xfc, 0x01, 0x9f, 0xe5, 0x00, 0x20, 0xa0, 0xe3, 0x00, 0x10, 0x93, 0xe5, 0x01, 0x30, 0x83, 0xe2, 0x0c, 0x00, 0x51, 0xe1, 0x01, 0x20, 0x82, 0x02, 0x00, 0x00, 0x53, 0xe1, 0xf9, 0xff, 0xff, 0x1a, 0x20, 0x00, 0x52, 0xe3, 0x53, 0x00, 0x00, 0x0a, 0x0d, 0x30, 0xa0, 0xe3, 0x0a, 0x20, 0xa0, 0xe3, 0x0d, 0x00, 0xa0, 0xe1, 0xf0, 0x22, 0xcd, 0xe1, 0xa6, 0xfe, 0xff, 0xeb, 0xc4, 0x11, 0x9f, 0xe5, 0xc4, 0x31, 0x9f, 0xe5, 0x0a, 0xc0, 0xa0, 0xe3, 0xc0, 0x41, 0x9f, 0xe5, 0xc0, 0xe1, 0x9f, 0xe5, 0x03, 0x10, 0x41, 0xe0, 0x20, 0x00, 0x83, 0xe2, 0x03, 0x20, 0xa0, 0xe1, 0x00, 0x40, 0x82, 0xe5, 0x02, 0xe0, 0x81, 0xe7, 0x01, 0x20, 0x82, 0xe2, 0x00, 0x00, 0x52, 0xe1, 0xfa, 0xff, 0xff, 0x1a, 0x9c, 0xe1, 0x9f, 0xe5, 0x00, 0x20, 0xa0, 0xe3, 0x00, 0x10, 0x93, 0xe5, 0x01, 0x30, 0x83, 0xe2, 0x0e, 0x00, 0x51, 0xe1, 0x01, 0x20, 0x82, 0x02, 0x00, 0x00, 0x53, 0xe1, 0xf9, 0xff, 0xff, 0x1a, 0x20, 0x00, 0x52, 0xe3, 0x2b, 0x00, 0x00, 0x0a, 0x0d, 0x30, 0xa0, 0xe3, 0x0a, 0x00, 0x5c, 0xe3, 0x24, 0x30, 0x8d, 0xe5, 0x20, 0x30, 0xa0, 0x13, 0x20, 0xc0, 0x8d, 0xe5, 0x04, 0x30, 0x8d, 0x15, 0x44, 0x00, 0x00, 0x0a, 0x08, 0x00, 0x9d, 0xe5, 0x00, 0x40, 0xa0, 0xe3, 0x80, 0x32, 0x60, 0xe0, 0x03, 0x33, 0x63, 0xe0, 0x83, 0x01, 0x80, 0xe0, 0x00, 0x03, 0xa0, 0xe1, 0x43, 0xfe, 0xff, 0xeb, 0x0d, 0x00, 0xa0, 0xe1, 0x0c, 0x40, 0x8d, 0xe5, 0x7e, 0xfe, 0xff, 0xeb, 0x04, 0x30, 0xa0, 0xe1, 0x00, 0x20, 0x9d, 0xe5, 0x02, 0x10, 0x83, 0xe0, 0x02, 0x10, 0x83, 0xe7, 0x04, 0x30, 0x83, 0xe2, 0x02, 0x0c, 0x53, 0xe3, 0xf9, 0xff, 0xff, 0x1a, 0x00, 0x30, 0x9d, 0xe5, 0x02, 0x1c, 0x83, 0xe2, 0x01, 0x00, 0x00, 0xea, 0x03, 0x00, 0x51, 0xe1, 0x14, 0x00, 0x00, 0x0a, 0x00, 0x20, 0x93, 0xe5, 0x03, 0x00, 0x52, 0xe1, 0x04, 0x30, 0x83, 0xe2, 0xf9, 0xff, 0xff, 0x0a, 0x34, 0xd0, 0x8d, 0xe2, 0x30, 0x80, 0xbd, 0xe8, 0x20, 0x00, 0x12, 0xe3, 0x1b, 0x00, 0x00, 0x1a, 0x40, 0x00, 0x12, 0xe3, 0x1e, 0x00, 0x00, 0x0a, 0x98, 0x20, 0x9f, 0xe5, 0xd8, 0x10, 0x9f, 0xe5, 0x90, 0x12, 0x82, 0xe5, 0x2c, 0x20, 0x9d, 0xe5, 0x4b, 0xff, 0xff, 0xea, 0x0c, 0x20, 0xa0, 0xe3, 0x10, 0x30, 0xa0, 0xe3, 0x20, 0xc0, 0x8d, 0xe5, 0x24, 0x20, 0x8d, 0xe5, 0x04, 0x30, 0x8d, 0xe5, 0xd4, 0xff, 0xff, 0xea, 0x04, 0x30, 0x9d, 0xe5, 0x00, 0x20, 0xa0, 0xe3, 0x16, 0x33, 0x83, 0xe3, 0x5c, 0x30, 0x82, 0xe5, 0x34, 0xd0, 0x8d, 0xe2, 0x30, 0x80, 0xbd, 0xe8, 0x0d, 0x30, 0xa0, 0xe3, 0x09, 0x20, 0xa0, 0xe3, 0x0d, 0x00, 0xa0, 0xe1, 0xf0, 0x22, 0xcd, 0xe1, 0x52, 0xfe, 0xff, 0xeb, 0x88, 0x10, 0x9f, 0xe5, 0x88, 0x30, 0x9f, 0xe5, 0x09, 0xc0, 0xa0, 0xe3, 0xaa, 0xff, 0xff, 0xea, 0x30, 0x20, 0x9f, 0xe5, 0x7c, 0x10, 0x9f, 0xe5, 0x90, 0x12, 0x82, 0xe5, 0x2c, 0x20, 0x9d, 0xe5, 0x31, 0xff, 0xff, 0xea, 0x80, 0x00, 0x12, 0xe3, 0x18, 0x20, 0x9f, 0x15, 0x68, 0x10, 0x9f, 0x15, 0x90, 0x12, 0x82, 0x15, 0x2c, 0x20, 0x9d, 0x15, 0x2b, 0xff, 0xff, 0xea, 0x40, 0x30, 0xa0, 0xe3, 0x04, 0x30, 0x8d, 0xe5, 0xb7, 0xff, 0xff, 0xea, 0x00, 0x00, 0xc2, 0x01, 0x10, 0x27, 0x00, 0x00, 0xaa, 0x0a, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00, 0xab, 0xaa, 0xaa, 0xaa, 0x33, 0x33, 0x30, 0xd1, 0x00, 0x10, 0xc0, 0x01, 0xc2, 0xed, 0xce, 0xb7, 0x08, 0x00, 0xa7, 0x00, 0x00, 0x02, 0x00, 0x80, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x20, 0x02, 0x00, 0x80, 0x00, 0x00, 0xc0, 0x80, 0x00, 0x00, 0x40, 0x80, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x99, 0x99, 0x90, 0xc8, 0x00, 0x00, 0x60, 0x80, 0x00, 0x00, 0x20, 0x80, 0x66, 0x66, 0xe0, 0xcc, 0xcc, 0xcc, 0x40, 0xc4 }; fel_write(ctx, 0x00008800, (void *)&payload[0], sizeof(payload)); fel_exec(ctx, 0x00008800); return 1; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { static const uint8_t payload[] = { 0xff, 0xff, 0xff, 0xea, 0x40, 0x00, 0xa0, 0xe3, 0x00, 0xd0, 0x80, 0xe5, 0x04, 0xe0, 0x80, 0xe5, 0x00, 0xe0, 0x0f, 0xe1, 0x08, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x0c, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x10, 0xe0, 0x80, 0xe5, 0x26, 0x0b, 0xa0, 0xe3, 0x8b, 0x00, 0x00, 0xeb, 0x04, 0x00, 0xa0, 0xe3, 0x65, 0x10, 0xa0, 0xe3, 0x00, 0x10, 0xc0, 0xe5, 0x47, 0x10, 0xa0, 0xe3, 0x01, 0x10, 0xc0, 0xe5, 0x4f, 0x10, 0xa0, 0xe3, 0x02, 0x10, 0xc0, 0xe5, 0x4e, 0x10, 0xa0, 0xe3, 0x03, 0x10, 0xc0, 0xe5, 0x2e, 0x10, 0xa0, 0xe3, 0x04, 0x10, 0xc0, 0xe5, 0x46, 0x10, 0xa0, 0xe3, 0x05, 0x10, 0xc0, 0xe5, 0x45, 0x10, 0xa0, 0xe3, 0x06, 0x10, 0xc0, 0xe5, 0x4c, 0x10, 0xa0, 0xe3, 0x07, 0x10, 0xc0, 0xe5, 0x40, 0x00, 0xa0, 0xe3, 0x00, 0xd0, 0x90, 0xe5, 0x04, 0xe0, 0x90, 0xe5, 0x10, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x0c, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x08, 0x10, 0x90, 0xe5, 0x01, 0xf0, 0x29, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0xf0, 0x40, 0x2d, 0xe9, 0x00, 0x50, 0x51, 0xe2, 0xf0, 0x80, 0xbd, 0x08, 0xd4, 0x10, 0x9f, 0xe5, 0xd4, 0x60, 0x9f, 0xe5, 0xd4, 0x40, 0x9f, 0xe5, 0x00, 0x70, 0xe0, 0xe3, 0x40, 0x00, 0x55, 0xe3, 0x05, 0x20, 0xa0, 0x31, 0x40, 0x20, 0xa0, 0x23, 0x00, 0x30, 0xa0, 0xe3, 0x07, 0xc0, 0xa0, 0xe1, 0x30, 0x20, 0x81, 0xe5, 0x34, 0x20, 0x81, 0xe5, 0x38, 0x20, 0x81, 0xe5, 0x01, 0x30, 0x83, 0xe2, 0x03, 0x00, 0x52, 0xe1, 0x00, 0xc0, 0xc6, 0xe5, 0xfb, 0xff, 0xff, 0xca, 0x08, 0x30, 0x91, 0xe5, 0x02, 0x31, 0x83, 0xe3, 0x08, 0x30, 0x81, 0xe5, 0x08, 0x30, 0x91, 0xe5, 0x00, 0x00, 0x53, 0xe3, 0xfc, 0xff, 0xff, 0xba, 0x1c, 0x30, 0x91, 0xe5, 0xff, 0x30, 0x03, 0xe2, 0x03, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x8a, 0x00, 0x30, 0xa0, 0xe3, 0x00, 0xe0, 0xd4, 0xe5, 0x00, 0x00, 0x50, 0xe3, 0x00, 0xc0, 0xa0, 0xe1, 0xff, 0xe0, 0x0e, 0xe2, 0x07, 0x00, 0x00, 0x0a, 0x01, 0x30, 0x83, 0xe2, 0x03, 0x00, 0x52, 0xe1, 0x01, 0xe0, 0xcc, 0xe4, 0x0c, 0x00, 0xa0, 0xe1, 0xf5, 0xff, 0xff, 0xca, 0x02, 0x50, 0x55, 0xe0, 0xdc, 0xff, 0xff, 0x1a, 0xf0, 0x80, 0xbd, 0xe8, 0x01, 0xc0, 0x83, 0xe2, 0x02, 0x00, 0x5c, 0xe1, 0x02, 0x30, 0x83, 0xe2, 0xf8, 0xff, 0xff, 0xaa, 0x03, 0x00, 0x52, 0xe1, 0x00, 0xc0, 0xd4, 0xe5, 0xf5, 0xff, 0xff, 0xda, 0x00, 0xc0, 0xd4, 0xe5, 0x01, 0xc0, 0x83, 0xe2, 0x02, 0x00, 0x5c, 0xe1, 0x02, 0x30, 0x83, 0xe2, 0xf7, 0xff, 0xff, 0xba, 0x02, 0x50, 0x55, 0xe0, 0xcd, 0xff, 0xff, 0x1a, 0xf0, 0x80, 0xbd, 0xe8, 0x00, 0x50, 0xc0, 0x01, 0x00, 0x52, 0xc0, 0x01, 0x00, 0x53, 0xc0, 0x01, 0xf0, 0x40, 0x2d, 0xe9, 0x00, 0x60, 0x51, 0xe2, 0xf0, 0x80, 0xbd, 0x08, 0xb0, 0x10, 0x9f, 0xe5, 0xb0, 0x50, 0x9f, 0xe5, 0xb0, 0x40, 0x9f, 0xe5, 0x00, 0x70, 0xe0, 0xe3, 0x40, 0x00, 0x56, 0xe3, 0x06, 0x20, 0xa0, 0x31, 0x40, 0x20, 0xa0, 0x23, 0x00, 0x00, 0x50, 0xe3, 0x30, 0x20, 0x81, 0xe5, 0x34, 0x20, 0x81, 0xe5, 0x38, 0x20, 0x81, 0xe5, 0x1a, 0x00, 0x00, 0x0a, 0x00, 0xc0, 0xa0, 0xe1, 0x00, 0x30, 0xa0, 0xe3, 0x01, 0xe0, 0xdc, 0xe4, 0x01, 0x30, 0x83, 0xe2, 0x03, 0x00, 0x52, 0xe1, 0x00, 0xe0, 0xc5, 0xe5, 0xfa, 0xff, 0xff, 0xca, 0x08, 0x30, 0x91, 0xe5, 0x02, 0x31, 0x83, 0xe3, 0x08, 0x30, 0x81, 0xe5, 0x08, 0x30, 0x91, 0xe5, 0x00, 0x00, 0x53, 0xe3, 0xfc, 0xff, 0xff, 0xba, 0x1c, 0x30, 0x91, 0xe5, 0xff, 0x30, 0x03, 0xe2, 0x03, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x8a, 0x00, 0x30, 0xa0, 0xe3, 0x01, 0x30, 0x83, 0xe2, 0x03, 0x00, 0x52, 0xe1, 0x00, 0xc0, 0xd4, 0xe5, 0xfb, 0xff, 0xff, 0xca, 0x00, 0x00, 0x50, 0xe3, 0x02, 0x00, 0x80, 0x10, 0x02, 0x60, 0x56, 0xe0, 0xdd, 0xff, 0xff, 0x1a, 0xf0, 0x80, 0xbd, 0xe8, 0x00, 0x30, 0xa0, 0xe1, 0x07, 0xc0, 0xa0, 0xe1, 0x01, 0x30, 0x83, 0xe2, 0x03, 0x00, 0x52, 0xe1, 0x00, 0xc0, 0xc5, 0xe5, 0xfb, 0xff, 0xff, 0xca, 0xe4, 0xff, 0xff, 0xea, 0x00, 0x50, 0xc0, 0x01, 0x00, 0x52, 0xc0, 0x01, 0x00, 0x53, 0xc0, 0x01, 0xf0, 0x43, 0x2d, 0xe9, 0x50, 0x82, 0x9f, 0xe5, 0x50, 0x52, 0x9f, 0xe5, 0x50, 0x72, 0x9f, 0xe5, 0x14, 0xd0, 0x4d, 0xe2, 0x00, 0x60, 0xa0, 0xe1, 0x06, 0x40, 0xa0, 0xe1, 0x01, 0x30, 0xd4, 0xe4, 0x01, 0x00, 0x53, 0xe3, 0x1e, 0x00, 0x00, 0x0a, 0x02, 0x00, 0x53, 0xe3, 0x45, 0x00, 0x00, 0x0a, 0x03, 0x00, 0x53, 0xe3, 0x48, 0x00, 0x00, 0x0a, 0x04, 0x00, 0x53, 0xe3, 0x4c, 0x00, 0x00, 0x0a, 0x05, 0x00, 0x53, 0xe3, 0x51, 0x00, 0x00, 0x0a, 0x06, 0x00, 0x53, 0xe3, 0x60, 0x00, 0x00, 0x0a, 0x07, 0x00, 0x53, 0xe3, 0x6f, 0x00, 0x00, 0x0a, 0x08, 0x00, 0x53, 0xe3, 0x7c, 0x00, 0x00, 0x1a, 0x0d, 0x90, 0xa0, 0xe1, 0x08, 0x60, 0x8d, 0xe2, 0xb0, 0x80, 0xcd, 0xe1, 0x02, 0x10, 0xa0, 0xe3, 0x09, 0x00, 0xa0, 0xe1, 0xad, 0xff, 0xff, 0xeb, 0x01, 0x10, 0xa0, 0xe3, 0x06, 0x00, 0xa0, 0xe1, 0x6d, 0xff, 0xff, 0xeb, 0x08, 0x30, 0xdd, 0xe5, 0x01, 0x00, 0x13, 0xe3, 0xf6, 0xff, 0xff, 0x1a, 0x04, 0x60, 0xa0, 0xe1, 0x06, 0x40, 0xa0, 0xe1, 0x01, 0x30, 0xd4, 0xe4, 0x01, 0x00, 0x53, 0xe3, 0xe0, 0xff, 0xff, 0x1a, 0x48, 0x38, 0x97, 0xe5, 0xb8, 0x21, 0x9f, 0xe5, 0x0f, 0x30, 0xc3, 0xe3, 0x02, 0x30, 0x83, 0xe3, 0x48, 0x38, 0x87, 0xe5, 0x48, 0x38, 0x97, 0xe5, 0xf0, 0x30, 0xc3, 0xe3, 0x20, 0x30, 0x83, 0xe3, 0x48, 0x38, 0x87, 0xe5, 0x48, 0x38, 0x97, 0xe5, 0x0f, 0x3c, 0xc3, 0xe3, 0x02, 0x3c, 0x83, 0xe3, 0x48, 0x38, 0x87, 0xe5, 0x48, 0x38, 0x97, 0xe5, 0x0f, 0x3a, 0xc3, 0xe3, 0x02, 0x3a, 0x83, 0xe3, 0x48, 0x38, 0x87, 0xe5, 0xc0, 0x32, 0x97, 0xe5, 0x01, 0x36, 0x83, 0xe3, 0xc0, 0x32, 0x87, 0xe5, 0x60, 0x30, 0x97, 0xe5, 0x01, 0x36, 0x83, 0xe3, 0x60, 0x30, 0x87, 0xe5, 0x24, 0x20, 0x85, 0xe5, 0x04, 0x30, 0x95, 0xe5, 0x02, 0x31, 0x83, 0xe3, 0x83, 0x30, 0x83, 0xe3, 0x04, 0x30, 0x85, 0xe5, 0x04, 0x30, 0x95, 0xe5, 0x00, 0x00, 0x53, 0xe3, 0xfc, 0xff, 0xff, 0xba, 0x08, 0x30, 0x95, 0xe5, 0x04, 0x60, 0xa0, 0xe1, 0x03, 0x30, 0xc3, 0xe3, 0x44, 0x30, 0x83, 0xe3, 0x08, 0x30, 0x85, 0xe5, 0x18, 0x30, 0x95, 0xe5, 0x02, 0x31, 0x83, 0xe3, 0x02, 0x39, 0x83, 0xe3, 0x18, 0x30, 0x85, 0xe5, 0xb3, 0xff, 0xff, 0xea, 0x08, 0x30, 0x95, 0xe5, 0x04, 0x60, 0xa0, 0xe1, 0xb0, 0x30, 0xc3, 0xe3, 0x08, 0x30, 0x85, 0xe5, 0xae, 0xff, 0xff, 0xea, 0x08, 0x30, 0x95, 0xe5, 0x04, 0x60, 0xa0, 0xe1, 0xb0, 0x30, 0xc3, 0xe3, 0x80, 0x30, 0x83, 0xe3, 0x08, 0x30, 0x85, 0xe5, 0xa8, 0xff, 0xff, 0xea, 0x01, 0x90, 0xd6, 0xe5, 0x02, 0x00, 0x86, 0xe2, 0x09, 0x10, 0xa0, 0xe1, 0x01, 0x60, 0x89, 0xe2, 0x69, 0xff, 0xff, 0xeb, 0x06, 0x60, 0x84, 0xe0, 0xa1, 0xff, 0xff, 0xea, 0x05, 0x20, 0xd6, 0xe5, 0x06, 0x90, 0xd6, 0xe5, 0x01, 0x30, 0xd6, 0xe5, 0x02, 0x40, 0xd6, 0xe5, 0x07, 0xe0, 0xd6, 0xe5, 0x03, 0xc0, 0xd6, 0xe5, 0x08, 0x10, 0xd6, 0xe5, 0x04, 0x00, 0xd6, 0xe5, 0x09, 0x24, 0x82, 0xe1, 0x04, 0x34, 0x83, 0xe1, 0x0e, 0x28, 0x82, 0xe1, 0x0c, 0x38, 0x83, 0xe1, 0x01, 0x1c, 0x82, 0xe1, 0x00, 0x0c, 0x83, 0xe1, 0x58, 0xff, 0xff, 0xeb, 0x09, 0x60, 0x86, 0xe2, 0x90, 0xff, 0xff, 0xea, 0x05, 0x20, 0xd6, 0xe5, 0x06, 0x90, 0xd6, 0xe5, 0x01, 0x30, 0xd6, 0xe5, 0x02, 0x40, 0xd6, 0xe5, 0x07, 0xe0, 0xd6, 0xe5, 0x03, 0xc0, 0xd6, 0xe5, 0x08, 0x10, 0xd6, 0xe5, 0x04, 0x00, 0xd6, 0xe5, 0x09, 0x24, 0x82, 0xe1, 0x04, 0x34, 0x83, 0xe1, 0x0e, 0x28, 0x82, 0xe1, 0x0c, 0x38, 0x83, 0xe1, 0x01, 0x1c, 0x82, 0xe1, 0x00, 0x0c, 0x83, 0xe1, 0x0a, 0xff, 0xff, 0xeb, 0x09, 0x60, 0x86, 0xe2, 0x7f, 0xff, 0xff, 0xea, 0x05, 0x30, 0xa0, 0xe3, 0x0d, 0x90, 0xa0, 0xe1, 0x08, 0x60, 0x8d, 0xe2, 0x00, 0x30, 0xcd, 0xe5, 0x01, 0x10, 0xa0, 0xe3, 0x09, 0x00, 0xa0, 0xe1, 0x3e, 0xff, 0xff, 0xeb, 0x01, 0x10, 0xa0, 0xe3, 0x06, 0x00, 0xa0, 0xe1, 0xfe, 0xfe, 0xff, 0xeb, 0x08, 0x30, 0xdd, 0xe5, 0x01, 0x00, 0x13, 0xe3, 0xf6, 0xff, 0xff, 0x1a, 0x04, 0x60, 0xa0, 0xe1, 0x8f, 0xff, 0xff, 0xea, 0x14, 0xd0, 0x8d, 0xe2, 0xf0, 0x83, 0xbd, 0xe8, 0x0f, 0xc0, 0xff, 0xff, 0x00, 0x50, 0xc0, 0x01, 0x00, 0x00, 0xc2, 0x01, 0x01, 0x10, 0x00, 0x00 }; fel_write(ctx, 0x00008800, (void *)&payload[0], sizeof(payload)); if(swapbuf) *swapbuf = 0x0000a800; if(swaplen) *swaplen = 3584; if(cmdlen) *cmdlen = 4096; return 1; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { fel_write(ctx, 0x00009800, (void *)cbuf, clen); fel_exec(ctx, 0x00008800); return 1; } static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { return 0; } struct chip_t f1c100s_f1c200s_f1c500s = { .name = "F1C100S/F1C200S/F1C500S", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/chips/h135.c000066400000000000000000000016511512120643700144140ustar00rootroot00000000000000#include static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00192100) return 1; return 0; } static int chip_reset(struct xfel_ctx_t * ctx) { return 0; } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { return 0; } static int chip_jtag(struct xfel_ctx_t * ctx) { return 0; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { return 0; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { return 0; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { return 0; } static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { return 0; } struct chip_t h135 = { .name = "H135", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/chips/h2_h3.c000066400000000000000000002376741512120643700146570ustar00rootroot00000000000000#include static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00168000) return 1; return 0; } static int chip_reset(struct xfel_ctx_t * ctx) { uint32_t val; val = R32(0x01c20ca0 + 0x18); val &= ~(0xf << 4); val |= (1 << 4) | (0x1 << 0); W32(0x01c20ca0 + 0x18, val); W32(0x01c20ca0 + 0x10, (0xa57 << 1) | (1 << 0)); return 1; } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { static const uint32_t payload[] = { cpu_to_le32(0xe59f0040), /* 0: ldr r0, [pc, #64] */ cpu_to_le32(0xe3a01000), /* 4: mov r1, #0 */ cpu_to_le32(0xe28f303c), /* 8: add r3, pc, #60 */ /* : */ cpu_to_le32(0xe1a02801), /* c: lsl r2, r1, #16 */ cpu_to_le32(0xe3822b2b), /* 10: orr r2, r2, #44032 */ cpu_to_le32(0xe3822002), /* 14: orr r2, r2, #2 */ cpu_to_le32(0xe5802040), /* 18: str r2, [r0, #64] */ /* : */ cpu_to_le32(0xe5902040), /* 1c: ldr r2, [r0, #64] */ cpu_to_le32(0xe3120002), /* 20: tst r2, #2 */ cpu_to_le32(0x1afffffc), /* 24: bne 1c */ cpu_to_le32(0xe5902060), /* 28: ldr r2, [r0, #96] */ cpu_to_le32(0xe7832001), /* 2c: str r2, [r3, r1] */ cpu_to_le32(0xe2811004), /* 30: add r1, r1, #4 */ cpu_to_le32(0xe3510010), /* 34: cmp r1, #16 */ cpu_to_le32(0x3afffff3), /* 38: bcc c */ cpu_to_le32(0xe3a02000), /* 3c: mov r2, #0 */ cpu_to_le32(0xe5802040), /* 40: str r2, [r0, #64] */ cpu_to_le32(0xe12fff1e), /* 44: bx lr */ cpu_to_le32(0x01c14000), /* SID base addr */ /* SID will put here */ }; uint32_t id[4]; fel_write(ctx, ctx->version.scratchpad, (void *)payload, sizeof(payload)); fel_exec(ctx, ctx->version.scratchpad); fel_read(ctx, ctx->version.scratchpad + sizeof(payload), (void *)id, sizeof(id)); sprintf(sid, "%08x%08x%08x%08x", le32_to_cpu(id[0]), le32_to_cpu(id[1]), le32_to_cpu(id[2]), le32_to_cpu(id[3])); return 1; } static int chip_jtag(struct xfel_ctx_t * ctx) { static const uint8_t payload[] = { 0xff, 0xff, 0xff, 0xea, 0x40, 0x00, 0xa0, 0xe3, 0x00, 0xd0, 0x80, 0xe5, 0x04, 0xe0, 0x80, 0xe5, 0x00, 0xe0, 0x0f, 0xe1, 0x08, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x0c, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x1c, 0xee, 0x10, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x14, 0xe0, 0x80, 0xe5, 0x0b, 0x00, 0x00, 0xeb, 0x40, 0x00, 0xa0, 0xe3, 0x00, 0xd0, 0x90, 0xe5, 0x04, 0xe0, 0x90, 0xe5, 0x14, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x10, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x0c, 0xee, 0x0c, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x08, 0x10, 0x90, 0xe5, 0x01, 0xf0, 0x29, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0x0b, 0x3a, 0xa0, 0xe3, 0x00, 0x33, 0x40, 0xe3, 0xb4, 0x20, 0x93, 0xe5, 0x0f, 0x20, 0xc2, 0xe3, 0x03, 0x20, 0x82, 0xe3, 0xb4, 0x20, 0x83, 0xe5, 0xb4, 0x20, 0x93, 0xe5, 0xf0, 0x20, 0xc2, 0xe3, 0x30, 0x20, 0x82, 0xe3, 0xb4, 0x20, 0x83, 0xe5, 0xb4, 0x20, 0x93, 0xe5, 0x0f, 0x2a, 0xc2, 0xe3, 0x03, 0x2a, 0x82, 0xe3, 0xb4, 0x20, 0x83, 0xe5, 0xb4, 0x20, 0x93, 0xe5, 0x0f, 0x26, 0xc2, 0xe3, 0x03, 0x26, 0x82, 0xe3, 0xb4, 0x20, 0x83, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, 0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x4e, 0x55, 0x00, 0x74, 0xfe, 0x0e, 0x9d, 0x0a, 0x99, 0x38, 0x24, 0x00, 0xc2, 0xf9, 0x2f, 0x05, 0x51, 0xb6, 0x3c, 0x50, 0x2a, 0x62, 0x05, 0x2f, 0x6c, 0x69, 0x62, 0x2f, 0x6c, 0x64, 0x2d, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x2d, 0x61, 0x72, 0x6d, 0x68, 0x66, 0x2e, 0x73, 0x6f, 0x2e, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0xfe, 0xff, 0x6f, 0x04, 0x81, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0xf0, 0x80, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xfb, 0xff, 0xff, 0x6f, 0x01, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; fel_write(ctx, 0x00008000, (void *)&payload[0], sizeof(payload)); fel_exec(ctx, 0x00008000); return 1; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { static const uint8_t h2_payload[] = { 0xff, 0xff, 0xff, 0xea, 0x40, 0x00, 0xa0, 0xe3, 0x00, 0xd0, 0x80, 0xe5, 0x04, 0xe0, 0x80, 0xe5, 0x00, 0xe0, 0x0f, 0xe1, 0x08, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x0c, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x1c, 0xee, 0x10, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x14, 0xe0, 0x80, 0xe5, 0x5c, 0x01, 0x00, 0xeb, 0x88, 0x01, 0x00, 0xeb, 0xce, 0x01, 0x00, 0xeb, 0x40, 0x00, 0xa0, 0xe3, 0x00, 0xd0, 0x90, 0xe5, 0x04, 0xe0, 0x90, 0xe5, 0x14, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x10, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x0c, 0xee, 0x0c, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x08, 0x10, 0x90, 0xe5, 0x01, 0xf0, 0x29, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0xe1, 0x91, 0x00, 0x00, 0x3a, 0x00, 0x00, 0xa0, 0x03, 0x0e, 0xf0, 0xa0, 0x01, 0x01, 0x40, 0x2d, 0xe9, 0x04, 0x20, 0x52, 0xe2, 0x20, 0x00, 0x00, 0xba, 0x03, 0xc0, 0x10, 0xe2, 0x28, 0x00, 0x00, 0x1a, 0x03, 0xc0, 0x11, 0xe2, 0x32, 0x00, 0x00, 0x1a, 0x08, 0x20, 0x52, 0xe2, 0x12, 0x00, 0x00, 0xba, 0x14, 0x20, 0x52, 0xe2, 0x0b, 0x00, 0x00, 0xba, 0x10, 0x00, 0x2d, 0xe9, 0x18, 0x50, 0xb1, 0xe8, 0x18, 0x50, 0xa0, 0xe8, 0x18, 0x50, 0xb1, 0xe8, 0x18, 0x50, 0xa0, 0xe8, 0x20, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x10, 0x00, 0x72, 0xe3, 0x18, 0x50, 0xb1, 0xa8, 0x18, 0x50, 0xa0, 0xa8, 0x10, 0x20, 0x42, 0xa2, 0x10, 0x00, 0xbd, 0xe8, 0x14, 0x20, 0x92, 0xe2, 0x08, 0x50, 0xb1, 0xa8, 0x08, 0x50, 0xa0, 0xa8, 0x0c, 0x20, 0x52, 0xa2, 0xfb, 0xff, 0xff, 0xaa, 0x08, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x04, 0x20, 0x52, 0xe2, 0x04, 0x30, 0x91, 0xb4, 0x04, 0x30, 0x80, 0xb4, 0x08, 0x10, 0xb1, 0xa8, 0x08, 0x10, 0xa0, 0xa8, 0x04, 0x20, 0x42, 0xa2, 0x04, 0x20, 0x92, 0xe2, 0x01, 0x80, 0xbd, 0x08, 0x02, 0x00, 0x52, 0xe3, 0x01, 0x30, 0xd1, 0xe4, 0x01, 0x30, 0xc0, 0xe4, 0x01, 0x30, 0xd1, 0xa4, 0x01, 0x30, 0xc0, 0xa4, 0x01, 0x30, 0xd1, 0xc4, 0x01, 0x30, 0xc0, 0xc4, 0x01, 0x80, 0xbd, 0xe8, 0x04, 0xc0, 0x6c, 0xe2, 0x02, 0x00, 0x5c, 0xe3, 0x01, 0x30, 0xd1, 0xe4, 0x01, 0x30, 0xc0, 0xe4, 0x01, 0x30, 0xd1, 0xa4, 0x01, 0x30, 0xc0, 0xa4, 0x01, 0x30, 0xd1, 0xc4, 0x01, 0x30, 0xc0, 0xc4, 0x0c, 0x20, 0x52, 0xe0, 0xeb, 0xff, 0xff, 0xba, 0x03, 0xc0, 0x11, 0xe2, 0xcc, 0xff, 0xff, 0x0a, 0x03, 0x10, 0xc1, 0xe3, 0x04, 0xe0, 0x91, 0xe4, 0x02, 0x00, 0x5c, 0xe3, 0x36, 0x00, 0x00, 0xca, 0x1a, 0x00, 0x00, 0x0a, 0x0c, 0x00, 0x52, 0xe3, 0x10, 0x00, 0x00, 0xba, 0x0c, 0x20, 0x42, 0xe2, 0x30, 0x00, 0x2d, 0xe9, 0x2e, 0x34, 0xa0, 0xe1, 0x30, 0x50, 0xb1, 0xe8, 0x04, 0x3c, 0x83, 0xe1, 0x24, 0x44, 0xa0, 0xe1, 0x05, 0x4c, 0x84, 0xe1, 0x25, 0x54, 0xa0, 0xe1, 0x0c, 0x5c, 0x85, 0xe1, 0x2c, 0xc4, 0xa0, 0xe1, 0x0e, 0xcc, 0x8c, 0xe1, 0x38, 0x10, 0xa0, 0xe8, 0x10, 0x20, 0x52, 0xe2, 0xf3, 0xff, 0xff, 0xaa, 0x30, 0x00, 0xbd, 0xe8, 0x0c, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x2e, 0xc4, 0xa0, 0xe1, 0x04, 0xe0, 0x91, 0xe4, 0x0e, 0xcc, 0x8c, 0xe1, 0x04, 0xc0, 0x80, 0xe4, 0x04, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x03, 0x10, 0x41, 0xe2, 0xc9, 0xff, 0xff, 0xea, 0x0c, 0x00, 0x52, 0xe3, 0x10, 0x00, 0x00, 0xba, 0x0c, 0x20, 0x42, 0xe2, 0x30, 0x00, 0x2d, 0xe9, 0x2e, 0x38, 0xa0, 0xe1, 0x30, 0x50, 0xb1, 0xe8, 0x04, 0x38, 0x83, 0xe1, 0x24, 0x48, 0xa0, 0xe1, 0x05, 0x48, 0x84, 0xe1, 0x25, 0x58, 0xa0, 0xe1, 0x0c, 0x58, 0x85, 0xe1, 0x2c, 0xc8, 0xa0, 0xe1, 0x0e, 0xc8, 0x8c, 0xe1, 0x38, 0x10, 0xa0, 0xe8, 0x10, 0x20, 0x52, 0xe2, 0xf3, 0xff, 0xff, 0xaa, 0x30, 0x00, 0xbd, 0xe8, 0x0c, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x2e, 0xc8, 0xa0, 0xe1, 0x04, 0xe0, 0x91, 0xe4, 0x0e, 0xc8, 0x8c, 0xe1, 0x04, 0xc0, 0x80, 0xe4, 0x04, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x02, 0x10, 0x41, 0xe2, 0xae, 0xff, 0xff, 0xea, 0x0c, 0x00, 0x52, 0xe3, 0x10, 0x00, 0x00, 0xba, 0x0c, 0x20, 0x42, 0xe2, 0x30, 0x00, 0x2d, 0xe9, 0x2e, 0x3c, 0xa0, 0xe1, 0x30, 0x50, 0xb1, 0xe8, 0x04, 0x34, 0x83, 0xe1, 0x24, 0x4c, 0xa0, 0xe1, 0x05, 0x44, 0x84, 0xe1, 0x25, 0x5c, 0xa0, 0xe1, 0x0c, 0x54, 0x85, 0xe1, 0x2c, 0xcc, 0xa0, 0xe1, 0x0e, 0xc4, 0x8c, 0xe1, 0x38, 0x10, 0xa0, 0xe8, 0x10, 0x20, 0x52, 0xe2, 0xf3, 0xff, 0xff, 0xaa, 0x30, 0x00, 0xbd, 0xe8, 0x0c, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x2e, 0xcc, 0xa0, 0xe1, 0x04, 0xe0, 0x91, 0xe4, 0x0e, 0xc4, 0x8c, 0xe1, 0x04, 0xc0, 0x80, 0xe4, 0x04, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x01, 0x10, 0x41, 0xe2, 0x93, 0xff, 0xff, 0xea, 0x02, 0x10, 0x81, 0xe0, 0x02, 0x00, 0x80, 0xe0, 0x04, 0x20, 0x52, 0xe2, 0x1f, 0x00, 0x00, 0xba, 0x03, 0xc0, 0x10, 0xe2, 0x27, 0x00, 0x00, 0x1a, 0x03, 0xc0, 0x11, 0xe2, 0x30, 0x00, 0x00, 0x1a, 0x08, 0x20, 0x52, 0xe2, 0x11, 0x00, 0x00, 0xba, 0x10, 0x40, 0x2d, 0xe9, 0x14, 0x20, 0x52, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x18, 0x50, 0x31, 0xe9, 0x18, 0x50, 0x20, 0xe9, 0x18, 0x50, 0x31, 0xe9, 0x18, 0x50, 0x20, 0xe9, 0x20, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x10, 0x00, 0x72, 0xe3, 0x18, 0x50, 0x31, 0xa9, 0x18, 0x50, 0x20, 0xa9, 0x10, 0x20, 0x42, 0xa2, 0x14, 0x20, 0x92, 0xe2, 0x08, 0x50, 0x31, 0xa9, 0x08, 0x50, 0x20, 0xa9, 0x0c, 0x20, 0x42, 0xa2, 0x10, 0x40, 0xbd, 0xe8, 0x08, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x04, 0x20, 0x52, 0xe2, 0x04, 0x30, 0x31, 0xb5, 0x04, 0x30, 0x20, 0xb5, 0x08, 0x10, 0x31, 0xa9, 0x08, 0x10, 0x20, 0xa9, 0x04, 0x20, 0x42, 0xa2, 0x04, 0x20, 0x92, 0xe2, 0x0e, 0xf0, 0xa0, 0x01, 0x02, 0x00, 0x52, 0xe3, 0x01, 0x30, 0x71, 0xe5, 0x01, 0x30, 0x60, 0xe5, 0x01, 0x30, 0x71, 0xa5, 0x01, 0x30, 0x60, 0xa5, 0x01, 0x30, 0x71, 0xc5, 0x01, 0x30, 0x60, 0xc5, 0x0e, 0xf0, 0xa0, 0xe1, 0x02, 0x00, 0x5c, 0xe3, 0x01, 0x30, 0x71, 0xe5, 0x01, 0x30, 0x60, 0xe5, 0x01, 0x30, 0x71, 0xa5, 0x01, 0x30, 0x60, 0xa5, 0x01, 0x30, 0x71, 0xc5, 0x01, 0x30, 0x60, 0xc5, 0x0c, 0x20, 0x52, 0xe0, 0xec, 0xff, 0xff, 0xba, 0x03, 0xc0, 0x11, 0xe2, 0xce, 0xff, 0xff, 0x0a, 0x03, 0x10, 0xc1, 0xe3, 0x00, 0x30, 0x91, 0xe5, 0x02, 0x00, 0x5c, 0xe3, 0x36, 0x00, 0x00, 0xba, 0x1a, 0x00, 0x00, 0x0a, 0x0c, 0x00, 0x52, 0xe3, 0x10, 0x00, 0x00, 0xba, 0x0c, 0x20, 0x42, 0xe2, 0x30, 0x40, 0x2d, 0xe9, 0x03, 0xe4, 0xa0, 0xe1, 0x38, 0x10, 0x31, 0xe9, 0x2c, 0xec, 0x8e, 0xe1, 0x0c, 0xc4, 0xa0, 0xe1, 0x25, 0xcc, 0x8c, 0xe1, 0x05, 0x54, 0xa0, 0xe1, 0x24, 0x5c, 0x85, 0xe1, 0x04, 0x44, 0xa0, 0xe1, 0x23, 0x4c, 0x84, 0xe1, 0x30, 0x50, 0x20, 0xe9, 0x10, 0x20, 0x52, 0xe2, 0xf3, 0xff, 0xff, 0xaa, 0x30, 0x40, 0xbd, 0xe8, 0x0c, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x03, 0xc4, 0xa0, 0xe1, 0x04, 0x30, 0x31, 0xe5, 0x23, 0xcc, 0x8c, 0xe1, 0x04, 0xc0, 0x20, 0xe5, 0x04, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x03, 0x10, 0x81, 0xe2, 0xca, 0xff, 0xff, 0xea, 0x0c, 0x00, 0x52, 0xe3, 0x10, 0x00, 0x00, 0xba, 0x0c, 0x20, 0x42, 0xe2, 0x30, 0x40, 0x2d, 0xe9, 0x03, 0xe8, 0xa0, 0xe1, 0x38, 0x10, 0x31, 0xe9, 0x2c, 0xe8, 0x8e, 0xe1, 0x0c, 0xc8, 0xa0, 0xe1, 0x25, 0xc8, 0x8c, 0xe1, 0x05, 0x58, 0xa0, 0xe1, 0x24, 0x58, 0x85, 0xe1, 0x04, 0x48, 0xa0, 0xe1, 0x23, 0x48, 0x84, 0xe1, 0x30, 0x50, 0x20, 0xe9, 0x10, 0x20, 0x52, 0xe2, 0xf3, 0xff, 0xff, 0xaa, 0x30, 0x40, 0xbd, 0xe8, 0x0c, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x03, 0xc8, 0xa0, 0xe1, 0x04, 0x30, 0x31, 0xe5, 0x23, 0xc8, 0x8c, 0xe1, 0x04, 0xc0, 0x20, 0xe5, 0x04, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x02, 0x10, 0x81, 0xe2, 0xaf, 0xff, 0xff, 0xea, 0x0c, 0x00, 0x52, 0xe3, 0x10, 0x00, 0x00, 0xba, 0x0c, 0x20, 0x42, 0xe2, 0x30, 0x40, 0x2d, 0xe9, 0x03, 0xec, 0xa0, 0xe1, 0x38, 0x10, 0x31, 0xe9, 0x2c, 0xe4, 0x8e, 0xe1, 0x0c, 0xcc, 0xa0, 0xe1, 0x25, 0xc4, 0x8c, 0xe1, 0x05, 0x5c, 0xa0, 0xe1, 0x24, 0x54, 0x85, 0xe1, 0x04, 0x4c, 0xa0, 0xe1, 0x23, 0x44, 0x84, 0xe1, 0x30, 0x50, 0x20, 0xe9, 0x10, 0x20, 0x52, 0xe2, 0xf3, 0xff, 0xff, 0xaa, 0x30, 0x40, 0xbd, 0xe8, 0x0c, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x03, 0xcc, 0xa0, 0xe1, 0x04, 0x30, 0x31, 0xe5, 0x23, 0xc4, 0x8c, 0xe1, 0x04, 0xc0, 0x20, 0xe5, 0x04, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x01, 0x10, 0x81, 0xe2, 0x94, 0xff, 0xff, 0xea, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x2d, 0xe9, 0xff, 0x10, 0x01, 0xe2, 0x04, 0x00, 0x52, 0xe3, 0x1c, 0x00, 0x00, 0xba, 0x03, 0x30, 0x10, 0xe2, 0x07, 0x00, 0x00, 0x0a, 0x04, 0x30, 0x63, 0xe2, 0x03, 0x20, 0x42, 0xe0, 0x02, 0x00, 0x53, 0xe3, 0x01, 0x10, 0xc0, 0xe4, 0x01, 0x10, 0xc0, 0xa4, 0x01, 0x10, 0xc0, 0xc4, 0x04, 0x00, 0x52, 0xe3, 0x12, 0x00, 0x00, 0xba, 0x01, 0x34, 0x81, 0xe1, 0x03, 0x38, 0x83, 0xe1, 0x20, 0x00, 0x52, 0xe3, 0x0a, 0x00, 0x00, 0xba, 0x70, 0x00, 0x2d, 0xe9, 0x03, 0x40, 0xa0, 0xe1, 0x03, 0x50, 0xa0, 0xe1, 0x03, 0x60, 0xa0, 0xe1, 0x78, 0x00, 0xa0, 0xe8, 0x10, 0x20, 0x42, 0xe2, 0x10, 0x00, 0x52, 0xe3, 0xfb, 0xff, 0xff, 0xca, 0x70, 0x00, 0xbd, 0xe8, 0x04, 0x00, 0x52, 0xe3, 0x03, 0x00, 0x00, 0xba, 0x04, 0x30, 0x80, 0xe4, 0x04, 0x20, 0x42, 0xe2, 0x04, 0x00, 0x52, 0xe3, 0xfb, 0xff, 0xff, 0xaa, 0x00, 0x00, 0x52, 0xe3, 0x01, 0x00, 0xbd, 0x08, 0x0e, 0xf0, 0xa0, 0x01, 0x02, 0x00, 0x52, 0xe3, 0x01, 0x10, 0xc0, 0xe4, 0x01, 0x10, 0xc0, 0xa4, 0x01, 0x10, 0xc0, 0xc4, 0x01, 0x00, 0xbd, 0xe8, 0x0e, 0xf0, 0xa0, 0xe1, 0x00, 0x20, 0xa0, 0xe3, 0x02, 0x39, 0xa0, 0xe3, 0xc2, 0x21, 0x40, 0xe3, 0x00, 0x00, 0xa0, 0xe3, 0x04, 0xe0, 0x2d, 0xe5, 0xf7, 0xe0, 0xa0, 0xe3, 0x00, 0x18, 0x92, 0xe5, 0x0d, 0xc0, 0xa0, 0xe3, 0xc2, 0x31, 0x40, 0xe3, 0x0f, 0x18, 0xc1, 0xe3, 0x02, 0x18, 0x81, 0xe3, 0x00, 0x18, 0x82, 0xe5, 0x00, 0x18, 0x92, 0xe5, 0x0f, 0x16, 0xc1, 0xe3, 0x02, 0x16, 0x81, 0xe3, 0x00, 0x18, 0x82, 0xe5, 0x6c, 0x10, 0x92, 0xe5, 0x01, 0x18, 0x81, 0xe3, 0x6c, 0x10, 0x82, 0xe5, 0xd8, 0x12, 0x92, 0xe5, 0x01, 0x18, 0x81, 0xe3, 0xd8, 0x12, 0x82, 0xe5, 0x04, 0x00, 0x83, 0xe5, 0x08, 0xe0, 0x83, 0xe5, 0x10, 0x00, 0x83, 0xe5, 0x0c, 0x20, 0x93, 0xe5, 0x80, 0x20, 0x82, 0xe3, 0x0c, 0x20, 0x83, 0xe5, 0x00, 0xc0, 0x83, 0xe5, 0x04, 0x00, 0x83, 0xe5, 0x0c, 0x20, 0x93, 0xe5, 0x80, 0x20, 0xc2, 0xe3, 0x0c, 0x20, 0x83, 0xe5, 0x0c, 0x20, 0x93, 0xe5, 0x1f, 0x20, 0xc2, 0xe3, 0x03, 0x20, 0x82, 0xe3, 0x0c, 0x20, 0x83, 0xe5, 0x04, 0xf0, 0x9d, 0xe4, 0x02, 0x29, 0xa0, 0xe3, 0xc2, 0x21, 0x40, 0xe3, 0x7c, 0x30, 0x92, 0xe5, 0x02, 0x00, 0x13, 0xe3, 0xfc, 0xff, 0xff, 0x0a, 0x00, 0x00, 0x82, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x30, 0xa0, 0xe3, 0x02, 0x01, 0x00, 0xe3, 0xc2, 0x31, 0x40, 0xe3, 0x21, 0x1b, 0x01, 0xe3, 0x01, 0x00, 0x40, 0xe3, 0xc8, 0x20, 0xa0, 0xe3, 0x00, 0x10, 0x48, 0xe3, 0x50, 0x00, 0x83, 0xe5, 0x00, 0x10, 0x83, 0xe5, 0x01, 0x20, 0x52, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x02, 0x01, 0x00, 0xe3, 0x11, 0x18, 0x01, 0xe3, 0x02, 0x00, 0x40, 0xe3, 0x03, 0x20, 0xa0, 0xe1, 0x04, 0x10, 0x49, 0xe3, 0x50, 0x00, 0x83, 0xe5, 0x28, 0x10, 0x83, 0xe5, 0x28, 0x30, 0x92, 0xe5, 0x01, 0x02, 0x13, 0xe3, 0xfc, 0xff, 0xff, 0x0a, 0x01, 0x30, 0xa0, 0xe3, 0xc6, 0x1d, 0xa0, 0xe3, 0x00, 0x31, 0x48, 0xe3, 0x54, 0x10, 0x82, 0xe5, 0x5c, 0x31, 0x82, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, 0x04, 0xe0, 0x2d, 0xe5, 0x04, 0x20, 0xa0, 0xe3, 0x05, 0x10, 0xd0, 0xe5, 0x03, 0x30, 0xd0, 0xe5, 0x43, 0x20, 0x40, 0xe3, 0x03, 0x00, 0x51, 0xe3, 0xb0, 0xe0, 0xd0, 0xe1, 0x02, 0xc0, 0xa0, 0x01, 0x02, 0x10, 0xd0, 0xe5, 0x43, 0xc8, 0xa0, 0x13, 0x00, 0x30, 0x53, 0xe2, 0x01, 0x30, 0xa0, 0x13, 0x00, 0x00, 0x5e, 0xe3, 0x01, 0x36, 0x83, 0xe1, 0x19, 0x00, 0x00, 0x0a, 0x0e, 0x18, 0xa0, 0xe1, 0xff, 0x04, 0x11, 0xe3, 0x0e, 0x1c, 0xa0, 0x01, 0x08, 0x20, 0xa0, 0x03, 0x10, 0x20, 0xa0, 0x13, 0x04, 0xe0, 0xa0, 0x03, 0x0c, 0xe0, 0xa0, 0x13, 0x0f, 0x02, 0x11, 0xe3, 0x01, 0x12, 0xa0, 0x01, 0x0e, 0x20, 0xa0, 0x01, 0x03, 0x01, 0x11, 0xe3, 0x01, 0x11, 0xa0, 0x01, 0x02, 0x20, 0x42, 0x02, 0x00, 0x00, 0x51, 0xe3, 0x04, 0x20, 0x42, 0xb2, 0x05, 0x20, 0x42, 0xa2, 0x02, 0x24, 0xa0, 0xe1, 0x04, 0x10, 0xd0, 0xe5, 0x02, 0x0a, 0xa0, 0xe3, 0xc6, 0x01, 0x40, 0xe3, 0x01, 0x10, 0x41, 0xe2, 0x01, 0x32, 0x83, 0xe1, 0x0c, 0x30, 0x83, 0xe1, 0x02, 0x30, 0x83, 0xe1, 0x00, 0x30, 0x80, 0xe5, 0x04, 0xf0, 0x9d, 0xe4, 0x3f, 0x2b, 0xa0, 0xe3, 0xff, 0x2f, 0x4f, 0xe3, 0xf3, 0xff, 0xff, 0xea, 0xf0, 0x4f, 0x2d, 0xe9, 0xc4, 0xd0, 0x4d, 0xe2, 0x0c, 0x5b, 0x9f, 0xe5, 0x40, 0x40, 0x8d, 0xe2, 0x04, 0x00, 0xa0, 0xe1, 0x80, 0x20, 0xa0, 0xe3, 0x05, 0x50, 0x8f, 0xe0, 0x00, 0x10, 0xa0, 0xe3, 0x0c, 0x70, 0x85, 0xe2, 0x57, 0xff, 0xff, 0xeb, 0x01, 0x3a, 0xa0, 0xe3, 0x05, 0x10, 0xa0, 0xe1, 0xb0, 0x34, 0xcd, 0xe1, 0x01, 0x30, 0xa0, 0xe3, 0x42, 0x30, 0xcd, 0xe5, 0x0b, 0x20, 0xa0, 0xe3, 0x0f, 0x33, 0x00, 0xe3, 0x46, 0x00, 0x8d, 0xe2, 0xb4, 0x34, 0xcd, 0xe1, 0x29, 0xfe, 0xff, 0xeb, 0x07, 0x10, 0xa0, 0xe1, 0x0b, 0x20, 0xa0, 0xe3, 0x51, 0x00, 0x8d, 0xe2, 0x18, 0x60, 0x85, 0xe2, 0x24, 0xfe, 0xff, 0xeb, 0x07, 0x00, 0x95, 0xe8, 0x5c, 0x30, 0x8d, 0xe2, 0x22, 0xc8, 0xa0, 0xe1, 0x03, 0x00, 0xa3, 0xe8, 0xb2, 0x20, 0xc3, 0xe0, 0x07, 0x10, 0xa0, 0xe1, 0x00, 0xc0, 0xc3, 0xe5, 0x67, 0x00, 0x8d, 0xe2, 0x0b, 0x20, 0xa0, 0xe3, 0x1a, 0xfe, 0xff, 0xeb, 0x06, 0x10, 0xa0, 0xe1, 0x0b, 0x20, 0xa0, 0xe3, 0x72, 0x00, 0x8d, 0xe2, 0x16, 0xfe, 0xff, 0xeb, 0x06, 0x10, 0xa0, 0xe1, 0x0b, 0x20, 0xa0, 0xe3, 0x7d, 0x00, 0x8d, 0xe2, 0x12, 0xfe, 0xff, 0xeb, 0x07, 0x00, 0x96, 0xe8, 0x88, 0x30, 0x8d, 0xe2, 0x22, 0xc8, 0xa0, 0xe1, 0x03, 0x00, 0xa3, 0xe8, 0xb2, 0x20, 0xc3, 0xe0, 0x24, 0x10, 0x85, 0xe2, 0x00, 0xc0, 0xc3, 0xe5, 0x0b, 0x20, 0xa0, 0xe3, 0x93, 0x00, 0x8d, 0xe2, 0x08, 0xfe, 0xff, 0xeb, 0x00, 0x30, 0xa0, 0xe3, 0x0a, 0x20, 0xa0, 0xe3, 0xc2, 0x31, 0x40, 0xe3, 0x5c, 0x11, 0x93, 0xe5, 0x02, 0x11, 0xc1, 0xe3, 0x5c, 0x11, 0x83, 0xe5, 0xfc, 0x10, 0x93, 0xe5, 0x02, 0x11, 0xc1, 0xe3, 0xfc, 0x10, 0x83, 0xe5, 0x60, 0x10, 0x93, 0xe5, 0x01, 0x19, 0xc1, 0xe3, 0x60, 0x10, 0x83, 0xe5, 0xc0, 0x12, 0x93, 0xe5, 0x01, 0x19, 0xc1, 0xe3, 0xc0, 0x12, 0x83, 0xe5, 0x20, 0x10, 0x93, 0xe5, 0x02, 0x11, 0xc1, 0xe3, 0x20, 0x10, 0x83, 0xe5, 0x01, 0x20, 0x52, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0xf4, 0x10, 0x93, 0xe5, 0xfa, 0x2f, 0xa0, 0xe3, 0x02, 0x11, 0xc1, 0xe3, 0xf4, 0x10, 0x83, 0xe5, 0x01, 0x20, 0x52, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x60, 0x22, 0x93, 0xe5, 0x10, 0x09, 0x01, 0xe3, 0x10, 0x00, 0x48, 0xe3, 0x7c, 0x15, 0x01, 0xe3, 0x77, 0x26, 0xc2, 0xe3, 0x0f, 0x28, 0xc2, 0xe3, 0x21, 0x26, 0x82, 0xe3, 0x60, 0x22, 0x83, 0xe5, 0x20, 0x00, 0x83, 0xe5, 0x01, 0x10, 0x51, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0xf4, 0x20, 0x93, 0xe5, 0x03, 0x00, 0xa0, 0xe1, 0x12, 0x17, 0x02, 0xe3, 0x03, 0x26, 0xc2, 0xe3, 0x0f, 0x20, 0xc2, 0xe3, 0x01, 0x28, 0x82, 0xe3, 0xf4, 0x20, 0x83, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x01, 0x10, 0x51, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0xf4, 0x30, 0x90, 0xe5, 0x01, 0x08, 0x13, 0xe3, 0xfa, 0xff, 0xff, 0x1a, 0x00, 0x30, 0xa0, 0xe3, 0x0a, 0x20, 0xa0, 0xe3, 0xc2, 0x31, 0x40, 0xe3, 0xc0, 0x12, 0x93, 0xe5, 0x01, 0x19, 0x81, 0xe3, 0xc0, 0x12, 0x83, 0xe5, 0x60, 0x10, 0x93, 0xe5, 0x01, 0x19, 0x81, 0xe3, 0x60, 0x10, 0x83, 0xe5, 0xfc, 0x10, 0x93, 0xe5, 0x02, 0x11, 0x81, 0xe3, 0xfc, 0x10, 0x83, 0xe5, 0x5c, 0x11, 0x93, 0xe5, 0x02, 0x11, 0x81, 0xe3, 0x5c, 0x11, 0x83, 0xe5, 0xf4, 0x10, 0x93, 0xe5, 0x02, 0x11, 0x81, 0xe3, 0xf4, 0x10, 0x83, 0xe5, 0x01, 0x20, 0x52, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x03, 0x5a, 0xa0, 0xe3, 0x0e, 0x20, 0x0c, 0xe3, 0xc6, 0x51, 0x40, 0xe3, 0x7d, 0x3f, 0xa0, 0xe3, 0x0c, 0x20, 0x85, 0xe5, 0x01, 0x30, 0x53, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x70, 0x6c, 0x01, 0xe3, 0x04, 0x00, 0xa0, 0xe1, 0x02, 0x81, 0x00, 0xe3, 0x4d, 0xff, 0xff, 0xeb, 0x30, 0x60, 0x85, 0xe5, 0x40, 0x00, 0xa0, 0xe3, 0x34, 0x00, 0x85, 0xe5, 0x18, 0x60, 0xa0, 0xe3, 0x38, 0x60, 0x85, 0xe5, 0x0c, 0xe8, 0x01, 0xe3, 0x10, 0xeb, 0x40, 0xe3, 0x11, 0x34, 0x00, 0xe3, 0x03, 0x30, 0x40, 0xe3, 0x0a, 0xc5, 0x00, 0xe3, 0x06, 0xc4, 0x40, 0xe3, 0x05, 0x14, 0x00, 0xe3, 0x02, 0x15, 0x40, 0xe3, 0x03, 0x24, 0x00, 0xe3, 0x05, 0x25, 0x40, 0xe3, 0x00, 0x00, 0xa0, 0xe3, 0x3c, 0x00, 0x85, 0xe5, 0x0c, 0x60, 0x04, 0xe3, 0x58, 0xe0, 0x85, 0xe5, 0xc1, 0x72, 0x0c, 0xe3, 0x5c, 0x30, 0x85, 0xe5, 0x02, 0x3a, 0xa0, 0xe3, 0x60, 0xc0, 0x85, 0xe5, 0x19, 0xee, 0xa0, 0xe3, 0x64, 0x60, 0x85, 0xe5, 0x81, 0x67, 0x0e, 0xe3, 0x68, 0x10, 0x85, 0xe5, 0x6e, 0xc0, 0xa0, 0xe3, 0x6c, 0x20, 0x85, 0xe5, 0x0d, 0x10, 0xa0, 0xe3, 0x78, 0x20, 0x95, 0xe5, 0x01, 0x9c, 0xa0, 0xe3, 0x04, 0x82, 0x40, 0xe3, 0x22, 0x28, 0xa0, 0xe1, 0x14, 0x7e, 0x40, 0xe3, 0x02, 0x28, 0xa0, 0xe1, 0x11, 0x67, 0x42, 0xe3, 0x66, 0x2c, 0x82, 0xe3, 0xc6, 0x31, 0x40, 0xe3, 0x10, 0x20, 0x82, 0xe3, 0x78, 0x20, 0x85, 0xe5, 0x01, 0x20, 0xa0, 0xe3, 0x80, 0x80, 0x85, 0xe5, 0x01, 0x8c, 0xa0, 0xe3, 0x50, 0x70, 0x85, 0xe5, 0x09, 0x70, 0xa0, 0xe3, 0x54, 0x60, 0x85, 0xe5, 0x01, 0x6b, 0xa0, 0xe3, 0x00, 0x12, 0x40, 0xe3, 0x4c, 0xc0, 0x40, 0xe3, 0x01, 0xe0, 0x40, 0xe3, 0x80, 0x80, 0x40, 0xe3, 0x00, 0x76, 0x40, 0xe3, 0x00, 0x61, 0x40, 0xe3, 0x90, 0xc0, 0x85, 0xe5, 0x01, 0xcc, 0xa0, 0xe3, 0x90, 0xe0, 0x83, 0xe5, 0x80, 0xe0, 0xa0, 0xe3, 0x98, 0x20, 0x83, 0xe5, 0x0d, 0x20, 0xa0, 0xe3, 0x10, 0x10, 0x83, 0xe5, 0x14, 0x80, 0x83, 0xe5, 0x09, 0x80, 0xa0, 0xe3, 0x18, 0x70, 0x83, 0xe5, 0x19, 0x7d, 0xa0, 0xe3, 0x1c, 0x60, 0x83, 0xe5, 0x09, 0x60, 0xa0, 0xe3, 0x00, 0x21, 0x40, 0xe3, 0x20, 0xe0, 0x40, 0xe3, 0x60, 0xc0, 0x40, 0xe3, 0x00, 0x87, 0x40, 0xe3, 0x00, 0x71, 0x40, 0xe3, 0x00, 0x61, 0x40, 0xe3, 0x20, 0x10, 0x83, 0xe5, 0x80, 0x10, 0xa0, 0xe3, 0x24, 0xc0, 0x83, 0xe5, 0x09, 0xc0, 0xa0, 0xe3, 0x28, 0x20, 0x83, 0xe5, 0x2c, 0xe0, 0x83, 0xe5, 0x30, 0x80, 0x83, 0xe5, 0x0d, 0x83, 0x00, 0xe3, 0x34, 0x70, 0x83, 0xe5, 0x06, 0x7b, 0xa0, 0xe3, 0x38, 0x20, 0x83, 0xe5, 0x3c, 0xe0, 0x83, 0xe5, 0xa3, 0xef, 0x06, 0xe3, 0x40, 0x60, 0x83, 0xe5, 0x12, 0x6e, 0xa0, 0xe3, 0x40, 0x10, 0x40, 0xe3, 0x00, 0xc4, 0x40, 0xe3, 0x40, 0x90, 0x40, 0xe3, 0x00, 0x80, 0x42, 0xe3, 0x00, 0x74, 0x40, 0xe3, 0x40, 0x60, 0x40, 0xe3, 0x44, 0x10, 0x83, 0xe5, 0x48, 0x20, 0x83, 0xe5, 0x4c, 0x10, 0x83, 0xe5, 0x50, 0x20, 0x83, 0xe5, 0x54, 0x10, 0x83, 0xe5, 0x64, 0x10, 0xa0, 0xe3, 0x58, 0xc0, 0x83, 0xe5, 0x5c, 0x90, 0x83, 0xe5, 0x60, 0x80, 0x83, 0xe5, 0x64, 0x70, 0x83, 0xe5, 0x68, 0xc0, 0x83, 0xe5, 0x01, 0xc0, 0xa0, 0xe1, 0x6c, 0x60, 0x83, 0xe5, 0x00, 0x21, 0x95, 0xe5, 0xbe, 0xe4, 0x49, 0xe3, 0xfd, 0x21, 0xc2, 0xe3, 0x00, 0x21, 0x85, 0xe5, 0x04, 0x21, 0x95, 0xe5, 0x05, 0x24, 0xc2, 0xe3, 0x01, 0x23, 0x82, 0xe3, 0x04, 0x21, 0x85, 0xe5, 0x00, 0xe8, 0x83, 0xe5, 0x01, 0xc0, 0x5c, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x88, 0x28, 0x95, 0xe5, 0xff, 0x26, 0xc2, 0xe3, 0x0f, 0x28, 0xc2, 0xe3, 0x05, 0x26, 0x82, 0xe3, 0x88, 0x28, 0x85, 0xe5, 0x00, 0x08, 0x83, 0xe5, 0x01, 0x10, 0x51, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x44, 0x23, 0x95, 0xe5, 0xc1, 0x3f, 0x00, 0xe3, 0xff, 0x3f, 0x4f, 0xe3, 0x12, 0x10, 0xa0, 0xe3, 0x03, 0x20, 0x02, 0xe0, 0x06, 0xcc, 0xa0, 0xe3, 0x44, 0x23, 0x85, 0xe5, 0xc4, 0x23, 0x95, 0xe5, 0x03, 0x20, 0x02, 0xe0, 0xc4, 0x23, 0x85, 0xe5, 0x44, 0x24, 0x95, 0xe5, 0x03, 0x20, 0x02, 0xe0, 0x44, 0x24, 0x85, 0xe5, 0xc4, 0x24, 0x95, 0xe5, 0x02, 0x30, 0x03, 0xe0, 0xc4, 0x34, 0x85, 0xe5, 0x08, 0x32, 0x95, 0xe5, 0x02, 0x30, 0x83, 0xe3, 0x08, 0x32, 0x85, 0xe5, 0x08, 0x31, 0x95, 0xe5, 0xc0, 0x30, 0x83, 0xe3, 0x08, 0x31, 0x85, 0xe5, 0x00, 0x31, 0x95, 0xe5, 0x0f, 0x3a, 0xc3, 0xe3, 0x00, 0x31, 0x85, 0xe5, 0x08, 0x31, 0x95, 0xe5, 0x0f, 0x3c, 0xc3, 0xe3, 0x06, 0x3c, 0x83, 0xe3, 0x08, 0x31, 0x85, 0xe5, 0x42, 0x30, 0xdd, 0xe5, 0x00, 0x00, 0x53, 0xe1, 0x44, 0x34, 0x85, 0x05, 0xc4, 0x34, 0x85, 0x05, 0x43, 0x30, 0xdd, 0xe5, 0x04, 0x30, 0x8d, 0xe5, 0x03, 0x20, 0xa0, 0xe1, 0x03, 0x3a, 0xa0, 0xe3, 0x00, 0x00, 0x52, 0xe3, 0xc6, 0x31, 0x40, 0xe3, 0x01, 0x24, 0xa0, 0x03, 0x03, 0x24, 0xa0, 0x13, 0xc0, 0x00, 0x93, 0xe5, 0x0f, 0x04, 0xc0, 0xe3, 0x02, 0x00, 0x80, 0xe1, 0x0e, 0x20, 0xa0, 0xe3, 0xc0, 0x00, 0x83, 0xe5, 0x0a, 0x0c, 0xa0, 0xe3, 0x10, 0x13, 0x83, 0xe5, 0x14, 0x13, 0x83, 0xe5, 0x18, 0x13, 0x83, 0xe5, 0x1c, 0x13, 0x83, 0xe5, 0x20, 0x13, 0x83, 0xe5, 0x24, 0x13, 0x83, 0xe5, 0x28, 0x13, 0x83, 0xe5, 0x2c, 0x13, 0x83, 0xe5, 0x30, 0x13, 0x83, 0xe5, 0x90, 0x23, 0x83, 0xe5, 0x94, 0x23, 0x83, 0xe5, 0x98, 0x23, 0x83, 0xe5, 0x9c, 0x23, 0x83, 0xe5, 0xa0, 0x23, 0x83, 0xe5, 0xa4, 0x23, 0x83, 0xe5, 0xa8, 0x23, 0x83, 0xe5, 0xac, 0x23, 0x83, 0xe5, 0xb0, 0x23, 0x83, 0xe5, 0x10, 0x14, 0x83, 0xe5, 0x14, 0x14, 0x83, 0xe5, 0x18, 0x14, 0x83, 0xe5, 0x1c, 0x14, 0x83, 0xe5, 0x20, 0x14, 0x83, 0xe5, 0x24, 0x14, 0x83, 0xe5, 0x28, 0x14, 0x83, 0xe5, 0x2c, 0x14, 0x83, 0xe5, 0x30, 0x14, 0x83, 0xe5, 0x90, 0x24, 0x83, 0xe5, 0x94, 0x24, 0x83, 0xe5, 0x98, 0x24, 0x83, 0xe5, 0x9c, 0x24, 0x83, 0xe5, 0xa0, 0x24, 0x83, 0xe5, 0xa4, 0x24, 0x83, 0xe5, 0xa8, 0x24, 0x83, 0xe5, 0xac, 0x24, 0x83, 0xe5, 0xb0, 0x24, 0x83, 0xe5, 0x01, 0x20, 0xa0, 0xe3, 0x00, 0x11, 0x93, 0xe5, 0x01, 0x13, 0xc1, 0xe3, 0x00, 0x11, 0x83, 0xe5, 0x34, 0x03, 0x83, 0xe5, 0x38, 0x03, 0x83, 0xe5, 0xb4, 0x03, 0x83, 0xe5, 0xb8, 0x03, 0x83, 0xe5, 0x34, 0x04, 0x83, 0xe5, 0x38, 0x04, 0x83, 0xe5, 0xb4, 0xc4, 0x83, 0xe5, 0xb8, 0xc4, 0x83, 0xe5, 0x00, 0x11, 0x93, 0xe5, 0x01, 0x13, 0x81, 0xe3, 0x00, 0x11, 0x83, 0xe5, 0x01, 0x20, 0x52, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x32, 0x20, 0xa0, 0xe3, 0x01, 0x20, 0x52, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x07, 0x25, 0xa0, 0xe3, 0x24, 0x10, 0x92, 0xe5, 0xff, 0x00, 0x11, 0xe3, 0x02, 0x00, 0x00, 0x1a, 0xf0, 0x20, 0x92, 0xe5, 0x01, 0x00, 0x12, 0xe3, 0x25, 0x01, 0x00, 0x0a, 0x03, 0x2a, 0xa0, 0xe3, 0x16, 0x37, 0x01, 0xe3, 0xc6, 0x21, 0x40, 0xe3, 0x0a, 0x1a, 0x00, 0xe3, 0x14, 0x35, 0x41, 0xe3, 0x06, 0xb7, 0x00, 0xe3, 0x0a, 0x1a, 0x40, 0xe3, 0x0e, 0xaf, 0x00, 0xe3, 0x08, 0x30, 0x8d, 0xe5, 0x02, 0x30, 0xa0, 0xe1, 0x50, 0x11, 0x82, 0xe5, 0x14, 0x20, 0x8d, 0xe2, 0x00, 0x20, 0x8d, 0xe5, 0x08, 0x99, 0x00, 0xe3, 0x0c, 0x40, 0x8d, 0xe5, 0x1e, 0xcf, 0x01, 0xe3, 0x04, 0xb5, 0x40, 0xe3, 0x18, 0x09, 0x01, 0xe3, 0x0c, 0xad, 0x40, 0xe3, 0x10, 0x81, 0x01, 0xe3, 0x0a, 0x9b, 0x40, 0xe3, 0x00, 0x20, 0xa0, 0xe3, 0x1c, 0xcd, 0x41, 0xe3, 0x02, 0x40, 0xa0, 0xe1, 0x1a, 0x0b, 0x41, 0xe3, 0x12, 0x83, 0x41, 0xe3, 0xfb, 0x1b, 0x03, 0xe3, 0x03, 0x50, 0xa0, 0xe3, 0x3b, 0x10, 0x40, 0xe3, 0x12, 0xe7, 0x02, 0xe3, 0x51, 0x14, 0xa0, 0xe1, 0x0f, 0x10, 0x01, 0xe2, 0x01, 0x28, 0xa0, 0xe1, 0x01, 0x2a, 0x82, 0xe1, 0x01, 0x20, 0x82, 0xe1, 0x01, 0x26, 0x82, 0xe1, 0x01, 0x24, 0x82, 0xe1, 0x01, 0x22, 0x82, 0xe1, 0x40, 0x21, 0x83, 0xe5, 0x02, 0x23, 0xa0, 0xe3, 0x00, 0x20, 0x83, 0xe5, 0x00, 0x50, 0x83, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x01, 0xe0, 0x5e, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0x10, 0x20, 0x93, 0xe5, 0x01, 0x00, 0x12, 0xe3, 0xfa, 0xff, 0xff, 0x0a, 0x48, 0x11, 0x93, 0xe5, 0x01, 0x21, 0x00, 0xe3, 0x01, 0x21, 0x40, 0xe3, 0x03, 0xe0, 0xa0, 0xe3, 0x71, 0x10, 0xef, 0xe6, 0x02, 0x53, 0xa0, 0xe3, 0x92, 0x01, 0x02, 0xe0, 0x50, 0x21, 0x83, 0xe5, 0x12, 0x27, 0x02, 0xe3, 0x00, 0x50, 0x83, 0xe5, 0x00, 0xe0, 0x83, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x01, 0x20, 0x52, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0x10, 0xe0, 0x93, 0xe5, 0x01, 0x00, 0x1e, 0xe3, 0xfa, 0xff, 0xff, 0x0a, 0x48, 0x21, 0x93, 0xe5, 0xc0, 0x50, 0x8d, 0xe2, 0x28, 0xa0, 0x8d, 0xe5, 0x01, 0xec, 0xa0, 0xe3, 0x52, 0x2c, 0xe4, 0xe7, 0x0c, 0x7d, 0x00, 0xe3, 0x02, 0x20, 0x85, 0xe0, 0x0a, 0x6b, 0x00, 0xe3, 0x08, 0x50, 0x9d, 0xe5, 0x04, 0x40, 0x84, 0xe2, 0x02, 0xe3, 0x40, 0xe3, 0x18, 0x00, 0x54, 0xe3, 0x3c, 0x50, 0x8d, 0xe5, 0x14, 0x55, 0x01, 0xe3, 0x2c, 0x90, 0x8d, 0xe5, 0x30, 0xc0, 0x8d, 0xe5, 0x34, 0x00, 0x8d, 0xe5, 0x38, 0x80, 0x8d, 0xe5, 0x20, 0xe0, 0x8d, 0xe5, 0xc0, 0xe0, 0x8d, 0xe2, 0x24, 0xb0, 0x8d, 0xe5, 0xa0, 0x20, 0x52, 0xe5, 0x0e, 0x7f, 0x40, 0xe3, 0x08, 0x69, 0x40, 0xe3, 0x01, 0x20, 0x42, 0xe2, 0x16, 0x57, 0x41, 0xe3, 0x12, 0x20, 0xe5, 0xe6, 0x02, 0x20, 0x8e, 0xe0, 0x12, 0xe3, 0x01, 0xe3, 0x10, 0xe1, 0x41, 0xe3, 0x30, 0x00, 0x8d, 0xe5, 0x34, 0xc0, 0x8d, 0xe5, 0x28, 0x70, 0x8d, 0xe5, 0x2c, 0x60, 0x8d, 0xe5, 0x38, 0x50, 0x8d, 0xe5, 0x3c, 0xe0, 0x8d, 0xe5, 0xa0, 0x20, 0x52, 0xe5, 0x02, 0x14, 0x81, 0xe1, 0x00, 0x20, 0x9d, 0xe5, 0xb2, 0x10, 0xc2, 0xe0, 0x00, 0x20, 0x8d, 0xe5, 0xae, 0xff, 0xff, 0x1a, 0x0c, 0x40, 0x9d, 0xe5, 0x14, 0x00, 0x8d, 0xe2, 0x07, 0x00, 0x90, 0xe8, 0x48, 0x01, 0x83, 0xe5, 0x4c, 0x11, 0x83, 0xe5, 0x50, 0x21, 0x83, 0xe5, 0x03, 0x3a, 0xa0, 0xe3, 0xf1, 0x15, 0x00, 0xe3, 0xc6, 0x31, 0x40, 0xe3, 0x12, 0x27, 0x02, 0xe3, 0x00, 0x10, 0x83, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x01, 0x20, 0x52, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0x10, 0x10, 0x93, 0xe5, 0x01, 0x00, 0x11, 0xe3, 0xfa, 0xff, 0xff, 0x0a, 0x03, 0x3a, 0xa0, 0xe3, 0xc6, 0x31, 0x40, 0xe3, 0x10, 0x20, 0x93, 0xe5, 0xfe, 0x06, 0x12, 0xe3, 0x29, 0x00, 0x00, 0x0a, 0x48, 0x23, 0x93, 0xe5, 0x02, 0x04, 0x12, 0xe3, 0xc1, 0x00, 0x00, 0x0a, 0x03, 0x2a, 0xa0, 0xe3, 0x00, 0x10, 0xa0, 0xe3, 0xc6, 0x21, 0x40, 0xe3, 0xc0, 0x30, 0x92, 0xe5, 0x0f, 0x34, 0xc3, 0xe3, 0x01, 0x34, 0x83, 0xe3, 0xc0, 0x30, 0x82, 0xe5, 0x43, 0x10, 0xcd, 0xe5, 0x03, 0x3a, 0xa0, 0xe3, 0xc6, 0x31, 0x40, 0xe3, 0x48, 0x24, 0x93, 0xe5, 0x01, 0x04, 0x12, 0xe3, 0xb8, 0x00, 0x00, 0x1a, 0xc8, 0x34, 0x93, 0xe5, 0x01, 0x04, 0x13, 0xe3, 0xb5, 0x00, 0x00, 0x1a, 0x04, 0x00, 0xa0, 0xe1, 0xcb, 0xfd, 0xff, 0xeb, 0x14, 0x30, 0xa0, 0xe3, 0x01, 0x30, 0x53, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x03, 0x3a, 0xa0, 0xe3, 0x01, 0x14, 0x00, 0xe3, 0xc6, 0x31, 0x40, 0xe3, 0x12, 0x27, 0x02, 0xe3, 0x00, 0x10, 0x83, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x01, 0x20, 0x52, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0x10, 0x10, 0x93, 0xe5, 0x01, 0x00, 0x11, 0xe3, 0xfa, 0xff, 0xff, 0x0a, 0x03, 0x3a, 0xa0, 0xe3, 0xc6, 0x31, 0x40, 0xe3, 0x10, 0x30, 0x93, 0xe5, 0xfe, 0x06, 0x13, 0xe3, 0xa7, 0x00, 0x00, 0x1a, 0x43, 0x30, 0xdd, 0xe5, 0x04, 0x30, 0x8d, 0xe5, 0x03, 0x2a, 0xa0, 0xe3, 0x12, 0x37, 0x02, 0xe3, 0xc6, 0x21, 0x40, 0xe3, 0x01, 0x00, 0x00, 0xea, 0x01, 0x30, 0x53, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0x18, 0x10, 0x92, 0xe5, 0x01, 0x00, 0x11, 0xe3, 0xfa, 0xff, 0xff, 0x0a, 0x03, 0x3a, 0xa0, 0xe3, 0x0a, 0x20, 0xa0, 0xe3, 0xc6, 0x31, 0x40, 0xe3, 0x02, 0x00, 0xa0, 0xe1, 0x8c, 0x10, 0x93, 0xe5, 0x02, 0x11, 0x81, 0xe3, 0x8c, 0x10, 0x83, 0xe5, 0x01, 0x00, 0x50, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x8c, 0x10, 0x93, 0xe5, 0x02, 0x11, 0xc1, 0xe3, 0x8c, 0x10, 0x83, 0xe5, 0x01, 0x20, 0x52, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x04, 0x00, 0x9d, 0xe5, 0x60, 0x20, 0xa0, 0xe3, 0xaa, 0x20, 0x40, 0xe3, 0x02, 0x1a, 0xa0, 0xe3, 0x0c, 0x21, 0x83, 0xe5, 0x00, 0x00, 0x50, 0xe3, 0x40, 0x21, 0x93, 0xe5, 0x00, 0x00, 0xe0, 0xe3, 0xc6, 0x11, 0x40, 0xe3, 0x02, 0x21, 0x82, 0xe3, 0x40, 0x21, 0x83, 0xe5, 0x03, 0x23, 0x00, 0x13, 0x94, 0x00, 0x81, 0xe5, 0x01, 0x22, 0x00, 0x03, 0x20, 0x21, 0x83, 0xe5, 0x01, 0x30, 0xa0, 0xe3, 0x01, 0x30, 0x53, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x03, 0x1a, 0xa0, 0xe3, 0x02, 0x2a, 0xa0, 0xe3, 0xc6, 0x21, 0x40, 0xe3, 0x01, 0x0b, 0xa0, 0xe3, 0xc6, 0x11, 0x40, 0xe3, 0x0a, 0x30, 0xa0, 0xe3, 0x00, 0x0c, 0x40, 0xe3, 0x7c, 0x00, 0x81, 0xe5, 0xd0, 0x10, 0x92, 0xe5, 0x02, 0x11, 0x81, 0xe3, 0xd0, 0x10, 0x82, 0xe5, 0x01, 0x30, 0x53, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x02, 0x2c, 0xa0, 0xe3, 0x31, 0x3e, 0xa0, 0xe3, 0xb0, 0x24, 0xcd, 0xe1, 0x04, 0x00, 0xa0, 0xe1, 0xb4, 0x34, 0xcd, 0xe1, 0x7a, 0xfd, 0xff, 0xeb, 0x02, 0x20, 0xa0, 0xe3, 0x55, 0x0a, 0x0a, 0xe3, 0x55, 0x0a, 0x4a, 0xe3, 0x02, 0x30, 0xa0, 0xe1, 0x45, 0x20, 0xcd, 0xe5, 0x01, 0x11, 0xa0, 0xe3, 0x00, 0xc0, 0xa0, 0xe3, 0x05, 0x00, 0x00, 0xea, 0x45, 0x30, 0xdd, 0xe5, 0x01, 0x30, 0x83, 0xe2, 0x73, 0x30, 0xef, 0xe6, 0x45, 0x30, 0xcd, 0xe5, 0x02, 0x00, 0x53, 0xe3, 0x09, 0x00, 0x00, 0x8a, 0xb0, 0x24, 0xdd, 0xe1, 0x00, 0xc0, 0x81, 0xe5, 0x12, 0x33, 0xa0, 0xe1, 0x01, 0x31, 0x83, 0xe2, 0x00, 0x00, 0x83, 0xe5, 0x4f, 0xf0, 0x7f, 0xf5, 0x00, 0x20, 0x91, 0xe5, 0x00, 0x30, 0x93, 0xe5, 0x03, 0x00, 0x52, 0xe1, 0xef, 0xff, 0xff, 0x1a, 0x02, 0x3a, 0xa0, 0xe3, 0x04, 0x00, 0xa0, 0xe1, 0xb0, 0x34, 0xcd, 0xe1, 0x5e, 0xfd, 0xff, 0xeb, 0x02, 0x3c, 0xa0, 0xe3, 0x55, 0x1a, 0x0a, 0xe3, 0x55, 0x1a, 0x4a, 0xe3, 0x01, 0x21, 0xa0, 0xe3, 0xb0, 0x34, 0xcd, 0xe1, 0x00, 0xc0, 0xa0, 0xe3, 0x05, 0x00, 0x00, 0xea, 0xb0, 0x34, 0xdd, 0xe1, 0x83, 0x30, 0xa0, 0xe1, 0x73, 0x30, 0xff, 0xe6, 0xb0, 0x34, 0xcd, 0xe1, 0x02, 0x0a, 0x53, 0xe3, 0x07, 0x00, 0x00, 0x2a, 0x00, 0xc0, 0x82, 0xe5, 0x01, 0x31, 0x83, 0xe2, 0x00, 0x10, 0x83, 0xe5, 0x4f, 0xf0, 0x7f, 0xf5, 0x00, 0x00, 0x92, 0xe5, 0x00, 0x30, 0x93, 0xe5, 0x03, 0x00, 0x50, 0xe1, 0xf1, 0xff, 0xff, 0x1a, 0x04, 0x00, 0xa0, 0xe1, 0x47, 0xfd, 0xff, 0xeb, 0x44, 0x30, 0xdd, 0xe5, 0x45, 0x20, 0xdd, 0xe5, 0x43, 0x10, 0xdd, 0xe5, 0x02, 0x20, 0x83, 0xe0, 0xb0, 0x34, 0xdd, 0xe1, 0x00, 0x00, 0x51, 0xe3, 0x13, 0x32, 0xa0, 0xe1, 0x00, 0x20, 0xa0, 0xe3, 0x83, 0x30, 0xa0, 0x11, 0x20, 0x30, 0x82, 0xe5, 0xc4, 0xd0, 0x8d, 0xe2, 0xf0, 0x8f, 0xbd, 0xe8, 0x40, 0x21, 0x93, 0xe5, 0x02, 0xc3, 0xa0, 0xe3, 0x03, 0x00, 0xa0, 0xe3, 0x03, 0x10, 0xa0, 0xe1, 0x22, 0x28, 0xa0, 0xe1, 0x02, 0x28, 0xa0, 0xe1, 0xef, 0x2d, 0x82, 0xe3, 0x3b, 0x20, 0x82, 0xe3, 0x40, 0x21, 0x83, 0xe5, 0x12, 0x27, 0x02, 0xe3, 0x00, 0xc0, 0x83, 0xe5, 0x00, 0x00, 0x83, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x01, 0x20, 0x52, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0x10, 0x30, 0x91, 0xe5, 0x01, 0x00, 0x13, 0xe3, 0xfa, 0xff, 0xff, 0x0a, 0x03, 0x2a, 0xa0, 0xe3, 0x1f, 0x00, 0xa0, 0xe3, 0xc6, 0x21, 0x40, 0xe3, 0x1f, 0x00, 0x40, 0xe3, 0x48, 0x11, 0x92, 0xe5, 0x00, 0x10, 0x01, 0xe0, 0x01, 0x14, 0x81, 0xe1, 0x48, 0x11, 0x82, 0xe5, 0x4c, 0x31, 0x92, 0xe5, 0x00, 0x30, 0x03, 0xe0, 0x03, 0x34, 0x83, 0xe1, 0x4c, 0x31, 0x82, 0xe5, 0x50, 0x31, 0x82, 0xe5, 0x2a, 0xff, 0xff, 0xea, 0xc8, 0x33, 0x93, 0xe5, 0x02, 0x04, 0x13, 0xe3, 0x42, 0xff, 0xff, 0x0a, 0x39, 0xff, 0xff, 0xea, 0x03, 0x2a, 0xa0, 0xe3, 0x00, 0x30, 0xa0, 0xe3, 0xc6, 0x21, 0x40, 0xe3, 0x44, 0x34, 0x82, 0xe5, 0xc4, 0x34, 0x82, 0xe5, 0x42, 0x30, 0xcd, 0xe5, 0x42, 0xff, 0xff, 0xea, 0x00, 0x30, 0xa0, 0xe3, 0x20, 0x30, 0x83, 0xe5, 0xc4, 0xd0, 0x8d, 0xe2, 0xf0, 0x8f, 0xbd, 0xe8, 0x28, 0x0b, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x4e, 0x55, 0x00, 0x46, 0xff, 0x26, 0xdd, 0x6e, 0xd7, 0x2d, 0x8b, 0x84, 0x77, 0x44, 0x05, 0xa8, 0x32, 0x2f, 0xc9, 0x49, 0x0a, 0x58, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x00, 0x00, 0x00, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x2f, 0x6c, 0x69, 0x62, 0x2f, 0x6c, 0x64, 0x2d, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x2d, 0x61, 0x72, 0x6d, 0x68, 0x66, 0x2e, 0x73, 0x6f, 0x2e, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0xfe, 0xff, 0x6f, 0x1c, 0x93, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x18, 0x93, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08, 0x93, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xfb, 0xff, 0xff, 0x6f, 0x01, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; static const uint8_t h3_payload[] = { 0xff, 0xff, 0xff, 0xea, 0x40, 0x00, 0xa0, 0xe3, 0x00, 0xd0, 0x80, 0xe5, 0x04, 0xe0, 0x80, 0xe5, 0x00, 0xe0, 0x0f, 0xe1, 0x08, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x0c, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x1c, 0xee, 0x10, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x14, 0xe0, 0x80, 0xe5, 0x5c, 0x01, 0x00, 0xeb, 0x88, 0x01, 0x00, 0xeb, 0xce, 0x01, 0x00, 0xeb, 0x40, 0x00, 0xa0, 0xe3, 0x00, 0xd0, 0x90, 0xe5, 0x04, 0xe0, 0x90, 0xe5, 0x14, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x10, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x0c, 0xee, 0x0c, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x08, 0x10, 0x90, 0xe5, 0x01, 0xf0, 0x29, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0xe1, 0x91, 0x00, 0x00, 0x3a, 0x00, 0x00, 0xa0, 0x03, 0x0e, 0xf0, 0xa0, 0x01, 0x01, 0x40, 0x2d, 0xe9, 0x04, 0x20, 0x52, 0xe2, 0x20, 0x00, 0x00, 0xba, 0x03, 0xc0, 0x10, 0xe2, 0x28, 0x00, 0x00, 0x1a, 0x03, 0xc0, 0x11, 0xe2, 0x32, 0x00, 0x00, 0x1a, 0x08, 0x20, 0x52, 0xe2, 0x12, 0x00, 0x00, 0xba, 0x14, 0x20, 0x52, 0xe2, 0x0b, 0x00, 0x00, 0xba, 0x10, 0x00, 0x2d, 0xe9, 0x18, 0x50, 0xb1, 0xe8, 0x18, 0x50, 0xa0, 0xe8, 0x18, 0x50, 0xb1, 0xe8, 0x18, 0x50, 0xa0, 0xe8, 0x20, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x10, 0x00, 0x72, 0xe3, 0x18, 0x50, 0xb1, 0xa8, 0x18, 0x50, 0xa0, 0xa8, 0x10, 0x20, 0x42, 0xa2, 0x10, 0x00, 0xbd, 0xe8, 0x14, 0x20, 0x92, 0xe2, 0x08, 0x50, 0xb1, 0xa8, 0x08, 0x50, 0xa0, 0xa8, 0x0c, 0x20, 0x52, 0xa2, 0xfb, 0xff, 0xff, 0xaa, 0x08, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x04, 0x20, 0x52, 0xe2, 0x04, 0x30, 0x91, 0xb4, 0x04, 0x30, 0x80, 0xb4, 0x08, 0x10, 0xb1, 0xa8, 0x08, 0x10, 0xa0, 0xa8, 0x04, 0x20, 0x42, 0xa2, 0x04, 0x20, 0x92, 0xe2, 0x01, 0x80, 0xbd, 0x08, 0x02, 0x00, 0x52, 0xe3, 0x01, 0x30, 0xd1, 0xe4, 0x01, 0x30, 0xc0, 0xe4, 0x01, 0x30, 0xd1, 0xa4, 0x01, 0x30, 0xc0, 0xa4, 0x01, 0x30, 0xd1, 0xc4, 0x01, 0x30, 0xc0, 0xc4, 0x01, 0x80, 0xbd, 0xe8, 0x04, 0xc0, 0x6c, 0xe2, 0x02, 0x00, 0x5c, 0xe3, 0x01, 0x30, 0xd1, 0xe4, 0x01, 0x30, 0xc0, 0xe4, 0x01, 0x30, 0xd1, 0xa4, 0x01, 0x30, 0xc0, 0xa4, 0x01, 0x30, 0xd1, 0xc4, 0x01, 0x30, 0xc0, 0xc4, 0x0c, 0x20, 0x52, 0xe0, 0xeb, 0xff, 0xff, 0xba, 0x03, 0xc0, 0x11, 0xe2, 0xcc, 0xff, 0xff, 0x0a, 0x03, 0x10, 0xc1, 0xe3, 0x04, 0xe0, 0x91, 0xe4, 0x02, 0x00, 0x5c, 0xe3, 0x36, 0x00, 0x00, 0xca, 0x1a, 0x00, 0x00, 0x0a, 0x0c, 0x00, 0x52, 0xe3, 0x10, 0x00, 0x00, 0xba, 0x0c, 0x20, 0x42, 0xe2, 0x30, 0x00, 0x2d, 0xe9, 0x2e, 0x34, 0xa0, 0xe1, 0x30, 0x50, 0xb1, 0xe8, 0x04, 0x3c, 0x83, 0xe1, 0x24, 0x44, 0xa0, 0xe1, 0x05, 0x4c, 0x84, 0xe1, 0x25, 0x54, 0xa0, 0xe1, 0x0c, 0x5c, 0x85, 0xe1, 0x2c, 0xc4, 0xa0, 0xe1, 0x0e, 0xcc, 0x8c, 0xe1, 0x38, 0x10, 0xa0, 0xe8, 0x10, 0x20, 0x52, 0xe2, 0xf3, 0xff, 0xff, 0xaa, 0x30, 0x00, 0xbd, 0xe8, 0x0c, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x2e, 0xc4, 0xa0, 0xe1, 0x04, 0xe0, 0x91, 0xe4, 0x0e, 0xcc, 0x8c, 0xe1, 0x04, 0xc0, 0x80, 0xe4, 0x04, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x03, 0x10, 0x41, 0xe2, 0xc9, 0xff, 0xff, 0xea, 0x0c, 0x00, 0x52, 0xe3, 0x10, 0x00, 0x00, 0xba, 0x0c, 0x20, 0x42, 0xe2, 0x30, 0x00, 0x2d, 0xe9, 0x2e, 0x38, 0xa0, 0xe1, 0x30, 0x50, 0xb1, 0xe8, 0x04, 0x38, 0x83, 0xe1, 0x24, 0x48, 0xa0, 0xe1, 0x05, 0x48, 0x84, 0xe1, 0x25, 0x58, 0xa0, 0xe1, 0x0c, 0x58, 0x85, 0xe1, 0x2c, 0xc8, 0xa0, 0xe1, 0x0e, 0xc8, 0x8c, 0xe1, 0x38, 0x10, 0xa0, 0xe8, 0x10, 0x20, 0x52, 0xe2, 0xf3, 0xff, 0xff, 0xaa, 0x30, 0x00, 0xbd, 0xe8, 0x0c, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x2e, 0xc8, 0xa0, 0xe1, 0x04, 0xe0, 0x91, 0xe4, 0x0e, 0xc8, 0x8c, 0xe1, 0x04, 0xc0, 0x80, 0xe4, 0x04, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x02, 0x10, 0x41, 0xe2, 0xae, 0xff, 0xff, 0xea, 0x0c, 0x00, 0x52, 0xe3, 0x10, 0x00, 0x00, 0xba, 0x0c, 0x20, 0x42, 0xe2, 0x30, 0x00, 0x2d, 0xe9, 0x2e, 0x3c, 0xa0, 0xe1, 0x30, 0x50, 0xb1, 0xe8, 0x04, 0x34, 0x83, 0xe1, 0x24, 0x4c, 0xa0, 0xe1, 0x05, 0x44, 0x84, 0xe1, 0x25, 0x5c, 0xa0, 0xe1, 0x0c, 0x54, 0x85, 0xe1, 0x2c, 0xcc, 0xa0, 0xe1, 0x0e, 0xc4, 0x8c, 0xe1, 0x38, 0x10, 0xa0, 0xe8, 0x10, 0x20, 0x52, 0xe2, 0xf3, 0xff, 0xff, 0xaa, 0x30, 0x00, 0xbd, 0xe8, 0x0c, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x2e, 0xcc, 0xa0, 0xe1, 0x04, 0xe0, 0x91, 0xe4, 0x0e, 0xc4, 0x8c, 0xe1, 0x04, 0xc0, 0x80, 0xe4, 0x04, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x01, 0x10, 0x41, 0xe2, 0x93, 0xff, 0xff, 0xea, 0x02, 0x10, 0x81, 0xe0, 0x02, 0x00, 0x80, 0xe0, 0x04, 0x20, 0x52, 0xe2, 0x1f, 0x00, 0x00, 0xba, 0x03, 0xc0, 0x10, 0xe2, 0x27, 0x00, 0x00, 0x1a, 0x03, 0xc0, 0x11, 0xe2, 0x30, 0x00, 0x00, 0x1a, 0x08, 0x20, 0x52, 0xe2, 0x11, 0x00, 0x00, 0xba, 0x10, 0x40, 0x2d, 0xe9, 0x14, 0x20, 0x52, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x18, 0x50, 0x31, 0xe9, 0x18, 0x50, 0x20, 0xe9, 0x18, 0x50, 0x31, 0xe9, 0x18, 0x50, 0x20, 0xe9, 0x20, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x10, 0x00, 0x72, 0xe3, 0x18, 0x50, 0x31, 0xa9, 0x18, 0x50, 0x20, 0xa9, 0x10, 0x20, 0x42, 0xa2, 0x14, 0x20, 0x92, 0xe2, 0x08, 0x50, 0x31, 0xa9, 0x08, 0x50, 0x20, 0xa9, 0x0c, 0x20, 0x42, 0xa2, 0x10, 0x40, 0xbd, 0xe8, 0x08, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x04, 0x20, 0x52, 0xe2, 0x04, 0x30, 0x31, 0xb5, 0x04, 0x30, 0x20, 0xb5, 0x08, 0x10, 0x31, 0xa9, 0x08, 0x10, 0x20, 0xa9, 0x04, 0x20, 0x42, 0xa2, 0x04, 0x20, 0x92, 0xe2, 0x0e, 0xf0, 0xa0, 0x01, 0x02, 0x00, 0x52, 0xe3, 0x01, 0x30, 0x71, 0xe5, 0x01, 0x30, 0x60, 0xe5, 0x01, 0x30, 0x71, 0xa5, 0x01, 0x30, 0x60, 0xa5, 0x01, 0x30, 0x71, 0xc5, 0x01, 0x30, 0x60, 0xc5, 0x0e, 0xf0, 0xa0, 0xe1, 0x02, 0x00, 0x5c, 0xe3, 0x01, 0x30, 0x71, 0xe5, 0x01, 0x30, 0x60, 0xe5, 0x01, 0x30, 0x71, 0xa5, 0x01, 0x30, 0x60, 0xa5, 0x01, 0x30, 0x71, 0xc5, 0x01, 0x30, 0x60, 0xc5, 0x0c, 0x20, 0x52, 0xe0, 0xec, 0xff, 0xff, 0xba, 0x03, 0xc0, 0x11, 0xe2, 0xce, 0xff, 0xff, 0x0a, 0x03, 0x10, 0xc1, 0xe3, 0x00, 0x30, 0x91, 0xe5, 0x02, 0x00, 0x5c, 0xe3, 0x36, 0x00, 0x00, 0xba, 0x1a, 0x00, 0x00, 0x0a, 0x0c, 0x00, 0x52, 0xe3, 0x10, 0x00, 0x00, 0xba, 0x0c, 0x20, 0x42, 0xe2, 0x30, 0x40, 0x2d, 0xe9, 0x03, 0xe4, 0xa0, 0xe1, 0x38, 0x10, 0x31, 0xe9, 0x2c, 0xec, 0x8e, 0xe1, 0x0c, 0xc4, 0xa0, 0xe1, 0x25, 0xcc, 0x8c, 0xe1, 0x05, 0x54, 0xa0, 0xe1, 0x24, 0x5c, 0x85, 0xe1, 0x04, 0x44, 0xa0, 0xe1, 0x23, 0x4c, 0x84, 0xe1, 0x30, 0x50, 0x20, 0xe9, 0x10, 0x20, 0x52, 0xe2, 0xf3, 0xff, 0xff, 0xaa, 0x30, 0x40, 0xbd, 0xe8, 0x0c, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x03, 0xc4, 0xa0, 0xe1, 0x04, 0x30, 0x31, 0xe5, 0x23, 0xcc, 0x8c, 0xe1, 0x04, 0xc0, 0x20, 0xe5, 0x04, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x03, 0x10, 0x81, 0xe2, 0xca, 0xff, 0xff, 0xea, 0x0c, 0x00, 0x52, 0xe3, 0x10, 0x00, 0x00, 0xba, 0x0c, 0x20, 0x42, 0xe2, 0x30, 0x40, 0x2d, 0xe9, 0x03, 0xe8, 0xa0, 0xe1, 0x38, 0x10, 0x31, 0xe9, 0x2c, 0xe8, 0x8e, 0xe1, 0x0c, 0xc8, 0xa0, 0xe1, 0x25, 0xc8, 0x8c, 0xe1, 0x05, 0x58, 0xa0, 0xe1, 0x24, 0x58, 0x85, 0xe1, 0x04, 0x48, 0xa0, 0xe1, 0x23, 0x48, 0x84, 0xe1, 0x30, 0x50, 0x20, 0xe9, 0x10, 0x20, 0x52, 0xe2, 0xf3, 0xff, 0xff, 0xaa, 0x30, 0x40, 0xbd, 0xe8, 0x0c, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x03, 0xc8, 0xa0, 0xe1, 0x04, 0x30, 0x31, 0xe5, 0x23, 0xc8, 0x8c, 0xe1, 0x04, 0xc0, 0x20, 0xe5, 0x04, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x02, 0x10, 0x81, 0xe2, 0xaf, 0xff, 0xff, 0xea, 0x0c, 0x00, 0x52, 0xe3, 0x10, 0x00, 0x00, 0xba, 0x0c, 0x20, 0x42, 0xe2, 0x30, 0x40, 0x2d, 0xe9, 0x03, 0xec, 0xa0, 0xe1, 0x38, 0x10, 0x31, 0xe9, 0x2c, 0xe4, 0x8e, 0xe1, 0x0c, 0xcc, 0xa0, 0xe1, 0x25, 0xc4, 0x8c, 0xe1, 0x05, 0x5c, 0xa0, 0xe1, 0x24, 0x54, 0x85, 0xe1, 0x04, 0x4c, 0xa0, 0xe1, 0x23, 0x44, 0x84, 0xe1, 0x30, 0x50, 0x20, 0xe9, 0x10, 0x20, 0x52, 0xe2, 0xf3, 0xff, 0xff, 0xaa, 0x30, 0x40, 0xbd, 0xe8, 0x0c, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x03, 0xcc, 0xa0, 0xe1, 0x04, 0x30, 0x31, 0xe5, 0x23, 0xc4, 0x8c, 0xe1, 0x04, 0xc0, 0x20, 0xe5, 0x04, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x01, 0x10, 0x81, 0xe2, 0x94, 0xff, 0xff, 0xea, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x2d, 0xe9, 0xff, 0x10, 0x01, 0xe2, 0x04, 0x00, 0x52, 0xe3, 0x1c, 0x00, 0x00, 0xba, 0x03, 0x30, 0x10, 0xe2, 0x07, 0x00, 0x00, 0x0a, 0x04, 0x30, 0x63, 0xe2, 0x03, 0x20, 0x42, 0xe0, 0x02, 0x00, 0x53, 0xe3, 0x01, 0x10, 0xc0, 0xe4, 0x01, 0x10, 0xc0, 0xa4, 0x01, 0x10, 0xc0, 0xc4, 0x04, 0x00, 0x52, 0xe3, 0x12, 0x00, 0x00, 0xba, 0x01, 0x34, 0x81, 0xe1, 0x03, 0x38, 0x83, 0xe1, 0x20, 0x00, 0x52, 0xe3, 0x0a, 0x00, 0x00, 0xba, 0x70, 0x00, 0x2d, 0xe9, 0x03, 0x40, 0xa0, 0xe1, 0x03, 0x50, 0xa0, 0xe1, 0x03, 0x60, 0xa0, 0xe1, 0x78, 0x00, 0xa0, 0xe8, 0x10, 0x20, 0x42, 0xe2, 0x10, 0x00, 0x52, 0xe3, 0xfb, 0xff, 0xff, 0xca, 0x70, 0x00, 0xbd, 0xe8, 0x04, 0x00, 0x52, 0xe3, 0x03, 0x00, 0x00, 0xba, 0x04, 0x30, 0x80, 0xe4, 0x04, 0x20, 0x42, 0xe2, 0x04, 0x00, 0x52, 0xe3, 0xfb, 0xff, 0xff, 0xaa, 0x00, 0x00, 0x52, 0xe3, 0x01, 0x00, 0xbd, 0x08, 0x0e, 0xf0, 0xa0, 0x01, 0x02, 0x00, 0x52, 0xe3, 0x01, 0x10, 0xc0, 0xe4, 0x01, 0x10, 0xc0, 0xa4, 0x01, 0x10, 0xc0, 0xc4, 0x01, 0x00, 0xbd, 0xe8, 0x0e, 0xf0, 0xa0, 0xe1, 0x00, 0x20, 0xa0, 0xe3, 0x02, 0x39, 0xa0, 0xe3, 0xc2, 0x21, 0x40, 0xe3, 0x00, 0x00, 0xa0, 0xe3, 0x04, 0xe0, 0x2d, 0xe5, 0xf7, 0xe0, 0xa0, 0xe3, 0x00, 0x18, 0x92, 0xe5, 0x0d, 0xc0, 0xa0, 0xe3, 0xc2, 0x31, 0x40, 0xe3, 0x0f, 0x18, 0xc1, 0xe3, 0x02, 0x18, 0x81, 0xe3, 0x00, 0x18, 0x82, 0xe5, 0x00, 0x18, 0x92, 0xe5, 0x0f, 0x16, 0xc1, 0xe3, 0x02, 0x16, 0x81, 0xe3, 0x00, 0x18, 0x82, 0xe5, 0x6c, 0x10, 0x92, 0xe5, 0x01, 0x18, 0x81, 0xe3, 0x6c, 0x10, 0x82, 0xe5, 0xd8, 0x12, 0x92, 0xe5, 0x01, 0x18, 0x81, 0xe3, 0xd8, 0x12, 0x82, 0xe5, 0x04, 0x00, 0x83, 0xe5, 0x08, 0xe0, 0x83, 0xe5, 0x10, 0x00, 0x83, 0xe5, 0x0c, 0x20, 0x93, 0xe5, 0x80, 0x20, 0x82, 0xe3, 0x0c, 0x20, 0x83, 0xe5, 0x00, 0xc0, 0x83, 0xe5, 0x04, 0x00, 0x83, 0xe5, 0x0c, 0x20, 0x93, 0xe5, 0x80, 0x20, 0xc2, 0xe3, 0x0c, 0x20, 0x83, 0xe5, 0x0c, 0x20, 0x93, 0xe5, 0x1f, 0x20, 0xc2, 0xe3, 0x03, 0x20, 0x82, 0xe3, 0x0c, 0x20, 0x83, 0xe5, 0x04, 0xf0, 0x9d, 0xe4, 0x02, 0x29, 0xa0, 0xe3, 0xc2, 0x21, 0x40, 0xe3, 0x7c, 0x30, 0x92, 0xe5, 0x02, 0x00, 0x13, 0xe3, 0xfc, 0xff, 0xff, 0x0a, 0x00, 0x00, 0x82, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x30, 0xa0, 0xe3, 0x02, 0x01, 0x00, 0xe3, 0xc2, 0x31, 0x40, 0xe3, 0x21, 0x1b, 0x01, 0xe3, 0x01, 0x00, 0x40, 0xe3, 0xc8, 0x20, 0xa0, 0xe3, 0x00, 0x10, 0x48, 0xe3, 0x50, 0x00, 0x83, 0xe5, 0x00, 0x10, 0x83, 0xe5, 0x01, 0x20, 0x52, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x02, 0x01, 0x00, 0xe3, 0x11, 0x18, 0x01, 0xe3, 0x02, 0x00, 0x40, 0xe3, 0x03, 0x20, 0xa0, 0xe1, 0x04, 0x10, 0x49, 0xe3, 0x50, 0x00, 0x83, 0xe5, 0x28, 0x10, 0x83, 0xe5, 0x28, 0x30, 0x92, 0xe5, 0x01, 0x02, 0x13, 0xe3, 0xfc, 0xff, 0xff, 0x0a, 0x01, 0x30, 0xa0, 0xe3, 0xc6, 0x1d, 0xa0, 0xe3, 0x00, 0x31, 0x48, 0xe3, 0x54, 0x10, 0x82, 0xe5, 0x5c, 0x31, 0x82, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, 0x04, 0xe0, 0x2d, 0xe5, 0x04, 0x20, 0xa0, 0xe3, 0x05, 0x10, 0xd0, 0xe5, 0x03, 0x30, 0xd0, 0xe5, 0x43, 0x20, 0x40, 0xe3, 0x03, 0x00, 0x51, 0xe3, 0xb0, 0xe0, 0xd0, 0xe1, 0x02, 0xc0, 0xa0, 0x01, 0x02, 0x10, 0xd0, 0xe5, 0x43, 0xc8, 0xa0, 0x13, 0x00, 0x30, 0x53, 0xe2, 0x01, 0x30, 0xa0, 0x13, 0x00, 0x00, 0x5e, 0xe3, 0x01, 0x36, 0x83, 0xe1, 0x19, 0x00, 0x00, 0x0a, 0x0e, 0x18, 0xa0, 0xe1, 0xff, 0x04, 0x11, 0xe3, 0x0e, 0x1c, 0xa0, 0x01, 0x08, 0x20, 0xa0, 0x03, 0x10, 0x20, 0xa0, 0x13, 0x04, 0xe0, 0xa0, 0x03, 0x0c, 0xe0, 0xa0, 0x13, 0x0f, 0x02, 0x11, 0xe3, 0x01, 0x12, 0xa0, 0x01, 0x0e, 0x20, 0xa0, 0x01, 0x03, 0x01, 0x11, 0xe3, 0x01, 0x11, 0xa0, 0x01, 0x02, 0x20, 0x42, 0x02, 0x00, 0x00, 0x51, 0xe3, 0x04, 0x20, 0x42, 0xb2, 0x05, 0x20, 0x42, 0xa2, 0x02, 0x24, 0xa0, 0xe1, 0x04, 0x10, 0xd0, 0xe5, 0x02, 0x0a, 0xa0, 0xe3, 0xc6, 0x01, 0x40, 0xe3, 0x01, 0x10, 0x41, 0xe2, 0x01, 0x32, 0x83, 0xe1, 0x0c, 0x30, 0x83, 0xe1, 0x02, 0x30, 0x83, 0xe1, 0x00, 0x30, 0x80, 0xe5, 0x04, 0xf0, 0x9d, 0xe4, 0x3f, 0x2b, 0xa0, 0xe3, 0xff, 0x2f, 0x4f, 0xe3, 0xf3, 0xff, 0xff, 0xea, 0xf0, 0x4f, 0x2d, 0xe9, 0xc4, 0xd0, 0x4d, 0xe2, 0xb4, 0x4d, 0x9f, 0xe5, 0x24, 0x20, 0xa0, 0xe3, 0x00, 0x10, 0xa0, 0xe3, 0x9c, 0x00, 0x8d, 0xe2, 0x04, 0x40, 0x8f, 0xe0, 0x59, 0xff, 0xff, 0xeb, 0x0f, 0x03, 0x00, 0xe3, 0x01, 0x3a, 0xa0, 0xe3, 0x01, 0x31, 0x40, 0xe3, 0x04, 0x10, 0xa0, 0xe1, 0xb4, 0x04, 0xcd, 0xe1, 0x0c, 0x60, 0x84, 0xe2, 0x40, 0x30, 0x8d, 0xe5, 0x0b, 0x20, 0xa0, 0xe3, 0x46, 0x00, 0x8d, 0xe2, 0x18, 0x50, 0x84, 0xe2, 0x2a, 0xfe, 0xff, 0xeb, 0x06, 0x10, 0xa0, 0xe1, 0x0b, 0x20, 0xa0, 0xe3, 0x51, 0x00, 0x8d, 0xe2, 0x26, 0xfe, 0xff, 0xeb, 0x07, 0x00, 0x94, 0xe8, 0x5c, 0x30, 0x8d, 0xe2, 0x22, 0xc8, 0xa0, 0xe1, 0x03, 0x00, 0xa3, 0xe8, 0xb2, 0x20, 0xc3, 0xe0, 0x06, 0x10, 0xa0, 0xe1, 0x00, 0xc0, 0xc3, 0xe5, 0x67, 0x00, 0x8d, 0xe2, 0x0b, 0x20, 0xa0, 0xe3, 0x1c, 0xfe, 0xff, 0xeb, 0x05, 0x10, 0xa0, 0xe1, 0x0b, 0x20, 0xa0, 0xe3, 0x72, 0x00, 0x8d, 0xe2, 0x18, 0xfe, 0xff, 0xeb, 0x05, 0x10, 0xa0, 0xe1, 0x0b, 0x20, 0xa0, 0xe3, 0x7d, 0x00, 0x8d, 0xe2, 0x14, 0xfe, 0xff, 0xeb, 0x07, 0x00, 0x95, 0xe8, 0x88, 0x30, 0x8d, 0xe2, 0x22, 0xc8, 0xa0, 0xe1, 0x03, 0x00, 0xa3, 0xe8, 0xb2, 0x20, 0xc3, 0xe0, 0x24, 0x10, 0x84, 0xe2, 0x00, 0xc0, 0xc3, 0xe5, 0x0b, 0x20, 0xa0, 0xe3, 0x93, 0x00, 0x8d, 0xe2, 0x0a, 0xfe, 0xff, 0xeb, 0x00, 0x30, 0xa0, 0xe3, 0x0a, 0x20, 0xa0, 0xe3, 0xc2, 0x31, 0x40, 0xe3, 0x5c, 0x11, 0x93, 0xe5, 0x02, 0x11, 0xc1, 0xe3, 0x5c, 0x11, 0x83, 0xe5, 0xfc, 0x10, 0x93, 0xe5, 0x02, 0x11, 0xc1, 0xe3, 0xfc, 0x10, 0x83, 0xe5, 0x60, 0x10, 0x93, 0xe5, 0x01, 0x19, 0xc1, 0xe3, 0x60, 0x10, 0x83, 0xe5, 0xc0, 0x12, 0x93, 0xe5, 0x01, 0x19, 0xc1, 0xe3, 0xc0, 0x12, 0x83, 0xe5, 0x20, 0x10, 0x93, 0xe5, 0x02, 0x11, 0xc1, 0xe3, 0x20, 0x10, 0x83, 0xe5, 0x01, 0x20, 0x52, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0xf4, 0x10, 0x93, 0xe5, 0xfa, 0x2f, 0xa0, 0xe3, 0x02, 0x11, 0xc1, 0xe3, 0xf4, 0x10, 0x83, 0xe5, 0x01, 0x20, 0x52, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x60, 0x22, 0x93, 0xe5, 0x10, 0x00, 0x01, 0xe3, 0x10, 0x00, 0x48, 0xe3, 0x7c, 0x15, 0x01, 0xe3, 0x77, 0x26, 0xc2, 0xe3, 0x0f, 0x28, 0xc2, 0xe3, 0x21, 0x26, 0x82, 0xe3, 0x60, 0x22, 0x83, 0xe5, 0x20, 0x00, 0x83, 0xe5, 0x01, 0x10, 0x51, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0xf4, 0x20, 0x93, 0xe5, 0x03, 0x00, 0xa0, 0xe1, 0x12, 0x17, 0x02, 0xe3, 0x03, 0x26, 0xc2, 0xe3, 0x0f, 0x20, 0xc2, 0xe3, 0x01, 0x28, 0x82, 0xe3, 0xf4, 0x20, 0x83, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x01, 0x10, 0x51, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0xf4, 0x30, 0x90, 0xe5, 0x01, 0x08, 0x13, 0xe3, 0xfa, 0xff, 0xff, 0x1a, 0x00, 0x30, 0xa0, 0xe3, 0x0a, 0x20, 0xa0, 0xe3, 0xc2, 0x31, 0x40, 0xe3, 0xc0, 0x12, 0x93, 0xe5, 0x01, 0x19, 0x81, 0xe3, 0xc0, 0x12, 0x83, 0xe5, 0x60, 0x10, 0x93, 0xe5, 0x01, 0x19, 0x81, 0xe3, 0x60, 0x10, 0x83, 0xe5, 0xfc, 0x10, 0x93, 0xe5, 0x02, 0x11, 0x81, 0xe3, 0xfc, 0x10, 0x83, 0xe5, 0x5c, 0x11, 0x93, 0xe5, 0x02, 0x11, 0x81, 0xe3, 0x5c, 0x11, 0x83, 0xe5, 0xf4, 0x10, 0x93, 0xe5, 0x02, 0x11, 0x81, 0xe3, 0xf4, 0x10, 0x83, 0xe5, 0x01, 0x20, 0x52, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x03, 0x5a, 0xa0, 0xe3, 0x0e, 0x20, 0x0c, 0xe3, 0xc6, 0x51, 0x40, 0xe3, 0x7d, 0x3f, 0xa0, 0xe3, 0x0c, 0x20, 0x85, 0xe5, 0x01, 0x30, 0x53, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x40, 0x40, 0x8d, 0xe2, 0x70, 0x6c, 0x01, 0xe3, 0x04, 0x00, 0xa0, 0xe1, 0x02, 0x81, 0x00, 0xe3, 0x04, 0x82, 0x40, 0xe3, 0x4d, 0xff, 0xff, 0xeb, 0x30, 0x60, 0x85, 0xe5, 0x40, 0x00, 0xa0, 0xe3, 0x34, 0x00, 0x85, 0xe5, 0x18, 0x60, 0xa0, 0xe3, 0x38, 0x60, 0x85, 0xe5, 0x08, 0xe8, 0x01, 0xe3, 0x0b, 0xea, 0x40, 0xe3, 0x0b, 0x34, 0x00, 0xe3, 0x03, 0x30, 0x40, 0xe3, 0x0a, 0xc5, 0x00, 0xe3, 0x06, 0xc4, 0x40, 0xe3, 0x04, 0x14, 0x00, 0xe3, 0x02, 0x14, 0x40, 0xe3, 0x03, 0x24, 0x00, 0xe3, 0x05, 0x25, 0x40, 0xe3, 0x00, 0x00, 0xa0, 0xe3, 0x3c, 0x00, 0x85, 0xe5, 0x0c, 0x60, 0x04, 0xe3, 0x58, 0xe0, 0x85, 0xe5, 0xe1, 0x7c, 0x01, 0xe3, 0x5c, 0x30, 0x85, 0xe5, 0x02, 0x3a, 0xa0, 0xe3, 0x60, 0xc0, 0x85, 0xe5, 0x19, 0xee, 0xa0, 0xe3, 0x64, 0x60, 0x85, 0xe5, 0xc1, 0x6e, 0x03, 0xe3, 0x68, 0x10, 0x85, 0xe5, 0x48, 0xc0, 0xa0, 0xe3, 0x6c, 0x20, 0x85, 0xe5, 0x0d, 0x10, 0xa0, 0xe3, 0x78, 0x20, 0x95, 0xe5, 0x01, 0x9c, 0xa0, 0xe3, 0x33, 0x79, 0x40, 0xe3, 0x22, 0x28, 0xa0, 0xe1, 0x91, 0x69, 0x41, 0xe3, 0x02, 0x28, 0xa0, 0xe1, 0xc6, 0x31, 0x40, 0xe3, 0x66, 0x2c, 0x82, 0xe3, 0x00, 0x12, 0x40, 0xe3, 0x10, 0x20, 0x82, 0xe3, 0x78, 0x20, 0x85, 0xe5, 0x01, 0x20, 0xa0, 0xe3, 0x80, 0x80, 0x85, 0xe5, 0x01, 0x8c, 0xa0, 0xe3, 0x50, 0x70, 0x85, 0xe5, 0x09, 0x70, 0xa0, 0xe3, 0x54, 0x60, 0x85, 0xe5, 0x01, 0x6b, 0xa0, 0xe3, 0x31, 0xc0, 0x40, 0xe3, 0x01, 0xe0, 0x40, 0xe3, 0x80, 0x80, 0x40, 0xe3, 0x00, 0x76, 0x40, 0xe3, 0x00, 0x61, 0x40, 0xe3, 0x90, 0xc0, 0x85, 0xe5, 0x01, 0xcc, 0xa0, 0xe3, 0x90, 0xe0, 0x83, 0xe5, 0x80, 0xe0, 0xa0, 0xe3, 0x98, 0x20, 0x83, 0xe5, 0x0d, 0x20, 0xa0, 0xe3, 0x10, 0x10, 0x83, 0xe5, 0x14, 0x80, 0x83, 0xe5, 0x09, 0x80, 0xa0, 0xe3, 0x18, 0x70, 0x83, 0xe5, 0x19, 0x7d, 0xa0, 0xe3, 0x1c, 0x60, 0x83, 0xe5, 0x09, 0x60, 0xa0, 0xe3, 0x00, 0x21, 0x40, 0xe3, 0x20, 0xe0, 0x40, 0xe3, 0x60, 0xc0, 0x40, 0xe3, 0x00, 0x87, 0x40, 0xe3, 0x00, 0x71, 0x40, 0xe3, 0x00, 0x61, 0x40, 0xe3, 0x20, 0x10, 0x83, 0xe5, 0x80, 0x10, 0xa0, 0xe3, 0x24, 0xc0, 0x83, 0xe5, 0x09, 0xc0, 0xa0, 0xe3, 0x28, 0x20, 0x83, 0xe5, 0x2c, 0xe0, 0x83, 0xe5, 0x30, 0x80, 0x83, 0xe5, 0x0d, 0x83, 0x00, 0xe3, 0x34, 0x70, 0x83, 0xe5, 0xe8, 0x77, 0x01, 0xe3, 0x38, 0x20, 0x83, 0xe5, 0x3c, 0xe0, 0x83, 0xe5, 0xa3, 0xef, 0x06, 0xe3, 0x40, 0x60, 0x83, 0xe5, 0x12, 0x6e, 0xa0, 0xe3, 0x40, 0x10, 0x40, 0xe3, 0x00, 0xc4, 0x40, 0xe3, 0x40, 0x90, 0x40, 0xe3, 0x00, 0x80, 0x42, 0xe3, 0x00, 0x74, 0x40, 0xe3, 0x40, 0x60, 0x40, 0xe3, 0x44, 0x10, 0x83, 0xe5, 0x48, 0x20, 0x83, 0xe5, 0x4c, 0x10, 0x83, 0xe5, 0x50, 0x20, 0x83, 0xe5, 0x54, 0x10, 0x83, 0xe5, 0x64, 0x10, 0xa0, 0xe3, 0x58, 0xc0, 0x83, 0xe5, 0x5c, 0x90, 0x83, 0xe5, 0x60, 0x80, 0x83, 0xe5, 0x64, 0x70, 0x83, 0xe5, 0x68, 0xc0, 0x83, 0xe5, 0x01, 0xc0, 0xa0, 0xe1, 0x6c, 0x60, 0x83, 0xe5, 0x00, 0x21, 0x95, 0xe5, 0xbe, 0xe4, 0x49, 0xe3, 0xfd, 0x21, 0xc2, 0xe3, 0x00, 0x21, 0x85, 0xe5, 0x04, 0x21, 0x95, 0xe5, 0x05, 0x24, 0xc2, 0xe3, 0x01, 0x23, 0x82, 0xe3, 0x04, 0x21, 0x85, 0xe5, 0x00, 0xe8, 0x83, 0xe5, 0x01, 0xc0, 0x5c, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x88, 0x28, 0x95, 0xe5, 0xff, 0x26, 0xc2, 0xe3, 0x0f, 0x28, 0xc2, 0xe3, 0x05, 0x26, 0x82, 0xe3, 0x88, 0x28, 0x85, 0xe5, 0x00, 0x08, 0x83, 0xe5, 0x01, 0x10, 0x51, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x44, 0x23, 0x95, 0xe5, 0xc1, 0x3f, 0x00, 0xe3, 0xff, 0x3f, 0x4f, 0xe3, 0x03, 0x20, 0x02, 0xe0, 0x44, 0x23, 0x85, 0xe5, 0xc4, 0x23, 0x95, 0xe5, 0x03, 0x20, 0x02, 0xe0, 0xc4, 0x23, 0x85, 0xe5, 0x44, 0x24, 0x95, 0xe5, 0x03, 0x20, 0x02, 0xe0, 0x44, 0x24, 0x85, 0xe5, 0xc4, 0x24, 0x95, 0xe5, 0x02, 0x30, 0x03, 0xe0, 0xc4, 0x34, 0x85, 0xe5, 0x08, 0x32, 0x95, 0xe5, 0x02, 0x30, 0x83, 0xe3, 0x08, 0x32, 0x85, 0xe5, 0x08, 0x31, 0x95, 0xe5, 0xc0, 0x30, 0x83, 0xe3, 0x08, 0x31, 0x85, 0xe5, 0x00, 0x31, 0x95, 0xe5, 0x0f, 0x3a, 0xc3, 0xe3, 0x00, 0x31, 0x85, 0xe5, 0x08, 0x31, 0x95, 0xe5, 0x0f, 0x3c, 0xc3, 0xe3, 0x06, 0x3c, 0x83, 0xe3, 0x08, 0x31, 0x85, 0xe5, 0x42, 0x30, 0xdd, 0xe5, 0x00, 0x00, 0x53, 0xe1, 0xa3, 0x0f, 0x0f, 0xe3, 0x44, 0x34, 0x85, 0x05, 0xc4, 0x34, 0x85, 0x05, 0xbc, 0x50, 0x8d, 0xe2, 0x43, 0x30, 0xdd, 0xe5, 0xff, 0x0f, 0x4f, 0xe3, 0x04, 0x30, 0x8d, 0xe5, 0x03, 0x20, 0xa0, 0xe1, 0x04, 0x00, 0x40, 0xe0, 0x03, 0x3a, 0xa0, 0xe3, 0xc6, 0x31, 0x40, 0xe3, 0x00, 0x00, 0x52, 0xe3, 0x01, 0xc4, 0xa0, 0x03, 0x03, 0xc4, 0xa0, 0x13, 0xc0, 0x20, 0x93, 0xe5, 0x03, 0x10, 0xa0, 0xe1, 0x0f, 0x24, 0xc2, 0xe3, 0x0c, 0x20, 0x82, 0xe1, 0xc0, 0x20, 0x83, 0xe5, 0x00, 0x21, 0x93, 0xe5, 0x01, 0x23, 0xc2, 0xe3, 0x00, 0x21, 0x83, 0xe5, 0x9d, 0x20, 0x8d, 0xe2, 0x72, 0xe0, 0xdd, 0xe5, 0x46, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0x10, 0xc3, 0x83, 0xe5, 0x73, 0xe0, 0xdd, 0xe5, 0x47, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0x14, 0xc3, 0x83, 0xe5, 0x74, 0xe0, 0xdd, 0xe5, 0x48, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0x18, 0xc3, 0x83, 0xe5, 0x75, 0xe0, 0xdd, 0xe5, 0x49, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0x1c, 0xc3, 0x83, 0xe5, 0x76, 0xe0, 0xdd, 0xe5, 0x4a, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0x20, 0xc3, 0x83, 0xe5, 0x77, 0xe0, 0xdd, 0xe5, 0x4b, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0x24, 0xc3, 0x83, 0xe5, 0x78, 0xe0, 0xdd, 0xe5, 0x4c, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0x28, 0xc3, 0x83, 0xe5, 0x79, 0xe0, 0xdd, 0xe5, 0x4d, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0x2c, 0xc3, 0x83, 0xe5, 0x7a, 0xe0, 0xdd, 0xe5, 0x4e, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0x30, 0xc3, 0x83, 0xe5, 0x7b, 0xe0, 0xdd, 0xe5, 0x4f, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0x34, 0xc3, 0x83, 0xe5, 0x7c, 0xe0, 0xdd, 0xe5, 0x50, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0x38, 0xc3, 0x83, 0xe5, 0x7d, 0xe0, 0xdd, 0xe5, 0x51, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0x90, 0xc3, 0x83, 0xe5, 0x7e, 0xe0, 0xdd, 0xe5, 0x52, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0x94, 0xc3, 0x83, 0xe5, 0x7f, 0xe0, 0xdd, 0xe5, 0x53, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0x98, 0xc3, 0x83, 0xe5, 0x80, 0xe0, 0xdd, 0xe5, 0x54, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0x9c, 0xc3, 0x83, 0xe5, 0x81, 0xe0, 0xdd, 0xe5, 0x55, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0xa0, 0xc3, 0x83, 0xe5, 0x82, 0xe0, 0xdd, 0xe5, 0x56, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0xa4, 0xc3, 0x83, 0xe5, 0x83, 0xe0, 0xdd, 0xe5, 0x57, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0xa8, 0xc3, 0x83, 0xe5, 0x84, 0xe0, 0xdd, 0xe5, 0x58, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0xac, 0xc3, 0x83, 0xe5, 0x85, 0xe0, 0xdd, 0xe5, 0x59, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0xb0, 0xc3, 0x83, 0xe5, 0x86, 0xe0, 0xdd, 0xe5, 0x5a, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0xb4, 0xc3, 0x83, 0xe5, 0x87, 0xe0, 0xdd, 0xe5, 0x5b, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0xb8, 0xc3, 0x83, 0xe5, 0x88, 0xe0, 0xdd, 0xe5, 0x5c, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0x10, 0xc4, 0x83, 0xe5, 0x89, 0xe0, 0xdd, 0xe5, 0x5d, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0x14, 0xc4, 0x83, 0xe5, 0x8a, 0xe0, 0xdd, 0xe5, 0x5e, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0x18, 0xc4, 0x83, 0xe5, 0x8b, 0xe0, 0xdd, 0xe5, 0x5f, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0x1c, 0xc4, 0x83, 0xe5, 0x8c, 0xe0, 0xdd, 0xe5, 0x60, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0x20, 0xc4, 0x83, 0xe5, 0x8d, 0xe0, 0xdd, 0xe5, 0x61, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0x24, 0xc4, 0x83, 0xe5, 0x8e, 0xe0, 0xdd, 0xe5, 0x62, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0x28, 0xc4, 0x83, 0xe5, 0x8f, 0xe0, 0xdd, 0xe5, 0x63, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0x2c, 0xc4, 0x83, 0xe5, 0x90, 0xe0, 0xdd, 0xe5, 0x64, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0x30, 0xc4, 0x83, 0xe5, 0x91, 0xe0, 0xdd, 0xe5, 0x65, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0x34, 0xc4, 0x83, 0xe5, 0x92, 0xe0, 0xdd, 0xe5, 0x66, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0x38, 0xc4, 0x83, 0xe5, 0x93, 0xe0, 0xdd, 0xe5, 0x67, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0x90, 0xc4, 0x83, 0xe5, 0x94, 0xe0, 0xdd, 0xe5, 0x68, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0x94, 0xc4, 0x83, 0xe5, 0x95, 0xe0, 0xdd, 0xe5, 0x69, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0x98, 0xc4, 0x83, 0xe5, 0x96, 0xe0, 0xdd, 0xe5, 0x6a, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0x9c, 0xc4, 0x83, 0xe5, 0x97, 0xe0, 0xdd, 0xe5, 0x6b, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0xa0, 0xc4, 0x83, 0xe5, 0x98, 0xe0, 0xdd, 0xe5, 0x6c, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0xa4, 0xc4, 0x83, 0xe5, 0x99, 0xe0, 0xdd, 0xe5, 0x6d, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0xa8, 0xc4, 0x83, 0xe5, 0x9a, 0xe0, 0xdd, 0xe5, 0x6e, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0xac, 0xc4, 0x83, 0xe5, 0x9b, 0xe0, 0xdd, 0xe5, 0x6f, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0xb0, 0xc4, 0x83, 0xe5, 0x9c, 0xe0, 0xdd, 0xe5, 0x70, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0xb4, 0xc4, 0x83, 0xe5, 0x9d, 0xe0, 0xdd, 0xe5, 0x71, 0xc0, 0xdd, 0xe5, 0x0e, 0xc4, 0x8c, 0xe1, 0xb8, 0xc4, 0x83, 0xe5, 0x02, 0x30, 0x80, 0xe0, 0x01, 0xc0, 0xf2, 0xe5, 0x84, 0x30, 0x83, 0xe2, 0x02, 0x00, 0x55, 0xe1, 0x0c, 0xc4, 0xa0, 0xe1, 0x03, 0xc1, 0x81, 0xe7, 0xf8, 0xff, 0xff, 0x1a, 0x00, 0x21, 0x91, 0xe5, 0x01, 0x30, 0xa0, 0xe3, 0x01, 0x23, 0x82, 0xe3, 0x00, 0x21, 0x81, 0xe5, 0x01, 0x30, 0x53, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x32, 0x30, 0xa0, 0xe3, 0x01, 0x30, 0x53, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x07, 0x35, 0xa0, 0xe3, 0x24, 0x20, 0x93, 0xe5, 0xff, 0x00, 0x12, 0xe3, 0x02, 0x00, 0x00, 0x1a, 0xf0, 0x30, 0x93, 0xe5, 0x01, 0x00, 0x13, 0xe3, 0x42, 0x01, 0x00, 0x0a, 0x03, 0x2a, 0xa0, 0xe3, 0x16, 0x37, 0x01, 0xe3, 0xc6, 0x21, 0x40, 0xe3, 0x0a, 0x1a, 0x00, 0xe3, 0x14, 0x35, 0x41, 0xe3, 0x06, 0xb7, 0x00, 0xe3, 0x0a, 0x1a, 0x40, 0xe3, 0x0e, 0xaf, 0x00, 0xe3, 0x08, 0x30, 0x8d, 0xe5, 0x02, 0x30, 0xa0, 0xe1, 0x50, 0x11, 0x82, 0xe5, 0x14, 0x20, 0x8d, 0xe2, 0x00, 0x20, 0x8d, 0xe5, 0x08, 0x99, 0x00, 0xe3, 0x0c, 0x40, 0x8d, 0xe5, 0x1e, 0xcf, 0x01, 0xe3, 0x04, 0xb5, 0x40, 0xe3, 0x18, 0x09, 0x01, 0xe3, 0x0c, 0xad, 0x40, 0xe3, 0x10, 0x81, 0x01, 0xe3, 0x0a, 0x9b, 0x40, 0xe3, 0x00, 0x20, 0xa0, 0xe3, 0x1c, 0xcd, 0x41, 0xe3, 0x02, 0x40, 0xa0, 0xe1, 0x1a, 0x0b, 0x41, 0xe3, 0x12, 0x83, 0x41, 0xe3, 0xfb, 0x1b, 0x03, 0xe3, 0x03, 0x50, 0xa0, 0xe3, 0x3b, 0x10, 0x40, 0xe3, 0x12, 0xe7, 0x02, 0xe3, 0x51, 0x14, 0xa0, 0xe1, 0x0f, 0x10, 0x01, 0xe2, 0x01, 0x28, 0xa0, 0xe1, 0x01, 0x2a, 0x82, 0xe1, 0x01, 0x20, 0x82, 0xe1, 0x01, 0x26, 0x82, 0xe1, 0x01, 0x24, 0x82, 0xe1, 0x01, 0x22, 0x82, 0xe1, 0x40, 0x21, 0x83, 0xe5, 0x02, 0x23, 0xa0, 0xe3, 0x00, 0x20, 0x83, 0xe5, 0x00, 0x50, 0x83, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x01, 0xe0, 0x5e, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0x10, 0x20, 0x93, 0xe5, 0x01, 0x00, 0x12, 0xe3, 0xfa, 0xff, 0xff, 0x0a, 0x48, 0x11, 0x93, 0xe5, 0x01, 0x21, 0x00, 0xe3, 0x01, 0x21, 0x40, 0xe3, 0x03, 0xe0, 0xa0, 0xe3, 0x71, 0x10, 0xef, 0xe6, 0x02, 0x53, 0xa0, 0xe3, 0x92, 0x01, 0x02, 0xe0, 0x50, 0x21, 0x83, 0xe5, 0x12, 0x27, 0x02, 0xe3, 0x00, 0x50, 0x83, 0xe5, 0x00, 0xe0, 0x83, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x01, 0x20, 0x52, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0x10, 0xe0, 0x93, 0xe5, 0x01, 0x00, 0x1e, 0xe3, 0xfa, 0xff, 0xff, 0x0a, 0x48, 0x21, 0x93, 0xe5, 0xc0, 0x50, 0x8d, 0xe2, 0x28, 0xa0, 0x8d, 0xe5, 0x01, 0xec, 0xa0, 0xe3, 0x52, 0x2c, 0xe4, 0xe7, 0x0c, 0x7d, 0x00, 0xe3, 0x02, 0x20, 0x85, 0xe0, 0x0a, 0x6b, 0x00, 0xe3, 0x08, 0x50, 0x9d, 0xe5, 0x04, 0x40, 0x84, 0xe2, 0x02, 0xe3, 0x40, 0xe3, 0x18, 0x00, 0x54, 0xe3, 0x3c, 0x50, 0x8d, 0xe5, 0x14, 0x55, 0x01, 0xe3, 0x2c, 0x90, 0x8d, 0xe5, 0x30, 0xc0, 0x8d, 0xe5, 0x34, 0x00, 0x8d, 0xe5, 0x38, 0x80, 0x8d, 0xe5, 0x20, 0xe0, 0x8d, 0xe5, 0xc0, 0xe0, 0x8d, 0xe2, 0x24, 0xb0, 0x8d, 0xe5, 0xa0, 0x20, 0x52, 0xe5, 0x0e, 0x7f, 0x40, 0xe3, 0x08, 0x69, 0x40, 0xe3, 0x01, 0x20, 0x42, 0xe2, 0x16, 0x57, 0x41, 0xe3, 0x12, 0x20, 0xe5, 0xe6, 0x02, 0x20, 0x8e, 0xe0, 0x12, 0xe3, 0x01, 0xe3, 0x10, 0xe1, 0x41, 0xe3, 0x30, 0x00, 0x8d, 0xe5, 0x34, 0xc0, 0x8d, 0xe5, 0x28, 0x70, 0x8d, 0xe5, 0x2c, 0x60, 0x8d, 0xe5, 0x38, 0x50, 0x8d, 0xe5, 0x3c, 0xe0, 0x8d, 0xe5, 0xa0, 0x20, 0x52, 0xe5, 0x02, 0x14, 0x81, 0xe1, 0x00, 0x20, 0x9d, 0xe5, 0xb2, 0x10, 0xc2, 0xe0, 0x00, 0x20, 0x8d, 0xe5, 0xae, 0xff, 0xff, 0x1a, 0x0c, 0x40, 0x9d, 0xe5, 0x14, 0x00, 0x8d, 0xe2, 0x07, 0x00, 0x90, 0xe8, 0x48, 0x01, 0x83, 0xe5, 0x4c, 0x11, 0x83, 0xe5, 0x50, 0x21, 0x83, 0xe5, 0x03, 0x3a, 0xa0, 0xe3, 0xf1, 0x15, 0x00, 0xe3, 0xc6, 0x31, 0x40, 0xe3, 0x12, 0x27, 0x02, 0xe3, 0x00, 0x10, 0x83, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x01, 0x20, 0x52, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0x10, 0x10, 0x93, 0xe5, 0x01, 0x00, 0x11, 0xe3, 0xfa, 0xff, 0xff, 0x0a, 0x03, 0x3a, 0xa0, 0xe3, 0xc6, 0x31, 0x40, 0xe3, 0x10, 0x20, 0x93, 0xe5, 0xfe, 0x06, 0x12, 0xe3, 0x29, 0x00, 0x00, 0x0a, 0x48, 0x23, 0x93, 0xe5, 0x02, 0x04, 0x12, 0xe3, 0xdf, 0x00, 0x00, 0x0a, 0x03, 0x2a, 0xa0, 0xe3, 0x00, 0x10, 0xa0, 0xe3, 0xc6, 0x21, 0x40, 0xe3, 0xc0, 0x30, 0x92, 0xe5, 0x0f, 0x34, 0xc3, 0xe3, 0x01, 0x34, 0x83, 0xe3, 0xc0, 0x30, 0x82, 0xe5, 0x43, 0x10, 0xcd, 0xe5, 0x03, 0x3a, 0xa0, 0xe3, 0xc6, 0x31, 0x40, 0xe3, 0x48, 0x24, 0x93, 0xe5, 0x01, 0x04, 0x12, 0xe3, 0xd6, 0x00, 0x00, 0x1a, 0xc8, 0x34, 0x93, 0xe5, 0x01, 0x04, 0x13, 0xe3, 0xd3, 0x00, 0x00, 0x1a, 0x04, 0x00, 0xa0, 0xe1, 0x3f, 0xfd, 0xff, 0xeb, 0x14, 0x30, 0xa0, 0xe3, 0x01, 0x30, 0x53, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x03, 0x3a, 0xa0, 0xe3, 0x01, 0x14, 0x00, 0xe3, 0xc6, 0x31, 0x40, 0xe3, 0x12, 0x27, 0x02, 0xe3, 0x00, 0x10, 0x83, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x01, 0x20, 0x52, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0x10, 0x10, 0x93, 0xe5, 0x01, 0x00, 0x11, 0xe3, 0xfa, 0xff, 0xff, 0x0a, 0x03, 0x3a, 0xa0, 0xe3, 0xc6, 0x31, 0x40, 0xe3, 0x10, 0x30, 0x93, 0xe5, 0xfe, 0x06, 0x13, 0xe3, 0xc5, 0x00, 0x00, 0x1a, 0x43, 0x30, 0xdd, 0xe5, 0x04, 0x30, 0x8d, 0xe5, 0x03, 0x2a, 0xa0, 0xe3, 0x12, 0x37, 0x02, 0xe3, 0xc6, 0x21, 0x40, 0xe3, 0x01, 0x00, 0x00, 0xea, 0x01, 0x30, 0x53, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0x18, 0x10, 0x92, 0xe5, 0x01, 0x00, 0x11, 0xe3, 0xfa, 0xff, 0xff, 0x0a, 0x03, 0x3a, 0xa0, 0xe3, 0x0a, 0x20, 0xa0, 0xe3, 0xc6, 0x31, 0x40, 0xe3, 0x02, 0x00, 0xa0, 0xe1, 0x8c, 0x10, 0x93, 0xe5, 0x02, 0x11, 0x81, 0xe3, 0x8c, 0x10, 0x83, 0xe5, 0x01, 0x00, 0x50, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x8c, 0x10, 0x93, 0xe5, 0x02, 0x11, 0xc1, 0xe3, 0x8c, 0x10, 0x83, 0xe5, 0x01, 0x20, 0x52, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x04, 0x00, 0x9d, 0xe5, 0x60, 0x20, 0xa0, 0xe3, 0xaa, 0x20, 0x40, 0xe3, 0x02, 0x1a, 0xa0, 0xe3, 0x0c, 0x21, 0x83, 0xe5, 0x00, 0x00, 0x50, 0xe3, 0x40, 0x21, 0x93, 0xe5, 0x00, 0x00, 0xe0, 0xe3, 0xc6, 0x11, 0x40, 0xe3, 0x02, 0x21, 0x82, 0xe3, 0x40, 0x21, 0x83, 0xe5, 0x03, 0x23, 0x00, 0x13, 0x94, 0x00, 0x81, 0xe5, 0x01, 0x22, 0x00, 0x03, 0x20, 0x21, 0x83, 0xe5, 0x01, 0x30, 0xa0, 0xe3, 0x01, 0x30, 0x53, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x03, 0x1a, 0xa0, 0xe3, 0x02, 0x2a, 0xa0, 0xe3, 0xc6, 0x21, 0x40, 0xe3, 0x01, 0x0b, 0xa0, 0xe3, 0xc6, 0x11, 0x40, 0xe3, 0x0a, 0x30, 0xa0, 0xe3, 0x00, 0x0c, 0x40, 0xe3, 0x7c, 0x00, 0x81, 0xe5, 0xd0, 0x10, 0x92, 0xe5, 0x02, 0x11, 0x81, 0xe3, 0xd0, 0x10, 0x82, 0xe5, 0x01, 0x30, 0x53, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x02, 0x2c, 0xa0, 0xe3, 0x21, 0x3e, 0xa0, 0xe3, 0xb0, 0x24, 0xcd, 0xe1, 0x04, 0x00, 0xa0, 0xe1, 0xb4, 0x34, 0xcd, 0xe1, 0xee, 0xfc, 0xff, 0xeb, 0x0b, 0x20, 0xa0, 0xe3, 0x55, 0xca, 0x0a, 0xe3, 0x55, 0xca, 0x4a, 0xe3, 0x02, 0x30, 0xa0, 0xe1, 0x44, 0x20, 0xcd, 0xe5, 0x01, 0x01, 0xa0, 0xe3, 0x00, 0xe0, 0xa0, 0xe3, 0x05, 0x00, 0x00, 0xea, 0x44, 0x30, 0xdd, 0xe5, 0x01, 0x30, 0x83, 0xe2, 0x73, 0x30, 0xef, 0xe6, 0x44, 0x30, 0xcd, 0xe5, 0x0f, 0x00, 0x53, 0xe3, 0x0b, 0x00, 0x00, 0x8a, 0x45, 0x10, 0xdd, 0xe5, 0xb0, 0x24, 0xdd, 0xe1, 0x03, 0x30, 0x81, 0xe0, 0x00, 0xe0, 0x80, 0xe5, 0x12, 0x33, 0xa0, 0xe1, 0x01, 0x31, 0x83, 0xe2, 0x00, 0xc0, 0x83, 0xe5, 0x4f, 0xf0, 0x7f, 0xf5, 0x00, 0x20, 0x90, 0xe5, 0x00, 0x30, 0x93, 0xe5, 0x03, 0x00, 0x52, 0xe1, 0xed, 0xff, 0xff, 0x1a, 0x03, 0x30, 0xa0, 0xe3, 0x04, 0x00, 0xa0, 0xe1, 0x45, 0x30, 0xcd, 0xe5, 0xd0, 0xfc, 0xff, 0xeb, 0x02, 0x30, 0xa0, 0xe3, 0x55, 0x0a, 0x0a, 0xe3, 0x55, 0x0a, 0x4a, 0xe3, 0x01, 0x11, 0xa0, 0xe3, 0x45, 0x30, 0xcd, 0xe5, 0x00, 0xc0, 0xa0, 0xe3, 0x05, 0x00, 0x00, 0xea, 0x45, 0x30, 0xdd, 0xe5, 0x01, 0x30, 0x83, 0xe2, 0x73, 0x30, 0xef, 0xe6, 0x45, 0x30, 0xcd, 0xe5, 0x02, 0x00, 0x53, 0xe3, 0x09, 0x00, 0x00, 0x8a, 0xb0, 0x24, 0xdd, 0xe1, 0x00, 0xc0, 0x81, 0xe5, 0x12, 0x33, 0xa0, 0xe1, 0x01, 0x31, 0x83, 0xe2, 0x00, 0x00, 0x83, 0xe5, 0x4f, 0xf0, 0x7f, 0xf5, 0x00, 0x20, 0x91, 0xe5, 0x00, 0x30, 0x93, 0xe5, 0x03, 0x00, 0x52, 0xe1, 0xef, 0xff, 0xff, 0x1a, 0x02, 0x3a, 0xa0, 0xe3, 0x04, 0x00, 0xa0, 0xe1, 0xb0, 0x34, 0xcd, 0xe1, 0xb5, 0xfc, 0xff, 0xeb, 0x02, 0x3c, 0xa0, 0xe3, 0x55, 0x1a, 0x0a, 0xe3, 0x55, 0x1a, 0x4a, 0xe3, 0x01, 0x21, 0xa0, 0xe3, 0xb0, 0x34, 0xcd, 0xe1, 0x00, 0xc0, 0xa0, 0xe3, 0x05, 0x00, 0x00, 0xea, 0xb0, 0x34, 0xdd, 0xe1, 0x83, 0x30, 0xa0, 0xe1, 0x73, 0x30, 0xff, 0xe6, 0xb0, 0x34, 0xcd, 0xe1, 0x02, 0x0a, 0x53, 0xe3, 0x07, 0x00, 0x00, 0x2a, 0x00, 0xc0, 0x82, 0xe5, 0x01, 0x31, 0x83, 0xe2, 0x00, 0x10, 0x83, 0xe5, 0x4f, 0xf0, 0x7f, 0xf5, 0x00, 0x00, 0x92, 0xe5, 0x00, 0x30, 0x93, 0xe5, 0x03, 0x00, 0x50, 0xe1, 0xf1, 0xff, 0xff, 0x1a, 0x04, 0x00, 0xa0, 0xe1, 0x9e, 0xfc, 0xff, 0xeb, 0x44, 0x30, 0xdd, 0xe5, 0x45, 0x20, 0xdd, 0xe5, 0x43, 0x10, 0xdd, 0xe5, 0x02, 0x20, 0x83, 0xe0, 0xb0, 0x34, 0xdd, 0xe1, 0x00, 0x00, 0x51, 0xe3, 0x13, 0x32, 0xa0, 0xe1, 0x00, 0x20, 0xa0, 0xe3, 0x83, 0x30, 0xa0, 0x11, 0x20, 0x30, 0x82, 0xe5, 0xc4, 0xd0, 0x8d, 0xe2, 0xf0, 0x8f, 0xbd, 0xe8, 0x40, 0x31, 0x91, 0xe5, 0x02, 0xc3, 0xa0, 0xe3, 0x03, 0x20, 0xa0, 0xe3, 0x03, 0x0a, 0xa0, 0xe3, 0x23, 0x38, 0xa0, 0xe1, 0xc6, 0x01, 0x40, 0xe3, 0x03, 0x38, 0xa0, 0xe1, 0xef, 0x3d, 0x83, 0xe3, 0x3b, 0x30, 0x83, 0xe3, 0x40, 0x31, 0x81, 0xe5, 0x12, 0x37, 0x02, 0xe3, 0x00, 0xc0, 0x81, 0xe5, 0x00, 0x20, 0x81, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x01, 0x30, 0x53, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0x10, 0x20, 0x90, 0xe5, 0x01, 0x00, 0x12, 0xe3, 0xfa, 0xff, 0xff, 0x0a, 0x03, 0x2a, 0xa0, 0xe3, 0x1f, 0x00, 0xa0, 0xe3, 0xc6, 0x21, 0x40, 0xe3, 0x1f, 0x00, 0x40, 0xe3, 0x48, 0x11, 0x92, 0xe5, 0x00, 0x10, 0x01, 0xe0, 0x01, 0x14, 0x81, 0xe1, 0x48, 0x11, 0x82, 0xe5, 0x4c, 0x31, 0x92, 0xe5, 0x00, 0x30, 0x03, 0xe0, 0x03, 0x34, 0x83, 0xe1, 0x4c, 0x31, 0x82, 0xe5, 0x50, 0x31, 0x82, 0xe5, 0x0c, 0xff, 0xff, 0xea, 0xc8, 0x33, 0x93, 0xe5, 0x02, 0x04, 0x13, 0xe3, 0x24, 0xff, 0xff, 0x0a, 0x1b, 0xff, 0xff, 0xea, 0x03, 0x2a, 0xa0, 0xe3, 0x00, 0x30, 0xa0, 0xe3, 0xc6, 0x21, 0x40, 0xe3, 0x44, 0x34, 0x82, 0xe5, 0xc4, 0x34, 0x82, 0xe5, 0x42, 0x30, 0xcd, 0xe5, 0x24, 0xff, 0xff, 0xea, 0x00, 0x30, 0xa0, 0xe3, 0x20, 0x30, 0x83, 0xe5, 0xc4, 0xd0, 0x8d, 0xe2, 0xf0, 0x8f, 0xbd, 0xe8, 0xd8, 0x0d, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x4e, 0x55, 0x00, 0x52, 0xdf, 0x2d, 0xe1, 0x2a, 0x53, 0xde, 0xf9, 0x38, 0xf3, 0x42, 0x9f, 0xed, 0x86, 0x0a, 0x0d, 0x77, 0x7e, 0x97, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x00, 0x00, 0x00, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x2f, 0x6c, 0x69, 0x62, 0x2f, 0x6c, 0x64, 0x2d, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x2d, 0x61, 0x72, 0x6d, 0x68, 0x66, 0x2e, 0x73, 0x6f, 0x2e, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0xfe, 0xff, 0x6f, 0xcc, 0x95, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xc8, 0x95, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb8, 0x95, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xfb, 0xff, 0xff, 0x6f, 0x01, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; if(type) { if(strcmp(type, "h2") == 0) { fel_write(ctx, 0x00008000, (void *)&h2_payload[0], sizeof(h2_payload)); fel_exec(ctx, 0x00008000); return 1; } else if(strcmp(type, "h3") == 0) { fel_write(ctx, 0x00008000, (void *)&h3_payload[0], sizeof(h3_payload)); fel_exec(ctx, 0x00008000); return 1; } } printf("usage:\r\n"); printf(" xfel ddr h2 - Initial h2 ddr controller\r\n"); printf(" xfel ddr h3 - Initial h3 ddr controller\r\n"); return 0; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { static const uint8_t payload[] = { 0xff, 0xff, 0xff, 0xea, 0x40, 0x00, 0xa0, 0xe3, 0x00, 0xd0, 0x80, 0xe5, 0x04, 0xe0, 0x80, 0xe5, 0x00, 0xe0, 0x0f, 0xe1, 0x08, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x0c, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x1c, 0xee, 0x10, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x14, 0xe0, 0x80, 0xe5, 0x09, 0x0a, 0xa0, 0xe3, 0x7c, 0x00, 0x00, 0xeb, 0x40, 0x00, 0xa0, 0xe3, 0x00, 0xd0, 0x90, 0xe5, 0x04, 0xe0, 0x90, 0xe5, 0x14, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x10, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x0c, 0xee, 0x0c, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x08, 0x10, 0x90, 0xe5, 0x01, 0xf0, 0x29, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0xf0, 0x40, 0x2d, 0xe9, 0x00, 0x50, 0x51, 0xe2, 0xf0, 0x80, 0xbd, 0x08, 0x02, 0x19, 0xa0, 0xe3, 0x82, 0x6c, 0xa0, 0xe3, 0xc6, 0x11, 0x40, 0xe3, 0x83, 0x4c, 0xa0, 0xe3, 0xc6, 0x61, 0x40, 0xe3, 0x00, 0x70, 0xe0, 0xe3, 0xc6, 0x41, 0x40, 0xe3, 0x40, 0x00, 0x55, 0xe3, 0x00, 0x30, 0xa0, 0xe3, 0x07, 0xc0, 0xa0, 0xe1, 0x05, 0x20, 0xa0, 0x31, 0x40, 0x20, 0xa0, 0x23, 0x30, 0x20, 0x81, 0xe5, 0x34, 0x20, 0x81, 0xe5, 0x38, 0x20, 0x81, 0xe5, 0x00, 0xc0, 0xc6, 0xe5, 0x01, 0x30, 0x83, 0xe2, 0x03, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0xca, 0x08, 0x30, 0x91, 0xe5, 0x02, 0x31, 0x83, 0xe3, 0x08, 0x30, 0x81, 0xe5, 0x08, 0x30, 0x91, 0xe5, 0x00, 0x00, 0x53, 0xe3, 0xfc, 0xff, 0xff, 0xba, 0x1c, 0x30, 0x91, 0xe5, 0x73, 0x30, 0xef, 0xe6, 0x03, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x8a, 0x00, 0x30, 0xa0, 0xe3, 0x00, 0xe0, 0xd4, 0xe5, 0x00, 0x00, 0x50, 0xe3, 0x00, 0xc0, 0xa0, 0xe1, 0x01, 0x30, 0x83, 0xe2, 0x7e, 0xe0, 0xef, 0xe6, 0x06, 0x00, 0x00, 0x0a, 0x03, 0x00, 0x52, 0xe1, 0x01, 0xe0, 0xcc, 0xe4, 0x0c, 0x00, 0xa0, 0xe1, 0xf5, 0xff, 0xff, 0xca, 0x02, 0x50, 0x55, 0xe0, 0xdc, 0xff, 0xff, 0x1a, 0xf0, 0x80, 0xbd, 0xe8, 0x03, 0x00, 0x52, 0xe1, 0x01, 0xc0, 0x83, 0xe2, 0x02, 0x30, 0x83, 0xe2, 0xf8, 0xff, 0xff, 0xda, 0x0c, 0x00, 0x52, 0xe1, 0x00, 0xc0, 0xd4, 0xe5, 0xf5, 0xff, 0xff, 0xda, 0x03, 0x00, 0x52, 0xe1, 0x00, 0xc0, 0xd4, 0xe5, 0x01, 0xc0, 0x83, 0xe2, 0x02, 0x30, 0x83, 0xe2, 0xf7, 0xff, 0xff, 0xca, 0x02, 0x50, 0x55, 0xe0, 0xcd, 0xff, 0xff, 0x1a, 0xf0, 0x80, 0xbd, 0xe8, 0xf0, 0x40, 0x2d, 0xe9, 0x00, 0x60, 0x51, 0xe2, 0xf0, 0x80, 0xbd, 0x08, 0x02, 0x19, 0xa0, 0xe3, 0x82, 0x5c, 0xa0, 0xe3, 0xc6, 0x11, 0x40, 0xe3, 0x83, 0x4c, 0xa0, 0xe3, 0xc6, 0x51, 0x40, 0xe3, 0x00, 0x70, 0xe0, 0xe3, 0xc6, 0x41, 0x40, 0xe3, 0x40, 0x00, 0x56, 0xe3, 0x06, 0x20, 0xa0, 0x31, 0x40, 0x20, 0xa0, 0x23, 0x30, 0x20, 0x81, 0xe5, 0x00, 0x00, 0x50, 0xe3, 0x34, 0x20, 0x81, 0xe5, 0x38, 0x20, 0x81, 0xe5, 0x1a, 0x00, 0x00, 0x0a, 0x00, 0xc0, 0xa0, 0xe1, 0x00, 0x30, 0xa0, 0xe3, 0x01, 0xe0, 0xdc, 0xe4, 0x01, 0x30, 0x83, 0xe2, 0x03, 0x00, 0x52, 0xe1, 0x00, 0xe0, 0xc5, 0xe5, 0xfa, 0xff, 0xff, 0xca, 0x08, 0x30, 0x91, 0xe5, 0x02, 0x31, 0x83, 0xe3, 0x08, 0x30, 0x81, 0xe5, 0x08, 0x30, 0x91, 0xe5, 0x00, 0x00, 0x53, 0xe3, 0xfc, 0xff, 0xff, 0xba, 0x1c, 0x30, 0x91, 0xe5, 0x73, 0x30, 0xef, 0xe6, 0x03, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x8a, 0x00, 0x30, 0xa0, 0xe3, 0x00, 0xc0, 0xd4, 0xe5, 0x01, 0x30, 0x83, 0xe2, 0x03, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0xca, 0x00, 0x00, 0x50, 0xe3, 0x02, 0x00, 0x80, 0x10, 0x02, 0x60, 0x56, 0xe0, 0xdd, 0xff, 0xff, 0x1a, 0xf0, 0x80, 0xbd, 0xe8, 0x00, 0x30, 0xa0, 0xe1, 0x07, 0xc0, 0xa0, 0xe1, 0x00, 0xc0, 0xc5, 0xe5, 0x01, 0x30, 0x83, 0xe2, 0x03, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0xca, 0xe4, 0xff, 0xff, 0xea, 0xf0, 0x43, 0x2d, 0xe9, 0x0f, 0x80, 0x0c, 0xe3, 0xff, 0x8f, 0x4f, 0xe3, 0x02, 0x69, 0xa0, 0xe3, 0xc6, 0x61, 0x40, 0xe3, 0x00, 0x40, 0xa0, 0xe3, 0xc2, 0x41, 0x40, 0xe3, 0x14, 0xd0, 0x4d, 0xe2, 0x00, 0x70, 0xa0, 0xe1, 0x07, 0x50, 0xa0, 0xe1, 0x01, 0x30, 0xd5, 0xe4, 0x01, 0x00, 0x53, 0xe3, 0x1e, 0x00, 0x00, 0x0a, 0x02, 0x00, 0x53, 0xe3, 0x53, 0x00, 0x00, 0x0a, 0x03, 0x00, 0x53, 0xe3, 0x56, 0x00, 0x00, 0x0a, 0x04, 0x00, 0x53, 0xe3, 0x5a, 0x00, 0x00, 0x0a, 0x05, 0x00, 0x53, 0xe3, 0x5f, 0x00, 0x00, 0x0a, 0x06, 0x00, 0x53, 0xe3, 0x6e, 0x00, 0x00, 0x0a, 0x07, 0x00, 0x53, 0xe3, 0x7d, 0x00, 0x00, 0x0a, 0x08, 0x00, 0x53, 0xe3, 0x8a, 0x00, 0x00, 0x1a, 0xb0, 0x80, 0xcd, 0xe1, 0x0d, 0x90, 0xa0, 0xe1, 0x08, 0x70, 0x8d, 0xe2, 0x02, 0x10, 0xa0, 0xe3, 0x09, 0x00, 0xa0, 0xe1, 0xaa, 0xff, 0xff, 0xeb, 0x01, 0x10, 0xa0, 0xe3, 0x07, 0x00, 0xa0, 0xe1, 0x6a, 0xff, 0xff, 0xeb, 0x08, 0x30, 0xdd, 0xe5, 0x01, 0x00, 0x13, 0xe3, 0xf6, 0xff, 0xff, 0x1a, 0x05, 0x70, 0xa0, 0xe1, 0x07, 0x50, 0xa0, 0xe1, 0x01, 0x30, 0xd5, 0xe4, 0x01, 0x00, 0x53, 0xe3, 0xe0, 0xff, 0xff, 0x1a, 0x48, 0x38, 0x94, 0xe5, 0x01, 0x2a, 0xa0, 0xe3, 0x0f, 0x30, 0xc3, 0xe3, 0x03, 0x30, 0x83, 0xe3, 0x48, 0x38, 0x84, 0xe5, 0x48, 0x38, 0x94, 0xe5, 0xf0, 0x30, 0xc3, 0xe3, 0x30, 0x30, 0x83, 0xe3, 0x48, 0x38, 0x84, 0xe5, 0x48, 0x38, 0x94, 0xe5, 0x0f, 0x3c, 0xc3, 0xe3, 0x03, 0x3c, 0x83, 0xe3, 0x48, 0x38, 0x84, 0xe5, 0x48, 0x38, 0x94, 0xe5, 0x0f, 0x3a, 0xc3, 0xe3, 0x03, 0x3a, 0x83, 0xe3, 0x48, 0x38, 0x84, 0xe5, 0xc0, 0x32, 0x94, 0xe5, 0x01, 0x36, 0x83, 0xe3, 0xc0, 0x32, 0x84, 0xe5, 0xa0, 0x30, 0x94, 0xe5, 0x02, 0x31, 0x83, 0xe3, 0xa0, 0x30, 0x84, 0xe5, 0x60, 0x30, 0x94, 0xe5, 0x01, 0x36, 0x83, 0xe3, 0x60, 0x30, 0x84, 0xe5, 0xa0, 0x30, 0x94, 0xe5, 0x03, 0x34, 0xc3, 0xe3, 0x01, 0x34, 0x83, 0xe3, 0xa0, 0x30, 0x84, 0xe5, 0xa0, 0x30, 0x94, 0xe5, 0x03, 0x38, 0xc3, 0xe3, 0xa0, 0x30, 0x84, 0xe5, 0xa0, 0x30, 0x94, 0xe5, 0x0f, 0x30, 0xc3, 0xe3, 0x05, 0x30, 0x83, 0xe3, 0xa0, 0x30, 0x84, 0xe5, 0x24, 0x20, 0x86, 0xe5, 0x04, 0x30, 0x96, 0xe5, 0x02, 0x31, 0x83, 0xe3, 0x83, 0x30, 0x83, 0xe3, 0x04, 0x30, 0x86, 0xe5, 0x04, 0x30, 0x96, 0xe5, 0x00, 0x00, 0x53, 0xe3, 0xfc, 0xff, 0xff, 0xba, 0x08, 0x30, 0x96, 0xe5, 0x05, 0x70, 0xa0, 0xe1, 0x03, 0x30, 0xc3, 0xe3, 0x44, 0x30, 0x83, 0xe3, 0x08, 0x30, 0x86, 0xe5, 0x18, 0x30, 0x96, 0xe5, 0x02, 0x31, 0x83, 0xe3, 0x02, 0x39, 0x83, 0xe3, 0x18, 0x30, 0x86, 0xe5, 0xa5, 0xff, 0xff, 0xea, 0x08, 0x30, 0x96, 0xe5, 0x05, 0x70, 0xa0, 0xe1, 0xb0, 0x30, 0xc3, 0xe3, 0x08, 0x30, 0x86, 0xe5, 0xa0, 0xff, 0xff, 0xea, 0x08, 0x30, 0x96, 0xe5, 0x05, 0x70, 0xa0, 0xe1, 0xb0, 0x30, 0xc3, 0xe3, 0x80, 0x30, 0x83, 0xe3, 0x08, 0x30, 0x86, 0xe5, 0x9a, 0xff, 0xff, 0xea, 0x01, 0x90, 0xd7, 0xe5, 0x02, 0x00, 0x87, 0xe2, 0x09, 0x10, 0xa0, 0xe1, 0x01, 0x70, 0x89, 0xe2, 0x07, 0x70, 0x85, 0xe0, 0x57, 0xff, 0xff, 0xeb, 0x93, 0xff, 0xff, 0xea, 0x06, 0x10, 0xd7, 0xe5, 0x09, 0x70, 0x87, 0xe2, 0x07, 0x00, 0x57, 0xe5, 0x04, 0x20, 0x57, 0xe5, 0x08, 0x30, 0x57, 0xe5, 0x02, 0xe0, 0x57, 0xe5, 0x06, 0xc0, 0x57, 0xe5, 0x01, 0x24, 0x82, 0xe1, 0x00, 0x34, 0x83, 0xe1, 0x01, 0x10, 0x57, 0xe5, 0x05, 0x00, 0x57, 0xe5, 0x0e, 0x28, 0x82, 0xe1, 0x0c, 0x38, 0x83, 0xe1, 0x01, 0x1c, 0x82, 0xe1, 0x00, 0x0c, 0x83, 0xe1, 0x46, 0xff, 0xff, 0xeb, 0x82, 0xff, 0xff, 0xea, 0x06, 0x10, 0xd7, 0xe5, 0x09, 0x70, 0x87, 0xe2, 0x07, 0x00, 0x57, 0xe5, 0x04, 0x20, 0x57, 0xe5, 0x08, 0x30, 0x57, 0xe5, 0x02, 0xe0, 0x57, 0xe5, 0x06, 0xc0, 0x57, 0xe5, 0x01, 0x24, 0x82, 0xe1, 0x00, 0x34, 0x83, 0xe1, 0x01, 0x10, 0x57, 0xe5, 0x05, 0x00, 0x57, 0xe5, 0x0e, 0x28, 0x82, 0xe1, 0x0c, 0x38, 0x83, 0xe1, 0x01, 0x1c, 0x82, 0xe1, 0x00, 0x0c, 0x83, 0xe1, 0xf8, 0xfe, 0xff, 0xeb, 0x71, 0xff, 0xff, 0xea, 0x0d, 0x90, 0xa0, 0xe1, 0x08, 0x70, 0x8d, 0xe2, 0x05, 0x30, 0xa0, 0xe3, 0x00, 0x30, 0xcd, 0xe5, 0x01, 0x10, 0xa0, 0xe3, 0x09, 0x00, 0xa0, 0xe1, 0x2d, 0xff, 0xff, 0xeb, 0x01, 0x10, 0xa0, 0xe3, 0x07, 0x00, 0xa0, 0xe1, 0xed, 0xfe, 0xff, 0xeb, 0x08, 0x30, 0xdd, 0xe5, 0x01, 0x00, 0x13, 0xe3, 0xf6, 0xff, 0xff, 0x1a, 0x05, 0x70, 0xa0, 0xe1, 0x81, 0xff, 0xff, 0xea, 0x14, 0xd0, 0x8d, 0xe2, 0xf0, 0x83, 0xbd, 0xe8, 0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x4e, 0x55, 0x00, 0x89, 0x4f, 0xb3, 0xca, 0xe0, 0xdc, 0x25, 0x96, 0xd3, 0xb0, 0xa9, 0xb1, 0x5f, 0x41, 0x72, 0x84, 0x27, 0x2e, 0x3f, 0x4d, 0x2f, 0x6c, 0x69, 0x62, 0x2f, 0x6c, 0x64, 0x2d, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x2d, 0x61, 0x72, 0x6d, 0x68, 0x66, 0x2e, 0x73, 0x6f, 0x2e, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0xfe, 0xff, 0x6f, 0x20, 0x85, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x1c, 0x85, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0c, 0x85, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xfb, 0xff, 0xff, 0x6f, 0x01, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; fel_write(ctx, 0x00008000, (void *)&payload[0], sizeof(payload)); if(swapbuf) *swapbuf = 0x0000a000; if(swaplen) *swaplen = 16384; if(cmdlen) *cmdlen = 4096; return 1; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { fel_write(ctx, 0x00009000, (void *)cbuf, clen); fel_exec(ctx, 0x00008000); return 1; } static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { return 0; } struct chip_t h2_h3 = { .name = "H2/H3", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/chips/h5.c000066400000000000000000000016451512120643700142530ustar00rootroot00000000000000#include static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00171800) return 1; return 0; } static int chip_reset(struct xfel_ctx_t * ctx) { return 0; } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { return 0; } static int chip_jtag(struct xfel_ctx_t * ctx) { return 0; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { return 0; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { return 0; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { return 0; } static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { return 0; } struct chip_t h5 = { .name = "H5", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/chips/h6.c000066400000000000000000000016451512120643700142540ustar00rootroot00000000000000#include static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00172800) return 1; return 0; } static int chip_reset(struct xfel_ctx_t * ctx) { return 0; } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { return 0; } static int chip_jtag(struct xfel_ctx_t * ctx) { return 0; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { return 0; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { return 0; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { return 0; } static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { return 0; } struct chip_t h6 = { .name = "H6", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/chips/h616.c000066400000000000000000007542141512120643700144320ustar00rootroot00000000000000#include static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00182300) return 1; return 0; } static int chip_reset(struct xfel_ctx_t * ctx) { return 0; } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { return 0; } static int chip_jtag(struct xfel_ctx_t * ctx) { return 0; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { static const uint8_t lpddr4_payload[] = { 0xBE, 0x02, 0x00, 0xEA, 0x65, 0x47, 0x4F, 0x4E, 0x2E, 0x42, 0x54, 0x30, 0x39, 0x6C, 0x0A, 0x5F, 0x20, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x33, 0x30, 0x30, 0x30, 0x40, 0x83, 0x02, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x2E, 0x30, 0x2E, 0x30, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x08, 0x04, 0x01, 0x01, 0x00, 0x00, 0x00, 0x02, 0x09, 0x04, 0x01, 0x01, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x02, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x03, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x04, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x05, 0x02, 0x01, 0x02, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x52, 0x41, 0x4D, 0x2E, 0x65, 0x78, 0x74, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0xEA, 0x65, 0x47, 0x4F, 0x4E, 0x2E, 0x42, 0x54, 0x30, 0x78, 0x56, 0x34, 0x12, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x33, 0x30, 0x30, 0x30, 0x00, 0x00, 0x02, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x2E, 0x30, 0x00, 0x00, 0x00, 0x0F, 0xE1, 0x1F, 0x00, 0xC0, 0xE3, 0x13, 0x00, 0x80, 0xE3, 0xC0, 0x00, 0x80, 0xE3, 0x02, 0x0C, 0xC0, 0xE3, 0x00, 0xF0, 0x21, 0xE1, 0x10, 0x0F, 0x11, 0xEE, 0x02, 0x0A, 0xC0, 0xE3, 0x07, 0x00, 0xC0, 0xE3, 0x02, 0x0B, 0x80, 0xE3, 0x01, 0x0A, 0xC0, 0xE3, 0x10, 0x0F, 0x01, 0xEE, 0x16, 0xD9, 0xA0, 0xE3, 0x09, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x0F, 0xE1, 0x1F, 0x10, 0x00, 0xE2, 0x1A, 0x00, 0x31, 0xE3, 0x1F, 0x00, 0xC0, 0x13, 0x13, 0x00, 0x80, 0x13, 0xC0, 0x00, 0x80, 0xE3, 0x00, 0xF0, 0x29, 0xE1, 0x20, 0x00, 0x9F, 0xE5, 0x10, 0x0F, 0x0E, 0xEE, 0xA0, 0x1B, 0x00, 0xFA, 0x18, 0x00, 0x9F, 0xE5, 0x18, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x04, 0x00, 0xA0, 0xE8, 0x01, 0x00, 0x50, 0xE1, 0xFC, 0xFF, 0xFF, 0xBA, 0x0E, 0xF0, 0xA0, 0xE1, 0x00, 0x36, 0x6E, 0x01, 0x50, 0x1E, 0x05, 0x00, 0xD8, 0x1E, 0x05, 0x00, 0x5F, 0xF0, 0x7F, 0xF5, 0x30, 0x0F, 0x30, 0xEE, 0xA0, 0x3B, 0xA0, 0xE1, 0x0E, 0x30, 0x13, 0xE2, 0x1C, 0x00, 0x00, 0x0A, 0x00, 0xA0, 0xA0, 0xE3, 0xAA, 0x20, 0x8A, 0xE0, 0x30, 0x12, 0xA0, 0xE1, 0x07, 0x10, 0x01, 0xE2, 0x02, 0x00, 0x51, 0xE3, 0x13, 0x00, 0x00, 0xBA, 0x10, 0xAF, 0x40, 0xEE, 0x6F, 0xF0, 0x7F, 0xF5, 0x10, 0x1F, 0x30, 0xEE, 0x07, 0x20, 0x01, 0xE2, 0x04, 0x20, 0x82, 0xE2, 0xFF, 0x43, 0x00, 0xE3, 0xA1, 0x41, 0x14, 0xE0, 0x14, 0x5F, 0x6F, 0xE1, 0xFF, 0x7F, 0x07, 0xE3, 0xA1, 0x76, 0x17, 0xE0, 0x07, 0x90, 0xA0, 0xE1, 0x14, 0x65, 0xA0, 0xE1, 0x06, 0xB0, 0x8A, 0xE1, 0x19, 0x62, 0xA0, 0xE1, 0x06, 0xB0, 0x8B, 0xE1, 0x5E, 0xBF, 0x07, 0xEE, 0x01, 0x90, 0x59, 0xE2, 0xF8, 0xFF, 0xFF, 0xAA, 0x01, 0x40, 0x54, 0xE2, 0xF5, 0xFF, 0xFF, 0xAA, 0x02, 0xA0, 0x8A, 0xE2, 0x0A, 0x00, 0x53, 0xE1, 0xE3, 0xFF, 0xFF, 0xCA, 0x00, 0xA0, 0xA0, 0xE3, 0x10, 0xAF, 0x40, 0xEE, 0x4E, 0xF0, 0x7F, 0xF5, 0x6F, 0xF0, 0x7F, 0xF5, 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x4E, 0x2D, 0xE9, 0xD6, 0xFF, 0xFF, 0xEB, 0xF0, 0x4E, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0x20, 0x52, 0xE2, 0x2C, 0x00, 0x00, 0xBA, 0x02, 0x00, 0x53, 0xE3, 0x01, 0x10, 0xC0, 0xB4, 0x01, 0x10, 0xC0, 0xD4, 0x01, 0x10, 0xC0, 0xE4, 0x03, 0x20, 0x82, 0xE0, 0x03, 0x30, 0x10, 0xE2, 0xF6, 0xFF, 0xFF, 0x1A, 0x01, 0x14, 0x81, 0xE1, 0x01, 0x18, 0x81, 0xE1, 0x01, 0x30, 0xA0, 0xE1, 0x10, 0x00, 0x52, 0xE3, 0x1C, 0x00, 0x00, 0xBA, 0xF0, 0x40, 0x2D, 0xE9, 0x01, 0x40, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x01, 0x60, 0xA0, 0xE1, 0x01, 0x70, 0xA0, 0xE1, 0x01, 0xC0, 0xA0, 0xE1, 0x01, 0xE0, 0xA0, 0xE1, 0x60, 0x00, 0x52, 0xE3, 0x1F, 0x00, 0x10, 0xC3, 0x08, 0x00, 0x00, 0xDA, 0x1F, 0xC0, 0x00, 0xE2, 0x20, 0xC0, 0x6C, 0xE2, 0x0C, 0x20, 0x42, 0xE0, 0x0C, 0xCE, 0xB0, 0xE1, 0xF0, 0x00, 0xA0, 0x28, 0x30, 0x00, 0xA0, 0x48, 0x01, 0x01, 0x1C, 0xE3, 0x01, 0xC0, 0xA0, 0xE1, 0x04, 0x10, 0x80, 0x14, 0x40, 0x20, 0x52, 0xE2, 0xFA, 0x50, 0xA0, 0xA8, 0xFA, 0x50, 0xA0, 0xA8, 0xFB, 0xFF, 0xFF, 0xCA, 0xF0, 0x80, 0xBD, 0x08, 0x20, 0x00, 0x12, 0xE3, 0xFA, 0x50, 0xA0, 0x18, 0x10, 0x00, 0x12, 0xE3, 0xF0, 0x00, 0xA0, 0x18, 0xF0, 0x40, 0xBD, 0xE8, 0x08, 0x00, 0x12, 0xE3, 0x0A, 0x00, 0xA0, 0x18, 0x04, 0x00, 0x12, 0xE3, 0x04, 0x10, 0x80, 0x14, 0x02, 0x00, 0x12, 0xE3, 0x01, 0x10, 0xC0, 0x14, 0x01, 0x10, 0xC0, 0x14, 0x01, 0x00, 0x12, 0xE3, 0x01, 0x10, 0xC0, 0x14, 0x3E, 0xFF, 0x2F, 0xE1, 0x01, 0x00, 0x50, 0xE1, 0x0E, 0xF0, 0xA0, 0x01, 0x11, 0x40, 0x2D, 0xE9, 0x04, 0x20, 0x52, 0xE2, 0x33, 0x00, 0x00, 0xBA, 0x03, 0xC0, 0x10, 0xE2, 0x00, 0xF0, 0xD1, 0xF5, 0x39, 0x00, 0x00, 0x1A, 0x03, 0xC0, 0x11, 0xE2, 0x43, 0x00, 0x00, 0x1A, 0x1C, 0x20, 0x52, 0xE2, 0xE0, 0x01, 0x2D, 0xE9, 0x13, 0x00, 0x00, 0xBA, 0x1F, 0xC0, 0x10, 0xE2, 0x20, 0x30, 0x6C, 0xE2, 0x02, 0x40, 0xD3, 0x10, 0x03, 0x00, 0x00, 0x2A, 0x48, 0x40, 0x8F, 0xE2, 0x03, 0x20, 0x52, 0xE0, 0x0C, 0xF0, 0x84, 0xE0, 0x00, 0xF0, 0xD1, 0xF5, 0x60, 0x20, 0x52, 0xE2, 0x1C, 0xF0, 0xD1, 0xF5, 0x02, 0x00, 0x00, 0xBA, 0x3C, 0xF0, 0xD1, 0xF5, 0x5C, 0xF0, 0xD1, 0xF5, 0x7C, 0xF0, 0xD1, 0xF5, 0xF8, 0x51, 0xB1, 0xE8, 0x20, 0x20, 0x52, 0xE2, 0xF8, 0x51, 0xA0, 0xE8, 0xFA, 0xFF, 0xFF, 0xAA, 0x60, 0x00, 0x72, 0xE3, 0xF9, 0xFF, 0xFF, 0xAA, 0x1C, 0xC0, 0x12, 0xE2, 0x20, 0xC0, 0x6C, 0xE2, 0x0C, 0xF0, 0x8F, 0x10, 0x12, 0x00, 0x00, 0xEA, 0x00, 0xF0, 0x20, 0xE3, 0x04, 0x30, 0x91, 0xE4, 0x04, 0x40, 0x91, 0xE4, 0x04, 0x50, 0x91, 0xE4, 0x04, 0x60, 0x91, 0xE4, 0x04, 0x70, 0x91, 0xE4, 0x04, 0x80, 0x91, 0xE4, 0x04, 0xE0, 0x91, 0xE4, 0x0C, 0xF0, 0x8F, 0xE0, 0x00, 0xF0, 0x20, 0xE3, 0x00, 0xF0, 0x20, 0xE3, 0x04, 0x30, 0x80, 0xE4, 0x04, 0x40, 0x80, 0xE4, 0x04, 0x50, 0x80, 0xE4, 0x04, 0x60, 0x80, 0xE4, 0x04, 0x70, 0x80, 0xE4, 0x04, 0x80, 0x80, 0xE4, 0x04, 0xE0, 0x80, 0xE4, 0xDC, 0xFF, 0xFF, 0x2A, 0xE0, 0x01, 0xBD, 0xE8, 0x82, 0x2F, 0xB0, 0xE1, 0x01, 0x30, 0xD1, 0x14, 0x01, 0x40, 0xD1, 0x24, 0x01, 0xC0, 0xD1, 0x24, 0x01, 0x30, 0xC0, 0x14, 0x01, 0x40, 0xC0, 0x24, 0x01, 0xC0, 0xC0, 0x24, 0x11, 0x40, 0xBD, 0xE8, 0x3E, 0xFF, 0x2F, 0xE1, 0x04, 0xC0, 0x6C, 0xE2, 0x02, 0x00, 0x5C, 0xE3, 0x01, 0x30, 0xD1, 0xC4, 0x01, 0x40, 0xD1, 0xA4, 0x01, 0xE0, 0xD1, 0xE4, 0x01, 0x30, 0xC0, 0xC4, 0x01, 0x40, 0xC0, 0xA4, 0x0C, 0x20, 0x52, 0xE0, 0x01, 0xE0, 0xC0, 0xE4, 0xEC, 0xFF, 0xFF, 0xBA, 0x03, 0xC0, 0x11, 0xE2, 0xBB, 0xFF, 0xFF, 0x0A, 0x03, 0x10, 0xC1, 0xE3, 0x02, 0x00, 0x5C, 0xE3, 0x04, 0xE0, 0x91, 0xE4, 0x33, 0x00, 0x00, 0x0A, 0x65, 0x00, 0x00, 0xCA, 0x1C, 0x20, 0x52, 0xE2, 0x24, 0x00, 0x00, 0xBA, 0x1F, 0xC0, 0x10, 0xE2, 0x20, 0xC0, 0x6C, 0xE2, 0x02, 0x40, 0xDC, 0x10, 0x0C, 0x20, 0x42, 0x30, 0x21, 0x00, 0x00, 0x3A, 0xE0, 0x03, 0x2D, 0xE9, 0x00, 0xF0, 0xD1, 0xF5, 0x60, 0x20, 0x52, 0xE2, 0x1C, 0xF0, 0xD1, 0xF5, 0x02, 0x00, 0x00, 0xBA, 0x3C, 0xF0, 0xD1, 0xF5, 0x5C, 0xF0, 0xD1, 0xF5, 0x7C, 0xF0, 0xD1, 0xF5, 0xF0, 0x00, 0xB1, 0xE8, 0x2E, 0x34, 0xA0, 0xE1, 0x20, 0x20, 0x52, 0xE2, 0x00, 0x53, 0xB1, 0xE8, 0x04, 0x3C, 0x83, 0xE1, 0x24, 0x44, 0xA0, 0xE1, 0x05, 0x4C, 0x84, 0xE1, 0x25, 0x54, 0xA0, 0xE1, 0x06, 0x5C, 0x85, 0xE1, 0x26, 0x64, 0xA0, 0xE1, 0x07, 0x6C, 0x86, 0xE1, 0x27, 0x74, 0xA0, 0xE1, 0x08, 0x7C, 0x87, 0xE1, 0x28, 0x84, 0xA0, 0xE1, 0x09, 0x8C, 0x88, 0xE1, 0x29, 0x94, 0xA0, 0xE1, 0x0C, 0x9C, 0x89, 0xE1, 0x2C, 0xC4, 0xA0, 0xE1, 0x0E, 0xCC, 0x8C, 0xE1, 0xF8, 0x13, 0xA0, 0xE8, 0xE9, 0xFF, 0xFF, 0xAA, 0x60, 0x00, 0x72, 0xE3, 0xE8, 0xFF, 0xFF, 0xAA, 0xE0, 0x03, 0xBD, 0xE8, 0x1C, 0xC0, 0x12, 0xE2, 0x07, 0x00, 0x00, 0x0A, 0x2E, 0x34, 0xA0, 0xE1, 0x04, 0xE0, 0x91, 0xE4, 0x04, 0xC0, 0x5C, 0xE2, 0x0E, 0x3C, 0x83, 0xE1, 0x04, 0x30, 0x80, 0xE4, 0xF9, 0xFF, 0xFF, 0xCA, 0x00, 0x00, 0x52, 0xE3, 0xD5, 0xFF, 0xFF, 0xAA, 0x03, 0x10, 0x41, 0xE2, 0xB2, 0xFF, 0xFF, 0xEA, 0x1C, 0x20, 0x52, 0xE2, 0x24, 0x00, 0x00, 0xBA, 0x1F, 0xC0, 0x10, 0xE2, 0x20, 0xC0, 0x6C, 0xE2, 0x02, 0x40, 0xDC, 0x10, 0x0C, 0x20, 0x42, 0x30, 0x21, 0x00, 0x00, 0x3A, 0xE0, 0x03, 0x2D, 0xE9, 0x00, 0xF0, 0xD1, 0xF5, 0x60, 0x20, 0x52, 0xE2, 0x1C, 0xF0, 0xD1, 0xF5, 0x02, 0x00, 0x00, 0xBA, 0x3C, 0xF0, 0xD1, 0xF5, 0x5C, 0xF0, 0xD1, 0xF5, 0x7C, 0xF0, 0xD1, 0xF5, 0xF0, 0x00, 0xB1, 0xE8, 0x2E, 0x38, 0xA0, 0xE1, 0x20, 0x20, 0x52, 0xE2, 0x00, 0x53, 0xB1, 0xE8, 0x04, 0x38, 0x83, 0xE1, 0x24, 0x48, 0xA0, 0xE1, 0x05, 0x48, 0x84, 0xE1, 0x25, 0x58, 0xA0, 0xE1, 0x06, 0x58, 0x85, 0xE1, 0x26, 0x68, 0xA0, 0xE1, 0x07, 0x68, 0x86, 0xE1, 0x27, 0x78, 0xA0, 0xE1, 0x08, 0x78, 0x87, 0xE1, 0x28, 0x88, 0xA0, 0xE1, 0x09, 0x88, 0x88, 0xE1, 0x29, 0x98, 0xA0, 0xE1, 0x0C, 0x98, 0x89, 0xE1, 0x2C, 0xC8, 0xA0, 0xE1, 0x0E, 0xC8, 0x8C, 0xE1, 0xF8, 0x13, 0xA0, 0xE8, 0xE9, 0xFF, 0xFF, 0xAA, 0x60, 0x00, 0x72, 0xE3, 0xE8, 0xFF, 0xFF, 0xAA, 0xE0, 0x03, 0xBD, 0xE8, 0x1C, 0xC0, 0x12, 0xE2, 0x07, 0x00, 0x00, 0x0A, 0x2E, 0x38, 0xA0, 0xE1, 0x04, 0xE0, 0x91, 0xE4, 0x04, 0xC0, 0x5C, 0xE2, 0x0E, 0x38, 0x83, 0xE1, 0x04, 0x30, 0x80, 0xE4, 0xF9, 0xFF, 0xFF, 0xCA, 0x00, 0x00, 0x52, 0xE3, 0xD5, 0xFF, 0xFF, 0xAA, 0x02, 0x10, 0x41, 0xE2, 0x7F, 0xFF, 0xFF, 0xEA, 0x1C, 0x20, 0x52, 0xE2, 0x24, 0x00, 0x00, 0xBA, 0x1F, 0xC0, 0x10, 0xE2, 0x20, 0xC0, 0x6C, 0xE2, 0x02, 0x40, 0xDC, 0x10, 0x0C, 0x20, 0x42, 0x30, 0x21, 0x00, 0x00, 0x3A, 0xE0, 0x03, 0x2D, 0xE9, 0x00, 0xF0, 0xD1, 0xF5, 0x60, 0x20, 0x52, 0xE2, 0x1C, 0xF0, 0xD1, 0xF5, 0x02, 0x00, 0x00, 0xBA, 0x3C, 0xF0, 0xD1, 0xF5, 0x5C, 0xF0, 0xD1, 0xF5, 0x7C, 0xF0, 0xD1, 0xF5, 0xF0, 0x00, 0xB1, 0xE8, 0x2E, 0x3C, 0xA0, 0xE1, 0x20, 0x20, 0x52, 0xE2, 0x00, 0x53, 0xB1, 0xE8, 0x04, 0x34, 0x83, 0xE1, 0x24, 0x4C, 0xA0, 0xE1, 0x05, 0x44, 0x84, 0xE1, 0x25, 0x5C, 0xA0, 0xE1, 0x06, 0x54, 0x85, 0xE1, 0x26, 0x6C, 0xA0, 0xE1, 0x07, 0x64, 0x86, 0xE1, 0x27, 0x7C, 0xA0, 0xE1, 0x08, 0x74, 0x87, 0xE1, 0x28, 0x8C, 0xA0, 0xE1, 0x09, 0x84, 0x88, 0xE1, 0x29, 0x9C, 0xA0, 0xE1, 0x0C, 0x94, 0x89, 0xE1, 0x2C, 0xCC, 0xA0, 0xE1, 0x0E, 0xC4, 0x8C, 0xE1, 0xF8, 0x13, 0xA0, 0xE8, 0xE9, 0xFF, 0xFF, 0xAA, 0x60, 0x00, 0x72, 0xE3, 0xE8, 0xFF, 0xFF, 0xAA, 0xE0, 0x03, 0xBD, 0xE8, 0x1C, 0xC0, 0x12, 0xE2, 0x07, 0x00, 0x00, 0x0A, 0x2E, 0x3C, 0xA0, 0xE1, 0x04, 0xE0, 0x91, 0xE4, 0x04, 0xC0, 0x5C, 0xE2, 0x0E, 0x34, 0x83, 0xE1, 0x04, 0x30, 0x80, 0xE4, 0xF9, 0xFF, 0xFF, 0xCA, 0x00, 0x00, 0x52, 0xE3, 0xD5, 0xFF, 0xFF, 0xAA, 0x01, 0x10, 0x41, 0xE2, 0x4C, 0xFF, 0xFF, 0xEA, 0x70, 0x00, 0x60, 0xE1, 0x0E, 0xF0, 0xA0, 0xE1, 0x70, 0x00, 0x60, 0xE1, 0x0E, 0xF0, 0xA0, 0xE1, 0xF8, 0x5F, 0x2D, 0xE9, 0x50, 0xC2, 0x9F, 0xE5, 0x9C, 0x02, 0x02, 0xE0, 0x01, 0x20, 0x82, 0xE2, 0x02, 0x30, 0xA0, 0xE1, 0x40, 0xC2, 0x9F, 0xE5, 0x9C, 0x02, 0x02, 0xE0, 0x01, 0x20, 0x82, 0xE2, 0x02, 0x40, 0xA0, 0xE1, 0x30, 0xC2, 0x9F, 0xE5, 0x9C, 0x02, 0x02, 0xE0, 0x01, 0x20, 0x82, 0xE2, 0x02, 0x50, 0xA0, 0xE1, 0x20, 0xC2, 0x9F, 0xE5, 0x9C, 0x02, 0x02, 0xE0, 0x01, 0x20, 0x82, 0xE2, 0x02, 0x60, 0xA0, 0xE1, 0x10, 0xC2, 0x9F, 0xE5, 0x9C, 0x02, 0x02, 0xE0, 0x01, 0x20, 0x82, 0xE2, 0x02, 0x70, 0xA0, 0xE1, 0x00, 0xC2, 0x9F, 0xE5, 0x9C, 0x02, 0x02, 0xE0, 0x01, 0x20, 0x82, 0xE2, 0x02, 0x80, 0xA0, 0xE1, 0xF0, 0xC1, 0x9F, 0xE5, 0x9C, 0x02, 0x02, 0xE0, 0x01, 0x20, 0x82, 0xE2, 0x02, 0x90, 0xA0, 0xE1, 0xE0, 0xC1, 0x9F, 0xE5, 0x9C, 0x02, 0x02, 0xE0, 0x01, 0x20, 0x82, 0xE2, 0x02, 0xA0, 0xA0, 0xE1, 0xF8, 0x07, 0xA0, 0xE8, 0x01, 0x00, 0x50, 0xE1, 0xDC, 0xFF, 0xFF, 0x1A, 0xF8, 0x9F, 0xBD, 0xE8, 0x51, 0x0F, 0x11, 0xEE, 0x03, 0x0B, 0x80, 0xE3, 0x51, 0x0F, 0x01, 0xEE, 0x0F, 0x06, 0xA0, 0xE3, 0x50, 0x0F, 0x01, 0xEE, 0x01, 0x31, 0xA0, 0xE3, 0x10, 0x3A, 0xE8, 0xEE, 0x1E, 0xFF, 0x2F, 0xE1, 0xF8, 0x5F, 0x2D, 0xE9, 0x00, 0x20, 0x82, 0xE0, 0x10, 0x0B, 0xB0, 0xEC, 0x10, 0x8B, 0xB1, 0xEC, 0x58, 0x01, 0x40, 0xF3, 0x5A, 0x21, 0x42, 0xF3, 0x5C, 0x41, 0x44, 0xF3, 0x5E, 0x61, 0x46, 0xF3, 0xF2, 0x81, 0x60, 0xF2, 0xF4, 0xA1, 0x66, 0xF2, 0xFA, 0xC1, 0x68, 0xF2, 0xBD, 0xE1, 0x6C, 0xF2, 0x3E, 0x4B, 0x55, 0xEC, 0x05, 0x60, 0x84, 0xE1, 0x00, 0x00, 0x56, 0xE3, 0x03, 0x00, 0x00, 0x1A, 0x02, 0x00, 0x50, 0xE1, 0xEF, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0xA0, 0xE3, 0xF8, 0x9F, 0xBD, 0xE8, 0x06, 0x00, 0xA0, 0xE1, 0xF8, 0x9F, 0xBD, 0xE8, 0xF8, 0x5F, 0x2D, 0xE9, 0x02, 0x30, 0xE0, 0xE1, 0x02, 0x40, 0xA0, 0xE1, 0x02, 0x50, 0xE0, 0xE1, 0x10, 0x3B, 0x42, 0xEC, 0x11, 0x5B, 0x44, 0xEC, 0x50, 0x21, 0x20, 0xF2, 0x50, 0x41, 0x20, 0xF2, 0x50, 0x61, 0x20, 0xF2, 0x50, 0x81, 0x20, 0xF2, 0x50, 0xA1, 0x20, 0xF2, 0x50, 0xC1, 0x20, 0xF2, 0x50, 0xE1, 0x20, 0xF2, 0x20, 0x0B, 0xA0, 0xEC, 0x20, 0x0B, 0xA0, 0xEC, 0x20, 0x0B, 0xA0, 0xEC, 0x20, 0x0B, 0xA0, 0xEC, 0x20, 0x0B, 0xA0, 0xEC, 0x20, 0x0B, 0xA0, 0xEC, 0x20, 0x0B, 0xA0, 0xEC, 0x20, 0x0B, 0xA0, 0xEC, 0x20, 0x0B, 0xA0, 0xEC, 0x20, 0x0B, 0xA0, 0xEC, 0x20, 0x0B, 0xA0, 0xEC, 0x20, 0x0B, 0xA0, 0xEC, 0x20, 0x0B, 0xA0, 0xEC, 0x20, 0x0B, 0xA0, 0xEC, 0x20, 0x0B, 0xA0, 0xEC, 0x20, 0x0B, 0xA0, 0xEC, 0x01, 0x00, 0x50, 0xE1, 0xED, 0xFF, 0xFF, 0x1A, 0xF8, 0x9F, 0xBD, 0xE8, 0xF0, 0x5F, 0x2D, 0xE9, 0x02, 0x40, 0xA0, 0xE1, 0x03, 0x50, 0xA0, 0xE1, 0x10, 0x3B, 0x42, 0xEC, 0x11, 0x5B, 0x44, 0xEC, 0x50, 0x21, 0x20, 0xF2, 0x50, 0x41, 0x20, 0xF2, 0x50, 0x61, 0x20, 0xF2, 0x50, 0x81, 0x20, 0xF2, 0x50, 0xA1, 0x20, 0xF2, 0x50, 0xC1, 0x20, 0xF2, 0x50, 0xE1, 0x20, 0xF2, 0x20, 0x0B, 0xA0, 0xEC, 0x20, 0x0B, 0xA0, 0xEC, 0x20, 0x0B, 0xA0, 0xEC, 0x20, 0x0B, 0xA0, 0xEC, 0x20, 0x0B, 0xA0, 0xEC, 0x20, 0x0B, 0xA0, 0xEC, 0x20, 0x0B, 0xA0, 0xEC, 0x20, 0x0B, 0xA0, 0xEC, 0x20, 0x0B, 0xA0, 0xEC, 0x20, 0x0B, 0xA0, 0xEC, 0x20, 0x0B, 0xA0, 0xEC, 0x20, 0x0B, 0xA0, 0xEC, 0x20, 0x0B, 0xA0, 0xEC, 0x20, 0x0B, 0xA0, 0xEC, 0x20, 0x0B, 0xA0, 0xEC, 0x20, 0x0B, 0xA0, 0xEC, 0x01, 0x00, 0x50, 0xE1, 0xED, 0xFF, 0xFF, 0x1A, 0xF0, 0x9F, 0xBD, 0xE8, 0xF8, 0x5F, 0x2D, 0xE9, 0x00, 0x20, 0x82, 0xE0, 0x20, 0x0B, 0xB0, 0xEC, 0x20, 0x0B, 0xA1, 0xEC, 0x20, 0x0B, 0xB0, 0xEC, 0x20, 0x0B, 0xA1, 0xEC, 0x20, 0x0B, 0xB0, 0xEC, 0x20, 0x0B, 0xA1, 0xEC, 0x20, 0x0B, 0xB0, 0xEC, 0x20, 0x0B, 0xA1, 0xEC, 0x20, 0x0B, 0xB0, 0xEC, 0x20, 0x0B, 0xA1, 0xEC, 0x20, 0x0B, 0xB0, 0xEC, 0x20, 0x0B, 0xA1, 0xEC, 0x20, 0x0B, 0xB0, 0xEC, 0x20, 0x0B, 0xA1, 0xEC, 0x20, 0x0B, 0xB0, 0xEC, 0x20, 0x0B, 0xA1, 0xEC, 0x02, 0x00, 0x50, 0xE1, 0xED, 0xFF, 0xFF, 0x1A, 0xF8, 0x9F, 0xBD, 0xE8, 0x35, 0x4E, 0x5A, 0x01, 0x4A, 0x1E, 0x08, 0xBF, 0x70, 0x47, 0xC0, 0xF0, 0x24, 0x81, 0x88, 0x42, 0x40, 0xF2, 0x16, 0x81, 0x11, 0x42, 0x00, 0xF0, 0x17, 0x81, 0xB0, 0xFA, 0x80, 0xF3, 0xB1, 0xFA, 0x81, 0xF2, 0xA2, 0xEB, 0x03, 0x03, 0xC3, 0xF1, 0x1F, 0x03, 0x04, 0xA2, 0x02, 0xEB, 0x03, 0x13, 0x4F, 0xF0, 0x00, 0x02, 0x9F, 0x46, 0x00, 0xBF, 0xAF, 0xF3, 0x00, 0x80, 0xB0, 0xEB, 0xC1, 0x7F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0xC1, 0x70, 0xB0, 0xEB, 0x81, 0x7F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0x81, 0x70, 0xB0, 0xEB, 0x41, 0x7F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0x41, 0x70, 0xB0, 0xEB, 0x01, 0x7F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0x01, 0x70, 0xB0, 0xEB, 0xC1, 0x6F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0xC1, 0x60, 0xB0, 0xEB, 0x81, 0x6F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0x81, 0x60, 0xB0, 0xEB, 0x41, 0x6F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0x41, 0x60, 0xB0, 0xEB, 0x01, 0x6F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0x01, 0x60, 0xB0, 0xEB, 0xC1, 0x5F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0xC1, 0x50, 0xB0, 0xEB, 0x81, 0x5F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0x81, 0x50, 0xB0, 0xEB, 0x41, 0x5F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0x41, 0x50, 0xB0, 0xEB, 0x01, 0x5F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0x01, 0x50, 0xB0, 0xEB, 0xC1, 0x4F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0xC1, 0x40, 0xB0, 0xEB, 0x81, 0x4F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0x81, 0x40, 0xB0, 0xEB, 0x41, 0x4F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0x41, 0x40, 0xB0, 0xEB, 0x01, 0x4F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0x01, 0x40, 0xB0, 0xEB, 0xC1, 0x3F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0xC1, 0x30, 0xB0, 0xEB, 0x81, 0x3F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0x81, 0x30, 0xB0, 0xEB, 0x41, 0x3F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0x41, 0x30, 0xB0, 0xEB, 0x01, 0x3F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0x01, 0x30, 0xB0, 0xEB, 0xC1, 0x2F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0xC1, 0x20, 0xB0, 0xEB, 0x81, 0x2F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0x81, 0x20, 0xB0, 0xEB, 0x41, 0x2F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0x41, 0x20, 0xB0, 0xEB, 0x01, 0x2F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0x01, 0x20, 0xB0, 0xEB, 0xC1, 0x1F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0xC1, 0x10, 0xB0, 0xEB, 0x81, 0x1F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0x81, 0x10, 0xB0, 0xEB, 0x41, 0x1F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0x41, 0x10, 0xB0, 0xEB, 0x01, 0x1F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0x01, 0x10, 0xB0, 0xEB, 0xC1, 0x0F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0xC1, 0x00, 0xB0, 0xEB, 0x81, 0x0F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0x81, 0x00, 0xB0, 0xEB, 0x41, 0x0F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0x41, 0x00, 0xB0, 0xEB, 0x01, 0x0F, 0x00, 0xBF, 0x42, 0xEB, 0x02, 0x02, 0x28, 0xBF, 0xA0, 0xEB, 0x01, 0x00, 0x10, 0x46, 0x70, 0x47, 0x0C, 0xBF, 0x01, 0x20, 0x00, 0x20, 0x70, 0x47, 0xB1, 0xFA, 0x81, 0xF2, 0xC2, 0xF1, 0x1F, 0x02, 0x20, 0xFA, 0x02, 0xF0, 0x70, 0x47, 0x08, 0xB1, 0x4F, 0xF0, 0xFF, 0x30, 0x00, 0xF0, 0x66, 0xB9, 0x00, 0x29, 0xF8, 0xD0, 0x2D, 0xE9, 0x03, 0x40, 0xFF, 0xF7, 0xCC, 0xFE, 0xBD, 0xE8, 0x06, 0x40, 0x02, 0xFB, 0x00, 0xF3, 0xA1, 0xEB, 0x03, 0x01, 0x70, 0x47, 0x00, 0xBF, 0x00, 0x29, 0x00, 0xF0, 0x3E, 0x81, 0x80, 0xEA, 0x01, 0x0C, 0x48, 0xBF, 0x49, 0x42, 0x4A, 0x1E, 0x00, 0xF0, 0x1F, 0x81, 0x03, 0x00, 0x48, 0xBF, 0x43, 0x42, 0x8B, 0x42, 0x40, 0xF2, 0x1E, 0x81, 0x11, 0x42, 0x00, 0xF0, 0x23, 0x81, 0xB3, 0xFA, 0x83, 0xF2, 0xB1, 0xFA, 0x81, 0xF0, 0xA0, 0xEB, 0x02, 0x02, 0xC2, 0xF1, 0x1F, 0x02, 0x04, 0xA0, 0x00, 0xEB, 0x02, 0x12, 0x4F, 0xF0, 0x00, 0x00, 0x97, 0x46, 0x00, 0xBF, 0xAF, 0xF3, 0x00, 0x80, 0xB3, 0xEB, 0xC1, 0x7F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0xC1, 0x73, 0xB3, 0xEB, 0x81, 0x7F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0x81, 0x73, 0xB3, 0xEB, 0x41, 0x7F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0x41, 0x73, 0xB3, 0xEB, 0x01, 0x7F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0x01, 0x73, 0xB3, 0xEB, 0xC1, 0x6F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0xC1, 0x63, 0xB3, 0xEB, 0x81, 0x6F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0x81, 0x63, 0xB3, 0xEB, 0x41, 0x6F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0x41, 0x63, 0xB3, 0xEB, 0x01, 0x6F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0x01, 0x63, 0xB3, 0xEB, 0xC1, 0x5F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0xC1, 0x53, 0xB3, 0xEB, 0x81, 0x5F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0x81, 0x53, 0xB3, 0xEB, 0x41, 0x5F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0x41, 0x53, 0xB3, 0xEB, 0x01, 0x5F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0x01, 0x53, 0xB3, 0xEB, 0xC1, 0x4F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0xC1, 0x43, 0xB3, 0xEB, 0x81, 0x4F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0x81, 0x43, 0xB3, 0xEB, 0x41, 0x4F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0x41, 0x43, 0xB3, 0xEB, 0x01, 0x4F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0x01, 0x43, 0xB3, 0xEB, 0xC1, 0x3F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0xC1, 0x33, 0xB3, 0xEB, 0x81, 0x3F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0x81, 0x33, 0xB3, 0xEB, 0x41, 0x3F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0x41, 0x33, 0xB3, 0xEB, 0x01, 0x3F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0x01, 0x33, 0xB3, 0xEB, 0xC1, 0x2F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0xC1, 0x23, 0xB3, 0xEB, 0x81, 0x2F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0x81, 0x23, 0xB3, 0xEB, 0x41, 0x2F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0x41, 0x23, 0xB3, 0xEB, 0x01, 0x2F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0x01, 0x23, 0xB3, 0xEB, 0xC1, 0x1F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0xC1, 0x13, 0xB3, 0xEB, 0x81, 0x1F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0x81, 0x13, 0xB3, 0xEB, 0x41, 0x1F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0x41, 0x13, 0xB3, 0xEB, 0x01, 0x1F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0x01, 0x13, 0xB3, 0xEB, 0xC1, 0x0F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0xC1, 0x03, 0xB3, 0xEB, 0x81, 0x0F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0x81, 0x03, 0xB3, 0xEB, 0x41, 0x0F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0x41, 0x03, 0xB3, 0xEB, 0x01, 0x0F, 0x00, 0xBF, 0x40, 0xEB, 0x00, 0x00, 0x28, 0xBF, 0xA3, 0xEB, 0x01, 0x03, 0xBC, 0xF1, 0x00, 0x0F, 0x48, 0xBF, 0x40, 0x42, 0x70, 0x47, 0x9C, 0xEA, 0x00, 0x0F, 0x48, 0xBF, 0x40, 0x42, 0x70, 0x47, 0x38, 0xBF, 0x00, 0x20, 0x04, 0xBF, 0x4F, 0xEA, 0xEC, 0x70, 0x40, 0xF0, 0x01, 0x00, 0x70, 0x47, 0xB1, 0xFA, 0x81, 0xF2, 0xC2, 0xF1, 0x1F, 0x02, 0xBC, 0xF1, 0x00, 0x0F, 0x23, 0xFA, 0x02, 0xF0, 0x48, 0xBF, 0x40, 0x42, 0x70, 0x47, 0x00, 0x28, 0xC8, 0xBF, 0x6F, 0xF0, 0x00, 0x40, 0xB8, 0xBF, 0x4F, 0xF0, 0x00, 0x40, 0x00, 0xF0, 0x0E, 0xB8, 0x00, 0x29, 0xF4, 0xD0, 0x2D, 0xE9, 0x03, 0x40, 0xFF, 0xF7, 0xB3, 0xFE, 0xBD, 0xE8, 0x06, 0x40, 0x02, 0xFB, 0x00, 0xF3, 0xA1, 0xEB, 0x03, 0x01, 0x70, 0x47, 0x00, 0xBF, 0x02, 0xB5, 0x4F, 0xF0, 0x08, 0x00, 0x00, 0xF0, 0x71, 0xFB, 0x02, 0xBD, 0x53, 0xEC, 0x0E, 0x2F, 0x02, 0x4B, 0xA2, 0xFB, 0x03, 0x23, 0x58, 0x0A, 0x70, 0x47, 0x00, 0xBF, 0xF1, 0x19, 0x76, 0x05, 0x2D, 0xE9, 0x70, 0x48, 0x51, 0xEC, 0x0E, 0x6F, 0x8C, 0x46, 0x18, 0x21, 0x48, 0x43, 0x32, 0x18, 0x4C, 0xF1, 0x00, 0x03, 0x51, 0xEC, 0x0E, 0x0F, 0x8B, 0x42, 0x08, 0xBF, 0x82, 0x42, 0xF9, 0xD2, 0xBD, 0xE8, 0x70, 0x88, 0x4F, 0xF4, 0x7A, 0x73, 0x58, 0x43, 0xFF, 0xF7, 0xE9, 0xBF, 0xFF, 0xF7, 0xE7, 0xBF, 0x00, 0x00, 0x06, 0x4B, 0x1A, 0x68, 0x4A, 0xB9, 0x01, 0x22, 0x1A, 0x60, 0x4F, 0xF4, 0x70, 0x00, 0x01, 0xEE, 0x50, 0x0F, 0x4F, 0xF0, 0x80, 0x43, 0xE8, 0xEE, 0x10, 0x3A, 0x70, 0x47, 0x50, 0x1E, 0x05, 0x00, 0x10, 0xB5, 0x10, 0x49, 0x0A, 0x68, 0x10, 0x4C, 0x02, 0xF0, 0x07, 0x02, 0x0F, 0x4B, 0x02, 0x2A, 0x08, 0xBF, 0x23, 0x46, 0x18, 0x60, 0x0A, 0x68, 0x0D, 0x49, 0x02, 0xF0, 0x07, 0x02, 0x0D, 0x4B, 0x02, 0x2A, 0x08, 0xBF, 0x0B, 0x46, 0x00, 0x22, 0x1A, 0x60, 0x1C, 0xEE, 0x50, 0x2F, 0x42, 0xF0, 0x03, 0x02, 0xBF, 0xF3, 0x4F, 0x8F, 0x0C, 0xEE, 0x50, 0x2F, 0xBF, 0xF3, 0x6F, 0x8F, 0x30, 0xBF, 0xFD, 0xE7, 0x00, 0xBF, 0x24, 0x00, 0x00, 0x03, 0x40, 0x00, 0x10, 0x08, 0x40, 0x00, 0x01, 0x09, 0x44, 0x00, 0x10, 0x08, 0x44, 0x00, 0x01, 0x09, 0x0D, 0x4A, 0x38, 0xB5, 0x01, 0x24, 0x84, 0x40, 0x0A, 0x20, 0x13, 0x68, 0xE5, 0x43, 0x2B, 0x40, 0x13, 0x60, 0xFF, 0xF7, 0x9F, 0xFF, 0x09, 0x4B, 0x14, 0x20, 0x1A, 0x68, 0x14, 0x43, 0x1C, 0x60, 0xFF, 0xF7, 0x98, 0xFF, 0x06, 0x4B, 0x0A, 0x20, 0x1A, 0x68, 0x15, 0x40, 0x1D, 0x60, 0xBD, 0xE8, 0x38, 0x40, 0xFF, 0xF7, 0x8F, 0xBF, 0x00, 0xBF, 0xC4, 0x00, 0x01, 0x09, 0x44, 0x00, 0x01, 0x09, 0x00, 0x00, 0x01, 0x09, 0x10, 0xB5, 0x00, 0xF0, 0x3B, 0xF8, 0x18, 0x4B, 0x1B, 0x68, 0x9B, 0x00, 0x05, 0xD5, 0x02, 0x20, 0xFF, 0xF7, 0xD4, 0xFF, 0x03, 0x20, 0xFF, 0xF7, 0xD1, 0xFF, 0x05, 0xF0, 0x7F, 0xFC, 0xC0, 0xB2, 0x05, 0xF0, 0x62, 0xFC, 0x11, 0x4B, 0x1B, 0x68, 0x9B, 0xB2, 0xB3, 0xF5, 0xD8, 0x4F, 0x18, 0xD0, 0xB3, 0xF5, 0xE8, 0x4F, 0x15, 0xD0, 0xB3, 0xF5, 0xA0, 0x4F, 0x12, 0xD0, 0x14, 0x24, 0x40, 0xF2, 0x4C, 0x40, 0x05, 0xF0, 0x3D, 0xFC, 0x04, 0xF5, 0x6B, 0x70, 0x05, 0xF0, 0x23, 0xFC, 0x08, 0x48, 0x01, 0xF0, 0x6E, 0xF9, 0x01, 0xF0, 0x90, 0xF8, 0x06, 0x48, 0x00, 0xF0, 0xAD, 0xFA, 0x00, 0x20, 0x10, 0xBD, 0x00, 0x24, 0xEB, 0xE7, 0x00, 0xBF, 0x48, 0x62, 0x00, 0x03, 0x00, 0x62, 0x00, 0x03, 0x38, 0x80, 0x04, 0x00, 0x01, 0x01, 0x05, 0x00, 0x00, 0x20, 0x70, 0x47, 0x10, 0xB5, 0x85, 0x48, 0x00, 0xF0, 0x9A, 0xFA, 0x84, 0x4A, 0x13, 0x68, 0x43, 0xF0, 0x10, 0x03, 0x83, 0x4C, 0x01, 0x20, 0x13, 0x60, 0xFF, 0xF7, 0x3D, 0xFF, 0x23, 0x68, 0x43, 0xF0, 0x02, 0x03, 0x01, 0x20, 0x23, 0x60, 0xFF, 0xF7, 0x36, 0xFF, 0x23, 0x68, 0x23, 0xF0, 0x01, 0x03, 0x01, 0x20, 0x23, 0x60, 0xFF, 0xF7, 0x2F, 0xFF, 0x23, 0x68, 0x43, 0xF0, 0x01, 0x03, 0x01, 0x20, 0x23, 0x60, 0xFF, 0xF7, 0x28, 0xFF, 0x77, 0x4B, 0x01, 0x24, 0x1C, 0x60, 0x03, 0xF5, 0x6E, 0x23, 0x03, 0xF6, 0x84, 0x03, 0x1C, 0x60, 0x00, 0xF0, 0x3A, 0xFF, 0x68, 0xBB, 0x73, 0x4B, 0x20, 0x46, 0x73, 0x4C, 0x40, 0xF2, 0x01, 0x32, 0x1A, 0x60, 0xFF, 0xF7, 0x15, 0xFF, 0x22, 0x68, 0x22, 0xF0, 0x00, 0x42, 0x22, 0x60, 0x22, 0x68, 0x22, 0xF0, 0x03, 0x12, 0x22, 0xF4, 0x7F, 0x42, 0x42, 0xF4, 0x24, 0x52, 0x22, 0x60, 0x22, 0x68, 0x42, 0xF0, 0x00, 0x52, 0x22, 0x60, 0x22, 0x68, 0x42, 0xF0, 0x00, 0x42, 0x22, 0x60, 0x23, 0x68, 0xDA, 0x00, 0xFC, 0xD5, 0x14, 0x20, 0xFF, 0xF7, 0xFB, 0xFE, 0x23, 0x68, 0x23, 0xF0, 0x00, 0x53, 0x60, 0x4A, 0x23, 0x60, 0x13, 0x68, 0x43, 0xF0, 0x40, 0x73, 0x01, 0x20, 0x13, 0x60, 0xFF, 0xF7, 0xEF, 0xFE, 0x5E, 0x4C, 0x22, 0x68, 0x00, 0x2A, 0x80, 0xF2, 0x96, 0x80, 0x5C, 0x48, 0x00, 0xF0, 0x3B, 0xFA, 0x5C, 0x4B, 0x02, 0x24, 0x1C, 0x60, 0x1A, 0x68, 0x42, 0xF0, 0x40, 0x72, 0x01, 0x20, 0x1A, 0x60, 0xFF, 0xF7, 0xDD, 0xFE, 0x58, 0x4B, 0x1C, 0x60, 0x1A, 0x68, 0x42, 0xF0, 0x40, 0x72, 0x1A, 0x60, 0x4F, 0xF4, 0x81, 0x72, 0x04, 0x33, 0x1A, 0x60, 0x1A, 0x68, 0x42, 0xF0, 0x40, 0x72, 0x52, 0x4C, 0x01, 0x20, 0x1A, 0x60, 0xFF, 0xF7, 0xCB, 0xFE, 0x23, 0x68, 0x43, 0xF4, 0x80, 0x33, 0x14, 0x20, 0x23, 0x60, 0xFF, 0xF7, 0xC4, 0xFE, 0x23, 0x68, 0x43, 0xF0, 0x01, 0x03, 0x23, 0x60, 0x4F, 0xF0, 0x80, 0x43, 0xA4, 0xF5, 0xE6, 0x74, 0x23, 0x60, 0x01, 0x20, 0xFF, 0xF7, 0xB8, 0xFE, 0x23, 0x68, 0x43, 0xF0, 0x02, 0x03, 0x01, 0x20, 0x23, 0x60, 0xFF, 0xF7, 0xB1, 0xFE, 0x23, 0x68, 0x43, 0xF0, 0x80, 0x73, 0x01, 0x20, 0x23, 0x60, 0xFF, 0xF7, 0xAA, 0xFE, 0x23, 0x68, 0x43, 0xF0, 0x00, 0x43, 0x01, 0x20, 0x23, 0x60, 0xFF, 0xF7, 0xA3, 0xFE, 0x3D, 0x4A, 0x13, 0x68, 0x43, 0xF0, 0x00, 0x43, 0x0A, 0x20, 0x13, 0x60, 0xFF, 0xF7, 0x9B, 0xFE, 0x3A, 0x4A, 0x13, 0x68, 0x43, 0xF0, 0x00, 0x43, 0x0A, 0x20, 0x13, 0x60, 0xFF, 0xF7, 0x93, 0xFE, 0x37, 0x4A, 0x13, 0x68, 0x43, 0xF0, 0x00, 0x43, 0x0A, 0x20, 0x13, 0x60, 0xFF, 0xF7, 0x8B, 0xFE, 0x34, 0x4A, 0x13, 0x68, 0x43, 0xF0, 0x00, 0x43, 0x0A, 0x20, 0x13, 0x60, 0xFF, 0xF7, 0x83, 0xFE, 0x31, 0x4A, 0x13, 0x68, 0x43, 0xF0, 0x00, 0x43, 0x0A, 0x20, 0x13, 0x60, 0xFF, 0xF7, 0x7B, 0xFE, 0x2E, 0x4A, 0x13, 0x68, 0x43, 0xF0, 0x00, 0x43, 0x0A, 0x20, 0x13, 0x60, 0xFF, 0xF7, 0x73, 0xFE, 0x2B, 0x4A, 0x13, 0x68, 0x43, 0xF0, 0x00, 0x43, 0x0A, 0x20, 0x13, 0x60, 0xFF, 0xF7, 0x6B, 0xFE, 0x28, 0x4A, 0x13, 0x68, 0x43, 0xF0, 0x00, 0x43, 0x0A, 0x20, 0x13, 0x60, 0xFF, 0xF7, 0x63, 0xFE, 0x25, 0x4A, 0x13, 0x68, 0x43, 0xF0, 0x00, 0x43, 0x0A, 0x20, 0x13, 0x60, 0xFF, 0xF7, 0x5B, 0xFE, 0x00, 0xF0, 0x15, 0xFF, 0x21, 0x48, 0xBD, 0xE8, 0x10, 0x40, 0x00, 0xF0, 0xA8, 0xB9, 0x4F, 0xF4, 0xC6, 0x42, 0x22, 0x60, 0x22, 0x68, 0x42, 0xF0, 0x00, 0x52, 0x22, 0x60, 0x22, 0x68, 0x42, 0xF0, 0x00, 0x42, 0x22, 0x60, 0x23, 0x68, 0xDB, 0x00, 0xFC, 0xD5, 0x14, 0x20, 0xFF, 0xF7, 0x43, 0xFE, 0x23, 0x68, 0x23, 0xF0, 0x00, 0x53, 0x23, 0x60, 0x56, 0xE7, 0x78, 0x01, 0x05, 0x00, 0x50, 0x02, 0x01, 0x07, 0x10, 0x03, 0x01, 0x07, 0xBC, 0x17, 0x00, 0x03, 0x00, 0x15, 0x00, 0x03, 0x00, 0x10, 0x00, 0x03, 0x20, 0x10, 0x00, 0x03, 0x87, 0x01, 0x05, 0x00, 0x10, 0x15, 0x00, 0x03, 0x1C, 0x15, 0x00, 0x03, 0x0C, 0x17, 0x00, 0x03, 0x28, 0x10, 0x00, 0x03, 0x30, 0x10, 0x00, 0x03, 0x40, 0x10, 0x00, 0x03, 0x48, 0x10, 0x00, 0x03, 0x50, 0x10, 0x00, 0x03, 0x58, 0x10, 0x00, 0x03, 0x60, 0x10, 0x00, 0x03, 0xE0, 0x10, 0x00, 0x03, 0x78, 0x10, 0x00, 0x03, 0xA1, 0x01, 0x05, 0x00, 0x38, 0xB5, 0x08, 0x4D, 0x2C, 0x68, 0x24, 0xF4, 0x80, 0x34, 0x02, 0x20, 0x2C, 0x60, 0xFF, 0xF7, 0x0B, 0xFE, 0x44, 0xF4, 0x80, 0x34, 0x2C, 0x60, 0x2B, 0x68, 0x43, 0xF0, 0x01, 0x03, 0x00, 0x20, 0x2B, 0x60, 0x38, 0xBD, 0xEC, 0x19, 0x00, 0x03, 0xFF, 0xF7, 0xEA, 0xBF, 0x0A, 0x4A, 0x10, 0xB5, 0x14, 0x68, 0x01, 0x23, 0x00, 0xF1, 0x10, 0x01, 0x03, 0xFA, 0x01, 0xF1, 0x24, 0xEA, 0x01, 0x04, 0x14, 0x60, 0x21, 0x43, 0x11, 0x60, 0x11, 0x68, 0x03, 0xFA, 0x00, 0xF0, 0x21, 0xEA, 0x00, 0x01, 0x11, 0x60, 0x08, 0x43, 0x10, 0x60, 0x10, 0xBD, 0x0C, 0x19, 0x00, 0x03, 0x43, 0x1E, 0x0A, 0x44, 0x10, 0xB5, 0x91, 0x42, 0x01, 0xD1, 0x00, 0x20, 0x08, 0xE0, 0x13, 0xF8, 0x01, 0x4F, 0x11, 0xF8, 0x01, 0x0B, 0x20, 0x1A, 0x40, 0xB2, 0x08, 0xB9, 0x00, 0x2C, 0xF2, 0xD1, 0x10, 0xBD, 0x03, 0x46, 0x1A, 0x78, 0x59, 0x1C, 0x0A, 0xB9, 0x18, 0x1A, 0x70, 0x47, 0x0B, 0x46, 0xF8, 0xE7, 0x00, 0x00, 0x01, 0x4B, 0x18, 0x47, 0x70, 0x47, 0x00, 0xBF, 0x80, 0x8C, 0x04, 0x00, 0x01, 0x4B, 0x18, 0x47, 0x70, 0x47, 0x00, 0xBF, 0x38, 0x8D, 0x04, 0x00, 0x08, 0x46, 0x00, 0xF0, 0x67, 0xB9, 0x30, 0xB5, 0x00, 0x25, 0x0C, 0x68, 0xEB, 0xB2, 0x01, 0x35, 0x94, 0x42, 0x0E, 0xD2, 0x02, 0x79, 0x02, 0xB9, 0x53, 0xB1, 0x02, 0x68, 0x0A, 0x2B, 0x34, 0xBF, 0x30, 0x21, 0x57, 0x21, 0x0B, 0x44, 0x54, 0x1C, 0x04, 0x60, 0x13, 0x70, 0x01, 0x23, 0x03, 0x71, 0x30, 0xBD, 0xA4, 0x1A, 0x0C, 0x60, 0xE8, 0xE7, 0x2D, 0xE9, 0xF0, 0x4F, 0x85, 0xB0, 0x04, 0x46, 0x0D, 0x46, 0x91, 0x46, 0x01, 0xAE, 0x2F, 0x78, 0x00, 0x2F, 0x33, 0xD0, 0x25, 0x2F, 0x0D, 0xD0, 0x0A, 0x2F, 0x03, 0xD1, 0xE3, 0x68, 0x0D, 0x21, 0x20, 0x46, 0x98, 0x47, 0x01, 0x35, 0xC8, 0x46, 0xE3, 0x68, 0x39, 0x46, 0x20, 0x46, 0x98, 0x47, 0xC1, 0x46, 0xEC, 0xE7, 0x6B, 0x78, 0x00, 0x27, 0x2D, 0x2B, 0x0A, 0xBF, 0xAB, 0x78, 0x02, 0x35, 0x03, 0x35, 0x30, 0x2B, 0x03, 0xBF, 0x2B, 0x78, 0x4F, 0xF0, 0x01, 0x0B, 0x01, 0x35, 0x4F, 0xF0, 0x00, 0x0B, 0xA3, 0xF1, 0x30, 0x02, 0x09, 0x2A, 0x1E, 0xD9, 0x6C, 0x2B, 0x4F, 0xF0, 0x00, 0x01, 0x04, 0xBF, 0x2B, 0x78, 0x01, 0x35, 0x26, 0x60, 0x21, 0x71, 0x64, 0x2B, 0x2F, 0xD0, 0x15, 0xD8, 0x25, 0x2B, 0x00, 0xF0, 0x9A, 0x80, 0x63, 0x2B, 0x66, 0xD0, 0xA3, 0xB9, 0x00, 0x20, 0x05, 0xB0, 0xBD, 0xE8, 0xF0, 0x8F, 0x01, 0xFB, 0x07, 0x37, 0x15, 0xF8, 0x01, 0x3B, 0x30, 0x3F, 0xA3, 0xF1, 0x30, 0x02, 0x09, 0x2A, 0xF6, 0xD9, 0xE0, 0xE7, 0x0A, 0x21, 0xF8, 0xE7, 0x73, 0x2B, 0x5D, 0xD0, 0x03, 0xD8, 0x70, 0x2B, 0x77, 0xD0, 0xC8, 0x46, 0x3D, 0xE0, 0x75, 0x2B, 0x0F, 0xD0, 0x78, 0x2B, 0xF9, 0xD1, 0xD9, 0xF8, 0x00, 0x30, 0x09, 0xF1, 0x04, 0x08, 0x00, 0x93, 0x00, 0x9B, 0xA3, 0xBB, 0x0D, 0xF1, 0x05, 0x03, 0x23, 0x60, 0x30, 0x23, 0x8D, 0xF8, 0x04, 0x30, 0x17, 0xE0, 0xD9, 0xF8, 0x00, 0x20, 0x64, 0x2B, 0x09, 0xF1, 0x04, 0x08, 0x00, 0x92, 0x09, 0xD1, 0x00, 0x2A, 0x07, 0xDA, 0x0D, 0xF1, 0x05, 0x03, 0x52, 0x42, 0x23, 0x60, 0x2D, 0x23, 0x00, 0x92, 0x8D, 0xF8, 0x04, 0x30, 0x00, 0x9B, 0x3B, 0xB9, 0x23, 0x68, 0x5A, 0x1C, 0x22, 0x60, 0x30, 0x22, 0x1A, 0x70, 0x01, 0x23, 0x23, 0x71, 0x10, 0xE0, 0xDF, 0xF8, 0xD8, 0x90, 0x4F, 0xF0, 0x0A, 0x0A, 0x4A, 0x46, 0x69, 0x46, 0x20, 0x46, 0xFF, 0xF7, 0x5C, 0xFF, 0x30, 0x4B, 0xBA, 0xF1, 0x01, 0x0A, 0xA9, 0xFB, 0x03, 0x01, 0x4F, 0xEA, 0xD1, 0x09, 0xF2, 0xD1, 0xB1, 0x46, 0x1C, 0xE0, 0x4F, 0xF0, 0x08, 0x09, 0x4F, 0xF0, 0x80, 0x5A, 0x52, 0x46, 0x69, 0x46, 0x20, 0x46, 0x4F, 0xEA, 0x1A, 0x1A, 0xFF, 0xF7, 0x47, 0xFF, 0xB9, 0xF1, 0x01, 0x09, 0xF5, 0xD1, 0xEE, 0xE7, 0x99, 0xF8, 0x00, 0x30, 0x0D, 0xF1, 0x05, 0x02, 0x09, 0xF1, 0x04, 0x08, 0x22, 0x60, 0x8D, 0xF8, 0x04, 0x30, 0xE4, 0xE7, 0x09, 0xF1, 0x04, 0x08, 0xD9, 0xF8, 0x00, 0x90, 0x23, 0x68, 0x00, 0x22, 0x1A, 0x70, 0xC4, 0xF8, 0x00, 0x90, 0x23, 0x68, 0x5A, 0x1C, 0x22, 0x60, 0x1B, 0x78, 0x03, 0xBB, 0xBB, 0xF1, 0x00, 0x0F, 0x14, 0xBF, 0x4F, 0xF0, 0x30, 0x0A, 0x4F, 0xF0, 0x20, 0x0A, 0x17, 0xF1, 0xFF, 0x37, 0x18, 0xD3, 0xE3, 0x68, 0x51, 0x46, 0x20, 0x46, 0x98, 0x47, 0xF7, 0xE7, 0x11, 0x4A, 0x09, 0xF1, 0x04, 0x08, 0x2B, 0x78, 0x69, 0x1C, 0xD3, 0x5C, 0x5B, 0x07, 0xBF, 0xD0, 0x0D, 0x46, 0xF8, 0xE7, 0x0D, 0xF1, 0x05, 0x02, 0x8D, 0xF8, 0x04, 0x30, 0x22, 0x60, 0x77, 0xE7, 0x01, 0x3F, 0xD9, 0xE7, 0x00, 0x2F, 0xFB, 0xD1, 0xB9, 0xF1, 0x00, 0x0F, 0x3F, 0xF4, 0x35, 0xAF, 0x19, 0xF8, 0x01, 0x1B, 0x00, 0x29, 0x3F, 0xF4, 0x30, 0xAF, 0xE3, 0x68, 0x20, 0x46, 0x98, 0x47, 0xF6, 0xE7, 0xCD, 0xCC, 0xCC, 0xCC, 0xC0, 0xFA, 0x04, 0x00, 0x00, 0xCA, 0x9A, 0x3B, 0x01, 0x4B, 0x18, 0x78, 0x70, 0x47, 0x00, 0xBF, 0xD0, 0x11, 0x05, 0x00, 0x0F, 0xB4, 0x7F, 0xB5, 0x08, 0xAA, 0x02, 0xA8, 0x52, 0xF8, 0x04, 0x1B, 0x04, 0x4B, 0x01, 0x92, 0x05, 0x93, 0xFF, 0xF7, 0xFD, 0xFE, 0x07, 0xB0, 0x5D, 0xF8, 0x04, 0xEB, 0x04, 0xB0, 0x70, 0x47, 0x21, 0x9D, 0x04, 0x00, 0x00, 0x20, 0x70, 0x47, 0x70, 0x47, 0x00, 0x00, 0xF0, 0xB5, 0x04, 0x46, 0x85, 0xB0, 0x4F, 0xF0, 0xA0, 0x60, 0x17, 0x46, 0x01, 0x25, 0xFF, 0xF7, 0xF5, 0xFF, 0x10, 0x22, 0x06, 0x46, 0x00, 0x21, 0x68, 0x46, 0xFF, 0xF7, 0xBB, 0xFE, 0x08, 0x23, 0x20, 0x46, 0x8D, 0xF8, 0x00, 0x30, 0x4F, 0xF4, 0x81, 0x73, 0xAD, 0xF8, 0x02, 0x30, 0xA4, 0x02, 0x11, 0x4B, 0x8D, 0xF8, 0x04, 0x50, 0x8D, 0xF8, 0x0C, 0x50, 0x02, 0x93, 0xFF, 0xF7, 0x78, 0xFE, 0x2A, 0x46, 0x39, 0x46, 0x68, 0x46, 0x00, 0xF0, 0x69, 0xF8, 0x0C, 0x4A, 0x33, 0x19, 0x03, 0x21, 0x19, 0x61, 0x13, 0x60, 0xDA, 0x68, 0x42, 0xF0, 0x80, 0x02, 0xDA, 0x60, 0x00, 0x22, 0x5A, 0x60, 0x0D, 0x22, 0x32, 0x51, 0xDA, 0x68, 0x22, 0xF0, 0x80, 0x02, 0xDA, 0x60, 0x07, 0x22, 0xD9, 0x60, 0x9A, 0x60, 0x05, 0xB0, 0xF0, 0xBD, 0x00, 0xBF, 0x08, 0x01, 0x02, 0x01, 0x78, 0x1E, 0x05, 0x00, 0x03, 0x4B, 0x1B, 0x68, 0x5A, 0x69, 0x52, 0x06, 0xFC, 0xD5, 0x18, 0x60, 0x70, 0x47, 0x00, 0xBF, 0x78, 0x1E, 0x05, 0x00, 0xF8, 0xB5, 0xC1, 0xF3, 0xC1, 0x06, 0x89, 0x00, 0x05, 0x46, 0x17, 0x46, 0x01, 0xF0, 0x1C, 0x04, 0x13, 0x46, 0x31, 0x46, 0x22, 0x46, 0x0A, 0x48, 0xFF, 0xF7, 0x92, 0xFF, 0x55, 0xF8, 0x26, 0x00, 0x0F, 0x23, 0xA3, 0x40, 0x07, 0xFA, 0x04, 0xF4, 0x20, 0xEA, 0x03, 0x00, 0x04, 0x43, 0x45, 0xF8, 0x26, 0x40, 0x29, 0x68, 0x03, 0x48, 0xBD, 0xE8, 0xF8, 0x40, 0xFF, 0xF7, 0x81, 0xBF, 0x00, 0xBF, 0x01, 0x03, 0x05, 0x00, 0x47, 0x03, 0x05, 0x00, 0x42, 0x09, 0x24, 0x23, 0x70, 0xB5, 0x53, 0x43, 0x0A, 0x2A, 0x05, 0x46, 0x0E, 0x46, 0x88, 0xBF, 0x09, 0x4C, 0x01, 0x46, 0x09, 0x48, 0x9A, 0xBF, 0x03, 0xF1, 0x40, 0x74, 0x04, 0xF5, 0x30, 0x44, 0xE4, 0x18, 0x23, 0x46, 0xFF, 0xF7, 0x68, 0xFF, 0x32, 0x46, 0x29, 0x46, 0x20, 0x46, 0xBD, 0xE8, 0x70, 0x40, 0xFF, 0xF7, 0xC1, 0xBF, 0x00, 0xBF, 0x74, 0x1E, 0x02, 0x07, 0x32, 0x03, 0x05, 0x00, 0x2D, 0xE9, 0xF0, 0x4F, 0x00, 0x27, 0x8B, 0xB0, 0xCD, 0xE9, 0x08, 0x12, 0x08, 0x9B, 0x9F, 0x42, 0x04, 0xD1, 0x4F, 0xF0, 0xFF, 0x30, 0x0B, 0xB0, 0xBD, 0xE8, 0xF0, 0x8F, 0x10, 0xF8, 0x37, 0xE0, 0x00, 0xEB, 0xC7, 0x0A, 0x01, 0x37, 0xBE, 0xF1, 0x00, 0x0F, 0xEF, 0xD0, 0x9A, 0xF8, 0x01, 0x80, 0x0E, 0xEB, 0xCE, 0x04, 0xBE, 0xF1, 0x0B, 0x0F, 0x4F, 0xEA, 0x84, 0x04, 0x4F, 0xEA, 0xD8, 0x03, 0x06, 0x93, 0x4F, 0xEA, 0x18, 0x13, 0x07, 0x93, 0x07, 0x9A, 0x06, 0x9B, 0x04, 0xEB, 0x82, 0x02, 0x4F, 0xEA, 0x83, 0x03, 0x73, 0xD8, 0xAA, 0x49, 0xAA, 0x4E, 0x21, 0x44, 0x0B, 0x44, 0xAA, 0x49, 0x16, 0x44, 0x11, 0x44, 0xA9, 0x4A, 0x22, 0x44, 0x1D, 0x68, 0x34, 0x68, 0x01, 0x94, 0x0C, 0x68, 0x02, 0x94, 0xD2, 0xF8, 0x00, 0xC0, 0x08, 0xF0, 0x07, 0x09, 0x07, 0x24, 0x4F, 0xEA, 0x89, 0x09, 0x04, 0xFA, 0x09, 0xF4, 0x25, 0xEA, 0x04, 0x04, 0x00, 0x94, 0x09, 0x9C, 0x44, 0xB1, 0x9A, 0xF8, 0x02, 0x40, 0x00, 0x9D, 0x04, 0xF0, 0x07, 0x04, 0x04, 0xFA, 0x09, 0xF4, 0x25, 0x43, 0x00, 0x95, 0x9A, 0xF9, 0x03, 0x40, 0x08, 0xF0, 0x0F, 0x09, 0x4F, 0xEA, 0x49, 0x09, 0x00, 0x2C, 0x0D, 0xDB, 0x01, 0x9D, 0x4F, 0xF0, 0x03, 0x0B, 0x0B, 0xFA, 0x09, 0xFB, 0x04, 0xF0, 0x03, 0x04, 0x04, 0xFA, 0x09, 0xF4, 0x25, 0xEA, 0x0B, 0x0B, 0x44, 0xEA, 0x0B, 0x04, 0x01, 0x94, 0x9A, 0xF9, 0x04, 0x40, 0x00, 0x2C, 0x0D, 0xDB, 0x02, 0x9D, 0x4F, 0xF0, 0x03, 0x0B, 0x0B, 0xFA, 0x09, 0xFB, 0x04, 0xF0, 0x03, 0x04, 0x04, 0xFA, 0x09, 0xF4, 0x25, 0xEA, 0x0B, 0x0B, 0x44, 0xEA, 0x0B, 0x04, 0x02, 0x94, 0x9A, 0xF9, 0x02, 0x40, 0x01, 0x2C, 0x2B, 0xD1, 0x9A, 0xF9, 0x05, 0x90, 0xB9, 0xF1, 0x00, 0x0F, 0x26, 0xDB, 0x04, 0xFA, 0x08, 0xFA, 0x09, 0xF0, 0x01, 0x09, 0x09, 0xFA, 0x08, 0xF9, 0x2C, 0xEA, 0x0A, 0x0C, 0x49, 0xEA, 0x0C, 0x0C, 0x00, 0xEB, 0xC7, 0x00, 0x04, 0x97, 0x08, 0x9D, 0x04, 0x9F, 0xBD, 0x42, 0x17, 0xD8, 0x00, 0x98, 0x18, 0x60, 0x01, 0x9B, 0x33, 0x60, 0x02, 0x9B, 0x0B, 0x60, 0x00, 0x2C, 0x00, 0xF0, 0xE3, 0x80, 0x00, 0x20, 0xC2, 0xF8, 0x00, 0xC0, 0x6B, 0xE7, 0x74, 0x49, 0x74, 0x4E, 0x21, 0x44, 0x0B, 0x44, 0x74, 0x49, 0x16, 0x44, 0x11, 0x44, 0x73, 0x4A, 0x8A, 0xE7, 0x00, 0x24, 0xE0, 0xE7, 0x07, 0x78, 0x90, 0xF8, 0x01, 0x80, 0x00, 0x2F, 0xE2, 0xD0, 0x4F, 0xEA, 0xD8, 0x05, 0x03, 0x95, 0x4F, 0xEA, 0x18, 0x15, 0x05, 0x95, 0x07, 0x9D, 0xA9, 0x46, 0x05, 0x9D, 0xA9, 0x45, 0x02, 0xD1, 0xBE, 0x45, 0x00, 0xF0, 0xA1, 0x80, 0x00, 0x9D, 0x1D, 0x60, 0x01, 0x9B, 0x33, 0x60, 0x02, 0x9B, 0x0B, 0x60, 0x0C, 0xB1, 0xC2, 0xF8, 0x00, 0xC0, 0x05, 0x9B, 0x07, 0xEB, 0xC7, 0x02, 0x0B, 0x2F, 0x4F, 0xEA, 0x82, 0x02, 0x02, 0xEB, 0x83, 0x01, 0x03, 0x9B, 0x4F, 0xEA, 0x83, 0x03, 0x79, 0xD8, 0x56, 0x4C, 0x57, 0x4E, 0x14, 0x19, 0x02, 0xF1, 0x40, 0x72, 0x8E, 0x19, 0x01, 0xF1, 0x40, 0x71, 0x01, 0xF5, 0x2F, 0x41, 0x02, 0xF5, 0x2F, 0x42, 0x23, 0x44, 0xF0, 0x31, 0xEC, 0x32, 0x1C, 0x68, 0x00, 0x94, 0x34, 0x68, 0x01, 0x94, 0x0C, 0x68, 0x02, 0x94, 0xD2, 0xF8, 0x00, 0xC0, 0x00, 0x24, 0x90, 0xF9, 0x02, 0xA0, 0xBA, 0xF1, 0x00, 0x0F, 0x15, 0xDB, 0x08, 0xF0, 0x07, 0x0E, 0x00, 0x9D, 0x4F, 0xEA, 0x8E, 0x0E, 0x4F, 0xF0, 0x07, 0x09, 0x09, 0xFA, 0x0E, 0xF9, 0x25, 0xEA, 0x09, 0x05, 0x00, 0x95, 0x09, 0x9D, 0x3D, 0xB1, 0x00, 0x9D, 0x0A, 0xF0, 0x07, 0x09, 0x09, 0xFA, 0x0E, 0xFE, 0x45, 0xEA, 0x0E, 0x05, 0x00, 0x95, 0x90, 0xF9, 0x03, 0xE0, 0x08, 0xF0, 0x0F, 0x09, 0x4F, 0xEA, 0x49, 0x09, 0xBE, 0xF1, 0x00, 0x0F, 0x0D, 0xDB, 0x01, 0x9D, 0x4F, 0xF0, 0x03, 0x0B, 0x0B, 0xFA, 0x09, 0xFB, 0x0E, 0xF0, 0x03, 0x0E, 0x0E, 0xFA, 0x09, 0xFE, 0x25, 0xEA, 0x0B, 0x0B, 0x4E, 0xEA, 0x0B, 0x05, 0x01, 0x95, 0x90, 0xF9, 0x04, 0xE0, 0xBE, 0xF1, 0x00, 0x0F, 0x0D, 0xDB, 0x02, 0x9D, 0x4F, 0xF0, 0x03, 0x0B, 0x0B, 0xFA, 0x09, 0xFB, 0x0E, 0xF0, 0x03, 0x0E, 0x0E, 0xFA, 0x09, 0xFE, 0x25, 0xEA, 0x0B, 0x0B, 0x4E, 0xEA, 0x0B, 0x05, 0x02, 0x95, 0xBA, 0xF1, 0x01, 0x0F, 0x0F, 0xD1, 0x90, 0xF9, 0x05, 0xE0, 0xBE, 0xF1, 0x00, 0x0F, 0x0A, 0xDB, 0x0A, 0xFA, 0x08, 0xF4, 0x0E, 0xF0, 0x01, 0x0E, 0x0E, 0xFA, 0x08, 0xFE, 0x2C, 0xEA, 0x04, 0x0C, 0x4E, 0xEA, 0x0C, 0x0C, 0x54, 0x46, 0x04, 0x9D, 0x08, 0x30, 0xBE, 0x46, 0x01, 0x35, 0x04, 0x95, 0x05, 0x9D, 0x07, 0x95, 0x03, 0x9D, 0x06, 0x95, 0x41, 0xE7, 0x1D, 0x4C, 0x1E, 0x4E, 0x14, 0x19, 0x02, 0xF1, 0xE0, 0x62, 0x8E, 0x19, 0x01, 0xF1, 0xE0, 0x61, 0x01, 0xF5, 0x07, 0x31, 0x02, 0xF5, 0x07, 0x32, 0x23, 0x44, 0x01, 0xF5, 0x19, 0x71, 0x02, 0xF5, 0x18, 0x72, 0x82, 0xE7, 0x06, 0x9D, 0xAE, 0x46, 0x03, 0x9D, 0xAE, 0x45, 0x86, 0xD0, 0x00, 0x9D, 0x0B, 0x2F, 0x1D, 0x60, 0x4F, 0xF0, 0x24, 0x05, 0x05, 0xFB, 0x07, 0xF5, 0x03, 0x9B, 0x95, 0xBF, 0x05, 0xF1, 0x40, 0x75, 0x05, 0xF1, 0xE0, 0x65, 0x05, 0xF5, 0x2F, 0x45, 0x05, 0xF5, 0x07, 0x35, 0x4F, 0xEA, 0x83, 0x03, 0x94, 0xBF, 0xDC, 0x35, 0x05, 0xF5, 0x14, 0x75, 0x2B, 0x44, 0x1D, 0x68, 0x00, 0x95, 0x6B, 0xE7, 0x20, 0x46, 0x8A, 0xE6, 0xDC, 0xAF, 0x00, 0x03, 0xF8, 0xAF, 0x00, 0x03, 0xF0, 0xAF, 0x00, 0x03, 0xEC, 0xAF, 0x00, 0x03, 0x50, 0x1E, 0x02, 0x07, 0x6C, 0x1E, 0x02, 0x07, 0x64, 0x1E, 0x02, 0x07, 0x60, 0x1E, 0x02, 0x07, 0x10, 0xB5, 0x04, 0x46, 0x02, 0x48, 0xFF, 0xF7, 0xDB, 0xFD, 0x50, 0xF8, 0x24, 0x00, 0x10, 0xBD, 0x00, 0x01, 0x00, 0x07, 0x0C, 0x4B, 0x1B, 0x68, 0x98, 0x60, 0xDA, 0x68, 0x42, 0xF0, 0x08, 0x02, 0xDA, 0x60, 0x4F, 0xF6, 0xFF, 0x72, 0x12, 0xF1, 0xFF, 0x32, 0x0A, 0xD3, 0xD9, 0x68, 0x09, 0x07, 0xF9, 0xD5, 0x32, 0xB1, 0x1B, 0x69, 0x28, 0x2B, 0x14, 0xBF, 0x6F, 0xF0, 0x27, 0x00, 0x00, 0x20, 0x70, 0x47, 0x6F, 0xF0, 0x03, 0x00, 0x70, 0x47, 0x7C, 0x1E, 0x05, 0x00, 0x0E, 0x4B, 0x00, 0x22, 0x1B, 0x68, 0xDA, 0x61, 0x01, 0x22, 0x9A, 0x61, 0xDA, 0x68, 0x42, 0xF0, 0x20, 0x02, 0xDA, 0x60, 0x4F, 0xF6, 0xFF, 0x72, 0x12, 0xF1, 0xFF, 0x32, 0x0A, 0xD3, 0xD9, 0x68, 0x09, 0x07, 0xF9, 0xD5, 0x32, 0xB1, 0x1B, 0x69, 0x08, 0x2B, 0x14, 0xBF, 0x6F, 0xF0, 0x07, 0x00, 0x00, 0x20, 0x70, 0x47, 0x6F, 0xF0, 0x03, 0x00, 0x70, 0x47, 0x00, 0xBF, 0x7C, 0x1E, 0x05, 0x00, 0x11, 0x4B, 0x41, 0xEA, 0x40, 0x00, 0x1B, 0x68, 0x98, 0x60, 0xDA, 0x68, 0x42, 0xF0, 0x08, 0x02, 0xDA, 0x60, 0x4F, 0xF6, 0xFF, 0x72, 0x12, 0xF1, 0xFF, 0x32, 0x12, 0xD3, 0xD8, 0x68, 0x10, 0xF0, 0x08, 0x0F, 0xF8, 0xD0, 0x6A, 0xB1, 0x1B, 0x69, 0x29, 0xB9, 0x18, 0x2B, 0x0C, 0xBF, 0x00, 0x20, 0x6F, 0xF0, 0x17, 0x00, 0x70, 0x47, 0x40, 0x2B, 0x0C, 0xBF, 0x00, 0x20, 0x6F, 0xF0, 0x3F, 0x00, 0x70, 0x47, 0x6F, 0xF0, 0x03, 0x00, 0x70, 0x47, 0x7C, 0x1E, 0x05, 0x00, 0x11, 0x4B, 0x1B, 0x68, 0xDA, 0x68, 0x42, 0xF0, 0x10, 0x02, 0xDA, 0x60, 0xDA, 0x68, 0x42, 0xF0, 0x08, 0x02, 0xDA, 0x60, 0x4F, 0xF6, 0xFF, 0x72, 0x12, 0xF1, 0xFF, 0x32, 0x11, 0xD3, 0xD9, 0x68, 0xC9, 0x06, 0xF9, 0xD4, 0x6A, 0xB1, 0x4F, 0xF4, 0x80, 0x32, 0x01, 0x3A, 0x02, 0xD0, 0x19, 0x69, 0xF8, 0x29, 0xFA, 0xD1, 0x1B, 0x69, 0xF8, 0x2B, 0x14, 0xBF, 0x6F, 0xF0, 0x03, 0x00, 0x00, 0x20, 0x70, 0x47, 0x6F, 0xF0, 0x03, 0x00, 0x70, 0x47, 0x7C, 0x1E, 0x05, 0x00, 0x2D, 0xE9, 0xF3, 0x47, 0x1F, 0x46, 0x54, 0x4B, 0x14, 0x46, 0x80, 0x46, 0x01, 0x91, 0x5A, 0x68, 0x9A, 0x46, 0x0A, 0x9E, 0x00, 0x2A, 0x00, 0xF0, 0x9B, 0x80, 0xFF, 0xF7, 0x85, 0xFF, 0x05, 0x46, 0x20, 0xBB, 0x01, 0x46, 0x40, 0x46, 0xFF, 0xF7, 0x9F, 0xFF, 0x05, 0x46, 0xF0, 0xB9, 0x02, 0x2C, 0x22, 0xDC, 0x0C, 0xBF, 0x01, 0x24, 0x00, 0x24, 0x0D, 0xF1, 0x04, 0x09, 0x4C, 0x44, 0x14, 0xF8, 0x01, 0x09, 0xFF, 0xF7, 0x55, 0xFF, 0x05, 0x46, 0x80, 0xB9, 0xA4, 0xEB, 0x09, 0x03, 0x01, 0x33, 0xF5, 0xD1, 0xDA, 0xF8, 0x00, 0x40, 0xE3, 0x68, 0x43, 0xF0, 0x20, 0x03, 0xE3, 0x60, 0x4F, 0xF6, 0xFF, 0x73, 0x13, 0xF1, 0xFF, 0x33, 0x09, 0xD2, 0x6F, 0xF0, 0x03, 0x05, 0xFF, 0xF7, 0xA2, 0xFF, 0x28, 0x46, 0x02, 0xB0, 0xBD, 0xE8, 0xF0, 0x87, 0x02, 0x24, 0xDD, 0xE7, 0xE2, 0x68, 0x15, 0x07, 0xEF, 0xD5, 0x00, 0x2B, 0xF0, 0xD0, 0x23, 0x69, 0x10, 0x2B, 0x5B, 0xD1, 0x01, 0x21, 0x40, 0x46, 0xFF, 0xF7, 0x6A, 0xFF, 0x05, 0x46, 0x00, 0x28, 0xE8, 0xD1, 0x01, 0x2E, 0x21, 0xD0, 0x3A, 0x46, 0x01, 0x3E, 0xD3, 0x1B, 0x9E, 0x42, 0xE3, 0x68, 0x30, 0xD8, 0x03, 0xF0, 0xFB, 0x03, 0xE3, 0x60, 0xE3, 0x68, 0x43, 0xF0, 0x08, 0x03, 0xE3, 0x60, 0x4F, 0xF6, 0xFF, 0x73, 0x13, 0xF1, 0xFF, 0x33, 0xD2, 0xD3, 0xE2, 0x68, 0x12, 0x07, 0xF9, 0xD5, 0x00, 0x2B, 0xCD, 0xD0, 0xA3, 0x68, 0xBB, 0x55, 0x64, 0x23, 0x13, 0xF1, 0xFF, 0x33, 0xC7, 0xD3, 0x22, 0x69, 0x58, 0x2A, 0xF9, 0xD1, 0x9B, 0xB9, 0xC2, 0xE7, 0xE3, 0x68, 0x43, 0xF0, 0x08, 0x03, 0xE3, 0x60, 0x4F, 0xF6, 0xFF, 0x73, 0x13, 0xF1, 0xFF, 0x33, 0xB9, 0xD3, 0xE2, 0x68, 0x10, 0x07, 0xF9, 0xD5, 0x00, 0x2B, 0xB4, 0xD0, 0xA3, 0x68, 0x3B, 0x70, 0x23, 0x69, 0x58, 0x2B, 0x20, 0xD1, 0x00, 0x25, 0xAF, 0xE7, 0xE3, 0x68, 0x43, 0xF0, 0x0C, 0x03, 0xE3, 0x60, 0x4F, 0xF6, 0xFF, 0x73, 0x13, 0xF1, 0xFF, 0x33, 0xA4, 0xD3, 0xE1, 0x68, 0x09, 0x07, 0xF9, 0xD5, 0x00, 0x2B, 0x9F, 0xD0, 0xA3, 0x68, 0x02, 0xF8, 0x01, 0x3B, 0x4F, 0xF6, 0xFF, 0x73, 0x13, 0xF1, 0xFF, 0x33, 0x97, 0xD3, 0x21, 0x69, 0x50, 0x29, 0xF9, 0xD1, 0x00, 0x2B, 0xAF, 0xD1, 0x91, 0xE7, 0x6F, 0xF0, 0x0F, 0x05, 0x90, 0xE7, 0x6F, 0xF0, 0x57, 0x05, 0x8D, 0xE7, 0x6F, 0xF0, 0x03, 0x05, 0x8C, 0xE7, 0x00, 0xBF, 0x7C, 0x1E, 0x05, 0x00, 0x2D, 0xE9, 0xF3, 0x41, 0x1C, 0x46, 0x29, 0x4B, 0x15, 0x46, 0x06, 0x46, 0x01, 0x91, 0x5A, 0x68, 0x98, 0x46, 0x00, 0x2A, 0x46, 0xD0, 0xFF, 0xF7, 0xD9, 0xFE, 0x01, 0x46, 0x38, 0xB1, 0x4F, 0xF0, 0xFF, 0x36, 0xFF, 0xF7, 0x19, 0xFF, 0x30, 0x46, 0x02, 0xB0, 0xBD, 0xE8, 0xF0, 0x81, 0x30, 0x46, 0xFF, 0xF7, 0xEC, 0xFE, 0x00, 0x28, 0xF2, 0xD1, 0x02, 0x2D, 0x31, 0xDC, 0x0C, 0xBF, 0x01, 0x25, 0x00, 0x25, 0x01, 0xAF, 0x3D, 0x44, 0x15, 0xF8, 0x01, 0x09, 0xFF, 0xF7, 0xA3, 0xFE, 0x06, 0x46, 0x00, 0x28, 0xE4, 0xD1, 0xEB, 0x1B, 0x01, 0x33, 0xF5, 0xD1, 0x08, 0x99, 0x23, 0x46, 0xD8, 0xF8, 0x00, 0x20, 0x60, 0x18, 0x98, 0x42, 0xDC, 0xD0, 0x13, 0xF8, 0x01, 0x1B, 0x91, 0x60, 0xD1, 0x68, 0x41, 0xF0, 0x08, 0x01, 0xD1, 0x60, 0x4F, 0xF6, 0xFF, 0x71, 0x11, 0xF1, 0xFF, 0x31, 0xCE, 0xD3, 0xD4, 0x68, 0x24, 0x07, 0xF9, 0xD5, 0x00, 0x29, 0xC9, 0xD0, 0x4F, 0xF6, 0xFF, 0x71, 0x11, 0xF1, 0xFF, 0x31, 0xC4, 0xD3, 0x14, 0x69, 0x28, 0x2C, 0xF9, 0xD1, 0x00, 0x29, 0xE2, 0xD1, 0xBE, 0xE7, 0x02, 0x25, 0xCE, 0xE7, 0x6F, 0xF0, 0x03, 0x06, 0xBD, 0xE7, 0x00, 0xBF, 0x7C, 0x1E, 0x05, 0x00, 0x70, 0xB5, 0x01, 0x22, 0x33, 0x4D, 0x04, 0x46, 0x2B, 0x68, 0x9A, 0x61, 0x4F, 0xF4, 0x80, 0x32, 0x99, 0x69, 0x09, 0xB1, 0x01, 0x3A, 0xFB, 0xD1, 0x1A, 0x6A, 0x02, 0xF0, 0x30, 0x02, 0x30, 0x2A, 0x2C, 0xD0, 0x05, 0x22, 0x0A, 0x26, 0x1A, 0x62, 0x4F, 0xF4, 0xFA, 0x70, 0xFF, 0xF7, 0xC8, 0xF8, 0x2B, 0x68, 0x1A, 0x6A, 0x92, 0x07, 0x1A, 0xD4, 0x1A, 0x6A, 0x4F, 0xF4, 0x7A, 0x70, 0x42, 0xF0, 0x08, 0x02, 0x1A, 0x62, 0x1A, 0x6A, 0x42, 0xF0, 0x02, 0x02, 0x1A, 0x62, 0xFF, 0xF7, 0xB8, 0xF8, 0x2B, 0x68, 0x4F, 0xF4, 0x7A, 0x70, 0x1A, 0x6A, 0x22, 0xF0, 0x08, 0x02, 0x1A, 0x62, 0x1A, 0x6A, 0x22, 0xF0, 0x02, 0x02, 0x1A, 0x62, 0xFF, 0xF7, 0xAB, 0xF8, 0x01, 0x3E, 0xE0, 0xD1, 0x2B, 0x68, 0x00, 0x22, 0x4F, 0xF4, 0xFA, 0x70, 0x1A, 0x62, 0xFF, 0xF7, 0xA2, 0xF8, 0x16, 0x4A, 0x84, 0xFB, 0x02, 0x23, 0xE4, 0x17, 0x00, 0x22, 0xC4, 0xEB, 0xA3, 0x14, 0x01, 0x23, 0xB4, 0xF5, 0xC8, 0x7F, 0x21, 0x46, 0xA8, 0xBF, 0x4F, 0xF4, 0xC8, 0x71, 0x64, 0x29, 0xB8, 0xBF, 0x64, 0x21, 0x64, 0x2C, 0xCC, 0xBF, 0x00, 0x24, 0x01, 0x24, 0xA2, 0x42, 0x10, 0xDB, 0x59, 0x43, 0x4F, 0xF4, 0x16, 0x60, 0x2D, 0x68, 0xFE, 0xF7, 0x1D, 0xFF, 0x01, 0x38, 0x44, 0xEA, 0xC0, 0x04, 0x6C, 0x61, 0xEB, 0x68, 0x43, 0xF0, 0x40, 0x03, 0xEB, 0x60, 0x00, 0x23, 0xEB, 0x61, 0x70, 0xBD, 0x5B, 0x00, 0x01, 0x22, 0xE9, 0xE7, 0x00, 0xBF, 0x7C, 0x1E, 0x05, 0x00, 0xD3, 0x4D, 0x62, 0x10, 0x26, 0x4B, 0x2D, 0xE9, 0xF0, 0x41, 0x04, 0x46, 0x0D, 0x46, 0x03, 0x21, 0x16, 0x46, 0x18, 0x60, 0x4F, 0xF4, 0xB0, 0x70, 0xFF, 0xF7, 0x3E, 0xFC, 0x03, 0x21, 0x40, 0xF2, 0x61, 0x10, 0xFF, 0xF7, 0x39, 0xFC, 0x21, 0x46, 0x1E, 0x48, 0xFF, 0xF7, 0xB1, 0xFB, 0x04, 0xF1, 0x7B, 0x43, 0xA3, 0xF5, 0x00, 0x53, 0x9B, 0x0A, 0x05, 0x2B, 0x1A, 0xD8, 0x1A, 0x4F, 0x39, 0x68, 0x01, 0x20, 0x03, 0xF1, 0x10, 0x02, 0x00, 0xFA, 0x02, 0xF2, 0x0A, 0x43, 0x3A, 0x60, 0xD7, 0xF8, 0x00, 0x80, 0x00, 0xFA, 0x03, 0xF4, 0x28, 0xEA, 0x04, 0x03, 0x3B, 0x60, 0x48, 0xEA, 0x04, 0x04, 0xFF, 0xF7, 0x54, 0xF8, 0x3C, 0x60, 0x31, 0x46, 0x28, 0x46, 0xBD, 0xE8, 0xF0, 0x41, 0xFF, 0xF7, 0x5B, 0xBF, 0x0E, 0x4F, 0xA4, 0xF1, 0xE1, 0x64, 0xA4, 0xF5, 0xA0, 0x54, 0xA4, 0x0A, 0x3A, 0x68, 0x01, 0x20, 0x04, 0xF1, 0x10, 0x03, 0x00, 0xFA, 0x03, 0xF3, 0x22, 0xEA, 0x03, 0x02, 0x3A, 0x60, 0x3A, 0x68, 0x13, 0x43, 0x3B, 0x60, 0xD7, 0xF8, 0x00, 0x80, 0x00, 0xFA, 0x04, 0xF4, 0xDA, 0xE7, 0x7C, 0x1E, 0x05, 0x00, 0x9F, 0x03, 0x05, 0x00, 0x1C, 0x19, 0x00, 0x03, 0x9C, 0x01, 0x01, 0x07, 0x10, 0xB5, 0x0A, 0x46, 0x09, 0x4C, 0x61, 0x68, 0x79, 0xB9, 0x09, 0x4B, 0x01, 0x46, 0x93, 0xF8, 0x26, 0x30, 0x06, 0x2B, 0x17, 0xBF, 0x03, 0xF5, 0xA0, 0x33, 0x06, 0x4B, 0x08, 0x33, 0x9B, 0x02, 0x18, 0x46, 0xFF, 0xF7, 0x97, 0xFF, 0x01, 0x23, 0x63, 0x60, 0x10, 0xBD, 0x7C, 0x1E, 0x05, 0x00, 0xD4, 0x11, 0x05, 0x00, 0x00, 0x14, 0x08, 0x07, 0x08, 0xB5, 0xFF, 0xF7, 0xE1, 0xFF, 0x00, 0x20, 0x08, 0xBD, 0x13, 0xB5, 0x01, 0x24, 0x13, 0x46, 0x00, 0x94, 0x22, 0x46, 0xC0, 0xB2, 0xFF, 0xF7, 0x0D, 0xFE, 0x02, 0xB0, 0x10, 0xBD, 0x1F, 0xB5, 0x04, 0xAB, 0x03, 0xF8, 0x01, 0x2D, 0x01, 0x22, 0xC0, 0xB2, 0x00, 0x92, 0xFF, 0xF7, 0xB0, 0xFE, 0x05, 0xB0, 0x5D, 0xF8, 0x04, 0xFB, 0x00, 0x00, 0x02, 0x4B, 0x18, 0x68, 0xC0, 0xF3, 0x00, 0x40, 0x70, 0x47, 0x00, 0xBF, 0xF8, 0x01, 0x00, 0x07, 0x70, 0xB5, 0x2F, 0x4E, 0x31, 0x68, 0xC1, 0xF3, 0x00, 0x44, 0x2E, 0x48, 0x22, 0x46, 0xFF, 0xF7, 0x27, 0xFB, 0x00, 0x25, 0x35, 0x60, 0x00, 0x2C, 0x51, 0xD0, 0x28, 0x46, 0x2A, 0x4C, 0xFF, 0xF7, 0x53, 0xFD, 0x2A, 0x4B, 0x20, 0xF0, 0x0F, 0x00, 0x98, 0x42, 0x0D, 0xD1, 0x28, 0x46, 0xFF, 0xF7, 0x4B, 0xFD, 0x00, 0xF0, 0x0F, 0x00, 0x60, 0x60, 0x06, 0x20, 0xFF, 0xF7, 0x45, 0xFD, 0xA0, 0x60, 0x07, 0x20, 0xFF, 0xF7, 0x41, 0xFD, 0xE0, 0x60, 0x63, 0x68, 0x3B, 0xB3, 0x03, 0x20, 0x00, 0x25, 0xFF, 0xF7, 0x3A, 0xFD, 0xA6, 0x68, 0x20, 0x61, 0x1D, 0x48, 0x31, 0x46, 0xFF, 0xF7, 0x00, 0xFB, 0xE2, 0x68, 0x1C, 0x49, 0x1C, 0x48, 0xFF, 0xF7, 0xFB, 0xFA, 0xD4, 0xE9, 0x02, 0x32, 0x13, 0x44, 0x9E, 0x42, 0x20, 0xD3, 0x19, 0x48, 0xFF, 0xF7, 0xF3, 0xFA, 0x2A, 0x46, 0x21, 0x69, 0x18, 0x48, 0x65, 0x61, 0xFF, 0xF7, 0xED, 0xFA, 0xD4, 0xE9, 0x04, 0x23, 0x9A, 0x42, 0x06, 0xD0, 0x15, 0x48, 0xFF, 0xF7, 0xE6, 0xFA, 0x00, 0x20, 0x00, 0xF0, 0x35, 0xF8, 0xFE, 0xE7, 0x12, 0x4C, 0x21, 0x68, 0x12, 0x48, 0xFF, 0xF7, 0xDD, 0xFA, 0x14, 0x20, 0xFE, 0xF7, 0x86, 0xFF, 0x20, 0x68, 0xBD, 0xE8, 0x70, 0x40, 0xFE, 0xF7, 0xAB, 0xBF, 0x56, 0xF8, 0x04, 0x2B, 0x15, 0x44, 0xD8, 0xE7, 0x70, 0xBD, 0xF8, 0x01, 0x00, 0x07, 0xB1, 0x03, 0x05, 0x00, 0x84, 0x1E, 0x05, 0x00, 0x10, 0x32, 0x54, 0x76, 0xE7, 0x03, 0x05, 0x00, 0x90, 0x1E, 0x05, 0x00, 0xF1, 0x03, 0x05, 0x00, 0x0C, 0x04, 0x05, 0x00, 0x1B, 0x04, 0x05, 0x00, 0x40, 0x04, 0x05, 0x00, 0xFC, 0x01, 0x00, 0x07, 0x54, 0x04, 0x05, 0x00, 0x70, 0x47, 0x00, 0x00, 0x02, 0x4A, 0x93, 0x69, 0x23, 0xF0, 0x01, 0x03, 0x93, 0x61, 0x70, 0x47, 0xA0, 0x90, 0x00, 0x03, 0x08, 0xB5, 0xFF, 0xF7, 0xF5, 0xFF, 0x07, 0x4B, 0x53, 0xF8, 0x20, 0x20, 0x02, 0xB9, 0x01, 0x30, 0x53, 0xF8, 0x20, 0x30, 0x1B, 0x01, 0x43, 0xF0, 0x01, 0x03, 0x03, 0x4A, 0x01, 0x21, 0x51, 0x61, 0x93, 0x61, 0x08, 0xBD, 0xD4, 0xFB, 0x04, 0x00, 0xA0, 0x90, 0x00, 0x03, 0x08, 0xB5, 0xFF, 0xF7, 0x41, 0xF9, 0x0C, 0x4A, 0x13, 0x68, 0x9B, 0xB2, 0x43, 0xF0, 0xBB, 0x43, 0x43, 0xF4, 0x7C, 0x13, 0x13, 0x60, 0x04, 0x32, 0x13, 0x68, 0x23, 0xF4, 0x80, 0x23, 0x43, 0xF4, 0x00, 0x23, 0x13, 0x60, 0x13, 0x68, 0x43, 0xF4, 0x80, 0x33, 0x13, 0x60, 0x03, 0x4B, 0x00, 0x20, 0x18, 0x60, 0x01, 0x22, 0x1A, 0x61, 0x08, 0xBD, 0x00, 0x00, 0x07, 0x05, 0x28, 0x00, 0x07, 0x05, 0x0B, 0x4A, 0x38, 0xB5, 0x05, 0x46, 0x01, 0x20, 0x00, 0xFA, 0x05, 0xF4, 0x40, 0xF2, 0xDC, 0x50, 0x13, 0x68, 0x23, 0x43, 0x13, 0x60, 0xFE, 0xF7, 0x17, 0xFF, 0x06, 0x4B, 0x18, 0x68, 0x20, 0x40, 0x18, 0x60, 0x18, 0xB1, 0x04, 0x4B, 0x2B, 0x44, 0x9B, 0x00, 0x18, 0x68, 0x38, 0xBD, 0x00, 0xBF, 0x08, 0x00, 0x07, 0x05, 0x38, 0x00, 0x07, 0x05, 0x20, 0xC0, 0x41, 0x01, 0x2D, 0xE9, 0xFF, 0x47, 0x06, 0x46, 0xDF, 0xF8, 0x68, 0x80, 0x4F, 0xF4, 0xE1, 0x67, 0xFE, 0xF7, 0xF3, 0xFE, 0x05, 0x46, 0x00, 0x24, 0x0D, 0xF1, 0x04, 0x0A, 0xA1, 0x46, 0x30, 0x46, 0xFF, 0xF7, 0xD1, 0xFF, 0x40, 0xF6, 0xFF, 0x71, 0x78, 0x43, 0xFE, 0xF7, 0x88, 0xFD, 0x4A, 0xF8, 0x29, 0x00, 0x09, 0xF1, 0x01, 0x09, 0xB9, 0xF1, 0x03, 0x0F, 0x04, 0x44, 0xEF, 0xD1, 0x84, 0xFB, 0x08, 0x23, 0xA3, 0xEB, 0xE4, 0x74, 0x01, 0x9B, 0xE3, 0x1A, 0x00, 0x2B, 0xB8, 0xBF, 0x5B, 0x42, 0x04, 0x2B, 0x08, 0xDD, 0xFE, 0xF7, 0xD1, 0xFE, 0x40, 0x1B, 0xB0, 0xF5, 0xFA, 0x6F, 0xDA, 0xD3, 0x03, 0x48, 0xFF, 0xF7, 0x28, 0xFA, 0x20, 0x46, 0x04, 0xB0, 0xBD, 0xE8, 0xF0, 0x87, 0x7A, 0x04, 0x05, 0x00, 0x56, 0x55, 0x55, 0x55, 0x2D, 0xE9, 0xF0, 0x41, 0x88, 0xB0, 0x61, 0x4D, 0x6C, 0x46, 0x0F, 0xCD, 0x0F, 0xC4, 0x95, 0xE8, 0x0F, 0x00, 0x5F, 0x4D, 0x84, 0xE8, 0x0F, 0x00, 0xD5, 0xF8, 0x94, 0x30, 0x00, 0x2B, 0xC0, 0xF2, 0xB1, 0x80, 0x5C, 0x48, 0xFF, 0xF7, 0xE3, 0xF8, 0x5A, 0x49, 0x02, 0x46, 0x05, 0xF5, 0x52, 0x70, 0xFF, 0xF7, 0xCC, 0xF8, 0x06, 0x46, 0x00, 0x28, 0x40, 0xF0, 0x9C, 0x80, 0x01, 0x22, 0x06, 0x21, 0x05, 0xF5, 0x55, 0x70, 0xFF, 0xF7, 0xA0, 0xFA, 0x95, 0xF8, 0x50, 0x83, 0xB8, 0xF1, 0x01, 0x0F, 0x4D, 0xD1, 0xDF, 0xF8, 0x54, 0xC1, 0x2C, 0x46, 0x30, 0x46, 0x33, 0x46, 0x24, 0x27, 0x42, 0x46, 0x94, 0xF8, 0x54, 0x13, 0x69, 0xB1, 0x01, 0x39, 0x94, 0xF8, 0x55, 0xE3, 0x79, 0x43, 0x51, 0xF8, 0x0C, 0x80, 0x02, 0xFA, 0x0E, 0xF1, 0x01, 0xEA, 0x08, 0x01, 0x21, 0xFA, 0x0E, 0xF1, 0x81, 0x40, 0x0B, 0x43, 0x01, 0x30, 0x08, 0x34, 0x04, 0x28, 0xEA, 0xD1, 0x00, 0x24, 0x0F, 0x27, 0x13, 0xEB, 0xC4, 0x04, 0x0C, 0xD0, 0x61, 0x1E, 0xC9, 0x01, 0x6B, 0x18, 0xD3, 0xF8, 0x74, 0x83, 0xB8, 0xF1, 0x00, 0x0F, 0x5F, 0xD1, 0x21, 0x46, 0x44, 0x46, 0x3B, 0x48, 0xFF, 0xF7, 0xC9, 0xF9, 0x01, 0x21, 0x05, 0xEB, 0xC6, 0x13, 0xD3, 0xF8, 0x74, 0x33, 0x03, 0xB1, 0x01, 0x31, 0x01, 0x36, 0xB7, 0x42, 0xF6, 0xD1, 0x22, 0x46, 0x35, 0x48, 0xFF, 0xF7, 0xBB, 0xF9, 0xFF, 0xF7, 0xB3, 0xF9, 0x03, 0x28, 0x0B, 0xD9, 0x33, 0x4D, 0x00, 0x24, 0x33, 0x4E, 0x21, 0x46, 0x55, 0xF8, 0x04, 0x2F, 0x30, 0x46, 0x01, 0x34, 0xFF, 0xF7, 0xAD, 0xF9, 0x20, 0x2C, 0xF6, 0xD1, 0x00, 0x20, 0x47, 0xE0, 0xB8, 0xF1, 0x00, 0x0F, 0x31, 0xD0, 0x95, 0xF8, 0x51, 0x03, 0xFF, 0xF7, 0x48, 0xFF, 0x6A, 0x46, 0x33, 0x46, 0x52, 0xF8, 0x04, 0x1F, 0x5C, 0x1C, 0x52, 0xF8, 0x04, 0x7C, 0x39, 0x44, 0xB0, 0xEB, 0x51, 0x0F, 0x07, 0xD3, 0x07, 0x2C, 0x23, 0x46, 0xF3, 0xD1, 0xB8, 0xF1, 0x03, 0x0F, 0x04, 0xD0, 0x27, 0x46, 0xB8, 0xE7, 0xB8, 0xF1, 0x03, 0x0F, 0x1B, 0xD1, 0x00, 0x22, 0x05, 0xEB, 0xC2, 0x01, 0x91, 0xF8, 0x54, 0x43, 0x1C, 0xB9, 0x01, 0x32, 0x04, 0x2A, 0xA8, 0xD0, 0xF6, 0xE7, 0x24, 0x21, 0x01, 0x3C, 0x05, 0xEB, 0xC2, 0x02, 0x4C, 0x43, 0x18, 0x49, 0x92, 0xF8, 0x55, 0x23, 0x61, 0x58, 0x01, 0x24, 0x94, 0x40, 0x0C, 0x40, 0xD4, 0x40, 0x99, 0xE7, 0x34, 0x46, 0x33, 0x46, 0x07, 0x27, 0x96, 0xE7, 0x00, 0x24, 0xFB, 0xE7, 0x01, 0xF5, 0x5D, 0x71, 0x80, 0x22, 0x29, 0x44, 0x0F, 0x48, 0xFF, 0xF7, 0x4D, 0xF8, 0x9C, 0xE7, 0x0E, 0x48, 0xFF, 0xF7, 0x63, 0xF9, 0x4F, 0xF0, 0xFF, 0x30, 0x08, 0xB0, 0xBD, 0xE8, 0xF0, 0x81, 0x0B, 0x48, 0xFF, 0xF7, 0x5B, 0xF9, 0x9E, 0xE7, 0x18, 0xFC, 0x04, 0x00, 0x00, 0x80, 0x04, 0x00, 0x8F, 0x04, 0x05, 0x00, 0x98, 0x04, 0x05, 0x00, 0xBE, 0x04, 0x05, 0x00, 0x34, 0x80, 0x04, 0x00, 0x0C, 0x05, 0x05, 0x00, 0x10, 0xB0, 0x00, 0x03, 0x38, 0x80, 0x04, 0x00, 0xE1, 0x04, 0x05, 0x00, 0xF6, 0x04, 0x05, 0x00, 0x08, 0xB5, 0x83, 0x6F, 0x1B, 0x05, 0x0B, 0xD5, 0x04, 0xF0, 0x9C, 0xFE, 0x20, 0xB1, 0x05, 0x48, 0xBD, 0xE8, 0x08, 0x40, 0xFF, 0xF7, 0x38, 0xB9, 0xBD, 0xE8, 0x08, 0x40, 0xFE, 0xF7, 0xFA, 0xBD, 0x08, 0xBD, 0x00, 0xBF, 0x20, 0x05, 0x05, 0x00, 0x80, 0xEA, 0x01, 0x20, 0x08, 0x23, 0x48, 0xF2, 0x05, 0x01, 0x42, 0x00, 0x01, 0x3B, 0x9B, 0xB2, 0x00, 0x04, 0x92, 0xB2, 0x4C, 0xBF, 0x82, 0xEA, 0x01, 0x00, 0x10, 0x46, 0x00, 0x2B, 0xF4, 0xD1, 0x70, 0x47, 0x38, 0xB5, 0x0D, 0x46, 0x04, 0x46, 0x2C, 0x44, 0xFF, 0xF7, 0xE9, 0xFF, 0x44, 0xEA, 0x00, 0x40, 0x38, 0xBD, 0x82, 0xB0, 0x00, 0x23, 0x01, 0x93, 0x1F, 0x4B, 0x1B, 0x68, 0x9B, 0xB2, 0x01, 0x93, 0x01, 0x9B, 0xB3, 0xF5, 0xA8, 0x4F, 0x2C, 0xD0, 0x11, 0xDC, 0xB3, 0xF5, 0x10, 0x5F, 0x2C, 0xD0, 0x05, 0xDC, 0xB3, 0xF5, 0x00, 0x5F, 0x1E, 0xD0, 0x00, 0x20, 0x02, 0xB0, 0x70, 0x47, 0xB3, 0xF5, 0x30, 0x5F, 0x20, 0xD0, 0xB3, 0xF5, 0xA0, 0x4F, 0xF6, 0xD1, 0x01, 0x21, 0x14, 0xE0, 0xB3, 0xF5, 0xD8, 0x4F, 0x14, 0xD0, 0x07, 0xDC, 0xB3, 0xF5, 0xB8, 0x4F, 0x1A, 0xD0, 0xB3, 0xF5, 0xBA, 0x4F, 0xEA, 0xD1, 0x09, 0x21, 0x08, 0xE0, 0xB3, 0xF5, 0xE8, 0x4F, 0x10, 0xD0, 0xB3, 0xF5, 0xF8, 0x4F, 0xE2, 0xD1, 0x04, 0x21, 0x00, 0xE0, 0x0A, 0x21, 0x02, 0xB0, 0xFF, 0xF7, 0xC1, 0xBF, 0x08, 0x21, 0xFA, 0xE7, 0x07, 0x21, 0xF8, 0xE7, 0x06, 0x21, 0xF6, 0xE7, 0x05, 0x21, 0xF4, 0xE7, 0x03, 0x21, 0xF2, 0xE7, 0x02, 0x21, 0xF0, 0xE7, 0x00, 0x62, 0x00, 0x03, 0x01, 0x4B, 0x18, 0x47, 0x70, 0x47, 0x00, 0xBF, 0xE8, 0x90, 0x04, 0x00, 0x01, 0x4B, 0x18, 0x47, 0x70, 0x47, 0x00, 0xBF, 0xF0, 0x90, 0x04, 0x00, 0x01, 0x4B, 0x18, 0x47, 0x70, 0x47, 0x00, 0xBF, 0x8C, 0x91, 0x04, 0x00, 0x01, 0x4B, 0x18, 0x47, 0x70, 0x47, 0x00, 0xBF, 0xAC, 0x91, 0x04, 0x00, 0x01, 0x4B, 0x18, 0x47, 0x70, 0x47, 0x00, 0xBF, 0x04, 0x92, 0x04, 0x00, 0x01, 0x4B, 0x18, 0x47, 0x70, 0x47, 0x00, 0xBF, 0x84, 0x92, 0x04, 0x00, 0x01, 0x4B, 0x18, 0x47, 0x70, 0x47, 0x00, 0xBF, 0x00, 0x93, 0x04, 0x00, 0x10, 0xB5, 0x14, 0x46, 0x1A, 0x46, 0x02, 0x9B, 0x2B, 0xB1, 0xFF, 0xF7, 0xE1, 0xFF, 0x00, 0x30, 0x18, 0xBF, 0x01, 0x20, 0x10, 0xBD, 0xE4, 0x00, 0xFF, 0xF7, 0xDA, 0xFF, 0xE0, 0x40, 0xC0, 0xB2, 0xF5, 0xE7, 0x00, 0x00, 0x2D, 0xE9, 0xF0, 0x4F, 0x84, 0x46, 0x5E, 0x4C, 0x0F, 0x46, 0x16, 0x46, 0x8F, 0xB0, 0x08, 0xAD, 0x0D, 0xF1, 0x20, 0x0A, 0x0F, 0xCC, 0x0F, 0xC5, 0x94, 0xE8, 0x03, 0x00, 0x85, 0xE8, 0x03, 0x00, 0xBC, 0xF1, 0x00, 0x0F, 0x49, 0xD0, 0x4F, 0xEA, 0x5C, 0x05, 0x0C, 0xF1, 0x80, 0x44, 0x08, 0x34, 0x05, 0xF1, 0x80, 0x45, 0x0C, 0x35, 0x03, 0x2E, 0x02, 0xD9, 0x07, 0x2E, 0x40, 0xD8, 0x04, 0x3E, 0x4F, 0xF0, 0x00, 0x08, 0xEB, 0x19, 0x4F, 0xF0, 0x00, 0x09, 0x04, 0x93, 0x07, 0xF1, 0x80, 0x43, 0x05, 0x93, 0x5A, 0xF8, 0x29, 0xB0, 0x28, 0x46, 0x04, 0x99, 0x5A, 0x46, 0xFF, 0xF7, 0xAC, 0xFF, 0x5A, 0x46, 0x05, 0x99, 0x4F, 0xF0, 0x80, 0x40, 0xFF, 0xF7, 0xA6, 0xFF, 0x3A, 0x46, 0x21, 0x46, 0x4F, 0xF0, 0x80, 0x40, 0xFF, 0xF7, 0xAC, 0xFF, 0x18, 0x9B, 0x32, 0x46, 0x29, 0x46, 0x20, 0x46, 0x00, 0x93, 0x3B, 0x46, 0xFF, 0xF7, 0xAA, 0xFF, 0x03, 0x90, 0x00, 0x28, 0x73, 0xD1, 0x09, 0xF1, 0x01, 0x09, 0xB9, 0xF1, 0x06, 0x0F, 0xDC, 0xD1, 0xF3, 0x00, 0x4F, 0xF0, 0x01, 0x09, 0x07, 0x93, 0x08, 0x33, 0x43, 0x44, 0x4F, 0xEA, 0xC6, 0x08, 0x06, 0x93, 0x06, 0x9B, 0x43, 0x45, 0x0F, 0xD8, 0x4F, 0xF0, 0x00, 0x0A, 0xDD, 0xF8, 0x1C, 0x90, 0x50, 0xE0, 0x32, 0x4C, 0x32, 0x4D, 0xBA, 0xE7, 0x08, 0x2E, 0x01, 0xD0, 0x00, 0x26, 0xBB, 0xE7, 0x4F, 0xF0, 0x18, 0x08, 0x00, 0x26, 0xB9, 0xE7, 0x09, 0xFA, 0x08, 0xFA, 0x04, 0x99, 0x28, 0x46, 0x52, 0x46, 0xFF, 0xF7, 0x6D, 0xFF, 0x52, 0x46, 0x05, 0x99, 0x4F, 0xF0, 0x80, 0x40, 0xFF, 0xF7, 0x67, 0xFF, 0x3A, 0x46, 0x21, 0x46, 0x4F, 0xF0, 0x80, 0x40, 0xFF, 0xF7, 0x6D, 0xFF, 0x18, 0x9B, 0x32, 0x46, 0x29, 0x46, 0x20, 0x46, 0x00, 0x93, 0x3B, 0x46, 0xFF, 0xF7, 0x6B, 0xFF, 0xA8, 0xBB, 0x08, 0xF1, 0x01, 0x08, 0xCD, 0xE7, 0x01, 0x23, 0x03, 0xFA, 0x09, 0xFB, 0xBA, 0xF1, 0x00, 0x0F, 0x29, 0xD1, 0x6F, 0xEA, 0x0B, 0x08, 0xD3, 0x46, 0x5B, 0x46, 0x42, 0x46, 0x04, 0x99, 0x28, 0x46, 0xFF, 0xF7, 0x4C, 0xFF, 0x5B, 0x46, 0x42, 0x46, 0x05, 0x99, 0x4F, 0xF0, 0x80, 0x40, 0xFF, 0xF7, 0x45, 0xFF, 0x3A, 0x46, 0x21, 0x46, 0x4F, 0xF0, 0x80, 0x40, 0xFF, 0xF7, 0x45, 0xFF, 0x18, 0x9B, 0x32, 0x46, 0x29, 0x46, 0x20, 0x46, 0x00, 0x93, 0x3B, 0x46, 0xFF, 0xF7, 0x43, 0xFF, 0x68, 0xB9, 0x09, 0xF1, 0x01, 0x09, 0x06, 0x9B, 0x4B, 0x45, 0xD5, 0xD8, 0xBA, 0xF1, 0x00, 0x0F, 0x06, 0xD1, 0x4F, 0xF0, 0x01, 0x0A, 0xA2, 0xE7, 0x4F, 0xF0, 0xFF, 0x38, 0xD5, 0xE7, 0x03, 0x90, 0x03, 0x98, 0x0F, 0xB0, 0xBD, 0xE8, 0xF0, 0x8F, 0x00, 0xBF, 0x38, 0xFC, 0x04, 0x00, 0x08, 0x00, 0x00, 0x60, 0x0C, 0x00, 0x00, 0x50, 0x2D, 0xE9, 0xF0, 0x41, 0x4F, 0xF0, 0x01, 0x34, 0xDF, 0xF8, 0x3C, 0xC0, 0x62, 0x43, 0x00, 0x24, 0x09, 0x1A, 0xDF, 0xF8, 0x38, 0xE0, 0x25, 0x46, 0x94, 0x42, 0x05, 0xD1, 0xD8, 0x00, 0x25, 0xFA, 0x00, 0xF0, 0xC0, 0xB2, 0xBD, 0xE8, 0xF0, 0x81, 0x0F, 0x58, 0x04, 0xEB, 0x0C, 0x06, 0x50, 0xF8, 0x04, 0x8B, 0x7E, 0x40, 0x04, 0xEB, 0x0E, 0x07, 0x87, 0xEA, 0x08, 0x07, 0x04, 0xF1, 0x01, 0x34, 0x3E, 0x43, 0x35, 0x43, 0xE8, 0xE7, 0x00, 0xBF, 0x98, 0xBA, 0xDC, 0xFE, 0x67, 0x45, 0x23, 0x01, 0x2D, 0xE9, 0xF0, 0x4F, 0xAD, 0xF6, 0x34, 0x5D, 0x04, 0x46, 0x50, 0x22, 0x00, 0x21, 0x34, 0xA8, 0xFE, 0xF7, 0x7E, 0xFE, 0x50, 0x22, 0x00, 0x21, 0x48, 0xA8, 0x18, 0xAD, 0xFE, 0xF7, 0x78, 0xFE, 0x4F, 0xF4, 0x00, 0x62, 0x00, 0x21, 0x0D, 0xF5, 0xA6, 0x60, 0xDF, 0xF8, 0x40, 0x83, 0xFE, 0xF7, 0x6F, 0xFE, 0x40, 0x22, 0x00, 0x21, 0x24, 0xA8, 0xDF, 0xF8, 0x34, 0xA3, 0xFE, 0xF7, 0x68, 0xFE, 0x4F, 0xF4, 0x70, 0x72, 0x00, 0x21, 0x5C, 0xA8, 0xC1, 0x46, 0xFE, 0xF7, 0x61, 0xFE, 0x20, 0x22, 0x00, 0x21, 0x1C, 0xA8, 0xFE, 0xF7, 0x5C, 0xFE, 0xBA, 0x4B, 0xE7, 0x6E, 0x26, 0x68, 0x0F, 0xCB, 0x85, 0xE8, 0x0F, 0x00, 0xA3, 0x6F, 0x0D, 0x93, 0x63, 0x69, 0x14, 0x93, 0xA3, 0x6E, 0x11, 0x93, 0x4F, 0xF4, 0xB4, 0x73, 0x23, 0x60, 0x48, 0xF6, 0x88, 0x03, 0x63, 0x61, 0x3B, 0x0C, 0x1B, 0x04, 0xE3, 0x66, 0x63, 0x68, 0x08, 0x2B, 0x4F, 0xF0, 0x00, 0x03, 0x0A, 0xBF, 0x4F, 0xF0, 0x10, 0x32, 0x23, 0x67, 0x22, 0x67, 0x63, 0x67, 0x20, 0x46, 0x03, 0xF0, 0xB8, 0xFC, 0xA3, 0x6F, 0x83, 0x46, 0xD8, 0x07, 0x09, 0xD4, 0x20, 0x46, 0x03, 0xF0, 0xDF, 0xFD, 0x05, 0x46, 0x20, 0x46, 0x03, 0xF0, 0xAD, 0xFC, 0x28, 0x40, 0x0B, 0xEA, 0x00, 0x0B, 0x20, 0x46, 0x01, 0x25, 0x00, 0xF0, 0xCE, 0xFF, 0x40, 0x08, 0x4F, 0xF4, 0x00, 0x41, 0x2B, 0x46, 0x00, 0x05, 0x08, 0x22, 0xC8, 0xF8, 0x00, 0x00, 0x00, 0x95, 0xFF, 0xF7, 0xA7, 0xFE, 0x00, 0x28, 0x14, 0xBF, 0x4F, 0xF0, 0x00, 0x0B, 0x0B, 0xF0, 0x01, 0x0B, 0x61, 0x69, 0xBB, 0xF1, 0x00, 0x0F, 0x13, 0xD1, 0x50, 0x46, 0xFE, 0xF7, 0x30, 0xFF, 0x61, 0x69, 0x01, 0xF5, 0x08, 0x53, 0x22, 0x33, 0xB3, 0xF5, 0x80, 0x3F, 0x63, 0x61, 0xCA, 0xD3, 0x91, 0x48, 0xFE, 0xF7, 0x25, 0xFF, 0x10, 0x95, 0x10, 0x98, 0x0D, 0xF6, 0x34, 0x5D, 0xBD, 0xE8, 0xF0, 0x8F, 0x8E, 0x48, 0xFE, 0xF7, 0x1C, 0xFF, 0xE3, 0x69, 0x4F, 0xF0, 0x80, 0x42, 0xD9, 0xF8, 0x00, 0x10, 0xDF, 0xF8, 0x50, 0xC2, 0x13, 0xF0, 0x01, 0x0F, 0x89, 0x48, 0x0C, 0xBF, 0x04, 0x23, 0x02, 0x23, 0x0C, 0x93, 0x01, 0xF1, 0x80, 0x43, 0x0C, 0x33, 0x0C, 0x31, 0x08, 0x93, 0x85, 0x4B, 0x13, 0x60, 0x03, 0xEB, 0x0C, 0x05, 0x03, 0xF1, 0x01, 0x33, 0x8D, 0x50, 0x83, 0x42, 0x02, 0xF1, 0x04, 0x02, 0xF5, 0xD1, 0x14, 0x9B, 0x31, 0x46, 0x26, 0x60, 0xE7, 0x66, 0x63, 0x61, 0x7E, 0x48, 0xFE, 0xF7, 0xF6, 0xFE, 0xA3, 0x6F, 0xC3, 0xF3, 0x41, 0x62, 0x0A, 0x92, 0x00, 0x2A, 0x00, 0xF0, 0xA9, 0x80, 0x62, 0x68, 0x03, 0x2A, 0x00, 0xF0, 0x81, 0x80, 0x04, 0x2A, 0x00, 0xF0, 0x87, 0x80, 0x07, 0x2A, 0x00, 0xF0, 0x8D, 0x80, 0x08, 0x2A, 0x00, 0xF0, 0x93, 0x80, 0xFC, 0x22, 0x0F, 0x92, 0x00, 0x22, 0x05, 0x92, 0x0A, 0x92, 0x09, 0x92, 0x0C, 0x9A, 0x02, 0x2A, 0x0C, 0xBF, 0x5A, 0x46, 0x02, 0x22, 0x0B, 0x92, 0x13, 0xF0, 0x00, 0x73, 0x00, 0xF0, 0x6C, 0x81, 0x6B, 0x48, 0x4F, 0xF0, 0x01, 0x08, 0xFE, 0xF7, 0xCD, 0xFE, 0x09, 0x9A, 0xFF, 0x23, 0x05, 0x9E, 0x03, 0xFA, 0x02, 0xF2, 0xD2, 0x43, 0x07, 0x92, 0x0B, 0x9A, 0xD7, 0x00, 0x09, 0x9A, 0xBB, 0x40, 0x08, 0xFA, 0x07, 0xF7, 0xDB, 0x43, 0x0E, 0x93, 0x04, 0x23, 0x93, 0x40, 0x10, 0x93, 0x05, 0x9B, 0x93, 0x40, 0x06, 0x93, 0xA3, 0x6E, 0x20, 0x46, 0x07, 0x9A, 0x4F, 0xEA, 0xA6, 0x0A, 0x4F, 0xF0, 0x00, 0x09, 0x4D, 0x46, 0x13, 0x40, 0x06, 0x9A, 0x13, 0x43, 0xA3, 0x66, 0x03, 0xF0, 0x08, 0xFC, 0x0D, 0xF5, 0xA6, 0x63, 0x03, 0xEB, 0x4A, 0x1A, 0x63, 0x6F, 0x20, 0x46, 0x0E, 0x9A, 0x13, 0x40, 0x43, 0xEA, 0x09, 0x03, 0x63, 0x67, 0x01, 0xF0, 0x91, 0xFB, 0x0B, 0x9B, 0x4F, 0xF4, 0x80, 0x72, 0x08, 0x99, 0x4F, 0xF0, 0x80, 0x40, 0xFF, 0xF7, 0xC5, 0xFE, 0x00, 0x28, 0x54, 0xD0, 0x00, 0x23, 0x0A, 0xF8, 0x05, 0x30, 0x01, 0x35, 0xB9, 0x44, 0x3F, 0x2D, 0xE5, 0xD1, 0x06, 0x9B, 0x04, 0x36, 0x10, 0x9A, 0x13, 0x44, 0x06, 0x93, 0x0F, 0x9B, 0xB3, 0x42, 0xCB, 0xDA, 0x00, 0x25, 0x3E, 0x22, 0xA8, 0x46, 0x2F, 0x46, 0x2E, 0x46, 0x0F, 0x9B, 0x4F, 0xF0, 0x00, 0x0C, 0xE2, 0x46, 0x98, 0x10, 0x0D, 0xF5, 0xA6, 0x61, 0x01, 0xEB, 0x40, 0x10, 0x80, 0x5C, 0x01, 0x28, 0x37, 0xD1, 0xBC, 0xF1, 0x00, 0x0F, 0x00, 0xF0, 0x83, 0x80, 0x05, 0x99, 0x99, 0x42, 0x41, 0xD1, 0x8C, 0x46, 0x34, 0xE0, 0xE0, 0x22, 0x0F, 0x92, 0x30, 0x22, 0x05, 0x92, 0x40, 0xF2, 0xDC, 0x52, 0x0A, 0x92, 0x00, 0x22, 0x83, 0xE7, 0xF0, 0x22, 0x0F, 0x92, 0x40, 0x22, 0x05, 0x92, 0x4F, 0xF4, 0x96, 0x62, 0x0A, 0x92, 0x08, 0x22, 0x7A, 0xE7, 0xF0, 0x22, 0x0F, 0x92, 0x40, 0x22, 0x05, 0x92, 0x4F, 0xF4, 0x96, 0x62, 0x0A, 0x92, 0x10, 0x22, 0x71, 0xE7, 0x90, 0x22, 0x0F, 0x92, 0x10, 0x22, 0x05, 0x92, 0x40, 0xF2, 0x4C, 0x42, 0x0A, 0x92, 0x18, 0x22, 0x68, 0xE7, 0x0A, 0x9A, 0x0B, 0x92, 0x09, 0x92, 0xFC, 0x22, 0x0F, 0x92, 0x0A, 0x9A, 0x05, 0x92, 0x67, 0xE7, 0x0A, 0xF8, 0x05, 0x80, 0xAA, 0xE7, 0x78, 0xB9, 0xBC, 0xF1, 0x01, 0x0F, 0x0C, 0xD1, 0x03, 0xF1, 0x04, 0x0C, 0xAA, 0xEB, 0x0C, 0x0E, 0x0E, 0xF1, 0x04, 0x09, 0xC1, 0x45, 0x04, 0xDD, 0x0E, 0xF1, 0x01, 0x08, 0x15, 0x46, 0x57, 0x46, 0x66, 0x46, 0x05, 0x99, 0x04, 0x3B, 0x84, 0x46, 0x99, 0x42, 0xA9, 0xDD, 0x12, 0xF1, 0xFF, 0x32, 0xA2, 0xD2, 0x0A, 0x9B, 0x02, 0x95, 0x0B, 0x99, 0x13, 0x48, 0x03, 0xFB, 0x08, 0xF2, 0x12, 0x4B, 0xA2, 0xFB, 0x03, 0x23, 0x32, 0x46, 0xDB, 0x09, 0xCD, 0xE9, 0x00, 0x83, 0x3B, 0x46, 0xFE, 0xF7, 0x12, 0xFE, 0xB8, 0xF1, 0x0B, 0x0F, 0x00, 0xF3, 0x8C, 0x80, 0x0C, 0x21, 0x0C, 0x48, 0xFE, 0xF7, 0x0A, 0xFE, 0xCD, 0xF8, 0x40, 0xB0, 0xE2, 0xE6, 0x00, 0xBF, 0x50, 0xFC, 0x04, 0x00, 0x73, 0x05, 0x05, 0x00, 0xA1, 0x05, 0x05, 0x00, 0x67, 0x46, 0x24, 0x02, 0x67, 0x45, 0x23, 0x01, 0xC1, 0x05, 0x05, 0x00, 0xD4, 0x05, 0x05, 0x00, 0xE0, 0x05, 0x05, 0x00, 0x81, 0x80, 0x80, 0x80, 0x0B, 0x06, 0x05, 0x00, 0x9C, 0x1E, 0x05, 0x00, 0x4B, 0x05, 0x05, 0x00, 0x31, 0x75, 0xB9, 0xFD, 0x9A, 0x46, 0xBF, 0xE7, 0xB3, 0x10, 0x09, 0xFB, 0x03, 0xFC, 0x4F, 0xEA, 0x43, 0x1E, 0x05, 0xEB, 0x0E, 0x00, 0x40, 0x44, 0xAC, 0xEB, 0x08, 0x0C, 0x10, 0xF8, 0x01, 0xA9, 0xBA, 0xF1, 0x01, 0x0F, 0x0B, 0xD1, 0x12, 0xF8, 0x03, 0xA0, 0x0A, 0xF1, 0x01, 0x0A, 0x02, 0xF8, 0x03, 0xA0, 0x0C, 0xEB, 0x00, 0x0A, 0xBA, 0xF1, 0xFF, 0x3F, 0xEF, 0xD1, 0x02, 0xE0, 0xBA, 0xF1, 0x00, 0x0F, 0xF6, 0xD1, 0x05, 0xF1, 0x01, 0x0C, 0xC6, 0x44, 0xBC, 0xF1, 0x3E, 0x0F, 0xD0, 0x5C, 0x0C, 0xDC, 0x1E, 0xF8, 0x0C, 0xA0, 0xBA, 0xF1, 0x01, 0x0F, 0x04, 0xD1, 0x01, 0x30, 0xD0, 0x54, 0x0C, 0xF1, 0x01, 0x0C, 0xF1, 0xE7, 0xBA, 0xF1, 0x00, 0x0F, 0xF9, 0xD1, 0x12, 0xF8, 0x01, 0xC0, 0x04, 0x36, 0x84, 0x45, 0x38, 0xBF, 0x19, 0x46, 0xBE, 0x42, 0xC5, 0xDD, 0x88, 0x00, 0x24, 0xAE, 0x02, 0x46, 0x03, 0x46, 0x05, 0x9D, 0xAB, 0x42, 0x2D, 0xDA, 0x04, 0x30, 0x24, 0xAE, 0x0F, 0x9D, 0x03, 0x1F, 0xA8, 0x42, 0x30, 0xDD, 0xD1, 0x18, 0xA6, 0x48, 0x01, 0xEB, 0xD1, 0x71, 0x49, 0x10, 0x13, 0x91, 0x00, 0x91, 0x0B, 0x99, 0xFE, 0xF7, 0x99, 0xFD, 0x11, 0x9A, 0x07, 0x9B, 0x09, 0x99, 0xA1, 0x48, 0x13, 0x40, 0x13, 0x9A, 0x8A, 0x40, 0x13, 0x43, 0xA3, 0x66, 0x19, 0x46, 0x11, 0x93, 0xFE, 0xF7, 0x8C, 0xFD, 0x20, 0x46, 0x03, 0xF0, 0xE7, 0xFA, 0x01, 0x28, 0x10, 0x90, 0x21, 0xD0, 0x9A, 0x48, 0xFE, 0xF7, 0x83, 0xFD, 0x77, 0xE7, 0x00, 0x21, 0x0D, 0xF5, 0xA6, 0x68, 0x6F, 0xF0, 0x1F, 0x09, 0x24, 0xAA, 0xC8, 0xE7, 0x9D, 0x10, 0x77, 0x5D, 0x75, 0x5C, 0x03, 0x3D, 0xAF, 0x42, 0xCB, 0xDB, 0x1A, 0x46, 0x04, 0x3B, 0xC5, 0xE7, 0x00, 0x28, 0x05, 0x46, 0xB8, 0xBF, 0xC5, 0x1C, 0xAD, 0x10, 0x77, 0x5D, 0x75, 0x5C, 0x01, 0x3D, 0xAF, 0x42, 0xC4, 0xDB, 0x04, 0x30, 0xBE, 0xE7, 0x13, 0x93, 0xD7, 0xE7, 0x0D, 0x9B, 0x8A, 0x48, 0xC3, 0xF3, 0x02, 0x23, 0x12, 0x93, 0x5B, 0x00, 0x0D, 0x93, 0xFE, 0xF7, 0x5B, 0xFD, 0x34, 0xAB, 0x0E, 0x93, 0x1D, 0x46, 0x00, 0x23, 0xCD, 0xE9, 0x06, 0x33, 0x06, 0x9B, 0x4F, 0xF0, 0x0F, 0x09, 0x62, 0x69, 0x01, 0x27, 0x00, 0x26, 0x4F, 0xEA, 0x83, 0x0A, 0x22, 0xFA, 0x0A, 0xF2, 0x09, 0xFA, 0x0A, 0xF9, 0x02, 0xF0, 0x0F, 0x03, 0x6F, 0xEA, 0x09, 0x09, 0x15, 0x93, 0x2B, 0x61, 0x06, 0x9B, 0x4F, 0xEA, 0xC3, 0x0B, 0x3F, 0x23, 0x03, 0xFA, 0x0B, 0xF3, 0x6F, 0xEA, 0x03, 0x08, 0x63, 0x6F, 0x06, 0xFA, 0x0B, 0xF2, 0x20, 0x46, 0x08, 0xEA, 0x03, 0x03, 0x13, 0x43, 0x63, 0x67, 0x01, 0xF0, 0x25, 0xFA, 0x06, 0x9B, 0x4F, 0xF4, 0x80, 0x72, 0x08, 0x99, 0x4F, 0xF0, 0x80, 0x40, 0xFF, 0xF7, 0x59, 0xFD, 0x03, 0x46, 0x00, 0x28, 0x3F, 0xD1, 0x00, 0x2F, 0x4D, 0xD0, 0x2E, 0x60, 0x76, 0xB9, 0x2B, 0x69, 0x0D, 0x2B, 0x63, 0xD8, 0x62, 0x69, 0x01, 0x33, 0x2B, 0x61, 0x03, 0xFA, 0x0A, 0xF3, 0x4F, 0xF0, 0xFF, 0x36, 0x09, 0xEA, 0x02, 0x02, 0x13, 0x43, 0x63, 0x61, 0x01, 0x23, 0x01, 0x36, 0x1F, 0x46, 0x40, 0x2E, 0xD3, 0xD1, 0x2A, 0x69, 0x15, 0x98, 0xD5, 0xE9, 0x00, 0x31, 0x12, 0x1A, 0x57, 0x00, 0xC8, 0x18, 0x4E, 0x1C, 0xC7, 0xEB, 0x50, 0x07, 0xF6, 0x1A, 0xAE, 0x60, 0xEF, 0x60, 0x5A, 0x48, 0xCD, 0xE9, 0x01, 0x67, 0x07, 0xF0, 0x3F, 0x07, 0x00, 0x91, 0x07, 0xFA, 0x0B, 0xFB, 0x06, 0x99, 0xFE, 0xF7, 0xF7, 0xFC, 0x07, 0x9B, 0x08, 0xEA, 0x03, 0x08, 0x4B, 0xEA, 0x08, 0x03, 0x07, 0x93, 0x63, 0x67, 0x0D, 0x9B, 0x9E, 0x42, 0x35, 0xD2, 0x14, 0x22, 0x06, 0x99, 0x5A, 0x43, 0x4F, 0x48, 0xFE, 0xF7, 0xE7, 0xFC, 0xC1, 0xE5, 0x77, 0xB9, 0x29, 0x68, 0x72, 0x1E, 0x6A, 0x60, 0x16, 0x90, 0x52, 0x1A, 0x02, 0x2A, 0xAA, 0x60, 0xCD, 0xD8, 0x03, 0x22, 0x06, 0x99, 0x49, 0x48, 0xFE, 0xF7, 0xD8, 0xFC, 0x16, 0x9B, 0xC2, 0xE7, 0x1F, 0x43, 0xC0, 0xD1, 0x3F, 0x2E, 0x6E, 0x60, 0x17, 0xD1, 0x2B, 0x69, 0x29, 0x68, 0x01, 0x2B, 0xBD, 0xD9, 0x02, 0x29, 0xBB, 0xD9, 0x62, 0x69, 0x01, 0x3B, 0x2B, 0x61, 0x03, 0xFA, 0x0A, 0xF3, 0x02, 0x39, 0x09, 0xEA, 0x02, 0x02, 0x29, 0x60, 0x13, 0x43, 0x3C, 0x26, 0x63, 0x61, 0x3D, 0x23, 0x6B, 0x60, 0x3B, 0x46, 0xA7, 0xE7, 0x33, 0x46, 0xA5, 0xE7, 0x3B, 0x46, 0xA3, 0xE7, 0x06, 0x9B, 0x14, 0x35, 0x01, 0x33, 0x06, 0x93, 0x06, 0x9A, 0x0C, 0x9B, 0x93, 0x42, 0x7F, 0xF4, 0x59, 0xAF, 0x14, 0x9B, 0x07, 0x99, 0x32, 0x48, 0x63, 0x61, 0xFE, 0xF7, 0xA8, 0xFC, 0xA3, 0x6F, 0x13, 0xF0, 0x80, 0x63, 0x08, 0x93, 0x00, 0xF0, 0x22, 0x82, 0x63, 0x68, 0x04, 0x2B, 0x02, 0xD0, 0x08, 0x2B, 0x40, 0xF0, 0x20, 0x82, 0x2B, 0x48, 0xFE, 0xF7, 0x99, 0xFC, 0x63, 0x68, 0x04, 0x2B, 0x55, 0xD1, 0xA3, 0x6B, 0x00, 0x25, 0xA9, 0x46, 0x0C, 0x93, 0x0B, 0x9B, 0xDA, 0x00, 0xFF, 0x23, 0x93, 0x40, 0x6F, 0xEA, 0x03, 0x0A, 0x01, 0x23, 0x93, 0x40, 0x08, 0x93, 0xA3, 0x6B, 0x20, 0x46, 0x4F, 0xEA, 0x65, 0x08, 0x00, 0x27, 0x3E, 0x46, 0x23, 0xF0, 0x3F, 0x03, 0x4F, 0xF0, 0x01, 0x0B, 0x2B, 0x43, 0xA3, 0x63, 0x03, 0xF0, 0xD9, 0xF9, 0x5C, 0xAB, 0x03, 0xEB, 0x48, 0x18, 0x23, 0x6F, 0x20, 0x46, 0x0A, 0xEA, 0x03, 0x03, 0x3B, 0x43, 0x23, 0x67, 0x01, 0xF0, 0x64, 0xF9, 0x16, 0x48, 0x01, 0x23, 0xCD, 0xF8, 0x00, 0x90, 0x4F, 0xF4, 0x00, 0x61, 0x0B, 0x9A, 0x00, 0x68, 0xFF, 0xF7, 0xD0, 0xFB, 0x60, 0xB1, 0x08, 0xF8, 0x06, 0x90, 0x01, 0x36, 0x08, 0x9B, 0x3F, 0x2E, 0x1F, 0x44, 0xE5, 0xD1, 0x02, 0x35, 0x34, 0x2D, 0xD1, 0xD1, 0x00, 0x23, 0x08, 0x93, 0x56, 0xE0, 0x08, 0xF8, 0x06, 0xB0, 0xF1, 0xE7, 0x00, 0xBF, 0x25, 0x06, 0x05, 0x00, 0x47, 0x06, 0x05, 0x00, 0x61, 0x06, 0x05, 0x00, 0x7E, 0x06, 0x05, 0x00, 0xAF, 0x06, 0x05, 0x00, 0xD4, 0x06, 0x05, 0x00, 0x8B, 0x06, 0x05, 0x00, 0xF5, 0x06, 0x05, 0x00, 0x11, 0x07, 0x05, 0x00, 0x9C, 0x1E, 0x05, 0x00, 0x08, 0x2B, 0x56, 0xD1, 0xA3, 0x6C, 0x00, 0x25, 0xA9, 0x46, 0x08, 0x93, 0x0B, 0x9B, 0xDA, 0x00, 0xFF, 0x23, 0x93, 0x40, 0x6F, 0xEA, 0x03, 0x0A, 0x01, 0x23, 0x93, 0x40, 0x0C, 0x93, 0xA3, 0x6C, 0x20, 0x46, 0x4F, 0xEA, 0x65, 0x08, 0x00, 0x27, 0x3E, 0x46, 0x23, 0xF0, 0x3F, 0x03, 0x4F, 0xF0, 0x01, 0x0B, 0x2B, 0x43, 0xA3, 0x64, 0x03, 0xF0, 0x81, 0xF9, 0x5C, 0xAB, 0x03, 0xEB, 0x48, 0x18, 0x23, 0x6F, 0x20, 0x46, 0x0A, 0xEA, 0x03, 0x03, 0x3B, 0x43, 0x23, 0x67, 0x01, 0xF0, 0x0C, 0xF9, 0xC1, 0x48, 0x01, 0x23, 0xCD, 0xF8, 0x00, 0x90, 0x4F, 0xF4, 0x00, 0x61, 0x0B, 0x9A, 0x00, 0x68, 0xFF, 0xF7, 0x78, 0xFB, 0x10, 0xB3, 0x08, 0xF8, 0x06, 0x90, 0x01, 0x36, 0x0C, 0x9B, 0x3F, 0x2E, 0x1F, 0x44, 0xE5, 0xD1, 0x02, 0x35, 0x34, 0x2D, 0xD1, 0xD1, 0x00, 0x23, 0x0C, 0x93, 0x00, 0x26, 0x3E, 0x22, 0x37, 0x46, 0x35, 0x46, 0xB0, 0x46, 0x4F, 0xF0, 0x00, 0x0C, 0x32, 0x23, 0x61, 0x46, 0x58, 0x10, 0x0D, 0xF5, 0xB8, 0x7E, 0x0E, 0xEB, 0x40, 0x10, 0x80, 0x5C, 0x01, 0x28, 0x0B, 0xD1, 0xBC, 0xF1, 0x00, 0x0F, 0x48, 0xD0, 0xC3, 0xB9, 0x9C, 0x46, 0x0B, 0xE0, 0x08, 0xF8, 0x06, 0xB0, 0xDB, 0xE7, 0x00, 0x23, 0x0C, 0x93, 0x89, 0xE7, 0x78, 0xB9, 0xBC, 0xF1, 0x01, 0x0F, 0x0C, 0xD1, 0x03, 0xF1, 0x02, 0x0C, 0xA1, 0xEB, 0x0C, 0x0E, 0x0E, 0xF1, 0x02, 0x09, 0xA9, 0x45, 0x04, 0xDD, 0x0E, 0xF1, 0x01, 0x05, 0x90, 0x46, 0x0E, 0x46, 0x67, 0x46, 0x02, 0x3B, 0x84, 0x46, 0x98, 0x1C, 0xD6, 0xD1, 0x12, 0xF1, 0xFF, 0x32, 0xCF, 0xD2, 0x63, 0x68, 0x04, 0x2B, 0x26, 0xD1, 0xA3, 0x6B, 0x41, 0xF2, 0x70, 0x71, 0xCD, 0xF8, 0x08, 0x80, 0xC3, 0xF3, 0x80, 0x12, 0x40, 0xF2, 0xDC, 0x53, 0x03, 0xFB, 0x12, 0x12, 0x05, 0xEB, 0x85, 0x13, 0x1A, 0x44, 0x0A, 0x9B, 0x0B, 0x99, 0x93, 0x48, 0x53, 0x43, 0x1A, 0x46, 0x92, 0x4B, 0xA2, 0xFB, 0x03, 0x23, 0x3A, 0x46, 0x5B, 0x0B, 0xCD, 0xE9, 0x00, 0x53, 0x33, 0x46, 0xFE, 0xF7, 0xAC, 0xFB, 0x0B, 0x2D, 0x00, 0xF3, 0xF8, 0x80, 0x0C, 0x21, 0x8C, 0x48, 0xFE, 0xF7, 0xA5, 0xFB, 0x7F, 0xE4, 0x19, 0x46, 0xCE, 0xE7, 0x08, 0x2B, 0xF3, 0xD1, 0xA3, 0x6C, 0xCD, 0xF8, 0x08, 0x80, 0xC3, 0xF3, 0x80, 0x12, 0x4F, 0xF4, 0x96, 0x63, 0x53, 0x43, 0x28, 0x22, 0x03, 0xF5, 0x7A, 0x73, 0x02, 0xFB, 0x05, 0x32, 0xD6, 0xE7, 0x7B, 0x10, 0x09, 0xFB, 0x03, 0xF5, 0x4F, 0xEA, 0x43, 0x1C, 0x08, 0xEB, 0x0C, 0x00, 0x70, 0x44, 0xA5, 0xEB, 0x0E, 0x05, 0x10, 0xF8, 0x01, 0xA9, 0xBA, 0xF1, 0x01, 0x0F, 0x0B, 0xD1, 0x12, 0xF8, 0x03, 0xA0, 0x0A, 0xF1, 0x01, 0x0A, 0x02, 0xF8, 0x03, 0xA0, 0x05, 0xEB, 0x00, 0x0A, 0xBA, 0xF1, 0xFF, 0x3F, 0xEF, 0xD1, 0x02, 0xE0, 0xBA, 0xF1, 0x00, 0x0F, 0xF6, 0xD1, 0x08, 0xF1, 0x01, 0x05, 0xF4, 0x44, 0x3E, 0x2D, 0xD0, 0x5C, 0x0B, 0xDC, 0x1C, 0xF8, 0x05, 0xA0, 0xBA, 0xF1, 0x01, 0x0F, 0x03, 0xD1, 0x01, 0x30, 0xD0, 0x54, 0x01, 0x35, 0xF3, 0xE7, 0xBA, 0xF1, 0x00, 0x0F, 0xFA, 0xD1, 0x55, 0x5C, 0x02, 0x37, 0x85, 0x42, 0x38, 0xBF, 0x19, 0x46, 0xB7, 0x42, 0xC8, 0xDD, 0x1C, 0xAE, 0x4D, 0x00, 0x70, 0x5C, 0x2A, 0x46, 0x2B, 0x46, 0x02, 0x38, 0x59, 0x10, 0x71, 0x5C, 0x81, 0x42, 0x02, 0xDB, 0x1A, 0x46, 0x02, 0x3B, 0xF8, 0xD5, 0xA9, 0x1C, 0x1C, 0xAE, 0x32, 0x29, 0xA1, 0xF1, 0x02, 0x03, 0x40, 0xF3, 0x9D, 0x80, 0xD5, 0x18, 0x5C, 0x48, 0x05, 0xEB, 0xD5, 0x75, 0x69, 0x10, 0x0A, 0x91, 0x00, 0x91, 0x0B, 0x99, 0xFE, 0xF7, 0x3D, 0xFB, 0x63, 0x68, 0x04, 0x2B, 0x40, 0xF0, 0x98, 0x80, 0x0C, 0x9B, 0x0A, 0x9A, 0x56, 0x48, 0x23, 0xF0, 0x3F, 0x03, 0x13, 0x43, 0x19, 0x46, 0x0C, 0x93, 0xA3, 0x63, 0xFE, 0xF7, 0x2E, 0xFB, 0x20, 0x46, 0x03, 0xF0, 0x89, 0xF8, 0x48, 0xAD, 0x50, 0x48, 0x00, 0x27, 0xFE, 0xF7, 0x26, 0xFB, 0x0B, 0x97, 0x62, 0x69, 0x07, 0xF1, 0x04, 0x0A, 0x4F, 0xEA, 0x8A, 0x0A, 0x4F, 0xEA, 0xC7, 0x0B, 0x4F, 0xF0, 0x0F, 0x09, 0x4F, 0xF0, 0x01, 0x08, 0x22, 0xFA, 0x0A, 0xF2, 0x09, 0xFA, 0x0A, 0xF9, 0x02, 0xF0, 0x0F, 0x03, 0x6F, 0xEA, 0x09, 0x09, 0x16, 0x93, 0x00, 0x26, 0x2B, 0x61, 0x3F, 0x23, 0x03, 0xFA, 0x0B, 0xF3, 0xDB, 0x43, 0x15, 0x93, 0x23, 0x6F, 0x20, 0x46, 0x15, 0x9A, 0x13, 0x40, 0x06, 0xFA, 0x0B, 0xF2, 0x13, 0x43, 0x23, 0x67, 0x00, 0xF0, 0xF4, 0xFF, 0x35, 0x48, 0x00, 0x23, 0x00, 0x93, 0x3A, 0x46, 0x01, 0x23, 0x4F, 0xF4, 0x80, 0x51, 0x00, 0x68, 0xFF, 0xF7, 0x60, 0xFA, 0x03, 0x46, 0x00, 0x28, 0x7B, 0xD1, 0xB8, 0xF1, 0x00, 0x0F, 0x00, 0xF0, 0x8A, 0x80, 0x2E, 0x60, 0x7E, 0xB9, 0x2B, 0x69, 0x0D, 0x2B, 0x00, 0xF2, 0xA1, 0x80, 0x62, 0x69, 0x01, 0x33, 0x2B, 0x61, 0x03, 0xFA, 0x0A, 0xF3, 0x4F, 0xF0, 0xFF, 0x36, 0x09, 0xEA, 0x02, 0x02, 0x13, 0x43, 0x63, 0x61, 0x01, 0x23, 0x01, 0x36, 0x98, 0x46, 0x40, 0x2E, 0xCE, 0xD1, 0x2A, 0x69, 0x16, 0x98, 0xD5, 0xE9, 0x00, 0x31, 0x12, 0x1A, 0x4F, 0xEA, 0x42, 0x08, 0xC8, 0x18, 0x4E, 0x1C, 0xC8, 0xEB, 0x50, 0x08, 0xF6, 0x1A, 0xAE, 0x60, 0xC5, 0xF8, 0x0C, 0x80, 0x21, 0x48, 0xCD, 0xE9, 0x01, 0x68, 0x08, 0xF0, 0x3F, 0x08, 0x00, 0x91, 0x39, 0x46, 0xFE, 0xF7, 0xC1, 0xFA, 0x0B, 0x9A, 0x08, 0xFA, 0x0B, 0xFB, 0x15, 0x9B, 0x13, 0x40, 0x4B, 0xEA, 0x03, 0x03, 0x0B, 0x93, 0x0D, 0x9B, 0x9E, 0x42, 0x71, 0xD2, 0x14, 0x22, 0x39, 0x46, 0x5A, 0x43, 0x17, 0x48, 0xC7, 0xE5, 0x00, 0x21, 0x0D, 0xF5, 0xB8, 0x7E, 0x6F, 0xF0, 0x1F, 0x09, 0x1C, 0xAA, 0x4C, 0xE7, 0x01, 0xEB, 0xD1, 0x75, 0x6D, 0x10, 0x75, 0x5D, 0xA8, 0x42, 0x3F, 0xF7, 0x5C, 0xAF, 0x02, 0x31, 0x54, 0xE7, 0x08, 0x2B, 0x7F, 0xF4, 0x70, 0xAF, 0x08, 0x9B, 0x0A, 0x9A, 0x0C, 0x48, 0x23, 0xF0, 0x3F, 0x03, 0x13, 0x43, 0x08, 0x93, 0x19, 0x46, 0xA3, 0x64, 0x63, 0xE7, 0x9C, 0x1E, 0x05, 0x00, 0x1D, 0x07, 0x05, 0x00, 0x59, 0x17, 0xB7, 0xD1, 0x48, 0x07, 0x05, 0x00, 0x62, 0x07, 0x05, 0x00, 0x84, 0x07, 0x05, 0x00, 0xB3, 0x07, 0x05, 0x00, 0xE4, 0x07, 0x05, 0x00, 0x09, 0x08, 0x05, 0x00, 0x9B, 0x07, 0x05, 0x00, 0x08, 0x9B, 0x0C, 0x93, 0x0A, 0x93, 0x50, 0xE7, 0x00, 0x23, 0x0A, 0x93, 0x0C, 0x93, 0x08, 0x93, 0x4B, 0xE7, 0xB8, 0xF1, 0x00, 0x0F, 0x0E, 0xD1, 0x29, 0x68, 0x72, 0x1E, 0x6A, 0x60, 0x17, 0x90, 0x52, 0x1A, 0x02, 0x2A, 0xAA, 0x60, 0x92, 0xD8, 0x03, 0x22, 0x39, 0x46, 0xAA, 0x48, 0xFE, 0xF7, 0x67, 0xFA, 0x17, 0x9B, 0x87, 0xE7, 0x53, 0xEA, 0x08, 0x08, 0x84, 0xD1, 0x3F, 0x2E, 0x6E, 0x60, 0x18, 0xD1, 0x2B, 0x69, 0x29, 0x68, 0x01, 0x2B, 0x81, 0xD9, 0x02, 0x29, 0x7F, 0xF6, 0x7F, 0xAF, 0x62, 0x69, 0x01, 0x3B, 0x2B, 0x61, 0x03, 0xFA, 0x0A, 0xF3, 0x02, 0x39, 0x09, 0xEA, 0x02, 0x02, 0x29, 0x60, 0x13, 0x43, 0x3C, 0x26, 0x63, 0x61, 0x3D, 0x23, 0x6B, 0x60, 0x43, 0x46, 0x6A, 0xE7, 0x33, 0x46, 0x68, 0xE7, 0x43, 0x46, 0x66, 0xE7, 0x06, 0x9B, 0x01, 0x37, 0x14, 0x35, 0x9F, 0x42, 0x7F, 0xF4, 0x19, 0xAF, 0x14, 0x9B, 0x00, 0x27, 0x94, 0x48, 0x63, 0x61, 0x0B, 0x9B, 0x23, 0x67, 0x19, 0x46, 0xFE, 0xF7, 0x35, 0xFA, 0x92, 0x48, 0xFE, 0xF7, 0x32, 0xFA, 0x14, 0x9A, 0xBB, 0x00, 0x4F, 0xEA, 0xC7, 0x08, 0x4F, 0xF0, 0x3F, 0x0A, 0x4F, 0xF0, 0x02, 0x09, 0x0A, 0xFA, 0x08, 0xFA, 0x4F, 0xF0, 0x00, 0x0B, 0xDA, 0x40, 0x6F, 0xEA, 0x0A, 0x0A, 0x02, 0xF0, 0x0F, 0x02, 0x16, 0x92, 0x0E, 0x9A, 0x11, 0x69, 0x0F, 0x22, 0x02, 0xFA, 0x03, 0xF0, 0x62, 0x69, 0x01, 0xFA, 0x03, 0xF3, 0x22, 0xEA, 0x00, 0x02, 0x1A, 0x43, 0x07, 0x9B, 0x62, 0x61, 0x16, 0x9A, 0x0A, 0xEA, 0x03, 0x03, 0x15, 0x93, 0x07, 0x9B, 0x23, 0xFA, 0x08, 0xF3, 0x03, 0xF0, 0x3F, 0x03, 0x0B, 0x44, 0x9B, 0x1A, 0x15, 0x9A, 0x03, 0xF0, 0x3F, 0x03, 0x03, 0xFA, 0x08, 0xF3, 0x13, 0x43, 0x63, 0x67, 0x63, 0x6F, 0x18, 0xAA, 0x52, 0xF8, 0x29, 0x60, 0x23, 0xFA, 0x08, 0xF5, 0x05, 0xF0, 0x3F, 0x05, 0xBB, 0xF1, 0x00, 0x0F, 0x23, 0xD1, 0xB5, 0x42, 0x26, 0xD9, 0xAD, 0x1B, 0x05, 0xFA, 0x08, 0xF2, 0x0A, 0xEA, 0x03, 0x03, 0x20, 0x46, 0x13, 0x43, 0x63, 0x67, 0x00, 0xF0, 0xDE, 0xFE, 0x6D, 0x48, 0x00, 0x23, 0x00, 0x93, 0x3A, 0x46, 0x01, 0x23, 0x4F, 0xF4, 0x80, 0x51, 0x00, 0x68, 0xFF, 0xF7, 0x4A, 0xF9, 0x28, 0xB3, 0xBB, 0xF1, 0x00, 0x0F, 0x1D, 0xD1, 0xB9, 0xF1, 0x00, 0x0F, 0x0D, 0xD1, 0x07, 0x9B, 0x4F, 0xF0, 0x02, 0x09, 0x4F, 0xF0, 0x01, 0x0B, 0x63, 0x67, 0xD0, 0xE7, 0x35, 0x44, 0x3F, 0x2D, 0x28, 0xBF, 0x3F, 0x25, 0xD9, 0xE7, 0x5D, 0x46, 0xD7, 0xE7, 0x35, 0x44, 0x63, 0x6F, 0x05, 0xF0, 0x3F, 0x05, 0x05, 0xFA, 0x08, 0xF5, 0x09, 0xF1, 0xFF, 0x39, 0x0A, 0xEA, 0x03, 0x03, 0x1D, 0x43, 0x65, 0x67, 0xBC, 0xE7, 0xB9, 0xF1, 0x00, 0x0F, 0x0C, 0xD0, 0xAD, 0x1B, 0xEE, 0xE7, 0x0E, 0x9B, 0xBB, 0xF1, 0x00, 0x0F, 0x03, 0xD1, 0x1D, 0x60, 0x00, 0x2D, 0xD8, 0xD0, 0xAF, 0xE7, 0x3F, 0x2D, 0x5D, 0x60, 0xAC, 0xD1, 0x0E, 0x9B, 0x0E, 0x9A, 0x16, 0x98, 0xD3, 0xE9, 0x00, 0x31, 0x4D, 0x1C, 0xED, 0x1A, 0x95, 0x60, 0x12, 0x69, 0x12, 0x1A, 0xC8, 0x18, 0x56, 0x00, 0xC6, 0xEB, 0x50, 0x06, 0x0E, 0x98, 0xC6, 0x60, 0xCD, 0xE9, 0x01, 0x56, 0x06, 0xF0, 0x3F, 0x06, 0x00, 0x91, 0x39, 0x46, 0x45, 0x48, 0x06, 0xFA, 0x08, 0xF8, 0xFE, 0xF7, 0x93, 0xF9, 0x15, 0x9B, 0x48, 0xEA, 0x03, 0x03, 0x07, 0x93, 0x0D, 0x9B, 0x9D, 0x42, 0x04, 0xD2, 0x14, 0x22, 0x39, 0x46, 0x5A, 0x43, 0x3F, 0x48, 0x9D, 0xE4, 0x0E, 0x9B, 0x01, 0x37, 0x14, 0x33, 0x0E, 0x93, 0x06, 0x9B, 0x9F, 0x42, 0x7F, 0xF4, 0x4D, 0xAF, 0x07, 0x9B, 0x07, 0x99, 0x3A, 0x48, 0x63, 0x67, 0x14, 0x9B, 0x63, 0x61, 0xFE, 0xF7, 0x77, 0xF9, 0xA3, 0x6F, 0x9B, 0x01, 0x2F, 0xD5, 0x0D, 0x9B, 0x00, 0x2B, 0x2C, 0xD0, 0x11, 0x9B, 0x05, 0x9A, 0xA3, 0x66, 0x07, 0x9B, 0x63, 0x67, 0x13, 0x9B, 0x06, 0x3B, 0x9A, 0x42, 0xB8, 0xBF, 0x1A, 0x46, 0x13, 0x9B, 0x93, 0x46, 0x0F, 0x9A, 0xD8, 0x46, 0x06, 0x33, 0x9A, 0x42, 0xA8, 0xBF, 0x1A, 0x46, 0xFF, 0x23, 0x05, 0x92, 0x09, 0x9A, 0x93, 0x40, 0x0B, 0xFA, 0x02, 0xF9, 0xDB, 0x43, 0x0E, 0x93, 0x03, 0x23, 0x93, 0x40, 0x0F, 0x93, 0x05, 0x9B, 0x98, 0x45, 0x4E, 0xDD, 0x11, 0x9B, 0x59, 0x46, 0x0D, 0x9A, 0x23, 0x48, 0xA3, 0x66, 0x07, 0x9B, 0x63, 0x67, 0x14, 0x23, 0x53, 0x43, 0x05, 0x9A, 0x28, 0x3B, 0xFE, 0xF7, 0x44, 0xF9, 0xA3, 0x6F, 0x13, 0xF0, 0x80, 0x63, 0x00, 0xF0, 0xEB, 0x80, 0x0D, 0x9B, 0x00, 0x2B, 0x00, 0xF0, 0xE6, 0x80, 0x63, 0x68, 0x04, 0x2B, 0x00, 0xF0, 0x83, 0x80, 0x08, 0x2B, 0x1E, 0xD1, 0x08, 0x9B, 0xA3, 0x64, 0x0B, 0x9B, 0x23, 0x67, 0x0A, 0x9B, 0xA3, 0xF1, 0x06, 0x0A, 0x9D, 0x1D, 0x2A, 0xEA, 0xEA, 0x7A, 0x32, 0x2D, 0xA8, 0xBF, 0x32, 0x25, 0xD1, 0x46, 0xA9, 0x45, 0x63, 0x68, 0x72, 0xDD, 0x08, 0x2B, 0x40, 0xF0, 0xC7, 0x80, 0x08, 0x9B, 0xA3, 0x64, 0x0D, 0x9A, 0x14, 0x23, 0x51, 0x46, 0x0B, 0x48, 0x53, 0x43, 0x2A, 0x46, 0x28, 0x3B, 0xFE, 0xF7, 0x16, 0xF9, 0x00, 0x23, 0xBF, 0xE0, 0xC0, 0x07, 0x05, 0x00, 0x2A, 0x08, 0x05, 0x00, 0x46, 0x08, 0x05, 0x00, 0x9C, 0x1E, 0x05, 0x00, 0x53, 0x08, 0x05, 0x00, 0x78, 0x08, 0x05, 0x00, 0x99, 0x08, 0x05, 0x00, 0xDC, 0x08, 0x05, 0x00, 0x26, 0x09, 0x05, 0x00, 0xA3, 0x6E, 0x00, 0x25, 0x0E, 0x9A, 0x20, 0x46, 0x13, 0x40, 0x43, 0xEA, 0x09, 0x03, 0xA3, 0x66, 0x02, 0xF0, 0x56, 0xFE, 0x34, 0xAA, 0x14, 0x23, 0x03, 0xFB, 0x05, 0x23, 0xEF, 0x00, 0xDA, 0x68, 0x12, 0x9B, 0xC3, 0xF1, 0x01, 0x06, 0x3F, 0x23, 0xBB, 0x40, 0x16, 0x44, 0xDB, 0x43, 0x09, 0x93, 0x12, 0x9B, 0x03, 0xF1, 0xFF, 0x3A, 0x0A, 0xFA, 0x07, 0xF3, 0x06, 0xFA, 0x07, 0xF7, 0x13, 0x93, 0x02, 0xEB, 0x0A, 0x03, 0x14, 0x93, 0x14, 0x9B, 0xB3, 0x42, 0x08, 0xD2, 0x06, 0x9B, 0x01, 0x35, 0x9D, 0x42, 0xDF, 0xD1, 0x0F, 0x9B, 0x08, 0xF1, 0x03, 0x08, 0x99, 0x44, 0x7E, 0xE7, 0x63, 0x6F, 0x20, 0x46, 0x09, 0x9A, 0x13, 0x40, 0x3B, 0x43, 0x63, 0x67, 0x00, 0xF0, 0xBF, 0xFD, 0x3D, 0x48, 0x00, 0x23, 0x00, 0x93, 0x2A, 0x46, 0x01, 0x23, 0x4F, 0xF4, 0x00, 0x61, 0x00, 0x68, 0xFF, 0xF7, 0x2B, 0xF8, 0x13, 0x9B, 0x1F, 0x44, 0x38, 0xB1, 0x37, 0x48, 0x33, 0x46, 0x42, 0x46, 0x29, 0x46, 0xFE, 0xF7, 0xB8, 0xF8, 0xFF, 0xF7, 0x92, 0xB9, 0x56, 0x44, 0xD4, 0xE7, 0x0C, 0x9B, 0xA3, 0x63, 0x7D, 0xE7, 0x08, 0x2B, 0x2E, 0xD1, 0xA3, 0x6C, 0x23, 0xF0, 0x3F, 0x03, 0x43, 0xEA, 0x09, 0x03, 0xA3, 0x64, 0x00, 0x26, 0x20, 0x46, 0x02, 0xF0, 0x03, 0xFE, 0x48, 0xAA, 0x14, 0x23, 0x03, 0xFB, 0x06, 0x23, 0x4F, 0xEA, 0xC6, 0x08, 0xDA, 0x68, 0x12, 0x9B, 0xC3, 0xF1, 0x01, 0x07, 0x3F, 0x23, 0x03, 0xFA, 0x08, 0xF3, 0x17, 0x44, 0xDB, 0x43, 0x05, 0x93, 0x12, 0x9B, 0x03, 0xF1, 0xFF, 0x3B, 0x0B, 0xFA, 0x08, 0xF3, 0x07, 0xFA, 0x08, 0xF8, 0x07, 0x93, 0x02, 0xEB, 0x0B, 0x03, 0x09, 0x93, 0x09, 0x9B, 0xBB, 0x42, 0x0F, 0xD2, 0x06, 0x9B, 0x01, 0x36, 0x9E, 0x42, 0xDD, 0xD1, 0x09, 0xF1, 0x03, 0x09, 0x58, 0xE7, 0x04, 0x2B, 0x01, 0xBF, 0xA3, 0x6B, 0x23, 0xF0, 0x3F, 0x03, 0x43, 0xEA, 0x09, 0x03, 0xA3, 0x63, 0xCD, 0xE7, 0x23, 0x6F, 0x20, 0x46, 0x05, 0x9A, 0x13, 0x40, 0x43, 0xEA, 0x08, 0x03, 0x23, 0x67, 0x00, 0xF0, 0x62, 0xFD, 0x0E, 0x48, 0x00, 0x23, 0x00, 0x93, 0x32, 0x46, 0x01, 0x23, 0x4F, 0xF4, 0x00, 0x61, 0x00, 0x68, 0xFE, 0xF7, 0xCE, 0xFF, 0x07, 0x9B, 0x98, 0x44, 0x20, 0xB1, 0x3B, 0x46, 0x4A, 0x46, 0x31, 0x46, 0x08, 0x48, 0xA1, 0xE7, 0x5F, 0x44, 0xCF, 0xE7, 0x04, 0x2B, 0x04, 0xBF, 0x0C, 0x9B, 0xA3, 0x63, 0x35, 0xE7, 0x0D, 0x9B, 0x10, 0x93, 0xFF, 0xF7, 0x2D, 0xB9, 0x00, 0xBF, 0x9C, 0x1E, 0x05, 0x00, 0xB5, 0x08, 0x05, 0x00, 0xFF, 0x08, 0x05, 0x00, 0x31, 0x4B, 0x2D, 0xE9, 0xF7, 0x43, 0x06, 0x46, 0x1B, 0x68, 0x73, 0xB1, 0xFE, 0xF7, 0x7C, 0xFF, 0x2E, 0x4F, 0x00, 0x25, 0xDF, 0xF8, 0xD0, 0x80, 0xDF, 0xF8, 0xD0, 0x90, 0x01, 0x35, 0x05, 0x2D, 0x26, 0xD1, 0x2B, 0x48, 0xFE, 0xF7, 0x36, 0xF8, 0x0E, 0xE0, 0x2A, 0x49, 0x4F, 0xF4, 0x40, 0x33, 0x29, 0x48, 0x11, 0xF8, 0x01, 0x2F, 0x1A, 0x70, 0x1C, 0x78, 0x0A, 0x78, 0x94, 0x42, 0x05, 0xD0, 0x19, 0x78, 0x26, 0x48, 0xFE, 0xF7, 0x26, 0xF8, 0x01, 0x24, 0x39, 0xE0, 0x01, 0x33, 0x83, 0x42, 0xEF, 0xD1, 0xFE, 0xF7, 0x4D, 0xFF, 0xFE, 0xF7, 0x57, 0xFF, 0xFE, 0xF7, 0x4F, 0xFF, 0x1E, 0x4A, 0x4F, 0xF4, 0x40, 0x33, 0x00, 0x21, 0x03, 0xF8, 0x01, 0x1B, 0x93, 0x42, 0xFB, 0xD1, 0xCF, 0xE7, 0x29, 0x46, 0x38, 0x46, 0xFE, 0xF7, 0x0E, 0xF8, 0x30, 0x46, 0xFF, 0xF7, 0x63, 0xF8, 0x00, 0x28, 0xCC, 0xD1, 0x30, 0x46, 0x02, 0xF0, 0x64, 0xFD, 0xB0, 0xFA, 0x80, 0xF4, 0x01, 0x23, 0x64, 0x09, 0x00, 0x93, 0x08, 0x22, 0xD8, 0xF8, 0x00, 0x00, 0x4F, 0xF4, 0x00, 0x41, 0xFE, 0xF7, 0x64, 0xFF, 0x04, 0x43, 0x03, 0xD0, 0x48, 0x46, 0xFD, 0xF7, 0xF5, 0xFF, 0xB7, 0xE7, 0x31, 0x68, 0x0C, 0x48, 0xFD, 0xF7, 0xF0, 0xFF, 0x01, 0x2D, 0x03, 0xD0, 0x31, 0x68, 0x0A, 0x48, 0xFD, 0xF7, 0xEA, 0xFF, 0x20, 0x46, 0x03, 0xB0, 0xBD, 0xE8, 0xF0, 0x83, 0xF0, 0x80, 0x00, 0x03, 0x58, 0x09, 0x05, 0x00, 0xE6, 0x09, 0x05, 0x00, 0x03, 0x12, 0x05, 0x00, 0x50, 0x01, 0x03, 0x00, 0x49, 0x09, 0x05, 0x00, 0x90, 0x09, 0x05, 0x00, 0xA8, 0x09, 0x05, 0x00, 0x9C, 0x1E, 0x05, 0x00, 0x6F, 0x09, 0x05, 0x00, 0x10, 0xB5, 0x01, 0xFB, 0x00, 0xF4, 0x4F, 0xF4, 0x7A, 0x71, 0x20, 0x46, 0xFD, 0xF7, 0x00, 0xFB, 0x03, 0x4A, 0xA4, 0xFB, 0x02, 0x23, 0x98, 0x09, 0x00, 0x29, 0x18, 0xBF, 0x01, 0x30, 0x10, 0xBD, 0xD3, 0x4D, 0x62, 0x10, 0x40, 0x08, 0xF8, 0xB5, 0x1C, 0x4A, 0x4F, 0xF0, 0x80, 0x43, 0x00, 0x05, 0x00, 0x24, 0x1B, 0x4D, 0x8C, 0x42, 0x0C, 0xD1, 0x19, 0x4F, 0x4F, 0xF0, 0x80, 0x43, 0xDF, 0xF8, 0x5C, 0xC0, 0x00, 0x25, 0xAC, 0x42, 0x0B, 0xD1, 0x16, 0x48, 0xFD, 0xF7, 0xAB, 0xFF, 0x00, 0x20, 0xF8, 0xBD, 0xA6, 0x18, 0x1E, 0x60, 0x66, 0x19, 0xC6, 0x50, 0x01, 0x34, 0x04, 0x33, 0xE9, 0xE7, 0xC1, 0x58, 0xEA, 0x19, 0xC6, 0x18, 0x8A, 0x42, 0x07, 0xD0, 0x0F, 0x4B, 0x1B, 0x68, 0x7B, 0xB9, 0x33, 0x46, 0x0E, 0x48, 0xFD, 0xF7, 0x96, 0xFF, 0x0A, 0xE0, 0x1E, 0x46, 0x05, 0xEB, 0x0C, 0x02, 0x56, 0xF8, 0x04, 0x1B, 0x8A, 0x42, 0x05, 0xD0, 0x07, 0x48, 0x00, 0x68, 0x00, 0x28, 0xF0, 0xD0, 0x01, 0x20, 0xDD, 0xE7, 0x01, 0x35, 0x33, 0x46, 0xD4, 0xE7, 0x00, 0xBF, 0x67, 0x45, 0x23, 0x01, 0x98, 0xBA, 0xDC, 0xFE, 0x33, 0x0A, 0x05, 0x00, 0x54, 0x13, 0x05, 0x00, 0x01, 0x0A, 0x05, 0x00, 0x83, 0x69, 0x10, 0xB5, 0x04, 0x46, 0xC3, 0xF3, 0x01, 0x31, 0xC3, 0xF3, 0x07, 0x12, 0x0A, 0x44, 0xE1, 0x69, 0x03, 0xF0, 0x0F, 0x00, 0xC3, 0xF3, 0x81, 0x33, 0x02, 0x44, 0x13, 0x44, 0xC1, 0xF3, 0x03, 0x32, 0x1A, 0x44, 0x11, 0xF0, 0x0F, 0x0F, 0x4F, 0xF0, 0x01, 0x03, 0x0C, 0xBF, 0x12, 0x3A, 0x13, 0x3A, 0x03, 0xFA, 0x02, 0xF0, 0xB4, 0xF8, 0x7A, 0x30, 0x5B, 0x07, 0x05, 0xD0, 0x89, 0x0F, 0x02, 0x29, 0x1C, 0xBF, 0x00, 0xEB, 0x40, 0x00, 0x80, 0x08, 0x10, 0xBD, 0x30, 0x4B, 0x40, 0xF2, 0x8F, 0x12, 0xF0, 0xB5, 0x2F, 0x4D, 0x1A, 0x60, 0x4F, 0xF4, 0x80, 0x32, 0xC3, 0xF8, 0xF4, 0x21, 0x2D, 0x4A, 0x2E, 0x49, 0x2E, 0x4C, 0xC3, 0xF8, 0x04, 0x22, 0x2E, 0x4A, 0xC3, 0xF8, 0x08, 0x52, 0x2D, 0x48, 0xC3, 0xF8, 0x14, 0x22, 0x2D, 0x4A, 0x2D, 0x4E, 0x2E, 0x4F, 0xC3, 0xF8, 0x18, 0x22, 0x2D, 0x4A, 0xDF, 0xF8, 0xD8, 0xC0, 0xC3, 0xF8, 0x24, 0x22, 0x2C, 0x4A, 0xC3, 0xF8, 0x28, 0x22, 0x2B, 0x4A, 0xC3, 0xF8, 0x34, 0x22, 0xC3, 0xF8, 0x38, 0x12, 0x2A, 0x49, 0xC3, 0xF8, 0x44, 0x42, 0xC3, 0xF8, 0x48, 0x02, 0xC3, 0xF8, 0x54, 0x12, 0x27, 0x4B, 0x33, 0x60, 0xF1, 0x60, 0x33, 0x61, 0xF2, 0x62, 0x26, 0x4E, 0x3E, 0x60, 0xFA, 0x62, 0x3D, 0x63, 0xC7, 0xF8, 0x5C, 0xC0, 0xDF, 0xF8, 0xA0, 0xC0, 0xC7, 0xF8, 0x60, 0xC0, 0xDF, 0xF8, 0x9C, 0xC0, 0xC7, 0xF8, 0x7C, 0xC0, 0xDF, 0xF8, 0x98, 0xC0, 0xC7, 0xF8, 0x80, 0xC0, 0xDF, 0xF8, 0x94, 0xC0, 0xC7, 0xF8, 0xCC, 0xC0, 0xDF, 0xF8, 0x90, 0xC0, 0xC7, 0xF8, 0xD0, 0xC0, 0xC7, 0xF8, 0xDC, 0x20, 0xC7, 0xF8, 0xE0, 0x50, 0x18, 0x4D, 0x18, 0x4F, 0x2F, 0x60, 0x6B, 0x60, 0x2C, 0x61, 0x68, 0x61, 0xC5, 0xF8, 0xC0, 0x20, 0x16, 0x4A, 0x16, 0x60, 0xD1, 0x60, 0x13, 0x61, 0xD4, 0x61, 0x10, 0x62, 0xD1, 0x62, 0x13, 0x63, 0xF0, 0xBD, 0x0C, 0xA0, 0x7F, 0x04, 0x80, 0x00, 0x64, 0x00, 0x0D, 0x00, 0x00, 0x01, 0x64, 0x00, 0x50, 0x00, 0x09, 0x02, 0x00, 0x20, 0x09, 0x00, 0x00, 0x06, 0x7C, 0x15, 0x88, 0x13, 0x78, 0x05, 0x00, 0x01, 0x64, 0xA2, 0x7F, 0x04, 0x94, 0xA2, 0x7F, 0x04, 0x0D, 0x00, 0x00, 0x02, 0x00, 0x01, 0x60, 0x00, 0x09, 0x00, 0x00, 0x01, 0x09, 0x02, 0x64, 0x00, 0x40, 0x00, 0x20, 0x00, 0x80, 0x00, 0x40, 0x00, 0xA0, 0xA3, 0x7F, 0x04, 0x0F, 0x00, 0x64, 0x00, 0x64, 0xA4, 0x7F, 0x04, 0x09, 0x00, 0x00, 0x04, 0x00, 0x01, 0x40, 0x00, 0x0D, 0x06, 0x00, 0x20, 0xF0, 0x0A, 0x60, 0x09, 0x0D, 0x06, 0x00, 0x08, 0x00, 0x03, 0x00, 0x02, 0x03, 0x4A, 0x13, 0x68, 0x23, 0xF4, 0x7F, 0x43, 0x43, 0xEA, 0x00, 0x20, 0x10, 0x60, 0x70, 0x47, 0x08, 0xA0, 0x7F, 0x04, 0x43, 0x68, 0x10, 0xB5, 0x03, 0x3B, 0x05, 0x2B, 0x1B, 0xD8, 0xDF, 0xE8, 0x03, 0xF0, 0x03, 0x0C, 0x1A, 0x1A, 0x1C, 0x1F, 0x90, 0xF8, 0x64, 0x30, 0x0A, 0x24, 0x5C, 0x43, 0x40, 0xF2, 0xDC, 0x53, 0x08, 0xBF, 0x1C, 0x46, 0x06, 0xE0, 0x90, 0xF8, 0x65, 0x30, 0x0A, 0x24, 0x5C, 0x43, 0x08, 0xBF, 0x4F, 0xF4, 0x96, 0x64, 0x20, 0x46, 0x02, 0xF0, 0xEB, 0xFF, 0x70, 0xB1, 0x0A, 0x48, 0xFD, 0xF7, 0x95, 0xFE, 0x00, 0x24, 0x0D, 0xE0, 0x90, 0xF8, 0x66, 0x30, 0xEE, 0xE7, 0x90, 0xF8, 0x67, 0x30, 0x0A, 0x24, 0x5C, 0x43, 0x40, 0xF2, 0x4C, 0x43, 0xE2, 0xE7, 0x21, 0x46, 0x03, 0x48, 0xFD, 0xF7, 0x85, 0xFE, 0x20, 0x46, 0x10, 0xBD, 0x00, 0xBF, 0x49, 0x0A, 0x05, 0x00, 0x5F, 0x0A, 0x05, 0x00, 0x83, 0x6F, 0xC3, 0xF3, 0x02, 0x53, 0x05, 0x2B, 0x16, 0xD8, 0xDF, 0xE8, 0x03, 0xF0, 0x06, 0x03, 0x0C, 0x0F, 0x15, 0x12, 0x0A, 0x4B, 0x0B, 0x4A, 0x1A, 0x60, 0x0B, 0x4A, 0x13, 0x68, 0x43, 0xF0, 0x80, 0x73, 0x13, 0x60, 0x70, 0x47, 0x06, 0x4B, 0x08, 0x4A, 0xF5, 0xE7, 0x04, 0x4B, 0x08, 0x4A, 0xF2, 0xE7, 0x03, 0x4B, 0x07, 0x4A, 0xEF, 0xE7, 0x01, 0x4B, 0x07, 0x4A, 0xEC, 0xE7, 0x00, 0xBF, 0x10, 0x11, 0x00, 0x03, 0xCC, 0xCC, 0x86, 0xE4, 0x10, 0x10, 0x00, 0x03, 0x99, 0x99, 0x06, 0xE9, 0x66, 0x66, 0x86, 0xED, 0x00, 0x00, 0x86, 0xF5, 0x33, 0x33, 0x06, 0xF2, 0x38, 0xB5, 0x0F, 0x4C, 0xA0, 0xFB, 0x04, 0x45, 0x0C, 0x68, 0x10, 0x46, 0x24, 0xF4, 0x7F, 0x44, 0x24, 0xF0, 0x03, 0x04, 0x2D, 0x09, 0x6B, 0x1E, 0x44, 0xEA, 0x03, 0x24, 0x44, 0xF0, 0x00, 0x43, 0x0B, 0x60, 0xFF, 0xF7, 0xBF, 0xFF, 0x44, 0xF0, 0x60, 0x43, 0x44, 0xF0, 0x20, 0x44, 0x0B, 0x60, 0x0C, 0x60, 0x0B, 0x68, 0xDB, 0x00, 0xFC, 0xD5, 0x18, 0x20, 0x68, 0x43, 0x38, 0xBD, 0x00, 0xBF, 0xAB, 0xAA, 0xAA, 0xAA, 0x9B, 0x4A, 0x2D, 0xE9, 0xF0, 0x41, 0x04, 0x46, 0x9A, 0x4D, 0x13, 0x68, 0x9A, 0x4E, 0x43, 0xF4, 0x80, 0x73, 0x13, 0x60, 0x00, 0x23, 0x33, 0x60, 0x2A, 0x68, 0x98, 0x4B, 0x42, 0xF0, 0x01, 0x02, 0x2A, 0x60, 0x98, 0x46, 0x2A, 0x68, 0x42, 0xF0, 0x20, 0x02, 0x2A, 0x60, 0x01, 0x22, 0x32, 0x60, 0x1A, 0x68, 0xD0, 0x07, 0xFC, 0xD5, 0x92, 0x4A, 0x13, 0x68, 0xD9, 0x07, 0xFC, 0xD5, 0x00, 0x23, 0x33, 0x60, 0x2B, 0x68, 0x23, 0xF0, 0x20, 0x03, 0x2B, 0x60, 0x8E, 0x4B, 0x1B, 0x68, 0x1B, 0x0C, 0x1F, 0xBF, 0x8D, 0x4A, 0x13, 0x68, 0x43, 0xF0, 0x01, 0x03, 0x13, 0x60, 0x8B, 0x4A, 0x13, 0x68, 0x23, 0xF0, 0x20, 0x03, 0x13, 0x60, 0x01, 0x23, 0x33, 0x60, 0xD8, 0xF8, 0x00, 0x30, 0xDA, 0x07, 0xFB, 0xD5, 0x87, 0x4B, 0x1F, 0x68, 0x07, 0xF0, 0x03, 0x07, 0x01, 0x2F, 0xFA, 0xD1, 0xC8, 0x20, 0xFD, 0xF7, 0xAF, 0xFA, 0x00, 0x23, 0x33, 0x60, 0x2B, 0x68, 0x23, 0xF0, 0x01, 0x03, 0x2B, 0x60, 0x37, 0x60, 0xD8, 0xF8, 0x00, 0x30, 0xDB, 0x07, 0xFB, 0xD5, 0x63, 0x68, 0x08, 0x2B, 0x68, 0xD1, 0x23, 0x6A, 0x7C, 0x4E, 0x7C, 0x4D, 0x33, 0x60, 0x7C, 0x4B, 0x2B, 0x60, 0x2B, 0x68, 0x00, 0x2B, 0xFC, 0xDB, 0x63, 0x6A, 0x43, 0xF4, 0x80, 0x73, 0x33, 0x60, 0x78, 0x4B, 0x2B, 0x60, 0x2B, 0x68, 0x00, 0x2B, 0xFC, 0xDB, 0xA3, 0x6A, 0x43, 0xF4, 0x00, 0x73, 0x33, 0x60, 0x73, 0x4B, 0x2B, 0x60, 0x2B, 0x68, 0x00, 0x2B, 0xFC, 0xDB, 0xE3, 0x6A, 0x43, 0xF4, 0x40, 0x73, 0x33, 0x60, 0x6F, 0x4B, 0x2B, 0x60, 0x2B, 0x68, 0x00, 0x2B, 0xFC, 0xDB, 0x23, 0x6B, 0x43, 0xF4, 0x80, 0x63, 0x33, 0x60, 0x6A, 0x4B, 0x2B, 0x60, 0x2B, 0x68, 0x00, 0x2B, 0xFC, 0xDB, 0xE3, 0x6B, 0x0A, 0x20, 0x43, 0xF4, 0x30, 0x63, 0x33, 0x60, 0xFD, 0xF7, 0x6D, 0xFA, 0x64, 0x4B, 0x0A, 0x20, 0x2B, 0x60, 0xFD, 0xF7, 0x68, 0xFA, 0x2B, 0x68, 0x00, 0x2B, 0xFC, 0xDB, 0x23, 0x6C, 0x0A, 0x20, 0x43, 0xF4, 0x40, 0x63, 0x33, 0x60, 0xFD, 0xF7, 0x5E, 0xFA, 0x5D, 0x4B, 0x0A, 0x20, 0x2B, 0x60, 0xFD, 0xF7, 0x59, 0xFA, 0x2B, 0x68, 0x00, 0x2B, 0xFC, 0xDB, 0xA3, 0x6C, 0x0A, 0x20, 0x43, 0xF4, 0x60, 0x63, 0x33, 0x60, 0xFD, 0xF7, 0x4F, 0xFA, 0x55, 0x4B, 0x0A, 0x20, 0x2B, 0x60, 0xFD, 0xF7, 0x4A, 0xFA, 0x2B, 0x68, 0x00, 0x2B, 0xFC, 0xDB, 0x63, 0x6D, 0x0A, 0x20, 0x43, 0xF4, 0xB0, 0x53, 0x33, 0x60, 0xFD, 0xF7, 0x40, 0xFA, 0x4E, 0x4B, 0x0A, 0x20, 0x2B, 0x60, 0xFD, 0xF7, 0x3B, 0xFA, 0x2B, 0x68, 0x00, 0x2B, 0xFC, 0xDB, 0x63, 0x68, 0x07, 0x2B, 0x1C, 0xD1, 0x63, 0x6A, 0x46, 0x4A, 0x48, 0x49, 0x43, 0xF4, 0x80, 0x73, 0x13, 0x60, 0x44, 0x4B, 0x19, 0x60, 0x19, 0x68, 0x00, 0x29, 0xFC, 0xDB, 0xA1, 0x6A, 0x41, 0xF4, 0x00, 0x71, 0x11, 0x60, 0x42, 0x49, 0x19, 0x60, 0x19, 0x68, 0x00, 0x29, 0xFC, 0xDB, 0xE1, 0x6A, 0x41, 0xF4, 0x40, 0x71, 0x11, 0x60, 0x3D, 0x4A, 0x1A, 0x60, 0x1A, 0x68, 0x00, 0x2A, 0xFC, 0xDB, 0x63, 0x68, 0x04, 0x2B, 0x4A, 0xD1, 0x23, 0x6A, 0x36, 0x4E, 0x36, 0x4D, 0x33, 0x60, 0x36, 0x4B, 0x2B, 0x60, 0x2B, 0x68, 0x00, 0x2B, 0xFC, 0xDB, 0x63, 0x6A, 0x33, 0x60, 0x35, 0x4B, 0x2B, 0x60, 0x2B, 0x68, 0x00, 0x2B, 0xFC, 0xDB, 0xA3, 0x6A, 0x33, 0x60, 0x32, 0x4B, 0x2B, 0x60, 0x2B, 0x68, 0x00, 0x2B, 0xFC, 0xDB, 0xE3, 0x6A, 0x33, 0x60, 0x30, 0x4B, 0x2B, 0x60, 0x2B, 0x68, 0x00, 0x2B, 0xFC, 0xDB, 0x23, 0x6B, 0x33, 0x60, 0x2D, 0x4B, 0x2B, 0x60, 0x2B, 0x68, 0x00, 0x2B, 0xFC, 0xDB, 0x63, 0x6B, 0x33, 0x60, 0x2B, 0x4B, 0x2B, 0x60, 0x2B, 0x68, 0x00, 0x2B, 0xFC, 0xDB, 0xA3, 0x6B, 0x29, 0x4F, 0x43, 0xF0, 0x80, 0x03, 0x33, 0x60, 0x2F, 0x60, 0x2B, 0x68, 0x00, 0x2B, 0xFC, 0xDB, 0x0A, 0x20, 0xFD, 0xF7, 0xDD, 0xF9, 0xA3, 0x6B, 0x43, 0xF0, 0x80, 0x03, 0x33, 0x60, 0x2F, 0x60, 0x2B, 0x68, 0x00, 0x2B, 0xFC, 0xDB, 0x0A, 0x20, 0xFD, 0xF7, 0xD2, 0xF9, 0xA3, 0x6B, 0x23, 0xF0, 0x80, 0x03, 0x33, 0x60, 0x2F, 0x60, 0x2B, 0x68, 0x00, 0x2B, 0xFC, 0xDB, 0x63, 0x68, 0x03, 0x2B, 0x44, 0xD1, 0x23, 0x6A, 0x0F, 0x4A, 0x10, 0x49, 0x13, 0x60, 0x0E, 0x4B, 0x19, 0x60, 0x19, 0x68, 0x00, 0x29, 0xFC, 0xDB, 0x61, 0x6A, 0x11, 0x60, 0x0E, 0x49, 0x19, 0x60, 0x25, 0xE0, 0x0C, 0xB0, 0x7F, 0x04, 0xB0, 0xB1, 0x7F, 0x04, 0x20, 0xB3, 0x7F, 0x04, 0x24, 0xB3, 0x7F, 0x04, 0xBC, 0xB1, 0x7F, 0x04, 0xF8, 0x01, 0x00, 0x07, 0xF4, 0x01, 0x00, 0x07, 0x30, 0xB0, 0x7F, 0x04, 0x04, 0xB0, 0x7F, 0x04, 0x14, 0xB0, 0x7F, 0x04, 0x10, 0xB0, 0x7F, 0x04, 0x30, 0x00, 0x00, 0x80, 0xF0, 0x00, 0x00, 0x80, 0x30, 0x10, 0x00, 0x80, 0x30, 0x20, 0x00, 0x80, 0x30, 0x30, 0x00, 0x80, 0x30, 0x40, 0x00, 0x80, 0x30, 0x50, 0x00, 0x80, 0x30, 0x60, 0x00, 0x80, 0x19, 0x68, 0x00, 0x29, 0xFC, 0xDB, 0xA1, 0x6A, 0x11, 0x60, 0x08, 0x49, 0x19, 0x60, 0x19, 0x68, 0x00, 0x29, 0xFC, 0xDB, 0xE1, 0x6A, 0x11, 0x60, 0x05, 0x4A, 0x1A, 0x60, 0x1A, 0x68, 0x00, 0x2A, 0xFC, 0xDB, 0x04, 0x4B, 0x00, 0x22, 0x1A, 0x60, 0xBD, 0xE8, 0xF0, 0x81, 0x30, 0x20, 0x00, 0x80, 0x30, 0x30, 0x00, 0x80, 0x54, 0x00, 0x80, 0x04, 0x43, 0x68, 0x03, 0x3B, 0x05, 0x2B, 0x1A, 0xD8, 0xDF, 0xE8, 0x03, 0xF0, 0x03, 0x0D, 0x19, 0x19, 0x10, 0x13, 0x90, 0xF8, 0x68, 0x30, 0x00, 0x2B, 0x08, 0xBF, 0x80, 0x23, 0x09, 0x4A, 0x13, 0x60, 0xC2, 0xF8, 0x80, 0x30, 0x70, 0x47, 0x90, 0xF8, 0x69, 0x30, 0xF4, 0xE7, 0x90, 0xF8, 0x6A, 0x30, 0xF1, 0xE7, 0x90, 0xF8, 0x6B, 0x30, 0x00, 0x2B, 0x08, 0xBF, 0x33, 0x23, 0xEE, 0xE7, 0x00, 0x23, 0xEC, 0xE7, 0x00, 0xBF, 0xDC, 0x03, 0x80, 0x04, 0x53, 0x4A, 0x13, 0x68, 0x04, 0x3A, 0x23, 0xF0, 0x20, 0x03, 0x43, 0xF0, 0x10, 0x03, 0x53, 0x60, 0x53, 0x6C, 0x23, 0xF0, 0x20, 0x03, 0x43, 0xF0, 0x10, 0x03, 0x53, 0x64, 0xD2, 0xF8, 0x84, 0x30, 0x23, 0xF0, 0x20, 0x03, 0x43, 0xF0, 0x10, 0x03, 0xC2, 0xF8, 0x84, 0x30, 0xD2, 0xF8, 0xC4, 0x30, 0x23, 0xF0, 0x20, 0x03, 0x43, 0xF0, 0x10, 0x03, 0xC2, 0xF8, 0xC4, 0x30, 0xC3, 0x68, 0x03, 0xF0, 0x1F, 0x03, 0x42, 0xF8, 0x04, 0x3C, 0x13, 0x60, 0x43, 0x68, 0x08, 0x2B, 0x04, 0xBF, 0x04, 0x23, 0x13, 0x60, 0xC3, 0x68, 0x3F, 0x4A, 0xC3, 0xF3, 0x04, 0x23, 0x13, 0x60, 0x04, 0x32, 0x13, 0x60, 0x43, 0x68, 0x08, 0x2B, 0x04, 0xBF, 0x04, 0x23, 0x13, 0x60, 0xC3, 0x89, 0x3A, 0x4A, 0x03, 0xF0, 0x1F, 0x03, 0x13, 0x60, 0x04, 0x32, 0x13, 0x60, 0x43, 0x68, 0x08, 0x2B, 0x04, 0xBF, 0x04, 0x23, 0x13, 0x60, 0xC3, 0x7B, 0x35, 0x4A, 0x03, 0xF0, 0x1F, 0x03, 0x13, 0x60, 0x04, 0x32, 0x13, 0x60, 0x43, 0x68, 0x08, 0x2B, 0x04, 0xBF, 0x04, 0x23, 0x13, 0x60, 0x03, 0x69, 0x30, 0x4A, 0x03, 0xF0, 0x1F, 0x03, 0x13, 0x60, 0x40, 0x32, 0x42, 0xF8, 0x3C, 0x3C, 0x03, 0x69, 0xC3, 0xF3, 0x04, 0x23, 0x42, 0xF8, 0x38, 0x3C, 0x42, 0xF8, 0x34, 0x3C, 0x83, 0x68, 0x03, 0xF0, 0x1F, 0x03, 0x13, 0x60, 0x41, 0x68, 0x04, 0x29, 0x01, 0xD0, 0x07, 0x29, 0x01, 0xD1, 0x00, 0x21, 0x11, 0x60, 0x25, 0x4A, 0x13, 0x60, 0x43, 0x68, 0x08, 0x2B, 0x04, 0xBF, 0x00, 0x23, 0x13, 0x60, 0x83, 0x68, 0x22, 0x4A, 0xC3, 0xF3, 0x04, 0x23, 0x13, 0x60, 0x41, 0x68, 0x04, 0x29, 0x01, 0xD0, 0x07, 0x29, 0x01, 0xD1, 0x00, 0x21, 0x11, 0x60, 0x1D, 0x4A, 0x13, 0x60, 0x43, 0x68, 0x08, 0x2B, 0x04, 0xBF, 0x00, 0x23, 0x13, 0x60, 0x43, 0x89, 0x1A, 0x4A, 0x03, 0xF0, 0x1F, 0x03, 0x13, 0x60, 0x41, 0x68, 0x04, 0x29, 0x01, 0xD0, 0x07, 0x29, 0x01, 0xD1, 0x00, 0x21, 0x11, 0x60, 0x16, 0x4A, 0x13, 0x60, 0x43, 0x68, 0x08, 0x2B, 0x04, 0xBF, 0x00, 0x23, 0x13, 0x60, 0xC3, 0x7A, 0x13, 0x4A, 0x03, 0xF0, 0x1F, 0x03, 0x13, 0x60, 0x41, 0x68, 0x04, 0x29, 0x01, 0xD0, 0x07, 0x29, 0x01, 0xD1, 0x00, 0x21, 0x11, 0x60, 0x0E, 0x4A, 0x13, 0x60, 0x43, 0x68, 0x08, 0x2B, 0x04, 0xBF, 0x00, 0x23, 0x13, 0x60, 0x70, 0x47, 0x90, 0x03, 0x80, 0x04, 0xC8, 0x03, 0x80, 0x04, 0x08, 0x04, 0x80, 0x04, 0x48, 0x04, 0x80, 0x04, 0x40, 0x03, 0x80, 0x04, 0x84, 0x03, 0x80, 0x04, 0xC0, 0x03, 0x80, 0x04, 0xC4, 0x03, 0x80, 0x04, 0x00, 0x04, 0x80, 0x04, 0x04, 0x04, 0x80, 0x04, 0x40, 0x04, 0x80, 0x04, 0x44, 0x04, 0x80, 0x04, 0xC3, 0x6E, 0x10, 0xB5, 0xDA, 0x03, 0x5D, 0xD5, 0x82, 0x6D, 0x41, 0x68, 0x54, 0x00, 0x1D, 0xD5, 0xD2, 0x09, 0x51, 0x4B, 0x51, 0x4C, 0x02, 0xF0, 0x3E, 0x02, 0x43, 0xF8, 0x04, 0x2B, 0xA3, 0x42, 0xFB, 0xD1, 0xC3, 0x6E, 0x4E, 0x4A, 0x5B, 0x00, 0x18, 0x32, 0x03, 0xF0, 0x1F, 0x03, 0x42, 0xF8, 0x18, 0x3C, 0x42, 0xF8, 0x14, 0x3C, 0x42, 0xF8, 0x1C, 0x3C, 0x13, 0x60, 0xCB, 0x1E, 0x05, 0x2B, 0x40, 0xD8, 0xDF, 0xE8, 0x03, 0xF0, 0x0D, 0x40, 0x3F, 0x3F, 0x5C, 0x7A, 0xDB, 0x08, 0x42, 0x4A, 0x42, 0x4C, 0x03, 0xF0, 0x1E, 0x03, 0x42, 0xF8, 0x04, 0x3B, 0xA2, 0x42, 0xFB, 0xD1, 0xE0, 0xE7, 0xC3, 0x6E, 0x02, 0x6E, 0xDB, 0x09, 0xD2, 0x07, 0x03, 0xF0, 0x1E, 0x03, 0x15, 0xD5, 0x3D, 0x4A, 0x13, 0x60, 0xC3, 0x69, 0xDC, 0x04, 0x41, 0xBF, 0xC3, 0x6E, 0xDB, 0x0A, 0x03, 0xF0, 0x1E, 0x03, 0x13, 0x65, 0x83, 0x6D, 0x00, 0x2B, 0x1D, 0xDA, 0x37, 0x4A, 0x5B, 0x00, 0x03, 0xF0, 0x3F, 0x03, 0x13, 0x60, 0x42, 0xF8, 0x28, 0x3C, 0x53, 0x61, 0x14, 0xE0, 0x34, 0x4A, 0x13, 0x60, 0xC3, 0x69, 0xD9, 0x04, 0x41, 0xBF, 0xC3, 0x6E, 0xDB, 0x0A, 0x03, 0xF0, 0x1E, 0x03, 0x42, 0xF8, 0x38, 0x3C, 0x83, 0x6D, 0x00, 0x2B, 0x06, 0xDA, 0x2E, 0x4A, 0x5B, 0x00, 0x03, 0xF0, 0x3F, 0x03, 0x13, 0x60, 0x93, 0x61, 0xD3, 0x62, 0x10, 0xBD, 0xC3, 0x6E, 0x02, 0x6E, 0xDB, 0x09, 0xD2, 0x07, 0x03, 0xF0, 0x1E, 0x03, 0x09, 0xD5, 0x27, 0x4A, 0x13, 0x60, 0xC3, 0x69, 0xDC, 0x04, 0xF2, 0xD5, 0xC3, 0x6E, 0xDB, 0x0A, 0x03, 0xF0, 0x1E, 0x03, 0xD6, 0xE7, 0x23, 0x4A, 0x13, 0x60, 0xC3, 0x69, 0xD9, 0x04, 0xE8, 0xD5, 0xC3, 0x6E, 0xDB, 0x0A, 0x03, 0xF0, 0x1E, 0x03, 0x53, 0x65, 0xE2, 0xE7, 0xC3, 0x6E, 0x02, 0x6E, 0xDB, 0x09, 0xD2, 0x07, 0x03, 0xF0, 0x1E, 0x03, 0x0B, 0xD5, 0x1B, 0x4A, 0x13, 0x60, 0xC3, 0x69, 0xDC, 0x04, 0xD6, 0xD5, 0xC3, 0x6E, 0xDB, 0x0A, 0x03, 0xF0, 0x1E, 0x03, 0x42, 0xF8, 0x04, 0x3C, 0xCF, 0xE7, 0x16, 0x4A, 0x13, 0x60, 0xC3, 0x69, 0xD9, 0x04, 0xCA, 0xD5, 0xC3, 0x6E, 0xDB, 0x0A, 0x03, 0xF0, 0x1E, 0x03, 0x13, 0x61, 0xC4, 0xE7, 0xC3, 0x6E, 0x11, 0x4A, 0xDB, 0x09, 0x03, 0xF0, 0x1E, 0x03, 0x13, 0x60, 0xC3, 0x69, 0xDB, 0x04, 0x41, 0xBF, 0xC3, 0x6E, 0xDB, 0x0A, 0x03, 0xF0, 0x1E, 0x03, 0xD3, 0x60, 0xB5, 0xE7, 0x80, 0x07, 0x80, 0x04, 0x00, 0x08, 0x80, 0x04, 0xDC, 0x07, 0x80, 0x04, 0x94, 0x07, 0x80, 0x04, 0xB8, 0x07, 0x80, 0x04, 0xD4, 0x07, 0x80, 0x04, 0x8C, 0x07, 0x80, 0x04, 0xE4, 0x07, 0x80, 0x04, 0xA4, 0x07, 0x80, 0x04, 0xA0, 0x07, 0x80, 0x04, 0xE8, 0x07, 0x80, 0x04, 0x88, 0x07, 0x80, 0x04, 0xC3, 0x6E, 0x59, 0x03, 0x7C, 0xD5, 0xA6, 0x4A, 0x13, 0x68, 0x23, 0xF0, 0x01, 0x03, 0x13, 0x60, 0x52, 0xF8, 0x58, 0x3C, 0x43, 0xF0, 0x08, 0x03, 0x42, 0xF8, 0x58, 0x3C, 0x02, 0xF5, 0x98, 0x72, 0x13, 0x68, 0x23, 0xF0, 0x10, 0x03, 0x13, 0x60, 0x43, 0x68, 0x08, 0x2B, 0x01, 0xBF, 0xA2, 0xF5, 0xC6, 0x72, 0x13, 0x68, 0x23, 0xF0, 0x80, 0x03, 0x13, 0x60, 0xD0, 0xE9, 0x1B, 0x23, 0x52, 0x00, 0x40, 0xF1, 0xD8, 0x80, 0x97, 0x4A, 0x03, 0xF0, 0x3F, 0x03, 0x97, 0x49, 0x13, 0x60, 0x08, 0x32, 0xC2, 0xF8, 0xB8, 0x30, 0x8A, 0x42, 0xF9, 0xD1, 0xC3, 0x8A, 0x94, 0x49, 0x5B, 0x00, 0x50, 0x31, 0x03, 0xF0, 0x1F, 0x03, 0x41, 0xF8, 0x50, 0x3C, 0x0B, 0x67, 0x13, 0x60, 0x90, 0x4A, 0x13, 0x60, 0xB4, 0x3A, 0x03, 0x6F, 0xC3, 0xF3, 0x05, 0x23, 0x13, 0x60, 0x08, 0x32, 0xC2, 0xF8, 0xB8, 0x30, 0x8A, 0x42, 0xF9, 0xD1, 0x43, 0x69, 0x8B, 0x49, 0xDB, 0x0C, 0x03, 0xF0, 0x1E, 0x03, 0x0B, 0x60, 0x01, 0xF5, 0x94, 0x71, 0x41, 0xF8, 0x68, 0x3C, 0x13, 0x60, 0x87, 0x4A, 0x13, 0x60, 0x24, 0x32, 0xB0, 0xF8, 0x72, 0x30, 0x03, 0xF0, 0x3F, 0x03, 0x13, 0x60, 0x08, 0x32, 0xC2, 0xF8, 0xB8, 0x30, 0x8A, 0x42, 0xF9, 0xD1, 0xC3, 0x7D, 0x81, 0x49, 0x5B, 0x00, 0x50, 0x31, 0x03, 0xF0, 0x1F, 0x03, 0x41, 0xF8, 0x50, 0x3C, 0x0B, 0x67, 0x13, 0x60, 0x7D, 0x4A, 0x13, 0x60, 0xB4, 0x3A, 0x90, 0xF8, 0x73, 0x30, 0x03, 0xF0, 0x3F, 0x03, 0x13, 0x60, 0x08, 0x32, 0xC2, 0xF8, 0xB8, 0x30, 0x8A, 0x42, 0xF9, 0xD1, 0x43, 0x69, 0x1B, 0x0F, 0x77, 0x49, 0x5B, 0x00, 0x0B, 0x60, 0xC1, 0xF8, 0xC0, 0x30, 0x13, 0x60, 0x75, 0x4A, 0x13, 0x60, 0x6A, 0x4A, 0x13, 0x68, 0x43, 0xF0, 0x01, 0x03, 0x13, 0x60, 0xC3, 0x6E, 0x9B, 0x03, 0x70, 0xD5, 0x71, 0x4A, 0x13, 0x68, 0x23, 0xF0, 0x80, 0x03, 0x13, 0x60, 0x02, 0xF5, 0x9E, 0x72, 0x13, 0x68, 0x23, 0xF0, 0x04, 0x03, 0x13, 0x60, 0xC3, 0x6E, 0x13, 0xF0, 0x80, 0x4F, 0x43, 0x6F, 0x00, 0xF0, 0xE6, 0x80, 0x69, 0x49, 0x03, 0xF0, 0x3F, 0x03, 0x02, 0xF5, 0x3C, 0x72, 0x13, 0x60, 0x08, 0x32, 0xC2, 0xF8, 0xB8, 0x30, 0x8A, 0x42, 0xF9, 0xD1, 0x43, 0x69, 0x64, 0x49, 0x5B, 0x00, 0x0C, 0x39, 0x03, 0xF0, 0x1F, 0x03, 0xCB, 0x60, 0xC1, 0xF8, 0xCC, 0x30, 0x13, 0x60, 0x61, 0x4A, 0x13, 0x60, 0xB4, 0x3A, 0x43, 0x6F, 0xC3, 0xF3, 0x05, 0x23, 0x13, 0x60, 0x08, 0x32, 0xC2, 0xF8, 0xB8, 0x30, 0x8A, 0x42, 0xF9, 0xD1, 0x43, 0x69, 0x5B, 0x49, 0xDB, 0x08, 0x03, 0xF0, 0x1E, 0x03, 0x0B, 0x60, 0x01, 0xF5, 0x8E, 0x71, 0x41, 0xF8, 0x5C, 0x3C, 0x13, 0x60, 0x57, 0x4A, 0x13, 0x60, 0x24, 0x32, 0xB0, 0xF8, 0x76, 0x30, 0x03, 0xF0, 0x3F, 0x03, 0x13, 0x60, 0x08, 0x32, 0xC2, 0xF8, 0xB8, 0x30, 0x8A, 0x42, 0xF9, 0xD1, 0x43, 0x69, 0x51, 0x49, 0xDB, 0x09, 0x0C, 0x39, 0x03, 0xF0, 0x1E, 0x03, 0xCB, 0x60, 0xC1, 0xF8, 0xCC, 0x30, 0x13, 0x60, 0x4E, 0x4A, 0x13, 0x60, 0xB4, 0x3A, 0x90, 0xF8, 0x77, 0x30, 0x03, 0xF0, 0x3F, 0x03, 0x13, 0x60, 0x08, 0x32, 0xC2, 0xF8, 0xB8, 0x30, 0x8A, 0x42, 0xF9, 0xD1, 0x43, 0x69, 0xDB, 0x0A, 0x03, 0xF0, 0x1E, 0x03, 0x46, 0x49, 0x0B, 0x60, 0xC1, 0xF8, 0xC0, 0x30, 0x13, 0x60, 0x45, 0x4A, 0x13, 0x60, 0x3B, 0x4A, 0x13, 0x68, 0x43, 0xF0, 0x80, 0x03, 0x13, 0x60, 0x2D, 0x4A, 0x13, 0x68, 0x23, 0xF0, 0x04, 0x03, 0x13, 0x60, 0x70, 0x47, 0x5B, 0x00, 0x2B, 0x4A, 0x2B, 0x49, 0x03, 0xF0, 0x1F, 0x03, 0x13, 0x60, 0x08, 0x32, 0xC2, 0xF8, 0xB8, 0x30, 0x8A, 0x42, 0xF9, 0xD1, 0xB0, 0xF8, 0x72, 0x30, 0x27, 0x49, 0x5B, 0x00, 0x50, 0x31, 0x03, 0xF0, 0x1F, 0x03, 0x41, 0xF8, 0x50, 0x3C, 0x0B, 0x67, 0x13, 0x60, 0x23, 0x4A, 0x13, 0x60, 0xB4, 0x3A, 0x03, 0x6F, 0xDB, 0x08, 0x03, 0xF0, 0x1E, 0x03, 0x13, 0x60, 0x08, 0x32, 0xC2, 0xF8, 0xB8, 0x30, 0x8A, 0x42, 0xF9, 0xD1, 0x03, 0x6F, 0x1D, 0x49, 0xDB, 0x0C, 0x03, 0xF0, 0x1E, 0x03, 0x0B, 0x60, 0x01, 0xF5, 0x94, 0x71, 0x41, 0xF8, 0x68, 0x3C, 0x13, 0x60, 0x19, 0x4A, 0x13, 0x60, 0x24, 0x32, 0x03, 0x6F, 0xDB, 0x09, 0x03, 0xF0, 0x1E, 0x03, 0x13, 0x60, 0x08, 0x32, 0xC2, 0xF8, 0xB8, 0x30, 0x8A, 0x42, 0xF9, 0xD1, 0x90, 0xF8, 0x73, 0x30, 0x13, 0x49, 0x5B, 0x00, 0x50, 0x31, 0x03, 0xF0, 0x1F, 0x03, 0x41, 0xF8, 0x50, 0x3C, 0x0B, 0x67, 0x13, 0x60, 0x0F, 0x4A, 0x13, 0x60, 0xB4, 0x3A, 0x03, 0x6F, 0xDB, 0x0A, 0x03, 0xF0, 0x1E, 0x03, 0x13, 0x60, 0x08, 0x32, 0xC2, 0xF8, 0xB8, 0x30, 0x8A, 0x42, 0xF9, 0xD1, 0x03, 0x6F, 0x22, 0xE7, 0x00, 0xBF, 0x60, 0x00, 0x80, 0x04, 0x84, 0x04, 0x80, 0x04, 0xCC, 0x04, 0x80, 0x04, 0xD0, 0x04, 0x80, 0x04, 0x8C, 0x05, 0x80, 0x04, 0x24, 0x05, 0x80, 0x04, 0xE0, 0x05, 0x80, 0x04, 0x50, 0x06, 0x80, 0x04, 0x0C, 0x07, 0x80, 0x04, 0xA4, 0x06, 0x80, 0x04, 0x60, 0x07, 0x80, 0x04, 0x54, 0x00, 0x80, 0x04, 0xC8, 0x04, 0x80, 0x04, 0x28, 0x05, 0x80, 0x04, 0x88, 0x05, 0x80, 0x04, 0x2C, 0x05, 0x80, 0x04, 0xDC, 0x05, 0x80, 0x04, 0xA8, 0x06, 0x80, 0x04, 0x08, 0x07, 0x80, 0x04, 0xAC, 0x06, 0x80, 0x04, 0x5C, 0x07, 0x80, 0x04, 0x5B, 0x00, 0x2B, 0x4A, 0x2B, 0x49, 0x03, 0xF0, 0x1F, 0x03, 0x13, 0x60, 0x08, 0x32, 0xC2, 0xF8, 0xB8, 0x30, 0x8A, 0x42, 0xF9, 0xD1, 0xB0, 0xF8, 0x76, 0x30, 0x27, 0x49, 0x5B, 0x00, 0x0C, 0x39, 0x03, 0xF0, 0x1F, 0x03, 0xCB, 0x60, 0xC1, 0xF8, 0xCC, 0x30, 0x13, 0x60, 0x23, 0x4A, 0x13, 0x60, 0xB4, 0x3A, 0x43, 0x6F, 0xDB, 0x08, 0x03, 0xF0, 0x1E, 0x03, 0x13, 0x60, 0x08, 0x32, 0xC2, 0xF8, 0xB8, 0x30, 0x8A, 0x42, 0xF9, 0xD1, 0x43, 0x6F, 0x1D, 0x49, 0xDB, 0x0C, 0x03, 0xF0, 0x1E, 0x03, 0x0B, 0x60, 0x01, 0xF5, 0x8E, 0x71, 0x41, 0xF8, 0x5C, 0x3C, 0x13, 0x60, 0x19, 0x4A, 0x13, 0x60, 0x24, 0x32, 0x43, 0x6F, 0xDB, 0x09, 0x03, 0xF0, 0x1E, 0x03, 0x13, 0x60, 0x08, 0x32, 0xC2, 0xF8, 0xB8, 0x30, 0x8A, 0x42, 0xF9, 0xD1, 0x90, 0xF8, 0x77, 0x30, 0x13, 0x49, 0x5B, 0x00, 0x0C, 0x39, 0x03, 0xF0, 0x1F, 0x03, 0xCB, 0x60, 0xC1, 0xF8, 0xCC, 0x30, 0x13, 0x60, 0x0F, 0x4A, 0x13, 0x60, 0xB4, 0x3A, 0x43, 0x6F, 0xDB, 0x0A, 0x03, 0xF0, 0x1E, 0x03, 0x13, 0x60, 0x08, 0x32, 0xC2, 0xF8, 0xB8, 0x30, 0x8A, 0x42, 0xF9, 0xD1, 0x43, 0x6F, 0x1B, 0x0F, 0x5B, 0x00, 0x16, 0xE7, 0x00, 0xBF, 0x80, 0x04, 0x80, 0x04, 0xC8, 0x04, 0x80, 0x04, 0x28, 0x05, 0x80, 0x04, 0x88, 0x05, 0x80, 0x04, 0x2C, 0x05, 0x80, 0x04, 0xDC, 0x05, 0x80, 0x04, 0xA8, 0x06, 0x80, 0x04, 0x08, 0x07, 0x80, 0x04, 0x2D, 0xE9, 0xF0, 0x4F, 0xAD, 0xF5, 0x75, 0x7D, 0x0D, 0xF1, 0x04, 0x09, 0x83, 0x46, 0x6C, 0x22, 0x48, 0x46, 0x7E, 0x49, 0x0D, 0xF1, 0x70, 0x0A, 0xFD, 0xF7, 0x02, 0xF8, 0x0D, 0xF1, 0xDC, 0x08, 0x6C, 0x22, 0x7B, 0x49, 0x50, 0x46, 0xFC, 0xF7, 0xFB, 0xFF, 0x52, 0xAF, 0x6C, 0x22, 0x79, 0x49, 0x40, 0x46, 0xFC, 0xF7, 0xF5, 0xFF, 0x6D, 0xAE, 0x6C, 0x22, 0x77, 0x49, 0x38, 0x46, 0xFC, 0xF7, 0xEF, 0xFF, 0x88, 0xAD, 0x6C, 0x22, 0x75, 0x49, 0x30, 0x46, 0xFC, 0xF7, 0xE9, 0xFF, 0xA3, 0xAC, 0x6C, 0x22, 0x73, 0x49, 0x28, 0x46, 0xFC, 0xF7, 0xE3, 0xFF, 0x6C, 0x22, 0x71, 0x49, 0x20, 0x46, 0xFC, 0xF7, 0xDE, 0xFF, 0x6C, 0x22, 0x70, 0x49, 0xBE, 0xA8, 0xFC, 0xF7, 0xD9, 0xFF, 0xD9, 0xAB, 0x6C, 0x22, 0x6E, 0x49, 0x18, 0x46, 0xFC, 0xF7, 0xD3, 0xFF, 0xDB, 0xF8, 0x04, 0x10, 0x03, 0x46, 0x6B, 0x4A, 0x03, 0x39, 0x12, 0x68, 0x05, 0x29, 0x27, 0xD8, 0xDF, 0xE8, 0x01, 0xF0, 0x03, 0x40, 0x26, 0x26, 0x6A, 0x94, 0x4F, 0xF6, 0xFF, 0x33, 0x13, 0x40, 0xB3, 0xF5, 0xA0, 0x4F, 0x0C, 0xD0, 0x4F, 0xF6, 0xFF, 0x63, 0x13, 0x40, 0xB3, 0xF5, 0xB8, 0x4F, 0x06, 0xD0, 0x22, 0xF4, 0x00, 0x62, 0x12, 0x04, 0x12, 0x0C, 0xB2, 0xF5, 0x00, 0x5F, 0x1D, 0xD1, 0xDB, 0xF8, 0x78, 0x30, 0x5D, 0x49, 0x13, 0xF0, 0x80, 0x0F, 0x5C, 0x4B, 0x0C, 0xD0, 0xA3, 0xF1, 0x90, 0x62, 0xC0, 0x3A, 0x5A, 0xF8, 0x02, 0x20, 0x43, 0xF8, 0x04, 0x2B, 0x8B, 0x42, 0xF6, 0xD1, 0x0D, 0xF5, 0x75, 0x7D, 0xBD, 0xE8, 0xF0, 0x8F, 0xA3, 0xF1, 0x90, 0x62, 0xC0, 0x3A, 0x59, 0xF8, 0x02, 0x20, 0x43, 0xF8, 0x04, 0x2B, 0x8B, 0x42, 0xF6, 0xD1, 0xF1, 0xE7, 0x50, 0x4B, 0x4E, 0x49, 0xA3, 0xF1, 0x90, 0x62, 0xC0, 0x3A, 0x58, 0xF8, 0x02, 0x20, 0x43, 0xF8, 0x04, 0x2B, 0x8B, 0x42, 0xF6, 0xD1, 0xE5, 0xE7, 0x4F, 0xF6, 0xFF, 0x33, 0x13, 0x40, 0xB3, 0xF5, 0xA0, 0x4F, 0x17, 0xD0, 0x4F, 0xF6, 0xFF, 0x63, 0x13, 0x40, 0xB3, 0xF5, 0xB8, 0x4F, 0x11, 0xD0, 0x22, 0xF4, 0x00, 0x62, 0x43, 0x4B, 0x12, 0x04, 0x12, 0x0C, 0xB2, 0xF5, 0x00, 0x5F, 0x0B, 0xD1, 0x3F, 0x49, 0xA3, 0xF1, 0x90, 0x62, 0xC0, 0x3A, 0xBA, 0x58, 0x43, 0xF8, 0x04, 0x2B, 0x8B, 0x42, 0xF7, 0xD1, 0xC7, 0xE7, 0x3B, 0x4B, 0xF3, 0xE7, 0x39, 0x49, 0xA3, 0xF1, 0x90, 0x62, 0xC0, 0x3A, 0xB2, 0x58, 0x43, 0xF8, 0x04, 0x2B, 0x8B, 0x42, 0xF7, 0xD1, 0xBB, 0xE7, 0x4F, 0xF6, 0xFF, 0x33, 0x13, 0x40, 0xB3, 0xF5, 0xA0, 0x4F, 0x17, 0xD0, 0x4F, 0xF6, 0xFF, 0x63, 0x13, 0x40, 0xB3, 0xF5, 0xB8, 0x4F, 0x11, 0xD0, 0x22, 0xF4, 0x00, 0x62, 0x2E, 0x4B, 0x12, 0x04, 0x12, 0x0C, 0xB2, 0xF5, 0x00, 0x5F, 0x0B, 0xD1, 0x2A, 0x49, 0xA3, 0xF1, 0x90, 0x62, 0xC0, 0x3A, 0xAA, 0x58, 0x43, 0xF8, 0x04, 0x2B, 0x8B, 0x42, 0xF7, 0xD1, 0x9D, 0xE7, 0x26, 0x4B, 0xF3, 0xE7, 0x24, 0x49, 0xA3, 0xF1, 0x90, 0x62, 0xC0, 0x3A, 0xA2, 0x58, 0x43, 0xF8, 0x04, 0x2B, 0x8B, 0x42, 0xF7, 0xD1, 0x91, 0xE7, 0x4F, 0xF6, 0xFF, 0x31, 0x11, 0x40, 0xB1, 0xF5, 0xA0, 0x4F, 0x0C, 0xD0, 0x4F, 0xF6, 0xFF, 0x61, 0x11, 0x40, 0xB1, 0xF5, 0xB8, 0x4F, 0x06, 0xD0, 0x22, 0xF4, 0x00, 0x62, 0x12, 0x04, 0x12, 0x0C, 0xB2, 0xF5, 0x00, 0x5F, 0x0B, 0xD1, 0x16, 0x4B, 0x15, 0x49, 0xA3, 0xF1, 0x90, 0x62, 0xBE, 0xA8, 0xC0, 0x3A, 0x82, 0x58, 0x43, 0xF8, 0x04, 0x2B, 0x8B, 0x42, 0xF6, 0xD1, 0x72, 0xE7, 0x10, 0x4A, 0x0F, 0x48, 0xA2, 0xF1, 0x90, 0x61, 0xC0, 0x39, 0x59, 0x58, 0x42, 0xF8, 0x04, 0x1B, 0x82, 0x42, 0xF7, 0xD1, 0x67, 0xE7, 0x00, 0xBF, 0x60, 0xFC, 0x04, 0x00, 0xCC, 0xFC, 0x04, 0x00, 0x38, 0xFD, 0x04, 0x00, 0xA4, 0xFD, 0x04, 0x00, 0x10, 0xFE, 0x04, 0x00, 0x7C, 0xFE, 0x04, 0x00, 0xE8, 0xFE, 0x04, 0x00, 0x54, 0xFF, 0x04, 0x00, 0xC0, 0xFF, 0x04, 0x00, 0x00, 0x62, 0x00, 0x03, 0x2C, 0x01, 0x80, 0x04, 0xC0, 0x00, 0x80, 0x04, 0x10, 0xB5, 0x01, 0x20, 0x08, 0x4C, 0x23, 0x68, 0x23, 0xF0, 0x80, 0x73, 0x43, 0xF4, 0x40, 0x73, 0x23, 0x60, 0xFC, 0xF7, 0xC4, 0xFC, 0x23, 0x68, 0x01, 0x20, 0x43, 0xF0, 0x80, 0x73, 0x23, 0x60, 0xBD, 0xE8, 0x10, 0x40, 0xFC, 0xF7, 0xBB, 0xBC, 0x00, 0xA5, 0x7F, 0x04, 0x5B, 0x4A, 0x38, 0xB5, 0x04, 0x46, 0x45, 0x68, 0x13, 0x68, 0x08, 0x2D, 0x23, 0xF0, 0x01, 0x03, 0x13, 0x60, 0x01, 0xBF, 0x57, 0x4A, 0x13, 0x68, 0x23, 0xF0, 0x80, 0x03, 0x13, 0x60, 0x56, 0x4A, 0xC1, 0x69, 0x13, 0x68, 0xC9, 0x07, 0x23, 0xF0, 0x0F, 0x03, 0x4C, 0xBF, 0x43, 0xF0, 0x03, 0x03, 0x43, 0xF0, 0x0F, 0x03, 0x13, 0x60, 0xEB, 0x1E, 0x05, 0x2B, 0x00, 0xF2, 0x83, 0x80, 0xDF, 0xE8, 0x03, 0xF0, 0x06, 0x03, 0x81, 0x81, 0x77, 0x83, 0x0A, 0x23, 0x0D, 0x22, 0x08, 0xE0, 0x03, 0x6E, 0x03, 0xF4, 0x80, 0x73, 0x00, 0x2B, 0x0B, 0xBF, 0x09, 0x23, 0x07, 0x23, 0x0D, 0x22, 0x09, 0x22, 0x46, 0x49, 0x20, 0x46, 0x0A, 0x60, 0x04, 0x31, 0xC1, 0xF8, 0x44, 0x23, 0xC1, 0xF8, 0x50, 0x23, 0xC1, 0xF8, 0x5C, 0x23, 0x00, 0x22, 0x0A, 0x60, 0xC1, 0xF8, 0x48, 0x23, 0xC1, 0xF8, 0x54, 0x23, 0xC1, 0xF8, 0x60, 0x23, 0x3E, 0x4A, 0x13, 0x60, 0xC2, 0xF8, 0x48, 0x33, 0xC2, 0xF8, 0x54, 0x33, 0xC2, 0xF8, 0x60, 0x33, 0xFF, 0xF7, 0x80, 0xFE, 0x20, 0x46, 0xFF, 0xF7, 0xD7, 0xFB, 0xFF, 0xF7, 0xF1, 0xFA, 0xFF, 0xF7, 0x13, 0xFB, 0x33, 0x4A, 0x07, 0x2D, 0x13, 0x68, 0x23, 0xF0, 0x07, 0x03, 0x4D, 0xD0, 0x08, 0x2D, 0x4E, 0xD0, 0x04, 0x2D, 0x4F, 0xD1, 0x43, 0xF0, 0x04, 0x03, 0x43, 0xF0, 0x08, 0x03, 0x13, 0x60, 0x23, 0x68, 0xB3, 0xF5, 0x28, 0x7F, 0x9E, 0xBF, 0x2D, 0x4B, 0x0F, 0x22, 0x1A, 0x60, 0x23, 0x68, 0x2C, 0x4A, 0xB3, 0xF5, 0xFA, 0x7F, 0x2C, 0x4B, 0x19, 0x68, 0x3F, 0xD8, 0x41, 0xF0, 0x80, 0x01, 0x19, 0x60, 0x13, 0x68, 0x23, 0xF0, 0xE0, 0x03, 0x43, 0xF0, 0x20, 0x03, 0x13, 0x60, 0x01, 0x20, 0x26, 0x4A, 0x13, 0x68, 0x23, 0xF4, 0x00, 0x73, 0x13, 0x60, 0xFC, 0xF7, 0x38, 0xFC, 0x21, 0x4A, 0x13, 0x68, 0x34, 0x32, 0x23, 0xF0, 0x08, 0x03, 0x42, 0xF8, 0x34, 0x3C, 0x13, 0x68, 0x5B, 0x07, 0xFC, 0xD5, 0x4F, 0xF4, 0x7A, 0x70, 0xFC, 0xF7, 0x2A, 0xFC, 0x1D, 0x4B, 0x37, 0x22, 0x1A, 0x60, 0x12, 0x4A, 0x13, 0x68, 0x43, 0xF0, 0x01, 0x03, 0x13, 0x60, 0x38, 0xBD, 0x03, 0x6E, 0x03, 0xF4, 0x80, 0x73, 0x00, 0x2B, 0x0B, 0xBF, 0x08, 0x23, 0x06, 0x23, 0x0E, 0x22, 0x0C, 0x22, 0x8D, 0xE7, 0x09, 0x23, 0x80, 0xE7, 0x0A, 0x23, 0x14, 0x22, 0x88, 0xE7, 0x43, 0xF0, 0x03, 0x03, 0xB4, 0xE7, 0x43, 0xF0, 0x05, 0x03, 0xB1, 0xE7, 0x43, 0xF0, 0x02, 0x03, 0xAE, 0xE7, 0x21, 0xF0, 0x80, 0x01, 0x19, 0x60, 0x13, 0x68, 0x23, 0xF0, 0xE0, 0x03, 0xC0, 0xE7, 0x00, 0xBF, 0xF4, 0x01, 0x00, 0x07, 0x04, 0x00, 0x80, 0x04, 0x3C, 0x00, 0x80, 0x04, 0x14, 0x00, 0x80, 0x04, 0x1C, 0x00, 0x80, 0x04, 0x20, 0x00, 0x80, 0x04, 0x4C, 0x01, 0x80, 0x04, 0x44, 0x01, 0x80, 0x04, 0x00, 0xA5, 0x7F, 0x04, 0x58, 0x00, 0x80, 0x04, 0x41, 0x49, 0x42, 0x68, 0x10, 0xB5, 0x0B, 0x68, 0x04, 0x2A, 0x23, 0xF0, 0xC0, 0x03, 0x43, 0xF0, 0x80, 0x03, 0x0B, 0x60, 0x3D, 0x4B, 0x54, 0xD1, 0x90, 0xF8, 0x24, 0x20, 0x1A, 0x60, 0x90, 0xF8, 0x25, 0x30, 0x3B, 0x4A, 0x43, 0xF0, 0x40, 0x03, 0x13, 0x60, 0x37, 0x4B, 0x39, 0x49, 0x1A, 0x68, 0x42, 0xF0, 0x04, 0x02, 0x1A, 0x60, 0xC2, 0x69, 0x12, 0xF0, 0x01, 0x0F, 0x4F, 0xD0, 0x0A, 0x68, 0x02, 0xF0, 0x03, 0x02, 0x03, 0x2A, 0xFA, 0xD1, 0x1A, 0x68, 0x22, 0xF0, 0x04, 0x02, 0x1A, 0x60, 0x00, 0x22, 0x14, 0x46, 0x13, 0x46, 0x03, 0xF1, 0x90, 0x73, 0x96, 0x33, 0x9B, 0x00, 0x1B, 0x68, 0x00, 0x2B, 0x49, 0xD0, 0x3F, 0x2B, 0x08, 0xBF, 0x01, 0x22, 0x61, 0x1C, 0x04, 0x29, 0x3C, 0xD1, 0x25, 0x4B, 0x19, 0x68, 0x21, 0xF0, 0xC0, 0x01, 0x19, 0x60, 0xC1, 0x69, 0xC9, 0x04, 0x18, 0xD5, 0x19, 0x68, 0x21, 0xF0, 0xC0, 0x01, 0x41, 0xF0, 0x40, 0x01, 0x19, 0x60, 0x19, 0x68, 0x41, 0xF0, 0x04, 0x01, 0x19, 0x60, 0xC3, 0x69, 0x1F, 0x49, 0x13, 0xF0, 0x01, 0x0F, 0x2E, 0xD0, 0x0B, 0x68, 0x03, 0xF0, 0x03, 0x03, 0x03, 0x2B, 0xFA, 0xD1, 0x17, 0x49, 0x0B, 0x68, 0x23, 0xF0, 0x04, 0x03, 0x0B, 0x60, 0x15, 0x49, 0x82, 0xF0, 0x01, 0x00, 0x0B, 0x68, 0x23, 0xF0, 0xC0, 0x03, 0x0B, 0x60, 0x10, 0xBD, 0x06, 0x3A, 0x02, 0x2A, 0x12, 0x4A, 0x91, 0xBF, 0x90, 0xF8, 0x28, 0x10, 0x04, 0x21, 0x19, 0x60, 0x40, 0x23, 0x9C, 0xBF, 0x19, 0x60, 0x90, 0xF8, 0x29, 0x30, 0xA4, 0xE7, 0x0A, 0x68, 0x02, 0xF0, 0x0F, 0x02, 0x0F, 0x2A, 0xFA, 0xD1, 0xAE, 0xE7, 0x01, 0x29, 0x14, 0xBF, 0x04, 0xF1, 0x2F, 0x03, 0x0B, 0x46, 0x0C, 0x46, 0xAE, 0xE7, 0x01, 0x22, 0xB6, 0xE7, 0x0B, 0x68, 0x03, 0xF0, 0x0F, 0x03, 0x0F, 0x2B, 0xFA, 0xD1, 0xCF, 0xE7, 0x08, 0x00, 0x80, 0x04, 0x0C, 0x00, 0x80, 0x04, 0x10, 0x00, 0x80, 0x04, 0x88, 0x01, 0x80, 0x04, 0x48, 0x4B, 0x1A, 0x68, 0x22, 0xF0, 0x30, 0x02, 0x42, 0xF0, 0x20, 0x02, 0x1A, 0x60, 0x42, 0x68, 0x04, 0x2A, 0x01, 0xBF, 0x44, 0x49, 0x0A, 0x68, 0x42, 0xF0, 0x02, 0x02, 0x0A, 0x60, 0x1A, 0x68, 0x42, 0xF0, 0x01, 0x02, 0x1A, 0x60, 0xC1, 0x69, 0x40, 0x4A, 0x11, 0xF0, 0x01, 0x01, 0x60, 0xD0, 0x13, 0x68, 0x03, 0xF0, 0x03, 0x03, 0x03, 0x2B, 0x01, 0xD1, 0x00, 0x21, 0x02, 0xE0, 0x13, 0x68, 0x9B, 0x06, 0xF5, 0xD5, 0x37, 0x4B, 0x1A, 0x68, 0x22, 0xF0, 0x01, 0x02, 0x1A, 0x60, 0x1A, 0x68, 0x22, 0xF0, 0x30, 0x02, 0x1A, 0x60, 0xC2, 0x69, 0xD2, 0x04, 0x18, 0xD5, 0x1A, 0x68, 0x22, 0xF0, 0x30, 0x02, 0x42, 0xF0, 0x10, 0x02, 0x1A, 0x60, 0x1A, 0x68, 0x42, 0xF0, 0x01, 0x02, 0x1A, 0x60, 0xC3, 0x69, 0x13, 0xF0, 0x01, 0x03, 0x44, 0xD0, 0x2C, 0x48, 0x02, 0x68, 0x02, 0xF0, 0x03, 0x02, 0x03, 0x2A, 0x49, 0xD1, 0x27, 0x4A, 0x13, 0x68, 0x23, 0xF0, 0x01, 0x03, 0x13, 0x60, 0x25, 0x4A, 0x13, 0x68, 0x23, 0xF0, 0x30, 0x03, 0x13, 0x60, 0x25, 0x4B, 0x1B, 0x68, 0xD2, 0xF8, 0x6C, 0x02, 0x03, 0xF0, 0x07, 0x03, 0x00, 0xF0, 0x07, 0x00, 0x98, 0x42, 0x38, 0xBF, 0x18, 0x46, 0x21, 0x4B, 0x1B, 0x68, 0x03, 0xF0, 0x07, 0x03, 0x98, 0x42, 0x38, 0xBF, 0x18, 0x46, 0x1E, 0x4B, 0x1B, 0x68, 0x03, 0xF0, 0x07, 0x03, 0x83, 0x42, 0x38, 0xBF, 0x03, 0x46, 0x1C, 0x48, 0x02, 0x33, 0x03, 0xF0, 0x07, 0x03, 0x02, 0x68, 0x22, 0xF0, 0x07, 0x02, 0x13, 0x43, 0x19, 0x4A, 0x03, 0x60, 0x81, 0xF0, 0x01, 0x00, 0x13, 0x68, 0x43, 0xF0, 0x20, 0x03, 0x13, 0x60, 0x70, 0x47, 0x13, 0x68, 0x9B, 0x06, 0x05, 0xD4, 0x13, 0x68, 0x03, 0xF0, 0x0F, 0x03, 0x0F, 0x2B, 0xF7, 0xD1, 0xA2, 0xE7, 0x01, 0x21, 0xA0, 0xE7, 0x0A, 0x4A, 0x13, 0x68, 0x03, 0xF0, 0x0F, 0x03, 0x0F, 0x2B, 0xBA, 0xD0, 0x13, 0x68, 0x9B, 0x06, 0xF7, 0xD5, 0x01, 0x21, 0xB5, 0xE7, 0x02, 0x68, 0x92, 0x06, 0xAD, 0xD5, 0x19, 0x46, 0xB0, 0xE7, 0x00, 0xBF, 0x08, 0x00, 0x80, 0x04, 0x54, 0x00, 0x80, 0x04, 0x84, 0x01, 0x80, 0x04, 0x6C, 0x02, 0x80, 0x04, 0x2C, 0x03, 0x80, 0x04, 0x34, 0x03, 0x80, 0x04, 0x38, 0x00, 0x80, 0x04, 0x04, 0x00, 0x80, 0x04, 0x2D, 0xE9, 0xF8, 0x43, 0x06, 0x46, 0x43, 0x68, 0x08, 0x2B, 0x01, 0xBF, 0xA4, 0x4A, 0x00, 0x23, 0x13, 0x60, 0xD3, 0x61, 0xA3, 0x4A, 0x13, 0x68, 0x23, 0xF0, 0x03, 0x03, 0x43, 0xF0, 0x02, 0x03, 0x13, 0x60, 0xD2, 0xF8, 0x6C, 0x36, 0x23, 0xF0, 0x3F, 0x03, 0x43, 0xF0, 0x0F, 0x03, 0xC2, 0xF8, 0x6C, 0x36, 0xD2, 0xF8, 0x70, 0x36, 0x23, 0xF0, 0x3F, 0x03, 0x43, 0xF0, 0x0F, 0x03, 0xC2, 0xF8, 0x70, 0x36, 0xD2, 0xF8, 0x6C, 0x38, 0x23, 0xF0, 0x3F, 0x03, 0x43, 0xF0, 0x0F, 0x03, 0xC2, 0xF8, 0x6C, 0x38, 0xD2, 0xF8, 0x70, 0x38, 0x23, 0xF0, 0x3F, 0x03, 0x43, 0xF0, 0x0F, 0x03, 0xC2, 0xF8, 0x70, 0x38, 0x91, 0x4B, 0x1A, 0x68, 0x42, 0xF0, 0x06, 0x02, 0x1A, 0x60, 0x1A, 0x68, 0x42, 0xF0, 0x01, 0x02, 0x1A, 0x60, 0x8D, 0x4A, 0x13, 0x68, 0x03, 0xF0, 0x0C, 0x03, 0x0C, 0x2B, 0xFA, 0xD1, 0x14, 0x68, 0x14, 0xF0, 0x03, 0x04, 0x03, 0xD0, 0x01, 0x24, 0x89, 0x48, 0xFC, 0xF7, 0xB4, 0xFD, 0xF3, 0x69, 0xDB, 0x07, 0x0C, 0xD4, 0x87, 0x4A, 0x13, 0x68, 0x03, 0xF0, 0x0C, 0x03, 0x0C, 0x2B, 0xFA, 0xD1, 0x13, 0x68, 0x9F, 0x07, 0x03, 0xD0, 0x01, 0x24, 0x83, 0x48, 0xFC, 0xF7, 0xA4, 0xFD, 0x82, 0x4B, 0x4F, 0xF0, 0xFF, 0x37, 0x82, 0x4D, 0xDF, 0xF8, 0x98, 0x92, 0x1B, 0x68, 0x81, 0x4B, 0xDF, 0xF8, 0x94, 0x82, 0x1B, 0x68, 0x80, 0x4B, 0x1B, 0x68, 0x80, 0x4B, 0x1B, 0x68, 0x80, 0x4B, 0x1B, 0x68, 0x80, 0x4B, 0x1B, 0x68, 0x80, 0x4B, 0x1B, 0x68, 0x80, 0x4B, 0x1B, 0x68, 0x80, 0x4B, 0x1B, 0x68, 0x2B, 0x68, 0x55, 0xF8, 0x48, 0x3C, 0x2A, 0x68, 0xD2, 0x1A, 0x06, 0x2A, 0x08, 0xD8, 0x39, 0x46, 0x48, 0x46, 0xFC, 0xF7, 0x80, 0xFD, 0xF3, 0x6E, 0x13, 0xF0, 0x80, 0x5F, 0x08, 0xBF, 0x01, 0x24, 0x04, 0x35, 0x01, 0x37, 0x45, 0x45, 0xEB, 0xD1, 0x76, 0x4B, 0x4F, 0xF0, 0xFF, 0x37, 0xDF, 0xF8, 0x48, 0x92, 0xDF, 0xF8, 0x48, 0x82, 0x1B, 0x68, 0x73, 0x4B, 0x1B, 0x68, 0x73, 0x4B, 0x1B, 0x68, 0x73, 0x4B, 0x1B, 0x68, 0x73, 0x4B, 0x1B, 0x68, 0x73, 0x4B, 0x1B, 0x68, 0x73, 0x4B, 0x1B, 0x68, 0x73, 0x4B, 0x1B, 0x68, 0x73, 0x4B, 0x1B, 0x68, 0x2B, 0x68, 0x55, 0xF8, 0x48, 0x3C, 0x2A, 0x68, 0xD2, 0x1A, 0x06, 0x2A, 0x08, 0xD8, 0x39, 0x46, 0x48, 0x46, 0xFC, 0xF7, 0x54, 0xFD, 0xF3, 0x6E, 0x13, 0xF0, 0x80, 0x5F, 0x08, 0xBF, 0x01, 0x24, 0x04, 0x35, 0x01, 0x37, 0x45, 0x45, 0xEB, 0xD1, 0xF3, 0x69, 0xDD, 0x07, 0x58, 0xD4, 0x67, 0x4B, 0x4F, 0xF0, 0xFF, 0x37, 0x67, 0x4D, 0xDF, 0xF8, 0xF0, 0x91, 0x1B, 0x68, 0x66, 0x4B, 0xDF, 0xF8, 0xEC, 0x81, 0x1B, 0x68, 0x65, 0x4B, 0x1B, 0x68, 0x65, 0x4B, 0x1B, 0x68, 0x65, 0x4B, 0x1B, 0x68, 0x65, 0x4B, 0x1B, 0x68, 0x65, 0x4B, 0x1B, 0x68, 0x65, 0x4B, 0x1B, 0x68, 0x65, 0x4B, 0x1B, 0x68, 0x2B, 0x68, 0x55, 0xF8, 0x48, 0x3C, 0x2A, 0x68, 0xD2, 0x1A, 0x06, 0x2A, 0x08, 0xD8, 0x39, 0x46, 0x48, 0x46, 0xFC, 0xF7, 0x24, 0xFD, 0xF3, 0x6E, 0x13, 0xF0, 0x80, 0x5F, 0x08, 0xBF, 0x01, 0x24, 0x04, 0x35, 0x01, 0x37, 0x45, 0x45, 0xEB, 0xD1, 0x5B, 0x4B, 0x4F, 0xF0, 0xFF, 0x37, 0xDF, 0xF8, 0xA0, 0x91, 0xDF, 0xF8, 0xA0, 0x81, 0x1B, 0x68, 0x58, 0x4B, 0x1B, 0x68, 0x58, 0x4B, 0x1B, 0x68, 0x58, 0x4B, 0x1B, 0x68, 0x58, 0x4B, 0x1B, 0x68, 0x58, 0x4B, 0x1B, 0x68, 0x58, 0x4B, 0x1B, 0x68, 0x58, 0x4B, 0x1B, 0x68, 0x58, 0x4B, 0x1B, 0x68, 0x2B, 0x68, 0x55, 0xF8, 0x48, 0x3C, 0x2A, 0x68, 0xD2, 0x1A, 0x06, 0x2A, 0x08, 0xD8, 0x39, 0x46, 0x48, 0x46, 0xFC, 0xF7, 0xF8, 0xFC, 0xF3, 0x6E, 0x13, 0xF0, 0x80, 0x5F, 0x08, 0xBF, 0x01, 0x24, 0x04, 0x35, 0x01, 0x37, 0x45, 0x45, 0xEB, 0xD1, 0x23, 0x4B, 0x1A, 0x68, 0x22, 0xF0, 0x03, 0x02, 0x1A, 0x60, 0xF2, 0x69, 0xD0, 0x04, 0x30, 0xD5, 0x1E, 0x49, 0x0A, 0x68, 0x22, 0xF0, 0x03, 0x02, 0x42, 0xF0, 0x02, 0x02, 0x0A, 0x60, 0x1A, 0x68, 0x42, 0xF0, 0x06, 0x02, 0x1A, 0x60, 0x1A, 0x68, 0x42, 0xF0, 0x01, 0x02, 0x1A, 0x60, 0x18, 0x4A, 0x13, 0x68, 0x03, 0xF0, 0x0C, 0x03, 0x0C, 0x2B, 0xFA, 0xD1, 0x13, 0x68, 0x99, 0x07, 0x03, 0xD0, 0x01, 0x24, 0x14, 0x48, 0xFC, 0xF7, 0xCB, 0xFC, 0xF3, 0x69, 0xDA, 0x07, 0x0C, 0xD4, 0x12, 0x4A, 0x13, 0x68, 0x03, 0xF0, 0x0C, 0x03, 0x0C, 0x2B, 0xFA, 0xD1, 0x13, 0x68, 0x9B, 0x07, 0x03, 0xD0, 0x01, 0x24, 0x0E, 0x48, 0xFC, 0xF7, 0xBB, 0xFC, 0x09, 0x4A, 0x13, 0x68, 0x23, 0xF0, 0x03, 0x03, 0x13, 0x60, 0x05, 0x4A, 0x84, 0xF0, 0x01, 0x00, 0x13, 0x68, 0x23, 0xF0, 0x03, 0x03, 0x13, 0x60, 0xBD, 0xE8, 0xF8, 0x83, 0x00, 0xBF, 0x00, 0x08, 0x80, 0x04, 0x98, 0x01, 0x80, 0x04, 0x90, 0x01, 0x80, 0x04, 0x40, 0x08, 0x80, 0x04, 0x76, 0x0A, 0x05, 0x00, 0x40, 0x0A, 0x80, 0x04, 0x9A, 0x0A, 0x05, 0x00, 0x50, 0x08, 0x80, 0x04, 0x98, 0x08, 0x80, 0x04, 0x54, 0x08, 0x80, 0x04, 0x58, 0x08, 0x80, 0x04, 0x5C, 0x08, 0x80, 0x04, 0x60, 0x08, 0x80, 0x04, 0x64, 0x08, 0x80, 0x04, 0x68, 0x08, 0x80, 0x04, 0x6C, 0x08, 0x80, 0x04, 0x70, 0x08, 0x80, 0x04, 0x74, 0x08, 0x80, 0x04, 0x78, 0x08, 0x80, 0x04, 0x7C, 0x08, 0x80, 0x04, 0x80, 0x08, 0x80, 0x04, 0x84, 0x08, 0x80, 0x04, 0x88, 0x08, 0x80, 0x04, 0x8C, 0x08, 0x80, 0x04, 0x90, 0x08, 0x80, 0x04, 0x94, 0x08, 0x80, 0x04, 0x50, 0x0A, 0x80, 0x04, 0x98, 0x0A, 0x80, 0x04, 0x54, 0x0A, 0x80, 0x04, 0x58, 0x0A, 0x80, 0x04, 0x5C, 0x0A, 0x80, 0x04, 0x60, 0x0A, 0x80, 0x04, 0x64, 0x0A, 0x80, 0x04, 0x68, 0x0A, 0x80, 0x04, 0x6C, 0x0A, 0x80, 0x04, 0x70, 0x0A, 0x80, 0x04, 0x74, 0x0A, 0x80, 0x04, 0x78, 0x0A, 0x80, 0x04, 0x7C, 0x0A, 0x80, 0x04, 0x80, 0x0A, 0x80, 0x04, 0x84, 0x0A, 0x80, 0x04, 0x88, 0x0A, 0x80, 0x04, 0x8C, 0x0A, 0x80, 0x04, 0x90, 0x0A, 0x80, 0x04, 0x94, 0x0A, 0x80, 0x04, 0xBF, 0x0A, 0x05, 0x00, 0xBC, 0x08, 0x80, 0x04, 0xE7, 0x0A, 0x05, 0x00, 0xE0, 0x08, 0x80, 0x04, 0x0F, 0x0B, 0x05, 0x00, 0xBC, 0x0A, 0x80, 0x04, 0x37, 0x0B, 0x05, 0x00, 0xE0, 0x0A, 0x80, 0x04, 0x97, 0x4A, 0x2D, 0xE9, 0xF8, 0x43, 0x00, 0x23, 0x06, 0x46, 0x13, 0x60, 0x53, 0x60, 0x93, 0x66, 0xD3, 0x66, 0x53, 0x6E, 0x23, 0xF0, 0x0C, 0x03, 0x43, 0xF0, 0x08, 0x03, 0x53, 0x66, 0x91, 0x4B, 0x1A, 0x68, 0x42, 0xF0, 0x10, 0x02, 0x1A, 0x60, 0x1A, 0x68, 0x42, 0xF0, 0x20, 0x02, 0x1A, 0x60, 0x8D, 0x4A, 0x13, 0x68, 0x03, 0xF0, 0x03, 0x03, 0x03, 0x2B, 0xFA, 0xD1, 0x14, 0x68, 0x14, 0xF0, 0x0C, 0x04, 0x03, 0xD0, 0x01, 0x24, 0x89, 0x48, 0xFC, 0xF7, 0x1C, 0xFC, 0xF3, 0x69, 0xD8, 0x07, 0x0D, 0xD4, 0x87, 0x4A, 0x13, 0x68, 0x03, 0xF0, 0x03, 0x03, 0x03, 0x2B, 0xFA, 0xD1, 0x13, 0x68, 0x13, 0xF0, 0x0C, 0x0F, 0x03, 0xD0, 0x01, 0x24, 0x82, 0x48, 0xFC, 0xF7, 0x0B, 0xFC, 0x82, 0x4B, 0x4F, 0xF0, 0xFF, 0x37, 0x81, 0x4D, 0xDF, 0xF8, 0x9C, 0x92, 0x1B, 0x68, 0x80, 0x4B, 0xDF, 0xF8, 0x98, 0x82, 0x1B, 0x68, 0x7F, 0x4B, 0x1B, 0x68, 0x7F, 0x4B, 0x1B, 0x68, 0x7F, 0x4B, 0x1B, 0x68, 0x7F, 0x4B, 0x1B, 0x68, 0x7F, 0x4B, 0x1B, 0x68, 0x7F, 0x4B, 0x1B, 0x68, 0x7F, 0x4B, 0x1B, 0x68, 0x2B, 0x68, 0x55, 0xF8, 0x48, 0x3C, 0x2A, 0x68, 0xD2, 0x1A, 0x06, 0x2A, 0x08, 0xD8, 0x39, 0x46, 0x48, 0x46, 0xFC, 0xF7, 0xE7, 0xFB, 0xF3, 0x6E, 0x13, 0xF0, 0x80, 0x5F, 0x08, 0xBF, 0x01, 0x24, 0x04, 0x35, 0x01, 0x37, 0x45, 0x45, 0xEB, 0xD1, 0x75, 0x4B, 0x4F, 0xF0, 0xFF, 0x37, 0xDF, 0xF8, 0x4C, 0x92, 0xDF, 0xF8, 0x4C, 0x82, 0x1B, 0x68, 0x72, 0x4B, 0x1B, 0x68, 0x72, 0x4B, 0x1B, 0x68, 0x72, 0x4B, 0x1B, 0x68, 0x72, 0x4B, 0x1B, 0x68, 0x72, 0x4B, 0x1B, 0x68, 0x72, 0x4B, 0x1B, 0x68, 0x72, 0x4B, 0x1B, 0x68, 0x72, 0x4B, 0x1B, 0x68, 0x2B, 0x68, 0x55, 0xF8, 0x48, 0x3C, 0x2A, 0x68, 0xD2, 0x1A, 0x06, 0x2A, 0x08, 0xD8, 0x39, 0x46, 0x48, 0x46, 0xFC, 0xF7, 0xBB, 0xFB, 0xF3, 0x6E, 0x13, 0xF0, 0x80, 0x5F, 0x08, 0xBF, 0x01, 0x24, 0x04, 0x35, 0x01, 0x37, 0x45, 0x45, 0xEB, 0xD1, 0xF3, 0x69, 0xD9, 0x07, 0x58, 0xD4, 0x67, 0x4B, 0x4F, 0xF0, 0xFF, 0x37, 0x66, 0x4D, 0xDF, 0xF8, 0xF4, 0x91, 0x1B, 0x68, 0x65, 0x4B, 0xDF, 0xF8, 0xF0, 0x81, 0x1B, 0x68, 0x64, 0x4B, 0x1B, 0x68, 0x64, 0x4B, 0x1B, 0x68, 0x64, 0x4B, 0x1B, 0x68, 0x64, 0x4B, 0x1B, 0x68, 0x64, 0x4B, 0x1B, 0x68, 0x64, 0x4B, 0x1B, 0x68, 0x64, 0x4B, 0x1B, 0x68, 0x2B, 0x68, 0x55, 0xF8, 0x48, 0x3C, 0x2A, 0x68, 0xD2, 0x1A, 0x06, 0x2A, 0x08, 0xD8, 0x39, 0x46, 0x48, 0x46, 0xFC, 0xF7, 0x8B, 0xFB, 0xF3, 0x6E, 0x13, 0xF0, 0x80, 0x5F, 0x08, 0xBF, 0x01, 0x24, 0x04, 0x35, 0x01, 0x37, 0x45, 0x45, 0xEB, 0xD1, 0x5A, 0x4B, 0x4F, 0xF0, 0xFF, 0x37, 0xDF, 0xF8, 0xA4, 0x91, 0xDF, 0xF8, 0xA4, 0x81, 0x1B, 0x68, 0x57, 0x4B, 0x1B, 0x68, 0x57, 0x4B, 0x1B, 0x68, 0x57, 0x4B, 0x1B, 0x68, 0x57, 0x4B, 0x1B, 0x68, 0x57, 0x4B, 0x1B, 0x68, 0x57, 0x4B, 0x1B, 0x68, 0x57, 0x4B, 0x1B, 0x68, 0x57, 0x4B, 0x1B, 0x68, 0x2B, 0x68, 0x55, 0xF8, 0x48, 0x3C, 0x2A, 0x68, 0xD2, 0x1A, 0x06, 0x2A, 0x08, 0xD8, 0x39, 0x46, 0x48, 0x46, 0xFC, 0xF7, 0x5F, 0xFB, 0xF3, 0x6E, 0x13, 0xF0, 0x80, 0x5F, 0x08, 0xBF, 0x01, 0x24, 0x04, 0x35, 0x01, 0x37, 0x45, 0x45, 0xEB, 0xD1, 0x22, 0x4B, 0x1A, 0x68, 0x22, 0xF0, 0x60, 0x02, 0x1A, 0x60, 0xF2, 0x69, 0xD2, 0x04, 0x32, 0xD5, 0x49, 0x49, 0x0A, 0x68, 0x22, 0xF0, 0x0C, 0x02, 0x42, 0xF0, 0x04, 0x02, 0x0A, 0x60, 0x1A, 0x68, 0x42, 0xF0, 0x10, 0x02, 0x1A, 0x60, 0x1A, 0x68, 0x42, 0xF0, 0x20, 0x02, 0x1A, 0x60, 0x18, 0x4A, 0x13, 0x68, 0x03, 0xF0, 0x03, 0x03, 0x03, 0x2B, 0xFA, 0xD1, 0x13, 0x68, 0x13, 0xF0, 0x0C, 0x0F, 0x03, 0xD0, 0x01, 0x24, 0x13, 0x48, 0xFC, 0xF7, 0x31, 0xFB, 0xF3, 0x69, 0xDB, 0x07, 0x0D, 0xD4, 0x11, 0x4A, 0x13, 0x68, 0x03, 0xF0, 0x03, 0x03, 0x03, 0x2B, 0xFA, 0xD1, 0x13, 0x68, 0x13, 0xF0, 0x0C, 0x0F, 0x03, 0xD0, 0x01, 0x24, 0x0D, 0x48, 0xFC, 0xF7, 0x20, 0xFB, 0x07, 0x4A, 0x13, 0x68, 0x23, 0xF0, 0x60, 0x03, 0x13, 0x60, 0x30, 0x4A, 0x84, 0xF0, 0x01, 0x00, 0x13, 0x68, 0x23, 0xF0, 0x0C, 0x03, 0x13, 0x60, 0xBD, 0xE8, 0xF8, 0x83, 0x34, 0x01, 0x80, 0x04, 0x90, 0x01, 0x80, 0x04, 0xE0, 0x08, 0x80, 0x04, 0x5F, 0x0B, 0x05, 0x00, 0xE0, 0x0A, 0x80, 0x04, 0x84, 0x0B, 0x05, 0x00, 0xF0, 0x08, 0x80, 0x04, 0x38, 0x09, 0x80, 0x04, 0xF4, 0x08, 0x80, 0x04, 0xF8, 0x08, 0x80, 0x04, 0xFC, 0x08, 0x80, 0x04, 0x00, 0x09, 0x80, 0x04, 0x04, 0x09, 0x80, 0x04, 0x08, 0x09, 0x80, 0x04, 0x0C, 0x09, 0x80, 0x04, 0x10, 0x09, 0x80, 0x04, 0x14, 0x09, 0x80, 0x04, 0x18, 0x09, 0x80, 0x04, 0x1C, 0x09, 0x80, 0x04, 0x20, 0x09, 0x80, 0x04, 0x24, 0x09, 0x80, 0x04, 0x28, 0x09, 0x80, 0x04, 0x2C, 0x09, 0x80, 0x04, 0x30, 0x09, 0x80, 0x04, 0x34, 0x09, 0x80, 0x04, 0xF0, 0x0A, 0x80, 0x04, 0x38, 0x0B, 0x80, 0x04, 0xF4, 0x0A, 0x80, 0x04, 0xF8, 0x0A, 0x80, 0x04, 0xFC, 0x0A, 0x80, 0x04, 0x00, 0x0B, 0x80, 0x04, 0x04, 0x0B, 0x80, 0x04, 0x08, 0x0B, 0x80, 0x04, 0x0C, 0x0B, 0x80, 0x04, 0x10, 0x0B, 0x80, 0x04, 0x14, 0x0B, 0x80, 0x04, 0x18, 0x0B, 0x80, 0x04, 0x1C, 0x0B, 0x80, 0x04, 0x20, 0x0B, 0x80, 0x04, 0x24, 0x0B, 0x80, 0x04, 0x28, 0x0B, 0x80, 0x04, 0x2C, 0x0B, 0x80, 0x04, 0x30, 0x0B, 0x80, 0x04, 0x34, 0x0B, 0x80, 0x04, 0x98, 0x01, 0x80, 0x04, 0xAA, 0x0B, 0x05, 0x00, 0x5C, 0x09, 0x80, 0x04, 0xD3, 0x0B, 0x05, 0x00, 0x80, 0x09, 0x80, 0x04, 0xFC, 0x0B, 0x05, 0x00, 0x5C, 0x0B, 0x80, 0x04, 0x25, 0x0C, 0x05, 0x00, 0x80, 0x0B, 0x80, 0x04, 0xC2, 0x6D, 0xF8, 0xB5, 0x04, 0x46, 0xD5, 0x06, 0x40, 0xF1, 0xA2, 0x80, 0x51, 0x4B, 0x02, 0xF0, 0x0F, 0x02, 0x51, 0x48, 0x19, 0x68, 0x41, 0xF0, 0x20, 0x01, 0x19, 0x60, 0x01, 0x68, 0x21, 0xF0, 0x0F, 0x01, 0x0A, 0x43, 0x4D, 0x49, 0x02, 0x60, 0x0A, 0x68, 0xD0, 0x07, 0xFC, 0xD5, 0x1A, 0x68, 0x22, 0xF0, 0x20, 0x02, 0x1A, 0x60, 0x48, 0x4B, 0x19, 0x68, 0xE3, 0x6D, 0x1A, 0x06, 0x02, 0xD5, 0x47, 0x48, 0xFC, 0xF7, 0x85, 0xFA, 0x47, 0x4B, 0x19, 0x68, 0xE3, 0x6D, 0x1B, 0x06, 0x04, 0xD5, 0x01, 0xF0, 0x1F, 0x01, 0x44, 0x48, 0xFC, 0xF7, 0x7B, 0xFA, 0x44, 0x4B, 0x1E, 0x68, 0xE3, 0x6D, 0x06, 0xF0, 0x1F, 0x06, 0x1F, 0x06, 0x03, 0xD5, 0x31, 0x46, 0x41, 0x48, 0xFC, 0xF7, 0x70, 0xFA, 0x40, 0x4B, 0x19, 0x68, 0xE3, 0x6D, 0x1D, 0x06, 0x04, 0xD5, 0x01, 0xF0, 0x1F, 0x01, 0x3E, 0x48, 0xFC, 0xF7, 0x66, 0xFA, 0x3D, 0x4B, 0x1D, 0x68, 0xE3, 0x6D, 0x05, 0xF0, 0x1F, 0x05, 0x18, 0x06, 0x03, 0xD5, 0x29, 0x46, 0x3A, 0x48, 0xFC, 0xF7, 0x5B, 0xFA, 0xE3, 0x6D, 0x99, 0x06, 0x57, 0xD5, 0x31, 0x06, 0x46, 0xEA, 0x06, 0x27, 0x41, 0xEA, 0x06, 0x41, 0x1A, 0x06, 0x41, 0xEA, 0x07, 0x01, 0xE1, 0x60, 0x02, 0xD5, 0x33, 0x48, 0xFC, 0xF7, 0x4B, 0xFA, 0xE3, 0x6D, 0x27, 0x61, 0x1B, 0x06, 0x03, 0xD5, 0x39, 0x46, 0x30, 0x48, 0xFC, 0xF7, 0x43, 0xFA, 0x29, 0x04, 0xE3, 0x6D, 0x41, 0xEA, 0x05, 0x21, 0x1E, 0x06, 0x41, 0xEA, 0x05, 0x01, 0x41, 0xEA, 0x05, 0x61, 0xA1, 0x60, 0x02, 0xD5, 0x2A, 0x48, 0xFC, 0xF7, 0x35, 0xFA, 0xE2, 0x6D, 0x55, 0x06, 0x29, 0xD5, 0xC2, 0xF3, 0x04, 0x23, 0x10, 0x06, 0x4F, 0xEA, 0x03, 0x41, 0x41, 0xEA, 0x03, 0x21, 0x41, 0xEA, 0x03, 0x01, 0x41, 0xEA, 0x03, 0x61, 0xE1, 0x60, 0x02, 0xD5, 0x1F, 0x48, 0xFC, 0xF7, 0x22, 0xFA, 0xE3, 0x6D, 0xC3, 0xF3, 0x04, 0x41, 0x1A, 0x06, 0x41, 0xEA, 0x01, 0x21, 0x21, 0x61, 0x02, 0xD5, 0x1A, 0x48, 0xFC, 0xF7, 0x17, 0xFA, 0xE2, 0x6D, 0xC2, 0xF3, 0x04, 0x63, 0x19, 0x04, 0x41, 0xEA, 0x03, 0x21, 0x19, 0x43, 0x41, 0xEA, 0x03, 0x61, 0x13, 0x06, 0xA1, 0x60, 0x02, 0xD5, 0x14, 0x48, 0xFC, 0xF7, 0x08, 0xFA, 0x20, 0x46, 0xFE, 0xF7, 0x75, 0xFD, 0xC8, 0x20, 0xBD, 0xE8, 0xF8, 0x40, 0xFB, 0xF7, 0xC3, 0xBE, 0xF8, 0xBD, 0x00, 0xBF, 0x50, 0x00, 0x80, 0x04, 0xB4, 0x00, 0x80, 0x04, 0xAC, 0x01, 0x80, 0x04, 0x4E, 0x0C, 0x05, 0x00, 0xB0, 0x01, 0x80, 0x04, 0x67, 0x0C, 0x05, 0x00, 0xB4, 0x01, 0x80, 0x04, 0x80, 0x0C, 0x05, 0x00, 0xB8, 0x01, 0x80, 0x04, 0x97, 0x0C, 0x05, 0x00, 0xBC, 0x01, 0x80, 0x04, 0xB0, 0x0C, 0x05, 0x00, 0xC7, 0x0C, 0x05, 0x00, 0xDF, 0x0C, 0x05, 0x00, 0xF7, 0x0C, 0x05, 0x00, 0x03, 0x4A, 0x13, 0x68, 0x23, 0xF0, 0x01, 0x03, 0x18, 0x43, 0x10, 0x60, 0x70, 0x47, 0x00, 0xBF, 0x60, 0xB0, 0x7F, 0x04, 0x10, 0xB5, 0x00, 0x23, 0x0D, 0x4C, 0x01, 0x46, 0x18, 0x46, 0x23, 0x60, 0xFF, 0xF7, 0xEE, 0xFF, 0x0B, 0x4A, 0x13, 0x68, 0x43, 0xF0, 0x00, 0x43, 0x13, 0x60, 0x4F, 0xF0, 0xFF, 0x32, 0x09, 0x4B, 0x1A, 0x60, 0x40, 0xF2, 0xFF, 0x72, 0x5A, 0x60, 0x4F, 0xF6, 0xFF, 0x72, 0x9A, 0x60, 0x01, 0x23, 0x05, 0x4A, 0x23, 0x60, 0x13, 0x68, 0xDB, 0x07, 0xFC, 0xD5, 0x10, 0xBD, 0x20, 0xB3, 0x7F, 0x04, 0x14, 0xA0, 0x7F, 0x04, 0x20, 0xA0, 0x7F, 0x04, 0x24, 0xB3, 0x7F, 0x04, 0x01, 0x46, 0x08, 0xB5, 0x01, 0x20, 0xFF, 0xF7, 0xCB, 0xFF, 0x08, 0x4A, 0x00, 0x23, 0x08, 0x48, 0x13, 0x60, 0x01, 0x68, 0x21, 0xF0, 0x01, 0x01, 0x01, 0x60, 0x06, 0x49, 0x0B, 0x60, 0x4B, 0x60, 0x8B, 0x60, 0x13, 0x68, 0x43, 0xF0, 0x20, 0x03, 0x13, 0x60, 0x08, 0xBD, 0x30, 0xB0, 0x7F, 0x04, 0xB0, 0xB1, 0x7F, 0x04, 0x20, 0xA0, 0x7F, 0x04, 0x83, 0x6F, 0x9B, 0x00, 0x41, 0xBF, 0x03, 0x4A, 0x13, 0x68, 0x43, 0xF0, 0x04, 0x03, 0x13, 0x60, 0x70, 0x47, 0x00, 0xBF, 0xC0, 0xB1, 0x7F, 0x04, 0x0E, 0x4A, 0x13, 0x68, 0x43, 0xF0, 0x40, 0x43, 0x13, 0x60, 0x52, 0xF8, 0x20, 0x3C, 0x43, 0xF0, 0x40, 0x43, 0x42, 0xF8, 0x20, 0x3C, 0x02, 0xF5, 0xFF, 0x52, 0x13, 0x68, 0x43, 0xF0, 0x40, 0x43, 0x13, 0x60, 0x02, 0xF5, 0x80, 0x52, 0x13, 0x68, 0x43, 0xF0, 0x40, 0x43, 0x13, 0x60, 0x02, 0xF5, 0x80, 0x52, 0x13, 0x68, 0x43, 0xF0, 0x40, 0x43, 0x13, 0x60, 0x70, 0x47, 0xA0, 0xB1, 0x7F, 0x04, 0x2D, 0xE9, 0xF0, 0x4F, 0x04, 0x23, 0xA1, 0xB0, 0x08, 0x27, 0x0E, 0x22, 0x4F, 0xF0, 0x06, 0x09, 0x09, 0x93, 0x4F, 0xF0, 0x03, 0x08, 0xCD, 0xE9, 0x1B, 0x33, 0x08, 0x23, 0x19, 0x93, 0x05, 0x21, 0x1D, 0x93, 0x01, 0x23, 0x0B, 0x93, 0x02, 0x23, 0x18, 0x93, 0x1B, 0x23, 0xCD, 0xE9, 0x16, 0x37, 0x0C, 0x23, 0x15, 0x93, 0x80, 0x23, 0x11, 0x93, 0x62, 0x23, 0x0A, 0x93, 0x0A, 0x23, 0x07, 0x93, 0x10, 0x23, 0xCD, 0xE9, 0x0F, 0x32, 0x14, 0x23, 0x0E, 0x93, 0x02, 0x23, 0x02, 0x93, 0x47, 0x46, 0x0D, 0x93, 0x42, 0x46, 0xCD, 0xE9, 0x13, 0x39, 0x00, 0x23, 0x0C, 0x93, 0x43, 0x46, 0x4F, 0xF0, 0x04, 0x0A, 0x05, 0x46, 0x01, 0x20, 0xCD, 0xF8, 0x20, 0xA0, 0xCD, 0xF8, 0x48, 0xA0, 0xCD, 0xF8, 0x0C, 0x80, 0xCD, 0xF8, 0x18, 0x90, 0xCD, 0xF8, 0x04, 0x80, 0xCD, 0xE9, 0x04, 0x00, 0x48, 0x1E, 0x1A, 0x90, 0x02, 0xD1, 0x21, 0xB0, 0xBD, 0xE8, 0xF0, 0x8F, 0x02, 0x29, 0x28, 0x68, 0x14, 0xBF, 0x1A, 0x99, 0x00, 0x26, 0xCD, 0xE9, 0x1E, 0x23, 0x4F, 0xEA, 0x50, 0x00, 0x18, 0xBF, 0x0E, 0x03, 0x1A, 0x99, 0xFB, 0xF7, 0x1D, 0xFB, 0xA9, 0x6F, 0x04, 0x46, 0xD5, 0xF8, 0x04, 0xB0, 0xDD, 0xE9, 0x1E, 0x23, 0x11, 0xF0, 0x02, 0x0F, 0x24, 0xD0, 0xA9, 0x6D, 0xC1, 0xF3, 0x42, 0x50, 0x0D, 0x90, 0xC1, 0xF3, 0xC5, 0x30, 0x0F, 0x90, 0xC1, 0xF3, 0xC3, 0x20, 0x01, 0x90, 0xC1, 0xF3, 0x84, 0x10, 0x01, 0xF0, 0x3F, 0x01, 0x06, 0x90, 0x0E, 0x91, 0xE9, 0x6D, 0xC1, 0xF3, 0xC4, 0x50, 0xC1, 0xF3, 0xC4, 0x37, 0x07, 0x90, 0xC1, 0xF3, 0x84, 0x19, 0xC1, 0xF3, 0x02, 0x50, 0x01, 0xF0, 0x3F, 0x01, 0x10, 0x91, 0x29, 0x6E, 0x03, 0x90, 0xC1, 0xF3, 0x08, 0x30, 0xC1, 0xF3, 0x0B, 0x01, 0x11, 0x90, 0x0A, 0x91, 0xBB, 0xF1, 0x03, 0x0F, 0x47, 0xD1, 0x21, 0x46, 0x32, 0x20, 0xCD, 0xE9, 0x1E, 0x23, 0xFE, 0xF7, 0x0C, 0xF9, 0xC3, 0xB2, 0x21, 0x46, 0x0A, 0x20, 0x0F, 0x93, 0xFE, 0xF7, 0x06, 0xF9, 0xC0, 0xB2, 0x21, 0x46, 0x02, 0x28, 0x38, 0xBF, 0x02, 0x20, 0x01, 0x90, 0x0F, 0x20, 0xFE, 0xF7, 0xFD, 0xF8, 0xC3, 0xB2, 0x21, 0x46, 0x35, 0x20, 0x06, 0x93, 0xFE, 0xF7, 0xF7, 0xF8, 0xC3, 0xB2, 0x21, 0x46, 0x08, 0x20, 0x0E, 0x93, 0xFE, 0xF7, 0xF1, 0xF8, 0xC7, 0xB2, 0x21, 0x46, 0x26, 0x20, 0x02, 0x2F, 0x38, 0xBF, 0x02, 0x27, 0xFE, 0xF7, 0xE9, 0xF8, 0xC3, 0xB2, 0x21, 0x46, 0x41, 0xF6, 0x78, 0x60, 0x10, 0x93, 0xFE, 0xF7, 0xE2, 0xF8, 0x21, 0x46, 0xC0, 0xF3, 0x4F, 0x13, 0x4F, 0xF4, 0xAF, 0x70, 0x0A, 0x93, 0xFE, 0xF7, 0xDA, 0xF8, 0x83, 0xB2, 0x21, 0x46, 0x4F, 0xF4, 0xB4, 0x70, 0x11, 0x93, 0xFE, 0xF7, 0xD3, 0xF8, 0xDD, 0xF8, 0x18, 0x90, 0xC0, 0xF3, 0x47, 0x13, 0x1C, 0x93, 0x07, 0x97, 0x03, 0x97, 0x02, 0x23, 0x5E, 0xE0, 0xBB, 0xF1, 0x04, 0x0F, 0x6B, 0xD1, 0x21, 0x46, 0x23, 0x20, 0xCD, 0xE9, 0x1E, 0x23, 0xFE, 0xF7, 0xC1, 0xF8, 0xC3, 0xB2, 0x21, 0x46, 0x08, 0x20, 0x0F, 0x93, 0xFE, 0xF7, 0xBB, 0xF8, 0xC0, 0xB2, 0x21, 0x46, 0x02, 0x28, 0x38, 0xBF, 0x02, 0x20, 0x01, 0x90, 0x06, 0x20, 0xFE, 0xF7, 0xB2, 0xF8, 0xC0, 0xB2, 0x21, 0x46, 0x02, 0x28, 0x38, 0xBF, 0x02, 0x20, 0x07, 0x90, 0x0A, 0x20, 0xFE, 0xF7, 0xA9, 0xF8, 0xC0, 0xB2, 0x21, 0x46, 0x08, 0x28, 0x38, 0xBF, 0x08, 0x20, 0x19, 0x90, 0x0F, 0x20, 0xFE, 0xF7, 0xA0, 0xF8, 0xC3, 0xB2, 0x21, 0x46, 0x31, 0x20, 0x06, 0x93, 0xFE, 0xF7, 0x9A, 0xF8, 0xC3, 0xB2, 0x21, 0x46, 0x03, 0x20, 0x0E, 0x93, 0xFE, 0xF7, 0x94, 0xF8, 0xC3, 0xB2, 0x21, 0x46, 0x22, 0x20, 0x00, 0x2B, 0x08, 0xBF, 0x01, 0x23, 0x0B, 0x93, 0xFE, 0xF7, 0x8B, 0xF8, 0xC3, 0xB2, 0x21, 0x46, 0x41, 0xF6, 0x78, 0x60, 0x10, 0x93, 0xFE, 0xF7, 0x84, 0xF8, 0x21, 0x46, 0xC0, 0xF3, 0x4F, 0x13, 0x4F, 0xF4, 0xAF, 0x70, 0x0A, 0x93, 0xFE, 0xF7, 0x7C, 0xF8, 0x83, 0xB2, 0x21, 0x46, 0x4F, 0xF4, 0xB4, 0x70, 0x11, 0x93, 0xFE, 0xF7, 0x75, 0xF8, 0xC0, 0xF3, 0x47, 0x13, 0xDD, 0xF8, 0x18, 0x90, 0x1C, 0x93, 0x07, 0x9B, 0x18, 0x93, 0x01, 0x9B, 0x03, 0x93, 0x03, 0x23, 0x0D, 0x93, 0xDD, 0xE9, 0x1E, 0x23, 0xAB, 0xF1, 0x03, 0x01, 0x05, 0x29, 0x00, 0xF2, 0x60, 0x81, 0xDF, 0xE8, 0x11, 0xF0, 0x0B, 0x01, 0xB4, 0x00, 0x5E, 0x01, 0x5E, 0x01, 0xED, 0x01, 0x70, 0x02, 0xBB, 0xF1, 0x07, 0x0F, 0x4D, 0xD1, 0x21, 0x46, 0x32, 0x20, 0xCD, 0xE9, 0x1E, 0x23, 0xFE, 0xF7, 0x52, 0xF8, 0xC0, 0xB2, 0x21, 0x46, 0x04, 0x28, 0x38, 0xBF, 0x04, 0x20, 0x0F, 0x90, 0x0A, 0x20, 0xFE, 0xF7, 0x49, 0xF8, 0xC3, 0xB2, 0x21, 0x46, 0x18, 0x20, 0x00, 0x2B, 0x08, 0xBF, 0x01, 0x23, 0x01, 0x93, 0xFE, 0xF7, 0x40, 0xF8, 0xC0, 0xB2, 0x21, 0x46, 0x02, 0x28, 0x38, 0xBF, 0x02, 0x20, 0x06, 0x90, 0x46, 0x20, 0xFE, 0xF7, 0x37, 0xF8, 0xC3, 0xB2, 0x21, 0x46, 0x08, 0x20, 0x0E, 0x93, 0xFE, 0xF7, 0x31, 0xF8, 0xC7, 0xB2, 0x21, 0x46, 0x1B, 0x20, 0x02, 0x2F, 0x38, 0xBF, 0x02, 0x27, 0xFE, 0xF7, 0x29, 0xF8, 0x21, 0x46, 0x5F, 0xFA, 0x80, 0xF9, 0x2A, 0x20, 0xFE, 0xF7, 0x23, 0xF8, 0xC3, 0xB2, 0x21, 0x46, 0x40, 0xF6, 0x3C, 0x70, 0x10, 0x93, 0xFE, 0xF7, 0x1C, 0xF8, 0x21, 0x46, 0xC0, 0xF3, 0x4F, 0x13, 0xD2, 0x20, 0x0A, 0x93, 0xFE, 0xF7, 0x15, 0xF8, 0x83, 0xB2, 0x21, 0x46, 0xDC, 0x20, 0x11, 0x93, 0xFE, 0xF7, 0x0F, 0xF8, 0xC3, 0xB2, 0x07, 0x97, 0x03, 0x97, 0x1B, 0x93, 0x3D, 0xE7, 0xBB, 0xF1, 0x08, 0x0F, 0x9E, 0xD1, 0x21, 0x46, 0x28, 0x20, 0xCD, 0xE9, 0x1E, 0x23, 0xFE, 0xF7, 0x01, 0xF8, 0xC3, 0xB2, 0x21, 0x46, 0x0A, 0x20, 0x0F, 0x93, 0xFD, 0xF7, 0xFB, 0xFF, 0x5F, 0xFA, 0x80, 0xF9, 0x21, 0x46, 0x12, 0x20, 0x4B, 0x46, 0x02, 0x2B, 0x38, 0xBF, 0x02, 0x23, 0x01, 0x93, 0xFD, 0xF7, 0xF0, 0xFF, 0xC0, 0xB2, 0x21, 0x46, 0x02, 0x28, 0x38, 0xBF, 0x02, 0x20, 0x06, 0x90, 0x41, 0x20, 0xFD, 0xF7, 0xE7, 0xFF, 0xC3, 0xB2, 0x21, 0x46, 0x58, 0x46, 0x0E, 0x93, 0xFD, 0xF7, 0xE1, 0xFF, 0xC7, 0xB2, 0x21, 0x46, 0x15, 0x20, 0x02, 0x2F, 0x3B, 0x46, 0x38, 0xBF, 0x02, 0x23, 0x07, 0x93, 0x4B, 0x46, 0x04, 0x2B, 0x38, 0xBF, 0x04, 0x23, 0x04, 0x2F, 0x38, 0xBF, 0x04, 0x27, 0x03, 0x93, 0xFD, 0xF7, 0xCF, 0xFF, 0x21, 0x46, 0x5F, 0xFA, 0x80, 0xF9, 0x2A, 0x20, 0xFD, 0xF7, 0xC9, 0xFF, 0xC3, 0xB2, 0x21, 0x46, 0x4F, 0xF4, 0x74, 0x60, 0x10, 0x93, 0xFD, 0xF7, 0xC2, 0xFF, 0x21, 0x46, 0xC0, 0xF3, 0x4F, 0x13, 0x4F, 0xF4, 0x8C, 0x70, 0x0A, 0x93, 0xFD, 0xF7, 0xBA, 0xFF, 0x83, 0xB2, 0x21, 0x46, 0xBE, 0x20, 0x11, 0x93, 0xFD, 0xF7, 0xB4, 0xFF, 0xC3, 0xB2, 0x1B, 0x93, 0x04, 0x23, 0x0D, 0x93, 0xDD, 0xE9, 0x1E, 0x23, 0x44, 0xE7, 0x21, 0x46, 0x0F, 0x20, 0xFD, 0xF7, 0xA9, 0xFF, 0xC0, 0xB2, 0x21, 0x46, 0x0C, 0x28, 0x38, 0xBF, 0x0C, 0x20, 0x14, 0x90, 0x05, 0x20, 0xFD, 0xF7, 0xA0, 0xFF, 0xC0, 0xB2, 0x21, 0x46, 0x02, 0x28, 0x38, 0xBF, 0x02, 0x20, 0x02, 0x90, 0x0A, 0x20, 0xFD, 0xF7, 0x97, 0xFF, 0xC0, 0xB2, 0x02, 0x9B, 0x21, 0x46, 0x03, 0x28, 0x38, 0xBF, 0x03, 0x20, 0x03, 0xF1, 0x01, 0x08, 0x08, 0x90, 0xAA, 0x20, 0xFD, 0xF7, 0x8B, 0xFF, 0x21, 0x46, 0xC0, 0xF3, 0x47, 0x13, 0xB6, 0x48, 0x5F, 0xFA, 0x88, 0xF8, 0x09, 0x93, 0xFD, 0xF7, 0x82, 0xFF, 0xC0, 0xF3, 0x87, 0x23, 0xB9, 0xF1, 0x04, 0x0F, 0x16, 0x93, 0x4F, 0xF4, 0xA4, 0x63, 0x2B, 0x62, 0x4F, 0xF0, 0x08, 0x03, 0xAB, 0x62, 0x98, 0xBF, 0xC9, 0xF1, 0x09, 0x07, 0x03, 0x9B, 0x4F, 0xF0, 0x06, 0x01, 0xDD, 0xF8, 0x20, 0xA0, 0x98, 0xBF, 0xFF, 0xB2, 0x05, 0x91, 0x88, 0xBF, 0x04, 0x27, 0x07, 0x33, 0x07, 0x22, 0xDB, 0xB2, 0x0A, 0x21, 0x17, 0x93, 0x0B, 0x9B, 0x07, 0x33, 0xDB, 0xB2, 0x1D, 0x93, 0x05, 0x23, 0x12, 0x93, 0x0E, 0x23, 0x15, 0x93, 0x04, 0x23, 0x13, 0x93, 0x00, 0x23, 0x0C, 0x93, 0x05, 0x23, 0x04, 0x91, 0x52, 0xE0, 0x21, 0x46, 0x08, 0x20, 0xFD, 0xF7, 0x52, 0xFF, 0x21, 0x46, 0x80, 0x46, 0x0A, 0x20, 0xFD, 0xF7, 0x4D, 0xFF, 0xC3, 0xB2, 0x02, 0x2B, 0x08, 0x93, 0x40, 0xF2, 0xC5, 0x80, 0x5F, 0xFA, 0x88, 0xF0, 0x02, 0x28, 0x38, 0xBF, 0x02, 0x20, 0x02, 0x90, 0x02, 0x9B, 0x0F, 0x21, 0x20, 0x46, 0x03, 0xF1, 0x01, 0x08, 0xFB, 0xF7, 0x51, 0xFA, 0xC3, 0xB2, 0x5F, 0xFA, 0x88, 0xF8, 0x16, 0x93, 0x2B, 0x6E, 0x13, 0xF4, 0x80, 0x73, 0x00, 0xF0, 0xB2, 0x80, 0x41, 0xF6, 0x50, 0x33, 0x4F, 0xF0, 0x10, 0x0E, 0x2B, 0x62, 0x05, 0x22, 0x00, 0x23, 0x06, 0x21, 0xC5, 0xE9, 0x0A, 0xE3, 0x04, 0x23, 0x05, 0x93, 0x07, 0xEB, 0x09, 0x00, 0x04, 0x91, 0x51, 0x1C, 0xDD, 0xF8, 0x20, 0xA0, 0x81, 0x42, 0x02, 0xEB, 0x03, 0x01, 0x01, 0xF1, 0x02, 0x01, 0x02, 0xF1, 0x03, 0x00, 0x15, 0x91, 0xA8, 0xBF, 0xC9, 0xF1, 0x02, 0x07, 0x03, 0x99, 0xA0, 0xEB, 0x03, 0x00, 0xA4, 0xBF, 0xBF, 0x18, 0xFF, 0xB2, 0x02, 0x31, 0x19, 0x44, 0xC9, 0xB2, 0x17, 0x91, 0xC1, 0xB2, 0x0C, 0x20, 0x12, 0x91, 0x04, 0x21, 0xCD, 0xE9, 0x13, 0x10, 0x00, 0x21, 0x0C, 0x91, 0xDD, 0xE9, 0x0F, 0x01, 0x41, 0xEA, 0x00, 0x41, 0x15, 0x98, 0x41, 0xEA, 0x00, 0x61, 0x16, 0x98, 0x41, 0xEA, 0x00, 0x21, 0x70, 0x48, 0x31, 0x50, 0x07, 0x98, 0x0E, 0x99, 0x41, 0xEA, 0x00, 0x41, 0x6E, 0x48, 0x41, 0xEA, 0x07, 0x21, 0x31, 0x50, 0x11, 0x04, 0x17, 0x98, 0x41, 0xEA, 0x03, 0x61, 0x01, 0x43, 0x12, 0x98, 0x41, 0xEA, 0x00, 0x21, 0x69, 0x48, 0x31, 0x50, 0x13, 0x99, 0x0C, 0x98, 0x09, 0x03, 0x41, 0xEA, 0x00, 0x51, 0x14, 0x98, 0x01, 0x43, 0x65, 0x48, 0x31, 0x50, 0x0D, 0x99, 0x06, 0x98, 0x09, 0x04, 0x41, 0xEA, 0x00, 0x61, 0x01, 0x98, 0x41, 0xEA, 0x09, 0x01, 0x41, 0xEA, 0x00, 0x21, 0x60, 0x48, 0x31, 0x50, 0x4F, 0xEA, 0x0A, 0x41, 0x08, 0x98, 0x41, 0xEA, 0x00, 0x61, 0x02, 0x98, 0x01, 0x43, 0x5D, 0x48, 0x41, 0xEA, 0x08, 0x21, 0x31, 0x50, 0x04, 0x30, 0x07, 0x99, 0x02, 0x31, 0x41, 0xF0, 0x00, 0x71, 0x41, 0xF4, 0x00, 0x31, 0x31, 0x50, 0x09, 0x98, 0x1C, 0x99, 0x41, 0xF4, 0x80, 0x51, 0x41, 0xEA, 0x00, 0x61, 0x41, 0xEA, 0x00, 0x41, 0x54, 0x48, 0x31, 0x50, 0x18, 0x98, 0x1D, 0x99, 0x41, 0xEA, 0x00, 0x21, 0x52, 0x48, 0x41, 0xF4, 0x00, 0x31, 0x31, 0x50, 0x51, 0x49, 0x51, 0x48, 0x70, 0x50, 0x04, 0x31, 0x51, 0x48, 0x70, 0x50, 0x04, 0x31, 0x19, 0x98, 0x70, 0x50, 0x04, 0x31, 0x4F, 0x48, 0x70, 0x50, 0x04, 0x31, 0x1B, 0x98, 0x70, 0x50, 0x68, 0x39, 0x4D, 0x48, 0x09, 0x68, 0x00, 0x68, 0x21, 0xF0, 0x40, 0x41, 0x00, 0x0C, 0x4B, 0x48, 0x18, 0xBF, 0x41, 0xF0, 0x80, 0x41, 0xBB, 0xF1, 0x07, 0x0F, 0x40, 0xF0, 0xEC, 0x80, 0x21, 0xF0, 0x7F, 0x71, 0x21, 0xF4, 0x40, 0x31, 0x41, 0xF4, 0x9E, 0x01, 0x01, 0x40, 0x41, 0xF4, 0x89, 0x71, 0xE8, 0xE0, 0x06, 0x23, 0x02, 0x93, 0x3D, 0xE7, 0x41, 0xF6, 0x14, 0x72, 0x06, 0x21, 0x2A, 0x62, 0x20, 0x22, 0xC5, 0xE9, 0x0A, 0x23, 0x05, 0x23, 0x05, 0x91, 0x07, 0x22, 0x0A, 0x21, 0x4D, 0xE7, 0x64, 0x00, 0xB4, 0xF5, 0x05, 0x7F, 0x2C, 0xD8, 0xC3, 0x23, 0x6B, 0x62, 0x06, 0x23, 0xAB, 0x62, 0x2B, 0x6E, 0xDB, 0x05, 0x6C, 0xD5, 0x1A, 0x23, 0x04, 0x21, 0x4F, 0xF0, 0x43, 0x08, 0x05, 0x91, 0xC5, 0xE9, 0x09, 0x83, 0x06, 0x22, 0x03, 0x23, 0x0A, 0x21, 0x04, 0x91, 0x00, 0x21, 0x29, 0x62, 0xD1, 0x18, 0x05, 0x31, 0x4F, 0xF0, 0x05, 0x0A, 0x15, 0x91, 0xD0, 0x46, 0x03, 0x99, 0xCD, 0xF8, 0x20, 0xA0, 0xCD, 0xF8, 0x30, 0xA0, 0x05, 0x31, 0x19, 0x44, 0xC9, 0xB2, 0x17, 0x91, 0x0D, 0x21, 0x12, 0x91, 0x18, 0x21, 0x16, 0x91, 0x03, 0x21, 0x02, 0x91, 0x0C, 0x21, 0xCD, 0xE9, 0x13, 0xA1, 0x3F, 0xE7, 0xB4, 0xF5, 0x16, 0x7F, 0x03, 0xD2, 0x03, 0x23, 0x6B, 0x62, 0x17, 0x23, 0xCE, 0xE7, 0x40, 0xF2, 0x9A, 0x23, 0x9C, 0x42, 0x03, 0xD8, 0x23, 0x23, 0x6B, 0x62, 0x18, 0x23, 0xC6, 0xE7, 0xB4, 0xF5, 0x37, 0x7F, 0x03, 0xD8, 0x23, 0x23, 0x6B, 0x62, 0x19, 0x23, 0xBF, 0xE7, 0xB4, 0xF5, 0x48, 0x7F, 0x03, 0xD2, 0x43, 0x23, 0x6B, 0x62, 0x1A, 0x23, 0xB8, 0xE7, 0xB4, 0xF5, 0x69, 0x7F, 0x97, 0xBF, 0x83, 0x23, 0xC3, 0x23, 0x6B, 0x62, 0x1C, 0x23, 0x84, 0xBF, 0x6B, 0x62, 0x1E, 0x23, 0xAD, 0xE7, 0x00, 0xBF, 0x38, 0x12, 0x01, 0x00, 0x00, 0xB1, 0x7F, 0x04, 0x04, 0xB1, 0x7F, 0x04, 0x08, 0xB1, 0x7F, 0x04, 0x0C, 0xB1, 0x7F, 0x04, 0x10, 0xB1, 0x7F, 0x04, 0x14, 0xB1, 0x7F, 0x04, 0x20, 0xB1, 0x7F, 0x04, 0x24, 0xB1, 0x7F, 0x04, 0x28, 0xB1, 0x7F, 0x04, 0x05, 0x0C, 0x0E, 0x00, 0x1C, 0x02, 0x0C, 0x44, 0x02, 0x00, 0x10, 0x0A, 0xF8, 0x01, 0x00, 0x07, 0x00, 0xF0, 0xFF, 0xFF, 0x1C, 0x23, 0x06, 0x21, 0x4F, 0xF0, 0x83, 0x0E, 0x05, 0x91, 0xC5, 0xE9, 0x09, 0xE3, 0x07, 0x22, 0x04, 0x23, 0x0C, 0x21, 0x91, 0xE7, 0x21, 0x46, 0x0E, 0x20, 0xFD, 0xF7, 0xED, 0xFD, 0xC0, 0xB2, 0x21, 0x46, 0x05, 0x28, 0x38, 0xBF, 0x05, 0x20, 0x0C, 0x90, 0x0F, 0x20, 0xFD, 0xF7, 0xE4, 0xFD, 0xC0, 0xB2, 0x21, 0x46, 0x02, 0x28, 0x38, 0xBF, 0x02, 0x20, 0x02, 0x90, 0x02, 0x20, 0xFD, 0xF7, 0xDB, 0xFD, 0xC0, 0xB2, 0x21, 0x46, 0x02, 0x28, 0x38, 0xBF, 0x02, 0x20, 0x08, 0x90, 0x05, 0x20, 0xFD, 0xF7, 0xD2, 0xFD, 0x0A, 0x9B, 0x5F, 0xFA, 0x80, 0xFA, 0x21, 0x46, 0xBA, 0xF1, 0x02, 0x0F, 0x4F, 0xF0, 0x04, 0x00, 0x38, 0xBF, 0x4F, 0xF0, 0x02, 0x0A, 0x03, 0xEB, 0xC3, 0x03, 0xC3, 0xF3, 0x47, 0x13, 0x16, 0x93, 0xFD, 0xF7, 0xC0, 0xFD, 0x07, 0x46, 0x21, 0x46, 0x01, 0x20, 0x11, 0x37, 0xFD, 0xF7, 0xBA, 0xFD, 0x34, 0x22, 0x1B, 0x23, 0x3F, 0x1A, 0xC5, 0xE9, 0x09, 0x23, 0xFB, 0xB2, 0xDD, 0xF8, 0x08, 0x80, 0x04, 0x27, 0x12, 0x93, 0x0A, 0x22, 0x03, 0x9B, 0x11, 0x21, 0x0E, 0x33, 0xDB, 0xB2, 0x17, 0x93, 0x0C, 0x9B, 0x13, 0x93, 0x18, 0x23, 0x15, 0x93, 0x0C, 0x23, 0x14, 0x93, 0x05, 0x23, 0x05, 0x93, 0x48, 0xE6, 0xBB, 0xF1, 0x08, 0x0F, 0x7F, 0xF4, 0x16, 0xAF, 0x01, 0x40, 0x41, 0xF4, 0x7C, 0x71, 0x3E, 0x48, 0x01, 0x60, 0x68, 0x68, 0x3E, 0x49, 0x08, 0x28, 0x01, 0xD0, 0x04, 0x28, 0x47, 0xD1, 0x4F, 0xF0, 0xF9, 0x70, 0x08, 0x60, 0x3B, 0x48, 0xDF, 0xF8, 0x14, 0xE1, 0x3A, 0x4C, 0x01, 0x68, 0x21, 0xF4, 0x7F, 0x41, 0x21, 0xF0, 0x0F, 0x01, 0x41, 0xF4, 0x50, 0x61, 0x41, 0xF0, 0x05, 0x01, 0x01, 0x60, 0x00, 0x20, 0x35, 0x49, 0x08, 0x60, 0xAB, 0xF1, 0x06, 0x01, 0x02, 0x29, 0x69, 0x6A, 0x31, 0xD8, 0xA8, 0x6A, 0xBB, 0xF1, 0x08, 0x0F, 0x40, 0xEA, 0x01, 0x41, 0x46, 0xF8, 0x0E, 0x10, 0xE9, 0x6A, 0x4F, 0xEA, 0x01, 0x41, 0x31, 0x51, 0x3C, 0xD0, 0x2D, 0x48, 0x31, 0x58, 0x21, 0xF4, 0x7F, 0x61, 0x41, 0xF4, 0xCC, 0x61, 0x31, 0x50, 0xA9, 0x6F, 0x11, 0xF0, 0x20, 0x0F, 0x29, 0x49, 0x3D, 0xD1, 0x05, 0x9C, 0x04, 0x98, 0x01, 0x3C, 0x01, 0x38, 0x44, 0xF0, 0x00, 0x74, 0x44, 0xEA, 0x00, 0x40, 0x01, 0x43, 0x24, 0x48, 0x31, 0x50, 0x24, 0x49, 0x25, 0x48, 0x70, 0x50, 0x0A, 0x98, 0x11, 0x99, 0x41, 0xEA, 0x00, 0x41, 0x23, 0x48, 0x31, 0x50, 0x1A, 0x99, 0xFF, 0xF7, 0xF3, 0xBB, 0x4F, 0xF4, 0x84, 0x00, 0xB6, 0xE7, 0x28, 0x6A, 0xBB, 0xF1, 0x04, 0x0F, 0x41, 0xEA, 0x00, 0x40, 0x46, 0xF8, 0x0E, 0x00, 0xD5, 0xE9, 0x0A, 0x01, 0x41, 0xEA, 0x00, 0x41, 0x31, 0x51, 0xCC, 0xD1, 0xD5, 0xE9, 0x0C, 0x01, 0x41, 0xEA, 0x00, 0x41, 0x17, 0x48, 0x31, 0x50, 0x17, 0x49, 0xA8, 0x6B, 0x70, 0x50, 0xC2, 0xE7, 0xD5, 0xE9, 0x0F, 0x01, 0x41, 0xEA, 0x00, 0x41, 0x12, 0x48, 0x31, 0x50, 0x68, 0x6D, 0xA9, 0x6C, 0x41, 0xEA, 0x00, 0x41, 0x10, 0x48, 0x31, 0x50, 0xB5, 0xE7, 0x05, 0x98, 0x04, 0x9C, 0x40, 0xF0, 0x00, 0x70, 0x40, 0xEA, 0x04, 0x40, 0xC2, 0xE7, 0xD0, 0xB0, 0x7F, 0x04, 0xD4, 0xB0, 0x7F, 0x04, 0xD8, 0xB0, 0x7F, 0x04, 0xE0, 0xB0, 0x7F, 0x04, 0xB0, 0xB1, 0x7F, 0x04, 0xF4, 0xB0, 0x7F, 0x04, 0x00, 0x80, 0x80, 0x00, 0x90, 0xB1, 0x7F, 0x04, 0x94, 0xB1, 0x7F, 0x04, 0x02, 0x02, 0x10, 0x00, 0x64, 0xB0, 0x7F, 0x04, 0xE8, 0xB0, 0x7F, 0x04, 0xEC, 0xB0, 0x7F, 0x04, 0xDC, 0xB0, 0x7F, 0x04, 0x6E, 0x4B, 0x4F, 0xF0, 0x00, 0x42, 0x2D, 0xE9, 0xF0, 0x47, 0x6D, 0x4F, 0x1A, 0x60, 0x83, 0x69, 0x08, 0x37, 0xC2, 0x69, 0x03, 0xF0, 0x0F, 0x04, 0xC3, 0xF3, 0x07, 0x16, 0xC3, 0xF3, 0x01, 0x31, 0xC3, 0xF3, 0x81, 0x33, 0x15, 0x07, 0x4F, 0xEA, 0x03, 0x49, 0x4F, 0xEA, 0x03, 0x25, 0x4F, 0xEA, 0x03, 0x62, 0x18, 0xBF, 0x04, 0xF1, 0xFF, 0x34, 0x45, 0xEA, 0x09, 0x0E, 0x4E, 0xEA, 0x02, 0x0C, 0xA4, 0xF1, 0x08, 0x08, 0x47, 0xF8, 0x08, 0xCC, 0xDF, 0xF8, 0x8C, 0xC1, 0xB8, 0xF1, 0x03, 0x0F, 0x53, 0xD8, 0xDF, 0xE8, 0x08, 0xF0, 0x02, 0x3D, 0x44, 0x4A, 0x43, 0xF0, 0xF8, 0x5E, 0x4E, 0xF4, 0xF8, 0x1E, 0x4E, 0xEA, 0x05, 0x05, 0xCC, 0xF8, 0x00, 0x50, 0x41, 0xF6, 0x1F, 0x72, 0x3A, 0x60, 0x02, 0x2B, 0x4A, 0xD0, 0x43, 0xF6, 0x3F, 0x72, 0x43, 0xF6, 0x01, 0x75, 0x01, 0x2B, 0x08, 0xBF, 0x2A, 0x46, 0x50, 0x4D, 0x03, 0x29, 0x50, 0x4F, 0x2A, 0x60, 0xA3, 0xF1, 0x02, 0x02, 0x22, 0x44, 0x0B, 0x44, 0x4F, 0xEA, 0x02, 0x25, 0x18, 0xBF, 0x42, 0xF4, 0x7C, 0x12, 0x23, 0x44, 0x4B, 0x49, 0x08, 0xBF, 0x45, 0xEA, 0x02, 0x45, 0x2A, 0x43, 0x04, 0x31, 0x3A, 0x60, 0x9A, 0x1F, 0x42, 0xEA, 0x02, 0x2C, 0xA6, 0xF1, 0x0E, 0x07, 0x46, 0x4D, 0x4C, 0xEA, 0x02, 0x48, 0x48, 0xEA, 0x02, 0x6E, 0x41, 0xF8, 0x04, 0xEC, 0x03, 0x2F, 0x6F, 0xD8, 0xDF, 0xE8, 0x07, 0xF0, 0x22, 0x3A, 0x54, 0x69, 0x43, 0xF0, 0xF8, 0x5E, 0x4E, 0xEA, 0x05, 0x05, 0x45, 0xEA, 0x09, 0x05, 0xC3, 0xE7, 0x1A, 0x43, 0x42, 0xEA, 0x0E, 0x02, 0xCC, 0xF8, 0x00, 0x20, 0xBF, 0xE7, 0x1A, 0x43, 0x42, 0xEA, 0x0E, 0x02, 0xCC, 0xF8, 0x00, 0x20, 0x43, 0xF4, 0xF8, 0x52, 0xB9, 0xE7, 0x1D, 0x43, 0x49, 0xEA, 0x02, 0x02, 0x2A, 0x43, 0xCC, 0xF8, 0x00, 0x20, 0x3D, 0x60, 0xB2, 0xE7, 0x40, 0xF2, 0x01, 0x12, 0xB8, 0xE7, 0x4C, 0xF0, 0x70, 0x62, 0x42, 0xF4, 0x70, 0x22, 0x0A, 0x60, 0x40, 0xF6, 0x0F, 0x72, 0x2A, 0x60, 0xC2, 0x69, 0xD2, 0x04, 0x45, 0xD5, 0xB0, 0xF8, 0x7A, 0x20, 0x02, 0xF0, 0x07, 0x02, 0x01, 0x3A, 0x02, 0x2A, 0x03, 0xD9, 0x06, 0x3E, 0x1E, 0x44, 0x26, 0x4B, 0x1E, 0x60, 0xBD, 0xE8, 0xF0, 0x87, 0xB0, 0xF8, 0x7A, 0x70, 0x07, 0xF0, 0x07, 0x07, 0x01, 0x2F, 0x0C, 0xD1, 0x0B, 0x2C, 0x0E, 0xD1, 0x5C, 0x1F, 0x42, 0xF0, 0x70, 0x62, 0x42, 0xEA, 0x04, 0x22, 0x42, 0xEA, 0x04, 0x42, 0x0A, 0x60, 0xDA, 0x1D, 0x1C, 0x49, 0xD8, 0xE7, 0x02, 0x2F, 0x01, 0xD1, 0x0A, 0x2C, 0xEF, 0xE7, 0x48, 0xF0, 0x70, 0x62, 0xD1, 0xE7, 0xB0, 0xF8, 0x7A, 0x70, 0x07, 0xF0, 0x07, 0x07, 0x01, 0x2F, 0x0B, 0xD1, 0x0A, 0x2C, 0x09, 0xD1, 0x5C, 0x1F, 0x22, 0x06, 0x42, 0xEA, 0x04, 0x42, 0x42, 0xEA, 0x0C, 0x02, 0x0A, 0x60, 0x03, 0xF1, 0x08, 0x02, 0xE4, 0xE7, 0xC1, 0xF8, 0x00, 0xE0, 0xBD, 0xE7, 0xC1, 0xF8, 0x00, 0xE0, 0x42, 0xF4, 0x70, 0x62, 0xBA, 0xE7, 0xC1, 0xF8, 0x00, 0xE0, 0xC5, 0xF8, 0x00, 0xC0, 0xB6, 0xE7, 0x08, 0x4B, 0x1F, 0x22, 0x1A, 0x60, 0xC0, 0xE7, 0x00, 0xBF, 0x00, 0xA0, 0x7F, 0x04, 0x08, 0xB2, 0x7F, 0x04, 0x20, 0xB2, 0x7F, 0x04, 0x04, 0xB2, 0x7F, 0x04, 0x14, 0xB2, 0x7F, 0x04, 0x1C, 0xB2, 0x7F, 0x04, 0x00, 0xB2, 0x7F, 0x04, 0x0C, 0xB2, 0x7F, 0x04, 0xC3, 0x69, 0x40, 0xF2, 0x01, 0x22, 0x30, 0xB5, 0x13, 0xF4, 0x80, 0x5F, 0x40, 0xF2, 0x03, 0x33, 0x08, 0xBF, 0x13, 0x46, 0x1D, 0x4A, 0x13, 0x60, 0x43, 0x68, 0x03, 0xF0, 0x07, 0x03, 0x04, 0x2B, 0x12, 0xD0, 0x07, 0x2B, 0x1C, 0xD0, 0x03, 0x2B, 0x19, 0x4B, 0x18, 0xBF, 0x4F, 0xF0, 0x04, 0x23, 0x18, 0x4A, 0x13, 0x60, 0x02, 0xF5, 0x00, 0x52, 0x13, 0x60, 0x02, 0xF5, 0x80, 0x52, 0x13, 0x60, 0x02, 0xF5, 0x80, 0x52, 0x13, 0x60, 0x30, 0xBD, 0x02, 0x6B, 0xC2, 0xF3, 0x00, 0x33, 0x99, 0x1D, 0x93, 0x02, 0x03, 0xF4, 0xE0, 0x23, 0x43, 0xF4, 0x80, 0x63, 0x43, 0xEA, 0x01, 0x63, 0xE7, 0xE7, 0x01, 0x68, 0x0D, 0x4C, 0xB1, 0xF5, 0xC8, 0x7F, 0xC1, 0xEB, 0xC1, 0x02, 0x34, 0xBF, 0x03, 0x21, 0x04, 0x21, 0x82, 0xFB, 0x04, 0x45, 0xD2, 0x17, 0xC2, 0xEB, 0xE5, 0x12, 0xD3, 0x1D, 0x8A, 0x1A, 0x1B, 0x06, 0x43, 0xF4, 0x80, 0x63, 0x43, 0xEA, 0x02, 0x43, 0xD1, 0xE7, 0x44, 0xB2, 0x7F, 0x04, 0x00, 0x04, 0x00, 0x06, 0x40, 0xB2, 0x7F, 0x04, 0xD3, 0x4D, 0x62, 0x10, 0x06, 0x4A, 0x13, 0x68, 0x19, 0x05, 0x03, 0xD5, 0x23, 0xF4, 0x80, 0x63, 0x13, 0x60, 0x70, 0x47, 0x81, 0x6F, 0x89, 0x06, 0xF8, 0xD4, 0x43, 0xF4, 0x80, 0x63, 0xF7, 0xE7, 0x00, 0xB0, 0x7F, 0x04, 0x03, 0x4A, 0x83, 0x6F, 0x11, 0x68, 0xC3, 0xF3, 0x80, 0x73, 0x0B, 0x43, 0x13, 0x60, 0x70, 0x47, 0x00, 0xB0, 0x7F, 0x04, 0x43, 0x68, 0x03, 0xF0, 0x0F, 0x03, 0x04, 0x3B, 0x04, 0x2B, 0x97, 0xBF, 0x0A, 0x4A, 0x0B, 0x49, 0x02, 0xEB, 0x83, 0x03, 0xD3, 0xF8, 0xCC, 0x13, 0xC3, 0x69, 0xDA, 0x0A, 0x1B, 0x03, 0x02, 0xF0, 0x06, 0x02, 0x03, 0xF4, 0x80, 0x53, 0x01, 0x32, 0x43, 0xF0, 0x40, 0x43, 0x43, 0xEA, 0x02, 0x63, 0x03, 0x4A, 0x0B, 0x43, 0x13, 0x60, 0x70, 0x47, 0x60, 0xFC, 0x04, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0xB0, 0x7F, 0x04, 0x10, 0xB5, 0x04, 0x46, 0xFF, 0x20, 0xFD, 0xF7, 0x95, 0xFC, 0x20, 0x46, 0xFF, 0xF7, 0xD6, 0xFF, 0x63, 0x68, 0x04, 0x2B, 0x01, 0xD1, 0xFF, 0xF7, 0xC7, 0xFF, 0x63, 0x68, 0x03, 0x3B, 0x01, 0x2B, 0x02, 0xD8, 0x20, 0x46, 0xFF, 0xF7, 0xB0, 0xFF, 0x20, 0x46, 0xFF, 0xF7, 0x5F, 0xFF, 0xFF, 0xF7, 0x6F, 0xFE, 0xFF, 0xF7, 0xD7, 0xF9, 0x09, 0x4B, 0x00, 0x22, 0x20, 0x46, 0x1A, 0x60, 0xFF, 0xF7, 0xB1, 0xF9, 0x63, 0x68, 0x04, 0x2B, 0x01, 0xD0, 0x08, 0x2B, 0x02, 0xD1, 0x20, 0x46, 0xFF, 0xF7, 0x9D, 0xF9, 0x20, 0x46, 0xBD, 0xE8, 0x10, 0x40, 0xFF, 0xF7, 0x7C, 0xB9, 0x30, 0xB0, 0x7F, 0x04, 0x43, 0x68, 0x08, 0x2B, 0x02, 0xBF, 0x05, 0x4B, 0x01, 0x22, 0x1A, 0x60, 0x04, 0x4A, 0x13, 0x68, 0x23, 0xF4, 0x7F, 0x43, 0x43, 0xF4, 0x40, 0x53, 0x13, 0x60, 0x70, 0x47, 0x50, 0xA0, 0x7F, 0x04, 0x50, 0xB2, 0x7F, 0x04, 0x2D, 0xE9, 0xF0, 0x41, 0x80, 0x46, 0x31, 0x4D, 0x05, 0x20, 0x31, 0x4E, 0x2B, 0x68, 0x31, 0x4F, 0x31, 0x4C, 0x23, 0xF0, 0x00, 0x43, 0x2B, 0x60, 0x2B, 0x68, 0x23, 0xF0, 0x80, 0x43, 0x2B, 0x60, 0x33, 0x68, 0x23, 0xF0, 0x01, 0x03, 0x33, 0x60, 0x33, 0x68, 0x23, 0xF4, 0x80, 0x33, 0x33, 0x60, 0x3B, 0x68, 0x23, 0xF0, 0x00, 0x43, 0x3B, 0x60, 0x23, 0x68, 0x23, 0xF0, 0x80, 0x43, 0x23, 0x60, 0xFA, 0xF7, 0xB9, 0xFF, 0xD8, 0xF8, 0x00, 0x00, 0x42, 0x46, 0x39, 0x46, 0x40, 0x00, 0xFD, 0xF7, 0x9F, 0xFC, 0x23, 0x68, 0x05, 0x20, 0x21, 0x4A, 0x23, 0xF0, 0x40, 0x73, 0x23, 0x60, 0x23, 0x68, 0x23, 0xF0, 0x03, 0x03, 0x23, 0x60, 0x43, 0xF0, 0x00, 0x63, 0x23, 0x60, 0x33, 0x68, 0x43, 0xF4, 0x80, 0x33, 0x33, 0x60, 0x33, 0x68, 0x43, 0xF0, 0x01, 0x03, 0x33, 0x60, 0x00, 0x23, 0x13, 0x60, 0x53, 0x60, 0x93, 0x60, 0x2B, 0x68, 0x43, 0xF0, 0x80, 0x43, 0x2B, 0x60, 0x2B, 0x68, 0x43, 0xF0, 0x00, 0x43, 0x2B, 0x60, 0xD2, 0xF8, 0xE0, 0x34, 0x23, 0xF0, 0x00, 0x73, 0xC2, 0xF8, 0xE0, 0x34, 0x23, 0x68, 0x43, 0xF0, 0x80, 0x43, 0x23, 0x60, 0xFA, 0xF7, 0x85, 0xFF, 0x0C, 0x4B, 0x4F, 0xF4, 0x00, 0x42, 0x1A, 0x60, 0x0B, 0x4B, 0x1B, 0x68, 0x1B, 0x0C, 0x01, 0xBF, 0x0A, 0x4A, 0x13, 0x68, 0x43, 0xF0, 0x01, 0x03, 0x13, 0x60, 0xBD, 0xE8, 0xF0, 0x81, 0x00, 0xBF, 0x40, 0x15, 0x00, 0x03, 0x0C, 0x18, 0x00, 0x03, 0x10, 0x10, 0x00, 0x03, 0x00, 0x18, 0x00, 0x03, 0x20, 0xA0, 0x7F, 0x04, 0x0C, 0xB0, 0x7F, 0x04, 0xF8, 0x01, 0x00, 0x07, 0xF4, 0x01, 0x00, 0x07, 0x10, 0xB5, 0x04, 0x46, 0xFF, 0xF7, 0x86, 0xFF, 0x20, 0x46, 0x00, 0xF0, 0x67, 0xFA, 0x63, 0x68, 0x04, 0x2B, 0x04, 0xBF, 0x4F, 0xF0, 0x80, 0x43, 0x1B, 0x68, 0x10, 0xBD, 0x2D, 0xE9, 0xF0, 0x47, 0x04, 0x46, 0xC7, 0x6E, 0x47, 0xF0, 0x80, 0x53, 0xC3, 0x66, 0x43, 0x68, 0x04, 0x2B, 0x0C, 0xBF, 0x4B, 0xF2, 0xEB, 0x03, 0x43, 0xF2, 0xEB, 0x03, 0x83, 0x61, 0xD0, 0xE9, 0x06, 0x63, 0x13, 0xF0, 0x0F, 0x0F, 0x14, 0xBF, 0x01, 0x25, 0x02, 0x25, 0xFF, 0xF7, 0xDA, 0xFF, 0x10, 0xB9, 0x00, 0x20, 0xBD, 0xE8, 0xF0, 0x87, 0x4F, 0xF0, 0x80, 0x43, 0x00, 0x22, 0xD1, 0x07, 0x54, 0xBF, 0xD9, 0x43, 0x19, 0x46, 0x43, 0xF8, 0x04, 0x1B, 0xBF, 0xF3, 0x4F, 0x8F, 0x01, 0x32, 0x10, 0x2A, 0xF4, 0xD1, 0x4F, 0xF0, 0x80, 0x42, 0x00, 0x21, 0xC8, 0x07, 0x7E, 0xD5, 0x13, 0x46, 0x10, 0x6C, 0x83, 0x42, 0x7C, 0xD1, 0x01, 0x31, 0x04, 0x32, 0x10, 0x29, 0xF5, 0xD1, 0x4F, 0xF0, 0x01, 0x08, 0xC6, 0xF3, 0x81, 0x33, 0x4F, 0xF0, 0x01, 0x0C, 0x2B, 0x44, 0x07, 0x25, 0x58, 0x19, 0x4F, 0xF0, 0x80, 0x42, 0x0C, 0xFA, 0x00, 0xF0, 0x00, 0x21, 0x50, 0xF8, 0x02, 0xE0, 0xCE, 0x07, 0x54, 0xBF, 0xD6, 0x43, 0x16, 0x46, 0xB6, 0x45, 0x7D, 0xD1, 0x01, 0x31, 0x04, 0x32, 0x10, 0x29, 0xF3, 0xD1, 0x01, 0x22, 0x0D, 0x33, 0x02, 0xFA, 0x03, 0xF3, 0x00, 0x21, 0x4F, 0xF0, 0x80, 0x42, 0x9E, 0x58, 0xC8, 0x07, 0x54, 0xBF, 0xD0, 0x43, 0x10, 0x46, 0x86, 0x42, 0x68, 0xD1, 0x01, 0x31, 0x04, 0x32, 0x10, 0x29, 0xF4, 0xD1, 0x4F, 0xF0, 0x02, 0x09, 0x63, 0x68, 0x20, 0x46, 0x04, 0x2B, 0x0C, 0xBF, 0x46, 0xF2, 0x18, 0x13, 0x42, 0xF2, 0x18, 0x13, 0xA3, 0x61, 0xD4, 0xE9, 0x06, 0x63, 0x13, 0xF0, 0x0F, 0x0F, 0x14, 0xBF, 0x4F, 0xF0, 0x01, 0x0A, 0x4F, 0xF0, 0x02, 0x0A, 0xFF, 0xF7, 0x79, 0xFF, 0x00, 0x28, 0x9D, 0xD0, 0x4F, 0xF0, 0x80, 0x42, 0x00, 0x23, 0xD9, 0x07, 0x54, 0xBF, 0xD1, 0x43, 0x11, 0x46, 0x42, 0xF8, 0x04, 0x1B, 0xBF, 0xF3, 0x4F, 0x8F, 0x01, 0x33, 0x10, 0x2B, 0xF4, 0xD1, 0xC6, 0xF3, 0x81, 0x36, 0x0C, 0x23, 0x0A, 0x36, 0x4F, 0xF0, 0x01, 0x0E, 0x56, 0x44, 0xF0, 0x18, 0x4F, 0xF0, 0x80, 0x42, 0x0E, 0xFA, 0x00, 0xF0, 0x00, 0x21, 0x50, 0xF8, 0x02, 0xA0, 0x11, 0xF0, 0x01, 0x0F, 0x0C, 0xBF, 0x6F, 0xEA, 0x02, 0x0C, 0x94, 0x46, 0xE2, 0x45, 0x2F, 0xD1, 0x01, 0x31, 0x04, 0x32, 0x10, 0x29, 0xF1, 0xD1, 0x45, 0xEA, 0x88, 0x35, 0xE7, 0x66, 0x01, 0x20, 0x45, 0xEA, 0x09, 0x35, 0x45, 0xEA, 0x03, 0x13, 0xA3, 0x61, 0x6B, 0xE7, 0xD3, 0x43, 0x7F, 0xE7, 0x4F, 0xF0, 0x80, 0x42, 0x00, 0x21, 0xCB, 0x07, 0x10, 0xD5, 0x13, 0x46, 0xD2, 0xF8, 0x80, 0x00, 0x83, 0x42, 0x03, 0xD1, 0x01, 0x31, 0x04, 0x32, 0x10, 0x29, 0xF4, 0xD1, 0x63, 0x68, 0x04, 0x2B, 0x14, 0xBF, 0x4F, 0xF0, 0x00, 0x08, 0x4F, 0xF0, 0x02, 0x08, 0x72, 0xE7, 0xD3, 0x43, 0xED, 0xE7, 0x4F, 0xF0, 0x03, 0x09, 0x99, 0xE7, 0x01, 0x35, 0x0B, 0x2D, 0x7F, 0xF4, 0x70, 0xAF, 0x80, 0xE7, 0x01, 0x33, 0x11, 0x2B, 0xBC, 0xD1, 0xCF, 0xE7, 0x2D, 0xE9, 0xF0, 0x41, 0x04, 0x46, 0xC6, 0x6E, 0x87, 0x6F, 0x46, 0xF0, 0x80, 0x53, 0xD0, 0xE9, 0x06, 0x85, 0xC3, 0x66, 0x47, 0xF0, 0x01, 0x03, 0x83, 0x67, 0x43, 0x68, 0x04, 0x2B, 0x0C, 0xBF, 0x46, 0xF2, 0xB7, 0x03, 0x42, 0xF2, 0xB7, 0x03, 0x83, 0x61, 0x4F, 0xF4, 0x80, 0x53, 0xC3, 0x61, 0xFF, 0xF7, 0x04, 0xFF, 0x70, 0xB1, 0x14, 0x48, 0xFB, 0xF7, 0xA2, 0xF9, 0x2B, 0x0C, 0xE2, 0x69, 0x01, 0x20, 0xA7, 0x67, 0x1B, 0x04, 0xC4, 0xF8, 0x18, 0x80, 0xE6, 0x66, 0x13, 0x43, 0xE3, 0x61, 0xBD, 0xE8, 0xF0, 0x81, 0xE0, 0x61, 0x20, 0x46, 0xFF, 0xF7, 0xF0, 0xFE, 0x08, 0xB1, 0x0B, 0x48, 0xEA, 0xE7, 0x41, 0xF2, 0x01, 0x03, 0x20, 0x46, 0xE3, 0x61, 0xFF, 0xF7, 0xE7, 0xFE, 0x08, 0xB1, 0x07, 0x48, 0xE1, 0xE7, 0x01, 0x23, 0x20, 0x46, 0xE3, 0x61, 0xFF, 0xF7, 0xDF, 0xFE, 0x00, 0x28, 0xE6, 0xD0, 0x04, 0x48, 0xD8, 0xE7, 0x00, 0xBF, 0x0F, 0x0D, 0x05, 0x00, 0x3C, 0x0D, 0x05, 0x00, 0x69, 0x0D, 0x05, 0x00, 0x97, 0x0D, 0x05, 0x00, 0x38, 0xB5, 0x04, 0x46, 0x83, 0x6F, 0x59, 0x04, 0x05, 0xD5, 0x20, 0x46, 0xFF, 0xF7, 0xD8, 0xFE, 0x30, 0xB9, 0x00, 0x20, 0x38, 0xBD, 0xFF, 0xF7, 0xA7, 0xFF, 0x00, 0x28, 0xF5, 0xD1, 0xF8, 0xE7, 0xA3, 0x6F, 0x1A, 0x04, 0x5E, 0xBF, 0x43, 0xF4, 0xC0, 0x43, 0x43, 0xF0, 0x01, 0x03, 0xA3, 0x67, 0xA3, 0x6F, 0x1B, 0x03, 0x01, 0xD4, 0x01, 0x20, 0xEC, 0xE7, 0x20, 0x46, 0xFF, 0xF7, 0xB2, 0xFE, 0x00, 0x28, 0xE6, 0xD0, 0x20, 0x46, 0xFD, 0xF7, 0xD5, 0xF9, 0xA3, 0x6F, 0xB0, 0xF5, 0x80, 0x5F, 0x23, 0xF4, 0x00, 0x23, 0xA3, 0x67, 0x11, 0xD1, 0x4F, 0xF0, 0x20, 0x43, 0x4F, 0xF0, 0xA0, 0x32, 0x1A, 0x60, 0xBF, 0xF3, 0x4F, 0x8F, 0x1B, 0x68, 0x93, 0x42, 0xE4, 0xD0, 0xA1, 0x6F, 0x17, 0x48, 0x41, 0xF4, 0x80, 0x31, 0xA1, 0x67, 0xFB, 0xF7, 0x37, 0xF9, 0xDC, 0xE7, 0xB0, 0xF5, 0x00, 0x6F, 0xD9, 0xD1, 0x4F, 0xF0, 0xE0, 0x43, 0x4F, 0xF0, 0x70, 0x32, 0x1A, 0x60, 0xBF, 0xF3, 0x4F, 0x8F, 0x1B, 0x68, 0x93, 0x42, 0x05, 0xD0, 0xA1, 0x6F, 0x41, 0xF4, 0x00, 0x31, 0xA1, 0x67, 0x0C, 0x48, 0xE9, 0xE7, 0x4F, 0xF0, 0x20, 0x45, 0x4F, 0xF0, 0xA0, 0x33, 0x2B, 0x60, 0x4F, 0xF0, 0x80, 0x32, 0x4F, 0xF0, 0x00, 0x43, 0x01, 0x20, 0x1A, 0x60, 0xFA, 0xF7, 0xD9, 0xFD, 0x2B, 0x68, 0xB3, 0xF1, 0xA0, 0x3F, 0xB8, 0xD0, 0xA1, 0x6F, 0x41, 0xF4, 0xA0, 0x21, 0xE7, 0xE7, 0xC5, 0x0D, 0x05, 0x00, 0xF6, 0x0D, 0x05, 0x00, 0x2D, 0xE9, 0xF8, 0x43, 0x05, 0x46, 0x5D, 0x4E, 0x00, 0x27, 0x01, 0x24, 0xFE, 0xF7, 0x0C, 0xF9, 0x28, 0x46, 0xFD, 0xF7, 0xD1, 0xFA, 0x37, 0x60, 0x29, 0x46, 0x38, 0x46, 0xFE, 0xF7, 0x1A, 0xFF, 0x34, 0x60, 0x28, 0x46, 0xFE, 0xF7, 0x4E, 0xFE, 0xEB, 0x6E, 0x13, 0xF4, 0x80, 0x16, 0x11, 0xD0, 0x18, 0x03, 0x74, 0xD5, 0x28, 0x46, 0xFE, 0xF7, 0xC3, 0xF9, 0x01, 0x28, 0x04, 0x46, 0x08, 0xBF, 0x05, 0x27, 0x01, 0x37, 0x04, 0x2F, 0xF5, 0xD9, 0x00, 0x2C, 0x6D, 0xD1, 0x01, 0x26, 0x4C, 0x48, 0xFB, 0xF7, 0xE0, 0xF8, 0xEB, 0x6E, 0x13, 0xF4, 0x00, 0x17, 0x12, 0xD0, 0x19, 0x03, 0x65, 0xD5, 0x00, 0x27, 0x28, 0x46, 0xFE, 0xF7, 0x38, 0xFA, 0x01, 0x28, 0x04, 0x46, 0x08, 0xBF, 0x05, 0x27, 0x01, 0x37, 0x04, 0x2F, 0xF5, 0xD9, 0x00, 0x2C, 0x5D, 0xD1, 0x01, 0x27, 0x41, 0x48, 0xFB, 0xF7, 0xC9, 0xF8, 0xEB, 0x6E, 0x13, 0xF4, 0x80, 0x09, 0x18, 0xD0, 0x01, 0x2F, 0x5A, 0xD0, 0x1A, 0x03, 0x53, 0xD5, 0xB8, 0x46, 0x28, 0x46, 0xFE, 0xF7, 0xC1, 0xFA, 0x01, 0x28, 0x04, 0x46, 0x08, 0xBF, 0x4F, 0xF0, 0x05, 0x08, 0x08, 0xF1, 0x01, 0x08, 0xB8, 0xF1, 0x04, 0x0F, 0xF2, 0xD9, 0x00, 0x2C, 0x4B, 0xD1, 0x4F, 0xF0, 0x01, 0x09, 0x34, 0x48, 0xFB, 0xF7, 0xAC, 0xF8, 0xEA, 0x6E, 0x12, 0xF4, 0x00, 0x03, 0x16, 0xD0, 0x01, 0x2F, 0x47, 0xD0, 0x13, 0x03, 0x40, 0xD5, 0xB8, 0x46, 0x28, 0x46, 0xFE, 0xF7, 0x5E, 0xFC, 0x01, 0x28, 0x04, 0x46, 0x08, 0xBF, 0x4F, 0xF0, 0x05, 0x08, 0x08, 0xF1, 0x01, 0x08, 0xB8, 0xF1, 0x04, 0x0F, 0xF2, 0xD9, 0xC4, 0xBB, 0x28, 0x48, 0xFB, 0xF7, 0x92, 0xF8, 0x01, 0x23, 0xE8, 0x6E, 0x3E, 0x43, 0x46, 0xEA, 0x09, 0x06, 0x1E, 0x43, 0x10, 0xF4, 0x00, 0x20, 0x38, 0xD0, 0x96, 0xB3, 0x22, 0x4F, 0x00, 0x26, 0x3B, 0x68, 0x01, 0x33, 0x0A, 0x2B, 0x3B, 0x60, 0x26, 0xD1, 0x20, 0x48, 0xFB, 0xF7, 0x7E, 0xF8, 0x30, 0x46, 0xBD, 0xE8, 0xF8, 0x83, 0x28, 0x46, 0xFE, 0xF7, 0x4E, 0xF9, 0x04, 0x46, 0x8F, 0xE7, 0x00, 0x26, 0x93, 0xE7, 0x28, 0x46, 0xFE, 0xF7, 0xD3, 0xF9, 0x04, 0x46, 0x9F, 0xE7, 0x00, 0x27, 0xA3, 0xE7, 0x28, 0x46, 0xFE, 0xF7, 0x6E, 0xFA, 0x04, 0x46, 0xB4, 0xE7, 0x4F, 0xF0, 0x00, 0x09, 0xB8, 0xE7, 0xB9, 0x46, 0xB6, 0xE7, 0x28, 0x46, 0xFE, 0xF7, 0x1E, 0xFC, 0x04, 0x46, 0xC7, 0xE7, 0x00, 0x23, 0xCA, 0xE7, 0x3B, 0x46, 0xC8, 0xE7, 0x28, 0x46, 0xFF, 0xF7, 0xB5, 0xFD, 0x04, 0x46, 0x3E, 0x60, 0x28, 0x46, 0xFD, 0xF7, 0x46, 0xFD, 0x20, 0x46, 0xD2, 0xE7, 0x00, 0x2E, 0xF8, 0xD0, 0xCF, 0xE7, 0x00, 0xBF, 0x20, 0xB3, 0x7F, 0x04, 0x29, 0x0E, 0x05, 0x00, 0x40, 0x0E, 0x05, 0x00, 0x59, 0x0E, 0x05, 0x00, 0x6F, 0x0E, 0x05, 0x00, 0xD0, 0x1E, 0x05, 0x00, 0x86, 0x0E, 0x05, 0x00, 0x10, 0xB5, 0x04, 0x46, 0xFE, 0xF7, 0x2E, 0xF8, 0x20, 0x46, 0xBD, 0xE8, 0x10, 0x40, 0xFF, 0xF7, 0x2B, 0xBF, 0x00, 0x00, 0x10, 0x4A, 0x38, 0xB5, 0x04, 0x46, 0xFF, 0x20, 0x13, 0x68, 0x23, 0xF0, 0x80, 0x73, 0x43, 0xF4, 0x00, 0x73, 0x13, 0x60, 0x4F, 0xF4, 0x00, 0x42, 0x0B, 0x4B, 0x1A, 0x60, 0xFD, 0xF7, 0x64, 0xF9, 0x20, 0x46, 0xFF, 0xF7, 0xF7, 0xFC, 0x09, 0x4B, 0x00, 0x22, 0x1A, 0x60, 0xFF, 0xF7, 0xC2, 0xFC, 0x20, 0x46, 0xFF, 0xF7, 0xDB, 0xFF, 0x05, 0x46, 0x20, 0x46, 0xFE, 0xF7, 0x3F, 0xFE, 0x28, 0x46, 0x38, 0xBD, 0x00, 0xBF, 0x00, 0xA5, 0x7F, 0x04, 0x0C, 0xB0, 0x7F, 0x04, 0x38, 0xB0, 0x7F, 0x04, 0xF7, 0xB5, 0x0D, 0x46, 0x7E, 0x48, 0x7F, 0x49, 0xFB, 0xF7, 0x06, 0xF8, 0x7E, 0x4A, 0x7F, 0x48, 0x13, 0x68, 0x43, 0xF4, 0x80, 0x73, 0x13, 0x60, 0x93, 0x68, 0x23, 0xF0, 0x3F, 0x03, 0x93, 0x60, 0x7B, 0x4B, 0x19, 0x68, 0x89, 0xB2, 0xFA, 0xF7, 0xF7, 0xFF, 0x00, 0xF0, 0x23, 0xF9, 0x04, 0x46, 0x20, 0xB9, 0x78, 0x48, 0xFA, 0xF7, 0xF0, 0xFF, 0x20, 0x46, 0x29, 0xE0, 0x76, 0x48, 0xFA, 0xF7, 0xEB, 0xFF, 0x76, 0x4B, 0x1B, 0x68, 0x1B, 0x0C, 0x1C, 0xD0, 0xAB, 0x6F, 0x40, 0xF6, 0x01, 0x02, 0x1A, 0x42, 0x03, 0xD1, 0x28, 0x46, 0xFF, 0xF7, 0x6B, 0xFE, 0xC0, 0xB1, 0x6F, 0x4B, 0x1B, 0x68, 0x1B, 0x0C, 0x17, 0xD0, 0x29, 0x68, 0x6E, 0x48, 0xFA, 0xF7, 0xD6, 0xFF, 0x69, 0x68, 0x6D, 0x48, 0xFA, 0xF7, 0xD2, 0xFF, 0x28, 0x46, 0xFF, 0xF7, 0x2D, 0xFD, 0xB8, 0xB9, 0x6A, 0x48, 0xFA, 0xF7, 0xCB, 0xFF, 0x04, 0xE0, 0x28, 0x46, 0xFD, 0xF7, 0x11, 0xF9, 0x00, 0x28, 0xDD, 0xD1, 0x00, 0x20, 0x03, 0xB0, 0xF0, 0xBD, 0xAB, 0x6F, 0x19, 0x05, 0xE4, 0xD5, 0xEB, 0x6D, 0x00, 0x2B, 0xE1, 0xDB, 0x28, 0x46, 0xFC, 0xF7, 0x6F, 0xFF, 0x00, 0x28, 0xDC, 0xD0, 0xF0, 0xE7, 0xEC, 0x69, 0x00, 0x2C, 0x33, 0xDA, 0xC4, 0xF3, 0x0E, 0x44, 0xAB, 0x6F, 0x21, 0x46, 0x5C, 0x48, 0x00, 0x93, 0xD5, 0xE9, 0x06, 0x23, 0xFA, 0xF7, 0xA9, 0xFF, 0xAB, 0x6F, 0x1A, 0x01, 0x01, 0xD4, 0xFD, 0xF7, 0x50, 0xF8, 0x52, 0x4B, 0x1E, 0x68, 0x36, 0x0C, 0x58, 0xD1, 0x4F, 0xF4, 0x80, 0x51, 0x20, 0x46, 0xFC, 0xF7, 0xDB, 0xFF, 0xB8, 0xB1, 0x52, 0x4B, 0x28, 0x46, 0x1E, 0x60, 0xFF, 0xF7, 0xF3, 0xFC, 0x00, 0x28, 0xC4, 0xD0, 0xEC, 0x69, 0x00, 0x2C, 0x2D, 0xDA, 0xC4, 0xF3, 0x0E, 0x44, 0xAB, 0x6F, 0x1B, 0x01, 0x01, 0xD4, 0xFD, 0xF7, 0x35, 0xF8, 0x4F, 0xF4, 0x80, 0x51, 0x20, 0x46, 0xFC, 0xF7, 0xC4, 0xFF, 0x00, 0x28, 0xBC, 0xD1, 0xFB, 0xF7, 0x50, 0xFC, 0x8E, 0xE7, 0x28, 0x46, 0xFD, 0xF7, 0x02, 0xF8, 0x3B, 0x4A, 0x04, 0x46, 0x13, 0x68, 0x9B, 0xB2, 0xB3, 0xF5, 0xB8, 0x4F, 0x04, 0xD0, 0x13, 0x68, 0x9B, 0xB2, 0xB3, 0xF5, 0xBA, 0x4F, 0x04, 0xD1, 0xB4, 0xF5, 0x00, 0x6F, 0x01, 0xD9, 0x3D, 0x48, 0x9D, 0xE7, 0x21, 0x46, 0x3C, 0x48, 0xFA, 0xF7, 0x67, 0xFF, 0xAB, 0x8B, 0x43, 0xEA, 0x04, 0x43, 0xEB, 0x61, 0xB0, 0xE7, 0x28, 0x46, 0xFC, 0xF7, 0xE5, 0xFF, 0x2D, 0x4A, 0x04, 0x46, 0x13, 0x68, 0x9B, 0xB2, 0xB3, 0xF5, 0xB8, 0x4F, 0x04, 0xD0, 0x13, 0x68, 0x9B, 0xB2, 0xB3, 0xF5, 0xBA, 0x4F, 0x02, 0xD1, 0xB4, 0xF5, 0x00, 0x6F, 0xE2, 0xD8, 0x21, 0x46, 0x2F, 0x48, 0xFA, 0xF7, 0x4C, 0xFF, 0xAB, 0x8B, 0x43, 0xEA, 0x04, 0x43, 0xEB, 0x61, 0xB8, 0xE7, 0x2C, 0x4B, 0x1E, 0x68, 0xEB, 0x69, 0x13, 0xF0, 0x01, 0x00, 0xBE, 0xD1, 0x5B, 0x0C, 0x1B, 0x05, 0x03, 0xF1, 0x80, 0x43, 0xA3, 0xF5, 0xA0, 0x77, 0x4F, 0x28, 0xD5, 0xF8, 0x04, 0xC0, 0x4F, 0xEA, 0x80, 0x01, 0x18, 0xD8, 0xBC, 0xF1, 0x04, 0x0F, 0x07, 0xD0, 0x01, 0xF1, 0x80, 0x42, 0x71, 0x58, 0x11, 0x60, 0x01, 0x30, 0xA0, 0x28, 0xEF, 0xD1, 0xA7, 0xE7, 0xC2, 0x08, 0x01, 0xF0, 0x1C, 0x0C, 0x0C, 0xEB, 0x82, 0x1C, 0x0C, 0xF1, 0x80, 0x4C, 0x52, 0x01, 0x71, 0x58, 0x02, 0xF0, 0x20, 0x02, 0x4C, 0xF8, 0x02, 0x10, 0xED, 0xE7, 0xBC, 0xF1, 0x04, 0x0F, 0xA0, 0xF1, 0x50, 0x02, 0x02, 0xD0, 0x72, 0x58, 0x7A, 0x50, 0xE5, 0xE7, 0xD2, 0x08, 0x01, 0xF0, 0x1C, 0x0C, 0x9C, 0x44, 0x0C, 0xEB, 0x82, 0x1C, 0xE9, 0xE7, 0x00, 0xBF, 0xA6, 0x0E, 0x05, 0x00, 0x9F, 0x0E, 0x05, 0x00, 0x10, 0x03, 0x01, 0x07, 0xC0, 0x0E, 0x05, 0x00, 0x00, 0x62, 0x00, 0x03, 0xD5, 0x0E, 0x05, 0x00, 0xF9, 0x0E, 0x05, 0x00, 0xF8, 0x01, 0x00, 0x07, 0x0B, 0x0F, 0x05, 0x00, 0x1D, 0x0F, 0x05, 0x00, 0x4E, 0x0F, 0x05, 0x00, 0xA0, 0x0F, 0x05, 0x00, 0x54, 0x13, 0x05, 0x00, 0x68, 0x0F, 0x05, 0x00, 0x88, 0x0F, 0x05, 0x00, 0x04, 0x01, 0x00, 0x07, 0x80, 0xEA, 0x01, 0x20, 0x08, 0x23, 0x48, 0xF2, 0x05, 0x01, 0x42, 0x00, 0x01, 0x3B, 0x9B, 0xB2, 0x00, 0x04, 0x92, 0xB2, 0x4C, 0xBF, 0x82, 0xEA, 0x01, 0x00, 0x10, 0x46, 0x00, 0x2B, 0xF4, 0xD1, 0x70, 0x47, 0x38, 0xB5, 0x0D, 0x46, 0x04, 0x46, 0x2C, 0x44, 0xFF, 0xF7, 0xE9, 0xFF, 0x44, 0xEA, 0x00, 0x40, 0x38, 0xBD, 0x70, 0xB5, 0x00, 0x20, 0xFB, 0xF7, 0xB8, 0xFD, 0x01, 0x25, 0x04, 0x46, 0x29, 0x46, 0x00, 0x20, 0xFF, 0xF7, 0xED, 0xFF, 0x84, 0x42, 0x05, 0xD0, 0x01, 0x35, 0xED, 0xB2, 0x11, 0x2D, 0xF5, 0xD1, 0x00, 0x20, 0x0F, 0xE0, 0x01, 0x24, 0x20, 0x46, 0xFB, 0xF7, 0xA6, 0xFD, 0x29, 0x46, 0x06, 0x46, 0x20, 0x46, 0xFF, 0xF7, 0xDC, 0xFF, 0x86, 0x42, 0xF2, 0xD1, 0x01, 0x34, 0xA4, 0xB2, 0x05, 0x2C, 0xF1, 0xD1, 0x01, 0x20, 0x70, 0xBD, 0x00, 0x00, 0x0B, 0x4B, 0x1B, 0x68, 0x40, 0x2B, 0x05, 0xD0, 0x48, 0x2B, 0x05, 0xD0, 0x14, 0x2B, 0x05, 0xD1, 0x00, 0xF0, 0x40, 0xBA, 0x00, 0xF0, 0x84, 0xBB, 0x00, 0xF0, 0xB0, 0xBA, 0x05, 0x4B, 0x93, 0xF8, 0x35, 0x00, 0x10, 0xF1, 0xFF, 0x30, 0x18, 0xBF, 0x4F, 0xF0, 0xFF, 0x30, 0x70, 0x47, 0x00, 0xBF, 0xD4, 0x1E, 0x05, 0x00, 0x00, 0x80, 0x04, 0x00, 0x09, 0x4B, 0x1B, 0x68, 0x40, 0x2B, 0x06, 0xD0, 0x48, 0x2B, 0x07, 0xD0, 0x14, 0x2B, 0x08, 0xD1, 0x01, 0x21, 0x00, 0xF0, 0x33, 0xBA, 0x01, 0x21, 0x00, 0xF0, 0x76, 0xBB, 0x01, 0x21, 0x00, 0xF0, 0x05, 0xBB, 0x4F, 0xF0, 0xFF, 0x30, 0x70, 0x47, 0xD4, 0x1E, 0x05, 0x00, 0x08, 0x4B, 0x1B, 0x68, 0x40, 0x2B, 0x05, 0xD0, 0x48, 0x2B, 0x05, 0xD0, 0x14, 0x2B, 0x05, 0xD1, 0x00, 0xF0, 0x16, 0xBA, 0x00, 0xF0, 0x5A, 0xBB, 0x00, 0xF0, 0xEA, 0xBA, 0x4F, 0xF0, 0xFF, 0x30, 0x70, 0x47, 0x00, 0xBF, 0xD4, 0x1E, 0x05, 0x00, 0x70, 0xB5, 0x4F, 0xF0, 0xFF, 0x35, 0x0A, 0x4C, 0x06, 0x46, 0x25, 0x60, 0x00, 0xF0, 0x14, 0xFA, 0x14, 0x28, 0x01, 0xD1, 0x20, 0x60, 0x70, 0xBD, 0x30, 0x46, 0x00, 0xF0, 0x53, 0xFB, 0x40, 0x28, 0xF8, 0xD0, 0x30, 0x46, 0x00, 0xF0, 0xE0, 0xFA, 0x48, 0x28, 0xF3, 0xD0, 0x28, 0x46, 0xF2, 0xE7, 0xD4, 0x1E, 0x05, 0x00, 0x01, 0x4B, 0x93, 0xF8, 0x35, 0x00, 0x70, 0x47, 0x00, 0x80, 0x04, 0x00, 0x2D, 0xE9, 0xF0, 0x4F, 0x80, 0x46, 0xDF, 0xF8, 0x48, 0xA1, 0x85, 0xB0, 0x8B, 0x46, 0x17, 0x46, 0x00, 0x25, 0x4F, 0xF0, 0x6C, 0x09, 0x09, 0xFB, 0x05, 0xA4, 0x20, 0x46, 0xFA, 0xF7, 0x0F, 0xFD, 0x21, 0x46, 0x02, 0x46, 0x40, 0x46, 0xFA, 0xF7, 0xF9, 0xFC, 0x06, 0x46, 0x00, 0x28, 0x66, 0xD0, 0x01, 0x35, 0x06, 0x2D, 0xEF, 0xD1, 0x4F, 0xF0, 0xFF, 0x36, 0x30, 0x46, 0x05, 0xB0, 0xBD, 0xE8, 0xF0, 0x8F, 0x23, 0x69, 0x00, 0x2B, 0x5F, 0xD0, 0x5B, 0x45, 0x48, 0xD9, 0x9B, 0x46, 0x0D, 0xF1, 0x0F, 0x02, 0x21, 0x7E, 0x36, 0x20, 0xFB, 0xF7, 0xCC, 0xFA, 0x00, 0x28, 0xEB, 0xD1, 0x9D, 0xF8, 0x0F, 0x50, 0x02, 0x46, 0x94, 0xF8, 0x1C, 0x80, 0x25, 0xEA, 0x08, 0x0A, 0x05, 0x46, 0x8D, 0xF8, 0x0F, 0xA0, 0x5F, 0xFA, 0x82, 0xF9, 0x4F, 0xEA, 0x09, 0x11, 0x63, 0x18, 0x1B, 0x6B, 0x33, 0xB3, 0x9B, 0x45, 0x05, 0xD9, 0x04, 0xEB, 0x09, 0x10, 0xC0, 0x6B, 0x83, 0x45, 0x38, 0xBF, 0x9B, 0x46, 0x09, 0xF1, 0x03, 0x09, 0x9B, 0x45, 0x04, 0xEB, 0x09, 0x19, 0x21, 0x44, 0xC8, 0x6A, 0x02, 0xF1, 0x01, 0x02, 0xD9, 0xF8, 0x04, 0x10, 0x1F, 0xD8, 0xAB, 0xEB, 0x00, 0x00, 0xF9, 0xF7, 0xF8, 0xFF, 0x05, 0x44, 0xA0, 0x6A, 0xD9, 0xF8, 0x08, 0x30, 0x85, 0x40, 0x4A, 0xEA, 0x05, 0x05, 0xED, 0xB2, 0x8D, 0xF8, 0x0F, 0x50, 0x1B, 0xB1, 0x88, 0xEA, 0x05, 0x05, 0x8D, 0xF8, 0x0F, 0x50, 0x9D, 0xF8, 0x0F, 0x20, 0x36, 0x20, 0x21, 0x7E, 0xFB, 0xF7, 0x96, 0xFA, 0xA8, 0xB1, 0xAB, 0xE7, 0x63, 0x69, 0x9B, 0x45, 0x28, 0xBF, 0x9B, 0x46, 0xB2, 0xE7, 0x0B, 0x44, 0x01, 0x92, 0x18, 0x1A, 0xF9, 0xF7, 0xD7, 0xFF, 0x05, 0x44, 0x01, 0x9A, 0xED, 0xB2, 0xBB, 0xE7, 0x13, 0x43, 0x19, 0xE0, 0x00, 0x2C, 0x99, 0xD0, 0xBB, 0xF1, 0x00, 0x0F, 0x9C, 0xDC, 0x00, 0x2F, 0x96, 0xDB, 0x0D, 0xF1, 0x0F, 0x02, 0x94, 0xF8, 0x20, 0x10, 0x36, 0x20, 0xFB, 0xF7, 0x6C, 0xFA, 0x00, 0x28, 0x8B, 0xD1, 0x62, 0x6A, 0x01, 0x23, 0x93, 0x40, 0x9D, 0xF9, 0x0F, 0x20, 0x5B, 0xB2, 0x00, 0x2F, 0xE5, 0xD1, 0x22, 0xEA, 0x03, 0x03, 0x8D, 0xF8, 0x0F, 0x30, 0x36, 0x20, 0x9D, 0xF8, 0x0F, 0x20, 0x94, 0xF8, 0x20, 0x10, 0xFB, 0xF7, 0x61, 0xFA, 0x00, 0x30, 0x18, 0xBF, 0x01, 0x20, 0x46, 0x42, 0x75, 0xE7, 0x00, 0xBF, 0x58, 0x13, 0x05, 0x00, 0x2D, 0xE9, 0xF7, 0x4F, 0x8A, 0x46, 0x16, 0x46, 0x00, 0xF0, 0x8C, 0xF9, 0x05, 0x46, 0x20, 0xB9, 0x4F, 0xF0, 0xFF, 0x30, 0x03, 0xB0, 0xBD, 0xE8, 0xF0, 0x8F, 0xBA, 0xF1, 0x00, 0x0F, 0x03, 0xDC, 0x00, 0x2E, 0x5A, 0xDA, 0x00, 0x20, 0xF5, 0xE7, 0x03, 0x69, 0x00, 0x2B, 0xF8, 0xD0, 0x53, 0x45, 0x47, 0xD9, 0x9A, 0x46, 0x0D, 0xF1, 0x07, 0x02, 0x29, 0x7E, 0x36, 0x20, 0xFB, 0xF7, 0x2F, 0xFA, 0x00, 0x28, 0xE5, 0xD1, 0x9D, 0xF8, 0x07, 0x90, 0x83, 0x46, 0x2F, 0x7F, 0x04, 0x46, 0x29, 0xEA, 0x07, 0x09, 0x8D, 0xF8, 0x07, 0x90, 0x5F, 0xFA, 0x8B, 0xF8, 0x4F, 0xEA, 0x08, 0x12, 0xAB, 0x18, 0x1B, 0x6B, 0x2B, 0xB3, 0x9A, 0x45, 0x05, 0xD9, 0x05, 0xEB, 0x08, 0x11, 0xC9, 0x6B, 0x8A, 0x45, 0x38, 0xBF, 0x9A, 0x46, 0x08, 0xF1, 0x03, 0x08, 0x9A, 0x45, 0x05, 0xEB, 0x08, 0x18, 0x2A, 0x44, 0xD0, 0x6A, 0x0B, 0xF1, 0x01, 0x0B, 0xD8, 0xF8, 0x04, 0x10, 0x1F, 0xD8, 0xAA, 0xEB, 0x00, 0x00, 0xF9, 0xF7, 0x5C, 0xFF, 0x20, 0x44, 0xAC, 0x6A, 0xD8, 0xF8, 0x08, 0x30, 0xA0, 0x40, 0x49, 0xEA, 0x00, 0x00, 0xC0, 0xB2, 0x8D, 0xF8, 0x07, 0x00, 0x13, 0xB1, 0x78, 0x40, 0x8D, 0xF8, 0x07, 0x00, 0x9D, 0xF8, 0x07, 0x20, 0x36, 0x20, 0x29, 0x7E, 0xFB, 0xF7, 0xFB, 0xF9, 0x00, 0x28, 0xAF, 0xD0, 0xA6, 0xE7, 0x43, 0x69, 0x9A, 0x45, 0x28, 0xBF, 0x9A, 0x46, 0xB3, 0xE7, 0x0B, 0x44, 0x18, 0x1A, 0xF9, 0xF7, 0x3C, 0xFF, 0x04, 0x44, 0xE4, 0xB2, 0xBD, 0xE7, 0x0D, 0xF1, 0x07, 0x02, 0x95, 0xF8, 0x20, 0x10, 0x36, 0x20, 0xFB, 0xF7, 0xDB, 0xF9, 0x00, 0x28, 0x91, 0xD1, 0x6A, 0x6A, 0x01, 0x23, 0x93, 0x40, 0x9D, 0xF9, 0x07, 0x20, 0x5B, 0xB2, 0x7E, 0xB9, 0x22, 0xEA, 0x03, 0x03, 0x8D, 0xF8, 0x07, 0x30, 0x36, 0x20, 0x9D, 0xF8, 0x07, 0x20, 0x95, 0xF8, 0x20, 0x10, 0xFB, 0xF7, 0xD1, 0xF9, 0x00, 0x30, 0x18, 0xBF, 0x01, 0x20, 0x40, 0x42, 0x7C, 0xE7, 0x13, 0x43, 0xEF, 0xE7, 0x00, 0x00, 0x2D, 0xE9, 0xF0, 0x4F, 0x80, 0x46, 0xDF, 0xF8, 0x48, 0xA1, 0x85, 0xB0, 0x8B, 0x46, 0x17, 0x46, 0x00, 0x25, 0x4F, 0xF0, 0x6C, 0x09, 0x09, 0xFB, 0x05, 0xA4, 0x20, 0x46, 0xFA, 0xF7, 0xD5, 0xFB, 0x21, 0x46, 0x02, 0x46, 0x40, 0x46, 0xFA, 0xF7, 0xBF, 0xFB, 0x06, 0x46, 0x00, 0x28, 0x66, 0xD0, 0x01, 0x35, 0x0F, 0x2D, 0xEF, 0xD1, 0x4F, 0xF0, 0xFF, 0x36, 0x30, 0x46, 0x05, 0xB0, 0xBD, 0xE8, 0xF0, 0x8F, 0x23, 0x69, 0x00, 0x2B, 0x5F, 0xD0, 0x5B, 0x45, 0x48, 0xD9, 0x9B, 0x46, 0x0D, 0xF1, 0x0F, 0x02, 0x21, 0x7E, 0x36, 0x20, 0xFB, 0xF7, 0x92, 0xF9, 0x00, 0x28, 0xEB, 0xD1, 0x9D, 0xF8, 0x0F, 0x50, 0x02, 0x46, 0x94, 0xF8, 0x1C, 0x80, 0x25, 0xEA, 0x08, 0x0A, 0x05, 0x46, 0x8D, 0xF8, 0x0F, 0xA0, 0x5F, 0xFA, 0x82, 0xF9, 0x4F, 0xEA, 0x09, 0x11, 0x63, 0x18, 0x1B, 0x6B, 0x33, 0xB3, 0x9B, 0x45, 0x05, 0xD9, 0x04, 0xEB, 0x09, 0x10, 0xC0, 0x6B, 0x83, 0x45, 0x38, 0xBF, 0x9B, 0x46, 0x09, 0xF1, 0x03, 0x09, 0x9B, 0x45, 0x04, 0xEB, 0x09, 0x19, 0x21, 0x44, 0xC8, 0x6A, 0x02, 0xF1, 0x01, 0x02, 0xD9, 0xF8, 0x04, 0x10, 0x1F, 0xD8, 0xAB, 0xEB, 0x00, 0x00, 0xF9, 0xF7, 0xBE, 0xFE, 0x05, 0x44, 0xA0, 0x6A, 0xD9, 0xF8, 0x08, 0x30, 0x85, 0x40, 0x4A, 0xEA, 0x05, 0x05, 0xED, 0xB2, 0x8D, 0xF8, 0x0F, 0x50, 0x1B, 0xB1, 0x88, 0xEA, 0x05, 0x05, 0x8D, 0xF8, 0x0F, 0x50, 0x9D, 0xF8, 0x0F, 0x20, 0x36, 0x20, 0x21, 0x7E, 0xFB, 0xF7, 0x5C, 0xF9, 0xA8, 0xB1, 0xAB, 0xE7, 0x63, 0x69, 0x9B, 0x45, 0x28, 0xBF, 0x9B, 0x46, 0xB2, 0xE7, 0x0B, 0x44, 0x01, 0x92, 0x18, 0x1A, 0xF9, 0xF7, 0x9D, 0xFE, 0x05, 0x44, 0x01, 0x9A, 0xED, 0xB2, 0xBB, 0xE7, 0x13, 0x43, 0x19, 0xE0, 0x00, 0x2C, 0x99, 0xD0, 0xBB, 0xF1, 0x00, 0x0F, 0x9C, 0xDC, 0x00, 0x2F, 0x96, 0xDB, 0x0D, 0xF1, 0x0F, 0x02, 0x94, 0xF8, 0x20, 0x10, 0x36, 0x20, 0xFB, 0xF7, 0x32, 0xF9, 0x00, 0x28, 0x8B, 0xD1, 0x62, 0x6A, 0x01, 0x23, 0x93, 0x40, 0x9D, 0xF9, 0x0F, 0x20, 0x5B, 0xB2, 0x00, 0x2F, 0xE5, 0xD1, 0x22, 0xEA, 0x03, 0x03, 0x8D, 0xF8, 0x0F, 0x30, 0x36, 0x20, 0x9D, 0xF8, 0x0F, 0x20, 0x94, 0xF8, 0x20, 0x10, 0xFB, 0xF7, 0x27, 0xF9, 0x00, 0x30, 0x18, 0xBF, 0x01, 0x20, 0x46, 0x42, 0x75, 0xE7, 0x00, 0xBF, 0xFC, 0x17, 0x05, 0x00, 0x01, 0x46, 0x01, 0x22, 0x01, 0x48, 0xFF, 0xF7, 0x17, 0xBE, 0x00, 0xBF, 0xDF, 0x0F, 0x05, 0x00, 0x01, 0x46, 0x01, 0x22, 0x01, 0x48, 0xFF, 0xF7, 0x0F, 0xBE, 0x00, 0xBF, 0xEB, 0x0F, 0x05, 0x00, 0x0A, 0x46, 0x01, 0x46, 0x01, 0x48, 0xFF, 0xF7, 0x07, 0xBE, 0x00, 0xBF, 0xF1, 0x0F, 0x05, 0x00, 0x07, 0xB5, 0x36, 0x21, 0x40, 0xF2, 0x45, 0x70, 0xFB, 0xF7, 0xF2, 0xF8, 0x28, 0xB1, 0x18, 0x48, 0xFA, 0xF7, 0x42, 0xFC, 0x4F, 0xF0, 0xFF, 0x30, 0x25, 0xE0, 0x0D, 0xF1, 0x06, 0x02, 0x03, 0x21, 0x36, 0x20, 0xFB, 0xF7, 0xEA, 0xF8, 0x08, 0xB1, 0x12, 0x48, 0xF1, 0xE7, 0x9D, 0xF8, 0x06, 0x30, 0x03, 0xF0, 0xCF, 0x03, 0x44, 0x2B, 0x8D, 0xF8, 0x06, 0x30, 0x17, 0xD1, 0x0E, 0x48, 0xFA, 0xF7, 0x2B, 0xFC, 0x0D, 0xF1, 0x07, 0x02, 0x1A, 0x21, 0x36, 0x20, 0xFB, 0xF7, 0xD6, 0xF8, 0x48, 0xB9, 0x9D, 0xF8, 0x07, 0x20, 0x1A, 0x21, 0x36, 0x20, 0x42, 0xF0, 0x01, 0x02, 0x8D, 0xF8, 0x07, 0x20, 0xFB, 0xF7, 0xD5, 0xF8, 0x14, 0x20, 0x03, 0xB0, 0x5D, 0xF8, 0x04, 0xFB, 0x03, 0x48, 0xCF, 0xE7, 0xF7, 0x0F, 0x05, 0x00, 0x0E, 0x10, 0x05, 0x00, 0x25, 0x10, 0x05, 0x00, 0x32, 0x10, 0x05, 0x00, 0x2D, 0xE9, 0xF0, 0x41, 0x06, 0x46, 0xDF, 0xF8, 0x2C, 0x80, 0x00, 0x25, 0x6C, 0x27, 0x07, 0xFB, 0x05, 0x84, 0x20, 0x46, 0xFA, 0xF7, 0xD7, 0xFA, 0x21, 0x46, 0x02, 0x46, 0x30, 0x46, 0xFA, 0xF7, 0xC1, 0xFA, 0x18, 0xB1, 0x01, 0x35, 0x05, 0x2D, 0xF1, 0xD1, 0x00, 0x24, 0x20, 0x46, 0xBD, 0xE8, 0xF0, 0x81, 0x00, 0xBF, 0xE0, 0x15, 0x05, 0x00, 0x2D, 0xE9, 0xF7, 0x4F, 0x80, 0x46, 0x33, 0x48, 0xFF, 0xF7, 0xDE, 0xFF, 0x06, 0x46, 0x98, 0xB9, 0x4F, 0xF0, 0xFF, 0x34, 0xA0, 0x45, 0x51, 0xDA, 0x2E, 0x4D, 0x21, 0x46, 0x01, 0x22, 0x28, 0x46, 0x32, 0x3C, 0xFF, 0xF7, 0x3F, 0xFE, 0xA0, 0x45, 0xF7, 0xDD, 0xE6, 0x20, 0xFA, 0xF7, 0x84, 0xF8, 0x00, 0x20, 0x03, 0xB0, 0xBD, 0xE8, 0xF0, 0x8F, 0x90, 0xF8, 0x20, 0x10, 0x0D, 0xF1, 0x07, 0x02, 0x36, 0x20, 0xFB, 0xF7, 0x7E, 0xF8, 0x00, 0x28, 0xE2, 0xD1, 0x9D, 0xF8, 0x07, 0x40, 0x73, 0x6A, 0x1C, 0x41, 0x14, 0xF0, 0x01, 0x04, 0xDD, 0xD0, 0x0D, 0xF1, 0x07, 0x02, 0x31, 0x7E, 0x36, 0x20, 0xFB, 0xF7, 0x6F, 0xF8, 0x00, 0x28, 0xD3, 0xD1, 0x9D, 0xF8, 0x07, 0x40, 0x07, 0x46, 0xF5, 0x69, 0x81, 0x46, 0x25, 0x40, 0xB4, 0x6A, 0x25, 0x41, 0xEC, 0xB2, 0x05, 0x46, 0xFB, 0xB2, 0x06, 0xEB, 0x03, 0x12, 0x10, 0x6B, 0x00, 0x28, 0xC3, 0xD0, 0x06, 0xEB, 0x03, 0x13, 0xD2, 0xF8, 0x2C, 0xB0, 0x01, 0x37, 0xD3, 0xF8, 0x34, 0xA0, 0x50, 0x44, 0x51, 0x46, 0xA0, 0xEB, 0x0B, 0x00, 0xF9, 0xF7, 0xA7, 0xFD, 0xC0, 0xB2, 0x81, 0x44, 0x5F, 0xFA, 0x89, 0xF9, 0x4C, 0x45, 0x03, 0xD2, 0x65, 0x1B, 0x0A, 0xFB, 0x05, 0xB4, 0xAE, 0xE7, 0x05, 0x44, 0xED, 0xB2, 0xDF, 0xE7, 0xB5, 0xDD, 0x05, 0x4D, 0x21, 0x46, 0x01, 0x22, 0x28, 0x46, 0x32, 0x34, 0xFF, 0xF7, 0xEC, 0xFD, 0xA0, 0x45, 0xF7, 0xDA, 0xAB, 0xE7, 0x00, 0xBF, 0xF1, 0x0F, 0x05, 0x00, 0x01, 0x46, 0x01, 0x22, 0x01, 0x48, 0xFF, 0xF7, 0xE1, 0xBD, 0x00, 0xBF, 0xEB, 0x0F, 0x05, 0x00, 0x0A, 0x46, 0x01, 0x46, 0x01, 0x48, 0xFF, 0xF7, 0xD9, 0xBD, 0x00, 0xBF, 0x44, 0x10, 0x05, 0x00, 0x07, 0xB5, 0x36, 0x21, 0x24, 0x48, 0xFB, 0xF7, 0x1B, 0xF8, 0x28, 0xB1, 0x23, 0x48, 0xFA, 0xF7, 0x6B, 0xFB, 0x4F, 0xF0, 0xFF, 0x30, 0x3A, 0xE0, 0x0D, 0xF1, 0x06, 0x02, 0x03, 0x21, 0x36, 0x20, 0xFB, 0xF7, 0x13, 0xF8, 0x08, 0xB1, 0x1E, 0x48, 0xF1, 0xE7, 0x9D, 0xF8, 0x06, 0x30, 0x03, 0xF0, 0xCF, 0x03, 0x48, 0x2B, 0x8D, 0xF8, 0x06, 0x30, 0x02, 0xD0, 0x4B, 0x3B, 0x01, 0x2B, 0x29, 0xD8, 0x0D, 0xF1, 0x07, 0x02, 0x14, 0x21, 0x36, 0x20, 0xFA, 0xF7, 0xFF, 0xFF, 0xD8, 0xB9, 0x9D, 0xF8, 0x07, 0x20, 0x14, 0x21, 0x36, 0x20, 0x42, 0xF0, 0x80, 0x02, 0x8D, 0xF8, 0x07, 0x20, 0xFA, 0xF7, 0xFE, 0xFF, 0x80, 0xB9, 0x0D, 0xF1, 0x07, 0x02, 0x1A, 0x21, 0x36, 0x20, 0xFA, 0xF7, 0xED, 0xFF, 0x48, 0xB9, 0x9D, 0xF8, 0x07, 0x20, 0x1A, 0x21, 0x36, 0x20, 0x42, 0xF0, 0x02, 0x02, 0x8D, 0xF8, 0x07, 0x20, 0xFA, 0xF7, 0xEC, 0xFF, 0x07, 0x48, 0xFA, 0xF7, 0x2E, 0xFB, 0x48, 0x20, 0x03, 0xB0, 0x5D, 0xF8, 0x04, 0xFB, 0x04, 0x48, 0xBA, 0xE7, 0x80, 0x1A, 0x06, 0x00, 0xF7, 0x0F, 0x05, 0x00, 0x0E, 0x10, 0x05, 0x00, 0x4A, 0x10, 0x05, 0x00, 0x32, 0x10, 0x05, 0x00, 0x01, 0x46, 0x01, 0x22, 0x01, 0x48, 0xFF, 0xF7, 0x0B, 0xBE, 0x00, 0xBF, 0x58, 0x10, 0x05, 0x00, 0x01, 0x46, 0x01, 0x22, 0x01, 0x48, 0xFF, 0xF7, 0x03, 0xBE, 0x00, 0xBF, 0x5E, 0x10, 0x05, 0x00, 0x0A, 0x46, 0x01, 0x46, 0x01, 0x48, 0xFF, 0xF7, 0xFB, 0xBD, 0x00, 0xBF, 0x64, 0x10, 0x05, 0x00, 0x07, 0xB5, 0x36, 0x21, 0x40, 0xF2, 0x45, 0x70, 0xFA, 0xF7, 0xAC, 0xFF, 0x28, 0xB1, 0x2A, 0x48, 0xFA, 0xF7, 0xFC, 0xFA, 0x4F, 0xF0, 0xFF, 0x30, 0x49, 0xE0, 0x0D, 0xF1, 0x06, 0x02, 0x03, 0x21, 0x36, 0x20, 0xFA, 0xF7, 0xA4, 0xFF, 0x08, 0xB1, 0x24, 0x48, 0xF1, 0xE7, 0x9D, 0xF8, 0x06, 0x30, 0x03, 0xF0, 0xCF, 0x03, 0x40, 0x2B, 0x8D, 0xF8, 0x06, 0x30, 0x3B, 0xD1, 0x20, 0x48, 0xFA, 0xF7, 0xE5, 0xFA, 0x0D, 0xF1, 0x07, 0x02, 0x1A, 0x21, 0x36, 0x20, 0xFA, 0xF7, 0x90, 0xFF, 0x68, 0xBB, 0x9D, 0xF8, 0x07, 0x20, 0x1A, 0x21, 0x36, 0x20, 0x42, 0xF0, 0x07, 0x02, 0x8D, 0xF8, 0x07, 0x20, 0xFA, 0xF7, 0x8F, 0xFF, 0x10, 0xBB, 0x0D, 0xF1, 0x07, 0x02, 0x32, 0x21, 0x36, 0x20, 0xFA, 0xF7, 0x7E, 0xFF, 0xD8, 0xB9, 0x9D, 0xF8, 0x07, 0x20, 0x32, 0x21, 0x36, 0x20, 0x42, 0xF0, 0x10, 0x02, 0x8D, 0xF8, 0x07, 0x20, 0xFA, 0xF7, 0x7D, 0xFF, 0x80, 0xB9, 0x0D, 0xF1, 0x07, 0x02, 0x1F, 0x21, 0x36, 0x20, 0xFA, 0xF7, 0x6C, 0xFF, 0x48, 0xB9, 0x9D, 0xF8, 0x07, 0x20, 0x1F, 0x21, 0x36, 0x20, 0x42, 0xF0, 0x80, 0x02, 0x8D, 0xF8, 0x07, 0x20, 0xFA, 0xF7, 0x6B, 0xFF, 0x40, 0x20, 0x03, 0xB0, 0x5D, 0xF8, 0x04, 0xFB, 0x03, 0x48, 0xAB, 0xE7, 0xF7, 0x0F, 0x05, 0x00, 0x0E, 0x10, 0x05, 0x00, 0x6A, 0x10, 0x05, 0x00, 0x32, 0x10, 0x05, 0x00, 0x02, 0x4B, 0x18, 0x68, 0x00, 0xF0, 0x01, 0x00, 0x70, 0x47, 0x00, 0xBF, 0xA0, 0x60, 0x00, 0x03, 0x1D, 0x4B, 0x02, 0x22, 0x10, 0xB5, 0xA0, 0xB0, 0x03, 0xF1, 0xBC, 0x01, 0xD3, 0xF8, 0xB8, 0x00, 0xFA, 0xF7, 0xA6, 0xFA, 0x19, 0x48, 0xFA, 0xF7, 0x8D, 0xFA, 0x19, 0x48, 0xFA, 0xF7, 0x8A, 0xFA, 0x18, 0x48, 0xFA, 0xF7, 0x87, 0xFA, 0x18, 0x48, 0xFA, 0xF7, 0x84, 0xFA, 0x17, 0x48, 0xFA, 0xF7, 0x81, 0xFA, 0x17, 0x48, 0xFA, 0xF7, 0x7E, 0xFA, 0x16, 0x48, 0xFA, 0xF7, 0x7B, 0xFA, 0x16, 0x48, 0xFA, 0xF7, 0x78, 0xFA, 0x13, 0x48, 0xFA, 0xF7, 0x75, 0xFA, 0x0C, 0x48, 0xFA, 0xF7, 0x72, 0xFA, 0xF9, 0xF7, 0x94, 0xFF, 0x04, 0x46, 0x58, 0xB9, 0x80, 0x22, 0x10, 0x49, 0x68, 0x46, 0xFA, 0xF7, 0x4F, 0xF9, 0x69, 0x46, 0x20, 0x46, 0xFF, 0xF7, 0x59, 0xFA, 0x0A, 0x20, 0xF9, 0xF7, 0x20, 0xFF, 0x00, 0x20, 0x20, 0xB0, 0x10, 0xBD, 0x00, 0xBF, 0x00, 0x80, 0x04, 0x00, 0xE4, 0x09, 0x05, 0x00, 0xC1, 0x10, 0x05, 0x00, 0xE6, 0x10, 0x05, 0x00, 0x0B, 0x11, 0x05, 0x00, 0x30, 0x11, 0x05, 0x00, 0x55, 0x11, 0x05, 0x00, 0x7A, 0x11, 0x05, 0x00, 0x9F, 0x11, 0x05, 0x00, 0x40, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x28, 0x28, 0x28, 0x28, 0x28, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0xA0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x10, 0x10, 0x10, 0x10, 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, 0x00, 0xA0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x10, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0xA3, 0x00, 0x00, 0x00, 0x7E, 0x01, 0x00, 0x00, 0x60, 0x02, 0x00, 0x00, 0x2B, 0x03, 0x00, 0x00, 0x1A, 0x04, 0x00, 0x00, 0x23, 0x05, 0x00, 0x00, 0x21, 0x06, 0x00, 0x00, 0x08, 0x07, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x0F, 0x0F, 0x0F, 0x0F, 0x5A, 0x5A, 0x5A, 0x5A, 0x55, 0x55, 0x55, 0x55, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x10, 0x00, 0x04, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x04, 0x00, 0x08, 0x00, 0x04, 0x00, 0x20, 0x00, 0x08, 0x00, 0xD0, 0x02, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x0C, 0x0C, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0A, 0x00, 0x00, 0xFF, 0xFF, 0x87, 0x78, 0xFA, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x39, 0x03, 0x66, 0x2F, 0x40, 0x20, 0x26, 0x26, 0x20, 0x0F, 0x0F, 0x0E, 0x0E, 0x24, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x70, 0x74, 0x65, 0x65, 0x20, 0x74, 0x6F, 0x20, 0x4C, 0x69, 0x6E, 0x75, 0x78, 0x20, 0x28, 0x25, 0x78, 0x29, 0x2E, 0x2E, 0x2E, 0x2C, 0x64, 0x74, 0x62, 0x20, 0x28, 0x25, 0x78, 0x29, 0x0A, 0x00, 0x4A, 0x75, 0x6D, 0x70, 0x20, 0x74, 0x6F, 0x20, 0x4C, 0x69, 0x6E, 0x75, 0x78, 0x20, 0x28, 0x25, 0x78, 0x29, 0x2E, 0x2E, 0x2E, 0x2C, 0x64, 0x74, 0x62, 0x20, 0x28, 0x25, 0x78, 0x29, 0x0A, 0x00, 0x62, 0x6F, 0x61, 0x72, 0x64, 0x20, 0x69, 0x6E, 0x69, 0x74, 0x20, 0x6F, 0x6B, 0x0A, 0x00, 0x55, 0x73, 0x65, 0x20, 0x72, 0x74, 0x63, 0x20, 0x74, 0x6F, 0x20, 0x73, 0x74, 0x6F, 0x72, 0x65, 0x20, 0x64, 0x72, 0x61, 0x6D, 0x20, 0x74, 0x75, 0x6E, 0x69, 0x6E, 0x67, 0x20, 0x70, 0x61, 0x72, 0x61, 0x0A, 0x00, 0x73, 0x65, 0x74, 0x20, 0x61, 0x72, 0x69, 0x73, 0x63, 0x20, 0x72, 0x65, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6F, 0x20, 0x61, 0x73, 0x73, 0x65, 0x72, 0x74, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x0A, 0x00, 0x73, 0x65, 0x74, 0x20, 0x61, 0x72, 0x69, 0x73, 0x63, 0x20, 0x72, 0x65, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6F, 0x20, 0x64, 0x65, 0x2D, 0x61, 0x73, 0x73, 0x65, 0x72, 0x74, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x0A, 0x00, 0x73, 0x65, 0x74, 0x20, 0x70, 0x6C, 0x6C, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x0A, 0x00, 0x70, 0x65, 0x72, 0x69, 0x70, 0x68, 0x30, 0x20, 0x68, 0x61, 0x73, 0x20, 0x62, 0x65, 0x65, 0x6E, 0x20, 0x65, 0x6E, 0x61, 0x62, 0x6C, 0x65, 0x64, 0x0A, 0x00, 0x73, 0x65, 0x74, 0x20, 0x70, 0x6C, 0x6C, 0x20, 0x65, 0x6E, 0x64, 0x0A, 0x00, 0x25, 0x73, 0x00, 0x74, 0x69, 0x6D, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x3A, 0x25, 0x64, 0x0A, 0x00, 0x62, 0x6F, 0x6F, 0x74, 0x20, 0x69, 0x6D, 0x61, 0x67, 0x65, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6B, 0x73, 0x75, 0x6D, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x20, 0x73, 0x75, 0x6D, 0x3D, 0x25, 0x78, 0x20, 0x73, 0x72, 0x63, 0x5F, 0x73, 0x75, 0x6D, 0x3D, 0x25, 0x78, 0x0A, 0x00, 0x6B, 0x65, 0x79, 0x20, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x3A, 0x20, 0x25, 0x63, 0x0A, 0x00, 0x69, 0x6E, 0x62, 0x75, 0x66, 0x3A, 0x25, 0x78, 0x0A, 0x00, 0x25, 0x30, 0x32, 0x78, 0x20, 0x00, 0x25, 0x73, 0x3A, 0x25, 0x75, 0x3A, 0x20, 0x25, 0x73, 0x3A, 0x20, 0x41, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x60, 0x25, 0x73, 0x27, 0x20, 0x66, 0x61, 0x69, 0x6C, 0x65, 0x64, 0x2E, 0x00, 0x46, 0x61, 0x69, 0x6C, 0x20, 0x74, 0x6F, 0x20, 0x6C, 0x6F, 0x61, 0x64, 0x20, 0x6B, 0x65, 0x72, 0x6E, 0x65, 0x6C, 0x20, 0x68, 0x65, 0x61, 0x64, 0x0A, 0x00, 0x41, 0x4E, 0x44, 0x52, 0x4F, 0x49, 0x44, 0x21, 0x00, 0x6B, 0x65, 0x72, 0x6E, 0x65, 0x6C, 0x5F, 0x61, 0x64, 0x64, 0x72, 0x3A, 0x25, 0x78, 0x0A, 0x00, 0x6B, 0x65, 0x72, 0x6E, 0x65, 0x6C, 0x20, 0x6D, 0x61, 0x67, 0x69, 0x63, 0x20, 0x69, 0x73, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x0A, 0x00, 0x6C, 0x6F, 0x61, 0x64, 0x20, 0x62, 0x6F, 0x6F, 0x74, 0x5F, 0x69, 0x6D, 0x61, 0x67, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6C, 0x0A, 0x00, 0x57, 0x61, 0x72, 0x6E, 0x69, 0x6E, 0x67, 0x3A, 0x50, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6B, 0x20, 0x6D, 0x65, 0x6D, 0x6F, 0x72, 0x79, 0x20, 0x21, 0x21, 0x21, 0x0A, 0x00, 0x62, 0x6F, 0x6F, 0x74, 0x2E, 0x69, 0x6D, 0x67, 0x3A, 0x30, 0x78, 0x25, 0x6C, 0x78, 0x2D, 0x30, 0x78, 0x25, 0x6C, 0x78, 0x0A, 0x00, 0x6B, 0x65, 0x72, 0x6E, 0x65, 0x6C, 0x5F, 0x63, 0x6F, 0x64, 0x65, 0x3A, 0x30, 0x78, 0x25, 0x6C, 0x78, 0x2D, 0x30, 0x78, 0x25, 0x6C, 0x78, 0x0A, 0x00, 0x6B, 0x65, 0x72, 0x6E, 0x65, 0x6C, 0x3A, 0x25, 0x78, 0x20, 0x25, 0x78, 0x0A, 0x00, 0x72, 0x61, 0x6D, 0x64, 0x69, 0x73, 0x6B, 0x3A, 0x30, 0x78, 0x25, 0x6C, 0x78, 0x2D, 0x30, 0x78, 0x25, 0x6C, 0x78, 0x0A, 0x00, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0xEF, 0xBC, 0x8C, 0x20, 0x6F, 0x66, 0x66, 0x73, 0x65, 0x74, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x2C, 0x20, 0x76, 0x61, 0x6C, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x0A, 0x00, 0x70, 0x69, 0x6E, 0x20, 0x3D, 0x20, 0x25, 0x64, 0x2C, 0x20, 0x62, 0x61, 0x6E, 0x6B, 0x20, 0x3D, 0x20, 0x25, 0x64, 0x2C, 0x20, 0x26, 0x70, 0x69, 0x6F, 0x2D, 0x3E, 0x63, 0x66, 0x67, 0x5B, 0x30, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x0A, 0x00, 0x72, 0x74, 0x63, 0x5B, 0x25, 0x64, 0x5D, 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0A, 0x00, 0x65, 0x72, 0x61, 0x6C, 0x79, 0x20, 0x6A, 0x75, 0x6D, 0x70, 0x20, 0x66, 0x65, 0x6C, 0x0A, 0x00, 0x63, 0x61, 0x72, 0x73, 0x68, 0x64, 0x75, 0x6D, 0x70, 0x20, 0x6D, 0x6F, 0x64, 0x65, 0x20, 0x2C, 0x20, 0x6A, 0x75, 0x6D, 0x70, 0x20, 0x66, 0x65, 0x6C, 0x0A, 0x00, 0x69, 0x32, 0x63, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x00, 0x72, 0x74, 0x63, 0x20, 0x73, 0x74, 0x61, 0x6E, 0x64, 0x62, 0x79, 0x20, 0x66, 0x6C, 0x61, 0x67, 0x20, 0x69, 0x73, 0x20, 0x30, 0x78, 0x25, 0x78, 0x2C, 0x20, 0x73, 0x75, 0x70, 0x65, 0x72, 0x20, 0x73, 0x74, 0x61, 0x6E, 0x64, 0x62, 0x79, 0x20, 0x66, 0x6C, 0x61, 0x67, 0x20, 0x69, 0x73, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0A, 0x00, 0x73, 0x72, 0x63, 0x3A, 0x30, 0x78, 0x25, 0x78, 0x0A, 0x00, 0x6C, 0x65, 0x6E, 0x20, 0x61, 0x64, 0x64, 0x72, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, 0x78, 0x2C, 0x20, 0x6C, 0x65, 0x6E, 0x3A, 0x30, 0x78, 0x25, 0x78, 0x0A, 0x00, 0x63, 0x72, 0x63, 0x20, 0x66, 0x69, 0x6E, 0x69, 0x73, 0x68, 0x2E, 0x2E, 0x2E, 0x0A, 0x00, 0x62, 0x65, 0x66, 0x6F, 0x72, 0x65, 0x5F, 0x63, 0x72, 0x63, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, 0x78, 0x2C, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5F, 0x63, 0x72, 0x63, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0A, 0x00, 0x64, 0x72, 0x61, 0x6D, 0x20, 0x63, 0x72, 0x63, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x20, 0x2E, 0x2E, 0x2E, 0x0A, 0x00, 0x66, 0x69, 0x6E, 0x64, 0x20, 0x73, 0x74, 0x61, 0x6E, 0x64, 0x62, 0x79, 0x20, 0x66, 0x6C, 0x61, 0x67, 0x2C, 0x20, 0x6A, 0x75, 0x6D, 0x70, 0x20, 0x74, 0x6F, 0x20, 0x61, 0x64, 0x64, 0x72, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0A, 0x00, 0x67, 0x65, 0x74, 0x20, 0x61, 0x64, 0x63, 0x20, 0x74, 0x69, 0x6D, 0x65, 0x20, 0x6F, 0x75, 0x74, 0x21, 0x21, 0x21, 0x0A, 0x00, 0x44, 0x52, 0x41, 0x4D, 0x2E, 0x65, 0x78, 0x74, 0x00, 0x64, 0x72, 0x61, 0x6D, 0x20, 0x70, 0x61, 0x72, 0x61, 0x25, 0x64, 0x20, 0x69, 0x6E, 0x76, 0x61, 0x6C, 0x69, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6C, 0x74, 0x20, 0x70, 0x61, 0x72, 0x61, 0x0A, 0x00, 0x76, 0x61, 0x69, 0x6C, 0x64, 0x20, 0x70, 0x61, 0x72, 0x61, 0x3A, 0x25, 0x64, 0x20, 0x20, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x20, 0x64, 0x72, 0x61, 0x6D, 0x20, 0x70, 0x61, 0x72, 0x61, 0x25, 0x64, 0x0A, 0x00, 0x65, 0x78, 0x74, 0x64, 0x5F, 0x68, 0x65, 0x61, 0x64, 0x20, 0x62, 0x61, 0x64, 0x20, 0x6D, 0x61, 0x67, 0x69, 0x63, 0x0A, 0x00, 0x64, 0x72, 0x61, 0x6D, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, 0x20, 0x6F, 0x6B, 0x0A, 0x00, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x70, 0x61, 0x72, 0x61, 0x5B, 0x25, 0x64, 0x5D, 0x3A, 0x30, 0x78, 0x25, 0x78, 0x0A, 0x00, 0x6E, 0x6F, 0x74, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6F, 0x72, 0x74, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6E, 0x69, 0x6E, 0x67, 0x20, 0x64, 0x72, 0x61, 0x6D, 0x20, 0x69, 0x6E, 0x20, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x62, 0x6F, 0x61, 0x72, 0x64, 0x0A, 0x00, 0x5B, 0x57, 0x41, 0x52, 0x4E, 0x49, 0x4E, 0x47, 0x20, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x4C, 0x63, 0x6C, 0x6B, 0x2C, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x2C, 0x4D, 0x65, 0x6D, 0x74, 0x65, 0x73, 0x74, 0x20, 0x46, 0x61, 0x69, 0x6C, 0x0A, 0x00, 0x5B, 0x45, 0x52, 0x52, 0x4F, 0x52, 0x20, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x4C, 0x63, 0x6C, 0x6B, 0x2C, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x2C, 0x4D, 0x65, 0x6D, 0x74, 0x65, 0x73, 0x74, 0x20, 0x53, 0x74, 0x69, 0x6C, 0x6C, 0x20, 0x45, 0x72, 0x72, 0x6F, 0x72, 0x21, 0x0A, 0x00, 0x5B, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x4C, 0x63, 0x6C, 0x6B, 0x2C, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x2C, 0x4D, 0x65, 0x6D, 0x74, 0x65, 0x73, 0x74, 0x20, 0x50, 0x61, 0x73, 0x73, 0x0A, 0x00, 0x5B, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x43, 0x6C, 0x6B, 0x20, 0x3D, 0x25, 0x64, 0x20, 0x4D, 0x48, 0x7A, 0x0A, 0x00, 0x5B, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x52, 0x5F, 0x32, 0x64, 0x0A, 0x00, 0x5B, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x52, 0x5F, 0x32, 0x64, 0x5F, 0x68, 0x76, 0x5F, 0x44, 0x25, 0x64, 0x3A, 0x30, 0x78, 0x25, 0x78, 0x2D, 0x30, 0x78, 0x25, 0x78, 0x2C, 0x30, 0x78, 0x25, 0x78, 0x28, 0x25, 0x64, 0x6D, 0x56, 0x29, 0x2C, 0x25, 0x64, 0x0A, 0x00, 0x5B, 0x45, 0x52, 0x52, 0x4F, 0x52, 0x20, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x52, 0x5F, 0x32, 0x64, 0x5F, 0x68, 0x20, 0x3C, 0x20, 0x25, 0x64, 0x0A, 0x21, 0x00, 0x5B, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x52, 0x5F, 0x32, 0x64, 0x5F, 0x68, 0x76, 0x5F, 0x44, 0x25, 0x64, 0x3A, 0x30, 0x78, 0x25, 0x78, 0x7E, 0x30, 0x78, 0x25, 0x78, 0x2C, 0x30, 0x78, 0x25, 0x78, 0x0A, 0x00, 0x5B, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x52, 0x5F, 0x32, 0x64, 0x20, 0x74, 0x70, 0x72, 0x36, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x0A, 0x00, 0x5B, 0x45, 0x52, 0x52, 0x4F, 0x52, 0x20, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x44, 0x72, 0x61, 0x6D, 0x20, 0x49, 0x6E, 0x69, 0x74, 0x20, 0x46, 0x61, 0x69, 0x6C, 0x21, 0x0A, 0x00, 0x5B, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x52, 0x5F, 0x31, 0x73, 0x74, 0x0A, 0x00, 0x5B, 0x57, 0x41, 0x52, 0x4E, 0x49, 0x4E, 0x47, 0x20, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x44, 0x42, 0x25, 0x64, 0x20, 0x66, 0x61, 0x6B, 0x65, 0x20, 0x52, 0x5F, 0x31, 0x73, 0x74, 0x20, 0x3C, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x5B, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x44, 0x42, 0x25, 0x64, 0x20, 0x52, 0x5F, 0x31, 0x73, 0x74, 0x3A, 0x25, 0x64, 0x2C, 0x25, 0x64, 0x7E, 0x25, 0x64, 0x2C, 0x25, 0x64, 0x2C, 0x30, 0x78, 0x25, 0x30, 0x32, 0x78, 0x0A, 0x00, 0x5B, 0x45, 0x52, 0x52, 0x4F, 0x52, 0x20, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x44, 0x42, 0x25, 0x64, 0x20, 0x52, 0x5F, 0x31, 0x73, 0x74, 0x20, 0x3C, 0x3D, 0x20, 0x25, 0x64, 0x20, 0x70, 0x73, 0x0A, 0x00, 0x5B, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x52, 0x5F, 0x31, 0x73, 0x74, 0x20, 0x54, 0x70, 0x72, 0x31, 0x32, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x0A, 0x00, 0x5B, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x57, 0x5F, 0x32, 0x64, 0x0A, 0x00, 0x5B, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x57, 0x5F, 0x32, 0x64, 0x5F, 0x68, 0x76, 0x5F, 0x44, 0x25, 0x64, 0x3A, 0x30, 0x78, 0x25, 0x78, 0x2D, 0x30, 0x78, 0x25, 0x78, 0x2C, 0x30, 0x78, 0x25, 0x78, 0x28, 0x25, 0x64, 0x6D, 0x56, 0x29, 0x2C, 0x25, 0x64, 0x0A, 0x00, 0x5B, 0x45, 0x52, 0x52, 0x4F, 0x52, 0x20, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x57, 0x5F, 0x32, 0x64, 0x5F, 0x68, 0x20, 0x3C, 0x20, 0x25, 0x64, 0x0A, 0x21, 0x00, 0x5B, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x57, 0x5F, 0x32, 0x64, 0x5F, 0x68, 0x76, 0x5F, 0x44, 0x25, 0x64, 0x3A, 0x30, 0x78, 0x25, 0x78, 0x7E, 0x30, 0x78, 0x25, 0x78, 0x2C, 0x30, 0x78, 0x25, 0x78, 0x0A, 0x00, 0x5B, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x57, 0x5F, 0x32, 0x64, 0x20, 0x6D, 0x72, 0x36, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0A, 0x00, 0x5B, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x57, 0x5F, 0x32, 0x64, 0x20, 0x6D, 0x72, 0x31, 0x34, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0A, 0x00, 0x5B, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x57, 0x5F, 0x32, 0x73, 0x74, 0x0A, 0x00, 0x5B, 0x57, 0x41, 0x52, 0x4E, 0x49, 0x4E, 0x47, 0x20, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x44, 0x42, 0x25, 0x64, 0x20, 0x66, 0x61, 0x6B, 0x65, 0x20, 0x57, 0x5F, 0x32, 0x73, 0x74, 0x20, 0x3C, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x5B, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x44, 0x42, 0x25, 0x64, 0x20, 0x57, 0x5F, 0x32, 0x73, 0x74, 0x3A, 0x25, 0x64, 0x2C, 0x25, 0x64, 0x7E, 0x25, 0x64, 0x2C, 0x25, 0x64, 0x2C, 0x30, 0x78, 0x25, 0x30, 0x32, 0x78, 0x0A, 0x00, 0x5B, 0x45, 0x52, 0x52, 0x4F, 0x52, 0x20, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x44, 0x42, 0x25, 0x64, 0x20, 0x57, 0x5F, 0x32, 0x73, 0x74, 0x20, 0x3C, 0x3D, 0x20, 0x25, 0x64, 0x20, 0x70, 0x73, 0x0A, 0x00, 0x5B, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x57, 0x5F, 0x32, 0x73, 0x74, 0x20, 0x54, 0x70, 0x72, 0x31, 0x31, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x0A, 0x00, 0x5B, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x52, 0x5F, 0x32, 0x73, 0x74, 0x0A, 0x00, 0x5B, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x44, 0x42, 0x25, 0x64, 0x20, 0x52, 0x5F, 0x32, 0x73, 0x74, 0x3A, 0x25, 0x64, 0x2C, 0x25, 0x64, 0x7E, 0x25, 0x64, 0x2C, 0x25, 0x64, 0x2C, 0x30, 0x78, 0x25, 0x30, 0x32, 0x78, 0x0A, 0x00, 0x5B, 0x45, 0x52, 0x52, 0x4F, 0x52, 0x20, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x44, 0x42, 0x25, 0x64, 0x20, 0x52, 0x5F, 0x32, 0x73, 0x74, 0x20, 0x3C, 0x3D, 0x20, 0x25, 0x64, 0x20, 0x70, 0x73, 0x0A, 0x00, 0x5B, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x52, 0x5F, 0x32, 0x73, 0x74, 0x20, 0x54, 0x70, 0x72, 0x31, 0x32, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x0A, 0x00, 0x5B, 0x45, 0x52, 0x52, 0x4F, 0x52, 0x20, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x52, 0x56, 0x5F, 0x43, 0x2C, 0x20, 0x44, 0x42, 0x25, 0x64, 0x2C, 0x20, 0x56, 0x3A, 0x30, 0x78, 0x25, 0x30, 0x78, 0x2C, 0x20, 0x44, 0x3A, 0x25, 0x64, 0x0A, 0x00, 0x5B, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x52, 0x56, 0x5F, 0x43, 0x2C, 0x20, 0x56, 0x57, 0x3A, 0x30, 0x78, 0x25, 0x78, 0x2D, 0x30, 0x78, 0x25, 0x78, 0x2C, 0x20, 0x44, 0x57, 0x3A, 0x25, 0x64, 0x70, 0x73, 0x0A, 0x00, 0x5B, 0x45, 0x52, 0x52, 0x4F, 0x52, 0x20, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x57, 0x56, 0x5F, 0x43, 0x2C, 0x20, 0x44, 0x42, 0x25, 0x64, 0x2C, 0x20, 0x56, 0x3A, 0x30, 0x78, 0x25, 0x30, 0x78, 0x2C, 0x20, 0x44, 0x3A, 0x25, 0x64, 0x0A, 0x00, 0x5B, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x57, 0x56, 0x5F, 0x43, 0x2C, 0x20, 0x56, 0x57, 0x3A, 0x30, 0x78, 0x25, 0x78, 0x2D, 0x30, 0x78, 0x25, 0x78, 0x2C, 0x20, 0x44, 0x57, 0x3A, 0x25, 0x64, 0x70, 0x73, 0x0A, 0x00, 0x52, 0x65, 0x61, 0x64, 0x20, 0x25, 0x78, 0x20, 0x21, 0x3D, 0x20, 0x25, 0x78, 0x0A, 0x00, 0x5B, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x44, 0x72, 0x61, 0x6D, 0x20, 0x44, 0x53, 0x54, 0x20, 0x4C, 0x6F, 0x6F, 0x70, 0x25, 0x64, 0x0A, 0x00, 0x5B, 0x45, 0x52, 0x52, 0x4F, 0x52, 0x20, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x53, 0x74, 0x61, 0x62, 0x6C, 0x65, 0x20, 0x4D, 0x65, 0x6D, 0x74, 0x65, 0x73, 0x74, 0x20, 0x46, 0x61, 0x69, 0x6C, 0x0A, 0x00, 0x5B, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x44, 0x72, 0x61, 0x6D, 0x20, 0x44, 0x53, 0x54, 0x20, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x0A, 0x00, 0x5B, 0x57, 0x41, 0x52, 0x4E, 0x49, 0x4E, 0x47, 0x20, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x20, 0x74, 0x6F, 0x20, 0x73, 0x65, 0x6E, 0x64, 0x20, 0x62, 0x61, 0x63, 0x6B, 0x20, 0x74, 0x6F, 0x20, 0x41, 0x6C, 0x6C, 0x77, 0x69, 0x6E, 0x6E, 0x65, 0x72, 0x20, 0x66, 0x6F, 0x72, 0x20, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x21, 0x0A, 0x0A, 0x00, 0x5B, 0x45, 0x52, 0x52, 0x4F, 0x52, 0x20, 0x44, 0x53, 0x54, 0x5D, 0x20, 0x44, 0x72, 0x61, 0x6D, 0x20, 0x44, 0x53, 0x54, 0x20, 0x46, 0x61, 0x69, 0x6C, 0x0A, 0x00, 0x44, 0x52, 0x41, 0x4D, 0x20, 0x73, 0x69, 0x6D, 0x70, 0x6C, 0x65, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x46, 0x41, 0x49, 0x4C, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x25, 0x78, 0x20, 0x21, 0x3D, 0x20, 0x25, 0x78, 0x20, 0x61, 0x74, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x25, 0x78, 0x0A, 0x00, 0x44, 0x52, 0x41, 0x4D, 0x20, 0x73, 0x69, 0x6D, 0x70, 0x6C, 0x65, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x4F, 0x4B, 0x2E, 0x0A, 0x00, 0x50, 0x4F, 0x57, 0x45, 0x52, 0x20, 0x53, 0x45, 0x54, 0x54, 0x49, 0x4E, 0x47, 0x20, 0x45, 0x52, 0x52, 0x4F, 0x52, 0x21, 0x0A, 0x00, 0x44, 0x52, 0x41, 0x4D, 0x5F, 0x56, 0x43, 0x43, 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6F, 0x20, 0x25, 0x64, 0x20, 0x6D, 0x76, 0x0A, 0x00, 0x64, 0x78, 0x5F, 0x6C, 0x6F, 0x77, 0x20, 0x31, 0x36, 0x62, 0x69, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6E, 0x69, 0x6E, 0x67, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x20, 0x20, 0x0A, 0x00, 0x64, 0x78, 0x5F, 0x68, 0x69, 0x67, 0x68, 0x20, 0x31, 0x36, 0x62, 0x69, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6E, 0x69, 0x6E, 0x67, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x20, 0x20, 0x0A, 0x00, 0x72, 0x65, 0x61, 0x64, 0x20, 0x64, 0x78, 0x30, 0x5F, 0x64, 0x71, 0x25, 0x64, 0x20, 0x64, 0x65, 0x6C, 0x61, 0x79, 0x5F, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5F, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x20, 0x3D, 0x30, 0x78, 0x25, 0x78, 0x20, 0x0A, 0x00, 0x72, 0x65, 0x61, 0x64, 0x20, 0x64, 0x78, 0x31, 0x5F, 0x64, 0x71, 0x25, 0x64, 0x20, 0x64, 0x65, 0x6C, 0x61, 0x79, 0x5F, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5F, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x20, 0x3D, 0x30, 0x78, 0x25, 0x78, 0x20, 0x0A, 0x00, 0x72, 0x65, 0x61, 0x64, 0x20, 0x64, 0x78, 0x32, 0x5F, 0x64, 0x71, 0x25, 0x64, 0x20, 0x64, 0x65, 0x6C, 0x61, 0x79, 0x5F, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5F, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x20, 0x3D, 0x30, 0x78, 0x25, 0x78, 0x20, 0x0A, 0x00, 0x72, 0x65, 0x61, 0x64, 0x20, 0x64, 0x78, 0x33, 0x5F, 0x64, 0x71, 0x25, 0x64, 0x20, 0x64, 0x65, 0x6C, 0x61, 0x79, 0x5F, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5F, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x20, 0x3D, 0x30, 0x78, 0x25, 0x78, 0x20, 0x0A, 0x00, 0x64, 0x78, 0x5F, 0x6C, 0x6F, 0x77, 0x20, 0x31, 0x36, 0x62, 0x69, 0x74, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6E, 0x69, 0x6E, 0x67, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x20, 0x20, 0x0A, 0x00, 0x64, 0x78, 0x5F, 0x68, 0x69, 0x67, 0x68, 0x20, 0x31, 0x36, 0x62, 0x69, 0x74, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6E, 0x69, 0x6E, 0x67, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x20, 0x20, 0x0A, 0x00, 0x77, 0x72, 0x69, 0x74, 0x65, 0x20, 0x64, 0x78, 0x30, 0x5F, 0x64, 0x71, 0x25, 0x64, 0x20, 0x64, 0x65, 0x6C, 0x61, 0x79, 0x5F, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5F, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x20, 0x3D, 0x30, 0x78, 0x25, 0x78, 0x20, 0x0A, 0x00, 0x77, 0x72, 0x69, 0x74, 0x65, 0x20, 0x64, 0x78, 0x31, 0x5F, 0x64, 0x71, 0x25, 0x64, 0x20, 0x64, 0x65, 0x6C, 0x61, 0x79, 0x5F, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5F, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x20, 0x3D, 0x30, 0x78, 0x25, 0x78, 0x20, 0x0A, 0x00, 0x77, 0x72, 0x69, 0x74, 0x65, 0x20, 0x64, 0x78, 0x32, 0x5F, 0x64, 0x71, 0x25, 0x64, 0x20, 0x64, 0x65, 0x6C, 0x61, 0x79, 0x5F, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5F, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x20, 0x3D, 0x30, 0x78, 0x25, 0x78, 0x20, 0x0A, 0x00, 0x77, 0x72, 0x69, 0x74, 0x65, 0x20, 0x64, 0x78, 0x33, 0x5F, 0x64, 0x71, 0x25, 0x64, 0x20, 0x64, 0x65, 0x6C, 0x61, 0x79, 0x5F, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5F, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x20, 0x3D, 0x30, 0x78, 0x25, 0x78, 0x20, 0x0A, 0x00, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x20, 0x30, 0x78, 0x32, 0x64, 0x20, 0x3D, 0x20, 0x25, 0x78, 0x20, 0x0A, 0x00, 0x54, 0x68, 0x65, 0x20, 0x70, 0x75, 0x6C, 0x6C, 0x20, 0x64, 0x6F, 0x77, 0x6E, 0x20, 0x64, 0x72, 0x69, 0x20, 0x3D, 0x20, 0x25, 0x78, 0x20, 0x0A, 0x00, 0x54, 0x68, 0x65, 0x20, 0x70, 0x75, 0x6C, 0x6C, 0x20, 0x75, 0x70, 0x20, 0x64, 0x72, 0x69, 0x20, 0x3D, 0x20, 0x25, 0x78, 0x20, 0x0A, 0x00, 0x54, 0x68, 0x65, 0x20, 0x70, 0x75, 0x6C, 0x6C, 0x20, 0x64, 0x6F, 0x77, 0x6E, 0x20, 0x6F, 0x64, 0x74, 0x20, 0x3D, 0x20, 0x25, 0x78, 0x20, 0x0A, 0x00, 0x54, 0x68, 0x65, 0x20, 0x70, 0x75, 0x6C, 0x6C, 0x20, 0x75, 0x70, 0x20, 0x6F, 0x64, 0x74, 0x20, 0x3D, 0x20, 0x25, 0x78, 0x20, 0x0A, 0x00, 0x54, 0x68, 0x65, 0x20, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x64, 0x78, 0x5F, 0x64, 0x72, 0x69, 0x20, 0x20, 0x3D, 0x20, 0x25, 0x78, 0x20, 0x0A, 0x00, 0x54, 0x68, 0x65, 0x20, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x63, 0x61, 0x5F, 0x64, 0x72, 0x69, 0x20, 0x20, 0x3D, 0x20, 0x25, 0x78, 0x20, 0x0A, 0x00, 0x54, 0x68, 0x65, 0x20, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x64, 0x78, 0x5F, 0x6F, 0x64, 0x74, 0x20, 0x20, 0x3D, 0x20, 0x25, 0x78, 0x20, 0x0A, 0x00, 0x5B, 0x41, 0x55, 0x54, 0x4F, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5D, 0x33, 0x32, 0x62, 0x69, 0x74, 0x2C, 0x32, 0x20, 0x72, 0x61, 0x6E, 0x6B, 0x73, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6E, 0x69, 0x6E, 0x67, 0x20, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x21, 0x0A, 0x00, 0x5B, 0x41, 0x55, 0x54, 0x4F, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5D, 0x33, 0x32, 0x62, 0x69, 0x74, 0x2C, 0x31, 0x20, 0x72, 0x61, 0x6E, 0x6B, 0x73, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6E, 0x69, 0x6E, 0x67, 0x20, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x21, 0x0A, 0x00, 0x5B, 0x41, 0x55, 0x54, 0x4F, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5D, 0x31, 0x36, 0x20, 0x62, 0x69, 0x74, 0x2C, 0x32, 0x20, 0x72, 0x61, 0x6E, 0x6B, 0x73, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6E, 0x69, 0x6E, 0x67, 0x20, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x21, 0x0A, 0x00, 0x5B, 0x41, 0x55, 0x54, 0x4F, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5D, 0x31, 0x36, 0x20, 0x62, 0x69, 0x74, 0x2C, 0x31, 0x20, 0x72, 0x61, 0x6E, 0x6B, 0x73, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6E, 0x69, 0x6E, 0x67, 0x20, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x21, 0x0A, 0x00, 0x5B, 0x41, 0x55, 0x54, 0x4F, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5D, 0x33, 0x47, 0x42, 0x20, 0x61, 0x75, 0x74, 0x6F, 0x73, 0x63, 0x61, 0x6E, 0x20, 0x65, 0x6E, 0x61, 0x62, 0x6C, 0x65, 0x2C, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x74, 0x70, 0x72, 0x31, 0x33, 0x20, 0x3D, 0x20, 0x25, 0x78, 0x0A, 0x00, 0x5B, 0x41, 0x55, 0x54, 0x4F, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5D, 0x31, 0x2E, 0x35, 0x47, 0x42, 0x20, 0x61, 0x75, 0x74, 0x6F, 0x73, 0x63, 0x61, 0x6E, 0x20, 0x65, 0x6E, 0x61, 0x62, 0x6C, 0x65, 0x2C, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x74, 0x70, 0x72, 0x31, 0x33, 0x20, 0x3D, 0x20, 0x25, 0x78, 0x0A, 0x00, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5F, 0x6C, 0x65, 0x76, 0x65, 0x6C, 0x69, 0x6E, 0x67, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x20, 0x0A, 0x00, 0x72, 0x65, 0x61, 0x64, 0x5F, 0x63, 0x61, 0x6C, 0x69, 0x62, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x20, 0x0A, 0x00, 0x72, 0x65, 0x61, 0x64, 0x5F, 0x74, 0x72, 0x61, 0x69, 0x6E, 0x69, 0x6E, 0x67, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x20, 0x0A, 0x00, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5F, 0x74, 0x72, 0x61, 0x69, 0x6E, 0x69, 0x6E, 0x67, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x20, 0x0A, 0x00, 0x72, 0x65, 0x74, 0x72, 0x61, 0x69, 0x6E, 0x69, 0x6E, 0x67, 0x20, 0x66, 0x69, 0x6E, 0x61, 0x6C, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x20, 0x0A, 0x00, 0x56, 0x30, 0x2E, 0x36, 0x35, 0x31, 0x00, 0x44, 0x52, 0x41, 0x4D, 0x20, 0x42, 0x4F, 0x4F, 0x54, 0x20, 0x44, 0x52, 0x49, 0x56, 0x45, 0x20, 0x49, 0x4E, 0x46, 0x4F, 0x3A, 0x20, 0x25, 0x73, 0x0A, 0x00, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x70, 0x20, 0x69, 0x64, 0x20, 0x69, 0x73, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0A, 0x00, 0x69, 0x63, 0x20, 0x63, 0x61, 0x6E, 0x74, 0x20, 0x6D, 0x61, 0x74, 0x63, 0x68, 0x20, 0x61, 0x78, 0x70, 0x2C, 0x20, 0x70, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6B, 0x2E, 0x2E, 0x2E, 0x0A, 0x00, 0x63, 0x68, 0x69, 0x70, 0x20, 0x69, 0x64, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6B, 0x20, 0x4F, 0x4B, 0x0A, 0x00, 0x44, 0x52, 0x41, 0x4D, 0x20, 0x43, 0x4C, 0x4B, 0x20, 0x3D, 0x25, 0x64, 0x20, 0x4D, 0x48, 0x5A, 0x0A, 0x00, 0x44, 0x52, 0x41, 0x4D, 0x20, 0x54, 0x79, 0x70, 0x65, 0x20, 0x3D, 0x25, 0x64, 0x20, 0x28, 0x33, 0x3A, 0x44, 0x44, 0x52, 0x33, 0x2C, 0x34, 0x3A, 0x44, 0x44, 0x52, 0x34, 0x2C, 0x37, 0x3A, 0x4C, 0x50, 0x44, 0x44, 0x52, 0x33, 0x2C, 0x38, 0x3A, 0x4C, 0x50, 0x44, 0x44, 0x52, 0x34, 0x29, 0x0A, 0x00, 0x44, 0x52, 0x41, 0x4D, 0x20, 0x69, 0x6E, 0x69, 0x74, 0x69, 0x61, 0x6C, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x20, 0x3A, 0x20, 0x31, 0x20, 0x21, 0x0A, 0x00, 0x4E, 0x4F, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6F, 0x72, 0x74, 0x20, 0x66, 0x6F, 0x72, 0x20, 0x6D, 0x6F, 0x72, 0x65, 0x20, 0x74, 0x68, 0x61, 0x6E, 0x20, 0x32, 0x30, 0x34, 0x38, 0x4D, 0x0A, 0x00, 0x41, 0x63, 0x74, 0x75, 0x61, 0x6C, 0x20, 0x44, 0x52, 0x41, 0x4D, 0x20, 0x53, 0x49, 0x5A, 0x45, 0x20, 0x3D, 0x25, 0x64, 0x20, 0x4D, 0x0A, 0x00, 0x44, 0x52, 0x41, 0x4D, 0x20, 0x53, 0x49, 0x5A, 0x45, 0x20, 0x3D, 0x25, 0x64, 0x20, 0x4D, 0x42, 0x79, 0x74, 0x65, 0x73, 0x2C, 0x20, 0x70, 0x61, 0x72, 0x61, 0x31, 0x20, 0x3D, 0x20, 0x25, 0x78, 0x2C, 0x20, 0x70, 0x61, 0x72, 0x61, 0x32, 0x20, 0x3D, 0x20, 0x25, 0x78, 0x2C, 0x20, 0x64, 0x72, 0x61, 0x6D, 0x5F, 0x74, 0x70, 0x72, 0x31, 0x33, 0x20, 0x3D, 0x20, 0x25, 0x78, 0x0A, 0x00, 0x64, 0x63, 0x64, 0x63, 0x35, 0x00, 0x61, 0x6C, 0x64, 0x6F, 0x35, 0x00, 0x64, 0x63, 0x64, 0x63, 0x32, 0x00, 0x64, 0x63, 0x64, 0x63, 0x33, 0x00, 0x5B, 0x70, 0x6D, 0x75, 0x5D, 0x3A, 0x20, 0x62, 0x75, 0x73, 0x20, 0x69, 0x6E, 0x69, 0x74, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x0A, 0x00, 0x5B, 0x70, 0x6D, 0x75, 0x5D, 0x3A, 0x20, 0x62, 0x75, 0x73, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x0A, 0x00, 0x50, 0x4D, 0x55, 0x3A, 0x20, 0x41, 0x58, 0x50, 0x38, 0x35, 0x38, 0x0A, 0x00, 0x75, 0x6E, 0x6B, 0x6E, 0x6F, 0x77, 0x20, 0x50, 0x4D, 0x55, 0x0A, 0x00, 0x61, 0x6C, 0x64, 0x6F, 0x31, 0x00, 0x64, 0x63, 0x64, 0x63, 0x31, 0x00, 0x50, 0x4D, 0x55, 0x3A, 0x20, 0x41, 0x58, 0x50, 0x31, 0x35, 0x33, 0x30, 0x0A, 0x00, 0x64, 0x63, 0x64, 0x63, 0x64, 0x00, 0x64, 0x63, 0x64, 0x63, 0x61, 0x00, 0x64, 0x63, 0x64, 0x63, 0x63, 0x00, 0x50, 0x4D, 0x55, 0x3A, 0x20, 0x41, 0x58, 0x50, 0x38, 0x30, 0x36, 0x0A, 0x00, 0x62, 0x75, 0x72, 0x6E, 0x20, 0x66, 0x69, 0x6E, 0x69, 0x73, 0x68, 0x65, 0x64, 0x2C, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x6D, 0x6F, 0x64, 0x65, 0x3A, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x72, 0x65, 0x61, 0x64, 0x20, 0x72, 0x65, 0x67, 0x5F, 0x76, 0x61, 0x6C, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0A, 0x00, 0x77, 0x72, 0x69, 0x74, 0x65, 0x20, 0x72, 0x65, 0x67, 0x5F, 0x76, 0x61, 0x6C, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0A, 0x00, 0x20, 0x5F, 0x5F, 0x5F, 0x5F, 0x5F, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5F, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5F, 0x5F, 0x5F, 0x5F, 0x5F, 0x20, 0x5F, 0x20, 0x5F, 0x20, 0x20, 0x20, 0x0A, 0x00, 0x7C, 0x20, 0x20, 0x20, 0x5F, 0x5F, 0x7C, 0x5F, 0x20, 0x5F, 0x7C, 0x20, 0x7C, 0x5F, 0x20, 0x5F, 0x5F, 0x5F, 0x20, 0x5F, 0x5F, 0x5F, 0x7C, 0x20, 0x20, 0x7C, 0x20, 0x20, 0x7C, 0x5F, 0x7C, 0x20, 0x7C, 0x5F, 0x20, 0x0A, 0x00, 0x7C, 0x5F, 0x5F, 0x20, 0x20, 0x20, 0x7C, 0x20, 0x7C, 0x20, 0x7C, 0x20, 0x20, 0x5F, 0x7C, 0x20, 0x2D, 0x5F, 0x7C, 0x20, 0x20, 0x5F, 0x7C, 0x20, 0x20, 0x20, 0x20, 0x2D, 0x7C, 0x20, 0x7C, 0x20, 0x5F, 0x7C, 0x20, 0x0A, 0x00, 0x7C, 0x5F, 0x5F, 0x5F, 0x5F, 0x5F, 0x7C, 0x5F, 0x20, 0x20, 0x7C, 0x5F, 0x7C, 0x20, 0x7C, 0x5F, 0x5F, 0x5F, 0x7C, 0x5F, 0x7C, 0x20, 0x7C, 0x5F, 0x5F, 0x7C, 0x5F, 0x5F, 0x7C, 0x5F, 0x7C, 0x5F, 0x7C, 0x20, 0x20, 0x0A, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7C, 0x5F, 0x5F, 0x5F, 0x7C, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x00, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x0A, 0x00, 0x20, 0x56, 0x30, 0x2E, 0x32, 0x2E, 0x30, 0x20, 0x46, 0x6F, 0x72, 0x20, 0x58, 0x46, 0x45, 0x4C, 0x20, 0x48, 0x36, 0x31, 0x38, 0x20, 0x44, 0x52, 0x41, 0x4D, 0x20, 0x69, 0x6E, 0x69, 0x74, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x03, 0x01, 0x00, 0x00, 0x06, 0x00, 0x0C, 0x01, 0x03, 0x01, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x03, 0x01, 0x00, 0x00, 0x06, 0x00, 0x0C, 0x01, 0x03, 0x01, 0x00, 0x00, 0x06, 0x00, 0x16, 0x00, 0x02, 0xF1, 0x94, 0x30, 0x9F, 0xE5, 0x30, 0x3F, 0x0C, 0xEE, 0x90, 0x10, 0x9F, 0xE5, 0x90, 0x20, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3, 0x04, 0x30, 0x81, 0xE4, 0x01, 0x00, 0x52, 0xE1, 0xFC, 0xFF, 0xFF, 0x1A, 0x00, 0x10, 0x0F, 0xE1, 0x7C, 0x20, 0x9F, 0xE5, 0x02, 0x10, 0xC1, 0xE1, 0x06, 0x1D, 0x81, 0xE3, 0x13, 0x10, 0x81, 0xE3, 0x70, 0xD0, 0x9F, 0xE5, 0xFF, 0x7F, 0x4D, 0xE9, 0x0C, 0x60, 0x8D, 0xE2, 0x12, 0x00, 0x02, 0xF1, 0x00, 0xC0, 0x4F, 0xE1, 0x00, 0x70, 0xA6, 0xE8, 0x13, 0x00, 0x02, 0xF1, 0x00, 0xC0, 0x4F, 0xE1, 0x00, 0x70, 0xA6, 0xE8, 0x17, 0x00, 0x02, 0xF1, 0x00, 0xC0, 0x4F, 0xE1, 0x00, 0x70, 0xA6, 0xE8, 0x1B, 0x00, 0x02, 0xF1, 0x00, 0xC0, 0x4F, 0xE1, 0x00, 0x70, 0xA6, 0xE8, 0x11, 0x00, 0x02, 0xF1, 0x00, 0x70, 0x4F, 0xE1, 0x80, 0x7F, 0x86, 0xE8, 0x16, 0x00, 0x02, 0xF1, 0x03, 0x00, 0xAD, 0xE8, 0x24, 0xD0, 0x9F, 0xE5, 0x00, 0xE0, 0xA0, 0xE3, 0x30, 0x00, 0xA0, 0xE3, 0x11, 0x0F, 0x01, 0xEE, 0x13, 0x00, 0x02, 0xF1, 0x1E, 0xFF, 0x2F, 0xE1, 0xC0, 0x00, 0x03, 0x00, 0x14, 0x01, 0x03, 0x00, 0x44, 0x02, 0x03, 0x00, 0x7F, 0x02, 0x0F, 0xF9, 0x50, 0x01, 0x03, 0x00, 0xE8, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xEA, 0x05, 0x00, 0x00, 0xEA, 0x05, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA, 0x02, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x00, 0xEA, 0xFF, 0xFF, 0xFF, 0xEA, 0xFE, 0xFF, 0xFF, 0xEA, 0x16, 0x05, 0xCD, 0xF8, 0x11, 0xEF, 0x11, 0xEE, 0x01, 0x00, 0x1E, 0xE3, 0x04, 0x00, 0x00, 0x1A, 0x31, 0xE0, 0xA0, 0xE3, 0x11, 0xEF, 0x01, 0xEE, 0x00, 0xE0, 0xA0, 0xE3, 0xD5, 0xEF, 0x07, 0xEE, 0x00, 0x0A, 0x9D, 0xF8, 0x30, 0xE0, 0xA0, 0xE3, 0x11, 0xEF, 0x01, 0xEE, 0x00, 0x0A, 0x9D, 0xF8, 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, 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, 0x01, 0x00, 0x00, 0x00, 0x64, 0x63, 0x64, 0x63, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0x01, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0x01, 0x00, 0x00, 0xB0, 0x04, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x04, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x14, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x63, 0x64, 0x63, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0x01, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0x01, 0x00, 0x00, 0xB0, 0x04, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x04, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x14, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x63, 0x64, 0x63, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0x01, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0x01, 0x00, 0x00, 0xB0, 0x04, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x04, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x14, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x63, 0x64, 0x63, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x03, 0x00, 0x00, 0x30, 0x07, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x03, 0x00, 0x00, 0x60, 0x04, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x04, 0x00, 0x00, 0x30, 0x07, 0x00, 0x00, 0x14, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x6C, 0x64, 0x6F, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBC, 0x02, 0x00, 0x00, 0xE4, 0x0C, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBC, 0x02, 0x00, 0x00, 0xE4, 0x0C, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x6C, 0x64, 0x6F, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBC, 0x02, 0x00, 0x00, 0xE4, 0x0C, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBC, 0x02, 0x00, 0x00, 0xE4, 0x0C, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x63, 0x64, 0x63, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0x01, 0x00, 0x00, 0x48, 0x0D, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0x01, 0x00, 0x00, 0xB0, 0x04, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x04, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x06, 0x00, 0x00, 0x48, 0x0D, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x63, 0x64, 0x63, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0x01, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0x01, 0x00, 0x00, 0xB0, 0x04, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x04, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x14, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x63, 0x64, 0x63, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0x01, 0x00, 0x00, 0x30, 0x07, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0x01, 0x00, 0x00, 0xB0, 0x04, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x04, 0x00, 0x00, 0x30, 0x07, 0x00, 0x00, 0x14, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x6C, 0x64, 0x6F, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0x01, 0x00, 0x00, 0xAC, 0x0D, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0x01, 0x00, 0x00, 0xAC, 0x0D, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x6C, 0x64, 0x6F, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0x01, 0x00, 0x00, 0xAC, 0x0D, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0x01, 0x00, 0x00, 0xAC, 0x0D, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x63, 0x64, 0x63, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00, 0xF0, 0x05, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00, 0x4C, 0x04, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x04, 0x00, 0x00, 0xF0, 0x05, 0x00, 0x00, 0x14, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x63, 0x64, 0x63, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xF6, 0x09, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xF6, 0x09, 0x00, 0x00, 0x32, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x63, 0x64, 0x63, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00, 0xF0, 0x05, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00, 0x4C, 0x04, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x04, 0x00, 0x00, 0xF0, 0x05, 0x00, 0x00, 0x14, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x63, 0x64, 0x63, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00, 0xE4, 0x0C, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00, 0xDC, 0x05, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x06, 0x00, 0x00, 0xE4, 0x0C, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x63, 0x64, 0x63, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4C, 0x04, 0x00, 0x00, 0x48, 0x0D, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4C, 0x04, 0x00, 0x00, 0x48, 0x0D, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x6C, 0x64, 0x6F, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBC, 0x02, 0x00, 0x00, 0xE4, 0x0C, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBC, 0x02, 0x00, 0x00, 0xE4, 0x0C, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x6C, 0x64, 0x6F, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBC, 0x02, 0x00, 0x00, 0x48, 0x0D, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBC, 0x02, 0x00, 0x00, 0x48, 0x0D, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x6C, 0x64, 0x6F, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBC, 0x02, 0x00, 0x00, 0xE4, 0x0C, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBC, 0x02, 0x00, 0x00, 0xE4, 0x0C, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x6C, 0x64, 0x6F, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBC, 0x02, 0x00, 0x00, 0x6C, 0x07, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBC, 0x02, 0x00, 0x00, 0x6C, 0x07, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x6C, 0x64, 0x6F, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBC, 0x02, 0x00, 0x00, 0x6C, 0x07, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBC, 0x02, 0x00, 0x00, 0x6C, 0x07, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x6C, 0x64, 0x6F, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBC, 0x02, 0x00, 0x00, 0x6C, 0x07, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBC, 0x02, 0x00, 0x00, 0x6C, 0x07, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x6C, 0x64, 0x6F, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBC, 0x02, 0x00, 0x00, 0x6C, 0x07, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBC, 0x02, 0x00, 0x00, 0x6C, 0x07, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x6C, 0x64, 0x6F, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBC, 0x02, 0x00, 0x00, 0xE4, 0x0C, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBC, 0x02, 0x00, 0x00, 0xE4, 0x0C, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x6C, 0x64, 0x6F, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBC, 0x02, 0x00, 0x00, 0x68, 0x10, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBC, 0x02, 0x00, 0x00, 0x48, 0x0D, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0E, 0x00, 0x00, 0x68, 0x10, 0x00, 0x00, 0xC8, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x6C, 0x64, 0x6F, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBC, 0x02, 0x00, 0x00, 0xE4, 0x0C, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBC, 0x02, 0x00, 0x00, 0xE4, 0x0C, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; if(type) { if(strcmp(type, "lpddr4") == 0) { fel_write(ctx, 0x48000, (void *)&lpddr4_payload[0], sizeof(lpddr4_payload)); fel_exec(ctx, 0x48000); return 1; } } printf("usage:\r\n"); printf(" xfel ddr lpddr4 - Initial DRAM controller for lpddr4\r\n"); return 0; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { return 0; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { return 0; } static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { return 0; } struct chip_t h616 = { .name = "H313/H616/T507/T517/H618", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/chips/r128.c000066400000000000000000015367031512120643700144440ustar00rootroot00000000000000#include static uint32_t payload_read32(struct xfel_ctx_t * ctx, uint32_t addr) { static const uint8_t payload[] = { 0xbf, 0xf3, 0x4f, 0x8f, 0xbf, 0xf3, 0x6f, 0x8f, 0xdf, 0xf8, 0x14, 0x00, 0x4f, 0xf0, 0x00, 0x01, 0xc0, 0xf8, 0x00, 0x10, 0xbf, 0xf3, 0x4f, 0x8f, 0xbf, 0xf3, 0x6f, 0x8f, 0x00, 0xf0, 0x02, 0xb8, 0x50, 0xef, 0x00, 0xe0, 0xdf, 0xf8, 0x10, 0x00, 0x0f, 0xf2, 0x10, 0x01, 0xd0, 0xf8, 0x00, 0x20, 0xc1, 0xf8, 0x00, 0x20, 0x70, 0x47, 0x00, 0xbf }; uint32_t adr = cpu_to_le32(addr); uint32_t val; fel_write(ctx, ctx->version.scratchpad, (void *)payload, sizeof(payload)); fel_write(ctx, ctx->version.scratchpad + sizeof(payload), (void *)&adr, sizeof(adr)); fel_exec(ctx, ctx->version.scratchpad); fel_read(ctx, ctx->version.scratchpad + sizeof(payload) + sizeof(adr), (void *)&val, sizeof(val)); return le32_to_cpu(val); } static void payload_write32(struct xfel_ctx_t * ctx, uint32_t addr, uint32_t val) { static const uint8_t payload[] = { 0xbf, 0xf3, 0x4f, 0x8f, 0xbf, 0xf3, 0x6f, 0x8f, 0xdf, 0xf8, 0x14, 0x00, 0x4f, 0xf0, 0x00, 0x01, 0xc0, 0xf8, 0x00, 0x10, 0xbf, 0xf3, 0x4f, 0x8f, 0xbf, 0xf3, 0x6f, 0x8f, 0x00, 0xf0, 0x02, 0xb8, 0x50, 0xef, 0x00, 0xe0, 0xdf, 0xf8, 0x0c, 0x00, 0xdf, 0xf8, 0x0c, 0x10, 0xc0, 0xf8, 0x00, 0x10, 0x70, 0x47, 0x00, 0xbf }; uint32_t params[2] = { cpu_to_le32(addr), cpu_to_le32(val), }; fel_write(ctx, ctx->version.scratchpad, (void *)payload, sizeof(payload)); fel_write(ctx, ctx->version.scratchpad + sizeof(payload), (void *)params, sizeof(params)); fel_exec(ctx, ctx->version.scratchpad); } static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00188300) return 1; return 0; } static int chip_reset(struct xfel_ctx_t * ctx) { payload_write32(ctx, 0x40020400 + 0x14, (0x16aa << 16) | (0x1 << 0)); payload_write32(ctx, 0x40020400 + 0x18, (0x16aa << 16) | (1 << 0)); payload_write32(ctx, 0x40020400 + 0x10, (0xa57 << 1) | (1 << 0)); return 1; } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { uint32_t id[4]; id[0] = payload_read32(ctx, 0x4004e600 + 0x0); id[1] = payload_read32(ctx, 0x4004e600 + 0x4); id[2] = payload_read32(ctx, 0x4004e600 + 0x8); id[3] = payload_read32(ctx, 0x4004e600 + 0xc); sprintf(sid, "%08x%08x%08x%08x", id[0], id[1], id[2], id[3]); return 1; } static int chip_jtag(struct xfel_ctx_t * ctx) { uint32_t addr; uint32_t val; /* Config PA16 and PA17 to SWD-TMS and SWD-TCK */ addr = 0x4004a400 + 0x08; val = payload_read32(ctx, addr); val &= ~(0xf << ((0 & 0xf) << 2)); val |= ((0x8 & 0xf) << ((0 & 0xf) << 2)); payload_write32(ctx, addr, val); val = payload_read32(ctx, addr); val &= ~(0xf << ((1 & 0xf) << 2)); val |= ((0x8 & 0xf) << ((1 & 0xf) << 2)); payload_write32(ctx, addr, val); return 1; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { static const uint8_t r128_s2_payload[] = { 0x00, 0xf0, 0xe2, 0xb9, 0x65, 0x47, 0x4f, 0x4e, 0x2e, 0x42, 0x54, 0x30, 0xb6, 0x86, 0x3a, 0xa4, 0xa0, 0x59, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x33, 0x30, 0x30, 0x30, 0x40, 0x03, 0x0b, 0x04, 0x00, 0x00, 0x0b, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x2e, 0x30, 0x2e, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x03, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xa0, 0xfd, 0xbd, 0x3d, 0x01, 0x00, 0x00, 0x00, 0xf2, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x70, 0x1c, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x95, 0x21, 0x4a, 0x00, 0x90, 0x31, 0x42, 0x02, 0x61, 0xb0, 0x08, 0x00, 0x96, 0x78, 0x78, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x48, 0x48, 0x48, 0x48, 0x48, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x05, 0x34, 0x00, 0x00, 0x00, 0x00, 0x02, 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, 0x01, 0x10, 0x05, 0x01, 0xff, 0xff, 0x00, 0x00, 0x01, 0x11, 0x05, 0x01, 0xff, 0xff, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x02, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x03, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x04, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x05, 0x02, 0x01, 0x02, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x37, 0x64, 0x65, 0x30, 0x34, 0x62, 0x37, 0x63, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0xf8, 0x04, 0xed, 0x00, 0xf0, 0x0a, 0xf8, 0x03, 0xf0, 0x7e, 0xfe, 0x5d, 0xf8, 0x04, 0xeb, 0xf7, 0x46, 0xfe, 0xe7, 0xfe, 0xe7, 0x00, 0x00, 0xff, 0xf7, 0xf2, 0xbf, 0x06, 0x48, 0x07, 0x49, 0x4f, 0xf0, 0x00, 0x02, 0x88, 0x42, 0x00, 0xd1, 0xf7, 0x46, 0x02, 0x60, 0x00, 0xf1, 0x04, 0x00, 0x88, 0x42, 0xfa, 0xd1, 0xf7, 0x46, 0x00, 0x00, 0x88, 0x59, 0x0b, 0x04, 0xa8, 0x5a, 0x0b, 0x04, 0xf8, 0xb5, 0x6f, 0xf0, 0x7f, 0x46, 0x0f, 0x4b, 0x0f, 0x49, 0x9a, 0x68, 0x0b, 0x68, 0xb2, 0x1a, 0x9a, 0x42, 0x0e, 0x48, 0xa2, 0xeb, 0x03, 0x03, 0x38, 0xbf, 0x9b, 0x19, 0xd0, 0xe9, 0x00, 0x45, 0xe6, 0x18, 0x4f, 0xf4, 0x7a, 0x73, 0x45, 0xf1, 0x00, 0x07, 0xc0, 0xe9, 0x00, 0x67, 0x0a, 0x60, 0xa6, 0xfb, 0x03, 0x01, 0x03, 0xfb, 0x07, 0x11, 0x05, 0x4b, 0x1a, 0x68, 0x00, 0x23, 0x03, 0xf0, 0xc1, 0xfe, 0xf8, 0xbd, 0x10, 0xe0, 0x00, 0xe0, 0x88, 0x59, 0x0b, 0x04, 0xd8, 0x59, 0x0b, 0x04, 0xd0, 0x59, 0x0b, 0x04, 0xf8, 0xb5, 0x6f, 0xf0, 0x7f, 0x46, 0x0f, 0x4b, 0x0f, 0x49, 0x9a, 0x68, 0x0b, 0x68, 0xb2, 0x1a, 0x9a, 0x42, 0x0e, 0x48, 0xa2, 0xeb, 0x03, 0x03, 0x38, 0xbf, 0x9b, 0x19, 0xd0, 0xe9, 0x00, 0x45, 0xe6, 0x18, 0x0b, 0x4b, 0x45, 0xf1, 0x00, 0x07, 0xc0, 0xe9, 0x00, 0x67, 0x0a, 0x60, 0xa6, 0xfb, 0x03, 0x01, 0x03, 0xfb, 0x07, 0x11, 0x07, 0x4b, 0x1a, 0x68, 0x00, 0x23, 0x03, 0xf0, 0x98, 0xfe, 0xf8, 0xbd, 0x00, 0xbf, 0x10, 0xe0, 0x00, 0xe0, 0x88, 0x59, 0x0b, 0x04, 0xd8, 0x59, 0x0b, 0x04, 0x40, 0x42, 0x0f, 0x00, 0xd0, 0x59, 0x0b, 0x04, 0x6f, 0xf0, 0x7f, 0x42, 0x23, 0x4b, 0x2d, 0xe9, 0xf3, 0x47, 0x23, 0x49, 0x9e, 0x68, 0x0b, 0x68, 0x96, 0x1b, 0x9e, 0x42, 0x21, 0x4f, 0xa6, 0xeb, 0x03, 0x03, 0x38, 0xbf, 0x9b, 0x18, 0xd7, 0xe9, 0x00, 0x45, 0x8a, 0x46, 0xe1, 0x18, 0x1e, 0x4b, 0x45, 0xf1, 0x00, 0x02, 0xcd, 0xe9, 0x00, 0x12, 0x19, 0x68, 0x1c, 0x4a, 0x00, 0x23, 0xa0, 0xfb, 0x01, 0x01, 0x03, 0xf0, 0x6d, 0xfe, 0x6f, 0xf0, 0x7f, 0x4c, 0x00, 0x9b, 0x01, 0x9a, 0xc3, 0x18, 0x41, 0xeb, 0x02, 0x02, 0x16, 0x48, 0x13, 0xf1, 0x01, 0x08, 0x10, 0x49, 0x42, 0xf1, 0x00, 0x09, 0x8b, 0x68, 0xac, 0xeb, 0x03, 0x02, 0x96, 0x42, 0x86, 0xbf, 0xc3, 0x1a, 0x9e, 0x1b, 0x96, 0x1b, 0xdd, 0xe9, 0x00, 0x34, 0x9b, 0x19, 0x44, 0xf1, 0x00, 0x04, 0xcd, 0xe9, 0x00, 0x34, 0xdd, 0xe9, 0x00, 0x34, 0x4c, 0x45, 0x08, 0xbf, 0x43, 0x45, 0x16, 0x46, 0xe9, 0xd3, 0xca, 0xf8, 0x00, 0x20, 0xc7, 0xe9, 0x00, 0x34, 0x02, 0xb0, 0xbd, 0xe8, 0xf0, 0x87, 0x00, 0xbf, 0x10, 0xe0, 0x00, 0xe0, 0x88, 0x59, 0x0b, 0x04, 0xd8, 0x59, 0x0b, 0x04, 0xd0, 0x59, 0x0b, 0x04, 0x40, 0x42, 0x0f, 0x00, 0xfe, 0xff, 0xff, 0x01, 0x38, 0xb5, 0x05, 0x46, 0x00, 0x24, 0xac, 0x42, 0x00, 0xd1, 0x38, 0xbd, 0x4f, 0xf4, 0x7a, 0x70, 0xff, 0xf7, 0xa0, 0xff, 0x01, 0x34, 0xf6, 0xe7, 0x08, 0xb5, 0xff, 0xf7, 0x9b, 0xff, 0x08, 0xbd, 0x08, 0xb5, 0xff, 0xf7, 0xed, 0xff, 0x08, 0xbd, 0x00, 0x20, 0x70, 0x47, 0x01, 0x38, 0xfd, 0xd1, 0x70, 0x47, 0x70, 0x47, 0x1e, 0x49, 0x00, 0x23, 0x08, 0x46, 0x10, 0xb5, 0x1d, 0x4a, 0x51, 0xf8, 0x23, 0x40, 0x01, 0x33, 0x10, 0x2b, 0x42, 0xf8, 0x04, 0x4b, 0xf8, 0xd1, 0x00, 0x23, 0x4f, 0xf0, 0xff, 0x31, 0x03, 0xf1, 0x20, 0x02, 0x01, 0x33, 0x10, 0x2b, 0x40, 0xf8, 0x22, 0x10, 0xf8, 0xd1, 0x15, 0x4b, 0x16, 0x49, 0xda, 0x68, 0xc2, 0xf3, 0x02, 0x22, 0x0a, 0x60, 0x99, 0x68, 0x14, 0x4a, 0x11, 0x60, 0xda, 0x68, 0x22, 0xf4, 0xe0, 0x62, 0x12, 0x04, 0x12, 0x0c, 0x42, 0xf0, 0xbf, 0x62, 0x42, 0xf4, 0x01, 0x32, 0xda, 0x60, 0x0f, 0x4a, 0x9a, 0x60, 0xbf, 0xf3, 0x4f, 0x8f, 0x5a, 0x6a, 0x42, 0xf4, 0xe0, 0x22, 0x5a, 0x62, 0x5a, 0x69, 0x42, 0xf0, 0x10, 0x02, 0x5a, 0x61, 0x00, 0x23, 0x83, 0xf3, 0x10, 0x88, 0x83, 0xf3, 0x13, 0x88, 0x83, 0xf3, 0x11, 0x88, 0x10, 0xbd, 0x00, 0xbf, 0x00, 0xe1, 0x00, 0xe0, 0x8c, 0x59, 0x0b, 0x04, 0x00, 0xed, 0x00, 0xe0, 0xcc, 0x59, 0x0b, 0x04, 0xd4, 0x59, 0x0b, 0x04, 0x00, 0x48, 0x0b, 0x04, 0x70, 0x47, 0x00, 0x00, 0x6f, 0xf0, 0x7f, 0x42, 0x05, 0x4b, 0x5a, 0x60, 0x00, 0x22, 0x9a, 0x60, 0x01, 0x22, 0x1a, 0x60, 0x03, 0x4b, 0x1a, 0x68, 0x03, 0x4b, 0x1a, 0x60, 0x70, 0x47, 0x00, 0xbf, 0x10, 0xe0, 0x00, 0xe0, 0xd8, 0x59, 0x0b, 0x04, 0x88, 0x59, 0x0b, 0x04, 0x00, 0x20, 0x00, 0x21, 0x15, 0x4b, 0x10, 0xb5, 0xc3, 0xe9, 0x00, 0x01, 0xff, 0xf7, 0x98, 0xff, 0x00, 0xf0, 0xfa, 0xf8, 0x12, 0x4b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x03, 0xf0, 0x07, 0x03, 0x04, 0x2b, 0x98, 0xbf, 0x0f, 0x4a, 0x10, 0x48, 0x9b, 0xbf, 0x52, 0xf8, 0x23, 0x10, 0x0f, 0x4a, 0x10, 0x22, 0xd2, 0x5c, 0x88, 0xbf, 0x0e, 0x49, 0x04, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x0d, 0x4b, 0x01, 0x3a, 0x23, 0x40, 0x13, 0x43, 0x43, 0xf0, 0x00, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x03, 0x60, 0x09, 0x4b, 0xbd, 0xe8, 0x10, 0x40, 0x19, 0x60, 0xff, 0xf7, 0xbe, 0xbf, 0xd8, 0x59, 0x0b, 0x04, 0x84, 0xc4, 0x04, 0x40, 0x40, 0x48, 0x0b, 0x04, 0x40, 0xc0, 0x03, 0x40, 0x54, 0x48, 0x0b, 0x04, 0x00, 0x09, 0x3d, 0x00, 0xf0, 0xff, 0xfc, 0xfc, 0xd0, 0x59, 0x0b, 0x04, 0x02, 0x4a, 0x13, 0x68, 0x23, 0xf0, 0x03, 0x03, 0x13, 0x60, 0x70, 0x47, 0x10, 0xe0, 0x00, 0xe0, 0x0f, 0x4a, 0x10, 0x4b, 0xd1, 0x68, 0x1b, 0x68, 0x21, 0xf4, 0xe0, 0x61, 0x1b, 0x02, 0x09, 0x04, 0x09, 0x0c, 0x03, 0xf4, 0xe0, 0x63, 0x0b, 0x43, 0x43, 0xf0, 0xbf, 0x63, 0x43, 0xf4, 0x00, 0x33, 0xd3, 0x60, 0x09, 0x4b, 0x09, 0x49, 0x1b, 0x68, 0x93, 0x60, 0x00, 0x23, 0x08, 0x4a, 0x52, 0xf8, 0x04, 0x0b, 0x41, 0xf8, 0x23, 0x00, 0x01, 0x33, 0x10, 0x2b, 0xf8, 0xd1, 0x70, 0x47, 0x00, 0xbf, 0x00, 0xed, 0x00, 0xe0, 0xcc, 0x59, 0x0b, 0x04, 0xd4, 0x59, 0x0b, 0x04, 0x00, 0xe1, 0x00, 0xe0, 0x8c, 0x59, 0x0b, 0x04, 0x70, 0x47, 0x70, 0x47, 0x00, 0x47, 0x70, 0x47, 0x70, 0x47, 0x70, 0x47, 0x70, 0x47, 0x00, 0x00, 0x08, 0xb5, 0x00, 0xf0, 0x9b, 0xf8, 0x02, 0x48, 0x00, 0xf0, 0x4a, 0xfb, 0x00, 0x20, 0x08, 0xbd, 0x59, 0x48, 0x0b, 0x04, 0x00, 0x20, 0x70, 0x47, 0x00, 0x20, 0x70, 0x47, 0x70, 0x47, 0x70, 0x47, 0x08, 0xb5, 0x12, 0x48, 0x00, 0xf0, 0x3c, 0xfb, 0xbf, 0xf3, 0x5f, 0x8f, 0x10, 0x4b, 0x11, 0x4a, 0x1a, 0x60, 0x11, 0x4a, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf0, 0x01, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0x04, 0x3a, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf0, 0x01, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x08, 0x4b, 0xa2, 0xf5, 0xde, 0x32, 0x13, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x53, 0x60, 0xfe, 0xe7, 0x00, 0xbf, 0x68, 0x48, 0x0b, 0x04, 0xc0, 0x01, 0x05, 0x40, 0x04, 0x00, 0x9b, 0x42, 0x18, 0xc0, 0x03, 0x40, 0x01, 0x00, 0xaa, 0x16, 0x22, 0x4a, 0x38, 0xb5, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf0, 0x40, 0x73, 0xbf, 0xf3, 0x5f, 0x8f, 0x1f, 0x4c, 0x13, 0x60, 0x23, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf0, 0x00, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0x60, 0x22, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x19, 0x4d, 0x2a, 0x40, 0x42, 0xf4, 0x9e, 0x42, 0xbf, 0xf3, 0x5f, 0x8f, 0x0a, 0x20, 0x22, 0x60, 0xff, 0xf7, 0x58, 0xfe, 0x22, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x42, 0xf0, 0x20, 0x42, 0xbf, 0xf3, 0x5f, 0x8f, 0x22, 0x60, 0x22, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x22, 0xf0, 0x00, 0x52, 0xbf, 0xf3, 0x5f, 0x8f, 0x22, 0x60, 0x23, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x2b, 0x40, 0x43, 0xf4, 0x44, 0x53, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0x60, 0x23, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf0, 0x00, 0x53, 0xbf, 0xf3, 0x5f, 0x8f, 0x0a, 0x20, 0x23, 0x60, 0xbd, 0xe8, 0x38, 0x40, 0xff, 0xf7, 0x32, 0xbe, 0x10, 0xc5, 0x03, 0x40, 0x20, 0xc0, 0x03, 0x40, 0xfc, 0x00, 0xff, 0xff, 0x06, 0x4b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0xf4, 0x7f, 0x0f, 0x04, 0xd1, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x22, 0x02, 0x4b, 0x1a, 0x60, 0x70, 0x47, 0x00, 0xbf, 0x80, 0x00, 0x05, 0x40, 0x84, 0xc4, 0x04, 0x40, 0x01, 0x48, 0x00, 0xf0, 0xaf, 0xba, 0x00, 0xbf, 0x79, 0x48, 0x0b, 0x04, 0x0c, 0x4a, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf0, 0x40, 0x73, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0x10, 0x32, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf0, 0x40, 0x73, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x40, 0xf2, 0x01, 0x32, 0x02, 0x4b, 0x1a, 0x60, 0x70, 0x47, 0x00, 0xbf, 0x10, 0xc5, 0x03, 0x40, 0x00, 0xc5, 0x03, 0x40, 0x38, 0xb5, 0x0d, 0x4d, 0x2c, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x24, 0xf4, 0x80, 0x34, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x20, 0x2c, 0x60, 0xff, 0xf7, 0xe9, 0xfd, 0x44, 0xf4, 0x80, 0x34, 0xbf, 0xf3, 0x5f, 0x8f, 0x2c, 0x60, 0x2b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf0, 0x01, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x20, 0x2b, 0x60, 0x38, 0xbd, 0xec, 0xc9, 0x03, 0x40, 0x05, 0x4a, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf0, 0x01, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x20, 0x13, 0x60, 0x70, 0x47, 0x00, 0xbf, 0xec, 0xc9, 0x03, 0x40, 0x11, 0x4a, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf4, 0x80, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0x43, 0xf4, 0x80, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0x08, 0x3a, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf4, 0x80, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0x43, 0xf4, 0x80, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x01, 0x42, 0x02, 0x4b, 0x1a, 0x60, 0x70, 0x47, 0x00, 0xbf, 0x0c, 0xc0, 0x03, 0x40, 0x54, 0xc0, 0x03, 0x40, 0x0e, 0x49, 0x0b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x82, 0x1d, 0x01, 0x20, 0x90, 0x40, 0xc2, 0x43, 0x13, 0x40, 0xbf, 0xf3, 0x5f, 0x8f, 0x0b, 0x60, 0x03, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x0b, 0x60, 0x08, 0x39, 0x0b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x40, 0xbf, 0xf3, 0x5f, 0x8f, 0x0b, 0x60, 0x18, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x08, 0x60, 0x70, 0x47, 0x00, 0xbf, 0x0c, 0xc0, 0x03, 0x40, 0x42, 0x1e, 0x11, 0xf8, 0x01, 0x3b, 0x02, 0xf8, 0x01, 0x3f, 0x00, 0x2b, 0xf9, 0xd1, 0x70, 0x47, 0x10, 0xb5, 0x0a, 0x44, 0x44, 0x1e, 0x91, 0x42, 0x05, 0xd0, 0x11, 0xf8, 0x01, 0x3b, 0x04, 0xf8, 0x01, 0x3f, 0x00, 0x2b, 0xf7, 0xd1, 0x10, 0xbd, 0x03, 0x46, 0x10, 0xb5, 0x1a, 0x46, 0x12, 0xf8, 0x01, 0x4b, 0x3c, 0xb9, 0x01, 0x3b, 0x11, 0xf8, 0x01, 0x2b, 0x03, 0xf8, 0x01, 0x2f, 0x00, 0x2a, 0xf9, 0xd1, 0x10, 0xbd, 0x13, 0x46, 0xf1, 0xe7, 0x30, 0xb5, 0x7a, 0xb1, 0x03, 0x46, 0x1c, 0x46, 0x14, 0xf8, 0x01, 0x5b, 0x5d, 0xb9, 0x01, 0x39, 0x1a, 0x44, 0x11, 0xf8, 0x01, 0x4f, 0x03, 0xf8, 0x01, 0x4b, 0x1c, 0xb1, 0x93, 0x42, 0xf8, 0xd1, 0x00, 0x22, 0x1a, 0x70, 0x30, 0xbd, 0x23, 0x46, 0xed, 0xe7, 0x42, 0x1e, 0x12, 0xf8, 0x01, 0x3f, 0x11, 0xf8, 0x01, 0x0b, 0x18, 0x1a, 0x40, 0xb2, 0x08, 0xb9, 0x00, 0x2b, 0xf6, 0xd1, 0x70, 0x47, 0x10, 0xb5, 0x43, 0x1e, 0x0a, 0x44, 0x91, 0x42, 0x01, 0xd1, 0x00, 0x20, 0x08, 0xe0, 0x13, 0xf8, 0x01, 0x4f, 0x11, 0xf8, 0x01, 0x0b, 0x20, 0x1a, 0x40, 0xb2, 0x08, 0xb9, 0x00, 0x2c, 0xf2, 0xd1, 0x10, 0xbd, 0xc9, 0xb2, 0x02, 0x78, 0x03, 0x46, 0x8a, 0x42, 0x00, 0xf1, 0x01, 0x00, 0x01, 0xd1, 0x18, 0x46, 0x70, 0x47, 0x00, 0x2a, 0xf5, 0xd1, 0x13, 0x46, 0xf9, 0xe7, 0x03, 0x46, 0x1a, 0x46, 0x11, 0x78, 0x01, 0x33, 0x00, 0x29, 0xfa, 0xd1, 0x10, 0x1a, 0x70, 0x47, 0x38, 0xb5, 0x05, 0x46, 0x0c, 0x46, 0xff, 0xf7, 0xf3, 0xff, 0xe4, 0xb2, 0x2b, 0x18, 0x18, 0x46, 0x13, 0xf8, 0x01, 0x29, 0xa2, 0x42, 0x02, 0xd0, 0x9d, 0x42, 0xf8, 0xd9, 0x00, 0x20, 0x38, 0xbd, 0x02, 0x46, 0x10, 0xb5, 0x01, 0x44, 0x8a, 0x42, 0x13, 0x46, 0x03, 0xd0, 0x1c, 0x78, 0x01, 0x32, 0x00, 0x2c, 0xf8, 0xd1, 0x18, 0x1a, 0x10, 0xbd, 0x00, 0x23, 0x30, 0xb5, 0xc4, 0x5c, 0x3c, 0xb1, 0x4a, 0x1e, 0x01, 0xe0, 0xa5, 0x42, 0x05, 0xd0, 0x12, 0xf8, 0x01, 0x5f, 0x00, 0x2d, 0xf9, 0xd1, 0x18, 0x46, 0x30, 0xbd, 0x01, 0x33, 0xf1, 0xe7, 0x30, 0xb5, 0x00, 0x24, 0xa2, 0x42, 0x01, 0xd1, 0x00, 0x23, 0x06, 0xe0, 0x03, 0x5d, 0x0d, 0x5d, 0x01, 0x34, 0x5b, 0x1b, 0x5b, 0xb2, 0x00, 0x2b, 0xf4, 0xd0, 0x18, 0x46, 0x30, 0xbd, 0x03, 0x46, 0x10, 0xb5, 0x02, 0x44, 0x93, 0x42, 0x18, 0x46, 0x03, 0xd0, 0x04, 0x78, 0x01, 0x33, 0x8c, 0x42, 0xf8, 0xd1, 0x10, 0xbd, 0x2d, 0xe9, 0xf0, 0x41, 0x04, 0x46, 0x08, 0x46, 0x0f, 0x46, 0xff, 0xf7, 0xab, 0xff, 0x06, 0x46, 0x98, 0xb1, 0x20, 0x46, 0xff, 0xf7, 0xa6, 0xff, 0x05, 0x46, 0x04, 0xeb, 0x00, 0x08, 0xb5, 0x42, 0xa8, 0xeb, 0x05, 0x04, 0x01, 0xda, 0x00, 0x24, 0x07, 0xe0, 0x32, 0x46, 0x39, 0x46, 0x20, 0x46, 0x01, 0x3d, 0xff, 0xf7, 0xcb, 0xff, 0x00, 0x28, 0xf1, 0xd1, 0x20, 0x46, 0xbd, 0xe8, 0xf0, 0x81, 0x10, 0xb5, 0x02, 0x44, 0xc9, 0xb2, 0x90, 0x42, 0x01, 0xd1, 0x00, 0x20, 0x10, 0xbd, 0x03, 0x46, 0x13, 0xf8, 0x01, 0x4b, 0x8c, 0x42, 0xf9, 0xd0, 0x18, 0x46, 0xf4, 0xe7, 0x83, 0x68, 0x5a, 0x1c, 0x82, 0x60, 0x19, 0x70, 0x70, 0x47, 0x08, 0x46, 0x00, 0xf0, 0x42, 0xbc, 0x30, 0xb5, 0x00, 0x25, 0x0b, 0x68, 0xec, 0xb2, 0x93, 0x42, 0x05, 0xf1, 0x01, 0x05, 0x0e, 0xd2, 0x03, 0x79, 0x23, 0x43, 0x0a, 0xd0, 0x0a, 0x2c, 0x34, 0xbf, 0x30, 0x23, 0x57, 0x23, 0x02, 0x68, 0x23, 0x44, 0x51, 0x1c, 0x01, 0x60, 0x13, 0x70, 0x01, 0x23, 0x03, 0x71, 0x30, 0xbd, 0x9b, 0x1a, 0x0b, 0x60, 0xe7, 0xe7, 0x2d, 0xe9, 0xf0, 0x4f, 0x04, 0x46, 0x0d, 0x46, 0x90, 0x46, 0x85, 0xb0, 0x01, 0xae, 0xa9, 0x46, 0x19, 0xf8, 0x01, 0x7b, 0x1f, 0xb9, 0x00, 0x20, 0x05, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x25, 0x2f, 0x0b, 0xd0, 0x0a, 0x2f, 0x03, 0xd1, 0xe3, 0x68, 0x0d, 0x21, 0x20, 0x46, 0x98, 0x47, 0xe3, 0x68, 0x39, 0x46, 0x20, 0x46, 0x98, 0x47, 0x4d, 0x46, 0xe9, 0xe7, 0x6b, 0x78, 0x00, 0x27, 0x2d, 0x2b, 0x0a, 0xbf, 0xab, 0x78, 0x02, 0x35, 0x03, 0x35, 0x30, 0x2b, 0x04, 0xbf, 0x15, 0xf8, 0x01, 0x3b, 0x4f, 0xf0, 0x01, 0x0a, 0xa3, 0xf1, 0x30, 0x02, 0x18, 0xbf, 0x4f, 0xf0, 0x00, 0x0a, 0x09, 0x2a, 0x09, 0xd8, 0x0a, 0x21, 0x01, 0xfb, 0x07, 0x37, 0x15, 0xf8, 0x01, 0x3b, 0x30, 0x3f, 0xa3, 0xf1, 0x30, 0x02, 0x09, 0x2a, 0xf6, 0xd9, 0x00, 0x21, 0x6c, 0x2b, 0x08, 0xbf, 0x15, 0xf8, 0x01, 0x3b, 0x26, 0x60, 0x64, 0x2b, 0x21, 0x71, 0x2d, 0xd0, 0x07, 0xd8, 0x25, 0x2b, 0x68, 0xd0, 0x63, 0x2b, 0x64, 0xd0, 0x00, 0x2b, 0xbf, 0xd0, 0xb1, 0x46, 0x6a, 0xe0, 0x73, 0x2b, 0x66, 0xd0, 0x0c, 0xd8, 0x70, 0x2b, 0xf8, 0xd1, 0x08, 0xf1, 0x04, 0x08, 0x2b, 0x46, 0x46, 0x49, 0x13, 0xf8, 0x01, 0x2b, 0x8a, 0x5c, 0x52, 0x07, 0xef, 0xd0, 0x1d, 0x46, 0xf6, 0xe7, 0x75, 0x2b, 0x12, 0xd0, 0x78, 0x2b, 0xe9, 0xd1, 0xd8, 0xf8, 0x00, 0x30, 0x08, 0xf1, 0x04, 0x09, 0x00, 0x93, 0x00, 0x9b, 0xb3, 0xbb, 0x0d, 0xf1, 0x05, 0x03, 0x23, 0x60, 0x30, 0x23, 0x8d, 0xf8, 0x04, 0x30, 0x01, 0x23, 0x23, 0x71, 0xc8, 0x46, 0xd8, 0xe7, 0xd8, 0xf8, 0x00, 0x20, 0x64, 0x2b, 0x08, 0xf1, 0x04, 0x0b, 0x00, 0x92, 0x11, 0xd0, 0x00, 0x9b, 0xd3, 0xb1, 0x4f, 0xf0, 0x0a, 0x08, 0xdf, 0xf8, 0xcc, 0x90, 0x4a, 0x46, 0x69, 0x46, 0x20, 0x46, 0xff, 0xf7, 0x62, 0xff, 0x0a, 0x23, 0xb8, 0xf1, 0x01, 0x08, 0xb9, 0xfb, 0xf3, 0xf9, 0xf4, 0xd1, 0x11, 0xe0, 0x00, 0x2a, 0xeb, 0xda, 0x0d, 0xf1, 0x05, 0x03, 0x23, 0x60, 0x2d, 0x23, 0x52, 0x42, 0x00, 0x92, 0x8d, 0xf8, 0x04, 0x30, 0xe4, 0xe7, 0x23, 0x68, 0x5a, 0x1c, 0x22, 0x60, 0x30, 0x22, 0x1a, 0x70, 0x01, 0x23, 0x23, 0x71, 0xd8, 0x46, 0xab, 0xe7, 0x4f, 0xf0, 0x08, 0x08, 0x4f, 0xf0, 0x80, 0x5b, 0x5a, 0x46, 0x69, 0x46, 0x20, 0x46, 0xff, 0xf7, 0x3e, 0xff, 0xb8, 0xf1, 0x01, 0x08, 0x4f, 0xea, 0x1b, 0x1b, 0xf5, 0xd1, 0xc1, 0xe7, 0x58, 0xf8, 0x04, 0x3b, 0x0d, 0xf1, 0x05, 0x02, 0x22, 0x60, 0x8d, 0xf8, 0x04, 0x30, 0x94, 0xe7, 0x58, 0xf8, 0x04, 0x9b, 0x00, 0x22, 0x23, 0x68, 0x1a, 0x70, 0xc4, 0xf8, 0x00, 0x90, 0x23, 0x68, 0x5a, 0x1c, 0x22, 0x60, 0x1b, 0x78, 0x03, 0xb1, 0xb7, 0xb9, 0xba, 0xf1, 0x00, 0x0f, 0x14, 0xbf, 0x4f, 0xf0, 0x30, 0x0a, 0x4f, 0xf0, 0x20, 0x0a, 0x17, 0xf1, 0xff, 0x37, 0x0e, 0xd2, 0xb9, 0xf1, 0x00, 0x0f, 0x3f, 0xf4, 0x36, 0xaf, 0x19, 0xf8, 0x01, 0x1b, 0x00, 0x29, 0x3f, 0xf4, 0x31, 0xaf, 0xe3, 0x68, 0x20, 0x46, 0x98, 0x47, 0xf6, 0xe7, 0x01, 0x3f, 0xe0, 0xe7, 0xe3, 0x68, 0x51, 0x46, 0x20, 0x46, 0x98, 0x47, 0xe8, 0xe7, 0x00, 0xbf, 0x86, 0x48, 0x0b, 0x04, 0x00, 0xca, 0x9a, 0x3b, 0x1f, 0xb5, 0x05, 0x4b, 0x0a, 0x46, 0x01, 0x46, 0x68, 0x46, 0x03, 0x93, 0xff, 0xf7, 0x12, 0xff, 0x05, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x00, 0xbf, 0x77, 0x0b, 0x0b, 0x04, 0x08, 0x28, 0x9d, 0xbf, 0x02, 0x4b, 0x18, 0x70, 0x00, 0x20, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x80, 0x59, 0x0b, 0x04, 0x01, 0x4b, 0x18, 0x78, 0x70, 0x47, 0x00, 0xbf, 0x80, 0x59, 0x0b, 0x04, 0x0e, 0xb4, 0x3f, 0xb5, 0x07, 0xaa, 0x52, 0xf8, 0x04, 0x1b, 0x07, 0x4b, 0x04, 0x90, 0x02, 0xa8, 0x01, 0x92, 0x05, 0x93, 0xff, 0xf7, 0xf0, 0xfe, 0x00, 0x22, 0x04, 0x9b, 0x1a, 0x70, 0x06, 0xb0, 0x5d, 0xf8, 0x04, 0xeb, 0x03, 0xb0, 0x70, 0x47, 0x6d, 0x0b, 0x0b, 0x04, 0x0f, 0xb4, 0x30, 0xb5, 0x89, 0xb0, 0xff, 0xf7, 0x0d, 0xfb, 0x0e, 0x49, 0x02, 0x46, 0x01, 0xa8, 0xff, 0xf7, 0xe0, 0xff, 0x00, 0x25, 0x01, 0xac, 0x14, 0xf8, 0x01, 0x0b, 0x20, 0xb1, 0x01, 0x35, 0x00, 0xf0, 0xfc, 0xfa, 0x0c, 0x2d, 0xf7, 0xd1, 0x07, 0x4b, 0x0d, 0xaa, 0x0c, 0x99, 0x04, 0xa8, 0x07, 0x93, 0x00, 0x92, 0xff, 0xf7, 0xca, 0xfe, 0x09, 0xb0, 0xbd, 0xe8, 0x30, 0x40, 0x04, 0xb0, 0x70, 0x47, 0x00, 0xbf, 0x94, 0x49, 0x0b, 0x04, 0x77, 0x0b, 0x0b, 0x04, 0x01, 0x46, 0x01, 0x48, 0xff, 0xf7, 0xd6, 0xbf, 0x99, 0x49, 0x0b, 0x04, 0x0c, 0xb4, 0x7f, 0xb5, 0x08, 0xaa, 0x52, 0xf8, 0x04, 0x1b, 0x07, 0x4b, 0x04, 0x90, 0x02, 0xa8, 0x01, 0x92, 0x05, 0x93, 0xff, 0xf7, 0xae, 0xfe, 0x00, 0x22, 0x04, 0x9b, 0x1a, 0x70, 0x07, 0xb0, 0x5d, 0xf8, 0x04, 0xeb, 0x02, 0xb0, 0x70, 0x47, 0x6d, 0x0b, 0x0b, 0x04, 0x08, 0xb5, 0xff, 0xf7, 0xcd, 0xfa, 0xbd, 0xe8, 0x08, 0x40, 0x01, 0x46, 0x01, 0x48, 0xff, 0xf7, 0xb5, 0xbf, 0x00, 0xbf, 0x86, 0x49, 0x0b, 0x04, 0x89, 0x08, 0xf8, 0xb5, 0x0e, 0x46, 0x00, 0x24, 0x18, 0x4b, 0x45, 0x69, 0x00, 0xf1, 0x10, 0x02, 0x43, 0x61, 0x52, 0xe9, 0x04, 0x37, 0x3b, 0x44, 0x52, 0xf8, 0x08, 0x7c, 0x04, 0x3e, 0x3b, 0x44, 0x52, 0xf8, 0x04, 0x7c, 0x03, 0x2e, 0x3b, 0x44, 0x1c, 0x44, 0x02, 0xf1, 0x10, 0x02, 0xf0, 0xd8, 0x0b, 0x1f, 0x9b, 0x08, 0x01, 0x33, 0x00, 0xeb, 0x03, 0x13, 0x01, 0xf0, 0x03, 0x01, 0x03, 0xeb, 0x81, 0x01, 0x8b, 0x42, 0x0d, 0xd1, 0x45, 0x61, 0x21, 0x46, 0x09, 0x48, 0xff, 0xf7, 0x8a, 0xff, 0x29, 0x46, 0x08, 0x48, 0xff, 0xf7, 0x86, 0xff, 0x60, 0x1b, 0x18, 0xbf, 0x4f, 0xf0, 0xff, 0x30, 0xf8, 0xbd, 0x53, 0xf8, 0x04, 0x2b, 0x14, 0x44, 0xeb, 0xe7, 0x00, 0xbf, 0x39, 0x6c, 0x0a, 0x5f, 0xb0, 0x49, 0x0b, 0x04, 0xac, 0x49, 0x0b, 0x04, 0x00, 0x23, 0x11, 0xb9, 0x11, 0x60, 0x08, 0x46, 0x70, 0x47, 0x01, 0x29, 0x05, 0xd1, 0x10, 0x60, 0x18, 0x46, 0x70, 0x47, 0x13, 0x68, 0x40, 0x1a, 0x01, 0x33, 0x88, 0x42, 0x13, 0x60, 0xf9, 0xd2, 0x70, 0x47, 0x4f, 0xf0, 0x82, 0x60, 0x70, 0x47, 0x10, 0xb5, 0x4f, 0xf4, 0x80, 0x34, 0x01, 0x3c, 0x0a, 0xd0, 0x00, 0xf0, 0x7d, 0xfa, 0x00, 0x28, 0xf9, 0xd0, 0x00, 0xf0, 0x6f, 0xfa, 0x04, 0x46, 0x01, 0x46, 0x02, 0x48, 0xff, 0xf7, 0x52, 0xff, 0x20, 0x46, 0x10, 0xbd, 0x9c, 0x49, 0x0b, 0x04, 0x02, 0x4a, 0x13, 0x78, 0x18, 0x43, 0x10, 0x70, 0x70, 0x47, 0x00, 0xbf, 0xe0, 0x59, 0x0b, 0x04, 0x01, 0x4b, 0x1b, 0x78, 0x18, 0x40, 0x70, 0x47, 0xe0, 0x59, 0x0b, 0x04, 0x00, 0x20, 0x70, 0x47, 0x00, 0x20, 0x70, 0x47, 0x70, 0x47, 0x00, 0x00, 0x00, 0x23, 0x10, 0xb5, 0x05, 0x4a, 0x06, 0x4c, 0x01, 0x44, 0xc4, 0xe9, 0x00, 0x03, 0x53, 0x60, 0x11, 0x60, 0xe2, 0x60, 0xd3, 0x60, 0x18, 0x46, 0x10, 0xbd, 0x00, 0xbf, 0xf4, 0x59, 0x0b, 0x04, 0xe4, 0x59, 0x0b, 0x04, 0xf0, 0xb5, 0x08, 0xb3, 0x00, 0xf1, 0x0f, 0x04, 0x24, 0xf0, 0x0f, 0x04, 0x0f, 0x49, 0x04, 0xf1, 0x20, 0x0c, 0xcb, 0x68, 0x0b, 0xb9, 0x18, 0x46, 0xf0, 0xbd, 0x0e, 0x68, 0x4d, 0x68, 0x1f, 0x68, 0x0c, 0xeb, 0x06, 0x02, 0x2a, 0x44, 0x97, 0x42, 0x03, 0xd3, 0x72, 0x19, 0x03, 0xd1, 0x13, 0x46, 0xf1, 0xe7, 0x19, 0x46, 0xed, 0xe7, 0x02, 0xf1, 0x10, 0x07, 0x77, 0x51, 0xd3, 0x60, 0xc2, 0xe9, 0x01, 0x40, 0x3b, 0x46, 0xca, 0x60, 0xe6, 0xe7, 0x03, 0x46, 0xe4, 0xe7, 0xe4, 0x59, 0x0b, 0x04, 0x70, 0xb5, 0x05, 0x46, 0x20, 0xb9, 0x08, 0x46, 0xbd, 0xe8, 0x70, 0x40, 0xff, 0xf7, 0xd0, 0xbf, 0x81, 0xb1, 0x15, 0x4e, 0xf4, 0x68, 0x0c, 0xb9, 0x25, 0x46, 0x0b, 0xe0, 0x23, 0x68, 0x9d, 0x42, 0x0a, 0xd1, 0xa3, 0x68, 0x19, 0x44, 0x01, 0xf1, 0x0f, 0x00, 0x63, 0x68, 0x20, 0xf0, 0x0f, 0x00, 0x83, 0x42, 0x03, 0xd1, 0x28, 0x46, 0x70, 0xbd, 0x26, 0x46, 0xeb, 0xe7, 0xe2, 0x68, 0x05, 0xf1, 0x20, 0x03, 0x12, 0x68, 0x03, 0x44, 0x9a, 0x42, 0x02, 0xd3, 0xc4, 0xe9, 0x01, 0x01, 0xf1, 0xe7, 0xff, 0xf7, 0xae, 0xff, 0x05, 0x46, 0x00, 0x28, 0xec, 0xd0, 0xd4, 0xe9, 0x00, 0x12, 0x00, 0xf0, 0x62, 0xf8, 0xe3, 0x68, 0xf3, 0x60, 0xe5, 0xe7, 0xe4, 0x59, 0x0b, 0x04, 0x10, 0xb1, 0x06, 0x4a, 0xd3, 0x68, 0x03, 0xb9, 0x70, 0x47, 0x19, 0x68, 0x88, 0x42, 0x02, 0xd1, 0xdb, 0x68, 0xd3, 0x60, 0x70, 0x47, 0x1a, 0x46, 0xf4, 0xe7, 0x00, 0xbf, 0xe4, 0x59, 0x0b, 0x04, 0x4f, 0xf0, 0xff, 0x30, 0x10, 0xb5, 0x07, 0x4c, 0x0a, 0x44, 0x91, 0x42, 0x01, 0xd1, 0xc0, 0x43, 0x10, 0xbd, 0x11, 0xf8, 0x01, 0x3b, 0x43, 0x40, 0xdb, 0xb2, 0x54, 0xf8, 0x23, 0x30, 0x83, 0xea, 0x10, 0x20, 0xf2, 0xe7, 0xb8, 0x49, 0x0b, 0x04, 0x70, 0x47, 0x70, 0x47, 0x03, 0x46, 0x70, 0xb5, 0x9c, 0x07, 0x1d, 0x46, 0x1f, 0xd1, 0x03, 0x2a, 0x19, 0xd9, 0x16, 0x46, 0xcc, 0xb2, 0x44, 0xea, 0x04, 0x24, 0x44, 0xea, 0x04, 0x44, 0x0f, 0x2e, 0x05, 0xf1, 0x10, 0x05, 0x19, 0xd8, 0x6f, 0xf0, 0x0f, 0x06, 0x15, 0x09, 0x06, 0xfb, 0x05, 0x22, 0x03, 0xeb, 0x05, 0x13, 0x95, 0x08, 0x03, 0xeb, 0x85, 0x06, 0xb3, 0x42, 0x13, 0xd1, 0x6f, 0xf0, 0x03, 0x04, 0x04, 0xfb, 0x05, 0x22, 0x1a, 0x44, 0x93, 0x42, 0x0f, 0xd1, 0x70, 0xbd, 0x00, 0x2a, 0xfc, 0xd0, 0x03, 0xf8, 0x01, 0x1b, 0x01, 0x3a, 0xd6, 0xe7, 0x45, 0xe9, 0x04, 0x44, 0x45, 0xe9, 0x02, 0x44, 0x10, 0x3e, 0xdb, 0xe7, 0x43, 0xf8, 0x04, 0x4b, 0xe6, 0xe7, 0x03, 0xf8, 0x01, 0x1b, 0xea, 0xe7, 0x0f, 0x2a, 0xf0, 0xb5, 0x03, 0xd9, 0x41, 0xea, 0x00, 0x03, 0x9b, 0x07, 0x05, 0xd0, 0x03, 0x46, 0x01, 0x3b, 0x0a, 0x44, 0x91, 0x42, 0x36, 0xd1, 0xf0, 0xbd, 0x15, 0x46, 0x01, 0xf1, 0x10, 0x04, 0x00, 0xf1, 0x10, 0x03, 0x54, 0xf8, 0x10, 0x6c, 0x10, 0x3d, 0x43, 0xf8, 0x10, 0x6c, 0x54, 0xf8, 0x0c, 0x6c, 0x0f, 0x2d, 0x43, 0xf8, 0x0c, 0x6c, 0x54, 0xf8, 0x08, 0x6c, 0x03, 0xf1, 0x10, 0x03, 0x43, 0xf8, 0x18, 0x6c, 0x54, 0xf8, 0x04, 0x6c, 0x04, 0xf1, 0x10, 0x04, 0x43, 0xf8, 0x14, 0x6c, 0xe8, 0xd8, 0xa2, 0xf1, 0x10, 0x03, 0x23, 0xf0, 0x0f, 0x03, 0x02, 0xf0, 0x0f, 0x02, 0x10, 0x33, 0x95, 0x08, 0x19, 0x44, 0xac, 0x00, 0x03, 0x44, 0x1e, 0x1f, 0x0f, 0x19, 0xb9, 0x42, 0x05, 0xd1, 0x6f, 0xf0, 0x03, 0x06, 0x23, 0x44, 0x06, 0xfb, 0x05, 0x22, 0xc9, 0xe7, 0x51, 0xf8, 0x04, 0xcb, 0x46, 0xf8, 0x04, 0xcf, 0xf2, 0xe7, 0x11, 0xf8, 0x01, 0x4b, 0x03, 0xf8, 0x01, 0x4f, 0xc1, 0xe7, 0x00, 0x00, 0x05, 0x4b, 0x00, 0xf0, 0x0f, 0x02, 0x00, 0x09, 0x9a, 0x5c, 0x1b, 0x5c, 0x4a, 0x70, 0x0b, 0x70, 0x00, 0x23, 0x8b, 0x70, 0x70, 0x47, 0x00, 0xbf, 0xda, 0x4d, 0x0b, 0x04, 0x2d, 0xe9, 0xf0, 0x47, 0x8e, 0xb0, 0x80, 0x46, 0x0e, 0x46, 0x01, 0xad, 0x01, 0x46, 0x15, 0x48, 0xff, 0xf7, 0x0c, 0xfe, 0x00, 0x24, 0x2f, 0x46, 0xdf, 0xf8, 0x50, 0x90, 0xdf, 0xf8, 0x48, 0xa0, 0xb4, 0x42, 0x0a, 0xdb, 0x26, 0xea, 0xe6, 0x76, 0x33, 0x07, 0x03, 0xd0, 0x39, 0x46, 0x0e, 0x48, 0xff, 0xf7, 0xfc, 0xfd, 0x0e, 0xb0, 0xbd, 0xe8, 0xf0, 0x87, 0x18, 0xf8, 0x04, 0x30, 0x28, 0x46, 0x4a, 0x46, 0x05, 0x21, 0xff, 0xf7, 0x1e, 0xfe, 0x04, 0xf0, 0x0f, 0x03, 0x0f, 0x2b, 0x05, 0xf1, 0x03, 0x05, 0x04, 0xd1, 0x39, 0x46, 0x50, 0x46, 0xff, 0xf7, 0xe8, 0xfd, 0x3d, 0x46, 0x01, 0x34, 0xde, 0xe7, 0x00, 0xbf, 0xeb, 0x4d, 0x0b, 0x04, 0x95, 0x57, 0x0b, 0x04, 0xf5, 0x4d, 0x0b, 0x04, 0x07, 0xb5, 0x00, 0x90, 0x01, 0x48, 0xff, 0xf7, 0xd9, 0xfd, 0xfe, 0xe7, 0xb8, 0x4d, 0x0b, 0x04, 0x38, 0xb5, 0x04, 0x46, 0xa8, 0xb1, 0x8b, 0x08, 0x00, 0xeb, 0x83, 0x05, 0x00, 0x20, 0xac, 0x42, 0x15, 0xd1, 0x6f, 0xf0, 0x03, 0x02, 0x02, 0xfb, 0x03, 0x11, 0x01, 0x29, 0x81, 0xbf, 0x34, 0xf8, 0x02, 0x3b, 0x02, 0x39, 0xc0, 0x18, 0x80, 0xb2, 0x41, 0xb1, 0x23, 0x78, 0x18, 0x44, 0x80, 0xb2, 0x04, 0xe0, 0x01, 0x46, 0x05, 0x48, 0xff, 0xf7, 0xb9, 0xfd, 0x20, 0x46, 0x38, 0xbd, 0x54, 0xf8, 0x04, 0x2b, 0x02, 0xeb, 0x12, 0x42, 0x10, 0x44, 0x80, 0xb2, 0xe0, 0xe7, 0xfb, 0x4d, 0x0b, 0x04, 0x08, 0xb5, 0x44, 0xf6, 0x54, 0x03, 0x01, 0x88, 0x99, 0x42, 0x05, 0xd0, 0x12, 0x48, 0xff, 0xf7, 0xa5, 0xfd, 0x4f, 0xf0, 0xff, 0x30, 0x08, 0xbd, 0x83, 0x88, 0x5b, 0xb9, 0xc1, 0x88, 0xb1, 0xf5, 0x00, 0x7f, 0x01, 0xd0, 0x0d, 0x48, 0xf2, 0xe7, 0x41, 0x89, 0xb1, 0xf5, 0x80, 0x7f, 0x10, 0xd0, 0x0b, 0x48, 0xec, 0xe7, 0x01, 0x2b, 0x09, 0xd1, 0xc1, 0x88, 0x40, 0x29, 0x01, 0xd0, 0x09, 0x48, 0xe5, 0xe7, 0x41, 0x89, 0x40, 0x29, 0x04, 0xd0, 0x07, 0x48, 0xe0, 0xe7, 0x19, 0x46, 0x07, 0x48, 0xdd, 0xe7, 0x00, 0x20, 0xdf, 0xe7, 0x00, 0xbf, 0xdf, 0x4e, 0x0b, 0x04, 0xfc, 0x4e, 0x0b, 0x04, 0x18, 0x4f, 0x0b, 0x04, 0x34, 0x4f, 0x0b, 0x04, 0x50, 0x4f, 0x0b, 0x04, 0x6c, 0x4f, 0x0b, 0x04, 0x00, 0x68, 0x03, 0x4b, 0xc0, 0x1a, 0x18, 0xbf, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x00, 0xbf, 0x41, 0x57, 0x49, 0x48, 0x10, 0xb5, 0x04, 0x46, 0x01, 0x68, 0x17, 0x48, 0xff, 0xf7, 0x66, 0xfd, 0xa1, 0x88, 0x16, 0x48, 0xff, 0xf7, 0x62, 0xfd, 0xe1, 0x88, 0x15, 0x48, 0xff, 0xf7, 0x5e, 0xfd, 0xe1, 0x68, 0x14, 0x48, 0xff, 0xf7, 0x5a, 0xfd, 0x21, 0x69, 0x13, 0x48, 0xff, 0xf7, 0x56, 0xfd, 0x61, 0x69, 0x12, 0x48, 0xff, 0xf7, 0x52, 0xfd, 0xa1, 0x69, 0x11, 0x48, 0xff, 0xf7, 0x4e, 0xfd, 0xe1, 0x69, 0x10, 0x48, 0xff, 0xf7, 0x4a, 0xfd, 0x21, 0x6a, 0x0f, 0x48, 0xff, 0xf7, 0x46, 0xfd, 0x61, 0x6a, 0x0e, 0x48, 0xff, 0xf7, 0x42, 0xfd, 0x04, 0xf1, 0x28, 0x01, 0x0c, 0x48, 0xff, 0xf7, 0x3d, 0xfd, 0x00, 0x20, 0x10, 0xbd, 0x00, 0xbf, 0x5f, 0x4e, 0x0b, 0x04, 0x6b, 0x4e, 0x0b, 0x04, 0x7a, 0x4e, 0x0b, 0x04, 0x89, 0x4e, 0x0b, 0x04, 0x95, 0x4e, 0x0b, 0x04, 0xa1, 0x4e, 0x0b, 0x04, 0xad, 0x4e, 0x0b, 0x04, 0xb8, 0x4e, 0x0b, 0x04, 0xc1, 0x4e, 0x0b, 0x04, 0xcc, 0x4e, 0x0b, 0x04, 0xd6, 0x4e, 0x0b, 0x04, 0x70, 0xb5, 0x14, 0x4b, 0x0e, 0x46, 0x01, 0x68, 0x05, 0x46, 0x99, 0x42, 0x05, 0xd0, 0x12, 0x48, 0xff, 0xf7, 0x1a, 0xfd, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0xbd, 0xc1, 0x68, 0xff, 0xf7, 0x3e, 0xff, 0x4f, 0xf6, 0xff, 0x73, 0x98, 0x42, 0x01, 0x46, 0x01, 0xd0, 0x0c, 0x48, 0xf0, 0xe7, 0x6c, 0x89, 0x0e, 0xb9, 0xee, 0x68, 0x2e, 0x44, 0x29, 0x69, 0x30, 0x46, 0xff, 0xf7, 0x2f, 0xff, 0x4f, 0xf6, 0xff, 0x73, 0x21, 0x18, 0x89, 0xb2, 0x99, 0x42, 0x01, 0xd0, 0x05, 0x48, 0xe0, 0xe7, 0x00, 0x20, 0xe2, 0xe7, 0x00, 0xbf, 0x41, 0x57, 0x49, 0x48, 0x0a, 0x4e, 0x0b, 0x04, 0x29, 0x4e, 0x0b, 0x04, 0x45, 0x4e, 0x0b, 0x04, 0x03, 0x4b, 0x1b, 0x68, 0x5a, 0x69, 0x52, 0x06, 0xfc, 0xd5, 0x18, 0x60, 0x70, 0x47, 0x00, 0xbf, 0x04, 0x5a, 0x0b, 0x04, 0x03, 0x4b, 0x1b, 0x68, 0x5a, 0x69, 0xd2, 0x07, 0xfc, 0xd5, 0x18, 0x68, 0xc0, 0xb2, 0x70, 0x47, 0x04, 0x5a, 0x0b, 0x04, 0x02, 0x4b, 0x1b, 0x68, 0x58, 0x69, 0x00, 0xf0, 0x01, 0x00, 0x70, 0x47, 0x04, 0x5a, 0x0b, 0x04, 0x10, 0xb5, 0x04, 0x46, 0x06, 0x48, 0xff, 0xf7, 0x2b, 0xfe, 0x06, 0x4b, 0x00, 0xeb, 0x84, 0x20, 0x18, 0x60, 0xd0, 0xf8, 0xa4, 0x30, 0x43, 0xf0, 0x02, 0x03, 0xc0, 0xf8, 0xa4, 0x30, 0x10, 0xbd, 0x00, 0x70, 0x04, 0x40, 0x04, 0x5a, 0x0b, 0x04, 0x10, 0xb5, 0x04, 0x46, 0x0b, 0x48, 0xff, 0xf7, 0x17, 0xfe, 0x0b, 0x4b, 0x00, 0xeb, 0x84, 0x20, 0x18, 0x60, 0xd0, 0xf8, 0xa4, 0x30, 0x43, 0xf0, 0x04, 0x03, 0xc0, 0xf8, 0xa4, 0x30, 0xd0, 0xf8, 0xa4, 0x30, 0x5b, 0x07, 0xfb, 0xd4, 0xd0, 0xf8, 0xa4, 0x30, 0x23, 0xf0, 0x02, 0x03, 0xc0, 0xf8, 0xa4, 0x30, 0x10, 0xbd, 0x00, 0x70, 0x04, 0x40, 0x04, 0x5a, 0x0b, 0x04, 0x05, 0x4b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x04, 0x2b, 0x9a, 0xbf, 0x03, 0x4a, 0x52, 0xf8, 0x23, 0x00, 0x03, 0x48, 0x70, 0x47, 0x00, 0xbf, 0x84, 0xc4, 0x04, 0x40, 0x8c, 0x4f, 0x0b, 0x04, 0x00, 0x5a, 0x62, 0x02, 0xf8, 0xb5, 0x04, 0x46, 0x19, 0x48, 0x0e, 0x46, 0x17, 0x46, 0xff, 0xf7, 0xe5, 0xfd, 0x05, 0x46, 0x20, 0x46, 0xff, 0xf7, 0x4d, 0xfa, 0x30, 0x46, 0x15, 0x4e, 0x39, 0x46, 0x01, 0x22, 0x05, 0xeb, 0x84, 0x25, 0x00, 0xf0, 0xd3, 0xf8, 0x35, 0x60, 0x03, 0x25, 0x20, 0x46, 0xff, 0xf7, 0xa4, 0xff, 0x31, 0x68, 0x0d, 0x61, 0xff, 0xf7, 0xd2, 0xff, 0x4f, 0xf4, 0xe1, 0x13, 0x00, 0xf5, 0x61, 0x20, 0xb0, 0xfb, 0xf3, 0xf0, 0xcb, 0x68, 0x43, 0xf0, 0x80, 0x03, 0xcb, 0x60, 0x03, 0x0a, 0xc0, 0xb2, 0x4b, 0x60, 0x08, 0x60, 0xcb, 0x68, 0x20, 0x46, 0x23, 0xf0, 0x80, 0x03, 0xcb, 0x60, 0x07, 0x23, 0xcd, 0x60, 0x8b, 0x60, 0xbd, 0xe8, 0xf8, 0x40, 0xff, 0xf7, 0x9a, 0xbf, 0x00, 0x70, 0x04, 0x40, 0x04, 0x5a, 0x0b, 0x04, 0x10, 0xb5, 0x04, 0x46, 0xff, 0xf7, 0x1a, 0xfa, 0x04, 0xf5, 0x80, 0x11, 0x03, 0x24, 0x01, 0xf5, 0x8e, 0x71, 0x89, 0x02, 0x0d, 0x4b, 0x0c, 0x61, 0x19, 0x60, 0xff, 0xf7, 0xa5, 0xff, 0x4f, 0xf4, 0xe1, 0x13, 0x00, 0xf5, 0x61, 0x20, 0xb0, 0xfb, 0xf3, 0xf0, 0xcb, 0x68, 0x43, 0xf0, 0x80, 0x03, 0xcb, 0x60, 0x03, 0x0a, 0xc0, 0xb2, 0x4b, 0x60, 0x08, 0x60, 0xcb, 0x68, 0x23, 0xf0, 0x80, 0x03, 0xcb, 0x60, 0x07, 0x23, 0xcc, 0x60, 0x8b, 0x60, 0x10, 0xbd, 0x00, 0xbf, 0x04, 0x5a, 0x0b, 0x04, 0x30, 0xb5, 0x0f, 0x25, 0x8b, 0x00, 0xc1, 0xf3, 0xc1, 0x01, 0x03, 0xf0, 0x1c, 0x03, 0x50, 0xf8, 0x21, 0x40, 0x9d, 0x40, 0x24, 0xea, 0x05, 0x04, 0x9a, 0x40, 0x22, 0x43, 0x40, 0xf8, 0x21, 0x20, 0x30, 0xbd, 0x00, 0x00, 0x10, 0xb4, 0x24, 0x24, 0x43, 0x09, 0x5c, 0x43, 0x0a, 0x2b, 0x94, 0xbf, 0x04, 0x4b, 0x05, 0x4b, 0x0a, 0x46, 0x23, 0x44, 0x01, 0x46, 0x5d, 0xf8, 0x04, 0x4b, 0x18, 0x46, 0xff, 0xf7, 0xde, 0xbf, 0x00, 0xa4, 0x04, 0x40, 0x74, 0x1e, 0x02, 0x07, 0xc1, 0xf3, 0xc1, 0x03, 0x50, 0xf8, 0x23, 0x00, 0xbf, 0xf3, 0x5f, 0x8f, 0x89, 0x00, 0x01, 0xf0, 0x1c, 0x01, 0xc8, 0x40, 0x00, 0xf0, 0x0f, 0x00, 0x70, 0x47, 0x00, 0x00, 0x24, 0x22, 0x43, 0x09, 0x5a, 0x43, 0x0a, 0x2b, 0x01, 0x46, 0x94, 0xbf, 0x02, 0x48, 0x03, 0x48, 0x10, 0x44, 0xff, 0xf7, 0xe7, 0xbf, 0x00, 0xbf, 0x00, 0xa4, 0x04, 0x40, 0x74, 0x1e, 0x02, 0x07, 0x30, 0xb5, 0x24, 0x24, 0x43, 0x09, 0x5c, 0x43, 0x0a, 0x2b, 0x94, 0xbf, 0x0a, 0x4b, 0x0b, 0x4b, 0xc0, 0xf3, 0x00, 0x15, 0x23, 0x44, 0x03, 0x24, 0x14, 0x33, 0x40, 0x00, 0x53, 0xf8, 0x25, 0x20, 0x00, 0xf0, 0x1e, 0x00, 0x84, 0x40, 0x22, 0xea, 0x04, 0x02, 0x01, 0xfa, 0x00, 0xf0, 0x02, 0x43, 0x43, 0xf8, 0x25, 0x20, 0x00, 0x20, 0x30, 0xbd, 0x00, 0xa4, 0x04, 0x40, 0x74, 0x1e, 0x02, 0x07, 0x30, 0xb5, 0x24, 0x24, 0x43, 0x09, 0x5c, 0x43, 0x0a, 0x2b, 0x94, 0xbf, 0x0a, 0x4b, 0x0b, 0x4b, 0xc0, 0xf3, 0x00, 0x15, 0x23, 0x44, 0x03, 0x24, 0x1c, 0x33, 0x40, 0x00, 0x53, 0xf8, 0x25, 0x20, 0x00, 0xf0, 0x1e, 0x00, 0x84, 0x40, 0x22, 0xea, 0x04, 0x02, 0x01, 0xfa, 0x00, 0xf0, 0x02, 0x43, 0x43, 0xf8, 0x25, 0x20, 0x00, 0x20, 0x30, 0xbd, 0x00, 0xa4, 0x04, 0x40, 0x74, 0x1e, 0x02, 0x07, 0x2d, 0xe9, 0xf0, 0x4f, 0x00, 0x27, 0x8b, 0xb0, 0xcd, 0xe9, 0x08, 0x12, 0x08, 0x9b, 0x9f, 0x42, 0x04, 0xd1, 0x4f, 0xf0, 0xff, 0x30, 0x0b, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x10, 0xf8, 0x37, 0x60, 0x00, 0xeb, 0xc7, 0x08, 0x01, 0x37, 0x00, 0x2e, 0xf0, 0xd0, 0x98, 0xf8, 0x01, 0xc0, 0x0b, 0x2e, 0x4f, 0xea, 0xdc, 0x03, 0x05, 0x93, 0x05, 0x9a, 0x4f, 0xea, 0x1c, 0x13, 0x06, 0x93, 0x4f, 0xea, 0x82, 0x04, 0x06, 0xeb, 0xc6, 0x03, 0x06, 0x9a, 0x4f, 0xea, 0x83, 0x03, 0x03, 0xeb, 0x82, 0x02, 0x73, 0xd8, 0x98, 0x49, 0x98, 0x4d, 0x19, 0x44, 0x01, 0xeb, 0x04, 0x0b, 0x97, 0x4c, 0x15, 0x44, 0x14, 0x44, 0x97, 0x4a, 0xd3, 0x18, 0x03, 0x93, 0xdb, 0xf8, 0x00, 0x20, 0xbf, 0xf3, 0x5f, 0x8f, 0xd5, 0xf8, 0x00, 0xa0, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0x68, 0x19, 0x46, 0xbf, 0xf3, 0x5f, 0x8f, 0x03, 0x9b, 0x1b, 0x68, 0x01, 0x93, 0xbf, 0xf3, 0x5f, 0x8f, 0x0f, 0x23, 0x0c, 0xf0, 0x07, 0x0e, 0x4f, 0xea, 0x8e, 0x0e, 0x03, 0xfa, 0x0e, 0xf3, 0x22, 0xea, 0x03, 0x02, 0x09, 0x9b, 0x33, 0xb1, 0x98, 0xf8, 0x02, 0x30, 0x03, 0xf0, 0x0f, 0x03, 0x03, 0xfa, 0x0e, 0xf3, 0x1a, 0x43, 0x03, 0x23, 0x0c, 0xf0, 0x0f, 0x0e, 0x4f, 0xea, 0x4e, 0x0e, 0x03, 0xfa, 0x0e, 0xf3, 0xdb, 0x43, 0x98, 0xf8, 0x03, 0x90, 0x03, 0xea, 0x0a, 0x0a, 0x09, 0xf0, 0x03, 0x09, 0x09, 0xfa, 0x0e, 0xf9, 0x49, 0xea, 0x0a, 0x0a, 0x98, 0xf8, 0x04, 0x90, 0x0b, 0x40, 0x09, 0xf0, 0x03, 0x09, 0x09, 0xfa, 0x0e, 0xfe, 0x4e, 0xea, 0x03, 0x03, 0x02, 0x93, 0x98, 0xf8, 0x02, 0x30, 0x01, 0x2b, 0x2f, 0xd1, 0x98, 0xf8, 0x05, 0x80, 0x01, 0x99, 0x03, 0xfa, 0x0c, 0xfe, 0x08, 0xf0, 0x01, 0x08, 0x21, 0xea, 0x0e, 0x0e, 0x08, 0xfa, 0x0c, 0xfc, 0x4c, 0xea, 0x0e, 0x01, 0x01, 0x91, 0x04, 0x97, 0x00, 0xeb, 0xc7, 0x00, 0x04, 0x99, 0x08, 0x9f, 0xb9, 0x42, 0x1c, 0xd3, 0xbf, 0xf3, 0x5f, 0x8f, 0xcb, 0xf8, 0x00, 0x20, 0xbf, 0xf3, 0x5f, 0x8f, 0xc5, 0xf8, 0x00, 0xa0, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x9a, 0x22, 0x60, 0x00, 0x2b, 0x40, 0xf0, 0xb8, 0x80, 0x18, 0x46, 0x6d, 0xe7, 0x62, 0x49, 0x62, 0x4d, 0x19, 0x44, 0x01, 0xeb, 0x04, 0x0b, 0x61, 0x4c, 0x15, 0x44, 0x14, 0x44, 0x61, 0x4a, 0x8a, 0xe7, 0x00, 0x23, 0xdb, 0xe7, 0x07, 0x78, 0x90, 0xf8, 0x01, 0xe0, 0x00, 0x2f, 0xdd, 0xd0, 0x4f, 0xea, 0x1e, 0x11, 0x07, 0x91, 0x06, 0x99, 0x4f, 0xea, 0xde, 0x0c, 0x88, 0x46, 0x07, 0x99, 0x88, 0x45, 0x02, 0xd1, 0xbe, 0x42, 0x00, 0xf0, 0x85, 0x80, 0xbf, 0xf3, 0x5f, 0x8f, 0xcb, 0xf8, 0x00, 0x20, 0xbf, 0xf3, 0x5f, 0x8f, 0xc5, 0xf8, 0x00, 0xa0, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x9a, 0x22, 0x60, 0x23, 0xb1, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9b, 0x03, 0x9a, 0x13, 0x60, 0x07, 0x9c, 0x07, 0xeb, 0xc7, 0x03, 0x44, 0x4a, 0x99, 0x00, 0x01, 0xeb, 0x84, 0x06, 0x8a, 0x18, 0x01, 0xf1, 0x80, 0x41, 0x42, 0x4d, 0x42, 0x4c, 0x01, 0xf5, 0x94, 0x21, 0x01, 0xf5, 0x7b, 0x71, 0x02, 0xeb, 0x8c, 0x0b, 0x75, 0x19, 0x34, 0x19, 0x03, 0x91, 0x52, 0xf8, 0x2c, 0x20, 0xbf, 0xf3, 0x5f, 0x8f, 0x3a, 0x49, 0x56, 0xf8, 0x01, 0xa0, 0xbf, 0xf3, 0x5f, 0x8f, 0x08, 0x39, 0x71, 0x58, 0x02, 0x91, 0xbf, 0xf3, 0x5f, 0x8f, 0x37, 0x49, 0x51, 0xf8, 0x23, 0x30, 0x01, 0x93, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x23, 0x0f, 0x21, 0x0e, 0xf0, 0x07, 0x06, 0xb6, 0x00, 0x01, 0xfa, 0x06, 0xf8, 0x81, 0x78, 0x22, 0xea, 0x08, 0x02, 0x05, 0x91, 0x09, 0x99, 0x29, 0xb1, 0x05, 0x99, 0x01, 0xf0, 0x0f, 0x08, 0x08, 0xfa, 0x06, 0xf6, 0x32, 0x43, 0x03, 0x21, 0x0e, 0xf0, 0x0f, 0x08, 0x4f, 0xea, 0x48, 0x08, 0x01, 0xfa, 0x08, 0xf6, 0xf6, 0x43, 0x90, 0xf8, 0x03, 0x90, 0x06, 0xea, 0x0a, 0x0a, 0x09, 0xea, 0x01, 0x09, 0x09, 0xfa, 0x08, 0xf9, 0x49, 0xea, 0x0a, 0x0a, 0x90, 0xf8, 0x04, 0x90, 0x02, 0x99, 0x09, 0xf0, 0x03, 0x09, 0x0e, 0x40, 0x09, 0xfa, 0x08, 0xf8, 0x48, 0xea, 0x06, 0x01, 0x02, 0x91, 0x05, 0x99, 0x01, 0x29, 0x0d, 0xd1, 0x01, 0x9b, 0x01, 0xfa, 0x0e, 0xf6, 0x23, 0xea, 0x06, 0x06, 0x43, 0x79, 0x03, 0xf0, 0x01, 0x03, 0x03, 0xfa, 0x0e, 0xfe, 0x4e, 0xea, 0x06, 0x03, 0x01, 0x93, 0x0b, 0x46, 0x04, 0x9e, 0x07, 0x99, 0x01, 0x36, 0x04, 0x96, 0x08, 0x30, 0xcd, 0xe9, 0x05, 0xc1, 0x3e, 0x46, 0x47, 0xe7, 0x05, 0x99, 0x61, 0x45, 0xb3, 0xd0, 0xbf, 0xf3, 0x5f, 0x8f, 0xcb, 0xf8, 0x00, 0x20, 0x24, 0x22, 0x11, 0x46, 0x08, 0x4a, 0x11, 0xfb, 0x07, 0x22, 0x02, 0xeb, 0x8c, 0x0b, 0x52, 0xf8, 0x2c, 0x20, 0xbf, 0xf3, 0x5f, 0x8f, 0xa3, 0xe7, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9b, 0x03, 0x9a, 0x00, 0x20, 0x13, 0x60, 0xb0, 0xe6, 0xdc, 0xa3, 0x04, 0x40, 0xf8, 0xa3, 0x04, 0x40, 0xf0, 0xa3, 0x04, 0x40, 0xec, 0xa3, 0x04, 0x40, 0x50, 0x1e, 0x02, 0x07, 0x6c, 0x1e, 0x02, 0x07, 0x64, 0x1e, 0x02, 0x07, 0x60, 0x1e, 0x02, 0x07, 0x38, 0xb5, 0x04, 0x46, 0x04, 0x48, 0x0d, 0x46, 0xff, 0xf7, 0x96, 0xfb, 0xbf, 0xf3, 0x5f, 0x8f, 0x40, 0xf8, 0x24, 0x50, 0x38, 0xbd, 0x00, 0xbf, 0x00, 0x02, 0x05, 0x40, 0x10, 0xb5, 0x04, 0x46, 0x03, 0x48, 0xff, 0xf7, 0x89, 0xfb, 0x50, 0xf8, 0x24, 0x00, 0xbf, 0xf3, 0x5f, 0x8f, 0x10, 0xbd, 0x00, 0x02, 0x05, 0x40, 0x10, 0xb5, 0x07, 0x4c, 0x06, 0x49, 0x02, 0x20, 0xff, 0xf7, 0xe0, 0xff, 0xbf, 0xf3, 0x4f, 0x8f, 0xbf, 0xf3, 0x6f, 0x8f, 0x02, 0x20, 0xff, 0xf7, 0xe7, 0xff, 0xa0, 0x42, 0xf2, 0xd1, 0x10, 0xbd, 0x5a, 0xa5, 0xa5, 0x5a, 0x38, 0xb5, 0x00, 0x24, 0x15, 0x4d, 0x20, 0x46, 0xff, 0xf7, 0xdc, 0xff, 0x02, 0x46, 0x18, 0xb1, 0x21, 0x46, 0x28, 0x46, 0xff, 0xf7, 0x0a, 0xfa, 0x01, 0x34, 0x06, 0x2c, 0xf3, 0xd1, 0x02, 0x20, 0xff, 0xf7, 0xd0, 0xff, 0x0e, 0x4b, 0x98, 0x42, 0x04, 0xd1, 0x0e, 0x48, 0xff, 0xf7, 0xfe, 0xf9, 0x01, 0x20, 0x38, 0xbd, 0x0c, 0x4b, 0x98, 0x42, 0x0e, 0xd1, 0x0c, 0x49, 0x02, 0x20, 0xff, 0xf7, 0xb3, 0xff, 0x0b, 0x4c, 0x96, 0x20, 0xfe, 0xf7, 0xaf, 0xfd, 0x02, 0x20, 0xff, 0xf7, 0xba, 0xff, 0xa0, 0x42, 0xf7, 0xd1, 0x07, 0x48, 0xe9, 0xe7, 0x00, 0x20, 0xea, 0xe7, 0x71, 0x50, 0x0b, 0x04, 0x5a, 0xa5, 0xa5, 0x5a, 0x87, 0x50, 0x0b, 0x04, 0xa5, 0x5a, 0xa5, 0x5a, 0xa6, 0x5a, 0xa5, 0x5a, 0xa7, 0x5a, 0xa5, 0x5a, 0x97, 0x50, 0x0b, 0x04, 0x08, 0xb5, 0x00, 0x21, 0x02, 0x20, 0xff, 0xf7, 0x93, 0xff, 0xbf, 0xf3, 0x4f, 0x8f, 0xbf, 0xf3, 0x6f, 0x8f, 0x02, 0x20, 0xff, 0xf7, 0x9a, 0xff, 0x00, 0x28, 0xf2, 0xd1, 0x08, 0xbd, 0x10, 0xb5, 0x04, 0x46, 0x21, 0x46, 0x02, 0x20, 0xff, 0xf7, 0x83, 0xff, 0xbf, 0xf3, 0x4f, 0x8f, 0xbf, 0xf3, 0x6f, 0x8f, 0x02, 0x20, 0xff, 0xf7, 0x8a, 0xff, 0xa0, 0x42, 0xf2, 0xd1, 0x10, 0xbd, 0x10, 0xb5, 0x04, 0x46, 0x21, 0x46, 0x07, 0x20, 0xff, 0xf7, 0x73, 0xff, 0xbf, 0xf3, 0x4f, 0x8f, 0xbf, 0xf3, 0x6f, 0x8f, 0x07, 0x20, 0xff, 0xf7, 0x7a, 0xff, 0xa0, 0x42, 0xf2, 0xd1, 0x00, 0x20, 0x10, 0xbd, 0x10, 0xb5, 0x04, 0x46, 0x07, 0x20, 0xff, 0xf7, 0x71, 0xff, 0x20, 0x60, 0x00, 0x20, 0x10, 0xbd, 0x00, 0x23, 0x07, 0xb5, 0x01, 0xa8, 0x01, 0x93, 0xff, 0xf7, 0xf2, 0xff, 0xbd, 0xf8, 0x04, 0x00, 0x43, 0x1e, 0x58, 0x42, 0x58, 0x41, 0x03, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x00, 0x23, 0x73, 0xb5, 0x01, 0xa8, 0x01, 0x93, 0x2f, 0x4d, 0xff, 0xf7, 0xe3, 0xff, 0xbd, 0xf8, 0x06, 0x40, 0x2e, 0x68, 0xc4, 0xf3, 0x0e, 0x04, 0xbf, 0xf3, 0x5f, 0x8f, 0x16, 0xf0, 0x07, 0x02, 0x29, 0xd1, 0x01, 0x9b, 0x00, 0x2b, 0x46, 0xd0, 0x00, 0x2c, 0x46, 0xd0, 0x0a, 0x2c, 0x04, 0xd8, 0x01, 0x23, 0xa3, 0x40, 0x13, 0xf4, 0x92, 0x6f, 0x01, 0xd1, 0x44, 0xf4, 0x00, 0x44, 0x01, 0x98, 0x00, 0xf0, 0x00, 0x40, 0x20, 0x43, 0x01, 0x90, 0xff, 0xf7, 0xb3, 0xff, 0x00, 0x23, 0x01, 0xa8, 0x01, 0x93, 0xff, 0xf7, 0xbf, 0xff, 0x01, 0x9b, 0x99, 0xb2, 0x1b, 0x04, 0x2f, 0xd4, 0x4b, 0x1e, 0x0a, 0x2b, 0x2e, 0xd8, 0x19, 0x4a, 0x1a, 0x48, 0x52, 0xf8, 0x23, 0x10, 0xff, 0xf7, 0x5c, 0xf9, 0x00, 0x20, 0x02, 0xb0, 0x70, 0xbd, 0x04, 0x2a, 0x1b, 0xd0, 0x02, 0x2a, 0x0f, 0xd1, 0x08, 0x23, 0xbf, 0xf3, 0x5f, 0x8f, 0x07, 0x22, 0x0a, 0x2c, 0x2a, 0x60, 0xd6, 0xd8, 0x01, 0x22, 0xa2, 0x40, 0x12, 0xf4, 0xdb, 0x6f, 0xd3, 0xd1, 0x00, 0x2c, 0xcf, 0xd1, 0x1c, 0x46, 0xcf, 0xe7, 0x01, 0x2a, 0x05, 0xd0, 0x31, 0x46, 0x0b, 0x48, 0xff, 0xf7, 0x3f, 0xf9, 0xb2, 0x07, 0xe7, 0xd4, 0x0b, 0x23, 0xe6, 0xe7, 0x05, 0x23, 0xe4, 0xe7, 0x01, 0x24, 0xc1, 0xe7, 0x02, 0x24, 0xbf, 0xe7, 0x06, 0x48, 0xd4, 0xe7, 0x06, 0x48, 0xd2, 0xe7, 0x00, 0xbf, 0x00, 0xc1, 0x03, 0x40, 0xa0, 0x4f, 0x0b, 0x04, 0x24, 0x50, 0x0b, 0x04, 0xcc, 0x4f, 0x0b, 0x04, 0x35, 0x50, 0x0b, 0x04, 0x53, 0x50, 0x0b, 0x04, 0xf8, 0xb5, 0x00, 0x24, 0x02, 0x27, 0x4f, 0xf0, 0x80, 0x46, 0x0a, 0x4d, 0x07, 0xfa, 0x04, 0xf3, 0x32, 0x69, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x42, 0x06, 0xd0, 0xbf, 0xf3, 0x5f, 0x8f, 0x33, 0x61, 0xab, 0x69, 0x0b, 0xb1, 0x68, 0x69, 0x98, 0x47, 0x04, 0x34, 0x10, 0x2c, 0x05, 0xf1, 0x1c, 0x05, 0xec, 0xd1, 0xf8, 0xbd, 0x08, 0x5a, 0x0b, 0x04, 0x70, 0xb5, 0x2f, 0x4e, 0x33, 0x68, 0x00, 0x2b, 0x58, 0xdc, 0x2e, 0x4a, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf0, 0x20, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0x14, 0x3a, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf0, 0x40, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0x26, 0x4b, 0x1a, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x22, 0xf0, 0x40, 0x02, 0xbf, 0xf3, 0x5f, 0x8f, 0x1a, 0x60, 0x1a, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x42, 0xf0, 0x40, 0x02, 0xbf, 0xf3, 0x5f, 0x8f, 0x1a, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x80, 0x43, 0x00, 0x25, 0x1d, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x1d, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0xff, 0x33, 0x18, 0x4a, 0x13, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x53, 0x60, 0x93, 0x69, 0x16, 0x4c, 0x43, 0xf0, 0x07, 0x03, 0x93, 0x61, 0x29, 0x46, 0x70, 0x22, 0x20, 0x46, 0xff, 0xf7, 0x20, 0xfa, 0x12, 0x4b, 0x13, 0x4a, 0xa3, 0x60, 0x13, 0x4b, 0x62, 0x62, 0x03, 0xf1, 0x20, 0x02, 0xe2, 0x62, 0x11, 0x4a, 0x23, 0x61, 0x22, 0x64, 0x03, 0xf1, 0x40, 0x02, 0x60, 0x33, 0x63, 0x66, 0x0f, 0x4b, 0xa2, 0x64, 0x1d, 0x60, 0x01, 0x23, 0x0e, 0x4a, 0x25, 0x60, 0xe5, 0x61, 0xa5, 0x63, 0x65, 0x65, 0xe2, 0x65, 0x33, 0x60, 0x70, 0xbd, 0x00, 0xbf, 0x84, 0x59, 0x0b, 0x04, 0x1c, 0xc0, 0x03, 0x40, 0x10, 0xc0, 0x03, 0x40, 0x10, 0x00, 0x00, 0x40, 0x08, 0x5a, 0x0b, 0x04, 0x00, 0x01, 0x00, 0x40, 0x48, 0x01, 0x00, 0x40, 0x00, 0x59, 0x0b, 0x04, 0x90, 0x01, 0x00, 0x40, 0x78, 0x5a, 0x0b, 0x04, 0xd8, 0x01, 0x00, 0x40, 0x03, 0x23, 0x1c, 0x20, 0x10, 0xb5, 0x07, 0x4a, 0x00, 0xfb, 0x03, 0xf1, 0x8c, 0x58, 0x24, 0xb9, 0x01, 0x24, 0x50, 0x18, 0x54, 0x50, 0x43, 0x60, 0x10, 0xbd, 0x13, 0xf1, 0xff, 0x33, 0xf3, 0xd2, 0x00, 0x20, 0xf9, 0xe7, 0x08, 0x5a, 0x0b, 0x04, 0x00, 0x23, 0x1c, 0x20, 0x10, 0xb5, 0x07, 0x4a, 0x00, 0xfb, 0x03, 0xf1, 0x8c, 0x58, 0x24, 0xb9, 0x01, 0x24, 0x50, 0x18, 0x54, 0x50, 0x43, 0x60, 0x10, 0xbd, 0x01, 0x33, 0x04, 0x2b, 0xf3, 0xd1, 0x00, 0x20, 0xf9, 0xe7, 0x08, 0x5a, 0x0b, 0x04, 0x38, 0xb5, 0x03, 0x68, 0x0d, 0x46, 0x04, 0x69, 0xc3, 0xb1, 0x4b, 0x68, 0x9b, 0xb1, 0x10, 0x30, 0xff, 0xf7, 0xbb, 0xf9, 0x60, 0x61, 0xab, 0x68, 0x2a, 0x7b, 0x1b, 0x02, 0x9b, 0xb2, 0x13, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0x61, 0x2b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x20, 0x23, 0x60, 0x38, 0xbd, 0x03, 0x4b, 0x63, 0x61, 0xec, 0xe7, 0x4f, 0xf0, 0xff, 0x30, 0xf8, 0xe7, 0x00, 0xbf, 0x00, 0xf8, 0xff, 0xff, 0x38, 0xb5, 0x04, 0x46, 0x24, 0x68, 0x85, 0x68, 0x00, 0x69, 0x9c, 0xb1, 0xbf, 0xf3, 0x5f, 0x8f, 0x41, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x82, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0xc3, 0x60, 0xff, 0xf7, 0x90, 0xf9, 0xbf, 0xf3, 0x5f, 0x8f, 0xa8, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x23, 0x00, 0x20, 0x2b, 0x60, 0x38, 0xbd, 0x4f, 0xf0, 0xff, 0x30, 0xfb, 0xe7, 0x02, 0x68, 0x83, 0x68, 0x22, 0xb1, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x20, 0x18, 0x60, 0x70, 0x47, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x03, 0x68, 0x4b, 0xb1, 0x4f, 0xf0, 0x80, 0x42, 0x43, 0x68, 0x10, 0x6b, 0xbf, 0xf3, 0x5f, 0x8f, 0xd8, 0x40, 0x00, 0xf0, 0x01, 0x00, 0x70, 0x47, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x00, 0x00, 0x08, 0xb5, 0x03, 0x68, 0x0b, 0xb3, 0x43, 0x68, 0x07, 0x22, 0x07, 0x2b, 0x0c, 0xd8, 0x9b, 0x00, 0x02, 0xfa, 0x03, 0xf3, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x80, 0x42, 0x13, 0x61, 0x83, 0x69, 0x73, 0xb9, 0x41, 0x61, 0x00, 0x20, 0x08, 0xbd, 0x03, 0xf1, 0x80, 0x43, 0x08, 0x3b, 0x9b, 0x00, 0x02, 0xfa, 0x03, 0xf3, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x80, 0x42, 0x53, 0x61, 0xee, 0xe7, 0x01, 0x46, 0x03, 0x48, 0xfe, 0xf7, 0xea, 0xff, 0xec, 0xe7, 0x4f, 0xf0, 0xff, 0x30, 0xea, 0xe7, 0xaa, 0x52, 0x0b, 0x04, 0x03, 0x68, 0x10, 0xb5, 0x01, 0x46, 0x53, 0xb3, 0x43, 0x68, 0x4f, 0xf0, 0x80, 0x42, 0x07, 0x2b, 0x15, 0xd8, 0x10, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x24, 0x9b, 0x00, 0x04, 0xfa, 0x03, 0xf3, 0x03, 0x42, 0x04, 0xd0, 0x0f, 0x48, 0xfe, 0xf7, 0xcf, 0xff, 0x00, 0x20, 0x10, 0xbd, 0x11, 0x68, 0x0b, 0x43, 0x13, 0x60, 0x0c, 0x4a, 0x13, 0x68, 0x01, 0x33, 0x13, 0x60, 0xf5, 0xe7, 0x50, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x24, 0x03, 0xf1, 0x80, 0x43, 0x08, 0x3b, 0x9b, 0x00, 0x04, 0xfa, 0x03, 0xf3, 0x03, 0x42, 0xe6, 0xd1, 0x51, 0x68, 0x0b, 0x43, 0x53, 0x60, 0xea, 0xe7, 0x4f, 0xf0, 0xff, 0x30, 0xe3, 0xe7, 0x4f, 0x52, 0x0b, 0x04, 0x78, 0x5a, 0x0b, 0x04, 0x03, 0x68, 0x10, 0xb5, 0x01, 0x46, 0x73, 0xb3, 0x43, 0x68, 0x4f, 0xf0, 0x80, 0x42, 0x07, 0x2b, 0x18, 0xd8, 0x10, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x24, 0x9b, 0x00, 0x04, 0xfa, 0x03, 0xf3, 0x03, 0x42, 0x04, 0xd1, 0x11, 0x48, 0xfe, 0xf7, 0x99, 0xff, 0x00, 0x20, 0x1d, 0xe0, 0x11, 0x68, 0x21, 0xea, 0x03, 0x03, 0x13, 0x60, 0x0e, 0x4a, 0x13, 0x68, 0x00, 0x2b, 0xf5, 0xdd, 0x01, 0x3b, 0x13, 0x60, 0xf2, 0xe7, 0x50, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x24, 0x03, 0xf1, 0x80, 0x43, 0x08, 0x3b, 0x9b, 0x00, 0x04, 0xfa, 0x03, 0xf3, 0x03, 0x42, 0xe3, 0xd0, 0x51, 0x68, 0x21, 0xea, 0x03, 0x03, 0x53, 0x60, 0xe7, 0xe7, 0x4f, 0xf0, 0xff, 0x30, 0x10, 0xbd, 0x30, 0x52, 0x0b, 0x04, 0x78, 0x5a, 0x0b, 0x04, 0x08, 0xb5, 0x03, 0x68, 0x01, 0x46, 0xd3, 0xb1, 0x42, 0x68, 0x07, 0x23, 0x07, 0x2a, 0x0b, 0xd8, 0x93, 0x40, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x80, 0x42, 0x13, 0x61, 0x8b, 0x69, 0x5b, 0xb1, 0x00, 0x20, 0xc1, 0xe9, 0x05, 0x00, 0x08, 0xbd, 0x08, 0x3a, 0x93, 0x40, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x80, 0x42, 0x53, 0x61, 0xf1, 0xe7, 0x02, 0x48, 0xfe, 0xf7, 0x55, 0xff, 0x4f, 0xf0, 0xff, 0x30, 0xf0, 0xe7, 0x71, 0x52, 0x0b, 0x04, 0x70, 0xb5, 0x00, 0x25, 0x2e, 0x46, 0x1b, 0x4c, 0x23, 0x68, 0x01, 0x2b, 0x0a, 0xd1, 0x20, 0x46, 0xff, 0xf7, 0x98, 0xff, 0x20, 0x46, 0xff, 0xf7, 0xcf, 0xff, 0xbf, 0xf3, 0x5f, 0x8f, 0xa3, 0x68, 0x1e, 0x60, 0x26, 0x60, 0x01, 0x35, 0x04, 0x2d, 0x04, 0xf1, 0x1c, 0x04, 0xec, 0xd1, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x80, 0x43, 0x00, 0x22, 0x1a, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x1a, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0xff, 0x32, 0x1a, 0x61, 0xbf, 0xf3, 0x5f, 0x8f, 0x5a, 0x61, 0x03, 0xf5, 0x71, 0x33, 0x03, 0xf5, 0x43, 0x73, 0x1a, 0x68, 0x22, 0xf0, 0x01, 0x02, 0x1a, 0x60, 0x1a, 0x68, 0x22, 0xf4, 0x80, 0x32, 0x1a, 0x60, 0x03, 0x4a, 0x13, 0x68, 0x01, 0x3b, 0x13, 0x60, 0x70, 0xbd, 0x00, 0xbf, 0x08, 0x5a, 0x0b, 0x04, 0x84, 0x59, 0x0b, 0x04, 0x03, 0x68, 0x10, 0xb5, 0x04, 0x46, 0x3b, 0xb1, 0xff, 0xf7, 0x5e, 0xff, 0x20, 0x46, 0xff, 0xf7, 0x95, 0xff, 0x00, 0x20, 0x20, 0x60, 0x10, 0xbd, 0x4f, 0xf0, 0xff, 0x30, 0xfb, 0xe7, 0x00, 0x00, 0x07, 0x4b, 0x82, 0xb0, 0x01, 0x93, 0x01, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf0, 0x00, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9a, 0x13, 0x60, 0x02, 0xb0, 0x70, 0x47, 0x00, 0xbf, 0x70, 0xc0, 0x03, 0x40, 0x07, 0x4b, 0x82, 0xb0, 0x01, 0x93, 0x01, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf0, 0x00, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9a, 0x13, 0x60, 0x02, 0xb0, 0x70, 0x47, 0x00, 0xbf, 0x70, 0xc0, 0x03, 0x40, 0x0c, 0x4b, 0x82, 0xb0, 0x01, 0x28, 0x01, 0x93, 0x0b, 0xd1, 0x01, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf4, 0x80, 0x13, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9a, 0x13, 0x60, 0x02, 0xb0, 0x70, 0x47, 0x03, 0x28, 0xfb, 0xd1, 0x01, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf4, 0x80, 0x13, 0xf0, 0xe7, 0xe0, 0xc4, 0x04, 0x40, 0x38, 0xb5, 0x04, 0x46, 0x00, 0xf1, 0x30, 0x05, 0x03, 0x46, 0x4f, 0xf0, 0xff, 0x10, 0x11, 0x49, 0x11, 0x4a, 0x9a, 0x60, 0xc3, 0xe9, 0x00, 0x01, 0x0c, 0x33, 0xab, 0x42, 0xf9, 0xd1, 0x80, 0x22, 0x00, 0x21, 0x4f, 0xf0, 0xa8, 0x70, 0xff, 0xf7, 0x09, 0xf8, 0x0a, 0x4b, 0x0a, 0x4a, 0x21, 0x68, 0xb1, 0xf1, 0xff, 0x1f, 0x0a, 0xd1, 0x61, 0x68, 0x99, 0x42, 0x07, 0xd1, 0xa1, 0x68, 0x91, 0x42, 0x04, 0xd1, 0x0c, 0x34, 0xac, 0x42, 0xf2, 0xd1, 0x00, 0x20, 0x38, 0xbd, 0x4f, 0xf0, 0xff, 0x30, 0xfb, 0xe7, 0x00, 0xbf, 0xa5, 0x5a, 0xa5, 0x5a, 0x5a, 0xa5, 0x5a, 0xa5, 0x0c, 0x4b, 0x82, 0xb0, 0x01, 0x93, 0x01, 0x9b, 0x1a, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x42, 0xf0, 0x10, 0x02, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9b, 0x1a, 0x60, 0x01, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf0, 0x03, 0x03, 0x03, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9a, 0x13, 0x60, 0x02, 0xb0, 0x70, 0x47, 0x70, 0xc0, 0x03, 0x40, 0x7f, 0xb5, 0x01, 0x46, 0xff, 0xf7, 0x84, 0xff, 0x21, 0x4b, 0x01, 0x20, 0x04, 0x93, 0x04, 0x33, 0x05, 0x93, 0xff, 0xf7, 0x8f, 0xff, 0x04, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf4, 0x40, 0x33, 0xbf, 0xf3, 0x5f, 0x8f, 0x04, 0x9a, 0x13, 0x60, 0x04, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf4, 0x00, 0x23, 0xbf, 0xf3, 0x5f, 0x8f, 0x04, 0x9a, 0x13, 0x60, 0x15, 0x4b, 0x03, 0x93, 0xa3, 0xf5, 0x82, 0x33, 0x90, 0x3b, 0x01, 0x93, 0x08, 0x33, 0x02, 0x93, 0x01, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf4, 0x80, 0x13, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9a, 0x13, 0x60, 0x02, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf4, 0x80, 0x13, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x9a, 0x13, 0x60, 0x08, 0x4b, 0x99, 0x42, 0x14, 0xbf, 0x00, 0x20, 0x01, 0x20, 0xff, 0xf7, 0xa2, 0xff, 0xff, 0xf7, 0x32, 0xff, 0x00, 0x20, 0x07, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0xa4, 0xc4, 0x04, 0x40, 0x94, 0xc4, 0x04, 0x40, 0x00, 0xd8, 0xb8, 0x05, 0x07, 0xb5, 0xff, 0xf7, 0x37, 0xff, 0x18, 0x4b, 0x01, 0x93, 0x18, 0x4b, 0x99, 0x42, 0x09, 0xd0, 0x17, 0x4b, 0x99, 0x42, 0x09, 0xd0, 0x40, 0xf2, 0x81, 0x22, 0x03, 0x28, 0x1b, 0xd1, 0x08, 0xe0, 0x01, 0x20, 0x19, 0xe0, 0x40, 0xf2, 0x01, 0x32, 0xf7, 0xe7, 0x03, 0x28, 0xf8, 0xd1, 0x40, 0xf2, 0x01, 0x32, 0x01, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf4, 0x7f, 0x63, 0x23, 0xf0, 0x0f, 0x03, 0x13, 0x43, 0x43, 0xf0, 0x00, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9a, 0x13, 0x60, 0x07, 0x4b, 0x99, 0x42, 0xe4, 0xd0, 0x00, 0x20, 0xff, 0xf7, 0x68, 0xff, 0x03, 0xb0, 0x5d, 0xf8, 0x04, 0xeb, 0xff, 0xf7, 0xf5, 0xbe, 0x00, 0xbf, 0x94, 0xc4, 0x04, 0x40, 0x00, 0xb0, 0x71, 0x0b, 0x00, 0xd8, 0xb8, 0x05, 0x07, 0xb5, 0x10, 0x4b, 0x03, 0x20, 0x00, 0x93, 0x04, 0x33, 0x01, 0x93, 0xff, 0xf7, 0x0a, 0xff, 0x01, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf4, 0xe0, 0x23, 0x43, 0xf4, 0x80, 0x23, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9a, 0x13, 0x60, 0x01, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf4, 0x00, 0x23, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9a, 0x13, 0x60, 0x03, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x00, 0xbf, 0xa4, 0xc4, 0x04, 0x40, 0x2d, 0xe9, 0xf8, 0x43, 0x00, 0x26, 0x34, 0x46, 0x35, 0x46, 0x25, 0x4f, 0xdf, 0xf8, 0xa4, 0x80, 0xdf, 0xf8, 0xa4, 0x90, 0xfb, 0x6f, 0x0a, 0x20, 0x03, 0xea, 0x08, 0x03, 0x43, 0xea, 0x06, 0x43, 0x43, 0xf0, 0x80, 0x73, 0xfb, 0x67, 0xfe, 0xf7, 0x1f, 0xf9, 0x4f, 0xf0, 0x00, 0x60, 0xff, 0xf7, 0xf1, 0xfe, 0xf0, 0xb9, 0x48, 0x46, 0xff, 0xf7, 0xed, 0xfe, 0xd0, 0xb9, 0xf4, 0xb2, 0x00, 0x2d, 0x08, 0xbf, 0x25, 0x46, 0x31, 0x46, 0x17, 0x48, 0x01, 0x36, 0xfe, 0xf7, 0xa5, 0xfd, 0x40, 0x2e, 0xe0, 0xd1, 0x2a, 0x46, 0x21, 0x46, 0x14, 0x48, 0xfe, 0xf7, 0x9e, 0xfd, 0x63, 0x1b, 0x01, 0x2b, 0x0d, 0xdc, 0x12, 0x49, 0x12, 0x48, 0xfe, 0xf7, 0x97, 0xfd, 0x4f, 0xf0, 0xff, 0x30, 0xbd, 0xe8, 0xf8, 0x83, 0x14, 0xb1, 0xa5, 0x42, 0xec, 0xd1, 0x00, 0x24, 0x25, 0x46, 0xe2, 0xe7, 0x08, 0x4a, 0x2c, 0x44, 0xd3, 0x6f, 0x64, 0x10, 0x23, 0xf0, 0x9f, 0x73, 0x23, 0xf4, 0x80, 0x33, 0x43, 0xea, 0x04, 0x44, 0x44, 0xf0, 0x80, 0x74, 0xd4, 0x67, 0x0a, 0x20, 0xfe, 0xf7, 0xe5, 0xf8, 0xe4, 0xe7, 0x00, 0xd8, 0x00, 0x40, 0xfa, 0x52, 0x0b, 0x04, 0x03, 0x53, 0x0b, 0x04, 0x45, 0x54, 0x0b, 0x04, 0x18, 0x53, 0x0b, 0x04, 0xff, 0xff, 0xc0, 0xfe, 0xd0, 0xff, 0x7f, 0x08, 0x10, 0xb5, 0x12, 0x4c, 0xe3, 0x6f, 0x43, 0xf0, 0x01, 0x03, 0xe3, 0x67, 0xe0, 0x6f, 0x10, 0xf0, 0x01, 0x00, 0x03, 0xd0, 0x0a, 0x20, 0xfe, 0xf7, 0xc9, 0xf8, 0xf7, 0xe7, 0xe1, 0x6f, 0xc1, 0xf3, 0x05, 0x11, 0x3f, 0x29, 0x05, 0xd1, 0x0a, 0x48, 0xfe, 0xf7, 0x58, 0xfd, 0x4f, 0xf0, 0xff, 0x30, 0x10, 0xbd, 0xe3, 0x6f, 0x49, 0x08, 0x23, 0xf0, 0x9f, 0x73, 0x23, 0xf4, 0x80, 0x33, 0x43, 0xea, 0x01, 0x43, 0x43, 0xf0, 0x80, 0x73, 0xe3, 0x67, 0xf2, 0xe7, 0x00, 0xbf, 0x00, 0xd8, 0x00, 0x40, 0x40, 0x53, 0x0b, 0x04, 0x0c, 0x4b, 0x0d, 0x48, 0x99, 0x42, 0x89, 0xbf, 0x0c, 0x4b, 0x01, 0x21, 0xb1, 0xfb, 0xf3, 0xf1, 0x01, 0xf1, 0x80, 0x41, 0x88, 0xbf, 0x08, 0x39, 0x02, 0x6f, 0x09, 0x4b, 0x88, 0xbf, 0x89, 0x00, 0x03, 0xea, 0x01, 0x41, 0x22, 0xf0, 0x7f, 0x63, 0x23, 0xf4, 0x70, 0x23, 0x19, 0x43, 0x01, 0x67, 0x70, 0x47, 0x00, 0xbf, 0xff, 0x11, 0x7a, 0x00, 0x00, 0xd8, 0x00, 0x40, 0x40, 0x42, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x0f, 0x2d, 0xe9, 0xf7, 0x4f, 0xd1, 0xe9, 0x05, 0x32, 0x0d, 0x68, 0x53, 0x43, 0x02, 0x6a, 0x04, 0x46, 0x42, 0xea, 0x05, 0x60, 0x88, 0x4a, 0xd0, 0x62, 0xce, 0x69, 0x16, 0xf0, 0x70, 0x0f, 0x06, 0xd0, 0x48, 0x68, 0x10, 0x63, 0x53, 0x64, 0x10, 0x6f, 0x40, 0xf4, 0x80, 0x40, 0x10, 0x67, 0x77, 0x07, 0x37, 0xd1, 0x81, 0x4a, 0x43, 0xf6, 0xff, 0x7b, 0x53, 0x6d, 0x4f, 0xf0, 0x80, 0x09, 0x43, 0xf4, 0xa0, 0x43, 0x53, 0x65, 0x02, 0x23, 0xa3, 0x60, 0x01, 0x23, 0x21, 0x63, 0x93, 0x64, 0x7b, 0x4b, 0x1b, 0x68, 0x18, 0x6b, 0x00, 0xf1, 0x14, 0x01, 0x91, 0xe8, 0x42, 0x40, 0x71, 0x43, 0x96, 0x6d, 0xd2, 0xf8, 0x54, 0xc0, 0x75, 0x04, 0x44, 0xbf, 0x00, 0x25, 0x4f, 0xf4, 0x80, 0x47, 0xc3, 0xe9, 0x03, 0x6c, 0x44, 0xbf, 0x95, 0x65, 0x97, 0x65, 0xf7, 0x04, 0x70, 0xd5, 0x1c, 0xf4, 0x80, 0x5f, 0x6d, 0xd0, 0x9f, 0x68, 0x04, 0x2f, 0x5d, 0xd1, 0x1e, 0xf0, 0x70, 0x0f, 0x5a, 0xd0, 0x47, 0x6a, 0x00, 0x2f, 0x38, 0xd1, 0x4f, 0xf4, 0xbe, 0x72, 0x69, 0x49, 0x6a, 0x48, 0xfe, 0xf7, 0xd2, 0xfc, 0xfe, 0xe7, 0x48, 0x68, 0x64, 0x4a, 0xff, 0x2d, 0x10, 0x63, 0x13, 0x64, 0x1e, 0xbf, 0x10, 0x6f, 0x40, 0xf4, 0x80, 0x40, 0x10, 0x67, 0x4a, 0x6a, 0x63, 0x48, 0x00, 0x2b, 0xb9, 0xdd, 0xcd, 0x69, 0xee, 0x07, 0x09, 0xd5, 0x12, 0xf8, 0x01, 0x5b, 0xed, 0xb2, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x05, 0x70, 0x01, 0x3b, 0xf0, 0xe7, 0xaf, 0x07, 0x09, 0xd5, 0x32, 0xf8, 0x02, 0x5b, 0xad, 0xb2, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x05, 0x80, 0x02, 0x3b, 0xe4, 0xe7, 0x6e, 0x07, 0xe2, 0xd5, 0x52, 0xf8, 0x04, 0x5b, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x05, 0x60, 0x04, 0x3b, 0xd9, 0xe7, 0x31, 0xb9, 0x40, 0xf2, 0x7d, 0x12, 0x4c, 0x49, 0x4d, 0x48, 0xfe, 0xf7, 0x98, 0xfc, 0xfe, 0xe7, 0x4f, 0xf0, 0x00, 0x08, 0x17, 0x6d, 0xff, 0xb2, 0x01, 0x97, 0x01, 0x9f, 0x47, 0x45, 0x2f, 0xd1, 0xd3, 0xf8, 0x00, 0x80, 0x4f, 0x1e, 0xb8, 0x45, 0x09, 0xd9, 0x00, 0x21, 0x19, 0x60, 0x99, 0x68, 0x04, 0x29, 0x4f, 0xf0, 0x00, 0x01, 0x08, 0xbf, 0xc3, 0xf8, 0x08, 0x90, 0x51, 0x65, 0x9f, 0x68, 0x02, 0x2f, 0x02, 0xd0, 0x9f, 0x68, 0x04, 0x2f, 0x01, 0xd1, 0xc3, 0xf8, 0x08, 0x90, 0x00, 0x25, 0x4f, 0xf4, 0x80, 0x57, 0x55, 0x65, 0x97, 0x65, 0x9f, 0x68, 0x04, 0x2f, 0x2d, 0xd1, 0x75, 0x06, 0x2b, 0xd5, 0x1c, 0xf0, 0x40, 0x0f, 0x28, 0xd0, 0x1e, 0xf0, 0x07, 0x0f, 0x25, 0xd0, 0x47, 0x6a, 0xbf, 0xb9, 0x4f, 0xf4, 0xcb, 0x72, 0x30, 0x49, 0x31, 0x48, 0xfe, 0xf7, 0x60, 0xfc, 0xfe, 0xe7, 0x31, 0x4f, 0x97, 0xf8, 0x00, 0xa0, 0x5f, 0xfa, 0x8a, 0xfa, 0xbf, 0xf3, 0x5f, 0x8f, 0x1d, 0x68, 0x47, 0x6a, 0x08, 0xf1, 0x01, 0x08, 0x07, 0xf8, 0x05, 0xa0, 0x1f, 0x68, 0x01, 0x37, 0x1f, 0x60, 0xbb, 0xe7, 0x31, 0xb9, 0x40, 0xf2, 0x97, 0x12, 0x24, 0x49, 0x24, 0x48, 0xfe, 0xf7, 0x47, 0xfc, 0xfe, 0xe7, 0x01, 0x27, 0x5f, 0x60, 0x40, 0x27, 0x97, 0x65, 0x9f, 0x68, 0x04, 0x2f, 0x1c, 0xd1, 0xb7, 0x06, 0x1a, 0xd5, 0x1c, 0xf0, 0x20, 0x0f, 0x17, 0xd0, 0x1e, 0xf0, 0x07, 0x0f, 0x14, 0xd0, 0x47, 0x6a, 0x37, 0xb9, 0x4f, 0xf4, 0xd0, 0x72, 0x18, 0x49, 0x18, 0x48, 0xfe, 0xf7, 0x2f, 0xfc, 0xfe, 0xe7, 0x31, 0xb9, 0x40, 0xf2, 0xa1, 0x12, 0x14, 0x49, 0x14, 0x48, 0xfe, 0xf7, 0x27, 0xfc, 0xfe, 0xe7, 0x00, 0x25, 0x20, 0x27, 0x5d, 0x60, 0x97, 0x65, 0x9f, 0x68, 0x04, 0x2f, 0x39, 0xd1, 0x75, 0x07, 0x37, 0xd5, 0x1c, 0xf0, 0x04, 0x0f, 0x34, 0xd0, 0x1e, 0xf0, 0x70, 0x0f, 0x31, 0xd0, 0x46, 0x6a, 0x36, 0xb9, 0x4f, 0xf4, 0xd5, 0x72, 0x08, 0x49, 0x08, 0x48, 0xfe, 0xf7, 0x0f, 0xfc, 0xfe, 0xe7, 0x91, 0xb9, 0x40, 0xf2, 0xab, 0x12, 0x04, 0x49, 0x04, 0x48, 0xfe, 0xf7, 0x07, 0xfc, 0xfe, 0xe7, 0x00, 0xd8, 0x00, 0x40, 0x7c, 0x5a, 0x0b, 0x04, 0x2e, 0x54, 0x0b, 0x04, 0xa6, 0x53, 0x0b, 0x04, 0x00, 0xd9, 0x00, 0x40, 0x00, 0xda, 0x00, 0x40, 0x00, 0x27, 0x16, 0x6d, 0x5f, 0xfa, 0x86, 0xfc, 0xbc, 0x45, 0x3a, 0xd1, 0x18, 0x68, 0x01, 0x39, 0x88, 0x42, 0x0a, 0xd9, 0x00, 0x21, 0x19, 0x60, 0x99, 0x68, 0x04, 0x29, 0x08, 0xbf, 0xc3, 0xf8, 0x08, 0x90, 0x00, 0x23, 0x53, 0x65, 0x04, 0x23, 0x93, 0x65, 0xa3, 0x68, 0x80, 0x2b, 0x07, 0xd0, 0x0b, 0xf1, 0xff, 0x33, 0x1f, 0xfa, 0x83, 0xfb, 0xbb, 0xf1, 0x00, 0x0f, 0x7f, 0xf4, 0xdf, 0xae, 0xa2, 0x68, 0x23, 0x6b, 0x80, 0x2a, 0x36, 0xd0, 0xd4, 0xe9, 0x03, 0x12, 0x2c, 0x48, 0xfe, 0xf7, 0xd1, 0xfb, 0x4f, 0xf0, 0xff, 0x35, 0x2b, 0x4a, 0x13, 0x6f, 0x23, 0xf4, 0x80, 0x43, 0x13, 0x67, 0x01, 0x23, 0xa3, 0x60, 0x00, 0x23, 0x23, 0x63, 0x3d, 0xb1, 0x4f, 0xf0, 0xff, 0x33, 0x40, 0xf2, 0xae, 0x22, 0x25, 0x49, 0x25, 0x48, 0xfe, 0xf7, 0xbd, 0xfb, 0x28, 0x46, 0x03, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x46, 0x6a, 0x36, 0xb9, 0x4f, 0xf4, 0xd7, 0x72, 0x21, 0x49, 0x21, 0x48, 0xfe, 0xf7, 0xb1, 0xfb, 0xfe, 0xe7, 0x20, 0x4e, 0x96, 0xf8, 0x00, 0xe0, 0x5f, 0xfa, 0x8e, 0xfe, 0xbf, 0xf3, 0x5f, 0x8f, 0xd3, 0xf8, 0x00, 0x80, 0x46, 0x6a, 0x01, 0x37, 0x06, 0xf8, 0x08, 0xe0, 0x1e, 0x68, 0x01, 0x36, 0x1e, 0x60, 0xa8, 0xe7, 0xa3, 0xb1, 0x9a, 0x68, 0x92, 0xb1, 0xd3, 0xe9, 0x05, 0x12, 0x51, 0x43, 0x00, 0x22, 0x0f, 0x4d, 0x14, 0x4e, 0x91, 0x42, 0x0a, 0xd0, 0x28, 0x6d, 0x10, 0xf0, 0xff, 0x0f, 0x0d, 0xd1, 0xd8, 0x69, 0x10, 0xf0, 0x70, 0x0f, 0x09, 0xd0, 0x0f, 0x48, 0xfe, 0xf7, 0x89, 0xfb, 0x08, 0x4a, 0x00, 0x25, 0x13, 0x6f, 0x23, 0xf4, 0x80, 0x43, 0x13, 0x67, 0xb2, 0xe7, 0x30, 0x78, 0xc0, 0xb2, 0xbf, 0xf3, 0x5f, 0x8f, 0x9f, 0x68, 0xb8, 0x54, 0x01, 0x32, 0xe3, 0xe7, 0xb5, 0x53, 0x0b, 0x04, 0x00, 0xd8, 0x00, 0x40, 0x68, 0x54, 0x0b, 0x04, 0xfc, 0x53, 0x0b, 0x04, 0x2e, 0x54, 0x0b, 0x04, 0xa6, 0x53, 0x0b, 0x04, 0x00, 0xda, 0x00, 0x40, 0xe4, 0x53, 0x0b, 0x04, 0x06, 0x4b, 0x18, 0x68, 0x20, 0xf0, 0x01, 0x00, 0x18, 0x60, 0x29, 0xb1, 0x5a, 0x61, 0x1a, 0x68, 0x42, 0xf0, 0x01, 0x02, 0x1a, 0x60, 0x70, 0x47, 0x1a, 0x61, 0xf8, 0xe7, 0x00, 0xd8, 0x00, 0x40, 0x03, 0x4a, 0x53, 0x6f, 0x23, 0xf4, 0x7f, 0x43, 0x19, 0x43, 0x51, 0x67, 0x70, 0x47, 0x00, 0xbf, 0x00, 0xd8, 0x00, 0x40, 0x03, 0x4a, 0x53, 0x6f, 0x23, 0xf0, 0xff, 0x03, 0x19, 0x43, 0x51, 0x67, 0x70, 0x47, 0x00, 0xbf, 0x00, 0xd8, 0x00, 0x40, 0x38, 0xb5, 0x0d, 0x46, 0x04, 0x46, 0x28, 0xb9, 0x40, 0xf2, 0xcd, 0x22, 0x03, 0x49, 0x04, 0x48, 0xfe, 0xf7, 0x3c, 0xfb, 0x20, 0x6a, 0x25, 0x62, 0x38, 0xbd, 0x00, 0xbf, 0x7e, 0x54, 0x0b, 0x04, 0x16, 0x54, 0x0b, 0x04, 0x04, 0x4b, 0x9a, 0x68, 0x19, 0xb1, 0x42, 0xf0, 0x04, 0x02, 0x9a, 0x60, 0x70, 0x47, 0x22, 0xf0, 0x04, 0x02, 0xfa, 0xe7, 0x00, 0xd8, 0x00, 0x40, 0x00, 0x28, 0x18, 0xbf, 0x4f, 0xf4, 0x00, 0x00, 0x03, 0x4a, 0x13, 0x69, 0x23, 0xf4, 0x00, 0x03, 0x03, 0x43, 0x13, 0x61, 0x70, 0x47, 0x00, 0xbf, 0x00, 0xd8, 0x00, 0x40, 0x03, 0x29, 0x70, 0xb5, 0x0c, 0x46, 0x15, 0x46, 0x1e, 0x46, 0x05, 0xd9, 0x4f, 0xf4, 0x3c, 0x72, 0x0b, 0x49, 0x0c, 0x48, 0xfe, 0xf7, 0x0e, 0xfb, 0x04, 0x9b, 0x21, 0x01, 0x01, 0xf1, 0x80, 0x40, 0x00, 0xf5, 0x58, 0x40, 0x26, 0xf0, 0x0f, 0x06, 0x25, 0xf0, 0x0f, 0x05, 0x43, 0xf0, 0x00, 0x43, 0xc0, 0xf8, 0x84, 0x60, 0xc0, 0xf8, 0x80, 0x50, 0xc0, 0xf8, 0x88, 0x30, 0x70, 0xbd, 0x00, 0xbf, 0x99, 0x54, 0x0b, 0x04, 0x16, 0x54, 0x0b, 0x04, 0xf7, 0xb5, 0x0e, 0x46, 0x05, 0x46, 0x28, 0xb9, 0x40, 0xf2, 0x06, 0x32, 0x6a, 0x49, 0x6b, 0x48, 0xfe, 0xf7, 0xec, 0xfa, 0x2e, 0xb9, 0x40, 0xf2, 0x07, 0x32, 0x67, 0x49, 0x67, 0x48, 0xfe, 0xf7, 0xe5, 0xfa, 0x69, 0x6a, 0x66, 0x4a, 0x01, 0x29, 0x66, 0x4b, 0x7c, 0xd1, 0x11, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x22, 0x31, 0x11, 0x60, 0x19, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x60, 0x49, 0x19, 0x60, 0x60, 0x49, 0x08, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x55, 0x30, 0x04, 0x31, 0x41, 0xf8, 0x04, 0x0c, 0x0c, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x08, 0x60, 0x04, 0x31, 0x08, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x20, 0x04, 0x31, 0x41, 0xf8, 0x04, 0x0c, 0x0c, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x08, 0x60, 0x12, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x4d, 0x4b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x40, 0xf2, 0x81, 0x12, 0xc3, 0xf3, 0x0b, 0x03, 0x93, 0x42, 0x14, 0xbf, 0x49, 0x48, 0x4a, 0x48, 0xff, 0xf7, 0x24, 0xfc, 0x1e, 0x20, 0xfd, 0xf7, 0x01, 0xfe, 0xff, 0xf7, 0x29, 0xfd, 0x38, 0xb1, 0x45, 0x48, 0xff, 0xf7, 0x1b, 0xfc, 0x1e, 0x20, 0xfd, 0xf7, 0xf8, 0xfd, 0xff, 0xf7, 0x20, 0xfd, 0x0a, 0x20, 0xfd, 0xf7, 0xf3, 0xfd, 0x00, 0x23, 0x01, 0x27, 0x40, 0x4c, 0xe3, 0x62, 0x40, 0x4b, 0x67, 0x60, 0xe3, 0x64, 0x33, 0x68, 0xbb, 0x42, 0x2e, 0xd0, 0x02, 0x2b, 0x4c, 0xd0, 0x4f, 0xf4, 0x67, 0x72, 0x31, 0x49, 0x3b, 0x48, 0xfe, 0xf7, 0x79, 0xfa, 0x3b, 0x4b, 0x38, 0x46, 0x00, 0x93, 0x04, 0x33, 0x01, 0x93, 0xff, 0xf7, 0x94, 0xfb, 0x00, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf4, 0x00, 0x23, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x9a, 0x13, 0x60, 0xff, 0xf7, 0x76, 0xfb, 0x4f, 0xf0, 0xff, 0x30, 0x2e, 0xe0, 0x02, 0x29, 0x8f, 0xd1, 0x11, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x33, 0x31, 0x11, 0x60, 0x19, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x29, 0x49, 0x7f, 0xe7, 0x29, 0x4b, 0x2a, 0x49, 0x23, 0x67, 0x60, 0x23, 0x23, 0x60, 0x40, 0xf2, 0x02, 0x73, 0xc4, 0xf8, 0xe0, 0x30, 0x49, 0xf2, 0x09, 0x03, 0xa3, 0x60, 0x4a, 0xf2, 0x0a, 0x03, 0xa3, 0x60, 0x24, 0x4b, 0x28, 0x46, 0xa3, 0x67, 0xff, 0xf7, 0xf8, 0xfe, 0x72, 0x68, 0x22, 0x4b, 0x9a, 0x42, 0x19, 0xd8, 0x00, 0x20, 0x4f, 0xf0, 0xff, 0x32, 0x17, 0x4b, 0x58, 0x65, 0x9a, 0x65, 0x03, 0xb0, 0xf0, 0xbd, 0x1d, 0x4b, 0x1a, 0x49, 0x23, 0x67, 0x60, 0x23, 0x23, 0x60, 0x40, 0xf2, 0x06, 0x73, 0xc4, 0xf8, 0xe0, 0x30, 0x4b, 0xf2, 0x0b, 0x03, 0xa3, 0x60, 0x18, 0x4b, 0x28, 0x46, 0x63, 0x67, 0xff, 0xf7, 0xdb, 0xfe, 0xe5, 0xe7, 0xa3, 0x6f, 0x43, 0xf4, 0x40, 0x13, 0xa3, 0x67, 0xe0, 0xe7, 0x00, 0xbf, 0xb9, 0x54, 0x0b, 0x04, 0x16, 0x54, 0x0b, 0x04, 0x48, 0xa4, 0x04, 0x40, 0x4c, 0xa4, 0x04, 0x40, 0x22, 0x22, 0x02, 0x00, 0x5c, 0xa4, 0x04, 0x40, 0x8c, 0xc4, 0x04, 0x40, 0x00, 0xd8, 0xb8, 0x05, 0x00, 0xb0, 0x71, 0x0b, 0x00, 0xd8, 0x00, 0x40, 0x0f, 0x38, 0x0f, 0x38, 0x81, 0x53, 0x0b, 0x04, 0xa4, 0xc4, 0x04, 0x40, 0x33, 0x33, 0x03, 0x00, 0x58, 0x21, 0xc0, 0xc1, 0x04, 0x00, 0x40, 0x00, 0x11, 0x12, 0x12, 0x01, 0xff, 0x35, 0x6e, 0x01, 0x01, 0x20, 0xc0, 0xc1, 0x00, 0x07, 0x20, 0x00, 0x1f, 0xb5, 0x21, 0x4b, 0x1a, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0xff, 0x32, 0x04, 0x33, 0x43, 0xf8, 0x04, 0x2c, 0x1a, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x1a, 0x4a, 0x01, 0x20, 0x1a, 0x60, 0x03, 0xf5, 0x01, 0x53, 0x18, 0x33, 0x02, 0x93, 0x04, 0x33, 0x03, 0x93, 0xff, 0xf7, 0xf8, 0xfa, 0x02, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf4, 0x00, 0x23, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x9a, 0x13, 0x60, 0xff, 0xf7, 0xda, 0xfa, 0x0f, 0x4b, 0x00, 0x93, 0x08, 0x33, 0x01, 0x93, 0x00, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf4, 0x80, 0x13, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x9a, 0x13, 0x60, 0x01, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf4, 0x80, 0x13, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x20, 0x01, 0x9a, 0x13, 0x60, 0x05, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x48, 0xa4, 0x04, 0x40, 0xff, 0xff, 0x0f, 0x00, 0x04, 0xc0, 0x03, 0x40, 0x02, 0x4b, 0x18, 0x68, 0x03, 0x7f, 0x01, 0x33, 0x03, 0x77, 0x70, 0x47, 0x7c, 0x5a, 0x0b, 0x04, 0x03, 0x7f, 0x01, 0x3b, 0x03, 0x77, 0x00, 0x20, 0x70, 0x47, 0x00, 0x00, 0x38, 0xb5, 0x34, 0x20, 0x0d, 0x46, 0xfe, 0xf7, 0x6d, 0xfa, 0x04, 0x46, 0x28, 0xb9, 0x0a, 0x49, 0x0a, 0x48, 0xfe, 0xf7, 0x8f, 0xf9, 0x20, 0x46, 0x38, 0xbd, 0x34, 0x22, 0x00, 0x21, 0xfe, 0xf7, 0xe5, 0xfa, 0x6b, 0x68, 0xa3, 0x62, 0x2b, 0x68, 0x63, 0x62, 0x2b, 0x7a, 0x84, 0xf8, 0x2c, 0x30, 0x03, 0x4b, 0x1c, 0x60, 0xef, 0xe7, 0x00, 0xbf, 0xcc, 0x54, 0x0b, 0x04, 0xe4, 0x52, 0x0b, 0x04, 0x7c, 0x5a, 0x0b, 0x04, 0x08, 0xb5, 0x01, 0x46, 0x20, 0xb9, 0x05, 0x48, 0xfe, 0xf7, 0x72, 0xf9, 0x00, 0x20, 0x08, 0xbd, 0x00, 0x22, 0x03, 0x4b, 0x1a, 0x60, 0xfe, 0xf7, 0xa1, 0xfa, 0xf7, 0xe7, 0x6f, 0x53, 0x0b, 0x04, 0x7c, 0x5a, 0x0b, 0x04, 0x08, 0x22, 0x4f, 0xf4, 0x80, 0x63, 0x70, 0xb5, 0x04, 0x46, 0xc0, 0xe9, 0x03, 0x23, 0x00, 0xf0, 0x66, 0xf9, 0x20, 0x46, 0x00, 0xf0, 0x63, 0xf9, 0x01, 0x21, 0x20, 0x46, 0x00, 0xf0, 0xf0, 0xf9, 0x02, 0x21, 0x05, 0x46, 0x20, 0x46, 0x00, 0xf0, 0xeb, 0xf9, 0x15, 0xf0, 0x20, 0x06, 0x02, 0x46, 0x03, 0xd1, 0x00, 0xf0, 0x07, 0x03, 0x01, 0x2b, 0x06, 0xd0, 0x29, 0x46, 0x2e, 0x48, 0xfe, 0xf7, 0x45, 0xf9, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0xbd, 0x20, 0x46, 0x00, 0xf0, 0xb2, 0xf9, 0x00, 0xf0, 0x0f, 0x03, 0x0d, 0x2b, 0x01, 0x46, 0x03, 0xd0, 0x28, 0x48, 0xfe, 0xf7, 0x37, 0xf9, 0xf0, 0xe7, 0x20, 0x46, 0x00, 0xf0, 0xfa, 0xf9, 0x20, 0x46, 0x00, 0xf0, 0x41, 0xfa, 0x01, 0x46, 0x08, 0xb9, 0x23, 0x48, 0xf2, 0xe7, 0xa2, 0x69, 0x23, 0x4b, 0x9a, 0x42, 0x03, 0xd9, 0x31, 0x46, 0x20, 0x46, 0x00, 0xf0, 0xaa, 0xf8, 0xa2, 0x69, 0x20, 0x4b, 0x9a, 0x42, 0x2d, 0xd9, 0x02, 0x22, 0x01, 0x21, 0x20, 0x46, 0x00, 0xf0, 0xe4, 0xf8, 0x02, 0x21, 0x20, 0x6a, 0xff, 0xf7, 0xc7, 0xfd, 0x4f, 0xf4, 0x00, 0x71, 0x20, 0x6a, 0xff, 0xf7, 0xb8, 0xfd, 0x09, 0x21, 0x20, 0x46, 0x00, 0xf0, 0x48, 0xfa, 0x08, 0x21, 0x20, 0x46, 0x00, 0xf0, 0x44, 0xfa, 0x00, 0x21, 0x20, 0x6a, 0xff, 0xf7, 0xd2, 0xfd, 0x01, 0x20, 0xff, 0xf7, 0xdb, 0xfd, 0x11, 0x4b, 0x11, 0x49, 0xe3, 0x61, 0x4f, 0xf4, 0x80, 0x03, 0x01, 0x20, 0x63, 0x61, 0xff, 0xf7, 0xd0, 0xfa, 0xff, 0xf7, 0x8a, 0xfb, 0x4f, 0xf4, 0x7a, 0x70, 0xfd, 0xf7, 0x5c, 0xfc, 0x00, 0x20, 0xae, 0xe7, 0x01, 0x21, 0x00, 0x22, 0x20, 0x46, 0x00, 0xf0, 0xb6, 0xf8, 0x00, 0x21, 0xd5, 0xe7, 0x00, 0xbf, 0xe1, 0x54, 0x0b, 0x04, 0x1c, 0x55, 0x0b, 0x04, 0x3e, 0x55, 0x0b, 0x04, 0x7f, 0x14, 0xef, 0x03, 0x7f, 0xf5, 0xe4, 0x09, 0x5b, 0x55, 0x0b, 0x04, 0x00, 0xb0, 0x71, 0x0b, 0x4f, 0xf4, 0x80, 0x63, 0x08, 0x22, 0x10, 0xb5, 0x04, 0x46, 0xc0, 0xe9, 0x03, 0x23, 0x00, 0xf0, 0xdc, 0xf8, 0x02, 0x21, 0x20, 0x46, 0x00, 0xf0, 0x69, 0xf9, 0x00, 0xf0, 0x07, 0x03, 0x03, 0x2b, 0x01, 0x46, 0x05, 0xd0, 0x22, 0x48, 0xfe, 0xf7, 0xc7, 0xf8, 0x4f, 0xf0, 0xff, 0x30, 0x10, 0xbd, 0x01, 0x21, 0x20, 0x46, 0x00, 0xf0, 0x5a, 0xf9, 0x00, 0xf0, 0x0f, 0x03, 0x0d, 0x2b, 0x01, 0x46, 0x01, 0xd0, 0x1c, 0x48, 0xef, 0xe7, 0x20, 0x46, 0x00, 0xf0, 0xc7, 0xf9, 0x01, 0x46, 0x08, 0xb9, 0x19, 0x48, 0xe8, 0xe7, 0x00, 0x21, 0x20, 0x46, 0x00, 0xf0, 0x34, 0xf8, 0x01, 0x22, 0x02, 0x21, 0x20, 0x46, 0x00, 0xf0, 0x72, 0xf8, 0x4f, 0xf4, 0xe0, 0x61, 0x20, 0x6a, 0xff, 0xf7, 0x4a, 0xfd, 0x0b, 0x21, 0x20, 0x46, 0x00, 0xf0, 0xda, 0xf9, 0x0a, 0x21, 0x20, 0x46, 0x00, 0xf0, 0xd6, 0xf9, 0x00, 0x21, 0x20, 0x6a, 0xff, 0xf7, 0x64, 0xfd, 0x01, 0x20, 0xff, 0xf7, 0x6d, 0xfd, 0x0b, 0x4b, 0x0b, 0x49, 0xe3, 0x61, 0x4f, 0xf4, 0x00, 0x03, 0x01, 0x20, 0x63, 0x61, 0xff, 0xf7, 0x62, 0xfa, 0xff, 0xf7, 0x1c, 0xfb, 0x4f, 0xf4, 0x7a, 0x70, 0xfd, 0xf7, 0xee, 0xfb, 0x00, 0x20, 0xbe, 0xe7, 0x61, 0x55, 0x0b, 0x04, 0x8d, 0x55, 0x0b, 0x04, 0xaf, 0x55, 0x0b, 0x04, 0xcc, 0x55, 0x0b, 0x04, 0x00, 0xb0, 0x71, 0x0b, 0x70, 0xb5, 0x8c, 0xb0, 0x05, 0x46, 0x24, 0x22, 0x0e, 0x46, 0x03, 0xa8, 0x00, 0x21, 0xfe, 0xf7, 0xcd, 0xf9, 0x01, 0x23, 0x40, 0x22, 0x07, 0x93, 0x08, 0x93, 0x10, 0x23, 0x0d, 0xf1, 0x07, 0x04, 0x02, 0xa9, 0x28, 0x6a, 0x04, 0x94, 0x02, 0x92, 0x09, 0x93, 0xff, 0xf7, 0x41, 0xfb, 0x38, 0xbb, 0x9d, 0xf8, 0x07, 0x10, 0x6b, 0x78, 0x01, 0xf0, 0xc3, 0x01, 0x01, 0x2b, 0x8d, 0xf8, 0x07, 0x10, 0x17, 0xd1, 0x41, 0xea, 0x46, 0x11, 0x41, 0xf0, 0x1a, 0x01, 0x8d, 0xf8, 0x07, 0x10, 0xc0, 0x23, 0x02, 0x93, 0x01, 0x23, 0xcd, 0xe9, 0x08, 0x33, 0x00, 0x23, 0x02, 0xa9, 0x28, 0x6a, 0x0b, 0x94, 0x03, 0x93, 0xff, 0xf7, 0x25, 0xfb, 0x00, 0x30, 0x18, 0xbf, 0x01, 0x20, 0x40, 0x42, 0x0c, 0xb0, 0x70, 0xbd, 0x02, 0x2b, 0xeb, 0xd1, 0x41, 0xea, 0x46, 0x11, 0x41, 0xf0, 0x11, 0x01, 0xe4, 0xe7, 0x4f, 0xf0, 0xff, 0x30, 0xf3, 0xe7, 0xf0, 0xb5, 0x8d, 0xb0, 0x04, 0x46, 0x0f, 0x46, 0x16, 0x46, 0x00, 0x21, 0x1c, 0x22, 0x05, 0xa8, 0xfe, 0xf7, 0x89, 0xf9, 0x01, 0x23, 0x07, 0x93, 0x08, 0x93, 0x10, 0x23, 0x40, 0x22, 0x09, 0x93, 0x04, 0x23, 0x0d, 0xf1, 0x07, 0x05, 0x02, 0xa9, 0x20, 0x6a, 0x02, 0x92, 0x03, 0x93, 0x04, 0x95, 0xff, 0xf7, 0xfb, 0xfa, 0x08, 0xbb, 0x9d, 0xf8, 0x07, 0x20, 0x01, 0x2f, 0x02, 0xf0, 0x1f, 0x02, 0x8d, 0xf8, 0x07, 0x20, 0x13, 0xd1, 0x42, 0xea, 0x86, 0x12, 0x8d, 0xf8, 0x07, 0x20, 0xc0, 0x23, 0x02, 0x93, 0x01, 0x23, 0x02, 0xa9, 0x20, 0x6a, 0xcd, 0xe9, 0x08, 0x33, 0x0b, 0x95, 0xff, 0xf7, 0xe4, 0xfa, 0x00, 0x30, 0x18, 0xbf, 0x01, 0x20, 0x40, 0x42, 0x0d, 0xb0, 0xf0, 0xbd, 0x63, 0x78, 0x02, 0x2b, 0xec, 0xd1, 0x42, 0xea, 0x46, 0x12, 0xe7, 0xe7, 0x4f, 0xf0, 0xff, 0x30, 0xf4, 0xe7, 0x30, 0xb5, 0x00, 0x21, 0x04, 0x46, 0x8d, 0xb0, 0x28, 0x22, 0x02, 0xa8, 0x01, 0x91, 0xfe, 0xf7, 0x4a, 0xf9, 0x63, 0x78, 0x01, 0x3b, 0x01, 0x2b, 0x08, 0xd8, 0xff, 0x23, 0x01, 0x20, 0x02, 0x93, 0x02, 0x23, 0xcd, 0xe9, 0x07, 0x03, 0x01, 0xaa, 0x0b, 0x92, 0x09, 0x93, 0x02, 0xa9, 0x20, 0x6a, 0xff, 0xf7, 0xbb, 0xfa, 0x05, 0x46, 0x20, 0xb1, 0x4f, 0xf0, 0xff, 0x34, 0x20, 0x46, 0x0d, 0xb0, 0x30, 0xbd, 0xc8, 0x20, 0xfd, 0xf7, 0x3b, 0xfb, 0xff, 0x23, 0x02, 0x93, 0x01, 0x23, 0x01, 0xaa, 0x20, 0x6a, 0x02, 0xa9, 0xcd, 0xe9, 0x07, 0x33, 0x01, 0x95, 0x0b, 0x92, 0x09, 0x93, 0xff, 0xf7, 0xa4, 0xfa, 0x04, 0x46, 0x00, 0x28, 0xe7, 0xd1, 0x4f, 0xf4, 0x7a, 0x70, 0xfd, 0xf7, 0x27, 0xfb, 0xe4, 0xe7, 0xf0, 0xb5, 0x8d, 0xb0, 0x05, 0x46, 0x0f, 0x46, 0x24, 0x22, 0x00, 0x21, 0x03, 0xa8, 0xfe, 0xf7, 0x11, 0xf9, 0x40, 0x23, 0x01, 0x24, 0x02, 0x93, 0x10, 0x23, 0x0d, 0xf1, 0x07, 0x06, 0x02, 0xa9, 0x28, 0x6a, 0x07, 0x94, 0x08, 0x94, 0x09, 0x93, 0x04, 0x96, 0xff, 0xf7, 0x85, 0xfa, 0xa8, 0xb9, 0xc0, 0x23, 0x9d, 0xf8, 0x07, 0x10, 0x28, 0x6a, 0x21, 0xf0, 0x03, 0x01, 0x39, 0x43, 0x8d, 0xf8, 0x07, 0x10, 0x02, 0xa9, 0x02, 0x93, 0xcd, 0xe9, 0x08, 0x44, 0x0b, 0x96, 0xff, 0xf7, 0x74, 0xfa, 0x00, 0x30, 0x18, 0xbf, 0x01, 0x20, 0x40, 0x42, 0x0d, 0xb0, 0xf0, 0xbd, 0x4f, 0xf0, 0xff, 0x30, 0xfa, 0xe7, 0x00, 0x21, 0x10, 0xb5, 0x8c, 0xb0, 0x04, 0x46, 0x28, 0x22, 0x02, 0xa8, 0x8d, 0xf8, 0x07, 0x10, 0xfe, 0xf7, 0xdf, 0xf8, 0x10, 0x22, 0x0d, 0xf1, 0x07, 0x03, 0x04, 0x93, 0x01, 0x23, 0x09, 0x92, 0x62, 0x78, 0x02, 0xa9, 0x01, 0x3a, 0x9a, 0x42, 0x98, 0xbf, 0x40, 0x22, 0x20, 0x6a, 0x98, 0xbf, 0xcd, 0xe9, 0x02, 0x23, 0xcd, 0xe9, 0x07, 0x33, 0x06, 0x93, 0xff, 0xf7, 0x4c, 0xfa, 0x18, 0xb9, 0x9d, 0xf8, 0x07, 0x00, 0x0c, 0xb0, 0x10, 0xbd, 0x4f, 0xf0, 0xff, 0x30, 0xfa, 0xe7, 0x30, 0xb5, 0x8f, 0xb0, 0x04, 0x46, 0x0d, 0x46, 0x28, 0x22, 0x00, 0x21, 0x04, 0xa8, 0xfe, 0xf7, 0xb9, 0xf8, 0x01, 0xab, 0x06, 0x93, 0x01, 0x23, 0xcd, 0xe9, 0x08, 0x33, 0x63, 0x78, 0x01, 0x2b, 0x0a, 0xd0, 0x02, 0x2b, 0x10, 0xd0, 0x04, 0xa9, 0x20, 0x6a, 0xff, 0xf7, 0x2d, 0xfa, 0x88, 0xb9, 0xbd, 0xf8, 0x04, 0x00, 0x0f, 0xb0, 0x30, 0xbd, 0x40, 0x23, 0x04, 0x93, 0x10, 0x23, 0x0b, 0x93, 0x02, 0x23, 0x05, 0x95, 0x0a, 0x93, 0xee, 0xe7, 0x40, 0x22, 0x04, 0x92, 0x20, 0x22, 0x05, 0x95, 0x0b, 0x92, 0xf7, 0xe7, 0x4f, 0xf0, 0xff, 0x30, 0xec, 0xe7, 0x00, 0x21, 0x30, 0xb5, 0x8d, 0xb0, 0x05, 0x46, 0x28, 0x22, 0x02, 0xa8, 0xcd, 0xe9, 0x00, 0x11, 0xfe, 0xf7, 0x8b, 0xf8, 0x01, 0x23, 0x02, 0x22, 0x06, 0x93, 0xcd, 0xe9, 0x07, 0x32, 0x6b, 0x78, 0x20, 0x22, 0x01, 0x3b, 0x01, 0x2b, 0x98, 0xbf, 0x40, 0x23, 0x4f, 0xf0, 0x00, 0x04, 0x09, 0x92, 0x98, 0xbf, 0x02, 0x93, 0x0d, 0xeb, 0x04, 0x03, 0x02, 0xa9, 0x28, 0x6a, 0xcd, 0xe9, 0x03, 0x43, 0xff, 0xf7, 0xf5, 0xf9, 0x20, 0xb9, 0x02, 0x34, 0x08, 0x2c, 0xf3, 0xd1, 0x0d, 0xb0, 0x30, 0xbd, 0x4f, 0xf0, 0xff, 0x30, 0xfa, 0xe7, 0x00, 0x21, 0x10, 0xb5, 0x8c, 0xb0, 0x04, 0x46, 0x24, 0x22, 0x03, 0xa8, 0xcd, 0xe9, 0x00, 0x11, 0xfe, 0xf7, 0x60, 0xf8, 0x01, 0x23, 0x04, 0x22, 0x06, 0x93, 0xcd, 0xe9, 0x07, 0x23, 0x20, 0x22, 0x40, 0x23, 0x02, 0xa9, 0x20, 0x6a, 0x09, 0x92, 0x02, 0x93, 0xcd, 0xf8, 0x10, 0xd0, 0xff, 0xf7, 0xd3, 0xf9, 0x00, 0x30, 0x18, 0xbf, 0x01, 0x20, 0x40, 0x42, 0x0c, 0xb0, 0x10, 0xbd, 0x00, 0x21, 0x10, 0xb5, 0x04, 0x46, 0x8c, 0xb0, 0x28, 0x22, 0x02, 0xa8, 0xad, 0xf8, 0x06, 0x10, 0xfe, 0xf7, 0x41, 0xf8, 0x01, 0x22, 0x0d, 0xf1, 0x06, 0x03, 0x04, 0x93, 0x63, 0x78, 0x07, 0x92, 0x01, 0x3b, 0x93, 0x42, 0x06, 0xd8, 0x40, 0x23, 0x02, 0x93, 0x10, 0x23, 0x09, 0x93, 0x02, 0x23, 0x08, 0x92, 0x03, 0x93, 0x02, 0xa9, 0x20, 0x6a, 0xff, 0xf7, 0xaf, 0xf9, 0x28, 0xb9, 0xbd, 0xf8, 0x06, 0x00, 0xc0, 0xf3, 0xc0, 0x10, 0x0c, 0xb0, 0x10, 0xbd, 0x4f, 0xf0, 0xff, 0x30, 0xfa, 0xe7, 0x00, 0x00, 0xa1, 0xf1, 0x08, 0x02, 0x10, 0xb4, 0x0b, 0x46, 0x03, 0x2a, 0x1e, 0xd8, 0xdf, 0xe8, 0x02, 0xf0, 0x18, 0x25, 0x28, 0x02, 0x13, 0x4a, 0x01, 0x21, 0x13, 0x0e, 0xc3, 0x70, 0x12, 0x4b, 0x00, 0x6a, 0x1c, 0x68, 0x44, 0xf0, 0x20, 0x04, 0x1c, 0x60, 0x1c, 0x68, 0x44, 0xf0, 0x40, 0x04, 0x1c, 0x60, 0x1c, 0x68, 0x44, 0xf4, 0x80, 0x34, 0x1c, 0x60, 0x5d, 0xf8, 0x04, 0x4b, 0xff, 0xf7, 0x3c, 0xbb, 0x00, 0x22, 0x13, 0x0e, 0x83, 0x70, 0x00, 0x21, 0xe8, 0xe7, 0x4f, 0xf4, 0xb0, 0x72, 0x07, 0x49, 0x07, 0x48, 0x5d, 0xf8, 0x04, 0x4b, 0xfd, 0xf7, 0x99, 0xbe, 0x4f, 0xf0, 0x00, 0x42, 0xda, 0xe7, 0x04, 0x4a, 0xee, 0xe7, 0x04, 0x00, 0x44, 0xa0, 0x00, 0xd8, 0x00, 0x40, 0xd2, 0x55, 0x0b, 0x04, 0x15, 0x57, 0x0b, 0x04, 0x04, 0x00, 0x44, 0x20, 0x73, 0xb5, 0x04, 0x46, 0x13, 0x78, 0x0e, 0x46, 0x43, 0x70, 0x52, 0x68, 0x01, 0x2b, 0x21, 0x62, 0x82, 0x61, 0x14, 0xd0, 0x02, 0x2b, 0x16, 0xd0, 0x4f, 0xf0, 0xff, 0x35, 0x63, 0x78, 0x01, 0x2b, 0x14, 0xd1, 0x00, 0x21, 0x0c, 0x4b, 0x00, 0x91, 0x4f, 0xf0, 0x00, 0x62, 0x30, 0x46, 0xff, 0xf7, 0x57, 0xfb, 0x0a, 0x20, 0xfd, 0xf7, 0xd6, 0xf9, 0x28, 0x46, 0x02, 0xb0, 0x70, 0xbd, 0xff, 0xf7, 0x03, 0xfd, 0x05, 0x46, 0xea, 0xe7, 0xff, 0xf7, 0x89, 0xfd, 0xfa, 0xe7, 0x02, 0x2b, 0xf0, 0xd1, 0x00, 0x21, 0x02, 0x4b, 0x00, 0x91, 0xe7, 0xe7, 0xff, 0xff, 0x3f, 0x08, 0xff, 0xff, 0x7f, 0x08, 0x08, 0xb5, 0x24, 0x22, 0x00, 0x21, 0xfd, 0xf7, 0xb1, 0xff, 0x00, 0x20, 0x08, 0xbd, 0x00, 0x00, 0x38, 0xb5, 0x49, 0x4c, 0x49, 0x4d, 0x22, 0x68, 0x21, 0x46, 0x28, 0x46, 0xfd, 0xf7, 0x4a, 0xfe, 0x62, 0x68, 0x47, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x45, 0xfe, 0xa2, 0x68, 0x45, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x40, 0xfe, 0xe2, 0x68, 0x44, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x3b, 0xfe, 0x22, 0x69, 0x42, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x36, 0xfe, 0x62, 0x69, 0x41, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x31, 0xfe, 0xe2, 0x6a, 0x3f, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x2c, 0xfe, 0x22, 0x6b, 0x3e, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x27, 0xfe, 0x22, 0x6c, 0x3c, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x22, 0xfe, 0x62, 0x6c, 0x3b, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x1d, 0xfe, 0xe2, 0x6c, 0x39, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x18, 0xfe, 0x62, 0x6d, 0x38, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x13, 0xfe, 0xa2, 0x6d, 0x36, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x0e, 0xfe, 0x22, 0x6e, 0x35, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x09, 0xfe, 0xe2, 0x6e, 0x33, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x04, 0xfe, 0x22, 0x6f, 0x32, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xff, 0xfd, 0x62, 0x6f, 0x30, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xfa, 0xfd, 0xa2, 0x6f, 0x2f, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xf5, 0xfd, 0xe2, 0x6f, 0x2d, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xf0, 0xfd, 0xd4, 0xf8, 0x80, 0x20, 0x2b, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xea, 0xfd, 0xd4, 0xf8, 0x84, 0x20, 0x29, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xe4, 0xfd, 0xd4, 0xf8, 0x88, 0x20, 0x27, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xde, 0xfd, 0xd4, 0xf8, 0xc0, 0x20, 0x25, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xd8, 0xfd, 0xd4, 0xf8, 0xe0, 0x20, 0x23, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xd2, 0xfd, 0xd4, 0xf8, 0xf0, 0x20, 0x21, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xcc, 0xfd, 0xd4, 0xf8, 0x00, 0x21, 0x1f, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xc6, 0xfd, 0xd4, 0xf8, 0x00, 0x22, 0x28, 0x46, 0xbd, 0xe8, 0x38, 0x40, 0x1c, 0x49, 0xfd, 0xf7, 0xbe, 0xbd, 0x00, 0xd8, 0x00, 0x40, 0xe5, 0x55, 0x0b, 0x04, 0x04, 0xd8, 0x00, 0x40, 0x08, 0xd8, 0x00, 0x40, 0x0c, 0xd8, 0x00, 0x40, 0x10, 0xd8, 0x00, 0x40, 0x14, 0xd8, 0x00, 0x40, 0x2c, 0xd8, 0x00, 0x40, 0x30, 0xd8, 0x00, 0x40, 0x40, 0xd8, 0x00, 0x40, 0x44, 0xd8, 0x00, 0x40, 0x4c, 0xd8, 0x00, 0x40, 0x54, 0xd8, 0x00, 0x40, 0x58, 0xd8, 0x00, 0x40, 0x60, 0xd8, 0x00, 0x40, 0x6c, 0xd8, 0x00, 0x40, 0x70, 0xd8, 0x00, 0x40, 0x74, 0xd8, 0x00, 0x40, 0x78, 0xd8, 0x00, 0x40, 0x7c, 0xd8, 0x00, 0x40, 0x80, 0xd8, 0x00, 0x40, 0x84, 0xd8, 0x00, 0x40, 0x88, 0xd8, 0x00, 0x40, 0xc0, 0xd8, 0x00, 0x40, 0xe0, 0xd8, 0x00, 0x40, 0xf0, 0xd8, 0x00, 0x40, 0x00, 0xd9, 0x00, 0x40, 0x00, 0xda, 0x00, 0x40, 0x01, 0x22, 0x70, 0xb5, 0x26, 0x4e, 0x86, 0xb0, 0x90, 0x42, 0x05, 0x46, 0x04, 0x96, 0x8d, 0xf8, 0x14, 0x20, 0x06, 0xd0, 0x02, 0x28, 0x10, 0xd0, 0x22, 0x48, 0xfd, 0xf7, 0x77, 0xfd, 0x06, 0xb0, 0x70, 0xbd, 0x21, 0x48, 0xfd, 0xf7, 0x72, 0xfd, 0x03, 0xa9, 0x00, 0x20, 0x03, 0x95, 0xff, 0xf7, 0xd3, 0xfb, 0x04, 0x46, 0x18, 0xb9, 0x1d, 0x48, 0xef, 0xe7, 0x1d, 0x48, 0xf2, 0xe7, 0x03, 0xa9, 0xff, 0xf7, 0x6e, 0xfa, 0x38, 0xb1, 0x1b, 0x48, 0xfd, 0xf7, 0x60, 0xfd, 0x20, 0x46, 0xff, 0xf7, 0xe5, 0xfb, 0x19, 0x48, 0xe1, 0xe7, 0xff, 0xf7, 0xb1, 0xfb, 0x04, 0x46, 0x30, 0xb9, 0x17, 0x48, 0xfd, 0xf7, 0x54, 0xfd, 0x20, 0x46, 0xff, 0xf7, 0x5f, 0xfb, 0xef, 0xe7, 0xcd, 0xe9, 0x01, 0x56, 0x13, 0x4b, 0x14, 0x4d, 0xd9, 0x6f, 0x14, 0x48, 0xfd, 0xf7, 0x48, 0xfd, 0x01, 0xaa, 0x21, 0x46, 0x28, 0x46, 0xff, 0xf7, 0xb9, 0xfe, 0x18, 0xb1, 0x20, 0x46, 0xff, 0xf7, 0x9f, 0xfb, 0xe9, 0xe7, 0xd5, 0xe9, 0x06, 0x21, 0x0d, 0x48, 0xfd, 0xf7, 0x39, 0xfd, 0x0d, 0x48, 0xbd, 0xe7, 0x00, 0xbf, 0x00, 0xe0, 0x70, 0x72, 0x1c, 0x56, 0x0b, 0x04, 0xf4, 0x55, 0x0b, 0x04, 0x4c, 0x56, 0x0b, 0x04, 0x08, 0x56, 0x0b, 0x04, 0x69, 0x56, 0x0b, 0x04, 0xf4, 0x56, 0x0b, 0x04, 0x8a, 0x56, 0x0b, 0x04, 0x00, 0xd8, 0x00, 0x40, 0x80, 0x5a, 0x0b, 0x04, 0xa5, 0x56, 0x0b, 0x04, 0xb9, 0x56, 0x0b, 0x04, 0xda, 0x56, 0x0b, 0x04, 0x30, 0xb5, 0x05, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x24, 0x94, 0x40, 0x01, 0x3c, 0x8c, 0x40, 0x25, 0xea, 0x04, 0x04, 0x8b, 0x40, 0x23, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x03, 0x60, 0x30, 0xbd, 0x70, 0x47, 0x00, 0x00, 0x10, 0xb5, 0x04, 0x46, 0x00, 0x23, 0x01, 0x22, 0x03, 0x21, 0x2b, 0x48, 0xff, 0xf7, 0xe6, 0xff, 0x2a, 0x4b, 0x00, 0x2c, 0x44, 0xd0, 0x01, 0x24, 0x1c, 0x60, 0x00, 0x23, 0x22, 0x46, 0x19, 0x46, 0x27, 0x48, 0xff, 0xf7, 0xdb, 0xff, 0x23, 0x46, 0x21, 0x46, 0x25, 0x48, 0xff, 0xf7, 0xd6, 0xff, 0x24, 0x4a, 0x13, 0x68, 0x1b, 0x09, 0x13, 0xf0, 0x0e, 0x0f, 0xfa, 0xd0, 0x01, 0x23, 0x00, 0x21, 0x1a, 0x46, 0x21, 0x48, 0xff, 0xf7, 0xca, 0xff, 0x00, 0x23, 0x01, 0x22, 0x19, 0x46, 0x1e, 0x48, 0xff, 0xf7, 0xc4, 0xff, 0x00, 0x23, 0x06, 0x22, 0x19, 0x46, 0x1c, 0x48, 0xff, 0xf7, 0xbe, 0xff, 0x00, 0x23, 0x01, 0x22, 0x06, 0x21, 0x19, 0x48, 0xff, 0xf7, 0xb8, 0xff, 0x00, 0x23, 0x01, 0x22, 0x0d, 0x21, 0x16, 0x48, 0xff, 0xf7, 0xb2, 0xff, 0x01, 0x23, 0x00, 0x21, 0x1a, 0x46, 0x14, 0x48, 0xff, 0xf7, 0xac, 0xff, 0x01, 0x23, 0x12, 0x48, 0x1a, 0x46, 0x19, 0x46, 0xff, 0xf7, 0xa6, 0xff, 0xbd, 0xe8, 0x10, 0x40, 0x01, 0x23, 0x02, 0x21, 0x1a, 0x46, 0x0d, 0x48, 0xff, 0xf7, 0x9e, 0xbf, 0x02, 0x22, 0x1a, 0x60, 0x01, 0x23, 0x21, 0x46, 0x1a, 0x46, 0x05, 0x48, 0xff, 0xf7, 0x96, 0xff, 0x01, 0x22, 0x23, 0x46, 0x11, 0x46, 0xb8, 0xe7, 0x2c, 0x81, 0x03, 0x40, 0xa4, 0x5a, 0x0b, 0x04, 0x24, 0x81, 0x03, 0x40, 0x28, 0x81, 0x03, 0x40, 0x00, 0x81, 0x03, 0x40, 0x44, 0xa0, 0x03, 0x40, 0x80, 0x15, 0x05, 0x40, 0x2d, 0xe9, 0xf8, 0x43, 0x4f, 0xf0, 0x40, 0x62, 0x00, 0x23, 0x40, 0x08, 0x1b, 0x4c, 0x00, 0x05, 0x1b, 0x4e, 0x8b, 0x42, 0x1e, 0x44, 0x0a, 0xd1, 0x4f, 0xf0, 0x40, 0x65, 0x18, 0x4c, 0x19, 0x4a, 0xa6, 0x42, 0x0a, 0xd1, 0x18, 0x48, 0xfd, 0xf7, 0x8b, 0xfc, 0x00, 0x20, 0x16, 0xe0, 0x1d, 0x19, 0x16, 0x60, 0x01, 0x33, 0x85, 0x50, 0x04, 0x32, 0xea, 0xe7, 0x47, 0x59, 0x04, 0xeb, 0x02, 0x08, 0xb8, 0x45, 0x00, 0xeb, 0x05, 0x09, 0x0b, 0xd0, 0x10, 0x48, 0xfd, 0xf7, 0x79, 0xfc, 0x4b, 0x46, 0x42, 0x46, 0x39, 0x46, 0x0e, 0x48, 0xfd, 0xf7, 0x73, 0xfc, 0x01, 0x20, 0xbd, 0xe8, 0xf8, 0x83, 0x2b, 0x46, 0x53, 0xf8, 0x04, 0x7b, 0xa7, 0x42, 0x05, 0xd0, 0x08, 0x48, 0xfd, 0xf7, 0x68, 0xfc, 0x2b, 0x46, 0x22, 0x46, 0xed, 0xe7, 0x01, 0x34, 0x1d, 0x46, 0xd1, 0xe7, 0x98, 0xba, 0xdc, 0xfe, 0x67, 0x45, 0x23, 0x01, 0x31, 0x75, 0xb9, 0xfd, 0x63, 0x57, 0x0b, 0x04, 0x33, 0x57, 0x0b, 0x04, 0x4b, 0x57, 0x0b, 0x04, 0x4f, 0xf4, 0x7a, 0x73, 0x48, 0x43, 0xb0, 0xfb, 0xf3, 0xf2, 0x03, 0xfb, 0x12, 0x00, 0x00, 0x28, 0x0c, 0xbf, 0x10, 0x46, 0x50, 0x1c, 0x70, 0x47, 0xf8, 0xb5, 0x01, 0x23, 0x04, 0x46, 0x1a, 0x46, 0x15, 0x21, 0xd6, 0x48, 0xff, 0xf7, 0x26, 0xff, 0x01, 0x23, 0x15, 0x21, 0x1a, 0x46, 0xd4, 0x48, 0xff, 0xf7, 0x20, 0xff, 0x00, 0x23, 0x01, 0x22, 0x0f, 0x21, 0xd2, 0x48, 0xff, 0xf7, 0x1a, 0xff, 0x01, 0x23, 0x10, 0x21, 0x1a, 0x46, 0xcf, 0x48, 0xff, 0xf7, 0x14, 0xff, 0x00, 0x23, 0x01, 0x22, 0x1d, 0x21, 0xcc, 0x48, 0xff, 0xf7, 0x0e, 0xff, 0x08, 0x23, 0x06, 0x22, 0x00, 0x21, 0xca, 0x48, 0xff, 0xf7, 0x08, 0xff, 0x08, 0x23, 0x06, 0x22, 0x07, 0x21, 0xc7, 0x48, 0xff, 0xf7, 0x02, 0xff, 0x08, 0x23, 0x06, 0x22, 0x0e, 0x21, 0xc4, 0x48, 0xff, 0xf7, 0xfc, 0xfe, 0x01, 0x23, 0x06, 0x21, 0x1a, 0x46, 0xc1, 0x48, 0xff, 0xf7, 0xf6, 0xfe, 0x01, 0x23, 0x0d, 0x21, 0x1a, 0x46, 0xbe, 0x48, 0xff, 0xf7, 0xf0, 0xfe, 0x01, 0x23, 0x1e, 0x21, 0x1a, 0x46, 0xbb, 0x48, 0xff, 0xf7, 0xea, 0xfe, 0x01, 0x23, 0x1f, 0x21, 0x1a, 0x46, 0xb9, 0x48, 0xff, 0xf7, 0xe4, 0xfe, 0x01, 0x23, 0x07, 0x21, 0x1a, 0x46, 0xb6, 0x48, 0xff, 0xf7, 0xde, 0xfe, 0x07, 0x22, 0x65, 0x6c, 0xb4, 0x4b, 0x15, 0xf0, 0x01, 0x05, 0x1a, 0x60, 0x40, 0xf0, 0xff, 0x81, 0x2b, 0x46, 0x01, 0x22, 0x15, 0x21, 0xb1, 0x48, 0xff, 0xf7, 0xd0, 0xfe, 0x01, 0x23, 0x0f, 0x21, 0x1a, 0x46, 0xaf, 0x48, 0xff, 0xf7, 0xca, 0xfe, 0x2b, 0x46, 0x01, 0x22, 0x0f, 0x21, 0xad, 0x48, 0xff, 0xf7, 0xc4, 0xfe, 0x23, 0x23, 0x06, 0x22, 0x01, 0x21, 0xab, 0x48, 0xff, 0xf7, 0xbe, 0xfe, 0x28, 0x23, 0x06, 0x22, 0x09, 0x21, 0xa8, 0x48, 0xff, 0xf7, 0xb8, 0xfe, 0x17, 0x23, 0x06, 0x22, 0x11, 0x21, 0xa5, 0x48, 0xff, 0xf7, 0xb2, 0xfe, 0x1b, 0x23, 0x06, 0x22, 0x19, 0x21, 0xa2, 0x48, 0xff, 0xf7, 0xac, 0xfe, 0x23, 0x23, 0x06, 0x22, 0x01, 0x21, 0xa0, 0x48, 0xff, 0xf7, 0xa6, 0xfe, 0x28, 0x23, 0x06, 0x22, 0x09, 0x21, 0x9d, 0x48, 0xff, 0xf7, 0xa0, 0xfe, 0x23, 0x23, 0x06, 0x22, 0x11, 0x21, 0x9a, 0x48, 0xff, 0xf7, 0x9a, 0xfe, 0x06, 0x22, 0x28, 0x23, 0x19, 0x21, 0x97, 0x48, 0xff, 0xf7, 0x94, 0xfe, 0x63, 0x68, 0x96, 0x49, 0x0b, 0x2b, 0x0c, 0xbf, 0x4f, 0xf4, 0x0b, 0x62, 0x4f, 0xf4, 0xfc, 0x62, 0x93, 0x4b, 0x0a, 0x60, 0x1a, 0x60, 0x23, 0x68, 0xc8, 0x2b, 0x00, 0xf2, 0xbd, 0x81, 0x17, 0x23, 0x08, 0x22, 0x00, 0x21, 0x8f, 0x48, 0xff, 0xf7, 0x7f, 0xfe, 0x63, 0x68, 0x0b, 0x2b, 0x8e, 0x4b, 0x40, 0xf0, 0xd9, 0x81, 0x8d, 0x4a, 0x1a, 0x60, 0x00, 0x21, 0x8d, 0x4b, 0x04, 0x22, 0x19, 0x60, 0x8c, 0x48, 0x05, 0x23, 0x25, 0x68, 0xff, 0xf7, 0x6f, 0xfe, 0x8b, 0x4b, 0xad, 0x08, 0x1b, 0x68, 0x13, 0xf0, 0x80, 0x5f, 0x4f, 0xf4, 0x7a, 0x73, 0x40, 0xf0, 0xfd, 0x81, 0x40, 0xf6, 0x3c, 0x72, 0x6a, 0x43, 0x00, 0x21, 0xb2, 0xfb, 0xf3, 0xf3, 0x83, 0x48, 0x12, 0x22, 0xff, 0xf7, 0x5c, 0xfe, 0x29, 0x46, 0x3c, 0x20, 0xff, 0xf7, 0x1e, 0xff, 0x63, 0x68, 0x06, 0x46, 0x0b, 0x2b, 0x02, 0xd0, 0x5a, 0x20, 0xff, 0xf7, 0x17, 0xff, 0x43, 0x1c, 0x07, 0x22, 0x14, 0x21, 0x7a, 0x48, 0xff, 0xf7, 0x4b, 0xfe, 0x33, 0x46, 0x07, 0x22, 0x00, 0x21, 0x78, 0x48, 0xff, 0xf7, 0x45, 0xfe, 0x29, 0x46, 0x14, 0x20, 0xff, 0xf7, 0x07, 0xff, 0x07, 0x22, 0x03, 0x46, 0x08, 0x21, 0x73, 0x48, 0xff, 0xf7, 0x3b, 0xfe, 0x29, 0x46, 0x1e, 0x20, 0xff, 0xf7, 0xfd, 0xfe, 0x07, 0x22, 0x03, 0x46, 0x10, 0x21, 0x6e, 0x48, 0xff, 0xf7, 0x31, 0xfe, 0x33, 0x46, 0x07, 0x22, 0x18, 0x21, 0x6b, 0x48, 0xff, 0xf7, 0x2b, 0xfe, 0x29, 0x46, 0x6a, 0x48, 0xff, 0xf7, 0xed, 0xfe, 0x10, 0x22, 0x03, 0x46, 0x11, 0x46, 0x06, 0x46, 0x68, 0x48, 0xff, 0xf7, 0x20, 0xfe, 0x29, 0x46, 0x42, 0xf2, 0x10, 0x70, 0xff, 0xf7, 0xe1, 0xfe, 0x10, 0x22, 0x03, 0x46, 0x00, 0x21, 0x62, 0x48, 0xff, 0xf7, 0x15, 0xfe, 0x29, 0x46, 0x64, 0x20, 0xff, 0xf7, 0xd7, 0xfe, 0x07, 0x22, 0x03, 0x46, 0x07, 0x46, 0x18, 0x21, 0x5e, 0x48, 0xff, 0xf7, 0x0a, 0xfe, 0x63, 0x68, 0x0b, 0x2b, 0x40, 0xf0, 0x6e, 0x81, 0x29, 0x46, 0x46, 0x20, 0xff, 0xf7, 0xc8, 0xfe, 0x03, 0x46, 0x07, 0x22, 0x10, 0x21, 0x57, 0x48, 0xff, 0xf7, 0xfc, 0xfd, 0x01, 0x23, 0x07, 0x22, 0x08, 0x21, 0x54, 0x48, 0xff, 0xf7, 0xf6, 0xfd, 0x3b, 0x46, 0x07, 0x22, 0x00, 0x21, 0x51, 0x48, 0xff, 0xf7, 0xf0, 0xfd, 0x10, 0x22, 0x33, 0x46, 0x11, 0x46, 0x4f, 0x48, 0xff, 0xf7, 0xea, 0xfd, 0x33, 0x46, 0x10, 0x22, 0x00, 0x21, 0x4c, 0x48, 0xff, 0xf7, 0xe4, 0xfd, 0x29, 0x46, 0x4f, 0xf4, 0x7a, 0x70, 0xff, 0xf7, 0xa5, 0xfe, 0x63, 0x68, 0x06, 0x46, 0x0a, 0x2b, 0x05, 0xd1, 0x10, 0x22, 0x03, 0x46, 0x11, 0x46, 0x45, 0x48, 0xff, 0xf7, 0xd5, 0xfd, 0x63, 0x68, 0x0b, 0x2b, 0x05, 0xd1, 0x33, 0x46, 0x10, 0x22, 0x00, 0x21, 0x41, 0x48, 0xff, 0xf7, 0xcc, 0xfd, 0x10, 0x22, 0x33, 0x46, 0x11, 0x46, 0x3f, 0x48, 0xff, 0xf7, 0xc6, 0xfd, 0x29, 0x46, 0x4f, 0xf4, 0xfa, 0x70, 0xff, 0xf7, 0x87, 0xfe, 0x10, 0x22, 0x03, 0x46, 0x00, 0x21, 0x39, 0x48, 0xff, 0xf7, 0xbb, 0xfd, 0x29, 0x46, 0x69, 0x20, 0xff, 0xf7, 0x7d, 0xfe, 0x07, 0x22, 0x03, 0x46, 0x00, 0x21, 0x35, 0x48, 0xff, 0xf7, 0xb1, 0xfd, 0x23, 0x68, 0xc8, 0x2b, 0x40, 0xf2, 0x34, 0x81, 0xb3, 0xf5, 0xa7, 0x7f, 0xc0, 0xf0, 0x34, 0x81, 0xb3, 0xf5, 0xc8, 0x7f, 0x40, 0xf2, 0x34, 0x81, 0x40, 0xf2, 0x15, 0x22, 0x93, 0x42, 0x00, 0xf2, 0x0a, 0x81, 0x63, 0x68, 0x0a, 0x26, 0x0b, 0x2b, 0x0c, 0xbf, 0x04, 0x25, 0x00, 0x25, 0x14, 0x23, 0x07, 0x22, 0x18, 0x21, 0x27, 0x48, 0xff, 0xf7, 0x94, 0xfd, 0x33, 0x46, 0x07, 0x22, 0x08, 0x21, 0x24, 0x48, 0xff, 0xf7, 0x8e, 0xfd, 0x2b, 0x46, 0x03, 0x22, 0x00, 0x21, 0x14, 0x48, 0xff, 0xf7, 0x88, 0xfd, 0x40, 0xf6, 0xff, 0x73, 0x0c, 0x22, 0x00, 0x21, 0x1e, 0x48, 0xff, 0xf7, 0x81, 0xfd, 0x01, 0x23, 0x00, 0x21, 0x1a, 0x46, 0x38, 0xe0, 0x00, 0xbf, 0x0c, 0xc0, 0x03, 0x40, 0x04, 0xc0, 0x03, 0x40, 0x20, 0xa0, 0x03, 0x40, 0x44, 0xa0, 0x03, 0x40, 0x40, 0xa0, 0x03, 0x40, 0x00, 0x80, 0x03, 0x40, 0xe0, 0xc4, 0x04, 0x40, 0xa4, 0xc4, 0x04, 0x40, 0xa8, 0xc4, 0x04, 0x40, 0x50, 0xa0, 0x03, 0x40, 0x4c, 0xa0, 0x03, 0x40, 0x04, 0x80, 0x03, 0x40, 0x08, 0x80, 0x03, 0x40, 0x0c, 0x81, 0x03, 0x40, 0x18, 0x81, 0x03, 0x40, 0xcf, 0xb4, 0x95, 0xad, 0x1c, 0x81, 0x03, 0x40, 0x30, 0x81, 0x03, 0x40, 0x34, 0x81, 0x03, 0x40, 0x38, 0x81, 0x03, 0x40, 0xf0, 0x49, 0x02, 0x00, 0x3c, 0x81, 0x03, 0x40, 0x40, 0x81, 0x03, 0x40, 0x44, 0x81, 0x03, 0x40, 0x48, 0x81, 0x03, 0x40, 0x4c, 0x81, 0x03, 0x40, 0x50, 0x81, 0x03, 0x40, 0x80, 0x81, 0x03, 0x40, 0x6e, 0x48, 0xff, 0xf7, 0x41, 0xfd, 0x07, 0x23, 0x03, 0x22, 0x01, 0x21, 0x6c, 0x48, 0xff, 0xf7, 0x3b, 0xfd, 0x00, 0x23, 0x01, 0x22, 0x19, 0x46, 0x69, 0x48, 0xff, 0xf7, 0x35, 0xfd, 0x07, 0x22, 0x40, 0x23, 0x08, 0x21, 0x67, 0x48, 0xff, 0xf7, 0x2f, 0xfd, 0x63, 0x68, 0x03, 0x21, 0x0b, 0x2b, 0x15, 0xbf, 0x01, 0x23, 0x00, 0x23, 0x1a, 0x46, 0x01, 0x22, 0x62, 0x48, 0xff, 0xf7, 0x24, 0xfd, 0x63, 0x68, 0x01, 0x22, 0x0b, 0x2b, 0x0c, 0xbf, 0x01, 0x23, 0x00, 0x23, 0x02, 0x21, 0x5d, 0x48, 0xff, 0xf7, 0x1a, 0xfd, 0xe3, 0x6d, 0x02, 0x22, 0xc3, 0xf3, 0x81, 0x23, 0x01, 0x21, 0x5a, 0x48, 0xff, 0xf7, 0x12, 0xfd, 0x40, 0x23, 0x07, 0x22, 0x18, 0x21, 0x58, 0x48, 0xff, 0xf7, 0x0c, 0xfd, 0x00, 0x23, 0x04, 0x22, 0x14, 0x21, 0x55, 0x48, 0xff, 0xf7, 0x06, 0xfd, 0x0f, 0x23, 0x04, 0x22, 0x10, 0x21, 0x52, 0x48, 0xff, 0xf7, 0x00, 0xfd, 0x1c, 0x23, 0x06, 0x22, 0x08, 0x21, 0x4f, 0x48, 0xff, 0xf7, 0xfa, 0xfc, 0x12, 0x23, 0x06, 0x22, 0x00, 0x21, 0x4c, 0x48, 0xff, 0xf7, 0xf4, 0xfc, 0x01, 0x22, 0xe3, 0x6d, 0x11, 0x46, 0xc3, 0xf3, 0x40, 0x23, 0x49, 0x48, 0xff, 0xf7, 0xec, 0xfc, 0x63, 0x68, 0x0b, 0x2b, 0x07, 0xd1, 0xe3, 0x6d, 0x01, 0x22, 0xc3, 0xf3, 0x00, 0x23, 0x00, 0x21, 0x43, 0x48, 0xff, 0xf7, 0xe1, 0xfc, 0x4f, 0xf0, 0x07, 0x12, 0x42, 0x4b, 0x1a, 0x60, 0x00, 0x22, 0x5a, 0x60, 0x4f, 0xf0, 0xff, 0x32, 0x9a, 0x60, 0xf8, 0xbd, 0x01, 0x23, 0x15, 0x21, 0x1a, 0x46, 0x3d, 0x48, 0xff, 0xf7, 0xd1, 0xfc, 0x00, 0x23, 0x01, 0x22, 0x0f, 0x21, 0x3b, 0x48, 0xff, 0xf7, 0xcb, 0xfc, 0x01, 0x23, 0x1a, 0x46, 0xff, 0xe5, 0xb3, 0xf5, 0xa7, 0x7f, 0x01, 0xd2, 0x16, 0x23, 0x3e, 0xe6, 0xb3, 0xf5, 0xc8, 0x7f, 0x01, 0xd8, 0x15, 0x23, 0x39, 0xe6, 0x40, 0xf2, 0x15, 0x22, 0x93, 0x42, 0x01, 0xd8, 0x14, 0x23, 0x33, 0xe6, 0xb3, 0xf5, 0x27, 0x7f, 0x01, 0xd2, 0x10, 0x23, 0x2e, 0xe6, 0xb3, 0xf5, 0x48, 0x7f, 0x01, 0xd8, 0x11, 0x23, 0x29, 0xe6, 0x40, 0xf2, 0xa5, 0x32, 0x93, 0x42, 0x01, 0xd8, 0x12, 0x23, 0x23, 0xe6, 0x40, 0xf2, 0x2a, 0x42, 0x93, 0x42, 0x3f, 0xf6, 0x24, 0xae, 0x13, 0x23, 0x1c, 0xe6, 0x26, 0x4a, 0x26, 0x48, 0x1a, 0x60, 0x08, 0x22, 0x00, 0x23, 0x11, 0x46, 0xff, 0xf7, 0x99, 0xfc, 0x1f, 0xe6, 0x3b, 0x46, 0x94, 0xe6, 0xb3, 0xf5, 0x27, 0x7f, 0x0a, 0xd2, 0x63, 0x68, 0x0b, 0x2b, 0x15, 0xbf, 0x01, 0x25, 0x00, 0x25, 0x0e, 0x26, 0x0c, 0x26, 0x14, 0xbf, 0x1d, 0x23, 0x18, 0x23, 0xee, 0xe6, 0xb3, 0xf5, 0x48, 0x7f, 0x17, 0xd9, 0x40, 0xf2, 0xa5, 0x32, 0x93, 0x42, 0x95, 0xbf, 0x02, 0x25, 0x03, 0x25, 0x10, 0x26, 0x12, 0x26, 0x94, 0xbf, 0x21, 0x23, 0x25, 0x23, 0xdf, 0xe6, 0x07, 0x25, 0x05, 0x26, 0x09, 0x23, 0xdb, 0xe6, 0x06, 0x25, 0x05, 0x26, 0x0d, 0x23, 0xd7, 0xe6, 0x05, 0x25, 0x06, 0x26, 0x10, 0x23, 0xd3, 0xe6, 0x01, 0x25, 0x0e, 0x26, 0x1d, 0x23, 0xcf, 0xe6, 0x41, 0xf6, 0x78, 0x62, 0x01, 0xe6, 0x80, 0x81, 0x03, 0x40, 0x20, 0x81, 0x03, 0x40, 0x24, 0x81, 0x03, 0x40, 0x2c, 0x81, 0x03, 0x40, 0x54, 0x81, 0x03, 0x40, 0x58, 0x81, 0x03, 0x40, 0x5c, 0x81, 0x03, 0x40, 0xe0, 0xc4, 0x04, 0x40, 0xa4, 0xc4, 0x04, 0x40, 0xcf, 0xe4, 0x05, 0x8d, 0x0c, 0x81, 0x03, 0x40, 0x38, 0xb5, 0xc4, 0x6d, 0x05, 0x46, 0xc4, 0xf3, 0x81, 0x04, 0x01, 0x2c, 0x0f, 0xd0, 0x02, 0x2c, 0x4e, 0xd0, 0xc4, 0x23, 0x08, 0x22, 0x14, 0x21, 0x2c, 0x48, 0xff, 0xf7, 0x41, 0xfc, 0x01, 0x23, 0x2b, 0x48, 0x1a, 0x46, 0x1e, 0x21, 0xff, 0xf7, 0x3b, 0xfc, 0x2a, 0x48, 0x3c, 0xe0, 0xc4, 0x23, 0x08, 0x22, 0x14, 0x21, 0x25, 0x48, 0xff, 0xf7, 0x33, 0xfc, 0x00, 0x23, 0x04, 0x22, 0x08, 0x21, 0x25, 0x48, 0xff, 0xf7, 0x2d, 0xfc, 0x00, 0x23, 0x22, 0x46, 0x19, 0x46, 0x22, 0x48, 0xff, 0xf7, 0x27, 0xfc, 0x23, 0x46, 0x21, 0x46, 0x20, 0x48, 0xff, 0xf7, 0x22, 0xfc, 0x00, 0x23, 0x02, 0x21, 0x1d, 0x48, 0xff, 0xf7, 0x1d, 0xfc, 0xab, 0x6c, 0x03, 0x22, 0x03, 0xf0, 0x0f, 0x03, 0x1a, 0x21, 0x19, 0x48, 0xff, 0xf7, 0x15, 0xfc, 0xab, 0x6c, 0x03, 0x22, 0xc3, 0xf3, 0x03, 0x13, 0x17, 0x21, 0x15, 0x48, 0xff, 0xf7, 0x0d, 0xfc, 0xab, 0x6c, 0x03, 0x22, 0xc3, 0xf3, 0x03, 0x23, 0x14, 0x21, 0x11, 0x48, 0xff, 0xf7, 0x05, 0xfc, 0xab, 0x6c, 0x0f, 0x48, 0xc3, 0xf3, 0x07, 0x33, 0x08, 0x22, 0x0c, 0x21, 0xff, 0xf7, 0xfd, 0xfb, 0x0d, 0x48, 0xbd, 0xe8, 0x38, 0x40, 0xfd, 0xf7, 0x14, 0xb9, 0x01, 0x23, 0x19, 0x21, 0x1a, 0x46, 0x0a, 0x48, 0xff, 0xf7, 0xf2, 0xfb, 0x03, 0x48, 0x4c, 0x23, 0x08, 0x22, 0x14, 0x21, 0xff, 0xf7, 0xec, 0xfb, 0x06, 0x48, 0xed, 0xe7, 0x40, 0xa0, 0x03, 0x40, 0x34, 0xa0, 0x03, 0x40, 0x27, 0x58, 0x0b, 0x04, 0x80, 0xa0, 0x03, 0x40, 0xf6, 0x57, 0x0b, 0x04, 0x38, 0xa0, 0x03, 0x40, 0x0c, 0x58, 0x0b, 0x04, 0x82, 0x6c, 0x70, 0xb5, 0x02, 0xf0, 0x03, 0x02, 0x01, 0x2a, 0x04, 0x46, 0xc3, 0x6c, 0x11, 0xd1, 0xdb, 0xb2, 0x08, 0x22, 0x00, 0x21, 0x61, 0x48, 0xff, 0xf7, 0xce, 0xfb, 0x94, 0xf8, 0x4c, 0x30, 0x08, 0x22, 0x00, 0x21, 0x5e, 0x48, 0xff, 0xf7, 0xc7, 0xfb, 0x5e, 0x4b, 0x1b, 0x68, 0x84, 0xf8, 0x4d, 0x30, 0x10, 0xe0, 0x59, 0x49, 0x23, 0xf0, 0xff, 0x03, 0x09, 0x68, 0x02, 0x2a, 0xc9, 0xb2, 0x43, 0xea, 0x01, 0x03, 0xc3, 0x64, 0xf0, 0xd1, 0xc3, 0xf3, 0x07, 0x23, 0x08, 0x22, 0x00, 0x21, 0x54, 0x48, 0xff, 0xf7, 0xb1, 0xfb, 0x65, 0x6d, 0x06, 0x22, 0x05, 0xf0, 0x3f, 0x05, 0x2b, 0x46, 0x18, 0x21, 0x51, 0x48, 0xff, 0xf7, 0xa8, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x10, 0x21, 0x4e, 0x48, 0xff, 0xf7, 0xa2, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x08, 0x21, 0x4b, 0x48, 0xff, 0xf7, 0x9c, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x00, 0x21, 0x48, 0x48, 0xff, 0xf7, 0x96, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x18, 0x21, 0x46, 0x48, 0xff, 0xf7, 0x90, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x10, 0x21, 0x43, 0x48, 0xff, 0xf7, 0x8a, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x08, 0x21, 0x40, 0x48, 0xff, 0xf7, 0x84, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x00, 0x21, 0x3d, 0x48, 0xff, 0xf7, 0x7e, 0xfb, 0xa5, 0x6d, 0x06, 0x22, 0x05, 0xf0, 0x3f, 0x05, 0x2b, 0x46, 0x18, 0x21, 0x39, 0x48, 0xff, 0xf7, 0x75, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x10, 0x21, 0x36, 0x48, 0xff, 0xf7, 0x6f, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x08, 0x21, 0x33, 0x48, 0xff, 0xf7, 0x69, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x00, 0x21, 0x30, 0x48, 0xff, 0xf7, 0x63, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x18, 0x21, 0x2e, 0x48, 0xff, 0xf7, 0x5d, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x10, 0x21, 0x2b, 0x48, 0xff, 0xf7, 0x57, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x08, 0x21, 0x28, 0x48, 0xff, 0xf7, 0x51, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x00, 0x21, 0x25, 0x48, 0xff, 0xf7, 0x4b, 0xfb, 0xb4, 0xf8, 0x5a, 0x30, 0x06, 0x22, 0x03, 0xf0, 0x3f, 0x03, 0x18, 0x21, 0x22, 0x48, 0xff, 0xf7, 0x42, 0xfb, 0xb4, 0xf8, 0x5a, 0x30, 0x06, 0x22, 0x03, 0xf0, 0x3f, 0x03, 0x12, 0x21, 0x1d, 0x48, 0xff, 0xf7, 0x39, 0xfb, 0xb4, 0xf8, 0x56, 0x30, 0x06, 0x22, 0x03, 0xf0, 0x3f, 0x03, 0x0c, 0x21, 0x19, 0x48, 0xff, 0xf7, 0x30, 0xfb, 0x06, 0x22, 0xa3, 0x6d, 0x11, 0x46, 0x03, 0xf0, 0x3f, 0x03, 0x15, 0x48, 0xff, 0xf7, 0x28, 0xfb, 0x63, 0x6d, 0x06, 0x22, 0x03, 0xf0, 0x3f, 0x03, 0x00, 0x21, 0x11, 0x48, 0xff, 0xf7, 0x20, 0xfb, 0x23, 0x6d, 0x0c, 0x22, 0xc3, 0xf3, 0x0b, 0x03, 0x07, 0x21, 0x0e, 0x48, 0xff, 0xf7, 0x18, 0xfb, 0x23, 0x6d, 0x0c, 0x22, 0xbd, 0xe8, 0x70, 0x40, 0xc3, 0xf3, 0x0b, 0x33, 0x13, 0x21, 0x09, 0x48, 0xff, 0xf7, 0x0e, 0xbb, 0x18, 0xa0, 0x03, 0x40, 0x1c, 0xa0, 0x03, 0x40, 0x10, 0xa0, 0x03, 0x40, 0x24, 0xa0, 0x03, 0x40, 0x28, 0xa0, 0x03, 0x40, 0x2c, 0xa0, 0x03, 0x40, 0x30, 0xa0, 0x03, 0x40, 0x34, 0xa0, 0x03, 0x40, 0x58, 0xa0, 0x03, 0x40, 0x10, 0xb5, 0x04, 0x46, 0x0c, 0x4a, 0x13, 0x68, 0x03, 0xf0, 0x07, 0x03, 0x04, 0x2b, 0xfa, 0xd1, 0x20, 0x46, 0xff, 0xf7, 0x15, 0xff, 0x06, 0x23, 0x03, 0x22, 0x1d, 0x21, 0x07, 0x48, 0xff, 0xf7, 0xeb, 0xfa, 0x06, 0x48, 0x02, 0x23, 0x03, 0x22, 0x1a, 0x21, 0xff, 0xf7, 0xe5, 0xfa, 0x20, 0x46, 0xbd, 0xe8, 0x10, 0x40, 0xff, 0xf7, 0x90, 0xbe, 0x74, 0xa0, 0x03, 0x40, 0x38, 0xa0, 0x03, 0x40, 0x01, 0x23, 0x70, 0xb5, 0x2b, 0x4c, 0x2c, 0x4d, 0x21, 0x68, 0x1a, 0x46, 0x00, 0x29, 0x43, 0xd0, 0x02, 0x21, 0x2a, 0x48, 0xff, 0xf7, 0xd0, 0xfa, 0x24, 0x68, 0x01, 0x2c, 0x31, 0xd1, 0x23, 0x46, 0x22, 0x46, 0x03, 0x21, 0x25, 0x48, 0xff, 0xf7, 0xc7, 0xfa, 0x00, 0x23, 0x04, 0x21, 0x23, 0x48, 0xff, 0xf7, 0xc2, 0xfa, 0x01, 0x23, 0x00, 0x21, 0x1a, 0x46, 0x20, 0x48, 0xff, 0xf7, 0xbc, 0xfa, 0x2b, 0x68, 0xda, 0x05, 0xfc, 0xd5, 0x00, 0x23, 0x01, 0x22, 0x19, 0x46, 0x1b, 0x48, 0xff, 0xf7, 0xb3, 0xfa, 0x00, 0x23, 0x01, 0x22, 0x03, 0x21, 0x18, 0x48, 0xff, 0xf7, 0xad, 0xfa, 0x00, 0x23, 0x01, 0x22, 0x04, 0x21, 0x15, 0x48, 0xff, 0xf7, 0xa7, 0xfa, 0x2b, 0x68, 0xc3, 0xf3, 0x03, 0x13, 0x00, 0x2b, 0xfa, 0xd1, 0xbd, 0xe8, 0x70, 0x40, 0x01, 0x22, 0x03, 0x21, 0x10, 0x48, 0xff, 0xf7, 0x9b, 0xba, 0x02, 0x2c, 0xd6, 0xd1, 0x00, 0x23, 0x01, 0x22, 0x03, 0x21, 0x0b, 0x48, 0xff, 0xf7, 0x93, 0xfa, 0x01, 0x23, 0x1a, 0x46, 0xc9, 0xe7, 0x08, 0x48, 0xff, 0xf7, 0x8d, 0xfa, 0x2b, 0x68, 0xdb, 0x05, 0xfc, 0xd5, 0x00, 0x23, 0x01, 0x22, 0x19, 0x46, 0x04, 0x48, 0xff, 0xf7, 0x84, 0xfa, 0x00, 0x23, 0xdf, 0xe7, 0xa4, 0x5a, 0x0b, 0x04, 0x28, 0x81, 0x03, 0x40, 0x00, 0x81, 0x03, 0x40, 0x2c, 0x81, 0x03, 0x40, 0x38, 0xb5, 0x01, 0x22, 0x04, 0x46, 0x00, 0x23, 0x15, 0x21, 0x45, 0x48, 0xff, 0xf7, 0x72, 0xfa, 0x00, 0x23, 0x01, 0x22, 0x1f, 0x21, 0x43, 0x48, 0xff, 0xf7, 0x6c, 0xfa, 0x00, 0x23, 0x01, 0x22, 0x15, 0x21, 0x41, 0x48, 0xff, 0xf7, 0x66, 0xfa, 0x00, 0x23, 0x01, 0x22, 0x02, 0x21, 0x3f, 0x48, 0xff, 0xf7, 0x60, 0xfa, 0x3e, 0x4d, 0x3f, 0x4b, 0x00, 0x21, 0x2b, 0x60, 0x01, 0x23, 0x3e, 0x48, 0x1a, 0x46, 0xff, 0xf7, 0x57, 0xfa, 0x01, 0x23, 0x10, 0x21, 0x1a, 0x46, 0x3a, 0x48, 0xff, 0xf7, 0x51, 0xfa, 0x01, 0x23, 0x1f, 0x21, 0x1a, 0x46, 0x38, 0x48, 0xff, 0xf7, 0x4b, 0xfa, 0x01, 0x23, 0x1f, 0x21, 0x1a, 0x46, 0x36, 0x48, 0xff, 0xf7, 0x45, 0xfa, 0x01, 0x23, 0x1f, 0x21, 0x1a, 0x46, 0x28, 0x46, 0xff, 0xf7, 0x3f, 0xfa, 0x02, 0x23, 0x0c, 0x21, 0x1a, 0x46, 0x31, 0x48, 0xff, 0xf7, 0x39, 0xfa, 0x03, 0x23, 0x02, 0x22, 0x0c, 0x21, 0x2f, 0x48, 0xff, 0xf7, 0x33, 0xfa, 0x01, 0x23, 0x15, 0x21, 0x1a, 0x46, 0x22, 0x48, 0xff, 0xf7, 0x2d, 0xfa, 0x01, 0x23, 0x1f, 0x21, 0x1a, 0x46, 0x20, 0x48, 0xff, 0xf7, 0x27, 0xfa, 0x01, 0x23, 0x15, 0x21, 0x1a, 0x46, 0x1e, 0x48, 0xff, 0xf7, 0x21, 0xfa, 0x20, 0x46, 0xff, 0xf7, 0xf0, 0xfa, 0x20, 0x46, 0xff, 0xf7, 0x1f, 0xff, 0x20, 0x46, 0xff, 0xf7, 0x3c, 0xff, 0x01, 0x23, 0x1f, 0x21, 0x1a, 0x46, 0x20, 0x48, 0xff, 0xf7, 0x12, 0xfa, 0x1f, 0x49, 0x20, 0x48, 0xfc, 0xf7, 0x2a, 0xff, 0x21, 0x68, 0x1f, 0x48, 0xfc, 0xf7, 0x26, 0xff, 0xd4, 0xe9, 0x15, 0x12, 0x1d, 0x48, 0xfc, 0xf7, 0x21, 0xff, 0xe1, 0x6c, 0x1c, 0x48, 0xfc, 0xf7, 0x1d, 0xff, 0xe3, 0x6d, 0xdb, 0x00, 0x08, 0xd4, 0x63, 0x68, 0x0b, 0x2b, 0x0e, 0xd1, 0x08, 0x21, 0x18, 0x48, 0xfc, 0xf7, 0x13, 0xff, 0x20, 0x20, 0x38, 0xbd, 0x4f, 0xf4, 0x80, 0x31, 0x08, 0x20, 0xff, 0xf7, 0x6c, 0xfa, 0x00, 0x28, 0xef, 0xd0, 0x00, 0x20, 0xf5, 0xe7, 0x20, 0x21, 0xef, 0xe7, 0x04, 0xc0, 0x03, 0x40, 0x6c, 0xc0, 0x03, 0x40, 0x0c, 0xc0, 0x03, 0x40, 0x80, 0x15, 0x05, 0x40, 0x94, 0xc4, 0x04, 0x40, 0x81, 0x02, 0x00, 0xe0, 0xac, 0xc4, 0x04, 0x40, 0x8c, 0xc4, 0x04, 0x40, 0x90, 0xc4, 0x04, 0x40, 0xa4, 0xc4, 0x04, 0x40, 0xa8, 0xc4, 0x04, 0x40, 0x14, 0x20, 0x10, 0x40, 0x79, 0x57, 0x0b, 0x04, 0x7f, 0x57, 0x0b, 0x04, 0x99, 0x57, 0x0b, 0x04, 0xac, 0x57, 0x0b, 0x04, 0xd2, 0x57, 0x0b, 0x04, 0xe4, 0x57, 0x0b, 0x04, 0x38, 0xb5, 0x00, 0x23, 0x08, 0x4c, 0x05, 0x46, 0x19, 0x46, 0x20, 0x46, 0x01, 0x22, 0xff, 0xf7, 0xbd, 0xf9, 0x01, 0x22, 0x00, 0x23, 0x11, 0x46, 0xff, 0xf7, 0xb8, 0xf9, 0x28, 0x46, 0xbd, 0xe8, 0x38, 0x40, 0xff, 0xf7, 0x39, 0xbf, 0x00, 0xbf, 0x80, 0x15, 0x05, 0x40, 0x00, 0xb5, 0x03, 0x68, 0x99, 0xb0, 0x00, 0x93, 0x43, 0x68, 0x1c, 0x4a, 0x01, 0x93, 0x83, 0x68, 0x02, 0x93, 0xc3, 0x68, 0x03, 0x93, 0x03, 0x69, 0x04, 0x93, 0x43, 0x69, 0x05, 0x93, 0x83, 0x69, 0x06, 0x93, 0xc3, 0x69, 0x07, 0x93, 0x03, 0x6a, 0x08, 0x93, 0x43, 0x6a, 0x09, 0x93, 0x83, 0x6a, 0x0a, 0x93, 0xc3, 0x6a, 0x0b, 0x93, 0x03, 0x6b, 0x0c, 0x93, 0x43, 0x6b, 0x0d, 0x93, 0x83, 0x6b, 0x0e, 0x93, 0xc3, 0x6b, 0x0f, 0x93, 0x03, 0x6c, 0x10, 0x93, 0x43, 0x6c, 0x11, 0x93, 0x83, 0x6c, 0x12, 0x93, 0xc3, 0x6c, 0x13, 0x93, 0x03, 0x6d, 0x14, 0x93, 0x43, 0x6d, 0x15, 0x93, 0x83, 0x6d, 0x16, 0x93, 0xc3, 0x6d, 0x68, 0x46, 0x17, 0x93, 0x05, 0x4b, 0x1a, 0x60, 0xff, 0xf7, 0xfe, 0xfe, 0xb0, 0xfa, 0x80, 0xf0, 0x40, 0x09, 0x19, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x51, 0x33, 0x08, 0x00, 0x40, 0x00, 0x05, 0x40, 0x70, 0xb5, 0x31, 0x4c, 0xfc, 0xf7, 0xbe, 0xfa, 0x02, 0x22, 0x04, 0xf1, 0xbc, 0x01, 0xd4, 0xf8, 0xb8, 0x00, 0xfd, 0xf7, 0xed, 0xf9, 0x04, 0xf5, 0x3e, 0x71, 0x2c, 0x48, 0xfc, 0xf7, 0x7a, 0xfe, 0xfc, 0xf7, 0x28, 0xfb, 0x05, 0x46, 0x00, 0x28, 0x4b, 0xd1, 0x01, 0x46, 0x88, 0x22, 0x04, 0xf5, 0x50, 0x70, 0xfc, 0xf7, 0xcb, 0xff, 0x01, 0x23, 0x25, 0x4a, 0x26, 0x48, 0xc4, 0xe9, 0xd0, 0x23, 0xfc, 0xf7, 0x68, 0xfe, 0x4f, 0xf4, 0x60, 0x42, 0x23, 0x49, 0x24, 0x48, 0xfc, 0xf7, 0x62, 0xfe, 0x4f, 0xf4, 0x60, 0x41, 0x20, 0x48, 0xfc, 0xf7, 0x23, 0xff, 0xd4, 0xf8, 0x98, 0x30, 0x43, 0xbb, 0x1f, 0x48, 0xfc, 0xf7, 0x57, 0xfe, 0xd4, 0xf8, 0x9c, 0x00, 0xff, 0xf7, 0xcd, 0xf8, 0xa3, 0x6b, 0x1b, 0xb3, 0x1c, 0x48, 0xfc, 0xf7, 0x4e, 0xfe, 0x1b, 0x48, 0xff, 0xf7, 0x7f, 0xff, 0x01, 0x28, 0x0c, 0xd1, 0x1a, 0x4c, 0x18, 0x4e, 0x29, 0x46, 0x20, 0x46, 0xfc, 0xf7, 0x43, 0xfe, 0x30, 0x46, 0xff, 0xf7, 0x74, 0xff, 0x10, 0xb1, 0x01, 0x35, 0x05, 0x2d, 0xf4, 0xd1, 0x0a, 0x20, 0xfc, 0xf7, 0xf7, 0xf9, 0x13, 0x48, 0xfc, 0xf7, 0x36, 0xfe, 0xfc, 0xf7, 0xb2, 0xfa, 0x4f, 0xf4, 0x00, 0x00, 0x70, 0xbd, 0x10, 0x48, 0xfc, 0xf7, 0x2e, 0xfe, 0xd9, 0xe7, 0x0f, 0x48, 0xfc, 0xf7, 0x2a, 0xfe, 0xec, 0xe7, 0x00, 0x20, 0xf4, 0xe7, 0x00, 0xbf, 0x00, 0x00, 0x0b, 0x04, 0x42, 0x58, 0x0b, 0x04, 0x44, 0x52, 0x41, 0x4d, 0x57, 0x58, 0x0b, 0x04, 0x00, 0x00, 0x0a, 0x04, 0x65, 0x58, 0x0b, 0x04, 0x7b, 0x58, 0x0b, 0x04, 0x9b, 0x58, 0x0b, 0x04, 0x38, 0x00, 0x0b, 0x04, 0xa8, 0x58, 0x0b, 0x04, 0xdf, 0x58, 0x0b, 0x04, 0x88, 0x58, 0x0b, 0x04, 0xcc, 0x58, 0x0b, 0x04, 0x53, 0xb9, 0x4a, 0xb9, 0x00, 0x29, 0x08, 0xbf, 0x00, 0x28, 0x1c, 0xbf, 0x4f, 0xf0, 0xff, 0x31, 0x4f, 0xf0, 0xff, 0x30, 0x00, 0xf0, 0x70, 0xb9, 0xad, 0xf1, 0x08, 0x0c, 0x6d, 0xe9, 0x04, 0xce, 0x00, 0xf0, 0x06, 0xf8, 0xdd, 0xf8, 0x04, 0xe0, 0xdd, 0xe9, 0x02, 0x23, 0x04, 0xb0, 0x70, 0x47, 0x2d, 0xe9, 0xf0, 0x4f, 0x09, 0x9e, 0x04, 0x46, 0x89, 0x46, 0x00, 0x2b, 0x40, 0xf0, 0x83, 0x80, 0x8a, 0x42, 0x15, 0x46, 0x45, 0xd9, 0xb2, 0xfa, 0x82, 0xf2, 0x4a, 0xb1, 0xc2, 0xf1, 0x20, 0x07, 0x01, 0xfa, 0x02, 0xf3, 0x95, 0x40, 0x94, 0x40, 0x20, 0xfa, 0x07, 0xf7, 0x47, 0xea, 0x03, 0x09, 0x4f, 0xea, 0x15, 0x4e, 0x23, 0x0c, 0x1f, 0xfa, 0x85, 0xf8, 0xb9, 0xfb, 0xfe, 0xfc, 0x0e, 0xfb, 0x1c, 0x99, 0x0c, 0xfb, 0x08, 0xf1, 0x43, 0xea, 0x09, 0x43, 0x99, 0x42, 0x0a, 0xd9, 0xeb, 0x18, 0x2c, 0xbf, 0x01, 0x20, 0x00, 0x20, 0x99, 0x42, 0x02, 0xd9, 0x00, 0x28, 0x00, 0xf0, 0x1d, 0x81, 0x0c, 0xf1, 0xff, 0x3c, 0x59, 0x1a, 0xa3, 0xb2, 0xb1, 0xfb, 0xfe, 0xf0, 0x0e, 0xfb, 0x10, 0x11, 0x00, 0xfb, 0x08, 0xf8, 0x43, 0xea, 0x01, 0x44, 0xa0, 0x45, 0x05, 0xd9, 0x2c, 0x19, 0x02, 0xd2, 0xa0, 0x45, 0x00, 0xf2, 0x0e, 0x81, 0x01, 0x38, 0xa4, 0xeb, 0x08, 0x04, 0x40, 0xea, 0x0c, 0x40, 0x00, 0x27, 0x1e, 0xb1, 0xd4, 0x40, 0x00, 0x23, 0xc6, 0xe9, 0x00, 0x43, 0x39, 0x46, 0xbd, 0xe8, 0xf0, 0x8f, 0x00, 0x2a, 0x51, 0xd0, 0xb2, 0xfa, 0x82, 0xf2, 0x00, 0x2a, 0x40, 0xf0, 0xaf, 0x80, 0x49, 0x1b, 0x4f, 0xea, 0x15, 0x4e, 0x1f, 0xfa, 0x85, 0xf8, 0x01, 0x27, 0x23, 0x0c, 0xb1, 0xfb, 0xfe, 0xfc, 0x0e, 0xfb, 0x1c, 0x11, 0x08, 0xfb, 0x0c, 0xf0, 0x43, 0xea, 0x01, 0x43, 0x98, 0x42, 0x0a, 0xd9, 0xeb, 0x18, 0x2c, 0xbf, 0x01, 0x21, 0x00, 0x21, 0x98, 0x42, 0x02, 0xd9, 0x00, 0x29, 0x00, 0xf0, 0xd7, 0x80, 0x0c, 0xf1, 0xff, 0x3c, 0x19, 0x1a, 0xa3, 0xb2, 0xb1, 0xfb, 0xfe, 0xf0, 0x0e, 0xfb, 0x10, 0x11, 0x08, 0xfb, 0x00, 0xf8, 0x43, 0xea, 0x01, 0x44, 0xa0, 0x45, 0x05, 0xd9, 0x2c, 0x19, 0x02, 0xd2, 0xa0, 0x45, 0x00, 0xf2, 0xc1, 0x80, 0x01, 0x38, 0xa4, 0xeb, 0x08, 0x04, 0x40, 0xea, 0x0c, 0x40, 0xbd, 0xe7, 0x8b, 0x42, 0x08, 0xd9, 0x00, 0x2e, 0x74, 0xd0, 0x00, 0x27, 0xc6, 0xe9, 0x00, 0x01, 0x38, 0x46, 0x39, 0x46, 0xbd, 0xe8, 0xf0, 0x8f, 0xb3, 0xfa, 0x83, 0xf7, 0x67, 0xb9, 0x8b, 0x42, 0xc0, 0xf0, 0xa4, 0x80, 0x82, 0x42, 0x40, 0xf2, 0xa1, 0x80, 0x38, 0x46, 0x00, 0x2e, 0xab, 0xd0, 0xc6, 0xe9, 0x00, 0x49, 0xa8, 0xe7, 0xff, 0xde, 0xc7, 0xf1, 0x20, 0x05, 0xbb, 0x40, 0x02, 0xfa, 0x07, 0xfc, 0x01, 0xfa, 0x07, 0xf4, 0xea, 0x40, 0x20, 0xfa, 0x05, 0xf8, 0xe9, 0x40, 0x00, 0xfa, 0x07, 0xfe, 0x1a, 0x43, 0x48, 0xea, 0x04, 0x04, 0x4f, 0xea, 0x12, 0x48, 0x20, 0x0c, 0x1f, 0xfa, 0x82, 0xf9, 0xb1, 0xfb, 0xf8, 0xfa, 0x08, 0xfb, 0x1a, 0x11, 0x0a, 0xfb, 0x09, 0xfb, 0x40, 0xea, 0x01, 0x41, 0x8b, 0x45, 0x0a, 0xd9, 0x51, 0x18, 0x2c, 0xbf, 0x01, 0x23, 0x00, 0x23, 0x8b, 0x45, 0x02, 0xd9, 0x00, 0x2b, 0x00, 0xf0, 0x88, 0x80, 0x0a, 0xf1, 0xff, 0x3a, 0xa1, 0xeb, 0x0b, 0x01, 0xa4, 0xb2, 0xb1, 0xfb, 0xf8, 0xf0, 0x08, 0xfb, 0x10, 0x11, 0x00, 0xfb, 0x09, 0xf9, 0x44, 0xea, 0x01, 0x41, 0x89, 0x45, 0x04, 0xd9, 0x51, 0x18, 0x01, 0xd2, 0x89, 0x45, 0x7b, 0xd8, 0x01, 0x38, 0x40, 0xea, 0x0a, 0x40, 0xa1, 0xeb, 0x09, 0x01, 0xa0, 0xfb, 0x0c, 0x89, 0x49, 0x45, 0x44, 0x46, 0x4b, 0x46, 0x02, 0xd3, 0x06, 0xd1, 0xc6, 0x45, 0x04, 0xd2, 0x01, 0x38, 0xb8, 0xeb, 0x0c, 0x04, 0x69, 0xeb, 0x02, 0x03, 0x00, 0x2e, 0x5d, 0xd0, 0xbe, 0xeb, 0x04, 0x02, 0x61, 0xeb, 0x03, 0x01, 0x01, 0xfa, 0x05, 0xf5, 0x22, 0xfa, 0x07, 0xf3, 0xf9, 0x40, 0x00, 0x27, 0x1d, 0x43, 0xc6, 0xe9, 0x00, 0x51, 0x49, 0xe7, 0x37, 0x46, 0x30, 0x46, 0x46, 0xe7, 0xc2, 0xf1, 0x20, 0x00, 0x95, 0x40, 0x01, 0xfa, 0x02, 0xf7, 0x21, 0xfa, 0x00, 0xf3, 0x4f, 0xea, 0x15, 0x4e, 0x24, 0xfa, 0x00, 0xf1, 0x1f, 0xfa, 0x85, 0xf8, 0x94, 0x40, 0x39, 0x43, 0xb3, 0xfb, 0xfe, 0xf0, 0x0f, 0x0c, 0x0e, 0xfb, 0x10, 0x33, 0x00, 0xfb, 0x08, 0xfc, 0x47, 0xea, 0x03, 0x43, 0x9c, 0x45, 0x07, 0xd9, 0xeb, 0x18, 0x2c, 0xbf, 0x01, 0x27, 0x00, 0x27, 0x9c, 0x45, 0x00, 0xd9, 0x8f, 0xb3, 0x01, 0x38, 0xa3, 0xeb, 0x0c, 0x03, 0x89, 0xb2, 0xb3, 0xfb, 0xfe, 0xf7, 0x0e, 0xfb, 0x17, 0x33, 0x07, 0xfb, 0x08, 0xfc, 0x41, 0xea, 0x03, 0x41, 0x8c, 0x45, 0x04, 0xd9, 0x69, 0x18, 0x01, 0xd2, 0x8c, 0x45, 0x25, 0xd8, 0x01, 0x3f, 0xa1, 0xeb, 0x0c, 0x01, 0x47, 0xea, 0x00, 0x47, 0x1d, 0xe7, 0x84, 0x1a, 0x61, 0xeb, 0x03, 0x03, 0x01, 0x20, 0x99, 0x46, 0x59, 0xe7, 0x02, 0x38, 0x2c, 0x44, 0x3c, 0xe7, 0xac, 0xf1, 0x02, 0x0c, 0x2b, 0x44, 0x26, 0xe7, 0xac, 0xf1, 0x02, 0x0c, 0x2b, 0x44, 0xe0, 0xe6, 0x02, 0x38, 0x2c, 0x44, 0xef, 0xe6, 0x37, 0x46, 0xf7, 0xe6, 0xaa, 0xf1, 0x02, 0x0a, 0x11, 0x44, 0x75, 0xe7, 0x02, 0x38, 0x2b, 0x44, 0xcb, 0xe7, 0x02, 0x38, 0x11, 0x44, 0x81, 0xe7, 0x02, 0x3f, 0x29, 0x44, 0xd7, 0xe7, 0x00, 0xbf, 0x70, 0x47, 0x00, 0xbf, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc9, 0x03, 0x0b, 0x04, 0xdd, 0x03, 0x0b, 0x04, 0xdd, 0x03, 0x0b, 0x04, 0xdd, 0x03, 0x0b, 0x04, 0xdd, 0x03, 0x0b, 0x04, 0xdd, 0x03, 0x0b, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdd, 0x03, 0x0b, 0x04, 0xdd, 0x03, 0x0b, 0x04, 0x00, 0x00, 0x00, 0x00, 0xdd, 0x03, 0x0b, 0x04, 0x29, 0x06, 0x0b, 0x04, 0x50, 0x97, 0x31, 0x00, 0x00, 0x09, 0x3d, 0x00, 0x00, 0x09, 0x3d, 0x00, 0x00, 0x09, 0x3d, 0x00, 0x00, 0xe0, 0x2e, 0x00, 0x08, 0x0a, 0x06, 0x08, 0x08, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x6f, 0x6b, 0x0a, 0x00, 0x67, 0x6f, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x62, 0x20, 0x65, 0x66, 0x65, 0x78, 0x21, 0x0a, 0x00, 0x73, 0x65, 0x74, 0x20, 0x70, 0x6c, 0x6c, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x28, 0x28, 0x28, 0x28, 0x28, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0xa0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x10, 0x10, 0x10, 0x10, 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, 0x00, 0xa0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x10, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x5b, 0x25, 0x64, 0x5d, 0x00, 0x25, 0x73, 0x00, 0x6b, 0x65, 0x79, 0x20, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x3a, 0x20, 0x25, 0x63, 0x0a, 0x00, 0x73, 0x72, 0x63, 0x5f, 0x73, 0x75, 0x6d, 0x3d, 0x25, 0x78, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x30, 0x07, 0x77, 0x2c, 0x61, 0x0e, 0xee, 0xba, 0x51, 0x09, 0x99, 0x19, 0xc4, 0x6d, 0x07, 0x8f, 0xf4, 0x6a, 0x70, 0x35, 0xa5, 0x63, 0xe9, 0xa3, 0x95, 0x64, 0x9e, 0x32, 0x88, 0xdb, 0x0e, 0xa4, 0xb8, 0xdc, 0x79, 0x1e, 0xe9, 0xd5, 0xe0, 0x88, 0xd9, 0xd2, 0x97, 0x2b, 0x4c, 0xb6, 0x09, 0xbd, 0x7c, 0xb1, 0x7e, 0x07, 0x2d, 0xb8, 0xe7, 0x91, 0x1d, 0xbf, 0x90, 0x64, 0x10, 0xb7, 0x1d, 0xf2, 0x20, 0xb0, 0x6a, 0x48, 0x71, 0xb9, 0xf3, 0xde, 0x41, 0xbe, 0x84, 0x7d, 0xd4, 0xda, 0x1a, 0xeb, 0xe4, 0xdd, 0x6d, 0x51, 0xb5, 0xd4, 0xf4, 0xc7, 0x85, 0xd3, 0x83, 0x56, 0x98, 0x6c, 0x13, 0xc0, 0xa8, 0x6b, 0x64, 0x7a, 0xf9, 0x62, 0xfd, 0xec, 0xc9, 0x65, 0x8a, 0x4f, 0x5c, 0x01, 0x14, 0xd9, 0x6c, 0x06, 0x63, 0x63, 0x3d, 0x0f, 0xfa, 0xf5, 0x0d, 0x08, 0x8d, 0xc8, 0x20, 0x6e, 0x3b, 0x5e, 0x10, 0x69, 0x4c, 0xe4, 0x41, 0x60, 0xd5, 0x72, 0x71, 0x67, 0xa2, 0xd1, 0xe4, 0x03, 0x3c, 0x47, 0xd4, 0x04, 0x4b, 0xfd, 0x85, 0x0d, 0xd2, 0x6b, 0xb5, 0x0a, 0xa5, 0xfa, 0xa8, 0xb5, 0x35, 0x6c, 0x98, 0xb2, 0x42, 0xd6, 0xc9, 0xbb, 0xdb, 0x40, 0xf9, 0xbc, 0xac, 0xe3, 0x6c, 0xd8, 0x32, 0x75, 0x5c, 0xdf, 0x45, 0xcf, 0x0d, 0xd6, 0xdc, 0x59, 0x3d, 0xd1, 0xab, 0xac, 0x30, 0xd9, 0x26, 0x3a, 0x00, 0xde, 0x51, 0x80, 0x51, 0xd7, 0xc8, 0x16, 0x61, 0xd0, 0xbf, 0xb5, 0xf4, 0xb4, 0x21, 0x23, 0xc4, 0xb3, 0x56, 0x99, 0x95, 0xba, 0xcf, 0x0f, 0xa5, 0xbd, 0xb8, 0x9e, 0xb8, 0x02, 0x28, 0x08, 0x88, 0x05, 0x5f, 0xb2, 0xd9, 0x0c, 0xc6, 0x24, 0xe9, 0x0b, 0xb1, 0x87, 0x7c, 0x6f, 0x2f, 0x11, 0x4c, 0x68, 0x58, 0xab, 0x1d, 0x61, 0xc1, 0x3d, 0x2d, 0x66, 0xb6, 0x90, 0x41, 0xdc, 0x76, 0x06, 0x71, 0xdb, 0x01, 0xbc, 0x20, 0xd2, 0x98, 0x2a, 0x10, 0xd5, 0xef, 0x89, 0x85, 0xb1, 0x71, 0x1f, 0xb5, 0xb6, 0x06, 0xa5, 0xe4, 0xbf, 0x9f, 0x33, 0xd4, 0xb8, 0xe8, 0xa2, 0xc9, 0x07, 0x78, 0x34, 0xf9, 0x00, 0x0f, 0x8e, 0xa8, 0x09, 0x96, 0x18, 0x98, 0x0e, 0xe1, 0xbb, 0x0d, 0x6a, 0x7f, 0x2d, 0x3d, 0x6d, 0x08, 0x97, 0x6c, 0x64, 0x91, 0x01, 0x5c, 0x63, 0xe6, 0xf4, 0x51, 0x6b, 0x6b, 0x62, 0x61, 0x6c, 0x1c, 0xd8, 0x30, 0x65, 0x85, 0x4e, 0x00, 0x62, 0xf2, 0xed, 0x95, 0x06, 0x6c, 0x7b, 0xa5, 0x01, 0x1b, 0xc1, 0xf4, 0x08, 0x82, 0x57, 0xc4, 0x0f, 0xf5, 0xc6, 0xd9, 0xb0, 0x65, 0x50, 0xe9, 0xb7, 0x12, 0xea, 0xb8, 0xbe, 0x8b, 0x7c, 0x88, 0xb9, 0xfc, 0xdf, 0x1d, 0xdd, 0x62, 0x49, 0x2d, 0xda, 0x15, 0xf3, 0x7c, 0xd3, 0x8c, 0x65, 0x4c, 0xd4, 0xfb, 0x58, 0x61, 0xb2, 0x4d, 0xce, 0x51, 0xb5, 0x3a, 0x74, 0x00, 0xbc, 0xa3, 0xe2, 0x30, 0xbb, 0xd4, 0x41, 0xa5, 0xdf, 0x4a, 0xd7, 0x95, 0xd8, 0x3d, 0x6d, 0xc4, 0xd1, 0xa4, 0xfb, 0xf4, 0xd6, 0xd3, 0x6a, 0xe9, 0x69, 0x43, 0xfc, 0xd9, 0x6e, 0x34, 0x46, 0x88, 0x67, 0xad, 0xd0, 0xb8, 0x60, 0xda, 0x73, 0x2d, 0x04, 0x44, 0xe5, 0x1d, 0x03, 0x33, 0x5f, 0x4c, 0x0a, 0xaa, 0xc9, 0x7c, 0x0d, 0xdd, 0x3c, 0x71, 0x05, 0x50, 0xaa, 0x41, 0x02, 0x27, 0x10, 0x10, 0x0b, 0xbe, 0x86, 0x20, 0x0c, 0xc9, 0x25, 0xb5, 0x68, 0x57, 0xb3, 0x85, 0x6f, 0x20, 0x09, 0xd4, 0x66, 0xb9, 0x9f, 0xe4, 0x61, 0xce, 0x0e, 0xf9, 0xde, 0x5e, 0x98, 0xc9, 0xd9, 0x29, 0x22, 0x98, 0xd0, 0xb0, 0xb4, 0xa8, 0xd7, 0xc7, 0x17, 0x3d, 0xb3, 0x59, 0x81, 0x0d, 0xb4, 0x2e, 0x3b, 0x5c, 0xbd, 0xb7, 0xad, 0x6c, 0xba, 0xc0, 0x20, 0x83, 0xb8, 0xed, 0xb6, 0xb3, 0xbf, 0x9a, 0x0c, 0xe2, 0xb6, 0x03, 0x9a, 0xd2, 0xb1, 0x74, 0x39, 0x47, 0xd5, 0xea, 0xaf, 0x77, 0xd2, 0x9d, 0x15, 0x26, 0xdb, 0x04, 0x83, 0x16, 0xdc, 0x73, 0x12, 0x0b, 0x63, 0xe3, 0x84, 0x3b, 0x64, 0x94, 0x3e, 0x6a, 0x6d, 0x0d, 0xa8, 0x5a, 0x6a, 0x7a, 0x0b, 0xcf, 0x0e, 0xe4, 0x9d, 0xff, 0x09, 0x93, 0x27, 0xae, 0x00, 0x0a, 0xb1, 0x9e, 0x07, 0x7d, 0x44, 0x93, 0x0f, 0xf0, 0xd2, 0xa3, 0x08, 0x87, 0x68, 0xf2, 0x01, 0x1e, 0xfe, 0xc2, 0x06, 0x69, 0x5d, 0x57, 0x62, 0xf7, 0xcb, 0x67, 0x65, 0x80, 0x71, 0x36, 0x6c, 0x19, 0xe7, 0x06, 0x6b, 0x6e, 0x76, 0x1b, 0xd4, 0xfe, 0xe0, 0x2b, 0xd3, 0x89, 0x5a, 0x7a, 0xda, 0x10, 0xcc, 0x4a, 0xdd, 0x67, 0x6f, 0xdf, 0xb9, 0xf9, 0xf9, 0xef, 0xbe, 0x8e, 0x43, 0xbe, 0xb7, 0x17, 0xd5, 0x8e, 0xb0, 0x60, 0xe8, 0xa3, 0xd6, 0xd6, 0x7e, 0x93, 0xd1, 0xa1, 0xc4, 0xc2, 0xd8, 0x38, 0x52, 0xf2, 0xdf, 0x4f, 0xf1, 0x67, 0xbb, 0xd1, 0x67, 0x57, 0xbc, 0xa6, 0xdd, 0x06, 0xb5, 0x3f, 0x4b, 0x36, 0xb2, 0x48, 0xda, 0x2b, 0x0d, 0xd8, 0x4c, 0x1b, 0x0a, 0xaf, 0xf6, 0x4a, 0x03, 0x36, 0x60, 0x7a, 0x04, 0x41, 0xc3, 0xef, 0x60, 0xdf, 0x55, 0xdf, 0x67, 0xa8, 0xef, 0x8e, 0x6e, 0x31, 0x79, 0xbe, 0x69, 0x46, 0x8c, 0xb3, 0x61, 0xcb, 0x1a, 0x83, 0x66, 0xbc, 0xa0, 0xd2, 0x6f, 0x25, 0x36, 0xe2, 0x68, 0x52, 0x95, 0x77, 0x0c, 0xcc, 0x03, 0x47, 0x0b, 0xbb, 0xb9, 0x16, 0x02, 0x22, 0x2f, 0x26, 0x05, 0x55, 0xbe, 0x3b, 0xba, 0xc5, 0x28, 0x0b, 0xbd, 0xb2, 0x92, 0x5a, 0xb4, 0x2b, 0x04, 0x6a, 0xb3, 0x5c, 0xa7, 0xff, 0xd7, 0xc2, 0x31, 0xcf, 0xd0, 0xb5, 0x8b, 0x9e, 0xd9, 0x2c, 0x1d, 0xae, 0xde, 0x5b, 0xb0, 0xc2, 0x64, 0x9b, 0x26, 0xf2, 0x63, 0xec, 0x9c, 0xa3, 0x6a, 0x75, 0x0a, 0x93, 0x6d, 0x02, 0xa9, 0x06, 0x09, 0x9c, 0x3f, 0x36, 0x0e, 0xeb, 0x85, 0x67, 0x07, 0x72, 0x13, 0x57, 0x00, 0x05, 0x82, 0x4a, 0xbf, 0x95, 0x14, 0x7a, 0xb8, 0xe2, 0xae, 0x2b, 0xb1, 0x7b, 0x38, 0x1b, 0xb6, 0x0c, 0x9b, 0x8e, 0xd2, 0x92, 0x0d, 0xbe, 0xd5, 0xe5, 0xb7, 0xef, 0xdc, 0x7c, 0x21, 0xdf, 0xdb, 0x0b, 0xd4, 0xd2, 0xd3, 0x86, 0x42, 0xe2, 0xd4, 0xf1, 0xf8, 0xb3, 0xdd, 0x68, 0x6e, 0x83, 0xda, 0x1f, 0xcd, 0x16, 0xbe, 0x81, 0x5b, 0x26, 0xb9, 0xf6, 0xe1, 0x77, 0xb0, 0x6f, 0x77, 0x47, 0xb7, 0x18, 0xe6, 0x5a, 0x08, 0x88, 0x70, 0x6a, 0x0f, 0xff, 0xca, 0x3b, 0x06, 0x66, 0x5c, 0x0b, 0x01, 0x11, 0xff, 0x9e, 0x65, 0x8f, 0x69, 0xae, 0x62, 0xf8, 0xd3, 0xff, 0x6b, 0x61, 0x45, 0xcf, 0x6c, 0x16, 0x78, 0xe2, 0x0a, 0xa0, 0xee, 0xd2, 0x0d, 0xd7, 0x54, 0x83, 0x04, 0x4e, 0xc2, 0xb3, 0x03, 0x39, 0x61, 0x26, 0x67, 0xa7, 0xf7, 0x16, 0x60, 0xd0, 0x4d, 0x47, 0x69, 0x49, 0xdb, 0x77, 0x6e, 0x3e, 0x4a, 0x6a, 0xd1, 0xae, 0xdc, 0x5a, 0xd6, 0xd9, 0x66, 0x0b, 0xdf, 0x40, 0xf0, 0x3b, 0xd8, 0x37, 0x53, 0xae, 0xbc, 0xa9, 0xc5, 0x9e, 0xbb, 0xde, 0x7f, 0xcf, 0xb2, 0x47, 0xe9, 0xff, 0xb5, 0x30, 0x1c, 0xf2, 0xbd, 0xbd, 0x8a, 0xc2, 0xba, 0xca, 0x30, 0x93, 0xb3, 0x53, 0xa6, 0xa3, 0xb4, 0x24, 0x05, 0x36, 0xd0, 0xba, 0x93, 0x06, 0xd7, 0xcd, 0x29, 0x57, 0xde, 0x54, 0xbf, 0x67, 0xd9, 0x23, 0x2e, 0x7a, 0x66, 0xb3, 0xb8, 0x4a, 0x61, 0xc4, 0x02, 0x1b, 0x68, 0x5d, 0x94, 0x2b, 0x6f, 0x2a, 0x37, 0xbe, 0x0b, 0xb4, 0xa1, 0x8e, 0x0c, 0xc3, 0x1b, 0xdf, 0x05, 0x5a, 0x8d, 0xef, 0x02, 0x2d, 0x25, 0x73, 0x3a, 0x25, 0x75, 0x3a, 0x20, 0x25, 0x73, 0x3a, 0x20, 0x41, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x60, 0x25, 0x73, 0x27, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x2e, 0x00, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x00, 0x69, 0x6e, 0x62, 0x75, 0x66, 0x3a, 0x25, 0x78, 0x0a, 0x00, 0x25, 0x30, 0x32, 0x78, 0x20, 0x00, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x20, 0x62, 0x75, 0x66, 0x20, 0x25, 0x70, 0x0a, 0x00, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x20, 0x30, 0x78, 0x25, 0x78, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x63, 0x68, 0x6b, 0x73, 0x75, 0x6d, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x20, 0x30, 0x78, 0x25, 0x78, 0x21, 0x0a, 0x00, 0x64, 0x61, 0x74, 0x61, 0x20, 0x63, 0x68, 0x6b, 0x73, 0x75, 0x6d, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x20, 0x30, 0x78, 0x25, 0x78, 0x21, 0x0a, 0x00, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x68, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x70, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x68, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x70, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x74, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x6c, 0x6f, 0x61, 0x64, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x65, 0x70, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x61, 0x74, 0x74, 0x72, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x6e, 0x78, 0x74, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x25, 0x73, 0x0a, 0x00, 0x74, 0x6c, 0x76, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x20, 0x30, 0x78, 0x25, 0x78, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x74, 0x6c, 0x76, 0x20, 0x72, 0x73, 0x61, 0x20, 0x70, 0x6b, 0x65, 0x79, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x25, 0x64, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x74, 0x6c, 0x76, 0x20, 0x72, 0x73, 0x61, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x25, 0x64, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x74, 0x6c, 0x76, 0x20, 0x65, 0x63, 0x63, 0x20, 0x70, 0x6b, 0x65, 0x79, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x25, 0x64, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x74, 0x6c, 0x76, 0x20, 0x65, 0x63, 0x63, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x25, 0x64, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x20, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x25, 0x64, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x80, 0xba, 0x8c, 0x01, 0x00, 0x5a, 0x62, 0x02, 0x00, 0x36, 0x6e, 0x01, 0x00, 0x48, 0xe8, 0x01, 0x00, 0x00, 0x77, 0x01, 0xb2, 0x50, 0x0b, 0x04, 0xce, 0x50, 0x0b, 0x04, 0xef, 0x50, 0x0b, 0x04, 0x13, 0x51, 0x0b, 0x04, 0x36, 0x51, 0x0b, 0x04, 0x5b, 0x51, 0x0b, 0x04, 0x7e, 0x51, 0x0b, 0x04, 0xa0, 0x51, 0x0b, 0x04, 0xc4, 0x51, 0x0b, 0x04, 0xe8, 0x51, 0x0b, 0x04, 0x0b, 0x52, 0x0b, 0x04, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x61, 0x74, 0x63, 0x68, 0x64, 0x6f, 0x67, 0x20, 0x72, 0x65, 0x73, 0x65, 0x74, 0x20, 0x68, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x20, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x63, 0x70, 0x75, 0x2c, 0x20, 0x57, 0x41, 0x54, 0x43, 0x48, 0x44, 0x4f, 0x47, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x52, 0x45, 0x47, 0x3a, 0x20, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x0a, 0x00, 0x62, 0x6f, 0x6f, 0x74, 0x20, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x3a, 0x20, 0x25, 0x73, 0x0a, 0x00, 0x62, 0x6f, 0x6f, 0x74, 0x20, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x3a, 0x20, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x28, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x29, 0x0a, 0x00, 0x62, 0x6f, 0x6f, 0x74, 0x20, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x3a, 0x20, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x28, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x29, 0x0a, 0x00, 0x72, 0x74, 0x63, 0x5b, 0x25, 0x64, 0x5d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x65, 0x72, 0x61, 0x6c, 0x79, 0x20, 0x6a, 0x75, 0x6d, 0x70, 0x20, 0x66, 0x65, 0x6c, 0x0a, 0x00, 0x63, 0x61, 0x72, 0x73, 0x68, 0x64, 0x75, 0x6d, 0x70, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x2c, 0x20, 0x6a, 0x75, 0x6d, 0x70, 0x20, 0x66, 0x65, 0x6c, 0x0a, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4c, 0x44, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x43, 0x48, 0x49, 0x50, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x54, 0x5f, 0x50, 0x49, 0x4e, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x41, 0x52, 0x4d, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x41, 0x52, 0x4d, 0x5f, 0x50, 0x41, 0x4e, 0x49, 0x43, 0x5f, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x41, 0x52, 0x4d, 0x5f, 0x57, 0x41, 0x54, 0x43, 0x48, 0x44, 0x4f, 0x47, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x54, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x56, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x56, 0x5f, 0x50, 0x41, 0x4e, 0x49, 0x43, 0x5f, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x56, 0x5f, 0x57, 0x41, 0x54, 0x43, 0x48, 0x44, 0x4f, 0x47, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x54, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x44, 0x53, 0x50, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x44, 0x53, 0x50, 0x5f, 0x50, 0x41, 0x4e, 0x49, 0x43, 0x5f, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x44, 0x53, 0x50, 0x5f, 0x57, 0x41, 0x54, 0x43, 0x48, 0x44, 0x4f, 0x47, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x54, 0x00, 0x64, 0x6d, 0x61, 0x20, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x79, 0x65, 0x74, 0x0a, 0x00, 0x64, 0x6d, 0x61, 0x20, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x0a, 0x00, 0x64, 0x6d, 0x61, 0x20, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x73, 0x20, 0x66, 0x72, 0x65, 0x65, 0x2c, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x72, 0x65, 0x65, 0x20, 0x69, 0x74, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x0a, 0x00, 0x64, 0x6d, 0x61, 0x20, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x2c, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x72, 0x65, 0x65, 0x20, 0x69, 0x74, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x43, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x25, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x65, 0x6d, 0x21, 0x0a, 0x00, 0x2d, 0x2d, 0x2d, 0x6a, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x6d, 0x61, 0x78, 0x43, 0x61, 0x6c, 0x3a, 0x25, 0x78, 0x20, 0x6d, 0x69, 0x6e, 0x43, 0x61, 0x6c, 0x3a, 0x25, 0x78, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x43, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x25, 0x73, 0x3a, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x69, 0x6e, 0x64, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x20, 0x64, 0x71, 0x73, 0x0a, 0x00, 0x63, 0x61, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x2c, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x74, 0x65, 0x3a, 0x20, 0x25, 0x64, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x43, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x25, 0x70, 0x00, 0x5b, 0x50, 0x52, 0x43, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x25, 0x73, 0x2c, 0x25, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x63, 0x68, 0x69, 0x70, 0x3a, 0x25, 0x78, 0x0a, 0x00, 0x42, 0x55, 0x47, 0x20, 0x61, 0x74, 0x20, 0x25, 0x73, 0x3a, 0x25, 0x64, 0x21, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x43, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x50, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x77, 0x61, 0x69, 0x74, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x21, 0x20, 0x25, 0x78, 0x20, 0x25, 0x78, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x43, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x66, 0x69, 0x66, 0x6f, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x43, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x25, 0x73, 0x2c, 0x25, 0x64, 0x20, 0x65, 0x72, 0x72, 0x3a, 0x25, 0x64, 0x21, 0x21, 0x0a, 0x00, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x20, 0x61, 0x74, 0x20, 0x25, 0x73, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x50, 0x53, 0x52, 0x41, 0x4d, 0x5f, 0x43, 0x54, 0x52, 0x4c, 0x5f, 0x50, 0x6f, 0x6c, 0x6c, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x00, 0x48, 0x41, 0x4c, 0x5f, 0x50, 0x73, 0x72, 0x61, 0x6d, 0x43, 0x74, 0x72, 0x6c, 0x5f, 0x44, 0x51, 0x53, 0x5f, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x43, 0x61, 0x6c, 0x5f, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x00, 0x48, 0x41, 0x4c, 0x5f, 0x50, 0x73, 0x72, 0x61, 0x6d, 0x43, 0x74, 0x72, 0x6c, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x00, 0x48, 0x41, 0x4c, 0x5f, 0x50, 0x73, 0x72, 0x61, 0x6d, 0x43, 0x74, 0x72, 0x6c, 0x5f, 0x53, 0x65, 0x74, 0x5f, 0x42, 0x75, 0x73, 0x57, 0x69, 0x64, 0x74, 0x68, 0x00, 0x48, 0x41, 0x4c, 0x5f, 0x50, 0x73, 0x72, 0x61, 0x6d, 0x43, 0x74, 0x72, 0x6c, 0x5f, 0x53, 0x65, 0x74, 0x5f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x00, 0x48, 0x41, 0x4c, 0x5f, 0x50, 0x73, 0x72, 0x61, 0x6d, 0x43, 0x74, 0x72, 0x6c, 0x5f, 0x49, 0x6e, 0x69, 0x74, 0x00, 0x48, 0x41, 0x4c, 0x5f, 0x50, 0x73, 0x72, 0x61, 0x6d, 0x43, 0x74, 0x72, 0x6c, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x47, 0x65, 0x74, 0x20, 0x41, 0x50, 0x53, 0x33, 0x32, 0x20, 0x33, 0x32, 0x4d, 0x62, 0x20, 0x77, 0x72, 0x6f, 0x6e, 0x67, 0x20, 0x64, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, 0x3a, 0x4d, 0x52, 0x31, 0x28, 0x30, 0x78, 0x25, 0x78, 0x29, 0x2c, 0x4d, 0x52, 0x32, 0x28, 0x30, 0x78, 0x25, 0x78, 0x29, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x47, 0x65, 0x74, 0x20, 0x41, 0x50, 0x53, 0x33, 0x32, 0x20, 0x77, 0x72, 0x6f, 0x6e, 0x67, 0x20, 0x49, 0x44, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x41, 0x50, 0x53, 0x33, 0x32, 0x20, 0x42, 0x41, 0x44, 0x20, 0x64, 0x69, 0x65, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x41, 0x50, 0x53, 0x33, 0x32, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x47, 0x65, 0x74, 0x20, 0x41, 0x50, 0x53, 0x36, 0x34, 0x20, 0x36, 0x34, 0x4d, 0x62, 0x20, 0x77, 0x72, 0x6f, 0x6e, 0x67, 0x20, 0x64, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x47, 0x65, 0x74, 0x20, 0x41, 0x50, 0x53, 0x36, 0x34, 0x20, 0x77, 0x72, 0x6f, 0x6e, 0x67, 0x20, 0x49, 0x44, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x41, 0x50, 0x53, 0x36, 0x34, 0x20, 0x42, 0x41, 0x44, 0x20, 0x64, 0x69, 0x65, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x41, 0x50, 0x53, 0x36, 0x34, 0x00, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x62, 0x75, 0x73, 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6d, 0x64, 0x00, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x3a, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x0a, 0x00, 0x6c, 0x73, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x61, 0x70, 0x73, 0x33, 0x32, 0x0a, 0x00, 0x6c, 0x73, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x61, 0x70, 0x73, 0x36, 0x34, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2c, 0x20, 0x70, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x31, 0x20, 0x6f, 0x72, 0x20, 0x32, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x64, 0x21, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x0a, 0x00, 0x6c, 0x73, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x64, 0x71, 0x73, 0x3a, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x0a, 0x00, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x63, 0x68, 0x69, 0x70, 0x20, 0x25, 0x73, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x6f, 0x6b, 0x21, 0x2c, 0x20, 0x66, 0x72, 0x65, 0x71, 0x20, 0x25, 0x64, 0x0a, 0x00, 0x49, 0x6e, 0x69, 0x74, 0x20, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x6f, 0x6b, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x63, 0x68, 0x69, 0x70, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x64, 0x21, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x25, 0x73, 0x2c, 0x25, 0x64, 0x20, 0x75, 0x6e, 0x6b, 0x6f, 0x6e, 0x77, 0x20, 0x63, 0x6d, 0x64, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x46, 0x41, 0x49, 0x4c, 0x2e, 0x0a, 0x00, 0x25, 0x78, 0x20, 0x21, 0x3d, 0x20, 0x25, 0x78, 0x20, 0x61, 0x74, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x25, 0x78, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x4f, 0x4b, 0x2e, 0x0a, 0x00, 0x56, 0x32, 0x2e, 0x30, 0x30, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x42, 0x4f, 0x4f, 0x54, 0x20, 0x44, 0x52, 0x49, 0x56, 0x45, 0x20, 0x49, 0x4e, 0x46, 0x4f, 0x3a, 0x20, 0x25, 0x73, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x43, 0x4c, 0x4b, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x4d, 0x48, 0x5a, 0x0a, 0x00, 0x64, 0x72, 0x61, 0x6d, 0x5f, 0x74, 0x70, 0x72, 0x31, 0x31, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x20, 0x2c, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x5f, 0x74, 0x70, 0x72, 0x31, 0x32, 0x20, 0x3d, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x64, 0x72, 0x61, 0x6d, 0x5f, 0x74, 0x70, 0x72, 0x39, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x53, 0x49, 0x5a, 0x45, 0x20, 0x3d, 0x25, 0x64, 0x20, 0x4d, 0x42, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x44, 0x51, 0x53, 0x20, 0x67, 0x61, 0x74, 0x65, 0x20, 0x69, 0x73, 0x20, 0x4e, 0x4c, 0x2e, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x44, 0x51, 0x53, 0x20, 0x67, 0x61, 0x74, 0x65, 0x20, 0x69, 0x73, 0x20, 0x50, 0x55, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x44, 0x51, 0x53, 0x20, 0x67, 0x61, 0x74, 0x65, 0x20, 0x69, 0x73, 0x20, 0x50, 0x44, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x00, 0x66, 0x65, 0x73, 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x3a, 0x25, 0x73, 0x0a, 0x00, 0x66, 0x61, 0x6b, 0x65, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x6f, 0x6b, 0x0a, 0x00, 0x68, 0x65, 0x61, 0x70, 0x3a, 0x20, 0x30, 0x78, 0x25, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x6c, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x0a, 0x00, 0x73, 0x6b, 0x69, 0x70, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x6c, 0x73, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x0a, 0x00, 0x68, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x0a, 0x00, 0x68, 0x73, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x21, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x20, 0x25, 0x64, 0x0a, 0x00, 0x73, 0x6b, 0x69, 0x70, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x68, 0x73, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x0a, 0x00, 0x66, 0x65, 0x73, 0x31, 0x20, 0x64, 0x6f, 0x6e, 0x65, 0x0a, 0x00, 0x00, 0x00, 0x10, 0xe9, 0xff, 0x7f, 0x01, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x68, 0x9f, 0x98, 0x33, 0x92, 0x1b, 0x97, 0x59, 0xe8, 0x74, 0xb0, 0x1c, 0x59, 0x95, 0x1a, 0x20, 0x2a, 0x90, 0xdf, 0x4f, 0x40, 0x15, 0x72, 0x17 }; static const uint8_t r128_s3_payload[] = { 0x00, 0xf0, 0xe2, 0xb9, 0x65, 0x47, 0x4f, 0x4e, 0x2e, 0x42, 0x54, 0x30, 0xb4, 0x86, 0x3a, 0xa4, 0xa0, 0x59, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x33, 0x30, 0x30, 0x30, 0x40, 0x03, 0x0b, 0x04, 0x00, 0x00, 0x0b, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x2e, 0x30, 0x2e, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x03, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0xa0, 0xfd, 0xbd, 0x3d, 0x01, 0x00, 0x00, 0x00, 0xf2, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x70, 0x1c, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x95, 0x21, 0x4a, 0x00, 0x90, 0x31, 0x42, 0x02, 0x61, 0xb0, 0x08, 0x00, 0x96, 0x78, 0x78, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x48, 0x48, 0x48, 0x48, 0x48, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x05, 0x34, 0x01, 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, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0x05, 0x01, 0xff, 0xff, 0x00, 0x00, 0x01, 0x11, 0x05, 0x01, 0xff, 0xff, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x02, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x03, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x04, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x05, 0x02, 0x01, 0x02, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x37, 0x64, 0x65, 0x30, 0x34, 0x62, 0x37, 0x63, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0xf8, 0x04, 0xed, 0x00, 0xf0, 0x0a, 0xf8, 0x03, 0xf0, 0x7e, 0xfe, 0x5d, 0xf8, 0x04, 0xeb, 0xf7, 0x46, 0xfe, 0xe7, 0xfe, 0xe7, 0x00, 0x00, 0xff, 0xf7, 0xf2, 0xbf, 0x06, 0x48, 0x07, 0x49, 0x4f, 0xf0, 0x00, 0x02, 0x88, 0x42, 0x00, 0xd1, 0xf7, 0x46, 0x02, 0x60, 0x00, 0xf1, 0x04, 0x00, 0x88, 0x42, 0xfa, 0xd1, 0xf7, 0x46, 0x00, 0x00, 0x88, 0x59, 0x0b, 0x04, 0xa8, 0x5a, 0x0b, 0x04, 0xf8, 0xb5, 0x6f, 0xf0, 0x7f, 0x46, 0x0f, 0x4b, 0x0f, 0x49, 0x9a, 0x68, 0x0b, 0x68, 0xb2, 0x1a, 0x9a, 0x42, 0x0e, 0x48, 0xa2, 0xeb, 0x03, 0x03, 0x38, 0xbf, 0x9b, 0x19, 0xd0, 0xe9, 0x00, 0x45, 0xe6, 0x18, 0x4f, 0xf4, 0x7a, 0x73, 0x45, 0xf1, 0x00, 0x07, 0xc0, 0xe9, 0x00, 0x67, 0x0a, 0x60, 0xa6, 0xfb, 0x03, 0x01, 0x03, 0xfb, 0x07, 0x11, 0x05, 0x4b, 0x1a, 0x68, 0x00, 0x23, 0x03, 0xf0, 0xc1, 0xfe, 0xf8, 0xbd, 0x10, 0xe0, 0x00, 0xe0, 0x88, 0x59, 0x0b, 0x04, 0xd8, 0x59, 0x0b, 0x04, 0xd0, 0x59, 0x0b, 0x04, 0xf8, 0xb5, 0x6f, 0xf0, 0x7f, 0x46, 0x0f, 0x4b, 0x0f, 0x49, 0x9a, 0x68, 0x0b, 0x68, 0xb2, 0x1a, 0x9a, 0x42, 0x0e, 0x48, 0xa2, 0xeb, 0x03, 0x03, 0x38, 0xbf, 0x9b, 0x19, 0xd0, 0xe9, 0x00, 0x45, 0xe6, 0x18, 0x0b, 0x4b, 0x45, 0xf1, 0x00, 0x07, 0xc0, 0xe9, 0x00, 0x67, 0x0a, 0x60, 0xa6, 0xfb, 0x03, 0x01, 0x03, 0xfb, 0x07, 0x11, 0x07, 0x4b, 0x1a, 0x68, 0x00, 0x23, 0x03, 0xf0, 0x98, 0xfe, 0xf8, 0xbd, 0x00, 0xbf, 0x10, 0xe0, 0x00, 0xe0, 0x88, 0x59, 0x0b, 0x04, 0xd8, 0x59, 0x0b, 0x04, 0x40, 0x42, 0x0f, 0x00, 0xd0, 0x59, 0x0b, 0x04, 0x6f, 0xf0, 0x7f, 0x42, 0x23, 0x4b, 0x2d, 0xe9, 0xf3, 0x47, 0x23, 0x49, 0x9e, 0x68, 0x0b, 0x68, 0x96, 0x1b, 0x9e, 0x42, 0x21, 0x4f, 0xa6, 0xeb, 0x03, 0x03, 0x38, 0xbf, 0x9b, 0x18, 0xd7, 0xe9, 0x00, 0x45, 0x8a, 0x46, 0xe1, 0x18, 0x1e, 0x4b, 0x45, 0xf1, 0x00, 0x02, 0xcd, 0xe9, 0x00, 0x12, 0x19, 0x68, 0x1c, 0x4a, 0x00, 0x23, 0xa0, 0xfb, 0x01, 0x01, 0x03, 0xf0, 0x6d, 0xfe, 0x6f, 0xf0, 0x7f, 0x4c, 0x00, 0x9b, 0x01, 0x9a, 0xc3, 0x18, 0x41, 0xeb, 0x02, 0x02, 0x16, 0x48, 0x13, 0xf1, 0x01, 0x08, 0x10, 0x49, 0x42, 0xf1, 0x00, 0x09, 0x8b, 0x68, 0xac, 0xeb, 0x03, 0x02, 0x96, 0x42, 0x86, 0xbf, 0xc3, 0x1a, 0x9e, 0x1b, 0x96, 0x1b, 0xdd, 0xe9, 0x00, 0x34, 0x9b, 0x19, 0x44, 0xf1, 0x00, 0x04, 0xcd, 0xe9, 0x00, 0x34, 0xdd, 0xe9, 0x00, 0x34, 0x4c, 0x45, 0x08, 0xbf, 0x43, 0x45, 0x16, 0x46, 0xe9, 0xd3, 0xca, 0xf8, 0x00, 0x20, 0xc7, 0xe9, 0x00, 0x34, 0x02, 0xb0, 0xbd, 0xe8, 0xf0, 0x87, 0x00, 0xbf, 0x10, 0xe0, 0x00, 0xe0, 0x88, 0x59, 0x0b, 0x04, 0xd8, 0x59, 0x0b, 0x04, 0xd0, 0x59, 0x0b, 0x04, 0x40, 0x42, 0x0f, 0x00, 0xfe, 0xff, 0xff, 0x01, 0x38, 0xb5, 0x05, 0x46, 0x00, 0x24, 0xac, 0x42, 0x00, 0xd1, 0x38, 0xbd, 0x4f, 0xf4, 0x7a, 0x70, 0xff, 0xf7, 0xa0, 0xff, 0x01, 0x34, 0xf6, 0xe7, 0x08, 0xb5, 0xff, 0xf7, 0x9b, 0xff, 0x08, 0xbd, 0x08, 0xb5, 0xff, 0xf7, 0xed, 0xff, 0x08, 0xbd, 0x00, 0x20, 0x70, 0x47, 0x01, 0x38, 0xfd, 0xd1, 0x70, 0x47, 0x70, 0x47, 0x1e, 0x49, 0x00, 0x23, 0x08, 0x46, 0x10, 0xb5, 0x1d, 0x4a, 0x51, 0xf8, 0x23, 0x40, 0x01, 0x33, 0x10, 0x2b, 0x42, 0xf8, 0x04, 0x4b, 0xf8, 0xd1, 0x00, 0x23, 0x4f, 0xf0, 0xff, 0x31, 0x03, 0xf1, 0x20, 0x02, 0x01, 0x33, 0x10, 0x2b, 0x40, 0xf8, 0x22, 0x10, 0xf8, 0xd1, 0x15, 0x4b, 0x16, 0x49, 0xda, 0x68, 0xc2, 0xf3, 0x02, 0x22, 0x0a, 0x60, 0x99, 0x68, 0x14, 0x4a, 0x11, 0x60, 0xda, 0x68, 0x22, 0xf4, 0xe0, 0x62, 0x12, 0x04, 0x12, 0x0c, 0x42, 0xf0, 0xbf, 0x62, 0x42, 0xf4, 0x01, 0x32, 0xda, 0x60, 0x0f, 0x4a, 0x9a, 0x60, 0xbf, 0xf3, 0x4f, 0x8f, 0x5a, 0x6a, 0x42, 0xf4, 0xe0, 0x22, 0x5a, 0x62, 0x5a, 0x69, 0x42, 0xf0, 0x10, 0x02, 0x5a, 0x61, 0x00, 0x23, 0x83, 0xf3, 0x10, 0x88, 0x83, 0xf3, 0x13, 0x88, 0x83, 0xf3, 0x11, 0x88, 0x10, 0xbd, 0x00, 0xbf, 0x00, 0xe1, 0x00, 0xe0, 0x8c, 0x59, 0x0b, 0x04, 0x00, 0xed, 0x00, 0xe0, 0xcc, 0x59, 0x0b, 0x04, 0xd4, 0x59, 0x0b, 0x04, 0x00, 0x48, 0x0b, 0x04, 0x70, 0x47, 0x00, 0x00, 0x6f, 0xf0, 0x7f, 0x42, 0x05, 0x4b, 0x5a, 0x60, 0x00, 0x22, 0x9a, 0x60, 0x01, 0x22, 0x1a, 0x60, 0x03, 0x4b, 0x1a, 0x68, 0x03, 0x4b, 0x1a, 0x60, 0x70, 0x47, 0x00, 0xbf, 0x10, 0xe0, 0x00, 0xe0, 0xd8, 0x59, 0x0b, 0x04, 0x88, 0x59, 0x0b, 0x04, 0x00, 0x20, 0x00, 0x21, 0x15, 0x4b, 0x10, 0xb5, 0xc3, 0xe9, 0x00, 0x01, 0xff, 0xf7, 0x98, 0xff, 0x00, 0xf0, 0xfa, 0xf8, 0x12, 0x4b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x03, 0xf0, 0x07, 0x03, 0x04, 0x2b, 0x98, 0xbf, 0x0f, 0x4a, 0x10, 0x48, 0x9b, 0xbf, 0x52, 0xf8, 0x23, 0x10, 0x0f, 0x4a, 0x10, 0x22, 0xd2, 0x5c, 0x88, 0xbf, 0x0e, 0x49, 0x04, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x0d, 0x4b, 0x01, 0x3a, 0x23, 0x40, 0x13, 0x43, 0x43, 0xf0, 0x00, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x03, 0x60, 0x09, 0x4b, 0xbd, 0xe8, 0x10, 0x40, 0x19, 0x60, 0xff, 0xf7, 0xbe, 0xbf, 0xd8, 0x59, 0x0b, 0x04, 0x84, 0xc4, 0x04, 0x40, 0x40, 0x48, 0x0b, 0x04, 0x40, 0xc0, 0x03, 0x40, 0x54, 0x48, 0x0b, 0x04, 0x00, 0x09, 0x3d, 0x00, 0xf0, 0xff, 0xfc, 0xfc, 0xd0, 0x59, 0x0b, 0x04, 0x02, 0x4a, 0x13, 0x68, 0x23, 0xf0, 0x03, 0x03, 0x13, 0x60, 0x70, 0x47, 0x10, 0xe0, 0x00, 0xe0, 0x0f, 0x4a, 0x10, 0x4b, 0xd1, 0x68, 0x1b, 0x68, 0x21, 0xf4, 0xe0, 0x61, 0x1b, 0x02, 0x09, 0x04, 0x09, 0x0c, 0x03, 0xf4, 0xe0, 0x63, 0x0b, 0x43, 0x43, 0xf0, 0xbf, 0x63, 0x43, 0xf4, 0x00, 0x33, 0xd3, 0x60, 0x09, 0x4b, 0x09, 0x49, 0x1b, 0x68, 0x93, 0x60, 0x00, 0x23, 0x08, 0x4a, 0x52, 0xf8, 0x04, 0x0b, 0x41, 0xf8, 0x23, 0x00, 0x01, 0x33, 0x10, 0x2b, 0xf8, 0xd1, 0x70, 0x47, 0x00, 0xbf, 0x00, 0xed, 0x00, 0xe0, 0xcc, 0x59, 0x0b, 0x04, 0xd4, 0x59, 0x0b, 0x04, 0x00, 0xe1, 0x00, 0xe0, 0x8c, 0x59, 0x0b, 0x04, 0x70, 0x47, 0x70, 0x47, 0x00, 0x47, 0x70, 0x47, 0x70, 0x47, 0x70, 0x47, 0x70, 0x47, 0x00, 0x00, 0x08, 0xb5, 0x00, 0xf0, 0x9b, 0xf8, 0x02, 0x48, 0x00, 0xf0, 0x4a, 0xfb, 0x00, 0x20, 0x08, 0xbd, 0x59, 0x48, 0x0b, 0x04, 0x00, 0x20, 0x70, 0x47, 0x00, 0x20, 0x70, 0x47, 0x70, 0x47, 0x70, 0x47, 0x08, 0xb5, 0x12, 0x48, 0x00, 0xf0, 0x3c, 0xfb, 0xbf, 0xf3, 0x5f, 0x8f, 0x10, 0x4b, 0x11, 0x4a, 0x1a, 0x60, 0x11, 0x4a, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf0, 0x01, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0x04, 0x3a, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf0, 0x01, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x08, 0x4b, 0xa2, 0xf5, 0xde, 0x32, 0x13, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x53, 0x60, 0xfe, 0xe7, 0x00, 0xbf, 0x68, 0x48, 0x0b, 0x04, 0xc0, 0x01, 0x05, 0x40, 0x04, 0x00, 0x9b, 0x42, 0x18, 0xc0, 0x03, 0x40, 0x01, 0x00, 0xaa, 0x16, 0x22, 0x4a, 0x38, 0xb5, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf0, 0x40, 0x73, 0xbf, 0xf3, 0x5f, 0x8f, 0x1f, 0x4c, 0x13, 0x60, 0x23, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf0, 0x00, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0x60, 0x22, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x19, 0x4d, 0x2a, 0x40, 0x42, 0xf4, 0x9e, 0x42, 0xbf, 0xf3, 0x5f, 0x8f, 0x0a, 0x20, 0x22, 0x60, 0xff, 0xf7, 0x58, 0xfe, 0x22, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x42, 0xf0, 0x20, 0x42, 0xbf, 0xf3, 0x5f, 0x8f, 0x22, 0x60, 0x22, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x22, 0xf0, 0x00, 0x52, 0xbf, 0xf3, 0x5f, 0x8f, 0x22, 0x60, 0x23, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x2b, 0x40, 0x43, 0xf4, 0x44, 0x53, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0x60, 0x23, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf0, 0x00, 0x53, 0xbf, 0xf3, 0x5f, 0x8f, 0x0a, 0x20, 0x23, 0x60, 0xbd, 0xe8, 0x38, 0x40, 0xff, 0xf7, 0x32, 0xbe, 0x10, 0xc5, 0x03, 0x40, 0x20, 0xc0, 0x03, 0x40, 0xfc, 0x00, 0xff, 0xff, 0x06, 0x4b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0xf4, 0x7f, 0x0f, 0x04, 0xd1, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x22, 0x02, 0x4b, 0x1a, 0x60, 0x70, 0x47, 0x00, 0xbf, 0x80, 0x00, 0x05, 0x40, 0x84, 0xc4, 0x04, 0x40, 0x01, 0x48, 0x00, 0xf0, 0xaf, 0xba, 0x00, 0xbf, 0x79, 0x48, 0x0b, 0x04, 0x0c, 0x4a, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf0, 0x40, 0x73, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0x10, 0x32, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf0, 0x40, 0x73, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x40, 0xf2, 0x01, 0x32, 0x02, 0x4b, 0x1a, 0x60, 0x70, 0x47, 0x00, 0xbf, 0x10, 0xc5, 0x03, 0x40, 0x00, 0xc5, 0x03, 0x40, 0x38, 0xb5, 0x0d, 0x4d, 0x2c, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x24, 0xf4, 0x80, 0x34, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x20, 0x2c, 0x60, 0xff, 0xf7, 0xe9, 0xfd, 0x44, 0xf4, 0x80, 0x34, 0xbf, 0xf3, 0x5f, 0x8f, 0x2c, 0x60, 0x2b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf0, 0x01, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x20, 0x2b, 0x60, 0x38, 0xbd, 0xec, 0xc9, 0x03, 0x40, 0x05, 0x4a, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf0, 0x01, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x20, 0x13, 0x60, 0x70, 0x47, 0x00, 0xbf, 0xec, 0xc9, 0x03, 0x40, 0x11, 0x4a, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf4, 0x80, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0x43, 0xf4, 0x80, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0x08, 0x3a, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf4, 0x80, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0x43, 0xf4, 0x80, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x01, 0x42, 0x02, 0x4b, 0x1a, 0x60, 0x70, 0x47, 0x00, 0xbf, 0x0c, 0xc0, 0x03, 0x40, 0x54, 0xc0, 0x03, 0x40, 0x0e, 0x49, 0x0b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x82, 0x1d, 0x01, 0x20, 0x90, 0x40, 0xc2, 0x43, 0x13, 0x40, 0xbf, 0xf3, 0x5f, 0x8f, 0x0b, 0x60, 0x03, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x0b, 0x60, 0x08, 0x39, 0x0b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x40, 0xbf, 0xf3, 0x5f, 0x8f, 0x0b, 0x60, 0x18, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x08, 0x60, 0x70, 0x47, 0x00, 0xbf, 0x0c, 0xc0, 0x03, 0x40, 0x42, 0x1e, 0x11, 0xf8, 0x01, 0x3b, 0x02, 0xf8, 0x01, 0x3f, 0x00, 0x2b, 0xf9, 0xd1, 0x70, 0x47, 0x10, 0xb5, 0x0a, 0x44, 0x44, 0x1e, 0x91, 0x42, 0x05, 0xd0, 0x11, 0xf8, 0x01, 0x3b, 0x04, 0xf8, 0x01, 0x3f, 0x00, 0x2b, 0xf7, 0xd1, 0x10, 0xbd, 0x03, 0x46, 0x10, 0xb5, 0x1a, 0x46, 0x12, 0xf8, 0x01, 0x4b, 0x3c, 0xb9, 0x01, 0x3b, 0x11, 0xf8, 0x01, 0x2b, 0x03, 0xf8, 0x01, 0x2f, 0x00, 0x2a, 0xf9, 0xd1, 0x10, 0xbd, 0x13, 0x46, 0xf1, 0xe7, 0x30, 0xb5, 0x7a, 0xb1, 0x03, 0x46, 0x1c, 0x46, 0x14, 0xf8, 0x01, 0x5b, 0x5d, 0xb9, 0x01, 0x39, 0x1a, 0x44, 0x11, 0xf8, 0x01, 0x4f, 0x03, 0xf8, 0x01, 0x4b, 0x1c, 0xb1, 0x93, 0x42, 0xf8, 0xd1, 0x00, 0x22, 0x1a, 0x70, 0x30, 0xbd, 0x23, 0x46, 0xed, 0xe7, 0x42, 0x1e, 0x12, 0xf8, 0x01, 0x3f, 0x11, 0xf8, 0x01, 0x0b, 0x18, 0x1a, 0x40, 0xb2, 0x08, 0xb9, 0x00, 0x2b, 0xf6, 0xd1, 0x70, 0x47, 0x10, 0xb5, 0x43, 0x1e, 0x0a, 0x44, 0x91, 0x42, 0x01, 0xd1, 0x00, 0x20, 0x08, 0xe0, 0x13, 0xf8, 0x01, 0x4f, 0x11, 0xf8, 0x01, 0x0b, 0x20, 0x1a, 0x40, 0xb2, 0x08, 0xb9, 0x00, 0x2c, 0xf2, 0xd1, 0x10, 0xbd, 0xc9, 0xb2, 0x02, 0x78, 0x03, 0x46, 0x8a, 0x42, 0x00, 0xf1, 0x01, 0x00, 0x01, 0xd1, 0x18, 0x46, 0x70, 0x47, 0x00, 0x2a, 0xf5, 0xd1, 0x13, 0x46, 0xf9, 0xe7, 0x03, 0x46, 0x1a, 0x46, 0x11, 0x78, 0x01, 0x33, 0x00, 0x29, 0xfa, 0xd1, 0x10, 0x1a, 0x70, 0x47, 0x38, 0xb5, 0x05, 0x46, 0x0c, 0x46, 0xff, 0xf7, 0xf3, 0xff, 0xe4, 0xb2, 0x2b, 0x18, 0x18, 0x46, 0x13, 0xf8, 0x01, 0x29, 0xa2, 0x42, 0x02, 0xd0, 0x9d, 0x42, 0xf8, 0xd9, 0x00, 0x20, 0x38, 0xbd, 0x02, 0x46, 0x10, 0xb5, 0x01, 0x44, 0x8a, 0x42, 0x13, 0x46, 0x03, 0xd0, 0x1c, 0x78, 0x01, 0x32, 0x00, 0x2c, 0xf8, 0xd1, 0x18, 0x1a, 0x10, 0xbd, 0x00, 0x23, 0x30, 0xb5, 0xc4, 0x5c, 0x3c, 0xb1, 0x4a, 0x1e, 0x01, 0xe0, 0xa5, 0x42, 0x05, 0xd0, 0x12, 0xf8, 0x01, 0x5f, 0x00, 0x2d, 0xf9, 0xd1, 0x18, 0x46, 0x30, 0xbd, 0x01, 0x33, 0xf1, 0xe7, 0x30, 0xb5, 0x00, 0x24, 0xa2, 0x42, 0x01, 0xd1, 0x00, 0x23, 0x06, 0xe0, 0x03, 0x5d, 0x0d, 0x5d, 0x01, 0x34, 0x5b, 0x1b, 0x5b, 0xb2, 0x00, 0x2b, 0xf4, 0xd0, 0x18, 0x46, 0x30, 0xbd, 0x03, 0x46, 0x10, 0xb5, 0x02, 0x44, 0x93, 0x42, 0x18, 0x46, 0x03, 0xd0, 0x04, 0x78, 0x01, 0x33, 0x8c, 0x42, 0xf8, 0xd1, 0x10, 0xbd, 0x2d, 0xe9, 0xf0, 0x41, 0x04, 0x46, 0x08, 0x46, 0x0f, 0x46, 0xff, 0xf7, 0xab, 0xff, 0x06, 0x46, 0x98, 0xb1, 0x20, 0x46, 0xff, 0xf7, 0xa6, 0xff, 0x05, 0x46, 0x04, 0xeb, 0x00, 0x08, 0xb5, 0x42, 0xa8, 0xeb, 0x05, 0x04, 0x01, 0xda, 0x00, 0x24, 0x07, 0xe0, 0x32, 0x46, 0x39, 0x46, 0x20, 0x46, 0x01, 0x3d, 0xff, 0xf7, 0xcb, 0xff, 0x00, 0x28, 0xf1, 0xd1, 0x20, 0x46, 0xbd, 0xe8, 0xf0, 0x81, 0x10, 0xb5, 0x02, 0x44, 0xc9, 0xb2, 0x90, 0x42, 0x01, 0xd1, 0x00, 0x20, 0x10, 0xbd, 0x03, 0x46, 0x13, 0xf8, 0x01, 0x4b, 0x8c, 0x42, 0xf9, 0xd0, 0x18, 0x46, 0xf4, 0xe7, 0x83, 0x68, 0x5a, 0x1c, 0x82, 0x60, 0x19, 0x70, 0x70, 0x47, 0x08, 0x46, 0x00, 0xf0, 0x42, 0xbc, 0x30, 0xb5, 0x00, 0x25, 0x0b, 0x68, 0xec, 0xb2, 0x93, 0x42, 0x05, 0xf1, 0x01, 0x05, 0x0e, 0xd2, 0x03, 0x79, 0x23, 0x43, 0x0a, 0xd0, 0x0a, 0x2c, 0x34, 0xbf, 0x30, 0x23, 0x57, 0x23, 0x02, 0x68, 0x23, 0x44, 0x51, 0x1c, 0x01, 0x60, 0x13, 0x70, 0x01, 0x23, 0x03, 0x71, 0x30, 0xbd, 0x9b, 0x1a, 0x0b, 0x60, 0xe7, 0xe7, 0x2d, 0xe9, 0xf0, 0x4f, 0x04, 0x46, 0x0d, 0x46, 0x90, 0x46, 0x85, 0xb0, 0x01, 0xae, 0xa9, 0x46, 0x19, 0xf8, 0x01, 0x7b, 0x1f, 0xb9, 0x00, 0x20, 0x05, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x25, 0x2f, 0x0b, 0xd0, 0x0a, 0x2f, 0x03, 0xd1, 0xe3, 0x68, 0x0d, 0x21, 0x20, 0x46, 0x98, 0x47, 0xe3, 0x68, 0x39, 0x46, 0x20, 0x46, 0x98, 0x47, 0x4d, 0x46, 0xe9, 0xe7, 0x6b, 0x78, 0x00, 0x27, 0x2d, 0x2b, 0x0a, 0xbf, 0xab, 0x78, 0x02, 0x35, 0x03, 0x35, 0x30, 0x2b, 0x04, 0xbf, 0x15, 0xf8, 0x01, 0x3b, 0x4f, 0xf0, 0x01, 0x0a, 0xa3, 0xf1, 0x30, 0x02, 0x18, 0xbf, 0x4f, 0xf0, 0x00, 0x0a, 0x09, 0x2a, 0x09, 0xd8, 0x0a, 0x21, 0x01, 0xfb, 0x07, 0x37, 0x15, 0xf8, 0x01, 0x3b, 0x30, 0x3f, 0xa3, 0xf1, 0x30, 0x02, 0x09, 0x2a, 0xf6, 0xd9, 0x00, 0x21, 0x6c, 0x2b, 0x08, 0xbf, 0x15, 0xf8, 0x01, 0x3b, 0x26, 0x60, 0x64, 0x2b, 0x21, 0x71, 0x2d, 0xd0, 0x07, 0xd8, 0x25, 0x2b, 0x68, 0xd0, 0x63, 0x2b, 0x64, 0xd0, 0x00, 0x2b, 0xbf, 0xd0, 0xb1, 0x46, 0x6a, 0xe0, 0x73, 0x2b, 0x66, 0xd0, 0x0c, 0xd8, 0x70, 0x2b, 0xf8, 0xd1, 0x08, 0xf1, 0x04, 0x08, 0x2b, 0x46, 0x46, 0x49, 0x13, 0xf8, 0x01, 0x2b, 0x8a, 0x5c, 0x52, 0x07, 0xef, 0xd0, 0x1d, 0x46, 0xf6, 0xe7, 0x75, 0x2b, 0x12, 0xd0, 0x78, 0x2b, 0xe9, 0xd1, 0xd8, 0xf8, 0x00, 0x30, 0x08, 0xf1, 0x04, 0x09, 0x00, 0x93, 0x00, 0x9b, 0xb3, 0xbb, 0x0d, 0xf1, 0x05, 0x03, 0x23, 0x60, 0x30, 0x23, 0x8d, 0xf8, 0x04, 0x30, 0x01, 0x23, 0x23, 0x71, 0xc8, 0x46, 0xd8, 0xe7, 0xd8, 0xf8, 0x00, 0x20, 0x64, 0x2b, 0x08, 0xf1, 0x04, 0x0b, 0x00, 0x92, 0x11, 0xd0, 0x00, 0x9b, 0xd3, 0xb1, 0x4f, 0xf0, 0x0a, 0x08, 0xdf, 0xf8, 0xcc, 0x90, 0x4a, 0x46, 0x69, 0x46, 0x20, 0x46, 0xff, 0xf7, 0x62, 0xff, 0x0a, 0x23, 0xb8, 0xf1, 0x01, 0x08, 0xb9, 0xfb, 0xf3, 0xf9, 0xf4, 0xd1, 0x11, 0xe0, 0x00, 0x2a, 0xeb, 0xda, 0x0d, 0xf1, 0x05, 0x03, 0x23, 0x60, 0x2d, 0x23, 0x52, 0x42, 0x00, 0x92, 0x8d, 0xf8, 0x04, 0x30, 0xe4, 0xe7, 0x23, 0x68, 0x5a, 0x1c, 0x22, 0x60, 0x30, 0x22, 0x1a, 0x70, 0x01, 0x23, 0x23, 0x71, 0xd8, 0x46, 0xab, 0xe7, 0x4f, 0xf0, 0x08, 0x08, 0x4f, 0xf0, 0x80, 0x5b, 0x5a, 0x46, 0x69, 0x46, 0x20, 0x46, 0xff, 0xf7, 0x3e, 0xff, 0xb8, 0xf1, 0x01, 0x08, 0x4f, 0xea, 0x1b, 0x1b, 0xf5, 0xd1, 0xc1, 0xe7, 0x58, 0xf8, 0x04, 0x3b, 0x0d, 0xf1, 0x05, 0x02, 0x22, 0x60, 0x8d, 0xf8, 0x04, 0x30, 0x94, 0xe7, 0x58, 0xf8, 0x04, 0x9b, 0x00, 0x22, 0x23, 0x68, 0x1a, 0x70, 0xc4, 0xf8, 0x00, 0x90, 0x23, 0x68, 0x5a, 0x1c, 0x22, 0x60, 0x1b, 0x78, 0x03, 0xb1, 0xb7, 0xb9, 0xba, 0xf1, 0x00, 0x0f, 0x14, 0xbf, 0x4f, 0xf0, 0x30, 0x0a, 0x4f, 0xf0, 0x20, 0x0a, 0x17, 0xf1, 0xff, 0x37, 0x0e, 0xd2, 0xb9, 0xf1, 0x00, 0x0f, 0x3f, 0xf4, 0x36, 0xaf, 0x19, 0xf8, 0x01, 0x1b, 0x00, 0x29, 0x3f, 0xf4, 0x31, 0xaf, 0xe3, 0x68, 0x20, 0x46, 0x98, 0x47, 0xf6, 0xe7, 0x01, 0x3f, 0xe0, 0xe7, 0xe3, 0x68, 0x51, 0x46, 0x20, 0x46, 0x98, 0x47, 0xe8, 0xe7, 0x00, 0xbf, 0x86, 0x48, 0x0b, 0x04, 0x00, 0xca, 0x9a, 0x3b, 0x1f, 0xb5, 0x05, 0x4b, 0x0a, 0x46, 0x01, 0x46, 0x68, 0x46, 0x03, 0x93, 0xff, 0xf7, 0x12, 0xff, 0x05, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x00, 0xbf, 0x77, 0x0b, 0x0b, 0x04, 0x08, 0x28, 0x9d, 0xbf, 0x02, 0x4b, 0x18, 0x70, 0x00, 0x20, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x80, 0x59, 0x0b, 0x04, 0x01, 0x4b, 0x18, 0x78, 0x70, 0x47, 0x00, 0xbf, 0x80, 0x59, 0x0b, 0x04, 0x0e, 0xb4, 0x3f, 0xb5, 0x07, 0xaa, 0x52, 0xf8, 0x04, 0x1b, 0x07, 0x4b, 0x04, 0x90, 0x02, 0xa8, 0x01, 0x92, 0x05, 0x93, 0xff, 0xf7, 0xf0, 0xfe, 0x00, 0x22, 0x04, 0x9b, 0x1a, 0x70, 0x06, 0xb0, 0x5d, 0xf8, 0x04, 0xeb, 0x03, 0xb0, 0x70, 0x47, 0x6d, 0x0b, 0x0b, 0x04, 0x0f, 0xb4, 0x30, 0xb5, 0x89, 0xb0, 0xff, 0xf7, 0x0d, 0xfb, 0x0e, 0x49, 0x02, 0x46, 0x01, 0xa8, 0xff, 0xf7, 0xe0, 0xff, 0x00, 0x25, 0x01, 0xac, 0x14, 0xf8, 0x01, 0x0b, 0x20, 0xb1, 0x01, 0x35, 0x00, 0xf0, 0xfc, 0xfa, 0x0c, 0x2d, 0xf7, 0xd1, 0x07, 0x4b, 0x0d, 0xaa, 0x0c, 0x99, 0x04, 0xa8, 0x07, 0x93, 0x00, 0x92, 0xff, 0xf7, 0xca, 0xfe, 0x09, 0xb0, 0xbd, 0xe8, 0x30, 0x40, 0x04, 0xb0, 0x70, 0x47, 0x00, 0xbf, 0x94, 0x49, 0x0b, 0x04, 0x77, 0x0b, 0x0b, 0x04, 0x01, 0x46, 0x01, 0x48, 0xff, 0xf7, 0xd6, 0xbf, 0x99, 0x49, 0x0b, 0x04, 0x0c, 0xb4, 0x7f, 0xb5, 0x08, 0xaa, 0x52, 0xf8, 0x04, 0x1b, 0x07, 0x4b, 0x04, 0x90, 0x02, 0xa8, 0x01, 0x92, 0x05, 0x93, 0xff, 0xf7, 0xae, 0xfe, 0x00, 0x22, 0x04, 0x9b, 0x1a, 0x70, 0x07, 0xb0, 0x5d, 0xf8, 0x04, 0xeb, 0x02, 0xb0, 0x70, 0x47, 0x6d, 0x0b, 0x0b, 0x04, 0x08, 0xb5, 0xff, 0xf7, 0xcd, 0xfa, 0xbd, 0xe8, 0x08, 0x40, 0x01, 0x46, 0x01, 0x48, 0xff, 0xf7, 0xb5, 0xbf, 0x00, 0xbf, 0x86, 0x49, 0x0b, 0x04, 0x89, 0x08, 0xf8, 0xb5, 0x0e, 0x46, 0x00, 0x24, 0x18, 0x4b, 0x45, 0x69, 0x00, 0xf1, 0x10, 0x02, 0x43, 0x61, 0x52, 0xe9, 0x04, 0x37, 0x3b, 0x44, 0x52, 0xf8, 0x08, 0x7c, 0x04, 0x3e, 0x3b, 0x44, 0x52, 0xf8, 0x04, 0x7c, 0x03, 0x2e, 0x3b, 0x44, 0x1c, 0x44, 0x02, 0xf1, 0x10, 0x02, 0xf0, 0xd8, 0x0b, 0x1f, 0x9b, 0x08, 0x01, 0x33, 0x00, 0xeb, 0x03, 0x13, 0x01, 0xf0, 0x03, 0x01, 0x03, 0xeb, 0x81, 0x01, 0x8b, 0x42, 0x0d, 0xd1, 0x45, 0x61, 0x21, 0x46, 0x09, 0x48, 0xff, 0xf7, 0x8a, 0xff, 0x29, 0x46, 0x08, 0x48, 0xff, 0xf7, 0x86, 0xff, 0x60, 0x1b, 0x18, 0xbf, 0x4f, 0xf0, 0xff, 0x30, 0xf8, 0xbd, 0x53, 0xf8, 0x04, 0x2b, 0x14, 0x44, 0xeb, 0xe7, 0x00, 0xbf, 0x39, 0x6c, 0x0a, 0x5f, 0xb0, 0x49, 0x0b, 0x04, 0xac, 0x49, 0x0b, 0x04, 0x00, 0x23, 0x11, 0xb9, 0x11, 0x60, 0x08, 0x46, 0x70, 0x47, 0x01, 0x29, 0x05, 0xd1, 0x10, 0x60, 0x18, 0x46, 0x70, 0x47, 0x13, 0x68, 0x40, 0x1a, 0x01, 0x33, 0x88, 0x42, 0x13, 0x60, 0xf9, 0xd2, 0x70, 0x47, 0x4f, 0xf0, 0x82, 0x60, 0x70, 0x47, 0x10, 0xb5, 0x4f, 0xf4, 0x80, 0x34, 0x01, 0x3c, 0x0a, 0xd0, 0x00, 0xf0, 0x7d, 0xfa, 0x00, 0x28, 0xf9, 0xd0, 0x00, 0xf0, 0x6f, 0xfa, 0x04, 0x46, 0x01, 0x46, 0x02, 0x48, 0xff, 0xf7, 0x52, 0xff, 0x20, 0x46, 0x10, 0xbd, 0x9c, 0x49, 0x0b, 0x04, 0x02, 0x4a, 0x13, 0x78, 0x18, 0x43, 0x10, 0x70, 0x70, 0x47, 0x00, 0xbf, 0xe0, 0x59, 0x0b, 0x04, 0x01, 0x4b, 0x1b, 0x78, 0x18, 0x40, 0x70, 0x47, 0xe0, 0x59, 0x0b, 0x04, 0x00, 0x20, 0x70, 0x47, 0x00, 0x20, 0x70, 0x47, 0x70, 0x47, 0x00, 0x00, 0x00, 0x23, 0x10, 0xb5, 0x05, 0x4a, 0x06, 0x4c, 0x01, 0x44, 0xc4, 0xe9, 0x00, 0x03, 0x53, 0x60, 0x11, 0x60, 0xe2, 0x60, 0xd3, 0x60, 0x18, 0x46, 0x10, 0xbd, 0x00, 0xbf, 0xf4, 0x59, 0x0b, 0x04, 0xe4, 0x59, 0x0b, 0x04, 0xf0, 0xb5, 0x08, 0xb3, 0x00, 0xf1, 0x0f, 0x04, 0x24, 0xf0, 0x0f, 0x04, 0x0f, 0x49, 0x04, 0xf1, 0x20, 0x0c, 0xcb, 0x68, 0x0b, 0xb9, 0x18, 0x46, 0xf0, 0xbd, 0x0e, 0x68, 0x4d, 0x68, 0x1f, 0x68, 0x0c, 0xeb, 0x06, 0x02, 0x2a, 0x44, 0x97, 0x42, 0x03, 0xd3, 0x72, 0x19, 0x03, 0xd1, 0x13, 0x46, 0xf1, 0xe7, 0x19, 0x46, 0xed, 0xe7, 0x02, 0xf1, 0x10, 0x07, 0x77, 0x51, 0xd3, 0x60, 0xc2, 0xe9, 0x01, 0x40, 0x3b, 0x46, 0xca, 0x60, 0xe6, 0xe7, 0x03, 0x46, 0xe4, 0xe7, 0xe4, 0x59, 0x0b, 0x04, 0x70, 0xb5, 0x05, 0x46, 0x20, 0xb9, 0x08, 0x46, 0xbd, 0xe8, 0x70, 0x40, 0xff, 0xf7, 0xd0, 0xbf, 0x81, 0xb1, 0x15, 0x4e, 0xf4, 0x68, 0x0c, 0xb9, 0x25, 0x46, 0x0b, 0xe0, 0x23, 0x68, 0x9d, 0x42, 0x0a, 0xd1, 0xa3, 0x68, 0x19, 0x44, 0x01, 0xf1, 0x0f, 0x00, 0x63, 0x68, 0x20, 0xf0, 0x0f, 0x00, 0x83, 0x42, 0x03, 0xd1, 0x28, 0x46, 0x70, 0xbd, 0x26, 0x46, 0xeb, 0xe7, 0xe2, 0x68, 0x05, 0xf1, 0x20, 0x03, 0x12, 0x68, 0x03, 0x44, 0x9a, 0x42, 0x02, 0xd3, 0xc4, 0xe9, 0x01, 0x01, 0xf1, 0xe7, 0xff, 0xf7, 0xae, 0xff, 0x05, 0x46, 0x00, 0x28, 0xec, 0xd0, 0xd4, 0xe9, 0x00, 0x12, 0x00, 0xf0, 0x62, 0xf8, 0xe3, 0x68, 0xf3, 0x60, 0xe5, 0xe7, 0xe4, 0x59, 0x0b, 0x04, 0x10, 0xb1, 0x06, 0x4a, 0xd3, 0x68, 0x03, 0xb9, 0x70, 0x47, 0x19, 0x68, 0x88, 0x42, 0x02, 0xd1, 0xdb, 0x68, 0xd3, 0x60, 0x70, 0x47, 0x1a, 0x46, 0xf4, 0xe7, 0x00, 0xbf, 0xe4, 0x59, 0x0b, 0x04, 0x4f, 0xf0, 0xff, 0x30, 0x10, 0xb5, 0x07, 0x4c, 0x0a, 0x44, 0x91, 0x42, 0x01, 0xd1, 0xc0, 0x43, 0x10, 0xbd, 0x11, 0xf8, 0x01, 0x3b, 0x43, 0x40, 0xdb, 0xb2, 0x54, 0xf8, 0x23, 0x30, 0x83, 0xea, 0x10, 0x20, 0xf2, 0xe7, 0xb8, 0x49, 0x0b, 0x04, 0x70, 0x47, 0x70, 0x47, 0x03, 0x46, 0x70, 0xb5, 0x9c, 0x07, 0x1d, 0x46, 0x1f, 0xd1, 0x03, 0x2a, 0x19, 0xd9, 0x16, 0x46, 0xcc, 0xb2, 0x44, 0xea, 0x04, 0x24, 0x44, 0xea, 0x04, 0x44, 0x0f, 0x2e, 0x05, 0xf1, 0x10, 0x05, 0x19, 0xd8, 0x6f, 0xf0, 0x0f, 0x06, 0x15, 0x09, 0x06, 0xfb, 0x05, 0x22, 0x03, 0xeb, 0x05, 0x13, 0x95, 0x08, 0x03, 0xeb, 0x85, 0x06, 0xb3, 0x42, 0x13, 0xd1, 0x6f, 0xf0, 0x03, 0x04, 0x04, 0xfb, 0x05, 0x22, 0x1a, 0x44, 0x93, 0x42, 0x0f, 0xd1, 0x70, 0xbd, 0x00, 0x2a, 0xfc, 0xd0, 0x03, 0xf8, 0x01, 0x1b, 0x01, 0x3a, 0xd6, 0xe7, 0x45, 0xe9, 0x04, 0x44, 0x45, 0xe9, 0x02, 0x44, 0x10, 0x3e, 0xdb, 0xe7, 0x43, 0xf8, 0x04, 0x4b, 0xe6, 0xe7, 0x03, 0xf8, 0x01, 0x1b, 0xea, 0xe7, 0x0f, 0x2a, 0xf0, 0xb5, 0x03, 0xd9, 0x41, 0xea, 0x00, 0x03, 0x9b, 0x07, 0x05, 0xd0, 0x03, 0x46, 0x01, 0x3b, 0x0a, 0x44, 0x91, 0x42, 0x36, 0xd1, 0xf0, 0xbd, 0x15, 0x46, 0x01, 0xf1, 0x10, 0x04, 0x00, 0xf1, 0x10, 0x03, 0x54, 0xf8, 0x10, 0x6c, 0x10, 0x3d, 0x43, 0xf8, 0x10, 0x6c, 0x54, 0xf8, 0x0c, 0x6c, 0x0f, 0x2d, 0x43, 0xf8, 0x0c, 0x6c, 0x54, 0xf8, 0x08, 0x6c, 0x03, 0xf1, 0x10, 0x03, 0x43, 0xf8, 0x18, 0x6c, 0x54, 0xf8, 0x04, 0x6c, 0x04, 0xf1, 0x10, 0x04, 0x43, 0xf8, 0x14, 0x6c, 0xe8, 0xd8, 0xa2, 0xf1, 0x10, 0x03, 0x23, 0xf0, 0x0f, 0x03, 0x02, 0xf0, 0x0f, 0x02, 0x10, 0x33, 0x95, 0x08, 0x19, 0x44, 0xac, 0x00, 0x03, 0x44, 0x1e, 0x1f, 0x0f, 0x19, 0xb9, 0x42, 0x05, 0xd1, 0x6f, 0xf0, 0x03, 0x06, 0x23, 0x44, 0x06, 0xfb, 0x05, 0x22, 0xc9, 0xe7, 0x51, 0xf8, 0x04, 0xcb, 0x46, 0xf8, 0x04, 0xcf, 0xf2, 0xe7, 0x11, 0xf8, 0x01, 0x4b, 0x03, 0xf8, 0x01, 0x4f, 0xc1, 0xe7, 0x00, 0x00, 0x05, 0x4b, 0x00, 0xf0, 0x0f, 0x02, 0x00, 0x09, 0x9a, 0x5c, 0x1b, 0x5c, 0x4a, 0x70, 0x0b, 0x70, 0x00, 0x23, 0x8b, 0x70, 0x70, 0x47, 0x00, 0xbf, 0xda, 0x4d, 0x0b, 0x04, 0x2d, 0xe9, 0xf0, 0x47, 0x8e, 0xb0, 0x80, 0x46, 0x0e, 0x46, 0x01, 0xad, 0x01, 0x46, 0x15, 0x48, 0xff, 0xf7, 0x0c, 0xfe, 0x00, 0x24, 0x2f, 0x46, 0xdf, 0xf8, 0x50, 0x90, 0xdf, 0xf8, 0x48, 0xa0, 0xb4, 0x42, 0x0a, 0xdb, 0x26, 0xea, 0xe6, 0x76, 0x33, 0x07, 0x03, 0xd0, 0x39, 0x46, 0x0e, 0x48, 0xff, 0xf7, 0xfc, 0xfd, 0x0e, 0xb0, 0xbd, 0xe8, 0xf0, 0x87, 0x18, 0xf8, 0x04, 0x30, 0x28, 0x46, 0x4a, 0x46, 0x05, 0x21, 0xff, 0xf7, 0x1e, 0xfe, 0x04, 0xf0, 0x0f, 0x03, 0x0f, 0x2b, 0x05, 0xf1, 0x03, 0x05, 0x04, 0xd1, 0x39, 0x46, 0x50, 0x46, 0xff, 0xf7, 0xe8, 0xfd, 0x3d, 0x46, 0x01, 0x34, 0xde, 0xe7, 0x00, 0xbf, 0xeb, 0x4d, 0x0b, 0x04, 0x95, 0x57, 0x0b, 0x04, 0xf5, 0x4d, 0x0b, 0x04, 0x07, 0xb5, 0x00, 0x90, 0x01, 0x48, 0xff, 0xf7, 0xd9, 0xfd, 0xfe, 0xe7, 0xb8, 0x4d, 0x0b, 0x04, 0x38, 0xb5, 0x04, 0x46, 0xa8, 0xb1, 0x8b, 0x08, 0x00, 0xeb, 0x83, 0x05, 0x00, 0x20, 0xac, 0x42, 0x15, 0xd1, 0x6f, 0xf0, 0x03, 0x02, 0x02, 0xfb, 0x03, 0x11, 0x01, 0x29, 0x81, 0xbf, 0x34, 0xf8, 0x02, 0x3b, 0x02, 0x39, 0xc0, 0x18, 0x80, 0xb2, 0x41, 0xb1, 0x23, 0x78, 0x18, 0x44, 0x80, 0xb2, 0x04, 0xe0, 0x01, 0x46, 0x05, 0x48, 0xff, 0xf7, 0xb9, 0xfd, 0x20, 0x46, 0x38, 0xbd, 0x54, 0xf8, 0x04, 0x2b, 0x02, 0xeb, 0x12, 0x42, 0x10, 0x44, 0x80, 0xb2, 0xe0, 0xe7, 0xfb, 0x4d, 0x0b, 0x04, 0x08, 0xb5, 0x44, 0xf6, 0x54, 0x03, 0x01, 0x88, 0x99, 0x42, 0x05, 0xd0, 0x12, 0x48, 0xff, 0xf7, 0xa5, 0xfd, 0x4f, 0xf0, 0xff, 0x30, 0x08, 0xbd, 0x83, 0x88, 0x5b, 0xb9, 0xc1, 0x88, 0xb1, 0xf5, 0x00, 0x7f, 0x01, 0xd0, 0x0d, 0x48, 0xf2, 0xe7, 0x41, 0x89, 0xb1, 0xf5, 0x80, 0x7f, 0x10, 0xd0, 0x0b, 0x48, 0xec, 0xe7, 0x01, 0x2b, 0x09, 0xd1, 0xc1, 0x88, 0x40, 0x29, 0x01, 0xd0, 0x09, 0x48, 0xe5, 0xe7, 0x41, 0x89, 0x40, 0x29, 0x04, 0xd0, 0x07, 0x48, 0xe0, 0xe7, 0x19, 0x46, 0x07, 0x48, 0xdd, 0xe7, 0x00, 0x20, 0xdf, 0xe7, 0x00, 0xbf, 0xdf, 0x4e, 0x0b, 0x04, 0xfc, 0x4e, 0x0b, 0x04, 0x18, 0x4f, 0x0b, 0x04, 0x34, 0x4f, 0x0b, 0x04, 0x50, 0x4f, 0x0b, 0x04, 0x6c, 0x4f, 0x0b, 0x04, 0x00, 0x68, 0x03, 0x4b, 0xc0, 0x1a, 0x18, 0xbf, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x00, 0xbf, 0x41, 0x57, 0x49, 0x48, 0x10, 0xb5, 0x04, 0x46, 0x01, 0x68, 0x17, 0x48, 0xff, 0xf7, 0x66, 0xfd, 0xa1, 0x88, 0x16, 0x48, 0xff, 0xf7, 0x62, 0xfd, 0xe1, 0x88, 0x15, 0x48, 0xff, 0xf7, 0x5e, 0xfd, 0xe1, 0x68, 0x14, 0x48, 0xff, 0xf7, 0x5a, 0xfd, 0x21, 0x69, 0x13, 0x48, 0xff, 0xf7, 0x56, 0xfd, 0x61, 0x69, 0x12, 0x48, 0xff, 0xf7, 0x52, 0xfd, 0xa1, 0x69, 0x11, 0x48, 0xff, 0xf7, 0x4e, 0xfd, 0xe1, 0x69, 0x10, 0x48, 0xff, 0xf7, 0x4a, 0xfd, 0x21, 0x6a, 0x0f, 0x48, 0xff, 0xf7, 0x46, 0xfd, 0x61, 0x6a, 0x0e, 0x48, 0xff, 0xf7, 0x42, 0xfd, 0x04, 0xf1, 0x28, 0x01, 0x0c, 0x48, 0xff, 0xf7, 0x3d, 0xfd, 0x00, 0x20, 0x10, 0xbd, 0x00, 0xbf, 0x5f, 0x4e, 0x0b, 0x04, 0x6b, 0x4e, 0x0b, 0x04, 0x7a, 0x4e, 0x0b, 0x04, 0x89, 0x4e, 0x0b, 0x04, 0x95, 0x4e, 0x0b, 0x04, 0xa1, 0x4e, 0x0b, 0x04, 0xad, 0x4e, 0x0b, 0x04, 0xb8, 0x4e, 0x0b, 0x04, 0xc1, 0x4e, 0x0b, 0x04, 0xcc, 0x4e, 0x0b, 0x04, 0xd6, 0x4e, 0x0b, 0x04, 0x70, 0xb5, 0x14, 0x4b, 0x0e, 0x46, 0x01, 0x68, 0x05, 0x46, 0x99, 0x42, 0x05, 0xd0, 0x12, 0x48, 0xff, 0xf7, 0x1a, 0xfd, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0xbd, 0xc1, 0x68, 0xff, 0xf7, 0x3e, 0xff, 0x4f, 0xf6, 0xff, 0x73, 0x98, 0x42, 0x01, 0x46, 0x01, 0xd0, 0x0c, 0x48, 0xf0, 0xe7, 0x6c, 0x89, 0x0e, 0xb9, 0xee, 0x68, 0x2e, 0x44, 0x29, 0x69, 0x30, 0x46, 0xff, 0xf7, 0x2f, 0xff, 0x4f, 0xf6, 0xff, 0x73, 0x21, 0x18, 0x89, 0xb2, 0x99, 0x42, 0x01, 0xd0, 0x05, 0x48, 0xe0, 0xe7, 0x00, 0x20, 0xe2, 0xe7, 0x00, 0xbf, 0x41, 0x57, 0x49, 0x48, 0x0a, 0x4e, 0x0b, 0x04, 0x29, 0x4e, 0x0b, 0x04, 0x45, 0x4e, 0x0b, 0x04, 0x03, 0x4b, 0x1b, 0x68, 0x5a, 0x69, 0x52, 0x06, 0xfc, 0xd5, 0x18, 0x60, 0x70, 0x47, 0x00, 0xbf, 0x04, 0x5a, 0x0b, 0x04, 0x03, 0x4b, 0x1b, 0x68, 0x5a, 0x69, 0xd2, 0x07, 0xfc, 0xd5, 0x18, 0x68, 0xc0, 0xb2, 0x70, 0x47, 0x04, 0x5a, 0x0b, 0x04, 0x02, 0x4b, 0x1b, 0x68, 0x58, 0x69, 0x00, 0xf0, 0x01, 0x00, 0x70, 0x47, 0x04, 0x5a, 0x0b, 0x04, 0x10, 0xb5, 0x04, 0x46, 0x06, 0x48, 0xff, 0xf7, 0x2b, 0xfe, 0x06, 0x4b, 0x00, 0xeb, 0x84, 0x20, 0x18, 0x60, 0xd0, 0xf8, 0xa4, 0x30, 0x43, 0xf0, 0x02, 0x03, 0xc0, 0xf8, 0xa4, 0x30, 0x10, 0xbd, 0x00, 0x70, 0x04, 0x40, 0x04, 0x5a, 0x0b, 0x04, 0x10, 0xb5, 0x04, 0x46, 0x0b, 0x48, 0xff, 0xf7, 0x17, 0xfe, 0x0b, 0x4b, 0x00, 0xeb, 0x84, 0x20, 0x18, 0x60, 0xd0, 0xf8, 0xa4, 0x30, 0x43, 0xf0, 0x04, 0x03, 0xc0, 0xf8, 0xa4, 0x30, 0xd0, 0xf8, 0xa4, 0x30, 0x5b, 0x07, 0xfb, 0xd4, 0xd0, 0xf8, 0xa4, 0x30, 0x23, 0xf0, 0x02, 0x03, 0xc0, 0xf8, 0xa4, 0x30, 0x10, 0xbd, 0x00, 0x70, 0x04, 0x40, 0x04, 0x5a, 0x0b, 0x04, 0x05, 0x4b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x04, 0x2b, 0x9a, 0xbf, 0x03, 0x4a, 0x52, 0xf8, 0x23, 0x00, 0x03, 0x48, 0x70, 0x47, 0x00, 0xbf, 0x84, 0xc4, 0x04, 0x40, 0x8c, 0x4f, 0x0b, 0x04, 0x00, 0x5a, 0x62, 0x02, 0xf8, 0xb5, 0x04, 0x46, 0x19, 0x48, 0x0e, 0x46, 0x17, 0x46, 0xff, 0xf7, 0xe5, 0xfd, 0x05, 0x46, 0x20, 0x46, 0xff, 0xf7, 0x4d, 0xfa, 0x30, 0x46, 0x15, 0x4e, 0x39, 0x46, 0x01, 0x22, 0x05, 0xeb, 0x84, 0x25, 0x00, 0xf0, 0xd3, 0xf8, 0x35, 0x60, 0x03, 0x25, 0x20, 0x46, 0xff, 0xf7, 0xa4, 0xff, 0x31, 0x68, 0x0d, 0x61, 0xff, 0xf7, 0xd2, 0xff, 0x4f, 0xf4, 0xe1, 0x13, 0x00, 0xf5, 0x61, 0x20, 0xb0, 0xfb, 0xf3, 0xf0, 0xcb, 0x68, 0x43, 0xf0, 0x80, 0x03, 0xcb, 0x60, 0x03, 0x0a, 0xc0, 0xb2, 0x4b, 0x60, 0x08, 0x60, 0xcb, 0x68, 0x20, 0x46, 0x23, 0xf0, 0x80, 0x03, 0xcb, 0x60, 0x07, 0x23, 0xcd, 0x60, 0x8b, 0x60, 0xbd, 0xe8, 0xf8, 0x40, 0xff, 0xf7, 0x9a, 0xbf, 0x00, 0x70, 0x04, 0x40, 0x04, 0x5a, 0x0b, 0x04, 0x10, 0xb5, 0x04, 0x46, 0xff, 0xf7, 0x1a, 0xfa, 0x04, 0xf5, 0x80, 0x11, 0x03, 0x24, 0x01, 0xf5, 0x8e, 0x71, 0x89, 0x02, 0x0d, 0x4b, 0x0c, 0x61, 0x19, 0x60, 0xff, 0xf7, 0xa5, 0xff, 0x4f, 0xf4, 0xe1, 0x13, 0x00, 0xf5, 0x61, 0x20, 0xb0, 0xfb, 0xf3, 0xf0, 0xcb, 0x68, 0x43, 0xf0, 0x80, 0x03, 0xcb, 0x60, 0x03, 0x0a, 0xc0, 0xb2, 0x4b, 0x60, 0x08, 0x60, 0xcb, 0x68, 0x23, 0xf0, 0x80, 0x03, 0xcb, 0x60, 0x07, 0x23, 0xcc, 0x60, 0x8b, 0x60, 0x10, 0xbd, 0x00, 0xbf, 0x04, 0x5a, 0x0b, 0x04, 0x30, 0xb5, 0x0f, 0x25, 0x8b, 0x00, 0xc1, 0xf3, 0xc1, 0x01, 0x03, 0xf0, 0x1c, 0x03, 0x50, 0xf8, 0x21, 0x40, 0x9d, 0x40, 0x24, 0xea, 0x05, 0x04, 0x9a, 0x40, 0x22, 0x43, 0x40, 0xf8, 0x21, 0x20, 0x30, 0xbd, 0x00, 0x00, 0x10, 0xb4, 0x24, 0x24, 0x43, 0x09, 0x5c, 0x43, 0x0a, 0x2b, 0x94, 0xbf, 0x04, 0x4b, 0x05, 0x4b, 0x0a, 0x46, 0x23, 0x44, 0x01, 0x46, 0x5d, 0xf8, 0x04, 0x4b, 0x18, 0x46, 0xff, 0xf7, 0xde, 0xbf, 0x00, 0xa4, 0x04, 0x40, 0x74, 0x1e, 0x02, 0x07, 0xc1, 0xf3, 0xc1, 0x03, 0x50, 0xf8, 0x23, 0x00, 0xbf, 0xf3, 0x5f, 0x8f, 0x89, 0x00, 0x01, 0xf0, 0x1c, 0x01, 0xc8, 0x40, 0x00, 0xf0, 0x0f, 0x00, 0x70, 0x47, 0x00, 0x00, 0x24, 0x22, 0x43, 0x09, 0x5a, 0x43, 0x0a, 0x2b, 0x01, 0x46, 0x94, 0xbf, 0x02, 0x48, 0x03, 0x48, 0x10, 0x44, 0xff, 0xf7, 0xe7, 0xbf, 0x00, 0xbf, 0x00, 0xa4, 0x04, 0x40, 0x74, 0x1e, 0x02, 0x07, 0x30, 0xb5, 0x24, 0x24, 0x43, 0x09, 0x5c, 0x43, 0x0a, 0x2b, 0x94, 0xbf, 0x0a, 0x4b, 0x0b, 0x4b, 0xc0, 0xf3, 0x00, 0x15, 0x23, 0x44, 0x03, 0x24, 0x14, 0x33, 0x40, 0x00, 0x53, 0xf8, 0x25, 0x20, 0x00, 0xf0, 0x1e, 0x00, 0x84, 0x40, 0x22, 0xea, 0x04, 0x02, 0x01, 0xfa, 0x00, 0xf0, 0x02, 0x43, 0x43, 0xf8, 0x25, 0x20, 0x00, 0x20, 0x30, 0xbd, 0x00, 0xa4, 0x04, 0x40, 0x74, 0x1e, 0x02, 0x07, 0x30, 0xb5, 0x24, 0x24, 0x43, 0x09, 0x5c, 0x43, 0x0a, 0x2b, 0x94, 0xbf, 0x0a, 0x4b, 0x0b, 0x4b, 0xc0, 0xf3, 0x00, 0x15, 0x23, 0x44, 0x03, 0x24, 0x1c, 0x33, 0x40, 0x00, 0x53, 0xf8, 0x25, 0x20, 0x00, 0xf0, 0x1e, 0x00, 0x84, 0x40, 0x22, 0xea, 0x04, 0x02, 0x01, 0xfa, 0x00, 0xf0, 0x02, 0x43, 0x43, 0xf8, 0x25, 0x20, 0x00, 0x20, 0x30, 0xbd, 0x00, 0xa4, 0x04, 0x40, 0x74, 0x1e, 0x02, 0x07, 0x2d, 0xe9, 0xf0, 0x4f, 0x00, 0x27, 0x8b, 0xb0, 0xcd, 0xe9, 0x08, 0x12, 0x08, 0x9b, 0x9f, 0x42, 0x04, 0xd1, 0x4f, 0xf0, 0xff, 0x30, 0x0b, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x10, 0xf8, 0x37, 0x60, 0x00, 0xeb, 0xc7, 0x08, 0x01, 0x37, 0x00, 0x2e, 0xf0, 0xd0, 0x98, 0xf8, 0x01, 0xc0, 0x0b, 0x2e, 0x4f, 0xea, 0xdc, 0x03, 0x05, 0x93, 0x05, 0x9a, 0x4f, 0xea, 0x1c, 0x13, 0x06, 0x93, 0x4f, 0xea, 0x82, 0x04, 0x06, 0xeb, 0xc6, 0x03, 0x06, 0x9a, 0x4f, 0xea, 0x83, 0x03, 0x03, 0xeb, 0x82, 0x02, 0x73, 0xd8, 0x98, 0x49, 0x98, 0x4d, 0x19, 0x44, 0x01, 0xeb, 0x04, 0x0b, 0x97, 0x4c, 0x15, 0x44, 0x14, 0x44, 0x97, 0x4a, 0xd3, 0x18, 0x03, 0x93, 0xdb, 0xf8, 0x00, 0x20, 0xbf, 0xf3, 0x5f, 0x8f, 0xd5, 0xf8, 0x00, 0xa0, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0x68, 0x19, 0x46, 0xbf, 0xf3, 0x5f, 0x8f, 0x03, 0x9b, 0x1b, 0x68, 0x01, 0x93, 0xbf, 0xf3, 0x5f, 0x8f, 0x0f, 0x23, 0x0c, 0xf0, 0x07, 0x0e, 0x4f, 0xea, 0x8e, 0x0e, 0x03, 0xfa, 0x0e, 0xf3, 0x22, 0xea, 0x03, 0x02, 0x09, 0x9b, 0x33, 0xb1, 0x98, 0xf8, 0x02, 0x30, 0x03, 0xf0, 0x0f, 0x03, 0x03, 0xfa, 0x0e, 0xf3, 0x1a, 0x43, 0x03, 0x23, 0x0c, 0xf0, 0x0f, 0x0e, 0x4f, 0xea, 0x4e, 0x0e, 0x03, 0xfa, 0x0e, 0xf3, 0xdb, 0x43, 0x98, 0xf8, 0x03, 0x90, 0x03, 0xea, 0x0a, 0x0a, 0x09, 0xf0, 0x03, 0x09, 0x09, 0xfa, 0x0e, 0xf9, 0x49, 0xea, 0x0a, 0x0a, 0x98, 0xf8, 0x04, 0x90, 0x0b, 0x40, 0x09, 0xf0, 0x03, 0x09, 0x09, 0xfa, 0x0e, 0xfe, 0x4e, 0xea, 0x03, 0x03, 0x02, 0x93, 0x98, 0xf8, 0x02, 0x30, 0x01, 0x2b, 0x2f, 0xd1, 0x98, 0xf8, 0x05, 0x80, 0x01, 0x99, 0x03, 0xfa, 0x0c, 0xfe, 0x08, 0xf0, 0x01, 0x08, 0x21, 0xea, 0x0e, 0x0e, 0x08, 0xfa, 0x0c, 0xfc, 0x4c, 0xea, 0x0e, 0x01, 0x01, 0x91, 0x04, 0x97, 0x00, 0xeb, 0xc7, 0x00, 0x04, 0x99, 0x08, 0x9f, 0xb9, 0x42, 0x1c, 0xd3, 0xbf, 0xf3, 0x5f, 0x8f, 0xcb, 0xf8, 0x00, 0x20, 0xbf, 0xf3, 0x5f, 0x8f, 0xc5, 0xf8, 0x00, 0xa0, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x9a, 0x22, 0x60, 0x00, 0x2b, 0x40, 0xf0, 0xb8, 0x80, 0x18, 0x46, 0x6d, 0xe7, 0x62, 0x49, 0x62, 0x4d, 0x19, 0x44, 0x01, 0xeb, 0x04, 0x0b, 0x61, 0x4c, 0x15, 0x44, 0x14, 0x44, 0x61, 0x4a, 0x8a, 0xe7, 0x00, 0x23, 0xdb, 0xe7, 0x07, 0x78, 0x90, 0xf8, 0x01, 0xe0, 0x00, 0x2f, 0xdd, 0xd0, 0x4f, 0xea, 0x1e, 0x11, 0x07, 0x91, 0x06, 0x99, 0x4f, 0xea, 0xde, 0x0c, 0x88, 0x46, 0x07, 0x99, 0x88, 0x45, 0x02, 0xd1, 0xbe, 0x42, 0x00, 0xf0, 0x85, 0x80, 0xbf, 0xf3, 0x5f, 0x8f, 0xcb, 0xf8, 0x00, 0x20, 0xbf, 0xf3, 0x5f, 0x8f, 0xc5, 0xf8, 0x00, 0xa0, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x9a, 0x22, 0x60, 0x23, 0xb1, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9b, 0x03, 0x9a, 0x13, 0x60, 0x07, 0x9c, 0x07, 0xeb, 0xc7, 0x03, 0x44, 0x4a, 0x99, 0x00, 0x01, 0xeb, 0x84, 0x06, 0x8a, 0x18, 0x01, 0xf1, 0x80, 0x41, 0x42, 0x4d, 0x42, 0x4c, 0x01, 0xf5, 0x94, 0x21, 0x01, 0xf5, 0x7b, 0x71, 0x02, 0xeb, 0x8c, 0x0b, 0x75, 0x19, 0x34, 0x19, 0x03, 0x91, 0x52, 0xf8, 0x2c, 0x20, 0xbf, 0xf3, 0x5f, 0x8f, 0x3a, 0x49, 0x56, 0xf8, 0x01, 0xa0, 0xbf, 0xf3, 0x5f, 0x8f, 0x08, 0x39, 0x71, 0x58, 0x02, 0x91, 0xbf, 0xf3, 0x5f, 0x8f, 0x37, 0x49, 0x51, 0xf8, 0x23, 0x30, 0x01, 0x93, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x23, 0x0f, 0x21, 0x0e, 0xf0, 0x07, 0x06, 0xb6, 0x00, 0x01, 0xfa, 0x06, 0xf8, 0x81, 0x78, 0x22, 0xea, 0x08, 0x02, 0x05, 0x91, 0x09, 0x99, 0x29, 0xb1, 0x05, 0x99, 0x01, 0xf0, 0x0f, 0x08, 0x08, 0xfa, 0x06, 0xf6, 0x32, 0x43, 0x03, 0x21, 0x0e, 0xf0, 0x0f, 0x08, 0x4f, 0xea, 0x48, 0x08, 0x01, 0xfa, 0x08, 0xf6, 0xf6, 0x43, 0x90, 0xf8, 0x03, 0x90, 0x06, 0xea, 0x0a, 0x0a, 0x09, 0xea, 0x01, 0x09, 0x09, 0xfa, 0x08, 0xf9, 0x49, 0xea, 0x0a, 0x0a, 0x90, 0xf8, 0x04, 0x90, 0x02, 0x99, 0x09, 0xf0, 0x03, 0x09, 0x0e, 0x40, 0x09, 0xfa, 0x08, 0xf8, 0x48, 0xea, 0x06, 0x01, 0x02, 0x91, 0x05, 0x99, 0x01, 0x29, 0x0d, 0xd1, 0x01, 0x9b, 0x01, 0xfa, 0x0e, 0xf6, 0x23, 0xea, 0x06, 0x06, 0x43, 0x79, 0x03, 0xf0, 0x01, 0x03, 0x03, 0xfa, 0x0e, 0xfe, 0x4e, 0xea, 0x06, 0x03, 0x01, 0x93, 0x0b, 0x46, 0x04, 0x9e, 0x07, 0x99, 0x01, 0x36, 0x04, 0x96, 0x08, 0x30, 0xcd, 0xe9, 0x05, 0xc1, 0x3e, 0x46, 0x47, 0xe7, 0x05, 0x99, 0x61, 0x45, 0xb3, 0xd0, 0xbf, 0xf3, 0x5f, 0x8f, 0xcb, 0xf8, 0x00, 0x20, 0x24, 0x22, 0x11, 0x46, 0x08, 0x4a, 0x11, 0xfb, 0x07, 0x22, 0x02, 0xeb, 0x8c, 0x0b, 0x52, 0xf8, 0x2c, 0x20, 0xbf, 0xf3, 0x5f, 0x8f, 0xa3, 0xe7, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9b, 0x03, 0x9a, 0x00, 0x20, 0x13, 0x60, 0xb0, 0xe6, 0xdc, 0xa3, 0x04, 0x40, 0xf8, 0xa3, 0x04, 0x40, 0xf0, 0xa3, 0x04, 0x40, 0xec, 0xa3, 0x04, 0x40, 0x50, 0x1e, 0x02, 0x07, 0x6c, 0x1e, 0x02, 0x07, 0x64, 0x1e, 0x02, 0x07, 0x60, 0x1e, 0x02, 0x07, 0x38, 0xb5, 0x04, 0x46, 0x04, 0x48, 0x0d, 0x46, 0xff, 0xf7, 0x96, 0xfb, 0xbf, 0xf3, 0x5f, 0x8f, 0x40, 0xf8, 0x24, 0x50, 0x38, 0xbd, 0x00, 0xbf, 0x00, 0x02, 0x05, 0x40, 0x10, 0xb5, 0x04, 0x46, 0x03, 0x48, 0xff, 0xf7, 0x89, 0xfb, 0x50, 0xf8, 0x24, 0x00, 0xbf, 0xf3, 0x5f, 0x8f, 0x10, 0xbd, 0x00, 0x02, 0x05, 0x40, 0x10, 0xb5, 0x07, 0x4c, 0x06, 0x49, 0x02, 0x20, 0xff, 0xf7, 0xe0, 0xff, 0xbf, 0xf3, 0x4f, 0x8f, 0xbf, 0xf3, 0x6f, 0x8f, 0x02, 0x20, 0xff, 0xf7, 0xe7, 0xff, 0xa0, 0x42, 0xf2, 0xd1, 0x10, 0xbd, 0x5a, 0xa5, 0xa5, 0x5a, 0x38, 0xb5, 0x00, 0x24, 0x15, 0x4d, 0x20, 0x46, 0xff, 0xf7, 0xdc, 0xff, 0x02, 0x46, 0x18, 0xb1, 0x21, 0x46, 0x28, 0x46, 0xff, 0xf7, 0x0a, 0xfa, 0x01, 0x34, 0x06, 0x2c, 0xf3, 0xd1, 0x02, 0x20, 0xff, 0xf7, 0xd0, 0xff, 0x0e, 0x4b, 0x98, 0x42, 0x04, 0xd1, 0x0e, 0x48, 0xff, 0xf7, 0xfe, 0xf9, 0x01, 0x20, 0x38, 0xbd, 0x0c, 0x4b, 0x98, 0x42, 0x0e, 0xd1, 0x0c, 0x49, 0x02, 0x20, 0xff, 0xf7, 0xb3, 0xff, 0x0b, 0x4c, 0x96, 0x20, 0xfe, 0xf7, 0xaf, 0xfd, 0x02, 0x20, 0xff, 0xf7, 0xba, 0xff, 0xa0, 0x42, 0xf7, 0xd1, 0x07, 0x48, 0xe9, 0xe7, 0x00, 0x20, 0xea, 0xe7, 0x71, 0x50, 0x0b, 0x04, 0x5a, 0xa5, 0xa5, 0x5a, 0x87, 0x50, 0x0b, 0x04, 0xa5, 0x5a, 0xa5, 0x5a, 0xa6, 0x5a, 0xa5, 0x5a, 0xa7, 0x5a, 0xa5, 0x5a, 0x97, 0x50, 0x0b, 0x04, 0x08, 0xb5, 0x00, 0x21, 0x02, 0x20, 0xff, 0xf7, 0x93, 0xff, 0xbf, 0xf3, 0x4f, 0x8f, 0xbf, 0xf3, 0x6f, 0x8f, 0x02, 0x20, 0xff, 0xf7, 0x9a, 0xff, 0x00, 0x28, 0xf2, 0xd1, 0x08, 0xbd, 0x10, 0xb5, 0x04, 0x46, 0x21, 0x46, 0x02, 0x20, 0xff, 0xf7, 0x83, 0xff, 0xbf, 0xf3, 0x4f, 0x8f, 0xbf, 0xf3, 0x6f, 0x8f, 0x02, 0x20, 0xff, 0xf7, 0x8a, 0xff, 0xa0, 0x42, 0xf2, 0xd1, 0x10, 0xbd, 0x10, 0xb5, 0x04, 0x46, 0x21, 0x46, 0x07, 0x20, 0xff, 0xf7, 0x73, 0xff, 0xbf, 0xf3, 0x4f, 0x8f, 0xbf, 0xf3, 0x6f, 0x8f, 0x07, 0x20, 0xff, 0xf7, 0x7a, 0xff, 0xa0, 0x42, 0xf2, 0xd1, 0x00, 0x20, 0x10, 0xbd, 0x10, 0xb5, 0x04, 0x46, 0x07, 0x20, 0xff, 0xf7, 0x71, 0xff, 0x20, 0x60, 0x00, 0x20, 0x10, 0xbd, 0x00, 0x23, 0x07, 0xb5, 0x01, 0xa8, 0x01, 0x93, 0xff, 0xf7, 0xf2, 0xff, 0xbd, 0xf8, 0x04, 0x00, 0x43, 0x1e, 0x58, 0x42, 0x58, 0x41, 0x03, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x00, 0x23, 0x73, 0xb5, 0x01, 0xa8, 0x01, 0x93, 0x2f, 0x4d, 0xff, 0xf7, 0xe3, 0xff, 0xbd, 0xf8, 0x06, 0x40, 0x2e, 0x68, 0xc4, 0xf3, 0x0e, 0x04, 0xbf, 0xf3, 0x5f, 0x8f, 0x16, 0xf0, 0x07, 0x02, 0x29, 0xd1, 0x01, 0x9b, 0x00, 0x2b, 0x46, 0xd0, 0x00, 0x2c, 0x46, 0xd0, 0x0a, 0x2c, 0x04, 0xd8, 0x01, 0x23, 0xa3, 0x40, 0x13, 0xf4, 0x92, 0x6f, 0x01, 0xd1, 0x44, 0xf4, 0x00, 0x44, 0x01, 0x98, 0x00, 0xf0, 0x00, 0x40, 0x20, 0x43, 0x01, 0x90, 0xff, 0xf7, 0xb3, 0xff, 0x00, 0x23, 0x01, 0xa8, 0x01, 0x93, 0xff, 0xf7, 0xbf, 0xff, 0x01, 0x9b, 0x99, 0xb2, 0x1b, 0x04, 0x2f, 0xd4, 0x4b, 0x1e, 0x0a, 0x2b, 0x2e, 0xd8, 0x19, 0x4a, 0x1a, 0x48, 0x52, 0xf8, 0x23, 0x10, 0xff, 0xf7, 0x5c, 0xf9, 0x00, 0x20, 0x02, 0xb0, 0x70, 0xbd, 0x04, 0x2a, 0x1b, 0xd0, 0x02, 0x2a, 0x0f, 0xd1, 0x08, 0x23, 0xbf, 0xf3, 0x5f, 0x8f, 0x07, 0x22, 0x0a, 0x2c, 0x2a, 0x60, 0xd6, 0xd8, 0x01, 0x22, 0xa2, 0x40, 0x12, 0xf4, 0xdb, 0x6f, 0xd3, 0xd1, 0x00, 0x2c, 0xcf, 0xd1, 0x1c, 0x46, 0xcf, 0xe7, 0x01, 0x2a, 0x05, 0xd0, 0x31, 0x46, 0x0b, 0x48, 0xff, 0xf7, 0x3f, 0xf9, 0xb2, 0x07, 0xe7, 0xd4, 0x0b, 0x23, 0xe6, 0xe7, 0x05, 0x23, 0xe4, 0xe7, 0x01, 0x24, 0xc1, 0xe7, 0x02, 0x24, 0xbf, 0xe7, 0x06, 0x48, 0xd4, 0xe7, 0x06, 0x48, 0xd2, 0xe7, 0x00, 0xbf, 0x00, 0xc1, 0x03, 0x40, 0xa0, 0x4f, 0x0b, 0x04, 0x24, 0x50, 0x0b, 0x04, 0xcc, 0x4f, 0x0b, 0x04, 0x35, 0x50, 0x0b, 0x04, 0x53, 0x50, 0x0b, 0x04, 0xf8, 0xb5, 0x00, 0x24, 0x02, 0x27, 0x4f, 0xf0, 0x80, 0x46, 0x0a, 0x4d, 0x07, 0xfa, 0x04, 0xf3, 0x32, 0x69, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x42, 0x06, 0xd0, 0xbf, 0xf3, 0x5f, 0x8f, 0x33, 0x61, 0xab, 0x69, 0x0b, 0xb1, 0x68, 0x69, 0x98, 0x47, 0x04, 0x34, 0x10, 0x2c, 0x05, 0xf1, 0x1c, 0x05, 0xec, 0xd1, 0xf8, 0xbd, 0x08, 0x5a, 0x0b, 0x04, 0x70, 0xb5, 0x2f, 0x4e, 0x33, 0x68, 0x00, 0x2b, 0x58, 0xdc, 0x2e, 0x4a, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf0, 0x20, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0x14, 0x3a, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf0, 0x40, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0x26, 0x4b, 0x1a, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x22, 0xf0, 0x40, 0x02, 0xbf, 0xf3, 0x5f, 0x8f, 0x1a, 0x60, 0x1a, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x42, 0xf0, 0x40, 0x02, 0xbf, 0xf3, 0x5f, 0x8f, 0x1a, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x80, 0x43, 0x00, 0x25, 0x1d, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x1d, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0xff, 0x33, 0x18, 0x4a, 0x13, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x53, 0x60, 0x93, 0x69, 0x16, 0x4c, 0x43, 0xf0, 0x07, 0x03, 0x93, 0x61, 0x29, 0x46, 0x70, 0x22, 0x20, 0x46, 0xff, 0xf7, 0x20, 0xfa, 0x12, 0x4b, 0x13, 0x4a, 0xa3, 0x60, 0x13, 0x4b, 0x62, 0x62, 0x03, 0xf1, 0x20, 0x02, 0xe2, 0x62, 0x11, 0x4a, 0x23, 0x61, 0x22, 0x64, 0x03, 0xf1, 0x40, 0x02, 0x60, 0x33, 0x63, 0x66, 0x0f, 0x4b, 0xa2, 0x64, 0x1d, 0x60, 0x01, 0x23, 0x0e, 0x4a, 0x25, 0x60, 0xe5, 0x61, 0xa5, 0x63, 0x65, 0x65, 0xe2, 0x65, 0x33, 0x60, 0x70, 0xbd, 0x00, 0xbf, 0x84, 0x59, 0x0b, 0x04, 0x1c, 0xc0, 0x03, 0x40, 0x10, 0xc0, 0x03, 0x40, 0x10, 0x00, 0x00, 0x40, 0x08, 0x5a, 0x0b, 0x04, 0x00, 0x01, 0x00, 0x40, 0x48, 0x01, 0x00, 0x40, 0x00, 0x59, 0x0b, 0x04, 0x90, 0x01, 0x00, 0x40, 0x78, 0x5a, 0x0b, 0x04, 0xd8, 0x01, 0x00, 0x40, 0x03, 0x23, 0x1c, 0x20, 0x10, 0xb5, 0x07, 0x4a, 0x00, 0xfb, 0x03, 0xf1, 0x8c, 0x58, 0x24, 0xb9, 0x01, 0x24, 0x50, 0x18, 0x54, 0x50, 0x43, 0x60, 0x10, 0xbd, 0x13, 0xf1, 0xff, 0x33, 0xf3, 0xd2, 0x00, 0x20, 0xf9, 0xe7, 0x08, 0x5a, 0x0b, 0x04, 0x00, 0x23, 0x1c, 0x20, 0x10, 0xb5, 0x07, 0x4a, 0x00, 0xfb, 0x03, 0xf1, 0x8c, 0x58, 0x24, 0xb9, 0x01, 0x24, 0x50, 0x18, 0x54, 0x50, 0x43, 0x60, 0x10, 0xbd, 0x01, 0x33, 0x04, 0x2b, 0xf3, 0xd1, 0x00, 0x20, 0xf9, 0xe7, 0x08, 0x5a, 0x0b, 0x04, 0x38, 0xb5, 0x03, 0x68, 0x0d, 0x46, 0x04, 0x69, 0xc3, 0xb1, 0x4b, 0x68, 0x9b, 0xb1, 0x10, 0x30, 0xff, 0xf7, 0xbb, 0xf9, 0x60, 0x61, 0xab, 0x68, 0x2a, 0x7b, 0x1b, 0x02, 0x9b, 0xb2, 0x13, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0x61, 0x2b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x20, 0x23, 0x60, 0x38, 0xbd, 0x03, 0x4b, 0x63, 0x61, 0xec, 0xe7, 0x4f, 0xf0, 0xff, 0x30, 0xf8, 0xe7, 0x00, 0xbf, 0x00, 0xf8, 0xff, 0xff, 0x38, 0xb5, 0x04, 0x46, 0x24, 0x68, 0x85, 0x68, 0x00, 0x69, 0x9c, 0xb1, 0xbf, 0xf3, 0x5f, 0x8f, 0x41, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x82, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0xc3, 0x60, 0xff, 0xf7, 0x90, 0xf9, 0xbf, 0xf3, 0x5f, 0x8f, 0xa8, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x23, 0x00, 0x20, 0x2b, 0x60, 0x38, 0xbd, 0x4f, 0xf0, 0xff, 0x30, 0xfb, 0xe7, 0x02, 0x68, 0x83, 0x68, 0x22, 0xb1, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x20, 0x18, 0x60, 0x70, 0x47, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x03, 0x68, 0x4b, 0xb1, 0x4f, 0xf0, 0x80, 0x42, 0x43, 0x68, 0x10, 0x6b, 0xbf, 0xf3, 0x5f, 0x8f, 0xd8, 0x40, 0x00, 0xf0, 0x01, 0x00, 0x70, 0x47, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x00, 0x00, 0x08, 0xb5, 0x03, 0x68, 0x0b, 0xb3, 0x43, 0x68, 0x07, 0x22, 0x07, 0x2b, 0x0c, 0xd8, 0x9b, 0x00, 0x02, 0xfa, 0x03, 0xf3, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x80, 0x42, 0x13, 0x61, 0x83, 0x69, 0x73, 0xb9, 0x41, 0x61, 0x00, 0x20, 0x08, 0xbd, 0x03, 0xf1, 0x80, 0x43, 0x08, 0x3b, 0x9b, 0x00, 0x02, 0xfa, 0x03, 0xf3, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x80, 0x42, 0x53, 0x61, 0xee, 0xe7, 0x01, 0x46, 0x03, 0x48, 0xfe, 0xf7, 0xea, 0xff, 0xec, 0xe7, 0x4f, 0xf0, 0xff, 0x30, 0xea, 0xe7, 0xaa, 0x52, 0x0b, 0x04, 0x03, 0x68, 0x10, 0xb5, 0x01, 0x46, 0x53, 0xb3, 0x43, 0x68, 0x4f, 0xf0, 0x80, 0x42, 0x07, 0x2b, 0x15, 0xd8, 0x10, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x24, 0x9b, 0x00, 0x04, 0xfa, 0x03, 0xf3, 0x03, 0x42, 0x04, 0xd0, 0x0f, 0x48, 0xfe, 0xf7, 0xcf, 0xff, 0x00, 0x20, 0x10, 0xbd, 0x11, 0x68, 0x0b, 0x43, 0x13, 0x60, 0x0c, 0x4a, 0x13, 0x68, 0x01, 0x33, 0x13, 0x60, 0xf5, 0xe7, 0x50, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x24, 0x03, 0xf1, 0x80, 0x43, 0x08, 0x3b, 0x9b, 0x00, 0x04, 0xfa, 0x03, 0xf3, 0x03, 0x42, 0xe6, 0xd1, 0x51, 0x68, 0x0b, 0x43, 0x53, 0x60, 0xea, 0xe7, 0x4f, 0xf0, 0xff, 0x30, 0xe3, 0xe7, 0x4f, 0x52, 0x0b, 0x04, 0x78, 0x5a, 0x0b, 0x04, 0x03, 0x68, 0x10, 0xb5, 0x01, 0x46, 0x73, 0xb3, 0x43, 0x68, 0x4f, 0xf0, 0x80, 0x42, 0x07, 0x2b, 0x18, 0xd8, 0x10, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x24, 0x9b, 0x00, 0x04, 0xfa, 0x03, 0xf3, 0x03, 0x42, 0x04, 0xd1, 0x11, 0x48, 0xfe, 0xf7, 0x99, 0xff, 0x00, 0x20, 0x1d, 0xe0, 0x11, 0x68, 0x21, 0xea, 0x03, 0x03, 0x13, 0x60, 0x0e, 0x4a, 0x13, 0x68, 0x00, 0x2b, 0xf5, 0xdd, 0x01, 0x3b, 0x13, 0x60, 0xf2, 0xe7, 0x50, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x24, 0x03, 0xf1, 0x80, 0x43, 0x08, 0x3b, 0x9b, 0x00, 0x04, 0xfa, 0x03, 0xf3, 0x03, 0x42, 0xe3, 0xd0, 0x51, 0x68, 0x21, 0xea, 0x03, 0x03, 0x53, 0x60, 0xe7, 0xe7, 0x4f, 0xf0, 0xff, 0x30, 0x10, 0xbd, 0x30, 0x52, 0x0b, 0x04, 0x78, 0x5a, 0x0b, 0x04, 0x08, 0xb5, 0x03, 0x68, 0x01, 0x46, 0xd3, 0xb1, 0x42, 0x68, 0x07, 0x23, 0x07, 0x2a, 0x0b, 0xd8, 0x93, 0x40, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x80, 0x42, 0x13, 0x61, 0x8b, 0x69, 0x5b, 0xb1, 0x00, 0x20, 0xc1, 0xe9, 0x05, 0x00, 0x08, 0xbd, 0x08, 0x3a, 0x93, 0x40, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x80, 0x42, 0x53, 0x61, 0xf1, 0xe7, 0x02, 0x48, 0xfe, 0xf7, 0x55, 0xff, 0x4f, 0xf0, 0xff, 0x30, 0xf0, 0xe7, 0x71, 0x52, 0x0b, 0x04, 0x70, 0xb5, 0x00, 0x25, 0x2e, 0x46, 0x1b, 0x4c, 0x23, 0x68, 0x01, 0x2b, 0x0a, 0xd1, 0x20, 0x46, 0xff, 0xf7, 0x98, 0xff, 0x20, 0x46, 0xff, 0xf7, 0xcf, 0xff, 0xbf, 0xf3, 0x5f, 0x8f, 0xa3, 0x68, 0x1e, 0x60, 0x26, 0x60, 0x01, 0x35, 0x04, 0x2d, 0x04, 0xf1, 0x1c, 0x04, 0xec, 0xd1, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x80, 0x43, 0x00, 0x22, 0x1a, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x1a, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0xff, 0x32, 0x1a, 0x61, 0xbf, 0xf3, 0x5f, 0x8f, 0x5a, 0x61, 0x03, 0xf5, 0x71, 0x33, 0x03, 0xf5, 0x43, 0x73, 0x1a, 0x68, 0x22, 0xf0, 0x01, 0x02, 0x1a, 0x60, 0x1a, 0x68, 0x22, 0xf4, 0x80, 0x32, 0x1a, 0x60, 0x03, 0x4a, 0x13, 0x68, 0x01, 0x3b, 0x13, 0x60, 0x70, 0xbd, 0x00, 0xbf, 0x08, 0x5a, 0x0b, 0x04, 0x84, 0x59, 0x0b, 0x04, 0x03, 0x68, 0x10, 0xb5, 0x04, 0x46, 0x3b, 0xb1, 0xff, 0xf7, 0x5e, 0xff, 0x20, 0x46, 0xff, 0xf7, 0x95, 0xff, 0x00, 0x20, 0x20, 0x60, 0x10, 0xbd, 0x4f, 0xf0, 0xff, 0x30, 0xfb, 0xe7, 0x00, 0x00, 0x07, 0x4b, 0x82, 0xb0, 0x01, 0x93, 0x01, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf0, 0x00, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9a, 0x13, 0x60, 0x02, 0xb0, 0x70, 0x47, 0x00, 0xbf, 0x70, 0xc0, 0x03, 0x40, 0x07, 0x4b, 0x82, 0xb0, 0x01, 0x93, 0x01, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf0, 0x00, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9a, 0x13, 0x60, 0x02, 0xb0, 0x70, 0x47, 0x00, 0xbf, 0x70, 0xc0, 0x03, 0x40, 0x0c, 0x4b, 0x82, 0xb0, 0x01, 0x28, 0x01, 0x93, 0x0b, 0xd1, 0x01, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf4, 0x80, 0x13, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9a, 0x13, 0x60, 0x02, 0xb0, 0x70, 0x47, 0x03, 0x28, 0xfb, 0xd1, 0x01, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf4, 0x80, 0x13, 0xf0, 0xe7, 0xe0, 0xc4, 0x04, 0x40, 0x38, 0xb5, 0x04, 0x46, 0x00, 0xf1, 0x30, 0x05, 0x03, 0x46, 0x4f, 0xf0, 0xff, 0x10, 0x11, 0x49, 0x11, 0x4a, 0x9a, 0x60, 0xc3, 0xe9, 0x00, 0x01, 0x0c, 0x33, 0xab, 0x42, 0xf9, 0xd1, 0x80, 0x22, 0x00, 0x21, 0x4f, 0xf0, 0xa8, 0x70, 0xff, 0xf7, 0x09, 0xf8, 0x0a, 0x4b, 0x0a, 0x4a, 0x21, 0x68, 0xb1, 0xf1, 0xff, 0x1f, 0x0a, 0xd1, 0x61, 0x68, 0x99, 0x42, 0x07, 0xd1, 0xa1, 0x68, 0x91, 0x42, 0x04, 0xd1, 0x0c, 0x34, 0xac, 0x42, 0xf2, 0xd1, 0x00, 0x20, 0x38, 0xbd, 0x4f, 0xf0, 0xff, 0x30, 0xfb, 0xe7, 0x00, 0xbf, 0xa5, 0x5a, 0xa5, 0x5a, 0x5a, 0xa5, 0x5a, 0xa5, 0x0c, 0x4b, 0x82, 0xb0, 0x01, 0x93, 0x01, 0x9b, 0x1a, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x42, 0xf0, 0x10, 0x02, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9b, 0x1a, 0x60, 0x01, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf0, 0x03, 0x03, 0x03, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9a, 0x13, 0x60, 0x02, 0xb0, 0x70, 0x47, 0x70, 0xc0, 0x03, 0x40, 0x7f, 0xb5, 0x01, 0x46, 0xff, 0xf7, 0x84, 0xff, 0x21, 0x4b, 0x01, 0x20, 0x04, 0x93, 0x04, 0x33, 0x05, 0x93, 0xff, 0xf7, 0x8f, 0xff, 0x04, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf4, 0x40, 0x33, 0xbf, 0xf3, 0x5f, 0x8f, 0x04, 0x9a, 0x13, 0x60, 0x04, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf4, 0x00, 0x23, 0xbf, 0xf3, 0x5f, 0x8f, 0x04, 0x9a, 0x13, 0x60, 0x15, 0x4b, 0x03, 0x93, 0xa3, 0xf5, 0x82, 0x33, 0x90, 0x3b, 0x01, 0x93, 0x08, 0x33, 0x02, 0x93, 0x01, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf4, 0x80, 0x13, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9a, 0x13, 0x60, 0x02, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf4, 0x80, 0x13, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x9a, 0x13, 0x60, 0x08, 0x4b, 0x99, 0x42, 0x14, 0xbf, 0x00, 0x20, 0x01, 0x20, 0xff, 0xf7, 0xa2, 0xff, 0xff, 0xf7, 0x32, 0xff, 0x00, 0x20, 0x07, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0xa4, 0xc4, 0x04, 0x40, 0x94, 0xc4, 0x04, 0x40, 0x00, 0xd8, 0xb8, 0x05, 0x07, 0xb5, 0xff, 0xf7, 0x37, 0xff, 0x18, 0x4b, 0x01, 0x93, 0x18, 0x4b, 0x99, 0x42, 0x09, 0xd0, 0x17, 0x4b, 0x99, 0x42, 0x09, 0xd0, 0x40, 0xf2, 0x81, 0x22, 0x03, 0x28, 0x1b, 0xd1, 0x08, 0xe0, 0x01, 0x20, 0x19, 0xe0, 0x40, 0xf2, 0x01, 0x32, 0xf7, 0xe7, 0x03, 0x28, 0xf8, 0xd1, 0x40, 0xf2, 0x01, 0x32, 0x01, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf4, 0x7f, 0x63, 0x23, 0xf0, 0x0f, 0x03, 0x13, 0x43, 0x43, 0xf0, 0x00, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9a, 0x13, 0x60, 0x07, 0x4b, 0x99, 0x42, 0xe4, 0xd0, 0x00, 0x20, 0xff, 0xf7, 0x68, 0xff, 0x03, 0xb0, 0x5d, 0xf8, 0x04, 0xeb, 0xff, 0xf7, 0xf5, 0xbe, 0x00, 0xbf, 0x94, 0xc4, 0x04, 0x40, 0x00, 0xb0, 0x71, 0x0b, 0x00, 0xd8, 0xb8, 0x05, 0x07, 0xb5, 0x10, 0x4b, 0x03, 0x20, 0x00, 0x93, 0x04, 0x33, 0x01, 0x93, 0xff, 0xf7, 0x0a, 0xff, 0x01, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf4, 0xe0, 0x23, 0x43, 0xf4, 0x80, 0x23, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9a, 0x13, 0x60, 0x01, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf4, 0x00, 0x23, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9a, 0x13, 0x60, 0x03, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x00, 0xbf, 0xa4, 0xc4, 0x04, 0x40, 0x2d, 0xe9, 0xf8, 0x43, 0x00, 0x26, 0x34, 0x46, 0x35, 0x46, 0x25, 0x4f, 0xdf, 0xf8, 0xa4, 0x80, 0xdf, 0xf8, 0xa4, 0x90, 0xfb, 0x6f, 0x0a, 0x20, 0x03, 0xea, 0x08, 0x03, 0x43, 0xea, 0x06, 0x43, 0x43, 0xf0, 0x80, 0x73, 0xfb, 0x67, 0xfe, 0xf7, 0x1f, 0xf9, 0x4f, 0xf0, 0x00, 0x60, 0xff, 0xf7, 0xf1, 0xfe, 0xf0, 0xb9, 0x48, 0x46, 0xff, 0xf7, 0xed, 0xfe, 0xd0, 0xb9, 0xf4, 0xb2, 0x00, 0x2d, 0x08, 0xbf, 0x25, 0x46, 0x31, 0x46, 0x17, 0x48, 0x01, 0x36, 0xfe, 0xf7, 0xa5, 0xfd, 0x40, 0x2e, 0xe0, 0xd1, 0x2a, 0x46, 0x21, 0x46, 0x14, 0x48, 0xfe, 0xf7, 0x9e, 0xfd, 0x63, 0x1b, 0x01, 0x2b, 0x0d, 0xdc, 0x12, 0x49, 0x12, 0x48, 0xfe, 0xf7, 0x97, 0xfd, 0x4f, 0xf0, 0xff, 0x30, 0xbd, 0xe8, 0xf8, 0x83, 0x14, 0xb1, 0xa5, 0x42, 0xec, 0xd1, 0x00, 0x24, 0x25, 0x46, 0xe2, 0xe7, 0x08, 0x4a, 0x2c, 0x44, 0xd3, 0x6f, 0x64, 0x10, 0x23, 0xf0, 0x9f, 0x73, 0x23, 0xf4, 0x80, 0x33, 0x43, 0xea, 0x04, 0x44, 0x44, 0xf0, 0x80, 0x74, 0xd4, 0x67, 0x0a, 0x20, 0xfe, 0xf7, 0xe5, 0xf8, 0xe4, 0xe7, 0x00, 0xd8, 0x00, 0x40, 0xfa, 0x52, 0x0b, 0x04, 0x03, 0x53, 0x0b, 0x04, 0x45, 0x54, 0x0b, 0x04, 0x18, 0x53, 0x0b, 0x04, 0xff, 0xff, 0xc0, 0xfe, 0xd0, 0xff, 0x7f, 0x08, 0x10, 0xb5, 0x12, 0x4c, 0xe3, 0x6f, 0x43, 0xf0, 0x01, 0x03, 0xe3, 0x67, 0xe0, 0x6f, 0x10, 0xf0, 0x01, 0x00, 0x03, 0xd0, 0x0a, 0x20, 0xfe, 0xf7, 0xc9, 0xf8, 0xf7, 0xe7, 0xe1, 0x6f, 0xc1, 0xf3, 0x05, 0x11, 0x3f, 0x29, 0x05, 0xd1, 0x0a, 0x48, 0xfe, 0xf7, 0x58, 0xfd, 0x4f, 0xf0, 0xff, 0x30, 0x10, 0xbd, 0xe3, 0x6f, 0x49, 0x08, 0x23, 0xf0, 0x9f, 0x73, 0x23, 0xf4, 0x80, 0x33, 0x43, 0xea, 0x01, 0x43, 0x43, 0xf0, 0x80, 0x73, 0xe3, 0x67, 0xf2, 0xe7, 0x00, 0xbf, 0x00, 0xd8, 0x00, 0x40, 0x40, 0x53, 0x0b, 0x04, 0x0c, 0x4b, 0x0d, 0x48, 0x99, 0x42, 0x89, 0xbf, 0x0c, 0x4b, 0x01, 0x21, 0xb1, 0xfb, 0xf3, 0xf1, 0x01, 0xf1, 0x80, 0x41, 0x88, 0xbf, 0x08, 0x39, 0x02, 0x6f, 0x09, 0x4b, 0x88, 0xbf, 0x89, 0x00, 0x03, 0xea, 0x01, 0x41, 0x22, 0xf0, 0x7f, 0x63, 0x23, 0xf4, 0x70, 0x23, 0x19, 0x43, 0x01, 0x67, 0x70, 0x47, 0x00, 0xbf, 0xff, 0x11, 0x7a, 0x00, 0x00, 0xd8, 0x00, 0x40, 0x40, 0x42, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x0f, 0x2d, 0xe9, 0xf7, 0x4f, 0xd1, 0xe9, 0x05, 0x32, 0x0d, 0x68, 0x53, 0x43, 0x02, 0x6a, 0x04, 0x46, 0x42, 0xea, 0x05, 0x60, 0x88, 0x4a, 0xd0, 0x62, 0xce, 0x69, 0x16, 0xf0, 0x70, 0x0f, 0x06, 0xd0, 0x48, 0x68, 0x10, 0x63, 0x53, 0x64, 0x10, 0x6f, 0x40, 0xf4, 0x80, 0x40, 0x10, 0x67, 0x77, 0x07, 0x37, 0xd1, 0x81, 0x4a, 0x43, 0xf6, 0xff, 0x7b, 0x53, 0x6d, 0x4f, 0xf0, 0x80, 0x09, 0x43, 0xf4, 0xa0, 0x43, 0x53, 0x65, 0x02, 0x23, 0xa3, 0x60, 0x01, 0x23, 0x21, 0x63, 0x93, 0x64, 0x7b, 0x4b, 0x1b, 0x68, 0x18, 0x6b, 0x00, 0xf1, 0x14, 0x01, 0x91, 0xe8, 0x42, 0x40, 0x71, 0x43, 0x96, 0x6d, 0xd2, 0xf8, 0x54, 0xc0, 0x75, 0x04, 0x44, 0xbf, 0x00, 0x25, 0x4f, 0xf4, 0x80, 0x47, 0xc3, 0xe9, 0x03, 0x6c, 0x44, 0xbf, 0x95, 0x65, 0x97, 0x65, 0xf7, 0x04, 0x70, 0xd5, 0x1c, 0xf4, 0x80, 0x5f, 0x6d, 0xd0, 0x9f, 0x68, 0x04, 0x2f, 0x5d, 0xd1, 0x1e, 0xf0, 0x70, 0x0f, 0x5a, 0xd0, 0x47, 0x6a, 0x00, 0x2f, 0x38, 0xd1, 0x4f, 0xf4, 0xbe, 0x72, 0x69, 0x49, 0x6a, 0x48, 0xfe, 0xf7, 0xd2, 0xfc, 0xfe, 0xe7, 0x48, 0x68, 0x64, 0x4a, 0xff, 0x2d, 0x10, 0x63, 0x13, 0x64, 0x1e, 0xbf, 0x10, 0x6f, 0x40, 0xf4, 0x80, 0x40, 0x10, 0x67, 0x4a, 0x6a, 0x63, 0x48, 0x00, 0x2b, 0xb9, 0xdd, 0xcd, 0x69, 0xee, 0x07, 0x09, 0xd5, 0x12, 0xf8, 0x01, 0x5b, 0xed, 0xb2, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x05, 0x70, 0x01, 0x3b, 0xf0, 0xe7, 0xaf, 0x07, 0x09, 0xd5, 0x32, 0xf8, 0x02, 0x5b, 0xad, 0xb2, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x05, 0x80, 0x02, 0x3b, 0xe4, 0xe7, 0x6e, 0x07, 0xe2, 0xd5, 0x52, 0xf8, 0x04, 0x5b, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x05, 0x60, 0x04, 0x3b, 0xd9, 0xe7, 0x31, 0xb9, 0x40, 0xf2, 0x7d, 0x12, 0x4c, 0x49, 0x4d, 0x48, 0xfe, 0xf7, 0x98, 0xfc, 0xfe, 0xe7, 0x4f, 0xf0, 0x00, 0x08, 0x17, 0x6d, 0xff, 0xb2, 0x01, 0x97, 0x01, 0x9f, 0x47, 0x45, 0x2f, 0xd1, 0xd3, 0xf8, 0x00, 0x80, 0x4f, 0x1e, 0xb8, 0x45, 0x09, 0xd9, 0x00, 0x21, 0x19, 0x60, 0x99, 0x68, 0x04, 0x29, 0x4f, 0xf0, 0x00, 0x01, 0x08, 0xbf, 0xc3, 0xf8, 0x08, 0x90, 0x51, 0x65, 0x9f, 0x68, 0x02, 0x2f, 0x02, 0xd0, 0x9f, 0x68, 0x04, 0x2f, 0x01, 0xd1, 0xc3, 0xf8, 0x08, 0x90, 0x00, 0x25, 0x4f, 0xf4, 0x80, 0x57, 0x55, 0x65, 0x97, 0x65, 0x9f, 0x68, 0x04, 0x2f, 0x2d, 0xd1, 0x75, 0x06, 0x2b, 0xd5, 0x1c, 0xf0, 0x40, 0x0f, 0x28, 0xd0, 0x1e, 0xf0, 0x07, 0x0f, 0x25, 0xd0, 0x47, 0x6a, 0xbf, 0xb9, 0x4f, 0xf4, 0xcb, 0x72, 0x30, 0x49, 0x31, 0x48, 0xfe, 0xf7, 0x60, 0xfc, 0xfe, 0xe7, 0x31, 0x4f, 0x97, 0xf8, 0x00, 0xa0, 0x5f, 0xfa, 0x8a, 0xfa, 0xbf, 0xf3, 0x5f, 0x8f, 0x1d, 0x68, 0x47, 0x6a, 0x08, 0xf1, 0x01, 0x08, 0x07, 0xf8, 0x05, 0xa0, 0x1f, 0x68, 0x01, 0x37, 0x1f, 0x60, 0xbb, 0xe7, 0x31, 0xb9, 0x40, 0xf2, 0x97, 0x12, 0x24, 0x49, 0x24, 0x48, 0xfe, 0xf7, 0x47, 0xfc, 0xfe, 0xe7, 0x01, 0x27, 0x5f, 0x60, 0x40, 0x27, 0x97, 0x65, 0x9f, 0x68, 0x04, 0x2f, 0x1c, 0xd1, 0xb7, 0x06, 0x1a, 0xd5, 0x1c, 0xf0, 0x20, 0x0f, 0x17, 0xd0, 0x1e, 0xf0, 0x07, 0x0f, 0x14, 0xd0, 0x47, 0x6a, 0x37, 0xb9, 0x4f, 0xf4, 0xd0, 0x72, 0x18, 0x49, 0x18, 0x48, 0xfe, 0xf7, 0x2f, 0xfc, 0xfe, 0xe7, 0x31, 0xb9, 0x40, 0xf2, 0xa1, 0x12, 0x14, 0x49, 0x14, 0x48, 0xfe, 0xf7, 0x27, 0xfc, 0xfe, 0xe7, 0x00, 0x25, 0x20, 0x27, 0x5d, 0x60, 0x97, 0x65, 0x9f, 0x68, 0x04, 0x2f, 0x39, 0xd1, 0x75, 0x07, 0x37, 0xd5, 0x1c, 0xf0, 0x04, 0x0f, 0x34, 0xd0, 0x1e, 0xf0, 0x70, 0x0f, 0x31, 0xd0, 0x46, 0x6a, 0x36, 0xb9, 0x4f, 0xf4, 0xd5, 0x72, 0x08, 0x49, 0x08, 0x48, 0xfe, 0xf7, 0x0f, 0xfc, 0xfe, 0xe7, 0x91, 0xb9, 0x40, 0xf2, 0xab, 0x12, 0x04, 0x49, 0x04, 0x48, 0xfe, 0xf7, 0x07, 0xfc, 0xfe, 0xe7, 0x00, 0xd8, 0x00, 0x40, 0x7c, 0x5a, 0x0b, 0x04, 0x2e, 0x54, 0x0b, 0x04, 0xa6, 0x53, 0x0b, 0x04, 0x00, 0xd9, 0x00, 0x40, 0x00, 0xda, 0x00, 0x40, 0x00, 0x27, 0x16, 0x6d, 0x5f, 0xfa, 0x86, 0xfc, 0xbc, 0x45, 0x3a, 0xd1, 0x18, 0x68, 0x01, 0x39, 0x88, 0x42, 0x0a, 0xd9, 0x00, 0x21, 0x19, 0x60, 0x99, 0x68, 0x04, 0x29, 0x08, 0xbf, 0xc3, 0xf8, 0x08, 0x90, 0x00, 0x23, 0x53, 0x65, 0x04, 0x23, 0x93, 0x65, 0xa3, 0x68, 0x80, 0x2b, 0x07, 0xd0, 0x0b, 0xf1, 0xff, 0x33, 0x1f, 0xfa, 0x83, 0xfb, 0xbb, 0xf1, 0x00, 0x0f, 0x7f, 0xf4, 0xdf, 0xae, 0xa2, 0x68, 0x23, 0x6b, 0x80, 0x2a, 0x36, 0xd0, 0xd4, 0xe9, 0x03, 0x12, 0x2c, 0x48, 0xfe, 0xf7, 0xd1, 0xfb, 0x4f, 0xf0, 0xff, 0x35, 0x2b, 0x4a, 0x13, 0x6f, 0x23, 0xf4, 0x80, 0x43, 0x13, 0x67, 0x01, 0x23, 0xa3, 0x60, 0x00, 0x23, 0x23, 0x63, 0x3d, 0xb1, 0x4f, 0xf0, 0xff, 0x33, 0x40, 0xf2, 0xae, 0x22, 0x25, 0x49, 0x25, 0x48, 0xfe, 0xf7, 0xbd, 0xfb, 0x28, 0x46, 0x03, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x46, 0x6a, 0x36, 0xb9, 0x4f, 0xf4, 0xd7, 0x72, 0x21, 0x49, 0x21, 0x48, 0xfe, 0xf7, 0xb1, 0xfb, 0xfe, 0xe7, 0x20, 0x4e, 0x96, 0xf8, 0x00, 0xe0, 0x5f, 0xfa, 0x8e, 0xfe, 0xbf, 0xf3, 0x5f, 0x8f, 0xd3, 0xf8, 0x00, 0x80, 0x46, 0x6a, 0x01, 0x37, 0x06, 0xf8, 0x08, 0xe0, 0x1e, 0x68, 0x01, 0x36, 0x1e, 0x60, 0xa8, 0xe7, 0xa3, 0xb1, 0x9a, 0x68, 0x92, 0xb1, 0xd3, 0xe9, 0x05, 0x12, 0x51, 0x43, 0x00, 0x22, 0x0f, 0x4d, 0x14, 0x4e, 0x91, 0x42, 0x0a, 0xd0, 0x28, 0x6d, 0x10, 0xf0, 0xff, 0x0f, 0x0d, 0xd1, 0xd8, 0x69, 0x10, 0xf0, 0x70, 0x0f, 0x09, 0xd0, 0x0f, 0x48, 0xfe, 0xf7, 0x89, 0xfb, 0x08, 0x4a, 0x00, 0x25, 0x13, 0x6f, 0x23, 0xf4, 0x80, 0x43, 0x13, 0x67, 0xb2, 0xe7, 0x30, 0x78, 0xc0, 0xb2, 0xbf, 0xf3, 0x5f, 0x8f, 0x9f, 0x68, 0xb8, 0x54, 0x01, 0x32, 0xe3, 0xe7, 0xb5, 0x53, 0x0b, 0x04, 0x00, 0xd8, 0x00, 0x40, 0x68, 0x54, 0x0b, 0x04, 0xfc, 0x53, 0x0b, 0x04, 0x2e, 0x54, 0x0b, 0x04, 0xa6, 0x53, 0x0b, 0x04, 0x00, 0xda, 0x00, 0x40, 0xe4, 0x53, 0x0b, 0x04, 0x06, 0x4b, 0x18, 0x68, 0x20, 0xf0, 0x01, 0x00, 0x18, 0x60, 0x29, 0xb1, 0x5a, 0x61, 0x1a, 0x68, 0x42, 0xf0, 0x01, 0x02, 0x1a, 0x60, 0x70, 0x47, 0x1a, 0x61, 0xf8, 0xe7, 0x00, 0xd8, 0x00, 0x40, 0x03, 0x4a, 0x53, 0x6f, 0x23, 0xf4, 0x7f, 0x43, 0x19, 0x43, 0x51, 0x67, 0x70, 0x47, 0x00, 0xbf, 0x00, 0xd8, 0x00, 0x40, 0x03, 0x4a, 0x53, 0x6f, 0x23, 0xf0, 0xff, 0x03, 0x19, 0x43, 0x51, 0x67, 0x70, 0x47, 0x00, 0xbf, 0x00, 0xd8, 0x00, 0x40, 0x38, 0xb5, 0x0d, 0x46, 0x04, 0x46, 0x28, 0xb9, 0x40, 0xf2, 0xcd, 0x22, 0x03, 0x49, 0x04, 0x48, 0xfe, 0xf7, 0x3c, 0xfb, 0x20, 0x6a, 0x25, 0x62, 0x38, 0xbd, 0x00, 0xbf, 0x7e, 0x54, 0x0b, 0x04, 0x16, 0x54, 0x0b, 0x04, 0x04, 0x4b, 0x9a, 0x68, 0x19, 0xb1, 0x42, 0xf0, 0x04, 0x02, 0x9a, 0x60, 0x70, 0x47, 0x22, 0xf0, 0x04, 0x02, 0xfa, 0xe7, 0x00, 0xd8, 0x00, 0x40, 0x00, 0x28, 0x18, 0xbf, 0x4f, 0xf4, 0x00, 0x00, 0x03, 0x4a, 0x13, 0x69, 0x23, 0xf4, 0x00, 0x03, 0x03, 0x43, 0x13, 0x61, 0x70, 0x47, 0x00, 0xbf, 0x00, 0xd8, 0x00, 0x40, 0x03, 0x29, 0x70, 0xb5, 0x0c, 0x46, 0x15, 0x46, 0x1e, 0x46, 0x05, 0xd9, 0x4f, 0xf4, 0x3c, 0x72, 0x0b, 0x49, 0x0c, 0x48, 0xfe, 0xf7, 0x0e, 0xfb, 0x04, 0x9b, 0x21, 0x01, 0x01, 0xf1, 0x80, 0x40, 0x00, 0xf5, 0x58, 0x40, 0x26, 0xf0, 0x0f, 0x06, 0x25, 0xf0, 0x0f, 0x05, 0x43, 0xf0, 0x00, 0x43, 0xc0, 0xf8, 0x84, 0x60, 0xc0, 0xf8, 0x80, 0x50, 0xc0, 0xf8, 0x88, 0x30, 0x70, 0xbd, 0x00, 0xbf, 0x99, 0x54, 0x0b, 0x04, 0x16, 0x54, 0x0b, 0x04, 0xf7, 0xb5, 0x0e, 0x46, 0x05, 0x46, 0x28, 0xb9, 0x40, 0xf2, 0x06, 0x32, 0x6a, 0x49, 0x6b, 0x48, 0xfe, 0xf7, 0xec, 0xfa, 0x2e, 0xb9, 0x40, 0xf2, 0x07, 0x32, 0x67, 0x49, 0x67, 0x48, 0xfe, 0xf7, 0xe5, 0xfa, 0x69, 0x6a, 0x66, 0x4a, 0x01, 0x29, 0x66, 0x4b, 0x7c, 0xd1, 0x11, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x22, 0x31, 0x11, 0x60, 0x19, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x60, 0x49, 0x19, 0x60, 0x60, 0x49, 0x08, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x55, 0x30, 0x04, 0x31, 0x41, 0xf8, 0x04, 0x0c, 0x0c, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x08, 0x60, 0x04, 0x31, 0x08, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x20, 0x04, 0x31, 0x41, 0xf8, 0x04, 0x0c, 0x0c, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x08, 0x60, 0x12, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x4d, 0x4b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x40, 0xf2, 0x81, 0x12, 0xc3, 0xf3, 0x0b, 0x03, 0x93, 0x42, 0x14, 0xbf, 0x49, 0x48, 0x4a, 0x48, 0xff, 0xf7, 0x24, 0xfc, 0x1e, 0x20, 0xfd, 0xf7, 0x01, 0xfe, 0xff, 0xf7, 0x29, 0xfd, 0x38, 0xb1, 0x45, 0x48, 0xff, 0xf7, 0x1b, 0xfc, 0x1e, 0x20, 0xfd, 0xf7, 0xf8, 0xfd, 0xff, 0xf7, 0x20, 0xfd, 0x0a, 0x20, 0xfd, 0xf7, 0xf3, 0xfd, 0x00, 0x23, 0x01, 0x27, 0x40, 0x4c, 0xe3, 0x62, 0x40, 0x4b, 0x67, 0x60, 0xe3, 0x64, 0x33, 0x68, 0xbb, 0x42, 0x2e, 0xd0, 0x02, 0x2b, 0x4c, 0xd0, 0x4f, 0xf4, 0x67, 0x72, 0x31, 0x49, 0x3b, 0x48, 0xfe, 0xf7, 0x79, 0xfa, 0x3b, 0x4b, 0x38, 0x46, 0x00, 0x93, 0x04, 0x33, 0x01, 0x93, 0xff, 0xf7, 0x94, 0xfb, 0x00, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf4, 0x00, 0x23, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x9a, 0x13, 0x60, 0xff, 0xf7, 0x76, 0xfb, 0x4f, 0xf0, 0xff, 0x30, 0x2e, 0xe0, 0x02, 0x29, 0x8f, 0xd1, 0x11, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x33, 0x31, 0x11, 0x60, 0x19, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x29, 0x49, 0x7f, 0xe7, 0x29, 0x4b, 0x2a, 0x49, 0x23, 0x67, 0x60, 0x23, 0x23, 0x60, 0x40, 0xf2, 0x02, 0x73, 0xc4, 0xf8, 0xe0, 0x30, 0x49, 0xf2, 0x09, 0x03, 0xa3, 0x60, 0x4a, 0xf2, 0x0a, 0x03, 0xa3, 0x60, 0x24, 0x4b, 0x28, 0x46, 0xa3, 0x67, 0xff, 0xf7, 0xf8, 0xfe, 0x72, 0x68, 0x22, 0x4b, 0x9a, 0x42, 0x19, 0xd8, 0x00, 0x20, 0x4f, 0xf0, 0xff, 0x32, 0x17, 0x4b, 0x58, 0x65, 0x9a, 0x65, 0x03, 0xb0, 0xf0, 0xbd, 0x1d, 0x4b, 0x1a, 0x49, 0x23, 0x67, 0x60, 0x23, 0x23, 0x60, 0x40, 0xf2, 0x06, 0x73, 0xc4, 0xf8, 0xe0, 0x30, 0x4b, 0xf2, 0x0b, 0x03, 0xa3, 0x60, 0x18, 0x4b, 0x28, 0x46, 0x63, 0x67, 0xff, 0xf7, 0xdb, 0xfe, 0xe5, 0xe7, 0xa3, 0x6f, 0x43, 0xf4, 0x40, 0x13, 0xa3, 0x67, 0xe0, 0xe7, 0x00, 0xbf, 0xb9, 0x54, 0x0b, 0x04, 0x16, 0x54, 0x0b, 0x04, 0x48, 0xa4, 0x04, 0x40, 0x4c, 0xa4, 0x04, 0x40, 0x22, 0x22, 0x02, 0x00, 0x5c, 0xa4, 0x04, 0x40, 0x8c, 0xc4, 0x04, 0x40, 0x00, 0xd8, 0xb8, 0x05, 0x00, 0xb0, 0x71, 0x0b, 0x00, 0xd8, 0x00, 0x40, 0x0f, 0x38, 0x0f, 0x38, 0x81, 0x53, 0x0b, 0x04, 0xa4, 0xc4, 0x04, 0x40, 0x33, 0x33, 0x03, 0x00, 0x58, 0x21, 0xc0, 0xc1, 0x04, 0x00, 0x40, 0x00, 0x11, 0x12, 0x12, 0x01, 0xff, 0x35, 0x6e, 0x01, 0x01, 0x20, 0xc0, 0xc1, 0x00, 0x07, 0x20, 0x00, 0x1f, 0xb5, 0x21, 0x4b, 0x1a, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0xff, 0x32, 0x04, 0x33, 0x43, 0xf8, 0x04, 0x2c, 0x1a, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x1a, 0x4a, 0x01, 0x20, 0x1a, 0x60, 0x03, 0xf5, 0x01, 0x53, 0x18, 0x33, 0x02, 0x93, 0x04, 0x33, 0x03, 0x93, 0xff, 0xf7, 0xf8, 0xfa, 0x02, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf4, 0x00, 0x23, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x9a, 0x13, 0x60, 0xff, 0xf7, 0xda, 0xfa, 0x0f, 0x4b, 0x00, 0x93, 0x08, 0x33, 0x01, 0x93, 0x00, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf4, 0x80, 0x13, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x9a, 0x13, 0x60, 0x01, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf4, 0x80, 0x13, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x20, 0x01, 0x9a, 0x13, 0x60, 0x05, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x48, 0xa4, 0x04, 0x40, 0xff, 0xff, 0x0f, 0x00, 0x04, 0xc0, 0x03, 0x40, 0x02, 0x4b, 0x18, 0x68, 0x03, 0x7f, 0x01, 0x33, 0x03, 0x77, 0x70, 0x47, 0x7c, 0x5a, 0x0b, 0x04, 0x03, 0x7f, 0x01, 0x3b, 0x03, 0x77, 0x00, 0x20, 0x70, 0x47, 0x00, 0x00, 0x38, 0xb5, 0x34, 0x20, 0x0d, 0x46, 0xfe, 0xf7, 0x6d, 0xfa, 0x04, 0x46, 0x28, 0xb9, 0x0a, 0x49, 0x0a, 0x48, 0xfe, 0xf7, 0x8f, 0xf9, 0x20, 0x46, 0x38, 0xbd, 0x34, 0x22, 0x00, 0x21, 0xfe, 0xf7, 0xe5, 0xfa, 0x6b, 0x68, 0xa3, 0x62, 0x2b, 0x68, 0x63, 0x62, 0x2b, 0x7a, 0x84, 0xf8, 0x2c, 0x30, 0x03, 0x4b, 0x1c, 0x60, 0xef, 0xe7, 0x00, 0xbf, 0xcc, 0x54, 0x0b, 0x04, 0xe4, 0x52, 0x0b, 0x04, 0x7c, 0x5a, 0x0b, 0x04, 0x08, 0xb5, 0x01, 0x46, 0x20, 0xb9, 0x05, 0x48, 0xfe, 0xf7, 0x72, 0xf9, 0x00, 0x20, 0x08, 0xbd, 0x00, 0x22, 0x03, 0x4b, 0x1a, 0x60, 0xfe, 0xf7, 0xa1, 0xfa, 0xf7, 0xe7, 0x6f, 0x53, 0x0b, 0x04, 0x7c, 0x5a, 0x0b, 0x04, 0x08, 0x22, 0x4f, 0xf4, 0x80, 0x63, 0x70, 0xb5, 0x04, 0x46, 0xc0, 0xe9, 0x03, 0x23, 0x00, 0xf0, 0x66, 0xf9, 0x20, 0x46, 0x00, 0xf0, 0x63, 0xf9, 0x01, 0x21, 0x20, 0x46, 0x00, 0xf0, 0xf0, 0xf9, 0x02, 0x21, 0x05, 0x46, 0x20, 0x46, 0x00, 0xf0, 0xeb, 0xf9, 0x15, 0xf0, 0x20, 0x06, 0x02, 0x46, 0x03, 0xd1, 0x00, 0xf0, 0x07, 0x03, 0x01, 0x2b, 0x06, 0xd0, 0x29, 0x46, 0x2e, 0x48, 0xfe, 0xf7, 0x45, 0xf9, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0xbd, 0x20, 0x46, 0x00, 0xf0, 0xb2, 0xf9, 0x00, 0xf0, 0x0f, 0x03, 0x0d, 0x2b, 0x01, 0x46, 0x03, 0xd0, 0x28, 0x48, 0xfe, 0xf7, 0x37, 0xf9, 0xf0, 0xe7, 0x20, 0x46, 0x00, 0xf0, 0xfa, 0xf9, 0x20, 0x46, 0x00, 0xf0, 0x41, 0xfa, 0x01, 0x46, 0x08, 0xb9, 0x23, 0x48, 0xf2, 0xe7, 0xa2, 0x69, 0x23, 0x4b, 0x9a, 0x42, 0x03, 0xd9, 0x31, 0x46, 0x20, 0x46, 0x00, 0xf0, 0xaa, 0xf8, 0xa2, 0x69, 0x20, 0x4b, 0x9a, 0x42, 0x2d, 0xd9, 0x02, 0x22, 0x01, 0x21, 0x20, 0x46, 0x00, 0xf0, 0xe4, 0xf8, 0x02, 0x21, 0x20, 0x6a, 0xff, 0xf7, 0xc7, 0xfd, 0x4f, 0xf4, 0x00, 0x71, 0x20, 0x6a, 0xff, 0xf7, 0xb8, 0xfd, 0x09, 0x21, 0x20, 0x46, 0x00, 0xf0, 0x48, 0xfa, 0x08, 0x21, 0x20, 0x46, 0x00, 0xf0, 0x44, 0xfa, 0x00, 0x21, 0x20, 0x6a, 0xff, 0xf7, 0xd2, 0xfd, 0x01, 0x20, 0xff, 0xf7, 0xdb, 0xfd, 0x11, 0x4b, 0x11, 0x49, 0xe3, 0x61, 0x4f, 0xf4, 0x80, 0x03, 0x01, 0x20, 0x63, 0x61, 0xff, 0xf7, 0xd0, 0xfa, 0xff, 0xf7, 0x8a, 0xfb, 0x4f, 0xf4, 0x7a, 0x70, 0xfd, 0xf7, 0x5c, 0xfc, 0x00, 0x20, 0xae, 0xe7, 0x01, 0x21, 0x00, 0x22, 0x20, 0x46, 0x00, 0xf0, 0xb6, 0xf8, 0x00, 0x21, 0xd5, 0xe7, 0x00, 0xbf, 0xe1, 0x54, 0x0b, 0x04, 0x1c, 0x55, 0x0b, 0x04, 0x3e, 0x55, 0x0b, 0x04, 0x7f, 0x14, 0xef, 0x03, 0x7f, 0xf5, 0xe4, 0x09, 0x5b, 0x55, 0x0b, 0x04, 0x00, 0xb0, 0x71, 0x0b, 0x4f, 0xf4, 0x80, 0x63, 0x08, 0x22, 0x10, 0xb5, 0x04, 0x46, 0xc0, 0xe9, 0x03, 0x23, 0x00, 0xf0, 0xdc, 0xf8, 0x02, 0x21, 0x20, 0x46, 0x00, 0xf0, 0x69, 0xf9, 0x00, 0xf0, 0x07, 0x03, 0x03, 0x2b, 0x01, 0x46, 0x05, 0xd0, 0x22, 0x48, 0xfe, 0xf7, 0xc7, 0xf8, 0x4f, 0xf0, 0xff, 0x30, 0x10, 0xbd, 0x01, 0x21, 0x20, 0x46, 0x00, 0xf0, 0x5a, 0xf9, 0x00, 0xf0, 0x0f, 0x03, 0x0d, 0x2b, 0x01, 0x46, 0x01, 0xd0, 0x1c, 0x48, 0xef, 0xe7, 0x20, 0x46, 0x00, 0xf0, 0xc7, 0xf9, 0x01, 0x46, 0x08, 0xb9, 0x19, 0x48, 0xe8, 0xe7, 0x00, 0x21, 0x20, 0x46, 0x00, 0xf0, 0x34, 0xf8, 0x01, 0x22, 0x02, 0x21, 0x20, 0x46, 0x00, 0xf0, 0x72, 0xf8, 0x4f, 0xf4, 0xe0, 0x61, 0x20, 0x6a, 0xff, 0xf7, 0x4a, 0xfd, 0x0b, 0x21, 0x20, 0x46, 0x00, 0xf0, 0xda, 0xf9, 0x0a, 0x21, 0x20, 0x46, 0x00, 0xf0, 0xd6, 0xf9, 0x00, 0x21, 0x20, 0x6a, 0xff, 0xf7, 0x64, 0xfd, 0x01, 0x20, 0xff, 0xf7, 0x6d, 0xfd, 0x0b, 0x4b, 0x0b, 0x49, 0xe3, 0x61, 0x4f, 0xf4, 0x00, 0x03, 0x01, 0x20, 0x63, 0x61, 0xff, 0xf7, 0x62, 0xfa, 0xff, 0xf7, 0x1c, 0xfb, 0x4f, 0xf4, 0x7a, 0x70, 0xfd, 0xf7, 0xee, 0xfb, 0x00, 0x20, 0xbe, 0xe7, 0x61, 0x55, 0x0b, 0x04, 0x8d, 0x55, 0x0b, 0x04, 0xaf, 0x55, 0x0b, 0x04, 0xcc, 0x55, 0x0b, 0x04, 0x00, 0xb0, 0x71, 0x0b, 0x70, 0xb5, 0x8c, 0xb0, 0x05, 0x46, 0x24, 0x22, 0x0e, 0x46, 0x03, 0xa8, 0x00, 0x21, 0xfe, 0xf7, 0xcd, 0xf9, 0x01, 0x23, 0x40, 0x22, 0x07, 0x93, 0x08, 0x93, 0x10, 0x23, 0x0d, 0xf1, 0x07, 0x04, 0x02, 0xa9, 0x28, 0x6a, 0x04, 0x94, 0x02, 0x92, 0x09, 0x93, 0xff, 0xf7, 0x41, 0xfb, 0x38, 0xbb, 0x9d, 0xf8, 0x07, 0x10, 0x6b, 0x78, 0x01, 0xf0, 0xc3, 0x01, 0x01, 0x2b, 0x8d, 0xf8, 0x07, 0x10, 0x17, 0xd1, 0x41, 0xea, 0x46, 0x11, 0x41, 0xf0, 0x1a, 0x01, 0x8d, 0xf8, 0x07, 0x10, 0xc0, 0x23, 0x02, 0x93, 0x01, 0x23, 0xcd, 0xe9, 0x08, 0x33, 0x00, 0x23, 0x02, 0xa9, 0x28, 0x6a, 0x0b, 0x94, 0x03, 0x93, 0xff, 0xf7, 0x25, 0xfb, 0x00, 0x30, 0x18, 0xbf, 0x01, 0x20, 0x40, 0x42, 0x0c, 0xb0, 0x70, 0xbd, 0x02, 0x2b, 0xeb, 0xd1, 0x41, 0xea, 0x46, 0x11, 0x41, 0xf0, 0x11, 0x01, 0xe4, 0xe7, 0x4f, 0xf0, 0xff, 0x30, 0xf3, 0xe7, 0xf0, 0xb5, 0x8d, 0xb0, 0x04, 0x46, 0x0f, 0x46, 0x16, 0x46, 0x00, 0x21, 0x1c, 0x22, 0x05, 0xa8, 0xfe, 0xf7, 0x89, 0xf9, 0x01, 0x23, 0x07, 0x93, 0x08, 0x93, 0x10, 0x23, 0x40, 0x22, 0x09, 0x93, 0x04, 0x23, 0x0d, 0xf1, 0x07, 0x05, 0x02, 0xa9, 0x20, 0x6a, 0x02, 0x92, 0x03, 0x93, 0x04, 0x95, 0xff, 0xf7, 0xfb, 0xfa, 0x08, 0xbb, 0x9d, 0xf8, 0x07, 0x20, 0x01, 0x2f, 0x02, 0xf0, 0x1f, 0x02, 0x8d, 0xf8, 0x07, 0x20, 0x13, 0xd1, 0x42, 0xea, 0x86, 0x12, 0x8d, 0xf8, 0x07, 0x20, 0xc0, 0x23, 0x02, 0x93, 0x01, 0x23, 0x02, 0xa9, 0x20, 0x6a, 0xcd, 0xe9, 0x08, 0x33, 0x0b, 0x95, 0xff, 0xf7, 0xe4, 0xfa, 0x00, 0x30, 0x18, 0xbf, 0x01, 0x20, 0x40, 0x42, 0x0d, 0xb0, 0xf0, 0xbd, 0x63, 0x78, 0x02, 0x2b, 0xec, 0xd1, 0x42, 0xea, 0x46, 0x12, 0xe7, 0xe7, 0x4f, 0xf0, 0xff, 0x30, 0xf4, 0xe7, 0x30, 0xb5, 0x00, 0x21, 0x04, 0x46, 0x8d, 0xb0, 0x28, 0x22, 0x02, 0xa8, 0x01, 0x91, 0xfe, 0xf7, 0x4a, 0xf9, 0x63, 0x78, 0x01, 0x3b, 0x01, 0x2b, 0x08, 0xd8, 0xff, 0x23, 0x01, 0x20, 0x02, 0x93, 0x02, 0x23, 0xcd, 0xe9, 0x07, 0x03, 0x01, 0xaa, 0x0b, 0x92, 0x09, 0x93, 0x02, 0xa9, 0x20, 0x6a, 0xff, 0xf7, 0xbb, 0xfa, 0x05, 0x46, 0x20, 0xb1, 0x4f, 0xf0, 0xff, 0x34, 0x20, 0x46, 0x0d, 0xb0, 0x30, 0xbd, 0xc8, 0x20, 0xfd, 0xf7, 0x3b, 0xfb, 0xff, 0x23, 0x02, 0x93, 0x01, 0x23, 0x01, 0xaa, 0x20, 0x6a, 0x02, 0xa9, 0xcd, 0xe9, 0x07, 0x33, 0x01, 0x95, 0x0b, 0x92, 0x09, 0x93, 0xff, 0xf7, 0xa4, 0xfa, 0x04, 0x46, 0x00, 0x28, 0xe7, 0xd1, 0x4f, 0xf4, 0x7a, 0x70, 0xfd, 0xf7, 0x27, 0xfb, 0xe4, 0xe7, 0xf0, 0xb5, 0x8d, 0xb0, 0x05, 0x46, 0x0f, 0x46, 0x24, 0x22, 0x00, 0x21, 0x03, 0xa8, 0xfe, 0xf7, 0x11, 0xf9, 0x40, 0x23, 0x01, 0x24, 0x02, 0x93, 0x10, 0x23, 0x0d, 0xf1, 0x07, 0x06, 0x02, 0xa9, 0x28, 0x6a, 0x07, 0x94, 0x08, 0x94, 0x09, 0x93, 0x04, 0x96, 0xff, 0xf7, 0x85, 0xfa, 0xa8, 0xb9, 0xc0, 0x23, 0x9d, 0xf8, 0x07, 0x10, 0x28, 0x6a, 0x21, 0xf0, 0x03, 0x01, 0x39, 0x43, 0x8d, 0xf8, 0x07, 0x10, 0x02, 0xa9, 0x02, 0x93, 0xcd, 0xe9, 0x08, 0x44, 0x0b, 0x96, 0xff, 0xf7, 0x74, 0xfa, 0x00, 0x30, 0x18, 0xbf, 0x01, 0x20, 0x40, 0x42, 0x0d, 0xb0, 0xf0, 0xbd, 0x4f, 0xf0, 0xff, 0x30, 0xfa, 0xe7, 0x00, 0x21, 0x10, 0xb5, 0x8c, 0xb0, 0x04, 0x46, 0x28, 0x22, 0x02, 0xa8, 0x8d, 0xf8, 0x07, 0x10, 0xfe, 0xf7, 0xdf, 0xf8, 0x10, 0x22, 0x0d, 0xf1, 0x07, 0x03, 0x04, 0x93, 0x01, 0x23, 0x09, 0x92, 0x62, 0x78, 0x02, 0xa9, 0x01, 0x3a, 0x9a, 0x42, 0x98, 0xbf, 0x40, 0x22, 0x20, 0x6a, 0x98, 0xbf, 0xcd, 0xe9, 0x02, 0x23, 0xcd, 0xe9, 0x07, 0x33, 0x06, 0x93, 0xff, 0xf7, 0x4c, 0xfa, 0x18, 0xb9, 0x9d, 0xf8, 0x07, 0x00, 0x0c, 0xb0, 0x10, 0xbd, 0x4f, 0xf0, 0xff, 0x30, 0xfa, 0xe7, 0x30, 0xb5, 0x8f, 0xb0, 0x04, 0x46, 0x0d, 0x46, 0x28, 0x22, 0x00, 0x21, 0x04, 0xa8, 0xfe, 0xf7, 0xb9, 0xf8, 0x01, 0xab, 0x06, 0x93, 0x01, 0x23, 0xcd, 0xe9, 0x08, 0x33, 0x63, 0x78, 0x01, 0x2b, 0x0a, 0xd0, 0x02, 0x2b, 0x10, 0xd0, 0x04, 0xa9, 0x20, 0x6a, 0xff, 0xf7, 0x2d, 0xfa, 0x88, 0xb9, 0xbd, 0xf8, 0x04, 0x00, 0x0f, 0xb0, 0x30, 0xbd, 0x40, 0x23, 0x04, 0x93, 0x10, 0x23, 0x0b, 0x93, 0x02, 0x23, 0x05, 0x95, 0x0a, 0x93, 0xee, 0xe7, 0x40, 0x22, 0x04, 0x92, 0x20, 0x22, 0x05, 0x95, 0x0b, 0x92, 0xf7, 0xe7, 0x4f, 0xf0, 0xff, 0x30, 0xec, 0xe7, 0x00, 0x21, 0x30, 0xb5, 0x8d, 0xb0, 0x05, 0x46, 0x28, 0x22, 0x02, 0xa8, 0xcd, 0xe9, 0x00, 0x11, 0xfe, 0xf7, 0x8b, 0xf8, 0x01, 0x23, 0x02, 0x22, 0x06, 0x93, 0xcd, 0xe9, 0x07, 0x32, 0x6b, 0x78, 0x20, 0x22, 0x01, 0x3b, 0x01, 0x2b, 0x98, 0xbf, 0x40, 0x23, 0x4f, 0xf0, 0x00, 0x04, 0x09, 0x92, 0x98, 0xbf, 0x02, 0x93, 0x0d, 0xeb, 0x04, 0x03, 0x02, 0xa9, 0x28, 0x6a, 0xcd, 0xe9, 0x03, 0x43, 0xff, 0xf7, 0xf5, 0xf9, 0x20, 0xb9, 0x02, 0x34, 0x08, 0x2c, 0xf3, 0xd1, 0x0d, 0xb0, 0x30, 0xbd, 0x4f, 0xf0, 0xff, 0x30, 0xfa, 0xe7, 0x00, 0x21, 0x10, 0xb5, 0x8c, 0xb0, 0x04, 0x46, 0x24, 0x22, 0x03, 0xa8, 0xcd, 0xe9, 0x00, 0x11, 0xfe, 0xf7, 0x60, 0xf8, 0x01, 0x23, 0x04, 0x22, 0x06, 0x93, 0xcd, 0xe9, 0x07, 0x23, 0x20, 0x22, 0x40, 0x23, 0x02, 0xa9, 0x20, 0x6a, 0x09, 0x92, 0x02, 0x93, 0xcd, 0xf8, 0x10, 0xd0, 0xff, 0xf7, 0xd3, 0xf9, 0x00, 0x30, 0x18, 0xbf, 0x01, 0x20, 0x40, 0x42, 0x0c, 0xb0, 0x10, 0xbd, 0x00, 0x21, 0x10, 0xb5, 0x04, 0x46, 0x8c, 0xb0, 0x28, 0x22, 0x02, 0xa8, 0xad, 0xf8, 0x06, 0x10, 0xfe, 0xf7, 0x41, 0xf8, 0x01, 0x22, 0x0d, 0xf1, 0x06, 0x03, 0x04, 0x93, 0x63, 0x78, 0x07, 0x92, 0x01, 0x3b, 0x93, 0x42, 0x06, 0xd8, 0x40, 0x23, 0x02, 0x93, 0x10, 0x23, 0x09, 0x93, 0x02, 0x23, 0x08, 0x92, 0x03, 0x93, 0x02, 0xa9, 0x20, 0x6a, 0xff, 0xf7, 0xaf, 0xf9, 0x28, 0xb9, 0xbd, 0xf8, 0x06, 0x00, 0xc0, 0xf3, 0xc0, 0x10, 0x0c, 0xb0, 0x10, 0xbd, 0x4f, 0xf0, 0xff, 0x30, 0xfa, 0xe7, 0x00, 0x00, 0xa1, 0xf1, 0x08, 0x02, 0x10, 0xb4, 0x0b, 0x46, 0x03, 0x2a, 0x1e, 0xd8, 0xdf, 0xe8, 0x02, 0xf0, 0x18, 0x25, 0x28, 0x02, 0x13, 0x4a, 0x01, 0x21, 0x13, 0x0e, 0xc3, 0x70, 0x12, 0x4b, 0x00, 0x6a, 0x1c, 0x68, 0x44, 0xf0, 0x20, 0x04, 0x1c, 0x60, 0x1c, 0x68, 0x44, 0xf0, 0x40, 0x04, 0x1c, 0x60, 0x1c, 0x68, 0x44, 0xf4, 0x80, 0x34, 0x1c, 0x60, 0x5d, 0xf8, 0x04, 0x4b, 0xff, 0xf7, 0x3c, 0xbb, 0x00, 0x22, 0x13, 0x0e, 0x83, 0x70, 0x00, 0x21, 0xe8, 0xe7, 0x4f, 0xf4, 0xb0, 0x72, 0x07, 0x49, 0x07, 0x48, 0x5d, 0xf8, 0x04, 0x4b, 0xfd, 0xf7, 0x99, 0xbe, 0x4f, 0xf0, 0x00, 0x42, 0xda, 0xe7, 0x04, 0x4a, 0xee, 0xe7, 0x04, 0x00, 0x44, 0xa0, 0x00, 0xd8, 0x00, 0x40, 0xd2, 0x55, 0x0b, 0x04, 0x15, 0x57, 0x0b, 0x04, 0x04, 0x00, 0x44, 0x20, 0x73, 0xb5, 0x04, 0x46, 0x13, 0x78, 0x0e, 0x46, 0x43, 0x70, 0x52, 0x68, 0x01, 0x2b, 0x21, 0x62, 0x82, 0x61, 0x14, 0xd0, 0x02, 0x2b, 0x16, 0xd0, 0x4f, 0xf0, 0xff, 0x35, 0x63, 0x78, 0x01, 0x2b, 0x14, 0xd1, 0x00, 0x21, 0x0c, 0x4b, 0x00, 0x91, 0x4f, 0xf0, 0x00, 0x62, 0x30, 0x46, 0xff, 0xf7, 0x57, 0xfb, 0x0a, 0x20, 0xfd, 0xf7, 0xd6, 0xf9, 0x28, 0x46, 0x02, 0xb0, 0x70, 0xbd, 0xff, 0xf7, 0x03, 0xfd, 0x05, 0x46, 0xea, 0xe7, 0xff, 0xf7, 0x89, 0xfd, 0xfa, 0xe7, 0x02, 0x2b, 0xf0, 0xd1, 0x00, 0x21, 0x02, 0x4b, 0x00, 0x91, 0xe7, 0xe7, 0xff, 0xff, 0x3f, 0x08, 0xff, 0xff, 0x7f, 0x08, 0x08, 0xb5, 0x24, 0x22, 0x00, 0x21, 0xfd, 0xf7, 0xb1, 0xff, 0x00, 0x20, 0x08, 0xbd, 0x00, 0x00, 0x38, 0xb5, 0x49, 0x4c, 0x49, 0x4d, 0x22, 0x68, 0x21, 0x46, 0x28, 0x46, 0xfd, 0xf7, 0x4a, 0xfe, 0x62, 0x68, 0x47, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x45, 0xfe, 0xa2, 0x68, 0x45, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x40, 0xfe, 0xe2, 0x68, 0x44, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x3b, 0xfe, 0x22, 0x69, 0x42, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x36, 0xfe, 0x62, 0x69, 0x41, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x31, 0xfe, 0xe2, 0x6a, 0x3f, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x2c, 0xfe, 0x22, 0x6b, 0x3e, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x27, 0xfe, 0x22, 0x6c, 0x3c, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x22, 0xfe, 0x62, 0x6c, 0x3b, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x1d, 0xfe, 0xe2, 0x6c, 0x39, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x18, 0xfe, 0x62, 0x6d, 0x38, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x13, 0xfe, 0xa2, 0x6d, 0x36, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x0e, 0xfe, 0x22, 0x6e, 0x35, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x09, 0xfe, 0xe2, 0x6e, 0x33, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x04, 0xfe, 0x22, 0x6f, 0x32, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xff, 0xfd, 0x62, 0x6f, 0x30, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xfa, 0xfd, 0xa2, 0x6f, 0x2f, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xf5, 0xfd, 0xe2, 0x6f, 0x2d, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xf0, 0xfd, 0xd4, 0xf8, 0x80, 0x20, 0x2b, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xea, 0xfd, 0xd4, 0xf8, 0x84, 0x20, 0x29, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xe4, 0xfd, 0xd4, 0xf8, 0x88, 0x20, 0x27, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xde, 0xfd, 0xd4, 0xf8, 0xc0, 0x20, 0x25, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xd8, 0xfd, 0xd4, 0xf8, 0xe0, 0x20, 0x23, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xd2, 0xfd, 0xd4, 0xf8, 0xf0, 0x20, 0x21, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xcc, 0xfd, 0xd4, 0xf8, 0x00, 0x21, 0x1f, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xc6, 0xfd, 0xd4, 0xf8, 0x00, 0x22, 0x28, 0x46, 0xbd, 0xe8, 0x38, 0x40, 0x1c, 0x49, 0xfd, 0xf7, 0xbe, 0xbd, 0x00, 0xd8, 0x00, 0x40, 0xe5, 0x55, 0x0b, 0x04, 0x04, 0xd8, 0x00, 0x40, 0x08, 0xd8, 0x00, 0x40, 0x0c, 0xd8, 0x00, 0x40, 0x10, 0xd8, 0x00, 0x40, 0x14, 0xd8, 0x00, 0x40, 0x2c, 0xd8, 0x00, 0x40, 0x30, 0xd8, 0x00, 0x40, 0x40, 0xd8, 0x00, 0x40, 0x44, 0xd8, 0x00, 0x40, 0x4c, 0xd8, 0x00, 0x40, 0x54, 0xd8, 0x00, 0x40, 0x58, 0xd8, 0x00, 0x40, 0x60, 0xd8, 0x00, 0x40, 0x6c, 0xd8, 0x00, 0x40, 0x70, 0xd8, 0x00, 0x40, 0x74, 0xd8, 0x00, 0x40, 0x78, 0xd8, 0x00, 0x40, 0x7c, 0xd8, 0x00, 0x40, 0x80, 0xd8, 0x00, 0x40, 0x84, 0xd8, 0x00, 0x40, 0x88, 0xd8, 0x00, 0x40, 0xc0, 0xd8, 0x00, 0x40, 0xe0, 0xd8, 0x00, 0x40, 0xf0, 0xd8, 0x00, 0x40, 0x00, 0xd9, 0x00, 0x40, 0x00, 0xda, 0x00, 0x40, 0x01, 0x22, 0x70, 0xb5, 0x26, 0x4e, 0x86, 0xb0, 0x90, 0x42, 0x05, 0x46, 0x04, 0x96, 0x8d, 0xf8, 0x14, 0x20, 0x06, 0xd0, 0x02, 0x28, 0x10, 0xd0, 0x22, 0x48, 0xfd, 0xf7, 0x77, 0xfd, 0x06, 0xb0, 0x70, 0xbd, 0x21, 0x48, 0xfd, 0xf7, 0x72, 0xfd, 0x03, 0xa9, 0x00, 0x20, 0x03, 0x95, 0xff, 0xf7, 0xd3, 0xfb, 0x04, 0x46, 0x18, 0xb9, 0x1d, 0x48, 0xef, 0xe7, 0x1d, 0x48, 0xf2, 0xe7, 0x03, 0xa9, 0xff, 0xf7, 0x6e, 0xfa, 0x38, 0xb1, 0x1b, 0x48, 0xfd, 0xf7, 0x60, 0xfd, 0x20, 0x46, 0xff, 0xf7, 0xe5, 0xfb, 0x19, 0x48, 0xe1, 0xe7, 0xff, 0xf7, 0xb1, 0xfb, 0x04, 0x46, 0x30, 0xb9, 0x17, 0x48, 0xfd, 0xf7, 0x54, 0xfd, 0x20, 0x46, 0xff, 0xf7, 0x5f, 0xfb, 0xef, 0xe7, 0xcd, 0xe9, 0x01, 0x56, 0x13, 0x4b, 0x14, 0x4d, 0xd9, 0x6f, 0x14, 0x48, 0xfd, 0xf7, 0x48, 0xfd, 0x01, 0xaa, 0x21, 0x46, 0x28, 0x46, 0xff, 0xf7, 0xb9, 0xfe, 0x18, 0xb1, 0x20, 0x46, 0xff, 0xf7, 0x9f, 0xfb, 0xe9, 0xe7, 0xd5, 0xe9, 0x06, 0x21, 0x0d, 0x48, 0xfd, 0xf7, 0x39, 0xfd, 0x0d, 0x48, 0xbd, 0xe7, 0x00, 0xbf, 0x00, 0xe0, 0x70, 0x72, 0x1c, 0x56, 0x0b, 0x04, 0xf4, 0x55, 0x0b, 0x04, 0x4c, 0x56, 0x0b, 0x04, 0x08, 0x56, 0x0b, 0x04, 0x69, 0x56, 0x0b, 0x04, 0xf4, 0x56, 0x0b, 0x04, 0x8a, 0x56, 0x0b, 0x04, 0x00, 0xd8, 0x00, 0x40, 0x80, 0x5a, 0x0b, 0x04, 0xa5, 0x56, 0x0b, 0x04, 0xb9, 0x56, 0x0b, 0x04, 0xda, 0x56, 0x0b, 0x04, 0x30, 0xb5, 0x05, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x24, 0x94, 0x40, 0x01, 0x3c, 0x8c, 0x40, 0x25, 0xea, 0x04, 0x04, 0x8b, 0x40, 0x23, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x03, 0x60, 0x30, 0xbd, 0x70, 0x47, 0x00, 0x00, 0x10, 0xb5, 0x04, 0x46, 0x00, 0x23, 0x01, 0x22, 0x03, 0x21, 0x2b, 0x48, 0xff, 0xf7, 0xe6, 0xff, 0x2a, 0x4b, 0x00, 0x2c, 0x44, 0xd0, 0x01, 0x24, 0x1c, 0x60, 0x00, 0x23, 0x22, 0x46, 0x19, 0x46, 0x27, 0x48, 0xff, 0xf7, 0xdb, 0xff, 0x23, 0x46, 0x21, 0x46, 0x25, 0x48, 0xff, 0xf7, 0xd6, 0xff, 0x24, 0x4a, 0x13, 0x68, 0x1b, 0x09, 0x13, 0xf0, 0x0e, 0x0f, 0xfa, 0xd0, 0x01, 0x23, 0x00, 0x21, 0x1a, 0x46, 0x21, 0x48, 0xff, 0xf7, 0xca, 0xff, 0x00, 0x23, 0x01, 0x22, 0x19, 0x46, 0x1e, 0x48, 0xff, 0xf7, 0xc4, 0xff, 0x00, 0x23, 0x06, 0x22, 0x19, 0x46, 0x1c, 0x48, 0xff, 0xf7, 0xbe, 0xff, 0x00, 0x23, 0x01, 0x22, 0x06, 0x21, 0x19, 0x48, 0xff, 0xf7, 0xb8, 0xff, 0x00, 0x23, 0x01, 0x22, 0x0d, 0x21, 0x16, 0x48, 0xff, 0xf7, 0xb2, 0xff, 0x01, 0x23, 0x00, 0x21, 0x1a, 0x46, 0x14, 0x48, 0xff, 0xf7, 0xac, 0xff, 0x01, 0x23, 0x12, 0x48, 0x1a, 0x46, 0x19, 0x46, 0xff, 0xf7, 0xa6, 0xff, 0xbd, 0xe8, 0x10, 0x40, 0x01, 0x23, 0x02, 0x21, 0x1a, 0x46, 0x0d, 0x48, 0xff, 0xf7, 0x9e, 0xbf, 0x02, 0x22, 0x1a, 0x60, 0x01, 0x23, 0x21, 0x46, 0x1a, 0x46, 0x05, 0x48, 0xff, 0xf7, 0x96, 0xff, 0x01, 0x22, 0x23, 0x46, 0x11, 0x46, 0xb8, 0xe7, 0x2c, 0x81, 0x03, 0x40, 0xa4, 0x5a, 0x0b, 0x04, 0x24, 0x81, 0x03, 0x40, 0x28, 0x81, 0x03, 0x40, 0x00, 0x81, 0x03, 0x40, 0x44, 0xa0, 0x03, 0x40, 0x80, 0x15, 0x05, 0x40, 0x2d, 0xe9, 0xf8, 0x43, 0x4f, 0xf0, 0x40, 0x62, 0x00, 0x23, 0x40, 0x08, 0x1b, 0x4c, 0x00, 0x05, 0x1b, 0x4e, 0x8b, 0x42, 0x1e, 0x44, 0x0a, 0xd1, 0x4f, 0xf0, 0x40, 0x65, 0x18, 0x4c, 0x19, 0x4a, 0xa6, 0x42, 0x0a, 0xd1, 0x18, 0x48, 0xfd, 0xf7, 0x8b, 0xfc, 0x00, 0x20, 0x16, 0xe0, 0x1d, 0x19, 0x16, 0x60, 0x01, 0x33, 0x85, 0x50, 0x04, 0x32, 0xea, 0xe7, 0x47, 0x59, 0x04, 0xeb, 0x02, 0x08, 0xb8, 0x45, 0x00, 0xeb, 0x05, 0x09, 0x0b, 0xd0, 0x10, 0x48, 0xfd, 0xf7, 0x79, 0xfc, 0x4b, 0x46, 0x42, 0x46, 0x39, 0x46, 0x0e, 0x48, 0xfd, 0xf7, 0x73, 0xfc, 0x01, 0x20, 0xbd, 0xe8, 0xf8, 0x83, 0x2b, 0x46, 0x53, 0xf8, 0x04, 0x7b, 0xa7, 0x42, 0x05, 0xd0, 0x08, 0x48, 0xfd, 0xf7, 0x68, 0xfc, 0x2b, 0x46, 0x22, 0x46, 0xed, 0xe7, 0x01, 0x34, 0x1d, 0x46, 0xd1, 0xe7, 0x98, 0xba, 0xdc, 0xfe, 0x67, 0x45, 0x23, 0x01, 0x31, 0x75, 0xb9, 0xfd, 0x63, 0x57, 0x0b, 0x04, 0x33, 0x57, 0x0b, 0x04, 0x4b, 0x57, 0x0b, 0x04, 0x4f, 0xf4, 0x7a, 0x73, 0x48, 0x43, 0xb0, 0xfb, 0xf3, 0xf2, 0x03, 0xfb, 0x12, 0x00, 0x00, 0x28, 0x0c, 0xbf, 0x10, 0x46, 0x50, 0x1c, 0x70, 0x47, 0xf8, 0xb5, 0x01, 0x23, 0x04, 0x46, 0x1a, 0x46, 0x15, 0x21, 0xd6, 0x48, 0xff, 0xf7, 0x26, 0xff, 0x01, 0x23, 0x15, 0x21, 0x1a, 0x46, 0xd4, 0x48, 0xff, 0xf7, 0x20, 0xff, 0x00, 0x23, 0x01, 0x22, 0x0f, 0x21, 0xd2, 0x48, 0xff, 0xf7, 0x1a, 0xff, 0x01, 0x23, 0x10, 0x21, 0x1a, 0x46, 0xcf, 0x48, 0xff, 0xf7, 0x14, 0xff, 0x00, 0x23, 0x01, 0x22, 0x1d, 0x21, 0xcc, 0x48, 0xff, 0xf7, 0x0e, 0xff, 0x08, 0x23, 0x06, 0x22, 0x00, 0x21, 0xca, 0x48, 0xff, 0xf7, 0x08, 0xff, 0x08, 0x23, 0x06, 0x22, 0x07, 0x21, 0xc7, 0x48, 0xff, 0xf7, 0x02, 0xff, 0x08, 0x23, 0x06, 0x22, 0x0e, 0x21, 0xc4, 0x48, 0xff, 0xf7, 0xfc, 0xfe, 0x01, 0x23, 0x06, 0x21, 0x1a, 0x46, 0xc1, 0x48, 0xff, 0xf7, 0xf6, 0xfe, 0x01, 0x23, 0x0d, 0x21, 0x1a, 0x46, 0xbe, 0x48, 0xff, 0xf7, 0xf0, 0xfe, 0x01, 0x23, 0x1e, 0x21, 0x1a, 0x46, 0xbb, 0x48, 0xff, 0xf7, 0xea, 0xfe, 0x01, 0x23, 0x1f, 0x21, 0x1a, 0x46, 0xb9, 0x48, 0xff, 0xf7, 0xe4, 0xfe, 0x01, 0x23, 0x07, 0x21, 0x1a, 0x46, 0xb6, 0x48, 0xff, 0xf7, 0xde, 0xfe, 0x07, 0x22, 0x65, 0x6c, 0xb4, 0x4b, 0x15, 0xf0, 0x01, 0x05, 0x1a, 0x60, 0x40, 0xf0, 0xff, 0x81, 0x2b, 0x46, 0x01, 0x22, 0x15, 0x21, 0xb1, 0x48, 0xff, 0xf7, 0xd0, 0xfe, 0x01, 0x23, 0x0f, 0x21, 0x1a, 0x46, 0xaf, 0x48, 0xff, 0xf7, 0xca, 0xfe, 0x2b, 0x46, 0x01, 0x22, 0x0f, 0x21, 0xad, 0x48, 0xff, 0xf7, 0xc4, 0xfe, 0x23, 0x23, 0x06, 0x22, 0x01, 0x21, 0xab, 0x48, 0xff, 0xf7, 0xbe, 0xfe, 0x28, 0x23, 0x06, 0x22, 0x09, 0x21, 0xa8, 0x48, 0xff, 0xf7, 0xb8, 0xfe, 0x17, 0x23, 0x06, 0x22, 0x11, 0x21, 0xa5, 0x48, 0xff, 0xf7, 0xb2, 0xfe, 0x1b, 0x23, 0x06, 0x22, 0x19, 0x21, 0xa2, 0x48, 0xff, 0xf7, 0xac, 0xfe, 0x23, 0x23, 0x06, 0x22, 0x01, 0x21, 0xa0, 0x48, 0xff, 0xf7, 0xa6, 0xfe, 0x28, 0x23, 0x06, 0x22, 0x09, 0x21, 0x9d, 0x48, 0xff, 0xf7, 0xa0, 0xfe, 0x23, 0x23, 0x06, 0x22, 0x11, 0x21, 0x9a, 0x48, 0xff, 0xf7, 0x9a, 0xfe, 0x06, 0x22, 0x28, 0x23, 0x19, 0x21, 0x97, 0x48, 0xff, 0xf7, 0x94, 0xfe, 0x63, 0x68, 0x96, 0x49, 0x0b, 0x2b, 0x0c, 0xbf, 0x4f, 0xf4, 0x0b, 0x62, 0x4f, 0xf4, 0xfc, 0x62, 0x93, 0x4b, 0x0a, 0x60, 0x1a, 0x60, 0x23, 0x68, 0xc8, 0x2b, 0x00, 0xf2, 0xbd, 0x81, 0x17, 0x23, 0x08, 0x22, 0x00, 0x21, 0x8f, 0x48, 0xff, 0xf7, 0x7f, 0xfe, 0x63, 0x68, 0x0b, 0x2b, 0x8e, 0x4b, 0x40, 0xf0, 0xd9, 0x81, 0x8d, 0x4a, 0x1a, 0x60, 0x00, 0x21, 0x8d, 0x4b, 0x04, 0x22, 0x19, 0x60, 0x8c, 0x48, 0x05, 0x23, 0x25, 0x68, 0xff, 0xf7, 0x6f, 0xfe, 0x8b, 0x4b, 0xad, 0x08, 0x1b, 0x68, 0x13, 0xf0, 0x80, 0x5f, 0x4f, 0xf4, 0x7a, 0x73, 0x40, 0xf0, 0xfd, 0x81, 0x40, 0xf6, 0x3c, 0x72, 0x6a, 0x43, 0x00, 0x21, 0xb2, 0xfb, 0xf3, 0xf3, 0x83, 0x48, 0x12, 0x22, 0xff, 0xf7, 0x5c, 0xfe, 0x29, 0x46, 0x3c, 0x20, 0xff, 0xf7, 0x1e, 0xff, 0x63, 0x68, 0x06, 0x46, 0x0b, 0x2b, 0x02, 0xd0, 0x5a, 0x20, 0xff, 0xf7, 0x17, 0xff, 0x43, 0x1c, 0x07, 0x22, 0x14, 0x21, 0x7a, 0x48, 0xff, 0xf7, 0x4b, 0xfe, 0x33, 0x46, 0x07, 0x22, 0x00, 0x21, 0x78, 0x48, 0xff, 0xf7, 0x45, 0xfe, 0x29, 0x46, 0x14, 0x20, 0xff, 0xf7, 0x07, 0xff, 0x07, 0x22, 0x03, 0x46, 0x08, 0x21, 0x73, 0x48, 0xff, 0xf7, 0x3b, 0xfe, 0x29, 0x46, 0x1e, 0x20, 0xff, 0xf7, 0xfd, 0xfe, 0x07, 0x22, 0x03, 0x46, 0x10, 0x21, 0x6e, 0x48, 0xff, 0xf7, 0x31, 0xfe, 0x33, 0x46, 0x07, 0x22, 0x18, 0x21, 0x6b, 0x48, 0xff, 0xf7, 0x2b, 0xfe, 0x29, 0x46, 0x6a, 0x48, 0xff, 0xf7, 0xed, 0xfe, 0x10, 0x22, 0x03, 0x46, 0x11, 0x46, 0x06, 0x46, 0x68, 0x48, 0xff, 0xf7, 0x20, 0xfe, 0x29, 0x46, 0x42, 0xf2, 0x10, 0x70, 0xff, 0xf7, 0xe1, 0xfe, 0x10, 0x22, 0x03, 0x46, 0x00, 0x21, 0x62, 0x48, 0xff, 0xf7, 0x15, 0xfe, 0x29, 0x46, 0x64, 0x20, 0xff, 0xf7, 0xd7, 0xfe, 0x07, 0x22, 0x03, 0x46, 0x07, 0x46, 0x18, 0x21, 0x5e, 0x48, 0xff, 0xf7, 0x0a, 0xfe, 0x63, 0x68, 0x0b, 0x2b, 0x40, 0xf0, 0x6e, 0x81, 0x29, 0x46, 0x46, 0x20, 0xff, 0xf7, 0xc8, 0xfe, 0x03, 0x46, 0x07, 0x22, 0x10, 0x21, 0x57, 0x48, 0xff, 0xf7, 0xfc, 0xfd, 0x01, 0x23, 0x07, 0x22, 0x08, 0x21, 0x54, 0x48, 0xff, 0xf7, 0xf6, 0xfd, 0x3b, 0x46, 0x07, 0x22, 0x00, 0x21, 0x51, 0x48, 0xff, 0xf7, 0xf0, 0xfd, 0x10, 0x22, 0x33, 0x46, 0x11, 0x46, 0x4f, 0x48, 0xff, 0xf7, 0xea, 0xfd, 0x33, 0x46, 0x10, 0x22, 0x00, 0x21, 0x4c, 0x48, 0xff, 0xf7, 0xe4, 0xfd, 0x29, 0x46, 0x4f, 0xf4, 0x7a, 0x70, 0xff, 0xf7, 0xa5, 0xfe, 0x63, 0x68, 0x06, 0x46, 0x0a, 0x2b, 0x05, 0xd1, 0x10, 0x22, 0x03, 0x46, 0x11, 0x46, 0x45, 0x48, 0xff, 0xf7, 0xd5, 0xfd, 0x63, 0x68, 0x0b, 0x2b, 0x05, 0xd1, 0x33, 0x46, 0x10, 0x22, 0x00, 0x21, 0x41, 0x48, 0xff, 0xf7, 0xcc, 0xfd, 0x10, 0x22, 0x33, 0x46, 0x11, 0x46, 0x3f, 0x48, 0xff, 0xf7, 0xc6, 0xfd, 0x29, 0x46, 0x4f, 0xf4, 0xfa, 0x70, 0xff, 0xf7, 0x87, 0xfe, 0x10, 0x22, 0x03, 0x46, 0x00, 0x21, 0x39, 0x48, 0xff, 0xf7, 0xbb, 0xfd, 0x29, 0x46, 0x69, 0x20, 0xff, 0xf7, 0x7d, 0xfe, 0x07, 0x22, 0x03, 0x46, 0x00, 0x21, 0x35, 0x48, 0xff, 0xf7, 0xb1, 0xfd, 0x23, 0x68, 0xc8, 0x2b, 0x40, 0xf2, 0x34, 0x81, 0xb3, 0xf5, 0xa7, 0x7f, 0xc0, 0xf0, 0x34, 0x81, 0xb3, 0xf5, 0xc8, 0x7f, 0x40, 0xf2, 0x34, 0x81, 0x40, 0xf2, 0x15, 0x22, 0x93, 0x42, 0x00, 0xf2, 0x0a, 0x81, 0x63, 0x68, 0x0a, 0x26, 0x0b, 0x2b, 0x0c, 0xbf, 0x04, 0x25, 0x00, 0x25, 0x14, 0x23, 0x07, 0x22, 0x18, 0x21, 0x27, 0x48, 0xff, 0xf7, 0x94, 0xfd, 0x33, 0x46, 0x07, 0x22, 0x08, 0x21, 0x24, 0x48, 0xff, 0xf7, 0x8e, 0xfd, 0x2b, 0x46, 0x03, 0x22, 0x00, 0x21, 0x14, 0x48, 0xff, 0xf7, 0x88, 0xfd, 0x40, 0xf6, 0xff, 0x73, 0x0c, 0x22, 0x00, 0x21, 0x1e, 0x48, 0xff, 0xf7, 0x81, 0xfd, 0x01, 0x23, 0x00, 0x21, 0x1a, 0x46, 0x38, 0xe0, 0x00, 0xbf, 0x0c, 0xc0, 0x03, 0x40, 0x04, 0xc0, 0x03, 0x40, 0x20, 0xa0, 0x03, 0x40, 0x44, 0xa0, 0x03, 0x40, 0x40, 0xa0, 0x03, 0x40, 0x00, 0x80, 0x03, 0x40, 0xe0, 0xc4, 0x04, 0x40, 0xa4, 0xc4, 0x04, 0x40, 0xa8, 0xc4, 0x04, 0x40, 0x50, 0xa0, 0x03, 0x40, 0x4c, 0xa0, 0x03, 0x40, 0x04, 0x80, 0x03, 0x40, 0x08, 0x80, 0x03, 0x40, 0x0c, 0x81, 0x03, 0x40, 0x18, 0x81, 0x03, 0x40, 0xcf, 0xb4, 0x95, 0xad, 0x1c, 0x81, 0x03, 0x40, 0x30, 0x81, 0x03, 0x40, 0x34, 0x81, 0x03, 0x40, 0x38, 0x81, 0x03, 0x40, 0xf0, 0x49, 0x02, 0x00, 0x3c, 0x81, 0x03, 0x40, 0x40, 0x81, 0x03, 0x40, 0x44, 0x81, 0x03, 0x40, 0x48, 0x81, 0x03, 0x40, 0x4c, 0x81, 0x03, 0x40, 0x50, 0x81, 0x03, 0x40, 0x80, 0x81, 0x03, 0x40, 0x6e, 0x48, 0xff, 0xf7, 0x41, 0xfd, 0x07, 0x23, 0x03, 0x22, 0x01, 0x21, 0x6c, 0x48, 0xff, 0xf7, 0x3b, 0xfd, 0x00, 0x23, 0x01, 0x22, 0x19, 0x46, 0x69, 0x48, 0xff, 0xf7, 0x35, 0xfd, 0x07, 0x22, 0x40, 0x23, 0x08, 0x21, 0x67, 0x48, 0xff, 0xf7, 0x2f, 0xfd, 0x63, 0x68, 0x03, 0x21, 0x0b, 0x2b, 0x15, 0xbf, 0x01, 0x23, 0x00, 0x23, 0x1a, 0x46, 0x01, 0x22, 0x62, 0x48, 0xff, 0xf7, 0x24, 0xfd, 0x63, 0x68, 0x01, 0x22, 0x0b, 0x2b, 0x0c, 0xbf, 0x01, 0x23, 0x00, 0x23, 0x02, 0x21, 0x5d, 0x48, 0xff, 0xf7, 0x1a, 0xfd, 0xe3, 0x6d, 0x02, 0x22, 0xc3, 0xf3, 0x81, 0x23, 0x01, 0x21, 0x5a, 0x48, 0xff, 0xf7, 0x12, 0xfd, 0x40, 0x23, 0x07, 0x22, 0x18, 0x21, 0x58, 0x48, 0xff, 0xf7, 0x0c, 0xfd, 0x00, 0x23, 0x04, 0x22, 0x14, 0x21, 0x55, 0x48, 0xff, 0xf7, 0x06, 0xfd, 0x0f, 0x23, 0x04, 0x22, 0x10, 0x21, 0x52, 0x48, 0xff, 0xf7, 0x00, 0xfd, 0x1c, 0x23, 0x06, 0x22, 0x08, 0x21, 0x4f, 0x48, 0xff, 0xf7, 0xfa, 0xfc, 0x12, 0x23, 0x06, 0x22, 0x00, 0x21, 0x4c, 0x48, 0xff, 0xf7, 0xf4, 0xfc, 0x01, 0x22, 0xe3, 0x6d, 0x11, 0x46, 0xc3, 0xf3, 0x40, 0x23, 0x49, 0x48, 0xff, 0xf7, 0xec, 0xfc, 0x63, 0x68, 0x0b, 0x2b, 0x07, 0xd1, 0xe3, 0x6d, 0x01, 0x22, 0xc3, 0xf3, 0x00, 0x23, 0x00, 0x21, 0x43, 0x48, 0xff, 0xf7, 0xe1, 0xfc, 0x4f, 0xf0, 0x07, 0x12, 0x42, 0x4b, 0x1a, 0x60, 0x00, 0x22, 0x5a, 0x60, 0x4f, 0xf0, 0xff, 0x32, 0x9a, 0x60, 0xf8, 0xbd, 0x01, 0x23, 0x15, 0x21, 0x1a, 0x46, 0x3d, 0x48, 0xff, 0xf7, 0xd1, 0xfc, 0x00, 0x23, 0x01, 0x22, 0x0f, 0x21, 0x3b, 0x48, 0xff, 0xf7, 0xcb, 0xfc, 0x01, 0x23, 0x1a, 0x46, 0xff, 0xe5, 0xb3, 0xf5, 0xa7, 0x7f, 0x01, 0xd2, 0x16, 0x23, 0x3e, 0xe6, 0xb3, 0xf5, 0xc8, 0x7f, 0x01, 0xd8, 0x15, 0x23, 0x39, 0xe6, 0x40, 0xf2, 0x15, 0x22, 0x93, 0x42, 0x01, 0xd8, 0x14, 0x23, 0x33, 0xe6, 0xb3, 0xf5, 0x27, 0x7f, 0x01, 0xd2, 0x10, 0x23, 0x2e, 0xe6, 0xb3, 0xf5, 0x48, 0x7f, 0x01, 0xd8, 0x11, 0x23, 0x29, 0xe6, 0x40, 0xf2, 0xa5, 0x32, 0x93, 0x42, 0x01, 0xd8, 0x12, 0x23, 0x23, 0xe6, 0x40, 0xf2, 0x2a, 0x42, 0x93, 0x42, 0x3f, 0xf6, 0x24, 0xae, 0x13, 0x23, 0x1c, 0xe6, 0x26, 0x4a, 0x26, 0x48, 0x1a, 0x60, 0x08, 0x22, 0x00, 0x23, 0x11, 0x46, 0xff, 0xf7, 0x99, 0xfc, 0x1f, 0xe6, 0x3b, 0x46, 0x94, 0xe6, 0xb3, 0xf5, 0x27, 0x7f, 0x0a, 0xd2, 0x63, 0x68, 0x0b, 0x2b, 0x15, 0xbf, 0x01, 0x25, 0x00, 0x25, 0x0e, 0x26, 0x0c, 0x26, 0x14, 0xbf, 0x1d, 0x23, 0x18, 0x23, 0xee, 0xe6, 0xb3, 0xf5, 0x48, 0x7f, 0x17, 0xd9, 0x40, 0xf2, 0xa5, 0x32, 0x93, 0x42, 0x95, 0xbf, 0x02, 0x25, 0x03, 0x25, 0x10, 0x26, 0x12, 0x26, 0x94, 0xbf, 0x21, 0x23, 0x25, 0x23, 0xdf, 0xe6, 0x07, 0x25, 0x05, 0x26, 0x09, 0x23, 0xdb, 0xe6, 0x06, 0x25, 0x05, 0x26, 0x0d, 0x23, 0xd7, 0xe6, 0x05, 0x25, 0x06, 0x26, 0x10, 0x23, 0xd3, 0xe6, 0x01, 0x25, 0x0e, 0x26, 0x1d, 0x23, 0xcf, 0xe6, 0x41, 0xf6, 0x78, 0x62, 0x01, 0xe6, 0x80, 0x81, 0x03, 0x40, 0x20, 0x81, 0x03, 0x40, 0x24, 0x81, 0x03, 0x40, 0x2c, 0x81, 0x03, 0x40, 0x54, 0x81, 0x03, 0x40, 0x58, 0x81, 0x03, 0x40, 0x5c, 0x81, 0x03, 0x40, 0xe0, 0xc4, 0x04, 0x40, 0xa4, 0xc4, 0x04, 0x40, 0xcf, 0xe4, 0x05, 0x8d, 0x0c, 0x81, 0x03, 0x40, 0x38, 0xb5, 0xc4, 0x6d, 0x05, 0x46, 0xc4, 0xf3, 0x81, 0x04, 0x01, 0x2c, 0x0f, 0xd0, 0x02, 0x2c, 0x4e, 0xd0, 0xc4, 0x23, 0x08, 0x22, 0x14, 0x21, 0x2c, 0x48, 0xff, 0xf7, 0x41, 0xfc, 0x01, 0x23, 0x2b, 0x48, 0x1a, 0x46, 0x1e, 0x21, 0xff, 0xf7, 0x3b, 0xfc, 0x2a, 0x48, 0x3c, 0xe0, 0xc4, 0x23, 0x08, 0x22, 0x14, 0x21, 0x25, 0x48, 0xff, 0xf7, 0x33, 0xfc, 0x00, 0x23, 0x04, 0x22, 0x08, 0x21, 0x25, 0x48, 0xff, 0xf7, 0x2d, 0xfc, 0x00, 0x23, 0x22, 0x46, 0x19, 0x46, 0x22, 0x48, 0xff, 0xf7, 0x27, 0xfc, 0x23, 0x46, 0x21, 0x46, 0x20, 0x48, 0xff, 0xf7, 0x22, 0xfc, 0x00, 0x23, 0x02, 0x21, 0x1d, 0x48, 0xff, 0xf7, 0x1d, 0xfc, 0xab, 0x6c, 0x03, 0x22, 0x03, 0xf0, 0x0f, 0x03, 0x1a, 0x21, 0x19, 0x48, 0xff, 0xf7, 0x15, 0xfc, 0xab, 0x6c, 0x03, 0x22, 0xc3, 0xf3, 0x03, 0x13, 0x17, 0x21, 0x15, 0x48, 0xff, 0xf7, 0x0d, 0xfc, 0xab, 0x6c, 0x03, 0x22, 0xc3, 0xf3, 0x03, 0x23, 0x14, 0x21, 0x11, 0x48, 0xff, 0xf7, 0x05, 0xfc, 0xab, 0x6c, 0x0f, 0x48, 0xc3, 0xf3, 0x07, 0x33, 0x08, 0x22, 0x0c, 0x21, 0xff, 0xf7, 0xfd, 0xfb, 0x0d, 0x48, 0xbd, 0xe8, 0x38, 0x40, 0xfd, 0xf7, 0x14, 0xb9, 0x01, 0x23, 0x19, 0x21, 0x1a, 0x46, 0x0a, 0x48, 0xff, 0xf7, 0xf2, 0xfb, 0x03, 0x48, 0x4c, 0x23, 0x08, 0x22, 0x14, 0x21, 0xff, 0xf7, 0xec, 0xfb, 0x06, 0x48, 0xed, 0xe7, 0x40, 0xa0, 0x03, 0x40, 0x34, 0xa0, 0x03, 0x40, 0x27, 0x58, 0x0b, 0x04, 0x80, 0xa0, 0x03, 0x40, 0xf6, 0x57, 0x0b, 0x04, 0x38, 0xa0, 0x03, 0x40, 0x0c, 0x58, 0x0b, 0x04, 0x82, 0x6c, 0x70, 0xb5, 0x02, 0xf0, 0x03, 0x02, 0x01, 0x2a, 0x04, 0x46, 0xc3, 0x6c, 0x11, 0xd1, 0xdb, 0xb2, 0x08, 0x22, 0x00, 0x21, 0x61, 0x48, 0xff, 0xf7, 0xce, 0xfb, 0x94, 0xf8, 0x4c, 0x30, 0x08, 0x22, 0x00, 0x21, 0x5e, 0x48, 0xff, 0xf7, 0xc7, 0xfb, 0x5e, 0x4b, 0x1b, 0x68, 0x84, 0xf8, 0x4d, 0x30, 0x10, 0xe0, 0x59, 0x49, 0x23, 0xf0, 0xff, 0x03, 0x09, 0x68, 0x02, 0x2a, 0xc9, 0xb2, 0x43, 0xea, 0x01, 0x03, 0xc3, 0x64, 0xf0, 0xd1, 0xc3, 0xf3, 0x07, 0x23, 0x08, 0x22, 0x00, 0x21, 0x54, 0x48, 0xff, 0xf7, 0xb1, 0xfb, 0x65, 0x6d, 0x06, 0x22, 0x05, 0xf0, 0x3f, 0x05, 0x2b, 0x46, 0x18, 0x21, 0x51, 0x48, 0xff, 0xf7, 0xa8, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x10, 0x21, 0x4e, 0x48, 0xff, 0xf7, 0xa2, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x08, 0x21, 0x4b, 0x48, 0xff, 0xf7, 0x9c, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x00, 0x21, 0x48, 0x48, 0xff, 0xf7, 0x96, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x18, 0x21, 0x46, 0x48, 0xff, 0xf7, 0x90, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x10, 0x21, 0x43, 0x48, 0xff, 0xf7, 0x8a, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x08, 0x21, 0x40, 0x48, 0xff, 0xf7, 0x84, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x00, 0x21, 0x3d, 0x48, 0xff, 0xf7, 0x7e, 0xfb, 0xa5, 0x6d, 0x06, 0x22, 0x05, 0xf0, 0x3f, 0x05, 0x2b, 0x46, 0x18, 0x21, 0x39, 0x48, 0xff, 0xf7, 0x75, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x10, 0x21, 0x36, 0x48, 0xff, 0xf7, 0x6f, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x08, 0x21, 0x33, 0x48, 0xff, 0xf7, 0x69, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x00, 0x21, 0x30, 0x48, 0xff, 0xf7, 0x63, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x18, 0x21, 0x2e, 0x48, 0xff, 0xf7, 0x5d, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x10, 0x21, 0x2b, 0x48, 0xff, 0xf7, 0x57, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x08, 0x21, 0x28, 0x48, 0xff, 0xf7, 0x51, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x00, 0x21, 0x25, 0x48, 0xff, 0xf7, 0x4b, 0xfb, 0xb4, 0xf8, 0x5a, 0x30, 0x06, 0x22, 0x03, 0xf0, 0x3f, 0x03, 0x18, 0x21, 0x22, 0x48, 0xff, 0xf7, 0x42, 0xfb, 0xb4, 0xf8, 0x5a, 0x30, 0x06, 0x22, 0x03, 0xf0, 0x3f, 0x03, 0x12, 0x21, 0x1d, 0x48, 0xff, 0xf7, 0x39, 0xfb, 0xb4, 0xf8, 0x56, 0x30, 0x06, 0x22, 0x03, 0xf0, 0x3f, 0x03, 0x0c, 0x21, 0x19, 0x48, 0xff, 0xf7, 0x30, 0xfb, 0x06, 0x22, 0xa3, 0x6d, 0x11, 0x46, 0x03, 0xf0, 0x3f, 0x03, 0x15, 0x48, 0xff, 0xf7, 0x28, 0xfb, 0x63, 0x6d, 0x06, 0x22, 0x03, 0xf0, 0x3f, 0x03, 0x00, 0x21, 0x11, 0x48, 0xff, 0xf7, 0x20, 0xfb, 0x23, 0x6d, 0x0c, 0x22, 0xc3, 0xf3, 0x0b, 0x03, 0x07, 0x21, 0x0e, 0x48, 0xff, 0xf7, 0x18, 0xfb, 0x23, 0x6d, 0x0c, 0x22, 0xbd, 0xe8, 0x70, 0x40, 0xc3, 0xf3, 0x0b, 0x33, 0x13, 0x21, 0x09, 0x48, 0xff, 0xf7, 0x0e, 0xbb, 0x18, 0xa0, 0x03, 0x40, 0x1c, 0xa0, 0x03, 0x40, 0x10, 0xa0, 0x03, 0x40, 0x24, 0xa0, 0x03, 0x40, 0x28, 0xa0, 0x03, 0x40, 0x2c, 0xa0, 0x03, 0x40, 0x30, 0xa0, 0x03, 0x40, 0x34, 0xa0, 0x03, 0x40, 0x58, 0xa0, 0x03, 0x40, 0x10, 0xb5, 0x04, 0x46, 0x0c, 0x4a, 0x13, 0x68, 0x03, 0xf0, 0x07, 0x03, 0x04, 0x2b, 0xfa, 0xd1, 0x20, 0x46, 0xff, 0xf7, 0x15, 0xff, 0x06, 0x23, 0x03, 0x22, 0x1d, 0x21, 0x07, 0x48, 0xff, 0xf7, 0xeb, 0xfa, 0x06, 0x48, 0x02, 0x23, 0x03, 0x22, 0x1a, 0x21, 0xff, 0xf7, 0xe5, 0xfa, 0x20, 0x46, 0xbd, 0xe8, 0x10, 0x40, 0xff, 0xf7, 0x90, 0xbe, 0x74, 0xa0, 0x03, 0x40, 0x38, 0xa0, 0x03, 0x40, 0x01, 0x23, 0x70, 0xb5, 0x2b, 0x4c, 0x2c, 0x4d, 0x21, 0x68, 0x1a, 0x46, 0x00, 0x29, 0x43, 0xd0, 0x02, 0x21, 0x2a, 0x48, 0xff, 0xf7, 0xd0, 0xfa, 0x24, 0x68, 0x01, 0x2c, 0x31, 0xd1, 0x23, 0x46, 0x22, 0x46, 0x03, 0x21, 0x25, 0x48, 0xff, 0xf7, 0xc7, 0xfa, 0x00, 0x23, 0x04, 0x21, 0x23, 0x48, 0xff, 0xf7, 0xc2, 0xfa, 0x01, 0x23, 0x00, 0x21, 0x1a, 0x46, 0x20, 0x48, 0xff, 0xf7, 0xbc, 0xfa, 0x2b, 0x68, 0xda, 0x05, 0xfc, 0xd5, 0x00, 0x23, 0x01, 0x22, 0x19, 0x46, 0x1b, 0x48, 0xff, 0xf7, 0xb3, 0xfa, 0x00, 0x23, 0x01, 0x22, 0x03, 0x21, 0x18, 0x48, 0xff, 0xf7, 0xad, 0xfa, 0x00, 0x23, 0x01, 0x22, 0x04, 0x21, 0x15, 0x48, 0xff, 0xf7, 0xa7, 0xfa, 0x2b, 0x68, 0xc3, 0xf3, 0x03, 0x13, 0x00, 0x2b, 0xfa, 0xd1, 0xbd, 0xe8, 0x70, 0x40, 0x01, 0x22, 0x03, 0x21, 0x10, 0x48, 0xff, 0xf7, 0x9b, 0xba, 0x02, 0x2c, 0xd6, 0xd1, 0x00, 0x23, 0x01, 0x22, 0x03, 0x21, 0x0b, 0x48, 0xff, 0xf7, 0x93, 0xfa, 0x01, 0x23, 0x1a, 0x46, 0xc9, 0xe7, 0x08, 0x48, 0xff, 0xf7, 0x8d, 0xfa, 0x2b, 0x68, 0xdb, 0x05, 0xfc, 0xd5, 0x00, 0x23, 0x01, 0x22, 0x19, 0x46, 0x04, 0x48, 0xff, 0xf7, 0x84, 0xfa, 0x00, 0x23, 0xdf, 0xe7, 0xa4, 0x5a, 0x0b, 0x04, 0x28, 0x81, 0x03, 0x40, 0x00, 0x81, 0x03, 0x40, 0x2c, 0x81, 0x03, 0x40, 0x38, 0xb5, 0x01, 0x22, 0x04, 0x46, 0x00, 0x23, 0x15, 0x21, 0x45, 0x48, 0xff, 0xf7, 0x72, 0xfa, 0x00, 0x23, 0x01, 0x22, 0x1f, 0x21, 0x43, 0x48, 0xff, 0xf7, 0x6c, 0xfa, 0x00, 0x23, 0x01, 0x22, 0x15, 0x21, 0x41, 0x48, 0xff, 0xf7, 0x66, 0xfa, 0x00, 0x23, 0x01, 0x22, 0x02, 0x21, 0x3f, 0x48, 0xff, 0xf7, 0x60, 0xfa, 0x3e, 0x4d, 0x3f, 0x4b, 0x00, 0x21, 0x2b, 0x60, 0x01, 0x23, 0x3e, 0x48, 0x1a, 0x46, 0xff, 0xf7, 0x57, 0xfa, 0x01, 0x23, 0x10, 0x21, 0x1a, 0x46, 0x3a, 0x48, 0xff, 0xf7, 0x51, 0xfa, 0x01, 0x23, 0x1f, 0x21, 0x1a, 0x46, 0x38, 0x48, 0xff, 0xf7, 0x4b, 0xfa, 0x01, 0x23, 0x1f, 0x21, 0x1a, 0x46, 0x36, 0x48, 0xff, 0xf7, 0x45, 0xfa, 0x01, 0x23, 0x1f, 0x21, 0x1a, 0x46, 0x28, 0x46, 0xff, 0xf7, 0x3f, 0xfa, 0x02, 0x23, 0x0c, 0x21, 0x1a, 0x46, 0x31, 0x48, 0xff, 0xf7, 0x39, 0xfa, 0x03, 0x23, 0x02, 0x22, 0x0c, 0x21, 0x2f, 0x48, 0xff, 0xf7, 0x33, 0xfa, 0x01, 0x23, 0x15, 0x21, 0x1a, 0x46, 0x22, 0x48, 0xff, 0xf7, 0x2d, 0xfa, 0x01, 0x23, 0x1f, 0x21, 0x1a, 0x46, 0x20, 0x48, 0xff, 0xf7, 0x27, 0xfa, 0x01, 0x23, 0x15, 0x21, 0x1a, 0x46, 0x1e, 0x48, 0xff, 0xf7, 0x21, 0xfa, 0x20, 0x46, 0xff, 0xf7, 0xf0, 0xfa, 0x20, 0x46, 0xff, 0xf7, 0x1f, 0xff, 0x20, 0x46, 0xff, 0xf7, 0x3c, 0xff, 0x01, 0x23, 0x1f, 0x21, 0x1a, 0x46, 0x20, 0x48, 0xff, 0xf7, 0x12, 0xfa, 0x1f, 0x49, 0x20, 0x48, 0xfc, 0xf7, 0x2a, 0xff, 0x21, 0x68, 0x1f, 0x48, 0xfc, 0xf7, 0x26, 0xff, 0xd4, 0xe9, 0x15, 0x12, 0x1d, 0x48, 0xfc, 0xf7, 0x21, 0xff, 0xe1, 0x6c, 0x1c, 0x48, 0xfc, 0xf7, 0x1d, 0xff, 0xe3, 0x6d, 0xdb, 0x00, 0x08, 0xd4, 0x63, 0x68, 0x0b, 0x2b, 0x0e, 0xd1, 0x08, 0x21, 0x18, 0x48, 0xfc, 0xf7, 0x13, 0xff, 0x20, 0x20, 0x38, 0xbd, 0x4f, 0xf4, 0x80, 0x31, 0x08, 0x20, 0xff, 0xf7, 0x6c, 0xfa, 0x00, 0x28, 0xef, 0xd0, 0x00, 0x20, 0xf5, 0xe7, 0x20, 0x21, 0xef, 0xe7, 0x04, 0xc0, 0x03, 0x40, 0x6c, 0xc0, 0x03, 0x40, 0x0c, 0xc0, 0x03, 0x40, 0x80, 0x15, 0x05, 0x40, 0x94, 0xc4, 0x04, 0x40, 0x81, 0x02, 0x00, 0xe0, 0xac, 0xc4, 0x04, 0x40, 0x8c, 0xc4, 0x04, 0x40, 0x90, 0xc4, 0x04, 0x40, 0xa4, 0xc4, 0x04, 0x40, 0xa8, 0xc4, 0x04, 0x40, 0x14, 0x20, 0x10, 0x40, 0x79, 0x57, 0x0b, 0x04, 0x7f, 0x57, 0x0b, 0x04, 0x99, 0x57, 0x0b, 0x04, 0xac, 0x57, 0x0b, 0x04, 0xd2, 0x57, 0x0b, 0x04, 0xe4, 0x57, 0x0b, 0x04, 0x38, 0xb5, 0x00, 0x23, 0x08, 0x4c, 0x05, 0x46, 0x19, 0x46, 0x20, 0x46, 0x01, 0x22, 0xff, 0xf7, 0xbd, 0xf9, 0x01, 0x22, 0x00, 0x23, 0x11, 0x46, 0xff, 0xf7, 0xb8, 0xf9, 0x28, 0x46, 0xbd, 0xe8, 0x38, 0x40, 0xff, 0xf7, 0x39, 0xbf, 0x00, 0xbf, 0x80, 0x15, 0x05, 0x40, 0x00, 0xb5, 0x03, 0x68, 0x99, 0xb0, 0x00, 0x93, 0x43, 0x68, 0x1c, 0x4a, 0x01, 0x93, 0x83, 0x68, 0x02, 0x93, 0xc3, 0x68, 0x03, 0x93, 0x03, 0x69, 0x04, 0x93, 0x43, 0x69, 0x05, 0x93, 0x83, 0x69, 0x06, 0x93, 0xc3, 0x69, 0x07, 0x93, 0x03, 0x6a, 0x08, 0x93, 0x43, 0x6a, 0x09, 0x93, 0x83, 0x6a, 0x0a, 0x93, 0xc3, 0x6a, 0x0b, 0x93, 0x03, 0x6b, 0x0c, 0x93, 0x43, 0x6b, 0x0d, 0x93, 0x83, 0x6b, 0x0e, 0x93, 0xc3, 0x6b, 0x0f, 0x93, 0x03, 0x6c, 0x10, 0x93, 0x43, 0x6c, 0x11, 0x93, 0x83, 0x6c, 0x12, 0x93, 0xc3, 0x6c, 0x13, 0x93, 0x03, 0x6d, 0x14, 0x93, 0x43, 0x6d, 0x15, 0x93, 0x83, 0x6d, 0x16, 0x93, 0xc3, 0x6d, 0x68, 0x46, 0x17, 0x93, 0x05, 0x4b, 0x1a, 0x60, 0xff, 0xf7, 0xfe, 0xfe, 0xb0, 0xfa, 0x80, 0xf0, 0x40, 0x09, 0x19, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x51, 0x33, 0x08, 0x00, 0x40, 0x00, 0x05, 0x40, 0x70, 0xb5, 0x31, 0x4c, 0xfc, 0xf7, 0xbe, 0xfa, 0x02, 0x22, 0x04, 0xf1, 0xbc, 0x01, 0xd4, 0xf8, 0xb8, 0x00, 0xfd, 0xf7, 0xed, 0xf9, 0x04, 0xf5, 0x3e, 0x71, 0x2c, 0x48, 0xfc, 0xf7, 0x7a, 0xfe, 0xfc, 0xf7, 0x28, 0xfb, 0x05, 0x46, 0x00, 0x28, 0x4b, 0xd1, 0x01, 0x46, 0x88, 0x22, 0x04, 0xf5, 0x50, 0x70, 0xfc, 0xf7, 0xcb, 0xff, 0x01, 0x23, 0x25, 0x4a, 0x26, 0x48, 0xc4, 0xe9, 0xd0, 0x23, 0xfc, 0xf7, 0x68, 0xfe, 0x4f, 0xf4, 0x60, 0x42, 0x23, 0x49, 0x24, 0x48, 0xfc, 0xf7, 0x62, 0xfe, 0x4f, 0xf4, 0x60, 0x41, 0x20, 0x48, 0xfc, 0xf7, 0x23, 0xff, 0xd4, 0xf8, 0x98, 0x30, 0x43, 0xbb, 0x1f, 0x48, 0xfc, 0xf7, 0x57, 0xfe, 0xd4, 0xf8, 0x9c, 0x00, 0xff, 0xf7, 0xcd, 0xf8, 0xa3, 0x6b, 0x1b, 0xb3, 0x1c, 0x48, 0xfc, 0xf7, 0x4e, 0xfe, 0x1b, 0x48, 0xff, 0xf7, 0x7f, 0xff, 0x01, 0x28, 0x0c, 0xd1, 0x1a, 0x4c, 0x18, 0x4e, 0x29, 0x46, 0x20, 0x46, 0xfc, 0xf7, 0x43, 0xfe, 0x30, 0x46, 0xff, 0xf7, 0x74, 0xff, 0x10, 0xb1, 0x01, 0x35, 0x05, 0x2d, 0xf4, 0xd1, 0x0a, 0x20, 0xfc, 0xf7, 0xf7, 0xf9, 0x13, 0x48, 0xfc, 0xf7, 0x36, 0xfe, 0xfc, 0xf7, 0xb2, 0xfa, 0x4f, 0xf4, 0x00, 0x00, 0x70, 0xbd, 0x10, 0x48, 0xfc, 0xf7, 0x2e, 0xfe, 0xd9, 0xe7, 0x0f, 0x48, 0xfc, 0xf7, 0x2a, 0xfe, 0xec, 0xe7, 0x00, 0x20, 0xf4, 0xe7, 0x00, 0xbf, 0x00, 0x00, 0x0b, 0x04, 0x42, 0x58, 0x0b, 0x04, 0x44, 0x52, 0x41, 0x4d, 0x57, 0x58, 0x0b, 0x04, 0x00, 0x00, 0x0a, 0x04, 0x65, 0x58, 0x0b, 0x04, 0x7b, 0x58, 0x0b, 0x04, 0x9b, 0x58, 0x0b, 0x04, 0x38, 0x00, 0x0b, 0x04, 0xa8, 0x58, 0x0b, 0x04, 0xdf, 0x58, 0x0b, 0x04, 0x88, 0x58, 0x0b, 0x04, 0xcc, 0x58, 0x0b, 0x04, 0x53, 0xb9, 0x4a, 0xb9, 0x00, 0x29, 0x08, 0xbf, 0x00, 0x28, 0x1c, 0xbf, 0x4f, 0xf0, 0xff, 0x31, 0x4f, 0xf0, 0xff, 0x30, 0x00, 0xf0, 0x70, 0xb9, 0xad, 0xf1, 0x08, 0x0c, 0x6d, 0xe9, 0x04, 0xce, 0x00, 0xf0, 0x06, 0xf8, 0xdd, 0xf8, 0x04, 0xe0, 0xdd, 0xe9, 0x02, 0x23, 0x04, 0xb0, 0x70, 0x47, 0x2d, 0xe9, 0xf0, 0x4f, 0x09, 0x9e, 0x04, 0x46, 0x89, 0x46, 0x00, 0x2b, 0x40, 0xf0, 0x83, 0x80, 0x8a, 0x42, 0x15, 0x46, 0x45, 0xd9, 0xb2, 0xfa, 0x82, 0xf2, 0x4a, 0xb1, 0xc2, 0xf1, 0x20, 0x07, 0x01, 0xfa, 0x02, 0xf3, 0x95, 0x40, 0x94, 0x40, 0x20, 0xfa, 0x07, 0xf7, 0x47, 0xea, 0x03, 0x09, 0x4f, 0xea, 0x15, 0x4e, 0x23, 0x0c, 0x1f, 0xfa, 0x85, 0xf8, 0xb9, 0xfb, 0xfe, 0xfc, 0x0e, 0xfb, 0x1c, 0x99, 0x0c, 0xfb, 0x08, 0xf1, 0x43, 0xea, 0x09, 0x43, 0x99, 0x42, 0x0a, 0xd9, 0xeb, 0x18, 0x2c, 0xbf, 0x01, 0x20, 0x00, 0x20, 0x99, 0x42, 0x02, 0xd9, 0x00, 0x28, 0x00, 0xf0, 0x1d, 0x81, 0x0c, 0xf1, 0xff, 0x3c, 0x59, 0x1a, 0xa3, 0xb2, 0xb1, 0xfb, 0xfe, 0xf0, 0x0e, 0xfb, 0x10, 0x11, 0x00, 0xfb, 0x08, 0xf8, 0x43, 0xea, 0x01, 0x44, 0xa0, 0x45, 0x05, 0xd9, 0x2c, 0x19, 0x02, 0xd2, 0xa0, 0x45, 0x00, 0xf2, 0x0e, 0x81, 0x01, 0x38, 0xa4, 0xeb, 0x08, 0x04, 0x40, 0xea, 0x0c, 0x40, 0x00, 0x27, 0x1e, 0xb1, 0xd4, 0x40, 0x00, 0x23, 0xc6, 0xe9, 0x00, 0x43, 0x39, 0x46, 0xbd, 0xe8, 0xf0, 0x8f, 0x00, 0x2a, 0x51, 0xd0, 0xb2, 0xfa, 0x82, 0xf2, 0x00, 0x2a, 0x40, 0xf0, 0xaf, 0x80, 0x49, 0x1b, 0x4f, 0xea, 0x15, 0x4e, 0x1f, 0xfa, 0x85, 0xf8, 0x01, 0x27, 0x23, 0x0c, 0xb1, 0xfb, 0xfe, 0xfc, 0x0e, 0xfb, 0x1c, 0x11, 0x08, 0xfb, 0x0c, 0xf0, 0x43, 0xea, 0x01, 0x43, 0x98, 0x42, 0x0a, 0xd9, 0xeb, 0x18, 0x2c, 0xbf, 0x01, 0x21, 0x00, 0x21, 0x98, 0x42, 0x02, 0xd9, 0x00, 0x29, 0x00, 0xf0, 0xd7, 0x80, 0x0c, 0xf1, 0xff, 0x3c, 0x19, 0x1a, 0xa3, 0xb2, 0xb1, 0xfb, 0xfe, 0xf0, 0x0e, 0xfb, 0x10, 0x11, 0x08, 0xfb, 0x00, 0xf8, 0x43, 0xea, 0x01, 0x44, 0xa0, 0x45, 0x05, 0xd9, 0x2c, 0x19, 0x02, 0xd2, 0xa0, 0x45, 0x00, 0xf2, 0xc1, 0x80, 0x01, 0x38, 0xa4, 0xeb, 0x08, 0x04, 0x40, 0xea, 0x0c, 0x40, 0xbd, 0xe7, 0x8b, 0x42, 0x08, 0xd9, 0x00, 0x2e, 0x74, 0xd0, 0x00, 0x27, 0xc6, 0xe9, 0x00, 0x01, 0x38, 0x46, 0x39, 0x46, 0xbd, 0xe8, 0xf0, 0x8f, 0xb3, 0xfa, 0x83, 0xf7, 0x67, 0xb9, 0x8b, 0x42, 0xc0, 0xf0, 0xa4, 0x80, 0x82, 0x42, 0x40, 0xf2, 0xa1, 0x80, 0x38, 0x46, 0x00, 0x2e, 0xab, 0xd0, 0xc6, 0xe9, 0x00, 0x49, 0xa8, 0xe7, 0xff, 0xde, 0xc7, 0xf1, 0x20, 0x05, 0xbb, 0x40, 0x02, 0xfa, 0x07, 0xfc, 0x01, 0xfa, 0x07, 0xf4, 0xea, 0x40, 0x20, 0xfa, 0x05, 0xf8, 0xe9, 0x40, 0x00, 0xfa, 0x07, 0xfe, 0x1a, 0x43, 0x48, 0xea, 0x04, 0x04, 0x4f, 0xea, 0x12, 0x48, 0x20, 0x0c, 0x1f, 0xfa, 0x82, 0xf9, 0xb1, 0xfb, 0xf8, 0xfa, 0x08, 0xfb, 0x1a, 0x11, 0x0a, 0xfb, 0x09, 0xfb, 0x40, 0xea, 0x01, 0x41, 0x8b, 0x45, 0x0a, 0xd9, 0x51, 0x18, 0x2c, 0xbf, 0x01, 0x23, 0x00, 0x23, 0x8b, 0x45, 0x02, 0xd9, 0x00, 0x2b, 0x00, 0xf0, 0x88, 0x80, 0x0a, 0xf1, 0xff, 0x3a, 0xa1, 0xeb, 0x0b, 0x01, 0xa4, 0xb2, 0xb1, 0xfb, 0xf8, 0xf0, 0x08, 0xfb, 0x10, 0x11, 0x00, 0xfb, 0x09, 0xf9, 0x44, 0xea, 0x01, 0x41, 0x89, 0x45, 0x04, 0xd9, 0x51, 0x18, 0x01, 0xd2, 0x89, 0x45, 0x7b, 0xd8, 0x01, 0x38, 0x40, 0xea, 0x0a, 0x40, 0xa1, 0xeb, 0x09, 0x01, 0xa0, 0xfb, 0x0c, 0x89, 0x49, 0x45, 0x44, 0x46, 0x4b, 0x46, 0x02, 0xd3, 0x06, 0xd1, 0xc6, 0x45, 0x04, 0xd2, 0x01, 0x38, 0xb8, 0xeb, 0x0c, 0x04, 0x69, 0xeb, 0x02, 0x03, 0x00, 0x2e, 0x5d, 0xd0, 0xbe, 0xeb, 0x04, 0x02, 0x61, 0xeb, 0x03, 0x01, 0x01, 0xfa, 0x05, 0xf5, 0x22, 0xfa, 0x07, 0xf3, 0xf9, 0x40, 0x00, 0x27, 0x1d, 0x43, 0xc6, 0xe9, 0x00, 0x51, 0x49, 0xe7, 0x37, 0x46, 0x30, 0x46, 0x46, 0xe7, 0xc2, 0xf1, 0x20, 0x00, 0x95, 0x40, 0x01, 0xfa, 0x02, 0xf7, 0x21, 0xfa, 0x00, 0xf3, 0x4f, 0xea, 0x15, 0x4e, 0x24, 0xfa, 0x00, 0xf1, 0x1f, 0xfa, 0x85, 0xf8, 0x94, 0x40, 0x39, 0x43, 0xb3, 0xfb, 0xfe, 0xf0, 0x0f, 0x0c, 0x0e, 0xfb, 0x10, 0x33, 0x00, 0xfb, 0x08, 0xfc, 0x47, 0xea, 0x03, 0x43, 0x9c, 0x45, 0x07, 0xd9, 0xeb, 0x18, 0x2c, 0xbf, 0x01, 0x27, 0x00, 0x27, 0x9c, 0x45, 0x00, 0xd9, 0x8f, 0xb3, 0x01, 0x38, 0xa3, 0xeb, 0x0c, 0x03, 0x89, 0xb2, 0xb3, 0xfb, 0xfe, 0xf7, 0x0e, 0xfb, 0x17, 0x33, 0x07, 0xfb, 0x08, 0xfc, 0x41, 0xea, 0x03, 0x41, 0x8c, 0x45, 0x04, 0xd9, 0x69, 0x18, 0x01, 0xd2, 0x8c, 0x45, 0x25, 0xd8, 0x01, 0x3f, 0xa1, 0xeb, 0x0c, 0x01, 0x47, 0xea, 0x00, 0x47, 0x1d, 0xe7, 0x84, 0x1a, 0x61, 0xeb, 0x03, 0x03, 0x01, 0x20, 0x99, 0x46, 0x59, 0xe7, 0x02, 0x38, 0x2c, 0x44, 0x3c, 0xe7, 0xac, 0xf1, 0x02, 0x0c, 0x2b, 0x44, 0x26, 0xe7, 0xac, 0xf1, 0x02, 0x0c, 0x2b, 0x44, 0xe0, 0xe6, 0x02, 0x38, 0x2c, 0x44, 0xef, 0xe6, 0x37, 0x46, 0xf7, 0xe6, 0xaa, 0xf1, 0x02, 0x0a, 0x11, 0x44, 0x75, 0xe7, 0x02, 0x38, 0x2b, 0x44, 0xcb, 0xe7, 0x02, 0x38, 0x11, 0x44, 0x81, 0xe7, 0x02, 0x3f, 0x29, 0x44, 0xd7, 0xe7, 0x00, 0xbf, 0x70, 0x47, 0x00, 0xbf, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc9, 0x03, 0x0b, 0x04, 0xdd, 0x03, 0x0b, 0x04, 0xdd, 0x03, 0x0b, 0x04, 0xdd, 0x03, 0x0b, 0x04, 0xdd, 0x03, 0x0b, 0x04, 0xdd, 0x03, 0x0b, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdd, 0x03, 0x0b, 0x04, 0xdd, 0x03, 0x0b, 0x04, 0x00, 0x00, 0x00, 0x00, 0xdd, 0x03, 0x0b, 0x04, 0x29, 0x06, 0x0b, 0x04, 0x50, 0x97, 0x31, 0x00, 0x00, 0x09, 0x3d, 0x00, 0x00, 0x09, 0x3d, 0x00, 0x00, 0x09, 0x3d, 0x00, 0x00, 0xe0, 0x2e, 0x00, 0x08, 0x0a, 0x06, 0x08, 0x08, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x6f, 0x6b, 0x0a, 0x00, 0x67, 0x6f, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x62, 0x20, 0x65, 0x66, 0x65, 0x78, 0x21, 0x0a, 0x00, 0x73, 0x65, 0x74, 0x20, 0x70, 0x6c, 0x6c, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x28, 0x28, 0x28, 0x28, 0x28, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0xa0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x10, 0x10, 0x10, 0x10, 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, 0x00, 0xa0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x10, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x5b, 0x25, 0x64, 0x5d, 0x00, 0x25, 0x73, 0x00, 0x6b, 0x65, 0x79, 0x20, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x3a, 0x20, 0x25, 0x63, 0x0a, 0x00, 0x73, 0x72, 0x63, 0x5f, 0x73, 0x75, 0x6d, 0x3d, 0x25, 0x78, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x30, 0x07, 0x77, 0x2c, 0x61, 0x0e, 0xee, 0xba, 0x51, 0x09, 0x99, 0x19, 0xc4, 0x6d, 0x07, 0x8f, 0xf4, 0x6a, 0x70, 0x35, 0xa5, 0x63, 0xe9, 0xa3, 0x95, 0x64, 0x9e, 0x32, 0x88, 0xdb, 0x0e, 0xa4, 0xb8, 0xdc, 0x79, 0x1e, 0xe9, 0xd5, 0xe0, 0x88, 0xd9, 0xd2, 0x97, 0x2b, 0x4c, 0xb6, 0x09, 0xbd, 0x7c, 0xb1, 0x7e, 0x07, 0x2d, 0xb8, 0xe7, 0x91, 0x1d, 0xbf, 0x90, 0x64, 0x10, 0xb7, 0x1d, 0xf2, 0x20, 0xb0, 0x6a, 0x48, 0x71, 0xb9, 0xf3, 0xde, 0x41, 0xbe, 0x84, 0x7d, 0xd4, 0xda, 0x1a, 0xeb, 0xe4, 0xdd, 0x6d, 0x51, 0xb5, 0xd4, 0xf4, 0xc7, 0x85, 0xd3, 0x83, 0x56, 0x98, 0x6c, 0x13, 0xc0, 0xa8, 0x6b, 0x64, 0x7a, 0xf9, 0x62, 0xfd, 0xec, 0xc9, 0x65, 0x8a, 0x4f, 0x5c, 0x01, 0x14, 0xd9, 0x6c, 0x06, 0x63, 0x63, 0x3d, 0x0f, 0xfa, 0xf5, 0x0d, 0x08, 0x8d, 0xc8, 0x20, 0x6e, 0x3b, 0x5e, 0x10, 0x69, 0x4c, 0xe4, 0x41, 0x60, 0xd5, 0x72, 0x71, 0x67, 0xa2, 0xd1, 0xe4, 0x03, 0x3c, 0x47, 0xd4, 0x04, 0x4b, 0xfd, 0x85, 0x0d, 0xd2, 0x6b, 0xb5, 0x0a, 0xa5, 0xfa, 0xa8, 0xb5, 0x35, 0x6c, 0x98, 0xb2, 0x42, 0xd6, 0xc9, 0xbb, 0xdb, 0x40, 0xf9, 0xbc, 0xac, 0xe3, 0x6c, 0xd8, 0x32, 0x75, 0x5c, 0xdf, 0x45, 0xcf, 0x0d, 0xd6, 0xdc, 0x59, 0x3d, 0xd1, 0xab, 0xac, 0x30, 0xd9, 0x26, 0x3a, 0x00, 0xde, 0x51, 0x80, 0x51, 0xd7, 0xc8, 0x16, 0x61, 0xd0, 0xbf, 0xb5, 0xf4, 0xb4, 0x21, 0x23, 0xc4, 0xb3, 0x56, 0x99, 0x95, 0xba, 0xcf, 0x0f, 0xa5, 0xbd, 0xb8, 0x9e, 0xb8, 0x02, 0x28, 0x08, 0x88, 0x05, 0x5f, 0xb2, 0xd9, 0x0c, 0xc6, 0x24, 0xe9, 0x0b, 0xb1, 0x87, 0x7c, 0x6f, 0x2f, 0x11, 0x4c, 0x68, 0x58, 0xab, 0x1d, 0x61, 0xc1, 0x3d, 0x2d, 0x66, 0xb6, 0x90, 0x41, 0xdc, 0x76, 0x06, 0x71, 0xdb, 0x01, 0xbc, 0x20, 0xd2, 0x98, 0x2a, 0x10, 0xd5, 0xef, 0x89, 0x85, 0xb1, 0x71, 0x1f, 0xb5, 0xb6, 0x06, 0xa5, 0xe4, 0xbf, 0x9f, 0x33, 0xd4, 0xb8, 0xe8, 0xa2, 0xc9, 0x07, 0x78, 0x34, 0xf9, 0x00, 0x0f, 0x8e, 0xa8, 0x09, 0x96, 0x18, 0x98, 0x0e, 0xe1, 0xbb, 0x0d, 0x6a, 0x7f, 0x2d, 0x3d, 0x6d, 0x08, 0x97, 0x6c, 0x64, 0x91, 0x01, 0x5c, 0x63, 0xe6, 0xf4, 0x51, 0x6b, 0x6b, 0x62, 0x61, 0x6c, 0x1c, 0xd8, 0x30, 0x65, 0x85, 0x4e, 0x00, 0x62, 0xf2, 0xed, 0x95, 0x06, 0x6c, 0x7b, 0xa5, 0x01, 0x1b, 0xc1, 0xf4, 0x08, 0x82, 0x57, 0xc4, 0x0f, 0xf5, 0xc6, 0xd9, 0xb0, 0x65, 0x50, 0xe9, 0xb7, 0x12, 0xea, 0xb8, 0xbe, 0x8b, 0x7c, 0x88, 0xb9, 0xfc, 0xdf, 0x1d, 0xdd, 0x62, 0x49, 0x2d, 0xda, 0x15, 0xf3, 0x7c, 0xd3, 0x8c, 0x65, 0x4c, 0xd4, 0xfb, 0x58, 0x61, 0xb2, 0x4d, 0xce, 0x51, 0xb5, 0x3a, 0x74, 0x00, 0xbc, 0xa3, 0xe2, 0x30, 0xbb, 0xd4, 0x41, 0xa5, 0xdf, 0x4a, 0xd7, 0x95, 0xd8, 0x3d, 0x6d, 0xc4, 0xd1, 0xa4, 0xfb, 0xf4, 0xd6, 0xd3, 0x6a, 0xe9, 0x69, 0x43, 0xfc, 0xd9, 0x6e, 0x34, 0x46, 0x88, 0x67, 0xad, 0xd0, 0xb8, 0x60, 0xda, 0x73, 0x2d, 0x04, 0x44, 0xe5, 0x1d, 0x03, 0x33, 0x5f, 0x4c, 0x0a, 0xaa, 0xc9, 0x7c, 0x0d, 0xdd, 0x3c, 0x71, 0x05, 0x50, 0xaa, 0x41, 0x02, 0x27, 0x10, 0x10, 0x0b, 0xbe, 0x86, 0x20, 0x0c, 0xc9, 0x25, 0xb5, 0x68, 0x57, 0xb3, 0x85, 0x6f, 0x20, 0x09, 0xd4, 0x66, 0xb9, 0x9f, 0xe4, 0x61, 0xce, 0x0e, 0xf9, 0xde, 0x5e, 0x98, 0xc9, 0xd9, 0x29, 0x22, 0x98, 0xd0, 0xb0, 0xb4, 0xa8, 0xd7, 0xc7, 0x17, 0x3d, 0xb3, 0x59, 0x81, 0x0d, 0xb4, 0x2e, 0x3b, 0x5c, 0xbd, 0xb7, 0xad, 0x6c, 0xba, 0xc0, 0x20, 0x83, 0xb8, 0xed, 0xb6, 0xb3, 0xbf, 0x9a, 0x0c, 0xe2, 0xb6, 0x03, 0x9a, 0xd2, 0xb1, 0x74, 0x39, 0x47, 0xd5, 0xea, 0xaf, 0x77, 0xd2, 0x9d, 0x15, 0x26, 0xdb, 0x04, 0x83, 0x16, 0xdc, 0x73, 0x12, 0x0b, 0x63, 0xe3, 0x84, 0x3b, 0x64, 0x94, 0x3e, 0x6a, 0x6d, 0x0d, 0xa8, 0x5a, 0x6a, 0x7a, 0x0b, 0xcf, 0x0e, 0xe4, 0x9d, 0xff, 0x09, 0x93, 0x27, 0xae, 0x00, 0x0a, 0xb1, 0x9e, 0x07, 0x7d, 0x44, 0x93, 0x0f, 0xf0, 0xd2, 0xa3, 0x08, 0x87, 0x68, 0xf2, 0x01, 0x1e, 0xfe, 0xc2, 0x06, 0x69, 0x5d, 0x57, 0x62, 0xf7, 0xcb, 0x67, 0x65, 0x80, 0x71, 0x36, 0x6c, 0x19, 0xe7, 0x06, 0x6b, 0x6e, 0x76, 0x1b, 0xd4, 0xfe, 0xe0, 0x2b, 0xd3, 0x89, 0x5a, 0x7a, 0xda, 0x10, 0xcc, 0x4a, 0xdd, 0x67, 0x6f, 0xdf, 0xb9, 0xf9, 0xf9, 0xef, 0xbe, 0x8e, 0x43, 0xbe, 0xb7, 0x17, 0xd5, 0x8e, 0xb0, 0x60, 0xe8, 0xa3, 0xd6, 0xd6, 0x7e, 0x93, 0xd1, 0xa1, 0xc4, 0xc2, 0xd8, 0x38, 0x52, 0xf2, 0xdf, 0x4f, 0xf1, 0x67, 0xbb, 0xd1, 0x67, 0x57, 0xbc, 0xa6, 0xdd, 0x06, 0xb5, 0x3f, 0x4b, 0x36, 0xb2, 0x48, 0xda, 0x2b, 0x0d, 0xd8, 0x4c, 0x1b, 0x0a, 0xaf, 0xf6, 0x4a, 0x03, 0x36, 0x60, 0x7a, 0x04, 0x41, 0xc3, 0xef, 0x60, 0xdf, 0x55, 0xdf, 0x67, 0xa8, 0xef, 0x8e, 0x6e, 0x31, 0x79, 0xbe, 0x69, 0x46, 0x8c, 0xb3, 0x61, 0xcb, 0x1a, 0x83, 0x66, 0xbc, 0xa0, 0xd2, 0x6f, 0x25, 0x36, 0xe2, 0x68, 0x52, 0x95, 0x77, 0x0c, 0xcc, 0x03, 0x47, 0x0b, 0xbb, 0xb9, 0x16, 0x02, 0x22, 0x2f, 0x26, 0x05, 0x55, 0xbe, 0x3b, 0xba, 0xc5, 0x28, 0x0b, 0xbd, 0xb2, 0x92, 0x5a, 0xb4, 0x2b, 0x04, 0x6a, 0xb3, 0x5c, 0xa7, 0xff, 0xd7, 0xc2, 0x31, 0xcf, 0xd0, 0xb5, 0x8b, 0x9e, 0xd9, 0x2c, 0x1d, 0xae, 0xde, 0x5b, 0xb0, 0xc2, 0x64, 0x9b, 0x26, 0xf2, 0x63, 0xec, 0x9c, 0xa3, 0x6a, 0x75, 0x0a, 0x93, 0x6d, 0x02, 0xa9, 0x06, 0x09, 0x9c, 0x3f, 0x36, 0x0e, 0xeb, 0x85, 0x67, 0x07, 0x72, 0x13, 0x57, 0x00, 0x05, 0x82, 0x4a, 0xbf, 0x95, 0x14, 0x7a, 0xb8, 0xe2, 0xae, 0x2b, 0xb1, 0x7b, 0x38, 0x1b, 0xb6, 0x0c, 0x9b, 0x8e, 0xd2, 0x92, 0x0d, 0xbe, 0xd5, 0xe5, 0xb7, 0xef, 0xdc, 0x7c, 0x21, 0xdf, 0xdb, 0x0b, 0xd4, 0xd2, 0xd3, 0x86, 0x42, 0xe2, 0xd4, 0xf1, 0xf8, 0xb3, 0xdd, 0x68, 0x6e, 0x83, 0xda, 0x1f, 0xcd, 0x16, 0xbe, 0x81, 0x5b, 0x26, 0xb9, 0xf6, 0xe1, 0x77, 0xb0, 0x6f, 0x77, 0x47, 0xb7, 0x18, 0xe6, 0x5a, 0x08, 0x88, 0x70, 0x6a, 0x0f, 0xff, 0xca, 0x3b, 0x06, 0x66, 0x5c, 0x0b, 0x01, 0x11, 0xff, 0x9e, 0x65, 0x8f, 0x69, 0xae, 0x62, 0xf8, 0xd3, 0xff, 0x6b, 0x61, 0x45, 0xcf, 0x6c, 0x16, 0x78, 0xe2, 0x0a, 0xa0, 0xee, 0xd2, 0x0d, 0xd7, 0x54, 0x83, 0x04, 0x4e, 0xc2, 0xb3, 0x03, 0x39, 0x61, 0x26, 0x67, 0xa7, 0xf7, 0x16, 0x60, 0xd0, 0x4d, 0x47, 0x69, 0x49, 0xdb, 0x77, 0x6e, 0x3e, 0x4a, 0x6a, 0xd1, 0xae, 0xdc, 0x5a, 0xd6, 0xd9, 0x66, 0x0b, 0xdf, 0x40, 0xf0, 0x3b, 0xd8, 0x37, 0x53, 0xae, 0xbc, 0xa9, 0xc5, 0x9e, 0xbb, 0xde, 0x7f, 0xcf, 0xb2, 0x47, 0xe9, 0xff, 0xb5, 0x30, 0x1c, 0xf2, 0xbd, 0xbd, 0x8a, 0xc2, 0xba, 0xca, 0x30, 0x93, 0xb3, 0x53, 0xa6, 0xa3, 0xb4, 0x24, 0x05, 0x36, 0xd0, 0xba, 0x93, 0x06, 0xd7, 0xcd, 0x29, 0x57, 0xde, 0x54, 0xbf, 0x67, 0xd9, 0x23, 0x2e, 0x7a, 0x66, 0xb3, 0xb8, 0x4a, 0x61, 0xc4, 0x02, 0x1b, 0x68, 0x5d, 0x94, 0x2b, 0x6f, 0x2a, 0x37, 0xbe, 0x0b, 0xb4, 0xa1, 0x8e, 0x0c, 0xc3, 0x1b, 0xdf, 0x05, 0x5a, 0x8d, 0xef, 0x02, 0x2d, 0x25, 0x73, 0x3a, 0x25, 0x75, 0x3a, 0x20, 0x25, 0x73, 0x3a, 0x20, 0x41, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x60, 0x25, 0x73, 0x27, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x2e, 0x00, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x00, 0x69, 0x6e, 0x62, 0x75, 0x66, 0x3a, 0x25, 0x78, 0x0a, 0x00, 0x25, 0x30, 0x32, 0x78, 0x20, 0x00, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x20, 0x62, 0x75, 0x66, 0x20, 0x25, 0x70, 0x0a, 0x00, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x20, 0x30, 0x78, 0x25, 0x78, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x63, 0x68, 0x6b, 0x73, 0x75, 0x6d, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x20, 0x30, 0x78, 0x25, 0x78, 0x21, 0x0a, 0x00, 0x64, 0x61, 0x74, 0x61, 0x20, 0x63, 0x68, 0x6b, 0x73, 0x75, 0x6d, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x20, 0x30, 0x78, 0x25, 0x78, 0x21, 0x0a, 0x00, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x68, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x70, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x68, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x70, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x74, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x6c, 0x6f, 0x61, 0x64, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x65, 0x70, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x61, 0x74, 0x74, 0x72, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x6e, 0x78, 0x74, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x25, 0x73, 0x0a, 0x00, 0x74, 0x6c, 0x76, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x20, 0x30, 0x78, 0x25, 0x78, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x74, 0x6c, 0x76, 0x20, 0x72, 0x73, 0x61, 0x20, 0x70, 0x6b, 0x65, 0x79, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x25, 0x64, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x74, 0x6c, 0x76, 0x20, 0x72, 0x73, 0x61, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x25, 0x64, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x74, 0x6c, 0x76, 0x20, 0x65, 0x63, 0x63, 0x20, 0x70, 0x6b, 0x65, 0x79, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x25, 0x64, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x74, 0x6c, 0x76, 0x20, 0x65, 0x63, 0x63, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x25, 0x64, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x20, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x25, 0x64, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x80, 0xba, 0x8c, 0x01, 0x00, 0x5a, 0x62, 0x02, 0x00, 0x36, 0x6e, 0x01, 0x00, 0x48, 0xe8, 0x01, 0x00, 0x00, 0x77, 0x01, 0xb2, 0x50, 0x0b, 0x04, 0xce, 0x50, 0x0b, 0x04, 0xef, 0x50, 0x0b, 0x04, 0x13, 0x51, 0x0b, 0x04, 0x36, 0x51, 0x0b, 0x04, 0x5b, 0x51, 0x0b, 0x04, 0x7e, 0x51, 0x0b, 0x04, 0xa0, 0x51, 0x0b, 0x04, 0xc4, 0x51, 0x0b, 0x04, 0xe8, 0x51, 0x0b, 0x04, 0x0b, 0x52, 0x0b, 0x04, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x61, 0x74, 0x63, 0x68, 0x64, 0x6f, 0x67, 0x20, 0x72, 0x65, 0x73, 0x65, 0x74, 0x20, 0x68, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x20, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x63, 0x70, 0x75, 0x2c, 0x20, 0x57, 0x41, 0x54, 0x43, 0x48, 0x44, 0x4f, 0x47, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x52, 0x45, 0x47, 0x3a, 0x20, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x0a, 0x00, 0x62, 0x6f, 0x6f, 0x74, 0x20, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x3a, 0x20, 0x25, 0x73, 0x0a, 0x00, 0x62, 0x6f, 0x6f, 0x74, 0x20, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x3a, 0x20, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x28, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x29, 0x0a, 0x00, 0x62, 0x6f, 0x6f, 0x74, 0x20, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x3a, 0x20, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x28, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x29, 0x0a, 0x00, 0x72, 0x74, 0x63, 0x5b, 0x25, 0x64, 0x5d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x65, 0x72, 0x61, 0x6c, 0x79, 0x20, 0x6a, 0x75, 0x6d, 0x70, 0x20, 0x66, 0x65, 0x6c, 0x0a, 0x00, 0x63, 0x61, 0x72, 0x73, 0x68, 0x64, 0x75, 0x6d, 0x70, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x2c, 0x20, 0x6a, 0x75, 0x6d, 0x70, 0x20, 0x66, 0x65, 0x6c, 0x0a, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4c, 0x44, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x43, 0x48, 0x49, 0x50, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x54, 0x5f, 0x50, 0x49, 0x4e, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x41, 0x52, 0x4d, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x41, 0x52, 0x4d, 0x5f, 0x50, 0x41, 0x4e, 0x49, 0x43, 0x5f, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x41, 0x52, 0x4d, 0x5f, 0x57, 0x41, 0x54, 0x43, 0x48, 0x44, 0x4f, 0x47, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x54, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x56, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x56, 0x5f, 0x50, 0x41, 0x4e, 0x49, 0x43, 0x5f, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x56, 0x5f, 0x57, 0x41, 0x54, 0x43, 0x48, 0x44, 0x4f, 0x47, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x54, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x44, 0x53, 0x50, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x44, 0x53, 0x50, 0x5f, 0x50, 0x41, 0x4e, 0x49, 0x43, 0x5f, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x44, 0x53, 0x50, 0x5f, 0x57, 0x41, 0x54, 0x43, 0x48, 0x44, 0x4f, 0x47, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x54, 0x00, 0x64, 0x6d, 0x61, 0x20, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x79, 0x65, 0x74, 0x0a, 0x00, 0x64, 0x6d, 0x61, 0x20, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x0a, 0x00, 0x64, 0x6d, 0x61, 0x20, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x73, 0x20, 0x66, 0x72, 0x65, 0x65, 0x2c, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x72, 0x65, 0x65, 0x20, 0x69, 0x74, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x0a, 0x00, 0x64, 0x6d, 0x61, 0x20, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x2c, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x72, 0x65, 0x65, 0x20, 0x69, 0x74, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x43, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x25, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x65, 0x6d, 0x21, 0x0a, 0x00, 0x2d, 0x2d, 0x2d, 0x6a, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x6d, 0x61, 0x78, 0x43, 0x61, 0x6c, 0x3a, 0x25, 0x78, 0x20, 0x6d, 0x69, 0x6e, 0x43, 0x61, 0x6c, 0x3a, 0x25, 0x78, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x43, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x25, 0x73, 0x3a, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x69, 0x6e, 0x64, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x20, 0x64, 0x71, 0x73, 0x0a, 0x00, 0x63, 0x61, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x2c, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x74, 0x65, 0x3a, 0x20, 0x25, 0x64, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x43, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x25, 0x70, 0x00, 0x5b, 0x50, 0x52, 0x43, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x25, 0x73, 0x2c, 0x25, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x63, 0x68, 0x69, 0x70, 0x3a, 0x25, 0x78, 0x0a, 0x00, 0x42, 0x55, 0x47, 0x20, 0x61, 0x74, 0x20, 0x25, 0x73, 0x3a, 0x25, 0x64, 0x21, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x43, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x50, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x77, 0x61, 0x69, 0x74, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x21, 0x20, 0x25, 0x78, 0x20, 0x25, 0x78, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x43, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x66, 0x69, 0x66, 0x6f, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x43, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x25, 0x73, 0x2c, 0x25, 0x64, 0x20, 0x65, 0x72, 0x72, 0x3a, 0x25, 0x64, 0x21, 0x21, 0x0a, 0x00, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x20, 0x61, 0x74, 0x20, 0x25, 0x73, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x50, 0x53, 0x52, 0x41, 0x4d, 0x5f, 0x43, 0x54, 0x52, 0x4c, 0x5f, 0x50, 0x6f, 0x6c, 0x6c, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x00, 0x48, 0x41, 0x4c, 0x5f, 0x50, 0x73, 0x72, 0x61, 0x6d, 0x43, 0x74, 0x72, 0x6c, 0x5f, 0x44, 0x51, 0x53, 0x5f, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x43, 0x61, 0x6c, 0x5f, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x00, 0x48, 0x41, 0x4c, 0x5f, 0x50, 0x73, 0x72, 0x61, 0x6d, 0x43, 0x74, 0x72, 0x6c, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x00, 0x48, 0x41, 0x4c, 0x5f, 0x50, 0x73, 0x72, 0x61, 0x6d, 0x43, 0x74, 0x72, 0x6c, 0x5f, 0x53, 0x65, 0x74, 0x5f, 0x42, 0x75, 0x73, 0x57, 0x69, 0x64, 0x74, 0x68, 0x00, 0x48, 0x41, 0x4c, 0x5f, 0x50, 0x73, 0x72, 0x61, 0x6d, 0x43, 0x74, 0x72, 0x6c, 0x5f, 0x53, 0x65, 0x74, 0x5f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x00, 0x48, 0x41, 0x4c, 0x5f, 0x50, 0x73, 0x72, 0x61, 0x6d, 0x43, 0x74, 0x72, 0x6c, 0x5f, 0x49, 0x6e, 0x69, 0x74, 0x00, 0x48, 0x41, 0x4c, 0x5f, 0x50, 0x73, 0x72, 0x61, 0x6d, 0x43, 0x74, 0x72, 0x6c, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x47, 0x65, 0x74, 0x20, 0x41, 0x50, 0x53, 0x33, 0x32, 0x20, 0x33, 0x32, 0x4d, 0x62, 0x20, 0x77, 0x72, 0x6f, 0x6e, 0x67, 0x20, 0x64, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, 0x3a, 0x4d, 0x52, 0x31, 0x28, 0x30, 0x78, 0x25, 0x78, 0x29, 0x2c, 0x4d, 0x52, 0x32, 0x28, 0x30, 0x78, 0x25, 0x78, 0x29, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x47, 0x65, 0x74, 0x20, 0x41, 0x50, 0x53, 0x33, 0x32, 0x20, 0x77, 0x72, 0x6f, 0x6e, 0x67, 0x20, 0x49, 0x44, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x41, 0x50, 0x53, 0x33, 0x32, 0x20, 0x42, 0x41, 0x44, 0x20, 0x64, 0x69, 0x65, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x41, 0x50, 0x53, 0x33, 0x32, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x47, 0x65, 0x74, 0x20, 0x41, 0x50, 0x53, 0x36, 0x34, 0x20, 0x36, 0x34, 0x4d, 0x62, 0x20, 0x77, 0x72, 0x6f, 0x6e, 0x67, 0x20, 0x64, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x47, 0x65, 0x74, 0x20, 0x41, 0x50, 0x53, 0x36, 0x34, 0x20, 0x77, 0x72, 0x6f, 0x6e, 0x67, 0x20, 0x49, 0x44, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x41, 0x50, 0x53, 0x36, 0x34, 0x20, 0x42, 0x41, 0x44, 0x20, 0x64, 0x69, 0x65, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x41, 0x50, 0x53, 0x36, 0x34, 0x00, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x62, 0x75, 0x73, 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6d, 0x64, 0x00, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x3a, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x0a, 0x00, 0x6c, 0x73, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x61, 0x70, 0x73, 0x33, 0x32, 0x0a, 0x00, 0x6c, 0x73, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x61, 0x70, 0x73, 0x36, 0x34, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2c, 0x20, 0x70, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x31, 0x20, 0x6f, 0x72, 0x20, 0x32, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x64, 0x21, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x0a, 0x00, 0x6c, 0x73, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x64, 0x71, 0x73, 0x3a, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x0a, 0x00, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x63, 0x68, 0x69, 0x70, 0x20, 0x25, 0x73, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x6f, 0x6b, 0x21, 0x2c, 0x20, 0x66, 0x72, 0x65, 0x71, 0x20, 0x25, 0x64, 0x0a, 0x00, 0x49, 0x6e, 0x69, 0x74, 0x20, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x6f, 0x6b, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x63, 0x68, 0x69, 0x70, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x64, 0x21, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x25, 0x73, 0x2c, 0x25, 0x64, 0x20, 0x75, 0x6e, 0x6b, 0x6f, 0x6e, 0x77, 0x20, 0x63, 0x6d, 0x64, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x46, 0x41, 0x49, 0x4c, 0x2e, 0x0a, 0x00, 0x25, 0x78, 0x20, 0x21, 0x3d, 0x20, 0x25, 0x78, 0x20, 0x61, 0x74, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x25, 0x78, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x4f, 0x4b, 0x2e, 0x0a, 0x00, 0x56, 0x32, 0x2e, 0x30, 0x30, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x42, 0x4f, 0x4f, 0x54, 0x20, 0x44, 0x52, 0x49, 0x56, 0x45, 0x20, 0x49, 0x4e, 0x46, 0x4f, 0x3a, 0x20, 0x25, 0x73, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x43, 0x4c, 0x4b, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x4d, 0x48, 0x5a, 0x0a, 0x00, 0x64, 0x72, 0x61, 0x6d, 0x5f, 0x74, 0x70, 0x72, 0x31, 0x31, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x20, 0x2c, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x5f, 0x74, 0x70, 0x72, 0x31, 0x32, 0x20, 0x3d, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x64, 0x72, 0x61, 0x6d, 0x5f, 0x74, 0x70, 0x72, 0x39, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x53, 0x49, 0x5a, 0x45, 0x20, 0x3d, 0x25, 0x64, 0x20, 0x4d, 0x42, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x44, 0x51, 0x53, 0x20, 0x67, 0x61, 0x74, 0x65, 0x20, 0x69, 0x73, 0x20, 0x4e, 0x4c, 0x2e, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x44, 0x51, 0x53, 0x20, 0x67, 0x61, 0x74, 0x65, 0x20, 0x69, 0x73, 0x20, 0x50, 0x55, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x44, 0x51, 0x53, 0x20, 0x67, 0x61, 0x74, 0x65, 0x20, 0x69, 0x73, 0x20, 0x50, 0x44, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x00, 0x66, 0x65, 0x73, 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x3a, 0x25, 0x73, 0x0a, 0x00, 0x66, 0x61, 0x6b, 0x65, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x6f, 0x6b, 0x0a, 0x00, 0x68, 0x65, 0x61, 0x70, 0x3a, 0x20, 0x30, 0x78, 0x25, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x6c, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x0a, 0x00, 0x73, 0x6b, 0x69, 0x70, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x6c, 0x73, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x0a, 0x00, 0x68, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x0a, 0x00, 0x68, 0x73, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x21, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x20, 0x25, 0x64, 0x0a, 0x00, 0x73, 0x6b, 0x69, 0x70, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x68, 0x73, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x0a, 0x00, 0x66, 0x65, 0x73, 0x31, 0x20, 0x64, 0x6f, 0x6e, 0x65, 0x0a, 0x00, 0x00, 0x00, 0x10, 0xe9, 0xff, 0x7f, 0x01, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x68, 0x9f, 0x98, 0x33, 0x92, 0x1b, 0x97, 0x59, 0xe8, 0x74, 0xb0, 0x1c, 0x59, 0x95, 0x1a, 0x20, 0x2a, 0x90, 0xdf, 0x4f, 0x40, 0x15, 0x72, 0x17 }; static const uint8_t r128_xr875_payload[] = { 0x00, 0xf0, 0xe2, 0xb9, 0x65, 0x47, 0x4f, 0x4e, 0x2e, 0x42, 0x54, 0x30, 0x90, 0x84, 0x21, 0x31, 0xa0, 0x59, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x33, 0x30, 0x30, 0x30, 0x40, 0x03, 0x0b, 0x04, 0x00, 0x00, 0x0b, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x2e, 0x30, 0x2e, 0x30, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 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, 0x01, 0x10, 0x05, 0x01, 0xff, 0xff, 0x00, 0x00, 0x01, 0x11, 0x05, 0x01, 0xff, 0xff, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x02, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x03, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x04, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x05, 0x02, 0x01, 0x02, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x37, 0x64, 0x65, 0x30, 0x34, 0x62, 0x37, 0x63, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0xf8, 0x04, 0xed, 0x00, 0xf0, 0x0a, 0xf8, 0x03, 0xf0, 0x7e, 0xfe, 0x5d, 0xf8, 0x04, 0xeb, 0xf7, 0x46, 0xfe, 0xe7, 0xfe, 0xe7, 0x00, 0x00, 0xff, 0xf7, 0xf2, 0xbf, 0x06, 0x48, 0x07, 0x49, 0x4f, 0xf0, 0x00, 0x02, 0x88, 0x42, 0x00, 0xd1, 0xf7, 0x46, 0x02, 0x60, 0x00, 0xf1, 0x04, 0x00, 0x88, 0x42, 0xfa, 0xd1, 0xf7, 0x46, 0x00, 0x00, 0x88, 0x59, 0x0b, 0x04, 0xa8, 0x5a, 0x0b, 0x04, 0xf8, 0xb5, 0x6f, 0xf0, 0x7f, 0x46, 0x0f, 0x4b, 0x0f, 0x49, 0x9a, 0x68, 0x0b, 0x68, 0xb2, 0x1a, 0x9a, 0x42, 0x0e, 0x48, 0xa2, 0xeb, 0x03, 0x03, 0x38, 0xbf, 0x9b, 0x19, 0xd0, 0xe9, 0x00, 0x45, 0xe6, 0x18, 0x4f, 0xf4, 0x7a, 0x73, 0x45, 0xf1, 0x00, 0x07, 0xc0, 0xe9, 0x00, 0x67, 0x0a, 0x60, 0xa6, 0xfb, 0x03, 0x01, 0x03, 0xfb, 0x07, 0x11, 0x05, 0x4b, 0x1a, 0x68, 0x00, 0x23, 0x03, 0xf0, 0xc1, 0xfe, 0xf8, 0xbd, 0x10, 0xe0, 0x00, 0xe0, 0x88, 0x59, 0x0b, 0x04, 0xd8, 0x59, 0x0b, 0x04, 0xd0, 0x59, 0x0b, 0x04, 0xf8, 0xb5, 0x6f, 0xf0, 0x7f, 0x46, 0x0f, 0x4b, 0x0f, 0x49, 0x9a, 0x68, 0x0b, 0x68, 0xb2, 0x1a, 0x9a, 0x42, 0x0e, 0x48, 0xa2, 0xeb, 0x03, 0x03, 0x38, 0xbf, 0x9b, 0x19, 0xd0, 0xe9, 0x00, 0x45, 0xe6, 0x18, 0x0b, 0x4b, 0x45, 0xf1, 0x00, 0x07, 0xc0, 0xe9, 0x00, 0x67, 0x0a, 0x60, 0xa6, 0xfb, 0x03, 0x01, 0x03, 0xfb, 0x07, 0x11, 0x07, 0x4b, 0x1a, 0x68, 0x00, 0x23, 0x03, 0xf0, 0x98, 0xfe, 0xf8, 0xbd, 0x00, 0xbf, 0x10, 0xe0, 0x00, 0xe0, 0x88, 0x59, 0x0b, 0x04, 0xd8, 0x59, 0x0b, 0x04, 0x40, 0x42, 0x0f, 0x00, 0xd0, 0x59, 0x0b, 0x04, 0x6f, 0xf0, 0x7f, 0x42, 0x23, 0x4b, 0x2d, 0xe9, 0xf3, 0x47, 0x23, 0x49, 0x9e, 0x68, 0x0b, 0x68, 0x96, 0x1b, 0x9e, 0x42, 0x21, 0x4f, 0xa6, 0xeb, 0x03, 0x03, 0x38, 0xbf, 0x9b, 0x18, 0xd7, 0xe9, 0x00, 0x45, 0x8a, 0x46, 0xe1, 0x18, 0x1e, 0x4b, 0x45, 0xf1, 0x00, 0x02, 0xcd, 0xe9, 0x00, 0x12, 0x19, 0x68, 0x1c, 0x4a, 0x00, 0x23, 0xa0, 0xfb, 0x01, 0x01, 0x03, 0xf0, 0x6d, 0xfe, 0x6f, 0xf0, 0x7f, 0x4c, 0x00, 0x9b, 0x01, 0x9a, 0xc3, 0x18, 0x41, 0xeb, 0x02, 0x02, 0x16, 0x48, 0x13, 0xf1, 0x01, 0x08, 0x10, 0x49, 0x42, 0xf1, 0x00, 0x09, 0x8b, 0x68, 0xac, 0xeb, 0x03, 0x02, 0x96, 0x42, 0x86, 0xbf, 0xc3, 0x1a, 0x9e, 0x1b, 0x96, 0x1b, 0xdd, 0xe9, 0x00, 0x34, 0x9b, 0x19, 0x44, 0xf1, 0x00, 0x04, 0xcd, 0xe9, 0x00, 0x34, 0xdd, 0xe9, 0x00, 0x34, 0x4c, 0x45, 0x08, 0xbf, 0x43, 0x45, 0x16, 0x46, 0xe9, 0xd3, 0xca, 0xf8, 0x00, 0x20, 0xc7, 0xe9, 0x00, 0x34, 0x02, 0xb0, 0xbd, 0xe8, 0xf0, 0x87, 0x00, 0xbf, 0x10, 0xe0, 0x00, 0xe0, 0x88, 0x59, 0x0b, 0x04, 0xd8, 0x59, 0x0b, 0x04, 0xd0, 0x59, 0x0b, 0x04, 0x40, 0x42, 0x0f, 0x00, 0xfe, 0xff, 0xff, 0x01, 0x38, 0xb5, 0x05, 0x46, 0x00, 0x24, 0xac, 0x42, 0x00, 0xd1, 0x38, 0xbd, 0x4f, 0xf4, 0x7a, 0x70, 0xff, 0xf7, 0xa0, 0xff, 0x01, 0x34, 0xf6, 0xe7, 0x08, 0xb5, 0xff, 0xf7, 0x9b, 0xff, 0x08, 0xbd, 0x08, 0xb5, 0xff, 0xf7, 0xed, 0xff, 0x08, 0xbd, 0x00, 0x20, 0x70, 0x47, 0x01, 0x38, 0xfd, 0xd1, 0x70, 0x47, 0x70, 0x47, 0x1e, 0x49, 0x00, 0x23, 0x08, 0x46, 0x10, 0xb5, 0x1d, 0x4a, 0x51, 0xf8, 0x23, 0x40, 0x01, 0x33, 0x10, 0x2b, 0x42, 0xf8, 0x04, 0x4b, 0xf8, 0xd1, 0x00, 0x23, 0x4f, 0xf0, 0xff, 0x31, 0x03, 0xf1, 0x20, 0x02, 0x01, 0x33, 0x10, 0x2b, 0x40, 0xf8, 0x22, 0x10, 0xf8, 0xd1, 0x15, 0x4b, 0x16, 0x49, 0xda, 0x68, 0xc2, 0xf3, 0x02, 0x22, 0x0a, 0x60, 0x99, 0x68, 0x14, 0x4a, 0x11, 0x60, 0xda, 0x68, 0x22, 0xf4, 0xe0, 0x62, 0x12, 0x04, 0x12, 0x0c, 0x42, 0xf0, 0xbf, 0x62, 0x42, 0xf4, 0x01, 0x32, 0xda, 0x60, 0x0f, 0x4a, 0x9a, 0x60, 0xbf, 0xf3, 0x4f, 0x8f, 0x5a, 0x6a, 0x42, 0xf4, 0xe0, 0x22, 0x5a, 0x62, 0x5a, 0x69, 0x42, 0xf0, 0x10, 0x02, 0x5a, 0x61, 0x00, 0x23, 0x83, 0xf3, 0x10, 0x88, 0x83, 0xf3, 0x13, 0x88, 0x83, 0xf3, 0x11, 0x88, 0x10, 0xbd, 0x00, 0xbf, 0x00, 0xe1, 0x00, 0xe0, 0x8c, 0x59, 0x0b, 0x04, 0x00, 0xed, 0x00, 0xe0, 0xcc, 0x59, 0x0b, 0x04, 0xd4, 0x59, 0x0b, 0x04, 0x00, 0x48, 0x0b, 0x04, 0x70, 0x47, 0x00, 0x00, 0x6f, 0xf0, 0x7f, 0x42, 0x05, 0x4b, 0x5a, 0x60, 0x00, 0x22, 0x9a, 0x60, 0x01, 0x22, 0x1a, 0x60, 0x03, 0x4b, 0x1a, 0x68, 0x03, 0x4b, 0x1a, 0x60, 0x70, 0x47, 0x00, 0xbf, 0x10, 0xe0, 0x00, 0xe0, 0xd8, 0x59, 0x0b, 0x04, 0x88, 0x59, 0x0b, 0x04, 0x00, 0x20, 0x00, 0x21, 0x15, 0x4b, 0x10, 0xb5, 0xc3, 0xe9, 0x00, 0x01, 0xff, 0xf7, 0x98, 0xff, 0x00, 0xf0, 0xfa, 0xf8, 0x12, 0x4b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x03, 0xf0, 0x07, 0x03, 0x04, 0x2b, 0x98, 0xbf, 0x0f, 0x4a, 0x10, 0x48, 0x9b, 0xbf, 0x52, 0xf8, 0x23, 0x10, 0x0f, 0x4a, 0x10, 0x22, 0xd2, 0x5c, 0x88, 0xbf, 0x0e, 0x49, 0x04, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x0d, 0x4b, 0x01, 0x3a, 0x23, 0x40, 0x13, 0x43, 0x43, 0xf0, 0x00, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x03, 0x60, 0x09, 0x4b, 0xbd, 0xe8, 0x10, 0x40, 0x19, 0x60, 0xff, 0xf7, 0xbe, 0xbf, 0xd8, 0x59, 0x0b, 0x04, 0x84, 0xc4, 0x04, 0x40, 0x40, 0x48, 0x0b, 0x04, 0x40, 0xc0, 0x03, 0x40, 0x54, 0x48, 0x0b, 0x04, 0x00, 0x09, 0x3d, 0x00, 0xf0, 0xff, 0xfc, 0xfc, 0xd0, 0x59, 0x0b, 0x04, 0x02, 0x4a, 0x13, 0x68, 0x23, 0xf0, 0x03, 0x03, 0x13, 0x60, 0x70, 0x47, 0x10, 0xe0, 0x00, 0xe0, 0x0f, 0x4a, 0x10, 0x4b, 0xd1, 0x68, 0x1b, 0x68, 0x21, 0xf4, 0xe0, 0x61, 0x1b, 0x02, 0x09, 0x04, 0x09, 0x0c, 0x03, 0xf4, 0xe0, 0x63, 0x0b, 0x43, 0x43, 0xf0, 0xbf, 0x63, 0x43, 0xf4, 0x00, 0x33, 0xd3, 0x60, 0x09, 0x4b, 0x09, 0x49, 0x1b, 0x68, 0x93, 0x60, 0x00, 0x23, 0x08, 0x4a, 0x52, 0xf8, 0x04, 0x0b, 0x41, 0xf8, 0x23, 0x00, 0x01, 0x33, 0x10, 0x2b, 0xf8, 0xd1, 0x70, 0x47, 0x00, 0xbf, 0x00, 0xed, 0x00, 0xe0, 0xcc, 0x59, 0x0b, 0x04, 0xd4, 0x59, 0x0b, 0x04, 0x00, 0xe1, 0x00, 0xe0, 0x8c, 0x59, 0x0b, 0x04, 0x70, 0x47, 0x70, 0x47, 0x00, 0x47, 0x70, 0x47, 0x70, 0x47, 0x70, 0x47, 0x70, 0x47, 0x00, 0x00, 0x08, 0xb5, 0x00, 0xf0, 0x9b, 0xf8, 0x02, 0x48, 0x00, 0xf0, 0x4a, 0xfb, 0x00, 0x20, 0x08, 0xbd, 0x59, 0x48, 0x0b, 0x04, 0x00, 0x20, 0x70, 0x47, 0x00, 0x20, 0x70, 0x47, 0x70, 0x47, 0x70, 0x47, 0x08, 0xb5, 0x12, 0x48, 0x00, 0xf0, 0x3c, 0xfb, 0xbf, 0xf3, 0x5f, 0x8f, 0x10, 0x4b, 0x11, 0x4a, 0x1a, 0x60, 0x11, 0x4a, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf0, 0x01, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0x04, 0x3a, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf0, 0x01, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x08, 0x4b, 0xa2, 0xf5, 0xde, 0x32, 0x13, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x53, 0x60, 0xfe, 0xe7, 0x00, 0xbf, 0x68, 0x48, 0x0b, 0x04, 0xc0, 0x01, 0x05, 0x40, 0x04, 0x00, 0x9b, 0x42, 0x18, 0xc0, 0x03, 0x40, 0x01, 0x00, 0xaa, 0x16, 0x22, 0x4a, 0x38, 0xb5, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf0, 0x40, 0x73, 0xbf, 0xf3, 0x5f, 0x8f, 0x1f, 0x4c, 0x13, 0x60, 0x23, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf0, 0x00, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0x60, 0x22, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x19, 0x4d, 0x2a, 0x40, 0x42, 0xf4, 0x9e, 0x42, 0xbf, 0xf3, 0x5f, 0x8f, 0x0a, 0x20, 0x22, 0x60, 0xff, 0xf7, 0x58, 0xfe, 0x22, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x42, 0xf0, 0x20, 0x42, 0xbf, 0xf3, 0x5f, 0x8f, 0x22, 0x60, 0x22, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x22, 0xf0, 0x00, 0x52, 0xbf, 0xf3, 0x5f, 0x8f, 0x22, 0x60, 0x23, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x2b, 0x40, 0x43, 0xf4, 0x44, 0x53, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0x60, 0x23, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf0, 0x00, 0x53, 0xbf, 0xf3, 0x5f, 0x8f, 0x0a, 0x20, 0x23, 0x60, 0xbd, 0xe8, 0x38, 0x40, 0xff, 0xf7, 0x32, 0xbe, 0x10, 0xc5, 0x03, 0x40, 0x20, 0xc0, 0x03, 0x40, 0xfc, 0x00, 0xff, 0xff, 0x06, 0x4b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0xf4, 0x7f, 0x0f, 0x04, 0xd1, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x22, 0x02, 0x4b, 0x1a, 0x60, 0x70, 0x47, 0x00, 0xbf, 0x80, 0x00, 0x05, 0x40, 0x84, 0xc4, 0x04, 0x40, 0x01, 0x48, 0x00, 0xf0, 0xaf, 0xba, 0x00, 0xbf, 0x79, 0x48, 0x0b, 0x04, 0x0c, 0x4a, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf0, 0x40, 0x73, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0x10, 0x32, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf0, 0x40, 0x73, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x40, 0xf2, 0x01, 0x32, 0x02, 0x4b, 0x1a, 0x60, 0x70, 0x47, 0x00, 0xbf, 0x10, 0xc5, 0x03, 0x40, 0x00, 0xc5, 0x03, 0x40, 0x38, 0xb5, 0x0d, 0x4d, 0x2c, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x24, 0xf4, 0x80, 0x34, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x20, 0x2c, 0x60, 0xff, 0xf7, 0xe9, 0xfd, 0x44, 0xf4, 0x80, 0x34, 0xbf, 0xf3, 0x5f, 0x8f, 0x2c, 0x60, 0x2b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf0, 0x01, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x20, 0x2b, 0x60, 0x38, 0xbd, 0xec, 0xc9, 0x03, 0x40, 0x05, 0x4a, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf0, 0x01, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x20, 0x13, 0x60, 0x70, 0x47, 0x00, 0xbf, 0xec, 0xc9, 0x03, 0x40, 0x11, 0x4a, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf4, 0x80, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0x43, 0xf4, 0x80, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0x08, 0x3a, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf4, 0x80, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0x43, 0xf4, 0x80, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x01, 0x42, 0x02, 0x4b, 0x1a, 0x60, 0x70, 0x47, 0x00, 0xbf, 0x0c, 0xc0, 0x03, 0x40, 0x54, 0xc0, 0x03, 0x40, 0x0e, 0x49, 0x0b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x82, 0x1d, 0x01, 0x20, 0x90, 0x40, 0xc2, 0x43, 0x13, 0x40, 0xbf, 0xf3, 0x5f, 0x8f, 0x0b, 0x60, 0x03, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x0b, 0x60, 0x08, 0x39, 0x0b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x40, 0xbf, 0xf3, 0x5f, 0x8f, 0x0b, 0x60, 0x18, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x08, 0x60, 0x70, 0x47, 0x00, 0xbf, 0x0c, 0xc0, 0x03, 0x40, 0x42, 0x1e, 0x11, 0xf8, 0x01, 0x3b, 0x02, 0xf8, 0x01, 0x3f, 0x00, 0x2b, 0xf9, 0xd1, 0x70, 0x47, 0x10, 0xb5, 0x0a, 0x44, 0x44, 0x1e, 0x91, 0x42, 0x05, 0xd0, 0x11, 0xf8, 0x01, 0x3b, 0x04, 0xf8, 0x01, 0x3f, 0x00, 0x2b, 0xf7, 0xd1, 0x10, 0xbd, 0x03, 0x46, 0x10, 0xb5, 0x1a, 0x46, 0x12, 0xf8, 0x01, 0x4b, 0x3c, 0xb9, 0x01, 0x3b, 0x11, 0xf8, 0x01, 0x2b, 0x03, 0xf8, 0x01, 0x2f, 0x00, 0x2a, 0xf9, 0xd1, 0x10, 0xbd, 0x13, 0x46, 0xf1, 0xe7, 0x30, 0xb5, 0x7a, 0xb1, 0x03, 0x46, 0x1c, 0x46, 0x14, 0xf8, 0x01, 0x5b, 0x5d, 0xb9, 0x01, 0x39, 0x1a, 0x44, 0x11, 0xf8, 0x01, 0x4f, 0x03, 0xf8, 0x01, 0x4b, 0x1c, 0xb1, 0x93, 0x42, 0xf8, 0xd1, 0x00, 0x22, 0x1a, 0x70, 0x30, 0xbd, 0x23, 0x46, 0xed, 0xe7, 0x42, 0x1e, 0x12, 0xf8, 0x01, 0x3f, 0x11, 0xf8, 0x01, 0x0b, 0x18, 0x1a, 0x40, 0xb2, 0x08, 0xb9, 0x00, 0x2b, 0xf6, 0xd1, 0x70, 0x47, 0x10, 0xb5, 0x43, 0x1e, 0x0a, 0x44, 0x91, 0x42, 0x01, 0xd1, 0x00, 0x20, 0x08, 0xe0, 0x13, 0xf8, 0x01, 0x4f, 0x11, 0xf8, 0x01, 0x0b, 0x20, 0x1a, 0x40, 0xb2, 0x08, 0xb9, 0x00, 0x2c, 0xf2, 0xd1, 0x10, 0xbd, 0xc9, 0xb2, 0x02, 0x78, 0x03, 0x46, 0x8a, 0x42, 0x00, 0xf1, 0x01, 0x00, 0x01, 0xd1, 0x18, 0x46, 0x70, 0x47, 0x00, 0x2a, 0xf5, 0xd1, 0x13, 0x46, 0xf9, 0xe7, 0x03, 0x46, 0x1a, 0x46, 0x11, 0x78, 0x01, 0x33, 0x00, 0x29, 0xfa, 0xd1, 0x10, 0x1a, 0x70, 0x47, 0x38, 0xb5, 0x05, 0x46, 0x0c, 0x46, 0xff, 0xf7, 0xf3, 0xff, 0xe4, 0xb2, 0x2b, 0x18, 0x18, 0x46, 0x13, 0xf8, 0x01, 0x29, 0xa2, 0x42, 0x02, 0xd0, 0x9d, 0x42, 0xf8, 0xd9, 0x00, 0x20, 0x38, 0xbd, 0x02, 0x46, 0x10, 0xb5, 0x01, 0x44, 0x8a, 0x42, 0x13, 0x46, 0x03, 0xd0, 0x1c, 0x78, 0x01, 0x32, 0x00, 0x2c, 0xf8, 0xd1, 0x18, 0x1a, 0x10, 0xbd, 0x00, 0x23, 0x30, 0xb5, 0xc4, 0x5c, 0x3c, 0xb1, 0x4a, 0x1e, 0x01, 0xe0, 0xa5, 0x42, 0x05, 0xd0, 0x12, 0xf8, 0x01, 0x5f, 0x00, 0x2d, 0xf9, 0xd1, 0x18, 0x46, 0x30, 0xbd, 0x01, 0x33, 0xf1, 0xe7, 0x30, 0xb5, 0x00, 0x24, 0xa2, 0x42, 0x01, 0xd1, 0x00, 0x23, 0x06, 0xe0, 0x03, 0x5d, 0x0d, 0x5d, 0x01, 0x34, 0x5b, 0x1b, 0x5b, 0xb2, 0x00, 0x2b, 0xf4, 0xd0, 0x18, 0x46, 0x30, 0xbd, 0x03, 0x46, 0x10, 0xb5, 0x02, 0x44, 0x93, 0x42, 0x18, 0x46, 0x03, 0xd0, 0x04, 0x78, 0x01, 0x33, 0x8c, 0x42, 0xf8, 0xd1, 0x10, 0xbd, 0x2d, 0xe9, 0xf0, 0x41, 0x04, 0x46, 0x08, 0x46, 0x0f, 0x46, 0xff, 0xf7, 0xab, 0xff, 0x06, 0x46, 0x98, 0xb1, 0x20, 0x46, 0xff, 0xf7, 0xa6, 0xff, 0x05, 0x46, 0x04, 0xeb, 0x00, 0x08, 0xb5, 0x42, 0xa8, 0xeb, 0x05, 0x04, 0x01, 0xda, 0x00, 0x24, 0x07, 0xe0, 0x32, 0x46, 0x39, 0x46, 0x20, 0x46, 0x01, 0x3d, 0xff, 0xf7, 0xcb, 0xff, 0x00, 0x28, 0xf1, 0xd1, 0x20, 0x46, 0xbd, 0xe8, 0xf0, 0x81, 0x10, 0xb5, 0x02, 0x44, 0xc9, 0xb2, 0x90, 0x42, 0x01, 0xd1, 0x00, 0x20, 0x10, 0xbd, 0x03, 0x46, 0x13, 0xf8, 0x01, 0x4b, 0x8c, 0x42, 0xf9, 0xd0, 0x18, 0x46, 0xf4, 0xe7, 0x83, 0x68, 0x5a, 0x1c, 0x82, 0x60, 0x19, 0x70, 0x70, 0x47, 0x08, 0x46, 0x00, 0xf0, 0x42, 0xbc, 0x30, 0xb5, 0x00, 0x25, 0x0b, 0x68, 0xec, 0xb2, 0x93, 0x42, 0x05, 0xf1, 0x01, 0x05, 0x0e, 0xd2, 0x03, 0x79, 0x23, 0x43, 0x0a, 0xd0, 0x0a, 0x2c, 0x34, 0xbf, 0x30, 0x23, 0x57, 0x23, 0x02, 0x68, 0x23, 0x44, 0x51, 0x1c, 0x01, 0x60, 0x13, 0x70, 0x01, 0x23, 0x03, 0x71, 0x30, 0xbd, 0x9b, 0x1a, 0x0b, 0x60, 0xe7, 0xe7, 0x2d, 0xe9, 0xf0, 0x4f, 0x04, 0x46, 0x0d, 0x46, 0x90, 0x46, 0x85, 0xb0, 0x01, 0xae, 0xa9, 0x46, 0x19, 0xf8, 0x01, 0x7b, 0x1f, 0xb9, 0x00, 0x20, 0x05, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x25, 0x2f, 0x0b, 0xd0, 0x0a, 0x2f, 0x03, 0xd1, 0xe3, 0x68, 0x0d, 0x21, 0x20, 0x46, 0x98, 0x47, 0xe3, 0x68, 0x39, 0x46, 0x20, 0x46, 0x98, 0x47, 0x4d, 0x46, 0xe9, 0xe7, 0x6b, 0x78, 0x00, 0x27, 0x2d, 0x2b, 0x0a, 0xbf, 0xab, 0x78, 0x02, 0x35, 0x03, 0x35, 0x30, 0x2b, 0x04, 0xbf, 0x15, 0xf8, 0x01, 0x3b, 0x4f, 0xf0, 0x01, 0x0a, 0xa3, 0xf1, 0x30, 0x02, 0x18, 0xbf, 0x4f, 0xf0, 0x00, 0x0a, 0x09, 0x2a, 0x09, 0xd8, 0x0a, 0x21, 0x01, 0xfb, 0x07, 0x37, 0x15, 0xf8, 0x01, 0x3b, 0x30, 0x3f, 0xa3, 0xf1, 0x30, 0x02, 0x09, 0x2a, 0xf6, 0xd9, 0x00, 0x21, 0x6c, 0x2b, 0x08, 0xbf, 0x15, 0xf8, 0x01, 0x3b, 0x26, 0x60, 0x64, 0x2b, 0x21, 0x71, 0x2d, 0xd0, 0x07, 0xd8, 0x25, 0x2b, 0x68, 0xd0, 0x63, 0x2b, 0x64, 0xd0, 0x00, 0x2b, 0xbf, 0xd0, 0xb1, 0x46, 0x6a, 0xe0, 0x73, 0x2b, 0x66, 0xd0, 0x0c, 0xd8, 0x70, 0x2b, 0xf8, 0xd1, 0x08, 0xf1, 0x04, 0x08, 0x2b, 0x46, 0x46, 0x49, 0x13, 0xf8, 0x01, 0x2b, 0x8a, 0x5c, 0x52, 0x07, 0xef, 0xd0, 0x1d, 0x46, 0xf6, 0xe7, 0x75, 0x2b, 0x12, 0xd0, 0x78, 0x2b, 0xe9, 0xd1, 0xd8, 0xf8, 0x00, 0x30, 0x08, 0xf1, 0x04, 0x09, 0x00, 0x93, 0x00, 0x9b, 0xb3, 0xbb, 0x0d, 0xf1, 0x05, 0x03, 0x23, 0x60, 0x30, 0x23, 0x8d, 0xf8, 0x04, 0x30, 0x01, 0x23, 0x23, 0x71, 0xc8, 0x46, 0xd8, 0xe7, 0xd8, 0xf8, 0x00, 0x20, 0x64, 0x2b, 0x08, 0xf1, 0x04, 0x0b, 0x00, 0x92, 0x11, 0xd0, 0x00, 0x9b, 0xd3, 0xb1, 0x4f, 0xf0, 0x0a, 0x08, 0xdf, 0xf8, 0xcc, 0x90, 0x4a, 0x46, 0x69, 0x46, 0x20, 0x46, 0xff, 0xf7, 0x62, 0xff, 0x0a, 0x23, 0xb8, 0xf1, 0x01, 0x08, 0xb9, 0xfb, 0xf3, 0xf9, 0xf4, 0xd1, 0x11, 0xe0, 0x00, 0x2a, 0xeb, 0xda, 0x0d, 0xf1, 0x05, 0x03, 0x23, 0x60, 0x2d, 0x23, 0x52, 0x42, 0x00, 0x92, 0x8d, 0xf8, 0x04, 0x30, 0xe4, 0xe7, 0x23, 0x68, 0x5a, 0x1c, 0x22, 0x60, 0x30, 0x22, 0x1a, 0x70, 0x01, 0x23, 0x23, 0x71, 0xd8, 0x46, 0xab, 0xe7, 0x4f, 0xf0, 0x08, 0x08, 0x4f, 0xf0, 0x80, 0x5b, 0x5a, 0x46, 0x69, 0x46, 0x20, 0x46, 0xff, 0xf7, 0x3e, 0xff, 0xb8, 0xf1, 0x01, 0x08, 0x4f, 0xea, 0x1b, 0x1b, 0xf5, 0xd1, 0xc1, 0xe7, 0x58, 0xf8, 0x04, 0x3b, 0x0d, 0xf1, 0x05, 0x02, 0x22, 0x60, 0x8d, 0xf8, 0x04, 0x30, 0x94, 0xe7, 0x58, 0xf8, 0x04, 0x9b, 0x00, 0x22, 0x23, 0x68, 0x1a, 0x70, 0xc4, 0xf8, 0x00, 0x90, 0x23, 0x68, 0x5a, 0x1c, 0x22, 0x60, 0x1b, 0x78, 0x03, 0xb1, 0xb7, 0xb9, 0xba, 0xf1, 0x00, 0x0f, 0x14, 0xbf, 0x4f, 0xf0, 0x30, 0x0a, 0x4f, 0xf0, 0x20, 0x0a, 0x17, 0xf1, 0xff, 0x37, 0x0e, 0xd2, 0xb9, 0xf1, 0x00, 0x0f, 0x3f, 0xf4, 0x36, 0xaf, 0x19, 0xf8, 0x01, 0x1b, 0x00, 0x29, 0x3f, 0xf4, 0x31, 0xaf, 0xe3, 0x68, 0x20, 0x46, 0x98, 0x47, 0xf6, 0xe7, 0x01, 0x3f, 0xe0, 0xe7, 0xe3, 0x68, 0x51, 0x46, 0x20, 0x46, 0x98, 0x47, 0xe8, 0xe7, 0x00, 0xbf, 0x86, 0x48, 0x0b, 0x04, 0x00, 0xca, 0x9a, 0x3b, 0x1f, 0xb5, 0x05, 0x4b, 0x0a, 0x46, 0x01, 0x46, 0x68, 0x46, 0x03, 0x93, 0xff, 0xf7, 0x12, 0xff, 0x05, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x00, 0xbf, 0x77, 0x0b, 0x0b, 0x04, 0x08, 0x28, 0x9d, 0xbf, 0x02, 0x4b, 0x18, 0x70, 0x00, 0x20, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x80, 0x59, 0x0b, 0x04, 0x01, 0x4b, 0x18, 0x78, 0x70, 0x47, 0x00, 0xbf, 0x80, 0x59, 0x0b, 0x04, 0x0e, 0xb4, 0x3f, 0xb5, 0x07, 0xaa, 0x52, 0xf8, 0x04, 0x1b, 0x07, 0x4b, 0x04, 0x90, 0x02, 0xa8, 0x01, 0x92, 0x05, 0x93, 0xff, 0xf7, 0xf0, 0xfe, 0x00, 0x22, 0x04, 0x9b, 0x1a, 0x70, 0x06, 0xb0, 0x5d, 0xf8, 0x04, 0xeb, 0x03, 0xb0, 0x70, 0x47, 0x6d, 0x0b, 0x0b, 0x04, 0x0f, 0xb4, 0x30, 0xb5, 0x89, 0xb0, 0xff, 0xf7, 0x0d, 0xfb, 0x0e, 0x49, 0x02, 0x46, 0x01, 0xa8, 0xff, 0xf7, 0xe0, 0xff, 0x00, 0x25, 0x01, 0xac, 0x14, 0xf8, 0x01, 0x0b, 0x20, 0xb1, 0x01, 0x35, 0x00, 0xf0, 0xfc, 0xfa, 0x0c, 0x2d, 0xf7, 0xd1, 0x07, 0x4b, 0x0d, 0xaa, 0x0c, 0x99, 0x04, 0xa8, 0x07, 0x93, 0x00, 0x92, 0xff, 0xf7, 0xca, 0xfe, 0x09, 0xb0, 0xbd, 0xe8, 0x30, 0x40, 0x04, 0xb0, 0x70, 0x47, 0x00, 0xbf, 0x94, 0x49, 0x0b, 0x04, 0x77, 0x0b, 0x0b, 0x04, 0x01, 0x46, 0x01, 0x48, 0xff, 0xf7, 0xd6, 0xbf, 0x99, 0x49, 0x0b, 0x04, 0x0c, 0xb4, 0x7f, 0xb5, 0x08, 0xaa, 0x52, 0xf8, 0x04, 0x1b, 0x07, 0x4b, 0x04, 0x90, 0x02, 0xa8, 0x01, 0x92, 0x05, 0x93, 0xff, 0xf7, 0xae, 0xfe, 0x00, 0x22, 0x04, 0x9b, 0x1a, 0x70, 0x07, 0xb0, 0x5d, 0xf8, 0x04, 0xeb, 0x02, 0xb0, 0x70, 0x47, 0x6d, 0x0b, 0x0b, 0x04, 0x08, 0xb5, 0xff, 0xf7, 0xcd, 0xfa, 0xbd, 0xe8, 0x08, 0x40, 0x01, 0x46, 0x01, 0x48, 0xff, 0xf7, 0xb5, 0xbf, 0x00, 0xbf, 0x86, 0x49, 0x0b, 0x04, 0x89, 0x08, 0xf8, 0xb5, 0x0e, 0x46, 0x00, 0x24, 0x18, 0x4b, 0x45, 0x69, 0x00, 0xf1, 0x10, 0x02, 0x43, 0x61, 0x52, 0xe9, 0x04, 0x37, 0x3b, 0x44, 0x52, 0xf8, 0x08, 0x7c, 0x04, 0x3e, 0x3b, 0x44, 0x52, 0xf8, 0x04, 0x7c, 0x03, 0x2e, 0x3b, 0x44, 0x1c, 0x44, 0x02, 0xf1, 0x10, 0x02, 0xf0, 0xd8, 0x0b, 0x1f, 0x9b, 0x08, 0x01, 0x33, 0x00, 0xeb, 0x03, 0x13, 0x01, 0xf0, 0x03, 0x01, 0x03, 0xeb, 0x81, 0x01, 0x8b, 0x42, 0x0d, 0xd1, 0x45, 0x61, 0x21, 0x46, 0x09, 0x48, 0xff, 0xf7, 0x8a, 0xff, 0x29, 0x46, 0x08, 0x48, 0xff, 0xf7, 0x86, 0xff, 0x60, 0x1b, 0x18, 0xbf, 0x4f, 0xf0, 0xff, 0x30, 0xf8, 0xbd, 0x53, 0xf8, 0x04, 0x2b, 0x14, 0x44, 0xeb, 0xe7, 0x00, 0xbf, 0x39, 0x6c, 0x0a, 0x5f, 0xb0, 0x49, 0x0b, 0x04, 0xac, 0x49, 0x0b, 0x04, 0x00, 0x23, 0x11, 0xb9, 0x11, 0x60, 0x08, 0x46, 0x70, 0x47, 0x01, 0x29, 0x05, 0xd1, 0x10, 0x60, 0x18, 0x46, 0x70, 0x47, 0x13, 0x68, 0x40, 0x1a, 0x01, 0x33, 0x88, 0x42, 0x13, 0x60, 0xf9, 0xd2, 0x70, 0x47, 0x4f, 0xf0, 0x82, 0x60, 0x70, 0x47, 0x10, 0xb5, 0x4f, 0xf4, 0x80, 0x34, 0x01, 0x3c, 0x0a, 0xd0, 0x00, 0xf0, 0x7d, 0xfa, 0x00, 0x28, 0xf9, 0xd0, 0x00, 0xf0, 0x6f, 0xfa, 0x04, 0x46, 0x01, 0x46, 0x02, 0x48, 0xff, 0xf7, 0x52, 0xff, 0x20, 0x46, 0x10, 0xbd, 0x9c, 0x49, 0x0b, 0x04, 0x02, 0x4a, 0x13, 0x78, 0x18, 0x43, 0x10, 0x70, 0x70, 0x47, 0x00, 0xbf, 0xe0, 0x59, 0x0b, 0x04, 0x01, 0x4b, 0x1b, 0x78, 0x18, 0x40, 0x70, 0x47, 0xe0, 0x59, 0x0b, 0x04, 0x00, 0x20, 0x70, 0x47, 0x00, 0x20, 0x70, 0x47, 0x70, 0x47, 0x00, 0x00, 0x00, 0x23, 0x10, 0xb5, 0x05, 0x4a, 0x06, 0x4c, 0x01, 0x44, 0xc4, 0xe9, 0x00, 0x03, 0x53, 0x60, 0x11, 0x60, 0xe2, 0x60, 0xd3, 0x60, 0x18, 0x46, 0x10, 0xbd, 0x00, 0xbf, 0xf4, 0x59, 0x0b, 0x04, 0xe4, 0x59, 0x0b, 0x04, 0xf0, 0xb5, 0x08, 0xb3, 0x00, 0xf1, 0x0f, 0x04, 0x24, 0xf0, 0x0f, 0x04, 0x0f, 0x49, 0x04, 0xf1, 0x20, 0x0c, 0xcb, 0x68, 0x0b, 0xb9, 0x18, 0x46, 0xf0, 0xbd, 0x0e, 0x68, 0x4d, 0x68, 0x1f, 0x68, 0x0c, 0xeb, 0x06, 0x02, 0x2a, 0x44, 0x97, 0x42, 0x03, 0xd3, 0x72, 0x19, 0x03, 0xd1, 0x13, 0x46, 0xf1, 0xe7, 0x19, 0x46, 0xed, 0xe7, 0x02, 0xf1, 0x10, 0x07, 0x77, 0x51, 0xd3, 0x60, 0xc2, 0xe9, 0x01, 0x40, 0x3b, 0x46, 0xca, 0x60, 0xe6, 0xe7, 0x03, 0x46, 0xe4, 0xe7, 0xe4, 0x59, 0x0b, 0x04, 0x70, 0xb5, 0x05, 0x46, 0x20, 0xb9, 0x08, 0x46, 0xbd, 0xe8, 0x70, 0x40, 0xff, 0xf7, 0xd0, 0xbf, 0x81, 0xb1, 0x15, 0x4e, 0xf4, 0x68, 0x0c, 0xb9, 0x25, 0x46, 0x0b, 0xe0, 0x23, 0x68, 0x9d, 0x42, 0x0a, 0xd1, 0xa3, 0x68, 0x19, 0x44, 0x01, 0xf1, 0x0f, 0x00, 0x63, 0x68, 0x20, 0xf0, 0x0f, 0x00, 0x83, 0x42, 0x03, 0xd1, 0x28, 0x46, 0x70, 0xbd, 0x26, 0x46, 0xeb, 0xe7, 0xe2, 0x68, 0x05, 0xf1, 0x20, 0x03, 0x12, 0x68, 0x03, 0x44, 0x9a, 0x42, 0x02, 0xd3, 0xc4, 0xe9, 0x01, 0x01, 0xf1, 0xe7, 0xff, 0xf7, 0xae, 0xff, 0x05, 0x46, 0x00, 0x28, 0xec, 0xd0, 0xd4, 0xe9, 0x00, 0x12, 0x00, 0xf0, 0x62, 0xf8, 0xe3, 0x68, 0xf3, 0x60, 0xe5, 0xe7, 0xe4, 0x59, 0x0b, 0x04, 0x10, 0xb1, 0x06, 0x4a, 0xd3, 0x68, 0x03, 0xb9, 0x70, 0x47, 0x19, 0x68, 0x88, 0x42, 0x02, 0xd1, 0xdb, 0x68, 0xd3, 0x60, 0x70, 0x47, 0x1a, 0x46, 0xf4, 0xe7, 0x00, 0xbf, 0xe4, 0x59, 0x0b, 0x04, 0x4f, 0xf0, 0xff, 0x30, 0x10, 0xb5, 0x07, 0x4c, 0x0a, 0x44, 0x91, 0x42, 0x01, 0xd1, 0xc0, 0x43, 0x10, 0xbd, 0x11, 0xf8, 0x01, 0x3b, 0x43, 0x40, 0xdb, 0xb2, 0x54, 0xf8, 0x23, 0x30, 0x83, 0xea, 0x10, 0x20, 0xf2, 0xe7, 0xb8, 0x49, 0x0b, 0x04, 0x70, 0x47, 0x70, 0x47, 0x03, 0x46, 0x70, 0xb5, 0x9c, 0x07, 0x1d, 0x46, 0x1f, 0xd1, 0x03, 0x2a, 0x19, 0xd9, 0x16, 0x46, 0xcc, 0xb2, 0x44, 0xea, 0x04, 0x24, 0x44, 0xea, 0x04, 0x44, 0x0f, 0x2e, 0x05, 0xf1, 0x10, 0x05, 0x19, 0xd8, 0x6f, 0xf0, 0x0f, 0x06, 0x15, 0x09, 0x06, 0xfb, 0x05, 0x22, 0x03, 0xeb, 0x05, 0x13, 0x95, 0x08, 0x03, 0xeb, 0x85, 0x06, 0xb3, 0x42, 0x13, 0xd1, 0x6f, 0xf0, 0x03, 0x04, 0x04, 0xfb, 0x05, 0x22, 0x1a, 0x44, 0x93, 0x42, 0x0f, 0xd1, 0x70, 0xbd, 0x00, 0x2a, 0xfc, 0xd0, 0x03, 0xf8, 0x01, 0x1b, 0x01, 0x3a, 0xd6, 0xe7, 0x45, 0xe9, 0x04, 0x44, 0x45, 0xe9, 0x02, 0x44, 0x10, 0x3e, 0xdb, 0xe7, 0x43, 0xf8, 0x04, 0x4b, 0xe6, 0xe7, 0x03, 0xf8, 0x01, 0x1b, 0xea, 0xe7, 0x0f, 0x2a, 0xf0, 0xb5, 0x03, 0xd9, 0x41, 0xea, 0x00, 0x03, 0x9b, 0x07, 0x05, 0xd0, 0x03, 0x46, 0x01, 0x3b, 0x0a, 0x44, 0x91, 0x42, 0x36, 0xd1, 0xf0, 0xbd, 0x15, 0x46, 0x01, 0xf1, 0x10, 0x04, 0x00, 0xf1, 0x10, 0x03, 0x54, 0xf8, 0x10, 0x6c, 0x10, 0x3d, 0x43, 0xf8, 0x10, 0x6c, 0x54, 0xf8, 0x0c, 0x6c, 0x0f, 0x2d, 0x43, 0xf8, 0x0c, 0x6c, 0x54, 0xf8, 0x08, 0x6c, 0x03, 0xf1, 0x10, 0x03, 0x43, 0xf8, 0x18, 0x6c, 0x54, 0xf8, 0x04, 0x6c, 0x04, 0xf1, 0x10, 0x04, 0x43, 0xf8, 0x14, 0x6c, 0xe8, 0xd8, 0xa2, 0xf1, 0x10, 0x03, 0x23, 0xf0, 0x0f, 0x03, 0x02, 0xf0, 0x0f, 0x02, 0x10, 0x33, 0x95, 0x08, 0x19, 0x44, 0xac, 0x00, 0x03, 0x44, 0x1e, 0x1f, 0x0f, 0x19, 0xb9, 0x42, 0x05, 0xd1, 0x6f, 0xf0, 0x03, 0x06, 0x23, 0x44, 0x06, 0xfb, 0x05, 0x22, 0xc9, 0xe7, 0x51, 0xf8, 0x04, 0xcb, 0x46, 0xf8, 0x04, 0xcf, 0xf2, 0xe7, 0x11, 0xf8, 0x01, 0x4b, 0x03, 0xf8, 0x01, 0x4f, 0xc1, 0xe7, 0x00, 0x00, 0x05, 0x4b, 0x00, 0xf0, 0x0f, 0x02, 0x00, 0x09, 0x9a, 0x5c, 0x1b, 0x5c, 0x4a, 0x70, 0x0b, 0x70, 0x00, 0x23, 0x8b, 0x70, 0x70, 0x47, 0x00, 0xbf, 0xda, 0x4d, 0x0b, 0x04, 0x2d, 0xe9, 0xf0, 0x47, 0x8e, 0xb0, 0x80, 0x46, 0x0e, 0x46, 0x01, 0xad, 0x01, 0x46, 0x15, 0x48, 0xff, 0xf7, 0x0c, 0xfe, 0x00, 0x24, 0x2f, 0x46, 0xdf, 0xf8, 0x50, 0x90, 0xdf, 0xf8, 0x48, 0xa0, 0xb4, 0x42, 0x0a, 0xdb, 0x26, 0xea, 0xe6, 0x76, 0x33, 0x07, 0x03, 0xd0, 0x39, 0x46, 0x0e, 0x48, 0xff, 0xf7, 0xfc, 0xfd, 0x0e, 0xb0, 0xbd, 0xe8, 0xf0, 0x87, 0x18, 0xf8, 0x04, 0x30, 0x28, 0x46, 0x4a, 0x46, 0x05, 0x21, 0xff, 0xf7, 0x1e, 0xfe, 0x04, 0xf0, 0x0f, 0x03, 0x0f, 0x2b, 0x05, 0xf1, 0x03, 0x05, 0x04, 0xd1, 0x39, 0x46, 0x50, 0x46, 0xff, 0xf7, 0xe8, 0xfd, 0x3d, 0x46, 0x01, 0x34, 0xde, 0xe7, 0x00, 0xbf, 0xeb, 0x4d, 0x0b, 0x04, 0x95, 0x57, 0x0b, 0x04, 0xf5, 0x4d, 0x0b, 0x04, 0x07, 0xb5, 0x00, 0x90, 0x01, 0x48, 0xff, 0xf7, 0xd9, 0xfd, 0xfe, 0xe7, 0xb8, 0x4d, 0x0b, 0x04, 0x38, 0xb5, 0x04, 0x46, 0xa8, 0xb1, 0x8b, 0x08, 0x00, 0xeb, 0x83, 0x05, 0x00, 0x20, 0xac, 0x42, 0x15, 0xd1, 0x6f, 0xf0, 0x03, 0x02, 0x02, 0xfb, 0x03, 0x11, 0x01, 0x29, 0x81, 0xbf, 0x34, 0xf8, 0x02, 0x3b, 0x02, 0x39, 0xc0, 0x18, 0x80, 0xb2, 0x41, 0xb1, 0x23, 0x78, 0x18, 0x44, 0x80, 0xb2, 0x04, 0xe0, 0x01, 0x46, 0x05, 0x48, 0xff, 0xf7, 0xb9, 0xfd, 0x20, 0x46, 0x38, 0xbd, 0x54, 0xf8, 0x04, 0x2b, 0x02, 0xeb, 0x12, 0x42, 0x10, 0x44, 0x80, 0xb2, 0xe0, 0xe7, 0xfb, 0x4d, 0x0b, 0x04, 0x08, 0xb5, 0x44, 0xf6, 0x54, 0x03, 0x01, 0x88, 0x99, 0x42, 0x05, 0xd0, 0x12, 0x48, 0xff, 0xf7, 0xa5, 0xfd, 0x4f, 0xf0, 0xff, 0x30, 0x08, 0xbd, 0x83, 0x88, 0x5b, 0xb9, 0xc1, 0x88, 0xb1, 0xf5, 0x00, 0x7f, 0x01, 0xd0, 0x0d, 0x48, 0xf2, 0xe7, 0x41, 0x89, 0xb1, 0xf5, 0x80, 0x7f, 0x10, 0xd0, 0x0b, 0x48, 0xec, 0xe7, 0x01, 0x2b, 0x09, 0xd1, 0xc1, 0x88, 0x40, 0x29, 0x01, 0xd0, 0x09, 0x48, 0xe5, 0xe7, 0x41, 0x89, 0x40, 0x29, 0x04, 0xd0, 0x07, 0x48, 0xe0, 0xe7, 0x19, 0x46, 0x07, 0x48, 0xdd, 0xe7, 0x00, 0x20, 0xdf, 0xe7, 0x00, 0xbf, 0xdf, 0x4e, 0x0b, 0x04, 0xfc, 0x4e, 0x0b, 0x04, 0x18, 0x4f, 0x0b, 0x04, 0x34, 0x4f, 0x0b, 0x04, 0x50, 0x4f, 0x0b, 0x04, 0x6c, 0x4f, 0x0b, 0x04, 0x00, 0x68, 0x03, 0x4b, 0xc0, 0x1a, 0x18, 0xbf, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x00, 0xbf, 0x41, 0x57, 0x49, 0x48, 0x10, 0xb5, 0x04, 0x46, 0x01, 0x68, 0x17, 0x48, 0xff, 0xf7, 0x66, 0xfd, 0xa1, 0x88, 0x16, 0x48, 0xff, 0xf7, 0x62, 0xfd, 0xe1, 0x88, 0x15, 0x48, 0xff, 0xf7, 0x5e, 0xfd, 0xe1, 0x68, 0x14, 0x48, 0xff, 0xf7, 0x5a, 0xfd, 0x21, 0x69, 0x13, 0x48, 0xff, 0xf7, 0x56, 0xfd, 0x61, 0x69, 0x12, 0x48, 0xff, 0xf7, 0x52, 0xfd, 0xa1, 0x69, 0x11, 0x48, 0xff, 0xf7, 0x4e, 0xfd, 0xe1, 0x69, 0x10, 0x48, 0xff, 0xf7, 0x4a, 0xfd, 0x21, 0x6a, 0x0f, 0x48, 0xff, 0xf7, 0x46, 0xfd, 0x61, 0x6a, 0x0e, 0x48, 0xff, 0xf7, 0x42, 0xfd, 0x04, 0xf1, 0x28, 0x01, 0x0c, 0x48, 0xff, 0xf7, 0x3d, 0xfd, 0x00, 0x20, 0x10, 0xbd, 0x00, 0xbf, 0x5f, 0x4e, 0x0b, 0x04, 0x6b, 0x4e, 0x0b, 0x04, 0x7a, 0x4e, 0x0b, 0x04, 0x89, 0x4e, 0x0b, 0x04, 0x95, 0x4e, 0x0b, 0x04, 0xa1, 0x4e, 0x0b, 0x04, 0xad, 0x4e, 0x0b, 0x04, 0xb8, 0x4e, 0x0b, 0x04, 0xc1, 0x4e, 0x0b, 0x04, 0xcc, 0x4e, 0x0b, 0x04, 0xd6, 0x4e, 0x0b, 0x04, 0x70, 0xb5, 0x14, 0x4b, 0x0e, 0x46, 0x01, 0x68, 0x05, 0x46, 0x99, 0x42, 0x05, 0xd0, 0x12, 0x48, 0xff, 0xf7, 0x1a, 0xfd, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0xbd, 0xc1, 0x68, 0xff, 0xf7, 0x3e, 0xff, 0x4f, 0xf6, 0xff, 0x73, 0x98, 0x42, 0x01, 0x46, 0x01, 0xd0, 0x0c, 0x48, 0xf0, 0xe7, 0x6c, 0x89, 0x0e, 0xb9, 0xee, 0x68, 0x2e, 0x44, 0x29, 0x69, 0x30, 0x46, 0xff, 0xf7, 0x2f, 0xff, 0x4f, 0xf6, 0xff, 0x73, 0x21, 0x18, 0x89, 0xb2, 0x99, 0x42, 0x01, 0xd0, 0x05, 0x48, 0xe0, 0xe7, 0x00, 0x20, 0xe2, 0xe7, 0x00, 0xbf, 0x41, 0x57, 0x49, 0x48, 0x0a, 0x4e, 0x0b, 0x04, 0x29, 0x4e, 0x0b, 0x04, 0x45, 0x4e, 0x0b, 0x04, 0x03, 0x4b, 0x1b, 0x68, 0x5a, 0x69, 0x52, 0x06, 0xfc, 0xd5, 0x18, 0x60, 0x70, 0x47, 0x00, 0xbf, 0x04, 0x5a, 0x0b, 0x04, 0x03, 0x4b, 0x1b, 0x68, 0x5a, 0x69, 0xd2, 0x07, 0xfc, 0xd5, 0x18, 0x68, 0xc0, 0xb2, 0x70, 0x47, 0x04, 0x5a, 0x0b, 0x04, 0x02, 0x4b, 0x1b, 0x68, 0x58, 0x69, 0x00, 0xf0, 0x01, 0x00, 0x70, 0x47, 0x04, 0x5a, 0x0b, 0x04, 0x10, 0xb5, 0x04, 0x46, 0x06, 0x48, 0xff, 0xf7, 0x2b, 0xfe, 0x06, 0x4b, 0x00, 0xeb, 0x84, 0x20, 0x18, 0x60, 0xd0, 0xf8, 0xa4, 0x30, 0x43, 0xf0, 0x02, 0x03, 0xc0, 0xf8, 0xa4, 0x30, 0x10, 0xbd, 0x00, 0x70, 0x04, 0x40, 0x04, 0x5a, 0x0b, 0x04, 0x10, 0xb5, 0x04, 0x46, 0x0b, 0x48, 0xff, 0xf7, 0x17, 0xfe, 0x0b, 0x4b, 0x00, 0xeb, 0x84, 0x20, 0x18, 0x60, 0xd0, 0xf8, 0xa4, 0x30, 0x43, 0xf0, 0x04, 0x03, 0xc0, 0xf8, 0xa4, 0x30, 0xd0, 0xf8, 0xa4, 0x30, 0x5b, 0x07, 0xfb, 0xd4, 0xd0, 0xf8, 0xa4, 0x30, 0x23, 0xf0, 0x02, 0x03, 0xc0, 0xf8, 0xa4, 0x30, 0x10, 0xbd, 0x00, 0x70, 0x04, 0x40, 0x04, 0x5a, 0x0b, 0x04, 0x05, 0x4b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x04, 0x2b, 0x9a, 0xbf, 0x03, 0x4a, 0x52, 0xf8, 0x23, 0x00, 0x03, 0x48, 0x70, 0x47, 0x00, 0xbf, 0x84, 0xc4, 0x04, 0x40, 0x8c, 0x4f, 0x0b, 0x04, 0x00, 0x5a, 0x62, 0x02, 0xf8, 0xb5, 0x04, 0x46, 0x19, 0x48, 0x0e, 0x46, 0x17, 0x46, 0xff, 0xf7, 0xe5, 0xfd, 0x05, 0x46, 0x20, 0x46, 0xff, 0xf7, 0x4d, 0xfa, 0x30, 0x46, 0x15, 0x4e, 0x39, 0x46, 0x01, 0x22, 0x05, 0xeb, 0x84, 0x25, 0x00, 0xf0, 0xd3, 0xf8, 0x35, 0x60, 0x03, 0x25, 0x20, 0x46, 0xff, 0xf7, 0xa4, 0xff, 0x31, 0x68, 0x0d, 0x61, 0xff, 0xf7, 0xd2, 0xff, 0x4f, 0xf4, 0xe1, 0x13, 0x00, 0xf5, 0x61, 0x20, 0xb0, 0xfb, 0xf3, 0xf0, 0xcb, 0x68, 0x43, 0xf0, 0x80, 0x03, 0xcb, 0x60, 0x03, 0x0a, 0xc0, 0xb2, 0x4b, 0x60, 0x08, 0x60, 0xcb, 0x68, 0x20, 0x46, 0x23, 0xf0, 0x80, 0x03, 0xcb, 0x60, 0x07, 0x23, 0xcd, 0x60, 0x8b, 0x60, 0xbd, 0xe8, 0xf8, 0x40, 0xff, 0xf7, 0x9a, 0xbf, 0x00, 0x70, 0x04, 0x40, 0x04, 0x5a, 0x0b, 0x04, 0x10, 0xb5, 0x04, 0x46, 0xff, 0xf7, 0x1a, 0xfa, 0x04, 0xf5, 0x80, 0x11, 0x03, 0x24, 0x01, 0xf5, 0x8e, 0x71, 0x89, 0x02, 0x0d, 0x4b, 0x0c, 0x61, 0x19, 0x60, 0xff, 0xf7, 0xa5, 0xff, 0x4f, 0xf4, 0xe1, 0x13, 0x00, 0xf5, 0x61, 0x20, 0xb0, 0xfb, 0xf3, 0xf0, 0xcb, 0x68, 0x43, 0xf0, 0x80, 0x03, 0xcb, 0x60, 0x03, 0x0a, 0xc0, 0xb2, 0x4b, 0x60, 0x08, 0x60, 0xcb, 0x68, 0x23, 0xf0, 0x80, 0x03, 0xcb, 0x60, 0x07, 0x23, 0xcc, 0x60, 0x8b, 0x60, 0x10, 0xbd, 0x00, 0xbf, 0x04, 0x5a, 0x0b, 0x04, 0x30, 0xb5, 0x0f, 0x25, 0x8b, 0x00, 0xc1, 0xf3, 0xc1, 0x01, 0x03, 0xf0, 0x1c, 0x03, 0x50, 0xf8, 0x21, 0x40, 0x9d, 0x40, 0x24, 0xea, 0x05, 0x04, 0x9a, 0x40, 0x22, 0x43, 0x40, 0xf8, 0x21, 0x20, 0x30, 0xbd, 0x00, 0x00, 0x10, 0xb4, 0x24, 0x24, 0x43, 0x09, 0x5c, 0x43, 0x0a, 0x2b, 0x94, 0xbf, 0x04, 0x4b, 0x05, 0x4b, 0x0a, 0x46, 0x23, 0x44, 0x01, 0x46, 0x5d, 0xf8, 0x04, 0x4b, 0x18, 0x46, 0xff, 0xf7, 0xde, 0xbf, 0x00, 0xa4, 0x04, 0x40, 0x74, 0x1e, 0x02, 0x07, 0xc1, 0xf3, 0xc1, 0x03, 0x50, 0xf8, 0x23, 0x00, 0xbf, 0xf3, 0x5f, 0x8f, 0x89, 0x00, 0x01, 0xf0, 0x1c, 0x01, 0xc8, 0x40, 0x00, 0xf0, 0x0f, 0x00, 0x70, 0x47, 0x00, 0x00, 0x24, 0x22, 0x43, 0x09, 0x5a, 0x43, 0x0a, 0x2b, 0x01, 0x46, 0x94, 0xbf, 0x02, 0x48, 0x03, 0x48, 0x10, 0x44, 0xff, 0xf7, 0xe7, 0xbf, 0x00, 0xbf, 0x00, 0xa4, 0x04, 0x40, 0x74, 0x1e, 0x02, 0x07, 0x30, 0xb5, 0x24, 0x24, 0x43, 0x09, 0x5c, 0x43, 0x0a, 0x2b, 0x94, 0xbf, 0x0a, 0x4b, 0x0b, 0x4b, 0xc0, 0xf3, 0x00, 0x15, 0x23, 0x44, 0x03, 0x24, 0x14, 0x33, 0x40, 0x00, 0x53, 0xf8, 0x25, 0x20, 0x00, 0xf0, 0x1e, 0x00, 0x84, 0x40, 0x22, 0xea, 0x04, 0x02, 0x01, 0xfa, 0x00, 0xf0, 0x02, 0x43, 0x43, 0xf8, 0x25, 0x20, 0x00, 0x20, 0x30, 0xbd, 0x00, 0xa4, 0x04, 0x40, 0x74, 0x1e, 0x02, 0x07, 0x30, 0xb5, 0x24, 0x24, 0x43, 0x09, 0x5c, 0x43, 0x0a, 0x2b, 0x94, 0xbf, 0x0a, 0x4b, 0x0b, 0x4b, 0xc0, 0xf3, 0x00, 0x15, 0x23, 0x44, 0x03, 0x24, 0x1c, 0x33, 0x40, 0x00, 0x53, 0xf8, 0x25, 0x20, 0x00, 0xf0, 0x1e, 0x00, 0x84, 0x40, 0x22, 0xea, 0x04, 0x02, 0x01, 0xfa, 0x00, 0xf0, 0x02, 0x43, 0x43, 0xf8, 0x25, 0x20, 0x00, 0x20, 0x30, 0xbd, 0x00, 0xa4, 0x04, 0x40, 0x74, 0x1e, 0x02, 0x07, 0x2d, 0xe9, 0xf0, 0x4f, 0x00, 0x27, 0x8b, 0xb0, 0xcd, 0xe9, 0x08, 0x12, 0x08, 0x9b, 0x9f, 0x42, 0x04, 0xd1, 0x4f, 0xf0, 0xff, 0x30, 0x0b, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x10, 0xf8, 0x37, 0x60, 0x00, 0xeb, 0xc7, 0x08, 0x01, 0x37, 0x00, 0x2e, 0xf0, 0xd0, 0x98, 0xf8, 0x01, 0xc0, 0x0b, 0x2e, 0x4f, 0xea, 0xdc, 0x03, 0x05, 0x93, 0x05, 0x9a, 0x4f, 0xea, 0x1c, 0x13, 0x06, 0x93, 0x4f, 0xea, 0x82, 0x04, 0x06, 0xeb, 0xc6, 0x03, 0x06, 0x9a, 0x4f, 0xea, 0x83, 0x03, 0x03, 0xeb, 0x82, 0x02, 0x73, 0xd8, 0x98, 0x49, 0x98, 0x4d, 0x19, 0x44, 0x01, 0xeb, 0x04, 0x0b, 0x97, 0x4c, 0x15, 0x44, 0x14, 0x44, 0x97, 0x4a, 0xd3, 0x18, 0x03, 0x93, 0xdb, 0xf8, 0x00, 0x20, 0xbf, 0xf3, 0x5f, 0x8f, 0xd5, 0xf8, 0x00, 0xa0, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0x68, 0x19, 0x46, 0xbf, 0xf3, 0x5f, 0x8f, 0x03, 0x9b, 0x1b, 0x68, 0x01, 0x93, 0xbf, 0xf3, 0x5f, 0x8f, 0x0f, 0x23, 0x0c, 0xf0, 0x07, 0x0e, 0x4f, 0xea, 0x8e, 0x0e, 0x03, 0xfa, 0x0e, 0xf3, 0x22, 0xea, 0x03, 0x02, 0x09, 0x9b, 0x33, 0xb1, 0x98, 0xf8, 0x02, 0x30, 0x03, 0xf0, 0x0f, 0x03, 0x03, 0xfa, 0x0e, 0xf3, 0x1a, 0x43, 0x03, 0x23, 0x0c, 0xf0, 0x0f, 0x0e, 0x4f, 0xea, 0x4e, 0x0e, 0x03, 0xfa, 0x0e, 0xf3, 0xdb, 0x43, 0x98, 0xf8, 0x03, 0x90, 0x03, 0xea, 0x0a, 0x0a, 0x09, 0xf0, 0x03, 0x09, 0x09, 0xfa, 0x0e, 0xf9, 0x49, 0xea, 0x0a, 0x0a, 0x98, 0xf8, 0x04, 0x90, 0x0b, 0x40, 0x09, 0xf0, 0x03, 0x09, 0x09, 0xfa, 0x0e, 0xfe, 0x4e, 0xea, 0x03, 0x03, 0x02, 0x93, 0x98, 0xf8, 0x02, 0x30, 0x01, 0x2b, 0x2f, 0xd1, 0x98, 0xf8, 0x05, 0x80, 0x01, 0x99, 0x03, 0xfa, 0x0c, 0xfe, 0x08, 0xf0, 0x01, 0x08, 0x21, 0xea, 0x0e, 0x0e, 0x08, 0xfa, 0x0c, 0xfc, 0x4c, 0xea, 0x0e, 0x01, 0x01, 0x91, 0x04, 0x97, 0x00, 0xeb, 0xc7, 0x00, 0x04, 0x99, 0x08, 0x9f, 0xb9, 0x42, 0x1c, 0xd3, 0xbf, 0xf3, 0x5f, 0x8f, 0xcb, 0xf8, 0x00, 0x20, 0xbf, 0xf3, 0x5f, 0x8f, 0xc5, 0xf8, 0x00, 0xa0, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x9a, 0x22, 0x60, 0x00, 0x2b, 0x40, 0xf0, 0xb8, 0x80, 0x18, 0x46, 0x6d, 0xe7, 0x62, 0x49, 0x62, 0x4d, 0x19, 0x44, 0x01, 0xeb, 0x04, 0x0b, 0x61, 0x4c, 0x15, 0x44, 0x14, 0x44, 0x61, 0x4a, 0x8a, 0xe7, 0x00, 0x23, 0xdb, 0xe7, 0x07, 0x78, 0x90, 0xf8, 0x01, 0xe0, 0x00, 0x2f, 0xdd, 0xd0, 0x4f, 0xea, 0x1e, 0x11, 0x07, 0x91, 0x06, 0x99, 0x4f, 0xea, 0xde, 0x0c, 0x88, 0x46, 0x07, 0x99, 0x88, 0x45, 0x02, 0xd1, 0xbe, 0x42, 0x00, 0xf0, 0x85, 0x80, 0xbf, 0xf3, 0x5f, 0x8f, 0xcb, 0xf8, 0x00, 0x20, 0xbf, 0xf3, 0x5f, 0x8f, 0xc5, 0xf8, 0x00, 0xa0, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x9a, 0x22, 0x60, 0x23, 0xb1, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9b, 0x03, 0x9a, 0x13, 0x60, 0x07, 0x9c, 0x07, 0xeb, 0xc7, 0x03, 0x44, 0x4a, 0x99, 0x00, 0x01, 0xeb, 0x84, 0x06, 0x8a, 0x18, 0x01, 0xf1, 0x80, 0x41, 0x42, 0x4d, 0x42, 0x4c, 0x01, 0xf5, 0x94, 0x21, 0x01, 0xf5, 0x7b, 0x71, 0x02, 0xeb, 0x8c, 0x0b, 0x75, 0x19, 0x34, 0x19, 0x03, 0x91, 0x52, 0xf8, 0x2c, 0x20, 0xbf, 0xf3, 0x5f, 0x8f, 0x3a, 0x49, 0x56, 0xf8, 0x01, 0xa0, 0xbf, 0xf3, 0x5f, 0x8f, 0x08, 0x39, 0x71, 0x58, 0x02, 0x91, 0xbf, 0xf3, 0x5f, 0x8f, 0x37, 0x49, 0x51, 0xf8, 0x23, 0x30, 0x01, 0x93, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x23, 0x0f, 0x21, 0x0e, 0xf0, 0x07, 0x06, 0xb6, 0x00, 0x01, 0xfa, 0x06, 0xf8, 0x81, 0x78, 0x22, 0xea, 0x08, 0x02, 0x05, 0x91, 0x09, 0x99, 0x29, 0xb1, 0x05, 0x99, 0x01, 0xf0, 0x0f, 0x08, 0x08, 0xfa, 0x06, 0xf6, 0x32, 0x43, 0x03, 0x21, 0x0e, 0xf0, 0x0f, 0x08, 0x4f, 0xea, 0x48, 0x08, 0x01, 0xfa, 0x08, 0xf6, 0xf6, 0x43, 0x90, 0xf8, 0x03, 0x90, 0x06, 0xea, 0x0a, 0x0a, 0x09, 0xea, 0x01, 0x09, 0x09, 0xfa, 0x08, 0xf9, 0x49, 0xea, 0x0a, 0x0a, 0x90, 0xf8, 0x04, 0x90, 0x02, 0x99, 0x09, 0xf0, 0x03, 0x09, 0x0e, 0x40, 0x09, 0xfa, 0x08, 0xf8, 0x48, 0xea, 0x06, 0x01, 0x02, 0x91, 0x05, 0x99, 0x01, 0x29, 0x0d, 0xd1, 0x01, 0x9b, 0x01, 0xfa, 0x0e, 0xf6, 0x23, 0xea, 0x06, 0x06, 0x43, 0x79, 0x03, 0xf0, 0x01, 0x03, 0x03, 0xfa, 0x0e, 0xfe, 0x4e, 0xea, 0x06, 0x03, 0x01, 0x93, 0x0b, 0x46, 0x04, 0x9e, 0x07, 0x99, 0x01, 0x36, 0x04, 0x96, 0x08, 0x30, 0xcd, 0xe9, 0x05, 0xc1, 0x3e, 0x46, 0x47, 0xe7, 0x05, 0x99, 0x61, 0x45, 0xb3, 0xd0, 0xbf, 0xf3, 0x5f, 0x8f, 0xcb, 0xf8, 0x00, 0x20, 0x24, 0x22, 0x11, 0x46, 0x08, 0x4a, 0x11, 0xfb, 0x07, 0x22, 0x02, 0xeb, 0x8c, 0x0b, 0x52, 0xf8, 0x2c, 0x20, 0xbf, 0xf3, 0x5f, 0x8f, 0xa3, 0xe7, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9b, 0x03, 0x9a, 0x00, 0x20, 0x13, 0x60, 0xb0, 0xe6, 0xdc, 0xa3, 0x04, 0x40, 0xf8, 0xa3, 0x04, 0x40, 0xf0, 0xa3, 0x04, 0x40, 0xec, 0xa3, 0x04, 0x40, 0x50, 0x1e, 0x02, 0x07, 0x6c, 0x1e, 0x02, 0x07, 0x64, 0x1e, 0x02, 0x07, 0x60, 0x1e, 0x02, 0x07, 0x38, 0xb5, 0x04, 0x46, 0x04, 0x48, 0x0d, 0x46, 0xff, 0xf7, 0x96, 0xfb, 0xbf, 0xf3, 0x5f, 0x8f, 0x40, 0xf8, 0x24, 0x50, 0x38, 0xbd, 0x00, 0xbf, 0x00, 0x02, 0x05, 0x40, 0x10, 0xb5, 0x04, 0x46, 0x03, 0x48, 0xff, 0xf7, 0x89, 0xfb, 0x50, 0xf8, 0x24, 0x00, 0xbf, 0xf3, 0x5f, 0x8f, 0x10, 0xbd, 0x00, 0x02, 0x05, 0x40, 0x10, 0xb5, 0x07, 0x4c, 0x06, 0x49, 0x02, 0x20, 0xff, 0xf7, 0xe0, 0xff, 0xbf, 0xf3, 0x4f, 0x8f, 0xbf, 0xf3, 0x6f, 0x8f, 0x02, 0x20, 0xff, 0xf7, 0xe7, 0xff, 0xa0, 0x42, 0xf2, 0xd1, 0x10, 0xbd, 0x5a, 0xa5, 0xa5, 0x5a, 0x38, 0xb5, 0x00, 0x24, 0x15, 0x4d, 0x20, 0x46, 0xff, 0xf7, 0xdc, 0xff, 0x02, 0x46, 0x18, 0xb1, 0x21, 0x46, 0x28, 0x46, 0xff, 0xf7, 0x0a, 0xfa, 0x01, 0x34, 0x06, 0x2c, 0xf3, 0xd1, 0x02, 0x20, 0xff, 0xf7, 0xd0, 0xff, 0x0e, 0x4b, 0x98, 0x42, 0x04, 0xd1, 0x0e, 0x48, 0xff, 0xf7, 0xfe, 0xf9, 0x01, 0x20, 0x38, 0xbd, 0x0c, 0x4b, 0x98, 0x42, 0x0e, 0xd1, 0x0c, 0x49, 0x02, 0x20, 0xff, 0xf7, 0xb3, 0xff, 0x0b, 0x4c, 0x96, 0x20, 0xfe, 0xf7, 0xaf, 0xfd, 0x02, 0x20, 0xff, 0xf7, 0xba, 0xff, 0xa0, 0x42, 0xf7, 0xd1, 0x07, 0x48, 0xe9, 0xe7, 0x00, 0x20, 0xea, 0xe7, 0x71, 0x50, 0x0b, 0x04, 0x5a, 0xa5, 0xa5, 0x5a, 0x87, 0x50, 0x0b, 0x04, 0xa5, 0x5a, 0xa5, 0x5a, 0xa6, 0x5a, 0xa5, 0x5a, 0xa7, 0x5a, 0xa5, 0x5a, 0x97, 0x50, 0x0b, 0x04, 0x08, 0xb5, 0x00, 0x21, 0x02, 0x20, 0xff, 0xf7, 0x93, 0xff, 0xbf, 0xf3, 0x4f, 0x8f, 0xbf, 0xf3, 0x6f, 0x8f, 0x02, 0x20, 0xff, 0xf7, 0x9a, 0xff, 0x00, 0x28, 0xf2, 0xd1, 0x08, 0xbd, 0x10, 0xb5, 0x04, 0x46, 0x21, 0x46, 0x02, 0x20, 0xff, 0xf7, 0x83, 0xff, 0xbf, 0xf3, 0x4f, 0x8f, 0xbf, 0xf3, 0x6f, 0x8f, 0x02, 0x20, 0xff, 0xf7, 0x8a, 0xff, 0xa0, 0x42, 0xf2, 0xd1, 0x10, 0xbd, 0x10, 0xb5, 0x04, 0x46, 0x21, 0x46, 0x07, 0x20, 0xff, 0xf7, 0x73, 0xff, 0xbf, 0xf3, 0x4f, 0x8f, 0xbf, 0xf3, 0x6f, 0x8f, 0x07, 0x20, 0xff, 0xf7, 0x7a, 0xff, 0xa0, 0x42, 0xf2, 0xd1, 0x00, 0x20, 0x10, 0xbd, 0x10, 0xb5, 0x04, 0x46, 0x07, 0x20, 0xff, 0xf7, 0x71, 0xff, 0x20, 0x60, 0x00, 0x20, 0x10, 0xbd, 0x00, 0x23, 0x07, 0xb5, 0x01, 0xa8, 0x01, 0x93, 0xff, 0xf7, 0xf2, 0xff, 0xbd, 0xf8, 0x04, 0x00, 0x43, 0x1e, 0x58, 0x42, 0x58, 0x41, 0x03, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x00, 0x23, 0x73, 0xb5, 0x01, 0xa8, 0x01, 0x93, 0x2f, 0x4d, 0xff, 0xf7, 0xe3, 0xff, 0xbd, 0xf8, 0x06, 0x40, 0x2e, 0x68, 0xc4, 0xf3, 0x0e, 0x04, 0xbf, 0xf3, 0x5f, 0x8f, 0x16, 0xf0, 0x07, 0x02, 0x29, 0xd1, 0x01, 0x9b, 0x00, 0x2b, 0x46, 0xd0, 0x00, 0x2c, 0x46, 0xd0, 0x0a, 0x2c, 0x04, 0xd8, 0x01, 0x23, 0xa3, 0x40, 0x13, 0xf4, 0x92, 0x6f, 0x01, 0xd1, 0x44, 0xf4, 0x00, 0x44, 0x01, 0x98, 0x00, 0xf0, 0x00, 0x40, 0x20, 0x43, 0x01, 0x90, 0xff, 0xf7, 0xb3, 0xff, 0x00, 0x23, 0x01, 0xa8, 0x01, 0x93, 0xff, 0xf7, 0xbf, 0xff, 0x01, 0x9b, 0x99, 0xb2, 0x1b, 0x04, 0x2f, 0xd4, 0x4b, 0x1e, 0x0a, 0x2b, 0x2e, 0xd8, 0x19, 0x4a, 0x1a, 0x48, 0x52, 0xf8, 0x23, 0x10, 0xff, 0xf7, 0x5c, 0xf9, 0x00, 0x20, 0x02, 0xb0, 0x70, 0xbd, 0x04, 0x2a, 0x1b, 0xd0, 0x02, 0x2a, 0x0f, 0xd1, 0x08, 0x23, 0xbf, 0xf3, 0x5f, 0x8f, 0x07, 0x22, 0x0a, 0x2c, 0x2a, 0x60, 0xd6, 0xd8, 0x01, 0x22, 0xa2, 0x40, 0x12, 0xf4, 0xdb, 0x6f, 0xd3, 0xd1, 0x00, 0x2c, 0xcf, 0xd1, 0x1c, 0x46, 0xcf, 0xe7, 0x01, 0x2a, 0x05, 0xd0, 0x31, 0x46, 0x0b, 0x48, 0xff, 0xf7, 0x3f, 0xf9, 0xb2, 0x07, 0xe7, 0xd4, 0x0b, 0x23, 0xe6, 0xe7, 0x05, 0x23, 0xe4, 0xe7, 0x01, 0x24, 0xc1, 0xe7, 0x02, 0x24, 0xbf, 0xe7, 0x06, 0x48, 0xd4, 0xe7, 0x06, 0x48, 0xd2, 0xe7, 0x00, 0xbf, 0x00, 0xc1, 0x03, 0x40, 0xa0, 0x4f, 0x0b, 0x04, 0x24, 0x50, 0x0b, 0x04, 0xcc, 0x4f, 0x0b, 0x04, 0x35, 0x50, 0x0b, 0x04, 0x53, 0x50, 0x0b, 0x04, 0xf8, 0xb5, 0x00, 0x24, 0x02, 0x27, 0x4f, 0xf0, 0x80, 0x46, 0x0a, 0x4d, 0x07, 0xfa, 0x04, 0xf3, 0x32, 0x69, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x42, 0x06, 0xd0, 0xbf, 0xf3, 0x5f, 0x8f, 0x33, 0x61, 0xab, 0x69, 0x0b, 0xb1, 0x68, 0x69, 0x98, 0x47, 0x04, 0x34, 0x10, 0x2c, 0x05, 0xf1, 0x1c, 0x05, 0xec, 0xd1, 0xf8, 0xbd, 0x08, 0x5a, 0x0b, 0x04, 0x70, 0xb5, 0x2f, 0x4e, 0x33, 0x68, 0x00, 0x2b, 0x58, 0xdc, 0x2e, 0x4a, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf0, 0x20, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0x14, 0x3a, 0x13, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf0, 0x40, 0x03, 0xbf, 0xf3, 0x5f, 0x8f, 0x13, 0x60, 0x26, 0x4b, 0x1a, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x22, 0xf0, 0x40, 0x02, 0xbf, 0xf3, 0x5f, 0x8f, 0x1a, 0x60, 0x1a, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x42, 0xf0, 0x40, 0x02, 0xbf, 0xf3, 0x5f, 0x8f, 0x1a, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x80, 0x43, 0x00, 0x25, 0x1d, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x1d, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0xff, 0x33, 0x18, 0x4a, 0x13, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x53, 0x60, 0x93, 0x69, 0x16, 0x4c, 0x43, 0xf0, 0x07, 0x03, 0x93, 0x61, 0x29, 0x46, 0x70, 0x22, 0x20, 0x46, 0xff, 0xf7, 0x20, 0xfa, 0x12, 0x4b, 0x13, 0x4a, 0xa3, 0x60, 0x13, 0x4b, 0x62, 0x62, 0x03, 0xf1, 0x20, 0x02, 0xe2, 0x62, 0x11, 0x4a, 0x23, 0x61, 0x22, 0x64, 0x03, 0xf1, 0x40, 0x02, 0x60, 0x33, 0x63, 0x66, 0x0f, 0x4b, 0xa2, 0x64, 0x1d, 0x60, 0x01, 0x23, 0x0e, 0x4a, 0x25, 0x60, 0xe5, 0x61, 0xa5, 0x63, 0x65, 0x65, 0xe2, 0x65, 0x33, 0x60, 0x70, 0xbd, 0x00, 0xbf, 0x84, 0x59, 0x0b, 0x04, 0x1c, 0xc0, 0x03, 0x40, 0x10, 0xc0, 0x03, 0x40, 0x10, 0x00, 0x00, 0x40, 0x08, 0x5a, 0x0b, 0x04, 0x00, 0x01, 0x00, 0x40, 0x48, 0x01, 0x00, 0x40, 0x00, 0x59, 0x0b, 0x04, 0x90, 0x01, 0x00, 0x40, 0x78, 0x5a, 0x0b, 0x04, 0xd8, 0x01, 0x00, 0x40, 0x03, 0x23, 0x1c, 0x20, 0x10, 0xb5, 0x07, 0x4a, 0x00, 0xfb, 0x03, 0xf1, 0x8c, 0x58, 0x24, 0xb9, 0x01, 0x24, 0x50, 0x18, 0x54, 0x50, 0x43, 0x60, 0x10, 0xbd, 0x13, 0xf1, 0xff, 0x33, 0xf3, 0xd2, 0x00, 0x20, 0xf9, 0xe7, 0x08, 0x5a, 0x0b, 0x04, 0x00, 0x23, 0x1c, 0x20, 0x10, 0xb5, 0x07, 0x4a, 0x00, 0xfb, 0x03, 0xf1, 0x8c, 0x58, 0x24, 0xb9, 0x01, 0x24, 0x50, 0x18, 0x54, 0x50, 0x43, 0x60, 0x10, 0xbd, 0x01, 0x33, 0x04, 0x2b, 0xf3, 0xd1, 0x00, 0x20, 0xf9, 0xe7, 0x08, 0x5a, 0x0b, 0x04, 0x38, 0xb5, 0x03, 0x68, 0x0d, 0x46, 0x04, 0x69, 0xc3, 0xb1, 0x4b, 0x68, 0x9b, 0xb1, 0x10, 0x30, 0xff, 0xf7, 0xbb, 0xf9, 0x60, 0x61, 0xab, 0x68, 0x2a, 0x7b, 0x1b, 0x02, 0x9b, 0xb2, 0x13, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0x61, 0x2b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x20, 0x23, 0x60, 0x38, 0xbd, 0x03, 0x4b, 0x63, 0x61, 0xec, 0xe7, 0x4f, 0xf0, 0xff, 0x30, 0xf8, 0xe7, 0x00, 0xbf, 0x00, 0xf8, 0xff, 0xff, 0x38, 0xb5, 0x04, 0x46, 0x24, 0x68, 0x85, 0x68, 0x00, 0x69, 0x9c, 0xb1, 0xbf, 0xf3, 0x5f, 0x8f, 0x41, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x82, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0xc3, 0x60, 0xff, 0xf7, 0x90, 0xf9, 0xbf, 0xf3, 0x5f, 0x8f, 0xa8, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x23, 0x00, 0x20, 0x2b, 0x60, 0x38, 0xbd, 0x4f, 0xf0, 0xff, 0x30, 0xfb, 0xe7, 0x02, 0x68, 0x83, 0x68, 0x22, 0xb1, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x20, 0x18, 0x60, 0x70, 0x47, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x03, 0x68, 0x4b, 0xb1, 0x4f, 0xf0, 0x80, 0x42, 0x43, 0x68, 0x10, 0x6b, 0xbf, 0xf3, 0x5f, 0x8f, 0xd8, 0x40, 0x00, 0xf0, 0x01, 0x00, 0x70, 0x47, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x00, 0x00, 0x08, 0xb5, 0x03, 0x68, 0x0b, 0xb3, 0x43, 0x68, 0x07, 0x22, 0x07, 0x2b, 0x0c, 0xd8, 0x9b, 0x00, 0x02, 0xfa, 0x03, 0xf3, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x80, 0x42, 0x13, 0x61, 0x83, 0x69, 0x73, 0xb9, 0x41, 0x61, 0x00, 0x20, 0x08, 0xbd, 0x03, 0xf1, 0x80, 0x43, 0x08, 0x3b, 0x9b, 0x00, 0x02, 0xfa, 0x03, 0xf3, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x80, 0x42, 0x53, 0x61, 0xee, 0xe7, 0x01, 0x46, 0x03, 0x48, 0xfe, 0xf7, 0xea, 0xff, 0xec, 0xe7, 0x4f, 0xf0, 0xff, 0x30, 0xea, 0xe7, 0xaa, 0x52, 0x0b, 0x04, 0x03, 0x68, 0x10, 0xb5, 0x01, 0x46, 0x53, 0xb3, 0x43, 0x68, 0x4f, 0xf0, 0x80, 0x42, 0x07, 0x2b, 0x15, 0xd8, 0x10, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x24, 0x9b, 0x00, 0x04, 0xfa, 0x03, 0xf3, 0x03, 0x42, 0x04, 0xd0, 0x0f, 0x48, 0xfe, 0xf7, 0xcf, 0xff, 0x00, 0x20, 0x10, 0xbd, 0x11, 0x68, 0x0b, 0x43, 0x13, 0x60, 0x0c, 0x4a, 0x13, 0x68, 0x01, 0x33, 0x13, 0x60, 0xf5, 0xe7, 0x50, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x24, 0x03, 0xf1, 0x80, 0x43, 0x08, 0x3b, 0x9b, 0x00, 0x04, 0xfa, 0x03, 0xf3, 0x03, 0x42, 0xe6, 0xd1, 0x51, 0x68, 0x0b, 0x43, 0x53, 0x60, 0xea, 0xe7, 0x4f, 0xf0, 0xff, 0x30, 0xe3, 0xe7, 0x4f, 0x52, 0x0b, 0x04, 0x78, 0x5a, 0x0b, 0x04, 0x03, 0x68, 0x10, 0xb5, 0x01, 0x46, 0x73, 0xb3, 0x43, 0x68, 0x4f, 0xf0, 0x80, 0x42, 0x07, 0x2b, 0x18, 0xd8, 0x10, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x24, 0x9b, 0x00, 0x04, 0xfa, 0x03, 0xf3, 0x03, 0x42, 0x04, 0xd1, 0x11, 0x48, 0xfe, 0xf7, 0x99, 0xff, 0x00, 0x20, 0x1d, 0xe0, 0x11, 0x68, 0x21, 0xea, 0x03, 0x03, 0x13, 0x60, 0x0e, 0x4a, 0x13, 0x68, 0x00, 0x2b, 0xf5, 0xdd, 0x01, 0x3b, 0x13, 0x60, 0xf2, 0xe7, 0x50, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x24, 0x03, 0xf1, 0x80, 0x43, 0x08, 0x3b, 0x9b, 0x00, 0x04, 0xfa, 0x03, 0xf3, 0x03, 0x42, 0xe3, 0xd0, 0x51, 0x68, 0x21, 0xea, 0x03, 0x03, 0x53, 0x60, 0xe7, 0xe7, 0x4f, 0xf0, 0xff, 0x30, 0x10, 0xbd, 0x30, 0x52, 0x0b, 0x04, 0x78, 0x5a, 0x0b, 0x04, 0x08, 0xb5, 0x03, 0x68, 0x01, 0x46, 0xd3, 0xb1, 0x42, 0x68, 0x07, 0x23, 0x07, 0x2a, 0x0b, 0xd8, 0x93, 0x40, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x80, 0x42, 0x13, 0x61, 0x8b, 0x69, 0x5b, 0xb1, 0x00, 0x20, 0xc1, 0xe9, 0x05, 0x00, 0x08, 0xbd, 0x08, 0x3a, 0x93, 0x40, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x80, 0x42, 0x53, 0x61, 0xf1, 0xe7, 0x02, 0x48, 0xfe, 0xf7, 0x55, 0xff, 0x4f, 0xf0, 0xff, 0x30, 0xf0, 0xe7, 0x71, 0x52, 0x0b, 0x04, 0x70, 0xb5, 0x00, 0x25, 0x2e, 0x46, 0x1b, 0x4c, 0x23, 0x68, 0x01, 0x2b, 0x0a, 0xd1, 0x20, 0x46, 0xff, 0xf7, 0x98, 0xff, 0x20, 0x46, 0xff, 0xf7, 0xcf, 0xff, 0xbf, 0xf3, 0x5f, 0x8f, 0xa3, 0x68, 0x1e, 0x60, 0x26, 0x60, 0x01, 0x35, 0x04, 0x2d, 0x04, 0xf1, 0x1c, 0x04, 0xec, 0xd1, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x80, 0x43, 0x00, 0x22, 0x1a, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x1a, 0x60, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0xff, 0x32, 0x1a, 0x61, 0xbf, 0xf3, 0x5f, 0x8f, 0x5a, 0x61, 0x03, 0xf5, 0x71, 0x33, 0x03, 0xf5, 0x43, 0x73, 0x1a, 0x68, 0x22, 0xf0, 0x01, 0x02, 0x1a, 0x60, 0x1a, 0x68, 0x22, 0xf4, 0x80, 0x32, 0x1a, 0x60, 0x03, 0x4a, 0x13, 0x68, 0x01, 0x3b, 0x13, 0x60, 0x70, 0xbd, 0x00, 0xbf, 0x08, 0x5a, 0x0b, 0x04, 0x84, 0x59, 0x0b, 0x04, 0x03, 0x68, 0x10, 0xb5, 0x04, 0x46, 0x3b, 0xb1, 0xff, 0xf7, 0x5e, 0xff, 0x20, 0x46, 0xff, 0xf7, 0x95, 0xff, 0x00, 0x20, 0x20, 0x60, 0x10, 0xbd, 0x4f, 0xf0, 0xff, 0x30, 0xfb, 0xe7, 0x00, 0x00, 0x07, 0x4b, 0x82, 0xb0, 0x01, 0x93, 0x01, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf0, 0x00, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9a, 0x13, 0x60, 0x02, 0xb0, 0x70, 0x47, 0x00, 0xbf, 0x70, 0xc0, 0x03, 0x40, 0x07, 0x4b, 0x82, 0xb0, 0x01, 0x93, 0x01, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf0, 0x00, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9a, 0x13, 0x60, 0x02, 0xb0, 0x70, 0x47, 0x00, 0xbf, 0x70, 0xc0, 0x03, 0x40, 0x0c, 0x4b, 0x82, 0xb0, 0x01, 0x28, 0x01, 0x93, 0x0b, 0xd1, 0x01, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf4, 0x80, 0x13, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9a, 0x13, 0x60, 0x02, 0xb0, 0x70, 0x47, 0x03, 0x28, 0xfb, 0xd1, 0x01, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf4, 0x80, 0x13, 0xf0, 0xe7, 0xe0, 0xc4, 0x04, 0x40, 0x38, 0xb5, 0x04, 0x46, 0x00, 0xf1, 0x30, 0x05, 0x03, 0x46, 0x4f, 0xf0, 0xff, 0x10, 0x11, 0x49, 0x11, 0x4a, 0x9a, 0x60, 0xc3, 0xe9, 0x00, 0x01, 0x0c, 0x33, 0xab, 0x42, 0xf9, 0xd1, 0x80, 0x22, 0x00, 0x21, 0x4f, 0xf0, 0xa8, 0x70, 0xff, 0xf7, 0x09, 0xf8, 0x0a, 0x4b, 0x0a, 0x4a, 0x21, 0x68, 0xb1, 0xf1, 0xff, 0x1f, 0x0a, 0xd1, 0x61, 0x68, 0x99, 0x42, 0x07, 0xd1, 0xa1, 0x68, 0x91, 0x42, 0x04, 0xd1, 0x0c, 0x34, 0xac, 0x42, 0xf2, 0xd1, 0x00, 0x20, 0x38, 0xbd, 0x4f, 0xf0, 0xff, 0x30, 0xfb, 0xe7, 0x00, 0xbf, 0xa5, 0x5a, 0xa5, 0x5a, 0x5a, 0xa5, 0x5a, 0xa5, 0x0c, 0x4b, 0x82, 0xb0, 0x01, 0x93, 0x01, 0x9b, 0x1a, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x42, 0xf0, 0x10, 0x02, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9b, 0x1a, 0x60, 0x01, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf0, 0x03, 0x03, 0x03, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9a, 0x13, 0x60, 0x02, 0xb0, 0x70, 0x47, 0x70, 0xc0, 0x03, 0x40, 0x7f, 0xb5, 0x01, 0x46, 0xff, 0xf7, 0x84, 0xff, 0x21, 0x4b, 0x01, 0x20, 0x04, 0x93, 0x04, 0x33, 0x05, 0x93, 0xff, 0xf7, 0x8f, 0xff, 0x04, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf4, 0x40, 0x33, 0xbf, 0xf3, 0x5f, 0x8f, 0x04, 0x9a, 0x13, 0x60, 0x04, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf4, 0x00, 0x23, 0xbf, 0xf3, 0x5f, 0x8f, 0x04, 0x9a, 0x13, 0x60, 0x15, 0x4b, 0x03, 0x93, 0xa3, 0xf5, 0x82, 0x33, 0x90, 0x3b, 0x01, 0x93, 0x08, 0x33, 0x02, 0x93, 0x01, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf4, 0x80, 0x13, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9a, 0x13, 0x60, 0x02, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf4, 0x80, 0x13, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x9a, 0x13, 0x60, 0x08, 0x4b, 0x99, 0x42, 0x14, 0xbf, 0x00, 0x20, 0x01, 0x20, 0xff, 0xf7, 0xa2, 0xff, 0xff, 0xf7, 0x32, 0xff, 0x00, 0x20, 0x07, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0xa4, 0xc4, 0x04, 0x40, 0x94, 0xc4, 0x04, 0x40, 0x00, 0xd8, 0xb8, 0x05, 0x07, 0xb5, 0xff, 0xf7, 0x37, 0xff, 0x18, 0x4b, 0x01, 0x93, 0x18, 0x4b, 0x99, 0x42, 0x09, 0xd0, 0x17, 0x4b, 0x99, 0x42, 0x09, 0xd0, 0x40, 0xf2, 0x81, 0x22, 0x03, 0x28, 0x1b, 0xd1, 0x08, 0xe0, 0x01, 0x20, 0x19, 0xe0, 0x40, 0xf2, 0x01, 0x32, 0xf7, 0xe7, 0x03, 0x28, 0xf8, 0xd1, 0x40, 0xf2, 0x01, 0x32, 0x01, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf4, 0x7f, 0x63, 0x23, 0xf0, 0x0f, 0x03, 0x13, 0x43, 0x43, 0xf0, 0x00, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9a, 0x13, 0x60, 0x07, 0x4b, 0x99, 0x42, 0xe4, 0xd0, 0x00, 0x20, 0xff, 0xf7, 0x68, 0xff, 0x03, 0xb0, 0x5d, 0xf8, 0x04, 0xeb, 0xff, 0xf7, 0xf5, 0xbe, 0x00, 0xbf, 0x94, 0xc4, 0x04, 0x40, 0x00, 0xb0, 0x71, 0x0b, 0x00, 0xd8, 0xb8, 0x05, 0x07, 0xb5, 0x10, 0x4b, 0x03, 0x20, 0x00, 0x93, 0x04, 0x33, 0x01, 0x93, 0xff, 0xf7, 0x0a, 0xff, 0x01, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf4, 0xe0, 0x23, 0x43, 0xf4, 0x80, 0x23, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9a, 0x13, 0x60, 0x01, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x43, 0xf4, 0x00, 0x23, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x9a, 0x13, 0x60, 0x03, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x00, 0xbf, 0xa4, 0xc4, 0x04, 0x40, 0x2d, 0xe9, 0xf8, 0x43, 0x00, 0x26, 0x34, 0x46, 0x35, 0x46, 0x25, 0x4f, 0xdf, 0xf8, 0xa4, 0x80, 0xdf, 0xf8, 0xa4, 0x90, 0xfb, 0x6f, 0x0a, 0x20, 0x03, 0xea, 0x08, 0x03, 0x43, 0xea, 0x06, 0x43, 0x43, 0xf0, 0x80, 0x73, 0xfb, 0x67, 0xfe, 0xf7, 0x1f, 0xf9, 0x4f, 0xf0, 0x00, 0x60, 0xff, 0xf7, 0xf1, 0xfe, 0xf0, 0xb9, 0x48, 0x46, 0xff, 0xf7, 0xed, 0xfe, 0xd0, 0xb9, 0xf4, 0xb2, 0x00, 0x2d, 0x08, 0xbf, 0x25, 0x46, 0x31, 0x46, 0x17, 0x48, 0x01, 0x36, 0xfe, 0xf7, 0xa5, 0xfd, 0x40, 0x2e, 0xe0, 0xd1, 0x2a, 0x46, 0x21, 0x46, 0x14, 0x48, 0xfe, 0xf7, 0x9e, 0xfd, 0x63, 0x1b, 0x01, 0x2b, 0x0d, 0xdc, 0x12, 0x49, 0x12, 0x48, 0xfe, 0xf7, 0x97, 0xfd, 0x4f, 0xf0, 0xff, 0x30, 0xbd, 0xe8, 0xf8, 0x83, 0x14, 0xb1, 0xa5, 0x42, 0xec, 0xd1, 0x00, 0x24, 0x25, 0x46, 0xe2, 0xe7, 0x08, 0x4a, 0x2c, 0x44, 0xd3, 0x6f, 0x64, 0x10, 0x23, 0xf0, 0x9f, 0x73, 0x23, 0xf4, 0x80, 0x33, 0x43, 0xea, 0x04, 0x44, 0x44, 0xf0, 0x80, 0x74, 0xd4, 0x67, 0x0a, 0x20, 0xfe, 0xf7, 0xe5, 0xf8, 0xe4, 0xe7, 0x00, 0xd8, 0x00, 0x40, 0xfa, 0x52, 0x0b, 0x04, 0x03, 0x53, 0x0b, 0x04, 0x45, 0x54, 0x0b, 0x04, 0x18, 0x53, 0x0b, 0x04, 0xff, 0xff, 0xc0, 0xfe, 0xd0, 0xff, 0x7f, 0x08, 0x10, 0xb5, 0x12, 0x4c, 0xe3, 0x6f, 0x43, 0xf0, 0x01, 0x03, 0xe3, 0x67, 0xe0, 0x6f, 0x10, 0xf0, 0x01, 0x00, 0x03, 0xd0, 0x0a, 0x20, 0xfe, 0xf7, 0xc9, 0xf8, 0xf7, 0xe7, 0xe1, 0x6f, 0xc1, 0xf3, 0x05, 0x11, 0x3f, 0x29, 0x05, 0xd1, 0x0a, 0x48, 0xfe, 0xf7, 0x58, 0xfd, 0x4f, 0xf0, 0xff, 0x30, 0x10, 0xbd, 0xe3, 0x6f, 0x49, 0x08, 0x23, 0xf0, 0x9f, 0x73, 0x23, 0xf4, 0x80, 0x33, 0x43, 0xea, 0x01, 0x43, 0x43, 0xf0, 0x80, 0x73, 0xe3, 0x67, 0xf2, 0xe7, 0x00, 0xbf, 0x00, 0xd8, 0x00, 0x40, 0x40, 0x53, 0x0b, 0x04, 0x0c, 0x4b, 0x0d, 0x48, 0x99, 0x42, 0x89, 0xbf, 0x0c, 0x4b, 0x01, 0x21, 0xb1, 0xfb, 0xf3, 0xf1, 0x01, 0xf1, 0x80, 0x41, 0x88, 0xbf, 0x08, 0x39, 0x02, 0x6f, 0x09, 0x4b, 0x88, 0xbf, 0x89, 0x00, 0x03, 0xea, 0x01, 0x41, 0x22, 0xf0, 0x7f, 0x63, 0x23, 0xf4, 0x70, 0x23, 0x19, 0x43, 0x01, 0x67, 0x70, 0x47, 0x00, 0xbf, 0xff, 0x11, 0x7a, 0x00, 0x00, 0xd8, 0x00, 0x40, 0x40, 0x42, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x0f, 0x2d, 0xe9, 0xf7, 0x4f, 0xd1, 0xe9, 0x05, 0x32, 0x0d, 0x68, 0x53, 0x43, 0x02, 0x6a, 0x04, 0x46, 0x42, 0xea, 0x05, 0x60, 0x88, 0x4a, 0xd0, 0x62, 0xce, 0x69, 0x16, 0xf0, 0x70, 0x0f, 0x06, 0xd0, 0x48, 0x68, 0x10, 0x63, 0x53, 0x64, 0x10, 0x6f, 0x40, 0xf4, 0x80, 0x40, 0x10, 0x67, 0x77, 0x07, 0x37, 0xd1, 0x81, 0x4a, 0x43, 0xf6, 0xff, 0x7b, 0x53, 0x6d, 0x4f, 0xf0, 0x80, 0x09, 0x43, 0xf4, 0xa0, 0x43, 0x53, 0x65, 0x02, 0x23, 0xa3, 0x60, 0x01, 0x23, 0x21, 0x63, 0x93, 0x64, 0x7b, 0x4b, 0x1b, 0x68, 0x18, 0x6b, 0x00, 0xf1, 0x14, 0x01, 0x91, 0xe8, 0x42, 0x40, 0x71, 0x43, 0x96, 0x6d, 0xd2, 0xf8, 0x54, 0xc0, 0x75, 0x04, 0x44, 0xbf, 0x00, 0x25, 0x4f, 0xf4, 0x80, 0x47, 0xc3, 0xe9, 0x03, 0x6c, 0x44, 0xbf, 0x95, 0x65, 0x97, 0x65, 0xf7, 0x04, 0x70, 0xd5, 0x1c, 0xf4, 0x80, 0x5f, 0x6d, 0xd0, 0x9f, 0x68, 0x04, 0x2f, 0x5d, 0xd1, 0x1e, 0xf0, 0x70, 0x0f, 0x5a, 0xd0, 0x47, 0x6a, 0x00, 0x2f, 0x38, 0xd1, 0x4f, 0xf4, 0xbe, 0x72, 0x69, 0x49, 0x6a, 0x48, 0xfe, 0xf7, 0xd2, 0xfc, 0xfe, 0xe7, 0x48, 0x68, 0x64, 0x4a, 0xff, 0x2d, 0x10, 0x63, 0x13, 0x64, 0x1e, 0xbf, 0x10, 0x6f, 0x40, 0xf4, 0x80, 0x40, 0x10, 0x67, 0x4a, 0x6a, 0x63, 0x48, 0x00, 0x2b, 0xb9, 0xdd, 0xcd, 0x69, 0xee, 0x07, 0x09, 0xd5, 0x12, 0xf8, 0x01, 0x5b, 0xed, 0xb2, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x05, 0x70, 0x01, 0x3b, 0xf0, 0xe7, 0xaf, 0x07, 0x09, 0xd5, 0x32, 0xf8, 0x02, 0x5b, 0xad, 0xb2, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x05, 0x80, 0x02, 0x3b, 0xe4, 0xe7, 0x6e, 0x07, 0xe2, 0xd5, 0x52, 0xf8, 0x04, 0x5b, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x05, 0x60, 0x04, 0x3b, 0xd9, 0xe7, 0x31, 0xb9, 0x40, 0xf2, 0x7d, 0x12, 0x4c, 0x49, 0x4d, 0x48, 0xfe, 0xf7, 0x98, 0xfc, 0xfe, 0xe7, 0x4f, 0xf0, 0x00, 0x08, 0x17, 0x6d, 0xff, 0xb2, 0x01, 0x97, 0x01, 0x9f, 0x47, 0x45, 0x2f, 0xd1, 0xd3, 0xf8, 0x00, 0x80, 0x4f, 0x1e, 0xb8, 0x45, 0x09, 0xd9, 0x00, 0x21, 0x19, 0x60, 0x99, 0x68, 0x04, 0x29, 0x4f, 0xf0, 0x00, 0x01, 0x08, 0xbf, 0xc3, 0xf8, 0x08, 0x90, 0x51, 0x65, 0x9f, 0x68, 0x02, 0x2f, 0x02, 0xd0, 0x9f, 0x68, 0x04, 0x2f, 0x01, 0xd1, 0xc3, 0xf8, 0x08, 0x90, 0x00, 0x25, 0x4f, 0xf4, 0x80, 0x57, 0x55, 0x65, 0x97, 0x65, 0x9f, 0x68, 0x04, 0x2f, 0x2d, 0xd1, 0x75, 0x06, 0x2b, 0xd5, 0x1c, 0xf0, 0x40, 0x0f, 0x28, 0xd0, 0x1e, 0xf0, 0x07, 0x0f, 0x25, 0xd0, 0x47, 0x6a, 0xbf, 0xb9, 0x4f, 0xf4, 0xcb, 0x72, 0x30, 0x49, 0x31, 0x48, 0xfe, 0xf7, 0x60, 0xfc, 0xfe, 0xe7, 0x31, 0x4f, 0x97, 0xf8, 0x00, 0xa0, 0x5f, 0xfa, 0x8a, 0xfa, 0xbf, 0xf3, 0x5f, 0x8f, 0x1d, 0x68, 0x47, 0x6a, 0x08, 0xf1, 0x01, 0x08, 0x07, 0xf8, 0x05, 0xa0, 0x1f, 0x68, 0x01, 0x37, 0x1f, 0x60, 0xbb, 0xe7, 0x31, 0xb9, 0x40, 0xf2, 0x97, 0x12, 0x24, 0x49, 0x24, 0x48, 0xfe, 0xf7, 0x47, 0xfc, 0xfe, 0xe7, 0x01, 0x27, 0x5f, 0x60, 0x40, 0x27, 0x97, 0x65, 0x9f, 0x68, 0x04, 0x2f, 0x1c, 0xd1, 0xb7, 0x06, 0x1a, 0xd5, 0x1c, 0xf0, 0x20, 0x0f, 0x17, 0xd0, 0x1e, 0xf0, 0x07, 0x0f, 0x14, 0xd0, 0x47, 0x6a, 0x37, 0xb9, 0x4f, 0xf4, 0xd0, 0x72, 0x18, 0x49, 0x18, 0x48, 0xfe, 0xf7, 0x2f, 0xfc, 0xfe, 0xe7, 0x31, 0xb9, 0x40, 0xf2, 0xa1, 0x12, 0x14, 0x49, 0x14, 0x48, 0xfe, 0xf7, 0x27, 0xfc, 0xfe, 0xe7, 0x00, 0x25, 0x20, 0x27, 0x5d, 0x60, 0x97, 0x65, 0x9f, 0x68, 0x04, 0x2f, 0x39, 0xd1, 0x75, 0x07, 0x37, 0xd5, 0x1c, 0xf0, 0x04, 0x0f, 0x34, 0xd0, 0x1e, 0xf0, 0x70, 0x0f, 0x31, 0xd0, 0x46, 0x6a, 0x36, 0xb9, 0x4f, 0xf4, 0xd5, 0x72, 0x08, 0x49, 0x08, 0x48, 0xfe, 0xf7, 0x0f, 0xfc, 0xfe, 0xe7, 0x91, 0xb9, 0x40, 0xf2, 0xab, 0x12, 0x04, 0x49, 0x04, 0x48, 0xfe, 0xf7, 0x07, 0xfc, 0xfe, 0xe7, 0x00, 0xd8, 0x00, 0x40, 0x7c, 0x5a, 0x0b, 0x04, 0x2e, 0x54, 0x0b, 0x04, 0xa6, 0x53, 0x0b, 0x04, 0x00, 0xd9, 0x00, 0x40, 0x00, 0xda, 0x00, 0x40, 0x00, 0x27, 0x16, 0x6d, 0x5f, 0xfa, 0x86, 0xfc, 0xbc, 0x45, 0x3a, 0xd1, 0x18, 0x68, 0x01, 0x39, 0x88, 0x42, 0x0a, 0xd9, 0x00, 0x21, 0x19, 0x60, 0x99, 0x68, 0x04, 0x29, 0x08, 0xbf, 0xc3, 0xf8, 0x08, 0x90, 0x00, 0x23, 0x53, 0x65, 0x04, 0x23, 0x93, 0x65, 0xa3, 0x68, 0x80, 0x2b, 0x07, 0xd0, 0x0b, 0xf1, 0xff, 0x33, 0x1f, 0xfa, 0x83, 0xfb, 0xbb, 0xf1, 0x00, 0x0f, 0x7f, 0xf4, 0xdf, 0xae, 0xa2, 0x68, 0x23, 0x6b, 0x80, 0x2a, 0x36, 0xd0, 0xd4, 0xe9, 0x03, 0x12, 0x2c, 0x48, 0xfe, 0xf7, 0xd1, 0xfb, 0x4f, 0xf0, 0xff, 0x35, 0x2b, 0x4a, 0x13, 0x6f, 0x23, 0xf4, 0x80, 0x43, 0x13, 0x67, 0x01, 0x23, 0xa3, 0x60, 0x00, 0x23, 0x23, 0x63, 0x3d, 0xb1, 0x4f, 0xf0, 0xff, 0x33, 0x40, 0xf2, 0xae, 0x22, 0x25, 0x49, 0x25, 0x48, 0xfe, 0xf7, 0xbd, 0xfb, 0x28, 0x46, 0x03, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x46, 0x6a, 0x36, 0xb9, 0x4f, 0xf4, 0xd7, 0x72, 0x21, 0x49, 0x21, 0x48, 0xfe, 0xf7, 0xb1, 0xfb, 0xfe, 0xe7, 0x20, 0x4e, 0x96, 0xf8, 0x00, 0xe0, 0x5f, 0xfa, 0x8e, 0xfe, 0xbf, 0xf3, 0x5f, 0x8f, 0xd3, 0xf8, 0x00, 0x80, 0x46, 0x6a, 0x01, 0x37, 0x06, 0xf8, 0x08, 0xe0, 0x1e, 0x68, 0x01, 0x36, 0x1e, 0x60, 0xa8, 0xe7, 0xa3, 0xb1, 0x9a, 0x68, 0x92, 0xb1, 0xd3, 0xe9, 0x05, 0x12, 0x51, 0x43, 0x00, 0x22, 0x0f, 0x4d, 0x14, 0x4e, 0x91, 0x42, 0x0a, 0xd0, 0x28, 0x6d, 0x10, 0xf0, 0xff, 0x0f, 0x0d, 0xd1, 0xd8, 0x69, 0x10, 0xf0, 0x70, 0x0f, 0x09, 0xd0, 0x0f, 0x48, 0xfe, 0xf7, 0x89, 0xfb, 0x08, 0x4a, 0x00, 0x25, 0x13, 0x6f, 0x23, 0xf4, 0x80, 0x43, 0x13, 0x67, 0xb2, 0xe7, 0x30, 0x78, 0xc0, 0xb2, 0xbf, 0xf3, 0x5f, 0x8f, 0x9f, 0x68, 0xb8, 0x54, 0x01, 0x32, 0xe3, 0xe7, 0xb5, 0x53, 0x0b, 0x04, 0x00, 0xd8, 0x00, 0x40, 0x68, 0x54, 0x0b, 0x04, 0xfc, 0x53, 0x0b, 0x04, 0x2e, 0x54, 0x0b, 0x04, 0xa6, 0x53, 0x0b, 0x04, 0x00, 0xda, 0x00, 0x40, 0xe4, 0x53, 0x0b, 0x04, 0x06, 0x4b, 0x18, 0x68, 0x20, 0xf0, 0x01, 0x00, 0x18, 0x60, 0x29, 0xb1, 0x5a, 0x61, 0x1a, 0x68, 0x42, 0xf0, 0x01, 0x02, 0x1a, 0x60, 0x70, 0x47, 0x1a, 0x61, 0xf8, 0xe7, 0x00, 0xd8, 0x00, 0x40, 0x03, 0x4a, 0x53, 0x6f, 0x23, 0xf4, 0x7f, 0x43, 0x19, 0x43, 0x51, 0x67, 0x70, 0x47, 0x00, 0xbf, 0x00, 0xd8, 0x00, 0x40, 0x03, 0x4a, 0x53, 0x6f, 0x23, 0xf0, 0xff, 0x03, 0x19, 0x43, 0x51, 0x67, 0x70, 0x47, 0x00, 0xbf, 0x00, 0xd8, 0x00, 0x40, 0x38, 0xb5, 0x0d, 0x46, 0x04, 0x46, 0x28, 0xb9, 0x40, 0xf2, 0xcd, 0x22, 0x03, 0x49, 0x04, 0x48, 0xfe, 0xf7, 0x3c, 0xfb, 0x20, 0x6a, 0x25, 0x62, 0x38, 0xbd, 0x00, 0xbf, 0x7e, 0x54, 0x0b, 0x04, 0x16, 0x54, 0x0b, 0x04, 0x04, 0x4b, 0x9a, 0x68, 0x19, 0xb1, 0x42, 0xf0, 0x04, 0x02, 0x9a, 0x60, 0x70, 0x47, 0x22, 0xf0, 0x04, 0x02, 0xfa, 0xe7, 0x00, 0xd8, 0x00, 0x40, 0x00, 0x28, 0x18, 0xbf, 0x4f, 0xf4, 0x00, 0x00, 0x03, 0x4a, 0x13, 0x69, 0x23, 0xf4, 0x00, 0x03, 0x03, 0x43, 0x13, 0x61, 0x70, 0x47, 0x00, 0xbf, 0x00, 0xd8, 0x00, 0x40, 0x03, 0x29, 0x70, 0xb5, 0x0c, 0x46, 0x15, 0x46, 0x1e, 0x46, 0x05, 0xd9, 0x4f, 0xf4, 0x3c, 0x72, 0x0b, 0x49, 0x0c, 0x48, 0xfe, 0xf7, 0x0e, 0xfb, 0x04, 0x9b, 0x21, 0x01, 0x01, 0xf1, 0x80, 0x40, 0x00, 0xf5, 0x58, 0x40, 0x26, 0xf0, 0x0f, 0x06, 0x25, 0xf0, 0x0f, 0x05, 0x43, 0xf0, 0x00, 0x43, 0xc0, 0xf8, 0x84, 0x60, 0xc0, 0xf8, 0x80, 0x50, 0xc0, 0xf8, 0x88, 0x30, 0x70, 0xbd, 0x00, 0xbf, 0x99, 0x54, 0x0b, 0x04, 0x16, 0x54, 0x0b, 0x04, 0xf7, 0xb5, 0x0e, 0x46, 0x05, 0x46, 0x28, 0xb9, 0x40, 0xf2, 0x06, 0x32, 0x6a, 0x49, 0x6b, 0x48, 0xfe, 0xf7, 0xec, 0xfa, 0x2e, 0xb9, 0x40, 0xf2, 0x07, 0x32, 0x67, 0x49, 0x67, 0x48, 0xfe, 0xf7, 0xe5, 0xfa, 0x69, 0x6a, 0x66, 0x4a, 0x01, 0x29, 0x66, 0x4b, 0x7c, 0xd1, 0x11, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x22, 0x31, 0x11, 0x60, 0x19, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x60, 0x49, 0x19, 0x60, 0x60, 0x49, 0x08, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x55, 0x30, 0x04, 0x31, 0x41, 0xf8, 0x04, 0x0c, 0x0c, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x08, 0x60, 0x04, 0x31, 0x08, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x20, 0x04, 0x31, 0x41, 0xf8, 0x04, 0x0c, 0x0c, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x08, 0x60, 0x12, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x4d, 0x4b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x40, 0xf2, 0x81, 0x12, 0xc3, 0xf3, 0x0b, 0x03, 0x93, 0x42, 0x14, 0xbf, 0x49, 0x48, 0x4a, 0x48, 0xff, 0xf7, 0x24, 0xfc, 0x1e, 0x20, 0xfd, 0xf7, 0x01, 0xfe, 0xff, 0xf7, 0x29, 0xfd, 0x38, 0xb1, 0x45, 0x48, 0xff, 0xf7, 0x1b, 0xfc, 0x1e, 0x20, 0xfd, 0xf7, 0xf8, 0xfd, 0xff, 0xf7, 0x20, 0xfd, 0x0a, 0x20, 0xfd, 0xf7, 0xf3, 0xfd, 0x00, 0x23, 0x01, 0x27, 0x40, 0x4c, 0xe3, 0x62, 0x40, 0x4b, 0x67, 0x60, 0xe3, 0x64, 0x33, 0x68, 0xbb, 0x42, 0x2e, 0xd0, 0x02, 0x2b, 0x4c, 0xd0, 0x4f, 0xf4, 0x67, 0x72, 0x31, 0x49, 0x3b, 0x48, 0xfe, 0xf7, 0x79, 0xfa, 0x3b, 0x4b, 0x38, 0x46, 0x00, 0x93, 0x04, 0x33, 0x01, 0x93, 0xff, 0xf7, 0x94, 0xfb, 0x00, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf4, 0x00, 0x23, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x9a, 0x13, 0x60, 0xff, 0xf7, 0x76, 0xfb, 0x4f, 0xf0, 0xff, 0x30, 0x2e, 0xe0, 0x02, 0x29, 0x8f, 0xd1, 0x11, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0x33, 0x31, 0x11, 0x60, 0x19, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x29, 0x49, 0x7f, 0xe7, 0x29, 0x4b, 0x2a, 0x49, 0x23, 0x67, 0x60, 0x23, 0x23, 0x60, 0x40, 0xf2, 0x02, 0x73, 0xc4, 0xf8, 0xe0, 0x30, 0x49, 0xf2, 0x09, 0x03, 0xa3, 0x60, 0x4a, 0xf2, 0x0a, 0x03, 0xa3, 0x60, 0x24, 0x4b, 0x28, 0x46, 0xa3, 0x67, 0xff, 0xf7, 0xf8, 0xfe, 0x72, 0x68, 0x22, 0x4b, 0x9a, 0x42, 0x19, 0xd8, 0x00, 0x20, 0x4f, 0xf0, 0xff, 0x32, 0x17, 0x4b, 0x58, 0x65, 0x9a, 0x65, 0x03, 0xb0, 0xf0, 0xbd, 0x1d, 0x4b, 0x1a, 0x49, 0x23, 0x67, 0x60, 0x23, 0x23, 0x60, 0x40, 0xf2, 0x06, 0x73, 0xc4, 0xf8, 0xe0, 0x30, 0x4b, 0xf2, 0x0b, 0x03, 0xa3, 0x60, 0x18, 0x4b, 0x28, 0x46, 0x63, 0x67, 0xff, 0xf7, 0xdb, 0xfe, 0xe5, 0xe7, 0xa3, 0x6f, 0x43, 0xf4, 0x40, 0x13, 0xa3, 0x67, 0xe0, 0xe7, 0x00, 0xbf, 0xb9, 0x54, 0x0b, 0x04, 0x16, 0x54, 0x0b, 0x04, 0x48, 0xa4, 0x04, 0x40, 0x4c, 0xa4, 0x04, 0x40, 0x22, 0x22, 0x02, 0x00, 0x5c, 0xa4, 0x04, 0x40, 0x8c, 0xc4, 0x04, 0x40, 0x00, 0xd8, 0xb8, 0x05, 0x00, 0xb0, 0x71, 0x0b, 0x00, 0xd8, 0x00, 0x40, 0x0f, 0x38, 0x0f, 0x38, 0x81, 0x53, 0x0b, 0x04, 0xa4, 0xc4, 0x04, 0x40, 0x33, 0x33, 0x03, 0x00, 0x58, 0x21, 0xc0, 0xc1, 0x04, 0x00, 0x40, 0x00, 0x11, 0x12, 0x12, 0x01, 0xff, 0x35, 0x6e, 0x01, 0x01, 0x20, 0xc0, 0xc1, 0x00, 0x07, 0x20, 0x00, 0x1f, 0xb5, 0x21, 0x4b, 0x1a, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x4f, 0xf0, 0xff, 0x32, 0x04, 0x33, 0x43, 0xf8, 0x04, 0x2c, 0x1a, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0xbf, 0xf3, 0x5f, 0x8f, 0x1a, 0x4a, 0x01, 0x20, 0x1a, 0x60, 0x03, 0xf5, 0x01, 0x53, 0x18, 0x33, 0x02, 0x93, 0x04, 0x33, 0x03, 0x93, 0xff, 0xf7, 0xf8, 0xfa, 0x02, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf4, 0x00, 0x23, 0xbf, 0xf3, 0x5f, 0x8f, 0x02, 0x9a, 0x13, 0x60, 0xff, 0xf7, 0xda, 0xfa, 0x0f, 0x4b, 0x00, 0x93, 0x08, 0x33, 0x01, 0x93, 0x00, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf4, 0x80, 0x13, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x9a, 0x13, 0x60, 0x01, 0x9b, 0x1b, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x23, 0xf4, 0x80, 0x13, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x20, 0x01, 0x9a, 0x13, 0x60, 0x05, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x48, 0xa4, 0x04, 0x40, 0xff, 0xff, 0x0f, 0x00, 0x04, 0xc0, 0x03, 0x40, 0x02, 0x4b, 0x18, 0x68, 0x03, 0x7f, 0x01, 0x33, 0x03, 0x77, 0x70, 0x47, 0x7c, 0x5a, 0x0b, 0x04, 0x03, 0x7f, 0x01, 0x3b, 0x03, 0x77, 0x00, 0x20, 0x70, 0x47, 0x00, 0x00, 0x38, 0xb5, 0x34, 0x20, 0x0d, 0x46, 0xfe, 0xf7, 0x6d, 0xfa, 0x04, 0x46, 0x28, 0xb9, 0x0a, 0x49, 0x0a, 0x48, 0xfe, 0xf7, 0x8f, 0xf9, 0x20, 0x46, 0x38, 0xbd, 0x34, 0x22, 0x00, 0x21, 0xfe, 0xf7, 0xe5, 0xfa, 0x6b, 0x68, 0xa3, 0x62, 0x2b, 0x68, 0x63, 0x62, 0x2b, 0x7a, 0x84, 0xf8, 0x2c, 0x30, 0x03, 0x4b, 0x1c, 0x60, 0xef, 0xe7, 0x00, 0xbf, 0xcc, 0x54, 0x0b, 0x04, 0xe4, 0x52, 0x0b, 0x04, 0x7c, 0x5a, 0x0b, 0x04, 0x08, 0xb5, 0x01, 0x46, 0x20, 0xb9, 0x05, 0x48, 0xfe, 0xf7, 0x72, 0xf9, 0x00, 0x20, 0x08, 0xbd, 0x00, 0x22, 0x03, 0x4b, 0x1a, 0x60, 0xfe, 0xf7, 0xa1, 0xfa, 0xf7, 0xe7, 0x6f, 0x53, 0x0b, 0x04, 0x7c, 0x5a, 0x0b, 0x04, 0x08, 0x22, 0x4f, 0xf4, 0x80, 0x63, 0x70, 0xb5, 0x04, 0x46, 0xc0, 0xe9, 0x03, 0x23, 0x00, 0xf0, 0x66, 0xf9, 0x20, 0x46, 0x00, 0xf0, 0x63, 0xf9, 0x01, 0x21, 0x20, 0x46, 0x00, 0xf0, 0xf0, 0xf9, 0x02, 0x21, 0x05, 0x46, 0x20, 0x46, 0x00, 0xf0, 0xeb, 0xf9, 0x15, 0xf0, 0x20, 0x06, 0x02, 0x46, 0x03, 0xd1, 0x00, 0xf0, 0x07, 0x03, 0x01, 0x2b, 0x06, 0xd0, 0x29, 0x46, 0x2e, 0x48, 0xfe, 0xf7, 0x45, 0xf9, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0xbd, 0x20, 0x46, 0x00, 0xf0, 0xb2, 0xf9, 0x00, 0xf0, 0x0f, 0x03, 0x0d, 0x2b, 0x01, 0x46, 0x03, 0xd0, 0x28, 0x48, 0xfe, 0xf7, 0x37, 0xf9, 0xf0, 0xe7, 0x20, 0x46, 0x00, 0xf0, 0xfa, 0xf9, 0x20, 0x46, 0x00, 0xf0, 0x41, 0xfa, 0x01, 0x46, 0x08, 0xb9, 0x23, 0x48, 0xf2, 0xe7, 0xa2, 0x69, 0x23, 0x4b, 0x9a, 0x42, 0x03, 0xd9, 0x31, 0x46, 0x20, 0x46, 0x00, 0xf0, 0xaa, 0xf8, 0xa2, 0x69, 0x20, 0x4b, 0x9a, 0x42, 0x2d, 0xd9, 0x02, 0x22, 0x01, 0x21, 0x20, 0x46, 0x00, 0xf0, 0xe4, 0xf8, 0x02, 0x21, 0x20, 0x6a, 0xff, 0xf7, 0xc7, 0xfd, 0x4f, 0xf4, 0x00, 0x71, 0x20, 0x6a, 0xff, 0xf7, 0xb8, 0xfd, 0x09, 0x21, 0x20, 0x46, 0x00, 0xf0, 0x48, 0xfa, 0x08, 0x21, 0x20, 0x46, 0x00, 0xf0, 0x44, 0xfa, 0x00, 0x21, 0x20, 0x6a, 0xff, 0xf7, 0xd2, 0xfd, 0x01, 0x20, 0xff, 0xf7, 0xdb, 0xfd, 0x11, 0x4b, 0x11, 0x49, 0xe3, 0x61, 0x4f, 0xf4, 0x80, 0x03, 0x01, 0x20, 0x63, 0x61, 0xff, 0xf7, 0xd0, 0xfa, 0xff, 0xf7, 0x8a, 0xfb, 0x4f, 0xf4, 0x7a, 0x70, 0xfd, 0xf7, 0x5c, 0xfc, 0x00, 0x20, 0xae, 0xe7, 0x01, 0x21, 0x00, 0x22, 0x20, 0x46, 0x00, 0xf0, 0xb6, 0xf8, 0x00, 0x21, 0xd5, 0xe7, 0x00, 0xbf, 0xe1, 0x54, 0x0b, 0x04, 0x1c, 0x55, 0x0b, 0x04, 0x3e, 0x55, 0x0b, 0x04, 0x7f, 0x14, 0xef, 0x03, 0x7f, 0xf5, 0xe4, 0x09, 0x5b, 0x55, 0x0b, 0x04, 0x00, 0xb0, 0x71, 0x0b, 0x4f, 0xf4, 0x80, 0x63, 0x08, 0x22, 0x10, 0xb5, 0x04, 0x46, 0xc0, 0xe9, 0x03, 0x23, 0x00, 0xf0, 0xdc, 0xf8, 0x02, 0x21, 0x20, 0x46, 0x00, 0xf0, 0x69, 0xf9, 0x00, 0xf0, 0x07, 0x03, 0x03, 0x2b, 0x01, 0x46, 0x05, 0xd0, 0x22, 0x48, 0xfe, 0xf7, 0xc7, 0xf8, 0x4f, 0xf0, 0xff, 0x30, 0x10, 0xbd, 0x01, 0x21, 0x20, 0x46, 0x00, 0xf0, 0x5a, 0xf9, 0x00, 0xf0, 0x0f, 0x03, 0x0d, 0x2b, 0x01, 0x46, 0x01, 0xd0, 0x1c, 0x48, 0xef, 0xe7, 0x20, 0x46, 0x00, 0xf0, 0xc7, 0xf9, 0x01, 0x46, 0x08, 0xb9, 0x19, 0x48, 0xe8, 0xe7, 0x00, 0x21, 0x20, 0x46, 0x00, 0xf0, 0x34, 0xf8, 0x01, 0x22, 0x02, 0x21, 0x20, 0x46, 0x00, 0xf0, 0x72, 0xf8, 0x4f, 0xf4, 0xe0, 0x61, 0x20, 0x6a, 0xff, 0xf7, 0x4a, 0xfd, 0x0b, 0x21, 0x20, 0x46, 0x00, 0xf0, 0xda, 0xf9, 0x0a, 0x21, 0x20, 0x46, 0x00, 0xf0, 0xd6, 0xf9, 0x00, 0x21, 0x20, 0x6a, 0xff, 0xf7, 0x64, 0xfd, 0x01, 0x20, 0xff, 0xf7, 0x6d, 0xfd, 0x0b, 0x4b, 0x0b, 0x49, 0xe3, 0x61, 0x4f, 0xf4, 0x00, 0x03, 0x01, 0x20, 0x63, 0x61, 0xff, 0xf7, 0x62, 0xfa, 0xff, 0xf7, 0x1c, 0xfb, 0x4f, 0xf4, 0x7a, 0x70, 0xfd, 0xf7, 0xee, 0xfb, 0x00, 0x20, 0xbe, 0xe7, 0x61, 0x55, 0x0b, 0x04, 0x8d, 0x55, 0x0b, 0x04, 0xaf, 0x55, 0x0b, 0x04, 0xcc, 0x55, 0x0b, 0x04, 0x00, 0xb0, 0x71, 0x0b, 0x70, 0xb5, 0x8c, 0xb0, 0x05, 0x46, 0x24, 0x22, 0x0e, 0x46, 0x03, 0xa8, 0x00, 0x21, 0xfe, 0xf7, 0xcd, 0xf9, 0x01, 0x23, 0x40, 0x22, 0x07, 0x93, 0x08, 0x93, 0x10, 0x23, 0x0d, 0xf1, 0x07, 0x04, 0x02, 0xa9, 0x28, 0x6a, 0x04, 0x94, 0x02, 0x92, 0x09, 0x93, 0xff, 0xf7, 0x41, 0xfb, 0x38, 0xbb, 0x9d, 0xf8, 0x07, 0x10, 0x6b, 0x78, 0x01, 0xf0, 0xc3, 0x01, 0x01, 0x2b, 0x8d, 0xf8, 0x07, 0x10, 0x17, 0xd1, 0x41, 0xea, 0x46, 0x11, 0x41, 0xf0, 0x1a, 0x01, 0x8d, 0xf8, 0x07, 0x10, 0xc0, 0x23, 0x02, 0x93, 0x01, 0x23, 0xcd, 0xe9, 0x08, 0x33, 0x00, 0x23, 0x02, 0xa9, 0x28, 0x6a, 0x0b, 0x94, 0x03, 0x93, 0xff, 0xf7, 0x25, 0xfb, 0x00, 0x30, 0x18, 0xbf, 0x01, 0x20, 0x40, 0x42, 0x0c, 0xb0, 0x70, 0xbd, 0x02, 0x2b, 0xeb, 0xd1, 0x41, 0xea, 0x46, 0x11, 0x41, 0xf0, 0x11, 0x01, 0xe4, 0xe7, 0x4f, 0xf0, 0xff, 0x30, 0xf3, 0xe7, 0xf0, 0xb5, 0x8d, 0xb0, 0x04, 0x46, 0x0f, 0x46, 0x16, 0x46, 0x00, 0x21, 0x1c, 0x22, 0x05, 0xa8, 0xfe, 0xf7, 0x89, 0xf9, 0x01, 0x23, 0x07, 0x93, 0x08, 0x93, 0x10, 0x23, 0x40, 0x22, 0x09, 0x93, 0x04, 0x23, 0x0d, 0xf1, 0x07, 0x05, 0x02, 0xa9, 0x20, 0x6a, 0x02, 0x92, 0x03, 0x93, 0x04, 0x95, 0xff, 0xf7, 0xfb, 0xfa, 0x08, 0xbb, 0x9d, 0xf8, 0x07, 0x20, 0x01, 0x2f, 0x02, 0xf0, 0x1f, 0x02, 0x8d, 0xf8, 0x07, 0x20, 0x13, 0xd1, 0x42, 0xea, 0x86, 0x12, 0x8d, 0xf8, 0x07, 0x20, 0xc0, 0x23, 0x02, 0x93, 0x01, 0x23, 0x02, 0xa9, 0x20, 0x6a, 0xcd, 0xe9, 0x08, 0x33, 0x0b, 0x95, 0xff, 0xf7, 0xe4, 0xfa, 0x00, 0x30, 0x18, 0xbf, 0x01, 0x20, 0x40, 0x42, 0x0d, 0xb0, 0xf0, 0xbd, 0x63, 0x78, 0x02, 0x2b, 0xec, 0xd1, 0x42, 0xea, 0x46, 0x12, 0xe7, 0xe7, 0x4f, 0xf0, 0xff, 0x30, 0xf4, 0xe7, 0x30, 0xb5, 0x00, 0x21, 0x04, 0x46, 0x8d, 0xb0, 0x28, 0x22, 0x02, 0xa8, 0x01, 0x91, 0xfe, 0xf7, 0x4a, 0xf9, 0x63, 0x78, 0x01, 0x3b, 0x01, 0x2b, 0x08, 0xd8, 0xff, 0x23, 0x01, 0x20, 0x02, 0x93, 0x02, 0x23, 0xcd, 0xe9, 0x07, 0x03, 0x01, 0xaa, 0x0b, 0x92, 0x09, 0x93, 0x02, 0xa9, 0x20, 0x6a, 0xff, 0xf7, 0xbb, 0xfa, 0x05, 0x46, 0x20, 0xb1, 0x4f, 0xf0, 0xff, 0x34, 0x20, 0x46, 0x0d, 0xb0, 0x30, 0xbd, 0xc8, 0x20, 0xfd, 0xf7, 0x3b, 0xfb, 0xff, 0x23, 0x02, 0x93, 0x01, 0x23, 0x01, 0xaa, 0x20, 0x6a, 0x02, 0xa9, 0xcd, 0xe9, 0x07, 0x33, 0x01, 0x95, 0x0b, 0x92, 0x09, 0x93, 0xff, 0xf7, 0xa4, 0xfa, 0x04, 0x46, 0x00, 0x28, 0xe7, 0xd1, 0x4f, 0xf4, 0x7a, 0x70, 0xfd, 0xf7, 0x27, 0xfb, 0xe4, 0xe7, 0xf0, 0xb5, 0x8d, 0xb0, 0x05, 0x46, 0x0f, 0x46, 0x24, 0x22, 0x00, 0x21, 0x03, 0xa8, 0xfe, 0xf7, 0x11, 0xf9, 0x40, 0x23, 0x01, 0x24, 0x02, 0x93, 0x10, 0x23, 0x0d, 0xf1, 0x07, 0x06, 0x02, 0xa9, 0x28, 0x6a, 0x07, 0x94, 0x08, 0x94, 0x09, 0x93, 0x04, 0x96, 0xff, 0xf7, 0x85, 0xfa, 0xa8, 0xb9, 0xc0, 0x23, 0x9d, 0xf8, 0x07, 0x10, 0x28, 0x6a, 0x21, 0xf0, 0x03, 0x01, 0x39, 0x43, 0x8d, 0xf8, 0x07, 0x10, 0x02, 0xa9, 0x02, 0x93, 0xcd, 0xe9, 0x08, 0x44, 0x0b, 0x96, 0xff, 0xf7, 0x74, 0xfa, 0x00, 0x30, 0x18, 0xbf, 0x01, 0x20, 0x40, 0x42, 0x0d, 0xb0, 0xf0, 0xbd, 0x4f, 0xf0, 0xff, 0x30, 0xfa, 0xe7, 0x00, 0x21, 0x10, 0xb5, 0x8c, 0xb0, 0x04, 0x46, 0x28, 0x22, 0x02, 0xa8, 0x8d, 0xf8, 0x07, 0x10, 0xfe, 0xf7, 0xdf, 0xf8, 0x10, 0x22, 0x0d, 0xf1, 0x07, 0x03, 0x04, 0x93, 0x01, 0x23, 0x09, 0x92, 0x62, 0x78, 0x02, 0xa9, 0x01, 0x3a, 0x9a, 0x42, 0x98, 0xbf, 0x40, 0x22, 0x20, 0x6a, 0x98, 0xbf, 0xcd, 0xe9, 0x02, 0x23, 0xcd, 0xe9, 0x07, 0x33, 0x06, 0x93, 0xff, 0xf7, 0x4c, 0xfa, 0x18, 0xb9, 0x9d, 0xf8, 0x07, 0x00, 0x0c, 0xb0, 0x10, 0xbd, 0x4f, 0xf0, 0xff, 0x30, 0xfa, 0xe7, 0x30, 0xb5, 0x8f, 0xb0, 0x04, 0x46, 0x0d, 0x46, 0x28, 0x22, 0x00, 0x21, 0x04, 0xa8, 0xfe, 0xf7, 0xb9, 0xf8, 0x01, 0xab, 0x06, 0x93, 0x01, 0x23, 0xcd, 0xe9, 0x08, 0x33, 0x63, 0x78, 0x01, 0x2b, 0x0a, 0xd0, 0x02, 0x2b, 0x10, 0xd0, 0x04, 0xa9, 0x20, 0x6a, 0xff, 0xf7, 0x2d, 0xfa, 0x88, 0xb9, 0xbd, 0xf8, 0x04, 0x00, 0x0f, 0xb0, 0x30, 0xbd, 0x40, 0x23, 0x04, 0x93, 0x10, 0x23, 0x0b, 0x93, 0x02, 0x23, 0x05, 0x95, 0x0a, 0x93, 0xee, 0xe7, 0x40, 0x22, 0x04, 0x92, 0x20, 0x22, 0x05, 0x95, 0x0b, 0x92, 0xf7, 0xe7, 0x4f, 0xf0, 0xff, 0x30, 0xec, 0xe7, 0x00, 0x21, 0x30, 0xb5, 0x8d, 0xb0, 0x05, 0x46, 0x28, 0x22, 0x02, 0xa8, 0xcd, 0xe9, 0x00, 0x11, 0xfe, 0xf7, 0x8b, 0xf8, 0x01, 0x23, 0x02, 0x22, 0x06, 0x93, 0xcd, 0xe9, 0x07, 0x32, 0x6b, 0x78, 0x20, 0x22, 0x01, 0x3b, 0x01, 0x2b, 0x98, 0xbf, 0x40, 0x23, 0x4f, 0xf0, 0x00, 0x04, 0x09, 0x92, 0x98, 0xbf, 0x02, 0x93, 0x0d, 0xeb, 0x04, 0x03, 0x02, 0xa9, 0x28, 0x6a, 0xcd, 0xe9, 0x03, 0x43, 0xff, 0xf7, 0xf5, 0xf9, 0x20, 0xb9, 0x02, 0x34, 0x08, 0x2c, 0xf3, 0xd1, 0x0d, 0xb0, 0x30, 0xbd, 0x4f, 0xf0, 0xff, 0x30, 0xfa, 0xe7, 0x00, 0x21, 0x10, 0xb5, 0x8c, 0xb0, 0x04, 0x46, 0x24, 0x22, 0x03, 0xa8, 0xcd, 0xe9, 0x00, 0x11, 0xfe, 0xf7, 0x60, 0xf8, 0x01, 0x23, 0x04, 0x22, 0x06, 0x93, 0xcd, 0xe9, 0x07, 0x23, 0x20, 0x22, 0x40, 0x23, 0x02, 0xa9, 0x20, 0x6a, 0x09, 0x92, 0x02, 0x93, 0xcd, 0xf8, 0x10, 0xd0, 0xff, 0xf7, 0xd3, 0xf9, 0x00, 0x30, 0x18, 0xbf, 0x01, 0x20, 0x40, 0x42, 0x0c, 0xb0, 0x10, 0xbd, 0x00, 0x21, 0x10, 0xb5, 0x04, 0x46, 0x8c, 0xb0, 0x28, 0x22, 0x02, 0xa8, 0xad, 0xf8, 0x06, 0x10, 0xfe, 0xf7, 0x41, 0xf8, 0x01, 0x22, 0x0d, 0xf1, 0x06, 0x03, 0x04, 0x93, 0x63, 0x78, 0x07, 0x92, 0x01, 0x3b, 0x93, 0x42, 0x06, 0xd8, 0x40, 0x23, 0x02, 0x93, 0x10, 0x23, 0x09, 0x93, 0x02, 0x23, 0x08, 0x92, 0x03, 0x93, 0x02, 0xa9, 0x20, 0x6a, 0xff, 0xf7, 0xaf, 0xf9, 0x28, 0xb9, 0xbd, 0xf8, 0x06, 0x00, 0xc0, 0xf3, 0xc0, 0x10, 0x0c, 0xb0, 0x10, 0xbd, 0x4f, 0xf0, 0xff, 0x30, 0xfa, 0xe7, 0x00, 0x00, 0xa1, 0xf1, 0x08, 0x02, 0x10, 0xb4, 0x0b, 0x46, 0x03, 0x2a, 0x1e, 0xd8, 0xdf, 0xe8, 0x02, 0xf0, 0x18, 0x25, 0x28, 0x02, 0x13, 0x4a, 0x01, 0x21, 0x13, 0x0e, 0xc3, 0x70, 0x12, 0x4b, 0x00, 0x6a, 0x1c, 0x68, 0x44, 0xf0, 0x20, 0x04, 0x1c, 0x60, 0x1c, 0x68, 0x44, 0xf0, 0x40, 0x04, 0x1c, 0x60, 0x1c, 0x68, 0x44, 0xf4, 0x80, 0x34, 0x1c, 0x60, 0x5d, 0xf8, 0x04, 0x4b, 0xff, 0xf7, 0x3c, 0xbb, 0x00, 0x22, 0x13, 0x0e, 0x83, 0x70, 0x00, 0x21, 0xe8, 0xe7, 0x4f, 0xf4, 0xb0, 0x72, 0x07, 0x49, 0x07, 0x48, 0x5d, 0xf8, 0x04, 0x4b, 0xfd, 0xf7, 0x99, 0xbe, 0x4f, 0xf0, 0x00, 0x42, 0xda, 0xe7, 0x04, 0x4a, 0xee, 0xe7, 0x04, 0x00, 0x44, 0xa0, 0x00, 0xd8, 0x00, 0x40, 0xd2, 0x55, 0x0b, 0x04, 0x15, 0x57, 0x0b, 0x04, 0x04, 0x00, 0x44, 0x20, 0x73, 0xb5, 0x04, 0x46, 0x13, 0x78, 0x0e, 0x46, 0x43, 0x70, 0x52, 0x68, 0x01, 0x2b, 0x21, 0x62, 0x82, 0x61, 0x14, 0xd0, 0x02, 0x2b, 0x16, 0xd0, 0x4f, 0xf0, 0xff, 0x35, 0x63, 0x78, 0x01, 0x2b, 0x14, 0xd1, 0x00, 0x21, 0x0c, 0x4b, 0x00, 0x91, 0x4f, 0xf0, 0x00, 0x62, 0x30, 0x46, 0xff, 0xf7, 0x57, 0xfb, 0x0a, 0x20, 0xfd, 0xf7, 0xd6, 0xf9, 0x28, 0x46, 0x02, 0xb0, 0x70, 0xbd, 0xff, 0xf7, 0x03, 0xfd, 0x05, 0x46, 0xea, 0xe7, 0xff, 0xf7, 0x89, 0xfd, 0xfa, 0xe7, 0x02, 0x2b, 0xf0, 0xd1, 0x00, 0x21, 0x02, 0x4b, 0x00, 0x91, 0xe7, 0xe7, 0xff, 0xff, 0x3f, 0x08, 0xff, 0xff, 0x7f, 0x08, 0x08, 0xb5, 0x24, 0x22, 0x00, 0x21, 0xfd, 0xf7, 0xb1, 0xff, 0x00, 0x20, 0x08, 0xbd, 0x00, 0x00, 0x38, 0xb5, 0x49, 0x4c, 0x49, 0x4d, 0x22, 0x68, 0x21, 0x46, 0x28, 0x46, 0xfd, 0xf7, 0x4a, 0xfe, 0x62, 0x68, 0x47, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x45, 0xfe, 0xa2, 0x68, 0x45, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x40, 0xfe, 0xe2, 0x68, 0x44, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x3b, 0xfe, 0x22, 0x69, 0x42, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x36, 0xfe, 0x62, 0x69, 0x41, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x31, 0xfe, 0xe2, 0x6a, 0x3f, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x2c, 0xfe, 0x22, 0x6b, 0x3e, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x27, 0xfe, 0x22, 0x6c, 0x3c, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x22, 0xfe, 0x62, 0x6c, 0x3b, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x1d, 0xfe, 0xe2, 0x6c, 0x39, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x18, 0xfe, 0x62, 0x6d, 0x38, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x13, 0xfe, 0xa2, 0x6d, 0x36, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x0e, 0xfe, 0x22, 0x6e, 0x35, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x09, 0xfe, 0xe2, 0x6e, 0x33, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0x04, 0xfe, 0x22, 0x6f, 0x32, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xff, 0xfd, 0x62, 0x6f, 0x30, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xfa, 0xfd, 0xa2, 0x6f, 0x2f, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xf5, 0xfd, 0xe2, 0x6f, 0x2d, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xf0, 0xfd, 0xd4, 0xf8, 0x80, 0x20, 0x2b, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xea, 0xfd, 0xd4, 0xf8, 0x84, 0x20, 0x29, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xe4, 0xfd, 0xd4, 0xf8, 0x88, 0x20, 0x27, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xde, 0xfd, 0xd4, 0xf8, 0xc0, 0x20, 0x25, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xd8, 0xfd, 0xd4, 0xf8, 0xe0, 0x20, 0x23, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xd2, 0xfd, 0xd4, 0xf8, 0xf0, 0x20, 0x21, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xcc, 0xfd, 0xd4, 0xf8, 0x00, 0x21, 0x1f, 0x49, 0x28, 0x46, 0xfd, 0xf7, 0xc6, 0xfd, 0xd4, 0xf8, 0x00, 0x22, 0x28, 0x46, 0xbd, 0xe8, 0x38, 0x40, 0x1c, 0x49, 0xfd, 0xf7, 0xbe, 0xbd, 0x00, 0xd8, 0x00, 0x40, 0xe5, 0x55, 0x0b, 0x04, 0x04, 0xd8, 0x00, 0x40, 0x08, 0xd8, 0x00, 0x40, 0x0c, 0xd8, 0x00, 0x40, 0x10, 0xd8, 0x00, 0x40, 0x14, 0xd8, 0x00, 0x40, 0x2c, 0xd8, 0x00, 0x40, 0x30, 0xd8, 0x00, 0x40, 0x40, 0xd8, 0x00, 0x40, 0x44, 0xd8, 0x00, 0x40, 0x4c, 0xd8, 0x00, 0x40, 0x54, 0xd8, 0x00, 0x40, 0x58, 0xd8, 0x00, 0x40, 0x60, 0xd8, 0x00, 0x40, 0x6c, 0xd8, 0x00, 0x40, 0x70, 0xd8, 0x00, 0x40, 0x74, 0xd8, 0x00, 0x40, 0x78, 0xd8, 0x00, 0x40, 0x7c, 0xd8, 0x00, 0x40, 0x80, 0xd8, 0x00, 0x40, 0x84, 0xd8, 0x00, 0x40, 0x88, 0xd8, 0x00, 0x40, 0xc0, 0xd8, 0x00, 0x40, 0xe0, 0xd8, 0x00, 0x40, 0xf0, 0xd8, 0x00, 0x40, 0x00, 0xd9, 0x00, 0x40, 0x00, 0xda, 0x00, 0x40, 0x01, 0x22, 0x70, 0xb5, 0x26, 0x4e, 0x86, 0xb0, 0x90, 0x42, 0x05, 0x46, 0x04, 0x96, 0x8d, 0xf8, 0x14, 0x20, 0x06, 0xd0, 0x02, 0x28, 0x10, 0xd0, 0x22, 0x48, 0xfd, 0xf7, 0x77, 0xfd, 0x06, 0xb0, 0x70, 0xbd, 0x21, 0x48, 0xfd, 0xf7, 0x72, 0xfd, 0x03, 0xa9, 0x00, 0x20, 0x03, 0x95, 0xff, 0xf7, 0xd3, 0xfb, 0x04, 0x46, 0x18, 0xb9, 0x1d, 0x48, 0xef, 0xe7, 0x1d, 0x48, 0xf2, 0xe7, 0x03, 0xa9, 0xff, 0xf7, 0x6e, 0xfa, 0x38, 0xb1, 0x1b, 0x48, 0xfd, 0xf7, 0x60, 0xfd, 0x20, 0x46, 0xff, 0xf7, 0xe5, 0xfb, 0x19, 0x48, 0xe1, 0xe7, 0xff, 0xf7, 0xb1, 0xfb, 0x04, 0x46, 0x30, 0xb9, 0x17, 0x48, 0xfd, 0xf7, 0x54, 0xfd, 0x20, 0x46, 0xff, 0xf7, 0x5f, 0xfb, 0xef, 0xe7, 0xcd, 0xe9, 0x01, 0x56, 0x13, 0x4b, 0x14, 0x4d, 0xd9, 0x6f, 0x14, 0x48, 0xfd, 0xf7, 0x48, 0xfd, 0x01, 0xaa, 0x21, 0x46, 0x28, 0x46, 0xff, 0xf7, 0xb9, 0xfe, 0x18, 0xb1, 0x20, 0x46, 0xff, 0xf7, 0x9f, 0xfb, 0xe9, 0xe7, 0xd5, 0xe9, 0x06, 0x21, 0x0d, 0x48, 0xfd, 0xf7, 0x39, 0xfd, 0x0d, 0x48, 0xbd, 0xe7, 0x00, 0xbf, 0x00, 0xe0, 0x70, 0x72, 0x1c, 0x56, 0x0b, 0x04, 0xf4, 0x55, 0x0b, 0x04, 0x4c, 0x56, 0x0b, 0x04, 0x08, 0x56, 0x0b, 0x04, 0x69, 0x56, 0x0b, 0x04, 0xf4, 0x56, 0x0b, 0x04, 0x8a, 0x56, 0x0b, 0x04, 0x00, 0xd8, 0x00, 0x40, 0x80, 0x5a, 0x0b, 0x04, 0xa5, 0x56, 0x0b, 0x04, 0xb9, 0x56, 0x0b, 0x04, 0xda, 0x56, 0x0b, 0x04, 0x30, 0xb5, 0x05, 0x68, 0xbf, 0xf3, 0x5f, 0x8f, 0x01, 0x24, 0x94, 0x40, 0x01, 0x3c, 0x8c, 0x40, 0x25, 0xea, 0x04, 0x04, 0x8b, 0x40, 0x23, 0x43, 0xbf, 0xf3, 0x5f, 0x8f, 0x03, 0x60, 0x30, 0xbd, 0x70, 0x47, 0x00, 0x00, 0x10, 0xb5, 0x04, 0x46, 0x00, 0x23, 0x01, 0x22, 0x03, 0x21, 0x2b, 0x48, 0xff, 0xf7, 0xe6, 0xff, 0x2a, 0x4b, 0x00, 0x2c, 0x44, 0xd0, 0x01, 0x24, 0x1c, 0x60, 0x00, 0x23, 0x22, 0x46, 0x19, 0x46, 0x27, 0x48, 0xff, 0xf7, 0xdb, 0xff, 0x23, 0x46, 0x21, 0x46, 0x25, 0x48, 0xff, 0xf7, 0xd6, 0xff, 0x24, 0x4a, 0x13, 0x68, 0x1b, 0x09, 0x13, 0xf0, 0x0e, 0x0f, 0xfa, 0xd0, 0x01, 0x23, 0x00, 0x21, 0x1a, 0x46, 0x21, 0x48, 0xff, 0xf7, 0xca, 0xff, 0x00, 0x23, 0x01, 0x22, 0x19, 0x46, 0x1e, 0x48, 0xff, 0xf7, 0xc4, 0xff, 0x00, 0x23, 0x06, 0x22, 0x19, 0x46, 0x1c, 0x48, 0xff, 0xf7, 0xbe, 0xff, 0x00, 0x23, 0x01, 0x22, 0x06, 0x21, 0x19, 0x48, 0xff, 0xf7, 0xb8, 0xff, 0x00, 0x23, 0x01, 0x22, 0x0d, 0x21, 0x16, 0x48, 0xff, 0xf7, 0xb2, 0xff, 0x01, 0x23, 0x00, 0x21, 0x1a, 0x46, 0x14, 0x48, 0xff, 0xf7, 0xac, 0xff, 0x01, 0x23, 0x12, 0x48, 0x1a, 0x46, 0x19, 0x46, 0xff, 0xf7, 0xa6, 0xff, 0xbd, 0xe8, 0x10, 0x40, 0x01, 0x23, 0x02, 0x21, 0x1a, 0x46, 0x0d, 0x48, 0xff, 0xf7, 0x9e, 0xbf, 0x02, 0x22, 0x1a, 0x60, 0x01, 0x23, 0x21, 0x46, 0x1a, 0x46, 0x05, 0x48, 0xff, 0xf7, 0x96, 0xff, 0x01, 0x22, 0x23, 0x46, 0x11, 0x46, 0xb8, 0xe7, 0x2c, 0x81, 0x03, 0x40, 0xa4, 0x5a, 0x0b, 0x04, 0x24, 0x81, 0x03, 0x40, 0x28, 0x81, 0x03, 0x40, 0x00, 0x81, 0x03, 0x40, 0x44, 0xa0, 0x03, 0x40, 0x80, 0x15, 0x05, 0x40, 0x2d, 0xe9, 0xf8, 0x43, 0x4f, 0xf0, 0x40, 0x62, 0x00, 0x23, 0x40, 0x08, 0x1b, 0x4c, 0x00, 0x05, 0x1b, 0x4e, 0x8b, 0x42, 0x1e, 0x44, 0x0a, 0xd1, 0x4f, 0xf0, 0x40, 0x65, 0x18, 0x4c, 0x19, 0x4a, 0xa6, 0x42, 0x0a, 0xd1, 0x18, 0x48, 0xfd, 0xf7, 0x8b, 0xfc, 0x00, 0x20, 0x16, 0xe0, 0x1d, 0x19, 0x16, 0x60, 0x01, 0x33, 0x85, 0x50, 0x04, 0x32, 0xea, 0xe7, 0x47, 0x59, 0x04, 0xeb, 0x02, 0x08, 0xb8, 0x45, 0x00, 0xeb, 0x05, 0x09, 0x0b, 0xd0, 0x10, 0x48, 0xfd, 0xf7, 0x79, 0xfc, 0x4b, 0x46, 0x42, 0x46, 0x39, 0x46, 0x0e, 0x48, 0xfd, 0xf7, 0x73, 0xfc, 0x01, 0x20, 0xbd, 0xe8, 0xf8, 0x83, 0x2b, 0x46, 0x53, 0xf8, 0x04, 0x7b, 0xa7, 0x42, 0x05, 0xd0, 0x08, 0x48, 0xfd, 0xf7, 0x68, 0xfc, 0x2b, 0x46, 0x22, 0x46, 0xed, 0xe7, 0x01, 0x34, 0x1d, 0x46, 0xd1, 0xe7, 0x98, 0xba, 0xdc, 0xfe, 0x67, 0x45, 0x23, 0x01, 0x31, 0x75, 0xb9, 0xfd, 0x63, 0x57, 0x0b, 0x04, 0x33, 0x57, 0x0b, 0x04, 0x4b, 0x57, 0x0b, 0x04, 0x4f, 0xf4, 0x7a, 0x73, 0x48, 0x43, 0xb0, 0xfb, 0xf3, 0xf2, 0x03, 0xfb, 0x12, 0x00, 0x00, 0x28, 0x0c, 0xbf, 0x10, 0x46, 0x50, 0x1c, 0x70, 0x47, 0xf8, 0xb5, 0x01, 0x23, 0x04, 0x46, 0x1a, 0x46, 0x15, 0x21, 0xd6, 0x48, 0xff, 0xf7, 0x26, 0xff, 0x01, 0x23, 0x15, 0x21, 0x1a, 0x46, 0xd4, 0x48, 0xff, 0xf7, 0x20, 0xff, 0x00, 0x23, 0x01, 0x22, 0x0f, 0x21, 0xd2, 0x48, 0xff, 0xf7, 0x1a, 0xff, 0x01, 0x23, 0x10, 0x21, 0x1a, 0x46, 0xcf, 0x48, 0xff, 0xf7, 0x14, 0xff, 0x00, 0x23, 0x01, 0x22, 0x1d, 0x21, 0xcc, 0x48, 0xff, 0xf7, 0x0e, 0xff, 0x08, 0x23, 0x06, 0x22, 0x00, 0x21, 0xca, 0x48, 0xff, 0xf7, 0x08, 0xff, 0x08, 0x23, 0x06, 0x22, 0x07, 0x21, 0xc7, 0x48, 0xff, 0xf7, 0x02, 0xff, 0x08, 0x23, 0x06, 0x22, 0x0e, 0x21, 0xc4, 0x48, 0xff, 0xf7, 0xfc, 0xfe, 0x01, 0x23, 0x06, 0x21, 0x1a, 0x46, 0xc1, 0x48, 0xff, 0xf7, 0xf6, 0xfe, 0x01, 0x23, 0x0d, 0x21, 0x1a, 0x46, 0xbe, 0x48, 0xff, 0xf7, 0xf0, 0xfe, 0x01, 0x23, 0x1e, 0x21, 0x1a, 0x46, 0xbb, 0x48, 0xff, 0xf7, 0xea, 0xfe, 0x01, 0x23, 0x1f, 0x21, 0x1a, 0x46, 0xb9, 0x48, 0xff, 0xf7, 0xe4, 0xfe, 0x01, 0x23, 0x07, 0x21, 0x1a, 0x46, 0xb6, 0x48, 0xff, 0xf7, 0xde, 0xfe, 0x07, 0x22, 0x65, 0x6c, 0xb4, 0x4b, 0x15, 0xf0, 0x01, 0x05, 0x1a, 0x60, 0x40, 0xf0, 0xff, 0x81, 0x2b, 0x46, 0x01, 0x22, 0x15, 0x21, 0xb1, 0x48, 0xff, 0xf7, 0xd0, 0xfe, 0x01, 0x23, 0x0f, 0x21, 0x1a, 0x46, 0xaf, 0x48, 0xff, 0xf7, 0xca, 0xfe, 0x2b, 0x46, 0x01, 0x22, 0x0f, 0x21, 0xad, 0x48, 0xff, 0xf7, 0xc4, 0xfe, 0x23, 0x23, 0x06, 0x22, 0x01, 0x21, 0xab, 0x48, 0xff, 0xf7, 0xbe, 0xfe, 0x28, 0x23, 0x06, 0x22, 0x09, 0x21, 0xa8, 0x48, 0xff, 0xf7, 0xb8, 0xfe, 0x17, 0x23, 0x06, 0x22, 0x11, 0x21, 0xa5, 0x48, 0xff, 0xf7, 0xb2, 0xfe, 0x1b, 0x23, 0x06, 0x22, 0x19, 0x21, 0xa2, 0x48, 0xff, 0xf7, 0xac, 0xfe, 0x23, 0x23, 0x06, 0x22, 0x01, 0x21, 0xa0, 0x48, 0xff, 0xf7, 0xa6, 0xfe, 0x28, 0x23, 0x06, 0x22, 0x09, 0x21, 0x9d, 0x48, 0xff, 0xf7, 0xa0, 0xfe, 0x23, 0x23, 0x06, 0x22, 0x11, 0x21, 0x9a, 0x48, 0xff, 0xf7, 0x9a, 0xfe, 0x06, 0x22, 0x28, 0x23, 0x19, 0x21, 0x97, 0x48, 0xff, 0xf7, 0x94, 0xfe, 0x63, 0x68, 0x96, 0x49, 0x0b, 0x2b, 0x0c, 0xbf, 0x4f, 0xf4, 0x0b, 0x62, 0x4f, 0xf4, 0xfc, 0x62, 0x93, 0x4b, 0x0a, 0x60, 0x1a, 0x60, 0x23, 0x68, 0xc8, 0x2b, 0x00, 0xf2, 0xbd, 0x81, 0x17, 0x23, 0x08, 0x22, 0x00, 0x21, 0x8f, 0x48, 0xff, 0xf7, 0x7f, 0xfe, 0x63, 0x68, 0x0b, 0x2b, 0x8e, 0x4b, 0x40, 0xf0, 0xd9, 0x81, 0x8d, 0x4a, 0x1a, 0x60, 0x00, 0x21, 0x8d, 0x4b, 0x04, 0x22, 0x19, 0x60, 0x8c, 0x48, 0x05, 0x23, 0x25, 0x68, 0xff, 0xf7, 0x6f, 0xfe, 0x8b, 0x4b, 0xad, 0x08, 0x1b, 0x68, 0x13, 0xf0, 0x80, 0x5f, 0x4f, 0xf4, 0x7a, 0x73, 0x40, 0xf0, 0xfd, 0x81, 0x40, 0xf6, 0x3c, 0x72, 0x6a, 0x43, 0x00, 0x21, 0xb2, 0xfb, 0xf3, 0xf3, 0x83, 0x48, 0x12, 0x22, 0xff, 0xf7, 0x5c, 0xfe, 0x29, 0x46, 0x3c, 0x20, 0xff, 0xf7, 0x1e, 0xff, 0x63, 0x68, 0x06, 0x46, 0x0b, 0x2b, 0x02, 0xd0, 0x5a, 0x20, 0xff, 0xf7, 0x17, 0xff, 0x43, 0x1c, 0x07, 0x22, 0x14, 0x21, 0x7a, 0x48, 0xff, 0xf7, 0x4b, 0xfe, 0x33, 0x46, 0x07, 0x22, 0x00, 0x21, 0x78, 0x48, 0xff, 0xf7, 0x45, 0xfe, 0x29, 0x46, 0x14, 0x20, 0xff, 0xf7, 0x07, 0xff, 0x07, 0x22, 0x03, 0x46, 0x08, 0x21, 0x73, 0x48, 0xff, 0xf7, 0x3b, 0xfe, 0x29, 0x46, 0x1e, 0x20, 0xff, 0xf7, 0xfd, 0xfe, 0x07, 0x22, 0x03, 0x46, 0x10, 0x21, 0x6e, 0x48, 0xff, 0xf7, 0x31, 0xfe, 0x33, 0x46, 0x07, 0x22, 0x18, 0x21, 0x6b, 0x48, 0xff, 0xf7, 0x2b, 0xfe, 0x29, 0x46, 0x6a, 0x48, 0xff, 0xf7, 0xed, 0xfe, 0x10, 0x22, 0x03, 0x46, 0x11, 0x46, 0x06, 0x46, 0x68, 0x48, 0xff, 0xf7, 0x20, 0xfe, 0x29, 0x46, 0x42, 0xf2, 0x10, 0x70, 0xff, 0xf7, 0xe1, 0xfe, 0x10, 0x22, 0x03, 0x46, 0x00, 0x21, 0x62, 0x48, 0xff, 0xf7, 0x15, 0xfe, 0x29, 0x46, 0x64, 0x20, 0xff, 0xf7, 0xd7, 0xfe, 0x07, 0x22, 0x03, 0x46, 0x07, 0x46, 0x18, 0x21, 0x5e, 0x48, 0xff, 0xf7, 0x0a, 0xfe, 0x63, 0x68, 0x0b, 0x2b, 0x40, 0xf0, 0x6e, 0x81, 0x29, 0x46, 0x46, 0x20, 0xff, 0xf7, 0xc8, 0xfe, 0x03, 0x46, 0x07, 0x22, 0x10, 0x21, 0x57, 0x48, 0xff, 0xf7, 0xfc, 0xfd, 0x01, 0x23, 0x07, 0x22, 0x08, 0x21, 0x54, 0x48, 0xff, 0xf7, 0xf6, 0xfd, 0x3b, 0x46, 0x07, 0x22, 0x00, 0x21, 0x51, 0x48, 0xff, 0xf7, 0xf0, 0xfd, 0x10, 0x22, 0x33, 0x46, 0x11, 0x46, 0x4f, 0x48, 0xff, 0xf7, 0xea, 0xfd, 0x33, 0x46, 0x10, 0x22, 0x00, 0x21, 0x4c, 0x48, 0xff, 0xf7, 0xe4, 0xfd, 0x29, 0x46, 0x4f, 0xf4, 0x7a, 0x70, 0xff, 0xf7, 0xa5, 0xfe, 0x63, 0x68, 0x06, 0x46, 0x0a, 0x2b, 0x05, 0xd1, 0x10, 0x22, 0x03, 0x46, 0x11, 0x46, 0x45, 0x48, 0xff, 0xf7, 0xd5, 0xfd, 0x63, 0x68, 0x0b, 0x2b, 0x05, 0xd1, 0x33, 0x46, 0x10, 0x22, 0x00, 0x21, 0x41, 0x48, 0xff, 0xf7, 0xcc, 0xfd, 0x10, 0x22, 0x33, 0x46, 0x11, 0x46, 0x3f, 0x48, 0xff, 0xf7, 0xc6, 0xfd, 0x29, 0x46, 0x4f, 0xf4, 0xfa, 0x70, 0xff, 0xf7, 0x87, 0xfe, 0x10, 0x22, 0x03, 0x46, 0x00, 0x21, 0x39, 0x48, 0xff, 0xf7, 0xbb, 0xfd, 0x29, 0x46, 0x69, 0x20, 0xff, 0xf7, 0x7d, 0xfe, 0x07, 0x22, 0x03, 0x46, 0x00, 0x21, 0x35, 0x48, 0xff, 0xf7, 0xb1, 0xfd, 0x23, 0x68, 0xc8, 0x2b, 0x40, 0xf2, 0x34, 0x81, 0xb3, 0xf5, 0xa7, 0x7f, 0xc0, 0xf0, 0x34, 0x81, 0xb3, 0xf5, 0xc8, 0x7f, 0x40, 0xf2, 0x34, 0x81, 0x40, 0xf2, 0x15, 0x22, 0x93, 0x42, 0x00, 0xf2, 0x0a, 0x81, 0x63, 0x68, 0x0a, 0x26, 0x0b, 0x2b, 0x0c, 0xbf, 0x04, 0x25, 0x00, 0x25, 0x14, 0x23, 0x07, 0x22, 0x18, 0x21, 0x27, 0x48, 0xff, 0xf7, 0x94, 0xfd, 0x33, 0x46, 0x07, 0x22, 0x08, 0x21, 0x24, 0x48, 0xff, 0xf7, 0x8e, 0xfd, 0x2b, 0x46, 0x03, 0x22, 0x00, 0x21, 0x14, 0x48, 0xff, 0xf7, 0x88, 0xfd, 0x40, 0xf6, 0xff, 0x73, 0x0c, 0x22, 0x00, 0x21, 0x1e, 0x48, 0xff, 0xf7, 0x81, 0xfd, 0x01, 0x23, 0x00, 0x21, 0x1a, 0x46, 0x38, 0xe0, 0x00, 0xbf, 0x0c, 0xc0, 0x03, 0x40, 0x04, 0xc0, 0x03, 0x40, 0x20, 0xa0, 0x03, 0x40, 0x44, 0xa0, 0x03, 0x40, 0x40, 0xa0, 0x03, 0x40, 0x00, 0x80, 0x03, 0x40, 0xe0, 0xc4, 0x04, 0x40, 0xa4, 0xc4, 0x04, 0x40, 0xa8, 0xc4, 0x04, 0x40, 0x50, 0xa0, 0x03, 0x40, 0x4c, 0xa0, 0x03, 0x40, 0x04, 0x80, 0x03, 0x40, 0x08, 0x80, 0x03, 0x40, 0x0c, 0x81, 0x03, 0x40, 0x18, 0x81, 0x03, 0x40, 0xcf, 0xb4, 0x95, 0xad, 0x1c, 0x81, 0x03, 0x40, 0x30, 0x81, 0x03, 0x40, 0x34, 0x81, 0x03, 0x40, 0x38, 0x81, 0x03, 0x40, 0xf0, 0x49, 0x02, 0x00, 0x3c, 0x81, 0x03, 0x40, 0x40, 0x81, 0x03, 0x40, 0x44, 0x81, 0x03, 0x40, 0x48, 0x81, 0x03, 0x40, 0x4c, 0x81, 0x03, 0x40, 0x50, 0x81, 0x03, 0x40, 0x80, 0x81, 0x03, 0x40, 0x6e, 0x48, 0xff, 0xf7, 0x41, 0xfd, 0x07, 0x23, 0x03, 0x22, 0x01, 0x21, 0x6c, 0x48, 0xff, 0xf7, 0x3b, 0xfd, 0x00, 0x23, 0x01, 0x22, 0x19, 0x46, 0x69, 0x48, 0xff, 0xf7, 0x35, 0xfd, 0x07, 0x22, 0x40, 0x23, 0x08, 0x21, 0x67, 0x48, 0xff, 0xf7, 0x2f, 0xfd, 0x63, 0x68, 0x03, 0x21, 0x0b, 0x2b, 0x15, 0xbf, 0x01, 0x23, 0x00, 0x23, 0x1a, 0x46, 0x01, 0x22, 0x62, 0x48, 0xff, 0xf7, 0x24, 0xfd, 0x63, 0x68, 0x01, 0x22, 0x0b, 0x2b, 0x0c, 0xbf, 0x01, 0x23, 0x00, 0x23, 0x02, 0x21, 0x5d, 0x48, 0xff, 0xf7, 0x1a, 0xfd, 0xe3, 0x6d, 0x02, 0x22, 0xc3, 0xf3, 0x81, 0x23, 0x01, 0x21, 0x5a, 0x48, 0xff, 0xf7, 0x12, 0xfd, 0x40, 0x23, 0x07, 0x22, 0x18, 0x21, 0x58, 0x48, 0xff, 0xf7, 0x0c, 0xfd, 0x00, 0x23, 0x04, 0x22, 0x14, 0x21, 0x55, 0x48, 0xff, 0xf7, 0x06, 0xfd, 0x0f, 0x23, 0x04, 0x22, 0x10, 0x21, 0x52, 0x48, 0xff, 0xf7, 0x00, 0xfd, 0x1c, 0x23, 0x06, 0x22, 0x08, 0x21, 0x4f, 0x48, 0xff, 0xf7, 0xfa, 0xfc, 0x12, 0x23, 0x06, 0x22, 0x00, 0x21, 0x4c, 0x48, 0xff, 0xf7, 0xf4, 0xfc, 0x01, 0x22, 0xe3, 0x6d, 0x11, 0x46, 0xc3, 0xf3, 0x40, 0x23, 0x49, 0x48, 0xff, 0xf7, 0xec, 0xfc, 0x63, 0x68, 0x0b, 0x2b, 0x07, 0xd1, 0xe3, 0x6d, 0x01, 0x22, 0xc3, 0xf3, 0x00, 0x23, 0x00, 0x21, 0x43, 0x48, 0xff, 0xf7, 0xe1, 0xfc, 0x4f, 0xf0, 0x07, 0x12, 0x42, 0x4b, 0x1a, 0x60, 0x00, 0x22, 0x5a, 0x60, 0x4f, 0xf0, 0xff, 0x32, 0x9a, 0x60, 0xf8, 0xbd, 0x01, 0x23, 0x15, 0x21, 0x1a, 0x46, 0x3d, 0x48, 0xff, 0xf7, 0xd1, 0xfc, 0x00, 0x23, 0x01, 0x22, 0x0f, 0x21, 0x3b, 0x48, 0xff, 0xf7, 0xcb, 0xfc, 0x01, 0x23, 0x1a, 0x46, 0xff, 0xe5, 0xb3, 0xf5, 0xa7, 0x7f, 0x01, 0xd2, 0x16, 0x23, 0x3e, 0xe6, 0xb3, 0xf5, 0xc8, 0x7f, 0x01, 0xd8, 0x15, 0x23, 0x39, 0xe6, 0x40, 0xf2, 0x15, 0x22, 0x93, 0x42, 0x01, 0xd8, 0x14, 0x23, 0x33, 0xe6, 0xb3, 0xf5, 0x27, 0x7f, 0x01, 0xd2, 0x10, 0x23, 0x2e, 0xe6, 0xb3, 0xf5, 0x48, 0x7f, 0x01, 0xd8, 0x11, 0x23, 0x29, 0xe6, 0x40, 0xf2, 0xa5, 0x32, 0x93, 0x42, 0x01, 0xd8, 0x12, 0x23, 0x23, 0xe6, 0x40, 0xf2, 0x2a, 0x42, 0x93, 0x42, 0x3f, 0xf6, 0x24, 0xae, 0x13, 0x23, 0x1c, 0xe6, 0x26, 0x4a, 0x26, 0x48, 0x1a, 0x60, 0x08, 0x22, 0x00, 0x23, 0x11, 0x46, 0xff, 0xf7, 0x99, 0xfc, 0x1f, 0xe6, 0x3b, 0x46, 0x94, 0xe6, 0xb3, 0xf5, 0x27, 0x7f, 0x0a, 0xd2, 0x63, 0x68, 0x0b, 0x2b, 0x15, 0xbf, 0x01, 0x25, 0x00, 0x25, 0x0e, 0x26, 0x0c, 0x26, 0x14, 0xbf, 0x1d, 0x23, 0x18, 0x23, 0xee, 0xe6, 0xb3, 0xf5, 0x48, 0x7f, 0x17, 0xd9, 0x40, 0xf2, 0xa5, 0x32, 0x93, 0x42, 0x95, 0xbf, 0x02, 0x25, 0x03, 0x25, 0x10, 0x26, 0x12, 0x26, 0x94, 0xbf, 0x21, 0x23, 0x25, 0x23, 0xdf, 0xe6, 0x07, 0x25, 0x05, 0x26, 0x09, 0x23, 0xdb, 0xe6, 0x06, 0x25, 0x05, 0x26, 0x0d, 0x23, 0xd7, 0xe6, 0x05, 0x25, 0x06, 0x26, 0x10, 0x23, 0xd3, 0xe6, 0x01, 0x25, 0x0e, 0x26, 0x1d, 0x23, 0xcf, 0xe6, 0x41, 0xf6, 0x78, 0x62, 0x01, 0xe6, 0x80, 0x81, 0x03, 0x40, 0x20, 0x81, 0x03, 0x40, 0x24, 0x81, 0x03, 0x40, 0x2c, 0x81, 0x03, 0x40, 0x54, 0x81, 0x03, 0x40, 0x58, 0x81, 0x03, 0x40, 0x5c, 0x81, 0x03, 0x40, 0xe0, 0xc4, 0x04, 0x40, 0xa4, 0xc4, 0x04, 0x40, 0xcf, 0xe4, 0x05, 0x8d, 0x0c, 0x81, 0x03, 0x40, 0x38, 0xb5, 0xc4, 0x6d, 0x05, 0x46, 0xc4, 0xf3, 0x81, 0x04, 0x01, 0x2c, 0x0f, 0xd0, 0x02, 0x2c, 0x4e, 0xd0, 0xc4, 0x23, 0x08, 0x22, 0x14, 0x21, 0x2c, 0x48, 0xff, 0xf7, 0x41, 0xfc, 0x01, 0x23, 0x2b, 0x48, 0x1a, 0x46, 0x1e, 0x21, 0xff, 0xf7, 0x3b, 0xfc, 0x2a, 0x48, 0x3c, 0xe0, 0xc4, 0x23, 0x08, 0x22, 0x14, 0x21, 0x25, 0x48, 0xff, 0xf7, 0x33, 0xfc, 0x00, 0x23, 0x04, 0x22, 0x08, 0x21, 0x25, 0x48, 0xff, 0xf7, 0x2d, 0xfc, 0x00, 0x23, 0x22, 0x46, 0x19, 0x46, 0x22, 0x48, 0xff, 0xf7, 0x27, 0xfc, 0x23, 0x46, 0x21, 0x46, 0x20, 0x48, 0xff, 0xf7, 0x22, 0xfc, 0x00, 0x23, 0x02, 0x21, 0x1d, 0x48, 0xff, 0xf7, 0x1d, 0xfc, 0xab, 0x6c, 0x03, 0x22, 0x03, 0xf0, 0x0f, 0x03, 0x1a, 0x21, 0x19, 0x48, 0xff, 0xf7, 0x15, 0xfc, 0xab, 0x6c, 0x03, 0x22, 0xc3, 0xf3, 0x03, 0x13, 0x17, 0x21, 0x15, 0x48, 0xff, 0xf7, 0x0d, 0xfc, 0xab, 0x6c, 0x03, 0x22, 0xc3, 0xf3, 0x03, 0x23, 0x14, 0x21, 0x11, 0x48, 0xff, 0xf7, 0x05, 0xfc, 0xab, 0x6c, 0x0f, 0x48, 0xc3, 0xf3, 0x07, 0x33, 0x08, 0x22, 0x0c, 0x21, 0xff, 0xf7, 0xfd, 0xfb, 0x0d, 0x48, 0xbd, 0xe8, 0x38, 0x40, 0xfd, 0xf7, 0x14, 0xb9, 0x01, 0x23, 0x19, 0x21, 0x1a, 0x46, 0x0a, 0x48, 0xff, 0xf7, 0xf2, 0xfb, 0x03, 0x48, 0x4c, 0x23, 0x08, 0x22, 0x14, 0x21, 0xff, 0xf7, 0xec, 0xfb, 0x06, 0x48, 0xed, 0xe7, 0x40, 0xa0, 0x03, 0x40, 0x34, 0xa0, 0x03, 0x40, 0x27, 0x58, 0x0b, 0x04, 0x80, 0xa0, 0x03, 0x40, 0xf6, 0x57, 0x0b, 0x04, 0x38, 0xa0, 0x03, 0x40, 0x0c, 0x58, 0x0b, 0x04, 0x82, 0x6c, 0x70, 0xb5, 0x02, 0xf0, 0x03, 0x02, 0x01, 0x2a, 0x04, 0x46, 0xc3, 0x6c, 0x11, 0xd1, 0xdb, 0xb2, 0x08, 0x22, 0x00, 0x21, 0x61, 0x48, 0xff, 0xf7, 0xce, 0xfb, 0x94, 0xf8, 0x4c, 0x30, 0x08, 0x22, 0x00, 0x21, 0x5e, 0x48, 0xff, 0xf7, 0xc7, 0xfb, 0x5e, 0x4b, 0x1b, 0x68, 0x84, 0xf8, 0x4d, 0x30, 0x10, 0xe0, 0x59, 0x49, 0x23, 0xf0, 0xff, 0x03, 0x09, 0x68, 0x02, 0x2a, 0xc9, 0xb2, 0x43, 0xea, 0x01, 0x03, 0xc3, 0x64, 0xf0, 0xd1, 0xc3, 0xf3, 0x07, 0x23, 0x08, 0x22, 0x00, 0x21, 0x54, 0x48, 0xff, 0xf7, 0xb1, 0xfb, 0x65, 0x6d, 0x06, 0x22, 0x05, 0xf0, 0x3f, 0x05, 0x2b, 0x46, 0x18, 0x21, 0x51, 0x48, 0xff, 0xf7, 0xa8, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x10, 0x21, 0x4e, 0x48, 0xff, 0xf7, 0xa2, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x08, 0x21, 0x4b, 0x48, 0xff, 0xf7, 0x9c, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x00, 0x21, 0x48, 0x48, 0xff, 0xf7, 0x96, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x18, 0x21, 0x46, 0x48, 0xff, 0xf7, 0x90, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x10, 0x21, 0x43, 0x48, 0xff, 0xf7, 0x8a, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x08, 0x21, 0x40, 0x48, 0xff, 0xf7, 0x84, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x00, 0x21, 0x3d, 0x48, 0xff, 0xf7, 0x7e, 0xfb, 0xa5, 0x6d, 0x06, 0x22, 0x05, 0xf0, 0x3f, 0x05, 0x2b, 0x46, 0x18, 0x21, 0x39, 0x48, 0xff, 0xf7, 0x75, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x10, 0x21, 0x36, 0x48, 0xff, 0xf7, 0x6f, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x08, 0x21, 0x33, 0x48, 0xff, 0xf7, 0x69, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x00, 0x21, 0x30, 0x48, 0xff, 0xf7, 0x63, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x18, 0x21, 0x2e, 0x48, 0xff, 0xf7, 0x5d, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x10, 0x21, 0x2b, 0x48, 0xff, 0xf7, 0x57, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x08, 0x21, 0x28, 0x48, 0xff, 0xf7, 0x51, 0xfb, 0x2b, 0x46, 0x06, 0x22, 0x00, 0x21, 0x25, 0x48, 0xff, 0xf7, 0x4b, 0xfb, 0xb4, 0xf8, 0x5a, 0x30, 0x06, 0x22, 0x03, 0xf0, 0x3f, 0x03, 0x18, 0x21, 0x22, 0x48, 0xff, 0xf7, 0x42, 0xfb, 0xb4, 0xf8, 0x5a, 0x30, 0x06, 0x22, 0x03, 0xf0, 0x3f, 0x03, 0x12, 0x21, 0x1d, 0x48, 0xff, 0xf7, 0x39, 0xfb, 0xb4, 0xf8, 0x56, 0x30, 0x06, 0x22, 0x03, 0xf0, 0x3f, 0x03, 0x0c, 0x21, 0x19, 0x48, 0xff, 0xf7, 0x30, 0xfb, 0x06, 0x22, 0xa3, 0x6d, 0x11, 0x46, 0x03, 0xf0, 0x3f, 0x03, 0x15, 0x48, 0xff, 0xf7, 0x28, 0xfb, 0x63, 0x6d, 0x06, 0x22, 0x03, 0xf0, 0x3f, 0x03, 0x00, 0x21, 0x11, 0x48, 0xff, 0xf7, 0x20, 0xfb, 0x23, 0x6d, 0x0c, 0x22, 0xc3, 0xf3, 0x0b, 0x03, 0x07, 0x21, 0x0e, 0x48, 0xff, 0xf7, 0x18, 0xfb, 0x23, 0x6d, 0x0c, 0x22, 0xbd, 0xe8, 0x70, 0x40, 0xc3, 0xf3, 0x0b, 0x33, 0x13, 0x21, 0x09, 0x48, 0xff, 0xf7, 0x0e, 0xbb, 0x18, 0xa0, 0x03, 0x40, 0x1c, 0xa0, 0x03, 0x40, 0x10, 0xa0, 0x03, 0x40, 0x24, 0xa0, 0x03, 0x40, 0x28, 0xa0, 0x03, 0x40, 0x2c, 0xa0, 0x03, 0x40, 0x30, 0xa0, 0x03, 0x40, 0x34, 0xa0, 0x03, 0x40, 0x58, 0xa0, 0x03, 0x40, 0x10, 0xb5, 0x04, 0x46, 0x0c, 0x4a, 0x13, 0x68, 0x03, 0xf0, 0x07, 0x03, 0x04, 0x2b, 0xfa, 0xd1, 0x20, 0x46, 0xff, 0xf7, 0x15, 0xff, 0x06, 0x23, 0x03, 0x22, 0x1d, 0x21, 0x07, 0x48, 0xff, 0xf7, 0xeb, 0xfa, 0x06, 0x48, 0x02, 0x23, 0x03, 0x22, 0x1a, 0x21, 0xff, 0xf7, 0xe5, 0xfa, 0x20, 0x46, 0xbd, 0xe8, 0x10, 0x40, 0xff, 0xf7, 0x90, 0xbe, 0x74, 0xa0, 0x03, 0x40, 0x38, 0xa0, 0x03, 0x40, 0x01, 0x23, 0x70, 0xb5, 0x2b, 0x4c, 0x2c, 0x4d, 0x21, 0x68, 0x1a, 0x46, 0x00, 0x29, 0x43, 0xd0, 0x02, 0x21, 0x2a, 0x48, 0xff, 0xf7, 0xd0, 0xfa, 0x24, 0x68, 0x01, 0x2c, 0x31, 0xd1, 0x23, 0x46, 0x22, 0x46, 0x03, 0x21, 0x25, 0x48, 0xff, 0xf7, 0xc7, 0xfa, 0x00, 0x23, 0x04, 0x21, 0x23, 0x48, 0xff, 0xf7, 0xc2, 0xfa, 0x01, 0x23, 0x00, 0x21, 0x1a, 0x46, 0x20, 0x48, 0xff, 0xf7, 0xbc, 0xfa, 0x2b, 0x68, 0xda, 0x05, 0xfc, 0xd5, 0x00, 0x23, 0x01, 0x22, 0x19, 0x46, 0x1b, 0x48, 0xff, 0xf7, 0xb3, 0xfa, 0x00, 0x23, 0x01, 0x22, 0x03, 0x21, 0x18, 0x48, 0xff, 0xf7, 0xad, 0xfa, 0x00, 0x23, 0x01, 0x22, 0x04, 0x21, 0x15, 0x48, 0xff, 0xf7, 0xa7, 0xfa, 0x2b, 0x68, 0xc3, 0xf3, 0x03, 0x13, 0x00, 0x2b, 0xfa, 0xd1, 0xbd, 0xe8, 0x70, 0x40, 0x01, 0x22, 0x03, 0x21, 0x10, 0x48, 0xff, 0xf7, 0x9b, 0xba, 0x02, 0x2c, 0xd6, 0xd1, 0x00, 0x23, 0x01, 0x22, 0x03, 0x21, 0x0b, 0x48, 0xff, 0xf7, 0x93, 0xfa, 0x01, 0x23, 0x1a, 0x46, 0xc9, 0xe7, 0x08, 0x48, 0xff, 0xf7, 0x8d, 0xfa, 0x2b, 0x68, 0xdb, 0x05, 0xfc, 0xd5, 0x00, 0x23, 0x01, 0x22, 0x19, 0x46, 0x04, 0x48, 0xff, 0xf7, 0x84, 0xfa, 0x00, 0x23, 0xdf, 0xe7, 0xa4, 0x5a, 0x0b, 0x04, 0x28, 0x81, 0x03, 0x40, 0x00, 0x81, 0x03, 0x40, 0x2c, 0x81, 0x03, 0x40, 0x38, 0xb5, 0x01, 0x22, 0x04, 0x46, 0x00, 0x23, 0x15, 0x21, 0x45, 0x48, 0xff, 0xf7, 0x72, 0xfa, 0x00, 0x23, 0x01, 0x22, 0x1f, 0x21, 0x43, 0x48, 0xff, 0xf7, 0x6c, 0xfa, 0x00, 0x23, 0x01, 0x22, 0x15, 0x21, 0x41, 0x48, 0xff, 0xf7, 0x66, 0xfa, 0x00, 0x23, 0x01, 0x22, 0x02, 0x21, 0x3f, 0x48, 0xff, 0xf7, 0x60, 0xfa, 0x3e, 0x4d, 0x3f, 0x4b, 0x00, 0x21, 0x2b, 0x60, 0x01, 0x23, 0x3e, 0x48, 0x1a, 0x46, 0xff, 0xf7, 0x57, 0xfa, 0x01, 0x23, 0x10, 0x21, 0x1a, 0x46, 0x3a, 0x48, 0xff, 0xf7, 0x51, 0xfa, 0x01, 0x23, 0x1f, 0x21, 0x1a, 0x46, 0x38, 0x48, 0xff, 0xf7, 0x4b, 0xfa, 0x01, 0x23, 0x1f, 0x21, 0x1a, 0x46, 0x36, 0x48, 0xff, 0xf7, 0x45, 0xfa, 0x01, 0x23, 0x1f, 0x21, 0x1a, 0x46, 0x28, 0x46, 0xff, 0xf7, 0x3f, 0xfa, 0x02, 0x23, 0x0c, 0x21, 0x1a, 0x46, 0x31, 0x48, 0xff, 0xf7, 0x39, 0xfa, 0x03, 0x23, 0x02, 0x22, 0x0c, 0x21, 0x2f, 0x48, 0xff, 0xf7, 0x33, 0xfa, 0x01, 0x23, 0x15, 0x21, 0x1a, 0x46, 0x22, 0x48, 0xff, 0xf7, 0x2d, 0xfa, 0x01, 0x23, 0x1f, 0x21, 0x1a, 0x46, 0x20, 0x48, 0xff, 0xf7, 0x27, 0xfa, 0x01, 0x23, 0x15, 0x21, 0x1a, 0x46, 0x1e, 0x48, 0xff, 0xf7, 0x21, 0xfa, 0x20, 0x46, 0xff, 0xf7, 0xf0, 0xfa, 0x20, 0x46, 0xff, 0xf7, 0x1f, 0xff, 0x20, 0x46, 0xff, 0xf7, 0x3c, 0xff, 0x01, 0x23, 0x1f, 0x21, 0x1a, 0x46, 0x20, 0x48, 0xff, 0xf7, 0x12, 0xfa, 0x1f, 0x49, 0x20, 0x48, 0xfc, 0xf7, 0x2a, 0xff, 0x21, 0x68, 0x1f, 0x48, 0xfc, 0xf7, 0x26, 0xff, 0xd4, 0xe9, 0x15, 0x12, 0x1d, 0x48, 0xfc, 0xf7, 0x21, 0xff, 0xe1, 0x6c, 0x1c, 0x48, 0xfc, 0xf7, 0x1d, 0xff, 0xe3, 0x6d, 0xdb, 0x00, 0x08, 0xd4, 0x63, 0x68, 0x0b, 0x2b, 0x0e, 0xd1, 0x08, 0x21, 0x18, 0x48, 0xfc, 0xf7, 0x13, 0xff, 0x20, 0x20, 0x38, 0xbd, 0x4f, 0xf4, 0x80, 0x31, 0x08, 0x20, 0xff, 0xf7, 0x6c, 0xfa, 0x00, 0x28, 0xef, 0xd0, 0x00, 0x20, 0xf5, 0xe7, 0x20, 0x21, 0xef, 0xe7, 0x04, 0xc0, 0x03, 0x40, 0x6c, 0xc0, 0x03, 0x40, 0x0c, 0xc0, 0x03, 0x40, 0x80, 0x15, 0x05, 0x40, 0x94, 0xc4, 0x04, 0x40, 0x81, 0x02, 0x00, 0xe0, 0xac, 0xc4, 0x04, 0x40, 0x8c, 0xc4, 0x04, 0x40, 0x90, 0xc4, 0x04, 0x40, 0xa4, 0xc4, 0x04, 0x40, 0xa8, 0xc4, 0x04, 0x40, 0x14, 0x20, 0x10, 0x40, 0x79, 0x57, 0x0b, 0x04, 0x7f, 0x57, 0x0b, 0x04, 0x99, 0x57, 0x0b, 0x04, 0xac, 0x57, 0x0b, 0x04, 0xd2, 0x57, 0x0b, 0x04, 0xe4, 0x57, 0x0b, 0x04, 0x38, 0xb5, 0x00, 0x23, 0x08, 0x4c, 0x05, 0x46, 0x19, 0x46, 0x20, 0x46, 0x01, 0x22, 0xff, 0xf7, 0xbd, 0xf9, 0x01, 0x22, 0x00, 0x23, 0x11, 0x46, 0xff, 0xf7, 0xb8, 0xf9, 0x28, 0x46, 0xbd, 0xe8, 0x38, 0x40, 0xff, 0xf7, 0x39, 0xbf, 0x00, 0xbf, 0x80, 0x15, 0x05, 0x40, 0x00, 0xb5, 0x03, 0x68, 0x99, 0xb0, 0x00, 0x93, 0x43, 0x68, 0x1c, 0x4a, 0x01, 0x93, 0x83, 0x68, 0x02, 0x93, 0xc3, 0x68, 0x03, 0x93, 0x03, 0x69, 0x04, 0x93, 0x43, 0x69, 0x05, 0x93, 0x83, 0x69, 0x06, 0x93, 0xc3, 0x69, 0x07, 0x93, 0x03, 0x6a, 0x08, 0x93, 0x43, 0x6a, 0x09, 0x93, 0x83, 0x6a, 0x0a, 0x93, 0xc3, 0x6a, 0x0b, 0x93, 0x03, 0x6b, 0x0c, 0x93, 0x43, 0x6b, 0x0d, 0x93, 0x83, 0x6b, 0x0e, 0x93, 0xc3, 0x6b, 0x0f, 0x93, 0x03, 0x6c, 0x10, 0x93, 0x43, 0x6c, 0x11, 0x93, 0x83, 0x6c, 0x12, 0x93, 0xc3, 0x6c, 0x13, 0x93, 0x03, 0x6d, 0x14, 0x93, 0x43, 0x6d, 0x15, 0x93, 0x83, 0x6d, 0x16, 0x93, 0xc3, 0x6d, 0x68, 0x46, 0x17, 0x93, 0x05, 0x4b, 0x1a, 0x60, 0xff, 0xf7, 0xfe, 0xfe, 0xb0, 0xfa, 0x80, 0xf0, 0x40, 0x09, 0x19, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x51, 0x33, 0x08, 0x00, 0x40, 0x00, 0x05, 0x40, 0x70, 0xb5, 0x31, 0x4c, 0xfc, 0xf7, 0xbe, 0xfa, 0x02, 0x22, 0x04, 0xf1, 0xbc, 0x01, 0xd4, 0xf8, 0xb8, 0x00, 0xfd, 0xf7, 0xed, 0xf9, 0x04, 0xf5, 0x3e, 0x71, 0x2c, 0x48, 0xfc, 0xf7, 0x7a, 0xfe, 0xfc, 0xf7, 0x28, 0xfb, 0x05, 0x46, 0x00, 0x28, 0x4b, 0xd1, 0x01, 0x46, 0x88, 0x22, 0x04, 0xf5, 0x50, 0x70, 0xfc, 0xf7, 0xcb, 0xff, 0x01, 0x23, 0x25, 0x4a, 0x26, 0x48, 0xc4, 0xe9, 0xd0, 0x23, 0xfc, 0xf7, 0x68, 0xfe, 0x4f, 0xf4, 0x60, 0x42, 0x23, 0x49, 0x24, 0x48, 0xfc, 0xf7, 0x62, 0xfe, 0x4f, 0xf4, 0x60, 0x41, 0x20, 0x48, 0xfc, 0xf7, 0x23, 0xff, 0xd4, 0xf8, 0x98, 0x30, 0x43, 0xbb, 0x1f, 0x48, 0xfc, 0xf7, 0x57, 0xfe, 0xd4, 0xf8, 0x9c, 0x00, 0xff, 0xf7, 0xcd, 0xf8, 0xa3, 0x6b, 0x1b, 0xb3, 0x1c, 0x48, 0xfc, 0xf7, 0x4e, 0xfe, 0x1b, 0x48, 0xff, 0xf7, 0x7f, 0xff, 0x01, 0x28, 0x0c, 0xd1, 0x1a, 0x4c, 0x18, 0x4e, 0x29, 0x46, 0x20, 0x46, 0xfc, 0xf7, 0x43, 0xfe, 0x30, 0x46, 0xff, 0xf7, 0x74, 0xff, 0x10, 0xb1, 0x01, 0x35, 0x05, 0x2d, 0xf4, 0xd1, 0x0a, 0x20, 0xfc, 0xf7, 0xf7, 0xf9, 0x13, 0x48, 0xfc, 0xf7, 0x36, 0xfe, 0xfc, 0xf7, 0xb2, 0xfa, 0x4f, 0xf4, 0x00, 0x00, 0x70, 0xbd, 0x10, 0x48, 0xfc, 0xf7, 0x2e, 0xfe, 0xd9, 0xe7, 0x0f, 0x48, 0xfc, 0xf7, 0x2a, 0xfe, 0xec, 0xe7, 0x00, 0x20, 0xf4, 0xe7, 0x00, 0xbf, 0x00, 0x00, 0x0b, 0x04, 0x42, 0x58, 0x0b, 0x04, 0x44, 0x52, 0x41, 0x4d, 0x57, 0x58, 0x0b, 0x04, 0x00, 0x00, 0x0a, 0x04, 0x65, 0x58, 0x0b, 0x04, 0x7b, 0x58, 0x0b, 0x04, 0x9b, 0x58, 0x0b, 0x04, 0x38, 0x00, 0x0b, 0x04, 0xa8, 0x58, 0x0b, 0x04, 0xdf, 0x58, 0x0b, 0x04, 0x88, 0x58, 0x0b, 0x04, 0xcc, 0x58, 0x0b, 0x04, 0x53, 0xb9, 0x4a, 0xb9, 0x00, 0x29, 0x08, 0xbf, 0x00, 0x28, 0x1c, 0xbf, 0x4f, 0xf0, 0xff, 0x31, 0x4f, 0xf0, 0xff, 0x30, 0x00, 0xf0, 0x70, 0xb9, 0xad, 0xf1, 0x08, 0x0c, 0x6d, 0xe9, 0x04, 0xce, 0x00, 0xf0, 0x06, 0xf8, 0xdd, 0xf8, 0x04, 0xe0, 0xdd, 0xe9, 0x02, 0x23, 0x04, 0xb0, 0x70, 0x47, 0x2d, 0xe9, 0xf0, 0x4f, 0x09, 0x9e, 0x04, 0x46, 0x89, 0x46, 0x00, 0x2b, 0x40, 0xf0, 0x83, 0x80, 0x8a, 0x42, 0x15, 0x46, 0x45, 0xd9, 0xb2, 0xfa, 0x82, 0xf2, 0x4a, 0xb1, 0xc2, 0xf1, 0x20, 0x07, 0x01, 0xfa, 0x02, 0xf3, 0x95, 0x40, 0x94, 0x40, 0x20, 0xfa, 0x07, 0xf7, 0x47, 0xea, 0x03, 0x09, 0x4f, 0xea, 0x15, 0x4e, 0x23, 0x0c, 0x1f, 0xfa, 0x85, 0xf8, 0xb9, 0xfb, 0xfe, 0xfc, 0x0e, 0xfb, 0x1c, 0x99, 0x0c, 0xfb, 0x08, 0xf1, 0x43, 0xea, 0x09, 0x43, 0x99, 0x42, 0x0a, 0xd9, 0xeb, 0x18, 0x2c, 0xbf, 0x01, 0x20, 0x00, 0x20, 0x99, 0x42, 0x02, 0xd9, 0x00, 0x28, 0x00, 0xf0, 0x1d, 0x81, 0x0c, 0xf1, 0xff, 0x3c, 0x59, 0x1a, 0xa3, 0xb2, 0xb1, 0xfb, 0xfe, 0xf0, 0x0e, 0xfb, 0x10, 0x11, 0x00, 0xfb, 0x08, 0xf8, 0x43, 0xea, 0x01, 0x44, 0xa0, 0x45, 0x05, 0xd9, 0x2c, 0x19, 0x02, 0xd2, 0xa0, 0x45, 0x00, 0xf2, 0x0e, 0x81, 0x01, 0x38, 0xa4, 0xeb, 0x08, 0x04, 0x40, 0xea, 0x0c, 0x40, 0x00, 0x27, 0x1e, 0xb1, 0xd4, 0x40, 0x00, 0x23, 0xc6, 0xe9, 0x00, 0x43, 0x39, 0x46, 0xbd, 0xe8, 0xf0, 0x8f, 0x00, 0x2a, 0x51, 0xd0, 0xb2, 0xfa, 0x82, 0xf2, 0x00, 0x2a, 0x40, 0xf0, 0xaf, 0x80, 0x49, 0x1b, 0x4f, 0xea, 0x15, 0x4e, 0x1f, 0xfa, 0x85, 0xf8, 0x01, 0x27, 0x23, 0x0c, 0xb1, 0xfb, 0xfe, 0xfc, 0x0e, 0xfb, 0x1c, 0x11, 0x08, 0xfb, 0x0c, 0xf0, 0x43, 0xea, 0x01, 0x43, 0x98, 0x42, 0x0a, 0xd9, 0xeb, 0x18, 0x2c, 0xbf, 0x01, 0x21, 0x00, 0x21, 0x98, 0x42, 0x02, 0xd9, 0x00, 0x29, 0x00, 0xf0, 0xd7, 0x80, 0x0c, 0xf1, 0xff, 0x3c, 0x19, 0x1a, 0xa3, 0xb2, 0xb1, 0xfb, 0xfe, 0xf0, 0x0e, 0xfb, 0x10, 0x11, 0x08, 0xfb, 0x00, 0xf8, 0x43, 0xea, 0x01, 0x44, 0xa0, 0x45, 0x05, 0xd9, 0x2c, 0x19, 0x02, 0xd2, 0xa0, 0x45, 0x00, 0xf2, 0xc1, 0x80, 0x01, 0x38, 0xa4, 0xeb, 0x08, 0x04, 0x40, 0xea, 0x0c, 0x40, 0xbd, 0xe7, 0x8b, 0x42, 0x08, 0xd9, 0x00, 0x2e, 0x74, 0xd0, 0x00, 0x27, 0xc6, 0xe9, 0x00, 0x01, 0x38, 0x46, 0x39, 0x46, 0xbd, 0xe8, 0xf0, 0x8f, 0xb3, 0xfa, 0x83, 0xf7, 0x67, 0xb9, 0x8b, 0x42, 0xc0, 0xf0, 0xa4, 0x80, 0x82, 0x42, 0x40, 0xf2, 0xa1, 0x80, 0x38, 0x46, 0x00, 0x2e, 0xab, 0xd0, 0xc6, 0xe9, 0x00, 0x49, 0xa8, 0xe7, 0xff, 0xde, 0xc7, 0xf1, 0x20, 0x05, 0xbb, 0x40, 0x02, 0xfa, 0x07, 0xfc, 0x01, 0xfa, 0x07, 0xf4, 0xea, 0x40, 0x20, 0xfa, 0x05, 0xf8, 0xe9, 0x40, 0x00, 0xfa, 0x07, 0xfe, 0x1a, 0x43, 0x48, 0xea, 0x04, 0x04, 0x4f, 0xea, 0x12, 0x48, 0x20, 0x0c, 0x1f, 0xfa, 0x82, 0xf9, 0xb1, 0xfb, 0xf8, 0xfa, 0x08, 0xfb, 0x1a, 0x11, 0x0a, 0xfb, 0x09, 0xfb, 0x40, 0xea, 0x01, 0x41, 0x8b, 0x45, 0x0a, 0xd9, 0x51, 0x18, 0x2c, 0xbf, 0x01, 0x23, 0x00, 0x23, 0x8b, 0x45, 0x02, 0xd9, 0x00, 0x2b, 0x00, 0xf0, 0x88, 0x80, 0x0a, 0xf1, 0xff, 0x3a, 0xa1, 0xeb, 0x0b, 0x01, 0xa4, 0xb2, 0xb1, 0xfb, 0xf8, 0xf0, 0x08, 0xfb, 0x10, 0x11, 0x00, 0xfb, 0x09, 0xf9, 0x44, 0xea, 0x01, 0x41, 0x89, 0x45, 0x04, 0xd9, 0x51, 0x18, 0x01, 0xd2, 0x89, 0x45, 0x7b, 0xd8, 0x01, 0x38, 0x40, 0xea, 0x0a, 0x40, 0xa1, 0xeb, 0x09, 0x01, 0xa0, 0xfb, 0x0c, 0x89, 0x49, 0x45, 0x44, 0x46, 0x4b, 0x46, 0x02, 0xd3, 0x06, 0xd1, 0xc6, 0x45, 0x04, 0xd2, 0x01, 0x38, 0xb8, 0xeb, 0x0c, 0x04, 0x69, 0xeb, 0x02, 0x03, 0x00, 0x2e, 0x5d, 0xd0, 0xbe, 0xeb, 0x04, 0x02, 0x61, 0xeb, 0x03, 0x01, 0x01, 0xfa, 0x05, 0xf5, 0x22, 0xfa, 0x07, 0xf3, 0xf9, 0x40, 0x00, 0x27, 0x1d, 0x43, 0xc6, 0xe9, 0x00, 0x51, 0x49, 0xe7, 0x37, 0x46, 0x30, 0x46, 0x46, 0xe7, 0xc2, 0xf1, 0x20, 0x00, 0x95, 0x40, 0x01, 0xfa, 0x02, 0xf7, 0x21, 0xfa, 0x00, 0xf3, 0x4f, 0xea, 0x15, 0x4e, 0x24, 0xfa, 0x00, 0xf1, 0x1f, 0xfa, 0x85, 0xf8, 0x94, 0x40, 0x39, 0x43, 0xb3, 0xfb, 0xfe, 0xf0, 0x0f, 0x0c, 0x0e, 0xfb, 0x10, 0x33, 0x00, 0xfb, 0x08, 0xfc, 0x47, 0xea, 0x03, 0x43, 0x9c, 0x45, 0x07, 0xd9, 0xeb, 0x18, 0x2c, 0xbf, 0x01, 0x27, 0x00, 0x27, 0x9c, 0x45, 0x00, 0xd9, 0x8f, 0xb3, 0x01, 0x38, 0xa3, 0xeb, 0x0c, 0x03, 0x89, 0xb2, 0xb3, 0xfb, 0xfe, 0xf7, 0x0e, 0xfb, 0x17, 0x33, 0x07, 0xfb, 0x08, 0xfc, 0x41, 0xea, 0x03, 0x41, 0x8c, 0x45, 0x04, 0xd9, 0x69, 0x18, 0x01, 0xd2, 0x8c, 0x45, 0x25, 0xd8, 0x01, 0x3f, 0xa1, 0xeb, 0x0c, 0x01, 0x47, 0xea, 0x00, 0x47, 0x1d, 0xe7, 0x84, 0x1a, 0x61, 0xeb, 0x03, 0x03, 0x01, 0x20, 0x99, 0x46, 0x59, 0xe7, 0x02, 0x38, 0x2c, 0x44, 0x3c, 0xe7, 0xac, 0xf1, 0x02, 0x0c, 0x2b, 0x44, 0x26, 0xe7, 0xac, 0xf1, 0x02, 0x0c, 0x2b, 0x44, 0xe0, 0xe6, 0x02, 0x38, 0x2c, 0x44, 0xef, 0xe6, 0x37, 0x46, 0xf7, 0xe6, 0xaa, 0xf1, 0x02, 0x0a, 0x11, 0x44, 0x75, 0xe7, 0x02, 0x38, 0x2b, 0x44, 0xcb, 0xe7, 0x02, 0x38, 0x11, 0x44, 0x81, 0xe7, 0x02, 0x3f, 0x29, 0x44, 0xd7, 0xe7, 0x00, 0xbf, 0x70, 0x47, 0x00, 0xbf, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc9, 0x03, 0x0b, 0x04, 0xdd, 0x03, 0x0b, 0x04, 0xdd, 0x03, 0x0b, 0x04, 0xdd, 0x03, 0x0b, 0x04, 0xdd, 0x03, 0x0b, 0x04, 0xdd, 0x03, 0x0b, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdd, 0x03, 0x0b, 0x04, 0xdd, 0x03, 0x0b, 0x04, 0x00, 0x00, 0x00, 0x00, 0xdd, 0x03, 0x0b, 0x04, 0x29, 0x06, 0x0b, 0x04, 0x50, 0x97, 0x31, 0x00, 0x00, 0x09, 0x3d, 0x00, 0x00, 0x09, 0x3d, 0x00, 0x00, 0x09, 0x3d, 0x00, 0x00, 0xe0, 0x2e, 0x00, 0x08, 0x0a, 0x06, 0x08, 0x08, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x6f, 0x6b, 0x0a, 0x00, 0x67, 0x6f, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x62, 0x20, 0x65, 0x66, 0x65, 0x78, 0x21, 0x0a, 0x00, 0x73, 0x65, 0x74, 0x20, 0x70, 0x6c, 0x6c, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x28, 0x28, 0x28, 0x28, 0x28, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0xa0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x10, 0x10, 0x10, 0x10, 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, 0x00, 0xa0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x10, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x5b, 0x25, 0x64, 0x5d, 0x00, 0x25, 0x73, 0x00, 0x6b, 0x65, 0x79, 0x20, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x3a, 0x20, 0x25, 0x63, 0x0a, 0x00, 0x73, 0x72, 0x63, 0x5f, 0x73, 0x75, 0x6d, 0x3d, 0x25, 0x78, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x30, 0x07, 0x77, 0x2c, 0x61, 0x0e, 0xee, 0xba, 0x51, 0x09, 0x99, 0x19, 0xc4, 0x6d, 0x07, 0x8f, 0xf4, 0x6a, 0x70, 0x35, 0xa5, 0x63, 0xe9, 0xa3, 0x95, 0x64, 0x9e, 0x32, 0x88, 0xdb, 0x0e, 0xa4, 0xb8, 0xdc, 0x79, 0x1e, 0xe9, 0xd5, 0xe0, 0x88, 0xd9, 0xd2, 0x97, 0x2b, 0x4c, 0xb6, 0x09, 0xbd, 0x7c, 0xb1, 0x7e, 0x07, 0x2d, 0xb8, 0xe7, 0x91, 0x1d, 0xbf, 0x90, 0x64, 0x10, 0xb7, 0x1d, 0xf2, 0x20, 0xb0, 0x6a, 0x48, 0x71, 0xb9, 0xf3, 0xde, 0x41, 0xbe, 0x84, 0x7d, 0xd4, 0xda, 0x1a, 0xeb, 0xe4, 0xdd, 0x6d, 0x51, 0xb5, 0xd4, 0xf4, 0xc7, 0x85, 0xd3, 0x83, 0x56, 0x98, 0x6c, 0x13, 0xc0, 0xa8, 0x6b, 0x64, 0x7a, 0xf9, 0x62, 0xfd, 0xec, 0xc9, 0x65, 0x8a, 0x4f, 0x5c, 0x01, 0x14, 0xd9, 0x6c, 0x06, 0x63, 0x63, 0x3d, 0x0f, 0xfa, 0xf5, 0x0d, 0x08, 0x8d, 0xc8, 0x20, 0x6e, 0x3b, 0x5e, 0x10, 0x69, 0x4c, 0xe4, 0x41, 0x60, 0xd5, 0x72, 0x71, 0x67, 0xa2, 0xd1, 0xe4, 0x03, 0x3c, 0x47, 0xd4, 0x04, 0x4b, 0xfd, 0x85, 0x0d, 0xd2, 0x6b, 0xb5, 0x0a, 0xa5, 0xfa, 0xa8, 0xb5, 0x35, 0x6c, 0x98, 0xb2, 0x42, 0xd6, 0xc9, 0xbb, 0xdb, 0x40, 0xf9, 0xbc, 0xac, 0xe3, 0x6c, 0xd8, 0x32, 0x75, 0x5c, 0xdf, 0x45, 0xcf, 0x0d, 0xd6, 0xdc, 0x59, 0x3d, 0xd1, 0xab, 0xac, 0x30, 0xd9, 0x26, 0x3a, 0x00, 0xde, 0x51, 0x80, 0x51, 0xd7, 0xc8, 0x16, 0x61, 0xd0, 0xbf, 0xb5, 0xf4, 0xb4, 0x21, 0x23, 0xc4, 0xb3, 0x56, 0x99, 0x95, 0xba, 0xcf, 0x0f, 0xa5, 0xbd, 0xb8, 0x9e, 0xb8, 0x02, 0x28, 0x08, 0x88, 0x05, 0x5f, 0xb2, 0xd9, 0x0c, 0xc6, 0x24, 0xe9, 0x0b, 0xb1, 0x87, 0x7c, 0x6f, 0x2f, 0x11, 0x4c, 0x68, 0x58, 0xab, 0x1d, 0x61, 0xc1, 0x3d, 0x2d, 0x66, 0xb6, 0x90, 0x41, 0xdc, 0x76, 0x06, 0x71, 0xdb, 0x01, 0xbc, 0x20, 0xd2, 0x98, 0x2a, 0x10, 0xd5, 0xef, 0x89, 0x85, 0xb1, 0x71, 0x1f, 0xb5, 0xb6, 0x06, 0xa5, 0xe4, 0xbf, 0x9f, 0x33, 0xd4, 0xb8, 0xe8, 0xa2, 0xc9, 0x07, 0x78, 0x34, 0xf9, 0x00, 0x0f, 0x8e, 0xa8, 0x09, 0x96, 0x18, 0x98, 0x0e, 0xe1, 0xbb, 0x0d, 0x6a, 0x7f, 0x2d, 0x3d, 0x6d, 0x08, 0x97, 0x6c, 0x64, 0x91, 0x01, 0x5c, 0x63, 0xe6, 0xf4, 0x51, 0x6b, 0x6b, 0x62, 0x61, 0x6c, 0x1c, 0xd8, 0x30, 0x65, 0x85, 0x4e, 0x00, 0x62, 0xf2, 0xed, 0x95, 0x06, 0x6c, 0x7b, 0xa5, 0x01, 0x1b, 0xc1, 0xf4, 0x08, 0x82, 0x57, 0xc4, 0x0f, 0xf5, 0xc6, 0xd9, 0xb0, 0x65, 0x50, 0xe9, 0xb7, 0x12, 0xea, 0xb8, 0xbe, 0x8b, 0x7c, 0x88, 0xb9, 0xfc, 0xdf, 0x1d, 0xdd, 0x62, 0x49, 0x2d, 0xda, 0x15, 0xf3, 0x7c, 0xd3, 0x8c, 0x65, 0x4c, 0xd4, 0xfb, 0x58, 0x61, 0xb2, 0x4d, 0xce, 0x51, 0xb5, 0x3a, 0x74, 0x00, 0xbc, 0xa3, 0xe2, 0x30, 0xbb, 0xd4, 0x41, 0xa5, 0xdf, 0x4a, 0xd7, 0x95, 0xd8, 0x3d, 0x6d, 0xc4, 0xd1, 0xa4, 0xfb, 0xf4, 0xd6, 0xd3, 0x6a, 0xe9, 0x69, 0x43, 0xfc, 0xd9, 0x6e, 0x34, 0x46, 0x88, 0x67, 0xad, 0xd0, 0xb8, 0x60, 0xda, 0x73, 0x2d, 0x04, 0x44, 0xe5, 0x1d, 0x03, 0x33, 0x5f, 0x4c, 0x0a, 0xaa, 0xc9, 0x7c, 0x0d, 0xdd, 0x3c, 0x71, 0x05, 0x50, 0xaa, 0x41, 0x02, 0x27, 0x10, 0x10, 0x0b, 0xbe, 0x86, 0x20, 0x0c, 0xc9, 0x25, 0xb5, 0x68, 0x57, 0xb3, 0x85, 0x6f, 0x20, 0x09, 0xd4, 0x66, 0xb9, 0x9f, 0xe4, 0x61, 0xce, 0x0e, 0xf9, 0xde, 0x5e, 0x98, 0xc9, 0xd9, 0x29, 0x22, 0x98, 0xd0, 0xb0, 0xb4, 0xa8, 0xd7, 0xc7, 0x17, 0x3d, 0xb3, 0x59, 0x81, 0x0d, 0xb4, 0x2e, 0x3b, 0x5c, 0xbd, 0xb7, 0xad, 0x6c, 0xba, 0xc0, 0x20, 0x83, 0xb8, 0xed, 0xb6, 0xb3, 0xbf, 0x9a, 0x0c, 0xe2, 0xb6, 0x03, 0x9a, 0xd2, 0xb1, 0x74, 0x39, 0x47, 0xd5, 0xea, 0xaf, 0x77, 0xd2, 0x9d, 0x15, 0x26, 0xdb, 0x04, 0x83, 0x16, 0xdc, 0x73, 0x12, 0x0b, 0x63, 0xe3, 0x84, 0x3b, 0x64, 0x94, 0x3e, 0x6a, 0x6d, 0x0d, 0xa8, 0x5a, 0x6a, 0x7a, 0x0b, 0xcf, 0x0e, 0xe4, 0x9d, 0xff, 0x09, 0x93, 0x27, 0xae, 0x00, 0x0a, 0xb1, 0x9e, 0x07, 0x7d, 0x44, 0x93, 0x0f, 0xf0, 0xd2, 0xa3, 0x08, 0x87, 0x68, 0xf2, 0x01, 0x1e, 0xfe, 0xc2, 0x06, 0x69, 0x5d, 0x57, 0x62, 0xf7, 0xcb, 0x67, 0x65, 0x80, 0x71, 0x36, 0x6c, 0x19, 0xe7, 0x06, 0x6b, 0x6e, 0x76, 0x1b, 0xd4, 0xfe, 0xe0, 0x2b, 0xd3, 0x89, 0x5a, 0x7a, 0xda, 0x10, 0xcc, 0x4a, 0xdd, 0x67, 0x6f, 0xdf, 0xb9, 0xf9, 0xf9, 0xef, 0xbe, 0x8e, 0x43, 0xbe, 0xb7, 0x17, 0xd5, 0x8e, 0xb0, 0x60, 0xe8, 0xa3, 0xd6, 0xd6, 0x7e, 0x93, 0xd1, 0xa1, 0xc4, 0xc2, 0xd8, 0x38, 0x52, 0xf2, 0xdf, 0x4f, 0xf1, 0x67, 0xbb, 0xd1, 0x67, 0x57, 0xbc, 0xa6, 0xdd, 0x06, 0xb5, 0x3f, 0x4b, 0x36, 0xb2, 0x48, 0xda, 0x2b, 0x0d, 0xd8, 0x4c, 0x1b, 0x0a, 0xaf, 0xf6, 0x4a, 0x03, 0x36, 0x60, 0x7a, 0x04, 0x41, 0xc3, 0xef, 0x60, 0xdf, 0x55, 0xdf, 0x67, 0xa8, 0xef, 0x8e, 0x6e, 0x31, 0x79, 0xbe, 0x69, 0x46, 0x8c, 0xb3, 0x61, 0xcb, 0x1a, 0x83, 0x66, 0xbc, 0xa0, 0xd2, 0x6f, 0x25, 0x36, 0xe2, 0x68, 0x52, 0x95, 0x77, 0x0c, 0xcc, 0x03, 0x47, 0x0b, 0xbb, 0xb9, 0x16, 0x02, 0x22, 0x2f, 0x26, 0x05, 0x55, 0xbe, 0x3b, 0xba, 0xc5, 0x28, 0x0b, 0xbd, 0xb2, 0x92, 0x5a, 0xb4, 0x2b, 0x04, 0x6a, 0xb3, 0x5c, 0xa7, 0xff, 0xd7, 0xc2, 0x31, 0xcf, 0xd0, 0xb5, 0x8b, 0x9e, 0xd9, 0x2c, 0x1d, 0xae, 0xde, 0x5b, 0xb0, 0xc2, 0x64, 0x9b, 0x26, 0xf2, 0x63, 0xec, 0x9c, 0xa3, 0x6a, 0x75, 0x0a, 0x93, 0x6d, 0x02, 0xa9, 0x06, 0x09, 0x9c, 0x3f, 0x36, 0x0e, 0xeb, 0x85, 0x67, 0x07, 0x72, 0x13, 0x57, 0x00, 0x05, 0x82, 0x4a, 0xbf, 0x95, 0x14, 0x7a, 0xb8, 0xe2, 0xae, 0x2b, 0xb1, 0x7b, 0x38, 0x1b, 0xb6, 0x0c, 0x9b, 0x8e, 0xd2, 0x92, 0x0d, 0xbe, 0xd5, 0xe5, 0xb7, 0xef, 0xdc, 0x7c, 0x21, 0xdf, 0xdb, 0x0b, 0xd4, 0xd2, 0xd3, 0x86, 0x42, 0xe2, 0xd4, 0xf1, 0xf8, 0xb3, 0xdd, 0x68, 0x6e, 0x83, 0xda, 0x1f, 0xcd, 0x16, 0xbe, 0x81, 0x5b, 0x26, 0xb9, 0xf6, 0xe1, 0x77, 0xb0, 0x6f, 0x77, 0x47, 0xb7, 0x18, 0xe6, 0x5a, 0x08, 0x88, 0x70, 0x6a, 0x0f, 0xff, 0xca, 0x3b, 0x06, 0x66, 0x5c, 0x0b, 0x01, 0x11, 0xff, 0x9e, 0x65, 0x8f, 0x69, 0xae, 0x62, 0xf8, 0xd3, 0xff, 0x6b, 0x61, 0x45, 0xcf, 0x6c, 0x16, 0x78, 0xe2, 0x0a, 0xa0, 0xee, 0xd2, 0x0d, 0xd7, 0x54, 0x83, 0x04, 0x4e, 0xc2, 0xb3, 0x03, 0x39, 0x61, 0x26, 0x67, 0xa7, 0xf7, 0x16, 0x60, 0xd0, 0x4d, 0x47, 0x69, 0x49, 0xdb, 0x77, 0x6e, 0x3e, 0x4a, 0x6a, 0xd1, 0xae, 0xdc, 0x5a, 0xd6, 0xd9, 0x66, 0x0b, 0xdf, 0x40, 0xf0, 0x3b, 0xd8, 0x37, 0x53, 0xae, 0xbc, 0xa9, 0xc5, 0x9e, 0xbb, 0xde, 0x7f, 0xcf, 0xb2, 0x47, 0xe9, 0xff, 0xb5, 0x30, 0x1c, 0xf2, 0xbd, 0xbd, 0x8a, 0xc2, 0xba, 0xca, 0x30, 0x93, 0xb3, 0x53, 0xa6, 0xa3, 0xb4, 0x24, 0x05, 0x36, 0xd0, 0xba, 0x93, 0x06, 0xd7, 0xcd, 0x29, 0x57, 0xde, 0x54, 0xbf, 0x67, 0xd9, 0x23, 0x2e, 0x7a, 0x66, 0xb3, 0xb8, 0x4a, 0x61, 0xc4, 0x02, 0x1b, 0x68, 0x5d, 0x94, 0x2b, 0x6f, 0x2a, 0x37, 0xbe, 0x0b, 0xb4, 0xa1, 0x8e, 0x0c, 0xc3, 0x1b, 0xdf, 0x05, 0x5a, 0x8d, 0xef, 0x02, 0x2d, 0x25, 0x73, 0x3a, 0x25, 0x75, 0x3a, 0x20, 0x25, 0x73, 0x3a, 0x20, 0x41, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x60, 0x25, 0x73, 0x27, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x2e, 0x00, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x00, 0x69, 0x6e, 0x62, 0x75, 0x66, 0x3a, 0x25, 0x78, 0x0a, 0x00, 0x25, 0x30, 0x32, 0x78, 0x20, 0x00, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x20, 0x62, 0x75, 0x66, 0x20, 0x25, 0x70, 0x0a, 0x00, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x20, 0x30, 0x78, 0x25, 0x78, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x63, 0x68, 0x6b, 0x73, 0x75, 0x6d, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x20, 0x30, 0x78, 0x25, 0x78, 0x21, 0x0a, 0x00, 0x64, 0x61, 0x74, 0x61, 0x20, 0x63, 0x68, 0x6b, 0x73, 0x75, 0x6d, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x20, 0x30, 0x78, 0x25, 0x78, 0x21, 0x0a, 0x00, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x68, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x70, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x68, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x70, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x74, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x6c, 0x6f, 0x61, 0x64, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x65, 0x70, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x61, 0x74, 0x74, 0x72, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x6e, 0x78, 0x74, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x25, 0x73, 0x0a, 0x00, 0x74, 0x6c, 0x76, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x20, 0x30, 0x78, 0x25, 0x78, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x74, 0x6c, 0x76, 0x20, 0x72, 0x73, 0x61, 0x20, 0x70, 0x6b, 0x65, 0x79, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x25, 0x64, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x74, 0x6c, 0x76, 0x20, 0x72, 0x73, 0x61, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x25, 0x64, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x74, 0x6c, 0x76, 0x20, 0x65, 0x63, 0x63, 0x20, 0x70, 0x6b, 0x65, 0x79, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x25, 0x64, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x74, 0x6c, 0x76, 0x20, 0x65, 0x63, 0x63, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x25, 0x64, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x20, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x25, 0x64, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x80, 0xba, 0x8c, 0x01, 0x00, 0x5a, 0x62, 0x02, 0x00, 0x36, 0x6e, 0x01, 0x00, 0x48, 0xe8, 0x01, 0x00, 0x00, 0x77, 0x01, 0xb2, 0x50, 0x0b, 0x04, 0xce, 0x50, 0x0b, 0x04, 0xef, 0x50, 0x0b, 0x04, 0x13, 0x51, 0x0b, 0x04, 0x36, 0x51, 0x0b, 0x04, 0x5b, 0x51, 0x0b, 0x04, 0x7e, 0x51, 0x0b, 0x04, 0xa0, 0x51, 0x0b, 0x04, 0xc4, 0x51, 0x0b, 0x04, 0xe8, 0x51, 0x0b, 0x04, 0x0b, 0x52, 0x0b, 0x04, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x61, 0x74, 0x63, 0x68, 0x64, 0x6f, 0x67, 0x20, 0x72, 0x65, 0x73, 0x65, 0x74, 0x20, 0x68, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x20, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x63, 0x70, 0x75, 0x2c, 0x20, 0x57, 0x41, 0x54, 0x43, 0x48, 0x44, 0x4f, 0x47, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x52, 0x45, 0x47, 0x3a, 0x20, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x0a, 0x00, 0x62, 0x6f, 0x6f, 0x74, 0x20, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x3a, 0x20, 0x25, 0x73, 0x0a, 0x00, 0x62, 0x6f, 0x6f, 0x74, 0x20, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x3a, 0x20, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x28, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x29, 0x0a, 0x00, 0x62, 0x6f, 0x6f, 0x74, 0x20, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x3a, 0x20, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x28, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x29, 0x0a, 0x00, 0x72, 0x74, 0x63, 0x5b, 0x25, 0x64, 0x5d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x65, 0x72, 0x61, 0x6c, 0x79, 0x20, 0x6a, 0x75, 0x6d, 0x70, 0x20, 0x66, 0x65, 0x6c, 0x0a, 0x00, 0x63, 0x61, 0x72, 0x73, 0x68, 0x64, 0x75, 0x6d, 0x70, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x2c, 0x20, 0x6a, 0x75, 0x6d, 0x70, 0x20, 0x66, 0x65, 0x6c, 0x0a, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4c, 0x44, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x43, 0x48, 0x49, 0x50, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x54, 0x5f, 0x50, 0x49, 0x4e, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x41, 0x52, 0x4d, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x41, 0x52, 0x4d, 0x5f, 0x50, 0x41, 0x4e, 0x49, 0x43, 0x5f, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x41, 0x52, 0x4d, 0x5f, 0x57, 0x41, 0x54, 0x43, 0x48, 0x44, 0x4f, 0x47, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x54, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x56, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x56, 0x5f, 0x50, 0x41, 0x4e, 0x49, 0x43, 0x5f, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x56, 0x5f, 0x57, 0x41, 0x54, 0x43, 0x48, 0x44, 0x4f, 0x47, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x54, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x44, 0x53, 0x50, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x44, 0x53, 0x50, 0x5f, 0x50, 0x41, 0x4e, 0x49, 0x43, 0x5f, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x00, 0x53, 0x55, 0x4e, 0x58, 0x49, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x44, 0x53, 0x50, 0x5f, 0x57, 0x41, 0x54, 0x43, 0x48, 0x44, 0x4f, 0x47, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x54, 0x00, 0x64, 0x6d, 0x61, 0x20, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x79, 0x65, 0x74, 0x0a, 0x00, 0x64, 0x6d, 0x61, 0x20, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x0a, 0x00, 0x64, 0x6d, 0x61, 0x20, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x73, 0x20, 0x66, 0x72, 0x65, 0x65, 0x2c, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x72, 0x65, 0x65, 0x20, 0x69, 0x74, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x0a, 0x00, 0x64, 0x6d, 0x61, 0x20, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x2c, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x72, 0x65, 0x65, 0x20, 0x69, 0x74, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x43, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x25, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x65, 0x6d, 0x21, 0x0a, 0x00, 0x2d, 0x2d, 0x2d, 0x6a, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x6d, 0x61, 0x78, 0x43, 0x61, 0x6c, 0x3a, 0x25, 0x78, 0x20, 0x6d, 0x69, 0x6e, 0x43, 0x61, 0x6c, 0x3a, 0x25, 0x78, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x43, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x25, 0x73, 0x3a, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x69, 0x6e, 0x64, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x20, 0x64, 0x71, 0x73, 0x0a, 0x00, 0x63, 0x61, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x2c, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x74, 0x65, 0x3a, 0x20, 0x25, 0x64, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x43, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x25, 0x70, 0x00, 0x5b, 0x50, 0x52, 0x43, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x25, 0x73, 0x2c, 0x25, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x63, 0x68, 0x69, 0x70, 0x3a, 0x25, 0x78, 0x0a, 0x00, 0x42, 0x55, 0x47, 0x20, 0x61, 0x74, 0x20, 0x25, 0x73, 0x3a, 0x25, 0x64, 0x21, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x43, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x50, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x77, 0x61, 0x69, 0x74, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x21, 0x20, 0x25, 0x78, 0x20, 0x25, 0x78, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x43, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x66, 0x69, 0x66, 0x6f, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x43, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x25, 0x73, 0x2c, 0x25, 0x64, 0x20, 0x65, 0x72, 0x72, 0x3a, 0x25, 0x64, 0x21, 0x21, 0x0a, 0x00, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x20, 0x61, 0x74, 0x20, 0x25, 0x73, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x50, 0x53, 0x52, 0x41, 0x4d, 0x5f, 0x43, 0x54, 0x52, 0x4c, 0x5f, 0x50, 0x6f, 0x6c, 0x6c, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x00, 0x48, 0x41, 0x4c, 0x5f, 0x50, 0x73, 0x72, 0x61, 0x6d, 0x43, 0x74, 0x72, 0x6c, 0x5f, 0x44, 0x51, 0x53, 0x5f, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x43, 0x61, 0x6c, 0x5f, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x00, 0x48, 0x41, 0x4c, 0x5f, 0x50, 0x73, 0x72, 0x61, 0x6d, 0x43, 0x74, 0x72, 0x6c, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x00, 0x48, 0x41, 0x4c, 0x5f, 0x50, 0x73, 0x72, 0x61, 0x6d, 0x43, 0x74, 0x72, 0x6c, 0x5f, 0x53, 0x65, 0x74, 0x5f, 0x42, 0x75, 0x73, 0x57, 0x69, 0x64, 0x74, 0x68, 0x00, 0x48, 0x41, 0x4c, 0x5f, 0x50, 0x73, 0x72, 0x61, 0x6d, 0x43, 0x74, 0x72, 0x6c, 0x5f, 0x53, 0x65, 0x74, 0x5f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x00, 0x48, 0x41, 0x4c, 0x5f, 0x50, 0x73, 0x72, 0x61, 0x6d, 0x43, 0x74, 0x72, 0x6c, 0x5f, 0x49, 0x6e, 0x69, 0x74, 0x00, 0x48, 0x41, 0x4c, 0x5f, 0x50, 0x73, 0x72, 0x61, 0x6d, 0x43, 0x74, 0x72, 0x6c, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x47, 0x65, 0x74, 0x20, 0x41, 0x50, 0x53, 0x33, 0x32, 0x20, 0x33, 0x32, 0x4d, 0x62, 0x20, 0x77, 0x72, 0x6f, 0x6e, 0x67, 0x20, 0x64, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, 0x3a, 0x4d, 0x52, 0x31, 0x28, 0x30, 0x78, 0x25, 0x78, 0x29, 0x2c, 0x4d, 0x52, 0x32, 0x28, 0x30, 0x78, 0x25, 0x78, 0x29, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x47, 0x65, 0x74, 0x20, 0x41, 0x50, 0x53, 0x33, 0x32, 0x20, 0x77, 0x72, 0x6f, 0x6e, 0x67, 0x20, 0x49, 0x44, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x41, 0x50, 0x53, 0x33, 0x32, 0x20, 0x42, 0x41, 0x44, 0x20, 0x64, 0x69, 0x65, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x41, 0x50, 0x53, 0x33, 0x32, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x47, 0x65, 0x74, 0x20, 0x41, 0x50, 0x53, 0x36, 0x34, 0x20, 0x36, 0x34, 0x4d, 0x62, 0x20, 0x77, 0x72, 0x6f, 0x6e, 0x67, 0x20, 0x64, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x47, 0x65, 0x74, 0x20, 0x41, 0x50, 0x53, 0x36, 0x34, 0x20, 0x77, 0x72, 0x6f, 0x6e, 0x67, 0x20, 0x49, 0x44, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x41, 0x50, 0x53, 0x36, 0x34, 0x20, 0x42, 0x41, 0x44, 0x20, 0x64, 0x69, 0x65, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x41, 0x50, 0x53, 0x36, 0x34, 0x00, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x62, 0x75, 0x73, 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6d, 0x64, 0x00, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x3a, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x0a, 0x00, 0x6c, 0x73, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x61, 0x70, 0x73, 0x33, 0x32, 0x0a, 0x00, 0x6c, 0x73, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x61, 0x70, 0x73, 0x36, 0x34, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2c, 0x20, 0x70, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x31, 0x20, 0x6f, 0x72, 0x20, 0x32, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x64, 0x21, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x0a, 0x00, 0x6c, 0x73, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x64, 0x71, 0x73, 0x3a, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x0a, 0x00, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x63, 0x68, 0x69, 0x70, 0x20, 0x25, 0x73, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x6f, 0x6b, 0x21, 0x2c, 0x20, 0x66, 0x72, 0x65, 0x71, 0x20, 0x25, 0x64, 0x0a, 0x00, 0x49, 0x6e, 0x69, 0x74, 0x20, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x6f, 0x6b, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x63, 0x68, 0x69, 0x70, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x64, 0x21, 0x0a, 0x00, 0x5b, 0x50, 0x52, 0x20, 0x45, 0x52, 0x52, 0x5d, 0x20, 0x25, 0x73, 0x2c, 0x25, 0x64, 0x20, 0x75, 0x6e, 0x6b, 0x6f, 0x6e, 0x77, 0x20, 0x63, 0x6d, 0x64, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x46, 0x41, 0x49, 0x4c, 0x2e, 0x0a, 0x00, 0x25, 0x78, 0x20, 0x21, 0x3d, 0x20, 0x25, 0x78, 0x20, 0x61, 0x74, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x25, 0x78, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x4f, 0x4b, 0x2e, 0x0a, 0x00, 0x56, 0x32, 0x2e, 0x30, 0x30, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x42, 0x4f, 0x4f, 0x54, 0x20, 0x44, 0x52, 0x49, 0x56, 0x45, 0x20, 0x49, 0x4e, 0x46, 0x4f, 0x3a, 0x20, 0x25, 0x73, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x43, 0x4c, 0x4b, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x4d, 0x48, 0x5a, 0x0a, 0x00, 0x64, 0x72, 0x61, 0x6d, 0x5f, 0x74, 0x70, 0x72, 0x31, 0x31, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x20, 0x2c, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x5f, 0x74, 0x70, 0x72, 0x31, 0x32, 0x20, 0x3d, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x64, 0x72, 0x61, 0x6d, 0x5f, 0x74, 0x70, 0x72, 0x39, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x53, 0x49, 0x5a, 0x45, 0x20, 0x3d, 0x25, 0x64, 0x20, 0x4d, 0x42, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x44, 0x51, 0x53, 0x20, 0x67, 0x61, 0x74, 0x65, 0x20, 0x69, 0x73, 0x20, 0x4e, 0x4c, 0x2e, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x44, 0x51, 0x53, 0x20, 0x67, 0x61, 0x74, 0x65, 0x20, 0x69, 0x73, 0x20, 0x50, 0x55, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x44, 0x51, 0x53, 0x20, 0x67, 0x61, 0x74, 0x65, 0x20, 0x69, 0x73, 0x20, 0x50, 0x44, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x00, 0x66, 0x65, 0x73, 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x3a, 0x25, 0x73, 0x0a, 0x00, 0x66, 0x61, 0x6b, 0x65, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x6f, 0x6b, 0x0a, 0x00, 0x68, 0x65, 0x61, 0x70, 0x3a, 0x20, 0x30, 0x78, 0x25, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x6c, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x0a, 0x00, 0x73, 0x6b, 0x69, 0x70, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x6c, 0x73, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x0a, 0x00, 0x68, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x0a, 0x00, 0x68, 0x73, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x21, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x20, 0x25, 0x64, 0x0a, 0x00, 0x73, 0x6b, 0x69, 0x70, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x68, 0x73, 0x70, 0x73, 0x72, 0x61, 0x6d, 0x0a, 0x00, 0x66, 0x65, 0x73, 0x31, 0x20, 0x64, 0x6f, 0x6e, 0x65, 0x0a, 0x00, 0x00, 0x00, 0x10, 0xe9, 0xff, 0x7f, 0x01, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x68, 0x9f, 0x98, 0x33, 0x92, 0x1b, 0x97, 0x59, 0xe8, 0x74, 0xb0, 0x1c, 0x59, 0x95, 0x1a, 0x20, 0x2a, 0x90, 0xdf, 0x4f, 0x40, 0x15, 0x72, 0x17 }; if(type) { if(strcmp(type, "r128-s2") == 0) { fel_write(ctx, 0x040b0000, (void *)&r128_s2_payload[0], sizeof(r128_s2_payload)); fel_exec(ctx, 0x040b0000); return 1; } else if(strcmp(type, "r128-s3") == 0) { fel_write(ctx, 0x040b0000, (void *)&r128_s3_payload[0], sizeof(r128_s3_payload)); fel_exec(ctx, 0x040b0000); return 1; } else if(strcmp(type, "xr875") == 0) { fel_write(ctx, 0x040b0000, (void *)&r128_xr875_payload[0], sizeof(r128_xr875_payload)); fel_exec(ctx, 0x040b0000); return 1; } } printf("usage:\r\n"); printf(" xfel ddr r128-s2 - Initial PSRAM controller for R128-S2\r\n"); printf(" xfel ddr r128-s3 - Initial PSRAM controller for R128-S3\r\n"); printf(" xfel ddr xr875 - Initial PSRAM controller for XR875\r\n"); return 0; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { static const uint8_t payload[] = { 0xbf, 0xf3, 0x4f, 0x8f, 0xbf, 0xf3, 0x6f, 0x8f, 0xdf, 0xf8, 0x14, 0x00, 0x4f, 0xf0, 0x00, 0x01, 0xc0, 0xf8, 0x00, 0x10, 0xbf, 0xf3, 0x4f, 0x8f, 0xbf, 0xf3, 0x6f, 0x8f, 0x00, 0xf0, 0x02, 0xb8, 0x50, 0xef, 0x00, 0xe0, 0x4d, 0xf8, 0x04, 0xed, 0xdf, 0xf8, 0x0c, 0x00, 0x00, 0xf0, 0xb8, 0xf8, 0x5d, 0xf8, 0x04, 0xeb, 0x70, 0x47, 0x00, 0x00, 0x00, 0x10, 0x0b, 0x04, 0x00, 0x29, 0x4d, 0xd0, 0x2d, 0xe9, 0xf0, 0x47, 0x4f, 0xf0, 0xff, 0x09, 0xdf, 0xf8, 0xa4, 0x80, 0xdf, 0xf8, 0xa4, 0xe0, 0xdf, 0xf8, 0xa4, 0xc0, 0x22, 0x4f, 0x23, 0x4c, 0x23, 0x4d, 0x24, 0x4e, 0x40, 0x29, 0x0a, 0x46, 0x28, 0xbf, 0x40, 0x22, 0x00, 0x23, 0xca, 0x46, 0xc8, 0xf8, 0x00, 0x20, 0xce, 0xf8, 0x00, 0x20, 0xcc, 0xf8, 0x00, 0x20, 0x01, 0x33, 0x9a, 0x42, 0x87, 0xf8, 0x00, 0xa0, 0xfa, 0xdc, 0x23, 0x68, 0x43, 0xf0, 0x00, 0x43, 0x23, 0x60, 0x23, 0x68, 0x00, 0x2b, 0xfc, 0xdb, 0x2b, 0x68, 0xdb, 0xb2, 0x9a, 0x42, 0xfb, 0xd8, 0x00, 0x23, 0x96, 0xf8, 0x00, 0xa0, 0x5f, 0xfa, 0x8a, 0xfa, 0x40, 0xb1, 0x01, 0x33, 0x9a, 0x42, 0x00, 0xf8, 0x01, 0xab, 0xf5, 0xdc, 0x89, 0x1a, 0xd6, 0xd1, 0xbd, 0xe8, 0xf0, 0x87, 0x03, 0xf1, 0x01, 0x0a, 0x92, 0x45, 0x03, 0xf1, 0x02, 0x03, 0xf5, 0xda, 0x9a, 0x42, 0x96, 0xf8, 0x00, 0xa0, 0xf1, 0xdd, 0x96, 0xf8, 0x00, 0xa0, 0x03, 0xf1, 0x01, 0x0a, 0x92, 0x45, 0x03, 0xf1, 0x02, 0x03, 0xf3, 0xdb, 0x89, 0x1a, 0xc0, 0xd1, 0xe8, 0xe7, 0x70, 0x47, 0x00, 0xbf, 0x00, 0x92, 0x00, 0x40, 0x08, 0x90, 0x00, 0x40, 0x1c, 0x90, 0x00, 0x40, 0x00, 0x93, 0x00, 0x40, 0x30, 0x90, 0x00, 0x40, 0x34, 0x90, 0x00, 0x40, 0x38, 0x90, 0x00, 0x40, 0x00, 0x29, 0x40, 0xd0, 0x2d, 0xe9, 0xf0, 0x4f, 0x4f, 0xf0, 0xff, 0x09, 0xdf, 0xf8, 0x88, 0x80, 0xdf, 0xf8, 0x88, 0xe0, 0xdf, 0xf8, 0x88, 0xc0, 0x1b, 0x4f, 0x1c, 0x4c, 0x1c, 0x4d, 0x1d, 0x4e, 0x40, 0x29, 0x0a, 0x46, 0x28, 0xbf, 0x40, 0x22, 0xc8, 0xf8, 0x00, 0x20, 0xce, 0xf8, 0x00, 0x20, 0xcc, 0xf8, 0x00, 0x20, 0xf8, 0xb1, 0x82, 0x46, 0x00, 0x23, 0x1a, 0xf8, 0x01, 0xbb, 0x01, 0x33, 0x9a, 0x42, 0x87, 0xf8, 0x00, 0xb0, 0xf8, 0xdc, 0x23, 0x68, 0x43, 0xf0, 0x00, 0x43, 0x23, 0x60, 0x23, 0x68, 0x00, 0x2b, 0xfc, 0xdb, 0x2b, 0x68, 0xdb, 0xb2, 0x9a, 0x42, 0xfb, 0xd8, 0x00, 0x23, 0x01, 0x33, 0x9a, 0x42, 0x96, 0xf8, 0x00, 0xa0, 0xfa, 0xdc, 0x00, 0xb1, 0x10, 0x44, 0x89, 0x1a, 0xd6, 0xd1, 0xbd, 0xe8, 0xf0, 0x8f, 0x03, 0x46, 0xca, 0x46, 0x01, 0x33, 0x9a, 0x42, 0x87, 0xf8, 0x00, 0xa0, 0xfa, 0xdc, 0xe0, 0xe7, 0x70, 0x47, 0x00, 0x92, 0x00, 0x40, 0x08, 0x90, 0x00, 0x40, 0x1c, 0x90, 0x00, 0x40, 0x00, 0x93, 0x00, 0x40, 0x30, 0x90, 0x00, 0x40, 0x34, 0x90, 0x00, 0x40, 0x38, 0x90, 0x00, 0x40, 0x2d, 0xe9, 0xf0, 0x4f, 0x06, 0x46, 0x7c, 0x4f, 0x7c, 0x4c, 0xdf, 0xf8, 0x04, 0x92, 0xdf, 0xf8, 0x04, 0x82, 0x7b, 0x4d, 0x85, 0xb0, 0xb2, 0x46, 0x1a, 0xf8, 0x01, 0x3b, 0x01, 0x2b, 0x2c, 0xd0, 0x02, 0x2b, 0x00, 0xf0, 0x86, 0x80, 0x03, 0x2b, 0x00, 0xf0, 0x89, 0x80, 0x04, 0x2b, 0x00, 0xf0, 0x8e, 0x80, 0x05, 0x2b, 0x00, 0xf0, 0x95, 0x80, 0x06, 0x2b, 0x00, 0xf0, 0xac, 0x80, 0x07, 0x2b, 0x00, 0xf0, 0xc3, 0x80, 0x08, 0x2b, 0x40, 0xf0, 0xd3, 0x80, 0x4c, 0xf2, 0x0f, 0x03, 0xeb, 0x46, 0xad, 0xf8, 0x00, 0x30, 0x02, 0xae, 0x02, 0x21, 0x58, 0x46, 0xff, 0xf7, 0x7f, 0xff, 0x01, 0x21, 0x30, 0x46, 0xff, 0xf7, 0x1b, 0xff, 0x9d, 0xf8, 0x08, 0x30, 0xdb, 0x07, 0xf3, 0xd4, 0x56, 0x46, 0xb2, 0x46, 0x1a, 0xf8, 0x01, 0x3b, 0x01, 0x2b, 0xd2, 0xd1, 0x23, 0x68, 0x4f, 0xf4, 0x80, 0x56, 0x23, 0xf0, 0x0f, 0x03, 0x43, 0xf0, 0x03, 0x03, 0x23, 0x60, 0x23, 0x68, 0x5d, 0x48, 0x23, 0xf0, 0xf0, 0x03, 0x43, 0xf0, 0x30, 0x03, 0x23, 0x60, 0x23, 0x68, 0x01, 0x46, 0x23, 0xf4, 0x70, 0x63, 0x43, 0xf4, 0x40, 0x73, 0x23, 0x60, 0x23, 0x68, 0x23, 0xf4, 0x70, 0x43, 0x43, 0xf4, 0x40, 0x53, 0x23, 0x60, 0x23, 0x68, 0x23, 0xf4, 0x70, 0x23, 0x43, 0xf4, 0x40, 0x33, 0x23, 0x60, 0x23, 0x68, 0x23, 0xf4, 0x70, 0x03, 0x43, 0xf4, 0x40, 0x13, 0x23, 0x60, 0xd9, 0xf8, 0x00, 0x30, 0x43, 0xf0, 0x01, 0x03, 0xc9, 0xf8, 0x00, 0x30, 0xd8, 0xf8, 0x00, 0x30, 0x43, 0xf0, 0x01, 0x03, 0xc8, 0xf8, 0x00, 0x30, 0x2b, 0x68, 0x43, 0xf0, 0x00, 0x43, 0x2b, 0x60, 0x2b, 0x68, 0x23, 0xf0, 0x40, 0x73, 0x2b, 0x60, 0x2b, 0x68, 0x23, 0xf4, 0x40, 0x33, 0x2b, 0x60, 0x2b, 0x68, 0x23, 0xf0, 0x0f, 0x03, 0x2b, 0x60, 0x41, 0x4b, 0x1e, 0x60, 0x03, 0x68, 0x43, 0xf0, 0x00, 0x43, 0x43, 0xf0, 0x83, 0x03, 0x03, 0x60, 0x0b, 0x68, 0x00, 0x2b, 0xfc, 0xdb, 0x3b, 0x68, 0x3c, 0x49, 0x23, 0xf0, 0x03, 0x03, 0x43, 0xf0, 0x44, 0x03, 0x3b, 0x60, 0x0b, 0x68, 0x56, 0x46, 0x43, 0xf0, 0x80, 0x23, 0x0b, 0x60, 0x71, 0xe7, 0x3b, 0x68, 0x56, 0x46, 0x23, 0xf0, 0xb0, 0x03, 0x3b, 0x60, 0x6b, 0xe7, 0x3b, 0x68, 0x56, 0x46, 0x23, 0xf0, 0xb0, 0x03, 0x43, 0xf0, 0x80, 0x03, 0x3b, 0x60, 0x63, 0xe7, 0x96, 0xf8, 0x01, 0xb0, 0xb0, 0x1c, 0x59, 0x46, 0x0b, 0xf1, 0x01, 0x06, 0xff, 0xf7, 0xff, 0xfe, 0x56, 0x44, 0x59, 0xe7, 0x96, 0xf8, 0x06, 0xc0, 0x72, 0x79, 0xb1, 0x78, 0xf0, 0x79, 0x73, 0x78, 0x42, 0xea, 0x0c, 0x22, 0x96, 0xf8, 0x03, 0xc0, 0x42, 0xea, 0x00, 0x42, 0x43, 0xea, 0x01, 0x23, 0x30, 0x79, 0x31, 0x7a, 0x43, 0xea, 0x0c, 0x43, 0x42, 0xea, 0x01, 0x61, 0x43, 0xea, 0x00, 0x60, 0xff, 0xf7, 0xe5, 0xfe, 0x09, 0x36, 0x3f, 0xe7, 0x96, 0xf8, 0x06, 0xc0, 0x72, 0x79, 0xb1, 0x78, 0xf0, 0x79, 0x73, 0x78, 0x42, 0xea, 0x0c, 0x22, 0x96, 0xf8, 0x03, 0xc0, 0x42, 0xea, 0x00, 0x42, 0x43, 0xea, 0x01, 0x23, 0x30, 0x79, 0x31, 0x7a, 0x43, 0xea, 0x0c, 0x43, 0x42, 0xea, 0x01, 0x61, 0x43, 0xea, 0x00, 0x60, 0xff, 0xf7, 0x6b, 0xfe, 0x09, 0x36, 0x25, 0xe7, 0x05, 0x23, 0xeb, 0x46, 0x8d, 0xf8, 0x00, 0x30, 0x02, 0xae, 0x01, 0x21, 0x58, 0x46, 0xff, 0xf7, 0xc0, 0xfe, 0x01, 0x21, 0x30, 0x46, 0xff, 0xf7, 0x5c, 0xfe, 0x9d, 0xf8, 0x08, 0x30, 0xda, 0x07, 0xf3, 0xd4, 0x56, 0x46, 0x3f, 0xe7, 0x05, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x00, 0xbf, 0x08, 0x90, 0x00, 0x40, 0x28, 0xa4, 0x04, 0x40, 0x20, 0xc0, 0x03, 0x40, 0x04, 0x90, 0x00, 0x40, 0x24, 0x90, 0x00, 0x40, 0x18, 0x90, 0x00, 0x40, 0x0c, 0xc0, 0x03, 0x40, 0x04, 0xc0, 0x03, 0x40 }; fel_write(ctx, 0x040b0000, (void *)&payload[0], sizeof(payload)); if(swapbuf) *swapbuf = 0x040b2000; if(swaplen) *swaplen = 65536; if(cmdlen) *cmdlen = 4096; return 1; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { fel_write(ctx, 0x040b1000, (void *)cbuf, clen); fel_exec(ctx, 0x040b0000); return 1; } static const struct sid_section_t { char * name; uint32_t offset; uint32_t size_bits; } sids[] = { { "chipid", 0x0000, 128 }, { "unknown", 0x0010, 1920 }, }; static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { if(argc > 0) { if(!strcmp(argv[0], "efuse")) { argc -= 1; argv += 1; if(argc > 0) { if(!strcmp(argv[0], "dump") && (argc == 1)) { uint32_t buffer[2048 / 4]; for(int n = 0; n < ARRAY_SIZE(sids); n++) { uint32_t count = sids[n].size_bits / 32; for(int i = 0; i < count; i++) buffer[i] = payload_read32(ctx, 0x4004e600 + sids[n].offset + i * 4); printf("%s:(0x%04x %d-bits)", sids[n].name, sids[n].offset, sids[n].size_bits); for(int i = 0; i < count; i++) { if(i >= 0 && ((i % 8) == 0)) printf("\r\n%-4s", ""); printf("%08x ", buffer[i]); } printf("\r\n"); } return 1; } } } else if(!strcmp(argv[0], "exec")) { argc -= 1; argv += 1; if(argc > 0) { if(!strcmp(argv[0], "riscv") && (argc == 2)) { uint64_t addr = strtoull(argv[1], NULL, 0); uint32_t val; /* Set cpu voltage to 1100mV */ val = payload_read32(ctx, 0x40050000 + 0x44); val &= ~(0x1f << 9); val |= 0x14 << 9; payload_write32(ctx, 0x40050000 + 0x44, val); /* Wakeup enable */ val = payload_read32(ctx, 0x40051400 + 0x100); val |= 0x1 << 8; payload_write32(ctx, 0x40051400 + 0x100, val); /* Enable clk_ck1_c906 */ val = payload_read32(ctx, 0x4004c400 + 0xa4); val |= 0x1 << 7; payload_write32(ctx, 0x4004c400 + 0xa4, val); /* Set clk_ck1_c906 clk to 480M */ val = payload_read32(ctx, 0x4004c400 + 0xa4); val &= ~(0x7 << 4); val |= 0x1 << 4; payload_write32(ctx, 0x4004c400 + 0xa4, val); /* Set clk_ck_c906 source to clk_ck1_c906 */ val = payload_read32(ctx, 0x4004c400 + 0xe0); val &= ~(0x1 << 17); payload_write32(ctx, 0x4004c400 + 0xe0, val); /* Set clk_c906_sel source to clk_ck_c906 */ val = payload_read32(ctx, 0x4003c000 + 0x64); val &= ~(0x3 << 4); val |= 0x2 << 4; payload_write32(ctx, 0x4003c000 + 0x64, val); /* Set clk_c906_sel source to clk_ck_c906 */ val = payload_read32(ctx, 0x4003c000 + 0x64); val |= 1 << 31; payload_write32(ctx, 0x4003c000 + 0x64, val); /* Set clk_ck_c906_div to 480M */ val = payload_read32(ctx, 0x4003c000 + 0x64); val &= ~(0x3 << 0); val |= 0x0 << 0; payload_write32(ctx, 0x4003c000 + 0x64, val); /* Enable riscv clk gating */ val = payload_read32(ctx, 0x4003c000 + 0x14); val |= 1 << 19; payload_write32(ctx, 0x4003c000 + 0x14, val); /* Riscv clk rst */ val = payload_read32(ctx, 0x4003c000 + 0x18); val |= 1 << 19; payload_write32(ctx, 0x4003c000 + 0x18, val); /* Riscv sys apb soft rst */ val = payload_read32(ctx, 0x4003c000 + 0x18); val |= 1 << 21; payload_write32(ctx, 0x4003c000 + 0x18, val); /* Set riscv start address */ payload_write32(ctx, 0x40028000 + 0x004, (uint32_t)((addr >> 0) & 0xffffffff)); payload_write32(ctx, 0x40028000 + 0x008, (uint32_t)((addr >> 32) & 0x000000ff)); /* Riscv core reset */ val = payload_read32(ctx, 0x4003c000 + 0x18); val |= 1 << 16; payload_write32(ctx, 0x4003c000 + 0x18, val); return 1; } else if(!strcmp(argv[0], "dsp") && (argc == 2)) { uint64_t addr = strtoull(argv[1], NULL, 0); uint32_t val; /* Set cpu voltage to 1100mV */ val = payload_read32(ctx, 0x40050000 + 0x44); val &= ~(0x1f << 9); val |= 0x14 << 9; payload_write32(ctx, 0x40050000 + 0x44, val); /* Set dsp voltage to 1200mV */ val = payload_read32(ctx, 0x40050000 + 0x4c); val &= ~(0x1f << 4); val |= 0x18 << 4; payload_write32(ctx, 0x40050000 + 0x4c, val); /* Wakeup enable */ val = payload_read32(ctx, 0x40051400 + 0x100); val |= 0x1 << 12; payload_write32(ctx, 0x40051400 + 0x100, val); /* Enable clk_ck1_hifi5 */ val = payload_read32(ctx, 0x4004c400 + 0xa4); val |= 0x1 << 11; payload_write32(ctx, 0x4004c400 + 0xa4, val); /* Enable clk_ck3_hifi5 */ val = payload_read32(ctx, 0x4004c400 + 0xa8); val |= 0x1 << 11; payload_write32(ctx, 0x4004c400 + 0xa8, val); /* Set clk_ck3_hifi5 clk to 400M */ val = payload_read32(ctx, 0x4004c400 + 0xa8); val &= ~(0x7 << 8); val |= 0x3 << 8; payload_write32(ctx, 0x4004c400 + 0xa8, val); /* Set clk_ck_hifi5 source to clk_ck3_hifi5 */ val = payload_read32(ctx, 0x4004c400 + 0xe0); val |= 0x1 << 18; payload_write32(ctx, 0x4004c400 + 0xe0, val); /* Set clk_ck_hifi5_div source to clk_ck_hifi5 */ val = payload_read32(ctx, 0x4003c000 + 0x68); val &= ~(0x3 << 4); val |= 0x2 << 4; payload_write32(ctx, 0x4003c000 + 0x68, val); /* Set dsp_clk_hifi5_div to clk_ck_hifi5 / 1 */ val = payload_read32(ctx, 0x4003c000 + 0x68); val &= ~(0x3 << 0); val |= 0x0 << 0; payload_write32(ctx, 0x4003c000 + 0x68, val); /* Hifi5 core clk enable */ val = payload_read32(ctx, 0x4003c000 + 0x68); val |= 1 << 31; payload_write32(ctx, 0x4003c000 + 0x68, val); /* Hifi5 clk gating */ val = payload_read32(ctx, 0x4003c000 + 0x14); val |= 1 << 11; payload_write32(ctx, 0x4003c000 + 0x14, val); /* Hifi5 config reset */ val = payload_read32(ctx, 0x4003c000 + 0x18); val |= 1 << 11; payload_write32(ctx, 0x4003c000 + 0x18, val); /* Set dsp address */ val = payload_read32(ctx, 0x40023c00 + 0x04); val |= 1 << 1; payload_write32(ctx, 0x40023c00 + 0x04, val); usleep(1000); payload_write32(ctx, 0x40023c00 + 0x00, (uint32_t)((addr >> 0) & 0xffffffff)); val = payload_read32(ctx, 0x40023c00 + 0x04); val |= 1 << 0; payload_write32(ctx, 0x40023c00 + 0x04, val); /* Dsp debug reset */ val = payload_read32(ctx, 0x4003c000 + 0x18); val |= 1 << 14; payload_write32(ctx, 0x4003c000 + 0x18, val); /* Dsp core reset */ val = payload_read32(ctx, 0x4003c000 + 0x18); val &= ~(1 << 8); payload_write32(ctx, 0x4003c000 + 0x18, val); usleep(10000); val = payload_read32(ctx, 0x4003c000 + 0x18); val |= 1 << 8; payload_write32(ctx, 0x4003c000 + 0x18, val); /* Run */ val = payload_read32(ctx, 0x40023c00 + 0x04); val &= ~(1 << 0); payload_write32(ctx, 0x40023c00 + 0x04, val); return 1; } } } } printf("usage:\r\n"); printf(" xfel extra efuse dump - Dump all of the efuse information\r\n"); printf(" xfel extra exec riscv
- Boot riscv and jump to address\r\n"); printf(" xfel extra exec dsp
- Boot dsp and jump to address\r\n"); return 0; } struct chip_t r128 = { .name = "R128", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/chips/r328.c000066400000000000000000000034771512120643700144420ustar00rootroot00000000000000#include static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00182100) return 1; return 0; } static int chip_reset(struct xfel_ctx_t * ctx) { return 0; } static uint32_t payload_arm_read32(struct xfel_ctx_t * ctx, uint32_t addr) { uint32_t payload[] = { cpu_to_le32(0xe59f000c), /* ldr r0, [pc, #12] */ cpu_to_le32(0xe28f100c), /* add r1, pc, #12 */ cpu_to_le32(0xe4902000), /* ldr r2, [r0], #0 */ cpu_to_le32(0xe4812000), /* str r2, [r1], #0 */ cpu_to_le32(0xe12fff1e), /* bx lr */ cpu_to_le32(addr), }; uint32_t val; fel_write(ctx, ctx->version.scratchpad, (void *)payload, sizeof(payload)); fel_exec(ctx, ctx->version.scratchpad); fel_read(ctx, ctx->version.scratchpad + sizeof(payload), (void *)&val, sizeof(val)); return le32_to_cpu(val); } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { uint32_t id[4]; id[0] = payload_arm_read32(ctx, 0x03006200 + 0x0); id[1] = payload_arm_read32(ctx, 0x03006200 + 0x4); id[2] = payload_arm_read32(ctx, 0x03006200 + 0x8); id[3] = payload_arm_read32(ctx, 0x03006200 + 0xc); sprintf(sid, "%08x%08x%08x%08x", id[0], id[1], id[2], id[3]); return 1; } static int chip_jtag(struct xfel_ctx_t * ctx) { return 0; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { return 0; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { return 0; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { return 0; } static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { return 0; } struct chip_t r328 = { .name = "R328", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/chips/r329.c000066400000000000000000000016511512120643700144330ustar00rootroot00000000000000#include static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00185100) return 1; return 0; } static int chip_reset(struct xfel_ctx_t * ctx) { return 0; } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { return 0; } static int chip_jtag(struct xfel_ctx_t * ctx) { return 0; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { return 0; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { return 0; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { return 0; } static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { return 0; } struct chip_t r329 = { .name = "R329", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/chips/r528_t113.c000066400000000000000000011617031512120643700152120ustar00rootroot00000000000000#include struct ddr2_param_t { uint32_t dram_clk; uint32_t dram_type; uint32_t dram_zq; uint32_t dram_odt_en; uint32_t dram_para1; uint32_t dram_para2; uint32_t dram_mr0; uint32_t dram_mr1; uint32_t dram_mr2; uint32_t dram_mr3; uint32_t dram_tpr0; uint32_t dram_tpr1; uint32_t dram_tpr2; uint32_t dram_tpr3; uint32_t dram_tpr4; uint32_t dram_tpr5; uint32_t dram_tpr6; uint32_t dram_tpr7; uint32_t dram_tpr8; uint32_t dram_tpr9; uint32_t dram_tpr10; uint32_t dram_tpr11; uint32_t dram_tpr12; uint32_t dram_tpr13; uint32_t reserve[8]; }; struct ddr3_param_t { uint32_t dram_clk; uint32_t dram_type; uint32_t dram_zq; uint32_t dram_odt_en; uint32_t dram_para1; uint32_t dram_para2; uint32_t dram_mr0; uint32_t dram_mr1; uint32_t dram_mr2; uint32_t dram_mr3; uint32_t dram_tpr0; uint32_t dram_tpr1; uint32_t dram_tpr2; uint32_t dram_tpr3; uint32_t dram_tpr4; uint32_t dram_tpr5; uint32_t dram_tpr6; uint32_t dram_tpr7; uint32_t dram_tpr8; uint32_t dram_tpr9; uint32_t dram_tpr10; uint32_t dram_tpr11; uint32_t dram_tpr12; uint32_t dram_tpr13; uint32_t reserve[8]; }; static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00185900) { /* * Dual-Core ARM Cortex-A7 */ if(R32(0x00000000) == 0xea000019) return 1; } return 0; } static uint32_t payload_read32(struct xfel_ctx_t * ctx, uint32_t addr) { static const uint8_t payload[] = { 0x00, 0x00, 0xa0, 0xe3, 0x17, 0x0f, 0x08, 0xee, 0x15, 0x0f, 0x07, 0xee, 0xd5, 0x0f, 0x07, 0xee, 0x9a, 0x0f, 0x07, 0xee, 0x95, 0x0f, 0x07, 0xee, 0xff, 0xff, 0xff, 0xea, 0x0c, 0x00, 0x9f, 0xe5, 0x0c, 0x10, 0x8f, 0xe2, 0x00, 0x20, 0x90, 0xe5, 0x00, 0x20, 0x81, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, }; uint32_t adr = cpu_to_le32(addr); uint32_t val; fel_write(ctx, ctx->version.scratchpad, (void *)payload, sizeof(payload)); fel_write(ctx, ctx->version.scratchpad + sizeof(payload), (void *)&adr, sizeof(adr)); fel_exec(ctx, ctx->version.scratchpad); fel_read(ctx, ctx->version.scratchpad + sizeof(payload) + sizeof(adr), (void *)&val, sizeof(val)); return le32_to_cpu(val); } static void payload_write32(struct xfel_ctx_t * ctx, uint32_t addr, uint32_t val) { static const uint8_t payload[] = { 0x00, 0x00, 0xa0, 0xe3, 0x17, 0x0f, 0x08, 0xee, 0x15, 0x0f, 0x07, 0xee, 0xd5, 0x0f, 0x07, 0xee, 0x9a, 0x0f, 0x07, 0xee, 0x95, 0x0f, 0x07, 0xee, 0xff, 0xff, 0xff, 0xea, 0x08, 0x00, 0x9f, 0xe5, 0x08, 0x10, 0x9f, 0xe5, 0x00, 0x10, 0x80, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, }; uint32_t params[2] = { cpu_to_le32(addr), cpu_to_le32(val), }; fel_write(ctx, ctx->version.scratchpad, (void *)payload, sizeof(payload)); fel_write(ctx, ctx->version.scratchpad + sizeof(payload), (void *)params, sizeof(params)); fel_exec(ctx, ctx->version.scratchpad); } static int chip_reset(struct xfel_ctx_t * ctx) { payload_write32(ctx, 0x020500a0 + 0x08, (0x16aa << 16) | (0x1 << 0)); return 1; } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { uint32_t id[4]; id[0] = payload_read32(ctx, 0x03006200 + 0x0); id[1] = payload_read32(ctx, 0x03006200 + 0x4); id[2] = payload_read32(ctx, 0x03006200 + 0x8); id[3] = payload_read32(ctx, 0x03006200 + 0xc); sprintf(sid, "%08x%08x%08x%08x", id[0], id[1], id[2], id[3]); return 1; } static int chip_jtag(struct xfel_ctx_t * ctx) { static const uint8_t payload[] = { 0x00, 0x00, 0xa0, 0xe3, 0x17, 0x0f, 0x08, 0xee, 0x15, 0x0f, 0x07, 0xee, 0xd5, 0x0f, 0x07, 0xee, 0x9a, 0x0f, 0x07, 0xee, 0x95, 0x0f, 0x07, 0xee, 0xff, 0xff, 0xff, 0xea, 0x58, 0x00, 0x9f, 0xe5, 0x00, 0xd0, 0x80, 0xe5, 0x04, 0xe0, 0x80, 0xe5, 0x00, 0xe0, 0x0f, 0xe1, 0x08, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x0c, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x1c, 0xee, 0x10, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x14, 0xe0, 0x80, 0xe5, 0x0c, 0x00, 0x00, 0xeb, 0x28, 0x00, 0x9f, 0xe5, 0x00, 0xd0, 0x90, 0xe5, 0x04, 0xe0, 0x90, 0xe5, 0x14, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x10, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x0c, 0xee, 0x0c, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x08, 0x10, 0x90, 0xe5, 0x01, 0xf0, 0x29, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0xe0, 0x7f, 0x04, 0x00, 0x02, 0x34, 0xa0, 0xe3, 0xf0, 0x20, 0x93, 0xe5, 0x0f, 0x20, 0xc2, 0xe3, 0x03, 0x20, 0x82, 0xe3, 0xf0, 0x20, 0x83, 0xe5, 0xf0, 0x20, 0x93, 0xe5, 0xf0, 0x20, 0xc2, 0xe3, 0x30, 0x20, 0x82, 0xe3, 0xf0, 0x20, 0x83, 0xe5, 0xf0, 0x20, 0x93, 0xe5, 0x0f, 0x2a, 0xc2, 0xe3, 0x03, 0x2a, 0x82, 0xe3, 0xf0, 0x20, 0x83, 0xe5, 0xf0, 0x20, 0x93, 0xe5, 0x0f, 0x26, 0xc2, 0xe3, 0x03, 0x26, 0x82, 0xe3, 0xf0, 0x20, 0x83, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, 0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x4e, 0x55, 0x00, 0xe4, 0x69, 0x4d, 0x72, 0xa6, 0x44, 0x29, 0x93, 0x6b, 0x31, 0xb1, 0x33, 0x26, 0xa9, 0xde, 0x4e, 0xce, 0x0e, 0x29, 0xd6, 0x2f, 0x6c, 0x69, 0x62, 0x2f, 0x6c, 0x64, 0x2d, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x2d, 0x61, 0x72, 0x6d, 0x68, 0x66, 0x2e, 0x73, 0x6f, 0x2e, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0xfe, 0xff, 0x6f, 0x1c, 0x81, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x18, 0x81, 0x02, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08, 0x81, 0x02, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xfb, 0xff, 0xff, 0x6f, 0x01, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x81, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; fel_write(ctx, 0x00028000, (void *)&payload[0], sizeof(payload)); fel_exec(ctx, 0x00028000); return 1; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { static const uint8_t r528_ddr_payload[] = { 0xf0, 0x00, 0x00, 0xea, 0x65, 0x47, 0x4f, 0x4e, 0x2e, 0x42, 0x54, 0x30, 0x85, 0xb7, 0xae, 0x1a, 0x00, 0x5e, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x33, 0x30, 0x30, 0x30, 0x40, 0x83, 0x02, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x2e, 0x30, 0x2e, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xfb, 0x7b, 0x7b, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd2, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x1c, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x95, 0x21, 0x4a, 0x00, 0x90, 0x31, 0x42, 0x02, 0x61, 0xb0, 0x08, 0x00, 0x96, 0x78, 0x78, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x48, 0x48, 0x48, 0x48, 0x48, 0x00, 0x00, 0x00, 0x1e, 0x12, 0x20, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x34, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x08, 0x06, 0x01, 0xff, 0xff, 0x00, 0x00, 0x02, 0x09, 0x06, 0x01, 0xff, 0xff, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x03, 0xff, 0xff, 0xff, 0x00, 0x00, 0x08, 0x0a, 0x03, 0xff, 0xff, 0xff, 0x00, 0x00, 0x08, 0x0b, 0x03, 0xff, 0xff, 0xff, 0x00, 0x00, 0x08, 0x0c, 0x03, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x02, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x03, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x04, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x05, 0x02, 0x01, 0x02, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x34, 0x64, 0x31, 0x36, 0x36, 0x30, 0x32, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xea, 0x00, 0x40, 0x2d, 0xe9, 0x05, 0x00, 0x00, 0xeb, 0x10, 0x0f, 0x11, 0xee, 0x01, 0x0a, 0x80, 0xe3, 0x10, 0x0f, 0x01, 0xee, 0x36, 0x13, 0x00, 0xfa, 0x00, 0x40, 0xbd, 0xe8, 0x0e, 0xf0, 0xa0, 0xe1, 0x18, 0x00, 0x9f, 0xe5, 0x18, 0x10, 0x9f, 0xe5, 0x00, 0x20, 0xa0, 0xe3, 0x00, 0x20, 0x80, 0xe5, 0x04, 0x00, 0x80, 0xe2, 0x01, 0x00, 0x50, 0xe1, 0xfb, 0xff, 0xff, 0x1a, 0x0e, 0xf0, 0xa0, 0xe1, 0x00, 0xde, 0x02, 0x00, 0x54, 0xde, 0x02, 0x00, 0x5f, 0xf0, 0x7f, 0xf5, 0x30, 0x0f, 0x30, 0xee, 0xa0, 0x3b, 0xa0, 0xe1, 0x0e, 0x30, 0x13, 0xe2, 0x1c, 0x00, 0x00, 0x0a, 0x00, 0xa0, 0xa0, 0xe3, 0xaa, 0x20, 0x8a, 0xe0, 0x30, 0x12, 0xa0, 0xe1, 0x07, 0x10, 0x01, 0xe2, 0x02, 0x00, 0x51, 0xe3, 0x13, 0x00, 0x00, 0xba, 0x10, 0xaf, 0x40, 0xee, 0x6f, 0xf0, 0x7f, 0xf5, 0x10, 0x1f, 0x30, 0xee, 0x07, 0x20, 0x01, 0xe2, 0x04, 0x20, 0x82, 0xe2, 0xff, 0x43, 0x00, 0xe3, 0xa1, 0x41, 0x14, 0xe0, 0x14, 0x5f, 0x6f, 0xe1, 0xff, 0x7f, 0x07, 0xe3, 0xa1, 0x76, 0x17, 0xe0, 0x07, 0x90, 0xa0, 0xe1, 0x14, 0x65, 0xa0, 0xe1, 0x06, 0xb0, 0x8a, 0xe1, 0x19, 0x62, 0xa0, 0xe1, 0x06, 0xb0, 0x8b, 0xe1, 0x5e, 0xbf, 0x07, 0xee, 0x01, 0x90, 0x59, 0xe2, 0xf8, 0xff, 0xff, 0xaa, 0x01, 0x40, 0x54, 0xe2, 0xf5, 0xff, 0xff, 0xaa, 0x02, 0xa0, 0x8a, 0xe2, 0x0a, 0x00, 0x53, 0xe1, 0xe3, 0xff, 0xff, 0xca, 0x00, 0xa0, 0xa0, 0xe3, 0x10, 0xaf, 0x40, 0xee, 0x4e, 0xf0, 0x7f, 0xf5, 0x6f, 0xf0, 0x7f, 0xf5, 0x1e, 0xff, 0x2f, 0xe1, 0xf0, 0x4e, 0x2d, 0xe9, 0xd6, 0xff, 0xff, 0xeb, 0xf0, 0x4e, 0xbd, 0xe8, 0x1e, 0xff, 0x2f, 0xe1, 0x04, 0x20, 0x52, 0xe2, 0x2c, 0x00, 0x00, 0xba, 0x02, 0x00, 0x53, 0xe3, 0x01, 0x10, 0xc0, 0xb4, 0x01, 0x10, 0xc0, 0xd4, 0x01, 0x10, 0xc0, 0xe4, 0x03, 0x20, 0x82, 0xe0, 0x03, 0x30, 0x10, 0xe2, 0xf6, 0xff, 0xff, 0x1a, 0x01, 0x14, 0x81, 0xe1, 0x01, 0x18, 0x81, 0xe1, 0x01, 0x30, 0xa0, 0xe1, 0x10, 0x00, 0x52, 0xe3, 0x1c, 0x00, 0x00, 0xba, 0xf0, 0x40, 0x2d, 0xe9, 0x01, 0x40, 0xa0, 0xe1, 0x01, 0x50, 0xa0, 0xe1, 0x01, 0x60, 0xa0, 0xe1, 0x01, 0x70, 0xa0, 0xe1, 0x01, 0xc0, 0xa0, 0xe1, 0x01, 0xe0, 0xa0, 0xe1, 0x60, 0x00, 0x52, 0xe3, 0x1f, 0x00, 0x10, 0xc3, 0x08, 0x00, 0x00, 0xda, 0x1f, 0xc0, 0x00, 0xe2, 0x20, 0xc0, 0x6c, 0xe2, 0x0c, 0x20, 0x42, 0xe0, 0x0c, 0xce, 0xb0, 0xe1, 0xf0, 0x00, 0xa0, 0x28, 0x30, 0x00, 0xa0, 0x48, 0x01, 0x01, 0x1c, 0xe3, 0x01, 0xc0, 0xa0, 0xe1, 0x04, 0x10, 0x80, 0x14, 0x40, 0x20, 0x52, 0xe2, 0xfa, 0x50, 0xa0, 0xa8, 0xfa, 0x50, 0xa0, 0xa8, 0xfb, 0xff, 0xff, 0xca, 0xf0, 0x80, 0xbd, 0x08, 0x20, 0x00, 0x12, 0xe3, 0xfa, 0x50, 0xa0, 0x18, 0x10, 0x00, 0x12, 0xe3, 0xf0, 0x00, 0xa0, 0x18, 0xf0, 0x40, 0xbd, 0xe8, 0x08, 0x00, 0x12, 0xe3, 0x0a, 0x00, 0xa0, 0x18, 0x04, 0x00, 0x12, 0xe3, 0x04, 0x10, 0x80, 0x14, 0x02, 0x00, 0x12, 0xe3, 0x01, 0x10, 0xc0, 0x14, 0x01, 0x10, 0xc0, 0x14, 0x01, 0x00, 0x12, 0xe3, 0x01, 0x10, 0xc0, 0x14, 0x3e, 0xff, 0x2f, 0xe1, 0x01, 0x00, 0x50, 0xe1, 0x0e, 0xf0, 0xa0, 0x01, 0x11, 0x40, 0x2d, 0xe9, 0x04, 0x20, 0x52, 0xe2, 0x33, 0x00, 0x00, 0xba, 0x03, 0xc0, 0x10, 0xe2, 0x00, 0xf0, 0xd1, 0xf5, 0x39, 0x00, 0x00, 0x1a, 0x03, 0xc0, 0x11, 0xe2, 0x43, 0x00, 0x00, 0x1a, 0x1c, 0x20, 0x52, 0xe2, 0xe0, 0x01, 0x2d, 0xe9, 0x13, 0x00, 0x00, 0xba, 0x1f, 0xc0, 0x10, 0xe2, 0x20, 0x30, 0x6c, 0xe2, 0x02, 0x40, 0xd3, 0x10, 0x03, 0x00, 0x00, 0x2a, 0x48, 0x40, 0x8f, 0xe2, 0x03, 0x20, 0x52, 0xe0, 0x0c, 0xf0, 0x84, 0xe0, 0x00, 0xf0, 0xd1, 0xf5, 0x60, 0x20, 0x52, 0xe2, 0x1c, 0xf0, 0xd1, 0xf5, 0x02, 0x00, 0x00, 0xba, 0x3c, 0xf0, 0xd1, 0xf5, 0x5c, 0xf0, 0xd1, 0xf5, 0x7c, 0xf0, 0xd1, 0xf5, 0xf8, 0x51, 0xb1, 0xe8, 0x20, 0x20, 0x52, 0xe2, 0xf8, 0x51, 0xa0, 0xe8, 0xfa, 0xff, 0xff, 0xaa, 0x60, 0x00, 0x72, 0xe3, 0xf9, 0xff, 0xff, 0xaa, 0x1c, 0xc0, 0x12, 0xe2, 0x20, 0xc0, 0x6c, 0xe2, 0x0c, 0xf0, 0x8f, 0x10, 0x12, 0x00, 0x00, 0xea, 0x00, 0xf0, 0x20, 0xe3, 0x04, 0x30, 0x91, 0xe4, 0x04, 0x40, 0x91, 0xe4, 0x04, 0x50, 0x91, 0xe4, 0x04, 0x60, 0x91, 0xe4, 0x04, 0x70, 0x91, 0xe4, 0x04, 0x80, 0x91, 0xe4, 0x04, 0xe0, 0x91, 0xe4, 0x0c, 0xf0, 0x8f, 0xe0, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0xf0, 0x20, 0xe3, 0x04, 0x30, 0x80, 0xe4, 0x04, 0x40, 0x80, 0xe4, 0x04, 0x50, 0x80, 0xe4, 0x04, 0x60, 0x80, 0xe4, 0x04, 0x70, 0x80, 0xe4, 0x04, 0x80, 0x80, 0xe4, 0x04, 0xe0, 0x80, 0xe4, 0xdc, 0xff, 0xff, 0x2a, 0xe0, 0x01, 0xbd, 0xe8, 0x82, 0x2f, 0xb0, 0xe1, 0x01, 0x30, 0xd1, 0x14, 0x01, 0x40, 0xd1, 0x24, 0x01, 0xc0, 0xd1, 0x24, 0x01, 0x30, 0xc0, 0x14, 0x01, 0x40, 0xc0, 0x24, 0x01, 0xc0, 0xc0, 0x24, 0x11, 0x40, 0xbd, 0xe8, 0x3e, 0xff, 0x2f, 0xe1, 0x04, 0xc0, 0x6c, 0xe2, 0x02, 0x00, 0x5c, 0xe3, 0x01, 0x30, 0xd1, 0xc4, 0x01, 0x40, 0xd1, 0xa4, 0x01, 0xe0, 0xd1, 0xe4, 0x01, 0x30, 0xc0, 0xc4, 0x01, 0x40, 0xc0, 0xa4, 0x0c, 0x20, 0x52, 0xe0, 0x01, 0xe0, 0xc0, 0xe4, 0xec, 0xff, 0xff, 0xba, 0x03, 0xc0, 0x11, 0xe2, 0xbb, 0xff, 0xff, 0x0a, 0x03, 0x10, 0xc1, 0xe3, 0x02, 0x00, 0x5c, 0xe3, 0x04, 0xe0, 0x91, 0xe4, 0x33, 0x00, 0x00, 0x0a, 0x65, 0x00, 0x00, 0xca, 0x1c, 0x20, 0x52, 0xe2, 0x24, 0x00, 0x00, 0xba, 0x1f, 0xc0, 0x10, 0xe2, 0x20, 0xc0, 0x6c, 0xe2, 0x02, 0x40, 0xdc, 0x10, 0x0c, 0x20, 0x42, 0x30, 0x21, 0x00, 0x00, 0x3a, 0xe0, 0x03, 0x2d, 0xe9, 0x00, 0xf0, 0xd1, 0xf5, 0x60, 0x20, 0x52, 0xe2, 0x1c, 0xf0, 0xd1, 0xf5, 0x02, 0x00, 0x00, 0xba, 0x3c, 0xf0, 0xd1, 0xf5, 0x5c, 0xf0, 0xd1, 0xf5, 0x7c, 0xf0, 0xd1, 0xf5, 0xf0, 0x00, 0xb1, 0xe8, 0x2e, 0x34, 0xa0, 0xe1, 0x20, 0x20, 0x52, 0xe2, 0x00, 0x53, 0xb1, 0xe8, 0x04, 0x3c, 0x83, 0xe1, 0x24, 0x44, 0xa0, 0xe1, 0x05, 0x4c, 0x84, 0xe1, 0x25, 0x54, 0xa0, 0xe1, 0x06, 0x5c, 0x85, 0xe1, 0x26, 0x64, 0xa0, 0xe1, 0x07, 0x6c, 0x86, 0xe1, 0x27, 0x74, 0xa0, 0xe1, 0x08, 0x7c, 0x87, 0xe1, 0x28, 0x84, 0xa0, 0xe1, 0x09, 0x8c, 0x88, 0xe1, 0x29, 0x94, 0xa0, 0xe1, 0x0c, 0x9c, 0x89, 0xe1, 0x2c, 0xc4, 0xa0, 0xe1, 0x0e, 0xcc, 0x8c, 0xe1, 0xf8, 0x13, 0xa0, 0xe8, 0xe9, 0xff, 0xff, 0xaa, 0x60, 0x00, 0x72, 0xe3, 0xe8, 0xff, 0xff, 0xaa, 0xe0, 0x03, 0xbd, 0xe8, 0x1c, 0xc0, 0x12, 0xe2, 0x07, 0x00, 0x00, 0x0a, 0x2e, 0x34, 0xa0, 0xe1, 0x04, 0xe0, 0x91, 0xe4, 0x04, 0xc0, 0x5c, 0xe2, 0x0e, 0x3c, 0x83, 0xe1, 0x04, 0x30, 0x80, 0xe4, 0xf9, 0xff, 0xff, 0xca, 0x00, 0x00, 0x52, 0xe3, 0xd5, 0xff, 0xff, 0xaa, 0x03, 0x10, 0x41, 0xe2, 0xb2, 0xff, 0xff, 0xea, 0x1c, 0x20, 0x52, 0xe2, 0x24, 0x00, 0x00, 0xba, 0x1f, 0xc0, 0x10, 0xe2, 0x20, 0xc0, 0x6c, 0xe2, 0x02, 0x40, 0xdc, 0x10, 0x0c, 0x20, 0x42, 0x30, 0x21, 0x00, 0x00, 0x3a, 0xe0, 0x03, 0x2d, 0xe9, 0x00, 0xf0, 0xd1, 0xf5, 0x60, 0x20, 0x52, 0xe2, 0x1c, 0xf0, 0xd1, 0xf5, 0x02, 0x00, 0x00, 0xba, 0x3c, 0xf0, 0xd1, 0xf5, 0x5c, 0xf0, 0xd1, 0xf5, 0x7c, 0xf0, 0xd1, 0xf5, 0xf0, 0x00, 0xb1, 0xe8, 0x2e, 0x38, 0xa0, 0xe1, 0x20, 0x20, 0x52, 0xe2, 0x00, 0x53, 0xb1, 0xe8, 0x04, 0x38, 0x83, 0xe1, 0x24, 0x48, 0xa0, 0xe1, 0x05, 0x48, 0x84, 0xe1, 0x25, 0x58, 0xa0, 0xe1, 0x06, 0x58, 0x85, 0xe1, 0x26, 0x68, 0xa0, 0xe1, 0x07, 0x68, 0x86, 0xe1, 0x27, 0x78, 0xa0, 0xe1, 0x08, 0x78, 0x87, 0xe1, 0x28, 0x88, 0xa0, 0xe1, 0x09, 0x88, 0x88, 0xe1, 0x29, 0x98, 0xa0, 0xe1, 0x0c, 0x98, 0x89, 0xe1, 0x2c, 0xc8, 0xa0, 0xe1, 0x0e, 0xc8, 0x8c, 0xe1, 0xf8, 0x13, 0xa0, 0xe8, 0xe9, 0xff, 0xff, 0xaa, 0x60, 0x00, 0x72, 0xe3, 0xe8, 0xff, 0xff, 0xaa, 0xe0, 0x03, 0xbd, 0xe8, 0x1c, 0xc0, 0x12, 0xe2, 0x07, 0x00, 0x00, 0x0a, 0x2e, 0x38, 0xa0, 0xe1, 0x04, 0xe0, 0x91, 0xe4, 0x04, 0xc0, 0x5c, 0xe2, 0x0e, 0x38, 0x83, 0xe1, 0x04, 0x30, 0x80, 0xe4, 0xf9, 0xff, 0xff, 0xca, 0x00, 0x00, 0x52, 0xe3, 0xd5, 0xff, 0xff, 0xaa, 0x02, 0x10, 0x41, 0xe2, 0x7f, 0xff, 0xff, 0xea, 0x1c, 0x20, 0x52, 0xe2, 0x24, 0x00, 0x00, 0xba, 0x1f, 0xc0, 0x10, 0xe2, 0x20, 0xc0, 0x6c, 0xe2, 0x02, 0x40, 0xdc, 0x10, 0x0c, 0x20, 0x42, 0x30, 0x21, 0x00, 0x00, 0x3a, 0xe0, 0x03, 0x2d, 0xe9, 0x00, 0xf0, 0xd1, 0xf5, 0x60, 0x20, 0x52, 0xe2, 0x1c, 0xf0, 0xd1, 0xf5, 0x02, 0x00, 0x00, 0xba, 0x3c, 0xf0, 0xd1, 0xf5, 0x5c, 0xf0, 0xd1, 0xf5, 0x7c, 0xf0, 0xd1, 0xf5, 0xf0, 0x00, 0xb1, 0xe8, 0x2e, 0x3c, 0xa0, 0xe1, 0x20, 0x20, 0x52, 0xe2, 0x00, 0x53, 0xb1, 0xe8, 0x04, 0x34, 0x83, 0xe1, 0x24, 0x4c, 0xa0, 0xe1, 0x05, 0x44, 0x84, 0xe1, 0x25, 0x5c, 0xa0, 0xe1, 0x06, 0x54, 0x85, 0xe1, 0x26, 0x6c, 0xa0, 0xe1, 0x07, 0x64, 0x86, 0xe1, 0x27, 0x7c, 0xa0, 0xe1, 0x08, 0x74, 0x87, 0xe1, 0x28, 0x8c, 0xa0, 0xe1, 0x09, 0x84, 0x88, 0xe1, 0x29, 0x9c, 0xa0, 0xe1, 0x0c, 0x94, 0x89, 0xe1, 0x2c, 0xcc, 0xa0, 0xe1, 0x0e, 0xc4, 0x8c, 0xe1, 0xf8, 0x13, 0xa0, 0xe8, 0xe9, 0xff, 0xff, 0xaa, 0x60, 0x00, 0x72, 0xe3, 0xe8, 0xff, 0xff, 0xaa, 0xe0, 0x03, 0xbd, 0xe8, 0x1c, 0xc0, 0x12, 0xe2, 0x07, 0x00, 0x00, 0x0a, 0x2e, 0x3c, 0xa0, 0xe1, 0x04, 0xe0, 0x91, 0xe4, 0x04, 0xc0, 0x5c, 0xe2, 0x0e, 0x34, 0x83, 0xe1, 0x04, 0x30, 0x80, 0xe4, 0xf9, 0xff, 0xff, 0xca, 0x00, 0x00, 0x52, 0xe3, 0xd5, 0xff, 0xff, 0xaa, 0x01, 0x10, 0x41, 0xe2, 0x4c, 0xff, 0xff, 0xea, 0x07, 0x4a, 0x80, 0xea, 0x01, 0x20, 0x08, 0x23, 0x00, 0xf4, 0x00, 0x41, 0x40, 0x00, 0x80, 0xb2, 0x09, 0xb1, 0x50, 0x40, 0x80, 0xb2, 0x01, 0x3b, 0x9b, 0xb2, 0x00, 0x2b, 0xf4, 0xd1, 0x70, 0x47, 0x05, 0x80, 0xff, 0xff, 0x38, 0xb5, 0x05, 0x46, 0x0c, 0x46, 0x2c, 0x19, 0xff, 0xf7, 0xe8, 0xff, 0x44, 0xea, 0x00, 0x40, 0x38, 0xbd, 0x08, 0x4a, 0x82, 0xb0, 0x00, 0x23, 0x01, 0x93, 0x12, 0x68, 0x02, 0xf0, 0x07, 0x02, 0x01, 0x92, 0x01, 0x9a, 0x1a, 0xb9, 0x01, 0x21, 0x02, 0xb0, 0xff, 0xf7, 0xe9, 0xbf, 0x18, 0x46, 0x02, 0xb0, 0x70, 0x47, 0x04, 0x50, 0xc1, 0x01, 0x4a, 0x1e, 0x08, 0xbf, 0x70, 0x47, 0xc0, 0xf0, 0x24, 0x81, 0x88, 0x42, 0x40, 0xf2, 0x16, 0x81, 0x11, 0x42, 0x00, 0xf0, 0x17, 0x81, 0xb0, 0xfa, 0x80, 0xf3, 0xb1, 0xfa, 0x81, 0xf2, 0xa2, 0xeb, 0x03, 0x03, 0xc3, 0xf1, 0x1f, 0x03, 0x04, 0xa2, 0x02, 0xeb, 0x03, 0x13, 0x4f, 0xf0, 0x00, 0x02, 0x9f, 0x46, 0x00, 0xbf, 0xaf, 0xf3, 0x00, 0x80, 0xb0, 0xeb, 0xc1, 0x7f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x70, 0xb0, 0xeb, 0x81, 0x7f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x70, 0xb0, 0xeb, 0x41, 0x7f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x70, 0xb0, 0xeb, 0x01, 0x7f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x70, 0xb0, 0xeb, 0xc1, 0x6f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x60, 0xb0, 0xeb, 0x81, 0x6f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x60, 0xb0, 0xeb, 0x41, 0x6f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x60, 0xb0, 0xeb, 0x01, 0x6f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x60, 0xb0, 0xeb, 0xc1, 0x5f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x50, 0xb0, 0xeb, 0x81, 0x5f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x50, 0xb0, 0xeb, 0x41, 0x5f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x50, 0xb0, 0xeb, 0x01, 0x5f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x50, 0xb0, 0xeb, 0xc1, 0x4f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x40, 0xb0, 0xeb, 0x81, 0x4f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x40, 0xb0, 0xeb, 0x41, 0x4f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x40, 0xb0, 0xeb, 0x01, 0x4f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x40, 0xb0, 0xeb, 0xc1, 0x3f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x30, 0xb0, 0xeb, 0x81, 0x3f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x30, 0xb0, 0xeb, 0x41, 0x3f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x30, 0xb0, 0xeb, 0x01, 0x3f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x30, 0xb0, 0xeb, 0xc1, 0x2f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x20, 0xb0, 0xeb, 0x81, 0x2f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x20, 0xb0, 0xeb, 0x41, 0x2f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x20, 0xb0, 0xeb, 0x01, 0x2f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x20, 0xb0, 0xeb, 0xc1, 0x1f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x10, 0xb0, 0xeb, 0x81, 0x1f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x10, 0xb0, 0xeb, 0x41, 0x1f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x10, 0xb0, 0xeb, 0x01, 0x1f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x10, 0xb0, 0xeb, 0xc1, 0x0f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x00, 0xb0, 0xeb, 0x81, 0x0f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x00, 0xb0, 0xeb, 0x41, 0x0f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x00, 0xb0, 0xeb, 0x01, 0x0f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x00, 0x10, 0x46, 0x70, 0x47, 0x0c, 0xbf, 0x01, 0x20, 0x00, 0x20, 0x70, 0x47, 0xb1, 0xfa, 0x81, 0xf2, 0xc2, 0xf1, 0x1f, 0x02, 0x20, 0xfa, 0x02, 0xf0, 0x70, 0x47, 0x08, 0xb1, 0x4f, 0xf0, 0xff, 0x30, 0x00, 0xf0, 0xea, 0xbb, 0x00, 0x29, 0xf8, 0xd0, 0x2d, 0xe9, 0x03, 0x40, 0xff, 0xf7, 0xcc, 0xfe, 0xbd, 0xe8, 0x06, 0x40, 0x02, 0xfb, 0x00, 0xf3, 0xa1, 0xeb, 0x03, 0x01, 0x70, 0x47, 0x00, 0xbf, 0x00, 0x29, 0x00, 0xf0, 0x3e, 0x81, 0x80, 0xea, 0x01, 0x0c, 0x48, 0xbf, 0x49, 0x42, 0x4a, 0x1e, 0x00, 0xf0, 0x1f, 0x81, 0x03, 0x00, 0x48, 0xbf, 0x43, 0x42, 0x8b, 0x42, 0x40, 0xf2, 0x1e, 0x81, 0x11, 0x42, 0x00, 0xf0, 0x23, 0x81, 0xb3, 0xfa, 0x83, 0xf2, 0xb1, 0xfa, 0x81, 0xf0, 0xa0, 0xeb, 0x02, 0x02, 0xc2, 0xf1, 0x1f, 0x02, 0x04, 0xa0, 0x00, 0xeb, 0x02, 0x12, 0x4f, 0xf0, 0x00, 0x00, 0x97, 0x46, 0x00, 0xbf, 0xaf, 0xf3, 0x00, 0x80, 0xb3, 0xeb, 0xc1, 0x7f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x73, 0xb3, 0xeb, 0x81, 0x7f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x73, 0xb3, 0xeb, 0x41, 0x7f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x73, 0xb3, 0xeb, 0x01, 0x7f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x73, 0xb3, 0xeb, 0xc1, 0x6f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x63, 0xb3, 0xeb, 0x81, 0x6f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x63, 0xb3, 0xeb, 0x41, 0x6f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x63, 0xb3, 0xeb, 0x01, 0x6f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x63, 0xb3, 0xeb, 0xc1, 0x5f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x53, 0xb3, 0xeb, 0x81, 0x5f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x53, 0xb3, 0xeb, 0x41, 0x5f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x53, 0xb3, 0xeb, 0x01, 0x5f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x53, 0xb3, 0xeb, 0xc1, 0x4f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x43, 0xb3, 0xeb, 0x81, 0x4f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x43, 0xb3, 0xeb, 0x41, 0x4f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x43, 0xb3, 0xeb, 0x01, 0x4f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x43, 0xb3, 0xeb, 0xc1, 0x3f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x33, 0xb3, 0xeb, 0x81, 0x3f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x33, 0xb3, 0xeb, 0x41, 0x3f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x33, 0xb3, 0xeb, 0x01, 0x3f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x33, 0xb3, 0xeb, 0xc1, 0x2f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x23, 0xb3, 0xeb, 0x81, 0x2f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x23, 0xb3, 0xeb, 0x41, 0x2f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x23, 0xb3, 0xeb, 0x01, 0x2f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x23, 0xb3, 0xeb, 0xc1, 0x1f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x13, 0xb3, 0xeb, 0x81, 0x1f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x13, 0xb3, 0xeb, 0x41, 0x1f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x13, 0xb3, 0xeb, 0x01, 0x1f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x13, 0xb3, 0xeb, 0xc1, 0x0f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x03, 0xb3, 0xeb, 0x81, 0x0f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x03, 0xb3, 0xeb, 0x41, 0x0f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x03, 0xb3, 0xeb, 0x01, 0x0f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x03, 0xbc, 0xf1, 0x00, 0x0f, 0x48, 0xbf, 0x40, 0x42, 0x70, 0x47, 0x9c, 0xea, 0x00, 0x0f, 0x48, 0xbf, 0x40, 0x42, 0x70, 0x47, 0x38, 0xbf, 0x00, 0x20, 0x04, 0xbf, 0x4f, 0xea, 0xec, 0x70, 0x40, 0xf0, 0x01, 0x00, 0x70, 0x47, 0xb1, 0xfa, 0x81, 0xf2, 0xc2, 0xf1, 0x1f, 0x02, 0xbc, 0xf1, 0x00, 0x0f, 0x23, 0xfa, 0x02, 0xf0, 0x48, 0xbf, 0x40, 0x42, 0x70, 0x47, 0x00, 0x28, 0xc8, 0xbf, 0x6f, 0xf0, 0x00, 0x40, 0xb8, 0xbf, 0x4f, 0xf0, 0x00, 0x40, 0x00, 0xf0, 0x92, 0xba, 0x00, 0x29, 0xf4, 0xd0, 0x2d, 0xe9, 0x03, 0x40, 0xff, 0xf7, 0xb3, 0xfe, 0xbd, 0xe8, 0x06, 0x40, 0x02, 0xfb, 0x00, 0xf3, 0xa1, 0xeb, 0x03, 0x01, 0x70, 0x47, 0x00, 0xbf, 0x80, 0xf0, 0x00, 0x40, 0x02, 0xe0, 0x00, 0xbf, 0x81, 0xf0, 0x00, 0x41, 0x42, 0x00, 0x1f, 0xbf, 0x5f, 0xea, 0x41, 0x03, 0x92, 0xea, 0x03, 0x0f, 0x7f, 0xea, 0x22, 0x6c, 0x7f, 0xea, 0x23, 0x6c, 0x6a, 0xd0, 0x4f, 0xea, 0x12, 0x62, 0xd2, 0xeb, 0x13, 0x63, 0xc1, 0xbf, 0xd2, 0x18, 0x41, 0x40, 0x48, 0x40, 0x41, 0x40, 0xb8, 0xbf, 0x5b, 0x42, 0x19, 0x2b, 0x88, 0xbf, 0x70, 0x47, 0x10, 0xf0, 0x00, 0x4f, 0x40, 0xf4, 0x00, 0x00, 0x20, 0xf0, 0x7f, 0x40, 0x18, 0xbf, 0x40, 0x42, 0x11, 0xf0, 0x00, 0x4f, 0x41, 0xf4, 0x00, 0x01, 0x21, 0xf0, 0x7f, 0x41, 0x18, 0xbf, 0x49, 0x42, 0x92, 0xea, 0x03, 0x0f, 0x3f, 0xd0, 0xa2, 0xf1, 0x01, 0x02, 0x41, 0xfa, 0x03, 0xfc, 0x10, 0xeb, 0x0c, 0x00, 0xc3, 0xf1, 0x20, 0x03, 0x01, 0xfa, 0x03, 0xf1, 0x00, 0xf0, 0x00, 0x43, 0x02, 0xd5, 0x49, 0x42, 0x60, 0xeb, 0x40, 0x00, 0xb0, 0xf5, 0x00, 0x0f, 0x13, 0xd3, 0xb0, 0xf1, 0x80, 0x7f, 0x06, 0xd3, 0x40, 0x08, 0x4f, 0xea, 0x31, 0x01, 0x02, 0xf1, 0x01, 0x02, 0xfe, 0x2a, 0x51, 0xd2, 0xb1, 0xf1, 0x00, 0x4f, 0x40, 0xeb, 0xc2, 0x50, 0x08, 0xbf, 0x20, 0xf0, 0x01, 0x00, 0x40, 0xea, 0x03, 0x00, 0x70, 0x47, 0x49, 0x00, 0x40, 0xeb, 0x00, 0x00, 0x10, 0xf4, 0x00, 0x0f, 0xa2, 0xf1, 0x01, 0x02, 0xed, 0xd1, 0xb0, 0xfa, 0x80, 0xfc, 0xac, 0xf1, 0x08, 0x0c, 0xb2, 0xeb, 0x0c, 0x02, 0x00, 0xfa, 0x0c, 0xf0, 0xaa, 0xbf, 0x00, 0xeb, 0xc2, 0x50, 0x52, 0x42, 0x18, 0x43, 0xbc, 0xbf, 0xd0, 0x40, 0x18, 0x43, 0x70, 0x47, 0x92, 0xf0, 0x00, 0x0f, 0x81, 0xf4, 0x00, 0x01, 0x06, 0xbf, 0x80, 0xf4, 0x00, 0x00, 0x01, 0x32, 0x01, 0x3b, 0xb5, 0xe7, 0x4f, 0xea, 0x41, 0x03, 0x7f, 0xea, 0x22, 0x6c, 0x18, 0xbf, 0x7f, 0xea, 0x23, 0x6c, 0x21, 0xd0, 0x92, 0xea, 0x03, 0x0f, 0x04, 0xd0, 0x92, 0xf0, 0x00, 0x0f, 0x08, 0xbf, 0x08, 0x46, 0x70, 0x47, 0x90, 0xea, 0x01, 0x0f, 0x1c, 0xbf, 0x00, 0x20, 0x70, 0x47, 0x12, 0xf0, 0x7f, 0x4f, 0x04, 0xd1, 0x40, 0x00, 0x28, 0xbf, 0x40, 0xf0, 0x00, 0x40, 0x70, 0x47, 0x12, 0xf1, 0x00, 0x72, 0x3c, 0xbf, 0x00, 0xf5, 0x00, 0x00, 0x70, 0x47, 0x00, 0xf0, 0x00, 0x43, 0x43, 0xf0, 0xfe, 0x40, 0x40, 0xf4, 0x00, 0x00, 0x70, 0x47, 0x7f, 0xea, 0x22, 0x62, 0x16, 0xbf, 0x08, 0x46, 0x7f, 0xea, 0x23, 0x63, 0x01, 0x46, 0x42, 0x02, 0x06, 0xbf, 0x5f, 0xea, 0x41, 0x23, 0x90, 0xea, 0x01, 0x0f, 0x40, 0xf4, 0x80, 0x00, 0x70, 0x47, 0x4f, 0xf0, 0x00, 0x03, 0x04, 0xe0, 0x00, 0xbf, 0x10, 0xf0, 0x00, 0x43, 0x48, 0xbf, 0x40, 0x42, 0x5f, 0xea, 0x00, 0x0c, 0x08, 0xbf, 0x70, 0x47, 0x43, 0xf0, 0x96, 0x43, 0x01, 0x46, 0x4f, 0xf0, 0x00, 0x00, 0x1c, 0xe0, 0x50, 0xea, 0x01, 0x02, 0x08, 0xbf, 0x70, 0x47, 0x4f, 0xf0, 0x00, 0x03, 0x0a, 0xe0, 0x00, 0xbf, 0x50, 0xea, 0x01, 0x02, 0x08, 0xbf, 0x70, 0x47, 0x11, 0xf0, 0x00, 0x43, 0x02, 0xd5, 0x40, 0x42, 0x61, 0xeb, 0x41, 0x01, 0x5f, 0xea, 0x01, 0x0c, 0x02, 0xbf, 0x84, 0x46, 0x01, 0x46, 0x00, 0x20, 0x43, 0xf0, 0xb6, 0x43, 0x08, 0xbf, 0xa3, 0xf1, 0x80, 0x53, 0xa3, 0xf5, 0x00, 0x03, 0xbc, 0xfa, 0x8c, 0xf2, 0x08, 0x3a, 0xa3, 0xeb, 0xc2, 0x53, 0x10, 0xdb, 0x01, 0xfa, 0x02, 0xfc, 0x63, 0x44, 0x00, 0xfa, 0x02, 0xfc, 0xc2, 0xf1, 0x20, 0x02, 0xbc, 0xf1, 0x00, 0x4f, 0x20, 0xfa, 0x02, 0xf2, 0x43, 0xeb, 0x02, 0x00, 0x08, 0xbf, 0x20, 0xf0, 0x01, 0x00, 0x70, 0x47, 0x02, 0xf1, 0x20, 0x02, 0x01, 0xfa, 0x02, 0xfc, 0xc2, 0xf1, 0x20, 0x02, 0x50, 0xea, 0x4c, 0x00, 0x21, 0xfa, 0x02, 0xf2, 0x43, 0xeb, 0x02, 0x00, 0x08, 0xbf, 0x20, 0xea, 0xdc, 0x70, 0x70, 0x47, 0x4f, 0xf0, 0xff, 0x0c, 0x1c, 0xea, 0xd0, 0x52, 0x1e, 0xbf, 0x1c, 0xea, 0xd1, 0x53, 0x92, 0xea, 0x0c, 0x0f, 0x93, 0xea, 0x0c, 0x0f, 0x6f, 0xd0, 0x1a, 0x44, 0x80, 0xea, 0x01, 0x0c, 0x40, 0x02, 0x18, 0xbf, 0x5f, 0xea, 0x41, 0x21, 0x1e, 0xd0, 0x4f, 0xf0, 0x00, 0x63, 0x43, 0xea, 0x50, 0x10, 0x43, 0xea, 0x51, 0x11, 0xa0, 0xfb, 0x01, 0x31, 0x0c, 0xf0, 0x00, 0x40, 0xb1, 0xf5, 0x00, 0x0f, 0x3e, 0xbf, 0x49, 0x00, 0x41, 0xea, 0xd3, 0x71, 0x5b, 0x00, 0x40, 0xea, 0x01, 0x00, 0x62, 0xf1, 0x7f, 0x02, 0xfd, 0x2a, 0x1d, 0xd8, 0xb3, 0xf1, 0x00, 0x4f, 0x40, 0xeb, 0xc2, 0x50, 0x08, 0xbf, 0x20, 0xf0, 0x01, 0x00, 0x70, 0x47, 0x90, 0xf0, 0x00, 0x0f, 0x0c, 0xf0, 0x00, 0x4c, 0x08, 0xbf, 0x49, 0x02, 0x4c, 0xea, 0x50, 0x20, 0x40, 0xea, 0x51, 0x20, 0x7f, 0x3a, 0xc2, 0xbf, 0xd2, 0xf1, 0xff, 0x03, 0x40, 0xea, 0xc2, 0x50, 0x70, 0x47, 0x40, 0xf4, 0x00, 0x00, 0x4f, 0xf0, 0x00, 0x03, 0x01, 0x3a, 0x5d, 0xdc, 0x12, 0xf1, 0x19, 0x0f, 0xdc, 0xbf, 0x00, 0xf0, 0x00, 0x40, 0x70, 0x47, 0xc2, 0xf1, 0x00, 0x02, 0x41, 0x00, 0x21, 0xfa, 0x02, 0xf1, 0xc2, 0xf1, 0x20, 0x02, 0x00, 0xfa, 0x02, 0xfc, 0x5f, 0xea, 0x31, 0x00, 0x40, 0xf1, 0x00, 0x00, 0x53, 0xea, 0x4c, 0x03, 0x08, 0xbf, 0x20, 0xea, 0xdc, 0x70, 0x70, 0x47, 0x92, 0xf0, 0x00, 0x0f, 0x00, 0xf0, 0x00, 0x4c, 0x02, 0xbf, 0x40, 0x00, 0x10, 0xf4, 0x00, 0x0f, 0x01, 0x3a, 0xf9, 0xd0, 0x40, 0xea, 0x0c, 0x00, 0x93, 0xf0, 0x00, 0x0f, 0x01, 0xf0, 0x00, 0x4c, 0x02, 0xbf, 0x49, 0x00, 0x11, 0xf4, 0x00, 0x0f, 0x01, 0x3b, 0xf9, 0xd0, 0x41, 0xea, 0x0c, 0x01, 0x8f, 0xe7, 0x0c, 0xea, 0xd1, 0x53, 0x92, 0xea, 0x0c, 0x0f, 0x18, 0xbf, 0x93, 0xea, 0x0c, 0x0f, 0x0a, 0xd0, 0x30, 0xf0, 0x00, 0x4c, 0x18, 0xbf, 0x31, 0xf0, 0x00, 0x4c, 0xd8, 0xd1, 0x80, 0xea, 0x01, 0x00, 0x00, 0xf0, 0x00, 0x40, 0x70, 0x47, 0x90, 0xf0, 0x00, 0x0f, 0x17, 0xbf, 0x90, 0xf0, 0x00, 0x4f, 0x08, 0x46, 0x91, 0xf0, 0x00, 0x0f, 0x91, 0xf0, 0x00, 0x4f, 0x14, 0xd0, 0x92, 0xea, 0x0c, 0x0f, 0x01, 0xd1, 0x42, 0x02, 0x0f, 0xd1, 0x93, 0xea, 0x0c, 0x0f, 0x03, 0xd1, 0x4b, 0x02, 0x18, 0xbf, 0x08, 0x46, 0x08, 0xd1, 0x80, 0xea, 0x01, 0x00, 0x00, 0xf0, 0x00, 0x40, 0x40, 0xf0, 0xfe, 0x40, 0x40, 0xf4, 0x00, 0x00, 0x70, 0x47, 0x40, 0xf0, 0xfe, 0x40, 0x40, 0xf4, 0x40, 0x00, 0x70, 0x47, 0x4f, 0xf0, 0xff, 0x0c, 0x1c, 0xea, 0xd0, 0x52, 0x1e, 0xbf, 0x1c, 0xea, 0xd1, 0x53, 0x92, 0xea, 0x0c, 0x0f, 0x93, 0xea, 0x0c, 0x0f, 0x69, 0xd0, 0xa2, 0xeb, 0x03, 0x02, 0x80, 0xea, 0x01, 0x0c, 0x49, 0x02, 0x4f, 0xea, 0x40, 0x20, 0x37, 0xd0, 0x4f, 0xf0, 0x80, 0x53, 0x43, 0xea, 0x11, 0x11, 0x43, 0xea, 0x10, 0x13, 0x0c, 0xf0, 0x00, 0x40, 0x8b, 0x42, 0x38, 0xbf, 0x5b, 0x00, 0x42, 0xf1, 0x7d, 0x02, 0x4f, 0xf4, 0x00, 0x0c, 0x8b, 0x42, 0x24, 0xbf, 0x5b, 0x1a, 0x40, 0xea, 0x0c, 0x00, 0xb3, 0xeb, 0x51, 0x0f, 0x24, 0xbf, 0xa3, 0xeb, 0x51, 0x03, 0x40, 0xea, 0x5c, 0x00, 0xb3, 0xeb, 0x91, 0x0f, 0x24, 0xbf, 0xa3, 0xeb, 0x91, 0x03, 0x40, 0xea, 0x9c, 0x00, 0xb3, 0xeb, 0xd1, 0x0f, 0x24, 0xbf, 0xa3, 0xeb, 0xd1, 0x03, 0x40, 0xea, 0xdc, 0x00, 0x1b, 0x01, 0x18, 0xbf, 0x5f, 0xea, 0x1c, 0x1c, 0xe0, 0xd1, 0xfd, 0x2a, 0x3f, 0xf6, 0x50, 0xaf, 0x8b, 0x42, 0x40, 0xeb, 0xc2, 0x50, 0x08, 0xbf, 0x20, 0xf0, 0x01, 0x00, 0x70, 0x47, 0x0c, 0xf0, 0x00, 0x4c, 0x4c, 0xea, 0x50, 0x20, 0x7f, 0x32, 0xc2, 0xbf, 0xd2, 0xf1, 0xff, 0x03, 0x40, 0xea, 0xc2, 0x50, 0x70, 0x47, 0x40, 0xf4, 0x00, 0x00, 0x4f, 0xf0, 0x00, 0x03, 0x01, 0x3a, 0x37, 0xe7, 0x92, 0xf0, 0x00, 0x0f, 0x00, 0xf0, 0x00, 0x4c, 0x02, 0xbf, 0x40, 0x00, 0x10, 0xf4, 0x00, 0x0f, 0x01, 0x3a, 0xf9, 0xd0, 0x40, 0xea, 0x0c, 0x00, 0x93, 0xf0, 0x00, 0x0f, 0x01, 0xf0, 0x00, 0x4c, 0x02, 0xbf, 0x49, 0x00, 0x11, 0xf4, 0x00, 0x0f, 0x01, 0x3b, 0xf9, 0xd0, 0x41, 0xea, 0x0c, 0x01, 0x95, 0xe7, 0x0c, 0xea, 0xd1, 0x53, 0x92, 0xea, 0x0c, 0x0f, 0x08, 0xd1, 0x42, 0x02, 0x7f, 0xf4, 0x7d, 0xaf, 0x93, 0xea, 0x0c, 0x0f, 0x7f, 0xf4, 0x70, 0xaf, 0x08, 0x46, 0x76, 0xe7, 0x93, 0xea, 0x0c, 0x0f, 0x04, 0xd1, 0x4b, 0x02, 0x3f, 0xf4, 0x4c, 0xaf, 0x08, 0x46, 0x6e, 0xe7, 0x30, 0xf0, 0x00, 0x4c, 0x18, 0xbf, 0x31, 0xf0, 0x00, 0x4c, 0xca, 0xd1, 0x30, 0xf0, 0x00, 0x42, 0x7f, 0xf4, 0x5c, 0xaf, 0x31, 0xf0, 0x00, 0x43, 0x7f, 0xf4, 0x3c, 0xaf, 0x5f, 0xe7, 0x00, 0xbf, 0x4f, 0xea, 0x40, 0x02, 0xb2, 0xf1, 0xfe, 0x4f, 0x0f, 0xd3, 0x4f, 0xf0, 0x9e, 0x03, 0xb3, 0xeb, 0x12, 0x62, 0x0d, 0xd9, 0x4f, 0xea, 0x00, 0x23, 0x43, 0xf0, 0x00, 0x43, 0x10, 0xf0, 0x00, 0x4f, 0x23, 0xfa, 0x02, 0xf0, 0x18, 0xbf, 0x40, 0x42, 0x70, 0x47, 0x4f, 0xf0, 0x00, 0x00, 0x70, 0x47, 0x12, 0xf1, 0x61, 0x0f, 0x01, 0xd1, 0x42, 0x02, 0x05, 0xd1, 0x10, 0xf0, 0x00, 0x40, 0x08, 0xbf, 0x6f, 0xf0, 0x00, 0x40, 0x70, 0x47, 0x4f, 0xf0, 0x00, 0x00, 0x70, 0x47, 0x02, 0xb5, 0x4f, 0xf0, 0x08, 0x00, 0x00, 0xf0, 0xf1, 0xfd, 0x02, 0xbd, 0x53, 0xec, 0x0e, 0x2f, 0x02, 0x4b, 0xa2, 0xfb, 0x03, 0x23, 0x58, 0x0a, 0x70, 0x47, 0x00, 0xbf, 0xf1, 0x19, 0x76, 0x05, 0x53, 0xec, 0x0e, 0x2f, 0x02, 0x4b, 0xa2, 0xfb, 0x03, 0x23, 0x18, 0x09, 0x70, 0x47, 0x00, 0xbf, 0xab, 0xaa, 0xaa, 0xaa, 0x2d, 0xe9, 0x70, 0x48, 0x51, 0xec, 0x0e, 0x6f, 0x8c, 0x46, 0x18, 0x21, 0x48, 0x43, 0x32, 0x18, 0x4c, 0xf1, 0x00, 0x03, 0x51, 0xec, 0x0e, 0x0f, 0x8b, 0x42, 0x08, 0xbf, 0x82, 0x42, 0xf9, 0xd2, 0xbd, 0xe8, 0x70, 0x88, 0x4f, 0xf4, 0x7a, 0x73, 0x58, 0x43, 0xff, 0xf7, 0xe9, 0xbf, 0xff, 0xf7, 0xe7, 0xbf, 0xff, 0xf7, 0xf7, 0xbf, 0x00, 0x20, 0x70, 0x47, 0x01, 0x38, 0xfd, 0xd1, 0x70, 0x47, 0x70, 0x47, 0x11, 0xee, 0x30, 0x0f, 0x40, 0xf0, 0x40, 0x00, 0x01, 0xee, 0x30, 0x0f, 0x70, 0x47, 0xb0, 0xf5, 0x00, 0x6f, 0x40, 0xf6, 0xea, 0x53, 0x28, 0xbf, 0x4f, 0xf4, 0x00, 0x60, 0x10, 0xb5, 0x00, 0x05, 0x40, 0xf6, 0xe2, 0x54, 0x00, 0xf1, 0x7f, 0x50, 0x00, 0xf5, 0x40, 0x10, 0x02, 0x46, 0x42, 0xf8, 0x04, 0x3b, 0x4f, 0xf4, 0x80, 0x13, 0x43, 0xea, 0x04, 0x01, 0x03, 0xf5, 0x80, 0x13, 0xb3, 0xf1, 0x80, 0x4f, 0x42, 0xf8, 0x04, 0x1b, 0xf6, 0xd1, 0x00, 0xf5, 0x80, 0x52, 0x40, 0xf6, 0xea, 0x54, 0x43, 0xea, 0x04, 0x01, 0x13, 0xf5, 0x80, 0x13, 0x42, 0xf8, 0x04, 0x1b, 0xf8, 0xd1, 0x08, 0xee, 0x17, 0x3f, 0x40, 0xf0, 0x13, 0x00, 0x02, 0xee, 0x10, 0x0f, 0x02, 0xee, 0x30, 0x0f, 0x4f, 0xf0, 0x55, 0x33, 0x03, 0xee, 0x10, 0x3f, 0xbf, 0xf3, 0x6f, 0x8f, 0x11, 0xee, 0x10, 0x4f, 0x64, 0x20, 0xff, 0xf7, 0x9d, 0xff, 0x24, 0xf0, 0x04, 0x03, 0x43, 0xf4, 0x80, 0x53, 0x43, 0xf0, 0x01, 0x03, 0x01, 0xee, 0x10, 0x3f, 0xbf, 0xf3, 0x6f, 0x8f, 0x10, 0xbd, 0x10, 0xb5, 0x11, 0xee, 0x10, 0x4f, 0x64, 0x20, 0xff, 0xf7, 0x8c, 0xff, 0x24, 0xf4, 0x80, 0x53, 0x23, 0xf0, 0x07, 0x03, 0x01, 0xee, 0x10, 0x3f, 0xbf, 0xf3, 0x6f, 0x8f, 0x00, 0x23, 0x07, 0xee, 0x15, 0x3f, 0x07, 0xee, 0xd5, 0x3f, 0xbf, 0xf3, 0x4f, 0x8f, 0xbf, 0xf3, 0x6f, 0x8f, 0x10, 0xbd, 0xbf, 0xf3, 0x4f, 0x8f, 0xbf, 0xf3, 0x6f, 0x8f, 0x70, 0x47, 0x00, 0x00, 0x09, 0x4b, 0x1a, 0x68, 0x7a, 0xb9, 0x01, 0x22, 0x1a, 0x60, 0x11, 0xee, 0x51, 0x0f, 0x40, 0xf4, 0x40, 0x60, 0x01, 0xee, 0x51, 0x0f, 0x4f, 0xf4, 0x70, 0x00, 0x01, 0xee, 0x50, 0x0f, 0x4f, 0xf0, 0x80, 0x43, 0xe8, 0xee, 0x10, 0x3a, 0x70, 0x47, 0x00, 0xde, 0x02, 0x00, 0x70, 0x47, 0x70, 0x47, 0x4f, 0xf0, 0x00, 0x02, 0x07, 0xee, 0xd5, 0x2f, 0x00, 0x47, 0x70, 0x47, 0x01, 0xf5, 0x00, 0x13, 0x1a, 0x46, 0x8e, 0x46, 0x00, 0x47, 0x70, 0x47, 0x70, 0x47, 0x30, 0xbf, 0xfd, 0xe7, 0x00, 0x00, 0x08, 0xb5, 0x00, 0xf0, 0x65, 0xf8, 0x00, 0x20, 0x03, 0xf0, 0x22, 0xfb, 0x4f, 0xf4, 0x61, 0x70, 0x03, 0xf0, 0xee, 0xfa, 0x4f, 0xf4, 0x61, 0x70, 0x03, 0xf0, 0xda, 0xfa, 0x02, 0x48, 0x00, 0xf0, 0x65, 0xfc, 0x00, 0x20, 0x08, 0xbd, 0x00, 0xbf, 0xd6, 0xd4, 0x02, 0x00, 0x00, 0x20, 0x70, 0x47, 0x08, 0xb5, 0x01, 0xf0, 0x37, 0xfc, 0x00, 0x28, 0x01, 0xdc, 0x01, 0xf0, 0xe3, 0xfa, 0x00, 0x20, 0x08, 0xbd, 0x00, 0x20, 0x70, 0x47, 0x00, 0x00, 0x07, 0xb5, 0x0c, 0x48, 0x00, 0xf0, 0x4e, 0xfc, 0x0b, 0x4b, 0x1a, 0x68, 0x01, 0x92, 0x01, 0x9a, 0x22, 0xf0, 0x01, 0x02, 0x01, 0x92, 0x01, 0x9a, 0x1a, 0x60, 0x1a, 0x68, 0x01, 0x92, 0x01, 0x9a, 0x42, 0xf0, 0x01, 0x02, 0x01, 0x92, 0x01, 0x9a, 0x00, 0x20, 0x1a, 0x60, 0x03, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x00, 0xbf, 0xe5, 0xd4, 0x02, 0x00, 0x00, 0x04, 0x00, 0x07, 0x00, 0x20, 0x70, 0x47, 0x08, 0xb5, 0x08, 0x4b, 0x1b, 0x68, 0x03, 0xf0, 0x19, 0x03, 0x19, 0x2b, 0x08, 0xd0, 0x1c, 0x20, 0x19, 0x21, 0x03, 0xf0, 0xd3, 0xfc, 0x1c, 0x20, 0xbd, 0xe8, 0x08, 0x40, 0x03, 0xf0, 0xa6, 0xbc, 0x08, 0xbd, 0x00, 0xbf, 0x1c, 0x62, 0x00, 0x03, 0x05, 0x4b, 0x1a, 0x68, 0x05, 0x49, 0xd2, 0xb2, 0x0b, 0x68, 0x1a, 0xb1, 0x23, 0xf0, 0xff, 0x03, 0x13, 0x43, 0x0b, 0x60, 0x70, 0x47, 0x00, 0xbf, 0x18, 0x62, 0x00, 0x03, 0x50, 0x01, 0x00, 0x03, 0x70, 0xb5, 0x86, 0xb0, 0xa4, 0x48, 0x00, 0xf0, 0x09, 0xfc, 0xff, 0xf7, 0xe9, 0xff, 0xa3, 0x4b, 0x1e, 0x68, 0xc6, 0xf3, 0x85, 0x56, 0x9d, 0x6a, 0xa1, 0x4c, 0x02, 0x20, 0xc5, 0xf3, 0x07, 0x45, 0x23, 0x68, 0x23, 0xf0, 0x01, 0x03, 0x23, 0x60, 0xff, 0xf7, 0xce, 0xfe, 0x23, 0x68, 0x02, 0x20, 0x23, 0xf4, 0x80, 0x33, 0x23, 0x60, 0xff, 0xf7, 0xc7, 0xfe, 0x23, 0x68, 0x0a, 0x2e, 0x99, 0x4a, 0x43, 0xf4, 0x80, 0x33, 0x23, 0x60, 0x23, 0x68, 0x43, 0xf0, 0x01, 0x03, 0x23, 0x60, 0x96, 0x4b, 0x11, 0x68, 0x02, 0xd0, 0x00, 0x2e, 0x40, 0xf0, 0xef, 0x80, 0x41, 0xf0, 0x02, 0x01, 0x11, 0x60, 0x1a, 0x68, 0x42, 0xf0, 0x80, 0x42, 0x1a, 0x60, 0x1a, 0x68, 0x22, 0xf0, 0xff, 0x02, 0x00, 0x2d, 0x40, 0xf0, 0xe9, 0x80, 0x42, 0xf0, 0x19, 0x02, 0x1a, 0x60, 0xff, 0xf7, 0x9d, 0xff, 0x8b, 0x48, 0x00, 0xf0, 0xfc, 0xfc, 0x03, 0x68, 0xdc, 0x07, 0x10, 0xd5, 0x23, 0xf0, 0x70, 0x02, 0x42, 0xf0, 0x40, 0x01, 0x01, 0x60, 0x42, 0xf0, 0xc0, 0x02, 0x23, 0xf0, 0x71, 0x03, 0x02, 0x60, 0x43, 0xf0, 0xc0, 0x03, 0x03, 0x60, 0x01, 0x68, 0x82, 0x48, 0x00, 0xf0, 0xb8, 0xfb, 0x81, 0x4a, 0x13, 0x68, 0x43, 0xf0, 0x27, 0x43, 0x43, 0xf0, 0x01, 0x03, 0x13, 0x60, 0x04, 0x20, 0x13, 0x60, 0xff, 0xf7, 0x95, 0xfe, 0x7d, 0x4b, 0x40, 0xf2, 0x01, 0x32, 0x7c, 0x4c, 0x01, 0x20, 0x1a, 0x60, 0xff, 0xf7, 0x7b, 0xfe, 0x23, 0x68, 0x23, 0xf0, 0x00, 0x63, 0x23, 0x60, 0x23, 0x68, 0x23, 0xf0, 0x03, 0x13, 0x23, 0xf4, 0x7f, 0x43, 0x43, 0xf4, 0x24, 0x53, 0x23, 0x60, 0x23, 0x68, 0x43, 0xf0, 0x00, 0x53, 0x23, 0x60, 0x23, 0x68, 0x43, 0xf0, 0x80, 0x43, 0x05, 0x20, 0x23, 0x60, 0xff, 0xf7, 0x64, 0xfe, 0x23, 0x68, 0xd8, 0x00, 0xfc, 0xd5, 0x14, 0x20, 0xff, 0xf7, 0x5e, 0xfe, 0x23, 0x68, 0x43, 0xf0, 0x00, 0x63, 0x23, 0x60, 0x23, 0x68, 0x23, 0xf0, 0x00, 0x53, 0x67, 0x4a, 0x23, 0x60, 0x13, 0x68, 0x03, 0xf0, 0xfc, 0x33, 0x43, 0xf0, 0x03, 0x23, 0x43, 0xf0, 0x01, 0x03, 0x64, 0x4c, 0x01, 0x20, 0x13, 0x60, 0xff, 0xf7, 0x49, 0xfe, 0x22, 0x68, 0x00, 0x2a, 0x80, 0xf2, 0x86, 0x80, 0x61, 0x48, 0x00, 0xf0, 0x6c, 0xfb, 0x60, 0x4b, 0x02, 0x22, 0x1a, 0x60, 0x1a, 0x68, 0x42, 0xf0, 0x40, 0x72, 0x01, 0x20, 0x1a, 0x60, 0xff, 0xf7, 0x38, 0xfe, 0x5c, 0x4b, 0x4f, 0xf4, 0x81, 0x72, 0x1a, 0x60, 0x1a, 0x68, 0x42, 0xf0, 0x40, 0x72, 0x5a, 0x4c, 0x01, 0x20, 0x1a, 0x60, 0xff, 0xf7, 0x2c, 0xfe, 0x23, 0x68, 0x43, 0xf4, 0x80, 0x33, 0x14, 0x20, 0x23, 0x60, 0xff, 0xf7, 0x25, 0xfe, 0x23, 0x68, 0x43, 0xf0, 0x01, 0x03, 0x53, 0x4a, 0x23, 0x60, 0x13, 0x68, 0x43, 0xf0, 0x80, 0x43, 0x01, 0x20, 0x13, 0x60, 0xff, 0xf7, 0x19, 0xfe, 0x50, 0x4b, 0x19, 0x68, 0xca, 0x03, 0x1b, 0xd5, 0x4f, 0x4c, 0x01, 0x22, 0x4f, 0x48, 0x00, 0xf0, 0x3a, 0xfb, 0x23, 0x68, 0x43, 0xf4, 0x27, 0x03, 0x43, 0xf0, 0x10, 0x03, 0x23, 0x60, 0x0a, 0x20, 0x23, 0x60, 0xff, 0xf7, 0x06, 0xfe, 0x22, 0x68, 0x49, 0x4b, 0x13, 0x43, 0x23, 0x60, 0x0a, 0x20, 0x23, 0x60, 0xff, 0xf7, 0xfe, 0xfd, 0x46, 0x4a, 0x13, 0x68, 0x43, 0xf0, 0x01, 0x03, 0x13, 0x60, 0x45, 0x4d, 0x6c, 0x46, 0x0f, 0xcd, 0x0f, 0xc4, 0x95, 0xe8, 0x03, 0x00, 0x05, 0xad, 0x84, 0xe8, 0x03, 0x00, 0xad, 0xf1, 0x04, 0x04, 0x54, 0xf8, 0x04, 0x3f, 0x1a, 0x68, 0x00, 0x2a, 0x18, 0xdb, 0x23, 0x68, 0x1a, 0x60, 0x1b, 0x68, 0x43, 0xf0, 0x40, 0x43, 0x22, 0x68, 0x13, 0x60, 0x13, 0x68, 0x43, 0xf0, 0x00, 0x53, 0x22, 0x68, 0x13, 0x60, 0x23, 0x68, 0x1b, 0x68, 0xdb, 0x00, 0xfb, 0xd5, 0x14, 0x20, 0xff, 0xf7, 0xd6, 0xfd, 0x23, 0x68, 0x1b, 0x68, 0x23, 0xf0, 0x00, 0x53, 0x22, 0x68, 0x13, 0x60, 0xac, 0x42, 0xdf, 0xd1, 0x30, 0x48, 0x06, 0xb0, 0xbd, 0xe8, 0x70, 0x40, 0x00, 0xf0, 0xf2, 0xba, 0x21, 0xf0, 0x03, 0x01, 0x11, 0x60, 0x1a, 0x68, 0x22, 0xf0, 0x80, 0x42, 0x0f, 0xe7, 0x2a, 0x43, 0x16, 0xe7, 0x22, 0x68, 0x22, 0xf0, 0x00, 0x62, 0x22, 0x60, 0x21, 0x68, 0x27, 0x4a, 0x0a, 0x40, 0x42, 0xf4, 0x05, 0x12, 0x42, 0xf4, 0x0c, 0x52, 0x22, 0x60, 0x22, 0x68, 0x42, 0xf0, 0x00, 0x52, 0x22, 0x60, 0x22, 0x68, 0x42, 0xf0, 0x80, 0x42, 0x22, 0x60, 0x22, 0x68, 0x42, 0xf0, 0x00, 0x42, 0x22, 0x60, 0x23, 0x68, 0xd9, 0x00, 0xfc, 0xd5, 0x14, 0x20, 0xff, 0xf7, 0xa1, 0xfd, 0x23, 0x68, 0x43, 0xf0, 0x00, 0x63, 0x23, 0x60, 0x23, 0x68, 0x23, 0xf0, 0x00, 0x53, 0x23, 0x60, 0x55, 0xe7, 0x09, 0xd5, 0x02, 0x00, 0x00, 0x62, 0x00, 0x03, 0x5c, 0x1a, 0x00, 0x02, 0x1c, 0x03, 0x03, 0x02, 0x48, 0x03, 0x03, 0x02, 0xf4, 0x01, 0x09, 0x07, 0x18, 0xd5, 0x02, 0x00, 0x44, 0x02, 0x01, 0x07, 0x00, 0x15, 0x00, 0x02, 0x00, 0x10, 0x00, 0x02, 0x20, 0x10, 0x00, 0x02, 0x35, 0xd5, 0x02, 0x00, 0x10, 0x15, 0x00, 0x02, 0x20, 0x15, 0x00, 0x02, 0x0c, 0x17, 0x00, 0x02, 0x40, 0x15, 0x00, 0x02, 0xd4, 0x05, 0x00, 0x07, 0x00, 0x00, 0x09, 0x07, 0x4f, 0xd5, 0x02, 0x00, 0x01, 0x00, 0xaa, 0x16, 0x60, 0x00, 0x09, 0x07, 0x40, 0xd1, 0x02, 0x00, 0x8a, 0xd5, 0x02, 0x00, 0xfd, 0x00, 0x88, 0xff, 0x06, 0x4b, 0x1a, 0x68, 0x06, 0x49, 0x0a, 0x40, 0x1a, 0x60, 0x06, 0x4a, 0x13, 0x68, 0x0b, 0x40, 0x13, 0x60, 0x05, 0x4b, 0x40, 0xf2, 0x01, 0x32, 0x1a, 0x60, 0x70, 0x47, 0x10, 0x15, 0x00, 0x02, 0xfc, 0xfc, 0xff, 0xfc, 0x20, 0x15, 0x00, 0x02, 0x00, 0x15, 0x00, 0x02, 0x38, 0xb5, 0x08, 0x4d, 0x2c, 0x68, 0x24, 0xf4, 0x80, 0x34, 0x02, 0x20, 0x2c, 0x60, 0xff, 0xf7, 0x49, 0xfd, 0x44, 0xf4, 0x80, 0x34, 0x2c, 0x60, 0x2b, 0x68, 0x43, 0xf0, 0x01, 0x03, 0x00, 0x20, 0x2b, 0x60, 0x38, 0xbd, 0xec, 0x19, 0x00, 0x02, 0x03, 0x4a, 0x13, 0x68, 0x23, 0xf0, 0x01, 0x03, 0x00, 0x20, 0x13, 0x60, 0x70, 0x47, 0x00, 0xbf, 0xec, 0x19, 0x00, 0x02, 0x0a, 0x4a, 0x10, 0xb5, 0x14, 0x68, 0x01, 0x23, 0x00, 0xf1, 0x10, 0x01, 0x03, 0xfa, 0x01, 0xf1, 0x24, 0xea, 0x01, 0x04, 0x14, 0x60, 0x21, 0x43, 0x11, 0x60, 0x11, 0x68, 0x03, 0xfa, 0x00, 0xf0, 0x21, 0xea, 0x00, 0x01, 0x11, 0x60, 0x08, 0x43, 0x10, 0x60, 0x10, 0xbd, 0x0c, 0x19, 0x00, 0x02, 0x42, 0x1e, 0x11, 0xf8, 0x01, 0x3b, 0x02, 0xf8, 0x01, 0x3f, 0x00, 0x2b, 0xf9, 0xd1, 0x70, 0x47, 0x10, 0xb5, 0x0a, 0x44, 0x44, 0x1e, 0x91, 0x42, 0x05, 0xd0, 0x11, 0xf8, 0x01, 0x3b, 0x04, 0xf8, 0x01, 0x3f, 0x00, 0x2b, 0xf7, 0xd1, 0x10, 0xbd, 0x03, 0x46, 0x10, 0xb5, 0x1a, 0x78, 0x5c, 0x1c, 0x3a, 0xb9, 0x01, 0x3b, 0x11, 0xf8, 0x01, 0x2b, 0x03, 0xf8, 0x01, 0x2f, 0x00, 0x2a, 0xf9, 0xd1, 0x10, 0xbd, 0x23, 0x46, 0xf2, 0xe7, 0x30, 0xb5, 0x72, 0xb1, 0x03, 0x46, 0x5d, 0x1c, 0x1c, 0x78, 0x5c, 0xb9, 0x1a, 0x44, 0x11, 0xf8, 0x01, 0x4b, 0x1d, 0x46, 0x03, 0xf8, 0x01, 0x4b, 0x1c, 0xb1, 0x93, 0x42, 0xf7, 0xd1, 0x00, 0x23, 0x6b, 0x70, 0x30, 0xbd, 0x2b, 0x46, 0xee, 0xe7, 0x42, 0x1e, 0x12, 0xf8, 0x01, 0x3f, 0x11, 0xf8, 0x01, 0x0b, 0x18, 0x1a, 0x40, 0xb2, 0x08, 0xb9, 0x00, 0x2b, 0xf6, 0xd1, 0x70, 0x47, 0x43, 0x1e, 0x0a, 0x44, 0x10, 0xb5, 0x91, 0x42, 0x01, 0xd1, 0x00, 0x20, 0x08, 0xe0, 0x13, 0xf8, 0x01, 0x4f, 0x11, 0xf8, 0x01, 0x0b, 0x20, 0x1a, 0x40, 0xb2, 0x08, 0xb9, 0x00, 0x2c, 0xf2, 0xd1, 0x10, 0xbd, 0xc9, 0xb2, 0x02, 0x78, 0x03, 0x46, 0x01, 0x30, 0x8a, 0x42, 0x01, 0xd1, 0x18, 0x46, 0x70, 0x47, 0x00, 0x2a, 0xf6, 0xd1, 0x13, 0x46, 0xf9, 0xe7, 0x03, 0x46, 0x1a, 0x78, 0x59, 0x1c, 0x0a, 0xb9, 0x18, 0x1a, 0x70, 0x47, 0x0b, 0x46, 0xf8, 0xe7, 0x38, 0xb5, 0x0c, 0x46, 0x05, 0x46, 0xe4, 0xb2, 0xff, 0xf7, 0xf2, 0xff, 0x2b, 0x18, 0x18, 0x46, 0x01, 0x3b, 0x02, 0x78, 0xa2, 0x42, 0x02, 0xd0, 0x9d, 0x42, 0xf8, 0xd9, 0x00, 0x20, 0x38, 0xbd, 0x03, 0x46, 0x01, 0x44, 0x10, 0xb5, 0x8b, 0x42, 0x02, 0xd0, 0x1a, 0x78, 0x5c, 0x1c, 0x0a, 0xb9, 0x18, 0x1a, 0x10, 0xbd, 0x23, 0x46, 0xf6, 0xe7, 0x03, 0x46, 0x70, 0xb5, 0x1e, 0x1a, 0x13, 0xf8, 0x01, 0x4b, 0x3c, 0xb1, 0x4a, 0x1e, 0x01, 0xe0, 0xa5, 0x42, 0xf7, 0xd0, 0x12, 0xf8, 0x01, 0x5f, 0x00, 0x2d, 0xf9, 0xd1, 0x30, 0x46, 0x70, 0xbd, 0x00, 0x00, 0x01, 0x4b, 0x18, 0x47, 0x70, 0x47, 0x00, 0xbf, 0xdc, 0x84, 0x02, 0x00, 0x01, 0x4b, 0x18, 0x47, 0x70, 0x47, 0x00, 0xbf, 0x94, 0x85, 0x02, 0x00, 0x30, 0xb5, 0x00, 0x24, 0x94, 0x42, 0x01, 0xd1, 0x00, 0x23, 0x06, 0xe0, 0x03, 0x5d, 0x0d, 0x5d, 0x01, 0x34, 0x5b, 0x1b, 0x5b, 0xb2, 0x00, 0x2b, 0xf4, 0xd0, 0x18, 0x46, 0x30, 0xbd, 0x03, 0x46, 0x02, 0x44, 0x10, 0xb5, 0x93, 0x42, 0x18, 0x46, 0x03, 0xd0, 0x04, 0x78, 0x01, 0x33, 0x8c, 0x42, 0xf8, 0xd1, 0x10, 0xbd, 0x2d, 0xe9, 0xf0, 0x41, 0x04, 0x46, 0x08, 0x46, 0x0f, 0x46, 0xff, 0xf7, 0x9e, 0xff, 0x06, 0x46, 0x98, 0xb1, 0x20, 0x46, 0xff, 0xf7, 0x99, 0xff, 0x05, 0x46, 0x04, 0xeb, 0x00, 0x08, 0xb5, 0x42, 0xa8, 0xeb, 0x05, 0x04, 0x01, 0xda, 0x00, 0x24, 0x07, 0xe0, 0x32, 0x46, 0x39, 0x46, 0x20, 0x46, 0x01, 0x3d, 0xff, 0xf7, 0xcb, 0xff, 0x00, 0x28, 0xf1, 0xd1, 0x20, 0x46, 0xbd, 0xe8, 0xf0, 0x81, 0xc9, 0xb2, 0x02, 0x44, 0x10, 0xb5, 0x90, 0x42, 0x01, 0xd1, 0x00, 0x20, 0x10, 0xbd, 0x03, 0x46, 0x13, 0xf8, 0x01, 0x4b, 0x8c, 0x42, 0xf9, 0xd0, 0x18, 0x46, 0xf4, 0xe7, 0x83, 0x68, 0x5a, 0x1c, 0x82, 0x60, 0x19, 0x70, 0x70, 0x47, 0x08, 0x46, 0x00, 0xf0, 0xfe, 0xba, 0x30, 0xb5, 0x00, 0x25, 0x0c, 0x68, 0xeb, 0xb2, 0x01, 0x35, 0x94, 0x42, 0x0e, 0xd2, 0x02, 0x79, 0x02, 0xb9, 0x53, 0xb1, 0x02, 0x68, 0x0a, 0x2b, 0x34, 0xbf, 0x30, 0x21, 0x57, 0x21, 0x0b, 0x44, 0x54, 0x1c, 0x04, 0x60, 0x13, 0x70, 0x01, 0x23, 0x03, 0x71, 0x30, 0xbd, 0xa4, 0x1a, 0x0c, 0x60, 0xe8, 0xe7, 0x00, 0x00, 0x2d, 0xe9, 0xf0, 0x4f, 0x85, 0xb0, 0x04, 0x46, 0x0d, 0x46, 0x91, 0x46, 0x01, 0xae, 0x2f, 0x78, 0x00, 0x2f, 0x33, 0xd0, 0x25, 0x2f, 0x0d, 0xd0, 0x0a, 0x2f, 0x03, 0xd1, 0xe3, 0x68, 0x0d, 0x21, 0x20, 0x46, 0x98, 0x47, 0x01, 0x35, 0xc8, 0x46, 0xe3, 0x68, 0x39, 0x46, 0x20, 0x46, 0x98, 0x47, 0xc1, 0x46, 0xec, 0xe7, 0x6b, 0x78, 0x00, 0x27, 0x2d, 0x2b, 0x0a, 0xbf, 0xab, 0x78, 0x02, 0x35, 0x03, 0x35, 0x30, 0x2b, 0x03, 0xbf, 0x2b, 0x78, 0x4f, 0xf0, 0x01, 0x0b, 0x01, 0x35, 0x4f, 0xf0, 0x00, 0x0b, 0xa3, 0xf1, 0x30, 0x02, 0x09, 0x2a, 0x1e, 0xd9, 0x6c, 0x2b, 0x4f, 0xf0, 0x00, 0x01, 0x04, 0xbf, 0x2b, 0x78, 0x01, 0x35, 0x26, 0x60, 0x21, 0x71, 0x64, 0x2b, 0x2f, 0xd0, 0x15, 0xd8, 0x25, 0x2b, 0x00, 0xf0, 0x9a, 0x80, 0x63, 0x2b, 0x66, 0xd0, 0xa3, 0xb9, 0x00, 0x20, 0x05, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x01, 0xfb, 0x07, 0x37, 0x15, 0xf8, 0x01, 0x3b, 0x30, 0x3f, 0xa3, 0xf1, 0x30, 0x02, 0x09, 0x2a, 0xf6, 0xd9, 0xe0, 0xe7, 0x0a, 0x21, 0xf8, 0xe7, 0x73, 0x2b, 0x5d, 0xd0, 0x03, 0xd8, 0x70, 0x2b, 0x77, 0xd0, 0xc8, 0x46, 0x3d, 0xe0, 0x75, 0x2b, 0x0f, 0xd0, 0x78, 0x2b, 0xf9, 0xd1, 0xd9, 0xf8, 0x00, 0x30, 0x09, 0xf1, 0x04, 0x08, 0x00, 0x93, 0x00, 0x9b, 0xa3, 0xbb, 0x0d, 0xf1, 0x05, 0x03, 0x23, 0x60, 0x30, 0x23, 0x8d, 0xf8, 0x04, 0x30, 0x17, 0xe0, 0xd9, 0xf8, 0x00, 0x20, 0x64, 0x2b, 0x09, 0xf1, 0x04, 0x08, 0x00, 0x92, 0x09, 0xd1, 0x00, 0x2a, 0x07, 0xda, 0x0d, 0xf1, 0x05, 0x03, 0x52, 0x42, 0x23, 0x60, 0x2d, 0x23, 0x00, 0x92, 0x8d, 0xf8, 0x04, 0x30, 0x00, 0x9b, 0x3b, 0xb9, 0x23, 0x68, 0x5a, 0x1c, 0x22, 0x60, 0x30, 0x22, 0x1a, 0x70, 0x01, 0x23, 0x23, 0x71, 0x10, 0xe0, 0xdf, 0xf8, 0xd8, 0x90, 0x4f, 0xf0, 0x0a, 0x0a, 0x4a, 0x46, 0x69, 0x46, 0x20, 0x46, 0xff, 0xf7, 0x5b, 0xff, 0x30, 0x4b, 0xba, 0xf1, 0x01, 0x0a, 0xa9, 0xfb, 0x03, 0x01, 0x4f, 0xea, 0xd1, 0x09, 0xf2, 0xd1, 0xb1, 0x46, 0x1c, 0xe0, 0x4f, 0xf0, 0x08, 0x09, 0x4f, 0xf0, 0x80, 0x5a, 0x52, 0x46, 0x69, 0x46, 0x20, 0x46, 0x4f, 0xea, 0x1a, 0x1a, 0xff, 0xf7, 0x46, 0xff, 0xb9, 0xf1, 0x01, 0x09, 0xf5, 0xd1, 0xee, 0xe7, 0x99, 0xf8, 0x00, 0x30, 0x0d, 0xf1, 0x05, 0x02, 0x09, 0xf1, 0x04, 0x08, 0x22, 0x60, 0x8d, 0xf8, 0x04, 0x30, 0xe4, 0xe7, 0x09, 0xf1, 0x04, 0x08, 0xd9, 0xf8, 0x00, 0x90, 0x23, 0x68, 0x00, 0x22, 0x1a, 0x70, 0xc4, 0xf8, 0x00, 0x90, 0x23, 0x68, 0x5a, 0x1c, 0x22, 0x60, 0x1b, 0x78, 0x03, 0xbb, 0xbb, 0xf1, 0x00, 0x0f, 0x14, 0xbf, 0x4f, 0xf0, 0x30, 0x0a, 0x4f, 0xf0, 0x20, 0x0a, 0x17, 0xf1, 0xff, 0x37, 0x18, 0xd3, 0xe3, 0x68, 0x51, 0x46, 0x20, 0x46, 0x98, 0x47, 0xf7, 0xe7, 0x11, 0x4a, 0x09, 0xf1, 0x04, 0x08, 0x2b, 0x78, 0x69, 0x1c, 0xd3, 0x5c, 0x5b, 0x07, 0xbf, 0xd0, 0x0d, 0x46, 0xf8, 0xe7, 0x0d, 0xf1, 0x05, 0x02, 0x8d, 0xf8, 0x04, 0x30, 0x22, 0x60, 0x77, 0xe7, 0x01, 0x3f, 0xd9, 0xe7, 0x00, 0x2f, 0xfb, 0xd1, 0xb9, 0xf1, 0x00, 0x0f, 0x3f, 0xf4, 0x35, 0xaf, 0x19, 0xf8, 0x01, 0x1b, 0x00, 0x29, 0x3f, 0xf4, 0x30, 0xaf, 0xe3, 0x68, 0x20, 0x46, 0x98, 0x47, 0xf6, 0xe7, 0xcd, 0xcc, 0xcc, 0xcc, 0x58, 0xd1, 0x02, 0x00, 0x00, 0xca, 0x9a, 0x3b, 0x1f, 0xb5, 0x0a, 0x46, 0x04, 0x4b, 0x01, 0x46, 0x68, 0x46, 0x03, 0x93, 0xff, 0xf7, 0x06, 0xff, 0x05, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x00, 0xbf, 0xa7, 0x9b, 0x02, 0x00, 0x08, 0x28, 0x09, 0xd8, 0x06, 0x4b, 0x18, 0x70, 0x06, 0x4b, 0x19, 0xb1, 0x01, 0x22, 0x1a, 0x70, 0x00, 0x20, 0x70, 0x47, 0x19, 0x70, 0xfb, 0xe7, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x00, 0xbf, 0xc0, 0xdb, 0x02, 0x00, 0x04, 0xde, 0x02, 0x00, 0x01, 0x4b, 0x18, 0x78, 0x70, 0x47, 0x00, 0xbf, 0xc0, 0xdb, 0x02, 0x00, 0x03, 0x4b, 0x18, 0x78, 0x03, 0x4b, 0x1b, 0x78, 0x0b, 0xb1, 0x40, 0xf0, 0x80, 0x00, 0x70, 0x47, 0xc0, 0xdb, 0x02, 0x00, 0x04, 0xde, 0x02, 0x00, 0x0e, 0xb4, 0x3f, 0xb5, 0x07, 0xaa, 0x52, 0xf8, 0x04, 0x1b, 0x07, 0x4b, 0x04, 0x90, 0x02, 0xa8, 0x01, 0x92, 0x05, 0x93, 0xff, 0xf7, 0xce, 0xfe, 0x04, 0x9b, 0x00, 0x22, 0x1a, 0x70, 0x06, 0xb0, 0x5d, 0xf8, 0x04, 0xeb, 0x03, 0xb0, 0x70, 0x47, 0x9d, 0x9b, 0x02, 0x00, 0x0f, 0xb4, 0x30, 0xb5, 0x89, 0xb0, 0x01, 0xad, 0x00, 0x24, 0xff, 0xf7, 0xbb, 0xfa, 0x0c, 0x49, 0x02, 0x46, 0x28, 0x46, 0xff, 0xf7, 0xde, 0xff, 0x28, 0x5d, 0x20, 0xb1, 0x01, 0x34, 0x00, 0xf0, 0x97, 0xf9, 0x0c, 0x2c, 0xf8, 0xd1, 0x07, 0x4b, 0x0d, 0xaa, 0x0c, 0x99, 0x04, 0xa8, 0x00, 0x92, 0x07, 0x93, 0xff, 0xf7, 0xa9, 0xfe, 0x09, 0xb0, 0xbd, 0xe8, 0x30, 0x40, 0x04, 0xb0, 0x70, 0x47, 0x97, 0xd5, 0x02, 0x00, 0xa7, 0x9b, 0x02, 0x00, 0x01, 0x46, 0x01, 0x48, 0xff, 0xf7, 0xd8, 0xbf, 0x9c, 0xd5, 0x02, 0x00, 0x0c, 0xb4, 0x7f, 0xb5, 0x08, 0xaa, 0x52, 0xf8, 0x04, 0x1b, 0x07, 0x4b, 0x04, 0x90, 0x02, 0xa8, 0x01, 0x92, 0x05, 0x93, 0xff, 0xf7, 0x8e, 0xfe, 0x04, 0x9b, 0x00, 0x22, 0x1a, 0x70, 0x07, 0xb0, 0x5d, 0xf8, 0x04, 0xeb, 0x02, 0xb0, 0x70, 0x47, 0x9d, 0x9b, 0x02, 0x00, 0x08, 0xb5, 0xff, 0xf7, 0x7f, 0xfa, 0x01, 0x46, 0xbd, 0xe8, 0x08, 0x40, 0x01, 0x48, 0xff, 0xf7, 0xb7, 0xbf, 0x00, 0xbf, 0x9f, 0xd5, 0x02, 0x00, 0x89, 0x08, 0x16, 0x4b, 0xf0, 0xb5, 0x00, 0xf1, 0x10, 0x05, 0x0e, 0x46, 0x00, 0x24, 0x42, 0x69, 0x43, 0x61, 0x55, 0xe9, 0x04, 0x37, 0x04, 0x3e, 0x03, 0x2e, 0x05, 0xf1, 0x10, 0x05, 0x3b, 0x44, 0x55, 0xf8, 0x18, 0x7c, 0x3b, 0x44, 0x55, 0xf8, 0x14, 0x7c, 0x3b, 0x44, 0x1c, 0x44, 0xf0, 0xd8, 0x0b, 0x1f, 0x01, 0xf0, 0x03, 0x01, 0x9b, 0x08, 0x01, 0x33, 0x00, 0xeb, 0x03, 0x13, 0x03, 0xeb, 0x81, 0x01, 0x8b, 0x42, 0x05, 0xd1, 0x42, 0x61, 0xa0, 0x1a, 0x18, 0xbf, 0x4f, 0xf0, 0xff, 0x30, 0xf0, 0xbd, 0x53, 0xf8, 0x04, 0x5b, 0x2c, 0x44, 0xf3, 0xe7, 0x00, 0xbf, 0x39, 0x6c, 0x0a, 0x5f, 0x00, 0x23, 0x11, 0xb9, 0x11, 0x60, 0x08, 0x46, 0x70, 0x47, 0x01, 0x29, 0x05, 0xd1, 0x10, 0x60, 0x18, 0x46, 0x70, 0x47, 0x13, 0x68, 0x40, 0x1a, 0x01, 0x33, 0x88, 0x42, 0x13, 0x60, 0xf9, 0xd2, 0x70, 0x47, 0x00, 0x00, 0x00, 0x48, 0x70, 0x47, 0x00, 0x00, 0x10, 0x40, 0x10, 0xb5, 0x00, 0xf0, 0x27, 0xf9, 0x40, 0xb1, 0x00, 0xf0, 0x1a, 0xf9, 0x04, 0x46, 0x01, 0x46, 0x03, 0x48, 0xff, 0xf7, 0x63, 0xff, 0x20, 0x46, 0x10, 0xbd, 0x04, 0x46, 0xfb, 0xe7, 0x00, 0xbf, 0xad, 0xd5, 0x02, 0x00, 0x02, 0x4a, 0x13, 0x78, 0x18, 0x43, 0x10, 0x70, 0x70, 0x47, 0x00, 0xbf, 0x05, 0xde, 0x02, 0x00, 0x01, 0x4b, 0x1b, 0x78, 0x18, 0x40, 0x70, 0x47, 0x05, 0xde, 0x02, 0x00, 0x00, 0x20, 0x70, 0x47, 0x70, 0x47, 0x00, 0x00, 0x05, 0x4b, 0x00, 0x22, 0x01, 0x44, 0xc3, 0xe9, 0x04, 0x02, 0x10, 0x46, 0x5a, 0x60, 0x19, 0x60, 0xdb, 0x61, 0xda, 0x60, 0x70, 0x47, 0x00, 0xbf, 0x08, 0xde, 0x02, 0x00, 0xf0, 0xb5, 0x48, 0xb1, 0x00, 0xf1, 0x0f, 0x04, 0x0f, 0x4a, 0x24, 0xf0, 0x0f, 0x04, 0x04, 0xf1, 0x20, 0x0c, 0xd1, 0x68, 0x09, 0xb9, 0x08, 0x46, 0xf0, 0xbd, 0x16, 0x68, 0x55, 0x68, 0x0f, 0x68, 0x0c, 0xeb, 0x06, 0x03, 0x2b, 0x44, 0x9f, 0x42, 0x03, 0xd3, 0x73, 0x19, 0x03, 0xd1, 0x18, 0x46, 0xf2, 0xe7, 0x0a, 0x46, 0xed, 0xe7, 0x03, 0xf1, 0x10, 0x07, 0x77, 0x51, 0xc3, 0xe9, 0x01, 0x40, 0x38, 0x46, 0xd9, 0x60, 0xd3, 0x60, 0xe7, 0xe7, 0x18, 0xde, 0x02, 0x00, 0x70, 0xb5, 0x05, 0x46, 0x20, 0xb9, 0x08, 0x46, 0xbd, 0xe8, 0x70, 0x40, 0xff, 0xf7, 0xd2, 0xbf, 0x81, 0xb1, 0x15, 0x4e, 0xf4, 0x68, 0x0c, 0xb9, 0x25, 0x46, 0x0b, 0xe0, 0x23, 0x68, 0x9d, 0x42, 0x0a, 0xd1, 0xa3, 0x68, 0x19, 0x44, 0x63, 0x68, 0x01, 0xf1, 0x0f, 0x00, 0x20, 0xf0, 0x0f, 0x00, 0x83, 0x42, 0x03, 0xd1, 0x28, 0x46, 0x70, 0xbd, 0x26, 0x46, 0xeb, 0xe7, 0xe2, 0x68, 0x05, 0xf1, 0x20, 0x03, 0x03, 0x44, 0x12, 0x68, 0x9a, 0x42, 0x02, 0xd3, 0xc4, 0xe9, 0x01, 0x01, 0xf1, 0xe7, 0xff, 0xf7, 0xb0, 0xff, 0x05, 0x46, 0x00, 0x28, 0xec, 0xd0, 0xd4, 0xe9, 0x00, 0x12, 0xff, 0xf7, 0x39, 0xfd, 0xe3, 0x68, 0xf3, 0x60, 0xe5, 0xe7, 0x18, 0xde, 0x02, 0x00, 0x10, 0xb1, 0x06, 0x4a, 0xd3, 0x68, 0x03, 0xb9, 0x70, 0x47, 0x19, 0x68, 0x88, 0x42, 0x02, 0xd1, 0xdb, 0x68, 0xd3, 0x60, 0x70, 0x47, 0x1a, 0x46, 0xf4, 0xe7, 0x00, 0xbf, 0x18, 0xde, 0x02, 0x00, 0x70, 0x47, 0x70, 0x47, 0x05, 0x4b, 0x00, 0xf0, 0x0f, 0x02, 0x00, 0x09, 0x9a, 0x5c, 0x1b, 0x5c, 0x4a, 0x70, 0x0b, 0x70, 0x00, 0x23, 0x8b, 0x70, 0x70, 0x47, 0x00, 0xbf, 0x58, 0xd2, 0x02, 0x00, 0x2d, 0xe9, 0xf0, 0x47, 0x8e, 0xb0, 0xdf, 0xf8, 0x60, 0x90, 0x01, 0xad, 0x00, 0x24, 0x2f, 0x46, 0xdf, 0xf8, 0x50, 0xa0, 0x80, 0x46, 0x0e, 0x46, 0x01, 0x46, 0x11, 0x48, 0xff, 0xf7, 0xb0, 0xfe, 0xb4, 0x42, 0x0a, 0xdb, 0x26, 0xea, 0xe6, 0x76, 0x33, 0x07, 0x03, 0xd0, 0x39, 0x46, 0x0d, 0x48, 0xff, 0xf7, 0xa6, 0xfe, 0x0e, 0xb0, 0xbd, 0xe8, 0xf0, 0x87, 0x18, 0xf8, 0x04, 0x30, 0x28, 0x46, 0x4a, 0x46, 0x05, 0x21, 0xff, 0xf7, 0xc6, 0xfe, 0x04, 0xf0, 0x0f, 0x03, 0x03, 0x35, 0x0f, 0x2b, 0x04, 0xd1, 0x3d, 0x46, 0x39, 0x46, 0x50, 0x46, 0xff, 0xf7, 0x92, 0xfe, 0x01, 0x34, 0xdf, 0xe7, 0xbd, 0xd5, 0x02, 0x00, 0xd4, 0xd9, 0x02, 0x00, 0xc7, 0xd5, 0x02, 0x00, 0x07, 0xb5, 0x00, 0x90, 0x01, 0x48, 0xff, 0xf7, 0x85, 0xfe, 0xfe, 0xe7, 0xcd, 0xd5, 0x02, 0x00, 0xf8, 0xb5, 0x04, 0x46, 0x4f, 0xf0, 0x14, 0x70, 0x0e, 0x46, 0x17, 0x46, 0xff, 0xf7, 0xaa, 0xff, 0x05, 0x46, 0x20, 0x46, 0xff, 0xf7, 0x18, 0xfc, 0x01, 0x22, 0x39, 0x46, 0x30, 0x46, 0xa4, 0x02, 0x00, 0xf0, 0xbe, 0xf8, 0x0a, 0x4a, 0x2b, 0x19, 0x03, 0x21, 0x19, 0x61, 0x13, 0x60, 0xda, 0x68, 0x42, 0xf0, 0x80, 0x02, 0xda, 0x60, 0x00, 0x22, 0x5a, 0x60, 0x0d, 0x22, 0x2a, 0x51, 0xda, 0x68, 0x22, 0xf0, 0x80, 0x02, 0xda, 0x60, 0x07, 0x22, 0xd9, 0x60, 0x9a, 0x60, 0xf8, 0xbd, 0x00, 0xbf, 0x28, 0xde, 0x02, 0x00, 0x03, 0x4b, 0x1b, 0x68, 0x5a, 0x69, 0x52, 0x06, 0xfc, 0xd5, 0x18, 0x60, 0x70, 0x47, 0x00, 0xbf, 0x28, 0xde, 0x02, 0x00, 0x03, 0x4b, 0x1b, 0x68, 0x5a, 0x69, 0xd2, 0x07, 0xfc, 0xd5, 0x18, 0x68, 0xc0, 0xb2, 0x70, 0x47, 0x28, 0xde, 0x02, 0x00, 0x02, 0x4b, 0x1b, 0x68, 0x58, 0x69, 0x00, 0xf0, 0x01, 0x00, 0x70, 0x47, 0x28, 0xde, 0x02, 0x00, 0x8b, 0x00, 0xc1, 0xf3, 0xc1, 0x01, 0x30, 0xb5, 0x03, 0xf0, 0x1c, 0x03, 0x50, 0xf8, 0x21, 0x40, 0x0f, 0x25, 0x9a, 0x40, 0x9d, 0x40, 0x24, 0xea, 0x05, 0x04, 0x22, 0x43, 0x40, 0xf8, 0x21, 0x20, 0x30, 0xbd, 0x00, 0x00, 0x43, 0x09, 0x10, 0xb4, 0x24, 0x24, 0x5c, 0x43, 0x0a, 0x2b, 0x88, 0xbf, 0x05, 0x4b, 0x0a, 0x46, 0x01, 0x46, 0x94, 0xbf, 0x04, 0xf1, 0x00, 0x73, 0x1b, 0x19, 0x18, 0x46, 0x10, 0xbc, 0xff, 0xf7, 0xdd, 0xbf, 0x00, 0xbf, 0x74, 0x1e, 0x02, 0x07, 0xc1, 0xf3, 0xc1, 0x03, 0x50, 0xf8, 0x23, 0x00, 0x89, 0x00, 0x01, 0xf0, 0x1c, 0x01, 0xc8, 0x40, 0x00, 0xf0, 0x0f, 0x00, 0x70, 0x47, 0x00, 0x00, 0x43, 0x09, 0x24, 0x22, 0x01, 0x46, 0x0a, 0x2b, 0x02, 0xfb, 0x03, 0xf2, 0x8a, 0xbf, 0x03, 0x48, 0x02, 0xf1, 0x00, 0x70, 0x80, 0x18, 0xff, 0xf7, 0xe7, 0xbf, 0x00, 0xbf, 0x74, 0x1e, 0x02, 0x07, 0x43, 0x09, 0x24, 0x22, 0x30, 0xb5, 0x5a, 0x43, 0x0a, 0x2b, 0xc0, 0xf3, 0x00, 0x15, 0x4f, 0xea, 0x40, 0x00, 0x88, 0xbf, 0x0b, 0x4b, 0x00, 0xf0, 0x1e, 0x00, 0x4f, 0xf0, 0x03, 0x04, 0x98, 0xbf, 0x02, 0xf1, 0x00, 0x73, 0x04, 0xfa, 0x00, 0xf4, 0x88, 0xbf, 0x9b, 0x18, 0x01, 0xfa, 0x00, 0xf0, 0x14, 0x33, 0x53, 0xf8, 0x25, 0x20, 0x22, 0xea, 0x04, 0x02, 0x10, 0x43, 0x43, 0xf8, 0x25, 0x00, 0x00, 0x20, 0x30, 0xbd, 0x74, 0x1e, 0x02, 0x07, 0x43, 0x09, 0x24, 0x22, 0x30, 0xb5, 0x5a, 0x43, 0x0a, 0x2b, 0xc0, 0xf3, 0x00, 0x15, 0x4f, 0xea, 0x40, 0x00, 0x88, 0xbf, 0x0b, 0x4b, 0x00, 0xf0, 0x1e, 0x00, 0x4f, 0xf0, 0x03, 0x04, 0x98, 0xbf, 0x02, 0xf1, 0x00, 0x73, 0x04, 0xfa, 0x00, 0xf4, 0x88, 0xbf, 0x9b, 0x18, 0x01, 0xfa, 0x00, 0xf0, 0x1c, 0x33, 0x53, 0xf8, 0x25, 0x20, 0x22, 0xea, 0x04, 0x02, 0x10, 0x43, 0x43, 0xf8, 0x25, 0x00, 0x00, 0x20, 0x30, 0xbd, 0x74, 0x1e, 0x02, 0x07, 0x4f, 0xf0, 0x00, 0x0c, 0x2d, 0xe9, 0xf0, 0x4f, 0x8b, 0xb0, 0xcd, 0xe9, 0x08, 0x12, 0x08, 0x9b, 0x9c, 0x45, 0x04, 0xd1, 0x4f, 0xf0, 0xff, 0x30, 0x0b, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x10, 0xf8, 0x3c, 0x70, 0x00, 0xeb, 0xcc, 0x08, 0x0c, 0xf1, 0x01, 0x0c, 0x00, 0x2f, 0xef, 0xd0, 0x98, 0xf8, 0x01, 0xe0, 0x0b, 0x2f, 0x4f, 0xea, 0xde, 0x03, 0x4f, 0xea, 0x1e, 0x19, 0x06, 0x93, 0x07, 0xeb, 0x47, 0x03, 0x06, 0x9a, 0x4f, 0xea, 0x03, 0x13, 0x4f, 0xea, 0x82, 0x05, 0x03, 0xeb, 0x89, 0x02, 0x5b, 0xd8, 0x03, 0xf1, 0x00, 0x73, 0x02, 0xf1, 0x00, 0x72, 0xa3, 0xf1, 0x30, 0x01, 0x20, 0x3b, 0x0d, 0x44, 0xa2, 0xf1, 0x0c, 0x01, 0x1c, 0x3a, 0x02, 0x91, 0x03, 0x92, 0x04, 0x93, 0x2c, 0x68, 0x02, 0x9b, 0x19, 0x68, 0x03, 0x9b, 0xd3, 0xf8, 0x00, 0xa0, 0x04, 0x9b, 0x1b, 0x68, 0x0e, 0xf0, 0x07, 0x06, 0x0f, 0x22, 0xb6, 0x00, 0xb2, 0x40, 0x24, 0xea, 0x02, 0x04, 0x09, 0x9a, 0x2a, 0xb1, 0x98, 0xf8, 0x02, 0x20, 0x02, 0xf0, 0x0f, 0x02, 0xb2, 0x40, 0x14, 0x43, 0x0e, 0xf0, 0x0f, 0x06, 0x03, 0x22, 0x76, 0x00, 0xb2, 0x40, 0xd2, 0x43, 0x02, 0xea, 0x01, 0x0b, 0x98, 0xf8, 0x03, 0x10, 0x02, 0xea, 0x0a, 0x02, 0x01, 0xf0, 0x03, 0x01, 0xb1, 0x40, 0x41, 0xea, 0x0b, 0x01, 0x98, 0xf8, 0x04, 0xb0, 0x0b, 0xf0, 0x03, 0x0b, 0x0b, 0xfa, 0x06, 0xf6, 0x32, 0x43, 0x98, 0xf8, 0x02, 0x60, 0x01, 0x92, 0x01, 0x2e, 0x25, 0xd1, 0x06, 0xfa, 0x0e, 0xfa, 0x23, 0xea, 0x0a, 0x0a, 0x98, 0xf8, 0x05, 0x30, 0x03, 0xf0, 0x01, 0x03, 0x03, 0xfa, 0x0e, 0xf3, 0x43, 0xea, 0x0a, 0x03, 0x00, 0xeb, 0xcc, 0x00, 0xcd, 0xf8, 0x14, 0xc0, 0x05, 0x9a, 0x94, 0x46, 0x08, 0x9a, 0x94, 0x45, 0x12, 0xd3, 0x00, 0x2d, 0x40, 0xf0, 0xa2, 0x80, 0x00, 0x20, 0x86, 0xe7, 0x56, 0x49, 0x19, 0x44, 0x0d, 0x44, 0x55, 0x49, 0x51, 0x18, 0x02, 0x91, 0x55, 0x49, 0x0a, 0x44, 0x03, 0x92, 0x54, 0x4a, 0x13, 0x44, 0xa4, 0xe7, 0x00, 0x26, 0xe3, 0xe7, 0x90, 0xf8, 0x00, 0xc0, 0x90, 0xf8, 0x01, 0x80, 0xbc, 0xf1, 0x00, 0x0f, 0xe5, 0xd0, 0x4f, 0xea, 0x18, 0x12, 0x4f, 0xea, 0xd8, 0x0e, 0x91, 0x45, 0x07, 0x92, 0x01, 0xd1, 0x67, 0x45, 0x72, 0xd0, 0x2c, 0x60, 0x02, 0x9a, 0x11, 0x60, 0x03, 0x9a, 0x01, 0x99, 0x11, 0x60, 0x0e, 0xb1, 0x04, 0x9a, 0x13, 0x60, 0x07, 0x9c, 0x0c, 0xeb, 0x4c, 0x02, 0x12, 0x01, 0x02, 0xf1, 0x00, 0x73, 0x02, 0xeb, 0x84, 0x02, 0xa3, 0xf1, 0x30, 0x01, 0x02, 0xf1, 0x00, 0x72, 0x01, 0xeb, 0x8e, 0x05, 0xa2, 0xf1, 0x0c, 0x04, 0x02, 0x94, 0xa2, 0xf1, 0x1c, 0x04, 0x03, 0x94, 0xa3, 0xf1, 0x20, 0x04, 0x04, 0x94, 0x51, 0xf8, 0x2e, 0x40, 0x52, 0xf8, 0x0c, 0x1c, 0x52, 0xf8, 0x1c, 0x2c, 0x01, 0x92, 0x53, 0xf8, 0x20, 0x3c, 0x00, 0x26, 0x08, 0xf0, 0x07, 0x07, 0x0f, 0x22, 0xbf, 0x00, 0x90, 0xf8, 0x02, 0xb0, 0x02, 0xfa, 0x07, 0xf9, 0x09, 0x9a, 0x24, 0xea, 0x09, 0x04, 0x22, 0xb1, 0x0b, 0xf0, 0x0f, 0x09, 0x09, 0xfa, 0x07, 0xf7, 0x3c, 0x43, 0x08, 0xf0, 0x0f, 0x09, 0x90, 0xf8, 0x03, 0xa0, 0x4f, 0xea, 0x49, 0x09, 0x03, 0x22, 0xbb, 0xf1, 0x01, 0x0f, 0x02, 0xfa, 0x09, 0xf7, 0x0a, 0xea, 0x02, 0x0a, 0x0a, 0xfa, 0x09, 0xfa, 0x01, 0x9a, 0x6f, 0xea, 0x07, 0x07, 0x01, 0xea, 0x07, 0x01, 0x4a, 0xea, 0x01, 0x01, 0x90, 0xf8, 0x04, 0xa0, 0x07, 0xea, 0x02, 0x07, 0x0a, 0xf0, 0x03, 0x0a, 0x0a, 0xfa, 0x09, 0xf2, 0x42, 0xea, 0x07, 0x02, 0x01, 0x92, 0x0b, 0xd1, 0x0b, 0xfa, 0x08, 0xf6, 0x23, 0xea, 0x06, 0x03, 0x46, 0x79, 0x06, 0xf0, 0x01, 0x06, 0x06, 0xfa, 0x08, 0xf8, 0x5e, 0x46, 0x48, 0xea, 0x03, 0x03, 0x05, 0x9f, 0x08, 0x30, 0xdd, 0xf8, 0x1c, 0x90, 0xcd, 0xf8, 0x18, 0xe0, 0x01, 0x37, 0x05, 0x97, 0x67, 0x46, 0x64, 0xe7, 0x06, 0x9a, 0x72, 0x45, 0xb3, 0xd0, 0x30, 0x22, 0x2c, 0x60, 0x02, 0xfb, 0x0c, 0xf4, 0x04, 0xf1, 0x00, 0x74, 0x30, 0x3c, 0x04, 0xeb, 0x8e, 0x05, 0x54, 0xf8, 0x2e, 0x40, 0xa7, 0xe7, 0x2c, 0x60, 0x02, 0x9a, 0x11, 0x60, 0x03, 0x9a, 0x01, 0x99, 0x11, 0x60, 0x00, 0x2e, 0x3f, 0xf4, 0x55, 0xaf, 0x04, 0x9a, 0x13, 0x60, 0x51, 0xe7, 0x00, 0xbf, 0xc0, 0x1d, 0x02, 0x07, 0xe4, 0x1d, 0x02, 0x07, 0xd4, 0x1d, 0x02, 0x07, 0xd0, 0x1d, 0x02, 0x07, 0x38, 0xb5, 0x04, 0x46, 0x03, 0x48, 0x0d, 0x46, 0xff, 0xf7, 0xa2, 0xfd, 0x40, 0xf8, 0x24, 0x50, 0x38, 0xbd, 0x00, 0xbf, 0x00, 0x01, 0x09, 0x07, 0x10, 0xb5, 0x04, 0x46, 0x02, 0x48, 0xff, 0xf7, 0x97, 0xfd, 0x50, 0xf8, 0x24, 0x00, 0x10, 0xbd, 0x00, 0x01, 0x09, 0x07, 0x10, 0xb5, 0x06, 0x4c, 0x02, 0x20, 0x05, 0x49, 0xff, 0xf7, 0xe4, 0xff, 0xfe, 0xf7, 0xb6, 0xff, 0x02, 0x20, 0xff, 0xf7, 0xeb, 0xff, 0xa0, 0x42, 0xf4, 0xd1, 0x10, 0xbd, 0x5a, 0xa5, 0xa5, 0x5a, 0x38, 0xb5, 0x00, 0x24, 0x15, 0x4d, 0x20, 0x46, 0xff, 0xf7, 0xe0, 0xff, 0x02, 0x46, 0x18, 0xb1, 0x21, 0x46, 0x28, 0x46, 0xff, 0xf7, 0x46, 0xfc, 0x01, 0x34, 0x06, 0x2c, 0xf3, 0xd1, 0x02, 0x20, 0xff, 0xf7, 0xd4, 0xff, 0x0e, 0x4b, 0x98, 0x42, 0x04, 0xd1, 0x0e, 0x48, 0xff, 0xf7, 0x3a, 0xfc, 0x01, 0x20, 0x38, 0xbd, 0x0c, 0x4b, 0x98, 0x42, 0x0e, 0xd1, 0x0c, 0x4c, 0x02, 0x20, 0x0c, 0x49, 0xff, 0xf7, 0xb8, 0xff, 0x96, 0x20, 0xfe, 0xf7, 0x15, 0xff, 0x02, 0x20, 0xff, 0xf7, 0xbe, 0xff, 0xa0, 0x42, 0xf7, 0xd1, 0x07, 0x48, 0xe9, 0xe7, 0x00, 0x20, 0xea, 0xe7, 0xef, 0xd5, 0x02, 0x00, 0x5a, 0xa5, 0xa5, 0x5a, 0x05, 0xd6, 0x02, 0x00, 0xa5, 0x5a, 0xa5, 0x5a, 0xa7, 0x5a, 0xa5, 0x5a, 0xa6, 0x5a, 0xa5, 0x5a, 0x15, 0xd6, 0x02, 0x00, 0x08, 0xb5, 0x02, 0x20, 0x00, 0x21, 0xff, 0xf7, 0x99, 0xff, 0xfe, 0xf7, 0x6b, 0xff, 0x02, 0x20, 0xff, 0xf7, 0xa0, 0xff, 0x00, 0x28, 0xf4, 0xd1, 0x08, 0xbd, 0x10, 0xb5, 0x04, 0x46, 0x21, 0x46, 0x02, 0x20, 0xff, 0xf7, 0x8b, 0xff, 0xfe, 0xf7, 0x5d, 0xff, 0x02, 0x20, 0xff, 0xf7, 0x92, 0xff, 0xa0, 0x42, 0xf4, 0xd1, 0x10, 0xbd, 0x00, 0x00, 0x0c, 0x4b, 0x1b, 0x68, 0x98, 0x60, 0xda, 0x68, 0x42, 0xf0, 0x08, 0x02, 0xda, 0x60, 0x4f, 0xf6, 0xff, 0x72, 0x12, 0xf1, 0xff, 0x32, 0x0a, 0xd3, 0xd9, 0x68, 0x09, 0x07, 0xf9, 0xd5, 0x32, 0xb1, 0x1b, 0x69, 0x28, 0x2b, 0x14, 0xbf, 0x6f, 0xf0, 0x27, 0x00, 0x00, 0x20, 0x70, 0x47, 0x6f, 0xf0, 0x03, 0x00, 0x70, 0x47, 0x2c, 0xde, 0x02, 0x00, 0x0e, 0x4b, 0x00, 0x22, 0x1b, 0x68, 0xda, 0x61, 0x01, 0x22, 0x9a, 0x61, 0xda, 0x68, 0x42, 0xf0, 0x20, 0x02, 0xda, 0x60, 0x4f, 0xf6, 0xff, 0x72, 0x12, 0xf1, 0xff, 0x32, 0x0a, 0xd3, 0xd9, 0x68, 0x09, 0x07, 0xf9, 0xd5, 0x32, 0xb1, 0x1b, 0x69, 0x08, 0x2b, 0x14, 0xbf, 0x6f, 0xf0, 0x07, 0x00, 0x00, 0x20, 0x70, 0x47, 0x6f, 0xf0, 0x03, 0x00, 0x70, 0x47, 0x00, 0xbf, 0x2c, 0xde, 0x02, 0x00, 0x11, 0x4b, 0x41, 0xea, 0x40, 0x00, 0x1b, 0x68, 0x98, 0x60, 0xda, 0x68, 0x42, 0xf0, 0x08, 0x02, 0xda, 0x60, 0x4f, 0xf6, 0xff, 0x72, 0x12, 0xf1, 0xff, 0x32, 0x12, 0xd3, 0xd8, 0x68, 0x10, 0xf0, 0x08, 0x0f, 0xf8, 0xd0, 0x6a, 0xb1, 0x1b, 0x69, 0x29, 0xb9, 0x18, 0x2b, 0x0c, 0xbf, 0x00, 0x20, 0x6f, 0xf0, 0x17, 0x00, 0x70, 0x47, 0x40, 0x2b, 0x0c, 0xbf, 0x00, 0x20, 0x6f, 0xf0, 0x3f, 0x00, 0x70, 0x47, 0x6f, 0xf0, 0x03, 0x00, 0x70, 0x47, 0x2c, 0xde, 0x02, 0x00, 0x11, 0x4b, 0x1b, 0x68, 0xda, 0x68, 0x42, 0xf0, 0x10, 0x02, 0xda, 0x60, 0xda, 0x68, 0x42, 0xf0, 0x08, 0x02, 0xda, 0x60, 0x4f, 0xf6, 0xff, 0x72, 0x12, 0xf1, 0xff, 0x32, 0x11, 0xd3, 0xd9, 0x68, 0xc9, 0x06, 0xf9, 0xd4, 0x6a, 0xb1, 0x4f, 0xf4, 0x80, 0x32, 0x01, 0x3a, 0x02, 0xd0, 0x19, 0x69, 0xf8, 0x29, 0xfa, 0xd1, 0x1b, 0x69, 0xf8, 0x2b, 0x14, 0xbf, 0x6f, 0xf0, 0x03, 0x00, 0x00, 0x20, 0x70, 0x47, 0x6f, 0xf0, 0x03, 0x00, 0x70, 0x47, 0x2c, 0xde, 0x02, 0x00, 0x2d, 0xe9, 0xf3, 0x47, 0x1f, 0x46, 0x54, 0x4b, 0x14, 0x46, 0x80, 0x46, 0x01, 0x91, 0x5a, 0x68, 0x9a, 0x46, 0x0a, 0x9e, 0x00, 0x2a, 0x00, 0xf0, 0x9b, 0x80, 0xff, 0xf7, 0x85, 0xff, 0x05, 0x46, 0x20, 0xbb, 0x01, 0x46, 0x40, 0x46, 0xff, 0xf7, 0x9f, 0xff, 0x05, 0x46, 0xf0, 0xb9, 0x02, 0x2c, 0x22, 0xdc, 0x0c, 0xbf, 0x01, 0x24, 0x00, 0x24, 0x0d, 0xf1, 0x04, 0x09, 0x4c, 0x44, 0x14, 0xf8, 0x01, 0x09, 0xff, 0xf7, 0x55, 0xff, 0x05, 0x46, 0x80, 0xb9, 0xa4, 0xeb, 0x09, 0x03, 0x01, 0x33, 0xf5, 0xd1, 0xda, 0xf8, 0x00, 0x40, 0xe3, 0x68, 0x43, 0xf0, 0x20, 0x03, 0xe3, 0x60, 0x4f, 0xf6, 0xff, 0x73, 0x13, 0xf1, 0xff, 0x33, 0x09, 0xd2, 0x6f, 0xf0, 0x03, 0x05, 0xff, 0xf7, 0xa2, 0xff, 0x28, 0x46, 0x02, 0xb0, 0xbd, 0xe8, 0xf0, 0x87, 0x02, 0x24, 0xdd, 0xe7, 0xe2, 0x68, 0x15, 0x07, 0xef, 0xd5, 0x00, 0x2b, 0xf0, 0xd0, 0x23, 0x69, 0x10, 0x2b, 0x5b, 0xd1, 0x01, 0x21, 0x40, 0x46, 0xff, 0xf7, 0x6a, 0xff, 0x05, 0x46, 0x00, 0x28, 0xe8, 0xd1, 0x01, 0x2e, 0x21, 0xd0, 0x3a, 0x46, 0x01, 0x3e, 0xd3, 0x1b, 0x9e, 0x42, 0xe3, 0x68, 0x30, 0xd8, 0x03, 0xf0, 0xfb, 0x03, 0xe3, 0x60, 0xe3, 0x68, 0x43, 0xf0, 0x08, 0x03, 0xe3, 0x60, 0x4f, 0xf6, 0xff, 0x73, 0x13, 0xf1, 0xff, 0x33, 0xd2, 0xd3, 0xe2, 0x68, 0x12, 0x07, 0xf9, 0xd5, 0x00, 0x2b, 0xcd, 0xd0, 0xa3, 0x68, 0xbb, 0x55, 0x64, 0x23, 0x13, 0xf1, 0xff, 0x33, 0xc7, 0xd3, 0x22, 0x69, 0x58, 0x2a, 0xf9, 0xd1, 0x9b, 0xb9, 0xc2, 0xe7, 0xe3, 0x68, 0x43, 0xf0, 0x08, 0x03, 0xe3, 0x60, 0x4f, 0xf6, 0xff, 0x73, 0x13, 0xf1, 0xff, 0x33, 0xb9, 0xd3, 0xe2, 0x68, 0x10, 0x07, 0xf9, 0xd5, 0x00, 0x2b, 0xb4, 0xd0, 0xa3, 0x68, 0x3b, 0x70, 0x23, 0x69, 0x58, 0x2b, 0x20, 0xd1, 0x00, 0x25, 0xaf, 0xe7, 0xe3, 0x68, 0x43, 0xf0, 0x0c, 0x03, 0xe3, 0x60, 0x4f, 0xf6, 0xff, 0x73, 0x13, 0xf1, 0xff, 0x33, 0xa4, 0xd3, 0xe1, 0x68, 0x09, 0x07, 0xf9, 0xd5, 0x00, 0x2b, 0x9f, 0xd0, 0xa3, 0x68, 0x02, 0xf8, 0x01, 0x3b, 0x4f, 0xf6, 0xff, 0x73, 0x13, 0xf1, 0xff, 0x33, 0x97, 0xd3, 0x21, 0x69, 0x50, 0x29, 0xf9, 0xd1, 0x00, 0x2b, 0xaf, 0xd1, 0x91, 0xe7, 0x6f, 0xf0, 0x0f, 0x05, 0x90, 0xe7, 0x6f, 0xf0, 0x57, 0x05, 0x8d, 0xe7, 0x6f, 0xf0, 0x03, 0x05, 0x8c, 0xe7, 0x00, 0xbf, 0x2c, 0xde, 0x02, 0x00, 0x2d, 0xe9, 0xf3, 0x41, 0x1c, 0x46, 0x29, 0x4b, 0x15, 0x46, 0x06, 0x46, 0x01, 0x91, 0x5a, 0x68, 0x98, 0x46, 0x00, 0x2a, 0x46, 0xd0, 0xff, 0xf7, 0xd9, 0xfe, 0x01, 0x46, 0x38, 0xb1, 0x4f, 0xf0, 0xff, 0x36, 0xff, 0xf7, 0x19, 0xff, 0x30, 0x46, 0x02, 0xb0, 0xbd, 0xe8, 0xf0, 0x81, 0x30, 0x46, 0xff, 0xf7, 0xec, 0xfe, 0x00, 0x28, 0xf2, 0xd1, 0x02, 0x2d, 0x31, 0xdc, 0x0c, 0xbf, 0x01, 0x25, 0x00, 0x25, 0x01, 0xaf, 0x3d, 0x44, 0x15, 0xf8, 0x01, 0x09, 0xff, 0xf7, 0xa3, 0xfe, 0x06, 0x46, 0x00, 0x28, 0xe4, 0xd1, 0xeb, 0x1b, 0x01, 0x33, 0xf5, 0xd1, 0x08, 0x99, 0x23, 0x46, 0xd8, 0xf8, 0x00, 0x20, 0x60, 0x18, 0x98, 0x42, 0xdc, 0xd0, 0x13, 0xf8, 0x01, 0x1b, 0x91, 0x60, 0xd1, 0x68, 0x41, 0xf0, 0x08, 0x01, 0xd1, 0x60, 0x4f, 0xf6, 0xff, 0x71, 0x11, 0xf1, 0xff, 0x31, 0xce, 0xd3, 0xd4, 0x68, 0x24, 0x07, 0xf9, 0xd5, 0x00, 0x29, 0xc9, 0xd0, 0x4f, 0xf6, 0xff, 0x71, 0x11, 0xf1, 0xff, 0x31, 0xc4, 0xd3, 0x14, 0x69, 0x28, 0x2c, 0xf9, 0xd1, 0x00, 0x29, 0xe2, 0xd1, 0xbe, 0xe7, 0x02, 0x25, 0xce, 0xe7, 0x6f, 0xf0, 0x03, 0x06, 0xbd, 0xe7, 0x00, 0xbf, 0x2c, 0xde, 0x02, 0x00, 0x1f, 0xb5, 0x04, 0xab, 0x03, 0xf8, 0x01, 0x2d, 0x01, 0x22, 0x00, 0x92, 0xff, 0xf7, 0xa0, 0xff, 0x05, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x13, 0xb5, 0x01, 0x24, 0x13, 0x46, 0x00, 0x94, 0x22, 0x46, 0xff, 0xf7, 0xe8, 0xfe, 0x02, 0xb0, 0x10, 0xbd, 0x70, 0xb5, 0x01, 0x22, 0x33, 0x4d, 0x04, 0x46, 0x2b, 0x68, 0x9a, 0x61, 0x4f, 0xf4, 0x80, 0x32, 0x99, 0x69, 0x09, 0xb1, 0x01, 0x3a, 0xfb, 0xd1, 0x1a, 0x6a, 0x02, 0xf0, 0x30, 0x02, 0x30, 0x2a, 0x2c, 0xd0, 0x05, 0x22, 0x0a, 0x26, 0x1a, 0x62, 0x4f, 0xf4, 0xfa, 0x70, 0xfe, 0xf7, 0x16, 0xfd, 0x2b, 0x68, 0x1a, 0x6a, 0x92, 0x07, 0x1a, 0xd4, 0x1a, 0x6a, 0x4f, 0xf4, 0x7a, 0x70, 0x42, 0xf0, 0x08, 0x02, 0x1a, 0x62, 0x1a, 0x6a, 0x42, 0xf0, 0x02, 0x02, 0x1a, 0x62, 0xfe, 0xf7, 0x06, 0xfd, 0x2b, 0x68, 0x4f, 0xf4, 0x7a, 0x70, 0x1a, 0x6a, 0x22, 0xf0, 0x08, 0x02, 0x1a, 0x62, 0x1a, 0x6a, 0x22, 0xf0, 0x02, 0x02, 0x1a, 0x62, 0xfe, 0xf7, 0xf9, 0xfc, 0x01, 0x3e, 0xe0, 0xd1, 0x2b, 0x68, 0x00, 0x22, 0x4f, 0xf4, 0xfa, 0x70, 0x1a, 0x62, 0xfe, 0xf7, 0xf0, 0xfc, 0x16, 0x4a, 0x84, 0xfb, 0x02, 0x23, 0xe4, 0x17, 0x00, 0x22, 0xc4, 0xeb, 0xa3, 0x14, 0x01, 0x23, 0xb4, 0xf5, 0xc8, 0x7f, 0x21, 0x46, 0xa8, 0xbf, 0x4f, 0xf4, 0xc8, 0x71, 0x64, 0x29, 0xb8, 0xbf, 0x64, 0x21, 0x64, 0x2c, 0xcc, 0xbf, 0x00, 0x24, 0x01, 0x24, 0xa2, 0x42, 0x10, 0xdb, 0x59, 0x43, 0x4f, 0xf4, 0x16, 0x60, 0x2d, 0x68, 0xfe, 0xf7, 0xdd, 0xf8, 0x01, 0x38, 0x44, 0xea, 0xc0, 0x04, 0x6c, 0x61, 0xeb, 0x68, 0x43, 0xf0, 0x40, 0x03, 0xeb, 0x60, 0x00, 0x23, 0xeb, 0x61, 0x70, 0xbd, 0x5b, 0x00, 0x01, 0x22, 0xe9, 0xe7, 0x00, 0xbf, 0x2c, 0xde, 0x02, 0x00, 0xd3, 0x4d, 0x62, 0x10, 0x04, 0x48, 0x90, 0xf8, 0x08, 0x33, 0x00, 0xf5, 0x42, 0x70, 0x00, 0x2b, 0x08, 0xbf, 0x00, 0x20, 0x70, 0x47, 0x00, 0xbf, 0x00, 0x80, 0x02, 0x00, 0x22, 0x4b, 0x2d, 0xe9, 0xf0, 0x41, 0x04, 0x46, 0x0d, 0x46, 0x16, 0x46, 0x02, 0x21, 0x01, 0x22, 0x18, 0x60, 0x98, 0x68, 0xff, 0xf7, 0x20, 0xfc, 0xa4, 0xf1, 0x14, 0x73, 0xa3, 0xf5, 0x00, 0x53, 0x9b, 0x0a, 0x05, 0x2b, 0x1a, 0xd8, 0x1a, 0x4f, 0x39, 0x68, 0x01, 0x20, 0x03, 0xf1, 0x10, 0x02, 0x00, 0xfa, 0x02, 0xf2, 0x0a, 0x43, 0x3a, 0x60, 0xd7, 0xf8, 0x00, 0x80, 0x00, 0xfa, 0x03, 0xf4, 0x28, 0xea, 0x04, 0x03, 0x3b, 0x60, 0x48, 0xea, 0x04, 0x04, 0xfe, 0xf7, 0x9f, 0xfc, 0x3c, 0x60, 0x31, 0x46, 0x28, 0x46, 0xbd, 0xe8, 0xf0, 0x41, 0xff, 0xf7, 0x58, 0xbf, 0x0d, 0x4f, 0x04, 0xf1, 0xf8, 0x24, 0x04, 0xf5, 0x7d, 0x04, 0xa4, 0x0a, 0x3a, 0x68, 0x01, 0x20, 0x04, 0xf1, 0x10, 0x03, 0x00, 0xfa, 0x03, 0xf3, 0x22, 0xea, 0x03, 0x02, 0x3a, 0x60, 0x3a, 0x68, 0x13, 0x43, 0x3b, 0x60, 0xd7, 0xf8, 0x00, 0x80, 0x00, 0xfa, 0x04, 0xf4, 0xda, 0xe7, 0x00, 0xbf, 0x2c, 0xde, 0x02, 0x00, 0x1c, 0x19, 0x00, 0x02, 0x9c, 0x01, 0x01, 0x07, 0x38, 0xb5, 0x0a, 0x46, 0x0b, 0x4c, 0x05, 0x46, 0x63, 0x68, 0x8b, 0xb9, 0xff, 0xf7, 0xa0, 0xff, 0xa0, 0x60, 0x68, 0xb1, 0x80, 0x79, 0x29, 0x46, 0x06, 0x28, 0x17, 0xbf, 0x80, 0x02, 0x06, 0x48, 0x00, 0xf1, 0x14, 0x70, 0x00, 0xf5, 0x00, 0x50, 0xff, 0xf7, 0x9e, 0xff, 0x01, 0x23, 0x63, 0x60, 0x38, 0xbd, 0x00, 0xbf, 0x2c, 0xde, 0x02, 0x00, 0x00, 0x08, 0x02, 0x07, 0x38, 0xb5, 0x24, 0x4c, 0x63, 0x68, 0x73, 0xb3, 0xff, 0xf7, 0x84, 0xff, 0x83, 0x79, 0xa0, 0x60, 0x06, 0x2b, 0x17, 0xbf, 0x9b, 0x02, 0x20, 0x4b, 0x03, 0xf1, 0x14, 0x73, 0x03, 0xf5, 0x00, 0x53, 0xa3, 0xf1, 0x14, 0x72, 0xa2, 0xf5, 0x00, 0x52, 0x92, 0x0a, 0x05, 0x2a, 0x1c, 0xd8, 0x1b, 0x4b, 0x18, 0x68, 0x01, 0x21, 0x01, 0xfa, 0x02, 0xf5, 0x20, 0xea, 0x05, 0x00, 0x18, 0x60, 0x18, 0x68, 0x10, 0x32, 0x01, 0xfa, 0x02, 0xf2, 0x20, 0xea, 0x02, 0x02, 0x1a, 0x60, 0xa0, 0x68, 0x00, 0x25, 0x01, 0x22, 0x02, 0x21, 0x85, 0x70, 0xc5, 0x70, 0x05, 0x71, 0x85, 0x72, 0xc5, 0x72, 0x05, 0x73, 0xff, 0xf7, 0x90, 0xfb, 0x65, 0x60, 0x38, 0xbd, 0x0d, 0x4a, 0x03, 0xf1, 0xf8, 0x23, 0x03, 0xf5, 0x7d, 0x03, 0x9b, 0x0a, 0x10, 0x68, 0x01, 0x21, 0x01, 0xfa, 0x03, 0xf5, 0x20, 0xea, 0x05, 0x00, 0x10, 0x60, 0x10, 0x68, 0x10, 0x33, 0x01, 0xfa, 0x03, 0xf3, 0x20, 0xea, 0x03, 0x03, 0x13, 0x60, 0xdc, 0xe7, 0x00, 0xbf, 0x2c, 0xde, 0x02, 0x00, 0x00, 0x08, 0x02, 0x07, 0x1c, 0x19, 0x00, 0x02, 0x9c, 0x01, 0x01, 0x07, 0x08, 0xb5, 0xff, 0xf7, 0x8d, 0xff, 0x00, 0x20, 0x08, 0xbd, 0x13, 0xb5, 0x01, 0x24, 0x13, 0x46, 0x00, 0x94, 0x22, 0x46, 0xc0, 0xb2, 0xff, 0xf7, 0xa3, 0xfd, 0x02, 0xb0, 0x10, 0xbd, 0x1f, 0xb5, 0x04, 0xab, 0x03, 0xf8, 0x01, 0x2d, 0x01, 0x22, 0xc0, 0xb2, 0x00, 0x92, 0xff, 0xf7, 0x46, 0xfe, 0x05, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x73, 0xb5, 0x14, 0x46, 0x0d, 0xf1, 0x07, 0x02, 0x05, 0x46, 0x0e, 0x46, 0xff, 0xf7, 0xe2, 0xff, 0x40, 0xb9, 0x9d, 0xf8, 0x07, 0x20, 0x31, 0x46, 0x28, 0x46, 0x22, 0x43, 0x8d, 0xf8, 0x07, 0x20, 0xff, 0xf7, 0xe2, 0xff, 0x02, 0xb0, 0x70, 0xbd, 0x73, 0xb5, 0x16, 0x46, 0x0d, 0xf1, 0x07, 0x02, 0x04, 0x46, 0x0d, 0x46, 0xff, 0xf7, 0xce, 0xff, 0x48, 0xb9, 0x9d, 0xf8, 0x07, 0x20, 0x29, 0x46, 0x20, 0x46, 0x22, 0xea, 0x06, 0x02, 0x8d, 0xf8, 0x07, 0x20, 0xff, 0xf7, 0xcd, 0xff, 0x02, 0xb0, 0x70, 0xbd, 0x02, 0x4b, 0x18, 0x68, 0xc0, 0xf3, 0x00, 0x40, 0x70, 0x47, 0x00, 0xbf, 0xd4, 0x05, 0x00, 0x07, 0x70, 0xb5, 0x2f, 0x4e, 0x31, 0x68, 0xc1, 0xf3, 0x00, 0x44, 0x2e, 0x48, 0x22, 0x46, 0xff, 0xf7, 0xcd, 0xf8, 0x00, 0x25, 0x35, 0x60, 0x00, 0x2c, 0x51, 0xd0, 0x28, 0x46, 0x2a, 0x4c, 0xff, 0xf7, 0x59, 0xfc, 0x2a, 0x4b, 0x20, 0xf0, 0x0f, 0x00, 0x98, 0x42, 0x0d, 0xd1, 0x28, 0x46, 0xff, 0xf7, 0x51, 0xfc, 0x00, 0xf0, 0x0f, 0x00, 0x60, 0x60, 0x06, 0x20, 0xff, 0xf7, 0x4b, 0xfc, 0xa0, 0x60, 0x07, 0x20, 0xff, 0xf7, 0x47, 0xfc, 0xe0, 0x60, 0x63, 0x68, 0x3b, 0xb3, 0x03, 0x20, 0x00, 0x25, 0xff, 0xf7, 0x40, 0xfc, 0xa6, 0x68, 0x20, 0x61, 0x1d, 0x48, 0x31, 0x46, 0xff, 0xf7, 0xa6, 0xf8, 0xe2, 0x68, 0x1c, 0x49, 0x1c, 0x48, 0xff, 0xf7, 0xa1, 0xf8, 0xd4, 0xe9, 0x02, 0x32, 0x13, 0x44, 0x9e, 0x42, 0x20, 0xd3, 0x19, 0x48, 0xff, 0xf7, 0x99, 0xf8, 0x2a, 0x46, 0x21, 0x69, 0x18, 0x48, 0x65, 0x61, 0xff, 0xf7, 0x93, 0xf8, 0xd4, 0xe9, 0x04, 0x23, 0x9a, 0x42, 0x06, 0xd0, 0x15, 0x48, 0xff, 0xf7, 0x8c, 0xf8, 0x00, 0x20, 0x00, 0xf0, 0x35, 0xf8, 0xfe, 0xe7, 0x12, 0x4c, 0x21, 0x68, 0x12, 0x48, 0xff, 0xf7, 0x83, 0xf8, 0x14, 0x20, 0xfe, 0xf7, 0x56, 0xfb, 0x20, 0x68, 0xbd, 0xe8, 0x70, 0x40, 0xfe, 0xf7, 0xf5, 0xbb, 0x56, 0xf8, 0x04, 0x2b, 0x15, 0x44, 0xd8, 0xe7, 0x70, 0xbd, 0xd4, 0x05, 0x00, 0x07, 0x30, 0xd6, 0x02, 0x00, 0x38, 0xde, 0x02, 0x00, 0x10, 0x32, 0x54, 0x76, 0x66, 0xd6, 0x02, 0x00, 0x44, 0xde, 0x02, 0x00, 0x70, 0xd6, 0x02, 0x00, 0x8b, 0xd6, 0x02, 0x00, 0x9a, 0xd6, 0x02, 0x00, 0xbf, 0xd6, 0x02, 0x00, 0xd8, 0x05, 0x00, 0x07, 0xd3, 0xd6, 0x02, 0x00, 0x70, 0x47, 0x00, 0x00, 0x02, 0x4a, 0x93, 0x69, 0x23, 0xf0, 0x01, 0x03, 0x93, 0x61, 0x70, 0x47, 0xa0, 0x00, 0x05, 0x02, 0x08, 0xb5, 0xff, 0xf7, 0xf5, 0xff, 0x07, 0x4b, 0x53, 0xf8, 0x20, 0x20, 0x02, 0xb9, 0x01, 0x30, 0x53, 0xf8, 0x20, 0x30, 0x1b, 0x01, 0x43, 0xf0, 0x01, 0x03, 0x03, 0x4a, 0x01, 0x21, 0x51, 0x61, 0x93, 0x61, 0x08, 0xbd, 0x6c, 0xd2, 0x02, 0x00, 0xa0, 0x00, 0x05, 0x02, 0x80, 0x6f, 0xc0, 0xf3, 0xc0, 0x20, 0x70, 0x47, 0xc0, 0x6d, 0xc0, 0x0f, 0x70, 0x47, 0x00, 0x00, 0x70, 0x47, 0x00, 0x00, 0x04, 0x4b, 0x1b, 0x68, 0x48, 0x2b, 0x01, 0xd1, 0x01, 0xf0, 0xc0, 0xbf, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x00, 0xbf, 0x50, 0xde, 0x02, 0x00, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x00, 0x00, 0x01, 0x4b, 0x18, 0x68, 0x70, 0x47, 0x00, 0xbf, 0x50, 0xde, 0x02, 0x00, 0x43, 0x1e, 0x0a, 0x44, 0x10, 0xb5, 0x54, 0x1a, 0x00, 0x2c, 0x00, 0xdc, 0x10, 0xbd, 0x11, 0xf8, 0x01, 0x4b, 0x03, 0xf8, 0x01, 0x4f, 0xf6, 0xe7, 0xfe, 0xf7, 0xfd, 0xba, 0x0b, 0x4b, 0x1b, 0x68, 0xc3, 0xf3, 0x07, 0x23, 0x73, 0xb1, 0x42, 0x68, 0x02, 0x2a, 0x04, 0xd0, 0x03, 0x2a, 0x0a, 0xd1, 0x20, 0x2b, 0x00, 0xd9, 0x16, 0x3b, 0x06, 0x49, 0x0a, 0x68, 0x22, 0xf4, 0x7f, 0x42, 0x42, 0xea, 0x03, 0x23, 0x0b, 0x60, 0x70, 0x47, 0x00, 0x23, 0xf5, 0xe7, 0x00, 0xbf, 0x1c, 0x62, 0x00, 0x03, 0x50, 0x01, 0x00, 0x03, 0x38, 0xb5, 0x05, 0x46, 0x43, 0x68, 0x02, 0x2b, 0x14, 0xd0, 0x03, 0x2b, 0x0c, 0xbf, 0x19, 0x22, 0x00, 0x22, 0x09, 0x4c, 0x01, 0x20, 0x23, 0x68, 0x23, 0xf4, 0x7f, 0x43, 0x43, 0xea, 0x02, 0x23, 0x23, 0xf4, 0x00, 0x13, 0x23, 0x60, 0xfe, 0xf7, 0xcc, 0xfa, 0x28, 0x46, 0xff, 0xf7, 0xcc, 0xff, 0x23, 0x68, 0x38, 0xbd, 0x2f, 0x22, 0xec, 0xe7, 0x50, 0x01, 0x00, 0x03, 0x03, 0x68, 0x23, 0xea, 0x01, 0x01, 0x11, 0x43, 0x01, 0x60, 0x70, 0x47, 0x05, 0x4b, 0x4f, 0xf0, 0xff, 0x32, 0x0a, 0x20, 0x1a, 0x60, 0xff, 0x22, 0x5a, 0x60, 0x4f, 0xf6, 0xff, 0x72, 0x9a, 0x60, 0xfe, 0xf7, 0xb1, 0xba, 0x20, 0x20, 0x10, 0x03, 0x04, 0x4b, 0x01, 0x22, 0x0a, 0x20, 0x1a, 0x60, 0x00, 0x23, 0x03, 0x4a, 0x13, 0x60, 0x53, 0x60, 0xfe, 0xf7, 0xa5, 0xba, 0x20, 0x20, 0x10, 0x03, 0x24, 0x20, 0x10, 0x03, 0xf8, 0xb5, 0x04, 0x46, 0xd0, 0xe9, 0x15, 0x32, 0x43, 0x4e, 0x59, 0x02, 0x50, 0x00, 0x01, 0xf4, 0xf0, 0x51, 0x00, 0xf0, 0x1e, 0x00, 0x01, 0x43, 0x40, 0x48, 0x37, 0x46, 0x05, 0x68, 0x0d, 0x43, 0x40, 0xf8, 0x04, 0x5b, 0xb0, 0x42, 0xf9, 0xd1, 0x59, 0x01, 0xd0, 0x08, 0x3c, 0x4e, 0x3d, 0x4d, 0x01, 0xf4, 0xf0, 0x51, 0x00, 0xf0, 0x1e, 0x00, 0x01, 0x43, 0x30, 0x68, 0x08, 0x43, 0x46, 0xf8, 0x04, 0x0b, 0xae, 0x42, 0xf9, 0xd1, 0x38, 0x48, 0xd5, 0x0b, 0xd2, 0x0c, 0x05, 0xf0, 0x1e, 0x05, 0x01, 0x68, 0x02, 0xf0, 0x1e, 0x02, 0x21, 0xf0, 0x80, 0x61, 0x01, 0x60, 0x19, 0x0c, 0xd7, 0xf8, 0x00, 0xc0, 0x1b, 0x0d, 0x4f, 0xea, 0x41, 0x2e, 0x49, 0x06, 0x0e, 0xf4, 0xf0, 0x5e, 0x01, 0xf0, 0xf0, 0x51, 0x45, 0xea, 0x0e, 0x05, 0x45, 0xea, 0x0c, 0x0c, 0xc7, 0xf8, 0x00, 0xc0, 0x2b, 0x4f, 0xd7, 0xf8, 0x00, 0xc0, 0x45, 0xea, 0x0c, 0x05, 0x3d, 0x60, 0x5f, 0x02, 0x35, 0x68, 0x5b, 0x06, 0x07, 0xf4, 0xf0, 0x57, 0x3a, 0x43, 0x03, 0xf0, 0xf0, 0x53, 0x15, 0x43, 0x35, 0x60, 0x24, 0x4d, 0x2e, 0x68, 0x32, 0x43, 0x2a, 0x60, 0x23, 0x4a, 0x15, 0x68, 0x29, 0x43, 0x11, 0x60, 0xd2, 0xf8, 0x80, 0x10, 0x0b, 0x43, 0xc2, 0xf8, 0x80, 0x30, 0x03, 0x68, 0x43, 0xf0, 0x80, 0x63, 0x03, 0x60, 0x01, 0x20, 0xfe, 0xf7, 0x3e, 0xfa, 0x23, 0x6d, 0x1b, 0x4a, 0x1c, 0x4c, 0x19, 0x01, 0x01, 0xf4, 0x70, 0x61, 0x10, 0x68, 0x08, 0x43, 0x42, 0xf8, 0x04, 0x0b, 0xa2, 0x42, 0xf9, 0xd1, 0x18, 0x4a, 0x15, 0x4c, 0x10, 0x68, 0x08, 0x43, 0x42, 0xf8, 0x04, 0x0b, 0xa2, 0x42, 0xf9, 0xd1, 0x15, 0x49, 0x1a, 0x02, 0x02, 0xf4, 0x70, 0x62, 0x08, 0x68, 0x02, 0x43, 0x0a, 0x60, 0x03, 0xf4, 0x70, 0x62, 0x48, 0x68, 0x1b, 0x09, 0x03, 0xf4, 0x70, 0x63, 0x02, 0x43, 0x4a, 0x60, 0x0e, 0x4a, 0x11, 0x68, 0x0b, 0x43, 0x13, 0x60, 0xf8, 0xbd, 0x00, 0xbf, 0x34, 0x33, 0x10, 0x03, 0x10, 0x33, 0x10, 0x03, 0x90, 0x33, 0x10, 0x03, 0xb4, 0x33, 0x10, 0x03, 0x00, 0x31, 0x10, 0x03, 0x38, 0x33, 0x10, 0x03, 0xb8, 0x33, 0x10, 0x03, 0x3c, 0x33, 0x10, 0x03, 0x40, 0x32, 0x10, 0x03, 0x7c, 0x32, 0x10, 0x03, 0x28, 0x32, 0x10, 0x03, 0x18, 0x32, 0x10, 0x03, 0x80, 0x32, 0x10, 0x03, 0xf0, 0xb5, 0xd9, 0xb0, 0xb0, 0x22, 0x18, 0x49, 0x68, 0x46, 0x00, 0x24, 0xfe, 0xf7, 0x5a, 0xfd, 0xb0, 0x22, 0x16, 0x49, 0x0d, 0xeb, 0x02, 0x00, 0xfe, 0xf7, 0x54, 0xfd, 0x14, 0x4a, 0x69, 0x46, 0xdf, 0xf8, 0x50, 0xc0, 0x13, 0x68, 0x23, 0xf0, 0x80, 0x63, 0x13, 0x60, 0x2c, 0xaa, 0x00, 0x23, 0x04, 0xeb, 0x0c, 0x05, 0xc8, 0x58, 0xef, 0x58, 0x06, 0x46, 0xd0, 0x58, 0x06, 0xeb, 0x00, 0x20, 0x38, 0x44, 0xe8, 0x50, 0x04, 0x33, 0x2c, 0x2b, 0xf4, 0xd1, 0x80, 0x34, 0x2c, 0x31, 0xb4, 0xf5, 0x00, 0x7f, 0x02, 0xf1, 0x2c, 0x02, 0xea, 0xd1, 0x05, 0x4a, 0x13, 0x68, 0x43, 0xf0, 0x80, 0x63, 0x13, 0x60, 0x59, 0xb0, 0xf0, 0xbd, 0x00, 0xbf, 0xb0, 0xd2, 0x02, 0x00, 0x60, 0xd3, 0x02, 0x00, 0x00, 0x31, 0x10, 0x03, 0x10, 0x33, 0x10, 0x03, 0x1b, 0x49, 0x03, 0x68, 0x1b, 0x48, 0x0a, 0x68, 0x5b, 0x08, 0x22, 0xf4, 0x7f, 0x62, 0x22, 0xf0, 0x0f, 0x02, 0x01, 0x3b, 0x13, 0x43, 0x4f, 0xf4, 0x80, 0x32, 0x0b, 0x60, 0x16, 0x4b, 0x1a, 0x60, 0x16, 0x4b, 0x17, 0x4a, 0x13, 0x60, 0x17, 0x4a, 0xc1, 0xf8, 0x08, 0x22, 0xc1, 0xf8, 0x24, 0x02, 0x15, 0x48, 0xc1, 0xf8, 0x28, 0x02, 0xc1, 0xf8, 0x34, 0x32, 0xc1, 0xf8, 0x38, 0x22, 0x13, 0x4a, 0x13, 0x49, 0x11, 0x60, 0x13, 0x49, 0x51, 0x60, 0x13, 0x63, 0x13, 0x4b, 0x13, 0x4a, 0x1a, 0x60, 0x00, 0x23, 0x13, 0x4a, 0x13, 0x60, 0x53, 0x60, 0x02, 0xf1, 0x47, 0x62, 0x11, 0x4b, 0x02, 0xf6, 0x95, 0x22, 0x1a, 0x60, 0x10, 0x4a, 0x9a, 0x60, 0x10, 0x4a, 0x1a, 0x61, 0x70, 0x47, 0x00, 0xbf, 0x0c, 0x20, 0x10, 0x03, 0x0d, 0x00, 0x00, 0x02, 0x00, 0x22, 0x10, 0x03, 0x09, 0x00, 0x00, 0x01, 0x10, 0x22, 0x10, 0x03, 0x64, 0x00, 0x50, 0x00, 0x00, 0x01, 0x60, 0x00, 0x60, 0x22, 0x10, 0x03, 0x09, 0x02, 0x64, 0x00, 0x40, 0x00, 0x20, 0x00, 0x94, 0x22, 0x10, 0x03, 0x80, 0x00, 0x40, 0x00, 0x70, 0x24, 0x10, 0x03, 0xc0, 0x31, 0x10, 0x03, 0xff, 0x00, 0x00, 0x0f, 0x5f, 0x00, 0x00, 0x3f, 0x10, 0xb5, 0x01, 0xfb, 0x00, 0xf4, 0x4f, 0xf4, 0x7a, 0x71, 0x20, 0x46, 0xfd, 0xf7, 0x44, 0xfd, 0x03, 0x4a, 0xa4, 0xfb, 0x02, 0x23, 0x98, 0x09, 0x00, 0x29, 0x18, 0xbf, 0x01, 0x30, 0x10, 0xbd, 0xd3, 0x4d, 0x62, 0x10, 0xc3, 0x6d, 0x2d, 0xe9, 0xf0, 0x4f, 0x9b, 0xb0, 0xd0, 0xf8, 0x00, 0x90, 0x04, 0x46, 0x99, 0x07, 0x06, 0x93, 0x46, 0x68, 0x4f, 0xea, 0x59, 0x08, 0x36, 0xd5, 0x83, 0x6a, 0xc3, 0xf3, 0x42, 0x52, 0x18, 0x92, 0xc3, 0xf3, 0xc5, 0x32, 0x04, 0x92, 0xc3, 0xf3, 0xc3, 0x22, 0x02, 0x92, 0xc3, 0xf3, 0x84, 0x12, 0x03, 0xf0, 0x3f, 0x03, 0x00, 0x92, 0x03, 0x93, 0xc3, 0x6a, 0x00, 0x6b, 0xc3, 0xf3, 0xc4, 0x52, 0xc3, 0xf3, 0x02, 0x55, 0x01, 0x92, 0xc3, 0xf3, 0xc3, 0x27, 0xc3, 0xf3, 0xc4, 0x32, 0xc3, 0xf3, 0x84, 0x1a, 0xc0, 0xf3, 0x0b, 0x0b, 0x03, 0xf0, 0x3f, 0x03, 0x05, 0x93, 0xc0, 0xf3, 0x08, 0x33, 0x16, 0x92, 0x0a, 0x93, 0x63, 0x6a, 0x22, 0x68, 0x17, 0x93, 0xe3, 0x69, 0x15, 0x93, 0xb3, 0x1e, 0x05, 0x2b, 0x00, 0xf2, 0x66, 0x83, 0xdf, 0xe8, 0x13, 0xf0, 0x8c, 0x01, 0x6e, 0x02, 0x64, 0x03, 0x64, 0x03, 0xc4, 0x02, 0x12, 0x03, 0x03, 0x2e, 0x40, 0xf0, 0x82, 0x80, 0x41, 0x46, 0x08, 0x20, 0xff, 0xf7, 0xa3, 0xff, 0x41, 0x46, 0x05, 0x46, 0x0f, 0x20, 0xff, 0xf7, 0x9e, 0xff, 0x41, 0x46, 0x00, 0x90, 0x41, 0xf6, 0x78, 0x60, 0xff, 0xf7, 0x98, 0xff, 0x10, 0xf0, 0x1f, 0x03, 0x41, 0x46, 0x18, 0xbf, 0x01, 0x23, 0x03, 0xeb, 0x50, 0x1b, 0x4f, 0xf4, 0xaf, 0x70, 0xff, 0xf7, 0x8d, 0xff, 0x00, 0x9f, 0x02, 0x2d, 0x38, 0xbf, 0x02, 0x25, 0x0a, 0x90, 0x41, 0x46, 0x02, 0x2f, 0x38, 0xbf, 0x02, 0x27, 0xb9, 0xf5, 0x48, 0x7f, 0x3d, 0xd8, 0x32, 0x20, 0xff, 0xf7, 0x7e, 0xff, 0x41, 0x46, 0x04, 0x90, 0x0a, 0x20, 0xff, 0xf7, 0x79, 0xff, 0x02, 0x28, 0x41, 0x46, 0x38, 0xbf, 0x02, 0x20, 0x02, 0x90, 0x35, 0x20, 0xff, 0xf7, 0x71, 0xff, 0x41, 0x46, 0x03, 0x90, 0x26, 0x20, 0xff, 0xf7, 0x6c, 0xff, 0x01, 0x95, 0x05, 0x90, 0xdd, 0xf8, 0x00, 0xa0, 0x00, 0x9a, 0x03, 0x9b, 0x43, 0xf4, 0x80, 0x03, 0x43, 0xea, 0x82, 0x13, 0x02, 0x9a, 0x43, 0xea, 0xc2, 0x23, 0x04, 0x9a, 0x43, 0xea, 0xc2, 0x33, 0x05, 0x9a, 0xa3, 0x62, 0xfb, 0x02, 0x43, 0xea, 0x8a, 0x13, 0x13, 0x43, 0x01, 0x9a, 0x43, 0xea, 0xc5, 0x33, 0x43, 0xea, 0x05, 0x53, 0x43, 0xea, 0xc2, 0x53, 0xe3, 0x62, 0xa3, 0x6b, 0xc3, 0xf3, 0x03, 0x33, 0x01, 0x2b, 0x00, 0xf0, 0x0d, 0x81, 0x02, 0x2b, 0x00, 0xf0, 0x17, 0x81, 0x8d, 0x48, 0x0a, 0xe1, 0x23, 0x20, 0xff, 0xf7, 0x40, 0xff, 0x41, 0x46, 0x04, 0x90, 0x06, 0x20, 0xff, 0xf7, 0x3b, 0xff, 0x02, 0x28, 0x41, 0x46, 0x38, 0xbf, 0x02, 0x20, 0x02, 0x90, 0x0e, 0x20, 0xff, 0xf7, 0x33, 0xff, 0x41, 0x46, 0x00, 0x90, 0x30, 0x20, 0xff, 0xf7, 0x2e, 0xff, 0x41, 0x46, 0x03, 0x90, 0x22, 0x20, 0xff, 0xf7, 0x29, 0xff, 0x02, 0x9b, 0x05, 0x90, 0x01, 0x93, 0xba, 0xe7, 0x02, 0x2e, 0x36, 0xd1, 0x41, 0x46, 0x32, 0x20, 0xff, 0xf7, 0x1f, 0xff, 0x41, 0x46, 0x04, 0x90, 0x0a, 0x20, 0xff, 0xf7, 0x1a, 0xff, 0x41, 0x46, 0x02, 0x90, 0x14, 0x20, 0xff, 0xf7, 0x15, 0xff, 0x41, 0x46, 0x00, 0x90, 0x41, 0x20, 0xff, 0xf7, 0x10, 0xff, 0x41, 0x46, 0x03, 0x90, 0x08, 0x20, 0xff, 0xf7, 0x0b, 0xff, 0x41, 0x46, 0x05, 0x46, 0x0f, 0x20, 0xff, 0xf7, 0x06, 0xff, 0x41, 0x46, 0x82, 0x46, 0x2d, 0x20, 0x57, 0x46, 0xff, 0xf7, 0x00, 0xff, 0x41, 0x46, 0x05, 0x90, 0x41, 0xf6, 0x78, 0x60, 0xff, 0xf7, 0xfa, 0xfe, 0x10, 0xf0, 0x1f, 0x03, 0x41, 0x46, 0x18, 0xbf, 0x01, 0x23, 0x03, 0xeb, 0x50, 0x1b, 0x4f, 0xf4, 0xa4, 0x70, 0xff, 0xf7, 0xef, 0xfe, 0x01, 0x96, 0x0a, 0x90, 0x83, 0xe7, 0x06, 0x2e, 0x4e, 0xd1, 0x41, 0x46, 0x32, 0x20, 0xff, 0xf7, 0xe6, 0xfe, 0x04, 0x28, 0x41, 0x46, 0x38, 0xbf, 0x04, 0x20, 0x04, 0x90, 0x0a, 0x20, 0xff, 0xf7, 0xde, 0xfe, 0x03, 0x46, 0x41, 0x46, 0x00, 0x28, 0x08, 0xbf, 0x01, 0x23, 0x18, 0x20, 0x02, 0x93, 0xff, 0xf7, 0xd5, 0xfe, 0x02, 0x28, 0x41, 0x46, 0x38, 0xbf, 0x02, 0x20, 0x00, 0x90, 0x46, 0x20, 0xff, 0xf7, 0xcd, 0xfe, 0x41, 0x46, 0x03, 0x90, 0x08, 0x20, 0xff, 0xf7, 0xc8, 0xfe, 0x01, 0x90, 0x30, 0xb3, 0x02, 0x28, 0x05, 0x46, 0x38, 0xbf, 0x02, 0x25, 0x41, 0x46, 0x0f, 0x20, 0xff, 0xf7, 0xbe, 0xfe, 0x02, 0x28, 0x41, 0x46, 0x38, 0xbf, 0x02, 0x20, 0x07, 0x46, 0x11, 0x20, 0xff, 0xf7, 0xb6, 0xfe, 0x41, 0x46, 0x82, 0x46, 0x2a, 0x20, 0xff, 0xf7, 0xb1, 0xfe, 0x41, 0x46, 0x05, 0x90, 0x40, 0xf6, 0x3c, 0x70, 0xff, 0xf7, 0xab, 0xfe, 0x10, 0xf0, 0x1f, 0x03, 0x41, 0x46, 0x18, 0xbf, 0x01, 0x23, 0x03, 0xeb, 0x50, 0x1b, 0xd2, 0x20, 0xff, 0xf7, 0xa1, 0xfe, 0x0a, 0x90, 0x36, 0xe7, 0x01, 0x23, 0x02, 0x25, 0x01, 0x93, 0xd8, 0xe7, 0x07, 0x2e, 0x49, 0xd1, 0x41, 0x46, 0x32, 0x20, 0xff, 0xf7, 0x95, 0xfe, 0x04, 0x28, 0x41, 0x46, 0x38, 0xbf, 0x04, 0x20, 0x04, 0x90, 0x0a, 0x20, 0xff, 0xf7, 0x8d, 0xfe, 0x03, 0x46, 0x41, 0x46, 0x00, 0x28, 0x08, 0xbf, 0x01, 0x23, 0x18, 0x20, 0x02, 0x93, 0xff, 0xf7, 0x84, 0xfe, 0x02, 0x28, 0x41, 0x46, 0x38, 0xbf, 0x02, 0x20, 0x00, 0x90, 0x46, 0x20, 0xff, 0xf7, 0x7c, 0xfe, 0x41, 0x46, 0x03, 0x90, 0x08, 0x20, 0xff, 0xf7, 0x77, 0xfe, 0x02, 0x28, 0x41, 0x46, 0x38, 0xbf, 0x02, 0x20, 0x05, 0x46, 0x0f, 0x20, 0xff, 0xf7, 0x6f, 0xfe, 0x02, 0x28, 0x41, 0x46, 0x38, 0xbf, 0x02, 0x20, 0x07, 0x46, 0x11, 0x20, 0xff, 0xf7, 0x67, 0xfe, 0x41, 0x46, 0x82, 0x46, 0x2a, 0x20, 0xff, 0xf7, 0x62, 0xfe, 0x41, 0x46, 0x05, 0x90, 0x40, 0xf6, 0x3c, 0x70, 0xff, 0xf7, 0x5c, 0xfe, 0x10, 0xf0, 0x1f, 0x03, 0x41, 0x46, 0x18, 0xbf, 0x01, 0x23, 0x03, 0xeb, 0x50, 0x1b, 0xd2, 0x20, 0xff, 0xf7, 0x52, 0xfe, 0x01, 0x95, 0x0a, 0x90, 0xe6, 0xe6, 0x80, 0x23, 0x0e, 0x22, 0x0a, 0x93, 0x0a, 0x23, 0x01, 0x93, 0x10, 0x23, 0x03, 0x25, 0x4f, 0xf0, 0x06, 0x0a, 0xcd, 0xe9, 0x04, 0x32, 0x14, 0x23, 0x4f, 0xf0, 0x62, 0x0b, 0x08, 0x27, 0x03, 0x93, 0xcd, 0xf8, 0x00, 0xa0, 0x02, 0x95, 0xd2, 0xe6, 0x09, 0x48, 0x4f, 0xea, 0x5b, 0x0b, 0xfe, 0xf7, 0xb0, 0xfc, 0x0a, 0x9b, 0x16, 0x95, 0x4b, 0xea, 0x03, 0x33, 0x23, 0x63, 0x02, 0x23, 0x18, 0x93, 0x72, 0xe6, 0x4f, 0xea, 0x9b, 0x0b, 0x02, 0x48, 0xf1, 0xe7, 0x14, 0xd7, 0x02, 0x00, 0xf9, 0xd6, 0x02, 0x00, 0x06, 0xd7, 0x02, 0x00, 0xb4, 0x48, 0xb8, 0xf1, 0xcc, 0x0f, 0x88, 0xbf, 0xb0, 0x46, 0xb4, 0x46, 0x4f, 0xf0, 0x03, 0x06, 0x98, 0xbf, 0x4f, 0xf0, 0x01, 0x08, 0xb6, 0x46, 0xa9, 0xfb, 0x00, 0x01, 0x4f, 0xf4, 0xfa, 0x70, 0x00, 0xfb, 0x02, 0xf0, 0x4f, 0xea, 0x11, 0x13, 0x40, 0xf6, 0x73, 0x61, 0x13, 0x93, 0x8c, 0xbf, 0x04, 0x23, 0x03, 0x23, 0x08, 0x93, 0x40, 0xf6, 0x63, 0x23, 0x88, 0xbf, 0x0b, 0x46, 0x10, 0x93, 0x4f, 0xf4, 0xc8, 0x73, 0x53, 0x43, 0x01, 0x33, 0x0c, 0x93, 0xa3, 0x4b, 0xa0, 0xfb, 0x03, 0x01, 0x04, 0x20, 0x81, 0x46, 0x8b, 0x09, 0x05, 0x21, 0x01, 0x33, 0x0d, 0x93, 0xc8, 0x23, 0x53, 0x43, 0x01, 0x33, 0x0e, 0x93, 0x53, 0x1c, 0x0f, 0x93, 0x7b, 0x1d, 0x12, 0x93, 0x6b, 0x1d, 0x14, 0x93, 0x01, 0x25, 0x15, 0x9b, 0x0b, 0x95, 0x06, 0x93, 0x0c, 0x23, 0x09, 0x93, 0x00, 0x23, 0x07, 0x93, 0x11, 0x93, 0x08, 0x9d, 0x02, 0x35, 0x19, 0x95, 0x16, 0x9d, 0x55, 0x44, 0x2f, 0x46, 0x19, 0x9d, 0xaf, 0x42, 0x3f, 0xbf, 0x08, 0x9f, 0xca, 0xf1, 0x02, 0x05, 0xed, 0x19, 0x16, 0x95, 0x65, 0x8b, 0x0d, 0xb9, 0x10, 0x9d, 0xa5, 0x61, 0x15, 0x9d, 0x67, 0x8c, 0x2d, 0x0c, 0x04, 0xbf, 0x06, 0x9d, 0xe5, 0x61, 0x0f, 0xb9, 0x11, 0x9d, 0x25, 0x62, 0x17, 0x9d, 0x4f, 0xea, 0x0c, 0x3c, 0x27, 0x8b, 0x4c, 0xea, 0x03, 0x4c, 0x09, 0x9b, 0x2d, 0x0c, 0x08, 0xbf, 0x07, 0x9d, 0x4c, 0xea, 0x03, 0x03, 0x08, 0xbf, 0x65, 0x62, 0xb2, 0xf5, 0x48, 0x7f, 0x80, 0x4d, 0x81, 0x4a, 0x2f, 0x60, 0xa7, 0x8b, 0x6f, 0x60, 0x27, 0x8c, 0xaf, 0x60, 0xa7, 0x8c, 0xe4, 0x68, 0xef, 0x60, 0xc4, 0xf3, 0x01, 0x14, 0x45, 0xf8, 0x04, 0x4c, 0xdd, 0xe9, 0x04, 0x54, 0x44, 0xea, 0x05, 0x47, 0x12, 0x9c, 0x01, 0x9d, 0x47, 0xea, 0x04, 0x67, 0x13, 0x9c, 0x47, 0xea, 0x04, 0x27, 0x76, 0x4c, 0x27, 0x60, 0x03, 0x9c, 0x44, 0xea, 0x05, 0x44, 0x16, 0x9d, 0x44, 0xea, 0x05, 0x24, 0x73, 0x4d, 0x2c, 0x60, 0x08, 0x9c, 0x4f, 0xea, 0x04, 0x45, 0x14, 0x9c, 0x45, 0xea, 0x0e, 0x6e, 0x4e, 0xea, 0x04, 0x05, 0x6f, 0x4c, 0x45, 0xea, 0x09, 0x25, 0x25, 0x60, 0x63, 0x60, 0x18, 0x9b, 0x00, 0x9c, 0x4f, 0xea, 0x03, 0x43, 0x43, 0xea, 0x04, 0x63, 0x02, 0x9c, 0x43, 0xea, 0x0a, 0x03, 0x43, 0xea, 0x04, 0x23, 0x68, 0x4c, 0x23, 0x60, 0x4f, 0xea, 0x01, 0x43, 0x43, 0xea, 0x01, 0x61, 0x66, 0x4b, 0x46, 0xea, 0x01, 0x06, 0x65, 0x49, 0x46, 0xea, 0x00, 0x20, 0x18, 0x60, 0x64, 0x4b, 0x08, 0x68, 0x03, 0xea, 0x00, 0x03, 0x62, 0x48, 0x43, 0xf0, 0x70, 0x43, 0x94, 0xbf, 0x43, 0xf4, 0xcc, 0x43, 0x43, 0xf4, 0xec, 0x43, 0x43, 0xf0, 0x10, 0x03, 0x0b, 0x60, 0x00, 0xea, 0xcb, 0x30, 0x0b, 0x9b, 0x43, 0xf0, 0x00, 0x73, 0x43, 0xf4, 0x80, 0x73, 0x43, 0xea, 0x08, 0x43, 0x13, 0x60, 0xdd, 0xe9, 0x0c, 0x32, 0x43, 0xea, 0x02, 0x53, 0x57, 0x4a, 0x13, 0x60, 0xdd, 0xe9, 0x0e, 0x32, 0x43, 0xea, 0x02, 0x53, 0x55, 0x4a, 0x13, 0x60, 0x0a, 0x9b, 0x43, 0xea, 0x0b, 0x43, 0xd3, 0x63, 0x53, 0x4b, 0x18, 0x60, 0x1b, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x43, 0x48, 0xb2, 0xf5, 0x48, 0x7f, 0x8c, 0xbf, 0x4f, 0xf0, 0x05, 0x08, 0x4f, 0xf0, 0x04, 0x08, 0x07, 0xf1, 0x02, 0x07, 0x05, 0xf1, 0x02, 0x05, 0xc6, 0x46, 0xa9, 0xfb, 0x00, 0x01, 0x4f, 0xf4, 0xb4, 0x70, 0x00, 0xfb, 0x02, 0xf0, 0x4f, 0xea, 0x11, 0x13, 0x41, 0xf6, 0x14, 0x61, 0x13, 0x93, 0x8c, 0xbf, 0x07, 0x23, 0x06, 0x23, 0x08, 0x93, 0x8c, 0xbf, 0x33, 0x46, 0x02, 0x23, 0x0b, 0x93, 0x8c, 0xbf, 0x20, 0x23, 0x18, 0x23, 0x11, 0x93, 0x41, 0xf6, 0x70, 0x43, 0x88, 0xbf, 0x0b, 0x46, 0x10, 0x93, 0x4f, 0xf4, 0xfa, 0x73, 0x53, 0x43, 0x01, 0x33, 0x0c, 0x93, 0x2d, 0x4b, 0xa0, 0xfb, 0x03, 0x01, 0x04, 0x20, 0x8b, 0x09, 0x05, 0x21, 0x01, 0x33, 0x0d, 0x93, 0xc8, 0x23, 0x53, 0x43, 0x01, 0x33, 0x0e, 0x93, 0x53, 0x1c, 0x0f, 0x93, 0x07, 0xeb, 0x08, 0x03, 0x12, 0x93, 0x05, 0xeb, 0x08, 0x03, 0x14, 0x93, 0x06, 0x9b, 0xc3, 0xf3, 0x81, 0x03, 0x01, 0x2b, 0x15, 0x9b, 0x06, 0x93, 0x00, 0xf0, 0xc8, 0x80, 0xb2, 0xf5, 0x64, 0x7f, 0x40, 0xf2, 0xc4, 0x80, 0x4f, 0xf0, 0x06, 0x09, 0x0c, 0x23, 0x84, 0x46, 0x09, 0x93, 0x00, 0x23, 0x07, 0x93, 0x08, 0xe7, 0x18, 0x48, 0x11, 0x96, 0x02, 0x26, 0xb6, 0x46, 0xa9, 0xfb, 0x00, 0x01, 0x64, 0x20, 0x4f, 0xf0, 0x0a, 0x09, 0x50, 0x43, 0x4b, 0x09, 0x13, 0x93, 0xc8, 0x23, 0x53, 0x43, 0x01, 0x33, 0x0c, 0x93, 0x11, 0x4b, 0xa0, 0xfb, 0x03, 0x01, 0x8b, 0x09, 0x05, 0x21, 0x08, 0x46, 0x09, 0x91, 0x01, 0x33, 0x8c, 0x46, 0x0d, 0x93, 0x0b, 0x23, 0x53, 0x43, 0x01, 0x33, 0x0e, 0x93, 0x53, 0x1c, 0x0f, 0x93, 0x7b, 0x1d, 0x12, 0x93, 0x6b, 0x1d, 0x14, 0x93, 0x04, 0x27, 0x17, 0x9b, 0x08, 0x97, 0x01, 0x27, 0x0b, 0x97, 0x07, 0x93, 0x03, 0x23, 0x98, 0x46, 0xc3, 0x25, 0x06, 0x95, 0x00, 0x25, 0x10, 0x95, 0xd7, 0xe6, 0x00, 0xbf, 0x89, 0x88, 0x88, 0x88, 0xd3, 0x4d, 0x62, 0x10, 0x30, 0x30, 0x10, 0x03, 0x80, 0x30, 0x10, 0x03, 0x58, 0x30, 0x10, 0x03, 0x5c, 0x30, 0x10, 0x03, 0x60, 0x30, 0x10, 0x03, 0x68, 0x30, 0x10, 0x03, 0x6c, 0x30, 0x10, 0x03, 0x78, 0x30, 0x10, 0x03, 0x00, 0x00, 0xff, 0x0f, 0x50, 0x30, 0x10, 0x03, 0x54, 0x30, 0x10, 0x03, 0x94, 0x30, 0x10, 0x03, 0x37, 0x48, 0xb2, 0xf5, 0x48, 0x7f, 0x8c, 0xbf, 0x4f, 0xf0, 0x04, 0x0e, 0x4f, 0xf0, 0x03, 0x0e, 0x07, 0xf1, 0x05, 0x07, 0x05, 0xf1, 0x05, 0x05, 0x8c, 0xbf, 0x4f, 0xf0, 0x06, 0x08, 0x4f, 0xf0, 0x05, 0x08, 0xa9, 0xfb, 0x00, 0x01, 0x4f, 0xf0, 0x64, 0x00, 0x4f, 0xf0, 0x0d, 0x09, 0x00, 0xfb, 0x02, 0xf0, 0x4f, 0xea, 0x51, 0x13, 0x13, 0x93, 0x8c, 0xbf, 0x03, 0x23, 0x02, 0x23, 0x0b, 0x93, 0x8c, 0xbf, 0x0c, 0x23, 0x0a, 0x23, 0x11, 0x93, 0x4f, 0xf0, 0xc8, 0x03, 0x03, 0xfb, 0x02, 0xf3, 0x03, 0xf1, 0x01, 0x03, 0x0c, 0x93, 0x23, 0x4b, 0xa0, 0xfb, 0x03, 0x01, 0x4f, 0xea, 0x91, 0x13, 0x4f, 0xf0, 0x05, 0x01, 0x08, 0x46, 0x03, 0xf1, 0x01, 0x03, 0x8c, 0x46, 0x0d, 0x93, 0x4f, 0xf0, 0x0b, 0x03, 0x03, 0xfb, 0x02, 0xf3, 0x03, 0xf1, 0x01, 0x03, 0x0e, 0x93, 0x02, 0xf1, 0x01, 0x03, 0x0f, 0x93, 0x07, 0xeb, 0x0e, 0x03, 0x12, 0x93, 0x05, 0xeb, 0x0e, 0x03, 0x14, 0x93, 0x8c, 0xbf, 0x33, 0x46, 0x06, 0x23, 0x03, 0x26, 0x08, 0x93, 0x17, 0x9b, 0x07, 0x93, 0x0c, 0x23, 0x09, 0x93, 0x0b, 0x46, 0x8b, 0xe7, 0x1b, 0x23, 0x08, 0x25, 0xcd, 0xe9, 0x13, 0x35, 0x0c, 0x23, 0x12, 0x93, 0x06, 0x23, 0x03, 0x20, 0x01, 0x25, 0x04, 0x21, 0x02, 0x26, 0x09, 0x93, 0x00, 0x23, 0x89, 0x46, 0xb4, 0x46, 0x86, 0x46, 0x08, 0x90, 0x0b, 0x95, 0xa8, 0x46, 0x07, 0x93, 0x11, 0x93, 0x06, 0x93, 0xcd, 0xe9, 0x0f, 0x33, 0xcd, 0xe9, 0x0d, 0x33, 0x0c, 0x93, 0x4c, 0xe6, 0x89, 0x46, 0x3b, 0xe7, 0x89, 0x88, 0x88, 0x88, 0xd3, 0x4d, 0x62, 0x10, 0xf8, 0xb5, 0x15, 0x46, 0x1d, 0x4a, 0x1c, 0x46, 0xa1, 0xfb, 0x02, 0x23, 0x1e, 0x09, 0x18, 0x23, 0x73, 0x43, 0x8b, 0x42, 0x30, 0xd0, 0x2b, 0x68, 0x08, 0x46, 0x9b, 0x07, 0x42, 0xbf, 0x23, 0x68, 0x43, 0xf4, 0x00, 0x23, 0x23, 0x60, 0xfd, 0xf7, 0x7d, 0xfb, 0x15, 0x49, 0xfd, 0xf7, 0x86, 0xfc, 0x07, 0x46, 0x30, 0x46, 0xfd, 0xf7, 0x76, 0xfb, 0x01, 0x46, 0x38, 0x46, 0xfd, 0xf7, 0xc0, 0xfa, 0x4f, 0xf0, 0x90, 0x41, 0xfd, 0xf7, 0xc6, 0xfb, 0xfd, 0xf7, 0x14, 0xfd, 0x20, 0x60, 0x14, 0x20, 0x21, 0x68, 0x21, 0xf0, 0x7f, 0x41, 0x21, 0xf4, 0x76, 0x01, 0x41, 0xf0, 0x60, 0x41, 0x41, 0xf4, 0xc0, 0x21, 0x21, 0x60, 0xfd, 0xf7, 0x5d, 0xfd, 0x2b, 0x68, 0x43, 0xf0, 0x80, 0x73, 0x2b, 0x60, 0x20, 0x68, 0xc0, 0xf3, 0x10, 0x00, 0xf8, 0xbd, 0x00, 0x20, 0xfc, 0xe7, 0xab, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xc0, 0x41, 0x0b, 0x68, 0x10, 0xb5, 0x0c, 0x46, 0x9b, 0x07, 0x42, 0xbf, 0x13, 0x68, 0x43, 0xf4, 0x00, 0x23, 0x13, 0x60, 0xc3, 0x6d, 0xc3, 0xf3, 0x02, 0x53, 0x01, 0x3b, 0x04, 0x2b, 0x15, 0xd8, 0xdf, 0xe8, 0x03, 0xf0, 0x03, 0x0e, 0x10, 0x14, 0x12, 0x00, 0x09, 0x4b, 0x13, 0x60, 0x14, 0x20, 0xfd, 0xf7, 0x36, 0xfd, 0x23, 0x68, 0x00, 0x20, 0x43, 0xf0, 0x80, 0x73, 0x23, 0x60, 0x10, 0xbd, 0x05, 0x4b, 0xf3, 0xe7, 0x05, 0x4b, 0xf1, 0xe7, 0x05, 0x4b, 0xef, 0xe7, 0x05, 0x4b, 0xed, 0xe7, 0x00, 0xbf, 0xcc, 0xcc, 0x86, 0xe4, 0x99, 0x99, 0x06, 0xe9, 0x66, 0x66, 0x86, 0xed, 0x00, 0x00, 0x86, 0xf5, 0x33, 0x33, 0x06, 0xf2, 0x38, 0xb5, 0xcb, 0x6d, 0x19, 0x4c, 0xc3, 0xf3, 0x80, 0x13, 0x83, 0x42, 0x18, 0x4b, 0x0c, 0xbf, 0x0a, 0x68, 0xca, 0x6c, 0x21, 0x68, 0x52, 0x00, 0xa2, 0xfb, 0x03, 0x23, 0x15, 0x4a, 0x0a, 0x40, 0x42, 0xf0, 0x40, 0x42, 0x1d, 0x09, 0x69, 0x1e, 0x42, 0xea, 0x01, 0x22, 0x22, 0x60, 0x22, 0x68, 0x22, 0xf0, 0x00, 0x52, 0x22, 0x60, 0x22, 0x68, 0x42, 0xf0, 0x00, 0x52, 0x22, 0x60, 0x23, 0x68, 0xdb, 0x00, 0xfc, 0xd5, 0x14, 0x20, 0xfd, 0xf7, 0xf8, 0xfc, 0x23, 0x68, 0x18, 0x20, 0x0a, 0x4a, 0x68, 0x43, 0x43, 0xf0, 0x00, 0x63, 0x23, 0x60, 0x13, 0x68, 0x23, 0xf0, 0x03, 0x23, 0x23, 0xf0, 0x03, 0x03, 0x43, 0xf0, 0x00, 0x43, 0x13, 0x60, 0x38, 0xbd, 0x00, 0xbf, 0x10, 0x10, 0x00, 0x02, 0xab, 0xaa, 0xaa, 0xaa, 0xfc, 0x00, 0xf8, 0xff, 0x00, 0x18, 0x00, 0x02, 0xf8, 0xb5, 0x07, 0x46, 0x27, 0x4e, 0x0a, 0x20, 0x27, 0x4d, 0x33, 0x68, 0x27, 0x4c, 0x23, 0xf0, 0x80, 0x43, 0x33, 0x60, 0x2b, 0x68, 0x23, 0xf0, 0x01, 0x03, 0x2b, 0x60, 0x2b, 0x68, 0x23, 0xf4, 0x80, 0x33, 0x2b, 0x60, 0x23, 0x68, 0x23, 0xf0, 0x80, 0x43, 0x23, 0x60, 0x23, 0x68, 0x23, 0xf0, 0x00, 0x43, 0x23, 0x60, 0x23, 0x68, 0x43, 0xf0, 0x00, 0x63, 0x23, 0x60, 0xfd, 0xf7, 0xbf, 0xfc, 0x39, 0x46, 0x00, 0x20, 0xff, 0xf7, 0x9e, 0xff, 0x40, 0x08, 0x38, 0x60, 0x64, 0x20, 0xfd, 0xf7, 0xb6, 0xfc, 0xff, 0xf7, 0x05, 0xfa, 0x2b, 0x68, 0x05, 0x20, 0x43, 0xf4, 0x80, 0x33, 0x2b, 0x60, 0x33, 0x68, 0x43, 0xf0, 0x80, 0x43, 0x33, 0x60, 0x23, 0x68, 0x43, 0xf0, 0x80, 0x43, 0x23, 0x60, 0xfd, 0xf7, 0xa5, 0xfc, 0x2b, 0x68, 0x05, 0x20, 0x43, 0xf0, 0x01, 0x03, 0x2b, 0x60, 0x23, 0x68, 0x43, 0xf0, 0x00, 0x43, 0x23, 0x60, 0x23, 0x68, 0x43, 0xf0, 0x00, 0x63, 0x23, 0x60, 0xfd, 0xf7, 0x96, 0xfc, 0x07, 0x4b, 0x4f, 0xf4, 0x00, 0x42, 0x0a, 0x20, 0x1a, 0x60, 0xfd, 0xf7, 0x8f, 0xfc, 0x00, 0x20, 0xf8, 0xbd, 0x40, 0x15, 0x00, 0x02, 0x0c, 0x18, 0x00, 0x02, 0x00, 0x18, 0x00, 0x02, 0x0c, 0x30, 0x10, 0x03, 0x4e, 0x4a, 0x2d, 0xe9, 0xf0, 0x41, 0x4e, 0x4c, 0x13, 0x68, 0x45, 0x68, 0x41, 0x69, 0x23, 0xf4, 0x7c, 0x53, 0x43, 0xf4, 0x00, 0x53, 0x13, 0x60, 0x2a, 0x04, 0x23, 0x68, 0x11, 0xf0, 0x01, 0x07, 0x02, 0xf4, 0xe0, 0x22, 0xa5, 0xf1, 0x06, 0x05, 0x23, 0xf4, 0x7f, 0x03, 0x23, 0xf4, 0x70, 0x43, 0x43, 0xf4, 0x80, 0x03, 0x42, 0xea, 0x03, 0x02, 0x14, 0xbf, 0x00, 0x23, 0x4f, 0xf4, 0x80, 0x53, 0x01, 0x2d, 0x43, 0xea, 0x02, 0x03, 0x89, 0xbf, 0xc2, 0x6d, 0x43, 0xf4, 0x00, 0x23, 0x92, 0x03, 0x02, 0xf4, 0x00, 0x22, 0x88, 0xbf, 0x13, 0x43, 0x23, 0x60, 0xcb, 0x05, 0x4f, 0xea, 0x11, 0x34, 0x34, 0xd5, 0x04, 0xf0, 0x0f, 0x03, 0x01, 0x2b, 0x0c, 0xbf, 0x02, 0x21, 0x01, 0x21, 0x09, 0x01, 0x06, 0x69, 0x33, 0x4d, 0x04, 0xf0, 0x03, 0x04, 0xdf, 0xf8, 0xd8, 0xc0, 0x04, 0x31, 0x04, 0x22, 0x2b, 0x68, 0x03, 0xea, 0x0c, 0x0e, 0x02, 0xf1, 0x08, 0x03, 0x26, 0xfa, 0x03, 0xf3, 0x4e, 0xea, 0x04, 0x0e, 0x9b, 0x00, 0x03, 0xf0, 0x04, 0x03, 0x43, 0xea, 0x0e, 0x0e, 0x26, 0xfa, 0x02, 0xf3, 0x01, 0x3b, 0x1b, 0x01, 0xdb, 0xb2, 0x43, 0xea, 0x0e, 0x03, 0xa2, 0xf1, 0x04, 0x0e, 0x26, 0xfa, 0x0e, 0xfe, 0x0e, 0xf0, 0x0f, 0x0e, 0x0e, 0xf1, 0xff, 0x3e, 0xbe, 0xf1, 0x07, 0x0f, 0x39, 0xd8, 0xdf, 0xe8, 0x0e, 0xf0, 0x35, 0x32, 0x38, 0x2f, 0x38, 0x38, 0x38, 0x06, 0x01, 0x21, 0xce, 0xe7, 0x43, 0xf4, 0x20, 0x63, 0x10, 0x32, 0x45, 0xf8, 0x04, 0x3b, 0x91, 0x42, 0xd0, 0xd1, 0x18, 0x4b, 0x40, 0xf2, 0x03, 0x32, 0x1b, 0x68, 0x13, 0xf0, 0x01, 0x0f, 0x40, 0xf2, 0x01, 0x23, 0x18, 0xbf, 0x13, 0x46, 0x14, 0x4a, 0x13, 0x60, 0x17, 0xb1, 0x13, 0x4b, 0x00, 0x22, 0x1a, 0x60, 0x81, 0x6b, 0x69, 0xb1, 0x0f, 0x4b, 0x4a, 0x06, 0x02, 0xf0, 0xc0, 0x62, 0x18, 0x68, 0x02, 0x43, 0x1a, 0x60, 0x0e, 0x4a, 0x0f, 0x4b, 0x10, 0x68, 0x03, 0xea, 0x81, 0x23, 0x03, 0x43, 0x13, 0x60, 0xbd, 0xe8, 0xf0, 0x81, 0x43, 0xf4, 0x10, 0x63, 0xd5, 0xe7, 0x43, 0xf4, 0x00, 0x63, 0xd2, 0xe7, 0x43, 0xf4, 0xe0, 0x63, 0xcf, 0xe7, 0x43, 0xf4, 0xc0, 0x63, 0xcc, 0xe7, 0x00, 0xbf, 0x08, 0x20, 0x10, 0x03, 0x00, 0x20, 0x10, 0x03, 0x20, 0x31, 0x10, 0x03, 0xc4, 0x33, 0x10, 0x03, 0x04, 0x20, 0x10, 0x03, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xb6, 0x4b, 0x16, 0x22, 0x70, 0xb5, 0xbc, 0xb0, 0x06, 0x46, 0x00, 0x21, 0x68, 0x46, 0x1d, 0x68, 0x9c, 0x6a, 0xfd, 0xf7, 0x2f, 0xff, 0x16, 0x22, 0xb1, 0x49, 0x06, 0xa8, 0xc4, 0xf3, 0x03, 0x24, 0xfd, 0xf7, 0x2e, 0xff, 0x16, 0x22, 0xaf, 0x49, 0x0c, 0xa8, 0xc5, 0xf3, 0x07, 0x25, 0xfd, 0xf7, 0x27, 0xff, 0x16, 0x22, 0xac, 0x49, 0x12, 0xa8, 0xfd, 0xf7, 0x22, 0xff, 0x16, 0x22, 0xab, 0x49, 0x18, 0xa8, 0xfd, 0xf7, 0x1d, 0xff, 0x16, 0x22, 0xa9, 0x49, 0x1e, 0xa8, 0xfd, 0xf7, 0x18, 0xff, 0x16, 0x22, 0xa8, 0x49, 0x24, 0xa8, 0xfd, 0xf7, 0x13, 0xff, 0x16, 0x22, 0xa6, 0x49, 0x2a, 0xa8, 0xfd, 0xf7, 0x0e, 0xff, 0x16, 0x22, 0xa5, 0x49, 0x30, 0xa8, 0xfd, 0xf7, 0x09, 0xff, 0x16, 0x22, 0xa3, 0x49, 0x36, 0xa8, 0xfd, 0xf7, 0x04, 0xff, 0x21, 0x46, 0xa2, 0x48, 0xfe, 0xf7, 0xac, 0xf8, 0xf3, 0x6d, 0x13, 0xf4, 0x40, 0x2f, 0x26, 0xd1, 0x50, 0x2d, 0x24, 0xd0, 0x7c, 0x2d, 0x22, 0xd0, 0xa4, 0xf1, 0x08, 0x03, 0x06, 0x2b, 0x1b, 0xd8, 0xdf, 0xe8, 0x03, 0xf0, 0x11, 0x14, 0x17, 0x1a, 0x04, 0x09, 0x09, 0x00, 0x16, 0x22, 0x06, 0xa9, 0x68, 0x46, 0xff, 0xf7, 0x77, 0xf8, 0x73, 0x68, 0x02, 0x2b, 0x21, 0xd0, 0x03, 0x2b, 0x00, 0xf0, 0xa1, 0x80, 0x3c, 0xb0, 0x70, 0xbd, 0x16, 0x22, 0x0c, 0xa9, 0xf1, 0xe7, 0x16, 0x22, 0x12, 0xa9, 0xee, 0xe7, 0x16, 0x22, 0x1e, 0xa9, 0xeb, 0xe7, 0x16, 0x22, 0x18, 0xa9, 0xe8, 0xe7, 0x59, 0x03, 0x01, 0xd4, 0x50, 0x2d, 0x04, 0xd1, 0x16, 0x22, 0x2a, 0xa9, 0x68, 0x46, 0xff, 0xf7, 0x5a, 0xf8, 0xf3, 0x6d, 0x1a, 0x03, 0x01, 0xd4, 0x7c, 0x2d, 0xdd, 0xd1, 0x16, 0x22, 0x30, 0xa9, 0xd7, 0xe7, 0xf3, 0x6d, 0x1b, 0x03, 0x01, 0xd4, 0x7c, 0x2d, 0x73, 0xd1, 0x16, 0x22, 0x36, 0xa9, 0x68, 0x46, 0xff, 0xf7, 0x48, 0xf8, 0x9d, 0xf8, 0x01, 0x30, 0x9d, 0xf8, 0x00, 0x20, 0x9b, 0x02, 0x43, 0xea, 0x42, 0x13, 0x9d, 0xf8, 0x02, 0x20, 0x43, 0xea, 0xc2, 0x33, 0x9d, 0xf8, 0x03, 0x20, 0x43, 0xea, 0x02, 0x53, 0x9d, 0xf8, 0x04, 0x20, 0x43, 0xea, 0x42, 0x63, 0x75, 0x4a, 0x13, 0x60, 0x9d, 0xf8, 0x07, 0x30, 0x9d, 0xf8, 0x06, 0x10, 0x9b, 0x02, 0x43, 0xea, 0x41, 0x13, 0x9d, 0xf8, 0x05, 0x10, 0x0b, 0x43, 0x9d, 0xf8, 0x08, 0x10, 0x43, 0xea, 0xc1, 0x33, 0x9d, 0xf8, 0x09, 0x10, 0x43, 0xea, 0x01, 0x53, 0x9d, 0xf8, 0x0a, 0x10, 0x43, 0xea, 0x41, 0x63, 0x6a, 0x49, 0x0b, 0x60, 0x9d, 0xf8, 0x0d, 0x30, 0x9d, 0xf8, 0x0c, 0x10, 0x9b, 0x02, 0x43, 0xea, 0x41, 0x13, 0x9d, 0xf8, 0x0b, 0x10, 0x0b, 0x43, 0x9d, 0xf8, 0x0e, 0x10, 0x43, 0xea, 0xc1, 0x33, 0x9d, 0xf8, 0x0f, 0x10, 0x43, 0xea, 0x01, 0x53, 0x61, 0x49, 0x0b, 0x60, 0x9d, 0xf8, 0x12, 0x30, 0x9d, 0xf8, 0x11, 0x10, 0x9b, 0x02, 0x43, 0xea, 0x41, 0x13, 0x9d, 0xf8, 0x10, 0x10, 0x0b, 0x43, 0x9d, 0xf8, 0x13, 0x10, 0x43, 0xea, 0xc1, 0x33, 0x9d, 0xf8, 0x14, 0x10, 0x43, 0xea, 0x01, 0x53, 0x9d, 0xf8, 0x15, 0x10, 0x43, 0xea, 0x41, 0x63, 0x56, 0x49, 0x0b, 0x60, 0x9d, 0xf8, 0x01, 0x30, 0x9d, 0xf8, 0x00, 0x10, 0x9b, 0x02, 0x43, 0xea, 0x41, 0x13, 0x9d, 0xf8, 0x02, 0x10, 0x43, 0xf0, 0x01, 0x03, 0x43, 0xea, 0xc1, 0x33, 0x9d, 0xf8, 0x03, 0x10, 0x43, 0xea, 0x01, 0x53, 0x9d, 0xf8, 0x04, 0x10, 0x43, 0xea, 0x41, 0x63, 0x13, 0x60, 0x0d, 0x3c, 0x01, 0x2c, 0x3f, 0xf6, 0x64, 0xaf, 0x16, 0x22, 0x24, 0xa9, 0x68, 0x46, 0xfe, 0xf7, 0xd0, 0xff, 0x9d, 0xf8, 0x01, 0x30, 0x9d, 0xf8, 0x00, 0x20, 0x9b, 0x02, 0x43, 0xea, 0x42, 0x13, 0x9d, 0xf8, 0x02, 0x20, 0x43, 0xea, 0xc2, 0x33, 0x9d, 0xf8, 0x03, 0x20, 0x43, 0xea, 0x02, 0x53, 0x9d, 0xf8, 0x04, 0x20, 0x43, 0xea, 0x42, 0x63, 0x39, 0x4a, 0x13, 0x60, 0x9d, 0xf8, 0x07, 0x30, 0x9d, 0xf8, 0x06, 0x10, 0x9b, 0x02, 0x43, 0xea, 0x41, 0x13, 0x9d, 0xf8, 0x05, 0x10, 0x0b, 0x43, 0x9d, 0xf8, 0x08, 0x10, 0x43, 0xea, 0xc1, 0x33, 0x9d, 0xf8, 0x09, 0x10, 0x43, 0xea, 0x01, 0x53, 0x9d, 0xf8, 0x0a, 0x10, 0x43, 0xea, 0x41, 0x63, 0x2e, 0x49, 0x0b, 0x60, 0x9d, 0xf8, 0x0d, 0x30, 0x9d, 0xf8, 0x0c, 0x10, 0x9b, 0x02, 0x43, 0xea, 0x41, 0x13, 0x9d, 0xf8, 0x0b, 0x10, 0x0b, 0x43, 0x9d, 0xf8, 0x0e, 0x10, 0x43, 0xea, 0xc1, 0x33, 0x9d, 0xf8, 0x0f, 0x10, 0x43, 0xea, 0x01, 0x53, 0x25, 0x49, 0x0b, 0x60, 0x9d, 0xf8, 0x12, 0x30, 0x9d, 0xf8, 0x11, 0x10, 0x9b, 0x02, 0x43, 0xea, 0x41, 0x13, 0x9d, 0xf8, 0x10, 0x10, 0x0b, 0x43, 0x9d, 0xf8, 0x13, 0x10, 0x43, 0xea, 0xc1, 0x33, 0x9d, 0xf8, 0x14, 0x10, 0x43, 0xea, 0x01, 0x53, 0x9d, 0xf8, 0x15, 0x10, 0x43, 0xea, 0x41, 0x63, 0x1a, 0x49, 0x0b, 0x60, 0x9d, 0xf8, 0x01, 0x30, 0x9d, 0xf8, 0x00, 0x10, 0x9b, 0x02, 0x43, 0xea, 0x41, 0x13, 0x9d, 0xf8, 0x02, 0x10, 0x43, 0xf0, 0x01, 0x03, 0x43, 0xea, 0xc1, 0x33, 0x9d, 0xf8, 0x03, 0x10, 0x43, 0xea, 0x01, 0x53, 0x9d, 0xf8, 0x04, 0x10, 0x43, 0xea, 0x41, 0x63, 0x13, 0x60, 0xee, 0xe6, 0x00, 0x62, 0x00, 0x03, 0x10, 0xd4, 0x02, 0x00, 0x26, 0xd4, 0x02, 0x00, 0x3c, 0xd4, 0x02, 0x00, 0x52, 0xd4, 0x02, 0x00, 0x68, 0xd4, 0x02, 0x00, 0x7e, 0xd4, 0x02, 0x00, 0x94, 0xd4, 0x02, 0x00, 0xaa, 0xd4, 0x02, 0x00, 0xc0, 0xd4, 0x02, 0x00, 0x21, 0xd7, 0x02, 0x00, 0x00, 0x25, 0x10, 0x03, 0x04, 0x25, 0x10, 0x03, 0x08, 0x25, 0x10, 0x03, 0x0c, 0x25, 0x10, 0x03, 0xa9, 0x48, 0x2d, 0xe9, 0xf8, 0x43, 0x0e, 0x46, 0xcc, 0x6d, 0x09, 0x68, 0x02, 0x68, 0xc4, 0xf3, 0x81, 0x04, 0xa6, 0x4d, 0xb1, 0xf5, 0x28, 0x7f, 0x4f, 0xea, 0x51, 0x03, 0x22, 0xf4, 0x7f, 0x62, 0x22, 0xf0, 0x0f, 0x02, 0x03, 0xf1, 0xff, 0x33, 0x43, 0xea, 0x02, 0x03, 0xf2, 0x68, 0x03, 0x60, 0x00, 0xf5, 0x99, 0x50, 0x2b, 0x68, 0x00, 0xf1, 0x18, 0x00, 0x6f, 0xea, 0x02, 0x02, 0x4f, 0xea, 0x42, 0x12, 0x23, 0xf4, 0x70, 0x63, 0x43, 0xf4, 0x40, 0x73, 0x02, 0xf0, 0x20, 0x02, 0x2b, 0x60, 0x03, 0x68, 0x23, 0xf0, 0x30, 0x03, 0x43, 0xea, 0x02, 0x03, 0x8b, 0xbf, 0x23, 0xf4, 0x76, 0x43, 0x23, 0xf4, 0x70, 0x43, 0x23, 0xf0, 0x1e, 0x03, 0x23, 0xf0, 0x1e, 0x03, 0x88, 0xbf, 0x43, 0xf4, 0x80, 0x63, 0xb1, 0xf5, 0x28, 0x7f, 0x03, 0x60, 0x8d, 0x48, 0x03, 0x68, 0x23, 0xf0, 0x30, 0x03, 0x43, 0xea, 0x02, 0x03, 0x8b, 0x4a, 0x8b, 0xbf, 0x23, 0xf4, 0x76, 0x43, 0x23, 0xf4, 0x70, 0x43, 0x23, 0xf0, 0x1e, 0x03, 0x23, 0xf0, 0x1e, 0x03, 0x88, 0xbf, 0x43, 0xf4, 0x80, 0x63, 0x03, 0x60, 0x30, 0x46, 0x13, 0x68, 0x43, 0xf0, 0x02, 0x03, 0x13, 0x60, 0xfe, 0xf7, 0x55, 0xff, 0x01, 0x2c, 0x0e, 0xd0, 0x02, 0x2c, 0x00, 0xf0, 0xcd, 0x80, 0x2b, 0x68, 0x0a, 0x20, 0x23, 0xf0, 0x40, 0x03, 0x2b, 0x60, 0xfd, 0xf7, 0xea, 0xf9, 0x2b, 0x68, 0x43, 0xf0, 0xc0, 0x03, 0x2b, 0x60, 0x0a, 0xe0, 0x2b, 0x68, 0x79, 0x4a, 0x23, 0xf0, 0xc0, 0x03, 0x2b, 0x60, 0x13, 0x68, 0x23, 0xf4, 0x83, 0x73, 0x23, 0xf0, 0x01, 0x03, 0x13, 0x60, 0x73, 0x68, 0x06, 0x3b, 0x01, 0x2b, 0x0f, 0xd8, 0x73, 0x4a, 0x01, 0x2c, 0x13, 0x68, 0x0b, 0xbf, 0x23, 0xf0, 0x00, 0x63, 0x23, 0xf0, 0xee, 0x43, 0x23, 0xf0, 0xc0, 0x03, 0x43, 0xf0, 0x08, 0x53, 0x08, 0xbf, 0x43, 0xf0, 0x00, 0x43, 0x13, 0x60, 0x73, 0x69, 0x6b, 0x4a, 0x13, 0xf4, 0x80, 0x5f, 0x13, 0xbf, 0x13, 0x68, 0x11, 0x68, 0x69, 0x4b, 0x03, 0xf0, 0x70, 0x43, 0x15, 0xbf, 0x43, 0xf0, 0x40, 0x73, 0x01, 0xf0, 0x70, 0x41, 0x43, 0xf0, 0x01, 0x03, 0x0b, 0x43, 0x13, 0x60, 0x64, 0x4b, 0x1b, 0x68, 0xd9, 0x03, 0x07, 0xd5, 0x63, 0x4a, 0x0a, 0x20, 0x13, 0x68, 0x23, 0xf0, 0x02, 0x03, 0x13, 0x60, 0xfd, 0xf7, 0xa7, 0xf9, 0x60, 0x49, 0x01, 0x2c, 0x60, 0x4f, 0x0b, 0x68, 0x03, 0xf0, 0x7c, 0x43, 0x43, 0xf0, 0x00, 0x72, 0xb3, 0x68, 0x23, 0xf0, 0x7f, 0x43, 0x43, 0xea, 0x02, 0x03, 0x0b, 0x60, 0x40, 0xf0, 0x8f, 0x80, 0x5a, 0x4b, 0x52, 0x22, 0x1a, 0x60, 0x53, 0x22, 0x1a, 0x60, 0x3b, 0x68, 0xda, 0x07, 0xfc, 0xd5, 0x0a, 0x20, 0xfd, 0xf7, 0x8c, 0xf9, 0x73, 0x68, 0x03, 0x2b, 0x14, 0xbf, 0x4f, 0xf4, 0xa4, 0x63, 0x4f, 0xf4, 0xb4, 0x63, 0x51, 0x4a, 0x0a, 0x20, 0x13, 0x60, 0x43, 0xf0, 0x01, 0x03, 0x13, 0x60, 0xfd, 0xf7, 0x7d, 0xf9, 0x3b, 0x68, 0xd8, 0x07, 0xfc, 0xd5, 0x48, 0x4b, 0x1b, 0x68, 0xd9, 0x03, 0x43, 0xd5, 0x4b, 0x4e, 0x0a, 0x20, 0x33, 0x68, 0x23, 0xf0, 0xc0, 0x63, 0x43, 0xf0, 0x80, 0x63, 0x33, 0x60, 0xfd, 0xf7, 0x6c, 0xf9, 0x47, 0x4b, 0x1a, 0x68, 0x98, 0x46, 0x42, 0xf0, 0x01, 0x02, 0x1a, 0x60, 0x45, 0x4a, 0x91, 0x46, 0x13, 0x68, 0x03, 0xf0, 0x07, 0x03, 0x03, 0x2b, 0xfa, 0xd1, 0x3b, 0x4a, 0x0a, 0x20, 0x13, 0x68, 0x23, 0xf0, 0x01, 0x03, 0x13, 0x60, 0xfd, 0xf7, 0x57, 0xf9, 0xd8, 0xf8, 0x00, 0x30, 0x23, 0xf0, 0x01, 0x03, 0xc8, 0xf8, 0x00, 0x30, 0xd9, 0xf8, 0x00, 0x30, 0x03, 0xf0, 0x07, 0x03, 0x01, 0x2b, 0xf9, 0xd1, 0x0f, 0x20, 0xfd, 0xf7, 0x48, 0xf9, 0x01, 0x2c, 0x13, 0xd1, 0x2b, 0x68, 0x20, 0x46, 0x23, 0xf0, 0xc0, 0x03, 0x2b, 0x60, 0x33, 0x68, 0x23, 0xf0, 0xc0, 0x63, 0x43, 0xf0, 0x00, 0x73, 0x33, 0x60, 0xfd, 0xf7, 0x39, 0xf9, 0x2b, 0x4b, 0x40, 0xf2, 0x01, 0x42, 0x1a, 0x60, 0x3b, 0x68, 0xda, 0x07, 0xfc, 0xd5, 0x3d, 0x68, 0x15, 0xf0, 0x7f, 0x6f, 0x58, 0xd0, 0x15, 0xf4, 0x80, 0x15, 0x56, 0xd0, 0x00, 0x25, 0x28, 0x48, 0xfd, 0xf7, 0x3a, 0xfe, 0x28, 0x46, 0xbd, 0xe8, 0xf8, 0x83, 0x2b, 0x68, 0x18, 0x49, 0x23, 0xf0, 0xc0, 0x03, 0x43, 0xf0, 0x80, 0x03, 0x2b, 0x60, 0x22, 0x4b, 0x1b, 0x68, 0x0a, 0x68, 0xc3, 0xf3, 0x04, 0x43, 0x22, 0xf4, 0x83, 0x72, 0x02, 0x3b, 0x22, 0xf0, 0x01, 0x02, 0x42, 0xf4, 0x80, 0x72, 0x13, 0x43, 0x10, 0x4a, 0x0b, 0x60, 0x13, 0x68, 0x23, 0xf0, 0x00, 0x43, 0x43, 0xf0, 0x00, 0x63, 0x2c, 0xe7, 0x0f, 0x4b, 0x1b, 0x68, 0xdb, 0x03, 0x07, 0xd4, 0x73, 0x68, 0x03, 0x2b, 0x14, 0xbf, 0x4f, 0xf4, 0xb9, 0x73, 0x4f, 0xf4, 0xf9, 0x73, 0x76, 0xe7, 0x62, 0x23, 0x74, 0xe7, 0x00, 0xbf, 0x0c, 0x20, 0x10, 0x03, 0x08, 0x31, 0x10, 0x03, 0xc4, 0x33, 0x10, 0x03, 0x08, 0x32, 0x10, 0x03, 0xbc, 0x30, 0x10, 0x03, 0x1c, 0x31, 0x10, 0x03, 0xc0, 0x30, 0x10, 0x03, 0x87, 0x30, 0x00, 0x01, 0xd4, 0x05, 0x00, 0x07, 0x50, 0x02, 0x01, 0x07, 0x40, 0x31, 0x10, 0x03, 0x10, 0x30, 0x10, 0x03, 0x00, 0x30, 0x10, 0x03, 0x0c, 0x31, 0x10, 0x03, 0x04, 0x30, 0x10, 0x03, 0x18, 0x30, 0x10, 0x03, 0x37, 0xd7, 0x02, 0x00, 0x60, 0x30, 0x10, 0x03, 0x01, 0x25, 0x14, 0x4a, 0x13, 0x68, 0xdb, 0x07, 0xfc, 0xd5, 0x13, 0x4e, 0x0a, 0x20, 0x33, 0x68, 0x43, 0xf0, 0x00, 0x43, 0x33, 0x60, 0xfd, 0xf7, 0xc8, 0xf8, 0x33, 0x68, 0x0a, 0x20, 0x23, 0xf0, 0x00, 0x43, 0x33, 0x60, 0xfd, 0xf7, 0xc1, 0xf8, 0x0c, 0x4a, 0x0a, 0x20, 0x13, 0x68, 0x43, 0xf0, 0x00, 0x43, 0x13, 0x60, 0xfd, 0xf7, 0xb9, 0xf8, 0x09, 0x4a, 0x01, 0x2c, 0x13, 0x68, 0x23, 0xf0, 0xc0, 0x63, 0x13, 0x60, 0x01, 0xbf, 0x13, 0x69, 0x23, 0xf0, 0xc0, 0x03, 0x43, 0xf0, 0x40, 0x03, 0x13, 0x61, 0x83, 0xe7, 0x18, 0x30, 0x10, 0x03, 0x8c, 0x30, 0x10, 0x03, 0x14, 0x20, 0x10, 0x03, 0x0c, 0x31, 0x10, 0x03, 0x12, 0x4b, 0x01, 0x21, 0x10, 0xb5, 0x1b, 0x68, 0xc3, 0xf3, 0x03, 0x12, 0xc3, 0xf3, 0x03, 0x20, 0x10, 0x44, 0xc3, 0xf3, 0x81, 0x02, 0x0e, 0x38, 0x13, 0xf0, 0x03, 0x03, 0x10, 0x44, 0x01, 0xfa, 0x00, 0xf0, 0x10, 0xd0, 0x0a, 0x4b, 0x1a, 0x68, 0x93, 0x07, 0x1f, 0xbf, 0xc2, 0xf3, 0x03, 0x23, 0xc2, 0xf3, 0x03, 0x14, 0x1b, 0x19, 0xc2, 0xf3, 0x81, 0x02, 0x17, 0xbf, 0x0e, 0x3b, 0x03, 0x46, 0x9b, 0x18, 0x01, 0xfa, 0x03, 0xf3, 0x18, 0x44, 0x10, 0xbd, 0x00, 0xbf, 0x00, 0x20, 0x10, 0x03, 0x04, 0x20, 0x10, 0x03, 0x20, 0x4b, 0x10, 0xb5, 0x1b, 0x68, 0x5b, 0x02, 0x13, 0xd5, 0x1f, 0x4b, 0x19, 0x68, 0xd3, 0xf8, 0x80, 0x40, 0xc1, 0xf3, 0x01, 0x61, 0x02, 0x29, 0xc4, 0xf3, 0x01, 0x64, 0x19, 0xd1, 0x43, 0x69, 0x02, 0x2c, 0x23, 0xf4, 0x70, 0x43, 0x23, 0xf0, 0x0f, 0x03, 0x0d, 0xd1, 0x43, 0x61, 0x17, 0x48, 0x06, 0xe0, 0x43, 0x69, 0x23, 0xf0, 0x0f, 0x03, 0x43, 0xf4, 0x80, 0x53, 0x43, 0x61, 0x14, 0x48, 0xfd, 0xf7, 0x6a, 0xfd, 0x01, 0x20, 0x10, 0xbd, 0x43, 0xf0, 0x01, 0x03, 0x43, 0x61, 0x11, 0x48, 0xf6, 0xe7, 0x49, 0xb9, 0x43, 0x69, 0x23, 0xf0, 0x0f, 0x03, 0x43, 0xf4, 0x80, 0x53, 0x43, 0xf0, 0x01, 0x03, 0x43, 0x61, 0x0c, 0x48, 0xeb, 0xe7, 0xc0, 0x6d, 0x10, 0xf0, 0x00, 0x50, 0xea, 0xd0, 0x0a, 0x48, 0xfd, 0xf7, 0x51, 0xfd, 0x21, 0x46, 0x09, 0x48, 0xfd, 0xf7, 0x4d, 0xfd, 0x00, 0x20, 0xe1, 0xe7, 0x00, 0xbf, 0x10, 0x30, 0x10, 0x03, 0x48, 0x33, 0x10, 0x03, 0x92, 0xd7, 0x02, 0x00, 0x6e, 0xd7, 0x02, 0x00, 0xb9, 0xd7, 0x02, 0x00, 0xe0, 0xd7, 0x02, 0x00, 0x05, 0xd8, 0x02, 0x00, 0x13, 0xd8, 0x02, 0x00, 0x40, 0x08, 0x2d, 0xe9, 0xf8, 0x43, 0x1e, 0x4a, 0x4f, 0xf0, 0x80, 0x43, 0x00, 0x05, 0x00, 0x24, 0x1c, 0x4d, 0x8c, 0x42, 0x0b, 0xd1, 0x1b, 0x4a, 0x4f, 0xf0, 0x80, 0x46, 0x18, 0x49, 0x00, 0x25, 0xac, 0x42, 0x0b, 0xd1, 0x18, 0x48, 0xfd, 0xf7, 0x25, 0xfd, 0x00, 0x20, 0x17, 0xe0, 0xa6, 0x18, 0x1e, 0x60, 0x66, 0x19, 0xc6, 0x50, 0x01, 0x34, 0x04, 0x33, 0xea, 0xe7, 0x87, 0x59, 0x05, 0xeb, 0x02, 0x08, 0x00, 0xeb, 0x06, 0x09, 0xb8, 0x45, 0x0b, 0xd0, 0x10, 0x48, 0xfd, 0xf7, 0x12, 0xfd, 0x4b, 0x46, 0x42, 0x46, 0x39, 0x46, 0x0e, 0x48, 0xfd, 0xf7, 0x0c, 0xfd, 0x01, 0x20, 0xbd, 0xe8, 0xf8, 0x83, 0x33, 0x46, 0x05, 0xeb, 0x01, 0x08, 0x53, 0xf8, 0x04, 0x7b, 0xb8, 0x45, 0x04, 0xd0, 0x06, 0x48, 0xfd, 0xf7, 0xff, 0xfc, 0x33, 0x46, 0xeb, 0xe7, 0x01, 0x35, 0x1e, 0x46, 0xcf, 0xe7, 0x67, 0x45, 0x23, 0x01, 0x98, 0xba, 0xdc, 0xfe, 0x51, 0xd8, 0x02, 0x00, 0x21, 0xd8, 0x02, 0x00, 0x39, 0xd8, 0x02, 0x00, 0xc2, 0x6d, 0x10, 0xb5, 0x91, 0x03, 0x10, 0xd4, 0x08, 0x49, 0xc4, 0x6b, 0x0b, 0x68, 0x03, 0xf0, 0x80, 0x33, 0x23, 0x43, 0x0b, 0x60, 0xd3, 0x03, 0x07, 0xd4, 0x4a, 0x68, 0x03, 0x6c, 0x22, 0xf0, 0x7f, 0x02, 0x03, 0xf0, 0x7f, 0x03, 0x13, 0x43, 0x4b, 0x60, 0x10, 0xbd, 0x10, 0x31, 0x10, 0x03, 0x10, 0xb5, 0x04, 0x46, 0xff, 0xf7, 0xe2, 0xfa, 0x20, 0x46, 0xff, 0xf7, 0xe1, 0xff, 0xff, 0xf7, 0x37, 0xfb, 0x20, 0x46, 0xff, 0xf7, 0xe0, 0xfb, 0x20, 0x46, 0xfe, 0xf7, 0x61, 0xfe, 0x21, 0x46, 0x00, 0x20, 0xbd, 0xe8, 0x10, 0x40, 0xff, 0xf7, 0x63, 0xbd, 0x00, 0x00, 0x2d, 0xe9, 0xf7, 0x4f, 0x07, 0x46, 0xff, 0xf7, 0xe5, 0xff, 0x04, 0x46, 0x30, 0xb9, 0x95, 0x48, 0xfd, 0xf7, 0xb8, 0xfc, 0x20, 0x46, 0x03, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x7b, 0x69, 0x4f, 0xf0, 0x80, 0x46, 0xdf, 0xf8, 0x5c, 0xa2, 0x00, 0x25, 0xb0, 0x46, 0xc3, 0xf3, 0x03, 0x33, 0x01, 0x2b, 0x0c, 0xbf, 0x02, 0x23, 0x01, 0x23, 0x01, 0x93, 0x42, 0x46, 0x00, 0x23, 0x6f, 0xea, 0x08, 0x00, 0xdc, 0x07, 0x58, 0xbf, 0xa0, 0xeb, 0x83, 0x01, 0x03, 0xf1, 0x01, 0x03, 0x48, 0xbf, 0x11, 0x46, 0x40, 0x2b, 0x42, 0xf8, 0x04, 0x1b, 0xf3, 0xd1, 0x05, 0xf5, 0x44, 0x04, 0x04, 0xf5, 0x00, 0x64, 0xa4, 0x00, 0x23, 0x68, 0x23, 0xf4, 0x70, 0x63, 0x23, 0xf0, 0x0c, 0x03, 0x43, 0xf4, 0xde, 0x63, 0x23, 0x60, 0x22, 0x68, 0x93, 0x42, 0xfc, 0xd1, 0x4f, 0xf0, 0x0b, 0x09, 0x4f, 0xf0, 0x01, 0x0c, 0x6f, 0xea, 0x06, 0x0e, 0x09, 0xf1, 0x0b, 0x03, 0x31, 0x46, 0x0c, 0xfa, 0x03, 0xf3, 0x00, 0x22, 0x43, 0x44, 0x9b, 0x1b, 0xd0, 0x07, 0x53, 0xf8, 0x01, 0xb0, 0x54, 0xbf, 0xae, 0xeb, 0x82, 0x00, 0x08, 0x46, 0x83, 0x45, 0x40, 0xf0, 0xd0, 0x80, 0x01, 0x32, 0x04, 0x31, 0x40, 0x2a, 0xf1, 0xd1, 0x4f, 0xea, 0x05, 0x1b, 0x4a, 0x46, 0x29, 0x46, 0x6b, 0x48, 0xfd, 0xf7, 0x63, 0xfc, 0x0b, 0xf1, 0x04, 0x02, 0xff, 0x23, 0x03, 0xfa, 0x02, 0xf1, 0x3b, 0x69, 0x09, 0xfa, 0x02, 0xf9, 0x01, 0x2d, 0x23, 0xea, 0x01, 0x03, 0x43, 0xea, 0x09, 0x03, 0x3b, 0x61, 0x0a, 0xd1, 0x63, 0x4a, 0x4f, 0xf0, 0x81, 0x48, 0x13, 0x68, 0x03, 0xea, 0x0a, 0x03, 0x43, 0xf4, 0xd4, 0x63, 0x43, 0xf0, 0x04, 0x03, 0x13, 0x60, 0x23, 0x68, 0x03, 0xea, 0x0a, 0x03, 0x43, 0xf4, 0xd4, 0x63, 0x43, 0xf0, 0x04, 0x03, 0x23, 0x60, 0x22, 0x68, 0x9a, 0x42, 0xfc, 0xd1, 0x08, 0xf5, 0x00, 0x62, 0x00, 0x23, 0x6f, 0xea, 0x06, 0x0c, 0x98, 0x00, 0x13, 0xf0, 0x01, 0x0f, 0x06, 0xeb, 0x00, 0x01, 0x08, 0xbf, 0xac, 0xeb, 0x00, 0x01, 0x10, 0x68, 0x88, 0x42, 0x40, 0xf0, 0x8a, 0x80, 0x01, 0x33, 0x04, 0x32, 0x40, 0x2b, 0xef, 0xd1, 0x4f, 0xf0, 0x00, 0x09, 0x09, 0xf1, 0x01, 0x02, 0x29, 0x46, 0x92, 0x00, 0x4c, 0x48, 0xfd, 0xf7, 0x20, 0xfc, 0x0b, 0xf1, 0x0c, 0x01, 0x0f, 0x23, 0x03, 0xfa, 0x01, 0xf2, 0x3b, 0x69, 0x09, 0xfa, 0x01, 0xf9, 0x01, 0x2d, 0x23, 0xea, 0x02, 0x03, 0x43, 0xea, 0x09, 0x03, 0x3b, 0x61, 0x08, 0xd1, 0x42, 0x4a, 0x4f, 0xf0, 0x88, 0x48, 0x13, 0x68, 0x03, 0xea, 0x0a, 0x03, 0x43, 0xf4, 0x2a, 0x63, 0x13, 0x60, 0x23, 0x68, 0x03, 0xea, 0x0a, 0x03, 0x43, 0xf4, 0x2a, 0x63, 0x23, 0x60, 0x22, 0x68, 0x9a, 0x42, 0xfc, 0xd1, 0x09, 0x23, 0x4f, 0xf0, 0x01, 0x0c, 0x6f, 0xea, 0x06, 0x0e, 0x0c, 0xfa, 0x03, 0xf1, 0x30, 0x46, 0x00, 0x22, 0x41, 0x44, 0x89, 0x1b, 0xd4, 0x07, 0x51, 0xf8, 0x00, 0x90, 0x54, 0xbf, 0xae, 0xeb, 0x82, 0x04, 0x04, 0x46, 0xa1, 0x45, 0x55, 0xd1, 0x01, 0x32, 0x04, 0x30, 0x40, 0x2a, 0xf2, 0xd1, 0x0d, 0x2b, 0x01, 0xd0, 0x09, 0x2b, 0x42, 0xd0, 0x0a, 0x3b, 0x01, 0x24, 0x9c, 0x40, 0x22, 0x46, 0x2b, 0x48, 0x29, 0x46, 0x04, 0xfa, 0x0b, 0xf4, 0x01, 0x35, 0xfd, 0xf7, 0xd8, 0xfb, 0x0f, 0x23, 0x03, 0xfa, 0x0b, 0xf2, 0x3b, 0x69, 0x23, 0xea, 0x02, 0x03, 0x1c, 0x43, 0x01, 0x9b, 0x3c, 0x61, 0xab, 0x42, 0x13, 0xd1, 0x02, 0x2b, 0x0f, 0xd1, 0x7b, 0x69, 0xa2, 0xb2, 0xb2, 0xeb, 0x14, 0x4f, 0x23, 0xf4, 0x70, 0x63, 0x13, 0xbf, 0x43, 0xf4, 0x80, 0x73, 0x7b, 0x61, 0x1d, 0x48, 0x7b, 0x61, 0x18, 0xbf, 0x1c, 0x48, 0xfd, 0xf7, 0xbb, 0xfb, 0x01, 0x24, 0x00, 0xe7, 0x01, 0x2d, 0x7f, 0xf4, 0x10, 0xaf, 0x14, 0x4a, 0x4f, 0xf0, 0x90, 0x46, 0xb0, 0x46, 0x13, 0x68, 0x03, 0xea, 0x0a, 0x03, 0x43, 0xf4, 0xde, 0x63, 0x13, 0x60, 0x53, 0x68, 0x03, 0xea, 0x0a, 0x03, 0x43, 0xf4, 0xde, 0x63, 0x43, 0xf0, 0x01, 0x03, 0x53, 0x60, 0xfc, 0xe6, 0x4f, 0xf0, 0x01, 0x09, 0x78, 0xe7, 0x00, 0x24, 0xbd, 0xe7, 0x09, 0xf1, 0x01, 0x09, 0xb9, 0xf1, 0x11, 0x0f, 0x7f, 0xf4, 0x18, 0xaf, 0x4f, 0xf0, 0x10, 0x09, 0x2a, 0xe7, 0x01, 0x33, 0x0e, 0x2b, 0x97, 0xd1, 0x0d, 0x23, 0xac, 0xe7, 0x67, 0xd8, 0x02, 0x00, 0x8e, 0xd8, 0x02, 0x00, 0x00, 0x20, 0x10, 0x03, 0xae, 0xd8, 0x02, 0x00, 0xcf, 0xd8, 0x02, 0x00, 0xf8, 0xd8, 0x02, 0x00, 0x14, 0xd9, 0x02, 0x00, 0x03, 0xf0, 0xff, 0xff, 0x4f, 0xf0, 0xb0, 0x13, 0x70, 0xb5, 0x06, 0x69, 0x04, 0x46, 0x03, 0x61, 0x43, 0x69, 0xc5, 0x6d, 0x23, 0xf0, 0x0f, 0x03, 0x43, 0xf4, 0x80, 0x53, 0x43, 0x61, 0x25, 0xf0, 0x08, 0x03, 0x43, 0xf0, 0x05, 0x03, 0xc3, 0x65, 0xff, 0xf7, 0x94, 0xfe, 0x07, 0x4b, 0x1b, 0x68, 0xdb, 0x02, 0x01, 0xd5, 0x00, 0x20, 0x70, 0xbd, 0x20, 0x46, 0xff, 0xf7, 0xd7, 0xfd, 0x00, 0x28, 0xf8, 0xd0, 0xe5, 0x65, 0x01, 0x20, 0x26, 0x61, 0xf5, 0xe7, 0x00, 0xbf, 0x10, 0x30, 0x10, 0x03, 0x38, 0xb5, 0x05, 0x46, 0xc3, 0x6d, 0x5c, 0x04, 0x08, 0xd4, 0xff, 0xf7, 0xd3, 0xff, 0x04, 0x46, 0x20, 0xb9, 0x0c, 0x48, 0xfd, 0xf7, 0x4e, 0xfb, 0x20, 0x46, 0x38, 0xbd, 0xeb, 0x6d, 0xd9, 0x07, 0x06, 0xd4, 0x28, 0x46, 0xff, 0xf7, 0x84, 0xfe, 0x04, 0x46, 0x08, 0xb9, 0x06, 0x48, 0xf1, 0xe7, 0xeb, 0x6d, 0x01, 0x24, 0x1a, 0x04, 0x5e, 0xbf, 0x43, 0xf4, 0xc0, 0x43, 0x43, 0xf0, 0x03, 0x03, 0xeb, 0x65, 0xe9, 0xe7, 0x37, 0xd9, 0x02, 0x00, 0x67, 0xd9, 0x02, 0x00, 0x38, 0xb5, 0x0c, 0x46, 0xcb, 0x6d, 0x81, 0x4d, 0x13, 0xf4, 0x80, 0x33, 0x41, 0xd1, 0x80, 0x4a, 0x0a, 0x20, 0x13, 0x60, 0x2b, 0x68, 0x23, 0xf0, 0x03, 0x03, 0x2b, 0x60, 0xfc, 0xf7, 0x11, 0xfe, 0x2b, 0x68, 0x0a, 0x20, 0x23, 0xf4, 0x82, 0x73, 0x2b, 0x60, 0x2b, 0x68, 0x43, 0xf0, 0x02, 0x03, 0x2b, 0x60, 0xfc, 0xf7, 0x06, 0xfe, 0x2b, 0x68, 0x14, 0x20, 0x43, 0xf0, 0x01, 0x03, 0x2b, 0x60, 0xfc, 0xf7, 0xff, 0xfd, 0x73, 0x4b, 0x74, 0x48, 0x19, 0x68, 0xfd, 0xf7, 0x0d, 0xfb, 0xfe, 0xf7, 0xe7, 0xfa, 0x05, 0x46, 0x01, 0x46, 0x71, 0x48, 0xfd, 0xf7, 0x06, 0xfb, 0x00, 0x2d, 0x23, 0xda, 0x20, 0x46, 0xfe, 0xf7, 0x0d, 0xfb, 0xe3, 0x6d, 0xd9, 0x07, 0x2a, 0xd5, 0x6c, 0x49, 0x6d, 0x48, 0xfd, 0xf7, 0xfa, 0xfa, 0x21, 0x68, 0x6c, 0x48, 0xfd, 0xf7, 0xf6, 0xfa, 0x61, 0x68, 0x6b, 0x48, 0xfd, 0xf7, 0xf2, 0xfa, 0xe3, 0x68, 0xda, 0x07, 0x22, 0xd4, 0x69, 0x48, 0xfd, 0xf7, 0xec, 0xfa, 0x22, 0xe0, 0x2b, 0x68, 0x00, 0x22, 0x0a, 0x20, 0x43, 0xf4, 0x80, 0x73, 0x2b, 0x60, 0x65, 0x4b, 0x1a, 0x60, 0xfc, 0xf7, 0xce, 0xfd, 0xd2, 0xe7, 0x63, 0x68, 0x02, 0x2b, 0x04, 0xd0, 0x03, 0x2b, 0xd9, 0xd1, 0x40, 0xf2, 0xdc, 0x50, 0x01, 0xe0, 0x4f, 0xf4, 0xe1, 0x60, 0xfe, 0xf7, 0xa0, 0xfa, 0xd1, 0xe7, 0x20, 0x46, 0xff, 0xf7, 0x76, 0xff, 0x00, 0x28, 0xcf, 0xd1, 0x00, 0x20, 0x38, 0xbd, 0xa1, 0x68, 0x59, 0x48, 0xfd, 0xf7, 0xc8, 0xfa, 0xe1, 0x69, 0x11, 0xf0, 0x44, 0x0f, 0x0c, 0xd0, 0x56, 0x48, 0xfd, 0xf7, 0xc1, 0xfa, 0x20, 0x46, 0xff, 0xf7, 0xe6, 0xfd, 0x05, 0x46, 0x40, 0xb9, 0x53, 0x48, 0xfd, 0xf7, 0xb9, 0xfa, 0x28, 0x46, 0xe9, 0xe7, 0x52, 0x48, 0xfd, 0xf7, 0xb4, 0xfa, 0xf1, 0xe7, 0x65, 0x69, 0x00, 0x2d, 0x61, 0xda, 0xc5, 0xf3, 0x0e, 0x45, 0xe3, 0x6d, 0x4e, 0x49, 0x4e, 0x4a, 0x13, 0xf0, 0x80, 0x4f, 0x0b, 0x68, 0x64, 0xd0, 0xa3, 0x6c, 0x4c, 0x48, 0x00, 0x2b, 0x08, 0xbf, 0x03, 0x46, 0x4b, 0x48, 0x0b, 0x60, 0x40, 0xf2, 0x0a, 0x41, 0x4a, 0x4b, 0x19, 0x60, 0x13, 0x68, 0x43, 0xf0, 0x01, 0x03, 0x13, 0x60, 0xfd, 0xf7, 0x96, 0xfa, 0x47, 0x4a, 0xe1, 0x6d, 0x60, 0x68, 0x13, 0x68, 0x11, 0xf4, 0x00, 0x7f, 0x23, 0xf4, 0x70, 0x43, 0x01, 0xd1, 0x06, 0x28, 0x01, 0xd1, 0x43, 0xf4, 0xa0, 0x43, 0x13, 0x60, 0x41, 0x4a, 0x13, 0x68, 0x43, 0xf0, 0x00, 0x43, 0x13, 0x60, 0xcb, 0x05, 0x42, 0xbf, 0x52, 0xf8, 0x88, 0x3c, 0x43, 0xf4, 0x40, 0x73, 0x42, 0xf8, 0x88, 0x3c, 0x11, 0xf0, 0x80, 0x6f, 0x3b, 0x4b, 0x1a, 0x68, 0x14, 0xbf, 0x22, 0xf4, 0x00, 0x52, 0x42, 0xf4, 0x00, 0x52, 0x07, 0x28, 0x1a, 0x60, 0x06, 0xd1, 0x37, 0x4a, 0x13, 0x68, 0x23, 0xf4, 0x70, 0x23, 0x43, 0xf4, 0x80, 0x33, 0x13, 0x60, 0xa1, 0x6b, 0x34, 0x48, 0xfd, 0xf7, 0x64, 0xfa, 0x33, 0x4b, 0x34, 0x48, 0x19, 0x68, 0xfd, 0xf7, 0x5f, 0xfa, 0x33, 0x4b, 0x33, 0x48, 0x19, 0x68, 0xfd, 0xf7, 0x5a, 0xfa, 0x21, 0x8c, 0x32, 0x48, 0xfd, 0xf7, 0x56, 0xfa, 0xfe, 0xf7, 0x84, 0xfa, 0xe3, 0x6d, 0xda, 0x00, 0x16, 0xd4, 0xfe, 0xf7, 0x79, 0xf9, 0x94, 0xe7, 0xff, 0xf7, 0x96, 0xfc, 0x05, 0x46, 0x01, 0x46, 0x2b, 0x48, 0xfd, 0xf7, 0x47, 0xfa, 0xa3, 0x8a, 0x43, 0xea, 0x05, 0x43, 0x63, 0x61, 0x93, 0xe7, 0x1b, 0x0c, 0x1b, 0x04, 0x0b, 0x60, 0x13, 0x68, 0x23, 0xf0, 0x01, 0x03, 0x13, 0x60, 0xa3, 0xe7, 0x24, 0x4b, 0x1b, 0x68, 0xdb, 0x03, 0xe4, 0xd4, 0x4f, 0xf4, 0x80, 0x51, 0x28, 0x46, 0xff, 0xf7, 0xf7, 0xfc, 0x00, 0x28, 0xdd, 0xd0, 0x5f, 0xe7, 0x60, 0x01, 0x00, 0x03, 0x54, 0x02, 0x01, 0x07, 0x6c, 0x01, 0x00, 0x03, 0x91, 0xd9, 0x02, 0x00, 0xa2, 0xd9, 0x02, 0x00, 0xb8, 0xd9, 0x02, 0x00, 0xbe, 0xd9, 0x02, 0x00, 0xd8, 0xd9, 0x02, 0x00, 0xeb, 0xd9, 0x02, 0x00, 0x21, 0xda, 0x02, 0x00, 0x68, 0x01, 0x00, 0x03, 0x0b, 0xda, 0x02, 0x00, 0x37, 0xda, 0x02, 0x00, 0x5d, 0xda, 0x02, 0x00, 0x4e, 0xda, 0x02, 0x00, 0xa0, 0x30, 0x10, 0x03, 0x04, 0x30, 0x10, 0x03, 0x00, 0x02, 0x00, 0x10, 0x88, 0xda, 0x02, 0x00, 0x9c, 0x30, 0x10, 0x03, 0x00, 0x31, 0x10, 0x03, 0x40, 0x31, 0x10, 0x03, 0x08, 0x31, 0x10, 0x03, 0x7c, 0x30, 0x10, 0x03, 0x98, 0xda, 0x02, 0x00, 0x10, 0x10, 0x00, 0x02, 0xa8, 0xda, 0x02, 0x00, 0x00, 0x18, 0x00, 0x02, 0xbf, 0xda, 0x02, 0x00, 0xd2, 0xda, 0x02, 0x00, 0x77, 0xda, 0x02, 0x00, 0xd4, 0x05, 0x00, 0x07, 0x00, 0xb5, 0x4f, 0xf4, 0x46, 0x72, 0x99, 0xb0, 0x03, 0x23, 0x00, 0x20, 0x41, 0xf6, 0x70, 0x41, 0xcd, 0xe9, 0x00, 0x23, 0x4f, 0xf0, 0x48, 0x3e, 0x19, 0x4b, 0x4f, 0xf4, 0x50, 0x12, 0xdf, 0xf8, 0x70, 0xc0, 0x0e, 0x90, 0xcd, 0xe9, 0x02, 0x30, 0x41, 0xf2, 0xd2, 0x03, 0xcd, 0xe9, 0x04, 0x30, 0x02, 0x23, 0xcd, 0xe9, 0x06, 0x13, 0x18, 0x23, 0xcd, 0xe9, 0x08, 0x30, 0x69, 0x46, 0x11, 0x4b, 0xcd, 0xe9, 0x13, 0x00, 0x0a, 0x93, 0x03, 0xf1, 0xfc, 0x73, 0x03, 0xf6, 0xfb, 0x73, 0x0b, 0x93, 0x0d, 0x4b, 0xcd, 0xe9, 0x0c, 0xc3, 0x48, 0x23, 0xcd, 0xe9, 0x0f, 0xe3, 0x0b, 0x4b, 0xcd, 0xe9, 0x11, 0x30, 0x45, 0x23, 0xcd, 0xe9, 0x15, 0x23, 0x4f, 0xf0, 0x50, 0x53, 0x17, 0x93, 0xff, 0xf7, 0x81, 0xfe, 0xb0, 0xfa, 0x80, 0xf0, 0x40, 0x09, 0x19, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x00, 0xbf, 0xfb, 0x7b, 0x7b, 0x00, 0x95, 0x21, 0x4a, 0x00, 0x96, 0x78, 0x78, 0xb4, 0x1e, 0x12, 0x21, 0x16, 0x61, 0xb0, 0x08, 0x00, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x04, 0x4b, 0x1b, 0x68, 0x48, 0x2b, 0x01, 0xd1, 0x00, 0xf0, 0x09, 0xb9, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x00, 0xbf, 0x50, 0xde, 0x02, 0x00, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x00, 0x00, 0x04, 0x4b, 0x1b, 0x68, 0x48, 0x2b, 0x02, 0xd1, 0x01, 0x21, 0x00, 0xf0, 0x95, 0xb9, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x50, 0xde, 0x02, 0x00, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x00, 0x00, 0x04, 0x4b, 0x1b, 0x68, 0x48, 0x2b, 0x01, 0xd1, 0x00, 0xf0, 0x7e, 0xb9, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x00, 0xbf, 0x50, 0xde, 0x02, 0x00, 0x04, 0x4b, 0x1b, 0x68, 0x48, 0x2b, 0x01, 0xd1, 0x00, 0xf0, 0x6a, 0xb9, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x00, 0xbf, 0x50, 0xde, 0x02, 0x00, 0x04, 0x4b, 0x1b, 0x68, 0x48, 0x2b, 0x01, 0xd1, 0x00, 0xf0, 0x76, 0xb9, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x00, 0xbf, 0x50, 0xde, 0x02, 0x00, 0x04, 0x4b, 0x1b, 0x68, 0x48, 0x2b, 0x01, 0xd1, 0x00, 0xf0, 0x6f, 0xb9, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x00, 0xbf, 0x50, 0xde, 0x02, 0x00, 0x38, 0xb5, 0x4f, 0xf0, 0xff, 0x34, 0x04, 0x4d, 0x2c, 0x60, 0x00, 0xf0, 0x67, 0xf9, 0x48, 0x28, 0x0c, 0xbf, 0x28, 0x60, 0x20, 0x46, 0x38, 0xbd, 0x50, 0xde, 0x02, 0x00, 0x01, 0x4b, 0x93, 0xf8, 0x35, 0x00, 0x70, 0x47, 0x00, 0x80, 0x02, 0x00, 0x2d, 0xe9, 0xf0, 0x41, 0x06, 0x46, 0xdf, 0xf8, 0x2c, 0x80, 0x00, 0x25, 0x6c, 0x27, 0x07, 0xfb, 0x05, 0x84, 0x20, 0x46, 0xfc, 0xf7, 0x47, 0xff, 0x21, 0x46, 0x02, 0x46, 0x30, 0x46, 0xfc, 0xf7, 0x25, 0xff, 0x18, 0xb1, 0x01, 0x35, 0x05, 0x2d, 0xf1, 0xd1, 0x00, 0x24, 0x20, 0x46, 0xbd, 0xe8, 0xf0, 0x81, 0x00, 0xbf, 0xe4, 0xdb, 0x02, 0x00, 0x2d, 0xe9, 0xf7, 0x4f, 0x8a, 0x46, 0x16, 0x46, 0xff, 0xf7, 0xde, 0xff, 0x05, 0x46, 0x20, 0xb9, 0x4f, 0xf0, 0xff, 0x30, 0x03, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0xba, 0xf1, 0x00, 0x0f, 0x03, 0xdc, 0x00, 0x2e, 0x5a, 0xda, 0x00, 0x20, 0xf5, 0xe7, 0x03, 0x69, 0x00, 0x2b, 0xf8, 0xd0, 0x53, 0x45, 0x47, 0xd9, 0x9a, 0x46, 0x0d, 0xf1, 0x07, 0x02, 0x29, 0x7e, 0x36, 0x20, 0xfd, 0xf7, 0xe1, 0xff, 0x00, 0x28, 0xe5, 0xd1, 0x9d, 0xf8, 0x07, 0x90, 0x83, 0x46, 0x2f, 0x7f, 0x04, 0x46, 0x29, 0xea, 0x07, 0x09, 0x8d, 0xf8, 0x07, 0x90, 0x5f, 0xfa, 0x8b, 0xf8, 0x4f, 0xea, 0x08, 0x12, 0xab, 0x18, 0x1b, 0x6b, 0x2b, 0xb3, 0x9a, 0x45, 0x05, 0xd9, 0x05, 0xeb, 0x08, 0x11, 0xc9, 0x6b, 0x8a, 0x45, 0x38, 0xbf, 0x9a, 0x46, 0x08, 0xf1, 0x03, 0x08, 0x9a, 0x45, 0x05, 0xeb, 0x08, 0x18, 0x2a, 0x44, 0xd0, 0x6a, 0x0b, 0xf1, 0x01, 0x0b, 0xd8, 0xf8, 0x04, 0x10, 0x1f, 0xd8, 0xaa, 0xeb, 0x00, 0x00, 0xfb, 0xf7, 0x78, 0xfe, 0x20, 0x44, 0xac, 0x6a, 0xd8, 0xf8, 0x08, 0x30, 0xa0, 0x40, 0x49, 0xea, 0x00, 0x00, 0xc0, 0xb2, 0x8d, 0xf8, 0x07, 0x00, 0x13, 0xb1, 0x78, 0x40, 0x8d, 0xf8, 0x07, 0x00, 0x9d, 0xf8, 0x07, 0x20, 0x36, 0x20, 0x29, 0x7e, 0xfd, 0xf7, 0xad, 0xff, 0x00, 0x28, 0xaf, 0xd0, 0xa6, 0xe7, 0x43, 0x69, 0x9a, 0x45, 0x28, 0xbf, 0x9a, 0x46, 0xb3, 0xe7, 0x0b, 0x44, 0x18, 0x1a, 0xfb, 0xf7, 0x58, 0xfe, 0x04, 0x44, 0xe4, 0xb2, 0xbd, 0xe7, 0x0d, 0xf1, 0x07, 0x02, 0x95, 0xf8, 0x20, 0x10, 0x36, 0x20, 0xfd, 0xf7, 0x8d, 0xff, 0x00, 0x28, 0x91, 0xd1, 0x6a, 0x6a, 0x01, 0x23, 0x93, 0x40, 0x9d, 0xf9, 0x07, 0x20, 0x5b, 0xb2, 0x7e, 0xb9, 0x22, 0xea, 0x03, 0x03, 0x8d, 0xf8, 0x07, 0x30, 0x36, 0x20, 0x9d, 0xf8, 0x07, 0x20, 0x95, 0xf8, 0x20, 0x10, 0xfd, 0xf7, 0x83, 0xff, 0x00, 0x30, 0x18, 0xbf, 0x01, 0x20, 0x40, 0x42, 0x7c, 0xe7, 0x13, 0x43, 0xef, 0xe7, 0x07, 0xb5, 0x21, 0x21, 0x0d, 0xf1, 0x07, 0x02, 0x36, 0x20, 0xfd, 0xf7, 0x6b, 0xff, 0x20, 0xb1, 0x4f, 0xf0, 0xff, 0x30, 0x03, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x9d, 0xf8, 0x07, 0x20, 0x02, 0xf0, 0x30, 0x02, 0x8d, 0xf8, 0x07, 0x20, 0x22, 0xb9, 0x9d, 0xf8, 0x07, 0x00, 0xc0, 0xf3, 0x01, 0x10, 0xf0, 0xe7, 0x21, 0x21, 0x36, 0x20, 0xfd, 0xf7, 0x5f, 0xff, 0x00, 0x28, 0xf4, 0xd0, 0xe7, 0xe7, 0x00, 0x00, 0x2d, 0xe9, 0xf7, 0x4f, 0x80, 0x46, 0x33, 0x48, 0xff, 0xf7, 0x2e, 0xff, 0x06, 0x46, 0x98, 0xb9, 0x4f, 0xf0, 0xff, 0x34, 0xa0, 0x45, 0x51, 0xda, 0x2e, 0x4d, 0x21, 0x46, 0x01, 0x22, 0x28, 0x46, 0x32, 0x3c, 0xff, 0xf7, 0x3d, 0xff, 0xa0, 0x45, 0xf7, 0xdd, 0xe6, 0x20, 0xfc, 0xf7, 0x2c, 0xfb, 0x00, 0x20, 0x03, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x90, 0xf8, 0x20, 0x10, 0x0d, 0xf1, 0x07, 0x02, 0x36, 0x20, 0xfd, 0xf7, 0x2e, 0xff, 0x00, 0x28, 0xe2, 0xd1, 0x9d, 0xf8, 0x07, 0x40, 0x73, 0x6a, 0x1c, 0x41, 0x14, 0xf0, 0x01, 0x04, 0xdd, 0xd0, 0x0d, 0xf1, 0x07, 0x02, 0x31, 0x7e, 0x36, 0x20, 0xfd, 0xf7, 0x1f, 0xff, 0x00, 0x28, 0xd3, 0xd1, 0x9d, 0xf8, 0x07, 0x40, 0x07, 0x46, 0xf5, 0x69, 0x81, 0x46, 0x25, 0x40, 0xb4, 0x6a, 0x25, 0x41, 0xec, 0xb2, 0x05, 0x46, 0xfb, 0xb2, 0x06, 0xeb, 0x03, 0x12, 0x10, 0x6b, 0x00, 0x28, 0xc3, 0xd0, 0x06, 0xeb, 0x03, 0x13, 0xd2, 0xf8, 0x2c, 0xb0, 0x01, 0x37, 0xd3, 0xf8, 0x34, 0xa0, 0x50, 0x44, 0x51, 0x46, 0xa0, 0xeb, 0x0b, 0x00, 0xfb, 0xf7, 0xc1, 0xfd, 0xc0, 0xb2, 0x81, 0x44, 0x5f, 0xfa, 0x89, 0xf9, 0x4c, 0x45, 0x03, 0xd2, 0x65, 0x1b, 0x0a, 0xfb, 0x05, 0xb4, 0xae, 0xe7, 0x05, 0x44, 0xed, 0xb2, 0xdf, 0xe7, 0xb5, 0xdd, 0x05, 0x4d, 0x21, 0x46, 0x01, 0x22, 0x28, 0x46, 0x32, 0x34, 0xff, 0xf7, 0xea, 0xfe, 0xa0, 0x45, 0xf7, 0xda, 0xab, 0xe7, 0x00, 0xbf, 0xec, 0xda, 0x02, 0x00, 0x01, 0x46, 0x01, 0x22, 0x01, 0x48, 0xff, 0xf7, 0xdf, 0xbe, 0x00, 0xbf, 0xf2, 0xda, 0x02, 0x00, 0x01, 0x46, 0x01, 0x22, 0x01, 0x48, 0xff, 0xf7, 0xd7, 0xbe, 0x00, 0xbf, 0xf8, 0xda, 0x02, 0x00, 0x0a, 0x46, 0x01, 0x46, 0x01, 0x48, 0xff, 0xf7, 0xcf, 0xbe, 0x00, 0xbf, 0xfe, 0xda, 0x02, 0x00, 0x0a, 0x46, 0x01, 0x46, 0x36, 0x20, 0xfd, 0xf7, 0xc8, 0xbe, 0x0a, 0x46, 0x01, 0x46, 0x36, 0x20, 0xfd, 0xf7, 0xcd, 0xbe, 0x07, 0xb5, 0x36, 0x21, 0x24, 0x48, 0xfd, 0xf7, 0xb9, 0xfe, 0x28, 0xb1, 0x23, 0x48, 0xfc, 0xf7, 0xd7, 0xff, 0x4f, 0xf0, 0xff, 0x30, 0x3a, 0xe0, 0x0d, 0xf1, 0x06, 0x02, 0x03, 0x21, 0x36, 0x20, 0xfd, 0xf7, 0xb1, 0xfe, 0x08, 0xb1, 0x1e, 0x48, 0xf1, 0xe7, 0x9d, 0xf8, 0x06, 0x30, 0x03, 0xf0, 0xcf, 0x03, 0x48, 0x2b, 0x8d, 0xf8, 0x06, 0x30, 0x02, 0xd0, 0x4b, 0x3b, 0x01, 0x2b, 0x29, 0xd8, 0x0d, 0xf1, 0x07, 0x02, 0x14, 0x21, 0x36, 0x20, 0xfd, 0xf7, 0x9d, 0xfe, 0xd8, 0xb9, 0x9d, 0xf8, 0x07, 0x20, 0x14, 0x21, 0x36, 0x20, 0x42, 0xf0, 0x80, 0x02, 0x8d, 0xf8, 0x07, 0x20, 0xfd, 0xf7, 0x9c, 0xfe, 0x80, 0xb9, 0x0d, 0xf1, 0x07, 0x02, 0x1a, 0x21, 0x36, 0x20, 0xfd, 0xf7, 0x8b, 0xfe, 0x48, 0xb9, 0x9d, 0xf8, 0x07, 0x20, 0x1a, 0x21, 0x36, 0x20, 0x42, 0xf0, 0x02, 0x02, 0x8d, 0xf8, 0x07, 0x20, 0xfd, 0xf7, 0x8a, 0xfe, 0x07, 0x48, 0xfc, 0xf7, 0x9a, 0xff, 0x48, 0x20, 0x03, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x04, 0x48, 0xba, 0xe7, 0x80, 0x1a, 0x06, 0x00, 0x04, 0xdb, 0x02, 0x00, 0x1b, 0xdb, 0x02, 0x00, 0x32, 0xdb, 0x02, 0x00, 0x40, 0xdb, 0x02, 0x00, 0x02, 0x4a, 0x13, 0x68, 0x1b, 0x07, 0xfc, 0xd4, 0x70, 0x47, 0x00, 0xbf, 0x40, 0x60, 0x00, 0x03, 0x00, 0xf1, 0x40, 0x70, 0x00, 0xf5, 0xc4, 0x40, 0x00, 0x68, 0x70, 0x47, 0x08, 0xb5, 0xff, 0xf7, 0xef, 0xff, 0x0f, 0x4a, 0x11, 0x68, 0x0f, 0x4b, 0x0b, 0x40, 0x43, 0xea, 0x00, 0x40, 0x20, 0xf4, 0x7f, 0x43, 0x10, 0x60, 0x23, 0xf0, 0x03, 0x03, 0x43, 0xf4, 0x2c, 0x43, 0x43, 0xf0, 0x02, 0x03, 0x13, 0x60, 0x13, 0x68, 0x9b, 0x07, 0xfc, 0xd4, 0x20, 0xf0, 0xff, 0x70, 0x20, 0xf4, 0xff, 0x30, 0x20, 0xf4, 0x81, 0x70, 0x20, 0xf0, 0x01, 0x00, 0x03, 0x4b, 0x10, 0x60, 0x18, 0x68, 0x08, 0xbd, 0x40, 0x60, 0x00, 0x03, 0xfc, 0xff, 0x00, 0xfe, 0x60, 0x60, 0x00, 0x03, 0x10, 0xb5, 0x15, 0x4c, 0x23, 0x68, 0x43, 0xf0, 0x01, 0x03, 0x23, 0x60, 0xff, 0xf7, 0xc2, 0xff, 0x12, 0x4b, 0x13, 0x4a, 0x19, 0x60, 0x11, 0x68, 0x12, 0x4b, 0x0b, 0x40, 0x43, 0xea, 0x00, 0x40, 0x20, 0xf4, 0x7f, 0x43, 0x10, 0x60, 0x23, 0xf0, 0x03, 0x03, 0x43, 0xf4, 0x2c, 0x43, 0x43, 0xf0, 0x01, 0x03, 0x13, 0x60, 0x13, 0x68, 0xdb, 0x07, 0xfc, 0xd4, 0x20, 0xf0, 0xff, 0x70, 0x20, 0xf4, 0xff, 0x30, 0x20, 0xf4, 0x81, 0x70, 0x20, 0xf0, 0x01, 0x00, 0x10, 0x60, 0x23, 0x68, 0x23, 0xf0, 0x01, 0x03, 0x23, 0x60, 0x10, 0xbd, 0x00, 0xbf, 0x04, 0x02, 0x09, 0x07, 0x50, 0x60, 0x00, 0x03, 0x40, 0x60, 0x00, 0x03, 0xfc, 0xff, 0x00, 0xfe, 0x38, 0xb5, 0x05, 0x46, 0x70, 0x24, 0x20, 0x46, 0x04, 0x34, 0xff, 0xf7, 0x9d, 0xff, 0x90, 0x2c, 0x45, 0xf8, 0x04, 0x0b, 0xf7, 0xd1, 0x38, 0xbd, 0x08, 0xb5, 0x48, 0x20, 0xff, 0xf7, 0x94, 0xff, 0x40, 0xf4, 0x00, 0x61, 0x48, 0x20, 0xff, 0xf7, 0xb7, 0xff, 0x48, 0x20, 0xff, 0xf7, 0x8c, 0xff, 0xbd, 0xe8, 0x08, 0x40, 0xc0, 0xf3, 0xc0, 0x21, 0x01, 0x48, 0xfc, 0xf7, 0x01, 0xbf, 0x00, 0xbf, 0x4c, 0xdb, 0x02, 0x00, 0x02, 0x4a, 0x01, 0x23, 0x13, 0x60, 0x42, 0xf8, 0x04, 0x3c, 0x70, 0x47, 0x88, 0x60, 0x00, 0x03, 0x02, 0x4b, 0x18, 0x68, 0x00, 0xf0, 0x01, 0x00, 0x70, 0x47, 0x00, 0xbf, 0xa0, 0x60, 0x00, 0x03, 0x38, 0xb5, 0x88, 0x22, 0x0d, 0x4c, 0x05, 0x46, 0x00, 0x21, 0x20, 0x46, 0xfc, 0xf7, 0x34, 0xfd, 0x0b, 0x4a, 0xa4, 0xf5, 0x50, 0x73, 0x65, 0x60, 0xa4, 0xf5, 0x42, 0x75, 0x29, 0x46, 0x04, 0xf1, 0x08, 0x00, 0xc3, 0xf8, 0x40, 0x23, 0x80, 0x22, 0xfc, 0xf7, 0x2c, 0xfd, 0x29, 0x46, 0x80, 0x22, 0x4f, 0xf0, 0x81, 0x40, 0xbd, 0xe8, 0x38, 0x40, 0xfc, 0xf7, 0x24, 0xbd, 0x40, 0x83, 0x02, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x38, 0xb5, 0x02, 0x22, 0x16, 0x4c, 0x04, 0xf1, 0xbc, 0x01, 0xd4, 0xf8, 0xb8, 0x00, 0xfd, 0xf7, 0x41, 0xf8, 0x04, 0xf5, 0x3e, 0x71, 0x13, 0x48, 0xfc, 0xf7, 0xbe, 0xfe, 0xfc, 0xf7, 0x46, 0xfa, 0x05, 0x46, 0xd8, 0xb9, 0x10, 0x48, 0xfc, 0xf7, 0xb7, 0xfe, 0x04, 0xf1, 0x38, 0x01, 0x28, 0x46, 0xff, 0xf7, 0x7e, 0xfb, 0x04, 0x46, 0x50, 0xb1, 0x01, 0x20, 0xff, 0xf7, 0xbf, 0xff, 0x0b, 0x48, 0xfc, 0xf7, 0xaa, 0xfe, 0x0a, 0x20, 0xfc, 0xf7, 0x8f, 0xf9, 0x20, 0x46, 0x38, 0xbd, 0xff, 0xf7, 0xb5, 0xff, 0x07, 0x48, 0xfc, 0xf7, 0xa0, 0xfe, 0xfe, 0xe7, 0xf3, 0xe7, 0x00, 0x24, 0xf4, 0xe7, 0x00, 0x80, 0x02, 0x00, 0x6b, 0xdb, 0x02, 0x00, 0x80, 0xdb, 0x02, 0x00, 0x94, 0xdb, 0x02, 0x00, 0xa2, 0xdb, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x00, 0x02, 0x40, 0x10, 0x00, 0x02, 0x48, 0x10, 0x00, 0x02, 0x58, 0x10, 0x00, 0x02, 0x78, 0x10, 0x00, 0x02, 0x80, 0x10, 0x00, 0x02, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x28, 0x28, 0x28, 0x28, 0x28, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0xa0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x10, 0x10, 0x10, 0x10, 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, 0x00, 0xa0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x10, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x09, 0x03, 0x07, 0x08, 0x12, 0x04, 0x0d, 0x05, 0x06, 0x0a, 0x02, 0x0e, 0x0c, 0x00, 0x00, 0x15, 0x11, 0x14, 0x13, 0x0b, 0x16, 0x04, 0x09, 0x03, 0x07, 0x08, 0x12, 0x01, 0x0d, 0x02, 0x06, 0x0a, 0x05, 0x0e, 0x0c, 0x00, 0x00, 0x15, 0x11, 0x14, 0x13, 0x0b, 0x16, 0x01, 0x07, 0x08, 0x0c, 0x0a, 0x12, 0x04, 0x0d, 0x05, 0x06, 0x03, 0x02, 0x09, 0x00, 0x00, 0x00, 0x15, 0x11, 0x14, 0x13, 0x0b, 0x16, 0x04, 0x0c, 0x0a, 0x07, 0x08, 0x12, 0x01, 0x0d, 0x02, 0x06, 0x03, 0x05, 0x09, 0x00, 0x00, 0x00, 0x15, 0x11, 0x14, 0x13, 0x0b, 0x16, 0x0d, 0x02, 0x07, 0x09, 0x0c, 0x13, 0x05, 0x01, 0x06, 0x03, 0x04, 0x08, 0x0a, 0x00, 0x00, 0x00, 0x15, 0x16, 0x12, 0x11, 0x0b, 0x14, 0x03, 0x0a, 0x07, 0x0d, 0x09, 0x0b, 0x01, 0x02, 0x04, 0x06, 0x08, 0x05, 0x0c, 0x00, 0x00, 0x00, 0x14, 0x12, 0x00, 0x15, 0x16, 0x11, 0x03, 0x02, 0x04, 0x07, 0x09, 0x01, 0x11, 0x0c, 0x12, 0x0e, 0x0d, 0x08, 0x0f, 0x06, 0x0a, 0x05, 0x13, 0x16, 0x10, 0x15, 0x14, 0x0b, 0x02, 0x13, 0x08, 0x06, 0x0e, 0x05, 0x14, 0x0a, 0x03, 0x12, 0x0d, 0x0b, 0x07, 0x0f, 0x09, 0x01, 0x16, 0x15, 0x11, 0x0c, 0x04, 0x10, 0x01, 0x02, 0x0d, 0x08, 0x0f, 0x0c, 0x13, 0x0a, 0x03, 0x15, 0x06, 0x11, 0x09, 0x0e, 0x05, 0x10, 0x14, 0x16, 0x0b, 0x07, 0x04, 0x12, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x6f, 0x6b, 0x0a, 0x00, 0x73, 0x65, 0x74, 0x20, 0x61, 0x72, 0x69, 0x73, 0x63, 0x20, 0x72, 0x65, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x65, 0x2d, 0x61, 0x73, 0x73, 0x65, 0x72, 0x74, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x0a, 0x00, 0x73, 0x65, 0x74, 0x20, 0x70, 0x6c, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x0a, 0x00, 0x66, 0x69, 0x78, 0x20, 0x76, 0x63, 0x63, 0x69, 0x6f, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x70, 0x65, 0x72, 0x69, 0x70, 0x68, 0x30, 0x20, 0x68, 0x61, 0x73, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x0a, 0x00, 0x23, 0x72, 0x74, 0x63, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x20, 0x72, 0x65, 0x67, 0x20, 0x69, 0x73, 0x20, 0x30, 0x78, 0x25, 0x78, 0x2c, 0x20, 0x73, 0x75, 0x70, 0x65, 0x72, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x20, 0x69, 0x73, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x73, 0x65, 0x74, 0x20, 0x70, 0x6c, 0x6c, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x00, 0x5b, 0x25, 0x64, 0x5d, 0x00, 0x25, 0x73, 0x00, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x6b, 0x65, 0x79, 0x20, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x3a, 0x20, 0x25, 0x63, 0x0a, 0x00, 0x69, 0x6e, 0x62, 0x75, 0x66, 0x3a, 0x25, 0x78, 0x0a, 0x00, 0x25, 0x30, 0x32, 0x78, 0x20, 0x00, 0x25, 0x73, 0x3a, 0x25, 0x75, 0x3a, 0x20, 0x25, 0x73, 0x3a, 0x20, 0x41, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x60, 0x25, 0x73, 0x27, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x2e, 0x00, 0x72, 0x74, 0x63, 0x5b, 0x25, 0x64, 0x5d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x65, 0x72, 0x61, 0x6c, 0x79, 0x20, 0x6a, 0x75, 0x6d, 0x70, 0x20, 0x66, 0x65, 0x6c, 0x0a, 0x00, 0x63, 0x61, 0x72, 0x73, 0x68, 0x64, 0x75, 0x6d, 0x70, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x2c, 0x20, 0x6a, 0x75, 0x6d, 0x70, 0x20, 0x66, 0x65, 0x6c, 0x0a, 0x00, 0x72, 0x74, 0x63, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x20, 0x69, 0x73, 0x20, 0x30, 0x78, 0x25, 0x78, 0x2c, 0x20, 0x73, 0x75, 0x70, 0x65, 0x72, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x20, 0x69, 0x73, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x73, 0x72, 0x63, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x6c, 0x65, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x72, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x2c, 0x20, 0x6c, 0x65, 0x6e, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x63, 0x72, 0x63, 0x20, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x2e, 0x2e, 0x2e, 0x0a, 0x00, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x5f, 0x63, 0x72, 0x63, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x2c, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x72, 0x63, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x63, 0x72, 0x63, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x0a, 0x00, 0x66, 0x69, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x2c, 0x20, 0x6a, 0x75, 0x6d, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x64, 0x64, 0x72, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x74, 0x72, 0x65, 0x66, 0x69, 0x3a, 0x33, 0x2e, 0x39, 0x6d, 0x73, 0x0a, 0x00, 0x74, 0x72, 0x65, 0x66, 0x69, 0x3a, 0x31, 0x2e, 0x39, 0x35, 0x6d, 0x73, 0x0a, 0x00, 0x74, 0x72, 0x65, 0x66, 0x69, 0x3a, 0x37, 0x2e, 0x38, 0x6d, 0x73, 0x0a, 0x00, 0x64, 0x64, 0x72, 0x5f, 0x65, 0x66, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x5a, 0x51, 0x20, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2c, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x20, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x20, 0x32, 0x34, 0x30, 0x20, 0x6f, 0x68, 0x6d, 0x20, 0x72, 0x65, 0x73, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x2e, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x44, 0x51, 0x21, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x44, 0x51, 0x21, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x68, 0x61, 0x6c, 0x66, 0x20, 0x44, 0x51, 0x21, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x64, 0x75, 0x61, 0x6c, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x68, 0x61, 0x6c, 0x66, 0x20, 0x44, 0x51, 0x21, 0x0a, 0x00, 0x44, 0x58, 0x30, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x44, 0x58, 0x31, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x46, 0x41, 0x49, 0x4c, 0x2e, 0x0a, 0x00, 0x25, 0x78, 0x20, 0x21, 0x3d, 0x20, 0x25, 0x78, 0x20, 0x61, 0x74, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x25, 0x78, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x4f, 0x4b, 0x2e, 0x0a, 0x00, 0x5b, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x3a, 0x20, 0x30, 0x21, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x25, 0x64, 0x20, 0x72, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x25, 0x64, 0x20, 0x62, 0x61, 0x6e, 0x6b, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x25, 0x64, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x4b, 0x42, 0x20, 0x0a, 0x00, 0x72, 0x61, 0x6e, 0x6b, 0x31, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x30, 0x0a, 0x00, 0x72, 0x61, 0x6e, 0x6b, 0x31, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x30, 0x0a, 0x00, 0x5b, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x61, 0x6e, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x26, 0x77, 0x69, 0x64, 0x74, 0x68, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x20, 0x21, 0x0a, 0x00, 0x5b, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x61, 0x6e, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x20, 0x21, 0x0a, 0x00, 0x5a, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x6d, 0x75, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x28, 0x29, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x0a, 0x00, 0x56, 0x30, 0x2e, 0x33, 0x33, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x42, 0x4f, 0x4f, 0x54, 0x20, 0x44, 0x52, 0x49, 0x56, 0x45, 0x20, 0x49, 0x4e, 0x46, 0x4f, 0x3a, 0x20, 0x25, 0x73, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x43, 0x4c, 0x4b, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x4d, 0x48, 0x7a, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x54, 0x79, 0x70, 0x65, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x28, 0x32, 0x3a, 0x44, 0x44, 0x52, 0x32, 0x2c, 0x33, 0x3a, 0x44, 0x44, 0x52, 0x33, 0x29, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x43, 0x20, 0x5a, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x43, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x4f, 0x44, 0x54, 0x20, 0x20, 0x6f, 0x66, 0x66, 0x2e, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x4f, 0x44, 0x54, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x30, 0x78, 0x25, 0x78, 0x2e, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x4f, 0x44, 0x54, 0x20, 0x6f, 0x66, 0x66, 0x2e, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x3a, 0x20, 0x31, 0x20, 0x21, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x53, 0x49, 0x5a, 0x45, 0x20, 0x3d, 0x25, 0x64, 0x20, 0x4d, 0x0a, 0x00, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x41, 0x75, 0x74, 0x6f, 0x20, 0x53, 0x52, 0x0a, 0x00, 0x64, 0x72, 0x61, 0x6d, 0x5f, 0x74, 0x70, 0x72, 0x34, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x50, 0x4c, 0x4c, 0x5f, 0x44, 0x44, 0x52, 0x5f, 0x43, 0x54, 0x52, 0x4c, 0x5f, 0x52, 0x45, 0x47, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x4b, 0x5f, 0x52, 0x45, 0x47, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x5b, 0x54, 0x49, 0x4d, 0x49, 0x4e, 0x47, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x4d, 0x52, 0x32, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x64, 0x63, 0x64, 0x63, 0x33, 0x00, 0x61, 0x6c, 0x64, 0x6f, 0x31, 0x00, 0x64, 0x63, 0x64, 0x63, 0x32, 0x00, 0x64, 0x63, 0x64, 0x63, 0x31, 0x00, 0x5b, 0x70, 0x6d, 0x75, 0x5d, 0x3a, 0x20, 0x62, 0x75, 0x73, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x5b, 0x70, 0x6d, 0x75, 0x5d, 0x3a, 0x20, 0x62, 0x75, 0x73, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x50, 0x4d, 0x55, 0x3a, 0x20, 0x41, 0x58, 0x50, 0x31, 0x35, 0x33, 0x30, 0x0a, 0x00, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x20, 0x50, 0x4d, 0x55, 0x0a, 0x00, 0x62, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x2c, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x3a, 0x20, 0x25, 0x64, 0x0a, 0x00, 0x66, 0x65, 0x73, 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x3a, 0x25, 0x73, 0x0a, 0x00, 0x62, 0x65, 0x69, 0x67, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x0a, 0x00, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x6f, 0x6b, 0x0a, 0x00, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x03, 0x01, 0x00, 0x00, 0x06, 0x00, 0x0c, 0x01, 0x03, 0x01, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x63, 0x64, 0x63, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x48, 0x0d, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xb0, 0x04, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x04, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x06, 0x00, 0x00, 0x48, 0x0d, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x63, 0x64, 0x63, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xb0, 0x04, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x04, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x14, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x63, 0x64, 0x63, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x30, 0x07, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xb0, 0x04, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x04, 0x00, 0x00, 0x30, 0x07, 0x00, 0x00, 0x14, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x6c, 0x64, 0x6f, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x6c, 0x64, 0x6f, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; static const uint8_t t113_ddr_payload[] = { 0xf0, 0x00, 0x00, 0xea, 0x65, 0x47, 0x4f, 0x4e, 0x2e, 0x42, 0x54, 0x30, 0xa8, 0x76, 0x15, 0xc6, 0xc0, 0x4b, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x33, 0x30, 0x30, 0x30, 0x40, 0x83, 0x02, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x2e, 0x30, 0x2e, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xfb, 0x7b, 0x7b, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd2, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x1c, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x95, 0x21, 0x4a, 0x00, 0x90, 0x31, 0x42, 0x02, 0x61, 0xb0, 0x08, 0x00, 0x96, 0x78, 0x78, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x48, 0x48, 0x48, 0x48, 0x48, 0x00, 0x00, 0x00, 0x1e, 0x12, 0x20, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x34, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x02, 0x06, 0x01, 0xff, 0xff, 0x00, 0x00, 0x05, 0x03, 0x06, 0x01, 0xff, 0xff, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x03, 0xff, 0xff, 0xff, 0x00, 0x00, 0x08, 0x0a, 0x03, 0xff, 0xff, 0xff, 0x00, 0x00, 0x08, 0x0b, 0x03, 0xff, 0xff, 0xff, 0x00, 0x00, 0x08, 0x0c, 0x03, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x02, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x03, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x04, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x05, 0x02, 0x01, 0x02, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x34, 0x64, 0x31, 0x36, 0x36, 0x30, 0x32, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xea, 0x00, 0x40, 0x2d, 0xe9, 0x05, 0x00, 0x00, 0xeb, 0x10, 0x0f, 0x11, 0xee, 0x01, 0x0a, 0x80, 0xe3, 0x10, 0x0f, 0x01, 0xee, 0x36, 0x13, 0x00, 0xfa, 0x00, 0x40, 0xbd, 0xe8, 0x0e, 0xf0, 0xa0, 0xe1, 0x18, 0x00, 0x9f, 0xe5, 0x18, 0x10, 0x9f, 0xe5, 0x00, 0x20, 0xa0, 0xe3, 0x00, 0x20, 0x80, 0xe5, 0x04, 0x00, 0x80, 0xe2, 0x01, 0x00, 0x50, 0xe1, 0xfb, 0xff, 0xff, 0x1a, 0x0e, 0xf0, 0xa0, 0xe1, 0x00, 0xde, 0x02, 0x00, 0x54, 0xde, 0x02, 0x00, 0x5f, 0xf0, 0x7f, 0xf5, 0x30, 0x0f, 0x30, 0xee, 0xa0, 0x3b, 0xa0, 0xe1, 0x0e, 0x30, 0x13, 0xe2, 0x1c, 0x00, 0x00, 0x0a, 0x00, 0xa0, 0xa0, 0xe3, 0xaa, 0x20, 0x8a, 0xe0, 0x30, 0x12, 0xa0, 0xe1, 0x07, 0x10, 0x01, 0xe2, 0x02, 0x00, 0x51, 0xe3, 0x13, 0x00, 0x00, 0xba, 0x10, 0xaf, 0x40, 0xee, 0x6f, 0xf0, 0x7f, 0xf5, 0x10, 0x1f, 0x30, 0xee, 0x07, 0x20, 0x01, 0xe2, 0x04, 0x20, 0x82, 0xe2, 0xff, 0x43, 0x00, 0xe3, 0xa1, 0x41, 0x14, 0xe0, 0x14, 0x5f, 0x6f, 0xe1, 0xff, 0x7f, 0x07, 0xe3, 0xa1, 0x76, 0x17, 0xe0, 0x07, 0x90, 0xa0, 0xe1, 0x14, 0x65, 0xa0, 0xe1, 0x06, 0xb0, 0x8a, 0xe1, 0x19, 0x62, 0xa0, 0xe1, 0x06, 0xb0, 0x8b, 0xe1, 0x5e, 0xbf, 0x07, 0xee, 0x01, 0x90, 0x59, 0xe2, 0xf8, 0xff, 0xff, 0xaa, 0x01, 0x40, 0x54, 0xe2, 0xf5, 0xff, 0xff, 0xaa, 0x02, 0xa0, 0x8a, 0xe2, 0x0a, 0x00, 0x53, 0xe1, 0xe3, 0xff, 0xff, 0xca, 0x00, 0xa0, 0xa0, 0xe3, 0x10, 0xaf, 0x40, 0xee, 0x4e, 0xf0, 0x7f, 0xf5, 0x6f, 0xf0, 0x7f, 0xf5, 0x1e, 0xff, 0x2f, 0xe1, 0xf0, 0x4e, 0x2d, 0xe9, 0xd6, 0xff, 0xff, 0xeb, 0xf0, 0x4e, 0xbd, 0xe8, 0x1e, 0xff, 0x2f, 0xe1, 0x04, 0x20, 0x52, 0xe2, 0x2c, 0x00, 0x00, 0xba, 0x02, 0x00, 0x53, 0xe3, 0x01, 0x10, 0xc0, 0xb4, 0x01, 0x10, 0xc0, 0xd4, 0x01, 0x10, 0xc0, 0xe4, 0x03, 0x20, 0x82, 0xe0, 0x03, 0x30, 0x10, 0xe2, 0xf6, 0xff, 0xff, 0x1a, 0x01, 0x14, 0x81, 0xe1, 0x01, 0x18, 0x81, 0xe1, 0x01, 0x30, 0xa0, 0xe1, 0x10, 0x00, 0x52, 0xe3, 0x1c, 0x00, 0x00, 0xba, 0xf0, 0x40, 0x2d, 0xe9, 0x01, 0x40, 0xa0, 0xe1, 0x01, 0x50, 0xa0, 0xe1, 0x01, 0x60, 0xa0, 0xe1, 0x01, 0x70, 0xa0, 0xe1, 0x01, 0xc0, 0xa0, 0xe1, 0x01, 0xe0, 0xa0, 0xe1, 0x60, 0x00, 0x52, 0xe3, 0x1f, 0x00, 0x10, 0xc3, 0x08, 0x00, 0x00, 0xda, 0x1f, 0xc0, 0x00, 0xe2, 0x20, 0xc0, 0x6c, 0xe2, 0x0c, 0x20, 0x42, 0xe0, 0x0c, 0xce, 0xb0, 0xe1, 0xf0, 0x00, 0xa0, 0x28, 0x30, 0x00, 0xa0, 0x48, 0x01, 0x01, 0x1c, 0xe3, 0x01, 0xc0, 0xa0, 0xe1, 0x04, 0x10, 0x80, 0x14, 0x40, 0x20, 0x52, 0xe2, 0xfa, 0x50, 0xa0, 0xa8, 0xfa, 0x50, 0xa0, 0xa8, 0xfb, 0xff, 0xff, 0xca, 0xf0, 0x80, 0xbd, 0x08, 0x20, 0x00, 0x12, 0xe3, 0xfa, 0x50, 0xa0, 0x18, 0x10, 0x00, 0x12, 0xe3, 0xf0, 0x00, 0xa0, 0x18, 0xf0, 0x40, 0xbd, 0xe8, 0x08, 0x00, 0x12, 0xe3, 0x0a, 0x00, 0xa0, 0x18, 0x04, 0x00, 0x12, 0xe3, 0x04, 0x10, 0x80, 0x14, 0x02, 0x00, 0x12, 0xe3, 0x01, 0x10, 0xc0, 0x14, 0x01, 0x10, 0xc0, 0x14, 0x01, 0x00, 0x12, 0xe3, 0x01, 0x10, 0xc0, 0x14, 0x3e, 0xff, 0x2f, 0xe1, 0x01, 0x00, 0x50, 0xe1, 0x0e, 0xf0, 0xa0, 0x01, 0x11, 0x40, 0x2d, 0xe9, 0x04, 0x20, 0x52, 0xe2, 0x33, 0x00, 0x00, 0xba, 0x03, 0xc0, 0x10, 0xe2, 0x00, 0xf0, 0xd1, 0xf5, 0x39, 0x00, 0x00, 0x1a, 0x03, 0xc0, 0x11, 0xe2, 0x43, 0x00, 0x00, 0x1a, 0x1c, 0x20, 0x52, 0xe2, 0xe0, 0x01, 0x2d, 0xe9, 0x13, 0x00, 0x00, 0xba, 0x1f, 0xc0, 0x10, 0xe2, 0x20, 0x30, 0x6c, 0xe2, 0x02, 0x40, 0xd3, 0x10, 0x03, 0x00, 0x00, 0x2a, 0x48, 0x40, 0x8f, 0xe2, 0x03, 0x20, 0x52, 0xe0, 0x0c, 0xf0, 0x84, 0xe0, 0x00, 0xf0, 0xd1, 0xf5, 0x60, 0x20, 0x52, 0xe2, 0x1c, 0xf0, 0xd1, 0xf5, 0x02, 0x00, 0x00, 0xba, 0x3c, 0xf0, 0xd1, 0xf5, 0x5c, 0xf0, 0xd1, 0xf5, 0x7c, 0xf0, 0xd1, 0xf5, 0xf8, 0x51, 0xb1, 0xe8, 0x20, 0x20, 0x52, 0xe2, 0xf8, 0x51, 0xa0, 0xe8, 0xfa, 0xff, 0xff, 0xaa, 0x60, 0x00, 0x72, 0xe3, 0xf9, 0xff, 0xff, 0xaa, 0x1c, 0xc0, 0x12, 0xe2, 0x20, 0xc0, 0x6c, 0xe2, 0x0c, 0xf0, 0x8f, 0x10, 0x12, 0x00, 0x00, 0xea, 0x00, 0xf0, 0x20, 0xe3, 0x04, 0x30, 0x91, 0xe4, 0x04, 0x40, 0x91, 0xe4, 0x04, 0x50, 0x91, 0xe4, 0x04, 0x60, 0x91, 0xe4, 0x04, 0x70, 0x91, 0xe4, 0x04, 0x80, 0x91, 0xe4, 0x04, 0xe0, 0x91, 0xe4, 0x0c, 0xf0, 0x8f, 0xe0, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0xf0, 0x20, 0xe3, 0x04, 0x30, 0x80, 0xe4, 0x04, 0x40, 0x80, 0xe4, 0x04, 0x50, 0x80, 0xe4, 0x04, 0x60, 0x80, 0xe4, 0x04, 0x70, 0x80, 0xe4, 0x04, 0x80, 0x80, 0xe4, 0x04, 0xe0, 0x80, 0xe4, 0xdc, 0xff, 0xff, 0x2a, 0xe0, 0x01, 0xbd, 0xe8, 0x82, 0x2f, 0xb0, 0xe1, 0x01, 0x30, 0xd1, 0x14, 0x01, 0x40, 0xd1, 0x24, 0x01, 0xc0, 0xd1, 0x24, 0x01, 0x30, 0xc0, 0x14, 0x01, 0x40, 0xc0, 0x24, 0x01, 0xc0, 0xc0, 0x24, 0x11, 0x40, 0xbd, 0xe8, 0x3e, 0xff, 0x2f, 0xe1, 0x04, 0xc0, 0x6c, 0xe2, 0x02, 0x00, 0x5c, 0xe3, 0x01, 0x30, 0xd1, 0xc4, 0x01, 0x40, 0xd1, 0xa4, 0x01, 0xe0, 0xd1, 0xe4, 0x01, 0x30, 0xc0, 0xc4, 0x01, 0x40, 0xc0, 0xa4, 0x0c, 0x20, 0x52, 0xe0, 0x01, 0xe0, 0xc0, 0xe4, 0xec, 0xff, 0xff, 0xba, 0x03, 0xc0, 0x11, 0xe2, 0xbb, 0xff, 0xff, 0x0a, 0x03, 0x10, 0xc1, 0xe3, 0x02, 0x00, 0x5c, 0xe3, 0x04, 0xe0, 0x91, 0xe4, 0x33, 0x00, 0x00, 0x0a, 0x65, 0x00, 0x00, 0xca, 0x1c, 0x20, 0x52, 0xe2, 0x24, 0x00, 0x00, 0xba, 0x1f, 0xc0, 0x10, 0xe2, 0x20, 0xc0, 0x6c, 0xe2, 0x02, 0x40, 0xdc, 0x10, 0x0c, 0x20, 0x42, 0x30, 0x21, 0x00, 0x00, 0x3a, 0xe0, 0x03, 0x2d, 0xe9, 0x00, 0xf0, 0xd1, 0xf5, 0x60, 0x20, 0x52, 0xe2, 0x1c, 0xf0, 0xd1, 0xf5, 0x02, 0x00, 0x00, 0xba, 0x3c, 0xf0, 0xd1, 0xf5, 0x5c, 0xf0, 0xd1, 0xf5, 0x7c, 0xf0, 0xd1, 0xf5, 0xf0, 0x00, 0xb1, 0xe8, 0x2e, 0x34, 0xa0, 0xe1, 0x20, 0x20, 0x52, 0xe2, 0x00, 0x53, 0xb1, 0xe8, 0x04, 0x3c, 0x83, 0xe1, 0x24, 0x44, 0xa0, 0xe1, 0x05, 0x4c, 0x84, 0xe1, 0x25, 0x54, 0xa0, 0xe1, 0x06, 0x5c, 0x85, 0xe1, 0x26, 0x64, 0xa0, 0xe1, 0x07, 0x6c, 0x86, 0xe1, 0x27, 0x74, 0xa0, 0xe1, 0x08, 0x7c, 0x87, 0xe1, 0x28, 0x84, 0xa0, 0xe1, 0x09, 0x8c, 0x88, 0xe1, 0x29, 0x94, 0xa0, 0xe1, 0x0c, 0x9c, 0x89, 0xe1, 0x2c, 0xc4, 0xa0, 0xe1, 0x0e, 0xcc, 0x8c, 0xe1, 0xf8, 0x13, 0xa0, 0xe8, 0xe9, 0xff, 0xff, 0xaa, 0x60, 0x00, 0x72, 0xe3, 0xe8, 0xff, 0xff, 0xaa, 0xe0, 0x03, 0xbd, 0xe8, 0x1c, 0xc0, 0x12, 0xe2, 0x07, 0x00, 0x00, 0x0a, 0x2e, 0x34, 0xa0, 0xe1, 0x04, 0xe0, 0x91, 0xe4, 0x04, 0xc0, 0x5c, 0xe2, 0x0e, 0x3c, 0x83, 0xe1, 0x04, 0x30, 0x80, 0xe4, 0xf9, 0xff, 0xff, 0xca, 0x00, 0x00, 0x52, 0xe3, 0xd5, 0xff, 0xff, 0xaa, 0x03, 0x10, 0x41, 0xe2, 0xb2, 0xff, 0xff, 0xea, 0x1c, 0x20, 0x52, 0xe2, 0x24, 0x00, 0x00, 0xba, 0x1f, 0xc0, 0x10, 0xe2, 0x20, 0xc0, 0x6c, 0xe2, 0x02, 0x40, 0xdc, 0x10, 0x0c, 0x20, 0x42, 0x30, 0x21, 0x00, 0x00, 0x3a, 0xe0, 0x03, 0x2d, 0xe9, 0x00, 0xf0, 0xd1, 0xf5, 0x60, 0x20, 0x52, 0xe2, 0x1c, 0xf0, 0xd1, 0xf5, 0x02, 0x00, 0x00, 0xba, 0x3c, 0xf0, 0xd1, 0xf5, 0x5c, 0xf0, 0xd1, 0xf5, 0x7c, 0xf0, 0xd1, 0xf5, 0xf0, 0x00, 0xb1, 0xe8, 0x2e, 0x38, 0xa0, 0xe1, 0x20, 0x20, 0x52, 0xe2, 0x00, 0x53, 0xb1, 0xe8, 0x04, 0x38, 0x83, 0xe1, 0x24, 0x48, 0xa0, 0xe1, 0x05, 0x48, 0x84, 0xe1, 0x25, 0x58, 0xa0, 0xe1, 0x06, 0x58, 0x85, 0xe1, 0x26, 0x68, 0xa0, 0xe1, 0x07, 0x68, 0x86, 0xe1, 0x27, 0x78, 0xa0, 0xe1, 0x08, 0x78, 0x87, 0xe1, 0x28, 0x88, 0xa0, 0xe1, 0x09, 0x88, 0x88, 0xe1, 0x29, 0x98, 0xa0, 0xe1, 0x0c, 0x98, 0x89, 0xe1, 0x2c, 0xc8, 0xa0, 0xe1, 0x0e, 0xc8, 0x8c, 0xe1, 0xf8, 0x13, 0xa0, 0xe8, 0xe9, 0xff, 0xff, 0xaa, 0x60, 0x00, 0x72, 0xe3, 0xe8, 0xff, 0xff, 0xaa, 0xe0, 0x03, 0xbd, 0xe8, 0x1c, 0xc0, 0x12, 0xe2, 0x07, 0x00, 0x00, 0x0a, 0x2e, 0x38, 0xa0, 0xe1, 0x04, 0xe0, 0x91, 0xe4, 0x04, 0xc0, 0x5c, 0xe2, 0x0e, 0x38, 0x83, 0xe1, 0x04, 0x30, 0x80, 0xe4, 0xf9, 0xff, 0xff, 0xca, 0x00, 0x00, 0x52, 0xe3, 0xd5, 0xff, 0xff, 0xaa, 0x02, 0x10, 0x41, 0xe2, 0x7f, 0xff, 0xff, 0xea, 0x1c, 0x20, 0x52, 0xe2, 0x24, 0x00, 0x00, 0xba, 0x1f, 0xc0, 0x10, 0xe2, 0x20, 0xc0, 0x6c, 0xe2, 0x02, 0x40, 0xdc, 0x10, 0x0c, 0x20, 0x42, 0x30, 0x21, 0x00, 0x00, 0x3a, 0xe0, 0x03, 0x2d, 0xe9, 0x00, 0xf0, 0xd1, 0xf5, 0x60, 0x20, 0x52, 0xe2, 0x1c, 0xf0, 0xd1, 0xf5, 0x02, 0x00, 0x00, 0xba, 0x3c, 0xf0, 0xd1, 0xf5, 0x5c, 0xf0, 0xd1, 0xf5, 0x7c, 0xf0, 0xd1, 0xf5, 0xf0, 0x00, 0xb1, 0xe8, 0x2e, 0x3c, 0xa0, 0xe1, 0x20, 0x20, 0x52, 0xe2, 0x00, 0x53, 0xb1, 0xe8, 0x04, 0x34, 0x83, 0xe1, 0x24, 0x4c, 0xa0, 0xe1, 0x05, 0x44, 0x84, 0xe1, 0x25, 0x5c, 0xa0, 0xe1, 0x06, 0x54, 0x85, 0xe1, 0x26, 0x6c, 0xa0, 0xe1, 0x07, 0x64, 0x86, 0xe1, 0x27, 0x7c, 0xa0, 0xe1, 0x08, 0x74, 0x87, 0xe1, 0x28, 0x8c, 0xa0, 0xe1, 0x09, 0x84, 0x88, 0xe1, 0x29, 0x9c, 0xa0, 0xe1, 0x0c, 0x94, 0x89, 0xe1, 0x2c, 0xcc, 0xa0, 0xe1, 0x0e, 0xc4, 0x8c, 0xe1, 0xf8, 0x13, 0xa0, 0xe8, 0xe9, 0xff, 0xff, 0xaa, 0x60, 0x00, 0x72, 0xe3, 0xe8, 0xff, 0xff, 0xaa, 0xe0, 0x03, 0xbd, 0xe8, 0x1c, 0xc0, 0x12, 0xe2, 0x07, 0x00, 0x00, 0x0a, 0x2e, 0x3c, 0xa0, 0xe1, 0x04, 0xe0, 0x91, 0xe4, 0x04, 0xc0, 0x5c, 0xe2, 0x0e, 0x34, 0x83, 0xe1, 0x04, 0x30, 0x80, 0xe4, 0xf9, 0xff, 0xff, 0xca, 0x00, 0x00, 0x52, 0xe3, 0xd5, 0xff, 0xff, 0xaa, 0x01, 0x10, 0x41, 0xe2, 0x4c, 0xff, 0xff, 0xea, 0x07, 0x4a, 0x80, 0xea, 0x01, 0x20, 0x08, 0x23, 0x00, 0xf4, 0x00, 0x41, 0x40, 0x00, 0x80, 0xb2, 0x09, 0xb1, 0x50, 0x40, 0x80, 0xb2, 0x01, 0x3b, 0x9b, 0xb2, 0x00, 0x2b, 0xf4, 0xd1, 0x70, 0x47, 0x05, 0x80, 0xff, 0xff, 0x38, 0xb5, 0x05, 0x46, 0x0c, 0x46, 0x2c, 0x19, 0xff, 0xf7, 0xe8, 0xff, 0x44, 0xea, 0x00, 0x40, 0x38, 0xbd, 0x08, 0x4a, 0x82, 0xb0, 0x00, 0x23, 0x01, 0x93, 0x12, 0x68, 0x02, 0xf0, 0x07, 0x02, 0x01, 0x92, 0x01, 0x9a, 0x1a, 0xb9, 0x01, 0x21, 0x02, 0xb0, 0xff, 0xf7, 0xe9, 0xbf, 0x18, 0x46, 0x02, 0xb0, 0x70, 0x47, 0x04, 0x50, 0xc1, 0x01, 0x4a, 0x1e, 0x08, 0xbf, 0x70, 0x47, 0xc0, 0xf0, 0x24, 0x81, 0x88, 0x42, 0x40, 0xf2, 0x16, 0x81, 0x11, 0x42, 0x00, 0xf0, 0x17, 0x81, 0xb0, 0xfa, 0x80, 0xf3, 0xb1, 0xfa, 0x81, 0xf2, 0xa2, 0xeb, 0x03, 0x03, 0xc3, 0xf1, 0x1f, 0x03, 0x04, 0xa2, 0x02, 0xeb, 0x03, 0x13, 0x4f, 0xf0, 0x00, 0x02, 0x9f, 0x46, 0x00, 0xbf, 0xaf, 0xf3, 0x00, 0x80, 0xb0, 0xeb, 0xc1, 0x7f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x70, 0xb0, 0xeb, 0x81, 0x7f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x70, 0xb0, 0xeb, 0x41, 0x7f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x70, 0xb0, 0xeb, 0x01, 0x7f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x70, 0xb0, 0xeb, 0xc1, 0x6f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x60, 0xb0, 0xeb, 0x81, 0x6f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x60, 0xb0, 0xeb, 0x41, 0x6f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x60, 0xb0, 0xeb, 0x01, 0x6f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x60, 0xb0, 0xeb, 0xc1, 0x5f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x50, 0xb0, 0xeb, 0x81, 0x5f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x50, 0xb0, 0xeb, 0x41, 0x5f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x50, 0xb0, 0xeb, 0x01, 0x5f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x50, 0xb0, 0xeb, 0xc1, 0x4f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x40, 0xb0, 0xeb, 0x81, 0x4f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x40, 0xb0, 0xeb, 0x41, 0x4f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x40, 0xb0, 0xeb, 0x01, 0x4f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x40, 0xb0, 0xeb, 0xc1, 0x3f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x30, 0xb0, 0xeb, 0x81, 0x3f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x30, 0xb0, 0xeb, 0x41, 0x3f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x30, 0xb0, 0xeb, 0x01, 0x3f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x30, 0xb0, 0xeb, 0xc1, 0x2f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x20, 0xb0, 0xeb, 0x81, 0x2f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x20, 0xb0, 0xeb, 0x41, 0x2f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x20, 0xb0, 0xeb, 0x01, 0x2f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x20, 0xb0, 0xeb, 0xc1, 0x1f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x10, 0xb0, 0xeb, 0x81, 0x1f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x10, 0xb0, 0xeb, 0x41, 0x1f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x10, 0xb0, 0xeb, 0x01, 0x1f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x10, 0xb0, 0xeb, 0xc1, 0x0f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x00, 0xb0, 0xeb, 0x81, 0x0f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x00, 0xb0, 0xeb, 0x41, 0x0f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x00, 0xb0, 0xeb, 0x01, 0x0f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x00, 0x10, 0x46, 0x70, 0x47, 0x0c, 0xbf, 0x01, 0x20, 0x00, 0x20, 0x70, 0x47, 0xb1, 0xfa, 0x81, 0xf2, 0xc2, 0xf1, 0x1f, 0x02, 0x20, 0xfa, 0x02, 0xf0, 0x70, 0x47, 0x08, 0xb1, 0x4f, 0xf0, 0xff, 0x30, 0x00, 0xf0, 0xea, 0xbb, 0x00, 0x29, 0xf8, 0xd0, 0x2d, 0xe9, 0x03, 0x40, 0xff, 0xf7, 0xcc, 0xfe, 0xbd, 0xe8, 0x06, 0x40, 0x02, 0xfb, 0x00, 0xf3, 0xa1, 0xeb, 0x03, 0x01, 0x70, 0x47, 0x00, 0xbf, 0x00, 0x29, 0x00, 0xf0, 0x3e, 0x81, 0x80, 0xea, 0x01, 0x0c, 0x48, 0xbf, 0x49, 0x42, 0x4a, 0x1e, 0x00, 0xf0, 0x1f, 0x81, 0x03, 0x00, 0x48, 0xbf, 0x43, 0x42, 0x8b, 0x42, 0x40, 0xf2, 0x1e, 0x81, 0x11, 0x42, 0x00, 0xf0, 0x23, 0x81, 0xb3, 0xfa, 0x83, 0xf2, 0xb1, 0xfa, 0x81, 0xf0, 0xa0, 0xeb, 0x02, 0x02, 0xc2, 0xf1, 0x1f, 0x02, 0x04, 0xa0, 0x00, 0xeb, 0x02, 0x12, 0x4f, 0xf0, 0x00, 0x00, 0x97, 0x46, 0x00, 0xbf, 0xaf, 0xf3, 0x00, 0x80, 0xb3, 0xeb, 0xc1, 0x7f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x73, 0xb3, 0xeb, 0x81, 0x7f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x73, 0xb3, 0xeb, 0x41, 0x7f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x73, 0xb3, 0xeb, 0x01, 0x7f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x73, 0xb3, 0xeb, 0xc1, 0x6f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x63, 0xb3, 0xeb, 0x81, 0x6f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x63, 0xb3, 0xeb, 0x41, 0x6f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x63, 0xb3, 0xeb, 0x01, 0x6f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x63, 0xb3, 0xeb, 0xc1, 0x5f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x53, 0xb3, 0xeb, 0x81, 0x5f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x53, 0xb3, 0xeb, 0x41, 0x5f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x53, 0xb3, 0xeb, 0x01, 0x5f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x53, 0xb3, 0xeb, 0xc1, 0x4f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x43, 0xb3, 0xeb, 0x81, 0x4f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x43, 0xb3, 0xeb, 0x41, 0x4f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x43, 0xb3, 0xeb, 0x01, 0x4f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x43, 0xb3, 0xeb, 0xc1, 0x3f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x33, 0xb3, 0xeb, 0x81, 0x3f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x33, 0xb3, 0xeb, 0x41, 0x3f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x33, 0xb3, 0xeb, 0x01, 0x3f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x33, 0xb3, 0xeb, 0xc1, 0x2f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x23, 0xb3, 0xeb, 0x81, 0x2f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x23, 0xb3, 0xeb, 0x41, 0x2f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x23, 0xb3, 0xeb, 0x01, 0x2f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x23, 0xb3, 0xeb, 0xc1, 0x1f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x13, 0xb3, 0xeb, 0x81, 0x1f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x13, 0xb3, 0xeb, 0x41, 0x1f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x13, 0xb3, 0xeb, 0x01, 0x1f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x13, 0xb3, 0xeb, 0xc1, 0x0f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x03, 0xb3, 0xeb, 0x81, 0x0f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x03, 0xb3, 0xeb, 0x41, 0x0f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x03, 0xb3, 0xeb, 0x01, 0x0f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x03, 0xbc, 0xf1, 0x00, 0x0f, 0x48, 0xbf, 0x40, 0x42, 0x70, 0x47, 0x9c, 0xea, 0x00, 0x0f, 0x48, 0xbf, 0x40, 0x42, 0x70, 0x47, 0x38, 0xbf, 0x00, 0x20, 0x04, 0xbf, 0x4f, 0xea, 0xec, 0x70, 0x40, 0xf0, 0x01, 0x00, 0x70, 0x47, 0xb1, 0xfa, 0x81, 0xf2, 0xc2, 0xf1, 0x1f, 0x02, 0xbc, 0xf1, 0x00, 0x0f, 0x23, 0xfa, 0x02, 0xf0, 0x48, 0xbf, 0x40, 0x42, 0x70, 0x47, 0x00, 0x28, 0xc8, 0xbf, 0x6f, 0xf0, 0x00, 0x40, 0xb8, 0xbf, 0x4f, 0xf0, 0x00, 0x40, 0x00, 0xf0, 0x92, 0xba, 0x00, 0x29, 0xf4, 0xd0, 0x2d, 0xe9, 0x03, 0x40, 0xff, 0xf7, 0xb3, 0xfe, 0xbd, 0xe8, 0x06, 0x40, 0x02, 0xfb, 0x00, 0xf3, 0xa1, 0xeb, 0x03, 0x01, 0x70, 0x47, 0x00, 0xbf, 0x80, 0xf0, 0x00, 0x40, 0x02, 0xe0, 0x00, 0xbf, 0x81, 0xf0, 0x00, 0x41, 0x42, 0x00, 0x1f, 0xbf, 0x5f, 0xea, 0x41, 0x03, 0x92, 0xea, 0x03, 0x0f, 0x7f, 0xea, 0x22, 0x6c, 0x7f, 0xea, 0x23, 0x6c, 0x6a, 0xd0, 0x4f, 0xea, 0x12, 0x62, 0xd2, 0xeb, 0x13, 0x63, 0xc1, 0xbf, 0xd2, 0x18, 0x41, 0x40, 0x48, 0x40, 0x41, 0x40, 0xb8, 0xbf, 0x5b, 0x42, 0x19, 0x2b, 0x88, 0xbf, 0x70, 0x47, 0x10, 0xf0, 0x00, 0x4f, 0x40, 0xf4, 0x00, 0x00, 0x20, 0xf0, 0x7f, 0x40, 0x18, 0xbf, 0x40, 0x42, 0x11, 0xf0, 0x00, 0x4f, 0x41, 0xf4, 0x00, 0x01, 0x21, 0xf0, 0x7f, 0x41, 0x18, 0xbf, 0x49, 0x42, 0x92, 0xea, 0x03, 0x0f, 0x3f, 0xd0, 0xa2, 0xf1, 0x01, 0x02, 0x41, 0xfa, 0x03, 0xfc, 0x10, 0xeb, 0x0c, 0x00, 0xc3, 0xf1, 0x20, 0x03, 0x01, 0xfa, 0x03, 0xf1, 0x00, 0xf0, 0x00, 0x43, 0x02, 0xd5, 0x49, 0x42, 0x60, 0xeb, 0x40, 0x00, 0xb0, 0xf5, 0x00, 0x0f, 0x13, 0xd3, 0xb0, 0xf1, 0x80, 0x7f, 0x06, 0xd3, 0x40, 0x08, 0x4f, 0xea, 0x31, 0x01, 0x02, 0xf1, 0x01, 0x02, 0xfe, 0x2a, 0x51, 0xd2, 0xb1, 0xf1, 0x00, 0x4f, 0x40, 0xeb, 0xc2, 0x50, 0x08, 0xbf, 0x20, 0xf0, 0x01, 0x00, 0x40, 0xea, 0x03, 0x00, 0x70, 0x47, 0x49, 0x00, 0x40, 0xeb, 0x00, 0x00, 0x10, 0xf4, 0x00, 0x0f, 0xa2, 0xf1, 0x01, 0x02, 0xed, 0xd1, 0xb0, 0xfa, 0x80, 0xfc, 0xac, 0xf1, 0x08, 0x0c, 0xb2, 0xeb, 0x0c, 0x02, 0x00, 0xfa, 0x0c, 0xf0, 0xaa, 0xbf, 0x00, 0xeb, 0xc2, 0x50, 0x52, 0x42, 0x18, 0x43, 0xbc, 0xbf, 0xd0, 0x40, 0x18, 0x43, 0x70, 0x47, 0x92, 0xf0, 0x00, 0x0f, 0x81, 0xf4, 0x00, 0x01, 0x06, 0xbf, 0x80, 0xf4, 0x00, 0x00, 0x01, 0x32, 0x01, 0x3b, 0xb5, 0xe7, 0x4f, 0xea, 0x41, 0x03, 0x7f, 0xea, 0x22, 0x6c, 0x18, 0xbf, 0x7f, 0xea, 0x23, 0x6c, 0x21, 0xd0, 0x92, 0xea, 0x03, 0x0f, 0x04, 0xd0, 0x92, 0xf0, 0x00, 0x0f, 0x08, 0xbf, 0x08, 0x46, 0x70, 0x47, 0x90, 0xea, 0x01, 0x0f, 0x1c, 0xbf, 0x00, 0x20, 0x70, 0x47, 0x12, 0xf0, 0x7f, 0x4f, 0x04, 0xd1, 0x40, 0x00, 0x28, 0xbf, 0x40, 0xf0, 0x00, 0x40, 0x70, 0x47, 0x12, 0xf1, 0x00, 0x72, 0x3c, 0xbf, 0x00, 0xf5, 0x00, 0x00, 0x70, 0x47, 0x00, 0xf0, 0x00, 0x43, 0x43, 0xf0, 0xfe, 0x40, 0x40, 0xf4, 0x00, 0x00, 0x70, 0x47, 0x7f, 0xea, 0x22, 0x62, 0x16, 0xbf, 0x08, 0x46, 0x7f, 0xea, 0x23, 0x63, 0x01, 0x46, 0x42, 0x02, 0x06, 0xbf, 0x5f, 0xea, 0x41, 0x23, 0x90, 0xea, 0x01, 0x0f, 0x40, 0xf4, 0x80, 0x00, 0x70, 0x47, 0x4f, 0xf0, 0x00, 0x03, 0x04, 0xe0, 0x00, 0xbf, 0x10, 0xf0, 0x00, 0x43, 0x48, 0xbf, 0x40, 0x42, 0x5f, 0xea, 0x00, 0x0c, 0x08, 0xbf, 0x70, 0x47, 0x43, 0xf0, 0x96, 0x43, 0x01, 0x46, 0x4f, 0xf0, 0x00, 0x00, 0x1c, 0xe0, 0x50, 0xea, 0x01, 0x02, 0x08, 0xbf, 0x70, 0x47, 0x4f, 0xf0, 0x00, 0x03, 0x0a, 0xe0, 0x00, 0xbf, 0x50, 0xea, 0x01, 0x02, 0x08, 0xbf, 0x70, 0x47, 0x11, 0xf0, 0x00, 0x43, 0x02, 0xd5, 0x40, 0x42, 0x61, 0xeb, 0x41, 0x01, 0x5f, 0xea, 0x01, 0x0c, 0x02, 0xbf, 0x84, 0x46, 0x01, 0x46, 0x00, 0x20, 0x43, 0xf0, 0xb6, 0x43, 0x08, 0xbf, 0xa3, 0xf1, 0x80, 0x53, 0xa3, 0xf5, 0x00, 0x03, 0xbc, 0xfa, 0x8c, 0xf2, 0x08, 0x3a, 0xa3, 0xeb, 0xc2, 0x53, 0x10, 0xdb, 0x01, 0xfa, 0x02, 0xfc, 0x63, 0x44, 0x00, 0xfa, 0x02, 0xfc, 0xc2, 0xf1, 0x20, 0x02, 0xbc, 0xf1, 0x00, 0x4f, 0x20, 0xfa, 0x02, 0xf2, 0x43, 0xeb, 0x02, 0x00, 0x08, 0xbf, 0x20, 0xf0, 0x01, 0x00, 0x70, 0x47, 0x02, 0xf1, 0x20, 0x02, 0x01, 0xfa, 0x02, 0xfc, 0xc2, 0xf1, 0x20, 0x02, 0x50, 0xea, 0x4c, 0x00, 0x21, 0xfa, 0x02, 0xf2, 0x43, 0xeb, 0x02, 0x00, 0x08, 0xbf, 0x20, 0xea, 0xdc, 0x70, 0x70, 0x47, 0x4f, 0xf0, 0xff, 0x0c, 0x1c, 0xea, 0xd0, 0x52, 0x1e, 0xbf, 0x1c, 0xea, 0xd1, 0x53, 0x92, 0xea, 0x0c, 0x0f, 0x93, 0xea, 0x0c, 0x0f, 0x6f, 0xd0, 0x1a, 0x44, 0x80, 0xea, 0x01, 0x0c, 0x40, 0x02, 0x18, 0xbf, 0x5f, 0xea, 0x41, 0x21, 0x1e, 0xd0, 0x4f, 0xf0, 0x00, 0x63, 0x43, 0xea, 0x50, 0x10, 0x43, 0xea, 0x51, 0x11, 0xa0, 0xfb, 0x01, 0x31, 0x0c, 0xf0, 0x00, 0x40, 0xb1, 0xf5, 0x00, 0x0f, 0x3e, 0xbf, 0x49, 0x00, 0x41, 0xea, 0xd3, 0x71, 0x5b, 0x00, 0x40, 0xea, 0x01, 0x00, 0x62, 0xf1, 0x7f, 0x02, 0xfd, 0x2a, 0x1d, 0xd8, 0xb3, 0xf1, 0x00, 0x4f, 0x40, 0xeb, 0xc2, 0x50, 0x08, 0xbf, 0x20, 0xf0, 0x01, 0x00, 0x70, 0x47, 0x90, 0xf0, 0x00, 0x0f, 0x0c, 0xf0, 0x00, 0x4c, 0x08, 0xbf, 0x49, 0x02, 0x4c, 0xea, 0x50, 0x20, 0x40, 0xea, 0x51, 0x20, 0x7f, 0x3a, 0xc2, 0xbf, 0xd2, 0xf1, 0xff, 0x03, 0x40, 0xea, 0xc2, 0x50, 0x70, 0x47, 0x40, 0xf4, 0x00, 0x00, 0x4f, 0xf0, 0x00, 0x03, 0x01, 0x3a, 0x5d, 0xdc, 0x12, 0xf1, 0x19, 0x0f, 0xdc, 0xbf, 0x00, 0xf0, 0x00, 0x40, 0x70, 0x47, 0xc2, 0xf1, 0x00, 0x02, 0x41, 0x00, 0x21, 0xfa, 0x02, 0xf1, 0xc2, 0xf1, 0x20, 0x02, 0x00, 0xfa, 0x02, 0xfc, 0x5f, 0xea, 0x31, 0x00, 0x40, 0xf1, 0x00, 0x00, 0x53, 0xea, 0x4c, 0x03, 0x08, 0xbf, 0x20, 0xea, 0xdc, 0x70, 0x70, 0x47, 0x92, 0xf0, 0x00, 0x0f, 0x00, 0xf0, 0x00, 0x4c, 0x02, 0xbf, 0x40, 0x00, 0x10, 0xf4, 0x00, 0x0f, 0x01, 0x3a, 0xf9, 0xd0, 0x40, 0xea, 0x0c, 0x00, 0x93, 0xf0, 0x00, 0x0f, 0x01, 0xf0, 0x00, 0x4c, 0x02, 0xbf, 0x49, 0x00, 0x11, 0xf4, 0x00, 0x0f, 0x01, 0x3b, 0xf9, 0xd0, 0x41, 0xea, 0x0c, 0x01, 0x8f, 0xe7, 0x0c, 0xea, 0xd1, 0x53, 0x92, 0xea, 0x0c, 0x0f, 0x18, 0xbf, 0x93, 0xea, 0x0c, 0x0f, 0x0a, 0xd0, 0x30, 0xf0, 0x00, 0x4c, 0x18, 0xbf, 0x31, 0xf0, 0x00, 0x4c, 0xd8, 0xd1, 0x80, 0xea, 0x01, 0x00, 0x00, 0xf0, 0x00, 0x40, 0x70, 0x47, 0x90, 0xf0, 0x00, 0x0f, 0x17, 0xbf, 0x90, 0xf0, 0x00, 0x4f, 0x08, 0x46, 0x91, 0xf0, 0x00, 0x0f, 0x91, 0xf0, 0x00, 0x4f, 0x14, 0xd0, 0x92, 0xea, 0x0c, 0x0f, 0x01, 0xd1, 0x42, 0x02, 0x0f, 0xd1, 0x93, 0xea, 0x0c, 0x0f, 0x03, 0xd1, 0x4b, 0x02, 0x18, 0xbf, 0x08, 0x46, 0x08, 0xd1, 0x80, 0xea, 0x01, 0x00, 0x00, 0xf0, 0x00, 0x40, 0x40, 0xf0, 0xfe, 0x40, 0x40, 0xf4, 0x00, 0x00, 0x70, 0x47, 0x40, 0xf0, 0xfe, 0x40, 0x40, 0xf4, 0x40, 0x00, 0x70, 0x47, 0x4f, 0xf0, 0xff, 0x0c, 0x1c, 0xea, 0xd0, 0x52, 0x1e, 0xbf, 0x1c, 0xea, 0xd1, 0x53, 0x92, 0xea, 0x0c, 0x0f, 0x93, 0xea, 0x0c, 0x0f, 0x69, 0xd0, 0xa2, 0xeb, 0x03, 0x02, 0x80, 0xea, 0x01, 0x0c, 0x49, 0x02, 0x4f, 0xea, 0x40, 0x20, 0x37, 0xd0, 0x4f, 0xf0, 0x80, 0x53, 0x43, 0xea, 0x11, 0x11, 0x43, 0xea, 0x10, 0x13, 0x0c, 0xf0, 0x00, 0x40, 0x8b, 0x42, 0x38, 0xbf, 0x5b, 0x00, 0x42, 0xf1, 0x7d, 0x02, 0x4f, 0xf4, 0x00, 0x0c, 0x8b, 0x42, 0x24, 0xbf, 0x5b, 0x1a, 0x40, 0xea, 0x0c, 0x00, 0xb3, 0xeb, 0x51, 0x0f, 0x24, 0xbf, 0xa3, 0xeb, 0x51, 0x03, 0x40, 0xea, 0x5c, 0x00, 0xb3, 0xeb, 0x91, 0x0f, 0x24, 0xbf, 0xa3, 0xeb, 0x91, 0x03, 0x40, 0xea, 0x9c, 0x00, 0xb3, 0xeb, 0xd1, 0x0f, 0x24, 0xbf, 0xa3, 0xeb, 0xd1, 0x03, 0x40, 0xea, 0xdc, 0x00, 0x1b, 0x01, 0x18, 0xbf, 0x5f, 0xea, 0x1c, 0x1c, 0xe0, 0xd1, 0xfd, 0x2a, 0x3f, 0xf6, 0x50, 0xaf, 0x8b, 0x42, 0x40, 0xeb, 0xc2, 0x50, 0x08, 0xbf, 0x20, 0xf0, 0x01, 0x00, 0x70, 0x47, 0x0c, 0xf0, 0x00, 0x4c, 0x4c, 0xea, 0x50, 0x20, 0x7f, 0x32, 0xc2, 0xbf, 0xd2, 0xf1, 0xff, 0x03, 0x40, 0xea, 0xc2, 0x50, 0x70, 0x47, 0x40, 0xf4, 0x00, 0x00, 0x4f, 0xf0, 0x00, 0x03, 0x01, 0x3a, 0x37, 0xe7, 0x92, 0xf0, 0x00, 0x0f, 0x00, 0xf0, 0x00, 0x4c, 0x02, 0xbf, 0x40, 0x00, 0x10, 0xf4, 0x00, 0x0f, 0x01, 0x3a, 0xf9, 0xd0, 0x40, 0xea, 0x0c, 0x00, 0x93, 0xf0, 0x00, 0x0f, 0x01, 0xf0, 0x00, 0x4c, 0x02, 0xbf, 0x49, 0x00, 0x11, 0xf4, 0x00, 0x0f, 0x01, 0x3b, 0xf9, 0xd0, 0x41, 0xea, 0x0c, 0x01, 0x95, 0xe7, 0x0c, 0xea, 0xd1, 0x53, 0x92, 0xea, 0x0c, 0x0f, 0x08, 0xd1, 0x42, 0x02, 0x7f, 0xf4, 0x7d, 0xaf, 0x93, 0xea, 0x0c, 0x0f, 0x7f, 0xf4, 0x70, 0xaf, 0x08, 0x46, 0x76, 0xe7, 0x93, 0xea, 0x0c, 0x0f, 0x04, 0xd1, 0x4b, 0x02, 0x3f, 0xf4, 0x4c, 0xaf, 0x08, 0x46, 0x6e, 0xe7, 0x30, 0xf0, 0x00, 0x4c, 0x18, 0xbf, 0x31, 0xf0, 0x00, 0x4c, 0xca, 0xd1, 0x30, 0xf0, 0x00, 0x42, 0x7f, 0xf4, 0x5c, 0xaf, 0x31, 0xf0, 0x00, 0x43, 0x7f, 0xf4, 0x3c, 0xaf, 0x5f, 0xe7, 0x00, 0xbf, 0x4f, 0xea, 0x40, 0x02, 0xb2, 0xf1, 0xfe, 0x4f, 0x0f, 0xd3, 0x4f, 0xf0, 0x9e, 0x03, 0xb3, 0xeb, 0x12, 0x62, 0x0d, 0xd9, 0x4f, 0xea, 0x00, 0x23, 0x43, 0xf0, 0x00, 0x43, 0x10, 0xf0, 0x00, 0x4f, 0x23, 0xfa, 0x02, 0xf0, 0x18, 0xbf, 0x40, 0x42, 0x70, 0x47, 0x4f, 0xf0, 0x00, 0x00, 0x70, 0x47, 0x12, 0xf1, 0x61, 0x0f, 0x01, 0xd1, 0x42, 0x02, 0x05, 0xd1, 0x10, 0xf0, 0x00, 0x40, 0x08, 0xbf, 0x6f, 0xf0, 0x00, 0x40, 0x70, 0x47, 0x4f, 0xf0, 0x00, 0x00, 0x70, 0x47, 0x02, 0xb5, 0x4f, 0xf0, 0x08, 0x00, 0x00, 0xf0, 0xf1, 0xfd, 0x02, 0xbd, 0x53, 0xec, 0x0e, 0x2f, 0x02, 0x4b, 0xa2, 0xfb, 0x03, 0x23, 0x58, 0x0a, 0x70, 0x47, 0x00, 0xbf, 0xf1, 0x19, 0x76, 0x05, 0x53, 0xec, 0x0e, 0x2f, 0x02, 0x4b, 0xa2, 0xfb, 0x03, 0x23, 0x18, 0x09, 0x70, 0x47, 0x00, 0xbf, 0xab, 0xaa, 0xaa, 0xaa, 0x2d, 0xe9, 0x70, 0x48, 0x51, 0xec, 0x0e, 0x6f, 0x8c, 0x46, 0x18, 0x21, 0x48, 0x43, 0x32, 0x18, 0x4c, 0xf1, 0x00, 0x03, 0x51, 0xec, 0x0e, 0x0f, 0x8b, 0x42, 0x08, 0xbf, 0x82, 0x42, 0xf9, 0xd2, 0xbd, 0xe8, 0x70, 0x88, 0x4f, 0xf4, 0x7a, 0x73, 0x58, 0x43, 0xff, 0xf7, 0xe9, 0xbf, 0xff, 0xf7, 0xe7, 0xbf, 0xff, 0xf7, 0xf7, 0xbf, 0x00, 0x20, 0x70, 0x47, 0x01, 0x38, 0xfd, 0xd1, 0x70, 0x47, 0x70, 0x47, 0x11, 0xee, 0x30, 0x0f, 0x40, 0xf0, 0x40, 0x00, 0x01, 0xee, 0x30, 0x0f, 0x70, 0x47, 0xb0, 0xf5, 0x00, 0x6f, 0x40, 0xf6, 0xea, 0x53, 0x28, 0xbf, 0x4f, 0xf4, 0x00, 0x60, 0x10, 0xb5, 0x00, 0x05, 0x40, 0xf6, 0xe2, 0x54, 0x00, 0xf1, 0x7f, 0x50, 0x00, 0xf5, 0x40, 0x10, 0x02, 0x46, 0x42, 0xf8, 0x04, 0x3b, 0x4f, 0xf4, 0x80, 0x13, 0x43, 0xea, 0x04, 0x01, 0x03, 0xf5, 0x80, 0x13, 0xb3, 0xf1, 0x80, 0x4f, 0x42, 0xf8, 0x04, 0x1b, 0xf6, 0xd1, 0x00, 0xf5, 0x80, 0x52, 0x40, 0xf6, 0xea, 0x54, 0x43, 0xea, 0x04, 0x01, 0x13, 0xf5, 0x80, 0x13, 0x42, 0xf8, 0x04, 0x1b, 0xf8, 0xd1, 0x08, 0xee, 0x17, 0x3f, 0x40, 0xf0, 0x13, 0x00, 0x02, 0xee, 0x10, 0x0f, 0x02, 0xee, 0x30, 0x0f, 0x4f, 0xf0, 0x55, 0x33, 0x03, 0xee, 0x10, 0x3f, 0xbf, 0xf3, 0x6f, 0x8f, 0x11, 0xee, 0x10, 0x4f, 0x64, 0x20, 0xff, 0xf7, 0x9d, 0xff, 0x24, 0xf0, 0x04, 0x03, 0x43, 0xf4, 0x80, 0x53, 0x43, 0xf0, 0x01, 0x03, 0x01, 0xee, 0x10, 0x3f, 0xbf, 0xf3, 0x6f, 0x8f, 0x10, 0xbd, 0x10, 0xb5, 0x11, 0xee, 0x10, 0x4f, 0x64, 0x20, 0xff, 0xf7, 0x8c, 0xff, 0x24, 0xf4, 0x80, 0x53, 0x23, 0xf0, 0x07, 0x03, 0x01, 0xee, 0x10, 0x3f, 0xbf, 0xf3, 0x6f, 0x8f, 0x00, 0x23, 0x07, 0xee, 0x15, 0x3f, 0x07, 0xee, 0xd5, 0x3f, 0xbf, 0xf3, 0x4f, 0x8f, 0xbf, 0xf3, 0x6f, 0x8f, 0x10, 0xbd, 0xbf, 0xf3, 0x4f, 0x8f, 0xbf, 0xf3, 0x6f, 0x8f, 0x70, 0x47, 0x00, 0x00, 0x09, 0x4b, 0x1a, 0x68, 0x7a, 0xb9, 0x01, 0x22, 0x1a, 0x60, 0x11, 0xee, 0x51, 0x0f, 0x40, 0xf4, 0x40, 0x60, 0x01, 0xee, 0x51, 0x0f, 0x4f, 0xf4, 0x70, 0x00, 0x01, 0xee, 0x50, 0x0f, 0x4f, 0xf0, 0x80, 0x43, 0xe8, 0xee, 0x10, 0x3a, 0x70, 0x47, 0x00, 0xde, 0x02, 0x00, 0x70, 0x47, 0x70, 0x47, 0x4f, 0xf0, 0x00, 0x02, 0x07, 0xee, 0xd5, 0x2f, 0x00, 0x47, 0x70, 0x47, 0x01, 0xf5, 0x00, 0x13, 0x1a, 0x46, 0x8e, 0x46, 0x00, 0x47, 0x70, 0x47, 0x70, 0x47, 0x30, 0xbf, 0xfd, 0xe7, 0x00, 0x00, 0x08, 0xb5, 0x00, 0xf0, 0x65, 0xf8, 0x00, 0x20, 0x03, 0xf0, 0x22, 0xfb, 0x4f, 0xf4, 0x61, 0x70, 0x03, 0xf0, 0xee, 0xfa, 0x4f, 0xf4, 0x61, 0x70, 0x03, 0xf0, 0xda, 0xfa, 0x02, 0x48, 0x00, 0xf0, 0x65, 0xfc, 0x00, 0x20, 0x08, 0xbd, 0x00, 0xbf, 0xd6, 0xd4, 0x02, 0x00, 0x00, 0x20, 0x70, 0x47, 0x08, 0xb5, 0x01, 0xf0, 0x37, 0xfc, 0x00, 0x28, 0x01, 0xdc, 0x01, 0xf0, 0xe3, 0xfa, 0x00, 0x20, 0x08, 0xbd, 0x00, 0x20, 0x70, 0x47, 0x00, 0x00, 0x07, 0xb5, 0x0c, 0x48, 0x00, 0xf0, 0x4e, 0xfc, 0x0b, 0x4b, 0x1a, 0x68, 0x01, 0x92, 0x01, 0x9a, 0x22, 0xf0, 0x01, 0x02, 0x01, 0x92, 0x01, 0x9a, 0x1a, 0x60, 0x1a, 0x68, 0x01, 0x92, 0x01, 0x9a, 0x42, 0xf0, 0x01, 0x02, 0x01, 0x92, 0x01, 0x9a, 0x00, 0x20, 0x1a, 0x60, 0x03, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x00, 0xbf, 0xe5, 0xd4, 0x02, 0x00, 0x00, 0x04, 0x00, 0x07, 0x00, 0x20, 0x70, 0x47, 0x08, 0xb5, 0x08, 0x4b, 0x1b, 0x68, 0x03, 0xf0, 0x19, 0x03, 0x19, 0x2b, 0x08, 0xd0, 0x1c, 0x20, 0x19, 0x21, 0x03, 0xf0, 0xd3, 0xfc, 0x1c, 0x20, 0xbd, 0xe8, 0x08, 0x40, 0x03, 0xf0, 0xa6, 0xbc, 0x08, 0xbd, 0x00, 0xbf, 0x1c, 0x62, 0x00, 0x03, 0x05, 0x4b, 0x1a, 0x68, 0x05, 0x49, 0xd2, 0xb2, 0x0b, 0x68, 0x1a, 0xb1, 0x23, 0xf0, 0xff, 0x03, 0x13, 0x43, 0x0b, 0x60, 0x70, 0x47, 0x00, 0xbf, 0x18, 0x62, 0x00, 0x03, 0x50, 0x01, 0x00, 0x03, 0x70, 0xb5, 0x86, 0xb0, 0xa4, 0x48, 0x00, 0xf0, 0x09, 0xfc, 0xff, 0xf7, 0xe9, 0xff, 0xa3, 0x4b, 0x1e, 0x68, 0xc6, 0xf3, 0x85, 0x56, 0x9d, 0x6a, 0xa1, 0x4c, 0x02, 0x20, 0xc5, 0xf3, 0x07, 0x45, 0x23, 0x68, 0x23, 0xf0, 0x01, 0x03, 0x23, 0x60, 0xff, 0xf7, 0xce, 0xfe, 0x23, 0x68, 0x02, 0x20, 0x23, 0xf4, 0x80, 0x33, 0x23, 0x60, 0xff, 0xf7, 0xc7, 0xfe, 0x23, 0x68, 0x0a, 0x2e, 0x99, 0x4a, 0x43, 0xf4, 0x80, 0x33, 0x23, 0x60, 0x23, 0x68, 0x43, 0xf0, 0x01, 0x03, 0x23, 0x60, 0x96, 0x4b, 0x11, 0x68, 0x02, 0xd0, 0x00, 0x2e, 0x40, 0xf0, 0xef, 0x80, 0x41, 0xf0, 0x02, 0x01, 0x11, 0x60, 0x1a, 0x68, 0x42, 0xf0, 0x80, 0x42, 0x1a, 0x60, 0x1a, 0x68, 0x22, 0xf0, 0xff, 0x02, 0x00, 0x2d, 0x40, 0xf0, 0xe9, 0x80, 0x42, 0xf0, 0x19, 0x02, 0x1a, 0x60, 0xff, 0xf7, 0x9d, 0xff, 0x8b, 0x48, 0x00, 0xf0, 0xfc, 0xfc, 0x03, 0x68, 0xdc, 0x07, 0x10, 0xd5, 0x23, 0xf0, 0x70, 0x02, 0x42, 0xf0, 0x40, 0x01, 0x01, 0x60, 0x42, 0xf0, 0xc0, 0x02, 0x23, 0xf0, 0x71, 0x03, 0x02, 0x60, 0x43, 0xf0, 0xc0, 0x03, 0x03, 0x60, 0x01, 0x68, 0x82, 0x48, 0x00, 0xf0, 0xb8, 0xfb, 0x81, 0x4a, 0x13, 0x68, 0x43, 0xf0, 0x27, 0x43, 0x43, 0xf0, 0x01, 0x03, 0x13, 0x60, 0x04, 0x20, 0x13, 0x60, 0xff, 0xf7, 0x95, 0xfe, 0x7d, 0x4b, 0x40, 0xf2, 0x01, 0x32, 0x7c, 0x4c, 0x01, 0x20, 0x1a, 0x60, 0xff, 0xf7, 0x7b, 0xfe, 0x23, 0x68, 0x23, 0xf0, 0x00, 0x63, 0x23, 0x60, 0x23, 0x68, 0x23, 0xf0, 0x03, 0x13, 0x23, 0xf4, 0x7f, 0x43, 0x43, 0xf4, 0x24, 0x53, 0x23, 0x60, 0x23, 0x68, 0x43, 0xf0, 0x00, 0x53, 0x23, 0x60, 0x23, 0x68, 0x43, 0xf0, 0x80, 0x43, 0x05, 0x20, 0x23, 0x60, 0xff, 0xf7, 0x64, 0xfe, 0x23, 0x68, 0xd8, 0x00, 0xfc, 0xd5, 0x14, 0x20, 0xff, 0xf7, 0x5e, 0xfe, 0x23, 0x68, 0x43, 0xf0, 0x00, 0x63, 0x23, 0x60, 0x23, 0x68, 0x23, 0xf0, 0x00, 0x53, 0x67, 0x4a, 0x23, 0x60, 0x13, 0x68, 0x03, 0xf0, 0xfc, 0x33, 0x43, 0xf0, 0x03, 0x23, 0x43, 0xf0, 0x01, 0x03, 0x64, 0x4c, 0x01, 0x20, 0x13, 0x60, 0xff, 0xf7, 0x49, 0xfe, 0x22, 0x68, 0x00, 0x2a, 0x80, 0xf2, 0x86, 0x80, 0x61, 0x48, 0x00, 0xf0, 0x6c, 0xfb, 0x60, 0x4b, 0x02, 0x22, 0x1a, 0x60, 0x1a, 0x68, 0x42, 0xf0, 0x40, 0x72, 0x01, 0x20, 0x1a, 0x60, 0xff, 0xf7, 0x38, 0xfe, 0x5c, 0x4b, 0x4f, 0xf4, 0x81, 0x72, 0x1a, 0x60, 0x1a, 0x68, 0x42, 0xf0, 0x40, 0x72, 0x5a, 0x4c, 0x01, 0x20, 0x1a, 0x60, 0xff, 0xf7, 0x2c, 0xfe, 0x23, 0x68, 0x43, 0xf4, 0x80, 0x33, 0x14, 0x20, 0x23, 0x60, 0xff, 0xf7, 0x25, 0xfe, 0x23, 0x68, 0x43, 0xf0, 0x01, 0x03, 0x53, 0x4a, 0x23, 0x60, 0x13, 0x68, 0x43, 0xf0, 0x80, 0x43, 0x01, 0x20, 0x13, 0x60, 0xff, 0xf7, 0x19, 0xfe, 0x50, 0x4b, 0x19, 0x68, 0xca, 0x03, 0x1b, 0xd5, 0x4f, 0x4c, 0x01, 0x22, 0x4f, 0x48, 0x00, 0xf0, 0x3a, 0xfb, 0x23, 0x68, 0x43, 0xf4, 0x27, 0x03, 0x43, 0xf0, 0x10, 0x03, 0x23, 0x60, 0x0a, 0x20, 0x23, 0x60, 0xff, 0xf7, 0x06, 0xfe, 0x22, 0x68, 0x49, 0x4b, 0x13, 0x43, 0x23, 0x60, 0x0a, 0x20, 0x23, 0x60, 0xff, 0xf7, 0xfe, 0xfd, 0x46, 0x4a, 0x13, 0x68, 0x43, 0xf0, 0x01, 0x03, 0x13, 0x60, 0x45, 0x4d, 0x6c, 0x46, 0x0f, 0xcd, 0x0f, 0xc4, 0x95, 0xe8, 0x03, 0x00, 0x05, 0xad, 0x84, 0xe8, 0x03, 0x00, 0xad, 0xf1, 0x04, 0x04, 0x54, 0xf8, 0x04, 0x3f, 0x1a, 0x68, 0x00, 0x2a, 0x18, 0xdb, 0x23, 0x68, 0x1a, 0x60, 0x1b, 0x68, 0x43, 0xf0, 0x40, 0x43, 0x22, 0x68, 0x13, 0x60, 0x13, 0x68, 0x43, 0xf0, 0x00, 0x53, 0x22, 0x68, 0x13, 0x60, 0x23, 0x68, 0x1b, 0x68, 0xdb, 0x00, 0xfb, 0xd5, 0x14, 0x20, 0xff, 0xf7, 0xd6, 0xfd, 0x23, 0x68, 0x1b, 0x68, 0x23, 0xf0, 0x00, 0x53, 0x22, 0x68, 0x13, 0x60, 0xac, 0x42, 0xdf, 0xd1, 0x30, 0x48, 0x06, 0xb0, 0xbd, 0xe8, 0x70, 0x40, 0x00, 0xf0, 0xf2, 0xba, 0x21, 0xf0, 0x03, 0x01, 0x11, 0x60, 0x1a, 0x68, 0x22, 0xf0, 0x80, 0x42, 0x0f, 0xe7, 0x2a, 0x43, 0x16, 0xe7, 0x22, 0x68, 0x22, 0xf0, 0x00, 0x62, 0x22, 0x60, 0x21, 0x68, 0x27, 0x4a, 0x0a, 0x40, 0x42, 0xf4, 0x05, 0x12, 0x42, 0xf4, 0x0c, 0x52, 0x22, 0x60, 0x22, 0x68, 0x42, 0xf0, 0x00, 0x52, 0x22, 0x60, 0x22, 0x68, 0x42, 0xf0, 0x80, 0x42, 0x22, 0x60, 0x22, 0x68, 0x42, 0xf0, 0x00, 0x42, 0x22, 0x60, 0x23, 0x68, 0xd9, 0x00, 0xfc, 0xd5, 0x14, 0x20, 0xff, 0xf7, 0xa1, 0xfd, 0x23, 0x68, 0x43, 0xf0, 0x00, 0x63, 0x23, 0x60, 0x23, 0x68, 0x23, 0xf0, 0x00, 0x53, 0x23, 0x60, 0x55, 0xe7, 0x09, 0xd5, 0x02, 0x00, 0x00, 0x62, 0x00, 0x03, 0x5c, 0x1a, 0x00, 0x02, 0x1c, 0x03, 0x03, 0x02, 0x48, 0x03, 0x03, 0x02, 0xf4, 0x01, 0x09, 0x07, 0x18, 0xd5, 0x02, 0x00, 0x44, 0x02, 0x01, 0x07, 0x00, 0x15, 0x00, 0x02, 0x00, 0x10, 0x00, 0x02, 0x20, 0x10, 0x00, 0x02, 0x35, 0xd5, 0x02, 0x00, 0x10, 0x15, 0x00, 0x02, 0x20, 0x15, 0x00, 0x02, 0x0c, 0x17, 0x00, 0x02, 0x40, 0x15, 0x00, 0x02, 0xd4, 0x05, 0x00, 0x07, 0x00, 0x00, 0x09, 0x07, 0x4f, 0xd5, 0x02, 0x00, 0x01, 0x00, 0xaa, 0x16, 0x60, 0x00, 0x09, 0x07, 0x40, 0xd1, 0x02, 0x00, 0x8a, 0xd5, 0x02, 0x00, 0xfd, 0x00, 0x88, 0xff, 0x06, 0x4b, 0x1a, 0x68, 0x06, 0x49, 0x0a, 0x40, 0x1a, 0x60, 0x06, 0x4a, 0x13, 0x68, 0x0b, 0x40, 0x13, 0x60, 0x05, 0x4b, 0x40, 0xf2, 0x01, 0x32, 0x1a, 0x60, 0x70, 0x47, 0x10, 0x15, 0x00, 0x02, 0xfc, 0xfc, 0xff, 0xfc, 0x20, 0x15, 0x00, 0x02, 0x00, 0x15, 0x00, 0x02, 0x38, 0xb5, 0x08, 0x4d, 0x2c, 0x68, 0x24, 0xf4, 0x80, 0x34, 0x02, 0x20, 0x2c, 0x60, 0xff, 0xf7, 0x49, 0xfd, 0x44, 0xf4, 0x80, 0x34, 0x2c, 0x60, 0x2b, 0x68, 0x43, 0xf0, 0x01, 0x03, 0x00, 0x20, 0x2b, 0x60, 0x38, 0xbd, 0xec, 0x19, 0x00, 0x02, 0x03, 0x4a, 0x13, 0x68, 0x23, 0xf0, 0x01, 0x03, 0x00, 0x20, 0x13, 0x60, 0x70, 0x47, 0x00, 0xbf, 0xec, 0x19, 0x00, 0x02, 0x0a, 0x4a, 0x10, 0xb5, 0x14, 0x68, 0x01, 0x23, 0x00, 0xf1, 0x10, 0x01, 0x03, 0xfa, 0x01, 0xf1, 0x24, 0xea, 0x01, 0x04, 0x14, 0x60, 0x21, 0x43, 0x11, 0x60, 0x11, 0x68, 0x03, 0xfa, 0x00, 0xf0, 0x21, 0xea, 0x00, 0x01, 0x11, 0x60, 0x08, 0x43, 0x10, 0x60, 0x10, 0xbd, 0x0c, 0x19, 0x00, 0x02, 0x42, 0x1e, 0x11, 0xf8, 0x01, 0x3b, 0x02, 0xf8, 0x01, 0x3f, 0x00, 0x2b, 0xf9, 0xd1, 0x70, 0x47, 0x10, 0xb5, 0x0a, 0x44, 0x44, 0x1e, 0x91, 0x42, 0x05, 0xd0, 0x11, 0xf8, 0x01, 0x3b, 0x04, 0xf8, 0x01, 0x3f, 0x00, 0x2b, 0xf7, 0xd1, 0x10, 0xbd, 0x03, 0x46, 0x10, 0xb5, 0x1a, 0x78, 0x5c, 0x1c, 0x3a, 0xb9, 0x01, 0x3b, 0x11, 0xf8, 0x01, 0x2b, 0x03, 0xf8, 0x01, 0x2f, 0x00, 0x2a, 0xf9, 0xd1, 0x10, 0xbd, 0x23, 0x46, 0xf2, 0xe7, 0x30, 0xb5, 0x72, 0xb1, 0x03, 0x46, 0x5d, 0x1c, 0x1c, 0x78, 0x5c, 0xb9, 0x1a, 0x44, 0x11, 0xf8, 0x01, 0x4b, 0x1d, 0x46, 0x03, 0xf8, 0x01, 0x4b, 0x1c, 0xb1, 0x93, 0x42, 0xf7, 0xd1, 0x00, 0x23, 0x6b, 0x70, 0x30, 0xbd, 0x2b, 0x46, 0xee, 0xe7, 0x42, 0x1e, 0x12, 0xf8, 0x01, 0x3f, 0x11, 0xf8, 0x01, 0x0b, 0x18, 0x1a, 0x40, 0xb2, 0x08, 0xb9, 0x00, 0x2b, 0xf6, 0xd1, 0x70, 0x47, 0x43, 0x1e, 0x0a, 0x44, 0x10, 0xb5, 0x91, 0x42, 0x01, 0xd1, 0x00, 0x20, 0x08, 0xe0, 0x13, 0xf8, 0x01, 0x4f, 0x11, 0xf8, 0x01, 0x0b, 0x20, 0x1a, 0x40, 0xb2, 0x08, 0xb9, 0x00, 0x2c, 0xf2, 0xd1, 0x10, 0xbd, 0xc9, 0xb2, 0x02, 0x78, 0x03, 0x46, 0x01, 0x30, 0x8a, 0x42, 0x01, 0xd1, 0x18, 0x46, 0x70, 0x47, 0x00, 0x2a, 0xf6, 0xd1, 0x13, 0x46, 0xf9, 0xe7, 0x03, 0x46, 0x1a, 0x78, 0x59, 0x1c, 0x0a, 0xb9, 0x18, 0x1a, 0x70, 0x47, 0x0b, 0x46, 0xf8, 0xe7, 0x38, 0xb5, 0x0c, 0x46, 0x05, 0x46, 0xe4, 0xb2, 0xff, 0xf7, 0xf2, 0xff, 0x2b, 0x18, 0x18, 0x46, 0x01, 0x3b, 0x02, 0x78, 0xa2, 0x42, 0x02, 0xd0, 0x9d, 0x42, 0xf8, 0xd9, 0x00, 0x20, 0x38, 0xbd, 0x03, 0x46, 0x01, 0x44, 0x10, 0xb5, 0x8b, 0x42, 0x02, 0xd0, 0x1a, 0x78, 0x5c, 0x1c, 0x0a, 0xb9, 0x18, 0x1a, 0x10, 0xbd, 0x23, 0x46, 0xf6, 0xe7, 0x03, 0x46, 0x70, 0xb5, 0x1e, 0x1a, 0x13, 0xf8, 0x01, 0x4b, 0x3c, 0xb1, 0x4a, 0x1e, 0x01, 0xe0, 0xa5, 0x42, 0xf7, 0xd0, 0x12, 0xf8, 0x01, 0x5f, 0x00, 0x2d, 0xf9, 0xd1, 0x30, 0x46, 0x70, 0xbd, 0x00, 0x00, 0x01, 0x4b, 0x18, 0x47, 0x70, 0x47, 0x00, 0xbf, 0xdc, 0x84, 0x02, 0x00, 0x01, 0x4b, 0x18, 0x47, 0x70, 0x47, 0x00, 0xbf, 0x94, 0x85, 0x02, 0x00, 0x30, 0xb5, 0x00, 0x24, 0x94, 0x42, 0x01, 0xd1, 0x00, 0x23, 0x06, 0xe0, 0x03, 0x5d, 0x0d, 0x5d, 0x01, 0x34, 0x5b, 0x1b, 0x5b, 0xb2, 0x00, 0x2b, 0xf4, 0xd0, 0x18, 0x46, 0x30, 0xbd, 0x03, 0x46, 0x02, 0x44, 0x10, 0xb5, 0x93, 0x42, 0x18, 0x46, 0x03, 0xd0, 0x04, 0x78, 0x01, 0x33, 0x8c, 0x42, 0xf8, 0xd1, 0x10, 0xbd, 0x2d, 0xe9, 0xf0, 0x41, 0x04, 0x46, 0x08, 0x46, 0x0f, 0x46, 0xff, 0xf7, 0x9e, 0xff, 0x06, 0x46, 0x98, 0xb1, 0x20, 0x46, 0xff, 0xf7, 0x99, 0xff, 0x05, 0x46, 0x04, 0xeb, 0x00, 0x08, 0xb5, 0x42, 0xa8, 0xeb, 0x05, 0x04, 0x01, 0xda, 0x00, 0x24, 0x07, 0xe0, 0x32, 0x46, 0x39, 0x46, 0x20, 0x46, 0x01, 0x3d, 0xff, 0xf7, 0xcb, 0xff, 0x00, 0x28, 0xf1, 0xd1, 0x20, 0x46, 0xbd, 0xe8, 0xf0, 0x81, 0xc9, 0xb2, 0x02, 0x44, 0x10, 0xb5, 0x90, 0x42, 0x01, 0xd1, 0x00, 0x20, 0x10, 0xbd, 0x03, 0x46, 0x13, 0xf8, 0x01, 0x4b, 0x8c, 0x42, 0xf9, 0xd0, 0x18, 0x46, 0xf4, 0xe7, 0x83, 0x68, 0x5a, 0x1c, 0x82, 0x60, 0x19, 0x70, 0x70, 0x47, 0x08, 0x46, 0x00, 0xf0, 0xfe, 0xba, 0x30, 0xb5, 0x00, 0x25, 0x0c, 0x68, 0xeb, 0xb2, 0x01, 0x35, 0x94, 0x42, 0x0e, 0xd2, 0x02, 0x79, 0x02, 0xb9, 0x53, 0xb1, 0x02, 0x68, 0x0a, 0x2b, 0x34, 0xbf, 0x30, 0x21, 0x57, 0x21, 0x0b, 0x44, 0x54, 0x1c, 0x04, 0x60, 0x13, 0x70, 0x01, 0x23, 0x03, 0x71, 0x30, 0xbd, 0xa4, 0x1a, 0x0c, 0x60, 0xe8, 0xe7, 0x00, 0x00, 0x2d, 0xe9, 0xf0, 0x4f, 0x85, 0xb0, 0x04, 0x46, 0x0d, 0x46, 0x91, 0x46, 0x01, 0xae, 0x2f, 0x78, 0x00, 0x2f, 0x33, 0xd0, 0x25, 0x2f, 0x0d, 0xd0, 0x0a, 0x2f, 0x03, 0xd1, 0xe3, 0x68, 0x0d, 0x21, 0x20, 0x46, 0x98, 0x47, 0x01, 0x35, 0xc8, 0x46, 0xe3, 0x68, 0x39, 0x46, 0x20, 0x46, 0x98, 0x47, 0xc1, 0x46, 0xec, 0xe7, 0x6b, 0x78, 0x00, 0x27, 0x2d, 0x2b, 0x0a, 0xbf, 0xab, 0x78, 0x02, 0x35, 0x03, 0x35, 0x30, 0x2b, 0x03, 0xbf, 0x2b, 0x78, 0x4f, 0xf0, 0x01, 0x0b, 0x01, 0x35, 0x4f, 0xf0, 0x00, 0x0b, 0xa3, 0xf1, 0x30, 0x02, 0x09, 0x2a, 0x1e, 0xd9, 0x6c, 0x2b, 0x4f, 0xf0, 0x00, 0x01, 0x04, 0xbf, 0x2b, 0x78, 0x01, 0x35, 0x26, 0x60, 0x21, 0x71, 0x64, 0x2b, 0x2f, 0xd0, 0x15, 0xd8, 0x25, 0x2b, 0x00, 0xf0, 0x9a, 0x80, 0x63, 0x2b, 0x66, 0xd0, 0xa3, 0xb9, 0x00, 0x20, 0x05, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x01, 0xfb, 0x07, 0x37, 0x15, 0xf8, 0x01, 0x3b, 0x30, 0x3f, 0xa3, 0xf1, 0x30, 0x02, 0x09, 0x2a, 0xf6, 0xd9, 0xe0, 0xe7, 0x0a, 0x21, 0xf8, 0xe7, 0x73, 0x2b, 0x5d, 0xd0, 0x03, 0xd8, 0x70, 0x2b, 0x77, 0xd0, 0xc8, 0x46, 0x3d, 0xe0, 0x75, 0x2b, 0x0f, 0xd0, 0x78, 0x2b, 0xf9, 0xd1, 0xd9, 0xf8, 0x00, 0x30, 0x09, 0xf1, 0x04, 0x08, 0x00, 0x93, 0x00, 0x9b, 0xa3, 0xbb, 0x0d, 0xf1, 0x05, 0x03, 0x23, 0x60, 0x30, 0x23, 0x8d, 0xf8, 0x04, 0x30, 0x17, 0xe0, 0xd9, 0xf8, 0x00, 0x20, 0x64, 0x2b, 0x09, 0xf1, 0x04, 0x08, 0x00, 0x92, 0x09, 0xd1, 0x00, 0x2a, 0x07, 0xda, 0x0d, 0xf1, 0x05, 0x03, 0x52, 0x42, 0x23, 0x60, 0x2d, 0x23, 0x00, 0x92, 0x8d, 0xf8, 0x04, 0x30, 0x00, 0x9b, 0x3b, 0xb9, 0x23, 0x68, 0x5a, 0x1c, 0x22, 0x60, 0x30, 0x22, 0x1a, 0x70, 0x01, 0x23, 0x23, 0x71, 0x10, 0xe0, 0xdf, 0xf8, 0xd8, 0x90, 0x4f, 0xf0, 0x0a, 0x0a, 0x4a, 0x46, 0x69, 0x46, 0x20, 0x46, 0xff, 0xf7, 0x5b, 0xff, 0x30, 0x4b, 0xba, 0xf1, 0x01, 0x0a, 0xa9, 0xfb, 0x03, 0x01, 0x4f, 0xea, 0xd1, 0x09, 0xf2, 0xd1, 0xb1, 0x46, 0x1c, 0xe0, 0x4f, 0xf0, 0x08, 0x09, 0x4f, 0xf0, 0x80, 0x5a, 0x52, 0x46, 0x69, 0x46, 0x20, 0x46, 0x4f, 0xea, 0x1a, 0x1a, 0xff, 0xf7, 0x46, 0xff, 0xb9, 0xf1, 0x01, 0x09, 0xf5, 0xd1, 0xee, 0xe7, 0x99, 0xf8, 0x00, 0x30, 0x0d, 0xf1, 0x05, 0x02, 0x09, 0xf1, 0x04, 0x08, 0x22, 0x60, 0x8d, 0xf8, 0x04, 0x30, 0xe4, 0xe7, 0x09, 0xf1, 0x04, 0x08, 0xd9, 0xf8, 0x00, 0x90, 0x23, 0x68, 0x00, 0x22, 0x1a, 0x70, 0xc4, 0xf8, 0x00, 0x90, 0x23, 0x68, 0x5a, 0x1c, 0x22, 0x60, 0x1b, 0x78, 0x03, 0xbb, 0xbb, 0xf1, 0x00, 0x0f, 0x14, 0xbf, 0x4f, 0xf0, 0x30, 0x0a, 0x4f, 0xf0, 0x20, 0x0a, 0x17, 0xf1, 0xff, 0x37, 0x18, 0xd3, 0xe3, 0x68, 0x51, 0x46, 0x20, 0x46, 0x98, 0x47, 0xf7, 0xe7, 0x11, 0x4a, 0x09, 0xf1, 0x04, 0x08, 0x2b, 0x78, 0x69, 0x1c, 0xd3, 0x5c, 0x5b, 0x07, 0xbf, 0xd0, 0x0d, 0x46, 0xf8, 0xe7, 0x0d, 0xf1, 0x05, 0x02, 0x8d, 0xf8, 0x04, 0x30, 0x22, 0x60, 0x77, 0xe7, 0x01, 0x3f, 0xd9, 0xe7, 0x00, 0x2f, 0xfb, 0xd1, 0xb9, 0xf1, 0x00, 0x0f, 0x3f, 0xf4, 0x35, 0xaf, 0x19, 0xf8, 0x01, 0x1b, 0x00, 0x29, 0x3f, 0xf4, 0x30, 0xaf, 0xe3, 0x68, 0x20, 0x46, 0x98, 0x47, 0xf6, 0xe7, 0xcd, 0xcc, 0xcc, 0xcc, 0x58, 0xd1, 0x02, 0x00, 0x00, 0xca, 0x9a, 0x3b, 0x1f, 0xb5, 0x0a, 0x46, 0x04, 0x4b, 0x01, 0x46, 0x68, 0x46, 0x03, 0x93, 0xff, 0xf7, 0x06, 0xff, 0x05, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x00, 0xbf, 0xa7, 0x9b, 0x02, 0x00, 0x08, 0x28, 0x09, 0xd8, 0x06, 0x4b, 0x18, 0x70, 0x06, 0x4b, 0x19, 0xb1, 0x01, 0x22, 0x1a, 0x70, 0x00, 0x20, 0x70, 0x47, 0x19, 0x70, 0xfb, 0xe7, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x00, 0xbf, 0xc0, 0xdb, 0x02, 0x00, 0x04, 0xde, 0x02, 0x00, 0x01, 0x4b, 0x18, 0x78, 0x70, 0x47, 0x00, 0xbf, 0xc0, 0xdb, 0x02, 0x00, 0x03, 0x4b, 0x18, 0x78, 0x03, 0x4b, 0x1b, 0x78, 0x0b, 0xb1, 0x40, 0xf0, 0x80, 0x00, 0x70, 0x47, 0xc0, 0xdb, 0x02, 0x00, 0x04, 0xde, 0x02, 0x00, 0x0e, 0xb4, 0x3f, 0xb5, 0x07, 0xaa, 0x52, 0xf8, 0x04, 0x1b, 0x07, 0x4b, 0x04, 0x90, 0x02, 0xa8, 0x01, 0x92, 0x05, 0x93, 0xff, 0xf7, 0xce, 0xfe, 0x04, 0x9b, 0x00, 0x22, 0x1a, 0x70, 0x06, 0xb0, 0x5d, 0xf8, 0x04, 0xeb, 0x03, 0xb0, 0x70, 0x47, 0x9d, 0x9b, 0x02, 0x00, 0x0f, 0xb4, 0x30, 0xb5, 0x89, 0xb0, 0x01, 0xad, 0x00, 0x24, 0xff, 0xf7, 0xbb, 0xfa, 0x0c, 0x49, 0x02, 0x46, 0x28, 0x46, 0xff, 0xf7, 0xde, 0xff, 0x28, 0x5d, 0x20, 0xb1, 0x01, 0x34, 0x00, 0xf0, 0x97, 0xf9, 0x0c, 0x2c, 0xf8, 0xd1, 0x07, 0x4b, 0x0d, 0xaa, 0x0c, 0x99, 0x04, 0xa8, 0x00, 0x92, 0x07, 0x93, 0xff, 0xf7, 0xa9, 0xfe, 0x09, 0xb0, 0xbd, 0xe8, 0x30, 0x40, 0x04, 0xb0, 0x70, 0x47, 0x97, 0xd5, 0x02, 0x00, 0xa7, 0x9b, 0x02, 0x00, 0x01, 0x46, 0x01, 0x48, 0xff, 0xf7, 0xd8, 0xbf, 0x9c, 0xd5, 0x02, 0x00, 0x0c, 0xb4, 0x7f, 0xb5, 0x08, 0xaa, 0x52, 0xf8, 0x04, 0x1b, 0x07, 0x4b, 0x04, 0x90, 0x02, 0xa8, 0x01, 0x92, 0x05, 0x93, 0xff, 0xf7, 0x8e, 0xfe, 0x04, 0x9b, 0x00, 0x22, 0x1a, 0x70, 0x07, 0xb0, 0x5d, 0xf8, 0x04, 0xeb, 0x02, 0xb0, 0x70, 0x47, 0x9d, 0x9b, 0x02, 0x00, 0x08, 0xb5, 0xff, 0xf7, 0x7f, 0xfa, 0x01, 0x46, 0xbd, 0xe8, 0x08, 0x40, 0x01, 0x48, 0xff, 0xf7, 0xb7, 0xbf, 0x00, 0xbf, 0x9f, 0xd5, 0x02, 0x00, 0x89, 0x08, 0x16, 0x4b, 0xf0, 0xb5, 0x00, 0xf1, 0x10, 0x05, 0x0e, 0x46, 0x00, 0x24, 0x42, 0x69, 0x43, 0x61, 0x55, 0xe9, 0x04, 0x37, 0x04, 0x3e, 0x03, 0x2e, 0x05, 0xf1, 0x10, 0x05, 0x3b, 0x44, 0x55, 0xf8, 0x18, 0x7c, 0x3b, 0x44, 0x55, 0xf8, 0x14, 0x7c, 0x3b, 0x44, 0x1c, 0x44, 0xf0, 0xd8, 0x0b, 0x1f, 0x01, 0xf0, 0x03, 0x01, 0x9b, 0x08, 0x01, 0x33, 0x00, 0xeb, 0x03, 0x13, 0x03, 0xeb, 0x81, 0x01, 0x8b, 0x42, 0x05, 0xd1, 0x42, 0x61, 0xa0, 0x1a, 0x18, 0xbf, 0x4f, 0xf0, 0xff, 0x30, 0xf0, 0xbd, 0x53, 0xf8, 0x04, 0x5b, 0x2c, 0x44, 0xf3, 0xe7, 0x00, 0xbf, 0x39, 0x6c, 0x0a, 0x5f, 0x00, 0x23, 0x11, 0xb9, 0x11, 0x60, 0x08, 0x46, 0x70, 0x47, 0x01, 0x29, 0x05, 0xd1, 0x10, 0x60, 0x18, 0x46, 0x70, 0x47, 0x13, 0x68, 0x40, 0x1a, 0x01, 0x33, 0x88, 0x42, 0x13, 0x60, 0xf9, 0xd2, 0x70, 0x47, 0x00, 0x00, 0x00, 0x48, 0x70, 0x47, 0x00, 0x00, 0x10, 0x40, 0x10, 0xb5, 0x00, 0xf0, 0x27, 0xf9, 0x40, 0xb1, 0x00, 0xf0, 0x1a, 0xf9, 0x04, 0x46, 0x01, 0x46, 0x03, 0x48, 0xff, 0xf7, 0x63, 0xff, 0x20, 0x46, 0x10, 0xbd, 0x04, 0x46, 0xfb, 0xe7, 0x00, 0xbf, 0xad, 0xd5, 0x02, 0x00, 0x02, 0x4a, 0x13, 0x78, 0x18, 0x43, 0x10, 0x70, 0x70, 0x47, 0x00, 0xbf, 0x05, 0xde, 0x02, 0x00, 0x01, 0x4b, 0x1b, 0x78, 0x18, 0x40, 0x70, 0x47, 0x05, 0xde, 0x02, 0x00, 0x00, 0x20, 0x70, 0x47, 0x70, 0x47, 0x00, 0x00, 0x05, 0x4b, 0x00, 0x22, 0x01, 0x44, 0xc3, 0xe9, 0x04, 0x02, 0x10, 0x46, 0x5a, 0x60, 0x19, 0x60, 0xdb, 0x61, 0xda, 0x60, 0x70, 0x47, 0x00, 0xbf, 0x08, 0xde, 0x02, 0x00, 0xf0, 0xb5, 0x48, 0xb1, 0x00, 0xf1, 0x0f, 0x04, 0x0f, 0x4a, 0x24, 0xf0, 0x0f, 0x04, 0x04, 0xf1, 0x20, 0x0c, 0xd1, 0x68, 0x09, 0xb9, 0x08, 0x46, 0xf0, 0xbd, 0x16, 0x68, 0x55, 0x68, 0x0f, 0x68, 0x0c, 0xeb, 0x06, 0x03, 0x2b, 0x44, 0x9f, 0x42, 0x03, 0xd3, 0x73, 0x19, 0x03, 0xd1, 0x18, 0x46, 0xf2, 0xe7, 0x0a, 0x46, 0xed, 0xe7, 0x03, 0xf1, 0x10, 0x07, 0x77, 0x51, 0xc3, 0xe9, 0x01, 0x40, 0x38, 0x46, 0xd9, 0x60, 0xd3, 0x60, 0xe7, 0xe7, 0x18, 0xde, 0x02, 0x00, 0x70, 0xb5, 0x05, 0x46, 0x20, 0xb9, 0x08, 0x46, 0xbd, 0xe8, 0x70, 0x40, 0xff, 0xf7, 0xd2, 0xbf, 0x81, 0xb1, 0x15, 0x4e, 0xf4, 0x68, 0x0c, 0xb9, 0x25, 0x46, 0x0b, 0xe0, 0x23, 0x68, 0x9d, 0x42, 0x0a, 0xd1, 0xa3, 0x68, 0x19, 0x44, 0x63, 0x68, 0x01, 0xf1, 0x0f, 0x00, 0x20, 0xf0, 0x0f, 0x00, 0x83, 0x42, 0x03, 0xd1, 0x28, 0x46, 0x70, 0xbd, 0x26, 0x46, 0xeb, 0xe7, 0xe2, 0x68, 0x05, 0xf1, 0x20, 0x03, 0x03, 0x44, 0x12, 0x68, 0x9a, 0x42, 0x02, 0xd3, 0xc4, 0xe9, 0x01, 0x01, 0xf1, 0xe7, 0xff, 0xf7, 0xb0, 0xff, 0x05, 0x46, 0x00, 0x28, 0xec, 0xd0, 0xd4, 0xe9, 0x00, 0x12, 0xff, 0xf7, 0x39, 0xfd, 0xe3, 0x68, 0xf3, 0x60, 0xe5, 0xe7, 0x18, 0xde, 0x02, 0x00, 0x10, 0xb1, 0x06, 0x4a, 0xd3, 0x68, 0x03, 0xb9, 0x70, 0x47, 0x19, 0x68, 0x88, 0x42, 0x02, 0xd1, 0xdb, 0x68, 0xd3, 0x60, 0x70, 0x47, 0x1a, 0x46, 0xf4, 0xe7, 0x00, 0xbf, 0x18, 0xde, 0x02, 0x00, 0x70, 0x47, 0x70, 0x47, 0x05, 0x4b, 0x00, 0xf0, 0x0f, 0x02, 0x00, 0x09, 0x9a, 0x5c, 0x1b, 0x5c, 0x4a, 0x70, 0x0b, 0x70, 0x00, 0x23, 0x8b, 0x70, 0x70, 0x47, 0x00, 0xbf, 0x58, 0xd2, 0x02, 0x00, 0x2d, 0xe9, 0xf0, 0x47, 0x8e, 0xb0, 0xdf, 0xf8, 0x60, 0x90, 0x01, 0xad, 0x00, 0x24, 0x2f, 0x46, 0xdf, 0xf8, 0x50, 0xa0, 0x80, 0x46, 0x0e, 0x46, 0x01, 0x46, 0x11, 0x48, 0xff, 0xf7, 0xb0, 0xfe, 0xb4, 0x42, 0x0a, 0xdb, 0x26, 0xea, 0xe6, 0x76, 0x33, 0x07, 0x03, 0xd0, 0x39, 0x46, 0x0d, 0x48, 0xff, 0xf7, 0xa6, 0xfe, 0x0e, 0xb0, 0xbd, 0xe8, 0xf0, 0x87, 0x18, 0xf8, 0x04, 0x30, 0x28, 0x46, 0x4a, 0x46, 0x05, 0x21, 0xff, 0xf7, 0xc6, 0xfe, 0x04, 0xf0, 0x0f, 0x03, 0x03, 0x35, 0x0f, 0x2b, 0x04, 0xd1, 0x3d, 0x46, 0x39, 0x46, 0x50, 0x46, 0xff, 0xf7, 0x92, 0xfe, 0x01, 0x34, 0xdf, 0xe7, 0xbd, 0xd5, 0x02, 0x00, 0xd4, 0xd9, 0x02, 0x00, 0xc7, 0xd5, 0x02, 0x00, 0x07, 0xb5, 0x00, 0x90, 0x01, 0x48, 0xff, 0xf7, 0x85, 0xfe, 0xfe, 0xe7, 0xcd, 0xd5, 0x02, 0x00, 0xf8, 0xb5, 0x04, 0x46, 0x4f, 0xf0, 0x14, 0x70, 0x0e, 0x46, 0x17, 0x46, 0xff, 0xf7, 0xaa, 0xff, 0x05, 0x46, 0x20, 0x46, 0xff, 0xf7, 0x18, 0xfc, 0x01, 0x22, 0x39, 0x46, 0x30, 0x46, 0xa4, 0x02, 0x00, 0xf0, 0xbe, 0xf8, 0x0a, 0x4a, 0x2b, 0x19, 0x03, 0x21, 0x19, 0x61, 0x13, 0x60, 0xda, 0x68, 0x42, 0xf0, 0x80, 0x02, 0xda, 0x60, 0x00, 0x22, 0x5a, 0x60, 0x0d, 0x22, 0x2a, 0x51, 0xda, 0x68, 0x22, 0xf0, 0x80, 0x02, 0xda, 0x60, 0x07, 0x22, 0xd9, 0x60, 0x9a, 0x60, 0xf8, 0xbd, 0x00, 0xbf, 0x28, 0xde, 0x02, 0x00, 0x03, 0x4b, 0x1b, 0x68, 0x5a, 0x69, 0x52, 0x06, 0xfc, 0xd5, 0x18, 0x60, 0x70, 0x47, 0x00, 0xbf, 0x28, 0xde, 0x02, 0x00, 0x03, 0x4b, 0x1b, 0x68, 0x5a, 0x69, 0xd2, 0x07, 0xfc, 0xd5, 0x18, 0x68, 0xc0, 0xb2, 0x70, 0x47, 0x28, 0xde, 0x02, 0x00, 0x02, 0x4b, 0x1b, 0x68, 0x58, 0x69, 0x00, 0xf0, 0x01, 0x00, 0x70, 0x47, 0x28, 0xde, 0x02, 0x00, 0x8b, 0x00, 0xc1, 0xf3, 0xc1, 0x01, 0x30, 0xb5, 0x03, 0xf0, 0x1c, 0x03, 0x50, 0xf8, 0x21, 0x40, 0x0f, 0x25, 0x9a, 0x40, 0x9d, 0x40, 0x24, 0xea, 0x05, 0x04, 0x22, 0x43, 0x40, 0xf8, 0x21, 0x20, 0x30, 0xbd, 0x00, 0x00, 0x43, 0x09, 0x10, 0xb4, 0x24, 0x24, 0x5c, 0x43, 0x0a, 0x2b, 0x88, 0xbf, 0x05, 0x4b, 0x0a, 0x46, 0x01, 0x46, 0x94, 0xbf, 0x04, 0xf1, 0x00, 0x73, 0x1b, 0x19, 0x18, 0x46, 0x10, 0xbc, 0xff, 0xf7, 0xdd, 0xbf, 0x00, 0xbf, 0x74, 0x1e, 0x02, 0x07, 0xc1, 0xf3, 0xc1, 0x03, 0x50, 0xf8, 0x23, 0x00, 0x89, 0x00, 0x01, 0xf0, 0x1c, 0x01, 0xc8, 0x40, 0x00, 0xf0, 0x0f, 0x00, 0x70, 0x47, 0x00, 0x00, 0x43, 0x09, 0x24, 0x22, 0x01, 0x46, 0x0a, 0x2b, 0x02, 0xfb, 0x03, 0xf2, 0x8a, 0xbf, 0x03, 0x48, 0x02, 0xf1, 0x00, 0x70, 0x80, 0x18, 0xff, 0xf7, 0xe7, 0xbf, 0x00, 0xbf, 0x74, 0x1e, 0x02, 0x07, 0x43, 0x09, 0x24, 0x22, 0x30, 0xb5, 0x5a, 0x43, 0x0a, 0x2b, 0xc0, 0xf3, 0x00, 0x15, 0x4f, 0xea, 0x40, 0x00, 0x88, 0xbf, 0x0b, 0x4b, 0x00, 0xf0, 0x1e, 0x00, 0x4f, 0xf0, 0x03, 0x04, 0x98, 0xbf, 0x02, 0xf1, 0x00, 0x73, 0x04, 0xfa, 0x00, 0xf4, 0x88, 0xbf, 0x9b, 0x18, 0x01, 0xfa, 0x00, 0xf0, 0x14, 0x33, 0x53, 0xf8, 0x25, 0x20, 0x22, 0xea, 0x04, 0x02, 0x10, 0x43, 0x43, 0xf8, 0x25, 0x00, 0x00, 0x20, 0x30, 0xbd, 0x74, 0x1e, 0x02, 0x07, 0x43, 0x09, 0x24, 0x22, 0x30, 0xb5, 0x5a, 0x43, 0x0a, 0x2b, 0xc0, 0xf3, 0x00, 0x15, 0x4f, 0xea, 0x40, 0x00, 0x88, 0xbf, 0x0b, 0x4b, 0x00, 0xf0, 0x1e, 0x00, 0x4f, 0xf0, 0x03, 0x04, 0x98, 0xbf, 0x02, 0xf1, 0x00, 0x73, 0x04, 0xfa, 0x00, 0xf4, 0x88, 0xbf, 0x9b, 0x18, 0x01, 0xfa, 0x00, 0xf0, 0x1c, 0x33, 0x53, 0xf8, 0x25, 0x20, 0x22, 0xea, 0x04, 0x02, 0x10, 0x43, 0x43, 0xf8, 0x25, 0x00, 0x00, 0x20, 0x30, 0xbd, 0x74, 0x1e, 0x02, 0x07, 0x4f, 0xf0, 0x00, 0x0c, 0x2d, 0xe9, 0xf0, 0x4f, 0x8b, 0xb0, 0xcd, 0xe9, 0x08, 0x12, 0x08, 0x9b, 0x9c, 0x45, 0x04, 0xd1, 0x4f, 0xf0, 0xff, 0x30, 0x0b, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x10, 0xf8, 0x3c, 0x70, 0x00, 0xeb, 0xcc, 0x08, 0x0c, 0xf1, 0x01, 0x0c, 0x00, 0x2f, 0xef, 0xd0, 0x98, 0xf8, 0x01, 0xe0, 0x0b, 0x2f, 0x4f, 0xea, 0xde, 0x03, 0x4f, 0xea, 0x1e, 0x19, 0x06, 0x93, 0x07, 0xeb, 0x47, 0x03, 0x06, 0x9a, 0x4f, 0xea, 0x03, 0x13, 0x4f, 0xea, 0x82, 0x05, 0x03, 0xeb, 0x89, 0x02, 0x5b, 0xd8, 0x03, 0xf1, 0x00, 0x73, 0x02, 0xf1, 0x00, 0x72, 0xa3, 0xf1, 0x30, 0x01, 0x20, 0x3b, 0x0d, 0x44, 0xa2, 0xf1, 0x0c, 0x01, 0x1c, 0x3a, 0x02, 0x91, 0x03, 0x92, 0x04, 0x93, 0x2c, 0x68, 0x02, 0x9b, 0x19, 0x68, 0x03, 0x9b, 0xd3, 0xf8, 0x00, 0xa0, 0x04, 0x9b, 0x1b, 0x68, 0x0e, 0xf0, 0x07, 0x06, 0x0f, 0x22, 0xb6, 0x00, 0xb2, 0x40, 0x24, 0xea, 0x02, 0x04, 0x09, 0x9a, 0x2a, 0xb1, 0x98, 0xf8, 0x02, 0x20, 0x02, 0xf0, 0x0f, 0x02, 0xb2, 0x40, 0x14, 0x43, 0x0e, 0xf0, 0x0f, 0x06, 0x03, 0x22, 0x76, 0x00, 0xb2, 0x40, 0xd2, 0x43, 0x02, 0xea, 0x01, 0x0b, 0x98, 0xf8, 0x03, 0x10, 0x02, 0xea, 0x0a, 0x02, 0x01, 0xf0, 0x03, 0x01, 0xb1, 0x40, 0x41, 0xea, 0x0b, 0x01, 0x98, 0xf8, 0x04, 0xb0, 0x0b, 0xf0, 0x03, 0x0b, 0x0b, 0xfa, 0x06, 0xf6, 0x32, 0x43, 0x98, 0xf8, 0x02, 0x60, 0x01, 0x92, 0x01, 0x2e, 0x25, 0xd1, 0x06, 0xfa, 0x0e, 0xfa, 0x23, 0xea, 0x0a, 0x0a, 0x98, 0xf8, 0x05, 0x30, 0x03, 0xf0, 0x01, 0x03, 0x03, 0xfa, 0x0e, 0xf3, 0x43, 0xea, 0x0a, 0x03, 0x00, 0xeb, 0xcc, 0x00, 0xcd, 0xf8, 0x14, 0xc0, 0x05, 0x9a, 0x94, 0x46, 0x08, 0x9a, 0x94, 0x45, 0x12, 0xd3, 0x00, 0x2d, 0x40, 0xf0, 0xa2, 0x80, 0x00, 0x20, 0x86, 0xe7, 0x56, 0x49, 0x19, 0x44, 0x0d, 0x44, 0x55, 0x49, 0x51, 0x18, 0x02, 0x91, 0x55, 0x49, 0x0a, 0x44, 0x03, 0x92, 0x54, 0x4a, 0x13, 0x44, 0xa4, 0xe7, 0x00, 0x26, 0xe3, 0xe7, 0x90, 0xf8, 0x00, 0xc0, 0x90, 0xf8, 0x01, 0x80, 0xbc, 0xf1, 0x00, 0x0f, 0xe5, 0xd0, 0x4f, 0xea, 0x18, 0x12, 0x4f, 0xea, 0xd8, 0x0e, 0x91, 0x45, 0x07, 0x92, 0x01, 0xd1, 0x67, 0x45, 0x72, 0xd0, 0x2c, 0x60, 0x02, 0x9a, 0x11, 0x60, 0x03, 0x9a, 0x01, 0x99, 0x11, 0x60, 0x0e, 0xb1, 0x04, 0x9a, 0x13, 0x60, 0x07, 0x9c, 0x0c, 0xeb, 0x4c, 0x02, 0x12, 0x01, 0x02, 0xf1, 0x00, 0x73, 0x02, 0xeb, 0x84, 0x02, 0xa3, 0xf1, 0x30, 0x01, 0x02, 0xf1, 0x00, 0x72, 0x01, 0xeb, 0x8e, 0x05, 0xa2, 0xf1, 0x0c, 0x04, 0x02, 0x94, 0xa2, 0xf1, 0x1c, 0x04, 0x03, 0x94, 0xa3, 0xf1, 0x20, 0x04, 0x04, 0x94, 0x51, 0xf8, 0x2e, 0x40, 0x52, 0xf8, 0x0c, 0x1c, 0x52, 0xf8, 0x1c, 0x2c, 0x01, 0x92, 0x53, 0xf8, 0x20, 0x3c, 0x00, 0x26, 0x08, 0xf0, 0x07, 0x07, 0x0f, 0x22, 0xbf, 0x00, 0x90, 0xf8, 0x02, 0xb0, 0x02, 0xfa, 0x07, 0xf9, 0x09, 0x9a, 0x24, 0xea, 0x09, 0x04, 0x22, 0xb1, 0x0b, 0xf0, 0x0f, 0x09, 0x09, 0xfa, 0x07, 0xf7, 0x3c, 0x43, 0x08, 0xf0, 0x0f, 0x09, 0x90, 0xf8, 0x03, 0xa0, 0x4f, 0xea, 0x49, 0x09, 0x03, 0x22, 0xbb, 0xf1, 0x01, 0x0f, 0x02, 0xfa, 0x09, 0xf7, 0x0a, 0xea, 0x02, 0x0a, 0x0a, 0xfa, 0x09, 0xfa, 0x01, 0x9a, 0x6f, 0xea, 0x07, 0x07, 0x01, 0xea, 0x07, 0x01, 0x4a, 0xea, 0x01, 0x01, 0x90, 0xf8, 0x04, 0xa0, 0x07, 0xea, 0x02, 0x07, 0x0a, 0xf0, 0x03, 0x0a, 0x0a, 0xfa, 0x09, 0xf2, 0x42, 0xea, 0x07, 0x02, 0x01, 0x92, 0x0b, 0xd1, 0x0b, 0xfa, 0x08, 0xf6, 0x23, 0xea, 0x06, 0x03, 0x46, 0x79, 0x06, 0xf0, 0x01, 0x06, 0x06, 0xfa, 0x08, 0xf8, 0x5e, 0x46, 0x48, 0xea, 0x03, 0x03, 0x05, 0x9f, 0x08, 0x30, 0xdd, 0xf8, 0x1c, 0x90, 0xcd, 0xf8, 0x18, 0xe0, 0x01, 0x37, 0x05, 0x97, 0x67, 0x46, 0x64, 0xe7, 0x06, 0x9a, 0x72, 0x45, 0xb3, 0xd0, 0x30, 0x22, 0x2c, 0x60, 0x02, 0xfb, 0x0c, 0xf4, 0x04, 0xf1, 0x00, 0x74, 0x30, 0x3c, 0x04, 0xeb, 0x8e, 0x05, 0x54, 0xf8, 0x2e, 0x40, 0xa7, 0xe7, 0x2c, 0x60, 0x02, 0x9a, 0x11, 0x60, 0x03, 0x9a, 0x01, 0x99, 0x11, 0x60, 0x00, 0x2e, 0x3f, 0xf4, 0x55, 0xaf, 0x04, 0x9a, 0x13, 0x60, 0x51, 0xe7, 0x00, 0xbf, 0xc0, 0x1d, 0x02, 0x07, 0xe4, 0x1d, 0x02, 0x07, 0xd4, 0x1d, 0x02, 0x07, 0xd0, 0x1d, 0x02, 0x07, 0x38, 0xb5, 0x04, 0x46, 0x03, 0x48, 0x0d, 0x46, 0xff, 0xf7, 0xa2, 0xfd, 0x40, 0xf8, 0x24, 0x50, 0x38, 0xbd, 0x00, 0xbf, 0x00, 0x01, 0x09, 0x07, 0x10, 0xb5, 0x04, 0x46, 0x02, 0x48, 0xff, 0xf7, 0x97, 0xfd, 0x50, 0xf8, 0x24, 0x00, 0x10, 0xbd, 0x00, 0x01, 0x09, 0x07, 0x10, 0xb5, 0x06, 0x4c, 0x02, 0x20, 0x05, 0x49, 0xff, 0xf7, 0xe4, 0xff, 0xfe, 0xf7, 0xb6, 0xff, 0x02, 0x20, 0xff, 0xf7, 0xeb, 0xff, 0xa0, 0x42, 0xf4, 0xd1, 0x10, 0xbd, 0x5a, 0xa5, 0xa5, 0x5a, 0x38, 0xb5, 0x00, 0x24, 0x15, 0x4d, 0x20, 0x46, 0xff, 0xf7, 0xe0, 0xff, 0x02, 0x46, 0x18, 0xb1, 0x21, 0x46, 0x28, 0x46, 0xff, 0xf7, 0x46, 0xfc, 0x01, 0x34, 0x06, 0x2c, 0xf3, 0xd1, 0x02, 0x20, 0xff, 0xf7, 0xd4, 0xff, 0x0e, 0x4b, 0x98, 0x42, 0x04, 0xd1, 0x0e, 0x48, 0xff, 0xf7, 0x3a, 0xfc, 0x01, 0x20, 0x38, 0xbd, 0x0c, 0x4b, 0x98, 0x42, 0x0e, 0xd1, 0x0c, 0x4c, 0x02, 0x20, 0x0c, 0x49, 0xff, 0xf7, 0xb8, 0xff, 0x96, 0x20, 0xfe, 0xf7, 0x15, 0xff, 0x02, 0x20, 0xff, 0xf7, 0xbe, 0xff, 0xa0, 0x42, 0xf7, 0xd1, 0x07, 0x48, 0xe9, 0xe7, 0x00, 0x20, 0xea, 0xe7, 0xef, 0xd5, 0x02, 0x00, 0x5a, 0xa5, 0xa5, 0x5a, 0x05, 0xd6, 0x02, 0x00, 0xa5, 0x5a, 0xa5, 0x5a, 0xa7, 0x5a, 0xa5, 0x5a, 0xa6, 0x5a, 0xa5, 0x5a, 0x15, 0xd6, 0x02, 0x00, 0x08, 0xb5, 0x02, 0x20, 0x00, 0x21, 0xff, 0xf7, 0x99, 0xff, 0xfe, 0xf7, 0x6b, 0xff, 0x02, 0x20, 0xff, 0xf7, 0xa0, 0xff, 0x00, 0x28, 0xf4, 0xd1, 0x08, 0xbd, 0x10, 0xb5, 0x04, 0x46, 0x21, 0x46, 0x02, 0x20, 0xff, 0xf7, 0x8b, 0xff, 0xfe, 0xf7, 0x5d, 0xff, 0x02, 0x20, 0xff, 0xf7, 0x92, 0xff, 0xa0, 0x42, 0xf4, 0xd1, 0x10, 0xbd, 0x00, 0x00, 0x0c, 0x4b, 0x1b, 0x68, 0x98, 0x60, 0xda, 0x68, 0x42, 0xf0, 0x08, 0x02, 0xda, 0x60, 0x4f, 0xf6, 0xff, 0x72, 0x12, 0xf1, 0xff, 0x32, 0x0a, 0xd3, 0xd9, 0x68, 0x09, 0x07, 0xf9, 0xd5, 0x32, 0xb1, 0x1b, 0x69, 0x28, 0x2b, 0x14, 0xbf, 0x6f, 0xf0, 0x27, 0x00, 0x00, 0x20, 0x70, 0x47, 0x6f, 0xf0, 0x03, 0x00, 0x70, 0x47, 0x2c, 0xde, 0x02, 0x00, 0x0e, 0x4b, 0x00, 0x22, 0x1b, 0x68, 0xda, 0x61, 0x01, 0x22, 0x9a, 0x61, 0xda, 0x68, 0x42, 0xf0, 0x20, 0x02, 0xda, 0x60, 0x4f, 0xf6, 0xff, 0x72, 0x12, 0xf1, 0xff, 0x32, 0x0a, 0xd3, 0xd9, 0x68, 0x09, 0x07, 0xf9, 0xd5, 0x32, 0xb1, 0x1b, 0x69, 0x08, 0x2b, 0x14, 0xbf, 0x6f, 0xf0, 0x07, 0x00, 0x00, 0x20, 0x70, 0x47, 0x6f, 0xf0, 0x03, 0x00, 0x70, 0x47, 0x00, 0xbf, 0x2c, 0xde, 0x02, 0x00, 0x11, 0x4b, 0x41, 0xea, 0x40, 0x00, 0x1b, 0x68, 0x98, 0x60, 0xda, 0x68, 0x42, 0xf0, 0x08, 0x02, 0xda, 0x60, 0x4f, 0xf6, 0xff, 0x72, 0x12, 0xf1, 0xff, 0x32, 0x12, 0xd3, 0xd8, 0x68, 0x10, 0xf0, 0x08, 0x0f, 0xf8, 0xd0, 0x6a, 0xb1, 0x1b, 0x69, 0x29, 0xb9, 0x18, 0x2b, 0x0c, 0xbf, 0x00, 0x20, 0x6f, 0xf0, 0x17, 0x00, 0x70, 0x47, 0x40, 0x2b, 0x0c, 0xbf, 0x00, 0x20, 0x6f, 0xf0, 0x3f, 0x00, 0x70, 0x47, 0x6f, 0xf0, 0x03, 0x00, 0x70, 0x47, 0x2c, 0xde, 0x02, 0x00, 0x11, 0x4b, 0x1b, 0x68, 0xda, 0x68, 0x42, 0xf0, 0x10, 0x02, 0xda, 0x60, 0xda, 0x68, 0x42, 0xf0, 0x08, 0x02, 0xda, 0x60, 0x4f, 0xf6, 0xff, 0x72, 0x12, 0xf1, 0xff, 0x32, 0x11, 0xd3, 0xd9, 0x68, 0xc9, 0x06, 0xf9, 0xd4, 0x6a, 0xb1, 0x4f, 0xf4, 0x80, 0x32, 0x01, 0x3a, 0x02, 0xd0, 0x19, 0x69, 0xf8, 0x29, 0xfa, 0xd1, 0x1b, 0x69, 0xf8, 0x2b, 0x14, 0xbf, 0x6f, 0xf0, 0x03, 0x00, 0x00, 0x20, 0x70, 0x47, 0x6f, 0xf0, 0x03, 0x00, 0x70, 0x47, 0x2c, 0xde, 0x02, 0x00, 0x2d, 0xe9, 0xf3, 0x47, 0x1f, 0x46, 0x54, 0x4b, 0x14, 0x46, 0x80, 0x46, 0x01, 0x91, 0x5a, 0x68, 0x9a, 0x46, 0x0a, 0x9e, 0x00, 0x2a, 0x00, 0xf0, 0x9b, 0x80, 0xff, 0xf7, 0x85, 0xff, 0x05, 0x46, 0x20, 0xbb, 0x01, 0x46, 0x40, 0x46, 0xff, 0xf7, 0x9f, 0xff, 0x05, 0x46, 0xf0, 0xb9, 0x02, 0x2c, 0x22, 0xdc, 0x0c, 0xbf, 0x01, 0x24, 0x00, 0x24, 0x0d, 0xf1, 0x04, 0x09, 0x4c, 0x44, 0x14, 0xf8, 0x01, 0x09, 0xff, 0xf7, 0x55, 0xff, 0x05, 0x46, 0x80, 0xb9, 0xa4, 0xeb, 0x09, 0x03, 0x01, 0x33, 0xf5, 0xd1, 0xda, 0xf8, 0x00, 0x40, 0xe3, 0x68, 0x43, 0xf0, 0x20, 0x03, 0xe3, 0x60, 0x4f, 0xf6, 0xff, 0x73, 0x13, 0xf1, 0xff, 0x33, 0x09, 0xd2, 0x6f, 0xf0, 0x03, 0x05, 0xff, 0xf7, 0xa2, 0xff, 0x28, 0x46, 0x02, 0xb0, 0xbd, 0xe8, 0xf0, 0x87, 0x02, 0x24, 0xdd, 0xe7, 0xe2, 0x68, 0x15, 0x07, 0xef, 0xd5, 0x00, 0x2b, 0xf0, 0xd0, 0x23, 0x69, 0x10, 0x2b, 0x5b, 0xd1, 0x01, 0x21, 0x40, 0x46, 0xff, 0xf7, 0x6a, 0xff, 0x05, 0x46, 0x00, 0x28, 0xe8, 0xd1, 0x01, 0x2e, 0x21, 0xd0, 0x3a, 0x46, 0x01, 0x3e, 0xd3, 0x1b, 0x9e, 0x42, 0xe3, 0x68, 0x30, 0xd8, 0x03, 0xf0, 0xfb, 0x03, 0xe3, 0x60, 0xe3, 0x68, 0x43, 0xf0, 0x08, 0x03, 0xe3, 0x60, 0x4f, 0xf6, 0xff, 0x73, 0x13, 0xf1, 0xff, 0x33, 0xd2, 0xd3, 0xe2, 0x68, 0x12, 0x07, 0xf9, 0xd5, 0x00, 0x2b, 0xcd, 0xd0, 0xa3, 0x68, 0xbb, 0x55, 0x64, 0x23, 0x13, 0xf1, 0xff, 0x33, 0xc7, 0xd3, 0x22, 0x69, 0x58, 0x2a, 0xf9, 0xd1, 0x9b, 0xb9, 0xc2, 0xe7, 0xe3, 0x68, 0x43, 0xf0, 0x08, 0x03, 0xe3, 0x60, 0x4f, 0xf6, 0xff, 0x73, 0x13, 0xf1, 0xff, 0x33, 0xb9, 0xd3, 0xe2, 0x68, 0x10, 0x07, 0xf9, 0xd5, 0x00, 0x2b, 0xb4, 0xd0, 0xa3, 0x68, 0x3b, 0x70, 0x23, 0x69, 0x58, 0x2b, 0x20, 0xd1, 0x00, 0x25, 0xaf, 0xe7, 0xe3, 0x68, 0x43, 0xf0, 0x0c, 0x03, 0xe3, 0x60, 0x4f, 0xf6, 0xff, 0x73, 0x13, 0xf1, 0xff, 0x33, 0xa4, 0xd3, 0xe1, 0x68, 0x09, 0x07, 0xf9, 0xd5, 0x00, 0x2b, 0x9f, 0xd0, 0xa3, 0x68, 0x02, 0xf8, 0x01, 0x3b, 0x4f, 0xf6, 0xff, 0x73, 0x13, 0xf1, 0xff, 0x33, 0x97, 0xd3, 0x21, 0x69, 0x50, 0x29, 0xf9, 0xd1, 0x00, 0x2b, 0xaf, 0xd1, 0x91, 0xe7, 0x6f, 0xf0, 0x0f, 0x05, 0x90, 0xe7, 0x6f, 0xf0, 0x57, 0x05, 0x8d, 0xe7, 0x6f, 0xf0, 0x03, 0x05, 0x8c, 0xe7, 0x00, 0xbf, 0x2c, 0xde, 0x02, 0x00, 0x2d, 0xe9, 0xf3, 0x41, 0x1c, 0x46, 0x29, 0x4b, 0x15, 0x46, 0x06, 0x46, 0x01, 0x91, 0x5a, 0x68, 0x98, 0x46, 0x00, 0x2a, 0x46, 0xd0, 0xff, 0xf7, 0xd9, 0xfe, 0x01, 0x46, 0x38, 0xb1, 0x4f, 0xf0, 0xff, 0x36, 0xff, 0xf7, 0x19, 0xff, 0x30, 0x46, 0x02, 0xb0, 0xbd, 0xe8, 0xf0, 0x81, 0x30, 0x46, 0xff, 0xf7, 0xec, 0xfe, 0x00, 0x28, 0xf2, 0xd1, 0x02, 0x2d, 0x31, 0xdc, 0x0c, 0xbf, 0x01, 0x25, 0x00, 0x25, 0x01, 0xaf, 0x3d, 0x44, 0x15, 0xf8, 0x01, 0x09, 0xff, 0xf7, 0xa3, 0xfe, 0x06, 0x46, 0x00, 0x28, 0xe4, 0xd1, 0xeb, 0x1b, 0x01, 0x33, 0xf5, 0xd1, 0x08, 0x99, 0x23, 0x46, 0xd8, 0xf8, 0x00, 0x20, 0x60, 0x18, 0x98, 0x42, 0xdc, 0xd0, 0x13, 0xf8, 0x01, 0x1b, 0x91, 0x60, 0xd1, 0x68, 0x41, 0xf0, 0x08, 0x01, 0xd1, 0x60, 0x4f, 0xf6, 0xff, 0x71, 0x11, 0xf1, 0xff, 0x31, 0xce, 0xd3, 0xd4, 0x68, 0x24, 0x07, 0xf9, 0xd5, 0x00, 0x29, 0xc9, 0xd0, 0x4f, 0xf6, 0xff, 0x71, 0x11, 0xf1, 0xff, 0x31, 0xc4, 0xd3, 0x14, 0x69, 0x28, 0x2c, 0xf9, 0xd1, 0x00, 0x29, 0xe2, 0xd1, 0xbe, 0xe7, 0x02, 0x25, 0xce, 0xe7, 0x6f, 0xf0, 0x03, 0x06, 0xbd, 0xe7, 0x00, 0xbf, 0x2c, 0xde, 0x02, 0x00, 0x1f, 0xb5, 0x04, 0xab, 0x03, 0xf8, 0x01, 0x2d, 0x01, 0x22, 0x00, 0x92, 0xff, 0xf7, 0xa0, 0xff, 0x05, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x13, 0xb5, 0x01, 0x24, 0x13, 0x46, 0x00, 0x94, 0x22, 0x46, 0xff, 0xf7, 0xe8, 0xfe, 0x02, 0xb0, 0x10, 0xbd, 0x70, 0xb5, 0x01, 0x22, 0x33, 0x4d, 0x04, 0x46, 0x2b, 0x68, 0x9a, 0x61, 0x4f, 0xf4, 0x80, 0x32, 0x99, 0x69, 0x09, 0xb1, 0x01, 0x3a, 0xfb, 0xd1, 0x1a, 0x6a, 0x02, 0xf0, 0x30, 0x02, 0x30, 0x2a, 0x2c, 0xd0, 0x05, 0x22, 0x0a, 0x26, 0x1a, 0x62, 0x4f, 0xf4, 0xfa, 0x70, 0xfe, 0xf7, 0x16, 0xfd, 0x2b, 0x68, 0x1a, 0x6a, 0x92, 0x07, 0x1a, 0xd4, 0x1a, 0x6a, 0x4f, 0xf4, 0x7a, 0x70, 0x42, 0xf0, 0x08, 0x02, 0x1a, 0x62, 0x1a, 0x6a, 0x42, 0xf0, 0x02, 0x02, 0x1a, 0x62, 0xfe, 0xf7, 0x06, 0xfd, 0x2b, 0x68, 0x4f, 0xf4, 0x7a, 0x70, 0x1a, 0x6a, 0x22, 0xf0, 0x08, 0x02, 0x1a, 0x62, 0x1a, 0x6a, 0x22, 0xf0, 0x02, 0x02, 0x1a, 0x62, 0xfe, 0xf7, 0xf9, 0xfc, 0x01, 0x3e, 0xe0, 0xd1, 0x2b, 0x68, 0x00, 0x22, 0x4f, 0xf4, 0xfa, 0x70, 0x1a, 0x62, 0xfe, 0xf7, 0xf0, 0xfc, 0x16, 0x4a, 0x84, 0xfb, 0x02, 0x23, 0xe4, 0x17, 0x00, 0x22, 0xc4, 0xeb, 0xa3, 0x14, 0x01, 0x23, 0xb4, 0xf5, 0xc8, 0x7f, 0x21, 0x46, 0xa8, 0xbf, 0x4f, 0xf4, 0xc8, 0x71, 0x64, 0x29, 0xb8, 0xbf, 0x64, 0x21, 0x64, 0x2c, 0xcc, 0xbf, 0x00, 0x24, 0x01, 0x24, 0xa2, 0x42, 0x10, 0xdb, 0x59, 0x43, 0x4f, 0xf4, 0x16, 0x60, 0x2d, 0x68, 0xfe, 0xf7, 0xdd, 0xf8, 0x01, 0x38, 0x44, 0xea, 0xc0, 0x04, 0x6c, 0x61, 0xeb, 0x68, 0x43, 0xf0, 0x40, 0x03, 0xeb, 0x60, 0x00, 0x23, 0xeb, 0x61, 0x70, 0xbd, 0x5b, 0x00, 0x01, 0x22, 0xe9, 0xe7, 0x00, 0xbf, 0x2c, 0xde, 0x02, 0x00, 0xd3, 0x4d, 0x62, 0x10, 0x04, 0x48, 0x90, 0xf8, 0x08, 0x33, 0x00, 0xf5, 0x42, 0x70, 0x00, 0x2b, 0x08, 0xbf, 0x00, 0x20, 0x70, 0x47, 0x00, 0xbf, 0x00, 0x80, 0x02, 0x00, 0x22, 0x4b, 0x2d, 0xe9, 0xf0, 0x41, 0x04, 0x46, 0x0d, 0x46, 0x16, 0x46, 0x02, 0x21, 0x01, 0x22, 0x18, 0x60, 0x98, 0x68, 0xff, 0xf7, 0x20, 0xfc, 0xa4, 0xf1, 0x14, 0x73, 0xa3, 0xf5, 0x00, 0x53, 0x9b, 0x0a, 0x05, 0x2b, 0x1a, 0xd8, 0x1a, 0x4f, 0x39, 0x68, 0x01, 0x20, 0x03, 0xf1, 0x10, 0x02, 0x00, 0xfa, 0x02, 0xf2, 0x0a, 0x43, 0x3a, 0x60, 0xd7, 0xf8, 0x00, 0x80, 0x00, 0xfa, 0x03, 0xf4, 0x28, 0xea, 0x04, 0x03, 0x3b, 0x60, 0x48, 0xea, 0x04, 0x04, 0xfe, 0xf7, 0x9f, 0xfc, 0x3c, 0x60, 0x31, 0x46, 0x28, 0x46, 0xbd, 0xe8, 0xf0, 0x41, 0xff, 0xf7, 0x58, 0xbf, 0x0d, 0x4f, 0x04, 0xf1, 0xf8, 0x24, 0x04, 0xf5, 0x7d, 0x04, 0xa4, 0x0a, 0x3a, 0x68, 0x01, 0x20, 0x04, 0xf1, 0x10, 0x03, 0x00, 0xfa, 0x03, 0xf3, 0x22, 0xea, 0x03, 0x02, 0x3a, 0x60, 0x3a, 0x68, 0x13, 0x43, 0x3b, 0x60, 0xd7, 0xf8, 0x00, 0x80, 0x00, 0xfa, 0x04, 0xf4, 0xda, 0xe7, 0x00, 0xbf, 0x2c, 0xde, 0x02, 0x00, 0x1c, 0x19, 0x00, 0x02, 0x9c, 0x01, 0x01, 0x07, 0x38, 0xb5, 0x0a, 0x46, 0x0b, 0x4c, 0x05, 0x46, 0x63, 0x68, 0x8b, 0xb9, 0xff, 0xf7, 0xa0, 0xff, 0xa0, 0x60, 0x68, 0xb1, 0x80, 0x79, 0x29, 0x46, 0x06, 0x28, 0x17, 0xbf, 0x80, 0x02, 0x06, 0x48, 0x00, 0xf1, 0x14, 0x70, 0x00, 0xf5, 0x00, 0x50, 0xff, 0xf7, 0x9e, 0xff, 0x01, 0x23, 0x63, 0x60, 0x38, 0xbd, 0x00, 0xbf, 0x2c, 0xde, 0x02, 0x00, 0x00, 0x08, 0x02, 0x07, 0x38, 0xb5, 0x24, 0x4c, 0x63, 0x68, 0x73, 0xb3, 0xff, 0xf7, 0x84, 0xff, 0x83, 0x79, 0xa0, 0x60, 0x06, 0x2b, 0x17, 0xbf, 0x9b, 0x02, 0x20, 0x4b, 0x03, 0xf1, 0x14, 0x73, 0x03, 0xf5, 0x00, 0x53, 0xa3, 0xf1, 0x14, 0x72, 0xa2, 0xf5, 0x00, 0x52, 0x92, 0x0a, 0x05, 0x2a, 0x1c, 0xd8, 0x1b, 0x4b, 0x18, 0x68, 0x01, 0x21, 0x01, 0xfa, 0x02, 0xf5, 0x20, 0xea, 0x05, 0x00, 0x18, 0x60, 0x18, 0x68, 0x10, 0x32, 0x01, 0xfa, 0x02, 0xf2, 0x20, 0xea, 0x02, 0x02, 0x1a, 0x60, 0xa0, 0x68, 0x00, 0x25, 0x01, 0x22, 0x02, 0x21, 0x85, 0x70, 0xc5, 0x70, 0x05, 0x71, 0x85, 0x72, 0xc5, 0x72, 0x05, 0x73, 0xff, 0xf7, 0x90, 0xfb, 0x65, 0x60, 0x38, 0xbd, 0x0d, 0x4a, 0x03, 0xf1, 0xf8, 0x23, 0x03, 0xf5, 0x7d, 0x03, 0x9b, 0x0a, 0x10, 0x68, 0x01, 0x21, 0x01, 0xfa, 0x03, 0xf5, 0x20, 0xea, 0x05, 0x00, 0x10, 0x60, 0x10, 0x68, 0x10, 0x33, 0x01, 0xfa, 0x03, 0xf3, 0x20, 0xea, 0x03, 0x03, 0x13, 0x60, 0xdc, 0xe7, 0x00, 0xbf, 0x2c, 0xde, 0x02, 0x00, 0x00, 0x08, 0x02, 0x07, 0x1c, 0x19, 0x00, 0x02, 0x9c, 0x01, 0x01, 0x07, 0x08, 0xb5, 0xff, 0xf7, 0x8d, 0xff, 0x00, 0x20, 0x08, 0xbd, 0x13, 0xb5, 0x01, 0x24, 0x13, 0x46, 0x00, 0x94, 0x22, 0x46, 0xc0, 0xb2, 0xff, 0xf7, 0xa3, 0xfd, 0x02, 0xb0, 0x10, 0xbd, 0x1f, 0xb5, 0x04, 0xab, 0x03, 0xf8, 0x01, 0x2d, 0x01, 0x22, 0xc0, 0xb2, 0x00, 0x92, 0xff, 0xf7, 0x46, 0xfe, 0x05, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x73, 0xb5, 0x14, 0x46, 0x0d, 0xf1, 0x07, 0x02, 0x05, 0x46, 0x0e, 0x46, 0xff, 0xf7, 0xe2, 0xff, 0x40, 0xb9, 0x9d, 0xf8, 0x07, 0x20, 0x31, 0x46, 0x28, 0x46, 0x22, 0x43, 0x8d, 0xf8, 0x07, 0x20, 0xff, 0xf7, 0xe2, 0xff, 0x02, 0xb0, 0x70, 0xbd, 0x73, 0xb5, 0x16, 0x46, 0x0d, 0xf1, 0x07, 0x02, 0x04, 0x46, 0x0d, 0x46, 0xff, 0xf7, 0xce, 0xff, 0x48, 0xb9, 0x9d, 0xf8, 0x07, 0x20, 0x29, 0x46, 0x20, 0x46, 0x22, 0xea, 0x06, 0x02, 0x8d, 0xf8, 0x07, 0x20, 0xff, 0xf7, 0xcd, 0xff, 0x02, 0xb0, 0x70, 0xbd, 0x02, 0x4b, 0x18, 0x68, 0xc0, 0xf3, 0x00, 0x40, 0x70, 0x47, 0x00, 0xbf, 0xd4, 0x05, 0x00, 0x07, 0x70, 0xb5, 0x2f, 0x4e, 0x31, 0x68, 0xc1, 0xf3, 0x00, 0x44, 0x2e, 0x48, 0x22, 0x46, 0xff, 0xf7, 0xcd, 0xf8, 0x00, 0x25, 0x35, 0x60, 0x00, 0x2c, 0x51, 0xd0, 0x28, 0x46, 0x2a, 0x4c, 0xff, 0xf7, 0x59, 0xfc, 0x2a, 0x4b, 0x20, 0xf0, 0x0f, 0x00, 0x98, 0x42, 0x0d, 0xd1, 0x28, 0x46, 0xff, 0xf7, 0x51, 0xfc, 0x00, 0xf0, 0x0f, 0x00, 0x60, 0x60, 0x06, 0x20, 0xff, 0xf7, 0x4b, 0xfc, 0xa0, 0x60, 0x07, 0x20, 0xff, 0xf7, 0x47, 0xfc, 0xe0, 0x60, 0x63, 0x68, 0x3b, 0xb3, 0x03, 0x20, 0x00, 0x25, 0xff, 0xf7, 0x40, 0xfc, 0xa6, 0x68, 0x20, 0x61, 0x1d, 0x48, 0x31, 0x46, 0xff, 0xf7, 0xa6, 0xf8, 0xe2, 0x68, 0x1c, 0x49, 0x1c, 0x48, 0xff, 0xf7, 0xa1, 0xf8, 0xd4, 0xe9, 0x02, 0x32, 0x13, 0x44, 0x9e, 0x42, 0x20, 0xd3, 0x19, 0x48, 0xff, 0xf7, 0x99, 0xf8, 0x2a, 0x46, 0x21, 0x69, 0x18, 0x48, 0x65, 0x61, 0xff, 0xf7, 0x93, 0xf8, 0xd4, 0xe9, 0x04, 0x23, 0x9a, 0x42, 0x06, 0xd0, 0x15, 0x48, 0xff, 0xf7, 0x8c, 0xf8, 0x00, 0x20, 0x00, 0xf0, 0x35, 0xf8, 0xfe, 0xe7, 0x12, 0x4c, 0x21, 0x68, 0x12, 0x48, 0xff, 0xf7, 0x83, 0xf8, 0x14, 0x20, 0xfe, 0xf7, 0x56, 0xfb, 0x20, 0x68, 0xbd, 0xe8, 0x70, 0x40, 0xfe, 0xf7, 0xf5, 0xbb, 0x56, 0xf8, 0x04, 0x2b, 0x15, 0x44, 0xd8, 0xe7, 0x70, 0xbd, 0xd4, 0x05, 0x00, 0x07, 0x30, 0xd6, 0x02, 0x00, 0x38, 0xde, 0x02, 0x00, 0x10, 0x32, 0x54, 0x76, 0x66, 0xd6, 0x02, 0x00, 0x44, 0xde, 0x02, 0x00, 0x70, 0xd6, 0x02, 0x00, 0x8b, 0xd6, 0x02, 0x00, 0x9a, 0xd6, 0x02, 0x00, 0xbf, 0xd6, 0x02, 0x00, 0xd8, 0x05, 0x00, 0x07, 0xd3, 0xd6, 0x02, 0x00, 0x70, 0x47, 0x00, 0x00, 0x02, 0x4a, 0x93, 0x69, 0x23, 0xf0, 0x01, 0x03, 0x93, 0x61, 0x70, 0x47, 0xa0, 0x00, 0x05, 0x02, 0x08, 0xb5, 0xff, 0xf7, 0xf5, 0xff, 0x07, 0x4b, 0x53, 0xf8, 0x20, 0x20, 0x02, 0xb9, 0x01, 0x30, 0x53, 0xf8, 0x20, 0x30, 0x1b, 0x01, 0x43, 0xf0, 0x01, 0x03, 0x03, 0x4a, 0x01, 0x21, 0x51, 0x61, 0x93, 0x61, 0x08, 0xbd, 0x6c, 0xd2, 0x02, 0x00, 0xa0, 0x00, 0x05, 0x02, 0x80, 0x6f, 0xc0, 0xf3, 0xc0, 0x20, 0x70, 0x47, 0xc0, 0x6d, 0xc0, 0x0f, 0x70, 0x47, 0x00, 0x00, 0x70, 0x47, 0x00, 0x00, 0x04, 0x4b, 0x1b, 0x68, 0x48, 0x2b, 0x01, 0xd1, 0x01, 0xf0, 0xc0, 0xbf, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x00, 0xbf, 0x50, 0xde, 0x02, 0x00, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x00, 0x00, 0x01, 0x4b, 0x18, 0x68, 0x70, 0x47, 0x00, 0xbf, 0x50, 0xde, 0x02, 0x00, 0x43, 0x1e, 0x0a, 0x44, 0x10, 0xb5, 0x54, 0x1a, 0x00, 0x2c, 0x00, 0xdc, 0x10, 0xbd, 0x11, 0xf8, 0x01, 0x4b, 0x03, 0xf8, 0x01, 0x4f, 0xf6, 0xe7, 0xfe, 0xf7, 0xfd, 0xba, 0x0b, 0x4b, 0x1b, 0x68, 0xc3, 0xf3, 0x07, 0x23, 0x73, 0xb1, 0x42, 0x68, 0x02, 0x2a, 0x04, 0xd0, 0x03, 0x2a, 0x0a, 0xd1, 0x20, 0x2b, 0x00, 0xd9, 0x16, 0x3b, 0x06, 0x49, 0x0a, 0x68, 0x22, 0xf4, 0x7f, 0x42, 0x42, 0xea, 0x03, 0x23, 0x0b, 0x60, 0x70, 0x47, 0x00, 0x23, 0xf5, 0xe7, 0x00, 0xbf, 0x1c, 0x62, 0x00, 0x03, 0x50, 0x01, 0x00, 0x03, 0x38, 0xb5, 0x05, 0x46, 0x43, 0x68, 0x02, 0x2b, 0x14, 0xd0, 0x03, 0x2b, 0x0c, 0xbf, 0x19, 0x22, 0x00, 0x22, 0x09, 0x4c, 0x01, 0x20, 0x23, 0x68, 0x23, 0xf4, 0x7f, 0x43, 0x43, 0xea, 0x02, 0x23, 0x23, 0xf4, 0x00, 0x13, 0x23, 0x60, 0xfe, 0xf7, 0xcc, 0xfa, 0x28, 0x46, 0xff, 0xf7, 0xcc, 0xff, 0x23, 0x68, 0x38, 0xbd, 0x2f, 0x22, 0xec, 0xe7, 0x50, 0x01, 0x00, 0x03, 0x03, 0x68, 0x23, 0xea, 0x01, 0x01, 0x11, 0x43, 0x01, 0x60, 0x70, 0x47, 0x05, 0x4b, 0x4f, 0xf0, 0xff, 0x32, 0x0a, 0x20, 0x1a, 0x60, 0xff, 0x22, 0x5a, 0x60, 0x4f, 0xf6, 0xff, 0x72, 0x9a, 0x60, 0xfe, 0xf7, 0xb1, 0xba, 0x20, 0x20, 0x10, 0x03, 0x04, 0x4b, 0x01, 0x22, 0x0a, 0x20, 0x1a, 0x60, 0x00, 0x23, 0x03, 0x4a, 0x13, 0x60, 0x53, 0x60, 0xfe, 0xf7, 0xa5, 0xba, 0x20, 0x20, 0x10, 0x03, 0x24, 0x20, 0x10, 0x03, 0xf8, 0xb5, 0x04, 0x46, 0xd0, 0xe9, 0x15, 0x32, 0x43, 0x4e, 0x59, 0x02, 0x50, 0x00, 0x01, 0xf4, 0xf0, 0x51, 0x00, 0xf0, 0x1e, 0x00, 0x01, 0x43, 0x40, 0x48, 0x37, 0x46, 0x05, 0x68, 0x0d, 0x43, 0x40, 0xf8, 0x04, 0x5b, 0xb0, 0x42, 0xf9, 0xd1, 0x59, 0x01, 0xd0, 0x08, 0x3c, 0x4e, 0x3d, 0x4d, 0x01, 0xf4, 0xf0, 0x51, 0x00, 0xf0, 0x1e, 0x00, 0x01, 0x43, 0x30, 0x68, 0x08, 0x43, 0x46, 0xf8, 0x04, 0x0b, 0xae, 0x42, 0xf9, 0xd1, 0x38, 0x48, 0xd5, 0x0b, 0xd2, 0x0c, 0x05, 0xf0, 0x1e, 0x05, 0x01, 0x68, 0x02, 0xf0, 0x1e, 0x02, 0x21, 0xf0, 0x80, 0x61, 0x01, 0x60, 0x19, 0x0c, 0xd7, 0xf8, 0x00, 0xc0, 0x1b, 0x0d, 0x4f, 0xea, 0x41, 0x2e, 0x49, 0x06, 0x0e, 0xf4, 0xf0, 0x5e, 0x01, 0xf0, 0xf0, 0x51, 0x45, 0xea, 0x0e, 0x05, 0x45, 0xea, 0x0c, 0x0c, 0xc7, 0xf8, 0x00, 0xc0, 0x2b, 0x4f, 0xd7, 0xf8, 0x00, 0xc0, 0x45, 0xea, 0x0c, 0x05, 0x3d, 0x60, 0x5f, 0x02, 0x35, 0x68, 0x5b, 0x06, 0x07, 0xf4, 0xf0, 0x57, 0x3a, 0x43, 0x03, 0xf0, 0xf0, 0x53, 0x15, 0x43, 0x35, 0x60, 0x24, 0x4d, 0x2e, 0x68, 0x32, 0x43, 0x2a, 0x60, 0x23, 0x4a, 0x15, 0x68, 0x29, 0x43, 0x11, 0x60, 0xd2, 0xf8, 0x80, 0x10, 0x0b, 0x43, 0xc2, 0xf8, 0x80, 0x30, 0x03, 0x68, 0x43, 0xf0, 0x80, 0x63, 0x03, 0x60, 0x01, 0x20, 0xfe, 0xf7, 0x3e, 0xfa, 0x23, 0x6d, 0x1b, 0x4a, 0x1c, 0x4c, 0x19, 0x01, 0x01, 0xf4, 0x70, 0x61, 0x10, 0x68, 0x08, 0x43, 0x42, 0xf8, 0x04, 0x0b, 0xa2, 0x42, 0xf9, 0xd1, 0x18, 0x4a, 0x15, 0x4c, 0x10, 0x68, 0x08, 0x43, 0x42, 0xf8, 0x04, 0x0b, 0xa2, 0x42, 0xf9, 0xd1, 0x15, 0x49, 0x1a, 0x02, 0x02, 0xf4, 0x70, 0x62, 0x08, 0x68, 0x02, 0x43, 0x0a, 0x60, 0x03, 0xf4, 0x70, 0x62, 0x48, 0x68, 0x1b, 0x09, 0x03, 0xf4, 0x70, 0x63, 0x02, 0x43, 0x4a, 0x60, 0x0e, 0x4a, 0x11, 0x68, 0x0b, 0x43, 0x13, 0x60, 0xf8, 0xbd, 0x00, 0xbf, 0x34, 0x33, 0x10, 0x03, 0x10, 0x33, 0x10, 0x03, 0x90, 0x33, 0x10, 0x03, 0xb4, 0x33, 0x10, 0x03, 0x00, 0x31, 0x10, 0x03, 0x38, 0x33, 0x10, 0x03, 0xb8, 0x33, 0x10, 0x03, 0x3c, 0x33, 0x10, 0x03, 0x40, 0x32, 0x10, 0x03, 0x7c, 0x32, 0x10, 0x03, 0x28, 0x32, 0x10, 0x03, 0x18, 0x32, 0x10, 0x03, 0x80, 0x32, 0x10, 0x03, 0xf0, 0xb5, 0xd9, 0xb0, 0xb0, 0x22, 0x18, 0x49, 0x68, 0x46, 0x00, 0x24, 0xfe, 0xf7, 0x5a, 0xfd, 0xb0, 0x22, 0x16, 0x49, 0x0d, 0xeb, 0x02, 0x00, 0xfe, 0xf7, 0x54, 0xfd, 0x14, 0x4a, 0x69, 0x46, 0xdf, 0xf8, 0x50, 0xc0, 0x13, 0x68, 0x23, 0xf0, 0x80, 0x63, 0x13, 0x60, 0x2c, 0xaa, 0x00, 0x23, 0x04, 0xeb, 0x0c, 0x05, 0xc8, 0x58, 0xef, 0x58, 0x06, 0x46, 0xd0, 0x58, 0x06, 0xeb, 0x00, 0x20, 0x38, 0x44, 0xe8, 0x50, 0x04, 0x33, 0x2c, 0x2b, 0xf4, 0xd1, 0x80, 0x34, 0x2c, 0x31, 0xb4, 0xf5, 0x00, 0x7f, 0x02, 0xf1, 0x2c, 0x02, 0xea, 0xd1, 0x05, 0x4a, 0x13, 0x68, 0x43, 0xf0, 0x80, 0x63, 0x13, 0x60, 0x59, 0xb0, 0xf0, 0xbd, 0x00, 0xbf, 0xb0, 0xd2, 0x02, 0x00, 0x60, 0xd3, 0x02, 0x00, 0x00, 0x31, 0x10, 0x03, 0x10, 0x33, 0x10, 0x03, 0x1b, 0x49, 0x03, 0x68, 0x1b, 0x48, 0x0a, 0x68, 0x5b, 0x08, 0x22, 0xf4, 0x7f, 0x62, 0x22, 0xf0, 0x0f, 0x02, 0x01, 0x3b, 0x13, 0x43, 0x4f, 0xf4, 0x80, 0x32, 0x0b, 0x60, 0x16, 0x4b, 0x1a, 0x60, 0x16, 0x4b, 0x17, 0x4a, 0x13, 0x60, 0x17, 0x4a, 0xc1, 0xf8, 0x08, 0x22, 0xc1, 0xf8, 0x24, 0x02, 0x15, 0x48, 0xc1, 0xf8, 0x28, 0x02, 0xc1, 0xf8, 0x34, 0x32, 0xc1, 0xf8, 0x38, 0x22, 0x13, 0x4a, 0x13, 0x49, 0x11, 0x60, 0x13, 0x49, 0x51, 0x60, 0x13, 0x63, 0x13, 0x4b, 0x13, 0x4a, 0x1a, 0x60, 0x00, 0x23, 0x13, 0x4a, 0x13, 0x60, 0x53, 0x60, 0x02, 0xf1, 0x47, 0x62, 0x11, 0x4b, 0x02, 0xf6, 0x95, 0x22, 0x1a, 0x60, 0x10, 0x4a, 0x9a, 0x60, 0x10, 0x4a, 0x1a, 0x61, 0x70, 0x47, 0x00, 0xbf, 0x0c, 0x20, 0x10, 0x03, 0x0d, 0x00, 0x00, 0x02, 0x00, 0x22, 0x10, 0x03, 0x09, 0x00, 0x00, 0x01, 0x10, 0x22, 0x10, 0x03, 0x64, 0x00, 0x50, 0x00, 0x00, 0x01, 0x60, 0x00, 0x60, 0x22, 0x10, 0x03, 0x09, 0x02, 0x64, 0x00, 0x40, 0x00, 0x20, 0x00, 0x94, 0x22, 0x10, 0x03, 0x80, 0x00, 0x40, 0x00, 0x70, 0x24, 0x10, 0x03, 0xc0, 0x31, 0x10, 0x03, 0xff, 0x00, 0x00, 0x0f, 0x5f, 0x00, 0x00, 0x3f, 0x10, 0xb5, 0x01, 0xfb, 0x00, 0xf4, 0x4f, 0xf4, 0x7a, 0x71, 0x20, 0x46, 0xfd, 0xf7, 0x44, 0xfd, 0x03, 0x4a, 0xa4, 0xfb, 0x02, 0x23, 0x98, 0x09, 0x00, 0x29, 0x18, 0xbf, 0x01, 0x30, 0x10, 0xbd, 0xd3, 0x4d, 0x62, 0x10, 0xc3, 0x6d, 0x2d, 0xe9, 0xf0, 0x4f, 0x9b, 0xb0, 0xd0, 0xf8, 0x00, 0x90, 0x04, 0x46, 0x99, 0x07, 0x06, 0x93, 0x46, 0x68, 0x4f, 0xea, 0x59, 0x08, 0x36, 0xd5, 0x83, 0x6a, 0xc3, 0xf3, 0x42, 0x52, 0x18, 0x92, 0xc3, 0xf3, 0xc5, 0x32, 0x04, 0x92, 0xc3, 0xf3, 0xc3, 0x22, 0x02, 0x92, 0xc3, 0xf3, 0x84, 0x12, 0x03, 0xf0, 0x3f, 0x03, 0x00, 0x92, 0x03, 0x93, 0xc3, 0x6a, 0x00, 0x6b, 0xc3, 0xf3, 0xc4, 0x52, 0xc3, 0xf3, 0x02, 0x55, 0x01, 0x92, 0xc3, 0xf3, 0xc3, 0x27, 0xc3, 0xf3, 0xc4, 0x32, 0xc3, 0xf3, 0x84, 0x1a, 0xc0, 0xf3, 0x0b, 0x0b, 0x03, 0xf0, 0x3f, 0x03, 0x05, 0x93, 0xc0, 0xf3, 0x08, 0x33, 0x16, 0x92, 0x0a, 0x93, 0x63, 0x6a, 0x22, 0x68, 0x17, 0x93, 0xe3, 0x69, 0x15, 0x93, 0xb3, 0x1e, 0x05, 0x2b, 0x00, 0xf2, 0x66, 0x83, 0xdf, 0xe8, 0x13, 0xf0, 0x8c, 0x01, 0x6e, 0x02, 0x64, 0x03, 0x64, 0x03, 0xc4, 0x02, 0x12, 0x03, 0x03, 0x2e, 0x40, 0xf0, 0x82, 0x80, 0x41, 0x46, 0x08, 0x20, 0xff, 0xf7, 0xa3, 0xff, 0x41, 0x46, 0x05, 0x46, 0x0f, 0x20, 0xff, 0xf7, 0x9e, 0xff, 0x41, 0x46, 0x00, 0x90, 0x41, 0xf6, 0x78, 0x60, 0xff, 0xf7, 0x98, 0xff, 0x10, 0xf0, 0x1f, 0x03, 0x41, 0x46, 0x18, 0xbf, 0x01, 0x23, 0x03, 0xeb, 0x50, 0x1b, 0x4f, 0xf4, 0xaf, 0x70, 0xff, 0xf7, 0x8d, 0xff, 0x00, 0x9f, 0x02, 0x2d, 0x38, 0xbf, 0x02, 0x25, 0x0a, 0x90, 0x41, 0x46, 0x02, 0x2f, 0x38, 0xbf, 0x02, 0x27, 0xb9, 0xf5, 0x48, 0x7f, 0x3d, 0xd8, 0x32, 0x20, 0xff, 0xf7, 0x7e, 0xff, 0x41, 0x46, 0x04, 0x90, 0x0a, 0x20, 0xff, 0xf7, 0x79, 0xff, 0x02, 0x28, 0x41, 0x46, 0x38, 0xbf, 0x02, 0x20, 0x02, 0x90, 0x35, 0x20, 0xff, 0xf7, 0x71, 0xff, 0x41, 0x46, 0x03, 0x90, 0x26, 0x20, 0xff, 0xf7, 0x6c, 0xff, 0x01, 0x95, 0x05, 0x90, 0xdd, 0xf8, 0x00, 0xa0, 0x00, 0x9a, 0x03, 0x9b, 0x43, 0xf4, 0x80, 0x03, 0x43, 0xea, 0x82, 0x13, 0x02, 0x9a, 0x43, 0xea, 0xc2, 0x23, 0x04, 0x9a, 0x43, 0xea, 0xc2, 0x33, 0x05, 0x9a, 0xa3, 0x62, 0xfb, 0x02, 0x43, 0xea, 0x8a, 0x13, 0x13, 0x43, 0x01, 0x9a, 0x43, 0xea, 0xc5, 0x33, 0x43, 0xea, 0x05, 0x53, 0x43, 0xea, 0xc2, 0x53, 0xe3, 0x62, 0xa3, 0x6b, 0xc3, 0xf3, 0x03, 0x33, 0x01, 0x2b, 0x00, 0xf0, 0x0d, 0x81, 0x02, 0x2b, 0x00, 0xf0, 0x17, 0x81, 0x8d, 0x48, 0x0a, 0xe1, 0x23, 0x20, 0xff, 0xf7, 0x40, 0xff, 0x41, 0x46, 0x04, 0x90, 0x06, 0x20, 0xff, 0xf7, 0x3b, 0xff, 0x02, 0x28, 0x41, 0x46, 0x38, 0xbf, 0x02, 0x20, 0x02, 0x90, 0x0e, 0x20, 0xff, 0xf7, 0x33, 0xff, 0x41, 0x46, 0x00, 0x90, 0x30, 0x20, 0xff, 0xf7, 0x2e, 0xff, 0x41, 0x46, 0x03, 0x90, 0x22, 0x20, 0xff, 0xf7, 0x29, 0xff, 0x02, 0x9b, 0x05, 0x90, 0x01, 0x93, 0xba, 0xe7, 0x02, 0x2e, 0x36, 0xd1, 0x41, 0x46, 0x32, 0x20, 0xff, 0xf7, 0x1f, 0xff, 0x41, 0x46, 0x04, 0x90, 0x0a, 0x20, 0xff, 0xf7, 0x1a, 0xff, 0x41, 0x46, 0x02, 0x90, 0x14, 0x20, 0xff, 0xf7, 0x15, 0xff, 0x41, 0x46, 0x00, 0x90, 0x41, 0x20, 0xff, 0xf7, 0x10, 0xff, 0x41, 0x46, 0x03, 0x90, 0x08, 0x20, 0xff, 0xf7, 0x0b, 0xff, 0x41, 0x46, 0x05, 0x46, 0x0f, 0x20, 0xff, 0xf7, 0x06, 0xff, 0x41, 0x46, 0x82, 0x46, 0x2d, 0x20, 0x57, 0x46, 0xff, 0xf7, 0x00, 0xff, 0x41, 0x46, 0x05, 0x90, 0x41, 0xf6, 0x78, 0x60, 0xff, 0xf7, 0xfa, 0xfe, 0x10, 0xf0, 0x1f, 0x03, 0x41, 0x46, 0x18, 0xbf, 0x01, 0x23, 0x03, 0xeb, 0x50, 0x1b, 0x4f, 0xf4, 0xa4, 0x70, 0xff, 0xf7, 0xef, 0xfe, 0x01, 0x96, 0x0a, 0x90, 0x83, 0xe7, 0x06, 0x2e, 0x4e, 0xd1, 0x41, 0x46, 0x32, 0x20, 0xff, 0xf7, 0xe6, 0xfe, 0x04, 0x28, 0x41, 0x46, 0x38, 0xbf, 0x04, 0x20, 0x04, 0x90, 0x0a, 0x20, 0xff, 0xf7, 0xde, 0xfe, 0x03, 0x46, 0x41, 0x46, 0x00, 0x28, 0x08, 0xbf, 0x01, 0x23, 0x18, 0x20, 0x02, 0x93, 0xff, 0xf7, 0xd5, 0xfe, 0x02, 0x28, 0x41, 0x46, 0x38, 0xbf, 0x02, 0x20, 0x00, 0x90, 0x46, 0x20, 0xff, 0xf7, 0xcd, 0xfe, 0x41, 0x46, 0x03, 0x90, 0x08, 0x20, 0xff, 0xf7, 0xc8, 0xfe, 0x01, 0x90, 0x30, 0xb3, 0x02, 0x28, 0x05, 0x46, 0x38, 0xbf, 0x02, 0x25, 0x41, 0x46, 0x0f, 0x20, 0xff, 0xf7, 0xbe, 0xfe, 0x02, 0x28, 0x41, 0x46, 0x38, 0xbf, 0x02, 0x20, 0x07, 0x46, 0x11, 0x20, 0xff, 0xf7, 0xb6, 0xfe, 0x41, 0x46, 0x82, 0x46, 0x2a, 0x20, 0xff, 0xf7, 0xb1, 0xfe, 0x41, 0x46, 0x05, 0x90, 0x40, 0xf6, 0x3c, 0x70, 0xff, 0xf7, 0xab, 0xfe, 0x10, 0xf0, 0x1f, 0x03, 0x41, 0x46, 0x18, 0xbf, 0x01, 0x23, 0x03, 0xeb, 0x50, 0x1b, 0xd2, 0x20, 0xff, 0xf7, 0xa1, 0xfe, 0x0a, 0x90, 0x36, 0xe7, 0x01, 0x23, 0x02, 0x25, 0x01, 0x93, 0xd8, 0xe7, 0x07, 0x2e, 0x49, 0xd1, 0x41, 0x46, 0x32, 0x20, 0xff, 0xf7, 0x95, 0xfe, 0x04, 0x28, 0x41, 0x46, 0x38, 0xbf, 0x04, 0x20, 0x04, 0x90, 0x0a, 0x20, 0xff, 0xf7, 0x8d, 0xfe, 0x03, 0x46, 0x41, 0x46, 0x00, 0x28, 0x08, 0xbf, 0x01, 0x23, 0x18, 0x20, 0x02, 0x93, 0xff, 0xf7, 0x84, 0xfe, 0x02, 0x28, 0x41, 0x46, 0x38, 0xbf, 0x02, 0x20, 0x00, 0x90, 0x46, 0x20, 0xff, 0xf7, 0x7c, 0xfe, 0x41, 0x46, 0x03, 0x90, 0x08, 0x20, 0xff, 0xf7, 0x77, 0xfe, 0x02, 0x28, 0x41, 0x46, 0x38, 0xbf, 0x02, 0x20, 0x05, 0x46, 0x0f, 0x20, 0xff, 0xf7, 0x6f, 0xfe, 0x02, 0x28, 0x41, 0x46, 0x38, 0xbf, 0x02, 0x20, 0x07, 0x46, 0x11, 0x20, 0xff, 0xf7, 0x67, 0xfe, 0x41, 0x46, 0x82, 0x46, 0x2a, 0x20, 0xff, 0xf7, 0x62, 0xfe, 0x41, 0x46, 0x05, 0x90, 0x40, 0xf6, 0x3c, 0x70, 0xff, 0xf7, 0x5c, 0xfe, 0x10, 0xf0, 0x1f, 0x03, 0x41, 0x46, 0x18, 0xbf, 0x01, 0x23, 0x03, 0xeb, 0x50, 0x1b, 0xd2, 0x20, 0xff, 0xf7, 0x52, 0xfe, 0x01, 0x95, 0x0a, 0x90, 0xe6, 0xe6, 0x80, 0x23, 0x0e, 0x22, 0x0a, 0x93, 0x0a, 0x23, 0x01, 0x93, 0x10, 0x23, 0x03, 0x25, 0x4f, 0xf0, 0x06, 0x0a, 0xcd, 0xe9, 0x04, 0x32, 0x14, 0x23, 0x4f, 0xf0, 0x62, 0x0b, 0x08, 0x27, 0x03, 0x93, 0xcd, 0xf8, 0x00, 0xa0, 0x02, 0x95, 0xd2, 0xe6, 0x09, 0x48, 0x4f, 0xea, 0x5b, 0x0b, 0xfe, 0xf7, 0xb0, 0xfc, 0x0a, 0x9b, 0x16, 0x95, 0x4b, 0xea, 0x03, 0x33, 0x23, 0x63, 0x02, 0x23, 0x18, 0x93, 0x72, 0xe6, 0x4f, 0xea, 0x9b, 0x0b, 0x02, 0x48, 0xf1, 0xe7, 0x14, 0xd7, 0x02, 0x00, 0xf9, 0xd6, 0x02, 0x00, 0x06, 0xd7, 0x02, 0x00, 0xb4, 0x48, 0xb8, 0xf1, 0xcc, 0x0f, 0x88, 0xbf, 0xb0, 0x46, 0xb4, 0x46, 0x4f, 0xf0, 0x03, 0x06, 0x98, 0xbf, 0x4f, 0xf0, 0x01, 0x08, 0xb6, 0x46, 0xa9, 0xfb, 0x00, 0x01, 0x4f, 0xf4, 0xfa, 0x70, 0x00, 0xfb, 0x02, 0xf0, 0x4f, 0xea, 0x11, 0x13, 0x40, 0xf6, 0x73, 0x61, 0x13, 0x93, 0x8c, 0xbf, 0x04, 0x23, 0x03, 0x23, 0x08, 0x93, 0x40, 0xf6, 0x63, 0x23, 0x88, 0xbf, 0x0b, 0x46, 0x10, 0x93, 0x4f, 0xf4, 0xc8, 0x73, 0x53, 0x43, 0x01, 0x33, 0x0c, 0x93, 0xa3, 0x4b, 0xa0, 0xfb, 0x03, 0x01, 0x04, 0x20, 0x81, 0x46, 0x8b, 0x09, 0x05, 0x21, 0x01, 0x33, 0x0d, 0x93, 0xc8, 0x23, 0x53, 0x43, 0x01, 0x33, 0x0e, 0x93, 0x53, 0x1c, 0x0f, 0x93, 0x7b, 0x1d, 0x12, 0x93, 0x6b, 0x1d, 0x14, 0x93, 0x01, 0x25, 0x15, 0x9b, 0x0b, 0x95, 0x06, 0x93, 0x0c, 0x23, 0x09, 0x93, 0x00, 0x23, 0x07, 0x93, 0x11, 0x93, 0x08, 0x9d, 0x02, 0x35, 0x19, 0x95, 0x16, 0x9d, 0x55, 0x44, 0x2f, 0x46, 0x19, 0x9d, 0xaf, 0x42, 0x3f, 0xbf, 0x08, 0x9f, 0xca, 0xf1, 0x02, 0x05, 0xed, 0x19, 0x16, 0x95, 0x65, 0x8b, 0x0d, 0xb9, 0x10, 0x9d, 0xa5, 0x61, 0x15, 0x9d, 0x67, 0x8c, 0x2d, 0x0c, 0x04, 0xbf, 0x06, 0x9d, 0xe5, 0x61, 0x0f, 0xb9, 0x11, 0x9d, 0x25, 0x62, 0x17, 0x9d, 0x4f, 0xea, 0x0c, 0x3c, 0x27, 0x8b, 0x4c, 0xea, 0x03, 0x4c, 0x09, 0x9b, 0x2d, 0x0c, 0x08, 0xbf, 0x07, 0x9d, 0x4c, 0xea, 0x03, 0x03, 0x08, 0xbf, 0x65, 0x62, 0xb2, 0xf5, 0x48, 0x7f, 0x80, 0x4d, 0x81, 0x4a, 0x2f, 0x60, 0xa7, 0x8b, 0x6f, 0x60, 0x27, 0x8c, 0xaf, 0x60, 0xa7, 0x8c, 0xe4, 0x68, 0xef, 0x60, 0xc4, 0xf3, 0x01, 0x14, 0x45, 0xf8, 0x04, 0x4c, 0xdd, 0xe9, 0x04, 0x54, 0x44, 0xea, 0x05, 0x47, 0x12, 0x9c, 0x01, 0x9d, 0x47, 0xea, 0x04, 0x67, 0x13, 0x9c, 0x47, 0xea, 0x04, 0x27, 0x76, 0x4c, 0x27, 0x60, 0x03, 0x9c, 0x44, 0xea, 0x05, 0x44, 0x16, 0x9d, 0x44, 0xea, 0x05, 0x24, 0x73, 0x4d, 0x2c, 0x60, 0x08, 0x9c, 0x4f, 0xea, 0x04, 0x45, 0x14, 0x9c, 0x45, 0xea, 0x0e, 0x6e, 0x4e, 0xea, 0x04, 0x05, 0x6f, 0x4c, 0x45, 0xea, 0x09, 0x25, 0x25, 0x60, 0x63, 0x60, 0x18, 0x9b, 0x00, 0x9c, 0x4f, 0xea, 0x03, 0x43, 0x43, 0xea, 0x04, 0x63, 0x02, 0x9c, 0x43, 0xea, 0x0a, 0x03, 0x43, 0xea, 0x04, 0x23, 0x68, 0x4c, 0x23, 0x60, 0x4f, 0xea, 0x01, 0x43, 0x43, 0xea, 0x01, 0x61, 0x66, 0x4b, 0x46, 0xea, 0x01, 0x06, 0x65, 0x49, 0x46, 0xea, 0x00, 0x20, 0x18, 0x60, 0x64, 0x4b, 0x08, 0x68, 0x03, 0xea, 0x00, 0x03, 0x62, 0x48, 0x43, 0xf0, 0x70, 0x43, 0x94, 0xbf, 0x43, 0xf4, 0xcc, 0x43, 0x43, 0xf4, 0xec, 0x43, 0x43, 0xf0, 0x10, 0x03, 0x0b, 0x60, 0x00, 0xea, 0xcb, 0x30, 0x0b, 0x9b, 0x43, 0xf0, 0x00, 0x73, 0x43, 0xf4, 0x80, 0x73, 0x43, 0xea, 0x08, 0x43, 0x13, 0x60, 0xdd, 0xe9, 0x0c, 0x32, 0x43, 0xea, 0x02, 0x53, 0x57, 0x4a, 0x13, 0x60, 0xdd, 0xe9, 0x0e, 0x32, 0x43, 0xea, 0x02, 0x53, 0x55, 0x4a, 0x13, 0x60, 0x0a, 0x9b, 0x43, 0xea, 0x0b, 0x43, 0xd3, 0x63, 0x53, 0x4b, 0x18, 0x60, 0x1b, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x43, 0x48, 0xb2, 0xf5, 0x48, 0x7f, 0x8c, 0xbf, 0x4f, 0xf0, 0x05, 0x08, 0x4f, 0xf0, 0x04, 0x08, 0x07, 0xf1, 0x02, 0x07, 0x05, 0xf1, 0x02, 0x05, 0xc6, 0x46, 0xa9, 0xfb, 0x00, 0x01, 0x4f, 0xf4, 0xb4, 0x70, 0x00, 0xfb, 0x02, 0xf0, 0x4f, 0xea, 0x11, 0x13, 0x41, 0xf6, 0x14, 0x61, 0x13, 0x93, 0x8c, 0xbf, 0x07, 0x23, 0x06, 0x23, 0x08, 0x93, 0x8c, 0xbf, 0x33, 0x46, 0x02, 0x23, 0x0b, 0x93, 0x8c, 0xbf, 0x20, 0x23, 0x18, 0x23, 0x11, 0x93, 0x41, 0xf6, 0x70, 0x43, 0x88, 0xbf, 0x0b, 0x46, 0x10, 0x93, 0x4f, 0xf4, 0xfa, 0x73, 0x53, 0x43, 0x01, 0x33, 0x0c, 0x93, 0x2d, 0x4b, 0xa0, 0xfb, 0x03, 0x01, 0x04, 0x20, 0x8b, 0x09, 0x05, 0x21, 0x01, 0x33, 0x0d, 0x93, 0xc8, 0x23, 0x53, 0x43, 0x01, 0x33, 0x0e, 0x93, 0x53, 0x1c, 0x0f, 0x93, 0x07, 0xeb, 0x08, 0x03, 0x12, 0x93, 0x05, 0xeb, 0x08, 0x03, 0x14, 0x93, 0x06, 0x9b, 0xc3, 0xf3, 0x81, 0x03, 0x01, 0x2b, 0x15, 0x9b, 0x06, 0x93, 0x00, 0xf0, 0xc8, 0x80, 0xb2, 0xf5, 0x64, 0x7f, 0x40, 0xf2, 0xc4, 0x80, 0x4f, 0xf0, 0x06, 0x09, 0x0c, 0x23, 0x84, 0x46, 0x09, 0x93, 0x00, 0x23, 0x07, 0x93, 0x08, 0xe7, 0x18, 0x48, 0x11, 0x96, 0x02, 0x26, 0xb6, 0x46, 0xa9, 0xfb, 0x00, 0x01, 0x64, 0x20, 0x4f, 0xf0, 0x0a, 0x09, 0x50, 0x43, 0x4b, 0x09, 0x13, 0x93, 0xc8, 0x23, 0x53, 0x43, 0x01, 0x33, 0x0c, 0x93, 0x11, 0x4b, 0xa0, 0xfb, 0x03, 0x01, 0x8b, 0x09, 0x05, 0x21, 0x08, 0x46, 0x09, 0x91, 0x01, 0x33, 0x8c, 0x46, 0x0d, 0x93, 0x0b, 0x23, 0x53, 0x43, 0x01, 0x33, 0x0e, 0x93, 0x53, 0x1c, 0x0f, 0x93, 0x7b, 0x1d, 0x12, 0x93, 0x6b, 0x1d, 0x14, 0x93, 0x04, 0x27, 0x17, 0x9b, 0x08, 0x97, 0x01, 0x27, 0x0b, 0x97, 0x07, 0x93, 0x03, 0x23, 0x98, 0x46, 0xc3, 0x25, 0x06, 0x95, 0x00, 0x25, 0x10, 0x95, 0xd7, 0xe6, 0x00, 0xbf, 0x89, 0x88, 0x88, 0x88, 0xd3, 0x4d, 0x62, 0x10, 0x30, 0x30, 0x10, 0x03, 0x80, 0x30, 0x10, 0x03, 0x58, 0x30, 0x10, 0x03, 0x5c, 0x30, 0x10, 0x03, 0x60, 0x30, 0x10, 0x03, 0x68, 0x30, 0x10, 0x03, 0x6c, 0x30, 0x10, 0x03, 0x78, 0x30, 0x10, 0x03, 0x00, 0x00, 0xff, 0x0f, 0x50, 0x30, 0x10, 0x03, 0x54, 0x30, 0x10, 0x03, 0x94, 0x30, 0x10, 0x03, 0x37, 0x48, 0xb2, 0xf5, 0x48, 0x7f, 0x8c, 0xbf, 0x4f, 0xf0, 0x04, 0x0e, 0x4f, 0xf0, 0x03, 0x0e, 0x07, 0xf1, 0x05, 0x07, 0x05, 0xf1, 0x05, 0x05, 0x8c, 0xbf, 0x4f, 0xf0, 0x06, 0x08, 0x4f, 0xf0, 0x05, 0x08, 0xa9, 0xfb, 0x00, 0x01, 0x4f, 0xf0, 0x64, 0x00, 0x4f, 0xf0, 0x0d, 0x09, 0x00, 0xfb, 0x02, 0xf0, 0x4f, 0xea, 0x51, 0x13, 0x13, 0x93, 0x8c, 0xbf, 0x03, 0x23, 0x02, 0x23, 0x0b, 0x93, 0x8c, 0xbf, 0x0c, 0x23, 0x0a, 0x23, 0x11, 0x93, 0x4f, 0xf0, 0xc8, 0x03, 0x03, 0xfb, 0x02, 0xf3, 0x03, 0xf1, 0x01, 0x03, 0x0c, 0x93, 0x23, 0x4b, 0xa0, 0xfb, 0x03, 0x01, 0x4f, 0xea, 0x91, 0x13, 0x4f, 0xf0, 0x05, 0x01, 0x08, 0x46, 0x03, 0xf1, 0x01, 0x03, 0x8c, 0x46, 0x0d, 0x93, 0x4f, 0xf0, 0x0b, 0x03, 0x03, 0xfb, 0x02, 0xf3, 0x03, 0xf1, 0x01, 0x03, 0x0e, 0x93, 0x02, 0xf1, 0x01, 0x03, 0x0f, 0x93, 0x07, 0xeb, 0x0e, 0x03, 0x12, 0x93, 0x05, 0xeb, 0x0e, 0x03, 0x14, 0x93, 0x8c, 0xbf, 0x33, 0x46, 0x06, 0x23, 0x03, 0x26, 0x08, 0x93, 0x17, 0x9b, 0x07, 0x93, 0x0c, 0x23, 0x09, 0x93, 0x0b, 0x46, 0x8b, 0xe7, 0x1b, 0x23, 0x08, 0x25, 0xcd, 0xe9, 0x13, 0x35, 0x0c, 0x23, 0x12, 0x93, 0x06, 0x23, 0x03, 0x20, 0x01, 0x25, 0x04, 0x21, 0x02, 0x26, 0x09, 0x93, 0x00, 0x23, 0x89, 0x46, 0xb4, 0x46, 0x86, 0x46, 0x08, 0x90, 0x0b, 0x95, 0xa8, 0x46, 0x07, 0x93, 0x11, 0x93, 0x06, 0x93, 0xcd, 0xe9, 0x0f, 0x33, 0xcd, 0xe9, 0x0d, 0x33, 0x0c, 0x93, 0x4c, 0xe6, 0x89, 0x46, 0x3b, 0xe7, 0x89, 0x88, 0x88, 0x88, 0xd3, 0x4d, 0x62, 0x10, 0xf8, 0xb5, 0x15, 0x46, 0x1d, 0x4a, 0x1c, 0x46, 0xa1, 0xfb, 0x02, 0x23, 0x1e, 0x09, 0x18, 0x23, 0x73, 0x43, 0x8b, 0x42, 0x30, 0xd0, 0x2b, 0x68, 0x08, 0x46, 0x9b, 0x07, 0x42, 0xbf, 0x23, 0x68, 0x43, 0xf4, 0x00, 0x23, 0x23, 0x60, 0xfd, 0xf7, 0x7d, 0xfb, 0x15, 0x49, 0xfd, 0xf7, 0x86, 0xfc, 0x07, 0x46, 0x30, 0x46, 0xfd, 0xf7, 0x76, 0xfb, 0x01, 0x46, 0x38, 0x46, 0xfd, 0xf7, 0xc0, 0xfa, 0x4f, 0xf0, 0x90, 0x41, 0xfd, 0xf7, 0xc6, 0xfb, 0xfd, 0xf7, 0x14, 0xfd, 0x20, 0x60, 0x14, 0x20, 0x21, 0x68, 0x21, 0xf0, 0x7f, 0x41, 0x21, 0xf4, 0x76, 0x01, 0x41, 0xf0, 0x60, 0x41, 0x41, 0xf4, 0xc0, 0x21, 0x21, 0x60, 0xfd, 0xf7, 0x5d, 0xfd, 0x2b, 0x68, 0x43, 0xf0, 0x80, 0x73, 0x2b, 0x60, 0x20, 0x68, 0xc0, 0xf3, 0x10, 0x00, 0xf8, 0xbd, 0x00, 0x20, 0xfc, 0xe7, 0xab, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0xc0, 0x41, 0x0b, 0x68, 0x10, 0xb5, 0x0c, 0x46, 0x9b, 0x07, 0x42, 0xbf, 0x13, 0x68, 0x43, 0xf4, 0x00, 0x23, 0x13, 0x60, 0xc3, 0x6d, 0xc3, 0xf3, 0x02, 0x53, 0x01, 0x3b, 0x04, 0x2b, 0x15, 0xd8, 0xdf, 0xe8, 0x03, 0xf0, 0x03, 0x0e, 0x10, 0x14, 0x12, 0x00, 0x09, 0x4b, 0x13, 0x60, 0x14, 0x20, 0xfd, 0xf7, 0x36, 0xfd, 0x23, 0x68, 0x00, 0x20, 0x43, 0xf0, 0x80, 0x73, 0x23, 0x60, 0x10, 0xbd, 0x05, 0x4b, 0xf3, 0xe7, 0x05, 0x4b, 0xf1, 0xe7, 0x05, 0x4b, 0xef, 0xe7, 0x05, 0x4b, 0xed, 0xe7, 0x00, 0xbf, 0xcc, 0xcc, 0x86, 0xe4, 0x99, 0x99, 0x06, 0xe9, 0x66, 0x66, 0x86, 0xed, 0x00, 0x00, 0x86, 0xf5, 0x33, 0x33, 0x06, 0xf2, 0x38, 0xb5, 0xcb, 0x6d, 0x19, 0x4c, 0xc3, 0xf3, 0x80, 0x13, 0x83, 0x42, 0x18, 0x4b, 0x0c, 0xbf, 0x0a, 0x68, 0xca, 0x6c, 0x21, 0x68, 0x52, 0x00, 0xa2, 0xfb, 0x03, 0x23, 0x15, 0x4a, 0x0a, 0x40, 0x42, 0xf0, 0x40, 0x42, 0x1d, 0x09, 0x69, 0x1e, 0x42, 0xea, 0x01, 0x22, 0x22, 0x60, 0x22, 0x68, 0x22, 0xf0, 0x00, 0x52, 0x22, 0x60, 0x22, 0x68, 0x42, 0xf0, 0x00, 0x52, 0x22, 0x60, 0x23, 0x68, 0xdb, 0x00, 0xfc, 0xd5, 0x14, 0x20, 0xfd, 0xf7, 0xf8, 0xfc, 0x23, 0x68, 0x18, 0x20, 0x0a, 0x4a, 0x68, 0x43, 0x43, 0xf0, 0x00, 0x63, 0x23, 0x60, 0x13, 0x68, 0x23, 0xf0, 0x03, 0x23, 0x23, 0xf0, 0x03, 0x03, 0x43, 0xf0, 0x00, 0x43, 0x13, 0x60, 0x38, 0xbd, 0x00, 0xbf, 0x10, 0x10, 0x00, 0x02, 0xab, 0xaa, 0xaa, 0xaa, 0xfc, 0x00, 0xf8, 0xff, 0x00, 0x18, 0x00, 0x02, 0xf8, 0xb5, 0x07, 0x46, 0x27, 0x4e, 0x0a, 0x20, 0x27, 0x4d, 0x33, 0x68, 0x27, 0x4c, 0x23, 0xf0, 0x80, 0x43, 0x33, 0x60, 0x2b, 0x68, 0x23, 0xf0, 0x01, 0x03, 0x2b, 0x60, 0x2b, 0x68, 0x23, 0xf4, 0x80, 0x33, 0x2b, 0x60, 0x23, 0x68, 0x23, 0xf0, 0x80, 0x43, 0x23, 0x60, 0x23, 0x68, 0x23, 0xf0, 0x00, 0x43, 0x23, 0x60, 0x23, 0x68, 0x43, 0xf0, 0x00, 0x63, 0x23, 0x60, 0xfd, 0xf7, 0xbf, 0xfc, 0x39, 0x46, 0x00, 0x20, 0xff, 0xf7, 0x9e, 0xff, 0x40, 0x08, 0x38, 0x60, 0x64, 0x20, 0xfd, 0xf7, 0xb6, 0xfc, 0xff, 0xf7, 0x05, 0xfa, 0x2b, 0x68, 0x05, 0x20, 0x43, 0xf4, 0x80, 0x33, 0x2b, 0x60, 0x33, 0x68, 0x43, 0xf0, 0x80, 0x43, 0x33, 0x60, 0x23, 0x68, 0x43, 0xf0, 0x80, 0x43, 0x23, 0x60, 0xfd, 0xf7, 0xa5, 0xfc, 0x2b, 0x68, 0x05, 0x20, 0x43, 0xf0, 0x01, 0x03, 0x2b, 0x60, 0x23, 0x68, 0x43, 0xf0, 0x00, 0x43, 0x23, 0x60, 0x23, 0x68, 0x43, 0xf0, 0x00, 0x63, 0x23, 0x60, 0xfd, 0xf7, 0x96, 0xfc, 0x07, 0x4b, 0x4f, 0xf4, 0x00, 0x42, 0x0a, 0x20, 0x1a, 0x60, 0xfd, 0xf7, 0x8f, 0xfc, 0x00, 0x20, 0xf8, 0xbd, 0x40, 0x15, 0x00, 0x02, 0x0c, 0x18, 0x00, 0x02, 0x00, 0x18, 0x00, 0x02, 0x0c, 0x30, 0x10, 0x03, 0x4e, 0x4a, 0x2d, 0xe9, 0xf0, 0x41, 0x4e, 0x4c, 0x13, 0x68, 0x45, 0x68, 0x41, 0x69, 0x23, 0xf4, 0x7c, 0x53, 0x43, 0xf4, 0x00, 0x53, 0x13, 0x60, 0x2a, 0x04, 0x23, 0x68, 0x11, 0xf0, 0x01, 0x07, 0x02, 0xf4, 0xe0, 0x22, 0xa5, 0xf1, 0x06, 0x05, 0x23, 0xf4, 0x7f, 0x03, 0x23, 0xf4, 0x70, 0x43, 0x43, 0xf4, 0x80, 0x03, 0x42, 0xea, 0x03, 0x02, 0x14, 0xbf, 0x00, 0x23, 0x4f, 0xf4, 0x80, 0x53, 0x01, 0x2d, 0x43, 0xea, 0x02, 0x03, 0x89, 0xbf, 0xc2, 0x6d, 0x43, 0xf4, 0x00, 0x23, 0x92, 0x03, 0x02, 0xf4, 0x00, 0x22, 0x88, 0xbf, 0x13, 0x43, 0x23, 0x60, 0xcb, 0x05, 0x4f, 0xea, 0x11, 0x34, 0x34, 0xd5, 0x04, 0xf0, 0x0f, 0x03, 0x01, 0x2b, 0x0c, 0xbf, 0x02, 0x21, 0x01, 0x21, 0x09, 0x01, 0x06, 0x69, 0x33, 0x4d, 0x04, 0xf0, 0x03, 0x04, 0xdf, 0xf8, 0xd8, 0xc0, 0x04, 0x31, 0x04, 0x22, 0x2b, 0x68, 0x03, 0xea, 0x0c, 0x0e, 0x02, 0xf1, 0x08, 0x03, 0x26, 0xfa, 0x03, 0xf3, 0x4e, 0xea, 0x04, 0x0e, 0x9b, 0x00, 0x03, 0xf0, 0x04, 0x03, 0x43, 0xea, 0x0e, 0x0e, 0x26, 0xfa, 0x02, 0xf3, 0x01, 0x3b, 0x1b, 0x01, 0xdb, 0xb2, 0x43, 0xea, 0x0e, 0x03, 0xa2, 0xf1, 0x04, 0x0e, 0x26, 0xfa, 0x0e, 0xfe, 0x0e, 0xf0, 0x0f, 0x0e, 0x0e, 0xf1, 0xff, 0x3e, 0xbe, 0xf1, 0x07, 0x0f, 0x39, 0xd8, 0xdf, 0xe8, 0x0e, 0xf0, 0x35, 0x32, 0x38, 0x2f, 0x38, 0x38, 0x38, 0x06, 0x01, 0x21, 0xce, 0xe7, 0x43, 0xf4, 0x20, 0x63, 0x10, 0x32, 0x45, 0xf8, 0x04, 0x3b, 0x91, 0x42, 0xd0, 0xd1, 0x18, 0x4b, 0x40, 0xf2, 0x03, 0x32, 0x1b, 0x68, 0x13, 0xf0, 0x01, 0x0f, 0x40, 0xf2, 0x01, 0x23, 0x18, 0xbf, 0x13, 0x46, 0x14, 0x4a, 0x13, 0x60, 0x17, 0xb1, 0x13, 0x4b, 0x00, 0x22, 0x1a, 0x60, 0x81, 0x6b, 0x69, 0xb1, 0x0f, 0x4b, 0x4a, 0x06, 0x02, 0xf0, 0xc0, 0x62, 0x18, 0x68, 0x02, 0x43, 0x1a, 0x60, 0x0e, 0x4a, 0x0f, 0x4b, 0x10, 0x68, 0x03, 0xea, 0x81, 0x23, 0x03, 0x43, 0x13, 0x60, 0xbd, 0xe8, 0xf0, 0x81, 0x43, 0xf4, 0x10, 0x63, 0xd5, 0xe7, 0x43, 0xf4, 0x00, 0x63, 0xd2, 0xe7, 0x43, 0xf4, 0xe0, 0x63, 0xcf, 0xe7, 0x43, 0xf4, 0xc0, 0x63, 0xcc, 0xe7, 0x00, 0xbf, 0x08, 0x20, 0x10, 0x03, 0x00, 0x20, 0x10, 0x03, 0x20, 0x31, 0x10, 0x03, 0xc4, 0x33, 0x10, 0x03, 0x04, 0x20, 0x10, 0x03, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xb6, 0x4b, 0x16, 0x22, 0x70, 0xb5, 0xbc, 0xb0, 0x06, 0x46, 0x00, 0x21, 0x68, 0x46, 0x1d, 0x68, 0x9c, 0x6a, 0xfd, 0xf7, 0x2f, 0xff, 0x16, 0x22, 0xb1, 0x49, 0x06, 0xa8, 0xc4, 0xf3, 0x03, 0x24, 0xfd, 0xf7, 0x2e, 0xff, 0x16, 0x22, 0xaf, 0x49, 0x0c, 0xa8, 0xc5, 0xf3, 0x07, 0x25, 0xfd, 0xf7, 0x27, 0xff, 0x16, 0x22, 0xac, 0x49, 0x12, 0xa8, 0xfd, 0xf7, 0x22, 0xff, 0x16, 0x22, 0xab, 0x49, 0x18, 0xa8, 0xfd, 0xf7, 0x1d, 0xff, 0x16, 0x22, 0xa9, 0x49, 0x1e, 0xa8, 0xfd, 0xf7, 0x18, 0xff, 0x16, 0x22, 0xa8, 0x49, 0x24, 0xa8, 0xfd, 0xf7, 0x13, 0xff, 0x16, 0x22, 0xa6, 0x49, 0x2a, 0xa8, 0xfd, 0xf7, 0x0e, 0xff, 0x16, 0x22, 0xa5, 0x49, 0x30, 0xa8, 0xfd, 0xf7, 0x09, 0xff, 0x16, 0x22, 0xa3, 0x49, 0x36, 0xa8, 0xfd, 0xf7, 0x04, 0xff, 0x21, 0x46, 0xa2, 0x48, 0xfe, 0xf7, 0xac, 0xf8, 0xf3, 0x6d, 0x13, 0xf4, 0x40, 0x2f, 0x26, 0xd1, 0x50, 0x2d, 0x24, 0xd0, 0x7c, 0x2d, 0x22, 0xd0, 0xa4, 0xf1, 0x08, 0x03, 0x06, 0x2b, 0x1b, 0xd8, 0xdf, 0xe8, 0x03, 0xf0, 0x11, 0x14, 0x17, 0x1a, 0x04, 0x09, 0x09, 0x00, 0x16, 0x22, 0x06, 0xa9, 0x68, 0x46, 0xff, 0xf7, 0x77, 0xf8, 0x73, 0x68, 0x02, 0x2b, 0x21, 0xd0, 0x03, 0x2b, 0x00, 0xf0, 0xa1, 0x80, 0x3c, 0xb0, 0x70, 0xbd, 0x16, 0x22, 0x0c, 0xa9, 0xf1, 0xe7, 0x16, 0x22, 0x12, 0xa9, 0xee, 0xe7, 0x16, 0x22, 0x1e, 0xa9, 0xeb, 0xe7, 0x16, 0x22, 0x18, 0xa9, 0xe8, 0xe7, 0x59, 0x03, 0x01, 0xd4, 0x50, 0x2d, 0x04, 0xd1, 0x16, 0x22, 0x2a, 0xa9, 0x68, 0x46, 0xff, 0xf7, 0x5a, 0xf8, 0xf3, 0x6d, 0x1a, 0x03, 0x01, 0xd4, 0x7c, 0x2d, 0xdd, 0xd1, 0x16, 0x22, 0x30, 0xa9, 0xd7, 0xe7, 0xf3, 0x6d, 0x1b, 0x03, 0x01, 0xd4, 0x7c, 0x2d, 0x73, 0xd1, 0x16, 0x22, 0x36, 0xa9, 0x68, 0x46, 0xff, 0xf7, 0x48, 0xf8, 0x9d, 0xf8, 0x01, 0x30, 0x9d, 0xf8, 0x00, 0x20, 0x9b, 0x02, 0x43, 0xea, 0x42, 0x13, 0x9d, 0xf8, 0x02, 0x20, 0x43, 0xea, 0xc2, 0x33, 0x9d, 0xf8, 0x03, 0x20, 0x43, 0xea, 0x02, 0x53, 0x9d, 0xf8, 0x04, 0x20, 0x43, 0xea, 0x42, 0x63, 0x75, 0x4a, 0x13, 0x60, 0x9d, 0xf8, 0x07, 0x30, 0x9d, 0xf8, 0x06, 0x10, 0x9b, 0x02, 0x43, 0xea, 0x41, 0x13, 0x9d, 0xf8, 0x05, 0x10, 0x0b, 0x43, 0x9d, 0xf8, 0x08, 0x10, 0x43, 0xea, 0xc1, 0x33, 0x9d, 0xf8, 0x09, 0x10, 0x43, 0xea, 0x01, 0x53, 0x9d, 0xf8, 0x0a, 0x10, 0x43, 0xea, 0x41, 0x63, 0x6a, 0x49, 0x0b, 0x60, 0x9d, 0xf8, 0x0d, 0x30, 0x9d, 0xf8, 0x0c, 0x10, 0x9b, 0x02, 0x43, 0xea, 0x41, 0x13, 0x9d, 0xf8, 0x0b, 0x10, 0x0b, 0x43, 0x9d, 0xf8, 0x0e, 0x10, 0x43, 0xea, 0xc1, 0x33, 0x9d, 0xf8, 0x0f, 0x10, 0x43, 0xea, 0x01, 0x53, 0x61, 0x49, 0x0b, 0x60, 0x9d, 0xf8, 0x12, 0x30, 0x9d, 0xf8, 0x11, 0x10, 0x9b, 0x02, 0x43, 0xea, 0x41, 0x13, 0x9d, 0xf8, 0x10, 0x10, 0x0b, 0x43, 0x9d, 0xf8, 0x13, 0x10, 0x43, 0xea, 0xc1, 0x33, 0x9d, 0xf8, 0x14, 0x10, 0x43, 0xea, 0x01, 0x53, 0x9d, 0xf8, 0x15, 0x10, 0x43, 0xea, 0x41, 0x63, 0x56, 0x49, 0x0b, 0x60, 0x9d, 0xf8, 0x01, 0x30, 0x9d, 0xf8, 0x00, 0x10, 0x9b, 0x02, 0x43, 0xea, 0x41, 0x13, 0x9d, 0xf8, 0x02, 0x10, 0x43, 0xf0, 0x01, 0x03, 0x43, 0xea, 0xc1, 0x33, 0x9d, 0xf8, 0x03, 0x10, 0x43, 0xea, 0x01, 0x53, 0x9d, 0xf8, 0x04, 0x10, 0x43, 0xea, 0x41, 0x63, 0x13, 0x60, 0x0d, 0x3c, 0x01, 0x2c, 0x3f, 0xf6, 0x64, 0xaf, 0x16, 0x22, 0x24, 0xa9, 0x68, 0x46, 0xfe, 0xf7, 0xd0, 0xff, 0x9d, 0xf8, 0x01, 0x30, 0x9d, 0xf8, 0x00, 0x20, 0x9b, 0x02, 0x43, 0xea, 0x42, 0x13, 0x9d, 0xf8, 0x02, 0x20, 0x43, 0xea, 0xc2, 0x33, 0x9d, 0xf8, 0x03, 0x20, 0x43, 0xea, 0x02, 0x53, 0x9d, 0xf8, 0x04, 0x20, 0x43, 0xea, 0x42, 0x63, 0x39, 0x4a, 0x13, 0x60, 0x9d, 0xf8, 0x07, 0x30, 0x9d, 0xf8, 0x06, 0x10, 0x9b, 0x02, 0x43, 0xea, 0x41, 0x13, 0x9d, 0xf8, 0x05, 0x10, 0x0b, 0x43, 0x9d, 0xf8, 0x08, 0x10, 0x43, 0xea, 0xc1, 0x33, 0x9d, 0xf8, 0x09, 0x10, 0x43, 0xea, 0x01, 0x53, 0x9d, 0xf8, 0x0a, 0x10, 0x43, 0xea, 0x41, 0x63, 0x2e, 0x49, 0x0b, 0x60, 0x9d, 0xf8, 0x0d, 0x30, 0x9d, 0xf8, 0x0c, 0x10, 0x9b, 0x02, 0x43, 0xea, 0x41, 0x13, 0x9d, 0xf8, 0x0b, 0x10, 0x0b, 0x43, 0x9d, 0xf8, 0x0e, 0x10, 0x43, 0xea, 0xc1, 0x33, 0x9d, 0xf8, 0x0f, 0x10, 0x43, 0xea, 0x01, 0x53, 0x25, 0x49, 0x0b, 0x60, 0x9d, 0xf8, 0x12, 0x30, 0x9d, 0xf8, 0x11, 0x10, 0x9b, 0x02, 0x43, 0xea, 0x41, 0x13, 0x9d, 0xf8, 0x10, 0x10, 0x0b, 0x43, 0x9d, 0xf8, 0x13, 0x10, 0x43, 0xea, 0xc1, 0x33, 0x9d, 0xf8, 0x14, 0x10, 0x43, 0xea, 0x01, 0x53, 0x9d, 0xf8, 0x15, 0x10, 0x43, 0xea, 0x41, 0x63, 0x1a, 0x49, 0x0b, 0x60, 0x9d, 0xf8, 0x01, 0x30, 0x9d, 0xf8, 0x00, 0x10, 0x9b, 0x02, 0x43, 0xea, 0x41, 0x13, 0x9d, 0xf8, 0x02, 0x10, 0x43, 0xf0, 0x01, 0x03, 0x43, 0xea, 0xc1, 0x33, 0x9d, 0xf8, 0x03, 0x10, 0x43, 0xea, 0x01, 0x53, 0x9d, 0xf8, 0x04, 0x10, 0x43, 0xea, 0x41, 0x63, 0x13, 0x60, 0xee, 0xe6, 0x00, 0x62, 0x00, 0x03, 0x10, 0xd4, 0x02, 0x00, 0x26, 0xd4, 0x02, 0x00, 0x3c, 0xd4, 0x02, 0x00, 0x52, 0xd4, 0x02, 0x00, 0x68, 0xd4, 0x02, 0x00, 0x7e, 0xd4, 0x02, 0x00, 0x94, 0xd4, 0x02, 0x00, 0xaa, 0xd4, 0x02, 0x00, 0xc0, 0xd4, 0x02, 0x00, 0x21, 0xd7, 0x02, 0x00, 0x00, 0x25, 0x10, 0x03, 0x04, 0x25, 0x10, 0x03, 0x08, 0x25, 0x10, 0x03, 0x0c, 0x25, 0x10, 0x03, 0xa9, 0x48, 0x2d, 0xe9, 0xf8, 0x43, 0x0e, 0x46, 0xcc, 0x6d, 0x09, 0x68, 0x02, 0x68, 0xc4, 0xf3, 0x81, 0x04, 0xa6, 0x4d, 0xb1, 0xf5, 0x28, 0x7f, 0x4f, 0xea, 0x51, 0x03, 0x22, 0xf4, 0x7f, 0x62, 0x22, 0xf0, 0x0f, 0x02, 0x03, 0xf1, 0xff, 0x33, 0x43, 0xea, 0x02, 0x03, 0xf2, 0x68, 0x03, 0x60, 0x00, 0xf5, 0x99, 0x50, 0x2b, 0x68, 0x00, 0xf1, 0x18, 0x00, 0x6f, 0xea, 0x02, 0x02, 0x4f, 0xea, 0x42, 0x12, 0x23, 0xf4, 0x70, 0x63, 0x43, 0xf4, 0x40, 0x73, 0x02, 0xf0, 0x20, 0x02, 0x2b, 0x60, 0x03, 0x68, 0x23, 0xf0, 0x30, 0x03, 0x43, 0xea, 0x02, 0x03, 0x8b, 0xbf, 0x23, 0xf4, 0x76, 0x43, 0x23, 0xf4, 0x70, 0x43, 0x23, 0xf0, 0x1e, 0x03, 0x23, 0xf0, 0x1e, 0x03, 0x88, 0xbf, 0x43, 0xf4, 0x80, 0x63, 0xb1, 0xf5, 0x28, 0x7f, 0x03, 0x60, 0x8d, 0x48, 0x03, 0x68, 0x23, 0xf0, 0x30, 0x03, 0x43, 0xea, 0x02, 0x03, 0x8b, 0x4a, 0x8b, 0xbf, 0x23, 0xf4, 0x76, 0x43, 0x23, 0xf4, 0x70, 0x43, 0x23, 0xf0, 0x1e, 0x03, 0x23, 0xf0, 0x1e, 0x03, 0x88, 0xbf, 0x43, 0xf4, 0x80, 0x63, 0x03, 0x60, 0x30, 0x46, 0x13, 0x68, 0x43, 0xf0, 0x02, 0x03, 0x13, 0x60, 0xfe, 0xf7, 0x55, 0xff, 0x01, 0x2c, 0x0e, 0xd0, 0x02, 0x2c, 0x00, 0xf0, 0xcd, 0x80, 0x2b, 0x68, 0x0a, 0x20, 0x23, 0xf0, 0x40, 0x03, 0x2b, 0x60, 0xfd, 0xf7, 0xea, 0xf9, 0x2b, 0x68, 0x43, 0xf0, 0xc0, 0x03, 0x2b, 0x60, 0x0a, 0xe0, 0x2b, 0x68, 0x79, 0x4a, 0x23, 0xf0, 0xc0, 0x03, 0x2b, 0x60, 0x13, 0x68, 0x23, 0xf4, 0x83, 0x73, 0x23, 0xf0, 0x01, 0x03, 0x13, 0x60, 0x73, 0x68, 0x06, 0x3b, 0x01, 0x2b, 0x0f, 0xd8, 0x73, 0x4a, 0x01, 0x2c, 0x13, 0x68, 0x0b, 0xbf, 0x23, 0xf0, 0x00, 0x63, 0x23, 0xf0, 0xee, 0x43, 0x23, 0xf0, 0xc0, 0x03, 0x43, 0xf0, 0x08, 0x53, 0x08, 0xbf, 0x43, 0xf0, 0x00, 0x43, 0x13, 0x60, 0x73, 0x69, 0x6b, 0x4a, 0x13, 0xf4, 0x80, 0x5f, 0x13, 0xbf, 0x13, 0x68, 0x11, 0x68, 0x69, 0x4b, 0x03, 0xf0, 0x70, 0x43, 0x15, 0xbf, 0x43, 0xf0, 0x40, 0x73, 0x01, 0xf0, 0x70, 0x41, 0x43, 0xf0, 0x01, 0x03, 0x0b, 0x43, 0x13, 0x60, 0x64, 0x4b, 0x1b, 0x68, 0xd9, 0x03, 0x07, 0xd5, 0x63, 0x4a, 0x0a, 0x20, 0x13, 0x68, 0x23, 0xf0, 0x02, 0x03, 0x13, 0x60, 0xfd, 0xf7, 0xa7, 0xf9, 0x60, 0x49, 0x01, 0x2c, 0x60, 0x4f, 0x0b, 0x68, 0x03, 0xf0, 0x7c, 0x43, 0x43, 0xf0, 0x00, 0x72, 0xb3, 0x68, 0x23, 0xf0, 0x7f, 0x43, 0x43, 0xea, 0x02, 0x03, 0x0b, 0x60, 0x40, 0xf0, 0x8f, 0x80, 0x5a, 0x4b, 0x52, 0x22, 0x1a, 0x60, 0x53, 0x22, 0x1a, 0x60, 0x3b, 0x68, 0xda, 0x07, 0xfc, 0xd5, 0x0a, 0x20, 0xfd, 0xf7, 0x8c, 0xf9, 0x73, 0x68, 0x03, 0x2b, 0x14, 0xbf, 0x4f, 0xf4, 0xa4, 0x63, 0x4f, 0xf4, 0xb4, 0x63, 0x51, 0x4a, 0x0a, 0x20, 0x13, 0x60, 0x43, 0xf0, 0x01, 0x03, 0x13, 0x60, 0xfd, 0xf7, 0x7d, 0xf9, 0x3b, 0x68, 0xd8, 0x07, 0xfc, 0xd5, 0x48, 0x4b, 0x1b, 0x68, 0xd9, 0x03, 0x43, 0xd5, 0x4b, 0x4e, 0x0a, 0x20, 0x33, 0x68, 0x23, 0xf0, 0xc0, 0x63, 0x43, 0xf0, 0x80, 0x63, 0x33, 0x60, 0xfd, 0xf7, 0x6c, 0xf9, 0x47, 0x4b, 0x1a, 0x68, 0x98, 0x46, 0x42, 0xf0, 0x01, 0x02, 0x1a, 0x60, 0x45, 0x4a, 0x91, 0x46, 0x13, 0x68, 0x03, 0xf0, 0x07, 0x03, 0x03, 0x2b, 0xfa, 0xd1, 0x3b, 0x4a, 0x0a, 0x20, 0x13, 0x68, 0x23, 0xf0, 0x01, 0x03, 0x13, 0x60, 0xfd, 0xf7, 0x57, 0xf9, 0xd8, 0xf8, 0x00, 0x30, 0x23, 0xf0, 0x01, 0x03, 0xc8, 0xf8, 0x00, 0x30, 0xd9, 0xf8, 0x00, 0x30, 0x03, 0xf0, 0x07, 0x03, 0x01, 0x2b, 0xf9, 0xd1, 0x0f, 0x20, 0xfd, 0xf7, 0x48, 0xf9, 0x01, 0x2c, 0x13, 0xd1, 0x2b, 0x68, 0x20, 0x46, 0x23, 0xf0, 0xc0, 0x03, 0x2b, 0x60, 0x33, 0x68, 0x23, 0xf0, 0xc0, 0x63, 0x43, 0xf0, 0x00, 0x73, 0x33, 0x60, 0xfd, 0xf7, 0x39, 0xf9, 0x2b, 0x4b, 0x40, 0xf2, 0x01, 0x42, 0x1a, 0x60, 0x3b, 0x68, 0xda, 0x07, 0xfc, 0xd5, 0x3d, 0x68, 0x15, 0xf0, 0x7f, 0x6f, 0x58, 0xd0, 0x15, 0xf4, 0x80, 0x15, 0x56, 0xd0, 0x00, 0x25, 0x28, 0x48, 0xfd, 0xf7, 0x3a, 0xfe, 0x28, 0x46, 0xbd, 0xe8, 0xf8, 0x83, 0x2b, 0x68, 0x18, 0x49, 0x23, 0xf0, 0xc0, 0x03, 0x43, 0xf0, 0x80, 0x03, 0x2b, 0x60, 0x22, 0x4b, 0x1b, 0x68, 0x0a, 0x68, 0xc3, 0xf3, 0x04, 0x43, 0x22, 0xf4, 0x83, 0x72, 0x02, 0x3b, 0x22, 0xf0, 0x01, 0x02, 0x42, 0xf4, 0x80, 0x72, 0x13, 0x43, 0x10, 0x4a, 0x0b, 0x60, 0x13, 0x68, 0x23, 0xf0, 0x00, 0x43, 0x43, 0xf0, 0x00, 0x63, 0x2c, 0xe7, 0x0f, 0x4b, 0x1b, 0x68, 0xdb, 0x03, 0x07, 0xd4, 0x73, 0x68, 0x03, 0x2b, 0x14, 0xbf, 0x4f, 0xf4, 0xb9, 0x73, 0x4f, 0xf4, 0xf9, 0x73, 0x76, 0xe7, 0x62, 0x23, 0x74, 0xe7, 0x00, 0xbf, 0x0c, 0x20, 0x10, 0x03, 0x08, 0x31, 0x10, 0x03, 0xc4, 0x33, 0x10, 0x03, 0x08, 0x32, 0x10, 0x03, 0xbc, 0x30, 0x10, 0x03, 0x1c, 0x31, 0x10, 0x03, 0xc0, 0x30, 0x10, 0x03, 0x87, 0x30, 0x00, 0x01, 0xd4, 0x05, 0x00, 0x07, 0x50, 0x02, 0x01, 0x07, 0x40, 0x31, 0x10, 0x03, 0x10, 0x30, 0x10, 0x03, 0x00, 0x30, 0x10, 0x03, 0x0c, 0x31, 0x10, 0x03, 0x04, 0x30, 0x10, 0x03, 0x18, 0x30, 0x10, 0x03, 0x37, 0xd7, 0x02, 0x00, 0x60, 0x30, 0x10, 0x03, 0x01, 0x25, 0x14, 0x4a, 0x13, 0x68, 0xdb, 0x07, 0xfc, 0xd5, 0x13, 0x4e, 0x0a, 0x20, 0x33, 0x68, 0x43, 0xf0, 0x00, 0x43, 0x33, 0x60, 0xfd, 0xf7, 0xc8, 0xf8, 0x33, 0x68, 0x0a, 0x20, 0x23, 0xf0, 0x00, 0x43, 0x33, 0x60, 0xfd, 0xf7, 0xc1, 0xf8, 0x0c, 0x4a, 0x0a, 0x20, 0x13, 0x68, 0x43, 0xf0, 0x00, 0x43, 0x13, 0x60, 0xfd, 0xf7, 0xb9, 0xf8, 0x09, 0x4a, 0x01, 0x2c, 0x13, 0x68, 0x23, 0xf0, 0xc0, 0x63, 0x13, 0x60, 0x01, 0xbf, 0x13, 0x69, 0x23, 0xf0, 0xc0, 0x03, 0x43, 0xf0, 0x40, 0x03, 0x13, 0x61, 0x83, 0xe7, 0x18, 0x30, 0x10, 0x03, 0x8c, 0x30, 0x10, 0x03, 0x14, 0x20, 0x10, 0x03, 0x0c, 0x31, 0x10, 0x03, 0x12, 0x4b, 0x01, 0x21, 0x10, 0xb5, 0x1b, 0x68, 0xc3, 0xf3, 0x03, 0x12, 0xc3, 0xf3, 0x03, 0x20, 0x10, 0x44, 0xc3, 0xf3, 0x81, 0x02, 0x0e, 0x38, 0x13, 0xf0, 0x03, 0x03, 0x10, 0x44, 0x01, 0xfa, 0x00, 0xf0, 0x10, 0xd0, 0x0a, 0x4b, 0x1a, 0x68, 0x93, 0x07, 0x1f, 0xbf, 0xc2, 0xf3, 0x03, 0x23, 0xc2, 0xf3, 0x03, 0x14, 0x1b, 0x19, 0xc2, 0xf3, 0x81, 0x02, 0x17, 0xbf, 0x0e, 0x3b, 0x03, 0x46, 0x9b, 0x18, 0x01, 0xfa, 0x03, 0xf3, 0x18, 0x44, 0x10, 0xbd, 0x00, 0xbf, 0x00, 0x20, 0x10, 0x03, 0x04, 0x20, 0x10, 0x03, 0x20, 0x4b, 0x10, 0xb5, 0x1b, 0x68, 0x5b, 0x02, 0x13, 0xd5, 0x1f, 0x4b, 0x19, 0x68, 0xd3, 0xf8, 0x80, 0x40, 0xc1, 0xf3, 0x01, 0x61, 0x02, 0x29, 0xc4, 0xf3, 0x01, 0x64, 0x19, 0xd1, 0x43, 0x69, 0x02, 0x2c, 0x23, 0xf4, 0x70, 0x43, 0x23, 0xf0, 0x0f, 0x03, 0x0d, 0xd1, 0x43, 0x61, 0x17, 0x48, 0x06, 0xe0, 0x43, 0x69, 0x23, 0xf0, 0x0f, 0x03, 0x43, 0xf4, 0x80, 0x53, 0x43, 0x61, 0x14, 0x48, 0xfd, 0xf7, 0x6a, 0xfd, 0x01, 0x20, 0x10, 0xbd, 0x43, 0xf0, 0x01, 0x03, 0x43, 0x61, 0x11, 0x48, 0xf6, 0xe7, 0x49, 0xb9, 0x43, 0x69, 0x23, 0xf0, 0x0f, 0x03, 0x43, 0xf4, 0x80, 0x53, 0x43, 0xf0, 0x01, 0x03, 0x43, 0x61, 0x0c, 0x48, 0xeb, 0xe7, 0xc0, 0x6d, 0x10, 0xf0, 0x00, 0x50, 0xea, 0xd0, 0x0a, 0x48, 0xfd, 0xf7, 0x51, 0xfd, 0x21, 0x46, 0x09, 0x48, 0xfd, 0xf7, 0x4d, 0xfd, 0x00, 0x20, 0xe1, 0xe7, 0x00, 0xbf, 0x10, 0x30, 0x10, 0x03, 0x48, 0x33, 0x10, 0x03, 0x92, 0xd7, 0x02, 0x00, 0x6e, 0xd7, 0x02, 0x00, 0xb9, 0xd7, 0x02, 0x00, 0xe0, 0xd7, 0x02, 0x00, 0x05, 0xd8, 0x02, 0x00, 0x13, 0xd8, 0x02, 0x00, 0x40, 0x08, 0x2d, 0xe9, 0xf8, 0x43, 0x1e, 0x4a, 0x4f, 0xf0, 0x80, 0x43, 0x00, 0x05, 0x00, 0x24, 0x1c, 0x4d, 0x8c, 0x42, 0x0b, 0xd1, 0x1b, 0x4a, 0x4f, 0xf0, 0x80, 0x46, 0x18, 0x49, 0x00, 0x25, 0xac, 0x42, 0x0b, 0xd1, 0x18, 0x48, 0xfd, 0xf7, 0x25, 0xfd, 0x00, 0x20, 0x17, 0xe0, 0xa6, 0x18, 0x1e, 0x60, 0x66, 0x19, 0xc6, 0x50, 0x01, 0x34, 0x04, 0x33, 0xea, 0xe7, 0x87, 0x59, 0x05, 0xeb, 0x02, 0x08, 0x00, 0xeb, 0x06, 0x09, 0xb8, 0x45, 0x0b, 0xd0, 0x10, 0x48, 0xfd, 0xf7, 0x12, 0xfd, 0x4b, 0x46, 0x42, 0x46, 0x39, 0x46, 0x0e, 0x48, 0xfd, 0xf7, 0x0c, 0xfd, 0x01, 0x20, 0xbd, 0xe8, 0xf8, 0x83, 0x33, 0x46, 0x05, 0xeb, 0x01, 0x08, 0x53, 0xf8, 0x04, 0x7b, 0xb8, 0x45, 0x04, 0xd0, 0x06, 0x48, 0xfd, 0xf7, 0xff, 0xfc, 0x33, 0x46, 0xeb, 0xe7, 0x01, 0x35, 0x1e, 0x46, 0xcf, 0xe7, 0x67, 0x45, 0x23, 0x01, 0x98, 0xba, 0xdc, 0xfe, 0x51, 0xd8, 0x02, 0x00, 0x21, 0xd8, 0x02, 0x00, 0x39, 0xd8, 0x02, 0x00, 0xc2, 0x6d, 0x10, 0xb5, 0x91, 0x03, 0x10, 0xd4, 0x08, 0x49, 0xc4, 0x6b, 0x0b, 0x68, 0x03, 0xf0, 0x80, 0x33, 0x23, 0x43, 0x0b, 0x60, 0xd3, 0x03, 0x07, 0xd4, 0x4a, 0x68, 0x03, 0x6c, 0x22, 0xf0, 0x7f, 0x02, 0x03, 0xf0, 0x7f, 0x03, 0x13, 0x43, 0x4b, 0x60, 0x10, 0xbd, 0x10, 0x31, 0x10, 0x03, 0x10, 0xb5, 0x04, 0x46, 0xff, 0xf7, 0xe2, 0xfa, 0x20, 0x46, 0xff, 0xf7, 0xe1, 0xff, 0xff, 0xf7, 0x37, 0xfb, 0x20, 0x46, 0xff, 0xf7, 0xe0, 0xfb, 0x20, 0x46, 0xfe, 0xf7, 0x61, 0xfe, 0x21, 0x46, 0x00, 0x20, 0xbd, 0xe8, 0x10, 0x40, 0xff, 0xf7, 0x63, 0xbd, 0x00, 0x00, 0x2d, 0xe9, 0xf7, 0x4f, 0x07, 0x46, 0xff, 0xf7, 0xe5, 0xff, 0x04, 0x46, 0x30, 0xb9, 0x95, 0x48, 0xfd, 0xf7, 0xb8, 0xfc, 0x20, 0x46, 0x03, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x7b, 0x69, 0x4f, 0xf0, 0x80, 0x46, 0xdf, 0xf8, 0x5c, 0xa2, 0x00, 0x25, 0xb0, 0x46, 0xc3, 0xf3, 0x03, 0x33, 0x01, 0x2b, 0x0c, 0xbf, 0x02, 0x23, 0x01, 0x23, 0x01, 0x93, 0x42, 0x46, 0x00, 0x23, 0x6f, 0xea, 0x08, 0x00, 0xdc, 0x07, 0x58, 0xbf, 0xa0, 0xeb, 0x83, 0x01, 0x03, 0xf1, 0x01, 0x03, 0x48, 0xbf, 0x11, 0x46, 0x40, 0x2b, 0x42, 0xf8, 0x04, 0x1b, 0xf3, 0xd1, 0x05, 0xf5, 0x44, 0x04, 0x04, 0xf5, 0x00, 0x64, 0xa4, 0x00, 0x23, 0x68, 0x23, 0xf4, 0x70, 0x63, 0x23, 0xf0, 0x0c, 0x03, 0x43, 0xf4, 0xde, 0x63, 0x23, 0x60, 0x22, 0x68, 0x93, 0x42, 0xfc, 0xd1, 0x4f, 0xf0, 0x0b, 0x09, 0x4f, 0xf0, 0x01, 0x0c, 0x6f, 0xea, 0x06, 0x0e, 0x09, 0xf1, 0x0b, 0x03, 0x31, 0x46, 0x0c, 0xfa, 0x03, 0xf3, 0x00, 0x22, 0x43, 0x44, 0x9b, 0x1b, 0xd0, 0x07, 0x53, 0xf8, 0x01, 0xb0, 0x54, 0xbf, 0xae, 0xeb, 0x82, 0x00, 0x08, 0x46, 0x83, 0x45, 0x40, 0xf0, 0xd0, 0x80, 0x01, 0x32, 0x04, 0x31, 0x40, 0x2a, 0xf1, 0xd1, 0x4f, 0xea, 0x05, 0x1b, 0x4a, 0x46, 0x29, 0x46, 0x6b, 0x48, 0xfd, 0xf7, 0x63, 0xfc, 0x0b, 0xf1, 0x04, 0x02, 0xff, 0x23, 0x03, 0xfa, 0x02, 0xf1, 0x3b, 0x69, 0x09, 0xfa, 0x02, 0xf9, 0x01, 0x2d, 0x23, 0xea, 0x01, 0x03, 0x43, 0xea, 0x09, 0x03, 0x3b, 0x61, 0x0a, 0xd1, 0x63, 0x4a, 0x4f, 0xf0, 0x81, 0x48, 0x13, 0x68, 0x03, 0xea, 0x0a, 0x03, 0x43, 0xf4, 0xd4, 0x63, 0x43, 0xf0, 0x04, 0x03, 0x13, 0x60, 0x23, 0x68, 0x03, 0xea, 0x0a, 0x03, 0x43, 0xf4, 0xd4, 0x63, 0x43, 0xf0, 0x04, 0x03, 0x23, 0x60, 0x22, 0x68, 0x9a, 0x42, 0xfc, 0xd1, 0x08, 0xf5, 0x00, 0x62, 0x00, 0x23, 0x6f, 0xea, 0x06, 0x0c, 0x98, 0x00, 0x13, 0xf0, 0x01, 0x0f, 0x06, 0xeb, 0x00, 0x01, 0x08, 0xbf, 0xac, 0xeb, 0x00, 0x01, 0x10, 0x68, 0x88, 0x42, 0x40, 0xf0, 0x8a, 0x80, 0x01, 0x33, 0x04, 0x32, 0x40, 0x2b, 0xef, 0xd1, 0x4f, 0xf0, 0x00, 0x09, 0x09, 0xf1, 0x01, 0x02, 0x29, 0x46, 0x92, 0x00, 0x4c, 0x48, 0xfd, 0xf7, 0x20, 0xfc, 0x0b, 0xf1, 0x0c, 0x01, 0x0f, 0x23, 0x03, 0xfa, 0x01, 0xf2, 0x3b, 0x69, 0x09, 0xfa, 0x01, 0xf9, 0x01, 0x2d, 0x23, 0xea, 0x02, 0x03, 0x43, 0xea, 0x09, 0x03, 0x3b, 0x61, 0x08, 0xd1, 0x42, 0x4a, 0x4f, 0xf0, 0x88, 0x48, 0x13, 0x68, 0x03, 0xea, 0x0a, 0x03, 0x43, 0xf4, 0x2a, 0x63, 0x13, 0x60, 0x23, 0x68, 0x03, 0xea, 0x0a, 0x03, 0x43, 0xf4, 0x2a, 0x63, 0x23, 0x60, 0x22, 0x68, 0x9a, 0x42, 0xfc, 0xd1, 0x09, 0x23, 0x4f, 0xf0, 0x01, 0x0c, 0x6f, 0xea, 0x06, 0x0e, 0x0c, 0xfa, 0x03, 0xf1, 0x30, 0x46, 0x00, 0x22, 0x41, 0x44, 0x89, 0x1b, 0xd4, 0x07, 0x51, 0xf8, 0x00, 0x90, 0x54, 0xbf, 0xae, 0xeb, 0x82, 0x04, 0x04, 0x46, 0xa1, 0x45, 0x55, 0xd1, 0x01, 0x32, 0x04, 0x30, 0x40, 0x2a, 0xf2, 0xd1, 0x0d, 0x2b, 0x01, 0xd0, 0x09, 0x2b, 0x42, 0xd0, 0x0a, 0x3b, 0x01, 0x24, 0x9c, 0x40, 0x22, 0x46, 0x2b, 0x48, 0x29, 0x46, 0x04, 0xfa, 0x0b, 0xf4, 0x01, 0x35, 0xfd, 0xf7, 0xd8, 0xfb, 0x0f, 0x23, 0x03, 0xfa, 0x0b, 0xf2, 0x3b, 0x69, 0x23, 0xea, 0x02, 0x03, 0x1c, 0x43, 0x01, 0x9b, 0x3c, 0x61, 0xab, 0x42, 0x13, 0xd1, 0x02, 0x2b, 0x0f, 0xd1, 0x7b, 0x69, 0xa2, 0xb2, 0xb2, 0xeb, 0x14, 0x4f, 0x23, 0xf4, 0x70, 0x63, 0x13, 0xbf, 0x43, 0xf4, 0x80, 0x73, 0x7b, 0x61, 0x1d, 0x48, 0x7b, 0x61, 0x18, 0xbf, 0x1c, 0x48, 0xfd, 0xf7, 0xbb, 0xfb, 0x01, 0x24, 0x00, 0xe7, 0x01, 0x2d, 0x7f, 0xf4, 0x10, 0xaf, 0x14, 0x4a, 0x4f, 0xf0, 0x90, 0x46, 0xb0, 0x46, 0x13, 0x68, 0x03, 0xea, 0x0a, 0x03, 0x43, 0xf4, 0xde, 0x63, 0x13, 0x60, 0x53, 0x68, 0x03, 0xea, 0x0a, 0x03, 0x43, 0xf4, 0xde, 0x63, 0x43, 0xf0, 0x01, 0x03, 0x53, 0x60, 0xfc, 0xe6, 0x4f, 0xf0, 0x01, 0x09, 0x78, 0xe7, 0x00, 0x24, 0xbd, 0xe7, 0x09, 0xf1, 0x01, 0x09, 0xb9, 0xf1, 0x11, 0x0f, 0x7f, 0xf4, 0x18, 0xaf, 0x4f, 0xf0, 0x10, 0x09, 0x2a, 0xe7, 0x01, 0x33, 0x0e, 0x2b, 0x97, 0xd1, 0x0d, 0x23, 0xac, 0xe7, 0x67, 0xd8, 0x02, 0x00, 0x8e, 0xd8, 0x02, 0x00, 0x00, 0x20, 0x10, 0x03, 0xae, 0xd8, 0x02, 0x00, 0xcf, 0xd8, 0x02, 0x00, 0xf8, 0xd8, 0x02, 0x00, 0x14, 0xd9, 0x02, 0x00, 0x03, 0xf0, 0xff, 0xff, 0x4f, 0xf0, 0xb0, 0x13, 0x70, 0xb5, 0x06, 0x69, 0x04, 0x46, 0x03, 0x61, 0x43, 0x69, 0xc5, 0x6d, 0x23, 0xf0, 0x0f, 0x03, 0x43, 0xf4, 0x80, 0x53, 0x43, 0x61, 0x25, 0xf0, 0x08, 0x03, 0x43, 0xf0, 0x05, 0x03, 0xc3, 0x65, 0xff, 0xf7, 0x94, 0xfe, 0x07, 0x4b, 0x1b, 0x68, 0xdb, 0x02, 0x01, 0xd5, 0x00, 0x20, 0x70, 0xbd, 0x20, 0x46, 0xff, 0xf7, 0xd7, 0xfd, 0x00, 0x28, 0xf8, 0xd0, 0xe5, 0x65, 0x01, 0x20, 0x26, 0x61, 0xf5, 0xe7, 0x00, 0xbf, 0x10, 0x30, 0x10, 0x03, 0x38, 0xb5, 0x05, 0x46, 0xc3, 0x6d, 0x5c, 0x04, 0x08, 0xd4, 0xff, 0xf7, 0xd3, 0xff, 0x04, 0x46, 0x20, 0xb9, 0x0c, 0x48, 0xfd, 0xf7, 0x4e, 0xfb, 0x20, 0x46, 0x38, 0xbd, 0xeb, 0x6d, 0xd9, 0x07, 0x06, 0xd4, 0x28, 0x46, 0xff, 0xf7, 0x84, 0xfe, 0x04, 0x46, 0x08, 0xb9, 0x06, 0x48, 0xf1, 0xe7, 0xeb, 0x6d, 0x01, 0x24, 0x1a, 0x04, 0x5e, 0xbf, 0x43, 0xf4, 0xc0, 0x43, 0x43, 0xf0, 0x03, 0x03, 0xeb, 0x65, 0xe9, 0xe7, 0x37, 0xd9, 0x02, 0x00, 0x67, 0xd9, 0x02, 0x00, 0x38, 0xb5, 0x0c, 0x46, 0xcb, 0x6d, 0x81, 0x4d, 0x13, 0xf4, 0x80, 0x33, 0x41, 0xd1, 0x80, 0x4a, 0x0a, 0x20, 0x13, 0x60, 0x2b, 0x68, 0x23, 0xf0, 0x03, 0x03, 0x2b, 0x60, 0xfc, 0xf7, 0x11, 0xfe, 0x2b, 0x68, 0x0a, 0x20, 0x23, 0xf4, 0x82, 0x73, 0x2b, 0x60, 0x2b, 0x68, 0x43, 0xf0, 0x02, 0x03, 0x2b, 0x60, 0xfc, 0xf7, 0x06, 0xfe, 0x2b, 0x68, 0x14, 0x20, 0x43, 0xf0, 0x01, 0x03, 0x2b, 0x60, 0xfc, 0xf7, 0xff, 0xfd, 0x73, 0x4b, 0x74, 0x48, 0x19, 0x68, 0xfd, 0xf7, 0x0d, 0xfb, 0xfe, 0xf7, 0xe7, 0xfa, 0x05, 0x46, 0x01, 0x46, 0x71, 0x48, 0xfd, 0xf7, 0x06, 0xfb, 0x00, 0x2d, 0x23, 0xda, 0x20, 0x46, 0xfe, 0xf7, 0x0d, 0xfb, 0xe3, 0x6d, 0xd9, 0x07, 0x2a, 0xd5, 0x6c, 0x49, 0x6d, 0x48, 0xfd, 0xf7, 0xfa, 0xfa, 0x21, 0x68, 0x6c, 0x48, 0xfd, 0xf7, 0xf6, 0xfa, 0x61, 0x68, 0x6b, 0x48, 0xfd, 0xf7, 0xf2, 0xfa, 0xe3, 0x68, 0xda, 0x07, 0x22, 0xd4, 0x69, 0x48, 0xfd, 0xf7, 0xec, 0xfa, 0x22, 0xe0, 0x2b, 0x68, 0x00, 0x22, 0x0a, 0x20, 0x43, 0xf4, 0x80, 0x73, 0x2b, 0x60, 0x65, 0x4b, 0x1a, 0x60, 0xfc, 0xf7, 0xce, 0xfd, 0xd2, 0xe7, 0x63, 0x68, 0x02, 0x2b, 0x04, 0xd0, 0x03, 0x2b, 0xd9, 0xd1, 0x40, 0xf2, 0xdc, 0x50, 0x01, 0xe0, 0x4f, 0xf4, 0xe1, 0x60, 0xfe, 0xf7, 0xa0, 0xfa, 0xd1, 0xe7, 0x20, 0x46, 0xff, 0xf7, 0x76, 0xff, 0x00, 0x28, 0xcf, 0xd1, 0x00, 0x20, 0x38, 0xbd, 0xa1, 0x68, 0x59, 0x48, 0xfd, 0xf7, 0xc8, 0xfa, 0xe1, 0x69, 0x11, 0xf0, 0x44, 0x0f, 0x0c, 0xd0, 0x56, 0x48, 0xfd, 0xf7, 0xc1, 0xfa, 0x20, 0x46, 0xff, 0xf7, 0xe6, 0xfd, 0x05, 0x46, 0x40, 0xb9, 0x53, 0x48, 0xfd, 0xf7, 0xb9, 0xfa, 0x28, 0x46, 0xe9, 0xe7, 0x52, 0x48, 0xfd, 0xf7, 0xb4, 0xfa, 0xf1, 0xe7, 0x65, 0x69, 0x00, 0x2d, 0x61, 0xda, 0xc5, 0xf3, 0x0e, 0x45, 0xe3, 0x6d, 0x4e, 0x49, 0x4e, 0x4a, 0x13, 0xf0, 0x80, 0x4f, 0x0b, 0x68, 0x64, 0xd0, 0xa3, 0x6c, 0x4c, 0x48, 0x00, 0x2b, 0x08, 0xbf, 0x03, 0x46, 0x4b, 0x48, 0x0b, 0x60, 0x40, 0xf2, 0x0a, 0x41, 0x4a, 0x4b, 0x19, 0x60, 0x13, 0x68, 0x43, 0xf0, 0x01, 0x03, 0x13, 0x60, 0xfd, 0xf7, 0x96, 0xfa, 0x47, 0x4a, 0xe1, 0x6d, 0x60, 0x68, 0x13, 0x68, 0x11, 0xf4, 0x00, 0x7f, 0x23, 0xf4, 0x70, 0x43, 0x01, 0xd1, 0x06, 0x28, 0x01, 0xd1, 0x43, 0xf4, 0xa0, 0x43, 0x13, 0x60, 0x41, 0x4a, 0x13, 0x68, 0x43, 0xf0, 0x00, 0x43, 0x13, 0x60, 0xcb, 0x05, 0x42, 0xbf, 0x52, 0xf8, 0x88, 0x3c, 0x43, 0xf4, 0x40, 0x73, 0x42, 0xf8, 0x88, 0x3c, 0x11, 0xf0, 0x80, 0x6f, 0x3b, 0x4b, 0x1a, 0x68, 0x14, 0xbf, 0x22, 0xf4, 0x00, 0x52, 0x42, 0xf4, 0x00, 0x52, 0x07, 0x28, 0x1a, 0x60, 0x06, 0xd1, 0x37, 0x4a, 0x13, 0x68, 0x23, 0xf4, 0x70, 0x23, 0x43, 0xf4, 0x80, 0x33, 0x13, 0x60, 0xa1, 0x6b, 0x34, 0x48, 0xfd, 0xf7, 0x64, 0xfa, 0x33, 0x4b, 0x34, 0x48, 0x19, 0x68, 0xfd, 0xf7, 0x5f, 0xfa, 0x33, 0x4b, 0x33, 0x48, 0x19, 0x68, 0xfd, 0xf7, 0x5a, 0xfa, 0x21, 0x8c, 0x32, 0x48, 0xfd, 0xf7, 0x56, 0xfa, 0xfe, 0xf7, 0x84, 0xfa, 0xe3, 0x6d, 0xda, 0x00, 0x16, 0xd4, 0xfe, 0xf7, 0x79, 0xf9, 0x94, 0xe7, 0xff, 0xf7, 0x96, 0xfc, 0x05, 0x46, 0x01, 0x46, 0x2b, 0x48, 0xfd, 0xf7, 0x47, 0xfa, 0xa3, 0x8a, 0x43, 0xea, 0x05, 0x43, 0x63, 0x61, 0x93, 0xe7, 0x1b, 0x0c, 0x1b, 0x04, 0x0b, 0x60, 0x13, 0x68, 0x23, 0xf0, 0x01, 0x03, 0x13, 0x60, 0xa3, 0xe7, 0x24, 0x4b, 0x1b, 0x68, 0xdb, 0x03, 0xe4, 0xd4, 0x4f, 0xf4, 0x80, 0x51, 0x28, 0x46, 0xff, 0xf7, 0xf7, 0xfc, 0x00, 0x28, 0xdd, 0xd0, 0x5f, 0xe7, 0x60, 0x01, 0x00, 0x03, 0x54, 0x02, 0x01, 0x07, 0x6c, 0x01, 0x00, 0x03, 0x91, 0xd9, 0x02, 0x00, 0xa2, 0xd9, 0x02, 0x00, 0xb8, 0xd9, 0x02, 0x00, 0xbe, 0xd9, 0x02, 0x00, 0xd8, 0xd9, 0x02, 0x00, 0xeb, 0xd9, 0x02, 0x00, 0x21, 0xda, 0x02, 0x00, 0x68, 0x01, 0x00, 0x03, 0x0b, 0xda, 0x02, 0x00, 0x37, 0xda, 0x02, 0x00, 0x5d, 0xda, 0x02, 0x00, 0x4e, 0xda, 0x02, 0x00, 0xa0, 0x30, 0x10, 0x03, 0x04, 0x30, 0x10, 0x03, 0x00, 0x02, 0x00, 0x10, 0x88, 0xda, 0x02, 0x00, 0x9c, 0x30, 0x10, 0x03, 0x00, 0x31, 0x10, 0x03, 0x40, 0x31, 0x10, 0x03, 0x08, 0x31, 0x10, 0x03, 0x7c, 0x30, 0x10, 0x03, 0x98, 0xda, 0x02, 0x00, 0x10, 0x10, 0x00, 0x02, 0xa8, 0xda, 0x02, 0x00, 0x00, 0x18, 0x00, 0x02, 0xbf, 0xda, 0x02, 0x00, 0xd2, 0xda, 0x02, 0x00, 0x77, 0xda, 0x02, 0x00, 0xd4, 0x05, 0x00, 0x07, 0x00, 0xb5, 0x4f, 0xf4, 0x46, 0x72, 0x99, 0xb0, 0x03, 0x23, 0x00, 0x20, 0x41, 0xf6, 0x70, 0x41, 0xcd, 0xe9, 0x00, 0x23, 0x4f, 0xf0, 0x48, 0x3e, 0x19, 0x4b, 0x4f, 0xf4, 0x50, 0x12, 0xdf, 0xf8, 0x70, 0xc0, 0x0e, 0x90, 0xcd, 0xe9, 0x02, 0x30, 0x41, 0xf2, 0xd2, 0x03, 0xcd, 0xe9, 0x04, 0x30, 0x02, 0x23, 0xcd, 0xe9, 0x06, 0x13, 0x18, 0x23, 0xcd, 0xe9, 0x08, 0x30, 0x69, 0x46, 0x11, 0x4b, 0xcd, 0xe9, 0x13, 0x00, 0x0a, 0x93, 0x03, 0xf1, 0xfc, 0x73, 0x03, 0xf6, 0xfb, 0x73, 0x0b, 0x93, 0x0d, 0x4b, 0xcd, 0xe9, 0x0c, 0xc3, 0x48, 0x23, 0xcd, 0xe9, 0x0f, 0xe3, 0x0b, 0x4b, 0xcd, 0xe9, 0x11, 0x30, 0x45, 0x23, 0xcd, 0xe9, 0x15, 0x23, 0x4f, 0xf0, 0x50, 0x53, 0x17, 0x93, 0xff, 0xf7, 0x81, 0xfe, 0xb0, 0xfa, 0x80, 0xf0, 0x40, 0x09, 0x19, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x00, 0xbf, 0xfb, 0x7b, 0x7b, 0x00, 0x95, 0x21, 0x4a, 0x00, 0x96, 0x78, 0x78, 0xb4, 0x1e, 0x12, 0x21, 0x16, 0x61, 0xb0, 0x08, 0x00, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x04, 0x4b, 0x1b, 0x68, 0x48, 0x2b, 0x01, 0xd1, 0x00, 0xf0, 0x09, 0xb9, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x00, 0xbf, 0x50, 0xde, 0x02, 0x00, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x00, 0x00, 0x04, 0x4b, 0x1b, 0x68, 0x48, 0x2b, 0x02, 0xd1, 0x01, 0x21, 0x00, 0xf0, 0x95, 0xb9, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x50, 0xde, 0x02, 0x00, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x00, 0x00, 0x04, 0x4b, 0x1b, 0x68, 0x48, 0x2b, 0x01, 0xd1, 0x00, 0xf0, 0x7e, 0xb9, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x00, 0xbf, 0x50, 0xde, 0x02, 0x00, 0x04, 0x4b, 0x1b, 0x68, 0x48, 0x2b, 0x01, 0xd1, 0x00, 0xf0, 0x6a, 0xb9, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x00, 0xbf, 0x50, 0xde, 0x02, 0x00, 0x04, 0x4b, 0x1b, 0x68, 0x48, 0x2b, 0x01, 0xd1, 0x00, 0xf0, 0x76, 0xb9, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x00, 0xbf, 0x50, 0xde, 0x02, 0x00, 0x04, 0x4b, 0x1b, 0x68, 0x48, 0x2b, 0x01, 0xd1, 0x00, 0xf0, 0x6f, 0xb9, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x00, 0xbf, 0x50, 0xde, 0x02, 0x00, 0x38, 0xb5, 0x4f, 0xf0, 0xff, 0x34, 0x04, 0x4d, 0x2c, 0x60, 0x00, 0xf0, 0x67, 0xf9, 0x48, 0x28, 0x0c, 0xbf, 0x28, 0x60, 0x20, 0x46, 0x38, 0xbd, 0x50, 0xde, 0x02, 0x00, 0x01, 0x4b, 0x93, 0xf8, 0x35, 0x00, 0x70, 0x47, 0x00, 0x80, 0x02, 0x00, 0x2d, 0xe9, 0xf0, 0x41, 0x06, 0x46, 0xdf, 0xf8, 0x2c, 0x80, 0x00, 0x25, 0x6c, 0x27, 0x07, 0xfb, 0x05, 0x84, 0x20, 0x46, 0xfc, 0xf7, 0x47, 0xff, 0x21, 0x46, 0x02, 0x46, 0x30, 0x46, 0xfc, 0xf7, 0x25, 0xff, 0x18, 0xb1, 0x01, 0x35, 0x05, 0x2d, 0xf1, 0xd1, 0x00, 0x24, 0x20, 0x46, 0xbd, 0xe8, 0xf0, 0x81, 0x00, 0xbf, 0xe4, 0xdb, 0x02, 0x00, 0x2d, 0xe9, 0xf7, 0x4f, 0x8a, 0x46, 0x16, 0x46, 0xff, 0xf7, 0xde, 0xff, 0x05, 0x46, 0x20, 0xb9, 0x4f, 0xf0, 0xff, 0x30, 0x03, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0xba, 0xf1, 0x00, 0x0f, 0x03, 0xdc, 0x00, 0x2e, 0x5a, 0xda, 0x00, 0x20, 0xf5, 0xe7, 0x03, 0x69, 0x00, 0x2b, 0xf8, 0xd0, 0x53, 0x45, 0x47, 0xd9, 0x9a, 0x46, 0x0d, 0xf1, 0x07, 0x02, 0x29, 0x7e, 0x36, 0x20, 0xfd, 0xf7, 0xe1, 0xff, 0x00, 0x28, 0xe5, 0xd1, 0x9d, 0xf8, 0x07, 0x90, 0x83, 0x46, 0x2f, 0x7f, 0x04, 0x46, 0x29, 0xea, 0x07, 0x09, 0x8d, 0xf8, 0x07, 0x90, 0x5f, 0xfa, 0x8b, 0xf8, 0x4f, 0xea, 0x08, 0x12, 0xab, 0x18, 0x1b, 0x6b, 0x2b, 0xb3, 0x9a, 0x45, 0x05, 0xd9, 0x05, 0xeb, 0x08, 0x11, 0xc9, 0x6b, 0x8a, 0x45, 0x38, 0xbf, 0x9a, 0x46, 0x08, 0xf1, 0x03, 0x08, 0x9a, 0x45, 0x05, 0xeb, 0x08, 0x18, 0x2a, 0x44, 0xd0, 0x6a, 0x0b, 0xf1, 0x01, 0x0b, 0xd8, 0xf8, 0x04, 0x10, 0x1f, 0xd8, 0xaa, 0xeb, 0x00, 0x00, 0xfb, 0xf7, 0x78, 0xfe, 0x20, 0x44, 0xac, 0x6a, 0xd8, 0xf8, 0x08, 0x30, 0xa0, 0x40, 0x49, 0xea, 0x00, 0x00, 0xc0, 0xb2, 0x8d, 0xf8, 0x07, 0x00, 0x13, 0xb1, 0x78, 0x40, 0x8d, 0xf8, 0x07, 0x00, 0x9d, 0xf8, 0x07, 0x20, 0x36, 0x20, 0x29, 0x7e, 0xfd, 0xf7, 0xad, 0xff, 0x00, 0x28, 0xaf, 0xd0, 0xa6, 0xe7, 0x43, 0x69, 0x9a, 0x45, 0x28, 0xbf, 0x9a, 0x46, 0xb3, 0xe7, 0x0b, 0x44, 0x18, 0x1a, 0xfb, 0xf7, 0x58, 0xfe, 0x04, 0x44, 0xe4, 0xb2, 0xbd, 0xe7, 0x0d, 0xf1, 0x07, 0x02, 0x95, 0xf8, 0x20, 0x10, 0x36, 0x20, 0xfd, 0xf7, 0x8d, 0xff, 0x00, 0x28, 0x91, 0xd1, 0x6a, 0x6a, 0x01, 0x23, 0x93, 0x40, 0x9d, 0xf9, 0x07, 0x20, 0x5b, 0xb2, 0x7e, 0xb9, 0x22, 0xea, 0x03, 0x03, 0x8d, 0xf8, 0x07, 0x30, 0x36, 0x20, 0x9d, 0xf8, 0x07, 0x20, 0x95, 0xf8, 0x20, 0x10, 0xfd, 0xf7, 0x83, 0xff, 0x00, 0x30, 0x18, 0xbf, 0x01, 0x20, 0x40, 0x42, 0x7c, 0xe7, 0x13, 0x43, 0xef, 0xe7, 0x07, 0xb5, 0x21, 0x21, 0x0d, 0xf1, 0x07, 0x02, 0x36, 0x20, 0xfd, 0xf7, 0x6b, 0xff, 0x20, 0xb1, 0x4f, 0xf0, 0xff, 0x30, 0x03, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x9d, 0xf8, 0x07, 0x20, 0x02, 0xf0, 0x30, 0x02, 0x8d, 0xf8, 0x07, 0x20, 0x22, 0xb9, 0x9d, 0xf8, 0x07, 0x00, 0xc0, 0xf3, 0x01, 0x10, 0xf0, 0xe7, 0x21, 0x21, 0x36, 0x20, 0xfd, 0xf7, 0x5f, 0xff, 0x00, 0x28, 0xf4, 0xd0, 0xe7, 0xe7, 0x00, 0x00, 0x2d, 0xe9, 0xf7, 0x4f, 0x80, 0x46, 0x33, 0x48, 0xff, 0xf7, 0x2e, 0xff, 0x06, 0x46, 0x98, 0xb9, 0x4f, 0xf0, 0xff, 0x34, 0xa0, 0x45, 0x51, 0xda, 0x2e, 0x4d, 0x21, 0x46, 0x01, 0x22, 0x28, 0x46, 0x32, 0x3c, 0xff, 0xf7, 0x3d, 0xff, 0xa0, 0x45, 0xf7, 0xdd, 0xe6, 0x20, 0xfc, 0xf7, 0x2c, 0xfb, 0x00, 0x20, 0x03, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x90, 0xf8, 0x20, 0x10, 0x0d, 0xf1, 0x07, 0x02, 0x36, 0x20, 0xfd, 0xf7, 0x2e, 0xff, 0x00, 0x28, 0xe2, 0xd1, 0x9d, 0xf8, 0x07, 0x40, 0x73, 0x6a, 0x1c, 0x41, 0x14, 0xf0, 0x01, 0x04, 0xdd, 0xd0, 0x0d, 0xf1, 0x07, 0x02, 0x31, 0x7e, 0x36, 0x20, 0xfd, 0xf7, 0x1f, 0xff, 0x00, 0x28, 0xd3, 0xd1, 0x9d, 0xf8, 0x07, 0x40, 0x07, 0x46, 0xf5, 0x69, 0x81, 0x46, 0x25, 0x40, 0xb4, 0x6a, 0x25, 0x41, 0xec, 0xb2, 0x05, 0x46, 0xfb, 0xb2, 0x06, 0xeb, 0x03, 0x12, 0x10, 0x6b, 0x00, 0x28, 0xc3, 0xd0, 0x06, 0xeb, 0x03, 0x13, 0xd2, 0xf8, 0x2c, 0xb0, 0x01, 0x37, 0xd3, 0xf8, 0x34, 0xa0, 0x50, 0x44, 0x51, 0x46, 0xa0, 0xeb, 0x0b, 0x00, 0xfb, 0xf7, 0xc1, 0xfd, 0xc0, 0xb2, 0x81, 0x44, 0x5f, 0xfa, 0x89, 0xf9, 0x4c, 0x45, 0x03, 0xd2, 0x65, 0x1b, 0x0a, 0xfb, 0x05, 0xb4, 0xae, 0xe7, 0x05, 0x44, 0xed, 0xb2, 0xdf, 0xe7, 0xb5, 0xdd, 0x05, 0x4d, 0x21, 0x46, 0x01, 0x22, 0x28, 0x46, 0x32, 0x34, 0xff, 0xf7, 0xea, 0xfe, 0xa0, 0x45, 0xf7, 0xda, 0xab, 0xe7, 0x00, 0xbf, 0xec, 0xda, 0x02, 0x00, 0x01, 0x46, 0x01, 0x22, 0x01, 0x48, 0xff, 0xf7, 0xdf, 0xbe, 0x00, 0xbf, 0xf2, 0xda, 0x02, 0x00, 0x01, 0x46, 0x01, 0x22, 0x01, 0x48, 0xff, 0xf7, 0xd7, 0xbe, 0x00, 0xbf, 0xf8, 0xda, 0x02, 0x00, 0x0a, 0x46, 0x01, 0x46, 0x01, 0x48, 0xff, 0xf7, 0xcf, 0xbe, 0x00, 0xbf, 0xfe, 0xda, 0x02, 0x00, 0x0a, 0x46, 0x01, 0x46, 0x36, 0x20, 0xfd, 0xf7, 0xc8, 0xbe, 0x0a, 0x46, 0x01, 0x46, 0x36, 0x20, 0xfd, 0xf7, 0xcd, 0xbe, 0x07, 0xb5, 0x36, 0x21, 0x24, 0x48, 0xfd, 0xf7, 0xb9, 0xfe, 0x28, 0xb1, 0x23, 0x48, 0xfc, 0xf7, 0xd7, 0xff, 0x4f, 0xf0, 0xff, 0x30, 0x3a, 0xe0, 0x0d, 0xf1, 0x06, 0x02, 0x03, 0x21, 0x36, 0x20, 0xfd, 0xf7, 0xb1, 0xfe, 0x08, 0xb1, 0x1e, 0x48, 0xf1, 0xe7, 0x9d, 0xf8, 0x06, 0x30, 0x03, 0xf0, 0xcf, 0x03, 0x48, 0x2b, 0x8d, 0xf8, 0x06, 0x30, 0x02, 0xd0, 0x4b, 0x3b, 0x01, 0x2b, 0x29, 0xd8, 0x0d, 0xf1, 0x07, 0x02, 0x14, 0x21, 0x36, 0x20, 0xfd, 0xf7, 0x9d, 0xfe, 0xd8, 0xb9, 0x9d, 0xf8, 0x07, 0x20, 0x14, 0x21, 0x36, 0x20, 0x42, 0xf0, 0x80, 0x02, 0x8d, 0xf8, 0x07, 0x20, 0xfd, 0xf7, 0x9c, 0xfe, 0x80, 0xb9, 0x0d, 0xf1, 0x07, 0x02, 0x1a, 0x21, 0x36, 0x20, 0xfd, 0xf7, 0x8b, 0xfe, 0x48, 0xb9, 0x9d, 0xf8, 0x07, 0x20, 0x1a, 0x21, 0x36, 0x20, 0x42, 0xf0, 0x02, 0x02, 0x8d, 0xf8, 0x07, 0x20, 0xfd, 0xf7, 0x8a, 0xfe, 0x07, 0x48, 0xfc, 0xf7, 0x9a, 0xff, 0x48, 0x20, 0x03, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x04, 0x48, 0xba, 0xe7, 0x80, 0x1a, 0x06, 0x00, 0x04, 0xdb, 0x02, 0x00, 0x1b, 0xdb, 0x02, 0x00, 0x32, 0xdb, 0x02, 0x00, 0x40, 0xdb, 0x02, 0x00, 0x02, 0x4a, 0x13, 0x68, 0x1b, 0x07, 0xfc, 0xd4, 0x70, 0x47, 0x00, 0xbf, 0x40, 0x60, 0x00, 0x03, 0x00, 0xf1, 0x40, 0x70, 0x00, 0xf5, 0xc4, 0x40, 0x00, 0x68, 0x70, 0x47, 0x08, 0xb5, 0xff, 0xf7, 0xef, 0xff, 0x0f, 0x4a, 0x11, 0x68, 0x0f, 0x4b, 0x0b, 0x40, 0x43, 0xea, 0x00, 0x40, 0x20, 0xf4, 0x7f, 0x43, 0x10, 0x60, 0x23, 0xf0, 0x03, 0x03, 0x43, 0xf4, 0x2c, 0x43, 0x43, 0xf0, 0x02, 0x03, 0x13, 0x60, 0x13, 0x68, 0x9b, 0x07, 0xfc, 0xd4, 0x20, 0xf0, 0xff, 0x70, 0x20, 0xf4, 0xff, 0x30, 0x20, 0xf4, 0x81, 0x70, 0x20, 0xf0, 0x01, 0x00, 0x03, 0x4b, 0x10, 0x60, 0x18, 0x68, 0x08, 0xbd, 0x40, 0x60, 0x00, 0x03, 0xfc, 0xff, 0x00, 0xfe, 0x60, 0x60, 0x00, 0x03, 0x10, 0xb5, 0x15, 0x4c, 0x23, 0x68, 0x43, 0xf0, 0x01, 0x03, 0x23, 0x60, 0xff, 0xf7, 0xc2, 0xff, 0x12, 0x4b, 0x13, 0x4a, 0x19, 0x60, 0x11, 0x68, 0x12, 0x4b, 0x0b, 0x40, 0x43, 0xea, 0x00, 0x40, 0x20, 0xf4, 0x7f, 0x43, 0x10, 0x60, 0x23, 0xf0, 0x03, 0x03, 0x43, 0xf4, 0x2c, 0x43, 0x43, 0xf0, 0x01, 0x03, 0x13, 0x60, 0x13, 0x68, 0xdb, 0x07, 0xfc, 0xd4, 0x20, 0xf0, 0xff, 0x70, 0x20, 0xf4, 0xff, 0x30, 0x20, 0xf4, 0x81, 0x70, 0x20, 0xf0, 0x01, 0x00, 0x10, 0x60, 0x23, 0x68, 0x23, 0xf0, 0x01, 0x03, 0x23, 0x60, 0x10, 0xbd, 0x00, 0xbf, 0x04, 0x02, 0x09, 0x07, 0x50, 0x60, 0x00, 0x03, 0x40, 0x60, 0x00, 0x03, 0xfc, 0xff, 0x00, 0xfe, 0x38, 0xb5, 0x05, 0x46, 0x70, 0x24, 0x20, 0x46, 0x04, 0x34, 0xff, 0xf7, 0x9d, 0xff, 0x90, 0x2c, 0x45, 0xf8, 0x04, 0x0b, 0xf7, 0xd1, 0x38, 0xbd, 0x08, 0xb5, 0x48, 0x20, 0xff, 0xf7, 0x94, 0xff, 0x40, 0xf4, 0x00, 0x61, 0x48, 0x20, 0xff, 0xf7, 0xb7, 0xff, 0x48, 0x20, 0xff, 0xf7, 0x8c, 0xff, 0xbd, 0xe8, 0x08, 0x40, 0xc0, 0xf3, 0xc0, 0x21, 0x01, 0x48, 0xfc, 0xf7, 0x01, 0xbf, 0x00, 0xbf, 0x4c, 0xdb, 0x02, 0x00, 0x02, 0x4a, 0x01, 0x23, 0x13, 0x60, 0x42, 0xf8, 0x04, 0x3c, 0x70, 0x47, 0x88, 0x60, 0x00, 0x03, 0x02, 0x4b, 0x18, 0x68, 0x00, 0xf0, 0x01, 0x00, 0x70, 0x47, 0x00, 0xbf, 0xa0, 0x60, 0x00, 0x03, 0x38, 0xb5, 0x88, 0x22, 0x0d, 0x4c, 0x05, 0x46, 0x00, 0x21, 0x20, 0x46, 0xfc, 0xf7, 0x34, 0xfd, 0x0b, 0x4a, 0xa4, 0xf5, 0x50, 0x73, 0x65, 0x60, 0xa4, 0xf5, 0x42, 0x75, 0x29, 0x46, 0x04, 0xf1, 0x08, 0x00, 0xc3, 0xf8, 0x40, 0x23, 0x80, 0x22, 0xfc, 0xf7, 0x2c, 0xfd, 0x29, 0x46, 0x80, 0x22, 0x4f, 0xf0, 0x81, 0x40, 0xbd, 0xe8, 0x38, 0x40, 0xfc, 0xf7, 0x24, 0xbd, 0x40, 0x83, 0x02, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x38, 0xb5, 0x02, 0x22, 0x16, 0x4c, 0x04, 0xf1, 0xbc, 0x01, 0xd4, 0xf8, 0xb8, 0x00, 0xfd, 0xf7, 0x41, 0xf8, 0x04, 0xf5, 0x3e, 0x71, 0x13, 0x48, 0xfc, 0xf7, 0xbe, 0xfe, 0xfc, 0xf7, 0x46, 0xfa, 0x05, 0x46, 0xd8, 0xb9, 0x10, 0x48, 0xfc, 0xf7, 0xb7, 0xfe, 0x04, 0xf1, 0x38, 0x01, 0x28, 0x46, 0xff, 0xf7, 0x7e, 0xfb, 0x04, 0x46, 0x50, 0xb1, 0x01, 0x20, 0xff, 0xf7, 0xbf, 0xff, 0x0b, 0x48, 0xfc, 0xf7, 0xaa, 0xfe, 0x0a, 0x20, 0xfc, 0xf7, 0x8f, 0xf9, 0x20, 0x46, 0x38, 0xbd, 0xff, 0xf7, 0xb5, 0xff, 0x07, 0x48, 0xfc, 0xf7, 0xa0, 0xfe, 0xfe, 0xe7, 0xf3, 0xe7, 0x00, 0x24, 0xf4, 0xe7, 0x00, 0x80, 0x02, 0x00, 0x6b, 0xdb, 0x02, 0x00, 0x80, 0xdb, 0x02, 0x00, 0x94, 0xdb, 0x02, 0x00, 0xa2, 0xdb, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x00, 0x02, 0x40, 0x10, 0x00, 0x02, 0x48, 0x10, 0x00, 0x02, 0x58, 0x10, 0x00, 0x02, 0x78, 0x10, 0x00, 0x02, 0x80, 0x10, 0x00, 0x02, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x28, 0x28, 0x28, 0x28, 0x28, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0xa0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x10, 0x10, 0x10, 0x10, 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, 0x00, 0xa0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x10, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x09, 0x03, 0x07, 0x08, 0x12, 0x04, 0x0d, 0x05, 0x06, 0x0a, 0x02, 0x0e, 0x0c, 0x00, 0x00, 0x15, 0x11, 0x14, 0x13, 0x0b, 0x16, 0x04, 0x09, 0x03, 0x07, 0x08, 0x12, 0x01, 0x0d, 0x02, 0x06, 0x0a, 0x05, 0x0e, 0x0c, 0x00, 0x00, 0x15, 0x11, 0x14, 0x13, 0x0b, 0x16, 0x01, 0x07, 0x08, 0x0c, 0x0a, 0x12, 0x04, 0x0d, 0x05, 0x06, 0x03, 0x02, 0x09, 0x00, 0x00, 0x00, 0x15, 0x11, 0x14, 0x13, 0x0b, 0x16, 0x04, 0x0c, 0x0a, 0x07, 0x08, 0x12, 0x01, 0x0d, 0x02, 0x06, 0x03, 0x05, 0x09, 0x00, 0x00, 0x00, 0x15, 0x11, 0x14, 0x13, 0x0b, 0x16, 0x0d, 0x02, 0x07, 0x09, 0x0c, 0x13, 0x05, 0x01, 0x06, 0x03, 0x04, 0x08, 0x0a, 0x00, 0x00, 0x00, 0x15, 0x16, 0x12, 0x11, 0x0b, 0x14, 0x03, 0x0a, 0x07, 0x0d, 0x09, 0x0b, 0x01, 0x02, 0x04, 0x06, 0x08, 0x05, 0x0c, 0x00, 0x00, 0x00, 0x14, 0x12, 0x00, 0x15, 0x16, 0x11, 0x03, 0x02, 0x04, 0x07, 0x09, 0x01, 0x11, 0x0c, 0x12, 0x0e, 0x0d, 0x08, 0x0f, 0x06, 0x0a, 0x05, 0x13, 0x16, 0x10, 0x15, 0x14, 0x0b, 0x02, 0x13, 0x08, 0x06, 0x0e, 0x05, 0x14, 0x0a, 0x03, 0x12, 0x0d, 0x0b, 0x07, 0x0f, 0x09, 0x01, 0x16, 0x15, 0x11, 0x0c, 0x04, 0x10, 0x01, 0x02, 0x0d, 0x08, 0x0f, 0x0c, 0x13, 0x0a, 0x03, 0x15, 0x06, 0x11, 0x09, 0x0e, 0x05, 0x10, 0x14, 0x16, 0x0b, 0x07, 0x04, 0x12, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x6f, 0x6b, 0x0a, 0x00, 0x73, 0x65, 0x74, 0x20, 0x61, 0x72, 0x69, 0x73, 0x63, 0x20, 0x72, 0x65, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x65, 0x2d, 0x61, 0x73, 0x73, 0x65, 0x72, 0x74, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x0a, 0x00, 0x73, 0x65, 0x74, 0x20, 0x70, 0x6c, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x0a, 0x00, 0x66, 0x69, 0x78, 0x20, 0x76, 0x63, 0x63, 0x69, 0x6f, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x70, 0x65, 0x72, 0x69, 0x70, 0x68, 0x30, 0x20, 0x68, 0x61, 0x73, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x0a, 0x00, 0x23, 0x72, 0x74, 0x63, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x20, 0x72, 0x65, 0x67, 0x20, 0x69, 0x73, 0x20, 0x30, 0x78, 0x25, 0x78, 0x2c, 0x20, 0x73, 0x75, 0x70, 0x65, 0x72, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x20, 0x69, 0x73, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x73, 0x65, 0x74, 0x20, 0x70, 0x6c, 0x6c, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x00, 0x5b, 0x25, 0x64, 0x5d, 0x00, 0x25, 0x73, 0x00, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x6b, 0x65, 0x79, 0x20, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x3a, 0x20, 0x25, 0x63, 0x0a, 0x00, 0x69, 0x6e, 0x62, 0x75, 0x66, 0x3a, 0x25, 0x78, 0x0a, 0x00, 0x25, 0x30, 0x32, 0x78, 0x20, 0x00, 0x25, 0x73, 0x3a, 0x25, 0x75, 0x3a, 0x20, 0x25, 0x73, 0x3a, 0x20, 0x41, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x60, 0x25, 0x73, 0x27, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x2e, 0x00, 0x72, 0x74, 0x63, 0x5b, 0x25, 0x64, 0x5d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x65, 0x72, 0x61, 0x6c, 0x79, 0x20, 0x6a, 0x75, 0x6d, 0x70, 0x20, 0x66, 0x65, 0x6c, 0x0a, 0x00, 0x63, 0x61, 0x72, 0x73, 0x68, 0x64, 0x75, 0x6d, 0x70, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x2c, 0x20, 0x6a, 0x75, 0x6d, 0x70, 0x20, 0x66, 0x65, 0x6c, 0x0a, 0x00, 0x72, 0x74, 0x63, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x20, 0x69, 0x73, 0x20, 0x30, 0x78, 0x25, 0x78, 0x2c, 0x20, 0x73, 0x75, 0x70, 0x65, 0x72, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x20, 0x69, 0x73, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x73, 0x72, 0x63, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x6c, 0x65, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x72, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x2c, 0x20, 0x6c, 0x65, 0x6e, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x63, 0x72, 0x63, 0x20, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x2e, 0x2e, 0x2e, 0x0a, 0x00, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x5f, 0x63, 0x72, 0x63, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x2c, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x72, 0x63, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x63, 0x72, 0x63, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x0a, 0x00, 0x66, 0x69, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x2c, 0x20, 0x6a, 0x75, 0x6d, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x64, 0x64, 0x72, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x74, 0x72, 0x65, 0x66, 0x69, 0x3a, 0x33, 0x2e, 0x39, 0x6d, 0x73, 0x0a, 0x00, 0x74, 0x72, 0x65, 0x66, 0x69, 0x3a, 0x31, 0x2e, 0x39, 0x35, 0x6d, 0x73, 0x0a, 0x00, 0x74, 0x72, 0x65, 0x66, 0x69, 0x3a, 0x37, 0x2e, 0x38, 0x6d, 0x73, 0x0a, 0x00, 0x64, 0x64, 0x72, 0x5f, 0x65, 0x66, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x5a, 0x51, 0x20, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2c, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x20, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x20, 0x32, 0x34, 0x30, 0x20, 0x6f, 0x68, 0x6d, 0x20, 0x72, 0x65, 0x73, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x2e, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x44, 0x51, 0x21, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x44, 0x51, 0x21, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x68, 0x61, 0x6c, 0x66, 0x20, 0x44, 0x51, 0x21, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x64, 0x75, 0x61, 0x6c, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x68, 0x61, 0x6c, 0x66, 0x20, 0x44, 0x51, 0x21, 0x0a, 0x00, 0x44, 0x58, 0x30, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x44, 0x58, 0x31, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x46, 0x41, 0x49, 0x4c, 0x2e, 0x0a, 0x00, 0x25, 0x78, 0x20, 0x21, 0x3d, 0x20, 0x25, 0x78, 0x20, 0x61, 0x74, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x25, 0x78, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x4f, 0x4b, 0x2e, 0x0a, 0x00, 0x5b, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x3a, 0x20, 0x30, 0x21, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x25, 0x64, 0x20, 0x72, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x25, 0x64, 0x20, 0x62, 0x61, 0x6e, 0x6b, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x25, 0x64, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x4b, 0x42, 0x20, 0x0a, 0x00, 0x72, 0x61, 0x6e, 0x6b, 0x31, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x30, 0x0a, 0x00, 0x72, 0x61, 0x6e, 0x6b, 0x31, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x30, 0x0a, 0x00, 0x5b, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x61, 0x6e, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x26, 0x77, 0x69, 0x64, 0x74, 0x68, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x20, 0x21, 0x0a, 0x00, 0x5b, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x61, 0x6e, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x20, 0x21, 0x0a, 0x00, 0x5a, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x6d, 0x75, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x28, 0x29, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x0a, 0x00, 0x56, 0x30, 0x2e, 0x33, 0x33, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x42, 0x4f, 0x4f, 0x54, 0x20, 0x44, 0x52, 0x49, 0x56, 0x45, 0x20, 0x49, 0x4e, 0x46, 0x4f, 0x3a, 0x20, 0x25, 0x73, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x43, 0x4c, 0x4b, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x4d, 0x48, 0x7a, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x54, 0x79, 0x70, 0x65, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x28, 0x32, 0x3a, 0x44, 0x44, 0x52, 0x32, 0x2c, 0x33, 0x3a, 0x44, 0x44, 0x52, 0x33, 0x29, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x43, 0x20, 0x5a, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x43, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x4f, 0x44, 0x54, 0x20, 0x20, 0x6f, 0x66, 0x66, 0x2e, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x4f, 0x44, 0x54, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x30, 0x78, 0x25, 0x78, 0x2e, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x4f, 0x44, 0x54, 0x20, 0x6f, 0x66, 0x66, 0x2e, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x3a, 0x20, 0x31, 0x20, 0x21, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x53, 0x49, 0x5a, 0x45, 0x20, 0x3d, 0x25, 0x64, 0x20, 0x4d, 0x0a, 0x00, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x41, 0x75, 0x74, 0x6f, 0x20, 0x53, 0x52, 0x0a, 0x00, 0x64, 0x72, 0x61, 0x6d, 0x5f, 0x74, 0x70, 0x72, 0x34, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x50, 0x4c, 0x4c, 0x5f, 0x44, 0x44, 0x52, 0x5f, 0x43, 0x54, 0x52, 0x4c, 0x5f, 0x52, 0x45, 0x47, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x4b, 0x5f, 0x52, 0x45, 0x47, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x5b, 0x54, 0x49, 0x4d, 0x49, 0x4e, 0x47, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x4d, 0x52, 0x32, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x64, 0x63, 0x64, 0x63, 0x33, 0x00, 0x61, 0x6c, 0x64, 0x6f, 0x31, 0x00, 0x64, 0x63, 0x64, 0x63, 0x32, 0x00, 0x64, 0x63, 0x64, 0x63, 0x31, 0x00, 0x5b, 0x70, 0x6d, 0x75, 0x5d, 0x3a, 0x20, 0x62, 0x75, 0x73, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x5b, 0x70, 0x6d, 0x75, 0x5d, 0x3a, 0x20, 0x62, 0x75, 0x73, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x50, 0x4d, 0x55, 0x3a, 0x20, 0x41, 0x58, 0x50, 0x31, 0x35, 0x33, 0x30, 0x0a, 0x00, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x20, 0x50, 0x4d, 0x55, 0x0a, 0x00, 0x62, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x2c, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x3a, 0x20, 0x25, 0x64, 0x0a, 0x00, 0x66, 0x65, 0x73, 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x3a, 0x25, 0x73, 0x0a, 0x00, 0x62, 0x65, 0x69, 0x67, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x0a, 0x00, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x6f, 0x6b, 0x0a, 0x00, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x03, 0x01, 0x00, 0x00, 0x06, 0x00, 0x0c, 0x01, 0x03, 0x01, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x63, 0x64, 0x63, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x48, 0x0d, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xb0, 0x04, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x04, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x06, 0x00, 0x00, 0x48, 0x0d, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x63, 0x64, 0x63, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xb0, 0x04, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x04, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x14, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x63, 0x64, 0x63, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x30, 0x07, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xb0, 0x04, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x04, 0x00, 0x00, 0x30, 0x07, 0x00, 0x00, 0x14, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x6c, 0x64, 0x6f, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x6c, 0x64, 0x6f, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; if(type) { if(strcmp(type, "r528-s3") == 0) { static const struct ddr3_param_t ddr3 = { .dram_clk = 792, .dram_type = 3, .dram_zq = 0x7b7bfb, .dram_odt_en = 0x00, .dram_para1 = 0x000010d2, .dram_para2 = 0x0000, .dram_mr0 = 0x1c70, .dram_mr1 = 0x042, .dram_mr2 = 0x18, .dram_mr3 = 0x0, .dram_tpr0 = 0x004A2195, .dram_tpr1 = 0x02423190, .dram_tpr2 = 0x0008B061, .dram_tpr3 = 0xB4787896, .dram_tpr4 = 0x0, .dram_tpr5 = 0x48484848, .dram_tpr6 = 0x00000048, .dram_tpr7 = 0x1620121e, .dram_tpr8 = 0x0, .dram_tpr9 = 0x0, .dram_tpr10 = 0x0, .dram_tpr11 = 0x00340000, .dram_tpr12 = 0x00000046, .dram_tpr13 = 0x34000100, }; fel_write(ctx, 0x00028000, (void *)&r528_ddr_payload[0], sizeof(r528_ddr_payload)); fel_write(ctx, 0x00028038, (void *)&ddr3, sizeof(ddr3)); fel_exec(ctx, 0x00028000); return 1; } else if(strcmp(type, "t113-s3") == 0) { static const struct ddr3_param_t ddr3 = { .dram_clk = 792, .dram_type = 3, .dram_zq = 0x7b7bfb, .dram_odt_en = 0x00, .dram_para1 = 0x000010d2, .dram_para2 = 0x0000, .dram_mr0 = 0x1c70, .dram_mr1 = 0x042, .dram_mr2 = 0x18, .dram_mr3 = 0x0, .dram_tpr0 = 0x004A2195, .dram_tpr1 = 0x02423190, .dram_tpr2 = 0x0008B061, .dram_tpr3 = 0xB4787896, .dram_tpr4 = 0x0, .dram_tpr5 = 0x48484848, .dram_tpr6 = 0x00000048, .dram_tpr7 = 0x1620121e, .dram_tpr8 = 0x0, .dram_tpr9 = 0x0, .dram_tpr10 = 0x0, .dram_tpr11 = 0x00340000, .dram_tpr12 = 0x00000046, .dram_tpr13 = 0x34000100, }; fel_write(ctx, 0x00028000, (void *)&t113_ddr_payload[0], sizeof(t113_ddr_payload)); fel_write(ctx, 0x00028038, (void *)&ddr3, sizeof(ddr3)); fel_exec(ctx, 0x00028000); return 1; } else if(strcmp(type, "t113-s4") == 0) { static const struct ddr3_param_t ddr3 = { .dram_clk = 936, .dram_type = 3, .dram_zq = 0x7b7bfb, .dram_odt_en = 0x00, .dram_para1 = 0x000010d2, .dram_para2 = 0x0000, .dram_mr0 = 0x1c70, .dram_mr1 = 0x042, .dram_mr2 = 0x18, .dram_mr3 = 0x0, .dram_tpr0 = 0x004A2195, .dram_tpr1 = 0x02423190, .dram_tpr2 = 0x0008B061, .dram_tpr3 = 0xB4787896, .dram_tpr4 = 0x0, .dram_tpr5 = 0x48484848, .dram_tpr6 = 0x00000048, .dram_tpr7 = 0x1620121e, .dram_tpr8 = 0x0, .dram_tpr9 = 0x0, .dram_tpr10 = 0x0, .dram_tpr11 = 0x00340000, .dram_tpr12 = 0x00000046, .dram_tpr13 = 0x34000100, }; fel_write(ctx, 0x00028000, (void *)&t113_ddr_payload[0], sizeof(t113_ddr_payload)); fel_write(ctx, 0x00028038, (void *)&ddr3, sizeof(ddr3)); fel_exec(ctx, 0x00028000); return 1; } } printf("usage:\r\n"); printf(" xfel ddr r528-s3 - Initial ddr controller for R528-S3\r\n"); printf(" xfel ddr t113-s3 - Initial ddr controller for T113-S3\r\n"); printf(" xfel ddr t113-s4 - Initial ddr controller for T113-S4\r\n"); return 0; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { static const uint8_t payload[] = { 0x00, 0x00, 0xa0, 0xe3, 0x17, 0x0f, 0x08, 0xee, 0x15, 0x0f, 0x07, 0xee, 0xd5, 0x0f, 0x07, 0xee, 0x9a, 0x0f, 0x07, 0xee, 0x95, 0x0f, 0x07, 0xee, 0xff, 0xff, 0xff, 0xea, 0x5c, 0x00, 0x9f, 0xe5, 0x00, 0xd0, 0x80, 0xe5, 0x04, 0xe0, 0x80, 0xe5, 0x00, 0xe0, 0x0f, 0xe1, 0x08, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x0c, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x1c, 0xee, 0x10, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x14, 0xe0, 0x80, 0xe5, 0x29, 0x0a, 0xa0, 0xe3, 0x7d, 0x00, 0x00, 0xeb, 0x28, 0x00, 0x9f, 0xe5, 0x00, 0xd0, 0x90, 0xe5, 0x04, 0xe0, 0x90, 0xe5, 0x14, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x10, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x0c, 0xee, 0x0c, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x08, 0x10, 0x90, 0xe5, 0x01, 0xf0, 0x29, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0xe0, 0x7f, 0x04, 0x00, 0xf0, 0x40, 0x2d, 0xe9, 0x00, 0x50, 0x51, 0xe2, 0xf0, 0x80, 0xbd, 0x08, 0x05, 0x1a, 0xa0, 0xe3, 0x52, 0x6c, 0xa0, 0xe3, 0x02, 0x14, 0x40, 0xe3, 0x53, 0x4c, 0xa0, 0xe3, 0x02, 0x64, 0x40, 0xe3, 0x00, 0x70, 0xe0, 0xe3, 0x02, 0x44, 0x40, 0xe3, 0x40, 0x00, 0x55, 0xe3, 0x00, 0x30, 0xa0, 0xe3, 0x07, 0xc0, 0xa0, 0xe1, 0x05, 0x20, 0xa0, 0x31, 0x40, 0x20, 0xa0, 0x23, 0x30, 0x20, 0x81, 0xe5, 0x34, 0x20, 0x81, 0xe5, 0x38, 0x20, 0x81, 0xe5, 0x00, 0xc0, 0xc6, 0xe5, 0x01, 0x30, 0x83, 0xe2, 0x03, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0xca, 0x08, 0x30, 0x91, 0xe5, 0x02, 0x31, 0x83, 0xe3, 0x08, 0x30, 0x81, 0xe5, 0x08, 0x30, 0x91, 0xe5, 0x00, 0x00, 0x53, 0xe3, 0xfc, 0xff, 0xff, 0xba, 0x1c, 0x30, 0x91, 0xe5, 0x73, 0x30, 0xef, 0xe6, 0x03, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x8a, 0x00, 0x30, 0xa0, 0xe3, 0x00, 0xe0, 0xd4, 0xe5, 0x00, 0x00, 0x50, 0xe3, 0x00, 0xc0, 0xa0, 0xe1, 0x01, 0x30, 0x83, 0xe2, 0x7e, 0xe0, 0xef, 0xe6, 0x06, 0x00, 0x00, 0x0a, 0x03, 0x00, 0x52, 0xe1, 0x01, 0xe0, 0xcc, 0xe4, 0x0c, 0x00, 0xa0, 0xe1, 0xf5, 0xff, 0xff, 0xca, 0x02, 0x50, 0x55, 0xe0, 0xdc, 0xff, 0xff, 0x1a, 0xf0, 0x80, 0xbd, 0xe8, 0x03, 0x00, 0x52, 0xe1, 0x01, 0xc0, 0x83, 0xe2, 0x02, 0x30, 0x83, 0xe2, 0xf8, 0xff, 0xff, 0xda, 0x0c, 0x00, 0x52, 0xe1, 0x00, 0xc0, 0xd4, 0xe5, 0xf5, 0xff, 0xff, 0xda, 0x03, 0x00, 0x52, 0xe1, 0x00, 0xc0, 0xd4, 0xe5, 0x01, 0xc0, 0x83, 0xe2, 0x02, 0x30, 0x83, 0xe2, 0xf7, 0xff, 0xff, 0xca, 0x02, 0x50, 0x55, 0xe0, 0xcd, 0xff, 0xff, 0x1a, 0xf0, 0x80, 0xbd, 0xe8, 0xf0, 0x40, 0x2d, 0xe9, 0x00, 0x60, 0x51, 0xe2, 0xf0, 0x80, 0xbd, 0x08, 0x05, 0x1a, 0xa0, 0xe3, 0x52, 0x5c, 0xa0, 0xe3, 0x02, 0x14, 0x40, 0xe3, 0x53, 0x4c, 0xa0, 0xe3, 0x02, 0x54, 0x40, 0xe3, 0x00, 0x70, 0xe0, 0xe3, 0x02, 0x44, 0x40, 0xe3, 0x40, 0x00, 0x56, 0xe3, 0x06, 0x20, 0xa0, 0x31, 0x40, 0x20, 0xa0, 0x23, 0x30, 0x20, 0x81, 0xe5, 0x00, 0x00, 0x50, 0xe3, 0x34, 0x20, 0x81, 0xe5, 0x38, 0x20, 0x81, 0xe5, 0x1a, 0x00, 0x00, 0x0a, 0x00, 0xc0, 0xa0, 0xe1, 0x00, 0x30, 0xa0, 0xe3, 0x01, 0xe0, 0xdc, 0xe4, 0x01, 0x30, 0x83, 0xe2, 0x03, 0x00, 0x52, 0xe1, 0x00, 0xe0, 0xc5, 0xe5, 0xfa, 0xff, 0xff, 0xca, 0x08, 0x30, 0x91, 0xe5, 0x02, 0x31, 0x83, 0xe3, 0x08, 0x30, 0x81, 0xe5, 0x08, 0x30, 0x91, 0xe5, 0x00, 0x00, 0x53, 0xe3, 0xfc, 0xff, 0xff, 0xba, 0x1c, 0x30, 0x91, 0xe5, 0x73, 0x30, 0xef, 0xe6, 0x03, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x8a, 0x00, 0x30, 0xa0, 0xe3, 0x00, 0xc0, 0xd4, 0xe5, 0x01, 0x30, 0x83, 0xe2, 0x03, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0xca, 0x00, 0x00, 0x50, 0xe3, 0x02, 0x00, 0x80, 0x10, 0x02, 0x60, 0x56, 0xe0, 0xdd, 0xff, 0xff, 0x1a, 0xf0, 0x80, 0xbd, 0xe8, 0x00, 0x30, 0xa0, 0xe1, 0x07, 0xc0, 0xa0, 0xe1, 0x00, 0xc0, 0xc5, 0xe5, 0x01, 0x30, 0x83, 0xe2, 0x03, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0xca, 0xe4, 0xff, 0xff, 0xea, 0xf0, 0x43, 0x2d, 0xe9, 0x0f, 0x80, 0x0c, 0xe3, 0xff, 0x8f, 0x4f, 0xe3, 0x05, 0x5a, 0xa0, 0xe3, 0x02, 0x54, 0x40, 0xe3, 0x01, 0x7a, 0xa0, 0xe3, 0x00, 0x72, 0x40, 0xe3, 0x14, 0xd0, 0x4d, 0xe2, 0x00, 0x60, 0xa0, 0xe1, 0x06, 0x40, 0xa0, 0xe1, 0x01, 0x30, 0xd4, 0xe4, 0x01, 0x00, 0x53, 0xe3, 0x1e, 0x00, 0x00, 0x0a, 0x02, 0x00, 0x53, 0xe3, 0x54, 0x00, 0x00, 0x0a, 0x03, 0x00, 0x53, 0xe3, 0x57, 0x00, 0x00, 0x0a, 0x04, 0x00, 0x53, 0xe3, 0x5b, 0x00, 0x00, 0x0a, 0x05, 0x00, 0x53, 0xe3, 0x60, 0x00, 0x00, 0x0a, 0x06, 0x00, 0x53, 0xe3, 0x6f, 0x00, 0x00, 0x0a, 0x07, 0x00, 0x53, 0xe3, 0x7e, 0x00, 0x00, 0x0a, 0x08, 0x00, 0x53, 0xe3, 0x8b, 0x00, 0x00, 0x1a, 0xb0, 0x80, 0xcd, 0xe1, 0x0d, 0x90, 0xa0, 0xe1, 0x08, 0x60, 0x8d, 0xe2, 0x02, 0x10, 0xa0, 0xe3, 0x09, 0x00, 0xa0, 0xe1, 0xaa, 0xff, 0xff, 0xeb, 0x01, 0x10, 0xa0, 0xe3, 0x06, 0x00, 0xa0, 0xe1, 0x6a, 0xff, 0xff, 0xeb, 0x08, 0x30, 0xdd, 0xe5, 0x01, 0x00, 0x13, 0xe3, 0xf6, 0xff, 0xff, 0x1a, 0x04, 0x60, 0xa0, 0xe1, 0x06, 0x40, 0xa0, 0xe1, 0x01, 0x30, 0xd4, 0xe4, 0x01, 0x00, 0x53, 0xe3, 0xe0, 0xff, 0xff, 0x1a, 0x02, 0x34, 0xa0, 0xe3, 0x01, 0x1a, 0xa0, 0xe3, 0x60, 0x20, 0x93, 0xe5, 0x0f, 0x2c, 0xc2, 0xe3, 0x02, 0x2c, 0x82, 0xe3, 0x60, 0x20, 0x83, 0xe5, 0x60, 0x20, 0x93, 0xe5, 0x0f, 0x2a, 0xc2, 0xe3, 0x02, 0x2a, 0x82, 0xe3, 0x60, 0x20, 0x83, 0xe5, 0x60, 0x20, 0x93, 0xe5, 0x0f, 0x28, 0xc2, 0xe3, 0x02, 0x28, 0x82, 0xe3, 0x60, 0x20, 0x83, 0xe5, 0x60, 0x20, 0x93, 0xe5, 0x0f, 0x26, 0xc2, 0xe3, 0x02, 0x26, 0x82, 0xe3, 0x60, 0x20, 0x83, 0xe5, 0x6c, 0x39, 0x97, 0xe5, 0x01, 0x38, 0x83, 0xe3, 0x6c, 0x39, 0x87, 0xe5, 0x40, 0x39, 0x97, 0xe5, 0x02, 0x31, 0x83, 0xe3, 0x40, 0x39, 0x87, 0xe5, 0x6c, 0x39, 0x97, 0xe5, 0x01, 0x30, 0x83, 0xe3, 0x6c, 0x39, 0x87, 0xe5, 0x40, 0x39, 0x97, 0xe5, 0x03, 0x34, 0xc3, 0xe3, 0x01, 0x34, 0x83, 0xe3, 0x40, 0x39, 0x87, 0xe5, 0x40, 0x39, 0x97, 0xe5, 0x03, 0x3c, 0xc3, 0xe3, 0x40, 0x39, 0x87, 0xe5, 0x40, 0x39, 0x97, 0xe5, 0x0f, 0x30, 0xc3, 0xe3, 0x05, 0x30, 0x83, 0xe3, 0x40, 0x39, 0x87, 0xe5, 0x24, 0x10, 0x85, 0xe5, 0x04, 0x30, 0x95, 0xe5, 0x02, 0x31, 0x83, 0xe3, 0x83, 0x30, 0x83, 0xe3, 0x04, 0x30, 0x85, 0xe5, 0x04, 0x30, 0x95, 0xe5, 0x00, 0x00, 0x53, 0xe3, 0xfc, 0xff, 0xff, 0xba, 0x08, 0x30, 0x95, 0xe5, 0x04, 0x60, 0xa0, 0xe1, 0x03, 0x30, 0xc3, 0xe3, 0x44, 0x30, 0x83, 0xe3, 0x08, 0x30, 0x85, 0xe5, 0x18, 0x30, 0x95, 0xe5, 0x02, 0x31, 0x83, 0xe3, 0x02, 0x39, 0x83, 0xe3, 0x18, 0x30, 0x85, 0xe5, 0xa4, 0xff, 0xff, 0xea, 0x08, 0x30, 0x95, 0xe5, 0x04, 0x60, 0xa0, 0xe1, 0xb0, 0x30, 0xc3, 0xe3, 0x08, 0x30, 0x85, 0xe5, 0x9f, 0xff, 0xff, 0xea, 0x08, 0x30, 0x95, 0xe5, 0x04, 0x60, 0xa0, 0xe1, 0xb0, 0x30, 0xc3, 0xe3, 0x80, 0x30, 0x83, 0xe3, 0x08, 0x30, 0x85, 0xe5, 0x99, 0xff, 0xff, 0xea, 0x01, 0x90, 0xd6, 0xe5, 0x02, 0x00, 0x86, 0xe2, 0x09, 0x10, 0xa0, 0xe1, 0x01, 0x60, 0x89, 0xe2, 0x06, 0x60, 0x84, 0xe0, 0x56, 0xff, 0xff, 0xeb, 0x92, 0xff, 0xff, 0xea, 0x06, 0x10, 0xd6, 0xe5, 0x09, 0x60, 0x86, 0xe2, 0x07, 0x00, 0x56, 0xe5, 0x04, 0x20, 0x56, 0xe5, 0x08, 0x30, 0x56, 0xe5, 0x02, 0xe0, 0x56, 0xe5, 0x06, 0xc0, 0x56, 0xe5, 0x01, 0x24, 0x82, 0xe1, 0x00, 0x34, 0x83, 0xe1, 0x01, 0x10, 0x56, 0xe5, 0x05, 0x00, 0x56, 0xe5, 0x0e, 0x28, 0x82, 0xe1, 0x0c, 0x38, 0x83, 0xe1, 0x01, 0x1c, 0x82, 0xe1, 0x00, 0x0c, 0x83, 0xe1, 0x45, 0xff, 0xff, 0xeb, 0x81, 0xff, 0xff, 0xea, 0x06, 0x10, 0xd6, 0xe5, 0x09, 0x60, 0x86, 0xe2, 0x07, 0x00, 0x56, 0xe5, 0x04, 0x20, 0x56, 0xe5, 0x08, 0x30, 0x56, 0xe5, 0x02, 0xe0, 0x56, 0xe5, 0x06, 0xc0, 0x56, 0xe5, 0x01, 0x24, 0x82, 0xe1, 0x00, 0x34, 0x83, 0xe1, 0x01, 0x10, 0x56, 0xe5, 0x05, 0x00, 0x56, 0xe5, 0x0e, 0x28, 0x82, 0xe1, 0x0c, 0x38, 0x83, 0xe1, 0x01, 0x1c, 0x82, 0xe1, 0x00, 0x0c, 0x83, 0xe1, 0xf7, 0xfe, 0xff, 0xeb, 0x70, 0xff, 0xff, 0xea, 0x0d, 0x90, 0xa0, 0xe1, 0x08, 0x60, 0x8d, 0xe2, 0x05, 0x30, 0xa0, 0xe3, 0x00, 0x30, 0xcd, 0xe5, 0x01, 0x10, 0xa0, 0xe3, 0x09, 0x00, 0xa0, 0xe1, 0x2c, 0xff, 0xff, 0xeb, 0x01, 0x10, 0xa0, 0xe3, 0x06, 0x00, 0xa0, 0xe1, 0xec, 0xfe, 0xff, 0xeb, 0x08, 0x30, 0xdd, 0xe5, 0x01, 0x00, 0x13, 0xe3, 0xf6, 0xff, 0xff, 0x1a, 0x04, 0x60, 0xa0, 0xe1, 0x80, 0xff, 0xff, 0xea, 0x14, 0xd0, 0x8d, 0xe2, 0xf0, 0x83, 0xbd, 0xe8, 0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x4e, 0x55, 0x00, 0x22, 0x49, 0xdd, 0x5e, 0x04, 0xd9, 0x56, 0xe6, 0xf2, 0x18, 0x7b, 0x95, 0x0c, 0xc5, 0xa5, 0xff, 0xc5, 0x58, 0xd3, 0x90, 0x2f, 0x6c, 0x69, 0x62, 0x2f, 0x6c, 0x64, 0x2d, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x2d, 0x61, 0x72, 0x6d, 0x68, 0x66, 0x2e, 0x73, 0x6f, 0x2e, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0xfe, 0xff, 0x6f, 0x40, 0x85, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3c, 0x85, 0x02, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2c, 0x85, 0x02, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xfb, 0xff, 0xff, 0x6f, 0x01, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x85, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; fel_write(ctx, 0x00028000, (void *)&payload[0], sizeof(payload)); if(swapbuf) *swapbuf = 0x0002a000; if(swaplen) *swaplen = 65536; if(cmdlen) *cmdlen = 4096; return 1; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { fel_write(ctx, 0x00029000, (void *)cbuf, clen); fel_exec(ctx, 0x00028000); return 1; } enum { SID_PRCTL = 0x03006000 + 0x040, SID_PRKEY = 0x03006000 + 0x050, SID_RDKEY = 0x03006000 + 0x060, EFUSE_HV_SWITCH = 0x07090000 + 0x204, }; static uint32_t efuse_read(struct xfel_ctx_t * ctx, uint32_t offset) { uint32_t val; val = payload_read32(ctx, SID_PRCTL); val &= ~((0x1ff << 16) | 0x3); val |= offset << 16; payload_write32(ctx, SID_PRCTL, val); val &= ~((0xff << 8) | 0x3); val |= (0xac << 8) | 0x2; payload_write32(ctx, SID_PRCTL, val); while(payload_read32(ctx, SID_PRCTL) & 0x2); val &= ~((0x1ff << 16) | (0xff << 8) | 0x3); payload_write32(ctx, SID_PRCTL, val); val = payload_read32(ctx, SID_RDKEY); return val; } static void efuse_write(struct xfel_ctx_t * ctx, uint32_t offset, uint32_t value) { uint32_t val; payload_write32(ctx, EFUSE_HV_SWITCH, 0x1); payload_write32(ctx, SID_PRKEY, value); val = payload_read32(ctx, SID_PRCTL); val &= ~((0x1ff << 16) | 0x3); val |= offset << 16; payload_write32(ctx, SID_PRCTL, val); val &= ~((0xff << 8) | 0x3); val |= (0xac << 8) | 0x1; payload_write32(ctx, SID_PRCTL, val); while(payload_read32(ctx, SID_PRCTL) & 0x1); val &= ~((0x1ff << 16) | (0xff << 8) | 0x3); payload_write32(ctx, SID_PRCTL, val); payload_write32(ctx, EFUSE_HV_SWITCH, 0x0); } static const struct sid_section_t { char * name; uint32_t offset; uint32_t size_bits; } sids[] = { { "chipid", 0x0000, 128 }, { "brom-conf-try", 0x0010, 32 }, { "thermal-sensor", 0x0014, 64 }, { "ft-zone", 0x001c, 128 }, { "tvout", 0x002c, 32 }, { "tvout-gamma", 0x0030, 64 }, { "oem-program", 0x0038, 64 }, { "write-protect", 0x0040, 32 }, { "read-protect", 0x0044, 32 }, { "reserved1", 0x0048, 64 }, { "huk", 0x0050, 192 }, { "reserved2", 0x0068, 64 }, { "rotpk", 0x0070, 256 }, { "ssk", 0x0090, 256 }, { "rssk", 0x00b0, 128 }, { "hdcp-hash", 0x00c0, 128 }, { "nv1", 0x00d0, 32 }, { "nv2", 0x00d4, 32 }, { "reserved3", 0x00d8, 96 }, { "oem-program-secure", 0x00e4, 224 }, }; static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { if(argc > 0) { if(!strcmp(argv[0], "efuse")) { argc -= 1; argv += 1; if(argc > 0) { if(!strcmp(argv[0], "dump") && (argc == 1)) { uint32_t buffer[2048 / 4]; for(int n = 0; n < ARRAY_SIZE(sids); n++) { uint32_t count = sids[n].size_bits / 32; for(int i = 0; i < count; i++) buffer[i] = efuse_read(ctx, sids[n].offset + i * 4); printf("%s:(0x%04x %d-bits)", sids[n].name, sids[n].offset, sids[n].size_bits); for(int i = 0; i < count; i++) { if(i >= 0 && ((i % 8) == 0)) printf("\r\n%-4s", ""); printf("%08x ", buffer[i]); } printf("\r\n"); } return 1; } else if(!strcmp(argv[0], "read32") && (argc == 2)) { uint32_t offset = strtoul(argv[1], NULL, 0); printf("0x%08x\r\n", efuse_read(ctx, offset)); return 1; } else if(!strcmp(argv[0], "write32") && (argc == 3)) { uint32_t offset = strtoul(argv[1], NULL, 0); size_t value = strtoul(argv[2], NULL, 0); efuse_write(ctx, offset, value); return 1; } else if(!strcmp(argv[0], "write") && (argc == 3)) { uint32_t offset = strtoul(argv[1], NULL, 0); uint64_t len; void * buf = file_load(argv[2], &len); if(buf && (len > 0)) { uint8_t * p = buf; uint32_t l = len; uint32_t o = 0; uint32_t v; while(l >= 4) { v = *((uint32_t *)p); efuse_write(ctx, offset + o, v); l -= 4; o += 4; p += 4; } if(l > 0) { uint32_t v = 0; for(int i = 0; i < l; i++) v = ((v << 8) & 0xffffff00) | p[i]; efuse_write(ctx, offset + o, v); } free(buf); return 1; } } } } } printf("usage:\r\n"); printf(" xfel extra efuse dump - Dump all of the efuse information\r\n"); printf(" xfel extra efuse read32 - Read 32-bits value from efuse\r\n"); printf(" xfel extra efuse write32 - Write 32-bits value to efuse\r\n"); printf(" xfel extra efuse write - Write file to efuse\r\n"); return 0; } struct chip_t r528_t113 = { .name = "R528/T113", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/chips/r818.c000066400000000000000000000016511512120643700144360ustar00rootroot00000000000000#include static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00185500) return 1; return 0; } static int chip_reset(struct xfel_ctx_t * ctx) { return 0; } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { return 0; } static int chip_jtag(struct xfel_ctx_t * ctx) { return 0; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { return 0; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { return 0; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { return 0; } static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { return 0; } struct chip_t r818 = { .name = "R818", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/chips/t536.c000066400000000000000000000016571512120643700144430ustar00rootroot00000000000000#include static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00191200) return 1; return 0; } static int chip_reset(struct xfel_ctx_t * ctx) { return 0; } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { return 0; } static int chip_jtag(struct xfel_ctx_t * ctx) { return 0; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { return 0; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { return 0; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { return 0; } static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { return 0; } struct chip_t t536 = { .name = "T536/MR536", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/chips/v3s_s3.c000066400000000000000000002322611512120643700150570ustar00rootroot00000000000000#include static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00168100) return 1; return 0; } static uint32_t payload_read32(struct xfel_ctx_t * ctx, uint32_t addr) { static const uint8_t payload[] = { 0x00, 0x00, 0xa0, 0xe3, 0x17, 0x0f, 0x08, 0xee, 0x15, 0x0f, 0x07, 0xee, 0xd5, 0x0f, 0x07, 0xee, 0x9a, 0x0f, 0x07, 0xee, 0x95, 0x0f, 0x07, 0xee, 0xff, 0xff, 0xff, 0xea, 0x0c, 0x00, 0x9f, 0xe5, 0x0c, 0x10, 0x8f, 0xe2, 0x00, 0x20, 0x90, 0xe5, 0x00, 0x20, 0x81, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, }; uint32_t adr = cpu_to_le32(addr); uint32_t val; fel_write(ctx, ctx->version.scratchpad, (void *)payload, sizeof(payload)); fel_write(ctx, ctx->version.scratchpad + sizeof(payload), (void *)&adr, sizeof(adr)); fel_exec(ctx, ctx->version.scratchpad); fel_read(ctx, ctx->version.scratchpad + sizeof(payload) + sizeof(adr), (void *)&val, sizeof(val)); return le32_to_cpu(val); } static void payload_write32(struct xfel_ctx_t * ctx, uint32_t addr, uint32_t val) { static const uint8_t payload[] = { 0x00, 0x00, 0xa0, 0xe3, 0x17, 0x0f, 0x08, 0xee, 0x15, 0x0f, 0x07, 0xee, 0xd5, 0x0f, 0x07, 0xee, 0x9a, 0x0f, 0x07, 0xee, 0x95, 0x0f, 0x07, 0xee, 0xff, 0xff, 0xff, 0xea, 0x08, 0x00, 0x9f, 0xe5, 0x08, 0x10, 0x9f, 0xe5, 0x00, 0x10, 0x80, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, }; uint32_t params[2] = { cpu_to_le32(addr), cpu_to_le32(val), }; fel_write(ctx, ctx->version.scratchpad, (void *)payload, sizeof(payload)); fel_write(ctx, ctx->version.scratchpad + sizeof(payload), (void *)params, sizeof(params)); fel_exec(ctx, ctx->version.scratchpad); } static int chip_reset(struct xfel_ctx_t * ctx) { uint32_t val; val = payload_read32(ctx, 0x01c20ca0 + 0x18); val &= ~(0xf << 4); val |= (1 << 4) | (0x1 << 0); payload_write32(ctx, 0x01c20ca0 + 0x18, val); payload_write32(ctx, 0x01c20ca0 + 0x10, (0xa57 << 1) | (1 << 0)); return 1; } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { uint32_t id[4]; id[0] = payload_read32(ctx, 0x01c23800 + 0x0); id[1] = payload_read32(ctx, 0x01c23800 + 0x4); id[2] = payload_read32(ctx, 0x01c23800 + 0x8); id[3] = payload_read32(ctx, 0x01c23800 + 0xc); sprintf(sid, "%08x%08x%08x%08x", id[0], id[1], id[2], id[3]); return 1; } static int chip_jtag(struct xfel_ctx_t * ctx) { static const uint8_t payload[] = { 0x00, 0x00, 0xa0, 0xe3, 0x17, 0x0f, 0x08, 0xee, 0x15, 0x0f, 0x07, 0xee, 0xd5, 0x0f, 0x07, 0xee, 0x9a, 0x0f, 0x07, 0xee, 0x95, 0x0f, 0x07, 0xee, 0xff, 0xff, 0xff, 0xea, 0x40, 0x00, 0xa0, 0xe3, 0x00, 0xd0, 0x80, 0xe5, 0x04, 0xe0, 0x80, 0xe5, 0x00, 0xe0, 0x0f, 0xe1, 0x08, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x0c, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x1c, 0xee, 0x10, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x14, 0xe0, 0x80, 0xe5, 0x0b, 0x00, 0x00, 0xeb, 0x40, 0x00, 0xa0, 0xe3, 0x00, 0xd0, 0x90, 0xe5, 0x04, 0xe0, 0x90, 0xe5, 0x14, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x10, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x0c, 0xee, 0x0c, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x08, 0x10, 0x90, 0xe5, 0x01, 0xf0, 0x29, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x30, 0xa0, 0xe3, 0xc2, 0x31, 0x40, 0xe3, 0xb4, 0x28, 0x93, 0xe5, 0x0f, 0x20, 0xc2, 0xe3, 0x03, 0x20, 0x82, 0xe3, 0xb4, 0x28, 0x83, 0xe5, 0xb4, 0x28, 0x93, 0xe5, 0xf0, 0x20, 0xc2, 0xe3, 0x30, 0x20, 0x82, 0xe3, 0xb4, 0x28, 0x83, 0xe5, 0xb4, 0x28, 0x93, 0xe5, 0x0f, 0x2a, 0xc2, 0xe3, 0x03, 0x2a, 0x82, 0xe3, 0xb4, 0x28, 0x83, 0xe5, 0xb4, 0x28, 0x93, 0xe5, 0x0f, 0x26, 0xc2, 0xe3, 0x03, 0x26, 0x82, 0xe3, 0xb4, 0x28, 0x83, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, 0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x4e, 0x55, 0x00, 0xf9, 0xab, 0xa6, 0x91, 0xc7, 0x66, 0x94, 0x06, 0x3b, 0x6b, 0x26, 0xbf, 0xd1, 0x8f, 0x7f, 0x36, 0x3d, 0xa7, 0x39, 0x1f, 0x2f, 0x6c, 0x69, 0x62, 0x2f, 0x6c, 0x64, 0x2d, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x2d, 0x61, 0x72, 0x6d, 0x68, 0x66, 0x2e, 0x73, 0x6f, 0x2e, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0xfe, 0xff, 0x6f, 0x1c, 0x81, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x18, 0x81, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08, 0x81, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xfb, 0xff, 0xff, 0x6f, 0x01, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; fel_write(ctx, 0x00008000, (void *)&payload[0], sizeof(payload)); fel_exec(ctx, 0x00008000); return 1; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { static const uint8_t v3s_payload[] = { 0x00, 0x00, 0xa0, 0xe3, 0x17, 0x0f, 0x08, 0xee, 0x15, 0x0f, 0x07, 0xee, 0xd5, 0x0f, 0x07, 0xee, 0x9a, 0x0f, 0x07, 0xee, 0x95, 0x0f, 0x07, 0xee, 0xff, 0xff, 0xff, 0xea, 0x40, 0x00, 0xa0, 0xe3, 0x00, 0xd0, 0x80, 0xe5, 0x04, 0xe0, 0x80, 0xe5, 0x00, 0xe0, 0x0f, 0xe1, 0x08, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x0c, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x1c, 0xee, 0x10, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x14, 0xe0, 0x80, 0xe5, 0x5e, 0x01, 0x00, 0xeb, 0x8a, 0x01, 0x00, 0xeb, 0xd3, 0x01, 0x00, 0xeb, 0x40, 0x00, 0xa0, 0xe3, 0x00, 0xd0, 0x90, 0xe5, 0x04, 0xe0, 0x90, 0xe5, 0x14, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x10, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x0c, 0xee, 0x0c, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x08, 0x10, 0x90, 0xe5, 0x01, 0xf0, 0x29, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0xe1, 0x91, 0x00, 0x00, 0x3a, 0x00, 0x00, 0xa0, 0x03, 0x0e, 0xf0, 0xa0, 0x01, 0x01, 0x40, 0x2d, 0xe9, 0x04, 0x20, 0x52, 0xe2, 0x20, 0x00, 0x00, 0xba, 0x03, 0xc0, 0x10, 0xe2, 0x28, 0x00, 0x00, 0x1a, 0x03, 0xc0, 0x11, 0xe2, 0x32, 0x00, 0x00, 0x1a, 0x08, 0x20, 0x52, 0xe2, 0x12, 0x00, 0x00, 0xba, 0x14, 0x20, 0x52, 0xe2, 0x0b, 0x00, 0x00, 0xba, 0x10, 0x00, 0x2d, 0xe9, 0x18, 0x50, 0xb1, 0xe8, 0x18, 0x50, 0xa0, 0xe8, 0x18, 0x50, 0xb1, 0xe8, 0x18, 0x50, 0xa0, 0xe8, 0x20, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x10, 0x00, 0x72, 0xe3, 0x18, 0x50, 0xb1, 0xa8, 0x18, 0x50, 0xa0, 0xa8, 0x10, 0x20, 0x42, 0xa2, 0x10, 0x00, 0xbd, 0xe8, 0x14, 0x20, 0x92, 0xe2, 0x08, 0x50, 0xb1, 0xa8, 0x08, 0x50, 0xa0, 0xa8, 0x0c, 0x20, 0x52, 0xa2, 0xfb, 0xff, 0xff, 0xaa, 0x08, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x04, 0x20, 0x52, 0xe2, 0x04, 0x30, 0x91, 0xb4, 0x04, 0x30, 0x80, 0xb4, 0x08, 0x10, 0xb1, 0xa8, 0x08, 0x10, 0xa0, 0xa8, 0x04, 0x20, 0x42, 0xa2, 0x04, 0x20, 0x92, 0xe2, 0x01, 0x80, 0xbd, 0x08, 0x02, 0x00, 0x52, 0xe3, 0x01, 0x30, 0xd1, 0xe4, 0x01, 0x30, 0xc0, 0xe4, 0x01, 0x30, 0xd1, 0xa4, 0x01, 0x30, 0xc0, 0xa4, 0x01, 0x30, 0xd1, 0xc4, 0x01, 0x30, 0xc0, 0xc4, 0x01, 0x80, 0xbd, 0xe8, 0x04, 0xc0, 0x6c, 0xe2, 0x02, 0x00, 0x5c, 0xe3, 0x01, 0x30, 0xd1, 0xe4, 0x01, 0x30, 0xc0, 0xe4, 0x01, 0x30, 0xd1, 0xa4, 0x01, 0x30, 0xc0, 0xa4, 0x01, 0x30, 0xd1, 0xc4, 0x01, 0x30, 0xc0, 0xc4, 0x0c, 0x20, 0x52, 0xe0, 0xeb, 0xff, 0xff, 0xba, 0x03, 0xc0, 0x11, 0xe2, 0xcc, 0xff, 0xff, 0x0a, 0x03, 0x10, 0xc1, 0xe3, 0x04, 0xe0, 0x91, 0xe4, 0x02, 0x00, 0x5c, 0xe3, 0x36, 0x00, 0x00, 0xca, 0x1a, 0x00, 0x00, 0x0a, 0x0c, 0x00, 0x52, 0xe3, 0x10, 0x00, 0x00, 0xba, 0x0c, 0x20, 0x42, 0xe2, 0x30, 0x00, 0x2d, 0xe9, 0x2e, 0x34, 0xa0, 0xe1, 0x30, 0x50, 0xb1, 0xe8, 0x04, 0x3c, 0x83, 0xe1, 0x24, 0x44, 0xa0, 0xe1, 0x05, 0x4c, 0x84, 0xe1, 0x25, 0x54, 0xa0, 0xe1, 0x0c, 0x5c, 0x85, 0xe1, 0x2c, 0xc4, 0xa0, 0xe1, 0x0e, 0xcc, 0x8c, 0xe1, 0x38, 0x10, 0xa0, 0xe8, 0x10, 0x20, 0x52, 0xe2, 0xf3, 0xff, 0xff, 0xaa, 0x30, 0x00, 0xbd, 0xe8, 0x0c, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x2e, 0xc4, 0xa0, 0xe1, 0x04, 0xe0, 0x91, 0xe4, 0x0e, 0xcc, 0x8c, 0xe1, 0x04, 0xc0, 0x80, 0xe4, 0x04, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x03, 0x10, 0x41, 0xe2, 0xc9, 0xff, 0xff, 0xea, 0x0c, 0x00, 0x52, 0xe3, 0x10, 0x00, 0x00, 0xba, 0x0c, 0x20, 0x42, 0xe2, 0x30, 0x00, 0x2d, 0xe9, 0x2e, 0x38, 0xa0, 0xe1, 0x30, 0x50, 0xb1, 0xe8, 0x04, 0x38, 0x83, 0xe1, 0x24, 0x48, 0xa0, 0xe1, 0x05, 0x48, 0x84, 0xe1, 0x25, 0x58, 0xa0, 0xe1, 0x0c, 0x58, 0x85, 0xe1, 0x2c, 0xc8, 0xa0, 0xe1, 0x0e, 0xc8, 0x8c, 0xe1, 0x38, 0x10, 0xa0, 0xe8, 0x10, 0x20, 0x52, 0xe2, 0xf3, 0xff, 0xff, 0xaa, 0x30, 0x00, 0xbd, 0xe8, 0x0c, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x2e, 0xc8, 0xa0, 0xe1, 0x04, 0xe0, 0x91, 0xe4, 0x0e, 0xc8, 0x8c, 0xe1, 0x04, 0xc0, 0x80, 0xe4, 0x04, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x02, 0x10, 0x41, 0xe2, 0xae, 0xff, 0xff, 0xea, 0x0c, 0x00, 0x52, 0xe3, 0x10, 0x00, 0x00, 0xba, 0x0c, 0x20, 0x42, 0xe2, 0x30, 0x00, 0x2d, 0xe9, 0x2e, 0x3c, 0xa0, 0xe1, 0x30, 0x50, 0xb1, 0xe8, 0x04, 0x34, 0x83, 0xe1, 0x24, 0x4c, 0xa0, 0xe1, 0x05, 0x44, 0x84, 0xe1, 0x25, 0x5c, 0xa0, 0xe1, 0x0c, 0x54, 0x85, 0xe1, 0x2c, 0xcc, 0xa0, 0xe1, 0x0e, 0xc4, 0x8c, 0xe1, 0x38, 0x10, 0xa0, 0xe8, 0x10, 0x20, 0x52, 0xe2, 0xf3, 0xff, 0xff, 0xaa, 0x30, 0x00, 0xbd, 0xe8, 0x0c, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x2e, 0xcc, 0xa0, 0xe1, 0x04, 0xe0, 0x91, 0xe4, 0x0e, 0xc4, 0x8c, 0xe1, 0x04, 0xc0, 0x80, 0xe4, 0x04, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x01, 0x10, 0x41, 0xe2, 0x93, 0xff, 0xff, 0xea, 0x02, 0x10, 0x81, 0xe0, 0x02, 0x00, 0x80, 0xe0, 0x04, 0x20, 0x52, 0xe2, 0x1f, 0x00, 0x00, 0xba, 0x03, 0xc0, 0x10, 0xe2, 0x27, 0x00, 0x00, 0x1a, 0x03, 0xc0, 0x11, 0xe2, 0x30, 0x00, 0x00, 0x1a, 0x08, 0x20, 0x52, 0xe2, 0x11, 0x00, 0x00, 0xba, 0x10, 0x40, 0x2d, 0xe9, 0x14, 0x20, 0x52, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x18, 0x50, 0x31, 0xe9, 0x18, 0x50, 0x20, 0xe9, 0x18, 0x50, 0x31, 0xe9, 0x18, 0x50, 0x20, 0xe9, 0x20, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x10, 0x00, 0x72, 0xe3, 0x18, 0x50, 0x31, 0xa9, 0x18, 0x50, 0x20, 0xa9, 0x10, 0x20, 0x42, 0xa2, 0x14, 0x20, 0x92, 0xe2, 0x08, 0x50, 0x31, 0xa9, 0x08, 0x50, 0x20, 0xa9, 0x0c, 0x20, 0x42, 0xa2, 0x10, 0x40, 0xbd, 0xe8, 0x08, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x04, 0x20, 0x52, 0xe2, 0x04, 0x30, 0x31, 0xb5, 0x04, 0x30, 0x20, 0xb5, 0x08, 0x10, 0x31, 0xa9, 0x08, 0x10, 0x20, 0xa9, 0x04, 0x20, 0x42, 0xa2, 0x04, 0x20, 0x92, 0xe2, 0x0e, 0xf0, 0xa0, 0x01, 0x02, 0x00, 0x52, 0xe3, 0x01, 0x30, 0x71, 0xe5, 0x01, 0x30, 0x60, 0xe5, 0x01, 0x30, 0x71, 0xa5, 0x01, 0x30, 0x60, 0xa5, 0x01, 0x30, 0x71, 0xc5, 0x01, 0x30, 0x60, 0xc5, 0x0e, 0xf0, 0xa0, 0xe1, 0x02, 0x00, 0x5c, 0xe3, 0x01, 0x30, 0x71, 0xe5, 0x01, 0x30, 0x60, 0xe5, 0x01, 0x30, 0x71, 0xa5, 0x01, 0x30, 0x60, 0xa5, 0x01, 0x30, 0x71, 0xc5, 0x01, 0x30, 0x60, 0xc5, 0x0c, 0x20, 0x52, 0xe0, 0xec, 0xff, 0xff, 0xba, 0x03, 0xc0, 0x11, 0xe2, 0xce, 0xff, 0xff, 0x0a, 0x03, 0x10, 0xc1, 0xe3, 0x00, 0x30, 0x91, 0xe5, 0x02, 0x00, 0x5c, 0xe3, 0x36, 0x00, 0x00, 0xba, 0x1a, 0x00, 0x00, 0x0a, 0x0c, 0x00, 0x52, 0xe3, 0x10, 0x00, 0x00, 0xba, 0x0c, 0x20, 0x42, 0xe2, 0x30, 0x40, 0x2d, 0xe9, 0x03, 0xe4, 0xa0, 0xe1, 0x38, 0x10, 0x31, 0xe9, 0x2c, 0xec, 0x8e, 0xe1, 0x0c, 0xc4, 0xa0, 0xe1, 0x25, 0xcc, 0x8c, 0xe1, 0x05, 0x54, 0xa0, 0xe1, 0x24, 0x5c, 0x85, 0xe1, 0x04, 0x44, 0xa0, 0xe1, 0x23, 0x4c, 0x84, 0xe1, 0x30, 0x50, 0x20, 0xe9, 0x10, 0x20, 0x52, 0xe2, 0xf3, 0xff, 0xff, 0xaa, 0x30, 0x40, 0xbd, 0xe8, 0x0c, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x03, 0xc4, 0xa0, 0xe1, 0x04, 0x30, 0x31, 0xe5, 0x23, 0xcc, 0x8c, 0xe1, 0x04, 0xc0, 0x20, 0xe5, 0x04, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x03, 0x10, 0x81, 0xe2, 0xca, 0xff, 0xff, 0xea, 0x0c, 0x00, 0x52, 0xe3, 0x10, 0x00, 0x00, 0xba, 0x0c, 0x20, 0x42, 0xe2, 0x30, 0x40, 0x2d, 0xe9, 0x03, 0xe8, 0xa0, 0xe1, 0x38, 0x10, 0x31, 0xe9, 0x2c, 0xe8, 0x8e, 0xe1, 0x0c, 0xc8, 0xa0, 0xe1, 0x25, 0xc8, 0x8c, 0xe1, 0x05, 0x58, 0xa0, 0xe1, 0x24, 0x58, 0x85, 0xe1, 0x04, 0x48, 0xa0, 0xe1, 0x23, 0x48, 0x84, 0xe1, 0x30, 0x50, 0x20, 0xe9, 0x10, 0x20, 0x52, 0xe2, 0xf3, 0xff, 0xff, 0xaa, 0x30, 0x40, 0xbd, 0xe8, 0x0c, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x03, 0xc8, 0xa0, 0xe1, 0x04, 0x30, 0x31, 0xe5, 0x23, 0xc8, 0x8c, 0xe1, 0x04, 0xc0, 0x20, 0xe5, 0x04, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x02, 0x10, 0x81, 0xe2, 0xaf, 0xff, 0xff, 0xea, 0x0c, 0x00, 0x52, 0xe3, 0x10, 0x00, 0x00, 0xba, 0x0c, 0x20, 0x42, 0xe2, 0x30, 0x40, 0x2d, 0xe9, 0x03, 0xec, 0xa0, 0xe1, 0x38, 0x10, 0x31, 0xe9, 0x2c, 0xe4, 0x8e, 0xe1, 0x0c, 0xcc, 0xa0, 0xe1, 0x25, 0xc4, 0x8c, 0xe1, 0x05, 0x5c, 0xa0, 0xe1, 0x24, 0x54, 0x85, 0xe1, 0x04, 0x4c, 0xa0, 0xe1, 0x23, 0x44, 0x84, 0xe1, 0x30, 0x50, 0x20, 0xe9, 0x10, 0x20, 0x52, 0xe2, 0xf3, 0xff, 0xff, 0xaa, 0x30, 0x40, 0xbd, 0xe8, 0x0c, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x03, 0xcc, 0xa0, 0xe1, 0x04, 0x30, 0x31, 0xe5, 0x23, 0xc4, 0x8c, 0xe1, 0x04, 0xc0, 0x20, 0xe5, 0x04, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x01, 0x10, 0x81, 0xe2, 0x94, 0xff, 0xff, 0xea, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x2d, 0xe9, 0xff, 0x10, 0x01, 0xe2, 0x04, 0x00, 0x52, 0xe3, 0x1c, 0x00, 0x00, 0xba, 0x03, 0x30, 0x10, 0xe2, 0x07, 0x00, 0x00, 0x0a, 0x04, 0x30, 0x63, 0xe2, 0x03, 0x20, 0x42, 0xe0, 0x02, 0x00, 0x53, 0xe3, 0x01, 0x10, 0xc0, 0xe4, 0x01, 0x10, 0xc0, 0xa4, 0x01, 0x10, 0xc0, 0xc4, 0x04, 0x00, 0x52, 0xe3, 0x12, 0x00, 0x00, 0xba, 0x01, 0x34, 0x81, 0xe1, 0x03, 0x38, 0x83, 0xe1, 0x20, 0x00, 0x52, 0xe3, 0x0a, 0x00, 0x00, 0xba, 0x70, 0x00, 0x2d, 0xe9, 0x03, 0x40, 0xa0, 0xe1, 0x03, 0x50, 0xa0, 0xe1, 0x03, 0x60, 0xa0, 0xe1, 0x78, 0x00, 0xa0, 0xe8, 0x10, 0x20, 0x42, 0xe2, 0x10, 0x00, 0x52, 0xe3, 0xfb, 0xff, 0xff, 0xca, 0x70, 0x00, 0xbd, 0xe8, 0x04, 0x00, 0x52, 0xe3, 0x03, 0x00, 0x00, 0xba, 0x04, 0x30, 0x80, 0xe4, 0x04, 0x20, 0x42, 0xe2, 0x04, 0x00, 0x52, 0xe3, 0xfb, 0xff, 0xff, 0xaa, 0x00, 0x00, 0x52, 0xe3, 0x01, 0x00, 0xbd, 0x08, 0x0e, 0xf0, 0xa0, 0x01, 0x02, 0x00, 0x52, 0xe3, 0x01, 0x10, 0xc0, 0xe4, 0x01, 0x10, 0xc0, 0xa4, 0x01, 0x10, 0xc0, 0xc4, 0x01, 0x00, 0xbd, 0xe8, 0x0e, 0xf0, 0xa0, 0xe1, 0x00, 0x20, 0xa0, 0xe3, 0x02, 0x39, 0xa0, 0xe3, 0xc2, 0x21, 0x40, 0xe3, 0x00, 0x00, 0xa0, 0xe3, 0x04, 0xe0, 0x2d, 0xe5, 0xf7, 0xe0, 0xa0, 0xe3, 0x28, 0x18, 0x92, 0xe5, 0x0d, 0xc0, 0xa0, 0xe3, 0xc2, 0x31, 0x40, 0xe3, 0x0f, 0x10, 0xc1, 0xe3, 0x03, 0x10, 0x81, 0xe3, 0x28, 0x18, 0x82, 0xe5, 0x28, 0x18, 0x92, 0xe5, 0xf0, 0x10, 0xc1, 0xe3, 0x30, 0x10, 0x81, 0xe3, 0x28, 0x18, 0x82, 0xe5, 0x6c, 0x10, 0x92, 0xe5, 0x01, 0x18, 0x81, 0xe3, 0x6c, 0x10, 0x82, 0xe5, 0xd8, 0x12, 0x92, 0xe5, 0x01, 0x18, 0x81, 0xe3, 0xd8, 0x12, 0x82, 0xe5, 0x04, 0x00, 0x83, 0xe5, 0x08, 0xe0, 0x83, 0xe5, 0x10, 0x00, 0x83, 0xe5, 0x0c, 0x20, 0x93, 0xe5, 0x80, 0x20, 0x82, 0xe3, 0x0c, 0x20, 0x83, 0xe5, 0x00, 0xc0, 0x83, 0xe5, 0x04, 0x00, 0x83, 0xe5, 0x0c, 0x20, 0x93, 0xe5, 0x80, 0x20, 0xc2, 0xe3, 0x0c, 0x20, 0x83, 0xe5, 0x0c, 0x20, 0x93, 0xe5, 0x1f, 0x20, 0xc2, 0xe3, 0x03, 0x20, 0x82, 0xe3, 0x0c, 0x20, 0x83, 0xe5, 0x04, 0xf0, 0x9d, 0xe4, 0x02, 0x29, 0xa0, 0xe3, 0xc2, 0x21, 0x40, 0xe3, 0x7c, 0x30, 0x92, 0xe5, 0x02, 0x00, 0x13, 0xe3, 0xfc, 0xff, 0xff, 0x0a, 0x00, 0x00, 0x82, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x30, 0xa0, 0xe3, 0x02, 0x01, 0x00, 0xe3, 0xc2, 0x31, 0x40, 0xe3, 0x21, 0x1b, 0x01, 0xe3, 0x01, 0x00, 0x40, 0xe3, 0xc8, 0x20, 0xa0, 0xe3, 0x00, 0x10, 0x48, 0xe3, 0x50, 0x00, 0x83, 0xe5, 0x00, 0x10, 0x83, 0xe5, 0x01, 0x20, 0x52, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x02, 0xc1, 0x00, 0xe3, 0x07, 0x01, 0x04, 0xe3, 0x02, 0xc0, 0x40, 0xe3, 0x11, 0x18, 0x01, 0xe3, 0x00, 0x01, 0x49, 0xe3, 0x03, 0x20, 0xa0, 0xe1, 0x04, 0x10, 0x49, 0xe3, 0x50, 0xc0, 0x83, 0xe5, 0x10, 0x00, 0x83, 0xe5, 0x28, 0x10, 0x83, 0xe5, 0x28, 0x30, 0x92, 0xe5, 0x01, 0x02, 0x13, 0xe3, 0xfc, 0xff, 0xff, 0x0a, 0x03, 0x30, 0xa0, 0xe3, 0xc6, 0x1d, 0xa0, 0xe3, 0x00, 0x31, 0x48, 0xe3, 0x54, 0x10, 0x82, 0xe5, 0x5c, 0x31, 0x82, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, 0x04, 0xe0, 0x2d, 0xe5, 0x04, 0x10, 0x01, 0xe3, 0x0d, 0xc0, 0xd0, 0xe5, 0x01, 0x2a, 0xa0, 0xe3, 0x0b, 0x30, 0xd0, 0xe5, 0x42, 0x10, 0x40, 0xe3, 0x03, 0x00, 0x5c, 0xe3, 0x42, 0x20, 0x40, 0xe3, 0x01, 0xc0, 0xa0, 0x01, 0xb8, 0xe0, 0xd0, 0xe1, 0x02, 0xc0, 0xa0, 0x11, 0x00, 0x30, 0x53, 0xe2, 0x01, 0x30, 0xa0, 0x13, 0x00, 0x00, 0x5e, 0xe3, 0x19, 0x00, 0x00, 0x0a, 0x0e, 0x18, 0xa0, 0xe1, 0xff, 0x04, 0x11, 0xe3, 0x0e, 0x1c, 0xa0, 0x01, 0x08, 0x20, 0xa0, 0x03, 0x10, 0x20, 0xa0, 0x13, 0x04, 0xe0, 0xa0, 0x03, 0x0c, 0xe0, 0xa0, 0x13, 0x0f, 0x02, 0x11, 0xe3, 0x01, 0x12, 0xa0, 0x01, 0x0e, 0x20, 0xa0, 0x01, 0x03, 0x01, 0x11, 0xe3, 0x01, 0x11, 0xa0, 0x01, 0x02, 0x20, 0x42, 0x02, 0x00, 0x00, 0x51, 0xe3, 0x04, 0x20, 0x42, 0xb2, 0x05, 0x20, 0x42, 0xa2, 0x02, 0x24, 0xa0, 0xe1, 0x0c, 0x10, 0xd0, 0xe5, 0x02, 0x0a, 0xa0, 0xe3, 0xc6, 0x01, 0x40, 0xe3, 0x01, 0x10, 0x41, 0xe2, 0x01, 0x32, 0x83, 0xe1, 0x0c, 0x30, 0x83, 0xe1, 0x02, 0x30, 0x83, 0xe1, 0x00, 0x30, 0x80, 0xe5, 0x04, 0xf0, 0x9d, 0xe4, 0x3f, 0x2b, 0xa0, 0xe3, 0xff, 0x2f, 0x4f, 0xe3, 0xf3, 0xff, 0xff, 0xea, 0xe0, 0x3a, 0x9f, 0xe5, 0x00, 0xc0, 0xa0, 0xe3, 0xf0, 0x4f, 0x2d, 0xe9, 0x54, 0xd0, 0x4d, 0xe2, 0x03, 0x30, 0x8f, 0xe0, 0x20, 0x40, 0x8d, 0xe2, 0xc2, 0xc1, 0x40, 0xe3, 0x0f, 0x00, 0x93, 0xe8, 0x0f, 0x00, 0x84, 0xe8, 0x0a, 0x30, 0xa0, 0xe3, 0x5c, 0x21, 0x9c, 0xe5, 0x02, 0x21, 0xc2, 0xe3, 0x5c, 0x21, 0x8c, 0xe5, 0xfc, 0x20, 0x9c, 0xe5, 0x02, 0x21, 0xc2, 0xe3, 0xfc, 0x20, 0x8c, 0xe5, 0x60, 0x20, 0x9c, 0xe5, 0x01, 0x29, 0xc2, 0xe3, 0x60, 0x20, 0x8c, 0xe5, 0xc0, 0x22, 0x9c, 0xe5, 0x01, 0x29, 0xc2, 0xe3, 0xc0, 0x22, 0x8c, 0xe5, 0x20, 0x20, 0x9c, 0xe5, 0x02, 0x21, 0xc2, 0xe3, 0x20, 0x20, 0x8c, 0xe5, 0x01, 0x30, 0x53, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x00, 0x21, 0x9c, 0xe5, 0xfa, 0x3f, 0xa0, 0xe3, 0x02, 0x21, 0xc2, 0xe3, 0x00, 0x21, 0x8c, 0xe5, 0x01, 0x30, 0x53, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x1d, 0x2c, 0xa0, 0xe3, 0x7c, 0x35, 0x01, 0xe3, 0x10, 0x20, 0x48, 0xe3, 0x20, 0x20, 0x8c, 0xe5, 0x01, 0x30, 0x53, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0xf4, 0x30, 0x9c, 0xe5, 0x0c, 0x10, 0xa0, 0xe1, 0x12, 0x27, 0x02, 0xe3, 0x03, 0x36, 0xc3, 0xe3, 0x0f, 0x30, 0xc3, 0xe3, 0x01, 0x38, 0x83, 0xe3, 0xf4, 0x30, 0x8c, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x01, 0x20, 0x52, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0xf4, 0x30, 0x91, 0xe5, 0x01, 0x08, 0x13, 0xe3, 0xfa, 0xff, 0xff, 0x1a, 0x00, 0x30, 0xa0, 0xe3, 0x0a, 0x20, 0xa0, 0xe3, 0xc2, 0x31, 0x40, 0xe3, 0xc0, 0x12, 0x93, 0xe5, 0x01, 0x19, 0x81, 0xe3, 0xc0, 0x12, 0x83, 0xe5, 0x60, 0x10, 0x93, 0xe5, 0x01, 0x19, 0x81, 0xe3, 0x60, 0x10, 0x83, 0xe5, 0x5c, 0x11, 0x93, 0xe5, 0x02, 0x11, 0x81, 0xe3, 0x5c, 0x11, 0x83, 0xe5, 0xfc, 0x10, 0x93, 0xe5, 0x02, 0x11, 0x81, 0xe3, 0xfc, 0x10, 0x83, 0xe5, 0xf4, 0x10, 0x93, 0xe5, 0x02, 0x11, 0x81, 0xe3, 0xf4, 0x10, 0x83, 0xe5, 0x01, 0x20, 0x52, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x03, 0x5a, 0xa0, 0xe3, 0x0e, 0x20, 0x0c, 0xe3, 0xc6, 0x51, 0x40, 0xe3, 0x7d, 0x3f, 0xa0, 0xe3, 0x0c, 0x20, 0x85, 0xe5, 0x01, 0x30, 0x53, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x04, 0x00, 0xa0, 0xe1, 0x04, 0x60, 0xa0, 0xe3, 0x0c, 0x70, 0x02, 0xe3, 0x80, 0xff, 0xff, 0xeb, 0x63, 0x12, 0x00, 0xe3, 0x09, 0xcb, 0x01, 0xe3, 0x30, 0x10, 0x85, 0xe5, 0x83, 0x3f, 0xa0, 0xe3, 0x09, 0xc8, 0x40, 0xe3, 0x07, 0x03, 0x00, 0xe3, 0x02, 0x30, 0x40, 0xe3, 0x03, 0x22, 0x00, 0xe3, 0x03, 0x03, 0x40, 0xe3, 0x03, 0xe4, 0x00, 0xe3, 0x01, 0x24, 0x40, 0xe3, 0x00, 0x10, 0xa0, 0xe3, 0x05, 0xe5, 0x40, 0xe3, 0x80, 0x90, 0xa0, 0xe3, 0x34, 0x60, 0x85, 0xe5, 0x01, 0x61, 0x00, 0xe3, 0x38, 0x10, 0x85, 0xe5, 0x80, 0x80, 0xa0, 0xe3, 0x3c, 0x10, 0x85, 0xe5, 0x58, 0xc0, 0x85, 0xe5, 0x81, 0xc2, 0x03, 0xe3, 0x5c, 0x30, 0x85, 0xe5, 0x02, 0x3a, 0xa0, 0xe3, 0x60, 0x00, 0x85, 0xe5, 0x41, 0x09, 0x01, 0xe3, 0x64, 0x70, 0x85, 0xe5, 0x19, 0x7e, 0xa0, 0xe3, 0x68, 0x20, 0x85, 0xe5, 0x6c, 0xe0, 0x85, 0xe5, 0x3c, 0xe0, 0xa0, 0xe3, 0x78, 0x20, 0x95, 0xe5, 0xc6, 0x31, 0x40, 0xe3, 0x22, 0x28, 0xa0, 0xe1, 0x01, 0x62, 0x40, 0xe3, 0x02, 0x28, 0xa0, 0xe1, 0x52, 0xcb, 0x40, 0xe3, 0x66, 0x2c, 0x82, 0xe3, 0x91, 0x06, 0x41, 0xe3, 0x10, 0x20, 0x82, 0xe3, 0x78, 0x20, 0x85, 0xe5, 0x0d, 0x20, 0xa0, 0xe3, 0x80, 0x60, 0x85, 0xe5, 0x01, 0x6c, 0xa0, 0xe3, 0x50, 0xc0, 0x85, 0xe5, 0x09, 0xc0, 0xa0, 0xe3, 0x54, 0x00, 0x85, 0xe5, 0x01, 0x0b, 0xa0, 0xe3, 0x2b, 0xe0, 0x40, 0xe3, 0x01, 0x70, 0x40, 0xe3, 0x90, 0xe0, 0x85, 0xe5, 0x01, 0xec, 0xa0, 0xe3, 0x90, 0x70, 0x83, 0xe5, 0x01, 0x70, 0xa0, 0xe3, 0x00, 0x22, 0x40, 0xe3, 0x80, 0x60, 0x40, 0xe3, 0x00, 0xc6, 0x40, 0xe3, 0x00, 0x01, 0x40, 0xe3, 0x98, 0x70, 0x83, 0xe5, 0x0d, 0x70, 0xa0, 0xe3, 0x10, 0x20, 0x83, 0xe5, 0x14, 0x60, 0x83, 0xe5, 0x09, 0x60, 0xa0, 0xe3, 0x18, 0xc0, 0x83, 0xe5, 0x09, 0xc0, 0xa0, 0xe3, 0x1c, 0x00, 0x83, 0xe5, 0x19, 0x0d, 0xa0, 0xe3, 0x20, 0x20, 0x83, 0xe5, 0x09, 0x20, 0xa0, 0xe3, 0x00, 0x71, 0x40, 0xe3, 0x20, 0x90, 0x40, 0xe3, 0x60, 0xe0, 0x40, 0xe3, 0x00, 0xc7, 0x40, 0xe3, 0x00, 0x01, 0x40, 0xe3, 0x00, 0x21, 0x40, 0xe3, 0x24, 0xe0, 0x83, 0xe5, 0x01, 0xec, 0xa0, 0xe3, 0x28, 0x70, 0x83, 0xe5, 0x2c, 0x90, 0x83, 0xe5, 0x30, 0xc0, 0x83, 0xe5, 0x0d, 0xc3, 0x00, 0xe3, 0x34, 0x00, 0x83, 0xe5, 0x06, 0x0b, 0xa0, 0xe3, 0x38, 0x70, 0x83, 0xe5, 0x3c, 0x90, 0x83, 0xe5, 0x40, 0x20, 0x83, 0xe5, 0x12, 0x2e, 0xa0, 0xe3, 0x40, 0x80, 0x40, 0xe3, 0x00, 0x64, 0x40, 0xe3, 0x40, 0xe0, 0x40, 0xe3, 0x00, 0xc0, 0x42, 0xe3, 0x00, 0x04, 0x40, 0xe3, 0x40, 0x20, 0x40, 0xe3, 0x44, 0x80, 0x83, 0xe5, 0x48, 0x70, 0x83, 0xe5, 0x4c, 0x80, 0x83, 0xe5, 0x50, 0x70, 0x83, 0xe5, 0x54, 0x80, 0x83, 0xe5, 0x58, 0x60, 0x83, 0xe5, 0x5c, 0xe0, 0x83, 0xe5, 0xa3, 0xef, 0x06, 0xe3, 0x60, 0xc0, 0x83, 0xe5, 0x64, 0x00, 0x83, 0xe5, 0x64, 0x00, 0xa0, 0xe3, 0x68, 0x60, 0x83, 0xe5, 0x00, 0xc0, 0xa0, 0xe1, 0x6c, 0x20, 0x83, 0xe5, 0x00, 0x21, 0x95, 0xe5, 0xbe, 0xe4, 0x49, 0xe3, 0xfd, 0x21, 0xc2, 0xe3, 0x00, 0x21, 0x85, 0xe5, 0x04, 0x21, 0x95, 0xe5, 0x05, 0x24, 0xc2, 0xe3, 0x01, 0x23, 0x82, 0xe3, 0x04, 0x21, 0x85, 0xe5, 0x00, 0xe8, 0x83, 0xe5, 0x01, 0xc0, 0x5c, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x88, 0x28, 0x95, 0xe5, 0xff, 0x26, 0xc2, 0xe3, 0x0f, 0x28, 0xc2, 0xe3, 0x05, 0x26, 0x82, 0xe3, 0x88, 0x28, 0x85, 0xe5, 0x00, 0x18, 0x83, 0xe5, 0x01, 0x00, 0x50, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x44, 0x33, 0x95, 0xe5, 0xc1, 0x2f, 0x00, 0xe3, 0xff, 0x2f, 0x4f, 0xe3, 0x02, 0x30, 0x03, 0xe0, 0x20, 0x30, 0x83, 0xe3, 0x44, 0x33, 0x85, 0xe5, 0xc4, 0x33, 0x95, 0xe5, 0x02, 0x30, 0x03, 0xe0, 0x20, 0x30, 0x83, 0xe3, 0xc4, 0x33, 0x85, 0xe5, 0x44, 0x34, 0x95, 0xe5, 0x02, 0x30, 0x03, 0xe0, 0x20, 0x30, 0x83, 0xe3, 0x44, 0x34, 0x85, 0xe5, 0xc4, 0x34, 0x95, 0xe5, 0x02, 0x30, 0x03, 0xe0, 0x20, 0x30, 0x83, 0xe3, 0xc4, 0x34, 0x85, 0xe5, 0x08, 0x32, 0x95, 0xe5, 0x02, 0x30, 0x83, 0xe3, 0x08, 0x32, 0x85, 0xe5, 0x08, 0x31, 0x95, 0xe5, 0xc0, 0x30, 0x83, 0xe3, 0x08, 0x31, 0x85, 0xe5, 0x00, 0x31, 0x95, 0xe5, 0x0f, 0x3a, 0xc3, 0xe3, 0x00, 0x31, 0x85, 0xe5, 0x08, 0x31, 0x95, 0xe5, 0x0f, 0x3c, 0xc3, 0xe3, 0x06, 0x3c, 0x83, 0xe3, 0x08, 0x31, 0x85, 0xe5, 0x2a, 0x30, 0xdd, 0xe5, 0x20, 0x00, 0x53, 0xe3, 0x03, 0x3a, 0xa0, 0xe3, 0xc6, 0x31, 0x40, 0xe3, 0x44, 0x14, 0x85, 0x15, 0xc4, 0x14, 0x85, 0x15, 0x2b, 0x10, 0xdd, 0xe5, 0xc0, 0x20, 0x93, 0xe5, 0x00, 0x00, 0x51, 0xe3, 0x0f, 0x24, 0xc2, 0xe3, 0x03, 0x14, 0xa0, 0x13, 0x01, 0x14, 0xa0, 0x03, 0x01, 0x20, 0x82, 0xe1, 0xc0, 0x20, 0x83, 0xe5, 0x20, 0x20, 0x9d, 0xe5, 0x24, 0xe0, 0x9d, 0xe5, 0x0e, 0x10, 0x92, 0xe1, 0x55, 0x00, 0x00, 0x0a, 0x52, 0x12, 0xe3, 0xe7, 0x0f, 0x50, 0x02, 0xe2, 0x0e, 0x02, 0xa0, 0xe1, 0x0e, 0xc4, 0xa0, 0xe1, 0x0f, 0x0c, 0x00, 0xe2, 0x81, 0x00, 0x80, 0xe1, 0x0f, 0xcc, 0x0c, 0xe2, 0x52, 0x14, 0xe3, 0xe7, 0x85, 0xc0, 0x8c, 0xe1, 0x0f, 0x5c, 0x0e, 0xe2, 0x81, 0x50, 0x85, 0xe1, 0x52, 0x66, 0xe3, 0xe7, 0x2e, 0x12, 0xa0, 0xe1, 0x10, 0xc3, 0x83, 0xe5, 0x0f, 0x1c, 0x01, 0xe2, 0x86, 0x10, 0x81, 0xe1, 0x14, 0xc3, 0x83, 0xe5, 0x18, 0xc3, 0x83, 0xe5, 0x1c, 0xc3, 0x83, 0xe5, 0x20, 0xc3, 0x83, 0xe5, 0x24, 0xc3, 0x83, 0xe5, 0x28, 0xc3, 0x83, 0xe5, 0x2c, 0xc3, 0x83, 0xe5, 0x30, 0xc3, 0x83, 0xe5, 0x01, 0xc0, 0xa0, 0xe3, 0x90, 0x03, 0x83, 0xe5, 0x94, 0x03, 0x83, 0xe5, 0x98, 0x03, 0x83, 0xe5, 0x9c, 0x03, 0x83, 0xe5, 0xa0, 0x03, 0x83, 0xe5, 0xa4, 0x03, 0x83, 0xe5, 0xa8, 0x03, 0x83, 0xe5, 0xac, 0x03, 0x83, 0xe5, 0xb0, 0x03, 0x83, 0xe5, 0x10, 0x54, 0x83, 0xe5, 0x14, 0x54, 0x83, 0xe5, 0x18, 0x54, 0x83, 0xe5, 0x1c, 0x54, 0x83, 0xe5, 0x20, 0x54, 0x83, 0xe5, 0x24, 0x54, 0x83, 0xe5, 0x28, 0x54, 0x83, 0xe5, 0x2c, 0x54, 0x83, 0xe5, 0x30, 0x54, 0x83, 0xe5, 0x90, 0x14, 0x83, 0xe5, 0x94, 0x14, 0x83, 0xe5, 0x98, 0x14, 0x83, 0xe5, 0x9c, 0x14, 0x83, 0xe5, 0xa0, 0x14, 0x83, 0xe5, 0xa4, 0x14, 0x83, 0xe5, 0xa8, 0x14, 0x83, 0xe5, 0xac, 0x14, 0x83, 0xe5, 0xb0, 0x14, 0x83, 0xe5, 0x00, 0x11, 0x93, 0xe5, 0x2e, 0x54, 0xa0, 0xe1, 0x01, 0x13, 0xc1, 0xe3, 0x0f, 0x5c, 0x05, 0xe2, 0x00, 0x11, 0x83, 0xe5, 0x52, 0x18, 0xe3, 0xe7, 0x01, 0x50, 0x85, 0xe1, 0x2e, 0x06, 0xa0, 0xe1, 0x34, 0x53, 0x83, 0xe5, 0x0f, 0x0c, 0x00, 0xe2, 0x38, 0x53, 0x83, 0xe5, 0x2e, 0x18, 0xa0, 0xe1, 0x52, 0x5a, 0xe3, 0xe7, 0x0f, 0x1c, 0x01, 0xe2, 0x2e, 0xee, 0xa0, 0xe1, 0x05, 0x00, 0x80, 0xe1, 0x52, 0x5c, 0xe3, 0xe7, 0x22, 0x2e, 0xa0, 0xe1, 0x0e, 0x24, 0x82, 0xe1, 0x05, 0x10, 0x81, 0xe1, 0xb4, 0x03, 0x83, 0xe5, 0xb8, 0x03, 0x83, 0xe5, 0x34, 0x14, 0x83, 0xe5, 0x38, 0x14, 0x83, 0xe5, 0xb4, 0x24, 0x83, 0xe5, 0xb8, 0x24, 0x83, 0xe5, 0x00, 0x21, 0x93, 0xe5, 0x01, 0x23, 0x82, 0xe3, 0x00, 0x21, 0x83, 0xe5, 0x01, 0xc0, 0x5c, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x32, 0x30, 0xa0, 0xe3, 0x01, 0x30, 0x53, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x07, 0x35, 0xa0, 0xe3, 0x24, 0x20, 0x93, 0xe5, 0xff, 0x00, 0x12, 0xe3, 0x02, 0x00, 0x00, 0x1a, 0xf0, 0x30, 0x93, 0xe5, 0x01, 0x00, 0x13, 0xe3, 0x2d, 0x01, 0x00, 0x0a, 0x03, 0x2a, 0xa0, 0xe3, 0x16, 0x37, 0x01, 0xe3, 0xc6, 0x21, 0x40, 0xe3, 0x0a, 0x1a, 0x00, 0xe3, 0x14, 0x35, 0x41, 0xe3, 0x06, 0xb7, 0x00, 0xe3, 0x0a, 0x1a, 0x40, 0xe3, 0x0e, 0xaf, 0x00, 0xe3, 0x08, 0x30, 0x8d, 0xe5, 0x02, 0x30, 0xa0, 0xe1, 0x50, 0x11, 0x82, 0xe5, 0x14, 0x20, 0x8d, 0xe2, 0x04, 0x20, 0x8d, 0xe5, 0x08, 0x99, 0x00, 0xe3, 0x0c, 0x40, 0x8d, 0xe5, 0x1e, 0xcf, 0x01, 0xe3, 0x04, 0xb5, 0x40, 0xe3, 0x18, 0x09, 0x01, 0xe3, 0x0c, 0xad, 0x40, 0xe3, 0x10, 0x81, 0x01, 0xe3, 0x0a, 0x9b, 0x40, 0xe3, 0x00, 0x20, 0xa0, 0xe3, 0x1c, 0xcd, 0x41, 0xe3, 0x02, 0x40, 0xa0, 0xe1, 0x1a, 0x0b, 0x41, 0xe3, 0x12, 0x83, 0x41, 0xe3, 0xbb, 0x19, 0x03, 0xe3, 0x03, 0x50, 0xa0, 0xe3, 0x12, 0xe7, 0x02, 0xe3, 0x51, 0x14, 0xa0, 0xe1, 0x0f, 0x10, 0x01, 0xe2, 0x01, 0x28, 0xa0, 0xe1, 0x01, 0x2a, 0x82, 0xe1, 0x01, 0x20, 0x82, 0xe1, 0x01, 0x26, 0x82, 0xe1, 0x01, 0x24, 0x82, 0xe1, 0x01, 0x22, 0x82, 0xe1, 0x40, 0x21, 0x83, 0xe5, 0x02, 0x23, 0xa0, 0xe3, 0x00, 0x20, 0x83, 0xe5, 0x00, 0x50, 0x83, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x01, 0xe0, 0x5e, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0x10, 0x20, 0x93, 0xe5, 0x01, 0x00, 0x12, 0xe3, 0xfa, 0xff, 0xff, 0x0a, 0x48, 0x11, 0x93, 0xe5, 0x01, 0x21, 0x00, 0xe3, 0x01, 0x21, 0x40, 0xe3, 0x03, 0xe0, 0xa0, 0xe3, 0x71, 0x10, 0xef, 0xe6, 0x02, 0x53, 0xa0, 0xe3, 0x92, 0x01, 0x02, 0xe0, 0x50, 0x21, 0x83, 0xe5, 0x12, 0x27, 0x02, 0xe3, 0x00, 0x50, 0x83, 0xe5, 0x00, 0xe0, 0x83, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x01, 0x20, 0x52, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0x10, 0xe0, 0x93, 0xe5, 0x01, 0x00, 0x1e, 0xe3, 0xfa, 0xff, 0xff, 0x0a, 0x48, 0x21, 0x93, 0xe5, 0x50, 0x50, 0x8d, 0xe2, 0x38, 0xa0, 0x8d, 0xe5, 0x01, 0xec, 0xa0, 0xe3, 0x52, 0x2c, 0xe4, 0xe7, 0x0c, 0x7d, 0x00, 0xe3, 0x02, 0x20, 0x85, 0xe0, 0x0a, 0x6b, 0x00, 0xe3, 0x08, 0x50, 0x9d, 0xe5, 0x04, 0x40, 0x84, 0xe2, 0x02, 0xe3, 0x40, 0xe3, 0x10, 0x00, 0x54, 0xe3, 0x4c, 0x50, 0x8d, 0xe5, 0x14, 0x55, 0x01, 0xe3, 0x3c, 0x90, 0x8d, 0xe5, 0x40, 0xc0, 0x8d, 0xe5, 0x44, 0x00, 0x8d, 0xe5, 0x48, 0x80, 0x8d, 0xe5, 0x30, 0xe0, 0x8d, 0xe5, 0x50, 0xe0, 0x8d, 0xe2, 0x34, 0xb0, 0x8d, 0xe5, 0x20, 0x20, 0x52, 0xe5, 0x0e, 0x7f, 0x40, 0xe3, 0x08, 0x69, 0x40, 0xe3, 0x01, 0x20, 0x42, 0xe2, 0x16, 0x57, 0x41, 0xe3, 0x12, 0x20, 0xe5, 0xe6, 0x02, 0x20, 0x8e, 0xe0, 0x12, 0xe3, 0x01, 0xe3, 0x10, 0xe1, 0x41, 0xe3, 0x40, 0x00, 0x8d, 0xe5, 0x44, 0xc0, 0x8d, 0xe5, 0x38, 0x70, 0x8d, 0xe5, 0x3c, 0x60, 0x8d, 0xe5, 0x48, 0x50, 0x8d, 0xe5, 0x4c, 0xe0, 0x8d, 0xe5, 0x20, 0x20, 0x52, 0xe5, 0x02, 0x14, 0x81, 0xe1, 0x04, 0x20, 0x9d, 0xe5, 0xb2, 0x10, 0xc2, 0xe0, 0x04, 0x20, 0x8d, 0xe5, 0xaf, 0xff, 0xff, 0x1a, 0x14, 0x10, 0x9d, 0xe5, 0x18, 0x20, 0x9d, 0xe5, 0x0c, 0x40, 0x9d, 0xe5, 0x48, 0x11, 0x83, 0xe5, 0x4c, 0x21, 0x83, 0xe5, 0x03, 0x3a, 0xa0, 0xe3, 0x71, 0x15, 0x00, 0xe3, 0xc6, 0x31, 0x40, 0xe3, 0x12, 0x27, 0x02, 0xe3, 0x00, 0x10, 0x83, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x01, 0x20, 0x52, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0x10, 0x10, 0x93, 0xe5, 0x01, 0x00, 0x11, 0xe3, 0xfa, 0xff, 0xff, 0x0a, 0x03, 0x3a, 0xa0, 0xe3, 0xc6, 0x31, 0x40, 0xe3, 0x10, 0x20, 0x93, 0xe5, 0xfe, 0x06, 0x12, 0xe3, 0x29, 0x00, 0x00, 0x0a, 0x48, 0x23, 0x93, 0xe5, 0x02, 0x04, 0x12, 0xe3, 0xcd, 0x00, 0x00, 0x0a, 0x03, 0x2a, 0xa0, 0xe3, 0x00, 0x10, 0xa0, 0xe3, 0xc6, 0x21, 0x40, 0xe3, 0xc0, 0x30, 0x92, 0xe5, 0x0f, 0x34, 0xc3, 0xe3, 0x01, 0x34, 0x83, 0xe3, 0xc0, 0x30, 0x82, 0xe5, 0x2b, 0x10, 0xcd, 0xe5, 0x03, 0x3a, 0xa0, 0xe3, 0xc6, 0x31, 0x40, 0xe3, 0x48, 0x24, 0x93, 0xe5, 0x01, 0x04, 0x12, 0xe3, 0xc4, 0x00, 0x00, 0x1a, 0xc8, 0x34, 0x93, 0xe5, 0x01, 0x04, 0x13, 0xe3, 0xc1, 0x00, 0x00, 0x1a, 0x04, 0x00, 0xa0, 0xe1, 0xe1, 0xfd, 0xff, 0xeb, 0x14, 0x30, 0xa0, 0xe3, 0x01, 0x30, 0x53, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x03, 0x3a, 0xa0, 0xe3, 0x01, 0x14, 0x00, 0xe3, 0xc6, 0x31, 0x40, 0xe3, 0x12, 0x27, 0x02, 0xe3, 0x00, 0x10, 0x83, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x01, 0x20, 0x52, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0x10, 0x10, 0x93, 0xe5, 0x01, 0x00, 0x11, 0xe3, 0xfa, 0xff, 0xff, 0x0a, 0x03, 0x3a, 0xa0, 0xe3, 0xc6, 0x31, 0x40, 0xe3, 0x10, 0x30, 0x93, 0xe5, 0xfe, 0x06, 0x13, 0xe3, 0x00, 0x30, 0xa0, 0x13, 0x20, 0x30, 0x83, 0x15, 0x82, 0x00, 0x00, 0x1a, 0x03, 0x2a, 0xa0, 0xe3, 0x12, 0x37, 0x02, 0xe3, 0xc6, 0x21, 0x40, 0xe3, 0x01, 0x00, 0x00, 0xea, 0x01, 0x30, 0x53, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0x18, 0x10, 0x92, 0xe5, 0x01, 0x00, 0x11, 0xe3, 0xfa, 0xff, 0xff, 0x0a, 0x03, 0x1a, 0xa0, 0xe3, 0x0a, 0x30, 0xa0, 0xe3, 0xc6, 0x11, 0x40, 0xe3, 0x03, 0x00, 0xa0, 0xe1, 0x8c, 0x20, 0x91, 0xe5, 0x02, 0x21, 0x82, 0xe3, 0x8c, 0x20, 0x81, 0xe5, 0x01, 0x00, 0x50, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x8c, 0x20, 0x91, 0xe5, 0x02, 0x21, 0xc2, 0xe3, 0x8c, 0x20, 0x81, 0xe5, 0x01, 0x30, 0x53, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x60, 0x30, 0xa0, 0xe3, 0x02, 0x2a, 0xa0, 0xe3, 0xaa, 0x30, 0x40, 0xe3, 0x00, 0x00, 0xe0, 0xe3, 0x0c, 0x31, 0x81, 0xe5, 0x40, 0x31, 0x91, 0xe5, 0xc6, 0x21, 0x40, 0xe3, 0x02, 0x31, 0x83, 0xe3, 0x40, 0x31, 0x81, 0xe5, 0x94, 0x00, 0x82, 0xe5, 0x2b, 0x20, 0xdd, 0xe5, 0x00, 0x00, 0x52, 0xe3, 0x03, 0x33, 0x00, 0x13, 0x01, 0x32, 0x00, 0x03, 0x20, 0x31, 0x81, 0xe5, 0x01, 0x10, 0xa0, 0xe3, 0x01, 0x10, 0x51, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x03, 0x0a, 0xa0, 0xe3, 0x01, 0x3b, 0xa0, 0xe3, 0xc6, 0x01, 0x40, 0xe3, 0x02, 0xca, 0xa0, 0xe3, 0x00, 0x34, 0x40, 0xe3, 0x0a, 0x10, 0xa0, 0xe3, 0x7c, 0x30, 0x80, 0xe5, 0x08, 0x31, 0x90, 0xe5, 0xc6, 0xc1, 0x40, 0xe3, 0x02, 0x3a, 0xc3, 0xe3, 0x08, 0x31, 0x80, 0xe5, 0xd0, 0x00, 0x9c, 0xe5, 0x02, 0x01, 0x80, 0xe3, 0xd0, 0x00, 0x8c, 0xe5, 0x01, 0x10, 0x51, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0xf0, 0x36, 0x01, 0xe3, 0x0b, 0xe0, 0xa0, 0xe3, 0x42, 0x30, 0x40, 0xe3, 0x02, 0x1c, 0xa0, 0xe3, 0xb8, 0x12, 0xcd, 0xe1, 0x55, 0x0a, 0x0a, 0xe3, 0x00, 0x00, 0x52, 0xe3, 0x03, 0x20, 0xa0, 0x01, 0x01, 0x20, 0x83, 0x13, 0x02, 0x30, 0xa0, 0xe3, 0x2d, 0x30, 0xcd, 0xe5, 0x0e, 0x30, 0xa0, 0xe1, 0x00, 0x20, 0x8c, 0xe5, 0x01, 0xc1, 0xa0, 0xe3, 0x2c, 0xe0, 0xcd, 0xe5, 0x00, 0xe0, 0xa0, 0xe3, 0x55, 0x0a, 0x4a, 0xe3, 0x06, 0x00, 0x00, 0xea, 0x2c, 0x30, 0xdd, 0xe5, 0x01, 0x30, 0x83, 0xe2, 0x73, 0x30, 0xef, 0xe6, 0x2c, 0x30, 0xcd, 0xe5, 0x0f, 0x00, 0x53, 0xe3, 0x0b, 0x00, 0x00, 0x8a, 0xb8, 0x12, 0xdd, 0xe1, 0x2d, 0x20, 0xdd, 0xe5, 0x00, 0xe0, 0x8c, 0xe5, 0x03, 0x30, 0x82, 0xe0, 0x11, 0x33, 0xa0, 0xe1, 0x01, 0x31, 0x83, 0xe2, 0x00, 0x00, 0x83, 0xe5, 0x4f, 0xf0, 0x7f, 0xf5, 0x00, 0x20, 0x9c, 0xe5, 0x00, 0x30, 0x93, 0xe5, 0x03, 0x00, 0x52, 0xe1, 0xed, 0xff, 0xff, 0x1a, 0x02, 0x3a, 0xa0, 0xe3, 0x04, 0x00, 0xa0, 0xe1, 0xb8, 0x32, 0xcd, 0xe1, 0x6b, 0xfd, 0xff, 0xeb, 0x02, 0x2c, 0xa0, 0xe3, 0x55, 0x1a, 0x0a, 0xe3, 0xb8, 0x22, 0xcd, 0xe1, 0x02, 0x30, 0xa0, 0xe1, 0x55, 0x1a, 0x4a, 0xe3, 0x01, 0x21, 0xa0, 0xe3, 0x00, 0xc0, 0xa0, 0xe3, 0x05, 0x00, 0x00, 0xea, 0xb8, 0x32, 0xdd, 0xe1, 0x83, 0x30, 0xa0, 0xe1, 0x73, 0x30, 0xff, 0xe6, 0xb8, 0x32, 0xcd, 0xe1, 0x02, 0x0a, 0x53, 0xe3, 0x07, 0x00, 0x00, 0x2a, 0x00, 0xc0, 0x82, 0xe5, 0x01, 0x31, 0x83, 0xe2, 0x00, 0x10, 0x83, 0xe5, 0x4f, 0xf0, 0x7f, 0xf5, 0x00, 0x00, 0x92, 0xe5, 0x00, 0x30, 0x93, 0xe5, 0x03, 0x00, 0x50, 0xe1, 0xf1, 0xff, 0xff, 0x1a, 0x04, 0x00, 0xa0, 0xe1, 0x53, 0xfd, 0xff, 0xeb, 0x2c, 0x30, 0xdd, 0xe5, 0x2d, 0x20, 0xdd, 0xe5, 0x2b, 0x10, 0xdd, 0xe5, 0x02, 0x20, 0x83, 0xe0, 0xb8, 0x32, 0xdd, 0xe1, 0x00, 0x00, 0x51, 0xe3, 0x13, 0x32, 0xa0, 0xe1, 0x00, 0x20, 0xa0, 0xe3, 0x83, 0x30, 0xa0, 0x11, 0x20, 0x30, 0x82, 0xe5, 0x54, 0xd0, 0x8d, 0xe2, 0xf0, 0x8f, 0xbd, 0xe8, 0x03, 0x1a, 0xa0, 0xe3, 0x02, 0xe3, 0xa0, 0xe3, 0xc6, 0x11, 0x40, 0xe3, 0x03, 0xc0, 0xa0, 0xe3, 0x01, 0x00, 0xa0, 0xe1, 0x12, 0x37, 0x02, 0xe3, 0x40, 0x21, 0x91, 0xe5, 0x22, 0x28, 0xa0, 0xe1, 0x02, 0x28, 0xa0, 0xe1, 0xe6, 0x2d, 0x82, 0xe3, 0x3b, 0x20, 0x82, 0xe3, 0x40, 0x21, 0x81, 0xe5, 0x00, 0xe0, 0x81, 0xe5, 0x00, 0xc0, 0x81, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x01, 0x30, 0x53, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0x10, 0x20, 0x90, 0xe5, 0x01, 0x00, 0x12, 0xe3, 0xfa, 0xff, 0xff, 0x0a, 0x03, 0x2a, 0xa0, 0xe3, 0x1f, 0x00, 0xa0, 0xe3, 0xc6, 0x21, 0x40, 0xe3, 0x1f, 0x00, 0x40, 0xe3, 0x48, 0x11, 0x92, 0xe5, 0x00, 0x10, 0x01, 0xe0, 0x01, 0x14, 0x81, 0xe1, 0x48, 0x11, 0x82, 0xe5, 0x4c, 0x31, 0x92, 0xe5, 0x00, 0x30, 0x03, 0xe0, 0x03, 0x34, 0x83, 0xe1, 0x4c, 0x31, 0x82, 0xe5, 0x50, 0x31, 0x82, 0xe5, 0x1e, 0xff, 0xff, 0xea, 0xc8, 0x33, 0x93, 0xe5, 0x02, 0x04, 0x13, 0xe3, 0x36, 0xff, 0xff, 0x0a, 0x2d, 0xff, 0xff, 0xea, 0x03, 0x3a, 0xa0, 0xe3, 0x00, 0x20, 0xa0, 0xe3, 0xc6, 0x31, 0x40, 0xe3, 0x10, 0x10, 0xa0, 0xe3, 0x44, 0x24, 0x83, 0xe5, 0xc4, 0x24, 0x83, 0xe5, 0x2a, 0x10, 0xcd, 0xe5, 0x35, 0xff, 0xff, 0xea, 0x04, 0x0b, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x4e, 0x55, 0x00, 0xf0, 0x5b, 0x91, 0x09, 0x27, 0x53, 0x7d, 0x90, 0x84, 0x3a, 0xd3, 0x4b, 0x8e, 0x0c, 0x7b, 0xb0, 0x0d, 0x77, 0xd7, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x00, 0x00, 0x00, 0x00, 0x44, 0x6a, 0x00, 0x10, 0x20, 0x00, 0x0f, 0x03, 0x00, 0x00, 0x2f, 0x6c, 0x69, 0x62, 0x2f, 0x6c, 0x64, 0x2d, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x2d, 0x61, 0x72, 0x6d, 0x68, 0x66, 0x2e, 0x73, 0x6f, 0x2e, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0xfe, 0xff, 0x6f, 0x00, 0x93, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xfc, 0x92, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0xec, 0x92, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xfb, 0xff, 0xff, 0x6f, 0x01, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; static const uint8_t s3_payload[] = { 0x00, 0x00, 0xa0, 0xe3, 0x17, 0x0f, 0x08, 0xee, 0x15, 0x0f, 0x07, 0xee, 0xd5, 0x0f, 0x07, 0xee, 0x9a, 0x0f, 0x07, 0xee, 0x95, 0x0f, 0x07, 0xee, 0xff, 0xff, 0xff, 0xea, 0x40, 0x00, 0xa0, 0xe3, 0x00, 0xd0, 0x80, 0xe5, 0x04, 0xe0, 0x80, 0xe5, 0x00, 0xe0, 0x0f, 0xe1, 0x08, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x0c, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x1c, 0xee, 0x10, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x14, 0xe0, 0x80, 0xe5, 0x5e, 0x01, 0x00, 0xeb, 0x8a, 0x01, 0x00, 0xeb, 0xd3, 0x01, 0x00, 0xeb, 0x40, 0x00, 0xa0, 0xe3, 0x00, 0xd0, 0x90, 0xe5, 0x04, 0xe0, 0x90, 0xe5, 0x14, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x10, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x0c, 0xee, 0x0c, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x08, 0x10, 0x90, 0xe5, 0x01, 0xf0, 0x29, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0xe1, 0x91, 0x00, 0x00, 0x3a, 0x00, 0x00, 0xa0, 0x03, 0x0e, 0xf0, 0xa0, 0x01, 0x01, 0x40, 0x2d, 0xe9, 0x04, 0x20, 0x52, 0xe2, 0x20, 0x00, 0x00, 0xba, 0x03, 0xc0, 0x10, 0xe2, 0x28, 0x00, 0x00, 0x1a, 0x03, 0xc0, 0x11, 0xe2, 0x32, 0x00, 0x00, 0x1a, 0x08, 0x20, 0x52, 0xe2, 0x12, 0x00, 0x00, 0xba, 0x14, 0x20, 0x52, 0xe2, 0x0b, 0x00, 0x00, 0xba, 0x10, 0x00, 0x2d, 0xe9, 0x18, 0x50, 0xb1, 0xe8, 0x18, 0x50, 0xa0, 0xe8, 0x18, 0x50, 0xb1, 0xe8, 0x18, 0x50, 0xa0, 0xe8, 0x20, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x10, 0x00, 0x72, 0xe3, 0x18, 0x50, 0xb1, 0xa8, 0x18, 0x50, 0xa0, 0xa8, 0x10, 0x20, 0x42, 0xa2, 0x10, 0x00, 0xbd, 0xe8, 0x14, 0x20, 0x92, 0xe2, 0x08, 0x50, 0xb1, 0xa8, 0x08, 0x50, 0xa0, 0xa8, 0x0c, 0x20, 0x52, 0xa2, 0xfb, 0xff, 0xff, 0xaa, 0x08, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x04, 0x20, 0x52, 0xe2, 0x04, 0x30, 0x91, 0xb4, 0x04, 0x30, 0x80, 0xb4, 0x08, 0x10, 0xb1, 0xa8, 0x08, 0x10, 0xa0, 0xa8, 0x04, 0x20, 0x42, 0xa2, 0x04, 0x20, 0x92, 0xe2, 0x01, 0x80, 0xbd, 0x08, 0x02, 0x00, 0x52, 0xe3, 0x01, 0x30, 0xd1, 0xe4, 0x01, 0x30, 0xc0, 0xe4, 0x01, 0x30, 0xd1, 0xa4, 0x01, 0x30, 0xc0, 0xa4, 0x01, 0x30, 0xd1, 0xc4, 0x01, 0x30, 0xc0, 0xc4, 0x01, 0x80, 0xbd, 0xe8, 0x04, 0xc0, 0x6c, 0xe2, 0x02, 0x00, 0x5c, 0xe3, 0x01, 0x30, 0xd1, 0xe4, 0x01, 0x30, 0xc0, 0xe4, 0x01, 0x30, 0xd1, 0xa4, 0x01, 0x30, 0xc0, 0xa4, 0x01, 0x30, 0xd1, 0xc4, 0x01, 0x30, 0xc0, 0xc4, 0x0c, 0x20, 0x52, 0xe0, 0xeb, 0xff, 0xff, 0xba, 0x03, 0xc0, 0x11, 0xe2, 0xcc, 0xff, 0xff, 0x0a, 0x03, 0x10, 0xc1, 0xe3, 0x04, 0xe0, 0x91, 0xe4, 0x02, 0x00, 0x5c, 0xe3, 0x36, 0x00, 0x00, 0xca, 0x1a, 0x00, 0x00, 0x0a, 0x0c, 0x00, 0x52, 0xe3, 0x10, 0x00, 0x00, 0xba, 0x0c, 0x20, 0x42, 0xe2, 0x30, 0x00, 0x2d, 0xe9, 0x2e, 0x34, 0xa0, 0xe1, 0x30, 0x50, 0xb1, 0xe8, 0x04, 0x3c, 0x83, 0xe1, 0x24, 0x44, 0xa0, 0xe1, 0x05, 0x4c, 0x84, 0xe1, 0x25, 0x54, 0xa0, 0xe1, 0x0c, 0x5c, 0x85, 0xe1, 0x2c, 0xc4, 0xa0, 0xe1, 0x0e, 0xcc, 0x8c, 0xe1, 0x38, 0x10, 0xa0, 0xe8, 0x10, 0x20, 0x52, 0xe2, 0xf3, 0xff, 0xff, 0xaa, 0x30, 0x00, 0xbd, 0xe8, 0x0c, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x2e, 0xc4, 0xa0, 0xe1, 0x04, 0xe0, 0x91, 0xe4, 0x0e, 0xcc, 0x8c, 0xe1, 0x04, 0xc0, 0x80, 0xe4, 0x04, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x03, 0x10, 0x41, 0xe2, 0xc9, 0xff, 0xff, 0xea, 0x0c, 0x00, 0x52, 0xe3, 0x10, 0x00, 0x00, 0xba, 0x0c, 0x20, 0x42, 0xe2, 0x30, 0x00, 0x2d, 0xe9, 0x2e, 0x38, 0xa0, 0xe1, 0x30, 0x50, 0xb1, 0xe8, 0x04, 0x38, 0x83, 0xe1, 0x24, 0x48, 0xa0, 0xe1, 0x05, 0x48, 0x84, 0xe1, 0x25, 0x58, 0xa0, 0xe1, 0x0c, 0x58, 0x85, 0xe1, 0x2c, 0xc8, 0xa0, 0xe1, 0x0e, 0xc8, 0x8c, 0xe1, 0x38, 0x10, 0xa0, 0xe8, 0x10, 0x20, 0x52, 0xe2, 0xf3, 0xff, 0xff, 0xaa, 0x30, 0x00, 0xbd, 0xe8, 0x0c, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x2e, 0xc8, 0xa0, 0xe1, 0x04, 0xe0, 0x91, 0xe4, 0x0e, 0xc8, 0x8c, 0xe1, 0x04, 0xc0, 0x80, 0xe4, 0x04, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x02, 0x10, 0x41, 0xe2, 0xae, 0xff, 0xff, 0xea, 0x0c, 0x00, 0x52, 0xe3, 0x10, 0x00, 0x00, 0xba, 0x0c, 0x20, 0x42, 0xe2, 0x30, 0x00, 0x2d, 0xe9, 0x2e, 0x3c, 0xa0, 0xe1, 0x30, 0x50, 0xb1, 0xe8, 0x04, 0x34, 0x83, 0xe1, 0x24, 0x4c, 0xa0, 0xe1, 0x05, 0x44, 0x84, 0xe1, 0x25, 0x5c, 0xa0, 0xe1, 0x0c, 0x54, 0x85, 0xe1, 0x2c, 0xcc, 0xa0, 0xe1, 0x0e, 0xc4, 0x8c, 0xe1, 0x38, 0x10, 0xa0, 0xe8, 0x10, 0x20, 0x52, 0xe2, 0xf3, 0xff, 0xff, 0xaa, 0x30, 0x00, 0xbd, 0xe8, 0x0c, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x2e, 0xcc, 0xa0, 0xe1, 0x04, 0xe0, 0x91, 0xe4, 0x0e, 0xc4, 0x8c, 0xe1, 0x04, 0xc0, 0x80, 0xe4, 0x04, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x01, 0x10, 0x41, 0xe2, 0x93, 0xff, 0xff, 0xea, 0x02, 0x10, 0x81, 0xe0, 0x02, 0x00, 0x80, 0xe0, 0x04, 0x20, 0x52, 0xe2, 0x1f, 0x00, 0x00, 0xba, 0x03, 0xc0, 0x10, 0xe2, 0x27, 0x00, 0x00, 0x1a, 0x03, 0xc0, 0x11, 0xe2, 0x30, 0x00, 0x00, 0x1a, 0x08, 0x20, 0x52, 0xe2, 0x11, 0x00, 0x00, 0xba, 0x10, 0x40, 0x2d, 0xe9, 0x14, 0x20, 0x52, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x18, 0x50, 0x31, 0xe9, 0x18, 0x50, 0x20, 0xe9, 0x18, 0x50, 0x31, 0xe9, 0x18, 0x50, 0x20, 0xe9, 0x20, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x10, 0x00, 0x72, 0xe3, 0x18, 0x50, 0x31, 0xa9, 0x18, 0x50, 0x20, 0xa9, 0x10, 0x20, 0x42, 0xa2, 0x14, 0x20, 0x92, 0xe2, 0x08, 0x50, 0x31, 0xa9, 0x08, 0x50, 0x20, 0xa9, 0x0c, 0x20, 0x42, 0xa2, 0x10, 0x40, 0xbd, 0xe8, 0x08, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x04, 0x20, 0x52, 0xe2, 0x04, 0x30, 0x31, 0xb5, 0x04, 0x30, 0x20, 0xb5, 0x08, 0x10, 0x31, 0xa9, 0x08, 0x10, 0x20, 0xa9, 0x04, 0x20, 0x42, 0xa2, 0x04, 0x20, 0x92, 0xe2, 0x0e, 0xf0, 0xa0, 0x01, 0x02, 0x00, 0x52, 0xe3, 0x01, 0x30, 0x71, 0xe5, 0x01, 0x30, 0x60, 0xe5, 0x01, 0x30, 0x71, 0xa5, 0x01, 0x30, 0x60, 0xa5, 0x01, 0x30, 0x71, 0xc5, 0x01, 0x30, 0x60, 0xc5, 0x0e, 0xf0, 0xa0, 0xe1, 0x02, 0x00, 0x5c, 0xe3, 0x01, 0x30, 0x71, 0xe5, 0x01, 0x30, 0x60, 0xe5, 0x01, 0x30, 0x71, 0xa5, 0x01, 0x30, 0x60, 0xa5, 0x01, 0x30, 0x71, 0xc5, 0x01, 0x30, 0x60, 0xc5, 0x0c, 0x20, 0x52, 0xe0, 0xec, 0xff, 0xff, 0xba, 0x03, 0xc0, 0x11, 0xe2, 0xce, 0xff, 0xff, 0x0a, 0x03, 0x10, 0xc1, 0xe3, 0x00, 0x30, 0x91, 0xe5, 0x02, 0x00, 0x5c, 0xe3, 0x36, 0x00, 0x00, 0xba, 0x1a, 0x00, 0x00, 0x0a, 0x0c, 0x00, 0x52, 0xe3, 0x10, 0x00, 0x00, 0xba, 0x0c, 0x20, 0x42, 0xe2, 0x30, 0x40, 0x2d, 0xe9, 0x03, 0xe4, 0xa0, 0xe1, 0x38, 0x10, 0x31, 0xe9, 0x2c, 0xec, 0x8e, 0xe1, 0x0c, 0xc4, 0xa0, 0xe1, 0x25, 0xcc, 0x8c, 0xe1, 0x05, 0x54, 0xa0, 0xe1, 0x24, 0x5c, 0x85, 0xe1, 0x04, 0x44, 0xa0, 0xe1, 0x23, 0x4c, 0x84, 0xe1, 0x30, 0x50, 0x20, 0xe9, 0x10, 0x20, 0x52, 0xe2, 0xf3, 0xff, 0xff, 0xaa, 0x30, 0x40, 0xbd, 0xe8, 0x0c, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x03, 0xc4, 0xa0, 0xe1, 0x04, 0x30, 0x31, 0xe5, 0x23, 0xcc, 0x8c, 0xe1, 0x04, 0xc0, 0x20, 0xe5, 0x04, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x03, 0x10, 0x81, 0xe2, 0xca, 0xff, 0xff, 0xea, 0x0c, 0x00, 0x52, 0xe3, 0x10, 0x00, 0x00, 0xba, 0x0c, 0x20, 0x42, 0xe2, 0x30, 0x40, 0x2d, 0xe9, 0x03, 0xe8, 0xa0, 0xe1, 0x38, 0x10, 0x31, 0xe9, 0x2c, 0xe8, 0x8e, 0xe1, 0x0c, 0xc8, 0xa0, 0xe1, 0x25, 0xc8, 0x8c, 0xe1, 0x05, 0x58, 0xa0, 0xe1, 0x24, 0x58, 0x85, 0xe1, 0x04, 0x48, 0xa0, 0xe1, 0x23, 0x48, 0x84, 0xe1, 0x30, 0x50, 0x20, 0xe9, 0x10, 0x20, 0x52, 0xe2, 0xf3, 0xff, 0xff, 0xaa, 0x30, 0x40, 0xbd, 0xe8, 0x0c, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x03, 0xc8, 0xa0, 0xe1, 0x04, 0x30, 0x31, 0xe5, 0x23, 0xc8, 0x8c, 0xe1, 0x04, 0xc0, 0x20, 0xe5, 0x04, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x02, 0x10, 0x81, 0xe2, 0xaf, 0xff, 0xff, 0xea, 0x0c, 0x00, 0x52, 0xe3, 0x10, 0x00, 0x00, 0xba, 0x0c, 0x20, 0x42, 0xe2, 0x30, 0x40, 0x2d, 0xe9, 0x03, 0xec, 0xa0, 0xe1, 0x38, 0x10, 0x31, 0xe9, 0x2c, 0xe4, 0x8e, 0xe1, 0x0c, 0xcc, 0xa0, 0xe1, 0x25, 0xc4, 0x8c, 0xe1, 0x05, 0x5c, 0xa0, 0xe1, 0x24, 0x54, 0x85, 0xe1, 0x04, 0x4c, 0xa0, 0xe1, 0x23, 0x44, 0x84, 0xe1, 0x30, 0x50, 0x20, 0xe9, 0x10, 0x20, 0x52, 0xe2, 0xf3, 0xff, 0xff, 0xaa, 0x30, 0x40, 0xbd, 0xe8, 0x0c, 0x20, 0x92, 0xe2, 0x05, 0x00, 0x00, 0xba, 0x03, 0xcc, 0xa0, 0xe1, 0x04, 0x30, 0x31, 0xe5, 0x23, 0xc4, 0x8c, 0xe1, 0x04, 0xc0, 0x20, 0xe5, 0x04, 0x20, 0x52, 0xe2, 0xf9, 0xff, 0xff, 0xaa, 0x01, 0x10, 0x81, 0xe2, 0x94, 0xff, 0xff, 0xea, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x2d, 0xe9, 0xff, 0x10, 0x01, 0xe2, 0x04, 0x00, 0x52, 0xe3, 0x1c, 0x00, 0x00, 0xba, 0x03, 0x30, 0x10, 0xe2, 0x07, 0x00, 0x00, 0x0a, 0x04, 0x30, 0x63, 0xe2, 0x03, 0x20, 0x42, 0xe0, 0x02, 0x00, 0x53, 0xe3, 0x01, 0x10, 0xc0, 0xe4, 0x01, 0x10, 0xc0, 0xa4, 0x01, 0x10, 0xc0, 0xc4, 0x04, 0x00, 0x52, 0xe3, 0x12, 0x00, 0x00, 0xba, 0x01, 0x34, 0x81, 0xe1, 0x03, 0x38, 0x83, 0xe1, 0x20, 0x00, 0x52, 0xe3, 0x0a, 0x00, 0x00, 0xba, 0x70, 0x00, 0x2d, 0xe9, 0x03, 0x40, 0xa0, 0xe1, 0x03, 0x50, 0xa0, 0xe1, 0x03, 0x60, 0xa0, 0xe1, 0x78, 0x00, 0xa0, 0xe8, 0x10, 0x20, 0x42, 0xe2, 0x10, 0x00, 0x52, 0xe3, 0xfb, 0xff, 0xff, 0xca, 0x70, 0x00, 0xbd, 0xe8, 0x04, 0x00, 0x52, 0xe3, 0x03, 0x00, 0x00, 0xba, 0x04, 0x30, 0x80, 0xe4, 0x04, 0x20, 0x42, 0xe2, 0x04, 0x00, 0x52, 0xe3, 0xfb, 0xff, 0xff, 0xaa, 0x00, 0x00, 0x52, 0xe3, 0x01, 0x00, 0xbd, 0x08, 0x0e, 0xf0, 0xa0, 0x01, 0x02, 0x00, 0x52, 0xe3, 0x01, 0x10, 0xc0, 0xe4, 0x01, 0x10, 0xc0, 0xa4, 0x01, 0x10, 0xc0, 0xc4, 0x01, 0x00, 0xbd, 0xe8, 0x0e, 0xf0, 0xa0, 0xe1, 0x00, 0x20, 0xa0, 0xe3, 0x02, 0x39, 0xa0, 0xe3, 0xc2, 0x21, 0x40, 0xe3, 0x00, 0x00, 0xa0, 0xe3, 0x04, 0xe0, 0x2d, 0xe5, 0xf7, 0xe0, 0xa0, 0xe3, 0x28, 0x18, 0x92, 0xe5, 0x0d, 0xc0, 0xa0, 0xe3, 0xc2, 0x31, 0x40, 0xe3, 0x0f, 0x10, 0xc1, 0xe3, 0x03, 0x10, 0x81, 0xe3, 0x28, 0x18, 0x82, 0xe5, 0x28, 0x18, 0x92, 0xe5, 0xf0, 0x10, 0xc1, 0xe3, 0x30, 0x10, 0x81, 0xe3, 0x28, 0x18, 0x82, 0xe5, 0x6c, 0x10, 0x92, 0xe5, 0x01, 0x18, 0x81, 0xe3, 0x6c, 0x10, 0x82, 0xe5, 0xd8, 0x12, 0x92, 0xe5, 0x01, 0x18, 0x81, 0xe3, 0xd8, 0x12, 0x82, 0xe5, 0x04, 0x00, 0x83, 0xe5, 0x08, 0xe0, 0x83, 0xe5, 0x10, 0x00, 0x83, 0xe5, 0x0c, 0x20, 0x93, 0xe5, 0x80, 0x20, 0x82, 0xe3, 0x0c, 0x20, 0x83, 0xe5, 0x00, 0xc0, 0x83, 0xe5, 0x04, 0x00, 0x83, 0xe5, 0x0c, 0x20, 0x93, 0xe5, 0x80, 0x20, 0xc2, 0xe3, 0x0c, 0x20, 0x83, 0xe5, 0x0c, 0x20, 0x93, 0xe5, 0x1f, 0x20, 0xc2, 0xe3, 0x03, 0x20, 0x82, 0xe3, 0x0c, 0x20, 0x83, 0xe5, 0x04, 0xf0, 0x9d, 0xe4, 0x02, 0x29, 0xa0, 0xe3, 0xc2, 0x21, 0x40, 0xe3, 0x7c, 0x30, 0x92, 0xe5, 0x02, 0x00, 0x13, 0xe3, 0xfc, 0xff, 0xff, 0x0a, 0x00, 0x00, 0x82, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x30, 0xa0, 0xe3, 0x02, 0x01, 0x00, 0xe3, 0xc2, 0x31, 0x40, 0xe3, 0x21, 0x1b, 0x01, 0xe3, 0x01, 0x00, 0x40, 0xe3, 0xc8, 0x20, 0xa0, 0xe3, 0x00, 0x10, 0x48, 0xe3, 0x50, 0x00, 0x83, 0xe5, 0x00, 0x10, 0x83, 0xe5, 0x01, 0x20, 0x52, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x02, 0xc1, 0x00, 0xe3, 0x07, 0x01, 0x04, 0xe3, 0x02, 0xc0, 0x40, 0xe3, 0x11, 0x18, 0x01, 0xe3, 0x00, 0x01, 0x49, 0xe3, 0x03, 0x20, 0xa0, 0xe1, 0x04, 0x10, 0x49, 0xe3, 0x50, 0xc0, 0x83, 0xe5, 0x10, 0x00, 0x83, 0xe5, 0x28, 0x10, 0x83, 0xe5, 0x28, 0x30, 0x92, 0xe5, 0x01, 0x02, 0x13, 0xe3, 0xfc, 0xff, 0xff, 0x0a, 0x03, 0x30, 0xa0, 0xe3, 0xc6, 0x1d, 0xa0, 0xe3, 0x00, 0x31, 0x48, 0xe3, 0x54, 0x10, 0x82, 0xe5, 0x5c, 0x31, 0x82, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, 0x04, 0xe0, 0x2d, 0xe5, 0x04, 0x10, 0x01, 0xe3, 0x0a, 0xc0, 0xd0, 0xe5, 0x04, 0x20, 0xa0, 0xe3, 0x0b, 0x30, 0xd0, 0xe5, 0x43, 0x10, 0x40, 0xe3, 0x20, 0x00, 0x5c, 0xe3, 0x43, 0x20, 0x40, 0xe3, 0x01, 0xc0, 0xa0, 0x01, 0xb8, 0xe0, 0xd0, 0xe1, 0x02, 0xc0, 0xa0, 0x11, 0x00, 0x30, 0x53, 0xe2, 0x01, 0x30, 0xa0, 0x13, 0x00, 0x00, 0x5e, 0xe3, 0x19, 0x00, 0x00, 0x0a, 0x0e, 0x18, 0xa0, 0xe1, 0xff, 0x04, 0x11, 0xe3, 0x0e, 0x1c, 0xa0, 0x01, 0x08, 0x20, 0xa0, 0x03, 0x10, 0x20, 0xa0, 0x13, 0x04, 0xe0, 0xa0, 0x03, 0x0c, 0xe0, 0xa0, 0x13, 0x0f, 0x02, 0x11, 0xe3, 0x01, 0x12, 0xa0, 0x01, 0x0e, 0x20, 0xa0, 0x01, 0x03, 0x01, 0x11, 0xe3, 0x01, 0x11, 0xa0, 0x01, 0x02, 0x20, 0x42, 0x02, 0x00, 0x00, 0x51, 0xe3, 0x04, 0x20, 0x42, 0xb2, 0x05, 0x20, 0x42, 0xa2, 0x02, 0x24, 0xa0, 0xe1, 0x0c, 0x10, 0xd0, 0xe5, 0x02, 0x0a, 0xa0, 0xe3, 0xc6, 0x01, 0x40, 0xe3, 0x01, 0x10, 0x41, 0xe2, 0x01, 0x32, 0x83, 0xe1, 0x0c, 0x30, 0x83, 0xe1, 0x02, 0x30, 0x83, 0xe1, 0x00, 0x30, 0x80, 0xe5, 0x04, 0xf0, 0x9d, 0xe4, 0x3f, 0x2b, 0xa0, 0xe3, 0xff, 0x2f, 0x4f, 0xe3, 0xf3, 0xff, 0xff, 0xea, 0x34, 0x3b, 0x9f, 0xe5, 0x00, 0xc0, 0xa0, 0xe3, 0xf0, 0x4f, 0x2d, 0xe9, 0x54, 0xd0, 0x4d, 0xe2, 0x03, 0x30, 0x8f, 0xe0, 0x20, 0x40, 0x8d, 0xe2, 0xc2, 0xc1, 0x40, 0xe3, 0x0f, 0x00, 0x93, 0xe8, 0x0f, 0x00, 0x84, 0xe8, 0x0a, 0x30, 0xa0, 0xe3, 0x5c, 0x21, 0x9c, 0xe5, 0x02, 0x21, 0xc2, 0xe3, 0x5c, 0x21, 0x8c, 0xe5, 0xfc, 0x20, 0x9c, 0xe5, 0x02, 0x21, 0xc2, 0xe3, 0xfc, 0x20, 0x8c, 0xe5, 0x60, 0x20, 0x9c, 0xe5, 0x01, 0x29, 0xc2, 0xe3, 0x60, 0x20, 0x8c, 0xe5, 0xc0, 0x22, 0x9c, 0xe5, 0x01, 0x29, 0xc2, 0xe3, 0xc0, 0x22, 0x8c, 0xe5, 0x20, 0x20, 0x9c, 0xe5, 0x02, 0x21, 0xc2, 0xe3, 0x20, 0x20, 0x8c, 0xe5, 0x01, 0x30, 0x53, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x00, 0x21, 0x9c, 0xe5, 0xfa, 0x3f, 0xa0, 0xe3, 0x02, 0x21, 0xc2, 0xe3, 0x00, 0x21, 0x8c, 0xe5, 0x01, 0x30, 0x53, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x1d, 0x2c, 0xa0, 0xe3, 0x7c, 0x35, 0x01, 0xe3, 0x10, 0x20, 0x48, 0xe3, 0x20, 0x20, 0x8c, 0xe5, 0x01, 0x30, 0x53, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0xf4, 0x30, 0x9c, 0xe5, 0x0c, 0x10, 0xa0, 0xe1, 0x12, 0x27, 0x02, 0xe3, 0x03, 0x36, 0xc3, 0xe3, 0x0f, 0x30, 0xc3, 0xe3, 0x01, 0x38, 0x83, 0xe3, 0xf4, 0x30, 0x8c, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x01, 0x20, 0x52, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0xf4, 0x30, 0x91, 0xe5, 0x01, 0x08, 0x13, 0xe3, 0xfa, 0xff, 0xff, 0x1a, 0x00, 0x30, 0xa0, 0xe3, 0x0a, 0x20, 0xa0, 0xe3, 0xc2, 0x31, 0x40, 0xe3, 0xc0, 0x12, 0x93, 0xe5, 0x01, 0x19, 0x81, 0xe3, 0xc0, 0x12, 0x83, 0xe5, 0x60, 0x10, 0x93, 0xe5, 0x01, 0x19, 0x81, 0xe3, 0x60, 0x10, 0x83, 0xe5, 0xfc, 0x10, 0x93, 0xe5, 0x02, 0x11, 0x81, 0xe3, 0xfc, 0x10, 0x83, 0xe5, 0x5c, 0x11, 0x93, 0xe5, 0x02, 0x11, 0x81, 0xe3, 0x5c, 0x11, 0x83, 0xe5, 0xf4, 0x10, 0x93, 0xe5, 0x02, 0x11, 0x81, 0xe3, 0xf4, 0x10, 0x83, 0xe5, 0x01, 0x20, 0x52, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x03, 0x5a, 0xa0, 0xe3, 0x0e, 0x20, 0x0c, 0xe3, 0xc6, 0x51, 0x40, 0xe3, 0x7d, 0x3f, 0xa0, 0xe3, 0x0c, 0x20, 0x85, 0xe5, 0x01, 0x30, 0x53, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x04, 0x00, 0xa0, 0xe1, 0x03, 0x74, 0x00, 0xe3, 0x02, 0x61, 0x00, 0xe3, 0x80, 0xff, 0xff, 0xeb, 0x04, 0x62, 0x40, 0xe3, 0x70, 0xcc, 0x01, 0xe3, 0x30, 0xc0, 0x85, 0xe5, 0x07, 0xe0, 0xa0, 0xe1, 0x05, 0xe5, 0x40, 0xe3, 0x40, 0x10, 0xa0, 0xe3, 0x34, 0x10, 0x85, 0xe5, 0x18, 0xc0, 0xa0, 0xe3, 0x38, 0xc0, 0x85, 0xe5, 0x07, 0x08, 0x01, 0xe3, 0x09, 0x09, 0x40, 0xe3, 0x0a, 0x34, 0x00, 0xe3, 0x03, 0x30, 0x40, 0xe3, 0x0a, 0x25, 0x00, 0xe3, 0x06, 0x24, 0x40, 0xe3, 0x00, 0x10, 0xa0, 0xe3, 0x02, 0x73, 0x40, 0xe3, 0x0c, 0xc0, 0x04, 0xe3, 0x3c, 0x10, 0x85, 0xe5, 0x80, 0x90, 0xa0, 0xe3, 0x58, 0x00, 0x85, 0xe5, 0x41, 0x09, 0x01, 0xe3, 0x5c, 0x30, 0x85, 0xe5, 0x02, 0x3a, 0xa0, 0xe3, 0x60, 0x20, 0x85, 0xe5, 0x80, 0x80, 0xa0, 0xe3, 0x64, 0xc0, 0x85, 0xe5, 0x21, 0xcf, 0x0b, 0xe3, 0x68, 0x70, 0x85, 0xe5, 0x19, 0x7e, 0xa0, 0xe3, 0x6c, 0xe0, 0x85, 0xe5, 0x3f, 0xe0, 0xa0, 0xe3, 0x78, 0x20, 0x95, 0xe5, 0xc6, 0x31, 0x40, 0xe3, 0x22, 0x28, 0xa0, 0xe1, 0x22, 0xc8, 0x40, 0xe3, 0x02, 0x28, 0xa0, 0xe1, 0x91, 0x06, 0x41, 0xe3, 0x66, 0x2c, 0x82, 0xe3, 0x2b, 0xe0, 0x40, 0xe3, 0x10, 0x20, 0x82, 0xe3, 0x78, 0x20, 0x85, 0xe5, 0x0d, 0x20, 0xa0, 0xe3, 0x80, 0x60, 0x85, 0xe5, 0x01, 0x6c, 0xa0, 0xe3, 0x50, 0xc0, 0x85, 0xe5, 0x09, 0xc0, 0xa0, 0xe3, 0x54, 0x00, 0x85, 0xe5, 0x01, 0x0b, 0xa0, 0xe3, 0x01, 0x70, 0x40, 0xe3, 0x90, 0xe0, 0x85, 0xe5, 0x01, 0xec, 0xa0, 0xe3, 0x90, 0x70, 0x83, 0xe5, 0x01, 0x70, 0xa0, 0xe3, 0x00, 0x22, 0x40, 0xe3, 0x80, 0x60, 0x40, 0xe3, 0x00, 0xc6, 0x40, 0xe3, 0x00, 0x01, 0x40, 0xe3, 0x98, 0x70, 0x83, 0xe5, 0x0d, 0x70, 0xa0, 0xe3, 0x10, 0x20, 0x83, 0xe5, 0x14, 0x60, 0x83, 0xe5, 0x09, 0x60, 0xa0, 0xe3, 0x18, 0xc0, 0x83, 0xe5, 0x09, 0xc0, 0xa0, 0xe3, 0x1c, 0x00, 0x83, 0xe5, 0x19, 0x0d, 0xa0, 0xe3, 0x20, 0x20, 0x83, 0xe5, 0x09, 0x20, 0xa0, 0xe3, 0x00, 0x71, 0x40, 0xe3, 0x20, 0x90, 0x40, 0xe3, 0x60, 0xe0, 0x40, 0xe3, 0x00, 0xc7, 0x40, 0xe3, 0x00, 0x01, 0x40, 0xe3, 0x00, 0x21, 0x40, 0xe3, 0x24, 0xe0, 0x83, 0xe5, 0x01, 0xec, 0xa0, 0xe3, 0x28, 0x70, 0x83, 0xe5, 0x2c, 0x90, 0x83, 0xe5, 0x30, 0xc0, 0x83, 0xe5, 0x0d, 0xc3, 0x00, 0xe3, 0x34, 0x00, 0x83, 0xe5, 0x06, 0x0b, 0xa0, 0xe3, 0x38, 0x70, 0x83, 0xe5, 0x3c, 0x90, 0x83, 0xe5, 0x40, 0x20, 0x83, 0xe5, 0x12, 0x2e, 0xa0, 0xe3, 0x40, 0x80, 0x40, 0xe3, 0x00, 0x64, 0x40, 0xe3, 0x40, 0xe0, 0x40, 0xe3, 0x00, 0xc0, 0x42, 0xe3, 0x00, 0x04, 0x40, 0xe3, 0x40, 0x20, 0x40, 0xe3, 0x44, 0x80, 0x83, 0xe5, 0x48, 0x70, 0x83, 0xe5, 0x4c, 0x80, 0x83, 0xe5, 0x50, 0x70, 0x83, 0xe5, 0x54, 0x80, 0x83, 0xe5, 0x58, 0x60, 0x83, 0xe5, 0x5c, 0xe0, 0x83, 0xe5, 0xa3, 0xef, 0x06, 0xe3, 0x60, 0xc0, 0x83, 0xe5, 0x64, 0x00, 0x83, 0xe5, 0x64, 0x00, 0xa0, 0xe3, 0x68, 0x60, 0x83, 0xe5, 0x00, 0xc0, 0xa0, 0xe1, 0x6c, 0x20, 0x83, 0xe5, 0x00, 0x21, 0x95, 0xe5, 0xbe, 0xe4, 0x49, 0xe3, 0xfd, 0x21, 0xc2, 0xe3, 0x00, 0x21, 0x85, 0xe5, 0x04, 0x21, 0x95, 0xe5, 0x05, 0x24, 0xc2, 0xe3, 0x01, 0x23, 0x82, 0xe3, 0x04, 0x21, 0x85, 0xe5, 0x00, 0xe8, 0x83, 0xe5, 0x01, 0xc0, 0x5c, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x88, 0x28, 0x95, 0xe5, 0xff, 0x26, 0xc2, 0xe3, 0x0f, 0x28, 0xc2, 0xe3, 0x05, 0x26, 0x82, 0xe3, 0x88, 0x28, 0x85, 0xe5, 0x00, 0x18, 0x83, 0xe5, 0x01, 0x00, 0x50, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x44, 0x33, 0x95, 0xe5, 0xc1, 0x2f, 0x00, 0xe3, 0xff, 0x2f, 0x4f, 0xe3, 0x02, 0x30, 0x03, 0xe0, 0x20, 0x30, 0x83, 0xe3, 0x44, 0x33, 0x85, 0xe5, 0xc4, 0x33, 0x95, 0xe5, 0x02, 0x30, 0x03, 0xe0, 0x20, 0x30, 0x83, 0xe3, 0xc4, 0x33, 0x85, 0xe5, 0x44, 0x34, 0x95, 0xe5, 0x02, 0x30, 0x03, 0xe0, 0x20, 0x30, 0x83, 0xe3, 0x44, 0x34, 0x85, 0xe5, 0xc4, 0x34, 0x95, 0xe5, 0x02, 0x30, 0x03, 0xe0, 0x20, 0x30, 0x83, 0xe3, 0xc4, 0x34, 0x85, 0xe5, 0x08, 0x32, 0x95, 0xe5, 0x02, 0x30, 0x83, 0xe3, 0x08, 0x32, 0x85, 0xe5, 0x08, 0x31, 0x95, 0xe5, 0xc0, 0x30, 0x83, 0xe3, 0x08, 0x31, 0x85, 0xe5, 0x00, 0x31, 0x95, 0xe5, 0x0f, 0x3a, 0xc3, 0xe3, 0x00, 0x31, 0x85, 0xe5, 0x08, 0x31, 0x95, 0xe5, 0x0f, 0x3c, 0xc3, 0xe3, 0x06, 0x3c, 0x83, 0xe3, 0x08, 0x31, 0x85, 0xe5, 0x2a, 0x30, 0xdd, 0xe5, 0x20, 0x00, 0x53, 0xe3, 0x03, 0x3a, 0xa0, 0xe3, 0xc6, 0x31, 0x40, 0xe3, 0x44, 0x14, 0x85, 0x15, 0xc4, 0x14, 0x85, 0x15, 0x2b, 0x10, 0xdd, 0xe5, 0xc0, 0x20, 0x93, 0xe5, 0x00, 0x00, 0x51, 0xe3, 0x0f, 0x24, 0xc2, 0xe3, 0x03, 0x14, 0xa0, 0x13, 0x01, 0x14, 0xa0, 0x03, 0x01, 0x20, 0x82, 0xe1, 0xc0, 0x20, 0x83, 0xe5, 0x20, 0x20, 0x9d, 0xe5, 0x24, 0xe0, 0x9d, 0xe5, 0x0e, 0x10, 0x92, 0xe1, 0x55, 0x00, 0x00, 0x0a, 0x52, 0x12, 0xe3, 0xe7, 0x0f, 0x50, 0x02, 0xe2, 0x0e, 0x02, 0xa0, 0xe1, 0x0e, 0xc4, 0xa0, 0xe1, 0x0f, 0x0c, 0x00, 0xe2, 0x81, 0x00, 0x80, 0xe1, 0x0f, 0xcc, 0x0c, 0xe2, 0x52, 0x14, 0xe3, 0xe7, 0x85, 0xc0, 0x8c, 0xe1, 0x0f, 0x5c, 0x0e, 0xe2, 0x81, 0x50, 0x85, 0xe1, 0x52, 0x66, 0xe3, 0xe7, 0x2e, 0x12, 0xa0, 0xe1, 0x10, 0xc3, 0x83, 0xe5, 0x0f, 0x1c, 0x01, 0xe2, 0x86, 0x10, 0x81, 0xe1, 0x14, 0xc3, 0x83, 0xe5, 0x18, 0xc3, 0x83, 0xe5, 0x1c, 0xc3, 0x83, 0xe5, 0x20, 0xc3, 0x83, 0xe5, 0x24, 0xc3, 0x83, 0xe5, 0x28, 0xc3, 0x83, 0xe5, 0x2c, 0xc3, 0x83, 0xe5, 0x30, 0xc3, 0x83, 0xe5, 0x01, 0xc0, 0xa0, 0xe3, 0x90, 0x03, 0x83, 0xe5, 0x94, 0x03, 0x83, 0xe5, 0x98, 0x03, 0x83, 0xe5, 0x9c, 0x03, 0x83, 0xe5, 0xa0, 0x03, 0x83, 0xe5, 0xa4, 0x03, 0x83, 0xe5, 0xa8, 0x03, 0x83, 0xe5, 0xac, 0x03, 0x83, 0xe5, 0xb0, 0x03, 0x83, 0xe5, 0x10, 0x54, 0x83, 0xe5, 0x14, 0x54, 0x83, 0xe5, 0x18, 0x54, 0x83, 0xe5, 0x1c, 0x54, 0x83, 0xe5, 0x20, 0x54, 0x83, 0xe5, 0x24, 0x54, 0x83, 0xe5, 0x28, 0x54, 0x83, 0xe5, 0x2c, 0x54, 0x83, 0xe5, 0x30, 0x54, 0x83, 0xe5, 0x90, 0x14, 0x83, 0xe5, 0x94, 0x14, 0x83, 0xe5, 0x98, 0x14, 0x83, 0xe5, 0x9c, 0x14, 0x83, 0xe5, 0xa0, 0x14, 0x83, 0xe5, 0xa4, 0x14, 0x83, 0xe5, 0xa8, 0x14, 0x83, 0xe5, 0xac, 0x14, 0x83, 0xe5, 0xb0, 0x14, 0x83, 0xe5, 0x00, 0x11, 0x93, 0xe5, 0x2e, 0x54, 0xa0, 0xe1, 0x01, 0x13, 0xc1, 0xe3, 0x0f, 0x5c, 0x05, 0xe2, 0x00, 0x11, 0x83, 0xe5, 0x52, 0x18, 0xe3, 0xe7, 0x01, 0x50, 0x85, 0xe1, 0x2e, 0x06, 0xa0, 0xe1, 0x34, 0x53, 0x83, 0xe5, 0x0f, 0x0c, 0x00, 0xe2, 0x38, 0x53, 0x83, 0xe5, 0x2e, 0x18, 0xa0, 0xe1, 0x52, 0x5a, 0xe3, 0xe7, 0x0f, 0x1c, 0x01, 0xe2, 0x2e, 0xee, 0xa0, 0xe1, 0x05, 0x00, 0x80, 0xe1, 0x52, 0x5c, 0xe3, 0xe7, 0x22, 0x2e, 0xa0, 0xe1, 0x0e, 0x24, 0x82, 0xe1, 0x05, 0x10, 0x81, 0xe1, 0xb4, 0x03, 0x83, 0xe5, 0xb8, 0x03, 0x83, 0xe5, 0x34, 0x14, 0x83, 0xe5, 0x38, 0x14, 0x83, 0xe5, 0xb4, 0x24, 0x83, 0xe5, 0xb8, 0x24, 0x83, 0xe5, 0x00, 0x21, 0x93, 0xe5, 0x01, 0x23, 0x82, 0xe3, 0x00, 0x21, 0x83, 0xe5, 0x01, 0xc0, 0x5c, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x32, 0x30, 0xa0, 0xe3, 0x01, 0x30, 0x53, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x07, 0x35, 0xa0, 0xe3, 0x24, 0x20, 0x93, 0xe5, 0xff, 0x00, 0x12, 0xe3, 0x02, 0x00, 0x00, 0x1a, 0xf0, 0x30, 0x93, 0xe5, 0x01, 0x00, 0x13, 0xe3, 0x41, 0x01, 0x00, 0x0a, 0x03, 0x2a, 0xa0, 0xe3, 0x16, 0x37, 0x01, 0xe3, 0xc6, 0x21, 0x40, 0xe3, 0x0a, 0x1a, 0x00, 0xe3, 0x14, 0x35, 0x41, 0xe3, 0x06, 0xb7, 0x00, 0xe3, 0x0a, 0x1a, 0x40, 0xe3, 0x0e, 0xaf, 0x00, 0xe3, 0x08, 0x30, 0x8d, 0xe5, 0x02, 0x30, 0xa0, 0xe1, 0x50, 0x11, 0x82, 0xe5, 0x14, 0x20, 0x8d, 0xe2, 0x04, 0x20, 0x8d, 0xe5, 0x08, 0x99, 0x00, 0xe3, 0x0c, 0x40, 0x8d, 0xe5, 0x1e, 0xcf, 0x01, 0xe3, 0x04, 0xb5, 0x40, 0xe3, 0x18, 0x09, 0x01, 0xe3, 0x0c, 0xad, 0x40, 0xe3, 0x10, 0x81, 0x01, 0xe3, 0x0a, 0x9b, 0x40, 0xe3, 0x00, 0x20, 0xa0, 0xe3, 0x1c, 0xcd, 0x41, 0xe3, 0x02, 0x40, 0xa0, 0xe1, 0x1a, 0x0b, 0x41, 0xe3, 0x12, 0x83, 0x41, 0xe3, 0xbb, 0x19, 0x03, 0xe3, 0x03, 0x50, 0xa0, 0xe3, 0x12, 0xe7, 0x02, 0xe3, 0x51, 0x14, 0xa0, 0xe1, 0x0f, 0x10, 0x01, 0xe2, 0x01, 0x28, 0xa0, 0xe1, 0x01, 0x2a, 0x82, 0xe1, 0x01, 0x20, 0x82, 0xe1, 0x01, 0x26, 0x82, 0xe1, 0x01, 0x24, 0x82, 0xe1, 0x01, 0x22, 0x82, 0xe1, 0x40, 0x21, 0x83, 0xe5, 0x02, 0x23, 0xa0, 0xe3, 0x00, 0x20, 0x83, 0xe5, 0x00, 0x50, 0x83, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x01, 0xe0, 0x5e, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0x10, 0x20, 0x93, 0xe5, 0x01, 0x00, 0x12, 0xe3, 0xfa, 0xff, 0xff, 0x0a, 0x48, 0x11, 0x93, 0xe5, 0x01, 0x21, 0x00, 0xe3, 0x01, 0x21, 0x40, 0xe3, 0x03, 0xe0, 0xa0, 0xe3, 0x71, 0x10, 0xef, 0xe6, 0x02, 0x53, 0xa0, 0xe3, 0x92, 0x01, 0x02, 0xe0, 0x50, 0x21, 0x83, 0xe5, 0x12, 0x27, 0x02, 0xe3, 0x00, 0x50, 0x83, 0xe5, 0x00, 0xe0, 0x83, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x01, 0x20, 0x52, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0x10, 0xe0, 0x93, 0xe5, 0x01, 0x00, 0x1e, 0xe3, 0xfa, 0xff, 0xff, 0x0a, 0x48, 0x21, 0x93, 0xe5, 0x50, 0x50, 0x8d, 0xe2, 0x38, 0xa0, 0x8d, 0xe5, 0x01, 0xec, 0xa0, 0xe3, 0x52, 0x2c, 0xe4, 0xe7, 0x0c, 0x7d, 0x00, 0xe3, 0x02, 0x20, 0x85, 0xe0, 0x0a, 0x6b, 0x00, 0xe3, 0x08, 0x50, 0x9d, 0xe5, 0x04, 0x40, 0x84, 0xe2, 0x02, 0xe3, 0x40, 0xe3, 0x18, 0x00, 0x54, 0xe3, 0x4c, 0x50, 0x8d, 0xe5, 0x14, 0x55, 0x01, 0xe3, 0x3c, 0x90, 0x8d, 0xe5, 0x40, 0xc0, 0x8d, 0xe5, 0x44, 0x00, 0x8d, 0xe5, 0x48, 0x80, 0x8d, 0xe5, 0x30, 0xe0, 0x8d, 0xe5, 0x50, 0xe0, 0x8d, 0xe2, 0x34, 0xb0, 0x8d, 0xe5, 0x20, 0x20, 0x52, 0xe5, 0x0e, 0x7f, 0x40, 0xe3, 0x08, 0x69, 0x40, 0xe3, 0x01, 0x20, 0x42, 0xe2, 0x16, 0x57, 0x41, 0xe3, 0x12, 0x20, 0xe5, 0xe6, 0x02, 0x20, 0x8e, 0xe0, 0x12, 0xe3, 0x01, 0xe3, 0x10, 0xe1, 0x41, 0xe3, 0x40, 0x00, 0x8d, 0xe5, 0x44, 0xc0, 0x8d, 0xe5, 0x38, 0x70, 0x8d, 0xe5, 0x3c, 0x60, 0x8d, 0xe5, 0x48, 0x50, 0x8d, 0xe5, 0x4c, 0xe0, 0x8d, 0xe5, 0x20, 0x20, 0x52, 0xe5, 0x02, 0x14, 0x81, 0xe1, 0x04, 0x20, 0x9d, 0xe5, 0xb2, 0x10, 0xc2, 0xe0, 0x04, 0x20, 0x8d, 0xe5, 0xaf, 0xff, 0xff, 0x1a, 0x0c, 0x40, 0x9d, 0xe5, 0x14, 0x00, 0x8d, 0xe2, 0x07, 0x00, 0x90, 0xe8, 0x48, 0x01, 0x83, 0xe5, 0x4c, 0x11, 0x83, 0xe5, 0x50, 0x21, 0x83, 0xe5, 0x03, 0x3a, 0xa0, 0xe3, 0xf1, 0x15, 0x00, 0xe3, 0xc6, 0x31, 0x40, 0xe3, 0x12, 0x27, 0x02, 0xe3, 0x00, 0x10, 0x83, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x01, 0x20, 0x52, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0x10, 0x10, 0x93, 0xe5, 0x01, 0x00, 0x11, 0xe3, 0xfa, 0xff, 0xff, 0x0a, 0x03, 0x3a, 0xa0, 0xe3, 0xc6, 0x31, 0x40, 0xe3, 0x10, 0x20, 0x93, 0xe5, 0xfe, 0x06, 0x12, 0xe3, 0x29, 0x00, 0x00, 0x0a, 0x48, 0x23, 0x93, 0xe5, 0x02, 0x04, 0x12, 0xe3, 0xe0, 0x00, 0x00, 0x0a, 0x03, 0x2a, 0xa0, 0xe3, 0x00, 0x10, 0xa0, 0xe3, 0xc6, 0x21, 0x40, 0xe3, 0xc0, 0x30, 0x92, 0xe5, 0x0f, 0x34, 0xc3, 0xe3, 0x01, 0x34, 0x83, 0xe3, 0xc0, 0x30, 0x82, 0xe5, 0x2b, 0x10, 0xcd, 0xe5, 0x03, 0x3a, 0xa0, 0xe3, 0xc6, 0x31, 0x40, 0xe3, 0x48, 0x24, 0x93, 0xe5, 0x01, 0x04, 0x12, 0xe3, 0xd7, 0x00, 0x00, 0x1a, 0xc8, 0x34, 0x93, 0xe5, 0x01, 0x04, 0x13, 0xe3, 0xd4, 0x00, 0x00, 0x1a, 0x04, 0x00, 0xa0, 0xe1, 0xdf, 0xfd, 0xff, 0xeb, 0x14, 0x30, 0xa0, 0xe3, 0x01, 0x30, 0x53, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x03, 0x3a, 0xa0, 0xe3, 0x01, 0x14, 0x00, 0xe3, 0xc6, 0x31, 0x40, 0xe3, 0x12, 0x27, 0x02, 0xe3, 0x00, 0x10, 0x83, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x01, 0x20, 0x52, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0x10, 0x10, 0x93, 0xe5, 0x01, 0x00, 0x11, 0xe3, 0xfa, 0xff, 0xff, 0x0a, 0x03, 0x3a, 0xa0, 0xe3, 0xc6, 0x31, 0x40, 0xe3, 0x10, 0x30, 0x93, 0xe5, 0xfe, 0x06, 0x13, 0xe3, 0x00, 0x30, 0xa0, 0x13, 0x20, 0x30, 0x83, 0x15, 0x95, 0x00, 0x00, 0x1a, 0x03, 0x2a, 0xa0, 0xe3, 0x12, 0x37, 0x02, 0xe3, 0xc6, 0x21, 0x40, 0xe3, 0x01, 0x00, 0x00, 0xea, 0x01, 0x30, 0x53, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0x18, 0x10, 0x92, 0xe5, 0x01, 0x00, 0x11, 0xe3, 0xfa, 0xff, 0xff, 0x0a, 0x03, 0x1a, 0xa0, 0xe3, 0x0a, 0x30, 0xa0, 0xe3, 0xc6, 0x11, 0x40, 0xe3, 0x03, 0x00, 0xa0, 0xe1, 0x8c, 0x20, 0x91, 0xe5, 0x02, 0x21, 0x82, 0xe3, 0x8c, 0x20, 0x81, 0xe5, 0x01, 0x00, 0x50, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x8c, 0x20, 0x91, 0xe5, 0x02, 0x21, 0xc2, 0xe3, 0x8c, 0x20, 0x81, 0xe5, 0x01, 0x30, 0x53, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x60, 0x30, 0xa0, 0xe3, 0x02, 0x2a, 0xa0, 0xe3, 0xaa, 0x30, 0x40, 0xe3, 0x00, 0x00, 0xe0, 0xe3, 0x0c, 0x31, 0x81, 0xe5, 0x40, 0x31, 0x91, 0xe5, 0xc6, 0x21, 0x40, 0xe3, 0x02, 0x31, 0x83, 0xe3, 0x40, 0x31, 0x81, 0xe5, 0x94, 0x00, 0x82, 0xe5, 0x2b, 0x30, 0xdd, 0xe5, 0x00, 0x00, 0x53, 0xe3, 0x03, 0x33, 0x00, 0x13, 0x01, 0x32, 0x00, 0x03, 0x20, 0x31, 0x81, 0xe5, 0x01, 0x30, 0xa0, 0xe3, 0x01, 0x30, 0x53, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x03, 0x1a, 0xa0, 0xe3, 0x02, 0x2a, 0xa0, 0xe3, 0xc6, 0x21, 0x40, 0xe3, 0x01, 0x0b, 0xa0, 0xe3, 0xc6, 0x11, 0x40, 0xe3, 0x0a, 0x30, 0xa0, 0xe3, 0x00, 0x0c, 0x40, 0xe3, 0x7c, 0x00, 0x81, 0xe5, 0xd0, 0x10, 0x92, 0xe5, 0x02, 0x11, 0x81, 0xe3, 0xd0, 0x10, 0x82, 0xe5, 0x01, 0x30, 0x53, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x02, 0x2c, 0xa0, 0xe3, 0x21, 0x3e, 0xa0, 0xe3, 0xb8, 0x22, 0xcd, 0xe1, 0x04, 0x00, 0xa0, 0xe1, 0xbc, 0x32, 0xcd, 0xe1, 0x8e, 0xfd, 0xff, 0xeb, 0x0b, 0x20, 0xa0, 0xe3, 0x55, 0xca, 0x0a, 0xe3, 0x55, 0xca, 0x4a, 0xe3, 0x02, 0x30, 0xa0, 0xe1, 0x2c, 0x20, 0xcd, 0xe5, 0x01, 0x01, 0xa0, 0xe3, 0x00, 0xe0, 0xa0, 0xe3, 0x05, 0x00, 0x00, 0xea, 0x2c, 0x30, 0xdd, 0xe5, 0x01, 0x30, 0x83, 0xe2, 0x73, 0x30, 0xef, 0xe6, 0x2c, 0x30, 0xcd, 0xe5, 0x0f, 0x00, 0x53, 0xe3, 0x0b, 0x00, 0x00, 0x8a, 0x2d, 0x10, 0xdd, 0xe5, 0xb8, 0x22, 0xdd, 0xe1, 0x03, 0x30, 0x81, 0xe0, 0x00, 0xe0, 0x80, 0xe5, 0x12, 0x33, 0xa0, 0xe1, 0x01, 0x31, 0x83, 0xe2, 0x00, 0xc0, 0x83, 0xe5, 0x4f, 0xf0, 0x7f, 0xf5, 0x00, 0x20, 0x90, 0xe5, 0x00, 0x30, 0x93, 0xe5, 0x03, 0x00, 0x52, 0xe1, 0xed, 0xff, 0xff, 0x1a, 0x03, 0x30, 0xa0, 0xe3, 0x04, 0x00, 0xa0, 0xe1, 0x2d, 0x30, 0xcd, 0xe5, 0x70, 0xfd, 0xff, 0xeb, 0x02, 0x30, 0xa0, 0xe3, 0x55, 0x0a, 0x0a, 0xe3, 0x55, 0x0a, 0x4a, 0xe3, 0x01, 0x11, 0xa0, 0xe3, 0x2d, 0x30, 0xcd, 0xe5, 0x00, 0xc0, 0xa0, 0xe3, 0x05, 0x00, 0x00, 0xea, 0x2d, 0x30, 0xdd, 0xe5, 0x01, 0x30, 0x83, 0xe2, 0x73, 0x30, 0xef, 0xe6, 0x2d, 0x30, 0xcd, 0xe5, 0x02, 0x00, 0x53, 0xe3, 0x09, 0x00, 0x00, 0x8a, 0xb8, 0x22, 0xdd, 0xe1, 0x00, 0xc0, 0x81, 0xe5, 0x12, 0x33, 0xa0, 0xe1, 0x01, 0x31, 0x83, 0xe2, 0x00, 0x00, 0x83, 0xe5, 0x4f, 0xf0, 0x7f, 0xf5, 0x00, 0x20, 0x91, 0xe5, 0x00, 0x30, 0x93, 0xe5, 0x03, 0x00, 0x52, 0xe1, 0xef, 0xff, 0xff, 0x1a, 0x02, 0x3a, 0xa0, 0xe3, 0x04, 0x00, 0xa0, 0xe1, 0xb8, 0x32, 0xcd, 0xe1, 0x55, 0xfd, 0xff, 0xeb, 0x02, 0x3c, 0xa0, 0xe3, 0x55, 0x1a, 0x0a, 0xe3, 0x55, 0x1a, 0x4a, 0xe3, 0x01, 0x21, 0xa0, 0xe3, 0xb8, 0x32, 0xcd, 0xe1, 0x00, 0xc0, 0xa0, 0xe3, 0x05, 0x00, 0x00, 0xea, 0xb8, 0x32, 0xdd, 0xe1, 0x83, 0x30, 0xa0, 0xe1, 0x73, 0x30, 0xff, 0xe6, 0xb8, 0x32, 0xcd, 0xe1, 0x02, 0x0a, 0x53, 0xe3, 0x07, 0x00, 0x00, 0x2a, 0x00, 0xc0, 0x82, 0xe5, 0x01, 0x31, 0x83, 0xe2, 0x00, 0x10, 0x83, 0xe5, 0x4f, 0xf0, 0x7f, 0xf5, 0x00, 0x00, 0x92, 0xe5, 0x00, 0x30, 0x93, 0xe5, 0x03, 0x00, 0x50, 0xe1, 0xf1, 0xff, 0xff, 0x1a, 0x04, 0x00, 0xa0, 0xe1, 0x3e, 0xfd, 0xff, 0xeb, 0x2c, 0x30, 0xdd, 0xe5, 0x2d, 0x20, 0xdd, 0xe5, 0x2b, 0x10, 0xdd, 0xe5, 0x02, 0x20, 0x83, 0xe0, 0xb8, 0x32, 0xdd, 0xe1, 0x00, 0x00, 0x51, 0xe3, 0x13, 0x32, 0xa0, 0xe1, 0x00, 0x20, 0xa0, 0xe3, 0x83, 0x30, 0xa0, 0x11, 0x20, 0x30, 0x82, 0xe5, 0x54, 0xd0, 0x8d, 0xe2, 0xf0, 0x8f, 0xbd, 0xe8, 0x03, 0x1a, 0xa0, 0xe3, 0x02, 0xe3, 0xa0, 0xe3, 0xc6, 0x11, 0x40, 0xe3, 0x03, 0xc0, 0xa0, 0xe3, 0x01, 0x00, 0xa0, 0xe1, 0x12, 0x37, 0x02, 0xe3, 0x40, 0x21, 0x91, 0xe5, 0x22, 0x28, 0xa0, 0xe1, 0x02, 0x28, 0xa0, 0xe1, 0xe6, 0x2d, 0x82, 0xe3, 0x3b, 0x20, 0x82, 0xe3, 0x40, 0x21, 0x81, 0xe5, 0x00, 0xe0, 0x81, 0xe5, 0x00, 0xc0, 0x81, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x01, 0x30, 0x53, 0xe2, 0x02, 0x00, 0x00, 0x0a, 0x10, 0x20, 0x90, 0xe5, 0x01, 0x00, 0x12, 0xe3, 0xfa, 0xff, 0xff, 0x0a, 0x03, 0x2a, 0xa0, 0xe3, 0x1f, 0x00, 0xa0, 0xe3, 0xc6, 0x21, 0x40, 0xe3, 0x1f, 0x00, 0x40, 0xe3, 0x48, 0x11, 0x92, 0xe5, 0x00, 0x10, 0x01, 0xe0, 0x01, 0x14, 0x81, 0xe1, 0x48, 0x11, 0x82, 0xe5, 0x4c, 0x31, 0x92, 0xe5, 0x00, 0x30, 0x03, 0xe0, 0x03, 0x34, 0x83, 0xe1, 0x4c, 0x31, 0x82, 0xe5, 0x50, 0x31, 0x82, 0xe5, 0x0b, 0xff, 0xff, 0xea, 0xc8, 0x33, 0x93, 0xe5, 0x02, 0x04, 0x13, 0xe3, 0x23, 0xff, 0xff, 0x0a, 0x1a, 0xff, 0xff, 0xea, 0x03, 0x3a, 0xa0, 0xe3, 0x00, 0x20, 0xa0, 0xe3, 0xc6, 0x31, 0x40, 0xe3, 0x10, 0x10, 0xa0, 0xe3, 0x44, 0x24, 0x83, 0xe5, 0xc4, 0x24, 0x83, 0xe5, 0x2a, 0x10, 0xcd, 0xe5, 0x22, 0xff, 0xff, 0xea, 0x54, 0x0b, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x4e, 0x55, 0x00, 0xab, 0x55, 0xd5, 0xe9, 0x3b, 0xeb, 0xff, 0x5e, 0xea, 0x56, 0x40, 0x94, 0x80, 0x7a, 0x27, 0xcb, 0xef, 0x3d, 0xef, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0x79, 0x00, 0x00, 0x00, 0x00, 0xaa, 0x6a, 0x00, 0x10, 0x20, 0x00, 0x0f, 0x03, 0x00, 0x00, 0x2f, 0x6c, 0x69, 0x62, 0x2f, 0x6c, 0x64, 0x2d, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x2d, 0x61, 0x72, 0x6d, 0x68, 0x66, 0x2e, 0x73, 0x6f, 0x2e, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0xfe, 0xff, 0x6f, 0x50, 0x93, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x4c, 0x93, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3c, 0x93, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xfb, 0xff, 0xff, 0x6f, 0x01, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; if(type) { if(strcmp(type, "v3s") == 0) { fel_write(ctx, 0x00008000, (void *)&v3s_payload[0], sizeof(v3s_payload)); fel_exec(ctx, 0x00008000); return 1; } else if(strcmp(type, "s3") == 0) { fel_write(ctx, 0x00008000, (void *)&s3_payload[0], sizeof(s3_payload)); fel_exec(ctx, 0x00008000); return 1; } } printf("usage:\r\n"); printf(" xfel ddr v3s - Initial v3s ddr controller\r\n"); printf(" xfel ddr s3 - Initial s3 ddr controller\r\n"); return 0; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { static const uint8_t payload[] = { 0x00, 0x00, 0xa0, 0xe3, 0x17, 0x0f, 0x08, 0xee, 0x15, 0x0f, 0x07, 0xee, 0xd5, 0x0f, 0x07, 0xee, 0x9a, 0x0f, 0x07, 0xee, 0x95, 0x0f, 0x07, 0xee, 0xff, 0xff, 0xff, 0xea, 0x40, 0x00, 0xa0, 0xe3, 0x00, 0xd0, 0x80, 0xe5, 0x04, 0xe0, 0x80, 0xe5, 0x00, 0xe0, 0x0f, 0xe1, 0x08, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x0c, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x1c, 0xee, 0x10, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x14, 0xe0, 0x80, 0xe5, 0x09, 0x0a, 0xa0, 0xe3, 0x7c, 0x00, 0x00, 0xeb, 0x40, 0x00, 0xa0, 0xe3, 0x00, 0xd0, 0x90, 0xe5, 0x04, 0xe0, 0x90, 0xe5, 0x14, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x10, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x0c, 0xee, 0x0c, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x08, 0x10, 0x90, 0xe5, 0x01, 0xf0, 0x29, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0xf0, 0x40, 0x2d, 0xe9, 0x00, 0x50, 0x51, 0xe2, 0xf0, 0x80, 0xbd, 0x08, 0x02, 0x19, 0xa0, 0xe3, 0x82, 0x6c, 0xa0, 0xe3, 0xc6, 0x11, 0x40, 0xe3, 0x83, 0x4c, 0xa0, 0xe3, 0xc6, 0x61, 0x40, 0xe3, 0x00, 0x70, 0xe0, 0xe3, 0xc6, 0x41, 0x40, 0xe3, 0x40, 0x00, 0x55, 0xe3, 0x00, 0x30, 0xa0, 0xe3, 0x07, 0xc0, 0xa0, 0xe1, 0x05, 0x20, 0xa0, 0x31, 0x40, 0x20, 0xa0, 0x23, 0x30, 0x20, 0x81, 0xe5, 0x34, 0x20, 0x81, 0xe5, 0x38, 0x20, 0x81, 0xe5, 0x00, 0xc0, 0xc6, 0xe5, 0x01, 0x30, 0x83, 0xe2, 0x03, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0xca, 0x08, 0x30, 0x91, 0xe5, 0x02, 0x31, 0x83, 0xe3, 0x08, 0x30, 0x81, 0xe5, 0x08, 0x30, 0x91, 0xe5, 0x00, 0x00, 0x53, 0xe3, 0xfc, 0xff, 0xff, 0xba, 0x1c, 0x30, 0x91, 0xe5, 0x73, 0x30, 0xef, 0xe6, 0x03, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x8a, 0x00, 0x30, 0xa0, 0xe3, 0x00, 0xe0, 0xd4, 0xe5, 0x00, 0x00, 0x50, 0xe3, 0x00, 0xc0, 0xa0, 0xe1, 0x01, 0x30, 0x83, 0xe2, 0x7e, 0xe0, 0xef, 0xe6, 0x06, 0x00, 0x00, 0x0a, 0x03, 0x00, 0x52, 0xe1, 0x01, 0xe0, 0xcc, 0xe4, 0x0c, 0x00, 0xa0, 0xe1, 0xf5, 0xff, 0xff, 0xca, 0x02, 0x50, 0x55, 0xe0, 0xdc, 0xff, 0xff, 0x1a, 0xf0, 0x80, 0xbd, 0xe8, 0x03, 0x00, 0x52, 0xe1, 0x01, 0xc0, 0x83, 0xe2, 0x02, 0x30, 0x83, 0xe2, 0xf8, 0xff, 0xff, 0xda, 0x0c, 0x00, 0x52, 0xe1, 0x00, 0xc0, 0xd4, 0xe5, 0xf5, 0xff, 0xff, 0xda, 0x03, 0x00, 0x52, 0xe1, 0x00, 0xc0, 0xd4, 0xe5, 0x01, 0xc0, 0x83, 0xe2, 0x02, 0x30, 0x83, 0xe2, 0xf7, 0xff, 0xff, 0xca, 0x02, 0x50, 0x55, 0xe0, 0xcd, 0xff, 0xff, 0x1a, 0xf0, 0x80, 0xbd, 0xe8, 0xf0, 0x40, 0x2d, 0xe9, 0x00, 0x60, 0x51, 0xe2, 0xf0, 0x80, 0xbd, 0x08, 0x02, 0x19, 0xa0, 0xe3, 0x82, 0x5c, 0xa0, 0xe3, 0xc6, 0x11, 0x40, 0xe3, 0x83, 0x4c, 0xa0, 0xe3, 0xc6, 0x51, 0x40, 0xe3, 0x00, 0x70, 0xe0, 0xe3, 0xc6, 0x41, 0x40, 0xe3, 0x40, 0x00, 0x56, 0xe3, 0x06, 0x20, 0xa0, 0x31, 0x40, 0x20, 0xa0, 0x23, 0x30, 0x20, 0x81, 0xe5, 0x00, 0x00, 0x50, 0xe3, 0x34, 0x20, 0x81, 0xe5, 0x38, 0x20, 0x81, 0xe5, 0x1a, 0x00, 0x00, 0x0a, 0x00, 0xc0, 0xa0, 0xe1, 0x00, 0x30, 0xa0, 0xe3, 0x01, 0xe0, 0xdc, 0xe4, 0x01, 0x30, 0x83, 0xe2, 0x03, 0x00, 0x52, 0xe1, 0x00, 0xe0, 0xc5, 0xe5, 0xfa, 0xff, 0xff, 0xca, 0x08, 0x30, 0x91, 0xe5, 0x02, 0x31, 0x83, 0xe3, 0x08, 0x30, 0x81, 0xe5, 0x08, 0x30, 0x91, 0xe5, 0x00, 0x00, 0x53, 0xe3, 0xfc, 0xff, 0xff, 0xba, 0x1c, 0x30, 0x91, 0xe5, 0x73, 0x30, 0xef, 0xe6, 0x03, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x8a, 0x00, 0x30, 0xa0, 0xe3, 0x00, 0xc0, 0xd4, 0xe5, 0x01, 0x30, 0x83, 0xe2, 0x03, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0xca, 0x00, 0x00, 0x50, 0xe3, 0x02, 0x00, 0x80, 0x10, 0x02, 0x60, 0x56, 0xe0, 0xdd, 0xff, 0xff, 0x1a, 0xf0, 0x80, 0xbd, 0xe8, 0x00, 0x30, 0xa0, 0xe1, 0x07, 0xc0, 0xa0, 0xe1, 0x00, 0xc0, 0xc5, 0xe5, 0x01, 0x30, 0x83, 0xe2, 0x03, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0xca, 0xe4, 0xff, 0xff, 0xea, 0xf0, 0x43, 0x2d, 0xe9, 0x0f, 0x80, 0x0c, 0xe3, 0xff, 0x8f, 0x4f, 0xe3, 0x02, 0x69, 0xa0, 0xe3, 0xc6, 0x61, 0x40, 0xe3, 0x00, 0x40, 0xa0, 0xe3, 0xc2, 0x41, 0x40, 0xe3, 0x14, 0xd0, 0x4d, 0xe2, 0x00, 0x70, 0xa0, 0xe1, 0x07, 0x50, 0xa0, 0xe1, 0x01, 0x30, 0xd5, 0xe4, 0x01, 0x00, 0x53, 0xe3, 0x1e, 0x00, 0x00, 0x0a, 0x02, 0x00, 0x53, 0xe3, 0x53, 0x00, 0x00, 0x0a, 0x03, 0x00, 0x53, 0xe3, 0x56, 0x00, 0x00, 0x0a, 0x04, 0x00, 0x53, 0xe3, 0x5a, 0x00, 0x00, 0x0a, 0x05, 0x00, 0x53, 0xe3, 0x5f, 0x00, 0x00, 0x0a, 0x06, 0x00, 0x53, 0xe3, 0x6e, 0x00, 0x00, 0x0a, 0x07, 0x00, 0x53, 0xe3, 0x7d, 0x00, 0x00, 0x0a, 0x08, 0x00, 0x53, 0xe3, 0x8a, 0x00, 0x00, 0x1a, 0xb0, 0x80, 0xcd, 0xe1, 0x0d, 0x90, 0xa0, 0xe1, 0x08, 0x70, 0x8d, 0xe2, 0x02, 0x10, 0xa0, 0xe3, 0x09, 0x00, 0xa0, 0xe1, 0xaa, 0xff, 0xff, 0xeb, 0x01, 0x10, 0xa0, 0xe3, 0x07, 0x00, 0xa0, 0xe1, 0x6a, 0xff, 0xff, 0xeb, 0x08, 0x30, 0xdd, 0xe5, 0x01, 0x00, 0x13, 0xe3, 0xf6, 0xff, 0xff, 0x1a, 0x05, 0x70, 0xa0, 0xe1, 0x07, 0x50, 0xa0, 0xe1, 0x01, 0x30, 0xd5, 0xe4, 0x01, 0x00, 0x53, 0xe3, 0xe0, 0xff, 0xff, 0x1a, 0x48, 0x38, 0x94, 0xe5, 0x01, 0x2a, 0xa0, 0xe3, 0x0f, 0x30, 0xc3, 0xe3, 0x03, 0x30, 0x83, 0xe3, 0x48, 0x38, 0x84, 0xe5, 0x48, 0x38, 0x94, 0xe5, 0xf0, 0x30, 0xc3, 0xe3, 0x30, 0x30, 0x83, 0xe3, 0x48, 0x38, 0x84, 0xe5, 0x48, 0x38, 0x94, 0xe5, 0x0f, 0x3c, 0xc3, 0xe3, 0x03, 0x3c, 0x83, 0xe3, 0x48, 0x38, 0x84, 0xe5, 0x48, 0x38, 0x94, 0xe5, 0x0f, 0x3a, 0xc3, 0xe3, 0x03, 0x3a, 0x83, 0xe3, 0x48, 0x38, 0x84, 0xe5, 0xc0, 0x32, 0x94, 0xe5, 0x01, 0x36, 0x83, 0xe3, 0xc0, 0x32, 0x84, 0xe5, 0xa0, 0x30, 0x94, 0xe5, 0x02, 0x31, 0x83, 0xe3, 0xa0, 0x30, 0x84, 0xe5, 0x60, 0x30, 0x94, 0xe5, 0x01, 0x36, 0x83, 0xe3, 0x60, 0x30, 0x84, 0xe5, 0xa0, 0x30, 0x94, 0xe5, 0x03, 0x34, 0xc3, 0xe3, 0x01, 0x34, 0x83, 0xe3, 0xa0, 0x30, 0x84, 0xe5, 0xa0, 0x30, 0x94, 0xe5, 0x03, 0x38, 0xc3, 0xe3, 0xa0, 0x30, 0x84, 0xe5, 0xa0, 0x30, 0x94, 0xe5, 0x0f, 0x30, 0xc3, 0xe3, 0x05, 0x30, 0x83, 0xe3, 0xa0, 0x30, 0x84, 0xe5, 0x24, 0x20, 0x86, 0xe5, 0x04, 0x30, 0x96, 0xe5, 0x02, 0x31, 0x83, 0xe3, 0x83, 0x30, 0x83, 0xe3, 0x04, 0x30, 0x86, 0xe5, 0x04, 0x30, 0x96, 0xe5, 0x00, 0x00, 0x53, 0xe3, 0xfc, 0xff, 0xff, 0xba, 0x08, 0x30, 0x96, 0xe5, 0x05, 0x70, 0xa0, 0xe1, 0x03, 0x30, 0xc3, 0xe3, 0x44, 0x30, 0x83, 0xe3, 0x08, 0x30, 0x86, 0xe5, 0x18, 0x30, 0x96, 0xe5, 0x02, 0x31, 0x83, 0xe3, 0x02, 0x39, 0x83, 0xe3, 0x18, 0x30, 0x86, 0xe5, 0xa5, 0xff, 0xff, 0xea, 0x08, 0x30, 0x96, 0xe5, 0x05, 0x70, 0xa0, 0xe1, 0xb0, 0x30, 0xc3, 0xe3, 0x08, 0x30, 0x86, 0xe5, 0xa0, 0xff, 0xff, 0xea, 0x08, 0x30, 0x96, 0xe5, 0x05, 0x70, 0xa0, 0xe1, 0xb0, 0x30, 0xc3, 0xe3, 0x80, 0x30, 0x83, 0xe3, 0x08, 0x30, 0x86, 0xe5, 0x9a, 0xff, 0xff, 0xea, 0x01, 0x90, 0xd7, 0xe5, 0x02, 0x00, 0x87, 0xe2, 0x09, 0x10, 0xa0, 0xe1, 0x01, 0x70, 0x89, 0xe2, 0x07, 0x70, 0x85, 0xe0, 0x57, 0xff, 0xff, 0xeb, 0x93, 0xff, 0xff, 0xea, 0x06, 0x10, 0xd7, 0xe5, 0x09, 0x70, 0x87, 0xe2, 0x07, 0x00, 0x57, 0xe5, 0x04, 0x20, 0x57, 0xe5, 0x08, 0x30, 0x57, 0xe5, 0x02, 0xe0, 0x57, 0xe5, 0x06, 0xc0, 0x57, 0xe5, 0x01, 0x24, 0x82, 0xe1, 0x00, 0x34, 0x83, 0xe1, 0x01, 0x10, 0x57, 0xe5, 0x05, 0x00, 0x57, 0xe5, 0x0e, 0x28, 0x82, 0xe1, 0x0c, 0x38, 0x83, 0xe1, 0x01, 0x1c, 0x82, 0xe1, 0x00, 0x0c, 0x83, 0xe1, 0x46, 0xff, 0xff, 0xeb, 0x82, 0xff, 0xff, 0xea, 0x06, 0x10, 0xd7, 0xe5, 0x09, 0x70, 0x87, 0xe2, 0x07, 0x00, 0x57, 0xe5, 0x04, 0x20, 0x57, 0xe5, 0x08, 0x30, 0x57, 0xe5, 0x02, 0xe0, 0x57, 0xe5, 0x06, 0xc0, 0x57, 0xe5, 0x01, 0x24, 0x82, 0xe1, 0x00, 0x34, 0x83, 0xe1, 0x01, 0x10, 0x57, 0xe5, 0x05, 0x00, 0x57, 0xe5, 0x0e, 0x28, 0x82, 0xe1, 0x0c, 0x38, 0x83, 0xe1, 0x01, 0x1c, 0x82, 0xe1, 0x00, 0x0c, 0x83, 0xe1, 0xf8, 0xfe, 0xff, 0xeb, 0x71, 0xff, 0xff, 0xea, 0x0d, 0x90, 0xa0, 0xe1, 0x08, 0x70, 0x8d, 0xe2, 0x05, 0x30, 0xa0, 0xe3, 0x00, 0x30, 0xcd, 0xe5, 0x01, 0x10, 0xa0, 0xe3, 0x09, 0x00, 0xa0, 0xe1, 0x2d, 0xff, 0xff, 0xeb, 0x01, 0x10, 0xa0, 0xe3, 0x07, 0x00, 0xa0, 0xe1, 0xed, 0xfe, 0xff, 0xeb, 0x08, 0x30, 0xdd, 0xe5, 0x01, 0x00, 0x13, 0xe3, 0xf6, 0xff, 0xff, 0x1a, 0x05, 0x70, 0xa0, 0xe1, 0x81, 0xff, 0xff, 0xea, 0x14, 0xd0, 0x8d, 0xe2, 0xf0, 0x83, 0xbd, 0xe8, 0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x4e, 0x55, 0x00, 0x1d, 0x30, 0x49, 0x7e, 0xc1, 0xa7, 0xed, 0x9e, 0x86, 0x26, 0xb6, 0x2d, 0x72, 0x23, 0xfe, 0x65, 0x09, 0x25, 0x9d, 0xb7, 0x2f, 0x6c, 0x69, 0x62, 0x2f, 0x6c, 0x64, 0x2d, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x2d, 0x61, 0x72, 0x6d, 0x68, 0x66, 0x2e, 0x73, 0x6f, 0x2e, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0xfe, 0xff, 0x6f, 0x38, 0x85, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x85, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x85, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xfb, 0xff, 0xff, 0x6f, 0x01, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; fel_write(ctx, 0x00008000, (void *)&payload[0], sizeof(payload)); if(swapbuf) *swapbuf = 0x0000a000; if(swaplen) *swaplen = 16384; if(cmdlen) *cmdlen = 4096; return 1; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { fel_write(ctx, 0x00009000, (void *)cbuf, clen); fel_exec(ctx, 0x00008000); return 1; } static const struct sid_section_t { char * name; uint32_t offset; uint32_t size_bits; } sids[] = { { "chipid", 0x0000, 128 }, { "unknown", 0x0010, 1920 }, }; static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { if(argc > 0) { if(!strcmp(argv[0], "efuse")) { argc -= 1; argv += 1; if(argc > 0) { if(!strcmp(argv[0], "dump") && (argc == 1)) { uint32_t buffer[2048 / 4]; for(int n = 0; n < ARRAY_SIZE(sids); n++) { uint32_t count = sids[n].size_bits / 32; for(int i = 0; i < count; i++) buffer[i] = payload_read32(ctx, 0x01c23800 + sids[n].offset + i * 4); printf("%s:(0x%04x %d-bits)", sids[n].name, sids[n].offset, sids[n].size_bits); for(int i = 0; i < count; i++) { if(i >= 0 && ((i % 8) == 0)) printf("\r\n%-4s", ""); printf("%08x ", buffer[i]); } printf("\r\n"); } return 1; } } } } printf("usage:\r\n"); printf(" xfel extra efuse dump - Dump all of the efuse information\r\n"); return 0; } struct chip_t v3s_s3 = { .name = "V3S/S3", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/chips/v536.c000066400000000000000000000016511512120643700144370ustar00rootroot00000000000000#include static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00181600) return 1; return 0; } static int chip_reset(struct xfel_ctx_t * ctx) { return 0; } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { return 0; } static int chip_jtag(struct xfel_ctx_t * ctx) { return 0; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { return 0; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { return 0; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { return 0; } static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { return 0; } struct chip_t v536 = { .name = "V536", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/chips/v821.c000066400000000000000000003365061512120643700144460ustar00rootroot00000000000000#include #include #include static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00188200) { return 1; } return 0; } static uint32_t payload_read32(struct xfel_ctx_t * ctx, uint32_t addr) { static const uint8_t payload[] = { 0x37, 0x03, 0x40, 0x00, 0x73, 0x20, 0x03, 0x7c, 0x0f, 0x10, 0x00, 0x00, 0x09, 0xa0, 0x97, 0x02, 0x00, 0x00, 0x93, 0x82, 0xe2, 0x01, 0x83, 0xa2, 0x02, 0x00, 0x83, 0xa2, 0x02, 0x00, 0x17, 0x03, 0x00, 0x00, 0x13, 0x03, 0x23, 0x01, 0x23, 0x20, 0x53, 0x00, 0x82, 0x80, }; uint32_t adr = cpu_to_le32(addr); uint32_t val; fel_write(ctx, ctx->version.scratchpad, (void *)payload, sizeof(payload)); fel_write(ctx, ctx->version.scratchpad + sizeof(payload), (void *)&adr, sizeof(adr)); fel_exec(ctx, ctx->version.scratchpad); fel_read(ctx, ctx->version.scratchpad + sizeof(payload) + sizeof(adr), (void *)&val, sizeof(val)); return le32_to_cpu(val); } static void payload_write32(struct xfel_ctx_t * ctx, uint32_t addr, uint32_t val) { static const uint8_t payload[] = { 0x37, 0x03, 0x40, 0x00, 0x73, 0x20, 0x03, 0x7c, 0x0f, 0x10, 0x00, 0x00, 0x09, 0xa0, 0x97, 0x02, 0x00, 0x00, 0x93, 0x82, 0xe2, 0x01, 0x83, 0xa2, 0x02, 0x00, 0x17, 0x03, 0x00, 0x00, 0x13, 0x03, 0x63, 0x01, 0x03, 0x23, 0x03, 0x00, 0x23, 0xa0, 0x62, 0x00, 0x82, 0x80, }; uint32_t params[2] = { cpu_to_le32(addr), cpu_to_le32(val), }; fel_write(ctx, ctx->version.scratchpad, (void *)payload, sizeof(payload)); fel_write(ctx, ctx->version.scratchpad + sizeof(payload), (void *)params, sizeof(params)); fel_exec(ctx, ctx->version.scratchpad); } static int chip_reset(struct xfel_ctx_t * ctx) { uint32_t val = payload_read32(ctx, 0x4a000000 + 0x1c); val |= 1 << 3; payload_write32(ctx, 0x4a000000 + 0x1c, val); payload_write32(ctx, 0x4a001000 + 0x18, (0x16aa << 16) | (0 << 0)); payload_write32(ctx, 0x4a001000 + 0x08, (0x16aa << 16) | (1 << 0)); return 1; } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { uint32_t id[8]; id[0] = payload_read32(ctx, 0x43006200 + 0x0); id[1] = payload_read32(ctx, 0x43006200 + 0x4); id[2] = payload_read32(ctx, 0x43006200 + 0x8); id[3] = payload_read32(ctx, 0x43006200 + 0xc); id[4] = payload_read32(ctx, 0x43006200 + 0x0); id[5] = payload_read32(ctx, 0x43006200 + 0x4); id[6] = payload_read32(ctx, 0x43006200 + 0x8); id[7] = payload_read32(ctx, 0x43006200 + 0xc); if((id[0] != 0) || (id[1] != 0) || (id[2] != 0) || (id[3] != 0)) { if((id[0] == id[4]) && (id[1] == id[5]) && (id[2] == id[6]) && (id[3] == id[7])) { sprintf(sid, "%08x%08x%08x%08x", id[0], id[1], id[2], id[3]); return 1; } } return 0; } static int chip_jtag(struct xfel_ctx_t * ctx) { uint32_t addr; uint32_t val; /* Config GPIOC0 and GPIOC5 to jtag mode for andes a27l2 cpu core */ addr = 0x42000060 + 0x0; val = payload_read32(ctx, addr); val &= ~(0xf << ((0 & 0x7) << 2)); val |= ((0x3 & 0xf) << ((0 & 0x7) << 2)); payload_write32(ctx, addr, val); val = payload_read32(ctx, addr); val &= ~(0xf << ((5 & 0x7) << 2)); val |= ((0x3 & 0xf) << ((5 & 0x7) << 2)); payload_write32(ctx, addr, val); return 1; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { static const uint8_t dram_bin[] = { 0x6f, 0x00, 0x80, 0x3c, 0x65, 0x47, 0x4f, 0x4e, 0x2e, 0x42, 0x54, 0x30, 0x13, 0xd8, 0x07, 0xbb, 0x80, 0x3a, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x33, 0x30, 0x30, 0x30, 0x40, 0x83, 0x00, 0x02, 0x00, 0x80, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x2e, 0x30, 0x2e, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xf9, 0x7b, 0x7b, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x73, 0x0e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x19, 0x47, 0x00, 0x0c, 0xa1, 0x31, 0x01, 0x41, 0x70, 0x05, 0x00, 0x96, 0x78, 0x78, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x48, 0x48, 0x48, 0x48, 0x48, 0x00, 0x00, 0x00, 0x1e, 0x12, 0x21, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x34, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x04, 0x03, 0x01, 0xff, 0xff, 0x00, 0x00, 0x0c, 0x05, 0x03, 0x01, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x03, 0xff, 0xff, 0xff, 0x00, 0x00, 0x03, 0x03, 0x03, 0xff, 0xff, 0xff, 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, 0x06, 0x00, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x02, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x03, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x04, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x05, 0x02, 0x01, 0x02, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x31, 0x64, 0x33, 0x37, 0x39, 0x65, 0x62, 0x37, 0x30, 0x66, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x22, 0xc4, 0x26, 0xc8, 0x06, 0xcc, 0x2a, 0x84, 0x01, 0x28, 0xef, 0x20, 0xf0, 0x25, 0xe2, 0x40, 0x22, 0x44, 0xc2, 0x44, 0x05, 0x61, 0x82, 0x80, 0x97, 0x32, 0x00, 0x00, 0x93, 0x82, 0x62, 0x68, 0x17, 0x33, 0x00, 0x00, 0x13, 0x03, 0x63, 0x6a, 0x23, 0xa0, 0x02, 0x00, 0x91, 0x02, 0xe3, 0xcd, 0x62, 0xfe, 0x82, 0x80, 0x93, 0x07, 0x85, 0xfe, 0xbd, 0x9b, 0x91, 0xe7, 0x97, 0x37, 0x00, 0x00, 0x23, 0xad, 0xa7, 0x5c, 0x82, 0x80, 0x01, 0xa0, 0x82, 0x80, 0x17, 0x35, 0x00, 0x00, 0x03, 0x25, 0xc5, 0x5c, 0x82, 0x80, 0xf3, 0x27, 0x10, 0xc8, 0x73, 0x25, 0x10, 0xc0, 0x73, 0x27, 0x10, 0xc8, 0xe3, 0x9a, 0xe7, 0xfe, 0x17, 0x37, 0x00, 0x00, 0x03, 0x27, 0x27, 0x5b, 0x93, 0x07, 0x80, 0x3e, 0xb3, 0x87, 0xe7, 0x02, 0x33, 0x55, 0xf5, 0x02, 0x82, 0x80, 0x73, 0x27, 0x10, 0xc8, 0xf3, 0x27, 0x10, 0xc0, 0xf3, 0x26, 0x10, 0xc8, 0xe3, 0x1a, 0xd7, 0xfe, 0x97, 0x36, 0x00, 0x00, 0x83, 0xa6, 0xc6, 0x58, 0x33, 0x05, 0xd5, 0x02, 0xaa, 0x97, 0x33, 0xb5, 0xa7, 0x00, 0x3a, 0x95, 0x73, 0x27, 0x10, 0xc8, 0xf3, 0x26, 0x10, 0xc0, 0x73, 0x26, 0x10, 0xc8, 0xe3, 0x1a, 0xc7, 0xfe, 0x63, 0x66, 0xe5, 0x00, 0xe3, 0x16, 0xa7, 0xfe, 0xe3, 0xf4, 0xd7, 0xfe, 0x82, 0x80, 0x93, 0x07, 0x80, 0x3e, 0x33, 0x05, 0xf5, 0x02, 0x5d, 0xbf, 0x55, 0xbf, 0x0f, 0x10, 0x00, 0x00, 0x82, 0x80, 0x41, 0x11, 0x06, 0xc6, 0xf3, 0x27, 0x00, 0x7d, 0x73, 0x27, 0xa0, 0x7c, 0xa9, 0x66, 0x93, 0x86, 0x16, 0x70, 0x55, 0x8f, 0x73, 0x10, 0xa7, 0x7c, 0x13, 0xf7, 0x07, 0x10, 0x19, 0xe3, 0x93, 0xe7, 0x07, 0x10, 0x73, 0x90, 0x07, 0x7d, 0xb7, 0x67, 0x00, 0x43, 0x03, 0xa7, 0xc7, 0x24, 0x0f, 0x00, 0xa0, 0x0a, 0xb7, 0x06, 0x01, 0x4a, 0x83, 0xa7, 0x86, 0x40, 0x0f, 0x00, 0xa0, 0x0a, 0x0b, 0x37, 0x57, 0x14, 0x13, 0xf6, 0x27, 0x00, 0x51, 0x8f, 0x31, 0xc7, 0x83, 0xa7, 0x46, 0x40, 0x0f, 0x00, 0xa0, 0x0a, 0x63, 0xdd, 0x07, 0x06, 0x61, 0x45, 0x39, 0x37, 0x37, 0x07, 0x01, 0x4a, 0x83, 0x27, 0x47, 0x40, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xb7, 0x06, 0x00, 0x80, 0xd5, 0x8f, 0x23, 0x22, 0xf7, 0x40, 0xb7, 0x17, 0x00, 0x42, 0x98, 0x4b, 0x0f, 0x00, 0xa0, 0x0a, 0x63, 0x47, 0x07, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0x80, 0x98, 0xcb, 0xb2, 0x40, 0x01, 0x45, 0x41, 0x01, 0x82, 0x80, 0x0f, 0x00, 0x50, 0x05, 0x13, 0xf7, 0xe7, 0xff, 0x23, 0xa4, 0xe6, 0x40, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xe7, 0x17, 0x00, 0x23, 0xa4, 0xf6, 0x40, 0xb7, 0x06, 0x01, 0x4a, 0x83, 0xa7, 0x86, 0x40, 0x0f, 0x00, 0xa0, 0x0a, 0x13, 0xf7, 0x27, 0x00, 0x75, 0xdb, 0x3d, 0x67, 0x8b, 0xb7, 0x47, 0x5c, 0x13, 0x07, 0x37, 0x42, 0xe3, 0x77, 0xf7, 0xf8, 0x13, 0x05, 0x80, 0x02, 0x59, 0x3d, 0xb7, 0x06, 0x01, 0x4a, 0x83, 0xa7, 0x46, 0x40, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0x80, 0x13, 0x47, 0xf7, 0xff, 0xf9, 0x8f, 0x23, 0xa2, 0xf6, 0x40, 0x51, 0xb7, 0x01, 0x45, 0x82, 0x80, 0x41, 0x11, 0x06, 0xc6, 0x19, 0x37, 0xb7, 0x07, 0x00, 0x4a, 0x03, 0xa7, 0x07, 0x1d, 0x0f, 0x00, 0xa0, 0x0a, 0x11, 0xcf, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x9b, 0x42, 0x23, 0xa8, 0xe7, 0x1c, 0x37, 0x07, 0x00, 0x4a, 0x83, 0x27, 0x07, 0x1d, 0x0f, 0x00, 0xa0, 0x0a, 0xe5, 0xff, 0xb2, 0x40, 0x01, 0x45, 0x41, 0x01, 0x82, 0x80, 0x01, 0x45, 0x82, 0x80, 0x37, 0x17, 0x00, 0x4a, 0x83, 0x27, 0x47, 0x86, 0x0f, 0x00, 0xa0, 0x0a, 0x93, 0xf7, 0xf7, 0x8f, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xe7, 0x07, 0x30, 0x23, 0x22, 0xf7, 0x86, 0x37, 0x07, 0x00, 0x4a, 0x5c, 0x53, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xbd, 0x9b, 0x5c, 0xd3, 0x82, 0x80, 0x41, 0x11, 0x06, 0xc6, 0xf1, 0x37, 0x09, 0x24, 0xb7, 0x06, 0x00, 0x4a, 0x83, 0xa7, 0x86, 0x25, 0x0f, 0x00, 0xa0, 0x0a, 0x0d, 0x47, 0x13, 0xd6, 0xc7, 0x01, 0x63, 0x1a, 0xe6, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x37, 0x07, 0x00, 0xf1, 0x7d, 0x17, 0xf9, 0x8f, 0x23, 0xac, 0xf6, 0x24, 0xb7, 0x17, 0x00, 0x42, 0x93, 0x87, 0x07, 0x08, 0xd8, 0x43, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x13, 0x67, 0x27, 0x00, 0xd8, 0xc3, 0xd8, 0x4b, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x13, 0x67, 0x27, 0x00, 0xd8, 0xcb, 0x37, 0x97, 0x00, 0x42, 0x83, 0x27, 0x47, 0x40, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xc1, 0x66, 0xd5, 0x8f, 0x23, 0x22, 0xf7, 0x40, 0x37, 0x17, 0x00, 0x4a, 0x83, 0x27, 0x07, 0xc3, 0x0f, 0x00, 0xa0, 0x0a, 0x85, 0x8b, 0x91, 0xc7, 0x0f, 0x00, 0x50, 0x05, 0x85, 0x47, 0x23, 0x28, 0xf7, 0xc2, 0x37, 0x17, 0x00, 0x4a, 0x83, 0x27, 0x07, 0x80, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x93, 0xe7, 0x17, 0x00, 0x23, 0x20, 0xf7, 0x80, 0x13, 0x05, 0x90, 0x13, 0x65, 0x33, 0x9d, 0x3b, 0xaa, 0x85, 0x17, 0x35, 0x00, 0x00, 0x13, 0x05, 0x25, 0xbc, 0x55, 0x2d, 0xb2, 0x40, 0x01, 0x45, 0x41, 0x01, 0x82, 0x80, 0x01, 0x45, 0x82, 0x80, 0x01, 0x11, 0x1c, 0x41, 0x4e, 0xc6, 0xba, 0x89, 0x37, 0x07, 0x00, 0x58, 0x7d, 0x17, 0xf9, 0x8f, 0x37, 0x07, 0x00, 0x40, 0x22, 0xcc, 0x26, 0xca, 0x4a, 0xc8, 0x52, 0xc4, 0x56, 0xc2, 0x06, 0xce, 0xd9, 0x8f, 0xaa, 0x84, 0x2e, 0x8a, 0x32, 0x84, 0xb6, 0x8a, 0x1c, 0xc1, 0x13, 0x09, 0x40, 0x06, 0x0f, 0x00, 0xa0, 0x0a, 0x0d, 0x45, 0x7d, 0x19, 0x91, 0x3b, 0xe3, 0x1b, 0x09, 0xfe, 0x9c, 0x40, 0x0f, 0x00, 0xa0, 0x0a, 0x37, 0x07, 0x00, 0xa8, 0xf9, 0x8f, 0x91, 0xc7, 0x17, 0x35, 0x00, 0x00, 0x13, 0x05, 0x05, 0xb8, 0x89, 0x2d, 0xb7, 0x07, 0x01, 0x4a, 0x63, 0x92, 0xf4, 0x02, 0xfd, 0x39, 0x9c, 0x40, 0x37, 0x07, 0x00, 0xf9, 0x7d, 0x17, 0x93, 0x06, 0x80, 0x02, 0xf9, 0x8f, 0x37, 0x07, 0x00, 0x03, 0x63, 0x04, 0xd5, 0x00, 0x37, 0x07, 0x00, 0x02, 0xd9, 0x8f, 0x9c, 0xc0, 0x13, 0x47, 0xf4, 0xff, 0x80, 0x40, 0x33, 0x1a, 0x5a, 0x01, 0xa2, 0x09, 0x61, 0x8f, 0x41, 0x74, 0x13, 0x04, 0xf4, 0x0f, 0x33, 0x67, 0x47, 0x01, 0x61, 0x8f, 0x33, 0x67, 0x37, 0x01, 0xb7, 0x07, 0x00, 0xa0, 0x5d, 0x8f, 0x98, 0xc0, 0x13, 0x04, 0x40, 0x06, 0xb7, 0x09, 0x00, 0x10, 0x9c, 0x40, 0x0f, 0x00, 0xa0, 0x0a, 0xb3, 0xf7, 0x37, 0x01, 0x91, 0xc3, 0x05, 0x09, 0x0d, 0x45, 0xc1, 0x39, 0x8d, 0x47, 0x63, 0x01, 0xf9, 0x02, 0x7d, 0x14, 0x7d, 0xf0, 0x62, 0x44, 0xf2, 0x40, 0xd2, 0x44, 0x42, 0x49, 0xb2, 0x49, 0x22, 0x4a, 0x92, 0x4a, 0x17, 0x35, 0x00, 0x00, 0x13, 0x05, 0xe5, 0xb0, 0x05, 0x61, 0xd9, 0xa3, 0x51, 0x45, 0x65, 0x31, 0x9c, 0x40, 0xf2, 0x40, 0x62, 0x44, 0x37, 0x07, 0x00, 0x08, 0xd9, 0x8f, 0x9c, 0xc0, 0x42, 0x49, 0xd2, 0x44, 0xb2, 0x49, 0x22, 0x4a, 0x92, 0x4a, 0x05, 0x61, 0x82, 0x80, 0x37, 0x07, 0x01, 0x4a, 0x1c, 0x53, 0x37, 0x06, 0x00, 0x10, 0xe1, 0x9b, 0xc9, 0x8f, 0x37, 0x05, 0xff, 0x17, 0x13, 0x05, 0xf5, 0x0f, 0xe9, 0x8f, 0x37, 0xc5, 0x00, 0xe0, 0x13, 0x05, 0x05, 0xf0, 0xc9, 0x8f, 0x1c, 0xd3, 0x1c, 0x53, 0x93, 0x06, 0x07, 0x02, 0x0f, 0x00, 0xa0, 0x0a, 0xf1, 0x8f, 0xf5, 0xdb, 0x9c, 0x42, 0x37, 0x07, 0x00, 0xf8, 0x7d, 0x17, 0xf9, 0x8f, 0x37, 0x07, 0x00, 0x08, 0xd9, 0x8f, 0x9c, 0xc2, 0x82, 0x80, 0x01, 0x11, 0x17, 0x35, 0x00, 0x00, 0x13, 0x05, 0xa5, 0xaa, 0x06, 0xce, 0x22, 0xcc, 0x26, 0xca, 0x4a, 0xc8, 0x4e, 0xc6, 0xa9, 0x23, 0xfd, 0x3e, 0x93, 0x07, 0x80, 0x02, 0x63, 0x1e, 0xf5, 0x18, 0x13, 0x07, 0xf0, 0x02, 0x89, 0x46, 0x31, 0x46, 0x85, 0x45, 0x37, 0x05, 0x01, 0x4a, 0x69, 0x35, 0xb7, 0x07, 0x01, 0x4a, 0x13, 0x85, 0x07, 0x04, 0xbc, 0x43, 0x0f, 0x00, 0xa0, 0x0a, 0x63, 0xc8, 0x07, 0x00, 0x13, 0x07, 0x50, 0x07, 0x85, 0x46, 0x19, 0x46, 0x8d, 0x45, 0xb5, 0x35, 0xb7, 0x04, 0x01, 0x4a, 0x93, 0x86, 0x04, 0x58, 0xd8, 0x42, 0xb7, 0x07, 0x00, 0xf9, 0x13, 0x86, 0x07, 0xfe, 0x71, 0x8f, 0xb7, 0x07, 0x00, 0x06, 0x5d, 0x8f, 0x9c, 0x46, 0xd8, 0xc2, 0x37, 0x07, 0x00, 0x84, 0xf1, 0x8f, 0xd9, 0x8f, 0x9c, 0xc6, 0x13, 0x84, 0x04, 0x50, 0x1c, 0x40, 0x09, 0x45, 0xb7, 0x09, 0x00, 0x01, 0x81, 0x9b, 0x93, 0xe7, 0x37, 0x00, 0x1c, 0xc0, 0x6d, 0x3e, 0x18, 0x40, 0xb7, 0x07, 0x00, 0xfd, 0x13, 0x89, 0xf7, 0xff, 0x33, 0x77, 0x27, 0x01, 0x33, 0x67, 0x37, 0x01, 0x18, 0xc0, 0x09, 0x45, 0x4d, 0x36, 0x58, 0x40, 0x09, 0x45, 0x01, 0x9b, 0x13, 0x67, 0x37, 0x00, 0x58, 0xc0, 0x51, 0x3e, 0x5c, 0x40, 0x09, 0x45, 0xb3, 0xf7, 0x27, 0x01, 0xb3, 0xe7, 0x37, 0x01, 0x5c, 0xc0, 0x51, 0x36, 0xbc, 0x40, 0x37, 0x07, 0x00, 0xd8, 0x7d, 0x17, 0xf9, 0x8f, 0xbc, 0xc0, 0x99, 0x36, 0xbc, 0x40, 0x41, 0x77, 0x13, 0x07, 0xf7, 0x0f, 0x93, 0x06, 0x80, 0x02, 0xf9, 0x8f, 0x63, 0x14, 0xd5, 0x10, 0x09, 0x67, 0x13, 0x07, 0x07, 0xd0, 0xd9, 0x8f, 0xe5, 0x9b, 0x37, 0x07, 0x00, 0x20, 0xd9, 0x8f, 0x37, 0x07, 0x01, 0x4a, 0x3c, 0xc3, 0xb7, 0x06, 0x01, 0x4a, 0x37, 0x06, 0x00, 0x10, 0xbc, 0x42, 0x13, 0x87, 0x06, 0x04, 0x0f, 0x00, 0xa0, 0x0a, 0xf1, 0x8f, 0xf5, 0xdb, 0x1c, 0x43, 0xb7, 0x06, 0x00, 0x08, 0xd5, 0x8f, 0x1c, 0xc3, 0xf5, 0x3c, 0x93, 0x07, 0x80, 0x02, 0x63, 0x08, 0xf5, 0x0c, 0x37, 0x88, 0x00, 0xc0, 0x05, 0x46, 0x93, 0x05, 0x70, 0x03, 0x37, 0x07, 0x01, 0x4a, 0x3c, 0x47, 0x41, 0x75, 0x13, 0x05, 0xf5, 0x0f, 0xe9, 0x8f, 0xa2, 0x05, 0xcd, 0x8f, 0x06, 0x06, 0xe5, 0x9b, 0xd1, 0x8f, 0x10, 0x53, 0xb7, 0x06, 0x00, 0x40, 0xb7, 0x05, 0x00, 0x80, 0x55, 0x8e, 0x10, 0xd3, 0x13, 0x06, 0x07, 0x10, 0x28, 0x46, 0xb7, 0x06, 0x00, 0x01, 0xcd, 0x8f, 0xd5, 0x8f, 0xb7, 0x06, 0xfe, 0x3f, 0xe9, 0x8e, 0xb3, 0xe6, 0x06, 0x01, 0x34, 0xc6, 0x74, 0x46, 0xcd, 0x8e, 0x74, 0xc6, 0xb7, 0x06, 0x00, 0xf8, 0xfd, 0x16, 0xf5, 0x8f, 0xb7, 0x06, 0x00, 0x20, 0xd5, 0x8f, 0x3c, 0xc7, 0xb7, 0x06, 0x01, 0x4a, 0x37, 0x06, 0x00, 0x10, 0xbc, 0x46, 0x13, 0x87, 0x86, 0x04, 0x0f, 0x00, 0xa0, 0x0a, 0xf1, 0x8f, 0xf5, 0xdb, 0x1c, 0x43, 0x62, 0x44, 0xb7, 0x06, 0x00, 0x08, 0xf2, 0x40, 0xd2, 0x44, 0x42, 0x49, 0xb2, 0x49, 0xd5, 0x8f, 0x1c, 0xc3, 0x17, 0x35, 0x00, 0x00, 0x13, 0x05, 0x05, 0x91, 0x05, 0x61, 0x65, 0xa6, 0x13, 0x07, 0x70, 0x02, 0x89, 0x46, 0x31, 0x46, 0x81, 0x45, 0x37, 0x05, 0x01, 0x4a, 0xcd, 0x39, 0xb7, 0x07, 0x01, 0x4a, 0x13, 0x85, 0x07, 0x04, 0xbc, 0x43, 0x0f, 0x00, 0xa0, 0x0a, 0xe3, 0xcc, 0x07, 0xe6, 0x13, 0x07, 0x20, 0x06, 0x85, 0x46, 0x19, 0x46, 0x85, 0x45, 0xa5, 0xb5, 0x0d, 0x67, 0x13, 0x07, 0x07, 0x10, 0xf5, 0xbd, 0x37, 0x08, 0x01, 0xc0, 0x09, 0x46, 0x93, 0x05, 0x20, 0x04, 0x15, 0xbf, 0x41, 0x11, 0xb7, 0x07, 0x01, 0x4a, 0x22, 0xc4, 0x9c, 0x53, 0x06, 0xc6, 0x2a, 0x84, 0x0f, 0x00, 0xa0, 0x0a, 0x63, 0xc9, 0x07, 0x00, 0x11, 0x34, 0x93, 0x07, 0x80, 0x02, 0x63, 0x18, 0xf5, 0x06, 0x11, 0x45, 0x79, 0x3b, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0xc1, 0x67, 0x37, 0x07, 0x01, 0x4a, 0xfd, 0x17, 0x5c, 0xd3, 0x83, 0x27, 0x07, 0x58, 0xb7, 0x06, 0x00, 0xfd, 0x81, 0x16, 0xf5, 0x8f, 0xb7, 0x06, 0x00, 0x03, 0xd5, 0x8f, 0x23, 0x20, 0xf7, 0x58, 0xb7, 0x17, 0x00, 0x42, 0x93, 0x87, 0x07, 0x08, 0x98, 0x4b, 0x0f, 0x00, 0xa0, 0x0a, 0x05, 0x45, 0x3d, 0x04, 0x33, 0x15, 0x85, 0x00, 0x0f, 0x00, 0x50, 0x05, 0x49, 0x8f, 0x94, 0x43, 0x98, 0xcb, 0x0f, 0x00, 0xa0, 0x0a, 0x13, 0x47, 0xf5, 0xff, 0x75, 0x8f, 0x0f, 0x00, 0x50, 0x05, 0x98, 0xc3, 0x0f, 0x00, 0x50, 0x05, 0xb2, 0x40, 0x22, 0x44, 0x59, 0x8d, 0x88, 0xc3, 0x41, 0x01, 0x82, 0x80, 0x09, 0x45, 0x51, 0xbf, 0x81, 0x47, 0x98, 0x41, 0x63, 0x78, 0xc7, 0x02, 0x03, 0x47, 0x45, 0x00, 0x5d, 0x8f, 0x15, 0xc3, 0x25, 0x47, 0x93, 0x06, 0x00, 0x03, 0x63, 0x74, 0xf7, 0x00, 0x93, 0x06, 0x70, 0x05, 0x18, 0x41, 0xb6, 0x97, 0x13, 0x06, 0x17, 0x00, 0x10, 0xc1, 0x23, 0x00, 0xf7, 0x00, 0x85, 0x47, 0x23, 0x02, 0xf5, 0x00, 0x82, 0x80, 0x11, 0x8f, 0x85, 0x07, 0x98, 0xc1, 0x93, 0xf7, 0xf7, 0x0f, 0xd1, 0xb7, 0x1c, 0x45, 0x13, 0x87, 0x17, 0x00, 0x18, 0xc5, 0x23, 0x80, 0xb7, 0x00, 0x82, 0x80, 0x2e, 0x85, 0x6f, 0x00, 0x20, 0x77, 0x1d, 0x71, 0xa2, 0xcc, 0xa6, 0xca, 0xca, 0xc8, 0xd2, 0xc4, 0xd6, 0xc2, 0xda, 0xc0, 0x5e, 0xde, 0x62, 0xdc, 0x6a, 0xd8, 0x86, 0xce, 0xce, 0xc6, 0x66, 0xda, 0x6e, 0xd6, 0xaa, 0x84, 0x2e, 0x84, 0x32, 0x89, 0x13, 0x0b, 0x50, 0x02, 0x93, 0x0b, 0xd0, 0x02, 0x13, 0x0c, 0x00, 0x03, 0x13, 0x0a, 0x41, 0x01, 0x17, 0x2d, 0x00, 0x00, 0x13, 0x0d, 0x0d, 0x3c, 0x93, 0x0a, 0x51, 0x01, 0xa2, 0x8c, 0x8b, 0xc9, 0x1c, 0x98, 0x63, 0x92, 0x09, 0x02, 0xf6, 0x40, 0x66, 0x44, 0xd6, 0x44, 0x46, 0x49, 0xb6, 0x49, 0x26, 0x4a, 0x96, 0x4a, 0x06, 0x4b, 0xf2, 0x5b, 0x62, 0x5c, 0xd2, 0x5c, 0x42, 0x5d, 0xb2, 0x5d, 0x01, 0x45, 0x25, 0x61, 0x82, 0x80, 0x63, 0x8f, 0x69, 0x01, 0xa9, 0x47, 0x63, 0x96, 0xf9, 0x00, 0xdc, 0x44, 0xb5, 0x45, 0x26, 0x85, 0x82, 0x97, 0xdc, 0x44, 0xce, 0x85, 0x26, 0x85, 0x82, 0x97, 0x66, 0x84, 0x6d, 0xbf, 0x83, 0x47, 0x14, 0x00, 0x63, 0x86, 0x77, 0x07, 0x09, 0x04, 0x81, 0x4c, 0x63, 0x95, 0x87, 0x01, 0x8b, 0x47, 0x14, 0x98, 0x85, 0x4c, 0x13, 0x87, 0x07, 0xfd, 0x13, 0x77, 0xf7, 0x0f, 0xa5, 0x46, 0x81, 0x4d, 0x63, 0xef, 0xe6, 0x00, 0x29, 0x46, 0x8b, 0x97, 0xcd, 0x20, 0x93, 0x8d, 0x07, 0xfd, 0x8b, 0x47, 0x14, 0x98, 0x13, 0x87, 0x07, 0xfd, 0x13, 0x77, 0xf7, 0x0f, 0xe3, 0xf6, 0xe6, 0xfe, 0x93, 0x06, 0xc0, 0x06, 0x63, 0x94, 0xd7, 0x00, 0x8b, 0x47, 0x14, 0x98, 0x23, 0xa0, 0x44, 0x01, 0x23, 0x82, 0x04, 0x00, 0x93, 0x06, 0x00, 0x07, 0x63, 0x82, 0xd7, 0x14, 0x63, 0xe3, 0xf6, 0x06, 0x63, 0x89, 0x67, 0x15, 0x63, 0x6a, 0xfb, 0x00, 0xe3, 0x8d, 0x07, 0xf4, 0xd2, 0x89, 0x85, 0xa8, 0x83, 0x47, 0x24, 0x00, 0x0d, 0x04, 0x51, 0xbf, 0x93, 0x06, 0x30, 0x06, 0x63, 0x89, 0xd7, 0x10, 0x93, 0x06, 0x40, 0x06, 0xe3, 0x94, 0xd7, 0xfe, 0x03, 0x27, 0x09, 0x00, 0x13, 0x06, 0x40, 0x06, 0x93, 0x06, 0x49, 0x00, 0x3a, 0xc8, 0x63, 0x88, 0xc7, 0x08, 0xc2, 0x47, 0xd9, 0xcf, 0x37, 0xd9, 0x9a, 0x3b, 0xa9, 0x49, 0x13, 0x09, 0x09, 0xa0, 0x4a, 0x86, 0x0c, 0x08, 0x26, 0x85, 0x36, 0xc6, 0x9d, 0x3d, 0xa9, 0x47, 0xfd, 0x19, 0x33, 0x59, 0xf9, 0x02, 0xb2, 0x46, 0xe3, 0x96, 0x09, 0xfe, 0x71, 0xa0, 0x93, 0x06, 0x50, 0x07, 0xe3, 0x81, 0xd7, 0xfc, 0x93, 0x06, 0x80, 0x07, 0x63, 0x81, 0xd7, 0x08, 0x13, 0x07, 0x30, 0x07, 0xe3, 0x9b, 0xe7, 0xf8, 0x8b, 0x49, 0x49, 0x58, 0x9c, 0x40, 0x23, 0x80, 0x07, 0x00, 0x23, 0xa0, 0x34, 0x01, 0x9c, 0x40, 0x13, 0x87, 0x17, 0x00, 0x98, 0xc0, 0x83, 0xc7, 0x07, 0x00, 0x99, 0xc3, 0x63, 0x93, 0x0d, 0x0c, 0x93, 0x05, 0x00, 0x02, 0x63, 0x84, 0x0c, 0x00, 0x93, 0x05, 0x00, 0x03, 0x93, 0xfc, 0xf5, 0x0f, 0xfd, 0x57, 0xfd, 0x1d, 0x63, 0x99, 0xfd, 0x0a, 0xe3, 0x83, 0x09, 0xea, 0x8b, 0xc5, 0x19, 0x98, 0xe3, 0x8f, 0x05, 0xe8, 0xdc, 0x44, 0x26, 0x85, 0x82, 0x97, 0xcd, 0xbf, 0xe3, 0x5a, 0x07, 0xf6, 0x33, 0x07, 0xe0, 0x40, 0x3a, 0xc8, 0x23, 0xa0, 0x54, 0x01, 0x23, 0x0a, 0x71, 0x01, 0x9d, 0xb7, 0x9c, 0x40, 0x13, 0x87, 0x17, 0x00, 0x98, 0xc0, 0x23, 0x80, 0x87, 0x01, 0x85, 0x47, 0x23, 0x82, 0xf4, 0x00, 0x36, 0x89, 0x39, 0xbf, 0x03, 0x27, 0x09, 0x00, 0x93, 0x07, 0x49, 0x00, 0x3a, 0xc8, 0x42, 0x47, 0x11, 0xeb, 0x05, 0x47, 0x23, 0xa0, 0x54, 0x01, 0x23, 0x0a, 0x81, 0x01, 0x23, 0x82, 0xe4, 0x00, 0x3e, 0x89, 0xfd, 0xbd, 0x21, 0x49, 0xb7, 0x09, 0x00, 0x10, 0x4e, 0x86, 0x0c, 0x08, 0x26, 0x85, 0x3e, 0xc6, 0x7d, 0x19, 0x5d, 0x33, 0xb2, 0x47, 0x93, 0xd9, 0x49, 0x00, 0xe3, 0x17, 0x09, 0xfe, 0xc5, 0xb7, 0x8b, 0x47, 0x49, 0x98, 0x23, 0xa0, 0x54, 0x01, 0x23, 0x0a, 0xf1, 0x00, 0xc9, 0xbd, 0x11, 0x09, 0x22, 0x87, 0x83, 0x47, 0x07, 0x00, 0x3a, 0x84, 0x05, 0x07, 0x8b, 0x47, 0xfd, 0x80, 0x9d, 0x8b, 0xed, 0xfb, 0x75, 0xbd, 0x23, 0xa0, 0x54, 0x01, 0x23, 0x0a, 0x61, 0x01, 0x4d, 0xbd, 0xfd, 0x1d, 0x2d, 0xb7, 0xd8, 0x44, 0xe6, 0x85, 0x26, 0x85, 0x02, 0x97, 0x89, 0xb7, 0x5d, 0x71, 0x32, 0xdc, 0xbe, 0xc2, 0x30, 0x18, 0x2a, 0xcc, 0x97, 0x07, 0x00, 0x00, 0x93, 0x87, 0x27, 0xd9, 0x08, 0x08, 0x06, 0xd6, 0x3e, 0xce, 0x36, 0xde, 0xba, 0xc0, 0xc2, 0xc4, 0xc6, 0xc6, 0x32, 0xc6, 0x79, 0x33, 0xe2, 0x47, 0x23, 0x80, 0x07, 0x00, 0xb2, 0x50, 0x61, 0x61, 0x82, 0x80, 0x1d, 0x71, 0x06, 0xde, 0x22, 0xdc, 0x26, 0xda, 0x4a, 0xd8, 0x4e, 0xd6, 0xae, 0xc2, 0xb2, 0xc4, 0xb6, 0xc6, 0xba, 0xc8, 0xbe, 0xca, 0xc2, 0xcc, 0xc6, 0xce, 0x2a, 0x89, 0x44, 0x00, 0xef, 0xf0, 0x2f, 0xea, 0x2a, 0x86, 0x97, 0x25, 0x00, 0x00, 0x93, 0x85, 0xa5, 0x54, 0x26, 0x85, 0x4d, 0x37, 0x01, 0x44, 0xb1, 0x49, 0x0b, 0xc5, 0x84, 0x80, 0x09, 0xc5, 0x05, 0x04, 0x4d, 0x29, 0xe3, 0x1b, 0x34, 0xff, 0xd0, 0x00, 0x97, 0x07, 0x00, 0x00, 0x93, 0x87, 0x67, 0xd3, 0xca, 0x85, 0x08, 0x08, 0x3e, 0xce, 0x32, 0xc0, 0x35, 0x33, 0xf2, 0x50, 0x62, 0x54, 0xd2, 0x54, 0x42, 0x59, 0xb2, 0x59, 0x25, 0x61, 0x82, 0x80, 0x17, 0xf5, 0xff, 0xff, 0x13, 0x05, 0x65, 0x27, 0x82, 0x80, 0x01, 0x45, 0x82, 0x80, 0x41, 0x11, 0x13, 0x06, 0x80, 0x11, 0x97, 0x25, 0x00, 0x00, 0x93, 0x85, 0xa5, 0x1f, 0x17, 0x25, 0x00, 0x00, 0x13, 0x05, 0xa5, 0x51, 0x06, 0xc6, 0x9d, 0x3f, 0xb2, 0x40, 0x01, 0x45, 0x41, 0x01, 0x82, 0x80, 0xf8, 0x4d, 0x41, 0x11, 0xc1, 0x67, 0x22, 0xc4, 0x06, 0xc6, 0x26, 0xc2, 0xf9, 0x8f, 0x2e, 0x84, 0xdd, 0xe7, 0xb7, 0x14, 0x00, 0x4a, 0x23, 0xac, 0x04, 0x82, 0x13, 0x05, 0x80, 0x3e, 0xef, 0xf0, 0x0f, 0xe8, 0x13, 0x05, 0x80, 0x3e, 0x23, 0xae, 0x04, 0x82, 0xb7, 0x04, 0x00, 0x43, 0x93, 0x84, 0x04, 0x10, 0xef, 0xf0, 0xcf, 0xe6, 0xbc, 0x50, 0x29, 0x45, 0xf1, 0x9b, 0xbc, 0xd0, 0xef, 0xf0, 0x0f, 0xe6, 0xbc, 0x50, 0x29, 0x45, 0x93, 0xf7, 0xb7, 0xef, 0xbc, 0xd0, 0xbc, 0x50, 0x93, 0xe7, 0x27, 0x00, 0xbc, 0xd0, 0xef, 0xf0, 0xaf, 0xe4, 0xbc, 0x50, 0x51, 0x45, 0x93, 0xe7, 0x17, 0x00, 0xbc, 0xd0, 0xef, 0xf0, 0xcf, 0xe3, 0x17, 0x35, 0x00, 0x00, 0x13, 0x05, 0x05, 0x9d, 0xfd, 0x3d, 0xec, 0x54, 0x17, 0x35, 0x00, 0x00, 0x13, 0x05, 0xc5, 0x9d, 0xcd, 0x3d, 0x7c, 0x4c, 0x85, 0x8b, 0xb5, 0xc3, 0x97, 0x35, 0x00, 0x00, 0x93, 0x85, 0x85, 0x9f, 0x17, 0x35, 0x00, 0x00, 0x13, 0x05, 0x85, 0x9f, 0xe9, 0x3d, 0x0c, 0x40, 0x17, 0x35, 0x00, 0x00, 0x13, 0x05, 0x85, 0xa0, 0xf9, 0x35, 0x4c, 0x40, 0x17, 0x35, 0x00, 0x00, 0x13, 0x05, 0x05, 0xa1, 0xc9, 0x35, 0x5c, 0x44, 0x85, 0x8b, 0xa1, 0xe7, 0x17, 0x35, 0x00, 0x00, 0x13, 0x05, 0x85, 0xa3, 0x4d, 0x3d, 0xa1, 0xa0, 0x17, 0x35, 0x00, 0x00, 0x13, 0x05, 0x45, 0x9a, 0x5d, 0x35, 0xb7, 0x07, 0x00, 0x43, 0x03, 0xa7, 0x07, 0x16, 0x29, 0x45, 0x13, 0x67, 0x07, 0x10, 0x23, 0xa0, 0xe7, 0x16, 0x23, 0xa4, 0x07, 0x16, 0xef, 0xf0, 0x0f, 0xdc, 0x69, 0xbf, 0x22, 0x85, 0xef, 0x10, 0xd0, 0x69, 0x41, 0xfd, 0x01, 0x45, 0xb2, 0x40, 0x22, 0x44, 0x92, 0x44, 0x41, 0x01, 0x82, 0x80, 0x0c, 0x44, 0x17, 0x35, 0x00, 0x00, 0x13, 0x05, 0x85, 0x9d, 0xad, 0x35, 0x4c, 0x4c, 0x93, 0xf7, 0x45, 0x04, 0x85, 0xc3, 0x17, 0x35, 0x00, 0x00, 0x13, 0x05, 0x65, 0x9f, 0xa1, 0x3d, 0x22, 0x85, 0xef, 0x10, 0x30, 0x30, 0x09, 0xed, 0x17, 0x35, 0x00, 0x00, 0x13, 0x05, 0xc5, 0xa0, 0x99, 0x35, 0xd1, 0xb7, 0x17, 0x35, 0x00, 0x00, 0x13, 0x05, 0x05, 0x9f, 0x2d, 0x3d, 0xcd, 0xb7, 0x1c, 0x5c, 0x05, 0x47, 0x8b, 0xb7, 0xc7, 0x3c, 0x63, 0x87, 0xe7, 0x02, 0x89, 0x46, 0x63, 0x86, 0xd7, 0x12, 0x5c, 0x40, 0x97, 0x35, 0x00, 0x00, 0x93, 0x85, 0x45, 0x8e, 0xf9, 0x17, 0x63, 0x76, 0xf7, 0x00, 0x97, 0x35, 0x00, 0x00, 0x93, 0x85, 0xa5, 0x8d, 0x17, 0x35, 0x00, 0x00, 0x13, 0x05, 0x65, 0xa0, 0x11, 0x35, 0x31, 0xa0, 0x17, 0x35, 0x00, 0x00, 0x13, 0x05, 0xa5, 0x9d, 0xe5, 0x3b, 0x44, 0x48, 0x63, 0xd1, 0x04, 0x10, 0x8b, 0xb4, 0x04, 0x79, 0xa6, 0x85, 0x17, 0x35, 0x00, 0x00, 0x13, 0x05, 0x45, 0x9f, 0xcd, 0x33, 0x78, 0x4c, 0xb7, 0x07, 0x00, 0x40, 0xf9, 0x8f, 0x63, 0x8d, 0x07, 0x0e, 0xb7, 0x37, 0x10, 0x43, 0x83, 0xa7, 0x07, 0x0a, 0x3c, 0x44, 0x89, 0xe7, 0xb7, 0x07, 0x00, 0x10, 0x93, 0x87, 0x07, 0x20, 0x37, 0x37, 0x10, 0x43, 0x93, 0x06, 0x07, 0x08, 0x9c, 0xd2, 0x93, 0x07, 0xa0, 0x40, 0xdc, 0xce, 0x5c, 0x43, 0x17, 0x35, 0x00, 0x00, 0x13, 0x05, 0xc5, 0x9c, 0x93, 0xe7, 0x17, 0x00, 0x5c, 0xc3, 0x45, 0x33, 0x7c, 0x4c, 0x50, 0x40, 0xb7, 0x35, 0x10, 0x43, 0x13, 0xf7, 0x07, 0x20, 0x01, 0xe7, 0x19, 0x47, 0x63, 0x14, 0xe6, 0x0c, 0x03, 0xa7, 0x05, 0x10, 0xc5, 0x76, 0xfd, 0x16, 0x75, 0x8f, 0x95, 0x66, 0x55, 0x8f, 0x23, 0xa0, 0xe5, 0x10, 0x37, 0x37, 0x10, 0x43, 0x83, 0x26, 0x07, 0x14, 0xb7, 0x05, 0x00, 0x80, 0xcd, 0x8e, 0x23, 0x20, 0xd7, 0x14, 0x93, 0xf6, 0x07, 0x10, 0x99, 0xc6, 0x83, 0x26, 0x87, 0x0b, 0x93, 0xe6, 0x06, 0x30, 0x23, 0x2c, 0xd7, 0x0a, 0x37, 0x07, 0x00, 0x04, 0x7d, 0x8f, 0x51, 0xcb, 0xb7, 0x35, 0x10, 0x43, 0x03, 0xa7, 0x85, 0x10, 0xf9, 0x76, 0xfd, 0x16, 0x75, 0x8f, 0x23, 0xa4, 0xe5, 0x10, 0x1d, 0x47, 0x63, 0x1c, 0xe6, 0x00, 0x37, 0x36, 0x10, 0x43, 0x78, 0x5e, 0xb7, 0x06, 0xf1, 0xff, 0xfd, 0x16, 0x75, 0x8f, 0xc1, 0x66, 0x55, 0x8f, 0x78, 0xde, 0x37, 0x07, 0x00, 0x08, 0xf9, 0x8f, 0x81, 0xe7, 0x22, 0x85, 0xef, 0x00, 0x80, 0x7f, 0xef, 0x00, 0x00, 0x65, 0x78, 0x4c, 0xb7, 0x07, 0x00, 0x10, 0xf9, 0x8f, 0xb9, 0xef, 0xef, 0x00, 0x00, 0x64, 0x26, 0x85, 0x41, 0xb5, 0x17, 0x35, 0x00, 0x00, 0x13, 0x05, 0x65, 0x8e, 0xf5, 0xbd, 0xef, 0x10, 0x60, 0x7a, 0x83, 0x57, 0x44, 0x01, 0x13, 0x17, 0x05, 0x01, 0xaa, 0x84, 0xd9, 0x8f, 0x5c, 0xc8, 0xd5, 0xbd, 0xb7, 0x37, 0x10, 0x43, 0x93, 0x86, 0x07, 0x08, 0x98, 0x52, 0x41, 0x76, 0x71, 0x8f, 0x98, 0xd2, 0xd8, 0x43, 0x79, 0x9b, 0xd8, 0xc3, 0x2d, 0xb7, 0x03, 0xa7, 0x05, 0x10, 0xc5, 0x76, 0xfd, 0x16, 0x75, 0x8f, 0x81, 0xb7, 0xb7, 0x36, 0x10, 0x43, 0x03, 0xa7, 0x86, 0x10, 0x89, 0x65, 0x4d, 0x8f, 0x23, 0xa4, 0xe6, 0x10, 0x85, 0xbf, 0xb7, 0x07, 0x00, 0x4a, 0x83, 0xa7, 0x07, 0x1c, 0x05, 0x47, 0xbd, 0x8b, 0xe3, 0x8c, 0xe7, 0xf8, 0x85, 0x65, 0x26, 0x85, 0xef, 0x10, 0x10, 0x04, 0x51, 0xd5, 0x39, 0xb5, 0x82, 0x80, 0xaa, 0x87, 0x13, 0xf8, 0x37, 0x00, 0x63, 0x1c, 0x08, 0x04, 0x0d, 0x47, 0x63, 0x76, 0xc7, 0x04, 0x93, 0xf6, 0xf5, 0x0f, 0x13, 0x97, 0x86, 0x00, 0xd9, 0x8e, 0x13, 0x97, 0x06, 0x01, 0x55, 0x8f, 0x33, 0x8e, 0xc7, 0x00, 0xbe, 0x86, 0xbd, 0x48, 0x33, 0x03, 0xde, 0x40, 0x63, 0xee, 0x68, 0x02, 0x93, 0x56, 0x46, 0x00, 0xc1, 0x58, 0x0b, 0x96, 0x16, 0x21, 0x92, 0x06, 0xb6, 0x97, 0x8d, 0x48, 0x81, 0x46, 0x33, 0x03, 0xd6, 0x40, 0x63, 0xe7, 0x68, 0x02, 0x13, 0x57, 0x26, 0x00, 0xf1, 0x56, 0x8b, 0x97, 0xe7, 0x04, 0x0b, 0x16, 0xd7, 0x20, 0x63, 0x12, 0x06, 0x03, 0x82, 0x80, 0x7d, 0xde, 0x8b, 0xd5, 0x17, 0x18, 0x7d, 0x16, 0x71, 0xbf, 0x98, 0xc2, 0xd8, 0xc2, 0x98, 0xc6, 0xd8, 0xc6, 0xc1, 0x06, 0x5d, 0xbf, 0x0b, 0xd7, 0xd7, 0x40, 0x91, 0x06, 0xe1, 0xb7, 0x8b, 0xd5, 0x07, 0x01, 0x05, 0x08, 0xd9, 0xbf, 0x3d, 0x47, 0xaa, 0x87, 0x63, 0x76, 0xc7, 0x00, 0x33, 0xe7, 0xa5, 0x00, 0x0d, 0x8b, 0x09, 0xc7, 0x01, 0x47, 0x63, 0x18, 0xe6, 0x06, 0x82, 0x80, 0xae, 0x86, 0x33, 0x03, 0xc5, 0x00, 0x3d, 0x48, 0x83, 0xa8, 0x06, 0x00, 0x23, 0xa0, 0x17, 0x01, 0x83, 0xa8, 0x46, 0x00, 0x23, 0xa2, 0x17, 0x01, 0x83, 0xa8, 0x86, 0x00, 0xc1, 0x06, 0x23, 0xa4, 0x17, 0x01, 0x83, 0xa8, 0xc6, 0xff, 0xc1, 0x07, 0x23, 0xae, 0x17, 0xff, 0xb3, 0x08, 0xf3, 0x40, 0xe3, 0x6c, 0x18, 0xfd, 0x93, 0x07, 0x06, 0xff, 0xc1, 0x9b, 0xc1, 0x07, 0xbe, 0x95, 0x3d, 0x8a, 0xaa, 0x97, 0x8d, 0x46, 0x33, 0x08, 0xe6, 0x40, 0x63, 0xeb, 0x06, 0x01, 0x13, 0x57, 0x26, 0x00, 0xf1, 0x56, 0x0b, 0x16, 0xd7, 0x20, 0x0a, 0x07, 0xba, 0x97, 0xba, 0x95, 0x71, 0xbf, 0x0b, 0xc8, 0xe5, 0x40, 0x0b, 0xd8, 0xe7, 0x40, 0x11, 0x07, 0xf1, 0xbf, 0x8b, 0xc6, 0xe5, 0x80, 0x8b, 0xd6, 0xe7, 0x00, 0x05, 0x07, 0x59, 0xb7, 0x01, 0x11, 0x22, 0xcc, 0x2a, 0x84, 0x37, 0x05, 0x50, 0x42, 0x06, 0xce, 0x26, 0xca, 0x4a, 0xc8, 0x32, 0xc6, 0x2e, 0x89, 0xe1, 0x3d, 0xaa, 0x84, 0x22, 0x85, 0xef, 0xf0, 0xaf, 0xff, 0xb2, 0x45, 0x4a, 0x85, 0x05, 0x46, 0x99, 0x28, 0x2a, 0x04, 0xb3, 0x87, 0x84, 0x00, 0x8d, 0x46, 0x94, 0xcb, 0x17, 0x37, 0x00, 0x00, 0x23, 0x2b, 0xf7, 0x86, 0xd8, 0x47, 0xf2, 0x40, 0x42, 0x49, 0x13, 0x67, 0x07, 0x08, 0xd8, 0xc7, 0x23, 0xa2, 0x07, 0x00, 0x13, 0x07, 0x80, 0x06, 0x0b, 0xd7, 0x84, 0x40, 0xd8, 0x47, 0x62, 0x44, 0xd2, 0x44, 0x13, 0x77, 0xf7, 0xf7, 0xd8, 0xc7, 0xd4, 0xc7, 0x1d, 0x47, 0x98, 0xc7, 0x05, 0x61, 0x82, 0x80, 0x17, 0x37, 0x00, 0x00, 0x03, 0x27, 0x07, 0x84, 0x5c, 0x4b, 0x93, 0xf7, 0x07, 0x04, 0xed, 0xdf, 0x08, 0xc3, 0x82, 0x80, 0x01, 0x43, 0x63, 0x1b, 0xb3, 0x1c, 0x7d, 0x55, 0x82, 0x80, 0x13, 0x0e, 0x48, 0x32, 0x3e, 0x9e, 0x93, 0x06, 0x08, 0x30, 0xf2, 0x98, 0x13, 0x0e, 0x48, 0x31, 0xba, 0x96, 0x13, 0x08, 0x08, 0x31, 0x72, 0x97, 0x29, 0xac, 0x63, 0x17, 0xb3, 0x1c, 0x7d, 0x55, 0x72, 0x54, 0xe2, 0x54, 0x52, 0x59, 0xc2, 0x59, 0x32, 0x5a, 0xa2, 0x5a, 0x12, 0x5b, 0x82, 0x5b, 0x72, 0x4c, 0xe2, 0x4c, 0x52, 0x4d, 0xc2, 0x4d, 0x21, 0x61, 0x82, 0x80, 0x83, 0x4f, 0x05, 0x00, 0x83, 0x42, 0x15, 0x00, 0x63, 0x86, 0x0f, 0x2c, 0x93, 0xda, 0x42, 0x00, 0x13, 0xd9, 0x32, 0x00, 0x63, 0x94, 0x59, 0x01, 0x63, 0x88, 0xf3, 0x13, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xa0, 0x06, 0x01, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xa0, 0xe8, 0x01, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x20, 0xc7, 0x01, 0x89, 0xc4, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xa0, 0xd7, 0x01, 0x93, 0x07, 0x00, 0x03, 0xb3, 0x87, 0xff, 0x02, 0xad, 0x46, 0x93, 0x98, 0x2a, 0x00, 0x0b, 0x97, 0x27, 0x05, 0x63, 0xed, 0xf6, 0x0d, 0x37, 0x04, 0x00, 0x42, 0x51, 0x14, 0x33, 0x88, 0x87, 0x00, 0x32, 0x44, 0xb3, 0x06, 0x87, 0x01, 0xc2, 0x98, 0x66, 0x97, 0xa2, 0x97, 0x03, 0xa8, 0x06, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x03, 0xaf, 0x08, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x03, 0x2e, 0x07, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x83, 0xae, 0x07, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x81, 0x44, 0x03, 0x0b, 0x25, 0x00, 0x93, 0xf3, 0x72, 0x00, 0x8a, 0x03, 0x63, 0x40, 0x0b, 0x02, 0x3d, 0x44, 0x33, 0x14, 0x74, 0x00, 0x13, 0x44, 0xf4, 0xff, 0x33, 0x78, 0x88, 0x00, 0x19, 0xc6, 0x13, 0x74, 0xfb, 0x00, 0x33, 0x14, 0x74, 0x00, 0x33, 0x68, 0x88, 0x00, 0x03, 0x04, 0x35, 0x00, 0x63, 0x40, 0x04, 0x02, 0x13, 0xfa, 0xf2, 0x00, 0x06, 0x0a, 0xb3, 0x19, 0x4d, 0x01, 0x93, 0xc9, 0xf9, 0xff, 0x0d, 0x88, 0x33, 0xff, 0xe9, 0x01, 0x33, 0x14, 0x44, 0x01, 0x33, 0x6f, 0xe4, 0x01, 0x03, 0x04, 0x45, 0x00, 0x63, 0x4d, 0x04, 0x00, 0xb3, 0x19, 0x7d, 0x00, 0x93, 0xc9, 0xf9, 0xff, 0x0d, 0x88, 0x33, 0xfe, 0xc9, 0x01, 0x33, 0x14, 0x74, 0x00, 0x33, 0x6e, 0xc4, 0x01, 0x63, 0x13, 0xbb, 0x03, 0x83, 0x03, 0x55, 0x00, 0x63, 0xcf, 0x03, 0x00, 0x33, 0x94, 0x5d, 0x00, 0x13, 0x44, 0xf4, 0xff, 0x93, 0xf3, 0x13, 0x00, 0xb3, 0x7e, 0xd4, 0x01, 0xb3, 0x93, 0x53, 0x00, 0xb3, 0xee, 0xd3, 0x01, 0x85, 0x44, 0x05, 0x03, 0x21, 0x05, 0xd6, 0x89, 0x4a, 0x84, 0xfe, 0x83, 0x65, 0xa2, 0x37, 0x04, 0x00, 0x42, 0x93, 0x04, 0x44, 0x32, 0x33, 0x88, 0x97, 0x00, 0x93, 0x04, 0x44, 0x31, 0xb3, 0x06, 0x77, 0x01, 0xc2, 0x98, 0x26, 0x97, 0x13, 0x04, 0x04, 0x31, 0x0d, 0xb7, 0xe3, 0x02, 0x24, 0xf5, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xa0, 0x06, 0x01, 0x93, 0x06, 0x00, 0x03, 0xb3, 0x83, 0xdf, 0x02, 0xad, 0x46, 0x13, 0x14, 0x29, 0x00, 0x63, 0xe5, 0xf6, 0x03, 0xb3, 0x86, 0x83, 0x01, 0xa2, 0x96, 0x03, 0xa8, 0x06, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x20, 0xc7, 0x01, 0xe6, 0x93, 0x0b, 0xce, 0x23, 0x45, 0x33, 0x87, 0x83, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x09, 0xb7, 0xb3, 0x86, 0x73, 0x01, 0xe9, 0xbf, 0x39, 0x71, 0x22, 0xde, 0x26, 0xdc, 0x4a, 0xda, 0x4e, 0xd8, 0x52, 0xd6, 0x56, 0xd4, 0x5a, 0xd2, 0x5e, 0xd0, 0x62, 0xce, 0x66, 0xcc, 0x6a, 0xca, 0x6e, 0xc8, 0x8b, 0x43, 0x65, 0x86, 0x0b, 0x19, 0x65, 0x06, 0x05, 0x03, 0xe3, 0x84, 0x03, 0xe2, 0x93, 0x07, 0x00, 0x03, 0xb3, 0x87, 0xf3, 0x02, 0x83, 0x42, 0x19, 0x00, 0xad, 0x46, 0x37, 0x08, 0x00, 0x42, 0x13, 0xd4, 0x32, 0x00, 0x93, 0xd9, 0x42, 0x00, 0x93, 0x98, 0x29, 0x00, 0x0b, 0x97, 0x87, 0x04, 0xe3, 0xe4, 0x76, 0xde, 0x13, 0x0e, 0x48, 0xff, 0x3e, 0x9e, 0x93, 0x06, 0x08, 0xfd, 0xf2, 0x98, 0x13, 0x0e, 0x48, 0xfe, 0xba, 0x96, 0x01, 0x18, 0x72, 0x97, 0x83, 0xaf, 0x06, 0x00, 0xc2, 0x97, 0x0f, 0x00, 0xa0, 0x0a, 0x03, 0xaf, 0x08, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x03, 0x2e, 0x07, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x83, 0xae, 0x07, 0x00, 0x0f, 0x00, 0xa0, 0x0a, 0x93, 0xf4, 0x72, 0x00, 0x13, 0x9a, 0x24, 0x00, 0x3d, 0x48, 0x33, 0x18, 0x48, 0x01, 0x13, 0x48, 0xf8, 0xff, 0x33, 0x78, 0xf8, 0x01, 0x09, 0xca, 0x83, 0x4f, 0x29, 0x00, 0x93, 0xff, 0xff, 0x00, 0xb3, 0x9f, 0x4f, 0x01, 0x33, 0x68, 0xf8, 0x01, 0x83, 0x04, 0x39, 0x00, 0x63, 0xc1, 0x04, 0x02, 0x93, 0xfa, 0xf2, 0x00, 0x86, 0x0a, 0x8d, 0x4f, 0xb3, 0x9f, 0x5f, 0x01, 0x93, 0xcf, 0xff, 0xff, 0x8d, 0x88, 0x33, 0xff, 0xef, 0x01, 0xb3, 0x94, 0x54, 0x01, 0x33, 0xef, 0xe4, 0x01, 0x83, 0x04, 0x49, 0x00, 0x63, 0xce, 0x04, 0x00, 0x8d, 0x4f, 0xb3, 0x9f, 0x4f, 0x01, 0x93, 0xcf, 0xff, 0xff, 0x8d, 0x88, 0x33, 0xfe, 0xcf, 0x01, 0xb3, 0x94, 0x44, 0x01, 0x33, 0xee, 0xc4, 0x01, 0x83, 0x0f, 0x29, 0x00, 0x05, 0x4a, 0x81, 0x44, 0x63, 0x93, 0x4f, 0x03, 0x03, 0x09, 0x59, 0x00, 0x63, 0x4f, 0x09, 0x00, 0xb3, 0x9f, 0x5f, 0x00, 0x93, 0xcf, 0xff, 0xff, 0x13, 0x79, 0x19, 0x00, 0xb3, 0xfe, 0xdf, 0x01, 0xb3, 0x12, 0x59, 0x00, 0xb3, 0xee, 0xd2, 0x01, 0x85, 0x44, 0xb7, 0x0f, 0x00, 0x42, 0x93, 0x8b, 0x0f, 0x30, 0x13, 0x8c, 0x0f, 0xfd, 0x93, 0x8c, 0x4f, 0xfe, 0x81, 0x1f, 0x0b, 0x15, 0x65, 0x06, 0x7e, 0xc6, 0x0d, 0x4d, 0x85, 0x4d, 0xe3, 0x68, 0xb3, 0xd2, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xa0, 0x06, 0x01, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xa0, 0xe8, 0x01, 0x0f, 0x00, 0x50, 0x05, 0x23, 0x20, 0xc7, 0x01, 0x01, 0x45, 0xe3, 0x8b, 0x04, 0xce, 0x0f, 0x00, 0x50, 0x05, 0x23, 0xa0, 0xd7, 0x01, 0xed, 0xb1, 0x01, 0x11, 0x22, 0xcc, 0x2a, 0x84, 0x37, 0x05, 0x00, 0x4a, 0x13, 0x05, 0x05, 0x20, 0x06, 0xce, 0x2e, 0xc6, 0x39, 0x3e, 0x0f, 0x00, 0x50, 0x05, 0xb2, 0x45, 0xf2, 0x40, 0x8b, 0x55, 0x85, 0x44, 0x62, 0x44, 0x05, 0x61, 0x82, 0x80, 0x41, 0x11, 0x22, 0xc4, 0x2a, 0x84, 0x37, 0x05, 0x00, 0x4a, 0x13, 0x05, 0x05, 0x20, 0x06, 0xc6, 0xed, 0x3c, 0x0b, 0x45, 0x85, 0x44, 0x0f, 0x00, 0xa0, 0x0a, 0xb2, 0x40, 0x22, 0x44, 0x41, 0x01, 0x82, 0x80, 0x41, 0x11, 0x22, 0xc4, 0x06, 0xc6, 0x2a, 0x84, 0x22, 0x85, 0x81, 0x45, 0x75, 0x37, 0xef, 0xe0, 0xbf, 0xe9, 0x22, 0x85, 0xe9, 0x37, 0x6d, 0xf9, 0xb2, 0x40, 0x22, 0x44, 0x41, 0x01, 0x82, 0x80, 0x41, 0x11, 0x22, 0xc4, 0x26, 0xc2, 0x4a, 0xc0, 0x06, 0xc6, 0x01, 0x44, 0x17, 0x29, 0x00, 0x00, 0x13, 0x09, 0xe9, 0xf3, 0xa1, 0x44, 0x22, 0x85, 0x5d, 0x37, 0x2a, 0x86, 0x09, 0xc5, 0xa2, 0x85, 0x4a, 0x85, 0xef, 0xf0, 0x2f, 0xf3, 0x05, 0x04, 0xe3, 0x17, 0x94, 0xfe, 0x09, 0x45, 0x41, 0x3f, 0xb7, 0xa7, 0xa5, 0x5a, 0x93, 0x87, 0xa7, 0x55, 0x63, 0x10, 0xf5, 0x02, 0x17, 0x25, 0x00, 0x00, 0x13, 0x05, 0x65, 0xf2, 0xef, 0xf0, 0x0f, 0xf1, 0x85, 0x47, 0xb2, 0x40, 0x22, 0x44, 0x92, 0x44, 0x02, 0x49, 0x3e, 0x85, 0x41, 0x01, 0x82, 0x80, 0x37, 0x64, 0xa5, 0x5a, 0x13, 0x07, 0x54, 0xaa, 0x81, 0x47, 0xe3, 0x14, 0xe5, 0xfe, 0x93, 0x05, 0x64, 0xaa, 0x09, 0x45, 0x35, 0x37, 0x13, 0x04, 0x74, 0xaa, 0x13, 0x05, 0x60, 0x09, 0xef, 0xe0, 0x7f, 0xe0, 0x09, 0x45, 0x89, 0x37, 0xe3, 0x1a, 0x85, 0xfe, 0x17, 0x25, 0x00, 0x00, 0x13, 0x05, 0x05, 0xef, 0x6d, 0xbf, 0x09, 0x45, 0x89, 0xbf, 0x82, 0x80, 0xb7, 0x27, 0x10, 0x43, 0x7d, 0x57, 0x98, 0xd3, 0x13, 0x07, 0xf0, 0x0f, 0xd8, 0xd3, 0x41, 0x67, 0x7d, 0x17, 0x98, 0xd7, 0x29, 0x45, 0x6f, 0xe0, 0xff, 0xdd, 0xb7, 0x27, 0x10, 0x43, 0x05, 0x47, 0x98, 0xd3, 0x23, 0xa2, 0x07, 0x02, 0x23, 0xa4, 0x07, 0x02, 0x29, 0x45, 0x6f, 0xe0, 0x9f, 0xdc, 0x7c, 0x49, 0x38, 0x4d, 0x89, 0x66, 0x93, 0x86, 0x06, 0xe0, 0x93, 0x95, 0x97, 0x00, 0xf5, 0x8d, 0x93, 0x16, 0x17, 0x00, 0xf9, 0x8a, 0x41, 0x11, 0xd5, 0x8d, 0x37, 0x36, 0x10, 0x43, 0xb7, 0x36, 0x10, 0x43, 0x26, 0xc2, 0x06, 0xc6, 0x22, 0xc4, 0xaa, 0x84, 0x13, 0x06, 0x06, 0x31, 0x13, 0x88, 0x46, 0x33, 0x08, 0x42, 0x4d, 0x8d, 0x0b, 0x55, 0x46, 0x58, 0xe3, 0x1c, 0x06, 0xff, 0x89, 0x65, 0x93, 0x85, 0x05, 0xe0, 0x13, 0x96, 0x57, 0x00, 0x6d, 0x8e, 0x93, 0x55, 0x37, 0x00, 0xf9, 0x89, 0x37, 0x34, 0x10, 0x43, 0x4d, 0x8e, 0x93, 0x86, 0x06, 0x39, 0x13, 0x05, 0x44, 0x3b, 0x8c, 0x42, 0xd1, 0x8d, 0x8b, 0xd5, 0x46, 0x58, 0xe3, 0x9c, 0xa6, 0xfe, 0x03, 0x26, 0x04, 0x10, 0xb7, 0x05, 0x00, 0xfc, 0xfd, 0x15, 0x6d, 0x8e, 0x23, 0x20, 0xc4, 0x10, 0x13, 0x05, 0x04, 0x30, 0x13, 0xd6, 0x07, 0x01, 0x89, 0x68, 0x03, 0x23, 0x45, 0x03, 0x93, 0x55, 0xf7, 0x00, 0x13, 0x1e, 0x96, 0x00, 0x93, 0x88, 0x08, 0xe0, 0x33, 0x7e, 0x1e, 0x01, 0xf9, 0x89, 0xb3, 0xe5, 0xc5, 0x01, 0x33, 0xe3, 0x65, 0x00, 0x23, 0x2a, 0x65, 0x02, 0x03, 0x23, 0x85, 0x03, 0xd1, 0x83, 0x4d, 0x83, 0xb3, 0xe5, 0x65, 0x00, 0x0c, 0xdd, 0x8c, 0x42, 0x13, 0x93, 0x97, 0x00, 0xb3, 0x78, 0x13, 0x01, 0x79, 0x8b, 0x33, 0x67, 0x17, 0x01, 0xd9, 0x8d, 0x8c, 0xc2, 0x93, 0x06, 0x04, 0x38, 0x8c, 0x5e, 0x66, 0x06, 0xe6, 0x07, 0x4d, 0x8f, 0x98, 0xde, 0x4c, 0x5d, 0x37, 0x07, 0x00, 0x1e, 0x79, 0x8e, 0x4d, 0x8e, 0x50, 0xdd, 0xd0, 0x5e, 0xf9, 0x8f, 0x37, 0x07, 0x00, 0x04, 0xd1, 0x8f, 0xdc, 0xde, 0x83, 0x27, 0x04, 0x10, 0x05, 0x45, 0x13, 0x04, 0x04, 0x24, 0xd9, 0x8f, 0x23, 0x20, 0xf4, 0xec, 0xef, 0xe0, 0x7f, 0xcc, 0xbc, 0x48, 0x05, 0x67, 0x13, 0x07, 0x07, 0xf0, 0x13, 0x96, 0x47, 0x00, 0x79, 0x8e, 0x37, 0x37, 0x10, 0x43, 0x93, 0x05, 0xc7, 0x27, 0x14, 0x40, 0xd1, 0x8e, 0x8b, 0x56, 0x44, 0x58, 0xe3, 0x1c, 0xb4, 0xfe, 0xb7, 0x36, 0x10, 0x43, 0x13, 0x07, 0x87, 0x22, 0x13, 0x85, 0x06, 0x24, 0x0c, 0x43, 0xd1, 0x8d, 0x8b, 0x55, 0x47, 0x58, 0xe3, 0x1c, 0xa7, 0xfe, 0x93, 0x85, 0x06, 0x20, 0x88, 0x4d, 0x05, 0x67, 0x13, 0x07, 0x07, 0xf0, 0x13, 0x96, 0x87, 0x00, 0x79, 0x8e, 0x49, 0x8e, 0x90, 0xcd, 0xc8, 0x4d, 0x33, 0xf6, 0xe7, 0x00, 0x93, 0x86, 0x06, 0x28, 0x49, 0x8e, 0xd0, 0xcd, 0x90, 0x42, 0x91, 0x83, 0xb2, 0x40, 0x22, 0x44, 0xf9, 0x8f, 0xd1, 0x8f, 0x9c, 0xc2, 0x92, 0x44, 0x41, 0x01, 0x82, 0x80, 0x37, 0x27, 0x10, 0x43, 0x5c, 0x47, 0xfd, 0x76, 0x37, 0x06, 0x50, 0x00, 0xfd, 0x8e, 0x1c, 0x41, 0x13, 0x06, 0x46, 0x06, 0xb7, 0x05, 0x00, 0x02, 0x85, 0x83, 0xfd, 0x17, 0xd5, 0x8f, 0x5c, 0xc7, 0xc1, 0x66, 0x93, 0x07, 0x07, 0x20, 0x94, 0xc3, 0xb7, 0x06, 0x00, 0x01, 0xa5, 0x06, 0x94, 0xcb, 0xd0, 0xcb, 0xb5, 0x05, 0x8c, 0xdb, 0xb7, 0x05, 0x60, 0x00, 0x93, 0x85, 0x05, 0x10, 0xcc, 0xdb, 0xb4, 0xc3, 0xf0, 0xc3, 0x37, 0x06, 0x64, 0x00, 0x13, 0x06, 0x96, 0x20, 0xb0, 0xd3, 0x37, 0x06, 0x20, 0x00, 0x13, 0x06, 0x06, 0x04, 0xf0, 0xd3, 0x13, 0x06, 0x07, 0x28, 0xb7, 0x07, 0x40, 0x00, 0x14, 0xca, 0x93, 0x87, 0x07, 0x08, 0x5c, 0xca, 0x23, 0x28, 0x07, 0x46, 0x23, 0x2a, 0x07, 0x46, 0x37, 0x37, 0x80, 0x0f, 0xb7, 0x37, 0x10, 0x43, 0x13, 0x07, 0x57, 0xf0, 0x23, 0xa0, 0xe7, 0x1c, 0x37, 0x07, 0x00, 0x0f, 0x13, 0x07, 0xf7, 0x0f, 0x23, 0xa4, 0xe7, 0x1c, 0x37, 0x07, 0x00, 0x3f, 0x13, 0x07, 0xf7, 0x05, 0x23, 0xa8, 0xe7, 0x1c, 0x82, 0x80, 0xb3, 0x05, 0xb5, 0x02, 0x93, 0x07, 0x80, 0x3e, 0x33, 0xf5, 0xf5, 0x02, 0xb3, 0xd5, 0xf5, 0x02, 0x33, 0x35, 0xa0, 0x00, 0x2e, 0x95, 0x82, 0x80, 0x7c, 0x4d, 0x19, 0x71, 0xa6, 0xda, 0xca, 0xd8, 0xd2, 0xd4, 0x3e, 0xdc, 0x86, 0xde, 0xa2, 0xdc, 0xce, 0xd6, 0xd6, 0xd2, 0xda, 0xd0, 0xde, 0xce, 0xe2, 0xcc, 0xe6, 0xca, 0xea, 0xc8, 0xee, 0xc6, 0x89, 0x8b, 0x04, 0x41, 0x03, 0x2a, 0x45, 0x00, 0x2a, 0x89, 0x63, 0x84, 0x07, 0x22, 0x03, 0x2c, 0x85, 0x02, 0x50, 0x55, 0x00, 0x59, 0x8b, 0x37, 0x5c, 0x5d, 0x3e, 0xde, 0x8b, 0x37, 0x76, 0x6d, 0x3e, 0xc6, 0x05, 0x65, 0x8b, 0x37, 0xf6, 0x4c, 0x3e, 0xd8, 0x7d, 0x15, 0x8b, 0x37, 0xc4, 0x50, 0x0b, 0x3b, 0xfc, 0x50, 0x8b, 0x3a, 0xbc, 0x38, 0x8b, 0x39, 0x6c, 0x28, 0x8b, 0x3d, 0x46, 0x59, 0x13, 0x7c, 0xfc, 0x03, 0x0b, 0x33, 0xb6, 0x38, 0x8b, 0x3b, 0x66, 0x28, 0x13, 0x7d, 0xf6, 0x03, 0x3e, 0xc8, 0x69, 0x8c, 0x83, 0x27, 0x49, 0x02, 0x3e, 0xda, 0x83, 0x27, 0xc9, 0x01, 0x3e, 0xd6, 0x99, 0x47, 0x63, 0x0d, 0xfa, 0x66, 0x63, 0xe3, 0x47, 0x4f, 0x89, 0x47, 0x63, 0x0b, 0xfa, 0x54, 0x8d, 0x47, 0x63, 0x07, 0xfa, 0x5c, 0xa1, 0x47, 0xbe, 0x8d, 0xed, 0x47, 0x3e, 0xd4, 0xb1, 0x47, 0x3e, 0xd2, 0x11, 0x45, 0x8d, 0x48, 0x11, 0x4e, 0x09, 0x4a, 0x99, 0x4e, 0x09, 0x43, 0x81, 0x45, 0x0d, 0x47, 0x0d, 0x48, 0x05, 0x46, 0x85, 0x47, 0x01, 0x4f, 0x81, 0x4f, 0x81, 0x42, 0x81, 0x46, 0x02, 0xd0, 0x02, 0xce, 0x02, 0xcc, 0x02, 0xca, 0xc2, 0x53, 0x93, 0x0c, 0x28, 0x00, 0xde, 0x93, 0x63, 0xf6, 0x93, 0x01, 0xb3, 0x03, 0x78, 0x41, 0x89, 0x03, 0x1e, 0xd8, 0x83, 0x53, 0xa9, 0x01, 0x63, 0x94, 0x03, 0x00, 0x23, 0x2c, 0xd9, 0x00, 0xb2, 0x56, 0xc1, 0x82, 0x99, 0xe2, 0x23, 0x2e, 0x59, 0x00, 0x83, 0x56, 0x29, 0x02, 0x99, 0xe2, 0x23, 0x20, 0xf9, 0x03, 0xd2, 0x56, 0xc1, 0x82, 0x99, 0xe2, 0x23, 0x22, 0xe9, 0x03, 0x83, 0x2f, 0x89, 0x01, 0x41, 0x6f, 0x7d, 0x1f, 0xb7, 0x36, 0x10, 0x43, 0xb3, 0xff, 0xef, 0x01, 0x23, 0xa8, 0xf6, 0x03, 0x83, 0x2f, 0xc9, 0x01, 0x42, 0x0b, 0x33, 0x6b, 0xab, 0x01, 0xb3, 0xff, 0xef, 0x01, 0x23, 0xaa, 0xf6, 0x03, 0x83, 0x2f, 0x09, 0x02, 0x62, 0x07, 0x42, 0x08, 0xb3, 0xff, 0xef, 0x01, 0x23, 0xac, 0xf6, 0x03, 0x83, 0x2f, 0x49, 0x02, 0x33, 0x67, 0x07, 0x01, 0x33, 0x67, 0xb7, 0x01, 0x33, 0xff, 0xef, 0x01, 0x23, 0xae, 0xe6, 0x03, 0x03, 0x2f, 0xc9, 0x00, 0x22, 0x0e, 0x33, 0x6e, 0xc7, 0x01, 0x0b, 0x3f, 0x4f, 0x14, 0x23, 0xa6, 0xe6, 0x03, 0x12, 0x5f, 0x72, 0x57, 0xc2, 0x05, 0x62, 0x0f, 0x33, 0x6b, 0xeb, 0x01, 0x22, 0x5f, 0x42, 0x07, 0x32, 0x03, 0x22, 0x0f, 0x33, 0x6b, 0xeb, 0x01, 0x32, 0x4f, 0x23, 0xac, 0x66, 0x05, 0xe2, 0x09, 0x93, 0x13, 0x0f, 0x01, 0x42, 0x5f, 0x33, 0xec, 0x83, 0x01, 0xb3, 0xe9, 0xe9, 0x00, 0x93, 0x13, 0x8f, 0x00, 0xb3, 0x63, 0x7c, 0x00, 0x23, 0xae, 0x76, 0x04, 0x13, 0x17, 0x85, 0x01, 0xb3, 0xe5, 0x65, 0x00, 0x42, 0x05, 0x23, 0xa0, 0xc6, 0x07, 0x59, 0x8d, 0xb3, 0xee, 0xd5, 0x01, 0xb3, 0xeb, 0x79, 0x01, 0xa2, 0x0a, 0x23, 0xa2, 0xd6, 0x07, 0xb3, 0xea, 0x5b, 0x01, 0x33, 0x6a, 0x45, 0x01, 0xa2, 0x08, 0x23, 0xa4, 0x56, 0x07, 0xb3, 0x68, 0x1a, 0x01, 0x23, 0xa6, 0x16, 0x07, 0xb8, 0x5e, 0xb7, 0x06, 0xff, 0x0f, 0x75, 0x8f, 0x93, 0x06, 0x00, 0x32, 0x63, 0xe0, 0x96, 0x5a, 0xb7, 0x66, 0x00, 0xf0, 0x93, 0x86, 0x06, 0x60, 0x55, 0x8f, 0x13, 0x67, 0x07, 0x01, 0xb7, 0x36, 0x10, 0x43, 0xb8, 0xde, 0xc2, 0x07, 0x37, 0x07, 0x00, 0x02, 0xd1, 0x8f, 0x13, 0x07, 0x07, 0x10, 0xd9, 0x8f, 0x13, 0x87, 0x06, 0x08, 0x1c, 0xc3, 0xe2, 0x47, 0x52, 0x46, 0xf6, 0x50, 0xd2, 0x07, 0xd1, 0x8f, 0xbc, 0xca, 0x82, 0x57, 0x72, 0x46, 0xd6, 0x54, 0xd2, 0x07, 0xd1, 0x8f, 0xfc, 0xca, 0xc2, 0x46, 0x93, 0x17, 0x04, 0x01, 0x3e, 0x04, 0xb3, 0xec, 0xd7, 0x00, 0xb7, 0x07, 0xff, 0x0f, 0x23, 0x28, 0x97, 0x01, 0x7d, 0x8c, 0x40, 0xcb, 0x66, 0x54, 0x46, 0x59, 0xb6, 0x59, 0x26, 0x5a, 0x96, 0x5a, 0x06, 0x5b, 0xf6, 0x4b, 0x66, 0x4c, 0xd6, 0x4c, 0x46, 0x4d, 0xb6, 0x4d, 0x09, 0x61, 0x82, 0x80, 0x8d, 0x47, 0x93, 0xdc, 0x14, 0x00, 0x63, 0x1d, 0xfa, 0x12, 0xe6, 0x85, 0x21, 0x45, 0x61, 0x33, 0xe6, 0x85, 0xaa, 0x8d, 0x3d, 0x45, 0x41, 0x33, 0xaa, 0x8b, 0x09, 0x65, 0xe6, 0x85, 0x13, 0x05, 0x85, 0xe7, 0x95, 0x3b, 0x13, 0x74, 0xf5, 0x01, 0x33, 0x34, 0x80, 0x00, 0x15, 0x81, 0xe6, 0x85, 0x2a, 0x94, 0x13, 0x05, 0xe0, 0x15, 0x85, 0x33, 0x2a, 0xc8, 0x93, 0x07, 0x00, 0x32, 0xe6, 0x85, 0x63, 0xe9, 0x97, 0x0a, 0x13, 0x05, 0x20, 0x03, 0xb9, 0x33, 0x2a, 0x8b, 0xe6, 0x85, 0x29, 0x45, 0x99, 0x33, 0x89, 0x47, 0xaa, 0x8a, 0x63, 0x73, 0xf5, 0x00, 0x89, 0x4a, 0xe6, 0x85, 0x13, 0x05, 0x50, 0x03, 0x15, 0x3b, 0x89, 0x47, 0x2a, 0x8c, 0x63, 0xf3, 0xfd, 0x00, 0x89, 0x4d, 0x89, 0x47, 0x5e, 0x83, 0x63, 0xf3, 0xfb, 0x00, 0x09, 0x43, 0xe6, 0x85, 0x13, 0x05, 0x60, 0x02, 0x1a, 0xca, 0x19, 0x3b, 0x2a, 0x8d, 0x6e, 0xc6, 0xde, 0x89, 0x52, 0x43, 0x13, 0x17, 0xfb, 0x00, 0x93, 0x97, 0x69, 0x00, 0xd9, 0x8f, 0xb3, 0xe7, 0x87, 0x01, 0x13, 0x97, 0xba, 0x00, 0xd9, 0x8f, 0x37, 0x07, 0x40, 0x00, 0xd9, 0x8f, 0x23, 0x24, 0xf9, 0x02, 0x13, 0x17, 0xb3, 0x00, 0x93, 0x97, 0x6b, 0x00, 0xd9, 0x8f, 0xb3, 0xe7, 0xa7, 0x01, 0x13, 0x97, 0xfd, 0x00, 0xd9, 0x8f, 0x13, 0x97, 0x4d, 0x01, 0xd9, 0x8f, 0x32, 0x47, 0x5e, 0x07, 0xd9, 0x8f, 0x23, 0x26, 0xf9, 0x02, 0x83, 0x27, 0x89, 0x03, 0x05, 0x47, 0x8b, 0xb7, 0xc7, 0x3c, 0x63, 0x84, 0xe7, 0x22, 0x89, 0x46, 0x63, 0x89, 0xd7, 0x22, 0xc2, 0x47, 0x6e, 0xd8, 0xb2, 0x07, 0xc1, 0x8f, 0x23, 0x28, 0xf9, 0x02, 0x89, 0x47, 0x3e, 0xde, 0x0d, 0xbb, 0x13, 0x05, 0x30, 0x02, 0x45, 0x31, 0x2a, 0x8b, 0xe6, 0x85, 0x19, 0x45, 0x61, 0x39, 0x89, 0x47, 0xaa, 0x8a, 0x63, 0x73, 0xf5, 0x00, 0x89, 0x4a, 0xe6, 0x85, 0x39, 0x45, 0x61, 0x31, 0xaa, 0x89, 0xe6, 0x85, 0x13, 0x05, 0x00, 0x03, 0xbd, 0x39, 0x89, 0x47, 0x2a, 0x8c, 0x63, 0xf3, 0xfd, 0x00, 0x89, 0x4d, 0x89, 0x47, 0x5e, 0x83, 0x63, 0xf3, 0xfb, 0x00, 0x09, 0x43, 0xe6, 0x85, 0x13, 0x05, 0x20, 0x02, 0x1a, 0xca, 0x85, 0x31, 0x2a, 0x8d, 0x56, 0xc6, 0xce, 0x8b, 0xa9, 0xb7, 0x89, 0x47, 0x63, 0x15, 0xfa, 0x06, 0xe6, 0x85, 0x13, 0x05, 0x20, 0x03, 0xa9, 0x31, 0xe6, 0x85, 0x2a, 0x8b, 0x29, 0x45, 0x89, 0x31, 0xe6, 0x85, 0xaa, 0x8a, 0x51, 0x45, 0x2d, 0x39, 0xe6, 0x85, 0xaa, 0x89, 0x13, 0x05, 0x10, 0x04, 0x05, 0x39, 0xe6, 0x85, 0x2a, 0x8c, 0x21, 0x45, 0x25, 0x31, 0xe6, 0x85, 0xaa, 0x8d, 0x3d, 0x45, 0x05, 0x31, 0xaa, 0x8b, 0xe6, 0x85, 0x13, 0x05, 0xd0, 0x02, 0x19, 0x39, 0x2a, 0x8d, 0x09, 0x65, 0xe6, 0x85, 0x13, 0x05, 0x85, 0xe7, 0x29, 0x31, 0x13, 0x54, 0x55, 0x00, 0x7d, 0x89, 0x33, 0x35, 0xa0, 0x00, 0x2a, 0x94, 0xe6, 0x85, 0x13, 0x05, 0x80, 0x14, 0xdd, 0x3e, 0x89, 0x47, 0x2a, 0xc8, 0x3e, 0xc6, 0x5e, 0x83, 0xc5, 0xb5, 0x99, 0x47, 0x63, 0x1d, 0xfa, 0x08, 0xe6, 0x85, 0x13, 0x05, 0x20, 0x03, 0xf9, 0x3e, 0x91, 0x47, 0x2a, 0x8b, 0x63, 0x73, 0xf5, 0x00, 0x11, 0x4b, 0xe6, 0x85, 0x29, 0x45, 0xf9, 0x36, 0xaa, 0x8a, 0x11, 0xe1, 0x85, 0x4a, 0xe6, 0x85, 0x61, 0x45, 0xc9, 0x36, 0x89, 0x47, 0xaa, 0x89, 0x63, 0x73, 0xf5, 0x00, 0x89, 0x49, 0xe6, 0x85, 0x13, 0x05, 0x60, 0x04, 0x45, 0x3e, 0x2a, 0x8c, 0xe6, 0x85, 0x21, 0x45, 0x65, 0x36, 0x2a, 0xc6, 0x19, 0xe1, 0x85, 0x47, 0x3e, 0xc6, 0x89, 0x47, 0xaa, 0x8d, 0x63, 0x73, 0xf5, 0x00, 0x89, 0x4d, 0xe6, 0x85, 0x3d, 0x45, 0x41, 0x3e, 0x89, 0x47, 0x2a, 0x83, 0x63, 0x73, 0xf5, 0x00, 0x09, 0x43, 0xe6, 0x85, 0x45, 0x45, 0x1a, 0xca, 0xbd, 0x3e, 0xe6, 0x85, 0xaa, 0x8b, 0x13, 0x05, 0xa0, 0x02, 0x95, 0x3e, 0x2a, 0x8d, 0x05, 0x65, 0xe6, 0x85, 0x13, 0x05, 0xc5, 0xf3, 0xa5, 0x36, 0x13, 0x54, 0x55, 0x00, 0x7d, 0x89, 0x33, 0x35, 0xa0, 0x00, 0x2a, 0x94, 0xe6, 0x85, 0x13, 0x05, 0x20, 0x0d, 0x91, 0x3e, 0x2a, 0xc8, 0x89, 0xb5, 0x9d, 0x47, 0x63, 0x1a, 0xfa, 0x08, 0xe6, 0x85, 0x13, 0x05, 0x20, 0x03, 0x89, 0x36, 0x91, 0x47, 0x2a, 0x8b, 0x63, 0x73, 0xf5, 0x00, 0x11, 0x4b, 0xe6, 0x85, 0x29, 0x45, 0x0d, 0x3e, 0xaa, 0x8a, 0x11, 0xe1, 0x85, 0x4a, 0xe6, 0x85, 0x61, 0x45, 0x1d, 0x36, 0x89, 0x47, 0xaa, 0x89, 0x63, 0x73, 0xf5, 0x00, 0x89, 0x49, 0xe6, 0x85, 0x13, 0x05, 0x60, 0x04, 0x11, 0x3e, 0x2a, 0x8c, 0xe6, 0x85, 0x21, 0x45, 0x31, 0x36, 0x89, 0x47, 0xaa, 0x8d, 0x63, 0x73, 0xf5, 0x00, 0x89, 0x4d, 0xe6, 0x85, 0x3d, 0x45, 0xf5, 0x3c, 0x89, 0x47, 0x2a, 0x83, 0x63, 0x73, 0xf5, 0x00, 0x09, 0x43, 0xe6, 0x85, 0x45, 0x45, 0x1a, 0xca, 0xed, 0x34, 0xe6, 0x85, 0xaa, 0x8b, 0x13, 0x05, 0xa0, 0x02, 0xc5, 0x34, 0x2a, 0x8d, 0x05, 0x65, 0xe6, 0x85, 0x13, 0x05, 0xc5, 0xf3, 0xd1, 0x3c, 0x13, 0x54, 0x55, 0x00, 0x7d, 0x89, 0x33, 0x35, 0xa0, 0x00, 0x2a, 0x94, 0xe6, 0x85, 0x13, 0x05, 0x20, 0x0d, 0xc1, 0x34, 0x2a, 0xc8, 0x6e, 0xc6, 0x75, 0xb3, 0x93, 0x07, 0x00, 0x08, 0x3e, 0xc8, 0xa9, 0x47, 0x13, 0x04, 0x20, 0x06, 0x3e, 0xc6, 0x21, 0x43, 0x8d, 0x4d, 0x99, 0x4b, 0x39, 0x4d, 0x41, 0x4b, 0x51, 0x4c, 0x99, 0x49, 0x8d, 0x4a, 0x79, 0xb3, 0x13, 0x07, 0xea, 0xff, 0x63, 0xe3, 0xe7, 0x00, 0x89, 0x47, 0x33, 0x54, 0xf4, 0x02, 0xd1, 0xbb, 0x93, 0x06, 0xea, 0xff, 0xe3, 0x6b, 0xd7, 0xfe, 0x91, 0x47, 0xc5, 0xbf, 0x9d, 0x47, 0xe3, 0x14, 0xfa, 0xb2, 0x93, 0x07, 0xc0, 0x03, 0xb3, 0xd7, 0xf4, 0x02, 0x3e, 0xd4, 0x93, 0x07, 0x00, 0x32, 0x63, 0xf2, 0x97, 0x1e, 0x11, 0x47, 0x0d, 0x46, 0x99, 0x47, 0xb1, 0x4f, 0x93, 0x06, 0x80, 0x0c, 0xb3, 0x86, 0xd4, 0x02, 0x93, 0x05, 0x80, 0x3e, 0x15, 0x03, 0x93, 0x88, 0x5d, 0x00, 0x52, 0x88, 0x52, 0x5f, 0x15, 0x45, 0x35, 0x4e, 0x0d, 0x4a, 0xb1, 0x4e, 0x85, 0x06, 0x36, 0xca, 0x93, 0x06, 0x40, 0x06, 0xb3, 0x86, 0xd4, 0x02, 0xb3, 0xd6, 0xb6, 0x02, 0x95, 0x45, 0x85, 0x06, 0x36, 0xcc, 0xad, 0x46, 0xb3, 0x86, 0xd4, 0x02, 0x85, 0x06, 0x36, 0xce, 0x93, 0x86, 0x14, 0x00, 0x36, 0xd0, 0xb3, 0x06, 0xe3, 0x00, 0x36, 0xd2, 0xb3, 0x86, 0xe8, 0x00, 0xb6, 0x8d, 0x95, 0x48, 0x15, 0x43, 0xb5, 0xaa, 0xf9, 0x47, 0xb3, 0xd7, 0xf4, 0x02, 0x3e, 0xd4, 0x93, 0x07, 0x90, 0x19, 0x63, 0xe3, 0x97, 0x06, 0x85, 0x66, 0x0d, 0x48, 0x85, 0x47, 0x93, 0x86, 0x36, 0xa6, 0x13, 0x07, 0x00, 0x19, 0x33, 0x87, 0xe4, 0x02, 0x93, 0x05, 0x80, 0x3e, 0xb2, 0x52, 0x15, 0x45, 0x91, 0x48, 0x11, 0x4e, 0xb1, 0x4e, 0x05, 0x46, 0x01, 0x4f, 0x81, 0x4f, 0x05, 0x07, 0x3a, 0xca, 0x13, 0x07, 0x40, 0x1f, 0x33, 0x87, 0xe4, 0x02, 0x33, 0x57, 0xb7, 0x02, 0x81, 0x45, 0x05, 0x07, 0x3a, 0xcc, 0x13, 0x07, 0x80, 0x0c, 0x33, 0x87, 0xe4, 0x02, 0x05, 0x07, 0x3a, 0xce, 0x13, 0x87, 0x14, 0x00, 0x3a, 0xd0, 0x13, 0x07, 0x53, 0x00, 0x3a, 0xd2, 0x13, 0x87, 0x5d, 0x00, 0xba, 0x8d, 0x52, 0x83, 0x0d, 0x47, 0x0d, 0x4a, 0x9d, 0xbc, 0x85, 0x66, 0x89, 0x47, 0x11, 0x48, 0x93, 0x86, 0x36, 0xe7, 0x79, 0xbf, 0xf9, 0x47, 0xb3, 0xd7, 0xf4, 0x02, 0x3e, 0xd4, 0x93, 0x07, 0x00, 0x32, 0x63, 0xf0, 0x97, 0x08, 0x89, 0x66, 0x0d, 0x46, 0x1d, 0x48, 0x95, 0x47, 0x93, 0x0f, 0x00, 0x02, 0x93, 0x86, 0x46, 0xe1, 0x13, 0x07, 0x40, 0x1f, 0x33, 0x87, 0xe4, 0x02, 0x93, 0x05, 0x80, 0x3e, 0x09, 0x03, 0x93, 0x88, 0x2d, 0x00, 0x05, 0x07, 0x3a, 0xca, 0x13, 0x07, 0x80, 0x16, 0x33, 0x87, 0xe4, 0x02, 0x33, 0x57, 0xb7, 0x02, 0x05, 0x07, 0x3a, 0xcc, 0x13, 0x07, 0x80, 0x0c, 0x33, 0x87, 0xe4, 0x02, 0x05, 0x07, 0x3a, 0xce, 0x13, 0x87, 0x14, 0x00, 0x3a, 0xd0, 0x33, 0x07, 0xf3, 0x00, 0x3a, 0xd2, 0x33, 0x87, 0xf8, 0x00, 0xba, 0x8d, 0x62, 0x57, 0x8b, 0x35, 0x27, 0x0c, 0x05, 0x47, 0x63, 0x82, 0xe5, 0x0a, 0x13, 0x07, 0x00, 0x39, 0x63, 0x7e, 0x97, 0x08, 0xb2, 0x52, 0x3e, 0x87, 0x15, 0x45, 0x91, 0x48, 0x19, 0x4e, 0xb1, 0x4e, 0x11, 0x43, 0x81, 0x45, 0x01, 0x4f, 0xf9, 0xba, 0x89, 0x66, 0x19, 0x48, 0x09, 0x46, 0x91, 0x47, 0xe1, 0x4f, 0x93, 0x86, 0x06, 0xc7, 0x59, 0xb7, 0x93, 0x07, 0xc0, 0x03, 0xb3, 0xd7, 0xf4, 0x02, 0x13, 0x07, 0x80, 0x3e, 0x52, 0x5f, 0x99, 0x4f, 0x15, 0x45, 0x95, 0x48, 0x29, 0x4e, 0x09, 0x4a, 0x95, 0x4e, 0x8d, 0x45, 0x11, 0x48, 0x05, 0x46, 0x3e, 0xd4, 0x93, 0x07, 0x80, 0x0c, 0xb3, 0x87, 0xf4, 0x02, 0x85, 0x07, 0x3e, 0xca, 0x93, 0x07, 0x40, 0x06, 0xb3, 0x87, 0xf4, 0x02, 0xb3, 0xd7, 0xe7, 0x02, 0x09, 0x47, 0x85, 0x07, 0x3e, 0xcc, 0xad, 0x47, 0xb3, 0x87, 0xf4, 0x02, 0x85, 0x07, 0x3e, 0xce, 0x93, 0x87, 0x14, 0x00, 0x3e, 0xd0, 0x93, 0x07, 0x53, 0x00, 0x3e, 0xd2, 0x93, 0x87, 0x5d, 0x00, 0xbe, 0x8d, 0x15, 0x43, 0x8d, 0x47, 0x93, 0x02, 0x30, 0x0c, 0x81, 0x46, 0x9d, 0xb2, 0x0d, 0x47, 0x19, 0x4a, 0x09, 0x46, 0x95, 0x47, 0xa9, 0x4f, 0x39, 0xbd, 0xb2, 0x52, 0x3e, 0x87, 0x15, 0x45, 0x91, 0x48, 0x15, 0x4e, 0xa5, 0xb7, 0xb7, 0x76, 0x00, 0xf0, 0x95, 0xb4, 0xb7, 0x07, 0x01, 0x4a, 0x03, 0xa7, 0x87, 0x40, 0x05, 0x47, 0x23, 0xa4, 0xe7, 0x40, 0x37, 0x07, 0x01, 0x4a, 0x83, 0x27, 0x87, 0x40, 0x93, 0x06, 0x87, 0x40, 0x89, 0x8b, 0xfd, 0xdb, 0x98, 0x42, 0xbd, 0x67, 0x93, 0x87, 0x47, 0x42, 0x0b, 0x37, 0x47, 0x5c, 0x13, 0x05, 0x80, 0x02, 0x63, 0xe3, 0xe7, 0x00, 0x61, 0x45, 0x82, 0x80, 0x9c, 0x41, 0x01, 0x11, 0x06, 0xce, 0x8b, 0xb7, 0x17, 0x08, 0x95, 0xe7, 0x1c, 0x42, 0x37, 0x07, 0xe8, 0xff, 0x7d, 0x17, 0xf9, 0x8f, 0x1c, 0xc2, 0x7c, 0x4d, 0x11, 0x47, 0x8b, 0xb7, 0x47, 0x59, 0xfd, 0x17, 0x63, 0x60, 0xf7, 0x08, 0x17, 0x17, 0x00, 0x00, 0x13, 0x07, 0x87, 0xf7, 0x8b, 0x47, 0xf7, 0x44, 0xba, 0x97, 0x82, 0x87, 0x37, 0x07, 0xe8, 0xff, 0x85, 0x48, 0x13, 0x08, 0xf7, 0xff, 0x63, 0x99, 0x17, 0x01, 0x1c, 0x42, 0x37, 0x07, 0x08, 0x00, 0xb3, 0xf7, 0x07, 0x01, 0xd9, 0x8f, 0xd9, 0xb7, 0x18, 0x42, 0xce, 0x07, 0x33, 0x77, 0x07, 0x01, 0xd5, 0xbf, 0xb7, 0xd7, 0x06, 0xc9, 0x93, 0x87, 0xc7, 0xcc, 0x1c, 0xc2, 0xb7, 0x07, 0x00, 0x80, 0x9c, 0xc2, 0x51, 0x45, 0x2e, 0xc6, 0xef, 0xe0, 0x6f, 0xb7, 0xb2, 0x45, 0xf2, 0x40, 0x37, 0x07, 0x00, 0x01, 0x9c, 0x41, 0x01, 0x45, 0xd9, 0x8f, 0x9c, 0xc1, 0x05, 0x61, 0x82, 0x80, 0xb7, 0xa7, 0x06, 0xd2, 0x93, 0x87, 0x97, 0x99, 0xd1, 0xbf, 0xb7, 0x67, 0x06, 0xdb, 0x93, 0x87, 0x67, 0x66, 0xe9, 0xb7, 0xb7, 0x07, 0x06, 0xeb, 0xd1, 0xb7, 0xb7, 0x37, 0x06, 0xe4, 0x93, 0x87, 0x37, 0x33, 0x6d, 0xbf, 0xfc, 0x4d, 0x01, 0x11, 0x06, 0xce, 0x22, 0xcc, 0x26, 0xca, 0x4a, 0xc8, 0x4e, 0xc6, 0x8b, 0xb7, 0x67, 0x18, 0x63, 0x9d, 0xa7, 0x0a, 0x80, 0x41, 0x19, 0x37, 0x06, 0x04, 0x33, 0x54, 0xa4, 0x02, 0xad, 0x47, 0x2a, 0x89, 0x85, 0x44, 0x63, 0xe4, 0x87, 0x00, 0x0a, 0x04, 0x89, 0x44, 0x37, 0x07, 0x01, 0x4a, 0x13, 0x07, 0x07, 0x08, 0x14, 0x43, 0x37, 0x06, 0xf8, 0xf7, 0x93, 0x85, 0xf4, 0xff, 0x13, 0x06, 0x86, 0x0f, 0xf1, 0x8e, 0x93, 0x97, 0x15, 0x00, 0xd5, 0x8f, 0x93, 0x06, 0xf4, 0xff, 0xa2, 0x06, 0xcd, 0x8f, 0xd5, 0x8f, 0xb7, 0x06, 0x00, 0xc0, 0xd5, 0x8f, 0x1c, 0xc3, 0x1c, 0x43, 0xb7, 0x06, 0x00, 0xe0, 0xfd, 0x16, 0xf5, 0x8f, 0x1c, 0xc3, 0x1c, 0x43, 0xb7, 0x06, 0x00, 0x20, 0xd5, 0x8f, 0x1c, 0xc3, 0xb7, 0x06, 0x00, 0x10, 0x37, 0x07, 0x01, 0x4a, 0x83, 0x27, 0x07, 0x08, 0x93, 0x09, 0x07, 0x08, 0xf5, 0x8f, 0xfd, 0xdb, 0x51, 0x45, 0xef, 0xe0, 0x0f, 0xab, 0x33, 0x05, 0x24, 0x03, 0x83, 0xa7, 0x09, 0x00, 0x37, 0x07, 0x00, 0x08, 0xb7, 0x16, 0x00, 0x42, 0xd9, 0x8f, 0x23, 0xa0, 0xf9, 0x00, 0xdc, 0x42, 0x37, 0x07, 0xfd, 0xf8, 0x01, 0x17, 0xf2, 0x40, 0x33, 0x55, 0x95, 0x02, 0x62, 0x44, 0xf9, 0x8f, 0x37, 0x07, 0x00, 0x81, 0xd9, 0x8f, 0xdc, 0xc2, 0x42, 0x49, 0xb2, 0x49, 0x33, 0x55, 0x95, 0x02, 0xd2, 0x44, 0x05, 0x61, 0x82, 0x80, 0xe0, 0x45, 0xa9, 0xb7, 0x01, 0x11, 0x26, 0xca, 0xb7, 0x14, 0x00, 0x42, 0x22, 0xcc, 0x13, 0x84, 0x04, 0x08, 0x58, 0x48, 0xfd, 0x77, 0xfd, 0x17, 0x06, 0xce, 0x4a, 0xc8, 0x4e, 0xc6, 0x52, 0xc4, 0x7d, 0x8f, 0x58, 0xc8, 0x18, 0x48, 0x37, 0x0a, 0x00, 0x80, 0xb7, 0x09, 0x00, 0x08, 0x5d, 0x9b, 0x18, 0xc8, 0x58, 0x40, 0x2a, 0x89, 0x29, 0x45, 0xf9, 0x8f, 0x5c, 0xc0, 0x1c, 0x40, 0x13, 0x47, 0xfa, 0xff, 0xdd, 0x9b, 0x1c, 0xc0, 0xdc, 0x40, 0xf9, 0x8f, 0xdc, 0xc0, 0xd4, 0x40, 0xb3, 0xe6, 0x36, 0x01, 0xd4, 0xc0, 0xef, 0xe0, 0xaf, 0xa1, 0xca, 0x85, 0x01, 0x45, 0xe1, 0x3d, 0x05, 0x81, 0x23, 0x20, 0xa9, 0x00, 0x13, 0x05, 0x40, 0x06, 0xef, 0xe0, 0x6f, 0xa0, 0xef, 0xf0, 0x8f, 0xc2, 0x14, 0x48, 0x85, 0x67, 0x15, 0x45, 0x93, 0xe6, 0x86, 0x00, 0x14, 0xc8, 0x50, 0x48, 0x5d, 0x8e, 0x50, 0xc8, 0x10, 0x40, 0x13, 0x66, 0x86, 0x00, 0x10, 0xc0, 0x54, 0x40, 0xdd, 0x8e, 0x54, 0xc0, 0xd8, 0x40, 0x33, 0x67, 0x47, 0x01, 0xd8, 0xc0, 0xdc, 0x40, 0xb3, 0xe7, 0x37, 0x01, 0xdc, 0xc0, 0xef, 0xe0, 0xef, 0x9c, 0xb7, 0x37, 0x10, 0x43, 0x21, 0x67, 0x29, 0x45, 0xd8, 0xc7, 0xef, 0xe0, 0x0f, 0x9c, 0xf2, 0x40, 0x62, 0x44, 0xd2, 0x44, 0x42, 0x49, 0xb2, 0x49, 0x22, 0x4a, 0x01, 0x45, 0x05, 0x61, 0x82, 0x80, 0x37, 0x27, 0x10, 0x43, 0x1c, 0x47, 0xf1, 0x76, 0x93, 0x86, 0xf6, 0x0f, 0x41, 0x11, 0xf5, 0x8f, 0x89, 0x66, 0xd5, 0x8f, 0x22, 0xc6, 0x26, 0xc4, 0x4a, 0xc2, 0x1c, 0xc7, 0x1c, 0x43, 0x50, 0x41, 0x54, 0x49, 0xb7, 0x15, 0x00, 0xff, 0xfd, 0x15, 0xfd, 0x8d, 0x37, 0x07, 0x07, 0x00, 0x93, 0x17, 0x06, 0x01, 0x93, 0xf8, 0x16, 0x00, 0xf9, 0x8f, 0x13, 0xb7, 0x18, 0x00, 0xcd, 0x8f, 0x32, 0x07, 0x5d, 0x8f, 0x69, 0x16, 0x85, 0x47, 0x63, 0xe1, 0xc7, 0x0a, 0xb7, 0x07, 0x48, 0x00, 0xd9, 0x8f, 0x37, 0x27, 0x10, 0x43, 0x13, 0xd8, 0xc6, 0x00, 0x1c, 0xc3, 0x93, 0xf6, 0x06, 0x10, 0x05, 0x46, 0x91, 0xc6, 0x93, 0x77, 0xf8, 0x00, 0x63, 0x93, 0xc7, 0x00, 0x09, 0x46, 0x03, 0x2e, 0x05, 0x01, 0x85, 0x65, 0x93, 0x8f, 0x05, 0x90, 0x93, 0x83, 0x05, 0xa0, 0x13, 0x78, 0x38, 0x00, 0x12, 0x06, 0x81, 0x46, 0x37, 0x23, 0x10, 0x43, 0x7d, 0x7f, 0x91, 0x4e, 0xa1, 0x42, 0x05, 0x44, 0x89, 0x44, 0x93, 0x85, 0x05, 0x80, 0x03, 0x27, 0x03, 0x00, 0x93, 0x87, 0xc6, 0x00, 0xb3, 0x57, 0xfe, 0x00, 0x33, 0x77, 0xe7, 0x01, 0x8a, 0x07, 0x91, 0x8b, 0x33, 0x67, 0x07, 0x01, 0x5d, 0x8f, 0x93, 0x87, 0x46, 0x00, 0xb3, 0x57, 0xfe, 0x00, 0xfd, 0x17, 0x92, 0x07, 0x93, 0xf7, 0xf7, 0x0f, 0xd9, 0x8f, 0x33, 0x57, 0xde, 0x00, 0x3d, 0x8b, 0x33, 0xe9, 0xf7, 0x01, 0x63, 0x0c, 0xd7, 0x03, 0x63, 0xe6, 0xee, 0x02, 0x13, 0xe9, 0x07, 0x70, 0x63, 0x06, 0x87, 0x02, 0x33, 0xe9, 0xb7, 0x00, 0x63, 0x02, 0x97, 0x02, 0x13, 0xe9, 0x07, 0x60, 0x31, 0xa8, 0x7c, 0x4d, 0x37, 0x06, 0x08, 0x00, 0xba, 0x07, 0xf1, 0x8f, 0xd9, 0x8f, 0x37, 0x07, 0x40, 0x00, 0x99, 0xbf, 0x33, 0xe9, 0x77, 0x00, 0xe3, 0x12, 0x57, 0xfe, 0x0b, 0x59, 0x43, 0x58, 0xc1, 0x06, 0xe3, 0x16, 0xd6, 0xf8, 0xb7, 0x27, 0x10, 0x43, 0x9c, 0x43, 0x13, 0x07, 0x30, 0x30, 0x85, 0x8b, 0x99, 0xe3, 0x13, 0x07, 0x10, 0x20, 0xb7, 0x37, 0x10, 0x43, 0x23, 0xa0, 0xe7, 0x12, 0x63, 0x84, 0x08, 0x00, 0x23, 0xa2, 0x07, 0x3c, 0x1c, 0x5d, 0x95, 0xc3, 0xb7, 0x26, 0x10, 0x43, 0x90, 0x42, 0x13, 0x97, 0x97, 0x01, 0xb7, 0x05, 0x00, 0x06, 0x6d, 0x8f, 0x51, 0x8f, 0x98, 0xc2, 0xd8, 0x42, 0xaa, 0x07, 0x37, 0xf6, 0x1f, 0x00, 0xf1, 0x8f, 0xd9, 0x8f, 0xdc, 0xc2, 0x32, 0x44, 0xa2, 0x44, 0x12, 0x49, 0x41, 0x01, 0x82, 0x80, 0x01, 0x11, 0x26, 0xca, 0x4a, 0xc8, 0xe4, 0x4d, 0x2e, 0x89, 0xb7, 0x25, 0x10, 0x43, 0xd8, 0x45, 0x03, 0x26, 0x09, 0x00, 0xfd, 0x76, 0xb3, 0x77, 0xd7, 0x00, 0x13, 0x57, 0x16, 0x00, 0x7d, 0x17, 0x5d, 0x8f, 0x06, 0xce, 0x22, 0xcc, 0x4e, 0xc6, 0x52, 0xc4, 0xd8, 0xc5, 0x37, 0x37, 0x10, 0x43, 0x83, 0x27, 0x87, 0x10, 0x93, 0x86, 0xf6, 0x0f, 0x8b, 0xb4, 0x24, 0x0c, 0xf5, 0x8f, 0x93, 0xe7, 0x07, 0x30, 0x23, 0x24, 0xf7, 0x10, 0x83, 0x27, 0xc9, 0x00, 0x03, 0x27, 0x47, 0x34, 0x93, 0x06, 0x00, 0x2a, 0x93, 0xc7, 0xf7, 0xff, 0x96, 0x07, 0x13, 0x77, 0xf7, 0xfc, 0x93, 0xf7, 0x07, 0x02, 0x5d, 0x8f, 0x63, 0xe6, 0xc6, 0x06, 0xc5, 0x76, 0xc5, 0x16, 0x75, 0x8f, 0xb7, 0x36, 0x10, 0x43, 0x23, 0xa2, 0xe6, 0x34, 0x03, 0xa7, 0x46, 0x3c, 0x13, 0x77, 0xf7, 0xfc, 0xd9, 0x8f, 0x13, 0x07, 0x00, 0x2a, 0x63, 0x6d, 0xc7, 0x04, 0x45, 0x77, 0x45, 0x17, 0xf9, 0x8f, 0x37, 0x34, 0x10, 0x43, 0x23, 0x22, 0xf4, 0x3c, 0x83, 0x27, 0x84, 0x20, 0x4a, 0x85, 0x93, 0xe7, 0x27, 0x00, 0x23, 0x24, 0xf4, 0x20, 0xef, 0xf0, 0x6f, 0x9e, 0x85, 0x47, 0x63, 0x81, 0xf4, 0x04, 0x89, 0x47, 0x63, 0x84, 0xf4, 0x22, 0x13, 0x04, 0x04, 0x10, 0x1c, 0x44, 0x29, 0x45, 0x93, 0xf7, 0xf7, 0xfb, 0x1c, 0xc4, 0xef, 0xd0, 0xdf, 0xf8, 0x1c, 0x44, 0x93, 0xe7, 0x07, 0x0c, 0x1c, 0xc4, 0x1d, 0xa8, 0xc5, 0x76, 0x93, 0x86, 0x16, 0x9f, 0x75, 0x8f, 0x13, 0x67, 0x07, 0x40, 0x49, 0xbf, 0x45, 0x77, 0x13, 0x07, 0x17, 0x9f, 0xf9, 0x8f, 0x93, 0xe7, 0x07, 0x40, 0x55, 0xb7, 0x13, 0x07, 0x04, 0x10, 0x1c, 0x47, 0x13, 0x04, 0x04, 0x08, 0x93, 0xf7, 0xf7, 0xf3, 0x1c, 0xc7, 0x5c, 0x5c, 0x93, 0xf7, 0x87, 0xef, 0x5c, 0xdc, 0x83, 0x27, 0x49, 0x00, 0x05, 0x47, 0xe9, 0x17, 0x63, 0x62, 0xf7, 0x02, 0xb7, 0x36, 0x10, 0x43, 0x83, 0xa7, 0xc6, 0x11, 0x63, 0x90, 0xe4, 0x20, 0x37, 0x07, 0x00, 0xf8, 0x13, 0x07, 0xf7, 0xf3, 0xf9, 0x8f, 0x37, 0x07, 0x00, 0x80, 0xd9, 0x8f, 0x23, 0xae, 0xf6, 0x10, 0x03, 0x27, 0x49, 0x01, 0x85, 0x67, 0xb7, 0x36, 0x10, 0x43, 0xf9, 0x8f, 0x63, 0x85, 0x07, 0x1e, 0x83, 0xa7, 0x06, 0x0c, 0x37, 0x07, 0x00, 0xf0, 0xf9, 0x8f, 0x37, 0x07, 0x00, 0x03, 0x05, 0x07, 0xd9, 0x8f, 0x23, 0xa0, 0xf6, 0x0c, 0xb7, 0x07, 0x00, 0x4a, 0x83, 0xa7, 0x07, 0x1c, 0x05, 0x47, 0xbd, 0x8b, 0x63, 0x9c, 0xe7, 0x00, 0x37, 0x17, 0x00, 0x4a, 0x83, 0x27, 0x87, 0x83, 0x29, 0x45, 0xf5, 0x9b, 0x23, 0x2c, 0xf7, 0x82, 0xef, 0xd0, 0x9f, 0xed, 0x37, 0x37, 0x10, 0x43, 0x83, 0x27, 0x07, 0x14, 0xb7, 0x06, 0x00, 0xfc, 0x37, 0x06, 0x00, 0x01, 0xfd, 0x8e, 0x83, 0x27, 0x89, 0x00, 0x7d, 0x16, 0xf1, 0x8f, 0xd5, 0x8f, 0xb7, 0x06, 0x00, 0x02, 0xd5, 0x8f, 0x23, 0x20, 0xf7, 0x14, 0x85, 0x46, 0x63, 0x9c, 0xd4, 0x18, 0x93, 0x07, 0x20, 0x05, 0x1c, 0xc3, 0x93, 0x07, 0x30, 0x05, 0x1c, 0xc3, 0x1c, 0x4b, 0x85, 0x8b, 0xf5, 0xdf, 0x29, 0x45, 0xef, 0xd0, 0x5f, 0xe9, 0x83, 0x26, 0x49, 0x00, 0x0d, 0x47, 0x93, 0x07, 0x00, 0x52, 0x63, 0x94, 0xe6, 0x00, 0x93, 0x07, 0x00, 0x5a, 0x37, 0x37, 0x10, 0x43, 0x1c, 0xc3, 0x93, 0xe7, 0x17, 0x00, 0x1c, 0xc3, 0x29, 0x45, 0xef, 0xd0, 0x1f, 0xe7, 0x37, 0x39, 0x10, 0x43, 0x03, 0x24, 0x09, 0x01, 0x05, 0x88, 0x6d, 0xdc, 0xb7, 0x07, 0x00, 0x4a, 0x83, 0xa7, 0x07, 0x1c, 0x05, 0x47, 0xbd, 0x8b, 0x63, 0x95, 0xe7, 0x0a, 0x93, 0x06, 0x09, 0x10, 0xdc, 0x46, 0x37, 0x07, 0x00, 0xfa, 0x7d, 0x17, 0xf9, 0x8f, 0x37, 0x07, 0x00, 0x04, 0xd9, 0x8f, 0xdc, 0xc6, 0x29, 0x45, 0xef, 0xd0, 0x9f, 0xe3, 0x83, 0x27, 0x49, 0x00, 0x0d, 0x47, 0x93, 0xe7, 0x17, 0x00, 0x23, 0x22, 0xf9, 0x00, 0x37, 0x39, 0x10, 0x43, 0x83, 0x27, 0x89, 0x01, 0x9d, 0x8b, 0xe3, 0x9d, 0xe7, 0xfe, 0x37, 0x17, 0x00, 0x4a, 0x83, 0x27, 0x87, 0x83, 0x29, 0x45, 0x85, 0x49, 0xf9, 0x9b, 0x23, 0x2c, 0xf7, 0x82, 0xef, 0xd0, 0x7f, 0xe0, 0x83, 0x27, 0x49, 0x00, 0xf9, 0x9b, 0x23, 0x22, 0xf9, 0x00, 0x37, 0x39, 0x10, 0x43, 0x83, 0x27, 0x89, 0x01, 0x9d, 0x8b, 0xe3, 0x9d, 0x37, 0xff, 0x3d, 0x45, 0xef, 0xd0, 0x9f, 0xde, 0x63, 0x9d, 0x34, 0x03, 0x13, 0x07, 0x09, 0x10, 0x1c, 0x47, 0xb7, 0x06, 0x00, 0xfa, 0xfd, 0x16, 0x93, 0xf7, 0xf7, 0xf3, 0x1c, 0xc7, 0x5c, 0x47, 0x05, 0x45, 0xf5, 0x8f, 0xb7, 0x06, 0x00, 0x02, 0xd5, 0x8f, 0x5c, 0xc7, 0xef, 0xd0, 0x1f, 0xdc, 0x93, 0x07, 0x10, 0x40, 0x23, 0x20, 0xf9, 0x00, 0x37, 0x37, 0x10, 0x43, 0x1c, 0x4b, 0x85, 0x8b, 0xf5, 0xdf, 0xb7, 0x37, 0x10, 0x43, 0x9c, 0x4b, 0x0b, 0xb7, 0x47, 0x6d, 0x4d, 0xcb, 0x37, 0x04, 0x10, 0x00, 0x7d, 0x8c, 0x4d, 0xc4, 0x17, 0x15, 0x00, 0x00, 0x13, 0x05, 0x65, 0xeb, 0xef, 0xe0, 0xcf, 0xe5, 0x01, 0x44, 0xf2, 0x40, 0x22, 0x85, 0x62, 0x44, 0xd2, 0x44, 0x42, 0x49, 0xb2, 0x49, 0x22, 0x4a, 0x05, 0x61, 0x82, 0x80, 0x13, 0x07, 0x04, 0x10, 0x1c, 0x47, 0x93, 0xf7, 0xf7, 0xf3, 0x93, 0xe7, 0x07, 0x08, 0x1c, 0xc7, 0x3c, 0x50, 0x13, 0x04, 0x04, 0x08, 0x54, 0x5c, 0x8b, 0xb7, 0x07, 0x51, 0xf9, 0x17, 0x93, 0xf6, 0x86, 0xef, 0xd5, 0x8f, 0x93, 0xe7, 0x07, 0x10, 0x5c, 0xdc, 0x5c, 0x4f, 0xb7, 0x06, 0x00, 0x80, 0x93, 0xc6, 0xf6, 0xff, 0xf5, 0x8f, 0xb7, 0x06, 0x00, 0x08, 0xd5, 0x8f, 0x5c, 0xcf, 0xfd, 0xb3, 0x37, 0x07, 0x00, 0x89, 0x7d, 0x17, 0xf9, 0x8f, 0x37, 0x07, 0x00, 0x22, 0x19, 0xb5, 0x83, 0xa7, 0x06, 0x0c, 0x37, 0x07, 0x00, 0xf0, 0xf9, 0x8f, 0x37, 0x37, 0x00, 0x01, 0x13, 0x07, 0x77, 0x08, 0x21, 0xbd, 0xb7, 0x07, 0x00, 0x4a, 0x03, 0xa7, 0x07, 0x1c, 0x93, 0x07, 0x20, 0x06, 0x3d, 0x8b, 0xe3, 0x04, 0xd7, 0xe8, 0x83, 0x26, 0x49, 0x00, 0x0d, 0x47, 0x93, 0x07, 0x20, 0x17, 0xe3, 0x9d, 0xe6, 0xe6, 0x93, 0x07, 0x20, 0x1f, 0x8d, 0xbd, 0x37, 0x39, 0x10, 0x43, 0x83, 0x27, 0x89, 0x01, 0x85, 0x8b, 0xed, 0xdf, 0x83, 0x27, 0xc9, 0x08, 0x37, 0x0a, 0x00, 0x80, 0x29, 0x45, 0xb3, 0xe7, 0x47, 0x01, 0x23, 0x26, 0xf9, 0x08, 0xef, 0xd0, 0x1f, 0xcd, 0x83, 0x27, 0xc9, 0x08, 0x13, 0x47, 0xfa, 0xff, 0x29, 0x45, 0xf9, 0x8f, 0x23, 0x26, 0xf9, 0x08, 0xef, 0xd0, 0xdf, 0xcb, 0x37, 0x27, 0x10, 0x43, 0x5c, 0x4b, 0x29, 0x45, 0xb3, 0xe7, 0x47, 0x01, 0x5c, 0xcb, 0xef, 0xd0, 0xbf, 0xca, 0x93, 0x06, 0x09, 0x10, 0xdc, 0x46, 0x37, 0x07, 0x00, 0xfa, 0x7d, 0x17, 0xf9, 0x8f, 0xdc, 0xc6, 0x85, 0x47, 0xe3, 0x96, 0xf4, 0xf0, 0x83, 0x27, 0xc9, 0x11, 0x93, 0xf7, 0xf7, 0xf3, 0x93, 0xe7, 0x07, 0x04, 0x23, 0x2e, 0xf9, 0x10, 0xe5, 0xbd, 0x37, 0x27, 0x10, 0x43, 0x1c, 0x43, 0x8b, 0xb6, 0x47, 0x1c, 0x0b, 0xb5, 0x87, 0x2c, 0x36, 0x95, 0x49, 0x15, 0x8b, 0xb6, 0x27, 0x0c, 0x36, 0x95, 0x8d, 0x8b, 0x85, 0x46, 0x33, 0x95, 0xa6, 0x00, 0x8d, 0xc3, 0x58, 0x43, 0xaa, 0x87, 0x13, 0x76, 0x37, 0x00, 0x01, 0xce, 0x8b, 0x37, 0x87, 0x2c, 0x0b, 0x36, 0x47, 0x1c, 0xb2, 0x97, 0xc9, 0x17, 0x0b, 0x37, 0x27, 0x0c, 0xba, 0x97, 0xb3, 0x97, 0xf6, 0x00, 0x3e, 0x95, 0x82, 0x80, 0xb7, 0x37, 0x10, 0x43, 0x98, 0x4b, 0x41, 0x11, 0xb7, 0x06, 0x40, 0x00, 0x06, 0xc6, 0x22, 0xc4, 0x75, 0x8f, 0x05, 0xcb, 0x83, 0xa5, 0x87, 0x34, 0x03, 0xa4, 0x87, 0x3c, 0x89, 0x47, 0x8b, 0xb5, 0x85, 0x65, 0x0b, 0x34, 0x84, 0x65, 0x63, 0x96, 0xf5, 0x04, 0x5c, 0x49, 0x45, 0x77, 0x41, 0x17, 0xf9, 0x8f, 0x63, 0x18, 0xb4, 0x02, 0x5c, 0xc9, 0x17, 0x15, 0x00, 0x00, 0x13, 0x05, 0xc5, 0xd7, 0x11, 0xa8, 0x5c, 0x49, 0x05, 0x67, 0xc1, 0x9b, 0xd9, 0x8f, 0x5c, 0xc9, 0x17, 0x15, 0x00, 0x00, 0x13, 0x05, 0x45, 0xd4, 0xef, 0xe0, 0x2f, 0xcb, 0x05, 0x45, 0xb2, 0x40, 0x22, 0x44, 0x41, 0x01, 0x82, 0x80, 0x93, 0xe7, 0x17, 0x00, 0x5c, 0xc9, 0x17, 0x15, 0x00, 0x00, 0x13, 0x05, 0x45, 0xd7, 0xd5, 0xb7, 0x81, 0xed, 0x5c, 0x49, 0x05, 0x67, 0x05, 0x07, 0xc1, 0x9b, 0xd9, 0x8f, 0x5c, 0xc9, 0x17, 0x15, 0x00, 0x00, 0x13, 0x05, 0x45, 0xd8, 0xf1, 0xb7, 0x7c, 0x4d, 0x37, 0x05, 0x00, 0x20, 0x7d, 0x8d, 0x61, 0xd5, 0x17, 0x15, 0x00, 0x00, 0x13, 0x05, 0x85, 0xd9, 0xef, 0xe0, 0xaf, 0xc6, 0xa2, 0x85, 0x17, 0x15, 0x00, 0x00, 0x13, 0x05, 0xa5, 0xd9, 0xef, 0xe0, 0xcf, 0xc5, 0x01, 0x45, 0x6d, 0xb7, 0x01, 0x11, 0x22, 0xcc, 0x05, 0x81, 0x37, 0x44, 0x23, 0x01, 0xb7, 0xc6, 0xdc, 0xfe, 0x06, 0xce, 0x26, 0xca, 0x52, 0x05, 0x37, 0x07, 0x00, 0x80, 0x81, 0x47, 0x13, 0x04, 0x74, 0x56, 0x93, 0x86, 0x86, 0xa9, 0x63, 0x93, 0xb7, 0x02, 0x37, 0x77, 0xb9, 0xfd, 0xa2, 0x97, 0xb7, 0x04, 0x00, 0x80, 0x13, 0x07, 0x17, 0x53, 0x63, 0x94, 0x87, 0x02, 0x17, 0x15, 0x00, 0x00, 0x13, 0x05, 0x25, 0xd9, 0xef, 0xe0, 0x4f, 0xc1, 0x01, 0x45, 0xb1, 0xa0, 0x33, 0x86, 0x87, 0x00, 0x10, 0xc3, 0x33, 0x86, 0xd7, 0x00, 0x0b, 0x56, 0xe5, 0x40, 0x85, 0x07, 0x11, 0x07, 0xe1, 0xb7, 0x8b, 0x45, 0x95, 0x40, 0x33, 0x06, 0xe4, 0x00, 0xb3, 0x06, 0x95, 0x00, 0x63, 0x0a, 0xb6, 0x02, 0x17, 0x15, 0x00, 0x00, 0x13, 0x05, 0xe5, 0xd2, 0x2e, 0xc6, 0x32, 0xc4, 0x36, 0xc2, 0xef, 0xe0, 0xaf, 0xbd, 0x92, 0x46, 0x22, 0x46, 0xb2, 0x45, 0x17, 0x15, 0x00, 0x00, 0x13, 0x05, 0xe5, 0xd2, 0xef, 0xe0, 0x8f, 0xbc, 0x05, 0x45, 0xf2, 0x40, 0x62, 0x44, 0xd2, 0x44, 0x05, 0x61, 0x82, 0x80, 0xa6, 0x86, 0x8b, 0xc5, 0x46, 0x58, 0x63, 0x8d, 0x85, 0x00, 0x17, 0x15, 0x00, 0x00, 0x13, 0x05, 0x45, 0xcf, 0x2e, 0xc2, 0xef, 0xe0, 0x4f, 0xba, 0x92, 0x45, 0xa6, 0x86, 0x22, 0x86, 0xe9, 0xb7, 0x05, 0x04, 0xb6, 0x84, 0x95, 0xbf, 0x74, 0x4d, 0xb7, 0x07, 0x02, 0x00, 0xf5, 0x8f, 0x9d, 0xeb, 0x37, 0x37, 0x10, 0x43, 0x83, 0x27, 0x07, 0x11, 0x37, 0x86, 0x80, 0x80, 0x13, 0x06, 0x06, 0x08, 0xf1, 0x8f, 0x50, 0x5d, 0xd1, 0x8f, 0x23, 0x28, 0xf7, 0x10, 0xc1, 0x67, 0xfd, 0x8e, 0x99, 0xea, 0x83, 0x27, 0x47, 0x11, 0x93, 0xf6, 0x07, 0xf8, 0x3c, 0x41, 0x93, 0xf7, 0xf7, 0x07, 0xd5, 0x8f, 0x23, 0x2a, 0xf7, 0x10, 0x82, 0x80, 0x41, 0x11, 0x06, 0xc6, 0x22, 0xc4, 0x2a, 0x84, 0x09, 0x38, 0x22, 0x85, 0x55, 0x3f, 0x22, 0x85, 0xe9, 0x30, 0x22, 0x85, 0xef, 0xe0, 0x3f, 0xed, 0xa2, 0x85, 0x22, 0x44, 0xb2, 0x40, 0x01, 0x45, 0x41, 0x01, 0x19, 0xbc, 0x5d, 0x71, 0x5e, 0xd6, 0x86, 0xc6, 0xa2, 0xc4, 0xa6, 0xc2, 0xca, 0xc0, 0x4e, 0xde, 0x52, 0xdc, 0x56, 0xda, 0x5a, 0xd8, 0x62, 0xd4, 0x66, 0xd2, 0x6a, 0xd0, 0x6e, 0xce, 0xaa, 0x8b, 0x7d, 0x3f, 0x05, 0xe9, 0x2a, 0x84, 0x17, 0x15, 0x00, 0x00, 0x13, 0x05, 0x85, 0xc9, 0xef, 0xe0, 0x2f, 0xb0, 0xb6, 0x40, 0x22, 0x85, 0x26, 0x44, 0x96, 0x44, 0x06, 0x49, 0xf2, 0x59, 0x62, 0x5a, 0xd2, 0x5a, 0x42, 0x5b, 0xb2, 0x5b, 0x22, 0x5c, 0x92, 0x5c, 0x02, 0x5d, 0xf2, 0x4d, 0x61, 0x61, 0x82, 0x80, 0x83, 0xa7, 0x4b, 0x01, 0x85, 0x44, 0x8b, 0xb7, 0xc7, 0x3c, 0x63, 0x93, 0x97, 0x00, 0x89, 0x44, 0xb7, 0x07, 0x00, 0x80, 0x7d, 0x7c, 0x01, 0x4d, 0x01, 0x44, 0x3e, 0xc4, 0xb7, 0x0c, 0x00, 0x80, 0x13, 0x09, 0x00, 0x04, 0x85, 0x4d, 0x0d, 0x0c, 0x66, 0x87, 0x81, 0x47, 0x93, 0xf6, 0x17, 0x00, 0x3a, 0x86, 0x99, 0xe2, 0x13, 0x46, 0xf7, 0xff, 0x0b, 0x56, 0x47, 0x58, 0x85, 0x07, 0xe3, 0x97, 0x27, 0xff, 0xb7, 0x2a, 0x10, 0x43, 0x8b, 0xc7, 0x8a, 0x44, 0x7d, 0x77, 0x13, 0x07, 0x37, 0x0f, 0xf9, 0x8f, 0x13, 0x1a, 0x24, 0x00, 0x93, 0xe7, 0x07, 0x6f, 0x33, 0x0b, 0x5a, 0x01, 0x8b, 0xd7, 0x8a, 0x44, 0x03, 0x26, 0x0b, 0x00, 0xe3, 0x9e, 0xc7, 0xfe, 0xa2, 0x47, 0x2d, 0x46, 0x45, 0x4e, 0x93, 0xc9, 0xf7, 0xff, 0x93, 0x05, 0xb6, 0x00, 0xb3, 0x95, 0xbd, 0x00, 0xe6, 0x95, 0x4e, 0x85, 0x81, 0x47, 0x93, 0xfe, 0x17, 0x00, 0x13, 0x43, 0xf5, 0xff, 0x0b, 0x13, 0xd5, 0x41, 0x8b, 0xce, 0xf5, 0x44, 0x63, 0x9e, 0x6e, 0x1e, 0x85, 0x07, 0x71, 0x15, 0xe3, 0x94, 0x27, 0xff, 0xc1, 0x47, 0x63, 0xf3, 0xc7, 0x00, 0x41, 0x46, 0xa2, 0x85, 0x17, 0x15, 0x00, 0x00, 0x13, 0x05, 0xc5, 0xbe, 0x32, 0xc6, 0xef, 0xe0, 0xcf, 0xa2, 0x03, 0xa5, 0x0b, 0x01, 0x93, 0x05, 0x4d, 0x00, 0x32, 0x46, 0x93, 0x07, 0xf0, 0x0f, 0xb3, 0x97, 0xb7, 0x00, 0x93, 0xc7, 0xf7, 0xff, 0xe9, 0x8f, 0x33, 0x16, 0xb6, 0x00, 0x5d, 0x8e, 0x23, 0xa8, 0xcb, 0x00, 0x63, 0x1c, 0xb4, 0x01, 0x37, 0x26, 0x10, 0x43, 0x1c, 0x42, 0xb7, 0x0c, 0x80, 0x80, 0xb3, 0xf7, 0x87, 0x01, 0x93, 0xe7, 0x47, 0x6a, 0x1c, 0xc2, 0x8b, 0x47, 0x5a, 0x41, 0xb3, 0xf7, 0x87, 0x01, 0x93, 0xe7, 0x47, 0x6a, 0x8b, 0x57, 0x5a, 0x41, 0x03, 0x26, 0x0b, 0x00, 0xe3, 0x1e, 0xf6, 0xfe, 0x85, 0x67, 0x93, 0x87, 0x07, 0x80, 0xe6, 0x97, 0xce, 0x85, 0x01, 0x46, 0x13, 0x73, 0x16, 0x00, 0x13, 0xc5, 0xf5, 0xff, 0x0b, 0x95, 0x65, 0x40, 0x03, 0xa3, 0x07, 0x00, 0x63, 0x15, 0xa3, 0x14, 0x05, 0x06, 0xf1, 0x15, 0x91, 0x07, 0xe3, 0x13, 0x26, 0xff, 0x01, 0x43, 0x13, 0x06, 0x13, 0x00, 0x0a, 0x06, 0xa2, 0x85, 0x17, 0x15, 0x00, 0x00, 0x13, 0x05, 0x85, 0xb7, 0x1a, 0xc6, 0xef, 0xe0, 0x8f, 0x99, 0x83, 0xa5, 0x0b, 0x01, 0x13, 0x06, 0xcd, 0x00, 0x32, 0x43, 0xbd, 0x47, 0xb3, 0x97, 0xc7, 0x00, 0x93, 0xc7, 0xf7, 0xff, 0xed, 0x8f, 0x33, 0x13, 0xc3, 0x00, 0xb3, 0xe7, 0x67, 0x00, 0x23, 0xa8, 0xfb, 0x00, 0x63, 0x1e, 0xb4, 0x01, 0x37, 0x26, 0x10, 0x43, 0x1c, 0x42, 0x05, 0x67, 0x13, 0x07, 0x07, 0xaa, 0xb3, 0xf7, 0x87, 0x01, 0xd9, 0x8f, 0x1c, 0xc2, 0xb7, 0x0c, 0x00, 0x84, 0x8b, 0x47, 0x5a, 0x41, 0x05, 0x67, 0x13, 0x07, 0x07, 0xaa, 0xb3, 0xf7, 0x87, 0x01, 0xd9, 0x8f, 0x8b, 0x57, 0x5a, 0x41, 0x03, 0x27, 0x0b, 0x00, 0xe3, 0x1e, 0xf7, 0xfe, 0xa5, 0x47, 0x39, 0x45, 0x33, 0x96, 0xfd, 0x00, 0x66, 0x96, 0xce, 0x86, 0x01, 0x47, 0x93, 0x78, 0x17, 0x00, 0x93, 0xc5, 0xf6, 0xff, 0x8b, 0x95, 0x16, 0x41, 0x8b, 0x48, 0xe6, 0x44, 0x63, 0x91, 0xb8, 0x0c, 0x05, 0x07, 0xf1, 0x16, 0xe3, 0x14, 0x27, 0xff, 0x35, 0x47, 0x63, 0x86, 0xe7, 0x00, 0x25, 0x47, 0x81, 0x49, 0x63, 0x85, 0xe7, 0x00, 0xd9, 0x17, 0xb3, 0x99, 0xfd, 0x00, 0x4e, 0x86, 0xa2, 0x85, 0x17, 0x15, 0x00, 0x00, 0x13, 0x05, 0x25, 0xaf, 0xef, 0xe0, 0x0f, 0x8f, 0x03, 0xa7, 0x0b, 0x01, 0xbd, 0x47, 0xb3, 0x97, 0xa7, 0x01, 0x93, 0xc7, 0xf7, 0xff, 0xf9, 0x8f, 0x33, 0x96, 0xa9, 0x01, 0x5d, 0x8e, 0x23, 0xa8, 0xcb, 0x00, 0x05, 0x04, 0x63, 0x99, 0x84, 0x02, 0x89, 0x47, 0x05, 0x44, 0xe3, 0x95, 0xf4, 0xdc, 0x83, 0xa7, 0x4b, 0x01, 0x7d, 0x77, 0x13, 0x07, 0xf7, 0x0f, 0xf9, 0x8f, 0x13, 0x57, 0x06, 0x01, 0x0b, 0x36, 0x06, 0x3c, 0x63, 0x12, 0xc7, 0x04, 0x23, 0xaa, 0xfb, 0x00, 0x17, 0x15, 0x00, 0x00, 0x13, 0x05, 0xe5, 0xac, 0x79, 0xbb, 0x63, 0x15, 0xb4, 0x03, 0x37, 0x27, 0x10, 0x43, 0x1c, 0x43, 0xb7, 0x0c, 0x00, 0x88, 0xb3, 0xf7, 0x87, 0x01, 0x93, 0xe7, 0x07, 0x6f, 0x1c, 0xc3, 0x5c, 0x43, 0xb3, 0xf7, 0x87, 0x01, 0x93, 0xe7, 0x17, 0x6f, 0x5c, 0xc3, 0xb7, 0x07, 0x00, 0x88, 0x3e, 0xc4, 0x41, 0x0d, 0x75, 0xbb, 0x05, 0x43, 0xd1, 0xb5, 0x93, 0xe7, 0x07, 0x10, 0x23, 0xaa, 0xfb, 0x00, 0x17, 0x15, 0x00, 0x00, 0x13, 0x05, 0x65, 0xaa, 0xa9, 0xbb, 0x85, 0x07, 0xe3, 0x91, 0xa7, 0xf2, 0xb5, 0x47, 0x81, 0xbf, 0x05, 0x06, 0xe3, 0x12, 0xc6, 0xdf, 0x29, 0xb5, 0x41, 0x11, 0xb7, 0x07, 0xb0, 0x00, 0x22, 0xc4, 0x26, 0xc2, 0x4a, 0xc0, 0x06, 0xc6, 0x93, 0x87, 0x07, 0x0b, 0x03, 0x29, 0x05, 0x01, 0x1c, 0xc9, 0x5c, 0x49, 0x64, 0x4d, 0x05, 0x67, 0xc1, 0x9b, 0xd9, 0x8f, 0x5c, 0xc9, 0x93, 0xf7, 0x74, 0xff, 0x93, 0xe7, 0x57, 0x00, 0x7c, 0xcd, 0x2a, 0x84, 0xd9, 0x31, 0xb7, 0x37, 0x10, 0x43, 0x9c, 0x4b, 0x37, 0x07, 0x10, 0x00, 0xf9, 0x8f, 0x81, 0xcb, 0x01, 0x45, 0xb2, 0x40, 0x22, 0x44, 0x92, 0x44, 0x02, 0x49, 0x41, 0x01, 0x82, 0x80, 0x22, 0x85, 0xcd, 0x3c, 0x7d, 0xd5, 0x64, 0xcc, 0x23, 0x28, 0x24, 0x01, 0x05, 0x45, 0xdd, 0xb7, 0x78, 0x4d, 0x41, 0x11, 0x91, 0x67, 0x26, 0xc2, 0x06, 0xc6, 0x22, 0xc4, 0xf9, 0x8f, 0xaa, 0x84, 0x81, 0xeb, 0x41, 0x3f, 0x2a, 0x84, 0x17, 0x15, 0x00, 0x00, 0x13, 0x05, 0xa5, 0xa3, 0x01, 0xcc, 0xfc, 0x4c, 0x85, 0x8b, 0x8d, 0xe3, 0x26, 0x85, 0x51, 0x39, 0x2a, 0x84, 0x09, 0xed, 0x17, 0x15, 0x00, 0x00, 0x13, 0x05, 0x25, 0xa5, 0xef, 0xd0, 0x5f, 0xfb, 0xb2, 0x40, 0x22, 0x85, 0x22, 0x44, 0x92, 0x44, 0x41, 0x01, 0x82, 0x80, 0xfc, 0x4c, 0x21, 0x67, 0x05, 0x44, 0x7d, 0x8f, 0x75, 0xf7, 0x19, 0x67, 0x05, 0x07, 0xd9, 0x8f, 0xfc, 0xcc, 0xcd, 0xb7, 0x41, 0x11, 0x22, 0xc4, 0x13, 0x06, 0x80, 0x08, 0x2a, 0x84, 0x81, 0x45, 0x17, 0xd5, 0xff, 0xff, 0x13, 0x05, 0x65, 0x56, 0x06, 0xc6, 0xef, 0xe0, 0x0f, 0xaf, 0xb7, 0x57, 0x41, 0x4d, 0x17, 0xd7, 0xff, 0xff, 0x13, 0x07, 0x47, 0x21, 0x93, 0x87, 0x47, 0x24, 0x23, 0x22, 0x87, 0x34, 0x13, 0x06, 0x00, 0x08, 0x97, 0xd5, 0xff, 0xff, 0x93, 0x85, 0x85, 0x23, 0x23, 0x20, 0xf7, 0x34, 0x17, 0xd5, 0xff, 0xff, 0x13, 0x05, 0xc5, 0x53, 0xef, 0xe0, 0x4f, 0xb4, 0x22, 0x44, 0xb2, 0x40, 0x13, 0x06, 0x00, 0x08, 0x97, 0xd5, 0xff, 0xff, 0x93, 0x85, 0x85, 0x21, 0x37, 0x05, 0x80, 0x80, 0x41, 0x01, 0x6f, 0xe0, 0xaf, 0xb2, 0x41, 0x11, 0x06, 0xc6, 0x22, 0xc4, 0xef, 0xd0, 0x6f, 0xf5, 0x17, 0xd5, 0xff, 0xff, 0x03, 0x25, 0xc5, 0x27, 0x09, 0x46, 0x97, 0xd5, 0xff, 0xff, 0x93, 0x85, 0x65, 0x27, 0xef, 0xe0, 0x8f, 0xb9, 0x97, 0xd5, 0xff, 0xff, 0x93, 0x85, 0x65, 0x4a, 0x17, 0x15, 0x00, 0x00, 0x13, 0x05, 0x25, 0xb3, 0xef, 0xd0, 0xdf, 0xef, 0xef, 0xd0, 0x2f, 0xf9, 0x01, 0x44, 0x29, 0xe1, 0xef, 0xd0, 0xff, 0xf5, 0x17, 0x15, 0x00, 0x00, 0x13, 0x05, 0x25, 0xb3, 0xef, 0xd0, 0x5f, 0xee, 0xef, 0xd0, 0x5f, 0xf4, 0xaa, 0x85, 0x01, 0x45, 0xef, 0xd0, 0xdf, 0xf6, 0x2a, 0x84, 0xef, 0xe0, 0xef, 0xf7, 0x19, 0xc1, 0xef, 0xe0, 0x5f, 0x80, 0x0d, 0xc0, 0x05, 0x45, 0x15, 0x3f, 0x17, 0x15, 0x00, 0x00, 0x13, 0x05, 0xc5, 0xb1, 0xef, 0xd0, 0xbf, 0xeb, 0x29, 0x45, 0xef, 0xd0, 0xcf, 0xdd, 0xb2, 0x40, 0x22, 0x85, 0x22, 0x44, 0x41, 0x01, 0x82, 0x80, 0x01, 0x45, 0x11, 0x3f, 0x17, 0x15, 0x00, 0x00, 0x13, 0x05, 0xc5, 0xb0, 0xef, 0xd0, 0xbf, 0xe9, 0x01, 0xa0, 0xf9, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x28, 0x28, 0x28, 0x28, 0x28, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0xa0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x10, 0x10, 0x10, 0x10, 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, 0x00, 0xa0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x10, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x44, 0x52, 0x41, 0x4d, 0x00, 0x00, 0x00, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x00, 0x00, 0x00, 0x00, 0x73, 0x75, 0x6e, 0x78, 0x69, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xbe, 0xf0, 0xff, 0xff, 0xea, 0xf0, 0xff, 0xff, 0xf4, 0xf0, 0xff, 0xff, 0x04, 0xf1, 0xff, 0xff, 0xfe, 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x13, 0x04, 0x12, 0x02, 0x06, 0x03, 0x05, 0x07, 0x0c, 0x08, 0x0d, 0x0a, 0x09, 0x00, 0x00, 0x00, 0x16, 0x01, 0x0b, 0x11, 0x15, 0x14, 0x00, 0x00, 0x80, 0x00, 0x20, 0x80, 0x20, 0x80, 0x00, 0x00, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6a, 0x75, 0x6d, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x62, 0x69, 0x0a, 0x00, 0x00, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6a, 0x75, 0x6d, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x62, 0x69, 0x20, 0x76, 0x31, 0x78, 0x0a, 0x00, 0x00, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x62, 0x69, 0x20, 0x74, 0x6f, 0x20, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x20, 0x28, 0x25, 0x78, 0x29, 0x2e, 0x2e, 0x2e, 0x2c, 0x64, 0x74, 0x62, 0x20, 0x28, 0x25, 0x78, 0x29, 0x0a, 0x00, 0x00, 0x45, 0x43, 0x43, 0x20, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x00, 0x00, 0x45, 0x42, 0x50, 0x20, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x00, 0x00, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x6f, 0x6b, 0x3a, 0x20, 0x75, 0x73, 0x65, 0x20, 0x68, 0x6f, 0x73, 0x63, 0x20, 0x25, 0x64, 0x4d, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x70, 0x6c, 0x6c, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x0a, 0x00, 0x00, 0x70, 0x6c, 0x6c, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x0a, 0x00, 0x00, 0x73, 0x65, 0x74, 0x20, 0x70, 0x6c, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x0a, 0x00, 0x00, 0x73, 0x65, 0x74, 0x20, 0x70, 0x6c, 0x6c, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x25, 0x64, 0x5d, 0x00, 0x00, 0x00, 0x00, 0x25, 0x73, 0x00, 0x00, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x00, 0x00, 0x6b, 0x65, 0x79, 0x20, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x3a, 0x20, 0x25, 0x63, 0x0a, 0x00, 0x5f, 0x5f, 0x77, 0x65, 0x61, 0x6b, 0x20, 0x25, 0x73, 0x2e, 0x2e, 0x2e, 0x25, 0x64, 0x0a, 0x00, 0x69, 0x6e, 0x62, 0x75, 0x66, 0x3a, 0x25, 0x78, 0x0a, 0x00, 0x00, 0x00, 0x25, 0x30, 0x32, 0x78, 0x20, 0x00, 0x00, 0x00, 0x44, 0x75, 0x6d, 0x70, 0x20, 0x25, 0x73, 0x20, 0x61, 0x64, 0x64, 0x72, 0x3d, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x2c, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3d, 0x30, 0x78, 0x25, 0x78, 0x3a, 0x0a, 0x20, 0x20, 0x00, 0x00, 0x00, 0x0a, 0x20, 0x20, 0x00, 0x25, 0x73, 0x3a, 0x25, 0x75, 0x3a, 0x20, 0x25, 0x73, 0x3a, 0x20, 0x41, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x60, 0x25, 0x73, 0x27, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x2e, 0x00, 0x00, 0x00, 0x77, 0x6f, 0x72, 0x6b, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x00, 0x46, 0x61, 0x69, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x20, 0x68, 0x65, 0x61, 0x64, 0x0a, 0x00, 0x00, 0x00, 0x41, 0x4e, 0x44, 0x52, 0x4f, 0x49, 0x44, 0x21, 0x00, 0x00, 0x00, 0x00, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x3a, 0x25, 0x78, 0x0a, 0x00, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x20, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x20, 0x69, 0x73, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x00, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x0a, 0x00, 0x00, 0x00, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x50, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x21, 0x21, 0x21, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x62, 0x6f, 0x6f, 0x74, 0x2e, 0x69, 0x6d, 0x67, 0x3a, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x2d, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x0a, 0x00, 0x00, 0x00, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x3a, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x2d, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x3a, 0x25, 0x78, 0x20, 0x25, 0x78, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x63, 0x68, 0x6f, 0x73, 0x65, 0x6e, 0x00, 0x62, 0x6f, 0x6f, 0x74, 0x61, 0x72, 0x67, 0x73, 0x00, 0x00, 0x00, 0x00, 0x25, 0x73, 0x28, 0x29, 0x25, 0x64, 0x20, 0x2d, 0x20, 0x62, 0x6f, 0x6f, 0x74, 0x61, 0x72, 0x67, 0x73, 0x5f, 0x73, 0x74, 0x72, 0x20, 0x69, 0x73, 0x20, 0x4e, 0x55, 0x4c, 0x4c, 0x21, 0x21, 0x21, 0x0a, 0x00, 0x00, 0x00, 0x25, 0x73, 0x28, 0x29, 0x25, 0x64, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6e, 0x64, 0x20, 0x72, 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x21, 0x21, 0x21, 0x0a, 0x00, 0x72, 0x6f, 0x6f, 0x74, 0x3d, 0x2f, 0x64, 0x65, 0x76, 0x2f, 0x00, 0x00, 0x6c, 0x69, 0x62, 0x66, 0x64, 0x74, 0x20, 0x66, 0x64, 0x74, 0x5f, 0x73, 0x65, 0x74, 0x70, 0x72, 0x6f, 0x70, 0x28, 0x29, 0x3a, 0x20, 0x25, 0x73, 0x0a, 0x00, 0x00, 0x00, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x00, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x00, 0x66, 0x64, 0x74, 0x5f, 0x63, 0x68, 0x6f, 0x73, 0x65, 0x6e, 0x3a, 0x20, 0x25, 0x73, 0x0a, 0x00, 0x72, 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x40, 0x00, 0x72, 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x40, 0x00, 0x00, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x64, 0x74, 0x73, 0x0a, 0x00, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x6e, 0x61, 0x6e, 0x64, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x20, 0x25, 0x73, 0x0a, 0x00, 0x72, 0x74, 0x63, 0x5b, 0x25, 0x64, 0x5d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x00, 0x00, 0x65, 0x72, 0x61, 0x6c, 0x79, 0x20, 0x6a, 0x75, 0x6d, 0x70, 0x20, 0x66, 0x65, 0x6c, 0x0a, 0x00, 0x63, 0x61, 0x72, 0x73, 0x68, 0x64, 0x75, 0x6d, 0x70, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x2c, 0x20, 0x6a, 0x75, 0x6d, 0x70, 0x20, 0x66, 0x65, 0x6c, 0x0a, 0x00, 0x00, 0x05, 0x13, 0x04, 0x0f, 0x0c, 0x03, 0x0d, 0x0e, 0x01, 0x0a, 0x16, 0x14, 0x11, 0x10, 0x06, 0x08, 0x07, 0x09, 0x15, 0x02, 0x0b, 0x12, 0x00, 0x00, 0x5a, 0x51, 0x20, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2c, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x20, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x20, 0x32, 0x34, 0x30, 0x20, 0x6f, 0x68, 0x6d, 0x20, 0x72, 0x65, 0x73, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x2e, 0x0a, 0x00, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x44, 0x51, 0x21, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x44, 0x51, 0x21, 0x0a, 0x00, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x68, 0x61, 0x6c, 0x66, 0x20, 0x44, 0x51, 0x21, 0x0a, 0x00, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x64, 0x75, 0x61, 0x6c, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x68, 0x61, 0x6c, 0x66, 0x20, 0x44, 0x51, 0x21, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x44, 0x58, 0x30, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x00, 0x00, 0x44, 0x58, 0x31, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x00, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x46, 0x41, 0x49, 0x4c, 0x2e, 0x0a, 0x00, 0x25, 0x78, 0x20, 0x21, 0x3d, 0x20, 0x25, 0x78, 0x20, 0x61, 0x74, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x25, 0x78, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x4f, 0x4b, 0x2e, 0x0a, 0x00, 0x00, 0x00, 0x5b, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x3a, 0x20, 0x30, 0x21, 0x0a, 0x00, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x25, 0x64, 0x20, 0x72, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x25, 0x64, 0x20, 0x62, 0x61, 0x6e, 0x6b, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x25, 0x64, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x4b, 0x42, 0x20, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x72, 0x61, 0x6e, 0x6b, 0x31, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x30, 0x0a, 0x00, 0x72, 0x61, 0x6e, 0x6b, 0x31, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x30, 0x0a, 0x00, 0x00, 0x5b, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x61, 0x6e, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x26, 0x77, 0x69, 0x64, 0x74, 0x68, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x20, 0x21, 0x0a, 0x00, 0x5b, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x61, 0x6e, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x20, 0x21, 0x0a, 0x00, 0x00, 0x00, 0x37, 0x2e, 0x38, 0x00, 0x33, 0x2e, 0x39, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x20, 0x5a, 0x51, 0x21, 0x21, 0x0a, 0x00, 0x5a, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x20, 0x5a, 0x51, 0x21, 0x21, 0x0a, 0x00, 0x56, 0x31, 0x2e, 0x30, 0x30, 0x00, 0x00, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x42, 0x4f, 0x4f, 0x54, 0x20, 0x44, 0x52, 0x49, 0x56, 0x45, 0x20, 0x49, 0x4e, 0x46, 0x4f, 0x3a, 0x20, 0x25, 0x73, 0x0a, 0x00, 0x00, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x43, 0x4c, 0x4b, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x4d, 0x48, 0x7a, 0x0a, 0x00, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x54, 0x79, 0x70, 0x65, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x28, 0x32, 0x3a, 0x44, 0x44, 0x52, 0x32, 0x2c, 0x33, 0x3a, 0x44, 0x44, 0x52, 0x33, 0x29, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x43, 0x20, 0x5a, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x00, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x43, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x4f, 0x44, 0x54, 0x20, 0x6f, 0x66, 0x66, 0x2e, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x4f, 0x44, 0x54, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x30, 0x78, 0x25, 0x78, 0x2e, 0x0a, 0x00, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x4f, 0x44, 0x54, 0x20, 0x6f, 0x66, 0x66, 0x2e, 0x0a, 0x00, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x3a, 0x20, 0x31, 0x20, 0x21, 0x0a, 0x00, 0x00, 0x00, 0x74, 0x72, 0x65, 0x66, 0x69, 0x3a, 0x20, 0x33, 0x2e, 0x39, 0x75, 0x73, 0x0a, 0x00, 0x00, 0x00, 0x74, 0x72, 0x65, 0x66, 0x69, 0x3a, 0x20, 0x31, 0x2e, 0x39, 0x35, 0x75, 0x73, 0x0a, 0x00, 0x00, 0x74, 0x72, 0x65, 0x66, 0x69, 0x3a, 0x20, 0x25, 0x73, 0x75, 0x73, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x53, 0x69, 0x7a, 0x65, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x4d, 0x42, 0x0a, 0x00, 0x00, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x41, 0x75, 0x74, 0x6f, 0x20, 0x53, 0x52, 0x0a, 0x00, 0x66, 0x65, 0x73, 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x3a, 0x25, 0x73, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x62, 0x65, 0x69, 0x67, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x0a, 0x00, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x6f, 0x6b, 0x0a, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x50, 0x4c, 0x4c, 0x5f, 0x43, 0x50, 0x55, 0x00, 0x00, 0x00, 0x01, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x50, 0x4c, 0x4c, 0x5f, 0x50, 0x45, 0x52, 0x49, 0x20, 0x00, 0x01, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x50, 0x4c, 0x4c, 0x5f, 0x56, 0x45, 0x00, 0x00, 0x40, 0x00, 0x01, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x50, 0x4c, 0x4c, 0x5f, 0x44, 0x44, 0x52, 0x00, 0x80, 0x00, 0x01, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x41, 0x48, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x01, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x41, 0x50, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x05, 0x01, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x45, 0x39, 0x30, 0x58, 0x00, 0x00, 0x00, 0x00, 0x84, 0x05, 0x01, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x41, 0x32, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x05, 0x01, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x03, 0x45, 0xa0, 0x06, 0xe0, 0x08, 0x77, 0x19, 0x94, 0x8d, 0x6c, 0x38, 0x25, 0x33, 0x02, 0x3c, 0x43, 0x66, 0xfc, 0x37, 0xa0, 0x39, 0x3c, 0x38, 0x1b, 0xfd, 0x17, 0x39, }; static const struct dram_param_t { uint32_t dram_clk; uint32_t dram_type; uint32_t dram_zq; uint32_t dram_odt_en; uint32_t dram_para1; uint32_t dram_para2; uint32_t dram_mr0; uint32_t dram_mr1; uint32_t dram_mr2; uint32_t dram_mr3; uint32_t dram_tpr0; uint32_t dram_tpr1; uint32_t dram_tpr2; uint32_t dram_tpr3; uint32_t dram_tpr4; uint32_t dram_tpr5; uint32_t dram_tpr6; uint32_t dram_tpr7; uint32_t dram_tpr8; uint32_t dram_tpr9; uint32_t dram_tpr10; uint32_t dram_tpr11; uint32_t dram_tpr12; uint32_t dram_tpr13; } dram_param = { .dram_clk = 528, .dram_type = 2, .dram_zq = 0x7b7bf9, .dram_odt_en = 0x00, .dram_para1 = 0x000000d2, .dram_para2 = 0x00400000, .dram_mr0 = 0x00000E73, .dram_mr1 = 0x02, .dram_mr2 = 0x0, .dram_mr3 = 0x0, .dram_tpr0 = 0x00471992, .dram_tpr1 = 0x0131A10C, .dram_tpr2 = 0x00057041, .dram_tpr3 = 0xB4787896, .dram_tpr4 = 0x0, .dram_tpr5 = 0x48484848, .dram_tpr6 = 0x48, .dram_tpr7 = 0x1621121e, .dram_tpr8 = 0x0, .dram_tpr9 = 0x0, .dram_tpr10 = 0x00000000, .dram_tpr11 = 0x00000000, .dram_tpr12 = 0x00000000, .dram_tpr13 = 0x34000100, }; fel_write(ctx, 0x02008000, (void *)&dram_bin[0], sizeof(dram_bin)); fel_write(ctx, 0x02008038, (void *)&dram_param, sizeof(dram_param)); fel_exec(ctx, 0x02008000); return 1; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { static const uint8_t payload[] = { 0x37, 0x03, 0x40, 0x00, 0x73, 0x20, 0x03, 0x7c, 0x0f, 0x10, 0x00, 0x00, 0x09, 0xa0, 0x01, 0x11, 0x22, 0xc4, 0x26, 0xc8, 0x06, 0xcc, 0x2a, 0x84, 0x37, 0x15, 0x00, 0x02, 0xef, 0x00, 0x00, 0x01, 0xe2, 0x40, 0x22, 0x44, 0xc2, 0x44, 0x05, 0x61, 0x82, 0x80, 0x00, 0x00, 0x39, 0x71, 0x2a, 0x87, 0x22, 0xde, 0x26, 0xdc, 0x4a, 0xda, 0x4e, 0xd8, 0x52, 0xd6, 0x56, 0xd4, 0x5a, 0xd2, 0x5e, 0xd0, 0x62, 0xce, 0x66, 0xcc, 0xba, 0x88, 0x8b, 0xc9, 0x18, 0x98, 0xb7, 0x57, 0x02, 0x44, 0xb7, 0x05, 0x00, 0x80, 0xf1, 0x74, 0x7d, 0x74, 0x45, 0x75, 0xb7, 0x03, 0x00, 0xf9, 0xb7, 0x02, 0xfd, 0xff, 0x85, 0x46, 0x89, 0x4e, 0x8d, 0x4f, 0xbd, 0x04, 0x13, 0x88, 0x07, 0x03, 0x09, 0x46, 0x7d, 0x53, 0x05, 0x4f, 0x7d, 0x5e, 0x13, 0x04, 0xf4, 0x0f, 0x7d, 0x15, 0xfd, 0x13, 0xfd, 0x12, 0x13, 0x89, 0x35, 0x08, 0x63, 0x8f, 0xd9, 0x08, 0x63, 0x83, 0xd9, 0x17, 0x63, 0x87, 0xf9, 0x17, 0x11, 0x4a, 0x63, 0x8c, 0x49, 0x17, 0x15, 0x4a, 0x63, 0x81, 0x49, 0x1f, 0x99, 0x4a, 0x63, 0x88, 0x59, 0x2b, 0x1d, 0x47, 0x63, 0x8a, 0xe9, 0x38, 0x21, 0x47, 0x63, 0x9a, 0xe9, 0x3e, 0x23, 0x14, 0x91, 0x00, 0x23, 0x20, 0xc8, 0x00, 0xd0, 0xdb, 0x90, 0xdf, 0x03, 0x47, 0x81, 0x00, 0x23, 0x80, 0xe7, 0x20, 0x03, 0x47, 0x91, 0x00, 0x23, 0x80, 0xe7, 0x20, 0x98, 0x47, 0x4d, 0x8f, 0x98, 0xc7, 0x01, 0x00, 0x98, 0x47, 0xe3, 0x4f, 0x07, 0xfe, 0x01, 0x00, 0xd8, 0x4f, 0x13, 0x77, 0xe7, 0x0f, 0x6d, 0xdf, 0x03, 0xc7, 0x07, 0x30, 0x03, 0xc7, 0x07, 0x30, 0x23, 0x20, 0xd8, 0x00, 0xd4, 0xdb, 0x94, 0xdf, 0x23, 0x80, 0x67, 0x20, 0x98, 0x47, 0x4d, 0x8f, 0x98, 0xc7, 0x01, 0x00, 0x98, 0x47, 0xe3, 0x4f, 0x07, 0xfe, 0x01, 0x00, 0xd8, 0x4f, 0x13, 0x77, 0xf7, 0x0f, 0x6d, 0xdf, 0x03, 0xc7, 0x07, 0x30, 0x05, 0x8b, 0x59, 0xff, 0x46, 0x87, 0xba, 0x88, 0x8b, 0xc9, 0x18, 0x98, 0xe3, 0x95, 0xd9, 0xf6, 0xb7, 0x09, 0x00, 0x42, 0x03, 0xaa, 0x49, 0x06, 0x8d, 0x6a, 0x37, 0x17, 0x00, 0x42, 0x13, 0x7a, 0x0a, 0xff, 0x13, 0x6a, 0x3a, 0x00, 0x23, 0xa2, 0x49, 0x07, 0x03, 0xaa, 0x49, 0x06, 0x13, 0x7a, 0xfa, 0xf0, 0x13, 0x6a, 0x0a, 0x03, 0x23, 0xa2, 0x49, 0x07, 0x03, 0xaa, 0x49, 0x06, 0x33, 0x7a, 0x8a, 0x00, 0x13, 0x6a, 0x0a, 0x30, 0x23, 0xa2, 0x49, 0x07, 0x03, 0xaa, 0x49, 0x06, 0x33, 0x7a, 0xaa, 0x00, 0x33, 0x6a, 0x5a, 0x01, 0x23, 0xa2, 0x49, 0x07, 0x83, 0x29, 0x47, 0x09, 0x37, 0x0a, 0x00, 0x01, 0x93, 0xe9, 0x09, 0x01, 0x23, 0x2a, 0x37, 0x09, 0x83, 0x29, 0x47, 0x08, 0x93, 0xe9, 0x09, 0x01, 0x23, 0x22, 0x37, 0x09, 0x83, 0x29, 0xc7, 0x01, 0xb3, 0xe9, 0xb9, 0x00, 0x23, 0x2e, 0x37, 0x01, 0x83, 0x29, 0xc7, 0x01, 0xb3, 0xf9, 0x79, 0x00, 0xb3, 0xe9, 0x49, 0x01, 0x23, 0x2e, 0x37, 0x01, 0x83, 0x29, 0xc7, 0x01, 0xb3, 0xf9, 0x59, 0x00, 0x23, 0x2e, 0x37, 0x01, 0x83, 0x29, 0xc7, 0x01, 0x93, 0xf9, 0x09, 0xff, 0x93, 0xe9, 0x29, 0x00, 0x23, 0x2e, 0x37, 0x01, 0x05, 0x67, 0xd8, 0xd3, 0xd8, 0x43, 0x33, 0x67, 0x27, 0x01, 0xd8, 0xc3, 0x01, 0x00, 0xd8, 0x43, 0xe3, 0x4f, 0x07, 0xfe, 0x98, 0x47, 0xb7, 0x89, 0x00, 0x80, 0x71, 0x9b, 0x13, 0x67, 0x47, 0x04, 0x98, 0xc7, 0x98, 0x4f, 0x33, 0x67, 0x37, 0x01, 0x98, 0xcf, 0x46, 0x87, 0x35, 0xb7, 0x98, 0x47, 0x13, 0x77, 0xf7, 0xf4, 0x98, 0xc7, 0x46, 0x87, 0x05, 0xb7, 0x98, 0x47, 0x13, 0x77, 0xf7, 0xf4, 0x13, 0x67, 0x07, 0x08, 0x98, 0xc7, 0x46, 0x87, 0x01, 0xbf, 0x03, 0x4b, 0x17, 0x00, 0x13, 0x0a, 0x27, 0x00, 0x93, 0x0b, 0x00, 0x04, 0xda, 0x8a, 0x63, 0x0d, 0x0b, 0x04, 0x33, 0xb7, 0x5b, 0x01, 0xd6, 0x89, 0x8b, 0x99, 0xeb, 0x42, 0x23, 0x20, 0x38, 0x01, 0x23, 0xaa, 0x37, 0x03, 0x23, 0xac, 0x37, 0x03, 0x01, 0x47, 0x01, 0x00, 0x0b, 0x4c, 0xea, 0x80, 0x05, 0x07, 0x23, 0x80, 0x87, 0x21, 0xe3, 0x4b, 0x37, 0xff, 0x98, 0x47, 0x4d, 0x8f, 0x98, 0xc7, 0x98, 0x47, 0xe3, 0x4f, 0x07, 0xfe, 0x01, 0x00, 0xd8, 0x4f, 0x13, 0x77, 0xf7, 0x0f, 0xe3, 0x6d, 0x37, 0xff, 0x01, 0x47, 0x03, 0xcc, 0x07, 0x30, 0x05, 0x07, 0xe3, 0x4d, 0x37, 0xff, 0xb3, 0x8a, 0x3a, 0x41, 0x4e, 0x9a, 0xe3, 0x97, 0x0a, 0xfa, 0x05, 0x0b, 0xda, 0x98, 0x46, 0x87, 0x45, 0xb5, 0x83, 0x49, 0x67, 0x00, 0x83, 0x4c, 0x57, 0x00, 0x03, 0x4c, 0x77, 0x00, 0x03, 0x4a, 0x27, 0x00, 0x83, 0x4b, 0x17, 0x00, 0x03, 0x4b, 0x87, 0x00, 0x83, 0x48, 0x37, 0x00, 0x83, 0x4a, 0x47, 0x00, 0xa2, 0x09, 0xb3, 0xe9, 0x99, 0x01, 0x42, 0x0c, 0x22, 0x0a, 0x33, 0x6a, 0x7a, 0x01, 0xb3, 0x69, 0x3c, 0x01, 0x62, 0x0b, 0xc2, 0x08, 0xb3, 0xe8, 0x48, 0x01, 0x33, 0x6b, 0x3b, 0x01, 0x13, 0x9a, 0x8a, 0x01, 0x33, 0x6a, 0x1a, 0x01, 0x93, 0x0b, 0x00, 0x04, 0x63, 0x08, 0x0b, 0x06, 0xb3, 0xb8, 0x6b, 0x01, 0xda, 0x89, 0x8b, 0x99, 0x1b, 0x43, 0x23, 0x20, 0x38, 0x01, 0x23, 0xaa, 0x37, 0x03, 0x23, 0xac, 0x37, 0x03, 0x81, 0x48, 0x63, 0x0e, 0x0a, 0x04, 0x01, 0x00, 0x8b, 0x4a, 0x1a, 0x81, 0x85, 0x08, 0x23, 0x80, 0x57, 0x21, 0xe3, 0xcb, 0x38, 0xff, 0x83, 0xa8, 0x87, 0x00, 0xb3, 0xe8, 0xb8, 0x00, 0x23, 0xa4, 0x17, 0x01, 0x01, 0x00, 0x83, 0xa8, 0x87, 0x00, 0xe3, 0xce, 0x08, 0xfe, 0x83, 0xa8, 0xc7, 0x01, 0x93, 0xf8, 0xf8, 0x0f, 0xe3, 0xec, 0x38, 0xff, 0x81, 0x48, 0x01, 0x00, 0x83, 0xca, 0x07, 0x30, 0x85, 0x08, 0xe3, 0xcd, 0x38, 0xff, 0xb3, 0x08, 0x3a, 0x01, 0x33, 0x0b, 0x3b, 0x41, 0x0b, 0x9a, 0x48, 0x43, 0xe3, 0x1c, 0x0b, 0xf8, 0x93, 0x08, 0x97, 0x00, 0x46, 0x87, 0xf9, 0xbb, 0x93, 0x8a, 0x07, 0x20, 0x01, 0x00, 0x23, 0x80, 0xca, 0x01, 0x85, 0x08, 0xe3, 0xcd, 0x38, 0xff, 0x65, 0xb7, 0x83, 0x49, 0x67, 0x00, 0x83, 0x4c, 0x57, 0x00, 0x03, 0x4c, 0x77, 0x00, 0x03, 0x4b, 0x27, 0x00, 0x83, 0x4b, 0x87, 0x00, 0x83, 0x4a, 0x17, 0x00, 0x83, 0x48, 0x37, 0x00, 0x03, 0x4a, 0x47, 0x00, 0xa2, 0x09, 0x42, 0x0c, 0xb3, 0xe9, 0x99, 0x01, 0x22, 0x0b, 0xb3, 0x69, 0x3c, 0x01, 0x33, 0x6b, 0x5b, 0x01, 0xe2, 0x0b, 0xc2, 0x08, 0xb3, 0xe8, 0x68, 0x01, 0x62, 0x0a, 0xb3, 0xeb, 0x3b, 0x01, 0x33, 0x6b, 0x1a, 0x01, 0x13, 0x0c, 0x00, 0x04, 0xe3, 0x8f, 0x0b, 0xf8, 0xb3, 0x38, 0x7c, 0x01, 0xde, 0x89, 0x8b, 0x19, 0x1c, 0x43, 0x23, 0x20, 0x38, 0x01, 0x23, 0xaa, 0x37, 0x03, 0x23, 0xac, 0x37, 0x03, 0x81, 0x48, 0x13, 0x8a, 0x07, 0x20, 0x23, 0x00, 0xca, 0x01, 0x85, 0x08, 0xe3, 0xcd, 0x38, 0xff, 0x83, 0xa8, 0x87, 0x00, 0xb3, 0xe8, 0xb8, 0x00, 0x23, 0xa4, 0x17, 0x01, 0x01, 0x00, 0x83, 0xa8, 0x87, 0x00, 0xe3, 0xce, 0x08, 0xfe, 0x83, 0xa8, 0xc7, 0x01, 0x93, 0xf8, 0xf8, 0x0f, 0xe3, 0xec, 0x38, 0xff, 0x81, 0x48, 0x01, 0x00, 0x83, 0xca, 0x07, 0x30, 0x5a, 0x8a, 0x93, 0xfa, 0xfa, 0x0f, 0x63, 0x0f, 0x0b, 0x00, 0x8b, 0x5a, 0x1a, 0x18, 0x85, 0x08, 0x52, 0x8b, 0xe3, 0xc5, 0x38, 0xff, 0xb3, 0x8b, 0x3b, 0x41, 0xe3, 0x9b, 0x0b, 0xf8, 0x93, 0x08, 0x97, 0x00, 0x35, 0xb7, 0x13, 0x8a, 0x18, 0x00, 0x89, 0x08, 0xe3, 0x56, 0x3a, 0xff, 0x03, 0xca, 0x07, 0x30, 0xe3, 0xd2, 0x38, 0xff, 0x03, 0xca, 0x07, 0x30, 0x13, 0x8a, 0x18, 0x00, 0x89, 0x08, 0xe3, 0x47, 0x3a, 0xff, 0xb3, 0x8b, 0x3b, 0x41, 0xe3, 0x94, 0x0b, 0xf6, 0xc9, 0xbf, 0x23, 0x04, 0x41, 0x01, 0x01, 0x00, 0x23, 0x20, 0xe8, 0x01, 0x23, 0xaa, 0xe7, 0x03, 0x23, 0xac, 0xe7, 0x03, 0x03, 0x47, 0x81, 0x00, 0x23, 0x80, 0xe7, 0x20, 0x98, 0x47, 0x4d, 0x8f, 0x98, 0xc7, 0x01, 0x00, 0x98, 0x47, 0xe3, 0x4f, 0x07, 0xfe, 0x01, 0x00, 0xd8, 0x4f, 0x13, 0x77, 0xf7, 0x0f, 0x6d, 0xdf, 0x03, 0xc7, 0x07, 0x30, 0x23, 0x20, 0xd8, 0x00, 0xd4, 0xdb, 0x94, 0xdf, 0x23, 0x80, 0x67, 0x20, 0x98, 0x47, 0x4d, 0x8f, 0x98, 0xc7, 0x01, 0x00, 0x98, 0x47, 0xe3, 0x4f, 0x07, 0xfe, 0x01, 0x00, 0xd8, 0x4f, 0x13, 0x77, 0xf7, 0x0f, 0x6d, 0xdf, 0x03, 0xc7, 0x07, 0x30, 0x05, 0x8b, 0x5d, 0xf3, 0x46, 0x87, 0xb5, 0xb9, 0x72, 0x54, 0xe2, 0x54, 0x52, 0x59, 0xc2, 0x59, 0x32, 0x5a, 0xa2, 0x5a, 0x12, 0x5b, 0x82, 0x5b, 0x72, 0x4c, 0xe2, 0x4c, 0x21, 0x61, 0x82, 0x80, 0x00, 0x00 }; fel_write(ctx, 0x02000000, (void *)&payload[0], sizeof(payload)); if(swapbuf) *swapbuf = 0x02002000; if(swaplen) *swaplen = 98304; if(cmdlen) *cmdlen = 4096; return 1; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { fel_write(ctx, 0x02001000, (void *)cbuf, clen); fel_exec(ctx, 0x02000000); return 1; } enum { SID_PRCTL = 0x43006000 + 0x040, SID_PRKEY = 0x43006000 + 0x050, SID_RDKEY = 0x43006000 + 0x060, EFUSE_HV_SWITCH = 0x4a011000 + 0x084, }; static uint32_t efuse_read(struct xfel_ctx_t * ctx, uint32_t offset) { uint32_t val; val = payload_read32(ctx, SID_PRCTL); val &= ~((0x1ff << 16) | 0x3); val |= offset << 16; payload_write32(ctx, SID_PRCTL, val); val &= ~((0xff << 8) | 0x3); val |= (0xac << 8) | 0x2; payload_write32(ctx, SID_PRCTL, val); while(payload_read32(ctx, SID_PRCTL) & 0x2); val &= ~((0x1ff << 16) | (0xff << 8) | 0x3); payload_write32(ctx, SID_PRCTL, val); val = payload_read32(ctx, SID_RDKEY); return val; } static void efuse_write(struct xfel_ctx_t * ctx, uint32_t offset, uint32_t value) { uint32_t val; payload_write32(ctx, EFUSE_HV_SWITCH, 0x1); payload_write32(ctx, SID_PRKEY, value); val = payload_read32(ctx, SID_PRCTL); val &= ~((0x1ff << 16) | 0x3); val |= offset << 16; payload_write32(ctx, SID_PRCTL, val); val &= ~((0xff << 8) | 0x3); val |= (0xac << 8) | 0x1; payload_write32(ctx, SID_PRCTL, val); while(payload_read32(ctx, SID_PRCTL) & 0x1); val &= ~((0x1ff << 16) | (0xff << 8) | 0x3); payload_write32(ctx, SID_PRCTL, val); payload_write32(ctx, EFUSE_HV_SWITCH, 0x0); } static const struct sid_section_t { char * name; uint32_t offset; uint32_t size_bits; } sids[] = { { "chipid", 0x0000, 128 }, { "brom-conf-try", 0x0010, 32 }, { "thermal-sensor", 0x0014, 64 }, { "ft-zone", 0x001c, 128 }, { "tvout", 0x002c, 32 }, { "tvout-gamma", 0x0030, 64 }, { "oem-program", 0x0038, 64 }, { "write-protect", 0x0040, 32 }, { "read-protect", 0x0044, 32 }, { "reserved1", 0x0048, 64 }, { "huk", 0x0050, 192 }, { "reserved2", 0x0068, 64 }, { "rotpk", 0x0070, 256 }, { "ssk", 0x0090, 256 }, { "rssk", 0x00b0, 128 }, { "hdcp-hash", 0x00c0, 128 }, { "nv1", 0x00d0, 32 }, { "nv2", 0x00d4, 32 }, { "reserved3", 0x00d8, 96 }, //{ "oem-program-secure", 0x00e4, 224 }, /* Don't support dump, why? */ }; static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { if(argc > 0) { if(!strcmp(argv[0], "efuse")) { argc -= 1; argv += 1; if(argc > 0) { if(!strcmp(argv[0], "dump") && (argc == 1)) { uint32_t buffer[2048 / 4]; for(int n = 0; n < ARRAY_SIZE(sids); n++) { uint32_t count = sids[n].size_bits / 32; for(int i = 0; i < count; i++) buffer[i] = efuse_read(ctx, sids[n].offset + i * 4); printf("%s:(0x%04x %d-bits)", sids[n].name, sids[n].offset, sids[n].size_bits); for(int i = 0; i < count; i++) { if(i >= 0 && ((i % 8) == 0)) printf("\r\n%-4s", ""); printf("%08x ", buffer[i]); } printf("\r\n"); } return 1; } else if(!strcmp(argv[0], "read32") && (argc == 2)) { uint32_t offset = strtoul(argv[1], NULL, 0); printf("0x%08x\r\n", efuse_read(ctx, offset)); return 1; } else if(!strcmp(argv[0], "write32") && (argc == 3)) { uint32_t offset = strtoul(argv[1], NULL, 0); size_t value = strtoul(argv[2], NULL, 0); efuse_write(ctx, offset, value); return 1; } else if(!strcmp(argv[0], "write") && (argc == 3)) { uint32_t offset = strtoul(argv[1], NULL, 0); uint64_t len; void * buf = file_load(argv[2], &len); if(buf && (len > 0)) { uint8_t * p = buf; uint32_t l = len; uint32_t o = 0; uint32_t v; while(l >= 4) { v = *((uint32_t *)p); efuse_write(ctx, offset + o, v); l -= 4; o += 4; p += 4; } if(l > 0) { uint32_t v = 0; for(int i = 0; i < l; i++) v = ((v << 8) & 0xffffff00) | p[i]; efuse_write(ctx, offset + o, v); } free(buf); return 1; } } } } else if(!strcmp(argv[0], "exec")) { argc -= 1; argv += 1; if(argc > 0) { if(!strcmp(argv[0], "riscv") && (argc == 2)) { uint64_t addr = strtoull(argv[1], NULL, 0); uint32_t val; /* Turn on A27L2 power */ val = payload_read32(ctx, 0x4a011064); val |= 0x1 << 8; payload_write32(ctx, 0x4a011064, val); /* Enable A27L2 clk, run hosc */ payload_write32(ctx, 0x4a010588, 0x1 << 31); /* Enable A27L2 mtclk, run hosc */ payload_write32(ctx, 0x42001010, 0x1 << 31); /* Enable A27L2 msgbus/rvcfg clock and set axi div */ val = payload_read32(ctx, 0x4200107c); val &= ~(0x3 << 8); val |= (0x1 << 8) | (0x3 << 6); payload_write32(ctx, 0x4200107c, val); /* Set E907 clk to hosc for delay */ payload_write32(ctx, 0x4a010584, 0); /* Release A27L2 msgbus/rvcfg reset */ val = payload_read32(ctx, 0x42001094); val |= 0x3 << 27; payload_write32(ctx, 0x42001094, val); /* Set A27L2 start addr */ payload_write32(ctx, 0x49100204, addr); /* Clean wfi mode */ payload_write32(ctx, 0x49100004, 0); /* Keep A27L2 start address */ while(payload_read32(ctx, 0x49100204) == 0x0); /* Release A27L2 cpu */ val = payload_read32(ctx, 0x42001094); val |= (0x1 << 26); payload_write32(ctx, 0x42001094, val); return 1; } } } else if(!strcmp(argv[0], "sign")) { argc -= 1; argv += 1; if(argc > 0) { if(argc == 3) { uint8_t public_key[33] = { 0x03, 0xcf, 0xd1, 0x8e, 0x4a, 0x4b, 0x40, 0xd6, 0x52, 0x94, 0x48, 0xaa, 0x2d, 0xf8, 0xbb, 0xb6, 0x77, 0x12, 0x82, 0x58, 0xb8, 0xfb, 0xfc, 0x5b, 0x9e, 0x49, 0x2f, 0xbb, 0xba, 0x4e, 0x84, 0x83, 0x2f, }; uint8_t private_key[32] = { 0xdc, 0x57, 0xb8, 0xa9, 0xe0, 0xe2, 0xb7, 0xf8, 0xb4, 0xc9, 0x29, 0xbd, 0x8d, 0xb2, 0x84, 0x4e, 0x53, 0xf0, 0x1f, 0x17, 0x1b, 0xbc, 0xdf, 0x6e, 0x62, 0x89, 0x08, 0xdb, 0xf2, 0xb2, 0xe6, 0xa9, }; char * p = argv[0]; if(p && (strcmp(p, "") != 0) && (strlen(p) == sizeof(public_key) * 2)) { for(int i = 0; i < sizeof(public_key); i++) public_key[i] = hex_string(p, i * 2); } char * q = argv[1]; if(q && (strcmp(q, "") != 0) && (strlen(q) == sizeof(private_key) * 2)) { for(int i = 0; i < sizeof(private_key); i++) private_key[i] = hex_string(q, i * 2); } uint32_t offset = strtoul(argv[2], NULL, 0); char sid[256]; uint8_t sha256[32]; uint32_t signature[16]; uint32_t efuse[16]; if(chip_sid(ctx, sid)) { sha256_hash(sid, strlen(sid), sha256); ecdsa256_sign(private_key, sha256, (uint8_t *)&signature[0]); int allzero = 1; for(int i = 0; i < 16; i++) { efuse[i] = efuse_read(ctx, offset + i * 4); if(efuse[i] != 0x00000000) allzero = 0; } if(allzero) { for(int i = 0; i < 16; i++) efuse_write(ctx, offset + i * 4, signature[i]); printf("Unique ID:\r\n\t"); printf("%s\r\n", sid); printf("Sha256 digest:\r\n\t"); for(int i = 0; i < sizeof(sha256); i++) printf("%02x", sha256[i]); printf("\r\n"); printf("Ecdsa256 public key:\r\n\t"); for(int i = 0; i < sizeof(public_key); i++) printf("%02x", public_key[i]); printf("\r\n"); printf("Ecdsa256 private key:\r\n\t"); for(int i = 0; i < sizeof(private_key); i++) printf("%02x", private_key[i]); printf("\r\n"); printf("Ecdsa256 signature:\r\n\t"); uint8_t * p = (uint8_t *)&signature[0]; for(int i = 0; i < sizeof(signature); i++) printf("%02x", p[i]); printf("\r\n"); } else { if(memcmp(&signature[0], &efuse[0], 64) == 0) printf("The chip has been signature and verify successed!\r\n"); else printf("The chip has been signature but verify fail!\r\n"); } } else printf("Can't read chip sid\r\n"); return 1; } } } } printf("usage:\r\n"); printf(" xfel extra efuse dump - Dump all of the efuse information\r\n"); printf(" xfel extra efuse read32 - Read 32-bits value from efuse\r\n"); printf(" xfel extra efuse write32 - Write 32-bits value to efuse\r\n"); printf(" xfel extra efuse write - Write file to efuse\r\n"); printf(" xfel extra exec riscv
- Boot Andes A27L2 and jump to address\r\n"); printf(" xfel extra sign - Generate signature of sid and write to efuse\r\n"); return 0; } struct chip_t v821 = { .name = "V821", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/chips/v831.c000066400000000000000000002734361512120643700144510ustar00rootroot00000000000000#include static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00181700) return 1; return 0; } static uint32_t payload_read32(struct xfel_ctx_t * ctx, uint32_t addr) { static const uint8_t payload[] = { 0x00, 0x00, 0xa0, 0xe3, 0x17, 0x0f, 0x08, 0xee, 0x15, 0x0f, 0x07, 0xee, 0xd5, 0x0f, 0x07, 0xee, 0x9a, 0x0f, 0x07, 0xee, 0x95, 0x0f, 0x07, 0xee, 0xff, 0xff, 0xff, 0xea, 0x0c, 0x00, 0x9f, 0xe5, 0x0c, 0x10, 0x8f, 0xe2, 0x00, 0x20, 0x90, 0xe5, 0x00, 0x20, 0x81, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, }; uint32_t adr = cpu_to_le32(addr); uint32_t val; fel_write(ctx, ctx->version.scratchpad, (void *)payload, sizeof(payload)); fel_write(ctx, ctx->version.scratchpad + sizeof(payload), (void *)&adr, sizeof(adr)); fel_exec(ctx, ctx->version.scratchpad); fel_read(ctx, ctx->version.scratchpad + sizeof(payload) + sizeof(adr), (void *)&val, sizeof(val)); return le32_to_cpu(val); } static void payload_write32(struct xfel_ctx_t * ctx, uint32_t addr, uint32_t val) { static const uint8_t payload[] = { 0x00, 0x00, 0xa0, 0xe3, 0x17, 0x0f, 0x08, 0xee, 0x15, 0x0f, 0x07, 0xee, 0xd5, 0x0f, 0x07, 0xee, 0x9a, 0x0f, 0x07, 0xee, 0x95, 0x0f, 0x07, 0xee, 0xff, 0xff, 0xff, 0xea, 0x08, 0x00, 0x9f, 0xe5, 0x08, 0x10, 0x9f, 0xe5, 0x00, 0x10, 0x80, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, }; uint32_t params[2] = { cpu_to_le32(addr), cpu_to_le32(val), }; fel_write(ctx, ctx->version.scratchpad, (void *)payload, sizeof(payload)); fel_write(ctx, ctx->version.scratchpad + sizeof(payload), (void *)params, sizeof(params)); fel_exec(ctx, ctx->version.scratchpad); } static int chip_reset(struct xfel_ctx_t * ctx) { uint32_t val; val = payload_read32(ctx, 0x030090a0 + 0x18); val &= ~(0xf << 4); val |= (1 << 4) | (0x1 << 0); payload_write32(ctx, 0x030090a0 + 0x18, val); payload_write32(ctx, 0x030090a0 + 0x10, (0xa57 << 1) | (1 << 0)); return 1; } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { uint32_t id[4]; id[0] = payload_read32(ctx, 0x03006200 + 0x0); id[1] = payload_read32(ctx, 0x03006200 + 0x4); id[2] = payload_read32(ctx, 0x03006200 + 0x8); id[3] = payload_read32(ctx, 0x03006200 + 0xc); sprintf(sid, "%08x%08x%08x%08x", id[0], id[1], id[2], id[3]); return 1; } static int chip_jtag(struct xfel_ctx_t * ctx) { static const uint8_t payload[] = { 0x00, 0x00, 0xa0, 0xe3, 0x17, 0x0f, 0x08, 0xee, 0x15, 0x0f, 0x07, 0xee, 0xd5, 0x0f, 0x07, 0xee, 0x9a, 0x0f, 0x07, 0xee, 0x95, 0x0f, 0x07, 0xee, 0xff, 0xff, 0xff, 0xea, 0x58, 0x00, 0x9f, 0xe5, 0x00, 0xd0, 0x80, 0xe5, 0x04, 0xe0, 0x80, 0xe5, 0x00, 0xe0, 0x0f, 0xe1, 0x08, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x0c, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x1c, 0xee, 0x10, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x14, 0xe0, 0x80, 0xe5, 0x0c, 0x00, 0x00, 0xeb, 0x28, 0x00, 0x9f, 0xe5, 0x00, 0xd0, 0x90, 0xe5, 0x04, 0xe0, 0x90, 0xe5, 0x14, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x10, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x0c, 0xee, 0x0c, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x08, 0x10, 0x90, 0xe5, 0x01, 0xf0, 0x29, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0xf8, 0x7f, 0x03, 0x00, 0x0b, 0x3a, 0xa0, 0xe3, 0x00, 0x33, 0x40, 0xe3, 0xb4, 0x20, 0x93, 0xe5, 0x0f, 0x20, 0xc2, 0xe3, 0x03, 0x20, 0x82, 0xe3, 0xb4, 0x20, 0x83, 0xe5, 0xb4, 0x20, 0x93, 0xe5, 0xf0, 0x20, 0xc2, 0xe3, 0x30, 0x20, 0x82, 0xe3, 0xb4, 0x20, 0x83, 0xe5, 0xb4, 0x20, 0x93, 0xe5, 0x0f, 0x2a, 0xc2, 0xe3, 0x03, 0x2a, 0x82, 0xe3, 0xb4, 0x20, 0x83, 0xe5, 0xb4, 0x20, 0x93, 0xe5, 0x0f, 0x26, 0xc2, 0xe3, 0x03, 0x26, 0x82, 0xe3, 0xb4, 0x20, 0x83, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, 0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x4e, 0x55, 0x00, 0x09, 0xd0, 0xba, 0x36, 0x1c, 0xcc, 0x6b, 0x64, 0xc9, 0x91, 0x95, 0xfd, 0x5a, 0xd8, 0x85, 0x3e, 0xe9, 0x1d, 0x1f, 0x00, 0x2f, 0x6c, 0x69, 0x62, 0x2f, 0x6c, 0x64, 0x2d, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x2d, 0x61, 0x72, 0x6d, 0x68, 0x66, 0x2e, 0x73, 0x6f, 0x2e, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0xfe, 0xff, 0x6f, 0x20, 0x21, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x1c, 0x21, 0x02, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0c, 0x21, 0x02, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xfb, 0xff, 0xff, 0x6f, 0x01, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x21, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; fel_write(ctx, 0x00022000, (void *)&payload[0], sizeof(payload)); fel_exec(ctx, 0x00022000); return 1; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { static const uint8_t dram_bin[] = { 0x02, 0x00, 0x00, 0xea, 0x00, 0x72, 0x02, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x40, 0x2d, 0xe9, 0x7c, 0x00, 0x9f, 0xe5, 0x04, 0x40, 0x90, 0xe5, 0x78, 0x00, 0x8f, 0xe2, 0xb9, 0x0a, 0x00, 0xeb, 0xf0, 0x09, 0x00, 0xeb, 0x00, 0x50, 0xa0, 0xe1, 0x2b, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x55, 0xe3, 0x0f, 0x00, 0x00, 0xe2, 0x0c, 0x00, 0x00, 0x0a, 0xa0, 0x61, 0xa0, 0xe1, 0x05, 0x20, 0xa0, 0xe1, 0x50, 0x31, 0xe0, 0xe7, 0xd0, 0x10, 0xe0, 0xe7, 0x4a, 0x00, 0x8d, 0xe8, 0x01, 0x30, 0x00, 0xe2, 0x54, 0x10, 0x9f, 0xe5, 0x04, 0x00, 0x84, 0xe2, 0x08, 0x0b, 0x00, 0xfa, 0x4c, 0x00, 0x9f, 0xe5, 0x00, 0x00, 0x84, 0xe5, 0xfe, 0x40, 0xbd, 0xe8, 0x16, 0x00, 0x00, 0xea, 0xa0, 0x21, 0xa0, 0xe1, 0x50, 0x11, 0xe0, 0xe7, 0x06, 0x00, 0x8d, 0xe8, 0x01, 0x20, 0x00, 0xe2, 0x30, 0x10, 0x9f, 0xe5, 0xd0, 0x30, 0xe0, 0xe7, 0x04, 0x00, 0x84, 0xe2, 0xfc, 0x0a, 0x00, 0xfa, 0x24, 0x00, 0x9f, 0xe5, 0xf2, 0xff, 0xff, 0xea, 0x00, 0x20, 0x02, 0x00, 0x64, 0x72, 0x61, 0x6d, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x2e, 0x0a, 0x00, 0x00, 0x00, 0xb0, 0x50, 0x02, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x24, 0x51, 0x02, 0x00, 0x00, 0x52, 0x41, 0x4d, 0x64, 0x29, 0x02, 0xf0, 0x27, 0x86, 0x00, 0x20, 0x70, 0x47, 0x00, 0x00, 0x9d, 0x0b, 0xa0, 0xe3, 0x00, 0x00, 0x90, 0xe5, 0x07, 0x14, 0xa0, 0xe3, 0x1c, 0x01, 0x81, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, 0xd8, 0x0e, 0x9f, 0xe5, 0x00, 0x00, 0x90, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, 0x64, 0x10, 0xa0, 0xe3, 0x90, 0x01, 0x00, 0xe0, 0x01, 0x00, 0x50, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x30, 0x90, 0xe5, 0x01, 0x10, 0xc3, 0xe1, 0x02, 0x10, 0x81, 0xe1, 0x00, 0x10, 0x80, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, 0xa8, 0x0e, 0x9f, 0xe5, 0x00, 0x10, 0xe0, 0xe3, 0x20, 0x10, 0x80, 0xe5, 0xff, 0x10, 0xa0, 0xe3, 0x24, 0x10, 0x80, 0xe5, 0xff, 0x1f, 0x0f, 0xe3, 0x28, 0x10, 0x80, 0xe5, 0x0a, 0x00, 0xa0, 0xe3, 0xec, 0xff, 0xff, 0xea, 0x84, 0x0e, 0x9f, 0xe5, 0x01, 0x10, 0xa0, 0xe3, 0x20, 0x10, 0x80, 0xe5, 0x00, 0x10, 0xa0, 0xe3, 0x24, 0x10, 0x80, 0xe5, 0x0a, 0x00, 0xa0, 0xe3, 0xe5, 0xff, 0xff, 0xea, 0x70, 0x40, 0x2d, 0xe9, 0x00, 0x20, 0xa0, 0xe1, 0x00, 0x00, 0xa0, 0xe3, 0x00, 0x11, 0xa0, 0xe1, 0x01, 0x13, 0x81, 0xe2, 0x03, 0x1a, 0x81, 0xe2, 0x10, 0x33, 0x91, 0xe5, 0x54, 0x40, 0xd2, 0xe5, 0x58, 0x50, 0xd2, 0xe5, 0x04, 0x4e, 0xa0, 0xe1, 0x0f, 0x50, 0x05, 0xe2, 0xa4, 0x49, 0xa0, 0xe1, 0x85, 0x40, 0x84, 0xe1, 0x04, 0x30, 0x83, 0xe1, 0x10, 0x33, 0x81, 0xe5, 0x01, 0x00, 0x80, 0xe2, 0x09, 0x00, 0x50, 0xe3, 0x00, 0x00, 0xa0, 0x23, 0x1e, 0x40, 0xa0, 0x23, 0xee, 0xff, 0xff, 0x3a, 0x00, 0x11, 0xa0, 0xe1, 0x01, 0x13, 0x81, 0xe2, 0x03, 0x1a, 0x81, 0xe2, 0x90, 0x33, 0x91, 0xe5, 0x58, 0x50, 0x92, 0xe5, 0x54, 0x60, 0xd2, 0xe5, 0xf0, 0x60, 0x06, 0xe2, 0xa5, 0x51, 0x04, 0xe0, 0x86, 0x52, 0x85, 0xe1, 0x05, 0x30, 0x83, 0xe1, 0x90, 0x33, 0x81, 0xe5, 0x01, 0x00, 0x80, 0xe2, 0x09, 0x00, 0x50, 0xe3, 0xf1, 0xff, 0xff, 0x3a, 0xe4, 0x3d, 0x9f, 0xe5, 0x00, 0x01, 0x93, 0xe5, 0x01, 0x03, 0xc0, 0xe3, 0x00, 0x01, 0x83, 0xe5, 0x34, 0x13, 0x93, 0xe5, 0x00, 0x0e, 0x01, 0xe3, 0x54, 0x50, 0x92, 0xe5, 0x58, 0x60, 0x92, 0xe5, 0xa5, 0x53, 0x00, 0xe0, 0xa6, 0x67, 0x04, 0xe0, 0x06, 0x50, 0x85, 0xe1, 0x05, 0x10, 0x81, 0xe1, 0x34, 0x13, 0x83, 0xe5, 0x38, 0x13, 0x93, 0xe5, 0x54, 0x50, 0x92, 0xe5, 0x58, 0x60, 0x92, 0xe5, 0xa5, 0x53, 0x00, 0xe0, 0xa6, 0x67, 0x04, 0xe0, 0x06, 0x50, 0x85, 0xe1, 0x05, 0x10, 0x81, 0xe1, 0x38, 0x13, 0x83, 0xe5, 0xb4, 0x13, 0x93, 0xe5, 0x54, 0x50, 0x92, 0xe5, 0x58, 0x60, 0x92, 0xe5, 0xa5, 0x55, 0x00, 0xe0, 0xa6, 0x69, 0x04, 0xe0, 0x06, 0x50, 0x85, 0xe1, 0x05, 0x10, 0x81, 0xe1, 0xb4, 0x13, 0x83, 0xe5, 0xb8, 0x13, 0x93, 0xe5, 0x54, 0x50, 0x92, 0xe5, 0xa5, 0x05, 0x00, 0xe0, 0x58, 0x50, 0x92, 0xe5, 0xa5, 0x49, 0x04, 0xe0, 0x04, 0x00, 0x80, 0xe1, 0x01, 0x00, 0x80, 0xe1, 0xb8, 0x03, 0x83, 0xe5, 0x3c, 0x03, 0x93, 0xe5, 0x54, 0x10, 0x92, 0xe5, 0x0f, 0x18, 0x01, 0xe2, 0x81, 0x04, 0x80, 0xe1, 0x3c, 0x03, 0x83, 0xe5, 0xbc, 0x03, 0x93, 0xe5, 0x54, 0x10, 0x92, 0xe5, 0x0f, 0x16, 0x01, 0xe2, 0x81, 0x02, 0x80, 0xe1, 0xbc, 0x03, 0x83, 0xe5, 0x00, 0x01, 0x93, 0xe5, 0x01, 0x03, 0x80, 0xe3, 0x00, 0x01, 0x83, 0xe5, 0x01, 0x00, 0xa0, 0xe3, 0x8f, 0xff, 0xff, 0xeb, 0x00, 0x00, 0xa0, 0xe3, 0x00, 0x11, 0xa0, 0xe1, 0x01, 0x13, 0x81, 0xe2, 0x03, 0x1a, 0x81, 0xe2, 0x40, 0x42, 0x91, 0xe5, 0x50, 0x50, 0xd2, 0xe5, 0xf0, 0x50, 0x05, 0xe2, 0x05, 0x42, 0x84, 0xe1, 0x40, 0x42, 0x81, 0xe5, 0x01, 0x00, 0x80, 0xe2, 0x0f, 0x00, 0x50, 0xe3, 0xf4, 0xff, 0xff, 0x3a, 0x18, 0x02, 0x93, 0xe5, 0x50, 0x10, 0xd2, 0xe5, 0x0f, 0x10, 0x01, 0xe2, 0x01, 0x04, 0x80, 0xe1, 0x18, 0x02, 0x83, 0xe5, 0x1c, 0x02, 0x93, 0xe5, 0xb0, 0x15, 0xd2, 0xe1, 0x0f, 0x1c, 0x01, 0xe2, 0x01, 0x00, 0x80, 0xe1, 0x1c, 0x02, 0x83, 0xe5, 0x80, 0x02, 0x93, 0xe5, 0x50, 0x10, 0x92, 0xe5, 0x00, 0x2f, 0x00, 0xe3, 0x21, 0x12, 0x02, 0xe0, 0x01, 0x00, 0x80, 0xe1, 0x80, 0x02, 0x83, 0xe5, 0x70, 0x80, 0xbd, 0xe8, 0xf0, 0x40, 0x2d, 0xe9, 0x59, 0xdf, 0x4d, 0xe2, 0x9c, 0x1c, 0x9f, 0xe5, 0xb0, 0x20, 0xa0, 0xe3, 0x0d, 0x00, 0xa0, 0xe1, 0x92, 0x0a, 0x00, 0xeb, 0x90, 0x1c, 0x9f, 0xe5, 0xb0, 0x00, 0x8d, 0xe2, 0xb0, 0x20, 0xa0, 0xe3, 0x8e, 0x0a, 0x00, 0xeb, 0x78, 0x6c, 0x9f, 0xe5, 0x00, 0x01, 0x96, 0xe5, 0x01, 0x03, 0xc0, 0xe3, 0x00, 0x01, 0x86, 0xe5, 0xb0, 0xc0, 0x8d, 0xe2, 0x00, 0x10, 0xa0, 0xe3, 0x0d, 0x70, 0xa0, 0xe1, 0x00, 0x00, 0xa0, 0xe3, 0x81, 0x20, 0x81, 0xe0, 0x81, 0x21, 0x82, 0xe0, 0x02, 0xe1, 0x87, 0xe0, 0x02, 0x51, 0x8c, 0xe0, 0x00, 0x21, 0x9e, 0xe7, 0x00, 0x31, 0x95, 0xe7, 0x03, 0x34, 0x82, 0xe0, 0x00, 0x21, 0xa0, 0xe1, 0x81, 0x23, 0x82, 0xe0, 0x01, 0x23, 0x82, 0xe2, 0x03, 0x2a, 0x82, 0xe2, 0x10, 0x43, 0x92, 0xe5, 0x04, 0x30, 0x83, 0xe0, 0x10, 0x33, 0x82, 0xe5, 0x01, 0x00, 0x80, 0xe2, 0x0b, 0x00, 0x50, 0xe3, 0xf2, 0xff, 0xff, 0x3a, 0x01, 0x10, 0x81, 0xe2, 0x04, 0x00, 0x51, 0xe3, 0x00, 0x01, 0x96, 0x25, 0x01, 0x03, 0x80, 0x23, 0x00, 0x01, 0x86, 0x25, 0xe7, 0xff, 0xff, 0x3a, 0x59, 0xdf, 0x8d, 0xe2, 0xf0, 0x80, 0xbd, 0xe8, 0xf0, 0x1b, 0x9f, 0xe5, 0x0c, 0x20, 0x91, 0xe5, 0x00, 0x30, 0xe0, 0xe3, 0x00, 0x00, 0x90, 0xe5, 0x1f, 0x20, 0xcb, 0xe7, 0xa0, 0x00, 0x83, 0xe0, 0x02, 0x00, 0x80, 0xe1, 0x0c, 0x00, 0x81, 0xe5, 0x01, 0x08, 0xa0, 0xe3, 0x00, 0x02, 0x81, 0xe5, 0xd8, 0x0b, 0x9f, 0xe5, 0x10, 0x02, 0x81, 0xe5, 0xd4, 0x2b, 0x9f, 0xe5, 0x14, 0x22, 0x81, 0xe5, 0xd0, 0x3b, 0x9f, 0xe5, 0x30, 0x32, 0x81, 0xe5, 0xcc, 0x3b, 0x9f, 0xe5, 0x34, 0x32, 0x81, 0xe5, 0x40, 0x02, 0x81, 0xe5, 0x44, 0x22, 0x81, 0xe5, 0xc0, 0x2b, 0x9f, 0xe5, 0x60, 0x22, 0x81, 0xe5, 0xbc, 0x2b, 0x9f, 0xe5, 0x64, 0x22, 0x81, 0xe5, 0x90, 0x02, 0x81, 0xe5, 0x82, 0x00, 0xa0, 0xe1, 0x94, 0x02, 0x81, 0xe5, 0x47, 0x1e, 0x81, 0xe2, 0x00, 0x00, 0xa0, 0xe3, 0x00, 0x00, 0x81, 0xe5, 0x41, 0x1c, 0x81, 0xe1, 0x00, 0x00, 0x81, 0xe5, 0x74, 0x0b, 0x9f, 0xe5, 0x94, 0x1b, 0x9f, 0xe5, 0xc0, 0x11, 0x80, 0xe5, 0x90, 0x1b, 0x9f, 0xe5, 0xc8, 0x11, 0x80, 0xe5, 0x8c, 0x1b, 0x9f, 0xe5, 0xd0, 0x11, 0x80, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, 0x90, 0x01, 0x01, 0xe0, 0xe8, 0x23, 0x00, 0xe3, 0x11, 0xf2, 0x30, 0xe7, 0x92, 0x10, 0x61, 0xe0, 0x00, 0x00, 0x51, 0xe3, 0x01, 0x10, 0xa0, 0x13, 0x01, 0x00, 0x80, 0xe0, 0x1e, 0xff, 0x2f, 0xe1, 0xf0, 0x4f, 0x2d, 0xe9, 0x74, 0xd0, 0x4d, 0xe2, 0x00, 0x30, 0xa0, 0xe1, 0x00, 0x00, 0xa0, 0xe3, 0x0c, 0x10, 0xa0, 0xe3, 0x00, 0xb0, 0xa0, 0xe1, 0x08, 0x40, 0xa0, 0xe3, 0x28, 0x00, 0x8d, 0xe5, 0x03, 0x50, 0xa0, 0xe3, 0x20, 0x00, 0x8d, 0xe5, 0x03, 0x90, 0xa0, 0xe3, 0x50, 0x00, 0x8d, 0xe5, 0x09, 0x80, 0xa0, 0xe1, 0x2c, 0x00, 0x8d, 0xe5, 0x09, 0xc0, 0xa0, 0xe1, 0x24, 0x00, 0x8d, 0xe5, 0x05, 0x60, 0xa0, 0xe1, 0x34, 0x00, 0x8d, 0xe5, 0x0a, 0x70, 0xa0, 0xe3, 0x64, 0x00, 0x8d, 0xe5, 0x01, 0x00, 0xa0, 0xe3, 0x18, 0x00, 0x8d, 0xe5, 0x62, 0xa0, 0xa0, 0xe3, 0x14, 0x00, 0x8d, 0xe5, 0x00, 0x00, 0xa0, 0xe3, 0x68, 0x00, 0x8d, 0xe5, 0x02, 0x00, 0xa0, 0xe3, 0x60, 0x00, 0x8d, 0xe5, 0x06, 0x00, 0xa0, 0xe3, 0x48, 0x00, 0x8d, 0xe5, 0x02, 0x00, 0xa0, 0xe3, 0x6c, 0x00, 0x8d, 0xe5, 0x5c, 0x00, 0x8d, 0xe5, 0x06, 0x00, 0xa0, 0xe3, 0x08, 0x00, 0x8d, 0xe5, 0x14, 0x00, 0xa0, 0xe3, 0x04, 0x00, 0x8d, 0xe5, 0x10, 0x00, 0xa0, 0xe3, 0x1c, 0x00, 0x8d, 0xe5, 0x0e, 0x00, 0xa0, 0xe3, 0x54, 0x10, 0x8d, 0xe5, 0x1b, 0x10, 0xa0, 0xe3, 0x0c, 0x00, 0x8d, 0xe5, 0x06, 0x00, 0xa0, 0xe3, 0x44, 0x10, 0x8d, 0xe5, 0x04, 0x10, 0xa0, 0xe3, 0x10, 0x00, 0x8d, 0xe5, 0x80, 0x00, 0xa0, 0xe3, 0x4c, 0x40, 0x8d, 0xe5, 0x30, 0x10, 0x8d, 0xe5, 0x40, 0x50, 0x8d, 0xe5, 0x3c, 0x10, 0x8d, 0xe5, 0x38, 0x10, 0x8d, 0xe5, 0x5c, 0x10, 0xd3, 0xe5, 0x02, 0x00, 0x11, 0xe3, 0x51, 0x21, 0xe1, 0xe7, 0x70, 0x20, 0x8d, 0xe5, 0x00, 0x20, 0x93, 0xe5, 0xa2, 0xe0, 0xa0, 0xe1, 0x00, 0xe0, 0x8d, 0xe5, 0x04, 0xe0, 0x93, 0xe5, 0x58, 0xe0, 0x8d, 0xe5, 0x14, 0x00, 0x00, 0x0a, 0x28, 0x00, 0x93, 0xe5, 0xd0, 0x1a, 0xe2, 0xe7, 0x6c, 0x10, 0x8d, 0xe5, 0xd0, 0x17, 0xe5, 0xe7, 0x1c, 0x10, 0x8d, 0xe5, 0x50, 0x13, 0xe4, 0xe7, 0xd0, 0xc5, 0xe3, 0xe7, 0x3f, 0x00, 0x00, 0xe2, 0xf4, 0x00, 0xcd, 0xe1, 0x2c, 0x00, 0x93, 0xe5, 0x50, 0x13, 0xe4, 0xe7, 0xd0, 0x7b, 0xe4, 0xe7, 0x50, 0x5a, 0xe2, 0xe7, 0xd0, 0x67, 0xe4, 0xe7, 0xd0, 0x45, 0xe3, 0xe7, 0x3f, 0x00, 0x00, 0xe2, 0xfc, 0x00, 0xcd, 0xe1, 0x30, 0xa0, 0x93, 0xe5, 0x5a, 0x06, 0xe8, 0xe7, 0x1f, 0xa6, 0xdf, 0xe7, 0xd2, 0x00, 0x00, 0xea, 0x03, 0x00, 0x5e, 0xe3, 0x06, 0x00, 0x00, 0x0a, 0x02, 0x00, 0x5e, 0xe3, 0x71, 0x00, 0x00, 0x0a, 0x06, 0x00, 0x5e, 0xe3, 0x9d, 0x00, 0x00, 0x0a, 0x07, 0x00, 0x5e, 0xe3, 0xd7, 0x00, 0x00, 0x0a, 0xb8, 0x00, 0x00, 0xea, 0x00, 0x10, 0x9d, 0xe5, 0x32, 0x0e, 0x52, 0xe3, 0x2f, 0x00, 0x00, 0x8a, 0x32, 0x00, 0xa0, 0xe3, 0x95, 0xff, 0xff, 0xeb, 0x00, 0x10, 0x9d, 0xe5, 0x1c, 0x00, 0x8d, 0xe5, 0x0a, 0x00, 0xa0, 0xe3, 0x91, 0xff, 0xff, 0xeb, 0x02, 0x00, 0x50, 0xe3, 0x00, 0xc0, 0xa0, 0xe1, 0x00, 0x10, 0x9d, 0xe5, 0x02, 0xc0, 0xa0, 0x33, 0x0f, 0x00, 0xa0, 0xe3, 0x8b, 0xff, 0xff, 0xeb, 0x00, 0x10, 0x9d, 0xe5, 0x08, 0x00, 0x8d, 0xe5, 0x35, 0x00, 0xa0, 0xe3, 0x87, 0xff, 0xff, 0xeb, 0x00, 0x10, 0x9d, 0xe5, 0x04, 0x00, 0x8d, 0xe5, 0x08, 0x00, 0xa0, 0xe3, 0x83, 0xff, 0xff, 0xeb, 0x02, 0x00, 0x50, 0xe3, 0x00, 0x70, 0xa0, 0xe1, 0x00, 0x10, 0x9d, 0xe5, 0x02, 0x70, 0xa0, 0x33, 0x08, 0x00, 0xa0, 0xe3, 0x7d, 0xff, 0xff, 0xeb, 0x02, 0x00, 0x50, 0xe3, 0x00, 0x50, 0xa0, 0xe1, 0x00, 0x10, 0x9d, 0xe5, 0x02, 0x50, 0xa0, 0x33, 0x08, 0x00, 0xa0, 0xe3, 0x77, 0xff, 0xff, 0xeb, 0x02, 0x00, 0x50, 0xe3, 0x00, 0x60, 0xa0, 0xe1, 0x00, 0x10, 0x9d, 0xe5, 0x02, 0x60, 0xa0, 0x33, 0x0f, 0x00, 0xa0, 0xe3, 0x71, 0xff, 0xff, 0xeb, 0x02, 0x00, 0x50, 0xe3, 0x00, 0x40, 0xa0, 0xe1, 0x00, 0x10, 0x9d, 0xe5, 0x02, 0x40, 0xa0, 0x33, 0x0f, 0x00, 0xa0, 0xe3, 0x6b, 0xff, 0xff, 0xeb, 0x00, 0x10, 0x9d, 0xe5, 0x10, 0x00, 0x8d, 0xe5, 0x26, 0x00, 0xa0, 0xe3, 0x2e, 0x00, 0x00, 0xea, 0x23, 0x00, 0xa0, 0xe3, 0x65, 0xff, 0xff, 0xeb, 0x00, 0x10, 0x9d, 0xe5, 0x1c, 0x00, 0x8d, 0xe5, 0x06, 0x00, 0xa0, 0xe3, 0x61, 0xff, 0xff, 0xeb, 0x02, 0x00, 0x50, 0xe3, 0x00, 0xc0, 0xa0, 0xe1, 0x00, 0x10, 0x9d, 0xe5, 0x02, 0xc0, 0xa0, 0x33, 0x0e, 0x00, 0xa0, 0xe3, 0x5b, 0xff, 0xff, 0xeb, 0x00, 0x10, 0x9d, 0xe5, 0x08, 0x00, 0x8d, 0xe5, 0x30, 0x00, 0xa0, 0xe3, 0x57, 0xff, 0xff, 0xeb, 0x00, 0x10, 0x9d, 0xe5, 0x04, 0x00, 0x8d, 0xe5, 0x06, 0x00, 0xa0, 0xe3, 0x53, 0xff, 0xff, 0xeb, 0x02, 0x00, 0x50, 0xe3, 0x00, 0x70, 0xa0, 0xe1, 0x00, 0x10, 0x9d, 0xe5, 0x02, 0x70, 0xa0, 0x33, 0x08, 0x00, 0xa0, 0xe3, 0x4d, 0xff, 0xff, 0xeb, 0x02, 0x00, 0x50, 0xe3, 0x00, 0x50, 0xa0, 0xe1, 0x00, 0x10, 0x9d, 0xe5, 0x02, 0x50, 0xa0, 0x33, 0x08, 0x00, 0xa0, 0xe3, 0x47, 0xff, 0xff, 0xeb, 0x02, 0x00, 0x50, 0xe3, 0x00, 0x60, 0xa0, 0xe1, 0x00, 0x10, 0x9d, 0xe5, 0x02, 0x60, 0xa0, 0x33, 0x0f, 0x00, 0xa0, 0xe3, 0x41, 0xff, 0xff, 0xeb, 0x02, 0x00, 0x50, 0xe3, 0x00, 0x40, 0xa0, 0xe1, 0x00, 0x10, 0x9d, 0xe5, 0x02, 0x40, 0xa0, 0x33, 0x0e, 0x00, 0xa0, 0xe3, 0x3b, 0xff, 0xff, 0xeb, 0x00, 0x10, 0x9d, 0xe5, 0x10, 0x00, 0x8d, 0xe5, 0x22, 0x00, 0xa0, 0xe3, 0x37, 0xff, 0xff, 0xeb, 0x00, 0x10, 0x9d, 0xe5, 0x0c, 0x00, 0x8d, 0xe5, 0x78, 0x0e, 0x01, 0xe3, 0x33, 0xff, 0xff, 0xeb, 0x1f, 0x10, 0x10, 0xe2, 0x01, 0x10, 0xa0, 0x13, 0xa0, 0xa2, 0x81, 0xe0, 0x00, 0x10, 0x9d, 0xe5, 0x5e, 0x01, 0x00, 0xe3, 0x4a, 0x00, 0x00, 0xea, 0x00, 0x10, 0x9d, 0xe5, 0x32, 0x00, 0xa0, 0xe3, 0x2a, 0xff, 0xff, 0xeb, 0x00, 0x10, 0x9d, 0xe5, 0x1c, 0x00, 0x8d, 0xe5, 0x0a, 0x00, 0xa0, 0xe3, 0x26, 0xff, 0xff, 0xeb, 0x00, 0x10, 0x9d, 0xe5, 0x00, 0xc0, 0xa0, 0xe1, 0x14, 0x00, 0xa0, 0xe3, 0x22, 0xff, 0xff, 0xeb, 0x00, 0x10, 0x9d, 0xe5, 0x08, 0x00, 0x8d, 0xe5, 0x41, 0x00, 0xa0, 0xe3, 0x1e, 0xff, 0xff, 0xeb, 0x00, 0x10, 0x9d, 0xe5, 0x02, 0x70, 0xa0, 0xe3, 0x04, 0x00, 0x8d, 0xe5, 0x08, 0x00, 0xa0, 0xe3, 0x19, 0xff, 0xff, 0xeb, 0x00, 0x10, 0x9d, 0xe5, 0x00, 0x50, 0xa0, 0xe1, 0x08, 0x00, 0xa0, 0xe3, 0x15, 0xff, 0xff, 0xeb, 0x00, 0x10, 0x9d, 0xe5, 0x00, 0x60, 0xa0, 0xe1, 0x0f, 0x00, 0xa0, 0xe3, 0x11, 0xff, 0xff, 0xeb, 0x00, 0x10, 0x9d, 0xe5, 0x00, 0x40, 0xa0, 0xe1, 0x0f, 0x00, 0xa0, 0xe3, 0x0d, 0xff, 0xff, 0xeb, 0x00, 0x10, 0x9d, 0xe5, 0x10, 0x00, 0x8d, 0xe5, 0x2d, 0x00, 0xa0, 0xe3, 0x09, 0xff, 0xff, 0xeb, 0x00, 0x10, 0x9d, 0xe5, 0x0c, 0x00, 0x8d, 0xe5, 0x78, 0x0e, 0x01, 0xe3, 0x05, 0xff, 0xff, 0xeb, 0x1f, 0x10, 0x10, 0xe2, 0x01, 0x10, 0xa0, 0x13, 0xa0, 0xa2, 0x81, 0xe0, 0x00, 0x10, 0x9d, 0xe5, 0x48, 0x01, 0x00, 0xe3, 0x1c, 0x00, 0x00, 0xea, 0x00, 0x10, 0x9d, 0xe5, 0x32, 0x00, 0xa0, 0xe3, 0xfc, 0xfe, 0xff, 0xeb, 0x04, 0x00, 0x50, 0xe3, 0x1c, 0x00, 0x8d, 0xe5, 0x04, 0x00, 0xa0, 0x33, 0x00, 0x10, 0x9d, 0xe5, 0x1c, 0x00, 0x8d, 0x35, 0x0a, 0x00, 0xa0, 0xe3, 0xf5, 0xfe, 0xff, 0xeb, 0x00, 0xc0, 0xb0, 0xe1, 0x00, 0x10, 0x9d, 0xe5, 0x01, 0xc0, 0xa0, 0x03, 0x18, 0x00, 0xa0, 0xe3, 0xf0, 0xfe, 0xff, 0xeb, 0x02, 0x00, 0x50, 0xe3, 0x08, 0x00, 0x8d, 0xe5, 0x02, 0x00, 0xa0, 0x33, 0x00, 0x10, 0x9d, 0xe5, 0x08, 0x00, 0x8d, 0x35, 0x46, 0x00, 0xa0, 0xe3, 0xe9, 0xfe, 0xff, 0xeb, 0x00, 0x10, 0x9d, 0xe5, 0x04, 0x00, 0x8d, 0xe5, 0x08, 0x00, 0xa0, 0xe3, 0xe5, 0xfe, 0xff, 0xeb, 0x00, 0x70, 0xb0, 0xe1, 0x01, 0x70, 0xa0, 0x03, 0x3b, 0x00, 0x00, 0xea, 0xe1, 0xfe, 0xff, 0xeb, 0x06, 0x00, 0x9d, 0xe9, 0x02, 0x13, 0x81, 0xe1, 0x8c, 0x25, 0x81, 0xe1, 0x1c, 0x10, 0x9d, 0xe5, 0x81, 0x17, 0x82, 0xe1, 0x01, 0x15, 0x81, 0xe3, 0x28, 0x10, 0x83, 0xe5, 0x10, 0x20, 0x9d, 0xe5, 0x0c, 0x10, 0x9d, 0xe5, 0x02, 0x13, 0x81, 0xe1, 0x84, 0x15, 0x81, 0xe1, 0x86, 0x17, 0x81, 0xe1, 0x05, 0x1a, 0x81, 0xe1, 0x87, 0x1b, 0x81, 0xe1, 0x2c, 0x10, 0x83, 0xe5, 0x00, 0x16, 0x8a, 0xe1, 0x30, 0x10, 0x83, 0xe5, 0x58, 0x10, 0x9d, 0xe5, 0x01, 0x20, 0xa0, 0xe3, 0x0f, 0xe0, 0xa0, 0xe3, 0x02, 0x00, 0x51, 0xe3, 0x47, 0x00, 0x00, 0x0a, 0x03, 0x00, 0x51, 0xe3, 0x73, 0x00, 0x00, 0x0a, 0x06, 0x00, 0x51, 0xe3, 0x1e, 0xe0, 0xa0, 0xe3, 0x2b, 0x01, 0x00, 0x0a, 0x07, 0x00, 0x51, 0xe3, 0x57, 0x01, 0x00, 0x0a, 0xb9, 0x00, 0x00, 0xea, 0x00, 0x10, 0x9d, 0xe5, 0x32, 0x00, 0xa0, 0xe3, 0xc0, 0xfe, 0xff, 0xeb, 0x04, 0x00, 0x50, 0xe3, 0x1c, 0x00, 0x8d, 0xe5, 0x04, 0x00, 0xa0, 0x33, 0x00, 0x10, 0x9d, 0xe5, 0x1c, 0x00, 0x8d, 0x35, 0x0a, 0x00, 0xa0, 0xe3, 0xb9, 0xfe, 0xff, 0xeb, 0x00, 0xc0, 0xb0, 0xe1, 0x00, 0x10, 0x9d, 0xe5, 0x01, 0xc0, 0xa0, 0x03, 0x18, 0x00, 0xa0, 0xe3, 0xb4, 0xfe, 0xff, 0xeb, 0x02, 0x00, 0x50, 0xe3, 0x08, 0x00, 0x8d, 0xe5, 0x02, 0x00, 0xa0, 0x33, 0x00, 0x10, 0x9d, 0xe5, 0x08, 0x00, 0x8d, 0x35, 0x46, 0x00, 0xa0, 0xe3, 0xad, 0xfe, 0xff, 0xeb, 0x00, 0x10, 0x9d, 0xe5, 0x04, 0x00, 0x8d, 0xe5, 0x08, 0x00, 0xa0, 0xe3, 0xa9, 0xfe, 0xff, 0xeb, 0x02, 0x00, 0x50, 0xe3, 0x00, 0x70, 0xa0, 0xe1, 0x02, 0x70, 0xa0, 0x33, 0x00, 0x10, 0x9d, 0xe5, 0x08, 0x00, 0xa0, 0xe3, 0xa3, 0xfe, 0xff, 0xeb, 0x02, 0x00, 0x50, 0xe3, 0x00, 0x50, 0xa0, 0xe1, 0x00, 0x10, 0x9d, 0xe5, 0x02, 0x50, 0xa0, 0x33, 0x08, 0x00, 0xa0, 0xe3, 0x9d, 0xfe, 0xff, 0xeb, 0x02, 0x00, 0x50, 0xe3, 0x00, 0x60, 0xa0, 0xe1, 0x00, 0x10, 0x9d, 0xe5, 0x02, 0x60, 0xa0, 0x33, 0x0f, 0x00, 0xa0, 0xe3, 0x97, 0xfe, 0xff, 0xeb, 0x02, 0x00, 0x50, 0xe3, 0x00, 0x40, 0xa0, 0xe1, 0x00, 0x10, 0x9d, 0xe5, 0x02, 0x40, 0xa0, 0x33, 0x11, 0x00, 0xa0, 0xe3, 0x91, 0xfe, 0xff, 0xeb, 0x00, 0x10, 0x9d, 0xe5, 0x10, 0x00, 0x8d, 0xe5, 0x2a, 0x00, 0xa0, 0xe3, 0x8d, 0xfe, 0xff, 0xeb, 0x00, 0x10, 0x9d, 0xe5, 0x0c, 0x00, 0x8d, 0xe5, 0x3c, 0x0f, 0x00, 0xe3, 0x89, 0xfe, 0xff, 0xeb, 0x1f, 0x10, 0x10, 0xe2, 0x01, 0x10, 0xa0, 0x13, 0xa0, 0xa2, 0x81, 0xe0, 0x00, 0x10, 0x9d, 0xe5, 0xd2, 0x00, 0xa0, 0xe3, 0xa0, 0xff, 0xff, 0xea, 0x0c, 0x10, 0xa0, 0xe3, 0x48, 0x10, 0x8d, 0xe5, 0x03, 0x10, 0xa0, 0xe3, 0x5c, 0x10, 0x8d, 0xe5, 0x05, 0x10, 0xa0, 0xe3, 0x3c, 0x10, 0x8d, 0xe5, 0x38, 0x10, 0x8d, 0xe5, 0x04, 0x10, 0xa0, 0xe3, 0x40, 0x10, 0x8d, 0xe5, 0x00, 0x10, 0x9d, 0xe5, 0x11, 0xfe, 0x31, 0xe7, 0x44, 0x10, 0x8d, 0xe5, 0x01, 0x20, 0xa0, 0xe3, 0x00, 0x10, 0x9d, 0xe5, 0xcc, 0x00, 0x51, 0xe3, 0x02, 0x10, 0xa0, 0x83, 0x18, 0x10, 0x8d, 0x85, 0x73, 0x1e, 0x00, 0x83, 0x63, 0x1a, 0x00, 0x93, 0x50, 0x10, 0x8d, 0xe5, 0x04, 0x90, 0xa0, 0x83, 0x00, 0x10, 0x93, 0xe5, 0x1c, 0xb0, 0x93, 0xe5, 0x00, 0x10, 0x8d, 0xe5, 0x81, 0xe1, 0x81, 0xe0, 0x01, 0xe2, 0x8e, 0xe0, 0x0e, 0x12, 0x82, 0xe0, 0x28, 0x10, 0x8d, 0xe5, 0x00, 0x10, 0x9d, 0xe5, 0xf4, 0x21, 0x00, 0xe3, 0x91, 0x02, 0x02, 0xe0, 0xe8, 0x13, 0x00, 0xe3, 0x12, 0xf1, 0x31, 0xe7, 0x01, 0x10, 0x81, 0xe2, 0x01, 0x20, 0xa0, 0xe3, 0x2c, 0x10, 0x8d, 0xe5, 0x8e, 0x11, 0x82, 0xe0, 0x20, 0x10, 0x8d, 0xe5, 0x00, 0x10, 0x9d, 0xe5, 0x01, 0x10, 0x81, 0xe2, 0x24, 0x10, 0x8d, 0xe5, 0x05, 0x10, 0x84, 0xe2, 0x54, 0x10, 0x8d, 0xe5, 0x05, 0x10, 0x85, 0xe2, 0x4c, 0x10, 0x8d, 0xe5, 0x4b, 0x00, 0x00, 0xea, 0x04, 0x10, 0xa0, 0xe3, 0x60, 0x10, 0x8d, 0xe5, 0x0c, 0x10, 0xa0, 0xe3, 0x48, 0x10, 0x8d, 0xe5, 0x03, 0x10, 0xa0, 0xe3, 0x5c, 0x10, 0x8d, 0xe5, 0x05, 0x10, 0xa0, 0xe3, 0x3c, 0x10, 0x8d, 0xe5, 0x38, 0x10, 0x8d, 0xe5, 0x04, 0x10, 0xa0, 0xe3, 0x40, 0x10, 0x8d, 0xe5, 0x00, 0x10, 0x9d, 0xe5, 0x11, 0xfe, 0x31, 0xe7, 0x44, 0x10, 0x8d, 0xe5, 0x00, 0x10, 0x93, 0xe5, 0x00, 0x10, 0x8d, 0xe5, 0x32, 0x0e, 0x51, 0xe3, 0x09, 0x00, 0x00, 0x8a, 0x02, 0x10, 0xa0, 0xe3, 0x14, 0x10, 0x8d, 0xe5, 0x04, 0x80, 0xa0, 0xe3, 0x70, 0x1c, 0x01, 0xe3, 0x18, 0x80, 0x8d, 0xe5, 0x06, 0x90, 0xa0, 0xe3, 0x50, 0x10, 0x8d, 0xe5, 0x18, 0x10, 0xa0, 0xe3, 0x1c, 0xb0, 0x93, 0xe5, 0x08, 0x00, 0x00, 0xea, 0x03, 0x10, 0xa0, 0xe3, 0x14, 0x10, 0x8d, 0xe5, 0x05, 0x80, 0xa0, 0xe3, 0x14, 0x1e, 0x01, 0xe3, 0x18, 0x80, 0x8d, 0xe5, 0x07, 0x90, 0xa0, 0xe3, 0x50, 0x10, 0x8d, 0xe5, 0x20, 0x10, 0xa0, 0xe3, 0x1c, 0xb0, 0x93, 0xe5, 0x68, 0x21, 0x00, 0xe3, 0x34, 0x10, 0x8d, 0xe5, 0x00, 0x10, 0x9d, 0xe5, 0x81, 0xe0, 0x81, 0xe0, 0x81, 0xe3, 0x6e, 0xe0, 0x01, 0x10, 0xa0, 0xe3, 0x0e, 0x11, 0x81, 0xe0, 0x28, 0x10, 0x8d, 0xe5, 0x00, 0x10, 0x9d, 0xe5, 0x91, 0x02, 0x02, 0xe0, 0xe8, 0x13, 0x00, 0xe3, 0x12, 0xf1, 0x31, 0xe7, 0x01, 0x10, 0x81, 0xe2, 0x2c, 0x10, 0x8d, 0xe5, 0x00, 0x10, 0x9d, 0xe5, 0x81, 0x21, 0x81, 0xe0, 0x01, 0x22, 0x82, 0xe0, 0x01, 0x10, 0xa0, 0xe3, 0x82, 0x11, 0x81, 0xe0, 0x20, 0x10, 0x8d, 0xe5, 0x00, 0x10, 0x9d, 0xe5, 0x01, 0x10, 0x81, 0xe2, 0x24, 0x10, 0x8d, 0xe5, 0x04, 0x10, 0x88, 0xe0, 0x02, 0x10, 0x81, 0xe2, 0x54, 0x10, 0x8d, 0xe5, 0x05, 0x10, 0x88, 0xe0, 0x02, 0x10, 0x81, 0xe2, 0x4c, 0x10, 0x8d, 0xe5, 0x08, 0x10, 0x49, 0xe0, 0x03, 0x10, 0x81, 0xe2, 0x30, 0x10, 0x8d, 0xe5, 0x70, 0x10, 0x9d, 0xe5, 0x01, 0x00, 0x51, 0xe3, 0x00, 0x10, 0x9d, 0x15, 0x39, 0x0e, 0x51, 0x13, 0x30, 0x10, 0x9d, 0x85, 0x01, 0x10, 0x81, 0x82, 0x30, 0x10, 0x8d, 0x85, 0x10, 0x10, 0x9d, 0xe5, 0x02, 0x20, 0x89, 0xe2, 0x06, 0x10, 0x81, 0xe0, 0x02, 0x00, 0x51, 0xe1, 0x10, 0x10, 0x9d, 0x35, 0x01, 0x10, 0x49, 0x30, 0x02, 0x60, 0x81, 0x32, 0x18, 0x10, 0x93, 0xe5, 0x21, 0x18, 0xb0, 0xe1, 0x50, 0x10, 0x9d, 0x05, 0x18, 0x10, 0x83, 0x05, 0x1c, 0x10, 0x93, 0xe5, 0x21, 0x18, 0xb0, 0xe1, 0x1c, 0xb0, 0x83, 0x05, 0x20, 0x10, 0x93, 0xe5, 0x21, 0x18, 0xb0, 0xe1, 0x34, 0x10, 0x9d, 0x05, 0x20, 0x10, 0x83, 0x05, 0x24, 0x10, 0x93, 0xe5, 0x21, 0x18, 0xb0, 0xe1, 0x64, 0x10, 0x9d, 0x05, 0x24, 0x10, 0x83, 0x05, 0xb8, 0x11, 0xd3, 0xe1, 0x71, 0x20, 0xff, 0xe6, 0x1c, 0x13, 0x9f, 0xe5, 0x30, 0x20, 0x81, 0xe5, 0xbc, 0x21, 0xd3, 0xe1, 0x72, 0x20, 0xff, 0xe6, 0x34, 0x20, 0x81, 0xe5, 0xb0, 0x22, 0xd3, 0xe1, 0x72, 0x20, 0xff, 0xe6, 0x38, 0x20, 0x81, 0xe5, 0xb4, 0x22, 0xd3, 0xe1, 0x72, 0x20, 0xff, 0xe6, 0x3c, 0x20, 0x81, 0xe5, 0x0c, 0x20, 0xd3, 0xe5, 0x52, 0x22, 0xe1, 0xe7, 0x2c, 0x20, 0x81, 0xe5, 0x54, 0x20, 0x9d, 0xe5, 0x02, 0x4c, 0xa0, 0xe1, 0x1c, 0x20, 0x9d, 0xe5, 0x02, 0x48, 0x84, 0xe1, 0x44, 0x20, 0x9d, 0xe5, 0x02, 0x44, 0x84, 0xe1, 0x0c, 0x20, 0x9d, 0xe5, 0x04, 0x20, 0x82, 0xe1, 0x58, 0x20, 0x81, 0xe5, 0x07, 0x28, 0xa0, 0xe1, 0x06, 0x44, 0x82, 0xe1, 0x04, 0x20, 0x9d, 0xe5, 0x04, 0x20, 0x82, 0xe1, 0x5c, 0x20, 0x81, 0xe5, 0x08, 0x2c, 0xa0, 0xe1, 0x09, 0x48, 0x82, 0xe1, 0x30, 0x20, 0x9d, 0xe5, 0x02, 0x44, 0x84, 0xe1, 0x4c, 0x20, 0x9d, 0xe5, 0x04, 0x20, 0x82, 0xe1, 0x60, 0x20, 0x81, 0xe5, 0x68, 0x20, 0x9d, 0xe5, 0x02, 0x48, 0xa0, 0xe1, 0x60, 0x20, 0x9d, 0xe5, 0x02, 0x46, 0x84, 0xe1, 0x48, 0x20, 0x9d, 0xe5, 0x04, 0x20, 0x82, 0xe1, 0x64, 0x20, 0x81, 0xe5, 0x08, 0x20, 0x9d, 0xe5, 0x02, 0x4c, 0xa0, 0xe1, 0x6c, 0x20, 0x9d, 0xe5, 0x02, 0x28, 0x84, 0xe1, 0x0c, 0x44, 0x82, 0xe1, 0x10, 0x20, 0x9d, 0xe5, 0x04, 0x20, 0x82, 0xe1, 0x68, 0x20, 0x81, 0xe5, 0x3c, 0x20, 0x9d, 0xe5, 0x02, 0x4c, 0xa0, 0xe1, 0x38, 0x20, 0x9d, 0xe5, 0x02, 0x48, 0x84, 0xe1, 0x40, 0x20, 0x9d, 0xe5, 0x02, 0x44, 0x84, 0xe1, 0x5c, 0x20, 0x9d, 0xe5, 0x04, 0x20, 0x82, 0xe1, 0x6c, 0x20, 0x81, 0xe5, 0x78, 0x20, 0x91, 0xe5, 0x00, 0x30, 0x93, 0xe5, 0xff, 0x2c, 0xc2, 0xe3, 0xff, 0x20, 0xc2, 0xe3, 0x32, 0x0e, 0x53, 0xe3, 0x0f, 0x22, 0x82, 0xe3, 0x66, 0x2c, 0x82, 0x93, 0x76, 0x2c, 0x82, 0x83, 0x10, 0x20, 0x82, 0xe3, 0x78, 0x20, 0x81, 0xe5, 0xd4, 0x21, 0xcd, 0xe1, 0x03, 0x28, 0x82, 0xe1, 0x02, 0x24, 0x82, 0xe3, 0x01, 0x2c, 0x82, 0xe3, 0x80, 0x20, 0x81, 0xe5, 0xd8, 0x22, 0xcd, 0xe1, 0x03, 0x2a, 0x82, 0xe1, 0x50, 0x20, 0x81, 0xe5, 0xd0, 0x22, 0xcd, 0xe1, 0x03, 0x2a, 0x82, 0xe1, 0x54, 0x20, 0x81, 0xe5, 0x0a, 0x08, 0x80, 0xe1, 0x90, 0x00, 0x81, 0xe5, 0x04, 0x02, 0x9f, 0xe5, 0x8a, 0x07, 0x00, 0xe0, 0x94, 0x00, 0x81, 0xe5, 0x74, 0xd0, 0x8d, 0xe2, 0xf0, 0x8f, 0xbd, 0xe8, 0x03, 0x10, 0xa0, 0xe3, 0x68, 0x10, 0x8d, 0xe5, 0x05, 0x10, 0xa0, 0xe3, 0x60, 0x10, 0x8d, 0xe5, 0x48, 0x10, 0x8d, 0xe5, 0x3c, 0x10, 0x8d, 0xe5, 0x38, 0x10, 0x8d, 0xe5, 0x40, 0x10, 0x8d, 0xe5, 0x00, 0x10, 0x9d, 0xe5, 0x11, 0xfe, 0x31, 0xe7, 0x44, 0x10, 0x8d, 0xe5, 0x03, 0x10, 0xa0, 0xe3, 0x18, 0x10, 0x8d, 0xe5, 0x06, 0x10, 0xa0, 0xe3, 0x34, 0x10, 0x8d, 0xe5, 0x04, 0x90, 0xa0, 0xe3, 0x24, 0x10, 0x93, 0xe5, 0x02, 0x80, 0xa0, 0xe3, 0x64, 0x10, 0x8d, 0xe5, 0xc3, 0xb0, 0xa0, 0xe3, 0x00, 0x10, 0x93, 0xe5, 0x00, 0x10, 0x8d, 0xe5, 0x81, 0xe1, 0x81, 0xe0, 0x01, 0x12, 0x8e, 0xe0, 0x81, 0x11, 0x82, 0xe0, 0x28, 0x10, 0x8d, 0xe5, 0x00, 0x10, 0x9d, 0xe5, 0x64, 0x20, 0xa0, 0xe3, 0x91, 0x02, 0x02, 0xe0, 0xe8, 0x13, 0x00, 0xe3, 0x12, 0xf1, 0x31, 0xe7, 0x01, 0x10, 0x81, 0xe2, 0x2c, 0x10, 0x8d, 0xe5, 0x00, 0x10, 0x9d, 0xe5, 0x81, 0x20, 0x81, 0xe0, 0x81, 0x11, 0x82, 0xe0, 0x01, 0x10, 0x81, 0xe2, 0x20, 0x10, 0x8d, 0xe5, 0x00, 0x10, 0x9d, 0xe5, 0x01, 0x10, 0x81, 0xe2, 0x24, 0x10, 0x8d, 0xe5, 0x05, 0x10, 0x84, 0xe2, 0x54, 0x10, 0x8d, 0xe5, 0x0a, 0x10, 0xa0, 0xe3, 0x30, 0x10, 0x8d, 0xe5, 0x13, 0xff, 0xff, 0xea, 0x05, 0x10, 0xa0, 0xe3, 0x68, 0x10, 0x8d, 0xe5, 0x60, 0x10, 0x8d, 0xe5, 0x0c, 0x10, 0xa0, 0xe3, 0x48, 0x10, 0x8d, 0xe5, 0x03, 0x10, 0xa0, 0xe3, 0x5c, 0x10, 0x8d, 0xe5, 0x05, 0x10, 0xa0, 0xe3, 0x3c, 0x10, 0x8d, 0xe5, 0x38, 0x10, 0x8d, 0xe5, 0x40, 0x10, 0x8d, 0xe5, 0x00, 0x10, 0x9d, 0xe5, 0x11, 0xfe, 0x31, 0xe7, 0x44, 0x10, 0x8d, 0xe5, 0x00, 0x10, 0x93, 0xe5, 0x00, 0x10, 0x8d, 0xe5, 0x32, 0x0e, 0x51, 0xe3, 0x07, 0x00, 0x00, 0x8a, 0x05, 0x10, 0xa0, 0xe3, 0x18, 0x10, 0x8d, 0xe5, 0x02, 0x10, 0xa0, 0xe3, 0x06, 0x90, 0xa0, 0xe3, 0xc3, 0xb0, 0xa0, 0xe3, 0x14, 0x10, 0x8d, 0xe5, 0x0a, 0x10, 0xa0, 0xe3, 0x07, 0x00, 0x00, 0xea, 0x06, 0x10, 0xa0, 0xe3, 0x18, 0x10, 0x8d, 0xe5, 0x03, 0x10, 0xa0, 0xe3, 0x07, 0x90, 0xa0, 0xe3, 0x04, 0x80, 0xa0, 0xe3, 0xc3, 0xb0, 0xa0, 0xe3, 0x14, 0x10, 0x8d, 0xe5, 0x0c, 0x10, 0xa0, 0xe3, 0x34, 0x10, 0x8d, 0xe5, 0x24, 0x10, 0x93, 0xe5, 0x64, 0x10, 0x8d, 0xe5, 0x00, 0x10, 0x9d, 0xe5, 0x81, 0xe1, 0x81, 0xe0, 0x01, 0x12, 0x8e, 0xe0, 0x81, 0x11, 0x82, 0xe0, 0x28, 0x10, 0x8d, 0xe5, 0x00, 0x10, 0x9d, 0xe5, 0x64, 0x20, 0xa0, 0xe3, 0x91, 0x02, 0x02, 0xe0, 0xe8, 0x13, 0x00, 0xe3, 0x12, 0xf1, 0x31, 0xe7, 0x01, 0x10, 0x81, 0xe2, 0x2c, 0x10, 0x8d, 0xe5, 0x00, 0x10, 0x9d, 0xe5, 0x81, 0x20, 0x81, 0xe0, 0x81, 0x11, 0x82, 0xe0, 0x01, 0x10, 0x81, 0xe2, 0x20, 0x10, 0x8d, 0xe5, 0x00, 0x10, 0x9d, 0xe5, 0x01, 0x10, 0x81, 0xe2, 0x24, 0x10, 0x8d, 0xe5, 0x04, 0x10, 0x88, 0xe0, 0x05, 0x10, 0x81, 0xe2, 0x54, 0x10, 0x8d, 0xe5, 0x08, 0x10, 0x49, 0xe0, 0x0a, 0x10, 0x81, 0xe2, 0x30, 0x10, 0x8d, 0xe5, 0x05, 0x10, 0x88, 0xe0, 0x05, 0x10, 0x81, 0xe2, 0xd2, 0xfe, 0xff, 0xea, 0x8c, 0x51, 0x02, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x30, 0x00, 0x04, 0x50, 0x4f, 0x02, 0x00, 0x00, 0x50, 0x02, 0x00, 0x09, 0x00, 0x00, 0x01, 0x64, 0x00, 0x50, 0x00, 0x0d, 0x00, 0x00, 0x02, 0x00, 0x01, 0x60, 0x00, 0x09, 0x02, 0x64, 0x00, 0x40, 0x00, 0x20, 0x00, 0x05, 0x2f, 0x80, 0x0f, 0xff, 0x00, 0x00, 0x0f, 0x5f, 0x00, 0x00, 0x3f, 0xff, 0x7f, 0xff, 0x0f, 0x00, 0x30, 0x91, 0xe5, 0xd3, 0x30, 0xe0, 0xe7, 0x00, 0x00, 0x53, 0xe3, 0x00, 0x30, 0x92, 0x15, 0x02, 0x37, 0x83, 0x13, 0x00, 0x30, 0x82, 0x15, 0x5c, 0x00, 0x90, 0xe5, 0x58, 0x36, 0x9f, 0xe5, 0x50, 0x0a, 0xe2, 0xe7, 0x06, 0x00, 0x50, 0xe3, 0x00, 0xf1, 0x8f, 0x30, 0x0c, 0x00, 0x00, 0xea, 0x0b, 0x00, 0x00, 0xea, 0x03, 0x00, 0x00, 0xea, 0x04, 0x00, 0x00, 0xea, 0x06, 0x00, 0x00, 0xea, 0x07, 0x00, 0x00, 0xea, 0x0c, 0x00, 0x00, 0xea, 0x30, 0x06, 0x9f, 0xe5, 0x00, 0x00, 0x00, 0xea, 0x2c, 0x06, 0x9f, 0xe5, 0x00, 0x00, 0x82, 0xe5, 0x02, 0x00, 0x00, 0xea, 0x24, 0x06, 0x9f, 0xe5, 0xfb, 0xff, 0xff, 0xea, 0x00, 0x30, 0x82, 0xe5, 0x00, 0x00, 0x91, 0xe5, 0x01, 0x04, 0x80, 0xe3, 0x00, 0x00, 0x81, 0xe5, 0x00, 0x00, 0xa0, 0xe3, 0x1e, 0xff, 0x2f, 0xe1, 0x08, 0x06, 0x9f, 0xe5, 0xf3, 0xff, 0xff, 0xea, 0x70, 0x40, 0x2d, 0xe9, 0x01, 0x50, 0xa0, 0xe1, 0x00, 0x10, 0xa0, 0xe1, 0xf8, 0x35, 0x9f, 0xe5, 0x0c, 0x00, 0xa0, 0xe3, 0x5c, 0x40, 0xd5, 0xe5, 0x01, 0x2c, 0x83, 0xe2, 0x54, 0x43, 0xe0, 0xe7, 0x01, 0x00, 0x54, 0xe1, 0x18, 0x40, 0xa0, 0xe3, 0x00, 0x10, 0x95, 0x05, 0x4c, 0x10, 0x95, 0x15, 0x81, 0x10, 0xa0, 0xe1, 0x11, 0xf4, 0x34, 0xe7, 0x00, 0x10, 0x93, 0xe5, 0x0c, 0x00, 0x54, 0xe3, 0x04, 0x00, 0xa0, 0x21, 0x03, 0x6f, 0x07, 0xe3, 0x06, 0x10, 0xc1, 0xe1, 0x00, 0x04, 0xa0, 0xe1, 0x01, 0x0c, 0x40, 0xe2, 0x01, 0x00, 0x80, 0xe1, 0x02, 0x01, 0x80, 0xe3, 0x00, 0x00, 0x83, 0xe5, 0x02, 0x02, 0xc0, 0xe3, 0x00, 0x00, 0x83, 0xe5, 0x02, 0x02, 0x80, 0xe3, 0x00, 0x00, 0x83, 0xe5, 0x00, 0x00, 0x93, 0xe5, 0x01, 0x02, 0x10, 0xe3, 0xfc, 0xff, 0xff, 0x0a, 0x14, 0x00, 0xa0, 0xe3, 0xf9, 0xfb, 0xff, 0xeb, 0x5c, 0x00, 0x95, 0xe5, 0x02, 0x05, 0x10, 0xe3, 0x03, 0x10, 0xa0, 0x11, 0x05, 0x00, 0xa0, 0x11, 0xb8, 0xff, 0xff, 0x1b, 0x84, 0x00, 0x84, 0xe0, 0x80, 0x01, 0xa0, 0xe1, 0x70, 0x80, 0xbd, 0xe8, 0xf0, 0x40, 0x2d, 0xe9, 0x60, 0x55, 0x9f, 0xe5, 0x00, 0x70, 0xa0, 0xe1, 0x00, 0x00, 0x95, 0xe5, 0x02, 0x01, 0xc0, 0xe3, 0x00, 0x00, 0x85, 0xe5, 0x00, 0x00, 0x95, 0xe5, 0x01, 0x01, 0xc0, 0xe3, 0x00, 0x00, 0x85, 0xe5, 0xb3, 0x6f, 0x85, 0xe2, 0x00, 0x00, 0x96, 0xe5, 0x01, 0x00, 0xc0, 0xe3, 0x00, 0x00, 0x86, 0xe5, 0x00, 0x00, 0x96, 0xe5, 0x01, 0x08, 0xc0, 0xe3, 0x00, 0x00, 0x86, 0xe5, 0x15, 0x2d, 0x45, 0xe2, 0x10, 0x00, 0x92, 0xe5, 0x02, 0x01, 0xc0, 0xe3, 0x10, 0x00, 0x82, 0xe5, 0x01, 0x01, 0x80, 0xe3, 0x10, 0x00, 0x82, 0xe5, 0xc2, 0x46, 0x82, 0xe1, 0x00, 0x00, 0x94, 0xe5, 0x01, 0x01, 0xc0, 0xe3, 0x00, 0x00, 0x84, 0xe5, 0x64, 0x00, 0xa0, 0xe3, 0xd5, 0xfb, 0xff, 0xeb, 0x07, 0x10, 0xa0, 0xe1, 0x00, 0x00, 0xa0, 0xe3, 0xb7, 0xff, 0xff, 0xeb, 0x00, 0x20, 0x94, 0xe5, 0x03, 0x24, 0xc2, 0xe3, 0x00, 0x20, 0x84, 0xe5, 0xa0, 0x00, 0xa0, 0xe1, 0x00, 0x00, 0x87, 0xe5, 0xe8, 0x03, 0x00, 0xe3, 0xcb, 0xfb, 0xff, 0xeb, 0x00, 0x00, 0x94, 0xe5, 0x03, 0x00, 0xc0, 0xe3, 0x00, 0x00, 0x84, 0xe5, 0x02, 0x03, 0x80, 0xe3, 0x00, 0x00, 0x84, 0xe5, 0x00, 0x00, 0x96, 0xe5, 0x01, 0x08, 0x80, 0xe3, 0x00, 0x00, 0x86, 0xe5, 0x00, 0x00, 0x96, 0xe5, 0x01, 0x00, 0x80, 0xe3, 0x00, 0x00, 0x86, 0xe5, 0xd2, 0xfb, 0xff, 0xeb, 0x00, 0x00, 0x95, 0xe5, 0x01, 0x01, 0x80, 0xe3, 0x00, 0x00, 0x85, 0xe5, 0x00, 0x00, 0x95, 0xe5, 0x02, 0x01, 0x80, 0xe3, 0x00, 0x00, 0x85, 0xe5, 0x00, 0x00, 0x94, 0xe5, 0x01, 0x01, 0x80, 0xe3, 0x00, 0x00, 0x84, 0xe5, 0x05, 0x00, 0xa0, 0xe3, 0xb4, 0xfb, 0xff, 0xeb, 0x58, 0x12, 0x1f, 0xe5, 0x00, 0x00, 0x08, 0xe3, 0x0c, 0x00, 0x81, 0xe5, 0x0a, 0x00, 0xa0, 0xe3, 0xaf, 0xfb, 0xff, 0xeb, 0x00, 0x00, 0xa0, 0xe3, 0xf0, 0x80, 0xbd, 0xe8, 0xf0, 0x40, 0x2d, 0xe9, 0x7c, 0x62, 0x1f, 0xe5, 0x00, 0x10, 0xa0, 0xe3, 0x01, 0x50, 0xa0, 0xe3, 0x08, 0x20, 0x96, 0xe5, 0x3f, 0x2c, 0xc2, 0xe3, 0x02, 0x2a, 0x82, 0xe3, 0x08, 0x20, 0x86, 0xe5, 0x00, 0x20, 0x96, 0xe5, 0x1f, 0x26, 0xd7, 0xe7, 0x01, 0x35, 0x82, 0xe3, 0x04, 0x20, 0x90, 0xe5, 0x07, 0x40, 0x02, 0xe2, 0x06, 0x00, 0x52, 0xe3, 0x04, 0x38, 0x83, 0xe1, 0x14, 0x40, 0x90, 0xe5, 0x07, 0x00, 0x52, 0x13, 0x5c, 0x20, 0xd0, 0x15, 0x04, 0x40, 0xc5, 0xe1, 0x04, 0x36, 0x83, 0xe1, 0xd2, 0x22, 0xe0, 0x17, 0x02, 0x27, 0x83, 0x03, 0x82, 0x29, 0x83, 0x11, 0x00, 0x20, 0x86, 0xe5, 0x14, 0x20, 0x90, 0xe5, 0x01, 0x0c, 0x12, 0xe3, 0x28, 0x00, 0x00, 0x0a, 0x52, 0x26, 0xe3, 0xe7, 0x01, 0x00, 0x52, 0xe3, 0x02, 0x50, 0xa0, 0x03, 0x24, 0x00, 0x00, 0xea, 0x01, 0x41, 0xa0, 0xe1, 0x01, 0x43, 0x84, 0xe2, 0x02, 0x4a, 0x84, 0xe2, 0x00, 0x20, 0x94, 0xe5, 0x0c, 0x70, 0xa0, 0xe3, 0xb4, 0x31, 0xd0, 0xe1, 0x01, 0x72, 0x87, 0xe0, 0x1f, 0x20, 0xcb, 0xe7, 0x53, 0x36, 0xe1, 0xe7, 0x03, 0x20, 0x82, 0xe1, 0x10, 0x30, 0x90, 0xe5, 0x33, 0x77, 0xa0, 0xe1, 0x01, 0x70, 0x07, 0xe2, 0x07, 0x21, 0x82, 0xe1, 0x04, 0x70, 0xa0, 0xe3, 0x01, 0x72, 0x87, 0xe0, 0x33, 0x77, 0xa0, 0xe1, 0x01, 0x70, 0x47, 0xe2, 0x0f, 0x70, 0x07, 0xe2, 0x07, 0x22, 0x82, 0xe1, 0x01, 0x72, 0xa0, 0xe1, 0x33, 0x37, 0xa0, 0xe1, 0x0f, 0x30, 0x03, 0xe2, 0x01, 0x00, 0x53, 0xe3, 0x07, 0x2c, 0x82, 0x03, 0x08, 0x00, 0x00, 0x0a, 0x02, 0x00, 0x53, 0xe3, 0x02, 0x2b, 0x82, 0x03, 0x05, 0x00, 0x00, 0x0a, 0x04, 0x00, 0x53, 0xe3, 0x09, 0x2c, 0x82, 0x03, 0x02, 0x00, 0x00, 0x0a, 0x08, 0x00, 0x53, 0xe3, 0x06, 0x2c, 0x82, 0x13, 0x0a, 0x2c, 0x82, 0x03, 0x00, 0x20, 0x84, 0xe5, 0x01, 0x10, 0x81, 0xe2, 0x05, 0x00, 0x51, 0xe1, 0xd8, 0xff, 0xff, 0x3a, 0x00, 0x10, 0x96, 0xe5, 0x90, 0x23, 0x1f, 0xe5, 0x01, 0x00, 0x11, 0xe3, 0x03, 0x13, 0x00, 0x13, 0x01, 0x12, 0x00, 0x03, 0x20, 0x11, 0x82, 0xe5, 0x14, 0x10, 0xd0, 0xe5, 0x01, 0x00, 0x11, 0xe3, 0x00, 0x10, 0xa0, 0x13, 0xc4, 0x13, 0x82, 0x15, 0x38, 0x10, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3, 0xf0, 0x80, 0xbd, 0x08, 0x00, 0x20, 0x96, 0xe5, 0x03, 0x10, 0x01, 0xe2, 0x81, 0x1c, 0x82, 0xe1, 0x00, 0x10, 0x86, 0xe5, 0x04, 0x10, 0x96, 0xe5, 0xb8, 0x03, 0xd0, 0xe1, 0x50, 0x01, 0xe8, 0xe7, 0x00, 0x06, 0x81, 0xe1, 0x04, 0x00, 0x86, 0xe5, 0xf0, 0x80, 0xbd, 0xe8, 0x10, 0x40, 0x2d, 0xe9, 0x18, 0xd0, 0x4d, 0xe2, 0x00, 0x40, 0xa0, 0xe1, 0xb6, 0x1f, 0x8f, 0xe2, 0x18, 0x20, 0xa0, 0xe3, 0x0d, 0x00, 0xa0, 0xe1, 0x6f, 0x06, 0x00, 0xeb, 0x04, 0x00, 0x94, 0xe5, 0x02, 0x00, 0x50, 0xe3, 0x34, 0x00, 0x00, 0x0a, 0x03, 0x00, 0x50, 0xe3, 0x32, 0x00, 0x00, 0x1a, 0x00, 0x00, 0xdd, 0xe5, 0x01, 0x10, 0xdd, 0xe5, 0x80, 0x02, 0xa0, 0xe1, 0x01, 0x05, 0x80, 0xe1, 0x02, 0x10, 0xdd, 0xe5, 0x81, 0x07, 0x80, 0xe1, 0x03, 0x10, 0xdd, 0xe5, 0x01, 0x0a, 0x80, 0xe1, 0x04, 0x10, 0xdd, 0xe5, 0x81, 0x0c, 0x80, 0xe1, 0xa4, 0x12, 0x9f, 0xe5, 0x00, 0x00, 0x81, 0xe5, 0x06, 0x30, 0xdd, 0xe5, 0x05, 0x20, 0xdd, 0xe5, 0x83, 0x22, 0x82, 0xe1, 0x07, 0x30, 0xdd, 0xe5, 0x03, 0x25, 0x82, 0xe1, 0x08, 0x30, 0xdd, 0xe5, 0x83, 0x27, 0x82, 0xe1, 0x09, 0x30, 0xdd, 0xe5, 0x03, 0x2a, 0x82, 0xe1, 0x0a, 0x30, 0xdd, 0xe5, 0x83, 0x2c, 0x82, 0xe1, 0x41, 0x3c, 0x81, 0xe1, 0x00, 0x20, 0x83, 0xe5, 0x0c, 0x30, 0xdd, 0xe5, 0x0b, 0x20, 0xdd, 0xe5, 0x83, 0x22, 0x82, 0xe1, 0x0d, 0x30, 0xdd, 0xe5, 0x03, 0x25, 0x82, 0xe1, 0x0e, 0x30, 0xdd, 0xe5, 0x83, 0x27, 0x82, 0xe1, 0x0f, 0x30, 0xdd, 0xe5, 0x03, 0x2a, 0x82, 0xe1, 0xc1, 0x3b, 0x81, 0xe1, 0x00, 0x20, 0x83, 0xe5, 0x11, 0x30, 0xdd, 0xe5, 0x10, 0x20, 0xdd, 0xe5, 0x83, 0x22, 0x82, 0xe1, 0x12, 0x30, 0xdd, 0xe5, 0x03, 0x25, 0x82, 0xe1, 0x13, 0x30, 0xdd, 0xe5, 0x83, 0x27, 0x82, 0xe1, 0x14, 0x30, 0xdd, 0xe5, 0x03, 0x2a, 0x82, 0xe1, 0x15, 0x30, 0xdd, 0xe5, 0x83, 0x2c, 0x82, 0xe1, 0x0c, 0x30, 0x81, 0xe2, 0x00, 0x20, 0x83, 0xe5, 0x01, 0x00, 0x80, 0xe3, 0x00, 0x00, 0x81, 0xe5, 0x18, 0xd0, 0x8d, 0xe2, 0x10, 0x80, 0xbd, 0xe8, 0xf0, 0x41, 0x2d, 0xe9, 0xf4, 0xc4, 0x1f, 0xe5, 0x01, 0x40, 0xa0, 0xe1, 0x5c, 0x10, 0xd1, 0xe5, 0x00, 0x00, 0xa0, 0xe3, 0x01, 0x70, 0xa0, 0xe3, 0x51, 0x51, 0xe1, 0xe7, 0x0c, 0x10, 0x9c, 0xe5, 0x00, 0x20, 0x94, 0xe5, 0x00, 0x30, 0xe0, 0xe3, 0x1f, 0x10, 0xcb, 0xe7, 0xa2, 0x20, 0x83, 0xe0, 0x02, 0x10, 0x81, 0xe1, 0x0c, 0x10, 0x8c, 0xe5, 0x03, 0x66, 0x4c, 0xe0, 0x08, 0x11, 0x96, 0xe5, 0x0f, 0x1c, 0xc1, 0xe3, 0x03, 0x1c, 0x81, 0xe3, 0x08, 0x11, 0x86, 0xe5, 0x0c, 0x10, 0x94, 0xe5, 0x01, 0x20, 0xa0, 0xe3, 0x01, 0x30, 0xc2, 0xe1, 0x80, 0x13, 0xa0, 0xe1, 0x01, 0x23, 0x81, 0xe2, 0x03, 0x2a, 0x82, 0xe2, 0x44, 0x13, 0x92, 0xe5, 0x00, 0xe0, 0x94, 0xe5, 0x30, 0x10, 0xc1, 0xe3, 0x83, 0x12, 0x81, 0xe1, 0x0e, 0x10, 0xc1, 0xe3, 0x2a, 0x0e, 0x5e, 0xe3, 0x0f, 0x1a, 0xc1, 0xe3, 0x06, 0x1c, 0xc1, 0x83, 0x01, 0x1b, 0x81, 0x83, 0x44, 0x13, 0x82, 0xe5, 0x01, 0x00, 0x80, 0xe2, 0x02, 0x00, 0x50, 0xe3, 0xef, 0xff, 0xff, 0x3a, 0x08, 0x02, 0x96, 0xe5, 0x02, 0x00, 0x80, 0xe3, 0x08, 0x02, 0x86, 0xe5, 0x04, 0x00, 0xa0, 0xe1, 0xfe, 0xfa, 0xff, 0xeb, 0x01, 0x00, 0x55, 0xe3, 0x07, 0x21, 0x00, 0xe3, 0x24, 0x00, 0x00, 0x0a, 0x08, 0x01, 0x96, 0xe5, 0x02, 0x00, 0x55, 0xe3, 0x28, 0x00, 0x00, 0x0a, 0x40, 0x00, 0xc0, 0xe3, 0x08, 0x01, 0x86, 0xe5, 0x0a, 0x00, 0xa0, 0xe3, 0xda, 0xfa, 0xff, 0xeb, 0x08, 0x01, 0x96, 0xe5, 0xc0, 0x00, 0x80, 0xe3, 0x08, 0x01, 0x86, 0xe5, 0x04, 0x00, 0x94, 0xe5, 0x06, 0x00, 0x50, 0xe3, 0x07, 0x00, 0x50, 0x13, 0x2d, 0x00, 0x00, 0x0a, 0xb4, 0x01, 0xd4, 0xe1, 0x01, 0x0a, 0x10, 0xe3, 0xc0, 0x00, 0x96, 0xe5, 0x0f, 0x02, 0x00, 0xe2, 0x03, 0x04, 0x80, 0x13, 0x01, 0x00, 0x80, 0x13, 0x01, 0x04, 0x80, 0x03, 0x01, 0x00, 0x80, 0x03, 0xc0, 0x00, 0x86, 0xe5, 0x40, 0x01, 0x96, 0xe5, 0x08, 0x10, 0x94, 0xe5, 0x3f, 0x03, 0x00, 0xe2, 0xff, 0x14, 0xc1, 0xe3, 0x01, 0x00, 0x80, 0xe1, 0x02, 0x04, 0x80, 0xe3, 0x40, 0x01, 0x86, 0xe5, 0x01, 0x00, 0x55, 0xe3, 0x32, 0x00, 0x00, 0x0a, 0x04, 0x10, 0x94, 0xe5, 0x72, 0x01, 0x00, 0xe3, 0x03, 0x00, 0x51, 0xe3, 0xf2, 0x01, 0x00, 0x03, 0x3a, 0x00, 0x00, 0xea, 0x08, 0x01, 0x96, 0xe5, 0xc0, 0x00, 0xc0, 0xe3, 0x08, 0x01, 0x86, 0xe5, 0xbc, 0x00, 0x96, 0xe5, 0x02, 0x00, 0xc0, 0xe1, 0xbc, 0x00, 0x86, 0xe5, 0xdd, 0xff, 0xff, 0xea, 0xc0, 0x00, 0xc0, 0xe3, 0x80, 0x00, 0x80, 0xe3, 0x08, 0x01, 0x86, 0xe5, 0x60, 0x00, 0x96, 0xe5, 0x50, 0x08, 0xe4, 0xe7, 0x02, 0x10, 0x40, 0xe2, 0xbc, 0x00, 0x96, 0xe5, 0x02, 0x00, 0xc0, 0xe1, 0x01, 0x00, 0x80, 0xe1, 0x01, 0x0c, 0x80, 0xe3, 0xbc, 0x00, 0x86, 0xe5, 0x1c, 0x01, 0x96, 0xe5, 0x02, 0x01, 0xc0, 0xe3, 0x02, 0x03, 0x80, 0xe3, 0x1c, 0x01, 0x86, 0xe5, 0xcd, 0xff, 0xff, 0xea, 0x1c, 0x01, 0x96, 0xe5, 0x01, 0x00, 0x55, 0xe3, 0x02, 0x03, 0xc0, 0x03, 0xc0, 0x00, 0xc0, 0x03, 0x02, 0x01, 0x80, 0x03, 0x77, 0x04, 0xc0, 0x13, 0x22, 0x04, 0x80, 0x13, 0x1c, 0x01, 0x86, 0xe5, 0xc8, 0xff, 0xff, 0xea, 0x33, 0x33, 0x06, 0xf2, 0xcc, 0xcc, 0x86, 0xe4, 0x99, 0x99, 0x06, 0xe9, 0x66, 0x66, 0x86, 0xed, 0x00, 0x00, 0x86, 0xf5, 0x10, 0x10, 0x00, 0x03, 0x40, 0x15, 0x00, 0x03, 0x06, 0x0c, 0x09, 0x0f, 0x00, 0x07, 0x13, 0x00, 0x0a, 0x0e, 0x02, 0x01, 0x03, 0x15, 0x14, 0x0b, 0x00, 0x04, 0x10, 0x16, 0x0d, 0x12, 0x00, 0x00, 0x00, 0x25, 0x00, 0x04, 0x52, 0x00, 0xa0, 0xe3, 0x00, 0x00, 0x86, 0xe5, 0x53, 0x00, 0xa0, 0xe3, 0x00, 0x00, 0x86, 0xe5, 0x10, 0x00, 0x96, 0xe5, 0x01, 0x00, 0x10, 0xe3, 0xfc, 0xff, 0xff, 0x0a, 0x0a, 0x00, 0xa0, 0xe3, 0x85, 0xfa, 0xff, 0xeb, 0x04, 0x10, 0x94, 0xe5, 0x20, 0x05, 0x00, 0xe3, 0x03, 0x00, 0x51, 0xe3, 0xa0, 0x05, 0x00, 0x03, 0x00, 0x00, 0x86, 0xe5, 0x01, 0x00, 0x80, 0xe3, 0x00, 0x00, 0x86, 0xe5, 0x0a, 0x00, 0xa0, 0xe3, 0x7c, 0xfa, 0xff, 0xeb, 0x10, 0x00, 0x96, 0xe5, 0x01, 0x00, 0x10, 0xe3, 0xfc, 0xff, 0xff, 0x0a, 0x10, 0x00, 0x96, 0xe5, 0xff, 0x06, 0x10, 0xe3, 0x06, 0x00, 0x00, 0x0a, 0x01, 0x06, 0x10, 0xe3, 0x00, 0x70, 0xa0, 0x03, 0x03, 0x00, 0x00, 0x0a, 0xd1, 0x0f, 0x8f, 0xe2, 0xf9, 0x04, 0x00, 0xeb, 0x00, 0x00, 0xa0, 0xe3, 0xf0, 0x81, 0xbd, 0xe8, 0x18, 0x00, 0x96, 0xe5, 0x01, 0x00, 0x10, 0xe3, 0xfc, 0xff, 0xff, 0x0a, 0x8c, 0x00, 0x96, 0xe5, 0x02, 0x01, 0x80, 0xe3, 0x8c, 0x00, 0x86, 0xe5, 0x0a, 0x00, 0xa0, 0xe3, 0x67, 0xfa, 0xff, 0xeb, 0x8c, 0x00, 0x96, 0xe5, 0x02, 0x01, 0xc0, 0xe3, 0x8c, 0x00, 0x86, 0xe5, 0x0a, 0x00, 0xa0, 0xe3, 0x62, 0xfa, 0xff, 0xeb, 0x14, 0x00, 0x9c, 0xe5, 0x02, 0x01, 0x80, 0xe3, 0x14, 0x00, 0x8c, 0xe5, 0x0a, 0x00, 0xa0, 0xe3, 0x5d, 0xfa, 0xff, 0xeb, 0x0c, 0x01, 0x96, 0xe5, 0x06, 0x04, 0xc0, 0xe3, 0x0c, 0x01, 0x86, 0xe5, 0x01, 0x00, 0x55, 0xe3, 0x03, 0x00, 0x00, 0x1a, 0x1c, 0x01, 0x96, 0xe5, 0xc0, 0x00, 0xc0, 0xe3, 0x40, 0x00, 0x80, 0xe3, 0x1c, 0x01, 0x86, 0xe5, 0x07, 0x00, 0xa0, 0xe1, 0xf0, 0x81, 0xbd, 0xe8, 0x30, 0x40, 0x2d, 0xe9, 0xe8, 0x57, 0x1f, 0xe5, 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x00, 0x95, 0xe5, 0x01, 0x40, 0xa0, 0xe3, 0x03, 0x00, 0x10, 0xe3, 0x50, 0x24, 0xe3, 0xe7, 0x06, 0x20, 0x42, 0xe2, 0x50, 0x32, 0xe3, 0xe7, 0x03, 0x20, 0x82, 0xe0, 0x01, 0x20, 0x82, 0xe2, 0x50, 0x31, 0xe1, 0xe7, 0x03, 0x20, 0x82, 0xe0, 0x09, 0x20, 0x42, 0xe2, 0x14, 0x22, 0xa0, 0xe1, 0x0c, 0x00, 0x00, 0x0a, 0x04, 0x00, 0x95, 0xe5, 0x03, 0x00, 0x10, 0xe3, 0x02, 0x10, 0xa0, 0x01, 0x08, 0x00, 0x00, 0x0a, 0x50, 0x14, 0xe3, 0xe7, 0x50, 0x32, 0xe3, 0xe7, 0x06, 0x10, 0x41, 0xe2, 0x03, 0x10, 0x81, 0xe0, 0x01, 0x10, 0x81, 0xe2, 0x50, 0x01, 0xe1, 0xe7, 0x01, 0x00, 0x80, 0xe0, 0x09, 0x00, 0x40, 0xe2, 0x14, 0x10, 0xa0, 0xe1, 0x01, 0x00, 0x82, 0xe0, 0x30, 0x80, 0xbd, 0xe8, 0x70, 0x40, 0x2d, 0xe9, 0x00, 0x40, 0xa0, 0xe1, 0x5c, 0x00, 0x90, 0xe5, 0x02, 0x08, 0x10, 0xe3, 0x70, 0x80, 0xbd, 0x18, 0x70, 0x58, 0x1f, 0xe5, 0x10, 0x01, 0x95, 0xe5, 0x60, 0x12, 0x9f, 0xe5, 0x01, 0x00, 0x00, 0xe0, 0x3c, 0x10, 0x94, 0xe5, 0x01, 0x00, 0x80, 0xe1, 0x10, 0x01, 0x85, 0xe5, 0x25, 0x0e, 0x8f, 0xe2, 0xad, 0x04, 0x00, 0xeb, 0x5c, 0x00, 0x94, 0xe5, 0x01, 0x08, 0x10, 0xe3, 0x70, 0x80, 0xbd, 0x18, 0x14, 0x01, 0x95, 0xe5, 0x40, 0x10, 0xd4, 0xe5, 0x7f, 0x00, 0xc0, 0xe3, 0x7f, 0x10, 0x01, 0xe2, 0x01, 0x00, 0x80, 0xe1, 0x14, 0x01, 0x85, 0xe5, 0x70, 0x40, 0xbd, 0xe8, 0x8d, 0x0f, 0x8f, 0xe2, 0xa1, 0x04, 0x00, 0xea, 0x10, 0x40, 0x2d, 0xe9, 0x00, 0x40, 0xa0, 0xe1, 0x24, 0xfe, 0xff, 0xeb, 0x04, 0x00, 0xa0, 0xe1, 0xe0, 0xff, 0xff, 0xeb, 0x04, 0x00, 0xa0, 0xe1, 0x64, 0xfe, 0xff, 0xeb, 0x04, 0x00, 0xa0, 0xe1, 0xbf, 0xfe, 0xff, 0xeb, 0x04, 0x00, 0xa0, 0xe1, 0xf6, 0xfa, 0xff, 0xeb, 0x04, 0x10, 0xa0, 0xe1, 0x00, 0x00, 0xa0, 0xe3, 0x10, 0x40, 0xbd, 0xe8, 0xfa, 0xfe, 0xff, 0xea, 0xf8, 0x4f, 0x2d, 0xe9, 0x01, 0x41, 0xa0, 0xe3, 0x00, 0x80, 0xa0, 0xe1, 0x00, 0x60, 0xa0, 0xe3, 0x01, 0xb0, 0xa0, 0xe3, 0x04, 0x50, 0xa0, 0xe1, 0x00, 0x60, 0x8d, 0xe5, 0xe8, 0xff, 0xff, 0xeb, 0x00, 0x00, 0x50, 0xe3, 0x05, 0x00, 0x00, 0x0a, 0xb4, 0x01, 0xd8, 0xe1, 0x01, 0xa0, 0xa0, 0xe3, 0x50, 0x06, 0xe3, 0xe7, 0x01, 0x00, 0x50, 0xe3, 0x02, 0xb0, 0xa0, 0x03, 0x17, 0x01, 0x00, 0xea, 0x71, 0x0f, 0x8f, 0xe2, 0x80, 0x04, 0x00, 0xeb, 0x00, 0x00, 0xa0, 0xe3, 0xf8, 0x8f, 0xbd, 0xe8, 0x01, 0x00, 0x56, 0xe3, 0x24, 0x00, 0x00, 0x1a, 0x5c, 0x49, 0x1f, 0xe5, 0x00, 0x00, 0x94, 0xe5, 0xf0, 0x20, 0xa0, 0xe3, 0x02, 0x10, 0xa0, 0xe1, 0x00, 0x00, 0x8d, 0xe5, 0x0d, 0x00, 0xa0, 0xe1, 0xf2, 0xf9, 0xff, 0xeb, 0x00, 0x20, 0xa0, 0xe3, 0x0c, 0x10, 0xa0, 0xe3, 0x0d, 0x00, 0xa0, 0xe1, 0xee, 0xf9, 0xff, 0xeb, 0x00, 0x26, 0x00, 0xe3, 0x00, 0x1f, 0x00, 0xe3, 0x0d, 0x00, 0xa0, 0xe1, 0xea, 0xf9, 0xff, 0xeb, 0x00, 0x00, 0x9d, 0xe5, 0x00, 0x00, 0x84, 0xe5, 0x04, 0x00, 0x94, 0xe5, 0xf0, 0x20, 0xa0, 0xe3, 0x02, 0x10, 0xa0, 0xe1, 0x00, 0x00, 0x8d, 0xe5, 0x0d, 0x00, 0xa0, 0xe1, 0xe2, 0xf9, 0xff, 0xeb, 0x00, 0x20, 0xa0, 0xe3, 0x0c, 0x10, 0xa0, 0xe3, 0x0d, 0x00, 0xa0, 0xe1, 0xde, 0xf9, 0xff, 0xeb, 0x00, 0x26, 0x00, 0xe3, 0x00, 0x1f, 0x00, 0xe3, 0x0d, 0x00, 0xa0, 0xe1, 0xda, 0xf9, 0xff, 0xeb, 0x00, 0x00, 0x9d, 0xe5, 0x01, 0x00, 0x80, 0xe3, 0x00, 0x00, 0x8d, 0xe5, 0x04, 0x00, 0x84, 0xe5, 0x12, 0x43, 0xa0, 0xe3, 0x04, 0x50, 0xa0, 0xe1, 0x00, 0x00, 0xa0, 0xe3, 0x01, 0x00, 0x10, 0xe3, 0x00, 0x11, 0x84, 0xe0, 0x01, 0x10, 0xe0, 0x01, 0x00, 0x11, 0x84, 0xe7, 0x01, 0x00, 0x80, 0xe2, 0x40, 0x00, 0x50, 0xe3, 0xf8, 0xff, 0xff, 0x3a, 0x06, 0x91, 0xa0, 0xe1, 0x01, 0x93, 0x89, 0xe2, 0x02, 0x9a, 0x89, 0xe2, 0x00, 0x00, 0x99, 0xe5, 0x00, 0x26, 0x00, 0xe3, 0x00, 0x1f, 0x00, 0xe3, 0x00, 0x00, 0x8d, 0xe5, 0x0d, 0x00, 0xa0, 0xe1, 0xc3, 0xf9, 0xff, 0xeb, 0x00, 0x20, 0xa0, 0xe3, 0x0c, 0x10, 0xa0, 0xe3, 0x0d, 0x00, 0xa0, 0xe1, 0xbf, 0xf9, 0xff, 0xeb, 0x00, 0x00, 0x9d, 0xe5, 0xf0, 0x00, 0x80, 0xe3, 0x00, 0x00, 0x8d, 0xe5, 0x00, 0x00, 0x89, 0xe5, 0x0b, 0x70, 0xa0, 0xe3, 0x0b, 0x00, 0x87, 0xe2, 0x00, 0x10, 0xa0, 0xe3, 0x1a, 0xc0, 0x84, 0xe0, 0x01, 0x00, 0xa0, 0xe1, 0x01, 0x00, 0x10, 0xe3, 0x00, 0x21, 0x85, 0xe0, 0x02, 0x20, 0xe0, 0x01, 0x00, 0x20, 0x8d, 0xe5, 0x00, 0x31, 0x9c, 0xe7, 0x02, 0x00, 0x53, 0xe1, 0x03, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x80, 0xe2, 0x40, 0x00, 0x50, 0xe3, 0x01, 0x10, 0x81, 0xe2, 0xf4, 0xff, 0xff, 0x3a, 0x40, 0x00, 0x51, 0xe3, 0x26, 0x00, 0x00, 0x0a, 0x01, 0x70, 0x87, 0xe2, 0x10, 0x00, 0x57, 0xe3, 0xeb, 0xff, 0xff, 0x9a, 0x24, 0x00, 0x00, 0xea, 0x5a, 0x51, 0x20, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2c, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x20, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x20, 0x32, 0x34, 0x30, 0x20, 0x6f, 0x68, 0x6d, 0x20, 0x72, 0x65, 0x73, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x2e, 0x0a, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x64, 0x72, 0x61, 0x6d, 0x5f, 0x74, 0x70, 0x72, 0x35, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x2e, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x64, 0x72, 0x61, 0x6d, 0x5f, 0x74, 0x70, 0x72, 0x36, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x2e, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x3a, 0x20, 0x30, 0x21, 0x0a, 0x00, 0x00, 0x10, 0x00, 0x57, 0xe3, 0x00, 0x00, 0x00, 0x3a, 0x10, 0x70, 0xa0, 0xe3, 0x06, 0x10, 0xa0, 0xe1, 0xa5, 0x0f, 0x8f, 0xe2, 0x07, 0x20, 0xa0, 0xe1, 0xfe, 0x03, 0x00, 0xeb, 0x04, 0xc0, 0xa0, 0xe3, 0xff, 0x10, 0xa0, 0xe3, 0x06, 0x02, 0x8c, 0xe0, 0x17, 0x20, 0xa0, 0xe1, 0x11, 0x10, 0xa0, 0xe1, 0x10, 0x00, 0x88, 0xe2, 0x74, 0xf9, 0xff, 0xeb, 0x01, 0x00, 0x56, 0xe3, 0x11, 0x00, 0x00, 0x1a, 0x78, 0x4b, 0x1f, 0xe5, 0x00, 0x00, 0x94, 0xe5, 0xa0, 0x20, 0xa0, 0xe3, 0xf0, 0x10, 0xa0, 0xe3, 0x00, 0x00, 0x8d, 0xe5, 0x0d, 0x00, 0xa0, 0xe1, 0x6b, 0xf9, 0xff, 0xeb, 0x04, 0x20, 0xa0, 0xe3, 0x0c, 0x10, 0xa0, 0xe3, 0x0d, 0x00, 0xa0, 0xe1, 0x67, 0xf9, 0xff, 0xeb, 0x00, 0x26, 0x00, 0xe3, 0x00, 0x1f, 0x00, 0xe3, 0x0d, 0x00, 0xa0, 0xe1, 0x63, 0xf9, 0xff, 0xeb, 0x00, 0x00, 0x9d, 0xe5, 0x00, 0x00, 0x84, 0xe5, 0x40, 0x42, 0x9f, 0xe5, 0x00, 0x00, 0x99, 0xe5, 0xa0, 0x20, 0xa0, 0xe3, 0xf0, 0x10, 0xa0, 0xe3, 0x00, 0x00, 0x8d, 0xe5, 0x0d, 0x00, 0xa0, 0xe1, 0x5a, 0xf9, 0xff, 0xeb, 0x04, 0x20, 0xa0, 0xe3, 0x0c, 0x10, 0xa0, 0xe3, 0x0d, 0x00, 0xa0, 0xe1, 0x56, 0xf9, 0xff, 0xeb, 0x00, 0x26, 0x00, 0xe3, 0x00, 0x1f, 0x00, 0xe3, 0x0d, 0x00, 0xa0, 0xe1, 0x52, 0xf9, 0xff, 0xeb, 0x00, 0x00, 0x9d, 0xe5, 0x00, 0x00, 0x89, 0xe5, 0x00, 0x70, 0xa0, 0xe3, 0x0b, 0x00, 0x87, 0xe2, 0x00, 0x10, 0xa0, 0xe3, 0x1a, 0xe0, 0x84, 0xe0, 0x01, 0x00, 0xa0, 0xe1, 0x01, 0x00, 0x10, 0xe3, 0x00, 0x21, 0x85, 0xe0, 0x02, 0x20, 0xe0, 0x01, 0x00, 0x20, 0x8d, 0xe5, 0x00, 0x31, 0x9e, 0xe7, 0x02, 0x00, 0x53, 0xe1, 0x03, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x80, 0xe2, 0x40, 0x00, 0x50, 0xe3, 0x01, 0x10, 0x81, 0xe2, 0xf4, 0xff, 0xff, 0x3a, 0x40, 0x00, 0x51, 0xe3, 0x01, 0x00, 0x00, 0x0a, 0x01, 0x70, 0x97, 0xe2, 0xec, 0xff, 0xff, 0x0a, 0x07, 0x21, 0x8c, 0xe0, 0x06, 0x10, 0xa0, 0xe1, 0x6a, 0x0f, 0x8f, 0xe2, 0xbb, 0x03, 0x00, 0xeb, 0x0c, 0x00, 0xa0, 0xe3, 0x06, 0x02, 0x80, 0xe0, 0x17, 0x20, 0xa0, 0xe1, 0x0f, 0x70, 0xa0, 0xe3, 0x17, 0x10, 0xa0, 0xe1, 0x10, 0x00, 0x88, 0xe2, 0x31, 0xf9, 0xff, 0xeb, 0x01, 0x00, 0x56, 0xe3, 0x11, 0x00, 0x00, 0x1a, 0x84, 0x4c, 0x1f, 0xe5, 0x00, 0x00, 0x94, 0xe5, 0xa0, 0x20, 0xa0, 0xe3, 0xf0, 0x10, 0xa0, 0xe3, 0x00, 0x00, 0x8d, 0xe5, 0x0d, 0x00, 0xa0, 0xe1, 0x28, 0xf9, 0xff, 0xeb, 0x00, 0x20, 0xa0, 0xe3, 0x0c, 0x10, 0xa0, 0xe3, 0x0d, 0x00, 0xa0, 0xe1, 0x24, 0xf9, 0xff, 0xeb, 0x00, 0x2a, 0x00, 0xe3, 0x00, 0x1f, 0x00, 0xe3, 0x0d, 0x00, 0xa0, 0xe1, 0x20, 0xf9, 0xff, 0xeb, 0x00, 0x00, 0x9d, 0xe5, 0x00, 0x00, 0x84, 0xe5, 0x11, 0x43, 0xa0, 0xe3, 0x00, 0x00, 0x99, 0xe5, 0xa0, 0x20, 0xa0, 0xe3, 0xf0, 0x10, 0xa0, 0xe3, 0x00, 0x00, 0x8d, 0xe5, 0x0d, 0x00, 0xa0, 0xe1, 0x17, 0xf9, 0xff, 0xeb, 0x00, 0x20, 0xa0, 0xe3, 0x0c, 0x10, 0xa0, 0xe3, 0x0d, 0x00, 0xa0, 0xe1, 0x13, 0xf9, 0xff, 0xeb, 0x00, 0x2a, 0x00, 0xe3, 0x00, 0x1f, 0x00, 0xe3, 0x0d, 0x00, 0xa0, 0xe1, 0x0f, 0xf9, 0xff, 0xeb, 0x00, 0x00, 0x9d, 0xe5, 0x00, 0x00, 0x89, 0xe5, 0x09, 0x10, 0xa0, 0xe3, 0x00, 0x30, 0xa0, 0xe3, 0x1a, 0xe1, 0x84, 0xe0, 0x03, 0x00, 0xa0, 0xe1, 0x01, 0x00, 0x10, 0xe3, 0x00, 0x21, 0x85, 0xe0, 0x02, 0x20, 0xe0, 0x01, 0x00, 0x20, 0x8d, 0xe5, 0x00, 0xc1, 0x9e, 0xe7, 0x02, 0x00, 0x5c, 0xe1, 0x03, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x80, 0xe2, 0x40, 0x00, 0x50, 0xe3, 0x01, 0x30, 0x83, 0xe2, 0xf4, 0xff, 0xff, 0x3a, 0x40, 0x00, 0x53, 0xe3, 0x03, 0x00, 0x00, 0x0a, 0x01, 0x10, 0x81, 0xe2, 0x0d, 0x00, 0x51, 0xe3, 0xec, 0xff, 0xff, 0x9a, 0x01, 0x00, 0x00, 0xea, 0x0d, 0x00, 0x51, 0xe3, 0x00, 0x00, 0x00, 0x3a, 0x0d, 0x10, 0xa0, 0xe3, 0x09, 0x00, 0x51, 0xe3, 0x0a, 0x00, 0x41, 0x12, 0x00, 0x90, 0xa0, 0x03, 0x06, 0x10, 0xa0, 0xe1, 0x1a, 0x90, 0xa0, 0x11, 0xa4, 0x00, 0x8f, 0xe2, 0x09, 0x20, 0xa0, 0xe1, 0x70, 0x03, 0x00, 0xeb, 0x06, 0x02, 0xa0, 0xe1, 0x19, 0x20, 0xa0, 0xe1, 0x17, 0x10, 0xa0, 0xe1, 0x10, 0x00, 0x88, 0xe2, 0xe8, 0xf8, 0xff, 0xeb, 0x01, 0x60, 0x86, 0xe2, 0x06, 0x00, 0x5b, 0xe1, 0xe9, 0xfe, 0xff, 0x8a, 0x01, 0x00, 0x5b, 0xe3, 0x09, 0x00, 0x00, 0x9a, 0x10, 0x00, 0x98, 0xe5, 0x70, 0x10, 0xff, 0xe6, 0x20, 0x08, 0x51, 0xe1, 0x14, 0x00, 0x98, 0xe5, 0x0f, 0x0c, 0xc0, 0xe3, 0x01, 0x0c, 0x80, 0x13, 0x14, 0x00, 0x88, 0xe5, 0x80, 0x00, 0x8f, 0x02, 0x98, 0x00, 0x8f, 0x12, 0x5c, 0x03, 0x00, 0xeb, 0x01, 0x00, 0xa0, 0xe3, 0xf8, 0x8f, 0xbd, 0xe8, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x25, 0x64, 0x20, 0x72, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x0a, 0x00, 0x00, 0x00, 0x80, 0x40, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x25, 0x64, 0x20, 0x62, 0x61, 0x6e, 0x6b, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x25, 0x64, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x4b, 0x42, 0x20, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x72, 0x61, 0x6e, 0x6b, 0x31, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x30, 0x0a, 0x00, 0x72, 0x61, 0x6e, 0x6b, 0x31, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x30, 0x0a, 0x00, 0x00, 0x94, 0x2e, 0x1f, 0xe5, 0x10, 0x40, 0x2d, 0xe9, 0x10, 0x10, 0x92, 0xe5, 0x01, 0x05, 0x11, 0xe3, 0x16, 0x00, 0x00, 0x0a, 0x48, 0x13, 0x92, 0xe5, 0xc8, 0x23, 0x92, 0xe5, 0x51, 0x1c, 0xe1, 0xe7, 0x52, 0x4c, 0xe1, 0xe7, 0x01, 0x20, 0xa0, 0xe1, 0x01, 0x30, 0x04, 0xe2, 0x02, 0x00, 0x51, 0xe3, 0x93, 0x20, 0xdf, 0xe7, 0xd0, 0x3e, 0x1f, 0xe5, 0x00, 0x20, 0x83, 0xe5, 0x11, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x51, 0xe3, 0x1a, 0x00, 0x00, 0x0a, 0x5c, 0x00, 0x90, 0xe5, 0x02, 0x02, 0x10, 0xe3, 0x04, 0x00, 0x00, 0x0a, 0x75, 0x0f, 0x8f, 0xe2, 0x16, 0x03, 0x00, 0xeb, 0x77, 0x0f, 0x8f, 0xe2, 0x04, 0x10, 0xa0, 0xe1, 0x13, 0x03, 0x00, 0xeb, 0x00, 0x00, 0xa0, 0xe3, 0x10, 0x80, 0xbd, 0xe8, 0x14, 0x10, 0x90, 0xe5, 0x0f, 0x10, 0xc1, 0xe3, 0x01, 0x1a, 0x81, 0xe3, 0x14, 0x10, 0x80, 0xe5, 0x72, 0x0f, 0x8f, 0xe2, 0x10, 0x00, 0x00, 0xea, 0x14, 0x10, 0x90, 0xe5, 0x02, 0x00, 0x54, 0xe3, 0x0f, 0x20, 0x0f, 0x03, 0x0f, 0x1a, 0xc1, 0x13, 0x0f, 0x10, 0xc1, 0x13, 0x01, 0x10, 0x81, 0x13, 0x02, 0x10, 0xc1, 0x01, 0x14, 0x10, 0x80, 0xe5, 0x71, 0x0f, 0x8f, 0x12, 0x7a, 0x0f, 0x8f, 0x02, 0x05, 0x00, 0x00, 0xea, 0x14, 0x10, 0x90, 0xe5, 0x0f, 0x10, 0xc1, 0xe3, 0x01, 0x1a, 0x81, 0xe3, 0x01, 0x10, 0x81, 0xe3, 0x14, 0x10, 0x80, 0xe5, 0x7d, 0x0f, 0x8f, 0xe2, 0xf9, 0x02, 0x00, 0xeb, 0x01, 0x00, 0xa0, 0xe3, 0x10, 0x80, 0xbd, 0xe8, 0x70, 0x40, 0x2d, 0xe9, 0x00, 0x40, 0xa0, 0xe1, 0x10, 0x60, 0xb0, 0xe5, 0x4c, 0x50, 0x90, 0xe5, 0xfc, 0x01, 0x9f, 0xe5, 0x10, 0x00, 0x84, 0xe5, 0x14, 0x00, 0x94, 0xe5, 0x0f, 0x00, 0xc0, 0xe3, 0x01, 0x0a, 0x80, 0xe3, 0x14, 0x00, 0x84, 0xe5, 0x08, 0x00, 0xc5, 0xe3, 0x05, 0x00, 0x80, 0xe3, 0x5c, 0x00, 0x84, 0xe5, 0x04, 0x00, 0xa0, 0xe1, 0x46, 0xfe, 0xff, 0xeb, 0xa8, 0x0f, 0x1f, 0xe5, 0x10, 0x00, 0x90, 0xe5, 0x01, 0x06, 0x10, 0xe3, 0x00, 0x00, 0xa0, 0x13, 0x70, 0x80, 0xbd, 0x18, 0x04, 0x00, 0xa0, 0xe1, 0xb3, 0xff, 0xff, 0xeb, 0x00, 0x00, 0x50, 0xe3, 0x10, 0x60, 0xa4, 0x15, 0x01, 0x00, 0xa0, 0x13, 0x4c, 0x50, 0x84, 0x15, 0x70, 0x80, 0xbd, 0xe8, 0xf0, 0x41, 0x2d, 0xe9, 0x5c, 0x60, 0x90, 0xe5, 0x00, 0x40, 0xa0, 0xe1, 0x14, 0x70, 0x90, 0xe5, 0x00, 0x50, 0xa0, 0xe3, 0x10, 0x80, 0x90, 0xe5, 0x00, 0x00, 0x90, 0xe5, 0x84, 0x11, 0x9f, 0xe5, 0x00, 0x00, 0x50, 0xe3, 0x10, 0x10, 0x84, 0xe5, 0x08, 0x00, 0xc6, 0xe3, 0x01, 0x50, 0xa0, 0x03, 0x05, 0x00, 0x80, 0xe3, 0x5c, 0x00, 0x84, 0xe5, 0x00, 0x00, 0x55, 0xe3, 0x00, 0x10, 0xa0, 0xe3, 0x14, 0x10, 0x84, 0xe5, 0x04, 0x00, 0x00, 0x0a, 0x44, 0x00, 0x94, 0xe5, 0x50, 0x08, 0xe7, 0xe7, 0x80, 0x00, 0x80, 0xe0, 0x80, 0x01, 0xa0, 0xe1, 0x00, 0x00, 0x84, 0xe5, 0x03, 0x00, 0xa0, 0xe3, 0x04, 0x00, 0x84, 0xe5, 0xfb, 0x0b, 0x03, 0xe3, 0x08, 0x00, 0x84, 0xe5, 0x04, 0x00, 0xa0, 0xe1, 0x1d, 0xfe, 0xff, 0xeb, 0x04, 0x00, 0xa0, 0xe1, 0x8f, 0xff, 0xff, 0xeb, 0x00, 0x00, 0x50, 0xe3, 0x49, 0x0f, 0x8f, 0x12, 0x05, 0x00, 0x00, 0x0a, 0xb9, 0x02, 0x00, 0xeb, 0x10, 0x80, 0xa4, 0xe5, 0x01, 0x00, 0xa0, 0xe3, 0x04, 0x70, 0x84, 0xe5, 0x4c, 0x60, 0x84, 0xe5, 0xf0, 0x81, 0xbd, 0xe8, 0x00, 0x00, 0x55, 0xe3, 0x04, 0x00, 0x00, 0x0a, 0x44, 0x00, 0x94, 0xe5, 0x20, 0x0c, 0xa0, 0xe1, 0x80, 0x00, 0x80, 0xe0, 0x80, 0x01, 0xa0, 0xe1, 0x00, 0x00, 0x84, 0xe5, 0x02, 0x00, 0xa0, 0xe3, 0x04, 0x00, 0x84, 0xe5, 0xf9, 0x0b, 0x03, 0xe3, 0x08, 0x00, 0x84, 0xe5, 0x04, 0x00, 0xa0, 0xe1, 0x05, 0xfe, 0xff, 0xeb, 0x04, 0x00, 0xa0, 0xe1, 0x77, 0xff, 0xff, 0xeb, 0x00, 0x00, 0x50, 0xe3, 0xe4, 0x00, 0x8f, 0x12, 0xe7, 0xff, 0xff, 0x1a, 0xf0, 0x81, 0xbd, 0xe8, 0x44, 0x58, 0x30, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x00, 0x00, 0x44, 0x58, 0x31, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x00, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x44, 0x51, 0x21, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x68, 0x61, 0x6c, 0x66, 0x20, 0x44, 0x51, 0x21, 0x0a, 0x00, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x44, 0x51, 0x21, 0x0a, 0x00, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x64, 0x75, 0x61, 0x6c, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x68, 0x61, 0x6c, 0x66, 0x20, 0x44, 0x51, 0x21, 0x0a, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x00, 0xb0, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x44, 0x44, 0x52, 0x33, 0x20, 0x74, 0x72, 0x79, 0x20, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x0a, 0x00, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x44, 0x44, 0x52, 0x32, 0x20, 0x74, 0x72, 0x79, 0x20, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x0a, 0x00, 0x00, 0x10, 0x40, 0x2d, 0xe9, 0x00, 0x40, 0xa0, 0xe1, 0xbc, 0x05, 0xd0, 0xe1, 0x02, 0x0a, 0x10, 0xe3, 0x04, 0x00, 0x00, 0x1a, 0x04, 0x00, 0xa0, 0xe1, 0x7d, 0xff, 0xff, 0xeb, 0x00, 0x00, 0x50, 0xe3, 0x7e, 0x0f, 0x8f, 0x02, 0x16, 0x00, 0x00, 0x0a, 0xbc, 0x05, 0xd4, 0xe1, 0x01, 0x09, 0x10, 0xe3, 0x04, 0x00, 0x00, 0x1a, 0x04, 0x00, 0xa0, 0xe1, 0x5a, 0xff, 0xff, 0xeb, 0x00, 0x00, 0x50, 0xe3, 0x81, 0x0f, 0x8f, 0x02, 0x0e, 0x00, 0x00, 0x0a, 0x5c, 0x00, 0xd4, 0xe5, 0x01, 0x00, 0x10, 0xe3, 0x04, 0x00, 0x00, 0x1a, 0x04, 0x00, 0xa0, 0xe1, 0xb7, 0xfd, 0xff, 0xeb, 0x00, 0x00, 0x50, 0xe3, 0x85, 0x0f, 0x8f, 0x02, 0x06, 0x00, 0x00, 0x0a, 0x5c, 0x00, 0x94, 0xe5, 0x02, 0x09, 0x10, 0xe3, 0x03, 0x00, 0x80, 0x03, 0x06, 0x0a, 0x80, 0x03, 0x5c, 0x00, 0x84, 0x05, 0x01, 0x00, 0xa0, 0xe3, 0x10, 0x80, 0xbd, 0xe8, 0x3f, 0x02, 0x00, 0xeb, 0x00, 0x00, 0xa0, 0xe3, 0x10, 0x80, 0xbd, 0xe8, 0xf0, 0x47, 0x2d, 0xe9, 0xa0, 0x00, 0xa0, 0xe1, 0x08, 0x82, 0x9f, 0xe5, 0x00, 0x7a, 0xa0, 0xe1, 0x00, 0x00, 0xa0, 0xe3, 0x08, 0x90, 0xe0, 0xe1, 0x00, 0x11, 0xa0, 0xe1, 0x01, 0x11, 0x81, 0xe2, 0x09, 0x20, 0x80, 0xe0, 0x00, 0x20, 0x81, 0xe5, 0x00, 0x11, 0x87, 0xe0, 0x01, 0x11, 0x81, 0xe2, 0x08, 0x20, 0x80, 0xe0, 0x00, 0x20, 0x81, 0xe5, 0x01, 0x00, 0x80, 0xe2, 0x01, 0x0a, 0x50, 0xe3, 0x00, 0x40, 0xa0, 0x23, 0xf3, 0xff, 0xff, 0x3a, 0x04, 0x61, 0x87, 0xe0, 0x01, 0x01, 0xa0, 0xe3, 0x08, 0xa0, 0x84, 0xe0, 0x06, 0x50, 0x90, 0xe7, 0x0a, 0x00, 0x55, 0xe1, 0x06, 0x00, 0x00, 0x0a, 0x6d, 0x0f, 0x8f, 0xe2, 0x23, 0x02, 0x00, 0xeb, 0x01, 0x31, 0x86, 0xe2, 0x0a, 0x20, 0xa0, 0xe1, 0x71, 0x0f, 0x8f, 0xe2, 0x05, 0x10, 0xa0, 0xe1, 0x1e, 0x02, 0x00, 0xeb, 0x04, 0x01, 0xa0, 0xe1, 0x01, 0x01, 0x80, 0xe2, 0x00, 0x50, 0x90, 0xe5, 0x09, 0x60, 0x84, 0xe0, 0x06, 0x00, 0x55, 0xe1, 0x07, 0x00, 0x00, 0x0a, 0x06, 0x0d, 0x8f, 0xe2, 0x16, 0x02, 0x00, 0xeb, 0x01, 0x01, 0xa0, 0xe3, 0x06, 0x20, 0xa0, 0xe1, 0x04, 0x31, 0x80, 0xe0, 0x05, 0x10, 0xa0, 0xe1, 0x62, 0x0f, 0x8f, 0xe2, 0x10, 0x02, 0x00, 0xeb, 0x01, 0x40, 0x84, 0xe2, 0x01, 0x0a, 0x54, 0xe3, 0xe1, 0xff, 0xff, 0x3a, 0x63, 0x0f, 0x8f, 0xe2, 0x0b, 0x02, 0x00, 0xeb, 0x00, 0x00, 0xa0, 0xe3, 0xf0, 0x87, 0xbd, 0xe8, 0x70, 0x40, 0x2d, 0xe9, 0x5c, 0x00, 0x91, 0xe5, 0x01, 0x40, 0xa0, 0xe1, 0x90, 0x21, 0x9f, 0xe5, 0x01, 0x08, 0x10, 0xe3, 0x0a, 0x00, 0x00, 0x0a, 0x10, 0x03, 0x92, 0xe5, 0x01, 0x0c, 0x80, 0xe3, 0x10, 0x03, 0x82, 0xe5, 0x00, 0x00, 0xa0, 0xe3, 0x18, 0x03, 0x82, 0xe5, 0x0a, 0x00, 0xa0, 0xe3, 0x74, 0xf7, 0xff, 0xeb, 0x5c, 0x00, 0xd4, 0xe5, 0x01, 0x00, 0x10, 0xe3, 0x0f, 0x00, 0x00, 0x1a, 0x0a, 0x00, 0x00, 0xea, 0x10, 0x00, 0xa0, 0xe3, 0x50, 0x02, 0x82, 0xe5, 0x0a, 0x00, 0xa0, 0xe3, 0x6c, 0xf7, 0xff, 0xeb, 0x33, 0x08, 0xa0, 0xe3, 0x10, 0x03, 0x82, 0xe5, 0x0a, 0x00, 0xa0, 0xe3, 0x68, 0xf7, 0xff, 0xeb, 0x3c, 0x01, 0x9f, 0xe5, 0x10, 0x03, 0x82, 0xe5, 0xf0, 0xff, 0xff, 0xea, 0x04, 0x00, 0xa0, 0xe1, 0x89, 0xff, 0xff, 0xeb, 0x00, 0x00, 0x50, 0xe3, 0x70, 0x80, 0xbd, 0x08, 0x49, 0x1f, 0x8f, 0xe2, 0x4a, 0x0f, 0x8f, 0xe2, 0xe6, 0x01, 0x00, 0xeb, 0x00, 0x10, 0x94, 0xe5, 0x4e, 0x0f, 0x8f, 0xe2, 0xe3, 0x01, 0x00, 0xeb, 0x04, 0x10, 0x94, 0xe5, 0x05, 0x0d, 0x8f, 0xe2, 0xe0, 0x01, 0x00, 0xeb, 0x0c, 0x00, 0xd4, 0xe5, 0x01, 0x00, 0x10, 0xe3, 0x5a, 0x00, 0x00, 0x0a, 0x08, 0x10, 0x94, 0xe5, 0x52, 0x0f, 0x8f, 0xe2, 0xda, 0x01, 0x00, 0xeb, 0x58, 0x00, 0x00, 0xea, 0x5b, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x61, 0x6e, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x20, 0x21, 0x0a, 0x00, 0x00, 0x00, 0x5b, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x61, 0x6e, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x26, 0x77, 0x69, 0x64, 0x74, 0x68, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x20, 0x21, 0x0a, 0x00, 0x5b, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x61, 0x6e, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x20, 0x21, 0x0a, 0x00, 0x00, 0x00, 0x98, 0xba, 0xdc, 0xfe, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x46, 0x41, 0x49, 0x4c, 0x2e, 0x0a, 0x00, 0x00, 0x25, 0x78, 0x20, 0x21, 0x3d, 0x20, 0x25, 0x78, 0x20, 0x61, 0x74, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x25, 0x78, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x4f, 0x4b, 0x2e, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x03, 0x00, 0x33, 0x00, 0x56, 0x30, 0x2e, 0x32, 0x30, 0x00, 0x00, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x42, 0x4f, 0x4f, 0x54, 0x20, 0x44, 0x52, 0x49, 0x56, 0x45, 0x20, 0x49, 0x4e, 0x46, 0x4f, 0x3a, 0x20, 0x25, 0x73, 0x0a, 0x00, 0x00, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x43, 0x4c, 0x4b, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x4d, 0x48, 0x7a, 0x0a, 0x00, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x54, 0x79, 0x70, 0x65, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x28, 0x32, 0x3a, 0x44, 0x44, 0x52, 0x32, 0x2c, 0x33, 0x3a, 0x44, 0x44, 0x52, 0x33, 0x29, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x43, 0x20, 0x5a, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x0c, 0x8f, 0xe2, 0x80, 0x01, 0x00, 0xeb, 0x1c, 0x10, 0x94, 0xe5, 0x44, 0x00, 0x11, 0xe3, 0x02, 0x00, 0x00, 0x0a, 0x81, 0x0f, 0x8f, 0xe2, 0x7b, 0x01, 0x00, 0xeb, 0x01, 0x00, 0x00, 0xea, 0x21, 0x0e, 0x8f, 0xe2, 0x78, 0x01, 0x00, 0xeb, 0x50, 0x10, 0x94, 0xe5, 0x85, 0x0f, 0x8f, 0xe2, 0x75, 0x01, 0x00, 0xeb, 0x54, 0x10, 0x94, 0xe5, 0x87, 0x0f, 0x8f, 0xe2, 0x72, 0x01, 0x00, 0xeb, 0x58, 0x10, 0x94, 0xe5, 0x89, 0x0f, 0x8f, 0xe2, 0x6f, 0x01, 0x00, 0xeb, 0x04, 0x00, 0xa0, 0xe1, 0xcb, 0xfc, 0xff, 0xeb, 0x00, 0x00, 0x50, 0xe3, 0x17, 0x00, 0x00, 0x0a, 0x20, 0x62, 0x9f, 0xe5, 0x00, 0x12, 0x96, 0xe5, 0x87, 0x0f, 0x8f, 0xe2, 0x67, 0x01, 0x00, 0xeb, 0x00, 0x50, 0xa0, 0xe3, 0x85, 0x03, 0xa0, 0xe1, 0x01, 0x03, 0x80, 0xe2, 0x03, 0x0a, 0x80, 0xe2, 0x00, 0x23, 0x90, 0xe5, 0x83, 0x0f, 0x8f, 0xe2, 0x05, 0x10, 0xa0, 0xe1, 0x5f, 0x01, 0x00, 0xeb, 0x01, 0x50, 0x85, 0xe2, 0x02, 0x00, 0x55, 0xe3, 0xf5, 0xff, 0xff, 0x3a, 0x14, 0x00, 0x94, 0xe5, 0x00, 0x00, 0x50, 0xe3, 0x08, 0x00, 0x00, 0xaa, 0x02, 0x19, 0xe0, 0xe3, 0x20, 0x58, 0x01, 0xe0, 0x7d, 0x0f, 0x8f, 0xe2, 0x05, 0x10, 0xa0, 0xe1, 0x54, 0x01, 0x00, 0xeb, 0x08, 0x00, 0x00, 0xea, 0x7e, 0x0f, 0x8f, 0xe2, 0x51, 0x01, 0x00, 0xeb, 0x4b, 0x00, 0x00, 0xea, 0x74, 0xfc, 0xff, 0xeb, 0x00, 0x50, 0xa0, 0xe1, 0x00, 0x10, 0xa0, 0xe1, 0x73, 0x0f, 0x8f, 0xe2, 0x4b, 0x01, 0x00, 0xeb, 0xb6, 0x51, 0xc4, 0xe1, 0x5c, 0x00, 0x94, 0xe5, 0x01, 0x01, 0x10, 0xe3, 0xa0, 0x00, 0x96, 0xe5, 0x0b, 0x00, 0x00, 0x0a, 0x48, 0x00, 0x94, 0xe5, 0x00, 0x00, 0x50, 0xe3, 0xd8, 0x01, 0x9f, 0x05, 0xa0, 0x00, 0x86, 0xe5, 0x0a, 0x04, 0x00, 0xe3, 0x9c, 0x00, 0x86, 0xe5, 0x04, 0x00, 0x96, 0xe5, 0x01, 0x00, 0x80, 0xe3, 0x04, 0x00, 0x86, 0xe5, 0x07, 0x0d, 0x8f, 0xe2, 0x3b, 0x01, 0x00, 0xeb, 0x04, 0x00, 0x00, 0xea, 0x1f, 0x00, 0xcf, 0xe7, 0xa0, 0x00, 0x86, 0xe5, 0x04, 0x00, 0x96, 0xe5, 0x01, 0x00, 0xc0, 0xe3, 0x04, 0x00, 0x86, 0xe5, 0xbc, 0x05, 0xd4, 0xe1, 0x02, 0x0c, 0x10, 0xe3, 0x18, 0x00, 0x00, 0x1a, 0x04, 0x00, 0x94, 0xe5, 0x06, 0x00, 0x50, 0xe3, 0x00, 0x01, 0x96, 0x15, 0x0f, 0x0a, 0xc0, 0x13, 0x13, 0x00, 0x00, 0x0a, 0x00, 0x01, 0x86, 0xe5, 0x40, 0x01, 0x96, 0xe5, 0x02, 0x01, 0x80, 0xe3, 0x40, 0x01, 0x86, 0xe5, 0xbc, 0x05, 0xd4, 0xe1, 0x01, 0x0c, 0x10, 0xe3, 0x02, 0x00, 0x00, 0x0a, 0xb8, 0x00, 0x96, 0xe5, 0x03, 0x0c, 0x80, 0xe3, 0xb8, 0x00, 0x86, 0xe5, 0x5c, 0x00, 0x94, 0xe5, 0x01, 0x03, 0x10, 0xe3, 0x08, 0x01, 0x96, 0xe5, 0x02, 0x0a, 0xc0, 0x13, 0x02, 0x0a, 0x80, 0x03, 0x08, 0x01, 0x86, 0xe5, 0x04, 0x00, 0x94, 0xe5, 0x07, 0x00, 0x50, 0xe3, 0x08, 0x00, 0x00, 0x1a, 0x03, 0x00, 0x00, 0xea, 0x00, 0x01, 0x96, 0xe5, 0x0f, 0x0a, 0xc0, 0xe3, 0x05, 0x0a, 0x80, 0xe3, 0xe7, 0xff, 0xff, 0xea, 0x7c, 0x00, 0x96, 0xe5, 0x0f, 0x08, 0xc0, 0xe3, 0x01, 0x08, 0x80, 0xe3, 0x7c, 0x00, 0x86, 0xe5, 0x92, 0xf6, 0xff, 0xeb, 0x5c, 0x00, 0x94, 0xe5, 0x01, 0x02, 0x10, 0xe3, 0x0a, 0x00, 0x00, 0x0a, 0x10, 0x00, 0x10, 0xe3, 0x00, 0x01, 0x96, 0x05, 0x02, 0x04, 0x80, 0x03, 0x00, 0x01, 0x86, 0x05, 0x00, 0x10, 0x01, 0xe3, 0x05, 0x00, 0xa0, 0xe1, 0xc8, 0xfe, 0xff, 0xeb, 0x00, 0x00, 0x50, 0xe3, 0x01, 0x00, 0x00, 0x0a, 0x00, 0x00, 0xa0, 0xe3, 0x70, 0x80, 0xbd, 0xe8, 0x05, 0x00, 0xa0, 0xe1, 0x70, 0x80, 0xbd, 0xe8, 0x44, 0x52, 0x41, 0x4d, 0x43, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x4f, 0x44, 0x54, 0x20, 0x20, 0x6f, 0x66, 0x66, 0x2e, 0x0a, 0x00, 0x00, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x4f, 0x44, 0x54, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x30, 0x78, 0x25, 0x78, 0x2e, 0x0a, 0x00, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x4f, 0x44, 0x54, 0x20, 0x6f, 0x66, 0x66, 0x2e, 0x0a, 0x00, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x74, 0x70, 0x72, 0x31, 0x30, 0x20, 0x3d, 0x20, 0x25, 0x78, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x74, 0x70, 0x72, 0x31, 0x31, 0x20, 0x3d, 0x20, 0x25, 0x78, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x74, 0x70, 0x72, 0x31, 0x32, 0x20, 0x3d, 0x20, 0x25, 0x78, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x04, 0x41, 0x43, 0x4d, 0x44, 0x4c, 0x52, 0x3a, 0x20, 0x25, 0x78, 0x0a, 0x00, 0x44, 0x58, 0x6e, 0x4d, 0x44, 0x4c, 0x52, 0x28, 0x25, 0x64, 0x29, 0x3a, 0x20, 0x25, 0x78, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x53, 0x49, 0x5a, 0x45, 0x20, 0x3d, 0x25, 0x64, 0x20, 0x4d, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x3a, 0x20, 0x31, 0x20, 0x21, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x10, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x41, 0x75, 0x74, 0x6f, 0x20, 0x53, 0x52, 0x0a, 0x00, 0x08, 0x00, 0x9f, 0xe5, 0x04, 0x10, 0x90, 0xe5, 0x00, 0x00, 0xa0, 0xe3, 0xb9, 0xfe, 0xff, 0xea, 0x8c, 0x51, 0x02, 0x00, 0x05, 0x14, 0xa0, 0xe3, 0x7c, 0x20, 0xd1, 0xe5, 0x02, 0x00, 0x12, 0xe3, 0x00, 0x00, 0xc1, 0x15, 0xfb, 0xff, 0xff, 0x0a, 0x1e, 0xff, 0x2f, 0xe1, 0x05, 0x14, 0xa0, 0xe3, 0xff, 0x0f, 0x0f, 0xe3, 0x7c, 0x20, 0xd1, 0xe5, 0x08, 0x00, 0x12, 0xe3, 0x03, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x50, 0xe3, 0x00, 0x00, 0xd1, 0x15, 0x02, 0x00, 0x00, 0x0a, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0x50, 0xe3, 0xf6, 0xff, 0xff, 0x1a, 0x00, 0x00, 0xa0, 0xe3, 0x1e, 0xff, 0x2f, 0xe1, 0x30, 0x40, 0x2d, 0xe9, 0x01, 0x40, 0xa0, 0xe1, 0x00, 0x50, 0xa0, 0xe1, 0x00, 0x30, 0xa0, 0xe3, 0x01, 0x00, 0x00, 0xea, 0xe6, 0xff, 0xff, 0xeb, 0x01, 0x30, 0x83, 0xe2, 0x03, 0x00, 0xd5, 0xe7, 0x00, 0x00, 0x50, 0xe3, 0x04, 0x00, 0x53, 0x11, 0x04, 0x00, 0xa0, 0x21, 0xf8, 0xff, 0xff, 0x3a, 0x30, 0x80, 0xbd, 0xe8, 0x30, 0x40, 0x2d, 0xe9, 0x01, 0x50, 0xa0, 0xe1, 0x00, 0x40, 0xa0, 0xe1, 0x00, 0x30, 0xa0, 0xe3, 0x05, 0x00, 0x53, 0xe1, 0x04, 0x00, 0x00, 0x2a, 0xde, 0xff, 0xff, 0xeb, 0x00, 0x00, 0x50, 0xe3, 0x03, 0x00, 0xc4, 0x17, 0x01, 0x30, 0x83, 0x12, 0xf8, 0xff, 0xff, 0x1a, 0x01, 0x00, 0x83, 0xe2, 0x30, 0x80, 0xbd, 0xe8, 0xfe, 0x40, 0x2d, 0xe9, 0x00, 0x00, 0x50, 0xe3, 0x00, 0x70, 0xa0, 0xe3, 0x00, 0x00, 0x60, 0xb2, 0x07, 0x60, 0xa0, 0xe1, 0x30, 0x00, 0xa0, 0x03, 0x00, 0x00, 0xc1, 0x05, 0x01, 0x70, 0xa0, 0xb3, 0x00, 0x20, 0xa0, 0x13, 0x0d, 0x50, 0xa0, 0x11, 0x0a, 0x30, 0xa0, 0x13, 0x01, 0x60, 0xc1, 0x05, 0x13, 0x00, 0x00, 0x0a, 0x05, 0x00, 0x00, 0xea, 0x00, 0x40, 0xa0, 0xe1, 0x10, 0xf3, 0x10, 0xe7, 0x93, 0x40, 0x64, 0xe0, 0x30, 0x40, 0x84, 0xe2, 0x02, 0x40, 0xc5, 0xe7, 0x01, 0x20, 0x82, 0xe2, 0x00, 0x00, 0x50, 0xe3, 0xf7, 0xff, 0xff, 0xca, 0x00, 0x00, 0x57, 0xe3, 0x00, 0x00, 0xa0, 0xe3, 0x2d, 0x00, 0xa0, 0x13, 0x00, 0x00, 0xc1, 0x15, 0x01, 0x00, 0xa0, 0x13, 0x01, 0x20, 0x52, 0xe2, 0x02, 0x30, 0xd5, 0x57, 0x00, 0x30, 0xc1, 0x57, 0x01, 0x00, 0x80, 0x52, 0x00, 0x60, 0xc1, 0x47, 0xf9, 0xff, 0xff, 0x5a, 0xfe, 0x80, 0xbd, 0xe8, 0x7e, 0x40, 0x2d, 0xe9, 0x00, 0x00, 0x50, 0xe3, 0x00, 0x60, 0xa0, 0xe3, 0x30, 0x00, 0xa0, 0x03, 0x00, 0x00, 0xc1, 0x05, 0x00, 0x20, 0xa0, 0x13, 0x0a, 0x30, 0xa0, 0x13, 0x0d, 0x50, 0xa0, 0x11, 0x01, 0x60, 0xc1, 0x05, 0x11, 0x00, 0x00, 0x0a, 0x00, 0x40, 0xa0, 0xe1, 0x10, 0xf3, 0x30, 0xe7, 0x93, 0x40, 0x64, 0xe0, 0x00, 0x00, 0x50, 0xe3, 0x30, 0x40, 0x84, 0xe2, 0x02, 0x40, 0xc5, 0xe7, 0x01, 0x20, 0x82, 0xe2, 0x01, 0x00, 0x42, 0x02, 0x00, 0x20, 0xa0, 0x03, 0xf5, 0xff, 0xff, 0x1a, 0x03, 0x00, 0x00, 0xea, 0x00, 0x30, 0xd5, 0xe7, 0x01, 0x00, 0x40, 0xe2, 0x02, 0x30, 0xc1, 0xe7, 0x01, 0x20, 0x82, 0xe2, 0x00, 0x00, 0x50, 0xe3, 0x02, 0x60, 0xc1, 0xb7, 0xf8, 0xff, 0xff, 0xaa, 0x7e, 0x80, 0xbd, 0xe8, 0xc8, 0x32, 0x9f, 0xe5, 0x09, 0x20, 0xa0, 0xe3, 0x10, 0x40, 0x2d, 0xe9, 0x0f, 0x40, 0x00, 0xe2, 0x40, 0x02, 0xa0, 0xe1, 0x04, 0x40, 0xd3, 0xe7, 0x02, 0x40, 0xc1, 0xe7, 0x01, 0x20, 0x42, 0xe2, 0x01, 0x00, 0x52, 0xe3, 0xf8, 0xff, 0xff, 0xca, 0x30, 0x00, 0xa0, 0xe3, 0x00, 0x00, 0xc1, 0xe5, 0x78, 0x00, 0xa0, 0xe3, 0x01, 0x00, 0xc1, 0xe5, 0x00, 0x00, 0xa0, 0xe3, 0x0a, 0x00, 0xc1, 0xe5, 0x10, 0x80, 0xbd, 0xe8, 0x0f, 0x00, 0x2d, 0xe9, 0x7f, 0x40, 0x2d, 0xe9, 0x28, 0x50, 0x8d, 0xe2, 0x00, 0x40, 0xa0, 0xe1, 0x0a, 0x00, 0x00, 0xea, 0x25, 0x00, 0x50, 0xe3, 0x0f, 0x00, 0x00, 0x0a, 0x0a, 0x00, 0x50, 0xe3, 0x0d, 0x00, 0xa0, 0x03, 0x01, 0x00, 0xc4, 0x04, 0x24, 0x00, 0x9d, 0xe5, 0x00, 0x00, 0xd0, 0xe5, 0x01, 0x00, 0xc4, 0xe4, 0x24, 0x00, 0x9d, 0xe5, 0x01, 0x00, 0x80, 0xe2, 0x24, 0x00, 0x8d, 0xe5, 0x24, 0x10, 0x9d, 0xe5, 0x00, 0x00, 0xd1, 0xe5, 0x00, 0x00, 0x50, 0xe3, 0x00, 0x00, 0xc4, 0x05, 0xef, 0xff, 0xff, 0x1a, 0x7f, 0x00, 0xbd, 0xe8, 0x14, 0xf0, 0x9d, 0xe4, 0x01, 0x10, 0x81, 0xe2, 0x24, 0x10, 0x8d, 0xe5, 0x0d, 0x60, 0xa0, 0xe1, 0x00, 0x00, 0xd1, 0xe5, 0x73, 0x00, 0x50, 0xe3, 0x04, 0x00, 0x95, 0x04, 0x04, 0x10, 0xa0, 0x01, 0x1f, 0x00, 0x00, 0x0a, 0x07, 0x00, 0x00, 0xca, 0x58, 0x00, 0x50, 0xe3, 0x17, 0x00, 0x00, 0x0a, 0x63, 0x00, 0x50, 0xe3, 0x04, 0x00, 0xd5, 0x04, 0xe6, 0xff, 0xff, 0x0a, 0x64, 0x00, 0x50, 0xe3, 0x0e, 0x00, 0x00, 0x0a, 0x03, 0x00, 0x00, 0xea, 0x75, 0x00, 0x50, 0xe3, 0x17, 0x00, 0x00, 0x0a, 0x78, 0x00, 0x50, 0xe3, 0x0d, 0x00, 0x00, 0x0a, 0x25, 0x00, 0xa0, 0xe3, 0x00, 0x00, 0xc4, 0xe5, 0x24, 0x00, 0x9d, 0xe5, 0x00, 0x00, 0xd0, 0xe5, 0x01, 0x00, 0xc4, 0xe5, 0x02, 0x40, 0x84, 0xe2, 0x24, 0x00, 0x9d, 0xe5, 0x01, 0x00, 0x80, 0xe2, 0x24, 0x00, 0x8d, 0xe5, 0xd9, 0xff, 0xff, 0xea, 0x04, 0x00, 0x95, 0xe4, 0x06, 0x10, 0xa0, 0xe1, 0x76, 0xff, 0xff, 0xeb, 0x02, 0x00, 0x00, 0xea, 0x04, 0x00, 0x95, 0xe4, 0x06, 0x10, 0xa0, 0xe1, 0xb1, 0xff, 0xff, 0xeb, 0x04, 0x10, 0xa0, 0xe1, 0x06, 0x00, 0xa0, 0xe1, 0x54, 0x00, 0x00, 0xeb, 0x00, 0x40, 0x84, 0xe0, 0xca, 0xff, 0xff, 0xea, 0x04, 0x00, 0x95, 0xe4, 0x06, 0x10, 0xa0, 0xe1, 0x8c, 0xff, 0xff, 0xeb, 0xf6, 0xff, 0xff, 0xea, 0x0f, 0x00, 0x2d, 0xe9, 0x00, 0x12, 0x00, 0xe3, 0x70, 0x40, 0x2d, 0xe9, 0x21, 0xde, 0x4d, 0xe2, 0x0d, 0x00, 0xa0, 0xe1, 0xb0, 0x00, 0x00, 0xfa, 0x89, 0x5f, 0x8d, 0xe2, 0x0d, 0x40, 0xa0, 0xe1, 0x0a, 0x00, 0x00, 0xea, 0x25, 0x00, 0x50, 0xe3, 0x14, 0x00, 0x00, 0x0a, 0x0a, 0x00, 0x50, 0xe3, 0x0d, 0x00, 0xa0, 0x03, 0x01, 0x00, 0xc4, 0x04, 0x20, 0x02, 0x9d, 0xe5, 0x00, 0x00, 0xd0, 0xe5, 0x01, 0x00, 0xc4, 0xe4, 0x20, 0x02, 0x9d, 0xe5, 0x01, 0x00, 0x80, 0xe2, 0x20, 0x02, 0x8d, 0xe5, 0x20, 0x12, 0x9d, 0xe5, 0x00, 0x00, 0xd1, 0xe5, 0x00, 0x00, 0x50, 0xe3, 0xf0, 0xff, 0xff, 0x1a, 0x00, 0x00, 0xa0, 0xe3, 0x00, 0x12, 0x00, 0xe3, 0x00, 0x00, 0xc4, 0xe5, 0x0d, 0x00, 0xa0, 0xe1, 0x32, 0xff, 0xff, 0xeb, 0x21, 0xde, 0x8d, 0xe2, 0x70, 0x00, 0xbd, 0xe8, 0x14, 0xf0, 0x9d, 0xe4, 0x01, 0x10, 0x81, 0xe2, 0x20, 0x12, 0x8d, 0xe5, 0x02, 0x6c, 0x8d, 0xe2, 0x00, 0x10, 0xd1, 0xe5, 0x73, 0x00, 0x51, 0xe3, 0x04, 0x00, 0x95, 0x04, 0x04, 0x10, 0xa0, 0x01, 0x1f, 0x00, 0x00, 0x0a, 0x07, 0x00, 0x00, 0xca, 0x58, 0x00, 0x51, 0xe3, 0x17, 0x00, 0x00, 0x0a, 0x63, 0x00, 0x51, 0xe3, 0x04, 0x00, 0xd5, 0x04, 0xe1, 0xff, 0xff, 0x0a, 0x64, 0x00, 0x51, 0xe3, 0x0e, 0x00, 0x00, 0x0a, 0x03, 0x00, 0x00, 0xea, 0x75, 0x00, 0x51, 0xe3, 0x17, 0x00, 0x00, 0x0a, 0x78, 0x00, 0x51, 0xe3, 0x0d, 0x00, 0x00, 0x0a, 0x25, 0x00, 0xa0, 0xe3, 0x00, 0x00, 0xc4, 0xe5, 0x20, 0x02, 0x9d, 0xe5, 0x00, 0x00, 0xd0, 0xe5, 0x01, 0x00, 0xc4, 0xe5, 0x02, 0x40, 0x84, 0xe2, 0x20, 0x02, 0x9d, 0xe5, 0x01, 0x00, 0x80, 0xe2, 0x20, 0x02, 0x8d, 0xe5, 0xd4, 0xff, 0xff, 0xea, 0x04, 0x00, 0x95, 0xe4, 0x06, 0x10, 0xa0, 0xe1, 0x27, 0xff, 0xff, 0xeb, 0x02, 0x00, 0x00, 0xea, 0x04, 0x00, 0x95, 0xe4, 0x06, 0x10, 0xa0, 0xe1, 0x62, 0xff, 0xff, 0xeb, 0x04, 0x10, 0xa0, 0xe1, 0x06, 0x00, 0xa0, 0xe1, 0x05, 0x00, 0x00, 0xeb, 0x00, 0x40, 0x84, 0xe0, 0xc5, 0xff, 0xff, 0xea, 0x04, 0x00, 0x95, 0xe4, 0x06, 0x10, 0xa0, 0xe1, 0x3d, 0xff, 0xff, 0xeb, 0xf6, 0xff, 0xff, 0xea, 0x10, 0x40, 0x2d, 0xe9, 0x00, 0x20, 0xa0, 0xe1, 0x00, 0x00, 0xa0, 0xe3, 0x0d, 0x40, 0xa0, 0xe3, 0x00, 0x30, 0xd2, 0xe5, 0x00, 0x00, 0x53, 0xe3, 0x10, 0x80, 0xbd, 0x08, 0x0a, 0x00, 0x53, 0xe3, 0x01, 0x40, 0xc1, 0x04, 0x01, 0x30, 0xd2, 0xe4, 0x01, 0x00, 0x80, 0x02, 0x01, 0x00, 0x80, 0xe2, 0x01, 0x30, 0xc1, 0xe4, 0xf5, 0xff, 0xff, 0xea, 0x94, 0x51, 0x02, 0x00, 0x0f, 0xb4, 0x1c, 0xb5, 0x07, 0x4b, 0x06, 0xaa, 0x7b, 0x44, 0x69, 0x46, 0x00, 0x90, 0x05, 0x98, 0x00, 0xf0, 0x2d, 0xf9, 0x00, 0x20, 0x69, 0x46, 0x00, 0xf0, 0x3c, 0xf9, 0x1c, 0xbc, 0x5d, 0xf8, 0x14, 0xfb, 0x00, 0x00, 0x89, 0x02, 0x00, 0x00, 0x2d, 0xe9, 0xf0, 0x41, 0x0e, 0x46, 0x04, 0x46, 0x00, 0x20, 0x20, 0x62, 0x20, 0x46, 0xe1, 0x68, 0x88, 0x47, 0x30, 0xb3, 0x25, 0x28, 0x05, 0xd0, 0xd4, 0xe9, 0x01, 0x21, 0x90, 0x47, 0x20, 0x6a, 0x40, 0x1c, 0xf2, 0xe7, 0xe1, 0x68, 0x20, 0x46, 0x00, 0x27, 0x88, 0x47, 0x05, 0x00, 0x18, 0xd0, 0xa5, 0xf1, 0x41, 0x00, 0x19, 0x28, 0x02, 0xd8, 0x20, 0x35, 0x4f, 0xf4, 0x00, 0x67, 0x32, 0x46, 0x29, 0x46, 0x20, 0x46, 0x27, 0x60, 0xfd, 0xf7, 0xe5, 0xf9, 0x40, 0xb1, 0x01, 0x28, 0x04, 0xd0, 0xf6, 0x1d, 0x26, 0xf0, 0x07, 0x06, 0x08, 0x36, 0xd8, 0xe7, 0x36, 0x1d, 0xd6, 0xe7, 0x28, 0x46, 0xda, 0xe7, 0x20, 0x6a, 0xbd, 0xe8, 0xf0, 0x81, 0x2d, 0xe9, 0xf0, 0x41, 0x80, 0x46, 0x00, 0x25, 0x10, 0x68, 0x75, 0x29, 0x41, 0x46, 0x14, 0xa6, 0x11, 0xd0, 0xaf, 0xf3, 0x00, 0x80, 0x00, 0x28, 0x02, 0xda, 0x40, 0x42, 0x11, 0xa6, 0x08, 0xe0, 0xd8, 0xf8, 0x00, 0x10, 0x8a, 0x07, 0x01, 0xd5, 0x0f, 0xa6, 0x02, 0xe0, 0x49, 0x07, 0x04, 0xd5, 0x0e, 0xa6, 0x01, 0x25, 0x01, 0xe0, 0xaf, 0xf3, 0x00, 0x80, 0x00, 0x24, 0x08, 0xf1, 0x24, 0x07, 0x04, 0xe0, 0x00, 0xf0, 0xe6, 0xe8, 0x30, 0x31, 0x39, 0x55, 0x64, 0x1c, 0x00, 0x28, 0xf8, 0xd1, 0x2b, 0x46, 0x32, 0x46, 0x21, 0x46, 0x40, 0x46, 0xbd, 0xe8, 0xf0, 0x41, 0x00, 0xf0, 0x61, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x10, 0x40, 0x2d, 0xe9, 0x20, 0x20, 0x52, 0xe2, 0x05, 0x00, 0x00, 0x3a, 0x18, 0x50, 0xb1, 0xe8, 0x20, 0x20, 0x52, 0xe2, 0x18, 0x50, 0xa0, 0xe8, 0x18, 0x50, 0xb1, 0xe8, 0x18, 0x50, 0xa0, 0xe8, 0xf9, 0xff, 0xff, 0x2a, 0x02, 0xce, 0xb0, 0xe1, 0x18, 0x50, 0xb1, 0x28, 0x18, 0x50, 0xa0, 0x28, 0x18, 0x00, 0xb1, 0x48, 0x18, 0x00, 0xa0, 0x48, 0x10, 0x40, 0xbd, 0xe8, 0x02, 0xcf, 0xb0, 0xe1, 0x04, 0x30, 0x91, 0x24, 0x04, 0x30, 0x80, 0x24, 0x1e, 0xff, 0x2f, 0x01, 0x82, 0x2f, 0xb0, 0xe1, 0xb2, 0x30, 0xd1, 0x20, 0x01, 0x20, 0xd1, 0x44, 0xb2, 0x30, 0xc0, 0x20, 0x01, 0x20, 0xc0, 0x44, 0x1e, 0xff, 0x2f, 0xe1, 0x4f, 0xf0, 0x00, 0x02, 0x00, 0xb5, 0x13, 0x46, 0x94, 0x46, 0x96, 0x46, 0x20, 0x39, 0x22, 0xbf, 0xa0, 0xe8, 0x0c, 0x50, 0xa0, 0xe8, 0x0c, 0x50, 0xb1, 0xf1, 0x20, 0x01, 0xbf, 0xf4, 0xf7, 0xaf, 0x09, 0x07, 0x28, 0xbf, 0xa0, 0xe8, 0x0c, 0x50, 0x48, 0xbf, 0x0c, 0xc0, 0x5d, 0xf8, 0x04, 0xeb, 0x89, 0x00, 0x28, 0xbf, 0x40, 0xf8, 0x04, 0x2b, 0x08, 0xbf, 0x70, 0x47, 0x48, 0xbf, 0x20, 0xf8, 0x02, 0x2b, 0x11, 0xf0, 0x80, 0x4f, 0x18, 0xbf, 0x00, 0xf8, 0x01, 0x2b, 0x70, 0x47, 0x2d, 0xe9, 0xf0, 0x47, 0x0d, 0x46, 0x99, 0x46, 0x92, 0x46, 0x04, 0x46, 0x00, 0xf1, 0x24, 0x08, 0x01, 0x68, 0x88, 0x06, 0x04, 0xd5, 0xe0, 0x69, 0x21, 0xf0, 0x10, 0x01, 0x21, 0x60, 0x00, 0xe0, 0x01, 0x20, 0xa8, 0x42, 0x01, 0xdd, 0x47, 0x1b, 0x00, 0xe0, 0x00, 0x27, 0xa1, 0x69, 0x7a, 0x19, 0x02, 0xeb, 0x09, 0x00, 0x08, 0x1a, 0xa0, 0x61, 0x20, 0x78, 0xc0, 0x06, 0x02, 0xd4, 0x20, 0x46, 0xaf, 0xf3, 0x00, 0x80, 0x00, 0x26, 0x08, 0xe0, 0xd4, 0xe9, 0x01, 0x21, 0x1a, 0xf8, 0x06, 0x00, 0x90, 0x47, 0x20, 0x6a, 0x40, 0x1c, 0x76, 0x1c, 0x20, 0x62, 0x4e, 0x45, 0xf4, 0xdb, 0x20, 0x78, 0xc0, 0x06, 0x0a, 0xd5, 0x20, 0x46, 0xaf, 0xf3, 0x00, 0x80, 0x06, 0xe0, 0xd4, 0xe9, 0x01, 0x21, 0x30, 0x20, 0x90, 0x47, 0x20, 0x6a, 0x40, 0x1c, 0x20, 0x62, 0x38, 0x1e, 0xa7, 0xf1, 0x01, 0x07, 0xf4, 0xdc, 0x07, 0xe0, 0xd4, 0xe9, 0x01, 0x21, 0x18, 0xf8, 0x05, 0x00, 0x90, 0x47, 0x20, 0x6a, 0x40, 0x1c, 0x20, 0x62, 0x28, 0x1e, 0xa5, 0xf1, 0x01, 0x05, 0xf3, 0xdc, 0x20, 0x46, 0xaf, 0xf3, 0x00, 0x80, 0x20, 0x78, 0x00, 0x06, 0x02, 0xd5, 0x02, 0x20, 0xbd, 0xe8, 0xf0, 0x87, 0x01, 0x20, 0xfb, 0xe7, 0x01, 0x69, 0x4a, 0x1c, 0x02, 0x61, 0x08, 0x78, 0x70, 0x47, 0x00, 0xb5, 0x8f, 0xb0, 0xcd, 0xe9, 0x01, 0x31, 0x00, 0x21, 0x05, 0x91, 0x05, 0x49, 0x79, 0x44, 0xcd, 0xe9, 0x03, 0x10, 0x11, 0x46, 0x68, 0x46, 0xff, 0xf7, 0xcf, 0xfe, 0x0f, 0xb0, 0x00, 0xbd, 0x00, 0x00, 0xe5, 0xff, 0xff, 0xff, 0x0a, 0x68, 0x02, 0xf8, 0x01, 0x0b, 0x0a, 0x60, 0x70, 0x47, 0x00, 0x00, 0x0a, 0x10, 0x40, 0xe2, 0x20, 0x01, 0x40, 0xe0, 0x20, 0x02, 0x80, 0xe0, 0x20, 0x04, 0x80, 0xe0, 0x20, 0x08, 0x80, 0xe0, 0xa0, 0x01, 0xa0, 0xe1, 0x00, 0x21, 0x80, 0xe0, 0x82, 0x10, 0x51, 0xe0, 0x01, 0x00, 0x80, 0x52, 0x0a, 0x10, 0x81, 0x42, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x44, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x48, 0x44, 0x20, 0x56, 0x33, 0x2e, 0x30, 0x2c, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x69, 0x73, 0x20, 0x25, 0x64, 0x4d, 0x2c, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x4f, 0x4b, 0x21, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x30, 0x2d, 0x2d, 0x2d, 0x2d, 0x28, 0x62, 0x79, 0x74, 0x65, 0x30, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x3a, 0x25, 0x64, 0x2c, 0x62, 0x79, 0x74, 0x65, 0x31, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x3a, 0x25, 0x64, 0x2c, 0x62, 0x79, 0x74, 0x65, 0x32, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x3a, 0x25, 0x64, 0x2c, 0x62, 0x79, 0x74, 0x65, 0x33, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x3a, 0x25, 0x64, 0x29, 0x0a, 0x00, 0x44, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x48, 0x44, 0x20, 0x56, 0x33, 0x2e, 0x30, 0x2c, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x21, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x30, 0x2d, 0x2d, 0x2d, 0x2d, 0x28, 0x62, 0x79, 0x74, 0x65, 0x30, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x3a, 0x25, 0x64, 0x2c, 0x62, 0x79, 0x74, 0x65, 0x31, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x3a, 0x25, 0x64, 0x2c, 0x62, 0x79, 0x74, 0x65, 0x32, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x3a, 0x25, 0x64, 0x2c, 0x62, 0x79, 0x74, 0x65, 0x33, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x3a, 0x25, 0x64, 0x29, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x02, 0x00, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x00, 0x00, 0x00, 0x00, }; static const struct dram_param_t { uint32_t dram_clk; uint32_t dram_type; uint32_t dram_zq; uint32_t dram_odt_en; uint32_t dram_para1; uint32_t dram_para2; uint32_t dram_mr0; uint32_t dram_mr1; uint32_t dram_mr2; uint32_t dram_mr3; uint32_t dram_tpr0; uint32_t dram_tpr1; uint32_t dram_tpr2; uint32_t dram_tpr3; uint32_t dram_tpr4; uint32_t dram_tpr5; uint32_t dram_tpr6; uint32_t dram_tpr7; uint32_t dram_tpr8; uint32_t dram_tpr9; uint32_t dram_tpr10; uint32_t dram_tpr11; uint32_t dram_tpr12; uint32_t dram_tpr13; } dram_param = { .dram_clk = 528, .dram_type = 2, .dram_zq = 0x000bf9, .dram_odt_en = 0x00, .dram_para1 = 0x000000d2, .dram_para2 = 0x00000000, .dram_mr0 = 0x00000E73, .dram_mr1 = 0x02, .dram_mr2 = 0x0, .dram_mr3 = 0x0, .dram_tpr0 = 0x00471992, .dram_tpr1 = 0x0131A10C, .dram_tpr2 = 0x00057041, .dram_tpr3 = 0xB4787896, .dram_tpr4 = 0x0, .dram_tpr5 = 0x48484848, .dram_tpr6 = 0x48, .dram_tpr7 = 0x1621121e, .dram_tpr8 = 0x0, .dram_tpr9 = 0x0, .dram_tpr10 = 0x00000000, .dram_tpr11 = 0x00120000, .dram_tpr12 = 0x00000023, .dram_tpr13 = 0x34000900, }; fel_write(ctx, 0x00022000, (void *)&dram_bin[0], sizeof(dram_bin)); fel_write(ctx, 0x00027400, (void *)&dram_param, sizeof(dram_param)); fel_exec(ctx, 0x00022000); return 1; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { static const uint8_t payload[] = { 0x00, 0x00, 0xa0, 0xe3, 0x17, 0x0f, 0x08, 0xee, 0x15, 0x0f, 0x07, 0xee, 0xd5, 0x0f, 0x07, 0xee, 0x9a, 0x0f, 0x07, 0xee, 0x95, 0x0f, 0x07, 0xee, 0xff, 0xff, 0xff, 0xea, 0x5c, 0x00, 0x9f, 0xe5, 0x00, 0xd0, 0x80, 0xe5, 0x04, 0xe0, 0x80, 0xe5, 0x00, 0xe0, 0x0f, 0xe1, 0x08, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x0c, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x1c, 0xee, 0x10, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x14, 0xe0, 0x80, 0xe5, 0x23, 0x0a, 0xa0, 0xe3, 0x7d, 0x00, 0x00, 0xeb, 0x28, 0x00, 0x9f, 0xe5, 0x00, 0xd0, 0x90, 0xe5, 0x04, 0xe0, 0x90, 0xe5, 0x14, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x10, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x0c, 0xee, 0x0c, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x08, 0x10, 0x90, 0xe5, 0x01, 0xf0, 0x29, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0xf8, 0x7f, 0x03, 0x00, 0xf0, 0x40, 0x2d, 0xe9, 0x00, 0x50, 0x51, 0xe2, 0xf0, 0x80, 0xbd, 0x08, 0x00, 0x10, 0xa0, 0xe3, 0x02, 0x6c, 0xa0, 0xe3, 0x01, 0x15, 0x40, 0xe3, 0x03, 0x4c, 0xa0, 0xe3, 0x01, 0x65, 0x40, 0xe3, 0x00, 0x70, 0xe0, 0xe3, 0x01, 0x45, 0x40, 0xe3, 0x40, 0x00, 0x55, 0xe3, 0x00, 0x30, 0xa0, 0xe3, 0x07, 0xc0, 0xa0, 0xe1, 0x05, 0x20, 0xa0, 0x31, 0x40, 0x20, 0xa0, 0x23, 0x30, 0x20, 0x81, 0xe5, 0x34, 0x20, 0x81, 0xe5, 0x38, 0x20, 0x81, 0xe5, 0x00, 0xc0, 0xc6, 0xe5, 0x01, 0x30, 0x83, 0xe2, 0x03, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0xca, 0x08, 0x30, 0x91, 0xe5, 0x02, 0x31, 0x83, 0xe3, 0x08, 0x30, 0x81, 0xe5, 0x08, 0x30, 0x91, 0xe5, 0x00, 0x00, 0x53, 0xe3, 0xfc, 0xff, 0xff, 0xba, 0x1c, 0x30, 0x91, 0xe5, 0x73, 0x30, 0xef, 0xe6, 0x03, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x8a, 0x00, 0x30, 0xa0, 0xe3, 0x00, 0xe0, 0xd4, 0xe5, 0x00, 0x00, 0x50, 0xe3, 0x00, 0xc0, 0xa0, 0xe1, 0x01, 0x30, 0x83, 0xe2, 0x7e, 0xe0, 0xef, 0xe6, 0x06, 0x00, 0x00, 0x0a, 0x03, 0x00, 0x52, 0xe1, 0x01, 0xe0, 0xcc, 0xe4, 0x0c, 0x00, 0xa0, 0xe1, 0xf5, 0xff, 0xff, 0xca, 0x02, 0x50, 0x55, 0xe0, 0xdc, 0xff, 0xff, 0x1a, 0xf0, 0x80, 0xbd, 0xe8, 0x03, 0x00, 0x52, 0xe1, 0x01, 0xc0, 0x83, 0xe2, 0x02, 0x30, 0x83, 0xe2, 0xf8, 0xff, 0xff, 0xda, 0x0c, 0x00, 0x52, 0xe1, 0x00, 0xc0, 0xd4, 0xe5, 0xf5, 0xff, 0xff, 0xda, 0x03, 0x00, 0x52, 0xe1, 0x00, 0xc0, 0xd4, 0xe5, 0x01, 0xc0, 0x83, 0xe2, 0x02, 0x30, 0x83, 0xe2, 0xf7, 0xff, 0xff, 0xca, 0x02, 0x50, 0x55, 0xe0, 0xcd, 0xff, 0xff, 0x1a, 0xf0, 0x80, 0xbd, 0xe8, 0xf0, 0x40, 0x2d, 0xe9, 0x00, 0x60, 0x51, 0xe2, 0xf0, 0x80, 0xbd, 0x08, 0x00, 0x10, 0xa0, 0xe3, 0x02, 0x5c, 0xa0, 0xe3, 0x01, 0x15, 0x40, 0xe3, 0x03, 0x4c, 0xa0, 0xe3, 0x01, 0x55, 0x40, 0xe3, 0x00, 0x70, 0xe0, 0xe3, 0x01, 0x45, 0x40, 0xe3, 0x40, 0x00, 0x56, 0xe3, 0x06, 0x20, 0xa0, 0x31, 0x40, 0x20, 0xa0, 0x23, 0x30, 0x20, 0x81, 0xe5, 0x00, 0x00, 0x50, 0xe3, 0x34, 0x20, 0x81, 0xe5, 0x38, 0x20, 0x81, 0xe5, 0x1a, 0x00, 0x00, 0x0a, 0x00, 0xc0, 0xa0, 0xe1, 0x00, 0x30, 0xa0, 0xe3, 0x01, 0xe0, 0xdc, 0xe4, 0x01, 0x30, 0x83, 0xe2, 0x03, 0x00, 0x52, 0xe1, 0x00, 0xe0, 0xc5, 0xe5, 0xfa, 0xff, 0xff, 0xca, 0x08, 0x30, 0x91, 0xe5, 0x02, 0x31, 0x83, 0xe3, 0x08, 0x30, 0x81, 0xe5, 0x08, 0x30, 0x91, 0xe5, 0x00, 0x00, 0x53, 0xe3, 0xfc, 0xff, 0xff, 0xba, 0x1c, 0x30, 0x91, 0xe5, 0x73, 0x30, 0xef, 0xe6, 0x03, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x8a, 0x00, 0x30, 0xa0, 0xe3, 0x00, 0xc0, 0xd4, 0xe5, 0x01, 0x30, 0x83, 0xe2, 0x03, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0xca, 0x00, 0x00, 0x50, 0xe3, 0x02, 0x00, 0x80, 0x10, 0x02, 0x60, 0x56, 0xe0, 0xdd, 0xff, 0xff, 0x1a, 0xf0, 0x80, 0xbd, 0xe8, 0x00, 0x30, 0xa0, 0xe1, 0x07, 0xc0, 0xa0, 0xe1, 0x00, 0xc0, 0xc5, 0xe5, 0x01, 0x30, 0x83, 0xe2, 0x03, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0xca, 0xe4, 0xff, 0xff, 0xea, 0xf0, 0x43, 0x2d, 0xe9, 0x0f, 0x80, 0x0c, 0xe3, 0xff, 0x8f, 0x4f, 0xe3, 0x00, 0x50, 0xa0, 0xe3, 0x01, 0x55, 0x40, 0xe3, 0x0b, 0x7a, 0xa0, 0xe3, 0x00, 0x73, 0x40, 0xe3, 0x14, 0xd0, 0x4d, 0xe2, 0x00, 0x60, 0xa0, 0xe1, 0x06, 0x40, 0xa0, 0xe1, 0x01, 0x30, 0xd4, 0xe4, 0x01, 0x00, 0x53, 0xe3, 0x1e, 0x00, 0x00, 0x0a, 0x02, 0x00, 0x53, 0xe3, 0x55, 0x00, 0x00, 0x0a, 0x03, 0x00, 0x53, 0xe3, 0x58, 0x00, 0x00, 0x0a, 0x04, 0x00, 0x53, 0xe3, 0x5c, 0x00, 0x00, 0x0a, 0x05, 0x00, 0x53, 0xe3, 0x61, 0x00, 0x00, 0x0a, 0x06, 0x00, 0x53, 0xe3, 0x70, 0x00, 0x00, 0x0a, 0x07, 0x00, 0x53, 0xe3, 0x7f, 0x00, 0x00, 0x0a, 0x08, 0x00, 0x53, 0xe3, 0x8c, 0x00, 0x00, 0x1a, 0xb0, 0x80, 0xcd, 0xe1, 0x0d, 0x90, 0xa0, 0xe1, 0x08, 0x60, 0x8d, 0xe2, 0x02, 0x10, 0xa0, 0xe3, 0x09, 0x00, 0xa0, 0xe1, 0xaa, 0xff, 0xff, 0xeb, 0x01, 0x10, 0xa0, 0xe3, 0x06, 0x00, 0xa0, 0xe1, 0x6a, 0xff, 0xff, 0xeb, 0x08, 0x30, 0xdd, 0xe5, 0x01, 0x00, 0x13, 0xe3, 0xf6, 0xff, 0xff, 0x1a, 0x04, 0x60, 0xa0, 0xe1, 0x06, 0x40, 0xa0, 0xe1, 0x01, 0x30, 0xd4, 0xe4, 0x01, 0x00, 0x53, 0xe3, 0xe0, 0xff, 0xff, 0x1a, 0x48, 0x20, 0x97, 0xe5, 0x01, 0x3a, 0xa0, 0xe3, 0x00, 0x33, 0x40, 0xe3, 0x01, 0x1a, 0xa0, 0xe3, 0x0f, 0x20, 0xc2, 0xe3, 0x04, 0x20, 0x82, 0xe3, 0x48, 0x20, 0x87, 0xe5, 0x48, 0x20, 0x97, 0xe5, 0xf0, 0x20, 0xc2, 0xe3, 0x40, 0x20, 0x82, 0xe3, 0x48, 0x20, 0x87, 0xe5, 0x48, 0x20, 0x97, 0xe5, 0x0f, 0x2c, 0xc2, 0xe3, 0x01, 0x2b, 0x82, 0xe3, 0x48, 0x20, 0x87, 0xe5, 0x48, 0x20, 0x97, 0xe5, 0x0f, 0x2a, 0xc2, 0xe3, 0x01, 0x29, 0x82, 0xe3, 0x48, 0x20, 0x87, 0xe5, 0x6c, 0x29, 0x93, 0xe5, 0x01, 0x28, 0x82, 0xe3, 0x6c, 0x29, 0x83, 0xe5, 0x40, 0x29, 0x93, 0xe5, 0x02, 0x21, 0x82, 0xe3, 0x40, 0x29, 0x83, 0xe5, 0x6c, 0x29, 0x93, 0xe5, 0x01, 0x20, 0x82, 0xe3, 0x6c, 0x29, 0x83, 0xe5, 0x40, 0x29, 0x93, 0xe5, 0x03, 0x24, 0xc2, 0xe3, 0x01, 0x24, 0x82, 0xe3, 0x40, 0x29, 0x83, 0xe5, 0x40, 0x29, 0x93, 0xe5, 0x03, 0x2c, 0xc2, 0xe3, 0x40, 0x29, 0x83, 0xe5, 0x40, 0x29, 0x93, 0xe5, 0x0f, 0x20, 0xc2, 0xe3, 0x05, 0x20, 0x82, 0xe3, 0x40, 0x29, 0x83, 0xe5, 0x24, 0x10, 0x85, 0xe5, 0x04, 0x30, 0x95, 0xe5, 0x02, 0x31, 0x83, 0xe3, 0x83, 0x30, 0x83, 0xe3, 0x04, 0x30, 0x85, 0xe5, 0x04, 0x30, 0x95, 0xe5, 0x00, 0x00, 0x53, 0xe3, 0xfc, 0xff, 0xff, 0xba, 0x08, 0x30, 0x95, 0xe5, 0x04, 0x60, 0xa0, 0xe1, 0x03, 0x30, 0xc3, 0xe3, 0x44, 0x30, 0x83, 0xe3, 0x08, 0x30, 0x85, 0xe5, 0x18, 0x30, 0x95, 0xe5, 0x02, 0x31, 0x83, 0xe3, 0x02, 0x39, 0x83, 0xe3, 0x18, 0x30, 0x85, 0xe5, 0xa3, 0xff, 0xff, 0xea, 0x08, 0x30, 0x95, 0xe5, 0x04, 0x60, 0xa0, 0xe1, 0xb0, 0x30, 0xc3, 0xe3, 0x08, 0x30, 0x85, 0xe5, 0x9e, 0xff, 0xff, 0xea, 0x08, 0x30, 0x95, 0xe5, 0x04, 0x60, 0xa0, 0xe1, 0xb0, 0x30, 0xc3, 0xe3, 0x80, 0x30, 0x83, 0xe3, 0x08, 0x30, 0x85, 0xe5, 0x98, 0xff, 0xff, 0xea, 0x01, 0x90, 0xd6, 0xe5, 0x02, 0x00, 0x86, 0xe2, 0x09, 0x10, 0xa0, 0xe1, 0x01, 0x60, 0x89, 0xe2, 0x06, 0x60, 0x84, 0xe0, 0x55, 0xff, 0xff, 0xeb, 0x91, 0xff, 0xff, 0xea, 0x06, 0x10, 0xd6, 0xe5, 0x09, 0x60, 0x86, 0xe2, 0x07, 0x00, 0x56, 0xe5, 0x04, 0x20, 0x56, 0xe5, 0x08, 0x30, 0x56, 0xe5, 0x02, 0xe0, 0x56, 0xe5, 0x06, 0xc0, 0x56, 0xe5, 0x01, 0x24, 0x82, 0xe1, 0x00, 0x34, 0x83, 0xe1, 0x01, 0x10, 0x56, 0xe5, 0x05, 0x00, 0x56, 0xe5, 0x0e, 0x28, 0x82, 0xe1, 0x0c, 0x38, 0x83, 0xe1, 0x01, 0x1c, 0x82, 0xe1, 0x00, 0x0c, 0x83, 0xe1, 0x44, 0xff, 0xff, 0xeb, 0x80, 0xff, 0xff, 0xea, 0x06, 0x10, 0xd6, 0xe5, 0x09, 0x60, 0x86, 0xe2, 0x07, 0x00, 0x56, 0xe5, 0x04, 0x20, 0x56, 0xe5, 0x08, 0x30, 0x56, 0xe5, 0x02, 0xe0, 0x56, 0xe5, 0x06, 0xc0, 0x56, 0xe5, 0x01, 0x24, 0x82, 0xe1, 0x00, 0x34, 0x83, 0xe1, 0x01, 0x10, 0x56, 0xe5, 0x05, 0x00, 0x56, 0xe5, 0x0e, 0x28, 0x82, 0xe1, 0x0c, 0x38, 0x83, 0xe1, 0x01, 0x1c, 0x82, 0xe1, 0x00, 0x0c, 0x83, 0xe1, 0xf6, 0xfe, 0xff, 0xeb, 0x6f, 0xff, 0xff, 0xea, 0x0d, 0x90, 0xa0, 0xe1, 0x08, 0x60, 0x8d, 0xe2, 0x05, 0x30, 0xa0, 0xe3, 0x00, 0x30, 0xcd, 0xe5, 0x01, 0x10, 0xa0, 0xe3, 0x09, 0x00, 0xa0, 0xe1, 0x2b, 0xff, 0xff, 0xeb, 0x01, 0x10, 0xa0, 0xe3, 0x06, 0x00, 0xa0, 0xe1, 0xeb, 0xfe, 0xff, 0xeb, 0x08, 0x30, 0xdd, 0xe5, 0x01, 0x00, 0x13, 0xe3, 0xf6, 0xff, 0xff, 0x1a, 0x04, 0x60, 0xa0, 0xe1, 0x7f, 0xff, 0xff, 0xea, 0x14, 0xd0, 0x8d, 0xe2, 0xf0, 0x83, 0xbd, 0xe8, 0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x4e, 0x55, 0x00, 0x7e, 0xf1, 0x42, 0x24, 0x25, 0xf1, 0x0c, 0x1b, 0x69, 0xe5, 0x0b, 0x13, 0x65, 0x6b, 0x15, 0x0a, 0xcb, 0x0f, 0xb5, 0xcb, 0x2f, 0x6c, 0x69, 0x62, 0x2f, 0x6c, 0x64, 0x2d, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x2d, 0x61, 0x72, 0x6d, 0x68, 0x66, 0x2e, 0x73, 0x6f, 0x2e, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0xfe, 0xff, 0x6f, 0x44, 0x25, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x40, 0x25, 0x02, 0x00, 0x06, 0x00, 0x00, 0x00, 0x30, 0x25, 0x02, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xfb, 0xff, 0xff, 0x6f, 0x01, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x25, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; fel_write(ctx, 0x00022000, (void *)&payload[0], sizeof(payload)); if(swapbuf) *swapbuf = 0x00024000; if(swaplen) *swaplen = 65536; if(cmdlen) *cmdlen = 4096; return 1; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { fel_write(ctx, 0x00023000, (void *)cbuf, clen); fel_exec(ctx, 0x00022000); return 1; } static const struct sid_section_t { char * name; uint32_t offset; uint32_t size_bits; } sids[] = { { "chipid", 0x0000, 128 }, { "unknown", 0x0010, 1920 }, }; static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { if(argc > 0) { if(!strcmp(argv[0], "efuse")) { argc -= 1; argv += 1; if(argc > 0) { if(!strcmp(argv[0], "dump") && (argc == 1)) { uint32_t buffer[2048 / 4]; for(int n = 0; n < ARRAY_SIZE(sids); n++) { uint32_t count = sids[n].size_bits / 32; for(int i = 0; i < count; i++) buffer[i] = payload_read32(ctx, 0x03006200 + sids[n].offset + i * 4); printf("%s:(0x%04x %d-bits)", sids[n].name, sids[n].offset, sids[n].size_bits); for(int i = 0; i < count; i++) { if(i >= 0 && ((i % 8) == 0)) printf("\r\n%-4s", ""); printf("%08x ", buffer[i]); } printf("\r\n"); } return 1; } } } } printf("usage:\r\n"); printf(" xfel extra efuse dump - Dump all of the efuse information\r\n"); return 0; } struct chip_t v831 = { .name = "V831", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/chips/v851_v853.c000066400000000000000000004264241512120643700152350ustar00rootroot00000000000000#include struct ddr2_param_t { uint32_t dram_clk; uint32_t dram_type; uint32_t dram_zq; uint32_t dram_odt_en; uint32_t dram_para1; uint32_t dram_para2; uint32_t dram_mr0; uint32_t dram_mr1; uint32_t dram_mr2; uint32_t dram_mr3; uint32_t dram_tpr0; uint32_t dram_tpr1; uint32_t dram_tpr2; uint32_t dram_tpr3; uint32_t dram_tpr4; uint32_t dram_tpr5; uint32_t dram_tpr6; uint32_t dram_tpr7; uint32_t dram_tpr8; uint32_t dram_tpr9; uint32_t dram_tpr10; uint32_t dram_tpr11; uint32_t dram_tpr12; uint32_t dram_tpr13; uint32_t reserve[8]; }; struct ddr3_param_t { uint32_t dram_clk; uint32_t dram_type; uint32_t dram_zq; uint32_t dram_odt_en; uint32_t dram_para1; uint32_t dram_para2; uint32_t dram_mr0; uint32_t dram_mr1; uint32_t dram_mr2; uint32_t dram_mr3; uint32_t dram_tpr0; uint32_t dram_tpr1; uint32_t dram_tpr2; uint32_t dram_tpr3; uint32_t dram_tpr4; uint32_t dram_tpr5; uint32_t dram_tpr6; uint32_t dram_tpr7; uint32_t dram_tpr8; uint32_t dram_tpr9; uint32_t dram_tpr10; uint32_t dram_tpr11; uint32_t dram_tpr12; uint32_t dram_tpr13; uint32_t reserve[8]; }; static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(id == 0x00188600) return 1; return 0; } static uint32_t payload_read32(struct xfel_ctx_t * ctx, uint32_t addr) { static const uint8_t payload[] = { 0x00, 0x00, 0xa0, 0xe3, 0x17, 0x0f, 0x08, 0xee, 0x15, 0x0f, 0x07, 0xee, 0xd5, 0x0f, 0x07, 0xee, 0x9a, 0x0f, 0x07, 0xee, 0x95, 0x0f, 0x07, 0xee, 0xff, 0xff, 0xff, 0xea, 0x0c, 0x00, 0x9f, 0xe5, 0x0c, 0x10, 0x8f, 0xe2, 0x00, 0x20, 0x90, 0xe5, 0x00, 0x20, 0x81, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, }; uint32_t adr = cpu_to_le32(addr); uint32_t val; fel_write(ctx, ctx->version.scratchpad, (void *)payload, sizeof(payload)); fel_write(ctx, ctx->version.scratchpad + sizeof(payload), (void *)&adr, sizeof(adr)); fel_exec(ctx, ctx->version.scratchpad); fel_read(ctx, ctx->version.scratchpad + sizeof(payload) + sizeof(adr), (void *)&val, sizeof(val)); return le32_to_cpu(val); } static void payload_write32(struct xfel_ctx_t * ctx, uint32_t addr, uint32_t val) { static const uint8_t payload[] = { 0x00, 0x00, 0xa0, 0xe3, 0x17, 0x0f, 0x08, 0xee, 0x15, 0x0f, 0x07, 0xee, 0xd5, 0x0f, 0x07, 0xee, 0x9a, 0x0f, 0x07, 0xee, 0x95, 0x0f, 0x07, 0xee, 0xff, 0xff, 0xff, 0xea, 0x08, 0x00, 0x9f, 0xe5, 0x08, 0x10, 0x9f, 0xe5, 0x00, 0x10, 0x80, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, }; uint32_t params[2] = { cpu_to_le32(addr), cpu_to_le32(val), }; fel_write(ctx, ctx->version.scratchpad, (void *)payload, sizeof(payload)); fel_write(ctx, ctx->version.scratchpad + sizeof(payload), (void *)params, sizeof(params)); fel_exec(ctx, ctx->version.scratchpad); } static int chip_reset(struct xfel_ctx_t * ctx) { payload_write32(ctx, 0x020500a0 + 0x08, (0x16aa << 16) | (0x1 << 0)); return 1; } static int chip_sid(struct xfel_ctx_t * ctx, char * sid) { uint32_t id[4]; id[0] = payload_read32(ctx, 0x03006200 + 0x0); id[1] = payload_read32(ctx, 0x03006200 + 0x4); id[2] = payload_read32(ctx, 0x03006200 + 0x8); id[3] = payload_read32(ctx, 0x03006200 + 0xc); sprintf(sid, "%08x%08x%08x%08x", id[0], id[1], id[2], id[3]); return 1; } static int chip_jtag(struct xfel_ctx_t * ctx) { static const uint8_t payload[] = { 0x00, 0x00, 0xa0, 0xe3, 0x17, 0x0f, 0x08, 0xee, 0x15, 0x0f, 0x07, 0xee, 0xd5, 0x0f, 0x07, 0xee, 0x9a, 0x0f, 0x07, 0xee, 0x95, 0x0f, 0x07, 0xee, 0xff, 0xff, 0xff, 0xea, 0x58, 0x00, 0x9f, 0xe5, 0x00, 0xd0, 0x80, 0xe5, 0x04, 0xe0, 0x80, 0xe5, 0x00, 0xe0, 0x0f, 0xe1, 0x08, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x0c, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x1c, 0xee, 0x10, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x14, 0xe0, 0x80, 0xe5, 0x0c, 0x00, 0x00, 0xeb, 0x28, 0x00, 0x9f, 0xe5, 0x00, 0xd0, 0x90, 0xe5, 0x04, 0xe0, 0x90, 0xe5, 0x14, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x10, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x0c, 0xee, 0x0c, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x08, 0x10, 0x90, 0xe5, 0x01, 0xf0, 0x29, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0xe0, 0x0f, 0x04, 0x00, 0x02, 0x34, 0xa0, 0xe3, 0xf0, 0x20, 0x93, 0xe5, 0x0f, 0x20, 0xc2, 0xe3, 0x03, 0x20, 0x82, 0xe3, 0xf0, 0x20, 0x83, 0xe5, 0xf0, 0x20, 0x93, 0xe5, 0xf0, 0x20, 0xc2, 0xe3, 0x30, 0x20, 0x82, 0xe3, 0xf0, 0x20, 0x83, 0xe5, 0xf0, 0x20, 0x93, 0xe5, 0x0f, 0x2a, 0xc2, 0xe3, 0x03, 0x2a, 0x82, 0xe3, 0xf0, 0x20, 0x83, 0xe5, 0xf0, 0x20, 0x93, 0xe5, 0x0f, 0x26, 0xc2, 0xe3, 0x03, 0x26, 0x82, 0xe3, 0xf0, 0x20, 0x83, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, 0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x4e, 0x55, 0x00, 0x72, 0x23, 0x6e, 0x7b, 0x0b, 0xa1, 0x2b, 0xee, 0x71, 0x14, 0x70, 0x0e, 0x9f, 0x39, 0xa9, 0x3f, 0xb7, 0xbc, 0x69, 0x19, 0x2f, 0x6c, 0x69, 0x62, 0x2f, 0x6c, 0x64, 0x2d, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x2d, 0x61, 0x72, 0x6d, 0x68, 0x66, 0x2e, 0x73, 0x6f, 0x2e, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0xfe, 0xff, 0x6f, 0x1c, 0x81, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x18, 0x81, 0x02, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08, 0x81, 0x02, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xfb, 0xff, 0xff, 0x6f, 0x01, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x81, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; fel_write(ctx, 0x00028000, (void *)&payload[0], sizeof(payload)); fel_exec(ctx, 0x00028000); return 1; } static int chip_ddr(struct xfel_ctx_t * ctx, const char * type) { static const uint8_t ddr_payload[] = { 0xf0, 0x00, 0x00, 0xea, 0x65, 0x47, 0x4f, 0x4e, 0x2e, 0x42, 0x54, 0x30, 0x86, 0xe5, 0xd5, 0x38, 0x80, 0x4c, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x33, 0x30, 0x30, 0x30, 0x40, 0x83, 0x02, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x2e, 0x30, 0x2e, 0x30, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x08, 0x04, 0x01, 0x01, 0x00, 0x00, 0x00, 0x02, 0x09, 0x04, 0x01, 0x01, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x02, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x03, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x04, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x06, 0x05, 0x02, 0x01, 0x02, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x32, 0x61, 0x33, 0x65, 0x63, 0x35, 0x32, 0x30, 0x32, 0x32, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xea, 0x00, 0x40, 0x2d, 0xe9, 0x05, 0x00, 0x00, 0xeb, 0x10, 0x0f, 0x11, 0xee, 0x01, 0x0a, 0x80, 0xe3, 0x10, 0x0f, 0x01, 0xee, 0x93, 0x0e, 0x00, 0xfa, 0x00, 0x40, 0xbd, 0xe8, 0x0e, 0xf0, 0xa0, 0xe1, 0x18, 0x00, 0x9f, 0xe5, 0x18, 0x10, 0x9f, 0xe5, 0x00, 0x20, 0xa0, 0xe3, 0x00, 0x20, 0x80, 0xe5, 0x04, 0x00, 0x80, 0xe2, 0x01, 0x00, 0x50, 0xe1, 0xfb, 0xff, 0xff, 0x1a, 0x0e, 0xf0, 0xa0, 0xe1, 0x70, 0xcc, 0x02, 0x00, 0xc8, 0xcc, 0x02, 0x00, 0x5f, 0xf0, 0x7f, 0xf5, 0x30, 0x0f, 0x30, 0xee, 0xa0, 0x3b, 0xa0, 0xe1, 0x0e, 0x30, 0x13, 0xe2, 0x1c, 0x00, 0x00, 0x0a, 0x00, 0xa0, 0xa0, 0xe3, 0xaa, 0x20, 0x8a, 0xe0, 0x30, 0x12, 0xa0, 0xe1, 0x07, 0x10, 0x01, 0xe2, 0x02, 0x00, 0x51, 0xe3, 0x13, 0x00, 0x00, 0xba, 0x10, 0xaf, 0x40, 0xee, 0x6f, 0xf0, 0x7f, 0xf5, 0x10, 0x1f, 0x30, 0xee, 0x07, 0x20, 0x01, 0xe2, 0x04, 0x20, 0x82, 0xe2, 0xff, 0x43, 0x00, 0xe3, 0xa1, 0x41, 0x14, 0xe0, 0x14, 0x5f, 0x6f, 0xe1, 0xff, 0x7f, 0x07, 0xe3, 0xa1, 0x76, 0x17, 0xe0, 0x07, 0x90, 0xa0, 0xe1, 0x14, 0x65, 0xa0, 0xe1, 0x06, 0xb0, 0x8a, 0xe1, 0x19, 0x62, 0xa0, 0xe1, 0x06, 0xb0, 0x8b, 0xe1, 0x5e, 0xbf, 0x07, 0xee, 0x01, 0x90, 0x59, 0xe2, 0xf8, 0xff, 0xff, 0xaa, 0x01, 0x40, 0x54, 0xe2, 0xf5, 0xff, 0xff, 0xaa, 0x02, 0xa0, 0x8a, 0xe2, 0x0a, 0x00, 0x53, 0xe1, 0xe3, 0xff, 0xff, 0xca, 0x00, 0xa0, 0xa0, 0xe3, 0x10, 0xaf, 0x40, 0xee, 0x4e, 0xf0, 0x7f, 0xf5, 0x6f, 0xf0, 0x7f, 0xf5, 0x1e, 0xff, 0x2f, 0xe1, 0xf0, 0x4e, 0x2d, 0xe9, 0xd6, 0xff, 0xff, 0xeb, 0xf0, 0x4e, 0xbd, 0xe8, 0x1e, 0xff, 0x2f, 0xe1, 0x04, 0x20, 0x52, 0xe2, 0x2c, 0x00, 0x00, 0xba, 0x02, 0x00, 0x53, 0xe3, 0x01, 0x10, 0xc0, 0xb4, 0x01, 0x10, 0xc0, 0xd4, 0x01, 0x10, 0xc0, 0xe4, 0x03, 0x20, 0x82, 0xe0, 0x03, 0x30, 0x10, 0xe2, 0xf6, 0xff, 0xff, 0x1a, 0x01, 0x14, 0x81, 0xe1, 0x01, 0x18, 0x81, 0xe1, 0x01, 0x30, 0xa0, 0xe1, 0x10, 0x00, 0x52, 0xe3, 0x1c, 0x00, 0x00, 0xba, 0xf0, 0x40, 0x2d, 0xe9, 0x01, 0x40, 0xa0, 0xe1, 0x01, 0x50, 0xa0, 0xe1, 0x01, 0x60, 0xa0, 0xe1, 0x01, 0x70, 0xa0, 0xe1, 0x01, 0xc0, 0xa0, 0xe1, 0x01, 0xe0, 0xa0, 0xe1, 0x60, 0x00, 0x52, 0xe3, 0x1f, 0x00, 0x10, 0xc3, 0x08, 0x00, 0x00, 0xda, 0x1f, 0xc0, 0x00, 0xe2, 0x20, 0xc0, 0x6c, 0xe2, 0x0c, 0x20, 0x42, 0xe0, 0x0c, 0xce, 0xb0, 0xe1, 0xf0, 0x00, 0xa0, 0x28, 0x30, 0x00, 0xa0, 0x48, 0x01, 0x01, 0x1c, 0xe3, 0x01, 0xc0, 0xa0, 0xe1, 0x04, 0x10, 0x80, 0x14, 0x40, 0x20, 0x52, 0xe2, 0xfa, 0x50, 0xa0, 0xa8, 0xfa, 0x50, 0xa0, 0xa8, 0xfb, 0xff, 0xff, 0xca, 0xf0, 0x80, 0xbd, 0x08, 0x20, 0x00, 0x12, 0xe3, 0xfa, 0x50, 0xa0, 0x18, 0x10, 0x00, 0x12, 0xe3, 0xf0, 0x00, 0xa0, 0x18, 0xf0, 0x40, 0xbd, 0xe8, 0x08, 0x00, 0x12, 0xe3, 0x0a, 0x00, 0xa0, 0x18, 0x04, 0x00, 0x12, 0xe3, 0x04, 0x10, 0x80, 0x14, 0x02, 0x00, 0x12, 0xe3, 0x01, 0x10, 0xc0, 0x14, 0x01, 0x10, 0xc0, 0x14, 0x01, 0x00, 0x12, 0xe3, 0x01, 0x10, 0xc0, 0x14, 0x3e, 0xff, 0x2f, 0xe1, 0x01, 0x00, 0x50, 0xe1, 0x0e, 0xf0, 0xa0, 0x01, 0x11, 0x40, 0x2d, 0xe9, 0x04, 0x20, 0x52, 0xe2, 0x33, 0x00, 0x00, 0xba, 0x03, 0xc0, 0x10, 0xe2, 0x00, 0xf0, 0xd1, 0xf5, 0x39, 0x00, 0x00, 0x1a, 0x03, 0xc0, 0x11, 0xe2, 0x43, 0x00, 0x00, 0x1a, 0x1c, 0x20, 0x52, 0xe2, 0xe0, 0x01, 0x2d, 0xe9, 0x13, 0x00, 0x00, 0xba, 0x1f, 0xc0, 0x10, 0xe2, 0x20, 0x30, 0x6c, 0xe2, 0x02, 0x40, 0xd3, 0x10, 0x03, 0x00, 0x00, 0x2a, 0x48, 0x40, 0x8f, 0xe2, 0x03, 0x20, 0x52, 0xe0, 0x0c, 0xf0, 0x84, 0xe0, 0x00, 0xf0, 0xd1, 0xf5, 0x60, 0x20, 0x52, 0xe2, 0x1c, 0xf0, 0xd1, 0xf5, 0x02, 0x00, 0x00, 0xba, 0x3c, 0xf0, 0xd1, 0xf5, 0x5c, 0xf0, 0xd1, 0xf5, 0x7c, 0xf0, 0xd1, 0xf5, 0xf8, 0x51, 0xb1, 0xe8, 0x20, 0x20, 0x52, 0xe2, 0xf8, 0x51, 0xa0, 0xe8, 0xfa, 0xff, 0xff, 0xaa, 0x60, 0x00, 0x72, 0xe3, 0xf9, 0xff, 0xff, 0xaa, 0x1c, 0xc0, 0x12, 0xe2, 0x20, 0xc0, 0x6c, 0xe2, 0x0c, 0xf0, 0x8f, 0x10, 0x12, 0x00, 0x00, 0xea, 0x00, 0xf0, 0x20, 0xe3, 0x04, 0x30, 0x91, 0xe4, 0x04, 0x40, 0x91, 0xe4, 0x04, 0x50, 0x91, 0xe4, 0x04, 0x60, 0x91, 0xe4, 0x04, 0x70, 0x91, 0xe4, 0x04, 0x80, 0x91, 0xe4, 0x04, 0xe0, 0x91, 0xe4, 0x0c, 0xf0, 0x8f, 0xe0, 0x00, 0xf0, 0x20, 0xe3, 0x00, 0xf0, 0x20, 0xe3, 0x04, 0x30, 0x80, 0xe4, 0x04, 0x40, 0x80, 0xe4, 0x04, 0x50, 0x80, 0xe4, 0x04, 0x60, 0x80, 0xe4, 0x04, 0x70, 0x80, 0xe4, 0x04, 0x80, 0x80, 0xe4, 0x04, 0xe0, 0x80, 0xe4, 0xdc, 0xff, 0xff, 0x2a, 0xe0, 0x01, 0xbd, 0xe8, 0x82, 0x2f, 0xb0, 0xe1, 0x01, 0x30, 0xd1, 0x14, 0x01, 0x40, 0xd1, 0x24, 0x01, 0xc0, 0xd1, 0x24, 0x01, 0x30, 0xc0, 0x14, 0x01, 0x40, 0xc0, 0x24, 0x01, 0xc0, 0xc0, 0x24, 0x11, 0x40, 0xbd, 0xe8, 0x3e, 0xff, 0x2f, 0xe1, 0x04, 0xc0, 0x6c, 0xe2, 0x02, 0x00, 0x5c, 0xe3, 0x01, 0x30, 0xd1, 0xc4, 0x01, 0x40, 0xd1, 0xa4, 0x01, 0xe0, 0xd1, 0xe4, 0x01, 0x30, 0xc0, 0xc4, 0x01, 0x40, 0xc0, 0xa4, 0x0c, 0x20, 0x52, 0xe0, 0x01, 0xe0, 0xc0, 0xe4, 0xec, 0xff, 0xff, 0xba, 0x03, 0xc0, 0x11, 0xe2, 0xbb, 0xff, 0xff, 0x0a, 0x03, 0x10, 0xc1, 0xe3, 0x02, 0x00, 0x5c, 0xe3, 0x04, 0xe0, 0x91, 0xe4, 0x33, 0x00, 0x00, 0x0a, 0x65, 0x00, 0x00, 0xca, 0x1c, 0x20, 0x52, 0xe2, 0x24, 0x00, 0x00, 0xba, 0x1f, 0xc0, 0x10, 0xe2, 0x20, 0xc0, 0x6c, 0xe2, 0x02, 0x40, 0xdc, 0x10, 0x0c, 0x20, 0x42, 0x30, 0x21, 0x00, 0x00, 0x3a, 0xe0, 0x03, 0x2d, 0xe9, 0x00, 0xf0, 0xd1, 0xf5, 0x60, 0x20, 0x52, 0xe2, 0x1c, 0xf0, 0xd1, 0xf5, 0x02, 0x00, 0x00, 0xba, 0x3c, 0xf0, 0xd1, 0xf5, 0x5c, 0xf0, 0xd1, 0xf5, 0x7c, 0xf0, 0xd1, 0xf5, 0xf0, 0x00, 0xb1, 0xe8, 0x2e, 0x34, 0xa0, 0xe1, 0x20, 0x20, 0x52, 0xe2, 0x00, 0x53, 0xb1, 0xe8, 0x04, 0x3c, 0x83, 0xe1, 0x24, 0x44, 0xa0, 0xe1, 0x05, 0x4c, 0x84, 0xe1, 0x25, 0x54, 0xa0, 0xe1, 0x06, 0x5c, 0x85, 0xe1, 0x26, 0x64, 0xa0, 0xe1, 0x07, 0x6c, 0x86, 0xe1, 0x27, 0x74, 0xa0, 0xe1, 0x08, 0x7c, 0x87, 0xe1, 0x28, 0x84, 0xa0, 0xe1, 0x09, 0x8c, 0x88, 0xe1, 0x29, 0x94, 0xa0, 0xe1, 0x0c, 0x9c, 0x89, 0xe1, 0x2c, 0xc4, 0xa0, 0xe1, 0x0e, 0xcc, 0x8c, 0xe1, 0xf8, 0x13, 0xa0, 0xe8, 0xe9, 0xff, 0xff, 0xaa, 0x60, 0x00, 0x72, 0xe3, 0xe8, 0xff, 0xff, 0xaa, 0xe0, 0x03, 0xbd, 0xe8, 0x1c, 0xc0, 0x12, 0xe2, 0x07, 0x00, 0x00, 0x0a, 0x2e, 0x34, 0xa0, 0xe1, 0x04, 0xe0, 0x91, 0xe4, 0x04, 0xc0, 0x5c, 0xe2, 0x0e, 0x3c, 0x83, 0xe1, 0x04, 0x30, 0x80, 0xe4, 0xf9, 0xff, 0xff, 0xca, 0x00, 0x00, 0x52, 0xe3, 0xd5, 0xff, 0xff, 0xaa, 0x03, 0x10, 0x41, 0xe2, 0xb2, 0xff, 0xff, 0xea, 0x1c, 0x20, 0x52, 0xe2, 0x24, 0x00, 0x00, 0xba, 0x1f, 0xc0, 0x10, 0xe2, 0x20, 0xc0, 0x6c, 0xe2, 0x02, 0x40, 0xdc, 0x10, 0x0c, 0x20, 0x42, 0x30, 0x21, 0x00, 0x00, 0x3a, 0xe0, 0x03, 0x2d, 0xe9, 0x00, 0xf0, 0xd1, 0xf5, 0x60, 0x20, 0x52, 0xe2, 0x1c, 0xf0, 0xd1, 0xf5, 0x02, 0x00, 0x00, 0xba, 0x3c, 0xf0, 0xd1, 0xf5, 0x5c, 0xf0, 0xd1, 0xf5, 0x7c, 0xf0, 0xd1, 0xf5, 0xf0, 0x00, 0xb1, 0xe8, 0x2e, 0x38, 0xa0, 0xe1, 0x20, 0x20, 0x52, 0xe2, 0x00, 0x53, 0xb1, 0xe8, 0x04, 0x38, 0x83, 0xe1, 0x24, 0x48, 0xa0, 0xe1, 0x05, 0x48, 0x84, 0xe1, 0x25, 0x58, 0xa0, 0xe1, 0x06, 0x58, 0x85, 0xe1, 0x26, 0x68, 0xa0, 0xe1, 0x07, 0x68, 0x86, 0xe1, 0x27, 0x78, 0xa0, 0xe1, 0x08, 0x78, 0x87, 0xe1, 0x28, 0x88, 0xa0, 0xe1, 0x09, 0x88, 0x88, 0xe1, 0x29, 0x98, 0xa0, 0xe1, 0x0c, 0x98, 0x89, 0xe1, 0x2c, 0xc8, 0xa0, 0xe1, 0x0e, 0xc8, 0x8c, 0xe1, 0xf8, 0x13, 0xa0, 0xe8, 0xe9, 0xff, 0xff, 0xaa, 0x60, 0x00, 0x72, 0xe3, 0xe8, 0xff, 0xff, 0xaa, 0xe0, 0x03, 0xbd, 0xe8, 0x1c, 0xc0, 0x12, 0xe2, 0x07, 0x00, 0x00, 0x0a, 0x2e, 0x38, 0xa0, 0xe1, 0x04, 0xe0, 0x91, 0xe4, 0x04, 0xc0, 0x5c, 0xe2, 0x0e, 0x38, 0x83, 0xe1, 0x04, 0x30, 0x80, 0xe4, 0xf9, 0xff, 0xff, 0xca, 0x00, 0x00, 0x52, 0xe3, 0xd5, 0xff, 0xff, 0xaa, 0x02, 0x10, 0x41, 0xe2, 0x7f, 0xff, 0xff, 0xea, 0x1c, 0x20, 0x52, 0xe2, 0x24, 0x00, 0x00, 0xba, 0x1f, 0xc0, 0x10, 0xe2, 0x20, 0xc0, 0x6c, 0xe2, 0x02, 0x40, 0xdc, 0x10, 0x0c, 0x20, 0x42, 0x30, 0x21, 0x00, 0x00, 0x3a, 0xe0, 0x03, 0x2d, 0xe9, 0x00, 0xf0, 0xd1, 0xf5, 0x60, 0x20, 0x52, 0xe2, 0x1c, 0xf0, 0xd1, 0xf5, 0x02, 0x00, 0x00, 0xba, 0x3c, 0xf0, 0xd1, 0xf5, 0x5c, 0xf0, 0xd1, 0xf5, 0x7c, 0xf0, 0xd1, 0xf5, 0xf0, 0x00, 0xb1, 0xe8, 0x2e, 0x3c, 0xa0, 0xe1, 0x20, 0x20, 0x52, 0xe2, 0x00, 0x53, 0xb1, 0xe8, 0x04, 0x34, 0x83, 0xe1, 0x24, 0x4c, 0xa0, 0xe1, 0x05, 0x44, 0x84, 0xe1, 0x25, 0x5c, 0xa0, 0xe1, 0x06, 0x54, 0x85, 0xe1, 0x26, 0x6c, 0xa0, 0xe1, 0x07, 0x64, 0x86, 0xe1, 0x27, 0x7c, 0xa0, 0xe1, 0x08, 0x74, 0x87, 0xe1, 0x28, 0x8c, 0xa0, 0xe1, 0x09, 0x84, 0x88, 0xe1, 0x29, 0x9c, 0xa0, 0xe1, 0x0c, 0x94, 0x89, 0xe1, 0x2c, 0xcc, 0xa0, 0xe1, 0x0e, 0xc4, 0x8c, 0xe1, 0xf8, 0x13, 0xa0, 0xe8, 0xe9, 0xff, 0xff, 0xaa, 0x60, 0x00, 0x72, 0xe3, 0xe8, 0xff, 0xff, 0xaa, 0xe0, 0x03, 0xbd, 0xe8, 0x1c, 0xc0, 0x12, 0xe2, 0x07, 0x00, 0x00, 0x0a, 0x2e, 0x3c, 0xa0, 0xe1, 0x04, 0xe0, 0x91, 0xe4, 0x04, 0xc0, 0x5c, 0xe2, 0x0e, 0x34, 0x83, 0xe1, 0x04, 0x30, 0x80, 0xe4, 0xf9, 0xff, 0xff, 0xca, 0x00, 0x00, 0x52, 0xe3, 0xd5, 0xff, 0xff, 0xaa, 0x01, 0x10, 0x41, 0xe2, 0x4c, 0xff, 0xff, 0xea, 0x00, 0x00, 0x00, 0x00, 0x4a, 0x1e, 0x08, 0xbf, 0x70, 0x47, 0xc0, 0xf0, 0x24, 0x81, 0x88, 0x42, 0x40, 0xf2, 0x16, 0x81, 0x11, 0x42, 0x00, 0xf0, 0x17, 0x81, 0xb0, 0xfa, 0x80, 0xf3, 0xb1, 0xfa, 0x81, 0xf2, 0xa2, 0xeb, 0x03, 0x03, 0xc3, 0xf1, 0x1f, 0x03, 0x04, 0xa2, 0x02, 0xeb, 0x03, 0x13, 0x4f, 0xf0, 0x00, 0x02, 0x9f, 0x46, 0x00, 0xbf, 0xaf, 0xf3, 0x00, 0x80, 0xb0, 0xeb, 0xc1, 0x7f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x70, 0xb0, 0xeb, 0x81, 0x7f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x70, 0xb0, 0xeb, 0x41, 0x7f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x70, 0xb0, 0xeb, 0x01, 0x7f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x70, 0xb0, 0xeb, 0xc1, 0x6f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x60, 0xb0, 0xeb, 0x81, 0x6f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x60, 0xb0, 0xeb, 0x41, 0x6f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x60, 0xb0, 0xeb, 0x01, 0x6f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x60, 0xb0, 0xeb, 0xc1, 0x5f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x50, 0xb0, 0xeb, 0x81, 0x5f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x50, 0xb0, 0xeb, 0x41, 0x5f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x50, 0xb0, 0xeb, 0x01, 0x5f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x50, 0xb0, 0xeb, 0xc1, 0x4f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x40, 0xb0, 0xeb, 0x81, 0x4f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x40, 0xb0, 0xeb, 0x41, 0x4f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x40, 0xb0, 0xeb, 0x01, 0x4f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x40, 0xb0, 0xeb, 0xc1, 0x3f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x30, 0xb0, 0xeb, 0x81, 0x3f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x30, 0xb0, 0xeb, 0x41, 0x3f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x30, 0xb0, 0xeb, 0x01, 0x3f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x30, 0xb0, 0xeb, 0xc1, 0x2f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x20, 0xb0, 0xeb, 0x81, 0x2f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x20, 0xb0, 0xeb, 0x41, 0x2f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x20, 0xb0, 0xeb, 0x01, 0x2f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x20, 0xb0, 0xeb, 0xc1, 0x1f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x10, 0xb0, 0xeb, 0x81, 0x1f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x10, 0xb0, 0xeb, 0x41, 0x1f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x10, 0xb0, 0xeb, 0x01, 0x1f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x10, 0xb0, 0xeb, 0xc1, 0x0f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0xc1, 0x00, 0xb0, 0xeb, 0x81, 0x0f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x81, 0x00, 0xb0, 0xeb, 0x41, 0x0f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x41, 0x00, 0xb0, 0xeb, 0x01, 0x0f, 0x00, 0xbf, 0x42, 0xeb, 0x02, 0x02, 0x28, 0xbf, 0xa0, 0xeb, 0x01, 0x00, 0x10, 0x46, 0x70, 0x47, 0x0c, 0xbf, 0x01, 0x20, 0x00, 0x20, 0x70, 0x47, 0xb1, 0xfa, 0x81, 0xf2, 0xc2, 0xf1, 0x1f, 0x02, 0x20, 0xfa, 0x02, 0xf0, 0x70, 0x47, 0x08, 0xb1, 0x4f, 0xf0, 0xff, 0x30, 0x00, 0xf0, 0x66, 0xb9, 0x00, 0x29, 0xf8, 0xd0, 0x2d, 0xe9, 0x03, 0x40, 0xff, 0xf7, 0xcc, 0xfe, 0xbd, 0xe8, 0x06, 0x40, 0x02, 0xfb, 0x00, 0xf3, 0xa1, 0xeb, 0x03, 0x01, 0x70, 0x47, 0x00, 0xbf, 0x00, 0x29, 0x00, 0xf0, 0x3e, 0x81, 0x80, 0xea, 0x01, 0x0c, 0x48, 0xbf, 0x49, 0x42, 0x4a, 0x1e, 0x00, 0xf0, 0x1f, 0x81, 0x03, 0x00, 0x48, 0xbf, 0x43, 0x42, 0x8b, 0x42, 0x40, 0xf2, 0x1e, 0x81, 0x11, 0x42, 0x00, 0xf0, 0x23, 0x81, 0xb3, 0xfa, 0x83, 0xf2, 0xb1, 0xfa, 0x81, 0xf0, 0xa0, 0xeb, 0x02, 0x02, 0xc2, 0xf1, 0x1f, 0x02, 0x04, 0xa0, 0x00, 0xeb, 0x02, 0x12, 0x4f, 0xf0, 0x00, 0x00, 0x97, 0x46, 0x00, 0xbf, 0xaf, 0xf3, 0x00, 0x80, 0xb3, 0xeb, 0xc1, 0x7f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x73, 0xb3, 0xeb, 0x81, 0x7f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x73, 0xb3, 0xeb, 0x41, 0x7f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x73, 0xb3, 0xeb, 0x01, 0x7f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x73, 0xb3, 0xeb, 0xc1, 0x6f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x63, 0xb3, 0xeb, 0x81, 0x6f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x63, 0xb3, 0xeb, 0x41, 0x6f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x63, 0xb3, 0xeb, 0x01, 0x6f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x63, 0xb3, 0xeb, 0xc1, 0x5f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x53, 0xb3, 0xeb, 0x81, 0x5f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x53, 0xb3, 0xeb, 0x41, 0x5f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x53, 0xb3, 0xeb, 0x01, 0x5f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x53, 0xb3, 0xeb, 0xc1, 0x4f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x43, 0xb3, 0xeb, 0x81, 0x4f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x43, 0xb3, 0xeb, 0x41, 0x4f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x43, 0xb3, 0xeb, 0x01, 0x4f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x43, 0xb3, 0xeb, 0xc1, 0x3f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x33, 0xb3, 0xeb, 0x81, 0x3f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x33, 0xb3, 0xeb, 0x41, 0x3f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x33, 0xb3, 0xeb, 0x01, 0x3f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x33, 0xb3, 0xeb, 0xc1, 0x2f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x23, 0xb3, 0xeb, 0x81, 0x2f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x23, 0xb3, 0xeb, 0x41, 0x2f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x23, 0xb3, 0xeb, 0x01, 0x2f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x23, 0xb3, 0xeb, 0xc1, 0x1f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x13, 0xb3, 0xeb, 0x81, 0x1f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x13, 0xb3, 0xeb, 0x41, 0x1f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x13, 0xb3, 0xeb, 0x01, 0x1f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x13, 0xb3, 0xeb, 0xc1, 0x0f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0xc1, 0x03, 0xb3, 0xeb, 0x81, 0x0f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x81, 0x03, 0xb3, 0xeb, 0x41, 0x0f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x41, 0x03, 0xb3, 0xeb, 0x01, 0x0f, 0x00, 0xbf, 0x40, 0xeb, 0x00, 0x00, 0x28, 0xbf, 0xa3, 0xeb, 0x01, 0x03, 0xbc, 0xf1, 0x00, 0x0f, 0x48, 0xbf, 0x40, 0x42, 0x70, 0x47, 0x9c, 0xea, 0x00, 0x0f, 0x48, 0xbf, 0x40, 0x42, 0x70, 0x47, 0x38, 0xbf, 0x00, 0x20, 0x04, 0xbf, 0x4f, 0xea, 0xec, 0x70, 0x40, 0xf0, 0x01, 0x00, 0x70, 0x47, 0xb1, 0xfa, 0x81, 0xf2, 0xc2, 0xf1, 0x1f, 0x02, 0xbc, 0xf1, 0x00, 0x0f, 0x23, 0xfa, 0x02, 0xf0, 0x48, 0xbf, 0x40, 0x42, 0x70, 0x47, 0x00, 0x28, 0xc8, 0xbf, 0x6f, 0xf0, 0x00, 0x40, 0xb8, 0xbf, 0x4f, 0xf0, 0x00, 0x40, 0x00, 0xf0, 0x0e, 0xb8, 0x00, 0x29, 0xf4, 0xd0, 0x2d, 0xe9, 0x03, 0x40, 0xff, 0xf7, 0xb3, 0xfe, 0xbd, 0xe8, 0x06, 0x40, 0x02, 0xfb, 0x00, 0xf3, 0xa1, 0xeb, 0x03, 0x01, 0x70, 0x47, 0x00, 0xbf, 0x02, 0xb5, 0x4f, 0xf0, 0x08, 0x00, 0x00, 0xf0, 0xc7, 0xfa, 0x02, 0xbd, 0x53, 0xec, 0x0e, 0x2f, 0x02, 0x4b, 0xa2, 0xfb, 0x03, 0x23, 0x58, 0x0a, 0x70, 0x47, 0x00, 0xbf, 0xf1, 0x19, 0x76, 0x05, 0x2d, 0xe9, 0x70, 0x48, 0x51, 0xec, 0x0e, 0x6f, 0x8c, 0x46, 0x18, 0x21, 0x48, 0x43, 0x32, 0x18, 0x4c, 0xf1, 0x00, 0x03, 0x51, 0xec, 0x0e, 0x0f, 0x8b, 0x42, 0x08, 0xbf, 0x82, 0x42, 0xf9, 0xd2, 0xbd, 0xe8, 0x70, 0x88, 0x4f, 0xf4, 0x7a, 0x73, 0x58, 0x43, 0xff, 0xf7, 0xe9, 0xbf, 0xff, 0xf7, 0xe7, 0xbf, 0xbf, 0xf3, 0x4f, 0x8f, 0xbf, 0xf3, 0x6f, 0x8f, 0x70, 0x47, 0x4f, 0xf0, 0x00, 0x02, 0x07, 0xee, 0xd5, 0x2f, 0x00, 0x47, 0x70, 0x47, 0x10, 0xb5, 0x00, 0xf0, 0x3f, 0xf8, 0x00, 0x20, 0x02, 0xf0, 0xd4, 0xfd, 0x00, 0x28, 0x2f, 0xdb, 0x00, 0xf0, 0x4a, 0xff, 0x60, 0xbb, 0x02, 0xf0, 0xdb, 0xfd, 0x64, 0x24, 0x00, 0xf0, 0x3f, 0x00, 0x44, 0x43, 0x02, 0xf0, 0xd5, 0xfd, 0x1c, 0xb3, 0x80, 0x11, 0x03, 0x28, 0x13, 0xd8, 0xdf, 0xe8, 0x00, 0xf0, 0x02, 0x06, 0x0a, 0x0e, 0x0a, 0x20, 0x44, 0x43, 0x04, 0xf5, 0xfa, 0x74, 0x14, 0x20, 0x44, 0x43, 0x04, 0xf5, 0xfa, 0x74, 0x32, 0x20, 0x44, 0x43, 0x04, 0xf5, 0xfa, 0x74, 0x64, 0x20, 0x44, 0x43, 0x04, 0xf5, 0xfa, 0x74, 0xb4, 0xf5, 0x96, 0x6f, 0x20, 0x46, 0xa8, 0xbf, 0x4f, 0xf4, 0x96, 0x60, 0xb0, 0xf5, 0x61, 0x7f, 0xb8, 0xbf, 0x4f, 0xf4, 0x61, 0x70, 0x02, 0xf0, 0x96, 0xfd, 0x02, 0x48, 0x00, 0xf0, 0x27, 0xfa, 0x00, 0x20, 0x10, 0xbd, 0x00, 0xbf, 0xf5, 0xc1, 0x02, 0x00, 0x00, 0x20, 0x70, 0x47, 0x38, 0xb5, 0x4f, 0x48, 0x00, 0xf0, 0x1c, 0xfa, 0x4e, 0x4d, 0x40, 0xf2, 0x01, 0x33, 0x4e, 0x4c, 0x01, 0x20, 0x2b, 0x60, 0xff, 0xf7, 0x8e, 0xff, 0x23, 0x68, 0x23, 0xf0, 0x00, 0x63, 0x23, 0x60, 0x23, 0x68, 0x23, 0xf0, 0x03, 0x13, 0x23, 0xf4, 0x7f, 0x43, 0x43, 0xf4, 0x94, 0x43, 0x23, 0x60, 0x2b, 0x68, 0x23, 0xf4, 0x40, 0x33, 0x43, 0xf4, 0x80, 0x33, 0x2b, 0x60, 0x23, 0x68, 0x43, 0xf0, 0x00, 0x53, 0x23, 0x60, 0x23, 0x68, 0x43, 0xf0, 0x80, 0x43, 0x05, 0x20, 0x23, 0x60, 0xff, 0xf7, 0x71, 0xff, 0x23, 0x68, 0xda, 0x00, 0xfc, 0xd5, 0x14, 0x20, 0xff, 0xf7, 0x6b, 0xff, 0x23, 0x68, 0x43, 0xf0, 0x00, 0x63, 0x23, 0x60, 0x23, 0x68, 0x23, 0xf0, 0x00, 0x53, 0x35, 0x4a, 0x23, 0x60, 0x11, 0x68, 0x36, 0x4b, 0x0b, 0x40, 0x43, 0xf0, 0x03, 0x23, 0x43, 0xf0, 0x01, 0x03, 0x34, 0x4c, 0x01, 0x20, 0x13, 0x60, 0xff, 0xf7, 0x56, 0xff, 0x22, 0x68, 0x00, 0x2a, 0x30, 0xda, 0x31, 0x48, 0x00, 0xf0, 0xd6, 0xf9, 0x30, 0x4b, 0x02, 0x22, 0x1a, 0x60, 0x1a, 0x68, 0x42, 0xf0, 0x40, 0x72, 0x01, 0x20, 0x1a, 0x60, 0xff, 0xf7, 0x46, 0xff, 0x2c, 0x4b, 0x4f, 0xf4, 0x81, 0x72, 0x1a, 0x60, 0x1a, 0x68, 0x42, 0xf0, 0x40, 0x72, 0x2a, 0x4c, 0x01, 0x20, 0x1a, 0x60, 0xff, 0xf7, 0x3a, 0xff, 0x23, 0x68, 0x43, 0xf4, 0x80, 0x33, 0x14, 0x20, 0x23, 0x60, 0xff, 0xf7, 0x33, 0xff, 0x23, 0x68, 0x43, 0xf0, 0x01, 0x03, 0x23, 0x4a, 0x23, 0x60, 0x13, 0x68, 0x43, 0xf0, 0x80, 0x43, 0x01, 0x20, 0x13, 0x60, 0xff, 0xf7, 0x27, 0xff, 0x20, 0x48, 0xbd, 0xe8, 0x38, 0x40, 0x00, 0xf0, 0xa8, 0xb9, 0x22, 0x68, 0x22, 0xf0, 0x00, 0x62, 0x22, 0x60, 0x21, 0x68, 0x1c, 0x4a, 0x0a, 0x40, 0x42, 0xf4, 0x05, 0x12, 0x42, 0xf4, 0x0c, 0x52, 0x22, 0x60, 0x22, 0x68, 0x42, 0xf0, 0x00, 0x52, 0x22, 0x60, 0x22, 0x68, 0x42, 0xf0, 0x80, 0x42, 0x22, 0x60, 0x22, 0x68, 0x42, 0xf0, 0x00, 0x42, 0x22, 0x60, 0x23, 0x68, 0xdb, 0x00, 0xfc, 0xd5, 0x14, 0x20, 0xff, 0xf7, 0x04, 0xff, 0x23, 0x68, 0x43, 0xf0, 0x00, 0x63, 0x23, 0x60, 0x23, 0x68, 0x23, 0xf0, 0x00, 0x53, 0x23, 0x60, 0xaa, 0xe7, 0x00, 0xbf, 0x61, 0xc2, 0x02, 0x00, 0x00, 0x15, 0x00, 0x02, 0x00, 0x10, 0x00, 0x02, 0xfc, 0xfc, 0xff, 0xf8, 0x20, 0x10, 0x00, 0x02, 0x70, 0xc2, 0x02, 0x00, 0x10, 0x15, 0x00, 0x02, 0x20, 0x15, 0x00, 0x02, 0x0c, 0x17, 0x00, 0x02, 0x40, 0x15, 0x00, 0x02, 0x8a, 0xc2, 0x02, 0x00, 0xfd, 0x00, 0x88, 0xff, 0x0a, 0x4a, 0x10, 0xb5, 0x14, 0x68, 0x01, 0x23, 0x00, 0xf1, 0x10, 0x01, 0x03, 0xfa, 0x01, 0xf1, 0x24, 0xea, 0x01, 0x04, 0x14, 0x60, 0x21, 0x43, 0x11, 0x60, 0x11, 0x68, 0x03, 0xfa, 0x00, 0xf0, 0x21, 0xea, 0x00, 0x01, 0x11, 0x60, 0x08, 0x43, 0x10, 0x60, 0x10, 0xbd, 0x0c, 0x19, 0x00, 0x02, 0x43, 0x1e, 0x0a, 0x44, 0x10, 0xb5, 0x91, 0x42, 0x01, 0xd1, 0x00, 0x20, 0x08, 0xe0, 0x13, 0xf8, 0x01, 0x4f, 0x11, 0xf8, 0x01, 0x0b, 0x20, 0x1a, 0x40, 0xb2, 0x08, 0xb9, 0x00, 0x2c, 0xf2, 0xd1, 0x10, 0xbd, 0x03, 0x46, 0x1a, 0x78, 0x59, 0x1c, 0x0a, 0xb9, 0x18, 0x1a, 0x70, 0x47, 0x0b, 0x46, 0xf8, 0xe7, 0x00, 0x00, 0x01, 0x4b, 0x18, 0x47, 0x70, 0x47, 0x00, 0xbf, 0xdc, 0x84, 0x02, 0x00, 0x01, 0x4b, 0x18, 0x47, 0x70, 0x47, 0x00, 0xbf, 0x94, 0x85, 0x02, 0x00, 0x83, 0x68, 0x5a, 0x1c, 0x82, 0x60, 0x19, 0x70, 0x70, 0x47, 0x08, 0x46, 0x00, 0xf0, 0x86, 0xb9, 0x30, 0xb5, 0x00, 0x25, 0x0c, 0x68, 0xeb, 0xb2, 0x01, 0x35, 0x94, 0x42, 0x0e, 0xd2, 0x02, 0x79, 0x02, 0xb9, 0x53, 0xb1, 0x02, 0x68, 0x0a, 0x2b, 0x34, 0xbf, 0x30, 0x21, 0x57, 0x21, 0x0b, 0x44, 0x54, 0x1c, 0x04, 0x60, 0x13, 0x70, 0x01, 0x23, 0x03, 0x71, 0x30, 0xbd, 0xa4, 0x1a, 0x0c, 0x60, 0xe8, 0xe7, 0x00, 0x00, 0x2d, 0xe9, 0xf0, 0x4f, 0x85, 0xb0, 0x04, 0x46, 0x0d, 0x46, 0x91, 0x46, 0x01, 0xae, 0x2f, 0x78, 0x00, 0x2f, 0x33, 0xd0, 0x25, 0x2f, 0x0d, 0xd0, 0x0a, 0x2f, 0x03, 0xd1, 0xe3, 0x68, 0x0d, 0x21, 0x20, 0x46, 0x98, 0x47, 0x01, 0x35, 0xc8, 0x46, 0xe3, 0x68, 0x39, 0x46, 0x20, 0x46, 0x98, 0x47, 0xc1, 0x46, 0xec, 0xe7, 0x6b, 0x78, 0x00, 0x27, 0x2d, 0x2b, 0x0a, 0xbf, 0xab, 0x78, 0x02, 0x35, 0x03, 0x35, 0x30, 0x2b, 0x03, 0xbf, 0x2b, 0x78, 0x4f, 0xf0, 0x01, 0x0b, 0x01, 0x35, 0x4f, 0xf0, 0x00, 0x0b, 0xa3, 0xf1, 0x30, 0x02, 0x09, 0x2a, 0x1e, 0xd9, 0x6c, 0x2b, 0x4f, 0xf0, 0x00, 0x01, 0x04, 0xbf, 0x2b, 0x78, 0x01, 0x35, 0x26, 0x60, 0x21, 0x71, 0x64, 0x2b, 0x2f, 0xd0, 0x15, 0xd8, 0x25, 0x2b, 0x00, 0xf0, 0x9a, 0x80, 0x63, 0x2b, 0x66, 0xd0, 0xa3, 0xb9, 0x00, 0x20, 0x05, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x01, 0xfb, 0x07, 0x37, 0x15, 0xf8, 0x01, 0x3b, 0x30, 0x3f, 0xa3, 0xf1, 0x30, 0x02, 0x09, 0x2a, 0xf6, 0xd9, 0xe0, 0xe7, 0x0a, 0x21, 0xf8, 0xe7, 0x73, 0x2b, 0x5d, 0xd0, 0x03, 0xd8, 0x70, 0x2b, 0x77, 0xd0, 0xc8, 0x46, 0x3d, 0xe0, 0x75, 0x2b, 0x0f, 0xd0, 0x78, 0x2b, 0xf9, 0xd1, 0xd9, 0xf8, 0x00, 0x30, 0x09, 0xf1, 0x04, 0x08, 0x00, 0x93, 0x00, 0x9b, 0xa3, 0xbb, 0x0d, 0xf1, 0x05, 0x03, 0x23, 0x60, 0x30, 0x23, 0x8d, 0xf8, 0x04, 0x30, 0x17, 0xe0, 0xd9, 0xf8, 0x00, 0x20, 0x64, 0x2b, 0x09, 0xf1, 0x04, 0x08, 0x00, 0x92, 0x09, 0xd1, 0x00, 0x2a, 0x07, 0xda, 0x0d, 0xf1, 0x05, 0x03, 0x52, 0x42, 0x23, 0x60, 0x2d, 0x23, 0x00, 0x92, 0x8d, 0xf8, 0x04, 0x30, 0x00, 0x9b, 0x3b, 0xb9, 0x23, 0x68, 0x5a, 0x1c, 0x22, 0x60, 0x30, 0x22, 0x1a, 0x70, 0x01, 0x23, 0x23, 0x71, 0x10, 0xe0, 0xdf, 0xf8, 0xd8, 0x90, 0x4f, 0xf0, 0x0a, 0x0a, 0x4a, 0x46, 0x69, 0x46, 0x20, 0x46, 0xff, 0xf7, 0x5b, 0xff, 0x30, 0x4b, 0xba, 0xf1, 0x01, 0x0a, 0xa9, 0xfb, 0x03, 0x01, 0x4f, 0xea, 0xd1, 0x09, 0xf2, 0xd1, 0xb1, 0x46, 0x1c, 0xe0, 0x4f, 0xf0, 0x08, 0x09, 0x4f, 0xf0, 0x80, 0x5a, 0x52, 0x46, 0x69, 0x46, 0x20, 0x46, 0x4f, 0xea, 0x1a, 0x1a, 0xff, 0xf7, 0x46, 0xff, 0xb9, 0xf1, 0x01, 0x09, 0xf5, 0xd1, 0xee, 0xe7, 0x99, 0xf8, 0x00, 0x30, 0x0d, 0xf1, 0x05, 0x02, 0x09, 0xf1, 0x04, 0x08, 0x22, 0x60, 0x8d, 0xf8, 0x04, 0x30, 0xe4, 0xe7, 0x09, 0xf1, 0x04, 0x08, 0xd9, 0xf8, 0x00, 0x90, 0x23, 0x68, 0x00, 0x22, 0x1a, 0x70, 0xc4, 0xf8, 0x00, 0x90, 0x23, 0x68, 0x5a, 0x1c, 0x22, 0x60, 0x1b, 0x78, 0x03, 0xbb, 0xbb, 0xf1, 0x00, 0x0f, 0x14, 0xbf, 0x4f, 0xf0, 0x30, 0x0a, 0x4f, 0xf0, 0x20, 0x0a, 0x17, 0xf1, 0xff, 0x37, 0x18, 0xd3, 0xe3, 0x68, 0x51, 0x46, 0x20, 0x46, 0x98, 0x47, 0xf7, 0xe7, 0x11, 0x4a, 0x09, 0xf1, 0x04, 0x08, 0x2b, 0x78, 0x69, 0x1c, 0xd3, 0x5c, 0x5b, 0x07, 0xbf, 0xd0, 0x0d, 0x46, 0xf8, 0xe7, 0x0d, 0xf1, 0x05, 0x02, 0x8d, 0xf8, 0x04, 0x30, 0x22, 0x60, 0x77, 0xe7, 0x01, 0x3f, 0xd9, 0xe7, 0x00, 0x2f, 0xfb, 0xd1, 0xb9, 0xf1, 0x00, 0x0f, 0x3f, 0xf4, 0x35, 0xaf, 0x19, 0xf8, 0x01, 0x1b, 0x00, 0x29, 0x3f, 0xf4, 0x30, 0xaf, 0xe3, 0x68, 0x20, 0x46, 0x98, 0x47, 0xf6, 0xe7, 0xcd, 0xcc, 0xcc, 0xcc, 0xc0, 0xbe, 0x02, 0x00, 0x00, 0xca, 0x9a, 0x3b, 0x0e, 0xb4, 0x3f, 0xb5, 0x07, 0xaa, 0x52, 0xf8, 0x04, 0x1b, 0x07, 0x4b, 0x04, 0x90, 0x02, 0xa8, 0x01, 0x92, 0x05, 0x93, 0xff, 0xf7, 0x02, 0xff, 0x04, 0x9b, 0x00, 0x22, 0x1a, 0x70, 0x06, 0xb0, 0x5d, 0xf8, 0x04, 0xeb, 0x03, 0xb0, 0x70, 0x47, 0x49, 0x91, 0x02, 0x00, 0x0f, 0xb4, 0x30, 0xb5, 0x89, 0xb0, 0x01, 0xad, 0x00, 0x24, 0xff, 0xf7, 0x69, 0xfd, 0x0c, 0x49, 0x02, 0x46, 0x28, 0x46, 0xff, 0xf7, 0xde, 0xff, 0x28, 0x5d, 0x20, 0xb1, 0x01, 0x34, 0x00, 0xf0, 0x53, 0xf8, 0x0c, 0x2c, 0xf8, 0xd1, 0x07, 0x4b, 0x0d, 0xaa, 0x0c, 0x99, 0x04, 0xa8, 0x00, 0x92, 0x07, 0x93, 0xff, 0xf7, 0xdd, 0xfe, 0x09, 0xb0, 0xbd, 0xe8, 0x30, 0x40, 0x04, 0xb0, 0x70, 0x47, 0x97, 0xc2, 0x02, 0x00, 0x53, 0x91, 0x02, 0x00, 0x0f, 0xb4, 0x38, 0xb5, 0x01, 0x23, 0x06, 0x4c, 0x04, 0x98, 0x25, 0x78, 0x23, 0x70, 0xff, 0xf7, 0xd3, 0xff, 0x25, 0x70, 0x00, 0x20, 0xbd, 0xe8, 0x38, 0x40, 0x04, 0xb0, 0x70, 0x47, 0x00, 0xbf, 0x30, 0xca, 0x02, 0x00, 0x00, 0x20, 0x70, 0x47, 0x70, 0x47, 0x00, 0x00, 0xf8, 0xb5, 0x04, 0x46, 0x4f, 0xf0, 0x14, 0x70, 0x0e, 0x46, 0x17, 0x46, 0xff, 0xf7, 0xf6, 0xff, 0x05, 0x46, 0x20, 0x46, 0xff, 0xf7, 0x52, 0xfe, 0x01, 0x22, 0x39, 0x46, 0x30, 0x46, 0xa4, 0x02, 0x00, 0xf0, 0x22, 0xf8, 0x0a, 0x4a, 0x2b, 0x19, 0x03, 0x21, 0x19, 0x61, 0x13, 0x60, 0xda, 0x68, 0x42, 0xf0, 0x80, 0x02, 0xda, 0x60, 0x00, 0x22, 0x5a, 0x60, 0x0d, 0x22, 0x2a, 0x51, 0xda, 0x68, 0x22, 0xf0, 0x80, 0x02, 0xda, 0x60, 0x07, 0x22, 0xd9, 0x60, 0x9a, 0x60, 0xf8, 0xbd, 0x00, 0xbf, 0x98, 0xcc, 0x02, 0x00, 0x03, 0x4b, 0x1b, 0x68, 0x5a, 0x69, 0x52, 0x06, 0xfc, 0xd5, 0x18, 0x60, 0x70, 0x47, 0x00, 0xbf, 0x98, 0xcc, 0x02, 0x00, 0x2d, 0xe9, 0xf0, 0x4f, 0x00, 0x27, 0x8b, 0xb0, 0xcd, 0xe9, 0x08, 0x12, 0x08, 0x9b, 0x9f, 0x42, 0x04, 0xd1, 0x4f, 0xf0, 0xff, 0x30, 0x0b, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x10, 0xf8, 0x37, 0x60, 0x00, 0xeb, 0xc7, 0x0e, 0x01, 0x37, 0x00, 0x2e, 0xf0, 0xd0, 0x9e, 0xf8, 0x01, 0xc0, 0x06, 0xeb, 0x46, 0x04, 0x0b, 0x2e, 0x4f, 0xea, 0x04, 0x14, 0x4f, 0xea, 0xdc, 0x03, 0x06, 0x93, 0x4f, 0xea, 0x1c, 0x13, 0x07, 0x93, 0x06, 0x9b, 0x04, 0xeb, 0x83, 0x02, 0x07, 0x9b, 0x4f, 0xea, 0x83, 0x05, 0x73, 0xd8, 0x02, 0xf1, 0x00, 0x71, 0x04, 0xf1, 0x00, 0x72, 0xa1, 0xf1, 0x30, 0x03, 0xa2, 0xf1, 0x0c, 0x04, 0x1c, 0x39, 0x20, 0x3a, 0x2c, 0x44, 0x02, 0x94, 0x03, 0x92, 0xd3, 0xf8, 0x00, 0x90, 0x02, 0x9c, 0x24, 0x68, 0x00, 0x94, 0x0d, 0x68, 0x03, 0x9a, 0x14, 0x68, 0x01, 0x94, 0x0c, 0xf0, 0x07, 0x08, 0x09, 0x9a, 0x4f, 0xea, 0x88, 0x08, 0x0f, 0x24, 0x04, 0xfa, 0x08, 0xf4, 0x29, 0xea, 0x04, 0x04, 0x3a, 0xb1, 0x9e, 0xf8, 0x02, 0x90, 0x09, 0xf0, 0x0f, 0x09, 0x09, 0xfa, 0x08, 0xf9, 0x44, 0xea, 0x09, 0x04, 0x9e, 0xf9, 0x03, 0x90, 0xb9, 0xf1, 0x00, 0x0f, 0x11, 0xdb, 0x0c, 0xf0, 0x0f, 0x0b, 0x00, 0x9a, 0x4f, 0xea, 0x4b, 0x0b, 0x4f, 0xf0, 0x03, 0x0a, 0x09, 0xf0, 0x03, 0x09, 0x0a, 0xfa, 0x0b, 0xfa, 0x09, 0xfa, 0x0b, 0xf9, 0x22, 0xea, 0x0a, 0x0a, 0x49, 0xea, 0x0a, 0x02, 0x00, 0x92, 0x9e, 0xf9, 0x04, 0x90, 0xb9, 0xf1, 0x00, 0x0f, 0x0b, 0xdb, 0x4f, 0xf0, 0x03, 0x0a, 0x09, 0xf0, 0x03, 0x09, 0x0a, 0xfa, 0x08, 0xfa, 0x09, 0xfa, 0x08, 0xf9, 0x25, 0xea, 0x0a, 0x05, 0x49, 0xea, 0x05, 0x05, 0x9e, 0xf9, 0x02, 0x90, 0xb9, 0xf1, 0x01, 0x0f, 0x28, 0xd1, 0x9e, 0xf9, 0x05, 0x80, 0xb8, 0xf1, 0x00, 0x0f, 0x23, 0xdb, 0x01, 0x9a, 0x09, 0xfa, 0x0c, 0xfe, 0x08, 0xf0, 0x01, 0x08, 0x08, 0xfa, 0x0c, 0xf8, 0xcc, 0x46, 0x22, 0xea, 0x0e, 0x0e, 0x48, 0xea, 0x0e, 0x02, 0x01, 0x92, 0x00, 0xeb, 0xc7, 0x00, 0x04, 0x97, 0x04, 0x9a, 0x08, 0x9f, 0xba, 0x42, 0x12, 0xd3, 0x00, 0x2b, 0x40, 0xf0, 0xdb, 0x80, 0x00, 0x20, 0x6d, 0xe7, 0x73, 0x49, 0x73, 0x4b, 0x21, 0x44, 0x29, 0x44, 0x13, 0x44, 0x02, 0x91, 0x72, 0x49, 0x11, 0x44, 0x72, 0x4a, 0x22, 0x44, 0x8c, 0xe7, 0x4f, 0xf0, 0x00, 0x0c, 0xe5, 0xe7, 0x07, 0x78, 0x90, 0xf8, 0x01, 0xe0, 0x00, 0x2f, 0xe7, 0xd0, 0x4f, 0xea, 0x1e, 0x12, 0x4f, 0xea, 0xde, 0x0b, 0x05, 0x92, 0x07, 0x9a, 0x90, 0x46, 0x05, 0x9a, 0x90, 0x45, 0x02, 0xd1, 0xbe, 0x42, 0x00, 0xf0, 0x9c, 0x80, 0x1c, 0x60, 0x02, 0x9b, 0x1a, 0x46, 0x00, 0x9b, 0x13, 0x60, 0x0d, 0x60, 0xbc, 0xf1, 0x00, 0x0f, 0x02, 0xd0, 0x01, 0x9b, 0x03, 0x9a, 0x13, 0x60, 0x07, 0xeb, 0x47, 0x02, 0x05, 0x9b, 0x0b, 0x2f, 0x4f, 0xea, 0x02, 0x12, 0x4f, 0xea, 0x83, 0x04, 0x02, 0xeb, 0x8b, 0x01, 0x71, 0xd8, 0x01, 0xf1, 0x00, 0x71, 0x02, 0xf1, 0x00, 0x72, 0xa2, 0xf1, 0x0c, 0x05, 0xa1, 0xf1, 0x30, 0x03, 0x20, 0x3a, 0x1c, 0x39, 0x2c, 0x19, 0x02, 0x94, 0x03, 0x92, 0x1c, 0x68, 0x02, 0x9a, 0x12, 0x68, 0x00, 0x92, 0x0d, 0x68, 0x03, 0x9a, 0x12, 0x68, 0x01, 0x92, 0x4f, 0xf0, 0x00, 0x0c, 0x90, 0xf9, 0x02, 0x90, 0x0e, 0xf0, 0x07, 0x06, 0xb6, 0x00, 0xb9, 0xf1, 0x00, 0x0f, 0x0c, 0xdb, 0x0f, 0x22, 0x02, 0xfa, 0x06, 0xf8, 0x09, 0x9a, 0x24, 0xea, 0x08, 0x04, 0x2a, 0xb1, 0x09, 0xf0, 0x0f, 0x08, 0x08, 0xfa, 0x06, 0xf8, 0x44, 0xea, 0x08, 0x04, 0x90, 0xf9, 0x03, 0x80, 0xb8, 0xf1, 0x00, 0x0f, 0x13, 0xdb, 0x0e, 0xf0, 0x0f, 0x0a, 0x08, 0xf0, 0x03, 0x08, 0x4f, 0xea, 0x4a, 0x02, 0x4f, 0xf0, 0x03, 0x0a, 0x06, 0x92, 0x0a, 0xfa, 0x02, 0xfa, 0x00, 0x9a, 0x22, 0xea, 0x0a, 0x0a, 0x06, 0x9a, 0x08, 0xfa, 0x02, 0xf8, 0x48, 0xea, 0x0a, 0x02, 0x00, 0x92, 0x90, 0xf9, 0x04, 0x80, 0xb8, 0xf1, 0x00, 0x0f, 0x0a, 0xdb, 0x03, 0x22, 0x02, 0xfa, 0x06, 0xfa, 0x08, 0xea, 0x02, 0x08, 0x08, 0xfa, 0x06, 0xf8, 0x25, 0xea, 0x0a, 0x05, 0x48, 0xea, 0x05, 0x05, 0xb9, 0xf1, 0x01, 0x0f, 0x10, 0xd1, 0x90, 0xf9, 0x05, 0x60, 0x00, 0x2e, 0x0c, 0xdb, 0x01, 0x9a, 0x09, 0xfa, 0x0e, 0xfc, 0x06, 0xf0, 0x01, 0x06, 0x06, 0xfa, 0x0e, 0xf6, 0x22, 0xea, 0x0c, 0x0c, 0x46, 0xea, 0x0c, 0x02, 0xcc, 0x46, 0x01, 0x92, 0x04, 0x9e, 0x08, 0x30, 0x05, 0x9a, 0x01, 0x36, 0x04, 0x96, 0x3e, 0x46, 0xcd, 0xe9, 0x06, 0xb2, 0x4d, 0xe7, 0x1f, 0x4b, 0x1e, 0x4d, 0xcb, 0x18, 0x01, 0xf1, 0xe0, 0x61, 0x55, 0x19, 0x02, 0xf1, 0xe0, 0x62, 0x2c, 0x19, 0x01, 0xf5, 0x07, 0x31, 0x02, 0xf5, 0x07, 0x32, 0x02, 0x94, 0x01, 0xf5, 0xea, 0x71, 0x02, 0xf5, 0xe8, 0x72, 0x86, 0xe7, 0x06, 0x9a, 0x5a, 0x45, 0x8e, 0xd0, 0x1c, 0x60, 0x30, 0x23, 0x7b, 0x43, 0x0b, 0x2f, 0x4f, 0xea, 0x8b, 0x08, 0x03, 0xf1, 0x00, 0x76, 0x85, 0xbf, 0x03, 0xf1, 0xe0, 0x63, 0x03, 0xf5, 0x07, 0x33, 0xa6, 0xf1, 0x30, 0x03, 0x03, 0xf5, 0xe0, 0x73, 0x43, 0x44, 0x1c, 0x68, 0x1c, 0x3e, 0x0d, 0x60, 0x06, 0xeb, 0x08, 0x01, 0x56, 0xf8, 0x2b, 0x50, 0x74, 0xe7, 0x1c, 0x60, 0x02, 0x9b, 0x1a, 0x46, 0x00, 0x9b, 0x13, 0x60, 0x0d, 0x60, 0xbc, 0xf1, 0x00, 0x0f, 0x3f, 0xf4, 0x1b, 0xaf, 0x01, 0x9b, 0x03, 0x9a, 0x13, 0x60, 0x16, 0xe7, 0xe4, 0x1d, 0x02, 0x07, 0xc0, 0x1d, 0x02, 0x07, 0xd4, 0x1d, 0x02, 0x07, 0xd0, 0x1d, 0x02, 0x07, 0x38, 0xb5, 0x04, 0x46, 0x03, 0x48, 0x0d, 0x46, 0xff, 0xf7, 0x38, 0xfe, 0x40, 0xf8, 0x24, 0x50, 0x38, 0xbd, 0x00, 0xbf, 0x00, 0x01, 0x09, 0x07, 0x10, 0xb5, 0x04, 0x46, 0x02, 0x48, 0xff, 0xf7, 0x2d, 0xfe, 0x50, 0xf8, 0x24, 0x00, 0x10, 0xbd, 0x00, 0x01, 0x09, 0x07, 0x38, 0xb5, 0x00, 0x24, 0x15, 0x4d, 0x20, 0x46, 0xff, 0xf7, 0xf0, 0xff, 0x02, 0x46, 0x18, 0xb1, 0x21, 0x46, 0x28, 0x46, 0xff, 0xf7, 0xe4, 0xfd, 0x01, 0x34, 0x08, 0x2c, 0xf3, 0xd1, 0x02, 0x20, 0xff, 0xf7, 0xe4, 0xff, 0x0e, 0x4b, 0x98, 0x42, 0x04, 0xd1, 0x0e, 0x48, 0xff, 0xf7, 0xd8, 0xfd, 0x01, 0x20, 0x38, 0xbd, 0x0c, 0x4b, 0x98, 0x42, 0x0e, 0xd1, 0x0c, 0x4c, 0x02, 0x20, 0x0c, 0x49, 0xff, 0xf7, 0xc8, 0xff, 0x96, 0x20, 0xff, 0xf7, 0x57, 0xfb, 0x02, 0x20, 0xff, 0xf7, 0xce, 0xff, 0xa0, 0x42, 0xf7, 0xd1, 0x07, 0x48, 0xe9, 0xe7, 0x00, 0x20, 0xea, 0xe7, 0xe1, 0xc3, 0x02, 0x00, 0x5a, 0xa5, 0xa5, 0x5a, 0xf7, 0xc3, 0x02, 0x00, 0xa5, 0x5a, 0xa5, 0x5a, 0xa7, 0x5a, 0xa5, 0x5a, 0xa6, 0x5a, 0xa5, 0x5a, 0x07, 0xc4, 0x02, 0x00, 0x08, 0xb5, 0x02, 0x20, 0x00, 0x21, 0xff, 0xf7, 0xa9, 0xff, 0xff, 0xf7, 0x40, 0xfb, 0x02, 0x20, 0xff, 0xf7, 0xb0, 0xff, 0x00, 0x28, 0xf4, 0xd1, 0x08, 0xbd, 0x00, 0x00, 0x0c, 0x4b, 0x1b, 0x68, 0x98, 0x60, 0xda, 0x68, 0x42, 0xf0, 0x08, 0x02, 0xda, 0x60, 0x4f, 0xf6, 0xff, 0x72, 0x12, 0xf1, 0xff, 0x32, 0x0a, 0xd3, 0xd9, 0x68, 0x09, 0x07, 0xf9, 0xd5, 0x32, 0xb1, 0x1b, 0x69, 0x28, 0x2b, 0x14, 0xbf, 0x6f, 0xf0, 0x27, 0x00, 0x00, 0x20, 0x70, 0x47, 0x6f, 0xf0, 0x03, 0x00, 0x70, 0x47, 0x9c, 0xcc, 0x02, 0x00, 0x0e, 0x4b, 0x00, 0x22, 0x1b, 0x68, 0xda, 0x61, 0x01, 0x22, 0x9a, 0x61, 0xda, 0x68, 0x42, 0xf0, 0x20, 0x02, 0xda, 0x60, 0x4f, 0xf6, 0xff, 0x72, 0x12, 0xf1, 0xff, 0x32, 0x0a, 0xd3, 0xd9, 0x68, 0x09, 0x07, 0xf9, 0xd5, 0x32, 0xb1, 0x1b, 0x69, 0x08, 0x2b, 0x14, 0xbf, 0x6f, 0xf0, 0x07, 0x00, 0x00, 0x20, 0x70, 0x47, 0x6f, 0xf0, 0x03, 0x00, 0x70, 0x47, 0x00, 0xbf, 0x9c, 0xcc, 0x02, 0x00, 0x11, 0x4b, 0x41, 0xea, 0x40, 0x00, 0x1b, 0x68, 0x98, 0x60, 0xda, 0x68, 0x42, 0xf0, 0x08, 0x02, 0xda, 0x60, 0x4f, 0xf6, 0xff, 0x72, 0x12, 0xf1, 0xff, 0x32, 0x12, 0xd3, 0xd8, 0x68, 0x10, 0xf0, 0x08, 0x0f, 0xf8, 0xd0, 0x6a, 0xb1, 0x1b, 0x69, 0x29, 0xb9, 0x18, 0x2b, 0x0c, 0xbf, 0x00, 0x20, 0x6f, 0xf0, 0x17, 0x00, 0x70, 0x47, 0x40, 0x2b, 0x0c, 0xbf, 0x00, 0x20, 0x6f, 0xf0, 0x3f, 0x00, 0x70, 0x47, 0x6f, 0xf0, 0x03, 0x00, 0x70, 0x47, 0x9c, 0xcc, 0x02, 0x00, 0x11, 0x4b, 0x1b, 0x68, 0xda, 0x68, 0x42, 0xf0, 0x10, 0x02, 0xda, 0x60, 0xda, 0x68, 0x42, 0xf0, 0x08, 0x02, 0xda, 0x60, 0x4f, 0xf6, 0xff, 0x72, 0x12, 0xf1, 0xff, 0x32, 0x11, 0xd3, 0xd9, 0x68, 0xc9, 0x06, 0xf9, 0xd4, 0x6a, 0xb1, 0x4f, 0xf4, 0x80, 0x32, 0x01, 0x3a, 0x02, 0xd0, 0x19, 0x69, 0xf8, 0x29, 0xfa, 0xd1, 0x1b, 0x69, 0xf8, 0x2b, 0x14, 0xbf, 0x6f, 0xf0, 0x03, 0x00, 0x00, 0x20, 0x70, 0x47, 0x6f, 0xf0, 0x03, 0x00, 0x70, 0x47, 0x9c, 0xcc, 0x02, 0x00, 0x2d, 0xe9, 0xf3, 0x47, 0x1f, 0x46, 0x54, 0x4b, 0x14, 0x46, 0x80, 0x46, 0x01, 0x91, 0x5a, 0x68, 0x9a, 0x46, 0x0a, 0x9e, 0x00, 0x2a, 0x00, 0xf0, 0x9b, 0x80, 0xff, 0xf7, 0x85, 0xff, 0x05, 0x46, 0x20, 0xbb, 0x01, 0x46, 0x40, 0x46, 0xff, 0xf7, 0x9f, 0xff, 0x05, 0x46, 0xf0, 0xb9, 0x02, 0x2c, 0x22, 0xdc, 0x0c, 0xbf, 0x01, 0x24, 0x00, 0x24, 0x0d, 0xf1, 0x04, 0x09, 0x4c, 0x44, 0x14, 0xf8, 0x01, 0x09, 0xff, 0xf7, 0x55, 0xff, 0x05, 0x46, 0x80, 0xb9, 0xa4, 0xeb, 0x09, 0x03, 0x01, 0x33, 0xf5, 0xd1, 0xda, 0xf8, 0x00, 0x40, 0xe3, 0x68, 0x43, 0xf0, 0x20, 0x03, 0xe3, 0x60, 0x4f, 0xf6, 0xff, 0x73, 0x13, 0xf1, 0xff, 0x33, 0x09, 0xd2, 0x6f, 0xf0, 0x03, 0x05, 0xff, 0xf7, 0xa2, 0xff, 0x28, 0x46, 0x02, 0xb0, 0xbd, 0xe8, 0xf0, 0x87, 0x02, 0x24, 0xdd, 0xe7, 0xe2, 0x68, 0x15, 0x07, 0xef, 0xd5, 0x00, 0x2b, 0xf0, 0xd0, 0x23, 0x69, 0x10, 0x2b, 0x5b, 0xd1, 0x01, 0x21, 0x40, 0x46, 0xff, 0xf7, 0x6a, 0xff, 0x05, 0x46, 0x00, 0x28, 0xe8, 0xd1, 0x01, 0x2e, 0x21, 0xd0, 0x3a, 0x46, 0x01, 0x3e, 0xd3, 0x1b, 0x9e, 0x42, 0xe3, 0x68, 0x30, 0xd8, 0x03, 0xf0, 0xfb, 0x03, 0xe3, 0x60, 0xe3, 0x68, 0x43, 0xf0, 0x08, 0x03, 0xe3, 0x60, 0x4f, 0xf6, 0xff, 0x73, 0x13, 0xf1, 0xff, 0x33, 0xd2, 0xd3, 0xe2, 0x68, 0x12, 0x07, 0xf9, 0xd5, 0x00, 0x2b, 0xcd, 0xd0, 0xa3, 0x68, 0xbb, 0x55, 0x64, 0x23, 0x13, 0xf1, 0xff, 0x33, 0xc7, 0xd3, 0x22, 0x69, 0x58, 0x2a, 0xf9, 0xd1, 0x9b, 0xb9, 0xc2, 0xe7, 0xe3, 0x68, 0x43, 0xf0, 0x08, 0x03, 0xe3, 0x60, 0x4f, 0xf6, 0xff, 0x73, 0x13, 0xf1, 0xff, 0x33, 0xb9, 0xd3, 0xe2, 0x68, 0x10, 0x07, 0xf9, 0xd5, 0x00, 0x2b, 0xb4, 0xd0, 0xa3, 0x68, 0x3b, 0x70, 0x23, 0x69, 0x58, 0x2b, 0x20, 0xd1, 0x00, 0x25, 0xaf, 0xe7, 0xe3, 0x68, 0x43, 0xf0, 0x0c, 0x03, 0xe3, 0x60, 0x4f, 0xf6, 0xff, 0x73, 0x13, 0xf1, 0xff, 0x33, 0xa4, 0xd3, 0xe1, 0x68, 0x09, 0x07, 0xf9, 0xd5, 0x00, 0x2b, 0x9f, 0xd0, 0xa3, 0x68, 0x02, 0xf8, 0x01, 0x3b, 0x4f, 0xf6, 0xff, 0x73, 0x13, 0xf1, 0xff, 0x33, 0x97, 0xd3, 0x21, 0x69, 0x50, 0x29, 0xf9, 0xd1, 0x00, 0x2b, 0xaf, 0xd1, 0x91, 0xe7, 0x6f, 0xf0, 0x0f, 0x05, 0x90, 0xe7, 0x6f, 0xf0, 0x57, 0x05, 0x8d, 0xe7, 0x6f, 0xf0, 0x03, 0x05, 0x8c, 0xe7, 0x00, 0xbf, 0x9c, 0xcc, 0x02, 0x00, 0x2d, 0xe9, 0xf3, 0x41, 0x1c, 0x46, 0x29, 0x4b, 0x15, 0x46, 0x06, 0x46, 0x01, 0x91, 0x5a, 0x68, 0x98, 0x46, 0x00, 0x2a, 0x46, 0xd0, 0xff, 0xf7, 0xd9, 0xfe, 0x01, 0x46, 0x38, 0xb1, 0x4f, 0xf0, 0xff, 0x36, 0xff, 0xf7, 0x19, 0xff, 0x30, 0x46, 0x02, 0xb0, 0xbd, 0xe8, 0xf0, 0x81, 0x30, 0x46, 0xff, 0xf7, 0xec, 0xfe, 0x00, 0x28, 0xf2, 0xd1, 0x02, 0x2d, 0x31, 0xdc, 0x0c, 0xbf, 0x01, 0x25, 0x00, 0x25, 0x01, 0xaf, 0x3d, 0x44, 0x15, 0xf8, 0x01, 0x09, 0xff, 0xf7, 0xa3, 0xfe, 0x06, 0x46, 0x00, 0x28, 0xe4, 0xd1, 0xeb, 0x1b, 0x01, 0x33, 0xf5, 0xd1, 0x08, 0x99, 0x23, 0x46, 0xd8, 0xf8, 0x00, 0x20, 0x60, 0x18, 0x98, 0x42, 0xdc, 0xd0, 0x13, 0xf8, 0x01, 0x1b, 0x91, 0x60, 0xd1, 0x68, 0x41, 0xf0, 0x08, 0x01, 0xd1, 0x60, 0x4f, 0xf6, 0xff, 0x71, 0x11, 0xf1, 0xff, 0x31, 0xce, 0xd3, 0xd4, 0x68, 0x24, 0x07, 0xf9, 0xd5, 0x00, 0x29, 0xc9, 0xd0, 0x4f, 0xf6, 0xff, 0x71, 0x11, 0xf1, 0xff, 0x31, 0xc4, 0xd3, 0x14, 0x69, 0x28, 0x2c, 0xf9, 0xd1, 0x00, 0x29, 0xe2, 0xd1, 0xbe, 0xe7, 0x02, 0x25, 0xce, 0xe7, 0x6f, 0xf0, 0x03, 0x06, 0xbd, 0xe7, 0x00, 0xbf, 0x9c, 0xcc, 0x02, 0x00, 0x70, 0xb5, 0x01, 0x22, 0x33, 0x4d, 0x04, 0x46, 0x2b, 0x68, 0x9a, 0x61, 0x4f, 0xf4, 0x80, 0x32, 0x99, 0x69, 0x09, 0xb1, 0x01, 0x3a, 0xfb, 0xd1, 0x1a, 0x6a, 0x02, 0xf0, 0x30, 0x02, 0x30, 0x2a, 0x2c, 0xd0, 0x05, 0x22, 0x0a, 0x26, 0x1a, 0x62, 0x4f, 0xf4, 0xfa, 0x70, 0xff, 0xf7, 0x7a, 0xf9, 0x2b, 0x68, 0x1a, 0x6a, 0x92, 0x07, 0x1a, 0xd4, 0x1a, 0x6a, 0x4f, 0xf4, 0x7a, 0x70, 0x42, 0xf0, 0x08, 0x02, 0x1a, 0x62, 0x1a, 0x6a, 0x42, 0xf0, 0x02, 0x02, 0x1a, 0x62, 0xff, 0xf7, 0x6a, 0xf9, 0x2b, 0x68, 0x4f, 0xf4, 0x7a, 0x70, 0x1a, 0x6a, 0x22, 0xf0, 0x08, 0x02, 0x1a, 0x62, 0x1a, 0x6a, 0x22, 0xf0, 0x02, 0x02, 0x1a, 0x62, 0xff, 0xf7, 0x5d, 0xf9, 0x01, 0x3e, 0xe0, 0xd1, 0x2b, 0x68, 0x00, 0x22, 0x4f, 0xf4, 0xfa, 0x70, 0x1a, 0x62, 0xff, 0xf7, 0x54, 0xf9, 0x16, 0x4a, 0x84, 0xfb, 0x02, 0x23, 0xe4, 0x17, 0x00, 0x22, 0xc4, 0xeb, 0xa3, 0x14, 0x01, 0x23, 0xb4, 0xf5, 0xc8, 0x7f, 0x21, 0x46, 0xa8, 0xbf, 0x4f, 0xf4, 0xc8, 0x71, 0x64, 0x29, 0xb8, 0xbf, 0x64, 0x21, 0x64, 0x2c, 0xcc, 0xbf, 0x00, 0x24, 0x01, 0x24, 0xa2, 0x42, 0x10, 0xdb, 0x59, 0x43, 0x4f, 0xf4, 0x16, 0x60, 0x2d, 0x68, 0xfe, 0xf7, 0xcf, 0xff, 0x01, 0x38, 0x44, 0xea, 0xc0, 0x04, 0x6c, 0x61, 0xeb, 0x68, 0x43, 0xf0, 0x40, 0x03, 0xeb, 0x60, 0x00, 0x23, 0xeb, 0x61, 0x70, 0xbd, 0x5b, 0x00, 0x01, 0x22, 0xe9, 0xe7, 0x00, 0xbf, 0x9c, 0xcc, 0x02, 0x00, 0xd3, 0x4d, 0x62, 0x10, 0x07, 0x4a, 0x10, 0xb5, 0x92, 0xf8, 0x08, 0x03, 0x48, 0xb1, 0x06, 0x49, 0x0c, 0x68, 0x01, 0x23, 0x01, 0x38, 0x03, 0xfa, 0x00, 0xf0, 0x20, 0x43, 0x08, 0x60, 0x02, 0xf5, 0x42, 0x70, 0x10, 0xbd, 0x00, 0x80, 0x02, 0x00, 0x40, 0x03, 0x00, 0x02, 0x22, 0x4b, 0x2d, 0xe9, 0xf0, 0x41, 0x04, 0x46, 0x0d, 0x46, 0x16, 0x46, 0x02, 0x21, 0x01, 0x22, 0x18, 0x60, 0x98, 0x68, 0xff, 0xf7, 0xf8, 0xfb, 0xa4, 0xf1, 0x14, 0x73, 0xa3, 0xf5, 0x00, 0x53, 0x9b, 0x0a, 0x05, 0x2b, 0x1a, 0xd8, 0x1a, 0x4f, 0x39, 0x68, 0x01, 0x20, 0x03, 0xf1, 0x10, 0x02, 0x00, 0xfa, 0x02, 0xf2, 0x0a, 0x43, 0x3a, 0x60, 0xd7, 0xf8, 0x00, 0x80, 0x00, 0xfa, 0x03, 0xf4, 0x28, 0xea, 0x04, 0x03, 0x3b, 0x60, 0x48, 0xea, 0x04, 0x04, 0xff, 0xf7, 0xfb, 0xf8, 0x3c, 0x60, 0x31, 0x46, 0x28, 0x46, 0xbd, 0xe8, 0xf0, 0x41, 0xff, 0xf7, 0x50, 0xbf, 0x0d, 0x4f, 0x04, 0xf1, 0xf8, 0x24, 0x04, 0xf5, 0x7d, 0x04, 0xa4, 0x0a, 0x3a, 0x68, 0x01, 0x20, 0x04, 0xf1, 0x10, 0x03, 0x00, 0xfa, 0x03, 0xf3, 0x22, 0xea, 0x03, 0x02, 0x3a, 0x60, 0x3a, 0x68, 0x13, 0x43, 0x3b, 0x60, 0xd7, 0xf8, 0x00, 0x80, 0x00, 0xfa, 0x04, 0xf4, 0xda, 0xe7, 0x00, 0xbf, 0x9c, 0xcc, 0x02, 0x00, 0x1c, 0x19, 0x00, 0x02, 0x9c, 0x01, 0x01, 0x07, 0xf8, 0xb5, 0x06, 0x46, 0x0c, 0x4c, 0x0f, 0x46, 0x63, 0x68, 0x93, 0xb9, 0xff, 0xf7, 0x98, 0xff, 0xa0, 0x60, 0x78, 0xb1, 0x80, 0x79, 0x3a, 0x46, 0x31, 0x46, 0x06, 0x28, 0x17, 0xbf, 0x80, 0x02, 0x06, 0x48, 0x00, 0xf1, 0x14, 0x70, 0x00, 0xf5, 0x00, 0x50, 0xff, 0xf7, 0x9d, 0xff, 0x01, 0x23, 0x63, 0x60, 0xf8, 0xbd, 0x60, 0x60, 0xfc, 0xe7, 0x9c, 0xcc, 0x02, 0x00, 0x00, 0x08, 0x02, 0x07, 0x08, 0xb5, 0xff, 0xf7, 0xdd, 0xff, 0x00, 0x20, 0x08, 0xbd, 0x13, 0xb5, 0x01, 0x24, 0x13, 0x46, 0x00, 0x94, 0x22, 0x46, 0xc0, 0xb2, 0xff, 0xf7, 0xff, 0xfd, 0x02, 0xb0, 0x10, 0xbd, 0x1f, 0xb5, 0x04, 0xab, 0x03, 0xf8, 0x01, 0x2d, 0x01, 0x22, 0xc0, 0xb2, 0x00, 0x92, 0xff, 0xf7, 0xa2, 0xfe, 0x05, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x00, 0x00, 0x02, 0x4b, 0x18, 0x68, 0xc0, 0xf3, 0x00, 0x40, 0x70, 0x47, 0x00, 0xbf, 0xf8, 0x01, 0x09, 0x07, 0x70, 0xb5, 0x2f, 0x4e, 0x31, 0x68, 0xc1, 0xf3, 0x00, 0x44, 0x2e, 0x48, 0x22, 0x46, 0xff, 0xf7, 0xfd, 0xfa, 0x00, 0x25, 0x35, 0x60, 0x00, 0x2c, 0x51, 0xd0, 0x28, 0x46, 0x2a, 0x4c, 0xff, 0xf7, 0xfb, 0xfc, 0x2a, 0x4b, 0x20, 0xf0, 0x0f, 0x00, 0x98, 0x42, 0x0d, 0xd1, 0x28, 0x46, 0xff, 0xf7, 0xf3, 0xfc, 0x00, 0xf0, 0x0f, 0x00, 0x60, 0x60, 0x06, 0x20, 0xff, 0xf7, 0xed, 0xfc, 0xa0, 0x60, 0x07, 0x20, 0xff, 0xf7, 0xe9, 0xfc, 0xe0, 0x60, 0x63, 0x68, 0x3b, 0xb3, 0x03, 0x20, 0x00, 0x25, 0xff, 0xf7, 0xe2, 0xfc, 0xa6, 0x68, 0x20, 0x61, 0x1d, 0x48, 0x31, 0x46, 0xff, 0xf7, 0xd6, 0xfa, 0xe2, 0x68, 0x1c, 0x49, 0x1c, 0x48, 0xff, 0xf7, 0xd1, 0xfa, 0xd4, 0xe9, 0x02, 0x32, 0x13, 0x44, 0x9e, 0x42, 0x20, 0xd3, 0x19, 0x48, 0xff, 0xf7, 0xc9, 0xfa, 0x2a, 0x46, 0x21, 0x69, 0x18, 0x48, 0x65, 0x61, 0xff, 0xf7, 0xc3, 0xfa, 0xd4, 0xe9, 0x04, 0x23, 0x9a, 0x42, 0x06, 0xd0, 0x15, 0x48, 0xff, 0xf7, 0xbc, 0xfa, 0x00, 0x20, 0x00, 0xf0, 0x39, 0xf8, 0xfe, 0xe7, 0x12, 0x4c, 0x21, 0x68, 0x12, 0x48, 0xff, 0xf7, 0xb3, 0xfa, 0x14, 0x20, 0xff, 0xf7, 0x2a, 0xf8, 0x20, 0x68, 0xbd, 0xe8, 0x70, 0x40, 0xff, 0xf7, 0x43, 0xb8, 0x56, 0xf8, 0x04, 0x2b, 0x15, 0x44, 0xd8, 0xe7, 0x70, 0xbd, 0xf8, 0x01, 0x09, 0x07, 0x22, 0xc4, 0x02, 0x00, 0xa8, 0xcc, 0x02, 0x00, 0x10, 0x32, 0x54, 0x76, 0x58, 0xc4, 0x02, 0x00, 0xb4, 0xcc, 0x02, 0x00, 0x62, 0xc4, 0x02, 0x00, 0x7d, 0xc4, 0x02, 0x00, 0x8c, 0xc4, 0x02, 0x00, 0xb1, 0xc4, 0x02, 0x00, 0xfc, 0x01, 0x09, 0x07, 0xc5, 0xc4, 0x02, 0x00, 0x70, 0x47, 0x00, 0x00, 0x04, 0x4a, 0x93, 0x69, 0x23, 0xf0, 0x01, 0x03, 0x43, 0xf0, 0xb5, 0x53, 0x43, 0xf4, 0x20, 0x23, 0x93, 0x61, 0x70, 0x47, 0xa0, 0x00, 0x05, 0x02, 0x08, 0xb5, 0xff, 0xf7, 0xf1, 0xff, 0x09, 0x4b, 0x53, 0xf8, 0x20, 0x20, 0x02, 0xb9, 0x01, 0x30, 0x53, 0xf8, 0x20, 0x30, 0x06, 0x4a, 0x42, 0xea, 0x03, 0x12, 0x06, 0x4b, 0x01, 0x21, 0x59, 0x61, 0x9a, 0x61, 0x41, 0xf2, 0xaf, 0x42, 0x1a, 0x61, 0x08, 0xbd, 0x00, 0xbf, 0xd4, 0xbf, 0x02, 0x00, 0x01, 0x00, 0xaa, 0x16, 0xa0, 0x00, 0x05, 0x02, 0xf0, 0xb5, 0x87, 0xb0, 0x02, 0xac, 0x00, 0x23, 0x10, 0x22, 0x20, 0x46, 0x3c, 0x49, 0x01, 0x93, 0xff, 0xf7, 0x2a, 0xf9, 0x3b, 0x4b, 0x1b, 0x68, 0xc3, 0xf3, 0x07, 0x23, 0x0e, 0x3b, 0x01, 0x2b, 0x6b, 0xd9, 0x39, 0x49, 0x08, 0x68, 0x5a, 0x28, 0x1f, 0xd0, 0x38, 0x4b, 0x1a, 0x68, 0x00, 0x2a, 0x63, 0xd1, 0x03, 0xf5, 0x0b, 0x73, 0x1b, 0x68, 0x35, 0x4b, 0x1b, 0x68, 0x9b, 0xb2, 0x00, 0x2b, 0x5b, 0xd0, 0x34, 0x48, 0xb3, 0xf5, 0xb8, 0x4f, 0x45, 0xf2, 0x41, 0x75, 0x08, 0xbf, 0x4f, 0xf4, 0xbc, 0x43, 0x46, 0x88, 0xae, 0x42, 0x04, 0xd1, 0x46, 0x78, 0x06, 0xf0, 0x0f, 0x05, 0x04, 0x2d, 0x05, 0xd9, 0x2d, 0x48, 0xff, 0xf7, 0x54, 0xfa, 0x01, 0x20, 0x07, 0xb0, 0xf0, 0xbd, 0x06, 0xf0, 0xf0, 0x06, 0x50, 0x2e, 0x11, 0xd1, 0x0d, 0xf1, 0x03, 0x06, 0x95, 0x42, 0x12, 0xdc, 0x13, 0xf4, 0x7f, 0x42, 0x38, 0xd0, 0x1c, 0x0a, 0xdb, 0xb2, 0x00, 0x22, 0x01, 0xa8, 0x95, 0x42, 0x1b, 0xdc, 0x22, 0x48, 0xff, 0xf7, 0x3d, 0xfa, 0x03, 0x20, 0xe7, 0xe7, 0x21, 0x48, 0xff, 0xf7, 0x38, 0xfa, 0x02, 0x20, 0xe2, 0xe7, 0x87, 0x18, 0x3f, 0x79, 0x06, 0xf8, 0x01, 0x7f, 0x00, 0x27, 0x96, 0xf8, 0x00, 0xc0, 0x14, 0xf8, 0x07, 0xe0, 0x01, 0x37, 0x10, 0x2f, 0x8c, 0xea, 0x0e, 0x0c, 0x86, 0xf8, 0x00, 0xc0, 0xf4, 0xd1, 0x01, 0x32, 0xd8, 0xe7, 0x16, 0x5c, 0xa6, 0x42, 0x0a, 0xd1, 0x86, 0x18, 0x76, 0x78, 0x9e, 0x42, 0x06, 0xd1, 0x5a, 0x20, 0x08, 0x60, 0x12, 0x4b, 0x45, 0xf2, 0xaa, 0x52, 0x1a, 0x60, 0xc2, 0xe7, 0x02, 0x32, 0xd1, 0xe7, 0x14, 0x5c, 0x9c, 0x42, 0xf3, 0xd0, 0x01, 0x32, 0x95, 0x42, 0xf9, 0xdc, 0xcc, 0xe7, 0x01, 0xa8, 0xfa, 0xe7, 0x5a, 0x20, 0xb5, 0xe7, 0x00, 0xbf, 0x18, 0xc0, 0x02, 0x00, 0xb0, 0x00, 0x00, 0x03, 0xc0, 0xcc, 0x02, 0x00, 0xa0, 0x60, 0x00, 0x03, 0x00, 0x62, 0x00, 0x03, 0xf0, 0x00, 0x02, 0x00, 0xeb, 0xc4, 0x02, 0x00, 0x0d, 0xc5, 0x02, 0x00, 0xfc, 0xc4, 0x02, 0x00, 0x24, 0x03, 0x09, 0x07, 0x80, 0xea, 0x01, 0x20, 0x08, 0x23, 0x48, 0xf2, 0x05, 0x01, 0x42, 0x00, 0x01, 0x3b, 0x9b, 0xb2, 0x00, 0x04, 0x92, 0xb2, 0x4c, 0xbf, 0x82, 0xea, 0x01, 0x00, 0x10, 0x46, 0x00, 0x2b, 0xf4, 0xd1, 0x70, 0x47, 0x38, 0xb5, 0x0d, 0x46, 0x04, 0x46, 0x2c, 0x44, 0xff, 0xf7, 0xe9, 0xff, 0x44, 0xea, 0x00, 0x40, 0x38, 0xbd, 0x00, 0x23, 0x73, 0xb5, 0x01, 0x93, 0x06, 0x46, 0x26, 0x4b, 0x1b, 0x68, 0x9b, 0xb2, 0x01, 0x93, 0x01, 0x9b, 0xb3, 0xf5, 0xbc, 0x4f, 0x35, 0xd0, 0x10, 0xdc, 0xb3, 0xf5, 0xa8, 0x4f, 0x20, 0xd0, 0x03, 0xdc, 0xc3, 0xb3, 0x00, 0x24, 0x01, 0x25, 0x1d, 0xe0, 0xb3, 0xf5, 0xb0, 0x4f, 0x26, 0xd0, 0xb3, 0xf5, 0xb8, 0x4f, 0xf6, 0xd1, 0x01, 0x24, 0x04, 0x25, 0x14, 0xe0, 0xb3, 0xf5, 0xe8, 0x4f, 0x23, 0xd0, 0x05, 0xdc, 0xb3, 0xf5, 0xe0, 0x4f, 0xec, 0xd1, 0x01, 0x24, 0x06, 0x25, 0x0a, 0xe0, 0xb3, 0xf5, 0xf0, 0x4f, 0x1c, 0xd0, 0xb3, 0xf5, 0xf8, 0x4f, 0xe3, 0xd1, 0x01, 0x24, 0x09, 0x25, 0x01, 0xe0, 0x01, 0x24, 0x02, 0x25, 0xff, 0xf7, 0x1d, 0xff, 0x5a, 0x28, 0x16, 0xd1, 0xac, 0xb1, 0x29, 0x46, 0x30, 0x46, 0x02, 0xb0, 0xbd, 0xe8, 0x70, 0x40, 0xff, 0xf7, 0xb8, 0xbf, 0x01, 0x24, 0x03, 0x25, 0xf0, 0xe7, 0x01, 0x24, 0x05, 0x25, 0xed, 0xe7, 0x01, 0x24, 0x07, 0x25, 0xea, 0xe7, 0x01, 0x24, 0x08, 0x25, 0xe7, 0xe7, 0x01, 0x24, 0x25, 0x46, 0xe4, 0xe7, 0x00, 0x20, 0x02, 0xb0, 0x70, 0xbd, 0x00, 0xbf, 0x00, 0x62, 0x00, 0x03, 0x01, 0x20, 0x70, 0x47, 0x07, 0x4b, 0x1b, 0x68, 0x47, 0x2b, 0x01, 0xd1, 0x01, 0xf0, 0x90, 0xbd, 0x05, 0x4b, 0x93, 0xf8, 0x35, 0x00, 0x10, 0xf1, 0xff, 0x30, 0x18, 0xbf, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x00, 0xbf, 0xc4, 0xcc, 0x02, 0x00, 0x00, 0x80, 0x02, 0x00, 0x43, 0x1e, 0x0a, 0x44, 0x10, 0xb5, 0x54, 0x1a, 0x00, 0x2c, 0x00, 0xdc, 0x10, 0xbd, 0x11, 0xf8, 0x01, 0x4b, 0x03, 0xf8, 0x01, 0x4f, 0xf6, 0xe7, 0x43, 0x68, 0x10, 0xb5, 0x02, 0x3b, 0x05, 0x2b, 0x13, 0xd8, 0xdf, 0xe8, 0x03, 0xf0, 0x1f, 0x03, 0x14, 0x12, 0x12, 0x1c, 0x90, 0xf8, 0x34, 0x30, 0x0a, 0x24, 0x5c, 0x43, 0x40, 0xf2, 0xdc, 0x53, 0x08, 0xbf, 0x1c, 0x46, 0x20, 0x46, 0xff, 0xf7, 0xcb, 0xff, 0xb8, 0xb1, 0x0e, 0x48, 0xff, 0xf7, 0x27, 0xf9, 0x00, 0x24, 0x16, 0xe0, 0x90, 0xf8, 0x35, 0x30, 0x0a, 0x24, 0x5c, 0x43, 0x08, 0xbf, 0x4f, 0xf4, 0x96, 0x64, 0xee, 0xe7, 0x90, 0xf8, 0x36, 0x30, 0xf6, 0xe7, 0x90, 0xf8, 0x37, 0x30, 0x0a, 0x24, 0x5c, 0x43, 0x08, 0xbf, 0x4f, 0xf4, 0xe1, 0x64, 0xe3, 0xe7, 0x21, 0x46, 0x03, 0x48, 0xff, 0xf7, 0x0e, 0xf9, 0x20, 0x46, 0x10, 0xbd, 0x1f, 0xc5, 0x02, 0x00, 0x35, 0xc5, 0x02, 0x00, 0x06, 0x4b, 0x4f, 0xf0, 0xff, 0x32, 0x0a, 0x20, 0x1a, 0x60, 0x40, 0xf2, 0xff, 0x12, 0x5a, 0x60, 0x4f, 0xf6, 0xff, 0x72, 0x9a, 0x60, 0xfe, 0xf7, 0x8c, 0xbe, 0x00, 0xbf, 0x20, 0x20, 0x10, 0x03, 0x04, 0x4b, 0x01, 0x22, 0x0a, 0x20, 0x1a, 0x60, 0x00, 0x23, 0x03, 0x4a, 0x13, 0x60, 0x53, 0x60, 0xfe, 0xf7, 0x7f, 0xbe, 0x20, 0x20, 0x10, 0x03, 0x24, 0x20, 0x10, 0x03, 0xf8, 0xb5, 0x04, 0x46, 0xd0, 0xe9, 0x15, 0x32, 0x43, 0x4e, 0x59, 0x02, 0x50, 0x00, 0x01, 0xf4, 0xf0, 0x51, 0x00, 0xf0, 0x1e, 0x00, 0x01, 0x43, 0x40, 0x48, 0x37, 0x46, 0x05, 0x68, 0x0d, 0x43, 0x40, 0xf8, 0x04, 0x5b, 0xb0, 0x42, 0xf9, 0xd1, 0x59, 0x01, 0xd0, 0x08, 0x3c, 0x4e, 0x3d, 0x4d, 0x01, 0xf4, 0xf0, 0x51, 0x00, 0xf0, 0x1e, 0x00, 0x01, 0x43, 0x30, 0x68, 0x08, 0x43, 0x46, 0xf8, 0x04, 0x0b, 0xae, 0x42, 0xf9, 0xd1, 0x38, 0x48, 0xd5, 0x0b, 0xd2, 0x0c, 0x05, 0xf0, 0x1e, 0x05, 0x01, 0x68, 0x02, 0xf0, 0x1e, 0x02, 0x21, 0xf0, 0x80, 0x61, 0x01, 0x60, 0x19, 0x0c, 0xd7, 0xf8, 0x00, 0xc0, 0x1b, 0x0d, 0x4f, 0xea, 0x41, 0x2e, 0x49, 0x06, 0x0e, 0xf4, 0xf0, 0x5e, 0x01, 0xf0, 0xf0, 0x51, 0x45, 0xea, 0x0e, 0x05, 0x45, 0xea, 0x0c, 0x0c, 0xc7, 0xf8, 0x00, 0xc0, 0x2b, 0x4f, 0xd7, 0xf8, 0x00, 0xc0, 0x45, 0xea, 0x0c, 0x05, 0x3d, 0x60, 0x5f, 0x02, 0x35, 0x68, 0x5b, 0x06, 0x07, 0xf4, 0xf0, 0x57, 0x3a, 0x43, 0x03, 0xf0, 0xf0, 0x53, 0x15, 0x43, 0x35, 0x60, 0x24, 0x4d, 0x2e, 0x68, 0x32, 0x43, 0x2a, 0x60, 0x23, 0x4a, 0x15, 0x68, 0x29, 0x43, 0x11, 0x60, 0xd2, 0xf8, 0x80, 0x10, 0x0b, 0x43, 0xc2, 0xf8, 0x80, 0x30, 0x03, 0x68, 0x43, 0xf0, 0x80, 0x63, 0x03, 0x60, 0x01, 0x20, 0xfe, 0xf7, 0x18, 0xfe, 0x23, 0x6d, 0x1b, 0x4a, 0x1c, 0x4c, 0x19, 0x01, 0x01, 0xf4, 0x70, 0x61, 0x10, 0x68, 0x08, 0x43, 0x42, 0xf8, 0x04, 0x0b, 0xa2, 0x42, 0xf9, 0xd1, 0x18, 0x4a, 0x15, 0x4c, 0x10, 0x68, 0x08, 0x43, 0x42, 0xf8, 0x04, 0x0b, 0xa2, 0x42, 0xf9, 0xd1, 0x15, 0x49, 0x1a, 0x02, 0x02, 0xf4, 0x70, 0x62, 0x08, 0x68, 0x02, 0x43, 0x0a, 0x60, 0x03, 0xf4, 0x70, 0x62, 0x48, 0x68, 0x1b, 0x09, 0x03, 0xf4, 0x70, 0x63, 0x02, 0x43, 0x4a, 0x60, 0x0e, 0x4a, 0x11, 0x68, 0x0b, 0x43, 0x13, 0x60, 0xf8, 0xbd, 0x00, 0xbf, 0x34, 0x33, 0x10, 0x03, 0x10, 0x33, 0x10, 0x03, 0x90, 0x33, 0x10, 0x03, 0xb4, 0x33, 0x10, 0x03, 0x00, 0x31, 0x10, 0x03, 0x38, 0x33, 0x10, 0x03, 0xb8, 0x33, 0x10, 0x03, 0x3c, 0x33, 0x10, 0x03, 0x40, 0x32, 0x10, 0x03, 0x7c, 0x32, 0x10, 0x03, 0x28, 0x32, 0x10, 0x03, 0x18, 0x32, 0x10, 0x03, 0x80, 0x32, 0x10, 0x03, 0x0c, 0x49, 0x03, 0x68, 0x0a, 0x68, 0x5b, 0x08, 0x22, 0xf4, 0x7f, 0x62, 0x22, 0xf0, 0x0f, 0x02, 0x01, 0x3b, 0x13, 0x43, 0x08, 0x4a, 0x0b, 0x60, 0x13, 0x68, 0x23, 0xf0, 0x0c, 0x03, 0x43, 0xf0, 0x08, 0x03, 0x13, 0x60, 0x13, 0x69, 0x23, 0xf0, 0x0c, 0x03, 0x43, 0xf0, 0x08, 0x03, 0x13, 0x61, 0x70, 0x47, 0x00, 0xbf, 0x0c, 0x20, 0x10, 0x03, 0xc0, 0x22, 0x10, 0x03, 0x10, 0xb5, 0x01, 0xfb, 0x00, 0xf4, 0x4f, 0xf4, 0x7a, 0x71, 0x20, 0x46, 0xfe, 0xf7, 0x22, 0xfc, 0x03, 0x4a, 0xa4, 0xfb, 0x02, 0x23, 0x98, 0x09, 0x00, 0x29, 0x18, 0xbf, 0x01, 0x30, 0x10, 0xbd, 0xd3, 0x4d, 0x62, 0x10, 0xc3, 0x6d, 0x2d, 0xe9, 0xf0, 0x4f, 0x9b, 0xb0, 0xd0, 0xf8, 0x00, 0x90, 0x04, 0x46, 0x99, 0x07, 0x06, 0x93, 0x46, 0x68, 0x4f, 0xea, 0x59, 0x08, 0x36, 0xd5, 0x83, 0x6a, 0xc3, 0xf3, 0x42, 0x52, 0x18, 0x92, 0xc3, 0xf3, 0xc5, 0x32, 0x04, 0x92, 0xc3, 0xf3, 0xc3, 0x22, 0x02, 0x92, 0xc3, 0xf3, 0x84, 0x12, 0x03, 0xf0, 0x3f, 0x03, 0x00, 0x92, 0x03, 0x93, 0xc3, 0x6a, 0x00, 0x6b, 0xc3, 0xf3, 0xc4, 0x52, 0xc3, 0xf3, 0x02, 0x55, 0x01, 0x92, 0xc3, 0xf3, 0xc3, 0x27, 0xc3, 0xf3, 0xc4, 0x32, 0xc3, 0xf3, 0x84, 0x1a, 0xc0, 0xf3, 0x0b, 0x0b, 0x03, 0xf0, 0x3f, 0x03, 0x05, 0x93, 0xc0, 0xf3, 0x08, 0x33, 0x16, 0x92, 0x0a, 0x93, 0x63, 0x6a, 0x22, 0x68, 0x17, 0x93, 0xe3, 0x69, 0x15, 0x93, 0xb3, 0x1e, 0x05, 0x2b, 0x00, 0xf2, 0x66, 0x83, 0xdf, 0xe8, 0x13, 0xf0, 0x8c, 0x01, 0x6e, 0x02, 0x64, 0x03, 0x64, 0x03, 0xc4, 0x02, 0x12, 0x03, 0x03, 0x2e, 0x40, 0xf0, 0x82, 0x80, 0x41, 0x46, 0x08, 0x20, 0xff, 0xf7, 0xa3, 0xff, 0x41, 0x46, 0x05, 0x46, 0x0f, 0x20, 0xff, 0xf7, 0x9e, 0xff, 0x41, 0x46, 0x00, 0x90, 0x41, 0xf6, 0x78, 0x60, 0xff, 0xf7, 0x98, 0xff, 0x10, 0xf0, 0x1f, 0x03, 0x41, 0x46, 0x18, 0xbf, 0x01, 0x23, 0x03, 0xeb, 0x50, 0x1b, 0x4f, 0xf4, 0xaf, 0x70, 0xff, 0xf7, 0x8d, 0xff, 0x00, 0x9f, 0x02, 0x2d, 0x38, 0xbf, 0x02, 0x25, 0x0a, 0x90, 0x41, 0x46, 0x02, 0x2f, 0x38, 0xbf, 0x02, 0x27, 0xb9, 0xf5, 0x48, 0x7f, 0x3d, 0xd8, 0x32, 0x20, 0xff, 0xf7, 0x7e, 0xff, 0x41, 0x46, 0x04, 0x90, 0x0a, 0x20, 0xff, 0xf7, 0x79, 0xff, 0x02, 0x28, 0x41, 0x46, 0x38, 0xbf, 0x02, 0x20, 0x02, 0x90, 0x35, 0x20, 0xff, 0xf7, 0x71, 0xff, 0x41, 0x46, 0x03, 0x90, 0x26, 0x20, 0xff, 0xf7, 0x6c, 0xff, 0x01, 0x95, 0x05, 0x90, 0xdd, 0xf8, 0x00, 0xa0, 0x00, 0x9a, 0x03, 0x9b, 0x43, 0xf4, 0x80, 0x03, 0x43, 0xea, 0x82, 0x13, 0x02, 0x9a, 0x43, 0xea, 0xc2, 0x23, 0x04, 0x9a, 0x43, 0xea, 0xc2, 0x33, 0x05, 0x9a, 0xa3, 0x62, 0xfb, 0x02, 0x43, 0xea, 0x8a, 0x13, 0x13, 0x43, 0x01, 0x9a, 0x43, 0xea, 0xc5, 0x33, 0x43, 0xea, 0x05, 0x53, 0x43, 0xea, 0xc2, 0x53, 0xe3, 0x62, 0xa3, 0x6b, 0xc3, 0xf3, 0x03, 0x33, 0x01, 0x2b, 0x00, 0xf0, 0x0d, 0x81, 0x02, 0x2b, 0x00, 0xf0, 0x17, 0x81, 0x8d, 0x48, 0x0a, 0xe1, 0x23, 0x20, 0xff, 0xf7, 0x40, 0xff, 0x41, 0x46, 0x04, 0x90, 0x06, 0x20, 0xff, 0xf7, 0x3b, 0xff, 0x02, 0x28, 0x41, 0x46, 0x38, 0xbf, 0x02, 0x20, 0x02, 0x90, 0x0e, 0x20, 0xff, 0xf7, 0x33, 0xff, 0x41, 0x46, 0x00, 0x90, 0x30, 0x20, 0xff, 0xf7, 0x2e, 0xff, 0x41, 0x46, 0x03, 0x90, 0x22, 0x20, 0xff, 0xf7, 0x29, 0xff, 0x02, 0x9b, 0x05, 0x90, 0x01, 0x93, 0xba, 0xe7, 0x02, 0x2e, 0x36, 0xd1, 0x41, 0x46, 0x32, 0x20, 0xff, 0xf7, 0x1f, 0xff, 0x41, 0x46, 0x04, 0x90, 0x0a, 0x20, 0xff, 0xf7, 0x1a, 0xff, 0x41, 0x46, 0x02, 0x90, 0x14, 0x20, 0xff, 0xf7, 0x15, 0xff, 0x41, 0x46, 0x00, 0x90, 0x41, 0x20, 0xff, 0xf7, 0x10, 0xff, 0x41, 0x46, 0x03, 0x90, 0x08, 0x20, 0xff, 0xf7, 0x0b, 0xff, 0x41, 0x46, 0x05, 0x46, 0x0f, 0x20, 0xff, 0xf7, 0x06, 0xff, 0x41, 0x46, 0x82, 0x46, 0x2d, 0x20, 0x57, 0x46, 0xff, 0xf7, 0x00, 0xff, 0x41, 0x46, 0x05, 0x90, 0x41, 0xf6, 0x78, 0x60, 0xff, 0xf7, 0xfa, 0xfe, 0x10, 0xf0, 0x1f, 0x03, 0x41, 0x46, 0x18, 0xbf, 0x01, 0x23, 0x03, 0xeb, 0x50, 0x1b, 0x4f, 0xf4, 0xa4, 0x70, 0xff, 0xf7, 0xef, 0xfe, 0x01, 0x96, 0x0a, 0x90, 0x83, 0xe7, 0x06, 0x2e, 0x4e, 0xd1, 0x41, 0x46, 0x32, 0x20, 0xff, 0xf7, 0xe6, 0xfe, 0x04, 0x28, 0x41, 0x46, 0x38, 0xbf, 0x04, 0x20, 0x04, 0x90, 0x0a, 0x20, 0xff, 0xf7, 0xde, 0xfe, 0x03, 0x46, 0x41, 0x46, 0x00, 0x28, 0x08, 0xbf, 0x01, 0x23, 0x18, 0x20, 0x02, 0x93, 0xff, 0xf7, 0xd5, 0xfe, 0x02, 0x28, 0x41, 0x46, 0x38, 0xbf, 0x02, 0x20, 0x00, 0x90, 0x46, 0x20, 0xff, 0xf7, 0xcd, 0xfe, 0x41, 0x46, 0x03, 0x90, 0x08, 0x20, 0xff, 0xf7, 0xc8, 0xfe, 0x01, 0x90, 0x30, 0xb3, 0x02, 0x28, 0x05, 0x46, 0x38, 0xbf, 0x02, 0x25, 0x41, 0x46, 0x0f, 0x20, 0xff, 0xf7, 0xbe, 0xfe, 0x02, 0x28, 0x41, 0x46, 0x38, 0xbf, 0x02, 0x20, 0x07, 0x46, 0x11, 0x20, 0xff, 0xf7, 0xb6, 0xfe, 0x41, 0x46, 0x82, 0x46, 0x2a, 0x20, 0xff, 0xf7, 0xb1, 0xfe, 0x41, 0x46, 0x05, 0x90, 0x40, 0xf6, 0x3c, 0x70, 0xff, 0xf7, 0xab, 0xfe, 0x10, 0xf0, 0x1f, 0x03, 0x41, 0x46, 0x18, 0xbf, 0x01, 0x23, 0x03, 0xeb, 0x50, 0x1b, 0xd2, 0x20, 0xff, 0xf7, 0xa1, 0xfe, 0x0a, 0x90, 0x36, 0xe7, 0x01, 0x23, 0x02, 0x25, 0x01, 0x93, 0xd8, 0xe7, 0x07, 0x2e, 0x49, 0xd1, 0x41, 0x46, 0x32, 0x20, 0xff, 0xf7, 0x95, 0xfe, 0x04, 0x28, 0x41, 0x46, 0x38, 0xbf, 0x04, 0x20, 0x04, 0x90, 0x0a, 0x20, 0xff, 0xf7, 0x8d, 0xfe, 0x03, 0x46, 0x41, 0x46, 0x00, 0x28, 0x08, 0xbf, 0x01, 0x23, 0x18, 0x20, 0x02, 0x93, 0xff, 0xf7, 0x84, 0xfe, 0x02, 0x28, 0x41, 0x46, 0x38, 0xbf, 0x02, 0x20, 0x00, 0x90, 0x46, 0x20, 0xff, 0xf7, 0x7c, 0xfe, 0x41, 0x46, 0x03, 0x90, 0x08, 0x20, 0xff, 0xf7, 0x77, 0xfe, 0x02, 0x28, 0x41, 0x46, 0x38, 0xbf, 0x02, 0x20, 0x05, 0x46, 0x0f, 0x20, 0xff, 0xf7, 0x6f, 0xfe, 0x02, 0x28, 0x41, 0x46, 0x38, 0xbf, 0x02, 0x20, 0x07, 0x46, 0x11, 0x20, 0xff, 0xf7, 0x67, 0xfe, 0x41, 0x46, 0x82, 0x46, 0x2a, 0x20, 0xff, 0xf7, 0x62, 0xfe, 0x41, 0x46, 0x05, 0x90, 0x40, 0xf6, 0x3c, 0x70, 0xff, 0xf7, 0x5c, 0xfe, 0x10, 0xf0, 0x1f, 0x03, 0x41, 0x46, 0x18, 0xbf, 0x01, 0x23, 0x03, 0xeb, 0x50, 0x1b, 0xd2, 0x20, 0xff, 0xf7, 0x52, 0xfe, 0x01, 0x95, 0x0a, 0x90, 0xe6, 0xe6, 0x80, 0x23, 0x0e, 0x22, 0x0a, 0x93, 0x0a, 0x23, 0x01, 0x93, 0x10, 0x23, 0x03, 0x25, 0x4f, 0xf0, 0x06, 0x0a, 0xcd, 0xe9, 0x04, 0x32, 0x14, 0x23, 0x4f, 0xf0, 0x62, 0x0b, 0x08, 0x27, 0x03, 0x93, 0xcd, 0xf8, 0x00, 0xa0, 0x02, 0x95, 0xd2, 0xe6, 0x09, 0x48, 0x4f, 0xea, 0x5b, 0x0b, 0xfe, 0xf7, 0x5c, 0xfe, 0x0a, 0x9b, 0x16, 0x95, 0x4b, 0xea, 0x03, 0x33, 0x23, 0x63, 0x02, 0x23, 0x18, 0x93, 0x72, 0xe6, 0x4f, 0xea, 0x9b, 0x0b, 0x02, 0x48, 0xf1, 0xe7, 0x67, 0xc5, 0x02, 0x00, 0x4c, 0xc5, 0x02, 0x00, 0x59, 0xc5, 0x02, 0x00, 0xb4, 0x48, 0xb8, 0xf1, 0xcc, 0x0f, 0x88, 0xbf, 0xb0, 0x46, 0xb4, 0x46, 0x4f, 0xf0, 0x03, 0x06, 0x98, 0xbf, 0x4f, 0xf0, 0x01, 0x08, 0xb6, 0x46, 0xa9, 0xfb, 0x00, 0x01, 0x4f, 0xf4, 0xfa, 0x70, 0x00, 0xfb, 0x02, 0xf0, 0x4f, 0xea, 0x11, 0x13, 0x40, 0xf6, 0x73, 0x61, 0x13, 0x93, 0x8c, 0xbf, 0x04, 0x23, 0x03, 0x23, 0x08, 0x93, 0x40, 0xf6, 0x63, 0x23, 0x88, 0xbf, 0x0b, 0x46, 0x10, 0x93, 0x4f, 0xf4, 0xc8, 0x73, 0x53, 0x43, 0x01, 0x33, 0x0c, 0x93, 0xa3, 0x4b, 0xa0, 0xfb, 0x03, 0x01, 0x04, 0x20, 0x81, 0x46, 0x8b, 0x09, 0x05, 0x21, 0x01, 0x33, 0x0d, 0x93, 0xc8, 0x23, 0x53, 0x43, 0x01, 0x33, 0x0e, 0x93, 0x53, 0x1c, 0x0f, 0x93, 0x7b, 0x1d, 0x12, 0x93, 0x6b, 0x1d, 0x14, 0x93, 0x01, 0x25, 0x15, 0x9b, 0x0b, 0x95, 0x06, 0x93, 0x0c, 0x23, 0x09, 0x93, 0x00, 0x23, 0x07, 0x93, 0x11, 0x93, 0x08, 0x9d, 0x02, 0x35, 0x19, 0x95, 0x16, 0x9d, 0x55, 0x44, 0x2f, 0x46, 0x19, 0x9d, 0xaf, 0x42, 0x3f, 0xbf, 0x08, 0x9f, 0xca, 0xf1, 0x02, 0x05, 0xed, 0x19, 0x16, 0x95, 0x65, 0x8b, 0x0d, 0xb9, 0x10, 0x9d, 0xa5, 0x61, 0x15, 0x9d, 0x67, 0x8c, 0x2d, 0x0c, 0x04, 0xbf, 0x06, 0x9d, 0xe5, 0x61, 0x0f, 0xb9, 0x11, 0x9d, 0x25, 0x62, 0x17, 0x9d, 0x4f, 0xea, 0x0c, 0x3c, 0x27, 0x8b, 0x4c, 0xea, 0x03, 0x4c, 0x09, 0x9b, 0x2d, 0x0c, 0x08, 0xbf, 0x07, 0x9d, 0x4c, 0xea, 0x03, 0x03, 0x08, 0xbf, 0x65, 0x62, 0xb2, 0xf5, 0x48, 0x7f, 0x80, 0x4d, 0x81, 0x4a, 0x2f, 0x60, 0xa7, 0x8b, 0x6f, 0x60, 0x27, 0x8c, 0xaf, 0x60, 0xa7, 0x8c, 0xe4, 0x68, 0xef, 0x60, 0xc4, 0xf3, 0x01, 0x14, 0x45, 0xf8, 0x04, 0x4c, 0xdd, 0xe9, 0x04, 0x54, 0x44, 0xea, 0x05, 0x47, 0x12, 0x9c, 0x01, 0x9d, 0x47, 0xea, 0x04, 0x67, 0x13, 0x9c, 0x47, 0xea, 0x04, 0x27, 0x76, 0x4c, 0x27, 0x60, 0x03, 0x9c, 0x44, 0xea, 0x05, 0x44, 0x16, 0x9d, 0x44, 0xea, 0x05, 0x24, 0x73, 0x4d, 0x2c, 0x60, 0x08, 0x9c, 0x4f, 0xea, 0x04, 0x45, 0x14, 0x9c, 0x45, 0xea, 0x0e, 0x6e, 0x4e, 0xea, 0x04, 0x05, 0x6f, 0x4c, 0x45, 0xea, 0x09, 0x25, 0x25, 0x60, 0x63, 0x60, 0x18, 0x9b, 0x00, 0x9c, 0x4f, 0xea, 0x03, 0x43, 0x43, 0xea, 0x04, 0x63, 0x02, 0x9c, 0x43, 0xea, 0x0a, 0x03, 0x43, 0xea, 0x04, 0x23, 0x68, 0x4c, 0x23, 0x60, 0x4f, 0xea, 0x01, 0x43, 0x43, 0xea, 0x01, 0x61, 0x66, 0x4b, 0x46, 0xea, 0x01, 0x06, 0x65, 0x49, 0x46, 0xea, 0x00, 0x20, 0x18, 0x60, 0x64, 0x4b, 0x08, 0x68, 0x03, 0xea, 0x00, 0x03, 0x62, 0x48, 0x43, 0xf0, 0x70, 0x43, 0x94, 0xbf, 0x43, 0xf4, 0xcc, 0x43, 0x43, 0xf4, 0xec, 0x43, 0x43, 0xf0, 0x10, 0x03, 0x0b, 0x60, 0x00, 0xea, 0xcb, 0x30, 0x0b, 0x9b, 0x43, 0xf0, 0x00, 0x73, 0x43, 0xf4, 0x80, 0x73, 0x43, 0xea, 0x08, 0x43, 0x13, 0x60, 0xdd, 0xe9, 0x0c, 0x32, 0x43, 0xea, 0x02, 0x53, 0x57, 0x4a, 0x13, 0x60, 0xdd, 0xe9, 0x0e, 0x32, 0x43, 0xea, 0x02, 0x53, 0x55, 0x4a, 0x13, 0x60, 0x0a, 0x9b, 0x43, 0xea, 0x0b, 0x43, 0xd3, 0x63, 0x53, 0x4b, 0x18, 0x60, 0x1b, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x43, 0x48, 0xb2, 0xf5, 0x48, 0x7f, 0x8c, 0xbf, 0x4f, 0xf0, 0x05, 0x08, 0x4f, 0xf0, 0x04, 0x08, 0x07, 0xf1, 0x02, 0x07, 0x05, 0xf1, 0x02, 0x05, 0xc6, 0x46, 0xa9, 0xfb, 0x00, 0x01, 0x4f, 0xf4, 0xb4, 0x70, 0x00, 0xfb, 0x02, 0xf0, 0x4f, 0xea, 0x11, 0x13, 0x41, 0xf6, 0x14, 0x61, 0x13, 0x93, 0x8c, 0xbf, 0x07, 0x23, 0x06, 0x23, 0x08, 0x93, 0x8c, 0xbf, 0x33, 0x46, 0x02, 0x23, 0x0b, 0x93, 0x8c, 0xbf, 0x20, 0x23, 0x18, 0x23, 0x11, 0x93, 0x41, 0xf6, 0x70, 0x43, 0x88, 0xbf, 0x0b, 0x46, 0x10, 0x93, 0x4f, 0xf4, 0xfa, 0x73, 0x53, 0x43, 0x01, 0x33, 0x0c, 0x93, 0x2d, 0x4b, 0xa0, 0xfb, 0x03, 0x01, 0x04, 0x20, 0x8b, 0x09, 0x05, 0x21, 0x01, 0x33, 0x0d, 0x93, 0xc8, 0x23, 0x53, 0x43, 0x01, 0x33, 0x0e, 0x93, 0x53, 0x1c, 0x0f, 0x93, 0x07, 0xeb, 0x08, 0x03, 0x12, 0x93, 0x05, 0xeb, 0x08, 0x03, 0x14, 0x93, 0x06, 0x9b, 0xc3, 0xf3, 0x81, 0x03, 0x01, 0x2b, 0x15, 0x9b, 0x06, 0x93, 0x00, 0xf0, 0xc8, 0x80, 0xb2, 0xf5, 0x64, 0x7f, 0x40, 0xf2, 0xc4, 0x80, 0x4f, 0xf0, 0x06, 0x09, 0x0c, 0x23, 0x84, 0x46, 0x09, 0x93, 0x00, 0x23, 0x07, 0x93, 0x08, 0xe7, 0x18, 0x48, 0x11, 0x96, 0x02, 0x26, 0xb6, 0x46, 0xa9, 0xfb, 0x00, 0x01, 0x64, 0x20, 0x4f, 0xf0, 0x0a, 0x09, 0x50, 0x43, 0x4b, 0x09, 0x13, 0x93, 0xc8, 0x23, 0x53, 0x43, 0x01, 0x33, 0x0c, 0x93, 0x11, 0x4b, 0xa0, 0xfb, 0x03, 0x01, 0x8b, 0x09, 0x05, 0x21, 0x08, 0x46, 0x09, 0x91, 0x01, 0x33, 0x8c, 0x46, 0x0d, 0x93, 0x0b, 0x23, 0x53, 0x43, 0x01, 0x33, 0x0e, 0x93, 0x53, 0x1c, 0x0f, 0x93, 0x7b, 0x1d, 0x12, 0x93, 0x6b, 0x1d, 0x14, 0x93, 0x04, 0x27, 0x17, 0x9b, 0x08, 0x97, 0x01, 0x27, 0x0b, 0x97, 0x07, 0x93, 0x03, 0x23, 0x98, 0x46, 0xc3, 0x25, 0x06, 0x95, 0x00, 0x25, 0x10, 0x95, 0xd7, 0xe6, 0x00, 0xbf, 0x89, 0x88, 0x88, 0x88, 0xd3, 0x4d, 0x62, 0x10, 0x30, 0x30, 0x10, 0x03, 0x80, 0x30, 0x10, 0x03, 0x58, 0x30, 0x10, 0x03, 0x5c, 0x30, 0x10, 0x03, 0x60, 0x30, 0x10, 0x03, 0x68, 0x30, 0x10, 0x03, 0x6c, 0x30, 0x10, 0x03, 0x78, 0x30, 0x10, 0x03, 0x00, 0x00, 0xff, 0x0f, 0x50, 0x30, 0x10, 0x03, 0x54, 0x30, 0x10, 0x03, 0x94, 0x30, 0x10, 0x03, 0x37, 0x48, 0xb2, 0xf5, 0x48, 0x7f, 0x8c, 0xbf, 0x4f, 0xf0, 0x04, 0x0e, 0x4f, 0xf0, 0x03, 0x0e, 0x07, 0xf1, 0x05, 0x07, 0x05, 0xf1, 0x05, 0x05, 0x8c, 0xbf, 0x4f, 0xf0, 0x06, 0x08, 0x4f, 0xf0, 0x05, 0x08, 0xa9, 0xfb, 0x00, 0x01, 0x4f, 0xf0, 0x64, 0x00, 0x4f, 0xf0, 0x0d, 0x09, 0x00, 0xfb, 0x02, 0xf0, 0x4f, 0xea, 0x51, 0x13, 0x13, 0x93, 0x8c, 0xbf, 0x03, 0x23, 0x02, 0x23, 0x0b, 0x93, 0x8c, 0xbf, 0x0c, 0x23, 0x0a, 0x23, 0x11, 0x93, 0x4f, 0xf0, 0xc8, 0x03, 0x03, 0xfb, 0x02, 0xf3, 0x03, 0xf1, 0x01, 0x03, 0x0c, 0x93, 0x23, 0x4b, 0xa0, 0xfb, 0x03, 0x01, 0x4f, 0xea, 0x91, 0x13, 0x4f, 0xf0, 0x05, 0x01, 0x08, 0x46, 0x03, 0xf1, 0x01, 0x03, 0x8c, 0x46, 0x0d, 0x93, 0x4f, 0xf0, 0x0b, 0x03, 0x03, 0xfb, 0x02, 0xf3, 0x03, 0xf1, 0x01, 0x03, 0x0e, 0x93, 0x02, 0xf1, 0x01, 0x03, 0x0f, 0x93, 0x07, 0xeb, 0x0e, 0x03, 0x12, 0x93, 0x05, 0xeb, 0x0e, 0x03, 0x14, 0x93, 0x8c, 0xbf, 0x33, 0x46, 0x06, 0x23, 0x03, 0x26, 0x08, 0x93, 0x17, 0x9b, 0x07, 0x93, 0x0c, 0x23, 0x09, 0x93, 0x0b, 0x46, 0x8b, 0xe7, 0x1b, 0x23, 0x08, 0x25, 0xcd, 0xe9, 0x13, 0x35, 0x0c, 0x23, 0x12, 0x93, 0x06, 0x23, 0x03, 0x20, 0x01, 0x25, 0x04, 0x21, 0x02, 0x26, 0x09, 0x93, 0x00, 0x23, 0x89, 0x46, 0xb4, 0x46, 0x86, 0x46, 0x08, 0x90, 0x0b, 0x95, 0xa8, 0x46, 0x07, 0x93, 0x11, 0x93, 0x06, 0x93, 0xcd, 0xe9, 0x0f, 0x33, 0xcd, 0xe9, 0x0d, 0x33, 0x0c, 0x93, 0x4c, 0xe6, 0x89, 0x46, 0x3b, 0xe7, 0x89, 0x88, 0x88, 0x88, 0xd3, 0x4d, 0x62, 0x10, 0x0b, 0x68, 0x10, 0xb5, 0x0c, 0x46, 0x9b, 0x07, 0x42, 0xbf, 0x13, 0x68, 0x43, 0xf4, 0x00, 0x23, 0x13, 0x60, 0xc3, 0x6d, 0xc3, 0xf3, 0x02, 0x53, 0x01, 0x3b, 0x04, 0x2b, 0x15, 0xd8, 0xdf, 0xe8, 0x03, 0xf0, 0x03, 0x0e, 0x10, 0x14, 0x12, 0x00, 0x09, 0x4b, 0x13, 0x60, 0x14, 0x20, 0xfe, 0xf7, 0xc8, 0xf9, 0x23, 0x68, 0x00, 0x20, 0x43, 0xf0, 0x80, 0x73, 0x23, 0x60, 0x10, 0xbd, 0x05, 0x4b, 0xf3, 0xe7, 0x05, 0x4b, 0xf1, 0xe7, 0x05, 0x4b, 0xef, 0xe7, 0x05, 0x4b, 0xed, 0xe7, 0x00, 0xbf, 0xcc, 0xcc, 0x86, 0xe4, 0x99, 0x99, 0x06, 0xe9, 0x66, 0x66, 0x86, 0xed, 0x00, 0x00, 0x86, 0xf5, 0x33, 0x33, 0x06, 0xf2, 0x70, 0xb5, 0x0e, 0x46, 0xc9, 0x6d, 0x1d, 0x4c, 0xc1, 0xf3, 0x80, 0x13, 0x83, 0x42, 0x1c, 0x4b, 0x0c, 0xbf, 0x32, 0x68, 0xf2, 0x6c, 0x52, 0x00, 0xa2, 0xfb, 0x03, 0x23, 0x22, 0x68, 0x1d, 0x09, 0x18, 0x4b, 0x13, 0x40, 0x6a, 0x1e, 0x43, 0xf0, 0x40, 0x43, 0x43, 0xea, 0x02, 0x23, 0x0a, 0x02, 0x23, 0x60, 0x04, 0xd5, 0x14, 0x4a, 0x21, 0x46, 0x30, 0x46, 0xff, 0xf7, 0xaf, 0xff, 0x23, 0x68, 0x23, 0xf0, 0x00, 0x53, 0x23, 0x60, 0x23, 0x68, 0x43, 0xf0, 0x00, 0x53, 0x23, 0x60, 0x0b, 0x4c, 0x23, 0x68, 0xdb, 0x00, 0xfc, 0xd5, 0x14, 0x20, 0xfe, 0xf7, 0x81, 0xf9, 0x23, 0x68, 0x18, 0x20, 0x0a, 0x4a, 0x68, 0x43, 0x43, 0xf0, 0x00, 0x63, 0x23, 0x60, 0x13, 0x68, 0x23, 0xf0, 0x03, 0x23, 0x23, 0xf0, 0x1f, 0x03, 0x43, 0xf0, 0x00, 0x43, 0x13, 0x60, 0x70, 0xbd, 0x10, 0x10, 0x00, 0x02, 0xab, 0xaa, 0xaa, 0xaa, 0xfc, 0x00, 0xf8, 0xff, 0x10, 0x11, 0x00, 0x02, 0x00, 0x18, 0x00, 0x02, 0xf8, 0xb5, 0x07, 0x46, 0x22, 0x4e, 0x0a, 0x20, 0x22, 0x4d, 0x33, 0x68, 0x22, 0x4c, 0x23, 0xf0, 0x80, 0x43, 0x33, 0x60, 0x2b, 0x68, 0x23, 0xf0, 0x01, 0x03, 0x2b, 0x60, 0x2b, 0x68, 0x23, 0xf4, 0x80, 0x33, 0x2b, 0x60, 0x23, 0x68, 0x23, 0xf0, 0x00, 0x43, 0x23, 0x60, 0x23, 0x68, 0x43, 0xf0, 0x00, 0x63, 0x23, 0x60, 0xfe, 0xf7, 0x4b, 0xf9, 0x39, 0x46, 0x00, 0x20, 0xff, 0xf7, 0x98, 0xff, 0x40, 0x08, 0x38, 0x60, 0x64, 0x20, 0xfe, 0xf7, 0x42, 0xf9, 0xff, 0xf7, 0xb7, 0xfa, 0x2b, 0x68, 0x05, 0x20, 0x43, 0xf4, 0x80, 0x33, 0x2b, 0x60, 0x33, 0x68, 0x43, 0xf0, 0x80, 0x43, 0x33, 0x60, 0x2b, 0x68, 0x43, 0xf0, 0x01, 0x03, 0x2b, 0x60, 0x23, 0x68, 0x43, 0xf0, 0x00, 0x43, 0x23, 0x60, 0x23, 0x68, 0x43, 0xf0, 0x00, 0x63, 0x23, 0x60, 0xfe, 0xf7, 0x29, 0xf9, 0x07, 0x4b, 0x4f, 0xf4, 0x00, 0x42, 0x0a, 0x20, 0x1a, 0x60, 0xfe, 0xf7, 0x22, 0xf9, 0x00, 0x20, 0xf8, 0xbd, 0x00, 0xbf, 0x40, 0x15, 0x00, 0x02, 0x0c, 0x18, 0x00, 0x02, 0x00, 0x18, 0x00, 0x02, 0x0c, 0x30, 0x10, 0x03, 0x4e, 0x4a, 0x2d, 0xe9, 0xf0, 0x41, 0x4e, 0x4c, 0x13, 0x68, 0x45, 0x68, 0x41, 0x69, 0x23, 0xf4, 0x7c, 0x53, 0x43, 0xf4, 0x00, 0x53, 0x13, 0x60, 0x2a, 0x04, 0x23, 0x68, 0x11, 0xf0, 0x01, 0x07, 0x02, 0xf4, 0xe0, 0x22, 0xa5, 0xf1, 0x06, 0x05, 0x23, 0xf4, 0x7f, 0x03, 0x23, 0xf4, 0x70, 0x43, 0x43, 0xf4, 0x80, 0x03, 0x42, 0xea, 0x03, 0x02, 0x14, 0xbf, 0x00, 0x23, 0x4f, 0xf4, 0x80, 0x53, 0x01, 0x2d, 0x43, 0xea, 0x02, 0x03, 0x89, 0xbf, 0xc2, 0x6d, 0x43, 0xf4, 0x00, 0x23, 0x92, 0x03, 0x02, 0xf4, 0x00, 0x22, 0x88, 0xbf, 0x13, 0x43, 0x23, 0x60, 0xcb, 0x05, 0x4f, 0xea, 0x11, 0x34, 0x34, 0xd5, 0x04, 0xf0, 0x0f, 0x03, 0x01, 0x2b, 0x0c, 0xbf, 0x02, 0x21, 0x01, 0x21, 0x09, 0x01, 0x06, 0x69, 0x33, 0x4d, 0x04, 0xf0, 0x03, 0x04, 0xdf, 0xf8, 0xd8, 0xc0, 0x04, 0x31, 0x04, 0x22, 0x2b, 0x68, 0x03, 0xea, 0x0c, 0x0e, 0x02, 0xf1, 0x08, 0x03, 0x26, 0xfa, 0x03, 0xf3, 0x4e, 0xea, 0x04, 0x0e, 0x9b, 0x00, 0x03, 0xf0, 0x04, 0x03, 0x43, 0xea, 0x0e, 0x0e, 0x26, 0xfa, 0x02, 0xf3, 0x01, 0x3b, 0x1b, 0x01, 0xdb, 0xb2, 0x43, 0xea, 0x0e, 0x03, 0xa2, 0xf1, 0x04, 0x0e, 0x26, 0xfa, 0x0e, 0xfe, 0x0e, 0xf0, 0x0f, 0x0e, 0x0e, 0xf1, 0xff, 0x3e, 0xbe, 0xf1, 0x07, 0x0f, 0x39, 0xd8, 0xdf, 0xe8, 0x0e, 0xf0, 0x35, 0x32, 0x38, 0x2f, 0x38, 0x38, 0x38, 0x06, 0x01, 0x21, 0xce, 0xe7, 0x43, 0xf4, 0x20, 0x63, 0x10, 0x32, 0x45, 0xf8, 0x04, 0x3b, 0x91, 0x42, 0xd0, 0xd1, 0x18, 0x4b, 0x40, 0xf2, 0x03, 0x32, 0x1b, 0x68, 0x13, 0xf0, 0x01, 0x0f, 0x40, 0xf2, 0x01, 0x23, 0x18, 0xbf, 0x13, 0x46, 0x14, 0x4a, 0x13, 0x60, 0x17, 0xb1, 0x13, 0x4b, 0x00, 0x22, 0x1a, 0x60, 0x81, 0x6b, 0x69, 0xb1, 0x0f, 0x4b, 0x4a, 0x06, 0x02, 0xf0, 0xc0, 0x62, 0x18, 0x68, 0x02, 0x43, 0x1a, 0x60, 0x0e, 0x4a, 0x0f, 0x4b, 0x10, 0x68, 0x03, 0xea, 0x81, 0x23, 0x03, 0x43, 0x13, 0x60, 0xbd, 0xe8, 0xf0, 0x81, 0x43, 0xf4, 0x10, 0x63, 0xd5, 0xe7, 0x43, 0xf4, 0x00, 0x63, 0xd2, 0xe7, 0x43, 0xf4, 0xe0, 0x63, 0xcf, 0xe7, 0x43, 0xf4, 0xc0, 0x63, 0xcc, 0xe7, 0x00, 0xbf, 0x08, 0x20, 0x10, 0x03, 0x00, 0x20, 0x10, 0x03, 0x20, 0x31, 0x10, 0x03, 0xc4, 0x33, 0x10, 0x03, 0x04, 0x20, 0x10, 0x03, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x10, 0xb5, 0x92, 0xb0, 0x04, 0x46, 0x16, 0x22, 0x00, 0x21, 0x68, 0x46, 0xfe, 0xf7, 0x9c, 0xf9, 0x16, 0x22, 0x46, 0x49, 0x06, 0xa8, 0xfe, 0xf7, 0x9d, 0xf9, 0x16, 0x22, 0x44, 0x49, 0x0c, 0xa8, 0xfe, 0xf7, 0x98, 0xf9, 0xe3, 0x6d, 0x5a, 0x03, 0x04, 0xd4, 0x16, 0x22, 0x06, 0xa9, 0x68, 0x46, 0xff, 0xf7, 0x74, 0xf9, 0xe3, 0x6d, 0x5b, 0x03, 0x04, 0xd5, 0x16, 0x22, 0x0c, 0xa9, 0x68, 0x46, 0xff, 0xf7, 0x6c, 0xf9, 0x63, 0x68, 0x03, 0x2b, 0x6e, 0xd1, 0x9d, 0xf8, 0x01, 0x30, 0x9d, 0xf8, 0x00, 0x20, 0x9b, 0x02, 0x43, 0xea, 0x42, 0x13, 0x9d, 0xf8, 0x02, 0x20, 0x43, 0xea, 0xc2, 0x33, 0x9d, 0xf8, 0x03, 0x20, 0x43, 0xea, 0x02, 0x53, 0x9d, 0xf8, 0x04, 0x20, 0x43, 0xea, 0x42, 0x63, 0x30, 0x4a, 0x13, 0x60, 0x9d, 0xf8, 0x07, 0x30, 0x9d, 0xf8, 0x06, 0x10, 0x9b, 0x02, 0x43, 0xea, 0x41, 0x13, 0x9d, 0xf8, 0x05, 0x10, 0x0b, 0x43, 0x9d, 0xf8, 0x08, 0x10, 0x43, 0xea, 0xc1, 0x33, 0x9d, 0xf8, 0x09, 0x10, 0x43, 0xea, 0x01, 0x53, 0x9d, 0xf8, 0x0a, 0x10, 0x43, 0xea, 0x41, 0x63, 0x25, 0x49, 0x0b, 0x60, 0x9d, 0xf8, 0x0d, 0x30, 0x9d, 0xf8, 0x0c, 0x10, 0x9b, 0x02, 0x43, 0xea, 0x41, 0x13, 0x9d, 0xf8, 0x0b, 0x10, 0x0b, 0x43, 0x9d, 0xf8, 0x0e, 0x10, 0x43, 0xea, 0xc1, 0x33, 0x9d, 0xf8, 0x0f, 0x10, 0x43, 0xea, 0x01, 0x53, 0x1c, 0x49, 0x0b, 0x60, 0x9d, 0xf8, 0x12, 0x30, 0x9d, 0xf8, 0x11, 0x10, 0x9b, 0x02, 0x43, 0xea, 0x41, 0x13, 0x9d, 0xf8, 0x10, 0x10, 0x0b, 0x43, 0x9d, 0xf8, 0x13, 0x10, 0x43, 0xea, 0xc1, 0x33, 0x9d, 0xf8, 0x14, 0x10, 0x43, 0xea, 0x01, 0x53, 0x9d, 0xf8, 0x15, 0x10, 0x43, 0xea, 0x41, 0x63, 0x11, 0x49, 0x0b, 0x60, 0x9d, 0xf8, 0x01, 0x30, 0x9d, 0xf8, 0x00, 0x10, 0x9b, 0x02, 0x43, 0xea, 0x41, 0x13, 0x9d, 0xf8, 0x02, 0x10, 0x43, 0xf0, 0x01, 0x03, 0x43, 0xea, 0xc1, 0x33, 0x9d, 0xf8, 0x03, 0x10, 0x43, 0xea, 0x01, 0x53, 0x9d, 0xf8, 0x04, 0x10, 0x43, 0xea, 0x41, 0x63, 0x13, 0x60, 0x12, 0xb0, 0x10, 0xbd, 0x88, 0xc1, 0x02, 0x00, 0x9e, 0xc1, 0x02, 0x00, 0x00, 0x25, 0x10, 0x03, 0x04, 0x25, 0x10, 0x03, 0x08, 0x25, 0x10, 0x03, 0x0c, 0x25, 0x10, 0x03, 0x2d, 0xe9, 0xf8, 0x43, 0x0f, 0x46, 0xac, 0x4d, 0x2b, 0x68, 0xd8, 0x03, 0x05, 0xd4, 0xab, 0x4b, 0x21, 0x22, 0x0a, 0x20, 0x1a, 0x60, 0xfd, 0xf7, 0xbc, 0xff, 0xa9, 0x48, 0x39, 0x68, 0xa9, 0x4e, 0x02, 0x68, 0xfc, 0x6d, 0xb1, 0xf5, 0x28, 0x7f, 0x4f, 0xea, 0x51, 0x03, 0x22, 0xf4, 0x7f, 0x62, 0x22, 0xf0, 0x0f, 0x02, 0x03, 0xf1, 0xff, 0x33, 0x43, 0xea, 0x02, 0x03, 0xfa, 0x68, 0x03, 0x60, 0x00, 0xf5, 0x99, 0x50, 0x33, 0x68, 0x00, 0xf1, 0x18, 0x00, 0x6f, 0xea, 0x02, 0x02, 0xc4, 0xf3, 0x81, 0x04, 0x4f, 0xea, 0x42, 0x12, 0x23, 0xf4, 0x70, 0x63, 0x43, 0xf4, 0x40, 0x73, 0x02, 0xf0, 0x20, 0x02, 0x33, 0x60, 0x03, 0x68, 0x23, 0xf0, 0x30, 0x03, 0x43, 0xea, 0x02, 0x03, 0x8b, 0xbf, 0x23, 0xf4, 0x76, 0x43, 0x23, 0xf4, 0x70, 0x43, 0x23, 0xf0, 0x1e, 0x03, 0x23, 0xf0, 0x1e, 0x03, 0x88, 0xbf, 0x43, 0xf4, 0x80, 0x63, 0xb1, 0xf5, 0x28, 0x7f, 0x03, 0x60, 0x8e, 0x48, 0x03, 0x68, 0x23, 0xf0, 0x30, 0x03, 0x43, 0xea, 0x02, 0x03, 0x8c, 0x4a, 0x8b, 0xbf, 0x23, 0xf4, 0x76, 0x43, 0x23, 0xf4, 0x70, 0x43, 0x23, 0xf0, 0x1e, 0x03, 0x23, 0xf0, 0x1e, 0x03, 0x88, 0xbf, 0x43, 0xf4, 0x80, 0x63, 0x03, 0x60, 0x38, 0x46, 0x13, 0x68, 0x43, 0xf0, 0x02, 0x03, 0x13, 0x60, 0xff, 0xf7, 0xed, 0xf8, 0x01, 0x2c, 0x0e, 0xd0, 0x02, 0x2c, 0x00, 0xf0, 0xcd, 0x80, 0x33, 0x68, 0x0a, 0x20, 0x23, 0xf0, 0x40, 0x03, 0x33, 0x60, 0xfd, 0xf7, 0x5c, 0xff, 0x33, 0x68, 0x43, 0xf0, 0xc0, 0x03, 0x33, 0x60, 0x0a, 0xe0, 0x33, 0x68, 0x7a, 0x4a, 0x23, 0xf0, 0xc0, 0x03, 0x33, 0x60, 0x13, 0x68, 0x23, 0xf4, 0x83, 0x73, 0x23, 0xf0, 0x01, 0x03, 0x13, 0x60, 0x7b, 0x68, 0x06, 0x3b, 0x01, 0x2b, 0x0f, 0xd8, 0x74, 0x4a, 0x01, 0x2c, 0x13, 0x68, 0x0b, 0xbf, 0x23, 0xf0, 0x00, 0x63, 0x23, 0xf0, 0xee, 0x43, 0x23, 0xf0, 0xc0, 0x03, 0x43, 0xf0, 0x08, 0x53, 0x08, 0xbf, 0x43, 0xf0, 0x00, 0x43, 0x13, 0x60, 0x7b, 0x69, 0x6c, 0x4a, 0x13, 0xf4, 0x80, 0x5f, 0x13, 0xbf, 0x13, 0x68, 0x11, 0x68, 0x6a, 0x4b, 0x03, 0xf0, 0x70, 0x43, 0x15, 0xbf, 0x43, 0xf0, 0x40, 0x73, 0x01, 0xf0, 0x70, 0x41, 0x43, 0xf0, 0x01, 0x03, 0x0b, 0x43, 0x13, 0x60, 0x2b, 0x68, 0xd9, 0x03, 0x07, 0xd5, 0x5b, 0x4a, 0x0a, 0x20, 0x13, 0x68, 0x23, 0xf0, 0x04, 0x03, 0x13, 0x60, 0xfd, 0xf7, 0x1a, 0xff, 0x60, 0x49, 0x01, 0x2c, 0xdf, 0xf8, 0x98, 0x81, 0x0b, 0x68, 0x03, 0xf0, 0x7c, 0x43, 0x43, 0xf0, 0x00, 0x72, 0xbb, 0x68, 0x23, 0xf0, 0x7f, 0x43, 0x43, 0xea, 0x02, 0x03, 0x0b, 0x60, 0x40, 0xf0, 0x8f, 0x80, 0x58, 0x4b, 0x52, 0x22, 0x1a, 0x60, 0x53, 0x22, 0x1a, 0x60, 0xd8, 0xf8, 0x00, 0x30, 0xda, 0x07, 0xfb, 0xd5, 0x0a, 0x20, 0xfd, 0xf7, 0xfd, 0xfe, 0x7b, 0x68, 0x03, 0x2b, 0x14, 0xbf, 0x4f, 0xf4, 0xa4, 0x63, 0x4f, 0xf4, 0xb4, 0x63, 0x4f, 0x4a, 0x0a, 0x20, 0x13, 0x60, 0x43, 0xf0, 0x01, 0x03, 0x13, 0x60, 0xfd, 0xf7, 0xee, 0xfe, 0xd8, 0xf8, 0x00, 0x30, 0xd8, 0x07, 0xfb, 0xd5, 0x2b, 0x68, 0xd9, 0x03, 0x41, 0xd5, 0x48, 0x4d, 0x0a, 0x20, 0x48, 0x4f, 0x2b, 0x68, 0x23, 0xf0, 0xc0, 0x63, 0x43, 0xf0, 0x80, 0x63, 0x2b, 0x60, 0xfd, 0xf7, 0xdc, 0xfe, 0x45, 0x4a, 0x3b, 0x68, 0x91, 0x46, 0x43, 0xf0, 0x01, 0x03, 0x3b, 0x60, 0x13, 0x68, 0x03, 0xf0, 0x07, 0x03, 0x03, 0x2b, 0xfa, 0xd1, 0x32, 0x4a, 0x0a, 0x20, 0x13, 0x68, 0x23, 0xf0, 0x02, 0x03, 0x13, 0x60, 0xfd, 0xf7, 0xc9, 0xfe, 0x3b, 0x68, 0x23, 0xf0, 0x01, 0x03, 0x3b, 0x60, 0xd9, 0xf8, 0x00, 0x30, 0x03, 0xf0, 0x07, 0x03, 0x01, 0x2b, 0xf9, 0xd1, 0x0f, 0x20, 0xfd, 0xf7, 0xbc, 0xfe, 0x01, 0x2c, 0x14, 0xd1, 0x33, 0x68, 0x20, 0x46, 0x23, 0xf0, 0xc0, 0x03, 0x33, 0x60, 0x2b, 0x68, 0x23, 0xf0, 0xc0, 0x63, 0x43, 0xf0, 0x00, 0x73, 0x2b, 0x60, 0xfd, 0xf7, 0xad, 0xfe, 0x2a, 0x4b, 0x40, 0xf2, 0x01, 0x42, 0x1a, 0x60, 0xd8, 0xf8, 0x00, 0x30, 0xda, 0x07, 0xfb, 0xd5, 0xd8, 0xf8, 0x00, 0x50, 0x15, 0xf0, 0x7f, 0x6f, 0x56, 0xd0, 0x15, 0xf4, 0x80, 0x15, 0x54, 0xd0, 0x00, 0x25, 0x26, 0x48, 0xfe, 0xf7, 0x08, 0xf9, 0x28, 0x46, 0xbd, 0xe8, 0xf8, 0x83, 0x33, 0x68, 0x19, 0x49, 0x23, 0xf0, 0xc0, 0x03, 0x43, 0xf0, 0x80, 0x03, 0x33, 0x60, 0x20, 0x4b, 0x1b, 0x68, 0x0a, 0x68, 0xc3, 0xf3, 0x04, 0x43, 0x22, 0xf4, 0x83, 0x72, 0x02, 0x3b, 0x22, 0xf0, 0x01, 0x02, 0x42, 0xf4, 0x80, 0x72, 0x13, 0x43, 0x11, 0x4a, 0x0b, 0x60, 0x13, 0x68, 0x23, 0xf0, 0x00, 0x43, 0x43, 0xf0, 0x00, 0x63, 0x2c, 0xe7, 0x2b, 0x68, 0xdb, 0x03, 0x07, 0xd4, 0x7b, 0x68, 0x03, 0x2b, 0x14, 0xbf, 0x4f, 0xf4, 0xb9, 0x73, 0x4f, 0xf4, 0xf9, 0x73, 0x78, 0xe7, 0x62, 0x23, 0x76, 0xe7, 0xf8, 0x01, 0x09, 0x07, 0xf4, 0x01, 0x09, 0x07, 0x0c, 0x20, 0x10, 0x03, 0x08, 0x31, 0x10, 0x03, 0xc4, 0x33, 0x10, 0x03, 0x08, 0x32, 0x10, 0x03, 0xbc, 0x30, 0x10, 0x03, 0x1c, 0x31, 0x10, 0x03, 0xc0, 0x30, 0x10, 0x03, 0x87, 0x30, 0x00, 0x01, 0x40, 0x31, 0x10, 0x03, 0x00, 0x30, 0x10, 0x03, 0x0c, 0x31, 0x10, 0x03, 0x04, 0x30, 0x10, 0x03, 0x18, 0x30, 0x10, 0x03, 0x74, 0xc5, 0x02, 0x00, 0x60, 0x30, 0x10, 0x03, 0x10, 0x30, 0x10, 0x03, 0x01, 0x25, 0x14, 0x4a, 0x13, 0x68, 0xdb, 0x07, 0xfc, 0xd5, 0x13, 0x4e, 0x0a, 0x20, 0x33, 0x68, 0x43, 0xf0, 0x00, 0x43, 0x33, 0x60, 0xfd, 0xf7, 0x3c, 0xfe, 0x33, 0x68, 0x0a, 0x20, 0x23, 0xf0, 0x00, 0x43, 0x33, 0x60, 0xfd, 0xf7, 0x35, 0xfe, 0x0c, 0x4a, 0x0a, 0x20, 0x13, 0x68, 0x43, 0xf0, 0x00, 0x43, 0x13, 0x60, 0xfd, 0xf7, 0x2d, 0xfe, 0x09, 0x4a, 0x01, 0x2c, 0x13, 0x68, 0x23, 0xf0, 0xc0, 0x63, 0x13, 0x60, 0x01, 0xbf, 0x13, 0x69, 0x23, 0xf0, 0xc0, 0x03, 0x43, 0xf0, 0x40, 0x03, 0x13, 0x61, 0x85, 0xe7, 0x18, 0x30, 0x10, 0x03, 0x8c, 0x30, 0x10, 0x03, 0x14, 0x20, 0x10, 0x03, 0x0c, 0x31, 0x10, 0x03, 0x12, 0x4b, 0x01, 0x21, 0x10, 0xb5, 0x1b, 0x68, 0xc3, 0xf3, 0x03, 0x12, 0xc3, 0xf3, 0x03, 0x20, 0x10, 0x44, 0xc3, 0xf3, 0x81, 0x02, 0x0e, 0x38, 0x13, 0xf0, 0x03, 0x03, 0x10, 0x44, 0x01, 0xfa, 0x00, 0xf0, 0x10, 0xd0, 0x0a, 0x4b, 0x1a, 0x68, 0x93, 0x07, 0x1f, 0xbf, 0xc2, 0xf3, 0x03, 0x23, 0xc2, 0xf3, 0x03, 0x14, 0x1b, 0x19, 0xc2, 0xf3, 0x81, 0x02, 0x17, 0xbf, 0x0e, 0x3b, 0x03, 0x46, 0x9b, 0x18, 0x01, 0xfa, 0x03, 0xf3, 0x18, 0x44, 0x10, 0xbd, 0x00, 0xbf, 0x00, 0x20, 0x10, 0x03, 0x04, 0x20, 0x10, 0x03, 0x20, 0x4b, 0x10, 0xb5, 0x1b, 0x68, 0x5b, 0x02, 0x13, 0xd5, 0x1f, 0x4b, 0x19, 0x68, 0xd3, 0xf8, 0x80, 0x40, 0xc1, 0xf3, 0x01, 0x61, 0x02, 0x29, 0xc4, 0xf3, 0x01, 0x64, 0x19, 0xd1, 0x43, 0x69, 0x02, 0x2c, 0x23, 0xf4, 0x70, 0x43, 0x23, 0xf0, 0x0f, 0x03, 0x0d, 0xd1, 0x43, 0x61, 0x17, 0x48, 0x06, 0xe0, 0x43, 0x69, 0x23, 0xf0, 0x0f, 0x03, 0x43, 0xf4, 0x80, 0x53, 0x43, 0x61, 0x14, 0x48, 0xfe, 0xf7, 0x3a, 0xf8, 0x01, 0x20, 0x10, 0xbd, 0x43, 0xf0, 0x01, 0x03, 0x43, 0x61, 0x11, 0x48, 0xf6, 0xe7, 0x49, 0xb9, 0x43, 0x69, 0x23, 0xf0, 0x0f, 0x03, 0x43, 0xf4, 0x80, 0x53, 0x43, 0xf0, 0x01, 0x03, 0x43, 0x61, 0x0c, 0x48, 0xeb, 0xe7, 0xc0, 0x6d, 0x10, 0xf0, 0x00, 0x50, 0xea, 0xd0, 0x0a, 0x48, 0xfe, 0xf7, 0x21, 0xf8, 0x21, 0x46, 0x09, 0x48, 0xfe, 0xf7, 0x1d, 0xf8, 0x00, 0x20, 0xe1, 0xe7, 0x00, 0xbf, 0x10, 0x30, 0x10, 0x03, 0x48, 0x33, 0x10, 0x03, 0xcf, 0xc5, 0x02, 0x00, 0xab, 0xc5, 0x02, 0x00, 0xf6, 0xc5, 0x02, 0x00, 0x1d, 0xc6, 0x02, 0x00, 0x42, 0xc6, 0x02, 0x00, 0x50, 0xc6, 0x02, 0x00, 0x40, 0x08, 0x2d, 0xe9, 0xf8, 0x43, 0x1e, 0x4a, 0x4f, 0xf0, 0x80, 0x43, 0x00, 0x05, 0x00, 0x24, 0x1c, 0x4d, 0x8c, 0x42, 0x0b, 0xd1, 0x1b, 0x4a, 0x4f, 0xf0, 0x80, 0x46, 0x18, 0x49, 0x00, 0x25, 0xac, 0x42, 0x0b, 0xd1, 0x18, 0x48, 0xfd, 0xf7, 0xf5, 0xff, 0x00, 0x20, 0x17, 0xe0, 0xa6, 0x18, 0x1e, 0x60, 0x66, 0x19, 0xc6, 0x50, 0x01, 0x34, 0x04, 0x33, 0xea, 0xe7, 0x87, 0x59, 0x05, 0xeb, 0x02, 0x08, 0x00, 0xeb, 0x06, 0x09, 0xb8, 0x45, 0x0b, 0xd0, 0x10, 0x48, 0xfd, 0xf7, 0xe2, 0xff, 0x4b, 0x46, 0x42, 0x46, 0x39, 0x46, 0x0e, 0x48, 0xfd, 0xf7, 0xdc, 0xff, 0x01, 0x20, 0xbd, 0xe8, 0xf8, 0x83, 0x33, 0x46, 0x05, 0xeb, 0x01, 0x08, 0x53, 0xf8, 0x04, 0x7b, 0xb8, 0x45, 0x04, 0xd0, 0x06, 0x48, 0xfd, 0xf7, 0xcf, 0xff, 0x33, 0x46, 0xeb, 0xe7, 0x01, 0x35, 0x1e, 0x46, 0xcf, 0xe7, 0x67, 0x45, 0x23, 0x01, 0x98, 0xba, 0xdc, 0xfe, 0x8e, 0xc6, 0x02, 0x00, 0x5e, 0xc6, 0x02, 0x00, 0x76, 0xc6, 0x02, 0x00, 0xc2, 0x6d, 0x10, 0xb5, 0x91, 0x03, 0x10, 0xd4, 0x08, 0x49, 0xc4, 0x6b, 0x0b, 0x68, 0x03, 0xf0, 0x80, 0x33, 0x23, 0x43, 0x0b, 0x60, 0xd3, 0x03, 0x07, 0xd4, 0x4a, 0x68, 0x03, 0x6c, 0x22, 0xf0, 0x7f, 0x02, 0x03, 0xf0, 0x7f, 0x03, 0x13, 0x43, 0x4b, 0x60, 0x10, 0xbd, 0x10, 0x31, 0x10, 0x03, 0x10, 0xb5, 0x04, 0x46, 0xff, 0xf7, 0xce, 0xfb, 0x20, 0x46, 0xff, 0xf7, 0xe1, 0xff, 0xff, 0xf7, 0x19, 0xfc, 0x20, 0x46, 0xff, 0xf7, 0xc2, 0xfc, 0x20, 0x46, 0xfe, 0xf7, 0x85, 0xff, 0x21, 0x46, 0x00, 0x20, 0xbd, 0xe8, 0x10, 0x40, 0xff, 0xf7, 0x5b, 0xbd, 0x00, 0x00, 0x2d, 0xe9, 0xf7, 0x4f, 0x07, 0x46, 0xff, 0xf7, 0xe5, 0xff, 0x04, 0x46, 0x30, 0xb9, 0x95, 0x48, 0xfd, 0xf7, 0x88, 0xff, 0x20, 0x46, 0x03, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x7b, 0x69, 0x4f, 0xf0, 0x80, 0x46, 0xdf, 0xf8, 0x5c, 0xa2, 0x00, 0x25, 0xb0, 0x46, 0xc3, 0xf3, 0x03, 0x33, 0x01, 0x2b, 0x0c, 0xbf, 0x02, 0x23, 0x01, 0x23, 0x01, 0x93, 0x42, 0x46, 0x00, 0x23, 0x6f, 0xea, 0x08, 0x00, 0xdc, 0x07, 0x58, 0xbf, 0xa0, 0xeb, 0x83, 0x01, 0x03, 0xf1, 0x01, 0x03, 0x48, 0xbf, 0x11, 0x46, 0x40, 0x2b, 0x42, 0xf8, 0x04, 0x1b, 0xf3, 0xd1, 0x05, 0xf5, 0x44, 0x04, 0x04, 0xf5, 0x00, 0x64, 0xa4, 0x00, 0x23, 0x68, 0x23, 0xf4, 0x70, 0x63, 0x23, 0xf0, 0x0c, 0x03, 0x43, 0xf4, 0xde, 0x63, 0x23, 0x60, 0x22, 0x68, 0x93, 0x42, 0xfc, 0xd1, 0x4f, 0xf0, 0x0b, 0x09, 0x4f, 0xf0, 0x01, 0x0c, 0x6f, 0xea, 0x06, 0x0e, 0x09, 0xf1, 0x0b, 0x03, 0x31, 0x46, 0x0c, 0xfa, 0x03, 0xf3, 0x00, 0x22, 0x43, 0x44, 0x9b, 0x1b, 0xd0, 0x07, 0x53, 0xf8, 0x01, 0xb0, 0x54, 0xbf, 0xae, 0xeb, 0x82, 0x00, 0x08, 0x46, 0x83, 0x45, 0x40, 0xf0, 0xd0, 0x80, 0x01, 0x32, 0x04, 0x31, 0x40, 0x2a, 0xf1, 0xd1, 0x4f, 0xea, 0x05, 0x1b, 0x4a, 0x46, 0x29, 0x46, 0x6b, 0x48, 0xfd, 0xf7, 0x33, 0xff, 0x0b, 0xf1, 0x04, 0x02, 0xff, 0x23, 0x03, 0xfa, 0x02, 0xf1, 0x3b, 0x69, 0x09, 0xfa, 0x02, 0xf9, 0x01, 0x2d, 0x23, 0xea, 0x01, 0x03, 0x43, 0xea, 0x09, 0x03, 0x3b, 0x61, 0x0a, 0xd1, 0x63, 0x4a, 0x4f, 0xf0, 0x81, 0x48, 0x13, 0x68, 0x03, 0xea, 0x0a, 0x03, 0x43, 0xf4, 0xd4, 0x63, 0x43, 0xf0, 0x04, 0x03, 0x13, 0x60, 0x23, 0x68, 0x03, 0xea, 0x0a, 0x03, 0x43, 0xf4, 0xd4, 0x63, 0x43, 0xf0, 0x04, 0x03, 0x23, 0x60, 0x22, 0x68, 0x9a, 0x42, 0xfc, 0xd1, 0x08, 0xf5, 0x00, 0x62, 0x00, 0x23, 0x6f, 0xea, 0x06, 0x0c, 0x98, 0x00, 0x13, 0xf0, 0x01, 0x0f, 0x06, 0xeb, 0x00, 0x01, 0x08, 0xbf, 0xac, 0xeb, 0x00, 0x01, 0x10, 0x68, 0x88, 0x42, 0x40, 0xf0, 0x8a, 0x80, 0x01, 0x33, 0x04, 0x32, 0x40, 0x2b, 0xef, 0xd1, 0x4f, 0xf0, 0x00, 0x09, 0x09, 0xf1, 0x01, 0x02, 0x29, 0x46, 0x92, 0x00, 0x4c, 0x48, 0xfd, 0xf7, 0xf0, 0xfe, 0x0b, 0xf1, 0x0c, 0x01, 0x0f, 0x23, 0x03, 0xfa, 0x01, 0xf2, 0x3b, 0x69, 0x09, 0xfa, 0x01, 0xf9, 0x01, 0x2d, 0x23, 0xea, 0x02, 0x03, 0x43, 0xea, 0x09, 0x03, 0x3b, 0x61, 0x08, 0xd1, 0x42, 0x4a, 0x4f, 0xf0, 0x88, 0x48, 0x13, 0x68, 0x03, 0xea, 0x0a, 0x03, 0x43, 0xf4, 0x2a, 0x63, 0x13, 0x60, 0x23, 0x68, 0x03, 0xea, 0x0a, 0x03, 0x43, 0xf4, 0x2a, 0x63, 0x23, 0x60, 0x22, 0x68, 0x9a, 0x42, 0xfc, 0xd1, 0x09, 0x23, 0x4f, 0xf0, 0x01, 0x0c, 0x6f, 0xea, 0x06, 0x0e, 0x0c, 0xfa, 0x03, 0xf1, 0x30, 0x46, 0x00, 0x22, 0x41, 0x44, 0x89, 0x1b, 0xd4, 0x07, 0x51, 0xf8, 0x00, 0x90, 0x54, 0xbf, 0xae, 0xeb, 0x82, 0x04, 0x04, 0x46, 0xa1, 0x45, 0x55, 0xd1, 0x01, 0x32, 0x04, 0x30, 0x40, 0x2a, 0xf2, 0xd1, 0x0d, 0x2b, 0x01, 0xd0, 0x09, 0x2b, 0x42, 0xd0, 0x0a, 0x3b, 0x01, 0x24, 0x9c, 0x40, 0x22, 0x46, 0x2b, 0x48, 0x29, 0x46, 0x04, 0xfa, 0x0b, 0xf4, 0x01, 0x35, 0xfd, 0xf7, 0xa8, 0xfe, 0x0f, 0x23, 0x03, 0xfa, 0x0b, 0xf2, 0x3b, 0x69, 0x23, 0xea, 0x02, 0x03, 0x1c, 0x43, 0x01, 0x9b, 0x3c, 0x61, 0xab, 0x42, 0x13, 0xd1, 0x02, 0x2b, 0x0f, 0xd1, 0x7b, 0x69, 0xa2, 0xb2, 0xb2, 0xeb, 0x14, 0x4f, 0x23, 0xf4, 0x70, 0x63, 0x13, 0xbf, 0x43, 0xf4, 0x80, 0x73, 0x7b, 0x61, 0x1d, 0x48, 0x7b, 0x61, 0x18, 0xbf, 0x1c, 0x48, 0xfd, 0xf7, 0x8b, 0xfe, 0x01, 0x24, 0x00, 0xe7, 0x01, 0x2d, 0x7f, 0xf4, 0x10, 0xaf, 0x14, 0x4a, 0x4f, 0xf0, 0x90, 0x46, 0xb0, 0x46, 0x13, 0x68, 0x03, 0xea, 0x0a, 0x03, 0x43, 0xf4, 0xde, 0x63, 0x13, 0x60, 0x53, 0x68, 0x03, 0xea, 0x0a, 0x03, 0x43, 0xf4, 0xde, 0x63, 0x43, 0xf0, 0x01, 0x03, 0x53, 0x60, 0xfc, 0xe6, 0x4f, 0xf0, 0x01, 0x09, 0x78, 0xe7, 0x00, 0x24, 0xbd, 0xe7, 0x09, 0xf1, 0x01, 0x09, 0xb9, 0xf1, 0x11, 0x0f, 0x7f, 0xf4, 0x18, 0xaf, 0x4f, 0xf0, 0x10, 0x09, 0x2a, 0xe7, 0x01, 0x33, 0x0e, 0x2b, 0x97, 0xd1, 0x0d, 0x23, 0xac, 0xe7, 0xa4, 0xc6, 0x02, 0x00, 0xcb, 0xc6, 0x02, 0x00, 0x00, 0x20, 0x10, 0x03, 0xeb, 0xc6, 0x02, 0x00, 0x0c, 0xc7, 0x02, 0x00, 0x35, 0xc7, 0x02, 0x00, 0x51, 0xc7, 0x02, 0x00, 0x03, 0xf0, 0xff, 0xff, 0x4f, 0xf0, 0xb0, 0x13, 0x70, 0xb5, 0x06, 0x69, 0x04, 0x46, 0x03, 0x61, 0x43, 0x69, 0xc5, 0x6d, 0x23, 0xf0, 0x0f, 0x03, 0x43, 0xf4, 0x80, 0x53, 0x43, 0x61, 0x25, 0xf0, 0x08, 0x03, 0x43, 0xf0, 0x05, 0x03, 0xc3, 0x65, 0xff, 0xf7, 0x94, 0xfe, 0x07, 0x4b, 0x1b, 0x68, 0xdb, 0x02, 0x01, 0xd5, 0x00, 0x20, 0x70, 0xbd, 0x20, 0x46, 0xff, 0xf7, 0xd7, 0xfd, 0x00, 0x28, 0xf8, 0xd0, 0xe5, 0x65, 0x01, 0x20, 0x26, 0x61, 0xf5, 0xe7, 0x00, 0xbf, 0x10, 0x30, 0x10, 0x03, 0x38, 0xb5, 0x05, 0x46, 0xc3, 0x6d, 0x5c, 0x04, 0x08, 0xd4, 0xff, 0xf7, 0xd3, 0xff, 0x04, 0x46, 0x20, 0xb9, 0x0c, 0x48, 0xfd, 0xf7, 0x1e, 0xfe, 0x20, 0x46, 0x38, 0xbd, 0xeb, 0x6d, 0xd9, 0x07, 0x06, 0xd4, 0x28, 0x46, 0xff, 0xf7, 0x84, 0xfe, 0x04, 0x46, 0x08, 0xb9, 0x06, 0x48, 0xf1, 0xe7, 0xeb, 0x6d, 0x01, 0x24, 0x1a, 0x04, 0x5e, 0xbf, 0x43, 0xf4, 0xc0, 0x43, 0x43, 0xf0, 0x03, 0x03, 0xeb, 0x65, 0xe9, 0xe7, 0x74, 0xc7, 0x02, 0x00, 0xa4, 0xc7, 0x02, 0x00, 0x38, 0xb5, 0x0c, 0x46, 0xcb, 0x6d, 0x79, 0x4d, 0x13, 0xf4, 0x80, 0x33, 0x2a, 0xd1, 0x78, 0x4a, 0x0a, 0x20, 0x13, 0x60, 0x2b, 0x68, 0x23, 0xf0, 0x03, 0x03, 0x2b, 0x60, 0xfd, 0xf7, 0x85, 0xfb, 0x2b, 0x68, 0x0a, 0x20, 0x23, 0xf4, 0x82, 0x73, 0x2b, 0x60, 0x2b, 0x68, 0x43, 0xf0, 0x02, 0x03, 0x2b, 0x60, 0xfd, 0xf7, 0x7a, 0xfb, 0x2b, 0x68, 0x14, 0x20, 0x43, 0xf0, 0x01, 0x03, 0x2b, 0x60, 0xfd, 0xf7, 0x73, 0xfb, 0x6b, 0x48, 0xfd, 0xf7, 0xdf, 0xfd, 0x6b, 0x4b, 0x6b, 0x48, 0x19, 0x68, 0xfd, 0xf7, 0xda, 0xfd, 0x00, 0xf0, 0x20, 0xf9, 0x05, 0x46, 0x88, 0xb9, 0x68, 0x48, 0xfd, 0xf7, 0xd3, 0xfd, 0x2f, 0xe0, 0x67, 0x48, 0xfd, 0xf7, 0xcf, 0xfd, 0x2b, 0x68, 0x00, 0x22, 0x0a, 0x20, 0x43, 0xf4, 0x80, 0x73, 0x2b, 0x60, 0x64, 0x4b, 0x1a, 0x60, 0xfd, 0xf7, 0x56, 0xfb, 0xe9, 0xe7, 0x62, 0x48, 0xfd, 0xf7, 0xc1, 0xfd, 0x20, 0x46, 0xfe, 0xf7, 0x7e, 0xfc, 0xe3, 0x6d, 0xd9, 0x07, 0x12, 0xd5, 0x5f, 0x49, 0x5f, 0x48, 0xfd, 0xf7, 0xb7, 0xfd, 0x21, 0x68, 0x5e, 0x48, 0xfd, 0xf7, 0xb3, 0xfd, 0x61, 0x68, 0x5d, 0x48, 0xfd, 0xf7, 0xaf, 0xfd, 0xe3, 0x68, 0xda, 0x07, 0x0b, 0xd4, 0x5b, 0x48, 0xfd, 0xf7, 0xa9, 0xfd, 0x0b, 0xe0, 0x20, 0x46, 0xff, 0xf7, 0x7b, 0xff, 0x00, 0x28, 0xe7, 0xd1, 0x00, 0x25, 0x28, 0x46, 0x38, 0xbd, 0xa1, 0x68, 0x56, 0x48, 0xfd, 0xf7, 0x9c, 0xfd, 0xe1, 0x69, 0x11, 0xf0, 0x44, 0x0f, 0x09, 0xd0, 0x53, 0x48, 0xfd, 0xf7, 0x95, 0xfd, 0x20, 0x46, 0xff, 0xf7, 0xea, 0xfd, 0x05, 0x46, 0x28, 0xb9, 0x50, 0x48, 0xb8, 0xe7, 0x50, 0x48, 0xfd, 0xf7, 0x8b, 0xfd, 0xf4, 0xe7, 0x65, 0x69, 0x00, 0x2d, 0x58, 0xda, 0xc5, 0xf3, 0x0e, 0x45, 0xe3, 0x6d, 0x4c, 0x49, 0x4d, 0x4a, 0x13, 0xf0, 0x80, 0x4f, 0x0b, 0x68, 0x5b, 0xd0, 0xa3, 0x6c, 0x4b, 0x48, 0x00, 0x2b, 0x08, 0xbf, 0x03, 0x46, 0x4a, 0x48, 0x0b, 0x60, 0x40, 0xf2, 0x0a, 0x41, 0x49, 0x4b, 0x19, 0x60, 0x13, 0x68, 0x43, 0xf0, 0x01, 0x03, 0x13, 0x60, 0xfd, 0xf7, 0x6d, 0xfd, 0x46, 0x49, 0xe2, 0x6d, 0x60, 0x68, 0x0b, 0x68, 0x12, 0xf4, 0x00, 0x7f, 0x23, 0xf4, 0x70, 0x43, 0x01, 0xd1, 0x06, 0x28, 0x01, 0xd1, 0x43, 0xf4, 0xa0, 0x43, 0x0b, 0x60, 0x40, 0x49, 0x0b, 0x68, 0x43, 0xf0, 0x00, 0x43, 0x0b, 0x60, 0xd3, 0x05, 0x42, 0xbf, 0x51, 0xf8, 0x88, 0x3c, 0x43, 0xf4, 0x40, 0x73, 0x41, 0xf8, 0x88, 0x3c, 0x12, 0xf0, 0x80, 0x6f, 0x39, 0x4b, 0x19, 0x68, 0x14, 0xbf, 0x21, 0xf4, 0x00, 0x51, 0x41, 0xf4, 0x00, 0x51, 0x07, 0x28, 0x19, 0x60, 0x06, 0xd1, 0x35, 0x49, 0x0b, 0x68, 0x23, 0xf4, 0x70, 0x23, 0x43, 0xf4, 0x80, 0x33, 0x0b, 0x60, 0x11, 0x01, 0x02, 0xd4, 0x20, 0x46, 0xfe, 0xf7, 0xf6, 0xfc, 0xa1, 0x6b, 0x30, 0x48, 0xfd, 0xf7, 0x36, 0xfd, 0xfe, 0xf7, 0x2c, 0xfc, 0xe3, 0x6d, 0xda, 0x00, 0x16, 0xd4, 0xfe, 0xf7, 0x29, 0xfa, 0x8b, 0xe7, 0xff, 0xf7, 0xa6, 0xfc, 0x05, 0x46, 0x01, 0x46, 0x29, 0x48, 0xfd, 0xf7, 0x27, 0xfd, 0xa3, 0x8a, 0x43, 0xea, 0x05, 0x43, 0x63, 0x61, 0x9c, 0xe7, 0x1b, 0x0c, 0x1b, 0x04, 0x0b, 0x60, 0x13, 0x68, 0x23, 0xf0, 0x01, 0x03, 0x13, 0x60, 0xac, 0xe7, 0x22, 0x4b, 0x1b, 0x68, 0xdb, 0x03, 0xe4, 0xd4, 0x4f, 0xf4, 0x80, 0x51, 0x28, 0x46, 0xff, 0xf7, 0x07, 0xfd, 0x00, 0x28, 0xdd, 0xd0, 0x6a, 0xe7, 0x60, 0x01, 0x00, 0x03, 0x54, 0x02, 0x01, 0x07, 0xce, 0xc7, 0x02, 0x00, 0x6c, 0x01, 0x00, 0x03, 0xe6, 0xc7, 0x02, 0x00, 0x0f, 0xc8, 0x02, 0x00, 0xf7, 0xc7, 0x02, 0x00, 0x68, 0x01, 0x00, 0x03, 0x33, 0xc8, 0x02, 0x00, 0x45, 0xc8, 0x02, 0x00, 0x4b, 0xc8, 0x02, 0x00, 0x65, 0xc8, 0x02, 0x00, 0x78, 0xc8, 0x02, 0x00, 0xae, 0xc8, 0x02, 0x00, 0x98, 0xc8, 0x02, 0x00, 0xc4, 0xc8, 0x02, 0x00, 0xea, 0xc8, 0x02, 0x00, 0xdb, 0xc8, 0x02, 0x00, 0xa0, 0x30, 0x10, 0x03, 0x04, 0x30, 0x10, 0x03, 0x00, 0x02, 0x00, 0x10, 0x15, 0xc9, 0x02, 0x00, 0x9c, 0x30, 0x10, 0x03, 0x00, 0x31, 0x10, 0x03, 0x40, 0x31, 0x10, 0x03, 0x08, 0x31, 0x10, 0x03, 0x7c, 0x30, 0x10, 0x03, 0x25, 0xc9, 0x02, 0x00, 0x04, 0xc9, 0x02, 0x00, 0xf8, 0x01, 0x09, 0x07, 0x80, 0xea, 0x01, 0x20, 0x08, 0x23, 0x48, 0xf2, 0x05, 0x01, 0x42, 0x00, 0x01, 0x3b, 0x9b, 0xb2, 0x00, 0x04, 0x92, 0xb2, 0x4c, 0xbf, 0x82, 0xea, 0x01, 0x00, 0x10, 0x46, 0x00, 0x2b, 0xf4, 0xd1, 0x70, 0x47, 0x38, 0xb5, 0x0d, 0x46, 0x04, 0x46, 0x2c, 0x44, 0xff, 0xf7, 0xe9, 0xff, 0x44, 0xea, 0x00, 0x40, 0x38, 0xbd, 0x70, 0xb5, 0x00, 0x20, 0xfe, 0xf7, 0xfe, 0xfa, 0x01, 0x25, 0x04, 0x46, 0x29, 0x46, 0x00, 0x20, 0xff, 0xf7, 0xed, 0xff, 0x84, 0x42, 0x05, 0xd0, 0x01, 0x35, 0xed, 0xb2, 0x11, 0x2d, 0xf5, 0xd1, 0x00, 0x20, 0x0f, 0xe0, 0x01, 0x24, 0x20, 0x46, 0xfe, 0xf7, 0xec, 0xfa, 0x29, 0x46, 0x06, 0x46, 0x20, 0x46, 0xff, 0xf7, 0xdc, 0xff, 0x86, 0x42, 0xf2, 0xd1, 0x01, 0x34, 0xa4, 0xb2, 0x05, 0x2c, 0xf1, 0xd1, 0x01, 0x20, 0x70, 0xbd, 0x00, 0x00, 0x04, 0x4b, 0x1b, 0x68, 0x47, 0x2b, 0x02, 0xd1, 0x01, 0x21, 0x00, 0xf0, 0xcb, 0xb8, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0xc4, 0xcc, 0x02, 0x00, 0x38, 0xb5, 0x4f, 0xf0, 0xff, 0x34, 0x04, 0x4d, 0x2c, 0x60, 0x00, 0xf0, 0xc7, 0xf8, 0x47, 0x28, 0x0c, 0xbf, 0x28, 0x60, 0x20, 0x46, 0x38, 0xbd, 0xc4, 0xcc, 0x02, 0x00, 0x01, 0x4b, 0x93, 0xf8, 0x35, 0x00, 0x70, 0x47, 0x00, 0x80, 0x02, 0x00, 0x2d, 0xe9, 0xf0, 0x4f, 0x80, 0x46, 0xdf, 0xf8, 0x48, 0xa1, 0x85, 0xb0, 0x8b, 0x46, 0x17, 0x46, 0x00, 0x25, 0x4f, 0xf0, 0x6c, 0x09, 0x09, 0xfb, 0x05, 0xa4, 0x20, 0x46, 0xfd, 0xf7, 0x25, 0xfb, 0x21, 0x46, 0x02, 0x46, 0x40, 0x46, 0xfd, 0xf7, 0x0f, 0xfb, 0x06, 0x46, 0x00, 0x28, 0x66, 0xd0, 0x01, 0x35, 0x05, 0x2d, 0xef, 0xd1, 0x4f, 0xf0, 0xff, 0x36, 0x30, 0x46, 0x05, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x23, 0x69, 0x00, 0x2b, 0x5f, 0xd0, 0x5b, 0x45, 0x48, 0xd9, 0x9b, 0x46, 0x0d, 0xf1, 0x0f, 0x02, 0x21, 0x7e, 0x34, 0x20, 0xfe, 0xf7, 0x22, 0xf9, 0x00, 0x28, 0xeb, 0xd1, 0x9d, 0xf8, 0x0f, 0x50, 0x02, 0x46, 0x94, 0xf8, 0x1c, 0x80, 0x25, 0xea, 0x08, 0x0a, 0x05, 0x46, 0x8d, 0xf8, 0x0f, 0xa0, 0x5f, 0xfa, 0x82, 0xf9, 0x4f, 0xea, 0x09, 0x11, 0x63, 0x18, 0x1b, 0x6b, 0x33, 0xb3, 0x9b, 0x45, 0x05, 0xd9, 0x04, 0xeb, 0x09, 0x10, 0xc0, 0x6b, 0x83, 0x45, 0x38, 0xbf, 0x9b, 0x46, 0x09, 0xf1, 0x03, 0x09, 0x9b, 0x45, 0x04, 0xeb, 0x09, 0x19, 0x21, 0x44, 0xc8, 0x6a, 0x02, 0xf1, 0x01, 0x02, 0xd9, 0xf8, 0x04, 0x10, 0x1f, 0xd8, 0xab, 0xeb, 0x00, 0x00, 0xfc, 0xf7, 0xf2, 0xfe, 0x05, 0x44, 0xa0, 0x6a, 0xd9, 0xf8, 0x08, 0x30, 0x85, 0x40, 0x4a, 0xea, 0x05, 0x05, 0xed, 0xb2, 0x8d, 0xf8, 0x0f, 0x50, 0x1b, 0xb1, 0x88, 0xea, 0x05, 0x05, 0x8d, 0xf8, 0x0f, 0x50, 0x9d, 0xf8, 0x0f, 0x20, 0x34, 0x20, 0x21, 0x7e, 0xfe, 0xf7, 0xec, 0xf8, 0xa8, 0xb1, 0xab, 0xe7, 0x63, 0x69, 0x9b, 0x45, 0x28, 0xbf, 0x9b, 0x46, 0xb2, 0xe7, 0x0b, 0x44, 0x01, 0x92, 0x18, 0x1a, 0xfc, 0xf7, 0xd1, 0xfe, 0x05, 0x44, 0x01, 0x9a, 0xed, 0xb2, 0xbb, 0xe7, 0x13, 0x43, 0x19, 0xe0, 0x00, 0x2c, 0x99, 0xd0, 0xbb, 0xf1, 0x00, 0x0f, 0x9c, 0xdc, 0x00, 0x2f, 0x96, 0xdb, 0x0d, 0xf1, 0x0f, 0x02, 0x94, 0xf8, 0x20, 0x10, 0x34, 0x20, 0xfe, 0xf7, 0xc2, 0xf8, 0x00, 0x28, 0x8b, 0xd1, 0x62, 0x6a, 0x01, 0x23, 0x93, 0x40, 0x9d, 0xf9, 0x0f, 0x20, 0x5b, 0xb2, 0x00, 0x2f, 0xe5, 0xd1, 0x22, 0xea, 0x03, 0x03, 0x8d, 0xf8, 0x0f, 0x30, 0x34, 0x20, 0x9d, 0xf8, 0x0f, 0x20, 0x94, 0xf8, 0x20, 0x10, 0xfe, 0xf7, 0xb7, 0xf8, 0x00, 0x30, 0x18, 0xbf, 0x01, 0x20, 0x46, 0x42, 0x75, 0xe7, 0x00, 0xbf, 0x54, 0xca, 0x02, 0x00, 0x01, 0x46, 0x01, 0x22, 0x01, 0x48, 0xff, 0xf7, 0x51, 0xbf, 0x00, 0xbf, 0x35, 0xc9, 0x02, 0x00, 0x0a, 0x46, 0x01, 0x46, 0x01, 0x48, 0xff, 0xf7, 0x49, 0xbf, 0x00, 0xbf, 0x47, 0xc9, 0x02, 0x00, 0x13, 0xb5, 0x34, 0x21, 0x6b, 0x48, 0xfe, 0xf7, 0x8b, 0xf8, 0x28, 0xb1, 0x6a, 0x48, 0xfd, 0xf7, 0xb1, 0xfb, 0x4f, 0xf0, 0xff, 0x30, 0xc9, 0xe0, 0x0d, 0xf1, 0x06, 0x02, 0x03, 0x21, 0x34, 0x20, 0xfe, 0xf7, 0x83, 0xf8, 0x08, 0xb1, 0x65, 0x48, 0xf1, 0xe7, 0x9d, 0xf8, 0x06, 0x30, 0x03, 0xf0, 0xcf, 0x03, 0x47, 0x2b, 0x8d, 0xf8, 0x06, 0x30, 0x02, 0xd0, 0x4a, 0x2b, 0x40, 0xf0, 0xb8, 0x80, 0x5f, 0x48, 0xfd, 0xf7, 0x97, 0xfb, 0x9d, 0xf8, 0x06, 0x40, 0x09, 0x22, 0x62, 0x21, 0x34, 0x20, 0x8d, 0xf8, 0x07, 0x20, 0xfe, 0xf7, 0x73, 0xf8, 0x05, 0x22, 0x16, 0x21, 0x34, 0x20, 0x8d, 0xf8, 0x07, 0x20, 0xfe, 0xf7, 0x6c, 0xf8, 0x4a, 0x2c, 0x06, 0xd0, 0x34, 0x21, 0x40, 0x22, 0x08, 0x46, 0x8d, 0xf8, 0x07, 0x20, 0xfe, 0xf7, 0x63, 0xf8, 0x0d, 0xf1, 0x07, 0x02, 0x81, 0x21, 0x34, 0x20, 0xfe, 0xf7, 0x53, 0xf8, 0x9d, 0xf8, 0x07, 0x20, 0x81, 0x21, 0x34, 0x20, 0x42, 0xf0, 0x14, 0x02, 0x8d, 0xf8, 0x07, 0x20, 0xfe, 0xf7, 0x53, 0xf8, 0x4a, 0x2c, 0x36, 0xd0, 0x00, 0x24, 0xff, 0x21, 0x22, 0x46, 0x34, 0x20, 0x8d, 0xf8, 0x07, 0x40, 0xfe, 0xf7, 0x49, 0xf8, 0x06, 0x22, 0xf0, 0x21, 0x34, 0x20, 0x8d, 0xf8, 0x07, 0x20, 0xfe, 0xf7, 0x42, 0xf8, 0x04, 0x22, 0xf1, 0x21, 0x34, 0x20, 0x8d, 0xf8, 0x07, 0x20, 0xfe, 0xf7, 0x3b, 0xf8, 0x01, 0x22, 0xff, 0x21, 0x34, 0x20, 0x8d, 0xf8, 0x07, 0x20, 0xfe, 0xf7, 0x34, 0xf8, 0x30, 0x22, 0x26, 0x21, 0x34, 0x20, 0x8d, 0xf8, 0x07, 0x20, 0xfe, 0xf7, 0x2d, 0xf8, 0x22, 0x46, 0xff, 0x21, 0x34, 0x20, 0x8d, 0xf8, 0x07, 0x40, 0xfe, 0xf7, 0x26, 0xf8, 0x9d, 0xf8, 0x07, 0x20, 0xf1, 0x21, 0x34, 0x20, 0xfe, 0xf7, 0x20, 0xf8, 0x9d, 0xf8, 0x07, 0x20, 0xf0, 0x21, 0x34, 0x20, 0xfe, 0xf7, 0x1a, 0xf8, 0x0d, 0xf1, 0x07, 0x02, 0x14, 0x21, 0x34, 0x20, 0xfe, 0xf7, 0x0a, 0xf8, 0x9d, 0xf8, 0x07, 0x20, 0x14, 0x21, 0x34, 0x20, 0x02, 0xf0, 0x8f, 0x02, 0x8d, 0xf8, 0x07, 0x20, 0xfe, 0xf7, 0x0a, 0xf8, 0x0d, 0xf1, 0x07, 0x02, 0x15, 0x21, 0x34, 0x20, 0xfd, 0xf7, 0xfa, 0xff, 0x9d, 0xf8, 0x07, 0x20, 0x15, 0x21, 0x34, 0x20, 0x02, 0xf0, 0xf0, 0x02, 0x8d, 0xf8, 0x07, 0x20, 0xfd, 0xf7, 0xfa, 0xff, 0x0d, 0xf1, 0x07, 0x02, 0x10, 0x21, 0x34, 0x20, 0xfd, 0xf7, 0xea, 0xff, 0x9d, 0xf8, 0x07, 0x20, 0x10, 0x21, 0x34, 0x20, 0x42, 0xf0, 0x0c, 0x02, 0x8d, 0xf8, 0x07, 0x20, 0xfd, 0xf7, 0xea, 0xff, 0x0d, 0xf1, 0x07, 0x02, 0x22, 0x21, 0x34, 0x20, 0xfd, 0xf7, 0xda, 0xff, 0x9d, 0xf8, 0x07, 0x20, 0x22, 0x21, 0x34, 0x20, 0x42, 0xf0, 0x02, 0x02, 0x8d, 0xf8, 0x07, 0x20, 0xfd, 0xf7, 0xda, 0xff, 0x0d, 0xf1, 0x07, 0x02, 0x23, 0x21, 0x34, 0x20, 0xfd, 0xf7, 0xca, 0xff, 0x9d, 0xf8, 0x07, 0x20, 0x23, 0x21, 0x34, 0x20, 0x02, 0xf0, 0xfe, 0x02, 0x8d, 0xf8, 0x07, 0x20, 0xfd, 0xf7, 0xca, 0xff, 0x47, 0x20, 0x02, 0xb0, 0x10, 0xbd, 0x04, 0x48, 0x2c, 0xe7, 0x80, 0x1a, 0x06, 0x00, 0x4d, 0xc9, 0x02, 0x00, 0x64, 0xc9, 0x02, 0x00, 0x7b, 0xc9, 0x02, 0x00, 0x87, 0xc9, 0x02, 0x00, 0x38, 0xb5, 0x88, 0x22, 0x0d, 0x4c, 0x05, 0x46, 0x00, 0x21, 0x20, 0x46, 0xfd, 0xf7, 0x98, 0xf9, 0x0b, 0x4a, 0xa4, 0xf5, 0x50, 0x73, 0x65, 0x60, 0xa4, 0xf5, 0x42, 0x75, 0x29, 0x46, 0x04, 0xf1, 0x08, 0x00, 0xc3, 0xf8, 0x40, 0x23, 0x80, 0x22, 0xfd, 0xf7, 0x90, 0xf9, 0x29, 0x46, 0x80, 0x22, 0x4f, 0xf0, 0x81, 0x40, 0xbd, 0xe8, 0x38, 0x40, 0xfd, 0xf7, 0x88, 0xb9, 0x40, 0x83, 0x02, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x38, 0xb5, 0x02, 0x22, 0x19, 0x4c, 0x04, 0xf1, 0xbc, 0x01, 0xd4, 0xf8, 0xb8, 0x00, 0xfd, 0xf7, 0xe5, 0xfa, 0x04, 0xf5, 0x3e, 0x71, 0x16, 0x48, 0xfd, 0xf7, 0xa6, 0xfa, 0xfd, 0xf7, 0x42, 0xf8, 0x05, 0x46, 0x08, 0xbb, 0x13, 0x48, 0xfd, 0xf7, 0x9f, 0xfa, 0x04, 0xf1, 0x38, 0x01, 0x28, 0x46, 0xff, 0xf7, 0x96, 0xfc, 0x04, 0x46, 0xfd, 0xf7, 0xa7, 0xfc, 0x08, 0xb1, 0xfd, 0xf7, 0xe0, 0xfc, 0x54, 0xb1, 0x01, 0x20, 0xff, 0xf7, 0xba, 0xff, 0x0b, 0x48, 0xfd, 0xf7, 0x8d, 0xfa, 0x0a, 0x20, 0xfd, 0xf7, 0x16, 0xf8, 0x20, 0x46, 0x38, 0xbd, 0x20, 0x46, 0xff, 0xf7, 0xaf, 0xff, 0x07, 0x48, 0xfd, 0xf7, 0x82, 0xfa, 0xfe, 0xe7, 0xf2, 0xe7, 0x00, 0x24, 0xf3, 0xe7, 0x00, 0x80, 0x02, 0x00, 0xdd, 0xc9, 0x02, 0x00, 0xf2, 0xc9, 0x02, 0x00, 0x06, 0xca, 0x02, 0x00, 0x14, 0xca, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x28, 0x28, 0x28, 0x28, 0x28, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0xa0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x10, 0x10, 0x10, 0x10, 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, 0x00, 0xa0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x10, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x41, 0x57, 0x55, 0xaa, 0x01, 0x02, 0x03, 0x04, 0x04, 0x03, 0x02, 0x01, 0xa1, 0xb1, 0xa3, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x13, 0x04, 0x0f, 0x0c, 0x03, 0x0d, 0x0e, 0x01, 0x0a, 0x16, 0x14, 0x11, 0x10, 0x06, 0x08, 0x07, 0x09, 0x15, 0x02, 0x0b, 0x12, 0x13, 0x04, 0x12, 0x02, 0x06, 0x03, 0x05, 0x07, 0x0c, 0x08, 0x0d, 0x0a, 0x09, 0x00, 0x00, 0x00, 0x16, 0x01, 0x0b, 0x11, 0x15, 0x14, 0x6f, 0x70, 0x74, 0x65, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x20, 0x28, 0x25, 0x78, 0x29, 0x2e, 0x2e, 0x2e, 0x2c, 0x64, 0x74, 0x62, 0x20, 0x28, 0x25, 0x78, 0x29, 0x0a, 0x00, 0x4a, 0x75, 0x6d, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x20, 0x28, 0x25, 0x78, 0x29, 0x2e, 0x2e, 0x2e, 0x2c, 0x64, 0x74, 0x62, 0x20, 0x28, 0x25, 0x78, 0x29, 0x0a, 0x00, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x6f, 0x6b, 0x0a, 0x00, 0x73, 0x65, 0x74, 0x20, 0x61, 0x72, 0x69, 0x73, 0x63, 0x20, 0x72, 0x65, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x73, 0x73, 0x65, 0x72, 0x74, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x0a, 0x00, 0x73, 0x65, 0x74, 0x20, 0x61, 0x72, 0x69, 0x73, 0x63, 0x20, 0x72, 0x65, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x65, 0x2d, 0x61, 0x73, 0x73, 0x65, 0x72, 0x74, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x0a, 0x00, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x3a, 0x61, 0x76, 0x63, 0x63, 0x20, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x00, 0x73, 0x65, 0x74, 0x20, 0x70, 0x6c, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x0a, 0x00, 0x70, 0x65, 0x72, 0x69, 0x70, 0x68, 0x30, 0x20, 0x68, 0x61, 0x73, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x0a, 0x00, 0x73, 0x65, 0x74, 0x20, 0x70, 0x6c, 0x6c, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x00, 0x5b, 0x25, 0x64, 0x5d, 0x00, 0x25, 0x73, 0x00, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x62, 0x6f, 0x6f, 0x74, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x6d, 0x3d, 0x25, 0x78, 0x20, 0x73, 0x72, 0x63, 0x5f, 0x73, 0x75, 0x6d, 0x3d, 0x25, 0x78, 0x0a, 0x00, 0x6b, 0x65, 0x79, 0x20, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x3a, 0x20, 0x25, 0x63, 0x0a, 0x00, 0x69, 0x6e, 0x62, 0x75, 0x66, 0x3a, 0x25, 0x78, 0x0a, 0x00, 0x25, 0x30, 0x32, 0x78, 0x20, 0x00, 0x25, 0x73, 0x3a, 0x25, 0x75, 0x3a, 0x20, 0x25, 0x73, 0x3a, 0x20, 0x41, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x60, 0x25, 0x73, 0x27, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x2e, 0x00, 0x46, 0x61, 0x69, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x20, 0x68, 0x65, 0x61, 0x64, 0x0a, 0x00, 0x41, 0x4e, 0x44, 0x52, 0x4f, 0x49, 0x44, 0x21, 0x00, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x3a, 0x25, 0x78, 0x0a, 0x00, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x20, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x20, 0x69, 0x73, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x0a, 0x00, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x50, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x21, 0x21, 0x21, 0x0a, 0x00, 0x62, 0x6f, 0x6f, 0x74, 0x2e, 0x69, 0x6d, 0x67, 0x3a, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x2d, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x0a, 0x00, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x3a, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x2d, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x0a, 0x00, 0x72, 0x61, 0x6d, 0x64, 0x69, 0x73, 0x6b, 0x3a, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x2d, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x0a, 0x00, 0x72, 0x74, 0x63, 0x5b, 0x25, 0x64, 0x5d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x65, 0x72, 0x61, 0x6c, 0x79, 0x20, 0x6a, 0x75, 0x6d, 0x70, 0x20, 0x66, 0x65, 0x6c, 0x0a, 0x00, 0x63, 0x61, 0x72, 0x73, 0x68, 0x64, 0x75, 0x6d, 0x70, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x2c, 0x20, 0x6a, 0x75, 0x6d, 0x70, 0x20, 0x66, 0x65, 0x6c, 0x0a, 0x00, 0x72, 0x74, 0x63, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x20, 0x69, 0x73, 0x20, 0x30, 0x78, 0x25, 0x78, 0x2c, 0x20, 0x73, 0x75, 0x70, 0x65, 0x72, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x20, 0x69, 0x73, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x73, 0x72, 0x63, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x6c, 0x65, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x72, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x2c, 0x20, 0x6c, 0x65, 0x6e, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x63, 0x72, 0x63, 0x20, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x2e, 0x2e, 0x2e, 0x0a, 0x00, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x5f, 0x63, 0x72, 0x63, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x2c, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x72, 0x63, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x63, 0x72, 0x63, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x0a, 0x00, 0x66, 0x69, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x2c, 0x20, 0x6a, 0x75, 0x6d, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x64, 0x64, 0x72, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x62, 0x6f, 0x6f, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x31, 0x0a, 0x00, 0x62, 0x6f, 0x6f, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x32, 0x0a, 0x00, 0x62, 0x6f, 0x6f, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x33, 0x0a, 0x00, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x20, 0x53, 0x45, 0x54, 0x54, 0x49, 0x4e, 0x47, 0x20, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x21, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x5f, 0x56, 0x43, 0x43, 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x25, 0x64, 0x20, 0x6d, 0x76, 0x0a, 0x00, 0x74, 0x72, 0x65, 0x66, 0x69, 0x3a, 0x33, 0x2e, 0x39, 0x6d, 0x73, 0x0a, 0x00, 0x74, 0x72, 0x65, 0x66, 0x69, 0x3a, 0x31, 0x2e, 0x39, 0x35, 0x6d, 0x73, 0x0a, 0x00, 0x74, 0x72, 0x65, 0x66, 0x69, 0x3a, 0x37, 0x2e, 0x38, 0x6d, 0x73, 0x0a, 0x00, 0x5a, 0x51, 0x20, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2c, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x20, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x20, 0x32, 0x34, 0x30, 0x20, 0x6f, 0x68, 0x6d, 0x20, 0x72, 0x65, 0x73, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x2e, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x44, 0x51, 0x21, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x44, 0x51, 0x21, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x68, 0x61, 0x6c, 0x66, 0x20, 0x44, 0x51, 0x21, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x64, 0x75, 0x61, 0x6c, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x68, 0x61, 0x6c, 0x66, 0x20, 0x44, 0x51, 0x21, 0x0a, 0x00, 0x44, 0x58, 0x30, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x44, 0x58, 0x31, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x25, 0x64, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x46, 0x41, 0x49, 0x4c, 0x2e, 0x0a, 0x00, 0x25, 0x78, 0x20, 0x21, 0x3d, 0x20, 0x25, 0x78, 0x20, 0x61, 0x74, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x25, 0x78, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x4f, 0x4b, 0x2e, 0x0a, 0x00, 0x5b, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x3a, 0x20, 0x30, 0x21, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x25, 0x64, 0x20, 0x72, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x25, 0x64, 0x20, 0x62, 0x61, 0x6e, 0x6b, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x0a, 0x00, 0x5b, 0x41, 0x55, 0x54, 0x4f, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x25, 0x64, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x4b, 0x42, 0x20, 0x0a, 0x00, 0x72, 0x61, 0x6e, 0x6b, 0x31, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x30, 0x0a, 0x00, 0x72, 0x61, 0x6e, 0x6b, 0x31, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x30, 0x0a, 0x00, 0x5b, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x61, 0x6e, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x26, 0x77, 0x69, 0x64, 0x74, 0x68, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x20, 0x21, 0x0a, 0x00, 0x5b, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5d, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x61, 0x6e, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x20, 0x21, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x20, 0x5a, 0x51, 0x21, 0x21, 0x0a, 0x00, 0x5a, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x20, 0x5a, 0x51, 0x21, 0x21, 0x0a, 0x00, 0x69, 0x63, 0x20, 0x63, 0x61, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x61, 0x78, 0x70, 0x2c, 0x20, 0x70, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x2e, 0x2e, 0x2e, 0x0a, 0x00, 0x63, 0x68, 0x69, 0x70, 0x20, 0x69, 0x64, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x20, 0x4f, 0x4b, 0x0a, 0x00, 0x56, 0x30, 0x2e, 0x31, 0x36, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x42, 0x4f, 0x4f, 0x54, 0x20, 0x44, 0x52, 0x49, 0x56, 0x45, 0x20, 0x49, 0x4e, 0x46, 0x4f, 0x3a, 0x20, 0x25, 0x73, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x43, 0x4c, 0x4b, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x4d, 0x48, 0x7a, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x54, 0x79, 0x70, 0x65, 0x20, 0x3d, 0x20, 0x25, 0x64, 0x20, 0x28, 0x32, 0x3a, 0x44, 0x44, 0x52, 0x32, 0x2c, 0x33, 0x3a, 0x44, 0x44, 0x52, 0x33, 0x29, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x43, 0x20, 0x5a, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x43, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x4f, 0x44, 0x54, 0x20, 0x20, 0x6f, 0x66, 0x66, 0x2e, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x4f, 0x44, 0x54, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x30, 0x78, 0x25, 0x78, 0x2e, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x4f, 0x44, 0x54, 0x20, 0x6f, 0x66, 0x66, 0x2e, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x3a, 0x20, 0x31, 0x20, 0x21, 0x0a, 0x00, 0x44, 0x52, 0x41, 0x4d, 0x20, 0x53, 0x49, 0x5a, 0x45, 0x20, 0x3d, 0x25, 0x64, 0x20, 0x4d, 0x0a, 0x00, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x41, 0x75, 0x74, 0x6f, 0x20, 0x53, 0x52, 0x0a, 0x00, 0x64, 0x72, 0x61, 0x6d, 0x5f, 0x74, 0x70, 0x72, 0x34, 0x3a, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x64, 0x63, 0x64, 0x63, 0x34, 0x00, 0x62, 0x6c, 0x64, 0x6f, 0x31, 0x00, 0x64, 0x63, 0x64, 0x63, 0x32, 0x00, 0x64, 0x63, 0x64, 0x63, 0x33, 0x00, 0x5b, 0x70, 0x6d, 0x75, 0x5d, 0x3a, 0x20, 0x62, 0x75, 0x73, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x5b, 0x70, 0x6d, 0x75, 0x5d, 0x3a, 0x20, 0x62, 0x75, 0x73, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x00, 0x50, 0x4d, 0x55, 0x3a, 0x20, 0x41, 0x58, 0x50, 0x32, 0x31, 0x0a, 0x00, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x20, 0x50, 0x4d, 0x55, 0x0a, 0x00, 0x62, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x2c, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x3a, 0x20, 0x25, 0x64, 0x0a, 0x00, 0x72, 0x65, 0x61, 0x64, 0x20, 0x72, 0x65, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x77, 0x72, 0x69, 0x74, 0x65, 0x20, 0x72, 0x65, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0a, 0x00, 0x66, 0x65, 0x73, 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x3a, 0x25, 0x73, 0x0a, 0x00, 0x62, 0x65, 0x69, 0x67, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x0a, 0x00, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x6f, 0x6b, 0x0a, 0x00, 0x69, 0x6e, 0x69, 0x74, 0x20, 0x64, 0x72, 0x61, 0x6d, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x03, 0x01, 0x00, 0x00, 0x06, 0x00, 0x0c, 0x01, 0x03, 0x01, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x63, 0x64, 0x63, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xb0, 0x04, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x04, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x14, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x63, 0x64, 0x63, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x48, 0x0d, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xb0, 0x04, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x04, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x06, 0x00, 0x00, 0x48, 0x0d, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x63, 0x64, 0x63, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x30, 0x07, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xb0, 0x04, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x04, 0x00, 0x00, 0x30, 0x07, 0x00, 0x00, 0x14, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x6c, 0x64, 0x6f, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x6c, 0x64, 0x6f, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xac, 0x0d, 0x00, 0x00, 0x64, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0x19, 0x0f, 0x09, 0x53, 0x28, 0x88, 0x68, 0xa4, 0xd8, 0xaf, 0x2a, 0x68, 0x5d, 0x10, 0x69 }; if(type) { if(strcmp(type, "v851") == 0) { static const struct ddr3_param_t ddr2 = { .dram_clk = 533, .dram_type = 2, .dram_zq = 0x7b7bf9, .dram_odt_en = 0x0, .dram_para1 = 0x00d2, .dram_para2 = 0x0, .dram_mr0 = 0xe73, .dram_mr1 = 0x02, .dram_mr2 = 0x0, .dram_mr3 = 0x0, .dram_tpr0 = 0x00471992, .dram_tpr1 = 0x0131a10c, .dram_tpr2 = 0x00057041, .dram_tpr3 = 0xb4787896, .dram_tpr4 = 0x0, .dram_tpr5 = 0x48484848, .dram_tpr6 = 0x48, .dram_tpr7 = 0x1621121e, .dram_tpr8 = 0x0, .dram_tpr9 = 0x0, .dram_tpr10 = 0x00000000, .dram_tpr11 = 0x00000022, .dram_tpr12 = 0x00000077, .dram_tpr13 = 0x34000100, }; fel_write(ctx, 0x00028000, (void *)&ddr_payload[0], sizeof(ddr_payload)); fel_write(ctx, 0x00028038, (void *)&ddr2, sizeof(ddr2)); fel_exec(ctx, 0x00028000); return 1; } else if(strcmp(type, "v853") == 0) { static const struct ddr3_param_t ddr3 = { .dram_clk = 936, .dram_type = 3, .dram_zq = 0x7b7bfb, .dram_odt_en = 0x1, .dram_para1 = 0x0010f2, .dram_para2 = 0x0, .dram_mr0 = 0x1c70, .dram_mr1 = 0x42, .dram_mr2 = 0x18, .dram_mr3 = 0x0, .dram_tpr0 = 0x004A2195, .dram_tpr1 = 0x02423190, .dram_tpr2 = 0x0008B061, .dram_tpr3 = 0xB4787896, .dram_tpr4 = 0x0, .dram_tpr5 = 0x48484848, .dram_tpr6 = 0x48, .dram_tpr7 = 0x1621121e, .dram_tpr8 = 0x0, .dram_tpr9 = 0x0, .dram_tpr10 = 0x0, .dram_tpr11 = 0x00420000, .dram_tpr12 = 0x00000048, .dram_tpr13 = 0x34010100, }; fel_write(ctx, 0x00028000, (void *)&ddr_payload[0], sizeof(ddr_payload)); fel_write(ctx, 0x00028038, (void *)&ddr3, sizeof(ddr3)); fel_exec(ctx, 0x00028000); return 1; } } printf("usage:\r\n"); printf(" xfel ddr v851 - Initial ddr controller for V851\r\n"); printf(" xfel ddr v853 - Initial ddr controller for V853\r\n"); return 0; } static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { static const uint8_t payload[] = { 0x00, 0x00, 0xa0, 0xe3, 0x17, 0x0f, 0x08, 0xee, 0x15, 0x0f, 0x07, 0xee, 0xd5, 0x0f, 0x07, 0xee, 0x9a, 0x0f, 0x07, 0xee, 0x95, 0x0f, 0x07, 0xee, 0xff, 0xff, 0xff, 0xea, 0x5c, 0x00, 0x9f, 0xe5, 0x00, 0xd0, 0x80, 0xe5, 0x04, 0xe0, 0x80, 0xe5, 0x00, 0xe0, 0x0f, 0xe1, 0x08, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x0c, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x1c, 0xee, 0x10, 0xe0, 0x80, 0xe5, 0x10, 0xef, 0x11, 0xee, 0x14, 0xe0, 0x80, 0xe5, 0x29, 0x0a, 0xa0, 0xe3, 0x7d, 0x00, 0x00, 0xeb, 0x28, 0x00, 0x9f, 0xe5, 0x00, 0xd0, 0x90, 0xe5, 0x04, 0xe0, 0x90, 0xe5, 0x14, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x10, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x0c, 0xee, 0x0c, 0x10, 0x90, 0xe5, 0x10, 0x1f, 0x01, 0xee, 0x08, 0x10, 0x90, 0xe5, 0x01, 0xf0, 0x29, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0xe0, 0x0f, 0x04, 0x00, 0xf0, 0x40, 0x2d, 0xe9, 0x00, 0x50, 0x51, 0xe2, 0xf0, 0x80, 0xbd, 0x08, 0x05, 0x1a, 0xa0, 0xe3, 0x52, 0x6c, 0xa0, 0xe3, 0x02, 0x14, 0x40, 0xe3, 0x53, 0x4c, 0xa0, 0xe3, 0x02, 0x64, 0x40, 0xe3, 0x00, 0x70, 0xe0, 0xe3, 0x02, 0x44, 0x40, 0xe3, 0x40, 0x00, 0x55, 0xe3, 0x00, 0x30, 0xa0, 0xe3, 0x07, 0xc0, 0xa0, 0xe1, 0x05, 0x20, 0xa0, 0x31, 0x40, 0x20, 0xa0, 0x23, 0x30, 0x20, 0x81, 0xe5, 0x34, 0x20, 0x81, 0xe5, 0x38, 0x20, 0x81, 0xe5, 0x00, 0xc0, 0xc6, 0xe5, 0x01, 0x30, 0x83, 0xe2, 0x03, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0xca, 0x08, 0x30, 0x91, 0xe5, 0x02, 0x31, 0x83, 0xe3, 0x08, 0x30, 0x81, 0xe5, 0x08, 0x30, 0x91, 0xe5, 0x00, 0x00, 0x53, 0xe3, 0xfc, 0xff, 0xff, 0xba, 0x1c, 0x30, 0x91, 0xe5, 0x73, 0x30, 0xef, 0xe6, 0x03, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x8a, 0x00, 0x30, 0xa0, 0xe3, 0x00, 0xe0, 0xd4, 0xe5, 0x00, 0x00, 0x50, 0xe3, 0x00, 0xc0, 0xa0, 0xe1, 0x01, 0x30, 0x83, 0xe2, 0x7e, 0xe0, 0xef, 0xe6, 0x06, 0x00, 0x00, 0x0a, 0x03, 0x00, 0x52, 0xe1, 0x01, 0xe0, 0xcc, 0xe4, 0x0c, 0x00, 0xa0, 0xe1, 0xf5, 0xff, 0xff, 0xca, 0x02, 0x50, 0x55, 0xe0, 0xdc, 0xff, 0xff, 0x1a, 0xf0, 0x80, 0xbd, 0xe8, 0x03, 0x00, 0x52, 0xe1, 0x01, 0xc0, 0x83, 0xe2, 0x02, 0x30, 0x83, 0xe2, 0xf8, 0xff, 0xff, 0xda, 0x0c, 0x00, 0x52, 0xe1, 0x00, 0xc0, 0xd4, 0xe5, 0xf5, 0xff, 0xff, 0xda, 0x03, 0x00, 0x52, 0xe1, 0x00, 0xc0, 0xd4, 0xe5, 0x01, 0xc0, 0x83, 0xe2, 0x02, 0x30, 0x83, 0xe2, 0xf7, 0xff, 0xff, 0xca, 0x02, 0x50, 0x55, 0xe0, 0xcd, 0xff, 0xff, 0x1a, 0xf0, 0x80, 0xbd, 0xe8, 0xf0, 0x40, 0x2d, 0xe9, 0x00, 0x60, 0x51, 0xe2, 0xf0, 0x80, 0xbd, 0x08, 0x05, 0x1a, 0xa0, 0xe3, 0x52, 0x5c, 0xa0, 0xe3, 0x02, 0x14, 0x40, 0xe3, 0x53, 0x4c, 0xa0, 0xe3, 0x02, 0x54, 0x40, 0xe3, 0x00, 0x70, 0xe0, 0xe3, 0x02, 0x44, 0x40, 0xe3, 0x40, 0x00, 0x56, 0xe3, 0x06, 0x20, 0xa0, 0x31, 0x40, 0x20, 0xa0, 0x23, 0x30, 0x20, 0x81, 0xe5, 0x00, 0x00, 0x50, 0xe3, 0x34, 0x20, 0x81, 0xe5, 0x38, 0x20, 0x81, 0xe5, 0x1a, 0x00, 0x00, 0x0a, 0x00, 0xc0, 0xa0, 0xe1, 0x00, 0x30, 0xa0, 0xe3, 0x01, 0xe0, 0xdc, 0xe4, 0x01, 0x30, 0x83, 0xe2, 0x03, 0x00, 0x52, 0xe1, 0x00, 0xe0, 0xc5, 0xe5, 0xfa, 0xff, 0xff, 0xca, 0x08, 0x30, 0x91, 0xe5, 0x02, 0x31, 0x83, 0xe3, 0x08, 0x30, 0x81, 0xe5, 0x08, 0x30, 0x91, 0xe5, 0x00, 0x00, 0x53, 0xe3, 0xfc, 0xff, 0xff, 0xba, 0x1c, 0x30, 0x91, 0xe5, 0x73, 0x30, 0xef, 0xe6, 0x03, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x8a, 0x00, 0x30, 0xa0, 0xe3, 0x00, 0xc0, 0xd4, 0xe5, 0x01, 0x30, 0x83, 0xe2, 0x03, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0xca, 0x00, 0x00, 0x50, 0xe3, 0x02, 0x00, 0x80, 0x10, 0x02, 0x60, 0x56, 0xe0, 0xdd, 0xff, 0xff, 0x1a, 0xf0, 0x80, 0xbd, 0xe8, 0x00, 0x30, 0xa0, 0xe1, 0x07, 0xc0, 0xa0, 0xe1, 0x00, 0xc0, 0xc5, 0xe5, 0x01, 0x30, 0x83, 0xe2, 0x03, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0xca, 0xe4, 0xff, 0xff, 0xea, 0xf0, 0x43, 0x2d, 0xe9, 0x0f, 0x80, 0x0c, 0xe3, 0xff, 0x8f, 0x4f, 0xe3, 0x05, 0x5a, 0xa0, 0xe3, 0x02, 0x54, 0x40, 0xe3, 0x01, 0x7a, 0xa0, 0xe3, 0x00, 0x72, 0x40, 0xe3, 0x14, 0xd0, 0x4d, 0xe2, 0x00, 0x60, 0xa0, 0xe1, 0x06, 0x40, 0xa0, 0xe1, 0x01, 0x30, 0xd4, 0xe4, 0x01, 0x00, 0x53, 0xe3, 0x1e, 0x00, 0x00, 0x0a, 0x02, 0x00, 0x53, 0xe3, 0x5c, 0x00, 0x00, 0x0a, 0x03, 0x00, 0x53, 0xe3, 0x5f, 0x00, 0x00, 0x0a, 0x04, 0x00, 0x53, 0xe3, 0x63, 0x00, 0x00, 0x0a, 0x05, 0x00, 0x53, 0xe3, 0x68, 0x00, 0x00, 0x0a, 0x06, 0x00, 0x53, 0xe3, 0x77, 0x00, 0x00, 0x0a, 0x07, 0x00, 0x53, 0xe3, 0x86, 0x00, 0x00, 0x0a, 0x08, 0x00, 0x53, 0xe3, 0x93, 0x00, 0x00, 0x1a, 0xb0, 0x80, 0xcd, 0xe1, 0x0d, 0x90, 0xa0, 0xe1, 0x08, 0x60, 0x8d, 0xe2, 0x02, 0x10, 0xa0, 0xe3, 0x09, 0x00, 0xa0, 0xe1, 0xaa, 0xff, 0xff, 0xeb, 0x01, 0x10, 0xa0, 0xe3, 0x06, 0x00, 0xa0, 0xe1, 0x6a, 0xff, 0xff, 0xeb, 0x08, 0x30, 0xdd, 0xe5, 0x01, 0x00, 0x13, 0xe3, 0xf6, 0xff, 0xff, 0x1a, 0x04, 0x60, 0xa0, 0xe1, 0x06, 0x40, 0xa0, 0xe1, 0x01, 0x30, 0xd4, 0xe4, 0x01, 0x00, 0x53, 0xe3, 0xe0, 0xff, 0xff, 0x1a, 0x02, 0x34, 0xa0, 0xe3, 0x01, 0x1a, 0xa0, 0xe3, 0x60, 0x20, 0x93, 0xe5, 0x0f, 0x20, 0xc2, 0xe3, 0x04, 0x20, 0x82, 0xe3, 0x60, 0x20, 0x83, 0xe5, 0x60, 0x20, 0x93, 0xe5, 0xf0, 0x20, 0xc2, 0xe3, 0x40, 0x20, 0x82, 0xe3, 0x60, 0x20, 0x83, 0xe5, 0x60, 0x20, 0x93, 0xe5, 0x0f, 0x2c, 0xc2, 0xe3, 0x01, 0x2b, 0x82, 0xe3, 0x60, 0x20, 0x83, 0xe5, 0x60, 0x20, 0x93, 0xe5, 0x0f, 0x2a, 0xc2, 0xe3, 0x01, 0x29, 0x82, 0xe3, 0x60, 0x20, 0x83, 0xe5, 0x60, 0x20, 0x93, 0xe5, 0x0f, 0x28, 0xc2, 0xe3, 0x01, 0x27, 0x82, 0xe3, 0x60, 0x20, 0x83, 0xe5, 0x60, 0x20, 0x93, 0xe5, 0x0f, 0x26, 0xc2, 0xe3, 0x01, 0x25, 0x82, 0xe3, 0x60, 0x20, 0x83, 0xe5, 0x6c, 0x39, 0x97, 0xe5, 0x01, 0x38, 0x83, 0xe3, 0x6c, 0x39, 0x87, 0xe5, 0x40, 0x39, 0x97, 0xe5, 0x02, 0x31, 0x83, 0xe3, 0x40, 0x39, 0x87, 0xe5, 0x6c, 0x39, 0x97, 0xe5, 0x01, 0x30, 0x83, 0xe3, 0x6c, 0x39, 0x87, 0xe5, 0x40, 0x39, 0x97, 0xe5, 0x03, 0x34, 0xc3, 0xe3, 0x01, 0x34, 0x83, 0xe3, 0x40, 0x39, 0x87, 0xe5, 0x40, 0x39, 0x97, 0xe5, 0x03, 0x3c, 0xc3, 0xe3, 0x40, 0x39, 0x87, 0xe5, 0x40, 0x39, 0x97, 0xe5, 0x0f, 0x30, 0xc3, 0xe3, 0x05, 0x30, 0x83, 0xe3, 0x40, 0x39, 0x87, 0xe5, 0x24, 0x10, 0x85, 0xe5, 0x04, 0x30, 0x95, 0xe5, 0x02, 0x31, 0x83, 0xe3, 0x83, 0x30, 0x83, 0xe3, 0x04, 0x30, 0x85, 0xe5, 0x04, 0x30, 0x95, 0xe5, 0x00, 0x00, 0x53, 0xe3, 0xfc, 0xff, 0xff, 0xba, 0x08, 0x30, 0x95, 0xe5, 0x04, 0x60, 0xa0, 0xe1, 0x03, 0x30, 0xc3, 0xe3, 0x44, 0x30, 0x83, 0xe3, 0x08, 0x30, 0x85, 0xe5, 0x18, 0x30, 0x95, 0xe5, 0x02, 0x31, 0x83, 0xe3, 0x02, 0x39, 0x83, 0xe3, 0x18, 0x30, 0x85, 0xe5, 0x9c, 0xff, 0xff, 0xea, 0x08, 0x30, 0x95, 0xe5, 0x04, 0x60, 0xa0, 0xe1, 0xb0, 0x30, 0xc3, 0xe3, 0x08, 0x30, 0x85, 0xe5, 0x97, 0xff, 0xff, 0xea, 0x08, 0x30, 0x95, 0xe5, 0x04, 0x60, 0xa0, 0xe1, 0xb0, 0x30, 0xc3, 0xe3, 0x80, 0x30, 0x83, 0xe3, 0x08, 0x30, 0x85, 0xe5, 0x91, 0xff, 0xff, 0xea, 0x01, 0x90, 0xd6, 0xe5, 0x02, 0x00, 0x86, 0xe2, 0x09, 0x10, 0xa0, 0xe1, 0x01, 0x60, 0x89, 0xe2, 0x06, 0x60, 0x84, 0xe0, 0x4e, 0xff, 0xff, 0xeb, 0x8a, 0xff, 0xff, 0xea, 0x06, 0x10, 0xd6, 0xe5, 0x09, 0x60, 0x86, 0xe2, 0x07, 0x00, 0x56, 0xe5, 0x04, 0x20, 0x56, 0xe5, 0x08, 0x30, 0x56, 0xe5, 0x02, 0xe0, 0x56, 0xe5, 0x06, 0xc0, 0x56, 0xe5, 0x01, 0x24, 0x82, 0xe1, 0x00, 0x34, 0x83, 0xe1, 0x01, 0x10, 0x56, 0xe5, 0x05, 0x00, 0x56, 0xe5, 0x0e, 0x28, 0x82, 0xe1, 0x0c, 0x38, 0x83, 0xe1, 0x01, 0x1c, 0x82, 0xe1, 0x00, 0x0c, 0x83, 0xe1, 0x3d, 0xff, 0xff, 0xeb, 0x79, 0xff, 0xff, 0xea, 0x06, 0x10, 0xd6, 0xe5, 0x09, 0x60, 0x86, 0xe2, 0x07, 0x00, 0x56, 0xe5, 0x04, 0x20, 0x56, 0xe5, 0x08, 0x30, 0x56, 0xe5, 0x02, 0xe0, 0x56, 0xe5, 0x06, 0xc0, 0x56, 0xe5, 0x01, 0x24, 0x82, 0xe1, 0x00, 0x34, 0x83, 0xe1, 0x01, 0x10, 0x56, 0xe5, 0x05, 0x00, 0x56, 0xe5, 0x0e, 0x28, 0x82, 0xe1, 0x0c, 0x38, 0x83, 0xe1, 0x01, 0x1c, 0x82, 0xe1, 0x00, 0x0c, 0x83, 0xe1, 0xef, 0xfe, 0xff, 0xeb, 0x68, 0xff, 0xff, 0xea, 0x0d, 0x90, 0xa0, 0xe1, 0x08, 0x60, 0x8d, 0xe2, 0x05, 0x30, 0xa0, 0xe3, 0x00, 0x30, 0xcd, 0xe5, 0x01, 0x10, 0xa0, 0xe3, 0x09, 0x00, 0xa0, 0xe1, 0x24, 0xff, 0xff, 0xeb, 0x01, 0x10, 0xa0, 0xe3, 0x06, 0x00, 0xa0, 0xe1, 0xe4, 0xfe, 0xff, 0xeb, 0x08, 0x30, 0xdd, 0xe5, 0x01, 0x00, 0x13, 0xe3, 0xf6, 0xff, 0xff, 0x1a, 0x04, 0x60, 0xa0, 0xe1, 0x78, 0xff, 0xff, 0xea, 0x14, 0xd0, 0x8d, 0xe2, 0xf0, 0x83, 0xbd, 0xe8, 0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x4e, 0x55, 0x00, 0xf3, 0x44, 0xca, 0x28, 0x76, 0x40, 0x9b, 0x16, 0xb7, 0x29, 0x31, 0x7c, 0x80, 0xaf, 0x9b, 0xfe, 0x09, 0xac, 0xee, 0x10, 0x2f, 0x6c, 0x69, 0x62, 0x2f, 0x6c, 0x64, 0x2d, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x2d, 0x61, 0x72, 0x6d, 0x68, 0x66, 0x2e, 0x73, 0x6f, 0x2e, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0xfe, 0xff, 0x6f, 0x60, 0x85, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x5c, 0x85, 0x02, 0x00, 0x06, 0x00, 0x00, 0x00, 0x4c, 0x85, 0x02, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xfb, 0xff, 0xff, 0x6f, 0x01, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x85, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; fel_write(ctx, 0x00028000, (void *)&payload[0], sizeof(payload)); if(swapbuf) *swapbuf = 0x0002a000; if(swaplen) *swaplen = 65536; if(cmdlen) *cmdlen = 4096; return 1; } static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { fel_write(ctx, 0x00029000, (void *)cbuf, clen); fel_exec(ctx, 0x00028000); return 1; } enum { SID_PRCTL = 0x03006000 + 0x040, SID_PRKEY = 0x03006000 + 0x050, SID_RDKEY = 0x03006000 + 0x060, EFUSE_HV_SWITCH = 0x07090000 + 0x204, }; static uint32_t efuse_read(struct xfel_ctx_t * ctx, uint32_t offset) { uint32_t val; val = payload_read32(ctx, SID_PRCTL); val &= ~((0x1ff << 16) | 0x3); val |= offset << 16; payload_write32(ctx, SID_PRCTL, val); val &= ~((0xff << 8) | 0x3); val |= (0xac << 8) | 0x2; payload_write32(ctx, SID_PRCTL, val); while(payload_read32(ctx, SID_PRCTL) & 0x2); val &= ~((0x1ff << 16) | (0xff << 8) | 0x3); payload_write32(ctx, SID_PRCTL, val); val = payload_read32(ctx, SID_RDKEY); return val; } static void efuse_write(struct xfel_ctx_t * ctx, uint32_t offset, uint32_t value) { uint32_t val; payload_write32(ctx, EFUSE_HV_SWITCH, 0x1); payload_write32(ctx, SID_PRKEY, value); val = payload_read32(ctx, SID_PRCTL); val &= ~((0x1ff << 16) | 0x3); val |= offset << 16; payload_write32(ctx, SID_PRCTL, val); val &= ~((0xff << 8) | 0x3); val |= (0xac << 8) | 0x1; payload_write32(ctx, SID_PRCTL, val); while(payload_read32(ctx, SID_PRCTL) & 0x1); val &= ~((0x1ff << 16) | (0xff << 8) | 0x3); payload_write32(ctx, SID_PRCTL, val); payload_write32(ctx, EFUSE_HV_SWITCH, 0x0); } static const struct sid_section_t { char * name; uint32_t offset; uint32_t size_bits; } sids[] = { { "chipid", 0x0000, 128 }, { "brom-conf-try", 0x0010, 32 }, { "thermal-sensor", 0x0014, 64 }, { "ft-zone", 0x001c, 128 }, { "reserved1", 0x002c, 96 }, { "write-protect", 0x0038, 32 }, { "read-protect", 0x003c, 32 }, { "lcjs", 0x0040, 32 }, { "reserved2", 0x0044, 800 }, { "rotpk", 0x00a8, 256 }, { "reserved3", 0x00c8, 448 }, }; static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { if(argc > 0) { if(!strcmp(argv[0], "efuse")) { argc -= 1; argv += 1; if(argc > 0) { if(!strcmp(argv[0], "dump") && (argc == 1)) { uint32_t buffer[2048 / 4]; for(int n = 0; n < ARRAY_SIZE(sids); n++) { uint32_t count = sids[n].size_bits / 32; for(int i = 0; i < count; i++) buffer[i] = efuse_read(ctx, sids[n].offset + i * 4); printf("%s:(0x%04x %d-bits)", sids[n].name, sids[n].offset, sids[n].size_bits); for(int i = 0; i < count; i++) { if(i >= 0 && ((i % 8) == 0)) printf("\r\n%-4s", ""); printf("%08x ", buffer[i]); } printf("\r\n"); } return 1; } else if(!strcmp(argv[0], "read32") && (argc == 2)) { uint32_t offset = strtoul(argv[1], NULL, 0); printf("0x%08x\r\n", efuse_read(ctx, offset)); return 1; } else if(!strcmp(argv[0], "write32") && (argc == 3)) { uint32_t offset = strtoul(argv[1], NULL, 0); size_t value = strtoul(argv[2], NULL, 0); efuse_write(ctx, offset, value); return 1; } else if(!strcmp(argv[0], "write") && (argc == 3)) { uint32_t offset = strtoul(argv[1], NULL, 0); uint64_t len; void * buf = file_load(argv[2], &len); if(buf && (len > 0)) { uint8_t * p = buf; uint32_t l = len; uint32_t o = 0; uint32_t v; while(l >= 4) { v = *((uint32_t *)p); efuse_write(ctx, offset + o, v); l -= 4; o += 4; p += 4; } if(l > 0) { uint32_t v = 0; for(int i = 0; i < l; i++) v = ((v << 8) & 0xffffff00) | p[i]; efuse_write(ctx, offset + o, v); } free(buf); return 1; } } } } } printf("usage:\r\n"); printf(" xfel extra efuse dump - Dump all of the efuse information\r\n"); printf(" xfel extra efuse read32 - Read 32-bits value from efuse\r\n"); printf(" xfel extra efuse write32 - Write 32-bits value to efuse\r\n"); printf(" xfel extra efuse write - Write file to efuse\r\n"); return 0; } struct chip_t v851_v853 = { .name = "V851/V853", .detect = chip_detect, .reset = chip_reset, .sid = chip_sid, .jtag = chip_jtag, .ddr = chip_ddr, .spi_init = chip_spi_init, .spi_run = chip_spi_run, .extra = chip_extra, }; xfel-1.3.5/docs/000077500000000000000000000000001512120643700134075ustar00rootroot00000000000000xfel-1.3.5/docs/.nojekyll000066400000000000000000000000001512120643700152250ustar00rootroot00000000000000xfel-1.3.5/docs/README.md000066400000000000000000000221121512120643700146640ustar00rootroot00000000000000

XFEL logo

XFEL

Tiny FEL tools for Allwinner SOC.

# About XFEL Tiny FEL tools for Allwinner SOC. ## FEL FEL is a low-level subroutine contained in the BootROM on Allwinner devices. It is used for initial programming and recovery of devices using USB. # Usage ``` usage: xfel version - Show chip version xfel hexdump
- Dumps memory region in hex xfel dump
- Binary memory dump to stdout xfel read32
- Read 32-bits value from device memory xfel write32
- Write 32-bits value to device memory xfel read
- Read memory to file xfel write
- Write file to memory xfel exec
- Call function address xfel reset - Reset device using watchdog xfel sid - Show sid information xfel jtag - Enable jtag debug xfel ddr [type] - Initial ddr controller with optional type xfel sign - Generate ecdsa256 signature file for sha256 of sid xfel spinor - Detect spi nor flash xfel spinor erase
- Erase spi nor flash xfel spinor read
- Read spi nor flash to file xfel spinor write
- Write file to spi nor flash xfel spinand - Detect spi nand flash xfel spinand erase
- Erase spi nand flash xfel spinand read
- Read spi nand flash to file xfel spinand write
- Write file to spi nand flash xfel spinand splwrite
- Write file to spi nand flash with split support xfel extra [...] - The extra commands ``` # Support Lists ✅: Supported — âŒ: Not Supported Yet — 🚫: None | Chip | CPU | ID | Basic | Reset | Sid | Jtag | DDR | SPI Nor Flash | SPI Nand Flash | | -------- | :----- | :----- | -------- | :------- | -------- | -------- | -------- | -------- | -------- | | A10 | ARM Cortex-A8 @ 1Ghz | 0x00162300 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | A10s | ARM Cortex-A8 @ 1Ghz | 0x00162500 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | A13 | ARM Cortex-A8 @ 1Ghz | 0x00162500 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | R8 | ARM Cortex-A8 @ 1Ghz | 0x00162500 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | A20 | Dual-Core ARM Cortex-A7 | 0x00165100 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | A23 | Dual-Core ARM Cortex-A7 @ 1.5GHz | 0x00165000 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | A31 | Quad-Core ARM Cortex-A7 | 0x00163300 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | A33 | Quad-Core ARM Cortex-A7 @ 1.2GHz | 0x00166700 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | R16 | Quad-Core ARM Cortex-A7 @ 1.2GHz | 0x00166700 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | A40i | Quad-Core ARM Cortex-A7 @ 1.2 GHz | 0x00170100 | ✅ | ✅ | ✅ | ⌠| ✅ | ⌠| ⌠| | R40 | Quad-Core ARM Cortex-A7 @ 1.2 GHz | 0x00170100 | ✅ | ✅ | ✅ | ⌠| ✅ | ⌠| ⌠| | A50 | Quad-Core ARM Cortex-A7 @ 1.8GHz | 0x00175500 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | A64 | Quad-Core ARM Cortex-A53 | 0x00168900 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | A80 | Octa-core big.LITTLE Cortex-A15/7 | 0x00163900 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | A83T | Octa-core Cortex-A7 @ 1.6GHz | 0x00167300 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | D1 | XuanTie C906 RISC-V | 0x00185900 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | D1s | XuanTie C906 RISC-V | 0x00185900 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | F133 | XuanTie C906 RISC-V | 0x00185900 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | F1C100S | Single-core ARM9 | 0x00166300 | ✅ | ✅ | 🚫 | ✅ | ✅ | ✅ | ✅ | | F1C200S | Single-core ARM9 | 0x00166300 | ✅ | ✅ | 🚫 | ✅ | ✅ | ✅ | ✅ | | F1C500S | Single-core ARM9 | 0x00166300 | ✅ | ✅ | 🚫 | ✅ | ✅ | ✅ | ✅ | | H2 | Quad-Core ARM Cortex-A7 | 0x00168000 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | H3 | Quad-Core ARM Cortex-A7 @ 1.296GHz | 0x00168000 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | H5 | Quad-Core ARM Cortex-A53 | 0x00171800 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | H6 | Quad-Core ARM Cortex-A53 @ 1.8GHz | 0x00172800 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | H313 | Quad-Core ARM Cortex-A53 | 0x00182300 | ✅ | ⌠| ⌠| ⌠| ✅ | ⌠| ⌠| | H616 | Quad-Core ARM Cortex-A53 | 0x00182300 | ✅ | ⌠| ⌠| ⌠| ✅ | ⌠| ⌠| | H618 | Quad-Core ARM Cortex-A53 | 0x00182300 | ✅ | ⌠| ⌠| ⌠| ✅ | ⌠| ⌠| | R128 | ARM Cortex-M33 and C906 RISC-V | 0x00188300 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | R328 | Dual-Core Cortex-A7 | 0x00182100 | ✅ | ⌠| ✅ | ⌠| ⌠| ⌠| ⌠| | R329 | Dual-Core Cortex-A53 | 0x00185100 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | R528 | Dual-Core Cortex-A7 | 0x00185900 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | T113 | Dual-Core Cortex-A7 | 0x00185900 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | T507 | Quad-Core ARM Cortex-A53 | 0x00182300 | ✅ | ⌠| ⌠| ⌠| ✅ | ⌠| ⌠| | V3s | Single-core Cortex-A7 | 0x00168100 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | S3 | Single-core Cortex-A7 | 0x00168100 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | V536 | Dual-Core Cortex-A7 | 0x00181600 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | V821 | Andes A272L2 32Bit RISC-V and E907 RISC-V | 0x00188200 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | V831 | Single-core Cortex-A7 800Mhz | 0x00181700 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | V851 | Single-core Cortex-A7 1Ghz + E907 RISC-V | 0x00188600 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | V853 | Single-core Cortex-A7 1Ghz + E907 RISC-V | 0x00188600 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | A523 | Octa-core Cortex-A55 2.0Ghz + E906 RISC-V + HIFI4 DSP | 0x00189000 | ✅ | ✅ | ✅ | ⌠| ✅ | ⌠| ⌠| | A527 | Octa-core Cortex-A55 2.0Ghz + E906 RISC-V + HIFI4 DSP | 0x00189000 | ✅ | ✅ | ✅ | ⌠| ✅ | ⌠| ⌠| | T527 | Octa-core Cortex-A55 2.0Ghz + E906 RISC-V + HIFI4 DSP | 0x00189000 | ✅ | ✅ | ✅ | ⌠| ✅ | ⌠| ⌠| | MR527 | Octa-core Cortex-A55 2.0Ghz + E906 RISC-V + HIFI4 DSP | 0x00189000 | ✅ | ✅ | ✅ | ⌠| ✅ | ⌠| ⌠| # Build from source ## Linux platform The xfel tools depends on the `libusb-1.0` library, you need to install `libusb-1.0-0-dev` before compile, for example in ubuntu: ```shell sudo apt install libusb-1.0-0-dev ``` Then just type `make` at the root directory, you will see a binary program. ```shell cd xfel make sudo make install ``` ## Window platform Windows adopts the cross-compilation method, to install the cross-compilation tool chain in Ubuntu, using: ```shell sudo apt install mingw-w64 sudo apt install autoconf sudo apt install libtool-bin ``` And build libusb for cross-compilation. ```shell git clone https://github.com/libusb/libusb.git cd libusb ./autogen.sh ./configure --host=i686-w64-mingw32 --prefix=/usr/i686-w64-mingw32/ make sudo make install ``` Build xfel source code ```shell cd xfel CROSS=i686-w64-mingw32- make ``` For 64-bits windows, you can using `x86_64-w64-mingw32-` instead of `i686-w64-mingw32` above. ## macOS platform ?> _TODO_ Add macOS ARM support Before start, make sure the `Command Line Tools` is installed. Install `libusb` using [brew](https://brew.sh/) ```shell brew install libusb ``` Then just type `make` at the root directory, you will see a binary program. ```shell cd xfel make ``` # Download and install ## Windows platform Get the latest prebuild at [RELEASE](https://github.com/xboot/xfel/releases/latest) # Examples ## F1C100s: Write U-Boot to DDR and execute U-Boot ``` xfel ddr # Initial ddr controller xfel write 0x81700000 u-boot.bin # write uboot to 0x81700000 xfel exec 0x81700000 # Call the function and exectue ``` ## F1C200s: Write System to SPI NAND Flash ``` xfel spinand xfel spinand erase 0x000000 134217728 xfel spinand write 0x000000 u-boot-sunxi-with-nand-spl.bin xfel spinand write 0x80000 splash.bmp xfel spinand write 0x100000 kernel.itb xfel spinand write 0x600000 rootfs.squashfs ``` ## F133: Write OpenSBI to DDR and execute it ``` xfel ddr f133 # Initial ddr controller for f133 xfel write 0x80200000 opensbi.bin # write opensbi to 0x80200000 xfel exec 0x80200000 # Call the function and exectue ``` ?> Want to add more examples? Using the pull requests at [https://github.com/xboot/xfel/pulls](https://github.com/xboot/xfel/pulls) xfel-1.3.5/docs/_sidebar.md000066400000000000000000000000001512120643700154670ustar00rootroot00000000000000xfel-1.3.5/docs/favicon.ico000066400000000000000000002040761512120643700155410ustar00rootroot00000000000000€€ ((€ 9¼ë6²ßJ:½ìÃ8·æS•ÿÿ<Å÷(³R`ÿÛ&§LS'®O½)µS2(´R<Å÷( 4©Õ';¿ï¿=Çùÿ<Ãõ×3¥ÏC£ÿÿ  mÿÜ"–DC(²Q×)µRÿ'®O´#šF'u4(²R2£Í1¡Ê&<Âô·=Å÷ÿ=Æøÿ=Æøÿ:½íÅ-“¸.Pÿÿ"nŠd.5ðm†=.'­NÅ)µRÿ)µRÿ)´Rÿ(±Q·!“C&!”D<Å÷-´6¯Ü(9¹è¶=Å÷ý=Æøÿ=Æøÿ=Æøÿ=Æøþ:¾îÌ5®ÚHFêÿ<Å÷(³R/Ób$ŸHH'­OÌ)µRþ)µRÿ)µRÿ)µRÿ)´Rý&©M¶$ I(„;(³R;Äö1¢Ë'<Âó¶=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ<ÅöÚ5¬ØHÿÿÿ .=)ÿÿÿ#HH)³QÚ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ(±P¶!“C''³RLùÿ6¯ÜC<ÂóÉ=Å÷ü=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ:¾î×6²ßILýÿ<Å÷(³R2äj$¢JI'®O×)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)´Rü(±PÉ$ IC3äg;Äö&y™2£Í';ÁòÄ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ<ÄöÙ4«ÖFVÿÿ:ÿt#œGF)³QÙ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ(°PÄ!”D'p2'±R=Çù3¨Ó'<Ãô·=Å÷ý=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ:½íÈ-’·.ÿÿYpQ%`ÿÅ…=.'­OÈ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)´Rý(²Q·"™F')µR<Å÷&z™3§Ò'9¹èµ=Æ÷þ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøý:½íÉ4©ÔFCßÿ<Å÷(²R,É^#šFF'­OÉ)µRý)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRþ&©Mµ"˜E'q2(²R1ºì5¬×2£Í&<Ãô·=Æ÷þ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ<ÄöÙ7²ßIÿÿÿ-”»‡>¶ÿÿ$¢JI)³QÙ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRþ(²Q·!•D&$G©R,´ÿÿÿ5¯ÜC;ÁòÄ=Å÷ý=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ:¾î×5¬ØIEåÿ<Å÷(²R.Ï`#HI'®O×)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)´Rý(°PÄ$ ICÿÿÿƒ<8Áó/–¼1¡Ë'<ÂóÉ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ<ÄöÚ6¯ÜH\ÿÿ>ÿ|$ IH)³QÚ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ(±PÉ!“C'Š>$«RIïÿ6°Ü(<Âó¶=Å÷ý=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ:¾îÌ-’·.ÿÿÿ;K 5ÿÿÿ…=.'­OÌ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)´Rý(±P¶$ I(1Ùc;Äö(~Ÿ1ŸÈ&9¹è¶=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøý:½íÅ3¥ÏD7Àò;Äö'±R#©R"–DD'­NÅ)µRý)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ&©M¶ ‘B&u4'±RAÔÿ4ªÖ(<Âô·=Å÷ý=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ<Ãõ×8·åJ,´‚;%§LJ(²Q×)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)´Rý(±Q·#›G(,ÂX=Æù1;¿ï´=Å÷ÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ;¾îÔ1ŸÇ6AÚÿ;Äö'²R+Ä\!‘B6'®OÔ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)´Rÿ'®O´(µS1:¾î½=Çùý=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ<ÄõÔ7´áJ-“¹†=%¤KJ(³QÔ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRý'®O½8·æS<ÃõÖ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ;Áò×:½íH4C'€¢u5 /'¬NH(°P×)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ(²QÖ&§LS7Àò3¥ÏC:½íÅ=Æøý=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Çùÿ;¿ðÙ3¥ÐI_ÿÿ.–½‰>Aÿ"—EI(¯OÙ)¶Rÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRý'­NÅ"–DC#©R;Kÿÿÿ-’·.:¾îÌ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ<Âó×9»ëI4D*ˆ«|8 0&ªNI(±P×)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ'­OÌ…=.ÿÿÿ 5\ÿÿ6¯ÜH<ÄöÚ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æùÿ;¿ïØ0›Â6AÒÿ+ÀW @6'®OØ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)³QÚ$ IH>ÿ|<Å÷Eåÿ5¬ØI:¾î×=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ:½í¼0Å;#t“+±€:j0 A;'­N¼)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ'®O×#HI.Ï`(²R-”»ÿÿÿ7²ßI<ÄöÙ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ;ÀðÙ:½íHhƒ^+'¬OH(¯OÙ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)³QÙ$¢JI¶ÿÿ‡><Å÷Cßÿ4©ÔF:½íÉ=Æøý=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Çùÿ;ÀñØ3¥ÐJ,‘¶„<"—EJ(°PØ)¶Rÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRý'­OÉ#šFF,É^(²RYpÿÿ-’·.:½íÈ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ;ÀñØ:½íH &2%{›p3"'¬OH(°PØ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ'­OÈ…=.`ÿÅQ%Vÿÿ4«ÖF<ÄöÙ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Çùÿ;ÀðØ0Æ;Løÿe\*3ãf A;(¯OØ)¶Rÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)³QÙ#œGF:ÿt<Å÷Lýÿ6²ßI:¾î×=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ:½í¼/™À5$v–)…§y7l1‹@5'­N¼)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ'®O×$¢JI2äj(³R .=ÿÿÿ5¬ØH<ÅöÚ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ;¿ïØ9»ëI_ÿÿAÿ{&«NI'®OØ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)³QÚ#HHÿÿÿ)<Å÷Fêÿ5®ÚH:¾îÌ=Æøþ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æùÿ<Âó×3¥ÐITk*‹¯~:L#"—EI(±P×)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRþ'­OÌ$ŸHH/Ób(³R"nŠPÿÿ-“¸.:½íÅ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ;¿ðÙ:½íHUlM#'¬NH(¯OÙ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ'­Nņ=.5ðmd. £ÿÿ3¥ÏD<Ãõ×=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Çùÿ;Áò×1 É?aÿÿRg(³R5õr%¤KJ(°P×)¶Rÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ(²Q×"–DDmÿÜ <Å÷•ÿÿ8·æJ;¾îØ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ:½í¾.•»1H]#s‘i0#šFH(³QØ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ'®OÔ&§LJ`ÿÛ(³R#s‘4¨ÓH<ÄõØ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ;¾îÔ8·æJ•ÿÿ<Å÷(³R`ÿÛ&§LJ'®OØ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ(³QÔ!‘B6&i0<Å÷Qÿÿ7´áJ;Áò×=Çùÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ<Ãõ×3¥ÏD£ÿÿ  mÿÜ"–DD(²Q×)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)¶Rÿ(°P×%¤KJ5õr(³RUl:½íH;¿ðÙ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ:½íÅ-“¸.Pÿÿ"nŠd.5ðm†=.'­NÅ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ(¯OÙ'¬NHM#*‹¯Tk3¥ÐI<Âó×=Æùÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøþ:¾îÌ5®ÚHFêÿ<Å÷(³R/Ób$ŸHH'­OÌ)µRþ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ(±P×"—EIL#~:_ÿÿ9»ëI;¿ïØ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ<ÅöÚ5¬ØHÿÿÿ .=)ÿÿÿ#HH)³QÚ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ'®OØ&«NIAÿ{)…§$v–/™À5:½í¼=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ:¾î×6²ßILýÿ<Å÷(³R2äj$¢JI'®O×)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ'­N¼‹@5l1y7eLøÿ0Æ;;ÀðØ=Çùÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ<ÄöÙ4«ÖFVÿÿ:ÿt#œGF)³QÙ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)¶Rÿ(¯OØ A;3ãf\*%{› &2:½íH;ÀñØ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ:½íÈ-’·.ÿÿYpQ%`ÿÅ…=.'­OÈ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ(°PØ'¬OH"p3,‘¶3¥ÐJ;ÀñØ=Çùÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøý:½íÉ4©ÔFCßÿ<Å÷(²R,É^#šFF'­OÉ)µRý)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)¶Rÿ(°PØ"—EJ„<hƒ:½íH;ÀðÙ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ<ÄöÙ7²ßIÿÿÿ-”»‡>¶ÿÿ$¢JI)³QÙ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ(¯OÙ'¬OH^++±#t“0Å;:½í¼=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ:¾î×5¬ØIEåÿ<Å÷(²R.Ï`#HI'®O×)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ'­N¼ A;j0€:AÒÿ0›Â6;¿ïØ=Æùÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ<ÄöÚ6¯ÜH\ÿÿ>ÿ|$ IH)³QÚ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ'®OØ @6+ÀW*ˆ«4D9»ëI<Âó×=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ:¾îÌ-’·.ÿÿÿ;K 5ÿÿÿ…=.'­OÌ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ(±P×&ªNI 0|8.–½_ÿÿ3¥ÐI;¿ðÙ=Çùÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøý:¾î¿7²ß8¶ä&¦K%£J'®O¿)µRý)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)¶Rÿ(¯OÙ"—EIAÿ‰>'€¢4C:½íH;Áò×=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøñ=Çù%=Çù)¶R)¶R%)µRñ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ(°P×'¬NH /u5-“¹7´áJ<ÄõØ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøñ=Æø%=Æø)µR)µR%)µRñ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ(³QØ%¤KJ†=;ÄöBÞÿ4¨ÓH;¾îØ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøñ=Æø%=Æø)µR)µR%)µRñ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ'®OØ#šFH+Ç]'²R,´8·åJ<Ãõ×=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøñ=Æø%=Æø)µR)µR%)µRñ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ(²Q×%§LJ‚;;Äö7Àò3¥ÏD:½íÅ=Æøý=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøñ=Æø%=Æø)µR)µR%)µRñ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRý'­NÅ"–DD#©R'±R;Kÿÿÿ-’·.:¾îÌ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøñ=Æø%=Æø)µR)µR%)µRñ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ'­OÌ…=.ÿÿÿ 5\ÿÿ6¯ÜH<ÄöÚ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøñ=Æø%=Æø)µR)µR%)µRñ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)³QÚ$ IH>ÿ|<Å÷Eåÿ5¬ØI:¾î×=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøñ=Æø%=Æø)µR)µR%)µRñ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ'®O×#HI.Ï`(²R-”»ÿÿÿ7²ßI<ÄöÙ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøñ=Æø%=Æø)µR)µR%)µRñ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)³QÙ$¢JI¶ÿÿ‡><Å÷Cßÿ4©ÔF:½íÉ=Æøý=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøñ=Æø%=Æø)µR)µR%)µRñ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRý'­OÉ#šFF,É^(²RYpÿÿ-’·.:½íÈ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøñ=Æø%=Æø)µR)µR%)µRñ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ'­OÈ…=.`ÿÅQ%Vÿÿ4«ÖF<ÄöÙ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøñ=Æø%=Æø)µR)µR%)µRñ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)³QÙ#œGF:ÿt<Å÷Lýÿ6²ßI:¾î×=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøñ=Æø%=Æø)µR)µR%)µRñ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ'®O×$¢JI2äj(³R .=ÿÿÿ5¬ØH<ÅöÚ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøñ=Æø%=Æø)µR)µR%)µRñ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)³QÚ#HHÿÿÿ)<Å÷Fêÿ5®ÚH:¾îÌ=Æøþ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøÿ=Æøñ=Æø%=Æø)µR)µR%)µRñ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRÿ)µRþ'­OÌ$ŸHH/Ób(³R"nŠPÿÿ-“¸.:¾î¿=Æøó=Æøñ=Æøñ=Æøñ=Æøñ=Æøñ=Æøñ=Æøñ=Æøñ=Æøñ=Æøñ=Æøñ=Æøñ=Æøñ=Æøñ=Æøã=Æø#=Æø)µR)µR#)µRã)µRñ)µRñ)µRñ)µRñ)µRñ)µRñ)µRñ)µRñ)µRñ)µRñ)µRñ)µRñ)µRñ)µRñ)µRó'®O¿†=.5ðmd. 7²ß=Çù&=Æø%=Æø%=Æø%=Æø%=Æø%=Æø%=Æø%=Æø%=Æø%=Æø%=Æø%=Æø%=Æø%=Æø&=Æø#=Æø=Æø)µR)µR)µR#)µR&)µR%)µR%)µR%)µR%)µR%)µR%)µR%)µR%)µR%)µR%)µR%)µR%)µR%)¶R&%£J +8Ò0>ê&0>é%0>é%0>é%0>é%0>é%0>é%0>é%0>é%0>é%0>é%0>é%0>é%0>é%0>é&0>é#0>é0>éð~7ð~7ð~7#ð~7&ð~7%ð~7%ð~7%ð~7%ð~7%ð~7%ð~7%ð~7%ð~7%ð~7%ð~7%ð~7%ð~7%ñ~7&Øq2 #@Rÿ$.­..<à¿0>éó0>éñ0>éñ0>éñ0>éñ0>éñ0>éñ0>éñ0>éñ0>éñ0>éñ0>éñ0>éñ0>éñ0>éñ0>éã0>é#0>éð~7ð~7#ð~7ãð~7ñð~7ñð~7ñð~7ñð~7ñð~7ñð~7ñð~7ñð~7ñð~7ñð~7ñð~7ñð~7ñð~7ñð~7óçy5¿²^(.ÿ§H…G0>ç9Jÿ*6ÌH.;ßÌ0>éþ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éñ0>é%0>éð~7ð~7%ð~7ñð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7þæy5ÌÓo0Hÿ–@ï~6 7ÿÿÿ*6ËH0>çÚ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éñ0>é%0>éð~7ð~7%ð~7ñð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿî}6ÚÑn/Hÿÿÿ; 0>ç>Qÿ+8ÑI.;à×0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éñ0>é%0>éð~7ð~7%ð~7ñð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿæy5רq1Iÿ£Eï~6DXÿ*5ÉF0=çÙ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éñ0>é%0>éð~7ð~7%ð~7ñð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿî}6ÙÏm/Fÿ²Mhs•ÿ$.¬..;ßÈ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éñ0>é%0>éð~7ð~7%ð~7ñð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿæy4ȱ^(.ÿÿ‚l90>æ7Gÿ)5ÇF.;ßÉ0>éý0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éñ0>é%0>éð~7ð~7%ð~7ñð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ýæy4ÉÍl.Fÿ<ï~6$.¯Ðÿÿ+8ÑI0=çÙ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éñ0>é%0>éð~7ð~7%ð~7ñð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿî}6ÙØr1Iÿÿùµ_(0>æ8Iÿ*6ËI.;à×0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éñ0>é%0>éð~7ð~7%ð~7ñð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿæy5×Ñn/Iÿ“>ï~6H^ÿ+7ÎH0>çÚ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éñ0>é%0>éð~7ð~7%ð~7ñð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿî}6ÚÕp0Hÿ¾TEÿÿÿ$.¬..;ßÌ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éñ0>é%0>éð~7ð~7%ð~7ñð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿæy5̱^(.ÿÿÿH'0>å0>Ý(4ÂD.;ßÅ0>éý0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éñ0>é%0>éð~7ð~7%ð~7ñð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ýåy4ÅÈi-Dê~0î~5#-¨-9×J/=æ×0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éñ0>é%0>éð~7ð~7%ð~7ñð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿí|6×Þu2J®['EYÿ%0³1.<àÔ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éñ0>é%0>éð~7ð~7%ð~7ñð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿæy5Ô¹a*1ÿµN$.­U'2¼?.;Þ¿0>éþ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éñ0>é%0>éð~7ð~7%ð~7ñð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7þåx4¿Ãf,?Z/³^( (— =.;ÞH/<ã×0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éñ0>ê%0>êñ~7ñ~7%ð~7ñð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿê{5×åy4HA" R#%/±J`ÿ(4ÃI.<áÙ0>êÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éý.<à¿+8Ò,9ÖÜt2Ør2çy5¿ð~7ýð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿñ~7ÿèz5ÙÉj-IÿÃW·`)!+ >.;ÜI/=ä×0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ.;ßÌ$.¬.ÿÿÿEH'ÿÿÿ±^(.æy5Ìð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿë{6×ãw3IB" ¦W%3A÷&1¶6.<àØ0>êÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>çÚ+7ÎHH^ÿÿ¾TÕp0Hî}6Úð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿñ~7ÿçy5ؼc+6þ…:#,¦$‰&1¹;.;Þ¼0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ.;à×*6ËI8Iÿ0>æï~6ÿ“>Ñn/Iæy5×ð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿåx4¼¿d+;K¬Z& z.;ÞH/<áÙ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0=çÙ+8ÑIÐÿÿ$.¯µ_(ÿÿùØr1Iî}6Ùð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿèz5Ùæy4HC#-ª(4ÂJ/<âØ0>êÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éý.;ßÉ)5ÇF7Gÿ0>æï~6ÿ<Íl.Fæy4Éð~7ýð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿñ~7ÿé{5ØÉi-J°]'& -.;ÞH/<âØ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ.;ßÈ$.¬.s•ÿhl9ÿÿ‚±^(.æy4Èð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿé{5Øæy4H0–O! wêÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0=çÙ*5ÉFDXÿÿ²MÏm/Fî}6Ùð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿñ~7ÿèz5Ø¿e+;ÿD{A!*œ%‹%0´5.;Þ¼0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ.;à×+8ÑI>Qÿ0>çï~6ÿ£EØq1Iæy5×ð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿåx4¼ºb*5‘L¢U$I]ÿ.;ÜI.<àØ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>çÚ*6ËHÿÿÿ 7; ÿÿÿÑn/Hî}6Úð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿçy5Øãx4Iÿ¾U"+£c(4ÃI/=ä×0>êÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éþ.;ßÌ*6ÌH9Jÿ0>çï~6ÿ–@Óo0Hæy5Ìð~7þð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿñ~7ÿë{6×Éj-Ig6©Y&d.;ÞH.<áÙ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ.;ßÅ$.­.@Rÿ#…Gÿ§H²^(.åy4Åð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿèz5Ùåy4Hi70>çCWÿ,8ÓJ/<ã×0>êÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ/=æ×(4ÂD¦ÿ ÿÿ’Èi-Dí|6×ð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿñ~7ÿê{5×Ús1Jÿ¯Jï~6$‡)5ÆH0=æØ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ.<àÔ-9×J~§ÿ0>çï~6ÿÿˆÞu2Jçy5Øð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿî}6ÔÁe,67 J0>ç~§ÿ-9×J.<àØ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ.;Þ¾$/¯1U$‡J Ík.Hî}6Øð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿæy5ÔÞu2Jÿÿˆï~6¦ÿ(4ÂD/=æ×0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>êÿ/<ã×'2¼?Mcÿ`ï~6ÿ¯JÚs1Jê{5×ñ~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿí|6×Èi-Dÿÿ’ #@Rÿ$.­..;ßÅ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ.<áÙ.;ÞHdi7åy4Hèz5Ùð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿåy4Ų^(.ÿ§H…G0>ç9Jÿ*6ÌH.;ßÌ0>éþ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>êÿ/=ä×(4ÃIc"+£©Y&g6Éj-Ië{6×ñ~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7þæy5ÌÓo0Hÿ–@ï~6 7ÿÿÿ*6ËH0>çÚ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ.<àØ.;ÜII]ÿÿ¾Uãx4Içy5Øð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿî}6ÚÑn/Hÿÿÿ; 0>ç>Qÿ+8ÑI.;à×0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ.;Þ¼%0´5%‹!*œ¢U$‘Lºb*5åx4¼ð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿæy5רq1Iÿ£Eï~6DXÿ*5ÉF0=çÙ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>êÿ.<áØ&1¹;éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ/<âØ.;ÞH -&–O!0æy4Hé{5Øð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿæy4ȱ^(.ÿÿ‚l90>æ7Gÿ)5ÇF.;ßÉ0>éý0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>êÿ/<âØ(4ÂJ#-ª°]'Éi-Jé{5Øñ~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ýæy4ÉÍl.Fÿ<ï~6$.¯Ðÿÿ+8ÑI0=çÙ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ/<áÙ.;ÞH zCæy4Hèz5Ùð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿî}6ÙØr1Iÿÿùµ_(0>æ8Iÿ*6ËI.;à×0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ.;Þ¼&1¹;$‰#,¦¬Z&K¿d+;åx4¼ð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿæy5×Ñn/Iÿ“>ï~6H^ÿ+7ÎH0>çÚ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>êÿ.<àØ&1¶63A÷þ…:¼c+6çy5Øñ~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿî}6ÚÕp0Hÿ¾TEÿÿÿ$.¬..;ßÌ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ/=ä×.;ÜI>!+ ¦W%B" ãw3Ië{6×ð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿæy5̱^(.ÿÿÿH'0>Ý(4ÂC.;ßÅ0>éý0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>êÿ.<áÙ(4ÃIJ`ÿ%/±·`)ÿÃWÉj-Ièz5Ùñ~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ýåy4ÅÈi-Cê~0-9×S/=æÖ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ/<ã×.;ÞH = (—R#A" åy4Hê{5×ð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿí|6Ößu2S.;ÞÃ0>êÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0=æØ,8ÓJ$.­³^(Ús1Jî}6Øð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿñ~7ÿåx4Ã+8ÑI.<á¿0>èþ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ.<àØ)5ÆH6Gÿ0>æî~5ÿ;Ík.Hçy5Øð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿï~7þèz5¿×q1I4Cù*5È(/=å·0>èý0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ/=æ×-9×J#-¨®['Þu2Jí|6×ð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿï~7ýì|6·Ïm/(ÿ‡;0>å'–'2»&-:Ú¶0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éý.;ßÅ(4ÂD0>Ý0>åî~5ê~0Èi-Dåy4Åð~7ýð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿàv3¶Áe+&šP#î~5:Kÿ+7Î(/=ä¶0>èý0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ.;ßÌ$.¬.ÿÿÿEH'ÿÿÿ±^(.æy5Ìð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿï}7ýë{6¶Õp0(ÿ˜B0>ß$.±'3¾'/=äÉ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>çÚ+7ÎHH^ÿÿ¾TÕp0Hî}6Úð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿë|6ÉÄg,'¶_)ë~2#-©ÿÿÿ+7ÎC/<ãÄ0>èý0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ.;à×*6ËI8Iÿ0>æï~6ÿ“>Ñn/Iæy5×ð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿï}7ýê{5ÄÕp0Cÿÿÿ®\'0>Ý*6Ê(3À&/=å·0>èþ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0=çÙ+8ÑIÐÿÿ$.¯µ_(ÿÿùØr1Iî}6Ùð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿï~7þì|6·Æh-&Ðm0ä~+0>æ&‘)4Ä'-:Ùµ0>èþ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éý.;ßÉ)5ÇF7Gÿ0>æï~6ÿ<Íl.Fæy4Éð~7ýð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿï~7þàv3µËk.'”M"ï~60>é)5Å'/=å·0>èý0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ.;ßÈ$.¬.s•ÿhl9ÿÿ‚±^(.æy4Èð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿï}7ýì|6·Ìk.'ñ70>å%(3À'/<ãÄ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0=çÙ*5ÉFDXÿÿ²MÏm/Fî}6Ùð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿê{5ÄÆh-'”M"î~5èü0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ.;à×+8ÑI>Qÿ0>çï~6ÿ£EØq1Iæy5×ð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿï}7üë|6ÉÕp0CÿŸE0>ç(3¾'/=ä¶0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>éÿ0>çÚ*6ËHÿÿÿ 7; ÿÿÿÑn/Hî}6Úð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿð~7ÿë{6¶Åg,'î~50>ç#,©+7Î(-:Ú¶0>èý0>éÿ0>éÿ0>éÿ0>éþ.;ßÌ*6ÌH9Jÿ0>çï~6ÿ–@Óo0Hæy5Ìð~7þð~7ÿð~7ÿð~7ÿï~7ýàv3¶Õp0(®[(ï~6(3¿'2½&/=å·0>èÿ0>éÿ0>éÿ.;ßÅ$.­.@Rÿ#…Gÿ§H²^(.åy4Åð~7ÿð~7ÿï~7ÿì|6·Äg,&Æh-0>æ'—)5Ç'.<á¿0>êÿ/=æ×(4ÂC¦ÿ ÿÿ’Èi-Cí|6×ñ~7ÿçy5´Îl.'›Q#ï~6.;Ý+8ÒJ.;ÞÃ-:ØS~§ÿ0>çï~6ÿÿˆßu2Sçy4½ñ72ï~6ÿþÿÿÿÿÿÿÿÿÿÿøÿÿüÿÿÿÿÿÿÿÿÿÿø?ÿÿøÿÿÿÿÿÿÿÿÿÿðÿÿðÿÿÿÿÿÿÿÿÿÿÀÿÿàÿÿÿÿÿÿÿÿÿÿÀÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿøüÿÿÿÿÿÿÿÿø?øÿÿÿÿÿÿÿÿàðÿÿÿÿÿÿÿÿààÿÿÿÿÿÿÿÿÀÀÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿþ?ÿÿÿÿÿÿüÿÿÿÿÿÿøÿÿÿÿÿÿðÿÿÿÿÿÿðÀÿÿÿÿÿÿÀàÿÿÿÿÿÿÀàÿÿÿÿÿÿøÿÿÿÿþø?ÿÿÿÿüþÿÿÿÿøÿÿÿÿÿøÿÿÿÿÿÿàÿÿÀÿÿÿÿàÿÿÀÿÿÿÿ€ÿÿðÿÿÿÿÿÿøÿÿÿþÿÿø?ÿÿüÿÿüÿÿø?ÿÿþÿÿøÿÿÿÿÿðÿÿÿÿ€ÿÿÀÿÿÿÿàÿÿÀÿÿÿÿàÿÿÿÿÿÿøÿÿÿÿÿÿøþÿÿÿÿüø?ÿÿÿÿþøÿÿÿÿÿàÿÿÿÿÿÿÀàÿÿÿÿÿÿÀÀÿÿÿÿÿÿð€ÿÿÿÿÿÿð€ÿÿÿÿÿÿø€ÿÿÿÿÿÿü€?ÿÿÿÿÿÿþ€ÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÀ€ÿÿÿÿÿÿÿÿà€ÿÿÿÿÿÿÿÿà€ÿÿÿÿÿÿÿÿø€ÿÿÿÿÿÿÿÿø€ÿÿÿÿÿÿÿÿþ€ÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÀ€ÿÿÿÿÿÿÿÿÿÿÀ€ÿÿÿÿÿÿÿÿÿÿð€ÿÿÿÿÿÿÿÿÿÿð€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð€ÿÿÿÿÿÿÿÿÿÿð€ÿÿÿÿÿÿÿÿÿÿÀ€ÿÿÿÿÿÿÿÿÿÿÀ€ÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿþ€ÿÿÿÿÿÿÿÿø€ÿÿÿÿÿÿÿÿø€ÿÿÿÿÿÿÿÿà€ÿÿÿÿÿÿÿÿà€ÿÿÿÿÿÿÿÿÀ€ÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿþ€ÿÿÿÿÿÿþ€ÿÿÿÿÿÿø€ÿÿÿÿÿÿð€ÿÿÿÿÿÿð€ÿÿÿÿÿÿÀÀÿÿÿÿÿÿÀàÿÿÿÿÿÿàÿÿÿÿÿþøÿÿÿÿüø?ÿÿÿÿøþÿÿÿÿøÿÿÿÿÿÿàÿÿÿÿÿÿàÿÿÀÿÿÿÿ€ÿÿÀÿÿÿÿÿÿðÿÿÿþÿÿøÿÿüÿÿø?ÿÿø?ÿÿüÿÿøÿÿÿþÿÿðÿÿÿÿÿÿÀÿÿÿÿ€ÿÿÀÿÿÿÿàÿÿÿÿÿÿàÿÿÿÿÿÿøÿþÿÿÿÿøø?ÿÿÿÿüøÿÿÿÿþàÿÿÿÿÿÿàÿÿÿÿÿÿÀÀÿÿÿÿÿÿÀÿÿÿÿÿÿðÿÿÿÿÿÿðÿÿÿÿÿÿø?ÿÿÿÿÿÿü€ÿÿÿÿÿÿþÀÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÀðÿÿÿÿÿÿÿÿàøÿÿÿÿÿÿÿÿàüÿÿÿÿÿÿÿÿø?þÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿþÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÀÿÿðÿÿÿÿÿÿÿÿÿÿÀÿÿøÿÿÿÿÿÿÿÿÿÿðÿÿüÿÿÿÿÿÿÿÿÿÿø?ÿÿþÿÿÿÿÿÿÿÿÿÿøÿxfel-1.3.5/docs/index.html000066400000000000000000000014151512120643700154050ustar00rootroot00000000000000 Xfel Documents
xfel-1.3.5/docs/zh-cn/000077500000000000000000000000001512120643700144265ustar00rootroot00000000000000xfel-1.3.5/docs/zh-cn/README.md000066400000000000000000000217241512120643700157130ustar00rootroot00000000000000

XFEL logo

XFEL

Tiny FEL tools for Allwinner SOC.

# 关于 XFEL é¢å‘全志 SOC çš„ FEL 工具。 ## 什么是FEL FEL 是全志 SOC 中上 BootROM 中包å«çš„低级程åºã€‚å¯ä»¥é€šè¿‡å®ƒä½¿ç”¨ USB OTG 对 SOC 进行编程和æ¢å¤ã€‚ # 使用方法 ``` usage: xfel version - 显示芯片ID xfel hexdump
- 以HEX文件转储内存区域 xfel dump
- 转储内存区域并输出 xfel read32
- ä»Žè®¾å¤‡å†…å­˜ä¸­è¯»å– 32 ä½å€¼ xfel write32
- å‘设备内存中写入 32 ä½å€¼ xfel read
- 呿–‡ä»¶å†™å…¥å†…å­˜ xfel write
- å‘内存写入文件 xfel exec
- è°ƒç”¨å‡½æ•°åœ°å€ xfel reset - 使用看门狗é‡ç½®è®¾å¤‡ xfel sid - 显示sidä¿¡æ¯ xfel jtag - å¯ç”¨ jtag 调试 xfel ddr [type] - åˆå§‹åŒ– DDR 控制器 xfel sign - 便®sidçš„sha256摘è¦ä¿¡æ¯ç”ŸæˆECDSA256ç­¾åæ–‡ä»¶ xfel spinor - 检测 spi nor flash xfel spinor erase
- 擦除 spi nor flash xfel spinor read
- è¯»å– spi nor flash 到文件 xfel spinor write
- 将文件写入 spi nor flash xfel spinand - 检测 spi nand flash xfel spinand erase
- 擦除 spi nand flash xfel spinand read
- è¯»å– spi nand flash 到文件 xfel spinand write
- 将文件写入 spi nand flash xfel spinand splwrite
- 使用拆分支æŒå°†æ–‡ä»¶å†™å…¥ spi nand flash xfel extra [...] - 扩展命令 ``` # 支æŒåˆ—表 ✅: å·²ç»æ”¯æŒ — âŒ: è¿˜æœªæ”¯æŒ â€” 🚫: æ—  | Chip | CPU | ID | Basic | Reset | Sid | Jtag | DDR | SPI Nor Flash | SPI Nand Flash | | -------- | :----- | :----- | -------- | :------- | -------- | -------- | -------- | -------- | -------- | | A10 | ARM Cortex-A8 @ 1Ghz | 0x00162300 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | A10s | ARM Cortex-A8 @ 1Ghz | 0x00162500 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | A13 | ARM Cortex-A8 @ 1Ghz | 0x00162500 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | R8 | ARM Cortex-A8 @ 1Ghz | 0x00162500 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | A20 | Dual-Core ARM Cortex-A7 | 0x00165100 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | A23 | Dual-Core ARM Cortex-A7 @ 1.5GHz | 0x00165000 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | A31 | Quad-Core ARM Cortex-A7 | 0x00163300 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | A33 | Quad-Core ARM Cortex-A7 @ 1.2GHz | 0x00166700 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | R16 | Quad-Core ARM Cortex-A7 @ 1.2GHz | 0x00166700 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | A40i | Quad-Core ARM Cortex-A7 @ 1.2 GHz | 0x00170100 | ✅ | ✅ | ✅ | ⌠| ✅ | ⌠| ⌠| | R40 | Quad-Core ARM Cortex-A7 @ 1.2 GHz | 0x00170100 | ✅ | ✅ | ✅ | ⌠| ✅ | ⌠| ⌠| | A50 | Quad-Core ARM Cortex-A7 @ 1.8GHz | 0x00175500 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | A64 | Quad-Core ARM Cortex-A53 | 0x00168900 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | A80 | Octa-core big.LITTLE Cortex-A15/7 | 0x00163900 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | A83T | Octa-core Cortex-A7 @ 1.6GHz | 0x00167300 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | D1 | XuanTie C906 RISC-V | 0x00185900 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | D1s | XuanTie C906 RISC-V | 0x00185900 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | F133 | XuanTie C906 RISC-V | 0x00185900 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | F1C100S | Single-core ARM9 | 0x00166300 | ✅ | ✅ | 🚫 | ✅ | ✅ | ✅ | ✅ | | F1C200S | Single-core ARM9 | 0x00166300 | ✅ | ✅ | 🚫 | ✅ | ✅ | ✅ | ✅ | | F1C500S | Single-core ARM9 | 0x00166300 | ✅ | ✅ | 🚫 | ✅ | ✅ | ✅ | ✅ | | H2 | Quad-Core ARM Cortex-A7 | 0x00168000 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | H3 | Quad-Core ARM Cortex-A7 @ 1.296GHz | 0x00168000 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | H5 | Quad-Core ARM Cortex-A53 | 0x00171800 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | H6 | Quad-Core ARM Cortex-A53 @ 1.8GHz | 0x00172800 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | H313 | Quad-Core ARM Cortex-A53 | 0x00182300 | ✅ | ⌠| ⌠| ⌠| ✅ | ⌠| ⌠| | H616 | Quad-Core ARM Cortex-A53 | 0x00182300 | ✅ | ⌠| ⌠| ⌠| ✅ | ⌠| ⌠| | H618 | Quad-Core ARM Cortex-A53 | 0x00182300 | ✅ | ⌠| ⌠| ⌠| ✅ | ⌠| ⌠| | R128 | ARM Cortex-M33 and C906 RISC-V | 0x00188300 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | R328 | Dual-Core Cortex-A7 | 0x00182100 | ✅ | ⌠| ✅ | ⌠| ⌠| ⌠| ⌠| | R329 | Dual-Core Cortex-A53 | 0x00185100 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | R528 | Dual-Core Cortex-A7 | 0x00185900 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | T113 | Dual-Core Cortex-A7 | 0x00185900 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | T507 | Quad-Core ARM Cortex-A53 | 0x00182300 | ✅ | ⌠| ⌠| ⌠| ✅ | ⌠| ⌠| | V3s | Single-core Cortex-A7 | 0x00168100 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | S3 | Single-core Cortex-A7 | 0x00168100 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | V536 | Dual-Core Cortex-A7 | 0x00181600 | ✅ | ⌠| ⌠| ⌠| ⌠| ⌠| ⌠| | V821 | Andes A272L2 32Bit RISC-V and E907 RISC-V | 0x00188200 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | V831 | Single-core Cortex-A7 800Mhz | 0x00181700 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | V851 | Single-core Cortex-A7 1Ghz + E907 RISC-V | 0x00188600 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | V853 | Single-core Cortex-A7 1Ghz + E907 RISC-V | 0x00188600 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | A523 | Octa-core Cortex-A55 2.0Ghz + E906 RISC-V + HIFI4 DSP | 0x00189000 | ✅ | ✅ | ✅ | ⌠| ✅ | ⌠| ⌠| | A527 | Octa-core Cortex-A55 2.0Ghz + E906 RISC-V + HIFI4 DSP | 0x00189000 | ✅ | ✅ | ✅ | ⌠| ✅ | ⌠| ⌠| | T527 | Octa-core Cortex-A55 2.0Ghz + E906 RISC-V + HIFI4 DSP | 0x00189000 | ✅ | ✅ | ✅ | ⌠| ✅ | ⌠| ⌠| | MR527 | Octa-core Cortex-A55 2.0Ghz + E906 RISC-V + HIFI4 DSP | 0x00189000 | ✅ | ✅ | ✅ | ⌠| ✅ | ⌠| ⌠| # 编译安装 ## Linux xfel 工具ä¾èµ–于`libusb-1.0` 库,编译å‰éœ€è¦å®‰è£…`libusb-1.0-0-dev`,在Ubuntu系统中: ```shell sudo apt install libusb-1.0-0-dev ``` ç„¶åŽåœ¨æ ¹ç›®å½•输入`make`与`sudo make install`,就安装完æˆäº†ã€‚ ```shell cd xfel make sudo make install ``` ## Window Windows 采用交å‰ç¼–译方法,在 Ubuntu 中安装交å‰ç¼–译工具链: ```shell sudo apt install mingw-w64 sudo apt install autoconf sudo apt install libtool-bin ``` 克隆`libusb`æºç ï¼Œç¼–译Windows下的libusb库。 ```shell git clone https://github.com/libusb/libusb.git cd libusb ./autogen.sh ./configure --host=i686-w64-mingw32 --prefix=/usr/i686-w64-mingw32/ make sudo make install ``` 编译xfel工具 ```shell cd xfel CROSS=i686-w64-mingw32- make ``` 对于交å‰ç¼–译64ä½Windows程åºï¼Œæ‚¨å¯ä»¥ä½¿ç”¨ `x86_64-w64-mingw32-` 代替上é¢çš„ `i686-w64-mingw32`。 ## macOS ?> _TODO_ Add macOS ARM support 在开始之å‰ï¼Œè¯·å…ˆå®‰è£…完æˆ`Command Line Tools`. 使用 [brew](https://brew.sh/) 安装`libusb` ä¾èµ–。 ```shell brew install libusb ``` ç„¶åŽåœ¨ç¨‹åºæ ¹ç›®å½•输入`make`就编译完æˆäº†ã€‚ ```shell cd xfel make ``` # 下载安装 ## Windows 在 [RELEASE](https://github.com/xboot/xfel/releases/latest) 找到预编译的Windows软件。 # ä¾‹å­ ## F1C100s: 使用XEFL写入 U-Boot å¹¶è¿è¡Œ ``` xfel ddr # åˆå§‹åŒ–DDR控制器 xfel write 0x81700000 u-boot.bin # å°†uboot写入0x81700000 xfel exec 0x81700000 # 调用函数地å€è¿è¡Œ ``` ## F1C200s: å‘ SPI NAND 写入系统 ``` xfel spinand xfel spinand erase 0x000000 134217728 xfel spinand write 0x000000 u-boot-sunxi-with-nand-spl.bin xfel spinand write 0x80000 splash.bmp xfel spinand write 0x100000 kernel.itb xfel spinand write 0x600000 rootfs.squashfs ``` ## F133: 使用XEFL写入 OpenSBI å¹¶è¿è¡Œ ``` xfel ddr f133 # åˆå§‹åŒ–F133 DDR控制器 xfel write 0x80200000 opensbi.bin # å°†opensbi写入0x80200000 xfel exec 0x80200000 # 调用函数地å€è¿è¡Œ ``` ?> 还想添加其他例å­? 请给我们æäº¤ Pull Requests [https://github.com/xboot/xfel/pulls](https://github.com/xboot/xfel/pulls) xfel-1.3.5/ecdsa256.c000066400000000000000000000506171512120643700141500ustar00rootroot00000000000000#include #define ECDSA256_NUM_DIGITS (ECDSA256_BYTES / 8) #define MAX_RETRY (16) struct ecdsa256_uint128_t { uint64_t m_low; uint64_t m_high; }; struct ecdsa256_point_t { uint64_t x[ECDSA256_NUM_DIGITS]; uint64_t y[ECDSA256_NUM_DIGITS]; }; static uint64_t curve_p[ECDSA256_NUM_DIGITS] = { 0xFFFFFFFFFFFFFFFFull, 0x00000000FFFFFFFFull, 0x0000000000000000ull, 0xFFFFFFFF00000001ull }; static uint64_t curve_b[ECDSA256_NUM_DIGITS] = { 0x3BCE3C3E27D2604Bull, 0x651D06B0CC53B0F6ull, 0xB3EBBD55769886BCull, 0x5AC635D8AA3A93E7ull }; static uint64_t curve_n[ECDSA256_NUM_DIGITS] = { 0xF3B9CAC2FC632551ull, 0xBCE6FAADA7179E84ull, 0xFFFFFFFFFFFFFFFFull, 0xFFFFFFFF00000000ull }; static struct ecdsa256_point_t curve_g = { { 0xF4A13945D898C296ull, 0x77037D812DEB33A0ull, 0xF8BCE6E563A440F2ull, 0x6B17D1F2E12C4247ull }, { 0xCBB6406837BF51F5ull, 0x2BCE33576B315ECEull, 0x8EE7EB4A7C0F9E16ull, 0x4FE342E2FE1A7F9Bull } }; static int get_random_number(uint64_t * vli) { uint64_t v; int i; for(i = 0; i < ECDSA256_NUM_DIGITS; i++) { v = (uint64_t)(rand() & 0xffff) << 0; v |= (uint64_t)(rand() & 0xffff) << 16; v |= (uint64_t)(rand() & 0xffff) << 32; v |= (uint64_t)(rand() & 0xffff) << 48; vli[i] = v; } return 1; } static void vli_clear(uint64_t * vli) { int i; for(i = 0; i < ECDSA256_NUM_DIGITS; i++) vli[i] = 0; } static int vli_iszero(uint64_t * vli) { int i; for(i = 0; i < ECDSA256_NUM_DIGITS; i++) { if(vli[i]) return 0; } return 1; } static uint64_t vli_testbit(uint64_t * vli, unsigned int bit) { return (vli[bit / 64] & ((uint64_t)1 << (bit % 64))); } static unsigned int vli_numdigits(uint64_t * vli) { int i; for(i = ECDSA256_NUM_DIGITS - 1; i >= 0 && vli[i] == 0; --i); return (i + 1); } static unsigned int vli_numbits(uint64_t * vli) { uint64_t digit; unsigned int i; unsigned int n = vli_numdigits(vli); if(n == 0) return 0; digit = vli[n - 1]; for(i = 0; digit; i++) digit >>= 1; return ((n - 1) * 64 + i); } static void vli_set(uint64_t * dst, uint64_t * src) { int i; for(i = 0; i < ECDSA256_NUM_DIGITS; i++) dst[i] = src[i]; } static int vli_cmp(uint64_t * left, uint64_t * right) { int i; for(i = ECDSA256_NUM_DIGITS - 1; i >= 0; --i) { if(left[i] > right[i]) return 1; else if(left[i] < right[i]) return -1; } return 0; } static uint64_t vli_lshift(uint64_t * result, uint64_t * in, unsigned int shift) { uint64_t carry = 0; int i; for(i = 0; i < ECDSA256_NUM_DIGITS; i++) { uint64_t temp = in[i]; result[i] = (temp << shift) | carry; carry = temp >> (64 - shift); } return carry; } static void vli_rshift1(uint64_t * vli) { uint64_t * end = vli; uint64_t carry = 0; vli += ECDSA256_NUM_DIGITS; while(vli-- > end) { uint64_t temp = *vli; *vli = (temp >> 1) | carry; carry = temp << 63; } } static uint64_t vli_add(uint64_t * result, uint64_t * left, uint64_t * right) { uint64_t carry = 0; int i; for(i = 0; i < ECDSA256_NUM_DIGITS; i++) { uint64_t sum = left[i] + right[i] + carry; if(sum != left[i]) carry = (sum < left[i]); result[i] = sum; } return carry; } static uint64_t vli_sub(uint64_t * result, uint64_t * left, uint64_t * right) { uint64_t borrow = 0; int i; for(i = 0; i < ECDSA256_NUM_DIGITS; i++) { uint64_t diff = left[i] - right[i] - borrow; if(diff != left[i]) borrow = (diff > left[i]); result[i] = diff; } return borrow; } static struct ecdsa256_uint128_t mul_64_64(uint64_t left, uint64_t right) { struct ecdsa256_uint128_t result; uint64_t a0 = left & 0xffffffffull; uint64_t a1 = left >> 32; uint64_t b0 = right & 0xffffffffull; uint64_t b1 = right >> 32; uint64_t m0 = a0 * b0; uint64_t m1 = a0 * b1; uint64_t m2 = a1 * b0; uint64_t m3 = a1 * b1; m2 += (m0 >> 32); m2 += m1; if(m2 < m1) m3 += 0x100000000ull; result.m_low = (m0 & 0xffffffffull) | (m2 << 32); result.m_high = m3 + (m2 >> 32); return result; } static struct ecdsa256_uint128_t add_128_128(struct ecdsa256_uint128_t a, struct ecdsa256_uint128_t b) { struct ecdsa256_uint128_t result; result.m_low = a.m_low + b.m_low; result.m_high = a.m_high + b.m_high + (result.m_low < a.m_low); return result; } static void vli_mult(uint64_t * result, uint64_t * left, uint64_t * right) { struct ecdsa256_uint128_t r01 = { 0, 0 }; uint64_t r2 = 0; unsigned int i, k; for(k = 0; k < ECDSA256_NUM_DIGITS * 2 - 1; ++k) { unsigned int min = (k < ECDSA256_NUM_DIGITS ? 0 : (k + 1) - ECDSA256_NUM_DIGITS); for(i = min; i <= k && i < ECDSA256_NUM_DIGITS; i++) { struct ecdsa256_uint128_t product = mul_64_64(left[i], right[k - i]); r01 = add_128_128(r01, product); r2 += (r01.m_high < product.m_high); } result[k] = r01.m_low; r01.m_low = r01.m_high; r01.m_high = r2; r2 = 0; } result[ECDSA256_NUM_DIGITS * 2 - 1] = r01.m_low; } static void vli_square(uint64_t *result, uint64_t *left) { struct ecdsa256_uint128_t r01 = { 0, 0 }; uint64_t r2 = 0; unsigned int i, k; for(k = 0; k < ECDSA256_NUM_DIGITS * 2 - 1; ++k) { unsigned int min = (k < ECDSA256_NUM_DIGITS ? 0 : (k + 1) - ECDSA256_NUM_DIGITS); for(i = min; i <= k && i <= k - i; i++) { struct ecdsa256_uint128_t product = mul_64_64(left[i], left[k - i]); if(i < k - i) { r2 += product.m_high >> 63; product.m_high = (product.m_high << 1) | (product.m_low >> 63); product.m_low <<= 1; } r01 = add_128_128(r01, product); r2 += (r01.m_high < product.m_high); } result[k] = r01.m_low; r01.m_low = r01.m_high; r01.m_high = r2; r2 = 0; } result[ECDSA256_NUM_DIGITS * 2 - 1] = r01.m_low; } static void vli_modadd(uint64_t * result, uint64_t * left, uint64_t * right, uint64_t * mod) { uint64_t carry = vli_add(result, left, right); if(carry || vli_cmp(result, mod) >= 0) vli_sub(result, result, mod); } static void vli_modsub(uint64_t * result, uint64_t * left, uint64_t * right, uint64_t * mod) { uint64_t borrow = vli_sub(result, left, right); if(borrow) vli_add(result, result, mod); } static void vli_mmod_fast(uint64_t * result, uint64_t * product) { uint64_t tmp[ECDSA256_NUM_DIGITS]; int carry; vli_set(result, product); tmp[0] = 0; tmp[1] = product[5] & 0xffffffff00000000ull; tmp[2] = product[6]; tmp[3] = product[7]; carry = vli_lshift(tmp, tmp, 1); carry += vli_add(result, result, tmp); tmp[1] = product[6] << 32; tmp[2] = (product[6] >> 32) | (product[7] << 32); tmp[3] = product[7] >> 32; carry += vli_lshift(tmp, tmp, 1); carry += vli_add(result, result, tmp); tmp[0] = product[4]; tmp[1] = product[5] & 0xffffffff; tmp[2] = 0; tmp[3] = product[7]; carry += vli_add(result, result, tmp); tmp[0] = (product[4] >> 32) | (product[5] << 32); tmp[1] = (product[5] >> 32) | (product[6] & 0xffffffff00000000ull); tmp[2] = product[7]; tmp[3] = (product[6] >> 32) | (product[4] << 32); carry += vli_add(result, result, tmp); tmp[0] = (product[5] >> 32) | (product[6] << 32); tmp[1] = (product[6] >> 32); tmp[2] = 0; tmp[3] = (product[4] & 0xffffffff) | (product[5] << 32); carry -= vli_sub(result, result, tmp); tmp[0] = product[6]; tmp[1] = product[7]; tmp[2] = 0; tmp[3] = (product[4] >> 32) | (product[5] & 0xffffffff00000000ull); carry -= vli_sub(result, result, tmp); tmp[0] = (product[6] >> 32) | (product[7] << 32); tmp[1] = (product[7] >> 32) | (product[4] << 32); tmp[2] = (product[4] >> 32) | (product[5] << 32); tmp[3] = (product[6] << 32); carry -= vli_sub(result, result, tmp); tmp[0] = product[7]; tmp[1] = product[4] & 0xffffffff00000000ull; tmp[2] = product[5]; tmp[3] = product[6] & 0xffffffff00000000ull; carry -= vli_sub(result, result, tmp); if(carry < 0) { do { carry += vli_add(result, result, curve_p); } while(carry < 0); } else { while(carry || vli_cmp(curve_p, result) != 1) { carry -= vli_sub(result, result, curve_p); } } } static void vli_modMult_fast(uint64_t * result, uint64_t * left, uint64_t * right) { uint64_t product[2 * ECDSA256_NUM_DIGITS]; vli_mult(product, left, right); vli_mmod_fast(result, product); } static void vli_modSquare_fast(uint64_t * result, uint64_t * left) { uint64_t product[2 * ECDSA256_NUM_DIGITS]; vli_square(product, left); vli_mmod_fast(result, product); } static void vli_modinv(uint64_t * result, uint64_t * input, uint64_t * mod) { uint64_t a[ECDSA256_NUM_DIGITS], b[ECDSA256_NUM_DIGITS], u[ECDSA256_NUM_DIGITS], v[ECDSA256_NUM_DIGITS]; uint64_t carry; int cmpresult; if(vli_iszero(input)) { vli_clear(result); return; } vli_set(a, input); vli_set(b, mod); vli_clear(u); u[0] = 1; vli_clear(v); while((cmpresult = vli_cmp(a, b)) != 0) { carry = 0; if(!(a[0] & 1)) { vli_rshift1(a); if(u[0] & 1) carry = vli_add(u, u, mod); vli_rshift1(u); if(carry) u[ECDSA256_NUM_DIGITS - 1] |= 0x8000000000000000ull; } else if(!(b[0] & 1)) { vli_rshift1(b); if(v[0] & 1) carry = vli_add(v, v, mod); vli_rshift1(v); if(carry) v[ECDSA256_NUM_DIGITS - 1] |= 0x8000000000000000ull; } else if(cmpresult > 0) { vli_sub(a, a, b); vli_rshift1(a); if(vli_cmp(u, v) < 0) vli_add(u, u, mod); vli_sub(u, u, v); if(u[0] & 1) carry = vli_add(u, u, mod); vli_rshift1(u); if(carry) u[ECDSA256_NUM_DIGITS - 1] |= 0x8000000000000000ull; } else { vli_sub(b, b, a); vli_rshift1(b); if(vli_cmp(v, u) < 0) vli_add(v, v, mod); vli_sub(v, v, u); if(v[0] & 1) carry = vli_add(v, v, mod); vli_rshift1(v); if(carry) v[ECDSA256_NUM_DIGITS - 1] |= 0x8000000000000000ull; } } vli_set(result, u); } static int eccpoint_iszero(struct ecdsa256_point_t * point) { return (vli_iszero(point->x) && vli_iszero(point->y)); } static void eccpoint_double_jacobian(uint64_t * x1, uint64_t * y1, uint64_t * z1) { uint64_t t4[ECDSA256_NUM_DIGITS]; uint64_t t5[ECDSA256_NUM_DIGITS]; if(vli_iszero(z1)) return; vli_modSquare_fast(t4, y1); vli_modMult_fast(t5, x1, t4); vli_modSquare_fast(t4, t4); vli_modMult_fast(y1, y1, z1); vli_modSquare_fast(z1, z1); vli_modadd(x1, x1, z1, curve_p); vli_modadd(z1, z1, z1, curve_p); vli_modsub(z1, x1, z1, curve_p); vli_modMult_fast(x1, x1, z1); vli_modadd(z1, x1, x1, curve_p); vli_modadd(x1, x1, z1, curve_p); if(vli_testbit(x1, 0)) { uint64_t carry = vli_add(x1, x1, curve_p); vli_rshift1(x1); x1[ECDSA256_NUM_DIGITS - 1] |= carry << 63; } else { vli_rshift1(x1); } vli_modSquare_fast(z1, x1); vli_modsub(z1, z1, t5, curve_p); vli_modsub(z1, z1, t5, curve_p); vli_modsub(t5, t5, z1, curve_p); vli_modMult_fast(x1, x1, t5); vli_modsub(t4, x1, t4, curve_p); vli_set(x1, z1); vli_set(z1, y1); vli_set(y1, t4); } static void apply_z(uint64_t * x1, uint64_t * y1, uint64_t * z) { uint64_t t1[ECDSA256_NUM_DIGITS]; vli_modSquare_fast(t1, z); vli_modMult_fast(x1, x1, t1); vli_modMult_fast(t1, t1, z); vli_modMult_fast(y1, y1, t1); } static void xycz_initial_double(uint64_t * x1, uint64_t * y1, uint64_t * x2, uint64_t * y2, uint64_t * initialz) { uint64_t z[ECDSA256_NUM_DIGITS]; vli_set(x2, x1); vli_set(y2, y1); vli_clear(z); z[0] = 1; if(initialz) vli_set(z, initialz); apply_z(x1, y1, z); eccpoint_double_jacobian(x1, y1, z); apply_z(x2, y2, z); } static void xycz_add(uint64_t * x1, uint64_t * y1, uint64_t * x2, uint64_t * y2) { uint64_t t5[ECDSA256_NUM_DIGITS]; vli_modsub(t5, x2, x1, curve_p); vli_modSquare_fast(t5, t5); vli_modMult_fast(x1, x1, t5); vli_modMult_fast(x2, x2, t5); vli_modsub(y2, y2, y1, curve_p); vli_modSquare_fast(t5, y2); vli_modsub(t5, t5, x1, curve_p); vli_modsub(t5, t5, x2, curve_p); vli_modsub(x2, x2, x1, curve_p); vli_modMult_fast(y1, y1, x2); vli_modsub(x2, x1, t5, curve_p); vli_modMult_fast(y2, y2, x2); vli_modsub(y2, y2, y1, curve_p); vli_set(x2, t5); } static void xycz_addc(uint64_t * x1, uint64_t * y1, uint64_t * x2, uint64_t * y2) { uint64_t t5[ECDSA256_NUM_DIGITS]; uint64_t t6[ECDSA256_NUM_DIGITS]; uint64_t t7[ECDSA256_NUM_DIGITS]; vli_modsub(t5, x2, x1, curve_p); vli_modSquare_fast(t5, t5); vli_modMult_fast(x1, x1, t5); vli_modMult_fast(x2, x2, t5); vli_modadd(t5, y2, y1, curve_p); vli_modsub(y2, y2, y1, curve_p); vli_modsub(t6, x2, x1, curve_p); vli_modMult_fast(y1, y1, t6); vli_modadd(t6, x1, x2, curve_p); vli_modSquare_fast(x2, y2); vli_modsub(x2, x2, t6, curve_p); vli_modsub(t7, x1, x2, curve_p); vli_modMult_fast(y2, y2, t7); vli_modsub(y2, y2, y1, curve_p); vli_modSquare_fast(t7, t5); vli_modsub(t7, t7, t6, curve_p); vli_modsub(t6, t7, x1, curve_p); vli_modMult_fast(t6, t6, t5); vli_modsub(y1, t6, y1, curve_p); vli_set(x1, t7); } static void eccpoint_mult(struct ecdsa256_point_t * result, struct ecdsa256_point_t * point, uint64_t * scalar, uint64_t * initialz) { uint64_t Rx[2][ECDSA256_NUM_DIGITS]; uint64_t Ry[2][ECDSA256_NUM_DIGITS]; uint64_t z[ECDSA256_NUM_DIGITS]; int i, nb; vli_set(Rx[1], point->x); vli_set(Ry[1], point->y); xycz_initial_double(Rx[1], Ry[1], Rx[0], Ry[0], initialz); for(i = vli_numbits(scalar) - 2; i > 0; --i) { nb = !vli_testbit(scalar, i); xycz_addc(Rx[1 - nb], Ry[1 - nb], Rx[nb], Ry[nb]); xycz_add(Rx[nb], Ry[nb], Rx[1 - nb], Ry[1 - nb]); } nb = !vli_testbit(scalar, 0); xycz_addc(Rx[1 - nb], Ry[1 - nb], Rx[nb], Ry[nb]); vli_modsub(z, Rx[1], Rx[0], curve_p); vli_modMult_fast(z, z, Ry[1 - nb]); vli_modMult_fast(z, z, point->x); vli_modinv(z, z, curve_p); vli_modMult_fast(z, z, point->y); vli_modMult_fast(z, z, Rx[1 - nb]); xycz_add(Rx[nb], Ry[nb], Rx[1 - nb], Ry[1 - nb]); apply_z(Rx[0], Ry[0], z); vli_set(result->x, Rx[0]); vli_set(result->y, Ry[0]); } static void ecc_bytes2native(uint64_t * native, const uint8_t * bytes) { int i; for(i = 0; i < ECDSA256_NUM_DIGITS; i++) { const uint8_t * digit = bytes + 8 * (ECDSA256_NUM_DIGITS - 1 - i); native[i] = ((uint64_t)digit[0] << 56) | ((uint64_t)digit[1] << 48) | ((uint64_t)digit[2] << 40) | ((uint64_t)digit[3] << 32) | ((uint64_t)digit[4] << 24) | ((uint64_t)digit[5] << 16) | ((uint64_t)digit[6] << 8) | (uint64_t)digit[7]; } } static void ecc_native2bytes(uint8_t * bytes, const uint64_t * native) { int i; for(i = 0; i < ECDSA256_NUM_DIGITS; i++) { uint8_t *digit = bytes + 8 * (ECDSA256_NUM_DIGITS - 1 - i); digit[0] = native[i] >> 56; digit[1] = native[i] >> 48; digit[2] = native[i] >> 40; digit[3] = native[i] >> 32; digit[4] = native[i] >> 24; digit[5] = native[i] >> 16; digit[6] = native[i] >> 8; digit[7] = native[i]; } } static void mod_sqrt(uint64_t * a) { uint64_t p1[ECDSA256_NUM_DIGITS] = { 1 }; uint64_t result[ECDSA256_NUM_DIGITS] = { 1 }; int i; vli_add(p1, curve_p, p1); for(i = vli_numbits(p1) - 1; i > 1; --i) { vli_modSquare_fast(result, result); if(vli_testbit(p1, i)) vli_modMult_fast(result, result, a); } vli_set(a, result); } static void ecc_point_decompress(struct ecdsa256_point_t * point, const uint8_t * compressed) { uint64_t _3[ECDSA256_NUM_DIGITS] = { 3 }; ecc_bytes2native(point->x, compressed + 1); vli_modSquare_fast(point->y, point->x); vli_modsub(point->y, point->y, _3, curve_p); vli_modMult_fast(point->y, point->y, point->x); vli_modadd(point->y, point->y, curve_b, curve_p); mod_sqrt(point->y); if((point->y[0] & 0x01) != (compressed[0] & 0x01)) vli_sub(point->y, curve_p, point->y); } static void vli_modmult(uint64_t * result, uint64_t * left, uint64_t * right, uint64_t * mod) { uint64_t product[2 * ECDSA256_NUM_DIGITS]; uint64_t modmultiple[2 * ECDSA256_NUM_DIGITS]; unsigned int digitshift, bitshift; unsigned int productbits; unsigned int modbits = vli_numbits(mod); vli_mult(product, left, right); productbits = vli_numbits(product + ECDSA256_NUM_DIGITS); if(productbits) productbits += ECDSA256_NUM_DIGITS * 64; else productbits = vli_numbits(product); if(productbits < modbits) { vli_set(result, product); return; } vli_clear(modmultiple); vli_clear(modmultiple + ECDSA256_NUM_DIGITS); digitshift = (productbits - modbits) / 64; bitshift = (productbits - modbits) % 64; if(bitshift) modmultiple[digitshift + ECDSA256_NUM_DIGITS] = vli_lshift(modmultiple + digitshift, mod, bitshift); else vli_set(modmultiple + digitshift, mod); vli_clear(result); result[0] = 1; while(productbits > ECDSA256_NUM_DIGITS * 64 || vli_cmp(modmultiple, mod) >= 0) { int l_cmp = vli_cmp(modmultiple + ECDSA256_NUM_DIGITS, product + ECDSA256_NUM_DIGITS); if(l_cmp < 0 || (l_cmp == 0 && vli_cmp(modmultiple, product) <= 0)) { if(vli_sub(product, product, modmultiple)) vli_sub(product + ECDSA256_NUM_DIGITS, product + ECDSA256_NUM_DIGITS, result); vli_sub(product + ECDSA256_NUM_DIGITS, product + ECDSA256_NUM_DIGITS, modmultiple + ECDSA256_NUM_DIGITS); } uint64_t carry = (modmultiple[ECDSA256_NUM_DIGITS] & 0x01) << 63; vli_rshift1(modmultiple + ECDSA256_NUM_DIGITS); vli_rshift1(modmultiple); modmultiple[ECDSA256_NUM_DIGITS - 1] |= carry; --productbits; } vli_set(result, product); } static unsigned int umax(unsigned int a, unsigned int b) { return (a > b ? a : b); } int ecdh256_keygen(const uint8_t * public, const uint8_t * private, uint8_t * shared) { struct ecdsa256_point_t lpublic; struct ecdsa256_point_t product; uint64_t lprivate[ECDSA256_NUM_DIGITS]; uint64_t lrandom[ECDSA256_NUM_DIGITS]; if(!get_random_number(lrandom)) return 0; ecc_point_decompress(&lpublic, public); ecc_bytes2native(lprivate, private); eccpoint_mult(&product, &lpublic, lprivate, lrandom); ecc_native2bytes(shared, product.x); return !eccpoint_iszero(&product); } int ecdsa256_keygen(uint8_t * public, uint8_t * private) { uint64_t lprivate[ECDSA256_NUM_DIGITS]; struct ecdsa256_point_t lpublic; int retry = 0; do { if(!get_random_number(lprivate) || (retry++ >= MAX_RETRY)) return 0; if(vli_iszero(lprivate)) continue; if(vli_cmp(curve_n, lprivate) != 1) vli_sub(lprivate, lprivate, curve_n); eccpoint_mult(&lpublic, &curve_g, lprivate, NULL); } while(eccpoint_iszero(&lpublic)); ecc_native2bytes(private, lprivate); ecc_native2bytes(public + 1, lpublic.x); public[0] = 2 + (lpublic.y[0] & 0x01); return 1; } int ecdsa256_sign(const uint8_t * private, const uint8_t * sha256, uint8_t * signature) { uint64_t k[ECDSA256_NUM_DIGITS]; uint64_t tmp[ECDSA256_NUM_DIGITS]; uint64_t s[ECDSA256_NUM_DIGITS]; struct ecdsa256_point_t p; int retry = 0; do { if(!get_random_number(k) || (retry++ >= MAX_RETRY)) return 0; if(vli_iszero(k)) continue; if(vli_cmp(curve_n, k) != 1) vli_sub(k, k, curve_n); eccpoint_mult(&p, &curve_g, k, NULL); if(vli_cmp(curve_n, p.x) != 1) vli_sub(p.x, p.x, curve_n); } while(vli_iszero(p.x)); ecc_native2bytes(signature, p.x); ecc_bytes2native(tmp, private); vli_modmult(s, p.x, tmp, curve_n); ecc_bytes2native(tmp, sha256); vli_modadd(s, tmp, s, curve_n); vli_modinv(k, k, curve_n); vli_modmult(s, s, k, curve_n); ecc_native2bytes(signature + ECDSA256_BYTES, s); return 1; } int ecdsa256_verify(const uint8_t * public, const uint8_t * sha256, const uint8_t * signature) { uint64_t u1[ECDSA256_NUM_DIGITS], u2[ECDSA256_NUM_DIGITS]; uint64_t z[ECDSA256_NUM_DIGITS]; struct ecdsa256_point_t lpublic, sum; uint64_t rx[ECDSA256_NUM_DIGITS]; uint64_t ry[ECDSA256_NUM_DIGITS]; uint64_t tx[ECDSA256_NUM_DIGITS]; uint64_t ty[ECDSA256_NUM_DIGITS]; uint64_t tz[ECDSA256_NUM_DIGITS]; uint64_t r[ECDSA256_NUM_DIGITS], s[ECDSA256_NUM_DIGITS]; int i; ecc_point_decompress(&lpublic, public); ecc_bytes2native(r, signature); ecc_bytes2native(s, signature + ECDSA256_BYTES); if(vli_iszero(r) || vli_iszero(s)) return 0; if(vli_cmp(curve_n, r) != 1 || vli_cmp(curve_n, s) != 1) return 0; vli_modinv(z, s, curve_n); ecc_bytes2native(u1, sha256); vli_modmult(u1, u1, z, curve_n); vli_modmult(u2, r, z, curve_n); vli_set(sum.x, lpublic.x); vli_set(sum.y, lpublic.y); vli_set(tx, curve_g.x); vli_set(ty, curve_g.y); vli_modsub(z, sum.x, tx, curve_p); xycz_add(tx, ty, sum.x, sum.y); vli_modinv(z, z, curve_p); apply_z(sum.x, sum.y, z); struct ecdsa256_point_t * points[4] = { NULL, &curve_g, &lpublic, &sum }; unsigned int numbits = umax(vli_numbits(u1), vli_numbits(u2)); struct ecdsa256_point_t * point = points[(!!vli_testbit(u1, numbits - 1)) | ((!!vli_testbit(u2, numbits - 1)) << 1)]; vli_set(rx, point->x); vli_set(ry, point->y); vli_clear(z); z[0] = 1; for(i = numbits - 2; i >= 0; --i) { eccpoint_double_jacobian(rx, ry, z); int index = (!!vli_testbit(u1, i)) | ((!!vli_testbit(u2, i)) << 1); struct ecdsa256_point_t * point = points[index]; if(point) { vli_set(tx, point->x); vli_set(ty, point->y); apply_z(tx, ty, z); vli_modsub(tz, rx, tx, curve_p); xycz_add(tx, ty, rx, ry); vli_modMult_fast(z, z, tz); } } vli_modinv(z, z, curve_p); apply_z(rx, ry, z); if(vli_cmp(curve_n, rx) != 1) vli_sub(rx, rx, curve_n); return (vli_cmp(rx, r) == 0); } xfel-1.3.5/ecdsa256.h000066400000000000000000000013341512120643700141450ustar00rootroot00000000000000#ifndef __ECDSA256_H__ #define __ECDSA256_H__ #ifdef __cplusplus extern "C" { #endif #include #define ECDSA256_BYTES (32) #define ECDSA256_SHARED_KEY_SIZE (ECDSA256_BYTES) #define ECDSA256_PRIVATE_KEY_SIZE (ECDSA256_BYTES) #define ECDSA256_PUBLIC_KEY_SIZE (ECDSA256_BYTES + 1) #define ECDSA256_SIGNATURE_SIZE (ECDSA256_BYTES * 2) int ecdh256_keygen(const uint8_t * public, const uint8_t * private, uint8_t * shared); int ecdsa256_keygen(uint8_t * public, uint8_t * private); int ecdsa256_sign(const uint8_t * private, const uint8_t * sha256, uint8_t * signature); int ecdsa256_verify(const uint8_t * public, const uint8_t * sha256, const uint8_t * signature); #ifdef __cplusplus } #endif #endif /* __ECDSA256_H__ */ xfel-1.3.5/fel.c000066400000000000000000000244471512120643700134040ustar00rootroot00000000000000#include extern struct chip_t a10; extern struct chip_t a13_a10s_r8; extern struct chip_t a20; extern struct chip_t a23; extern struct chip_t a31; extern struct chip_t a33_r16; extern struct chip_t a40i_r40; extern struct chip_t a50; extern struct chip_t a523_a527_t527; extern struct chip_t a64; extern struct chip_t a80; extern struct chip_t a83t; extern struct chip_t d1_f133; extern struct chip_t f1c100s_f1c200s_f1c500s; extern struct chip_t h2_h3; extern struct chip_t h5; extern struct chip_t h6; extern struct chip_t h616; extern struct chip_t r128; extern struct chip_t r328; extern struct chip_t r329; extern struct chip_t r528_t113; extern struct chip_t r818; extern struct chip_t v3s_s3; extern struct chip_t v536; extern struct chip_t v831; extern struct chip_t v851_v853; extern struct chip_t v821; extern struct chip_t a733; extern struct chip_t t536; extern struct chip_t a537_a333; extern struct chip_t h135; static struct chip_t * chips[] = { &a10, &a13_a10s_r8, &a20, &a23, &a31, &a33_r16, &a40i_r40, &a50, &a523_a527_t527, &a64, &a80, &a83t, &d1_f133, &f1c100s_f1c200s_f1c500s, &h2_h3, &h5, &h6, &h616, &r128, &r328, &r329, &r528_t113, &r818, &v3s_s3, &v536, &v831, &v851_v853, &v821, &a733, &t536, &a537_a333, &h135, }; struct usb_request_t { char magic[8]; uint32_t length; uint32_t unknown1; uint16_t request; uint32_t length2; char pad[10]; } __attribute__((packed)); struct fel_request_t { uint32_t request; uint32_t address; uint32_t length; uint32_t pad; } __attribute__((packed)); static inline void usb_bulk_send(libusb_device_handle * hdl, int ep, const char * buf, size_t len) { size_t max_chunk = 128 * 1024; size_t chunk; int r, bytes; while(len > 0) { chunk = len < max_chunk ? len : max_chunk; r = libusb_bulk_transfer(hdl, ep, (void *)buf, chunk, &bytes, 10000); if(r != 0) { printf("usb bulk send error\r\n"); exit(-1); } len -= bytes; buf += bytes; } } static inline void usb_bulk_recv(libusb_device_handle * hdl, int ep, char * buf, size_t len) { int r, bytes; while(len > 0) { r = libusb_bulk_transfer(hdl, ep, (void *)buf, len, &bytes, 10000); if(r != 0) { printf("usb bulk recv error\r\n"); exit(-1); } len -= bytes; buf += bytes; } } static inline void send_usb_request(struct xfel_ctx_t * ctx, int type, size_t length) { struct usb_request_t req = { .magic = "AWUC", .request = cpu_to_le16(type), .length = cpu_to_le32(length), .unknown1 = cpu_to_le32(0x0c000000) }; req.length2 = req.length; usb_bulk_send(ctx->hdl, ctx->epout, (const char *)&req, sizeof(struct usb_request_t)); } static inline void read_usb_response(struct xfel_ctx_t * ctx) { char buf[13]; usb_bulk_recv(ctx->hdl, ctx->epin, (char *)buf, sizeof(buf)); assert(strcmp(buf, "AWUS") == 0); } static inline void usb_write(struct xfel_ctx_t * ctx, const void * buf, size_t len) { send_usb_request(ctx, 0x12, len); usb_bulk_send(ctx->hdl, ctx->epout, (const char *)buf, len); read_usb_response(ctx); } static inline void usb_read(struct xfel_ctx_t * ctx, const void * data, size_t len) { send_usb_request(ctx, 0x11, len); usb_bulk_send(ctx->hdl, ctx->epin, (const char *)data, len); read_usb_response(ctx); } static inline void send_fel_request(struct xfel_ctx_t * ctx, int type, uint32_t addr, uint32_t length) { struct fel_request_t req = { .request = cpu_to_le32(type), .address = cpu_to_le32(addr), .length = cpu_to_le32(length) }; usb_write(ctx, &req, sizeof(struct fel_request_t)); } static inline void read_fel_status(struct xfel_ctx_t * ctx) { char buf[8]; usb_read(ctx, buf, sizeof(buf)); } static inline int fel_version(struct xfel_ctx_t * ctx) { int i; send_fel_request(ctx, 0x001, 0, 0); usb_read(ctx, &ctx->version, sizeof(ctx->version)); read_fel_status(ctx); ctx->version.id = le32_to_cpu(ctx->version.id); ctx->version.firmware = le32_to_cpu(ctx->version.firmware); ctx->version.protocol = le16_to_cpu(ctx->version.protocol); ctx->version.scratchpad = le32_to_cpu(ctx->version.scratchpad); for(i = 0; i < ARRAY_SIZE(chips); i++) { ctx->chip = chips[i]; if(fel_chip_detect(ctx, ctx->version.id)) return 1; } printf("WARNING: Not yet support this device ID 0x%08x\r\n", ctx->version.id); return 0; } int fel_init(struct xfel_ctx_t * ctx) { if(ctx && ctx->hdl) { struct libusb_config_descriptor * config; int if_idx, set_idx, ep_idx; const struct libusb_interface * iface; const struct libusb_interface_descriptor * setting; const struct libusb_endpoint_descriptor * ep; if(libusb_kernel_driver_active(ctx->hdl, 0)) libusb_detach_kernel_driver(ctx->hdl, 0); if(libusb_claim_interface(ctx->hdl, 0) == 0) { if(libusb_get_active_config_descriptor(libusb_get_device(ctx->hdl), &config) == 0) { for(if_idx = 0; if_idx < config->bNumInterfaces; if_idx++) { iface = config->interface + if_idx; for(set_idx = 0; set_idx < iface->num_altsetting; set_idx++) { setting = iface->altsetting + set_idx; for(ep_idx = 0; ep_idx < setting->bNumEndpoints; ep_idx++) { ep = setting->endpoint + ep_idx; if((ep->bmAttributes & LIBUSB_TRANSFER_TYPE_MASK) != LIBUSB_TRANSFER_TYPE_BULK) continue; if((ep->bEndpointAddress & LIBUSB_ENDPOINT_DIR_MASK) == LIBUSB_ENDPOINT_IN) ctx->epin = ep->bEndpointAddress; else ctx->epout = ep->bEndpointAddress; } } } libusb_free_config_descriptor(config); return fel_version(ctx); } } } return 0; } void fel_exec(struct xfel_ctx_t * ctx, uint32_t addr) { send_fel_request(ctx, 0x102, addr, 0); read_fel_status(ctx); } static inline void fel_read_raw(struct xfel_ctx_t * ctx, uint32_t addr, void * buf, size_t len) { send_fel_request(ctx, 0x103, addr, len); usb_read(ctx, buf, len); read_fel_status(ctx); } static inline void fel_write_raw(struct xfel_ctx_t * ctx, uint32_t addr, void * buf, size_t len) { send_fel_request(ctx, 0x101, addr, len); usb_write(ctx, buf, len); read_fel_status(ctx); } uint32_t fel_read32(struct xfel_ctx_t * ctx, uint32_t addr) { uint32_t val; fel_read_raw(ctx, addr, &val, sizeof(uint32_t)); return val; } void fel_write32(struct xfel_ctx_t * ctx, uint32_t addr, uint32_t val) { fel_write_raw(ctx, addr, &val, sizeof(uint32_t)); } void fel_read(struct xfel_ctx_t * ctx, uint32_t addr, void * buf, size_t len) { size_t n; while(len > 0) { n = len > 65536 ? 65536 : len; fel_read_raw(ctx, addr, buf, n); addr += n; buf += n; len -= n; } } void fel_write(struct xfel_ctx_t * ctx, uint32_t addr, void * buf, size_t len) { size_t n; while(len > 0) { n = len > 65536 ? 65536 : len; fel_write_raw(ctx, addr, buf, n); addr += n; buf += n; len -= n; } } void fel_read_progress(struct xfel_ctx_t * ctx, uint32_t addr, void * buf, size_t len) { struct progress_t p; size_t n; progress_start(&p, len); while(len > 0) { n = len > 65536 ? 65536 : len; fel_read_raw(ctx, addr, buf, n); addr += n; buf += n; len -= n; progress_update(&p, n); } progress_stop(&p); } void fel_write_progress(struct xfel_ctx_t * ctx, uint32_t addr, void * buf, size_t len) { struct progress_t p; size_t n; progress_start(&p, len); while(len > 0) { n = len > 65536 ? 65536 : len; fel_write_raw(ctx, addr, buf, n); addr += n; buf += n; len -= n; progress_update(&p, n); } progress_stop(&p); } int fel_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { uint8_t cbuf[2]; if(!fel_chip_spi_init(ctx, swapbuf, swaplen, cmdlen)) return 0; cbuf[0] = SPI_CMD_INIT; cbuf[1] = SPI_CMD_END; if(!fel_chip_spi_run(ctx, cbuf, sizeof(cbuf))) return 0; return 1; } int fel_spi_xfer(struct xfel_ctx_t * ctx, uint32_t swapbuf, uint32_t swaplen, uint32_t cmdlen, void * txbuf, uint32_t txlen, void * rxbuf, uint32_t rxlen) { uint8_t cbuf[256]; uint32_t clen; uint32_t n; if((txlen <= swaplen) && (rxlen <= swaplen)) { clen = 0; cbuf[clen++] = SPI_CMD_SELECT; if(txlen > 0) { cbuf[clen++] = SPI_CMD_TXBUF; cbuf[clen++] = (swapbuf >> 0) & 0xff; cbuf[clen++] = (swapbuf >> 8) & 0xff; cbuf[clen++] = (swapbuf >> 16) & 0xff; cbuf[clen++] = (swapbuf >> 24) & 0xff; cbuf[clen++] = (txlen >> 0) & 0xff; cbuf[clen++] = (txlen >> 8) & 0xff; cbuf[clen++] = (txlen >> 16) & 0xff; cbuf[clen++] = (txlen >> 24) & 0xff; } if(rxlen > 0) { cbuf[clen++] = SPI_CMD_RXBUF; cbuf[clen++] = (swapbuf >> 0) & 0xff; cbuf[clen++] = (swapbuf >> 8) & 0xff; cbuf[clen++] = (swapbuf >> 16) & 0xff; cbuf[clen++] = (swapbuf >> 24) & 0xff; cbuf[clen++] = (rxlen >> 0) & 0xff; cbuf[clen++] = (rxlen >> 8) & 0xff; cbuf[clen++] = (rxlen >> 16) & 0xff; cbuf[clen++] = (rxlen >> 24) & 0xff; } cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_END; if(txlen > 0) fel_write(ctx, swapbuf, txbuf, txlen); if((clen > cmdlen) || !fel_chip_spi_run(ctx, cbuf, clen)) return 0; if(rxlen > 0) fel_read(ctx, swapbuf, rxbuf, rxlen); } else { clen = 0; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_END; if(!fel_chip_spi_run(ctx, cbuf, clen)) return 0; while(txlen > 0) { n = txlen > swaplen ? swaplen : txlen; clen = 0; cbuf[clen++] = SPI_CMD_TXBUF; cbuf[clen++] = (swapbuf >> 0) & 0xff; cbuf[clen++] = (swapbuf >> 8) & 0xff; cbuf[clen++] = (swapbuf >> 16) & 0xff; cbuf[clen++] = (swapbuf >> 24) & 0xff; cbuf[clen++] = (n >> 0) & 0xff; cbuf[clen++] = (n >> 8) & 0xff; cbuf[clen++] = (n >> 16) & 0xff; cbuf[clen++] = (n >> 24) & 0xff; cbuf[clen++] = SPI_CMD_END; fel_write(ctx, swapbuf, txbuf, n); if(!fel_chip_spi_run(ctx, cbuf, clen)) return 0; txbuf += n; txlen -= n; } while(rxlen > 0) { n = rxlen > swaplen ? swaplen : rxlen; clen = 0; cbuf[clen++] = SPI_CMD_RXBUF; cbuf[clen++] = (swapbuf >> 0) & 0xff; cbuf[clen++] = (swapbuf >> 8) & 0xff; cbuf[clen++] = (swapbuf >> 16) & 0xff; cbuf[clen++] = (swapbuf >> 24) & 0xff; cbuf[clen++] = (n >> 0) & 0xff; cbuf[clen++] = (n >> 8) & 0xff; cbuf[clen++] = (n >> 16) & 0xff; cbuf[clen++] = (n >> 24) & 0xff; cbuf[clen++] = SPI_CMD_END; if(!fel_chip_spi_run(ctx, cbuf, clen)) return 0; fel_read(ctx, swapbuf, rxbuf, n); rxbuf += n; rxlen -= n; } clen = 0; cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_END; if((clen > cmdlen) || !fel_chip_spi_run(ctx, cbuf, clen)) return 0; } return 1; } xfel-1.3.5/fel.h000066400000000000000000000072671512120643700134120ustar00rootroot00000000000000#ifndef __FEL_H__ #define __FEL_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include struct xfel_ctx_t; struct chip_t; struct xfel_ctx_t { libusb_device_handle * hdl; int epout; int epin; struct { char magic[8]; uint32_t id; uint32_t firmware; uint16_t protocol; uint8_t dflag; uint8_t dlength; uint32_t scratchpad; uint8_t pad[8]; } version; struct chip_t * chip; }; struct chip_t { char * name; int (*detect)(struct xfel_ctx_t * ctx, uint32_t id); int (*reset)(struct xfel_ctx_t * ctx); int (*sid)(struct xfel_ctx_t * ctx, char * sid); int (*jtag)(struct xfel_ctx_t * ctx); int (*ddr)(struct xfel_ctx_t * ctx, const char * type); int (*spi_init)(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen); int (*spi_run)(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen); int (*extra)(struct xfel_ctx_t * ctx, int argc, char * argv[]); }; enum { SPI_CMD_END = 0x00, SPI_CMD_INIT = 0x01, SPI_CMD_SELECT = 0x02, SPI_CMD_DESELECT = 0x03, SPI_CMD_FAST = 0x04, SPI_CMD_TXBUF = 0x05, SPI_CMD_RXBUF = 0x06, SPI_CMD_SPINOR_WAIT = 0x07, SPI_CMD_SPINAND_WAIT = 0x08, }; /* * This R32 and W32 macro can only be used for byte access address, Don't used for address * that can only support word access. Because the fel protocol can only support * byte operation, VERY IMPORTANT !!! */ #define R32(reg) fel_read32(ctx, reg) #define W32(reg, val) fel_write32(ctx, reg, val) static inline int fel_chip_detect(struct xfel_ctx_t * ctx, uint32_t id) { if(ctx->chip->detect) return ctx->chip->detect(ctx, id); return 0; } static inline int fel_chip_reset(struct xfel_ctx_t * ctx) { if(ctx->chip->reset) return ctx->chip->reset(ctx); return 0; } static inline int fel_chip_sid(struct xfel_ctx_t * ctx, char * sid) { if(ctx->chip->sid) return ctx->chip->sid(ctx, sid); return 0; } static inline int fel_chip_jtag(struct xfel_ctx_t * ctx) { if(ctx->chip->jtag) return ctx->chip->jtag(ctx); return 0; } static inline int fel_chip_ddr(struct xfel_ctx_t * ctx, const char * type) { if(ctx->chip->ddr) return ctx->chip->ddr(ctx, type); return 0; } static inline int fel_chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen) { if(ctx->chip->spi_init) return ctx->chip->spi_init(ctx, swapbuf, swaplen, cmdlen); return 0; } static inline int fel_chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen) { if(ctx->chip->spi_run) return ctx->chip->spi_run(ctx, cbuf, clen); return 0; } static inline int fel_chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[]) { if(ctx->chip->extra) return ctx->chip->extra(ctx, argc, argv); return 0; } int fel_init(struct xfel_ctx_t * ctx); void fel_exec(struct xfel_ctx_t * ctx, uint32_t addr); uint32_t fel_read32(struct xfel_ctx_t * ctx, uint32_t addr); void fel_write32(struct xfel_ctx_t * ctx, uint32_t addr, uint32_t val); void fel_read(struct xfel_ctx_t * ctx, uint32_t addr, void * buf, size_t len); void fel_write(struct xfel_ctx_t * ctx, uint32_t addr, void * buf, size_t len); void fel_read_progress(struct xfel_ctx_t * ctx, uint32_t addr, void * buf, size_t len); void fel_write_progress(struct xfel_ctx_t * ctx, uint32_t addr, void * buf, size_t len); int fel_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen); int fel_spi_xfer(struct xfel_ctx_t * ctx, uint32_t swapbuf, uint32_t swaplen, uint32_t cmdlen, void * txbuf, uint32_t txlen, void * rxbuf, uint32_t rxlen); #ifdef __cplusplus } #endif #endif /* __FEL_H__ */ xfel-1.3.5/main.c000066400000000000000000000272461512120643700135620ustar00rootroot00000000000000#include #include #include #include #include #include static void usage(void) { printf("xfel(v1.3.5) - https://github.com/xboot/xfel\r\n"); printf("usage:\r\n"); printf(" xfel version - Show chip version\r\n"); printf(" xfel hexdump
- Dumps memory region in hex\r\n"); printf(" xfel dump
- Binary memory dump to stdout\r\n"); printf(" xfel read32
- Read 32-bits value from device memory\r\n"); printf(" xfel write32
- Write 32-bits value to device memory\r\n"); printf(" xfel read
- Read memory to file\r\n"); printf(" xfel write
- Write file to memory\r\n"); printf(" xfel exec
- Call function address\r\n"); printf(" xfel reset - Reset device using watchdog\r\n"); printf(" xfel sid - Show sid information\r\n"); printf(" xfel jtag - Enable jtag debug\r\n"); printf(" xfel ddr [type] - Initial ddr controller with optional type\r\n"); printf(" xfel sign - Generate ecdsa256 signature file for sha256 of sid\r\n"); printf(" xfel spinor - Detect spi nor flash\r\n"); printf(" xfel spinor erase
- Erase spi nor flash\r\n"); printf(" xfel spinor read
- Read spi nor flash to file\r\n"); printf(" xfel spinor write
- Write file to spi nor flash\r\n"); printf(" xfel spinand - Detect spi nand flash\r\n"); printf(" xfel spinand erase
- Erase spi nand flash\r\n"); printf(" xfel spinand read
- Read spi nand flash to file\r\n"); printf(" xfel spinand write
- Write file to spi nand flash\r\n"); printf(" xfel spinand splwrite
- Write file to spi nand flash with split support\r\n"); printf(" xfel extra [...] - The extra commands\r\n"); } int main(int argc, char * argv[]) { struct xfel_ctx_t ctx = { 0 }; if(argc < 2) { usage(); return 0; } for(int i = 1; i < argc; i++) { if(!strcmp(argv[i], "-h") || !strcmp(argv[i], "--help")) { usage(); return 0; } } libusb_device ** list = NULL; libusb_context * context = NULL; libusb_init(&context); int count = libusb_get_device_list(context, &list); for(int i = 0; i < count; i++) { libusb_device * device = list[i]; struct libusb_device_descriptor desc; if(libusb_get_device_descriptor(device, &desc) != 0) printf("ERROR: Can't get device list\r\n"); if((desc.idVendor == 0x1f3a) && (desc.idProduct == 0xefe8)) { if(libusb_open(device, &ctx.hdl) != 0) printf("ERROR: Can't connect to device\r\n"); break; } } if(!fel_init(&ctx)) { printf("ERROR: No FEL device found!\r\n"); if(ctx.hdl) libusb_close(ctx.hdl); libusb_exit(NULL); return -1; } if(!strcmp(argv[1], "version")) { printf("%.8s ID=0x%08x(%s) dflag=0x%02x dlength=0x%02x scratchpad=0x%08x\r\n", ctx.version.magic, ctx.version.id, ctx.chip->name, ctx.version.dflag, ctx.version.dlength, ctx.version.scratchpad); } else if(!strcmp(argv[1], "hexdump")) { argc -= 2; argv += 2; if(argc == 2) { uint32_t addr = strtoul(argv[0], NULL, 0); size_t len = strtoul(argv[1], NULL, 0); char * buf = malloc(len); if(buf) { fel_read(&ctx, addr, buf, len); hexdump(addr, buf, len); free(buf); } } else usage(); } else if(!strcmp(argv[1], "dump")) { argc -= 2; argv += 2; if(argc == 2) { uint32_t addr = strtoul(argv[0], NULL, 0); size_t len = strtoul(argv[1], NULL, 0); char * buf = malloc(len); if(buf) { fel_read(&ctx, addr, buf, len); fwrite(buf, len, 1, stdout); free(buf); } } else usage(); } else if(!strcmp(argv[1], "read32")) { argc -= 2; argv += 2; if(argc == 1) { uint32_t addr = strtoul(argv[0], NULL, 0); printf("0x%08x\r\n", fel_read32(&ctx, addr)); } else usage(); } else if(!strcmp(argv[1], "write32")) { argc -= 2; argv += 2; if(argc == 2) { uint32_t addr = strtoul(argv[0], NULL, 0); uint32_t val = strtoul(argv[1], NULL, 0); fel_write32(&ctx, addr, val); } else usage(); } else if(!strcmp(argv[1], "read")) { argc -= 2; argv += 2; if(argc == 3) { uint32_t addr = strtoul(argv[0], NULL, 0); size_t len = strtoul(argv[1], NULL, 0); char * buf = malloc(len); if(buf) { fel_read_progress(&ctx, addr, buf, len); file_save(argv[2], buf, len); free(buf); } } else usage(); } else if(!strcmp(argv[1], "write")) { argc -= 2; argv += 2; if(argc == 2) { uint32_t addr = strtoul(argv[0], NULL, 0); uint64_t len; void * buf = file_load(argv[1], &len); if(buf) { fel_write_progress(&ctx, addr, buf, len); free(buf); } } else usage(); } else if(!strcmp(argv[1], "exec")) { argc -= 2; argv += 2; if(argc == 1) { uint32_t addr = strtoul(argv[0], NULL, 0); fel_exec(&ctx, addr); } else usage(); } else if(!strcmp(argv[1], "reset")) { if(!fel_chip_reset(&ctx)) printf("The '%s' chip don't support reset command\r\n", ctx.chip->name); } else if(!strcmp(argv[1], "sid")) { char sid[256]; if(fel_chip_sid(&ctx, sid)) printf("%s\r\n", sid); else printf("The '%s' chip don't support sid command\r\n", ctx.chip->name); } else if(!strcmp(argv[1], "jtag")) { if(!fel_chip_jtag(&ctx)) printf("The '%s' chip don't support jtag command\r\n", ctx.chip->name); } else if(!strcmp(argv[1], "ddr")) { argc -= 2; argv += 2; if(!fel_chip_ddr(&ctx, (argc == 1) ? argv[0] : "")) printf("Failed to initial ddr controller\r\n"); } else if(!strcmp(argv[1], "sign")) { argc -= 2; argv += 2; if(argc == 3) { uint8_t public_key[33] = { 0x03, 0xcf, 0xd1, 0x8e, 0x4a, 0x4b, 0x40, 0xd6, 0x52, 0x94, 0x48, 0xaa, 0x2d, 0xf8, 0xbb, 0xb6, 0x77, 0x12, 0x82, 0x58, 0xb8, 0xfb, 0xfc, 0x5b, 0x9e, 0x49, 0x2f, 0xbb, 0xba, 0x4e, 0x84, 0x83, 0x2f, }; uint8_t private_key[32] = { 0xdc, 0x57, 0xb8, 0xa9, 0xe0, 0xe2, 0xb7, 0xf8, 0xb4, 0xc9, 0x29, 0xbd, 0x8d, 0xb2, 0x84, 0x4e, 0x53, 0xf0, 0x1f, 0x17, 0x1b, 0xbc, 0xdf, 0x6e, 0x62, 0x89, 0x08, 0xdb, 0xf2, 0xb2, 0xe6, 0xa9, }; char * p = argv[0]; if(p && (strcmp(p, "") != 0) && (strlen(p) == sizeof(public_key) * 2)) { for(int i = 0; i < sizeof(public_key); i++) public_key[i] = hex_string(p, i * 2); } char * q = argv[1]; if(q && (strcmp(q, "") != 0) && (strlen(q) == sizeof(private_key) * 2)) { for(int i = 0; i < sizeof(private_key); i++) private_key[i] = hex_string(q, i * 2); } char sid[256]; uint8_t sha256[32]; uint8_t signature[64]; if(fel_chip_sid(&ctx, sid)) { sha256_hash(sid, strlen(sid), sha256); ecdsa256_sign(private_key, sha256, signature); printf("Unique ID:\r\n\t"); printf("%s\r\n", sid); printf("Sha256 digest:\r\n\t"); for(int i = 0; i < sizeof(sha256); i++) printf("%02x", sha256[i]); printf("\r\n"); printf("Ecdsa256 public key:\r\n\t"); for(int i = 0; i < sizeof(public_key); i++) printf("%02x", public_key[i]); printf("\r\n"); printf("Ecdsa256 private key:\r\n\t"); for(int i = 0; i < sizeof(private_key); i++) printf("%02x", private_key[i]); printf("\r\n"); printf("Ecdsa256 signature:\r\n\t"); for(int i = 0; i < sizeof(signature); i++) printf("%02x", signature[i]); printf("\r\n"); if(ecdsa256_verify(public_key, sha256, signature)) { file_save(argv[2], signature, sizeof(signature)); printf("Ecdsa256 signature verify successed and saved to '%s'.\r\n", argv[2]); } else printf("Ecdsa256 signature verify failed, please check the ecdsa256 public and private key.\r\n"); } else printf("The '%s' chip don't support sid command\r\n", ctx.chip->name); } else usage(); } else if(!strcmp(argv[1], "spinor")) { argc -= 2; argv += 2; if(argc == 0) { char name[128]; uint64_t capacity; if(spinor_detect(&ctx, name, &capacity)) printf("Found spi nor flash '%s' with %lld bytes\r\n", name, (long long)capacity); else printf("Can't detect any spi nor flash\r\n"); } else { if(!strcmp(argv[0], "erase") && (argc == 3)) { argc -= 1; argv += 1; uint64_t addr = strtoull(argv[0], NULL, 0); uint64_t len = strtoull(argv[1], NULL, 0); if(!spinor_erase(&ctx, addr, len)) printf("Can't erase spi nor flash\r\n"); } else if(!strcmp(argv[0], "read") && (argc == 4)) { argc -= 1; argv += 1; uint64_t addr = strtoull(argv[0], NULL, 0); uint64_t len = strtoull(argv[1], NULL, 0); char * buf = malloc(len); if(buf) { if(spinor_read(&ctx, addr, buf, len)) file_save(argv[2], buf, len); else printf("Can't read spi nor flash\r\n"); free(buf); } } else if(!strcmp(argv[0], "write") && (argc == 3)) { argc -= 1; argv += 1; uint64_t addr = strtoull(argv[0], NULL, 0); uint64_t len; void * buf = file_load(argv[1], &len); if(buf) { if(!spinor_write(&ctx, addr, buf, len)) printf("Can't write spi nor flash\r\n"); free(buf); } } else usage(); } } else if(!strcmp(argv[1], "spinand")) { argc -= 2; argv += 2; if(argc == 0) { char name[128]; uint64_t capacity; if(spinand_detect(&ctx, name, &capacity)) printf("Found spi nand flash '%s' with %lld bytes\r\n", name, (long long)capacity); else printf("Can't detect any spi nand flash\r\n"); } else { if(!strcmp(argv[0], "erase") && (argc == 3)) { argc -= 1; argv += 1; uint64_t addr = strtoull(argv[0], NULL, 0); uint64_t len = strtoull(argv[1], NULL, 0); if(!spinand_erase(&ctx, addr, len)) printf("Can't erase spi nand flash\r\n"); } else if(!strcmp(argv[0], "read") && (argc == 4)) { argc -= 1; argv += 1; uint64_t addr = strtoull(argv[0], NULL, 0); uint64_t len = strtoull(argv[1], NULL, 0); char * buf = malloc(len); if(buf) { if(spinand_read(&ctx, addr, buf, len)) file_save(argv[2], buf, len); else printf("Can't read spi nand flash\r\n"); free(buf); } } else if(!strcmp(argv[0], "write") && (argc == 3)) { argc -= 1; argv += 1; uint64_t addr = strtoull(argv[0], NULL, 0); uint64_t len; void * buf = file_load(argv[1], &len); if(buf) { if(!spinand_write(&ctx, addr, buf, len)) printf("Can't write spi nand flash\r\n"); free(buf); } } else if(!strcmp(argv[0], "splwrite") && (argc == 4)) { argc -= 1; argv += 1; uint32_t splitsz = strtoul(argv[0], NULL, 0); uint64_t addr = strtoull(argv[1], NULL, 0); uint64_t len; void * buf = file_load(argv[2], &len); if(buf) { if(!spinand_splwrite(&ctx, splitsz, addr, buf, len)) printf("Can't write spi nand flash with split support\r\n"); free(buf); } } else usage(); } } else if(!strcmp(argv[1], "extra")) { argc -= 2; argv += 2; if(!fel_chip_extra(&ctx, argc, argv)) printf("Not support any extra commands\r\n"); } else usage(); if(ctx.hdl) libusb_close(ctx.hdl); libusb_exit(NULL); return 0; } xfel-1.3.5/misc.c000066400000000000000000000033211512120643700135550ustar00rootroot00000000000000#include uint64_t file_save(const char * filename, void * buf, uint64_t len) { FILE * out; int r; if(strcmp(filename, "-") == 0) out = stdout; else out = fopen(filename, "wb"); if(!out) { perror("Failed to open output file"); exit(-1); } r = fwrite(buf, len, 1, out); if(out != stdout) fclose(out); return r; } void * file_load(const char * filename, uint64_t * len) { uint64_t offset = 0, bufsize = 8192; char * buf = malloc(bufsize); FILE * in; if(strcmp(filename, "-") == 0) in = stdin; else in = fopen(filename, "rb"); if(!in) { perror("Failed to open input file"); exit(-1); } while(1) { uint64_t len = bufsize - offset; uint64_t n = fread(buf + offset, 1, len, in); offset += n; if(n < len) break; bufsize *= 2; buf = realloc(buf, bufsize); if(!buf) { perror("Failed to resize load_file() buffer"); exit(-1); } } if(len) *len = offset; if(in != stdin) fclose(in); return buf; } static inline unsigned char hex_to_bin(char c) { if((c >= 'a') && (c <= 'f')) return c - 'a' + 10; if((c >= '0') && (c <= '9')) return c - '0'; if((c >= 'A') && (c <= 'F')) return c - 'A' + 10; return 0; } unsigned char hex_string(const char * s, int o) { return (hex_to_bin(s[o]) << 4) | hex_to_bin(s[o + 1]); } void hexdump(uint32_t addr, void * buf, size_t len) { unsigned char * p = buf; size_t i, j; for(j = 0; j < len; j += 16) { printf("%08x: ", (uint32_t)(addr + j)); for(i = 0; i < 16; i++) { if(j + i < len) printf("%02x ", p[j + i]); else printf(" "); } putchar(' '); for(i = 0; i < 16; i++) { if(j + i >= len) putchar(' '); else putchar(isprint(p[j + i]) ? p[j + i] : '.'); } printf("\r\n"); } } xfel-1.3.5/misc.h000066400000000000000000000006141512120643700135640ustar00rootroot00000000000000#ifndef __MISC_H__ #define __MISC_H__ #ifdef __cplusplus extern "C" { #endif #include uint64_t file_save(const char * filename, void * buf, uint64_t len); void * file_load(const char * filename, uint64_t * len); unsigned char hex_string(const char * s, int o); void hexdump(uint32_t addr, void * buf, size_t len); #ifdef __cplusplus } #endif #endif /* __MISC_H__ */ xfel-1.3.5/payloads/000077500000000000000000000000001512120643700142735ustar00rootroot00000000000000xfel-1.3.5/payloads/a523_a527_t527/000077500000000000000000000000001512120643700162645ustar00rootroot00000000000000xfel-1.3.5/payloads/a523_a527_t527/jmp-arm64/000077500000000000000000000000001512120643700200015ustar00rootroot00000000000000xfel-1.3.5/payloads/a523_a527_t527/jmp-arm64/.gitignore000066400000000000000000000000731512120643700217710ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/a523_a527_t527/jmp-arm64/Makefile000066400000000000000000000056341512120643700214510ustar00rootroot00000000000000# # Top makefile # CROSS ?= arm-linux-gnueabihf- NAME := jmp-arm64 # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 CFLAGS := -g -ggdb -Wall -O3 CXXFLAGS := -g -ggdb -Wall -O3 LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -march=armv7-a -mtune=cortex-a7 -mfpu=vfpv4 -mfloat-abi=hard -marm -mno-thumb-interwork -mno-unaligned-access -fno-stack-protector LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/a523_a527_t527/jmp-arm64/include/000077500000000000000000000000001512120643700214245ustar00rootroot00000000000000xfel-1.3.5/payloads/a523_a527_t527/jmp-arm64/include/byteorder.h000066400000000000000000000043611512120643700236000ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/a523_a527_t527/jmp-arm64/include/endian.h000066400000000000000000000007321512120643700230350ustar00rootroot00000000000000#ifndef __ARM32_ENDIAN_H__ #define __ARM32_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __ARM32_ENDIAN_H__ */ xfel-1.3.5/payloads/a523_a527_t527/jmp-arm64/include/io.h000066400000000000000000000016401512120643700222050ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/a523_a527_t527/jmp-arm64/include/stdarg.h000066400000000000000000000010541512120643700230610ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/a523_a527_t527/jmp-arm64/include/stddef.h000066400000000000000000000026101512120643700230450ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/a523_a527_t527/jmp-arm64/include/stdint.h000066400000000000000000000010161512120643700231000ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/a523_a527_t527/jmp-arm64/include/string.h000066400000000000000000000004241512120643700231030ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/a523_a527_t527/jmp-arm64/include/t527/000077500000000000000000000000001512120643700221255ustar00rootroot00000000000000xfel-1.3.5/payloads/a523_a527_t527/jmp-arm64/include/t527/reg-ccu.h000066400000000000000000000001751512120643700236260ustar00rootroot00000000000000#ifndef __T527_REG_CCU_H__ #define __T527_REG_CCU_H__ #define T527_CCU_BASE (0x02001000) #endif /* __T527_REG_CCU_H__ */ xfel-1.3.5/payloads/a523_a527_t527/jmp-arm64/include/types.h000066400000000000000000000021051512120643700227370ustar00rootroot00000000000000#ifndef __ARM32_TYPES_H__ #define __ARM32_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed int ptrdiff_t; typedef signed int intptr_t; typedef unsigned int uintptr_t; typedef unsigned int size_t; typedef signed int ssize_t; typedef signed int off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned int irq_flags_t; typedef unsigned int virtual_addr_t; typedef unsigned int virtual_size_t; typedef unsigned int physical_addr_t; typedef unsigned int physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __ARM32_TYPES_H__ */ xfel-1.3.5/payloads/a523_a527_t527/jmp-arm64/include/xboot.h000066400000000000000000000004731512120643700227340ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/a523_a527_t527/jmp-arm64/link.ld000066400000000000000000000046531512120643700212670ustar00rootroot00000000000000OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) STACK_UND_SIZE = 0x010; STACK_ABT_SIZE = 0x010; STACK_IRQ_SIZE = 0x010; STACK_FIQ_SIZE = 0x010; STACK_SRV_SIZE = 0x400; MEMORY { ram : org = 0x00020000, len = 0x00002000 /* 8 KB */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text) .obj/source/sys-jmp-arm64.o (.text*) *(.text*) *(.glue*) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ARM.exidx ALIGN(8) : { PROVIDE (__exidx_start = .); *(.ARM.exidx*) PROVIDE (__exidx_end = .); } > ram .ARM.extab ALIGN(8) : { PROVIDE (__extab_start = .); *(.ARM.extab*) PROVIDE (__extab_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(8) (NOLOAD) : { PROVIDE(__stack_start = .); PROVIDE(__stack_und_start = .); . += STACK_UND_SIZE; PROVIDE(__stack_und_end = .); . = ALIGN(8); PROVIDE(__stack_abt_start = .); . += STACK_ABT_SIZE; PROVIDE(__stack_abt_end = .); . = ALIGN(8); PROVIDE(__stack_irq_start = .); . += STACK_IRQ_SIZE; PROVIDE(__stack_irq_end = .); . = ALIGN(8); PROVIDE(__stack_fiq_start = .); . += STACK_FIQ_SIZE; PROVIDE(__stack_fiq_end = .); . = ALIGN(8); PROVIDE(__stack_srv_start = .); . += STACK_SRV_SIZE; PROVIDE(__stack_srv_end = .); . = ALIGN(8); PROVIDE(__stack_end = .); } > ram .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_info 0 : { *(.debug_info) } .debug_line 0 : { *(.debug_line) } .debug_pubnames 0 : { *(.debug_pubnames) } .debug_aranges 0 : { *(.debug_aranges) } } xfel-1.3.5/payloads/a523_a527_t527/jmp-arm64/source/000077500000000000000000000000001512120643700213015ustar00rootroot00000000000000xfel-1.3.5/payloads/a523_a527_t527/jmp-arm64/source/start.S000066400000000000000000000036421512120643700225670ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ .global _start _start: mov r0, #0 mcr p15, 0, r0, c8, c7, 0 mcr p15, 0, r0, c7, c5, 0 mcr p15, 0, r0, c7, c5, 6 mcr p15, 0, r0, c7, c10, 4 mcr p15, 0, r0, c7, c5, 4 b reset _adr: .word 0x40000000 reset: ldr r0, =0x00047fe0 str sp, [r0, #0] str lr, [r0, #4] mrs lr, cpsr str lr, [r0, #8] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #12] mrc p15, 0, lr, c12, c0, 0 str lr, [r0, #16] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #20] ldr r0, _adr bl sys_jmp_to_arm64 ldr r0, =0x00047fe0 ldr sp, [r0, #0] ldr lr, [r0, #4] ldr r1, [r0, #20] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #16] mcr p15, 0, r1, c12, c0, 0 ldr r1, [r0, #12] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #8] msr cpsr, r1 bx lr xfel-1.3.5/payloads/a523_a527_t527/jmp-arm64/source/sys-jmp-arm64.c000066400000000000000000000032321512120643700237760ustar00rootroot00000000000000/* * sys-uart.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include void sys_jmp_to_arm64(uint32_t val) { virtual_addr_t addr = 0x08000000; write32(addr + 0x40, val); write32(addr + 0x44, 0x0); __asm__ __volatile__("mrc p15, 0, r2, c12, c0, 2"); __asm__ __volatile__("orr r2, r2, #(0x3 << 0)"); __asm__ __volatile__("dsb"); __asm__ __volatile__("mcr p15, 0, r2, c12, c0, 2"); __asm__ __volatile__("isb"); _loop: __asm__ __volatile__("wfi"); goto _loop; } xfel-1.3.5/payloads/d1_f133/000077500000000000000000000000001512120643700153335ustar00rootroot00000000000000xfel-1.3.5/payloads/d1_f133/d1-ddr/000077500000000000000000000000001512120643700164065ustar00rootroot00000000000000xfel-1.3.5/payloads/d1_f133/d1-ddr/.gitignore000066400000000000000000000000731512120643700203760ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/d1_f133/d1-ddr/Makefile000066400000000000000000000056121512120643700200520ustar00rootroot00000000000000# # Top makefile # CROSS ?= ~/Xuantie-900-gcc-elf-newlib-x86_64-V2.2.4/bin/riscv64-unknown-elf- NAME := d1-ddr # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 CFLAGS := -g -ggdb -Wall -O3 CXXFLAGS := -g -ggdb -Wall -O3 LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -march=rv64gvxthead -mabi=lp64d -mcmodel=medany -fno-stack-protector LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/d1_f133/d1-ddr/include/000077500000000000000000000000001512120643700200315ustar00rootroot00000000000000xfel-1.3.5/payloads/d1_f133/d1-ddr/include/byteorder.h000066400000000000000000000043611512120643700222050ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/d1_f133/d1-ddr/include/d1/000077500000000000000000000000001512120643700203355ustar00rootroot00000000000000xfel-1.3.5/payloads/d1_f133/d1-ddr/include/d1/reg-ccu.h000066400000000000000000000050671512120643700220430ustar00rootroot00000000000000#ifndef __D1_REG_CCU_H__ #define __D1_REG_CCU_H__ #define D1_CCU_BASE (0x02001000) #define CCU_PLL_CPU_CTRL_REG (0x000) #define CCU_PLL_DDR_CTRL_REG (0x010) #define CCU_PLL_PERI0_CTRL_REG (0x020) #define CCU_PLL_PERI1_CTRL_REG (0x028) #define CCU_PLL_GPU_CTRL_REG (0x030) #define CCU_PLL_VIDEO0_CTRL_REG (0x040) #define CCU_PLL_VIDEO1_CTRL_REG (0x048) #define CCU_PLL_VE_CTRL (0x058) #define CCU_PLL_DE_CTRL (0x060) #define CCU_PLL_HSIC_CTRL (0x070) #define CCU_PLL_AUDIO0_CTRL_REG (0x078) #define CCU_PLL_AUDIO1_CTRL_REG (0x080) #define CCU_PLL_DDR_PAT0_CTRL_REG (0x110) #define CCU_PLL_DDR_PAT1_CTRL_REG (0x114) #define CCU_PLL_PERI0_PAT0_CTRL_REG (0x120) #define CCU_PLL_PERI0_PAT1_CTRL_REG (0x124) #define CCU_PLL_PERI1_PAT0_CTRL_REG (0x128) #define CCU_PLL_PERI1_PAT1_CTRL_REG (0x12c) #define CCU_PLL_GPU_PAT0_CTRL_REG (0x130) #define CCU_PLL_GPU_PAT1_CTRL_REG (0x134) #define CCU_PLL_VIDEO0_PAT0_CTRL_REG (0x140) #define CCU_PLL_VIDEO0_PAT1_CTRL_REG (0x144) #define CCU_PLL_VIDEO1_PAT0_CTRL_REG (0x148) #define CCU_PLL_VIDEO1_PAT1_CTRL_REG (0x14c) #define CCU_PLL_VE_PAT0_CTRL_REG (0x158) #define CCU_PLL_VE_PAT1_CTRL_REG (0x15c) #define CCU_PLL_DE_PAT0_CTRL_REG (0x160) #define CCU_PLL_DE_PAT1_CTRL_REG (0x164) #define CCU_PLL_HSIC_PAT0_CTRL_REG (0x170) #define CCU_PLL_HSIC_PAT1_CTRL_REG (0x174) #define CCU_PLL_AUDIO0_PAT0_CTRL_REG (0x178) #define CCU_PLL_AUDIO0_PAT1_CTRL_REG (0x17c) #define CCU_PLL_AUDIO1_PAT0_CTRL_REG (0x180) #define CCU_PLL_AUDIO1_PAT1_CTRL_REG (0x184) #define CCU_PLL_CPU_BIAS_REG (0x300) #define CCU_PLL_DDR_BIAS_REG (0x310) #define CCU_PLL_PERI0_BIAS_REG (0x320) #define CCU_PLL_PERI1_BIAS_REG (0x328) #define CCU_PLL_GPU_BIAS_REG (0x330) #define CCU_PLL_VIDEO0_BIAS_REG (0x340) #define CCU_PLL_VIDEO1_BIAS_REG (0x348) #define CCU_PLL_VE_BIAS_REG (0x358) #define CCU_PLL_DE_BIAS_REG (0x360) #define CCU_PLL_HSIC_BIAS_REG (0x370) #define CCU_PLL_AUDIO0_BIAS_REG (0x378) #define CCU_PLL_AUDIO1_BIAS_REG (0x380) #define CCU_PLL_CPU_TUN_REG (0x400) #define CCU_CPU_AXI_CFG_REG (0x500) #define CCU_CPU_GATING_REG (0x504) #define CCU_PSI_CLK_REG (0x510) #define CCU_AHB3_CLK_REG (0x51c) #define CCU_APB0_CLK_REG (0x520) #define CCU_APB1_CLK_REG (0x524) #define CCU_MBUS_CLK_REG (0x540) #define CCU_DMA_BGR_REG (0x70c) #define CCU_DRAM_CLK_REG (0x800) #define CCU_MBUS_MAT_CLK_GATING_REG (0x804) #define CCU_DRAM_BGR_REG (0x80c) #define CCU_RISCV_CLK_REG (0xd00) #define CCU_RISCV_GATING_REG (0xd04) #define CCU_RISCV_CFG_BGR_REG (0xd0c) #endif /* __D1_REG_CCU_H__ */ xfel-1.3.5/payloads/d1_f133/d1-ddr/include/endian.h000066400000000000000000000007401512120643700214410ustar00rootroot00000000000000#ifndef __RISCV64_ENDIAN_H__ #define __RISCV64_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __RISCV64_ENDIAN_H__ */ xfel-1.3.5/payloads/d1_f133/d1-ddr/include/io.h000066400000000000000000000016401512120643700206120ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/d1_f133/d1-ddr/include/linkage.h000066400000000000000000000005461512120643700216210ustar00rootroot00000000000000#ifndef __RISCV64_LINKAGE_H__ #define __RISCV64_LINKAGE_H__ #ifdef __cplusplus extern "C" { #endif #if __riscv_xlen == 64 #define LREG ld #define SREG sd #define REGSZ 8 #define RVPTR .dword #elif __riscv_xlen == 32 #define LREG lw #define SREG sw #define REGSZ 4 #define RVPTR .word #endif #ifdef __cplusplus } #endif #endif /* __RISCV64_LINKAGE_H__ */ xfel-1.3.5/payloads/d1_f133/d1-ddr/include/riscv64.h000066400000000000000000000054311512120643700215050ustar00rootroot00000000000000#ifndef __RISCV64_H__ #define __RISCV64_H__ #ifdef __cplusplus extern "C" { #endif #define MSTATUS_UIE (1 << 0) #define MSTATUS_SIE (1 << 1) #define MSTATUS_MIE (1 << 3) #define MSTATUS_UPIE (1 << 4) #define MSTATUS_SPIE (1 << 5) #define MSTATUS_MPIE (1 << 7) #define MSTATUS_SPP (1 << 8) #define MSTATUS_MPP (3 << 11) #define MSTATUS_FS (3 << 13) #define MSTATUS_XS (3 << 15) #define MSTATUS_MPRV (1 << 17) #define MSTATUS_SUM (1 << 18) #define MSTATUS_MXR (1 << 19) #define MSTATUS_TVM (1 << 20) #define MSTATUS_TW (1 << 21) #define MSTATUS_TSR (1 << 22) #define MSTATUS32_SD (1 << 31) #define MSTATUS_UXL (3ULL << 32) #define MSTATUS_SXL (3ULL << 34) #define MSTATUS64_SD (1ULL << 63) #define MIP_USIP (1 << 0) #define MIP_SSIP (1 << 1) #define MIP_MSIP (1 << 3) #define MIP_UTIP (1 << 4) #define MIP_STIP (1 << 5) #define MIP_MTIP (1 << 7) #define MIP_UEIP (1 << 8) #define MIP_SEIP (1 << 9) #define MIP_MEIP (1 << 11) #define MIE_USIE (1 << 0) #define MIE_SSIE (1 << 1) #define MIE_MSIE (1 << 3) #define MIE_UTIE (1 << 4) #define MIE_STIE (1 << 5) #define MIE_MTIE (1 << 7) #define MIE_UEIE (1 << 8) #define MIE_SEIE (1 << 9) #define MIE_MEIE (1 << 11) #define csr_swap(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrrw %0, " #csr ", %1" \ : "=r" (__v) : "rK" (__v) \ : "memory"); \ __v; \ }) #define csr_read(csr) \ ({ \ register unsigned long __v; \ __asm__ __volatile__ ("csrr %0, " #csr \ : "=r" (__v) : \ : "memory"); \ __v; \ }) #define csr_write(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrw " #csr ", %0" \ : : "rK" (__v) \ : "memory"); \ }) #define csr_read_set(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrrs %0, " #csr ", %1" \ : "=r" (__v) : "rK" (__v) \ : "memory"); \ __v; \ }) #define csr_set(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrs " #csr ", %0" \ : : "rK" (__v) \ : "memory"); \ }) #define csr_read_clear(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrrc %0, " #csr ", %1" \ : "=r" (__v) : "rK" (__v) \ : "memory"); \ __v; \ }) #define csr_clear(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrc " #csr ", %0" \ : : "rK" (__v) \ : "memory"); \ }) #ifdef __cplusplus } #endif #endif /* __RISCV64_H__ */ xfel-1.3.5/payloads/d1_f133/d1-ddr/include/stdarg.h000066400000000000000000000010541512120643700214660ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/d1_f133/d1-ddr/include/stddef.h000066400000000000000000000026101512120643700214520ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/d1_f133/d1-ddr/include/stdint.h000066400000000000000000000010161512120643700215050ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/d1_f133/d1-ddr/include/string.h000066400000000000000000000004241512120643700215100ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/d1_f133/d1-ddr/include/types.h000066400000000000000000000021661512120643700213530ustar00rootroot00000000000000#ifndef __RISCV64_TYPES_H__ #define __RISCV64_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed long long ptrdiff_t; typedef signed long long intptr_t; typedef unsigned long long uintptr_t; typedef unsigned long long size_t; typedef signed long long ssize_t; typedef signed long off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned long irq_flags_t; typedef unsigned long long virtual_addr_t; typedef unsigned long long virtual_size_t; typedef unsigned long long physical_addr_t; typedef unsigned long long physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __RISCV64_TYPES_H__ */ xfel-1.3.5/payloads/d1_f133/d1-ddr/include/xboot.h000066400000000000000000000004731512120643700213410ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/d1_f133/d1-ddr/link.ld000066400000000000000000000031051512120643700176630ustar00rootroot00000000000000OUTPUT_FORMAT("elf64-littleriscv", "elf64-littleriscv", "elf64-littleriscv") OUTPUT_ARCH(riscv) ENTRY(_start) STACK_SIZE = 0x400; MEMORY { ram : org = 0x00020000, len = 0x00008000 /* 32KB */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text*) .obj/source/memcpy.o (.text*) .obj/source/memset.o (.text*) .obj/source/mctl_hal.o (.text*) .obj/source/sys-uart.o (.text*) .obj/source/sys-clock.o (.text*) .obj/source/sys-dram.o (.text*) *(.text*) *(.iplt) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(.rodata*) *(.srodata*) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); PROVIDE(__global_pointer$ = . + 0x800); *(.sdata*) *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(16) (NOLOAD) : { PROVIDE(__stack_start = .); . += STACK_SIZE; . = ALIGN(16); PROVIDE(__stack_end = .); } > ram /DISCARD/ : { *(.dynsym) } /DISCARD/ : { *(.dynstr*) } /DISCARD/ : { *(.dynamic*) } /DISCARD/ : { *(.plt*) } /DISCARD/ : { *(.interp*) } /DISCARD/ : { *(.gnu*) } } xfel-1.3.5/payloads/d1_f133/d1-ddr/source/000077500000000000000000000000001512120643700177065ustar00rootroot00000000000000xfel-1.3.5/payloads/d1_f133/d1-ddr/source/mctl_hal.S000066400000000000000000017511461512120643700216340ustar00rootroot00000000000000 .file "mctl_hal.c" .option nopic .text .Ltext0: .cfi_sections .debug_frame .section .text.set_ddr_voltage,"ax",@progbits .align 1 .weak set_ddr_voltage .type set_ddr_voltage, @function set_ddr_voltage: .LFB37: .file 1 "mctl_hal.c" .loc 1 29 1 .cfi_startproc .LVL0: .loc 1 30 1 ret .cfi_endproc .LFE37: .size set_ddr_voltage, .-set_ddr_voltage .section .text.handler_super_standby,"ax",@progbits .align 1 .weak handler_super_standby .type handler_super_standby, @function handler_super_standby: .LFB38: .loc 1 33 1 .cfi_startproc .loc 1 34 1 ret .cfi_endproc .LFE38: .size handler_super_standby, .-handler_super_standby .section .text.get_pmu_exist,"ax",@progbits .align 1 .weak get_pmu_exist .type get_pmu_exist, @function get_pmu_exist: .LFB39: .loc 1 36 1 .cfi_startproc .loc 1 37 1 .loc 1 38 1 is_stmt 0 li a0,-1 ret .cfi_endproc .LFE39: .size get_pmu_exist, .-get_pmu_exist .section .text.memcpy_self,"ax",@progbits .align 1 .globl memcpy_self .type memcpy_self, @function memcpy_self: .LFB40: .loc 1 41 1 is_stmt 1 .cfi_startproc .LVL1: .loc 1 44 2 .loc 1 45 2 .loc 1 46 2 .loc 1 46 7 is_stmt 0 li a5,0 .LVL2: .L5: bne a2,a5,.L6 .loc 1 49 1 ret .L6: .loc 1 47 3 is_stmt 1 .LVL3: .loc 1 47 13 is_stmt 0 lrbu a4,a1,a5,0 .loc 1 47 11 srb a4,a0,a5,0 addi a5,a5,1 .LVL4: j .L5 .cfi_endproc .LFE40: .size memcpy_self, .-memcpy_self .section .text.dram_udelay,"ax",@progbits .align 1 .globl dram_udelay .type dram_udelay, @function dram_udelay: .LFB41: .loc 1 58 1 is_stmt 1 .cfi_startproc .LVL5: .loc 1 59 3 extu a0,a0,31,0 tail sdelay .LVL6: .cfi_endproc .LFE41: .size dram_udelay, .-dram_udelay .section .text.dram_vol_set,"ax",@progbits .align 1 .globl dram_vol_set .type dram_vol_set, @function dram_vol_set: .LFB42: .loc 1 91 1 .cfi_startproc .LVL7: .loc 1 92 2 .loc 1 93 2 .loc 1 94 2 .loc 1 94 13 is_stmt 0 lw a5,4(a0) .loc 1 91 1 addi sp,sp,-16 .cfi_def_cfa_offset 16 sd ra,8(sp) .cfi_offset 1, -8 li a3,2 .loc 1 97 12 li a4,47 beq a5,a3,.L9 li a3,3 .loc 1 100 12 li a4,25 beq a5,a3,.L9 .loc 1 93 15 li a4,0 .L9: .LVL8: .loc 1 107 2 is_stmt 1 .LBB1162: .LBB1163: .file 2 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a2,50331648 lw a5,336(a2) .LVL9: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL10: #NO_APP .LBE1163: .LBE1162: .loc 1 108 2 .loc 1 108 10 is_stmt 0 li a3,-65536 addi a3,a3,255 and a5,a5,a3 .LVL11: .loc 1 109 2 is_stmt 1 .loc 1 109 20 is_stmt 0 slliw a4,a4,8 .LVL12: .loc 1 109 10 or a5,a5,a4 .LVL13: .loc 1 110 2 is_stmt 1 .loc 1 111 2 .LBB1164: .LBB1165: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1165: .LBE1164: .loc 1 110 10 is_stmt 0 li a4,-2097152 addi a4,a4,-1 and a5,a5,a4 .LVL14: .LBB1167: .LBB1166: .loc 2 97 2 sw a5,336(a2) .LVL15: .LBE1166: .LBE1167: .loc 1 112 2 is_stmt 1 .LBB1168: .LBB1169: .loc 1 59 3 li a0,1 .LVL16: call sdelay .LVL17: .LBE1169: .LBE1168: .loc 1 115 2 .LBB1170: .LBB1171: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL18: #NO_APP .LBE1171: .LBE1170: .loc 1 116 49 .loc 1 118 1 is_stmt 0 ld ra,8(sp) .cfi_restore 1 addi sp,sp,16 .cfi_def_cfa_offset 0 jr ra .cfi_endproc .LFE42: .size dram_vol_set, .-dram_vol_set .section .text.paraconfig,"ax",@progbits .align 1 .globl paraconfig .type paraconfig, @function paraconfig: .LFB43: .loc 1 126 1 is_stmt 1 .cfi_startproc .LVL19: .loc 1 127 2 .loc 1 128 2 .loc 1 127 8 is_stmt 0 lw a5,0(a0) .loc 1 127 11 not a1,a1 .LVL20: .loc 1 127 8 and a1,a1,a5 .loc 1 128 8 or a1,a1,a2 sw a1,0(a0) .loc 1 129 1 ret .cfi_endproc .LFE43: .size paraconfig, .-paraconfig .section .text.dram_enable_all_master,"ax",@progbits .align 1 .globl dram_enable_all_master .type dram_enable_all_master, @function dram_enable_all_master: .LFB44: .loc 1 137 1 is_stmt 1 .cfi_startproc .loc 1 139 2 .LVL21: .LBB1172: .LBB1173: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a5,51388416 li a4,-1 sw a4,32(a5) .LVL22: .LBE1173: .LBE1172: .loc 1 140 2 .LBB1174: .LBB1175: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a4,255 sw a4,36(a5) .LVL23: .LBE1175: .LBE1174: .loc 1 141 2 .LBB1176: .LBB1177: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a4,65536 addiw a4,a4,-1 sw a4,40(a5) .LVL24: .LBE1177: .LBE1176: .loc 1 142 2 .LBB1178: .LBB1179: .loc 1 59 3 li a0,10 tail sdelay .LVL25: .LBE1179: .LBE1178: .cfi_endproc .LFE44: .size dram_enable_all_master, .-dram_enable_all_master .section .text.dram_disable_all_master,"ax",@progbits .align 1 .globl dram_disable_all_master .type dram_disable_all_master, @function dram_disable_all_master: .LFB45: .loc 1 150 1 .cfi_startproc .loc 1 152 2 .LVL26: .LBB1180: .LBB1181: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a5,51388416 li a4,1 sw a4,32(a5) .LVL27: .LBE1181: .LBE1180: .loc 1 153 2 .LBB1182: .LBB1183: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw zero,36(a5) .LVL28: .LBE1183: .LBE1182: .loc 1 154 2 .LBB1184: .LBB1185: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1185: .LBE1184: .LBB1187: .LBB1188: .loc 1 59 3 is_stmt 0 li a0,10 .LBE1188: .LBE1187: .LBB1190: .LBB1186: .loc 2 97 2 sw zero,40(a5) .LVL29: .LBE1186: .LBE1190: .loc 1 155 2 is_stmt 1 .LBB1191: .LBB1189: .loc 1 59 3 tail sdelay .LVL30: .LBE1189: .LBE1191: .cfi_endproc .LFE45: .size dram_disable_all_master, .-dram_disable_all_master .section .text.eye_delay_compensation,"ax",@progbits .align 1 .globl eye_delay_compensation .type eye_delay_compensation, @function eye_delay_compensation: .LFB46: .loc 1 231 1 .cfi_startproc .LVL31: .loc 1 232 2 .loc 1 233 2 .loc 1 235 2 .loc 1 231 1 is_stmt 0 addi sp,sp,-32 .cfi_def_cfa_offset 32 li a4,51392512 .loc 1 238 57 li a1,8192 .loc 1 235 2 li a3,51392512 .loc 1 231 1 sd s1,16(sp) sd ra,24(sp) .cfi_offset 9, -16 .cfi_offset 1, -8 mv s1,a0 sd s0,8(sp) .cfi_offset 8, -24 .loc 1 231 1 addi a4,a4,784 .loc 1 238 57 addi a1,a1,-512 .loc 1 235 2 addi a0,a3,820 .LVL32: .L17: .loc 1 237 3 is_stmt 1 discriminator 3 .LBB1192: .LBB1193: .loc 2 138 2 discriminator 3 .loc 2 140 2 discriminator 3 .loc 2 140 6 is_stmt 0 discriminator 3 lw a6,0(a4) .LVL33: .loc 2 141 2 is_stmt 1 discriminator 3 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 3 .LVL34: #NO_APP .LBE1193: .LBE1192: .loc 1 238 3 discriminator 3 .loc 1 238 57 is_stmt 0 discriminator 3 lw a5,84(s1) .loc 1 238 107 discriminator 3 lw a2,88(s1) .loc 1 238 57 discriminator 3 slliw a5,a5,9 .loc 1 238 107 discriminator 3 slliw a2,a2,1 .loc 1 238 57 discriminator 3 and a5,a5,a1 .loc 1 238 107 discriminator 3 andi a2,a2,30 .loc 1 238 63 discriminator 3 or a5,a5,a2 .loc 1 238 11 discriminator 3 or a5,a5,a6 sext.w a5,a5 .LVL35: .loc 1 239 3 is_stmt 1 discriminator 3 .LBB1194: .LBB1195: .loc 2 96 2 discriminator 3 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 discriminator 3 #NO_APP swia a5,(a4),4,0 .LVL36: .LBE1195: .LBE1194: .loc 1 235 2 is_stmt 0 discriminator 3 bne a4,a0,.L17 .loc 1 245 57 li a5,8192 .LVL37: .loc 1 242 2 li s0,51392512 addi a3,a3,912 .loc 1 245 57 addi a2,a5,-512 .loc 1 242 2 addi a1,s0,948 .LVL38: .L18: .loc 1 244 3 is_stmt 1 discriminator 3 .LBB1196: .LBB1197: .loc 2 138 2 discriminator 3 .loc 2 140 2 discriminator 3 .loc 2 140 6 is_stmt 0 discriminator 3 lw a0,0(a3) .LVL39: .loc 2 141 2 is_stmt 1 discriminator 3 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 3 .LVL40: #NO_APP .LBE1197: .LBE1196: .loc 1 245 3 discriminator 3 .loc 1 245 51 is_stmt 0 discriminator 3 lw a4,84(s1) .loc 1 245 101 discriminator 3 lw a5,88(s1) .loc 1 245 51 discriminator 3 srliw a4,a4,4 .loc 1 245 101 discriminator 3 srliw a5,a5,4 .loc 1 245 57 discriminator 3 slliw a4,a4,9 .loc 1 245 107 discriminator 3 slliw a5,a5,1 .loc 1 245 57 discriminator 3 and a4,a4,a2 .loc 1 245 107 discriminator 3 andi a5,a5,30 .loc 1 245 63 discriminator 3 or a4,a4,a5 .loc 1 245 11 discriminator 3 or a4,a4,a0 sext.w a4,a4 .LVL41: .loc 1 246 3 is_stmt 1 discriminator 3 .LBB1198: .LBB1199: .loc 2 96 2 discriminator 3 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 discriminator 3 #NO_APP swia a4,(a3),4,0 .LVL42: .LBE1199: .LBE1198: .loc 1 242 2 is_stmt 0 discriminator 3 bne a3,a1,.L18 .loc 1 250 2 is_stmt 1 .LVL43: .LBB1200: .LBB1201: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,256(s0) .LVL44: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL45: #NO_APP .LBE1201: .LBE1200: .loc 1 251 2 .loc 1 252 2 .LBB1202: .LBB1203: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1203: .LBE1202: .loc 1 251 10 is_stmt 0 li a4,-67108864 addi a4,a4,-1 and a5,a5,a4 .LVL46: .LBB1205: .LBB1204: .loc 2 97 2 sw a5,256(s0) .LVL47: .LBE1204: .LBE1205: .loc 1 255 2 is_stmt 1 .LBB1206: .LBB1207: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a1,820(s0) .LVL48: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL49: #NO_APP .LBE1207: .LBE1206: .loc 1 256 2 .loc 1 256 51 is_stmt 0 lhu a4,86(s1) .loc 1 256 103 lhu a5,90(s1) .loc 1 256 58 slliw a4,a4,9 .loc 1 256 110 slliw a5,a5,1 .loc 1 256 58 and a4,a4,a2 .loc 1 256 110 andi a5,a5,30 .loc 1 256 64 or a4,a4,a5 .loc 1 256 10 or a4,a4,a1 .LVL50: .loc 1 257 2 is_stmt 1 .LBB1208: .LBB1209: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a4,820(s0) .LVL51: .LBE1209: .LBE1208: .loc 1 258 2 .LBB1210: .LBB1211: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a1,824(s0) .LVL52: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL53: #NO_APP .LBE1211: .LBE1210: .loc 1 259 2 .loc 1 259 51 is_stmt 0 lhu a4,86(s1) .loc 1 259 103 lhu a5,90(s1) .loc 1 259 58 slliw a4,a4,9 .loc 1 259 110 slliw a5,a5,1 .loc 1 259 58 and a4,a4,a2 .loc 1 259 110 andi a5,a5,30 .loc 1 259 64 or a4,a4,a5 .loc 1 259 10 or a4,a4,a1 .LVL54: .loc 1 260 2 is_stmt 1 .LBB1212: .LBB1213: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a4,824(s0) .LVL55: .LBE1213: .LBE1212: .loc 1 263 2 .LBB1214: .LBB1215: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a1,0(a3) .LVL56: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL57: #NO_APP .LBE1215: .LBE1214: .loc 1 264 2 .loc 1 264 51 is_stmt 0 lw a4,84(s1) .loc 1 264 103 lw a5,88(s1) .loc 1 264 51 srliw a4,a4,20 .loc 1 264 103 srliw a5,a5,20 .loc 1 264 58 slliw a4,a4,9 .loc 1 264 110 slliw a5,a5,1 .loc 1 264 58 and a4,a4,a2 .loc 1 264 110 andi a5,a5,30 .loc 1 264 64 or a4,a4,a5 .loc 1 264 10 or a4,a4,a1 sext.w a4,a4 .LVL58: .loc 1 265 2 is_stmt 1 .LBB1216: .LBB1217: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a4,0(a3) .LVL59: .LBE1217: .LBE1216: .loc 1 266 2 .LBB1218: .LBB1219: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a3,952(s0) .LVL60: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL61: #NO_APP .LBE1219: .LBE1218: .loc 1 267 2 .loc 1 267 51 is_stmt 0 lw a5,84(s1) .loc 1 267 103 lw a4,88(s1) .loc 1 267 51 srliw a5,a5,20 .loc 1 267 103 srliw a4,a4,20 .loc 1 267 58 slliw a5,a5,9 .loc 1 267 110 slliw a4,a4,1 .loc 1 267 58 and a5,a5,a2 .loc 1 267 110 andi a4,a4,30 .loc 1 267 64 or a5,a5,a4 .loc 1 267 10 or a5,a5,a3 sext.w a5,a5 .LVL62: .loc 1 268 2 is_stmt 1 .LBB1220: .LBB1221: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,952(s0) .LVL63: .LBE1221: .LBE1220: .loc 1 271 2 .LBB1222: .LBB1223: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,828(s0) .LVL64: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL65: #NO_APP .LBE1223: .LBE1222: .loc 1 272 2 .loc 1 272 52 is_stmt 0 lhu a4,86(s1) .loc 1 272 59 li a3,503316480 slliw a4,a4,25 and a4,a4,a3 .loc 1 272 10 or a4,a4,a5 .LVL66: .loc 1 273 2 is_stmt 1 .LBB1224: .LBB1225: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a4,828(s0) .LVL67: .LBE1225: .LBE1224: .loc 1 276 2 .LBB1226: .LBB1227: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a4,956(s0) .LVL68: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL69: #NO_APP .LBE1227: .LBE1226: .loc 1 277 2 .loc 1 277 52 is_stmt 0 lw a5,84(s1) srliw a5,a5,20 .loc 1 277 59 slliw a5,a5,25 and a5,a5,a3 .loc 1 277 10 or a5,a5,a4 .LVL70: .loc 1 278 2 is_stmt 1 .LBB1228: .LBB1229: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,956(s0) .LVL71: .LBE1229: .LBE1228: .loc 1 281 2 .LBB1230: .LBB1231: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,256(s0) .LVL72: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL73: #NO_APP .LBE1231: .LBE1230: .loc 1 282 2 .loc 1 283 2 .LBB1232: .LBB1233: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1233: .LBE1232: .loc 1 282 10 is_stmt 0 li a4,67108864 or a5,a5,a4 .LVL74: .LBB1235: .LBB1234: .loc 2 97 2 sw a5,256(s0) .LVL75: .LBE1234: .LBE1235: .loc 1 284 2 is_stmt 1 .LBB1236: .LBB1237: .loc 1 59 3 li a0,1 call sdelay .LVL76: .LBE1237: .LBE1236: .loc 1 287 2 .loc 1 290 56 is_stmt 0 li a4,4096 .loc 1 287 2 li a2,51392512 .LBB1239: .LBB1238: .loc 1 59 3 addi s0,s0,576 .LBE1238: .LBE1239: .loc 1 290 56 addi a4,a4,-256 .loc 1 287 2 addi a3,a2,636 .LVL77: .L19: .loc 1 289 3 is_stmt 1 discriminator 3 .LBB1240: .LBB1241: .loc 2 138 2 discriminator 3 .loc 2 140 2 discriminator 3 .loc 2 140 6 is_stmt 0 discriminator 3 lw a1,0(s0) .LVL78: .loc 2 141 2 is_stmt 1 discriminator 3 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 3 .LVL79: #NO_APP .LBE1241: .LBE1240: .loc 1 290 3 discriminator 3 .loc 1 290 50 is_stmt 0 discriminator 3 lw a5,80(s1) srliw a5,a5,4 .loc 1 290 56 discriminator 3 slliw a5,a5,8 and a5,a5,a4 .loc 1 290 11 discriminator 3 or a5,a5,a1 sext.w a5,a5 .LVL80: .loc 1 291 3 is_stmt 1 discriminator 3 .LBB1242: .LBB1243: .loc 2 96 2 discriminator 3 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 discriminator 3 #NO_APP swia a5,(s0),4,0 .LVL81: .LBE1243: .LBE1242: .loc 1 287 2 is_stmt 0 discriminator 3 bne s0,a3,.L19 .loc 1 297 56 li a5,4096 .LVL82: .loc 1 294 2 li a3,51392512 .loc 1 297 56 addi a1,a5,-256 addi a2,a2,552 .loc 1 294 2 addi a5,a3,576 .LVL83: .L20: .loc 1 296 3 is_stmt 1 discriminator 3 .LBB1244: .LBB1245: .loc 2 138 2 discriminator 3 .loc 2 140 2 discriminator 3 .loc 2 140 6 is_stmt 0 discriminator 3 lw a0,0(a2) .LVL84: .loc 2 141 2 is_stmt 1 discriminator 3 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 3 .LVL85: #NO_APP .LBE1245: .LBE1244: .loc 1 297 3 discriminator 3 .loc 1 297 50 is_stmt 0 discriminator 3 lw a4,80(s1) srliw a4,a4,4 .loc 1 297 56 discriminator 3 slliw a4,a4,8 and a4,a4,a1 .loc 1 297 11 discriminator 3 or a4,a4,a0 sext.w a4,a4 .LVL86: .loc 1 298 3 is_stmt 1 discriminator 3 .LBB1246: .LBB1247: .loc 2 96 2 discriminator 3 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 discriminator 3 #NO_APP swia a4,(a2),4,0 .LVL87: .LBE1247: .LBE1246: .loc 1 294 2 is_stmt 0 discriminator 3 bne a2,a5,.L20 .loc 1 302 2 is_stmt 1 .LVL88: .LBB1248: .LBB1249: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,536(a3) .LVL89: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL90: #NO_APP .LBE1249: .LBE1248: .loc 1 303 2 .loc 1 303 39 is_stmt 0 lw a4,80(s1) slliw a4,a4,8 and a4,a4,a1 .loc 1 303 10 or a4,a4,a5 sext.w a4,a4 .LVL91: .loc 1 304 2 is_stmt 1 .LBB1250: .LBB1251: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a4,536(a3) .LVL92: .LBE1251: .LBE1250: .loc 1 305 2 .LBB1252: .LBB1253: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,540(a3) .LVL93: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL94: #NO_APP .LBE1253: .LBE1252: .loc 1 306 2 .loc 1 306 53 is_stmt 0 lw a4,80(s1) and a4,a4,a1 .loc 1 306 10 or a4,a4,a5 sext.w a4,a4 .LVL95: .loc 1 307 2 is_stmt 1 .LBB1254: .LBB1255: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a4,540(a3) .LVL96: .LBE1255: .LBE1254: .loc 1 308 2 .LBB1256: .LBB1257: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a4,640(a3) .LVL97: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL98: #NO_APP .LBE1257: .LBE1256: .loc 1 309 2 .loc 1 309 48 is_stmt 0 lw a5,80(s1) srliw a5,a5,12 .loc 1 309 55 slliw a5,a5,8 and a5,a5,a1 .loc 1 309 10 or a5,a5,a4 sext.w a5,a5 .LVL99: .loc 1 310 2 is_stmt 1 .LBB1258: .LBB1259: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1259: .LBE1258: .loc 1 314 1 is_stmt 0 ld ra,24(sp) .cfi_restore 1 ld s0,8(sp) .cfi_restore 8 .LBB1261: .LBB1260: .loc 2 97 2 sw a5,640(a3) .LVL100: .LBE1260: .LBE1261: .loc 1 314 1 ld s1,16(sp) .cfi_restore 9 .LVL101: addi sp,sp,32 .cfi_def_cfa_offset 0 jr ra .cfi_endproc .LFE46: .size eye_delay_compensation, .-eye_delay_compensation .section .text.bit_delay_compensation,"ax",@progbits .align 1 .globl bit_delay_compensation .type bit_delay_compensation, @function bit_delay_compensation: .LFB47: .loc 1 322 1 is_stmt 1 .cfi_startproc .LVL102: .loc 1 323 2 .loc 1 324 2 .loc 1 322 1 is_stmt 0 addi sp,sp,-368 .cfi_def_cfa_offset 368 .loc 1 324 15 lui a1,%hi(.LANCHOR0) .loc 1 322 1 sd s0,352(sp) .loc 1 324 15 li a2,176 .cfi_offset 8, -16 addi s0,a1,%lo(.LANCHOR0) mv a0,sp .LVL103: addi a1,a1,%lo(.LANCHOR0) .loc 1 322 1 sd ra,360(sp) .cfi_offset 1, -8 .loc 1 324 15 call memcpy .LVL104: .loc 1 329 2 is_stmt 1 .loc 1 329 15 is_stmt 0 addi a6,sp,176 li a2,176 addi a1,s0,176 mv a0,a6 call memcpy .LVL105: .LBB1262: .LBB1263: .loc 2 140 6 li a5,51392512 .LBE1263: .LBE1262: .loc 1 329 15 mv a6,a0 .loc 1 333 2 is_stmt 1 .LVL106: .LBB1265: .LBB1264: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a4,256(a5) .LVL107: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL108: #NO_APP .LBE1264: .LBE1265: .loc 1 334 2 .loc 1 335 2 .LBB1266: .LBB1267: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1267: .LBE1266: .loc 1 334 10 is_stmt 0 li a3,-67108864 addi a3,a3,-1 and a4,a4,a3 .LVL109: .loc 1 337 2 li a1,51392512 .LBB1270: .LBB1268: .loc 2 97 2 sw a4,256(a5) .LVL110: .LBE1268: .LBE1270: .loc 1 337 2 is_stmt 1 .LBB1271: .LBB1269: .loc 2 97 2 is_stmt 0 li a0,0 addi a5,a5,784 .LBE1269: .LBE1271: .loc 1 339 3 li a7,44 .loc 1 337 2 addi t1,a1,1296 .LVL111: .L27: .loc 1 322 1 mv a2,a0 li a3,0 .LVL112: .L28: .loc 1 341 4 is_stmt 1 discriminator 3 .loc 1 341 61 is_stmt 0 discriminator 3 lrw a4,a6,a2,0 .loc 1 341 12 discriminator 3 lrw t3,sp,a2,0 .loc 1 341 61 discriminator 3 slliw a4,a4,8 .loc 1 341 12 discriminator 3 addw a4,a4,t3 .LVL113: .loc 1 342 4 is_stmt 1 discriminator 3 .LBB1272: .LBB1273: .loc 2 138 2 discriminator 3 .loc 2 140 2 discriminator 3 .loc 2 140 6 is_stmt 0 discriminator 3 lrw t3,a5,a3,0 .LVL114: .loc 2 141 2 is_stmt 1 discriminator 3 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 3 .LVL115: #NO_APP .LBE1273: .LBE1272: .loc 1 343 4 discriminator 3 .loc 1 344 4 discriminator 3 .LBB1274: .LBB1275: .loc 2 96 2 discriminator 3 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 discriminator 3 #NO_APP .LBE1275: .LBE1274: .loc 1 343 12 is_stmt 0 discriminator 3 addw a4,a4,t3 .LVL116: .LBB1277: .LBB1276: .loc 2 97 2 discriminator 3 srw a4,a5,a3,0 .LVL117: addi a3,a3,4 addi a2,a2,4 .LVL118: .LBE1276: .LBE1277: .loc 1 339 3 discriminator 3 bne a3,a7,.L28 addi a5,a5,128 addi a0,a0,44 .loc 1 337 2 discriminator 2 bne a5,t1,.L27 .loc 1 348 2 is_stmt 1 .LVL119: .LBB1278: .LBB1279: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,256(a1) .LVL120: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL121: #NO_APP .LBE1279: .LBE1278: .loc 1 349 2 .loc 1 350 2 .LBB1280: .LBB1281: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1281: .LBE1280: .loc 1 349 10 is_stmt 0 li a4,67108864 .loc 1 351 1 ld ra,360(sp) .cfi_restore 1 ld s0,352(sp) .cfi_restore 8 .loc 1 349 10 or a5,a5,a4 .LVL122: .LBB1283: .LBB1282: .loc 2 97 2 sw a5,256(a1) .LVL123: .LBE1282: .LBE1283: .loc 1 351 1 addi sp,sp,368 .cfi_def_cfa_offset 0 jr ra .cfi_endproc .LFE47: .size bit_delay_compensation, .-bit_delay_compensation .section .text.set_master_priority_pad,"ax",@progbits .align 1 .globl set_master_priority_pad .type set_master_priority_pad, @function set_master_priority_pad: .LFB48: .loc 1 359 1 is_stmt 1 .cfi_startproc .LVL124: .loc 1 360 2 .loc 1 362 2 .LBB1284: .LBB1285: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a5,51388416 lw a4,12(a5) .LVL125: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL126: #NO_APP .LBE1285: .LBE1284: .loc 1 363 2 .loc 1 363 10 is_stmt 0 li a3,-4096 and a4,a4,a3 .LVL127: .loc 1 364 2 is_stmt 1 .loc 1 364 30 is_stmt 0 lw a3,0(a0) srliw a3,a3,1 .loc 1 364 34 addiw a3,a3,-1 .loc 1 364 10 or a4,a4,a3 .LVL128: sext.w a4,a4 .LVL129: .loc 1 365 2 is_stmt 1 .LBB1286: .LBB1287: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a4,12(a5) .LVL130: .LBE1287: .LBE1286: .loc 1 366 2 .LBB1288: .LBB1289: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a4,65536 .LVL131: sw a4,512(a5) .LVL132: .LBE1289: .LBE1288: .loc 1 369 2 .LBB1290: .LBB1291: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a4,16777216 addiw a4,a4,9 sw a4,528(a5) .LVL133: .LBE1291: .LBE1290: .loc 1 370 2 .LBB1292: .LBB1293: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a3,5242880 addiw a3,a3,100 sw a3,532(a5) .LVL134: .LBE1293: .LBE1292: .loc 1 372 2 .LBB1294: .LBB1295: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a2,33554432 addiw a2,a2,13 sw a2,560(a5) .LVL135: .LBE1295: .LBE1294: .loc 1 373 2 .LBB1296: .LBB1297: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a2,6291456 addiw a2,a2,256 sw a2,564(a5) .LVL136: .LBE1297: .LBE1296: .loc 1 375 2 .LBB1298: .LBB1299: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a4,576(a5) .LVL137: .LBE1299: .LBE1298: .loc 1 376 2 .LBB1300: .LBB1301: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a3,580(a5) .LVL138: .LBE1301: .LBE1300: .loc 1 378 2 .LBB1302: .LBB1303: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a3,6553600 addiw a3,a3,521 sw a3,608(a5) .LVL139: .LBE1303: .LBE1302: .loc 1 379 2 .LBB1304: .LBB1305: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a3,2097152 addiw a3,a3,64 sw a3,612(a5) .LVL140: .LBE1305: .LBE1304: .loc 1 381 2 .LBB1306: .LBB1307: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a4,656(a5) .LVL141: .LBE1307: .LBE1306: .loc 1 382 2 .LBB1308: .LBB1309: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a4,4194304 addiw a4,a4,128 sw a4,660(a5) .LVL142: .LBE1309: .LBE1308: .loc 1 384 2 .LBB1310: .LBB1311: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw zero,1136(a5) .LVL143: .LBE1311: .LBE1310: .loc 1 385 2 .LBB1312: .LBB1313: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw zero,1140(a5) .LVL144: .LBE1313: .LBE1312: .loc 1 387 2 .LBB1314: .LBB1315: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a4,260059136 li a5,51392512 .LVL145: addiw a4,a4,-251 sw a4,448(a5) .LVL146: .LBE1315: .LBE1314: .loc 1 388 2 .LBB1316: .LBB1317: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a4,251658240 addiw a4,a4,255 sw a4,456(a5) .LVL147: .LBE1317: .LBE1316: .loc 1 389 2 .LBB1318: .LBB1319: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a4,1056964608 addiw a4,a4,95 sw a4,464(a5) .LVL148: .LBE1319: .LBE1318: .loc 1 390 50 .loc 1 391 1 is_stmt 0 ret .cfi_endproc .LFE48: .size set_master_priority_pad, .-set_master_priority_pad .section .text.auto_cal_timing,"ax",@progbits .align 1 .globl auto_cal_timing .type auto_cal_timing, @function auto_cal_timing: .LFB49: .loc 1 399 1 is_stmt 1 .cfi_startproc .LVL149: .loc 1 400 2 .loc 1 401 2 .loc 1 401 19 is_stmt 0 mulw a1,a0,a1 .LVL150: .loc 1 402 2 is_stmt 1 .loc 1 401 54 is_stmt 0 li a5,1000 .loc 1 401 72 remuw a0,a1,a5 .LVL151: .loc 1 401 26 divuw a1,a1,a5 .LVL152: .loc 1 401 72 snez a0,a0 .loc 1 403 1 addw a0,a0,a1 ret .cfi_endproc .LFE49: .size auto_cal_timing, .-auto_cal_timing .section .text.auto_set_timing_para,"ax",@progbits .align 1 .globl auto_set_timing_para .type auto_set_timing_para, @function auto_set_timing_para: .LFB50: .loc 1 411 1 is_stmt 1 .cfi_startproc .LVL153: .loc 1 412 2 .loc 1 413 2 .loc 1 414 2 .loc 1 415 2 .loc 1 416 2 .loc 1 417 2 .loc 1 418 2 .loc 1 419 2 .loc 1 420 2 .loc 1 421 2 .loc 1 422 2 .loc 1 423 2 .loc 1 424 2 .loc 1 425 2 .loc 1 426 2 .loc 1 427 2 .loc 1 428 2 .loc 1 429 2 .loc 1 430 2 .loc 1 431 2 .loc 1 432 2 .loc 1 433 2 .loc 1 434 2 .loc 1 435 2 .loc 1 436 2 .loc 1 437 2 .loc 1 438 2 .loc 1 439 2 .loc 1 440 2 .loc 1 441 2 .loc 1 442 2 .loc 1 443 2 .loc 1 444 2 .loc 1 445 2 .loc 1 446 2 .loc 1 447 2 .loc 1 448 2 .loc 1 449 2 .loc 1 450 2 .loc 1 452 2 .loc 1 453 2 .loc 1 453 25 is_stmt 0 lw a5,92(a0) .loc 1 411 1 addi sp,sp,-208 .cfi_def_cfa_offset 208 sd s4,160(sp) sd s5,152(sp) sd s8,128(sp) .loc 1 453 25 sd a5,80(sp) .LVL154: .loc 1 455 2 is_stmt 1 .loc 1 411 1 is_stmt 0 sd ra,200(sp) sd s0,192(sp) sd s1,184(sp) sd s2,176(sp) sd s3,168(sp) sd s6,144(sp) sd s7,136(sp) sd s9,120(sp) sd s10,112(sp) sd s11,104(sp) .cfi_offset 20, -48 .cfi_offset 21, -56 .cfi_offset 24, -80 .cfi_offset 1, -8 .cfi_offset 8, -16 .cfi_offset 9, -24 .cfi_offset 18, -32 .cfi_offset 19, -40 .cfi_offset 22, -64 .cfi_offset 23, -72 .cfi_offset 25, -88 .cfi_offset 26, -96 .cfi_offset 27, -104 .loc 1 458 22 andi a5,a5,2 .loc 1 411 1 mv s5,a0 .loc 1 456 7 lwd s4,s8,(a0),0,3 .LVL155: .loc 1 458 2 is_stmt 1 .loc 1 458 4 is_stmt 0 beqz a5,.L35 .loc 1 460 48 is_stmt 1 .loc 1 462 3 .loc 1 462 17 is_stmt 0 lw s9,40(a0) .loc 1 468 17 lw a2,44(a0) .loc 1 475 18 lw s2,48(a0) .loc 1 462 8 extu a5,s9,21+3-1,21 sd a5,88(sp) .LVL156: .loc 1 463 3 is_stmt 1 .loc 1 470 8 is_stmt 0 extu a5,a2,15+5-1,15 sd a5,64(sp) .loc 1 472 7 extu a5,a2,6+5-1,6 sd a5,0(sp) .loc 1 475 9 extu a5,s2,12+9-1,12 .loc 1 476 9 extu s2,s2,0+12-1,0 .loc 1 463 8 extu s10,s9,15+6-1,15 .LVL157: .loc 1 464 3 is_stmt 1 .loc 1 464 8 is_stmt 0 extu s7,s9,11+4-1,11 .LVL158: .loc 1 465 3 is_stmt 1 .loc 1 465 8 is_stmt 0 extu s3,s9,6+5-1,6 .LVL159: .loc 1 466 3 is_stmt 1 .loc 1 468 7 is_stmt 0 extu a6,a2,23+5-1,23 .loc 1 466 8 andi s9,s9,63 .LVL160: .loc 1 468 3 is_stmt 1 .loc 1 469 3 .loc 1 469 8 is_stmt 0 extu s1,a2,20+3-1,20 .LVL161: .loc 1 470 3 is_stmt 1 .loc 1 471 3 .loc 1 471 7 is_stmt 0 extu s6,a2,11+4-1,11 .LVL162: .loc 1 472 3 is_stmt 1 .loc 1 473 3 .loc 1 473 8 is_stmt 0 andi s11,a2,63 .LVL163: .loc 1 475 3 is_stmt 1 .loc 1 475 9 is_stmt 0 sd a5,8(sp) .LVL164: .loc 1 476 3 is_stmt 1 .loc 1 476 9 is_stmt 0 sext.w s2,s2 .LVL165: .L36: .loc 1 614 61 is_stmt 1 .loc 1 617 2 lw a5,36(s5) sd a5,72(sp) lw a5,28(s5) sd a5,56(sp) li a5,3 beq s8,a5,.L57 bgtu s8,a5,.L58 li a5,2 beq s8,a5,.L59 .L84: .loc 1 446 15 is_stmt 0 li a5,8 sd a5,48(sp) .loc 1 449 15 li t1,4 .loc 1 448 15 li t4,3 .loc 1 447 15 li t6,4 .loc 1 445 15 li t3,27 .loc 1 444 15 li s6,12 .LVL166: .loc 1 431 15 li s8,2 .LVL167: .loc 1 429 15 li t0,6 .loc 1 428 15 li t5,2 .loc 1 427 15 li a1,0 .loc 1 426 15 li a5,3 .loc 1 425 15 li a0,3 .loc 1 424 15 li a7,1 .loc 1 423 15 li a4,1 .loc 1 422 15 li s0,0 .loc 1 421 15 li t2,0 .loc 1 420 15 li s1,0 .LVL168: .loc 1 419 15 li a3,0 .loc 1 418 15 sd zero,40(sp) .loc 1 417 15 sd zero,32(sp) .loc 1 416 15 sd zero,24(sp) .loc 1 415 15 sd zero,16(sp) .LVL169: .L60: .loc 1 774 2 is_stmt 1 .loc 1 774 4 is_stmt 0 ld a2,64(sp) ld s4,0(sp) addw s4,s4,a2 addiw a2,a0,2 bgeu s4,a2,.L66 .loc 1 775 3 is_stmt 1 .loc 1 775 8 is_stmt 0 ld a2,0(sp) subw s4,a0,a2 addiw a2,s4,2 sd a2,64(sp) .LVL170: .L66: .loc 1 780 3 is_stmt 1 .loc 1 780 5 is_stmt 0 lhu s4,26(s5) bnez s4,.L67 .loc 1 781 4 is_stmt 1 .loc 1 781 19 is_stmt 0 sw a3,24(s5) .L67: .loc 1 782 3 is_stmt 1 .loc 1 782 5 is_stmt 0 ld a3,56(sp) .LVL171: extu a3,a3,16+16-1,16 bnez a3,.L68 .loc 1 783 4 is_stmt 1 .loc 1 783 19 is_stmt 0 sw s1,28(s5) .L68: .loc 1 784 3 is_stmt 1 .loc 1 784 5 is_stmt 0 lhu a3,34(s5) bnez a3,.L69 .loc 1 785 4 is_stmt 1 .loc 1 785 19 is_stmt 0 sw t2,32(s5) .L69: .loc 1 786 3 is_stmt 1 .loc 1 786 5 is_stmt 0 ld a3,72(sp) extu a3,a3,16+16-1,16 bnez a3,.L70 .loc 1 787 4 is_stmt 1 .loc 1 787 19 is_stmt 0 sw s0,36(s5) .L70: .loc 1 789 3 is_stmt 1 lhu t2,24(s5) .LVL172: .LBB1320: .LBB1321: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a3,51392512 sw t2,48(a3) .LVL173: .LBE1321: .LBE1320: .loc 1 790 3 lhu t2,28(s5) .LVL174: .LBB1322: .LBB1323: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw t2,52(a3) .LVL175: .LBE1323: .LBE1322: .loc 1 791 3 lhu t2,32(s5) .LVL176: .LBB1324: .LBB1325: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw t2,56(a3) .LVL177: .LBE1325: .LBE1324: .loc 1 792 3 lhu t2,36(s5) .LVL178: .LBB1326: .LBB1327: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw t2,60(a3) .LVL179: .LBE1327: .LBE1326: .loc 1 793 3 lw t2,12(s5) extu t2,t2,4+2-1,4 .LVL180: .LBB1328: .LBB1329: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw t2,44(a3) .LVL181: .LBE1329: .LBE1328: .loc 1 795 70 .loc 1 796 70 .loc 1 797 70 .loc 1 798 70 .loc 1 804 2 .loc 1 805 60 .loc 1 806 2 .LBB1330: .LBB1331: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1331: .LBE1330: .loc 1 804 33 is_stmt 0 slliw s10,s10,16 .LVL182: .loc 1 804 10 or s10,s11,s10 .loc 1 804 18 slliw t2,s6,24 .loc 1 804 10 or s10,s10,t2 .loc 1 804 51 slliw t3,t3,8 .LVL183: .loc 1 804 10 or s10,s10,t3 .LBB1333: .LBB1332: .loc 2 97 2 sw s10,88(a3) .LVL184: .LBE1332: .LBE1333: .loc 1 807 2 is_stmt 1 .loc 1 808 60 .loc 1 809 2 .LBB1334: .LBB1335: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1335: .LBE1334: .loc 1 807 32 is_stmt 0 ld a2,64(sp) .loc 1 807 17 slliw a6,a6,16 .LVL185: .loc 1 807 10 or a6,s9,a6 .loc 1 807 32 slliw s4,a2,8 .loc 1 807 10 or a6,a6,s4 .LBB1337: .LBB1336: .loc 2 97 2 sw a6,92(a3) .LVL186: .LBE1336: .LBE1337: .loc 1 810 2 is_stmt 1 .loc 1 811 60 .loc 1 812 2 .LBB1338: .LBB1339: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1339: .LBE1338: .loc 1 810 18 is_stmt 0 slliw s1,a5,24 .LVL187: .loc 1 810 10 ld a5,48(sp) .LVL188: .loc 1 810 32 slliw a0,a0,16 .LVL189: .loc 1 810 25 or s1,s1,a0 .loc 1 810 10 or s1,s1,a5 .loc 1 810 49 slliw t6,t6,8 .LVL190: .loc 1 810 10 or t6,s1,t6 .LBB1341: .LBB1340: .loc 2 97 2 sw t6,96(a3) .LVL191: .LBE1340: .LBE1341: .loc 1 813 2 is_stmt 1 .loc 1 814 60 .loc 1 815 2 .LBB1342: .LBB1343: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1343: .LBE1342: .loc 1 813 33 is_stmt 0 slliw t5,t5,12 .LVL192: .loc 1 813 18 slliw a1,a1,16 .LVL193: .loc 1 813 25 or a1,a1,t5 .loc 1 813 10 or t0,a1,t0 .LVL194: .LBB1345: .LBB1344: .loc 2 97 2 sw t0,100(a3) .LVL195: .LBE1344: .LBE1345: .loc 1 816 2 is_stmt 1 .loc 1 817 60 .loc 1 818 2 .LBB1346: .LBB1347: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1347: .LBE1346: .loc 1 816 33 is_stmt 0 ld a5,88(sp) .loc 1 816 18 slliw s3,s3,24 .LVL196: .loc 1 816 48 slliw s7,s7,8 .LVL197: .loc 1 816 33 slliw a5,a5,16 .loc 1 816 25 or s3,s3,a5 .loc 1 816 10 ld a5,0(sp) or t3,s3,a5 or s7,t3,s7 .LBB1349: .LBB1348: .loc 2 97 2 sw s7,104(a3) .LVL198: .LBE1348: .LBE1349: .loc 1 819 2 is_stmt 1 .loc 1 820 60 .loc 1 821 2 .LBB1350: .LBB1351: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1351: .LBE1350: .loc 1 819 20 is_stmt 0 slliw a5,t1,24 .loc 1 819 37 slliw t1,t1,16 .LVL199: .loc 1 819 27 or t1,a5,t1 .loc 1 819 10 or s8,t1,s8 .LVL200: .loc 1 819 54 slliw t4,t4,8 .LVL201: .loc 1 819 10 or t4,s8,t4 .LBB1353: .LBB1352: .loc 2 97 2 sw t4,108(a3) .LVL202: .LBE1352: .LBE1353: .loc 1 823 2 is_stmt 1 .LBB1354: .LBB1355: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,120(a3) .LVL203: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL204: #NO_APP .LBE1355: .LBE1354: .loc 1 824 2 .loc 1 825 2 .loc 1 826 2 .loc 1 827 2 .loc 1 828 4 is_stmt 0 lw a1,0(s5) li a3,268369920 and a5,a5,a3 .LVL205: .loc 1 828 2 is_stmt 1 .loc 1 828 4 is_stmt 0 li a3,800 bgtu a1,a3,.L71 .loc 1 829 3 is_stmt 1 .loc 1 829 11 is_stmt 0 li a3,-268410880 .L86: .loc 1 831 11 addi a3,a3,1536 or a5,a5,a3 .LVL206: .loc 1 833 2 is_stmt 1 .loc 1 834 2 .LBB1356: .LBB1357: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a3,51392512 .LBE1357: .LBE1356: .loc 1 833 10 is_stmt 0 ori a5,a5,16 .LVL207: .LBB1359: .LBB1358: .loc 2 97 2 sw a5,120(a3) .LVL208: .LBE1358: .LBE1359: .loc 1 835 61 is_stmt 1 .loc 1 837 2 .loc 1 838 58 .loc 1 839 2 .LBB1360: .LBB1361: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1361: .LBE1360: .loc 1 837 38 is_stmt 0 slliw a4,a4,16 .LVL209: .loc 1 837 58 or a4,a7,a4 .loc 1 837 10 li a7,33554432 .LVL210: addi a7,a7,256 or a4,a4,a7 .LBB1363: .LBB1362: .loc 2 97 2 sw a4,128(a3) .LVL211: .LBE1362: .LBE1363: .loc 1 841 2 is_stmt 1 .LBB1364: .LBB1365: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1365: .LBE1364: .loc 1 841 2 is_stmt 0 ld a5,24(sp) ld a4,16(sp) slliw a5,a5,20 or a5,a4,a5 .LBB1367: .LBB1366: .loc 2 97 2 sw a5,80(a3) .LVL212: .LBE1366: .LBE1367: .loc 1 842 2 is_stmt 1 .LBB1368: .LBB1369: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1369: .LBE1368: .loc 1 842 2 is_stmt 0 ld a5,40(sp) ld a4,32(sp) slliw a5,a5,20 or a5,a4,a5 .LBB1371: .LBB1370: .loc 2 97 2 sw a5,84(a3) .LVL213: .LBE1370: .LBE1371: .loc 1 844 2 is_stmt 1 .loc 1 845 60 .loc 1 846 2 .LBB1372: .LBB1373: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1373: .LBE1372: .loc 1 844 10 is_stmt 0 ld a4,8(sp) .loc 1 844 19 slliw a5,s2,16 .loc 1 844 10 or a5,a4,a5 .LBB1375: .LBB1374: .loc 2 97 2 sw a5,144(a3) .LVL214: .LBE1374: .LBE1375: .loc 1 847 2 is_stmt 1 .loc 1 848 2 .LBB1376: .LBB1377: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1377: .LBE1376: .loc 1 847 10 is_stmt 0 li a5,268369920 .loc 1 849 1 ld ra,200(sp) .cfi_remember_state .cfi_restore 1 ld s0,192(sp) .cfi_restore 8 .LVL215: .loc 1 847 20 slliw s2,s2,15 .LVL216: .loc 1 847 10 and s2,s2,a5 .LBB1379: .LBB1378: .loc 2 97 2 sw s2,148(a3) .LVL217: .LBE1378: .LBE1379: .loc 1 849 1 ld s1,184(sp) .cfi_restore 9 ld s2,176(sp) .cfi_restore 18 ld s3,168(sp) .cfi_restore 19 ld s4,160(sp) .cfi_restore 20 ld s5,152(sp) .cfi_restore 21 .LVL218: ld s6,144(sp) .cfi_restore 22 .LVL219: ld s7,136(sp) .cfi_restore 23 ld s8,128(sp) .cfi_restore 24 ld s9,120(sp) .cfi_restore 25 .LVL220: ld s10,112(sp) .cfi_restore 26 ld s11,104(sp) .cfi_restore 27 .LVL221: addi sp,sp,208 .cfi_def_cfa_offset 0 .LVL222: jr ra .LVL223: .L35: .cfi_restore_state .loc 1 481 5 li a5,3 .loc 1 455 12 extu s0,s4,1+31-1,1 .loc 1 480 51 is_stmt 1 .loc 1 481 3 .loc 1 481 5 is_stmt 0 bne s8,a5,.L37 .loc 1 483 4 is_stmt 1 mv a1,s0 li a0,350 .LVL224: call auto_cal_timing .LVL225: sext.w a5,a0 li a0,8192 mv a1,s0 addi a0,a0,-392 sd a5,8(sp) call auto_cal_timing .LVL226: sext.w a0,a0 andi s2,a0,31 snez s2,s2 srliw a0,a0,5 mv a1,s0 addw s2,s2,a0 li a0,8 call auto_cal_timing .LVL227: sext.w s6,a0 mv a1,s0 li a0,15 call auto_cal_timing .LVL228: li a5,2 sext.w s3,a0 mv s1,s6 bgeu s6,a5,.L38 li s1,2 .L38: li a5,2 mv s6,s3 bgeu s3,a5,.L39 li s6,2 .L39: .loc 1 483 6 is_stmt 0 li a5,800 .loc 1 487 12 mv a1,s0 .loc 1 483 6 bgtu s4,a5,.L40 .loc 1 486 5 is_stmt 1 .loc 1 487 5 .loc 1 487 12 is_stmt 0 li a0,50 call auto_cal_timing .LVL229: sext.w s10,a0 .LVL230: .loc 1 488 5 is_stmt 1 .loc 1 488 12 is_stmt 0 mv a1,s0 li a0,10 call auto_cal_timing .LVL231: sext.w a0,a0 .LVL232: .loc 1 489 5 is_stmt 1 li a5,2 mv s7,a0 bgeu a0,a5,.L41 li s7,2 .L41: .LVL233: .loc 1 490 5 .loc 1 491 5 .loc 1 491 11 is_stmt 0 mv a1,s0 li a0,53 call auto_cal_timing .LVL234: sext.w s9,a0 .LVL235: .loc 1 493 5 is_stmt 1 .loc 1 494 5 .loc 1 495 5 .loc 1 496 5 .loc 1 497 5 .loc 1 498 5 .loc 1 499 5 .loc 1 500 5 .loc 1 501 5 .loc 1 502 5 .loc 1 502 12 is_stmt 0 mv a1,s0 li a0,38 call auto_cal_timing .LVL236: sext.w s11,a0 .LVL237: .loc 1 504 5 is_stmt 1 .loc 1 505 5 .loc 1 506 5 mv a6,s1 .L82: .loc 1 526 11 is_stmt 0 sd s3,0(sp) .LVL238: .L42: .loc 1 608 70 is_stmt 1 .loc 1 609 3 .loc 1 609 69 is_stmt 0 slliw a4,s10,15 .loc 1 609 40 slliw a5,s3,6 .loc 1 609 61 or a5,a5,a4 or a5,a5,s9 .loc 1 609 54 slliw a4,s7,11 .loc 1 609 61 or a5,a5,a4 .loc 1 609 76 li a4,4194304 or a5,a5,a4 .loc 1 609 19 sw a5,40(s5) .loc 1 610 61 is_stmt 1 .loc 1 611 3 .loc 1 611 40 is_stmt 0 ld a5,0(sp) .loc 1 611 53 slliw a4,s6,11 .loc 1 613 19 sd s1,64(sp) .loc 1 611 40 slliw a5,a5,6 .loc 1 611 46 or a5,a5,a4 or a5,a5,s11 .loc 1 611 68 slliw a4,s1,15 .loc 1 611 60 or a5,a5,a4 .loc 1 611 83 slliw a4,s1,20 .loc 1 611 75 or a5,a5,a4 .loc 1 611 97 slliw a4,a6,23 .loc 1 611 90 or a5,a5,a4 .loc 1 611 19 sw a5,44(s5) .loc 1 612 61 is_stmt 1 .loc 1 613 3 .loc 1 613 42 is_stmt 0 ld a5,8(sp) slliw a5,a5,12 .loc 1 613 34 or a5,s2,a5 .loc 1 613 19 sw a5,48(s5) li a5,2 sd a5,88(sp) j .L36 .LVL239: .L40: .loc 1 511 5 is_stmt 1 .loc 1 512 5 .loc 1 512 12 is_stmt 0 li a0,35 call auto_cal_timing .LVL240: sext.w s10,a0 .LVL241: .loc 1 513 5 is_stmt 1 .loc 1 513 12 is_stmt 0 mv a1,s0 li a0,6 call auto_cal_timing .LVL242: sext.w a0,a0 .LVL243: .loc 1 514 5 is_stmt 1 li a5,2 mv s7,a0 bgeu a0,a5,.L43 li s7,2 .L43: .LVL244: .loc 1 515 5 .loc 1 515 12 is_stmt 0 mv a1,s0 li a0,14 call auto_cal_timing .LVL245: .loc 1 516 11 mv a1,s0 .loc 1 515 12 sext.w s3,a0 .LVL246: .loc 1 516 5 is_stmt 1 .loc 1 516 11 is_stmt 0 li a0,48 call auto_cal_timing .LVL247: sext.w s9,a0 .LVL248: .loc 1 518 5 is_stmt 1 .loc 1 519 5 .loc 1 520 5 .loc 1 521 5 .loc 1 522 5 .loc 1 523 5 .loc 1 524 5 .loc 1 525 5 .loc 1 526 5 .loc 1 527 5 .loc 1 527 12 is_stmt 0 mv a1,s0 li a0,34 call auto_cal_timing .LVL249: sext.w s11,a0 .LVL250: .loc 1 529 5 is_stmt 1 .loc 1 530 5 .loc 1 531 5 .loc 1 527 12 is_stmt 0 mv a6,s7 j .L82 .LVL251: .L37: .loc 1 534 8 is_stmt 1 .loc 1 534 10 is_stmt 0 li a5,2 bne s8,a5,.L44 .loc 1 536 4 is_stmt 1 .loc 1 537 4 .loc 1 537 11 is_stmt 0 mv a1,s0 li a0,50 .LVL252: call auto_cal_timing .LVL253: .loc 1 538 11 mv a1,s0 .loc 1 537 11 sext.w s10,a0 .LVL254: .loc 1 538 4 is_stmt 1 .loc 1 538 11 is_stmt 0 li a0,10 call auto_cal_timing .LVL255: .loc 1 539 11 mv a1,s0 .loc 1 538 11 sext.w s7,a0 .LVL256: .loc 1 539 4 is_stmt 1 .loc 1 539 11 is_stmt 0 li a0,20 call auto_cal_timing .LVL257: .loc 1 540 10 mv a1,s0 .loc 1 539 11 sext.w s3,a0 .LVL258: .loc 1 540 4 is_stmt 1 .loc 1 540 10 is_stmt 0 li a0,65 call auto_cal_timing .LVL259: .loc 1 543 11 mv a1,s0 .loc 1 540 10 sext.w s9,a0 .LVL260: .loc 1 542 4 is_stmt 1 .loc 1 543 4 .loc 1 543 11 is_stmt 0 li a0,8 call auto_cal_timing .LVL261: .loc 1 545 10 mv a1,s0 .loc 1 543 11 sext.w s1,a0 .LVL262: .loc 1 544 4 is_stmt 1 .loc 1 545 4 .loc 1 545 10 is_stmt 0 li a0,15 call auto_cal_timing .LVL263: sext.w a5,a0 .loc 1 547 11 mv a1,s0 li a0,45 .loc 1 545 10 sd a5,0(sp) .LVL264: .loc 1 546 4 is_stmt 1 .loc 1 547 4 .loc 1 547 11 is_stmt 0 call auto_cal_timing .LVL265: sext.w s11,a0 .LVL266: .loc 1 549 4 is_stmt 1 .loc 1 549 12 is_stmt 0 li a0,8192 mv a1,s0 addi a0,a0,-392 call auto_cal_timing .LVL267: sext.w a0,a0 .LVL268: .loc 1 550 4 is_stmt 1 .loc 1 550 19 is_stmt 0 srliw s2,a0,5 .loc 1 550 54 andi a0,a0,31 .LVL269: snez a0,a0 .loc 1 550 10 addw s2,s2,a0 .loc 1 551 4 is_stmt 1 .loc 1 551 11 is_stmt 0 mv a1,s0 li a0,328 call auto_cal_timing .LVL270: sext.w a5,a0 sd a5,8(sp) .LVL271: .loc 1 542 8 li a6,2 .loc 1 545 10 ld s6,0(sp) j .L42 .LVL272: .L44: .loc 1 553 8 is_stmt 1 .loc 1 553 10 is_stmt 0 li a5,6 bne s8,a5,.L45 .loc 1 555 4 is_stmt 1 .loc 1 556 4 .loc 1 556 11 is_stmt 0 mv a1,s0 li a0,50 .LVL273: call auto_cal_timing .LVL274: sext.w a0,a0 .LVL275: .loc 1 557 4 is_stmt 1 li a5,4 mv s10,a0 bgeu a0,a5,.L46 li s10,4 .L46: .LVL276: .loc 1 558 4 .loc 1 558 11 is_stmt 0 mv a1,s0 li a0,10 call auto_cal_timing .LVL277: sext.w s7,a0 .LVL278: .loc 1 559 4 is_stmt 1 .loc 1 559 6 is_stmt 0 bnez s7,.L47 .loc 1 559 22 li s7,1 .LVL279: .L47: .loc 1 560 4 is_stmt 1 .loc 1 560 11 is_stmt 0 mv a1,s0 li a0,24 call auto_cal_timing .LVL280: sext.w a0,a0 .LVL281: .loc 1 561 4 is_stmt 1 li a5,2 mv s3,a0 bgeu a0,a5,.L48 li s3,2 .L48: .LVL282: .loc 1 562 4 .loc 1 562 10 is_stmt 0 mv a1,s0 li a0,70 call auto_cal_timing .LVL283: sext.w s9,a0 .LVL284: .loc 1 564 4 is_stmt 1 .loc 1 564 10 is_stmt 0 mv a1,s0 li a0,8 call auto_cal_timing .LVL285: sext.w a6,a0 .LVL286: .loc 1 565 4 is_stmt 1 .loc 1 565 6 is_stmt 0 beqz a6,.L73 .loc 1 566 4 is_stmt 1 .LVL287: .loc 1 567 4 li a5,2 mv s1,a6 bgeu a6,a5,.L49 .LVL288: .L81: .loc 1 567 22 is_stmt 0 li s1,2 .L49: .loc 1 570 10 mv a1,s0 li a0,15 .LVL289: sd a6,0(sp) .LVL290: .loc 1 568 4 is_stmt 1 .loc 1 569 4 .loc 1 570 4 .loc 1 570 10 is_stmt 0 call auto_cal_timing .LVL291: sext.w a0,a0 .LVL292: .loc 1 571 4 is_stmt 1 li a5,2 mv s6,a0 ld a6,0(sp) bgeu a0,a5,.L51 li s6,2 .L51: .loc 1 573 10 is_stmt 0 mv a1,s0 li a0,17 .LVL293: sd a6,16(sp) .loc 1 573 4 is_stmt 1 .loc 1 573 10 is_stmt 0 call auto_cal_timing .LVL294: sext.w a5,a0 .loc 1 574 11 mv a1,s0 li a0,42 .loc 1 573 10 sd a5,0(sp) .LVL295: .loc 1 574 4 is_stmt 1 .loc 1 574 11 is_stmt 0 call auto_cal_timing .LVL296: sext.w s11,a0 .LVL297: .loc 1 576 4 is_stmt 1 .loc 1 576 12 is_stmt 0 li a0,4096 mv a1,s0 addi a0,a0,-196 call auto_cal_timing .LVL298: sext.w a0,a0 .LVL299: .loc 1 577 4 is_stmt 1 .loc 1 577 19 is_stmt 0 srliw s2,a0,5 .loc 1 577 54 andi a0,a0,31 .LVL300: snez a0,a0 .loc 1 577 10 addw s2,s2,a0 .loc 1 578 4 is_stmt 1 .loc 1 578 11 is_stmt 0 mv a1,s0 li a0,210 call auto_cal_timing .LVL301: sext.w a5,a0 sd a5,8(sp) .LVL302: ld a6,16(sp) j .L42 .LVL303: .L73: .loc 1 565 20 li a6,1 .LVL304: j .L81 .LVL305: .L45: .loc 1 580 8 is_stmt 1 .loc 1 580 10 is_stmt 0 li a5,7 bne s8,a5,.L74 .loc 1 582 4 is_stmt 1 .loc 1 583 4 .loc 1 583 11 is_stmt 0 mv a1,s0 li a0,50 .LVL306: call auto_cal_timing .LVL307: sext.w a0,a0 .LVL308: .loc 1 584 4 is_stmt 1 li a5,4 mv s10,a0 bgeu a0,a5,.L52 li s10,4 .L52: .LVL309: .loc 1 585 4 .loc 1 585 11 is_stmt 0 mv a1,s0 li a0,10 call auto_cal_timing .LVL310: sext.w s7,a0 .LVL311: .loc 1 586 4 is_stmt 1 .loc 1 586 6 is_stmt 0 bnez s7,.L53 .loc 1 586 22 li s7,1 .LVL312: .L53: .loc 1 587 4 is_stmt 1 .loc 1 587 11 is_stmt 0 mv a1,s0 li a0,24 call auto_cal_timing .LVL313: sext.w a0,a0 .LVL314: .loc 1 588 4 is_stmt 1 li a5,2 mv s3,a0 bgeu a0,a5,.L54 li s3,2 .L54: .LVL315: .loc 1 589 4 .loc 1 589 10 is_stmt 0 mv a1,s0 li a0,70 call auto_cal_timing .LVL316: sext.w s9,a0 .LVL317: .loc 1 591 4 is_stmt 1 .loc 1 591 10 is_stmt 0 mv a1,s0 li a0,8 call auto_cal_timing .LVL318: sext.w a0,a0 .LVL319: .loc 1 592 4 is_stmt 1 li a5,2 mv s1,a0 bgeu a0,a5,.L55 li s1,2 .L55: .LVL320: .loc 1 593 4 .loc 1 594 4 .loc 1 595 4 .loc 1 596 4 .loc 1 597 4 .loc 1 597 10 is_stmt 0 mv a1,s0 li a0,15 call auto_cal_timing .LVL321: sext.w a0,a0 .LVL322: .loc 1 598 4 is_stmt 1 li a5,2 mv s6,a0 bgeu a0,a5,.L56 li s6,2 .L56: .LVL323: .loc 1 600 4 .loc 1 600 10 is_stmt 0 mv a1,s0 li a0,17 call auto_cal_timing .LVL324: sext.w a5,a0 .loc 1 601 11 mv a1,s0 li a0,42 .loc 1 600 10 sd a5,0(sp) .LVL325: .loc 1 601 4 is_stmt 1 .loc 1 601 11 is_stmt 0 call auto_cal_timing .LVL326: sext.w s11,a0 .LVL327: .loc 1 603 4 is_stmt 1 .loc 1 603 12 is_stmt 0 li a0,4096 mv a1,s0 addi a0,a0,-196 call auto_cal_timing .LVL328: sext.w a0,a0 .LVL329: .loc 1 604 4 is_stmt 1 .loc 1 604 19 is_stmt 0 srliw s2,a0,5 .loc 1 604 54 andi a0,a0,31 .LVL330: snez a0,a0 .loc 1 604 10 addw s2,s2,a0 .loc 1 605 4 is_stmt 1 .loc 1 605 11 is_stmt 0 mv a1,s0 li a0,210 call auto_cal_timing .LVL331: sext.w a5,a0 sd a5,8(sp) .LVL332: mv a6,s1 j .L42 .LVL333: .L74: .loc 1 443 15 li a5,128 sd a5,8(sp) .loc 1 437 15 li a5,6 .loc 1 442 15 li s2,98 .loc 1 441 15 li a6,10 .loc 1 439 15 li s6,8 .loc 1 438 15 li s1,3 .loc 1 437 15 sd a5,0(sp) .loc 1 436 15 li s11,14 .loc 1 435 15 li s10,16 .loc 1 434 15 li s9,20 .loc 1 433 15 li s3,6 .loc 1 432 15 li s7,3 j .L42 .LVL334: .L58: li a5,6 beq s8,a5,.L61 li a5,7 bne s8,a5,.L84 .loc 1 733 4 is_stmt 1 .LVL335: .loc 1 734 4 .loc 1 735 4 .loc 1 736 4 .loc 1 737 4 .loc 1 738 4 .loc 1 739 4 .loc 1 740 4 .loc 1 740 12 is_stmt 0 li a5,60 divuw t3,s4,a5 .LVL336: .loc 1 742 4 is_stmt 1 .loc 1 742 6 is_stmt 0 li a5,800 bleu s4,a5,.L79 .loc 1 753 10 li a5,4 .loc 1 755 16 li a7,3 .loc 1 754 16 li a4,6 .loc 1 758 9 li t2,12 .LVL337: .L65: .loc 1 762 4 is_stmt 1 .loc 1 762 19 is_stmt 0 li a3,200 .loc 1 763 37 li a1,1000 .loc 1 768 11 addiw s1,s1,5 .LVL338: .loc 1 766 9 addiw s6,s6,5 .LVL339: .loc 1 769 4 mv a0,s8 .loc 1 766 9 addw s6,s6,a5 .LVL340: .loc 1 769 4 ld s0,72(sp) .loc 1 737 11 li t1,5 .loc 1 739 11 li t4,5 .loc 1 767 11 li t6,13 .loc 1 736 9 li s8,3 .LVL341: .loc 1 735 9 li t0,12 .loc 1 734 9 li t5,5 .loc 1 762 19 mulw a3,a3,s4 .loc 1 762 12 addiw a3,a3,1 sd a3,16(sp) .LVL342: .loc 1 763 4 is_stmt 1 .loc 1 763 19 is_stmt 0 li a3,100 mulw a3,a3,s4 .loc 1 763 37 divuw a3,a3,a1 .loc 1 733 9 li a1,5 .loc 1 763 12 addiw a3,a3,1 sd a3,24(sp) .LVL343: .loc 1 764 4 is_stmt 1 .loc 1 764 18 is_stmt 0 li a3,11 mulw a3,a3,s4 .loc 1 764 12 addiw a3,a3,1 sd a3,32(sp) .LVL344: .loc 1 765 4 is_stmt 1 .loc 1 765 12 is_stmt 0 addiw a3,s4,1 sd a3,40(sp) .LVL345: .loc 1 766 4 is_stmt 1 .loc 1 767 4 .loc 1 768 4 .loc 1 768 11 is_stmt 0 addw a3,s1,a5 sd a3,48(sp) .LVL346: .loc 1 769 4 is_stmt 1 j .L85 .LVL347: .L59: .loc 1 621 4 .loc 1 622 4 .loc 1 623 4 .loc 1 624 4 .loc 1 625 4 .loc 1 626 4 .loc 1 627 4 .loc 1 628 4 .loc 1 628 12 is_stmt 0 li a5,30 divuw t3,s4,a5 .LVL348: .loc 1 630 4 is_stmt 1 .loc 1 630 6 is_stmt 0 li a5,409 bgtu s4,a5,.L75 .loc 1 647 9 li a3,4096 .loc 1 643 9 li a0,3 .loc 1 645 16 li a4,1 .loc 1 647 9 addi a3,a3,-1437 .L63: .LVL349: .loc 1 653 4 is_stmt 1 .loc 1 653 19 is_stmt 0 li a5,400 .loc 1 654 37 li a1,1000 .loc 1 622 9 mv t5,s8 .loc 1 657 9 addiw s6,s6,5 .LVL350: .loc 1 625 11 li t1,5 .loc 1 627 11 li t4,4 .loc 1 659 11 li t6,4 .loc 1 624 9 li s8,3 .LVL351: .loc 1 623 9 li t0,12 .loc 1 660 4 li a7,1 li s0,0 li t2,0 .loc 1 653 19 mulw a5,a5,s4 .loc 1 653 12 addiw a5,a5,1 sd a5,16(sp) .LVL352: .loc 1 654 4 is_stmt 1 .loc 1 654 19 is_stmt 0 li a5,500 mulw a5,a5,s4 .loc 1 654 37 divuw a5,a5,a1 .loc 1 621 9 li a1,0 .loc 1 654 12 addiw a5,a5,1 sd a5,24(sp) .LVL353: .loc 1 655 4 is_stmt 1 .loc 1 655 19 is_stmt 0 li a5,200 mulw a5,a5,s4 .loc 1 655 12 addiw a5,a5,1 sd a5,32(sp) .LVL354: .loc 1 656 4 is_stmt 1 .loc 1 656 12 is_stmt 0 addiw a5,s4,1 sd a5,40(sp) .LVL355: .loc 1 657 4 is_stmt 1 .loc 1 658 4 .loc 1 658 11 is_stmt 0 addiw a5,s1,5 sd a5,48(sp) .LVL356: .loc 1 659 4 is_stmt 1 .loc 1 660 4 ld s1,56(sp) .LVL357: li a5,3 j .L60 .LVL358: .L75: .loc 1 636 9 is_stmt 0 li a3,4096 .loc 1 634 16 li a4,2 .loc 1 632 9 li a0,4 .loc 1 636 9 addi a3,a3,-397 j .L63 .LVL359: .L57: .loc 1 663 4 is_stmt 1 .loc 1 664 4 .loc 1 665 4 .loc 1 666 4 .loc 1 667 4 .loc 1 668 4 .loc 1 669 4 .loc 1 670 4 .loc 1 670 12 is_stmt 0 li a5,30 divuw t3,s4,a5 .LVL360: .loc 1 672 4 is_stmt 1 .loc 1 672 6 is_stmt 0 li a5,800 bleu s4,a5,.L76 .loc 1 689 9 li a3,8192 .loc 1 688 16 li a7,3 .loc 1 685 9 li a0,7 .loc 1 687 16 li a4,5 .loc 1 691 9 li t2,32 .loc 1 689 9 addi a3,a3,-492 .L64: .LVL361: .loc 1 695 4 is_stmt 1 .loc 1 695 19 is_stmt 0 li a5,500 .loc 1 696 37 li a1,1000 .loc 1 700 11 addiw s1,s1,2 .LVL362: .loc 1 699 9 addiw s6,s6,2 .LVL363: addw s6,s6,a4 .LVL364: .loc 1 695 19 mulw a5,a5,s4 .loc 1 695 12 addiw a5,a5,1 sd a5,16(sp) .LVL365: .loc 1 696 4 is_stmt 1 .loc 1 696 19 is_stmt 0 li a5,360 mulw a5,a5,s4 .loc 1 696 37 divuw a5,a5,a1 .loc 1 696 12 addiw a5,a5,1 sd a5,24(sp) .LVL366: .loc 1 697 4 is_stmt 1 .loc 1 697 19 is_stmt 0 li a5,200 mulw a5,a5,s4 .loc 1 697 12 addiw a5,a5,1 sd a5,32(sp) .LVL367: .loc 1 698 4 is_stmt 1 .loc 1 698 12 is_stmt 0 addiw a5,s4,1 sd a5,40(sp) .LVL368: .loc 1 699 4 is_stmt 1 .loc 1 700 4 .loc 1 700 11 is_stmt 0 addw a5,s1,a4 sd a5,48(sp) .LVL369: .loc 1 701 4 is_stmt 1 .loc 1 702 4 .loc 1 702 6 is_stmt 0 ld a5,80(sp) extu a1,a5,2+2-1,2 .LVL370: li a5,1 beq a1,a5,.L77 .loc 1 702 28 discriminator 1 li a5,912 bgtu s4,a5,.L78 .L77: ld s1,56(sp) .LVL371: mv a5,a4 .loc 1 667 11 li t1,5 .loc 1 669 11 li t4,4 .loc 1 701 11 li t6,5 .L83: .loc 1 665 9 li t0,12 .loc 1 664 9 li t5,4 .loc 1 663 9 li a1,0 li s0,0 j .L60 .LVL372: .L76: .loc 1 678 9 li a3,8192 .loc 1 674 9 li a0,6 .loc 1 677 16 li a7,2 .loc 1 676 16 li a4,4 .loc 1 680 9 li t2,24 .loc 1 678 9 addi a3,a3,-912 j .L64 .LVL373: .L61: .loc 1 706 4 is_stmt 1 .loc 1 707 4 .loc 1 708 4 .loc 1 709 4 .loc 1 710 4 .loc 1 711 4 .loc 1 712 4 .loc 1 713 4 .loc 1 713 12 is_stmt 0 li a5,60 divuw t3,s4,a5 .LVL374: .loc 1 715 4 is_stmt 1 .loc 1 716 4 .loc 1 717 4 .loc 1 718 4 .loc 1 719 4 .loc 1 720 4 .loc 1 721 4 .loc 1 722 4 .loc 1 724 4 .loc 1 724 19 is_stmt 0 li a5,200 .loc 1 725 37 li a4,1000 .loc 1 722 8 ld s0,72(sp) .loc 1 728 9 addiw s6,s6,5 .LVL375: .loc 1 721 8 li t2,6 .loc 1 710 11 li t1,5 .loc 1 712 11 li t4,5 .loc 1 729 11 li t6,10 .loc 1 709 9 li s8,2 .LVL376: .loc 1 708 9 li t0,5 .loc 1 707 9 li t5,5 .loc 1 706 9 li a1,3 .loc 1 715 8 li a0,4 .loc 1 718 15 li a7,1 .loc 1 724 19 mulw a5,a5,s4 .loc 1 724 12 addiw a5,a5,1 sd a5,16(sp) .LVL377: .loc 1 725 4 is_stmt 1 .loc 1 725 19 is_stmt 0 li a5,100 mulw a5,a5,s4 .loc 1 725 37 divuw a5,a5,a4 .loc 1 717 15 li a4,3 .loc 1 725 12 addiw a5,a5,1 sd a5,24(sp) .LVL378: .loc 1 726 4 is_stmt 1 .loc 1 726 18 is_stmt 0 li a5,11 mulw a5,a5,s4 .loc 1 726 12 addiw a5,a5,1 sd a5,32(sp) .LVL379: .loc 1 727 4 is_stmt 1 .loc 1 727 12 is_stmt 0 addiw a5,s4,1 sd a5,40(sp) .LVL380: .loc 1 728 4 is_stmt 1 .loc 1 729 4 .loc 1 730 4 .loc 1 730 11 is_stmt 0 addiw a5,s1,5 sd a5,48(sp) .LVL381: .loc 1 731 4 is_stmt 1 .loc 1 716 9 is_stmt 0 li a5,2 .LVL382: .L85: .loc 1 769 4 li s1,195 li a3,0 j .L60 .LVL383: .L79: .loc 1 744 10 li a5,3 .loc 1 743 9 li s8,6 .LVL384: .loc 1 746 16 li a7,2 .loc 1 745 16 li a4,5 .loc 1 749 9 li t2,10 j .L65 .LVL385: .L78: mv a5,a4 ld s1,56(sp) .LVL386: .loc 1 667 11 li t1,5 .loc 1 669 11 li t4,4 .loc 1 703 12 li t6,6 j .L83 .LVL387: .L71: .loc 1 831 3 is_stmt 1 .loc 1 831 11 is_stmt 0 li a3,-268406784 j .L86 .cfi_endproc .LFE50: .size auto_set_timing_para, .-auto_set_timing_para .section .text.ccm_get_sscg,"ax",@progbits .align 1 .globl ccm_get_sscg .type ccm_get_sscg, @function ccm_get_sscg: .LFB51: .loc 1 857 1 is_stmt 1 .cfi_startproc .LVL388: .loc 1 858 2 .loc 1 859 2 .loc 1 860 2 .loc 1 862 2 .loc 1 862 17 is_stmt 0 li a5,24 divuw a4,a1,a5 .LVL389: .loc 1 863 3 is_stmt 1 .loc 1 863 5 is_stmt 0 mulw a5,a5,a4 beq a5,a1,.L94 .loc 1 865 4 is_stmt 1 .loc 1 857 1 is_stmt 0 addi sp,sp,-32 .cfi_def_cfa_offset 32 sd s1,16(sp) .cfi_offset 9, -16 .loc 1 865 12 extu s1,a2,31,0 .LVL390: .LBB1380: .LBB1381: .loc 2 138 2 is_stmt 1 .loc 2 140 2 .LBE1381: .LBE1380: .loc 1 857 1 is_stmt 0 sd ra,24(sp) sd s0,8(sp) .cfi_offset 1, -8 .cfi_offset 8, -24 .LBB1383: .LBB1382: .loc 2 140 6 lw a5,0(s1) .LVL391: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL392: #NO_APP .LBE1382: .LBE1383: .loc 1 866 4 .loc 1 866 6 is_stmt 0 extu a5,a5,1+1-1,1 .LVL393: extu s0,a3,31,0 beqz a5,.L89 .loc 1 867 5 is_stmt 1 .LVL394: .LBB1384: .LBB1385: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,0(s0) .LVL395: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL396: #NO_APP .LBE1385: .LBE1384: .LBB1386: .LBB1387: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1387: .LBE1386: .loc 1 867 5 is_stmt 0 li a3,524288 .LVL397: or a5,a5,a3 .LVL398: .LBB1389: .LBB1388: .loc 2 97 2 sw a5,0(s0) .LVL399: .L89: .LBE1388: .LBE1389: .loc 1 869 3 is_stmt 1 .loc 1 870 3 .loc 1 871 3 .loc 1 869 26 is_stmt 0 lui a5,%hi(.LC9) flw fa4,%lo(.LC9)(a5) .loc 1 869 6 fcvt.s.wu fa5,a1 .LVL400: .loc 1 870 14 lui a5,%hi(.LC10) .loc 1 869 26 fdiv.s fa5,fa5,fa4 .LVL401: .loc 1 869 30 fcvt.s.w fa4,a4 .loc 1 869 4 fsub.s fa5,fa5,fa4 .LVL402: .loc 1 870 14 flw fa4,%lo(.LC10)(a5) fmul.s fa5,fa5,fa4 .LVL403: .loc 1 870 11 fcvt.w.s a5,fa5,rtz .LVL404: .LBB1390: .LBB1391: .loc 2 96 2 is_stmt 1 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,0(s0) .LVL405: .LBE1391: .LBE1390: .loc 1 873 3 .LBB1392: .LBB1393: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL406: #NO_APP .LBE1393: .LBE1392: .loc 1 875 3 .loc 1 875 8 is_stmt 0 li a4,655360 .LVL407: addiw a4,a4,-1 and a5,a4,a5 .LVL408: .loc 1 876 3 is_stmt 1 .loc 1 877 3 .LBB1394: .LBB1395: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1395: .LBE1394: .loc 1 876 7 is_stmt 0 li a4,-536477696 or a5,a5,a4 .LVL409: .LBB1397: .LBB1396: .loc 2 97 2 sw a5,0(s0) .LVL410: .LBE1396: .LBE1397: .loc 1 879 3 is_stmt 1 .LBB1398: .LBB1399: .loc 1 59 3 li a0,20 .LVL411: call sdelay .LVL412: .LBE1399: .LBE1398: .loc 1 881 4 .LBB1400: .LBB1401: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,0(s1) .LVL413: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL414: #NO_APP .LBE1401: .LBE1400: .loc 1 882 4 .loc 1 883 4 .LBB1402: .LBB1403: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1403: .LBE1402: .loc 1 882 9 is_stmt 0 li a4,16777216 or a5,a5,a4 .LVL415: .LBB1405: .LBB1404: .loc 2 97 2 sw a5,0(s1) .LVL416: .LBE1404: .LBE1405: .loc 1 885 4 is_stmt 1 .LBB1406: .LBB1407: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a0,0(s0) .LVL417: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL418: #NO_APP .LBE1407: .LBE1406: .loc 1 889 1 is_stmt 0 ld ra,24(sp) .cfi_restore 1 ld s0,8(sp) .cfi_restore 8 .LVL419: .loc 1 885 13 extu a0,a0,0+17-1,0 .loc 1 889 1 ld s1,16(sp) .cfi_restore 9 .LVL420: .loc 1 885 13 sext.w a0,a0 .LVL421: .loc 1 888 3 is_stmt 1 .loc 1 889 1 is_stmt 0 addi sp,sp,32 .cfi_def_cfa_offset 0 jr ra .LVL422: .L94: li a0,0 .LVL423: .loc 1 888 3 is_stmt 1 .loc 1 889 1 is_stmt 0 ret .cfi_endproc .LFE51: .size ccm_get_sscg, .-ccm_get_sscg .section .text.ccm_set_pll_sscg,"ax",@progbits .align 1 .globl ccm_set_pll_sscg .type ccm_set_pll_sscg, @function ccm_set_pll_sscg: .LFB52: .loc 1 900 1 is_stmt 1 .cfi_startproc .LVL424: .loc 1 901 2 .loc 1 903 2 .loc 1 900 1 is_stmt 0 addi sp,sp,-16 .cfi_def_cfa_offset 16 sd s0,0(sp) .cfi_offset 8, -16 .loc 1 903 13 extu s0,a1,31,0 .LVL425: .LBB1408: .LBB1409: .loc 2 138 2 is_stmt 1 .loc 2 140 2 .LBE1409: .LBE1408: .loc 1 900 1 is_stmt 0 sd ra,8(sp) .cfi_offset 1, -8 .LBB1411: .LBB1410: .loc 2 140 6 lw a5,0(s0) .LVL426: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL427: #NO_APP .LBE1410: .LBE1411: .loc 1 904 2 .loc 1 904 4 is_stmt 0 extu a5,a5,1+1-1,1 .LVL428: extu a2,a2,31,0 beqz a5,.L100 .loc 1 905 3 is_stmt 1 .LVL429: .LBB1412: .LBB1413: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,0(a2) .LVL430: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL431: #NO_APP .LBE1413: .LBE1412: .LBB1414: .LBB1415: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1415: .LBE1414: .loc 1 905 3 is_stmt 0 li a4,524288 or a5,a5,a4 .LVL432: .LBB1417: .LBB1416: .loc 2 97 2 sw a5,0(a2) .LVL433: .L100: .LBE1416: .LBE1417: .loc 1 907 2 is_stmt 1 .loc 1 910 2 .loc 1 907 30 is_stmt 0 lw a5,92(a0) .loc 1 910 2 li a4,4 .loc 1 907 10 extu a5,a5,20+3-1,20 .loc 1 910 2 addiw a3,a5,-1 bgtu a3,a4,.L101 lui a4,%hi(.L103) addi a4,a4,%lo(.L103) lurw a5,a4,a3,2 jr a5 .section .rodata .align 2 .align 2 .L103: .word .L107 .word .L106 .word .L105 .word .L101 .word .L102 .section .text.ccm_set_pll_sscg .L107: .loc 1 913 4 is_stmt 1 .LVL434: .LBB1418: .LBB1419: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a5,-460926976 addiw a5,a5,-820 .LVL435: .L113: .LBE1419: .LBE1418: .LBB1420: .LBB1421: sw a5,0(a2) .LVL436: .LBE1421: .LBE1420: .loc 1 931 2 .LBB1423: .LBB1424: .loc 1 59 3 li a0,20 .LVL437: call sdelay .LVL438: .LBE1424: .LBE1423: .loc 1 933 2 .LBB1425: .LBB1426: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,0(s0) .LVL439: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL440: #NO_APP .LBE1426: .LBE1425: .loc 1 934 2 .loc 1 935 2 .LBB1427: .LBB1428: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1428: .LBE1427: .loc 1 934 10 is_stmt 0 li a4,16777216 or a5,a5,a4 .LVL441: .LBB1430: .LBB1429: .loc 2 97 2 sw a5,0(s0) .LVL442: .LBE1429: .LBE1430: .loc 1 936 2 is_stmt 1 .loc 1 937 1 is_stmt 0 ld ra,8(sp) .cfi_remember_state .cfi_restore 1 ld s0,0(sp) .cfi_restore 8 .LVL443: li a0,0 addi sp,sp,16 .cfi_def_cfa_offset 0 jr ra .LVL444: .L106: .cfi_restore_state .loc 1 916 4 is_stmt 1 .LBB1431: .LBB1432: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a5,-385441792 addiw a5,a5,-1639 j .L113 .LVL445: .L105: .LBE1432: .LBE1431: .loc 1 919 4 .LBB1433: .LBB1434: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a5,-309960704 addiw a5,a5,1638 j .L113 .LVL446: .L102: .LBE1434: .LBE1433: .loc 1 925 4 .LBB1435: .LBB1436: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a5,-175767552 j .L113 .LVL447: .L101: .LBE1436: .LBE1435: .loc 1 928 4 .LBB1437: .LBB1422: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a5,-234475520 addiw a5,a5,819 j .L113 .LBE1422: .LBE1437: .cfi_endproc .LFE52: .size ccm_set_pll_sscg, .-ccm_set_pll_sscg .section .text.ccm_set_pll_ddr_clk,"ax",@progbits .align 1 .globl ccm_set_pll_ddr_clk .type ccm_set_pll_ddr_clk, @function ccm_set_pll_ddr_clk: .LFB53: .loc 1 1048 1 .cfi_startproc .LVL448: .loc 1 1049 2 .loc 1 1050 2 .loc 1 1051 2 .loc 1 1052 3 .loc 1 1054 2 .loc 1 1057 2 .loc 1 1058 2 .loc 1 1060 2 .loc 1 1060 24 is_stmt 0 lw a5,92(a1) .loc 1 1048 1 addi sp,sp,-32 .cfi_def_cfa_offset 32 sd ra,24(sp) sd s0,8(sp) sd s1,16(sp) .cfi_offset 1, -8 .cfi_offset 8, -24 .cfi_offset 9, -16 .loc 1 1060 4 extu a5,a5,6+1-1,6 bne a5,a0,.L115 .loc 1 1061 3 is_stmt 1 .loc 1 1061 11 is_stmt 0 lw s0,0(a1) .L121: .loc 1 1068 3 li a5,24 .LBB1438: .LBB1439: .loc 2 140 6 li a4,33558528 .LBE1439: .LBE1438: .loc 1 1063 11 slliw s0,s0,1 .LVL449: .loc 1 1068 2 is_stmt 1 .loc 1 1068 3 is_stmt 0 divuw s0,s0,a5 .LVL450: .loc 1 1069 2 is_stmt 1 .LBB1441: .LBB1440: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,16(a4) .LVL451: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL452: #NO_APP .LBE1440: .LBE1441: .loc 1 1070 2 .loc 1 1071 2 .loc 1 1072 2 .loc 1 1073 2 .loc 1 1072 7 is_stmt 0 li a2,-524288 .loc 1 1073 43 addiw a3,s0,-1 .loc 1 1072 7 addi a2,a2,252 .loc 1 1073 48 slliw a3,a3,8 .loc 1 1072 7 and a5,a5,a2 .LVL453: .loc 1 1073 7 or a5,a5,a3 sext.w a5,a5 .LVL454: .loc 1 1074 2 is_stmt 1 .LBB1442: .LBB1443: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1443: .LBE1442: .loc 1 1073 7 is_stmt 0 li a3,-1073741824 or a2,a5,a3 .LBB1445: .LBB1444: .loc 2 97 2 sw a2,16(a4) .LVL455: .LBE1444: .LBE1445: .loc 1 1081 2 is_stmt 1 li a2,-536870912 addi a2,a2,-1 and a5,a5,a2 .LVL456: .loc 1 1082 2 .LBB1446: .LBB1447: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1447: .LBE1446: .loc 1 1081 7 is_stmt 0 or a3,a5,a3 .LBB1449: .LBB1448: .loc 2 97 2 sw a3,16(a4) .LVL457: .LBE1448: .LBE1449: .loc 1 1084 2 is_stmt 1 .LBB1450: .LBB1451: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1451: .LBE1450: .loc 1 1084 2 is_stmt 0 li a3,-536870912 or a5,a5,a3 .LVL458: .LBB1453: .LBB1452: .loc 2 97 2 sw a5,16(a4) .LBE1452: .LBE1453: .loc 1 1086 32 li a3,268435456 .L117: .loc 1 1086 43 is_stmt 1 discriminator 1 .LVL459: .LBB1454: .LBB1455: .loc 2 138 2 discriminator 1 .loc 2 140 2 discriminator 1 .loc 2 140 6 is_stmt 0 discriminator 1 addi s1,a4,16 lw a5,16(a4) .LVL460: .loc 2 141 2 is_stmt 1 discriminator 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 1 .LVL461: #NO_APP .LBE1455: .LBE1454: .loc 1 1086 7 is_stmt 0 discriminator 1 and a5,a5,a3 beqz a5,.L117 .loc 1 1087 2 is_stmt 1 .LVL462: .LBB1456: .LBB1457: .loc 1 59 3 li a0,20 .LVL463: call sdelay .LVL464: .LBE1457: .LBE1456: .loc 1 1089 2 .LBB1458: .LBB1459: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,0(s1) .LVL465: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL466: #NO_APP .LBE1459: .LBE1458: .loc 1 1090 2 .loc 1 1091 2 .LBB1460: .LBB1461: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1461: .LBE1460: .loc 1 1090 7 is_stmt 0 li a4,134217728 or a5,a5,a4 .LVL467: .LBB1463: .LBB1462: .loc 2 97 2 sw a5,0(s1) .LVL468: .LBE1462: .LBE1463: .loc 1 1094 2 is_stmt 1 .LBB1464: .LBB1465: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a3,33562624 lw a5,-2048(a3) .LVL469: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL470: #NO_APP .LBE1465: .LBE1464: .loc 1 1095 2 .loc 1 1096 2 .loc 1 1096 7 is_stmt 0 li a4,-50331648 addi a4,a4,-772 and a5,a5,a4 .LVL471: .loc 1 1097 2 is_stmt 1 .loc 1 1098 2 .LBB1466: .LBB1467: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1467: .LBE1466: .loc 1 1103 1 is_stmt 0 li a0,24 mulw a0,a0,s0 ld ra,24(sp) .cfi_remember_state .cfi_restore 1 ld s0,8(sp) .cfi_restore 8 .LVL472: .loc 1 1097 7 li a4,-2147483648 or a5,a5,a4 .LVL473: .LBB1469: .LBB1468: .loc 2 97 2 sw a5,-2048(a3) .LVL474: .LBE1468: .LBE1469: .loc 1 1101 2 is_stmt 1 .loc 1 1102 2 .loc 1 1103 1 is_stmt 0 ld s1,16(sp) .cfi_restore 9 addi sp,sp,32 .cfi_def_cfa_offset 0 jr ra .LVL475: .L115: .cfi_restore_state .loc 1 1063 3 is_stmt 1 .loc 1 1063 11 is_stmt 0 lw s0,76(a1) j .L121 .cfi_endproc .LFE53: .size ccm_set_pll_ddr_clk, .-ccm_set_pll_ddr_clk .section .text.mctl_sys_init,"ax",@progbits .align 1 .globl mctl_sys_init .type mctl_sys_init, @function mctl_sys_init: .LFB54: .loc 1 1110 1 is_stmt 1 .cfi_startproc .LVL476: .loc 1 1112 2 .loc 1 1113 2 .loc 1 1119 2 .LBB1470: .LBB1471: .loc 2 138 2 .loc 2 140 2 .LBE1471: .LBE1470: .loc 1 1110 1 is_stmt 0 addi sp,sp,-32 .cfi_def_cfa_offset 32 sdd s0,s1,(sp),0,4 .cfi_offset 8, -32 .cfi_offset 9, -24 .LBB1474: .LBB1472: .loc 2 140 6 li s1,33558528 .LBE1472: .LBE1474: .loc 1 1110 1 sd s2,16(sp) sd ra,24(sp) .cfi_offset 18, -16 .cfi_offset 1, -8 .loc 1 1110 1 mv s2,a0 .LBB1475: .LBB1473: .loc 2 140 6 lw a5,1344(s1) .LVL477: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL478: #NO_APP .LBE1473: .LBE1475: .loc 1 1120 2 .loc 1 1121 2 .LBB1476: .LBB1477: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1477: .LBE1476: .loc 1 1120 10 is_stmt 0 li a4,-1073741824 addi a4,a4,-1 and a5,a5,a4 .LVL479: .LBB1479: .LBB1478: .loc 2 97 2 sw a5,1344(s1) .LVL480: .LBE1478: .LBE1479: .loc 1 1123 2 is_stmt 1 .LBB1480: .LBB1481: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li s0,33562624 lw a5,-2036(s0) .LVL481: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL482: #NO_APP .LBE1481: .LBE1480: .loc 1 1124 2 .loc 1 1125 2 .LBB1482: .LBB1483: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1483: .LBE1482: .loc 1 1124 10 is_stmt 0 andi a3,a5,-2 .LBB1485: .LBB1484: .loc 2 97 2 sw a3,-2036(s0) .LVL483: .LBE1484: .LBE1485: .loc 1 1127 2 is_stmt 1 .LBB1486: .LBB1487: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL484: #NO_APP .LBE1487: .LBE1486: .loc 1 1128 2 .loc 1 1129 2 .LBB1488: .LBB1489: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1489: .LBE1488: .loc 1 1128 10 is_stmt 0 li a3,-65536 addi a3,a3,-2 and a5,a5,a3 .LVL485: .LBB1491: .LBB1490: .loc 2 97 2 sw a5,-2036(s0) .LVL486: .LBE1490: .LBE1491: .loc 1 1132 2 is_stmt 1 .LBB1492: .LBB1493: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,-2048(s0) .LVL487: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL488: #NO_APP .LBE1493: .LBE1492: .loc 1 1133 2 .loc 1 1134 2 .LBB1494: .LBB1495: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1495: .LBE1494: .loc 1 1133 10 is_stmt 0 and a4,a5,a4 .LBB1497: .LBB1496: .loc 2 97 2 sw a4,-2048(s0) .LVL489: .LBE1496: .LBE1497: .loc 1 1136 2 is_stmt 1 .LBB1498: .LBB1499: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL490: #NO_APP .LBE1499: .LBE1498: .loc 1 1137 2 .loc 1 1137 10 is_stmt 0 extu a5,a5,0+30-1,0 .LVL491: sext.w a5,a5 .LVL492: .loc 1 1138 2 is_stmt 1 .LBB1500: .LBB1501: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,-2048(s0) .LVL493: .LBE1501: .LBE1500: .loc 1 1140 2 .LBB1502: .LBB1503: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL494: #NO_APP .LBE1503: .LBE1502: .loc 1 1141 2 .loc 1 1142 2 .LBB1504: .LBB1505: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1505: .LBE1504: .loc 1 1141 10 is_stmt 0 li a4,134217728 or a5,a5,a4 .LVL495: .LBB1507: .LBB1506: .loc 2 97 2 sw a5,-2048(s0) .LVL496: .LBE1506: .LBE1507: .loc 1 1143 2 is_stmt 1 .LBB1508: .LBB1509: .loc 1 59 3 li a0,10 .LVL497: call sdelay .LVL498: .LBE1509: .LBE1508: .loc 1 1146 2 .loc 1 1146 12 is_stmt 0 mv a1,s2 li a0,0 call ccm_set_pll_ddr_clk .LVL499: .loc 1 1148 2 is_stmt 1 .loc 1 1148 27 is_stmt 0 srliw a0,a0,1 .LVL500: .loc 1 1148 17 sw a0,0(s2) .loc 1 1149 43 is_stmt 1 .loc 1 1150 2 .LVL501: .LBB1510: .LBB1511: .loc 1 59 3 li a0,100 call sdelay .LVL502: .LBE1511: .LBE1510: .loc 1 1170 2 call dram_disable_all_master .LVL503: .loc 1 1173 2 .LBB1512: .LBB1513: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,-2036(s0) .LVL504: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL505: #NO_APP .LBE1513: .LBE1512: .loc 1 1174 2 .loc 1 1175 2 .LBB1514: .LBB1515: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1515: .LBE1514: .loc 1 1174 10 is_stmt 0 li a4,65536 or a5,a5,a4 .LVL506: .LBB1517: .LBB1516: .loc 2 97 2 sw a5,-2036(s0) .LVL507: .LBE1516: .LBE1517: .loc 1 1177 2 is_stmt 1 .LBB1518: .LBB1519: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a4,1344(s1) .LVL508: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL509: #NO_APP .LBE1519: .LBE1518: .loc 1 1178 2 .loc 1 1179 2 .LBB1520: .LBB1521: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1521: .LBE1520: .loc 1 1178 10 is_stmt 0 li a3,1073741824 or a4,a4,a3 .LVL510: .LBB1523: .LBB1522: .loc 2 97 2 sw a4,1344(s1) .LVL511: .LBE1522: .LBE1523: .loc 1 1181 2 is_stmt 1 .LBB1524: .LBB1525: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,-2048(s0) .LVL512: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL513: #NO_APP .LBE1525: .LBE1524: .loc 1 1182 2 .loc 1 1183 2 .LBB1526: .LBB1527: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1527: .LBE1526: .loc 1 1182 10 is_stmt 0 or a5,a5,a3 .LVL514: .LBB1529: .LBB1528: .loc 2 97 2 sw a5,-2048(s0) .LVL515: .LBE1528: .LBE1529: .loc 1 1184 2 is_stmt 1 .LBB1530: .LBB1531: .loc 1 59 3 li a0,5 call sdelay .LVL516: .LBE1531: .LBE1530: .loc 1 1187 2 .LBB1532: .LBB1533: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,-2036(s0) .LVL517: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL518: #NO_APP .LBE1533: .LBE1532: .loc 1 1188 2 .loc 1 1189 2 .LBB1534: .LBB1535: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1535: .LBE1534: .loc 1 1188 10 is_stmt 0 ori a5,a5,1 .LVL519: .LBB1537: .LBB1536: .loc 2 97 2 sw a5,-2036(s0) .LVL520: .LBE1536: .LBE1537: .loc 1 1196 2 is_stmt 1 .LBB1538: .LBB1539: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,-2048(s0) .LVL521: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL522: #NO_APP .LBE1539: .LBE1538: .loc 1 1197 2 .loc 1 1198 2 .LBB1540: .LBB1541: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1541: .LBE1540: .loc 1 1197 10 is_stmt 0 li a4,-2147483648 or a4,a5,a4 .LBB1543: .LBB1542: .loc 2 97 2 sw a4,-2048(s0) .LVL523: .LBE1542: .LBE1543: .loc 1 1200 2 is_stmt 1 .LBB1544: .LBB1545: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL524: #NO_APP .LBE1545: .LBE1544: .loc 1 1201 2 .loc 1 1202 2 .LBB1546: .LBB1547: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1547: .LBE1546: .loc 1 1201 10 is_stmt 0 li a4,-2013265920 or a5,a5,a4 .LVL525: .LBB1549: .LBB1548: .loc 2 97 2 sw a5,-2048(s0) .LVL526: .LBE1548: .LBE1549: .loc 1 1203 2 is_stmt 1 .LBB1550: .LBB1551: .loc 1 59 3 li a0,5 call sdelay .LVL527: .LBE1551: .LBE1550: .loc 1 1214 2 .LBB1552: .LBB1553: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a5,51392512 li a4,32768 .LBE1553: .LBE1552: .LBB1555: .LBB1556: .loc 1 59 3 is_stmt 0 li a0,10 .LBE1556: .LBE1555: .LBB1558: .LBB1554: .loc 2 97 2 sw a4,12(a5) .LVL528: .LBE1554: .LBE1558: .loc 1 1215 2 is_stmt 1 .LBB1559: .LBB1557: .loc 1 59 3 call sdelay .LVL529: .LBE1557: .LBE1559: .loc 1 1218 2 .loc 1 1220 1 is_stmt 0 ld ra,24(sp) .cfi_restore 1 ldd s0,s1,(sp),0,4 .cfi_restore 9 .cfi_restore 8 ld s2,16(sp) .cfi_restore 18 .LVL530: li a0,0 addi sp,sp,32 .cfi_def_cfa_offset 0 jr ra .cfi_endproc .LFE54: .size mctl_sys_init, .-mctl_sys_init .section .text.mctl_com_init,"ax",@progbits .align 1 .globl mctl_com_init .type mctl_com_init, @function mctl_com_init: .LFB55: .loc 1 1228 1 is_stmt 1 .cfi_startproc .LVL531: .loc 1 1229 2 .loc 1 1230 2 .loc 1 1237 2 .LBB1560: .LBB1561: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a4,51388416 lw a5,8(a4) .LVL532: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL533: #NO_APP .LBE1561: .LBE1560: .loc 1 1238 2 .loc 1 1238 10 is_stmt 0 li a3,-16384 addi a3,a3,255 and a5,a5,a3 .LVL534: .loc 1 1239 2 is_stmt 1 .loc 1 1240 2 .LBB1562: .LBB1563: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1563: .LBE1562: .loc 1 1239 10 is_stmt 0 li a3,8192 or a5,a5,a3 .LVL535: .LBB1565: .LBB1564: .loc 2 97 2 sw a5,8(a4) .LVL536: .LBE1564: .LBE1565: .loc 1 1242 2 is_stmt 1 .LBB1566: .LBB1567: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,0(a4) .LVL537: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL538: #NO_APP .LBE1567: .LBE1566: .loc 1 1243 2 .loc 1 1247 19 is_stmt 0 lw a2,4(a0) .loc 1 1243 10 li a4,-16773120 addi a4,a4,-1 and a5,a5,a4 .LVL539: .loc 1 1245 2 is_stmt 1 .loc 1 1247 2 .loc 1 1247 39 is_stmt 0 li a3,458752 slliw a4,a2,16 and a4,a4,a3 .LVL540: .loc 1 1249 2 is_stmt 1 .loc 1 1249 35 is_stmt 0 lw a3,20(a0) or a5,a4,a5 .LVL541: .loc 1 1251 4 addiw a2,a2,-6 .loc 1 1249 56 andi a3,a3,1 seqz a3,a3 slli a3,a3,12 or a4,a5,a3 .LVL542: .loc 1 1251 2 is_stmt 1 .loc 1 1251 4 is_stmt 0 li a5,1 bgtu a2,a5,.L126 .loc 1 1252 3 is_stmt 1 .loc 1 1252 11 is_stmt 0 li a5,4718592 .LVL543: .L151: .loc 1 1254 11 or a5,a5,a4 .LVL544: .loc 1 1255 2 is_stmt 1 .LBB1568: .LBB1569: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a4,51388416 sw a5,0(a4) .LVL545: .LBE1569: .LBE1568: .loc 1 1257 2 .loc 1 1257 10 is_stmt 0 lw a5,20(a0) .LVL546: .loc 1 1230 22 li a1,1 .loc 1 1257 23 andi a4,a5,256 .LVL547: .loc 1 1257 4 beqz a4,.L128 .loc 1 1257 37 discriminator 1 extu a5,a5,12+4-1,12 bne a5,a1,.L128 .loc 1 1258 12 li a1,2 .L128: .LVL548: .loc 1 1260 2 is_stmt 1 .loc 1 1278 13 is_stmt 0 li a6,4096 addi t4,a6,-2048 .loc 1 1275 13 addi t6,a6,-1792 slli a1,a1,4 .LVL549: .loc 1 1258 12 li a2,0 li a7,51388416 .LVL550: .loc 1 1263 11 li t3,-4096 li t1,2 li t5,4 li t0,8 .loc 1 1272 13 addi a6,a6,-1536 li t2,1 .LVL551: .L135: .loc 1 1262 3 is_stmt 1 .LBB1570: .LBB1571: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,0(a7) .LVL552: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL553: #NO_APP .LBE1571: .LBE1570: .loc 1 1263 3 .loc 1 1264 3 .loc 1 1265 3 .loc 1 1264 34 is_stmt 0 lwd a4,a3,(a0),2,3 .loc 1 1263 11 and a5,a5,t3 .LVL554: .loc 1 1264 40 extu a3,a3,12+2-1,12 or a3,a3,a5 .loc 1 1265 44 addiw a5,a2,12 .loc 1 1265 33 srlw a5,a4,a5 .loc 1 1265 58 slliw a5,a5,2 andi a5,a5,4 sext.w a3,a3 .loc 1 1265 11 or a3,a5,a3 .LVL555: .loc 1 1266 3 is_stmt 1 .loc 1 1266 47 is_stmt 0 addiw a5,a2,4 .loc 1 1266 36 srlw a5,a4,a5 .loc 1 1266 66 addiw a5,a5,-1 .loc 1 1266 73 slliw a5,a5,4 andi a5,a5,255 .loc 1 1268 30 srlw a4,a4,a2 .loc 1 1266 11 or a5,a5,a3 .LVL556: .loc 1 1268 3 is_stmt 1 .loc 1 1268 47 is_stmt 0 andi a4,a4,15 .loc 1 1278 13 or a3,a5,t4 beq a4,t1,.L134 bgtu a4,t1,.L130 .loc 1 1281 13 ori a3,a5,1792 beq a4,t2,.L134 .L132: .loc 1 1284 5 is_stmt 1 .loc 1 1284 13 is_stmt 0 ori a3,a5,1536 .LVL557: .loc 1 1285 5 is_stmt 1 j .L134 .LVL558: .L126: .loc 1 1254 3 .loc 1 1254 34 is_stmt 0 lw a5,92(a0) .loc 1 1254 47 li a3,524288 .loc 1 1254 34 srliw a5,a5,5 .loc 1 1254 47 slliw a5,a5,19 and a5,a5,a3 .loc 1 1254 11 or a5,a5,a4 li a4,4194304 .LVL559: j .L151 .LVL560: .L130: .loc 1 1275 13 or a3,a5,t6 beq a4,t5,.L134 .loc 1 1272 13 or a3,a5,a6 bne a4,t0,.L132 .LVL561: .L134: .loc 1 1287 3 is_stmt 1 discriminator 2 .LBB1572: .LBB1573: .loc 2 96 2 discriminator 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 discriminator 2 #NO_APP swia a3,(a7),4,0 .LVL562: addiw a2,a2,16 .LBE1573: .LBE1572: .loc 1 1260 2 is_stmt 0 discriminator 2 bne a1,a2,.L135 .loc 1 1289 62 is_stmt 1 .loc 1 1290 2 .loc 1 1294 2 .LVL563: .LBB1574: .LBB1575: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a5,51388416 lw a5,0(a5) .LVL564: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL565: #NO_APP .LBE1575: .LBE1574: .loc 1 1295 2 .loc 1 1295 4 is_stmt 0 andi a5,a5,1 .LVL566: .loc 1 1296 11 li a3,771 .loc 1 1295 4 bnez a5,.L136 .loc 1 1298 11 li a3,513 .L136: .LVL567: .loc 1 1299 2 is_stmt 1 .LBB1576: .LBB1577: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a4,51392512 sw a3,288(a4) .LVL568: .LBE1577: .LBE1576: .loc 1 1300 38 .loc 1 1303 2 .loc 1 1303 22 is_stmt 0 lw a5,20(a0) .loc 1 1303 4 andi a5,a5,1 beqz a5,.L137 .loc 1 1305 3 is_stmt 1 .LVL569: .LBB1578: .LBB1579: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw zero,964(a4) .LVL570: .L137: .LBE1579: .LBE1578: .loc 1 1310 2 .loc 1 1310 4 is_stmt 0 lw a5,56(a0) beqz a5,.L124 .loc 1 1312 3 is_stmt 1 .LVL571: .LBB1580: .LBB1581: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a4,51388416 .LVL572: lw a3,0(a4) .LVL573: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL574: #NO_APP .LBE1581: .LBE1580: .loc 1 1313 3 .loc 1 1313 39 is_stmt 0 lw a5,56(a0) li a2,100663296 slliw a5,a5,25 and a5,a5,a2 .loc 1 1313 11 or a5,a5,a3 .LVL575: .loc 1 1314 3 is_stmt 1 .LBB1582: .LBB1583: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,0(a4) .LVL576: .LBE1583: .LBE1582: .loc 1 1316 3 .LBB1584: .LBB1585: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a3,4(a4) .LVL577: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL578: #NO_APP .LBE1585: .LBE1584: .loc 1 1317 3 .loc 1 1317 33 is_stmt 0 lw a5,56(a0) .loc 1 1317 48 li a2,2093056 .loc 1 1317 33 srliw a5,a5,2 .loc 1 1317 48 slliw a5,a5,12 and a5,a5,a2 .loc 1 1317 11 or a5,a5,a3 .LVL579: .loc 1 1318 3 is_stmt 1 .LBB1586: .LBB1587: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,4(a4) .LVL580: .L124: .LBE1587: .LBE1586: .loc 1 1320 1 is_stmt 0 ret .cfi_endproc .LFE55: .size mctl_com_init, .-mctl_com_init .section .text.mctl_phy_ac_remapping,"ax",@progbits .align 1 .globl mctl_phy_ac_remapping .type mctl_phy_ac_remapping, @function mctl_phy_ac_remapping: .LFB56: .loc 1 1329 1 is_stmt 1 .cfi_startproc .LVL581: .loc 1 1332 2 .LBB1588: .LBB1589: .loc 2 138 2 .loc 2 140 2 .LBE1589: .LBE1588: .loc 1 1329 1 is_stmt 0 addi sp,sp,-224 .cfi_def_cfa_offset 224 .LBB1592: .LBB1590: .loc 2 140 6 li a5,50356224 .LBE1590: .LBE1592: .loc 1 1329 1 sd s0,208(sp) sd s1,200(sp) sd ra,216(sp) .cfi_offset 8, -16 .cfi_offset 9, -24 .cfi_offset 1, -8 .loc 1 1329 1 mv s1,a0 .LBB1593: .LBB1591: .loc 2 140 6 lw s0,552(a5) .LVL582: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL583: #NO_APP .LBE1591: .LBE1593: .loc 1 1334 7 is_stmt 0 lui a5,%hi(.LANCHOR0) addi a5,a5,%lo(.LANCHOR0) ld a3,352(a5) ld a4,366(a5) .loc 1 1333 7 sd zero,0(sp) .loc 1 1334 7 sd a3,24(sp) ld a3,360(a5) .loc 1 1333 7 sd zero,8(sp) sw zero,16(sp) .loc 1 1334 7 sd a3,32(sp) .loc 1 1335 7 ld a3,376(a5) .loc 1 1334 7 sd a4,38(sp) .loc 1 1335 7 ld a4,390(a5) sd a3,48(sp) ld a3,384(a5) .loc 1 1333 7 sh zero,20(sp) .loc 1 1332 6 extu s0,s0,8+4-1,8 .LVL584: .loc 1 1333 2 is_stmt 1 .loc 1 1334 2 .loc 1 1335 2 .loc 1 1335 7 is_stmt 0 sd a3,56(sp) .loc 1 1336 7 ld a3,400(a5) .loc 1 1335 7 sd a4,62(sp) .loc 1 1336 2 is_stmt 1 .loc 1 1336 7 is_stmt 0 ld a4,414(a5) sd a3,72(sp) ld a3,408(a5) .loc 1 1353 2 lui a0,%hi(.LC11) .LVL585: mv a1,s0 .loc 1 1336 7 sd a3,80(sp) .loc 1 1337 7 ld a3,424(a5) .loc 1 1336 7 sd a4,86(sp) .loc 1 1337 2 is_stmt 1 .loc 1 1337 7 is_stmt 0 ld a4,438(a5) sd a3,96(sp) ld a3,432(a5) .loc 1 1353 2 addi a0,a0,%lo(.LC11) .loc 1 1337 7 sd a3,104(sp) .loc 1 1338 7 ld a3,448(a5) .loc 1 1337 7 sd a4,110(sp) .loc 1 1338 2 is_stmt 1 .loc 1 1338 7 is_stmt 0 sd a3,120(sp) ld a3,456(a5) sd a3,128(sp) ld a4,462(a5) .loc 1 1345 7 ld a3,472(a5) .loc 1 1338 7 sd a4,134(sp) .loc 1 1345 2 is_stmt 1 .loc 1 1345 7 is_stmt 0 sd a3,144(sp) ld a3,480(a5) ld a4,486(a5) sd a3,152(sp) sd a4,158(sp) .loc 1 1352 2 is_stmt 1 .loc 1 1352 7 is_stmt 0 addi a4,a5,496 ld a5,496(a5) sd a5,168(sp) ld a5,8(a4) sd a5,176(sp) ld a5,14(a4) sd a5,182(sp) .loc 1 1353 2 is_stmt 1 call sys_uart_printf .LVL586: .loc 1 1355 2 .loc 1 1355 24 is_stmt 0 lw a5,92(s1) .loc 1 1355 4 extu a5,a5,18+2-1,18 bnez a5,.L153 .loc 1 1358 4 is_stmt 1 addiw a3,s0,-8 li a5,6 bgtu a3,a5,.L154 lui a5,%hi(.L156) addi a5,a5,%lo(.L156) lurw a5,a5,a3,2 jr a5 .section .rodata .align 2 .align 2 .L156: .word .L160 .word .L159 .word .L158 .word .L154 .word .L157 .word .L155 .word .L155 .section .text.mctl_phy_ac_remapping .L157: .loc 1 1366 5 li a2,22 addi a1,sp,24 .L165: .loc 1 1410 1 is_stmt 0 mv a0,sp call memcpy_self .LVL587: .L155: .loc 1 1412 2 is_stmt 1 .loc 1 1412 14 is_stmt 0 lw a5,4(s1) li a4,2 beq a5,a4,.L161 li a4,3 beq a5,a4,.L162 .LVL588: .L152: .loc 1 1442 1 ld ra,216(sp) .cfi_remember_state .cfi_restore 1 ld s0,208(sp) .cfi_restore 8 ld s1,200(sp) .cfi_restore 9 .LVL589: addi sp,sp,224 .cfi_def_cfa_offset 0 jr ra .LVL590: .L160: .cfi_restore_state .loc 1 1375 4 is_stmt 1 li a2,22 addi a1,sp,48 j .L165 .L159: .loc 1 1384 4 li a2,22 addi a1,sp,72 j .L165 .L158: .loc 1 1392 5 li a2,22 addi a1,sp,120 j .L165 .L154: .loc 1 1404 5 li a2,22 addi a1,sp,96 j .L165 .L153: .loc 1 1410 1 li a2,22 addi a1,sp,168 j .L165 .L161: .loc 1 1416 6 .loc 1 1416 8 is_stmt 0 addiw s0,s0,-13 .LVL591: li a5,1 bgtu s0,a5,.L152 .loc 1 1417 7 is_stmt 1 li a2,22 addi a1,sp,144 mv a0,sp call memcpy_self .LVL592: .loc 1 1419 6 .L162: .loc 1 1428 6 lbu a5,0(sp) lbu a4,1(sp) slliw a5,a5,5 slliw a4,a4,10 or a5,a5,a4 lbu a4,2(sp) slliw a4,a4,15 or a5,a5,a4 lbu a4,3(sp) slliw a4,a4,20 or a5,a5,a4 lbu a4,4(sp) slliw a4,a4,25 or a5,a5,a4 sext.w a5,a5 .LVL593: .LBB1594: .LBB1595: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a4,51388416 sw a5,1280(a4) .LVL594: .LBE1595: .LBE1594: .loc 1 1429 6 lbu a5,6(sp) lbu a3,7(sp) slliw a5,a5,5 slliw a3,a3,10 or a5,a5,a3 lbu a3,5(sp) or a5,a5,a3 lbu a3,8(sp) slliw a3,a3,15 or a5,a5,a3 lbu a3,9(sp) slliw a3,a3,20 or a5,a5,a3 lbu a3,10(sp) slliw a3,a3,25 or a5,a5,a3 sext.w a5,a5 .LVL595: .LBB1596: .LBB1597: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,1284(a4) .LVL596: .LBE1597: .LBE1596: .loc 1 1430 6 lbu a5,12(sp) lbu a3,13(sp) slliw a5,a5,5 slliw a3,a3,10 or a5,a5,a3 lbu a3,11(sp) or a5,a5,a3 lbu a3,14(sp) slliw a3,a3,15 or a5,a5,a3 lbu a3,15(sp) slliw a3,a3,20 or a5,a5,a3 .LVL597: .LBB1598: .LBB1599: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,1288(a4) .LVL598: .LBE1599: .LBE1598: .loc 1 1431 6 lbu a5,17(sp) lbu a3,18(sp) slliw a5,a5,5 slliw a3,a3,10 or a5,a5,a3 lbu a3,16(sp) or a5,a5,a3 lbu a3,19(sp) slliw a3,a3,15 or a5,a5,a3 lbu a3,20(sp) slliw a3,a3,20 or a5,a5,a3 lbu a3,21(sp) slliw a3,a3,25 or a5,a5,a3 sext.w a5,a5 .LVL599: .LBB1600: .LBB1601: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,1292(a4) .LVL600: .LBE1601: .LBE1600: .loc 1 1432 6 lbu a5,0(sp) lbu a3,4(sp) slliw a5,a5,5 slliw a3,a3,25 or a5,a5,a3 lbu a3,1(sp) slliw a3,a3,10 or a5,a5,a3 lbu a3,2(sp) slliw a3,a3,15 or a5,a5,a3 lbu a3,3(sp) slliw a3,a3,20 or a5,a5,a3 ori a5,a5,1 sext.w a5,a5 .LVL601: .LBB1602: .LBB1603: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,1280(a4) .LBE1603: .LBE1602: .loc 1 1442 1 is_stmt 0 j .L152 .cfi_endproc .LFE56: .size mctl_phy_ac_remapping, .-mctl_phy_ac_remapping .section .text.mctl_channel_init,"ax",@progbits .align 1 .globl mctl_channel_init .type mctl_channel_init, @function mctl_channel_init: .LFB57: .loc 1 1505 1 is_stmt 1 .cfi_startproc .LVL602: .loc 1 1506 2 .loc 1 1507 2 .loc 1 1508 2 .loc 1 1509 2 .loc 1 1511 2 .loc 1 1505 1 is_stmt 0 addi sp,sp,-48 .cfi_def_cfa_offset 48 sd s1,16(sp) .cfi_offset 9, -32 .loc 1 1511 38 lw s1,92(a1) .LBB1604: .LBB1605: .loc 2 140 6 li a3,51388416 .LBE1605: .LBE1604: .loc 1 1505 1 sd s2,24(sp) sd ra,40(sp) sd s0,8(sp) sd s3,32(sp) .cfi_offset 18, -24 .cfi_offset 1, -8 .cfi_offset 8, -40 .cfi_offset 19, -16 .loc 1 1505 1 mv s2,a1 .loc 1 1511 18 extu s1,s1,2+2-1,2 .LVL603: .loc 1 1515 2 is_stmt 1 .LBB1607: .LBB1606: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,12(a3) .LVL604: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL605: #NO_APP .LBE1606: .LBE1607: .loc 1 1516 2 .loc 1 1516 10 is_stmt 0 li a4,-4096 and a5,a5,a4 .LVL606: .loc 1 1517 2 is_stmt 1 .loc 1 1517 30 is_stmt 0 lw a4,0(a1) srliw a4,a4,1 .loc 1 1517 34 addiw a4,a4,-1 .loc 1 1517 10 or a5,a5,a4 .LVL607: sext.w a5,a5 .LVL608: .loc 1 1518 2 is_stmt 1 .LBB1608: .LBB1609: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1609: .LBE1608: .LBB1611: .LBB1612: .loc 2 140 6 is_stmt 0 li a4,51392512 .LBE1612: .LBE1611: .LBB1614: .LBB1610: .loc 2 97 2 sw a5,12(a3) .LVL609: .LBE1610: .LBE1614: .loc 1 1522 2 is_stmt 1 .LBB1615: .LBB1613: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,264(a4) .LVL610: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL611: #NO_APP .LBE1613: .LBE1615: .loc 1 1523 2 .loc 1 1524 2 .loc 1 1525 2 .loc 1 1525 10 is_stmt 0 li a3,-4096 addi a3,a3,255 and a5,a5,a3 .LVL612: .loc 1 1526 2 is_stmt 1 .loc 1 1527 2 .LBB1616: .LBB1617: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1617: .LBE1616: .loc 1 1526 10 is_stmt 0 ori a5,a5,768 .LVL613: .LBB1619: .LBB1618: .loc 2 97 2 sw a5,264(a4) .LVL614: .LBE1618: .LBE1619: .loc 1 1528 37 is_stmt 1 .loc 1 1532 2 .loc 1 1533 76 .loc 1 1534 2 lw a5,12(a1) .LBB1620: .LBB1621: .loc 2 140 6 is_stmt 0 lw a4,836(a4) not a5,a5 .LVL615: .LBE1621: .LBE1620: .loc 1 1535 2 is_stmt 1 .loc 1 1538 3 .LBB1624: .LBB1622: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL616: #NO_APP .LBE1622: .LBE1624: .loc 1 1539 3 .loc 1 1540 23 is_stmt 0 slliw a5,a5,5 .LVL617: .loc 1 1546 5 lw a2,0(a1) .loc 1 1540 23 andi a5,a5,32 .loc 1 1539 11 andi a4,a4,-49 .LVL618: .loc 1 1540 3 is_stmt 1 .loc 1 1540 23 is_stmt 0 sext.w a5,a5 .loc 1 1546 5 li a3,672 .loc 1 1540 11 or a4,a4,a5 .LVL619: .loc 1 1541 3 is_stmt 1 .loc 1 1542 3 .loc 1 1543 3 .loc 1 1544 3 .loc 1 1546 3 .loc 1 1546 5 is_stmt 0 bgtu a2,a3,.L167 .loc 1 1544 11 li a3,-61440 addi a3,a3,-15 and a4,a4,a3 .LVL620: .L168: .loc 1 1551 3 is_stmt 1 .LBB1625: .LBB1626: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a3,51392512 sw a4,836(a3) .LVL621: .LBE1626: .LBE1625: .loc 1 1538 3 .LBB1628: .LBB1623: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a4,964(a3) .LVL622: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL623: #NO_APP .LBE1623: .LBE1628: .loc 1 1539 3 .loc 1 1546 5 is_stmt 0 lw a3,0(s2) .loc 1 1539 11 andi a4,a4,-49 .LVL624: .loc 1 1540 3 is_stmt 1 .loc 1 1540 11 is_stmt 0 or a5,a5,a4 .LVL625: .loc 1 1541 3 is_stmt 1 .loc 1 1542 3 .loc 1 1543 3 .loc 1 1544 3 .loc 1 1546 3 .loc 1 1546 5 is_stmt 0 li a4,672 bgtu a3,a4,.L169 .loc 1 1544 11 li a4,-61440 addi a4,a4,-15 and a5,a5,a4 .LVL626: .L170: .loc 1 1551 3 is_stmt 1 .LBB1629: .LBB1627: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li s0,51392512 sw a5,964(s0) .LVL627: .LBE1627: .LBE1629: .loc 1 1553 38 .loc 1 1557 2 .LBB1630: .LBB1631: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,520(s0) .LVL628: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL629: #NO_APP .LBE1631: .LBE1630: .loc 1 1558 2 .loc 1 1559 2 .LBB1632: .LBB1633: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1633: .LBE1632: .loc 1 1558 10 is_stmt 0 ori a5,a5,2 .LVL630: .LBB1635: .LBB1634: .loc 2 97 2 sw a5,520(s0) .LVL631: .LBE1634: .LBE1635: .loc 1 1563 2 is_stmt 1 mv a0,s2 .LVL632: call eye_delay_compensation .LVL633: .loc 1 1568 2 li a4,1 lw a5,264(s0) beq s1,a4,.L171 li a4,2 beq s1,a4,.L172 .loc 1 1601 4 .LVL634: .LBB1636: .LBB1637: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL635: #NO_APP .LBE1637: .LBE1636: .loc 1 1602 4 .loc 1 1603 4 .LBB1638: .LBB1639: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1639: .LBE1638: .loc 1 1602 12 is_stmt 0 andi a5,a5,-65 .LVL636: .LBB1641: .LBB1640: .loc 2 97 2 sw a5,264(s0) .LVL637: .LBE1640: .LBE1641: .loc 1 1604 4 is_stmt 1 .LBB1642: .LBB1643: .loc 1 59 3 li a0,10 call sdelay .LVL638: .LBE1643: .LBE1642: .loc 1 1606 4 .LBB1644: .LBB1645: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,264(s0) .LVL639: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL640: #NO_APP .LBE1645: .LBE1644: .loc 1 1607 4 .loc 1 1608 4 .LBB1646: .LBB1647: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1647: .LBE1646: .loc 1 1607 12 is_stmt 0 ori a5,a5,192 .LVL641: .LBB1649: .LBB1648: .loc 2 97 2 sw a5,264(s0) .LVL642: j .L174 .LVL643: .L167: .LBE1648: .LBE1649: .loc 1 1548 4 is_stmt 1 .loc 1 1548 12 is_stmt 0 li a3,-61440 addi a3,a3,-1551 and a4,a4,a3 .LVL644: .loc 1 1549 4 is_stmt 1 .loc 1 1549 12 is_stmt 0 ori a4,a4,1024 .LVL645: j .L168 .LVL646: .L169: .loc 1 1548 4 is_stmt 1 .loc 1 1548 12 is_stmt 0 li a4,-61440 addi a4,a4,-1551 and a5,a5,a4 .LVL647: .loc 1 1549 4 is_stmt 1 .loc 1 1549 12 is_stmt 0 ori a5,a5,1024 .LVL648: j .L170 .LVL649: .L171: .loc 1 1571 4 is_stmt 1 .LBB1650: .LBB1651: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL650: #NO_APP .LBE1651: .LBE1650: .loc 1 1572 4 .loc 1 1573 4 .LBB1652: .LBB1653: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1653: .LBE1652: .loc 1 1572 12 is_stmt 0 andi a5,a5,-193 .LVL651: .LBB1655: .LBB1654: .loc 2 97 2 sw a5,264(s0) .LVL652: .LBE1654: .LBE1655: .loc 1 1575 4 is_stmt 1 .LBB1656: .LBB1657: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,188(s0) .LVL653: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL654: #NO_APP .LBE1657: .LBE1656: .loc 1 1576 4 .loc 1 1577 4 .LBB1658: .LBB1659: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1659: .LBE1658: .loc 1 1576 12 is_stmt 0 andi a5,a5,-264 .LVL655: .LBB1661: .LBB1660: .loc 2 97 2 sw a5,188(s0) .LVL656: .L174: .LBE1660: .LBE1661: .loc 1 1615 2 is_stmt 1 .loc 1 1615 28 is_stmt 0 lw a5,4(s2) .loc 1 1615 4 li a3,1 addiw a5,a5,-6 bgtu a5,a3,.L175 .loc 1 1617 3 is_stmt 1 li a4,51392512 lw a5,284(a4) .loc 1 1617 5 is_stmt 0 bne s1,a3,.L176 .loc 1 1620 4 is_stmt 1 .LVL657: .LBB1662: .LBB1663: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL658: #NO_APP .LBE1663: .LBE1662: .loc 1 1621 4 .loc 1 1622 4 .loc 1 1623 4 .loc 1 1624 4 .LBB1664: .LBB1665: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1665: .LBE1664: .loc 1 1623 12 is_stmt 0 li a3,-134217728 addi a3,a3,-193 and a5,a5,a3 .LVL659: li a3,-2147483648 .LVL660: .L214: .loc 1 1633 12 or a5,a5,a3 .LBB1666: .LBB1667: .loc 2 97 2 sw a5,284(a4) .L175: .LBE1667: .LBE1666: .loc 1 1641 2 is_stmt 1 li a4,51392512 lw a5,192(a4) li a3,-268435456 and a5,a5,a3 .loc 1 1641 5 is_stmt 0 lw a3,20(s2) .loc 1 1641 4 slli a2,a3,51 bgez a2,.L177 .loc 1 1643 3 is_stmt 1 .LVL661: .LBB1669: .LBB1670: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL662: #NO_APP .LBE1670: .LBE1669: .loc 1 1644 3 .loc 1 1645 3 .loc 1 1646 3 .LBB1671: .LBB1672: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1672: .LBE1671: .loc 1 1645 11 is_stmt 0 li a3,50331648 addi a3,a3,1 .LVL663: .L215: .loc 1 1652 11 or a5,a5,a3 .LBB1673: .LBB1674: .loc 2 97 2 sw a5,192(a4) .LBE1674: .LBE1673: .loc 1 1655 2 is_stmt 1 .LVL664: .LBB1676: .LBB1677: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a5,117440512 lw a5,1492(a5) .LVL665: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL666: #NO_APP .LBE1677: .LBE1676: .loc 1 1655 4 is_stmt 0 slli a4,a5,47 bgez a4,.L179 .loc 1 1657 3 is_stmt 1 .LVL667: .LBB1678: .LBB1679: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a4,117506048 lw a5,592(a4) .LVL668: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL669: #NO_APP .LBE1679: .LBE1678: .loc 1 1658 3 .loc 1 1659 3 .LBB1680: .LBB1681: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1681: .LBE1680: .loc 1 1658 11 is_stmt 0 andi a5,a5,-3 .LVL670: .LBB1683: .LBB1682: .loc 2 97 2 sw a5,592(a4) .LVL671: .LBE1682: .LBE1683: .loc 1 1660 3 is_stmt 1 .LBB1684: .LBB1685: .loc 1 59 3 li a0,10 call sdelay .LVL672: .L179: .LBE1685: .LBE1684: .loc 1 1665 2 .LBB1686: .LBB1687: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a4,51392512 lw a5,320(a4) .LVL673: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL674: #NO_APP .LBE1687: .LBE1686: .loc 1 1666 2 .loc 1 1666 10 is_stmt 0 li a3,-67108864 and a3,a5,a3 .LVL675: .loc 1 1667 2 is_stmt 1 .loc 1 1667 30 is_stmt 0 lw a5,8(s2) extu a5,a5,0+24-1,0 .loc 1 1667 10 or a5,a5,a3 .LVL676: .loc 1 1668 2 is_stmt 1 .loc 1 1669 2 .LBB1688: .LBB1689: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1689: .LBE1688: .loc 1 1668 10 is_stmt 0 li a3,33554432 or a5,a5,a3 .LVL677: .LBB1691: .LBB1690: .loc 2 97 2 sw a5,320(a4) .LVL678: .LBE1690: .LBE1691: .loc 1 1671 2 is_stmt 1 .loc 1 1671 4 is_stmt 0 li a5,1 bne s1,a5,.L180 .loc 1 1673 3 is_stmt 1 .LVL679: .loc 1 1674 3 .LBB1692: .LBB1693: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a5,82 sw a5,0(a4) .LVL680: .LBE1693: .LBE1692: .loc 1 1675 3 .loc 1 1676 3 .LBB1694: .LBB1695: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a5,83 sw a5,0(a4) .L181: .LBE1695: .LBE1694: .loc 1 1678 43 discriminator 1 .LVL681: .LBB1696: .LBB1697: .loc 2 138 2 discriminator 1 .loc 2 140 2 discriminator 1 .loc 2 140 6 is_stmt 0 discriminator 1 lw a5,16(a4) .LVL682: .loc 2 141 2 is_stmt 1 discriminator 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 1 .LVL683: #NO_APP .LBE1697: .LBE1696: .loc 1 1678 8 is_stmt 0 discriminator 1 andi a5,a5,1 beqz a5,.L181 .loc 1 1679 3 is_stmt 1 .LVL684: .LBB1698: .LBB1699: .loc 1 59 3 li a0,10 call sdelay .LVL685: .LBE1699: .LBE1698: .loc 1 1680 3 .loc 1 1681 3 .loc 1 1681 5 is_stmt 0 lw a3,4(s2) li a4,3 .loc 1 1680 11 li a5,1312 .loc 1 1681 5 bne a3,a4,.L182 .loc 1 1682 12 li a5,1440 .LVL686: .L182: .loc 1 1697 2 is_stmt 1 .LBB1700: .LBB1701: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a4,51392512 sw a5,0(a4) .LVL687: .LBE1701: .LBE1700: .loc 1 1698 2 .loc 1 1699 2 .LBB1702: .LBB1703: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1703: .LBE1702: .loc 1 1698 10 is_stmt 0 ori a5,a5,1 .LVL688: .LBB1705: .LBB1704: .loc 2 97 2 sw a5,0(a4) .LVL689: .LBE1704: .LBE1705: .loc 1 1700 54 is_stmt 1 .loc 1 1701 2 .LBB1706: .LBB1707: .loc 1 59 3 li a0,10 call sdelay .LVL690: .LBE1707: .LBE1706: .LBB1708: .LBB1709: .loc 2 140 6 is_stmt 0 li s2,51392512 .LVL691: .L183: .LBE1709: .LBE1708: .loc 1 1702 42 is_stmt 1 discriminator 1 .LBB1711: .LBB1710: .loc 2 138 2 discriminator 1 .loc 2 140 2 discriminator 1 .loc 2 140 6 is_stmt 0 discriminator 1 lw s0,16(s2) .LVL692: .loc 2 141 2 is_stmt 1 discriminator 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 1 .LVL693: #NO_APP .LBE1710: .LBE1711: .loc 1 1702 28 is_stmt 0 discriminator 1 andi s0,s0,1 .loc 1 1702 7 discriminator 1 beqz s0,.L183 .loc 1 1705 2 is_stmt 1 .LVL694: .LBB1712: .LBB1713: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a5,117440512 lw a5,1492(a5) .LVL695: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL696: #NO_APP .LBE1713: .LBE1712: .loc 1 1705 4 is_stmt 0 slli a4,a5,47 bltz a4,.L184 .L189: .loc 1 1758 2 is_stmt 1 .LVL697: .LBB1714: .LBB1715: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a5,51392512 lw a5,16(a5) .LVL698: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL699: #NO_APP .LBE1715: .LBE1714: .loc 1 1759 2 .loc 1 1759 4 is_stmt 0 extu a4,a5,20+8-1,20 bnez a4,.L185 .L186: .LBB1716: .LBB1717: .loc 2 140 6 discriminator 1 li s2,51392512 .LVL700: .L192: .LBE1717: .LBE1716: .loc 1 1774 40 is_stmt 1 discriminator 1 .LBB1719: .LBB1718: .loc 2 138 2 discriminator 1 .loc 2 140 2 discriminator 1 .loc 2 140 6 is_stmt 0 discriminator 1 lw a5,24(s2) .LVL701: .loc 2 141 2 is_stmt 1 discriminator 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 1 .LVL702: #NO_APP .LBE1718: .LBE1719: .loc 1 1774 7 is_stmt 0 discriminator 1 andi a5,a5,1 beqz a5,.L192 .loc 1 1776 2 is_stmt 1 .LVL703: .LBB1720: .LBB1721: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a4,140(s2) .LVL704: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL705: #NO_APP .LBE1721: .LBE1720: .loc 1 1777 2 .loc 1 1778 2 .LBB1722: .LBB1723: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1723: .LBE1722: .loc 1 1777 9 is_stmt 0 li s3,-2147483648 or a4,a4,s3 .LVL706: .LBB1725: .LBB1724: .loc 2 97 2 sw a4,140(s2) .LVL707: .LBE1724: .LBE1725: .loc 1 1779 2 is_stmt 1 .LBB1726: .LBB1727: .loc 1 59 3 li a0,10 call sdelay .LVL708: .LBE1727: .LBE1726: .loc 1 1781 2 .LBB1728: .LBB1729: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a4,140(s2) .LVL709: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL710: #NO_APP .LBE1729: .LBE1728: .loc 1 1782 2 .loc 1 1783 2 .LBB1730: .LBB1731: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1731: .LBE1730: .loc 1 1782 9 is_stmt 0 extu a4,a4,0+31-1,0 .LVL711: .LBB1733: .LBB1732: .loc 2 97 2 sw a4,140(s2) .LVL712: .LBE1732: .LBE1733: .loc 1 1784 2 is_stmt 1 .LBB1734: .LBB1735: .loc 1 59 3 li a0,10 call sdelay .LVL713: .LBE1735: .LBE1734: .loc 1 1787 2 .LBB1736: .LBB1737: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a4,51388416 lw a5,20(a4) .LVL714: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL715: #NO_APP .LBE1737: .LBE1736: .loc 1 1788 2 .loc 1 1789 2 .LBB1738: .LBB1739: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1739: .LBE1738: .loc 1 1788 10 is_stmt 0 or a5,a5,s3 .LVL716: .LBB1741: .LBB1740: .loc 2 97 2 sw a5,20(a4) .LVL717: .LBE1740: .LBE1741: .loc 1 1790 2 is_stmt 1 .LBB1742: .LBB1743: .loc 1 59 3 li a0,10 call sdelay .LVL718: .LBE1743: .LBE1742: .loc 1 1792 2 .LBB1744: .LBB1745: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,268(s2) .LVL719: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL720: #NO_APP .LBE1745: .LBE1744: .loc 1 1793 2 .loc 1 1794 2 .LBB1746: .LBB1747: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1747: .LBE1746: .loc 1 1793 10 is_stmt 0 li a4,-100663296 addi a4,a4,-1 and a5,a5,a4 .LVL721: .LBB1749: .LBB1748: .loc 2 97 2 sw a5,268(s2) .LVL722: .LBE1748: .LBE1749: .loc 1 1799 2 is_stmt 1 .loc 1 1799 4 is_stmt 0 li a5,1 bne s1,a5,.L191 .loc 1 1801 3 is_stmt 1 .LVL723: .LBB1750: .LBB1751: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,284(s2) .LVL724: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL725: #NO_APP .LBE1751: .LBE1750: .loc 1 1802 3 .loc 1 1802 11 is_stmt 0 andi a5,a5,-193 .LVL726: .loc 1 1803 3 is_stmt 1 .loc 1 1804 3 .LBB1752: .LBB1753: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1753: .LBE1752: .loc 1 1803 11 is_stmt 0 ori a5,a5,64 .LVL727: .LBB1755: .LBB1754: .loc 2 97 2 sw a5,284(s2) .LVL728: j .L191 .LVL729: .L172: .LBE1754: .LBE1755: .loc 1 1581 4 is_stmt 1 .LBB1756: .LBB1757: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL730: #NO_APP .LBE1757: .LBE1756: .loc 1 1582 4 .loc 1 1582 12 is_stmt 0 andi a5,a5,-193 .LVL731: .loc 1 1583 4 is_stmt 1 .loc 1 1584 4 .LBB1758: .LBB1759: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1759: .LBE1758: .loc 1 1583 12 is_stmt 0 ori a5,a5,128 .LVL732: .LBB1761: .LBB1760: .loc 2 97 2 sw a5,264(s0) .LVL733: .LBE1760: .LBE1761: .loc 1 1586 4 is_stmt 1 .LBB1762: .LBB1763: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a4,96(s0) .LVL734: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL735: #NO_APP .LBE1763: .LBE1762: .loc 1 1587 4 .LBB1764: .LBB1765: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,188(s0) .LVL736: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL737: #NO_APP .LBE1765: .LBE1764: .loc 1 1588 4 .loc 1 1589 4 .loc 1 1586 45 is_stmt 0 extu a4,a4,16+5-1,16 .LVL738: .loc 1 1586 12 addiw a4,a4,-2 .loc 1 1588 12 andi a5,a5,-264 .LVL739: .loc 1 1589 12 or a5,a5,a4 sext.w a5,a5 .LVL740: .loc 1 1590 4 is_stmt 1 .LBB1766: .LBB1767: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1767: .LBE1766: .loc 1 1589 12 is_stmt 0 ori a5,a5,256 .LVL741: .LBB1769: .LBB1768: .loc 2 97 2 sw a5,188(s0) .LVL742: .LBE1768: .LBE1769: .loc 1 1592 4 is_stmt 1 .LBB1770: .LBB1771: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,284(s0) .LVL743: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL744: #NO_APP .LBE1771: .LBE1770: .loc 1 1593 4 .loc 1 1594 4 .loc 1 1595 4 .LBB1772: .LBB1773: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1773: .LBE1772: .loc 1 1594 12 is_stmt 0 li a4,134217728 extu a5,a5,0+31-1,0 .LVL745: or a5,a5,a4 .LBB1775: .LBB1774: .loc 2 97 2 sw a5,284(s0) .LVL746: j .L174 .LVL747: .L176: .LBE1774: .LBE1775: .loc 1 1629 4 is_stmt 1 .LBB1776: .LBB1777: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL748: #NO_APP .LBE1777: .LBE1776: .loc 1 1630 4 .loc 1 1631 4 .loc 1 1631 12 is_stmt 0 li a3,-1996488704 addi a3,a3,-1 and a5,a5,a3 sext.w a5,a5 .LVL749: .loc 1 1632 4 is_stmt 1 .loc 1 1633 4 .loc 1 1634 4 .LBB1778: .LBB1668: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1668: .LBE1778: .loc 1 1633 12 is_stmt 0 li a3,570425344 j .L214 .LVL750: .L177: .loc 1 1650 3 is_stmt 1 .LBB1779: .LBB1780: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL751: #NO_APP .LBE1780: .LBE1779: .loc 1 1651 3 .loc 1 1652 3 .loc 1 1653 3 .LBB1781: .LBB1675: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1675: .LBE1781: .loc 1 1652 11 is_stmt 0 li a3,16789504 addi a3,a3,135 j .L215 .LVL752: .L180: .loc 1 1686 2 is_stmt 1 .LBB1782: .LBB1783: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a5,117440512 lw a4,1492(a5) .LVL753: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL754: #NO_APP .LBE1783: .LBE1782: .loc 1 1686 4 is_stmt 0 slli a3,a4,47 .loc 1 1688 12 li a5,98 .loc 1 1686 4 bltz a3,.L182 .loc 1 1692 4 is_stmt 1 .LVL755: .loc 1 1693 4 .loc 1 1693 6 is_stmt 0 lw a3,4(s2) li a4,3 .loc 1 1692 12 li a5,370 .loc 1 1693 6 bne a3,a4,.L182 .loc 1 1694 13 li a5,498 j .L182 .LVL756: .L184: .loc 1 1707 3 is_stmt 1 .LBB1784: .LBB1785: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,268(s2) .LVL757: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL758: #NO_APP .LBE1785: .LBE1784: .loc 1 1708 3 .loc 1 1708 11 is_stmt 0 li a4,-100663296 addi a4,a4,-1 and a5,a5,a4 .LVL759: .loc 1 1709 3 is_stmt 1 .loc 1 1710 3 .LBB1786: .LBB1787: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1787: .LBE1786: .loc 1 1709 11 is_stmt 0 li a4,67108864 or a5,a5,a4 .LVL760: .LBB1789: .LBB1788: .loc 2 97 2 sw a5,268(s2) .LVL761: .LBE1788: .LBE1789: .loc 1 1711 3 is_stmt 1 .LBB1790: .LBB1791: .loc 1 59 3 li a0,10 call sdelay .LVL762: .LBE1791: .LBE1790: .loc 1 1713 3 .LBB1792: .LBB1793: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,4(s2) .LVL763: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL764: #NO_APP .LBE1793: .LBE1792: .loc 1 1714 3 .loc 1 1716 3 .LBB1794: .LBB1795: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1795: .LBE1794: .loc 1 1714 11 is_stmt 0 ori a5,a5,1 .LVL765: .LBB1797: .LBB1796: .loc 2 97 2 sw a5,4(s2) .LVL766: .LBE1796: .LBE1797: .loc 1 1717 8 li a4,3 .LBB1798: .LBB1799: .loc 2 140 6 li s2,51392512 .L187: .LBE1799: .LBE1798: .loc 1 1717 45 is_stmt 1 discriminator 1 .LVL767: .LBB1801: .LBB1800: .loc 2 138 2 discriminator 1 .loc 2 140 2 discriminator 1 .loc 2 140 6 is_stmt 0 discriminator 1 lw a5,24(s2) .LVL768: .loc 2 141 2 is_stmt 1 discriminator 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 1 .LVL769: #NO_APP .LBE1800: .LBE1801: .loc 1 1717 8 is_stmt 0 discriminator 1 andi a5,a5,7 bne a5,a4,.L187 .loc 1 1725 3 is_stmt 1 .LVL770: .LBB1802: .LBB1803: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a4,117506048 lw a5,592(a4) .LVL771: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL772: #NO_APP .LBE1803: .LBE1802: .loc 1 1726 3 .loc 1 1727 3 .LBB1804: .LBB1805: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1805: .LBE1804: .loc 1 1726 11 is_stmt 0 andi a5,a5,-2 .LVL773: .LBB1807: .LBB1806: .loc 2 97 2 sw a5,592(a4) .LVL774: .LBE1806: .LBE1807: .loc 1 1728 3 is_stmt 1 .LBB1808: .LBB1809: .loc 1 59 3 li a0,10 call sdelay .LVL775: .LBE1809: .LBE1808: .loc 1 1731 3 .LBB1810: .LBB1811: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,4(s2) .LVL776: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL777: #NO_APP .LBE1811: .LBE1810: .loc 1 1732 3 .loc 1 1733 3 .LBB1812: .LBB1813: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1813: .LBE1812: .loc 1 1732 11 is_stmt 0 andi a5,a5,-2 .LVL778: .LBB1815: .LBB1814: .loc 2 97 2 sw a5,4(s2) .LVL779: .LBE1814: .LBE1815: .loc 1 1734 8 li s3,1 .LBB1816: .LBB1817: .loc 2 140 6 li s2,51392512 .L188: .LBE1817: .LBE1816: .loc 1 1734 45 is_stmt 1 discriminator 1 .LVL780: .LBB1819: .LBB1818: .loc 2 138 2 discriminator 1 .loc 2 140 2 discriminator 1 .loc 2 140 6 is_stmt 0 discriminator 1 lw a5,24(s2) .LVL781: .loc 2 141 2 is_stmt 1 discriminator 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 1 .LVL782: #NO_APP .LBE1818: .LBE1819: .loc 1 1734 8 is_stmt 0 discriminator 1 andi a5,a5,7 bne a5,s3,.L188 .loc 1 1735 3 is_stmt 1 .LVL783: .LBB1820: .LBB1821: .loc 1 59 3 li a0,15 call sdelay .LVL784: .LBE1821: .LBE1820: .loc 1 1738 3 .loc 1 1738 5 is_stmt 0 bne s1,s3,.L189 .loc 1 1740 4 is_stmt 1 .LVL785: .LBB1822: .LBB1823: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,264(s2) .LVL786: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL787: #NO_APP .LBE1823: .LBE1822: .loc 1 1741 4 .loc 1 1742 4 .LBB1824: .LBB1825: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1825: .LBE1824: .loc 1 1741 12 is_stmt 0 andi a5,a5,-193 .LVL788: .LBB1827: .LBB1826: .loc 2 97 2 sw a5,264(s2) .LVL789: .LBE1826: .LBE1827: .loc 1 1744 4 is_stmt 1 .LBB1828: .LBB1829: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,268(s2) .LVL790: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL791: #NO_APP .LBE1829: .LBE1828: .loc 1 1745 4 .loc 1 1745 12 is_stmt 0 li a4,-100663296 addi a4,a4,-1 and a5,a5,a4 .LVL792: .loc 1 1746 4 is_stmt 1 .loc 1 1747 4 .LBB1830: .LBB1831: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1831: .LBE1830: .loc 1 1746 12 is_stmt 0 li a4,33554432 or a5,a5,a4 .LVL793: .LBB1833: .LBB1832: .loc 2 97 2 sw a5,268(s2) .LVL794: .LBE1832: .LBE1833: .loc 1 1748 4 is_stmt 1 .LBB1834: .LBB1835: .loc 1 59 3 li a0,1 call sdelay .LVL795: .LBE1835: .LBE1834: .loc 1 1750 4 .loc 1 1751 4 .LBB1836: .LBB1837: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a5,1025 sw a5,0(s2) .LBE1837: .LBE1836: .LBB1838: .LBB1839: .loc 2 140 6 is_stmt 0 li a4,51392512 .L190: .LBE1839: .LBE1838: .loc 1 1752 44 is_stmt 1 discriminator 1 .LVL796: .LBB1841: .LBB1840: .loc 2 138 2 discriminator 1 .loc 2 140 2 discriminator 1 .loc 2 140 6 is_stmt 0 discriminator 1 lw a5,16(a4) .LVL797: .loc 2 141 2 is_stmt 1 discriminator 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 1 .LVL798: #NO_APP .LBE1840: .LBE1841: .loc 1 1752 9 is_stmt 0 discriminator 1 andi a5,a5,1 beqz a5,.L190 j .L189 .LVL799: .L185: .loc 1 1762 48 is_stmt 1 .loc 1 1763 3 .loc 1 1763 6 is_stmt 0 li s0,1048576 and s0,a5,s0 .loc 1 1763 5 beqz s0,.L186 .loc 1 1765 4 is_stmt 1 lui a0,%hi(.LC12) addi a0,a0,%lo(.LC12) call sys_uart_printf .LVL800: .loc 1 1766 4 .loc 1 1766 11 is_stmt 0 li s0,0 .LVL801: .L191: .loc 1 1808 1 mv a0,s0 ld ra,40(sp) .cfi_restore 1 ld s0,8(sp) .cfi_restore 8 ld s1,16(sp) .cfi_restore 9 .LVL802: ld s2,24(sp) .cfi_restore 18 ld s3,32(sp) .cfi_restore 19 addi sp,sp,48 .cfi_def_cfa_offset 0 jr ra .cfi_endproc .LFE57: .size mctl_channel_init, .-mctl_channel_init .section .text.DRAMC_get_dram_size,"ax",@progbits .align 1 .globl DRAMC_get_dram_size .type DRAMC_get_dram_size, @function DRAMC_get_dram_size: .LFB58: .loc 1 1816 1 is_stmt 1 .cfi_startproc .loc 1 1817 2 .loc 1 1818 2 .LVL803: .loc 1 1819 2 .loc 1 1821 2 .LBB1842: .LBB1843: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a4,51388416 lw a5,0(a4) .LVL804: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL805: #NO_APP .LBE1843: .LBE1842: .loc 1 1823 2 .loc 1 1824 2 .loc 1 1826 2 .loc 1 1827 2 .loc 1 1829 2 .loc 1 1830 2 .loc 1 1832 2 .loc 1 1833 2 .loc 1 1826 7 is_stmt 0 extu a3,a5,4+4-1,4 .loc 1 1823 7 extu a0,a5,8+4-1,8 .loc 1 1832 13 addw a0,a0,a3 addiw a0,a0,-14 .loc 1 1829 7 extu a3,a5,2+2-1,2 .loc 1 1832 13 addw a0,a0,a3 .loc 1 1833 16 li a3,1 sllw a1,a3,a0 .loc 1 1835 13 andi a5,a5,3 .LVL806: .loc 1 1833 16 mv a0,a1 .LVL807: .loc 1 1835 2 is_stmt 1 .loc 1 1835 4 is_stmt 0 beqz a5,.L217 .loc 1 1837 3 is_stmt 1 .LVL808: .LBB1844: .LBB1845: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a4,4(a4) .LVL809: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL810: #NO_APP .LBE1845: .LBE1844: .loc 1 1838 3 .loc 1 1838 5 is_stmt 0 andi a2,a4,3 .loc 1 1854 15 mv a5,a1 .loc 1 1838 5 beqz a2,.L217 .loc 1 1840 4 is_stmt 1 .LVL811: .loc 1 1841 4 .loc 1 1843 4 .loc 1 1844 4 .loc 1 1846 4 .loc 1 1847 4 .loc 1 1849 4 .loc 1 1850 61 .loc 1 1851 4 .loc 1 1840 9 is_stmt 0 extu a5,a4,8+4-1,8 .loc 1 1843 9 extu a2,a4,4+4-1,4 .loc 1 1849 15 addw a5,a5,a2 addiw a5,a5,-14 .loc 1 1846 9 extu a4,a4,2+2-1,2 .LVL812: .loc 1 1849 15 addw a5,a5,a4 .loc 1 1851 15 sllw a5,a3,a5 .LVL813: .L217: .loc 1 1856 2 is_stmt 1 .loc 1 1857 1 is_stmt 0 addw a0,a0,a5 ret .cfi_endproc .LFE58: .size DRAMC_get_dram_size, .-DRAMC_get_dram_size .section .text.dqs_gate_detect,"ax",@progbits .align 1 .globl dqs_gate_detect .type dqs_gate_detect, @function dqs_gate_detect: .LFB60: .loc 1 2093 1 is_stmt 1 .cfi_startproc .LVL814: .loc 1 2094 2 .loc 1 2095 2 .loc 1 2097 2 .LBB1846: .LBB1847: .loc 2 138 2 .loc 2 140 2 .LBE1847: .LBE1846: .loc 1 2093 1 is_stmt 0 addi sp,sp,-16 .cfi_def_cfa_offset 16 .LBB1850: .LBB1848: .loc 2 140 6 li a5,51392512 .LBE1848: .LBE1850: .loc 1 2093 1 sd ra,8(sp) sd s0,0(sp) .cfi_offset 1, -8 .cfi_offset 8, -16 .LBB1851: .LBB1849: .loc 2 140 6 lw a4,16(a5) .LVL815: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL816: #NO_APP .LBE1849: .LBE1851: .loc 1 2098 2 .loc 1 2098 4 is_stmt 0 slli a3,a4,41 bgez a3,.L224 .loc 1 2101 3 is_stmt 1 .LVL817: .LBB1852: .LBB1853: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a1,840(a5) .LVL818: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL819: #NO_APP .LBE1853: .LBE1852: .loc 1 2102 3 .loc 1 2102 15 is_stmt 0 extu a1,a1,24+2-1,24 .LVL820: .loc 1 2103 3 is_stmt 1 .LBB1854: .LBB1855: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw s0,968(a5) .LVL821: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL822: #NO_APP .LBE1855: .LBE1854: .loc 1 2104 3 .loc 1 2116 4 is_stmt 0 li a5,2 .loc 1 2104 15 extu s0,s0,24+2-1,24 .LVL823: .loc 1 2116 2 is_stmt 1 .loc 1 2116 4 is_stmt 0 bne a1,a5,.L233 lw a4,20(a0) li a5,-61440 addi a5,a5,-16 and a5,a5,a4 .loc 1 2116 26 discriminator 1 bne s0,a1,.L228 .loc 1 2119 3 is_stmt 1 .loc 1 2119 20 is_stmt 0 sw a5,20(a0) .LVL824: .loc 1 2120 3 is_stmt 1 lui a0,%hi(.LC14) .LVL825: addi a0,a0,%lo(.LC14) j .L235 .LVL826: .L224: .loc 1 2109 3 .loc 1 2110 3 .loc 1 2109 20 is_stmt 0 lw a5,20(a0) .loc 1 2110 20 li a4,4096 .LVL827: .loc 1 2109 20 andi a5,a5,-16 .loc 1 2110 20 or a5,a5,a4 sw a5,20(a0) .LVL828: .loc 1 2111 3 is_stmt 1 lui a0,%hi(.LC13) .LVL829: addi a0,a0,%lo(.LC13) .L235: .loc 1 2129 3 is_stmt 0 call sys_uart_printf .LVL830: .loc 1 2149 9 li a0,1 .L227: .loc 1 2150 1 ld ra,8(sp) .cfi_remember_state .cfi_restore 1 ld s0,0(sp) .cfi_restore 8 addi sp,sp,16 .cfi_def_cfa_offset 0 jr ra .LVL831: .L228: .cfi_restore_state .loc 1 2123 7 is_stmt 1 .loc 1 2126 3 .loc 1 2127 3 .loc 1 2128 3 .loc 1 2128 20 is_stmt 0 ori a5,a5,1 sw a5,20(a0) .LVL832: .loc 1 2129 3 is_stmt 1 lui a0,%hi(.LC15) .LVL833: addi a0,a0,%lo(.LC15) j .L235 .LVL834: .L233: .loc 1 2123 7 .loc 1 2132 7 .loc 1 2132 9 is_stmt 0 bnez a1,.L229 .loc 1 2135 3 is_stmt 1 .loc 1 2136 3 .loc 1 2137 3 .loc 1 2137 20 is_stmt 0 lw a5,20(a0) li a4,4096 addi a4,a4,1 andi a5,a5,-16 or a5,a5,a4 sw a5,20(a0) .LVL835: .loc 1 2138 3 is_stmt 1 lui a0,%hi(.LC16) .LVL836: addi a0,a0,%lo(.LC16) j .L235 .LVL837: .L229: .loc 1 2142 3 .loc 1 2142 6 is_stmt 0 lw a0,92(a0) .LVL838: li a5,536870912 and a0,a0,a5 .loc 1 2142 5 beqz a0,.L227 .loc 1 2144 4 is_stmt 1 lui a0,%hi(.LC17) addi a0,a0,%lo(.LC17) call sys_uart_printf .LVL839: .loc 1 2145 4 lui a0,%hi(.LC18) mv a1,s0 addi a0,a0,%lo(.LC18) call sys_uart_printf .LVL840: .loc 1 2147 10 is_stmt 0 li a0,0 j .L227 .cfi_endproc .LFE60: .size dqs_gate_detect, .-dqs_gate_detect .section .text.dramc_simple_wr_test,"ax",@progbits .align 1 .globl dramc_simple_wr_test .type dramc_simple_wr_test, @function dramc_simple_wr_test: .LFB63: .loc 1 2411 1 is_stmt 1 .cfi_startproc .LVL841: .loc 1 2416 2 .loc 1 2417 2 .loc 1 2418 2 .loc 1 2419 2 .loc 1 2419 26 is_stmt 0 srliw a0,a0,1 .LVL842: .loc 1 2411 1 addi sp,sp,-48 .cfi_def_cfa_offset 48 .loc 1 2419 12 slliw a4,a0,20 .loc 1 2423 3 li a2,19087360 .loc 1 2424 3 li a0,-19087360 .loc 1 2411 1 sdd s0,s1,(sp),1,4 sd ra,40(sp) sd s2,32(sp) .cfi_offset 8, -32 .cfi_offset 9, -24 .cfi_offset 1, -8 .cfi_offset 18, -16 .loc 1 2411 1 mv a7,a1 .loc 1 2419 12 mv s1,a4 .LVL843: .loc 1 2421 2 is_stmt 1 li a3,1073741824 .loc 1 2421 8 is_stmt 0 li a5,0 .loc 1 2423 3 addiw a2,a2,1383 .loc 1 2424 3 addiw a0,a0,-1384 .LVL844: .L237: .loc 1 2421 2 discriminator 1 bne a5,a7,.L238 .loc 1 2430 25 li a5,-19087360 .LVL845: .loc 1 2437 25 li a0,19087360 .loc 1 2427 8 li s0,0 .loc 1 2429 9 extu a4,a4,31,0 .LBB1856: .LBB1857: .loc 2 140 6 li t1,1073741824 .LBE1857: .LBE1856: .loc 1 2430 25 addiw a5,a5,-1384 .loc 1 2437 25 addiw a0,a0,1383 .L239: .LVL846: .loc 1 2427 2 discriminator 1 bne s0,a7,.L243 .loc 1 2444 2 is_stmt 1 lui a0,%hi(.LC21) addi a0,a0,%lo(.LC21) call sys_uart_printf .LVL847: .loc 1 2445 2 .loc 1 2445 9 is_stmt 0 li a0,0 j .L241 .LVL848: .L238: .loc 1 2423 3 is_stmt 1 discriminator 3 .LBB1859: .LBB1860: .loc 2 96 2 discriminator 3 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 discriminator 3 #NO_APP .LBE1860: .LBE1859: .loc 1 2423 3 is_stmt 0 discriminator 3 extu a1,a3,31,0 .LVL849: addw a6,a5,a2 .LBB1862: .LBB1861: .loc 2 97 2 discriminator 3 sw a6,0(a1) .LVL850: .LBE1861: .LBE1862: .loc 1 2424 3 is_stmt 1 discriminator 3 .LBB1863: .LBB1864: .loc 2 96 2 discriminator 3 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 discriminator 3 #NO_APP .LBE1864: .LBE1863: .loc 1 2424 3 is_stmt 0 discriminator 3 addw a6,a4,a3 addw a1,a5,a0 extu a6,a6,31,0 .LBB1866: .LBB1865: .loc 2 97 2 discriminator 3 sw a1,0(a6) .LVL851: .LBE1865: .LBE1866: .loc 1 2421 31 discriminator 3 addiw a5,a5,1 .LVL852: addiw a3,a3,4 j .L237 .LVL853: .L243: .loc 1 2429 3 is_stmt 1 slliw s2,s0,2 .loc 1 2429 9 is_stmt 0 extu a2,s2,31,0 .LVL854: .LBB1867: .LBB1858: .loc 2 138 2 is_stmt 1 .loc 2 140 2 .loc 2 140 6 is_stmt 0 add a2,a2,a4 .LVL855: lrw a1,t1,a2,0 .LVL856: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL857: #NO_APP .LBE1858: .LBE1867: .loc 1 2430 3 .loc 1 2430 25 is_stmt 0 addw a2,a5,s0 .loc 1 2430 5 beq a2,a1,.L240 .loc 1 2432 4 lui a0,%hi(.LC19) addi a0,a0,%lo(.LC19) sd a1,8(sp) sd a2,0(sp) .loc 1 2432 4 is_stmt 1 call sys_uart_printf .LVL858: .loc 1 2433 4 li a0,1073741824 addw s1,a0,s1 .LVL859: addw a3,s1,s2 .LVL860: .L245: .loc 1 2440 4 is_stmt 0 lui a0,%hi(.LC20) ldd a2,a1,(sp),0,4 addi a0,a0,%lo(.LC20) call sys_uart_printf .LVL861: .loc 1 2441 4 is_stmt 1 .loc 1 2441 11 is_stmt 0 li a0,1 .L241: .loc 1 2446 1 ld ra,40(sp) .cfi_remember_state .cfi_restore 1 ldd s0,s1,(sp),1,4 .cfi_restore 9 .cfi_restore 8 .LVL862: ld s2,32(sp) .cfi_restore 18 addi sp,sp,48 .cfi_def_cfa_offset 0 jr ra .LVL863: .L240: .cfi_restore_state .loc 1 2436 3 is_stmt 1 .LBB1868: .LBB1869: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lurw a1,t1,s2,0 .LVL864: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL865: #NO_APP .LBE1869: .LBE1868: .loc 1 2437 3 .loc 1 2437 25 is_stmt 0 addw a2,a0,s0 .loc 1 2437 5 beq a2,a1,.L242 .loc 1 2439 4 lui a0,%hi(.LC19) addi a0,a0,%lo(.LC19) sd a1,8(sp) sd a2,0(sp) .loc 1 2439 4 is_stmt 1 call sys_uart_printf .LVL866: .loc 1 2440 4 li a3,268435456 addw a3,a3,s0 slliw a3,a3,2 j .L245 .LVL867: .L242: .loc 1 2427 31 is_stmt 0 discriminator 2 addiw s0,s0,1 .LVL868: j .L239 .cfi_endproc .LFE63: .size dramc_simple_wr_test, .-dramc_simple_wr_test .section .text.mctl_vrefzq_init,"ax",@progbits .align 1 .globl mctl_vrefzq_init .type mctl_vrefzq_init, @function mctl_vrefzq_init: .LFB64: .loc 1 2453 1 is_stmt 1 .cfi_startproc .LVL869: .loc 1 2454 2 .loc 1 2456 5 .loc 1 2456 8 is_stmt 0 lw a5,92(a0) .loc 1 2456 7 slli a4,a5,46 bltz a4,.L246 .loc 1 2458 3 is_stmt 1 .LVL870: .LBB1884: .LBB1885: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a4,51392512 lw a5,272(a4) .LVL871: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL872: #NO_APP .LBE1885: .LBE1884: .loc 1 2459 3 .loc 1 2459 11 is_stmt 0 li a3,-2139062272 addi a3,a3,128 and a5,a5,a3 .LVL873: .loc 1 2460 3 is_stmt 1 .loc 1 2460 11 is_stmt 0 lw a3,60(a0) or a5,a5,a3 .LVL874: sext.w a5,a5 .LVL875: .loc 1 2461 3 is_stmt 1 .LBB1886: .LBB1887: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,272(a4) .LVL876: .LBE1887: .LBE1886: .loc 1 2463 6 .loc 1 2463 9 is_stmt 0 lw a5,92(a0) .LVL877: .loc 1 2463 8 slli a3,a5,47 bltz a3,.L246 .LVL878: .LBB1888: .LBB1889: .loc 1 2465 4 is_stmt 1 .LBB1890: .LBB1891: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,276(a4) .LVL879: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL880: #NO_APP .LBE1891: .LBE1890: .loc 1 2466 4 .loc 1 2466 12 is_stmt 0 andi a3,a5,-128 .LVL881: .loc 1 2467 4 is_stmt 1 .loc 1 2467 32 is_stmt 0 lw a5,64(a0) andi a5,a5,127 .loc 1 2467 12 or a5,a5,a3 .LVL882: .loc 1 2468 4 is_stmt 1 .LBB1892: .LBB1893: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,276(a4) .LVL883: .L246: .LBE1893: .LBE1892: .LBE1889: .LBE1888: .loc 1 2471 1 is_stmt 0 ret .cfi_endproc .LFE64: .size mctl_vrefzq_init, .-mctl_vrefzq_init .section .text.mctl_core_init,"ax",@progbits .align 1 .globl mctl_core_init .type mctl_core_init, @function mctl_core_init: .LFB65: .loc 1 2478 1 is_stmt 1 .cfi_startproc .LVL884: .loc 1 2479 2 .loc 1 2480 2 .loc 1 2478 1 is_stmt 0 addi sp,sp,-16 .cfi_def_cfa_offset 16 sd ra,8(sp) sd s0,0(sp) .cfi_offset 1, -8 .cfi_offset 8, -16 .loc 1 2478 1 mv s0,a0 .loc 1 2480 2 call mctl_sys_init .LVL885: .loc 1 2481 2 is_stmt 1 mv a0,s0 call mctl_vrefzq_init .LVL886: .loc 1 2482 2 mv a0,s0 call mctl_com_init .LVL887: .loc 1 2483 2 mv a0,s0 call mctl_phy_ac_remapping .LVL888: .loc 1 2484 2 mv a0,s0 call auto_set_timing_para .LVL889: .loc 1 2485 2 .loc 1 2485 12 is_stmt 0 mv a1,s0 .loc 1 2487 1 ld s0,0(sp) .cfi_restore 8 .LVL890: ld ra,8(sp) .cfi_restore 1 .loc 1 2485 12 li a0,0 .loc 1 2487 1 addi sp,sp,16 .cfi_def_cfa_offset 0 .loc 1 2485 12 tail mctl_channel_init .LVL891: .cfi_endproc .LFE65: .size mctl_core_init, .-mctl_core_init .section .text.auto_scan_dram_size,"ax",@progbits .align 1 .globl auto_scan_dram_size .type auto_scan_dram_size, @function auto_scan_dram_size: .LFB59: .loc 1 1904 1 is_stmt 1 .cfi_startproc .LVL892: .loc 1 1905 2 .loc 1 1906 2 .loc 1 1907 2 .loc 1 1908 2 .loc 1 1909 2 .loc 1 1911 2 .loc 1 1904 1 is_stmt 0 addi sp,sp,-128 .cfi_def_cfa_offset 128 sd s1,104(sp) sd s7,56(sp) sd ra,120(sp) sd s0,112(sp) sd s2,96(sp) sd s3,88(sp) sd s4,80(sp) sd s5,72(sp) sd s6,64(sp) sd s8,48(sp) sd s9,40(sp) sd s10,32(sp) sd s11,24(sp) .cfi_offset 9, -24 .cfi_offset 23, -72 .cfi_offset 1, -8 .cfi_offset 8, -16 .cfi_offset 18, -32 .cfi_offset 19, -40 .cfi_offset 20, -48 .cfi_offset 21, -56 .cfi_offset 22, -64 .cfi_offset 24, -80 .cfi_offset 25, -88 .cfi_offset 26, -96 .cfi_offset 27, -104 .loc 1 1904 1 mv s7,a0 .loc 1 1911 8 call mctl_core_init .LVL893: sext.w s1,a0 .LVL894: .loc 1 1912 2 is_stmt 1 .loc 1 1912 4 is_stmt 0 bnez s1,.L253 .loc 1 1913 4 is_stmt 1 lui a0,%hi(.LC22) addi a0,a0,%lo(.LC22) .LVL895: .L301: .loc 1 2080 4 is_stmt 0 call sys_uart_printf .LVL896: .L289: .loc 1 2084 1 ld ra,120(sp) .cfi_remember_state .cfi_restore 1 ld s0,112(sp) .cfi_restore 8 mv a0,s1 ld s2,96(sp) .cfi_restore 18 ld s1,104(sp) .cfi_restore 9 ld s3,88(sp) .cfi_restore 19 ld s4,80(sp) .cfi_restore 20 ld s5,72(sp) .cfi_restore 21 ld s6,64(sp) .cfi_restore 22 ld s7,56(sp) .cfi_restore 23 .LVL897: ld s8,48(sp) .cfi_restore 24 ld s9,40(sp) .cfi_restore 25 ld s10,32(sp) .cfi_restore 26 ld s11,24(sp) .cfi_restore 27 addi sp,sp,128 .cfi_def_cfa_offset 0 jr ra .LVL898: .L253: .cfi_restore_state .loc 1 1918 2 is_stmt 1 .loc 1 1918 25 is_stmt 0 lw a5,20(s7) .loc 1 1906 15 li s0,1 .loc 1 1918 4 extu a5,a5,12+4-1,12 bne a5,s0,.L255 .loc 1 1919 12 li s0,2 .L255: .LVL899: .loc 1 1920 2 is_stmt 1 .loc 1 1922 3 .loc 1 1947 11 is_stmt 0 li s4,-4096 .LBB1894: .LBB1895: .loc 1 128 8 li s3,4096 .LBE1895: .LBE1894: .loc 1 1935 19 li s6,51388416 li s10,0 .loc 1 1920 8 li s8,0 .loc 1 1909 15 li s1,1073741824 .LVL900: .loc 1 1908 15 li s9,1073741824 .loc 1 1940 3 li s2,64 .loc 1 1973 3 lui s5,%hi(.LC23) .LBB1899: .LBB1900: .loc 1 128 8 addi s11,s4,3 .LBE1900: .LBE1899: .LBB1903: .LBB1896: addi s3,s3,-1376 .LVL901: .L256: .LBE1896: .LBE1903: .loc 1 1940 3 is_stmt 1 extu a4,s9,31,0 .loc 1 1940 9 is_stmt 0 li a5,0 .LVL902: .L259: .loc 1 1942 4 is_stmt 1 andi a2,a5,1 sext.w a3,a4 bnez a2,.L258 not a3,a3 .L258: .LVL903: .LBB1904: .LBB1905: .loc 2 96 2 discriminator 4 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 discriminator 4 #NO_APP swia a3,(a4),4,0 .LVL904: .LBE1905: .LBE1904: .loc 1 1940 23 is_stmt 0 discriminator 4 addiw a5,a5,1 .LVL905: .loc 1 1940 3 discriminator 4 bne a5,s2,.L259 .loc 1 1944 3 is_stmt 1 .LVL906: .LBB1906: .LBB1907: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,0(s6) .LVL907: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL908: #NO_APP .LBE1907: .LBE1906: .loc 1 1945 3 .loc 1 127 2 .loc 1 128 2 .loc 1 1946 3 .loc 1 127 2 .loc 1 128 2 .loc 1 1947 3 .loc 1 1947 11 is_stmt 0 addi a4,s4,243 and a5,a5,a4 .LVL909: ori a5,a5,1776 .LVL910: .loc 1 1948 3 is_stmt 1 .LBB1908: .LBB1909: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,0(s6) .L260: .LBE1909: .LBE1908: .loc 1 1949 52 discriminator 1 .LVL911: .LBB1910: .LBB1911: .loc 2 138 2 discriminator 1 .loc 2 140 2 discriminator 1 .loc 2 140 6 is_stmt 0 discriminator 1 lw a4,0(s6) .LVL912: .loc 2 141 2 is_stmt 1 discriminator 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 1 .LVL913: #NO_APP .LBE1911: .LBE1910: .loc 1 1949 8 is_stmt 0 discriminator 1 bne a5,a4,.L260 .loc 1 1951 9 li a4,11 .loc 1 1953 30 li a7,1 .loc 1 1951 3 li a6,17 .LVL914: .L280: .loc 1 1953 4 is_stmt 1 .loc 1 1954 4 .loc 1 1955 4 .loc 1 1953 40 is_stmt 0 addiw a5,a4,11 .loc 1 1953 30 sllw a5,a7,a5 .loc 1 1953 8 addw a5,a5,s9 extu a5,a5,31,0 mv a2,s1 .loc 1 1955 10 li a3,0 .LVL915: .L263: .loc 1 1957 5 is_stmt 1 .loc 1 1957 51 is_stmt 0 andi a0,a3,1 mv a1,a2 bnez a0,.L261 not a1,a2 sext.w a1,a1 .L261: .LVL916: .loc 1 1958 5 is_stmt 1 discriminator 4 .LBB1912: .LBB1913: .loc 2 138 2 discriminator 4 .loc 2 140 2 discriminator 4 .loc 2 140 6 is_stmt 0 discriminator 4 lw a0,0(a5) .LVL917: .loc 2 141 2 is_stmt 1 discriminator 4 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 4 .LVL918: #NO_APP .LBE1913: .LBE1912: .loc 1 1958 7 is_stmt 0 discriminator 4 bne a1,a0,.L262 .loc 1 1960 6 is_stmt 1 discriminator 2 .LVL919: addiw a3,a3,1 .LVL920: addiw a2,a2,4 addi a5,a5,4 .loc 1 1955 4 is_stmt 0 discriminator 2 bne a3,s2,.L263 .LVL921: .L281: .loc 1 1972 3 is_stmt 1 .loc 1 1973 3 mv a2,a4 mv a1,s8 .LVL922: addi a0,s5,%lo(.LC23) sd a4,8(sp) call sys_uart_printf .LVL923: .loc 1 1974 3 .loc 1 1974 52 is_stmt 0 addiw a5,s10,4 .LVL924: .LBB1914: .LBB1915: .loc 1 127 2 is_stmt 1 .loc 1 128 2 .loc 1 127 8 is_stmt 0 lw a3,16(s7) .LBE1915: .LBE1914: .loc 1 1974 3 li a2,255 ld a4,8(sp) sllw a2,a2,a5 .LBB1918: .LBB1916: .loc 1 127 11 not a2,a2 .LBE1916: .LBE1918: .loc 1 1974 3 sllw a4,a4,a5 .LBB1919: .LBB1917: .loc 1 127 8 and a2,a2,a3 .loc 1 128 8 or a2,a2,a4 sw a2,16(s7) .LVL925: .LBE1917: .LBE1919: .loc 1 1976 3 is_stmt 1 .loc 1 1976 5 is_stmt 0 li a5,1 bne s8,a5,.L264 .loc 1 1978 4 is_stmt 1 .LVL926: .LBB1920: .LBB1921: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a4,51388416 lw a5,0(a4) .LVL927: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL928: #NO_APP .LBE1921: .LBE1920: .loc 1 1979 4 .loc 1 127 2 .loc 1 128 2 .loc 1 1980 4 .loc 1 127 2 .loc 1 128 2 .loc 1 1981 4 .LBB1922: .LBB1901: .loc 1 127 2 .loc 1 128 2 .LBE1901: .LBE1922: .loc 1 1982 4 .LBB1923: .LBB1924: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1924: .LBE1923: .LBB1926: .LBB1902: .loc 1 128 8 is_stmt 0 and a5,a5,s11 .LVL929: ori a5,a5,1700 .LBE1902: .LBE1926: .LBB1927: .LBB1925: .loc 2 97 2 sw a5,0(a4) .LVL930: .LBE1925: .LBE1927: .loc 1 1983 4 is_stmt 1 .loc 1 1983 19 is_stmt 0 li s9,1082130432 .LVL931: .L264: .loc 1 1987 3 is_stmt 1 .LBB1928: .LBB1929: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,0(s6) .LVL932: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL933: #NO_APP .LBE1929: .LBE1928: .loc 1 1988 3 .loc 1 127 2 .loc 1 128 2 .loc 1 1989 3 .loc 1 127 2 .loc 1 128 2 .loc 1 1990 3 .LBB1930: .LBB1931: .loc 1 127 2 .loc 1 128 2 .loc 1 128 8 is_stmt 0 and a5,a5,s11 .LVL934: ori a5,a5,1700 .LVL935: .LBE1931: .LBE1930: .loc 1 1991 3 is_stmt 1 .LBB1932: .LBB1933: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,0(s6) .L265: .LBE1933: .LBE1932: .loc 1 1996 52 discriminator 1 .LVL936: .LBB1934: .LBB1935: .loc 2 138 2 discriminator 1 .loc 2 140 2 discriminator 1 .loc 2 140 6 is_stmt 0 discriminator 1 lw a4,0(s6) .LVL937: .loc 2 141 2 is_stmt 1 discriminator 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 1 .LVL938: #NO_APP .LBE1935: .LBE1934: .loc 1 1996 8 is_stmt 0 discriminator 1 bne a4,a5,.L265 .LVL939: .loc 1 1999 4 is_stmt 1 discriminator 1 .loc 1 2000 4 discriminator 1 .loc 1 2001 4 discriminator 1 .loc 1 1999 8 is_stmt 0 discriminator 1 li a5,4096 .LVL940: addiw a5,a5,-2048 addw a5,s9,a5 extu a5,a5,31,0 mv a3,s1 .loc 1 2001 10 discriminator 1 li a4,0 .LVL941: .L269: .loc 1 2003 5 is_stmt 1 .loc 1 2003 51 is_stmt 0 andi a1,a4,1 mv a2,a3 bnez a1,.L267 not a2,a3 sext.w a2,a2 .L267: .LVL942: .loc 1 2004 5 is_stmt 1 discriminator 4 .LBB1936: .LBB1937: .loc 2 138 2 discriminator 4 .loc 2 140 2 discriminator 4 .loc 2 140 6 is_stmt 0 discriminator 4 lw a1,0(a5) .LVL943: .loc 2 141 2 is_stmt 1 discriminator 4 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 4 .LVL944: #NO_APP .LBE1937: .LBE1936: .loc 1 2004 7 is_stmt 0 discriminator 4 bne a2,a1,.L285 .loc 1 2006 6 is_stmt 1 discriminator 2 .LVL945: addiw a4,a4,1 .LVL946: addiw a3,a3,4 addi a5,a5,4 .loc 1 2001 4 is_stmt 0 discriminator 2 bne a4,s2,.L269 li a4,0 .L268: .loc 1 2016 3 is_stmt 1 .loc 1 2017 3 addiw a2,a4,1 .LVL947: lui a0,%hi(.LC24) slli a2,a2,2 mv a1,s8 addi a0,a0,%lo(.LC24) sd a4,8(sp) call sys_uart_printf .LVL948: .loc 1 2018 3 .loc 1 2018 51 is_stmt 0 addiw a3,s10,12 .LVL949: .LBB1938: .LBB1939: .loc 1 127 2 is_stmt 1 .loc 1 128 2 .loc 1 127 8 is_stmt 0 lw a2,16(s7) .LBE1939: .LBE1938: .loc 1 2018 3 li a5,15 ld a4,8(sp) sllw a5,a5,a3 .LBB1942: .LBB1940: .loc 1 127 11 not a5,a5 .loc 1 127 8 and a5,a5,a2 .LBE1940: .LBE1942: .loc 1 2018 3 sllw a4,a4,a3 .LBB1943: .LBB1941: .loc 1 128 8 or a5,a5,a4 sw a5,16(s7) .LVL950: .LBE1941: .LBE1943: .loc 1 2020 3 is_stmt 1 .loc 1 2020 5 is_stmt 0 li a5,1 bne s8,a5,.L270 .loc 1 2022 4 is_stmt 1 .LVL951: .LBB1944: .LBB1945: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a4,51388416 lw a5,0(a4) .LVL952: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL953: #NO_APP .LBE1945: .LBE1944: .loc 1 2023 4 .loc 1 127 2 .loc 1 128 2 .loc 1 2024 4 .loc 1 127 2 .loc 1 128 2 .loc 1 2025 4 .LBB1946: .LBB1897: .loc 1 127 2 .loc 1 128 2 .LBE1897: .LBE1946: .loc 1 2026 4 .LBB1947: .LBB1948: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1948: .LBE1947: .LBB1950: .LBB1898: .loc 1 128 8 is_stmt 0 and a5,a5,s11 .LVL954: or a5,a5,s3 .LBE1898: .LBE1950: .LBB1951: .LBB1949: .loc 2 97 2 sw a5,0(a4) .LVL955: .LBE1949: .LBE1951: .loc 1 2027 4 is_stmt 1 .loc 1 2027 19 is_stmt 0 li s9,1140850688 .LVL956: .L270: .loc 1 2031 3 is_stmt 1 .LBB1952: .LBB1953: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,0(s6) .LVL957: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL958: #NO_APP .LBE1953: .LBE1952: .loc 1 2032 3 .loc 1 127 2 .loc 1 128 2 .loc 1 2033 3 .loc 1 127 2 .loc 1 128 2 .loc 1 2034 3 .LBB1954: .LBB1955: .loc 1 127 2 .loc 1 128 2 .loc 1 128 8 is_stmt 0 and a5,a5,s11 .LVL959: or a5,a5,s3 .LVL960: .LBE1955: .LBE1954: .loc 1 2035 3 is_stmt 1 .LBB1956: .LBB1957: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,0(s6) .L271: .LBE1957: .LBE1956: .loc 1 2036 52 discriminator 1 .LVL961: .LBB1958: .LBB1959: .loc 2 138 2 discriminator 1 .loc 2 140 2 discriminator 1 .loc 2 140 6 is_stmt 0 discriminator 1 lw a4,0(s6) .LVL962: .loc 2 141 2 is_stmt 1 discriminator 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 1 .LVL963: #NO_APP .LBE1959: .LBE1958: .loc 1 2036 8 is_stmt 0 discriminator 1 bne a4,a5,.L271 .loc 1 2037 8 li a4,9 .loc 1 2039 33 li a7,1 .loc 1 2037 3 li a6,14 .LVL964: .L279: .loc 1 2039 4 is_stmt 1 .loc 1 2040 4 .loc 1 2041 4 .loc 1 2039 33 is_stmt 0 sllw a5,a7,a4 .loc 1 2039 8 addw a5,a5,s9 extu a5,a5,31,0 mv a2,s1 .loc 1 2041 10 li a3,0 .LVL965: .L274: .loc 1 2043 5 is_stmt 1 .loc 1 2043 51 is_stmt 0 andi a0,a3,1 mv a1,a2 bnez a0,.L272 not a1,a2 sext.w a1,a1 .L272: .LVL966: .loc 1 2044 5 is_stmt 1 discriminator 4 .LBB1960: .LBB1961: .loc 2 138 2 discriminator 4 .loc 2 140 2 discriminator 4 .loc 2 140 6 is_stmt 0 discriminator 4 lw a0,0(a5) .LVL967: .loc 2 141 2 is_stmt 1 discriminator 4 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 4 .LVL968: #NO_APP .LBE1961: .LBE1960: .loc 1 2044 7 is_stmt 0 discriminator 4 bne a1,a0,.L273 .loc 1 2046 6 is_stmt 1 discriminator 2 .LVL969: addiw a3,a3,1 .LVL970: addiw a2,a2,4 addi a5,a5,4 .loc 1 2041 4 is_stmt 0 discriminator 2 bne a3,s2,.L274 .loc 1 2051 4 is_stmt 1 .loc 1 2056 3 .loc 1 2056 5 is_stmt 0 li a5,13 beq a4,a5,.L275 .loc 1 2058 3 is_stmt 1 .loc 1 2059 3 .loc 1 2059 5 is_stmt 0 li a5,9 .loc 1 2060 6 li a3,0 .loc 1 2059 5 beq a4,a5,.L276 .LVL971: .L275: .loc 1 2062 4 is_stmt 1 .loc 1 2062 20 is_stmt 0 addiw a4,a4,-10 .loc 1 2062 6 li a3,1 sllw a3,a3,a4 .LVL972: .L276: .loc 1 2064 3 is_stmt 1 discriminator 2 lui a0,%hi(.LC25) mv a2,a3 mv a1,s8 .LVL973: addi a0,a0,%lo(.LC25) sd a3,8(sp) call sys_uart_printf .LVL974: .loc 1 2065 3 discriminator 2 .LBB1962: .LBB1963: .loc 1 127 2 discriminator 2 .loc 1 128 2 discriminator 2 .loc 1 127 8 is_stmt 0 discriminator 2 lw a4,16(s7) .LBE1963: .LBE1962: .loc 1 2065 3 discriminator 2 li a5,15 ld a3,8(sp) sllw a5,a5,s10 .LBB1966: .LBB1964: .loc 1 127 11 discriminator 2 not a5,a5 .loc 1 127 8 discriminator 2 and a5,a5,a4 .LBE1964: .LBE1966: .loc 1 2065 3 discriminator 2 sllw a4,a3,s10 .LBB1967: .LBB1965: .loc 1 128 8 discriminator 2 or a5,a5,a4 sext.w a5,a5 sw a5,16(s7) .LVL975: .LBE1965: .LBE1967: .loc 1 1920 28 discriminator 2 addiw s8,s8,1 .loc 1 1920 2 discriminator 2 bne s0,s8,.L277 .loc 1 2069 2 is_stmt 1 .loc 1 2069 4 is_stmt 0 li a4,2 .loc 1 2083 9 li s1,1 .LVL976: .loc 1 2069 4 bne s0,a4,.L289 .loc 1 2071 3 is_stmt 1 lw a3,20(s7) li a4,-4096 addi a4,a4,255 and a4,a4,a3 .loc 1 2071 5 is_stmt 0 extu a3,a5,16+16-1,16 extu a5,a5,15,0 bne a3,a5,.L278 .loc 1 2073 4 is_stmt 1 .loc 1 2074 4 is_stmt 0 lui a0,%hi(.LC26) .loc 1 2073 21 sw a4,20(s7) .loc 1 2074 4 is_stmt 1 addi a0,a0,%lo(.LC26) j .L301 .LVL977: .L277: .loc 1 1922 3 .loc 1 1922 5 is_stmt 0 li a5,1 bne s8,a5,.L257 .loc 1 1924 4 is_stmt 1 .LVL978: .LBB1968: .LBB1969: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a4,51388416 lw a5,0(a4) .LVL979: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL980: #NO_APP .LBE1969: .LBE1968: .loc 1 1925 4 .loc 1 127 2 .loc 1 128 2 .loc 1 1926 4 .loc 1 127 2 .loc 1 128 2 .loc 1 1927 4 .LBB1970: .LBB1971: .loc 1 127 2 .loc 1 128 2 .LBE1971: .LBE1970: .loc 1 1928 4 .LBB1973: .LBB1974: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1974: .LBE1973: .LBB1976: .LBB1972: .loc 1 128 8 is_stmt 0 and a5,a5,s11 .LVL981: ori a5,a5,1776 .LBE1972: .LBE1976: .LBB1977: .LBB1975: .loc 2 97 2 sw a5,0(a4) .LVL982: .LBE1975: .LBE1977: .loc 1 1929 4 is_stmt 1 .LBB1978: .LBB1979: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,4(a4) .LVL983: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL984: #NO_APP .LBE1979: .LBE1978: .loc 1 1930 4 .loc 1 127 2 .loc 1 128 2 .loc 1 1931 4 .loc 1 127 2 .loc 1 128 2 .loc 1 1932 4 .loc 1 127 2 .loc 1 128 2 .loc 1 1933 4 .loc 1 1934 4 .LBB1980: .LBB1981: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1981: .LBE1980: .loc 1 1933 12 is_stmt 0 and a5,a5,s11 .LVL985: ori a5,a5,1777 .LBB1983: .LBB1982: .loc 2 97 2 sw a5,4(a4) .LVL986: .LBE1982: .LBE1983: .loc 1 1935 4 is_stmt 1 .loc 1 1936 4 .loc 1 1936 20 is_stmt 0 li s1,1207959552 .loc 1 1935 19 li s9,1207959552 .LVL987: .L257: addiw s10,s10,16 addi s6,s6,4 .LVL988: j .L256 .LVL989: .L285: .loc 1 1997 22 li a4,1 .LVL990: j .L268 .LVL991: .L278: .loc 1 2078 4 is_stmt 1 .loc 1 2079 4 .loc 1 2079 21 is_stmt 0 ori a4,a4,256 .loc 1 2080 4 lui a0,%hi(.LC27) .loc 1 2079 21 sw a4,20(s7) .loc 1 2080 4 is_stmt 1 addi a0,a0,%lo(.LC27) j .L301 .LVL992: .L273: .loc 1 2051 4 .loc 1 2037 18 is_stmt 0 addiw a4,a4,1 .LVL993: .loc 1 2037 3 bne a4,a6,.L279 .loc 1 2057 6 li a4,13 j .L275 .LVL994: .L262: .loc 1 1965 4 is_stmt 1 .loc 1 1951 25 is_stmt 0 addiw a4,a4,1 .LVL995: .loc 1 1951 3 bne a4,a6,.L280 .loc 1 1971 6 li a4,16 j .L281 .cfi_endproc .LFE59: .size auto_scan_dram_size, .-auto_scan_dram_size .section .text.auto_scan_dram_rank_width,"ax",@progbits .align 1 .globl auto_scan_dram_rank_width .type auto_scan_dram_rank_width, @function auto_scan_dram_rank_width: .LFB61: .loc 1 2160 1 is_stmt 1 .cfi_startproc .LVL996: .loc 1 2161 2 .loc 1 2162 2 .loc 1 2163 2 .loc 1 2160 1 is_stmt 0 addi sp,sp,-32 .cfi_def_cfa_offset 32 .loc 1 2167 19 li a5,11534336 .loc 1 2160 1 sdd s0,s1,(sp),0,4 sd s2,16(sp) sd ra,24(sp) .cfi_offset 8, -32 .cfi_offset 9, -24 .cfi_offset 18, -16 .cfi_offset 1, -8 .loc 1 2167 19 addiw a5,a5,176 .loc 1 2164 15 lw s2,16(a0) .loc 1 2167 19 sw a5,16(a0) .loc 1 2169 19 lw a5,20(a0) .loc 1 2163 15 lw s1,92(a0) .LVL997: .loc 1 2164 2 is_stmt 1 .loc 1 2166 2 .loc 1 2167 2 .loc 1 2168 2 .loc 1 2169 2 .loc 1 2169 19 is_stmt 0 li a4,4096 andi a5,a5,-16 or a5,a5,a4 sw a5,20(a0) .loc 1 2172 2 is_stmt 1 .loc 1 2173 2 .loc 1 2173 19 is_stmt 0 andi a5,s1,-9 ori a5,a5,5 sw a5,92(a0) .loc 1 2175 2 is_stmt 1 .loc 1 2160 1 is_stmt 0 mv s0,a0 .loc 1 2175 12 call mctl_core_init .LVL998: .loc 1 2176 2 is_stmt 1 .LBB1984: .LBB1985: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a5,51392512 lw a5,16(a5) .LVL999: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1000: #NO_APP .LBE1985: .LBE1984: .loc 1 2178 2 .loc 1 2178 4 is_stmt 0 slli a4,a5,43 bgez a4,.L303 .LVL1001: .L305: .loc 1 2180 10 li a0,0 .L304: .loc 1 2192 1 ld ra,24(sp) .cfi_remember_state .cfi_restore 1 ldd s0,s1,(sp),0,4 .cfi_restore 9 .cfi_restore 8 .LVL1002: ld s2,16(sp) .cfi_restore 18 .LVL1003: addi sp,sp,32 .cfi_def_cfa_offset 0 jr ra .LVL1004: .L303: .cfi_restore_state .loc 1 2182 2 is_stmt 1 .loc 1 2182 12 is_stmt 0 mv a0,s0 call dqs_gate_detect .LVL1005: sext.w a0,a0 .LVL1006: .loc 1 2184 2 is_stmt 1 .loc 1 2184 4 is_stmt 0 beqz a0,.L305 .loc 1 2189 2 is_stmt 1 .loc 1 2189 19 is_stmt 0 sw s1,92(s0) .loc 1 2190 2 is_stmt 1 .loc 1 2190 19 is_stmt 0 sw s2,16(s0) .loc 1 2191 2 is_stmt 1 .loc 1 2191 9 is_stmt 0 li a0,1 .LVL1007: j .L304 .cfi_endproc .LFE61: .size auto_scan_dram_rank_width, .-auto_scan_dram_rank_width .section .text.auto_scan_dram_config,"ax",@progbits .align 1 .globl auto_scan_dram_config .type auto_scan_dram_config, @function auto_scan_dram_config: .LFB62: .loc 1 2358 1 is_stmt 1 .cfi_startproc .LVL1008: .loc 1 2359 3 .loc 1 2374 2 .loc 1 2374 5 is_stmt 0 lw a5,92(a0) .loc 1 2358 1 addi sp,sp,-32 .cfi_def_cfa_offset 32 sd s1,16(sp) sd ra,24(sp) sd s0,8(sp) .cfi_offset 9, -16 .cfi_offset 1, -8 .cfi_offset 8, -24 .loc 1 2374 4 slli a4,a5,49 .loc 1 2358 1 mv s1,a0 .loc 1 2374 4 bltz a4,.L311 .loc 1 2376 3 is_stmt 1 .loc 1 2376 13 is_stmt 0 call auto_scan_dram_rank_width .LVL1009: sext.w s0,a0 .LVL1010: .loc 1 2377 3 is_stmt 1 .loc 1 2377 5 is_stmt 0 bnez s0,.L311 .loc 1 2379 4 is_stmt 1 lui a0,%hi(.LC28) addi a0,a0,%lo(.LC28) .L316: .loc 1 2391 4 is_stmt 0 call sys_uart_printf .LVL1011: .loc 1 2392 4 is_stmt 1 .L312: .loc 1 2403 1 is_stmt 0 mv a0,s0 ld ra,24(sp) .cfi_remember_state .cfi_restore 1 ld s0,8(sp) .cfi_restore 8 ld s1,16(sp) .cfi_restore 9 .LVL1012: addi sp,sp,32 .cfi_def_cfa_offset 0 jr ra .LVL1013: .L311: .cfi_restore_state .loc 1 2386 2 is_stmt 1 .loc 1 2386 31 is_stmt 0 lw a5,92(s1) .loc 1 2386 4 andi a5,a5,1 bnez a5,.L313 .loc 1 2388 3 is_stmt 1 .loc 1 2388 13 is_stmt 0 mv a0,s1 call auto_scan_dram_size .LVL1014: sext.w s0,a0 .LVL1015: .loc 1 2389 3 is_stmt 1 .loc 1 2389 5 is_stmt 0 bnez s0,.L313 .loc 1 2391 4 is_stmt 1 lui a0,%hi(.LC29) addi a0,a0,%lo(.LC29) j .L316 .LVL1016: .L313: .loc 1 2397 2 .loc 1 2397 12 is_stmt 0 lw a5,92(s1) .loc 1 2402 10 li s0,1 .loc 1 2397 4 slli a4,a5,48 bltz a4,.L312 .loc 1 2399 3 is_stmt 1 .loc 1 2400 3 .loc 1 2400 20 is_stmt 0 li a4,24576 addi a4,a4,3 or a5,a5,a4 sw a5,92(s1) j .L312 .cfi_endproc .LFE62: .size auto_scan_dram_config, .-auto_scan_dram_config .section .text.init_DRAM,"ax",@progbits .align 1 .globl init_DRAM .type init_DRAM, @function init_DRAM: .LFB66: .loc 1 2524 1 is_stmt 1 .cfi_startproc .LVL1017: .loc 1 2525 2 .loc 1 2526 2 .loc 1 2527 2 .loc 1 2529 2 .loc 1 2534 2 .loc 1 2534 5 is_stmt 0 lw a5,92(a1) .loc 1 2524 1 addi sp,sp,-32 .cfi_def_cfa_offset 32 sd s0,8(sp) sd ra,24(sp) sd s1,16(sp) .cfi_offset 8, -24 .cfi_offset 1, -8 .cfi_offset 9, -16 .loc 1 2534 4 slli a4,a5,47 .loc 1 2524 1 mv s0,a1 .loc 1 2534 4 bltz a4,.L318 .loc 1 2537 3 is_stmt 1 .LVL1018: .LBB1986: .LBB1987: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a5,117506048 sw zero,596(a5) .LVL1019: .LBE1987: .LBE1986: .loc 1 2538 3 .LBB1988: .LBB1989: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li s1,50331648 lw a5,352(s1) .LVL1020: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1021: #NO_APP .LBE1989: .LBE1988: .loc 1 2539 3 .loc 1 2540 3 .LBB1990: .LBB1991: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1991: .LBE1990: .loc 1 2539 11 is_stmt 0 andi a5,a5,-4 .LVL1022: .LBB1993: .LBB1992: .loc 2 97 2 sw a5,352(s1) .LVL1023: .LBE1992: .LBE1993: .loc 1 2541 3 is_stmt 1 .LBB1994: .LBB1995: .loc 1 59 3 li a0,10 .LVL1024: call sdelay .LVL1025: .LBE1995: .LBE1994: .loc 1 2542 3 .LBB1996: .LBB1997: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,352(s1) .LVL1026: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1027: #NO_APP .LBE1997: .LBE1996: .loc 1 2543 3 .loc 1 2544 3 .loc 1 2544 11 is_stmt 0 andi a5,a5,-265 .LVL1028: .loc 1 2545 3 is_stmt 1 .LBB1998: .LBB1999: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,352(s1) .LVL1029: .LBE1999: .LBE1998: .loc 1 2546 3 .LBB2000: .LBB2001: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1030: #NO_APP .LBE2001: .LBE2000: .loc 1 2547 3 .loc 1 2548 3 .LBB2002: .LBB2003: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE2003: .LBE2002: .loc 1 2547 11 is_stmt 0 ori a5,a5,2 .LVL1031: .LBB2005: .LBB2004: .loc 2 97 2 sw a5,352(s1) .LVL1032: .LBE2004: .LBE2005: .loc 1 2549 3 is_stmt 1 .LBB2006: .LBB2007: .loc 1 59 3 li a0,10 call sdelay .LVL1033: .LBE2007: .LBE2006: .loc 1 2550 3 .LBB2008: .LBB2009: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,352(s1) .LVL1034: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1035: #NO_APP .LBE2009: .LBE2008: .loc 1 2551 3 .loc 1 2552 3 .LBB2010: .LBB2011: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE2011: .LBE2010: .loc 1 2551 11 is_stmt 0 ori a5,a5,1 .LVL1036: .LBB2013: .LBB2012: .loc 2 97 2 sw a5,352(s1) .LVL1037: .LBE2012: .LBE2013: .loc 1 2556 3 is_stmt 1 .LBB2014: .LBB2015: .loc 1 59 3 li a0,20 call sdelay .LVL1038: .LBE2015: .LBE2014: .loc 1 2557 3 .LBB2016: .LBB2017: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a1,364(s1) .LVL1039: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1040: #NO_APP .LBE2017: .LBE2016: .loc 1 2557 3 is_stmt 0 lui a0,%hi(.LC30) addi a0,a0,%lo(.LC30) call sys_uart_printf .LVL1041: .L319: .loc 1 2589 2 is_stmt 1 .loc 1 2589 12 is_stmt 0 call get_pmu_exist .LVL1042: mv s1,a0 .LVL1043: .loc 1 2590 2 is_stmt 1 mv a1,a0 lui a0,%hi(.LC32) .LVL1044: addi a0,a0,%lo(.LC32) call sys_uart_printf .LVL1045: .loc 1 2593 2 .loc 1 2593 4 is_stmt 0 bgez s1,.L320 .loc 1 2595 3 is_stmt 1 mv a0,s0 call dram_vol_set .LVL1046: .L321: .loc 1 2617 2 .loc 1 2617 24 is_stmt 0 lw a5,92(s0) .loc 1 2617 4 andi a5,a5,1 beqz a5,.L324 .LVL1047: .L327: .loc 1 2637 2 is_stmt 1 lui a1,%hi(.LC33) lui a0,%hi(.LC34) addi a1,a1,%lo(.LC33) addi a0,a0,%lo(.LC34) call sys_uart_printf .LVL1048: .loc 1 2638 2 lw a1,0(s0) lui a0,%hi(.LC35) addi a0,a0,%lo(.LC35) call sys_uart_printf .LVL1049: .loc 1 2639 2 lw a1,4(s0) lui a0,%hi(.LC36) addi a0,a0,%lo(.LC36) call sys_uart_printf .LVL1050: .loc 1 2640 2 .loc 1 2640 23 is_stmt 0 lw a5,12(s0) .loc 1 2640 4 andi a5,a5,1 bnez a5,.L325 .loc 1 2643 3 is_stmt 1 lui a0,%hi(.LC38) addi a0,a0,%lo(.LC38) call sys_uart_printf .LVL1051: j .L329 .LVL1052: .L318: .loc 1 2567 3 lui a0,%hi(.LC31) .LVL1053: addi a0,a0,%lo(.LC31) call sys_uart_printf .LVL1054: .loc 1 2569 3 .LBB2018: .LBB2019: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a5,50331648 lw a4,352(a5) .LVL1055: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1056: #NO_APP .LBE2019: .LBE2018: .LBB2020: .LBB2021: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE2021: .LBE2020: .loc 1 2569 3 is_stmt 0 ori a4,a4,256 .LVL1057: .LBB2023: .LBB2022: .loc 2 97 2 sw a4,352(a5) .LVL1058: .LBE2022: .LBE2023: .loc 1 2571 3 is_stmt 1 .LBB2024: .LBB2025: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE2025: .LBE2024: .LBB2027: .LBB2028: .loc 1 59 3 is_stmt 0 li a0,10 .LBE2028: .LBE2027: .LBB2030: .LBB2026: .loc 2 97 2 sw zero,360(a5) .LVL1059: .LBE2026: .LBE2030: .loc 1 2572 3 is_stmt 1 .LBB2031: .LBB2029: .loc 1 59 3 call sdelay .LVL1060: j .L319 .LVL1061: .L320: .LBE2029: .LBE2031: .loc 1 2599 3 .loc 1 2599 14 is_stmt 0 lw a5,4(s0) li a4,2 beq a5,a4,.L322 li a4,3 bne a5,a4,.L321 .loc 1 2605 6 is_stmt 1 li a0,1500 j .L354 .L322: .loc 1 2602 6 li a0,1800 .L354: .loc 1 2605 6 is_stmt 0 call set_ddr_voltage .LVL1062: .loc 1 2606 6 is_stmt 1 j .L321 .L324: .loc 1 2619 3 .loc 1 2619 13 is_stmt 0 mv a0,s0 call auto_scan_dram_config .LVL1063: sext.w a0,a0 .LVL1064: .loc 1 2620 3 is_stmt 1 .loc 1 2620 5 is_stmt 0 bnez a0,.L327 .LVL1065: .L356: .loc 1 2653 3 is_stmt 1 .loc 1 2653 10 is_stmt 0 li a0,0 .L328: .loc 1 2827 1 ld ra,24(sp) .cfi_remember_state .cfi_restore 1 ld s0,8(sp) .cfi_restore 8 .LVL1066: ld s1,16(sp) .cfi_restore 9 addi sp,sp,32 .cfi_def_cfa_offset 0 jr ra .LVL1067: .L325: .cfi_restore_state .loc 1 2641 3 is_stmt 1 lw a1,8(s0) lui a0,%hi(.LC37) addi a0,a0,%lo(.LC37) call sys_uart_printf .LVL1068: .L329: .loc 1 2644 2 .loc 1 2644 9 is_stmt 0 lw a1,28(s0) .loc 1 2644 4 andi a5,a1,68 beqz a5,.L330 .loc 1 2645 3 is_stmt 1 lui a0,%hi(.LC39) addi a0,a0,%lo(.LC39) call sys_uart_printf .LVL1069: .L331: .loc 1 2649 2 .loc 1 2649 12 is_stmt 0 mv a0,s0 call mctl_core_init .LVL1070: sext.w a0,a0 .LVL1071: .loc 1 2650 2 is_stmt 1 .loc 1 2650 4 is_stmt 0 bnez a0,.L332 .loc 1 2652 3 is_stmt 1 lui a0,%hi(.LC41) .LVL1072: addi a0,a0,%lo(.LC41) call sys_uart_printf .LVL1073: j .L356 .L330: .loc 1 2647 3 lui a0,%hi(.LC40) addi a0,a0,%lo(.LC40) call sys_uart_printf .LVL1074: j .L331 .LVL1075: .L332: .loc 1 2660 2 .loc 1 2660 10 is_stmt 0 lw s1,20(s0) .loc 1 2660 4 bgez s1,.L333 .loc 1 2662 3 is_stmt 1 .loc 1 2662 13 is_stmt 0 extu s1,s1,16+15-1,16 .LVL1076: .L334: .loc 1 2673 2 is_stmt 1 .loc 1 2673 5 is_stmt 0 lw a5,92(s0) .loc 1 2673 4 slli a4,a5,33 bgez a4,.L335 .loc 1 2675 3 is_stmt 1 .LVL1077: .LBB2032: .LBB2033: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1078: #NO_APP .LBE2033: .LBE2032: .loc 1 2676 3 .loc 1 2676 12 is_stmt 0 lw a5,72(s0) .loc 1 2676 5 bnez a5,.L336 .loc 1 2677 12 li a5,268435456 addi a5,a5,512 .L336: .LVL1079: .loc 1 2680 3 is_stmt 1 .LBB2034: .LBB2035: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a4,51392512 sw a5,160(a4) .LVL1080: .LBE2035: .LBE2034: .loc 1 2681 3 .LBB2036: .LBB2037: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a5,1034 .LVL1081: sw a5,156(a4) .LVL1082: .LBE2037: .LBE2036: .loc 1 2683 3 .LBB2038: .LBB2039: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,4(a4) .LVL1083: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1084: #NO_APP .LBE2039: .LBE2038: .loc 1 2684 3 .loc 1 2685 3 .LBB2040: .LBB2041: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE2041: .LBE2040: .loc 1 2686 3 is_stmt 0 lui a0,%hi(.LC43) .loc 1 2684 11 ori a5,a5,1 .LVL1085: .LBB2043: .LBB2042: .loc 2 97 2 sw a5,4(a4) .LVL1086: .LBE2042: .LBE2043: .loc 1 2686 3 is_stmt 1 addi a0,a0,%lo(.LC43) call sys_uart_printf .LVL1087: .L337: .loc 1 2698 34 .loc 1 2705 2 li a3,51392512 lw a4,256(a3) li a5,-61440 addi a5,a5,-1 and a5,a5,a4 .loc 1 2705 5 is_stmt 0 lw a4,92(s0) andi a4,a4,512 .loc 1 2705 4 bnez a4,.L338 .loc 1 2705 37 discriminator 1 lw a2,4(s0) li a4,6 bne a2,a4,.L339 .L338: .loc 1 2707 3 is_stmt 1 .LVL1088: .LBB2044: .LBB2045: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1089: #NO_APP .LBE2045: .LBE2044: .loc 1 2708 3 .loc 1 2709 3 .loc 1 2710 3 .LBB2046: .LBB2047: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE2047: .LBE2046: .loc 1 2709 11 is_stmt 0 li a4,20480 or a5,a5,a4 .LVL1090: .LBB2049: .LBB2048: .loc 2 97 2 li a4,51392512 sw a5,256(a4) .LVL1091: .L340: .LBE2048: .LBE2049: .loc 1 2718 40 is_stmt 1 .loc 1 2721 2 .LBB2050: .LBB2051: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a5,51392512 lw a4,320(a5) .LVL1092: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1093: #NO_APP .LBE2051: .LBE2050: .loc 1 2722 2 .loc 1 2723 2 .LBB2052: .LBB2053: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE2053: .LBE2052: .loc 1 2722 10 is_stmt 0 li a3,-2147483648 or a4,a4,a3 .LVL1094: .LBB2055: .LBB2054: .loc 2 97 2 sw a4,320(a5) .LVL1095: .LBE2054: .LBE2055: .loc 1 2730 2 is_stmt 1 .loc 1 2730 5 is_stmt 0 lw a4,92(s0) andi a4,a4,256 .loc 1 2730 4 beqz a4,.L341 .loc 1 2732 3 is_stmt 1 .LVL1096: .LBB2056: .LBB2057: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a4,184(a5) .LVL1097: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1098: #NO_APP .LBE2057: .LBE2056: .loc 1 2733 3 .loc 1 2734 3 .loc 1 2735 3 .LBB2058: .LBB2059: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE2059: .LBE2058: .loc 1 2734 11 is_stmt 0 ori a4,a4,768 .LVL1099: .LBB2061: .LBB2060: .loc 2 97 2 sw a4,184(a5) .LVL1100: .L341: .LBE2060: .LBE2061: .loc 1 2736 29 is_stmt 1 .loc 1 2738 2 .loc 1 2738 5 is_stmt 0 lw a3,92(s0) li a4,51392512 lw a5,264(a4) .loc 1 2738 4 slli a2,a3,37 bgez a2,.L342 .loc 1 2740 3 is_stmt 1 .LVL1101: .LBB2062: .LBB2063: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1102: #NO_APP .LBE2063: .LBE2062: .loc 1 2741 3 .loc 1 2742 3 .LBB2064: .LBB2065: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE2065: .LBE2064: .loc 1 2741 11 is_stmt 0 li a3,-8192 addi a3,a3,-1 and a5,a5,a3 .LVL1103: .L355: .LBB2066: .LBB2067: .loc 2 97 2 sw a5,264(a4) .LBE2067: .LBE2066: .loc 1 2750 34 is_stmt 1 .loc 1 2752 2 .loc 1 2752 4 is_stmt 0 lw a4,4(s0) li a5,7 bne a4,a5,.L344 .loc 1 2754 3 is_stmt 1 .LVL1104: .LBB2069: .LBB2070: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a3,51392512 lw a5,124(a3) .LVL1105: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1106: #NO_APP .LBE2070: .LBE2069: .loc 1 2755 3 .loc 1 2755 11 is_stmt 0 li a4,-983040 addi a4,a4,-1 and a5,a5,a4 .LVL1107: .loc 1 2756 3 is_stmt 1 .loc 1 2757 3 .LBB2071: .LBB2072: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE2072: .LBE2071: .loc 1 2756 11 is_stmt 0 li a4,65536 or a5,a5,a4 .LVL1108: .LBB2074: .LBB2073: .loc 2 97 2 sw a5,124(a3) .LVL1109: .L344: .LBE2073: .LBE2074: .loc 1 2800 2 is_stmt 1 call dram_enable_all_master .LVL1110: .loc 1 2801 2 .loc 1 2801 5 is_stmt 0 lw a5,92(s0) .loc 1 2801 4 slli a4,a5,35 bltz a4,.L345 .L346: .loc 1 2825 2 is_stmt 1 call handler_super_standby .LVL1111: .loc 1 2826 2 .loc 1 2826 9 is_stmt 0 sext.w a0,s1 j .L328 .LVL1112: .L333: .loc 1 2666 3 is_stmt 1 .loc 1 2666 15 is_stmt 0 call DRAMC_get_dram_size .LVL1113: sext.w s1,a0 .LVL1114: .loc 1 2667 3 is_stmt 1 lui a0,%hi(.LC42) mv a1,s1 addi a0,a0,%lo(.LC42) call sys_uart_printf .LVL1115: .loc 1 2668 3 .loc 1 2668 40 is_stmt 0 lhu a5,20(s0) .loc 1 2668 63 slliw a4,s1,16 .loc 1 2668 50 or a5,a5,a4 .loc 1 2668 20 sw a5,20(s0) j .L334 .L335: .loc 1 2690 3 is_stmt 1 .LVL1116: .LBB2075: .LBB2076: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a5,51392512 lw a4,160(a5) .LVL1117: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1118: #NO_APP .LBE2076: .LBE2075: .loc 1 2691 3 .loc 1 2692 3 .LBB2077: .LBB2078: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE2078: .LBE2077: .loc 1 2691 11 is_stmt 0 li a3,-65536 and a4,a4,a3 .LVL1119: .LBB2080: .LBB2079: .loc 2 97 2 sw a4,160(a5) .LVL1120: .LBE2079: .LBE2080: .loc 1 2694 3 is_stmt 1 .LBB2081: .LBB2082: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a4,4(a5) .LVL1121: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1122: #NO_APP .LBE2082: .LBE2081: .loc 1 2695 3 .loc 1 2696 3 .LBB2083: .LBB2084: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE2084: .LBE2083: .loc 1 2695 11 is_stmt 0 andi a4,a4,-2 .LVL1123: .LBB2086: .LBB2085: .loc 2 97 2 sw a4,4(a5) .LVL1124: j .L337 .LVL1125: .L339: .LBE2085: .LBE2086: .loc 1 2715 3 is_stmt 1 .LBB2087: .LBB2088: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1126: #NO_APP .LBE2088: .LBE2087: .loc 1 2716 3 .loc 1 2717 3 .LBB2089: .LBB2090: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,256(a3) .LVL1127: j .L340 .LVL1128: .L342: .LBE2090: .LBE2089: .loc 1 2747 3 .LBB2091: .LBB2092: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1129: #NO_APP .LBE2092: .LBE2091: .loc 1 2748 3 .loc 1 2749 3 .LBB2093: .LBB2068: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE2068: .LBE2093: .loc 1 2748 11 is_stmt 0 li a3,8192 or a5,a5,a3 .LVL1130: j .L355 .LVL1131: .L345: .loc 1 2803 2 is_stmt 1 .LBB2094: .LBB2095: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a5,117440512 lw a5,1492(a5) .LVL1132: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1133: #NO_APP .LBE2095: .LBE2094: .loc 1 2803 4 is_stmt 0 slli a4,a5,47 bltz a4,.L346 .loc 1 2807 3 is_stmt 1 .loc 1 2807 13 is_stmt 0 li a1,4096 mv a0,s1 call dramc_simple_wr_test .LVL1134: sext.w a0,a0 .LVL1135: .loc 1 2809 3 is_stmt 1 .loc 1 2809 5 is_stmt 0 beqz a0,.L346 j .L356 .cfi_endproc .LFE66: .size init_DRAM, .-init_DRAM .section .text.mctl_init,"ax",@progbits .align 1 .globl mctl_init .type mctl_init, @function mctl_init: .LFB67: .loc 1 2837 1 is_stmt 1 .cfi_startproc .loc 1 2838 2 .LVL1136: .loc 1 2840 2 .loc 1 2843 3 .loc 1 2844 3 .loc 1 2845 3 .loc 1 2846 3 .loc 1 2847 3 .loc 1 2848 3 .loc 1 2849 3 .loc 1 2850 3 .loc 1 2851 3 .loc 1 2852 3 .loc 1 2853 3 .loc 1 2854 3 .loc 1 2855 3 .loc 1 2856 3 .loc 1 2857 3 .loc 1 2858 3 .loc 1 2859 3 .loc 1 2860 3 .loc 1 2861 3 .loc 1 2862 3 .loc 1 2863 3 .loc 1 2864 3 .loc 1 2865 3 .loc 1 2866 3 .loc 1 2843 33 is_stmt 0 li a4,1 slli a5,a4,33 .loc 1 2837 1 addi sp,sp,-112 .cfi_def_cfa_offset 112 .loc 1 2843 33 addi a5,a5,528 sd a5,0(sp) .loc 1 2845 33 li a5,8093696 addi a5,a5,-1031 sd a5,8(sp) .loc 1 2847 33 li a5,210 sd a5,16(sp) .loc 1 2849 33 lui a5,%hi(.LC44) ld a5,%lo(.LC44)(a5) .loc 1 2863 33 slli a4,a4,50 .loc 1 2924 13 mv a1,sp .loc 1 2849 33 sd a5,24(sp) .loc 1 2853 33 lui a5,%hi(.LC45) ld a5,%lo(.LC45)(a5) .loc 1 2924 13 li a0,0 .loc 1 2837 1 sd ra,104(sp) .cfi_offset 1, -8 .loc 1 2853 33 sd a5,40(sp) .loc 1 2855 33 lui a5,%hi(.LC46) ld a5,%lo(.LC46)(a5) .loc 1 2851 33 sd zero,32(sp) .loc 1 2861 33 sd zero,72(sp) .loc 1 2855 33 sd a5,48(sp) .loc 1 2857 33 li a5,151588864 addi a5,a5,-1783 slli a5,a5,35 sd a5,56(sp) .loc 1 2859 33 lui a5,%hi(.LC47) ld a5,%lo(.LC47)(a5) .loc 1 2863 33 sd a4,80(sp) .loc 1 2859 33 sd a5,64(sp) .loc 1 2865 33 li a5,13 slli a5,a5,58 addi a5,a5,69 sd a5,88(sp) .loc 1 2924 3 is_stmt 1 .loc 1 2924 13 is_stmt 0 call init_DRAM .LVL1137: .loc 1 2925 3 is_stmt 1 .loc 1 2945 1 is_stmt 0 ld ra,104(sp) .cfi_restore 1 seqz a0,a0 .LVL1138: addi sp,sp,112 .cfi_def_cfa_offset 0 jr ra .cfi_endproc .LFE67: .size mctl_init, .-mctl_init .section .rodata .align 3 .set .LANCHOR0,. + 0 .LC0: .word 0 .word 1 .word 2 .word 3 .word 2 .word 3 .word 3 .word 3 .word 0 .word 0 .word 0 .word 6 .word 6 .word 6 .word 5 .word 5 .word 5 .word 5 .word 5 .word 0 .word 0 .word 0 .word 0 .word 2 .word 4 .word 2 .word 6 .word 5 .word 5 .word 5 .word 0 .word 0 .word 0 .word 3 .word 3 .word 3 .word 2 .word 2 .word 1 .word 1 .word 1 .word 0 .word 0 .word 0 .LC1: .word 0 .word 1 .word 3 .word 3 .word 3 .word 3 .word 3 .word 4 .word 3 .word 3 .word 3 .word 3 .word 3 .word 4 .word 4 .word 3 .word 3 .word 3 .word 3 .word 3 .word 3 .word 3 .word 0 .word 3 .word 3 .word 1 .word 6 .word 6 .word 5 .word 6 .word 3 .word 3 .word 3 .word 5 .word 5 .word 6 .word 6 .word 4 .word 5 .word 3 .word 3 .word 3 .word 3 .word 3 .LC2: .byte 1 .byte 9 .byte 3 .byte 7 .byte 8 .byte 18 .byte 4 .byte 13 .byte 5 .byte 6 .byte 10 .byte 2 .byte 14 .byte 12 .byte 0 .byte 0 .byte 21 .byte 17 .byte 20 .byte 19 .byte 11 .byte 22 .zero 2 .LC3: .byte 4 .byte 9 .byte 3 .byte 7 .byte 8 .byte 18 .byte 1 .byte 13 .byte 2 .byte 6 .byte 10 .byte 5 .byte 14 .byte 12 .byte 0 .byte 0 .byte 21 .byte 17 .byte 20 .byte 19 .byte 11 .byte 22 .zero 2 .LC4: .byte 1 .byte 7 .byte 8 .byte 12 .byte 10 .byte 18 .byte 4 .byte 13 .byte 5 .byte 6 .byte 3 .byte 2 .byte 9 .byte 0 .byte 0 .byte 0 .byte 21 .byte 17 .byte 20 .byte 19 .byte 11 .byte 22 .zero 2 .LC5: .byte 4 .byte 12 .byte 10 .byte 7 .byte 8 .byte 18 .byte 1 .byte 13 .byte 2 .byte 6 .byte 3 .byte 5 .byte 9 .byte 0 .byte 0 .byte 0 .byte 21 .byte 17 .byte 20 .byte 19 .byte 11 .byte 22 .zero 2 .LC6: .byte 13 .byte 2 .byte 7 .byte 9 .byte 12 .byte 19 .byte 5 .byte 1 .byte 6 .byte 3 .byte 4 .byte 8 .byte 10 .byte 0 .byte 0 .byte 0 .byte 21 .byte 22 .byte 18 .byte 17 .byte 11 .byte 20 .zero 2 .LC7: .byte 3 .byte 10 .byte 7 .byte 13 .byte 9 .byte 11 .byte 1 .byte 2 .byte 4 .byte 6 .byte 8 .byte 5 .byte 12 .byte 0 .byte 0 .byte 0 .byte 20 .byte 1 .byte 0 .byte 21 .byte 22 .byte 17 .zero 2 .LC8: .byte 3 .byte 2 .byte 4 .byte 7 .byte 9 .byte 1 .byte 17 .byte 12 .byte 18 .byte 14 .byte 13 .byte 8 .byte 15 .byte 6 .byte 10 .byte 5 .byte 19 .byte 22 .byte 16 .byte 21 .byte 20 .byte 11 .section .rodata.cst4,"aM",@progbits,4 .align 2 .LC9: .word 1103101952 .LC10: .word 1207959552 .section .rodata.cst8,"aM",@progbits,8 .align 3 .LC44: .dword 8589938291 .LC45: .dword 86026940813089170 .LC46: .dword -5442467564036460479 .LC47: .dword 1594575663124185160 .section .rodata.str1.8,"aMS",@progbits,1 .align 3 .LC11: .string "ddr_efuse_type: 0x%x\r\n" .zero 2 .LC12: .string "ZQ calibration error,check external 240 ohm resistor.\r\n" .zero 1 .LC13: .string "[AUTO DEBUG] two rank and full DQ!\r\n" .zero 4 .LC14: .string "[AUTO DEBUG] single rank and full DQ!\r\n" .zero 1 .LC15: .string "[AUTO DEBUG] single rank and half DQ!\r\n" .zero 1 .LC16: .string "[AUTO DEBUG] dual rank and half DQ!\r\n" .zero 3 .LC17: .string "DX0 state:%d\r\n" .zero 2 .LC18: .string "DX1 state:%d\r\n" .zero 2 .LC19: .string "DRAM simple test FAIL.\r\n" .LC20: .string "%x != %x at address %x\r\n" .LC21: .string "DRAM simple test OK.\r\n" .zero 2 .LC22: .string "[ERROR DEBUG] DRAM initial error : 0!\r\n" .zero 1 .LC23: .string "[AUTO DEBUG] rank %d row = %d \r\n" .LC24: .string "[AUTO DEBUG] rank %d bank = %d \r\n" .zero 7 .LC25: .string "[AUTO DEBUG] rank %d page size = %d KB \r\n" .zero 7 .LC26: .string "rank1 config same as rank0\r\n" .zero 4 .LC27: .string "rank1 config different from rank0\r\n" .zero 5 .LC28: .string "[ERROR DEBUG] auto scan dram rank&width fail !\r\n" .LC29: .string "[ERROR DEBUG] auto scan dram size fail !\r\n" .zero 6 .LC30: .string "ZQ value = 0x%x***********\r\n" .zero 4 .LC31: .string "DRAM only have internal ZQ!!\r\n" .zero 2 .LC32: .string "get_pmu_exist() = %d\r\n" .zero 2 .LC33: .string "V0.24" .zero 2 .LC34: .string "DRAM BOOT DRIVE INFO: %s\r\n" .zero 6 .LC35: .string "DRAM CLK = %d MHz\r\n" .zero 5 .LC36: .string "DRAM Type = %d (2:DDR2,3:DDR3)\r\n" .LC37: .string "DRAMC ZQ value: 0x%x\r\n" .zero 2 .LC38: .string "DRAMC read ODT off.\r\n" .zero 2 .LC39: .string "DRAM ODT value: 0x%x.\r\n" .zero 1 .LC40: .string "DRAM ODT off.\r\n" .zero 1 .LC41: .string "DRAM initial error : 1 !\r\n" .zero 6 .LC42: .string "DRAM SIZE =%d M\r\n" .zero 7 .LC43: .string "Enable Auto SR\r\n" .text .Letext0: .file 3 "/tina-d1/lichee/brandy-2.0/spl/include/asm-generic/int-ll64.h" .file 4 "/tina-d1/lichee/brandy-2.0/tools/toolchain/riscv64-linux-x86_64-20200528/lib/gcc/riscv64-unknown-linux-gnu/8.1.0/include/stddef.h" .file 5 "mctl_hal.h" .file 6 "" .section .debug_info,"",@progbits .Ldebug_info0: .4byte 0x6263 .2byte 0x4 .4byte .Ldebug_abbrev0 .byte 0x8 .byte 0x1 .4byte .LASF146 .byte 0xc .4byte .LASF147 .4byte .LASF148 .4byte .Ldebug_ranges0+0x1670 .8byte 0 .4byte .Ldebug_line0 .byte 0x2 .byte 0x4 .byte 0x7 .4byte .LASF0 .byte 0x2 .byte 0x4 .byte 0x4 .4byte .LASF1 .byte 0x3 .byte 0x4 .byte 0x5 .string "int" .byte 0x2 .byte 0x8 .byte 0x7 .4byte .LASF2 .byte 0x2 .byte 0x2 .byte 0x7 .4byte .LASF3 .byte 0x2 .byte 0x8 .byte 0x5 .4byte .LASF4 .byte 0x2 .byte 0x1 .byte 0x8 .4byte .LASF5 .byte 0x2 .byte 0x8 .byte 0x5 .4byte .LASF6 .byte 0x2 .byte 0x1 .byte 0x6 .4byte .LASF7 .byte 0x2 .byte 0x1 .byte 0x8 .4byte .LASF8 .byte 0x2 .byte 0x2 .byte 0x5 .4byte .LASF9 .byte 0x4 .4byte .LASF10 .byte 0x3 .byte 0x1a .byte 0x16 .4byte 0x29 .byte 0x4 .4byte .LASF11 .byte 0x3 .byte 0x1e .byte 0x2a .4byte 0x8e .byte 0x2 .byte 0x8 .byte 0x7 .4byte .LASF12 .byte 0x5 .string "u32" .byte 0x3 .byte 0x29 .byte 0xf .4byte 0x76 .byte 0x5 .string "u64" .byte 0x3 .byte 0x2b .byte 0xf .4byte 0x82 .byte 0x4 .4byte .LASF13 .byte 0x4 .byte 0xd8 .byte 0x17 .4byte 0x3e .byte 0x2 .byte 0x10 .byte 0x4 .4byte .LASF14 .byte 0x6 .4byte .LASF149 .byte 0x60 .byte 0x5 .byte 0x8b .byte 0x10 .4byte 0x206 .byte 0x7 .4byte .LASF15 .byte 0x5 .byte 0x8e .byte 0x16 .4byte 0x29 .byte 0 .byte 0x7 .4byte .LASF16 .byte 0x5 .byte 0x8f .byte 0x16 .4byte 0x29 .byte 0x4 .byte 0x7 .4byte .LASF17 .byte 0x5 .byte 0x91 .byte 0x19 .4byte 0x29 .byte 0x8 .byte 0x7 .4byte .LASF18 .byte 0x5 .byte 0x92 .byte 0x13 .4byte 0x29 .byte 0xc .byte 0x7 .4byte .LASF19 .byte 0x5 .byte 0x95 .byte 0x10 .4byte 0x29 .byte 0x10 .byte 0x7 .4byte .LASF20 .byte 0x5 .byte 0x96 .byte 0x13 .4byte 0x29 .byte 0x14 .byte 0x7 .4byte .LASF21 .byte 0x5 .byte 0x99 .byte 0x10 .4byte 0x29 .byte 0x18 .byte 0x7 .4byte .LASF22 .byte 0x5 .byte 0x9a .byte 0x13 .4byte 0x29 .byte 0x1c .byte 0x7 .4byte .LASF23 .byte 0x5 .byte 0x9b .byte 0x13 .4byte 0x29 .byte 0x20 .byte 0x7 .4byte .LASF24 .byte 0x5 .byte 0x9c .byte 0x13 .4byte 0x29 .byte 0x24 .byte 0x7 .4byte .LASF25 .byte 0x5 .byte 0x9d .byte 0x13 .4byte 0x29 .byte 0x28 .byte 0x7 .4byte .LASF26 .byte 0x5 .byte 0x9e .byte 0x13 .4byte 0x29 .byte 0x2c .byte 0x7 .4byte .LASF27 .byte 0x5 .byte 0x9f .byte 0x13 .4byte 0x29 .byte 0x30 .byte 0x7 .4byte .LASF28 .byte 0x5 .byte 0xa0 .byte 0x13 .4byte 0x29 .byte 0x34 .byte 0x7 .4byte .LASF29 .byte 0x5 .byte 0xa1 .byte 0x13 .4byte 0x29 .byte 0x38 .byte 0x7 .4byte .LASF30 .byte 0x5 .byte 0xa2 .byte 0x13 .4byte 0x29 .byte 0x3c .byte 0x7 .4byte .LASF31 .byte 0x5 .byte 0xa3 .byte 0x13 .4byte 0x29 .byte 0x40 .byte 0x7 .4byte .LASF32 .byte 0x5 .byte 0xa6 .byte 0x13 .4byte 0x29 .byte 0x44 .byte 0x7 .4byte .LASF33 .byte 0x5 .byte 0xa7 .byte 0x13 .4byte 0x29 .byte 0x48 .byte 0x7 .4byte .LASF34 .byte 0x5 .byte 0xa8 .byte 0x13 .4byte 0x29 .byte 0x4c .byte 0x7 .4byte .LASF35 .byte 0x5 .byte 0xa9 .byte 0x13 .4byte 0x29 .byte 0x50 .byte 0x7 .4byte .LASF36 .byte 0x5 .byte 0xaa .byte 0x13 .4byte 0x29 .byte 0x54 .byte 0x7 .4byte .LASF37 .byte 0x5 .byte 0xab .byte 0x13 .4byte 0x29 .byte 0x58 .byte 0x7 .4byte .LASF38 .byte 0x5 .byte 0xac .byte 0x13 .4byte 0x29 .byte 0x5c .byte 0 .byte 0x4 .4byte .LASF39 .byte 0x5 .byte 0xad .byte 0x2 .4byte 0xc0 .byte 0x8 .4byte .LASF42 .byte 0x1 .2byte 0xb14 .byte 0xe .4byte 0x29 .8byte .LFB67 .8byte .LFE67-.LFB67 .byte 0x1 .byte 0x9c .4byte 0x271 .byte 0x9 .4byte .LASF40 .byte 0x1 .2byte 0xb16 .byte 0xd .4byte 0x37 .4byte .LLST753 .byte 0xa .4byte .LASF41 .byte 0x1 .2byte 0xb18 .byte 0x10 .4byte 0x206 .byte 0x3 .byte 0x91 .byte 0x90,0x7f .byte 0xb .8byte .LVL1137 .4byte 0x271 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x30 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x72 .byte 0 .byte 0 .byte 0 .byte 0x8 .4byte .LASF43 .byte 0x1 .2byte 0x9db .byte 0xc .4byte 0x37 .8byte .LFB66 .8byte .LFE66-.LFB66 .byte 0x1 .byte 0x9c .4byte 0xe2f .byte 0xd .4byte .LASF44 .byte 0x1 .2byte 0x9db .byte 0x1a .4byte 0x37 .4byte .LLST669 .byte 0xd .4byte .LASF45 .byte 0x1 .2byte 0x9db .byte 0x2f .4byte 0xe2f .4byte .LLST670 .byte 0x9 .4byte .LASF40 .byte 0x1 .2byte 0x9dd .byte 0xf .4byte 0x29 .4byte .LLST671 .byte 0x9 .4byte .LASF46 .byte 0x1 .2byte 0x9de .byte 0xf .4byte 0x29 .4byte .LLST672 .byte 0x9 .4byte .LASF47 .byte 0x1 .2byte 0x9df .byte 0xf .4byte 0x29 .4byte .LLST673 .byte 0x9 .4byte .LASF48 .byte 0x1 .2byte 0x9e1 .byte 0xa .4byte 0x37 .4byte .LLST674 .byte 0xe .4byte 0x605e .8byte .LBB1986 .8byte .LBE1986-.LBB1986 .byte 0x1 .2byte 0x9e9 .byte 0x3 .4byte 0x32a .byte 0xf .4byte 0x6077 .4byte .LLST675 .byte 0xf .4byte 0x606b .4byte .LLST676 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1988 .8byte .LBE1988-.LBB1988 .byte 0x1 .2byte 0x9ea .byte 0xd .4byte 0x36c .byte 0xf .4byte 0x6039 .4byte .LLST677 .byte 0x10 .8byte .LBB1989 .8byte .LBE1989-.LBB1989 .byte 0x11 .4byte 0x6045 .4byte .LLST678 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1990 .4byte .Ldebug_ranges0+0x13d0 .byte 0x1 .2byte 0x9ec .byte 0x3 .4byte 0x398 .byte 0xf .4byte 0x6077 .4byte .LLST679 .byte 0xf .4byte 0x606b .4byte .LLST680 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1994 .8byte .LBE1994-.LBB1994 .byte 0x1 .2byte 0x9ed .byte 0x3 .4byte 0x3d2 .byte 0xf .4byte 0x5f3c .4byte .LLST681 .byte 0xb .8byte .LVL1025 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1996 .8byte .LBE1996-.LBB1996 .byte 0x1 .2byte 0x9ee .byte 0xd .4byte 0x414 .byte 0xf .4byte 0x6039 .4byte .LLST682 .byte 0x10 .8byte .LBB1997 .8byte .LBE1997-.LBB1997 .byte 0x11 .4byte 0x6045 .4byte .LLST683 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1998 .8byte .LBE1998-.LBB1998 .byte 0x1 .2byte 0x9f1 .byte 0x3 .4byte 0x444 .byte 0xf .4byte 0x6077 .4byte .LLST684 .byte 0xf .4byte 0x606b .4byte .LLST685 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2000 .8byte .LBE2000-.LBB2000 .byte 0x1 .2byte 0x9f2 .byte 0xd .4byte 0x486 .byte 0xf .4byte 0x6039 .4byte .LLST686 .byte 0x10 .8byte .LBB2001 .8byte .LBE2001-.LBB2001 .byte 0x11 .4byte 0x6045 .4byte .LLST687 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB2002 .4byte .Ldebug_ranges0+0x1400 .byte 0x1 .2byte 0x9f4 .byte 0x3 .4byte 0x4b2 .byte 0xf .4byte 0x6077 .4byte .LLST688 .byte 0xf .4byte 0x606b .4byte .LLST689 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB2006 .8byte .LBE2006-.LBB2006 .byte 0x1 .2byte 0x9f5 .byte 0x3 .4byte 0x4ec .byte 0xf .4byte 0x5f3c .4byte .LLST690 .byte 0xb .8byte .LVL1033 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2008 .8byte .LBE2008-.LBB2008 .byte 0x1 .2byte 0x9f6 .byte 0xd .4byte 0x52e .byte 0xf .4byte 0x6039 .4byte .LLST691 .byte 0x10 .8byte .LBB2009 .8byte .LBE2009-.LBB2009 .byte 0x11 .4byte 0x6045 .4byte .LLST692 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB2010 .4byte .Ldebug_ranges0+0x1430 .byte 0x1 .2byte 0x9f8 .byte 0x3 .4byte 0x55a .byte 0xf .4byte 0x6077 .4byte .LLST693 .byte 0xf .4byte 0x606b .4byte .LLST694 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB2014 .8byte .LBE2014-.LBB2014 .byte 0x1 .2byte 0x9fc .byte 0x3 .4byte 0x594 .byte 0xf .4byte 0x5f3c .4byte .LLST695 .byte 0xb .8byte .LVL1038 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x44 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2016 .8byte .LBE2016-.LBB2016 .byte 0x1 .2byte 0x9fd .byte 0x3 .4byte 0x5d6 .byte 0xf .4byte 0x6039 .4byte .LLST696 .byte 0x10 .8byte .LBB2017 .8byte .LBE2017-.LBB2017 .byte 0x11 .4byte 0x6045 .4byte .LLST697 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2018 .8byte .LBE2018-.LBB2018 .byte 0x1 .2byte 0xa09 .byte 0x3 .4byte 0x618 .byte 0xf .4byte 0x6039 .4byte .LLST698 .byte 0x10 .8byte .LBB2019 .8byte .LBE2019-.LBB2019 .byte 0x11 .4byte 0x6045 .4byte .LLST699 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB2020 .4byte .Ldebug_ranges0+0x1460 .byte 0x1 .2byte 0xa09 .byte 0x3 .4byte 0x644 .byte 0xf .4byte 0x6077 .4byte .LLST700 .byte 0xf .4byte 0x606b .4byte .LLST701 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB2024 .4byte .Ldebug_ranges0+0x1490 .byte 0x1 .2byte 0xa0b .byte 0x3 .4byte 0x670 .byte 0xf .4byte 0x6077 .4byte .LLST702 .byte 0xf .4byte 0x606b .4byte .LLST703 .byte 0 .byte 0x12 .4byte 0x5f2f .8byte .LBB2027 .4byte .Ldebug_ranges0+0x14c0 .byte 0x1 .2byte 0xa0c .byte 0x3 .4byte 0x6a6 .byte 0xf .4byte 0x5f3c .4byte .LLST704 .byte 0xb .8byte .LVL1060 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2032 .8byte .LBE2032-.LBB2032 .byte 0x1 .2byte 0xa73 .byte 0xd .4byte 0x6e8 .byte 0xf .4byte 0x6039 .4byte .LLST705 .byte 0x10 .8byte .LBB2033 .8byte .LBE2033-.LBB2033 .byte 0x11 .4byte 0x6045 .4byte .LLST706 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB2034 .8byte .LBE2034-.LBB2034 .byte 0x1 .2byte 0xa78 .byte 0x3 .4byte 0x718 .byte 0xf .4byte 0x6077 .4byte .LLST707 .byte 0xf .4byte 0x606b .4byte .LLST708 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB2036 .8byte .LBE2036-.LBB2036 .byte 0x1 .2byte 0xa79 .byte 0x3 .4byte 0x748 .byte 0xf .4byte 0x6077 .4byte .LLST709 .byte 0xf .4byte 0x606b .4byte .LLST710 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2038 .8byte .LBE2038-.LBB2038 .byte 0x1 .2byte 0xa7b .byte 0xd .4byte 0x78a .byte 0xf .4byte 0x6039 .4byte .LLST711 .byte 0x10 .8byte .LBB2039 .8byte .LBE2039-.LBB2039 .byte 0x11 .4byte 0x6045 .4byte .LLST712 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB2040 .4byte .Ldebug_ranges0+0x14f0 .byte 0x1 .2byte 0xa7d .byte 0x3 .4byte 0x7b6 .byte 0xf .4byte 0x6077 .4byte .LLST713 .byte 0xf .4byte 0x606b .4byte .LLST714 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2044 .8byte .LBE2044-.LBB2044 .byte 0x1 .2byte 0xa93 .byte 0xd .4byte 0x7f8 .byte 0xf .4byte 0x6039 .4byte .LLST715 .byte 0x10 .8byte .LBB2045 .8byte .LBE2045-.LBB2045 .byte 0x11 .4byte 0x6045 .4byte .LLST716 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB2046 .4byte .Ldebug_ranges0+0x1520 .byte 0x1 .2byte 0xa96 .byte 0x3 .4byte 0x824 .byte 0xf .4byte 0x6077 .4byte .LLST717 .byte 0xf .4byte 0x606b .4byte .LLST718 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2050 .8byte .LBE2050-.LBB2050 .byte 0x1 .2byte 0xaa1 .byte 0xc .4byte 0x866 .byte 0xf .4byte 0x6039 .4byte .LLST719 .byte 0x10 .8byte .LBB2051 .8byte .LBE2051-.LBB2051 .byte 0x11 .4byte 0x6045 .4byte .LLST720 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB2052 .4byte .Ldebug_ranges0+0x1550 .byte 0x1 .2byte 0xaa3 .byte 0x2 .4byte 0x892 .byte 0xf .4byte 0x6077 .4byte .LLST721 .byte 0xf .4byte 0x606b .4byte .LLST722 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2056 .8byte .LBE2056-.LBB2056 .byte 0x1 .2byte 0xaac .byte 0xd .4byte 0x8d4 .byte 0xf .4byte 0x6039 .4byte .LLST723 .byte 0x10 .8byte .LBB2057 .8byte .LBE2057-.LBB2057 .byte 0x11 .4byte 0x6045 .4byte .LLST724 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB2058 .4byte .Ldebug_ranges0+0x1580 .byte 0x1 .2byte 0xaaf .byte 0x3 .4byte 0x900 .byte 0xf .4byte 0x6077 .4byte .LLST725 .byte 0xf .4byte 0x606b .4byte .LLST726 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2062 .8byte .LBE2062-.LBB2062 .byte 0x1 .2byte 0xab4 .byte 0xd .4byte 0x942 .byte 0xf .4byte 0x6039 .4byte .LLST727 .byte 0x10 .8byte .LBB2063 .8byte .LBE2063-.LBB2063 .byte 0x11 .4byte 0x6045 .4byte .LLST728 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB2064 .8byte .LBE2064-.LBB2064 .byte 0x1 .2byte 0xab6 .byte 0x3 .4byte 0x972 .byte 0xf .4byte 0x6077 .4byte .LLST729 .byte 0xf .4byte 0x606b .4byte .LLST730 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB2066 .4byte .Ldebug_ranges0+0x15b0 .byte 0x1 .2byte 0xabd .byte 0x3 .4byte 0x99e .byte 0xf .4byte 0x6077 .4byte .LLST731 .byte 0xf .4byte 0x606b .4byte .LLST732 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2069 .8byte .LBE2069-.LBB2069 .byte 0x1 .2byte 0xac2 .byte 0xd .4byte 0x9e0 .byte 0xf .4byte 0x6039 .4byte .LLST733 .byte 0x10 .8byte .LBB2070 .8byte .LBE2070-.LBB2070 .byte 0x11 .4byte 0x6045 .4byte .LLST734 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB2071 .4byte .Ldebug_ranges0+0x15e0 .byte 0x1 .2byte 0xac5 .byte 0x3 .4byte 0xa0c .byte 0xf .4byte 0x6077 .4byte .LLST735 .byte 0xf .4byte 0x606b .4byte .LLST736 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2075 .8byte .LBE2075-.LBB2075 .byte 0x1 .2byte 0xa82 .byte 0xd .4byte 0xa4e .byte 0xf .4byte 0x6039 .4byte .LLST737 .byte 0x10 .8byte .LBB2076 .8byte .LBE2076-.LBB2076 .byte 0x11 .4byte 0x6045 .4byte .LLST738 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB2077 .4byte .Ldebug_ranges0+0x1610 .byte 0x1 .2byte 0xa84 .byte 0x3 .4byte 0xa7a .byte 0xf .4byte 0x6077 .4byte .LLST739 .byte 0xf .4byte 0x606b .4byte .LLST740 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2081 .8byte .LBE2081-.LBB2081 .byte 0x1 .2byte 0xa86 .byte 0xd .4byte 0xabc .byte 0xf .4byte 0x6039 .4byte .LLST741 .byte 0x10 .8byte .LBB2082 .8byte .LBE2082-.LBB2082 .byte 0x11 .4byte 0x6045 .4byte .LLST742 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB2083 .4byte .Ldebug_ranges0+0x1640 .byte 0x1 .2byte 0xa88 .byte 0x3 .4byte 0xae8 .byte 0xf .4byte 0x6077 .4byte .LLST743 .byte 0xf .4byte 0x606b .4byte .LLST744 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2087 .8byte .LBE2087-.LBB2087 .byte 0x1 .2byte 0xa9b .byte 0xd .4byte 0xb2a .byte 0xf .4byte 0x6039 .4byte .LLST745 .byte 0x10 .8byte .LBB2088 .8byte .LBE2088-.LBB2088 .byte 0x11 .4byte 0x6045 .4byte .LLST746 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB2089 .8byte .LBE2089-.LBB2089 .byte 0x1 .2byte 0xa9d .byte 0x3 .4byte 0xb5a .byte 0xf .4byte 0x6077 .4byte .LLST747 .byte 0xf .4byte 0x606b .4byte .LLST748 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2091 .8byte .LBE2091-.LBB2091 .byte 0x1 .2byte 0xabb .byte 0xd .4byte 0xb9c .byte 0xf .4byte 0x6039 .4byte .LLST749 .byte 0x10 .8byte .LBB2092 .8byte .LBE2092-.LBB2092 .byte 0x11 .4byte 0x6045 .4byte .LLST750 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2094 .8byte .LBE2094-.LBB2094 .byte 0x1 .2byte 0xaf3 .byte 0x7 .4byte 0xbde .byte 0xf .4byte 0x6039 .4byte .LLST751 .byte 0x10 .8byte .LBB2095 .8byte .LBE2095-.LBB2095 .byte 0x11 .4byte 0x6045 .4byte .LLST752 .byte 0 .byte 0 .byte 0x13 .8byte .LVL1041 .4byte 0x624f .4byte 0xbfd .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC30 .byte 0 .byte 0x14 .8byte .LVL1042 .4byte 0x5fc5 .byte 0x13 .8byte .LVL1045 .4byte 0x624f .4byte 0xc2f .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC32 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x79 .byte 0 .byte 0 .byte 0x13 .8byte .LVL1046 .4byte 0x5dfe .4byte 0xc47 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL1048 .4byte 0x624f .4byte 0xc73 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC34 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x9 .byte 0x3 .8byte .LC33 .byte 0 .byte 0x13 .8byte .LVL1049 .4byte 0x624f .4byte 0xc92 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC35 .byte 0 .byte 0x13 .8byte .LVL1050 .4byte 0x624f .4byte 0xcb1 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC36 .byte 0 .byte 0x13 .8byte .LVL1051 .4byte 0x624f .4byte 0xcd0 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC38 .byte 0 .byte 0x13 .8byte .LVL1054 .4byte 0x624f .4byte 0xcef .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC31 .byte 0 .byte 0x14 .8byte .LVL1062 .4byte 0x5ffd .byte 0x13 .8byte .LVL1063 .4byte 0x10fa .4byte 0xd14 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL1068 .4byte 0x624f .4byte 0xd33 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC37 .byte 0 .byte 0x13 .8byte .LVL1069 .4byte 0x624f .4byte 0xd52 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC39 .byte 0 .byte 0x13 .8byte .LVL1070 .4byte 0xe35 .4byte 0xd6a .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL1073 .4byte 0x624f .4byte 0xd89 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC41 .byte 0 .byte 0x13 .8byte .LVL1074 .4byte 0x624f .4byte 0xda8 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC40 .byte 0 .byte 0x13 .8byte .LVL1087 .4byte 0x624f .4byte 0xdc7 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC43 .byte 0 .byte 0x14 .8byte .LVL1110 .4byte 0x5ce8 .byte 0x14 .8byte .LVL1111 .4byte 0x5fe3 .byte 0x14 .8byte .LVL1113 .4byte 0x1b9c .byte 0x13 .8byte .LVL1115 .4byte 0x624f .4byte 0xe13 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC42 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x79 .byte 0 .byte 0 .byte 0xb .8byte .LVL1134 .4byte 0xf33 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x79 .byte 0 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x3 .byte 0xa .2byte 0x1000 .byte 0 .byte 0 .byte 0x15 .byte 0x8 .4byte 0x206 .byte 0x8 .4byte .LASF49 .byte 0x1 .2byte 0x9ad .byte 0xe .4byte 0x29 .8byte .LFB65 .8byte .LFE65-.LFB65 .byte 0x1 .byte 0x9c .4byte 0xf0a .byte 0xd .4byte .LASF45 .byte 0x1 .2byte 0x9ad .byte 0x2c .4byte 0xe2f .4byte .LLST591 .byte 0x16 .4byte .LASF40 .byte 0x1 .2byte 0x9af .byte 0xf .4byte 0x29 .byte 0 .byte 0x13 .8byte .LVL885 .4byte 0x34bc .4byte 0xe8f .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL886 .4byte 0xf0a .4byte 0xea7 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL887 .4byte 0x3177 .4byte 0xebf .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL888 .4byte 0x2f21 .4byte 0xed7 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL889 .4byte 0x43dc .4byte 0xeef .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x17 .8byte .LVL891 .4byte 0x1c84 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x30 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x3 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0 .byte 0 .byte 0x18 .4byte .LASF133 .byte 0x1 .2byte 0x994 .byte 0x6 .byte 0x1 .4byte 0xf33 .byte 0x19 .4byte .LASF45 .byte 0x1 .2byte 0x994 .byte 0x26 .4byte 0xe2f .byte 0x1a .4byte .LASF46 .byte 0x1 .2byte 0x996 .byte 0xf .4byte 0x29 .byte 0 .byte 0x8 .4byte .LASF50 .byte 0x1 .2byte 0x96a .byte 0xe .4byte 0x29 .8byte .LFB63 .8byte .LFE63-.LFB63 .byte 0x1 .byte 0x9c .4byte 0x10fa .byte 0xd .4byte .LASF47 .byte 0x1 .2byte 0x96a .byte 0x30 .4byte 0x29 .4byte .LLST568 .byte 0xd .4byte .LASF51 .byte 0x1 .2byte 0x96a .byte 0x48 .4byte 0x29 .4byte .LLST569 .byte 0x1b .string "i" .byte 0x1 .2byte 0x970 .byte 0xf .4byte 0x29 .4byte .LLST570 .byte 0x9 .4byte .LASF52 .byte 0x1 .2byte 0x971 .byte 0xf .4byte 0x29 .4byte .LLST571 .byte 0x1b .string "val" .byte 0x1 .2byte 0x972 .byte 0xf .4byte 0x29 .4byte .LLST572 .byte 0x12 .4byte 0x6028 .8byte .LBB1856 .4byte .Ldebug_ranges0+0x1100 .byte 0x1 .2byte 0x97d .byte 0x9 .4byte 0xfdb .byte 0xf .4byte 0x6039 .4byte .LLST573 .byte 0x1c .4byte .Ldebug_ranges0+0x1100 .byte 0x11 .4byte 0x6045 .4byte .LLST574 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1859 .4byte .Ldebug_ranges0+0x1130 .byte 0x1 .2byte 0x977 .byte 0x3 .4byte 0x1007 .byte 0xf .4byte 0x6077 .4byte .LLST575 .byte 0xf .4byte 0x606b .4byte .LLST576 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1863 .4byte .Ldebug_ranges0+0x1160 .byte 0x1 .2byte 0x978 .byte 0x3 .4byte 0x1033 .byte 0xf .4byte 0x6077 .4byte .LLST577 .byte 0xf .4byte 0x606b .4byte .LLST578 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1868 .8byte .LBE1868-.LBB1868 .byte 0x1 .2byte 0x984 .byte 0x9 .4byte 0x1071 .byte 0x1d .4byte 0x6039 .byte 0x10 .8byte .LBB1869 .8byte .LBE1869-.LBB1869 .byte 0x11 .4byte 0x6045 .4byte .LLST579 .byte 0 .byte 0 .byte 0x13 .8byte .LVL847 .4byte 0x624f .4byte 0x1090 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC21 .byte 0 .byte 0x13 .8byte .LVL858 .4byte 0x624f .4byte 0x10af .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC19 .byte 0 .byte 0x13 .8byte .LVL861 .4byte 0x624f .4byte 0x10de .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC20 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x4 .byte 0x91 .byte 0x58 .byte 0x94 .byte 0x4 .byte 0xc .byte 0x1 .byte 0x5c .byte 0x4 .byte 0x72 .byte 0 .byte 0x94 .byte 0x4 .byte 0 .byte 0xb .8byte .LVL866 .4byte 0x624f .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC19 .byte 0 .byte 0 .byte 0x8 .4byte .LASF53 .byte 0x1 .2byte 0x935 .byte 0xe .4byte 0x29 .8byte .LFB62 .8byte .LFE62-.LFB62 .byte 0x1 .byte 0x9c .4byte 0x1179 .byte 0xd .4byte .LASF45 .byte 0x1 .2byte 0x935 .byte 0x33 .4byte 0xe2f .4byte .LLST667 .byte 0x9 .4byte .LASF40 .byte 0x1 .2byte 0x937 .byte 0x10 .4byte 0x29 .4byte .LLST668 .byte 0x13 .8byte .LVL1009 .4byte 0x1179 .4byte 0x1157 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x79 .byte 0 .byte 0 .byte 0x14 .8byte .LVL1011 .4byte 0x624f .byte 0xb .8byte .LVL1014 .4byte 0x13cb .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x79 .byte 0 .byte 0 .byte 0 .byte 0x8 .4byte .LASF54 .byte 0x1 .2byte 0x86f .byte 0xe .4byte 0x29 .8byte .LFB61 .8byte .LFE61-.LFB61 .byte 0x1 .byte 0x9c .4byte 0x1260 .byte 0xd .4byte .LASF45 .byte 0x1 .2byte 0x86f .byte 0x37 .4byte 0xe2f .4byte .LLST660 .byte 0x9 .4byte .LASF40 .byte 0x1 .2byte 0x871 .byte 0xf .4byte 0x29 .4byte .LLST661 .byte 0x9 .4byte .LASF46 .byte 0x1 .2byte 0x872 .byte 0xf .4byte 0x29 .4byte .LLST662 .byte 0x9 .4byte .LASF55 .byte 0x1 .2byte 0x873 .byte 0xf .4byte 0x29 .4byte .LLST663 .byte 0x9 .4byte .LASF56 .byte 0x1 .2byte 0x874 .byte 0xf .4byte 0x29 .4byte .LLST664 .byte 0xe .4byte 0x6028 .8byte .LBB1984 .8byte .LBE1984-.LBB1984 .byte 0x1 .2byte 0x880 .byte 0xc .4byte 0x1233 .byte 0xf .4byte 0x6039 .4byte .LLST665 .byte 0x10 .8byte .LBB1985 .8byte .LBE1985-.LBB1985 .byte 0x11 .4byte 0x6045 .4byte .LLST666 .byte 0 .byte 0 .byte 0x13 .8byte .LVL998 .4byte 0xe35 .4byte 0x124b .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0xb .8byte .LVL1005 .4byte 0x1260 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0 .byte 0x8 .4byte .LASF57 .byte 0x1 .2byte 0x82c .byte 0xe .4byte 0x29 .8byte .LFB60 .8byte .LFE60-.LFB60 .byte 0x1 .byte 0x9c .4byte 0x13cb .byte 0xd .4byte .LASF45 .byte 0x1 .2byte 0x82c .byte 0x2d .4byte 0xe2f .4byte .LLST558 .byte 0x9 .4byte .LASF46 .byte 0x1 .2byte 0x82e .byte 0xf .4byte 0x29 .4byte .LLST559 .byte 0x9 .4byte .LASF58 .byte 0x1 .2byte 0x82f .byte 0xf .4byte 0x29 .4byte .LLST560 .byte 0x9 .4byte .LASF59 .byte 0x1 .2byte 0x82f .byte 0x1c .4byte 0x29 .4byte .LLST561 .byte 0x12 .4byte 0x6028 .8byte .LBB1846 .4byte .Ldebug_ranges0+0x10c0 .byte 0x1 .2byte 0x831 .byte 0xc .4byte 0x12f9 .byte 0xf .4byte 0x6039 .4byte .LLST562 .byte 0x1c .4byte .Ldebug_ranges0+0x10c0 .byte 0x11 .4byte 0x6045 .4byte .LLST563 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1852 .8byte .LBE1852-.LBB1852 .byte 0x1 .2byte 0x835 .byte 0xd .4byte 0x133b .byte 0xf .4byte 0x6039 .4byte .LLST564 .byte 0x10 .8byte .LBB1853 .8byte .LBE1853-.LBB1853 .byte 0x11 .4byte 0x6045 .4byte .LLST565 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1854 .8byte .LBE1854-.LBB1854 .byte 0x1 .2byte 0x837 .byte 0xd .4byte 0x137d .byte 0xf .4byte 0x6039 .4byte .LLST566 .byte 0x10 .8byte .LBB1855 .8byte .LBE1855-.LBB1855 .byte 0x11 .4byte 0x6045 .4byte .LLST567 .byte 0 .byte 0 .byte 0x14 .8byte .LVL830 .4byte 0x624f .byte 0x13 .8byte .LVL839 .4byte 0x624f .4byte 0x13a9 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC17 .byte 0 .byte 0xb .8byte .LVL840 .4byte 0x624f .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC18 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0 .byte 0x8 .4byte .LASF60 .byte 0x1 .2byte 0x76f .byte 0xe .4byte 0x29 .8byte .LFB59 .8byte .LFE59-.LFB59 .byte 0x1 .byte 0x9c .4byte 0x1b9c .byte 0xd .4byte .LASF45 .byte 0x1 .2byte 0x76f .byte 0x31 .4byte 0xe2f .4byte .LLST592 .byte 0x1b .string "i" .byte 0x1 .2byte 0x771 .byte 0xf .4byte 0x29 .4byte .LLST593 .byte 0x1b .string "j" .byte 0x1 .2byte 0x771 .byte 0x16 .4byte 0x29 .4byte .LLST594 .byte 0x1b .string "m" .byte 0x1 .2byte 0x771 .byte 0x1d .4byte 0x29 .4byte .LLST595 .byte 0x9 .4byte .LASF61 .byte 0x1 .2byte 0x772 .byte 0xf .4byte 0x29 .4byte .LLST596 .byte 0x9 .4byte .LASF62 .byte 0x1 .2byte 0x772 .byte 0x1d .4byte 0x29 .4byte .LLST597 .byte 0x9 .4byte .LASF46 .byte 0x1 .2byte 0x773 .byte 0xf .4byte 0x29 .4byte .LLST598 .byte 0x1b .string "ret" .byte 0x1 .2byte 0x773 .byte 0x1c .4byte 0x29 .4byte .LLST599 .byte 0x1b .string "cnt" .byte 0x1 .2byte 0x773 .byte 0x25 .4byte 0x29 .4byte .LLST594 .byte 0x9 .4byte .LASF63 .byte 0x1 .2byte 0x774 .byte 0xf .4byte 0x29 .4byte .LLST601 .byte 0x9 .4byte .LASF64 .byte 0x1 .2byte 0x775 .byte 0xf .4byte 0x29 .4byte .LLST602 .byte 0x12 .4byte 0x5dc6 .8byte .LBB1894 .4byte .Ldebug_ranges0+0x1190 .byte 0x1 .2byte 0x7e9 .byte 0x4 .4byte 0x14cc .byte 0x1d .4byte 0x5deb .byte 0x1d .4byte 0x5ddf .byte 0x1d .4byte 0x5dd3 .byte 0 .byte 0x12 .4byte 0x5dc6 .8byte .LBB1899 .4byte .Ldebug_ranges0+0x11e0 .byte 0x1 .2byte 0x7bd .byte 0x4 .4byte 0x14f5 .byte 0x1d .4byte 0x5deb .byte 0x1d .4byte 0x5ddf .byte 0x1d .4byte 0x5dd3 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1904 .8byte .LBE1904-.LBB1904 .byte 0x1 .2byte 0x796 .byte 0x4 .4byte 0x1525 .byte 0xf .4byte 0x6077 .4byte .LLST603 .byte 0xf .4byte 0x606b .4byte .LLST604 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1906 .8byte .LBE1906-.LBB1906 .byte 0x1 .2byte 0x798 .byte 0xd .4byte 0x1567 .byte 0xf .4byte 0x6039 .4byte .LLST605 .byte 0x10 .8byte .LBB1907 .8byte .LBE1907-.LBB1907 .byte 0x11 .4byte 0x6045 .4byte .LLST606 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1908 .8byte .LBE1908-.LBB1908 .byte 0x1 .2byte 0x79c .byte 0x3 .4byte 0x1597 .byte 0xf .4byte 0x6077 .4byte .LLST607 .byte 0xf .4byte 0x606b .4byte .LLST608 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1910 .8byte .LBE1910-.LBB1910 .byte 0x1 .2byte 0x79d .byte 0x14 .4byte 0x15d9 .byte 0xf .4byte 0x6039 .4byte .LLST609 .byte 0x10 .8byte .LBB1911 .8byte .LBE1911-.LBB1911 .byte 0x11 .4byte 0x6045 .4byte .LLST610 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1912 .8byte .LBE1912-.LBB1912 .byte 0x1 .2byte 0x7a6 .byte 0x13 .4byte 0x161b .byte 0xf .4byte 0x6039 .4byte .LLST611 .byte 0x10 .8byte .LBB1913 .8byte .LBE1913-.LBB1913 .byte 0x11 .4byte 0x6045 .4byte .LLST612 .byte 0 .byte 0 .byte 0x12 .4byte 0x5dc6 .8byte .LBB1914 .4byte .Ldebug_ranges0+0x1220 .byte 0x1 .2byte 0x7b6 .byte 0x3 .4byte 0x1650 .byte 0xf .4byte 0x5deb .4byte .LLST613 .byte 0xf .4byte 0x5ddf .4byte .LLST614 .byte 0xf .4byte 0x5dd3 .4byte .LLST615 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1920 .8byte .LBE1920-.LBB1920 .byte 0x1 .2byte 0x7ba .byte 0xe .4byte 0x1692 .byte 0xf .4byte 0x6039 .4byte .LLST616 .byte 0x10 .8byte .LBB1921 .8byte .LBE1921-.LBB1921 .byte 0x11 .4byte 0x6045 .4byte .LLST617 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1923 .4byte .Ldebug_ranges0+0x1260 .byte 0x1 .2byte 0x7be .byte 0x4 .4byte 0x16be .byte 0xf .4byte 0x6077 .4byte .LLST618 .byte 0xf .4byte 0x606b .4byte .LLST619 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1928 .8byte .LBE1928-.LBB1928 .byte 0x1 .2byte 0x7c3 .byte 0xd .4byte 0x1700 .byte 0xf .4byte 0x6039 .4byte .LLST620 .byte 0x10 .8byte .LBB1929 .8byte .LBE1929-.LBB1929 .byte 0x11 .4byte 0x6045 .4byte .LLST621 .byte 0 .byte 0 .byte 0xe .4byte 0x5dc6 .8byte .LBB1930 .8byte .LBE1930-.LBB1930 .byte 0x1 .2byte 0x7c6 .byte 0x3 .4byte 0x1739 .byte 0xf .4byte 0x5deb .4byte .LLST622 .byte 0xf .4byte 0x5ddf .4byte .LLST623 .byte 0xf .4byte 0x5dd3 .4byte .LLST624 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1932 .8byte .LBE1932-.LBB1932 .byte 0x1 .2byte 0x7c7 .byte 0x3 .4byte 0x1769 .byte 0xf .4byte 0x6077 .4byte .LLST625 .byte 0xf .4byte 0x606b .4byte .LLST626 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1934 .8byte .LBE1934-.LBB1934 .byte 0x1 .2byte 0x7cc .byte 0x14 .4byte 0x17ab .byte 0xf .4byte 0x6039 .4byte .LLST627 .byte 0x10 .8byte .LBB1935 .8byte .LBE1935-.LBB1935 .byte 0x11 .4byte 0x6045 .4byte .LLST628 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1936 .8byte .LBE1936-.LBB1936 .byte 0x1 .2byte 0x7d4 .byte 0x13 .4byte 0x17ed .byte 0xf .4byte 0x6039 .4byte .LLST629 .byte 0x10 .8byte .LBB1937 .8byte .LBE1937-.LBB1937 .byte 0x11 .4byte 0x6045 .4byte .LLST630 .byte 0 .byte 0 .byte 0x12 .4byte 0x5dc6 .8byte .LBB1938 .4byte .Ldebug_ranges0+0x1290 .byte 0x1 .2byte 0x7e2 .byte 0x3 .4byte 0x1822 .byte 0xf .4byte 0x5deb .4byte .LLST631 .byte 0xf .4byte 0x5ddf .4byte .LLST632 .byte 0xf .4byte 0x5dd3 .4byte .LLST633 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1944 .8byte .LBE1944-.LBB1944 .byte 0x1 .2byte 0x7e6 .byte 0xe .4byte 0x1864 .byte 0xf .4byte 0x6039 .4byte .LLST634 .byte 0x10 .8byte .LBB1945 .8byte .LBE1945-.LBB1945 .byte 0x11 .4byte 0x6045 .4byte .LLST635 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1947 .4byte .Ldebug_ranges0+0x12d0 .byte 0x1 .2byte 0x7ea .byte 0x4 .4byte 0x1890 .byte 0xf .4byte 0x6077 .4byte .LLST636 .byte 0xf .4byte 0x606b .4byte .LLST637 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1952 .8byte .LBE1952-.LBB1952 .byte 0x1 .2byte 0x7ef .byte 0xd .4byte 0x18d2 .byte 0xf .4byte 0x6039 .4byte .LLST638 .byte 0x10 .8byte .LBB1953 .8byte .LBE1953-.LBB1953 .byte 0x11 .4byte 0x6045 .4byte .LLST639 .byte 0 .byte 0 .byte 0xe .4byte 0x5dc6 .8byte .LBB1954 .8byte .LBE1954-.LBB1954 .byte 0x1 .2byte 0x7f2 .byte 0x3 .4byte 0x190b .byte 0xf .4byte 0x5deb .4byte .LLST640 .byte 0xf .4byte 0x5ddf .4byte .LLST641 .byte 0xf .4byte 0x5dd3 .4byte .LLST642 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1956 .8byte .LBE1956-.LBB1956 .byte 0x1 .2byte 0x7f3 .byte 0x3 .4byte 0x193b .byte 0xf .4byte 0x6077 .4byte .LLST643 .byte 0xf .4byte 0x606b .4byte .LLST644 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1958 .8byte .LBE1958-.LBB1958 .byte 0x1 .2byte 0x7f4 .byte 0x14 .4byte 0x197d .byte 0xf .4byte 0x6039 .4byte .LLST645 .byte 0x10 .8byte .LBB1959 .8byte .LBE1959-.LBB1959 .byte 0x11 .4byte 0x6045 .4byte .LLST646 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1960 .8byte .LBE1960-.LBB1960 .byte 0x1 .2byte 0x7fc .byte 0x13 .4byte 0x19bf .byte 0xf .4byte 0x6039 .4byte .LLST647 .byte 0x10 .8byte .LBB1961 .8byte .LBE1961-.LBB1961 .byte 0x11 .4byte 0x6045 .4byte .LLST648 .byte 0 .byte 0 .byte 0x12 .4byte 0x5dc6 .8byte .LBB1962 .4byte .Ldebug_ranges0+0x1300 .byte 0x1 .2byte 0x811 .byte 0x3 .4byte 0x19f4 .byte 0xf .4byte 0x5deb .4byte .LLST649 .byte 0xf .4byte 0x5ddf .4byte .LLST650 .byte 0xf .4byte 0x5dd3 .4byte .LLST651 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1968 .8byte .LBE1968-.LBB1968 .byte 0x1 .2byte 0x784 .byte 0xe .4byte 0x1a36 .byte 0xf .4byte 0x6039 .4byte .LLST652 .byte 0x10 .8byte .LBB1969 .8byte .LBE1969-.LBB1969 .byte 0x11 .4byte 0x6045 .4byte .LLST653 .byte 0 .byte 0 .byte 0x12 .4byte 0x5dc6 .8byte .LBB1970 .4byte .Ldebug_ranges0+0x1340 .byte 0x1 .2byte 0x787 .byte 0x4 .4byte 0x1a5f .byte 0x1d .4byte 0x5deb .byte 0x1d .4byte 0x5ddf .byte 0x1d .4byte 0x5dd3 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1973 .4byte .Ldebug_ranges0+0x1370 .byte 0x1 .2byte 0x788 .byte 0x4 .4byte 0x1a8b .byte 0xf .4byte 0x6077 .4byte .LLST654 .byte 0xf .4byte 0x606b .4byte .LLST655 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1978 .8byte .LBE1978-.LBB1978 .byte 0x1 .2byte 0x789 .byte 0xe .4byte 0x1acd .byte 0xf .4byte 0x6039 .4byte .LLST656 .byte 0x10 .8byte .LBB1979 .8byte .LBE1979-.LBB1979 .byte 0x11 .4byte 0x6045 .4byte .LLST657 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1980 .4byte .Ldebug_ranges0+0x13a0 .byte 0x1 .2byte 0x78e .byte 0x4 .4byte 0x1af9 .byte 0xf .4byte 0x6077 .4byte .LLST658 .byte 0xf .4byte 0x606b .4byte .LLST659 .byte 0 .byte 0x13 .8byte .LVL893 .4byte 0xe35 .4byte 0x1b11 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x87 .byte 0 .byte 0 .byte 0x14 .8byte .LVL896 .4byte 0x624f .byte 0x13 .8byte .LVL923 .4byte 0x624f .4byte 0x1b4c .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC23 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x88 .byte 0 .byte 0xc .byte 0x1 .byte 0x5c .byte 0x5 .byte 0x91 .byte 0x88,0x7f .byte 0x94 .byte 0x4 .byte 0 .byte 0x13 .8byte .LVL948 .4byte 0x624f .4byte 0x1b71 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC24 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x88 .byte 0 .byte 0 .byte 0xb .8byte .LVL974 .4byte 0x624f .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC25 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x88 .byte 0 .byte 0xc .byte 0x1 .byte 0x5c .byte 0x5 .byte 0x91 .byte 0x88,0x7f .byte 0x94 .byte 0x4 .byte 0 .byte 0 .byte 0x8 .4byte .LASF65 .byte 0x1 .2byte 0x717 .byte 0xe .4byte 0x29 .8byte .LFB58 .8byte .LFE58-.LFB58 .byte 0x1 .byte 0x9c .4byte 0x1c84 .byte 0x9 .4byte .LASF46 .byte 0x1 .2byte 0x719 .byte 0xf .4byte 0x29 .4byte .LLST550 .byte 0x9 .4byte .LASF66 .byte 0x1 .2byte 0x71a .byte 0xf .4byte 0x29 .4byte .LLST551 .byte 0x9 .4byte .LASF67 .byte 0x1 .2byte 0x71a .byte 0x1a .4byte 0x29 .4byte .LLST552 .byte 0x9 .4byte .LASF68 .byte 0x1 .2byte 0x71b .byte 0xf .4byte 0x29 .4byte .LLST553 .byte 0xe .4byte 0x6028 .8byte .LBB1842 .8byte .LBE1842-.LBB1842 .byte 0x1 .2byte 0x71d .byte 0xc .4byte 0x1c45 .byte 0xf .4byte 0x6039 .4byte .LLST554 .byte 0x10 .8byte .LBB1843 .8byte .LBE1843-.LBB1843 .byte 0x11 .4byte 0x6045 .4byte .LLST555 .byte 0 .byte 0 .byte 0x1e .4byte 0x6028 .8byte .LBB1844 .8byte .LBE1844-.LBB1844 .byte 0x1 .2byte 0x72d .byte 0xd .byte 0xf .4byte 0x6039 .4byte .LLST556 .byte 0x10 .8byte .LBB1845 .8byte .LBE1845-.LBB1845 .byte 0x11 .4byte 0x6045 .4byte .LLST557 .byte 0 .byte 0 .byte 0 .byte 0x8 .4byte .LASF69 .byte 0x1 .2byte 0x5e0 .byte 0xe .4byte 0x29 .8byte .LFB57 .8byte .LFE57-.LFB57 .byte 0x1 .byte 0x9c .4byte 0x2f21 .byte 0xd .4byte .LASF70 .byte 0x1 .2byte 0x5e0 .byte 0x2d .4byte 0x29 .4byte .LLST388 .byte 0xd .4byte .LASF45 .byte 0x1 .2byte 0x5e0 .byte 0x45 .4byte 0xe2f .4byte .LLST389 .byte 0x9 .4byte .LASF46 .byte 0x1 .2byte 0x5e2 .byte 0xf .4byte 0x29 .4byte .LLST390 .byte 0x9 .4byte .LASF40 .byte 0x1 .2byte 0x5e2 .byte 0x1c .4byte 0x29 .4byte .LLST391 .byte 0x9 .4byte .LASF71 .byte 0x1 .2byte 0x5e3 .byte 0xf .4byte 0x29 .4byte .LLST392 .byte 0x1b .string "i" .byte 0x1 .2byte 0x5e4 .byte 0xf .4byte 0x29 .4byte .LLST393 .byte 0x9 .4byte .LASF72 .byte 0x1 .2byte 0x5e5 .byte 0xf .4byte 0x29 .4byte .LLST394 .byte 0x12 .4byte 0x6028 .8byte .LBB1604 .4byte .Ldebug_ranges0+0xa20 .byte 0x1 .2byte 0x5eb .byte 0xc .4byte 0x1d4e .byte 0xf .4byte 0x6039 .4byte .LLST395 .byte 0x1c .4byte .Ldebug_ranges0+0xa20 .byte 0x11 .4byte 0x6045 .4byte .LLST396 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1608 .4byte .Ldebug_ranges0+0xa50 .byte 0x1 .2byte 0x5ee .byte 0x2 .4byte 0x1d7a .byte 0xf .4byte 0x6077 .4byte .LLST397 .byte 0xf .4byte 0x606b .4byte .LLST398 .byte 0 .byte 0x12 .4byte 0x6028 .8byte .LBB1611 .4byte .Ldebug_ranges0+0xa80 .byte 0x1 .2byte 0x5f2 .byte 0xc .4byte 0x1dac .byte 0xf .4byte 0x6039 .4byte .LLST399 .byte 0x1c .4byte .Ldebug_ranges0+0xa80 .byte 0x11 .4byte 0x6045 .4byte .LLST400 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1616 .4byte .Ldebug_ranges0+0xab0 .byte 0x1 .2byte 0x5f7 .byte 0x2 .4byte 0x1dd8 .byte 0xf .4byte 0x6077 .4byte .LLST401 .byte 0xf .4byte 0x606b .4byte .LLST402 .byte 0 .byte 0x12 .4byte 0x6028 .8byte .LBB1620 .4byte .Ldebug_ranges0+0xae0 .byte 0x1 .2byte 0x602 .byte 0xd .4byte 0x1e0a .byte 0xf .4byte 0x6039 .4byte .LLST403 .byte 0x1c .4byte .Ldebug_ranges0+0xae0 .byte 0x11 .4byte 0x6045 .4byte .LLST404 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1625 .4byte .Ldebug_ranges0+0xb20 .byte 0x1 .2byte 0x60f .byte 0x3 .4byte 0x1e36 .byte 0xf .4byte 0x6077 .4byte .LLST405 .byte 0xf .4byte 0x606b .4byte .LLST406 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1630 .8byte .LBE1630-.LBB1630 .byte 0x1 .2byte 0x615 .byte 0xc .4byte 0x1e78 .byte 0xf .4byte 0x6039 .4byte .LLST407 .byte 0x10 .8byte .LBB1631 .8byte .LBE1631-.LBB1631 .byte 0x11 .4byte 0x6045 .4byte .LLST408 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1632 .4byte .Ldebug_ranges0+0xb50 .byte 0x1 .2byte 0x617 .byte 0x2 .4byte 0x1ea4 .byte 0xf .4byte 0x6077 .4byte .LLST409 .byte 0xf .4byte 0x606b .4byte .LLST410 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1636 .8byte .LBE1636-.LBB1636 .byte 0x1 .2byte 0x641 .byte 0xe .4byte 0x1ee6 .byte 0xf .4byte 0x6039 .4byte .LLST411 .byte 0x10 .8byte .LBB1637 .8byte .LBE1637-.LBB1637 .byte 0x11 .4byte 0x6045 .4byte .LLST412 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1638 .4byte .Ldebug_ranges0+0xb80 .byte 0x1 .2byte 0x643 .byte 0x4 .4byte 0x1f12 .byte 0xf .4byte 0x6077 .4byte .LLST413 .byte 0xf .4byte 0x606b .4byte .LLST414 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1642 .8byte .LBE1642-.LBB1642 .byte 0x1 .2byte 0x644 .byte 0x4 .4byte 0x1f4c .byte 0xf .4byte 0x5f3c .4byte .LLST415 .byte 0xb .8byte .LVL638 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1644 .8byte .LBE1644-.LBB1644 .byte 0x1 .2byte 0x646 .byte 0xe .4byte 0x1f8e .byte 0xf .4byte 0x6039 .4byte .LLST416 .byte 0x10 .8byte .LBB1645 .8byte .LBE1645-.LBB1645 .byte 0x11 .4byte 0x6045 .4byte .LLST417 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1646 .4byte .Ldebug_ranges0+0xbb0 .byte 0x1 .2byte 0x648 .byte 0x4 .4byte 0x1fba .byte 0xf .4byte 0x6077 .4byte .LLST418 .byte 0xf .4byte 0x606b .4byte .LLST419 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1650 .8byte .LBE1650-.LBB1650 .byte 0x1 .2byte 0x623 .byte 0xe .4byte 0x1ffc .byte 0xf .4byte 0x6039 .4byte .LLST420 .byte 0x10 .8byte .LBB1651 .8byte .LBE1651-.LBB1651 .byte 0x11 .4byte 0x6045 .4byte .LLST421 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1652 .4byte .Ldebug_ranges0+0xbe0 .byte 0x1 .2byte 0x625 .byte 0x4 .4byte 0x2028 .byte 0xf .4byte 0x6077 .4byte .LLST422 .byte 0xf .4byte 0x606b .4byte .LLST423 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1656 .8byte .LBE1656-.LBB1656 .byte 0x1 .2byte 0x627 .byte 0xe .4byte 0x206a .byte 0xf .4byte 0x6039 .4byte .LLST424 .byte 0x10 .8byte .LBB1657 .8byte .LBE1657-.LBB1657 .byte 0x11 .4byte 0x6045 .4byte .LLST425 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1658 .4byte .Ldebug_ranges0+0xc10 .byte 0x1 .2byte 0x629 .byte 0x4 .4byte 0x2096 .byte 0xf .4byte 0x6077 .4byte .LLST426 .byte 0xf .4byte 0x606b .4byte .LLST427 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1662 .8byte .LBE1662-.LBB1662 .byte 0x1 .2byte 0x654 .byte 0xe .4byte 0x20d8 .byte 0xf .4byte 0x6039 .4byte .LLST428 .byte 0x10 .8byte .LBB1663 .8byte .LBE1663-.LBB1663 .byte 0x11 .4byte 0x6045 .4byte .LLST429 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1664 .8byte .LBE1664-.LBB1664 .byte 0x1 .2byte 0x658 .byte 0x4 .4byte 0x2108 .byte 0xf .4byte 0x6077 .4byte .LLST430 .byte 0xf .4byte 0x606b .4byte .LLST431 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1666 .4byte .Ldebug_ranges0+0xc40 .byte 0x1 .2byte 0x662 .byte 0x4 .4byte 0x2134 .byte 0xf .4byte 0x6077 .4byte .LLST432 .byte 0xf .4byte 0x606b .4byte .LLST433 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1669 .8byte .LBE1669-.LBB1669 .byte 0x1 .2byte 0x66b .byte 0xd .4byte 0x2176 .byte 0xf .4byte 0x6039 .4byte .LLST434 .byte 0x10 .8byte .LBB1670 .8byte .LBE1670-.LBB1670 .byte 0x11 .4byte 0x6045 .4byte .LLST435 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1671 .8byte .LBE1671-.LBB1671 .byte 0x1 .2byte 0x66e .byte 0x3 .4byte 0x21a6 .byte 0xf .4byte 0x6077 .4byte .LLST436 .byte 0xf .4byte 0x606b .4byte .LLST437 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1673 .4byte .Ldebug_ranges0+0xc70 .byte 0x1 .2byte 0x675 .byte 0x3 .4byte 0x21d2 .byte 0xf .4byte 0x6077 .4byte .LLST438 .byte 0xf .4byte 0x606b .4byte .LLST439 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1676 .8byte .LBE1676-.LBB1676 .byte 0x1 .2byte 0x677 .byte 0x7 .4byte 0x2214 .byte 0xf .4byte 0x6039 .4byte .LLST440 .byte 0x10 .8byte .LBB1677 .8byte .LBE1677-.LBB1677 .byte 0x11 .4byte 0x6045 .4byte .LLST441 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1678 .8byte .LBE1678-.LBB1678 .byte 0x1 .2byte 0x679 .byte 0xd .4byte 0x2256 .byte 0xf .4byte 0x6039 .4byte .LLST442 .byte 0x10 .8byte .LBB1679 .8byte .LBE1679-.LBB1679 .byte 0x11 .4byte 0x6045 .4byte .LLST443 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1680 .4byte .Ldebug_ranges0+0xca0 .byte 0x1 .2byte 0x67b .byte 0x3 .4byte 0x2282 .byte 0xf .4byte 0x6077 .4byte .LLST444 .byte 0xf .4byte 0x606b .4byte .LLST445 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1684 .8byte .LBE1684-.LBB1684 .byte 0x1 .2byte 0x67c .byte 0x3 .4byte 0x22bc .byte 0xf .4byte 0x5f3c .4byte .LLST446 .byte 0xb .8byte .LVL672 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1686 .8byte .LBE1686-.LBB1686 .byte 0x1 .2byte 0x681 .byte 0xc .4byte 0x22fe .byte 0xf .4byte 0x6039 .4byte .LLST447 .byte 0x10 .8byte .LBB1687 .8byte .LBE1687-.LBB1687 .byte 0x11 .4byte 0x6045 .4byte .LLST448 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1688 .4byte .Ldebug_ranges0+0xcd0 .byte 0x1 .2byte 0x685 .byte 0x2 .4byte 0x232a .byte 0xf .4byte 0x6077 .4byte .LLST449 .byte 0xf .4byte 0x606b .4byte .LLST450 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1692 .8byte .LBE1692-.LBB1692 .byte 0x1 .2byte 0x68a .byte 0x3 .4byte 0x235a .byte 0xf .4byte 0x6077 .4byte .LLST451 .byte 0xf .4byte 0x606b .4byte .LLST452 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1694 .8byte .LBE1694-.LBB1694 .byte 0x1 .2byte 0x68c .byte 0x3 .4byte 0x238a .byte 0xf .4byte 0x6077 .4byte .LLST453 .byte 0xf .4byte 0x606b .4byte .LLST454 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1696 .8byte .LBE1696-.LBB1696 .byte 0x1 .2byte 0x68e .byte 0xa .4byte 0x23cc .byte 0xf .4byte 0x6039 .4byte .LLST455 .byte 0x10 .8byte .LBB1697 .8byte .LBE1697-.LBB1697 .byte 0x11 .4byte 0x6045 .4byte .LLST456 .byte 0 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1698 .8byte .LBE1698-.LBB1698 .byte 0x1 .2byte 0x68f .byte 0x3 .4byte 0x2406 .byte 0xf .4byte 0x5f3c .4byte .LLST457 .byte 0xb .8byte .LVL685 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1700 .8byte .LBE1700-.LBB1700 .byte 0x1 .2byte 0x6a1 .byte 0x2 .4byte 0x2436 .byte 0xf .4byte 0x6077 .4byte .LLST458 .byte 0xf .4byte 0x606b .4byte .LLST459 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1702 .4byte .Ldebug_ranges0+0xd00 .byte 0x1 .2byte 0x6a3 .byte 0x2 .4byte 0x2462 .byte 0xf .4byte 0x6077 .4byte .LLST460 .byte 0xf .4byte 0x606b .4byte .LLST461 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1706 .8byte .LBE1706-.LBB1706 .byte 0x1 .2byte 0x6a5 .byte 0x2 .4byte 0x249c .byte 0xf .4byte 0x5f3c .4byte .LLST462 .byte 0xb .8byte .LVL690 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0x12 .4byte 0x6028 .8byte .LBB1708 .4byte .Ldebug_ranges0+0xd30 .byte 0x1 .2byte 0x6a6 .byte 0x9 .4byte 0x24ce .byte 0xf .4byte 0x6039 .4byte .LLST463 .byte 0x1c .4byte .Ldebug_ranges0+0xd30 .byte 0x11 .4byte 0x6045 .4byte .LLST464 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1712 .8byte .LBE1712-.LBB1712 .byte 0x1 .2byte 0x6a9 .byte 0x7 .4byte 0x2510 .byte 0xf .4byte 0x6039 .4byte .LLST465 .byte 0x10 .8byte .LBB1713 .8byte .LBE1713-.LBB1713 .byte 0x11 .4byte 0x6045 .4byte .LLST466 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1714 .8byte .LBE1714-.LBB1714 .byte 0x1 .2byte 0x6de .byte 0xc .4byte 0x2552 .byte 0xf .4byte 0x6039 .4byte .LLST467 .byte 0x10 .8byte .LBB1715 .8byte .LBE1715-.LBB1715 .byte 0x11 .4byte 0x6045 .4byte .LLST468 .byte 0 .byte 0 .byte 0x12 .4byte 0x6028 .8byte .LBB1716 .4byte .Ldebug_ranges0+0xd60 .byte 0x1 .2byte 0x6ee .byte 0x9 .4byte 0x2584 .byte 0xf .4byte 0x6039 .4byte .LLST469 .byte 0x1c .4byte .Ldebug_ranges0+0xd60 .byte 0x11 .4byte 0x6045 .4byte .LLST470 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1720 .8byte .LBE1720-.LBB1720 .byte 0x1 .2byte 0x6f0 .byte 0xc .4byte 0x25c6 .byte 0xf .4byte 0x6039 .4byte .LLST471 .byte 0x10 .8byte .LBB1721 .8byte .LBE1721-.LBB1721 .byte 0x11 .4byte 0x6045 .4byte .LLST472 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1722 .4byte .Ldebug_ranges0+0xd90 .byte 0x1 .2byte 0x6f2 .byte 0x2 .4byte 0x25f2 .byte 0xf .4byte 0x6077 .4byte .LLST473 .byte 0xf .4byte 0x606b .4byte .LLST474 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1726 .8byte .LBE1726-.LBB1726 .byte 0x1 .2byte 0x6f3 .byte 0x2 .4byte 0x262c .byte 0xf .4byte 0x5f3c .4byte .LLST475 .byte 0xb .8byte .LVL708 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1728 .8byte .LBE1728-.LBB1728 .byte 0x1 .2byte 0x6f5 .byte 0xc .4byte 0x266e .byte 0xf .4byte 0x6039 .4byte .LLST476 .byte 0x10 .8byte .LBB1729 .8byte .LBE1729-.LBB1729 .byte 0x11 .4byte 0x6045 .4byte .LLST477 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1730 .4byte .Ldebug_ranges0+0xdc0 .byte 0x1 .2byte 0x6f7 .byte 0x2 .4byte 0x269a .byte 0xf .4byte 0x6077 .4byte .LLST478 .byte 0xf .4byte 0x606b .4byte .LLST479 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1734 .8byte .LBE1734-.LBB1734 .byte 0x1 .2byte 0x6f8 .byte 0x2 .4byte 0x26d4 .byte 0xf .4byte 0x5f3c .4byte .LLST480 .byte 0xb .8byte .LVL713 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1736 .8byte .LBE1736-.LBB1736 .byte 0x1 .2byte 0x6fb .byte 0xc .4byte 0x2716 .byte 0xf .4byte 0x6039 .4byte .LLST481 .byte 0x10 .8byte .LBB1737 .8byte .LBE1737-.LBB1737 .byte 0x11 .4byte 0x6045 .4byte .LLST482 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1738 .4byte .Ldebug_ranges0+0xdf0 .byte 0x1 .2byte 0x6fd .byte 0x2 .4byte 0x2742 .byte 0xf .4byte 0x6077 .4byte .LLST483 .byte 0xf .4byte 0x606b .4byte .LLST484 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1742 .8byte .LBE1742-.LBB1742 .byte 0x1 .2byte 0x6fe .byte 0x2 .4byte 0x277c .byte 0xf .4byte 0x5f3c .4byte .LLST485 .byte 0xb .8byte .LVL718 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1744 .8byte .LBE1744-.LBB1744 .byte 0x1 .2byte 0x700 .byte 0xc .4byte 0x27be .byte 0xf .4byte 0x6039 .4byte .LLST486 .byte 0x10 .8byte .LBB1745 .8byte .LBE1745-.LBB1745 .byte 0x11 .4byte 0x6045 .4byte .LLST487 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1746 .4byte .Ldebug_ranges0+0xe20 .byte 0x1 .2byte 0x702 .byte 0x2 .4byte 0x27ea .byte 0xf .4byte 0x6077 .4byte .LLST488 .byte 0xf .4byte 0x606b .4byte .LLST489 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1750 .8byte .LBE1750-.LBB1750 .byte 0x1 .2byte 0x709 .byte 0xd .4byte 0x282c .byte 0xf .4byte 0x6039 .4byte .LLST490 .byte 0x10 .8byte .LBB1751 .8byte .LBE1751-.LBB1751 .byte 0x11 .4byte 0x6045 .4byte .LLST491 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1752 .4byte .Ldebug_ranges0+0xe50 .byte 0x1 .2byte 0x70c .byte 0x3 .4byte 0x2858 .byte 0xf .4byte 0x6077 .4byte .LLST492 .byte 0xf .4byte 0x606b .4byte .LLST493 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1756 .8byte .LBE1756-.LBB1756 .byte 0x1 .2byte 0x62d .byte 0xe .4byte 0x289a .byte 0xf .4byte 0x6039 .4byte .LLST494 .byte 0x10 .8byte .LBB1757 .8byte .LBE1757-.LBB1757 .byte 0x11 .4byte 0x6045 .4byte .LLST495 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1758 .4byte .Ldebug_ranges0+0xe80 .byte 0x1 .2byte 0x630 .byte 0x4 .4byte 0x28c6 .byte 0xf .4byte 0x6077 .4byte .LLST496 .byte 0xf .4byte 0x606b .4byte .LLST497 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1762 .8byte .LBE1762-.LBB1762 .byte 0x1 .2byte 0x632 .byte 0x10 .4byte 0x2908 .byte 0xf .4byte 0x6039 .4byte .LLST498 .byte 0x10 .8byte .LBB1763 .8byte .LBE1763-.LBB1763 .byte 0x11 .4byte 0x6045 .4byte .LLST499 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1764 .8byte .LBE1764-.LBB1764 .byte 0x1 .2byte 0x633 .byte 0xe .4byte 0x294a .byte 0xf .4byte 0x6039 .4byte .LLST500 .byte 0x10 .8byte .LBB1765 .8byte .LBE1765-.LBB1765 .byte 0x11 .4byte 0x6045 .4byte .LLST501 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1766 .4byte .Ldebug_ranges0+0xeb0 .byte 0x1 .2byte 0x636 .byte 0x4 .4byte 0x2976 .byte 0xf .4byte 0x6077 .4byte .LLST502 .byte 0xf .4byte 0x606b .4byte .LLST503 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1770 .8byte .LBE1770-.LBB1770 .byte 0x1 .2byte 0x638 .byte 0xe .4byte 0x29b8 .byte 0xf .4byte 0x6039 .4byte .LLST504 .byte 0x10 .8byte .LBB1771 .8byte .LBE1771-.LBB1771 .byte 0x11 .4byte 0x6045 .4byte .LLST505 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1772 .4byte .Ldebug_ranges0+0xee0 .byte 0x1 .2byte 0x63b .byte 0x4 .4byte 0x29e4 .byte 0xf .4byte 0x6077 .4byte .LLST506 .byte 0xf .4byte 0x606b .4byte .LLST507 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1776 .8byte .LBE1776-.LBB1776 .byte 0x1 .2byte 0x65d .byte 0xe .4byte 0x2a26 .byte 0xf .4byte 0x6039 .4byte .LLST508 .byte 0x10 .8byte .LBB1777 .8byte .LBE1777-.LBB1777 .byte 0x11 .4byte 0x6045 .4byte .LLST509 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1779 .8byte .LBE1779-.LBB1779 .byte 0x1 .2byte 0x672 .byte 0xd .4byte 0x2a68 .byte 0xf .4byte 0x6039 .4byte .LLST510 .byte 0x10 .8byte .LBB1780 .8byte .LBE1780-.LBB1780 .byte 0x11 .4byte 0x6045 .4byte .LLST511 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1782 .8byte .LBE1782-.LBB1782 .byte 0x1 .2byte 0x696 .byte 0x7 .4byte 0x2aaa .byte 0xf .4byte 0x6039 .4byte .LLST512 .byte 0x10 .8byte .LBB1783 .8byte .LBE1783-.LBB1783 .byte 0x11 .4byte 0x6045 .4byte .LLST513 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1784 .8byte .LBE1784-.LBB1784 .byte 0x1 .2byte 0x6ab .byte 0xd .4byte 0x2aec .byte 0xf .4byte 0x6039 .4byte .LLST514 .byte 0x10 .8byte .LBB1785 .8byte .LBE1785-.LBB1785 .byte 0x11 .4byte 0x6045 .4byte .LLST515 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1786 .4byte .Ldebug_ranges0+0xf10 .byte 0x1 .2byte 0x6ae .byte 0x3 .4byte 0x2b18 .byte 0xf .4byte 0x6077 .4byte .LLST516 .byte 0xf .4byte 0x606b .4byte .LLST517 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1790 .8byte .LBE1790-.LBB1790 .byte 0x1 .2byte 0x6af .byte 0x3 .4byte 0x2b52 .byte 0xf .4byte 0x5f3c .4byte .LLST518 .byte 0xb .8byte .LVL762 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1792 .8byte .LBE1792-.LBB1792 .byte 0x1 .2byte 0x6b1 .byte 0xd .4byte 0x2b94 .byte 0xf .4byte 0x6039 .4byte .LLST519 .byte 0x10 .8byte .LBB1793 .8byte .LBE1793-.LBB1793 .byte 0x11 .4byte 0x6045 .4byte .LLST520 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1794 .4byte .Ldebug_ranges0+0xf40 .byte 0x1 .2byte 0x6b4 .byte 0x3 .4byte 0x2bc0 .byte 0xf .4byte 0x6077 .4byte .LLST521 .byte 0xf .4byte 0x606b .4byte .LLST522 .byte 0 .byte 0x12 .4byte 0x6028 .8byte .LBB1798 .4byte .Ldebug_ranges0+0xf70 .byte 0x1 .2byte 0x6b5 .byte 0xb .4byte 0x2bf2 .byte 0xf .4byte 0x6039 .4byte .LLST523 .byte 0x1c .4byte .Ldebug_ranges0+0xf70 .byte 0x11 .4byte 0x6045 .4byte .LLST524 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1802 .8byte .LBE1802-.LBB1802 .byte 0x1 .2byte 0x6bd .byte 0xd .4byte 0x2c34 .byte 0xf .4byte 0x6039 .4byte .LLST525 .byte 0x10 .8byte .LBB1803 .8byte .LBE1803-.LBB1803 .byte 0x11 .4byte 0x6045 .4byte .LLST526 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1804 .4byte .Ldebug_ranges0+0xfa0 .byte 0x1 .2byte 0x6bf .byte 0x3 .4byte 0x2c60 .byte 0xf .4byte 0x6077 .4byte .LLST527 .byte 0xf .4byte 0x606b .4byte .LLST528 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1808 .8byte .LBE1808-.LBB1808 .byte 0x1 .2byte 0x6c0 .byte 0x3 .4byte 0x2c9a .byte 0xf .4byte 0x5f3c .4byte .LLST529 .byte 0xb .8byte .LVL775 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1810 .8byte .LBE1810-.LBB1810 .byte 0x1 .2byte 0x6c3 .byte 0xd .4byte 0x2cdc .byte 0xf .4byte 0x6039 .4byte .LLST530 .byte 0x10 .8byte .LBB1811 .8byte .LBE1811-.LBB1811 .byte 0x11 .4byte 0x6045 .4byte .LLST531 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1812 .4byte .Ldebug_ranges0+0xfd0 .byte 0x1 .2byte 0x6c5 .byte 0x3 .4byte 0x2d08 .byte 0xf .4byte 0x6077 .4byte .LLST532 .byte 0xf .4byte 0x606b .4byte .LLST533 .byte 0 .byte 0x12 .4byte 0x6028 .8byte .LBB1816 .4byte .Ldebug_ranges0+0x1000 .byte 0x1 .2byte 0x6c6 .byte 0xb .4byte 0x2d3a .byte 0xf .4byte 0x6039 .4byte .LLST534 .byte 0x1c .4byte .Ldebug_ranges0+0x1000 .byte 0x11 .4byte 0x6045 .4byte .LLST535 .byte 0 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1820 .8byte .LBE1820-.LBB1820 .byte 0x1 .2byte 0x6c7 .byte 0x3 .4byte 0x2d74 .byte 0xf .4byte 0x5f3c .4byte .LLST536 .byte 0xb .8byte .LVL784 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3f .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1822 .8byte .LBE1822-.LBB1822 .byte 0x1 .2byte 0x6cc .byte 0xe .4byte 0x2db6 .byte 0xf .4byte 0x6039 .4byte .LLST537 .byte 0x10 .8byte .LBB1823 .8byte .LBE1823-.LBB1823 .byte 0x11 .4byte 0x6045 .4byte .LLST538 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1824 .4byte .Ldebug_ranges0+0x1030 .byte 0x1 .2byte 0x6ce .byte 0x4 .4byte 0x2de2 .byte 0xf .4byte 0x6077 .4byte .LLST539 .byte 0xf .4byte 0x606b .4byte .LLST540 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1828 .8byte .LBE1828-.LBB1828 .byte 0x1 .2byte 0x6d0 .byte 0xe .4byte 0x2e24 .byte 0xf .4byte 0x6039 .4byte .LLST541 .byte 0x10 .8byte .LBB1829 .8byte .LBE1829-.LBB1829 .byte 0x11 .4byte 0x6045 .4byte .LLST542 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1830 .4byte .Ldebug_ranges0+0x1060 .byte 0x1 .2byte 0x6d3 .byte 0x4 .4byte 0x2e50 .byte 0xf .4byte 0x6077 .4byte .LLST543 .byte 0xf .4byte 0x606b .4byte .LLST544 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1834 .8byte .LBE1834-.LBB1834 .byte 0x1 .2byte 0x6d4 .byte 0x4 .4byte 0x2e8b .byte 0xf .4byte 0x5f3c .4byte .LLST545 .byte 0xb .8byte .LVL795 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x83 .byte 0 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1836 .8byte .LBE1836-.LBB1836 .byte 0x1 .2byte 0x6d7 .byte 0x4 .4byte 0x2ebb .byte 0xf .4byte 0x6077 .4byte .LLST546 .byte 0xf .4byte 0x606b .4byte .LLST547 .byte 0 .byte 0x12 .4byte 0x6028 .8byte .LBB1838 .4byte .Ldebug_ranges0+0x1090 .byte 0x1 .2byte 0x6d8 .byte 0xb .4byte 0x2eed .byte 0xf .4byte 0x6039 .4byte .LLST548 .byte 0x1c .4byte .Ldebug_ranges0+0x1090 .byte 0x11 .4byte 0x6045 .4byte .LLST549 .byte 0 .byte 0 .byte 0x13 .8byte .LVL633 .4byte 0x54f8 .4byte 0x2f05 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x82 .byte 0 .byte 0 .byte 0xb .8byte .LVL800 .4byte 0x624f .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC12 .byte 0 .byte 0 .byte 0x1f .4byte .LASF82 .byte 0x1 .2byte 0x530 .byte 0x6 .8byte .LFB56 .8byte .LFE56-.LFB56 .byte 0x1 .byte 0x9c .4byte 0x3167 .byte 0xd .4byte .LASF45 .byte 0x1 .2byte 0x530 .byte 0x2b .4byte 0xe2f .4byte .LLST376 .byte 0x9 .4byte .LASF73 .byte 0x1 .2byte 0x534 .byte 0x6 .4byte 0x37 .4byte .LLST377 .byte 0xa .4byte .LASF74 .byte 0x1 .2byte 0x535 .byte 0x7 .4byte 0x3167 .byte 0x3 .byte 0x91 .byte 0xa0,0x7e .byte 0xa .4byte .LASF75 .byte 0x1 .2byte 0x536 .byte 0x7 .4byte 0x3167 .byte 0x3 .byte 0x91 .byte 0xb8,0x7e .byte 0xa .4byte .LASF76 .byte 0x1 .2byte 0x537 .byte 0x7 .4byte 0x3167 .byte 0x3 .byte 0x91 .byte 0xd0,0x7e .byte 0xa .4byte .LASF77 .byte 0x1 .2byte 0x538 .byte 0x7 .4byte 0x3167 .byte 0x3 .byte 0x91 .byte 0xe8,0x7e .byte 0xa .4byte .LASF78 .byte 0x1 .2byte 0x539 .byte 0x7 .4byte 0x3167 .byte 0x3 .byte 0x91 .byte 0x80,0x7f .byte 0xa .4byte .LASF79 .byte 0x1 .2byte 0x53a .byte 0x7 .4byte 0x3167 .byte 0x3 .byte 0x91 .byte 0x98,0x7f .byte 0xa .4byte .LASF80 .byte 0x1 .2byte 0x541 .byte 0x7 .4byte 0x3167 .byte 0x3 .byte 0x91 .byte 0xb0,0x7f .byte 0xa .4byte .LASF81 .byte 0x1 .2byte 0x548 .byte 0x7 .4byte 0x3167 .byte 0x2 .byte 0x91 .byte 0x48 .byte 0x12 .4byte 0x6028 .8byte .LBB1588 .4byte .Ldebug_ranges0+0x9e0 .byte 0x1 .2byte 0x534 .byte 0x13 .4byte 0x301b .byte 0xf .4byte 0x6039 .4byte .LLST378 .byte 0x1c .4byte .Ldebug_ranges0+0x9e0 .byte 0x11 .4byte 0x6045 .4byte .LLST379 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1594 .8byte .LBE1594-.LBB1594 .byte 0x1 .2byte 0x594 .byte 0x6 .4byte 0x304b .byte 0xf .4byte 0x6077 .4byte .LLST380 .byte 0xf .4byte 0x606b .4byte .LLST381 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1596 .8byte .LBE1596-.LBB1596 .byte 0x1 .2byte 0x595 .byte 0x6 .4byte 0x307b .byte 0xf .4byte 0x6077 .4byte .LLST382 .byte 0xf .4byte 0x606b .4byte .LLST383 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1598 .8byte .LBE1598-.LBB1598 .byte 0x1 .2byte 0x596 .byte 0x6 .4byte 0x30ab .byte 0xf .4byte 0x6077 .4byte .LLST384 .byte 0xf .4byte 0x606b .4byte .LLST385 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1600 .8byte .LBE1600-.LBB1600 .byte 0x1 .2byte 0x597 .byte 0x6 .4byte 0x30db .byte 0xf .4byte 0x6077 .4byte .LLST386 .byte 0xf .4byte 0x606b .4byte .LLST387 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1602 .8byte .LBE1602-.LBB1602 .byte 0x1 .2byte 0x598 .byte 0x6 .4byte 0x3109 .byte 0x20 .4byte 0x6077 .4byte 0x3102500 .byte 0x21 .4byte 0x606b .byte 0x1 .byte 0x5f .byte 0 .byte 0x13 .8byte .LVL586 .4byte 0x624f .4byte 0x312e .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC11 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL587 .4byte 0x5f47 .4byte 0x3146 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x72 .byte 0 .byte 0 .byte 0xb .8byte .LVL592 .4byte 0x5f47 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x72 .byte 0 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x3 .byte 0x91 .byte 0xb0,0x7f .byte 0xc .byte 0x1 .byte 0x5c .byte 0x1 .byte 0x46 .byte 0 .byte 0 .byte 0x22 .4byte 0x53 .4byte 0x3177 .byte 0x23 .4byte 0x3e .byte 0x15 .byte 0 .byte 0x1f .4byte .LASF83 .byte 0x1 .2byte 0x4cb .byte 0x6 .8byte .LFB55 .8byte .LFE55-.LFB55 .byte 0x1 .byte 0x9c .4byte 0x34bc .byte 0x24 .4byte .LASF45 .byte 0x1 .2byte 0x4cb .byte 0x23 .4byte 0xe2f .byte 0x1 .byte 0x5a .byte 0x9 .4byte .LASF46 .byte 0x1 .2byte 0x4cd .byte 0xf .4byte 0x29 .4byte .LLST346 .byte 0x9 .4byte .LASF40 .byte 0x1 .2byte 0x4cd .byte 0x18 .4byte 0x29 .4byte .LLST347 .byte 0x1b .string "m" .byte 0x1 .2byte 0x4ce .byte 0xf .4byte 0x29 .4byte .LLST348 .byte 0x9 .4byte .LASF61 .byte 0x1 .2byte 0x4ce .byte 0x16 .4byte 0x29 .4byte .LLST349 .byte 0xe .4byte 0x6028 .8byte .LBB1560 .8byte .LBE1560-.LBB1560 .byte 0x1 .2byte 0x4d5 .byte 0xc .4byte 0x3229 .byte 0xf .4byte 0x6039 .4byte .LLST350 .byte 0x10 .8byte .LBB1561 .8byte .LBE1561-.LBB1561 .byte 0x11 .4byte 0x6045 .4byte .LLST351 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1562 .4byte .Ldebug_ranges0+0x9b0 .byte 0x1 .2byte 0x4d8 .byte 0x2 .4byte 0x3255 .byte 0xf .4byte 0x6077 .4byte .LLST352 .byte 0xf .4byte 0x606b .4byte .LLST353 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1566 .8byte .LBE1566-.LBB1566 .byte 0x1 .2byte 0x4da .byte 0xc .4byte 0x3297 .byte 0xf .4byte 0x6039 .4byte .LLST354 .byte 0x10 .8byte .LBB1567 .8byte .LBE1567-.LBB1567 .byte 0x11 .4byte 0x6045 .4byte .LLST355 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1568 .8byte .LBE1568-.LBB1568 .byte 0x1 .2byte 0x4e7 .byte 0x2 .4byte 0x32c7 .byte 0xf .4byte 0x6077 .4byte .LLST356 .byte 0xf .4byte 0x606b .4byte .LLST357 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1570 .8byte .LBE1570-.LBB1570 .byte 0x1 .2byte 0x4ee .byte 0xd .4byte 0x3309 .byte 0xf .4byte 0x6039 .4byte .LLST358 .byte 0x10 .8byte .LBB1571 .8byte .LBE1571-.LBB1571 .byte 0x11 .4byte 0x6045 .4byte .LLST359 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1572 .8byte .LBE1572-.LBB1572 .byte 0x1 .2byte 0x507 .byte 0x3 .4byte 0x3339 .byte 0xf .4byte 0x6077 .4byte .LLST360 .byte 0xf .4byte 0x606b .4byte .LLST361 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1574 .8byte .LBE1574-.LBB1574 .byte 0x1 .2byte 0x50e .byte 0xd .4byte 0x337b .byte 0xf .4byte 0x6039 .4byte .LLST362 .byte 0x10 .8byte .LBB1575 .8byte .LBE1575-.LBB1575 .byte 0x11 .4byte 0x6045 .4byte .LLST363 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1576 .8byte .LBE1576-.LBB1576 .byte 0x1 .2byte 0x513 .byte 0x2 .4byte 0x33ab .byte 0xf .4byte 0x6077 .4byte .LLST364 .byte 0xf .4byte 0x606b .4byte .LLST365 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1578 .8byte .LBE1578-.LBB1578 .byte 0x1 .2byte 0x519 .byte 0x3 .4byte 0x33db .byte 0xf .4byte 0x6077 .4byte .LLST366 .byte 0xf .4byte 0x606b .4byte .LLST367 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1580 .8byte .LBE1580-.LBB1580 .byte 0x1 .2byte 0x520 .byte 0xd .4byte 0x341d .byte 0xf .4byte 0x6039 .4byte .LLST368 .byte 0x10 .8byte .LBB1581 .8byte .LBE1581-.LBB1581 .byte 0x11 .4byte 0x6045 .4byte .LLST369 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1582 .8byte .LBE1582-.LBB1582 .byte 0x1 .2byte 0x522 .byte 0x3 .4byte 0x344d .byte 0xf .4byte 0x6077 .4byte .LLST370 .byte 0xf .4byte 0x606b .4byte .LLST371 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1584 .8byte .LBE1584-.LBB1584 .byte 0x1 .2byte 0x524 .byte 0xd .4byte 0x348f .byte 0xf .4byte 0x6039 .4byte .LLST372 .byte 0x10 .8byte .LBB1585 .8byte .LBE1585-.LBB1585 .byte 0x11 .4byte 0x6045 .4byte .LLST373 .byte 0 .byte 0 .byte 0x1e .4byte 0x605e .8byte .LBB1586 .8byte .LBE1586-.LBB1586 .byte 0x1 .2byte 0x526 .byte 0x3 .byte 0xf .4byte 0x6077 .4byte .LLST374 .byte 0xf .4byte 0x606b .4byte .LLST375 .byte 0 .byte 0 .byte 0x8 .4byte .LASF84 .byte 0x1 .2byte 0x455 .byte 0xe .4byte 0x29 .8byte .LFB54 .8byte .LFE54-.LFB54 .byte 0x1 .byte 0x9c .4byte 0x3ba4 .byte 0xd .4byte .LASF45 .byte 0x1 .2byte 0x455 .byte 0x2b .4byte 0xe2f .4byte .LLST288 .byte 0x9 .4byte .LASF46 .byte 0x1 .2byte 0x458 .byte 0xf .4byte 0x29 .4byte .LLST289 .byte 0x9 .4byte .LASF40 .byte 0x1 .2byte 0x459 .byte 0xf .4byte 0x29 .4byte .LLST290 .byte 0x12 .4byte 0x6028 .8byte .LBB1470 .4byte .Ldebug_ranges0+0x700 .byte 0x1 .2byte 0x45f .byte 0xc .4byte 0x3544 .byte 0xf .4byte 0x6039 .4byte .LLST291 .byte 0x1c .4byte .Ldebug_ranges0+0x700 .byte 0x11 .4byte 0x6045 .4byte .LLST292 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1476 .4byte .Ldebug_ranges0+0x740 .byte 0x1 .2byte 0x461 .byte 0x2 .4byte 0x3570 .byte 0xf .4byte 0x6077 .4byte .LLST293 .byte 0xf .4byte 0x606b .4byte .LLST294 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1480 .8byte .LBE1480-.LBB1480 .byte 0x1 .2byte 0x463 .byte 0xc .4byte 0x35b2 .byte 0xf .4byte 0x6039 .4byte .LLST295 .byte 0x10 .8byte .LBB1481 .8byte .LBE1481-.LBB1481 .byte 0x11 .4byte 0x6045 .4byte .LLST296 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1482 .4byte .Ldebug_ranges0+0x770 .byte 0x1 .2byte 0x465 .byte 0x2 .4byte 0x35de .byte 0xf .4byte 0x6077 .4byte .LLST297 .byte 0xf .4byte 0x606b .4byte .LLST298 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1486 .8byte .LBE1486-.LBB1486 .byte 0x1 .2byte 0x467 .byte 0xc .4byte 0x3620 .byte 0xf .4byte 0x6039 .4byte .LLST299 .byte 0x10 .8byte .LBB1487 .8byte .LBE1487-.LBB1487 .byte 0x11 .4byte 0x6045 .4byte .LLST300 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1488 .4byte .Ldebug_ranges0+0x7a0 .byte 0x1 .2byte 0x469 .byte 0x2 .4byte 0x364c .byte 0xf .4byte 0x6077 .4byte .LLST301 .byte 0xf .4byte 0x606b .4byte .LLST302 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1492 .8byte .LBE1492-.LBB1492 .byte 0x1 .2byte 0x46c .byte 0xc .4byte 0x368e .byte 0xf .4byte 0x6039 .4byte .LLST303 .byte 0x10 .8byte .LBB1493 .8byte .LBE1493-.LBB1493 .byte 0x11 .4byte 0x6045 .4byte .LLST304 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1494 .4byte .Ldebug_ranges0+0x7d0 .byte 0x1 .2byte 0x46e .byte 0x2 .4byte 0x36ba .byte 0xf .4byte 0x6077 .4byte .LLST305 .byte 0xf .4byte 0x606b .4byte .LLST306 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1498 .8byte .LBE1498-.LBB1498 .byte 0x1 .2byte 0x470 .byte 0xc .4byte 0x36fc .byte 0xf .4byte 0x6039 .4byte .LLST307 .byte 0x10 .8byte .LBB1499 .8byte .LBE1499-.LBB1499 .byte 0x11 .4byte 0x6045 .4byte .LLST308 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1500 .8byte .LBE1500-.LBB1500 .byte 0x1 .2byte 0x472 .byte 0x2 .4byte 0x372c .byte 0xf .4byte 0x6077 .4byte .LLST309 .byte 0xf .4byte 0x606b .4byte .LLST310 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1502 .8byte .LBE1502-.LBB1502 .byte 0x1 .2byte 0x474 .byte 0xc .4byte 0x376e .byte 0xf .4byte 0x6039 .4byte .LLST311 .byte 0x10 .8byte .LBB1503 .8byte .LBE1503-.LBB1503 .byte 0x11 .4byte 0x6045 .4byte .LLST312 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1504 .4byte .Ldebug_ranges0+0x800 .byte 0x1 .2byte 0x476 .byte 0x2 .4byte 0x379a .byte 0xf .4byte 0x6077 .4byte .LLST313 .byte 0xf .4byte 0x606b .4byte .LLST314 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1508 .8byte .LBE1508-.LBB1508 .byte 0x1 .2byte 0x477 .byte 0x2 .4byte 0x37d4 .byte 0xf .4byte 0x5f3c .4byte .LLST315 .byte 0xb .8byte .LVL498 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1510 .8byte .LBE1510-.LBB1510 .byte 0x1 .2byte 0x47e .byte 0x2 .4byte 0x380f .byte 0xf .4byte 0x5f3c .4byte .LLST316 .byte 0xb .8byte .LVL502 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x64 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1512 .8byte .LBE1512-.LBB1512 .byte 0x1 .2byte 0x495 .byte 0xc .4byte 0x3851 .byte 0xf .4byte 0x6039 .4byte .LLST317 .byte 0x10 .8byte .LBB1513 .8byte .LBE1513-.LBB1513 .byte 0x11 .4byte 0x6045 .4byte .LLST318 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1514 .4byte .Ldebug_ranges0+0x830 .byte 0x1 .2byte 0x497 .byte 0x2 .4byte 0x387d .byte 0xf .4byte 0x6077 .4byte .LLST319 .byte 0xf .4byte 0x606b .4byte .LLST320 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1518 .8byte .LBE1518-.LBB1518 .byte 0x1 .2byte 0x499 .byte 0xc .4byte 0x38bf .byte 0xf .4byte 0x6039 .4byte .LLST321 .byte 0x10 .8byte .LBB1519 .8byte .LBE1519-.LBB1519 .byte 0x11 .4byte 0x6045 .4byte .LLST322 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1520 .4byte .Ldebug_ranges0+0x860 .byte 0x1 .2byte 0x49b .byte 0x2 .4byte 0x38eb .byte 0xf .4byte 0x6077 .4byte .LLST323 .byte 0xf .4byte 0x606b .4byte .LLST324 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1524 .8byte .LBE1524-.LBB1524 .byte 0x1 .2byte 0x49d .byte 0xc .4byte 0x392d .byte 0xf .4byte 0x6039 .4byte .LLST325 .byte 0x10 .8byte .LBB1525 .8byte .LBE1525-.LBB1525 .byte 0x11 .4byte 0x6045 .4byte .LLST326 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1526 .4byte .Ldebug_ranges0+0x890 .byte 0x1 .2byte 0x49f .byte 0x2 .4byte 0x3959 .byte 0xf .4byte 0x6077 .4byte .LLST327 .byte 0xf .4byte 0x606b .4byte .LLST328 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1530 .8byte .LBE1530-.LBB1530 .byte 0x1 .2byte 0x4a0 .byte 0x2 .4byte 0x3993 .byte 0xf .4byte 0x5f3c .4byte .LLST329 .byte 0xb .8byte .LVL516 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x35 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1532 .8byte .LBE1532-.LBB1532 .byte 0x1 .2byte 0x4a3 .byte 0xc .4byte 0x39d5 .byte 0xf .4byte 0x6039 .4byte .LLST330 .byte 0x10 .8byte .LBB1533 .8byte .LBE1533-.LBB1533 .byte 0x11 .4byte 0x6045 .4byte .LLST331 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1534 .4byte .Ldebug_ranges0+0x8c0 .byte 0x1 .2byte 0x4a5 .byte 0x2 .4byte 0x3a01 .byte 0xf .4byte 0x6077 .4byte .LLST332 .byte 0xf .4byte 0x606b .4byte .LLST333 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1538 .8byte .LBE1538-.LBB1538 .byte 0x1 .2byte 0x4ac .byte 0xc .4byte 0x3a43 .byte 0xf .4byte 0x6039 .4byte .LLST334 .byte 0x10 .8byte .LBB1539 .8byte .LBE1539-.LBB1539 .byte 0x11 .4byte 0x6045 .4byte .LLST335 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1540 .4byte .Ldebug_ranges0+0x8f0 .byte 0x1 .2byte 0x4ae .byte 0x2 .4byte 0x3a6f .byte 0xf .4byte 0x6077 .4byte .LLST336 .byte 0xf .4byte 0x606b .4byte .LLST337 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1544 .8byte .LBE1544-.LBB1544 .byte 0x1 .2byte 0x4b0 .byte 0xc .4byte 0x3ab1 .byte 0xf .4byte 0x6039 .4byte .LLST338 .byte 0x10 .8byte .LBB1545 .8byte .LBE1545-.LBB1545 .byte 0x11 .4byte 0x6045 .4byte .LLST339 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1546 .4byte .Ldebug_ranges0+0x920 .byte 0x1 .2byte 0x4b2 .byte 0x2 .4byte 0x3add .byte 0xf .4byte 0x6077 .4byte .LLST340 .byte 0xf .4byte 0x606b .4byte .LLST341 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1550 .8byte .LBE1550-.LBB1550 .byte 0x1 .2byte 0x4b3 .byte 0x2 .4byte 0x3b17 .byte 0xf .4byte 0x5f3c .4byte .LLST342 .byte 0xb .8byte .LVL527 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x35 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1552 .4byte .Ldebug_ranges0+0x950 .byte 0x1 .2byte 0x4be .byte 0x2 .4byte 0x3b43 .byte 0xf .4byte 0x6077 .4byte .LLST343 .byte 0xf .4byte 0x606b .4byte .LLST344 .byte 0 .byte 0x12 .4byte 0x5f2f .8byte .LBB1555 .4byte .Ldebug_ranges0+0x980 .byte 0x1 .2byte 0x4bf .byte 0x2 .4byte 0x3b79 .byte 0xf .4byte 0x5f3c .4byte .LLST345 .byte 0xb .8byte .LVL529 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0x13 .8byte .LVL499 .4byte 0x3ba4 .4byte 0x3b96 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x30 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x82 .byte 0 .byte 0 .byte 0x14 .8byte .LVL503 .4byte 0x5c12 .byte 0 .byte 0x8 .4byte .LASF85 .byte 0x1 .2byte 0x417 .byte 0xe .4byte 0x29 .8byte .LFB53 .8byte .LFE53-.LFB53 .byte 0x1 .byte 0x9c .4byte 0x3e7c .byte 0x25 .string "pll" .byte 0x1 .2byte 0x417 .byte 0x2f .4byte 0x29 .4byte .LLST264 .byte 0xd .4byte .LASF45 .byte 0x1 .2byte 0x417 .byte 0x43 .4byte 0xe2f .4byte .LLST265 .byte 0x9 .4byte .LASF72 .byte 0x1 .2byte 0x419 .byte 0xf .4byte 0x29 .4byte .LLST266 .byte 0x26 .4byte .LASF86 .byte 0x1 .2byte 0x41a .byte 0xf .4byte 0x29 .4byte 0x2001800 .byte 0x26 .4byte .LASF87 .byte 0x1 .2byte 0x41a .byte 0x1e .4byte 0x29 .4byte 0x2001010 .byte 0x1b .string "N" .byte 0x1 .2byte 0x41b .byte 0xf .4byte 0x29 .4byte .LLST267 .byte 0x27 .string "M1" .byte 0x1 .2byte 0x41b .byte 0x17 .4byte 0x29 .byte 0x1 .byte 0x27 .string "p0" .byte 0x1 .2byte 0x41b .byte 0x1e .4byte 0x29 .byte 0x1 .byte 0x27 .string "M0" .byte 0x1 .2byte 0x41b .byte 0x23 .4byte 0x29 .byte 0x1 .byte 0x16 .4byte .LASF88 .byte 0x1 .2byte 0x41c .byte 0xb .4byte 0x37 .byte 0 .byte 0x9 .4byte .LASF89 .byte 0x1 .2byte 0x41e .byte 0xf .4byte 0x29 .4byte .LLST268 .byte 0x12 .4byte 0x6028 .8byte .LBB1438 .4byte .Ldebug_ranges0+0x5e0 .byte 0x1 .2byte 0x42d .byte 0x9 .4byte 0x3ca3 .byte 0xf .4byte 0x6039 .4byte .LLST269 .byte 0x1c .4byte .Ldebug_ranges0+0x5e0 .byte 0x11 .4byte 0x6045 .4byte .LLST270 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1442 .4byte .Ldebug_ranges0+0x610 .byte 0x1 .2byte 0x432 .byte 0x2 .4byte 0x3ccf .byte 0xf .4byte 0x6077 .4byte .LLST271 .byte 0xf .4byte 0x606b .4byte .LLST272 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1446 .4byte .Ldebug_ranges0+0x640 .byte 0x1 .2byte 0x43a .byte 0x2 .4byte 0x3cfb .byte 0xf .4byte 0x6077 .4byte .LLST273 .byte 0xf .4byte 0x606b .4byte .LLST274 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1450 .4byte .Ldebug_ranges0+0x670 .byte 0x1 .2byte 0x43c .byte 0x2 .4byte 0x3d27 .byte 0xf .4byte 0x6077 .4byte .LLST275 .byte 0xf .4byte 0x606b .4byte .LLST276 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1454 .8byte .LBE1454-.LBB1454 .byte 0x1 .2byte 0x43e .byte 0xa .4byte 0x3d69 .byte 0xf .4byte 0x6039 .4byte .LLST277 .byte 0x10 .8byte .LBB1455 .8byte .LBE1455-.LBB1455 .byte 0x11 .4byte 0x6045 .4byte .LLST278 .byte 0 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1456 .8byte .LBE1456-.LBB1456 .byte 0x1 .2byte 0x43f .byte 0x2 .4byte 0x3da3 .byte 0xf .4byte 0x5f3c .4byte .LLST279 .byte 0xb .8byte .LVL464 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x44 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1458 .8byte .LBE1458-.LBB1458 .byte 0x1 .2byte 0x441 .byte 0x9 .4byte 0x3de5 .byte 0xf .4byte 0x6039 .4byte .LLST280 .byte 0x10 .8byte .LBB1459 .8byte .LBE1459-.LBB1459 .byte 0x11 .4byte 0x6045 .4byte .LLST281 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1460 .4byte .Ldebug_ranges0+0x6a0 .byte 0x1 .2byte 0x443 .byte 0x2 .4byte 0x3e11 .byte 0xf .4byte 0x6077 .4byte .LLST282 .byte 0xf .4byte 0x606b .4byte .LLST283 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1464 .8byte .LBE1464-.LBB1464 .byte 0x1 .2byte 0x446 .byte 0x9 .4byte 0x3e53 .byte 0xf .4byte 0x6039 .4byte .LLST284 .byte 0x10 .8byte .LBB1465 .8byte .LBE1465-.LBB1465 .byte 0x11 .4byte 0x6045 .4byte .LLST285 .byte 0 .byte 0 .byte 0x28 .4byte 0x605e .8byte .LBB1466 .4byte .Ldebug_ranges0+0x6d0 .byte 0x1 .2byte 0x44a .byte 0x2 .byte 0xf .4byte 0x6077 .4byte .LLST286 .byte 0xf .4byte 0x606b .4byte .LLST287 .byte 0 .byte 0 .byte 0x8 .4byte .LASF90 .byte 0x1 .2byte 0x383 .byte 0xe .4byte 0x29 .8byte .LFB52 .8byte .LFE52-.LFB52 .byte 0x1 .byte 0x9c .4byte 0x40f9 .byte 0xd .4byte .LASF45 .byte 0x1 .2byte 0x383 .byte 0x2e .4byte 0xe2f .4byte .LLST247 .byte 0xd .4byte .LASF91 .byte 0x1 .2byte 0x383 .byte 0x41 .4byte 0x29 .4byte .LLST248 .byte 0xd .4byte .LASF92 .byte 0x1 .2byte 0x383 .byte 0x58 .4byte 0x29 .4byte .LLST249 .byte 0x9 .4byte .LASF46 .byte 0x1 .2byte 0x385 .byte 0x10 .4byte 0x29 .4byte .LLST250 .byte 0x12 .4byte 0x6028 .8byte .LBB1408 .4byte .Ldebug_ranges0+0x520 .byte 0x1 .2byte 0x387 .byte 0xd .4byte 0x3f15 .byte 0xf .4byte 0x6039 .4byte .LLST251 .byte 0x1c .4byte .Ldebug_ranges0+0x520 .byte 0x11 .4byte 0x6045 .4byte .LLST252 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1412 .8byte .LBE1412-.LBB1412 .byte 0x1 .2byte 0x389 .byte 0x3 .4byte 0x3f53 .byte 0x1d .4byte 0x6039 .byte 0x10 .8byte .LBB1413 .8byte .LBE1413-.LBB1413 .byte 0x11 .4byte 0x6045 .4byte .LLST253 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1414 .4byte .Ldebug_ranges0+0x550 .byte 0x1 .2byte 0x389 .byte 0x3 .4byte 0x3f7b .byte 0x1d .4byte 0x6077 .byte 0xf .4byte 0x606b .4byte .LLST254 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1418 .8byte .LBE1418-.LBB1418 .byte 0x1 .2byte 0x391 .byte 0x4 .4byte 0x3fa7 .byte 0x1d .4byte 0x6077 .byte 0xf .4byte 0x606b .4byte .LLST255 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1420 .4byte .Ldebug_ranges0+0x580 .byte 0x1 .2byte 0x3a0 .byte 0x4 .4byte 0x3fd0 .byte 0x1d .4byte 0x6077 .byte 0x29 .4byte 0x606b .byte 0xb3,0xe6,0x98,0x90,0x7f .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1423 .8byte .LBE1423-.LBB1423 .byte 0x1 .2byte 0x3a3 .byte 0x2 .4byte 0x400a .byte 0xf .4byte 0x5f3c .4byte .LLST256 .byte 0xb .8byte .LVL438 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x44 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1425 .8byte .LBE1425-.LBB1425 .byte 0x1 .2byte 0x3a5 .byte 0xc .4byte 0x404c .byte 0xf .4byte 0x6039 .4byte .LLST257 .byte 0x10 .8byte .LBB1426 .8byte .LBE1426-.LBB1426 .byte 0x11 .4byte 0x6045 .4byte .LLST258 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1427 .4byte .Ldebug_ranges0+0x5b0 .byte 0x1 .2byte 0x3a7 .byte 0x2 .4byte 0x4078 .byte 0xf .4byte 0x6077 .4byte .LLST259 .byte 0xf .4byte 0x606b .4byte .LLST260 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1431 .8byte .LBE1431-.LBB1431 .byte 0x1 .2byte 0x394 .byte 0x4 .4byte 0x40a4 .byte 0x1d .4byte 0x6077 .byte 0xf .4byte 0x606b .4byte .LLST261 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1433 .8byte .LBE1433-.LBB1433 .byte 0x1 .2byte 0x397 .byte 0x4 .4byte 0x40d0 .byte 0x1d .4byte 0x6077 .byte 0xf .4byte 0x606b .4byte .LLST262 .byte 0 .byte 0x1e .4byte 0x605e .8byte .LBB1435 .8byte .LBE1435-.LBB1435 .byte 0x1 .2byte 0x39d .byte 0x4 .byte 0x1d .4byte 0x6077 .byte 0xf .4byte 0x606b .4byte .LLST263 .byte 0 .byte 0 .byte 0x8 .4byte .LASF93 .byte 0x1 .2byte 0x358 .byte 0xe .4byte 0x29 .8byte .LFB51 .8byte .LFE51-.LFB51 .byte 0x1 .byte 0x9c .4byte 0x43dc .byte 0xd .4byte .LASF45 .byte 0x1 .2byte 0x358 .byte 0x2a .4byte 0xe2f .4byte .LLST224 .byte 0xd .4byte .LASF89 .byte 0x1 .2byte 0x358 .byte 0x3d .4byte 0x29 .4byte .LLST225 .byte 0xd .4byte .LASF91 .byte 0x1 .2byte 0x358 .byte 0x52 .4byte 0x29 .4byte .LLST226 .byte 0xd .4byte .LASF92 .byte 0x1 .2byte 0x358 .byte 0x69 .4byte 0x29 .4byte .LLST227 .byte 0x9 .4byte .LASF88 .byte 0x1 .2byte 0x35a .byte 0xa .4byte 0x37 .4byte .LLST228 .byte 0x27 .string "p0" .byte 0x1 .2byte 0x35a .byte 0x15 .4byte 0x37 .byte 0x1 .byte 0x1b .string "N" .byte 0x1 .2byte 0x35a .byte 0x1a .4byte 0x37 .4byte .LLST229 .byte 0x27 .string "M0" .byte 0x1 .2byte 0x35a .byte 0x1f .4byte 0x37 .byte 0x1 .byte 0x27 .string "M1" .byte 0x1 .2byte 0x35a .byte 0x24 .4byte 0x37 .byte 0x1 .byte 0x1b .string "x" .byte 0x1 .2byte 0x35b .byte 0x8 .4byte 0x30 .4byte .LLST230 .byte 0x9 .4byte .LASF72 .byte 0x1 .2byte 0x35c .byte 0x10 .4byte 0x29 .4byte .LLST231 .byte 0x12 .4byte 0x6028 .8byte .LBB1380 .4byte .Ldebug_ranges0+0x460 .byte 0x1 .2byte 0x361 .byte 0xc .4byte 0x41f9 .byte 0xf .4byte 0x6039 .4byte .LLST232 .byte 0x1c .4byte .Ldebug_ranges0+0x460 .byte 0x11 .4byte 0x6045 .4byte .LLST233 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1384 .8byte .LBE1384-.LBB1384 .byte 0x1 .2byte 0x363 .byte 0x5 .4byte 0x423b .byte 0xf .4byte 0x6039 .4byte .LLST234 .byte 0x10 .8byte .LBB1385 .8byte .LBE1385-.LBB1385 .byte 0x11 .4byte 0x6045 .4byte .LLST235 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1386 .4byte .Ldebug_ranges0+0x490 .byte 0x1 .2byte 0x363 .byte 0x5 .4byte 0x4267 .byte 0xf .4byte 0x6077 .4byte .LLST236 .byte 0xf .4byte 0x606b .4byte .LLST237 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1390 .8byte .LBE1390-.LBB1390 .byte 0x1 .2byte 0x367 .byte 0x3 .4byte 0x4293 .byte 0x1d .4byte 0x6077 .byte 0xf .4byte 0x606b .4byte .LLST238 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1392 .8byte .LBE1392-.LBB1392 .byte 0x1 .2byte 0x369 .byte 0xa .4byte 0x42d1 .byte 0x1d .4byte 0x6039 .byte 0x10 .8byte .LBB1393 .8byte .LBE1393-.LBB1393 .byte 0x11 .4byte 0x6045 .4byte .LLST239 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1394 .4byte .Ldebug_ranges0+0x4c0 .byte 0x1 .2byte 0x36d .byte 0x3 .4byte 0x42f9 .byte 0x1d .4byte 0x6077 .byte 0xf .4byte 0x606b .4byte .LLST240 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1398 .8byte .LBE1398-.LBB1398 .byte 0x1 .2byte 0x36f .byte 0x3 .4byte 0x4333 .byte 0xf .4byte 0x5f3c .4byte .LLST241 .byte 0xb .8byte .LVL412 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x44 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1400 .8byte .LBE1400-.LBB1400 .byte 0x1 .2byte 0x371 .byte 0xb .4byte 0x4375 .byte 0xf .4byte 0x6039 .4byte .LLST242 .byte 0x10 .8byte .LBB1401 .8byte .LBE1401-.LBB1401 .byte 0x11 .4byte 0x6045 .4byte .LLST243 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1402 .4byte .Ldebug_ranges0+0x4f0 .byte 0x1 .2byte 0x373 .byte 0x4 .4byte 0x43a1 .byte 0xf .4byte 0x6077 .4byte .LLST244 .byte 0xf .4byte 0x606b .4byte .LLST245 .byte 0 .byte 0x1e .4byte 0x6028 .8byte .LBB1406 .8byte .LBE1406-.LBB1406 .byte 0x1 .2byte 0x375 .byte 0xf .byte 0x1d .4byte 0x6039 .byte 0x10 .8byte .LBB1407 .8byte .LBE1407-.LBB1407 .byte 0x11 .4byte 0x6045 .4byte .LLST246 .byte 0 .byte 0 .byte 0 .byte 0x1f .4byte .LASF94 .byte 0x1 .2byte 0x19a .byte 0x6 .8byte .LFB50 .8byte .LFE50-.LFB50 .byte 0x1 .byte 0x9c .4byte 0x4eca .byte 0xd .4byte .LASF45 .byte 0x1 .2byte 0x19a .byte 0x2a .4byte 0xe2f .4byte .LLST148 .byte 0xa .4byte .LASF95 .byte 0x1 .2byte 0x19c .byte 0xf .4byte 0x29 .byte 0x1 .byte 0x58 .byte 0x9 .4byte .LASF44 .byte 0x1 .2byte 0x19d .byte 0xf .4byte 0x29 .4byte .LLST149 .byte 0x9 .4byte .LASF46 .byte 0x1 .2byte 0x19e .byte 0xf .4byte 0x29 .4byte .LLST150 .byte 0x9 .4byte .LASF96 .byte 0x1 .2byte 0x19f .byte 0xf .4byte 0x29 .4byte .LLST151 .byte 0x9 .4byte .LASF97 .byte 0x1 .2byte 0x1a0 .byte 0xf .4byte 0x29 .4byte .LLST152 .byte 0x9 .4byte .LASF98 .byte 0x1 .2byte 0x1a1 .byte 0xf .4byte 0x29 .4byte .LLST153 .byte 0x9 .4byte .LASF99 .byte 0x1 .2byte 0x1a2 .byte 0xf .4byte 0x29 .4byte .LLST154 .byte 0x1b .string "mr0" .byte 0x1 .2byte 0x1a3 .byte 0xf .4byte 0x29 .4byte .LLST155 .byte 0x1b .string "mr1" .byte 0x1 .2byte 0x1a4 .byte 0xf .4byte 0x29 .4byte .LLST156 .byte 0x1b .string "mr2" .byte 0x1 .2byte 0x1a5 .byte 0xf .4byte 0x29 .4byte .LLST157 .byte 0x1b .string "mr3" .byte 0x1 .2byte 0x1a6 .byte 0xf .4byte 0x29 .4byte .LLST158 .byte 0x9 .4byte .LASF100 .byte 0x1 .2byte 0x1a7 .byte 0xf .4byte 0x29 .4byte .LLST159 .byte 0x9 .4byte .LASF101 .byte 0x1 .2byte 0x1a8 .byte 0xf .4byte 0x29 .4byte .LLST160 .byte 0x1b .string "tcl" .byte 0x1 .2byte 0x1a9 .byte 0xf .4byte 0x29 .4byte .LLST161 .byte 0x9 .4byte .LASF102 .byte 0x1 .2byte 0x1aa .byte 0xf .4byte 0x29 .4byte .LLST162 .byte 0x9 .4byte .LASF103 .byte 0x1 .2byte 0x1ab .byte 0xf .4byte 0x29 .4byte .LLST163 .byte 0x9 .4byte .LASF104 .byte 0x1 .2byte 0x1ac .byte 0xf .4byte 0x29 .4byte .LLST164 .byte 0x9 .4byte .LASF105 .byte 0x1 .2byte 0x1ad .byte 0xf .4byte 0x29 .4byte .LLST165 .byte 0x9 .4byte .LASF106 .byte 0x1 .2byte 0x1ae .byte 0xf .4byte 0x29 .4byte .LLST166 .byte 0x9 .4byte .LASF107 .byte 0x1 .2byte 0x1af .byte 0xf .4byte 0x29 .4byte .LLST167 .byte 0x9 .4byte .LASF108 .byte 0x1 .2byte 0x1b0 .byte 0xf .4byte 0x29 .4byte .LLST168 .byte 0x9 .4byte .LASF109 .byte 0x1 .2byte 0x1b1 .byte 0xf .4byte 0x29 .4byte .LLST169 .byte 0x1b .string "trc" .byte 0x1 .2byte 0x1b2 .byte 0xf .4byte 0x29 .4byte .LLST170 .byte 0x9 .4byte .LASF110 .byte 0x1 .2byte 0x1b3 .byte 0xf .4byte 0x29 .4byte .LLST171 .byte 0x9 .4byte .LASF111 .byte 0x1 .2byte 0x1b4 .byte 0xf .4byte 0x29 .4byte .LLST172 .byte 0x1b .string "trp" .byte 0x1 .2byte 0x1b5 .byte 0xf .4byte 0x29 .4byte .LLST173 .byte 0x9 .4byte .LASF112 .byte 0x1 .2byte 0x1b6 .byte 0xf .4byte 0x29 .4byte .LLST174 .byte 0x1b .string "twr" .byte 0x1 .2byte 0x1b7 .byte 0xf .4byte 0x29 .4byte .LLST175 .byte 0x9 .4byte .LASF113 .byte 0x1 .2byte 0x1b8 .byte 0xf .4byte 0x29 .4byte .LLST176 .byte 0x1b .string "txp" .byte 0x1 .2byte 0x1b9 .byte 0xf .4byte 0x29 .4byte .LLST177 .byte 0x9 .4byte .LASF114 .byte 0x1 .2byte 0x1ba .byte 0xf .4byte 0x29 .4byte .LLST178 .byte 0x9 .4byte .LASF115 .byte 0x1 .2byte 0x1bb .byte 0xf .4byte 0x29 .4byte .LLST179 .byte 0x9 .4byte .LASF116 .byte 0x1 .2byte 0x1bc .byte 0xf .4byte 0x29 .4byte .LLST180 .byte 0x9 .4byte .LASF117 .byte 0x1 .2byte 0x1bd .byte 0xf .4byte 0x29 .4byte .LLST181 .byte 0x9 .4byte .LASF118 .byte 0x1 .2byte 0x1be .byte 0xf .4byte 0x29 .4byte .LLST182 .byte 0x9 .4byte .LASF119 .byte 0x1 .2byte 0x1bf .byte 0xf .4byte 0x29 .4byte .LLST183 .byte 0x9 .4byte .LASF120 .byte 0x1 .2byte 0x1c0 .byte 0xf .4byte 0x29 .4byte .LLST184 .byte 0x9 .4byte .LASF121 .byte 0x1 .2byte 0x1c1 .byte 0xf .4byte 0x29 .4byte .LLST185 .byte 0x9 .4byte .LASF122 .byte 0x1 .2byte 0x1c2 .byte 0xf .4byte 0x29 .4byte .LLST185 .byte 0x9 .4byte .LASF71 .byte 0x1 .2byte 0x1c4 .byte 0xf .4byte 0x29 .4byte .LLST187 .byte 0xe .4byte 0x605e .8byte .LBB1320 .8byte .LBE1320-.LBB1320 .byte 0x1 .2byte 0x315 .byte 0x3 .4byte 0x46e2 .byte 0xf .4byte 0x6077 .4byte .LLST188 .byte 0xf .4byte 0x606b .4byte .LLST189 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1322 .8byte .LBE1322-.LBB1322 .byte 0x1 .2byte 0x316 .byte 0x3 .4byte 0x4712 .byte 0xf .4byte 0x6077 .4byte .LLST190 .byte 0xf .4byte 0x606b .4byte .LLST191 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1324 .8byte .LBE1324-.LBB1324 .byte 0x1 .2byte 0x317 .byte 0x3 .4byte 0x4742 .byte 0xf .4byte 0x6077 .4byte .LLST192 .byte 0xf .4byte 0x606b .4byte .LLST193 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1326 .8byte .LBE1326-.LBB1326 .byte 0x1 .2byte 0x318 .byte 0x3 .4byte 0x4772 .byte 0xf .4byte 0x6077 .4byte .LLST194 .byte 0xf .4byte 0x606b .4byte .LLST195 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1328 .8byte .LBE1328-.LBB1328 .byte 0x1 .2byte 0x319 .byte 0x3 .4byte 0x47a2 .byte 0xf .4byte 0x6077 .4byte .LLST196 .byte 0xf .4byte 0x606b .4byte .LLST197 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1330 .4byte .Ldebug_ranges0+0x220 .byte 0x1 .2byte 0x326 .byte 0x2 .4byte 0x47ce .byte 0xf .4byte 0x6077 .4byte .LLST198 .byte 0xf .4byte 0x606b .4byte .LLST199 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1334 .4byte .Ldebug_ranges0+0x250 .byte 0x1 .2byte 0x329 .byte 0x2 .4byte 0x47fa .byte 0xf .4byte 0x6077 .4byte .LLST200 .byte 0xf .4byte 0x606b .4byte .LLST201 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1338 .4byte .Ldebug_ranges0+0x280 .byte 0x1 .2byte 0x32c .byte 0x2 .4byte 0x4826 .byte 0xf .4byte 0x6077 .4byte .LLST202 .byte 0xf .4byte 0x606b .4byte .LLST203 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1342 .4byte .Ldebug_ranges0+0x2b0 .byte 0x1 .2byte 0x32f .byte 0x2 .4byte 0x4852 .byte 0xf .4byte 0x6077 .4byte .LLST204 .byte 0xf .4byte 0x606b .4byte .LLST205 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1346 .4byte .Ldebug_ranges0+0x2e0 .byte 0x1 .2byte 0x332 .byte 0x2 .4byte 0x487e .byte 0xf .4byte 0x6077 .4byte .LLST206 .byte 0xf .4byte 0x606b .4byte .LLST207 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1350 .4byte .Ldebug_ranges0+0x310 .byte 0x1 .2byte 0x335 .byte 0x2 .4byte 0x48aa .byte 0xf .4byte 0x6077 .4byte .LLST208 .byte 0xf .4byte 0x606b .4byte .LLST209 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1354 .8byte .LBE1354-.LBB1354 .byte 0x1 .2byte 0x337 .byte 0xc .4byte 0x48ec .byte 0xf .4byte 0x6039 .4byte .LLST210 .byte 0x10 .8byte .LBB1355 .8byte .LBE1355-.LBB1355 .byte 0x11 .4byte 0x6045 .4byte .LLST211 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1356 .4byte .Ldebug_ranges0+0x340 .byte 0x1 .2byte 0x342 .byte 0x2 .4byte 0x4918 .byte 0xf .4byte 0x6077 .4byte .LLST212 .byte 0xf .4byte 0x606b .4byte .LLST213 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1360 .4byte .Ldebug_ranges0+0x370 .byte 0x1 .2byte 0x347 .byte 0x2 .4byte 0x4944 .byte 0xf .4byte 0x6077 .4byte .LLST214 .byte 0xf .4byte 0x606b .4byte .LLST215 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1364 .4byte .Ldebug_ranges0+0x3a0 .byte 0x1 .2byte 0x349 .byte 0x2 .4byte 0x4970 .byte 0xf .4byte 0x6077 .4byte .LLST216 .byte 0xf .4byte 0x606b .4byte .LLST217 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1368 .4byte .Ldebug_ranges0+0x3d0 .byte 0x1 .2byte 0x34a .byte 0x2 .4byte 0x499c .byte 0xf .4byte 0x6077 .4byte .LLST218 .byte 0xf .4byte 0x606b .4byte .LLST219 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1372 .4byte .Ldebug_ranges0+0x400 .byte 0x1 .2byte 0x34e .byte 0x2 .4byte 0x49c8 .byte 0xf .4byte 0x6077 .4byte .LLST220 .byte 0xf .4byte 0x606b .4byte .LLST221 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1376 .4byte .Ldebug_ranges0+0x430 .byte 0x1 .2byte 0x350 .byte 0x2 .4byte 0x49f4 .byte 0xf .4byte 0x6077 .4byte .LLST222 .byte 0xf .4byte 0x606b .4byte .LLST223 .byte 0 .byte 0x13 .8byte .LVL225 .4byte 0x4eca .4byte 0x4a13 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x3 .byte 0xa .2byte 0x15e .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL226 .4byte 0x4eca .4byte 0x4a32 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x3 .byte 0xa .2byte 0x1e78 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL227 .4byte 0x4eca .4byte 0x4a4f .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x38 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL228 .4byte 0x4eca .4byte 0x4a6c .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3f .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL229 .4byte 0x4eca .4byte 0x4a8a .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x32 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL231 .4byte 0x4eca .4byte 0x4aa7 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL234 .4byte 0x4eca .4byte 0x4ac5 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x35 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL236 .4byte 0x4eca .4byte 0x4ae3 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x26 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL240 .4byte 0x4eca .4byte 0x4afb .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x23 .byte 0 .byte 0x13 .8byte .LVL242 .4byte 0x4eca .4byte 0x4b18 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x36 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL245 .4byte 0x4eca .4byte 0x4b35 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3e .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL247 .4byte 0x4eca .4byte 0x4b53 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x30 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL249 .4byte 0x4eca .4byte 0x4b71 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x22 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL253 .4byte 0x4eca .4byte 0x4b8f .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x32 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL255 .4byte 0x4eca .4byte 0x4bac .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL257 .4byte 0x4eca .4byte 0x4bc9 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x44 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL259 .4byte 0x4eca .4byte 0x4be7 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x41 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL261 .4byte 0x4eca .4byte 0x4c04 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x38 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL263 .4byte 0x4eca .4byte 0x4c21 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3f .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL265 .4byte 0x4eca .4byte 0x4c3f .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x2d .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL267 .4byte 0x4eca .4byte 0x4c5e .byte 0xc .byte 0x1 .byte 0x5a .byte 0x3 .byte 0xa .2byte 0x1e78 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL270 .4byte 0x4eca .4byte 0x4c7d .byte 0xc .byte 0x1 .byte 0x5a .byte 0x3 .byte 0xa .2byte 0x148 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL274 .4byte 0x4eca .4byte 0x4c9b .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x32 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL277 .4byte 0x4eca .4byte 0x4cb8 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL280 .4byte 0x4eca .4byte 0x4cd5 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x48 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL283 .4byte 0x4eca .4byte 0x4cf3 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x46 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL285 .4byte 0x4eca .4byte 0x4d10 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x38 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL291 .4byte 0x4eca .4byte 0x4d2d .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3f .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL294 .4byte 0x4eca .4byte 0x4d4a .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x41 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL296 .4byte 0x4eca .4byte 0x4d68 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x2a .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL298 .4byte 0x4eca .4byte 0x4d87 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x3 .byte 0xa .2byte 0xf3c .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL301 .4byte 0x4eca .4byte 0x4da5 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0xd2 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL307 .4byte 0x4eca .4byte 0x4dc3 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x32 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL310 .4byte 0x4eca .4byte 0x4de0 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL313 .4byte 0x4eca .4byte 0x4dfd .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x48 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL316 .4byte 0x4eca .4byte 0x4e1b .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x46 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL318 .4byte 0x4eca .4byte 0x4e38 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x38 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL321 .4byte 0x4eca .4byte 0x4e55 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3f .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL324 .4byte 0x4eca .4byte 0x4e72 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x41 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL326 .4byte 0x4eca .4byte 0x4e90 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x2a .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL328 .4byte 0x4eca .4byte 0x4eaf .byte 0xc .byte 0x1 .byte 0x5a .byte 0x3 .byte 0xa .2byte 0xf3c .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0xb .8byte .LVL331 .4byte 0x4eca .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0xd2 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0 .byte 0x8 .4byte .LASF123 .byte 0x1 .2byte 0x18e .byte 0xe .4byte 0x29 .8byte .LFB49 .8byte .LFE49-.LFB49 .byte 0x1 .byte 0x9c .4byte 0x4f21 .byte 0xd .4byte .LASF124 .byte 0x1 .2byte 0x18e .byte 0x2b .4byte 0x29 .4byte .LLST145 .byte 0x25 .string "clk" .byte 0x1 .2byte 0x18e .byte 0x40 .4byte 0x29 .4byte .LLST146 .byte 0x9 .4byte .LASF125 .byte 0x1 .2byte 0x190 .byte 0xf .4byte 0x29 .4byte .LLST147 .byte 0 .byte 0x1f .4byte .LASF126 .byte 0x1 .2byte 0x166 .byte 0x6 .8byte .LFB48 .8byte .LFE48-.LFB48 .byte 0x1 .byte 0x9c .4byte 0x52cf .byte 0x24 .4byte .LASF45 .byte 0x1 .2byte 0x166 .byte 0x2d .4byte 0xe2f .byte 0x1 .byte 0x5a .byte 0x9 .4byte .LASF46 .byte 0x1 .2byte 0x168 .byte 0xf .4byte 0x29 .4byte .LLST108 .byte 0xe .4byte 0x6028 .8byte .LBB1284 .8byte .LBE1284-.LBB1284 .byte 0x1 .2byte 0x16a .byte 0xc .4byte 0x4fa2 .byte 0xf .4byte 0x6039 .4byte .LLST109 .byte 0x10 .8byte .LBB1285 .8byte .LBE1285-.LBB1285 .byte 0x11 .4byte 0x6045 .4byte .LLST110 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1286 .8byte .LBE1286-.LBB1286 .byte 0x1 .2byte 0x16d .byte 0x2 .4byte 0x4fd2 .byte 0xf .4byte 0x6077 .4byte .LLST111 .byte 0xf .4byte 0x606b .4byte .LLST112 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1288 .8byte .LBE1288-.LBB1288 .byte 0x1 .2byte 0x16e .byte 0x2 .4byte 0x5002 .byte 0xf .4byte 0x6077 .4byte .LLST113 .byte 0xf .4byte 0x606b .4byte .LLST114 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1290 .8byte .LBE1290-.LBB1290 .byte 0x1 .2byte 0x171 .byte 0x2 .4byte 0x5032 .byte 0xf .4byte 0x6077 .4byte .LLST115 .byte 0xf .4byte 0x606b .4byte .LLST116 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1292 .8byte .LBE1292-.LBB1292 .byte 0x1 .2byte 0x172 .byte 0x2 .4byte 0x5062 .byte 0xf .4byte 0x6077 .4byte .LLST117 .byte 0xf .4byte 0x606b .4byte .LLST118 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1294 .8byte .LBE1294-.LBB1294 .byte 0x1 .2byte 0x174 .byte 0x2 .4byte 0x5092 .byte 0xf .4byte 0x6077 .4byte .LLST119 .byte 0xf .4byte 0x606b .4byte .LLST120 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1296 .8byte .LBE1296-.LBB1296 .byte 0x1 .2byte 0x175 .byte 0x2 .4byte 0x50c2 .byte 0xf .4byte 0x6077 .4byte .LLST121 .byte 0xf .4byte 0x606b .4byte .LLST122 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1298 .8byte .LBE1298-.LBB1298 .byte 0x1 .2byte 0x177 .byte 0x2 .4byte 0x50f2 .byte 0xf .4byte 0x6077 .4byte .LLST123 .byte 0xf .4byte 0x606b .4byte .LLST124 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1300 .8byte .LBE1300-.LBB1300 .byte 0x1 .2byte 0x178 .byte 0x2 .4byte 0x5122 .byte 0xf .4byte 0x6077 .4byte .LLST125 .byte 0xf .4byte 0x606b .4byte .LLST126 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1302 .8byte .LBE1302-.LBB1302 .byte 0x1 .2byte 0x17a .byte 0x2 .4byte 0x5152 .byte 0xf .4byte 0x6077 .4byte .LLST127 .byte 0xf .4byte 0x606b .4byte .LLST128 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1304 .8byte .LBE1304-.LBB1304 .byte 0x1 .2byte 0x17b .byte 0x2 .4byte 0x5182 .byte 0xf .4byte 0x6077 .4byte .LLST129 .byte 0xf .4byte 0x606b .4byte .LLST130 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1306 .8byte .LBE1306-.LBB1306 .byte 0x1 .2byte 0x17d .byte 0x2 .4byte 0x51b2 .byte 0xf .4byte 0x6077 .4byte .LLST131 .byte 0xf .4byte 0x606b .4byte .LLST132 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1308 .8byte .LBE1308-.LBB1308 .byte 0x1 .2byte 0x17e .byte 0x2 .4byte 0x51e2 .byte 0xf .4byte 0x6077 .4byte .LLST133 .byte 0xf .4byte 0x606b .4byte .LLST134 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1310 .8byte .LBE1310-.LBB1310 .byte 0x1 .2byte 0x180 .byte 0x2 .4byte 0x5212 .byte 0xf .4byte 0x6077 .4byte .LLST135 .byte 0xf .4byte 0x606b .4byte .LLST136 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1312 .8byte .LBE1312-.LBB1312 .byte 0x1 .2byte 0x181 .byte 0x2 .4byte 0x5242 .byte 0xf .4byte 0x6077 .4byte .LLST137 .byte 0xf .4byte 0x606b .4byte .LLST138 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1314 .8byte .LBE1314-.LBB1314 .byte 0x1 .2byte 0x183 .byte 0x2 .4byte 0x5272 .byte 0xf .4byte 0x6077 .4byte .LLST139 .byte 0xf .4byte 0x606b .4byte .LLST140 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1316 .8byte .LBE1316-.LBB1316 .byte 0x1 .2byte 0x184 .byte 0x2 .4byte 0x52a2 .byte 0xf .4byte 0x6077 .4byte .LLST141 .byte 0xf .4byte 0x606b .4byte .LLST142 .byte 0 .byte 0x1e .4byte 0x605e .8byte .LBB1318 .8byte .LBE1318-.LBB1318 .byte 0x1 .2byte 0x185 .byte 0x2 .byte 0xf .4byte 0x6077 .4byte .LLST143 .byte 0xf .4byte 0x606b .4byte .LLST144 .byte 0 .byte 0 .byte 0x1f .4byte .LASF127 .byte 0x1 .2byte 0x141 .byte 0x6 .8byte .LFB47 .8byte .LFE47-.LFB47 .byte 0x1 .byte 0x9c .4byte 0x54e2 .byte 0xd .4byte .LASF45 .byte 0x1 .2byte 0x141 .byte 0x2c .4byte 0xe2f .4byte .LLST91 .byte 0x9 .4byte .LASF46 .byte 0x1 .2byte 0x143 .byte 0xf .4byte 0x29 .4byte .LLST92 .byte 0x1b .string "i" .byte 0x1 .2byte 0x143 .byte 0x17 .4byte 0x29 .4byte .LLST93 .byte 0x1b .string "j" .byte 0x1 .2byte 0x143 .byte 0x19 .4byte 0x29 .4byte .LLST94 .byte 0x9 .4byte .LASF40 .byte 0x1 .2byte 0x143 .byte 0x1b .4byte 0x29 .4byte .LLST95 .byte 0xa .4byte .LASF128 .byte 0x1 .2byte 0x144 .byte 0xf .4byte 0x54e2 .byte 0x3 .byte 0x91 .byte 0x90,0x7d .byte 0xa .4byte .LASF129 .byte 0x1 .2byte 0x149 .byte 0xf .4byte 0x54e2 .byte 0x3 .byte 0x91 .byte 0xc0,0x7e .byte 0x12 .4byte 0x6028 .8byte .LBB1262 .4byte .Ldebug_ranges0+0x150 .byte 0x1 .2byte 0x14d .byte 0xc .4byte 0x5393 .byte 0xf .4byte 0x6039 .4byte .LLST96 .byte 0x1c .4byte .Ldebug_ranges0+0x150 .byte 0x11 .4byte 0x6045 .4byte .LLST97 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1266 .4byte .Ldebug_ranges0+0x180 .byte 0x1 .2byte 0x14f .byte 0x2 .4byte 0x53bf .byte 0xf .4byte 0x6077 .4byte .LLST98 .byte 0xf .4byte 0x606b .4byte .LLST99 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1272 .8byte .LBE1272-.LBB1272 .byte 0x1 .2byte 0x156 .byte 0xe .4byte 0x5401 .byte 0xf .4byte 0x6039 .4byte .LLST100 .byte 0x10 .8byte .LBB1273 .8byte .LBE1273-.LBB1273 .byte 0x11 .4byte 0x6045 .4byte .LLST101 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1274 .4byte .Ldebug_ranges0+0x1c0 .byte 0x1 .2byte 0x158 .byte 0x4 .4byte 0x542d .byte 0xf .4byte 0x6077 .4byte .LLST102 .byte 0xf .4byte 0x606b .4byte .LLST103 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1278 .8byte .LBE1278-.LBB1278 .byte 0x1 .2byte 0x15c .byte 0xc .4byte 0x546f .byte 0xf .4byte 0x6039 .4byte .LLST104 .byte 0x10 .8byte .LBB1279 .8byte .LBE1279-.LBB1279 .byte 0x11 .4byte 0x6045 .4byte .LLST105 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1280 .4byte .Ldebug_ranges0+0x1f0 .byte 0x1 .2byte 0x15e .byte 0x2 .4byte 0x549b .byte 0xf .4byte 0x6077 .4byte .LLST106 .byte 0xf .4byte 0x606b .4byte .LLST107 .byte 0 .byte 0x13 .8byte .LVL104 .4byte 0x625b .4byte 0x54bf .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x72 .byte 0 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0xc .byte 0x1 .byte 0x5c .byte 0x2 .byte 0x8 .byte 0xb0 .byte 0 .byte 0xb .8byte .LVL105 .4byte 0x625b .byte 0xc .byte 0x1 .byte 0x5a .byte 0x3 .byte 0x91 .byte 0xc0,0x7e .byte 0xc .byte 0x1 .byte 0x5b .byte 0x3 .byte 0x78 .byte 0xb0,0x1 .byte 0xc .byte 0x1 .byte 0x5c .byte 0x2 .byte 0x8 .byte 0xb0 .byte 0 .byte 0 .byte 0x22 .4byte 0x29 .4byte 0x54f8 .byte 0x23 .4byte 0x3e .byte 0x3 .byte 0x23 .4byte 0x3e .byte 0xa .byte 0 .byte 0x2a .4byte .LASF130 .byte 0x1 .byte 0xe6 .byte 0x6 .8byte .LFB46 .8byte .LFE46-.LFB46 .byte 0x1 .byte 0x9c .4byte 0x5c12 .byte 0x2b .4byte .LASF45 .byte 0x1 .byte 0xe6 .byte 0x2c .4byte 0xe2f .4byte .LLST27 .byte 0x2c .4byte .LASF46 .byte 0x1 .byte 0xe8 .byte 0xf .4byte 0x29 .4byte .LLST28 .byte 0x2d .string "i" .byte 0x1 .byte 0xe9 .byte 0xf .4byte 0x29 .4byte .LLST29 .byte 0x2e .4byte 0x6028 .8byte .LBB1192 .8byte .LBE1192-.LBB1192 .byte 0x1 .byte 0xed .byte 0xd .4byte 0x5585 .byte 0xf .4byte 0x6039 .4byte .LLST30 .byte 0x10 .8byte .LBB1193 .8byte .LBE1193-.LBB1193 .byte 0x11 .4byte 0x6045 .4byte .LLST31 .byte 0 .byte 0 .byte 0x2e .4byte 0x605e .8byte .LBB1194 .8byte .LBE1194-.LBB1194 .byte 0x1 .byte 0xef .byte 0x3 .4byte 0x55b4 .byte 0xf .4byte 0x6077 .4byte .LLST32 .byte 0xf .4byte 0x606b .4byte .LLST33 .byte 0 .byte 0x2e .4byte 0x6028 .8byte .LBB1196 .8byte .LBE1196-.LBB1196 .byte 0x1 .byte 0xf4 .byte 0xd .4byte 0x55f5 .byte 0xf .4byte 0x6039 .4byte .LLST34 .byte 0x10 .8byte .LBB1197 .8byte .LBE1197-.LBB1197 .byte 0x11 .4byte 0x6045 .4byte .LLST35 .byte 0 .byte 0 .byte 0x2e .4byte 0x605e .8byte .LBB1198 .8byte .LBE1198-.LBB1198 .byte 0x1 .byte 0xf6 .byte 0x3 .4byte 0x5624 .byte 0xf .4byte 0x6077 .4byte .LLST36 .byte 0xf .4byte 0x606b .4byte .LLST37 .byte 0 .byte 0x2e .4byte 0x6028 .8byte .LBB1200 .8byte .LBE1200-.LBB1200 .byte 0x1 .byte 0xfa .byte 0xc .4byte 0x5665 .byte 0xf .4byte 0x6039 .4byte .LLST38 .byte 0x10 .8byte .LBB1201 .8byte .LBE1201-.LBB1201 .byte 0x11 .4byte 0x6045 .4byte .LLST39 .byte 0 .byte 0 .byte 0x2f .4byte 0x605e .8byte .LBB1202 .4byte .Ldebug_ranges0+0x90 .byte 0x1 .byte 0xfc .byte 0x2 .4byte 0x5690 .byte 0xf .4byte 0x6077 .4byte .LLST40 .byte 0xf .4byte 0x606b .4byte .LLST41 .byte 0 .byte 0x2e .4byte 0x6028 .8byte .LBB1206 .8byte .LBE1206-.LBB1206 .byte 0x1 .byte 0xff .byte 0xc .4byte 0x56d1 .byte 0xf .4byte 0x6039 .4byte .LLST42 .byte 0x10 .8byte .LBB1207 .8byte .LBE1207-.LBB1207 .byte 0x11 .4byte 0x6045 .4byte .LLST43 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1208 .8byte .LBE1208-.LBB1208 .byte 0x1 .2byte 0x101 .byte 0x2 .4byte 0x5701 .byte 0xf .4byte 0x6077 .4byte .LLST44 .byte 0xf .4byte 0x606b .4byte .LLST45 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1210 .8byte .LBE1210-.LBB1210 .byte 0x1 .2byte 0x102 .byte 0xc .4byte 0x5743 .byte 0xf .4byte 0x6039 .4byte .LLST46 .byte 0x10 .8byte .LBB1211 .8byte .LBE1211-.LBB1211 .byte 0x11 .4byte 0x6045 .4byte .LLST47 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1212 .8byte .LBE1212-.LBB1212 .byte 0x1 .2byte 0x104 .byte 0x2 .4byte 0x5773 .byte 0xf .4byte 0x6077 .4byte .LLST48 .byte 0xf .4byte 0x606b .4byte .LLST49 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1214 .8byte .LBE1214-.LBB1214 .byte 0x1 .2byte 0x107 .byte 0xc .4byte 0x57b5 .byte 0xf .4byte 0x6039 .4byte .LLST50 .byte 0x10 .8byte .LBB1215 .8byte .LBE1215-.LBB1215 .byte 0x11 .4byte 0x6045 .4byte .LLST51 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1216 .8byte .LBE1216-.LBB1216 .byte 0x1 .2byte 0x109 .byte 0x2 .4byte 0x57e5 .byte 0xf .4byte 0x6077 .4byte .LLST52 .byte 0xf .4byte 0x606b .4byte .LLST53 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1218 .8byte .LBE1218-.LBB1218 .byte 0x1 .2byte 0x10a .byte 0xc .4byte 0x5827 .byte 0xf .4byte 0x6039 .4byte .LLST54 .byte 0x10 .8byte .LBB1219 .8byte .LBE1219-.LBB1219 .byte 0x11 .4byte 0x6045 .4byte .LLST55 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1220 .8byte .LBE1220-.LBB1220 .byte 0x1 .2byte 0x10c .byte 0x2 .4byte 0x5857 .byte 0xf .4byte 0x6077 .4byte .LLST56 .byte 0xf .4byte 0x606b .4byte .LLST57 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1222 .8byte .LBE1222-.LBB1222 .byte 0x1 .2byte 0x10f .byte 0xc .4byte 0x5899 .byte 0xf .4byte 0x6039 .4byte .LLST58 .byte 0x10 .8byte .LBB1223 .8byte .LBE1223-.LBB1223 .byte 0x11 .4byte 0x6045 .4byte .LLST59 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1224 .8byte .LBE1224-.LBB1224 .byte 0x1 .2byte 0x111 .byte 0x2 .4byte 0x58c9 .byte 0xf .4byte 0x6077 .4byte .LLST60 .byte 0xf .4byte 0x606b .4byte .LLST61 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1226 .8byte .LBE1226-.LBB1226 .byte 0x1 .2byte 0x114 .byte 0xc .4byte 0x590b .byte 0xf .4byte 0x6039 .4byte .LLST62 .byte 0x10 .8byte .LBB1227 .8byte .LBE1227-.LBB1227 .byte 0x11 .4byte 0x6045 .4byte .LLST63 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1228 .8byte .LBE1228-.LBB1228 .byte 0x1 .2byte 0x116 .byte 0x2 .4byte 0x593b .byte 0xf .4byte 0x6077 .4byte .LLST64 .byte 0xf .4byte 0x606b .4byte .LLST65 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1230 .8byte .LBE1230-.LBB1230 .byte 0x1 .2byte 0x119 .byte 0xc .4byte 0x597d .byte 0xf .4byte 0x6039 .4byte .LLST66 .byte 0x10 .8byte .LBB1231 .8byte .LBE1231-.LBB1231 .byte 0x11 .4byte 0x6045 .4byte .LLST67 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1232 .4byte .Ldebug_ranges0+0xc0 .byte 0x1 .2byte 0x11b .byte 0x2 .4byte 0x59a9 .byte 0xf .4byte 0x6077 .4byte .LLST68 .byte 0xf .4byte 0x606b .4byte .LLST69 .byte 0 .byte 0x12 .4byte 0x5f2f .8byte .LBB1236 .4byte .Ldebug_ranges0+0xf0 .byte 0x1 .2byte 0x11c .byte 0x2 .4byte 0x59df .byte 0xf .4byte 0x5f3c .4byte .LLST70 .byte 0xb .8byte .LVL76 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x31 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1240 .8byte .LBE1240-.LBB1240 .byte 0x1 .2byte 0x121 .byte 0xd .4byte 0x5a21 .byte 0xf .4byte 0x6039 .4byte .LLST71 .byte 0x10 .8byte .LBB1241 .8byte .LBE1241-.LBB1241 .byte 0x11 .4byte 0x6045 .4byte .LLST72 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1242 .8byte .LBE1242-.LBB1242 .byte 0x1 .2byte 0x123 .byte 0x3 .4byte 0x5a51 .byte 0xf .4byte 0x6077 .4byte .LLST73 .byte 0xf .4byte 0x606b .4byte .LLST74 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1244 .8byte .LBE1244-.LBB1244 .byte 0x1 .2byte 0x128 .byte 0xd .4byte 0x5a93 .byte 0xf .4byte 0x6039 .4byte .LLST75 .byte 0x10 .8byte .LBB1245 .8byte .LBE1245-.LBB1245 .byte 0x11 .4byte 0x6045 .4byte .LLST76 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1246 .8byte .LBE1246-.LBB1246 .byte 0x1 .2byte 0x12a .byte 0x3 .4byte 0x5ac3 .byte 0xf .4byte 0x6077 .4byte .LLST77 .byte 0xf .4byte 0x606b .4byte .LLST78 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1248 .8byte .LBE1248-.LBB1248 .byte 0x1 .2byte 0x12e .byte 0xc .4byte 0x5b05 .byte 0xf .4byte 0x6039 .4byte .LLST79 .byte 0x10 .8byte .LBB1249 .8byte .LBE1249-.LBB1249 .byte 0x11 .4byte 0x6045 .4byte .LLST80 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1250 .8byte .LBE1250-.LBB1250 .byte 0x1 .2byte 0x130 .byte 0x2 .4byte 0x5b35 .byte 0xf .4byte 0x6077 .4byte .LLST81 .byte 0xf .4byte 0x606b .4byte .LLST82 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1252 .8byte .LBE1252-.LBB1252 .byte 0x1 .2byte 0x131 .byte 0xc .4byte 0x5b77 .byte 0xf .4byte 0x6039 .4byte .LLST83 .byte 0x10 .8byte .LBB1253 .8byte .LBE1253-.LBB1253 .byte 0x11 .4byte 0x6045 .4byte .LLST84 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1254 .8byte .LBE1254-.LBB1254 .byte 0x1 .2byte 0x133 .byte 0x2 .4byte 0x5ba7 .byte 0xf .4byte 0x6077 .4byte .LLST85 .byte 0xf .4byte 0x606b .4byte .LLST86 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1256 .8byte .LBE1256-.LBB1256 .byte 0x1 .2byte 0x134 .byte 0xc .4byte 0x5be9 .byte 0xf .4byte 0x6039 .4byte .LLST87 .byte 0x10 .8byte .LBB1257 .8byte .LBE1257-.LBB1257 .byte 0x11 .4byte 0x6045 .4byte .LLST88 .byte 0 .byte 0 .byte 0x28 .4byte 0x605e .8byte .LBB1258 .4byte .Ldebug_ranges0+0x120 .byte 0x1 .2byte 0x136 .byte 0x2 .byte 0xf .4byte 0x6077 .4byte .LLST89 .byte 0xf .4byte 0x606b .4byte .LLST90 .byte 0 .byte 0 .byte 0x2a .4byte .LASF131 .byte 0x1 .byte 0x95 .byte 0x6 .8byte .LFB45 .8byte .LFE45-.LFB45 .byte 0x1 .byte 0x9c .4byte 0x5ce8 .byte 0x2e .4byte 0x605e .8byte .LBB1180 .8byte .LBE1180-.LBB1180 .byte 0x1 .byte 0x98 .byte 0x2 .4byte 0x5c5f .byte 0xf .4byte 0x6077 .4byte .LLST21 .byte 0xf .4byte 0x606b .4byte .LLST22 .byte 0 .byte 0x2e .4byte 0x605e .8byte .LBB1182 .8byte .LBE1182-.LBB1182 .byte 0x1 .byte 0x99 .byte 0x2 .4byte 0x5c8e .byte 0xf .4byte 0x6077 .4byte .LLST23 .byte 0xf .4byte 0x606b .4byte .LLST24 .byte 0 .byte 0x2f .4byte 0x605e .8byte .LBB1184 .4byte .Ldebug_ranges0+0x30 .byte 0x1 .byte 0x9a .byte 0x2 .4byte 0x5cb9 .byte 0xf .4byte 0x6077 .4byte .LLST25 .byte 0xf .4byte 0x606b .4byte .LLST26 .byte 0 .byte 0x30 .4byte 0x5f2f .8byte .LBB1187 .4byte .Ldebug_ranges0+0x60 .byte 0x1 .byte 0x9b .byte 0x2 .byte 0x31 .4byte 0x5f3c .byte 0xa .byte 0x17 .8byte .LVL30 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0 .byte 0x2a .4byte .LASF132 .byte 0x1 .byte 0x88 .byte 0x6 .8byte .LFB44 .8byte .LFE44-.LFB44 .byte 0x1 .byte 0x9c .4byte 0x5dc6 .byte 0x2e .4byte 0x605e .8byte .LBB1172 .8byte .LBE1172-.LBB1172 .byte 0x1 .byte 0x8b .byte 0x2 .4byte 0x5d35 .byte 0xf .4byte 0x6077 .4byte .LLST15 .byte 0xf .4byte 0x606b .4byte .LLST16 .byte 0 .byte 0x2e .4byte 0x605e .8byte .LBB1174 .8byte .LBE1174-.LBB1174 .byte 0x1 .byte 0x8c .byte 0x2 .4byte 0x5d64 .byte 0xf .4byte 0x6077 .4byte .LLST17 .byte 0xf .4byte 0x606b .4byte .LLST18 .byte 0 .byte 0x2e .4byte 0x605e .8byte .LBB1176 .8byte .LBE1176-.LBB1176 .byte 0x1 .byte 0x8d .byte 0x2 .4byte 0x5d93 .byte 0xf .4byte 0x6077 .4byte .LLST19 .byte 0xf .4byte 0x606b .4byte .LLST20 .byte 0 .byte 0x32 .4byte 0x5f2f .8byte .LBB1178 .8byte .LBE1178-.LBB1178 .byte 0x1 .byte 0x8e .byte 0x2 .byte 0x31 .4byte 0x5f3c .byte 0xa .byte 0x17 .8byte .LVL25 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0 .byte 0x33 .4byte .LASF134 .byte 0x1 .byte 0x7d .byte 0x6 .byte 0x1 .4byte 0x5df8 .byte 0x34 .4byte .LASF45 .byte 0x1 .byte 0x7d .byte 0x1f .4byte 0x5df8 .byte 0x34 .4byte .LASF135 .byte 0x1 .byte 0x7d .byte 0x32 .4byte 0x29 .byte 0x34 .4byte .LASF125 .byte 0x1 .byte 0x7d .byte 0x45 .4byte 0x29 .byte 0 .byte 0x15 .byte 0x8 .4byte 0x29 .byte 0x2a .4byte .LASF136 .byte 0x1 .byte 0x5a .byte 0x6 .8byte .LFB42 .8byte .LFE42-.LFB42 .byte 0x1 .byte 0x9c .4byte 0x5f2f .byte 0x2b .4byte .LASF45 .byte 0x1 .byte 0x5a .byte 0x23 .4byte 0xe2f .4byte .LLST4 .byte 0x2c .4byte .LASF46 .byte 0x1 .byte 0x5c .byte 0xf .4byte 0x29 .4byte .LLST5 .byte 0x2c .4byte .LASF137 .byte 0x1 .byte 0x5d .byte 0xf .4byte 0x29 .4byte .LLST6 .byte 0x2e .4byte 0x6028 .8byte .LBB1162 .8byte .LBE1162-.LBB1162 .byte 0x1 .byte 0x6b .byte 0xc .4byte 0x5e8d .byte 0xf .4byte 0x6039 .4byte .LLST7 .byte 0x10 .8byte .LBB1163 .8byte .LBE1163-.LBB1163 .byte 0x11 .4byte 0x6045 .4byte .LLST8 .byte 0 .byte 0 .byte 0x2f .4byte 0x605e .8byte .LBB1164 .4byte .Ldebug_ranges0+0 .byte 0x1 .byte 0x6f .byte 0x2 .4byte 0x5eb8 .byte 0xf .4byte 0x6077 .4byte .LLST9 .byte 0xf .4byte 0x606b .4byte .LLST10 .byte 0 .byte 0x2e .4byte 0x5f2f .8byte .LBB1168 .8byte .LBE1168-.LBB1168 .byte 0x1 .byte 0x70 .byte 0x2 .4byte 0x5ef1 .byte 0xf .4byte 0x5f3c .4byte .LLST11 .byte 0xb .8byte .LVL17 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x31 .byte 0 .byte 0 .byte 0x32 .4byte 0x6028 .8byte .LBB1170 .8byte .LBE1170-.LBB1170 .byte 0x1 .byte 0x73 .byte 0xc .byte 0xf .4byte 0x6039 .4byte .LLST12 .byte 0x10 .8byte .LBB1171 .8byte .LBE1171-.LBB1171 .byte 0x11 .4byte 0x6045 .4byte .LLST13 .byte 0 .byte 0 .byte 0 .byte 0x33 .4byte .LASF138 .byte 0x1 .byte 0x39 .byte 0x6 .byte 0x1 .4byte 0x5f47 .byte 0x35 .string "n" .byte 0x1 .byte 0x39 .byte 0x20 .4byte 0x29 .byte 0 .byte 0x36 .4byte .LASF139 .byte 0x1 .byte 0x28 .byte 0x7 .4byte 0x5fb6 .8byte .LFB40 .8byte .LFE40-.LFB40 .byte 0x1 .byte 0x9c .4byte 0x5fb6 .byte 0x37 .string "dst" .byte 0x1 .byte 0x28 .byte 0x19 .4byte 0x5fb6 .byte 0x1 .byte 0x5a .byte 0x37 .string "src" .byte 0x1 .byte 0x28 .byte 0x29 .4byte 0x5fb8 .byte 0x1 .byte 0x5b .byte 0x38 .string "num" .byte 0x1 .byte 0x28 .byte 0x34 .4byte 0xad .4byte .LLST0 .byte 0x2c .4byte .LASF140 .byte 0x1 .byte 0x2c .byte 0x12 .4byte 0x5fbf .4byte .LLST1 .byte 0x2c .4byte .LASF141 .byte 0x1 .byte 0x2d .byte 0x12 .4byte 0x5fbf .4byte .LLST2 .byte 0 .byte 0x39 .byte 0x8 .byte 0x15 .byte 0x8 .4byte 0x5fbe .byte 0x3a .byte 0x15 .byte 0x8 .4byte 0x68 .byte 0x3b .4byte .LASF150 .byte 0x1 .byte 0x23 .byte 0x1c .4byte 0x37 .8byte .LFB39 .8byte .LFE39-.LFB39 .byte 0x1 .byte 0x9c .byte 0x3c .4byte .LASF151 .byte 0x1 .byte 0x20 .byte 0x1c .8byte .LFB38 .8byte .LFE38-.LFB38 .byte 0x1 .byte 0x9c .byte 0x2a .4byte .LASF142 .byte 0x1 .byte 0x1c .byte 0x1d .8byte .LFB37 .8byte .LFE37-.LFB37 .byte 0x1 .byte 0x9c .4byte 0x6028 .byte 0x37 .string "n" .byte 0x1 .byte 0x1c .byte 0x31 .4byte 0x37 .byte 0x1 .byte 0x5a .byte 0 .byte 0x3d .4byte .LASF152 .byte 0x2 .byte 0x88 .byte 0x13 .4byte 0x95 .byte 0x3 .4byte 0x6052 .byte 0x34 .4byte .LASF143 .byte 0x2 .byte 0x88 .byte 0x39 .4byte 0x6052 .byte 0x3e .string "val" .byte 0x2 .byte 0x8a .byte 0x6 .4byte 0x95 .byte 0 .byte 0x15 .byte 0x8 .4byte 0x6059 .byte 0x3f .byte 0x40 .4byte 0x6058 .byte 0x41 .4byte .LASF153 .byte 0x2 .byte 0x5e .byte 0x14 .byte 0x3 .4byte 0x6084 .byte 0x35 .string "val" .byte 0x2 .byte 0x5e .byte 0x22 .4byte 0x95 .byte 0x34 .4byte .LASF143 .byte 0x2 .byte 0x5e .byte 0x3e .4byte 0x6084 .byte 0 .byte 0x15 .byte 0x8 .4byte 0x6058 .byte 0x42 .4byte 0x5f2f .8byte .LFB41 .8byte .LFE41-.LFB41 .byte 0x1 .byte 0x9c .4byte 0x60ca .byte 0xf .4byte 0x5f3c .4byte .LLST3 .byte 0x17 .8byte .LVL6 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0xc .4byte 0xffffffff .byte 0x1a .byte 0 .byte 0 .byte 0x42 .4byte 0x5dc6 .8byte .LFB43 .8byte .LFE43-.LFB43 .byte 0x1 .byte 0x9c .4byte 0x60fd .byte 0x21 .4byte 0x5dd3 .byte 0x1 .byte 0x5a .byte 0xf .4byte 0x5ddf .4byte .LLST14 .byte 0x21 .4byte 0x5deb .byte 0x1 .byte 0x5c .byte 0 .byte 0x42 .4byte 0xf0a .8byte .LFB64 .8byte .LFE64-.LFB64 .byte 0x1 .byte 0x9c .4byte 0x6243 .byte 0x21 .4byte 0xf18 .byte 0x1 .byte 0x5a .byte 0x11 .4byte 0xf25 .4byte .LLST580 .byte 0xe .4byte 0x6028 .8byte .LBB1884 .8byte .LBE1884-.LBB1884 .byte 0x1 .2byte 0x99a .byte 0xb .4byte 0x616a .byte 0xf .4byte 0x6039 .4byte .LLST581 .byte 0x10 .8byte .LBB1885 .8byte .LBE1885-.LBB1885 .byte 0x11 .4byte 0x6045 .4byte .LLST582 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1886 .8byte .LBE1886-.LBB1886 .byte 0x1 .2byte 0x99d .byte 0x3 .4byte 0x619a .byte 0xf .4byte 0x6077 .4byte .LLST583 .byte 0xf .4byte 0x606b .4byte .LLST584 .byte 0 .byte 0x43 .4byte 0xf0a .8byte .LBB1888 .8byte .LBE1888-.LBB1888 .byte 0xf .4byte 0xf18 .4byte .LLST585 .byte 0x10 .8byte .LBB1889 .8byte .LBE1889-.LBB1889 .byte 0x11 .4byte 0xf25 .4byte .LLST586 .byte 0xe .4byte 0x6028 .8byte .LBB1890 .8byte .LBE1890-.LBB1890 .byte 0x1 .2byte 0x9a1 .byte 0xc .4byte 0x6214 .byte 0xf .4byte 0x6039 .4byte .LLST587 .byte 0x10 .8byte .LBB1891 .8byte .LBE1891-.LBB1891 .byte 0x11 .4byte 0x6045 .4byte .LLST588 .byte 0 .byte 0 .byte 0x1e .4byte 0x605e .8byte .LBB1892 .8byte .LBE1892-.LBB1892 .byte 0x1 .2byte 0x9a4 .byte 0x4 .byte 0xf .4byte 0x6077 .4byte .LLST589 .byte 0xf .4byte 0x606b .4byte .LLST590 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0x44 .4byte .LASF144 .4byte .LASF144 .byte 0x1 .byte 0x37 .byte 0xe .byte 0x44 .4byte .LASF145 .4byte .LASF145 .byte 0x5 .byte 0x4b .byte 0x5 .byte 0x45 .4byte .LASF154 .4byte .LASF155 .byte 0x6 .byte 0 .byte 0 .section .debug_abbrev,"",@progbits .Ldebug_abbrev0: .byte 0x1 .byte 0x11 .byte 0x1 .byte 0x25 .byte 0xe .byte 0x13 .byte 0xb .byte 0x3 .byte 0xe .byte 0x1b .byte 0xe .byte 0x55 .byte 0x17 .byte 0x11 .byte 0x1 .byte 0x10 .byte 0x17 .byte 0 .byte 0 .byte 0x2 .byte 0x24 .byte 0 .byte 0xb .byte 0xb .byte 0x3e .byte 0xb .byte 0x3 .byte 0xe .byte 0 .byte 0 .byte 0x3 .byte 0x24 .byte 0 .byte 0xb .byte 0xb .byte 0x3e .byte 0xb .byte 0x3 .byte 0x8 .byte 0 .byte 0 .byte 0x4 .byte 0x16 .byte 0 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0 .byte 0 .byte 0x5 .byte 0x16 .byte 0 .byte 0x3 .byte 0x8 .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0 .byte 0 .byte 0x6 .byte 0x13 .byte 0x1 .byte 0x3 .byte 0xe .byte 0xb .byte 0xb .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0x7 .byte 0xd .byte 0 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0x38 .byte 0xb .byte 0 .byte 0 .byte 0x8 .byte 0x2e .byte 0x1 .byte 0x3f .byte 0x19 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0x5 .byte 0x39 .byte 0xb .byte 0x27 .byte 0x19 .byte 0x49 .byte 0x13 .byte 0x11 .byte 0x1 .byte 0x12 .byte 0x7 .byte 0x40 .byte 0x18 .byte 0x97,0x42 .byte 0x19 .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0x9 .byte 0x34 .byte 0 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0x5 .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0x2 .byte 0x17 .byte 0 .byte 0 .byte 0xa .byte 0x34 .byte 0 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0x5 .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0x2 .byte 0x18 .byte 0 .byte 0 .byte 0xb .byte 0x89,0x82,0x1 .byte 0x1 .byte 0x11 .byte 0x1 .byte 0x31 .byte 0x13 .byte 0 .byte 0 .byte 0xc .byte 0x8a,0x82,0x1 .byte 0 .byte 0x2 .byte 0x18 .byte 0x91,0x42 .byte 0x18 .byte 0 .byte 0 .byte 0xd .byte 0x5 .byte 0 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0x5 .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0x2 .byte 0x17 .byte 0 .byte 0 .byte 0xe .byte 0x1d .byte 0x1 .byte 0x31 .byte 0x13 .byte 0x11 .byte 0x1 .byte 0x12 .byte 0x7 .byte 0x58 .byte 0xb .byte 0x59 .byte 0x5 .byte 0x57 .byte 0xb .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0xf .byte 0x5 .byte 0 .byte 0x31 .byte 0x13 .byte 0x2 .byte 0x17 .byte 0 .byte 0 .byte 0x10 .byte 0xb .byte 0x1 .byte 0x11 .byte 0x1 .byte 0x12 .byte 0x7 .byte 0 .byte 0 .byte 0x11 .byte 0x34 .byte 0 .byte 0x31 .byte 0x13 .byte 0x2 .byte 0x17 .byte 0 .byte 0 .byte 0x12 .byte 0x1d .byte 0x1 .byte 0x31 .byte 0x13 .byte 0x52 .byte 0x1 .byte 0x55 .byte 0x17 .byte 0x58 .byte 0xb .byte 0x59 .byte 0x5 .byte 0x57 .byte 0xb .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0x13 .byte 0x89,0x82,0x1 .byte 0x1 .byte 0x11 .byte 0x1 .byte 0x31 .byte 0x13 .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0x14 .byte 0x89,0x82,0x1 .byte 0 .byte 0x11 .byte 0x1 .byte 0x31 .byte 0x13 .byte 0 .byte 0 .byte 0x15 .byte 0xf .byte 0 .byte 0xb .byte 0xb .byte 0x49 .byte 0x13 .byte 0 .byte 0 .byte 0x16 .byte 0x34 .byte 0 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0x5 .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0x1c .byte 0xb .byte 0 .byte 0 .byte 0x17 .byte 0x89,0x82,0x1 .byte 0x1 .byte 0x11 .byte 0x1 .byte 0x95,0x42 .byte 0x19 .byte 0x31 .byte 0x13 .byte 0 .byte 0 .byte 0x18 .byte 0x2e .byte 0x1 .byte 0x3f .byte 0x19 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0x5 .byte 0x39 .byte 0xb .byte 0x27 .byte 0x19 .byte 0x20 .byte 0xb .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0x19 .byte 0x5 .byte 0 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0x5 .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0 .byte 0 .byte 0x1a .byte 0x34 .byte 0 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0x5 .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0 .byte 0 .byte 0x1b .byte 0x34 .byte 0 .byte 0x3 .byte 0x8 .byte 0x3a .byte 0xb .byte 0x3b .byte 0x5 .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0x2 .byte 0x17 .byte 0 .byte 0 .byte 0x1c .byte 0xb .byte 0x1 .byte 0x55 .byte 0x17 .byte 0 .byte 0 .byte 0x1d .byte 0x5 .byte 0 .byte 0x31 .byte 0x13 .byte 0 .byte 0 .byte 0x1e .byte 0x1d .byte 0x1 .byte 0x31 .byte 0x13 .byte 0x11 .byte 0x1 .byte 0x12 .byte 0x7 .byte 0x58 .byte 0xb .byte 0x59 .byte 0x5 .byte 0x57 .byte 0xb .byte 0 .byte 0 .byte 0x1f .byte 0x2e .byte 0x1 .byte 0x3f .byte 0x19 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0x5 .byte 0x39 .byte 0xb .byte 0x27 .byte 0x19 .byte 0x11 .byte 0x1 .byte 0x12 .byte 0x7 .byte 0x40 .byte 0x18 .byte 0x97,0x42 .byte 0x19 .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0x20 .byte 0x5 .byte 0 .byte 0x31 .byte 0x13 .byte 0x1c .byte 0x6 .byte 0 .byte 0 .byte 0x21 .byte 0x5 .byte 0 .byte 0x31 .byte 0x13 .byte 0x2 .byte 0x18 .byte 0 .byte 0 .byte 0x22 .byte 0x1 .byte 0x1 .byte 0x49 .byte 0x13 .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0x23 .byte 0x21 .byte 0 .byte 0x49 .byte 0x13 .byte 0x2f .byte 0xb .byte 0 .byte 0 .byte 0x24 .byte 0x5 .byte 0 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0x5 .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0x2 .byte 0x18 .byte 0 .byte 0 .byte 0x25 .byte 0x5 .byte 0 .byte 0x3 .byte 0x8 .byte 0x3a .byte 0xb .byte 0x3b .byte 0x5 .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0x2 .byte 0x17 .byte 0 .byte 0 .byte 0x26 .byte 0x34 .byte 0 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0x5 .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0x1c .byte 0x6 .byte 0 .byte 0 .byte 0x27 .byte 0x34 .byte 0 .byte 0x3 .byte 0x8 .byte 0x3a .byte 0xb .byte 0x3b .byte 0x5 .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0x1c .byte 0xb .byte 0 .byte 0 .byte 0x28 .byte 0x1d .byte 0x1 .byte 0x31 .byte 0x13 .byte 0x52 .byte 0x1 .byte 0x55 .byte 0x17 .byte 0x58 .byte 0xb .byte 0x59 .byte 0x5 .byte 0x57 .byte 0xb .byte 0 .byte 0 .byte 0x29 .byte 0x5 .byte 0 .byte 0x31 .byte 0x13 .byte 0x1c .byte 0xd .byte 0 .byte 0 .byte 0x2a .byte 0x2e .byte 0x1 .byte 0x3f .byte 0x19 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x27 .byte 0x19 .byte 0x11 .byte 0x1 .byte 0x12 .byte 0x7 .byte 0x40 .byte 0x18 .byte 0x97,0x42 .byte 0x19 .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0x2b .byte 0x5 .byte 0 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0x2 .byte 0x17 .byte 0 .byte 0 .byte 0x2c .byte 0x34 .byte 0 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0x2 .byte 0x17 .byte 0 .byte 0 .byte 0x2d .byte 0x34 .byte 0 .byte 0x3 .byte 0x8 .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0x2 .byte 0x17 .byte 0 .byte 0 .byte 0x2e .byte 0x1d .byte 0x1 .byte 0x31 .byte 0x13 .byte 0x11 .byte 0x1 .byte 0x12 .byte 0x7 .byte 0x58 .byte 0xb .byte 0x59 .byte 0xb .byte 0x57 .byte 0xb .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0x2f .byte 0x1d .byte 0x1 .byte 0x31 .byte 0x13 .byte 0x52 .byte 0x1 .byte 0x55 .byte 0x17 .byte 0x58 .byte 0xb .byte 0x59 .byte 0xb .byte 0x57 .byte 0xb .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0x30 .byte 0x1d .byte 0x1 .byte 0x31 .byte 0x13 .byte 0x52 .byte 0x1 .byte 0x55 .byte 0x17 .byte 0x58 .byte 0xb .byte 0x59 .byte 0xb .byte 0x57 .byte 0xb .byte 0 .byte 0 .byte 0x31 .byte 0x5 .byte 0 .byte 0x31 .byte 0x13 .byte 0x1c .byte 0xb .byte 0 .byte 0 .byte 0x32 .byte 0x1d .byte 0x1 .byte 0x31 .byte 0x13 .byte 0x11 .byte 0x1 .byte 0x12 .byte 0x7 .byte 0x58 .byte 0xb .byte 0x59 .byte 0xb .byte 0x57 .byte 0xb .byte 0 .byte 0 .byte 0x33 .byte 0x2e .byte 0x1 .byte 0x3f .byte 0x19 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x27 .byte 0x19 .byte 0x20 .byte 0xb .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0x34 .byte 0x5 .byte 0 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0 .byte 0 .byte 0x35 .byte 0x5 .byte 0 .byte 0x3 .byte 0x8 .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0 .byte 0 .byte 0x36 .byte 0x2e .byte 0x1 .byte 0x3f .byte 0x19 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x27 .byte 0x19 .byte 0x49 .byte 0x13 .byte 0x11 .byte 0x1 .byte 0x12 .byte 0x7 .byte 0x40 .byte 0x18 .byte 0x97,0x42 .byte 0x19 .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0x37 .byte 0x5 .byte 0 .byte 0x3 .byte 0x8 .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0x2 .byte 0x18 .byte 0 .byte 0 .byte 0x38 .byte 0x5 .byte 0 .byte 0x3 .byte 0x8 .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0x2 .byte 0x17 .byte 0 .byte 0 .byte 0x39 .byte 0xf .byte 0 .byte 0xb .byte 0xb .byte 0 .byte 0 .byte 0x3a .byte 0x26 .byte 0 .byte 0 .byte 0 .byte 0x3b .byte 0x2e .byte 0 .byte 0x3f .byte 0x19 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x27 .byte 0x19 .byte 0x49 .byte 0x13 .byte 0x11 .byte 0x1 .byte 0x12 .byte 0x7 .byte 0x40 .byte 0x18 .byte 0x97,0x42 .byte 0x19 .byte 0 .byte 0 .byte 0x3c .byte 0x2e .byte 0 .byte 0x3f .byte 0x19 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x27 .byte 0x19 .byte 0x11 .byte 0x1 .byte 0x12 .byte 0x7 .byte 0x40 .byte 0x18 .byte 0x97,0x42 .byte 0x19 .byte 0 .byte 0 .byte 0x3d .byte 0x2e .byte 0x1 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x27 .byte 0x19 .byte 0x49 .byte 0x13 .byte 0x20 .byte 0xb .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0x3e .byte 0x34 .byte 0 .byte 0x3 .byte 0x8 .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0 .byte 0 .byte 0x3f .byte 0x35 .byte 0 .byte 0 .byte 0 .byte 0x40 .byte 0x26 .byte 0 .byte 0x49 .byte 0x13 .byte 0 .byte 0 .byte 0x41 .byte 0x2e .byte 0x1 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x27 .byte 0x19 .byte 0x20 .byte 0xb .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0x42 .byte 0x2e .byte 0x1 .byte 0x31 .byte 0x13 .byte 0x11 .byte 0x1 .byte 0x12 .byte 0x7 .byte 0x40 .byte 0x18 .byte 0x97,0x42 .byte 0x19 .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0x43 .byte 0xb .byte 0x1 .byte 0x31 .byte 0x13 .byte 0x11 .byte 0x1 .byte 0x12 .byte 0x7 .byte 0 .byte 0 .byte 0x44 .byte 0x2e .byte 0 .byte 0x3f .byte 0x19 .byte 0x3c .byte 0x19 .byte 0x6e .byte 0xe .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0 .byte 0 .byte 0x45 .byte 0x2e .byte 0 .byte 0x3f .byte 0x19 .byte 0x3c .byte 0x19 .byte 0x6e .byte 0xe .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0 .byte 0 .byte 0 .section .debug_loc,"",@progbits .Ldebug_loc0: .LLST753: .8byte .LVL1136 .8byte .LVL1137 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL1137 .8byte .LVL1138 .2byte 0x1 .byte 0x5a .8byte 0 .8byte 0 .LLST669: .8byte .LVL1017 .8byte .LVL1024 .2byte 0x1 .byte 0x5a .8byte .LVL1024 .8byte .LVL1052 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte .LVL1052 .8byte .LVL1053 .2byte 0x1 .byte 0x5a .8byte .LVL1053 .8byte .LFE66 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte 0 .8byte 0 .LLST670: .8byte .LVL1017 .8byte .LVL1025-1 .2byte 0x1 .byte 0x5b .8byte .LVL1025-1 .8byte .LVL1066 .2byte 0x1 .byte 0x58 .8byte .LVL1066 .8byte .LVL1067 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0x9f .8byte .LVL1067 .8byte .LFE66 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST671: .8byte .LVL1017 .8byte .LVL1047 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL1052 .8byte .LVL1064 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL1064 .8byte .LVL1065 .2byte 0x1 .byte 0x5a .8byte .LVL1071 .8byte .LVL1072 .2byte 0x1 .byte 0x5a .8byte .LVL1075 .8byte .LVL1076 .2byte 0x1 .byte 0x5a .8byte .LVL1112 .8byte .LVL1113-1 .2byte 0x1 .byte 0x5a .8byte .LVL1135 .8byte .LFE66 .2byte 0x1 .byte 0x5a .8byte 0 .8byte 0 .LLST672: .8byte .LVL1017 .8byte .LVL1021 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL1021 .8byte .LVL1022 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x9 .byte 0xfc .byte 0x1a .byte 0x9f .8byte .LVL1022 .8byte .LVL1023 .2byte 0x9 .byte 0x79 .byte 0xe0,0x2 .byte 0x94 .byte 0x4 .byte 0x9 .byte 0xfc .byte 0x1a .byte 0x9f .8byte .LVL1027 .8byte .LVL1028 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xb .2byte 0xfeff .byte 0x1a .byte 0x9f .8byte .LVL1028 .8byte .LVL1030 .2byte 0x1 .byte 0x5f .8byte .LVL1030 .8byte .LVL1031 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x32 .byte 0x21 .byte 0x9f .8byte .LVL1031 .8byte .LVL1032 .2byte 0x8 .byte 0x79 .byte 0xe0,0x2 .byte 0x94 .byte 0x4 .byte 0x32 .byte 0x21 .byte 0x9f .8byte .LVL1035 .8byte .LVL1036 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x31 .byte 0x21 .byte 0x9f .8byte .LVL1036 .8byte .LVL1037 .2byte 0x8 .byte 0x79 .byte 0xe0,0x2 .byte 0x94 .byte 0x4 .byte 0x31 .byte 0x21 .byte 0x9f .8byte .LVL1052 .8byte .LVL1061 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL1078 .8byte .LVL1079 .2byte 0x5 .byte 0xc .4byte 0x31030a0 .8byte .LVL1079 .8byte .LVL1081 .2byte 0x1 .byte 0x5f .8byte .LVL1081 .8byte .LVL1084 .2byte 0x3 .byte 0x7e .byte 0xa0,0x1 .8byte .LVL1084 .8byte .LVL1085 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x31 .byte 0x21 .byte 0x9f .8byte .LVL1085 .8byte .LVL1086 .2byte 0x7 .byte 0x7e .byte 0x4 .byte 0x94 .byte 0x4 .byte 0x31 .byte 0x21 .byte 0x9f .8byte .LVL1089 .8byte .LVL1090 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xa .2byte 0x5000 .byte 0x21 .byte 0x9f .8byte .LVL1093 .8byte .LVL1094 .2byte 0x8 .byte 0x7e .byte 0 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL1094 .8byte .LVL1095 .2byte 0xb .byte 0x7f .byte 0xc0,0x2 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL1098 .8byte .LVL1099 .2byte 0x7 .byte 0x7e .byte 0 .byte 0xa .2byte 0x300 .byte 0x21 .byte 0x9f .8byte .LVL1099 .8byte .LVL1100 .2byte 0xa .byte 0x7f .byte 0xb8,0x1 .byte 0x94 .byte 0x4 .byte 0xa .2byte 0x300 .byte 0x21 .byte 0x9f .8byte .LVL1102 .8byte .LVL1103 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xb .2byte 0xdfff .byte 0x1a .byte 0x9f .8byte .LVL1106 .8byte .LVL1107 .2byte 0x1 .byte 0x5f .8byte .LVL1107 .8byte .LVL1108 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x3c .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL1108 .8byte .LVL1109 .2byte 0x15 .byte 0x7d .byte 0xfc,0 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x11 .byte 0xff,0xff,0x43 .byte 0x1a .byte 0x40 .byte 0x3c .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL1118 .8byte .LVL1119 .2byte 0x8 .byte 0x7e .byte 0 .byte 0x11 .byte 0x80,0x80,0x7c .byte 0x1a .byte 0x9f .8byte .LVL1119 .8byte .LVL1120 .2byte 0xb .byte 0x7f .byte 0xa0,0x1 .byte 0x94 .byte 0x4 .byte 0x11 .byte 0x80,0x80,0x7c .byte 0x1a .byte 0x9f .8byte .LVL1122 .8byte .LVL1123 .2byte 0x6 .byte 0x7e .byte 0 .byte 0x9 .byte 0xfe .byte 0x1a .byte 0x9f .8byte .LVL1123 .8byte .LVL1124 .2byte 0x8 .byte 0x7f .byte 0x4 .byte 0x94 .byte 0x4 .byte 0x9 .byte 0xfe .byte 0x1a .byte 0x9f .8byte .LVL1126 .8byte .LVL1127 .2byte 0xd .byte 0xc .4byte 0x3103100 .byte 0x94 .byte 0x4 .byte 0x11 .byte 0xff,0x9f,0x7c .byte 0x1a .byte 0x9f .8byte .LVL1129 .8byte .LVL1130 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xa .2byte 0x2000 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST673: .8byte .LVL1017 .8byte .LVL1065 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL1067 .8byte .LVL1076 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL1076 .8byte .LVL1112 .2byte 0x1 .byte 0x59 .8byte .LVL1112 .8byte .LVL1114 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL1114 .8byte .LFE66 .2byte 0x1 .byte 0x59 .8byte 0 .8byte 0 .LLST674: .8byte .LVL1043 .8byte .LVL1044 .2byte 0x1 .byte 0x5a .8byte 0 .8byte 0 .LLST675: .8byte .LVL1018 .8byte .LVL1019 .2byte 0x6 .byte 0xc .4byte 0x7010254 .byte 0x9f .8byte 0 .8byte 0 .LLST676: .8byte .LVL1018 .8byte .LVL1019 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte 0 .8byte 0 .LLST677: .8byte .LVL1019 .8byte .LVL1021 .2byte 0x6 .byte 0xc .4byte 0x3000160 .byte 0x9f .8byte 0 .8byte 0 .LLST678: .8byte .LVL1020 .8byte .LVL1021 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST679: .8byte .LVL1021 .8byte .LVL1023 .2byte 0x6 .byte 0xc .4byte 0x3000160 .byte 0x9f .8byte 0 .8byte 0 .LLST680: .8byte .LVL1021 .8byte .LVL1022 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x9 .byte 0xfc .byte 0x1a .byte 0x9f .8byte .LVL1022 .8byte .LVL1023 .2byte 0x9 .byte 0x79 .byte 0xe0,0x2 .byte 0x94 .byte 0x4 .byte 0x9 .byte 0xfc .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST681: .8byte .LVL1023 .8byte .LVL1025 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte 0 .8byte 0 .LLST682: .8byte .LVL1025 .8byte .LVL1027 .2byte 0x6 .byte 0xc .4byte 0x3000160 .byte 0x9f .8byte 0 .8byte 0 .LLST683: .8byte .LVL1026 .8byte .LVL1027 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST684: .8byte .LVL1028 .8byte .LVL1029 .2byte 0x6 .byte 0xc .4byte 0x3000160 .byte 0x9f .8byte 0 .8byte 0 .LLST685: .8byte .LVL1028 .8byte .LVL1029 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST686: .8byte .LVL1029 .8byte .LVL1030 .2byte 0x6 .byte 0xc .4byte 0x3000160 .byte 0x9f .8byte 0 .8byte 0 .LLST687: .8byte .LVL1029 .8byte .LVL1030 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST688: .8byte .LVL1030 .8byte .LVL1032 .2byte 0x6 .byte 0xc .4byte 0x3000160 .byte 0x9f .8byte 0 .8byte 0 .LLST689: .8byte .LVL1030 .8byte .LVL1031 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x32 .byte 0x21 .byte 0x9f .8byte .LVL1031 .8byte .LVL1032 .2byte 0x8 .byte 0x79 .byte 0xe0,0x2 .byte 0x94 .byte 0x4 .byte 0x32 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST690: .8byte .LVL1032 .8byte .LVL1033 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte 0 .8byte 0 .LLST691: .8byte .LVL1033 .8byte .LVL1035 .2byte 0x6 .byte 0xc .4byte 0x3000160 .byte 0x9f .8byte 0 .8byte 0 .LLST692: .8byte .LVL1034 .8byte .LVL1035 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST693: .8byte .LVL1035 .8byte .LVL1037 .2byte 0x6 .byte 0xc .4byte 0x3000160 .byte 0x9f .8byte 0 .8byte 0 .LLST694: .8byte .LVL1035 .8byte .LVL1036 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x31 .byte 0x21 .byte 0x9f .8byte .LVL1036 .8byte .LVL1037 .2byte 0x8 .byte 0x79 .byte 0xe0,0x2 .byte 0x94 .byte 0x4 .byte 0x31 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST695: .8byte .LVL1037 .8byte .LVL1038 .2byte 0x2 .byte 0x44 .byte 0x9f .8byte 0 .8byte 0 .LLST696: .8byte .LVL1038 .8byte .LVL1040 .2byte 0x6 .byte 0xc .4byte 0x300016c .byte 0x9f .8byte 0 .8byte 0 .LLST697: .8byte .LVL1039 .8byte .LVL1040 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST698: .8byte .LVL1054 .8byte .LVL1056 .2byte 0x6 .byte 0xc .4byte 0x3000160 .byte 0x9f .8byte 0 .8byte 0 .LLST699: .8byte .LVL1055 .8byte .LVL1056 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST700: .8byte .LVL1056 .8byte .LVL1058 .2byte 0x6 .byte 0xc .4byte 0x3000160 .byte 0x9f .8byte 0 .8byte 0 .LLST701: .8byte .LVL1056 .8byte .LVL1057 .2byte 0x7 .byte 0x7e .byte 0 .byte 0xa .2byte 0x100 .byte 0x21 .byte 0x9f .8byte .LVL1057 .8byte .LVL1058 .2byte 0xa .byte 0x7f .byte 0xe0,0x2 .byte 0x94 .byte 0x4 .byte 0xa .2byte 0x100 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST702: .8byte .LVL1058 .8byte .LVL1059 .2byte 0x6 .byte 0xc .4byte 0x3000168 .byte 0x9f .8byte 0 .8byte 0 .LLST703: .8byte .LVL1058 .8byte .LVL1059 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte 0 .8byte 0 .LLST704: .8byte .LVL1059 .8byte .LVL1061 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte 0 .8byte 0 .LLST705: .8byte .LVL1077 .8byte .LVL1078 .2byte 0x6 .byte 0xc .4byte 0x31030a0 .byte 0x9f .8byte 0 .8byte 0 .LLST706: .8byte .LVL1077 .8byte .LVL1078 .2byte 0x5 .byte 0xc .4byte 0x31030a0 .8byte 0 .8byte 0 .LLST707: .8byte .LVL1079 .8byte .LVL1080 .2byte 0x6 .byte 0xc .4byte 0x31030a0 .byte 0x9f .8byte 0 .8byte 0 .LLST708: .8byte .LVL1079 .8byte .LVL1080 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST709: .8byte .LVL1080 .8byte .LVL1082 .2byte 0x6 .byte 0xc .4byte 0x310309c .byte 0x9f .8byte 0 .8byte 0 .LLST710: .8byte .LVL1080 .8byte .LVL1082 .2byte 0x4 .byte 0xa .2byte 0x40a .byte 0x9f .8byte 0 .8byte 0 .LLST711: .8byte .LVL1082 .8byte .LVL1084 .2byte 0x6 .byte 0xc .4byte 0x3103004 .byte 0x9f .8byte 0 .8byte 0 .LLST712: .8byte .LVL1083 .8byte .LVL1084 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST713: .8byte .LVL1084 .8byte .LVL1086 .2byte 0x6 .byte 0xc .4byte 0x3103004 .byte 0x9f .8byte 0 .8byte 0 .LLST714: .8byte .LVL1084 .8byte .LVL1085 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x31 .byte 0x21 .byte 0x9f .8byte .LVL1085 .8byte .LVL1086 .2byte 0x7 .byte 0x7e .byte 0x4 .byte 0x94 .byte 0x4 .byte 0x31 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST715: .8byte .LVL1088 .8byte .LVL1089 .2byte 0x6 .byte 0xc .4byte 0x3103100 .byte 0x9f .8byte 0 .8byte 0 .LLST716: .8byte .LVL1088 .8byte .LVL1089 .2byte 0x5 .byte 0xc .4byte 0x3103100 .8byte 0 .8byte 0 .LLST717: .8byte .LVL1089 .8byte .LVL1091 .2byte 0x6 .byte 0xc .4byte 0x3103100 .byte 0x9f .8byte 0 .8byte 0 .LLST718: .8byte .LVL1089 .8byte .LVL1090 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xa .2byte 0x5000 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST719: .8byte .LVL1091 .8byte .LVL1093 .2byte 0x6 .byte 0xc .4byte 0x3103140 .byte 0x9f .8byte 0 .8byte 0 .LLST720: .8byte .LVL1092 .8byte .LVL1093 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST721: .8byte .LVL1093 .8byte .LVL1095 .2byte 0x6 .byte 0xc .4byte 0x3103140 .byte 0x9f .8byte 0 .8byte 0 .LLST722: .8byte .LVL1093 .8byte .LVL1094 .2byte 0x8 .byte 0x7e .byte 0 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL1094 .8byte .LVL1095 .2byte 0xb .byte 0x7f .byte 0xc0,0x2 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST723: .8byte .LVL1096 .8byte .LVL1098 .2byte 0x6 .byte 0xc .4byte 0x31030b8 .byte 0x9f .8byte 0 .8byte 0 .LLST724: .8byte .LVL1097 .8byte .LVL1098 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST725: .8byte .LVL1098 .8byte .LVL1100 .2byte 0x6 .byte 0xc .4byte 0x31030b8 .byte 0x9f .8byte 0 .8byte 0 .LLST726: .8byte .LVL1098 .8byte .LVL1099 .2byte 0x7 .byte 0x7e .byte 0 .byte 0xa .2byte 0x300 .byte 0x21 .byte 0x9f .8byte .LVL1099 .8byte .LVL1100 .2byte 0xa .byte 0x7f .byte 0xb8,0x1 .byte 0x94 .byte 0x4 .byte 0xa .2byte 0x300 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST727: .8byte .LVL1101 .8byte .LVL1102 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST728: .8byte .LVL1101 .8byte .LVL1102 .2byte 0x5 .byte 0xc .4byte 0x3103108 .8byte 0 .8byte 0 .LLST729: .8byte .LVL1102 .8byte .LVL1103 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST730: .8byte .LVL1102 .8byte .LVL1103 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xb .2byte 0xdfff .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST731: .8byte .LVL1129 .8byte .LVL1131 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST732: .8byte .LVL1129 .8byte .LVL1130 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xa .2byte 0x2000 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST733: .8byte .LVL1104 .8byte .LVL1106 .2byte 0x6 .byte 0xc .4byte 0x310307c .byte 0x9f .8byte 0 .8byte 0 .LLST734: .8byte .LVL1105 .8byte .LVL1106 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST735: .8byte .LVL1107 .8byte .LVL1109 .2byte 0x6 .byte 0xc .4byte 0x310307c .byte 0x9f .8byte 0 .8byte 0 .LLST736: .8byte .LVL1107 .8byte .LVL1108 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x3c .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL1108 .8byte .LVL1109 .2byte 0x15 .byte 0x7d .byte 0xfc,0 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x11 .byte 0xff,0xff,0x43 .byte 0x1a .byte 0x40 .byte 0x3c .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST737: .8byte .LVL1116 .8byte .LVL1118 .2byte 0x6 .byte 0xc .4byte 0x31030a0 .byte 0x9f .8byte 0 .8byte 0 .LLST738: .8byte .LVL1117 .8byte .LVL1118 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST739: .8byte .LVL1118 .8byte .LVL1120 .2byte 0x6 .byte 0xc .4byte 0x31030a0 .byte 0x9f .8byte 0 .8byte 0 .LLST740: .8byte .LVL1118 .8byte .LVL1119 .2byte 0x8 .byte 0x7e .byte 0 .byte 0x11 .byte 0x80,0x80,0x7c .byte 0x1a .byte 0x9f .8byte .LVL1119 .8byte .LVL1120 .2byte 0xb .byte 0x7f .byte 0xa0,0x1 .byte 0x94 .byte 0x4 .byte 0x11 .byte 0x80,0x80,0x7c .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST741: .8byte .LVL1120 .8byte .LVL1122 .2byte 0x6 .byte 0xc .4byte 0x3103004 .byte 0x9f .8byte 0 .8byte 0 .LLST742: .8byte .LVL1121 .8byte .LVL1122 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST743: .8byte .LVL1122 .8byte .LVL1125 .2byte 0x6 .byte 0xc .4byte 0x3103004 .byte 0x9f .8byte 0 .8byte 0 .LLST744: .8byte .LVL1122 .8byte .LVL1123 .2byte 0x6 .byte 0x7e .byte 0 .byte 0x9 .byte 0xfe .byte 0x1a .byte 0x9f .8byte .LVL1123 .8byte .LVL1124 .2byte 0x8 .byte 0x7f .byte 0x4 .byte 0x94 .byte 0x4 .byte 0x9 .byte 0xfe .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST745: .8byte .LVL1125 .8byte .LVL1126 .2byte 0x6 .byte 0xc .4byte 0x3103100 .byte 0x9f .8byte 0 .8byte 0 .LLST746: .8byte .LVL1125 .8byte .LVL1126 .2byte 0x5 .byte 0xc .4byte 0x3103100 .8byte 0 .8byte 0 .LLST747: .8byte .LVL1126 .8byte .LVL1128 .2byte 0x6 .byte 0xc .4byte 0x3103100 .byte 0x9f .8byte 0 .8byte 0 .LLST748: .8byte .LVL1126 .8byte .LVL1127 .2byte 0xd .byte 0xc .4byte 0x3103100 .byte 0x94 .byte 0x4 .byte 0x11 .byte 0xff,0x9f,0x7c .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST749: .8byte .LVL1128 .8byte .LVL1129 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST750: .8byte .LVL1128 .8byte .LVL1129 .2byte 0x5 .byte 0xc .4byte 0x3103108 .8byte 0 .8byte 0 .LLST751: .8byte .LVL1131 .8byte .LVL1133 .2byte 0x6 .byte 0xc .4byte 0x70005d4 .byte 0x9f .8byte 0 .8byte 0 .LLST752: .8byte .LVL1132 .8byte .LVL1133 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST591: .8byte .LVL884 .8byte .LVL885-1 .2byte 0x1 .byte 0x5a .8byte .LVL885-1 .8byte .LVL890 .2byte 0x1 .byte 0x58 .8byte .LVL890 .8byte .LVL891-1 .2byte 0x1 .byte 0x5b .8byte .LVL891-1 .8byte .LFE65 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte 0 .8byte 0 .LLST568: .8byte .LVL841 .8byte .LVL842 .2byte 0x1 .byte 0x5a .8byte .LVL842 .8byte .LFE63 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte 0 .8byte 0 .LLST569: .8byte .LVL841 .8byte .LVL844 .2byte 0x1 .byte 0x5b .8byte .LVL844 .8byte .LFE63 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0x9f .8byte 0 .8byte 0 .LLST570: .8byte .LVL843 .8byte .LVL844 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL844 .8byte .LVL845 .2byte 0x1 .byte 0x5f .8byte .LVL846 .8byte .LVL848 .2byte 0x1 .byte 0x58 .8byte .LVL848 .8byte .LVL852 .2byte 0x1 .byte 0x5f .8byte .LVL853 .8byte .LVL862 .2byte 0x1 .byte 0x58 .8byte .LVL863 .8byte .LVL868 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST571: .8byte .LVL843 .8byte .LVL847-1 .2byte 0x1 .byte 0x5e .8byte .LVL847-1 .8byte .LVL848 .2byte 0x1 .byte 0x59 .8byte .LVL848 .8byte .LVL858-1 .2byte 0x1 .byte 0x5e .8byte .LVL858-1 .8byte .LVL859 .2byte 0x1 .byte 0x59 .8byte .LVL859 .8byte .LVL863 .2byte 0x8 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x31 .byte 0x25 .byte 0x44 .byte 0x24 .byte 0x9f .8byte .LVL863 .8byte .LVL866-1 .2byte 0x1 .byte 0x5e .8byte .LVL866-1 .8byte .LFE63 .2byte 0x1 .byte 0x59 .8byte 0 .8byte 0 .LLST572: .8byte .LVL857 .8byte .LVL858-1 .2byte 0x1 .byte 0x5b .8byte .LVL858-1 .8byte .LVL860 .2byte 0x2 .byte 0x91 .byte 0x58 .8byte .LVL863 .8byte .LVL864 .2byte 0x1 .byte 0x5b .8byte .LVL864 .8byte .LVL865 .2byte 0xe .byte 0x82 .byte 0 .byte 0xc .4byte 0xffffffff .byte 0x1a .byte 0x76 .byte 0 .byte 0x22 .byte 0x7e .byte 0 .byte 0x22 .8byte .LVL865 .8byte .LVL866-1 .2byte 0x1 .byte 0x5b .8byte .LVL866-1 .8byte .LVL867 .2byte 0x2 .byte 0x91 .byte 0x58 .8byte .LVL867 .8byte .LFE63 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST573: .8byte .LVL854 .8byte .LVL855 .2byte 0x10 .byte 0x7e .byte 0 .byte 0xc .4byte 0xffffffff .byte 0x1a .byte 0x7c .byte 0 .byte 0x22 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x22 .byte 0x9f .8byte .LVL855 .8byte .LVL857 .2byte 0x16 .byte 0x7e .byte 0 .byte 0xc .4byte 0xffffffff .byte 0x1a .byte 0x82 .byte 0 .byte 0xc .4byte 0xffffffff .byte 0x1a .byte 0x22 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x22 .byte 0x9f .8byte 0 .8byte 0 .LLST574: .8byte .LVL856 .8byte .LVL857 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST575: .8byte .LVL848 .8byte .LVL849 .2byte 0x9 .byte 0x7d .byte 0 .byte 0xc .4byte 0xffffffff .byte 0x1a .byte 0x9f .8byte .LVL849 .8byte .LVL850 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST576: .8byte .LVL848 .8byte .LVL850 .2byte 0x6 .byte 0x7f .byte 0xe7,0x8a,0x8d,0x9 .byte 0x9f .8byte 0 .8byte 0 .LLST577: .8byte .LVL850 .8byte .LVL851 .2byte 0xc .byte 0x7e .byte 0 .byte 0x7d .byte 0 .byte 0x22 .byte 0xc .4byte 0xffffffff .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST578: .8byte .LVL850 .8byte .LVL851 .2byte 0x6 .byte 0x7f .byte 0x98,0xf5,0xf2,0x76 .byte 0x9f .8byte 0 .8byte 0 .LLST579: .8byte .LVL864 .8byte .LVL865 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST667: .8byte .LVL1008 .8byte .LVL1009-1 .2byte 0x1 .byte 0x5a .8byte .LVL1009-1 .8byte .LVL1012 .2byte 0x1 .byte 0x59 .8byte .LVL1012 .8byte .LVL1013 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte .LVL1013 .8byte .LFE62 .2byte 0x1 .byte 0x59 .8byte 0 .8byte 0 .LLST668: .8byte .LVL1008 .8byte .LVL1010 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL1010 .8byte .LVL1011 .2byte 0x1 .byte 0x58 .8byte .LVL1015 .8byte .LVL1016 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST660: .8byte .LVL996 .8byte .LVL998-1 .2byte 0x1 .byte 0x5a .8byte .LVL998-1 .8byte .LVL1002 .2byte 0x1 .byte 0x58 .8byte .LVL1002 .8byte .LVL1004 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte .LVL1004 .8byte .LFE61 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST661: .8byte .LVL996 .8byte .LVL998 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL1006 .8byte .LVL1007 .2byte 0x1 .byte 0x5a .8byte 0 .8byte 0 .LLST662: .8byte .LVL996 .8byte .LVL1000 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL1000 .8byte .LVL1001 .2byte 0x1 .byte 0x5f .8byte .LVL1004 .8byte .LVL1005-1 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST663: .8byte .LVL997 .8byte .LVL1002 .2byte 0x1 .byte 0x59 .8byte .LVL1004 .8byte .LFE61 .2byte 0x1 .byte 0x59 .8byte 0 .8byte 0 .LLST664: .8byte .LVL997 .8byte .LVL1003 .2byte 0x1 .byte 0x62 .8byte .LVL1004 .8byte .LFE61 .2byte 0x1 .byte 0x62 .8byte 0 .8byte 0 .LLST665: .8byte .LVL998 .8byte .LVL1000 .2byte 0x6 .byte 0xc .4byte 0x3103010 .byte 0x9f .8byte 0 .8byte 0 .LLST666: .8byte .LVL999 .8byte .LVL1000 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST558: .8byte .LVL814 .8byte .LVL825 .2byte 0x1 .byte 0x5a .8byte .LVL825 .8byte .LVL826 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte .LVL826 .8byte .LVL829 .2byte 0x1 .byte 0x5a .8byte .LVL829 .8byte .LVL831 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte .LVL831 .8byte .LVL833 .2byte 0x1 .byte 0x5a .8byte .LVL833 .8byte .LVL834 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte .LVL834 .8byte .LVL836 .2byte 0x1 .byte 0x5a .8byte .LVL836 .8byte .LVL837 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte .LVL837 .8byte .LVL838 .2byte 0x1 .byte 0x5a .8byte .LVL838 .8byte .LFE60 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte 0 .8byte 0 .LLST559: .8byte .LVL814 .8byte .LVL816 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL816 .8byte .LVL819 .2byte 0x1 .byte 0x5e .8byte .LVL819 .8byte .LVL820 .2byte 0x1 .byte 0x5b .8byte .LVL820 .8byte .LVL822 .2byte 0x3 .byte 0x7f .byte 0xc8,0x6 .8byte .LVL822 .8byte .LVL823 .2byte 0x1 .byte 0x58 .8byte .LVL823 .8byte .LVL824 .2byte 0x5 .byte 0xc .4byte 0x31033c8 .8byte .LVL826 .8byte .LVL827 .2byte 0x1 .byte 0x5e .8byte .LVL827 .8byte .LVL828 .2byte 0x5 .byte 0xc .4byte 0x3103010 .8byte .LVL831 .8byte .LVL832 .2byte 0x5 .byte 0xc .4byte 0x31033c8 .8byte .LVL834 .8byte .LVL835 .2byte 0x5 .byte 0xc .4byte 0x31033c8 .8byte .LVL837 .8byte .LVL839-1 .2byte 0x5 .byte 0xc .4byte 0x31033c8 .8byte 0 .8byte 0 .LLST560: .8byte .LVL820 .8byte .LVL826 .2byte 0x1 .byte 0x5b .8byte .LVL831 .8byte .LVL839-1 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST561: .8byte .LVL823 .8byte .LVL826 .2byte 0x1 .byte 0x58 .8byte .LVL831 .8byte .LFE60 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST562: .8byte .LVL814 .8byte .LVL816 .2byte 0x6 .byte 0xc .4byte 0x3103010 .byte 0x9f .8byte 0 .8byte 0 .LLST563: .8byte .LVL815 .8byte .LVL816 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST564: .8byte .LVL817 .8byte .LVL819 .2byte 0x6 .byte 0xc .4byte 0x3103348 .byte 0x9f .8byte 0 .8byte 0 .LLST565: .8byte .LVL818 .8byte .LVL819 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST566: .8byte .LVL820 .8byte .LVL822 .2byte 0x6 .byte 0xc .4byte 0x31033c8 .byte 0x9f .8byte 0 .8byte 0 .LLST567: .8byte .LVL821 .8byte .LVL822 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST592: .8byte .LVL892 .8byte .LVL893-1 .2byte 0x1 .byte 0x5a .8byte .LVL893-1 .8byte .LVL897 .2byte 0x1 .byte 0x67 .8byte .LVL897 .8byte .LVL898 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte .LVL898 .8byte .LFE59 .2byte 0x1 .byte 0x67 .8byte 0 .8byte 0 .LLST593: .8byte .LVL892 .8byte .LVL895 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL898 .8byte .LVL902 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL902 .8byte .LVL905 .2byte 0x1 .byte 0x5f .8byte .LVL914 .8byte .LVL923-1 .2byte 0x1 .byte 0x5e .8byte .LVL939 .8byte .LVL964 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL964 .8byte .LVL971 .2byte 0x1 .byte 0x5e .8byte .LVL972 .8byte .LVL974-1 .2byte 0x1 .byte 0x5d .8byte .LVL989 .8byte .LVL991 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL992 .8byte .LVL993 .2byte 0x1 .byte 0x5e .8byte .LVL994 .8byte .LVL995 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST594: .8byte .LVL892 .8byte .LVL895 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL898 .8byte .LVL901 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL914 .8byte .LVL915 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL915 .8byte .LVL919 .2byte 0x1 .byte 0x5d .8byte .LVL919 .8byte .LVL920 .2byte 0x3 .byte 0x7d .byte 0x1 .byte 0x9f .8byte .LVL939 .8byte .LVL941 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL941 .8byte .LVL945 .2byte 0x1 .byte 0x5e .8byte .LVL945 .8byte .LVL946 .2byte 0x3 .byte 0x7e .byte 0x1 .byte 0x9f .8byte .LVL964 .8byte .LVL965 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL965 .8byte .LVL969 .2byte 0x1 .byte 0x5d .8byte .LVL969 .8byte .LVL970 .2byte 0x3 .byte 0x7d .byte 0x1 .byte 0x9f .8byte .LVL989 .8byte .LVL990 .2byte 0x1 .byte 0x5e .8byte .LVL992 .8byte .LFE59 .2byte 0x1 .byte 0x5d .8byte 0 .8byte 0 .LLST595: .8byte .LVL892 .8byte .LVL895 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL898 .8byte .LVL901 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte 0 .8byte 0 .LLST596: .8byte .LVL892 .8byte .LVL895 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL898 .8byte .LVL899 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL899 .8byte .LFE59 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST597: .8byte .LVL892 .8byte .LVL895 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL898 .8byte .LVL899 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte 0 .8byte 0 .LLST598: .8byte .LVL892 .8byte .LVL895 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL898 .8byte .LVL901 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL908 .8byte .LVL909 .2byte 0xb .byte 0x7f .byte 0 .byte 0xb .2byte 0xf0f3 .byte 0x1a .byte 0xa .2byte 0x600 .byte 0x21 .byte 0x9f .8byte .LVL909 .8byte .LVL910 .2byte 0xd .byte 0x86 .byte 0 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xf0f3 .byte 0x1a .byte 0xa .2byte 0x600 .byte 0x21 .byte 0x9f .8byte .LVL910 .8byte .LVL914 .2byte 0x1 .byte 0x5f .8byte .LVL916 .8byte .LVL922 .2byte 0x1 .byte 0x5b .8byte .LVL928 .8byte .LVL929 .2byte 0xb .byte 0x7f .byte 0 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0x6a4 .byte 0x21 .byte 0x9f .8byte .LVL929 .8byte .LVL930 .2byte 0xd .byte 0x7e .byte 0 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0x6a4 .byte 0x21 .byte 0x9f .8byte .LVL933 .8byte .LVL934 .2byte 0xa .byte 0x7f .byte 0 .byte 0xb .2byte 0xff03 .byte 0x1a .byte 0x8 .byte 0xa4 .byte 0x21 .byte 0x9f .8byte .LVL934 .8byte .LVL935 .2byte 0xc .byte 0x86 .byte 0 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xff03 .byte 0x1a .byte 0x8 .byte 0xa4 .byte 0x21 .byte 0x9f .8byte .LVL935 .8byte .LVL940 .2byte 0x1 .byte 0x5f .8byte .LVL940 .8byte .LVL941 .2byte 0x2 .byte 0x86 .byte 0 .8byte .LVL942 .8byte .LVL947 .2byte 0x1 .byte 0x5c .8byte .LVL953 .8byte .LVL954 .2byte 0xb .byte 0x7f .byte 0 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0xaa0 .byte 0x21 .byte 0x9f .8byte .LVL954 .8byte .LVL955 .2byte 0xd .byte 0x7e .byte 0 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0xaa0 .byte 0x21 .byte 0x9f .8byte .LVL958 .8byte .LVL959 .2byte 0xa .byte 0x7f .byte 0 .byte 0xb .2byte 0xff03 .byte 0x1a .byte 0x8 .byte 0xa0 .byte 0x21 .byte 0x9f .8byte .LVL959 .8byte .LVL960 .2byte 0xc .byte 0x86 .byte 0 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xff03 .byte 0x1a .byte 0x8 .byte 0xa0 .byte 0x21 .byte 0x9f .8byte .LVL960 .8byte .LVL964 .2byte 0x1 .byte 0x5f .8byte .LVL966 .8byte .LVL973 .2byte 0x1 .byte 0x5b .8byte .LVL980 .8byte .LVL981 .2byte 0xb .byte 0x7f .byte 0 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0x6f0 .byte 0x21 .byte 0x9f .8byte .LVL981 .8byte .LVL982 .2byte 0xd .byte 0x7e .byte 0 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0x6f0 .byte 0x21 .byte 0x9f .8byte .LVL984 .8byte .LVL985 .2byte 0xb .byte 0x7f .byte 0 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0x6f1 .byte 0x21 .byte 0x9f .8byte .LVL985 .8byte .LVL986 .2byte 0xd .byte 0x7e .byte 0x4 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0x6f1 .byte 0x21 .byte 0x9f .8byte .LVL989 .8byte .LVL991 .2byte 0x1 .byte 0x5c .8byte .LVL992 .8byte .LFE59 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST599: .8byte .LVL892 .8byte .LVL894 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL894 .8byte .LVL895 .2byte 0x1 .byte 0x59 .8byte .LVL898 .8byte .LVL900 .2byte 0x1 .byte 0x59 .8byte .LVL900 .8byte .LVL901 .2byte 0x1 .byte 0x5a .8byte .LVL914 .8byte .LVL921 .2byte 0x8 .byte 0x31 .byte 0x7e .byte 0xb .byte 0x24 .byte 0x89 .byte 0 .byte 0x22 .byte 0x9f .8byte .LVL939 .8byte .LVL956 .2byte 0x4 .byte 0x89 .byte 0x80,0x10 .byte 0x9f .8byte .LVL964 .8byte .LVL971 .2byte 0x8 .byte 0x31 .byte 0x7e .byte 0 .byte 0x24 .byte 0x89 .byte 0 .byte 0x22 .byte 0x9f .8byte .LVL989 .8byte .LVL991 .2byte 0x4 .byte 0x89 .byte 0x80,0x10 .byte 0x9f .8byte .LVL992 .8byte .LVL993 .2byte 0x8 .byte 0x31 .byte 0x7e .byte 0 .byte 0x24 .byte 0x89 .byte 0 .byte 0x22 .byte 0x9f .8byte .LVL994 .8byte .LVL995 .2byte 0x8 .byte 0x31 .byte 0x7e .byte 0xb .byte 0x24 .byte 0x89 .byte 0 .byte 0x22 .byte 0x9f .8byte 0 .8byte 0 .LLST601: .8byte .LVL892 .8byte .LVL895 .2byte 0x4 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x9f .8byte .LVL898 .8byte .LVL901 .2byte 0x4 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x9f .8byte .LVL901 .8byte .LVL930 .2byte 0x1 .byte 0x69 .8byte .LVL930 .8byte .LVL931 .2byte 0x5 .byte 0x8 .byte 0x81 .byte 0x47 .byte 0x24 .byte 0x9f .8byte .LVL931 .8byte .LVL955 .2byte 0x1 .byte 0x69 .8byte .LVL955 .8byte .LVL956 .2byte 0x4 .byte 0x41 .byte 0x4a .byte 0x24 .byte 0x9f .8byte .LVL956 .8byte .LVL986 .2byte 0x1 .byte 0x69 .8byte .LVL986 .8byte .LVL987 .2byte 0x4 .byte 0x42 .byte 0x4a .byte 0x24 .byte 0x9f .8byte .LVL989 .8byte .LFE59 .2byte 0x1 .byte 0x69 .8byte 0 .8byte 0 .LLST602: .8byte .LVL892 .8byte .LVL895 .2byte 0x4 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x9f .8byte .LVL898 .8byte .LVL901 .2byte 0x4 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x9f .8byte .LVL901 .8byte .LVL976 .2byte 0x1 .byte 0x59 .8byte .LVL977 .8byte .LVL986 .2byte 0x1 .byte 0x59 .8byte .LVL986 .8byte .LVL987 .2byte 0x4 .byte 0x42 .byte 0x4a .byte 0x24 .byte 0x9f .8byte .LVL989 .8byte .LVL991 .2byte 0x1 .byte 0x59 .8byte .LVL992 .8byte .LFE59 .2byte 0x1 .byte 0x59 .8byte 0 .8byte 0 .LLST603: .8byte .LVL903 .8byte .LVL904 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST604: .8byte .LVL903 .8byte .LVL904 .2byte 0x1 .byte 0x5d .8byte 0 .8byte 0 .LLST605: .8byte .LVL906 .8byte .LVL908 .2byte 0x1 .byte 0x66 .8byte 0 .8byte 0 .LLST606: .8byte .LVL907 .8byte .LVL908 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST607: .8byte .LVL910 .8byte .LVL988 .2byte 0x1 .byte 0x66 .8byte .LVL988 .8byte .LVL989 .2byte 0x3 .byte 0x86 .byte 0x7c .byte 0x9f .8byte .LVL989 .8byte .LFE59 .2byte 0x1 .byte 0x66 .8byte 0 .8byte 0 .LLST608: .8byte .LVL910 .8byte .LVL914 .2byte 0x1 .byte 0x5f .8byte .LVL914 .8byte .LVL923-1 .2byte 0x2 .byte 0x86 .byte 0 .8byte .LVL994 .8byte .LFE59 .2byte 0x2 .byte 0x86 .byte 0 .8byte 0 .8byte 0 .LLST609: .8byte .LVL911 .8byte .LVL913 .2byte 0x1 .byte 0x66 .8byte 0 .8byte 0 .LLST610: .8byte .LVL912 .8byte .LVL913 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST611: .8byte .LVL916 .8byte .LVL918 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST612: .8byte .LVL917 .8byte .LVL918 .2byte 0x1 .byte 0x5a .8byte 0 .8byte 0 .LLST613: .8byte .LVL924 .8byte .LVL925 .2byte 0x9 .byte 0x91 .byte 0x88,0x7f .byte 0x94 .byte 0x4 .byte 0x8a .byte 0x4 .byte 0x24 .byte 0x9f .8byte 0 .8byte 0 .LLST614: .8byte .LVL924 .8byte .LVL925 .2byte 0x6 .byte 0x8 .byte 0xff .byte 0x8a .byte 0x4 .byte 0x24 .byte 0x9f .8byte 0 .8byte 0 .LLST615: .8byte .LVL924 .8byte .LVL925 .2byte 0x3 .byte 0x87 .byte 0x10 .byte 0x9f .8byte 0 .8byte 0 .LLST616: .8byte .LVL926 .8byte .LVL928 .2byte 0x6 .byte 0xc .4byte 0x3102000 .byte 0x9f .8byte 0 .8byte 0 .LLST617: .8byte .LVL927 .8byte .LVL928 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST618: .8byte .LVL928 .8byte .LVL930 .2byte 0x6 .byte 0xc .4byte 0x3102000 .byte 0x9f .8byte 0 .8byte 0 .LLST619: .8byte .LVL928 .8byte .LVL929 .2byte 0xb .byte 0x7f .byte 0 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0x6a4 .byte 0x21 .byte 0x9f .8byte .LVL929 .8byte .LVL930 .2byte 0xd .byte 0x7e .byte 0 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0x6a4 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST620: .8byte .LVL931 .8byte .LVL933 .2byte 0x1 .byte 0x66 .8byte 0 .8byte 0 .LLST621: .8byte .LVL932 .8byte .LVL933 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST622: .8byte .LVL933 .8byte .LVL935 .2byte 0x4 .byte 0xa .2byte 0x600 .byte 0x9f .8byte 0 .8byte 0 .LLST623: .8byte .LVL933 .8byte .LVL935 .2byte 0x4 .byte 0xa .2byte 0xf00 .byte 0x9f .8byte 0 .8byte 0 .LLST624: .8byte .LVL933 .8byte .LVL935 .2byte 0x6 .byte 0xf2 .4byte .Ldebug_info0+5198 .byte 0 .8byte 0 .8byte 0 .LLST625: .8byte .LVL935 .8byte .LVL988 .2byte 0x1 .byte 0x66 .8byte .LVL988 .8byte .LVL989 .2byte 0x3 .byte 0x86 .byte 0x7c .byte 0x9f .8byte .LVL989 .8byte .LVL994 .2byte 0x1 .byte 0x66 .8byte 0 .8byte 0 .LLST626: .8byte .LVL935 .8byte .LVL940 .2byte 0x1 .byte 0x5f .8byte .LVL940 .8byte .LVL948-1 .2byte 0x2 .byte 0x86 .byte 0 .8byte .LVL989 .8byte .LVL991 .2byte 0x2 .byte 0x86 .byte 0 .8byte 0 .8byte 0 .LLST627: .8byte .LVL936 .8byte .LVL938 .2byte 0x1 .byte 0x66 .8byte 0 .8byte 0 .LLST628: .8byte .LVL937 .8byte .LVL938 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST629: .8byte .LVL942 .8byte .LVL944 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST630: .8byte .LVL943 .8byte .LVL944 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST631: .8byte .LVL949 .8byte .LVL950 .2byte 0x9 .byte 0x91 .byte 0x88,0x7f .byte 0x94 .byte 0x4 .byte 0x8a .byte 0xc .byte 0x24 .byte 0x9f .8byte 0 .8byte 0 .LLST632: .8byte .LVL949 .8byte .LVL950 .2byte 0x5 .byte 0x3f .byte 0x8a .byte 0xc .byte 0x24 .byte 0x9f .8byte 0 .8byte 0 .LLST633: .8byte .LVL949 .8byte .LVL950 .2byte 0x3 .byte 0x87 .byte 0x10 .byte 0x9f .8byte 0 .8byte 0 .LLST634: .8byte .LVL951 .8byte .LVL953 .2byte 0x6 .byte 0xc .4byte 0x3102000 .byte 0x9f .8byte 0 .8byte 0 .LLST635: .8byte .LVL952 .8byte .LVL953 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST636: .8byte .LVL953 .8byte .LVL955 .2byte 0x6 .byte 0xc .4byte 0x3102000 .byte 0x9f .8byte 0 .8byte 0 .LLST637: .8byte .LVL953 .8byte .LVL954 .2byte 0xb .byte 0x7f .byte 0 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0xaa0 .byte 0x21 .byte 0x9f .8byte .LVL954 .8byte .LVL955 .2byte 0xd .byte 0x7e .byte 0 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0xaa0 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST638: .8byte .LVL956 .8byte .LVL958 .2byte 0x1 .byte 0x66 .8byte 0 .8byte 0 .LLST639: .8byte .LVL957 .8byte .LVL958 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST640: .8byte .LVL958 .8byte .LVL960 .2byte 0x4 .byte 0xa .2byte 0xa00 .byte 0x9f .8byte 0 .8byte 0 .LLST641: .8byte .LVL958 .8byte .LVL960 .2byte 0x4 .byte 0xa .2byte 0xf00 .byte 0x9f .8byte 0 .8byte 0 .LLST642: .8byte .LVL958 .8byte .LVL960 .2byte 0x6 .byte 0xf2 .4byte .Ldebug_info0+5198 .byte 0 .8byte 0 .8byte 0 .LLST643: .8byte .LVL960 .8byte .LVL988 .2byte 0x1 .byte 0x66 .8byte .LVL988 .8byte .LVL989 .2byte 0x3 .byte 0x86 .byte 0x7c .byte 0x9f .8byte .LVL991 .8byte .LVL994 .2byte 0x1 .byte 0x66 .8byte 0 .8byte 0 .LLST644: .8byte .LVL960 .8byte .LVL964 .2byte 0x1 .byte 0x5f .8byte .LVL964 .8byte .LVL974-1 .2byte 0x2 .byte 0x86 .byte 0 .8byte .LVL992 .8byte .LVL994 .2byte 0x2 .byte 0x86 .byte 0 .8byte 0 .8byte 0 .LLST645: .8byte .LVL961 .8byte .LVL963 .2byte 0x1 .byte 0x66 .8byte 0 .8byte 0 .LLST646: .8byte .LVL962 .8byte .LVL963 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST647: .8byte .LVL966 .8byte .LVL968 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST648: .8byte .LVL967 .8byte .LVL968 .2byte 0x1 .byte 0x5a .8byte 0 .8byte 0 .LLST649: .8byte .LVL974 .8byte .LVL975 .2byte 0x9 .byte 0x91 .byte 0x88,0x7f .byte 0x94 .byte 0x4 .byte 0x8a .byte 0 .byte 0x24 .byte 0x9f .8byte 0 .8byte 0 .LLST650: .8byte .LVL974 .8byte .LVL975 .2byte 0x5 .byte 0x3f .byte 0x8a .byte 0 .byte 0x24 .byte 0x9f .8byte 0 .8byte 0 .LLST651: .8byte .LVL974 .8byte .LVL975 .2byte 0x3 .byte 0x87 .byte 0x10 .byte 0x9f .8byte 0 .8byte 0 .LLST652: .8byte .LVL978 .8byte .LVL980 .2byte 0x6 .byte 0xc .4byte 0x3102000 .byte 0x9f .8byte 0 .8byte 0 .LLST653: .8byte .LVL979 .8byte .LVL980 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST654: .8byte .LVL980 .8byte .LVL982 .2byte 0x6 .byte 0xc .4byte 0x3102000 .byte 0x9f .8byte 0 .8byte 0 .LLST655: .8byte .LVL980 .8byte .LVL981 .2byte 0xb .byte 0x7f .byte 0 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0x6f0 .byte 0x21 .byte 0x9f .8byte .LVL981 .8byte .LVL982 .2byte 0xd .byte 0x7e .byte 0 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0x6f0 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST656: .8byte .LVL982 .8byte .LVL984 .2byte 0x6 .byte 0xc .4byte 0x3102004 .byte 0x9f .8byte 0 .8byte 0 .LLST657: .8byte .LVL983 .8byte .LVL984 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST658: .8byte .LVL984 .8byte .LVL986 .2byte 0x6 .byte 0xc .4byte 0x3102004 .byte 0x9f .8byte 0 .8byte 0 .LLST659: .8byte .LVL984 .8byte .LVL985 .2byte 0xb .byte 0x7f .byte 0 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0x6f1 .byte 0x21 .byte 0x9f .8byte .LVL985 .8byte .LVL986 .2byte 0xd .byte 0x7e .byte 0x4 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0x6f1 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST550: .8byte .LVL805 .8byte .LVL806 .2byte 0x1 .byte 0x5f .8byte .LVL806 .8byte .LVL809 .2byte 0x2 .byte 0x7e .byte 0 .8byte .LVL809 .8byte .LVL810 .2byte 0x5 .byte 0xc .4byte 0x3102000 .8byte .LVL810 .8byte .LVL812 .2byte 0x1 .byte 0x5e .8byte .LVL812 .8byte .LVL813 .2byte 0x5 .byte 0xc .4byte 0x3102004 .8byte 0 .8byte 0 .LLST551: .8byte .LVL805 .8byte .LVL806 .2byte 0x17 .byte 0x7f .byte 0 .byte 0x38 .byte 0x25 .byte 0x3f .byte 0x1a .byte 0x7f .byte 0 .byte 0x32 .byte 0x25 .byte 0x33 .byte 0x1a .byte 0x22 .byte 0x7f .byte 0 .byte 0x34 .byte 0x25 .byte 0x3f .byte 0x1a .byte 0x22 .byte 0x3e .byte 0x1c .byte 0x9f .8byte .LVL806 .8byte .LVL807 .2byte 0x1d .byte 0x7e .byte 0 .byte 0x94 .byte 0x4 .byte 0x38 .byte 0x25 .byte 0x3f .byte 0x1a .byte 0x7e .byte 0 .byte 0x94 .byte 0x4 .byte 0x32 .byte 0x25 .byte 0x33 .byte 0x1a .byte 0x22 .byte 0x7e .byte 0 .byte 0x94 .byte 0x4 .byte 0x34 .byte 0x25 .byte 0x3f .byte 0x1a .byte 0x22 .byte 0x3e .byte 0x1c .byte 0x9f .8byte .LVL807 .8byte .LFE58 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST552: .8byte .LVL803 .8byte .LVL811 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL811 .8byte .LVL812 .2byte 0x17 .byte 0x7e .byte 0 .byte 0x38 .byte 0x25 .byte 0x3f .byte 0x1a .byte 0x7e .byte 0 .byte 0x32 .byte 0x25 .byte 0x33 .byte 0x1a .byte 0x22 .byte 0x7e .byte 0 .byte 0x34 .byte 0x25 .byte 0x3f .byte 0x1a .byte 0x22 .byte 0x3e .byte 0x1c .byte 0x9f .8byte .LVL812 .8byte .LVL813 .2byte 0x26 .byte 0xc .4byte 0x3102004 .byte 0x94 .byte 0x4 .byte 0x38 .byte 0x25 .byte 0x3f .byte 0x1a .byte 0xc .4byte 0x3102004 .byte 0x94 .byte 0x4 .byte 0x32 .byte 0x25 .byte 0x33 .byte 0x1a .byte 0x22 .byte 0xc .4byte 0x3102004 .byte 0x94 .byte 0x4 .byte 0x34 .byte 0x25 .byte 0x3f .byte 0x1a .byte 0x22 .byte 0x3e .byte 0x1c .byte 0x9f .8byte .LVL813 .8byte .LFE58 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST553: .8byte .LVL805 .8byte .LVL806 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x32 .byte 0x25 .byte 0x33 .byte 0x1a .byte 0x9f .8byte .LVL806 .8byte .LVL809 .2byte 0x9 .byte 0x7e .byte 0 .byte 0x94 .byte 0x4 .byte 0x32 .byte 0x25 .byte 0x33 .byte 0x1a .byte 0x9f .8byte .LVL809 .8byte .LVL811 .2byte 0xc .byte 0xc .4byte 0x3102000 .byte 0x94 .byte 0x4 .byte 0x32 .byte 0x25 .byte 0x33 .byte 0x1a .byte 0x9f .8byte .LVL811 .8byte .LVL812 .2byte 0x7 .byte 0x7e .byte 0 .byte 0x32 .byte 0x25 .byte 0x33 .byte 0x1a .byte 0x9f .8byte .LVL812 .8byte .LVL813 .2byte 0xc .byte 0xc .4byte 0x3102004 .byte 0x94 .byte 0x4 .byte 0x32 .byte 0x25 .byte 0x33 .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST554: .8byte .LVL803 .8byte .LVL805 .2byte 0x6 .byte 0xc .4byte 0x3102000 .byte 0x9f .8byte 0 .8byte 0 .LLST555: .8byte .LVL804 .8byte .LVL805 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST556: .8byte .LVL808 .8byte .LVL810 .2byte 0x6 .byte 0xc .4byte 0x3102004 .byte 0x9f .8byte 0 .8byte 0 .LLST557: .8byte .LVL809 .8byte .LVL810 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST388: .8byte .LVL602 .8byte .LVL632 .2byte 0x1 .byte 0x5a .8byte .LVL632 .8byte .LVL643 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte .LVL643 .8byte .LVL649 .2byte 0x1 .byte 0x5a .8byte .LVL649 .8byte .LFE57 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte 0 .8byte 0 .LLST389: .8byte .LVL602 .8byte .LVL633-1 .2byte 0x1 .byte 0x5b .8byte .LVL633-1 .8byte .LVL643 .2byte 0x1 .byte 0x62 .8byte .LVL643 .8byte .LVL649 .2byte 0x1 .byte 0x5b .8byte .LVL649 .8byte .LVL691 .2byte 0x1 .byte 0x62 .8byte .LVL691 .8byte .LVL729 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0x9f .8byte .LVL729 .8byte .LVL756 .2byte 0x1 .byte 0x62 .8byte .LVL756 .8byte .LFE57 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0x9f .8byte 0 .8byte 0 .LLST390: .8byte .LVL602 .8byte .LVL605 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL605 .8byte .LVL607 .2byte 0x1 .byte 0x5f .8byte .LVL607 .8byte .LVL608 .2byte 0xf .byte 0x7d .byte 0xc .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0xb .2byte 0xf000 .byte 0x1a .byte 0x9f .8byte .LVL608 .8byte .LVL610 .2byte 0x1 .byte 0x5f .8byte .LVL610 .8byte .LVL611 .2byte 0x2 .byte 0x7d .byte 0xc .8byte .LVL611 .8byte .LVL612 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xb .2byte 0xf3ff .byte 0x1a .byte 0x9f .8byte .LVL612 .8byte .LVL613 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xa .2byte 0x300 .byte 0x21 .byte 0x9f .8byte .LVL613 .8byte .LVL614 .2byte 0x13 .byte 0x7e .byte 0x88,0x2 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x7d .byte 0 .byte 0x1a .byte 0xa .2byte 0x300 .byte 0x21 .byte 0x9f .8byte .LVL616 .8byte .LVL619 .2byte 0x1 .byte 0x5e .8byte .LVL619 .8byte .LVL620 .2byte 0x8 .byte 0x7e .byte 0 .byte 0x11 .byte 0xf1,0x9f,0x7c .byte 0x1a .byte 0x9f .8byte .LVL620 .8byte .LVL622 .2byte 0x1 .byte 0x5e .8byte .LVL622 .8byte .LVL623 .2byte 0x3 .byte 0x7d .byte 0xc4,0x6 .8byte .LVL623 .8byte .LVL625 .2byte 0x1 .byte 0x5e .8byte .LVL625 .8byte .LVL626 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x11 .byte 0xf1,0x9f,0x7c .byte 0x1a .byte 0x9f .8byte .LVL626 .8byte .LVL628 .2byte 0x1 .byte 0x5f .8byte .LVL628 .8byte .LVL629 .2byte 0x3 .byte 0x78 .byte 0xc4,0x7 .8byte .LVL629 .8byte .LVL630 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x32 .byte 0x21 .byte 0x9f .8byte .LVL630 .8byte .LVL631 .2byte 0x8 .byte 0x78 .byte 0x88,0x4 .byte 0x94 .byte 0x4 .byte 0x32 .byte 0x21 .byte 0x9f .8byte .LVL635 .8byte .LVL636 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x9 .byte 0xbf .byte 0x1a .byte 0x9f .8byte .LVL636 .8byte .LVL637 .2byte 0x9 .byte 0x78 .byte 0x88,0x2 .byte 0x94 .byte 0x4 .byte 0x9 .byte 0xbf .byte 0x1a .byte 0x9f .8byte .LVL640 .8byte .LVL641 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x8 .byte 0xc0 .byte 0x21 .byte 0x9f .8byte .LVL641 .8byte .LVL642 .2byte 0x9 .byte 0x78 .byte 0x88,0x2 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0xc0 .byte 0x21 .byte 0x9f .8byte .LVL643 .8byte .LVL644 .2byte 0x8 .byte 0x7e .byte 0 .byte 0x11 .byte 0xf1,0x9f,0x7c .byte 0x1a .byte 0x9f .8byte .LVL644 .8byte .LVL646 .2byte 0x1 .byte 0x5e .8byte .LVL646 .8byte .LVL647 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x11 .byte 0xf1,0x9f,0x7c .byte 0x1a .byte 0x9f .8byte .LVL647 .8byte .LVL649 .2byte 0x1 .byte 0x5f .8byte .LVL650 .8byte .LVL651 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xb .2byte 0xff3f .byte 0x1a .byte 0x9f .8byte .LVL654 .8byte .LVL655 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xb .2byte 0xfef8 .byte 0x1a .byte 0x9f .8byte .LVL655 .8byte .LVL656 .2byte 0xa .byte 0x78 .byte 0xbc,0x1 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xfef8 .byte 0x1a .byte 0x9f .8byte .LVL658 .8byte .LVL659 .2byte 0xf .byte 0x7f .byte 0 .byte 0x11 .byte 0xbf,0xfe,0xff,0xbf,0x7f .byte 0x1a .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL659 .8byte .LVL660 .2byte 0x12 .byte 0x78 .byte 0x9c,0x2 .byte 0x94 .byte 0x4 .byte 0x11 .byte 0xbf,0xfe,0xff,0xbf,0x7f .byte 0x1a .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL662 .8byte .LVL663 .2byte 0x9 .byte 0x7f .byte 0 .byte 0xc .4byte 0x3000001 .byte 0x21 .byte 0x9f .8byte .LVL669 .8byte .LVL670 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x9 .byte 0xfd .byte 0x1a .byte 0x9f .8byte .LVL670 .8byte .LVL671 .2byte 0x9 .byte 0x7e .byte 0xd0,0x4 .byte 0x94 .byte 0x4 .byte 0x9 .byte 0xfd .byte 0x1a .byte 0x9f .8byte .LVL674 .8byte .LVL675 .2byte 0x1 .byte 0x5f .8byte .LVL675 .8byte .LVL676 .2byte 0x1 .byte 0x5d .8byte .LVL676 .8byte .LVL677 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x45 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL677 .8byte .LVL678 .2byte 0x26 .byte 0x78 .byte 0xc0,0x2 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x40 .byte 0x46 .byte 0x24 .byte 0x1f .byte 0x1a .byte 0x82 .byte 0x8 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x9 .byte 0xf0 .byte 0x24 .byte 0x9 .byte 0xf0 .byte 0x25 .byte 0x21 .byte 0x40 .byte 0x45 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL679 .8byte .LVL680 .2byte 0x3 .byte 0x8 .byte 0x52 .byte 0x9f .8byte .LVL680 .8byte .LVL685 .2byte 0x3 .byte 0x8 .byte 0x53 .byte 0x9f .8byte .LVL685 .8byte .LVL686 .2byte 0x4 .byte 0xa .2byte 0x520 .byte 0x9f .8byte .LVL686 .8byte .LVL687 .2byte 0x1 .byte 0x5f .8byte .LVL687 .8byte .LVL688 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x31 .byte 0x21 .byte 0x9f .8byte .LVL688 .8byte .LVL689 .2byte 0x7 .byte 0x78 .byte 0 .byte 0x94 .byte 0x4 .byte 0x31 .byte 0x21 .byte 0x9f .8byte .LVL699 .8byte .LVL700 .2byte 0x1 .byte 0x5f .8byte .LVL700 .8byte .LVL705 .2byte 0x2 .byte 0x82 .byte 0x10 .8byte .LVL705 .8byte .LVL706 .2byte 0x8 .byte 0x7e .byte 0 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL706 .8byte .LVL707 .2byte 0xb .byte 0x82 .byte 0x8c,0x1 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL710 .8byte .LVL711 .2byte 0x9 .byte 0x7e .byte 0 .byte 0xc .4byte 0x7fffffff .byte 0x1a .byte 0x9f .8byte .LVL711 .8byte .LVL712 .2byte 0xc .byte 0x82 .byte 0x8c,0x1 .byte 0x94 .byte 0x4 .byte 0xc .4byte 0x7fffffff .byte 0x1a .byte 0x9f .8byte .LVL715 .8byte .LVL716 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL716 .8byte .LVL717 .2byte 0xa .byte 0x7e .byte 0x14 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL720 .8byte .LVL721 .2byte 0x9 .byte 0x7f .byte 0 .byte 0x11 .byte 0xff,0xff,0xff,0x4f .byte 0x1a .byte 0x9f .8byte .LVL721 .8byte .LVL722 .2byte 0xc .byte 0x82 .byte 0x8c,0x2 .byte 0x94 .byte 0x4 .byte 0x11 .byte 0xff,0xff,0xff,0x4f .byte 0x1a .byte 0x9f .8byte .LVL725 .8byte .LVL726 .2byte 0x1 .byte 0x5f .8byte .LVL726 .8byte .LVL727 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x8 .byte 0x40 .byte 0x21 .byte 0x9f .8byte .LVL727 .8byte .LVL728 .2byte 0x13 .byte 0x82 .byte 0x9c,0x2 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0xb .2byte 0xff3f .byte 0x1a .byte 0x8 .byte 0x40 .byte 0x21 .byte 0x9f .8byte .LVL730 .8byte .LVL731 .2byte 0x1 .byte 0x5f .8byte .LVL731 .8byte .LVL732 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x8 .byte 0x80 .byte 0x21 .byte 0x9f .8byte .LVL732 .8byte .LVL733 .2byte 0x13 .byte 0x78 .byte 0x88,0x2 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0xb .2byte 0xff3f .byte 0x1a .byte 0x8 .byte 0x80 .byte 0x21 .byte 0x9f .8byte .LVL737 .8byte .LVL739 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xb .2byte 0xfef8 .byte 0x1a .byte 0x9f .8byte .LVL739 .8byte .LVL740 .2byte 0xa .byte 0x78 .byte 0xbc,0x1 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xfef8 .byte 0x1a .byte 0x9f .8byte .LVL740 .8byte .LVL741 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xa .2byte 0x100 .byte 0x21 .byte 0x9f .8byte .LVL741 .8byte .LVL742 .2byte 0x17 .byte 0x78 .byte 0xbc,0x1 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0xb .2byte 0xfef8 .byte 0x1a .byte 0x7e .byte 0 .byte 0x21 .byte 0xa .2byte 0x100 .byte 0x21 .byte 0x9f .8byte .LVL744 .8byte .LVL745 .2byte 0xd .byte 0x7f .byte 0 .byte 0xc .4byte 0x7fffffff .byte 0x1a .byte 0x40 .byte 0x47 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL745 .8byte .LVL746 .2byte 0x10 .byte 0x78 .byte 0x9c,0x2 .byte 0x94 .byte 0x4 .byte 0xc .4byte 0x7fffffff .byte 0x1a .byte 0x40 .byte 0x47 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL748 .8byte .LVL749 .2byte 0xf .byte 0xc .4byte 0x310311c .byte 0x94 .byte 0x4 .byte 0x11 .byte 0xff,0xff,0xff,0xff,0x78 .byte 0x1a .byte 0x9f .8byte .LVL749 .8byte .LVL750 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x41 .byte 0x49 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL751 .8byte .LVL752 .2byte 0x9 .byte 0x7f .byte 0 .byte 0xc .4byte 0x1003087 .byte 0x21 .byte 0x9f .8byte .LVL755 .8byte .LVL756 .2byte 0x4 .byte 0xa .2byte 0x172 .byte 0x9f .8byte .LVL758 .8byte .LVL759 .2byte 0x1 .byte 0x5f .8byte .LVL759 .8byte .LVL760 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x46 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL760 .8byte .LVL761 .2byte 0x16 .byte 0x82 .byte 0x8c,0x2 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x11 .byte 0xff,0xff,0xff,0x4f .byte 0x1a .byte 0x40 .byte 0x46 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL764 .8byte .LVL765 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x31 .byte 0x21 .byte 0x9f .8byte .LVL765 .8byte .LVL766 .2byte 0x7 .byte 0x82 .byte 0x4 .byte 0x94 .byte 0x4 .byte 0x31 .byte 0x21 .byte 0x9f .8byte .LVL772 .8byte .LVL773 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x9 .byte 0xfe .byte 0x1a .byte 0x9f .8byte .LVL773 .8byte .LVL774 .2byte 0x9 .byte 0x7e .byte 0xd0,0x4 .byte 0x94 .byte 0x4 .byte 0x9 .byte 0xfe .byte 0x1a .byte 0x9f .8byte .LVL777 .8byte .LVL778 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x9 .byte 0xfe .byte 0x1a .byte 0x9f .8byte .LVL778 .8byte .LVL779 .2byte 0x8 .byte 0x82 .byte 0x4 .byte 0x94 .byte 0x4 .byte 0x9 .byte 0xfe .byte 0x1a .byte 0x9f .8byte .LVL787 .8byte .LVL788 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xb .2byte 0xff3f .byte 0x1a .byte 0x9f .8byte .LVL788 .8byte .LVL789 .2byte 0xa .byte 0x82 .byte 0x88,0x2 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xff3f .byte 0x1a .byte 0x9f .8byte .LVL791 .8byte .LVL792 .2byte 0x1 .byte 0x5f .8byte .LVL792 .8byte .LVL793 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x45 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL793 .8byte .LVL794 .2byte 0x16 .byte 0x82 .byte 0x8c,0x2 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x11 .byte 0xff,0xff,0xff,0x4f .byte 0x1a .byte 0x40 .byte 0x45 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL795 .8byte .LVL799 .2byte 0x4 .byte 0xa .2byte 0x401 .byte 0x9f .8byte .LVL799 .8byte .LVL800-1 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST391: .8byte .LVL602 .8byte .LVL614 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL614 .8byte .LVL615 .2byte 0x7 .byte 0x7b .byte 0xc .byte 0x94 .byte 0x4 .byte 0x31 .byte 0x1a .byte 0x9f .8byte .LVL615 .8byte .LVL617 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x31 .byte 0x1a .byte 0x9f .8byte .LVL617 .8byte .LVL621 .2byte 0xe .byte 0x7b .byte 0xc .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x20 .byte 0x31 .byte 0x1a .byte 0x9f .8byte .LVL643 .8byte .LVL646 .2byte 0xe .byte 0x7b .byte 0xc .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x20 .byte 0x31 .byte 0x1a .byte 0x9f .8byte .LVL735 .8byte .LVL738 .2byte 0x9 .byte 0x7e .byte 0 .byte 0x40 .byte 0x25 .byte 0x4f .byte 0x1a .byte 0x32 .byte 0x1c .byte 0x9f .8byte .LVL738 .8byte .LVL747 .2byte 0xc .byte 0x78 .byte 0xe0,0 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x25 .byte 0x4f .byte 0x1a .byte 0x32 .byte 0x1c .byte 0x9f .8byte 0 .8byte 0 .LLST392: .8byte .LVL602 .8byte .LVL603 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL603 .8byte .LVL802 .2byte 0x1 .byte 0x59 .8byte 0 .8byte 0 .LLST393: .8byte .LVL602 .8byte .LVL621 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL621 .8byte .LVL627 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL627 .8byte .LVL643 .2byte 0x2 .byte 0x32 .byte 0x9f .8byte .LVL643 .8byte .LVL646 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL646 .8byte .LVL649 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL649 .8byte .LFE57 .2byte 0x2 .byte 0x32 .byte 0x9f .8byte 0 .8byte 0 .LLST394: .8byte .LVL602 .8byte .LVL700 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL700 .8byte .LVL729 .2byte 0x1 .byte 0x58 .8byte .LVL729 .8byte .LVL801 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte 0 .8byte 0 .LLST395: .8byte .LVL603 .8byte .LVL605 .2byte 0x6 .byte 0xc .4byte 0x310200c .byte 0x9f .8byte 0 .8byte 0 .LLST396: .8byte .LVL604 .8byte .LVL605 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST397: .8byte .LVL608 .8byte .LVL609 .2byte 0x6 .byte 0xc .4byte 0x310200c .byte 0x9f .8byte 0 .8byte 0 .LLST398: .8byte .LVL608 .8byte .LVL609 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST399: .8byte .LVL609 .8byte .LVL611 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST400: .8byte .LVL610 .8byte .LVL611 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST401: .8byte .LVL612 .8byte .LVL614 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST402: .8byte .LVL612 .8byte .LVL613 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xa .2byte 0x300 .byte 0x21 .byte 0x9f .8byte .LVL613 .8byte .LVL614 .2byte 0x13 .byte 0x7e .byte 0x88,0x2 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x7d .byte 0 .byte 0x1a .byte 0xa .2byte 0x300 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST403: .8byte .LVL615 .8byte .LVL616 .2byte 0x6 .byte 0xc .4byte 0x3103344 .byte 0x9f .8byte .LVL621 .8byte .LVL623 .2byte 0x6 .byte 0xc .4byte 0x31033c4 .byte 0x9f .8byte 0 .8byte 0 .LLST404: .8byte .LVL615 .8byte .LVL616 .2byte 0x1 .byte 0x5e .8byte .LVL622 .8byte .LVL623 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST405: .8byte .LVL620 .8byte .LVL621 .2byte 0x6 .byte 0xc .4byte 0x3103344 .byte 0x9f .8byte .LVL626 .8byte .LVL627 .2byte 0x6 .byte 0xc .4byte 0x31033c4 .byte 0x9f .8byte 0 .8byte 0 .LLST406: .8byte .LVL620 .8byte .LVL621 .2byte 0x1 .byte 0x5e .8byte .LVL626 .8byte .LVL627 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST407: .8byte .LVL627 .8byte .LVL629 .2byte 0x6 .byte 0xc .4byte 0x3103208 .byte 0x9f .8byte 0 .8byte 0 .LLST408: .8byte .LVL628 .8byte .LVL629 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST409: .8byte .LVL629 .8byte .LVL631 .2byte 0x6 .byte 0xc .4byte 0x3103208 .byte 0x9f .8byte 0 .8byte 0 .LLST410: .8byte .LVL629 .8byte .LVL630 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x32 .byte 0x21 .byte 0x9f .8byte .LVL630 .8byte .LVL631 .2byte 0x8 .byte 0x78 .byte 0x88,0x4 .byte 0x94 .byte 0x4 .byte 0x32 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST411: .8byte .LVL634 .8byte .LVL635 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST412: .8byte .LVL634 .8byte .LVL635 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST413: .8byte .LVL635 .8byte .LVL637 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST414: .8byte .LVL635 .8byte .LVL636 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x9 .byte 0xbf .byte 0x1a .byte 0x9f .8byte .LVL636 .8byte .LVL637 .2byte 0x9 .byte 0x78 .byte 0x88,0x2 .byte 0x94 .byte 0x4 .byte 0x9 .byte 0xbf .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST415: .8byte .LVL637 .8byte .LVL638 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte 0 .8byte 0 .LLST416: .8byte .LVL638 .8byte .LVL640 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST417: .8byte .LVL639 .8byte .LVL640 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST418: .8byte .LVL640 .8byte .LVL643 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST419: .8byte .LVL640 .8byte .LVL641 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x8 .byte 0xc0 .byte 0x21 .byte 0x9f .8byte .LVL641 .8byte .LVL642 .2byte 0x9 .byte 0x78 .byte 0x88,0x2 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0xc0 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST420: .8byte .LVL649 .8byte .LVL650 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST421: .8byte .LVL649 .8byte .LVL650 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST422: .8byte .LVL650 .8byte .LVL652 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST423: .8byte .LVL650 .8byte .LVL651 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xb .2byte 0xff3f .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST424: .8byte .LVL652 .8byte .LVL654 .2byte 0x6 .byte 0xc .4byte 0x31030bc .byte 0x9f .8byte 0 .8byte 0 .LLST425: .8byte .LVL653 .8byte .LVL654 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST426: .8byte .LVL654 .8byte .LVL656 .2byte 0x6 .byte 0xc .4byte 0x31030bc .byte 0x9f .8byte 0 .8byte 0 .LLST427: .8byte .LVL654 .8byte .LVL655 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xb .2byte 0xfef8 .byte 0x1a .byte 0x9f .8byte .LVL655 .8byte .LVL656 .2byte 0xa .byte 0x78 .byte 0xbc,0x1 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xfef8 .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST428: .8byte .LVL657 .8byte .LVL658 .2byte 0x6 .byte 0xc .4byte 0x310311c .byte 0x9f .8byte 0 .8byte 0 .LLST429: .8byte .LVL657 .8byte .LVL658 .2byte 0x5 .byte 0xc .4byte 0x310311c .8byte 0 .8byte 0 .LLST430: .8byte .LVL658 .8byte .LVL660 .2byte 0x6 .byte 0xc .4byte 0x310311c .byte 0x9f .8byte 0 .8byte 0 .LLST431: .8byte .LVL658 .8byte .LVL659 .2byte 0xf .byte 0x7f .byte 0 .byte 0x11 .byte 0xbf,0xfe,0xff,0xbf,0x7f .byte 0x1a .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL659 .8byte .LVL660 .2byte 0x12 .byte 0x78 .byte 0x9c,0x2 .byte 0x94 .byte 0x4 .byte 0x11 .byte 0xbf,0xfe,0xff,0xbf,0x7f .byte 0x1a .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST432: .8byte .LVL749 .8byte .LVL750 .2byte 0x6 .byte 0xc .4byte 0x310311c .byte 0x9f .8byte 0 .8byte 0 .LLST433: .8byte .LVL749 .8byte .LVL750 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x41 .byte 0x49 .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST434: .8byte .LVL661 .8byte .LVL662 .2byte 0x6 .byte 0xc .4byte 0x31030c0 .byte 0x9f .8byte 0 .8byte 0 .LLST435: .8byte .LVL661 .8byte .LVL662 .2byte 0x5 .byte 0xc .4byte 0x31030c0 .8byte 0 .8byte 0 .LLST436: .8byte .LVL662 .8byte .LVL663 .2byte 0x6 .byte 0xc .4byte 0x31030c0 .byte 0x9f .8byte 0 .8byte 0 .LLST437: .8byte .LVL662 .8byte .LVL663 .2byte 0x9 .byte 0x7f .byte 0 .byte 0xc .4byte 0x3000001 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST438: .8byte .LVL751 .8byte .LVL752 .2byte 0x6 .byte 0xc .4byte 0x31030c0 .byte 0x9f .8byte 0 .8byte 0 .LLST439: .8byte .LVL751 .8byte .LVL752 .2byte 0x9 .byte 0x7f .byte 0 .byte 0xc .4byte 0x1003087 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST440: .8byte .LVL664 .8byte .LVL666 .2byte 0x6 .byte 0xc .4byte 0x70005d4 .byte 0x9f .8byte 0 .8byte 0 .LLST441: .8byte .LVL665 .8byte .LVL666 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST442: .8byte .LVL667 .8byte .LVL669 .2byte 0x6 .byte 0xc .4byte 0x7010250 .byte 0x9f .8byte 0 .8byte 0 .LLST443: .8byte .LVL668 .8byte .LVL669 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST444: .8byte .LVL669 .8byte .LVL671 .2byte 0x6 .byte 0xc .4byte 0x7010250 .byte 0x9f .8byte 0 .8byte 0 .LLST445: .8byte .LVL669 .8byte .LVL670 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x9 .byte 0xfd .byte 0x1a .byte 0x9f .8byte .LVL670 .8byte .LVL671 .2byte 0x9 .byte 0x7e .byte 0xd0,0x4 .byte 0x94 .byte 0x4 .byte 0x9 .byte 0xfd .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST446: .8byte .LVL671 .8byte .LVL672 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte 0 .8byte 0 .LLST447: .8byte .LVL672 .8byte .LVL674 .2byte 0x6 .byte 0xc .4byte 0x3103140 .byte 0x9f .8byte 0 .8byte 0 .LLST448: .8byte .LVL673 .8byte .LVL674 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST449: .8byte .LVL676 .8byte .LVL678 .2byte 0x6 .byte 0xc .4byte 0x3103140 .byte 0x9f .8byte 0 .8byte 0 .LLST450: .8byte .LVL676 .8byte .LVL677 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x45 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL677 .8byte .LVL678 .2byte 0x26 .byte 0x78 .byte 0xc0,0x2 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x40 .byte 0x46 .byte 0x24 .byte 0x1f .byte 0x1a .byte 0x82 .byte 0x8 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x9 .byte 0xf0 .byte 0x24 .byte 0x9 .byte 0xf0 .byte 0x25 .byte 0x21 .byte 0x40 .byte 0x45 .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST451: .8byte .LVL679 .8byte .LVL680 .2byte 0x6 .byte 0xc .4byte 0x3103000 .byte 0x9f .8byte 0 .8byte 0 .LLST452: .8byte .LVL679 .8byte .LVL680 .2byte 0x3 .byte 0x8 .byte 0x52 .byte 0x9f .8byte 0 .8byte 0 .LLST453: .8byte .LVL680 .8byte .LVL686 .2byte 0x6 .byte 0xc .4byte 0x3103000 .byte 0x9f .8byte 0 .8byte 0 .LLST454: .8byte .LVL680 .8byte .LVL686 .2byte 0x3 .byte 0x8 .byte 0x53 .byte 0x9f .8byte 0 .8byte 0 .LLST455: .8byte .LVL681 .8byte .LVL683 .2byte 0x6 .byte 0xc .4byte 0x3103010 .byte 0x9f .8byte 0 .8byte 0 .LLST456: .8byte .LVL682 .8byte .LVL683 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST457: .8byte .LVL684 .8byte .LVL685 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte 0 .8byte 0 .LLST458: .8byte .LVL686 .8byte .LVL687 .2byte 0x6 .byte 0xc .4byte 0x3103000 .byte 0x9f .8byte 0 .8byte 0 .LLST459: .8byte .LVL686 .8byte .LVL687 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST460: .8byte .LVL687 .8byte .LVL689 .2byte 0x6 .byte 0xc .4byte 0x3103000 .byte 0x9f .8byte 0 .8byte 0 .LLST461: .8byte .LVL687 .8byte .LVL688 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x31 .byte 0x21 .byte 0x9f .8byte .LVL688 .8byte .LVL689 .2byte 0x7 .byte 0x78 .byte 0 .byte 0x94 .byte 0x4 .byte 0x31 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST462: .8byte .LVL689 .8byte .LVL729 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte .LVL756 .8byte .LFE57 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte 0 .8byte 0 .LLST463: .8byte .LVL691 .8byte .LVL693 .2byte 0x6 .byte 0xc .4byte 0x3103010 .byte 0x9f .8byte 0 .8byte 0 .LLST464: .8byte .LVL692 .8byte .LVL693 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST465: .8byte .LVL694 .8byte .LVL696 .2byte 0x6 .byte 0xc .4byte 0x70005d4 .byte 0x9f .8byte 0 .8byte 0 .LLST466: .8byte .LVL695 .8byte .LVL696 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST467: .8byte .LVL697 .8byte .LVL699 .2byte 0x6 .byte 0xc .4byte 0x3103010 .byte 0x9f .8byte 0 .8byte 0 .LLST468: .8byte .LVL698 .8byte .LVL699 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST469: .8byte .LVL700 .8byte .LVL702 .2byte 0x6 .byte 0xc .4byte 0x3103018 .byte 0x9f .8byte 0 .8byte 0 .LLST470: .8byte .LVL701 .8byte .LVL702 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST471: .8byte .LVL703 .8byte .LVL705 .2byte 0x6 .byte 0xc .4byte 0x310308c .byte 0x9f .8byte 0 .8byte 0 .LLST472: .8byte .LVL704 .8byte .LVL705 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST473: .8byte .LVL705 .8byte .LVL707 .2byte 0x6 .byte 0xc .4byte 0x310308c .byte 0x9f .8byte 0 .8byte 0 .LLST474: .8byte .LVL705 .8byte .LVL706 .2byte 0x8 .byte 0x7e .byte 0 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL706 .8byte .LVL707 .2byte 0xb .byte 0x82 .byte 0x8c,0x1 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST475: .8byte .LVL707 .8byte .LVL708 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte 0 .8byte 0 .LLST476: .8byte .LVL708 .8byte .LVL710 .2byte 0x6 .byte 0xc .4byte 0x310308c .byte 0x9f .8byte 0 .8byte 0 .LLST477: .8byte .LVL709 .8byte .LVL710 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST478: .8byte .LVL710 .8byte .LVL712 .2byte 0x6 .byte 0xc .4byte 0x310308c .byte 0x9f .8byte 0 .8byte 0 .LLST479: .8byte .LVL710 .8byte .LVL711 .2byte 0x9 .byte 0x7e .byte 0 .byte 0xc .4byte 0x7fffffff .byte 0x1a .byte 0x9f .8byte .LVL711 .8byte .LVL712 .2byte 0xc .byte 0x82 .byte 0x8c,0x1 .byte 0x94 .byte 0x4 .byte 0xc .4byte 0x7fffffff .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST480: .8byte .LVL712 .8byte .LVL713 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte 0 .8byte 0 .LLST481: .8byte .LVL713 .8byte .LVL715 .2byte 0x6 .byte 0xc .4byte 0x3102014 .byte 0x9f .8byte 0 .8byte 0 .LLST482: .8byte .LVL714 .8byte .LVL715 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST483: .8byte .LVL715 .8byte .LVL717 .2byte 0x6 .byte 0xc .4byte 0x3102014 .byte 0x9f .8byte 0 .8byte 0 .LLST484: .8byte .LVL715 .8byte .LVL716 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL716 .8byte .LVL717 .2byte 0xa .byte 0x7e .byte 0x14 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST485: .8byte .LVL717 .8byte .LVL718 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte 0 .8byte 0 .LLST486: .8byte .LVL718 .8byte .LVL720 .2byte 0x6 .byte 0xc .4byte 0x310310c .byte 0x9f .8byte 0 .8byte 0 .LLST487: .8byte .LVL719 .8byte .LVL720 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST488: .8byte .LVL720 .8byte .LVL722 .2byte 0x6 .byte 0xc .4byte 0x310310c .byte 0x9f .8byte 0 .8byte 0 .LLST489: .8byte .LVL720 .8byte .LVL721 .2byte 0x9 .byte 0x7f .byte 0 .byte 0x11 .byte 0xff,0xff,0xff,0x4f .byte 0x1a .byte 0x9f .8byte .LVL721 .8byte .LVL722 .2byte 0xc .byte 0x82 .byte 0x8c,0x2 .byte 0x94 .byte 0x4 .byte 0x11 .byte 0xff,0xff,0xff,0x4f .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST490: .8byte .LVL723 .8byte .LVL725 .2byte 0x6 .byte 0xc .4byte 0x310311c .byte 0x9f .8byte 0 .8byte 0 .LLST491: .8byte .LVL724 .8byte .LVL725 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST492: .8byte .LVL726 .8byte .LVL729 .2byte 0x6 .byte 0xc .4byte 0x310311c .byte 0x9f .8byte 0 .8byte 0 .LLST493: .8byte .LVL726 .8byte .LVL727 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x8 .byte 0x40 .byte 0x21 .byte 0x9f .8byte .LVL727 .8byte .LVL728 .2byte 0x13 .byte 0x82 .byte 0x9c,0x2 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0xb .2byte 0xff3f .byte 0x1a .byte 0x8 .byte 0x40 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST494: .8byte .LVL729 .8byte .LVL730 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST495: .8byte .LVL729 .8byte .LVL730 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST496: .8byte .LVL731 .8byte .LVL733 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST497: .8byte .LVL731 .8byte .LVL732 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x8 .byte 0x80 .byte 0x21 .byte 0x9f .8byte .LVL732 .8byte .LVL733 .2byte 0x13 .byte 0x78 .byte 0x88,0x2 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0xb .2byte 0xff3f .byte 0x1a .byte 0x8 .byte 0x80 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST498: .8byte .LVL733 .8byte .LVL735 .2byte 0x6 .byte 0xc .4byte 0x3103060 .byte 0x9f .8byte 0 .8byte 0 .LLST499: .8byte .LVL734 .8byte .LVL735 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST500: .8byte .LVL735 .8byte .LVL737 .2byte 0x6 .byte 0xc .4byte 0x31030bc .byte 0x9f .8byte 0 .8byte 0 .LLST501: .8byte .LVL736 .8byte .LVL737 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST502: .8byte .LVL740 .8byte .LVL742 .2byte 0x6 .byte 0xc .4byte 0x31030bc .byte 0x9f .8byte 0 .8byte 0 .LLST503: .8byte .LVL740 .8byte .LVL741 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xa .2byte 0x100 .byte 0x21 .byte 0x9f .8byte .LVL741 .8byte .LVL742 .2byte 0x17 .byte 0x78 .byte 0xbc,0x1 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0xb .2byte 0xfef8 .byte 0x1a .byte 0x7e .byte 0 .byte 0x21 .byte 0xa .2byte 0x100 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST504: .8byte .LVL742 .8byte .LVL744 .2byte 0x6 .byte 0xc .4byte 0x310311c .byte 0x9f .8byte 0 .8byte 0 .LLST505: .8byte .LVL743 .8byte .LVL744 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST506: .8byte .LVL744 .8byte .LVL747 .2byte 0x6 .byte 0xc .4byte 0x310311c .byte 0x9f .8byte 0 .8byte 0 .LLST507: .8byte .LVL744 .8byte .LVL745 .2byte 0xd .byte 0x7f .byte 0 .byte 0xc .4byte 0x7fffffff .byte 0x1a .byte 0x40 .byte 0x47 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL745 .8byte .LVL746 .2byte 0x10 .byte 0x78 .byte 0x9c,0x2 .byte 0x94 .byte 0x4 .byte 0xc .4byte 0x7fffffff .byte 0x1a .byte 0x40 .byte 0x47 .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST508: .8byte .LVL747 .8byte .LVL748 .2byte 0x6 .byte 0xc .4byte 0x310311c .byte 0x9f .8byte 0 .8byte 0 .LLST509: .8byte .LVL747 .8byte .LVL748 .2byte 0x5 .byte 0xc .4byte 0x310311c .8byte 0 .8byte 0 .LLST510: .8byte .LVL750 .8byte .LVL751 .2byte 0x6 .byte 0xc .4byte 0x31030c0 .byte 0x9f .8byte 0 .8byte 0 .LLST511: .8byte .LVL750 .8byte .LVL751 .2byte 0x5 .byte 0xc .4byte 0x31030c0 .8byte 0 .8byte 0 .LLST512: .8byte .LVL752 .8byte .LVL754 .2byte 0x6 .byte 0xc .4byte 0x70005d4 .byte 0x9f .8byte 0 .8byte 0 .LLST513: .8byte .LVL753 .8byte .LVL754 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST514: .8byte .LVL756 .8byte .LVL758 .2byte 0x6 .byte 0xc .4byte 0x310310c .byte 0x9f .8byte 0 .8byte 0 .LLST515: .8byte .LVL757 .8byte .LVL758 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST516: .8byte .LVL759 .8byte .LVL761 .2byte 0x6 .byte 0xc .4byte 0x310310c .byte 0x9f .8byte 0 .8byte 0 .LLST517: .8byte .LVL759 .8byte .LVL760 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x46 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL760 .8byte .LVL761 .2byte 0x16 .byte 0x82 .byte 0x8c,0x2 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x11 .byte 0xff,0xff,0xff,0x4f .byte 0x1a .byte 0x40 .byte 0x46 .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST518: .8byte .LVL761 .8byte .LVL762 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte 0 .8byte 0 .LLST519: .8byte .LVL762 .8byte .LVL764 .2byte 0x6 .byte 0xc .4byte 0x3103004 .byte 0x9f .8byte 0 .8byte 0 .LLST520: .8byte .LVL763 .8byte .LVL764 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST521: .8byte .LVL764 .8byte .LVL799 .2byte 0x6 .byte 0xc .4byte 0x3103004 .byte 0x9f .8byte 0 .8byte 0 .LLST522: .8byte .LVL764 .8byte .LVL765 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x31 .byte 0x21 .byte 0x9f .8byte .LVL765 .8byte .LVL766 .2byte 0x7 .byte 0x82 .byte 0x4 .byte 0x94 .byte 0x4 .byte 0x31 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST523: .8byte .LVL767 .8byte .LVL769 .2byte 0x6 .byte 0xc .4byte 0x3103018 .byte 0x9f .8byte 0 .8byte 0 .LLST524: .8byte .LVL768 .8byte .LVL769 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST525: .8byte .LVL770 .8byte .LVL772 .2byte 0x6 .byte 0xc .4byte 0x7010250 .byte 0x9f .8byte 0 .8byte 0 .LLST526: .8byte .LVL771 .8byte .LVL772 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST527: .8byte .LVL772 .8byte .LVL774 .2byte 0x6 .byte 0xc .4byte 0x7010250 .byte 0x9f .8byte 0 .8byte 0 .LLST528: .8byte .LVL772 .8byte .LVL773 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x9 .byte 0xfe .byte 0x1a .byte 0x9f .8byte .LVL773 .8byte .LVL774 .2byte 0x9 .byte 0x7e .byte 0xd0,0x4 .byte 0x94 .byte 0x4 .byte 0x9 .byte 0xfe .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST529: .8byte .LVL774 .8byte .LVL775 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte 0 .8byte 0 .LLST530: .8byte .LVL775 .8byte .LVL777 .2byte 0x6 .byte 0xc .4byte 0x3103004 .byte 0x9f .8byte 0 .8byte 0 .LLST531: .8byte .LVL776 .8byte .LVL777 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST532: .8byte .LVL777 .8byte .LVL799 .2byte 0x6 .byte 0xc .4byte 0x3103004 .byte 0x9f .8byte 0 .8byte 0 .LLST533: .8byte .LVL777 .8byte .LVL778 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x9 .byte 0xfe .byte 0x1a .byte 0x9f .8byte .LVL778 .8byte .LVL779 .2byte 0x8 .byte 0x82 .byte 0x4 .byte 0x94 .byte 0x4 .byte 0x9 .byte 0xfe .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST534: .8byte .LVL780 .8byte .LVL782 .2byte 0x6 .byte 0xc .4byte 0x3103018 .byte 0x9f .8byte 0 .8byte 0 .LLST535: .8byte .LVL781 .8byte .LVL782 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST536: .8byte .LVL783 .8byte .LVL784 .2byte 0x2 .byte 0x3f .byte 0x9f .8byte 0 .8byte 0 .LLST537: .8byte .LVL785 .8byte .LVL787 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST538: .8byte .LVL786 .8byte .LVL787 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST539: .8byte .LVL787 .8byte .LVL789 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST540: .8byte .LVL787 .8byte .LVL788 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xb .2byte 0xff3f .byte 0x1a .byte 0x9f .8byte .LVL788 .8byte .LVL789 .2byte 0xa .byte 0x82 .byte 0x88,0x2 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xff3f .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST541: .8byte .LVL789 .8byte .LVL791 .2byte 0x6 .byte 0xc .4byte 0x310310c .byte 0x9f .8byte 0 .8byte 0 .LLST542: .8byte .LVL790 .8byte .LVL791 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST543: .8byte .LVL792 .8byte .LVL794 .2byte 0x6 .byte 0xc .4byte 0x310310c .byte 0x9f .8byte 0 .8byte 0 .LLST544: .8byte .LVL792 .8byte .LVL793 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x45 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL793 .8byte .LVL794 .2byte 0x16 .byte 0x82 .byte 0x8c,0x2 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x11 .byte 0xff,0xff,0xff,0x4f .byte 0x1a .byte 0x40 .byte 0x45 .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST545: .8byte .LVL794 .8byte .LVL795 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte 0 .8byte 0 .LLST546: .8byte .LVL795 .8byte .LVL799 .2byte 0x6 .byte 0xc .4byte 0x3103000 .byte 0x9f .8byte 0 .8byte 0 .LLST547: .8byte .LVL795 .8byte .LVL799 .2byte 0x4 .byte 0xa .2byte 0x401 .byte 0x9f .8byte 0 .8byte 0 .LLST548: .8byte .LVL796 .8byte .LVL798 .2byte 0x6 .byte 0xc .4byte 0x3103010 .byte 0x9f .8byte 0 .8byte 0 .LLST549: .8byte .LVL797 .8byte .LVL798 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST376: .8byte .LVL581 .8byte .LVL585 .2byte 0x1 .byte 0x5a .8byte .LVL585 .8byte .LVL589 .2byte 0x1 .byte 0x59 .8byte .LVL589 .8byte .LVL590 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte .LVL590 .8byte .LFE56 .2byte 0x1 .byte 0x59 .8byte 0 .8byte 0 .LLST377: .8byte .LVL584 .8byte .LVL588 .2byte 0x1 .byte 0x58 .8byte .LVL590 .8byte .LVL591 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST378: .8byte .LVL581 .8byte .LVL583 .2byte 0x6 .byte 0xc .4byte 0x3006228 .byte 0x9f .8byte 0 .8byte 0 .LLST379: .8byte .LVL582 .8byte .LVL583 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST380: .8byte .LVL593 .8byte .LVL594 .2byte 0x6 .byte 0xc .4byte 0x3102500 .byte 0x9f .8byte 0 .8byte 0 .LLST381: .8byte .LVL593 .8byte .LVL594 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST382: .8byte .LVL595 .8byte .LVL596 .2byte 0x6 .byte 0xc .4byte 0x3102504 .byte 0x9f .8byte 0 .8byte 0 .LLST383: .8byte .LVL595 .8byte .LVL596 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST384: .8byte .LVL597 .8byte .LVL598 .2byte 0x6 .byte 0xc .4byte 0x3102508 .byte 0x9f .8byte 0 .8byte 0 .LLST385: .8byte .LVL597 .8byte .LVL598 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST386: .8byte .LVL599 .8byte .LVL600 .2byte 0x6 .byte 0xc .4byte 0x310250c .byte 0x9f .8byte 0 .8byte 0 .LLST387: .8byte .LVL599 .8byte .LVL600 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST346: .8byte .LVL533 .8byte .LVL534 .2byte 0x1 .byte 0x5f .8byte .LVL534 .8byte .LVL535 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xa .2byte 0x2000 .byte 0x21 .byte 0x9f .8byte .LVL535 .8byte .LVL536 .2byte 0x13 .byte 0x7e .byte 0x8 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0xb .2byte 0xc0ff .byte 0x1a .byte 0xa .2byte 0x2000 .byte 0x21 .byte 0x9f .8byte .LVL538 .8byte .LVL539 .2byte 0x1 .byte 0x5f .8byte .LVL539 .8byte .LVL540 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x42 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL540 .8byte .LVL541 .2byte 0xa .byte 0x7f .byte 0 .byte 0x7e .byte 0 .byte 0x21 .byte 0x40 .byte 0x42 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL541 .8byte .LVL542 .2byte 0x1b .byte 0xc .4byte 0x3102000 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x11 .byte 0xff,0x9f,0x80,0x78 .byte 0x1a .byte 0x7e .byte 0 .byte 0x21 .byte 0x40 .byte 0x42 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL542 .8byte .LVL543 .2byte 0x7 .byte 0x7e .byte 0 .byte 0x40 .byte 0x42 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL544 .8byte .LVL546 .2byte 0x1 .byte 0x5f .8byte .LVL546 .8byte .LVL547 .2byte 0x2 .byte 0x7e .byte 0 .8byte .LVL547 .8byte .LVL550 .2byte 0x5 .byte 0xc .4byte 0x3102000 .8byte .LVL550 .8byte .LVL551 .2byte 0x2 .byte 0x81 .byte 0 .8byte .LVL553 .8byte .LVL554 .2byte 0x10 .byte 0x7a .byte 0x14 .byte 0x94 .byte 0x4 .byte 0x3c .byte 0x25 .byte 0x33 .byte 0x1a .byte 0x7f .byte 0 .byte 0xb .2byte 0xf000 .byte 0x1a .byte 0x21 .byte 0x9f .8byte .LVL554 .8byte .LVL555 .2byte 0x12 .byte 0x7a .byte 0x14 .byte 0x94 .byte 0x4 .byte 0x3c .byte 0x25 .byte 0x33 .byte 0x1a .byte 0x81 .byte 0 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xf000 .byte 0x1a .byte 0x21 .byte 0x9f .8byte .LVL555 .8byte .LVL556 .2byte 0x1 .byte 0x5d .8byte .LVL556 .8byte .LVL557 .2byte 0x1 .byte 0x5f .8byte .LVL557 .8byte .LVL558 .2byte 0x1 .byte 0x5d .8byte .LVL558 .8byte .LVL559 .2byte 0x7 .byte 0x7e .byte 0 .byte 0x40 .byte 0x42 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL560 .8byte .LVL561 .2byte 0x1 .byte 0x5f .8byte .LVL561 .8byte .LVL565 .2byte 0x1 .byte 0x5d .8byte .LVL565 .8byte .LVL566 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x31 .byte 0x1a .byte 0x9f .8byte .LVL566 .8byte .LVL572 .2byte 0xa .byte 0xc .4byte 0x3102000 .byte 0x94 .byte 0x4 .byte 0x31 .byte 0x1a .byte 0x9f .8byte .LVL572 .8byte .LVL574 .2byte 0x7 .byte 0x7e .byte 0 .byte 0x94 .byte 0x4 .byte 0x31 .byte 0x1a .byte 0x9f .8byte .LVL574 .8byte .LVL575 .2byte 0x1 .byte 0x5d .8byte .LVL575 .8byte .LVL578 .2byte 0x1 .byte 0x5f .8byte .LVL578 .8byte .LVL579 .2byte 0x1 .byte 0x5d .8byte .LVL579 .8byte .LVL580 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST347: .8byte .LVL567 .8byte .LVL573 .2byte 0x1 .byte 0x5d .8byte .LVL573 .8byte .LFE55 .2byte 0x5 .byte 0xc .4byte 0x3103120 .8byte 0 .8byte 0 .LLST348: .8byte .LVL531 .8byte .LVL551 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL558 .8byte .LVL560 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte 0 .8byte 0 .LLST349: .8byte .LVL531 .8byte .LVL548 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL548 .8byte .LVL549 .2byte 0x1 .byte 0x5b .8byte .LVL558 .8byte .LVL560 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte 0 .8byte 0 .LLST350: .8byte .LVL531 .8byte .LVL533 .2byte 0x6 .byte 0xc .4byte 0x3102008 .byte 0x9f .8byte 0 .8byte 0 .LLST351: .8byte .LVL532 .8byte .LVL533 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST352: .8byte .LVL534 .8byte .LVL536 .2byte 0x6 .byte 0xc .4byte 0x3102008 .byte 0x9f .8byte 0 .8byte 0 .LLST353: .8byte .LVL534 .8byte .LVL535 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xa .2byte 0x2000 .byte 0x21 .byte 0x9f .8byte .LVL535 .8byte .LVL536 .2byte 0x13 .byte 0x7e .byte 0x8 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0xb .2byte 0xc0ff .byte 0x1a .byte 0xa .2byte 0x2000 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST354: .8byte .LVL536 .8byte .LVL538 .2byte 0x6 .byte 0xc .4byte 0x3102000 .byte 0x9f .8byte 0 .8byte 0 .LLST355: .8byte .LVL537 .8byte .LVL538 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST356: .8byte .LVL544 .8byte .LVL545 .2byte 0x6 .byte 0xc .4byte 0x3102000 .byte 0x9f .8byte 0 .8byte 0 .LLST357: .8byte .LVL544 .8byte .LVL545 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST358: .8byte .LVL551 .8byte .LVL553 .2byte 0x1 .byte 0x61 .8byte 0 .8byte 0 .LLST359: .8byte .LVL552 .8byte .LVL553 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST360: .8byte .LVL561 .8byte .LVL562 .2byte 0x1 .byte 0x61 .8byte 0 .8byte 0 .LLST361: .8byte .LVL561 .8byte .LVL562 .2byte 0x1 .byte 0x5d .8byte 0 .8byte 0 .LLST362: .8byte .LVL563 .8byte .LVL565 .2byte 0x6 .byte 0xc .4byte 0x3102000 .byte 0x9f .8byte 0 .8byte 0 .LLST363: .8byte .LVL564 .8byte .LVL565 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST364: .8byte .LVL567 .8byte .LVL568 .2byte 0x6 .byte 0xc .4byte 0x3103120 .byte 0x9f .8byte 0 .8byte 0 .LLST365: .8byte .LVL567 .8byte .LVL568 .2byte 0x1 .byte 0x5d .8byte 0 .8byte 0 .LLST366: .8byte .LVL569 .8byte .LVL570 .2byte 0x6 .byte 0xc .4byte 0x31033c4 .byte 0x9f .8byte 0 .8byte 0 .LLST367: .8byte .LVL569 .8byte .LVL570 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte 0 .8byte 0 .LLST368: .8byte .LVL571 .8byte .LVL574 .2byte 0x6 .byte 0xc .4byte 0x3102000 .byte 0x9f .8byte 0 .8byte 0 .LLST369: .8byte .LVL573 .8byte .LVL574 .2byte 0x1 .byte 0x5d .8byte 0 .8byte 0 .LLST370: .8byte .LVL575 .8byte .LVL576 .2byte 0x6 .byte 0xc .4byte 0x3102000 .byte 0x9f .8byte 0 .8byte 0 .LLST371: .8byte .LVL575 .8byte .LVL576 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST372: .8byte .LVL576 .8byte .LVL578 .2byte 0x6 .byte 0xc .4byte 0x3102004 .byte 0x9f .8byte 0 .8byte 0 .LLST373: .8byte .LVL577 .8byte .LVL578 .2byte 0x1 .byte 0x5d .8byte 0 .8byte 0 .LLST374: .8byte .LVL579 .8byte .LVL580 .2byte 0x6 .byte 0xc .4byte 0x3102004 .byte 0x9f .8byte 0 .8byte 0 .LLST375: .8byte .LVL579 .8byte .LVL580 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST288: .8byte .LVL476 .8byte .LVL497 .2byte 0x1 .byte 0x5a .8byte .LVL497 .8byte .LVL530 .2byte 0x1 .byte 0x62 .8byte .LVL530 .8byte .LFE54 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte 0 .8byte 0 .LLST289: .8byte .LVL476 .8byte .LVL478 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL478 .8byte .LVL479 .2byte 0xa .byte 0x7f .byte 0 .byte 0x11 .byte 0xff,0xff,0xff,0xff,0x7b .byte 0x1a .byte 0x9f .8byte .LVL479 .8byte .LVL480 .2byte 0xd .byte 0x79 .byte 0xc0,0xa .byte 0x94 .byte 0x4 .byte 0x11 .byte 0xff,0xff,0xff,0xff,0x7b .byte 0x1a .byte 0x9f .8byte .LVL482 .8byte .LVL484 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x9 .byte 0xfe .byte 0x1a .byte 0x9f .8byte .LVL484 .8byte .LVL485 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x11 .byte 0xfe,0xff,0x7b .byte 0x1a .byte 0x9f .8byte .LVL488 .8byte .LVL491 .2byte 0xa .byte 0x7f .byte 0 .byte 0x11 .byte 0xff,0xff,0xff,0xff,0x7b .byte 0x1a .byte 0x9f .8byte .LVL492 .8byte .LVL494 .2byte 0x1 .byte 0x5f .8byte .LVL494 .8byte .LVL495 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x47 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL495 .8byte .LVL496 .2byte 0xa .byte 0x78 .byte 0x80,0x70 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x47 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL505 .8byte .LVL506 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x3c .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL506 .8byte .LVL507 .2byte 0xa .byte 0x78 .byte 0x8c,0x70 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x3c .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL509 .8byte .LVL510 .2byte 0x7 .byte 0x7e .byte 0 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL510 .8byte .LVL511 .2byte 0xa .byte 0x79 .byte 0xc0,0xa .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL513 .8byte .LVL514 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL514 .8byte .LVL515 .2byte 0xa .byte 0x78 .byte 0x80,0x70 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL518 .8byte .LVL519 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x31 .byte 0x21 .byte 0x9f .8byte .LVL519 .8byte .LVL520 .2byte 0x8 .byte 0x78 .byte 0x8c,0x70 .byte 0x94 .byte 0x4 .byte 0x31 .byte 0x21 .byte 0x9f .8byte .LVL522 .8byte .LVL524 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL524 .8byte .LVL525 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x4e .byte 0x4a .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST290: .8byte .LVL476 .8byte .LVL499 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL499 .8byte .LVL500 .2byte 0x1 .byte 0x5a .8byte 0 .8byte 0 .LLST291: .8byte .LVL476 .8byte .LVL478 .2byte 0x6 .byte 0xc .4byte 0x2001540 .byte 0x9f .8byte 0 .8byte 0 .LLST292: .8byte .LVL477 .8byte .LVL478 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST293: .8byte .LVL478 .8byte .LVL480 .2byte 0x6 .byte 0xc .4byte 0x2001540 .byte 0x9f .8byte 0 .8byte 0 .LLST294: .8byte .LVL478 .8byte .LVL479 .2byte 0xa .byte 0x7f .byte 0 .byte 0x11 .byte 0xff,0xff,0xff,0xff,0x7b .byte 0x1a .byte 0x9f .8byte .LVL479 .8byte .LVL480 .2byte 0xd .byte 0x79 .byte 0xc0,0xa .byte 0x94 .byte 0x4 .byte 0x11 .byte 0xff,0xff,0xff,0xff,0x7b .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST295: .8byte .LVL480 .8byte .LVL482 .2byte 0x6 .byte 0xc .4byte 0x200180c .byte 0x9f .8byte 0 .8byte 0 .LLST296: .8byte .LVL481 .8byte .LVL482 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST297: .8byte .LVL482 .8byte .LVL483 .2byte 0x6 .byte 0xc .4byte 0x200180c .byte 0x9f .8byte 0 .8byte 0 .LLST298: .8byte .LVL482 .8byte .LVL483 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x9 .byte 0xfe .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST299: .8byte .LVL483 .8byte .LVL484 .2byte 0x6 .byte 0xc .4byte 0x200180c .byte 0x9f .8byte 0 .8byte 0 .LLST300: .8byte .LVL483 .8byte .LVL484 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x9 .byte 0xfe .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST301: .8byte .LVL484 .8byte .LVL486 .2byte 0x6 .byte 0xc .4byte 0x200180c .byte 0x9f .8byte 0 .8byte 0 .LLST302: .8byte .LVL484 .8byte .LVL485 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x11 .byte 0xfe,0xff,0x7b .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST303: .8byte .LVL486 .8byte .LVL488 .2byte 0x6 .byte 0xc .4byte 0x2001800 .byte 0x9f .8byte 0 .8byte 0 .LLST304: .8byte .LVL487 .8byte .LVL488 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST305: .8byte .LVL488 .8byte .LVL489 .2byte 0x6 .byte 0xc .4byte 0x2001800 .byte 0x9f .8byte 0 .8byte 0 .LLST306: .8byte .LVL488 .8byte .LVL489 .2byte 0xa .byte 0x7f .byte 0 .byte 0x11 .byte 0xff,0xff,0xff,0xff,0x7b .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST307: .8byte .LVL489 .8byte .LVL490 .2byte 0x6 .byte 0xc .4byte 0x2001800 .byte 0x9f .8byte 0 .8byte 0 .LLST308: .8byte .LVL489 .8byte .LVL490 .2byte 0xa .byte 0x7f .byte 0 .byte 0x11 .byte 0xff,0xff,0xff,0xff,0x7b .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST309: .8byte .LVL492 .8byte .LVL493 .2byte 0x6 .byte 0xc .4byte 0x2001800 .byte 0x9f .8byte 0 .8byte 0 .LLST310: .8byte .LVL492 .8byte .LVL493 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST311: .8byte .LVL493 .8byte .LVL494 .2byte 0x6 .byte 0xc .4byte 0x2001800 .byte 0x9f .8byte 0 .8byte 0 .LLST312: .8byte .LVL493 .8byte .LVL494 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST313: .8byte .LVL494 .8byte .LVL496 .2byte 0x6 .byte 0xc .4byte 0x2001800 .byte 0x9f .8byte 0 .8byte 0 .LLST314: .8byte .LVL494 .8byte .LVL495 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x47 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL495 .8byte .LVL496 .2byte 0xa .byte 0x78 .byte 0x80,0x70 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x47 .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST315: .8byte .LVL496 .8byte .LVL498 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte 0 .8byte 0 .LLST316: .8byte .LVL501 .8byte .LVL502 .2byte 0x3 .byte 0x8 .byte 0x64 .byte 0x9f .8byte 0 .8byte 0 .LLST317: .8byte .LVL503 .8byte .LVL505 .2byte 0x6 .byte 0xc .4byte 0x200180c .byte 0x9f .8byte 0 .8byte 0 .LLST318: .8byte .LVL504 .8byte .LVL505 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST319: .8byte .LVL505 .8byte .LVL507 .2byte 0x6 .byte 0xc .4byte 0x200180c .byte 0x9f .8byte 0 .8byte 0 .LLST320: .8byte .LVL505 .8byte .LVL506 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x3c .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL506 .8byte .LVL507 .2byte 0xa .byte 0x78 .byte 0x8c,0x70 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x3c .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST321: .8byte .LVL507 .8byte .LVL509 .2byte 0x6 .byte 0xc .4byte 0x2001540 .byte 0x9f .8byte 0 .8byte 0 .LLST322: .8byte .LVL508 .8byte .LVL509 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST323: .8byte .LVL509 .8byte .LVL511 .2byte 0x6 .byte 0xc .4byte 0x2001540 .byte 0x9f .8byte 0 .8byte 0 .LLST324: .8byte .LVL509 .8byte .LVL510 .2byte 0x7 .byte 0x7e .byte 0 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL510 .8byte .LVL511 .2byte 0xa .byte 0x79 .byte 0xc0,0xa .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST325: .8byte .LVL511 .8byte .LVL513 .2byte 0x6 .byte 0xc .4byte 0x2001800 .byte 0x9f .8byte 0 .8byte 0 .LLST326: .8byte .LVL512 .8byte .LVL513 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST327: .8byte .LVL513 .8byte .LVL515 .2byte 0x6 .byte 0xc .4byte 0x2001800 .byte 0x9f .8byte 0 .8byte 0 .LLST328: .8byte .LVL513 .8byte .LVL514 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL514 .8byte .LVL515 .2byte 0xa .byte 0x78 .byte 0x80,0x70 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST329: .8byte .LVL515 .8byte .LVL516 .2byte 0x2 .byte 0x35 .byte 0x9f .8byte 0 .8byte 0 .LLST330: .8byte .LVL516 .8byte .LVL518 .2byte 0x6 .byte 0xc .4byte 0x200180c .byte 0x9f .8byte 0 .8byte 0 .LLST331: .8byte .LVL517 .8byte .LVL518 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST332: .8byte .LVL518 .8byte .LVL520 .2byte 0x6 .byte 0xc .4byte 0x200180c .byte 0x9f .8byte 0 .8byte 0 .LLST333: .8byte .LVL518 .8byte .LVL519 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x31 .byte 0x21 .byte 0x9f .8byte .LVL519 .8byte .LVL520 .2byte 0x8 .byte 0x78 .byte 0x8c,0x70 .byte 0x94 .byte 0x4 .byte 0x31 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST334: .8byte .LVL520 .8byte .LVL522 .2byte 0x6 .byte 0xc .4byte 0x2001800 .byte 0x9f .8byte 0 .8byte 0 .LLST335: .8byte .LVL521 .8byte .LVL522 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST336: .8byte .LVL522 .8byte .LVL523 .2byte 0x6 .byte 0xc .4byte 0x2001800 .byte 0x9f .8byte 0 .8byte 0 .LLST337: .8byte .LVL522 .8byte .LVL523 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST338: .8byte .LVL523 .8byte .LVL524 .2byte 0x6 .byte 0xc .4byte 0x2001800 .byte 0x9f .8byte 0 .8byte 0 .LLST339: .8byte .LVL523 .8byte .LVL524 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST340: .8byte .LVL524 .8byte .LVL526 .2byte 0x6 .byte 0xc .4byte 0x2001800 .byte 0x9f .8byte 0 .8byte 0 .LLST341: .8byte .LVL524 .8byte .LVL525 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x4e .byte 0x4a .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST342: .8byte .LVL526 .8byte .LVL527 .2byte 0x2 .byte 0x35 .byte 0x9f .8byte 0 .8byte 0 .LLST343: .8byte .LVL527 .8byte .LVL528 .2byte 0x6 .byte 0xc .4byte 0x310300c .byte 0x9f .8byte 0 .8byte 0 .LLST344: .8byte .LVL527 .8byte .LVL528 .2byte 0x4 .byte 0xa .2byte 0x8000 .byte 0x9f .8byte 0 .8byte 0 .LLST345: .8byte .LVL528 .8byte .LVL529 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte 0 .8byte 0 .LLST264: .8byte .LVL448 .8byte .LVL463 .2byte 0x1 .byte 0x5a .8byte .LVL463 .8byte .LVL475 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte .LVL475 .8byte .LFE53 .2byte 0x1 .byte 0x5a .8byte 0 .8byte 0 .LLST265: .8byte .LVL448 .8byte .LVL464-1 .2byte 0x1 .byte 0x5b .8byte .LVL464-1 .8byte .LVL475 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0x9f .8byte .LVL475 .8byte .LFE53 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST266: .8byte .LVL448 .8byte .LVL452 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL452 .8byte .LVL453 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x11 .byte 0xfc,0x81,0x60 .byte 0x1a .byte 0x9f .8byte .LVL453 .8byte .LVL454 .2byte 0xa .byte 0x7e .byte 0x10 .byte 0x94 .byte 0x4 .byte 0x11 .byte 0xfc,0x81,0x60 .byte 0x1a .byte 0x9f .8byte .LVL454 .8byte .LVL458 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL466 .8byte .LVL467 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x47 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL467 .8byte .LVL468 .2byte 0x9 .byte 0x79 .byte 0 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x47 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL470 .8byte .LVL471 .2byte 0x9 .byte 0x7f .byte 0 .byte 0x11 .byte 0xff,0xff,0xff,0x67 .byte 0x1a .byte 0x9f .8byte .LVL471 .8byte .LVL473 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL473 .8byte .LVL474 .2byte 0x17 .byte 0x7d .byte 0x80,0x70 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x11 .byte 0xfc,0xf9,0xff,0x67 .byte 0x1a .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL475 .8byte .LFE53 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte 0 .8byte 0 .LLST267: .8byte .LVL448 .8byte .LVL450 .2byte 0x2 .byte 0x3c .byte 0x9f .8byte .LVL450 .8byte .LVL472 .2byte 0x1 .byte 0x58 .8byte .LVL475 .8byte .LFE53 .2byte 0x2 .byte 0x3c .byte 0x9f .8byte 0 .8byte 0 .LLST268: .8byte .LVL449 .8byte .LVL450 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST269: .8byte .LVL450 .8byte .LVL452 .2byte 0x6 .byte 0xc .4byte 0x2001010 .byte 0x9f .8byte 0 .8byte 0 .LLST270: .8byte .LVL451 .8byte .LVL452 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST271: .8byte .LVL454 .8byte .LVL455 .2byte 0x6 .byte 0xc .4byte 0x2001010 .byte 0x9f .8byte 0 .8byte 0 .LLST272: .8byte .LVL454 .8byte .LVL455 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST273: .8byte .LVL456 .8byte .LVL457 .2byte 0x6 .byte 0xc .4byte 0x2001010 .byte 0x9f .8byte 0 .8byte 0 .LLST274: .8byte .LVL456 .8byte .LVL457 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST275: .8byte .LVL457 .8byte .LVL475 .2byte 0x6 .byte 0xc .4byte 0x2001010 .byte 0x9f .8byte 0 .8byte 0 .LLST276: .8byte .LVL457 .8byte .LVL458 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x40 .byte 0x49 .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST277: .8byte .LVL459 .8byte .LVL461 .2byte 0x6 .byte 0xc .4byte 0x2001010 .byte 0x9f .8byte 0 .8byte 0 .LLST278: .8byte .LVL460 .8byte .LVL461 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST279: .8byte .LVL462 .8byte .LVL464 .2byte 0x2 .byte 0x44 .byte 0x9f .8byte 0 .8byte 0 .LLST280: .8byte .LVL464 .8byte .LVL466 .2byte 0x6 .byte 0xc .4byte 0x2001010 .byte 0x9f .8byte 0 .8byte 0 .LLST281: .8byte .LVL465 .8byte .LVL466 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST282: .8byte .LVL466 .8byte .LVL468 .2byte 0x6 .byte 0xc .4byte 0x2001010 .byte 0x9f .8byte 0 .8byte 0 .LLST283: .8byte .LVL466 .8byte .LVL467 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x47 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL467 .8byte .LVL468 .2byte 0x9 .byte 0x79 .byte 0 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x47 .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST284: .8byte .LVL468 .8byte .LVL470 .2byte 0x6 .byte 0xc .4byte 0x2001800 .byte 0x9f .8byte 0 .8byte 0 .LLST285: .8byte .LVL469 .8byte .LVL470 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST286: .8byte .LVL471 .8byte .LVL474 .2byte 0x6 .byte 0xc .4byte 0x2001800 .byte 0x9f .8byte 0 .8byte 0 .LLST287: .8byte .LVL471 .8byte .LVL473 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL473 .8byte .LVL474 .2byte 0x17 .byte 0x7d .byte 0x80,0x70 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x11 .byte 0xfc,0xf9,0xff,0x67 .byte 0x1a .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST247: .8byte .LVL424 .8byte .LVL437 .2byte 0x1 .byte 0x5a .8byte .LVL437 .8byte .LVL444 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte .LVL444 .8byte .LFE52 .2byte 0x1 .byte 0x5a .8byte 0 .8byte 0 .LLST248: .8byte .LVL424 .8byte .LVL438-1 .2byte 0x1 .byte 0x5b .8byte .LVL438-1 .8byte .LVL443 .2byte 0x1 .byte 0x58 .8byte .LVL443 .8byte .LVL444 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0x9f .8byte .LVL444 .8byte .LFE52 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST249: .8byte .LVL424 .8byte .LVL438-1 .2byte 0x1 .byte 0x5c .8byte .LVL438-1 .8byte .LFE52 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5c .byte 0x9f .8byte 0 .8byte 0 .LLST250: .8byte .LVL427 .8byte .LVL428 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x31 .byte 0x25 .byte 0x31 .byte 0x1a .byte 0x9f .8byte .LVL428 .8byte .LVL433 .2byte 0x9 .byte 0x78 .byte 0 .byte 0x94 .byte 0x4 .byte 0x31 .byte 0x25 .byte 0x31 .byte 0x1a .byte 0x9f .8byte .LVL433 .8byte .LVL436 .2byte 0xa .byte 0x7a .byte 0xdc,0 .byte 0x94 .byte 0x4 .byte 0x44 .byte 0x25 .byte 0x37 .byte 0x1a .byte 0x9f .8byte .LVL440 .8byte .LVL441 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x44 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL441 .8byte .LVL442 .2byte 0x9 .byte 0x78 .byte 0 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x44 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL444 .8byte .LFE52 .2byte 0xa .byte 0x7a .byte 0xdc,0 .byte 0x94 .byte 0x4 .byte 0x44 .byte 0x25 .byte 0x37 .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST251: .8byte .LVL425 .8byte .LVL427 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST252: .8byte .LVL426 .8byte .LVL427 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST253: .8byte .LVL430 .8byte .LVL431 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST254: .8byte .LVL431 .8byte .LVL432 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x3f .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL432 .8byte .LVL433 .2byte 0x9 .byte 0x7c .byte 0 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x3f .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST255: .8byte .LVL434 .8byte .LVL435 .2byte 0x6 .byte 0x9e .byte 0x4 .4byte 0xe486cccc .8byte 0 .8byte 0 .LLST256: .8byte .LVL436 .8byte .LVL438 .2byte 0x2 .byte 0x44 .byte 0x9f .8byte 0 .8byte 0 .LLST257: .8byte .LVL438 .8byte .LVL440 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST258: .8byte .LVL439 .8byte .LVL440 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST259: .8byte .LVL440 .8byte .LVL442 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST260: .8byte .LVL440 .8byte .LVL441 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x44 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL441 .8byte .LVL442 .2byte 0x9 .byte 0x78 .byte 0 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x44 .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST261: .8byte .LVL444 .8byte .LVL445 .2byte 0x6 .byte 0x9e .byte 0x4 .4byte 0xe9069999 .8byte 0 .8byte 0 .LLST262: .8byte .LVL445 .8byte .LVL446 .2byte 0x6 .byte 0x9e .byte 0x4 .4byte 0xed866666 .8byte 0 .8byte 0 .LLST263: .8byte .LVL446 .8byte .LVL447 .2byte 0x6 .byte 0x9e .byte 0x4 .4byte 0xf5860000 .8byte 0 .8byte 0 .LLST224: .8byte .LVL388 .8byte .LVL411 .2byte 0x1 .byte 0x5a .8byte .LVL411 .8byte .LVL422 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte .LVL422 .8byte .LVL423 .2byte 0x1 .byte 0x5a .8byte .LVL423 .8byte .LFE51 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte 0 .8byte 0 .LLST225: .8byte .LVL388 .8byte .LVL412-1 .2byte 0x1 .byte 0x5b .8byte .LVL412-1 .8byte .LVL422 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0x9f .8byte .LVL422 .8byte .LFE51 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST226: .8byte .LVL388 .8byte .LVL412-1 .2byte 0x1 .byte 0x5c .8byte .LVL412-1 .8byte .LVL420 .2byte 0x1 .byte 0x59 .8byte .LVL420 .8byte .LVL422 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5c .byte 0x9f .8byte .LVL422 .8byte .LFE51 .2byte 0x1 .byte 0x5c .8byte 0 .8byte 0 .LLST227: .8byte .LVL388 .8byte .LVL397 .2byte 0x1 .byte 0x5d .8byte .LVL397 .8byte .LVL419 .2byte 0x1 .byte 0x58 .8byte .LVL419 .8byte .LVL422 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5d .byte 0x9f .8byte .LVL422 .8byte .LFE51 .2byte 0x1 .byte 0x5d .8byte 0 .8byte 0 .LLST228: .8byte .LVL388 .8byte .LVL399 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL399 .8byte .LVL400 .2byte 0x22 .byte 0x7b .byte 0 .byte 0xf7 .byte 0x29 .byte 0xf7 .byte 0x30 .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x41c00000 .byte 0x1b .byte 0x7e .byte 0 .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0x30 .byte 0x1c .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x48000000 .byte 0x1e .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0 .byte 0x9f .8byte .LVL400 .8byte .LVL401 .2byte 0x1f .byte 0xf5 .byte 0x2f .byte 0x30 .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x41c00000 .byte 0x1b .byte 0x7e .byte 0 .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0x30 .byte 0x1c .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x48000000 .byte 0x1e .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0 .byte 0x9f .8byte .LVL401 .8byte .LVL407 .2byte 0x22 .byte 0x7b .byte 0 .byte 0xf7 .byte 0x29 .byte 0xf7 .byte 0x30 .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x41c00000 .byte 0x1b .byte 0x7e .byte 0 .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0x30 .byte 0x1c .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x48000000 .byte 0x1e .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0 .byte 0x9f .8byte .LVL407 .8byte .LVL412-1 .2byte 0x2a .byte 0x7b .byte 0 .byte 0xf7 .byte 0x29 .byte 0xf7 .byte 0x30 .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x41c00000 .byte 0x1b .byte 0x7b .byte 0 .byte 0xf7 .byte 0x29 .byte 0x48 .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0x30 .byte 0x1c .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x48000000 .byte 0x1e .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0 .byte 0x9f .8byte .LVL412-1 .8byte .LVL421 .2byte 0x2c .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0xf7 .byte 0x29 .byte 0xf7 .byte 0x30 .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x41c00000 .byte 0x1b .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0xf7 .byte 0x29 .byte 0x48 .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0x30 .byte 0x1c .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x48000000 .byte 0x1e .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0 .byte 0x9f .8byte .LVL421 .8byte .LVL422 .2byte 0x1 .byte 0x5a .8byte .LVL422 .8byte .LVL423 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL423 .8byte .LFE51 .2byte 0x1 .byte 0x5a .8byte 0 .8byte 0 .LLST229: .8byte .LVL388 .8byte .LVL389 .2byte 0x2 .byte 0x3c .byte 0x9f .8byte .LVL389 .8byte .LVL407 .2byte 0x1 .byte 0x5e .8byte .LVL407 .8byte .LVL412-1 .2byte 0xb .byte 0x7b .byte 0 .byte 0xf7 .byte 0x29 .byte 0x48 .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0x9f .8byte .LVL412-1 .8byte .LVL422 .2byte 0xc .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0xf7 .byte 0x29 .byte 0x48 .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0x9f .8byte .LVL422 .8byte .LFE51 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST230: .8byte .LVL388 .8byte .LVL399 .2byte 0x6 .byte 0x9e .byte 0x4 .4byte 0 .8byte .LVL399 .8byte .LVL402 .2byte 0x16 .byte 0x7b .byte 0 .byte 0xf7 .byte 0x29 .byte 0xf7 .byte 0x30 .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x41c00000 .byte 0x1b .byte 0x7e .byte 0 .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0x30 .byte 0x1c .byte 0x9f .8byte .LVL402 .8byte .LVL403 .2byte 0x2 .byte 0x90 .byte 0x2f .8byte .LVL403 .8byte .LVL407 .2byte 0x16 .byte 0x7b .byte 0 .byte 0xf7 .byte 0x29 .byte 0xf7 .byte 0x30 .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x41c00000 .byte 0x1b .byte 0x7e .byte 0 .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0x30 .byte 0x1c .byte 0x9f .8byte .LVL407 .8byte .LVL412-1 .2byte 0x1e .byte 0x7b .byte 0 .byte 0xf7 .byte 0x29 .byte 0xf7 .byte 0x30 .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x41c00000 .byte 0x1b .byte 0x7b .byte 0 .byte 0xf7 .byte 0x29 .byte 0x48 .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0x30 .byte 0x1c .byte 0x9f .8byte .LVL412-1 .8byte .LVL422 .2byte 0x20 .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0xf7 .byte 0x29 .byte 0xf7 .byte 0x30 .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x41c00000 .byte 0x1b .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0xf7 .byte 0x29 .byte 0x48 .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0x30 .byte 0x1c .byte 0x9f .8byte .LVL422 .8byte .LFE51 .2byte 0x6 .byte 0x9e .byte 0x4 .4byte 0 .8byte 0 .8byte 0 .LLST231: .8byte .LVL392 .8byte .LVL393 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x31 .byte 0x25 .byte 0x31 .byte 0x1a .byte 0x9f .8byte .LVL393 .8byte .LVL399 .2byte 0x9 .byte 0x79 .byte 0 .byte 0x94 .byte 0x4 .byte 0x31 .byte 0x25 .byte 0x31 .byte 0x1a .byte 0x9f .8byte .LVL406 .8byte .LVL408 .2byte 0x1 .byte 0x5f .8byte .LVL408 .8byte .LVL409 .2byte 0xa .byte 0x7f .byte 0 .byte 0x11 .byte 0x80,0x80,0x98,0x80,0x7e .byte 0x21 .byte 0x9f .8byte .LVL409 .8byte .LVL410 .2byte 0x12 .byte 0x78 .byte 0 .byte 0x94 .byte 0x4 .byte 0xc .4byte 0x9ffff .byte 0x1a .byte 0x11 .byte 0x80,0x80,0x98,0x80,0x7e .byte 0x21 .byte 0x9f .8byte .LVL410 .8byte .LVL412-1 .2byte 0x15 .byte 0xf5 .byte 0x2f .byte 0x30 .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0 .byte 0xc .4byte 0x9ffff .byte 0x1a .byte 0x11 .byte 0x80,0x80,0x98,0x80,0x7e .byte 0x21 .byte 0x9f .8byte .LVL412-1 .8byte .LVL414 .2byte 0x39 .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0xf7 .byte 0x29 .byte 0xf7 .byte 0x30 .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x41c00000 .byte 0x1b .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0xf7 .byte 0x29 .byte 0x48 .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0x30 .byte 0x1c .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x48000000 .byte 0x1e .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0 .byte 0xc .4byte 0x9ffff .byte 0x1a .byte 0x11 .byte 0x80,0x80,0x98,0x80,0x7e .byte 0x21 .byte 0x9f .8byte .LVL414 .8byte .LVL415 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x44 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL415 .8byte .LVL416 .2byte 0x9 .byte 0x79 .byte 0 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x44 .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST232: .8byte .LVL390 .8byte .LVL392 .2byte 0x1 .byte 0x59 .8byte 0 .8byte 0 .LLST233: .8byte .LVL391 .8byte .LVL392 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST234: .8byte .LVL394 .8byte .LVL396 .2byte 0x9 .byte 0x7d .byte 0 .byte 0xc .4byte 0xffffffff .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST235: .8byte .LVL395 .8byte .LVL396 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST236: .8byte .LVL396 .8byte .LVL397 .2byte 0x9 .byte 0x7d .byte 0 .byte 0xc .4byte 0xffffffff .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST237: .8byte .LVL396 .8byte .LVL398 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x3f .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL398 .8byte .LVL399 .2byte 0x9 .byte 0x78 .byte 0 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x3f .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST238: .8byte .LVL404 .8byte .LVL405 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST239: .8byte .LVL405 .8byte .LVL406 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST240: .8byte .LVL408 .8byte .LVL409 .2byte 0xa .byte 0x7f .byte 0 .byte 0x11 .byte 0x80,0x80,0x98,0x80,0x7e .byte 0x21 .byte 0x9f .8byte .LVL409 .8byte .LVL410 .2byte 0x12 .byte 0x78 .byte 0 .byte 0x94 .byte 0x4 .byte 0xc .4byte 0x9ffff .byte 0x1a .byte 0x11 .byte 0x80,0x80,0x98,0x80,0x7e .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST241: .8byte .LVL410 .8byte .LVL412 .2byte 0x2 .byte 0x44 .byte 0x9f .8byte 0 .8byte 0 .LLST242: .8byte .LVL412 .8byte .LVL414 .2byte 0x1 .byte 0x59 .8byte 0 .8byte 0 .LLST243: .8byte .LVL413 .8byte .LVL414 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST244: .8byte .LVL414 .8byte .LVL416 .2byte 0x1 .byte 0x59 .8byte 0 .8byte 0 .LLST245: .8byte .LVL414 .8byte .LVL415 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x44 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL415 .8byte .LVL416 .2byte 0x9 .byte 0x79 .byte 0 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x44 .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST246: .8byte .LVL417 .8byte .LVL418 .2byte 0x1 .byte 0x5a .8byte 0 .8byte 0 .LLST148: .8byte .LVL153 .8byte .LVL165 .2byte 0x1 .byte 0x5a .8byte .LVL165 .8byte .LVL218 .2byte 0x1 .byte 0x65 .8byte .LVL218 .8byte .LVL223 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte .LVL223 .8byte .LVL224 .2byte 0x1 .byte 0x5a .8byte .LVL224 .8byte .LVL251 .2byte 0x1 .byte 0x65 .8byte .LVL251 .8byte .LVL252 .2byte 0x1 .byte 0x5a .8byte .LVL252 .8byte .LVL272 .2byte 0x1 .byte 0x65 .8byte .LVL272 .8byte .LVL273 .2byte 0x1 .byte 0x5a .8byte .LVL273 .8byte .LVL305 .2byte 0x1 .byte 0x65 .8byte .LVL305 .8byte .LVL306 .2byte 0x1 .byte 0x5a .8byte .LVL306 .8byte .LVL333 .2byte 0x1 .byte 0x65 .8byte .LVL333 .8byte .LVL334 .2byte 0x1 .byte 0x5a .8byte .LVL334 .8byte .LFE50 .2byte 0x1 .byte 0x65 .8byte 0 .8byte 0 .LLST149: .8byte .LVL155 .8byte .LVL167 .2byte 0x1 .byte 0x68 .8byte .LVL223 .8byte .LVL337 .2byte 0x1 .byte 0x68 .8byte .LVL347 .8byte .LVL351 .2byte 0x1 .byte 0x68 .8byte .LVL351 .8byte .LVL358 .2byte 0x1 .byte 0x6e .8byte .LVL358 .8byte .LVL376 .2byte 0x1 .byte 0x68 .8byte .LVL383 .8byte .LVL384 .2byte 0x1 .byte 0x68 .8byte .LVL385 .8byte .LVL387 .2byte 0x1 .byte 0x68 .8byte 0 .8byte 0 .LLST150: .8byte .LVL153 .8byte .LVL181 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL181 .8byte .LVL182 .2byte 0x12 .byte 0x8a .byte 0 .byte 0x40 .byte 0x24 .byte 0x86 .byte 0 .byte 0x48 .byte 0x24 .byte 0x21 .byte 0x8c .byte 0 .byte 0x38 .byte 0x24 .byte 0x21 .byte 0x8b .byte 0 .byte 0x21 .byte 0x9f .8byte .LVL184 .8byte .LVL185 .2byte 0x10 .byte 0x80 .byte 0 .byte 0x40 .byte 0x24 .byte 0x91 .byte 0xf0,0x7e .byte 0x94 .byte 0x4 .byte 0x38 .byte 0x24 .byte 0x21 .byte 0x89 .byte 0 .byte 0x21 .byte 0x9f .8byte .LVL186 .8byte .LVL188 .2byte 0x15 .byte 0x7f .byte 0 .byte 0x48 .byte 0x24 .byte 0x7a .byte 0 .byte 0x40 .byte 0x24 .byte 0x21 .byte 0x8f .byte 0 .byte 0x38 .byte 0x24 .byte 0x21 .byte 0x91 .byte 0xe0,0x7e .byte 0x94 .byte 0x4 .byte 0x21 .byte 0x9f .8byte .LVL191 .8byte .LVL192 .2byte 0xd .byte 0x7b .byte 0 .byte 0x40 .byte 0x24 .byte 0x8e .byte 0 .byte 0x3c .byte 0x24 .byte 0x21 .byte 0x75 .byte 0 .byte 0x21 .byte 0x9f .8byte .LVL195 .8byte .LVL196 .2byte 0x17 .byte 0x83 .byte 0 .byte 0x48 .byte 0x24 .byte 0x91 .byte 0x88,0x7f .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x24 .byte 0x21 .byte 0x87 .byte 0 .byte 0x38 .byte 0x24 .byte 0x21 .byte 0x72 .byte 0 .byte 0x94 .byte 0x4 .byte 0x21 .byte 0x9f .8byte .LVL198 .8byte .LVL199 .2byte 0x12 .byte 0x76 .byte 0 .byte 0x48 .byte 0x24 .byte 0x76 .byte 0 .byte 0x40 .byte 0x24 .byte 0x21 .byte 0x8d .byte 0 .byte 0x38 .byte 0x24 .byte 0x21 .byte 0x88 .byte 0 .byte 0x21 .byte 0x9f .8byte .LVL204 .8byte .LVL205 .2byte 0xe .byte 0x7f .byte 0 .byte 0xc .4byte 0xfff00ff .byte 0x1a .byte 0x40 .byte 0x48 .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL205 .8byte .LVL206 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x40 .byte 0x48 .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL206 .8byte .LVL207 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x40 .byte 0x21 .byte 0x9f .8byte .LVL208 .8byte .LVL209 .2byte 0xe .byte 0x7e .byte 0 .byte 0x40 .byte 0x24 .byte 0x81 .byte 0 .byte 0x21 .byte 0xc .4byte 0x2000100 .byte 0x21 .byte 0x9f .8byte .LVL213 .8byte .LVL214 .2byte 0xb .byte 0x82 .byte 0 .byte 0x40 .byte 0x24 .byte 0x91 .byte 0xb8,0x7e .byte 0x94 .byte 0x4 .byte 0x21 .byte 0x9f .8byte .LVL214 .8byte .LVL216 .2byte 0xb .byte 0x82 .byte 0 .byte 0x3f .byte 0x24 .byte 0xc .4byte 0xfff0000 .byte 0x1a .byte 0x9f .8byte .LVL223 .8byte .LVL387 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL387 .8byte .LFE50 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x40 .byte 0x48 .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST151: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL169 .8byte .LVL222 .2byte 0x3 .byte 0x91 .byte 0xc0,0x7e .8byte .LVL222 .8byte .LVL223 .2byte 0x3 .byte 0x72 .byte 0xc0,0x7e .8byte .LVL223 .8byte .LVL342 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL342 .8byte .LVL347 .2byte 0x8 .byte 0x84 .byte 0 .byte 0x8 .byte 0xc8 .byte 0x1e .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL347 .8byte .LVL352 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL352 .8byte .LVL358 .2byte 0x9 .byte 0x84 .byte 0 .byte 0xa .2byte 0x190 .byte 0x1e .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL358 .8byte .LVL365 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL365 .8byte .LVL372 .2byte 0x9 .byte 0x84 .byte 0 .byte 0xa .2byte 0x1f4 .byte 0x1e .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL372 .8byte .LVL377 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL377 .8byte .LVL382 .2byte 0x8 .byte 0x84 .byte 0 .byte 0x8 .byte 0xc8 .byte 0x1e .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL383 .8byte .LVL385 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL385 .8byte .LVL387 .2byte 0x9 .byte 0x84 .byte 0 .byte 0xa .2byte 0x1f4 .byte 0x1e .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL387 .8byte .LFE50 .2byte 0x3 .byte 0x91 .byte 0xc0,0x7e .8byte 0 .8byte 0 .LLST152: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL169 .8byte .LVL222 .2byte 0x3 .byte 0x91 .byte 0xc8,0x7e .8byte .LVL222 .8byte .LVL223 .2byte 0x3 .byte 0x72 .byte 0xc8,0x7e .8byte .LVL223 .8byte .LVL343 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL343 .8byte .LVL347 .2byte 0x12 .byte 0x84 .byte 0 .byte 0x8 .byte 0x64 .byte 0x1e .byte 0xf7 .byte 0x29 .byte 0xa .2byte 0x3e8 .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL347 .8byte .LVL353 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL353 .8byte .LVL358 .2byte 0x13 .byte 0x84 .byte 0 .byte 0xa .2byte 0x1f4 .byte 0x1e .byte 0xf7 .byte 0x29 .byte 0xa .2byte 0x3e8 .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL358 .8byte .LVL366 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL366 .8byte .LVL370 .2byte 0x12 .byte 0x84 .byte 0 .byte 0xa .2byte 0x168 .byte 0x1e .byte 0xf7 .byte 0x29 .byte 0x7b .byte 0 .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL370 .8byte .LVL372 .2byte 0x13 .byte 0x84 .byte 0 .byte 0xa .2byte 0x168 .byte 0x1e .byte 0xf7 .byte 0x29 .byte 0xa .2byte 0x3e8 .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL372 .8byte .LVL378 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL378 .8byte .LVL382 .2byte 0x12 .byte 0x84 .byte 0 .byte 0x8 .byte 0x64 .byte 0x1e .byte 0xf7 .byte 0x29 .byte 0xa .2byte 0x3e8 .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL383 .8byte .LVL385 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL385 .8byte .LVL387 .2byte 0x13 .byte 0x84 .byte 0 .byte 0xa .2byte 0x168 .byte 0x1e .byte 0xf7 .byte 0x29 .byte 0xa .2byte 0x3e8 .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL387 .8byte .LFE50 .2byte 0x3 .byte 0x91 .byte 0xc8,0x7e .8byte 0 .8byte 0 .LLST153: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL169 .8byte .LVL222 .2byte 0x3 .byte 0x91 .byte 0xd0,0x7e .8byte .LVL222 .8byte .LVL223 .2byte 0x3 .byte 0x72 .byte 0xd0,0x7e .8byte .LVL223 .8byte .LVL344 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL344 .8byte .LVL347 .2byte 0x7 .byte 0x84 .byte 0 .byte 0x3b .byte 0x1e .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL347 .8byte .LVL354 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL354 .8byte .LVL358 .2byte 0x8 .byte 0x84 .byte 0 .byte 0x8 .byte 0xc8 .byte 0x1e .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL358 .8byte .LVL367 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL367 .8byte .LVL372 .2byte 0x8 .byte 0x84 .byte 0 .byte 0x8 .byte 0xc8 .byte 0x1e .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL372 .8byte .LVL379 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL379 .8byte .LVL382 .2byte 0x7 .byte 0x84 .byte 0 .byte 0x3b .byte 0x1e .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL383 .8byte .LVL385 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL385 .8byte .LVL387 .2byte 0x8 .byte 0x84 .byte 0 .byte 0x8 .byte 0xc8 .byte 0x1e .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL387 .8byte .LFE50 .2byte 0x3 .byte 0x91 .byte 0xd0,0x7e .8byte 0 .8byte 0 .LLST154: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL169 .8byte .LVL222 .2byte 0x3 .byte 0x91 .byte 0xd8,0x7e .8byte .LVL222 .8byte .LVL223 .2byte 0x3 .byte 0x72 .byte 0xd8,0x7e .8byte .LVL223 .8byte .LVL345 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL345 .8byte .LVL347 .2byte 0x3 .byte 0x84 .byte 0x1 .byte 0x9f .8byte .LVL347 .8byte .LVL355 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL355 .8byte .LVL358 .2byte 0x3 .byte 0x84 .byte 0x1 .byte 0x9f .8byte .LVL358 .8byte .LVL368 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL368 .8byte .LVL372 .2byte 0x3 .byte 0x84 .byte 0x1 .byte 0x9f .8byte .LVL372 .8byte .LVL380 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL380 .8byte .LVL382 .2byte 0x3 .byte 0x84 .byte 0x1 .byte 0x9f .8byte .LVL383 .8byte .LVL385 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL385 .8byte .LVL387 .2byte 0x3 .byte 0x84 .byte 0x1 .byte 0x9f .8byte .LVL387 .8byte .LFE50 .2byte 0x3 .byte 0x91 .byte 0xd8,0x7e .8byte 0 .8byte 0 .LLST155: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL169 .8byte .LVL171 .2byte 0x1 .byte 0x5d .8byte .LVL223 .8byte .LVL349 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL349 .8byte .LVL358 .2byte 0x1 .byte 0x5d .8byte .LVL358 .8byte .LVL361 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL361 .8byte .LVL372 .2byte 0x1 .byte 0x5d .8byte .LVL372 .8byte .LVL385 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL385 .8byte .LVL387 .2byte 0x1 .byte 0x5d .8byte 0 .8byte 0 .LLST156: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL169 .8byte .LVL187 .2byte 0x1 .byte 0x59 .8byte .LVL223 .8byte .LVL337 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL337 .8byte .LVL347 .2byte 0x3 .byte 0x8 .byte 0xc3 .byte 0x9f .8byte .LVL347 .8byte .LVL349 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL349 .8byte .LVL358 .2byte 0x3 .byte 0x91 .byte 0xe8,0x7e .8byte .LVL358 .8byte .LVL361 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL361 .8byte .LVL372 .2byte 0x3 .byte 0x91 .byte 0xe8,0x7e .8byte .LVL372 .8byte .LVL374 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL374 .8byte .LVL383 .2byte 0x3 .byte 0x8 .byte 0xc3 .byte 0x9f .8byte .LVL383 .8byte .LVL385 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL385 .8byte .LVL387 .2byte 0x3 .byte 0x91 .byte 0xe8,0x7e .8byte 0 .8byte 0 .LLST157: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL169 .8byte .LVL172 .2byte 0x1 .byte 0x57 .8byte .LVL223 .8byte .LVL337 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL337 .8byte .LVL347 .2byte 0x1 .byte 0x57 .8byte .LVL347 .8byte .LVL361 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL361 .8byte .LVL372 .2byte 0x1 .byte 0x57 .8byte .LVL372 .8byte .LVL374 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL374 .8byte .LVL382 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL383 .8byte .LVL385 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL385 .8byte .LVL387 .2byte 0x1 .byte 0x57 .8byte 0 .8byte 0 .LLST158: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL169 .8byte .LVL215 .2byte 0x1 .byte 0x58 .8byte .LVL223 .8byte .LVL337 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL337 .8byte .LVL347 .2byte 0x3 .byte 0x91 .byte 0xf8,0x7e .8byte .LVL347 .8byte .LVL374 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL374 .8byte .LVL382 .2byte 0x2 .byte 0x85 .byte 0x24 .8byte .LVL383 .8byte .LVL387 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL387 .8byte .LFE50 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST159: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL169 .8byte .LVL209 .2byte 0x1 .byte 0x5e .8byte .LVL223 .8byte .LVL337 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL337 .8byte .LVL347 .2byte 0x1 .byte 0x5e .8byte .LVL347 .8byte .LVL349 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL349 .8byte .LVL358 .2byte 0x1 .byte 0x5e .8byte .LVL358 .8byte .LVL361 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL361 .8byte .LVL372 .2byte 0x1 .byte 0x5e .8byte .LVL372 .8byte .LVL374 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL374 .8byte .LVL382 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL383 .8byte .LVL385 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL385 .8byte .LFE50 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST160: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL169 .8byte .LVL210 .2byte 0x1 .byte 0x61 .8byte .LVL223 .8byte .LVL337 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL337 .8byte .LVL347 .2byte 0x1 .byte 0x61 .8byte .LVL347 .8byte .LVL361 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL361 .8byte .LVL372 .2byte 0x1 .byte 0x61 .8byte .LVL372 .8byte .LVL382 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL383 .8byte .LVL385 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL385 .8byte .LFE50 .2byte 0x1 .byte 0x61 .8byte 0 .8byte 0 .LLST161: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL169 .8byte .LVL189 .2byte 0x1 .byte 0x5a .8byte .LVL223 .8byte .LVL337 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL337 .8byte .LVL341 .2byte 0x1 .byte 0x68 .8byte .LVL347 .8byte .LVL349 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL349 .8byte .LVL358 .2byte 0x1 .byte 0x5a .8byte .LVL358 .8byte .LVL361 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL361 .8byte .LVL372 .2byte 0x1 .byte 0x5a .8byte .LVL372 .8byte .LVL374 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL374 .8byte .LVL382 .2byte 0x2 .byte 0x34 .byte 0x9f .8byte .LVL383 .8byte .LVL385 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL385 .8byte .LVL387 .2byte 0x1 .byte 0x5a .8byte 0 .8byte 0 .LLST162: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL169 .8byte .LVL188 .2byte 0x1 .byte 0x5f .8byte .LVL223 .8byte .LVL337 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL337 .8byte .LVL347 .2byte 0x1 .byte 0x5f .8byte .LVL347 .8byte .LVL361 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL361 .8byte .LVL372 .2byte 0x1 .byte 0x5e .8byte .LVL372 .8byte .LVL374 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL374 .8byte .LVL382 .2byte 0x2 .byte 0x32 .byte 0x9f .8byte .LVL383 .8byte .LVL385 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL385 .8byte .LVL387 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST163: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL169 .8byte .LVL193 .2byte 0x1 .byte 0x5b .8byte .LVL223 .8byte .LVL335 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL335 .8byte .LVL347 .2byte 0x2 .byte 0x35 .byte 0x9f .8byte .LVL347 .8byte .LVL373 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL373 .8byte .LVL382 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL383 .8byte .LVL385 .2byte 0x2 .byte 0x35 .byte 0x9f .8byte .LVL385 .8byte .LVL387 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte 0 .8byte 0 .LLST164: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x32 .byte 0x9f .8byte .LVL169 .8byte .LVL192 .2byte 0x1 .byte 0x6e .8byte .LVL223 .8byte .LVL335 .2byte 0x2 .byte 0x32 .byte 0x9f .8byte .LVL335 .8byte .LVL347 .2byte 0x2 .byte 0x35 .byte 0x9f .8byte .LVL347 .8byte .LVL359 .2byte 0x2 .byte 0x32 .byte 0x9f .8byte .LVL359 .8byte .LVL373 .2byte 0x2 .byte 0x34 .byte 0x9f .8byte .LVL373 .8byte .LVL385 .2byte 0x2 .byte 0x35 .byte 0x9f .8byte .LVL385 .8byte .LVL387 .2byte 0x2 .byte 0x34 .byte 0x9f .8byte 0 .8byte 0 .LLST165: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL169 .8byte .LVL194 .2byte 0x1 .byte 0x55 .8byte .LVL223 .8byte .LVL335 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL335 .8byte .LVL373 .2byte 0x2 .byte 0x3c .byte 0x9f .8byte .LVL373 .8byte .LVL382 .2byte 0x2 .byte 0x35 .byte 0x9f .8byte .LVL383 .8byte .LVL387 .2byte 0x2 .byte 0x3c .byte 0x9f .8byte 0 .8byte 0 .LLST166: .8byte .LVL153 .8byte .LVL156 .2byte 0x2 .byte 0x32 .byte 0x9f .8byte .LVL156 .8byte .LVL222 .2byte 0x3 .byte 0x91 .byte 0x88,0x7f .8byte .LVL222 .8byte .LVL223 .2byte 0x3 .byte 0x72 .byte 0x88,0x7f .8byte .LVL223 .8byte .LVL334 .2byte 0x2 .byte 0x32 .byte 0x9f .8byte .LVL334 .8byte .LFE50 .2byte 0x3 .byte 0x91 .byte 0x88,0x7f .8byte 0 .8byte 0 .LLST167: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x32 .byte 0x9f .8byte .LVL169 .8byte .LVL200 .2byte 0x1 .byte 0x68 .8byte .LVL223 .8byte .LVL335 .2byte 0x2 .byte 0x32 .byte 0x9f .8byte .LVL335 .8byte .LVL373 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL373 .8byte .LVL382 .2byte 0x2 .byte 0x32 .byte 0x9f .8byte .LVL383 .8byte .LVL387 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte 0 .8byte 0 .LLST168: .8byte .LVL153 .8byte .LVL158 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL158 .8byte .LVL197 .2byte 0x1 .byte 0x67 .8byte .LVL223 .8byte .LVL232 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL232 .8byte .LVL233 .2byte 0x1 .byte 0x5a .8byte .LVL238 .8byte .LVL239 .2byte 0x1 .byte 0x67 .8byte .LVL239 .8byte .LVL243 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL243 .8byte .LVL244 .2byte 0x1 .byte 0x5a .8byte .LVL251 .8byte .LVL256 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL256 .8byte .LVL272 .2byte 0x1 .byte 0x67 .8byte .LVL272 .8byte .LVL278 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL278 .8byte .LVL305 .2byte 0x1 .byte 0x67 .8byte .LVL305 .8byte .LVL311 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL311 .8byte .LVL333 .2byte 0x1 .byte 0x67 .8byte .LVL333 .8byte .LVL334 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL334 .8byte .LVL387 .2byte 0x1 .byte 0x67 .8byte 0 .8byte 0 .LLST169: .8byte .LVL153 .8byte .LVL159 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL159 .8byte .LVL196 .2byte 0x1 .byte 0x63 .8byte .LVL223 .8byte .LVL233 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL238 .8byte .LVL239 .2byte 0x1 .byte 0x63 .8byte .LVL239 .8byte .LVL246 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL246 .8byte .LVL251 .2byte 0x1 .byte 0x63 .8byte .LVL251 .8byte .LVL258 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL258 .8byte .LVL272 .2byte 0x1 .byte 0x63 .8byte .LVL272 .8byte .LVL281 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL281 .8byte .LVL282 .2byte 0x1 .byte 0x5a .8byte .LVL305 .8byte .LVL314 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL314 .8byte .LVL315 .2byte 0x1 .byte 0x5a .8byte .LVL333 .8byte .LVL334 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL334 .8byte .LVL387 .2byte 0x1 .byte 0x63 .8byte 0 .8byte 0 .LLST170: .8byte .LVL153 .8byte .LVL160 .2byte 0x2 .byte 0x44 .byte 0x9f .8byte .LVL160 .8byte .LVL220 .2byte 0x1 .byte 0x69 .8byte .LVL223 .8byte .LVL235 .2byte 0x2 .byte 0x44 .byte 0x9f .8byte .LVL235 .8byte .LVL239 .2byte 0x1 .byte 0x69 .8byte .LVL239 .8byte .LVL248 .2byte 0x2 .byte 0x44 .byte 0x9f .8byte .LVL248 .8byte .LVL251 .2byte 0x1 .byte 0x69 .8byte .LVL251 .8byte .LVL260 .2byte 0x2 .byte 0x44 .byte 0x9f .8byte .LVL260 .8byte .LVL272 .2byte 0x1 .byte 0x69 .8byte .LVL272 .8byte .LVL284 .2byte 0x2 .byte 0x44 .byte 0x9f .8byte .LVL284 .8byte .LVL305 .2byte 0x1 .byte 0x69 .8byte .LVL305 .8byte .LVL317 .2byte 0x2 .byte 0x44 .byte 0x9f .8byte .LVL317 .8byte .LVL333 .2byte 0x1 .byte 0x69 .8byte .LVL333 .8byte .LVL334 .2byte 0x2 .byte 0x44 .byte 0x9f .8byte .LVL334 .8byte .LFE50 .2byte 0x1 .byte 0x69 .8byte 0 .8byte 0 .LLST171: .8byte .LVL153 .8byte .LVL157 .2byte 0x2 .byte 0x40 .byte 0x9f .8byte .LVL157 .8byte .LVL182 .2byte 0x1 .byte 0x6a .8byte .LVL223 .8byte .LVL230 .2byte 0x2 .byte 0x40 .byte 0x9f .8byte .LVL230 .8byte .LVL239 .2byte 0x1 .byte 0x6a .8byte .LVL239 .8byte .LVL241 .2byte 0x2 .byte 0x40 .byte 0x9f .8byte .LVL241 .8byte .LVL251 .2byte 0x1 .byte 0x6a .8byte .LVL251 .8byte .LVL254 .2byte 0x2 .byte 0x40 .byte 0x9f .8byte .LVL254 .8byte .LVL272 .2byte 0x1 .byte 0x6a .8byte .LVL272 .8byte .LVL275 .2byte 0x2 .byte 0x40 .byte 0x9f .8byte .LVL275 .8byte .LVL276 .2byte 0x1 .byte 0x5a .8byte .LVL305 .8byte .LVL308 .2byte 0x2 .byte 0x40 .byte 0x9f .8byte .LVL308 .8byte .LVL309 .2byte 0x1 .byte 0x5a .8byte .LVL333 .8byte .LVL334 .2byte 0x2 .byte 0x40 .byte 0x9f .8byte .LVL334 .8byte .LVL387 .2byte 0x1 .byte 0x6a .8byte 0 .8byte 0 .LLST172: .8byte .LVL153 .8byte .LVL163 .2byte 0x2 .byte 0x3e .byte 0x9f .8byte .LVL163 .8byte .LVL221 .2byte 0x1 .byte 0x6b .8byte .LVL223 .8byte .LVL237 .2byte 0x2 .byte 0x3e .byte 0x9f .8byte .LVL237 .8byte .LVL239 .2byte 0x1 .byte 0x6b .8byte .LVL239 .8byte .LVL250 .2byte 0x2 .byte 0x3e .byte 0x9f .8byte .LVL250 .8byte .LVL251 .2byte 0x1 .byte 0x6b .8byte .LVL251 .8byte .LVL266 .2byte 0x2 .byte 0x3e .byte 0x9f .8byte .LVL266 .8byte .LVL272 .2byte 0x1 .byte 0x6b .8byte .LVL272 .8byte .LVL297 .2byte 0x2 .byte 0x3e .byte 0x9f .8byte .LVL297 .8byte .LVL303 .2byte 0x1 .byte 0x6b .8byte .LVL303 .8byte .LVL327 .2byte 0x2 .byte 0x3e .byte 0x9f .8byte .LVL327 .8byte .LVL333 .2byte 0x1 .byte 0x6b .8byte .LVL333 .8byte .LVL334 .2byte 0x2 .byte 0x3e .byte 0x9f .8byte .LVL334 .8byte .LFE50 .2byte 0x1 .byte 0x6b .8byte 0 .8byte 0 .LLST173: .8byte .LVL153 .8byte .LVL162 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL162 .8byte .LVL222 .2byte 0x2 .byte 0x72 .byte 0 .8byte .LVL222 .8byte .LVL223 .2byte 0x3 .byte 0x72 .byte 0xb0,0x7e .8byte .LVL223 .8byte .LVL235 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL238 .8byte .LVL239 .2byte 0x2 .byte 0x72 .byte 0 .8byte .LVL239 .8byte .LVL248 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL248 .8byte .LVL251 .2byte 0x1 .byte 0x63 .8byte .LVL251 .8byte .LVL264 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL264 .8byte .LVL272 .2byte 0x2 .byte 0x72 .byte 0 .8byte .LVL272 .8byte .LVL295 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL295 .8byte .LVL303 .2byte 0x2 .byte 0x72 .byte 0 .8byte .LVL303 .8byte .LVL325 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL325 .8byte .LVL333 .2byte 0x2 .byte 0x72 .byte 0 .8byte .LVL333 .8byte .LVL334 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL334 .8byte .LFE50 .2byte 0x2 .byte 0x72 .byte 0 .8byte 0 .8byte 0 .LLST174: .8byte .LVL153 .8byte .LVL161 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL161 .8byte .LVL168 .2byte 0x1 .byte 0x59 .8byte .LVL223 .8byte .LVL235 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL238 .8byte .LVL239 .2byte 0x1 .byte 0x59 .8byte .LVL239 .8byte .LVL248 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL251 .8byte .LVL262 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL262 .8byte .LVL272 .2byte 0x1 .byte 0x59 .8byte .LVL272 .8byte .LVL287 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL287 .8byte .LVL288 .2byte 0x1 .byte 0x60 .8byte .LVL290 .8byte .LVL303 .2byte 0x1 .byte 0x59 .8byte .LVL303 .8byte .LVL320 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL333 .8byte .LVL334 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL334 .8byte .LVL338 .2byte 0x1 .byte 0x59 .8byte .LVL338 .8byte .LVL347 .2byte 0x3 .byte 0x79 .byte 0x7b .byte 0x9f .8byte .LVL347 .8byte .LVL357 .2byte 0x1 .byte 0x59 .8byte .LVL358 .8byte .LVL362 .2byte 0x1 .byte 0x59 .8byte .LVL362 .8byte .LVL371 .2byte 0x3 .byte 0x79 .byte 0x7e .byte 0x9f .8byte .LVL372 .8byte .LVL382 .2byte 0x1 .byte 0x59 .8byte .LVL383 .8byte .LVL385 .2byte 0x1 .byte 0x59 .8byte .LVL385 .8byte .LVL386 .2byte 0x3 .byte 0x79 .byte 0x7e .byte 0x9f .8byte 0 .8byte 0 .LLST175: .8byte .LVL153 .8byte .LVL162 .2byte 0x2 .byte 0x38 .byte 0x9f .8byte .LVL162 .8byte .LVL166 .2byte 0x1 .byte 0x66 .8byte .LVL223 .8byte .LVL235 .2byte 0x2 .byte 0x38 .byte 0x9f .8byte .LVL238 .8byte .LVL239 .2byte 0x1 .byte 0x66 .8byte .LVL239 .8byte .LVL248 .2byte 0x2 .byte 0x38 .byte 0x9f .8byte .LVL251 .8byte .LVL264 .2byte 0x2 .byte 0x38 .byte 0x9f .8byte .LVL264 .8byte .LVL272 .2byte 0x2 .byte 0x72 .byte 0 .8byte .LVL272 .8byte .LVL292 .2byte 0x2 .byte 0x38 .byte 0x9f .8byte .LVL292 .8byte .LVL293 .2byte 0x1 .byte 0x5a .8byte .LVL303 .8byte .LVL322 .2byte 0x2 .byte 0x38 .byte 0x9f .8byte .LVL322 .8byte .LVL323 .2byte 0x1 .byte 0x5a .8byte .LVL333 .8byte .LVL334 .2byte 0x2 .byte 0x38 .byte 0x9f .8byte .LVL334 .8byte .LVL339 .2byte 0x1 .byte 0x66 .8byte .LVL339 .8byte .LVL340 .2byte 0x3 .byte 0x86 .byte 0x7b .byte 0x9f .8byte .LVL347 .8byte .LVL350 .2byte 0x1 .byte 0x66 .8byte .LVL358 .8byte .LVL363 .2byte 0x1 .byte 0x66 .8byte .LVL363 .8byte .LVL364 .2byte 0x3 .byte 0x86 .byte 0x7e .byte 0x9f .8byte .LVL372 .8byte .LVL375 .2byte 0x1 .byte 0x66 .8byte .LVL383 .8byte .LVL385 .2byte 0x1 .byte 0x66 .8byte 0 .8byte 0 .LLST176: .8byte .LVL153 .8byte .LVL161 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL161 .8byte .LVL222 .2byte 0x3 .byte 0x91 .byte 0xf0,0x7e .8byte .LVL222 .8byte .LVL223 .2byte 0x3 .byte 0x72 .byte 0xf0,0x7e .8byte .LVL223 .8byte .LVL235 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL238 .8byte .LVL239 .2byte 0x1 .byte 0x59 .8byte .LVL239 .8byte .LVL248 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL251 .8byte .LVL262 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL262 .8byte .LVL272 .2byte 0x1 .byte 0x59 .8byte .LVL272 .8byte .LVL290 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL290 .8byte .LVL303 .2byte 0x1 .byte 0x59 .8byte .LVL303 .8byte .LVL320 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL333 .8byte .LVL334 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL334 .8byte .LFE50 .2byte 0x3 .byte 0x91 .byte 0xf0,0x7e .8byte 0 .8byte 0 .LLST177: .8byte .LVL153 .8byte .LVL160 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte .LVL160 .8byte .LVL185 .2byte 0x1 .byte 0x60 .8byte .LVL223 .8byte .LVL235 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte .LVL238 .8byte .LVL239 .2byte 0x1 .byte 0x60 .8byte .LVL239 .8byte .LVL248 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte .LVL251 .8byte .LVL260 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte .LVL260 .8byte .LVL272 .2byte 0x2 .byte 0x32 .byte 0x9f .8byte .LVL272 .8byte .LVL286 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte .LVL286 .8byte .LVL288 .2byte 0x1 .byte 0x60 .8byte .LVL288 .8byte .LVL289 .2byte 0x1 .byte 0x5a .8byte .LVL303 .8byte .LVL304 .2byte 0x1 .byte 0x60 .8byte .LVL304 .8byte .LVL305 .2byte 0x1 .byte 0x5a .8byte .LVL305 .8byte .LVL319 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte .LVL319 .8byte .LVL320 .2byte 0x1 .byte 0x5a .8byte .LVL333 .8byte .LVL334 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte .LVL334 .8byte .LVL387 .2byte 0x1 .byte 0x60 .8byte 0 .8byte 0 .LLST178: .8byte .LVL153 .8byte .LVL165 .2byte 0x3 .byte 0x8 .byte 0x62 .byte 0x9f .8byte .LVL165 .8byte .LVL216 .2byte 0x1 .byte 0x62 .8byte .LVL223 .8byte .LVL237 .2byte 0x3 .byte 0x8 .byte 0x62 .byte 0x9f .8byte .LVL238 .8byte .LVL239 .2byte 0x1 .byte 0x62 .8byte .LVL239 .8byte .LVL250 .2byte 0x3 .byte 0x8 .byte 0x62 .byte 0x9f .8byte .LVL251 .8byte .LVL268 .2byte 0x3 .byte 0x8 .byte 0x62 .byte 0x9f .8byte .LVL268 .8byte .LVL269 .2byte 0x1 .byte 0x5a .8byte .LVL272 .8byte .LVL299 .2byte 0x3 .byte 0x8 .byte 0x62 .byte 0x9f .8byte .LVL299 .8byte .LVL300 .2byte 0x1 .byte 0x5a .8byte .LVL303 .8byte .LVL329 .2byte 0x3 .byte 0x8 .byte 0x62 .byte 0x9f .8byte .LVL329 .8byte .LVL330 .2byte 0x1 .byte 0x5a .8byte .LVL333 .8byte .LVL334 .2byte 0x3 .byte 0x8 .byte 0x62 .byte 0x9f .8byte .LVL334 .8byte .LFE50 .2byte 0x1 .byte 0x62 .8byte 0 .8byte 0 .LLST179: .8byte .LVL153 .8byte .LVL164 .2byte 0x3 .byte 0x8 .byte 0x80 .byte 0x9f .8byte .LVL164 .8byte .LVL222 .2byte 0x3 .byte 0x91 .byte 0xb8,0x7e .8byte .LVL222 .8byte .LVL223 .2byte 0x3 .byte 0x72 .byte 0xb8,0x7e .8byte .LVL223 .8byte .LVL237 .2byte 0x3 .byte 0x8 .byte 0x80 .byte 0x9f .8byte .LVL238 .8byte .LVL239 .2byte 0x3 .byte 0x91 .byte 0xb8,0x7e .8byte .LVL239 .8byte .LVL250 .2byte 0x3 .byte 0x8 .byte 0x80 .byte 0x9f .8byte .LVL251 .8byte .LVL271 .2byte 0x3 .byte 0x8 .byte 0x80 .byte 0x9f .8byte .LVL271 .8byte .LVL272 .2byte 0x3 .byte 0x91 .byte 0xb8,0x7e .8byte .LVL272 .8byte .LVL302 .2byte 0x3 .byte 0x8 .byte 0x80 .byte 0x9f .8byte .LVL302 .8byte .LVL303 .2byte 0x3 .byte 0x91 .byte 0xb8,0x7e .8byte .LVL303 .8byte .LVL332 .2byte 0x3 .byte 0x8 .byte 0x80 .byte 0x9f .8byte .LVL332 .8byte .LVL333 .2byte 0x3 .byte 0x91 .byte 0xb8,0x7e .8byte .LVL333 .8byte .LVL334 .2byte 0x3 .byte 0x8 .byte 0x80 .byte 0x9f .8byte .LVL334 .8byte .LFE50 .2byte 0x3 .byte 0x91 .byte 0xb8,0x7e .8byte 0 .8byte 0 .LLST180: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x3c .byte 0x9f .8byte .LVL169 .8byte .LVL219 .2byte 0x1 .byte 0x66 .8byte .LVL223 .8byte .LVL345 .2byte 0x2 .byte 0x3c .byte 0x9f .8byte .LVL347 .8byte .LVL355 .2byte 0x2 .byte 0x3c .byte 0x9f .8byte .LVL358 .8byte .LVL368 .2byte 0x2 .byte 0x3c .byte 0x9f .8byte .LVL372 .8byte .LVL380 .2byte 0x2 .byte 0x3c .byte 0x9f .8byte .LVL383 .8byte .LVL385 .2byte 0x2 .byte 0x3c .byte 0x9f .8byte .LVL387 .8byte .LFE50 .2byte 0x1 .byte 0x66 .8byte 0 .8byte 0 .LLST181: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x4b .byte 0x9f .8byte .LVL169 .8byte .LVL183 .2byte 0x1 .byte 0x6c .8byte .LVL223 .8byte .LVL336 .2byte 0x2 .byte 0x4b .byte 0x9f .8byte .LVL336 .8byte .LVL347 .2byte 0xc .byte 0x84 .byte 0 .byte 0xf7 .byte 0x29 .byte 0x8 .byte 0x3c .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0x9f .8byte .LVL347 .8byte .LVL348 .2byte 0x2 .byte 0x4b .byte 0x9f .8byte .LVL348 .8byte .LVL359 .2byte 0xb .byte 0x84 .byte 0 .byte 0xf7 .byte 0x29 .byte 0x4e .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0x9f .8byte .LVL359 .8byte .LVL360 .2byte 0x2 .byte 0x4b .byte 0x9f .8byte .LVL360 .8byte .LVL373 .2byte 0xb .byte 0x84 .byte 0 .byte 0xf7 .byte 0x29 .byte 0x4e .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0x9f .8byte .LVL373 .8byte .LVL374 .2byte 0x2 .byte 0x4b .byte 0x9f .8byte .LVL374 .8byte .LVL382 .2byte 0xc .byte 0x84 .byte 0 .byte 0xf7 .byte 0x29 .byte 0x8 .byte 0x3c .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0x9f .8byte .LVL383 .8byte .LVL385 .2byte 0xc .byte 0x84 .byte 0 .byte 0xf7 .byte 0x29 .byte 0x8 .byte 0x3c .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0x9f .8byte .LVL385 .8byte .LVL387 .2byte 0xb .byte 0x84 .byte 0 .byte 0xf7 .byte 0x29 .byte 0x4e .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0x9f .8byte 0 .8byte 0 .LLST182: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x38 .byte 0x9f .8byte .LVL169 .8byte .LVL222 .2byte 0x3 .byte 0x91 .byte 0xe0,0x7e .8byte .LVL222 .8byte .LVL223 .2byte 0x3 .byte 0x72 .byte 0xe0,0x7e .8byte .LVL223 .8byte .LVL346 .2byte 0x2 .byte 0x38 .byte 0x9f .8byte .LVL346 .8byte .LVL347 .2byte 0x6 .byte 0x79 .byte 0 .byte 0x7f .byte 0 .byte 0x22 .byte 0x9f .8byte .LVL347 .8byte .LVL356 .2byte 0x2 .byte 0x38 .byte 0x9f .8byte .LVL356 .8byte .LVL357 .2byte 0x3 .byte 0x79 .byte 0x5 .byte 0x9f .8byte .LVL358 .8byte .LVL369 .2byte 0x2 .byte 0x38 .byte 0x9f .8byte .LVL369 .8byte .LVL371 .2byte 0x6 .byte 0x79 .byte 0 .byte 0x7e .byte 0 .byte 0x22 .byte 0x9f .8byte .LVL372 .8byte .LVL381 .2byte 0x2 .byte 0x38 .byte 0x9f .8byte .LVL381 .8byte .LVL382 .2byte 0x3 .byte 0x79 .byte 0x5 .byte 0x9f .8byte .LVL383 .8byte .LVL385 .2byte 0x2 .byte 0x38 .byte 0x9f .8byte .LVL385 .8byte .LVL386 .2byte 0x6 .byte 0x79 .byte 0 .byte 0x7e .byte 0 .byte 0x22 .byte 0x9f .8byte .LVL387 .8byte .LFE50 .2byte 0x3 .byte 0x91 .byte 0xe0,0x7e .8byte 0 .8byte 0 .LLST183: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x34 .byte 0x9f .8byte .LVL169 .8byte .LVL190 .2byte 0x1 .byte 0x6f .8byte .LVL223 .8byte .LVL345 .2byte 0x2 .byte 0x34 .byte 0x9f .8byte .LVL347 .8byte .LVL369 .2byte 0x2 .byte 0x34 .byte 0x9f .8byte .LVL369 .8byte .LVL372 .2byte 0x8 .byte 0x7a .byte 0 .byte 0x7e .byte 0 .byte 0x1c .byte 0x23 .byte 0x3 .byte 0x9f .8byte .LVL372 .8byte .LVL380 .2byte 0x2 .byte 0x34 .byte 0x9f .8byte .LVL380 .8byte .LVL382 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte .LVL383 .8byte .LVL385 .2byte 0x2 .byte 0x34 .byte 0x9f .8byte .LVL385 .8byte .LVL387 .2byte 0x8 .byte 0x7a .byte 0 .byte 0x7e .byte 0 .byte 0x1c .byte 0x23 .byte 0x3 .byte 0x9f .8byte 0 .8byte 0 .LLST184: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL169 .8byte .LVL201 .2byte 0x1 .byte 0x6d .8byte .LVL223 .8byte .LVL335 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL335 .8byte .LVL347 .2byte 0x2 .byte 0x35 .byte 0x9f .8byte .LVL347 .8byte .LVL373 .2byte 0x2 .byte 0x34 .byte 0x9f .8byte .LVL373 .8byte .LVL385 .2byte 0x2 .byte 0x35 .byte 0x9f .8byte .LVL385 .8byte .LVL387 .2byte 0x2 .byte 0x34 .byte 0x9f .8byte 0 .8byte 0 .LLST185: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x34 .byte 0x9f .8byte .LVL169 .8byte .LVL199 .2byte 0x1 .byte 0x56 .8byte .LVL223 .8byte .LVL335 .2byte 0x2 .byte 0x34 .byte 0x9f .8byte .LVL335 .8byte .LVL387 .2byte 0x2 .byte 0x35 .byte 0x9f .8byte 0 .8byte 0 .LLST187: .8byte .LVL154 .8byte .LVL222 .2byte 0xa .byte 0x91 .byte 0x80,0x7f .byte 0x94 .byte 0x4 .byte 0x32 .byte 0x25 .byte 0x33 .byte 0x1a .byte 0x9f .8byte .LVL222 .8byte .LVL223 .2byte 0xa .byte 0x72 .byte 0x80,0x7f .byte 0x94 .byte 0x4 .byte 0x32 .byte 0x25 .byte 0x33 .byte 0x1a .byte 0x9f .8byte .LVL223 .8byte .LFE50 .2byte 0xa .byte 0x91 .byte 0x80,0x7f .byte 0x94 .byte 0x4 .byte 0x32 .byte 0x25 .byte 0x33 .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST188: .8byte .LVL172 .8byte .LVL173 .2byte 0x6 .byte 0xc .4byte 0x3103030 .byte 0x9f .8byte 0 .8byte 0 .LLST189: .8byte .LVL172 .8byte .LVL173 .2byte 0x1 .byte 0x57 .8byte 0 .8byte 0 .LLST190: .8byte .LVL174 .8byte .LVL175 .2byte 0x6 .byte 0xc .4byte 0x3103034 .byte 0x9f .8byte 0 .8byte 0 .LLST191: .8byte .LVL174 .8byte .LVL175 .2byte 0x1 .byte 0x57 .8byte 0 .8byte 0 .LLST192: .8byte .LVL176 .8byte .LVL177 .2byte 0x6 .byte 0xc .4byte 0x3103038 .byte 0x9f .8byte 0 .8byte 0 .LLST193: .8byte .LVL176 .8byte .LVL177 .2byte 0x1 .byte 0x57 .8byte 0 .8byte 0 .LLST194: .8byte .LVL178 .8byte .LVL179 .2byte 0x6 .byte 0xc .4byte 0x310303c .byte 0x9f .8byte 0 .8byte 0 .LLST195: .8byte .LVL178 .8byte .LVL179 .2byte 0x1 .byte 0x57 .8byte 0 .8byte 0 .LLST196: .8byte .LVL180 .8byte .LVL181 .2byte 0x6 .byte 0xc .4byte 0x310302c .byte 0x9f .8byte 0 .8byte 0 .LLST197: .8byte .LVL180 .8byte .LVL181 .2byte 0x1 .byte 0x57 .8byte 0 .8byte 0 .LLST198: .8byte .LVL181 .8byte .LVL184 .2byte 0x6 .byte 0xc .4byte 0x3103058 .byte 0x9f .8byte 0 .8byte 0 .LLST199: .8byte .LVL181 .8byte .LVL182 .2byte 0x12 .byte 0x8a .byte 0 .byte 0x40 .byte 0x24 .byte 0x86 .byte 0 .byte 0x48 .byte 0x24 .byte 0x21 .byte 0x8c .byte 0 .byte 0x38 .byte 0x24 .byte 0x21 .byte 0x8b .byte 0 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST200: .8byte .LVL184 .8byte .LVL186 .2byte 0x6 .byte 0xc .4byte 0x310305c .byte 0x9f .8byte 0 .8byte 0 .LLST201: .8byte .LVL184 .8byte .LVL185 .2byte 0x10 .byte 0x80 .byte 0 .byte 0x40 .byte 0x24 .byte 0x91 .byte 0xf0,0x7e .byte 0x94 .byte 0x4 .byte 0x38 .byte 0x24 .byte 0x21 .byte 0x89 .byte 0 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST202: .8byte .LVL186 .8byte .LVL191 .2byte 0x6 .byte 0xc .4byte 0x3103060 .byte 0x9f .8byte 0 .8byte 0 .LLST203: .8byte .LVL186 .8byte .LVL188 .2byte 0x15 .byte 0x7f .byte 0 .byte 0x48 .byte 0x24 .byte 0x7a .byte 0 .byte 0x40 .byte 0x24 .byte 0x21 .byte 0x8f .byte 0 .byte 0x38 .byte 0x24 .byte 0x21 .byte 0x91 .byte 0xe0,0x7e .byte 0x94 .byte 0x4 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST204: .8byte .LVL191 .8byte .LVL195 .2byte 0x6 .byte 0xc .4byte 0x3103064 .byte 0x9f .8byte 0 .8byte 0 .LLST205: .8byte .LVL191 .8byte .LVL192 .2byte 0xd .byte 0x7b .byte 0 .byte 0x40 .byte 0x24 .byte 0x8e .byte 0 .byte 0x3c .byte 0x24 .byte 0x21 .byte 0x75 .byte 0 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST206: .8byte .LVL195 .8byte .LVL198 .2byte 0x6 .byte 0xc .4byte 0x3103068 .byte 0x9f .8byte 0 .8byte 0 .LLST207: .8byte .LVL195 .8byte .LVL196 .2byte 0x17 .byte 0x83 .byte 0 .byte 0x48 .byte 0x24 .byte 0x91 .byte 0x88,0x7f .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x24 .byte 0x21 .byte 0x87 .byte 0 .byte 0x38 .byte 0x24 .byte 0x21 .byte 0x72 .byte 0 .byte 0x94 .byte 0x4 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST208: .8byte .LVL198 .8byte .LVL202 .2byte 0x6 .byte 0xc .4byte 0x310306c .byte 0x9f .8byte 0 .8byte 0 .LLST209: .8byte .LVL198 .8byte .LVL199 .2byte 0x12 .byte 0x76 .byte 0 .byte 0x48 .byte 0x24 .byte 0x76 .byte 0 .byte 0x40 .byte 0x24 .byte 0x21 .byte 0x8d .byte 0 .byte 0x38 .byte 0x24 .byte 0x21 .byte 0x88 .byte 0 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST210: .8byte .LVL202 .8byte .LVL204 .2byte 0x6 .byte 0xc .4byte 0x3103078 .byte 0x9f .8byte 0 .8byte 0 .LLST211: .8byte .LVL203 .8byte .LVL204 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST212: .8byte .LVL206 .8byte .LVL208 .2byte 0x6 .byte 0xc .4byte 0x3103078 .byte 0x9f .8byte 0 .8byte 0 .LLST213: .8byte .LVL206 .8byte .LVL207 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x40 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST214: .8byte .LVL208 .8byte .LVL211 .2byte 0x6 .byte 0xc .4byte 0x3103080 .byte 0x9f .8byte 0 .8byte 0 .LLST215: .8byte .LVL208 .8byte .LVL209 .2byte 0xe .byte 0x7e .byte 0 .byte 0x40 .byte 0x24 .byte 0x81 .byte 0 .byte 0x21 .byte 0xc .4byte 0x2000100 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST216: .8byte .LVL211 .8byte .LVL212 .2byte 0x6 .byte 0xc .4byte 0x3103050 .byte 0x9f .8byte 0 .8byte 0 .LLST217: .8byte .LVL211 .8byte .LVL212 .2byte 0xe .byte 0x91 .byte 0xc8,0x7e .byte 0x94 .byte 0x4 .byte 0x44 .byte 0x24 .byte 0x91 .byte 0xc0,0x7e .byte 0x94 .byte 0x4 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST218: .8byte .LVL212 .8byte .LVL213 .2byte 0x6 .byte 0xc .4byte 0x3103054 .byte 0x9f .8byte 0 .8byte 0 .LLST219: .8byte .LVL212 .8byte .LVL213 .2byte 0xe .byte 0x91 .byte 0xd8,0x7e .byte 0x94 .byte 0x4 .byte 0x44 .byte 0x24 .byte 0x91 .byte 0xd0,0x7e .byte 0x94 .byte 0x4 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST220: .8byte .LVL213 .8byte .LVL214 .2byte 0x6 .byte 0xc .4byte 0x3103090 .byte 0x9f .8byte 0 .8byte 0 .LLST221: .8byte .LVL213 .8byte .LVL214 .2byte 0xb .byte 0x82 .byte 0 .byte 0x40 .byte 0x24 .byte 0x91 .byte 0xb8,0x7e .byte 0x94 .byte 0x4 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST222: .8byte .LVL214 .8byte .LVL217 .2byte 0x6 .byte 0xc .4byte 0x3103094 .byte 0x9f .8byte 0 .8byte 0 .LLST223: .8byte .LVL214 .8byte .LVL216 .2byte 0xb .byte 0x82 .byte 0 .byte 0x3f .byte 0x24 .byte 0xc .4byte 0xfff0000 .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST145: .8byte .LVL149 .8byte .LVL151 .2byte 0x1 .byte 0x5a .8byte .LVL151 .8byte .LFE49 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte 0 .8byte 0 .LLST146: .8byte .LVL149 .8byte .LVL150 .2byte 0x1 .byte 0x5b .8byte .LVL150 .8byte .LFE49 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0x9f .8byte 0 .8byte 0 .LLST147: .8byte .LVL150 .8byte .LVL152 .2byte 0x1c .byte 0x7b .byte 0 .byte 0xf7 .byte 0x29 .byte 0xa .2byte 0x3e8 .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0x7b .byte 0 .byte 0xa .2byte 0x3e8 .byte 0x1d .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x30 .byte 0x2e .byte 0x8 .byte 0xff .byte 0x1a .byte 0x22 .byte 0x9f .8byte .LVL152 .8byte .LFE49 .2byte 0x26 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0x1e .byte 0xf7 .byte 0x29 .byte 0xa .2byte 0x3e8 .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0x1e .byte 0xa .2byte 0x3e8 .byte 0x1d .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x30 .byte 0x2e .byte 0x8 .byte 0xff .byte 0x1a .byte 0x22 .byte 0x9f .8byte 0 .8byte 0 .LLST108: .8byte .LVL126 .8byte .LVL128 .2byte 0x1 .byte 0x5e .8byte .LVL128 .8byte .LVL129 .2byte 0xf .byte 0x7f .byte 0xc .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0xb .2byte 0xf000 .byte 0x1a .byte 0x9f .8byte .LVL129 .8byte .LVL131 .2byte 0x1 .byte 0x5e .8byte .LVL131 .8byte .LVL145 .2byte 0x2 .byte 0x7f .byte 0xc .8byte .LVL145 .8byte .LFE48 .2byte 0x5 .byte 0xc .4byte 0x310200c .8byte 0 .8byte 0 .LLST109: .8byte .LVL124 .8byte .LVL126 .2byte 0x6 .byte 0xc .4byte 0x310200c .byte 0x9f .8byte 0 .8byte 0 .LLST110: .8byte .LVL125 .8byte .LVL126 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST111: .8byte .LVL129 .8byte .LVL130 .2byte 0x6 .byte 0xc .4byte 0x310200c .byte 0x9f .8byte 0 .8byte 0 .LLST112: .8byte .LVL129 .8byte .LVL130 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST113: .8byte .LVL130 .8byte .LVL132 .2byte 0x6 .byte 0xc .4byte 0x3102200 .byte 0x9f .8byte 0 .8byte 0 .LLST114: .8byte .LVL130 .8byte .LVL132 .2byte 0x4 .byte 0x40 .byte 0x3c .byte 0x24 .byte 0x9f .8byte 0 .8byte 0 .LLST115: .8byte .LVL132 .8byte .LVL133 .2byte 0x6 .byte 0xc .4byte 0x3102210 .byte 0x9f .8byte 0 .8byte 0 .LLST116: .8byte .LVL132 .8byte .LVL133 .2byte 0x6 .byte 0xc .4byte 0x1000009 .byte 0x9f .8byte 0 .8byte 0 .LLST117: .8byte .LVL133 .8byte .LVL134 .2byte 0x6 .byte 0xc .4byte 0x3102214 .byte 0x9f .8byte 0 .8byte 0 .LLST118: .8byte .LVL133 .8byte .LVL134 .2byte 0x6 .byte 0xc .4byte 0x500064 .byte 0x9f .8byte 0 .8byte 0 .LLST119: .8byte .LVL134 .8byte .LVL135 .2byte 0x6 .byte 0xc .4byte 0x3102230 .byte 0x9f .8byte 0 .8byte 0 .LLST120: .8byte .LVL134 .8byte .LVL135 .2byte 0x6 .byte 0xc .4byte 0x200000d .byte 0x9f .8byte 0 .8byte 0 .LLST121: .8byte .LVL135 .8byte .LVL136 .2byte 0x6 .byte 0xc .4byte 0x3102234 .byte 0x9f .8byte 0 .8byte 0 .LLST122: .8byte .LVL135 .8byte .LVL136 .2byte 0x6 .byte 0xc .4byte 0x600100 .byte 0x9f .8byte 0 .8byte 0 .LLST123: .8byte .LVL136 .8byte .LVL137 .2byte 0x6 .byte 0xc .4byte 0x3102240 .byte 0x9f .8byte 0 .8byte 0 .LLST124: .8byte .LVL136 .8byte .LVL137 .2byte 0x6 .byte 0xc .4byte 0x1000009 .byte 0x9f .8byte 0 .8byte 0 .LLST125: .8byte .LVL137 .8byte .LVL138 .2byte 0x6 .byte 0xc .4byte 0x3102244 .byte 0x9f .8byte 0 .8byte 0 .LLST126: .8byte .LVL137 .8byte .LVL138 .2byte 0x6 .byte 0xc .4byte 0x500064 .byte 0x9f .8byte 0 .8byte 0 .LLST127: .8byte .LVL138 .8byte .LVL139 .2byte 0x6 .byte 0xc .4byte 0x3102260 .byte 0x9f .8byte 0 .8byte 0 .LLST128: .8byte .LVL138 .8byte .LVL139 .2byte 0x6 .byte 0xc .4byte 0x640209 .byte 0x9f .8byte 0 .8byte 0 .LLST129: .8byte .LVL139 .8byte .LVL140 .2byte 0x6 .byte 0xc .4byte 0x3102264 .byte 0x9f .8byte 0 .8byte 0 .LLST130: .8byte .LVL139 .8byte .LVL140 .2byte 0x6 .byte 0xc .4byte 0x200040 .byte 0x9f .8byte 0 .8byte 0 .LLST131: .8byte .LVL140 .8byte .LVL141 .2byte 0x6 .byte 0xc .4byte 0x3102290 .byte 0x9f .8byte 0 .8byte 0 .LLST132: .8byte .LVL140 .8byte .LVL141 .2byte 0x6 .byte 0xc .4byte 0x1000009 .byte 0x9f .8byte 0 .8byte 0 .LLST133: .8byte .LVL141 .8byte .LVL142 .2byte 0x6 .byte 0xc .4byte 0x3102294 .byte 0x9f .8byte 0 .8byte 0 .LLST134: .8byte .LVL141 .8byte .LVL142 .2byte 0x6 .byte 0xc .4byte 0x400080 .byte 0x9f .8byte 0 .8byte 0 .LLST135: .8byte .LVL142 .8byte .LVL143 .2byte 0x6 .byte 0xc .4byte 0x3102470 .byte 0x9f .8byte 0 .8byte 0 .LLST136: .8byte .LVL142 .8byte .LVL143 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte 0 .8byte 0 .LLST137: .8byte .LVL143 .8byte .LVL144 .2byte 0x6 .byte 0xc .4byte 0x3102474 .byte 0x9f .8byte 0 .8byte 0 .LLST138: .8byte .LVL143 .8byte .LVL144 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte 0 .8byte 0 .LLST139: .8byte .LVL144 .8byte .LVL146 .2byte 0x6 .byte 0xc .4byte 0x31031c0 .byte 0x9f .8byte 0 .8byte 0 .LLST140: .8byte .LVL144 .8byte .LVL146 .2byte 0x6 .byte 0xc .4byte 0xf802f05 .byte 0x9f .8byte 0 .8byte 0 .LLST141: .8byte .LVL146 .8byte .LVL147 .2byte 0x6 .byte 0xc .4byte 0x31031c8 .byte 0x9f .8byte 0 .8byte 0 .LLST142: .8byte .LVL146 .8byte .LVL147 .2byte 0x6 .byte 0xc .4byte 0xf0000ff .byte 0x9f .8byte 0 .8byte 0 .LLST143: .8byte .LVL147 .8byte .LVL148 .2byte 0x6 .byte 0xc .4byte 0x31031d0 .byte 0x9f .8byte 0 .8byte 0 .LLST144: .8byte .LVL147 .8byte .LVL148 .2byte 0x6 .byte 0xc .4byte 0x3f00005f .byte 0x9f .8byte 0 .8byte 0 .LLST91: .8byte .LVL102 .8byte .LVL103 .2byte 0x1 .byte 0x5a .8byte .LVL103 .8byte .LFE47 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte 0 .8byte 0 .LLST92: .8byte .LVL108 .8byte .LVL109 .2byte 0x9 .byte 0x7e .byte 0 .byte 0x11 .byte 0xff,0xff,0xff,0x5f .byte 0x1a .byte 0x9f .8byte .LVL109 .8byte .LVL110 .2byte 0xc .byte 0x7f .byte 0x80,0x2 .byte 0x94 .byte 0x4 .byte 0x11 .byte 0xff,0xff,0xff,0x5f .byte 0x1a .byte 0x9f .8byte .LVL115 .8byte .LVL116 .2byte 0x6 .byte 0x7e .byte 0 .byte 0x8c .byte 0 .byte 0x22 .byte 0x9f .8byte .LVL116 .8byte .LVL121 .2byte 0x1 .byte 0x5e .8byte .LVL121 .8byte .LVL122 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x46 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL122 .8byte .LVL123 .2byte 0xa .byte 0x7b .byte 0x80,0x2 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x46 .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST93: .8byte .LVL110 .8byte .LVL111 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte 0 .8byte 0 .LLST94: .8byte .LVL111 .8byte .LVL112 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte 0 .8byte 0 .LLST95: .8byte .LVL113 .8byte .LVL116 .2byte 0x1 .byte 0x5e .8byte .LVL116 .8byte .LVL118 .2byte 0x16 .byte 0x80 .byte 0 .byte 0x7c .byte 0 .byte 0x22 .byte 0x94 .byte 0x4 .byte 0x38 .byte 0x24 .byte 0x91 .byte 0 .byte 0x7c .byte 0 .byte 0x22 .byte 0xa .2byte 0x170 .byte 0x1c .byte 0x94 .byte 0x4 .byte 0x22 .byte 0x9f .8byte .LVL118 .8byte .LVL123 .2byte 0x18 .byte 0x80 .byte 0 .byte 0x7c .byte 0 .byte 0x22 .byte 0x34 .byte 0x1c .byte 0x94 .byte 0x4 .byte 0x38 .byte 0x24 .byte 0x91 .byte 0 .byte 0x7c .byte 0 .byte 0x22 .byte 0xa .2byte 0x174 .byte 0x1c .byte 0x94 .byte 0x4 .byte 0x22 .byte 0x9f .8byte 0 .8byte 0 .LLST96: .8byte .LVL106 .8byte .LVL108 .2byte 0x6 .byte 0xc .4byte 0x3103100 .byte 0x9f .8byte 0 .8byte 0 .LLST97: .8byte .LVL107 .8byte .LVL108 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST98: .8byte .LVL108 .8byte .LVL110 .2byte 0x6 .byte 0xc .4byte 0x3103100 .byte 0x9f .8byte 0 .8byte 0 .LLST99: .8byte .LVL108 .8byte .LVL109 .2byte 0x9 .byte 0x7e .byte 0 .byte 0x11 .byte 0xff,0xff,0xff,0x5f .byte 0x1a .byte 0x9f .8byte .LVL109 .8byte .LVL110 .2byte 0xc .byte 0x7f .byte 0x80,0x2 .byte 0x94 .byte 0x4 .byte 0x11 .byte 0xff,0xff,0xff,0x5f .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST100: .8byte .LVL113 .8byte .LVL115 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x7d .byte 0 .byte 0x22 .byte 0x9f .8byte 0 .8byte 0 .LLST101: .8byte .LVL114 .8byte .LVL115 .2byte 0x1 .byte 0x6c .8byte 0 .8byte 0 .LLST102: .8byte .LVL115 .8byte .LVL117 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x7d .byte 0 .byte 0x22 .byte 0x9f .8byte 0 .8byte 0 .LLST103: .8byte .LVL115 .8byte .LVL116 .2byte 0x6 .byte 0x7e .byte 0 .byte 0x8c .byte 0 .byte 0x22 .byte 0x9f .8byte .LVL116 .8byte .LVL117 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST104: .8byte .LVL119 .8byte .LVL121 .2byte 0x6 .byte 0xc .4byte 0x3103100 .byte 0x9f .8byte 0 .8byte 0 .LLST105: .8byte .LVL120 .8byte .LVL121 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST106: .8byte .LVL121 .8byte .LVL123 .2byte 0x6 .byte 0xc .4byte 0x3103100 .byte 0x9f .8byte 0 .8byte 0 .LLST107: .8byte .LVL121 .8byte .LVL122 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x46 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL122 .8byte .LVL123 .2byte 0xa .byte 0x7b .byte 0x80,0x2 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x46 .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST27: .8byte .LVL31 .8byte .LVL32 .2byte 0x1 .byte 0x5a .8byte .LVL32 .8byte .LVL101 .2byte 0x1 .byte 0x59 .8byte .LVL101 .8byte .LFE46 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte 0 .8byte 0 .LLST28: .8byte .LVL31 .8byte .LVL32 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL34 .8byte .LVL35 .2byte 0x1 .byte 0x60 .8byte .LVL35 .8byte .LVL37 .2byte 0x1 .byte 0x5f .8byte .LVL37 .8byte .LVL38 .2byte 0x2 .byte 0x7e .byte 0x7c .8byte .LVL40 .8byte .LVL41 .2byte 0x1 .byte 0x5a .8byte .LVL41 .8byte .LVL45 .2byte 0x1 .byte 0x5e .8byte .LVL45 .8byte .LVL46 .2byte 0x9 .byte 0x7f .byte 0 .byte 0x11 .byte 0xff,0xff,0xff,0x5f .byte 0x1a .byte 0x9f .8byte .LVL46 .8byte .LVL47 .2byte 0xc .byte 0x78 .byte 0x80,0x2 .byte 0x94 .byte 0x4 .byte 0x11 .byte 0xff,0xff,0xff,0x5f .byte 0x1a .byte 0x9f .8byte .LVL49 .8byte .LVL50 .2byte 0x1 .byte 0x5b .8byte .LVL50 .8byte .LVL53 .2byte 0x1 .byte 0x5e .8byte .LVL53 .8byte .LVL54 .2byte 0x1 .byte 0x5b .8byte .LVL54 .8byte .LVL57 .2byte 0x1 .byte 0x5e .8byte .LVL57 .8byte .LVL58 .2byte 0x1 .byte 0x5b .8byte .LVL58 .8byte .LVL61 .2byte 0x1 .byte 0x5e .8byte .LVL61 .8byte .LVL62 .2byte 0x1 .byte 0x5d .8byte .LVL62 .8byte .LVL64 .2byte 0x1 .byte 0x5f .8byte .LVL64 .8byte .LVL65 .2byte 0x3 .byte 0x78 .byte 0xb8,0x7 .8byte .LVL65 .8byte .LVL66 .2byte 0x1 .byte 0x5f .8byte .LVL66 .8byte .LVL68 .2byte 0x1 .byte 0x5e .8byte .LVL68 .8byte .LVL69 .2byte 0x3 .byte 0x78 .byte 0xbc,0x6 .8byte .LVL69 .8byte .LVL70 .2byte 0x1 .byte 0x5e .8byte .LVL70 .8byte .LVL72 .2byte 0x1 .byte 0x5f .8byte .LVL72 .8byte .LVL73 .2byte 0x3 .byte 0x78 .byte 0xbc,0x7 .8byte .LVL73 .8byte .LVL74 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x46 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL74 .8byte .LVL75 .2byte 0xa .byte 0x78 .byte 0x80,0x2 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x46 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL79 .8byte .LVL80 .2byte 0x1 .byte 0x5b .8byte .LVL80 .8byte .LVL82 .2byte 0x1 .byte 0x5f .8byte .LVL82 .8byte .LVL83 .2byte 0x2 .byte 0x78 .byte 0x7c .8byte .LVL85 .8byte .LVL86 .2byte 0x1 .byte 0x5a .8byte .LVL86 .8byte .LVL90 .2byte 0x1 .byte 0x5e .8byte .LVL90 .8byte .LVL91 .2byte 0x1 .byte 0x5f .8byte .LVL91 .8byte .LVL94 .2byte 0x1 .byte 0x5e .8byte .LVL94 .8byte .LVL95 .2byte 0x1 .byte 0x5f .8byte .LVL95 .8byte .LVL97 .2byte 0x1 .byte 0x5e .8byte .LVL97 .8byte .LVL98 .2byte 0x3 .byte 0x7d .byte 0x9c,0x4 .8byte .LVL98 .8byte .LVL99 .2byte 0x1 .byte 0x5e .8byte .LVL99 .8byte .LFE46 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST29: .8byte .LVL31 .8byte .LVL32 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL76 .8byte .LVL77 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte 0 .8byte 0 .LLST30: .8byte .LVL32 .8byte .LVL34 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST31: .8byte .LVL33 .8byte .LVL34 .2byte 0x1 .byte 0x60 .8byte 0 .8byte 0 .LLST32: .8byte .LVL35 .8byte .LVL36 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST33: .8byte .LVL35 .8byte .LVL36 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST34: .8byte .LVL38 .8byte .LVL40 .2byte 0x1 .byte 0x5d .8byte 0 .8byte 0 .LLST35: .8byte .LVL39 .8byte .LVL40 .2byte 0x1 .byte 0x5a .8byte 0 .8byte 0 .LLST36: .8byte .LVL41 .8byte .LVL42 .2byte 0x1 .byte 0x5d .8byte 0 .8byte 0 .LLST37: .8byte .LVL41 .8byte .LVL42 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST38: .8byte .LVL43 .8byte .LVL45 .2byte 0x6 .byte 0xc .4byte 0x3103100 .byte 0x9f .8byte 0 .8byte 0 .LLST39: .8byte .LVL44 .8byte .LVL45 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST40: .8byte .LVL45 .8byte .LVL47 .2byte 0x6 .byte 0xc .4byte 0x3103100 .byte 0x9f .8byte 0 .8byte 0 .LLST41: .8byte .LVL45 .8byte .LVL46 .2byte 0x9 .byte 0x7f .byte 0 .byte 0x11 .byte 0xff,0xff,0xff,0x5f .byte 0x1a .byte 0x9f .8byte .LVL46 .8byte .LVL47 .2byte 0xc .byte 0x78 .byte 0x80,0x2 .byte 0x94 .byte 0x4 .byte 0x11 .byte 0xff,0xff,0xff,0x5f .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST42: .8byte .LVL47 .8byte .LVL49 .2byte 0x6 .byte 0xc .4byte 0x3103334 .byte 0x9f .8byte 0 .8byte 0 .LLST43: .8byte .LVL48 .8byte .LVL49 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST44: .8byte .LVL50 .8byte .LVL51 .2byte 0x6 .byte 0xc .4byte 0x3103334 .byte 0x9f .8byte 0 .8byte 0 .LLST45: .8byte .LVL50 .8byte .LVL51 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST46: .8byte .LVL51 .8byte .LVL53 .2byte 0x6 .byte 0xc .4byte 0x3103338 .byte 0x9f .8byte 0 .8byte 0 .LLST47: .8byte .LVL52 .8byte .LVL53 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST48: .8byte .LVL54 .8byte .LVL55 .2byte 0x6 .byte 0xc .4byte 0x3103338 .byte 0x9f .8byte 0 .8byte 0 .LLST49: .8byte .LVL54 .8byte .LVL55 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST50: .8byte .LVL55 .8byte .LVL57 .2byte 0x6 .byte 0xc .4byte 0x31033b4 .byte 0x9f .8byte 0 .8byte 0 .LLST51: .8byte .LVL56 .8byte .LVL57 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST52: .8byte .LVL58 .8byte .LVL59 .2byte 0x6 .byte 0xc .4byte 0x31033b4 .byte 0x9f .8byte 0 .8byte 0 .LLST53: .8byte .LVL58 .8byte .LVL59 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST54: .8byte .LVL59 .8byte .LVL61 .2byte 0x6 .byte 0xc .4byte 0x31033b8 .byte 0x9f .8byte 0 .8byte 0 .LLST55: .8byte .LVL60 .8byte .LVL61 .2byte 0x1 .byte 0x5d .8byte 0 .8byte 0 .LLST56: .8byte .LVL62 .8byte .LVL63 .2byte 0x6 .byte 0xc .4byte 0x31033b8 .byte 0x9f .8byte 0 .8byte 0 .LLST57: .8byte .LVL62 .8byte .LVL63 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST58: .8byte .LVL63 .8byte .LVL65 .2byte 0x6 .byte 0xc .4byte 0x310333c .byte 0x9f .8byte 0 .8byte 0 .LLST59: .8byte .LVL64 .8byte .LVL65 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST60: .8byte .LVL66 .8byte .LVL67 .2byte 0x6 .byte 0xc .4byte 0x310333c .byte 0x9f .8byte 0 .8byte 0 .LLST61: .8byte .LVL66 .8byte .LVL67 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST62: .8byte .LVL67 .8byte .LVL69 .2byte 0x6 .byte 0xc .4byte 0x31033bc .byte 0x9f .8byte 0 .8byte 0 .LLST63: .8byte .LVL68 .8byte .LVL69 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST64: .8byte .LVL70 .8byte .LVL71 .2byte 0x6 .byte 0xc .4byte 0x31033bc .byte 0x9f .8byte 0 .8byte 0 .LLST65: .8byte .LVL70 .8byte .LVL71 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST66: .8byte .LVL71 .8byte .LVL73 .2byte 0x6 .byte 0xc .4byte 0x3103100 .byte 0x9f .8byte 0 .8byte 0 .LLST67: .8byte .LVL72 .8byte .LVL73 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST68: .8byte .LVL73 .8byte .LVL75 .2byte 0x6 .byte 0xc .4byte 0x3103100 .byte 0x9f .8byte 0 .8byte 0 .LLST69: .8byte .LVL73 .8byte .LVL74 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x46 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL74 .8byte .LVL75 .2byte 0xa .byte 0x78 .byte 0x80,0x2 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x46 .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST70: .8byte .LVL75 .8byte .LVL76 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte 0 .8byte 0 .LLST71: .8byte .LVL77 .8byte .LVL79 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST72: .8byte .LVL78 .8byte .LVL79 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST73: .8byte .LVL80 .8byte .LVL81 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST74: .8byte .LVL80 .8byte .LVL81 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST75: .8byte .LVL83 .8byte .LVL85 .2byte 0x1 .byte 0x5c .8byte 0 .8byte 0 .LLST76: .8byte .LVL84 .8byte .LVL85 .2byte 0x1 .byte 0x5a .8byte 0 .8byte 0 .LLST77: .8byte .LVL86 .8byte .LVL87 .2byte 0x1 .byte 0x5c .8byte 0 .8byte 0 .LLST78: .8byte .LVL86 .8byte .LVL87 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST79: .8byte .LVL88 .8byte .LVL90 .2byte 0x6 .byte 0xc .4byte 0x3103218 .byte 0x9f .8byte 0 .8byte 0 .LLST80: .8byte .LVL89 .8byte .LVL90 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST81: .8byte .LVL91 .8byte .LVL92 .2byte 0x6 .byte 0xc .4byte 0x3103218 .byte 0x9f .8byte 0 .8byte 0 .LLST82: .8byte .LVL91 .8byte .LVL92 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST83: .8byte .LVL92 .8byte .LVL94 .2byte 0x6 .byte 0xc .4byte 0x310321c .byte 0x9f .8byte 0 .8byte 0 .LLST84: .8byte .LVL93 .8byte .LVL94 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST85: .8byte .LVL95 .8byte .LVL96 .2byte 0x6 .byte 0xc .4byte 0x310321c .byte 0x9f .8byte 0 .8byte 0 .LLST86: .8byte .LVL95 .8byte .LVL96 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST87: .8byte .LVL96 .8byte .LVL98 .2byte 0x6 .byte 0xc .4byte 0x3103280 .byte 0x9f .8byte 0 .8byte 0 .LLST88: .8byte .LVL97 .8byte .LVL98 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST89: .8byte .LVL99 .8byte .LVL100 .2byte 0x6 .byte 0xc .4byte 0x3103280 .byte 0x9f .8byte 0 .8byte 0 .LLST90: .8byte .LVL99 .8byte .LVL100 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST21: .8byte .LVL26 .8byte .LVL27 .2byte 0x6 .byte 0xc .4byte 0x3102020 .byte 0x9f .8byte 0 .8byte 0 .LLST22: .8byte .LVL26 .8byte .LVL27 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte 0 .8byte 0 .LLST23: .8byte .LVL27 .8byte .LVL28 .2byte 0x6 .byte 0xc .4byte 0x3102024 .byte 0x9f .8byte 0 .8byte 0 .LLST24: .8byte .LVL27 .8byte .LVL28 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte 0 .8byte 0 .LLST25: .8byte .LVL28 .8byte .LVL29 .2byte 0x6 .byte 0xc .4byte 0x3102028 .byte 0x9f .8byte 0 .8byte 0 .LLST26: .8byte .LVL28 .8byte .LVL29 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte 0 .8byte 0 .LLST15: .8byte .LVL21 .8byte .LVL22 .2byte 0x6 .byte 0xc .4byte 0x3102020 .byte 0x9f .8byte 0 .8byte 0 .LLST16: .8byte .LVL21 .8byte .LVL22 .2byte 0x3 .byte 0x9 .byte 0xff .byte 0x9f .8byte 0 .8byte 0 .LLST17: .8byte .LVL22 .8byte .LVL23 .2byte 0x6 .byte 0xc .4byte 0x3102024 .byte 0x9f .8byte 0 .8byte 0 .LLST18: .8byte .LVL22 .8byte .LVL23 .2byte 0x3 .byte 0x8 .byte 0xff .byte 0x9f .8byte 0 .8byte 0 .LLST19: .8byte .LVL23 .8byte .LVL24 .2byte 0x6 .byte 0xc .4byte 0x3102028 .byte 0x9f .8byte 0 .8byte 0 .LLST20: .8byte .LVL23 .8byte .LVL24 .2byte 0x4 .byte 0xa .2byte 0xffff .byte 0x9f .8byte 0 .8byte 0 .LLST4: .8byte .LVL7 .8byte .LVL16 .2byte 0x1 .byte 0x5a .8byte .LVL16 .8byte .LFE42 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte 0 .8byte 0 .LLST5: .8byte .LVL10 .8byte .LVL13 .2byte 0x1 .byte 0x5f .8byte .LVL13 .8byte .LVL14 .2byte 0x9 .byte 0x7f .byte 0 .byte 0x11 .byte 0xff,0xff,0xff,0x7e .byte 0x1a .byte 0x9f .8byte .LVL18 .8byte .LFE42 .2byte 0x5 .byte 0xc .4byte 0x3000150 .8byte 0 .8byte 0 .LLST6: .8byte .LVL7 .8byte .LVL8 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL8 .8byte .LVL12 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST7: .8byte .LVL8 .8byte .LVL10 .2byte 0x6 .byte 0xc .4byte 0x3000150 .byte 0x9f .8byte 0 .8byte 0 .LLST8: .8byte .LVL9 .8byte .LVL10 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST9: .8byte .LVL13 .8byte .LVL15 .2byte 0x6 .byte 0xc .4byte 0x3000150 .byte 0x9f .8byte 0 .8byte 0 .LLST10: .8byte .LVL13 .8byte .LVL14 .2byte 0x9 .byte 0x7f .byte 0 .byte 0x11 .byte 0xff,0xff,0xff,0x7e .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST11: .8byte .LVL15 .8byte .LVL17 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte 0 .8byte 0 .LLST12: .8byte .LVL17 .8byte .LVL18 .2byte 0x6 .byte 0xc .4byte 0x3000150 .byte 0x9f .8byte 0 .8byte 0 .LLST13: .8byte .LVL17 .8byte .LVL18 .2byte 0x5 .byte 0xc .4byte 0x3000150 .8byte 0 .8byte 0 .LLST0: .8byte .LVL1 .8byte .LVL2 .2byte 0x1 .byte 0x5c .8byte .LVL2 .8byte .LVL4 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x20 .byte 0x7c .byte 0 .byte 0x22 .byte 0x9f .8byte .LVL4 .8byte .LFE40 .2byte 0x6 .byte 0x7c .byte 0 .byte 0x7f .byte 0 .byte 0x1c .byte 0x9f .8byte 0 .8byte 0 .LLST1: .8byte .LVL1 .8byte .LVL2 .2byte 0x1 .byte 0x5b .8byte .LVL2 .8byte .LVL3 .2byte 0x6 .byte 0x7b .byte 0 .byte 0x7f .byte 0 .byte 0x22 .byte 0x9f .8byte .LVL3 .8byte .LVL4 .2byte 0x8 .byte 0x7b .byte 0 .byte 0x7f .byte 0 .byte 0x22 .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL4 .8byte .LFE40 .2byte 0x6 .byte 0x7b .byte 0 .byte 0x7f .byte 0 .byte 0x22 .byte 0x9f .8byte 0 .8byte 0 .LLST2: .8byte .LVL1 .8byte .LVL2 .2byte 0x1 .byte 0x5a .8byte .LVL2 .8byte .LVL3 .2byte 0x6 .byte 0x7a .byte 0 .byte 0x7f .byte 0 .byte 0x22 .byte 0x9f .8byte .LVL3 .8byte .LVL4 .2byte 0x8 .byte 0x7a .byte 0 .byte 0x7f .byte 0 .byte 0x22 .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL4 .8byte .LFE40 .2byte 0x6 .byte 0x7a .byte 0 .byte 0x7f .byte 0 .byte 0x22 .byte 0x9f .8byte 0 .8byte 0 .LLST3: .8byte .LVL5 .8byte .LVL6-1 .2byte 0x1 .byte 0x5a .8byte .LVL6-1 .8byte .LFE41 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte 0 .8byte 0 .LLST14: .8byte .LVL19 .8byte .LVL20 .2byte 0x1 .byte 0x5b .8byte .LVL20 .8byte .LFE43 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0x9f .8byte 0 .8byte 0 .LLST580: .8byte .LVL872 .8byte .LVL874 .2byte 0x1 .byte 0x5f .8byte .LVL874 .8byte .LVL875 .2byte 0x13 .byte 0x7e .byte 0x90,0x2 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x11 .byte 0x80,0x81,0x82,0x84,0x78 .byte 0x1a .byte 0x9f .8byte .LVL875 .8byte .LVL877 .2byte 0x1 .byte 0x5f .8byte .LVL877 .8byte .LVL883 .2byte 0x3 .byte 0x7e .byte 0x90,0x2 .8byte 0 .8byte 0 .LLST581: .8byte .LVL870 .8byte .LVL872 .2byte 0x6 .byte 0xc .4byte 0x3103110 .byte 0x9f .8byte 0 .8byte 0 .LLST582: .8byte .LVL871 .8byte .LVL872 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST583: .8byte .LVL875 .8byte .LVL876 .2byte 0x6 .byte 0xc .4byte 0x3103110 .byte 0x9f .8byte 0 .8byte 0 .LLST584: .8byte .LVL875 .8byte .LVL876 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST585: .8byte .LVL878 .8byte .LVL883 .2byte 0x1 .byte 0x5a .8byte 0 .8byte 0 .LLST586: .8byte .LVL880 .8byte .LVL881 .2byte 0x1 .byte 0x5f .8byte .LVL881 .8byte .LVL882 .2byte 0x1 .byte 0x5d .8byte .LVL882 .8byte .LVL883 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST587: .8byte .LVL878 .8byte .LVL880 .2byte 0x6 .byte 0xc .4byte 0x3103114 .byte 0x9f .8byte 0 .8byte 0 .LLST588: .8byte .LVL879 .8byte .LVL880 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST589: .8byte .LVL882 .8byte .LVL883 .2byte 0x6 .byte 0xc .4byte 0x3103114 .byte 0x9f .8byte 0 .8byte 0 .LLST590: .8byte .LVL882 .8byte .LVL883 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .section .debug_aranges,"",@progbits .4byte 0x20c .2byte 0x2 .4byte .Ldebug_info0 .byte 0x8 .byte 0 .2byte 0 .2byte 0 .8byte .LFB37 .8byte .LFE37-.LFB37 .8byte .LFB38 .8byte .LFE38-.LFB38 .8byte .LFB39 .8byte .LFE39-.LFB39 .8byte .LFB40 .8byte .LFE40-.LFB40 .8byte .LFB41 .8byte .LFE41-.LFB41 .8byte .LFB42 .8byte .LFE42-.LFB42 .8byte .LFB43 .8byte .LFE43-.LFB43 .8byte .LFB44 .8byte .LFE44-.LFB44 .8byte .LFB45 .8byte .LFE45-.LFB45 .8byte .LFB46 .8byte .LFE46-.LFB46 .8byte .LFB47 .8byte .LFE47-.LFB47 .8byte .LFB48 .8byte .LFE48-.LFB48 .8byte .LFB49 .8byte .LFE49-.LFB49 .8byte .LFB50 .8byte .LFE50-.LFB50 .8byte .LFB51 .8byte .LFE51-.LFB51 .8byte .LFB52 .8byte .LFE52-.LFB52 .8byte .LFB53 .8byte .LFE53-.LFB53 .8byte .LFB54 .8byte .LFE54-.LFB54 .8byte .LFB55 .8byte .LFE55-.LFB55 .8byte .LFB56 .8byte .LFE56-.LFB56 .8byte .LFB57 .8byte .LFE57-.LFB57 .8byte .LFB58 .8byte .LFE58-.LFB58 .8byte .LFB60 .8byte .LFE60-.LFB60 .8byte .LFB63 .8byte .LFE63-.LFB63 .8byte .LFB64 .8byte .LFE64-.LFB64 .8byte .LFB65 .8byte .LFE65-.LFB65 .8byte .LFB59 .8byte .LFE59-.LFB59 .8byte .LFB61 .8byte .LFE61-.LFB61 .8byte .LFB62 .8byte .LFE62-.LFB62 .8byte .LFB66 .8byte .LFE66-.LFB66 .8byte .LFB67 .8byte .LFE67-.LFB67 .8byte 0 .8byte 0 .section .debug_ranges,"",@progbits .Ldebug_ranges0: .8byte .LBB1164 .8byte .LBE1164 .8byte .LBB1167 .8byte .LBE1167 .8byte 0 .8byte 0 .8byte .LBB1184 .8byte .LBE1184 .8byte .LBB1190 .8byte .LBE1190 .8byte 0 .8byte 0 .8byte .LBB1187 .8byte .LBE1187 .8byte .LBB1191 .8byte .LBE1191 .8byte 0 .8byte 0 .8byte .LBB1202 .8byte .LBE1202 .8byte .LBB1205 .8byte .LBE1205 .8byte 0 .8byte 0 .8byte .LBB1232 .8byte .LBE1232 .8byte .LBB1235 .8byte .LBE1235 .8byte 0 .8byte 0 .8byte .LBB1236 .8byte .LBE1236 .8byte .LBB1239 .8byte .LBE1239 .8byte 0 .8byte 0 .8byte .LBB1258 .8byte .LBE1258 .8byte .LBB1261 .8byte .LBE1261 .8byte 0 .8byte 0 .8byte .LBB1262 .8byte .LBE1262 .8byte .LBB1265 .8byte .LBE1265 .8byte 0 .8byte 0 .8byte .LBB1266 .8byte .LBE1266 .8byte .LBB1270 .8byte .LBE1270 .8byte .LBB1271 .8byte .LBE1271 .8byte 0 .8byte 0 .8byte .LBB1274 .8byte .LBE1274 .8byte .LBB1277 .8byte .LBE1277 .8byte 0 .8byte 0 .8byte .LBB1280 .8byte .LBE1280 .8byte .LBB1283 .8byte .LBE1283 .8byte 0 .8byte 0 .8byte .LBB1330 .8byte .LBE1330 .8byte .LBB1333 .8byte .LBE1333 .8byte 0 .8byte 0 .8byte .LBB1334 .8byte .LBE1334 .8byte .LBB1337 .8byte .LBE1337 .8byte 0 .8byte 0 .8byte .LBB1338 .8byte .LBE1338 .8byte .LBB1341 .8byte .LBE1341 .8byte 0 .8byte 0 .8byte .LBB1342 .8byte .LBE1342 .8byte .LBB1345 .8byte .LBE1345 .8byte 0 .8byte 0 .8byte .LBB1346 .8byte .LBE1346 .8byte .LBB1349 .8byte .LBE1349 .8byte 0 .8byte 0 .8byte .LBB1350 .8byte .LBE1350 .8byte .LBB1353 .8byte .LBE1353 .8byte 0 .8byte 0 .8byte .LBB1356 .8byte .LBE1356 .8byte .LBB1359 .8byte .LBE1359 .8byte 0 .8byte 0 .8byte .LBB1360 .8byte .LBE1360 .8byte .LBB1363 .8byte .LBE1363 .8byte 0 .8byte 0 .8byte .LBB1364 .8byte .LBE1364 .8byte .LBB1367 .8byte .LBE1367 .8byte 0 .8byte 0 .8byte .LBB1368 .8byte .LBE1368 .8byte .LBB1371 .8byte .LBE1371 .8byte 0 .8byte 0 .8byte .LBB1372 .8byte .LBE1372 .8byte .LBB1375 .8byte .LBE1375 .8byte 0 .8byte 0 .8byte .LBB1376 .8byte .LBE1376 .8byte .LBB1379 .8byte .LBE1379 .8byte 0 .8byte 0 .8byte .LBB1380 .8byte .LBE1380 .8byte .LBB1383 .8byte .LBE1383 .8byte 0 .8byte 0 .8byte .LBB1386 .8byte .LBE1386 .8byte .LBB1389 .8byte .LBE1389 .8byte 0 .8byte 0 .8byte .LBB1394 .8byte .LBE1394 .8byte .LBB1397 .8byte .LBE1397 .8byte 0 .8byte 0 .8byte .LBB1402 .8byte .LBE1402 .8byte .LBB1405 .8byte .LBE1405 .8byte 0 .8byte 0 .8byte .LBB1408 .8byte .LBE1408 .8byte .LBB1411 .8byte .LBE1411 .8byte 0 .8byte 0 .8byte .LBB1414 .8byte .LBE1414 .8byte .LBB1417 .8byte .LBE1417 .8byte 0 .8byte 0 .8byte .LBB1420 .8byte .LBE1420 .8byte .LBB1437 .8byte .LBE1437 .8byte 0 .8byte 0 .8byte .LBB1427 .8byte .LBE1427 .8byte .LBB1430 .8byte .LBE1430 .8byte 0 .8byte 0 .8byte .LBB1438 .8byte .LBE1438 .8byte .LBB1441 .8byte .LBE1441 .8byte 0 .8byte 0 .8byte .LBB1442 .8byte .LBE1442 .8byte .LBB1445 .8byte .LBE1445 .8byte 0 .8byte 0 .8byte .LBB1446 .8byte .LBE1446 .8byte .LBB1449 .8byte .LBE1449 .8byte 0 .8byte 0 .8byte .LBB1450 .8byte .LBE1450 .8byte .LBB1453 .8byte .LBE1453 .8byte 0 .8byte 0 .8byte .LBB1460 .8byte .LBE1460 .8byte .LBB1463 .8byte .LBE1463 .8byte 0 .8byte 0 .8byte .LBB1466 .8byte .LBE1466 .8byte .LBB1469 .8byte .LBE1469 .8byte 0 .8byte 0 .8byte .LBB1470 .8byte .LBE1470 .8byte .LBB1474 .8byte .LBE1474 .8byte .LBB1475 .8byte .LBE1475 .8byte 0 .8byte 0 .8byte .LBB1476 .8byte .LBE1476 .8byte .LBB1479 .8byte .LBE1479 .8byte 0 .8byte 0 .8byte .LBB1482 .8byte .LBE1482 .8byte .LBB1485 .8byte .LBE1485 .8byte 0 .8byte 0 .8byte .LBB1488 .8byte .LBE1488 .8byte .LBB1491 .8byte .LBE1491 .8byte 0 .8byte 0 .8byte .LBB1494 .8byte .LBE1494 .8byte .LBB1497 .8byte .LBE1497 .8byte 0 .8byte 0 .8byte .LBB1504 .8byte .LBE1504 .8byte .LBB1507 .8byte .LBE1507 .8byte 0 .8byte 0 .8byte .LBB1514 .8byte .LBE1514 .8byte .LBB1517 .8byte .LBE1517 .8byte 0 .8byte 0 .8byte .LBB1520 .8byte .LBE1520 .8byte .LBB1523 .8byte .LBE1523 .8byte 0 .8byte 0 .8byte .LBB1526 .8byte .LBE1526 .8byte .LBB1529 .8byte .LBE1529 .8byte 0 .8byte 0 .8byte .LBB1534 .8byte .LBE1534 .8byte .LBB1537 .8byte .LBE1537 .8byte 0 .8byte 0 .8byte .LBB1540 .8byte .LBE1540 .8byte .LBB1543 .8byte .LBE1543 .8byte 0 .8byte 0 .8byte .LBB1546 .8byte .LBE1546 .8byte .LBB1549 .8byte .LBE1549 .8byte 0 .8byte 0 .8byte .LBB1552 .8byte .LBE1552 .8byte .LBB1558 .8byte .LBE1558 .8byte 0 .8byte 0 .8byte .LBB1555 .8byte .LBE1555 .8byte .LBB1559 .8byte .LBE1559 .8byte 0 .8byte 0 .8byte .LBB1562 .8byte .LBE1562 .8byte .LBB1565 .8byte .LBE1565 .8byte 0 .8byte 0 .8byte .LBB1588 .8byte .LBE1588 .8byte .LBB1592 .8byte .LBE1592 .8byte .LBB1593 .8byte .LBE1593 .8byte 0 .8byte 0 .8byte .LBB1604 .8byte .LBE1604 .8byte .LBB1607 .8byte .LBE1607 .8byte 0 .8byte 0 .8byte .LBB1608 .8byte .LBE1608 .8byte .LBB1614 .8byte .LBE1614 .8byte 0 .8byte 0 .8byte .LBB1611 .8byte .LBE1611 .8byte .LBB1615 .8byte .LBE1615 .8byte 0 .8byte 0 .8byte .LBB1616 .8byte .LBE1616 .8byte .LBB1619 .8byte .LBE1619 .8byte 0 .8byte 0 .8byte .LBB1620 .8byte .LBE1620 .8byte .LBB1624 .8byte .LBE1624 .8byte .LBB1628 .8byte .LBE1628 .8byte 0 .8byte 0 .8byte .LBB1625 .8byte .LBE1625 .8byte .LBB1629 .8byte .LBE1629 .8byte 0 .8byte 0 .8byte .LBB1632 .8byte .LBE1632 .8byte .LBB1635 .8byte .LBE1635 .8byte 0 .8byte 0 .8byte .LBB1638 .8byte .LBE1638 .8byte .LBB1641 .8byte .LBE1641 .8byte 0 .8byte 0 .8byte .LBB1646 .8byte .LBE1646 .8byte .LBB1649 .8byte .LBE1649 .8byte 0 .8byte 0 .8byte .LBB1652 .8byte .LBE1652 .8byte .LBB1655 .8byte .LBE1655 .8byte 0 .8byte 0 .8byte .LBB1658 .8byte .LBE1658 .8byte .LBB1661 .8byte .LBE1661 .8byte 0 .8byte 0 .8byte .LBB1666 .8byte .LBE1666 .8byte .LBB1778 .8byte .LBE1778 .8byte 0 .8byte 0 .8byte .LBB1673 .8byte .LBE1673 .8byte .LBB1781 .8byte .LBE1781 .8byte 0 .8byte 0 .8byte .LBB1680 .8byte .LBE1680 .8byte .LBB1683 .8byte .LBE1683 .8byte 0 .8byte 0 .8byte .LBB1688 .8byte .LBE1688 .8byte .LBB1691 .8byte .LBE1691 .8byte 0 .8byte 0 .8byte .LBB1702 .8byte .LBE1702 .8byte .LBB1705 .8byte .LBE1705 .8byte 0 .8byte 0 .8byte .LBB1708 .8byte .LBE1708 .8byte .LBB1711 .8byte .LBE1711 .8byte 0 .8byte 0 .8byte .LBB1716 .8byte .LBE1716 .8byte .LBB1719 .8byte .LBE1719 .8byte 0 .8byte 0 .8byte .LBB1722 .8byte .LBE1722 .8byte .LBB1725 .8byte .LBE1725 .8byte 0 .8byte 0 .8byte .LBB1730 .8byte .LBE1730 .8byte .LBB1733 .8byte .LBE1733 .8byte 0 .8byte 0 .8byte .LBB1738 .8byte .LBE1738 .8byte .LBB1741 .8byte .LBE1741 .8byte 0 .8byte 0 .8byte .LBB1746 .8byte .LBE1746 .8byte .LBB1749 .8byte .LBE1749 .8byte 0 .8byte 0 .8byte .LBB1752 .8byte .LBE1752 .8byte .LBB1755 .8byte .LBE1755 .8byte 0 .8byte 0 .8byte .LBB1758 .8byte .LBE1758 .8byte .LBB1761 .8byte .LBE1761 .8byte 0 .8byte 0 .8byte .LBB1766 .8byte .LBE1766 .8byte .LBB1769 .8byte .LBE1769 .8byte 0 .8byte 0 .8byte .LBB1772 .8byte .LBE1772 .8byte .LBB1775 .8byte .LBE1775 .8byte 0 .8byte 0 .8byte .LBB1786 .8byte .LBE1786 .8byte .LBB1789 .8byte .LBE1789 .8byte 0 .8byte 0 .8byte .LBB1794 .8byte .LBE1794 .8byte .LBB1797 .8byte .LBE1797 .8byte 0 .8byte 0 .8byte .LBB1798 .8byte .LBE1798 .8byte .LBB1801 .8byte .LBE1801 .8byte 0 .8byte 0 .8byte .LBB1804 .8byte .LBE1804 .8byte .LBB1807 .8byte .LBE1807 .8byte 0 .8byte 0 .8byte .LBB1812 .8byte .LBE1812 .8byte .LBB1815 .8byte .LBE1815 .8byte 0 .8byte 0 .8byte .LBB1816 .8byte .LBE1816 .8byte .LBB1819 .8byte .LBE1819 .8byte 0 .8byte 0 .8byte .LBB1824 .8byte .LBE1824 .8byte .LBB1827 .8byte .LBE1827 .8byte 0 .8byte 0 .8byte .LBB1830 .8byte .LBE1830 .8byte .LBB1833 .8byte .LBE1833 .8byte 0 .8byte 0 .8byte .LBB1838 .8byte .LBE1838 .8byte .LBB1841 .8byte .LBE1841 .8byte 0 .8byte 0 .8byte .LBB1846 .8byte .LBE1846 .8byte .LBB1850 .8byte .LBE1850 .8byte .LBB1851 .8byte .LBE1851 .8byte 0 .8byte 0 .8byte .LBB1856 .8byte .LBE1856 .8byte .LBB1867 .8byte .LBE1867 .8byte 0 .8byte 0 .8byte .LBB1859 .8byte .LBE1859 .8byte .LBB1862 .8byte .LBE1862 .8byte 0 .8byte 0 .8byte .LBB1863 .8byte .LBE1863 .8byte .LBB1866 .8byte .LBE1866 .8byte 0 .8byte 0 .8byte .LBB1894 .8byte .LBE1894 .8byte .LBB1903 .8byte .LBE1903 .8byte .LBB1946 .8byte .LBE1946 .8byte .LBB1950 .8byte .LBE1950 .8byte 0 .8byte 0 .8byte .LBB1899 .8byte .LBE1899 .8byte .LBB1922 .8byte .LBE1922 .8byte .LBB1926 .8byte .LBE1926 .8byte 0 .8byte 0 .8byte .LBB1914 .8byte .LBE1914 .8byte .LBB1918 .8byte .LBE1918 .8byte .LBB1919 .8byte .LBE1919 .8byte 0 .8byte 0 .8byte .LBB1923 .8byte .LBE1923 .8byte .LBB1927 .8byte .LBE1927 .8byte 0 .8byte 0 .8byte .LBB1938 .8byte .LBE1938 .8byte .LBB1942 .8byte .LBE1942 .8byte .LBB1943 .8byte .LBE1943 .8byte 0 .8byte 0 .8byte .LBB1947 .8byte .LBE1947 .8byte .LBB1951 .8byte .LBE1951 .8byte 0 .8byte 0 .8byte .LBB1962 .8byte .LBE1962 .8byte .LBB1966 .8byte .LBE1966 .8byte .LBB1967 .8byte .LBE1967 .8byte 0 .8byte 0 .8byte .LBB1970 .8byte .LBE1970 .8byte .LBB1976 .8byte .LBE1976 .8byte 0 .8byte 0 .8byte .LBB1973 .8byte .LBE1973 .8byte .LBB1977 .8byte .LBE1977 .8byte 0 .8byte 0 .8byte .LBB1980 .8byte .LBE1980 .8byte .LBB1983 .8byte .LBE1983 .8byte 0 .8byte 0 .8byte .LBB1990 .8byte .LBE1990 .8byte .LBB1993 .8byte .LBE1993 .8byte 0 .8byte 0 .8byte .LBB2002 .8byte .LBE2002 .8byte .LBB2005 .8byte .LBE2005 .8byte 0 .8byte 0 .8byte .LBB2010 .8byte .LBE2010 .8byte .LBB2013 .8byte .LBE2013 .8byte 0 .8byte 0 .8byte .LBB2020 .8byte .LBE2020 .8byte .LBB2023 .8byte .LBE2023 .8byte 0 .8byte 0 .8byte .LBB2024 .8byte .LBE2024 .8byte .LBB2030 .8byte .LBE2030 .8byte 0 .8byte 0 .8byte .LBB2027 .8byte .LBE2027 .8byte .LBB2031 .8byte .LBE2031 .8byte 0 .8byte 0 .8byte .LBB2040 .8byte .LBE2040 .8byte .LBB2043 .8byte .LBE2043 .8byte 0 .8byte 0 .8byte .LBB2046 .8byte .LBE2046 .8byte .LBB2049 .8byte .LBE2049 .8byte 0 .8byte 0 .8byte .LBB2052 .8byte .LBE2052 .8byte .LBB2055 .8byte .LBE2055 .8byte 0 .8byte 0 .8byte .LBB2058 .8byte .LBE2058 .8byte .LBB2061 .8byte .LBE2061 .8byte 0 .8byte 0 .8byte .LBB2066 .8byte .LBE2066 .8byte .LBB2093 .8byte .LBE2093 .8byte 0 .8byte 0 .8byte .LBB2071 .8byte .LBE2071 .8byte .LBB2074 .8byte .LBE2074 .8byte 0 .8byte 0 .8byte .LBB2077 .8byte .LBE2077 .8byte .LBB2080 .8byte .LBE2080 .8byte 0 .8byte 0 .8byte .LBB2083 .8byte .LBE2083 .8byte .LBB2086 .8byte .LBE2086 .8byte 0 .8byte 0 .8byte .LFB37 .8byte .LFE37 .8byte .LFB38 .8byte .LFE38 .8byte .LFB39 .8byte .LFE39 .8byte .LFB40 .8byte .LFE40 .8byte .LFB41 .8byte .LFE41 .8byte .LFB42 .8byte .LFE42 .8byte .LFB43 .8byte .LFE43 .8byte .LFB44 .8byte .LFE44 .8byte .LFB45 .8byte .LFE45 .8byte .LFB46 .8byte .LFE46 .8byte .LFB47 .8byte .LFE47 .8byte .LFB48 .8byte .LFE48 .8byte .LFB49 .8byte .LFE49 .8byte .LFB50 .8byte .LFE50 .8byte .LFB51 .8byte .LFE51 .8byte .LFB52 .8byte .LFE52 .8byte .LFB53 .8byte .LFE53 .8byte .LFB54 .8byte .LFE54 .8byte .LFB55 .8byte .LFE55 .8byte .LFB56 .8byte .LFE56 .8byte .LFB57 .8byte .LFE57 .8byte .LFB58 .8byte .LFE58 .8byte .LFB60 .8byte .LFE60 .8byte .LFB63 .8byte .LFE63 .8byte .LFB64 .8byte .LFE64 .8byte .LFB65 .8byte .LFE65 .8byte .LFB59 .8byte .LFE59 .8byte .LFB61 .8byte .LFE61 .8byte .LFB62 .8byte .LFE62 .8byte .LFB66 .8byte .LFE66 .8byte .LFB67 .8byte .LFE67 .8byte 0 .8byte 0 .section .debug_line,"",@progbits .Ldebug_line0: .section .debug_str,"MS",@progbits,1 .LASF145: .string "sys_uart_printf" .LASF83: .string "mctl_com_init" .LASF121: .string "tcksrx" .LASF55: .string "temp_trp13" .LASF117: .string "trasmax" .LASF151: .string "handler_super_standby" .LASF13: .string "size_t" .LASF82: .string "mctl_phy_ac_remapping" .LASF44: .string "type" .LASF90: .string "ccm_set_pll_sscg" .LASF70: .string "ch_index" .LASF130: .string "eye_delay_compensation" .LASF115: .string "trfc" .LASF12: .string "long long unsigned int" .LASF143: .string "addr" .LASF87: .string "PLL_ADDR" .LASF105: .string "tmod" .LASF65: .string "DRAMC_get_dram_size" .LASF131: .string "dram_disable_all_master" .LASF6: .string "long long int" .LASF7: .string "signed char" .LASF64: .string "rank1_base_addr" .LASF53: .string "auto_scan_dram_config" .LASF114: .string "trefi" .LASF4: .string "long int" .LASF26: .string "dram_tpr1" .LASF73: .string "ddr_type" .LASF139: .string "memcpy_self" .LASF39: .string "__dram_para_t" .LASF78: .string "remap_ddr3_bf" .LASF150: .string "get_pmu_exist" .LASF94: .string "auto_set_timing_para" .LASF69: .string "mctl_channel_init" .LASF141: .string "pdst" .LASF146: .string "GNU C17 8.1.0 -march=rv64gcvxthead -mabi=lp64 -g -Os -fno-common -ffunction-sections -fno-builtin -ffreestanding -fno-stack-protector -fno-delete-null-pointer-checks" .LASF135: .string "mask" .LASF126: .string "set_master_priority_pad" .LASF19: .string "dram_para1" .LASF149: .string "__DRAM_PARA" .LASF59: .string "byte1_state" .LASF68: .string "temp" .LASF61: .string "rank_num" .LASF56: .string "temp_para1" .LASF0: .string "unsigned int" .LASF62: .string "addr_line" .LASF124: .string "time_ns" .LASF106: .string "tccd" .LASF71: .string "dqs_gating_mode" .LASF2: .string "long unsigned int" .LASF10: .string "__u32" .LASF123: .string "auto_cal_timing" .LASF66: .string "dram_size0" .LASF67: .string "dram_size1" .LASF152: .string "rv_readl" .LASF96: .string "tdinit0" .LASF107: .string "tcke" .LASF3: .string "short unsigned int" .LASF48: .string "get_pmu" .LASF132: .string "dram_enable_all_master" .LASF144: .string "sdelay" .LASF154: .string "memcpy" .LASF42: .string "mctl_init" .LASF95: .string "ctrl_freq" .LASF81: .string "remap_ddr_d1" .LASF93: .string "ccm_get_sscg" .LASF60: .string "auto_scan_dram_size" .LASF108: .string "trrd" .LASF102: .string "tcwl" .LASF50: .string "dramc_simple_wr_test" .LASF104: .string "tmrd" .LASF20: .string "dram_para2" .LASF14: .string "long double" .LASF46: .string "reg_val" .LASF86: .string "PLL_CTRL_ADDR" .LASF118: .string "twr2rd" .LASF129: .string "ic_dxN_wr_delay" .LASF133: .string "mctl_vrefzq_init" .LASF18: .string "dram_odt_en" .LASF140: .string "psrc" .LASF84: .string "mctl_sys_init" .LASF147: .string "mctl_hal.c" .LASF21: .string "dram_mr0" .LASF22: .string "dram_mr1" .LASF23: .string "dram_mr2" .LASF24: .string "dram_mr3" .LASF58: .string "byte0_state" .LASF1: .string "float" .LASF51: .string "test_length" .LASF101: .string "wr_latency" .LASF119: .string "trd2wr" .LASF54: .string "auto_scan_dram_rank_width" .LASF109: .string "trcd" .LASF77: .string "remap_ddr3_9" .LASF49: .string "mctl_core_init" .LASF8: .string "unsigned char" .LASF63: .string "rank_base_addr" .LASF120: .string "tckesr" .LASF25: .string "dram_tpr0" .LASF9: .string "short int" .LASF27: .string "dram_tpr2" .LASF28: .string "dram_tpr3" .LASF29: .string "dram_tpr4" .LASF30: .string "dram_tpr5" .LASF31: .string "dram_tpr6" .LASF32: .string "dram_tpr7" .LASF33: .string "dram_tpr8" .LASF34: .string "dram_tpr9" .LASF47: .string "dram_size" .LASF40: .string "ret_val" .LASF138: .string "dram_udelay" .LASF15: .string "dram_clk" .LASF127: .string "bit_delay_compensation" .LASF125: .string "value" .LASF134: .string "paraconfig" .LASF110: .string "tfaw" .LASF142: .string "set_ddr_voltage" .LASF155: .string "__builtin_memcpy" .LASF88: .string "wave_bot" .LASF11: .string "__u64" .LASF76: .string "remap_ddr3_8" .LASF5: .string "char" .LASF92: .string "PLL_PAT" .LASF97: .string "tdinit1" .LASF98: .string "tdinit2" .LASF99: .string "tdinit3" .LASF153: .string "rv_writel" .LASF52: .string "half_size" .LASF79: .string "remap_ddr3_a" .LASF111: .string "tras" .LASF136: .string "dram_vol_set" .LASF45: .string "para" .LASF57: .string "dqs_gate_detect" .LASF43: .string "init_DRAM" .LASF91: .string "PLL_CTRL" .LASF85: .string "ccm_set_pll_ddr_clk" .LASF35: .string "dram_tpr10" .LASF36: .string "dram_tpr11" .LASF37: .string "dram_tpr12" .LASF38: .string "dram_tpr13" .LASF75: .string "remap_ddr3_c" .LASF137: .string "vol_val" .LASF72: .string "rval" .LASF16: .string "dram_type" .LASF100: .string "t_rdata_en" .LASF113: .string "trtp" .LASF148: .string "/tina-d1/lichee/brandy-2.0/spl/drivers/dram/sun20iw1p1/lib-dram" .LASF41: .string "dram_para" .LASF103: .string "tmrw" .LASF80: .string "remap_ddr2" .LASF74: .string "remap_ddr3" .LASF17: .string "dram_zq" .LASF128: .string "ic_dxN_rd_delay" .LASF89: .string "pll_clk" .LASF122: .string "tcksre" .LASF116: .string "twtp" .LASF112: .string "twtr" .ident "GCC: (C-SKY RISCV Tools V1.8.3 B20200528) 8.1.0" xfel-1.3.5/payloads/d1_f133/d1-ddr/source/memcpy.S000066400000000000000000000030621512120643700213250ustar00rootroot00000000000000#include .global memcpy .type memcpy, %function .align 3 memcpy: move t6, a0 sltiu a3, a2, 128 bnez a3, 4f andi a3, t6, REGSZ - 1 andi a4, a1, REGSZ - 1 bne a3, a4, 4f beqz a3, 2f andi a3, a1, ~(REGSZ - 1) addi a3, a3, REGSZ sub a4, a3, a1 1: lb a5, 0(a1) addi a1, a1, 1 sb a5, 0(t6) addi t6, t6, 1 bltu a1, a3, 1b sub a2, a2, a4 2: andi a4, a2, ~((16 * REGSZ) - 1) beqz a4, 4f add a3, a1, a4 3: LREG a4, 0(a1) LREG a5, REGSZ(a1) LREG a6, 2 * REGSZ(a1) LREG a7, 3 * REGSZ(a1) LREG t0, 4 * REGSZ(a1) LREG t1, 5 * REGSZ(a1) LREG t2, 6 * REGSZ(a1) LREG t3, 7 * REGSZ(a1) LREG t4, 8 * REGSZ(a1) LREG t5, 9 * REGSZ(a1) SREG a4, 0(t6) SREG a5, REGSZ(t6) SREG a6, 2 * REGSZ(t6) SREG a7, 3 * REGSZ(t6) SREG t0, 4 * REGSZ(t6) SREG t1, 5 * REGSZ(t6) SREG t2, 6 * REGSZ(t6) SREG t3, 7 * REGSZ(t6) SREG t4, 8 * REGSZ(t6) SREG t5, 9 * REGSZ(t6) LREG a4, 10 * REGSZ(a1) LREG a5, 11 * REGSZ(a1) LREG a6, 12 * REGSZ(a1) LREG a7, 13 * REGSZ(a1) LREG t0, 14 * REGSZ(a1) LREG t1, 15 * REGSZ(a1) addi a1, a1, 16 * REGSZ SREG a4, 10 * REGSZ(t6) SREG a5, 11 * REGSZ(t6) SREG a6, 12 * REGSZ(t6) SREG a7, 13 * REGSZ(t6) SREG t0, 14 * REGSZ(t6) SREG t1, 15 * REGSZ(t6) addi t6, t6, 16 * REGSZ bltu a1, a3, 3b andi a2, a2, (16 * REGSZ) - 1 4: beqz a2, 6f add a3, a1, a2 or a5, a1, t6 or a5, a5, a3 andi a5, a5, 3 bnez a5, 5f 7: lw a4, 0(a1) addi a1, a1, 4 sw a4, 0(t6) addi t6, t6, 4 bltu a1, a3, 7b ret 5: lb a4, 0(a1) addi a1, a1, 1 sb a4, 0(t6) addi t6, t6, 1 bltu a1, a3, 5b 6: ret xfel-1.3.5/payloads/d1_f133/d1-ddr/source/memset.S000066400000000000000000000030641512120643700213270ustar00rootroot00000000000000#include .global memset .type memset, %function .align 3 memset: move t0, a0 sltiu a3, a2, 16 bnez a3, 4f addi a3, t0, REGSZ - 1 andi a3, a3, ~(REGSZ - 1) beq a3, t0, 2f sub a4, a3, t0 1: sb a1, 0(t0) addi t0, t0, 1 bltu t0, a3, 1b sub a2, a2, a4 2: andi a1, a1, 0xff slli a3, a1, 8 or a1, a3, a1 slli a3, a1, 16 or a1, a3, a1 #if __riscv_xlen == 64 slli a3, a1, 32 or a1, a3, a1 #endif andi a4, a2, ~(REGSZ - 1) add a3, t0, a4 andi a4, a4, 31 * REGSZ beqz a4, 3f neg a4, a4 addi a4, a4, 32 * REGSZ sub t0, t0, a4 la a5, 3f #if __riscv_xlen == 64 srli a4, a4, 1 #endif add a5, a5, a4 jr a5 3: SREG a1, 0(t0) SREG a1, REGSZ(t0) SREG a1, 2 * REGSZ(t0) SREG a1, 3 * REGSZ(t0) SREG a1, 4 * REGSZ(t0) SREG a1, 5 * REGSZ(t0) SREG a1, 6 * REGSZ(t0) SREG a1, 7 * REGSZ(t0) SREG a1, 8 * REGSZ(t0) SREG a1, 9 * REGSZ(t0) SREG a1, 10 * REGSZ(t0) SREG a1, 11 * REGSZ(t0) SREG a1, 12 * REGSZ(t0) SREG a1, 13 * REGSZ(t0) SREG a1, 14 * REGSZ(t0) SREG a1, 15 * REGSZ(t0) SREG a1, 16 * REGSZ(t0) SREG a1, 17 * REGSZ(t0) SREG a1, 18 * REGSZ(t0) SREG a1, 19 * REGSZ(t0) SREG a1, 20 * REGSZ(t0) SREG a1, 21 * REGSZ(t0) SREG a1, 22 * REGSZ(t0) SREG a1, 23 * REGSZ(t0) SREG a1, 24 * REGSZ(t0) SREG a1, 25 * REGSZ(t0) SREG a1, 26 * REGSZ(t0) SREG a1, 27 * REGSZ(t0) SREG a1, 28 * REGSZ(t0) SREG a1, 29 * REGSZ(t0) SREG a1, 30 * REGSZ(t0) SREG a1, 31 * REGSZ(t0) addi t0, t0, 32 * REGSZ bltu t0, a3, 3b andi a2, a2, REGSZ - 1 4: beqz a2, 6f add a3, t0, a2 5: sb a1, 0(t0) addi t0, t0, 1 bltu t0, a3, 5b 6: ret xfel-1.3.5/payloads/d1_f133/d1-ddr/source/start.S000066400000000000000000000037671512120643700212040ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include #include .global _start _start: li t1, 0x1 << 22 csrs mxstatus, t1 li t1, 0x30013 csrs mcor, t1 j reset ddr_param: .word 792 .word 3 .word 0x7b7bfb .word 0x01 .word 0x000010d2 .word 0x0000 .word 0x1c70 .word 0x042 .word 0x18 .word 0x0 .word 0x004A2195 .word 0x02423190 .word 0x0008B061 .word 0xB4787896 .word 0x0 .word 0x48484848 .word 0x00000048 .word 0x1620121e .word 0x0 .word 0x0 .word 0x0 .word 0x00870000 .word 0x00000024 .word 0x34050100 .word 0, 0, 0, 0, 0, 0, 0, 0 reset: addi sp, sp, -32 sd s0, 8(sp) sd s1, 16(sp) sd ra, 24(sp) mv s0, a0 li t0, 0x07090108 sw zero, (t0) jal sys_uart_init jal sys_clock_init la a0, ddr_param jal sys_dram_init ld ra, 24(sp) ld s0, 8(sp) ld s1, 16(sp) addi sp, sp, 32 ret xfel-1.3.5/payloads/d1_f133/d1-ddr/source/sys-clock.c000066400000000000000000000135571512120643700217740ustar00rootroot00000000000000/* * sys-clock.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include #include static inline uint64_t counter(void) { uint64_t cnt; __asm__ __volatile__("csrr %0, time\n" : "=r"(cnt) :: "memory"); return cnt; } void sdelay(unsigned long us) { uint64_t t1 = counter(); uint64_t t2 = t1 + us * 24; do { t1 = counter(); } while(t2 >= t1); } static void set_pll_cpux_axi(void) { uint32_t val; /* Select cpux clock src to osc24m, axi divide ratio is 3, system apb clk ratio is 4 */ write32(D1_CCU_BASE + CCU_RISCV_CLK_REG, (0 << 24) | (3 << 8) | (1 << 0)); sdelay(1); /* Disable pll gating */ val = read32(D1_CCU_BASE + CCU_PLL_CPU_CTRL_REG); val &= ~(1 << 27); write32(D1_CCU_BASE + CCU_PLL_CPU_CTRL_REG, val); /* Enable pll ldo */ val = read32(D1_CCU_BASE + CCU_PLL_CPU_CTRL_REG); val |= (1 << 30); write32(D1_CCU_BASE + CCU_PLL_CPU_CTRL_REG, val); sdelay(5); /* Set default clk to 1008mhz */ val = read32(D1_CCU_BASE + CCU_PLL_CPU_CTRL_REG); val &= ~((0x3 << 16) | (0xff << 8) | (0x3 << 0)); val |= (41 << 8); write32(D1_CCU_BASE + CCU_PLL_CPU_CTRL_REG, val); /* Lock enable */ val = read32(D1_CCU_BASE + CCU_PLL_CPU_CTRL_REG); val |= (1 << 29); write32(D1_CCU_BASE + CCU_PLL_CPU_CTRL_REG, val); /* Enable pll */ val = read32(D1_CCU_BASE + CCU_PLL_CPU_CTRL_REG); val |= (1 << 31); write32(D1_CCU_BASE + CCU_PLL_CPU_CTRL_REG, val); /* Wait pll stable */ while(!(read32(D1_CCU_BASE + CCU_PLL_CPU_CTRL_REG) & (0x1 << 28))); sdelay(20); /* Enable pll gating */ val = read32(D1_CCU_BASE + CCU_PLL_CPU_CTRL_REG); val |= (1 << 27); write32(D1_CCU_BASE + CCU_PLL_CPU_CTRL_REG, val); /* Lock disable */ val = read32(D1_CCU_BASE + CCU_PLL_CPU_CTRL_REG); val &= ~(1 << 29); write32(D1_CCU_BASE + CCU_PLL_CPU_CTRL_REG, val); sdelay(1); /* Set and change cpu clk src */ val = read32(D1_CCU_BASE + CCU_RISCV_CLK_REG); val &= ~(0x07 << 24 | 0x3 << 8 | 0xf << 0); val |= (0x05 << 24 | 0x1 << 8); write32(D1_CCU_BASE + CCU_RISCV_CLK_REG, val); sdelay(1); } static void set_pll_periph0(void) { uint32_t val; /* Periph0 has been enabled */ if(read32(D1_CCU_BASE + CCU_PLL_PERI0_CTRL_REG) & (1 << 31)) return; /* Change psi src to osc24m */ val = read32(D1_CCU_BASE + CCU_PSI_CLK_REG); val &= (~(0x3 << 24)); write32(val, D1_CCU_BASE + CCU_PSI_CLK_REG); /* Set default val */ write32(D1_CCU_BASE + CCU_PLL_PERI0_CTRL_REG, 0x63 << 8); /* Lock enable */ val = read32(D1_CCU_BASE + CCU_PLL_PERI0_CTRL_REG); val |= (1 << 29); write32(D1_CCU_BASE + CCU_PLL_PERI0_CTRL_REG, val); /* Enabe pll 600m(1x) 1200m(2x) */ val = read32(D1_CCU_BASE + CCU_PLL_PERI0_CTRL_REG); val |= (1 << 31); write32(D1_CCU_BASE + CCU_PLL_PERI0_CTRL_REG, val); /* Wait pll stable */ while(!(read32(D1_CCU_BASE + CCU_PLL_PERI0_CTRL_REG) & (0x1 << 28))); sdelay(20); /* Lock disable */ val = read32(D1_CCU_BASE + CCU_PLL_PERI0_CTRL_REG); val &= ~(1 << 29); write32(D1_CCU_BASE + CCU_PLL_PERI0_CTRL_REG, val); } static void set_ahb(void) { write32(D1_CCU_BASE + CCU_PSI_CLK_REG, (2 << 0) | (0 << 8)); write32(D1_CCU_BASE + CCU_PSI_CLK_REG, read32(D1_CCU_BASE + CCU_PSI_CLK_REG) | (0x03 << 24)); sdelay(1); } static void set_apb(void) { write32(D1_CCU_BASE + CCU_APB0_CLK_REG, (2 << 0) | (1 << 8)); write32(D1_CCU_BASE + CCU_APB0_CLK_REG, (0x03 << 24) | read32(D1_CCU_BASE + CCU_APB0_CLK_REG)); sdelay(1); } static void set_dma(void) { /* Dma reset */ write32(D1_CCU_BASE + CCU_DMA_BGR_REG, read32(D1_CCU_BASE + CCU_DMA_BGR_REG) | (1 << 16)); sdelay(20); /* Enable gating clock for dma */ write32(D1_CCU_BASE + CCU_DMA_BGR_REG, read32(D1_CCU_BASE + CCU_DMA_BGR_REG) | (1 << 0)); } static void set_mbus(void) { uint32_t val; /* Reset mbus domain */ val = read32(D1_CCU_BASE + CCU_MBUS_CLK_REG); val |= (0x1 << 30); write32(D1_CCU_BASE + CCU_MBUS_CLK_REG, val); sdelay(1); /* Enable mbus master clock gating */ write32(D1_CCU_BASE + CCU_MBUS_MAT_CLK_GATING_REG, 0x00000d87); } static void set_module(virtual_addr_t addr) { uint32_t val; if(!(read32(addr) & (1 << 31))) { val = read32(addr); write32(addr, val | (1 << 31) | (1 << 30)); /* Lock enable */ val = read32(addr); val |= (1 << 29); write32(addr, val); /* Wait pll stable */ while(!(read32(addr) & (0x1 << 28))); sdelay(20); /* Lock disable */ val = read32(addr); val &= ~(1 << 29); write32(addr, val); } } void sys_clock_init(void) { set_pll_cpux_axi(); set_pll_periph0(); set_ahb(); set_apb(); set_dma(); set_mbus(); set_module(D1_CCU_BASE + CCU_PLL_PERI0_CTRL_REG); set_module(D1_CCU_BASE + CCU_PLL_VIDEO0_CTRL_REG); set_module(D1_CCU_BASE + CCU_PLL_VIDEO1_CTRL_REG); set_module(D1_CCU_BASE + CCU_PLL_VE_CTRL); set_module(D1_CCU_BASE + CCU_PLL_AUDIO0_CTRL_REG); set_module(D1_CCU_BASE + CCU_PLL_AUDIO1_CTRL_REG); } xfel-1.3.5/payloads/d1_f133/d1-ddr/source/sys-dram.c000066400000000000000000000025311512120643700216120ustar00rootroot00000000000000/* * sys-dram.c * * Copyright(c) 2007-2020 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include extern int init_DRAM(int type, void * param); void sys_dram_init(void * param) { init_DRAM(0, param); } xfel-1.3.5/payloads/d1_f133/d1-ddr/source/sys-uart.c000066400000000000000000000076201512120643700216460ustar00rootroot00000000000000/* * sys-uart.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include void sys_uart_init(void) { virtual_addr_t addr; u32_t val; /* Config GPIOB8 and GPIOB9 to txd0 and rxd0 */ addr = 0x02000030 + 0x04; val = read32(addr); val &= ~(0xf << ((8 & 0x7) << 2)); val |= ((0x6 & 0xf) << ((8 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((9 & 0x7) << 2)); val |= ((0x6 & 0xf) << ((9 & 0x7) << 2)); write32(addr, val); /* Open the clock gate for uart0 */ addr = 0x0200190c; val = read32(addr); val |= 1 << 0; write32(addr, val); /* Deassert uart0 reset */ addr = 0x0200190c; val = read32(addr); val |= 1 << 16; write32(addr, val); /* Config uart0 to 115200-8-1-0 */ addr = 0x02500000; write32(addr + 0x04, 0x0); write32(addr + 0x08, 0xf7); write32(addr + 0x10, 0x0); val = read32(addr + 0x0c); val |= (1 << 7); write32(addr + 0x0c, val); write32(addr + 0x00, 0xd & 0xff); write32(addr + 0x04, (0xd >> 8) & 0xff); val = read32(addr + 0x0c); val &= ~(1 << 7); write32(addr + 0x0c, val); val = read32(addr + 0x0c); val &= ~0x1f; val |= (0x3 << 0) | (0 << 2) | (0x0 << 3); write32(addr + 0x0c, val); } void sys_uart_putc(char c) { virtual_addr_t addr = 0x02500000; while((read32(addr + 0x7c) & (0x1 << 1)) == 0); write32(addr + 0x00, c); } static int vpf_str_to_num(const char * fmt, int * num) { const char * p; int res, d, isd; res = 0; for(p = fmt; *fmt != '\0'; p++) { isd = (*p >= '0' && *p <= '9'); if(!isd) break; d = *p - '0'; res *= 10; res += d; } *num = res; return ((int)(p - fmt)); } static void vpf_num_to_str(uint32_t a, int ish, int pl, int pc) { char buf[32]; uint32_t base; int idx, i, t; for(i = 0; i < sizeof(buf); i++) buf[i] = pc; base = 10; if(ish) base = 16; idx = 0; do { t = a % base; if(t >= 10) buf[idx] = t - 10 + 'a'; else buf[idx] = t + '0'; a /= base; idx++; } while (a > 0); if(pl > 0) { if(pl >= sizeof(buf)) pl = sizeof(buf) - 1; if(idx < pl) idx = pl; } buf[idx] = '\0'; for(i = idx - 1; i >= 0; i--) sys_uart_putc(buf[i]); } static int vpf(const char * fmt, va_list va) { const char * p, * q; int f, c, vai, pl, pc, i; unsigned char t; pc = ' '; for(p = fmt; *p != '\0'; p++) { f = 0; pl = 0; c = *p; q = p; if(*p == '%') { q = p; p++; if(*p >= '0' && *p <= '9') p += vpf_str_to_num(p, &pl); f = *p; } if((f == 'd') || (f == 'x')) { vai = va_arg(va, int); vpf_num_to_str(vai, f == 'x', pl, pc); } else { for(i = 0; i < (p - q); i++) sys_uart_putc(q[i]); t = (unsigned char)(f != 0 ? f : c); sys_uart_putc(t); } } return 0; } int sys_uart_printf(const char * fmt, ...) { va_list va; va_start(va, fmt); vpf(fmt, va); va_end(va); return 0; } xfel-1.3.5/payloads/d1_f133/f133-ddr/000077500000000000000000000000001512120643700165565ustar00rootroot00000000000000xfel-1.3.5/payloads/d1_f133/f133-ddr/.gitignore000066400000000000000000000000731512120643700205460ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/d1_f133/f133-ddr/Makefile000066400000000000000000000056141512120643700202240ustar00rootroot00000000000000# # Top makefile # CROSS ?= ~/Xuantie-900-gcc-elf-newlib-x86_64-V2.2.4/bin/riscv64-unknown-elf- NAME := f133-ddr # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 CFLAGS := -g -ggdb -Wall -O3 CXXFLAGS := -g -ggdb -Wall -O3 LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -march=rv64gvxthead -mabi=lp64d -mcmodel=medany -fno-stack-protector LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/d1_f133/f133-ddr/include/000077500000000000000000000000001512120643700202015ustar00rootroot00000000000000xfel-1.3.5/payloads/d1_f133/f133-ddr/include/byteorder.h000066400000000000000000000043611512120643700223550ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/d1_f133/f133-ddr/include/endian.h000066400000000000000000000007401512120643700216110ustar00rootroot00000000000000#ifndef __RISCV64_ENDIAN_H__ #define __RISCV64_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __RISCV64_ENDIAN_H__ */ xfel-1.3.5/payloads/d1_f133/f133-ddr/include/f133/000077500000000000000000000000001512120643700206555ustar00rootroot00000000000000xfel-1.3.5/payloads/d1_f133/f133-ddr/include/f133/reg-ccu.h000066400000000000000000000050761512120643700223630ustar00rootroot00000000000000#ifndef __F133_REG_CCU_H__ #define __F133_REG_CCU_H__ #define F133_CCU_BASE (0x02001000) #define CCU_PLL_CPU_CTRL_REG (0x000) #define CCU_PLL_DDR_CTRL_REG (0x010) #define CCU_PLL_PERI0_CTRL_REG (0x020) #define CCU_PLL_PERI1_CTRL_REG (0x028) #define CCU_PLL_GPU_CTRL_REG (0x030) #define CCU_PLL_VIDEO0_CTRL_REG (0x040) #define CCU_PLL_VIDEO1_CTRL_REG (0x048) #define CCU_PLL_VE_CTRL (0x058) #define CCU_PLL_DE_CTRL (0x060) #define CCU_PLL_HSIC_CTRL (0x070) #define CCU_PLL_AUDIO0_CTRL_REG (0x078) #define CCU_PLL_AUDIO1_CTRL_REG (0x080) #define CCU_PLL_DDR_PAT0_CTRL_REG (0x110) #define CCU_PLL_DDR_PAT1_CTRL_REG (0x114) #define CCU_PLL_PERI0_PAT0_CTRL_REG (0x120) #define CCU_PLL_PERI0_PAT1_CTRL_REG (0x124) #define CCU_PLL_PERI1_PAT0_CTRL_REG (0x128) #define CCU_PLL_PERI1_PAT1_CTRL_REG (0x12c) #define CCU_PLL_GPU_PAT0_CTRL_REG (0x130) #define CCU_PLL_GPU_PAT1_CTRL_REG (0x134) #define CCU_PLL_VIDEO0_PAT0_CTRL_REG (0x140) #define CCU_PLL_VIDEO0_PAT1_CTRL_REG (0x144) #define CCU_PLL_VIDEO1_PAT0_CTRL_REG (0x148) #define CCU_PLL_VIDEO1_PAT1_CTRL_REG (0x14c) #define CCU_PLL_VE_PAT0_CTRL_REG (0x158) #define CCU_PLL_VE_PAT1_CTRL_REG (0x15c) #define CCU_PLL_DE_PAT0_CTRL_REG (0x160) #define CCU_PLL_DE_PAT1_CTRL_REG (0x164) #define CCU_PLL_HSIC_PAT0_CTRL_REG (0x170) #define CCU_PLL_HSIC_PAT1_CTRL_REG (0x174) #define CCU_PLL_AUDIO0_PAT0_CTRL_REG (0x178) #define CCU_PLL_AUDIO0_PAT1_CTRL_REG (0x17c) #define CCU_PLL_AUDIO1_PAT0_CTRL_REG (0x180) #define CCU_PLL_AUDIO1_PAT1_CTRL_REG (0x184) #define CCU_PLL_CPU_BIAS_REG (0x300) #define CCU_PLL_DDR_BIAS_REG (0x310) #define CCU_PLL_PERI0_BIAS_REG (0x320) #define CCU_PLL_PERI1_BIAS_REG (0x328) #define CCU_PLL_GPU_BIAS_REG (0x330) #define CCU_PLL_VIDEO0_BIAS_REG (0x340) #define CCU_PLL_VIDEO1_BIAS_REG (0x348) #define CCU_PLL_VE_BIAS_REG (0x358) #define CCU_PLL_DE_BIAS_REG (0x360) #define CCU_PLL_HSIC_BIAS_REG (0x370) #define CCU_PLL_AUDIO0_BIAS_REG (0x378) #define CCU_PLL_AUDIO1_BIAS_REG (0x380) #define CCU_PLL_CPU_TUN_REG (0x400) #define CCU_CPU_AXI_CFG_REG (0x500) #define CCU_CPU_GATING_REG (0x504) #define CCU_PSI_CLK_REG (0x510) #define CCU_AHB3_CLK_REG (0x51c) #define CCU_APB0_CLK_REG (0x520) #define CCU_APB1_CLK_REG (0x524) #define CCU_MBUS_CLK_REG (0x540) #define CCU_DMA_BGR_REG (0x70c) #define CCU_DRAM_CLK_REG (0x800) #define CCU_MBUS_MAT_CLK_GATING_REG (0x804) #define CCU_DRAM_BGR_REG (0x80c) #define CCU_RISCV_CLK_REG (0xd00) #define CCU_RISCV_GATING_REG (0xd04) #define CCU_RISCV_CFG_BGR_REG (0xd0c) #endif /* __F133_REG_CCU_H__ */ xfel-1.3.5/payloads/d1_f133/f133-ddr/include/io.h000066400000000000000000000016401512120643700207620ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/d1_f133/f133-ddr/include/linkage.h000066400000000000000000000005461512120643700217710ustar00rootroot00000000000000#ifndef __RISCV64_LINKAGE_H__ #define __RISCV64_LINKAGE_H__ #ifdef __cplusplus extern "C" { #endif #if __riscv_xlen == 64 #define LREG ld #define SREG sd #define REGSZ 8 #define RVPTR .dword #elif __riscv_xlen == 32 #define LREG lw #define SREG sw #define REGSZ 4 #define RVPTR .word #endif #ifdef __cplusplus } #endif #endif /* __RISCV64_LINKAGE_H__ */ xfel-1.3.5/payloads/d1_f133/f133-ddr/include/riscv64.h000066400000000000000000000054311512120643700216550ustar00rootroot00000000000000#ifndef __RISCV64_H__ #define __RISCV64_H__ #ifdef __cplusplus extern "C" { #endif #define MSTATUS_UIE (1 << 0) #define MSTATUS_SIE (1 << 1) #define MSTATUS_MIE (1 << 3) #define MSTATUS_UPIE (1 << 4) #define MSTATUS_SPIE (1 << 5) #define MSTATUS_MPIE (1 << 7) #define MSTATUS_SPP (1 << 8) #define MSTATUS_MPP (3 << 11) #define MSTATUS_FS (3 << 13) #define MSTATUS_XS (3 << 15) #define MSTATUS_MPRV (1 << 17) #define MSTATUS_SUM (1 << 18) #define MSTATUS_MXR (1 << 19) #define MSTATUS_TVM (1 << 20) #define MSTATUS_TW (1 << 21) #define MSTATUS_TSR (1 << 22) #define MSTATUS32_SD (1 << 31) #define MSTATUS_UXL (3ULL << 32) #define MSTATUS_SXL (3ULL << 34) #define MSTATUS64_SD (1ULL << 63) #define MIP_USIP (1 << 0) #define MIP_SSIP (1 << 1) #define MIP_MSIP (1 << 3) #define MIP_UTIP (1 << 4) #define MIP_STIP (1 << 5) #define MIP_MTIP (1 << 7) #define MIP_UEIP (1 << 8) #define MIP_SEIP (1 << 9) #define MIP_MEIP (1 << 11) #define MIE_USIE (1 << 0) #define MIE_SSIE (1 << 1) #define MIE_MSIE (1 << 3) #define MIE_UTIE (1 << 4) #define MIE_STIE (1 << 5) #define MIE_MTIE (1 << 7) #define MIE_UEIE (1 << 8) #define MIE_SEIE (1 << 9) #define MIE_MEIE (1 << 11) #define csr_swap(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrrw %0, " #csr ", %1" \ : "=r" (__v) : "rK" (__v) \ : "memory"); \ __v; \ }) #define csr_read(csr) \ ({ \ register unsigned long __v; \ __asm__ __volatile__ ("csrr %0, " #csr \ : "=r" (__v) : \ : "memory"); \ __v; \ }) #define csr_write(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrw " #csr ", %0" \ : : "rK" (__v) \ : "memory"); \ }) #define csr_read_set(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrrs %0, " #csr ", %1" \ : "=r" (__v) : "rK" (__v) \ : "memory"); \ __v; \ }) #define csr_set(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrs " #csr ", %0" \ : : "rK" (__v) \ : "memory"); \ }) #define csr_read_clear(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrrc %0, " #csr ", %1" \ : "=r" (__v) : "rK" (__v) \ : "memory"); \ __v; \ }) #define csr_clear(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrc " #csr ", %0" \ : : "rK" (__v) \ : "memory"); \ }) #ifdef __cplusplus } #endif #endif /* __RISCV64_H__ */ xfel-1.3.5/payloads/d1_f133/f133-ddr/include/stdarg.h000066400000000000000000000010541512120643700216360ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/d1_f133/f133-ddr/include/stddef.h000066400000000000000000000026101512120643700216220ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/d1_f133/f133-ddr/include/stdint.h000066400000000000000000000010161512120643700216550ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/d1_f133/f133-ddr/include/string.h000066400000000000000000000004241512120643700216600ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/d1_f133/f133-ddr/include/types.h000066400000000000000000000021661512120643700215230ustar00rootroot00000000000000#ifndef __RISCV64_TYPES_H__ #define __RISCV64_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed long long ptrdiff_t; typedef signed long long intptr_t; typedef unsigned long long uintptr_t; typedef unsigned long long size_t; typedef signed long long ssize_t; typedef signed long off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned long irq_flags_t; typedef unsigned long long virtual_addr_t; typedef unsigned long long virtual_size_t; typedef unsigned long long physical_addr_t; typedef unsigned long long physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __RISCV64_TYPES_H__ */ xfel-1.3.5/payloads/d1_f133/f133-ddr/include/xboot.h000066400000000000000000000004731512120643700215110ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/d1_f133/f133-ddr/link.ld000066400000000000000000000031051512120643700200330ustar00rootroot00000000000000OUTPUT_FORMAT("elf64-littleriscv", "elf64-littleriscv", "elf64-littleriscv") OUTPUT_ARCH(riscv) ENTRY(_start) STACK_SIZE = 0x400; MEMORY { ram : org = 0x00020000, len = 0x00008000 /* 32KB */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text*) .obj/source/memcpy.o (.text*) .obj/source/memset.o (.text*) .obj/source/mctl_hal.o (.text*) .obj/source/sys-uart.o (.text*) .obj/source/sys-clock.o (.text*) .obj/source/sys-dram.o (.text*) *(.text*) *(.iplt) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(.rodata*) *(.srodata*) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); PROVIDE(__global_pointer$ = . + 0x800); *(.sdata*) *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(16) (NOLOAD) : { PROVIDE(__stack_start = .); . += STACK_SIZE; . = ALIGN(16); PROVIDE(__stack_end = .); } > ram /DISCARD/ : { *(.dynsym) } /DISCARD/ : { *(.dynstr*) } /DISCARD/ : { *(.dynamic*) } /DISCARD/ : { *(.plt*) } /DISCARD/ : { *(.interp*) } /DISCARD/ : { *(.gnu*) } } xfel-1.3.5/payloads/d1_f133/f133-ddr/source/000077500000000000000000000000001512120643700200565ustar00rootroot00000000000000xfel-1.3.5/payloads/d1_f133/f133-ddr/source/mctl_hal.S000066400000000000000000017511461512120643700220040ustar00rootroot00000000000000 .file "mctl_hal.c" .option nopic .text .Ltext0: .cfi_sections .debug_frame .section .text.set_ddr_voltage,"ax",@progbits .align 1 .weak set_ddr_voltage .type set_ddr_voltage, @function set_ddr_voltage: .LFB37: .file 1 "mctl_hal.c" .loc 1 29 1 .cfi_startproc .LVL0: .loc 1 30 1 ret .cfi_endproc .LFE37: .size set_ddr_voltage, .-set_ddr_voltage .section .text.handler_super_standby,"ax",@progbits .align 1 .weak handler_super_standby .type handler_super_standby, @function handler_super_standby: .LFB38: .loc 1 33 1 .cfi_startproc .loc 1 34 1 ret .cfi_endproc .LFE38: .size handler_super_standby, .-handler_super_standby .section .text.get_pmu_exist,"ax",@progbits .align 1 .weak get_pmu_exist .type get_pmu_exist, @function get_pmu_exist: .LFB39: .loc 1 36 1 .cfi_startproc .loc 1 37 1 .loc 1 38 1 is_stmt 0 li a0,-1 ret .cfi_endproc .LFE39: .size get_pmu_exist, .-get_pmu_exist .section .text.memcpy_self,"ax",@progbits .align 1 .globl memcpy_self .type memcpy_self, @function memcpy_self: .LFB40: .loc 1 41 1 is_stmt 1 .cfi_startproc .LVL1: .loc 1 44 2 .loc 1 45 2 .loc 1 46 2 .loc 1 46 7 is_stmt 0 li a5,0 .LVL2: .L5: bne a2,a5,.L6 .loc 1 49 1 ret .L6: .loc 1 47 3 is_stmt 1 .LVL3: .loc 1 47 13 is_stmt 0 lrbu a4,a1,a5,0 .loc 1 47 11 srb a4,a0,a5,0 addi a5,a5,1 .LVL4: j .L5 .cfi_endproc .LFE40: .size memcpy_self, .-memcpy_self .section .text.dram_udelay,"ax",@progbits .align 1 .globl dram_udelay .type dram_udelay, @function dram_udelay: .LFB41: .loc 1 58 1 is_stmt 1 .cfi_startproc .LVL5: .loc 1 59 3 extu a0,a0,31,0 tail sdelay .LVL6: .cfi_endproc .LFE41: .size dram_udelay, .-dram_udelay .section .text.dram_vol_set,"ax",@progbits .align 1 .globl dram_vol_set .type dram_vol_set, @function dram_vol_set: .LFB42: .loc 1 91 1 .cfi_startproc .LVL7: .loc 1 92 2 .loc 1 93 2 .loc 1 94 2 .loc 1 94 13 is_stmt 0 lw a5,4(a0) .loc 1 91 1 addi sp,sp,-16 .cfi_def_cfa_offset 16 sd ra,8(sp) .cfi_offset 1, -8 li a3,2 .loc 1 97 12 li a4,47 beq a5,a3,.L9 li a3,3 .loc 1 100 12 li a4,25 beq a5,a3,.L9 .loc 1 93 15 li a4,0 .L9: .LVL8: .loc 1 107 2 is_stmt 1 .LBB1162: .LBB1163: .file 2 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a2,50331648 lw a5,336(a2) .LVL9: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL10: #NO_APP .LBE1163: .LBE1162: .loc 1 108 2 .loc 1 108 10 is_stmt 0 li a3,-65536 addi a3,a3,255 and a5,a5,a3 .LVL11: .loc 1 109 2 is_stmt 1 .loc 1 109 20 is_stmt 0 slliw a4,a4,8 .LVL12: .loc 1 109 10 or a5,a5,a4 .LVL13: .loc 1 110 2 is_stmt 1 .loc 1 111 2 .LBB1164: .LBB1165: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1165: .LBE1164: .loc 1 110 10 is_stmt 0 li a4,-2097152 addi a4,a4,-1 and a5,a5,a4 .LVL14: .LBB1167: .LBB1166: .loc 2 97 2 sw a5,336(a2) .LVL15: .LBE1166: .LBE1167: .loc 1 112 2 is_stmt 1 .LBB1168: .LBB1169: .loc 1 59 3 li a0,1 .LVL16: call sdelay .LVL17: .LBE1169: .LBE1168: .loc 1 115 2 .LBB1170: .LBB1171: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL18: #NO_APP .LBE1171: .LBE1170: .loc 1 116 49 .loc 1 118 1 is_stmt 0 ld ra,8(sp) .cfi_restore 1 addi sp,sp,16 .cfi_def_cfa_offset 0 jr ra .cfi_endproc .LFE42: .size dram_vol_set, .-dram_vol_set .section .text.paraconfig,"ax",@progbits .align 1 .globl paraconfig .type paraconfig, @function paraconfig: .LFB43: .loc 1 126 1 is_stmt 1 .cfi_startproc .LVL19: .loc 1 127 2 .loc 1 128 2 .loc 1 127 8 is_stmt 0 lw a5,0(a0) .loc 1 127 11 not a1,a1 .LVL20: .loc 1 127 8 and a1,a1,a5 .loc 1 128 8 or a1,a1,a2 sw a1,0(a0) .loc 1 129 1 ret .cfi_endproc .LFE43: .size paraconfig, .-paraconfig .section .text.dram_enable_all_master,"ax",@progbits .align 1 .globl dram_enable_all_master .type dram_enable_all_master, @function dram_enable_all_master: .LFB44: .loc 1 137 1 is_stmt 1 .cfi_startproc .loc 1 139 2 .LVL21: .LBB1172: .LBB1173: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a5,51388416 li a4,-1 sw a4,32(a5) .LVL22: .LBE1173: .LBE1172: .loc 1 140 2 .LBB1174: .LBB1175: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a4,255 sw a4,36(a5) .LVL23: .LBE1175: .LBE1174: .loc 1 141 2 .LBB1176: .LBB1177: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a4,65536 addiw a4,a4,-1 sw a4,40(a5) .LVL24: .LBE1177: .LBE1176: .loc 1 142 2 .LBB1178: .LBB1179: .loc 1 59 3 li a0,10 tail sdelay .LVL25: .LBE1179: .LBE1178: .cfi_endproc .LFE44: .size dram_enable_all_master, .-dram_enable_all_master .section .text.dram_disable_all_master,"ax",@progbits .align 1 .globl dram_disable_all_master .type dram_disable_all_master, @function dram_disable_all_master: .LFB45: .loc 1 150 1 .cfi_startproc .loc 1 152 2 .LVL26: .LBB1180: .LBB1181: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a5,51388416 li a4,1 sw a4,32(a5) .LVL27: .LBE1181: .LBE1180: .loc 1 153 2 .LBB1182: .LBB1183: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw zero,36(a5) .LVL28: .LBE1183: .LBE1182: .loc 1 154 2 .LBB1184: .LBB1185: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1185: .LBE1184: .LBB1187: .LBB1188: .loc 1 59 3 is_stmt 0 li a0,10 .LBE1188: .LBE1187: .LBB1190: .LBB1186: .loc 2 97 2 sw zero,40(a5) .LVL29: .LBE1186: .LBE1190: .loc 1 155 2 is_stmt 1 .LBB1191: .LBB1189: .loc 1 59 3 tail sdelay .LVL30: .LBE1189: .LBE1191: .cfi_endproc .LFE45: .size dram_disable_all_master, .-dram_disable_all_master .section .text.eye_delay_compensation,"ax",@progbits .align 1 .globl eye_delay_compensation .type eye_delay_compensation, @function eye_delay_compensation: .LFB46: .loc 1 231 1 .cfi_startproc .LVL31: .loc 1 232 2 .loc 1 233 2 .loc 1 235 2 .loc 1 231 1 is_stmt 0 addi sp,sp,-32 .cfi_def_cfa_offset 32 li a4,51392512 .loc 1 238 57 li a1,8192 .loc 1 235 2 li a3,51392512 .loc 1 231 1 sd s1,16(sp) sd ra,24(sp) .cfi_offset 9, -16 .cfi_offset 1, -8 mv s1,a0 sd s0,8(sp) .cfi_offset 8, -24 .loc 1 231 1 addi a4,a4,784 .loc 1 238 57 addi a1,a1,-512 .loc 1 235 2 addi a0,a3,820 .LVL32: .L17: .loc 1 237 3 is_stmt 1 discriminator 3 .LBB1192: .LBB1193: .loc 2 138 2 discriminator 3 .loc 2 140 2 discriminator 3 .loc 2 140 6 is_stmt 0 discriminator 3 lw a6,0(a4) .LVL33: .loc 2 141 2 is_stmt 1 discriminator 3 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 3 .LVL34: #NO_APP .LBE1193: .LBE1192: .loc 1 238 3 discriminator 3 .loc 1 238 57 is_stmt 0 discriminator 3 lw a5,84(s1) .loc 1 238 107 discriminator 3 lw a2,88(s1) .loc 1 238 57 discriminator 3 slliw a5,a5,9 .loc 1 238 107 discriminator 3 slliw a2,a2,1 .loc 1 238 57 discriminator 3 and a5,a5,a1 .loc 1 238 107 discriminator 3 andi a2,a2,30 .loc 1 238 63 discriminator 3 or a5,a5,a2 .loc 1 238 11 discriminator 3 or a5,a5,a6 sext.w a5,a5 .LVL35: .loc 1 239 3 is_stmt 1 discriminator 3 .LBB1194: .LBB1195: .loc 2 96 2 discriminator 3 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 discriminator 3 #NO_APP swia a5,(a4),4,0 .LVL36: .LBE1195: .LBE1194: .loc 1 235 2 is_stmt 0 discriminator 3 bne a4,a0,.L17 .loc 1 245 57 li a5,8192 .LVL37: .loc 1 242 2 li s0,51392512 addi a3,a3,912 .loc 1 245 57 addi a2,a5,-512 .loc 1 242 2 addi a1,s0,948 .LVL38: .L18: .loc 1 244 3 is_stmt 1 discriminator 3 .LBB1196: .LBB1197: .loc 2 138 2 discriminator 3 .loc 2 140 2 discriminator 3 .loc 2 140 6 is_stmt 0 discriminator 3 lw a0,0(a3) .LVL39: .loc 2 141 2 is_stmt 1 discriminator 3 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 3 .LVL40: #NO_APP .LBE1197: .LBE1196: .loc 1 245 3 discriminator 3 .loc 1 245 51 is_stmt 0 discriminator 3 lw a4,84(s1) .loc 1 245 101 discriminator 3 lw a5,88(s1) .loc 1 245 51 discriminator 3 srliw a4,a4,4 .loc 1 245 101 discriminator 3 srliw a5,a5,4 .loc 1 245 57 discriminator 3 slliw a4,a4,9 .loc 1 245 107 discriminator 3 slliw a5,a5,1 .loc 1 245 57 discriminator 3 and a4,a4,a2 .loc 1 245 107 discriminator 3 andi a5,a5,30 .loc 1 245 63 discriminator 3 or a4,a4,a5 .loc 1 245 11 discriminator 3 or a4,a4,a0 sext.w a4,a4 .LVL41: .loc 1 246 3 is_stmt 1 discriminator 3 .LBB1198: .LBB1199: .loc 2 96 2 discriminator 3 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 discriminator 3 #NO_APP swia a4,(a3),4,0 .LVL42: .LBE1199: .LBE1198: .loc 1 242 2 is_stmt 0 discriminator 3 bne a3,a1,.L18 .loc 1 250 2 is_stmt 1 .LVL43: .LBB1200: .LBB1201: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,256(s0) .LVL44: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL45: #NO_APP .LBE1201: .LBE1200: .loc 1 251 2 .loc 1 252 2 .LBB1202: .LBB1203: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1203: .LBE1202: .loc 1 251 10 is_stmt 0 li a4,-67108864 addi a4,a4,-1 and a5,a5,a4 .LVL46: .LBB1205: .LBB1204: .loc 2 97 2 sw a5,256(s0) .LVL47: .LBE1204: .LBE1205: .loc 1 255 2 is_stmt 1 .LBB1206: .LBB1207: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a1,820(s0) .LVL48: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL49: #NO_APP .LBE1207: .LBE1206: .loc 1 256 2 .loc 1 256 51 is_stmt 0 lhu a4,86(s1) .loc 1 256 103 lhu a5,90(s1) .loc 1 256 58 slliw a4,a4,9 .loc 1 256 110 slliw a5,a5,1 .loc 1 256 58 and a4,a4,a2 .loc 1 256 110 andi a5,a5,30 .loc 1 256 64 or a4,a4,a5 .loc 1 256 10 or a4,a4,a1 .LVL50: .loc 1 257 2 is_stmt 1 .LBB1208: .LBB1209: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a4,820(s0) .LVL51: .LBE1209: .LBE1208: .loc 1 258 2 .LBB1210: .LBB1211: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a1,824(s0) .LVL52: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL53: #NO_APP .LBE1211: .LBE1210: .loc 1 259 2 .loc 1 259 51 is_stmt 0 lhu a4,86(s1) .loc 1 259 103 lhu a5,90(s1) .loc 1 259 58 slliw a4,a4,9 .loc 1 259 110 slliw a5,a5,1 .loc 1 259 58 and a4,a4,a2 .loc 1 259 110 andi a5,a5,30 .loc 1 259 64 or a4,a4,a5 .loc 1 259 10 or a4,a4,a1 .LVL54: .loc 1 260 2 is_stmt 1 .LBB1212: .LBB1213: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a4,824(s0) .LVL55: .LBE1213: .LBE1212: .loc 1 263 2 .LBB1214: .LBB1215: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a1,0(a3) .LVL56: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL57: #NO_APP .LBE1215: .LBE1214: .loc 1 264 2 .loc 1 264 51 is_stmt 0 lw a4,84(s1) .loc 1 264 103 lw a5,88(s1) .loc 1 264 51 srliw a4,a4,20 .loc 1 264 103 srliw a5,a5,20 .loc 1 264 58 slliw a4,a4,9 .loc 1 264 110 slliw a5,a5,1 .loc 1 264 58 and a4,a4,a2 .loc 1 264 110 andi a5,a5,30 .loc 1 264 64 or a4,a4,a5 .loc 1 264 10 or a4,a4,a1 sext.w a4,a4 .LVL58: .loc 1 265 2 is_stmt 1 .LBB1216: .LBB1217: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a4,0(a3) .LVL59: .LBE1217: .LBE1216: .loc 1 266 2 .LBB1218: .LBB1219: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a3,952(s0) .LVL60: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL61: #NO_APP .LBE1219: .LBE1218: .loc 1 267 2 .loc 1 267 51 is_stmt 0 lw a5,84(s1) .loc 1 267 103 lw a4,88(s1) .loc 1 267 51 srliw a5,a5,20 .loc 1 267 103 srliw a4,a4,20 .loc 1 267 58 slliw a5,a5,9 .loc 1 267 110 slliw a4,a4,1 .loc 1 267 58 and a5,a5,a2 .loc 1 267 110 andi a4,a4,30 .loc 1 267 64 or a5,a5,a4 .loc 1 267 10 or a5,a5,a3 sext.w a5,a5 .LVL62: .loc 1 268 2 is_stmt 1 .LBB1220: .LBB1221: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,952(s0) .LVL63: .LBE1221: .LBE1220: .loc 1 271 2 .LBB1222: .LBB1223: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,828(s0) .LVL64: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL65: #NO_APP .LBE1223: .LBE1222: .loc 1 272 2 .loc 1 272 52 is_stmt 0 lhu a4,86(s1) .loc 1 272 59 li a3,503316480 slliw a4,a4,25 and a4,a4,a3 .loc 1 272 10 or a4,a4,a5 .LVL66: .loc 1 273 2 is_stmt 1 .LBB1224: .LBB1225: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a4,828(s0) .LVL67: .LBE1225: .LBE1224: .loc 1 276 2 .LBB1226: .LBB1227: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a4,956(s0) .LVL68: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL69: #NO_APP .LBE1227: .LBE1226: .loc 1 277 2 .loc 1 277 52 is_stmt 0 lw a5,84(s1) srliw a5,a5,20 .loc 1 277 59 slliw a5,a5,25 and a5,a5,a3 .loc 1 277 10 or a5,a5,a4 .LVL70: .loc 1 278 2 is_stmt 1 .LBB1228: .LBB1229: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,956(s0) .LVL71: .LBE1229: .LBE1228: .loc 1 281 2 .LBB1230: .LBB1231: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,256(s0) .LVL72: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL73: #NO_APP .LBE1231: .LBE1230: .loc 1 282 2 .loc 1 283 2 .LBB1232: .LBB1233: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1233: .LBE1232: .loc 1 282 10 is_stmt 0 li a4,67108864 or a5,a5,a4 .LVL74: .LBB1235: .LBB1234: .loc 2 97 2 sw a5,256(s0) .LVL75: .LBE1234: .LBE1235: .loc 1 284 2 is_stmt 1 .LBB1236: .LBB1237: .loc 1 59 3 li a0,1 call sdelay .LVL76: .LBE1237: .LBE1236: .loc 1 287 2 .loc 1 290 56 is_stmt 0 li a4,4096 .loc 1 287 2 li a2,51392512 .LBB1239: .LBB1238: .loc 1 59 3 addi s0,s0,576 .LBE1238: .LBE1239: .loc 1 290 56 addi a4,a4,-256 .loc 1 287 2 addi a3,a2,636 .LVL77: .L19: .loc 1 289 3 is_stmt 1 discriminator 3 .LBB1240: .LBB1241: .loc 2 138 2 discriminator 3 .loc 2 140 2 discriminator 3 .loc 2 140 6 is_stmt 0 discriminator 3 lw a1,0(s0) .LVL78: .loc 2 141 2 is_stmt 1 discriminator 3 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 3 .LVL79: #NO_APP .LBE1241: .LBE1240: .loc 1 290 3 discriminator 3 .loc 1 290 50 is_stmt 0 discriminator 3 lw a5,80(s1) srliw a5,a5,4 .loc 1 290 56 discriminator 3 slliw a5,a5,8 and a5,a5,a4 .loc 1 290 11 discriminator 3 or a5,a5,a1 sext.w a5,a5 .LVL80: .loc 1 291 3 is_stmt 1 discriminator 3 .LBB1242: .LBB1243: .loc 2 96 2 discriminator 3 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 discriminator 3 #NO_APP swia a5,(s0),4,0 .LVL81: .LBE1243: .LBE1242: .loc 1 287 2 is_stmt 0 discriminator 3 bne s0,a3,.L19 .loc 1 297 56 li a5,4096 .LVL82: .loc 1 294 2 li a3,51392512 .loc 1 297 56 addi a1,a5,-256 addi a2,a2,552 .loc 1 294 2 addi a5,a3,576 .LVL83: .L20: .loc 1 296 3 is_stmt 1 discriminator 3 .LBB1244: .LBB1245: .loc 2 138 2 discriminator 3 .loc 2 140 2 discriminator 3 .loc 2 140 6 is_stmt 0 discriminator 3 lw a0,0(a2) .LVL84: .loc 2 141 2 is_stmt 1 discriminator 3 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 3 .LVL85: #NO_APP .LBE1245: .LBE1244: .loc 1 297 3 discriminator 3 .loc 1 297 50 is_stmt 0 discriminator 3 lw a4,80(s1) srliw a4,a4,4 .loc 1 297 56 discriminator 3 slliw a4,a4,8 and a4,a4,a1 .loc 1 297 11 discriminator 3 or a4,a4,a0 sext.w a4,a4 .LVL86: .loc 1 298 3 is_stmt 1 discriminator 3 .LBB1246: .LBB1247: .loc 2 96 2 discriminator 3 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 discriminator 3 #NO_APP swia a4,(a2),4,0 .LVL87: .LBE1247: .LBE1246: .loc 1 294 2 is_stmt 0 discriminator 3 bne a2,a5,.L20 .loc 1 302 2 is_stmt 1 .LVL88: .LBB1248: .LBB1249: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,536(a3) .LVL89: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL90: #NO_APP .LBE1249: .LBE1248: .loc 1 303 2 .loc 1 303 39 is_stmt 0 lw a4,80(s1) slliw a4,a4,8 and a4,a4,a1 .loc 1 303 10 or a4,a4,a5 sext.w a4,a4 .LVL91: .loc 1 304 2 is_stmt 1 .LBB1250: .LBB1251: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a4,536(a3) .LVL92: .LBE1251: .LBE1250: .loc 1 305 2 .LBB1252: .LBB1253: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,540(a3) .LVL93: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL94: #NO_APP .LBE1253: .LBE1252: .loc 1 306 2 .loc 1 306 53 is_stmt 0 lw a4,80(s1) and a4,a4,a1 .loc 1 306 10 or a4,a4,a5 sext.w a4,a4 .LVL95: .loc 1 307 2 is_stmt 1 .LBB1254: .LBB1255: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a4,540(a3) .LVL96: .LBE1255: .LBE1254: .loc 1 308 2 .LBB1256: .LBB1257: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a4,640(a3) .LVL97: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL98: #NO_APP .LBE1257: .LBE1256: .loc 1 309 2 .loc 1 309 48 is_stmt 0 lw a5,80(s1) srliw a5,a5,12 .loc 1 309 55 slliw a5,a5,8 and a5,a5,a1 .loc 1 309 10 or a5,a5,a4 sext.w a5,a5 .LVL99: .loc 1 310 2 is_stmt 1 .LBB1258: .LBB1259: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1259: .LBE1258: .loc 1 314 1 is_stmt 0 ld ra,24(sp) .cfi_restore 1 ld s0,8(sp) .cfi_restore 8 .LBB1261: .LBB1260: .loc 2 97 2 sw a5,640(a3) .LVL100: .LBE1260: .LBE1261: .loc 1 314 1 ld s1,16(sp) .cfi_restore 9 .LVL101: addi sp,sp,32 .cfi_def_cfa_offset 0 jr ra .cfi_endproc .LFE46: .size eye_delay_compensation, .-eye_delay_compensation .section .text.bit_delay_compensation,"ax",@progbits .align 1 .globl bit_delay_compensation .type bit_delay_compensation, @function bit_delay_compensation: .LFB47: .loc 1 322 1 is_stmt 1 .cfi_startproc .LVL102: .loc 1 323 2 .loc 1 324 2 .loc 1 322 1 is_stmt 0 addi sp,sp,-368 .cfi_def_cfa_offset 368 .loc 1 324 15 lui a1,%hi(.LANCHOR0) .loc 1 322 1 sd s0,352(sp) .loc 1 324 15 li a2,176 .cfi_offset 8, -16 addi s0,a1,%lo(.LANCHOR0) mv a0,sp .LVL103: addi a1,a1,%lo(.LANCHOR0) .loc 1 322 1 sd ra,360(sp) .cfi_offset 1, -8 .loc 1 324 15 call memcpy .LVL104: .loc 1 329 2 is_stmt 1 .loc 1 329 15 is_stmt 0 addi a6,sp,176 li a2,176 addi a1,s0,176 mv a0,a6 call memcpy .LVL105: .LBB1262: .LBB1263: .loc 2 140 6 li a5,51392512 .LBE1263: .LBE1262: .loc 1 329 15 mv a6,a0 .loc 1 333 2 is_stmt 1 .LVL106: .LBB1265: .LBB1264: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a4,256(a5) .LVL107: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL108: #NO_APP .LBE1264: .LBE1265: .loc 1 334 2 .loc 1 335 2 .LBB1266: .LBB1267: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1267: .LBE1266: .loc 1 334 10 is_stmt 0 li a3,-67108864 addi a3,a3,-1 and a4,a4,a3 .LVL109: .loc 1 337 2 li a1,51392512 .LBB1270: .LBB1268: .loc 2 97 2 sw a4,256(a5) .LVL110: .LBE1268: .LBE1270: .loc 1 337 2 is_stmt 1 .LBB1271: .LBB1269: .loc 2 97 2 is_stmt 0 li a0,0 addi a5,a5,784 .LBE1269: .LBE1271: .loc 1 339 3 li a7,44 .loc 1 337 2 addi t1,a1,1296 .LVL111: .L27: .loc 1 322 1 mv a2,a0 li a3,0 .LVL112: .L28: .loc 1 341 4 is_stmt 1 discriminator 3 .loc 1 341 61 is_stmt 0 discriminator 3 lrw a4,a6,a2,0 .loc 1 341 12 discriminator 3 lrw t3,sp,a2,0 .loc 1 341 61 discriminator 3 slliw a4,a4,8 .loc 1 341 12 discriminator 3 addw a4,a4,t3 .LVL113: .loc 1 342 4 is_stmt 1 discriminator 3 .LBB1272: .LBB1273: .loc 2 138 2 discriminator 3 .loc 2 140 2 discriminator 3 .loc 2 140 6 is_stmt 0 discriminator 3 lrw t3,a5,a3,0 .LVL114: .loc 2 141 2 is_stmt 1 discriminator 3 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 3 .LVL115: #NO_APP .LBE1273: .LBE1272: .loc 1 343 4 discriminator 3 .loc 1 344 4 discriminator 3 .LBB1274: .LBB1275: .loc 2 96 2 discriminator 3 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 discriminator 3 #NO_APP .LBE1275: .LBE1274: .loc 1 343 12 is_stmt 0 discriminator 3 addw a4,a4,t3 .LVL116: .LBB1277: .LBB1276: .loc 2 97 2 discriminator 3 srw a4,a5,a3,0 .LVL117: addi a3,a3,4 addi a2,a2,4 .LVL118: .LBE1276: .LBE1277: .loc 1 339 3 discriminator 3 bne a3,a7,.L28 addi a5,a5,128 addi a0,a0,44 .loc 1 337 2 discriminator 2 bne a5,t1,.L27 .loc 1 348 2 is_stmt 1 .LVL119: .LBB1278: .LBB1279: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,256(a1) .LVL120: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL121: #NO_APP .LBE1279: .LBE1278: .loc 1 349 2 .loc 1 350 2 .LBB1280: .LBB1281: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1281: .LBE1280: .loc 1 349 10 is_stmt 0 li a4,67108864 .loc 1 351 1 ld ra,360(sp) .cfi_restore 1 ld s0,352(sp) .cfi_restore 8 .loc 1 349 10 or a5,a5,a4 .LVL122: .LBB1283: .LBB1282: .loc 2 97 2 sw a5,256(a1) .LVL123: .LBE1282: .LBE1283: .loc 1 351 1 addi sp,sp,368 .cfi_def_cfa_offset 0 jr ra .cfi_endproc .LFE47: .size bit_delay_compensation, .-bit_delay_compensation .section .text.set_master_priority_pad,"ax",@progbits .align 1 .globl set_master_priority_pad .type set_master_priority_pad, @function set_master_priority_pad: .LFB48: .loc 1 359 1 is_stmt 1 .cfi_startproc .LVL124: .loc 1 360 2 .loc 1 362 2 .LBB1284: .LBB1285: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a5,51388416 lw a4,12(a5) .LVL125: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL126: #NO_APP .LBE1285: .LBE1284: .loc 1 363 2 .loc 1 363 10 is_stmt 0 li a3,-4096 and a4,a4,a3 .LVL127: .loc 1 364 2 is_stmt 1 .loc 1 364 30 is_stmt 0 lw a3,0(a0) srliw a3,a3,1 .loc 1 364 34 addiw a3,a3,-1 .loc 1 364 10 or a4,a4,a3 .LVL128: sext.w a4,a4 .LVL129: .loc 1 365 2 is_stmt 1 .LBB1286: .LBB1287: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a4,12(a5) .LVL130: .LBE1287: .LBE1286: .loc 1 366 2 .LBB1288: .LBB1289: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a4,65536 .LVL131: sw a4,512(a5) .LVL132: .LBE1289: .LBE1288: .loc 1 369 2 .LBB1290: .LBB1291: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a4,16777216 addiw a4,a4,9 sw a4,528(a5) .LVL133: .LBE1291: .LBE1290: .loc 1 370 2 .LBB1292: .LBB1293: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a3,5242880 addiw a3,a3,100 sw a3,532(a5) .LVL134: .LBE1293: .LBE1292: .loc 1 372 2 .LBB1294: .LBB1295: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a2,33554432 addiw a2,a2,13 sw a2,560(a5) .LVL135: .LBE1295: .LBE1294: .loc 1 373 2 .LBB1296: .LBB1297: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a2,6291456 addiw a2,a2,256 sw a2,564(a5) .LVL136: .LBE1297: .LBE1296: .loc 1 375 2 .LBB1298: .LBB1299: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a4,576(a5) .LVL137: .LBE1299: .LBE1298: .loc 1 376 2 .LBB1300: .LBB1301: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a3,580(a5) .LVL138: .LBE1301: .LBE1300: .loc 1 378 2 .LBB1302: .LBB1303: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a3,6553600 addiw a3,a3,521 sw a3,608(a5) .LVL139: .LBE1303: .LBE1302: .loc 1 379 2 .LBB1304: .LBB1305: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a3,2097152 addiw a3,a3,64 sw a3,612(a5) .LVL140: .LBE1305: .LBE1304: .loc 1 381 2 .LBB1306: .LBB1307: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a4,656(a5) .LVL141: .LBE1307: .LBE1306: .loc 1 382 2 .LBB1308: .LBB1309: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a4,4194304 addiw a4,a4,128 sw a4,660(a5) .LVL142: .LBE1309: .LBE1308: .loc 1 384 2 .LBB1310: .LBB1311: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw zero,1136(a5) .LVL143: .LBE1311: .LBE1310: .loc 1 385 2 .LBB1312: .LBB1313: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw zero,1140(a5) .LVL144: .LBE1313: .LBE1312: .loc 1 387 2 .LBB1314: .LBB1315: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a4,260059136 li a5,51392512 .LVL145: addiw a4,a4,-251 sw a4,448(a5) .LVL146: .LBE1315: .LBE1314: .loc 1 388 2 .LBB1316: .LBB1317: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a4,251658240 addiw a4,a4,255 sw a4,456(a5) .LVL147: .LBE1317: .LBE1316: .loc 1 389 2 .LBB1318: .LBB1319: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a4,1056964608 addiw a4,a4,95 sw a4,464(a5) .LVL148: .LBE1319: .LBE1318: .loc 1 390 50 .loc 1 391 1 is_stmt 0 ret .cfi_endproc .LFE48: .size set_master_priority_pad, .-set_master_priority_pad .section .text.auto_cal_timing,"ax",@progbits .align 1 .globl auto_cal_timing .type auto_cal_timing, @function auto_cal_timing: .LFB49: .loc 1 399 1 is_stmt 1 .cfi_startproc .LVL149: .loc 1 400 2 .loc 1 401 2 .loc 1 401 19 is_stmt 0 mulw a1,a0,a1 .LVL150: .loc 1 402 2 is_stmt 1 .loc 1 401 54 is_stmt 0 li a5,1000 .loc 1 401 72 remuw a0,a1,a5 .LVL151: .loc 1 401 26 divuw a1,a1,a5 .LVL152: .loc 1 401 72 snez a0,a0 .loc 1 403 1 addw a0,a0,a1 ret .cfi_endproc .LFE49: .size auto_cal_timing, .-auto_cal_timing .section .text.auto_set_timing_para,"ax",@progbits .align 1 .globl auto_set_timing_para .type auto_set_timing_para, @function auto_set_timing_para: .LFB50: .loc 1 411 1 is_stmt 1 .cfi_startproc .LVL153: .loc 1 412 2 .loc 1 413 2 .loc 1 414 2 .loc 1 415 2 .loc 1 416 2 .loc 1 417 2 .loc 1 418 2 .loc 1 419 2 .loc 1 420 2 .loc 1 421 2 .loc 1 422 2 .loc 1 423 2 .loc 1 424 2 .loc 1 425 2 .loc 1 426 2 .loc 1 427 2 .loc 1 428 2 .loc 1 429 2 .loc 1 430 2 .loc 1 431 2 .loc 1 432 2 .loc 1 433 2 .loc 1 434 2 .loc 1 435 2 .loc 1 436 2 .loc 1 437 2 .loc 1 438 2 .loc 1 439 2 .loc 1 440 2 .loc 1 441 2 .loc 1 442 2 .loc 1 443 2 .loc 1 444 2 .loc 1 445 2 .loc 1 446 2 .loc 1 447 2 .loc 1 448 2 .loc 1 449 2 .loc 1 450 2 .loc 1 452 2 .loc 1 453 2 .loc 1 453 25 is_stmt 0 lw a5,92(a0) .loc 1 411 1 addi sp,sp,-208 .cfi_def_cfa_offset 208 sd s4,160(sp) sd s5,152(sp) sd s8,128(sp) .loc 1 453 25 sd a5,80(sp) .LVL154: .loc 1 455 2 is_stmt 1 .loc 1 411 1 is_stmt 0 sd ra,200(sp) sd s0,192(sp) sd s1,184(sp) sd s2,176(sp) sd s3,168(sp) sd s6,144(sp) sd s7,136(sp) sd s9,120(sp) sd s10,112(sp) sd s11,104(sp) .cfi_offset 20, -48 .cfi_offset 21, -56 .cfi_offset 24, -80 .cfi_offset 1, -8 .cfi_offset 8, -16 .cfi_offset 9, -24 .cfi_offset 18, -32 .cfi_offset 19, -40 .cfi_offset 22, -64 .cfi_offset 23, -72 .cfi_offset 25, -88 .cfi_offset 26, -96 .cfi_offset 27, -104 .loc 1 458 22 andi a5,a5,2 .loc 1 411 1 mv s5,a0 .loc 1 456 7 lwd s4,s8,(a0),0,3 .LVL155: .loc 1 458 2 is_stmt 1 .loc 1 458 4 is_stmt 0 beqz a5,.L35 .loc 1 460 48 is_stmt 1 .loc 1 462 3 .loc 1 462 17 is_stmt 0 lw s9,40(a0) .loc 1 468 17 lw a2,44(a0) .loc 1 475 18 lw s2,48(a0) .loc 1 462 8 extu a5,s9,21+3-1,21 sd a5,88(sp) .LVL156: .loc 1 463 3 is_stmt 1 .loc 1 470 8 is_stmt 0 extu a5,a2,15+5-1,15 sd a5,64(sp) .loc 1 472 7 extu a5,a2,6+5-1,6 sd a5,0(sp) .loc 1 475 9 extu a5,s2,12+9-1,12 .loc 1 476 9 extu s2,s2,0+12-1,0 .loc 1 463 8 extu s10,s9,15+6-1,15 .LVL157: .loc 1 464 3 is_stmt 1 .loc 1 464 8 is_stmt 0 extu s7,s9,11+4-1,11 .LVL158: .loc 1 465 3 is_stmt 1 .loc 1 465 8 is_stmt 0 extu s3,s9,6+5-1,6 .LVL159: .loc 1 466 3 is_stmt 1 .loc 1 468 7 is_stmt 0 extu a6,a2,23+5-1,23 .loc 1 466 8 andi s9,s9,63 .LVL160: .loc 1 468 3 is_stmt 1 .loc 1 469 3 .loc 1 469 8 is_stmt 0 extu s1,a2,20+3-1,20 .LVL161: .loc 1 470 3 is_stmt 1 .loc 1 471 3 .loc 1 471 7 is_stmt 0 extu s6,a2,11+4-1,11 .LVL162: .loc 1 472 3 is_stmt 1 .loc 1 473 3 .loc 1 473 8 is_stmt 0 andi s11,a2,63 .LVL163: .loc 1 475 3 is_stmt 1 .loc 1 475 9 is_stmt 0 sd a5,8(sp) .LVL164: .loc 1 476 3 is_stmt 1 .loc 1 476 9 is_stmt 0 sext.w s2,s2 .LVL165: .L36: .loc 1 614 61 is_stmt 1 .loc 1 617 2 lw a5,36(s5) sd a5,72(sp) lw a5,28(s5) sd a5,56(sp) li a5,3 beq s8,a5,.L57 bgtu s8,a5,.L58 li a5,2 beq s8,a5,.L59 .L84: .loc 1 446 15 is_stmt 0 li a5,8 sd a5,48(sp) .loc 1 449 15 li t1,4 .loc 1 448 15 li t4,3 .loc 1 447 15 li t6,4 .loc 1 445 15 li t3,27 .loc 1 444 15 li s6,12 .LVL166: .loc 1 431 15 li s8,2 .LVL167: .loc 1 429 15 li t0,6 .loc 1 428 15 li t5,2 .loc 1 427 15 li a1,0 .loc 1 426 15 li a5,3 .loc 1 425 15 li a0,3 .loc 1 424 15 li a7,1 .loc 1 423 15 li a4,1 .loc 1 422 15 li s0,0 .loc 1 421 15 li t2,0 .loc 1 420 15 li s1,0 .LVL168: .loc 1 419 15 li a3,0 .loc 1 418 15 sd zero,40(sp) .loc 1 417 15 sd zero,32(sp) .loc 1 416 15 sd zero,24(sp) .loc 1 415 15 sd zero,16(sp) .LVL169: .L60: .loc 1 774 2 is_stmt 1 .loc 1 774 4 is_stmt 0 ld a2,64(sp) ld s4,0(sp) addw s4,s4,a2 addiw a2,a0,2 bgeu s4,a2,.L66 .loc 1 775 3 is_stmt 1 .loc 1 775 8 is_stmt 0 ld a2,0(sp) subw s4,a0,a2 addiw a2,s4,2 sd a2,64(sp) .LVL170: .L66: .loc 1 780 3 is_stmt 1 .loc 1 780 5 is_stmt 0 lhu s4,26(s5) bnez s4,.L67 .loc 1 781 4 is_stmt 1 .loc 1 781 19 is_stmt 0 sw a3,24(s5) .L67: .loc 1 782 3 is_stmt 1 .loc 1 782 5 is_stmt 0 ld a3,56(sp) .LVL171: extu a3,a3,16+16-1,16 bnez a3,.L68 .loc 1 783 4 is_stmt 1 .loc 1 783 19 is_stmt 0 sw s1,28(s5) .L68: .loc 1 784 3 is_stmt 1 .loc 1 784 5 is_stmt 0 lhu a3,34(s5) bnez a3,.L69 .loc 1 785 4 is_stmt 1 .loc 1 785 19 is_stmt 0 sw t2,32(s5) .L69: .loc 1 786 3 is_stmt 1 .loc 1 786 5 is_stmt 0 ld a3,72(sp) extu a3,a3,16+16-1,16 bnez a3,.L70 .loc 1 787 4 is_stmt 1 .loc 1 787 19 is_stmt 0 sw s0,36(s5) .L70: .loc 1 789 3 is_stmt 1 lhu t2,24(s5) .LVL172: .LBB1320: .LBB1321: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a3,51392512 sw t2,48(a3) .LVL173: .LBE1321: .LBE1320: .loc 1 790 3 lhu t2,28(s5) .LVL174: .LBB1322: .LBB1323: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw t2,52(a3) .LVL175: .LBE1323: .LBE1322: .loc 1 791 3 lhu t2,32(s5) .LVL176: .LBB1324: .LBB1325: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw t2,56(a3) .LVL177: .LBE1325: .LBE1324: .loc 1 792 3 lhu t2,36(s5) .LVL178: .LBB1326: .LBB1327: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw t2,60(a3) .LVL179: .LBE1327: .LBE1326: .loc 1 793 3 lw t2,12(s5) extu t2,t2,4+2-1,4 .LVL180: .LBB1328: .LBB1329: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw t2,44(a3) .LVL181: .LBE1329: .LBE1328: .loc 1 795 70 .loc 1 796 70 .loc 1 797 70 .loc 1 798 70 .loc 1 804 2 .loc 1 805 60 .loc 1 806 2 .LBB1330: .LBB1331: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1331: .LBE1330: .loc 1 804 33 is_stmt 0 slliw s10,s10,16 .LVL182: .loc 1 804 10 or s10,s11,s10 .loc 1 804 18 slliw t2,s6,24 .loc 1 804 10 or s10,s10,t2 .loc 1 804 51 slliw t3,t3,8 .LVL183: .loc 1 804 10 or s10,s10,t3 .LBB1333: .LBB1332: .loc 2 97 2 sw s10,88(a3) .LVL184: .LBE1332: .LBE1333: .loc 1 807 2 is_stmt 1 .loc 1 808 60 .loc 1 809 2 .LBB1334: .LBB1335: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1335: .LBE1334: .loc 1 807 32 is_stmt 0 ld a2,64(sp) .loc 1 807 17 slliw a6,a6,16 .LVL185: .loc 1 807 10 or a6,s9,a6 .loc 1 807 32 slliw s4,a2,8 .loc 1 807 10 or a6,a6,s4 .LBB1337: .LBB1336: .loc 2 97 2 sw a6,92(a3) .LVL186: .LBE1336: .LBE1337: .loc 1 810 2 is_stmt 1 .loc 1 811 60 .loc 1 812 2 .LBB1338: .LBB1339: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1339: .LBE1338: .loc 1 810 18 is_stmt 0 slliw s1,a5,24 .LVL187: .loc 1 810 10 ld a5,48(sp) .LVL188: .loc 1 810 32 slliw a0,a0,16 .LVL189: .loc 1 810 25 or s1,s1,a0 .loc 1 810 10 or s1,s1,a5 .loc 1 810 49 slliw t6,t6,8 .LVL190: .loc 1 810 10 or t6,s1,t6 .LBB1341: .LBB1340: .loc 2 97 2 sw t6,96(a3) .LVL191: .LBE1340: .LBE1341: .loc 1 813 2 is_stmt 1 .loc 1 814 60 .loc 1 815 2 .LBB1342: .LBB1343: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1343: .LBE1342: .loc 1 813 33 is_stmt 0 slliw t5,t5,12 .LVL192: .loc 1 813 18 slliw a1,a1,16 .LVL193: .loc 1 813 25 or a1,a1,t5 .loc 1 813 10 or t0,a1,t0 .LVL194: .LBB1345: .LBB1344: .loc 2 97 2 sw t0,100(a3) .LVL195: .LBE1344: .LBE1345: .loc 1 816 2 is_stmt 1 .loc 1 817 60 .loc 1 818 2 .LBB1346: .LBB1347: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1347: .LBE1346: .loc 1 816 33 is_stmt 0 ld a5,88(sp) .loc 1 816 18 slliw s3,s3,24 .LVL196: .loc 1 816 48 slliw s7,s7,8 .LVL197: .loc 1 816 33 slliw a5,a5,16 .loc 1 816 25 or s3,s3,a5 .loc 1 816 10 ld a5,0(sp) or t3,s3,a5 or s7,t3,s7 .LBB1349: .LBB1348: .loc 2 97 2 sw s7,104(a3) .LVL198: .LBE1348: .LBE1349: .loc 1 819 2 is_stmt 1 .loc 1 820 60 .loc 1 821 2 .LBB1350: .LBB1351: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1351: .LBE1350: .loc 1 819 20 is_stmt 0 slliw a5,t1,24 .loc 1 819 37 slliw t1,t1,16 .LVL199: .loc 1 819 27 or t1,a5,t1 .loc 1 819 10 or s8,t1,s8 .LVL200: .loc 1 819 54 slliw t4,t4,8 .LVL201: .loc 1 819 10 or t4,s8,t4 .LBB1353: .LBB1352: .loc 2 97 2 sw t4,108(a3) .LVL202: .LBE1352: .LBE1353: .loc 1 823 2 is_stmt 1 .LBB1354: .LBB1355: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,120(a3) .LVL203: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL204: #NO_APP .LBE1355: .LBE1354: .loc 1 824 2 .loc 1 825 2 .loc 1 826 2 .loc 1 827 2 .loc 1 828 4 is_stmt 0 lw a1,0(s5) li a3,268369920 and a5,a5,a3 .LVL205: .loc 1 828 2 is_stmt 1 .loc 1 828 4 is_stmt 0 li a3,800 bgtu a1,a3,.L71 .loc 1 829 3 is_stmt 1 .loc 1 829 11 is_stmt 0 li a3,-268410880 .L86: .loc 1 831 11 addi a3,a3,1536 or a5,a5,a3 .LVL206: .loc 1 833 2 is_stmt 1 .loc 1 834 2 .LBB1356: .LBB1357: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a3,51392512 .LBE1357: .LBE1356: .loc 1 833 10 is_stmt 0 ori a5,a5,16 .LVL207: .LBB1359: .LBB1358: .loc 2 97 2 sw a5,120(a3) .LVL208: .LBE1358: .LBE1359: .loc 1 835 61 is_stmt 1 .loc 1 837 2 .loc 1 838 58 .loc 1 839 2 .LBB1360: .LBB1361: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1361: .LBE1360: .loc 1 837 38 is_stmt 0 slliw a4,a4,16 .LVL209: .loc 1 837 58 or a4,a7,a4 .loc 1 837 10 li a7,33554432 .LVL210: addi a7,a7,256 or a4,a4,a7 .LBB1363: .LBB1362: .loc 2 97 2 sw a4,128(a3) .LVL211: .LBE1362: .LBE1363: .loc 1 841 2 is_stmt 1 .LBB1364: .LBB1365: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1365: .LBE1364: .loc 1 841 2 is_stmt 0 ld a5,24(sp) ld a4,16(sp) slliw a5,a5,20 or a5,a4,a5 .LBB1367: .LBB1366: .loc 2 97 2 sw a5,80(a3) .LVL212: .LBE1366: .LBE1367: .loc 1 842 2 is_stmt 1 .LBB1368: .LBB1369: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1369: .LBE1368: .loc 1 842 2 is_stmt 0 ld a5,40(sp) ld a4,32(sp) slliw a5,a5,20 or a5,a4,a5 .LBB1371: .LBB1370: .loc 2 97 2 sw a5,84(a3) .LVL213: .LBE1370: .LBE1371: .loc 1 844 2 is_stmt 1 .loc 1 845 60 .loc 1 846 2 .LBB1372: .LBB1373: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1373: .LBE1372: .loc 1 844 10 is_stmt 0 ld a4,8(sp) .loc 1 844 19 slliw a5,s2,16 .loc 1 844 10 or a5,a4,a5 .LBB1375: .LBB1374: .loc 2 97 2 sw a5,144(a3) .LVL214: .LBE1374: .LBE1375: .loc 1 847 2 is_stmt 1 .loc 1 848 2 .LBB1376: .LBB1377: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1377: .LBE1376: .loc 1 847 10 is_stmt 0 li a5,268369920 .loc 1 849 1 ld ra,200(sp) .cfi_remember_state .cfi_restore 1 ld s0,192(sp) .cfi_restore 8 .LVL215: .loc 1 847 20 slliw s2,s2,15 .LVL216: .loc 1 847 10 and s2,s2,a5 .LBB1379: .LBB1378: .loc 2 97 2 sw s2,148(a3) .LVL217: .LBE1378: .LBE1379: .loc 1 849 1 ld s1,184(sp) .cfi_restore 9 ld s2,176(sp) .cfi_restore 18 ld s3,168(sp) .cfi_restore 19 ld s4,160(sp) .cfi_restore 20 ld s5,152(sp) .cfi_restore 21 .LVL218: ld s6,144(sp) .cfi_restore 22 .LVL219: ld s7,136(sp) .cfi_restore 23 ld s8,128(sp) .cfi_restore 24 ld s9,120(sp) .cfi_restore 25 .LVL220: ld s10,112(sp) .cfi_restore 26 ld s11,104(sp) .cfi_restore 27 .LVL221: addi sp,sp,208 .cfi_def_cfa_offset 0 .LVL222: jr ra .LVL223: .L35: .cfi_restore_state .loc 1 481 5 li a5,3 .loc 1 455 12 extu s0,s4,1+31-1,1 .loc 1 480 51 is_stmt 1 .loc 1 481 3 .loc 1 481 5 is_stmt 0 bne s8,a5,.L37 .loc 1 483 4 is_stmt 1 mv a1,s0 li a0,350 .LVL224: call auto_cal_timing .LVL225: sext.w a5,a0 li a0,8192 mv a1,s0 addi a0,a0,-392 sd a5,8(sp) call auto_cal_timing .LVL226: sext.w a0,a0 andi s2,a0,31 snez s2,s2 srliw a0,a0,5 mv a1,s0 addw s2,s2,a0 li a0,8 call auto_cal_timing .LVL227: sext.w s6,a0 mv a1,s0 li a0,15 call auto_cal_timing .LVL228: li a5,2 sext.w s3,a0 mv s1,s6 bgeu s6,a5,.L38 li s1,2 .L38: li a5,2 mv s6,s3 bgeu s3,a5,.L39 li s6,2 .L39: .loc 1 483 6 is_stmt 0 li a5,800 .loc 1 487 12 mv a1,s0 .loc 1 483 6 bgtu s4,a5,.L40 .loc 1 486 5 is_stmt 1 .loc 1 487 5 .loc 1 487 12 is_stmt 0 li a0,50 call auto_cal_timing .LVL229: sext.w s10,a0 .LVL230: .loc 1 488 5 is_stmt 1 .loc 1 488 12 is_stmt 0 mv a1,s0 li a0,10 call auto_cal_timing .LVL231: sext.w a0,a0 .LVL232: .loc 1 489 5 is_stmt 1 li a5,2 mv s7,a0 bgeu a0,a5,.L41 li s7,2 .L41: .LVL233: .loc 1 490 5 .loc 1 491 5 .loc 1 491 11 is_stmt 0 mv a1,s0 li a0,53 call auto_cal_timing .LVL234: sext.w s9,a0 .LVL235: .loc 1 493 5 is_stmt 1 .loc 1 494 5 .loc 1 495 5 .loc 1 496 5 .loc 1 497 5 .loc 1 498 5 .loc 1 499 5 .loc 1 500 5 .loc 1 501 5 .loc 1 502 5 .loc 1 502 12 is_stmt 0 mv a1,s0 li a0,38 call auto_cal_timing .LVL236: sext.w s11,a0 .LVL237: .loc 1 504 5 is_stmt 1 .loc 1 505 5 .loc 1 506 5 mv a6,s1 .L82: .loc 1 526 11 is_stmt 0 sd s3,0(sp) .LVL238: .L42: .loc 1 608 70 is_stmt 1 .loc 1 609 3 .loc 1 609 69 is_stmt 0 slliw a4,s10,15 .loc 1 609 40 slliw a5,s3,6 .loc 1 609 61 or a5,a5,a4 or a5,a5,s9 .loc 1 609 54 slliw a4,s7,11 .loc 1 609 61 or a5,a5,a4 .loc 1 609 76 li a4,4194304 or a5,a5,a4 .loc 1 609 19 sw a5,40(s5) .loc 1 610 61 is_stmt 1 .loc 1 611 3 .loc 1 611 40 is_stmt 0 ld a5,0(sp) .loc 1 611 53 slliw a4,s6,11 .loc 1 613 19 sd s1,64(sp) .loc 1 611 40 slliw a5,a5,6 .loc 1 611 46 or a5,a5,a4 or a5,a5,s11 .loc 1 611 68 slliw a4,s1,15 .loc 1 611 60 or a5,a5,a4 .loc 1 611 83 slliw a4,s1,20 .loc 1 611 75 or a5,a5,a4 .loc 1 611 97 slliw a4,a6,23 .loc 1 611 90 or a5,a5,a4 .loc 1 611 19 sw a5,44(s5) .loc 1 612 61 is_stmt 1 .loc 1 613 3 .loc 1 613 42 is_stmt 0 ld a5,8(sp) slliw a5,a5,12 .loc 1 613 34 or a5,s2,a5 .loc 1 613 19 sw a5,48(s5) li a5,2 sd a5,88(sp) j .L36 .LVL239: .L40: .loc 1 511 5 is_stmt 1 .loc 1 512 5 .loc 1 512 12 is_stmt 0 li a0,35 call auto_cal_timing .LVL240: sext.w s10,a0 .LVL241: .loc 1 513 5 is_stmt 1 .loc 1 513 12 is_stmt 0 mv a1,s0 li a0,6 call auto_cal_timing .LVL242: sext.w a0,a0 .LVL243: .loc 1 514 5 is_stmt 1 li a5,2 mv s7,a0 bgeu a0,a5,.L43 li s7,2 .L43: .LVL244: .loc 1 515 5 .loc 1 515 12 is_stmt 0 mv a1,s0 li a0,14 call auto_cal_timing .LVL245: .loc 1 516 11 mv a1,s0 .loc 1 515 12 sext.w s3,a0 .LVL246: .loc 1 516 5 is_stmt 1 .loc 1 516 11 is_stmt 0 li a0,48 call auto_cal_timing .LVL247: sext.w s9,a0 .LVL248: .loc 1 518 5 is_stmt 1 .loc 1 519 5 .loc 1 520 5 .loc 1 521 5 .loc 1 522 5 .loc 1 523 5 .loc 1 524 5 .loc 1 525 5 .loc 1 526 5 .loc 1 527 5 .loc 1 527 12 is_stmt 0 mv a1,s0 li a0,34 call auto_cal_timing .LVL249: sext.w s11,a0 .LVL250: .loc 1 529 5 is_stmt 1 .loc 1 530 5 .loc 1 531 5 .loc 1 527 12 is_stmt 0 mv a6,s7 j .L82 .LVL251: .L37: .loc 1 534 8 is_stmt 1 .loc 1 534 10 is_stmt 0 li a5,2 bne s8,a5,.L44 .loc 1 536 4 is_stmt 1 .loc 1 537 4 .loc 1 537 11 is_stmt 0 mv a1,s0 li a0,50 .LVL252: call auto_cal_timing .LVL253: .loc 1 538 11 mv a1,s0 .loc 1 537 11 sext.w s10,a0 .LVL254: .loc 1 538 4 is_stmt 1 .loc 1 538 11 is_stmt 0 li a0,10 call auto_cal_timing .LVL255: .loc 1 539 11 mv a1,s0 .loc 1 538 11 sext.w s7,a0 .LVL256: .loc 1 539 4 is_stmt 1 .loc 1 539 11 is_stmt 0 li a0,20 call auto_cal_timing .LVL257: .loc 1 540 10 mv a1,s0 .loc 1 539 11 sext.w s3,a0 .LVL258: .loc 1 540 4 is_stmt 1 .loc 1 540 10 is_stmt 0 li a0,65 call auto_cal_timing .LVL259: .loc 1 543 11 mv a1,s0 .loc 1 540 10 sext.w s9,a0 .LVL260: .loc 1 542 4 is_stmt 1 .loc 1 543 4 .loc 1 543 11 is_stmt 0 li a0,8 call auto_cal_timing .LVL261: .loc 1 545 10 mv a1,s0 .loc 1 543 11 sext.w s1,a0 .LVL262: .loc 1 544 4 is_stmt 1 .loc 1 545 4 .loc 1 545 10 is_stmt 0 li a0,15 call auto_cal_timing .LVL263: sext.w a5,a0 .loc 1 547 11 mv a1,s0 li a0,45 .loc 1 545 10 sd a5,0(sp) .LVL264: .loc 1 546 4 is_stmt 1 .loc 1 547 4 .loc 1 547 11 is_stmt 0 call auto_cal_timing .LVL265: sext.w s11,a0 .LVL266: .loc 1 549 4 is_stmt 1 .loc 1 549 12 is_stmt 0 li a0,8192 mv a1,s0 addi a0,a0,-392 call auto_cal_timing .LVL267: sext.w a0,a0 .LVL268: .loc 1 550 4 is_stmt 1 .loc 1 550 19 is_stmt 0 srliw s2,a0,5 .loc 1 550 54 andi a0,a0,31 .LVL269: snez a0,a0 .loc 1 550 10 addw s2,s2,a0 .loc 1 551 4 is_stmt 1 .loc 1 551 11 is_stmt 0 mv a1,s0 li a0,328 call auto_cal_timing .LVL270: sext.w a5,a0 sd a5,8(sp) .LVL271: .loc 1 542 8 li a6,2 .loc 1 545 10 ld s6,0(sp) j .L42 .LVL272: .L44: .loc 1 553 8 is_stmt 1 .loc 1 553 10 is_stmt 0 li a5,6 bne s8,a5,.L45 .loc 1 555 4 is_stmt 1 .loc 1 556 4 .loc 1 556 11 is_stmt 0 mv a1,s0 li a0,50 .LVL273: call auto_cal_timing .LVL274: sext.w a0,a0 .LVL275: .loc 1 557 4 is_stmt 1 li a5,4 mv s10,a0 bgeu a0,a5,.L46 li s10,4 .L46: .LVL276: .loc 1 558 4 .loc 1 558 11 is_stmt 0 mv a1,s0 li a0,10 call auto_cal_timing .LVL277: sext.w s7,a0 .LVL278: .loc 1 559 4 is_stmt 1 .loc 1 559 6 is_stmt 0 bnez s7,.L47 .loc 1 559 22 li s7,1 .LVL279: .L47: .loc 1 560 4 is_stmt 1 .loc 1 560 11 is_stmt 0 mv a1,s0 li a0,24 call auto_cal_timing .LVL280: sext.w a0,a0 .LVL281: .loc 1 561 4 is_stmt 1 li a5,2 mv s3,a0 bgeu a0,a5,.L48 li s3,2 .L48: .LVL282: .loc 1 562 4 .loc 1 562 10 is_stmt 0 mv a1,s0 li a0,70 call auto_cal_timing .LVL283: sext.w s9,a0 .LVL284: .loc 1 564 4 is_stmt 1 .loc 1 564 10 is_stmt 0 mv a1,s0 li a0,8 call auto_cal_timing .LVL285: sext.w a6,a0 .LVL286: .loc 1 565 4 is_stmt 1 .loc 1 565 6 is_stmt 0 beqz a6,.L73 .loc 1 566 4 is_stmt 1 .LVL287: .loc 1 567 4 li a5,2 mv s1,a6 bgeu a6,a5,.L49 .LVL288: .L81: .loc 1 567 22 is_stmt 0 li s1,2 .L49: .loc 1 570 10 mv a1,s0 li a0,15 .LVL289: sd a6,0(sp) .LVL290: .loc 1 568 4 is_stmt 1 .loc 1 569 4 .loc 1 570 4 .loc 1 570 10 is_stmt 0 call auto_cal_timing .LVL291: sext.w a0,a0 .LVL292: .loc 1 571 4 is_stmt 1 li a5,2 mv s6,a0 ld a6,0(sp) bgeu a0,a5,.L51 li s6,2 .L51: .loc 1 573 10 is_stmt 0 mv a1,s0 li a0,17 .LVL293: sd a6,16(sp) .loc 1 573 4 is_stmt 1 .loc 1 573 10 is_stmt 0 call auto_cal_timing .LVL294: sext.w a5,a0 .loc 1 574 11 mv a1,s0 li a0,42 .loc 1 573 10 sd a5,0(sp) .LVL295: .loc 1 574 4 is_stmt 1 .loc 1 574 11 is_stmt 0 call auto_cal_timing .LVL296: sext.w s11,a0 .LVL297: .loc 1 576 4 is_stmt 1 .loc 1 576 12 is_stmt 0 li a0,4096 mv a1,s0 addi a0,a0,-196 call auto_cal_timing .LVL298: sext.w a0,a0 .LVL299: .loc 1 577 4 is_stmt 1 .loc 1 577 19 is_stmt 0 srliw s2,a0,5 .loc 1 577 54 andi a0,a0,31 .LVL300: snez a0,a0 .loc 1 577 10 addw s2,s2,a0 .loc 1 578 4 is_stmt 1 .loc 1 578 11 is_stmt 0 mv a1,s0 li a0,210 call auto_cal_timing .LVL301: sext.w a5,a0 sd a5,8(sp) .LVL302: ld a6,16(sp) j .L42 .LVL303: .L73: .loc 1 565 20 li a6,1 .LVL304: j .L81 .LVL305: .L45: .loc 1 580 8 is_stmt 1 .loc 1 580 10 is_stmt 0 li a5,7 bne s8,a5,.L74 .loc 1 582 4 is_stmt 1 .loc 1 583 4 .loc 1 583 11 is_stmt 0 mv a1,s0 li a0,50 .LVL306: call auto_cal_timing .LVL307: sext.w a0,a0 .LVL308: .loc 1 584 4 is_stmt 1 li a5,4 mv s10,a0 bgeu a0,a5,.L52 li s10,4 .L52: .LVL309: .loc 1 585 4 .loc 1 585 11 is_stmt 0 mv a1,s0 li a0,10 call auto_cal_timing .LVL310: sext.w s7,a0 .LVL311: .loc 1 586 4 is_stmt 1 .loc 1 586 6 is_stmt 0 bnez s7,.L53 .loc 1 586 22 li s7,1 .LVL312: .L53: .loc 1 587 4 is_stmt 1 .loc 1 587 11 is_stmt 0 mv a1,s0 li a0,24 call auto_cal_timing .LVL313: sext.w a0,a0 .LVL314: .loc 1 588 4 is_stmt 1 li a5,2 mv s3,a0 bgeu a0,a5,.L54 li s3,2 .L54: .LVL315: .loc 1 589 4 .loc 1 589 10 is_stmt 0 mv a1,s0 li a0,70 call auto_cal_timing .LVL316: sext.w s9,a0 .LVL317: .loc 1 591 4 is_stmt 1 .loc 1 591 10 is_stmt 0 mv a1,s0 li a0,8 call auto_cal_timing .LVL318: sext.w a0,a0 .LVL319: .loc 1 592 4 is_stmt 1 li a5,2 mv s1,a0 bgeu a0,a5,.L55 li s1,2 .L55: .LVL320: .loc 1 593 4 .loc 1 594 4 .loc 1 595 4 .loc 1 596 4 .loc 1 597 4 .loc 1 597 10 is_stmt 0 mv a1,s0 li a0,15 call auto_cal_timing .LVL321: sext.w a0,a0 .LVL322: .loc 1 598 4 is_stmt 1 li a5,2 mv s6,a0 bgeu a0,a5,.L56 li s6,2 .L56: .LVL323: .loc 1 600 4 .loc 1 600 10 is_stmt 0 mv a1,s0 li a0,17 call auto_cal_timing .LVL324: sext.w a5,a0 .loc 1 601 11 mv a1,s0 li a0,42 .loc 1 600 10 sd a5,0(sp) .LVL325: .loc 1 601 4 is_stmt 1 .loc 1 601 11 is_stmt 0 call auto_cal_timing .LVL326: sext.w s11,a0 .LVL327: .loc 1 603 4 is_stmt 1 .loc 1 603 12 is_stmt 0 li a0,4096 mv a1,s0 addi a0,a0,-196 call auto_cal_timing .LVL328: sext.w a0,a0 .LVL329: .loc 1 604 4 is_stmt 1 .loc 1 604 19 is_stmt 0 srliw s2,a0,5 .loc 1 604 54 andi a0,a0,31 .LVL330: snez a0,a0 .loc 1 604 10 addw s2,s2,a0 .loc 1 605 4 is_stmt 1 .loc 1 605 11 is_stmt 0 mv a1,s0 li a0,210 call auto_cal_timing .LVL331: sext.w a5,a0 sd a5,8(sp) .LVL332: mv a6,s1 j .L42 .LVL333: .L74: .loc 1 443 15 li a5,128 sd a5,8(sp) .loc 1 437 15 li a5,6 .loc 1 442 15 li s2,98 .loc 1 441 15 li a6,10 .loc 1 439 15 li s6,8 .loc 1 438 15 li s1,3 .loc 1 437 15 sd a5,0(sp) .loc 1 436 15 li s11,14 .loc 1 435 15 li s10,16 .loc 1 434 15 li s9,20 .loc 1 433 15 li s3,6 .loc 1 432 15 li s7,3 j .L42 .LVL334: .L58: li a5,6 beq s8,a5,.L61 li a5,7 bne s8,a5,.L84 .loc 1 733 4 is_stmt 1 .LVL335: .loc 1 734 4 .loc 1 735 4 .loc 1 736 4 .loc 1 737 4 .loc 1 738 4 .loc 1 739 4 .loc 1 740 4 .loc 1 740 12 is_stmt 0 li a5,60 divuw t3,s4,a5 .LVL336: .loc 1 742 4 is_stmt 1 .loc 1 742 6 is_stmt 0 li a5,800 bleu s4,a5,.L79 .loc 1 753 10 li a5,4 .loc 1 755 16 li a7,3 .loc 1 754 16 li a4,6 .loc 1 758 9 li t2,12 .LVL337: .L65: .loc 1 762 4 is_stmt 1 .loc 1 762 19 is_stmt 0 li a3,200 .loc 1 763 37 li a1,1000 .loc 1 768 11 addiw s1,s1,5 .LVL338: .loc 1 766 9 addiw s6,s6,5 .LVL339: .loc 1 769 4 mv a0,s8 .loc 1 766 9 addw s6,s6,a5 .LVL340: .loc 1 769 4 ld s0,72(sp) .loc 1 737 11 li t1,5 .loc 1 739 11 li t4,5 .loc 1 767 11 li t6,13 .loc 1 736 9 li s8,3 .LVL341: .loc 1 735 9 li t0,12 .loc 1 734 9 li t5,5 .loc 1 762 19 mulw a3,a3,s4 .loc 1 762 12 addiw a3,a3,1 sd a3,16(sp) .LVL342: .loc 1 763 4 is_stmt 1 .loc 1 763 19 is_stmt 0 li a3,100 mulw a3,a3,s4 .loc 1 763 37 divuw a3,a3,a1 .loc 1 733 9 li a1,5 .loc 1 763 12 addiw a3,a3,1 sd a3,24(sp) .LVL343: .loc 1 764 4 is_stmt 1 .loc 1 764 18 is_stmt 0 li a3,11 mulw a3,a3,s4 .loc 1 764 12 addiw a3,a3,1 sd a3,32(sp) .LVL344: .loc 1 765 4 is_stmt 1 .loc 1 765 12 is_stmt 0 addiw a3,s4,1 sd a3,40(sp) .LVL345: .loc 1 766 4 is_stmt 1 .loc 1 767 4 .loc 1 768 4 .loc 1 768 11 is_stmt 0 addw a3,s1,a5 sd a3,48(sp) .LVL346: .loc 1 769 4 is_stmt 1 j .L85 .LVL347: .L59: .loc 1 621 4 .loc 1 622 4 .loc 1 623 4 .loc 1 624 4 .loc 1 625 4 .loc 1 626 4 .loc 1 627 4 .loc 1 628 4 .loc 1 628 12 is_stmt 0 li a5,30 divuw t3,s4,a5 .LVL348: .loc 1 630 4 is_stmt 1 .loc 1 630 6 is_stmt 0 li a5,409 bgtu s4,a5,.L75 .loc 1 647 9 li a3,4096 .loc 1 643 9 li a0,3 .loc 1 645 16 li a4,1 .loc 1 647 9 addi a3,a3,-1437 .L63: .LVL349: .loc 1 653 4 is_stmt 1 .loc 1 653 19 is_stmt 0 li a5,400 .loc 1 654 37 li a1,1000 .loc 1 622 9 mv t5,s8 .loc 1 657 9 addiw s6,s6,5 .LVL350: .loc 1 625 11 li t1,5 .loc 1 627 11 li t4,4 .loc 1 659 11 li t6,4 .loc 1 624 9 li s8,3 .LVL351: .loc 1 623 9 li t0,12 .loc 1 660 4 li a7,1 li s0,0 li t2,0 .loc 1 653 19 mulw a5,a5,s4 .loc 1 653 12 addiw a5,a5,1 sd a5,16(sp) .LVL352: .loc 1 654 4 is_stmt 1 .loc 1 654 19 is_stmt 0 li a5,500 mulw a5,a5,s4 .loc 1 654 37 divuw a5,a5,a1 .loc 1 621 9 li a1,0 .loc 1 654 12 addiw a5,a5,1 sd a5,24(sp) .LVL353: .loc 1 655 4 is_stmt 1 .loc 1 655 19 is_stmt 0 li a5,200 mulw a5,a5,s4 .loc 1 655 12 addiw a5,a5,1 sd a5,32(sp) .LVL354: .loc 1 656 4 is_stmt 1 .loc 1 656 12 is_stmt 0 addiw a5,s4,1 sd a5,40(sp) .LVL355: .loc 1 657 4 is_stmt 1 .loc 1 658 4 .loc 1 658 11 is_stmt 0 addiw a5,s1,5 sd a5,48(sp) .LVL356: .loc 1 659 4 is_stmt 1 .loc 1 660 4 ld s1,56(sp) .LVL357: li a5,3 j .L60 .LVL358: .L75: .loc 1 636 9 is_stmt 0 li a3,4096 .loc 1 634 16 li a4,2 .loc 1 632 9 li a0,4 .loc 1 636 9 addi a3,a3,-397 j .L63 .LVL359: .L57: .loc 1 663 4 is_stmt 1 .loc 1 664 4 .loc 1 665 4 .loc 1 666 4 .loc 1 667 4 .loc 1 668 4 .loc 1 669 4 .loc 1 670 4 .loc 1 670 12 is_stmt 0 li a5,30 divuw t3,s4,a5 .LVL360: .loc 1 672 4 is_stmt 1 .loc 1 672 6 is_stmt 0 li a5,800 bleu s4,a5,.L76 .loc 1 689 9 li a3,8192 .loc 1 688 16 li a7,3 .loc 1 685 9 li a0,7 .loc 1 687 16 li a4,5 .loc 1 691 9 li t2,32 .loc 1 689 9 addi a3,a3,-492 .L64: .LVL361: .loc 1 695 4 is_stmt 1 .loc 1 695 19 is_stmt 0 li a5,500 .loc 1 696 37 li a1,1000 .loc 1 700 11 addiw s1,s1,2 .LVL362: .loc 1 699 9 addiw s6,s6,2 .LVL363: addw s6,s6,a4 .LVL364: .loc 1 695 19 mulw a5,a5,s4 .loc 1 695 12 addiw a5,a5,1 sd a5,16(sp) .LVL365: .loc 1 696 4 is_stmt 1 .loc 1 696 19 is_stmt 0 li a5,360 mulw a5,a5,s4 .loc 1 696 37 divuw a5,a5,a1 .loc 1 696 12 addiw a5,a5,1 sd a5,24(sp) .LVL366: .loc 1 697 4 is_stmt 1 .loc 1 697 19 is_stmt 0 li a5,200 mulw a5,a5,s4 .loc 1 697 12 addiw a5,a5,1 sd a5,32(sp) .LVL367: .loc 1 698 4 is_stmt 1 .loc 1 698 12 is_stmt 0 addiw a5,s4,1 sd a5,40(sp) .LVL368: .loc 1 699 4 is_stmt 1 .loc 1 700 4 .loc 1 700 11 is_stmt 0 addw a5,s1,a4 sd a5,48(sp) .LVL369: .loc 1 701 4 is_stmt 1 .loc 1 702 4 .loc 1 702 6 is_stmt 0 ld a5,80(sp) extu a1,a5,2+2-1,2 .LVL370: li a5,1 beq a1,a5,.L77 .loc 1 702 28 discriminator 1 li a5,912 bgtu s4,a5,.L78 .L77: ld s1,56(sp) .LVL371: mv a5,a4 .loc 1 667 11 li t1,5 .loc 1 669 11 li t4,4 .loc 1 701 11 li t6,5 .L83: .loc 1 665 9 li t0,12 .loc 1 664 9 li t5,4 .loc 1 663 9 li a1,0 li s0,0 j .L60 .LVL372: .L76: .loc 1 678 9 li a3,8192 .loc 1 674 9 li a0,6 .loc 1 677 16 li a7,2 .loc 1 676 16 li a4,4 .loc 1 680 9 li t2,24 .loc 1 678 9 addi a3,a3,-912 j .L64 .LVL373: .L61: .loc 1 706 4 is_stmt 1 .loc 1 707 4 .loc 1 708 4 .loc 1 709 4 .loc 1 710 4 .loc 1 711 4 .loc 1 712 4 .loc 1 713 4 .loc 1 713 12 is_stmt 0 li a5,60 divuw t3,s4,a5 .LVL374: .loc 1 715 4 is_stmt 1 .loc 1 716 4 .loc 1 717 4 .loc 1 718 4 .loc 1 719 4 .loc 1 720 4 .loc 1 721 4 .loc 1 722 4 .loc 1 724 4 .loc 1 724 19 is_stmt 0 li a5,200 .loc 1 725 37 li a4,1000 .loc 1 722 8 ld s0,72(sp) .loc 1 728 9 addiw s6,s6,5 .LVL375: .loc 1 721 8 li t2,6 .loc 1 710 11 li t1,5 .loc 1 712 11 li t4,5 .loc 1 729 11 li t6,10 .loc 1 709 9 li s8,2 .LVL376: .loc 1 708 9 li t0,5 .loc 1 707 9 li t5,5 .loc 1 706 9 li a1,3 .loc 1 715 8 li a0,4 .loc 1 718 15 li a7,1 .loc 1 724 19 mulw a5,a5,s4 .loc 1 724 12 addiw a5,a5,1 sd a5,16(sp) .LVL377: .loc 1 725 4 is_stmt 1 .loc 1 725 19 is_stmt 0 li a5,100 mulw a5,a5,s4 .loc 1 725 37 divuw a5,a5,a4 .loc 1 717 15 li a4,3 .loc 1 725 12 addiw a5,a5,1 sd a5,24(sp) .LVL378: .loc 1 726 4 is_stmt 1 .loc 1 726 18 is_stmt 0 li a5,11 mulw a5,a5,s4 .loc 1 726 12 addiw a5,a5,1 sd a5,32(sp) .LVL379: .loc 1 727 4 is_stmt 1 .loc 1 727 12 is_stmt 0 addiw a5,s4,1 sd a5,40(sp) .LVL380: .loc 1 728 4 is_stmt 1 .loc 1 729 4 .loc 1 730 4 .loc 1 730 11 is_stmt 0 addiw a5,s1,5 sd a5,48(sp) .LVL381: .loc 1 731 4 is_stmt 1 .loc 1 716 9 is_stmt 0 li a5,2 .LVL382: .L85: .loc 1 769 4 li s1,195 li a3,0 j .L60 .LVL383: .L79: .loc 1 744 10 li a5,3 .loc 1 743 9 li s8,6 .LVL384: .loc 1 746 16 li a7,2 .loc 1 745 16 li a4,5 .loc 1 749 9 li t2,10 j .L65 .LVL385: .L78: mv a5,a4 ld s1,56(sp) .LVL386: .loc 1 667 11 li t1,5 .loc 1 669 11 li t4,4 .loc 1 703 12 li t6,6 j .L83 .LVL387: .L71: .loc 1 831 3 is_stmt 1 .loc 1 831 11 is_stmt 0 li a3,-268406784 j .L86 .cfi_endproc .LFE50: .size auto_set_timing_para, .-auto_set_timing_para .section .text.ccm_get_sscg,"ax",@progbits .align 1 .globl ccm_get_sscg .type ccm_get_sscg, @function ccm_get_sscg: .LFB51: .loc 1 857 1 is_stmt 1 .cfi_startproc .LVL388: .loc 1 858 2 .loc 1 859 2 .loc 1 860 2 .loc 1 862 2 .loc 1 862 17 is_stmt 0 li a5,24 divuw a4,a1,a5 .LVL389: .loc 1 863 3 is_stmt 1 .loc 1 863 5 is_stmt 0 mulw a5,a5,a4 beq a5,a1,.L94 .loc 1 865 4 is_stmt 1 .loc 1 857 1 is_stmt 0 addi sp,sp,-32 .cfi_def_cfa_offset 32 sd s1,16(sp) .cfi_offset 9, -16 .loc 1 865 12 extu s1,a2,31,0 .LVL390: .LBB1380: .LBB1381: .loc 2 138 2 is_stmt 1 .loc 2 140 2 .LBE1381: .LBE1380: .loc 1 857 1 is_stmt 0 sd ra,24(sp) sd s0,8(sp) .cfi_offset 1, -8 .cfi_offset 8, -24 .LBB1383: .LBB1382: .loc 2 140 6 lw a5,0(s1) .LVL391: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL392: #NO_APP .LBE1382: .LBE1383: .loc 1 866 4 .loc 1 866 6 is_stmt 0 extu a5,a5,1+1-1,1 .LVL393: extu s0,a3,31,0 beqz a5,.L89 .loc 1 867 5 is_stmt 1 .LVL394: .LBB1384: .LBB1385: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,0(s0) .LVL395: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL396: #NO_APP .LBE1385: .LBE1384: .LBB1386: .LBB1387: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1387: .LBE1386: .loc 1 867 5 is_stmt 0 li a3,524288 .LVL397: or a5,a5,a3 .LVL398: .LBB1389: .LBB1388: .loc 2 97 2 sw a5,0(s0) .LVL399: .L89: .LBE1388: .LBE1389: .loc 1 869 3 is_stmt 1 .loc 1 870 3 .loc 1 871 3 .loc 1 869 26 is_stmt 0 lui a5,%hi(.LC9) flw fa4,%lo(.LC9)(a5) .loc 1 869 6 fcvt.s.wu fa5,a1 .LVL400: .loc 1 870 14 lui a5,%hi(.LC10) .loc 1 869 26 fdiv.s fa5,fa5,fa4 .LVL401: .loc 1 869 30 fcvt.s.w fa4,a4 .loc 1 869 4 fsub.s fa5,fa5,fa4 .LVL402: .loc 1 870 14 flw fa4,%lo(.LC10)(a5) fmul.s fa5,fa5,fa4 .LVL403: .loc 1 870 11 fcvt.w.s a5,fa5,rtz .LVL404: .LBB1390: .LBB1391: .loc 2 96 2 is_stmt 1 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,0(s0) .LVL405: .LBE1391: .LBE1390: .loc 1 873 3 .LBB1392: .LBB1393: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL406: #NO_APP .LBE1393: .LBE1392: .loc 1 875 3 .loc 1 875 8 is_stmt 0 li a4,655360 .LVL407: addiw a4,a4,-1 and a5,a4,a5 .LVL408: .loc 1 876 3 is_stmt 1 .loc 1 877 3 .LBB1394: .LBB1395: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1395: .LBE1394: .loc 1 876 7 is_stmt 0 li a4,-536477696 or a5,a5,a4 .LVL409: .LBB1397: .LBB1396: .loc 2 97 2 sw a5,0(s0) .LVL410: .LBE1396: .LBE1397: .loc 1 879 3 is_stmt 1 .LBB1398: .LBB1399: .loc 1 59 3 li a0,20 .LVL411: call sdelay .LVL412: .LBE1399: .LBE1398: .loc 1 881 4 .LBB1400: .LBB1401: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,0(s1) .LVL413: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL414: #NO_APP .LBE1401: .LBE1400: .loc 1 882 4 .loc 1 883 4 .LBB1402: .LBB1403: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1403: .LBE1402: .loc 1 882 9 is_stmt 0 li a4,16777216 or a5,a5,a4 .LVL415: .LBB1405: .LBB1404: .loc 2 97 2 sw a5,0(s1) .LVL416: .LBE1404: .LBE1405: .loc 1 885 4 is_stmt 1 .LBB1406: .LBB1407: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a0,0(s0) .LVL417: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL418: #NO_APP .LBE1407: .LBE1406: .loc 1 889 1 is_stmt 0 ld ra,24(sp) .cfi_restore 1 ld s0,8(sp) .cfi_restore 8 .LVL419: .loc 1 885 13 extu a0,a0,0+17-1,0 .loc 1 889 1 ld s1,16(sp) .cfi_restore 9 .LVL420: .loc 1 885 13 sext.w a0,a0 .LVL421: .loc 1 888 3 is_stmt 1 .loc 1 889 1 is_stmt 0 addi sp,sp,32 .cfi_def_cfa_offset 0 jr ra .LVL422: .L94: li a0,0 .LVL423: .loc 1 888 3 is_stmt 1 .loc 1 889 1 is_stmt 0 ret .cfi_endproc .LFE51: .size ccm_get_sscg, .-ccm_get_sscg .section .text.ccm_set_pll_sscg,"ax",@progbits .align 1 .globl ccm_set_pll_sscg .type ccm_set_pll_sscg, @function ccm_set_pll_sscg: .LFB52: .loc 1 900 1 is_stmt 1 .cfi_startproc .LVL424: .loc 1 901 2 .loc 1 903 2 .loc 1 900 1 is_stmt 0 addi sp,sp,-16 .cfi_def_cfa_offset 16 sd s0,0(sp) .cfi_offset 8, -16 .loc 1 903 13 extu s0,a1,31,0 .LVL425: .LBB1408: .LBB1409: .loc 2 138 2 is_stmt 1 .loc 2 140 2 .LBE1409: .LBE1408: .loc 1 900 1 is_stmt 0 sd ra,8(sp) .cfi_offset 1, -8 .LBB1411: .LBB1410: .loc 2 140 6 lw a5,0(s0) .LVL426: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL427: #NO_APP .LBE1410: .LBE1411: .loc 1 904 2 .loc 1 904 4 is_stmt 0 extu a5,a5,1+1-1,1 .LVL428: extu a2,a2,31,0 beqz a5,.L100 .loc 1 905 3 is_stmt 1 .LVL429: .LBB1412: .LBB1413: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,0(a2) .LVL430: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL431: #NO_APP .LBE1413: .LBE1412: .LBB1414: .LBB1415: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1415: .LBE1414: .loc 1 905 3 is_stmt 0 li a4,524288 or a5,a5,a4 .LVL432: .LBB1417: .LBB1416: .loc 2 97 2 sw a5,0(a2) .LVL433: .L100: .LBE1416: .LBE1417: .loc 1 907 2 is_stmt 1 .loc 1 910 2 .loc 1 907 30 is_stmt 0 lw a5,92(a0) .loc 1 910 2 li a4,4 .loc 1 907 10 extu a5,a5,20+3-1,20 .loc 1 910 2 addiw a3,a5,-1 bgtu a3,a4,.L101 lui a4,%hi(.L103) addi a4,a4,%lo(.L103) lurw a5,a4,a3,2 jr a5 .section .rodata .align 2 .align 2 .L103: .word .L107 .word .L106 .word .L105 .word .L101 .word .L102 .section .text.ccm_set_pll_sscg .L107: .loc 1 913 4 is_stmt 1 .LVL434: .LBB1418: .LBB1419: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a5,-460926976 addiw a5,a5,-820 .LVL435: .L113: .LBE1419: .LBE1418: .LBB1420: .LBB1421: sw a5,0(a2) .LVL436: .LBE1421: .LBE1420: .loc 1 931 2 .LBB1423: .LBB1424: .loc 1 59 3 li a0,20 .LVL437: call sdelay .LVL438: .LBE1424: .LBE1423: .loc 1 933 2 .LBB1425: .LBB1426: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,0(s0) .LVL439: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL440: #NO_APP .LBE1426: .LBE1425: .loc 1 934 2 .loc 1 935 2 .LBB1427: .LBB1428: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1428: .LBE1427: .loc 1 934 10 is_stmt 0 li a4,16777216 or a5,a5,a4 .LVL441: .LBB1430: .LBB1429: .loc 2 97 2 sw a5,0(s0) .LVL442: .LBE1429: .LBE1430: .loc 1 936 2 is_stmt 1 .loc 1 937 1 is_stmt 0 ld ra,8(sp) .cfi_remember_state .cfi_restore 1 ld s0,0(sp) .cfi_restore 8 .LVL443: li a0,0 addi sp,sp,16 .cfi_def_cfa_offset 0 jr ra .LVL444: .L106: .cfi_restore_state .loc 1 916 4 is_stmt 1 .LBB1431: .LBB1432: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a5,-385441792 addiw a5,a5,-1639 j .L113 .LVL445: .L105: .LBE1432: .LBE1431: .loc 1 919 4 .LBB1433: .LBB1434: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a5,-309960704 addiw a5,a5,1638 j .L113 .LVL446: .L102: .LBE1434: .LBE1433: .loc 1 925 4 .LBB1435: .LBB1436: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a5,-175767552 j .L113 .LVL447: .L101: .LBE1436: .LBE1435: .loc 1 928 4 .LBB1437: .LBB1422: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a5,-234475520 addiw a5,a5,819 j .L113 .LBE1422: .LBE1437: .cfi_endproc .LFE52: .size ccm_set_pll_sscg, .-ccm_set_pll_sscg .section .text.ccm_set_pll_ddr_clk,"ax",@progbits .align 1 .globl ccm_set_pll_ddr_clk .type ccm_set_pll_ddr_clk, @function ccm_set_pll_ddr_clk: .LFB53: .loc 1 1048 1 .cfi_startproc .LVL448: .loc 1 1049 2 .loc 1 1050 2 .loc 1 1051 2 .loc 1 1052 3 .loc 1 1054 2 .loc 1 1057 2 .loc 1 1058 2 .loc 1 1060 2 .loc 1 1060 24 is_stmt 0 lw a5,92(a1) .loc 1 1048 1 addi sp,sp,-32 .cfi_def_cfa_offset 32 sd ra,24(sp) sd s0,8(sp) sd s1,16(sp) .cfi_offset 1, -8 .cfi_offset 8, -24 .cfi_offset 9, -16 .loc 1 1060 4 extu a5,a5,6+1-1,6 bne a5,a0,.L115 .loc 1 1061 3 is_stmt 1 .loc 1 1061 11 is_stmt 0 lw s0,0(a1) .L121: .loc 1 1068 3 li a5,24 .LBB1438: .LBB1439: .loc 2 140 6 li a4,33558528 .LBE1439: .LBE1438: .loc 1 1063 11 slliw s0,s0,1 .LVL449: .loc 1 1068 2 is_stmt 1 .loc 1 1068 3 is_stmt 0 divuw s0,s0,a5 .LVL450: .loc 1 1069 2 is_stmt 1 .LBB1441: .LBB1440: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,16(a4) .LVL451: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL452: #NO_APP .LBE1440: .LBE1441: .loc 1 1070 2 .loc 1 1071 2 .loc 1 1072 2 .loc 1 1073 2 .loc 1 1072 7 is_stmt 0 li a2,-524288 .loc 1 1073 43 addiw a3,s0,-1 .loc 1 1072 7 addi a2,a2,252 .loc 1 1073 48 slliw a3,a3,8 .loc 1 1072 7 and a5,a5,a2 .LVL453: .loc 1 1073 7 or a5,a5,a3 sext.w a5,a5 .LVL454: .loc 1 1074 2 is_stmt 1 .LBB1442: .LBB1443: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1443: .LBE1442: .loc 1 1073 7 is_stmt 0 li a3,-1073741824 or a2,a5,a3 .LBB1445: .LBB1444: .loc 2 97 2 sw a2,16(a4) .LVL455: .LBE1444: .LBE1445: .loc 1 1081 2 is_stmt 1 li a2,-536870912 addi a2,a2,-1 and a5,a5,a2 .LVL456: .loc 1 1082 2 .LBB1446: .LBB1447: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1447: .LBE1446: .loc 1 1081 7 is_stmt 0 or a3,a5,a3 .LBB1449: .LBB1448: .loc 2 97 2 sw a3,16(a4) .LVL457: .LBE1448: .LBE1449: .loc 1 1084 2 is_stmt 1 .LBB1450: .LBB1451: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1451: .LBE1450: .loc 1 1084 2 is_stmt 0 li a3,-536870912 or a5,a5,a3 .LVL458: .LBB1453: .LBB1452: .loc 2 97 2 sw a5,16(a4) .LBE1452: .LBE1453: .loc 1 1086 32 li a3,268435456 .L117: .loc 1 1086 43 is_stmt 1 discriminator 1 .LVL459: .LBB1454: .LBB1455: .loc 2 138 2 discriminator 1 .loc 2 140 2 discriminator 1 .loc 2 140 6 is_stmt 0 discriminator 1 addi s1,a4,16 lw a5,16(a4) .LVL460: .loc 2 141 2 is_stmt 1 discriminator 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 1 .LVL461: #NO_APP .LBE1455: .LBE1454: .loc 1 1086 7 is_stmt 0 discriminator 1 and a5,a5,a3 beqz a5,.L117 .loc 1 1087 2 is_stmt 1 .LVL462: .LBB1456: .LBB1457: .loc 1 59 3 li a0,20 .LVL463: call sdelay .LVL464: .LBE1457: .LBE1456: .loc 1 1089 2 .LBB1458: .LBB1459: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,0(s1) .LVL465: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL466: #NO_APP .LBE1459: .LBE1458: .loc 1 1090 2 .loc 1 1091 2 .LBB1460: .LBB1461: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1461: .LBE1460: .loc 1 1090 7 is_stmt 0 li a4,134217728 or a5,a5,a4 .LVL467: .LBB1463: .LBB1462: .loc 2 97 2 sw a5,0(s1) .LVL468: .LBE1462: .LBE1463: .loc 1 1094 2 is_stmt 1 .LBB1464: .LBB1465: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a3,33562624 lw a5,-2048(a3) .LVL469: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL470: #NO_APP .LBE1465: .LBE1464: .loc 1 1095 2 .loc 1 1096 2 .loc 1 1096 7 is_stmt 0 li a4,-50331648 addi a4,a4,-772 and a5,a5,a4 .LVL471: .loc 1 1097 2 is_stmt 1 .loc 1 1098 2 .LBB1466: .LBB1467: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1467: .LBE1466: .loc 1 1103 1 is_stmt 0 li a0,24 mulw a0,a0,s0 ld ra,24(sp) .cfi_remember_state .cfi_restore 1 ld s0,8(sp) .cfi_restore 8 .LVL472: .loc 1 1097 7 li a4,-2147483648 or a5,a5,a4 .LVL473: .LBB1469: .LBB1468: .loc 2 97 2 sw a5,-2048(a3) .LVL474: .LBE1468: .LBE1469: .loc 1 1101 2 is_stmt 1 .loc 1 1102 2 .loc 1 1103 1 is_stmt 0 ld s1,16(sp) .cfi_restore 9 addi sp,sp,32 .cfi_def_cfa_offset 0 jr ra .LVL475: .L115: .cfi_restore_state .loc 1 1063 3 is_stmt 1 .loc 1 1063 11 is_stmt 0 lw s0,76(a1) j .L121 .cfi_endproc .LFE53: .size ccm_set_pll_ddr_clk, .-ccm_set_pll_ddr_clk .section .text.mctl_sys_init,"ax",@progbits .align 1 .globl mctl_sys_init .type mctl_sys_init, @function mctl_sys_init: .LFB54: .loc 1 1110 1 is_stmt 1 .cfi_startproc .LVL476: .loc 1 1112 2 .loc 1 1113 2 .loc 1 1119 2 .LBB1470: .LBB1471: .loc 2 138 2 .loc 2 140 2 .LBE1471: .LBE1470: .loc 1 1110 1 is_stmt 0 addi sp,sp,-32 .cfi_def_cfa_offset 32 sdd s0,s1,(sp),0,4 .cfi_offset 8, -32 .cfi_offset 9, -24 .LBB1474: .LBB1472: .loc 2 140 6 li s1,33558528 .LBE1472: .LBE1474: .loc 1 1110 1 sd s2,16(sp) sd ra,24(sp) .cfi_offset 18, -16 .cfi_offset 1, -8 .loc 1 1110 1 mv s2,a0 .LBB1475: .LBB1473: .loc 2 140 6 lw a5,1344(s1) .LVL477: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL478: #NO_APP .LBE1473: .LBE1475: .loc 1 1120 2 .loc 1 1121 2 .LBB1476: .LBB1477: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1477: .LBE1476: .loc 1 1120 10 is_stmt 0 li a4,-1073741824 addi a4,a4,-1 and a5,a5,a4 .LVL479: .LBB1479: .LBB1478: .loc 2 97 2 sw a5,1344(s1) .LVL480: .LBE1478: .LBE1479: .loc 1 1123 2 is_stmt 1 .LBB1480: .LBB1481: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li s0,33562624 lw a5,-2036(s0) .LVL481: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL482: #NO_APP .LBE1481: .LBE1480: .loc 1 1124 2 .loc 1 1125 2 .LBB1482: .LBB1483: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1483: .LBE1482: .loc 1 1124 10 is_stmt 0 andi a3,a5,-2 .LBB1485: .LBB1484: .loc 2 97 2 sw a3,-2036(s0) .LVL483: .LBE1484: .LBE1485: .loc 1 1127 2 is_stmt 1 .LBB1486: .LBB1487: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL484: #NO_APP .LBE1487: .LBE1486: .loc 1 1128 2 .loc 1 1129 2 .LBB1488: .LBB1489: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1489: .LBE1488: .loc 1 1128 10 is_stmt 0 li a3,-65536 addi a3,a3,-2 and a5,a5,a3 .LVL485: .LBB1491: .LBB1490: .loc 2 97 2 sw a5,-2036(s0) .LVL486: .LBE1490: .LBE1491: .loc 1 1132 2 is_stmt 1 .LBB1492: .LBB1493: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,-2048(s0) .LVL487: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL488: #NO_APP .LBE1493: .LBE1492: .loc 1 1133 2 .loc 1 1134 2 .LBB1494: .LBB1495: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1495: .LBE1494: .loc 1 1133 10 is_stmt 0 and a4,a5,a4 .LBB1497: .LBB1496: .loc 2 97 2 sw a4,-2048(s0) .LVL489: .LBE1496: .LBE1497: .loc 1 1136 2 is_stmt 1 .LBB1498: .LBB1499: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL490: #NO_APP .LBE1499: .LBE1498: .loc 1 1137 2 .loc 1 1137 10 is_stmt 0 extu a5,a5,0+30-1,0 .LVL491: sext.w a5,a5 .LVL492: .loc 1 1138 2 is_stmt 1 .LBB1500: .LBB1501: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,-2048(s0) .LVL493: .LBE1501: .LBE1500: .loc 1 1140 2 .LBB1502: .LBB1503: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL494: #NO_APP .LBE1503: .LBE1502: .loc 1 1141 2 .loc 1 1142 2 .LBB1504: .LBB1505: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1505: .LBE1504: .loc 1 1141 10 is_stmt 0 li a4,134217728 or a5,a5,a4 .LVL495: .LBB1507: .LBB1506: .loc 2 97 2 sw a5,-2048(s0) .LVL496: .LBE1506: .LBE1507: .loc 1 1143 2 is_stmt 1 .LBB1508: .LBB1509: .loc 1 59 3 li a0,10 .LVL497: call sdelay .LVL498: .LBE1509: .LBE1508: .loc 1 1146 2 .loc 1 1146 12 is_stmt 0 mv a1,s2 li a0,0 call ccm_set_pll_ddr_clk .LVL499: .loc 1 1148 2 is_stmt 1 .loc 1 1148 27 is_stmt 0 srliw a0,a0,1 .LVL500: .loc 1 1148 17 sw a0,0(s2) .loc 1 1149 43 is_stmt 1 .loc 1 1150 2 .LVL501: .LBB1510: .LBB1511: .loc 1 59 3 li a0,100 call sdelay .LVL502: .LBE1511: .LBE1510: .loc 1 1170 2 call dram_disable_all_master .LVL503: .loc 1 1173 2 .LBB1512: .LBB1513: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,-2036(s0) .LVL504: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL505: #NO_APP .LBE1513: .LBE1512: .loc 1 1174 2 .loc 1 1175 2 .LBB1514: .LBB1515: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1515: .LBE1514: .loc 1 1174 10 is_stmt 0 li a4,65536 or a5,a5,a4 .LVL506: .LBB1517: .LBB1516: .loc 2 97 2 sw a5,-2036(s0) .LVL507: .LBE1516: .LBE1517: .loc 1 1177 2 is_stmt 1 .LBB1518: .LBB1519: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a4,1344(s1) .LVL508: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL509: #NO_APP .LBE1519: .LBE1518: .loc 1 1178 2 .loc 1 1179 2 .LBB1520: .LBB1521: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1521: .LBE1520: .loc 1 1178 10 is_stmt 0 li a3,1073741824 or a4,a4,a3 .LVL510: .LBB1523: .LBB1522: .loc 2 97 2 sw a4,1344(s1) .LVL511: .LBE1522: .LBE1523: .loc 1 1181 2 is_stmt 1 .LBB1524: .LBB1525: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,-2048(s0) .LVL512: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL513: #NO_APP .LBE1525: .LBE1524: .loc 1 1182 2 .loc 1 1183 2 .LBB1526: .LBB1527: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1527: .LBE1526: .loc 1 1182 10 is_stmt 0 or a5,a5,a3 .LVL514: .LBB1529: .LBB1528: .loc 2 97 2 sw a5,-2048(s0) .LVL515: .LBE1528: .LBE1529: .loc 1 1184 2 is_stmt 1 .LBB1530: .LBB1531: .loc 1 59 3 li a0,5 call sdelay .LVL516: .LBE1531: .LBE1530: .loc 1 1187 2 .LBB1532: .LBB1533: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,-2036(s0) .LVL517: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL518: #NO_APP .LBE1533: .LBE1532: .loc 1 1188 2 .loc 1 1189 2 .LBB1534: .LBB1535: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1535: .LBE1534: .loc 1 1188 10 is_stmt 0 ori a5,a5,1 .LVL519: .LBB1537: .LBB1536: .loc 2 97 2 sw a5,-2036(s0) .LVL520: .LBE1536: .LBE1537: .loc 1 1196 2 is_stmt 1 .LBB1538: .LBB1539: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,-2048(s0) .LVL521: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL522: #NO_APP .LBE1539: .LBE1538: .loc 1 1197 2 .loc 1 1198 2 .LBB1540: .LBB1541: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1541: .LBE1540: .loc 1 1197 10 is_stmt 0 li a4,-2147483648 or a4,a5,a4 .LBB1543: .LBB1542: .loc 2 97 2 sw a4,-2048(s0) .LVL523: .LBE1542: .LBE1543: .loc 1 1200 2 is_stmt 1 .LBB1544: .LBB1545: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL524: #NO_APP .LBE1545: .LBE1544: .loc 1 1201 2 .loc 1 1202 2 .LBB1546: .LBB1547: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1547: .LBE1546: .loc 1 1201 10 is_stmt 0 li a4,-2013265920 or a5,a5,a4 .LVL525: .LBB1549: .LBB1548: .loc 2 97 2 sw a5,-2048(s0) .LVL526: .LBE1548: .LBE1549: .loc 1 1203 2 is_stmt 1 .LBB1550: .LBB1551: .loc 1 59 3 li a0,5 call sdelay .LVL527: .LBE1551: .LBE1550: .loc 1 1214 2 .LBB1552: .LBB1553: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a5,51392512 li a4,32768 .LBE1553: .LBE1552: .LBB1555: .LBB1556: .loc 1 59 3 is_stmt 0 li a0,10 .LBE1556: .LBE1555: .LBB1558: .LBB1554: .loc 2 97 2 sw a4,12(a5) .LVL528: .LBE1554: .LBE1558: .loc 1 1215 2 is_stmt 1 .LBB1559: .LBB1557: .loc 1 59 3 call sdelay .LVL529: .LBE1557: .LBE1559: .loc 1 1218 2 .loc 1 1220 1 is_stmt 0 ld ra,24(sp) .cfi_restore 1 ldd s0,s1,(sp),0,4 .cfi_restore 9 .cfi_restore 8 ld s2,16(sp) .cfi_restore 18 .LVL530: li a0,0 addi sp,sp,32 .cfi_def_cfa_offset 0 jr ra .cfi_endproc .LFE54: .size mctl_sys_init, .-mctl_sys_init .section .text.mctl_com_init,"ax",@progbits .align 1 .globl mctl_com_init .type mctl_com_init, @function mctl_com_init: .LFB55: .loc 1 1228 1 is_stmt 1 .cfi_startproc .LVL531: .loc 1 1229 2 .loc 1 1230 2 .loc 1 1237 2 .LBB1560: .LBB1561: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a4,51388416 lw a5,8(a4) .LVL532: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL533: #NO_APP .LBE1561: .LBE1560: .loc 1 1238 2 .loc 1 1238 10 is_stmt 0 li a3,-16384 addi a3,a3,255 and a5,a5,a3 .LVL534: .loc 1 1239 2 is_stmt 1 .loc 1 1240 2 .LBB1562: .LBB1563: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1563: .LBE1562: .loc 1 1239 10 is_stmt 0 li a3,8192 or a5,a5,a3 .LVL535: .LBB1565: .LBB1564: .loc 2 97 2 sw a5,8(a4) .LVL536: .LBE1564: .LBE1565: .loc 1 1242 2 is_stmt 1 .LBB1566: .LBB1567: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,0(a4) .LVL537: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL538: #NO_APP .LBE1567: .LBE1566: .loc 1 1243 2 .loc 1 1247 19 is_stmt 0 lw a2,4(a0) .loc 1 1243 10 li a4,-16773120 addi a4,a4,-1 and a5,a5,a4 .LVL539: .loc 1 1245 2 is_stmt 1 .loc 1 1247 2 .loc 1 1247 39 is_stmt 0 li a3,458752 slliw a4,a2,16 and a4,a4,a3 .LVL540: .loc 1 1249 2 is_stmt 1 .loc 1 1249 35 is_stmt 0 lw a3,20(a0) or a5,a4,a5 .LVL541: .loc 1 1251 4 addiw a2,a2,-6 .loc 1 1249 56 andi a3,a3,1 seqz a3,a3 slli a3,a3,12 or a4,a5,a3 .LVL542: .loc 1 1251 2 is_stmt 1 .loc 1 1251 4 is_stmt 0 li a5,1 bgtu a2,a5,.L126 .loc 1 1252 3 is_stmt 1 .loc 1 1252 11 is_stmt 0 li a5,4718592 .LVL543: .L151: .loc 1 1254 11 or a5,a5,a4 .LVL544: .loc 1 1255 2 is_stmt 1 .LBB1568: .LBB1569: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a4,51388416 sw a5,0(a4) .LVL545: .LBE1569: .LBE1568: .loc 1 1257 2 .loc 1 1257 10 is_stmt 0 lw a5,20(a0) .LVL546: .loc 1 1230 22 li a1,1 .loc 1 1257 23 andi a4,a5,256 .LVL547: .loc 1 1257 4 beqz a4,.L128 .loc 1 1257 37 discriminator 1 extu a5,a5,12+4-1,12 bne a5,a1,.L128 .loc 1 1258 12 li a1,2 .L128: .LVL548: .loc 1 1260 2 is_stmt 1 .loc 1 1278 13 is_stmt 0 li a6,4096 addi t4,a6,-2048 .loc 1 1275 13 addi t6,a6,-1792 slli a1,a1,4 .LVL549: .loc 1 1258 12 li a2,0 li a7,51388416 .LVL550: .loc 1 1263 11 li t3,-4096 li t1,2 li t5,4 li t0,8 .loc 1 1272 13 addi a6,a6,-1536 li t2,1 .LVL551: .L135: .loc 1 1262 3 is_stmt 1 .LBB1570: .LBB1571: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,0(a7) .LVL552: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL553: #NO_APP .LBE1571: .LBE1570: .loc 1 1263 3 .loc 1 1264 3 .loc 1 1265 3 .loc 1 1264 34 is_stmt 0 lwd a4,a3,(a0),2,3 .loc 1 1263 11 and a5,a5,t3 .LVL554: .loc 1 1264 40 extu a3,a3,12+2-1,12 or a3,a3,a5 .loc 1 1265 44 addiw a5,a2,12 .loc 1 1265 33 srlw a5,a4,a5 .loc 1 1265 58 slliw a5,a5,2 andi a5,a5,4 sext.w a3,a3 .loc 1 1265 11 or a3,a5,a3 .LVL555: .loc 1 1266 3 is_stmt 1 .loc 1 1266 47 is_stmt 0 addiw a5,a2,4 .loc 1 1266 36 srlw a5,a4,a5 .loc 1 1266 66 addiw a5,a5,-1 .loc 1 1266 73 slliw a5,a5,4 andi a5,a5,255 .loc 1 1268 30 srlw a4,a4,a2 .loc 1 1266 11 or a5,a5,a3 .LVL556: .loc 1 1268 3 is_stmt 1 .loc 1 1268 47 is_stmt 0 andi a4,a4,15 .loc 1 1278 13 or a3,a5,t4 beq a4,t1,.L134 bgtu a4,t1,.L130 .loc 1 1281 13 ori a3,a5,1792 beq a4,t2,.L134 .L132: .loc 1 1284 5 is_stmt 1 .loc 1 1284 13 is_stmt 0 ori a3,a5,1536 .LVL557: .loc 1 1285 5 is_stmt 1 j .L134 .LVL558: .L126: .loc 1 1254 3 .loc 1 1254 34 is_stmt 0 lw a5,92(a0) .loc 1 1254 47 li a3,524288 .loc 1 1254 34 srliw a5,a5,5 .loc 1 1254 47 slliw a5,a5,19 and a5,a5,a3 .loc 1 1254 11 or a5,a5,a4 li a4,4194304 .LVL559: j .L151 .LVL560: .L130: .loc 1 1275 13 or a3,a5,t6 beq a4,t5,.L134 .loc 1 1272 13 or a3,a5,a6 bne a4,t0,.L132 .LVL561: .L134: .loc 1 1287 3 is_stmt 1 discriminator 2 .LBB1572: .LBB1573: .loc 2 96 2 discriminator 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 discriminator 2 #NO_APP swia a3,(a7),4,0 .LVL562: addiw a2,a2,16 .LBE1573: .LBE1572: .loc 1 1260 2 is_stmt 0 discriminator 2 bne a1,a2,.L135 .loc 1 1289 62 is_stmt 1 .loc 1 1290 2 .loc 1 1294 2 .LVL563: .LBB1574: .LBB1575: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a5,51388416 lw a5,0(a5) .LVL564: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL565: #NO_APP .LBE1575: .LBE1574: .loc 1 1295 2 .loc 1 1295 4 is_stmt 0 andi a5,a5,1 .LVL566: .loc 1 1296 11 li a3,771 .loc 1 1295 4 bnez a5,.L136 .loc 1 1298 11 li a3,513 .L136: .LVL567: .loc 1 1299 2 is_stmt 1 .LBB1576: .LBB1577: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a4,51392512 sw a3,288(a4) .LVL568: .LBE1577: .LBE1576: .loc 1 1300 38 .loc 1 1303 2 .loc 1 1303 22 is_stmt 0 lw a5,20(a0) .loc 1 1303 4 andi a5,a5,1 beqz a5,.L137 .loc 1 1305 3 is_stmt 1 .LVL569: .LBB1578: .LBB1579: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw zero,964(a4) .LVL570: .L137: .LBE1579: .LBE1578: .loc 1 1310 2 .loc 1 1310 4 is_stmt 0 lw a5,56(a0) beqz a5,.L124 .loc 1 1312 3 is_stmt 1 .LVL571: .LBB1580: .LBB1581: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a4,51388416 .LVL572: lw a3,0(a4) .LVL573: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL574: #NO_APP .LBE1581: .LBE1580: .loc 1 1313 3 .loc 1 1313 39 is_stmt 0 lw a5,56(a0) li a2,100663296 slliw a5,a5,25 and a5,a5,a2 .loc 1 1313 11 or a5,a5,a3 .LVL575: .loc 1 1314 3 is_stmt 1 .LBB1582: .LBB1583: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,0(a4) .LVL576: .LBE1583: .LBE1582: .loc 1 1316 3 .LBB1584: .LBB1585: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a3,4(a4) .LVL577: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL578: #NO_APP .LBE1585: .LBE1584: .loc 1 1317 3 .loc 1 1317 33 is_stmt 0 lw a5,56(a0) .loc 1 1317 48 li a2,2093056 .loc 1 1317 33 srliw a5,a5,2 .loc 1 1317 48 slliw a5,a5,12 and a5,a5,a2 .loc 1 1317 11 or a5,a5,a3 .LVL579: .loc 1 1318 3 is_stmt 1 .LBB1586: .LBB1587: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,4(a4) .LVL580: .L124: .LBE1587: .LBE1586: .loc 1 1320 1 is_stmt 0 ret .cfi_endproc .LFE55: .size mctl_com_init, .-mctl_com_init .section .text.mctl_phy_ac_remapping,"ax",@progbits .align 1 .globl mctl_phy_ac_remapping .type mctl_phy_ac_remapping, @function mctl_phy_ac_remapping: .LFB56: .loc 1 1329 1 is_stmt 1 .cfi_startproc .LVL581: .loc 1 1332 2 .LBB1588: .LBB1589: .loc 2 138 2 .loc 2 140 2 .LBE1589: .LBE1588: .loc 1 1329 1 is_stmt 0 addi sp,sp,-224 .cfi_def_cfa_offset 224 .LBB1592: .LBB1590: .loc 2 140 6 li a5,50356224 .LBE1590: .LBE1592: .loc 1 1329 1 sd s0,208(sp) sd s1,200(sp) sd ra,216(sp) .cfi_offset 8, -16 .cfi_offset 9, -24 .cfi_offset 1, -8 .loc 1 1329 1 mv s1,a0 .LBB1593: .LBB1591: .loc 2 140 6 lw s0,552(a5) .LVL582: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL583: #NO_APP .LBE1591: .LBE1593: .loc 1 1334 7 is_stmt 0 lui a5,%hi(.LANCHOR0) addi a5,a5,%lo(.LANCHOR0) ld a3,352(a5) ld a4,366(a5) .loc 1 1333 7 sd zero,0(sp) .loc 1 1334 7 sd a3,24(sp) ld a3,360(a5) .loc 1 1333 7 sd zero,8(sp) sw zero,16(sp) .loc 1 1334 7 sd a3,32(sp) .loc 1 1335 7 ld a3,376(a5) .loc 1 1334 7 sd a4,38(sp) .loc 1 1335 7 ld a4,390(a5) sd a3,48(sp) ld a3,384(a5) .loc 1 1333 7 sh zero,20(sp) .loc 1 1332 6 extu s0,s0,8+4-1,8 .LVL584: .loc 1 1333 2 is_stmt 1 .loc 1 1334 2 .loc 1 1335 2 .loc 1 1335 7 is_stmt 0 sd a3,56(sp) .loc 1 1336 7 ld a3,400(a5) .loc 1 1335 7 sd a4,62(sp) .loc 1 1336 2 is_stmt 1 .loc 1 1336 7 is_stmt 0 ld a4,414(a5) sd a3,72(sp) ld a3,408(a5) .loc 1 1353 2 lui a0,%hi(.LC11) .LVL585: mv a1,s0 .loc 1 1336 7 sd a3,80(sp) .loc 1 1337 7 ld a3,424(a5) .loc 1 1336 7 sd a4,86(sp) .loc 1 1337 2 is_stmt 1 .loc 1 1337 7 is_stmt 0 ld a4,438(a5) sd a3,96(sp) ld a3,432(a5) .loc 1 1353 2 addi a0,a0,%lo(.LC11) .loc 1 1337 7 sd a3,104(sp) .loc 1 1338 7 ld a3,448(a5) .loc 1 1337 7 sd a4,110(sp) .loc 1 1338 2 is_stmt 1 .loc 1 1338 7 is_stmt 0 sd a3,120(sp) ld a3,456(a5) sd a3,128(sp) ld a4,462(a5) .loc 1 1345 7 ld a3,472(a5) .loc 1 1338 7 sd a4,134(sp) .loc 1 1345 2 is_stmt 1 .loc 1 1345 7 is_stmt 0 sd a3,144(sp) ld a3,480(a5) ld a4,486(a5) sd a3,152(sp) sd a4,158(sp) .loc 1 1352 2 is_stmt 1 .loc 1 1352 7 is_stmt 0 addi a4,a5,496 ld a5,496(a5) sd a5,168(sp) ld a5,8(a4) sd a5,176(sp) ld a5,14(a4) sd a5,182(sp) .loc 1 1353 2 is_stmt 1 call sys_uart_printf .LVL586: .loc 1 1355 2 .loc 1 1355 24 is_stmt 0 lw a5,92(s1) .loc 1 1355 4 extu a5,a5,18+2-1,18 bnez a5,.L153 .loc 1 1358 4 is_stmt 1 addiw a3,s0,-8 li a5,6 bgtu a3,a5,.L154 lui a5,%hi(.L156) addi a5,a5,%lo(.L156) lurw a5,a5,a3,2 jr a5 .section .rodata .align 2 .align 2 .L156: .word .L160 .word .L159 .word .L158 .word .L154 .word .L157 .word .L155 .word .L155 .section .text.mctl_phy_ac_remapping .L157: .loc 1 1366 5 li a2,22 addi a1,sp,24 .L165: .loc 1 1410 1 is_stmt 0 mv a0,sp call memcpy_self .LVL587: .L155: .loc 1 1412 2 is_stmt 1 .loc 1 1412 14 is_stmt 0 lw a5,4(s1) li a4,2 beq a5,a4,.L161 li a4,3 beq a5,a4,.L162 .LVL588: .L152: .loc 1 1442 1 ld ra,216(sp) .cfi_remember_state .cfi_restore 1 ld s0,208(sp) .cfi_restore 8 ld s1,200(sp) .cfi_restore 9 .LVL589: addi sp,sp,224 .cfi_def_cfa_offset 0 jr ra .LVL590: .L160: .cfi_restore_state .loc 1 1375 4 is_stmt 1 li a2,22 addi a1,sp,48 j .L165 .L159: .loc 1 1384 4 li a2,22 addi a1,sp,72 j .L165 .L158: .loc 1 1392 5 li a2,22 addi a1,sp,120 j .L165 .L154: .loc 1 1404 5 li a2,22 addi a1,sp,96 j .L165 .L153: .loc 1 1410 1 li a2,22 addi a1,sp,168 j .L165 .L161: .loc 1 1416 6 .loc 1 1416 8 is_stmt 0 addiw s0,s0,-13 .LVL591: li a5,1 bgtu s0,a5,.L152 .loc 1 1417 7 is_stmt 1 li a2,22 addi a1,sp,144 mv a0,sp call memcpy_self .LVL592: .loc 1 1419 6 .L162: .loc 1 1428 6 lbu a5,0(sp) lbu a4,1(sp) slliw a5,a5,5 slliw a4,a4,10 or a5,a5,a4 lbu a4,2(sp) slliw a4,a4,15 or a5,a5,a4 lbu a4,3(sp) slliw a4,a4,20 or a5,a5,a4 lbu a4,4(sp) slliw a4,a4,25 or a5,a5,a4 sext.w a5,a5 .LVL593: .LBB1594: .LBB1595: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a4,51388416 sw a5,1280(a4) .LVL594: .LBE1595: .LBE1594: .loc 1 1429 6 lbu a5,6(sp) lbu a3,7(sp) slliw a5,a5,5 slliw a3,a3,10 or a5,a5,a3 lbu a3,5(sp) or a5,a5,a3 lbu a3,8(sp) slliw a3,a3,15 or a5,a5,a3 lbu a3,9(sp) slliw a3,a3,20 or a5,a5,a3 lbu a3,10(sp) slliw a3,a3,25 or a5,a5,a3 sext.w a5,a5 .LVL595: .LBB1596: .LBB1597: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,1284(a4) .LVL596: .LBE1597: .LBE1596: .loc 1 1430 6 lbu a5,12(sp) lbu a3,13(sp) slliw a5,a5,5 slliw a3,a3,10 or a5,a5,a3 lbu a3,11(sp) or a5,a5,a3 lbu a3,14(sp) slliw a3,a3,15 or a5,a5,a3 lbu a3,15(sp) slliw a3,a3,20 or a5,a5,a3 .LVL597: .LBB1598: .LBB1599: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,1288(a4) .LVL598: .LBE1599: .LBE1598: .loc 1 1431 6 lbu a5,17(sp) lbu a3,18(sp) slliw a5,a5,5 slliw a3,a3,10 or a5,a5,a3 lbu a3,16(sp) or a5,a5,a3 lbu a3,19(sp) slliw a3,a3,15 or a5,a5,a3 lbu a3,20(sp) slliw a3,a3,20 or a5,a5,a3 lbu a3,21(sp) slliw a3,a3,25 or a5,a5,a3 sext.w a5,a5 .LVL599: .LBB1600: .LBB1601: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,1292(a4) .LVL600: .LBE1601: .LBE1600: .loc 1 1432 6 lbu a5,0(sp) lbu a3,4(sp) slliw a5,a5,5 slliw a3,a3,25 or a5,a5,a3 lbu a3,1(sp) slliw a3,a3,10 or a5,a5,a3 lbu a3,2(sp) slliw a3,a3,15 or a5,a5,a3 lbu a3,3(sp) slliw a3,a3,20 or a5,a5,a3 ori a5,a5,1 sext.w a5,a5 .LVL601: .LBB1602: .LBB1603: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,1280(a4) .LBE1603: .LBE1602: .loc 1 1442 1 is_stmt 0 j .L152 .cfi_endproc .LFE56: .size mctl_phy_ac_remapping, .-mctl_phy_ac_remapping .section .text.mctl_channel_init,"ax",@progbits .align 1 .globl mctl_channel_init .type mctl_channel_init, @function mctl_channel_init: .LFB57: .loc 1 1505 1 is_stmt 1 .cfi_startproc .LVL602: .loc 1 1506 2 .loc 1 1507 2 .loc 1 1508 2 .loc 1 1509 2 .loc 1 1511 2 .loc 1 1505 1 is_stmt 0 addi sp,sp,-48 .cfi_def_cfa_offset 48 sd s1,16(sp) .cfi_offset 9, -32 .loc 1 1511 38 lw s1,92(a1) .LBB1604: .LBB1605: .loc 2 140 6 li a3,51388416 .LBE1605: .LBE1604: .loc 1 1505 1 sd s2,24(sp) sd ra,40(sp) sd s0,8(sp) sd s3,32(sp) .cfi_offset 18, -24 .cfi_offset 1, -8 .cfi_offset 8, -40 .cfi_offset 19, -16 .loc 1 1505 1 mv s2,a1 .loc 1 1511 18 extu s1,s1,2+2-1,2 .LVL603: .loc 1 1515 2 is_stmt 1 .LBB1607: .LBB1606: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,12(a3) .LVL604: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL605: #NO_APP .LBE1606: .LBE1607: .loc 1 1516 2 .loc 1 1516 10 is_stmt 0 li a4,-4096 and a5,a5,a4 .LVL606: .loc 1 1517 2 is_stmt 1 .loc 1 1517 30 is_stmt 0 lw a4,0(a1) srliw a4,a4,1 .loc 1 1517 34 addiw a4,a4,-1 .loc 1 1517 10 or a5,a5,a4 .LVL607: sext.w a5,a5 .LVL608: .loc 1 1518 2 is_stmt 1 .LBB1608: .LBB1609: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1609: .LBE1608: .LBB1611: .LBB1612: .loc 2 140 6 is_stmt 0 li a4,51392512 .LBE1612: .LBE1611: .LBB1614: .LBB1610: .loc 2 97 2 sw a5,12(a3) .LVL609: .LBE1610: .LBE1614: .loc 1 1522 2 is_stmt 1 .LBB1615: .LBB1613: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,264(a4) .LVL610: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL611: #NO_APP .LBE1613: .LBE1615: .loc 1 1523 2 .loc 1 1524 2 .loc 1 1525 2 .loc 1 1525 10 is_stmt 0 li a3,-4096 addi a3,a3,255 and a5,a5,a3 .LVL612: .loc 1 1526 2 is_stmt 1 .loc 1 1527 2 .LBB1616: .LBB1617: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1617: .LBE1616: .loc 1 1526 10 is_stmt 0 ori a5,a5,768 .LVL613: .LBB1619: .LBB1618: .loc 2 97 2 sw a5,264(a4) .LVL614: .LBE1618: .LBE1619: .loc 1 1528 37 is_stmt 1 .loc 1 1532 2 .loc 1 1533 76 .loc 1 1534 2 lw a5,12(a1) .LBB1620: .LBB1621: .loc 2 140 6 is_stmt 0 lw a4,836(a4) not a5,a5 .LVL615: .LBE1621: .LBE1620: .loc 1 1535 2 is_stmt 1 .loc 1 1538 3 .LBB1624: .LBB1622: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL616: #NO_APP .LBE1622: .LBE1624: .loc 1 1539 3 .loc 1 1540 23 is_stmt 0 slliw a5,a5,5 .LVL617: .loc 1 1546 5 lw a2,0(a1) .loc 1 1540 23 andi a5,a5,32 .loc 1 1539 11 andi a4,a4,-49 .LVL618: .loc 1 1540 3 is_stmt 1 .loc 1 1540 23 is_stmt 0 sext.w a5,a5 .loc 1 1546 5 li a3,672 .loc 1 1540 11 or a4,a4,a5 .LVL619: .loc 1 1541 3 is_stmt 1 .loc 1 1542 3 .loc 1 1543 3 .loc 1 1544 3 .loc 1 1546 3 .loc 1 1546 5 is_stmt 0 bgtu a2,a3,.L167 .loc 1 1544 11 li a3,-61440 addi a3,a3,-15 and a4,a4,a3 .LVL620: .L168: .loc 1 1551 3 is_stmt 1 .LBB1625: .LBB1626: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a3,51392512 sw a4,836(a3) .LVL621: .LBE1626: .LBE1625: .loc 1 1538 3 .LBB1628: .LBB1623: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a4,964(a3) .LVL622: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL623: #NO_APP .LBE1623: .LBE1628: .loc 1 1539 3 .loc 1 1546 5 is_stmt 0 lw a3,0(s2) .loc 1 1539 11 andi a4,a4,-49 .LVL624: .loc 1 1540 3 is_stmt 1 .loc 1 1540 11 is_stmt 0 or a5,a5,a4 .LVL625: .loc 1 1541 3 is_stmt 1 .loc 1 1542 3 .loc 1 1543 3 .loc 1 1544 3 .loc 1 1546 3 .loc 1 1546 5 is_stmt 0 li a4,672 bgtu a3,a4,.L169 .loc 1 1544 11 li a4,-61440 addi a4,a4,-15 and a5,a5,a4 .LVL626: .L170: .loc 1 1551 3 is_stmt 1 .LBB1629: .LBB1627: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li s0,51392512 sw a5,964(s0) .LVL627: .LBE1627: .LBE1629: .loc 1 1553 38 .loc 1 1557 2 .LBB1630: .LBB1631: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,520(s0) .LVL628: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL629: #NO_APP .LBE1631: .LBE1630: .loc 1 1558 2 .loc 1 1559 2 .LBB1632: .LBB1633: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1633: .LBE1632: .loc 1 1558 10 is_stmt 0 ori a5,a5,2 .LVL630: .LBB1635: .LBB1634: .loc 2 97 2 sw a5,520(s0) .LVL631: .LBE1634: .LBE1635: .loc 1 1563 2 is_stmt 1 mv a0,s2 .LVL632: call eye_delay_compensation .LVL633: .loc 1 1568 2 li a4,1 lw a5,264(s0) beq s1,a4,.L171 li a4,2 beq s1,a4,.L172 .loc 1 1601 4 .LVL634: .LBB1636: .LBB1637: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL635: #NO_APP .LBE1637: .LBE1636: .loc 1 1602 4 .loc 1 1603 4 .LBB1638: .LBB1639: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1639: .LBE1638: .loc 1 1602 12 is_stmt 0 andi a5,a5,-65 .LVL636: .LBB1641: .LBB1640: .loc 2 97 2 sw a5,264(s0) .LVL637: .LBE1640: .LBE1641: .loc 1 1604 4 is_stmt 1 .LBB1642: .LBB1643: .loc 1 59 3 li a0,10 call sdelay .LVL638: .LBE1643: .LBE1642: .loc 1 1606 4 .LBB1644: .LBB1645: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,264(s0) .LVL639: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL640: #NO_APP .LBE1645: .LBE1644: .loc 1 1607 4 .loc 1 1608 4 .LBB1646: .LBB1647: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1647: .LBE1646: .loc 1 1607 12 is_stmt 0 ori a5,a5,192 .LVL641: .LBB1649: .LBB1648: .loc 2 97 2 sw a5,264(s0) .LVL642: j .L174 .LVL643: .L167: .LBE1648: .LBE1649: .loc 1 1548 4 is_stmt 1 .loc 1 1548 12 is_stmt 0 li a3,-61440 addi a3,a3,-1551 and a4,a4,a3 .LVL644: .loc 1 1549 4 is_stmt 1 .loc 1 1549 12 is_stmt 0 ori a4,a4,1024 .LVL645: j .L168 .LVL646: .L169: .loc 1 1548 4 is_stmt 1 .loc 1 1548 12 is_stmt 0 li a4,-61440 addi a4,a4,-1551 and a5,a5,a4 .LVL647: .loc 1 1549 4 is_stmt 1 .loc 1 1549 12 is_stmt 0 ori a5,a5,1024 .LVL648: j .L170 .LVL649: .L171: .loc 1 1571 4 is_stmt 1 .LBB1650: .LBB1651: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL650: #NO_APP .LBE1651: .LBE1650: .loc 1 1572 4 .loc 1 1573 4 .LBB1652: .LBB1653: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1653: .LBE1652: .loc 1 1572 12 is_stmt 0 andi a5,a5,-193 .LVL651: .LBB1655: .LBB1654: .loc 2 97 2 sw a5,264(s0) .LVL652: .LBE1654: .LBE1655: .loc 1 1575 4 is_stmt 1 .LBB1656: .LBB1657: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,188(s0) .LVL653: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL654: #NO_APP .LBE1657: .LBE1656: .loc 1 1576 4 .loc 1 1577 4 .LBB1658: .LBB1659: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1659: .LBE1658: .loc 1 1576 12 is_stmt 0 andi a5,a5,-264 .LVL655: .LBB1661: .LBB1660: .loc 2 97 2 sw a5,188(s0) .LVL656: .L174: .LBE1660: .LBE1661: .loc 1 1615 2 is_stmt 1 .loc 1 1615 28 is_stmt 0 lw a5,4(s2) .loc 1 1615 4 li a3,1 addiw a5,a5,-6 bgtu a5,a3,.L175 .loc 1 1617 3 is_stmt 1 li a4,51392512 lw a5,284(a4) .loc 1 1617 5 is_stmt 0 bne s1,a3,.L176 .loc 1 1620 4 is_stmt 1 .LVL657: .LBB1662: .LBB1663: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL658: #NO_APP .LBE1663: .LBE1662: .loc 1 1621 4 .loc 1 1622 4 .loc 1 1623 4 .loc 1 1624 4 .LBB1664: .LBB1665: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1665: .LBE1664: .loc 1 1623 12 is_stmt 0 li a3,-134217728 addi a3,a3,-193 and a5,a5,a3 .LVL659: li a3,-2147483648 .LVL660: .L214: .loc 1 1633 12 or a5,a5,a3 .LBB1666: .LBB1667: .loc 2 97 2 sw a5,284(a4) .L175: .LBE1667: .LBE1666: .loc 1 1641 2 is_stmt 1 li a4,51392512 lw a5,192(a4) li a3,-268435456 and a5,a5,a3 .loc 1 1641 5 is_stmt 0 lw a3,20(s2) .loc 1 1641 4 slli a2,a3,51 bgez a2,.L177 .loc 1 1643 3 is_stmt 1 .LVL661: .LBB1669: .LBB1670: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL662: #NO_APP .LBE1670: .LBE1669: .loc 1 1644 3 .loc 1 1645 3 .loc 1 1646 3 .LBB1671: .LBB1672: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1672: .LBE1671: .loc 1 1645 11 is_stmt 0 li a3,50331648 addi a3,a3,1 .LVL663: .L215: .loc 1 1652 11 or a5,a5,a3 .LBB1673: .LBB1674: .loc 2 97 2 sw a5,192(a4) .LBE1674: .LBE1673: .loc 1 1655 2 is_stmt 1 .LVL664: .LBB1676: .LBB1677: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a5,117440512 lw a5,1492(a5) .LVL665: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL666: #NO_APP .LBE1677: .LBE1676: .loc 1 1655 4 is_stmt 0 slli a4,a5,47 bgez a4,.L179 .loc 1 1657 3 is_stmt 1 .LVL667: .LBB1678: .LBB1679: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a4,117506048 lw a5,592(a4) .LVL668: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL669: #NO_APP .LBE1679: .LBE1678: .loc 1 1658 3 .loc 1 1659 3 .LBB1680: .LBB1681: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1681: .LBE1680: .loc 1 1658 11 is_stmt 0 andi a5,a5,-3 .LVL670: .LBB1683: .LBB1682: .loc 2 97 2 sw a5,592(a4) .LVL671: .LBE1682: .LBE1683: .loc 1 1660 3 is_stmt 1 .LBB1684: .LBB1685: .loc 1 59 3 li a0,10 call sdelay .LVL672: .L179: .LBE1685: .LBE1684: .loc 1 1665 2 .LBB1686: .LBB1687: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a4,51392512 lw a5,320(a4) .LVL673: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL674: #NO_APP .LBE1687: .LBE1686: .loc 1 1666 2 .loc 1 1666 10 is_stmt 0 li a3,-67108864 and a3,a5,a3 .LVL675: .loc 1 1667 2 is_stmt 1 .loc 1 1667 30 is_stmt 0 lw a5,8(s2) extu a5,a5,0+24-1,0 .loc 1 1667 10 or a5,a5,a3 .LVL676: .loc 1 1668 2 is_stmt 1 .loc 1 1669 2 .LBB1688: .LBB1689: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1689: .LBE1688: .loc 1 1668 10 is_stmt 0 li a3,33554432 or a5,a5,a3 .LVL677: .LBB1691: .LBB1690: .loc 2 97 2 sw a5,320(a4) .LVL678: .LBE1690: .LBE1691: .loc 1 1671 2 is_stmt 1 .loc 1 1671 4 is_stmt 0 li a5,1 bne s1,a5,.L180 .loc 1 1673 3 is_stmt 1 .LVL679: .loc 1 1674 3 .LBB1692: .LBB1693: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a5,82 sw a5,0(a4) .LVL680: .LBE1693: .LBE1692: .loc 1 1675 3 .loc 1 1676 3 .LBB1694: .LBB1695: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a5,83 sw a5,0(a4) .L181: .LBE1695: .LBE1694: .loc 1 1678 43 discriminator 1 .LVL681: .LBB1696: .LBB1697: .loc 2 138 2 discriminator 1 .loc 2 140 2 discriminator 1 .loc 2 140 6 is_stmt 0 discriminator 1 lw a5,16(a4) .LVL682: .loc 2 141 2 is_stmt 1 discriminator 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 1 .LVL683: #NO_APP .LBE1697: .LBE1696: .loc 1 1678 8 is_stmt 0 discriminator 1 andi a5,a5,1 beqz a5,.L181 .loc 1 1679 3 is_stmt 1 .LVL684: .LBB1698: .LBB1699: .loc 1 59 3 li a0,10 call sdelay .LVL685: .LBE1699: .LBE1698: .loc 1 1680 3 .loc 1 1681 3 .loc 1 1681 5 is_stmt 0 lw a3,4(s2) li a4,3 .loc 1 1680 11 li a5,1312 .loc 1 1681 5 bne a3,a4,.L182 .loc 1 1682 12 li a5,1440 .LVL686: .L182: .loc 1 1697 2 is_stmt 1 .LBB1700: .LBB1701: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a4,51392512 sw a5,0(a4) .LVL687: .LBE1701: .LBE1700: .loc 1 1698 2 .loc 1 1699 2 .LBB1702: .LBB1703: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1703: .LBE1702: .loc 1 1698 10 is_stmt 0 ori a5,a5,1 .LVL688: .LBB1705: .LBB1704: .loc 2 97 2 sw a5,0(a4) .LVL689: .LBE1704: .LBE1705: .loc 1 1700 54 is_stmt 1 .loc 1 1701 2 .LBB1706: .LBB1707: .loc 1 59 3 li a0,10 call sdelay .LVL690: .LBE1707: .LBE1706: .LBB1708: .LBB1709: .loc 2 140 6 is_stmt 0 li s2,51392512 .LVL691: .L183: .LBE1709: .LBE1708: .loc 1 1702 42 is_stmt 1 discriminator 1 .LBB1711: .LBB1710: .loc 2 138 2 discriminator 1 .loc 2 140 2 discriminator 1 .loc 2 140 6 is_stmt 0 discriminator 1 lw s0,16(s2) .LVL692: .loc 2 141 2 is_stmt 1 discriminator 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 1 .LVL693: #NO_APP .LBE1710: .LBE1711: .loc 1 1702 28 is_stmt 0 discriminator 1 andi s0,s0,1 .loc 1 1702 7 discriminator 1 beqz s0,.L183 .loc 1 1705 2 is_stmt 1 .LVL694: .LBB1712: .LBB1713: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a5,117440512 lw a5,1492(a5) .LVL695: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL696: #NO_APP .LBE1713: .LBE1712: .loc 1 1705 4 is_stmt 0 slli a4,a5,47 bltz a4,.L184 .L189: .loc 1 1758 2 is_stmt 1 .LVL697: .LBB1714: .LBB1715: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a5,51392512 lw a5,16(a5) .LVL698: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL699: #NO_APP .LBE1715: .LBE1714: .loc 1 1759 2 .loc 1 1759 4 is_stmt 0 extu a4,a5,20+8-1,20 bnez a4,.L185 .L186: .LBB1716: .LBB1717: .loc 2 140 6 discriminator 1 li s2,51392512 .LVL700: .L192: .LBE1717: .LBE1716: .loc 1 1774 40 is_stmt 1 discriminator 1 .LBB1719: .LBB1718: .loc 2 138 2 discriminator 1 .loc 2 140 2 discriminator 1 .loc 2 140 6 is_stmt 0 discriminator 1 lw a5,24(s2) .LVL701: .loc 2 141 2 is_stmt 1 discriminator 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 1 .LVL702: #NO_APP .LBE1718: .LBE1719: .loc 1 1774 7 is_stmt 0 discriminator 1 andi a5,a5,1 beqz a5,.L192 .loc 1 1776 2 is_stmt 1 .LVL703: .LBB1720: .LBB1721: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a4,140(s2) .LVL704: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL705: #NO_APP .LBE1721: .LBE1720: .loc 1 1777 2 .loc 1 1778 2 .LBB1722: .LBB1723: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1723: .LBE1722: .loc 1 1777 9 is_stmt 0 li s3,-2147483648 or a4,a4,s3 .LVL706: .LBB1725: .LBB1724: .loc 2 97 2 sw a4,140(s2) .LVL707: .LBE1724: .LBE1725: .loc 1 1779 2 is_stmt 1 .LBB1726: .LBB1727: .loc 1 59 3 li a0,10 call sdelay .LVL708: .LBE1727: .LBE1726: .loc 1 1781 2 .LBB1728: .LBB1729: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a4,140(s2) .LVL709: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL710: #NO_APP .LBE1729: .LBE1728: .loc 1 1782 2 .loc 1 1783 2 .LBB1730: .LBB1731: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1731: .LBE1730: .loc 1 1782 9 is_stmt 0 extu a4,a4,0+31-1,0 .LVL711: .LBB1733: .LBB1732: .loc 2 97 2 sw a4,140(s2) .LVL712: .LBE1732: .LBE1733: .loc 1 1784 2 is_stmt 1 .LBB1734: .LBB1735: .loc 1 59 3 li a0,10 call sdelay .LVL713: .LBE1735: .LBE1734: .loc 1 1787 2 .LBB1736: .LBB1737: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a4,51388416 lw a5,20(a4) .LVL714: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL715: #NO_APP .LBE1737: .LBE1736: .loc 1 1788 2 .loc 1 1789 2 .LBB1738: .LBB1739: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1739: .LBE1738: .loc 1 1788 10 is_stmt 0 or a5,a5,s3 .LVL716: .LBB1741: .LBB1740: .loc 2 97 2 sw a5,20(a4) .LVL717: .LBE1740: .LBE1741: .loc 1 1790 2 is_stmt 1 .LBB1742: .LBB1743: .loc 1 59 3 li a0,10 call sdelay .LVL718: .LBE1743: .LBE1742: .loc 1 1792 2 .LBB1744: .LBB1745: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,268(s2) .LVL719: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL720: #NO_APP .LBE1745: .LBE1744: .loc 1 1793 2 .loc 1 1794 2 .LBB1746: .LBB1747: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1747: .LBE1746: .loc 1 1793 10 is_stmt 0 li a4,-100663296 addi a4,a4,-1 and a5,a5,a4 .LVL721: .LBB1749: .LBB1748: .loc 2 97 2 sw a5,268(s2) .LVL722: .LBE1748: .LBE1749: .loc 1 1799 2 is_stmt 1 .loc 1 1799 4 is_stmt 0 li a5,1 bne s1,a5,.L191 .loc 1 1801 3 is_stmt 1 .LVL723: .LBB1750: .LBB1751: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,284(s2) .LVL724: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL725: #NO_APP .LBE1751: .LBE1750: .loc 1 1802 3 .loc 1 1802 11 is_stmt 0 andi a5,a5,-193 .LVL726: .loc 1 1803 3 is_stmt 1 .loc 1 1804 3 .LBB1752: .LBB1753: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1753: .LBE1752: .loc 1 1803 11 is_stmt 0 ori a5,a5,64 .LVL727: .LBB1755: .LBB1754: .loc 2 97 2 sw a5,284(s2) .LVL728: j .L191 .LVL729: .L172: .LBE1754: .LBE1755: .loc 1 1581 4 is_stmt 1 .LBB1756: .LBB1757: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL730: #NO_APP .LBE1757: .LBE1756: .loc 1 1582 4 .loc 1 1582 12 is_stmt 0 andi a5,a5,-193 .LVL731: .loc 1 1583 4 is_stmt 1 .loc 1 1584 4 .LBB1758: .LBB1759: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1759: .LBE1758: .loc 1 1583 12 is_stmt 0 ori a5,a5,128 .LVL732: .LBB1761: .LBB1760: .loc 2 97 2 sw a5,264(s0) .LVL733: .LBE1760: .LBE1761: .loc 1 1586 4 is_stmt 1 .LBB1762: .LBB1763: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a4,96(s0) .LVL734: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL735: #NO_APP .LBE1763: .LBE1762: .loc 1 1587 4 .LBB1764: .LBB1765: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,188(s0) .LVL736: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL737: #NO_APP .LBE1765: .LBE1764: .loc 1 1588 4 .loc 1 1589 4 .loc 1 1586 45 is_stmt 0 extu a4,a4,16+5-1,16 .LVL738: .loc 1 1586 12 addiw a4,a4,-2 .loc 1 1588 12 andi a5,a5,-264 .LVL739: .loc 1 1589 12 or a5,a5,a4 sext.w a5,a5 .LVL740: .loc 1 1590 4 is_stmt 1 .LBB1766: .LBB1767: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1767: .LBE1766: .loc 1 1589 12 is_stmt 0 ori a5,a5,256 .LVL741: .LBB1769: .LBB1768: .loc 2 97 2 sw a5,188(s0) .LVL742: .LBE1768: .LBE1769: .loc 1 1592 4 is_stmt 1 .LBB1770: .LBB1771: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,284(s0) .LVL743: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL744: #NO_APP .LBE1771: .LBE1770: .loc 1 1593 4 .loc 1 1594 4 .loc 1 1595 4 .LBB1772: .LBB1773: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1773: .LBE1772: .loc 1 1594 12 is_stmt 0 li a4,134217728 extu a5,a5,0+31-1,0 .LVL745: or a5,a5,a4 .LBB1775: .LBB1774: .loc 2 97 2 sw a5,284(s0) .LVL746: j .L174 .LVL747: .L176: .LBE1774: .LBE1775: .loc 1 1629 4 is_stmt 1 .LBB1776: .LBB1777: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL748: #NO_APP .LBE1777: .LBE1776: .loc 1 1630 4 .loc 1 1631 4 .loc 1 1631 12 is_stmt 0 li a3,-1996488704 addi a3,a3,-1 and a5,a5,a3 sext.w a5,a5 .LVL749: .loc 1 1632 4 is_stmt 1 .loc 1 1633 4 .loc 1 1634 4 .LBB1778: .LBB1668: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1668: .LBE1778: .loc 1 1633 12 is_stmt 0 li a3,570425344 j .L214 .LVL750: .L177: .loc 1 1650 3 is_stmt 1 .LBB1779: .LBB1780: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL751: #NO_APP .LBE1780: .LBE1779: .loc 1 1651 3 .loc 1 1652 3 .loc 1 1653 3 .LBB1781: .LBB1675: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1675: .LBE1781: .loc 1 1652 11 is_stmt 0 li a3,16789504 addi a3,a3,135 j .L215 .LVL752: .L180: .loc 1 1686 2 is_stmt 1 .LBB1782: .LBB1783: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a5,117440512 lw a4,1492(a5) .LVL753: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL754: #NO_APP .LBE1783: .LBE1782: .loc 1 1686 4 is_stmt 0 slli a3,a4,47 .loc 1 1688 12 li a5,98 .loc 1 1686 4 bltz a3,.L182 .loc 1 1692 4 is_stmt 1 .LVL755: .loc 1 1693 4 .loc 1 1693 6 is_stmt 0 lw a3,4(s2) li a4,3 .loc 1 1692 12 li a5,370 .loc 1 1693 6 bne a3,a4,.L182 .loc 1 1694 13 li a5,498 j .L182 .LVL756: .L184: .loc 1 1707 3 is_stmt 1 .LBB1784: .LBB1785: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,268(s2) .LVL757: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL758: #NO_APP .LBE1785: .LBE1784: .loc 1 1708 3 .loc 1 1708 11 is_stmt 0 li a4,-100663296 addi a4,a4,-1 and a5,a5,a4 .LVL759: .loc 1 1709 3 is_stmt 1 .loc 1 1710 3 .LBB1786: .LBB1787: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1787: .LBE1786: .loc 1 1709 11 is_stmt 0 li a4,67108864 or a5,a5,a4 .LVL760: .LBB1789: .LBB1788: .loc 2 97 2 sw a5,268(s2) .LVL761: .LBE1788: .LBE1789: .loc 1 1711 3 is_stmt 1 .LBB1790: .LBB1791: .loc 1 59 3 li a0,10 call sdelay .LVL762: .LBE1791: .LBE1790: .loc 1 1713 3 .LBB1792: .LBB1793: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,4(s2) .LVL763: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL764: #NO_APP .LBE1793: .LBE1792: .loc 1 1714 3 .loc 1 1716 3 .LBB1794: .LBB1795: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1795: .LBE1794: .loc 1 1714 11 is_stmt 0 ori a5,a5,1 .LVL765: .LBB1797: .LBB1796: .loc 2 97 2 sw a5,4(s2) .LVL766: .LBE1796: .LBE1797: .loc 1 1717 8 li a4,3 .LBB1798: .LBB1799: .loc 2 140 6 li s2,51392512 .L187: .LBE1799: .LBE1798: .loc 1 1717 45 is_stmt 1 discriminator 1 .LVL767: .LBB1801: .LBB1800: .loc 2 138 2 discriminator 1 .loc 2 140 2 discriminator 1 .loc 2 140 6 is_stmt 0 discriminator 1 lw a5,24(s2) .LVL768: .loc 2 141 2 is_stmt 1 discriminator 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 1 .LVL769: #NO_APP .LBE1800: .LBE1801: .loc 1 1717 8 is_stmt 0 discriminator 1 andi a5,a5,7 bne a5,a4,.L187 .loc 1 1725 3 is_stmt 1 .LVL770: .LBB1802: .LBB1803: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a4,117506048 lw a5,592(a4) .LVL771: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL772: #NO_APP .LBE1803: .LBE1802: .loc 1 1726 3 .loc 1 1727 3 .LBB1804: .LBB1805: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1805: .LBE1804: .loc 1 1726 11 is_stmt 0 andi a5,a5,-2 .LVL773: .LBB1807: .LBB1806: .loc 2 97 2 sw a5,592(a4) .LVL774: .LBE1806: .LBE1807: .loc 1 1728 3 is_stmt 1 .LBB1808: .LBB1809: .loc 1 59 3 li a0,10 call sdelay .LVL775: .LBE1809: .LBE1808: .loc 1 1731 3 .LBB1810: .LBB1811: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,4(s2) .LVL776: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL777: #NO_APP .LBE1811: .LBE1810: .loc 1 1732 3 .loc 1 1733 3 .LBB1812: .LBB1813: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1813: .LBE1812: .loc 1 1732 11 is_stmt 0 andi a5,a5,-2 .LVL778: .LBB1815: .LBB1814: .loc 2 97 2 sw a5,4(s2) .LVL779: .LBE1814: .LBE1815: .loc 1 1734 8 li s3,1 .LBB1816: .LBB1817: .loc 2 140 6 li s2,51392512 .L188: .LBE1817: .LBE1816: .loc 1 1734 45 is_stmt 1 discriminator 1 .LVL780: .LBB1819: .LBB1818: .loc 2 138 2 discriminator 1 .loc 2 140 2 discriminator 1 .loc 2 140 6 is_stmt 0 discriminator 1 lw a5,24(s2) .LVL781: .loc 2 141 2 is_stmt 1 discriminator 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 1 .LVL782: #NO_APP .LBE1818: .LBE1819: .loc 1 1734 8 is_stmt 0 discriminator 1 andi a5,a5,7 bne a5,s3,.L188 .loc 1 1735 3 is_stmt 1 .LVL783: .LBB1820: .LBB1821: .loc 1 59 3 li a0,15 call sdelay .LVL784: .LBE1821: .LBE1820: .loc 1 1738 3 .loc 1 1738 5 is_stmt 0 bne s1,s3,.L189 .loc 1 1740 4 is_stmt 1 .LVL785: .LBB1822: .LBB1823: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,264(s2) .LVL786: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL787: #NO_APP .LBE1823: .LBE1822: .loc 1 1741 4 .loc 1 1742 4 .LBB1824: .LBB1825: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1825: .LBE1824: .loc 1 1741 12 is_stmt 0 andi a5,a5,-193 .LVL788: .LBB1827: .LBB1826: .loc 2 97 2 sw a5,264(s2) .LVL789: .LBE1826: .LBE1827: .loc 1 1744 4 is_stmt 1 .LBB1828: .LBB1829: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,268(s2) .LVL790: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL791: #NO_APP .LBE1829: .LBE1828: .loc 1 1745 4 .loc 1 1745 12 is_stmt 0 li a4,-100663296 addi a4,a4,-1 and a5,a5,a4 .LVL792: .loc 1 1746 4 is_stmt 1 .loc 1 1747 4 .LBB1830: .LBB1831: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1831: .LBE1830: .loc 1 1746 12 is_stmt 0 li a4,33554432 or a5,a5,a4 .LVL793: .LBB1833: .LBB1832: .loc 2 97 2 sw a5,268(s2) .LVL794: .LBE1832: .LBE1833: .loc 1 1748 4 is_stmt 1 .LBB1834: .LBB1835: .loc 1 59 3 li a0,1 call sdelay .LVL795: .LBE1835: .LBE1834: .loc 1 1750 4 .loc 1 1751 4 .LBB1836: .LBB1837: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a5,1025 sw a5,0(s2) .LBE1837: .LBE1836: .LBB1838: .LBB1839: .loc 2 140 6 is_stmt 0 li a4,51392512 .L190: .LBE1839: .LBE1838: .loc 1 1752 44 is_stmt 1 discriminator 1 .LVL796: .LBB1841: .LBB1840: .loc 2 138 2 discriminator 1 .loc 2 140 2 discriminator 1 .loc 2 140 6 is_stmt 0 discriminator 1 lw a5,16(a4) .LVL797: .loc 2 141 2 is_stmt 1 discriminator 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 1 .LVL798: #NO_APP .LBE1840: .LBE1841: .loc 1 1752 9 is_stmt 0 discriminator 1 andi a5,a5,1 beqz a5,.L190 j .L189 .LVL799: .L185: .loc 1 1762 48 is_stmt 1 .loc 1 1763 3 .loc 1 1763 6 is_stmt 0 li s0,1048576 and s0,a5,s0 .loc 1 1763 5 beqz s0,.L186 .loc 1 1765 4 is_stmt 1 lui a0,%hi(.LC12) addi a0,a0,%lo(.LC12) call sys_uart_printf .LVL800: .loc 1 1766 4 .loc 1 1766 11 is_stmt 0 li s0,0 .LVL801: .L191: .loc 1 1808 1 mv a0,s0 ld ra,40(sp) .cfi_restore 1 ld s0,8(sp) .cfi_restore 8 ld s1,16(sp) .cfi_restore 9 .LVL802: ld s2,24(sp) .cfi_restore 18 ld s3,32(sp) .cfi_restore 19 addi sp,sp,48 .cfi_def_cfa_offset 0 jr ra .cfi_endproc .LFE57: .size mctl_channel_init, .-mctl_channel_init .section .text.DRAMC_get_dram_size,"ax",@progbits .align 1 .globl DRAMC_get_dram_size .type DRAMC_get_dram_size, @function DRAMC_get_dram_size: .LFB58: .loc 1 1816 1 is_stmt 1 .cfi_startproc .loc 1 1817 2 .loc 1 1818 2 .LVL803: .loc 1 1819 2 .loc 1 1821 2 .LBB1842: .LBB1843: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a4,51388416 lw a5,0(a4) .LVL804: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL805: #NO_APP .LBE1843: .LBE1842: .loc 1 1823 2 .loc 1 1824 2 .loc 1 1826 2 .loc 1 1827 2 .loc 1 1829 2 .loc 1 1830 2 .loc 1 1832 2 .loc 1 1833 2 .loc 1 1826 7 is_stmt 0 extu a3,a5,4+4-1,4 .loc 1 1823 7 extu a0,a5,8+4-1,8 .loc 1 1832 13 addw a0,a0,a3 addiw a0,a0,-14 .loc 1 1829 7 extu a3,a5,2+2-1,2 .loc 1 1832 13 addw a0,a0,a3 .loc 1 1833 16 li a3,1 sllw a1,a3,a0 .loc 1 1835 13 andi a5,a5,3 .LVL806: .loc 1 1833 16 mv a0,a1 .LVL807: .loc 1 1835 2 is_stmt 1 .loc 1 1835 4 is_stmt 0 beqz a5,.L217 .loc 1 1837 3 is_stmt 1 .LVL808: .LBB1844: .LBB1845: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a4,4(a4) .LVL809: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL810: #NO_APP .LBE1845: .LBE1844: .loc 1 1838 3 .loc 1 1838 5 is_stmt 0 andi a2,a4,3 .loc 1 1854 15 mv a5,a1 .loc 1 1838 5 beqz a2,.L217 .loc 1 1840 4 is_stmt 1 .LVL811: .loc 1 1841 4 .loc 1 1843 4 .loc 1 1844 4 .loc 1 1846 4 .loc 1 1847 4 .loc 1 1849 4 .loc 1 1850 61 .loc 1 1851 4 .loc 1 1840 9 is_stmt 0 extu a5,a4,8+4-1,8 .loc 1 1843 9 extu a2,a4,4+4-1,4 .loc 1 1849 15 addw a5,a5,a2 addiw a5,a5,-14 .loc 1 1846 9 extu a4,a4,2+2-1,2 .LVL812: .loc 1 1849 15 addw a5,a5,a4 .loc 1 1851 15 sllw a5,a3,a5 .LVL813: .L217: .loc 1 1856 2 is_stmt 1 .loc 1 1857 1 is_stmt 0 addw a0,a0,a5 ret .cfi_endproc .LFE58: .size DRAMC_get_dram_size, .-DRAMC_get_dram_size .section .text.dqs_gate_detect,"ax",@progbits .align 1 .globl dqs_gate_detect .type dqs_gate_detect, @function dqs_gate_detect: .LFB60: .loc 1 2093 1 is_stmt 1 .cfi_startproc .LVL814: .loc 1 2094 2 .loc 1 2095 2 .loc 1 2097 2 .LBB1846: .LBB1847: .loc 2 138 2 .loc 2 140 2 .LBE1847: .LBE1846: .loc 1 2093 1 is_stmt 0 addi sp,sp,-16 .cfi_def_cfa_offset 16 .LBB1850: .LBB1848: .loc 2 140 6 li a5,51392512 .LBE1848: .LBE1850: .loc 1 2093 1 sd ra,8(sp) sd s0,0(sp) .cfi_offset 1, -8 .cfi_offset 8, -16 .LBB1851: .LBB1849: .loc 2 140 6 lw a4,16(a5) .LVL815: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL816: #NO_APP .LBE1849: .LBE1851: .loc 1 2098 2 .loc 1 2098 4 is_stmt 0 slli a3,a4,41 bgez a3,.L224 .loc 1 2101 3 is_stmt 1 .LVL817: .LBB1852: .LBB1853: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a1,840(a5) .LVL818: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL819: #NO_APP .LBE1853: .LBE1852: .loc 1 2102 3 .loc 1 2102 15 is_stmt 0 extu a1,a1,24+2-1,24 .LVL820: .loc 1 2103 3 is_stmt 1 .LBB1854: .LBB1855: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw s0,968(a5) .LVL821: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL822: #NO_APP .LBE1855: .LBE1854: .loc 1 2104 3 .loc 1 2116 4 is_stmt 0 li a5,2 .loc 1 2104 15 extu s0,s0,24+2-1,24 .LVL823: .loc 1 2116 2 is_stmt 1 .loc 1 2116 4 is_stmt 0 bne a1,a5,.L233 lw a4,20(a0) li a5,-61440 addi a5,a5,-16 and a5,a5,a4 .loc 1 2116 26 discriminator 1 bne s0,a1,.L228 .loc 1 2119 3 is_stmt 1 .loc 1 2119 20 is_stmt 0 sw a5,20(a0) .LVL824: .loc 1 2120 3 is_stmt 1 lui a0,%hi(.LC14) .LVL825: addi a0,a0,%lo(.LC14) j .L235 .LVL826: .L224: .loc 1 2109 3 .loc 1 2110 3 .loc 1 2109 20 is_stmt 0 lw a5,20(a0) .loc 1 2110 20 li a4,4096 .LVL827: .loc 1 2109 20 andi a5,a5,-16 .loc 1 2110 20 or a5,a5,a4 sw a5,20(a0) .LVL828: .loc 1 2111 3 is_stmt 1 lui a0,%hi(.LC13) .LVL829: addi a0,a0,%lo(.LC13) .L235: .loc 1 2129 3 is_stmt 0 call sys_uart_printf .LVL830: .loc 1 2149 9 li a0,1 .L227: .loc 1 2150 1 ld ra,8(sp) .cfi_remember_state .cfi_restore 1 ld s0,0(sp) .cfi_restore 8 addi sp,sp,16 .cfi_def_cfa_offset 0 jr ra .LVL831: .L228: .cfi_restore_state .loc 1 2123 7 is_stmt 1 .loc 1 2126 3 .loc 1 2127 3 .loc 1 2128 3 .loc 1 2128 20 is_stmt 0 ori a5,a5,1 sw a5,20(a0) .LVL832: .loc 1 2129 3 is_stmt 1 lui a0,%hi(.LC15) .LVL833: addi a0,a0,%lo(.LC15) j .L235 .LVL834: .L233: .loc 1 2123 7 .loc 1 2132 7 .loc 1 2132 9 is_stmt 0 bnez a1,.L229 .loc 1 2135 3 is_stmt 1 .loc 1 2136 3 .loc 1 2137 3 .loc 1 2137 20 is_stmt 0 lw a5,20(a0) li a4,4096 addi a4,a4,1 andi a5,a5,-16 or a5,a5,a4 sw a5,20(a0) .LVL835: .loc 1 2138 3 is_stmt 1 lui a0,%hi(.LC16) .LVL836: addi a0,a0,%lo(.LC16) j .L235 .LVL837: .L229: .loc 1 2142 3 .loc 1 2142 6 is_stmt 0 lw a0,92(a0) .LVL838: li a5,536870912 and a0,a0,a5 .loc 1 2142 5 beqz a0,.L227 .loc 1 2144 4 is_stmt 1 lui a0,%hi(.LC17) addi a0,a0,%lo(.LC17) call sys_uart_printf .LVL839: .loc 1 2145 4 lui a0,%hi(.LC18) mv a1,s0 addi a0,a0,%lo(.LC18) call sys_uart_printf .LVL840: .loc 1 2147 10 is_stmt 0 li a0,0 j .L227 .cfi_endproc .LFE60: .size dqs_gate_detect, .-dqs_gate_detect .section .text.dramc_simple_wr_test,"ax",@progbits .align 1 .globl dramc_simple_wr_test .type dramc_simple_wr_test, @function dramc_simple_wr_test: .LFB63: .loc 1 2411 1 is_stmt 1 .cfi_startproc .LVL841: .loc 1 2416 2 .loc 1 2417 2 .loc 1 2418 2 .loc 1 2419 2 .loc 1 2419 26 is_stmt 0 srliw a0,a0,1 .LVL842: .loc 1 2411 1 addi sp,sp,-48 .cfi_def_cfa_offset 48 .loc 1 2419 12 slliw a4,a0,20 .loc 1 2423 3 li a2,19087360 .loc 1 2424 3 li a0,-19087360 .loc 1 2411 1 sdd s0,s1,(sp),1,4 sd ra,40(sp) sd s2,32(sp) .cfi_offset 8, -32 .cfi_offset 9, -24 .cfi_offset 1, -8 .cfi_offset 18, -16 .loc 1 2411 1 mv a7,a1 .loc 1 2419 12 mv s1,a4 .LVL843: .loc 1 2421 2 is_stmt 1 li a3,1073741824 .loc 1 2421 8 is_stmt 0 li a5,0 .loc 1 2423 3 addiw a2,a2,1383 .loc 1 2424 3 addiw a0,a0,-1384 .LVL844: .L237: .loc 1 2421 2 discriminator 1 bne a5,a7,.L238 .loc 1 2430 25 li a5,-19087360 .LVL845: .loc 1 2437 25 li a0,19087360 .loc 1 2427 8 li s0,0 .loc 1 2429 9 extu a4,a4,31,0 .LBB1856: .LBB1857: .loc 2 140 6 li t1,1073741824 .LBE1857: .LBE1856: .loc 1 2430 25 addiw a5,a5,-1384 .loc 1 2437 25 addiw a0,a0,1383 .L239: .LVL846: .loc 1 2427 2 discriminator 1 bne s0,a7,.L243 .loc 1 2444 2 is_stmt 1 lui a0,%hi(.LC21) addi a0,a0,%lo(.LC21) call sys_uart_printf .LVL847: .loc 1 2445 2 .loc 1 2445 9 is_stmt 0 li a0,0 j .L241 .LVL848: .L238: .loc 1 2423 3 is_stmt 1 discriminator 3 .LBB1859: .LBB1860: .loc 2 96 2 discriminator 3 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 discriminator 3 #NO_APP .LBE1860: .LBE1859: .loc 1 2423 3 is_stmt 0 discriminator 3 extu a1,a3,31,0 .LVL849: addw a6,a5,a2 .LBB1862: .LBB1861: .loc 2 97 2 discriminator 3 sw a6,0(a1) .LVL850: .LBE1861: .LBE1862: .loc 1 2424 3 is_stmt 1 discriminator 3 .LBB1863: .LBB1864: .loc 2 96 2 discriminator 3 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 discriminator 3 #NO_APP .LBE1864: .LBE1863: .loc 1 2424 3 is_stmt 0 discriminator 3 addw a6,a4,a3 addw a1,a5,a0 extu a6,a6,31,0 .LBB1866: .LBB1865: .loc 2 97 2 discriminator 3 sw a1,0(a6) .LVL851: .LBE1865: .LBE1866: .loc 1 2421 31 discriminator 3 addiw a5,a5,1 .LVL852: addiw a3,a3,4 j .L237 .LVL853: .L243: .loc 1 2429 3 is_stmt 1 slliw s2,s0,2 .loc 1 2429 9 is_stmt 0 extu a2,s2,31,0 .LVL854: .LBB1867: .LBB1858: .loc 2 138 2 is_stmt 1 .loc 2 140 2 .loc 2 140 6 is_stmt 0 add a2,a2,a4 .LVL855: lrw a1,t1,a2,0 .LVL856: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL857: #NO_APP .LBE1858: .LBE1867: .loc 1 2430 3 .loc 1 2430 25 is_stmt 0 addw a2,a5,s0 .loc 1 2430 5 beq a2,a1,.L240 .loc 1 2432 4 lui a0,%hi(.LC19) addi a0,a0,%lo(.LC19) sd a1,8(sp) sd a2,0(sp) .loc 1 2432 4 is_stmt 1 call sys_uart_printf .LVL858: .loc 1 2433 4 li a0,1073741824 addw s1,a0,s1 .LVL859: addw a3,s1,s2 .LVL860: .L245: .loc 1 2440 4 is_stmt 0 lui a0,%hi(.LC20) ldd a2,a1,(sp),0,4 addi a0,a0,%lo(.LC20) call sys_uart_printf .LVL861: .loc 1 2441 4 is_stmt 1 .loc 1 2441 11 is_stmt 0 li a0,1 .L241: .loc 1 2446 1 ld ra,40(sp) .cfi_remember_state .cfi_restore 1 ldd s0,s1,(sp),1,4 .cfi_restore 9 .cfi_restore 8 .LVL862: ld s2,32(sp) .cfi_restore 18 addi sp,sp,48 .cfi_def_cfa_offset 0 jr ra .LVL863: .L240: .cfi_restore_state .loc 1 2436 3 is_stmt 1 .LBB1868: .LBB1869: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lurw a1,t1,s2,0 .LVL864: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL865: #NO_APP .LBE1869: .LBE1868: .loc 1 2437 3 .loc 1 2437 25 is_stmt 0 addw a2,a0,s0 .loc 1 2437 5 beq a2,a1,.L242 .loc 1 2439 4 lui a0,%hi(.LC19) addi a0,a0,%lo(.LC19) sd a1,8(sp) sd a2,0(sp) .loc 1 2439 4 is_stmt 1 call sys_uart_printf .LVL866: .loc 1 2440 4 li a3,268435456 addw a3,a3,s0 slliw a3,a3,2 j .L245 .LVL867: .L242: .loc 1 2427 31 is_stmt 0 discriminator 2 addiw s0,s0,1 .LVL868: j .L239 .cfi_endproc .LFE63: .size dramc_simple_wr_test, .-dramc_simple_wr_test .section .text.mctl_vrefzq_init,"ax",@progbits .align 1 .globl mctl_vrefzq_init .type mctl_vrefzq_init, @function mctl_vrefzq_init: .LFB64: .loc 1 2453 1 is_stmt 1 .cfi_startproc .LVL869: .loc 1 2454 2 .loc 1 2456 5 .loc 1 2456 8 is_stmt 0 lw a5,92(a0) .loc 1 2456 7 slli a4,a5,46 bltz a4,.L246 .loc 1 2458 3 is_stmt 1 .LVL870: .LBB1884: .LBB1885: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a4,51392512 lw a5,272(a4) .LVL871: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL872: #NO_APP .LBE1885: .LBE1884: .loc 1 2459 3 .loc 1 2459 11 is_stmt 0 li a3,-2139062272 addi a3,a3,128 and a5,a5,a3 .LVL873: .loc 1 2460 3 is_stmt 1 .loc 1 2460 11 is_stmt 0 lw a3,60(a0) or a5,a5,a3 .LVL874: sext.w a5,a5 .LVL875: .loc 1 2461 3 is_stmt 1 .LBB1886: .LBB1887: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,272(a4) .LVL876: .LBE1887: .LBE1886: .loc 1 2463 6 .loc 1 2463 9 is_stmt 0 lw a5,92(a0) .LVL877: .loc 1 2463 8 slli a3,a5,47 bltz a3,.L246 .LVL878: .LBB1888: .LBB1889: .loc 1 2465 4 is_stmt 1 .LBB1890: .LBB1891: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,276(a4) .LVL879: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL880: #NO_APP .LBE1891: .LBE1890: .loc 1 2466 4 .loc 1 2466 12 is_stmt 0 andi a3,a5,-128 .LVL881: .loc 1 2467 4 is_stmt 1 .loc 1 2467 32 is_stmt 0 lw a5,64(a0) andi a5,a5,127 .loc 1 2467 12 or a5,a5,a3 .LVL882: .loc 1 2468 4 is_stmt 1 .LBB1892: .LBB1893: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,276(a4) .LVL883: .L246: .LBE1893: .LBE1892: .LBE1889: .LBE1888: .loc 1 2471 1 is_stmt 0 ret .cfi_endproc .LFE64: .size mctl_vrefzq_init, .-mctl_vrefzq_init .section .text.mctl_core_init,"ax",@progbits .align 1 .globl mctl_core_init .type mctl_core_init, @function mctl_core_init: .LFB65: .loc 1 2478 1 is_stmt 1 .cfi_startproc .LVL884: .loc 1 2479 2 .loc 1 2480 2 .loc 1 2478 1 is_stmt 0 addi sp,sp,-16 .cfi_def_cfa_offset 16 sd ra,8(sp) sd s0,0(sp) .cfi_offset 1, -8 .cfi_offset 8, -16 .loc 1 2478 1 mv s0,a0 .loc 1 2480 2 call mctl_sys_init .LVL885: .loc 1 2481 2 is_stmt 1 mv a0,s0 call mctl_vrefzq_init .LVL886: .loc 1 2482 2 mv a0,s0 call mctl_com_init .LVL887: .loc 1 2483 2 mv a0,s0 call mctl_phy_ac_remapping .LVL888: .loc 1 2484 2 mv a0,s0 call auto_set_timing_para .LVL889: .loc 1 2485 2 .loc 1 2485 12 is_stmt 0 mv a1,s0 .loc 1 2487 1 ld s0,0(sp) .cfi_restore 8 .LVL890: ld ra,8(sp) .cfi_restore 1 .loc 1 2485 12 li a0,0 .loc 1 2487 1 addi sp,sp,16 .cfi_def_cfa_offset 0 .loc 1 2485 12 tail mctl_channel_init .LVL891: .cfi_endproc .LFE65: .size mctl_core_init, .-mctl_core_init .section .text.auto_scan_dram_size,"ax",@progbits .align 1 .globl auto_scan_dram_size .type auto_scan_dram_size, @function auto_scan_dram_size: .LFB59: .loc 1 1904 1 is_stmt 1 .cfi_startproc .LVL892: .loc 1 1905 2 .loc 1 1906 2 .loc 1 1907 2 .loc 1 1908 2 .loc 1 1909 2 .loc 1 1911 2 .loc 1 1904 1 is_stmt 0 addi sp,sp,-128 .cfi_def_cfa_offset 128 sd s1,104(sp) sd s7,56(sp) sd ra,120(sp) sd s0,112(sp) sd s2,96(sp) sd s3,88(sp) sd s4,80(sp) sd s5,72(sp) sd s6,64(sp) sd s8,48(sp) sd s9,40(sp) sd s10,32(sp) sd s11,24(sp) .cfi_offset 9, -24 .cfi_offset 23, -72 .cfi_offset 1, -8 .cfi_offset 8, -16 .cfi_offset 18, -32 .cfi_offset 19, -40 .cfi_offset 20, -48 .cfi_offset 21, -56 .cfi_offset 22, -64 .cfi_offset 24, -80 .cfi_offset 25, -88 .cfi_offset 26, -96 .cfi_offset 27, -104 .loc 1 1904 1 mv s7,a0 .loc 1 1911 8 call mctl_core_init .LVL893: sext.w s1,a0 .LVL894: .loc 1 1912 2 is_stmt 1 .loc 1 1912 4 is_stmt 0 bnez s1,.L253 .loc 1 1913 4 is_stmt 1 lui a0,%hi(.LC22) addi a0,a0,%lo(.LC22) .LVL895: .L301: .loc 1 2080 4 is_stmt 0 call sys_uart_printf .LVL896: .L289: .loc 1 2084 1 ld ra,120(sp) .cfi_remember_state .cfi_restore 1 ld s0,112(sp) .cfi_restore 8 mv a0,s1 ld s2,96(sp) .cfi_restore 18 ld s1,104(sp) .cfi_restore 9 ld s3,88(sp) .cfi_restore 19 ld s4,80(sp) .cfi_restore 20 ld s5,72(sp) .cfi_restore 21 ld s6,64(sp) .cfi_restore 22 ld s7,56(sp) .cfi_restore 23 .LVL897: ld s8,48(sp) .cfi_restore 24 ld s9,40(sp) .cfi_restore 25 ld s10,32(sp) .cfi_restore 26 ld s11,24(sp) .cfi_restore 27 addi sp,sp,128 .cfi_def_cfa_offset 0 jr ra .LVL898: .L253: .cfi_restore_state .loc 1 1918 2 is_stmt 1 .loc 1 1918 25 is_stmt 0 lw a5,20(s7) .loc 1 1906 15 li s0,1 .loc 1 1918 4 extu a5,a5,12+4-1,12 bne a5,s0,.L255 .loc 1 1919 12 li s0,2 .L255: .LVL899: .loc 1 1920 2 is_stmt 1 .loc 1 1922 3 .loc 1 1947 11 is_stmt 0 li s4,-4096 .LBB1894: .LBB1895: .loc 1 128 8 li s3,4096 .LBE1895: .LBE1894: .loc 1 1935 19 li s6,51388416 li s10,0 .loc 1 1920 8 li s8,0 .loc 1 1909 15 li s1,1073741824 .LVL900: .loc 1 1908 15 li s9,1073741824 .loc 1 1940 3 li s2,64 .loc 1 1973 3 lui s5,%hi(.LC23) .LBB1899: .LBB1900: .loc 1 128 8 addi s11,s4,3 .LBE1900: .LBE1899: .LBB1903: .LBB1896: addi s3,s3,-1376 .LVL901: .L256: .LBE1896: .LBE1903: .loc 1 1940 3 is_stmt 1 extu a4,s9,31,0 .loc 1 1940 9 is_stmt 0 li a5,0 .LVL902: .L259: .loc 1 1942 4 is_stmt 1 andi a2,a5,1 sext.w a3,a4 bnez a2,.L258 not a3,a3 .L258: .LVL903: .LBB1904: .LBB1905: .loc 2 96 2 discriminator 4 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 discriminator 4 #NO_APP swia a3,(a4),4,0 .LVL904: .LBE1905: .LBE1904: .loc 1 1940 23 is_stmt 0 discriminator 4 addiw a5,a5,1 .LVL905: .loc 1 1940 3 discriminator 4 bne a5,s2,.L259 .loc 1 1944 3 is_stmt 1 .LVL906: .LBB1906: .LBB1907: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,0(s6) .LVL907: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL908: #NO_APP .LBE1907: .LBE1906: .loc 1 1945 3 .loc 1 127 2 .loc 1 128 2 .loc 1 1946 3 .loc 1 127 2 .loc 1 128 2 .loc 1 1947 3 .loc 1 1947 11 is_stmt 0 addi a4,s4,243 and a5,a5,a4 .LVL909: ori a5,a5,1776 .LVL910: .loc 1 1948 3 is_stmt 1 .LBB1908: .LBB1909: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,0(s6) .L260: .LBE1909: .LBE1908: .loc 1 1949 52 discriminator 1 .LVL911: .LBB1910: .LBB1911: .loc 2 138 2 discriminator 1 .loc 2 140 2 discriminator 1 .loc 2 140 6 is_stmt 0 discriminator 1 lw a4,0(s6) .LVL912: .loc 2 141 2 is_stmt 1 discriminator 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 1 .LVL913: #NO_APP .LBE1911: .LBE1910: .loc 1 1949 8 is_stmt 0 discriminator 1 bne a5,a4,.L260 .loc 1 1951 9 li a4,11 .loc 1 1953 30 li a7,1 .loc 1 1951 3 li a6,17 .LVL914: .L280: .loc 1 1953 4 is_stmt 1 .loc 1 1954 4 .loc 1 1955 4 .loc 1 1953 40 is_stmt 0 addiw a5,a4,11 .loc 1 1953 30 sllw a5,a7,a5 .loc 1 1953 8 addw a5,a5,s9 extu a5,a5,31,0 mv a2,s1 .loc 1 1955 10 li a3,0 .LVL915: .L263: .loc 1 1957 5 is_stmt 1 .loc 1 1957 51 is_stmt 0 andi a0,a3,1 mv a1,a2 bnez a0,.L261 not a1,a2 sext.w a1,a1 .L261: .LVL916: .loc 1 1958 5 is_stmt 1 discriminator 4 .LBB1912: .LBB1913: .loc 2 138 2 discriminator 4 .loc 2 140 2 discriminator 4 .loc 2 140 6 is_stmt 0 discriminator 4 lw a0,0(a5) .LVL917: .loc 2 141 2 is_stmt 1 discriminator 4 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 4 .LVL918: #NO_APP .LBE1913: .LBE1912: .loc 1 1958 7 is_stmt 0 discriminator 4 bne a1,a0,.L262 .loc 1 1960 6 is_stmt 1 discriminator 2 .LVL919: addiw a3,a3,1 .LVL920: addiw a2,a2,4 addi a5,a5,4 .loc 1 1955 4 is_stmt 0 discriminator 2 bne a3,s2,.L263 .LVL921: .L281: .loc 1 1972 3 is_stmt 1 .loc 1 1973 3 mv a2,a4 mv a1,s8 .LVL922: addi a0,s5,%lo(.LC23) sd a4,8(sp) call sys_uart_printf .LVL923: .loc 1 1974 3 .loc 1 1974 52 is_stmt 0 addiw a5,s10,4 .LVL924: .LBB1914: .LBB1915: .loc 1 127 2 is_stmt 1 .loc 1 128 2 .loc 1 127 8 is_stmt 0 lw a3,16(s7) .LBE1915: .LBE1914: .loc 1 1974 3 li a2,255 ld a4,8(sp) sllw a2,a2,a5 .LBB1918: .LBB1916: .loc 1 127 11 not a2,a2 .LBE1916: .LBE1918: .loc 1 1974 3 sllw a4,a4,a5 .LBB1919: .LBB1917: .loc 1 127 8 and a2,a2,a3 .loc 1 128 8 or a2,a2,a4 sw a2,16(s7) .LVL925: .LBE1917: .LBE1919: .loc 1 1976 3 is_stmt 1 .loc 1 1976 5 is_stmt 0 li a5,1 bne s8,a5,.L264 .loc 1 1978 4 is_stmt 1 .LVL926: .LBB1920: .LBB1921: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a4,51388416 lw a5,0(a4) .LVL927: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL928: #NO_APP .LBE1921: .LBE1920: .loc 1 1979 4 .loc 1 127 2 .loc 1 128 2 .loc 1 1980 4 .loc 1 127 2 .loc 1 128 2 .loc 1 1981 4 .LBB1922: .LBB1901: .loc 1 127 2 .loc 1 128 2 .LBE1901: .LBE1922: .loc 1 1982 4 .LBB1923: .LBB1924: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1924: .LBE1923: .LBB1926: .LBB1902: .loc 1 128 8 is_stmt 0 and a5,a5,s11 .LVL929: ori a5,a5,1700 .LBE1902: .LBE1926: .LBB1927: .LBB1925: .loc 2 97 2 sw a5,0(a4) .LVL930: .LBE1925: .LBE1927: .loc 1 1983 4 is_stmt 1 .loc 1 1983 19 is_stmt 0 li s9,1082130432 .LVL931: .L264: .loc 1 1987 3 is_stmt 1 .LBB1928: .LBB1929: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,0(s6) .LVL932: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL933: #NO_APP .LBE1929: .LBE1928: .loc 1 1988 3 .loc 1 127 2 .loc 1 128 2 .loc 1 1989 3 .loc 1 127 2 .loc 1 128 2 .loc 1 1990 3 .LBB1930: .LBB1931: .loc 1 127 2 .loc 1 128 2 .loc 1 128 8 is_stmt 0 and a5,a5,s11 .LVL934: ori a5,a5,1700 .LVL935: .LBE1931: .LBE1930: .loc 1 1991 3 is_stmt 1 .LBB1932: .LBB1933: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,0(s6) .L265: .LBE1933: .LBE1932: .loc 1 1996 52 discriminator 1 .LVL936: .LBB1934: .LBB1935: .loc 2 138 2 discriminator 1 .loc 2 140 2 discriminator 1 .loc 2 140 6 is_stmt 0 discriminator 1 lw a4,0(s6) .LVL937: .loc 2 141 2 is_stmt 1 discriminator 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 1 .LVL938: #NO_APP .LBE1935: .LBE1934: .loc 1 1996 8 is_stmt 0 discriminator 1 bne a4,a5,.L265 .LVL939: .loc 1 1999 4 is_stmt 1 discriminator 1 .loc 1 2000 4 discriminator 1 .loc 1 2001 4 discriminator 1 .loc 1 1999 8 is_stmt 0 discriminator 1 li a5,4096 .LVL940: addiw a5,a5,-2048 addw a5,s9,a5 extu a5,a5,31,0 mv a3,s1 .loc 1 2001 10 discriminator 1 li a4,0 .LVL941: .L269: .loc 1 2003 5 is_stmt 1 .loc 1 2003 51 is_stmt 0 andi a1,a4,1 mv a2,a3 bnez a1,.L267 not a2,a3 sext.w a2,a2 .L267: .LVL942: .loc 1 2004 5 is_stmt 1 discriminator 4 .LBB1936: .LBB1937: .loc 2 138 2 discriminator 4 .loc 2 140 2 discriminator 4 .loc 2 140 6 is_stmt 0 discriminator 4 lw a1,0(a5) .LVL943: .loc 2 141 2 is_stmt 1 discriminator 4 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 4 .LVL944: #NO_APP .LBE1937: .LBE1936: .loc 1 2004 7 is_stmt 0 discriminator 4 bne a2,a1,.L285 .loc 1 2006 6 is_stmt 1 discriminator 2 .LVL945: addiw a4,a4,1 .LVL946: addiw a3,a3,4 addi a5,a5,4 .loc 1 2001 4 is_stmt 0 discriminator 2 bne a4,s2,.L269 li a4,0 .L268: .loc 1 2016 3 is_stmt 1 .loc 1 2017 3 addiw a2,a4,1 .LVL947: lui a0,%hi(.LC24) slli a2,a2,2 mv a1,s8 addi a0,a0,%lo(.LC24) sd a4,8(sp) call sys_uart_printf .LVL948: .loc 1 2018 3 .loc 1 2018 51 is_stmt 0 addiw a3,s10,12 .LVL949: .LBB1938: .LBB1939: .loc 1 127 2 is_stmt 1 .loc 1 128 2 .loc 1 127 8 is_stmt 0 lw a2,16(s7) .LBE1939: .LBE1938: .loc 1 2018 3 li a5,15 ld a4,8(sp) sllw a5,a5,a3 .LBB1942: .LBB1940: .loc 1 127 11 not a5,a5 .loc 1 127 8 and a5,a5,a2 .LBE1940: .LBE1942: .loc 1 2018 3 sllw a4,a4,a3 .LBB1943: .LBB1941: .loc 1 128 8 or a5,a5,a4 sw a5,16(s7) .LVL950: .LBE1941: .LBE1943: .loc 1 2020 3 is_stmt 1 .loc 1 2020 5 is_stmt 0 li a5,1 bne s8,a5,.L270 .loc 1 2022 4 is_stmt 1 .LVL951: .LBB1944: .LBB1945: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a4,51388416 lw a5,0(a4) .LVL952: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL953: #NO_APP .LBE1945: .LBE1944: .loc 1 2023 4 .loc 1 127 2 .loc 1 128 2 .loc 1 2024 4 .loc 1 127 2 .loc 1 128 2 .loc 1 2025 4 .LBB1946: .LBB1897: .loc 1 127 2 .loc 1 128 2 .LBE1897: .LBE1946: .loc 1 2026 4 .LBB1947: .LBB1948: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1948: .LBE1947: .LBB1950: .LBB1898: .loc 1 128 8 is_stmt 0 and a5,a5,s11 .LVL954: or a5,a5,s3 .LBE1898: .LBE1950: .LBB1951: .LBB1949: .loc 2 97 2 sw a5,0(a4) .LVL955: .LBE1949: .LBE1951: .loc 1 2027 4 is_stmt 1 .loc 1 2027 19 is_stmt 0 li s9,1140850688 .LVL956: .L270: .loc 1 2031 3 is_stmt 1 .LBB1952: .LBB1953: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,0(s6) .LVL957: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL958: #NO_APP .LBE1953: .LBE1952: .loc 1 2032 3 .loc 1 127 2 .loc 1 128 2 .loc 1 2033 3 .loc 1 127 2 .loc 1 128 2 .loc 1 2034 3 .LBB1954: .LBB1955: .loc 1 127 2 .loc 1 128 2 .loc 1 128 8 is_stmt 0 and a5,a5,s11 .LVL959: or a5,a5,s3 .LVL960: .LBE1955: .LBE1954: .loc 1 2035 3 is_stmt 1 .LBB1956: .LBB1957: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,0(s6) .L271: .LBE1957: .LBE1956: .loc 1 2036 52 discriminator 1 .LVL961: .LBB1958: .LBB1959: .loc 2 138 2 discriminator 1 .loc 2 140 2 discriminator 1 .loc 2 140 6 is_stmt 0 discriminator 1 lw a4,0(s6) .LVL962: .loc 2 141 2 is_stmt 1 discriminator 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 1 .LVL963: #NO_APP .LBE1959: .LBE1958: .loc 1 2036 8 is_stmt 0 discriminator 1 bne a4,a5,.L271 .loc 1 2037 8 li a4,9 .loc 1 2039 33 li a7,1 .loc 1 2037 3 li a6,14 .LVL964: .L279: .loc 1 2039 4 is_stmt 1 .loc 1 2040 4 .loc 1 2041 4 .loc 1 2039 33 is_stmt 0 sllw a5,a7,a4 .loc 1 2039 8 addw a5,a5,s9 extu a5,a5,31,0 mv a2,s1 .loc 1 2041 10 li a3,0 .LVL965: .L274: .loc 1 2043 5 is_stmt 1 .loc 1 2043 51 is_stmt 0 andi a0,a3,1 mv a1,a2 bnez a0,.L272 not a1,a2 sext.w a1,a1 .L272: .LVL966: .loc 1 2044 5 is_stmt 1 discriminator 4 .LBB1960: .LBB1961: .loc 2 138 2 discriminator 4 .loc 2 140 2 discriminator 4 .loc 2 140 6 is_stmt 0 discriminator 4 lw a0,0(a5) .LVL967: .loc 2 141 2 is_stmt 1 discriminator 4 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 discriminator 4 .LVL968: #NO_APP .LBE1961: .LBE1960: .loc 1 2044 7 is_stmt 0 discriminator 4 bne a1,a0,.L273 .loc 1 2046 6 is_stmt 1 discriminator 2 .LVL969: addiw a3,a3,1 .LVL970: addiw a2,a2,4 addi a5,a5,4 .loc 1 2041 4 is_stmt 0 discriminator 2 bne a3,s2,.L274 .loc 1 2051 4 is_stmt 1 .loc 1 2056 3 .loc 1 2056 5 is_stmt 0 li a5,13 beq a4,a5,.L275 .loc 1 2058 3 is_stmt 1 .loc 1 2059 3 .loc 1 2059 5 is_stmt 0 li a5,9 .loc 1 2060 6 li a3,0 .loc 1 2059 5 beq a4,a5,.L276 .LVL971: .L275: .loc 1 2062 4 is_stmt 1 .loc 1 2062 20 is_stmt 0 addiw a4,a4,-10 .loc 1 2062 6 li a3,1 sllw a3,a3,a4 .LVL972: .L276: .loc 1 2064 3 is_stmt 1 discriminator 2 lui a0,%hi(.LC25) mv a2,a3 mv a1,s8 .LVL973: addi a0,a0,%lo(.LC25) sd a3,8(sp) call sys_uart_printf .LVL974: .loc 1 2065 3 discriminator 2 .LBB1962: .LBB1963: .loc 1 127 2 discriminator 2 .loc 1 128 2 discriminator 2 .loc 1 127 8 is_stmt 0 discriminator 2 lw a4,16(s7) .LBE1963: .LBE1962: .loc 1 2065 3 discriminator 2 li a5,15 ld a3,8(sp) sllw a5,a5,s10 .LBB1966: .LBB1964: .loc 1 127 11 discriminator 2 not a5,a5 .loc 1 127 8 discriminator 2 and a5,a5,a4 .LBE1964: .LBE1966: .loc 1 2065 3 discriminator 2 sllw a4,a3,s10 .LBB1967: .LBB1965: .loc 1 128 8 discriminator 2 or a5,a5,a4 sext.w a5,a5 sw a5,16(s7) .LVL975: .LBE1965: .LBE1967: .loc 1 1920 28 discriminator 2 addiw s8,s8,1 .loc 1 1920 2 discriminator 2 bne s0,s8,.L277 .loc 1 2069 2 is_stmt 1 .loc 1 2069 4 is_stmt 0 li a4,2 .loc 1 2083 9 li s1,1 .LVL976: .loc 1 2069 4 bne s0,a4,.L289 .loc 1 2071 3 is_stmt 1 lw a3,20(s7) li a4,-4096 addi a4,a4,255 and a4,a4,a3 .loc 1 2071 5 is_stmt 0 extu a3,a5,16+16-1,16 extu a5,a5,15,0 bne a3,a5,.L278 .loc 1 2073 4 is_stmt 1 .loc 1 2074 4 is_stmt 0 lui a0,%hi(.LC26) .loc 1 2073 21 sw a4,20(s7) .loc 1 2074 4 is_stmt 1 addi a0,a0,%lo(.LC26) j .L301 .LVL977: .L277: .loc 1 1922 3 .loc 1 1922 5 is_stmt 0 li a5,1 bne s8,a5,.L257 .loc 1 1924 4 is_stmt 1 .LVL978: .LBB1968: .LBB1969: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a4,51388416 lw a5,0(a4) .LVL979: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL980: #NO_APP .LBE1969: .LBE1968: .loc 1 1925 4 .loc 1 127 2 .loc 1 128 2 .loc 1 1926 4 .loc 1 127 2 .loc 1 128 2 .loc 1 1927 4 .LBB1970: .LBB1971: .loc 1 127 2 .loc 1 128 2 .LBE1971: .LBE1970: .loc 1 1928 4 .LBB1973: .LBB1974: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1974: .LBE1973: .LBB1976: .LBB1972: .loc 1 128 8 is_stmt 0 and a5,a5,s11 .LVL981: ori a5,a5,1776 .LBE1972: .LBE1976: .LBB1977: .LBB1975: .loc 2 97 2 sw a5,0(a4) .LVL982: .LBE1975: .LBE1977: .loc 1 1929 4 is_stmt 1 .LBB1978: .LBB1979: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,4(a4) .LVL983: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL984: #NO_APP .LBE1979: .LBE1978: .loc 1 1930 4 .loc 1 127 2 .loc 1 128 2 .loc 1 1931 4 .loc 1 127 2 .loc 1 128 2 .loc 1 1932 4 .loc 1 127 2 .loc 1 128 2 .loc 1 1933 4 .loc 1 1934 4 .LBB1980: .LBB1981: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1981: .LBE1980: .loc 1 1933 12 is_stmt 0 and a5,a5,s11 .LVL985: ori a5,a5,1777 .LBB1983: .LBB1982: .loc 2 97 2 sw a5,4(a4) .LVL986: .LBE1982: .LBE1983: .loc 1 1935 4 is_stmt 1 .loc 1 1936 4 .loc 1 1936 20 is_stmt 0 li s1,1207959552 .loc 1 1935 19 li s9,1207959552 .LVL987: .L257: addiw s10,s10,16 addi s6,s6,4 .LVL988: j .L256 .LVL989: .L285: .loc 1 1997 22 li a4,1 .LVL990: j .L268 .LVL991: .L278: .loc 1 2078 4 is_stmt 1 .loc 1 2079 4 .loc 1 2079 21 is_stmt 0 ori a4,a4,256 .loc 1 2080 4 lui a0,%hi(.LC27) .loc 1 2079 21 sw a4,20(s7) .loc 1 2080 4 is_stmt 1 addi a0,a0,%lo(.LC27) j .L301 .LVL992: .L273: .loc 1 2051 4 .loc 1 2037 18 is_stmt 0 addiw a4,a4,1 .LVL993: .loc 1 2037 3 bne a4,a6,.L279 .loc 1 2057 6 li a4,13 j .L275 .LVL994: .L262: .loc 1 1965 4 is_stmt 1 .loc 1 1951 25 is_stmt 0 addiw a4,a4,1 .LVL995: .loc 1 1951 3 bne a4,a6,.L280 .loc 1 1971 6 li a4,16 j .L281 .cfi_endproc .LFE59: .size auto_scan_dram_size, .-auto_scan_dram_size .section .text.auto_scan_dram_rank_width,"ax",@progbits .align 1 .globl auto_scan_dram_rank_width .type auto_scan_dram_rank_width, @function auto_scan_dram_rank_width: .LFB61: .loc 1 2160 1 is_stmt 1 .cfi_startproc .LVL996: .loc 1 2161 2 .loc 1 2162 2 .loc 1 2163 2 .loc 1 2160 1 is_stmt 0 addi sp,sp,-32 .cfi_def_cfa_offset 32 .loc 1 2167 19 li a5,11534336 .loc 1 2160 1 sdd s0,s1,(sp),0,4 sd s2,16(sp) sd ra,24(sp) .cfi_offset 8, -32 .cfi_offset 9, -24 .cfi_offset 18, -16 .cfi_offset 1, -8 .loc 1 2167 19 addiw a5,a5,176 .loc 1 2164 15 lw s2,16(a0) .loc 1 2167 19 sw a5,16(a0) .loc 1 2169 19 lw a5,20(a0) .loc 1 2163 15 lw s1,92(a0) .LVL997: .loc 1 2164 2 is_stmt 1 .loc 1 2166 2 .loc 1 2167 2 .loc 1 2168 2 .loc 1 2169 2 .loc 1 2169 19 is_stmt 0 li a4,4096 andi a5,a5,-16 or a5,a5,a4 sw a5,20(a0) .loc 1 2172 2 is_stmt 1 .loc 1 2173 2 .loc 1 2173 19 is_stmt 0 andi a5,s1,-9 ori a5,a5,5 sw a5,92(a0) .loc 1 2175 2 is_stmt 1 .loc 1 2160 1 is_stmt 0 mv s0,a0 .loc 1 2175 12 call mctl_core_init .LVL998: .loc 1 2176 2 is_stmt 1 .LBB1984: .LBB1985: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a5,51392512 lw a5,16(a5) .LVL999: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1000: #NO_APP .LBE1985: .LBE1984: .loc 1 2178 2 .loc 1 2178 4 is_stmt 0 slli a4,a5,43 bgez a4,.L303 .LVL1001: .L305: .loc 1 2180 10 li a0,0 .L304: .loc 1 2192 1 ld ra,24(sp) .cfi_remember_state .cfi_restore 1 ldd s0,s1,(sp),0,4 .cfi_restore 9 .cfi_restore 8 .LVL1002: ld s2,16(sp) .cfi_restore 18 .LVL1003: addi sp,sp,32 .cfi_def_cfa_offset 0 jr ra .LVL1004: .L303: .cfi_restore_state .loc 1 2182 2 is_stmt 1 .loc 1 2182 12 is_stmt 0 mv a0,s0 call dqs_gate_detect .LVL1005: sext.w a0,a0 .LVL1006: .loc 1 2184 2 is_stmt 1 .loc 1 2184 4 is_stmt 0 beqz a0,.L305 .loc 1 2189 2 is_stmt 1 .loc 1 2189 19 is_stmt 0 sw s1,92(s0) .loc 1 2190 2 is_stmt 1 .loc 1 2190 19 is_stmt 0 sw s2,16(s0) .loc 1 2191 2 is_stmt 1 .loc 1 2191 9 is_stmt 0 li a0,1 .LVL1007: j .L304 .cfi_endproc .LFE61: .size auto_scan_dram_rank_width, .-auto_scan_dram_rank_width .section .text.auto_scan_dram_config,"ax",@progbits .align 1 .globl auto_scan_dram_config .type auto_scan_dram_config, @function auto_scan_dram_config: .LFB62: .loc 1 2358 1 is_stmt 1 .cfi_startproc .LVL1008: .loc 1 2359 3 .loc 1 2374 2 .loc 1 2374 5 is_stmt 0 lw a5,92(a0) .loc 1 2358 1 addi sp,sp,-32 .cfi_def_cfa_offset 32 sd s1,16(sp) sd ra,24(sp) sd s0,8(sp) .cfi_offset 9, -16 .cfi_offset 1, -8 .cfi_offset 8, -24 .loc 1 2374 4 slli a4,a5,49 .loc 1 2358 1 mv s1,a0 .loc 1 2374 4 bltz a4,.L311 .loc 1 2376 3 is_stmt 1 .loc 1 2376 13 is_stmt 0 call auto_scan_dram_rank_width .LVL1009: sext.w s0,a0 .LVL1010: .loc 1 2377 3 is_stmt 1 .loc 1 2377 5 is_stmt 0 bnez s0,.L311 .loc 1 2379 4 is_stmt 1 lui a0,%hi(.LC28) addi a0,a0,%lo(.LC28) .L316: .loc 1 2391 4 is_stmt 0 call sys_uart_printf .LVL1011: .loc 1 2392 4 is_stmt 1 .L312: .loc 1 2403 1 is_stmt 0 mv a0,s0 ld ra,24(sp) .cfi_remember_state .cfi_restore 1 ld s0,8(sp) .cfi_restore 8 ld s1,16(sp) .cfi_restore 9 .LVL1012: addi sp,sp,32 .cfi_def_cfa_offset 0 jr ra .LVL1013: .L311: .cfi_restore_state .loc 1 2386 2 is_stmt 1 .loc 1 2386 31 is_stmt 0 lw a5,92(s1) .loc 1 2386 4 andi a5,a5,1 bnez a5,.L313 .loc 1 2388 3 is_stmt 1 .loc 1 2388 13 is_stmt 0 mv a0,s1 call auto_scan_dram_size .LVL1014: sext.w s0,a0 .LVL1015: .loc 1 2389 3 is_stmt 1 .loc 1 2389 5 is_stmt 0 bnez s0,.L313 .loc 1 2391 4 is_stmt 1 lui a0,%hi(.LC29) addi a0,a0,%lo(.LC29) j .L316 .LVL1016: .L313: .loc 1 2397 2 .loc 1 2397 12 is_stmt 0 lw a5,92(s1) .loc 1 2402 10 li s0,1 .loc 1 2397 4 slli a4,a5,48 bltz a4,.L312 .loc 1 2399 3 is_stmt 1 .loc 1 2400 3 .loc 1 2400 20 is_stmt 0 li a4,24576 addi a4,a4,3 or a5,a5,a4 sw a5,92(s1) j .L312 .cfi_endproc .LFE62: .size auto_scan_dram_config, .-auto_scan_dram_config .section .text.init_DRAM,"ax",@progbits .align 1 .globl init_DRAM .type init_DRAM, @function init_DRAM: .LFB66: .loc 1 2524 1 is_stmt 1 .cfi_startproc .LVL1017: .loc 1 2525 2 .loc 1 2526 2 .loc 1 2527 2 .loc 1 2529 2 .loc 1 2534 2 .loc 1 2534 5 is_stmt 0 lw a5,92(a1) .loc 1 2524 1 addi sp,sp,-32 .cfi_def_cfa_offset 32 sd s0,8(sp) sd ra,24(sp) sd s1,16(sp) .cfi_offset 8, -24 .cfi_offset 1, -8 .cfi_offset 9, -16 .loc 1 2534 4 slli a4,a5,47 .loc 1 2524 1 mv s0,a1 .loc 1 2534 4 bltz a4,.L318 .loc 1 2537 3 is_stmt 1 .LVL1018: .LBB1986: .LBB1987: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a5,117506048 sw zero,596(a5) .LVL1019: .LBE1987: .LBE1986: .loc 1 2538 3 .LBB1988: .LBB1989: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li s1,50331648 lw a5,352(s1) .LVL1020: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1021: #NO_APP .LBE1989: .LBE1988: .loc 1 2539 3 .loc 1 2540 3 .LBB1990: .LBB1991: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE1991: .LBE1990: .loc 1 2539 11 is_stmt 0 andi a5,a5,-4 .LVL1022: .LBB1993: .LBB1992: .loc 2 97 2 sw a5,352(s1) .LVL1023: .LBE1992: .LBE1993: .loc 1 2541 3 is_stmt 1 .LBB1994: .LBB1995: .loc 1 59 3 li a0,10 .LVL1024: call sdelay .LVL1025: .LBE1995: .LBE1994: .loc 1 2542 3 .LBB1996: .LBB1997: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,352(s1) .LVL1026: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1027: #NO_APP .LBE1997: .LBE1996: .loc 1 2543 3 .loc 1 2544 3 .loc 1 2544 11 is_stmt 0 andi a5,a5,-265 .LVL1028: .loc 1 2545 3 is_stmt 1 .LBB1998: .LBB1999: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,352(s1) .LVL1029: .LBE1999: .LBE1998: .loc 1 2546 3 .LBB2000: .LBB2001: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1030: #NO_APP .LBE2001: .LBE2000: .loc 1 2547 3 .loc 1 2548 3 .LBB2002: .LBB2003: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE2003: .LBE2002: .loc 1 2547 11 is_stmt 0 ori a5,a5,2 .LVL1031: .LBB2005: .LBB2004: .loc 2 97 2 sw a5,352(s1) .LVL1032: .LBE2004: .LBE2005: .loc 1 2549 3 is_stmt 1 .LBB2006: .LBB2007: .loc 1 59 3 li a0,10 call sdelay .LVL1033: .LBE2007: .LBE2006: .loc 1 2550 3 .LBB2008: .LBB2009: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,352(s1) .LVL1034: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1035: #NO_APP .LBE2009: .LBE2008: .loc 1 2551 3 .loc 1 2552 3 .LBB2010: .LBB2011: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE2011: .LBE2010: .loc 1 2551 11 is_stmt 0 ori a5,a5,1 .LVL1036: .LBB2013: .LBB2012: .loc 2 97 2 sw a5,352(s1) .LVL1037: .LBE2012: .LBE2013: .loc 1 2556 3 is_stmt 1 .LBB2014: .LBB2015: .loc 1 59 3 li a0,20 call sdelay .LVL1038: .LBE2015: .LBE2014: .loc 1 2557 3 .LBB2016: .LBB2017: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a1,364(s1) .LVL1039: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1040: #NO_APP .LBE2017: .LBE2016: .loc 1 2557 3 is_stmt 0 lui a0,%hi(.LC30) addi a0,a0,%lo(.LC30) call sys_uart_printf .LVL1041: .L319: .loc 1 2589 2 is_stmt 1 .loc 1 2589 12 is_stmt 0 call get_pmu_exist .LVL1042: mv s1,a0 .LVL1043: .loc 1 2590 2 is_stmt 1 mv a1,a0 lui a0,%hi(.LC32) .LVL1044: addi a0,a0,%lo(.LC32) call sys_uart_printf .LVL1045: .loc 1 2593 2 .loc 1 2593 4 is_stmt 0 bgez s1,.L320 .loc 1 2595 3 is_stmt 1 mv a0,s0 call dram_vol_set .LVL1046: .L321: .loc 1 2617 2 .loc 1 2617 24 is_stmt 0 lw a5,92(s0) .loc 1 2617 4 andi a5,a5,1 beqz a5,.L324 .LVL1047: .L327: .loc 1 2637 2 is_stmt 1 lui a1,%hi(.LC33) lui a0,%hi(.LC34) addi a1,a1,%lo(.LC33) addi a0,a0,%lo(.LC34) call sys_uart_printf .LVL1048: .loc 1 2638 2 lw a1,0(s0) lui a0,%hi(.LC35) addi a0,a0,%lo(.LC35) call sys_uart_printf .LVL1049: .loc 1 2639 2 lw a1,4(s0) lui a0,%hi(.LC36) addi a0,a0,%lo(.LC36) call sys_uart_printf .LVL1050: .loc 1 2640 2 .loc 1 2640 23 is_stmt 0 lw a5,12(s0) .loc 1 2640 4 andi a5,a5,1 bnez a5,.L325 .loc 1 2643 3 is_stmt 1 lui a0,%hi(.LC38) addi a0,a0,%lo(.LC38) call sys_uart_printf .LVL1051: j .L329 .LVL1052: .L318: .loc 1 2567 3 lui a0,%hi(.LC31) .LVL1053: addi a0,a0,%lo(.LC31) call sys_uart_printf .LVL1054: .loc 1 2569 3 .LBB2018: .LBB2019: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a5,50331648 lw a4,352(a5) .LVL1055: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1056: #NO_APP .LBE2019: .LBE2018: .LBB2020: .LBB2021: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE2021: .LBE2020: .loc 1 2569 3 is_stmt 0 ori a4,a4,256 .LVL1057: .LBB2023: .LBB2022: .loc 2 97 2 sw a4,352(a5) .LVL1058: .LBE2022: .LBE2023: .loc 1 2571 3 is_stmt 1 .LBB2024: .LBB2025: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE2025: .LBE2024: .LBB2027: .LBB2028: .loc 1 59 3 is_stmt 0 li a0,10 .LBE2028: .LBE2027: .LBB2030: .LBB2026: .loc 2 97 2 sw zero,360(a5) .LVL1059: .LBE2026: .LBE2030: .loc 1 2572 3 is_stmt 1 .LBB2031: .LBB2029: .loc 1 59 3 call sdelay .LVL1060: j .L319 .LVL1061: .L320: .LBE2029: .LBE2031: .loc 1 2599 3 .loc 1 2599 14 is_stmt 0 lw a5,4(s0) li a4,2 beq a5,a4,.L322 li a4,3 bne a5,a4,.L321 .loc 1 2605 6 is_stmt 1 li a0,1500 j .L354 .L322: .loc 1 2602 6 li a0,1800 .L354: .loc 1 2605 6 is_stmt 0 call set_ddr_voltage .LVL1062: .loc 1 2606 6 is_stmt 1 j .L321 .L324: .loc 1 2619 3 .loc 1 2619 13 is_stmt 0 mv a0,s0 call auto_scan_dram_config .LVL1063: sext.w a0,a0 .LVL1064: .loc 1 2620 3 is_stmt 1 .loc 1 2620 5 is_stmt 0 bnez a0,.L327 .LVL1065: .L356: .loc 1 2653 3 is_stmt 1 .loc 1 2653 10 is_stmt 0 li a0,0 .L328: .loc 1 2827 1 ld ra,24(sp) .cfi_remember_state .cfi_restore 1 ld s0,8(sp) .cfi_restore 8 .LVL1066: ld s1,16(sp) .cfi_restore 9 addi sp,sp,32 .cfi_def_cfa_offset 0 jr ra .LVL1067: .L325: .cfi_restore_state .loc 1 2641 3 is_stmt 1 lw a1,8(s0) lui a0,%hi(.LC37) addi a0,a0,%lo(.LC37) call sys_uart_printf .LVL1068: .L329: .loc 1 2644 2 .loc 1 2644 9 is_stmt 0 lw a1,28(s0) .loc 1 2644 4 andi a5,a1,68 beqz a5,.L330 .loc 1 2645 3 is_stmt 1 lui a0,%hi(.LC39) addi a0,a0,%lo(.LC39) call sys_uart_printf .LVL1069: .L331: .loc 1 2649 2 .loc 1 2649 12 is_stmt 0 mv a0,s0 call mctl_core_init .LVL1070: sext.w a0,a0 .LVL1071: .loc 1 2650 2 is_stmt 1 .loc 1 2650 4 is_stmt 0 bnez a0,.L332 .loc 1 2652 3 is_stmt 1 lui a0,%hi(.LC41) .LVL1072: addi a0,a0,%lo(.LC41) call sys_uart_printf .LVL1073: j .L356 .L330: .loc 1 2647 3 lui a0,%hi(.LC40) addi a0,a0,%lo(.LC40) call sys_uart_printf .LVL1074: j .L331 .LVL1075: .L332: .loc 1 2660 2 .loc 1 2660 10 is_stmt 0 lw s1,20(s0) .loc 1 2660 4 bgez s1,.L333 .loc 1 2662 3 is_stmt 1 .loc 1 2662 13 is_stmt 0 extu s1,s1,16+15-1,16 .LVL1076: .L334: .loc 1 2673 2 is_stmt 1 .loc 1 2673 5 is_stmt 0 lw a5,92(s0) .loc 1 2673 4 slli a4,a5,33 bgez a4,.L335 .loc 1 2675 3 is_stmt 1 .LVL1077: .LBB2032: .LBB2033: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1078: #NO_APP .LBE2033: .LBE2032: .loc 1 2676 3 .loc 1 2676 12 is_stmt 0 lw a5,72(s0) .loc 1 2676 5 bnez a5,.L336 .loc 1 2677 12 li a5,268435456 addi a5,a5,512 .L336: .LVL1079: .loc 1 2680 3 is_stmt 1 .LBB2034: .LBB2035: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a4,51392512 sw a5,160(a4) .LVL1080: .LBE2035: .LBE2034: .loc 1 2681 3 .LBB2036: .LBB2037: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP li a5,1034 .LVL1081: sw a5,156(a4) .LVL1082: .LBE2037: .LBE2036: .loc 1 2683 3 .LBB2038: .LBB2039: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a5,4(a4) .LVL1083: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1084: #NO_APP .LBE2039: .LBE2038: .loc 1 2684 3 .loc 1 2685 3 .LBB2040: .LBB2041: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE2041: .LBE2040: .loc 1 2686 3 is_stmt 0 lui a0,%hi(.LC43) .loc 1 2684 11 ori a5,a5,1 .LVL1085: .LBB2043: .LBB2042: .loc 2 97 2 sw a5,4(a4) .LVL1086: .LBE2042: .LBE2043: .loc 1 2686 3 is_stmt 1 addi a0,a0,%lo(.LC43) call sys_uart_printf .LVL1087: .L337: .loc 1 2698 34 .loc 1 2705 2 li a3,51392512 lw a4,256(a3) li a5,-61440 addi a5,a5,-1 and a5,a5,a4 .loc 1 2705 5 is_stmt 0 lw a4,92(s0) andi a4,a4,512 .loc 1 2705 4 bnez a4,.L338 .loc 1 2705 37 discriminator 1 lw a2,4(s0) li a4,6 bne a2,a4,.L339 .L338: .loc 1 2707 3 is_stmt 1 .LVL1088: .LBB2044: .LBB2045: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1089: #NO_APP .LBE2045: .LBE2044: .loc 1 2708 3 .loc 1 2709 3 .loc 1 2710 3 .LBB2046: .LBB2047: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE2047: .LBE2046: .loc 1 2709 11 is_stmt 0 li a4,20480 or a5,a5,a4 .LVL1090: .LBB2049: .LBB2048: .loc 2 97 2 li a4,51392512 sw a5,256(a4) .LVL1091: .L340: .LBE2048: .LBE2049: .loc 1 2718 40 is_stmt 1 .loc 1 2721 2 .LBB2050: .LBB2051: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a5,51392512 lw a4,320(a5) .LVL1092: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1093: #NO_APP .LBE2051: .LBE2050: .loc 1 2722 2 .loc 1 2723 2 .LBB2052: .LBB2053: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE2053: .LBE2052: .loc 1 2722 10 is_stmt 0 li a3,-2147483648 or a4,a4,a3 .LVL1094: .LBB2055: .LBB2054: .loc 2 97 2 sw a4,320(a5) .LVL1095: .LBE2054: .LBE2055: .loc 1 2730 2 is_stmt 1 .loc 1 2730 5 is_stmt 0 lw a4,92(s0) andi a4,a4,256 .loc 1 2730 4 beqz a4,.L341 .loc 1 2732 3 is_stmt 1 .LVL1096: .LBB2056: .LBB2057: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a4,184(a5) .LVL1097: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1098: #NO_APP .LBE2057: .LBE2056: .loc 1 2733 3 .loc 1 2734 3 .loc 1 2735 3 .LBB2058: .LBB2059: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE2059: .LBE2058: .loc 1 2734 11 is_stmt 0 ori a4,a4,768 .LVL1099: .LBB2061: .LBB2060: .loc 2 97 2 sw a4,184(a5) .LVL1100: .L341: .LBE2060: .LBE2061: .loc 1 2736 29 is_stmt 1 .loc 1 2738 2 .loc 1 2738 5 is_stmt 0 lw a3,92(s0) li a4,51392512 lw a5,264(a4) .loc 1 2738 4 slli a2,a3,37 bgez a2,.L342 .loc 1 2740 3 is_stmt 1 .LVL1101: .LBB2062: .LBB2063: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1102: #NO_APP .LBE2063: .LBE2062: .loc 1 2741 3 .loc 1 2742 3 .LBB2064: .LBB2065: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE2065: .LBE2064: .loc 1 2741 11 is_stmt 0 li a3,-8192 addi a3,a3,-1 and a5,a5,a3 .LVL1103: .L355: .LBB2066: .LBB2067: .loc 2 97 2 sw a5,264(a4) .LBE2067: .LBE2066: .loc 1 2750 34 is_stmt 1 .loc 1 2752 2 .loc 1 2752 4 is_stmt 0 lw a4,4(s0) li a5,7 bne a4,a5,.L344 .loc 1 2754 3 is_stmt 1 .LVL1104: .LBB2069: .LBB2070: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a3,51392512 lw a5,124(a3) .LVL1105: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1106: #NO_APP .LBE2070: .LBE2069: .loc 1 2755 3 .loc 1 2755 11 is_stmt 0 li a4,-983040 addi a4,a4,-1 and a5,a5,a4 .LVL1107: .loc 1 2756 3 is_stmt 1 .loc 1 2757 3 .LBB2071: .LBB2072: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE2072: .LBE2071: .loc 1 2756 11 is_stmt 0 li a4,65536 or a5,a5,a4 .LVL1108: .LBB2074: .LBB2073: .loc 2 97 2 sw a5,124(a3) .LVL1109: .L344: .LBE2073: .LBE2074: .loc 1 2800 2 is_stmt 1 call dram_enable_all_master .LVL1110: .loc 1 2801 2 .loc 1 2801 5 is_stmt 0 lw a5,92(s0) .loc 1 2801 4 slli a4,a5,35 bltz a4,.L345 .L346: .loc 1 2825 2 is_stmt 1 call handler_super_standby .LVL1111: .loc 1 2826 2 .loc 1 2826 9 is_stmt 0 sext.w a0,s1 j .L328 .LVL1112: .L333: .loc 1 2666 3 is_stmt 1 .loc 1 2666 15 is_stmt 0 call DRAMC_get_dram_size .LVL1113: sext.w s1,a0 .LVL1114: .loc 1 2667 3 is_stmt 1 lui a0,%hi(.LC42) mv a1,s1 addi a0,a0,%lo(.LC42) call sys_uart_printf .LVL1115: .loc 1 2668 3 .loc 1 2668 40 is_stmt 0 lhu a5,20(s0) .loc 1 2668 63 slliw a4,s1,16 .loc 1 2668 50 or a5,a5,a4 .loc 1 2668 20 sw a5,20(s0) j .L334 .L335: .loc 1 2690 3 is_stmt 1 .LVL1116: .LBB2075: .LBB2076: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a5,51392512 lw a4,160(a5) .LVL1117: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1118: #NO_APP .LBE2076: .LBE2075: .loc 1 2691 3 .loc 1 2692 3 .LBB2077: .LBB2078: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE2078: .LBE2077: .loc 1 2691 11 is_stmt 0 li a3,-65536 and a4,a4,a3 .LVL1119: .LBB2080: .LBB2079: .loc 2 97 2 sw a4,160(a5) .LVL1120: .LBE2079: .LBE2080: .loc 1 2694 3 is_stmt 1 .LBB2081: .LBB2082: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 lw a4,4(a5) .LVL1121: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1122: #NO_APP .LBE2082: .LBE2081: .loc 1 2695 3 .loc 1 2696 3 .LBB2083: .LBB2084: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE2084: .LBE2083: .loc 1 2695 11 is_stmt 0 andi a4,a4,-2 .LVL1123: .LBB2086: .LBB2085: .loc 2 97 2 sw a4,4(a5) .LVL1124: j .L337 .LVL1125: .L339: .LBE2085: .LBE2086: .loc 1 2715 3 is_stmt 1 .LBB2087: .LBB2088: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1126: #NO_APP .LBE2088: .LBE2087: .loc 1 2716 3 .loc 1 2717 3 .LBB2089: .LBB2090: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP sw a5,256(a3) .LVL1127: j .L340 .LVL1128: .L342: .LBE2090: .LBE2089: .loc 1 2747 3 .LBB2091: .LBB2092: .loc 2 138 2 .loc 2 140 2 .loc 2 141 2 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1129: #NO_APP .LBE2092: .LBE2091: .loc 1 2748 3 .loc 1 2749 3 .LBB2093: .LBB2068: .loc 2 96 2 #APP # 96 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ow,ow # 0 "" 2 .loc 2 97 2 #NO_APP .LBE2068: .LBE2093: .loc 1 2748 11 is_stmt 0 li a3,8192 or a5,a5,a3 .LVL1130: j .L355 .LVL1131: .L345: .loc 1 2803 2 is_stmt 1 .LBB2094: .LBB2095: .loc 2 138 2 .loc 2 140 2 .loc 2 140 6 is_stmt 0 li a5,117440512 lw a5,1492(a5) .LVL1132: .loc 2 141 2 is_stmt 1 #APP # 141 "/tina-d1/lichee/brandy-2.0/spl/include/arch/riscv/asm/io.h" 1 fence ir,ir # 0 "" 2 .loc 2 142 2 .LVL1133: #NO_APP .LBE2095: .LBE2094: .loc 1 2803 4 is_stmt 0 slli a4,a5,47 bltz a4,.L346 .loc 1 2807 3 is_stmt 1 .loc 1 2807 13 is_stmt 0 li a1,4096 mv a0,s1 call dramc_simple_wr_test .LVL1134: sext.w a0,a0 .LVL1135: .loc 1 2809 3 is_stmt 1 .loc 1 2809 5 is_stmt 0 beqz a0,.L346 j .L356 .cfi_endproc .LFE66: .size init_DRAM, .-init_DRAM .section .text.mctl_init,"ax",@progbits .align 1 .globl mctl_init .type mctl_init, @function mctl_init: .LFB67: .loc 1 2837 1 is_stmt 1 .cfi_startproc .loc 1 2838 2 .LVL1136: .loc 1 2840 2 .loc 1 2843 3 .loc 1 2844 3 .loc 1 2845 3 .loc 1 2846 3 .loc 1 2847 3 .loc 1 2848 3 .loc 1 2849 3 .loc 1 2850 3 .loc 1 2851 3 .loc 1 2852 3 .loc 1 2853 3 .loc 1 2854 3 .loc 1 2855 3 .loc 1 2856 3 .loc 1 2857 3 .loc 1 2858 3 .loc 1 2859 3 .loc 1 2860 3 .loc 1 2861 3 .loc 1 2862 3 .loc 1 2863 3 .loc 1 2864 3 .loc 1 2865 3 .loc 1 2866 3 .loc 1 2843 33 is_stmt 0 li a4,1 slli a5,a4,33 .loc 1 2837 1 addi sp,sp,-112 .cfi_def_cfa_offset 112 .loc 1 2843 33 addi a5,a5,528 sd a5,0(sp) .loc 1 2845 33 li a5,8093696 addi a5,a5,-1031 sd a5,8(sp) .loc 1 2847 33 li a5,210 sd a5,16(sp) .loc 1 2849 33 lui a5,%hi(.LC44) ld a5,%lo(.LC44)(a5) .loc 1 2863 33 slli a4,a4,50 .loc 1 2924 13 mv a1,sp .loc 1 2849 33 sd a5,24(sp) .loc 1 2853 33 lui a5,%hi(.LC45) ld a5,%lo(.LC45)(a5) .loc 1 2924 13 li a0,0 .loc 1 2837 1 sd ra,104(sp) .cfi_offset 1, -8 .loc 1 2853 33 sd a5,40(sp) .loc 1 2855 33 lui a5,%hi(.LC46) ld a5,%lo(.LC46)(a5) .loc 1 2851 33 sd zero,32(sp) .loc 1 2861 33 sd zero,72(sp) .loc 1 2855 33 sd a5,48(sp) .loc 1 2857 33 li a5,151588864 addi a5,a5,-1783 slli a5,a5,35 sd a5,56(sp) .loc 1 2859 33 lui a5,%hi(.LC47) ld a5,%lo(.LC47)(a5) .loc 1 2863 33 sd a4,80(sp) .loc 1 2859 33 sd a5,64(sp) .loc 1 2865 33 li a5,13 slli a5,a5,58 addi a5,a5,69 sd a5,88(sp) .loc 1 2924 3 is_stmt 1 .loc 1 2924 13 is_stmt 0 call init_DRAM .LVL1137: .loc 1 2925 3 is_stmt 1 .loc 1 2945 1 is_stmt 0 ld ra,104(sp) .cfi_restore 1 seqz a0,a0 .LVL1138: addi sp,sp,112 .cfi_def_cfa_offset 0 jr ra .cfi_endproc .LFE67: .size mctl_init, .-mctl_init .section .rodata .align 3 .set .LANCHOR0,. + 0 .LC0: .word 0 .word 1 .word 2 .word 3 .word 2 .word 3 .word 3 .word 3 .word 0 .word 0 .word 0 .word 6 .word 6 .word 6 .word 5 .word 5 .word 5 .word 5 .word 5 .word 0 .word 0 .word 0 .word 0 .word 2 .word 4 .word 2 .word 6 .word 5 .word 5 .word 5 .word 0 .word 0 .word 0 .word 3 .word 3 .word 3 .word 2 .word 2 .word 1 .word 1 .word 1 .word 0 .word 0 .word 0 .LC1: .word 0 .word 1 .word 3 .word 3 .word 3 .word 3 .word 3 .word 4 .word 3 .word 3 .word 3 .word 3 .word 3 .word 4 .word 4 .word 3 .word 3 .word 3 .word 3 .word 3 .word 3 .word 3 .word 0 .word 3 .word 3 .word 1 .word 6 .word 6 .word 5 .word 6 .word 3 .word 3 .word 3 .word 5 .word 5 .word 6 .word 6 .word 4 .word 5 .word 3 .word 3 .word 3 .word 3 .word 3 .LC2: .byte 1 .byte 9 .byte 3 .byte 7 .byte 8 .byte 18 .byte 4 .byte 13 .byte 5 .byte 6 .byte 10 .byte 2 .byte 14 .byte 12 .byte 0 .byte 0 .byte 21 .byte 17 .byte 20 .byte 19 .byte 11 .byte 22 .zero 2 .LC3: .byte 4 .byte 9 .byte 3 .byte 7 .byte 8 .byte 18 .byte 1 .byte 13 .byte 2 .byte 6 .byte 10 .byte 5 .byte 14 .byte 12 .byte 0 .byte 0 .byte 21 .byte 17 .byte 20 .byte 19 .byte 11 .byte 22 .zero 2 .LC4: .byte 1 .byte 7 .byte 8 .byte 12 .byte 10 .byte 18 .byte 4 .byte 13 .byte 5 .byte 6 .byte 3 .byte 2 .byte 9 .byte 0 .byte 0 .byte 0 .byte 21 .byte 17 .byte 20 .byte 19 .byte 11 .byte 22 .zero 2 .LC5: .byte 4 .byte 12 .byte 10 .byte 7 .byte 8 .byte 18 .byte 1 .byte 13 .byte 2 .byte 6 .byte 3 .byte 5 .byte 9 .byte 0 .byte 0 .byte 0 .byte 21 .byte 17 .byte 20 .byte 19 .byte 11 .byte 22 .zero 2 .LC6: .byte 13 .byte 2 .byte 7 .byte 9 .byte 12 .byte 19 .byte 5 .byte 1 .byte 6 .byte 3 .byte 4 .byte 8 .byte 10 .byte 0 .byte 0 .byte 0 .byte 21 .byte 22 .byte 18 .byte 17 .byte 11 .byte 20 .zero 2 .LC7: .byte 3 .byte 10 .byte 7 .byte 13 .byte 9 .byte 11 .byte 1 .byte 2 .byte 4 .byte 6 .byte 8 .byte 5 .byte 12 .byte 0 .byte 0 .byte 0 .byte 20 .byte 1 .byte 0 .byte 21 .byte 22 .byte 17 .zero 2 .LC8: .byte 3 .byte 2 .byte 4 .byte 7 .byte 9 .byte 1 .byte 17 .byte 12 .byte 18 .byte 14 .byte 13 .byte 8 .byte 15 .byte 6 .byte 10 .byte 5 .byte 19 .byte 22 .byte 16 .byte 21 .byte 20 .byte 11 .section .rodata.cst4,"aM",@progbits,4 .align 2 .LC9: .word 1103101952 .LC10: .word 1207959552 .section .rodata.cst8,"aM",@progbits,8 .align 3 .LC44: .dword 8589938291 .LC45: .dword 86026940813089170 .LC46: .dword -5442467564036460479 .LC47: .dword 1594575663124185160 .section .rodata.str1.8,"aMS",@progbits,1 .align 3 .LC11: .string "ddr_efuse_type: 0x%x\r\n" .zero 2 .LC12: .string "ZQ calibration error,check external 240 ohm resistor.\r\n" .zero 1 .LC13: .string "[AUTO DEBUG] two rank and full DQ!\r\n" .zero 4 .LC14: .string "[AUTO DEBUG] single rank and full DQ!\r\n" .zero 1 .LC15: .string "[AUTO DEBUG] single rank and half DQ!\r\n" .zero 1 .LC16: .string "[AUTO DEBUG] dual rank and half DQ!\r\n" .zero 3 .LC17: .string "DX0 state:%d\r\n" .zero 2 .LC18: .string "DX1 state:%d\r\n" .zero 2 .LC19: .string "DRAM simple test FAIL.\r\n" .LC20: .string "%x != %x at address %x\r\n" .LC21: .string "DRAM simple test OK.\r\n" .zero 2 .LC22: .string "[ERROR DEBUG] DRAM initial error : 0!\r\n" .zero 1 .LC23: .string "[AUTO DEBUG] rank %d row = %d \r\n" .LC24: .string "[AUTO DEBUG] rank %d bank = %d \r\n" .zero 7 .LC25: .string "[AUTO DEBUG] rank %d page size = %d KB \r\n" .zero 7 .LC26: .string "rank1 config same as rank0\r\n" .zero 4 .LC27: .string "rank1 config different from rank0\r\n" .zero 5 .LC28: .string "[ERROR DEBUG] auto scan dram rank&width fail !\r\n" .LC29: .string "[ERROR DEBUG] auto scan dram size fail !\r\n" .zero 6 .LC30: .string "ZQ value = 0x%x***********\r\n" .zero 4 .LC31: .string "DRAM only have internal ZQ!!\r\n" .zero 2 .LC32: .string "get_pmu_exist() = %d\r\n" .zero 2 .LC33: .string "V0.24" .zero 2 .LC34: .string "DRAM BOOT DRIVE INFO: %s\r\n" .zero 6 .LC35: .string "DRAM CLK = %d MHz\r\n" .zero 5 .LC36: .string "DRAM Type = %d (2:DDR2,3:DDR3)\r\n" .LC37: .string "DRAMC ZQ value: 0x%x\r\n" .zero 2 .LC38: .string "DRAMC read ODT off.\r\n" .zero 2 .LC39: .string "DRAM ODT value: 0x%x.\r\n" .zero 1 .LC40: .string "DRAM ODT off.\r\n" .zero 1 .LC41: .string "DRAM initial error : 1 !\r\n" .zero 6 .LC42: .string "DRAM SIZE =%d M\r\n" .zero 7 .LC43: .string "Enable Auto SR\r\n" .text .Letext0: .file 3 "/tina-d1/lichee/brandy-2.0/spl/include/asm-generic/int-ll64.h" .file 4 "/tina-d1/lichee/brandy-2.0/tools/toolchain/riscv64-linux-x86_64-20200528/lib/gcc/riscv64-unknown-linux-gnu/8.1.0/include/stddef.h" .file 5 "mctl_hal.h" .file 6 "" .section .debug_info,"",@progbits .Ldebug_info0: .4byte 0x6263 .2byte 0x4 .4byte .Ldebug_abbrev0 .byte 0x8 .byte 0x1 .4byte .LASF146 .byte 0xc .4byte .LASF147 .4byte .LASF148 .4byte .Ldebug_ranges0+0x1670 .8byte 0 .4byte .Ldebug_line0 .byte 0x2 .byte 0x4 .byte 0x7 .4byte .LASF0 .byte 0x2 .byte 0x4 .byte 0x4 .4byte .LASF1 .byte 0x3 .byte 0x4 .byte 0x5 .string "int" .byte 0x2 .byte 0x8 .byte 0x7 .4byte .LASF2 .byte 0x2 .byte 0x2 .byte 0x7 .4byte .LASF3 .byte 0x2 .byte 0x8 .byte 0x5 .4byte .LASF4 .byte 0x2 .byte 0x1 .byte 0x8 .4byte .LASF5 .byte 0x2 .byte 0x8 .byte 0x5 .4byte .LASF6 .byte 0x2 .byte 0x1 .byte 0x6 .4byte .LASF7 .byte 0x2 .byte 0x1 .byte 0x8 .4byte .LASF8 .byte 0x2 .byte 0x2 .byte 0x5 .4byte .LASF9 .byte 0x4 .4byte .LASF10 .byte 0x3 .byte 0x1a .byte 0x16 .4byte 0x29 .byte 0x4 .4byte .LASF11 .byte 0x3 .byte 0x1e .byte 0x2a .4byte 0x8e .byte 0x2 .byte 0x8 .byte 0x7 .4byte .LASF12 .byte 0x5 .string "u32" .byte 0x3 .byte 0x29 .byte 0xf .4byte 0x76 .byte 0x5 .string "u64" .byte 0x3 .byte 0x2b .byte 0xf .4byte 0x82 .byte 0x4 .4byte .LASF13 .byte 0x4 .byte 0xd8 .byte 0x17 .4byte 0x3e .byte 0x2 .byte 0x10 .byte 0x4 .4byte .LASF14 .byte 0x6 .4byte .LASF149 .byte 0x60 .byte 0x5 .byte 0x8b .byte 0x10 .4byte 0x206 .byte 0x7 .4byte .LASF15 .byte 0x5 .byte 0x8e .byte 0x16 .4byte 0x29 .byte 0 .byte 0x7 .4byte .LASF16 .byte 0x5 .byte 0x8f .byte 0x16 .4byte 0x29 .byte 0x4 .byte 0x7 .4byte .LASF17 .byte 0x5 .byte 0x91 .byte 0x19 .4byte 0x29 .byte 0x8 .byte 0x7 .4byte .LASF18 .byte 0x5 .byte 0x92 .byte 0x13 .4byte 0x29 .byte 0xc .byte 0x7 .4byte .LASF19 .byte 0x5 .byte 0x95 .byte 0x10 .4byte 0x29 .byte 0x10 .byte 0x7 .4byte .LASF20 .byte 0x5 .byte 0x96 .byte 0x13 .4byte 0x29 .byte 0x14 .byte 0x7 .4byte .LASF21 .byte 0x5 .byte 0x99 .byte 0x10 .4byte 0x29 .byte 0x18 .byte 0x7 .4byte .LASF22 .byte 0x5 .byte 0x9a .byte 0x13 .4byte 0x29 .byte 0x1c .byte 0x7 .4byte .LASF23 .byte 0x5 .byte 0x9b .byte 0x13 .4byte 0x29 .byte 0x20 .byte 0x7 .4byte .LASF24 .byte 0x5 .byte 0x9c .byte 0x13 .4byte 0x29 .byte 0x24 .byte 0x7 .4byte .LASF25 .byte 0x5 .byte 0x9d .byte 0x13 .4byte 0x29 .byte 0x28 .byte 0x7 .4byte .LASF26 .byte 0x5 .byte 0x9e .byte 0x13 .4byte 0x29 .byte 0x2c .byte 0x7 .4byte .LASF27 .byte 0x5 .byte 0x9f .byte 0x13 .4byte 0x29 .byte 0x30 .byte 0x7 .4byte .LASF28 .byte 0x5 .byte 0xa0 .byte 0x13 .4byte 0x29 .byte 0x34 .byte 0x7 .4byte .LASF29 .byte 0x5 .byte 0xa1 .byte 0x13 .4byte 0x29 .byte 0x38 .byte 0x7 .4byte .LASF30 .byte 0x5 .byte 0xa2 .byte 0x13 .4byte 0x29 .byte 0x3c .byte 0x7 .4byte .LASF31 .byte 0x5 .byte 0xa3 .byte 0x13 .4byte 0x29 .byte 0x40 .byte 0x7 .4byte .LASF32 .byte 0x5 .byte 0xa6 .byte 0x13 .4byte 0x29 .byte 0x44 .byte 0x7 .4byte .LASF33 .byte 0x5 .byte 0xa7 .byte 0x13 .4byte 0x29 .byte 0x48 .byte 0x7 .4byte .LASF34 .byte 0x5 .byte 0xa8 .byte 0x13 .4byte 0x29 .byte 0x4c .byte 0x7 .4byte .LASF35 .byte 0x5 .byte 0xa9 .byte 0x13 .4byte 0x29 .byte 0x50 .byte 0x7 .4byte .LASF36 .byte 0x5 .byte 0xaa .byte 0x13 .4byte 0x29 .byte 0x54 .byte 0x7 .4byte .LASF37 .byte 0x5 .byte 0xab .byte 0x13 .4byte 0x29 .byte 0x58 .byte 0x7 .4byte .LASF38 .byte 0x5 .byte 0xac .byte 0x13 .4byte 0x29 .byte 0x5c .byte 0 .byte 0x4 .4byte .LASF39 .byte 0x5 .byte 0xad .byte 0x2 .4byte 0xc0 .byte 0x8 .4byte .LASF42 .byte 0x1 .2byte 0xb14 .byte 0xe .4byte 0x29 .8byte .LFB67 .8byte .LFE67-.LFB67 .byte 0x1 .byte 0x9c .4byte 0x271 .byte 0x9 .4byte .LASF40 .byte 0x1 .2byte 0xb16 .byte 0xd .4byte 0x37 .4byte .LLST753 .byte 0xa .4byte .LASF41 .byte 0x1 .2byte 0xb18 .byte 0x10 .4byte 0x206 .byte 0x3 .byte 0x91 .byte 0x90,0x7f .byte 0xb .8byte .LVL1137 .4byte 0x271 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x30 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x72 .byte 0 .byte 0 .byte 0 .byte 0x8 .4byte .LASF43 .byte 0x1 .2byte 0x9db .byte 0xc .4byte 0x37 .8byte .LFB66 .8byte .LFE66-.LFB66 .byte 0x1 .byte 0x9c .4byte 0xe2f .byte 0xd .4byte .LASF44 .byte 0x1 .2byte 0x9db .byte 0x1a .4byte 0x37 .4byte .LLST669 .byte 0xd .4byte .LASF45 .byte 0x1 .2byte 0x9db .byte 0x2f .4byte 0xe2f .4byte .LLST670 .byte 0x9 .4byte .LASF40 .byte 0x1 .2byte 0x9dd .byte 0xf .4byte 0x29 .4byte .LLST671 .byte 0x9 .4byte .LASF46 .byte 0x1 .2byte 0x9de .byte 0xf .4byte 0x29 .4byte .LLST672 .byte 0x9 .4byte .LASF47 .byte 0x1 .2byte 0x9df .byte 0xf .4byte 0x29 .4byte .LLST673 .byte 0x9 .4byte .LASF48 .byte 0x1 .2byte 0x9e1 .byte 0xa .4byte 0x37 .4byte .LLST674 .byte 0xe .4byte 0x605e .8byte .LBB1986 .8byte .LBE1986-.LBB1986 .byte 0x1 .2byte 0x9e9 .byte 0x3 .4byte 0x32a .byte 0xf .4byte 0x6077 .4byte .LLST675 .byte 0xf .4byte 0x606b .4byte .LLST676 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1988 .8byte .LBE1988-.LBB1988 .byte 0x1 .2byte 0x9ea .byte 0xd .4byte 0x36c .byte 0xf .4byte 0x6039 .4byte .LLST677 .byte 0x10 .8byte .LBB1989 .8byte .LBE1989-.LBB1989 .byte 0x11 .4byte 0x6045 .4byte .LLST678 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1990 .4byte .Ldebug_ranges0+0x13d0 .byte 0x1 .2byte 0x9ec .byte 0x3 .4byte 0x398 .byte 0xf .4byte 0x6077 .4byte .LLST679 .byte 0xf .4byte 0x606b .4byte .LLST680 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1994 .8byte .LBE1994-.LBB1994 .byte 0x1 .2byte 0x9ed .byte 0x3 .4byte 0x3d2 .byte 0xf .4byte 0x5f3c .4byte .LLST681 .byte 0xb .8byte .LVL1025 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1996 .8byte .LBE1996-.LBB1996 .byte 0x1 .2byte 0x9ee .byte 0xd .4byte 0x414 .byte 0xf .4byte 0x6039 .4byte .LLST682 .byte 0x10 .8byte .LBB1997 .8byte .LBE1997-.LBB1997 .byte 0x11 .4byte 0x6045 .4byte .LLST683 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1998 .8byte .LBE1998-.LBB1998 .byte 0x1 .2byte 0x9f1 .byte 0x3 .4byte 0x444 .byte 0xf .4byte 0x6077 .4byte .LLST684 .byte 0xf .4byte 0x606b .4byte .LLST685 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2000 .8byte .LBE2000-.LBB2000 .byte 0x1 .2byte 0x9f2 .byte 0xd .4byte 0x486 .byte 0xf .4byte 0x6039 .4byte .LLST686 .byte 0x10 .8byte .LBB2001 .8byte .LBE2001-.LBB2001 .byte 0x11 .4byte 0x6045 .4byte .LLST687 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB2002 .4byte .Ldebug_ranges0+0x1400 .byte 0x1 .2byte 0x9f4 .byte 0x3 .4byte 0x4b2 .byte 0xf .4byte 0x6077 .4byte .LLST688 .byte 0xf .4byte 0x606b .4byte .LLST689 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB2006 .8byte .LBE2006-.LBB2006 .byte 0x1 .2byte 0x9f5 .byte 0x3 .4byte 0x4ec .byte 0xf .4byte 0x5f3c .4byte .LLST690 .byte 0xb .8byte .LVL1033 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2008 .8byte .LBE2008-.LBB2008 .byte 0x1 .2byte 0x9f6 .byte 0xd .4byte 0x52e .byte 0xf .4byte 0x6039 .4byte .LLST691 .byte 0x10 .8byte .LBB2009 .8byte .LBE2009-.LBB2009 .byte 0x11 .4byte 0x6045 .4byte .LLST692 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB2010 .4byte .Ldebug_ranges0+0x1430 .byte 0x1 .2byte 0x9f8 .byte 0x3 .4byte 0x55a .byte 0xf .4byte 0x6077 .4byte .LLST693 .byte 0xf .4byte 0x606b .4byte .LLST694 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB2014 .8byte .LBE2014-.LBB2014 .byte 0x1 .2byte 0x9fc .byte 0x3 .4byte 0x594 .byte 0xf .4byte 0x5f3c .4byte .LLST695 .byte 0xb .8byte .LVL1038 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x44 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2016 .8byte .LBE2016-.LBB2016 .byte 0x1 .2byte 0x9fd .byte 0x3 .4byte 0x5d6 .byte 0xf .4byte 0x6039 .4byte .LLST696 .byte 0x10 .8byte .LBB2017 .8byte .LBE2017-.LBB2017 .byte 0x11 .4byte 0x6045 .4byte .LLST697 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2018 .8byte .LBE2018-.LBB2018 .byte 0x1 .2byte 0xa09 .byte 0x3 .4byte 0x618 .byte 0xf .4byte 0x6039 .4byte .LLST698 .byte 0x10 .8byte .LBB2019 .8byte .LBE2019-.LBB2019 .byte 0x11 .4byte 0x6045 .4byte .LLST699 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB2020 .4byte .Ldebug_ranges0+0x1460 .byte 0x1 .2byte 0xa09 .byte 0x3 .4byte 0x644 .byte 0xf .4byte 0x6077 .4byte .LLST700 .byte 0xf .4byte 0x606b .4byte .LLST701 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB2024 .4byte .Ldebug_ranges0+0x1490 .byte 0x1 .2byte 0xa0b .byte 0x3 .4byte 0x670 .byte 0xf .4byte 0x6077 .4byte .LLST702 .byte 0xf .4byte 0x606b .4byte .LLST703 .byte 0 .byte 0x12 .4byte 0x5f2f .8byte .LBB2027 .4byte .Ldebug_ranges0+0x14c0 .byte 0x1 .2byte 0xa0c .byte 0x3 .4byte 0x6a6 .byte 0xf .4byte 0x5f3c .4byte .LLST704 .byte 0xb .8byte .LVL1060 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2032 .8byte .LBE2032-.LBB2032 .byte 0x1 .2byte 0xa73 .byte 0xd .4byte 0x6e8 .byte 0xf .4byte 0x6039 .4byte .LLST705 .byte 0x10 .8byte .LBB2033 .8byte .LBE2033-.LBB2033 .byte 0x11 .4byte 0x6045 .4byte .LLST706 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB2034 .8byte .LBE2034-.LBB2034 .byte 0x1 .2byte 0xa78 .byte 0x3 .4byte 0x718 .byte 0xf .4byte 0x6077 .4byte .LLST707 .byte 0xf .4byte 0x606b .4byte .LLST708 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB2036 .8byte .LBE2036-.LBB2036 .byte 0x1 .2byte 0xa79 .byte 0x3 .4byte 0x748 .byte 0xf .4byte 0x6077 .4byte .LLST709 .byte 0xf .4byte 0x606b .4byte .LLST710 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2038 .8byte .LBE2038-.LBB2038 .byte 0x1 .2byte 0xa7b .byte 0xd .4byte 0x78a .byte 0xf .4byte 0x6039 .4byte .LLST711 .byte 0x10 .8byte .LBB2039 .8byte .LBE2039-.LBB2039 .byte 0x11 .4byte 0x6045 .4byte .LLST712 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB2040 .4byte .Ldebug_ranges0+0x14f0 .byte 0x1 .2byte 0xa7d .byte 0x3 .4byte 0x7b6 .byte 0xf .4byte 0x6077 .4byte .LLST713 .byte 0xf .4byte 0x606b .4byte .LLST714 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2044 .8byte .LBE2044-.LBB2044 .byte 0x1 .2byte 0xa93 .byte 0xd .4byte 0x7f8 .byte 0xf .4byte 0x6039 .4byte .LLST715 .byte 0x10 .8byte .LBB2045 .8byte .LBE2045-.LBB2045 .byte 0x11 .4byte 0x6045 .4byte .LLST716 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB2046 .4byte .Ldebug_ranges0+0x1520 .byte 0x1 .2byte 0xa96 .byte 0x3 .4byte 0x824 .byte 0xf .4byte 0x6077 .4byte .LLST717 .byte 0xf .4byte 0x606b .4byte .LLST718 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2050 .8byte .LBE2050-.LBB2050 .byte 0x1 .2byte 0xaa1 .byte 0xc .4byte 0x866 .byte 0xf .4byte 0x6039 .4byte .LLST719 .byte 0x10 .8byte .LBB2051 .8byte .LBE2051-.LBB2051 .byte 0x11 .4byte 0x6045 .4byte .LLST720 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB2052 .4byte .Ldebug_ranges0+0x1550 .byte 0x1 .2byte 0xaa3 .byte 0x2 .4byte 0x892 .byte 0xf .4byte 0x6077 .4byte .LLST721 .byte 0xf .4byte 0x606b .4byte .LLST722 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2056 .8byte .LBE2056-.LBB2056 .byte 0x1 .2byte 0xaac .byte 0xd .4byte 0x8d4 .byte 0xf .4byte 0x6039 .4byte .LLST723 .byte 0x10 .8byte .LBB2057 .8byte .LBE2057-.LBB2057 .byte 0x11 .4byte 0x6045 .4byte .LLST724 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB2058 .4byte .Ldebug_ranges0+0x1580 .byte 0x1 .2byte 0xaaf .byte 0x3 .4byte 0x900 .byte 0xf .4byte 0x6077 .4byte .LLST725 .byte 0xf .4byte 0x606b .4byte .LLST726 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2062 .8byte .LBE2062-.LBB2062 .byte 0x1 .2byte 0xab4 .byte 0xd .4byte 0x942 .byte 0xf .4byte 0x6039 .4byte .LLST727 .byte 0x10 .8byte .LBB2063 .8byte .LBE2063-.LBB2063 .byte 0x11 .4byte 0x6045 .4byte .LLST728 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB2064 .8byte .LBE2064-.LBB2064 .byte 0x1 .2byte 0xab6 .byte 0x3 .4byte 0x972 .byte 0xf .4byte 0x6077 .4byte .LLST729 .byte 0xf .4byte 0x606b .4byte .LLST730 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB2066 .4byte .Ldebug_ranges0+0x15b0 .byte 0x1 .2byte 0xabd .byte 0x3 .4byte 0x99e .byte 0xf .4byte 0x6077 .4byte .LLST731 .byte 0xf .4byte 0x606b .4byte .LLST732 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2069 .8byte .LBE2069-.LBB2069 .byte 0x1 .2byte 0xac2 .byte 0xd .4byte 0x9e0 .byte 0xf .4byte 0x6039 .4byte .LLST733 .byte 0x10 .8byte .LBB2070 .8byte .LBE2070-.LBB2070 .byte 0x11 .4byte 0x6045 .4byte .LLST734 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB2071 .4byte .Ldebug_ranges0+0x15e0 .byte 0x1 .2byte 0xac5 .byte 0x3 .4byte 0xa0c .byte 0xf .4byte 0x6077 .4byte .LLST735 .byte 0xf .4byte 0x606b .4byte .LLST736 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2075 .8byte .LBE2075-.LBB2075 .byte 0x1 .2byte 0xa82 .byte 0xd .4byte 0xa4e .byte 0xf .4byte 0x6039 .4byte .LLST737 .byte 0x10 .8byte .LBB2076 .8byte .LBE2076-.LBB2076 .byte 0x11 .4byte 0x6045 .4byte .LLST738 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB2077 .4byte .Ldebug_ranges0+0x1610 .byte 0x1 .2byte 0xa84 .byte 0x3 .4byte 0xa7a .byte 0xf .4byte 0x6077 .4byte .LLST739 .byte 0xf .4byte 0x606b .4byte .LLST740 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2081 .8byte .LBE2081-.LBB2081 .byte 0x1 .2byte 0xa86 .byte 0xd .4byte 0xabc .byte 0xf .4byte 0x6039 .4byte .LLST741 .byte 0x10 .8byte .LBB2082 .8byte .LBE2082-.LBB2082 .byte 0x11 .4byte 0x6045 .4byte .LLST742 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB2083 .4byte .Ldebug_ranges0+0x1640 .byte 0x1 .2byte 0xa88 .byte 0x3 .4byte 0xae8 .byte 0xf .4byte 0x6077 .4byte .LLST743 .byte 0xf .4byte 0x606b .4byte .LLST744 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2087 .8byte .LBE2087-.LBB2087 .byte 0x1 .2byte 0xa9b .byte 0xd .4byte 0xb2a .byte 0xf .4byte 0x6039 .4byte .LLST745 .byte 0x10 .8byte .LBB2088 .8byte .LBE2088-.LBB2088 .byte 0x11 .4byte 0x6045 .4byte .LLST746 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB2089 .8byte .LBE2089-.LBB2089 .byte 0x1 .2byte 0xa9d .byte 0x3 .4byte 0xb5a .byte 0xf .4byte 0x6077 .4byte .LLST747 .byte 0xf .4byte 0x606b .4byte .LLST748 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2091 .8byte .LBE2091-.LBB2091 .byte 0x1 .2byte 0xabb .byte 0xd .4byte 0xb9c .byte 0xf .4byte 0x6039 .4byte .LLST749 .byte 0x10 .8byte .LBB2092 .8byte .LBE2092-.LBB2092 .byte 0x11 .4byte 0x6045 .4byte .LLST750 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB2094 .8byte .LBE2094-.LBB2094 .byte 0x1 .2byte 0xaf3 .byte 0x7 .4byte 0xbde .byte 0xf .4byte 0x6039 .4byte .LLST751 .byte 0x10 .8byte .LBB2095 .8byte .LBE2095-.LBB2095 .byte 0x11 .4byte 0x6045 .4byte .LLST752 .byte 0 .byte 0 .byte 0x13 .8byte .LVL1041 .4byte 0x624f .4byte 0xbfd .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC30 .byte 0 .byte 0x14 .8byte .LVL1042 .4byte 0x5fc5 .byte 0x13 .8byte .LVL1045 .4byte 0x624f .4byte 0xc2f .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC32 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x79 .byte 0 .byte 0 .byte 0x13 .8byte .LVL1046 .4byte 0x5dfe .4byte 0xc47 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL1048 .4byte 0x624f .4byte 0xc73 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC34 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x9 .byte 0x3 .8byte .LC33 .byte 0 .byte 0x13 .8byte .LVL1049 .4byte 0x624f .4byte 0xc92 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC35 .byte 0 .byte 0x13 .8byte .LVL1050 .4byte 0x624f .4byte 0xcb1 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC36 .byte 0 .byte 0x13 .8byte .LVL1051 .4byte 0x624f .4byte 0xcd0 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC38 .byte 0 .byte 0x13 .8byte .LVL1054 .4byte 0x624f .4byte 0xcef .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC31 .byte 0 .byte 0x14 .8byte .LVL1062 .4byte 0x5ffd .byte 0x13 .8byte .LVL1063 .4byte 0x10fa .4byte 0xd14 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL1068 .4byte 0x624f .4byte 0xd33 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC37 .byte 0 .byte 0x13 .8byte .LVL1069 .4byte 0x624f .4byte 0xd52 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC39 .byte 0 .byte 0x13 .8byte .LVL1070 .4byte 0xe35 .4byte 0xd6a .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL1073 .4byte 0x624f .4byte 0xd89 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC41 .byte 0 .byte 0x13 .8byte .LVL1074 .4byte 0x624f .4byte 0xda8 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC40 .byte 0 .byte 0x13 .8byte .LVL1087 .4byte 0x624f .4byte 0xdc7 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC43 .byte 0 .byte 0x14 .8byte .LVL1110 .4byte 0x5ce8 .byte 0x14 .8byte .LVL1111 .4byte 0x5fe3 .byte 0x14 .8byte .LVL1113 .4byte 0x1b9c .byte 0x13 .8byte .LVL1115 .4byte 0x624f .4byte 0xe13 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC42 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x79 .byte 0 .byte 0 .byte 0xb .8byte .LVL1134 .4byte 0xf33 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x79 .byte 0 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x3 .byte 0xa .2byte 0x1000 .byte 0 .byte 0 .byte 0x15 .byte 0x8 .4byte 0x206 .byte 0x8 .4byte .LASF49 .byte 0x1 .2byte 0x9ad .byte 0xe .4byte 0x29 .8byte .LFB65 .8byte .LFE65-.LFB65 .byte 0x1 .byte 0x9c .4byte 0xf0a .byte 0xd .4byte .LASF45 .byte 0x1 .2byte 0x9ad .byte 0x2c .4byte 0xe2f .4byte .LLST591 .byte 0x16 .4byte .LASF40 .byte 0x1 .2byte 0x9af .byte 0xf .4byte 0x29 .byte 0 .byte 0x13 .8byte .LVL885 .4byte 0x34bc .4byte 0xe8f .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL886 .4byte 0xf0a .4byte 0xea7 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL887 .4byte 0x3177 .4byte 0xebf .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL888 .4byte 0x2f21 .4byte 0xed7 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL889 .4byte 0x43dc .4byte 0xeef .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x17 .8byte .LVL891 .4byte 0x1c84 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x30 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x3 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0 .byte 0 .byte 0x18 .4byte .LASF133 .byte 0x1 .2byte 0x994 .byte 0x6 .byte 0x1 .4byte 0xf33 .byte 0x19 .4byte .LASF45 .byte 0x1 .2byte 0x994 .byte 0x26 .4byte 0xe2f .byte 0x1a .4byte .LASF46 .byte 0x1 .2byte 0x996 .byte 0xf .4byte 0x29 .byte 0 .byte 0x8 .4byte .LASF50 .byte 0x1 .2byte 0x96a .byte 0xe .4byte 0x29 .8byte .LFB63 .8byte .LFE63-.LFB63 .byte 0x1 .byte 0x9c .4byte 0x10fa .byte 0xd .4byte .LASF47 .byte 0x1 .2byte 0x96a .byte 0x30 .4byte 0x29 .4byte .LLST568 .byte 0xd .4byte .LASF51 .byte 0x1 .2byte 0x96a .byte 0x48 .4byte 0x29 .4byte .LLST569 .byte 0x1b .string "i" .byte 0x1 .2byte 0x970 .byte 0xf .4byte 0x29 .4byte .LLST570 .byte 0x9 .4byte .LASF52 .byte 0x1 .2byte 0x971 .byte 0xf .4byte 0x29 .4byte .LLST571 .byte 0x1b .string "val" .byte 0x1 .2byte 0x972 .byte 0xf .4byte 0x29 .4byte .LLST572 .byte 0x12 .4byte 0x6028 .8byte .LBB1856 .4byte .Ldebug_ranges0+0x1100 .byte 0x1 .2byte 0x97d .byte 0x9 .4byte 0xfdb .byte 0xf .4byte 0x6039 .4byte .LLST573 .byte 0x1c .4byte .Ldebug_ranges0+0x1100 .byte 0x11 .4byte 0x6045 .4byte .LLST574 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1859 .4byte .Ldebug_ranges0+0x1130 .byte 0x1 .2byte 0x977 .byte 0x3 .4byte 0x1007 .byte 0xf .4byte 0x6077 .4byte .LLST575 .byte 0xf .4byte 0x606b .4byte .LLST576 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1863 .4byte .Ldebug_ranges0+0x1160 .byte 0x1 .2byte 0x978 .byte 0x3 .4byte 0x1033 .byte 0xf .4byte 0x6077 .4byte .LLST577 .byte 0xf .4byte 0x606b .4byte .LLST578 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1868 .8byte .LBE1868-.LBB1868 .byte 0x1 .2byte 0x984 .byte 0x9 .4byte 0x1071 .byte 0x1d .4byte 0x6039 .byte 0x10 .8byte .LBB1869 .8byte .LBE1869-.LBB1869 .byte 0x11 .4byte 0x6045 .4byte .LLST579 .byte 0 .byte 0 .byte 0x13 .8byte .LVL847 .4byte 0x624f .4byte 0x1090 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC21 .byte 0 .byte 0x13 .8byte .LVL858 .4byte 0x624f .4byte 0x10af .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC19 .byte 0 .byte 0x13 .8byte .LVL861 .4byte 0x624f .4byte 0x10de .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC20 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x4 .byte 0x91 .byte 0x58 .byte 0x94 .byte 0x4 .byte 0xc .byte 0x1 .byte 0x5c .byte 0x4 .byte 0x72 .byte 0 .byte 0x94 .byte 0x4 .byte 0 .byte 0xb .8byte .LVL866 .4byte 0x624f .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC19 .byte 0 .byte 0 .byte 0x8 .4byte .LASF53 .byte 0x1 .2byte 0x935 .byte 0xe .4byte 0x29 .8byte .LFB62 .8byte .LFE62-.LFB62 .byte 0x1 .byte 0x9c .4byte 0x1179 .byte 0xd .4byte .LASF45 .byte 0x1 .2byte 0x935 .byte 0x33 .4byte 0xe2f .4byte .LLST667 .byte 0x9 .4byte .LASF40 .byte 0x1 .2byte 0x937 .byte 0x10 .4byte 0x29 .4byte .LLST668 .byte 0x13 .8byte .LVL1009 .4byte 0x1179 .4byte 0x1157 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x79 .byte 0 .byte 0 .byte 0x14 .8byte .LVL1011 .4byte 0x624f .byte 0xb .8byte .LVL1014 .4byte 0x13cb .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x79 .byte 0 .byte 0 .byte 0 .byte 0x8 .4byte .LASF54 .byte 0x1 .2byte 0x86f .byte 0xe .4byte 0x29 .8byte .LFB61 .8byte .LFE61-.LFB61 .byte 0x1 .byte 0x9c .4byte 0x1260 .byte 0xd .4byte .LASF45 .byte 0x1 .2byte 0x86f .byte 0x37 .4byte 0xe2f .4byte .LLST660 .byte 0x9 .4byte .LASF40 .byte 0x1 .2byte 0x871 .byte 0xf .4byte 0x29 .4byte .LLST661 .byte 0x9 .4byte .LASF46 .byte 0x1 .2byte 0x872 .byte 0xf .4byte 0x29 .4byte .LLST662 .byte 0x9 .4byte .LASF55 .byte 0x1 .2byte 0x873 .byte 0xf .4byte 0x29 .4byte .LLST663 .byte 0x9 .4byte .LASF56 .byte 0x1 .2byte 0x874 .byte 0xf .4byte 0x29 .4byte .LLST664 .byte 0xe .4byte 0x6028 .8byte .LBB1984 .8byte .LBE1984-.LBB1984 .byte 0x1 .2byte 0x880 .byte 0xc .4byte 0x1233 .byte 0xf .4byte 0x6039 .4byte .LLST665 .byte 0x10 .8byte .LBB1985 .8byte .LBE1985-.LBB1985 .byte 0x11 .4byte 0x6045 .4byte .LLST666 .byte 0 .byte 0 .byte 0x13 .8byte .LVL998 .4byte 0xe35 .4byte 0x124b .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0xb .8byte .LVL1005 .4byte 0x1260 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0 .byte 0x8 .4byte .LASF57 .byte 0x1 .2byte 0x82c .byte 0xe .4byte 0x29 .8byte .LFB60 .8byte .LFE60-.LFB60 .byte 0x1 .byte 0x9c .4byte 0x13cb .byte 0xd .4byte .LASF45 .byte 0x1 .2byte 0x82c .byte 0x2d .4byte 0xe2f .4byte .LLST558 .byte 0x9 .4byte .LASF46 .byte 0x1 .2byte 0x82e .byte 0xf .4byte 0x29 .4byte .LLST559 .byte 0x9 .4byte .LASF58 .byte 0x1 .2byte 0x82f .byte 0xf .4byte 0x29 .4byte .LLST560 .byte 0x9 .4byte .LASF59 .byte 0x1 .2byte 0x82f .byte 0x1c .4byte 0x29 .4byte .LLST561 .byte 0x12 .4byte 0x6028 .8byte .LBB1846 .4byte .Ldebug_ranges0+0x10c0 .byte 0x1 .2byte 0x831 .byte 0xc .4byte 0x12f9 .byte 0xf .4byte 0x6039 .4byte .LLST562 .byte 0x1c .4byte .Ldebug_ranges0+0x10c0 .byte 0x11 .4byte 0x6045 .4byte .LLST563 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1852 .8byte .LBE1852-.LBB1852 .byte 0x1 .2byte 0x835 .byte 0xd .4byte 0x133b .byte 0xf .4byte 0x6039 .4byte .LLST564 .byte 0x10 .8byte .LBB1853 .8byte .LBE1853-.LBB1853 .byte 0x11 .4byte 0x6045 .4byte .LLST565 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1854 .8byte .LBE1854-.LBB1854 .byte 0x1 .2byte 0x837 .byte 0xd .4byte 0x137d .byte 0xf .4byte 0x6039 .4byte .LLST566 .byte 0x10 .8byte .LBB1855 .8byte .LBE1855-.LBB1855 .byte 0x11 .4byte 0x6045 .4byte .LLST567 .byte 0 .byte 0 .byte 0x14 .8byte .LVL830 .4byte 0x624f .byte 0x13 .8byte .LVL839 .4byte 0x624f .4byte 0x13a9 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC17 .byte 0 .byte 0xb .8byte .LVL840 .4byte 0x624f .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC18 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0 .byte 0x8 .4byte .LASF60 .byte 0x1 .2byte 0x76f .byte 0xe .4byte 0x29 .8byte .LFB59 .8byte .LFE59-.LFB59 .byte 0x1 .byte 0x9c .4byte 0x1b9c .byte 0xd .4byte .LASF45 .byte 0x1 .2byte 0x76f .byte 0x31 .4byte 0xe2f .4byte .LLST592 .byte 0x1b .string "i" .byte 0x1 .2byte 0x771 .byte 0xf .4byte 0x29 .4byte .LLST593 .byte 0x1b .string "j" .byte 0x1 .2byte 0x771 .byte 0x16 .4byte 0x29 .4byte .LLST594 .byte 0x1b .string "m" .byte 0x1 .2byte 0x771 .byte 0x1d .4byte 0x29 .4byte .LLST595 .byte 0x9 .4byte .LASF61 .byte 0x1 .2byte 0x772 .byte 0xf .4byte 0x29 .4byte .LLST596 .byte 0x9 .4byte .LASF62 .byte 0x1 .2byte 0x772 .byte 0x1d .4byte 0x29 .4byte .LLST597 .byte 0x9 .4byte .LASF46 .byte 0x1 .2byte 0x773 .byte 0xf .4byte 0x29 .4byte .LLST598 .byte 0x1b .string "ret" .byte 0x1 .2byte 0x773 .byte 0x1c .4byte 0x29 .4byte .LLST599 .byte 0x1b .string "cnt" .byte 0x1 .2byte 0x773 .byte 0x25 .4byte 0x29 .4byte .LLST594 .byte 0x9 .4byte .LASF63 .byte 0x1 .2byte 0x774 .byte 0xf .4byte 0x29 .4byte .LLST601 .byte 0x9 .4byte .LASF64 .byte 0x1 .2byte 0x775 .byte 0xf .4byte 0x29 .4byte .LLST602 .byte 0x12 .4byte 0x5dc6 .8byte .LBB1894 .4byte .Ldebug_ranges0+0x1190 .byte 0x1 .2byte 0x7e9 .byte 0x4 .4byte 0x14cc .byte 0x1d .4byte 0x5deb .byte 0x1d .4byte 0x5ddf .byte 0x1d .4byte 0x5dd3 .byte 0 .byte 0x12 .4byte 0x5dc6 .8byte .LBB1899 .4byte .Ldebug_ranges0+0x11e0 .byte 0x1 .2byte 0x7bd .byte 0x4 .4byte 0x14f5 .byte 0x1d .4byte 0x5deb .byte 0x1d .4byte 0x5ddf .byte 0x1d .4byte 0x5dd3 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1904 .8byte .LBE1904-.LBB1904 .byte 0x1 .2byte 0x796 .byte 0x4 .4byte 0x1525 .byte 0xf .4byte 0x6077 .4byte .LLST603 .byte 0xf .4byte 0x606b .4byte .LLST604 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1906 .8byte .LBE1906-.LBB1906 .byte 0x1 .2byte 0x798 .byte 0xd .4byte 0x1567 .byte 0xf .4byte 0x6039 .4byte .LLST605 .byte 0x10 .8byte .LBB1907 .8byte .LBE1907-.LBB1907 .byte 0x11 .4byte 0x6045 .4byte .LLST606 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1908 .8byte .LBE1908-.LBB1908 .byte 0x1 .2byte 0x79c .byte 0x3 .4byte 0x1597 .byte 0xf .4byte 0x6077 .4byte .LLST607 .byte 0xf .4byte 0x606b .4byte .LLST608 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1910 .8byte .LBE1910-.LBB1910 .byte 0x1 .2byte 0x79d .byte 0x14 .4byte 0x15d9 .byte 0xf .4byte 0x6039 .4byte .LLST609 .byte 0x10 .8byte .LBB1911 .8byte .LBE1911-.LBB1911 .byte 0x11 .4byte 0x6045 .4byte .LLST610 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1912 .8byte .LBE1912-.LBB1912 .byte 0x1 .2byte 0x7a6 .byte 0x13 .4byte 0x161b .byte 0xf .4byte 0x6039 .4byte .LLST611 .byte 0x10 .8byte .LBB1913 .8byte .LBE1913-.LBB1913 .byte 0x11 .4byte 0x6045 .4byte .LLST612 .byte 0 .byte 0 .byte 0x12 .4byte 0x5dc6 .8byte .LBB1914 .4byte .Ldebug_ranges0+0x1220 .byte 0x1 .2byte 0x7b6 .byte 0x3 .4byte 0x1650 .byte 0xf .4byte 0x5deb .4byte .LLST613 .byte 0xf .4byte 0x5ddf .4byte .LLST614 .byte 0xf .4byte 0x5dd3 .4byte .LLST615 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1920 .8byte .LBE1920-.LBB1920 .byte 0x1 .2byte 0x7ba .byte 0xe .4byte 0x1692 .byte 0xf .4byte 0x6039 .4byte .LLST616 .byte 0x10 .8byte .LBB1921 .8byte .LBE1921-.LBB1921 .byte 0x11 .4byte 0x6045 .4byte .LLST617 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1923 .4byte .Ldebug_ranges0+0x1260 .byte 0x1 .2byte 0x7be .byte 0x4 .4byte 0x16be .byte 0xf .4byte 0x6077 .4byte .LLST618 .byte 0xf .4byte 0x606b .4byte .LLST619 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1928 .8byte .LBE1928-.LBB1928 .byte 0x1 .2byte 0x7c3 .byte 0xd .4byte 0x1700 .byte 0xf .4byte 0x6039 .4byte .LLST620 .byte 0x10 .8byte .LBB1929 .8byte .LBE1929-.LBB1929 .byte 0x11 .4byte 0x6045 .4byte .LLST621 .byte 0 .byte 0 .byte 0xe .4byte 0x5dc6 .8byte .LBB1930 .8byte .LBE1930-.LBB1930 .byte 0x1 .2byte 0x7c6 .byte 0x3 .4byte 0x1739 .byte 0xf .4byte 0x5deb .4byte .LLST622 .byte 0xf .4byte 0x5ddf .4byte .LLST623 .byte 0xf .4byte 0x5dd3 .4byte .LLST624 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1932 .8byte .LBE1932-.LBB1932 .byte 0x1 .2byte 0x7c7 .byte 0x3 .4byte 0x1769 .byte 0xf .4byte 0x6077 .4byte .LLST625 .byte 0xf .4byte 0x606b .4byte .LLST626 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1934 .8byte .LBE1934-.LBB1934 .byte 0x1 .2byte 0x7cc .byte 0x14 .4byte 0x17ab .byte 0xf .4byte 0x6039 .4byte .LLST627 .byte 0x10 .8byte .LBB1935 .8byte .LBE1935-.LBB1935 .byte 0x11 .4byte 0x6045 .4byte .LLST628 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1936 .8byte .LBE1936-.LBB1936 .byte 0x1 .2byte 0x7d4 .byte 0x13 .4byte 0x17ed .byte 0xf .4byte 0x6039 .4byte .LLST629 .byte 0x10 .8byte .LBB1937 .8byte .LBE1937-.LBB1937 .byte 0x11 .4byte 0x6045 .4byte .LLST630 .byte 0 .byte 0 .byte 0x12 .4byte 0x5dc6 .8byte .LBB1938 .4byte .Ldebug_ranges0+0x1290 .byte 0x1 .2byte 0x7e2 .byte 0x3 .4byte 0x1822 .byte 0xf .4byte 0x5deb .4byte .LLST631 .byte 0xf .4byte 0x5ddf .4byte .LLST632 .byte 0xf .4byte 0x5dd3 .4byte .LLST633 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1944 .8byte .LBE1944-.LBB1944 .byte 0x1 .2byte 0x7e6 .byte 0xe .4byte 0x1864 .byte 0xf .4byte 0x6039 .4byte .LLST634 .byte 0x10 .8byte .LBB1945 .8byte .LBE1945-.LBB1945 .byte 0x11 .4byte 0x6045 .4byte .LLST635 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1947 .4byte .Ldebug_ranges0+0x12d0 .byte 0x1 .2byte 0x7ea .byte 0x4 .4byte 0x1890 .byte 0xf .4byte 0x6077 .4byte .LLST636 .byte 0xf .4byte 0x606b .4byte .LLST637 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1952 .8byte .LBE1952-.LBB1952 .byte 0x1 .2byte 0x7ef .byte 0xd .4byte 0x18d2 .byte 0xf .4byte 0x6039 .4byte .LLST638 .byte 0x10 .8byte .LBB1953 .8byte .LBE1953-.LBB1953 .byte 0x11 .4byte 0x6045 .4byte .LLST639 .byte 0 .byte 0 .byte 0xe .4byte 0x5dc6 .8byte .LBB1954 .8byte .LBE1954-.LBB1954 .byte 0x1 .2byte 0x7f2 .byte 0x3 .4byte 0x190b .byte 0xf .4byte 0x5deb .4byte .LLST640 .byte 0xf .4byte 0x5ddf .4byte .LLST641 .byte 0xf .4byte 0x5dd3 .4byte .LLST642 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1956 .8byte .LBE1956-.LBB1956 .byte 0x1 .2byte 0x7f3 .byte 0x3 .4byte 0x193b .byte 0xf .4byte 0x6077 .4byte .LLST643 .byte 0xf .4byte 0x606b .4byte .LLST644 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1958 .8byte .LBE1958-.LBB1958 .byte 0x1 .2byte 0x7f4 .byte 0x14 .4byte 0x197d .byte 0xf .4byte 0x6039 .4byte .LLST645 .byte 0x10 .8byte .LBB1959 .8byte .LBE1959-.LBB1959 .byte 0x11 .4byte 0x6045 .4byte .LLST646 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1960 .8byte .LBE1960-.LBB1960 .byte 0x1 .2byte 0x7fc .byte 0x13 .4byte 0x19bf .byte 0xf .4byte 0x6039 .4byte .LLST647 .byte 0x10 .8byte .LBB1961 .8byte .LBE1961-.LBB1961 .byte 0x11 .4byte 0x6045 .4byte .LLST648 .byte 0 .byte 0 .byte 0x12 .4byte 0x5dc6 .8byte .LBB1962 .4byte .Ldebug_ranges0+0x1300 .byte 0x1 .2byte 0x811 .byte 0x3 .4byte 0x19f4 .byte 0xf .4byte 0x5deb .4byte .LLST649 .byte 0xf .4byte 0x5ddf .4byte .LLST650 .byte 0xf .4byte 0x5dd3 .4byte .LLST651 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1968 .8byte .LBE1968-.LBB1968 .byte 0x1 .2byte 0x784 .byte 0xe .4byte 0x1a36 .byte 0xf .4byte 0x6039 .4byte .LLST652 .byte 0x10 .8byte .LBB1969 .8byte .LBE1969-.LBB1969 .byte 0x11 .4byte 0x6045 .4byte .LLST653 .byte 0 .byte 0 .byte 0x12 .4byte 0x5dc6 .8byte .LBB1970 .4byte .Ldebug_ranges0+0x1340 .byte 0x1 .2byte 0x787 .byte 0x4 .4byte 0x1a5f .byte 0x1d .4byte 0x5deb .byte 0x1d .4byte 0x5ddf .byte 0x1d .4byte 0x5dd3 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1973 .4byte .Ldebug_ranges0+0x1370 .byte 0x1 .2byte 0x788 .byte 0x4 .4byte 0x1a8b .byte 0xf .4byte 0x6077 .4byte .LLST654 .byte 0xf .4byte 0x606b .4byte .LLST655 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1978 .8byte .LBE1978-.LBB1978 .byte 0x1 .2byte 0x789 .byte 0xe .4byte 0x1acd .byte 0xf .4byte 0x6039 .4byte .LLST656 .byte 0x10 .8byte .LBB1979 .8byte .LBE1979-.LBB1979 .byte 0x11 .4byte 0x6045 .4byte .LLST657 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1980 .4byte .Ldebug_ranges0+0x13a0 .byte 0x1 .2byte 0x78e .byte 0x4 .4byte 0x1af9 .byte 0xf .4byte 0x6077 .4byte .LLST658 .byte 0xf .4byte 0x606b .4byte .LLST659 .byte 0 .byte 0x13 .8byte .LVL893 .4byte 0xe35 .4byte 0x1b11 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x87 .byte 0 .byte 0 .byte 0x14 .8byte .LVL896 .4byte 0x624f .byte 0x13 .8byte .LVL923 .4byte 0x624f .4byte 0x1b4c .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC23 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x88 .byte 0 .byte 0xc .byte 0x1 .byte 0x5c .byte 0x5 .byte 0x91 .byte 0x88,0x7f .byte 0x94 .byte 0x4 .byte 0 .byte 0x13 .8byte .LVL948 .4byte 0x624f .4byte 0x1b71 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC24 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x88 .byte 0 .byte 0 .byte 0xb .8byte .LVL974 .4byte 0x624f .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC25 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x88 .byte 0 .byte 0xc .byte 0x1 .byte 0x5c .byte 0x5 .byte 0x91 .byte 0x88,0x7f .byte 0x94 .byte 0x4 .byte 0 .byte 0 .byte 0x8 .4byte .LASF65 .byte 0x1 .2byte 0x717 .byte 0xe .4byte 0x29 .8byte .LFB58 .8byte .LFE58-.LFB58 .byte 0x1 .byte 0x9c .4byte 0x1c84 .byte 0x9 .4byte .LASF46 .byte 0x1 .2byte 0x719 .byte 0xf .4byte 0x29 .4byte .LLST550 .byte 0x9 .4byte .LASF66 .byte 0x1 .2byte 0x71a .byte 0xf .4byte 0x29 .4byte .LLST551 .byte 0x9 .4byte .LASF67 .byte 0x1 .2byte 0x71a .byte 0x1a .4byte 0x29 .4byte .LLST552 .byte 0x9 .4byte .LASF68 .byte 0x1 .2byte 0x71b .byte 0xf .4byte 0x29 .4byte .LLST553 .byte 0xe .4byte 0x6028 .8byte .LBB1842 .8byte .LBE1842-.LBB1842 .byte 0x1 .2byte 0x71d .byte 0xc .4byte 0x1c45 .byte 0xf .4byte 0x6039 .4byte .LLST554 .byte 0x10 .8byte .LBB1843 .8byte .LBE1843-.LBB1843 .byte 0x11 .4byte 0x6045 .4byte .LLST555 .byte 0 .byte 0 .byte 0x1e .4byte 0x6028 .8byte .LBB1844 .8byte .LBE1844-.LBB1844 .byte 0x1 .2byte 0x72d .byte 0xd .byte 0xf .4byte 0x6039 .4byte .LLST556 .byte 0x10 .8byte .LBB1845 .8byte .LBE1845-.LBB1845 .byte 0x11 .4byte 0x6045 .4byte .LLST557 .byte 0 .byte 0 .byte 0 .byte 0x8 .4byte .LASF69 .byte 0x1 .2byte 0x5e0 .byte 0xe .4byte 0x29 .8byte .LFB57 .8byte .LFE57-.LFB57 .byte 0x1 .byte 0x9c .4byte 0x2f21 .byte 0xd .4byte .LASF70 .byte 0x1 .2byte 0x5e0 .byte 0x2d .4byte 0x29 .4byte .LLST388 .byte 0xd .4byte .LASF45 .byte 0x1 .2byte 0x5e0 .byte 0x45 .4byte 0xe2f .4byte .LLST389 .byte 0x9 .4byte .LASF46 .byte 0x1 .2byte 0x5e2 .byte 0xf .4byte 0x29 .4byte .LLST390 .byte 0x9 .4byte .LASF40 .byte 0x1 .2byte 0x5e2 .byte 0x1c .4byte 0x29 .4byte .LLST391 .byte 0x9 .4byte .LASF71 .byte 0x1 .2byte 0x5e3 .byte 0xf .4byte 0x29 .4byte .LLST392 .byte 0x1b .string "i" .byte 0x1 .2byte 0x5e4 .byte 0xf .4byte 0x29 .4byte .LLST393 .byte 0x9 .4byte .LASF72 .byte 0x1 .2byte 0x5e5 .byte 0xf .4byte 0x29 .4byte .LLST394 .byte 0x12 .4byte 0x6028 .8byte .LBB1604 .4byte .Ldebug_ranges0+0xa20 .byte 0x1 .2byte 0x5eb .byte 0xc .4byte 0x1d4e .byte 0xf .4byte 0x6039 .4byte .LLST395 .byte 0x1c .4byte .Ldebug_ranges0+0xa20 .byte 0x11 .4byte 0x6045 .4byte .LLST396 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1608 .4byte .Ldebug_ranges0+0xa50 .byte 0x1 .2byte 0x5ee .byte 0x2 .4byte 0x1d7a .byte 0xf .4byte 0x6077 .4byte .LLST397 .byte 0xf .4byte 0x606b .4byte .LLST398 .byte 0 .byte 0x12 .4byte 0x6028 .8byte .LBB1611 .4byte .Ldebug_ranges0+0xa80 .byte 0x1 .2byte 0x5f2 .byte 0xc .4byte 0x1dac .byte 0xf .4byte 0x6039 .4byte .LLST399 .byte 0x1c .4byte .Ldebug_ranges0+0xa80 .byte 0x11 .4byte 0x6045 .4byte .LLST400 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1616 .4byte .Ldebug_ranges0+0xab0 .byte 0x1 .2byte 0x5f7 .byte 0x2 .4byte 0x1dd8 .byte 0xf .4byte 0x6077 .4byte .LLST401 .byte 0xf .4byte 0x606b .4byte .LLST402 .byte 0 .byte 0x12 .4byte 0x6028 .8byte .LBB1620 .4byte .Ldebug_ranges0+0xae0 .byte 0x1 .2byte 0x602 .byte 0xd .4byte 0x1e0a .byte 0xf .4byte 0x6039 .4byte .LLST403 .byte 0x1c .4byte .Ldebug_ranges0+0xae0 .byte 0x11 .4byte 0x6045 .4byte .LLST404 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1625 .4byte .Ldebug_ranges0+0xb20 .byte 0x1 .2byte 0x60f .byte 0x3 .4byte 0x1e36 .byte 0xf .4byte 0x6077 .4byte .LLST405 .byte 0xf .4byte 0x606b .4byte .LLST406 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1630 .8byte .LBE1630-.LBB1630 .byte 0x1 .2byte 0x615 .byte 0xc .4byte 0x1e78 .byte 0xf .4byte 0x6039 .4byte .LLST407 .byte 0x10 .8byte .LBB1631 .8byte .LBE1631-.LBB1631 .byte 0x11 .4byte 0x6045 .4byte .LLST408 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1632 .4byte .Ldebug_ranges0+0xb50 .byte 0x1 .2byte 0x617 .byte 0x2 .4byte 0x1ea4 .byte 0xf .4byte 0x6077 .4byte .LLST409 .byte 0xf .4byte 0x606b .4byte .LLST410 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1636 .8byte .LBE1636-.LBB1636 .byte 0x1 .2byte 0x641 .byte 0xe .4byte 0x1ee6 .byte 0xf .4byte 0x6039 .4byte .LLST411 .byte 0x10 .8byte .LBB1637 .8byte .LBE1637-.LBB1637 .byte 0x11 .4byte 0x6045 .4byte .LLST412 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1638 .4byte .Ldebug_ranges0+0xb80 .byte 0x1 .2byte 0x643 .byte 0x4 .4byte 0x1f12 .byte 0xf .4byte 0x6077 .4byte .LLST413 .byte 0xf .4byte 0x606b .4byte .LLST414 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1642 .8byte .LBE1642-.LBB1642 .byte 0x1 .2byte 0x644 .byte 0x4 .4byte 0x1f4c .byte 0xf .4byte 0x5f3c .4byte .LLST415 .byte 0xb .8byte .LVL638 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1644 .8byte .LBE1644-.LBB1644 .byte 0x1 .2byte 0x646 .byte 0xe .4byte 0x1f8e .byte 0xf .4byte 0x6039 .4byte .LLST416 .byte 0x10 .8byte .LBB1645 .8byte .LBE1645-.LBB1645 .byte 0x11 .4byte 0x6045 .4byte .LLST417 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1646 .4byte .Ldebug_ranges0+0xbb0 .byte 0x1 .2byte 0x648 .byte 0x4 .4byte 0x1fba .byte 0xf .4byte 0x6077 .4byte .LLST418 .byte 0xf .4byte 0x606b .4byte .LLST419 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1650 .8byte .LBE1650-.LBB1650 .byte 0x1 .2byte 0x623 .byte 0xe .4byte 0x1ffc .byte 0xf .4byte 0x6039 .4byte .LLST420 .byte 0x10 .8byte .LBB1651 .8byte .LBE1651-.LBB1651 .byte 0x11 .4byte 0x6045 .4byte .LLST421 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1652 .4byte .Ldebug_ranges0+0xbe0 .byte 0x1 .2byte 0x625 .byte 0x4 .4byte 0x2028 .byte 0xf .4byte 0x6077 .4byte .LLST422 .byte 0xf .4byte 0x606b .4byte .LLST423 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1656 .8byte .LBE1656-.LBB1656 .byte 0x1 .2byte 0x627 .byte 0xe .4byte 0x206a .byte 0xf .4byte 0x6039 .4byte .LLST424 .byte 0x10 .8byte .LBB1657 .8byte .LBE1657-.LBB1657 .byte 0x11 .4byte 0x6045 .4byte .LLST425 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1658 .4byte .Ldebug_ranges0+0xc10 .byte 0x1 .2byte 0x629 .byte 0x4 .4byte 0x2096 .byte 0xf .4byte 0x6077 .4byte .LLST426 .byte 0xf .4byte 0x606b .4byte .LLST427 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1662 .8byte .LBE1662-.LBB1662 .byte 0x1 .2byte 0x654 .byte 0xe .4byte 0x20d8 .byte 0xf .4byte 0x6039 .4byte .LLST428 .byte 0x10 .8byte .LBB1663 .8byte .LBE1663-.LBB1663 .byte 0x11 .4byte 0x6045 .4byte .LLST429 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1664 .8byte .LBE1664-.LBB1664 .byte 0x1 .2byte 0x658 .byte 0x4 .4byte 0x2108 .byte 0xf .4byte 0x6077 .4byte .LLST430 .byte 0xf .4byte 0x606b .4byte .LLST431 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1666 .4byte .Ldebug_ranges0+0xc40 .byte 0x1 .2byte 0x662 .byte 0x4 .4byte 0x2134 .byte 0xf .4byte 0x6077 .4byte .LLST432 .byte 0xf .4byte 0x606b .4byte .LLST433 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1669 .8byte .LBE1669-.LBB1669 .byte 0x1 .2byte 0x66b .byte 0xd .4byte 0x2176 .byte 0xf .4byte 0x6039 .4byte .LLST434 .byte 0x10 .8byte .LBB1670 .8byte .LBE1670-.LBB1670 .byte 0x11 .4byte 0x6045 .4byte .LLST435 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1671 .8byte .LBE1671-.LBB1671 .byte 0x1 .2byte 0x66e .byte 0x3 .4byte 0x21a6 .byte 0xf .4byte 0x6077 .4byte .LLST436 .byte 0xf .4byte 0x606b .4byte .LLST437 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1673 .4byte .Ldebug_ranges0+0xc70 .byte 0x1 .2byte 0x675 .byte 0x3 .4byte 0x21d2 .byte 0xf .4byte 0x6077 .4byte .LLST438 .byte 0xf .4byte 0x606b .4byte .LLST439 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1676 .8byte .LBE1676-.LBB1676 .byte 0x1 .2byte 0x677 .byte 0x7 .4byte 0x2214 .byte 0xf .4byte 0x6039 .4byte .LLST440 .byte 0x10 .8byte .LBB1677 .8byte .LBE1677-.LBB1677 .byte 0x11 .4byte 0x6045 .4byte .LLST441 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1678 .8byte .LBE1678-.LBB1678 .byte 0x1 .2byte 0x679 .byte 0xd .4byte 0x2256 .byte 0xf .4byte 0x6039 .4byte .LLST442 .byte 0x10 .8byte .LBB1679 .8byte .LBE1679-.LBB1679 .byte 0x11 .4byte 0x6045 .4byte .LLST443 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1680 .4byte .Ldebug_ranges0+0xca0 .byte 0x1 .2byte 0x67b .byte 0x3 .4byte 0x2282 .byte 0xf .4byte 0x6077 .4byte .LLST444 .byte 0xf .4byte 0x606b .4byte .LLST445 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1684 .8byte .LBE1684-.LBB1684 .byte 0x1 .2byte 0x67c .byte 0x3 .4byte 0x22bc .byte 0xf .4byte 0x5f3c .4byte .LLST446 .byte 0xb .8byte .LVL672 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1686 .8byte .LBE1686-.LBB1686 .byte 0x1 .2byte 0x681 .byte 0xc .4byte 0x22fe .byte 0xf .4byte 0x6039 .4byte .LLST447 .byte 0x10 .8byte .LBB1687 .8byte .LBE1687-.LBB1687 .byte 0x11 .4byte 0x6045 .4byte .LLST448 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1688 .4byte .Ldebug_ranges0+0xcd0 .byte 0x1 .2byte 0x685 .byte 0x2 .4byte 0x232a .byte 0xf .4byte 0x6077 .4byte .LLST449 .byte 0xf .4byte 0x606b .4byte .LLST450 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1692 .8byte .LBE1692-.LBB1692 .byte 0x1 .2byte 0x68a .byte 0x3 .4byte 0x235a .byte 0xf .4byte 0x6077 .4byte .LLST451 .byte 0xf .4byte 0x606b .4byte .LLST452 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1694 .8byte .LBE1694-.LBB1694 .byte 0x1 .2byte 0x68c .byte 0x3 .4byte 0x238a .byte 0xf .4byte 0x6077 .4byte .LLST453 .byte 0xf .4byte 0x606b .4byte .LLST454 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1696 .8byte .LBE1696-.LBB1696 .byte 0x1 .2byte 0x68e .byte 0xa .4byte 0x23cc .byte 0xf .4byte 0x6039 .4byte .LLST455 .byte 0x10 .8byte .LBB1697 .8byte .LBE1697-.LBB1697 .byte 0x11 .4byte 0x6045 .4byte .LLST456 .byte 0 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1698 .8byte .LBE1698-.LBB1698 .byte 0x1 .2byte 0x68f .byte 0x3 .4byte 0x2406 .byte 0xf .4byte 0x5f3c .4byte .LLST457 .byte 0xb .8byte .LVL685 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1700 .8byte .LBE1700-.LBB1700 .byte 0x1 .2byte 0x6a1 .byte 0x2 .4byte 0x2436 .byte 0xf .4byte 0x6077 .4byte .LLST458 .byte 0xf .4byte 0x606b .4byte .LLST459 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1702 .4byte .Ldebug_ranges0+0xd00 .byte 0x1 .2byte 0x6a3 .byte 0x2 .4byte 0x2462 .byte 0xf .4byte 0x6077 .4byte .LLST460 .byte 0xf .4byte 0x606b .4byte .LLST461 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1706 .8byte .LBE1706-.LBB1706 .byte 0x1 .2byte 0x6a5 .byte 0x2 .4byte 0x249c .byte 0xf .4byte 0x5f3c .4byte .LLST462 .byte 0xb .8byte .LVL690 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0x12 .4byte 0x6028 .8byte .LBB1708 .4byte .Ldebug_ranges0+0xd30 .byte 0x1 .2byte 0x6a6 .byte 0x9 .4byte 0x24ce .byte 0xf .4byte 0x6039 .4byte .LLST463 .byte 0x1c .4byte .Ldebug_ranges0+0xd30 .byte 0x11 .4byte 0x6045 .4byte .LLST464 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1712 .8byte .LBE1712-.LBB1712 .byte 0x1 .2byte 0x6a9 .byte 0x7 .4byte 0x2510 .byte 0xf .4byte 0x6039 .4byte .LLST465 .byte 0x10 .8byte .LBB1713 .8byte .LBE1713-.LBB1713 .byte 0x11 .4byte 0x6045 .4byte .LLST466 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1714 .8byte .LBE1714-.LBB1714 .byte 0x1 .2byte 0x6de .byte 0xc .4byte 0x2552 .byte 0xf .4byte 0x6039 .4byte .LLST467 .byte 0x10 .8byte .LBB1715 .8byte .LBE1715-.LBB1715 .byte 0x11 .4byte 0x6045 .4byte .LLST468 .byte 0 .byte 0 .byte 0x12 .4byte 0x6028 .8byte .LBB1716 .4byte .Ldebug_ranges0+0xd60 .byte 0x1 .2byte 0x6ee .byte 0x9 .4byte 0x2584 .byte 0xf .4byte 0x6039 .4byte .LLST469 .byte 0x1c .4byte .Ldebug_ranges0+0xd60 .byte 0x11 .4byte 0x6045 .4byte .LLST470 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1720 .8byte .LBE1720-.LBB1720 .byte 0x1 .2byte 0x6f0 .byte 0xc .4byte 0x25c6 .byte 0xf .4byte 0x6039 .4byte .LLST471 .byte 0x10 .8byte .LBB1721 .8byte .LBE1721-.LBB1721 .byte 0x11 .4byte 0x6045 .4byte .LLST472 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1722 .4byte .Ldebug_ranges0+0xd90 .byte 0x1 .2byte 0x6f2 .byte 0x2 .4byte 0x25f2 .byte 0xf .4byte 0x6077 .4byte .LLST473 .byte 0xf .4byte 0x606b .4byte .LLST474 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1726 .8byte .LBE1726-.LBB1726 .byte 0x1 .2byte 0x6f3 .byte 0x2 .4byte 0x262c .byte 0xf .4byte 0x5f3c .4byte .LLST475 .byte 0xb .8byte .LVL708 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1728 .8byte .LBE1728-.LBB1728 .byte 0x1 .2byte 0x6f5 .byte 0xc .4byte 0x266e .byte 0xf .4byte 0x6039 .4byte .LLST476 .byte 0x10 .8byte .LBB1729 .8byte .LBE1729-.LBB1729 .byte 0x11 .4byte 0x6045 .4byte .LLST477 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1730 .4byte .Ldebug_ranges0+0xdc0 .byte 0x1 .2byte 0x6f7 .byte 0x2 .4byte 0x269a .byte 0xf .4byte 0x6077 .4byte .LLST478 .byte 0xf .4byte 0x606b .4byte .LLST479 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1734 .8byte .LBE1734-.LBB1734 .byte 0x1 .2byte 0x6f8 .byte 0x2 .4byte 0x26d4 .byte 0xf .4byte 0x5f3c .4byte .LLST480 .byte 0xb .8byte .LVL713 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1736 .8byte .LBE1736-.LBB1736 .byte 0x1 .2byte 0x6fb .byte 0xc .4byte 0x2716 .byte 0xf .4byte 0x6039 .4byte .LLST481 .byte 0x10 .8byte .LBB1737 .8byte .LBE1737-.LBB1737 .byte 0x11 .4byte 0x6045 .4byte .LLST482 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1738 .4byte .Ldebug_ranges0+0xdf0 .byte 0x1 .2byte 0x6fd .byte 0x2 .4byte 0x2742 .byte 0xf .4byte 0x6077 .4byte .LLST483 .byte 0xf .4byte 0x606b .4byte .LLST484 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1742 .8byte .LBE1742-.LBB1742 .byte 0x1 .2byte 0x6fe .byte 0x2 .4byte 0x277c .byte 0xf .4byte 0x5f3c .4byte .LLST485 .byte 0xb .8byte .LVL718 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1744 .8byte .LBE1744-.LBB1744 .byte 0x1 .2byte 0x700 .byte 0xc .4byte 0x27be .byte 0xf .4byte 0x6039 .4byte .LLST486 .byte 0x10 .8byte .LBB1745 .8byte .LBE1745-.LBB1745 .byte 0x11 .4byte 0x6045 .4byte .LLST487 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1746 .4byte .Ldebug_ranges0+0xe20 .byte 0x1 .2byte 0x702 .byte 0x2 .4byte 0x27ea .byte 0xf .4byte 0x6077 .4byte .LLST488 .byte 0xf .4byte 0x606b .4byte .LLST489 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1750 .8byte .LBE1750-.LBB1750 .byte 0x1 .2byte 0x709 .byte 0xd .4byte 0x282c .byte 0xf .4byte 0x6039 .4byte .LLST490 .byte 0x10 .8byte .LBB1751 .8byte .LBE1751-.LBB1751 .byte 0x11 .4byte 0x6045 .4byte .LLST491 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1752 .4byte .Ldebug_ranges0+0xe50 .byte 0x1 .2byte 0x70c .byte 0x3 .4byte 0x2858 .byte 0xf .4byte 0x6077 .4byte .LLST492 .byte 0xf .4byte 0x606b .4byte .LLST493 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1756 .8byte .LBE1756-.LBB1756 .byte 0x1 .2byte 0x62d .byte 0xe .4byte 0x289a .byte 0xf .4byte 0x6039 .4byte .LLST494 .byte 0x10 .8byte .LBB1757 .8byte .LBE1757-.LBB1757 .byte 0x11 .4byte 0x6045 .4byte .LLST495 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1758 .4byte .Ldebug_ranges0+0xe80 .byte 0x1 .2byte 0x630 .byte 0x4 .4byte 0x28c6 .byte 0xf .4byte 0x6077 .4byte .LLST496 .byte 0xf .4byte 0x606b .4byte .LLST497 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1762 .8byte .LBE1762-.LBB1762 .byte 0x1 .2byte 0x632 .byte 0x10 .4byte 0x2908 .byte 0xf .4byte 0x6039 .4byte .LLST498 .byte 0x10 .8byte .LBB1763 .8byte .LBE1763-.LBB1763 .byte 0x11 .4byte 0x6045 .4byte .LLST499 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1764 .8byte .LBE1764-.LBB1764 .byte 0x1 .2byte 0x633 .byte 0xe .4byte 0x294a .byte 0xf .4byte 0x6039 .4byte .LLST500 .byte 0x10 .8byte .LBB1765 .8byte .LBE1765-.LBB1765 .byte 0x11 .4byte 0x6045 .4byte .LLST501 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1766 .4byte .Ldebug_ranges0+0xeb0 .byte 0x1 .2byte 0x636 .byte 0x4 .4byte 0x2976 .byte 0xf .4byte 0x6077 .4byte .LLST502 .byte 0xf .4byte 0x606b .4byte .LLST503 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1770 .8byte .LBE1770-.LBB1770 .byte 0x1 .2byte 0x638 .byte 0xe .4byte 0x29b8 .byte 0xf .4byte 0x6039 .4byte .LLST504 .byte 0x10 .8byte .LBB1771 .8byte .LBE1771-.LBB1771 .byte 0x11 .4byte 0x6045 .4byte .LLST505 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1772 .4byte .Ldebug_ranges0+0xee0 .byte 0x1 .2byte 0x63b .byte 0x4 .4byte 0x29e4 .byte 0xf .4byte 0x6077 .4byte .LLST506 .byte 0xf .4byte 0x606b .4byte .LLST507 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1776 .8byte .LBE1776-.LBB1776 .byte 0x1 .2byte 0x65d .byte 0xe .4byte 0x2a26 .byte 0xf .4byte 0x6039 .4byte .LLST508 .byte 0x10 .8byte .LBB1777 .8byte .LBE1777-.LBB1777 .byte 0x11 .4byte 0x6045 .4byte .LLST509 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1779 .8byte .LBE1779-.LBB1779 .byte 0x1 .2byte 0x672 .byte 0xd .4byte 0x2a68 .byte 0xf .4byte 0x6039 .4byte .LLST510 .byte 0x10 .8byte .LBB1780 .8byte .LBE1780-.LBB1780 .byte 0x11 .4byte 0x6045 .4byte .LLST511 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1782 .8byte .LBE1782-.LBB1782 .byte 0x1 .2byte 0x696 .byte 0x7 .4byte 0x2aaa .byte 0xf .4byte 0x6039 .4byte .LLST512 .byte 0x10 .8byte .LBB1783 .8byte .LBE1783-.LBB1783 .byte 0x11 .4byte 0x6045 .4byte .LLST513 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1784 .8byte .LBE1784-.LBB1784 .byte 0x1 .2byte 0x6ab .byte 0xd .4byte 0x2aec .byte 0xf .4byte 0x6039 .4byte .LLST514 .byte 0x10 .8byte .LBB1785 .8byte .LBE1785-.LBB1785 .byte 0x11 .4byte 0x6045 .4byte .LLST515 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1786 .4byte .Ldebug_ranges0+0xf10 .byte 0x1 .2byte 0x6ae .byte 0x3 .4byte 0x2b18 .byte 0xf .4byte 0x6077 .4byte .LLST516 .byte 0xf .4byte 0x606b .4byte .LLST517 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1790 .8byte .LBE1790-.LBB1790 .byte 0x1 .2byte 0x6af .byte 0x3 .4byte 0x2b52 .byte 0xf .4byte 0x5f3c .4byte .LLST518 .byte 0xb .8byte .LVL762 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1792 .8byte .LBE1792-.LBB1792 .byte 0x1 .2byte 0x6b1 .byte 0xd .4byte 0x2b94 .byte 0xf .4byte 0x6039 .4byte .LLST519 .byte 0x10 .8byte .LBB1793 .8byte .LBE1793-.LBB1793 .byte 0x11 .4byte 0x6045 .4byte .LLST520 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1794 .4byte .Ldebug_ranges0+0xf40 .byte 0x1 .2byte 0x6b4 .byte 0x3 .4byte 0x2bc0 .byte 0xf .4byte 0x6077 .4byte .LLST521 .byte 0xf .4byte 0x606b .4byte .LLST522 .byte 0 .byte 0x12 .4byte 0x6028 .8byte .LBB1798 .4byte .Ldebug_ranges0+0xf70 .byte 0x1 .2byte 0x6b5 .byte 0xb .4byte 0x2bf2 .byte 0xf .4byte 0x6039 .4byte .LLST523 .byte 0x1c .4byte .Ldebug_ranges0+0xf70 .byte 0x11 .4byte 0x6045 .4byte .LLST524 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1802 .8byte .LBE1802-.LBB1802 .byte 0x1 .2byte 0x6bd .byte 0xd .4byte 0x2c34 .byte 0xf .4byte 0x6039 .4byte .LLST525 .byte 0x10 .8byte .LBB1803 .8byte .LBE1803-.LBB1803 .byte 0x11 .4byte 0x6045 .4byte .LLST526 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1804 .4byte .Ldebug_ranges0+0xfa0 .byte 0x1 .2byte 0x6bf .byte 0x3 .4byte 0x2c60 .byte 0xf .4byte 0x6077 .4byte .LLST527 .byte 0xf .4byte 0x606b .4byte .LLST528 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1808 .8byte .LBE1808-.LBB1808 .byte 0x1 .2byte 0x6c0 .byte 0x3 .4byte 0x2c9a .byte 0xf .4byte 0x5f3c .4byte .LLST529 .byte 0xb .8byte .LVL775 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1810 .8byte .LBE1810-.LBB1810 .byte 0x1 .2byte 0x6c3 .byte 0xd .4byte 0x2cdc .byte 0xf .4byte 0x6039 .4byte .LLST530 .byte 0x10 .8byte .LBB1811 .8byte .LBE1811-.LBB1811 .byte 0x11 .4byte 0x6045 .4byte .LLST531 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1812 .4byte .Ldebug_ranges0+0xfd0 .byte 0x1 .2byte 0x6c5 .byte 0x3 .4byte 0x2d08 .byte 0xf .4byte 0x6077 .4byte .LLST532 .byte 0xf .4byte 0x606b .4byte .LLST533 .byte 0 .byte 0x12 .4byte 0x6028 .8byte .LBB1816 .4byte .Ldebug_ranges0+0x1000 .byte 0x1 .2byte 0x6c6 .byte 0xb .4byte 0x2d3a .byte 0xf .4byte 0x6039 .4byte .LLST534 .byte 0x1c .4byte .Ldebug_ranges0+0x1000 .byte 0x11 .4byte 0x6045 .4byte .LLST535 .byte 0 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1820 .8byte .LBE1820-.LBB1820 .byte 0x1 .2byte 0x6c7 .byte 0x3 .4byte 0x2d74 .byte 0xf .4byte 0x5f3c .4byte .LLST536 .byte 0xb .8byte .LVL784 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3f .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1822 .8byte .LBE1822-.LBB1822 .byte 0x1 .2byte 0x6cc .byte 0xe .4byte 0x2db6 .byte 0xf .4byte 0x6039 .4byte .LLST537 .byte 0x10 .8byte .LBB1823 .8byte .LBE1823-.LBB1823 .byte 0x11 .4byte 0x6045 .4byte .LLST538 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1824 .4byte .Ldebug_ranges0+0x1030 .byte 0x1 .2byte 0x6ce .byte 0x4 .4byte 0x2de2 .byte 0xf .4byte 0x6077 .4byte .LLST539 .byte 0xf .4byte 0x606b .4byte .LLST540 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1828 .8byte .LBE1828-.LBB1828 .byte 0x1 .2byte 0x6d0 .byte 0xe .4byte 0x2e24 .byte 0xf .4byte 0x6039 .4byte .LLST541 .byte 0x10 .8byte .LBB1829 .8byte .LBE1829-.LBB1829 .byte 0x11 .4byte 0x6045 .4byte .LLST542 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1830 .4byte .Ldebug_ranges0+0x1060 .byte 0x1 .2byte 0x6d3 .byte 0x4 .4byte 0x2e50 .byte 0xf .4byte 0x6077 .4byte .LLST543 .byte 0xf .4byte 0x606b .4byte .LLST544 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1834 .8byte .LBE1834-.LBB1834 .byte 0x1 .2byte 0x6d4 .byte 0x4 .4byte 0x2e8b .byte 0xf .4byte 0x5f3c .4byte .LLST545 .byte 0xb .8byte .LVL795 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x83 .byte 0 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1836 .8byte .LBE1836-.LBB1836 .byte 0x1 .2byte 0x6d7 .byte 0x4 .4byte 0x2ebb .byte 0xf .4byte 0x6077 .4byte .LLST546 .byte 0xf .4byte 0x606b .4byte .LLST547 .byte 0 .byte 0x12 .4byte 0x6028 .8byte .LBB1838 .4byte .Ldebug_ranges0+0x1090 .byte 0x1 .2byte 0x6d8 .byte 0xb .4byte 0x2eed .byte 0xf .4byte 0x6039 .4byte .LLST548 .byte 0x1c .4byte .Ldebug_ranges0+0x1090 .byte 0x11 .4byte 0x6045 .4byte .LLST549 .byte 0 .byte 0 .byte 0x13 .8byte .LVL633 .4byte 0x54f8 .4byte 0x2f05 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x82 .byte 0 .byte 0 .byte 0xb .8byte .LVL800 .4byte 0x624f .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC12 .byte 0 .byte 0 .byte 0x1f .4byte .LASF82 .byte 0x1 .2byte 0x530 .byte 0x6 .8byte .LFB56 .8byte .LFE56-.LFB56 .byte 0x1 .byte 0x9c .4byte 0x3167 .byte 0xd .4byte .LASF45 .byte 0x1 .2byte 0x530 .byte 0x2b .4byte 0xe2f .4byte .LLST376 .byte 0x9 .4byte .LASF73 .byte 0x1 .2byte 0x534 .byte 0x6 .4byte 0x37 .4byte .LLST377 .byte 0xa .4byte .LASF74 .byte 0x1 .2byte 0x535 .byte 0x7 .4byte 0x3167 .byte 0x3 .byte 0x91 .byte 0xa0,0x7e .byte 0xa .4byte .LASF75 .byte 0x1 .2byte 0x536 .byte 0x7 .4byte 0x3167 .byte 0x3 .byte 0x91 .byte 0xb8,0x7e .byte 0xa .4byte .LASF76 .byte 0x1 .2byte 0x537 .byte 0x7 .4byte 0x3167 .byte 0x3 .byte 0x91 .byte 0xd0,0x7e .byte 0xa .4byte .LASF77 .byte 0x1 .2byte 0x538 .byte 0x7 .4byte 0x3167 .byte 0x3 .byte 0x91 .byte 0xe8,0x7e .byte 0xa .4byte .LASF78 .byte 0x1 .2byte 0x539 .byte 0x7 .4byte 0x3167 .byte 0x3 .byte 0x91 .byte 0x80,0x7f .byte 0xa .4byte .LASF79 .byte 0x1 .2byte 0x53a .byte 0x7 .4byte 0x3167 .byte 0x3 .byte 0x91 .byte 0x98,0x7f .byte 0xa .4byte .LASF80 .byte 0x1 .2byte 0x541 .byte 0x7 .4byte 0x3167 .byte 0x3 .byte 0x91 .byte 0xb0,0x7f .byte 0xa .4byte .LASF81 .byte 0x1 .2byte 0x548 .byte 0x7 .4byte 0x3167 .byte 0x2 .byte 0x91 .byte 0x48 .byte 0x12 .4byte 0x6028 .8byte .LBB1588 .4byte .Ldebug_ranges0+0x9e0 .byte 0x1 .2byte 0x534 .byte 0x13 .4byte 0x301b .byte 0xf .4byte 0x6039 .4byte .LLST378 .byte 0x1c .4byte .Ldebug_ranges0+0x9e0 .byte 0x11 .4byte 0x6045 .4byte .LLST379 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1594 .8byte .LBE1594-.LBB1594 .byte 0x1 .2byte 0x594 .byte 0x6 .4byte 0x304b .byte 0xf .4byte 0x6077 .4byte .LLST380 .byte 0xf .4byte 0x606b .4byte .LLST381 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1596 .8byte .LBE1596-.LBB1596 .byte 0x1 .2byte 0x595 .byte 0x6 .4byte 0x307b .byte 0xf .4byte 0x6077 .4byte .LLST382 .byte 0xf .4byte 0x606b .4byte .LLST383 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1598 .8byte .LBE1598-.LBB1598 .byte 0x1 .2byte 0x596 .byte 0x6 .4byte 0x30ab .byte 0xf .4byte 0x6077 .4byte .LLST384 .byte 0xf .4byte 0x606b .4byte .LLST385 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1600 .8byte .LBE1600-.LBB1600 .byte 0x1 .2byte 0x597 .byte 0x6 .4byte 0x30db .byte 0xf .4byte 0x6077 .4byte .LLST386 .byte 0xf .4byte 0x606b .4byte .LLST387 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1602 .8byte .LBE1602-.LBB1602 .byte 0x1 .2byte 0x598 .byte 0x6 .4byte 0x3109 .byte 0x20 .4byte 0x6077 .4byte 0x3102500 .byte 0x21 .4byte 0x606b .byte 0x1 .byte 0x5f .byte 0 .byte 0x13 .8byte .LVL586 .4byte 0x624f .4byte 0x312e .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0x3 .8byte .LC11 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL587 .4byte 0x5f47 .4byte 0x3146 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x72 .byte 0 .byte 0 .byte 0xb .8byte .LVL592 .4byte 0x5f47 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x72 .byte 0 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x3 .byte 0x91 .byte 0xb0,0x7f .byte 0xc .byte 0x1 .byte 0x5c .byte 0x1 .byte 0x46 .byte 0 .byte 0 .byte 0x22 .4byte 0x53 .4byte 0x3177 .byte 0x23 .4byte 0x3e .byte 0x15 .byte 0 .byte 0x1f .4byte .LASF83 .byte 0x1 .2byte 0x4cb .byte 0x6 .8byte .LFB55 .8byte .LFE55-.LFB55 .byte 0x1 .byte 0x9c .4byte 0x34bc .byte 0x24 .4byte .LASF45 .byte 0x1 .2byte 0x4cb .byte 0x23 .4byte 0xe2f .byte 0x1 .byte 0x5a .byte 0x9 .4byte .LASF46 .byte 0x1 .2byte 0x4cd .byte 0xf .4byte 0x29 .4byte .LLST346 .byte 0x9 .4byte .LASF40 .byte 0x1 .2byte 0x4cd .byte 0x18 .4byte 0x29 .4byte .LLST347 .byte 0x1b .string "m" .byte 0x1 .2byte 0x4ce .byte 0xf .4byte 0x29 .4byte .LLST348 .byte 0x9 .4byte .LASF61 .byte 0x1 .2byte 0x4ce .byte 0x16 .4byte 0x29 .4byte .LLST349 .byte 0xe .4byte 0x6028 .8byte .LBB1560 .8byte .LBE1560-.LBB1560 .byte 0x1 .2byte 0x4d5 .byte 0xc .4byte 0x3229 .byte 0xf .4byte 0x6039 .4byte .LLST350 .byte 0x10 .8byte .LBB1561 .8byte .LBE1561-.LBB1561 .byte 0x11 .4byte 0x6045 .4byte .LLST351 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1562 .4byte .Ldebug_ranges0+0x9b0 .byte 0x1 .2byte 0x4d8 .byte 0x2 .4byte 0x3255 .byte 0xf .4byte 0x6077 .4byte .LLST352 .byte 0xf .4byte 0x606b .4byte .LLST353 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1566 .8byte .LBE1566-.LBB1566 .byte 0x1 .2byte 0x4da .byte 0xc .4byte 0x3297 .byte 0xf .4byte 0x6039 .4byte .LLST354 .byte 0x10 .8byte .LBB1567 .8byte .LBE1567-.LBB1567 .byte 0x11 .4byte 0x6045 .4byte .LLST355 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1568 .8byte .LBE1568-.LBB1568 .byte 0x1 .2byte 0x4e7 .byte 0x2 .4byte 0x32c7 .byte 0xf .4byte 0x6077 .4byte .LLST356 .byte 0xf .4byte 0x606b .4byte .LLST357 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1570 .8byte .LBE1570-.LBB1570 .byte 0x1 .2byte 0x4ee .byte 0xd .4byte 0x3309 .byte 0xf .4byte 0x6039 .4byte .LLST358 .byte 0x10 .8byte .LBB1571 .8byte .LBE1571-.LBB1571 .byte 0x11 .4byte 0x6045 .4byte .LLST359 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1572 .8byte .LBE1572-.LBB1572 .byte 0x1 .2byte 0x507 .byte 0x3 .4byte 0x3339 .byte 0xf .4byte 0x6077 .4byte .LLST360 .byte 0xf .4byte 0x606b .4byte .LLST361 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1574 .8byte .LBE1574-.LBB1574 .byte 0x1 .2byte 0x50e .byte 0xd .4byte 0x337b .byte 0xf .4byte 0x6039 .4byte .LLST362 .byte 0x10 .8byte .LBB1575 .8byte .LBE1575-.LBB1575 .byte 0x11 .4byte 0x6045 .4byte .LLST363 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1576 .8byte .LBE1576-.LBB1576 .byte 0x1 .2byte 0x513 .byte 0x2 .4byte 0x33ab .byte 0xf .4byte 0x6077 .4byte .LLST364 .byte 0xf .4byte 0x606b .4byte .LLST365 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1578 .8byte .LBE1578-.LBB1578 .byte 0x1 .2byte 0x519 .byte 0x3 .4byte 0x33db .byte 0xf .4byte 0x6077 .4byte .LLST366 .byte 0xf .4byte 0x606b .4byte .LLST367 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1580 .8byte .LBE1580-.LBB1580 .byte 0x1 .2byte 0x520 .byte 0xd .4byte 0x341d .byte 0xf .4byte 0x6039 .4byte .LLST368 .byte 0x10 .8byte .LBB1581 .8byte .LBE1581-.LBB1581 .byte 0x11 .4byte 0x6045 .4byte .LLST369 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1582 .8byte .LBE1582-.LBB1582 .byte 0x1 .2byte 0x522 .byte 0x3 .4byte 0x344d .byte 0xf .4byte 0x6077 .4byte .LLST370 .byte 0xf .4byte 0x606b .4byte .LLST371 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1584 .8byte .LBE1584-.LBB1584 .byte 0x1 .2byte 0x524 .byte 0xd .4byte 0x348f .byte 0xf .4byte 0x6039 .4byte .LLST372 .byte 0x10 .8byte .LBB1585 .8byte .LBE1585-.LBB1585 .byte 0x11 .4byte 0x6045 .4byte .LLST373 .byte 0 .byte 0 .byte 0x1e .4byte 0x605e .8byte .LBB1586 .8byte .LBE1586-.LBB1586 .byte 0x1 .2byte 0x526 .byte 0x3 .byte 0xf .4byte 0x6077 .4byte .LLST374 .byte 0xf .4byte 0x606b .4byte .LLST375 .byte 0 .byte 0 .byte 0x8 .4byte .LASF84 .byte 0x1 .2byte 0x455 .byte 0xe .4byte 0x29 .8byte .LFB54 .8byte .LFE54-.LFB54 .byte 0x1 .byte 0x9c .4byte 0x3ba4 .byte 0xd .4byte .LASF45 .byte 0x1 .2byte 0x455 .byte 0x2b .4byte 0xe2f .4byte .LLST288 .byte 0x9 .4byte .LASF46 .byte 0x1 .2byte 0x458 .byte 0xf .4byte 0x29 .4byte .LLST289 .byte 0x9 .4byte .LASF40 .byte 0x1 .2byte 0x459 .byte 0xf .4byte 0x29 .4byte .LLST290 .byte 0x12 .4byte 0x6028 .8byte .LBB1470 .4byte .Ldebug_ranges0+0x700 .byte 0x1 .2byte 0x45f .byte 0xc .4byte 0x3544 .byte 0xf .4byte 0x6039 .4byte .LLST291 .byte 0x1c .4byte .Ldebug_ranges0+0x700 .byte 0x11 .4byte 0x6045 .4byte .LLST292 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1476 .4byte .Ldebug_ranges0+0x740 .byte 0x1 .2byte 0x461 .byte 0x2 .4byte 0x3570 .byte 0xf .4byte 0x6077 .4byte .LLST293 .byte 0xf .4byte 0x606b .4byte .LLST294 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1480 .8byte .LBE1480-.LBB1480 .byte 0x1 .2byte 0x463 .byte 0xc .4byte 0x35b2 .byte 0xf .4byte 0x6039 .4byte .LLST295 .byte 0x10 .8byte .LBB1481 .8byte .LBE1481-.LBB1481 .byte 0x11 .4byte 0x6045 .4byte .LLST296 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1482 .4byte .Ldebug_ranges0+0x770 .byte 0x1 .2byte 0x465 .byte 0x2 .4byte 0x35de .byte 0xf .4byte 0x6077 .4byte .LLST297 .byte 0xf .4byte 0x606b .4byte .LLST298 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1486 .8byte .LBE1486-.LBB1486 .byte 0x1 .2byte 0x467 .byte 0xc .4byte 0x3620 .byte 0xf .4byte 0x6039 .4byte .LLST299 .byte 0x10 .8byte .LBB1487 .8byte .LBE1487-.LBB1487 .byte 0x11 .4byte 0x6045 .4byte .LLST300 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1488 .4byte .Ldebug_ranges0+0x7a0 .byte 0x1 .2byte 0x469 .byte 0x2 .4byte 0x364c .byte 0xf .4byte 0x6077 .4byte .LLST301 .byte 0xf .4byte 0x606b .4byte .LLST302 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1492 .8byte .LBE1492-.LBB1492 .byte 0x1 .2byte 0x46c .byte 0xc .4byte 0x368e .byte 0xf .4byte 0x6039 .4byte .LLST303 .byte 0x10 .8byte .LBB1493 .8byte .LBE1493-.LBB1493 .byte 0x11 .4byte 0x6045 .4byte .LLST304 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1494 .4byte .Ldebug_ranges0+0x7d0 .byte 0x1 .2byte 0x46e .byte 0x2 .4byte 0x36ba .byte 0xf .4byte 0x6077 .4byte .LLST305 .byte 0xf .4byte 0x606b .4byte .LLST306 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1498 .8byte .LBE1498-.LBB1498 .byte 0x1 .2byte 0x470 .byte 0xc .4byte 0x36fc .byte 0xf .4byte 0x6039 .4byte .LLST307 .byte 0x10 .8byte .LBB1499 .8byte .LBE1499-.LBB1499 .byte 0x11 .4byte 0x6045 .4byte .LLST308 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1500 .8byte .LBE1500-.LBB1500 .byte 0x1 .2byte 0x472 .byte 0x2 .4byte 0x372c .byte 0xf .4byte 0x6077 .4byte .LLST309 .byte 0xf .4byte 0x606b .4byte .LLST310 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1502 .8byte .LBE1502-.LBB1502 .byte 0x1 .2byte 0x474 .byte 0xc .4byte 0x376e .byte 0xf .4byte 0x6039 .4byte .LLST311 .byte 0x10 .8byte .LBB1503 .8byte .LBE1503-.LBB1503 .byte 0x11 .4byte 0x6045 .4byte .LLST312 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1504 .4byte .Ldebug_ranges0+0x800 .byte 0x1 .2byte 0x476 .byte 0x2 .4byte 0x379a .byte 0xf .4byte 0x6077 .4byte .LLST313 .byte 0xf .4byte 0x606b .4byte .LLST314 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1508 .8byte .LBE1508-.LBB1508 .byte 0x1 .2byte 0x477 .byte 0x2 .4byte 0x37d4 .byte 0xf .4byte 0x5f3c .4byte .LLST315 .byte 0xb .8byte .LVL498 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1510 .8byte .LBE1510-.LBB1510 .byte 0x1 .2byte 0x47e .byte 0x2 .4byte 0x380f .byte 0xf .4byte 0x5f3c .4byte .LLST316 .byte 0xb .8byte .LVL502 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x64 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1512 .8byte .LBE1512-.LBB1512 .byte 0x1 .2byte 0x495 .byte 0xc .4byte 0x3851 .byte 0xf .4byte 0x6039 .4byte .LLST317 .byte 0x10 .8byte .LBB1513 .8byte .LBE1513-.LBB1513 .byte 0x11 .4byte 0x6045 .4byte .LLST318 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1514 .4byte .Ldebug_ranges0+0x830 .byte 0x1 .2byte 0x497 .byte 0x2 .4byte 0x387d .byte 0xf .4byte 0x6077 .4byte .LLST319 .byte 0xf .4byte 0x606b .4byte .LLST320 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1518 .8byte .LBE1518-.LBB1518 .byte 0x1 .2byte 0x499 .byte 0xc .4byte 0x38bf .byte 0xf .4byte 0x6039 .4byte .LLST321 .byte 0x10 .8byte .LBB1519 .8byte .LBE1519-.LBB1519 .byte 0x11 .4byte 0x6045 .4byte .LLST322 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1520 .4byte .Ldebug_ranges0+0x860 .byte 0x1 .2byte 0x49b .byte 0x2 .4byte 0x38eb .byte 0xf .4byte 0x6077 .4byte .LLST323 .byte 0xf .4byte 0x606b .4byte .LLST324 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1524 .8byte .LBE1524-.LBB1524 .byte 0x1 .2byte 0x49d .byte 0xc .4byte 0x392d .byte 0xf .4byte 0x6039 .4byte .LLST325 .byte 0x10 .8byte .LBB1525 .8byte .LBE1525-.LBB1525 .byte 0x11 .4byte 0x6045 .4byte .LLST326 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1526 .4byte .Ldebug_ranges0+0x890 .byte 0x1 .2byte 0x49f .byte 0x2 .4byte 0x3959 .byte 0xf .4byte 0x6077 .4byte .LLST327 .byte 0xf .4byte 0x606b .4byte .LLST328 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1530 .8byte .LBE1530-.LBB1530 .byte 0x1 .2byte 0x4a0 .byte 0x2 .4byte 0x3993 .byte 0xf .4byte 0x5f3c .4byte .LLST329 .byte 0xb .8byte .LVL516 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x35 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1532 .8byte .LBE1532-.LBB1532 .byte 0x1 .2byte 0x4a3 .byte 0xc .4byte 0x39d5 .byte 0xf .4byte 0x6039 .4byte .LLST330 .byte 0x10 .8byte .LBB1533 .8byte .LBE1533-.LBB1533 .byte 0x11 .4byte 0x6045 .4byte .LLST331 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1534 .4byte .Ldebug_ranges0+0x8c0 .byte 0x1 .2byte 0x4a5 .byte 0x2 .4byte 0x3a01 .byte 0xf .4byte 0x6077 .4byte .LLST332 .byte 0xf .4byte 0x606b .4byte .LLST333 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1538 .8byte .LBE1538-.LBB1538 .byte 0x1 .2byte 0x4ac .byte 0xc .4byte 0x3a43 .byte 0xf .4byte 0x6039 .4byte .LLST334 .byte 0x10 .8byte .LBB1539 .8byte .LBE1539-.LBB1539 .byte 0x11 .4byte 0x6045 .4byte .LLST335 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1540 .4byte .Ldebug_ranges0+0x8f0 .byte 0x1 .2byte 0x4ae .byte 0x2 .4byte 0x3a6f .byte 0xf .4byte 0x6077 .4byte .LLST336 .byte 0xf .4byte 0x606b .4byte .LLST337 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1544 .8byte .LBE1544-.LBB1544 .byte 0x1 .2byte 0x4b0 .byte 0xc .4byte 0x3ab1 .byte 0xf .4byte 0x6039 .4byte .LLST338 .byte 0x10 .8byte .LBB1545 .8byte .LBE1545-.LBB1545 .byte 0x11 .4byte 0x6045 .4byte .LLST339 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1546 .4byte .Ldebug_ranges0+0x920 .byte 0x1 .2byte 0x4b2 .byte 0x2 .4byte 0x3add .byte 0xf .4byte 0x6077 .4byte .LLST340 .byte 0xf .4byte 0x606b .4byte .LLST341 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1550 .8byte .LBE1550-.LBB1550 .byte 0x1 .2byte 0x4b3 .byte 0x2 .4byte 0x3b17 .byte 0xf .4byte 0x5f3c .4byte .LLST342 .byte 0xb .8byte .LVL527 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x35 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1552 .4byte .Ldebug_ranges0+0x950 .byte 0x1 .2byte 0x4be .byte 0x2 .4byte 0x3b43 .byte 0xf .4byte 0x6077 .4byte .LLST343 .byte 0xf .4byte 0x606b .4byte .LLST344 .byte 0 .byte 0x12 .4byte 0x5f2f .8byte .LBB1555 .4byte .Ldebug_ranges0+0x980 .byte 0x1 .2byte 0x4bf .byte 0x2 .4byte 0x3b79 .byte 0xf .4byte 0x5f3c .4byte .LLST345 .byte 0xb .8byte .LVL529 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0x13 .8byte .LVL499 .4byte 0x3ba4 .4byte 0x3b96 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x30 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x82 .byte 0 .byte 0 .byte 0x14 .8byte .LVL503 .4byte 0x5c12 .byte 0 .byte 0x8 .4byte .LASF85 .byte 0x1 .2byte 0x417 .byte 0xe .4byte 0x29 .8byte .LFB53 .8byte .LFE53-.LFB53 .byte 0x1 .byte 0x9c .4byte 0x3e7c .byte 0x25 .string "pll" .byte 0x1 .2byte 0x417 .byte 0x2f .4byte 0x29 .4byte .LLST264 .byte 0xd .4byte .LASF45 .byte 0x1 .2byte 0x417 .byte 0x43 .4byte 0xe2f .4byte .LLST265 .byte 0x9 .4byte .LASF72 .byte 0x1 .2byte 0x419 .byte 0xf .4byte 0x29 .4byte .LLST266 .byte 0x26 .4byte .LASF86 .byte 0x1 .2byte 0x41a .byte 0xf .4byte 0x29 .4byte 0x2001800 .byte 0x26 .4byte .LASF87 .byte 0x1 .2byte 0x41a .byte 0x1e .4byte 0x29 .4byte 0x2001010 .byte 0x1b .string "N" .byte 0x1 .2byte 0x41b .byte 0xf .4byte 0x29 .4byte .LLST267 .byte 0x27 .string "M1" .byte 0x1 .2byte 0x41b .byte 0x17 .4byte 0x29 .byte 0x1 .byte 0x27 .string "p0" .byte 0x1 .2byte 0x41b .byte 0x1e .4byte 0x29 .byte 0x1 .byte 0x27 .string "M0" .byte 0x1 .2byte 0x41b .byte 0x23 .4byte 0x29 .byte 0x1 .byte 0x16 .4byte .LASF88 .byte 0x1 .2byte 0x41c .byte 0xb .4byte 0x37 .byte 0 .byte 0x9 .4byte .LASF89 .byte 0x1 .2byte 0x41e .byte 0xf .4byte 0x29 .4byte .LLST268 .byte 0x12 .4byte 0x6028 .8byte .LBB1438 .4byte .Ldebug_ranges0+0x5e0 .byte 0x1 .2byte 0x42d .byte 0x9 .4byte 0x3ca3 .byte 0xf .4byte 0x6039 .4byte .LLST269 .byte 0x1c .4byte .Ldebug_ranges0+0x5e0 .byte 0x11 .4byte 0x6045 .4byte .LLST270 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1442 .4byte .Ldebug_ranges0+0x610 .byte 0x1 .2byte 0x432 .byte 0x2 .4byte 0x3ccf .byte 0xf .4byte 0x6077 .4byte .LLST271 .byte 0xf .4byte 0x606b .4byte .LLST272 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1446 .4byte .Ldebug_ranges0+0x640 .byte 0x1 .2byte 0x43a .byte 0x2 .4byte 0x3cfb .byte 0xf .4byte 0x6077 .4byte .LLST273 .byte 0xf .4byte 0x606b .4byte .LLST274 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1450 .4byte .Ldebug_ranges0+0x670 .byte 0x1 .2byte 0x43c .byte 0x2 .4byte 0x3d27 .byte 0xf .4byte 0x6077 .4byte .LLST275 .byte 0xf .4byte 0x606b .4byte .LLST276 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1454 .8byte .LBE1454-.LBB1454 .byte 0x1 .2byte 0x43e .byte 0xa .4byte 0x3d69 .byte 0xf .4byte 0x6039 .4byte .LLST277 .byte 0x10 .8byte .LBB1455 .8byte .LBE1455-.LBB1455 .byte 0x11 .4byte 0x6045 .4byte .LLST278 .byte 0 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1456 .8byte .LBE1456-.LBB1456 .byte 0x1 .2byte 0x43f .byte 0x2 .4byte 0x3da3 .byte 0xf .4byte 0x5f3c .4byte .LLST279 .byte 0xb .8byte .LVL464 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x44 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1458 .8byte .LBE1458-.LBB1458 .byte 0x1 .2byte 0x441 .byte 0x9 .4byte 0x3de5 .byte 0xf .4byte 0x6039 .4byte .LLST280 .byte 0x10 .8byte .LBB1459 .8byte .LBE1459-.LBB1459 .byte 0x11 .4byte 0x6045 .4byte .LLST281 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1460 .4byte .Ldebug_ranges0+0x6a0 .byte 0x1 .2byte 0x443 .byte 0x2 .4byte 0x3e11 .byte 0xf .4byte 0x6077 .4byte .LLST282 .byte 0xf .4byte 0x606b .4byte .LLST283 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1464 .8byte .LBE1464-.LBB1464 .byte 0x1 .2byte 0x446 .byte 0x9 .4byte 0x3e53 .byte 0xf .4byte 0x6039 .4byte .LLST284 .byte 0x10 .8byte .LBB1465 .8byte .LBE1465-.LBB1465 .byte 0x11 .4byte 0x6045 .4byte .LLST285 .byte 0 .byte 0 .byte 0x28 .4byte 0x605e .8byte .LBB1466 .4byte .Ldebug_ranges0+0x6d0 .byte 0x1 .2byte 0x44a .byte 0x2 .byte 0xf .4byte 0x6077 .4byte .LLST286 .byte 0xf .4byte 0x606b .4byte .LLST287 .byte 0 .byte 0 .byte 0x8 .4byte .LASF90 .byte 0x1 .2byte 0x383 .byte 0xe .4byte 0x29 .8byte .LFB52 .8byte .LFE52-.LFB52 .byte 0x1 .byte 0x9c .4byte 0x40f9 .byte 0xd .4byte .LASF45 .byte 0x1 .2byte 0x383 .byte 0x2e .4byte 0xe2f .4byte .LLST247 .byte 0xd .4byte .LASF91 .byte 0x1 .2byte 0x383 .byte 0x41 .4byte 0x29 .4byte .LLST248 .byte 0xd .4byte .LASF92 .byte 0x1 .2byte 0x383 .byte 0x58 .4byte 0x29 .4byte .LLST249 .byte 0x9 .4byte .LASF46 .byte 0x1 .2byte 0x385 .byte 0x10 .4byte 0x29 .4byte .LLST250 .byte 0x12 .4byte 0x6028 .8byte .LBB1408 .4byte .Ldebug_ranges0+0x520 .byte 0x1 .2byte 0x387 .byte 0xd .4byte 0x3f15 .byte 0xf .4byte 0x6039 .4byte .LLST251 .byte 0x1c .4byte .Ldebug_ranges0+0x520 .byte 0x11 .4byte 0x6045 .4byte .LLST252 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1412 .8byte .LBE1412-.LBB1412 .byte 0x1 .2byte 0x389 .byte 0x3 .4byte 0x3f53 .byte 0x1d .4byte 0x6039 .byte 0x10 .8byte .LBB1413 .8byte .LBE1413-.LBB1413 .byte 0x11 .4byte 0x6045 .4byte .LLST253 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1414 .4byte .Ldebug_ranges0+0x550 .byte 0x1 .2byte 0x389 .byte 0x3 .4byte 0x3f7b .byte 0x1d .4byte 0x6077 .byte 0xf .4byte 0x606b .4byte .LLST254 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1418 .8byte .LBE1418-.LBB1418 .byte 0x1 .2byte 0x391 .byte 0x4 .4byte 0x3fa7 .byte 0x1d .4byte 0x6077 .byte 0xf .4byte 0x606b .4byte .LLST255 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1420 .4byte .Ldebug_ranges0+0x580 .byte 0x1 .2byte 0x3a0 .byte 0x4 .4byte 0x3fd0 .byte 0x1d .4byte 0x6077 .byte 0x29 .4byte 0x606b .byte 0xb3,0xe6,0x98,0x90,0x7f .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1423 .8byte .LBE1423-.LBB1423 .byte 0x1 .2byte 0x3a3 .byte 0x2 .4byte 0x400a .byte 0xf .4byte 0x5f3c .4byte .LLST256 .byte 0xb .8byte .LVL438 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x44 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1425 .8byte .LBE1425-.LBB1425 .byte 0x1 .2byte 0x3a5 .byte 0xc .4byte 0x404c .byte 0xf .4byte 0x6039 .4byte .LLST257 .byte 0x10 .8byte .LBB1426 .8byte .LBE1426-.LBB1426 .byte 0x11 .4byte 0x6045 .4byte .LLST258 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1427 .4byte .Ldebug_ranges0+0x5b0 .byte 0x1 .2byte 0x3a7 .byte 0x2 .4byte 0x4078 .byte 0xf .4byte 0x6077 .4byte .LLST259 .byte 0xf .4byte 0x606b .4byte .LLST260 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1431 .8byte .LBE1431-.LBB1431 .byte 0x1 .2byte 0x394 .byte 0x4 .4byte 0x40a4 .byte 0x1d .4byte 0x6077 .byte 0xf .4byte 0x606b .4byte .LLST261 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1433 .8byte .LBE1433-.LBB1433 .byte 0x1 .2byte 0x397 .byte 0x4 .4byte 0x40d0 .byte 0x1d .4byte 0x6077 .byte 0xf .4byte 0x606b .4byte .LLST262 .byte 0 .byte 0x1e .4byte 0x605e .8byte .LBB1435 .8byte .LBE1435-.LBB1435 .byte 0x1 .2byte 0x39d .byte 0x4 .byte 0x1d .4byte 0x6077 .byte 0xf .4byte 0x606b .4byte .LLST263 .byte 0 .byte 0 .byte 0x8 .4byte .LASF93 .byte 0x1 .2byte 0x358 .byte 0xe .4byte 0x29 .8byte .LFB51 .8byte .LFE51-.LFB51 .byte 0x1 .byte 0x9c .4byte 0x43dc .byte 0xd .4byte .LASF45 .byte 0x1 .2byte 0x358 .byte 0x2a .4byte 0xe2f .4byte .LLST224 .byte 0xd .4byte .LASF89 .byte 0x1 .2byte 0x358 .byte 0x3d .4byte 0x29 .4byte .LLST225 .byte 0xd .4byte .LASF91 .byte 0x1 .2byte 0x358 .byte 0x52 .4byte 0x29 .4byte .LLST226 .byte 0xd .4byte .LASF92 .byte 0x1 .2byte 0x358 .byte 0x69 .4byte 0x29 .4byte .LLST227 .byte 0x9 .4byte .LASF88 .byte 0x1 .2byte 0x35a .byte 0xa .4byte 0x37 .4byte .LLST228 .byte 0x27 .string "p0" .byte 0x1 .2byte 0x35a .byte 0x15 .4byte 0x37 .byte 0x1 .byte 0x1b .string "N" .byte 0x1 .2byte 0x35a .byte 0x1a .4byte 0x37 .4byte .LLST229 .byte 0x27 .string "M0" .byte 0x1 .2byte 0x35a .byte 0x1f .4byte 0x37 .byte 0x1 .byte 0x27 .string "M1" .byte 0x1 .2byte 0x35a .byte 0x24 .4byte 0x37 .byte 0x1 .byte 0x1b .string "x" .byte 0x1 .2byte 0x35b .byte 0x8 .4byte 0x30 .4byte .LLST230 .byte 0x9 .4byte .LASF72 .byte 0x1 .2byte 0x35c .byte 0x10 .4byte 0x29 .4byte .LLST231 .byte 0x12 .4byte 0x6028 .8byte .LBB1380 .4byte .Ldebug_ranges0+0x460 .byte 0x1 .2byte 0x361 .byte 0xc .4byte 0x41f9 .byte 0xf .4byte 0x6039 .4byte .LLST232 .byte 0x1c .4byte .Ldebug_ranges0+0x460 .byte 0x11 .4byte 0x6045 .4byte .LLST233 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1384 .8byte .LBE1384-.LBB1384 .byte 0x1 .2byte 0x363 .byte 0x5 .4byte 0x423b .byte 0xf .4byte 0x6039 .4byte .LLST234 .byte 0x10 .8byte .LBB1385 .8byte .LBE1385-.LBB1385 .byte 0x11 .4byte 0x6045 .4byte .LLST235 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1386 .4byte .Ldebug_ranges0+0x490 .byte 0x1 .2byte 0x363 .byte 0x5 .4byte 0x4267 .byte 0xf .4byte 0x6077 .4byte .LLST236 .byte 0xf .4byte 0x606b .4byte .LLST237 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1390 .8byte .LBE1390-.LBB1390 .byte 0x1 .2byte 0x367 .byte 0x3 .4byte 0x4293 .byte 0x1d .4byte 0x6077 .byte 0xf .4byte 0x606b .4byte .LLST238 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1392 .8byte .LBE1392-.LBB1392 .byte 0x1 .2byte 0x369 .byte 0xa .4byte 0x42d1 .byte 0x1d .4byte 0x6039 .byte 0x10 .8byte .LBB1393 .8byte .LBE1393-.LBB1393 .byte 0x11 .4byte 0x6045 .4byte .LLST239 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1394 .4byte .Ldebug_ranges0+0x4c0 .byte 0x1 .2byte 0x36d .byte 0x3 .4byte 0x42f9 .byte 0x1d .4byte 0x6077 .byte 0xf .4byte 0x606b .4byte .LLST240 .byte 0 .byte 0xe .4byte 0x5f2f .8byte .LBB1398 .8byte .LBE1398-.LBB1398 .byte 0x1 .2byte 0x36f .byte 0x3 .4byte 0x4333 .byte 0xf .4byte 0x5f3c .4byte .LLST241 .byte 0xb .8byte .LVL412 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x44 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1400 .8byte .LBE1400-.LBB1400 .byte 0x1 .2byte 0x371 .byte 0xb .4byte 0x4375 .byte 0xf .4byte 0x6039 .4byte .LLST242 .byte 0x10 .8byte .LBB1401 .8byte .LBE1401-.LBB1401 .byte 0x11 .4byte 0x6045 .4byte .LLST243 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1402 .4byte .Ldebug_ranges0+0x4f0 .byte 0x1 .2byte 0x373 .byte 0x4 .4byte 0x43a1 .byte 0xf .4byte 0x6077 .4byte .LLST244 .byte 0xf .4byte 0x606b .4byte .LLST245 .byte 0 .byte 0x1e .4byte 0x6028 .8byte .LBB1406 .8byte .LBE1406-.LBB1406 .byte 0x1 .2byte 0x375 .byte 0xf .byte 0x1d .4byte 0x6039 .byte 0x10 .8byte .LBB1407 .8byte .LBE1407-.LBB1407 .byte 0x11 .4byte 0x6045 .4byte .LLST246 .byte 0 .byte 0 .byte 0 .byte 0x1f .4byte .LASF94 .byte 0x1 .2byte 0x19a .byte 0x6 .8byte .LFB50 .8byte .LFE50-.LFB50 .byte 0x1 .byte 0x9c .4byte 0x4eca .byte 0xd .4byte .LASF45 .byte 0x1 .2byte 0x19a .byte 0x2a .4byte 0xe2f .4byte .LLST148 .byte 0xa .4byte .LASF95 .byte 0x1 .2byte 0x19c .byte 0xf .4byte 0x29 .byte 0x1 .byte 0x58 .byte 0x9 .4byte .LASF44 .byte 0x1 .2byte 0x19d .byte 0xf .4byte 0x29 .4byte .LLST149 .byte 0x9 .4byte .LASF46 .byte 0x1 .2byte 0x19e .byte 0xf .4byte 0x29 .4byte .LLST150 .byte 0x9 .4byte .LASF96 .byte 0x1 .2byte 0x19f .byte 0xf .4byte 0x29 .4byte .LLST151 .byte 0x9 .4byte .LASF97 .byte 0x1 .2byte 0x1a0 .byte 0xf .4byte 0x29 .4byte .LLST152 .byte 0x9 .4byte .LASF98 .byte 0x1 .2byte 0x1a1 .byte 0xf .4byte 0x29 .4byte .LLST153 .byte 0x9 .4byte .LASF99 .byte 0x1 .2byte 0x1a2 .byte 0xf .4byte 0x29 .4byte .LLST154 .byte 0x1b .string "mr0" .byte 0x1 .2byte 0x1a3 .byte 0xf .4byte 0x29 .4byte .LLST155 .byte 0x1b .string "mr1" .byte 0x1 .2byte 0x1a4 .byte 0xf .4byte 0x29 .4byte .LLST156 .byte 0x1b .string "mr2" .byte 0x1 .2byte 0x1a5 .byte 0xf .4byte 0x29 .4byte .LLST157 .byte 0x1b .string "mr3" .byte 0x1 .2byte 0x1a6 .byte 0xf .4byte 0x29 .4byte .LLST158 .byte 0x9 .4byte .LASF100 .byte 0x1 .2byte 0x1a7 .byte 0xf .4byte 0x29 .4byte .LLST159 .byte 0x9 .4byte .LASF101 .byte 0x1 .2byte 0x1a8 .byte 0xf .4byte 0x29 .4byte .LLST160 .byte 0x1b .string "tcl" .byte 0x1 .2byte 0x1a9 .byte 0xf .4byte 0x29 .4byte .LLST161 .byte 0x9 .4byte .LASF102 .byte 0x1 .2byte 0x1aa .byte 0xf .4byte 0x29 .4byte .LLST162 .byte 0x9 .4byte .LASF103 .byte 0x1 .2byte 0x1ab .byte 0xf .4byte 0x29 .4byte .LLST163 .byte 0x9 .4byte .LASF104 .byte 0x1 .2byte 0x1ac .byte 0xf .4byte 0x29 .4byte .LLST164 .byte 0x9 .4byte .LASF105 .byte 0x1 .2byte 0x1ad .byte 0xf .4byte 0x29 .4byte .LLST165 .byte 0x9 .4byte .LASF106 .byte 0x1 .2byte 0x1ae .byte 0xf .4byte 0x29 .4byte .LLST166 .byte 0x9 .4byte .LASF107 .byte 0x1 .2byte 0x1af .byte 0xf .4byte 0x29 .4byte .LLST167 .byte 0x9 .4byte .LASF108 .byte 0x1 .2byte 0x1b0 .byte 0xf .4byte 0x29 .4byte .LLST168 .byte 0x9 .4byte .LASF109 .byte 0x1 .2byte 0x1b1 .byte 0xf .4byte 0x29 .4byte .LLST169 .byte 0x1b .string "trc" .byte 0x1 .2byte 0x1b2 .byte 0xf .4byte 0x29 .4byte .LLST170 .byte 0x9 .4byte .LASF110 .byte 0x1 .2byte 0x1b3 .byte 0xf .4byte 0x29 .4byte .LLST171 .byte 0x9 .4byte .LASF111 .byte 0x1 .2byte 0x1b4 .byte 0xf .4byte 0x29 .4byte .LLST172 .byte 0x1b .string "trp" .byte 0x1 .2byte 0x1b5 .byte 0xf .4byte 0x29 .4byte .LLST173 .byte 0x9 .4byte .LASF112 .byte 0x1 .2byte 0x1b6 .byte 0xf .4byte 0x29 .4byte .LLST174 .byte 0x1b .string "twr" .byte 0x1 .2byte 0x1b7 .byte 0xf .4byte 0x29 .4byte .LLST175 .byte 0x9 .4byte .LASF113 .byte 0x1 .2byte 0x1b8 .byte 0xf .4byte 0x29 .4byte .LLST176 .byte 0x1b .string "txp" .byte 0x1 .2byte 0x1b9 .byte 0xf .4byte 0x29 .4byte .LLST177 .byte 0x9 .4byte .LASF114 .byte 0x1 .2byte 0x1ba .byte 0xf .4byte 0x29 .4byte .LLST178 .byte 0x9 .4byte .LASF115 .byte 0x1 .2byte 0x1bb .byte 0xf .4byte 0x29 .4byte .LLST179 .byte 0x9 .4byte .LASF116 .byte 0x1 .2byte 0x1bc .byte 0xf .4byte 0x29 .4byte .LLST180 .byte 0x9 .4byte .LASF117 .byte 0x1 .2byte 0x1bd .byte 0xf .4byte 0x29 .4byte .LLST181 .byte 0x9 .4byte .LASF118 .byte 0x1 .2byte 0x1be .byte 0xf .4byte 0x29 .4byte .LLST182 .byte 0x9 .4byte .LASF119 .byte 0x1 .2byte 0x1bf .byte 0xf .4byte 0x29 .4byte .LLST183 .byte 0x9 .4byte .LASF120 .byte 0x1 .2byte 0x1c0 .byte 0xf .4byte 0x29 .4byte .LLST184 .byte 0x9 .4byte .LASF121 .byte 0x1 .2byte 0x1c1 .byte 0xf .4byte 0x29 .4byte .LLST185 .byte 0x9 .4byte .LASF122 .byte 0x1 .2byte 0x1c2 .byte 0xf .4byte 0x29 .4byte .LLST185 .byte 0x9 .4byte .LASF71 .byte 0x1 .2byte 0x1c4 .byte 0xf .4byte 0x29 .4byte .LLST187 .byte 0xe .4byte 0x605e .8byte .LBB1320 .8byte .LBE1320-.LBB1320 .byte 0x1 .2byte 0x315 .byte 0x3 .4byte 0x46e2 .byte 0xf .4byte 0x6077 .4byte .LLST188 .byte 0xf .4byte 0x606b .4byte .LLST189 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1322 .8byte .LBE1322-.LBB1322 .byte 0x1 .2byte 0x316 .byte 0x3 .4byte 0x4712 .byte 0xf .4byte 0x6077 .4byte .LLST190 .byte 0xf .4byte 0x606b .4byte .LLST191 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1324 .8byte .LBE1324-.LBB1324 .byte 0x1 .2byte 0x317 .byte 0x3 .4byte 0x4742 .byte 0xf .4byte 0x6077 .4byte .LLST192 .byte 0xf .4byte 0x606b .4byte .LLST193 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1326 .8byte .LBE1326-.LBB1326 .byte 0x1 .2byte 0x318 .byte 0x3 .4byte 0x4772 .byte 0xf .4byte 0x6077 .4byte .LLST194 .byte 0xf .4byte 0x606b .4byte .LLST195 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1328 .8byte .LBE1328-.LBB1328 .byte 0x1 .2byte 0x319 .byte 0x3 .4byte 0x47a2 .byte 0xf .4byte 0x6077 .4byte .LLST196 .byte 0xf .4byte 0x606b .4byte .LLST197 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1330 .4byte .Ldebug_ranges0+0x220 .byte 0x1 .2byte 0x326 .byte 0x2 .4byte 0x47ce .byte 0xf .4byte 0x6077 .4byte .LLST198 .byte 0xf .4byte 0x606b .4byte .LLST199 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1334 .4byte .Ldebug_ranges0+0x250 .byte 0x1 .2byte 0x329 .byte 0x2 .4byte 0x47fa .byte 0xf .4byte 0x6077 .4byte .LLST200 .byte 0xf .4byte 0x606b .4byte .LLST201 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1338 .4byte .Ldebug_ranges0+0x280 .byte 0x1 .2byte 0x32c .byte 0x2 .4byte 0x4826 .byte 0xf .4byte 0x6077 .4byte .LLST202 .byte 0xf .4byte 0x606b .4byte .LLST203 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1342 .4byte .Ldebug_ranges0+0x2b0 .byte 0x1 .2byte 0x32f .byte 0x2 .4byte 0x4852 .byte 0xf .4byte 0x6077 .4byte .LLST204 .byte 0xf .4byte 0x606b .4byte .LLST205 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1346 .4byte .Ldebug_ranges0+0x2e0 .byte 0x1 .2byte 0x332 .byte 0x2 .4byte 0x487e .byte 0xf .4byte 0x6077 .4byte .LLST206 .byte 0xf .4byte 0x606b .4byte .LLST207 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1350 .4byte .Ldebug_ranges0+0x310 .byte 0x1 .2byte 0x335 .byte 0x2 .4byte 0x48aa .byte 0xf .4byte 0x6077 .4byte .LLST208 .byte 0xf .4byte 0x606b .4byte .LLST209 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1354 .8byte .LBE1354-.LBB1354 .byte 0x1 .2byte 0x337 .byte 0xc .4byte 0x48ec .byte 0xf .4byte 0x6039 .4byte .LLST210 .byte 0x10 .8byte .LBB1355 .8byte .LBE1355-.LBB1355 .byte 0x11 .4byte 0x6045 .4byte .LLST211 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1356 .4byte .Ldebug_ranges0+0x340 .byte 0x1 .2byte 0x342 .byte 0x2 .4byte 0x4918 .byte 0xf .4byte 0x6077 .4byte .LLST212 .byte 0xf .4byte 0x606b .4byte .LLST213 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1360 .4byte .Ldebug_ranges0+0x370 .byte 0x1 .2byte 0x347 .byte 0x2 .4byte 0x4944 .byte 0xf .4byte 0x6077 .4byte .LLST214 .byte 0xf .4byte 0x606b .4byte .LLST215 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1364 .4byte .Ldebug_ranges0+0x3a0 .byte 0x1 .2byte 0x349 .byte 0x2 .4byte 0x4970 .byte 0xf .4byte 0x6077 .4byte .LLST216 .byte 0xf .4byte 0x606b .4byte .LLST217 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1368 .4byte .Ldebug_ranges0+0x3d0 .byte 0x1 .2byte 0x34a .byte 0x2 .4byte 0x499c .byte 0xf .4byte 0x6077 .4byte .LLST218 .byte 0xf .4byte 0x606b .4byte .LLST219 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1372 .4byte .Ldebug_ranges0+0x400 .byte 0x1 .2byte 0x34e .byte 0x2 .4byte 0x49c8 .byte 0xf .4byte 0x6077 .4byte .LLST220 .byte 0xf .4byte 0x606b .4byte .LLST221 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1376 .4byte .Ldebug_ranges0+0x430 .byte 0x1 .2byte 0x350 .byte 0x2 .4byte 0x49f4 .byte 0xf .4byte 0x6077 .4byte .LLST222 .byte 0xf .4byte 0x606b .4byte .LLST223 .byte 0 .byte 0x13 .8byte .LVL225 .4byte 0x4eca .4byte 0x4a13 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x3 .byte 0xa .2byte 0x15e .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL226 .4byte 0x4eca .4byte 0x4a32 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x3 .byte 0xa .2byte 0x1e78 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL227 .4byte 0x4eca .4byte 0x4a4f .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x38 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL228 .4byte 0x4eca .4byte 0x4a6c .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3f .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL229 .4byte 0x4eca .4byte 0x4a8a .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x32 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL231 .4byte 0x4eca .4byte 0x4aa7 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL234 .4byte 0x4eca .4byte 0x4ac5 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x35 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL236 .4byte 0x4eca .4byte 0x4ae3 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x26 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL240 .4byte 0x4eca .4byte 0x4afb .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x23 .byte 0 .byte 0x13 .8byte .LVL242 .4byte 0x4eca .4byte 0x4b18 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x36 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL245 .4byte 0x4eca .4byte 0x4b35 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3e .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL247 .4byte 0x4eca .4byte 0x4b53 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x30 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL249 .4byte 0x4eca .4byte 0x4b71 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x22 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL253 .4byte 0x4eca .4byte 0x4b8f .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x32 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL255 .4byte 0x4eca .4byte 0x4bac .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL257 .4byte 0x4eca .4byte 0x4bc9 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x44 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL259 .4byte 0x4eca .4byte 0x4be7 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x41 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL261 .4byte 0x4eca .4byte 0x4c04 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x38 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL263 .4byte 0x4eca .4byte 0x4c21 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3f .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL265 .4byte 0x4eca .4byte 0x4c3f .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x2d .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL267 .4byte 0x4eca .4byte 0x4c5e .byte 0xc .byte 0x1 .byte 0x5a .byte 0x3 .byte 0xa .2byte 0x1e78 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL270 .4byte 0x4eca .4byte 0x4c7d .byte 0xc .byte 0x1 .byte 0x5a .byte 0x3 .byte 0xa .2byte 0x148 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL274 .4byte 0x4eca .4byte 0x4c9b .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x32 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL277 .4byte 0x4eca .4byte 0x4cb8 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL280 .4byte 0x4eca .4byte 0x4cd5 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x48 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL283 .4byte 0x4eca .4byte 0x4cf3 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x46 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL285 .4byte 0x4eca .4byte 0x4d10 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x38 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL291 .4byte 0x4eca .4byte 0x4d2d .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3f .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL294 .4byte 0x4eca .4byte 0x4d4a .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x41 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL296 .4byte 0x4eca .4byte 0x4d68 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x2a .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL298 .4byte 0x4eca .4byte 0x4d87 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x3 .byte 0xa .2byte 0xf3c .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL301 .4byte 0x4eca .4byte 0x4da5 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0xd2 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL307 .4byte 0x4eca .4byte 0x4dc3 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x32 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL310 .4byte 0x4eca .4byte 0x4de0 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL313 .4byte 0x4eca .4byte 0x4dfd .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x48 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL316 .4byte 0x4eca .4byte 0x4e1b .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x46 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL318 .4byte 0x4eca .4byte 0x4e38 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x38 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL321 .4byte 0x4eca .4byte 0x4e55 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3f .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL324 .4byte 0x4eca .4byte 0x4e72 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x41 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL326 .4byte 0x4eca .4byte 0x4e90 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0x2a .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0x13 .8byte .LVL328 .4byte 0x4eca .4byte 0x4eaf .byte 0xc .byte 0x1 .byte 0x5a .byte 0x3 .byte 0xa .2byte 0xf3c .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0xb .8byte .LVL331 .4byte 0x4eca .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x8 .byte 0xd2 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0 .byte 0 .byte 0x8 .4byte .LASF123 .byte 0x1 .2byte 0x18e .byte 0xe .4byte 0x29 .8byte .LFB49 .8byte .LFE49-.LFB49 .byte 0x1 .byte 0x9c .4byte 0x4f21 .byte 0xd .4byte .LASF124 .byte 0x1 .2byte 0x18e .byte 0x2b .4byte 0x29 .4byte .LLST145 .byte 0x25 .string "clk" .byte 0x1 .2byte 0x18e .byte 0x40 .4byte 0x29 .4byte .LLST146 .byte 0x9 .4byte .LASF125 .byte 0x1 .2byte 0x190 .byte 0xf .4byte 0x29 .4byte .LLST147 .byte 0 .byte 0x1f .4byte .LASF126 .byte 0x1 .2byte 0x166 .byte 0x6 .8byte .LFB48 .8byte .LFE48-.LFB48 .byte 0x1 .byte 0x9c .4byte 0x52cf .byte 0x24 .4byte .LASF45 .byte 0x1 .2byte 0x166 .byte 0x2d .4byte 0xe2f .byte 0x1 .byte 0x5a .byte 0x9 .4byte .LASF46 .byte 0x1 .2byte 0x168 .byte 0xf .4byte 0x29 .4byte .LLST108 .byte 0xe .4byte 0x6028 .8byte .LBB1284 .8byte .LBE1284-.LBB1284 .byte 0x1 .2byte 0x16a .byte 0xc .4byte 0x4fa2 .byte 0xf .4byte 0x6039 .4byte .LLST109 .byte 0x10 .8byte .LBB1285 .8byte .LBE1285-.LBB1285 .byte 0x11 .4byte 0x6045 .4byte .LLST110 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1286 .8byte .LBE1286-.LBB1286 .byte 0x1 .2byte 0x16d .byte 0x2 .4byte 0x4fd2 .byte 0xf .4byte 0x6077 .4byte .LLST111 .byte 0xf .4byte 0x606b .4byte .LLST112 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1288 .8byte .LBE1288-.LBB1288 .byte 0x1 .2byte 0x16e .byte 0x2 .4byte 0x5002 .byte 0xf .4byte 0x6077 .4byte .LLST113 .byte 0xf .4byte 0x606b .4byte .LLST114 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1290 .8byte .LBE1290-.LBB1290 .byte 0x1 .2byte 0x171 .byte 0x2 .4byte 0x5032 .byte 0xf .4byte 0x6077 .4byte .LLST115 .byte 0xf .4byte 0x606b .4byte .LLST116 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1292 .8byte .LBE1292-.LBB1292 .byte 0x1 .2byte 0x172 .byte 0x2 .4byte 0x5062 .byte 0xf .4byte 0x6077 .4byte .LLST117 .byte 0xf .4byte 0x606b .4byte .LLST118 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1294 .8byte .LBE1294-.LBB1294 .byte 0x1 .2byte 0x174 .byte 0x2 .4byte 0x5092 .byte 0xf .4byte 0x6077 .4byte .LLST119 .byte 0xf .4byte 0x606b .4byte .LLST120 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1296 .8byte .LBE1296-.LBB1296 .byte 0x1 .2byte 0x175 .byte 0x2 .4byte 0x50c2 .byte 0xf .4byte 0x6077 .4byte .LLST121 .byte 0xf .4byte 0x606b .4byte .LLST122 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1298 .8byte .LBE1298-.LBB1298 .byte 0x1 .2byte 0x177 .byte 0x2 .4byte 0x50f2 .byte 0xf .4byte 0x6077 .4byte .LLST123 .byte 0xf .4byte 0x606b .4byte .LLST124 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1300 .8byte .LBE1300-.LBB1300 .byte 0x1 .2byte 0x178 .byte 0x2 .4byte 0x5122 .byte 0xf .4byte 0x6077 .4byte .LLST125 .byte 0xf .4byte 0x606b .4byte .LLST126 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1302 .8byte .LBE1302-.LBB1302 .byte 0x1 .2byte 0x17a .byte 0x2 .4byte 0x5152 .byte 0xf .4byte 0x6077 .4byte .LLST127 .byte 0xf .4byte 0x606b .4byte .LLST128 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1304 .8byte .LBE1304-.LBB1304 .byte 0x1 .2byte 0x17b .byte 0x2 .4byte 0x5182 .byte 0xf .4byte 0x6077 .4byte .LLST129 .byte 0xf .4byte 0x606b .4byte .LLST130 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1306 .8byte .LBE1306-.LBB1306 .byte 0x1 .2byte 0x17d .byte 0x2 .4byte 0x51b2 .byte 0xf .4byte 0x6077 .4byte .LLST131 .byte 0xf .4byte 0x606b .4byte .LLST132 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1308 .8byte .LBE1308-.LBB1308 .byte 0x1 .2byte 0x17e .byte 0x2 .4byte 0x51e2 .byte 0xf .4byte 0x6077 .4byte .LLST133 .byte 0xf .4byte 0x606b .4byte .LLST134 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1310 .8byte .LBE1310-.LBB1310 .byte 0x1 .2byte 0x180 .byte 0x2 .4byte 0x5212 .byte 0xf .4byte 0x6077 .4byte .LLST135 .byte 0xf .4byte 0x606b .4byte .LLST136 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1312 .8byte .LBE1312-.LBB1312 .byte 0x1 .2byte 0x181 .byte 0x2 .4byte 0x5242 .byte 0xf .4byte 0x6077 .4byte .LLST137 .byte 0xf .4byte 0x606b .4byte .LLST138 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1314 .8byte .LBE1314-.LBB1314 .byte 0x1 .2byte 0x183 .byte 0x2 .4byte 0x5272 .byte 0xf .4byte 0x6077 .4byte .LLST139 .byte 0xf .4byte 0x606b .4byte .LLST140 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1316 .8byte .LBE1316-.LBB1316 .byte 0x1 .2byte 0x184 .byte 0x2 .4byte 0x52a2 .byte 0xf .4byte 0x6077 .4byte .LLST141 .byte 0xf .4byte 0x606b .4byte .LLST142 .byte 0 .byte 0x1e .4byte 0x605e .8byte .LBB1318 .8byte .LBE1318-.LBB1318 .byte 0x1 .2byte 0x185 .byte 0x2 .byte 0xf .4byte 0x6077 .4byte .LLST143 .byte 0xf .4byte 0x606b .4byte .LLST144 .byte 0 .byte 0 .byte 0x1f .4byte .LASF127 .byte 0x1 .2byte 0x141 .byte 0x6 .8byte .LFB47 .8byte .LFE47-.LFB47 .byte 0x1 .byte 0x9c .4byte 0x54e2 .byte 0xd .4byte .LASF45 .byte 0x1 .2byte 0x141 .byte 0x2c .4byte 0xe2f .4byte .LLST91 .byte 0x9 .4byte .LASF46 .byte 0x1 .2byte 0x143 .byte 0xf .4byte 0x29 .4byte .LLST92 .byte 0x1b .string "i" .byte 0x1 .2byte 0x143 .byte 0x17 .4byte 0x29 .4byte .LLST93 .byte 0x1b .string "j" .byte 0x1 .2byte 0x143 .byte 0x19 .4byte 0x29 .4byte .LLST94 .byte 0x9 .4byte .LASF40 .byte 0x1 .2byte 0x143 .byte 0x1b .4byte 0x29 .4byte .LLST95 .byte 0xa .4byte .LASF128 .byte 0x1 .2byte 0x144 .byte 0xf .4byte 0x54e2 .byte 0x3 .byte 0x91 .byte 0x90,0x7d .byte 0xa .4byte .LASF129 .byte 0x1 .2byte 0x149 .byte 0xf .4byte 0x54e2 .byte 0x3 .byte 0x91 .byte 0xc0,0x7e .byte 0x12 .4byte 0x6028 .8byte .LBB1262 .4byte .Ldebug_ranges0+0x150 .byte 0x1 .2byte 0x14d .byte 0xc .4byte 0x5393 .byte 0xf .4byte 0x6039 .4byte .LLST96 .byte 0x1c .4byte .Ldebug_ranges0+0x150 .byte 0x11 .4byte 0x6045 .4byte .LLST97 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1266 .4byte .Ldebug_ranges0+0x180 .byte 0x1 .2byte 0x14f .byte 0x2 .4byte 0x53bf .byte 0xf .4byte 0x6077 .4byte .LLST98 .byte 0xf .4byte 0x606b .4byte .LLST99 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1272 .8byte .LBE1272-.LBB1272 .byte 0x1 .2byte 0x156 .byte 0xe .4byte 0x5401 .byte 0xf .4byte 0x6039 .4byte .LLST100 .byte 0x10 .8byte .LBB1273 .8byte .LBE1273-.LBB1273 .byte 0x11 .4byte 0x6045 .4byte .LLST101 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1274 .4byte .Ldebug_ranges0+0x1c0 .byte 0x1 .2byte 0x158 .byte 0x4 .4byte 0x542d .byte 0xf .4byte 0x6077 .4byte .LLST102 .byte 0xf .4byte 0x606b .4byte .LLST103 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1278 .8byte .LBE1278-.LBB1278 .byte 0x1 .2byte 0x15c .byte 0xc .4byte 0x546f .byte 0xf .4byte 0x6039 .4byte .LLST104 .byte 0x10 .8byte .LBB1279 .8byte .LBE1279-.LBB1279 .byte 0x11 .4byte 0x6045 .4byte .LLST105 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1280 .4byte .Ldebug_ranges0+0x1f0 .byte 0x1 .2byte 0x15e .byte 0x2 .4byte 0x549b .byte 0xf .4byte 0x6077 .4byte .LLST106 .byte 0xf .4byte 0x606b .4byte .LLST107 .byte 0 .byte 0x13 .8byte .LVL104 .4byte 0x625b .4byte 0x54bf .byte 0xc .byte 0x1 .byte 0x5a .byte 0x2 .byte 0x72 .byte 0 .byte 0xc .byte 0x1 .byte 0x5b .byte 0x2 .byte 0x78 .byte 0 .byte 0xc .byte 0x1 .byte 0x5c .byte 0x2 .byte 0x8 .byte 0xb0 .byte 0 .byte 0xb .8byte .LVL105 .4byte 0x625b .byte 0xc .byte 0x1 .byte 0x5a .byte 0x3 .byte 0x91 .byte 0xc0,0x7e .byte 0xc .byte 0x1 .byte 0x5b .byte 0x3 .byte 0x78 .byte 0xb0,0x1 .byte 0xc .byte 0x1 .byte 0x5c .byte 0x2 .byte 0x8 .byte 0xb0 .byte 0 .byte 0 .byte 0x22 .4byte 0x29 .4byte 0x54f8 .byte 0x23 .4byte 0x3e .byte 0x3 .byte 0x23 .4byte 0x3e .byte 0xa .byte 0 .byte 0x2a .4byte .LASF130 .byte 0x1 .byte 0xe6 .byte 0x6 .8byte .LFB46 .8byte .LFE46-.LFB46 .byte 0x1 .byte 0x9c .4byte 0x5c12 .byte 0x2b .4byte .LASF45 .byte 0x1 .byte 0xe6 .byte 0x2c .4byte 0xe2f .4byte .LLST27 .byte 0x2c .4byte .LASF46 .byte 0x1 .byte 0xe8 .byte 0xf .4byte 0x29 .4byte .LLST28 .byte 0x2d .string "i" .byte 0x1 .byte 0xe9 .byte 0xf .4byte 0x29 .4byte .LLST29 .byte 0x2e .4byte 0x6028 .8byte .LBB1192 .8byte .LBE1192-.LBB1192 .byte 0x1 .byte 0xed .byte 0xd .4byte 0x5585 .byte 0xf .4byte 0x6039 .4byte .LLST30 .byte 0x10 .8byte .LBB1193 .8byte .LBE1193-.LBB1193 .byte 0x11 .4byte 0x6045 .4byte .LLST31 .byte 0 .byte 0 .byte 0x2e .4byte 0x605e .8byte .LBB1194 .8byte .LBE1194-.LBB1194 .byte 0x1 .byte 0xef .byte 0x3 .4byte 0x55b4 .byte 0xf .4byte 0x6077 .4byte .LLST32 .byte 0xf .4byte 0x606b .4byte .LLST33 .byte 0 .byte 0x2e .4byte 0x6028 .8byte .LBB1196 .8byte .LBE1196-.LBB1196 .byte 0x1 .byte 0xf4 .byte 0xd .4byte 0x55f5 .byte 0xf .4byte 0x6039 .4byte .LLST34 .byte 0x10 .8byte .LBB1197 .8byte .LBE1197-.LBB1197 .byte 0x11 .4byte 0x6045 .4byte .LLST35 .byte 0 .byte 0 .byte 0x2e .4byte 0x605e .8byte .LBB1198 .8byte .LBE1198-.LBB1198 .byte 0x1 .byte 0xf6 .byte 0x3 .4byte 0x5624 .byte 0xf .4byte 0x6077 .4byte .LLST36 .byte 0xf .4byte 0x606b .4byte .LLST37 .byte 0 .byte 0x2e .4byte 0x6028 .8byte .LBB1200 .8byte .LBE1200-.LBB1200 .byte 0x1 .byte 0xfa .byte 0xc .4byte 0x5665 .byte 0xf .4byte 0x6039 .4byte .LLST38 .byte 0x10 .8byte .LBB1201 .8byte .LBE1201-.LBB1201 .byte 0x11 .4byte 0x6045 .4byte .LLST39 .byte 0 .byte 0 .byte 0x2f .4byte 0x605e .8byte .LBB1202 .4byte .Ldebug_ranges0+0x90 .byte 0x1 .byte 0xfc .byte 0x2 .4byte 0x5690 .byte 0xf .4byte 0x6077 .4byte .LLST40 .byte 0xf .4byte 0x606b .4byte .LLST41 .byte 0 .byte 0x2e .4byte 0x6028 .8byte .LBB1206 .8byte .LBE1206-.LBB1206 .byte 0x1 .byte 0xff .byte 0xc .4byte 0x56d1 .byte 0xf .4byte 0x6039 .4byte .LLST42 .byte 0x10 .8byte .LBB1207 .8byte .LBE1207-.LBB1207 .byte 0x11 .4byte 0x6045 .4byte .LLST43 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1208 .8byte .LBE1208-.LBB1208 .byte 0x1 .2byte 0x101 .byte 0x2 .4byte 0x5701 .byte 0xf .4byte 0x6077 .4byte .LLST44 .byte 0xf .4byte 0x606b .4byte .LLST45 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1210 .8byte .LBE1210-.LBB1210 .byte 0x1 .2byte 0x102 .byte 0xc .4byte 0x5743 .byte 0xf .4byte 0x6039 .4byte .LLST46 .byte 0x10 .8byte .LBB1211 .8byte .LBE1211-.LBB1211 .byte 0x11 .4byte 0x6045 .4byte .LLST47 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1212 .8byte .LBE1212-.LBB1212 .byte 0x1 .2byte 0x104 .byte 0x2 .4byte 0x5773 .byte 0xf .4byte 0x6077 .4byte .LLST48 .byte 0xf .4byte 0x606b .4byte .LLST49 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1214 .8byte .LBE1214-.LBB1214 .byte 0x1 .2byte 0x107 .byte 0xc .4byte 0x57b5 .byte 0xf .4byte 0x6039 .4byte .LLST50 .byte 0x10 .8byte .LBB1215 .8byte .LBE1215-.LBB1215 .byte 0x11 .4byte 0x6045 .4byte .LLST51 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1216 .8byte .LBE1216-.LBB1216 .byte 0x1 .2byte 0x109 .byte 0x2 .4byte 0x57e5 .byte 0xf .4byte 0x6077 .4byte .LLST52 .byte 0xf .4byte 0x606b .4byte .LLST53 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1218 .8byte .LBE1218-.LBB1218 .byte 0x1 .2byte 0x10a .byte 0xc .4byte 0x5827 .byte 0xf .4byte 0x6039 .4byte .LLST54 .byte 0x10 .8byte .LBB1219 .8byte .LBE1219-.LBB1219 .byte 0x11 .4byte 0x6045 .4byte .LLST55 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1220 .8byte .LBE1220-.LBB1220 .byte 0x1 .2byte 0x10c .byte 0x2 .4byte 0x5857 .byte 0xf .4byte 0x6077 .4byte .LLST56 .byte 0xf .4byte 0x606b .4byte .LLST57 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1222 .8byte .LBE1222-.LBB1222 .byte 0x1 .2byte 0x10f .byte 0xc .4byte 0x5899 .byte 0xf .4byte 0x6039 .4byte .LLST58 .byte 0x10 .8byte .LBB1223 .8byte .LBE1223-.LBB1223 .byte 0x11 .4byte 0x6045 .4byte .LLST59 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1224 .8byte .LBE1224-.LBB1224 .byte 0x1 .2byte 0x111 .byte 0x2 .4byte 0x58c9 .byte 0xf .4byte 0x6077 .4byte .LLST60 .byte 0xf .4byte 0x606b .4byte .LLST61 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1226 .8byte .LBE1226-.LBB1226 .byte 0x1 .2byte 0x114 .byte 0xc .4byte 0x590b .byte 0xf .4byte 0x6039 .4byte .LLST62 .byte 0x10 .8byte .LBB1227 .8byte .LBE1227-.LBB1227 .byte 0x11 .4byte 0x6045 .4byte .LLST63 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1228 .8byte .LBE1228-.LBB1228 .byte 0x1 .2byte 0x116 .byte 0x2 .4byte 0x593b .byte 0xf .4byte 0x6077 .4byte .LLST64 .byte 0xf .4byte 0x606b .4byte .LLST65 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1230 .8byte .LBE1230-.LBB1230 .byte 0x1 .2byte 0x119 .byte 0xc .4byte 0x597d .byte 0xf .4byte 0x6039 .4byte .LLST66 .byte 0x10 .8byte .LBB1231 .8byte .LBE1231-.LBB1231 .byte 0x11 .4byte 0x6045 .4byte .LLST67 .byte 0 .byte 0 .byte 0x12 .4byte 0x605e .8byte .LBB1232 .4byte .Ldebug_ranges0+0xc0 .byte 0x1 .2byte 0x11b .byte 0x2 .4byte 0x59a9 .byte 0xf .4byte 0x6077 .4byte .LLST68 .byte 0xf .4byte 0x606b .4byte .LLST69 .byte 0 .byte 0x12 .4byte 0x5f2f .8byte .LBB1236 .4byte .Ldebug_ranges0+0xf0 .byte 0x1 .2byte 0x11c .byte 0x2 .4byte 0x59df .byte 0xf .4byte 0x5f3c .4byte .LLST70 .byte 0xb .8byte .LVL76 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x31 .byte 0 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1240 .8byte .LBE1240-.LBB1240 .byte 0x1 .2byte 0x121 .byte 0xd .4byte 0x5a21 .byte 0xf .4byte 0x6039 .4byte .LLST71 .byte 0x10 .8byte .LBB1241 .8byte .LBE1241-.LBB1241 .byte 0x11 .4byte 0x6045 .4byte .LLST72 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1242 .8byte .LBE1242-.LBB1242 .byte 0x1 .2byte 0x123 .byte 0x3 .4byte 0x5a51 .byte 0xf .4byte 0x6077 .4byte .LLST73 .byte 0xf .4byte 0x606b .4byte .LLST74 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1244 .8byte .LBE1244-.LBB1244 .byte 0x1 .2byte 0x128 .byte 0xd .4byte 0x5a93 .byte 0xf .4byte 0x6039 .4byte .LLST75 .byte 0x10 .8byte .LBB1245 .8byte .LBE1245-.LBB1245 .byte 0x11 .4byte 0x6045 .4byte .LLST76 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1246 .8byte .LBE1246-.LBB1246 .byte 0x1 .2byte 0x12a .byte 0x3 .4byte 0x5ac3 .byte 0xf .4byte 0x6077 .4byte .LLST77 .byte 0xf .4byte 0x606b .4byte .LLST78 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1248 .8byte .LBE1248-.LBB1248 .byte 0x1 .2byte 0x12e .byte 0xc .4byte 0x5b05 .byte 0xf .4byte 0x6039 .4byte .LLST79 .byte 0x10 .8byte .LBB1249 .8byte .LBE1249-.LBB1249 .byte 0x11 .4byte 0x6045 .4byte .LLST80 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1250 .8byte .LBE1250-.LBB1250 .byte 0x1 .2byte 0x130 .byte 0x2 .4byte 0x5b35 .byte 0xf .4byte 0x6077 .4byte .LLST81 .byte 0xf .4byte 0x606b .4byte .LLST82 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1252 .8byte .LBE1252-.LBB1252 .byte 0x1 .2byte 0x131 .byte 0xc .4byte 0x5b77 .byte 0xf .4byte 0x6039 .4byte .LLST83 .byte 0x10 .8byte .LBB1253 .8byte .LBE1253-.LBB1253 .byte 0x11 .4byte 0x6045 .4byte .LLST84 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1254 .8byte .LBE1254-.LBB1254 .byte 0x1 .2byte 0x133 .byte 0x2 .4byte 0x5ba7 .byte 0xf .4byte 0x6077 .4byte .LLST85 .byte 0xf .4byte 0x606b .4byte .LLST86 .byte 0 .byte 0xe .4byte 0x6028 .8byte .LBB1256 .8byte .LBE1256-.LBB1256 .byte 0x1 .2byte 0x134 .byte 0xc .4byte 0x5be9 .byte 0xf .4byte 0x6039 .4byte .LLST87 .byte 0x10 .8byte .LBB1257 .8byte .LBE1257-.LBB1257 .byte 0x11 .4byte 0x6045 .4byte .LLST88 .byte 0 .byte 0 .byte 0x28 .4byte 0x605e .8byte .LBB1258 .4byte .Ldebug_ranges0+0x120 .byte 0x1 .2byte 0x136 .byte 0x2 .byte 0xf .4byte 0x6077 .4byte .LLST89 .byte 0xf .4byte 0x606b .4byte .LLST90 .byte 0 .byte 0 .byte 0x2a .4byte .LASF131 .byte 0x1 .byte 0x95 .byte 0x6 .8byte .LFB45 .8byte .LFE45-.LFB45 .byte 0x1 .byte 0x9c .4byte 0x5ce8 .byte 0x2e .4byte 0x605e .8byte .LBB1180 .8byte .LBE1180-.LBB1180 .byte 0x1 .byte 0x98 .byte 0x2 .4byte 0x5c5f .byte 0xf .4byte 0x6077 .4byte .LLST21 .byte 0xf .4byte 0x606b .4byte .LLST22 .byte 0 .byte 0x2e .4byte 0x605e .8byte .LBB1182 .8byte .LBE1182-.LBB1182 .byte 0x1 .byte 0x99 .byte 0x2 .4byte 0x5c8e .byte 0xf .4byte 0x6077 .4byte .LLST23 .byte 0xf .4byte 0x606b .4byte .LLST24 .byte 0 .byte 0x2f .4byte 0x605e .8byte .LBB1184 .4byte .Ldebug_ranges0+0x30 .byte 0x1 .byte 0x9a .byte 0x2 .4byte 0x5cb9 .byte 0xf .4byte 0x6077 .4byte .LLST25 .byte 0xf .4byte 0x606b .4byte .LLST26 .byte 0 .byte 0x30 .4byte 0x5f2f .8byte .LBB1187 .4byte .Ldebug_ranges0+0x60 .byte 0x1 .byte 0x9b .byte 0x2 .byte 0x31 .4byte 0x5f3c .byte 0xa .byte 0x17 .8byte .LVL30 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0 .byte 0x2a .4byte .LASF132 .byte 0x1 .byte 0x88 .byte 0x6 .8byte .LFB44 .8byte .LFE44-.LFB44 .byte 0x1 .byte 0x9c .4byte 0x5dc6 .byte 0x2e .4byte 0x605e .8byte .LBB1172 .8byte .LBE1172-.LBB1172 .byte 0x1 .byte 0x8b .byte 0x2 .4byte 0x5d35 .byte 0xf .4byte 0x6077 .4byte .LLST15 .byte 0xf .4byte 0x606b .4byte .LLST16 .byte 0 .byte 0x2e .4byte 0x605e .8byte .LBB1174 .8byte .LBE1174-.LBB1174 .byte 0x1 .byte 0x8c .byte 0x2 .4byte 0x5d64 .byte 0xf .4byte 0x6077 .4byte .LLST17 .byte 0xf .4byte 0x606b .4byte .LLST18 .byte 0 .byte 0x2e .4byte 0x605e .8byte .LBB1176 .8byte .LBE1176-.LBB1176 .byte 0x1 .byte 0x8d .byte 0x2 .4byte 0x5d93 .byte 0xf .4byte 0x6077 .4byte .LLST19 .byte 0xf .4byte 0x606b .4byte .LLST20 .byte 0 .byte 0x32 .4byte 0x5f2f .8byte .LBB1178 .8byte .LBE1178-.LBB1178 .byte 0x1 .byte 0x8e .byte 0x2 .byte 0x31 .4byte 0x5f3c .byte 0xa .byte 0x17 .8byte .LVL25 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x3a .byte 0 .byte 0 .byte 0 .byte 0x33 .4byte .LASF134 .byte 0x1 .byte 0x7d .byte 0x6 .byte 0x1 .4byte 0x5df8 .byte 0x34 .4byte .LASF45 .byte 0x1 .byte 0x7d .byte 0x1f .4byte 0x5df8 .byte 0x34 .4byte .LASF135 .byte 0x1 .byte 0x7d .byte 0x32 .4byte 0x29 .byte 0x34 .4byte .LASF125 .byte 0x1 .byte 0x7d .byte 0x45 .4byte 0x29 .byte 0 .byte 0x15 .byte 0x8 .4byte 0x29 .byte 0x2a .4byte .LASF136 .byte 0x1 .byte 0x5a .byte 0x6 .8byte .LFB42 .8byte .LFE42-.LFB42 .byte 0x1 .byte 0x9c .4byte 0x5f2f .byte 0x2b .4byte .LASF45 .byte 0x1 .byte 0x5a .byte 0x23 .4byte 0xe2f .4byte .LLST4 .byte 0x2c .4byte .LASF46 .byte 0x1 .byte 0x5c .byte 0xf .4byte 0x29 .4byte .LLST5 .byte 0x2c .4byte .LASF137 .byte 0x1 .byte 0x5d .byte 0xf .4byte 0x29 .4byte .LLST6 .byte 0x2e .4byte 0x6028 .8byte .LBB1162 .8byte .LBE1162-.LBB1162 .byte 0x1 .byte 0x6b .byte 0xc .4byte 0x5e8d .byte 0xf .4byte 0x6039 .4byte .LLST7 .byte 0x10 .8byte .LBB1163 .8byte .LBE1163-.LBB1163 .byte 0x11 .4byte 0x6045 .4byte .LLST8 .byte 0 .byte 0 .byte 0x2f .4byte 0x605e .8byte .LBB1164 .4byte .Ldebug_ranges0+0 .byte 0x1 .byte 0x6f .byte 0x2 .4byte 0x5eb8 .byte 0xf .4byte 0x6077 .4byte .LLST9 .byte 0xf .4byte 0x606b .4byte .LLST10 .byte 0 .byte 0x2e .4byte 0x5f2f .8byte .LBB1168 .8byte .LBE1168-.LBB1168 .byte 0x1 .byte 0x70 .byte 0x2 .4byte 0x5ef1 .byte 0xf .4byte 0x5f3c .4byte .LLST11 .byte 0xb .8byte .LVL17 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x1 .byte 0x31 .byte 0 .byte 0 .byte 0x32 .4byte 0x6028 .8byte .LBB1170 .8byte .LBE1170-.LBB1170 .byte 0x1 .byte 0x73 .byte 0xc .byte 0xf .4byte 0x6039 .4byte .LLST12 .byte 0x10 .8byte .LBB1171 .8byte .LBE1171-.LBB1171 .byte 0x11 .4byte 0x6045 .4byte .LLST13 .byte 0 .byte 0 .byte 0 .byte 0x33 .4byte .LASF138 .byte 0x1 .byte 0x39 .byte 0x6 .byte 0x1 .4byte 0x5f47 .byte 0x35 .string "n" .byte 0x1 .byte 0x39 .byte 0x20 .4byte 0x29 .byte 0 .byte 0x36 .4byte .LASF139 .byte 0x1 .byte 0x28 .byte 0x7 .4byte 0x5fb6 .8byte .LFB40 .8byte .LFE40-.LFB40 .byte 0x1 .byte 0x9c .4byte 0x5fb6 .byte 0x37 .string "dst" .byte 0x1 .byte 0x28 .byte 0x19 .4byte 0x5fb6 .byte 0x1 .byte 0x5a .byte 0x37 .string "src" .byte 0x1 .byte 0x28 .byte 0x29 .4byte 0x5fb8 .byte 0x1 .byte 0x5b .byte 0x38 .string "num" .byte 0x1 .byte 0x28 .byte 0x34 .4byte 0xad .4byte .LLST0 .byte 0x2c .4byte .LASF140 .byte 0x1 .byte 0x2c .byte 0x12 .4byte 0x5fbf .4byte .LLST1 .byte 0x2c .4byte .LASF141 .byte 0x1 .byte 0x2d .byte 0x12 .4byte 0x5fbf .4byte .LLST2 .byte 0 .byte 0x39 .byte 0x8 .byte 0x15 .byte 0x8 .4byte 0x5fbe .byte 0x3a .byte 0x15 .byte 0x8 .4byte 0x68 .byte 0x3b .4byte .LASF150 .byte 0x1 .byte 0x23 .byte 0x1c .4byte 0x37 .8byte .LFB39 .8byte .LFE39-.LFB39 .byte 0x1 .byte 0x9c .byte 0x3c .4byte .LASF151 .byte 0x1 .byte 0x20 .byte 0x1c .8byte .LFB38 .8byte .LFE38-.LFB38 .byte 0x1 .byte 0x9c .byte 0x2a .4byte .LASF142 .byte 0x1 .byte 0x1c .byte 0x1d .8byte .LFB37 .8byte .LFE37-.LFB37 .byte 0x1 .byte 0x9c .4byte 0x6028 .byte 0x37 .string "n" .byte 0x1 .byte 0x1c .byte 0x31 .4byte 0x37 .byte 0x1 .byte 0x5a .byte 0 .byte 0x3d .4byte .LASF152 .byte 0x2 .byte 0x88 .byte 0x13 .4byte 0x95 .byte 0x3 .4byte 0x6052 .byte 0x34 .4byte .LASF143 .byte 0x2 .byte 0x88 .byte 0x39 .4byte 0x6052 .byte 0x3e .string "val" .byte 0x2 .byte 0x8a .byte 0x6 .4byte 0x95 .byte 0 .byte 0x15 .byte 0x8 .4byte 0x6059 .byte 0x3f .byte 0x40 .4byte 0x6058 .byte 0x41 .4byte .LASF153 .byte 0x2 .byte 0x5e .byte 0x14 .byte 0x3 .4byte 0x6084 .byte 0x35 .string "val" .byte 0x2 .byte 0x5e .byte 0x22 .4byte 0x95 .byte 0x34 .4byte .LASF143 .byte 0x2 .byte 0x5e .byte 0x3e .4byte 0x6084 .byte 0 .byte 0x15 .byte 0x8 .4byte 0x6058 .byte 0x42 .4byte 0x5f2f .8byte .LFB41 .8byte .LFE41-.LFB41 .byte 0x1 .byte 0x9c .4byte 0x60ca .byte 0xf .4byte 0x5f3c .4byte .LLST3 .byte 0x17 .8byte .LVL6 .4byte 0x6243 .byte 0xc .byte 0x1 .byte 0x5a .byte 0x9 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0xc .4byte 0xffffffff .byte 0x1a .byte 0 .byte 0 .byte 0x42 .4byte 0x5dc6 .8byte .LFB43 .8byte .LFE43-.LFB43 .byte 0x1 .byte 0x9c .4byte 0x60fd .byte 0x21 .4byte 0x5dd3 .byte 0x1 .byte 0x5a .byte 0xf .4byte 0x5ddf .4byte .LLST14 .byte 0x21 .4byte 0x5deb .byte 0x1 .byte 0x5c .byte 0 .byte 0x42 .4byte 0xf0a .8byte .LFB64 .8byte .LFE64-.LFB64 .byte 0x1 .byte 0x9c .4byte 0x6243 .byte 0x21 .4byte 0xf18 .byte 0x1 .byte 0x5a .byte 0x11 .4byte 0xf25 .4byte .LLST580 .byte 0xe .4byte 0x6028 .8byte .LBB1884 .8byte .LBE1884-.LBB1884 .byte 0x1 .2byte 0x99a .byte 0xb .4byte 0x616a .byte 0xf .4byte 0x6039 .4byte .LLST581 .byte 0x10 .8byte .LBB1885 .8byte .LBE1885-.LBB1885 .byte 0x11 .4byte 0x6045 .4byte .LLST582 .byte 0 .byte 0 .byte 0xe .4byte 0x605e .8byte .LBB1886 .8byte .LBE1886-.LBB1886 .byte 0x1 .2byte 0x99d .byte 0x3 .4byte 0x619a .byte 0xf .4byte 0x6077 .4byte .LLST583 .byte 0xf .4byte 0x606b .4byte .LLST584 .byte 0 .byte 0x43 .4byte 0xf0a .8byte .LBB1888 .8byte .LBE1888-.LBB1888 .byte 0xf .4byte 0xf18 .4byte .LLST585 .byte 0x10 .8byte .LBB1889 .8byte .LBE1889-.LBB1889 .byte 0x11 .4byte 0xf25 .4byte .LLST586 .byte 0xe .4byte 0x6028 .8byte .LBB1890 .8byte .LBE1890-.LBB1890 .byte 0x1 .2byte 0x9a1 .byte 0xc .4byte 0x6214 .byte 0xf .4byte 0x6039 .4byte .LLST587 .byte 0x10 .8byte .LBB1891 .8byte .LBE1891-.LBB1891 .byte 0x11 .4byte 0x6045 .4byte .LLST588 .byte 0 .byte 0 .byte 0x1e .4byte 0x605e .8byte .LBB1892 .8byte .LBE1892-.LBB1892 .byte 0x1 .2byte 0x9a4 .byte 0x4 .byte 0xf .4byte 0x6077 .4byte .LLST589 .byte 0xf .4byte 0x606b .4byte .LLST590 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0x44 .4byte .LASF144 .4byte .LASF144 .byte 0x1 .byte 0x37 .byte 0xe .byte 0x44 .4byte .LASF145 .4byte .LASF145 .byte 0x5 .byte 0x4b .byte 0x5 .byte 0x45 .4byte .LASF154 .4byte .LASF155 .byte 0x6 .byte 0 .byte 0 .section .debug_abbrev,"",@progbits .Ldebug_abbrev0: .byte 0x1 .byte 0x11 .byte 0x1 .byte 0x25 .byte 0xe .byte 0x13 .byte 0xb .byte 0x3 .byte 0xe .byte 0x1b .byte 0xe .byte 0x55 .byte 0x17 .byte 0x11 .byte 0x1 .byte 0x10 .byte 0x17 .byte 0 .byte 0 .byte 0x2 .byte 0x24 .byte 0 .byte 0xb .byte 0xb .byte 0x3e .byte 0xb .byte 0x3 .byte 0xe .byte 0 .byte 0 .byte 0x3 .byte 0x24 .byte 0 .byte 0xb .byte 0xb .byte 0x3e .byte 0xb .byte 0x3 .byte 0x8 .byte 0 .byte 0 .byte 0x4 .byte 0x16 .byte 0 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0 .byte 0 .byte 0x5 .byte 0x16 .byte 0 .byte 0x3 .byte 0x8 .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0 .byte 0 .byte 0x6 .byte 0x13 .byte 0x1 .byte 0x3 .byte 0xe .byte 0xb .byte 0xb .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0x7 .byte 0xd .byte 0 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0x38 .byte 0xb .byte 0 .byte 0 .byte 0x8 .byte 0x2e .byte 0x1 .byte 0x3f .byte 0x19 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0x5 .byte 0x39 .byte 0xb .byte 0x27 .byte 0x19 .byte 0x49 .byte 0x13 .byte 0x11 .byte 0x1 .byte 0x12 .byte 0x7 .byte 0x40 .byte 0x18 .byte 0x97,0x42 .byte 0x19 .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0x9 .byte 0x34 .byte 0 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0x5 .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0x2 .byte 0x17 .byte 0 .byte 0 .byte 0xa .byte 0x34 .byte 0 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0x5 .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0x2 .byte 0x18 .byte 0 .byte 0 .byte 0xb .byte 0x89,0x82,0x1 .byte 0x1 .byte 0x11 .byte 0x1 .byte 0x31 .byte 0x13 .byte 0 .byte 0 .byte 0xc .byte 0x8a,0x82,0x1 .byte 0 .byte 0x2 .byte 0x18 .byte 0x91,0x42 .byte 0x18 .byte 0 .byte 0 .byte 0xd .byte 0x5 .byte 0 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0x5 .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0x2 .byte 0x17 .byte 0 .byte 0 .byte 0xe .byte 0x1d .byte 0x1 .byte 0x31 .byte 0x13 .byte 0x11 .byte 0x1 .byte 0x12 .byte 0x7 .byte 0x58 .byte 0xb .byte 0x59 .byte 0x5 .byte 0x57 .byte 0xb .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0xf .byte 0x5 .byte 0 .byte 0x31 .byte 0x13 .byte 0x2 .byte 0x17 .byte 0 .byte 0 .byte 0x10 .byte 0xb .byte 0x1 .byte 0x11 .byte 0x1 .byte 0x12 .byte 0x7 .byte 0 .byte 0 .byte 0x11 .byte 0x34 .byte 0 .byte 0x31 .byte 0x13 .byte 0x2 .byte 0x17 .byte 0 .byte 0 .byte 0x12 .byte 0x1d .byte 0x1 .byte 0x31 .byte 0x13 .byte 0x52 .byte 0x1 .byte 0x55 .byte 0x17 .byte 0x58 .byte 0xb .byte 0x59 .byte 0x5 .byte 0x57 .byte 0xb .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0x13 .byte 0x89,0x82,0x1 .byte 0x1 .byte 0x11 .byte 0x1 .byte 0x31 .byte 0x13 .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0x14 .byte 0x89,0x82,0x1 .byte 0 .byte 0x11 .byte 0x1 .byte 0x31 .byte 0x13 .byte 0 .byte 0 .byte 0x15 .byte 0xf .byte 0 .byte 0xb .byte 0xb .byte 0x49 .byte 0x13 .byte 0 .byte 0 .byte 0x16 .byte 0x34 .byte 0 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0x5 .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0x1c .byte 0xb .byte 0 .byte 0 .byte 0x17 .byte 0x89,0x82,0x1 .byte 0x1 .byte 0x11 .byte 0x1 .byte 0x95,0x42 .byte 0x19 .byte 0x31 .byte 0x13 .byte 0 .byte 0 .byte 0x18 .byte 0x2e .byte 0x1 .byte 0x3f .byte 0x19 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0x5 .byte 0x39 .byte 0xb .byte 0x27 .byte 0x19 .byte 0x20 .byte 0xb .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0x19 .byte 0x5 .byte 0 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0x5 .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0 .byte 0 .byte 0x1a .byte 0x34 .byte 0 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0x5 .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0 .byte 0 .byte 0x1b .byte 0x34 .byte 0 .byte 0x3 .byte 0x8 .byte 0x3a .byte 0xb .byte 0x3b .byte 0x5 .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0x2 .byte 0x17 .byte 0 .byte 0 .byte 0x1c .byte 0xb .byte 0x1 .byte 0x55 .byte 0x17 .byte 0 .byte 0 .byte 0x1d .byte 0x5 .byte 0 .byte 0x31 .byte 0x13 .byte 0 .byte 0 .byte 0x1e .byte 0x1d .byte 0x1 .byte 0x31 .byte 0x13 .byte 0x11 .byte 0x1 .byte 0x12 .byte 0x7 .byte 0x58 .byte 0xb .byte 0x59 .byte 0x5 .byte 0x57 .byte 0xb .byte 0 .byte 0 .byte 0x1f .byte 0x2e .byte 0x1 .byte 0x3f .byte 0x19 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0x5 .byte 0x39 .byte 0xb .byte 0x27 .byte 0x19 .byte 0x11 .byte 0x1 .byte 0x12 .byte 0x7 .byte 0x40 .byte 0x18 .byte 0x97,0x42 .byte 0x19 .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0x20 .byte 0x5 .byte 0 .byte 0x31 .byte 0x13 .byte 0x1c .byte 0x6 .byte 0 .byte 0 .byte 0x21 .byte 0x5 .byte 0 .byte 0x31 .byte 0x13 .byte 0x2 .byte 0x18 .byte 0 .byte 0 .byte 0x22 .byte 0x1 .byte 0x1 .byte 0x49 .byte 0x13 .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0x23 .byte 0x21 .byte 0 .byte 0x49 .byte 0x13 .byte 0x2f .byte 0xb .byte 0 .byte 0 .byte 0x24 .byte 0x5 .byte 0 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0x5 .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0x2 .byte 0x18 .byte 0 .byte 0 .byte 0x25 .byte 0x5 .byte 0 .byte 0x3 .byte 0x8 .byte 0x3a .byte 0xb .byte 0x3b .byte 0x5 .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0x2 .byte 0x17 .byte 0 .byte 0 .byte 0x26 .byte 0x34 .byte 0 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0x5 .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0x1c .byte 0x6 .byte 0 .byte 0 .byte 0x27 .byte 0x34 .byte 0 .byte 0x3 .byte 0x8 .byte 0x3a .byte 0xb .byte 0x3b .byte 0x5 .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0x1c .byte 0xb .byte 0 .byte 0 .byte 0x28 .byte 0x1d .byte 0x1 .byte 0x31 .byte 0x13 .byte 0x52 .byte 0x1 .byte 0x55 .byte 0x17 .byte 0x58 .byte 0xb .byte 0x59 .byte 0x5 .byte 0x57 .byte 0xb .byte 0 .byte 0 .byte 0x29 .byte 0x5 .byte 0 .byte 0x31 .byte 0x13 .byte 0x1c .byte 0xd .byte 0 .byte 0 .byte 0x2a .byte 0x2e .byte 0x1 .byte 0x3f .byte 0x19 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x27 .byte 0x19 .byte 0x11 .byte 0x1 .byte 0x12 .byte 0x7 .byte 0x40 .byte 0x18 .byte 0x97,0x42 .byte 0x19 .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0x2b .byte 0x5 .byte 0 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0x2 .byte 0x17 .byte 0 .byte 0 .byte 0x2c .byte 0x34 .byte 0 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0x2 .byte 0x17 .byte 0 .byte 0 .byte 0x2d .byte 0x34 .byte 0 .byte 0x3 .byte 0x8 .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0x2 .byte 0x17 .byte 0 .byte 0 .byte 0x2e .byte 0x1d .byte 0x1 .byte 0x31 .byte 0x13 .byte 0x11 .byte 0x1 .byte 0x12 .byte 0x7 .byte 0x58 .byte 0xb .byte 0x59 .byte 0xb .byte 0x57 .byte 0xb .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0x2f .byte 0x1d .byte 0x1 .byte 0x31 .byte 0x13 .byte 0x52 .byte 0x1 .byte 0x55 .byte 0x17 .byte 0x58 .byte 0xb .byte 0x59 .byte 0xb .byte 0x57 .byte 0xb .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0x30 .byte 0x1d .byte 0x1 .byte 0x31 .byte 0x13 .byte 0x52 .byte 0x1 .byte 0x55 .byte 0x17 .byte 0x58 .byte 0xb .byte 0x59 .byte 0xb .byte 0x57 .byte 0xb .byte 0 .byte 0 .byte 0x31 .byte 0x5 .byte 0 .byte 0x31 .byte 0x13 .byte 0x1c .byte 0xb .byte 0 .byte 0 .byte 0x32 .byte 0x1d .byte 0x1 .byte 0x31 .byte 0x13 .byte 0x11 .byte 0x1 .byte 0x12 .byte 0x7 .byte 0x58 .byte 0xb .byte 0x59 .byte 0xb .byte 0x57 .byte 0xb .byte 0 .byte 0 .byte 0x33 .byte 0x2e .byte 0x1 .byte 0x3f .byte 0x19 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x27 .byte 0x19 .byte 0x20 .byte 0xb .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0x34 .byte 0x5 .byte 0 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0 .byte 0 .byte 0x35 .byte 0x5 .byte 0 .byte 0x3 .byte 0x8 .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0 .byte 0 .byte 0x36 .byte 0x2e .byte 0x1 .byte 0x3f .byte 0x19 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x27 .byte 0x19 .byte 0x49 .byte 0x13 .byte 0x11 .byte 0x1 .byte 0x12 .byte 0x7 .byte 0x40 .byte 0x18 .byte 0x97,0x42 .byte 0x19 .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0x37 .byte 0x5 .byte 0 .byte 0x3 .byte 0x8 .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0x2 .byte 0x18 .byte 0 .byte 0 .byte 0x38 .byte 0x5 .byte 0 .byte 0x3 .byte 0x8 .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0x2 .byte 0x17 .byte 0 .byte 0 .byte 0x39 .byte 0xf .byte 0 .byte 0xb .byte 0xb .byte 0 .byte 0 .byte 0x3a .byte 0x26 .byte 0 .byte 0 .byte 0 .byte 0x3b .byte 0x2e .byte 0 .byte 0x3f .byte 0x19 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x27 .byte 0x19 .byte 0x49 .byte 0x13 .byte 0x11 .byte 0x1 .byte 0x12 .byte 0x7 .byte 0x40 .byte 0x18 .byte 0x97,0x42 .byte 0x19 .byte 0 .byte 0 .byte 0x3c .byte 0x2e .byte 0 .byte 0x3f .byte 0x19 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x27 .byte 0x19 .byte 0x11 .byte 0x1 .byte 0x12 .byte 0x7 .byte 0x40 .byte 0x18 .byte 0x97,0x42 .byte 0x19 .byte 0 .byte 0 .byte 0x3d .byte 0x2e .byte 0x1 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x27 .byte 0x19 .byte 0x49 .byte 0x13 .byte 0x20 .byte 0xb .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0x3e .byte 0x34 .byte 0 .byte 0x3 .byte 0x8 .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x49 .byte 0x13 .byte 0 .byte 0 .byte 0x3f .byte 0x35 .byte 0 .byte 0 .byte 0 .byte 0x40 .byte 0x26 .byte 0 .byte 0x49 .byte 0x13 .byte 0 .byte 0 .byte 0x41 .byte 0x2e .byte 0x1 .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0x27 .byte 0x19 .byte 0x20 .byte 0xb .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0x42 .byte 0x2e .byte 0x1 .byte 0x31 .byte 0x13 .byte 0x11 .byte 0x1 .byte 0x12 .byte 0x7 .byte 0x40 .byte 0x18 .byte 0x97,0x42 .byte 0x19 .byte 0x1 .byte 0x13 .byte 0 .byte 0 .byte 0x43 .byte 0xb .byte 0x1 .byte 0x31 .byte 0x13 .byte 0x11 .byte 0x1 .byte 0x12 .byte 0x7 .byte 0 .byte 0 .byte 0x44 .byte 0x2e .byte 0 .byte 0x3f .byte 0x19 .byte 0x3c .byte 0x19 .byte 0x6e .byte 0xe .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0x39 .byte 0xb .byte 0 .byte 0 .byte 0x45 .byte 0x2e .byte 0 .byte 0x3f .byte 0x19 .byte 0x3c .byte 0x19 .byte 0x6e .byte 0xe .byte 0x3 .byte 0xe .byte 0x3a .byte 0xb .byte 0x3b .byte 0xb .byte 0 .byte 0 .byte 0 .section .debug_loc,"",@progbits .Ldebug_loc0: .LLST753: .8byte .LVL1136 .8byte .LVL1137 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL1137 .8byte .LVL1138 .2byte 0x1 .byte 0x5a .8byte 0 .8byte 0 .LLST669: .8byte .LVL1017 .8byte .LVL1024 .2byte 0x1 .byte 0x5a .8byte .LVL1024 .8byte .LVL1052 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte .LVL1052 .8byte .LVL1053 .2byte 0x1 .byte 0x5a .8byte .LVL1053 .8byte .LFE66 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte 0 .8byte 0 .LLST670: .8byte .LVL1017 .8byte .LVL1025-1 .2byte 0x1 .byte 0x5b .8byte .LVL1025-1 .8byte .LVL1066 .2byte 0x1 .byte 0x58 .8byte .LVL1066 .8byte .LVL1067 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0x9f .8byte .LVL1067 .8byte .LFE66 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST671: .8byte .LVL1017 .8byte .LVL1047 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL1052 .8byte .LVL1064 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL1064 .8byte .LVL1065 .2byte 0x1 .byte 0x5a .8byte .LVL1071 .8byte .LVL1072 .2byte 0x1 .byte 0x5a .8byte .LVL1075 .8byte .LVL1076 .2byte 0x1 .byte 0x5a .8byte .LVL1112 .8byte .LVL1113-1 .2byte 0x1 .byte 0x5a .8byte .LVL1135 .8byte .LFE66 .2byte 0x1 .byte 0x5a .8byte 0 .8byte 0 .LLST672: .8byte .LVL1017 .8byte .LVL1021 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL1021 .8byte .LVL1022 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x9 .byte 0xfc .byte 0x1a .byte 0x9f .8byte .LVL1022 .8byte .LVL1023 .2byte 0x9 .byte 0x79 .byte 0xe0,0x2 .byte 0x94 .byte 0x4 .byte 0x9 .byte 0xfc .byte 0x1a .byte 0x9f .8byte .LVL1027 .8byte .LVL1028 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xb .2byte 0xfeff .byte 0x1a .byte 0x9f .8byte .LVL1028 .8byte .LVL1030 .2byte 0x1 .byte 0x5f .8byte .LVL1030 .8byte .LVL1031 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x32 .byte 0x21 .byte 0x9f .8byte .LVL1031 .8byte .LVL1032 .2byte 0x8 .byte 0x79 .byte 0xe0,0x2 .byte 0x94 .byte 0x4 .byte 0x32 .byte 0x21 .byte 0x9f .8byte .LVL1035 .8byte .LVL1036 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x31 .byte 0x21 .byte 0x9f .8byte .LVL1036 .8byte .LVL1037 .2byte 0x8 .byte 0x79 .byte 0xe0,0x2 .byte 0x94 .byte 0x4 .byte 0x31 .byte 0x21 .byte 0x9f .8byte .LVL1052 .8byte .LVL1061 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL1078 .8byte .LVL1079 .2byte 0x5 .byte 0xc .4byte 0x31030a0 .8byte .LVL1079 .8byte .LVL1081 .2byte 0x1 .byte 0x5f .8byte .LVL1081 .8byte .LVL1084 .2byte 0x3 .byte 0x7e .byte 0xa0,0x1 .8byte .LVL1084 .8byte .LVL1085 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x31 .byte 0x21 .byte 0x9f .8byte .LVL1085 .8byte .LVL1086 .2byte 0x7 .byte 0x7e .byte 0x4 .byte 0x94 .byte 0x4 .byte 0x31 .byte 0x21 .byte 0x9f .8byte .LVL1089 .8byte .LVL1090 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xa .2byte 0x5000 .byte 0x21 .byte 0x9f .8byte .LVL1093 .8byte .LVL1094 .2byte 0x8 .byte 0x7e .byte 0 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL1094 .8byte .LVL1095 .2byte 0xb .byte 0x7f .byte 0xc0,0x2 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL1098 .8byte .LVL1099 .2byte 0x7 .byte 0x7e .byte 0 .byte 0xa .2byte 0x300 .byte 0x21 .byte 0x9f .8byte .LVL1099 .8byte .LVL1100 .2byte 0xa .byte 0x7f .byte 0xb8,0x1 .byte 0x94 .byte 0x4 .byte 0xa .2byte 0x300 .byte 0x21 .byte 0x9f .8byte .LVL1102 .8byte .LVL1103 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xb .2byte 0xdfff .byte 0x1a .byte 0x9f .8byte .LVL1106 .8byte .LVL1107 .2byte 0x1 .byte 0x5f .8byte .LVL1107 .8byte .LVL1108 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x3c .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL1108 .8byte .LVL1109 .2byte 0x15 .byte 0x7d .byte 0xfc,0 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x11 .byte 0xff,0xff,0x43 .byte 0x1a .byte 0x40 .byte 0x3c .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL1118 .8byte .LVL1119 .2byte 0x8 .byte 0x7e .byte 0 .byte 0x11 .byte 0x80,0x80,0x7c .byte 0x1a .byte 0x9f .8byte .LVL1119 .8byte .LVL1120 .2byte 0xb .byte 0x7f .byte 0xa0,0x1 .byte 0x94 .byte 0x4 .byte 0x11 .byte 0x80,0x80,0x7c .byte 0x1a .byte 0x9f .8byte .LVL1122 .8byte .LVL1123 .2byte 0x6 .byte 0x7e .byte 0 .byte 0x9 .byte 0xfe .byte 0x1a .byte 0x9f .8byte .LVL1123 .8byte .LVL1124 .2byte 0x8 .byte 0x7f .byte 0x4 .byte 0x94 .byte 0x4 .byte 0x9 .byte 0xfe .byte 0x1a .byte 0x9f .8byte .LVL1126 .8byte .LVL1127 .2byte 0xd .byte 0xc .4byte 0x3103100 .byte 0x94 .byte 0x4 .byte 0x11 .byte 0xff,0x9f,0x7c .byte 0x1a .byte 0x9f .8byte .LVL1129 .8byte .LVL1130 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xa .2byte 0x2000 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST673: .8byte .LVL1017 .8byte .LVL1065 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL1067 .8byte .LVL1076 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL1076 .8byte .LVL1112 .2byte 0x1 .byte 0x59 .8byte .LVL1112 .8byte .LVL1114 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL1114 .8byte .LFE66 .2byte 0x1 .byte 0x59 .8byte 0 .8byte 0 .LLST674: .8byte .LVL1043 .8byte .LVL1044 .2byte 0x1 .byte 0x5a .8byte 0 .8byte 0 .LLST675: .8byte .LVL1018 .8byte .LVL1019 .2byte 0x6 .byte 0xc .4byte 0x7010254 .byte 0x9f .8byte 0 .8byte 0 .LLST676: .8byte .LVL1018 .8byte .LVL1019 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte 0 .8byte 0 .LLST677: .8byte .LVL1019 .8byte .LVL1021 .2byte 0x6 .byte 0xc .4byte 0x3000160 .byte 0x9f .8byte 0 .8byte 0 .LLST678: .8byte .LVL1020 .8byte .LVL1021 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST679: .8byte .LVL1021 .8byte .LVL1023 .2byte 0x6 .byte 0xc .4byte 0x3000160 .byte 0x9f .8byte 0 .8byte 0 .LLST680: .8byte .LVL1021 .8byte .LVL1022 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x9 .byte 0xfc .byte 0x1a .byte 0x9f .8byte .LVL1022 .8byte .LVL1023 .2byte 0x9 .byte 0x79 .byte 0xe0,0x2 .byte 0x94 .byte 0x4 .byte 0x9 .byte 0xfc .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST681: .8byte .LVL1023 .8byte .LVL1025 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte 0 .8byte 0 .LLST682: .8byte .LVL1025 .8byte .LVL1027 .2byte 0x6 .byte 0xc .4byte 0x3000160 .byte 0x9f .8byte 0 .8byte 0 .LLST683: .8byte .LVL1026 .8byte .LVL1027 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST684: .8byte .LVL1028 .8byte .LVL1029 .2byte 0x6 .byte 0xc .4byte 0x3000160 .byte 0x9f .8byte 0 .8byte 0 .LLST685: .8byte .LVL1028 .8byte .LVL1029 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST686: .8byte .LVL1029 .8byte .LVL1030 .2byte 0x6 .byte 0xc .4byte 0x3000160 .byte 0x9f .8byte 0 .8byte 0 .LLST687: .8byte .LVL1029 .8byte .LVL1030 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST688: .8byte .LVL1030 .8byte .LVL1032 .2byte 0x6 .byte 0xc .4byte 0x3000160 .byte 0x9f .8byte 0 .8byte 0 .LLST689: .8byte .LVL1030 .8byte .LVL1031 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x32 .byte 0x21 .byte 0x9f .8byte .LVL1031 .8byte .LVL1032 .2byte 0x8 .byte 0x79 .byte 0xe0,0x2 .byte 0x94 .byte 0x4 .byte 0x32 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST690: .8byte .LVL1032 .8byte .LVL1033 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte 0 .8byte 0 .LLST691: .8byte .LVL1033 .8byte .LVL1035 .2byte 0x6 .byte 0xc .4byte 0x3000160 .byte 0x9f .8byte 0 .8byte 0 .LLST692: .8byte .LVL1034 .8byte .LVL1035 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST693: .8byte .LVL1035 .8byte .LVL1037 .2byte 0x6 .byte 0xc .4byte 0x3000160 .byte 0x9f .8byte 0 .8byte 0 .LLST694: .8byte .LVL1035 .8byte .LVL1036 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x31 .byte 0x21 .byte 0x9f .8byte .LVL1036 .8byte .LVL1037 .2byte 0x8 .byte 0x79 .byte 0xe0,0x2 .byte 0x94 .byte 0x4 .byte 0x31 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST695: .8byte .LVL1037 .8byte .LVL1038 .2byte 0x2 .byte 0x44 .byte 0x9f .8byte 0 .8byte 0 .LLST696: .8byte .LVL1038 .8byte .LVL1040 .2byte 0x6 .byte 0xc .4byte 0x300016c .byte 0x9f .8byte 0 .8byte 0 .LLST697: .8byte .LVL1039 .8byte .LVL1040 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST698: .8byte .LVL1054 .8byte .LVL1056 .2byte 0x6 .byte 0xc .4byte 0x3000160 .byte 0x9f .8byte 0 .8byte 0 .LLST699: .8byte .LVL1055 .8byte .LVL1056 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST700: .8byte .LVL1056 .8byte .LVL1058 .2byte 0x6 .byte 0xc .4byte 0x3000160 .byte 0x9f .8byte 0 .8byte 0 .LLST701: .8byte .LVL1056 .8byte .LVL1057 .2byte 0x7 .byte 0x7e .byte 0 .byte 0xa .2byte 0x100 .byte 0x21 .byte 0x9f .8byte .LVL1057 .8byte .LVL1058 .2byte 0xa .byte 0x7f .byte 0xe0,0x2 .byte 0x94 .byte 0x4 .byte 0xa .2byte 0x100 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST702: .8byte .LVL1058 .8byte .LVL1059 .2byte 0x6 .byte 0xc .4byte 0x3000168 .byte 0x9f .8byte 0 .8byte 0 .LLST703: .8byte .LVL1058 .8byte .LVL1059 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte 0 .8byte 0 .LLST704: .8byte .LVL1059 .8byte .LVL1061 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte 0 .8byte 0 .LLST705: .8byte .LVL1077 .8byte .LVL1078 .2byte 0x6 .byte 0xc .4byte 0x31030a0 .byte 0x9f .8byte 0 .8byte 0 .LLST706: .8byte .LVL1077 .8byte .LVL1078 .2byte 0x5 .byte 0xc .4byte 0x31030a0 .8byte 0 .8byte 0 .LLST707: .8byte .LVL1079 .8byte .LVL1080 .2byte 0x6 .byte 0xc .4byte 0x31030a0 .byte 0x9f .8byte 0 .8byte 0 .LLST708: .8byte .LVL1079 .8byte .LVL1080 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST709: .8byte .LVL1080 .8byte .LVL1082 .2byte 0x6 .byte 0xc .4byte 0x310309c .byte 0x9f .8byte 0 .8byte 0 .LLST710: .8byte .LVL1080 .8byte .LVL1082 .2byte 0x4 .byte 0xa .2byte 0x40a .byte 0x9f .8byte 0 .8byte 0 .LLST711: .8byte .LVL1082 .8byte .LVL1084 .2byte 0x6 .byte 0xc .4byte 0x3103004 .byte 0x9f .8byte 0 .8byte 0 .LLST712: .8byte .LVL1083 .8byte .LVL1084 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST713: .8byte .LVL1084 .8byte .LVL1086 .2byte 0x6 .byte 0xc .4byte 0x3103004 .byte 0x9f .8byte 0 .8byte 0 .LLST714: .8byte .LVL1084 .8byte .LVL1085 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x31 .byte 0x21 .byte 0x9f .8byte .LVL1085 .8byte .LVL1086 .2byte 0x7 .byte 0x7e .byte 0x4 .byte 0x94 .byte 0x4 .byte 0x31 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST715: .8byte .LVL1088 .8byte .LVL1089 .2byte 0x6 .byte 0xc .4byte 0x3103100 .byte 0x9f .8byte 0 .8byte 0 .LLST716: .8byte .LVL1088 .8byte .LVL1089 .2byte 0x5 .byte 0xc .4byte 0x3103100 .8byte 0 .8byte 0 .LLST717: .8byte .LVL1089 .8byte .LVL1091 .2byte 0x6 .byte 0xc .4byte 0x3103100 .byte 0x9f .8byte 0 .8byte 0 .LLST718: .8byte .LVL1089 .8byte .LVL1090 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xa .2byte 0x5000 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST719: .8byte .LVL1091 .8byte .LVL1093 .2byte 0x6 .byte 0xc .4byte 0x3103140 .byte 0x9f .8byte 0 .8byte 0 .LLST720: .8byte .LVL1092 .8byte .LVL1093 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST721: .8byte .LVL1093 .8byte .LVL1095 .2byte 0x6 .byte 0xc .4byte 0x3103140 .byte 0x9f .8byte 0 .8byte 0 .LLST722: .8byte .LVL1093 .8byte .LVL1094 .2byte 0x8 .byte 0x7e .byte 0 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL1094 .8byte .LVL1095 .2byte 0xb .byte 0x7f .byte 0xc0,0x2 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST723: .8byte .LVL1096 .8byte .LVL1098 .2byte 0x6 .byte 0xc .4byte 0x31030b8 .byte 0x9f .8byte 0 .8byte 0 .LLST724: .8byte .LVL1097 .8byte .LVL1098 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST725: .8byte .LVL1098 .8byte .LVL1100 .2byte 0x6 .byte 0xc .4byte 0x31030b8 .byte 0x9f .8byte 0 .8byte 0 .LLST726: .8byte .LVL1098 .8byte .LVL1099 .2byte 0x7 .byte 0x7e .byte 0 .byte 0xa .2byte 0x300 .byte 0x21 .byte 0x9f .8byte .LVL1099 .8byte .LVL1100 .2byte 0xa .byte 0x7f .byte 0xb8,0x1 .byte 0x94 .byte 0x4 .byte 0xa .2byte 0x300 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST727: .8byte .LVL1101 .8byte .LVL1102 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST728: .8byte .LVL1101 .8byte .LVL1102 .2byte 0x5 .byte 0xc .4byte 0x3103108 .8byte 0 .8byte 0 .LLST729: .8byte .LVL1102 .8byte .LVL1103 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST730: .8byte .LVL1102 .8byte .LVL1103 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xb .2byte 0xdfff .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST731: .8byte .LVL1129 .8byte .LVL1131 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST732: .8byte .LVL1129 .8byte .LVL1130 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xa .2byte 0x2000 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST733: .8byte .LVL1104 .8byte .LVL1106 .2byte 0x6 .byte 0xc .4byte 0x310307c .byte 0x9f .8byte 0 .8byte 0 .LLST734: .8byte .LVL1105 .8byte .LVL1106 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST735: .8byte .LVL1107 .8byte .LVL1109 .2byte 0x6 .byte 0xc .4byte 0x310307c .byte 0x9f .8byte 0 .8byte 0 .LLST736: .8byte .LVL1107 .8byte .LVL1108 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x3c .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL1108 .8byte .LVL1109 .2byte 0x15 .byte 0x7d .byte 0xfc,0 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x11 .byte 0xff,0xff,0x43 .byte 0x1a .byte 0x40 .byte 0x3c .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST737: .8byte .LVL1116 .8byte .LVL1118 .2byte 0x6 .byte 0xc .4byte 0x31030a0 .byte 0x9f .8byte 0 .8byte 0 .LLST738: .8byte .LVL1117 .8byte .LVL1118 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST739: .8byte .LVL1118 .8byte .LVL1120 .2byte 0x6 .byte 0xc .4byte 0x31030a0 .byte 0x9f .8byte 0 .8byte 0 .LLST740: .8byte .LVL1118 .8byte .LVL1119 .2byte 0x8 .byte 0x7e .byte 0 .byte 0x11 .byte 0x80,0x80,0x7c .byte 0x1a .byte 0x9f .8byte .LVL1119 .8byte .LVL1120 .2byte 0xb .byte 0x7f .byte 0xa0,0x1 .byte 0x94 .byte 0x4 .byte 0x11 .byte 0x80,0x80,0x7c .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST741: .8byte .LVL1120 .8byte .LVL1122 .2byte 0x6 .byte 0xc .4byte 0x3103004 .byte 0x9f .8byte 0 .8byte 0 .LLST742: .8byte .LVL1121 .8byte .LVL1122 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST743: .8byte .LVL1122 .8byte .LVL1125 .2byte 0x6 .byte 0xc .4byte 0x3103004 .byte 0x9f .8byte 0 .8byte 0 .LLST744: .8byte .LVL1122 .8byte .LVL1123 .2byte 0x6 .byte 0x7e .byte 0 .byte 0x9 .byte 0xfe .byte 0x1a .byte 0x9f .8byte .LVL1123 .8byte .LVL1124 .2byte 0x8 .byte 0x7f .byte 0x4 .byte 0x94 .byte 0x4 .byte 0x9 .byte 0xfe .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST745: .8byte .LVL1125 .8byte .LVL1126 .2byte 0x6 .byte 0xc .4byte 0x3103100 .byte 0x9f .8byte 0 .8byte 0 .LLST746: .8byte .LVL1125 .8byte .LVL1126 .2byte 0x5 .byte 0xc .4byte 0x3103100 .8byte 0 .8byte 0 .LLST747: .8byte .LVL1126 .8byte .LVL1128 .2byte 0x6 .byte 0xc .4byte 0x3103100 .byte 0x9f .8byte 0 .8byte 0 .LLST748: .8byte .LVL1126 .8byte .LVL1127 .2byte 0xd .byte 0xc .4byte 0x3103100 .byte 0x94 .byte 0x4 .byte 0x11 .byte 0xff,0x9f,0x7c .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST749: .8byte .LVL1128 .8byte .LVL1129 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST750: .8byte .LVL1128 .8byte .LVL1129 .2byte 0x5 .byte 0xc .4byte 0x3103108 .8byte 0 .8byte 0 .LLST751: .8byte .LVL1131 .8byte .LVL1133 .2byte 0x6 .byte 0xc .4byte 0x70005d4 .byte 0x9f .8byte 0 .8byte 0 .LLST752: .8byte .LVL1132 .8byte .LVL1133 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST591: .8byte .LVL884 .8byte .LVL885-1 .2byte 0x1 .byte 0x5a .8byte .LVL885-1 .8byte .LVL890 .2byte 0x1 .byte 0x58 .8byte .LVL890 .8byte .LVL891-1 .2byte 0x1 .byte 0x5b .8byte .LVL891-1 .8byte .LFE65 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte 0 .8byte 0 .LLST568: .8byte .LVL841 .8byte .LVL842 .2byte 0x1 .byte 0x5a .8byte .LVL842 .8byte .LFE63 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte 0 .8byte 0 .LLST569: .8byte .LVL841 .8byte .LVL844 .2byte 0x1 .byte 0x5b .8byte .LVL844 .8byte .LFE63 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0x9f .8byte 0 .8byte 0 .LLST570: .8byte .LVL843 .8byte .LVL844 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL844 .8byte .LVL845 .2byte 0x1 .byte 0x5f .8byte .LVL846 .8byte .LVL848 .2byte 0x1 .byte 0x58 .8byte .LVL848 .8byte .LVL852 .2byte 0x1 .byte 0x5f .8byte .LVL853 .8byte .LVL862 .2byte 0x1 .byte 0x58 .8byte .LVL863 .8byte .LVL868 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST571: .8byte .LVL843 .8byte .LVL847-1 .2byte 0x1 .byte 0x5e .8byte .LVL847-1 .8byte .LVL848 .2byte 0x1 .byte 0x59 .8byte .LVL848 .8byte .LVL858-1 .2byte 0x1 .byte 0x5e .8byte .LVL858-1 .8byte .LVL859 .2byte 0x1 .byte 0x59 .8byte .LVL859 .8byte .LVL863 .2byte 0x8 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x31 .byte 0x25 .byte 0x44 .byte 0x24 .byte 0x9f .8byte .LVL863 .8byte .LVL866-1 .2byte 0x1 .byte 0x5e .8byte .LVL866-1 .8byte .LFE63 .2byte 0x1 .byte 0x59 .8byte 0 .8byte 0 .LLST572: .8byte .LVL857 .8byte .LVL858-1 .2byte 0x1 .byte 0x5b .8byte .LVL858-1 .8byte .LVL860 .2byte 0x2 .byte 0x91 .byte 0x58 .8byte .LVL863 .8byte .LVL864 .2byte 0x1 .byte 0x5b .8byte .LVL864 .8byte .LVL865 .2byte 0xe .byte 0x82 .byte 0 .byte 0xc .4byte 0xffffffff .byte 0x1a .byte 0x76 .byte 0 .byte 0x22 .byte 0x7e .byte 0 .byte 0x22 .8byte .LVL865 .8byte .LVL866-1 .2byte 0x1 .byte 0x5b .8byte .LVL866-1 .8byte .LVL867 .2byte 0x2 .byte 0x91 .byte 0x58 .8byte .LVL867 .8byte .LFE63 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST573: .8byte .LVL854 .8byte .LVL855 .2byte 0x10 .byte 0x7e .byte 0 .byte 0xc .4byte 0xffffffff .byte 0x1a .byte 0x7c .byte 0 .byte 0x22 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x22 .byte 0x9f .8byte .LVL855 .8byte .LVL857 .2byte 0x16 .byte 0x7e .byte 0 .byte 0xc .4byte 0xffffffff .byte 0x1a .byte 0x82 .byte 0 .byte 0xc .4byte 0xffffffff .byte 0x1a .byte 0x22 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x22 .byte 0x9f .8byte 0 .8byte 0 .LLST574: .8byte .LVL856 .8byte .LVL857 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST575: .8byte .LVL848 .8byte .LVL849 .2byte 0x9 .byte 0x7d .byte 0 .byte 0xc .4byte 0xffffffff .byte 0x1a .byte 0x9f .8byte .LVL849 .8byte .LVL850 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST576: .8byte .LVL848 .8byte .LVL850 .2byte 0x6 .byte 0x7f .byte 0xe7,0x8a,0x8d,0x9 .byte 0x9f .8byte 0 .8byte 0 .LLST577: .8byte .LVL850 .8byte .LVL851 .2byte 0xc .byte 0x7e .byte 0 .byte 0x7d .byte 0 .byte 0x22 .byte 0xc .4byte 0xffffffff .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST578: .8byte .LVL850 .8byte .LVL851 .2byte 0x6 .byte 0x7f .byte 0x98,0xf5,0xf2,0x76 .byte 0x9f .8byte 0 .8byte 0 .LLST579: .8byte .LVL864 .8byte .LVL865 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST667: .8byte .LVL1008 .8byte .LVL1009-1 .2byte 0x1 .byte 0x5a .8byte .LVL1009-1 .8byte .LVL1012 .2byte 0x1 .byte 0x59 .8byte .LVL1012 .8byte .LVL1013 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte .LVL1013 .8byte .LFE62 .2byte 0x1 .byte 0x59 .8byte 0 .8byte 0 .LLST668: .8byte .LVL1008 .8byte .LVL1010 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL1010 .8byte .LVL1011 .2byte 0x1 .byte 0x58 .8byte .LVL1015 .8byte .LVL1016 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST660: .8byte .LVL996 .8byte .LVL998-1 .2byte 0x1 .byte 0x5a .8byte .LVL998-1 .8byte .LVL1002 .2byte 0x1 .byte 0x58 .8byte .LVL1002 .8byte .LVL1004 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte .LVL1004 .8byte .LFE61 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST661: .8byte .LVL996 .8byte .LVL998 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL1006 .8byte .LVL1007 .2byte 0x1 .byte 0x5a .8byte 0 .8byte 0 .LLST662: .8byte .LVL996 .8byte .LVL1000 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL1000 .8byte .LVL1001 .2byte 0x1 .byte 0x5f .8byte .LVL1004 .8byte .LVL1005-1 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST663: .8byte .LVL997 .8byte .LVL1002 .2byte 0x1 .byte 0x59 .8byte .LVL1004 .8byte .LFE61 .2byte 0x1 .byte 0x59 .8byte 0 .8byte 0 .LLST664: .8byte .LVL997 .8byte .LVL1003 .2byte 0x1 .byte 0x62 .8byte .LVL1004 .8byte .LFE61 .2byte 0x1 .byte 0x62 .8byte 0 .8byte 0 .LLST665: .8byte .LVL998 .8byte .LVL1000 .2byte 0x6 .byte 0xc .4byte 0x3103010 .byte 0x9f .8byte 0 .8byte 0 .LLST666: .8byte .LVL999 .8byte .LVL1000 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST558: .8byte .LVL814 .8byte .LVL825 .2byte 0x1 .byte 0x5a .8byte .LVL825 .8byte .LVL826 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte .LVL826 .8byte .LVL829 .2byte 0x1 .byte 0x5a .8byte .LVL829 .8byte .LVL831 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte .LVL831 .8byte .LVL833 .2byte 0x1 .byte 0x5a .8byte .LVL833 .8byte .LVL834 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte .LVL834 .8byte .LVL836 .2byte 0x1 .byte 0x5a .8byte .LVL836 .8byte .LVL837 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte .LVL837 .8byte .LVL838 .2byte 0x1 .byte 0x5a .8byte .LVL838 .8byte .LFE60 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte 0 .8byte 0 .LLST559: .8byte .LVL814 .8byte .LVL816 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL816 .8byte .LVL819 .2byte 0x1 .byte 0x5e .8byte .LVL819 .8byte .LVL820 .2byte 0x1 .byte 0x5b .8byte .LVL820 .8byte .LVL822 .2byte 0x3 .byte 0x7f .byte 0xc8,0x6 .8byte .LVL822 .8byte .LVL823 .2byte 0x1 .byte 0x58 .8byte .LVL823 .8byte .LVL824 .2byte 0x5 .byte 0xc .4byte 0x31033c8 .8byte .LVL826 .8byte .LVL827 .2byte 0x1 .byte 0x5e .8byte .LVL827 .8byte .LVL828 .2byte 0x5 .byte 0xc .4byte 0x3103010 .8byte .LVL831 .8byte .LVL832 .2byte 0x5 .byte 0xc .4byte 0x31033c8 .8byte .LVL834 .8byte .LVL835 .2byte 0x5 .byte 0xc .4byte 0x31033c8 .8byte .LVL837 .8byte .LVL839-1 .2byte 0x5 .byte 0xc .4byte 0x31033c8 .8byte 0 .8byte 0 .LLST560: .8byte .LVL820 .8byte .LVL826 .2byte 0x1 .byte 0x5b .8byte .LVL831 .8byte .LVL839-1 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST561: .8byte .LVL823 .8byte .LVL826 .2byte 0x1 .byte 0x58 .8byte .LVL831 .8byte .LFE60 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST562: .8byte .LVL814 .8byte .LVL816 .2byte 0x6 .byte 0xc .4byte 0x3103010 .byte 0x9f .8byte 0 .8byte 0 .LLST563: .8byte .LVL815 .8byte .LVL816 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST564: .8byte .LVL817 .8byte .LVL819 .2byte 0x6 .byte 0xc .4byte 0x3103348 .byte 0x9f .8byte 0 .8byte 0 .LLST565: .8byte .LVL818 .8byte .LVL819 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST566: .8byte .LVL820 .8byte .LVL822 .2byte 0x6 .byte 0xc .4byte 0x31033c8 .byte 0x9f .8byte 0 .8byte 0 .LLST567: .8byte .LVL821 .8byte .LVL822 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST592: .8byte .LVL892 .8byte .LVL893-1 .2byte 0x1 .byte 0x5a .8byte .LVL893-1 .8byte .LVL897 .2byte 0x1 .byte 0x67 .8byte .LVL897 .8byte .LVL898 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte .LVL898 .8byte .LFE59 .2byte 0x1 .byte 0x67 .8byte 0 .8byte 0 .LLST593: .8byte .LVL892 .8byte .LVL895 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL898 .8byte .LVL902 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL902 .8byte .LVL905 .2byte 0x1 .byte 0x5f .8byte .LVL914 .8byte .LVL923-1 .2byte 0x1 .byte 0x5e .8byte .LVL939 .8byte .LVL964 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL964 .8byte .LVL971 .2byte 0x1 .byte 0x5e .8byte .LVL972 .8byte .LVL974-1 .2byte 0x1 .byte 0x5d .8byte .LVL989 .8byte .LVL991 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL992 .8byte .LVL993 .2byte 0x1 .byte 0x5e .8byte .LVL994 .8byte .LVL995 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST594: .8byte .LVL892 .8byte .LVL895 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL898 .8byte .LVL901 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL914 .8byte .LVL915 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL915 .8byte .LVL919 .2byte 0x1 .byte 0x5d .8byte .LVL919 .8byte .LVL920 .2byte 0x3 .byte 0x7d .byte 0x1 .byte 0x9f .8byte .LVL939 .8byte .LVL941 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL941 .8byte .LVL945 .2byte 0x1 .byte 0x5e .8byte .LVL945 .8byte .LVL946 .2byte 0x3 .byte 0x7e .byte 0x1 .byte 0x9f .8byte .LVL964 .8byte .LVL965 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL965 .8byte .LVL969 .2byte 0x1 .byte 0x5d .8byte .LVL969 .8byte .LVL970 .2byte 0x3 .byte 0x7d .byte 0x1 .byte 0x9f .8byte .LVL989 .8byte .LVL990 .2byte 0x1 .byte 0x5e .8byte .LVL992 .8byte .LFE59 .2byte 0x1 .byte 0x5d .8byte 0 .8byte 0 .LLST595: .8byte .LVL892 .8byte .LVL895 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL898 .8byte .LVL901 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte 0 .8byte 0 .LLST596: .8byte .LVL892 .8byte .LVL895 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL898 .8byte .LVL899 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL899 .8byte .LFE59 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST597: .8byte .LVL892 .8byte .LVL895 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL898 .8byte .LVL899 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte 0 .8byte 0 .LLST598: .8byte .LVL892 .8byte .LVL895 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL898 .8byte .LVL901 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL908 .8byte .LVL909 .2byte 0xb .byte 0x7f .byte 0 .byte 0xb .2byte 0xf0f3 .byte 0x1a .byte 0xa .2byte 0x600 .byte 0x21 .byte 0x9f .8byte .LVL909 .8byte .LVL910 .2byte 0xd .byte 0x86 .byte 0 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xf0f3 .byte 0x1a .byte 0xa .2byte 0x600 .byte 0x21 .byte 0x9f .8byte .LVL910 .8byte .LVL914 .2byte 0x1 .byte 0x5f .8byte .LVL916 .8byte .LVL922 .2byte 0x1 .byte 0x5b .8byte .LVL928 .8byte .LVL929 .2byte 0xb .byte 0x7f .byte 0 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0x6a4 .byte 0x21 .byte 0x9f .8byte .LVL929 .8byte .LVL930 .2byte 0xd .byte 0x7e .byte 0 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0x6a4 .byte 0x21 .byte 0x9f .8byte .LVL933 .8byte .LVL934 .2byte 0xa .byte 0x7f .byte 0 .byte 0xb .2byte 0xff03 .byte 0x1a .byte 0x8 .byte 0xa4 .byte 0x21 .byte 0x9f .8byte .LVL934 .8byte .LVL935 .2byte 0xc .byte 0x86 .byte 0 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xff03 .byte 0x1a .byte 0x8 .byte 0xa4 .byte 0x21 .byte 0x9f .8byte .LVL935 .8byte .LVL940 .2byte 0x1 .byte 0x5f .8byte .LVL940 .8byte .LVL941 .2byte 0x2 .byte 0x86 .byte 0 .8byte .LVL942 .8byte .LVL947 .2byte 0x1 .byte 0x5c .8byte .LVL953 .8byte .LVL954 .2byte 0xb .byte 0x7f .byte 0 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0xaa0 .byte 0x21 .byte 0x9f .8byte .LVL954 .8byte .LVL955 .2byte 0xd .byte 0x7e .byte 0 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0xaa0 .byte 0x21 .byte 0x9f .8byte .LVL958 .8byte .LVL959 .2byte 0xa .byte 0x7f .byte 0 .byte 0xb .2byte 0xff03 .byte 0x1a .byte 0x8 .byte 0xa0 .byte 0x21 .byte 0x9f .8byte .LVL959 .8byte .LVL960 .2byte 0xc .byte 0x86 .byte 0 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xff03 .byte 0x1a .byte 0x8 .byte 0xa0 .byte 0x21 .byte 0x9f .8byte .LVL960 .8byte .LVL964 .2byte 0x1 .byte 0x5f .8byte .LVL966 .8byte .LVL973 .2byte 0x1 .byte 0x5b .8byte .LVL980 .8byte .LVL981 .2byte 0xb .byte 0x7f .byte 0 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0x6f0 .byte 0x21 .byte 0x9f .8byte .LVL981 .8byte .LVL982 .2byte 0xd .byte 0x7e .byte 0 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0x6f0 .byte 0x21 .byte 0x9f .8byte .LVL984 .8byte .LVL985 .2byte 0xb .byte 0x7f .byte 0 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0x6f1 .byte 0x21 .byte 0x9f .8byte .LVL985 .8byte .LVL986 .2byte 0xd .byte 0x7e .byte 0x4 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0x6f1 .byte 0x21 .byte 0x9f .8byte .LVL989 .8byte .LVL991 .2byte 0x1 .byte 0x5c .8byte .LVL992 .8byte .LFE59 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST599: .8byte .LVL892 .8byte .LVL894 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL894 .8byte .LVL895 .2byte 0x1 .byte 0x59 .8byte .LVL898 .8byte .LVL900 .2byte 0x1 .byte 0x59 .8byte .LVL900 .8byte .LVL901 .2byte 0x1 .byte 0x5a .8byte .LVL914 .8byte .LVL921 .2byte 0x8 .byte 0x31 .byte 0x7e .byte 0xb .byte 0x24 .byte 0x89 .byte 0 .byte 0x22 .byte 0x9f .8byte .LVL939 .8byte .LVL956 .2byte 0x4 .byte 0x89 .byte 0x80,0x10 .byte 0x9f .8byte .LVL964 .8byte .LVL971 .2byte 0x8 .byte 0x31 .byte 0x7e .byte 0 .byte 0x24 .byte 0x89 .byte 0 .byte 0x22 .byte 0x9f .8byte .LVL989 .8byte .LVL991 .2byte 0x4 .byte 0x89 .byte 0x80,0x10 .byte 0x9f .8byte .LVL992 .8byte .LVL993 .2byte 0x8 .byte 0x31 .byte 0x7e .byte 0 .byte 0x24 .byte 0x89 .byte 0 .byte 0x22 .byte 0x9f .8byte .LVL994 .8byte .LVL995 .2byte 0x8 .byte 0x31 .byte 0x7e .byte 0xb .byte 0x24 .byte 0x89 .byte 0 .byte 0x22 .byte 0x9f .8byte 0 .8byte 0 .LLST601: .8byte .LVL892 .8byte .LVL895 .2byte 0x4 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x9f .8byte .LVL898 .8byte .LVL901 .2byte 0x4 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x9f .8byte .LVL901 .8byte .LVL930 .2byte 0x1 .byte 0x69 .8byte .LVL930 .8byte .LVL931 .2byte 0x5 .byte 0x8 .byte 0x81 .byte 0x47 .byte 0x24 .byte 0x9f .8byte .LVL931 .8byte .LVL955 .2byte 0x1 .byte 0x69 .8byte .LVL955 .8byte .LVL956 .2byte 0x4 .byte 0x41 .byte 0x4a .byte 0x24 .byte 0x9f .8byte .LVL956 .8byte .LVL986 .2byte 0x1 .byte 0x69 .8byte .LVL986 .8byte .LVL987 .2byte 0x4 .byte 0x42 .byte 0x4a .byte 0x24 .byte 0x9f .8byte .LVL989 .8byte .LFE59 .2byte 0x1 .byte 0x69 .8byte 0 .8byte 0 .LLST602: .8byte .LVL892 .8byte .LVL895 .2byte 0x4 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x9f .8byte .LVL898 .8byte .LVL901 .2byte 0x4 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x9f .8byte .LVL901 .8byte .LVL976 .2byte 0x1 .byte 0x59 .8byte .LVL977 .8byte .LVL986 .2byte 0x1 .byte 0x59 .8byte .LVL986 .8byte .LVL987 .2byte 0x4 .byte 0x42 .byte 0x4a .byte 0x24 .byte 0x9f .8byte .LVL989 .8byte .LVL991 .2byte 0x1 .byte 0x59 .8byte .LVL992 .8byte .LFE59 .2byte 0x1 .byte 0x59 .8byte 0 .8byte 0 .LLST603: .8byte .LVL903 .8byte .LVL904 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST604: .8byte .LVL903 .8byte .LVL904 .2byte 0x1 .byte 0x5d .8byte 0 .8byte 0 .LLST605: .8byte .LVL906 .8byte .LVL908 .2byte 0x1 .byte 0x66 .8byte 0 .8byte 0 .LLST606: .8byte .LVL907 .8byte .LVL908 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST607: .8byte .LVL910 .8byte .LVL988 .2byte 0x1 .byte 0x66 .8byte .LVL988 .8byte .LVL989 .2byte 0x3 .byte 0x86 .byte 0x7c .byte 0x9f .8byte .LVL989 .8byte .LFE59 .2byte 0x1 .byte 0x66 .8byte 0 .8byte 0 .LLST608: .8byte .LVL910 .8byte .LVL914 .2byte 0x1 .byte 0x5f .8byte .LVL914 .8byte .LVL923-1 .2byte 0x2 .byte 0x86 .byte 0 .8byte .LVL994 .8byte .LFE59 .2byte 0x2 .byte 0x86 .byte 0 .8byte 0 .8byte 0 .LLST609: .8byte .LVL911 .8byte .LVL913 .2byte 0x1 .byte 0x66 .8byte 0 .8byte 0 .LLST610: .8byte .LVL912 .8byte .LVL913 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST611: .8byte .LVL916 .8byte .LVL918 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST612: .8byte .LVL917 .8byte .LVL918 .2byte 0x1 .byte 0x5a .8byte 0 .8byte 0 .LLST613: .8byte .LVL924 .8byte .LVL925 .2byte 0x9 .byte 0x91 .byte 0x88,0x7f .byte 0x94 .byte 0x4 .byte 0x8a .byte 0x4 .byte 0x24 .byte 0x9f .8byte 0 .8byte 0 .LLST614: .8byte .LVL924 .8byte .LVL925 .2byte 0x6 .byte 0x8 .byte 0xff .byte 0x8a .byte 0x4 .byte 0x24 .byte 0x9f .8byte 0 .8byte 0 .LLST615: .8byte .LVL924 .8byte .LVL925 .2byte 0x3 .byte 0x87 .byte 0x10 .byte 0x9f .8byte 0 .8byte 0 .LLST616: .8byte .LVL926 .8byte .LVL928 .2byte 0x6 .byte 0xc .4byte 0x3102000 .byte 0x9f .8byte 0 .8byte 0 .LLST617: .8byte .LVL927 .8byte .LVL928 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST618: .8byte .LVL928 .8byte .LVL930 .2byte 0x6 .byte 0xc .4byte 0x3102000 .byte 0x9f .8byte 0 .8byte 0 .LLST619: .8byte .LVL928 .8byte .LVL929 .2byte 0xb .byte 0x7f .byte 0 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0x6a4 .byte 0x21 .byte 0x9f .8byte .LVL929 .8byte .LVL930 .2byte 0xd .byte 0x7e .byte 0 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0x6a4 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST620: .8byte .LVL931 .8byte .LVL933 .2byte 0x1 .byte 0x66 .8byte 0 .8byte 0 .LLST621: .8byte .LVL932 .8byte .LVL933 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST622: .8byte .LVL933 .8byte .LVL935 .2byte 0x4 .byte 0xa .2byte 0x600 .byte 0x9f .8byte 0 .8byte 0 .LLST623: .8byte .LVL933 .8byte .LVL935 .2byte 0x4 .byte 0xa .2byte 0xf00 .byte 0x9f .8byte 0 .8byte 0 .LLST624: .8byte .LVL933 .8byte .LVL935 .2byte 0x6 .byte 0xf2 .4byte .Ldebug_info0+5198 .byte 0 .8byte 0 .8byte 0 .LLST625: .8byte .LVL935 .8byte .LVL988 .2byte 0x1 .byte 0x66 .8byte .LVL988 .8byte .LVL989 .2byte 0x3 .byte 0x86 .byte 0x7c .byte 0x9f .8byte .LVL989 .8byte .LVL994 .2byte 0x1 .byte 0x66 .8byte 0 .8byte 0 .LLST626: .8byte .LVL935 .8byte .LVL940 .2byte 0x1 .byte 0x5f .8byte .LVL940 .8byte .LVL948-1 .2byte 0x2 .byte 0x86 .byte 0 .8byte .LVL989 .8byte .LVL991 .2byte 0x2 .byte 0x86 .byte 0 .8byte 0 .8byte 0 .LLST627: .8byte .LVL936 .8byte .LVL938 .2byte 0x1 .byte 0x66 .8byte 0 .8byte 0 .LLST628: .8byte .LVL937 .8byte .LVL938 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST629: .8byte .LVL942 .8byte .LVL944 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST630: .8byte .LVL943 .8byte .LVL944 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST631: .8byte .LVL949 .8byte .LVL950 .2byte 0x9 .byte 0x91 .byte 0x88,0x7f .byte 0x94 .byte 0x4 .byte 0x8a .byte 0xc .byte 0x24 .byte 0x9f .8byte 0 .8byte 0 .LLST632: .8byte .LVL949 .8byte .LVL950 .2byte 0x5 .byte 0x3f .byte 0x8a .byte 0xc .byte 0x24 .byte 0x9f .8byte 0 .8byte 0 .LLST633: .8byte .LVL949 .8byte .LVL950 .2byte 0x3 .byte 0x87 .byte 0x10 .byte 0x9f .8byte 0 .8byte 0 .LLST634: .8byte .LVL951 .8byte .LVL953 .2byte 0x6 .byte 0xc .4byte 0x3102000 .byte 0x9f .8byte 0 .8byte 0 .LLST635: .8byte .LVL952 .8byte .LVL953 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST636: .8byte .LVL953 .8byte .LVL955 .2byte 0x6 .byte 0xc .4byte 0x3102000 .byte 0x9f .8byte 0 .8byte 0 .LLST637: .8byte .LVL953 .8byte .LVL954 .2byte 0xb .byte 0x7f .byte 0 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0xaa0 .byte 0x21 .byte 0x9f .8byte .LVL954 .8byte .LVL955 .2byte 0xd .byte 0x7e .byte 0 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0xaa0 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST638: .8byte .LVL956 .8byte .LVL958 .2byte 0x1 .byte 0x66 .8byte 0 .8byte 0 .LLST639: .8byte .LVL957 .8byte .LVL958 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST640: .8byte .LVL958 .8byte .LVL960 .2byte 0x4 .byte 0xa .2byte 0xa00 .byte 0x9f .8byte 0 .8byte 0 .LLST641: .8byte .LVL958 .8byte .LVL960 .2byte 0x4 .byte 0xa .2byte 0xf00 .byte 0x9f .8byte 0 .8byte 0 .LLST642: .8byte .LVL958 .8byte .LVL960 .2byte 0x6 .byte 0xf2 .4byte .Ldebug_info0+5198 .byte 0 .8byte 0 .8byte 0 .LLST643: .8byte .LVL960 .8byte .LVL988 .2byte 0x1 .byte 0x66 .8byte .LVL988 .8byte .LVL989 .2byte 0x3 .byte 0x86 .byte 0x7c .byte 0x9f .8byte .LVL991 .8byte .LVL994 .2byte 0x1 .byte 0x66 .8byte 0 .8byte 0 .LLST644: .8byte .LVL960 .8byte .LVL964 .2byte 0x1 .byte 0x5f .8byte .LVL964 .8byte .LVL974-1 .2byte 0x2 .byte 0x86 .byte 0 .8byte .LVL992 .8byte .LVL994 .2byte 0x2 .byte 0x86 .byte 0 .8byte 0 .8byte 0 .LLST645: .8byte .LVL961 .8byte .LVL963 .2byte 0x1 .byte 0x66 .8byte 0 .8byte 0 .LLST646: .8byte .LVL962 .8byte .LVL963 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST647: .8byte .LVL966 .8byte .LVL968 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST648: .8byte .LVL967 .8byte .LVL968 .2byte 0x1 .byte 0x5a .8byte 0 .8byte 0 .LLST649: .8byte .LVL974 .8byte .LVL975 .2byte 0x9 .byte 0x91 .byte 0x88,0x7f .byte 0x94 .byte 0x4 .byte 0x8a .byte 0 .byte 0x24 .byte 0x9f .8byte 0 .8byte 0 .LLST650: .8byte .LVL974 .8byte .LVL975 .2byte 0x5 .byte 0x3f .byte 0x8a .byte 0 .byte 0x24 .byte 0x9f .8byte 0 .8byte 0 .LLST651: .8byte .LVL974 .8byte .LVL975 .2byte 0x3 .byte 0x87 .byte 0x10 .byte 0x9f .8byte 0 .8byte 0 .LLST652: .8byte .LVL978 .8byte .LVL980 .2byte 0x6 .byte 0xc .4byte 0x3102000 .byte 0x9f .8byte 0 .8byte 0 .LLST653: .8byte .LVL979 .8byte .LVL980 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST654: .8byte .LVL980 .8byte .LVL982 .2byte 0x6 .byte 0xc .4byte 0x3102000 .byte 0x9f .8byte 0 .8byte 0 .LLST655: .8byte .LVL980 .8byte .LVL981 .2byte 0xb .byte 0x7f .byte 0 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0x6f0 .byte 0x21 .byte 0x9f .8byte .LVL981 .8byte .LVL982 .2byte 0xd .byte 0x7e .byte 0 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0x6f0 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST656: .8byte .LVL982 .8byte .LVL984 .2byte 0x6 .byte 0xc .4byte 0x3102004 .byte 0x9f .8byte 0 .8byte 0 .LLST657: .8byte .LVL983 .8byte .LVL984 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST658: .8byte .LVL984 .8byte .LVL986 .2byte 0x6 .byte 0xc .4byte 0x3102004 .byte 0x9f .8byte 0 .8byte 0 .LLST659: .8byte .LVL984 .8byte .LVL985 .2byte 0xb .byte 0x7f .byte 0 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0x6f1 .byte 0x21 .byte 0x9f .8byte .LVL985 .8byte .LVL986 .2byte 0xd .byte 0x7e .byte 0x4 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xf003 .byte 0x1a .byte 0xa .2byte 0x6f1 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST550: .8byte .LVL805 .8byte .LVL806 .2byte 0x1 .byte 0x5f .8byte .LVL806 .8byte .LVL809 .2byte 0x2 .byte 0x7e .byte 0 .8byte .LVL809 .8byte .LVL810 .2byte 0x5 .byte 0xc .4byte 0x3102000 .8byte .LVL810 .8byte .LVL812 .2byte 0x1 .byte 0x5e .8byte .LVL812 .8byte .LVL813 .2byte 0x5 .byte 0xc .4byte 0x3102004 .8byte 0 .8byte 0 .LLST551: .8byte .LVL805 .8byte .LVL806 .2byte 0x17 .byte 0x7f .byte 0 .byte 0x38 .byte 0x25 .byte 0x3f .byte 0x1a .byte 0x7f .byte 0 .byte 0x32 .byte 0x25 .byte 0x33 .byte 0x1a .byte 0x22 .byte 0x7f .byte 0 .byte 0x34 .byte 0x25 .byte 0x3f .byte 0x1a .byte 0x22 .byte 0x3e .byte 0x1c .byte 0x9f .8byte .LVL806 .8byte .LVL807 .2byte 0x1d .byte 0x7e .byte 0 .byte 0x94 .byte 0x4 .byte 0x38 .byte 0x25 .byte 0x3f .byte 0x1a .byte 0x7e .byte 0 .byte 0x94 .byte 0x4 .byte 0x32 .byte 0x25 .byte 0x33 .byte 0x1a .byte 0x22 .byte 0x7e .byte 0 .byte 0x94 .byte 0x4 .byte 0x34 .byte 0x25 .byte 0x3f .byte 0x1a .byte 0x22 .byte 0x3e .byte 0x1c .byte 0x9f .8byte .LVL807 .8byte .LFE58 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST552: .8byte .LVL803 .8byte .LVL811 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL811 .8byte .LVL812 .2byte 0x17 .byte 0x7e .byte 0 .byte 0x38 .byte 0x25 .byte 0x3f .byte 0x1a .byte 0x7e .byte 0 .byte 0x32 .byte 0x25 .byte 0x33 .byte 0x1a .byte 0x22 .byte 0x7e .byte 0 .byte 0x34 .byte 0x25 .byte 0x3f .byte 0x1a .byte 0x22 .byte 0x3e .byte 0x1c .byte 0x9f .8byte .LVL812 .8byte .LVL813 .2byte 0x26 .byte 0xc .4byte 0x3102004 .byte 0x94 .byte 0x4 .byte 0x38 .byte 0x25 .byte 0x3f .byte 0x1a .byte 0xc .4byte 0x3102004 .byte 0x94 .byte 0x4 .byte 0x32 .byte 0x25 .byte 0x33 .byte 0x1a .byte 0x22 .byte 0xc .4byte 0x3102004 .byte 0x94 .byte 0x4 .byte 0x34 .byte 0x25 .byte 0x3f .byte 0x1a .byte 0x22 .byte 0x3e .byte 0x1c .byte 0x9f .8byte .LVL813 .8byte .LFE58 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST553: .8byte .LVL805 .8byte .LVL806 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x32 .byte 0x25 .byte 0x33 .byte 0x1a .byte 0x9f .8byte .LVL806 .8byte .LVL809 .2byte 0x9 .byte 0x7e .byte 0 .byte 0x94 .byte 0x4 .byte 0x32 .byte 0x25 .byte 0x33 .byte 0x1a .byte 0x9f .8byte .LVL809 .8byte .LVL811 .2byte 0xc .byte 0xc .4byte 0x3102000 .byte 0x94 .byte 0x4 .byte 0x32 .byte 0x25 .byte 0x33 .byte 0x1a .byte 0x9f .8byte .LVL811 .8byte .LVL812 .2byte 0x7 .byte 0x7e .byte 0 .byte 0x32 .byte 0x25 .byte 0x33 .byte 0x1a .byte 0x9f .8byte .LVL812 .8byte .LVL813 .2byte 0xc .byte 0xc .4byte 0x3102004 .byte 0x94 .byte 0x4 .byte 0x32 .byte 0x25 .byte 0x33 .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST554: .8byte .LVL803 .8byte .LVL805 .2byte 0x6 .byte 0xc .4byte 0x3102000 .byte 0x9f .8byte 0 .8byte 0 .LLST555: .8byte .LVL804 .8byte .LVL805 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST556: .8byte .LVL808 .8byte .LVL810 .2byte 0x6 .byte 0xc .4byte 0x3102004 .byte 0x9f .8byte 0 .8byte 0 .LLST557: .8byte .LVL809 .8byte .LVL810 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST388: .8byte .LVL602 .8byte .LVL632 .2byte 0x1 .byte 0x5a .8byte .LVL632 .8byte .LVL643 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte .LVL643 .8byte .LVL649 .2byte 0x1 .byte 0x5a .8byte .LVL649 .8byte .LFE57 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte 0 .8byte 0 .LLST389: .8byte .LVL602 .8byte .LVL633-1 .2byte 0x1 .byte 0x5b .8byte .LVL633-1 .8byte .LVL643 .2byte 0x1 .byte 0x62 .8byte .LVL643 .8byte .LVL649 .2byte 0x1 .byte 0x5b .8byte .LVL649 .8byte .LVL691 .2byte 0x1 .byte 0x62 .8byte .LVL691 .8byte .LVL729 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0x9f .8byte .LVL729 .8byte .LVL756 .2byte 0x1 .byte 0x62 .8byte .LVL756 .8byte .LFE57 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0x9f .8byte 0 .8byte 0 .LLST390: .8byte .LVL602 .8byte .LVL605 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL605 .8byte .LVL607 .2byte 0x1 .byte 0x5f .8byte .LVL607 .8byte .LVL608 .2byte 0xf .byte 0x7d .byte 0xc .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0xb .2byte 0xf000 .byte 0x1a .byte 0x9f .8byte .LVL608 .8byte .LVL610 .2byte 0x1 .byte 0x5f .8byte .LVL610 .8byte .LVL611 .2byte 0x2 .byte 0x7d .byte 0xc .8byte .LVL611 .8byte .LVL612 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xb .2byte 0xf3ff .byte 0x1a .byte 0x9f .8byte .LVL612 .8byte .LVL613 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xa .2byte 0x300 .byte 0x21 .byte 0x9f .8byte .LVL613 .8byte .LVL614 .2byte 0x13 .byte 0x7e .byte 0x88,0x2 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x7d .byte 0 .byte 0x1a .byte 0xa .2byte 0x300 .byte 0x21 .byte 0x9f .8byte .LVL616 .8byte .LVL619 .2byte 0x1 .byte 0x5e .8byte .LVL619 .8byte .LVL620 .2byte 0x8 .byte 0x7e .byte 0 .byte 0x11 .byte 0xf1,0x9f,0x7c .byte 0x1a .byte 0x9f .8byte .LVL620 .8byte .LVL622 .2byte 0x1 .byte 0x5e .8byte .LVL622 .8byte .LVL623 .2byte 0x3 .byte 0x7d .byte 0xc4,0x6 .8byte .LVL623 .8byte .LVL625 .2byte 0x1 .byte 0x5e .8byte .LVL625 .8byte .LVL626 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x11 .byte 0xf1,0x9f,0x7c .byte 0x1a .byte 0x9f .8byte .LVL626 .8byte .LVL628 .2byte 0x1 .byte 0x5f .8byte .LVL628 .8byte .LVL629 .2byte 0x3 .byte 0x78 .byte 0xc4,0x7 .8byte .LVL629 .8byte .LVL630 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x32 .byte 0x21 .byte 0x9f .8byte .LVL630 .8byte .LVL631 .2byte 0x8 .byte 0x78 .byte 0x88,0x4 .byte 0x94 .byte 0x4 .byte 0x32 .byte 0x21 .byte 0x9f .8byte .LVL635 .8byte .LVL636 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x9 .byte 0xbf .byte 0x1a .byte 0x9f .8byte .LVL636 .8byte .LVL637 .2byte 0x9 .byte 0x78 .byte 0x88,0x2 .byte 0x94 .byte 0x4 .byte 0x9 .byte 0xbf .byte 0x1a .byte 0x9f .8byte .LVL640 .8byte .LVL641 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x8 .byte 0xc0 .byte 0x21 .byte 0x9f .8byte .LVL641 .8byte .LVL642 .2byte 0x9 .byte 0x78 .byte 0x88,0x2 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0xc0 .byte 0x21 .byte 0x9f .8byte .LVL643 .8byte .LVL644 .2byte 0x8 .byte 0x7e .byte 0 .byte 0x11 .byte 0xf1,0x9f,0x7c .byte 0x1a .byte 0x9f .8byte .LVL644 .8byte .LVL646 .2byte 0x1 .byte 0x5e .8byte .LVL646 .8byte .LVL647 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x11 .byte 0xf1,0x9f,0x7c .byte 0x1a .byte 0x9f .8byte .LVL647 .8byte .LVL649 .2byte 0x1 .byte 0x5f .8byte .LVL650 .8byte .LVL651 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xb .2byte 0xff3f .byte 0x1a .byte 0x9f .8byte .LVL654 .8byte .LVL655 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xb .2byte 0xfef8 .byte 0x1a .byte 0x9f .8byte .LVL655 .8byte .LVL656 .2byte 0xa .byte 0x78 .byte 0xbc,0x1 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xfef8 .byte 0x1a .byte 0x9f .8byte .LVL658 .8byte .LVL659 .2byte 0xf .byte 0x7f .byte 0 .byte 0x11 .byte 0xbf,0xfe,0xff,0xbf,0x7f .byte 0x1a .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL659 .8byte .LVL660 .2byte 0x12 .byte 0x78 .byte 0x9c,0x2 .byte 0x94 .byte 0x4 .byte 0x11 .byte 0xbf,0xfe,0xff,0xbf,0x7f .byte 0x1a .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL662 .8byte .LVL663 .2byte 0x9 .byte 0x7f .byte 0 .byte 0xc .4byte 0x3000001 .byte 0x21 .byte 0x9f .8byte .LVL669 .8byte .LVL670 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x9 .byte 0xfd .byte 0x1a .byte 0x9f .8byte .LVL670 .8byte .LVL671 .2byte 0x9 .byte 0x7e .byte 0xd0,0x4 .byte 0x94 .byte 0x4 .byte 0x9 .byte 0xfd .byte 0x1a .byte 0x9f .8byte .LVL674 .8byte .LVL675 .2byte 0x1 .byte 0x5f .8byte .LVL675 .8byte .LVL676 .2byte 0x1 .byte 0x5d .8byte .LVL676 .8byte .LVL677 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x45 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL677 .8byte .LVL678 .2byte 0x26 .byte 0x78 .byte 0xc0,0x2 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x40 .byte 0x46 .byte 0x24 .byte 0x1f .byte 0x1a .byte 0x82 .byte 0x8 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x9 .byte 0xf0 .byte 0x24 .byte 0x9 .byte 0xf0 .byte 0x25 .byte 0x21 .byte 0x40 .byte 0x45 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL679 .8byte .LVL680 .2byte 0x3 .byte 0x8 .byte 0x52 .byte 0x9f .8byte .LVL680 .8byte .LVL685 .2byte 0x3 .byte 0x8 .byte 0x53 .byte 0x9f .8byte .LVL685 .8byte .LVL686 .2byte 0x4 .byte 0xa .2byte 0x520 .byte 0x9f .8byte .LVL686 .8byte .LVL687 .2byte 0x1 .byte 0x5f .8byte .LVL687 .8byte .LVL688 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x31 .byte 0x21 .byte 0x9f .8byte .LVL688 .8byte .LVL689 .2byte 0x7 .byte 0x78 .byte 0 .byte 0x94 .byte 0x4 .byte 0x31 .byte 0x21 .byte 0x9f .8byte .LVL699 .8byte .LVL700 .2byte 0x1 .byte 0x5f .8byte .LVL700 .8byte .LVL705 .2byte 0x2 .byte 0x82 .byte 0x10 .8byte .LVL705 .8byte .LVL706 .2byte 0x8 .byte 0x7e .byte 0 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL706 .8byte .LVL707 .2byte 0xb .byte 0x82 .byte 0x8c,0x1 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL710 .8byte .LVL711 .2byte 0x9 .byte 0x7e .byte 0 .byte 0xc .4byte 0x7fffffff .byte 0x1a .byte 0x9f .8byte .LVL711 .8byte .LVL712 .2byte 0xc .byte 0x82 .byte 0x8c,0x1 .byte 0x94 .byte 0x4 .byte 0xc .4byte 0x7fffffff .byte 0x1a .byte 0x9f .8byte .LVL715 .8byte .LVL716 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL716 .8byte .LVL717 .2byte 0xa .byte 0x7e .byte 0x14 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL720 .8byte .LVL721 .2byte 0x9 .byte 0x7f .byte 0 .byte 0x11 .byte 0xff,0xff,0xff,0x4f .byte 0x1a .byte 0x9f .8byte .LVL721 .8byte .LVL722 .2byte 0xc .byte 0x82 .byte 0x8c,0x2 .byte 0x94 .byte 0x4 .byte 0x11 .byte 0xff,0xff,0xff,0x4f .byte 0x1a .byte 0x9f .8byte .LVL725 .8byte .LVL726 .2byte 0x1 .byte 0x5f .8byte .LVL726 .8byte .LVL727 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x8 .byte 0x40 .byte 0x21 .byte 0x9f .8byte .LVL727 .8byte .LVL728 .2byte 0x13 .byte 0x82 .byte 0x9c,0x2 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0xb .2byte 0xff3f .byte 0x1a .byte 0x8 .byte 0x40 .byte 0x21 .byte 0x9f .8byte .LVL730 .8byte .LVL731 .2byte 0x1 .byte 0x5f .8byte .LVL731 .8byte .LVL732 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x8 .byte 0x80 .byte 0x21 .byte 0x9f .8byte .LVL732 .8byte .LVL733 .2byte 0x13 .byte 0x78 .byte 0x88,0x2 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0xb .2byte 0xff3f .byte 0x1a .byte 0x8 .byte 0x80 .byte 0x21 .byte 0x9f .8byte .LVL737 .8byte .LVL739 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xb .2byte 0xfef8 .byte 0x1a .byte 0x9f .8byte .LVL739 .8byte .LVL740 .2byte 0xa .byte 0x78 .byte 0xbc,0x1 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xfef8 .byte 0x1a .byte 0x9f .8byte .LVL740 .8byte .LVL741 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xa .2byte 0x100 .byte 0x21 .byte 0x9f .8byte .LVL741 .8byte .LVL742 .2byte 0x17 .byte 0x78 .byte 0xbc,0x1 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0xb .2byte 0xfef8 .byte 0x1a .byte 0x7e .byte 0 .byte 0x21 .byte 0xa .2byte 0x100 .byte 0x21 .byte 0x9f .8byte .LVL744 .8byte .LVL745 .2byte 0xd .byte 0x7f .byte 0 .byte 0xc .4byte 0x7fffffff .byte 0x1a .byte 0x40 .byte 0x47 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL745 .8byte .LVL746 .2byte 0x10 .byte 0x78 .byte 0x9c,0x2 .byte 0x94 .byte 0x4 .byte 0xc .4byte 0x7fffffff .byte 0x1a .byte 0x40 .byte 0x47 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL748 .8byte .LVL749 .2byte 0xf .byte 0xc .4byte 0x310311c .byte 0x94 .byte 0x4 .byte 0x11 .byte 0xff,0xff,0xff,0xff,0x78 .byte 0x1a .byte 0x9f .8byte .LVL749 .8byte .LVL750 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x41 .byte 0x49 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL751 .8byte .LVL752 .2byte 0x9 .byte 0x7f .byte 0 .byte 0xc .4byte 0x1003087 .byte 0x21 .byte 0x9f .8byte .LVL755 .8byte .LVL756 .2byte 0x4 .byte 0xa .2byte 0x172 .byte 0x9f .8byte .LVL758 .8byte .LVL759 .2byte 0x1 .byte 0x5f .8byte .LVL759 .8byte .LVL760 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x46 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL760 .8byte .LVL761 .2byte 0x16 .byte 0x82 .byte 0x8c,0x2 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x11 .byte 0xff,0xff,0xff,0x4f .byte 0x1a .byte 0x40 .byte 0x46 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL764 .8byte .LVL765 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x31 .byte 0x21 .byte 0x9f .8byte .LVL765 .8byte .LVL766 .2byte 0x7 .byte 0x82 .byte 0x4 .byte 0x94 .byte 0x4 .byte 0x31 .byte 0x21 .byte 0x9f .8byte .LVL772 .8byte .LVL773 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x9 .byte 0xfe .byte 0x1a .byte 0x9f .8byte .LVL773 .8byte .LVL774 .2byte 0x9 .byte 0x7e .byte 0xd0,0x4 .byte 0x94 .byte 0x4 .byte 0x9 .byte 0xfe .byte 0x1a .byte 0x9f .8byte .LVL777 .8byte .LVL778 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x9 .byte 0xfe .byte 0x1a .byte 0x9f .8byte .LVL778 .8byte .LVL779 .2byte 0x8 .byte 0x82 .byte 0x4 .byte 0x94 .byte 0x4 .byte 0x9 .byte 0xfe .byte 0x1a .byte 0x9f .8byte .LVL787 .8byte .LVL788 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xb .2byte 0xff3f .byte 0x1a .byte 0x9f .8byte .LVL788 .8byte .LVL789 .2byte 0xa .byte 0x82 .byte 0x88,0x2 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xff3f .byte 0x1a .byte 0x9f .8byte .LVL791 .8byte .LVL792 .2byte 0x1 .byte 0x5f .8byte .LVL792 .8byte .LVL793 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x45 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL793 .8byte .LVL794 .2byte 0x16 .byte 0x82 .byte 0x8c,0x2 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x11 .byte 0xff,0xff,0xff,0x4f .byte 0x1a .byte 0x40 .byte 0x45 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL795 .8byte .LVL799 .2byte 0x4 .byte 0xa .2byte 0x401 .byte 0x9f .8byte .LVL799 .8byte .LVL800-1 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST391: .8byte .LVL602 .8byte .LVL614 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL614 .8byte .LVL615 .2byte 0x7 .byte 0x7b .byte 0xc .byte 0x94 .byte 0x4 .byte 0x31 .byte 0x1a .byte 0x9f .8byte .LVL615 .8byte .LVL617 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x31 .byte 0x1a .byte 0x9f .8byte .LVL617 .8byte .LVL621 .2byte 0xe .byte 0x7b .byte 0xc .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x20 .byte 0x31 .byte 0x1a .byte 0x9f .8byte .LVL643 .8byte .LVL646 .2byte 0xe .byte 0x7b .byte 0xc .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x20 .byte 0x31 .byte 0x1a .byte 0x9f .8byte .LVL735 .8byte .LVL738 .2byte 0x9 .byte 0x7e .byte 0 .byte 0x40 .byte 0x25 .byte 0x4f .byte 0x1a .byte 0x32 .byte 0x1c .byte 0x9f .8byte .LVL738 .8byte .LVL747 .2byte 0xc .byte 0x78 .byte 0xe0,0 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x25 .byte 0x4f .byte 0x1a .byte 0x32 .byte 0x1c .byte 0x9f .8byte 0 .8byte 0 .LLST392: .8byte .LVL602 .8byte .LVL603 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL603 .8byte .LVL802 .2byte 0x1 .byte 0x59 .8byte 0 .8byte 0 .LLST393: .8byte .LVL602 .8byte .LVL621 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL621 .8byte .LVL627 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL627 .8byte .LVL643 .2byte 0x2 .byte 0x32 .byte 0x9f .8byte .LVL643 .8byte .LVL646 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL646 .8byte .LVL649 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL649 .8byte .LFE57 .2byte 0x2 .byte 0x32 .byte 0x9f .8byte 0 .8byte 0 .LLST394: .8byte .LVL602 .8byte .LVL700 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL700 .8byte .LVL729 .2byte 0x1 .byte 0x58 .8byte .LVL729 .8byte .LVL801 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte 0 .8byte 0 .LLST395: .8byte .LVL603 .8byte .LVL605 .2byte 0x6 .byte 0xc .4byte 0x310200c .byte 0x9f .8byte 0 .8byte 0 .LLST396: .8byte .LVL604 .8byte .LVL605 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST397: .8byte .LVL608 .8byte .LVL609 .2byte 0x6 .byte 0xc .4byte 0x310200c .byte 0x9f .8byte 0 .8byte 0 .LLST398: .8byte .LVL608 .8byte .LVL609 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST399: .8byte .LVL609 .8byte .LVL611 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST400: .8byte .LVL610 .8byte .LVL611 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST401: .8byte .LVL612 .8byte .LVL614 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST402: .8byte .LVL612 .8byte .LVL613 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xa .2byte 0x300 .byte 0x21 .byte 0x9f .8byte .LVL613 .8byte .LVL614 .2byte 0x13 .byte 0x7e .byte 0x88,0x2 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x7d .byte 0 .byte 0x1a .byte 0xa .2byte 0x300 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST403: .8byte .LVL615 .8byte .LVL616 .2byte 0x6 .byte 0xc .4byte 0x3103344 .byte 0x9f .8byte .LVL621 .8byte .LVL623 .2byte 0x6 .byte 0xc .4byte 0x31033c4 .byte 0x9f .8byte 0 .8byte 0 .LLST404: .8byte .LVL615 .8byte .LVL616 .2byte 0x1 .byte 0x5e .8byte .LVL622 .8byte .LVL623 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST405: .8byte .LVL620 .8byte .LVL621 .2byte 0x6 .byte 0xc .4byte 0x3103344 .byte 0x9f .8byte .LVL626 .8byte .LVL627 .2byte 0x6 .byte 0xc .4byte 0x31033c4 .byte 0x9f .8byte 0 .8byte 0 .LLST406: .8byte .LVL620 .8byte .LVL621 .2byte 0x1 .byte 0x5e .8byte .LVL626 .8byte .LVL627 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST407: .8byte .LVL627 .8byte .LVL629 .2byte 0x6 .byte 0xc .4byte 0x3103208 .byte 0x9f .8byte 0 .8byte 0 .LLST408: .8byte .LVL628 .8byte .LVL629 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST409: .8byte .LVL629 .8byte .LVL631 .2byte 0x6 .byte 0xc .4byte 0x3103208 .byte 0x9f .8byte 0 .8byte 0 .LLST410: .8byte .LVL629 .8byte .LVL630 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x32 .byte 0x21 .byte 0x9f .8byte .LVL630 .8byte .LVL631 .2byte 0x8 .byte 0x78 .byte 0x88,0x4 .byte 0x94 .byte 0x4 .byte 0x32 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST411: .8byte .LVL634 .8byte .LVL635 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST412: .8byte .LVL634 .8byte .LVL635 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST413: .8byte .LVL635 .8byte .LVL637 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST414: .8byte .LVL635 .8byte .LVL636 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x9 .byte 0xbf .byte 0x1a .byte 0x9f .8byte .LVL636 .8byte .LVL637 .2byte 0x9 .byte 0x78 .byte 0x88,0x2 .byte 0x94 .byte 0x4 .byte 0x9 .byte 0xbf .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST415: .8byte .LVL637 .8byte .LVL638 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte 0 .8byte 0 .LLST416: .8byte .LVL638 .8byte .LVL640 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST417: .8byte .LVL639 .8byte .LVL640 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST418: .8byte .LVL640 .8byte .LVL643 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST419: .8byte .LVL640 .8byte .LVL641 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x8 .byte 0xc0 .byte 0x21 .byte 0x9f .8byte .LVL641 .8byte .LVL642 .2byte 0x9 .byte 0x78 .byte 0x88,0x2 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0xc0 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST420: .8byte .LVL649 .8byte .LVL650 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST421: .8byte .LVL649 .8byte .LVL650 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST422: .8byte .LVL650 .8byte .LVL652 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST423: .8byte .LVL650 .8byte .LVL651 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xb .2byte 0xff3f .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST424: .8byte .LVL652 .8byte .LVL654 .2byte 0x6 .byte 0xc .4byte 0x31030bc .byte 0x9f .8byte 0 .8byte 0 .LLST425: .8byte .LVL653 .8byte .LVL654 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST426: .8byte .LVL654 .8byte .LVL656 .2byte 0x6 .byte 0xc .4byte 0x31030bc .byte 0x9f .8byte 0 .8byte 0 .LLST427: .8byte .LVL654 .8byte .LVL655 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xb .2byte 0xfef8 .byte 0x1a .byte 0x9f .8byte .LVL655 .8byte .LVL656 .2byte 0xa .byte 0x78 .byte 0xbc,0x1 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xfef8 .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST428: .8byte .LVL657 .8byte .LVL658 .2byte 0x6 .byte 0xc .4byte 0x310311c .byte 0x9f .8byte 0 .8byte 0 .LLST429: .8byte .LVL657 .8byte .LVL658 .2byte 0x5 .byte 0xc .4byte 0x310311c .8byte 0 .8byte 0 .LLST430: .8byte .LVL658 .8byte .LVL660 .2byte 0x6 .byte 0xc .4byte 0x310311c .byte 0x9f .8byte 0 .8byte 0 .LLST431: .8byte .LVL658 .8byte .LVL659 .2byte 0xf .byte 0x7f .byte 0 .byte 0x11 .byte 0xbf,0xfe,0xff,0xbf,0x7f .byte 0x1a .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL659 .8byte .LVL660 .2byte 0x12 .byte 0x78 .byte 0x9c,0x2 .byte 0x94 .byte 0x4 .byte 0x11 .byte 0xbf,0xfe,0xff,0xbf,0x7f .byte 0x1a .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST432: .8byte .LVL749 .8byte .LVL750 .2byte 0x6 .byte 0xc .4byte 0x310311c .byte 0x9f .8byte 0 .8byte 0 .LLST433: .8byte .LVL749 .8byte .LVL750 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x41 .byte 0x49 .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST434: .8byte .LVL661 .8byte .LVL662 .2byte 0x6 .byte 0xc .4byte 0x31030c0 .byte 0x9f .8byte 0 .8byte 0 .LLST435: .8byte .LVL661 .8byte .LVL662 .2byte 0x5 .byte 0xc .4byte 0x31030c0 .8byte 0 .8byte 0 .LLST436: .8byte .LVL662 .8byte .LVL663 .2byte 0x6 .byte 0xc .4byte 0x31030c0 .byte 0x9f .8byte 0 .8byte 0 .LLST437: .8byte .LVL662 .8byte .LVL663 .2byte 0x9 .byte 0x7f .byte 0 .byte 0xc .4byte 0x3000001 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST438: .8byte .LVL751 .8byte .LVL752 .2byte 0x6 .byte 0xc .4byte 0x31030c0 .byte 0x9f .8byte 0 .8byte 0 .LLST439: .8byte .LVL751 .8byte .LVL752 .2byte 0x9 .byte 0x7f .byte 0 .byte 0xc .4byte 0x1003087 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST440: .8byte .LVL664 .8byte .LVL666 .2byte 0x6 .byte 0xc .4byte 0x70005d4 .byte 0x9f .8byte 0 .8byte 0 .LLST441: .8byte .LVL665 .8byte .LVL666 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST442: .8byte .LVL667 .8byte .LVL669 .2byte 0x6 .byte 0xc .4byte 0x7010250 .byte 0x9f .8byte 0 .8byte 0 .LLST443: .8byte .LVL668 .8byte .LVL669 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST444: .8byte .LVL669 .8byte .LVL671 .2byte 0x6 .byte 0xc .4byte 0x7010250 .byte 0x9f .8byte 0 .8byte 0 .LLST445: .8byte .LVL669 .8byte .LVL670 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x9 .byte 0xfd .byte 0x1a .byte 0x9f .8byte .LVL670 .8byte .LVL671 .2byte 0x9 .byte 0x7e .byte 0xd0,0x4 .byte 0x94 .byte 0x4 .byte 0x9 .byte 0xfd .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST446: .8byte .LVL671 .8byte .LVL672 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte 0 .8byte 0 .LLST447: .8byte .LVL672 .8byte .LVL674 .2byte 0x6 .byte 0xc .4byte 0x3103140 .byte 0x9f .8byte 0 .8byte 0 .LLST448: .8byte .LVL673 .8byte .LVL674 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST449: .8byte .LVL676 .8byte .LVL678 .2byte 0x6 .byte 0xc .4byte 0x3103140 .byte 0x9f .8byte 0 .8byte 0 .LLST450: .8byte .LVL676 .8byte .LVL677 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x45 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL677 .8byte .LVL678 .2byte 0x26 .byte 0x78 .byte 0xc0,0x2 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x40 .byte 0x46 .byte 0x24 .byte 0x1f .byte 0x1a .byte 0x82 .byte 0x8 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x9 .byte 0xf0 .byte 0x24 .byte 0x9 .byte 0xf0 .byte 0x25 .byte 0x21 .byte 0x40 .byte 0x45 .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST451: .8byte .LVL679 .8byte .LVL680 .2byte 0x6 .byte 0xc .4byte 0x3103000 .byte 0x9f .8byte 0 .8byte 0 .LLST452: .8byte .LVL679 .8byte .LVL680 .2byte 0x3 .byte 0x8 .byte 0x52 .byte 0x9f .8byte 0 .8byte 0 .LLST453: .8byte .LVL680 .8byte .LVL686 .2byte 0x6 .byte 0xc .4byte 0x3103000 .byte 0x9f .8byte 0 .8byte 0 .LLST454: .8byte .LVL680 .8byte .LVL686 .2byte 0x3 .byte 0x8 .byte 0x53 .byte 0x9f .8byte 0 .8byte 0 .LLST455: .8byte .LVL681 .8byte .LVL683 .2byte 0x6 .byte 0xc .4byte 0x3103010 .byte 0x9f .8byte 0 .8byte 0 .LLST456: .8byte .LVL682 .8byte .LVL683 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST457: .8byte .LVL684 .8byte .LVL685 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte 0 .8byte 0 .LLST458: .8byte .LVL686 .8byte .LVL687 .2byte 0x6 .byte 0xc .4byte 0x3103000 .byte 0x9f .8byte 0 .8byte 0 .LLST459: .8byte .LVL686 .8byte .LVL687 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST460: .8byte .LVL687 .8byte .LVL689 .2byte 0x6 .byte 0xc .4byte 0x3103000 .byte 0x9f .8byte 0 .8byte 0 .LLST461: .8byte .LVL687 .8byte .LVL688 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x31 .byte 0x21 .byte 0x9f .8byte .LVL688 .8byte .LVL689 .2byte 0x7 .byte 0x78 .byte 0 .byte 0x94 .byte 0x4 .byte 0x31 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST462: .8byte .LVL689 .8byte .LVL729 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte .LVL756 .8byte .LFE57 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte 0 .8byte 0 .LLST463: .8byte .LVL691 .8byte .LVL693 .2byte 0x6 .byte 0xc .4byte 0x3103010 .byte 0x9f .8byte 0 .8byte 0 .LLST464: .8byte .LVL692 .8byte .LVL693 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST465: .8byte .LVL694 .8byte .LVL696 .2byte 0x6 .byte 0xc .4byte 0x70005d4 .byte 0x9f .8byte 0 .8byte 0 .LLST466: .8byte .LVL695 .8byte .LVL696 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST467: .8byte .LVL697 .8byte .LVL699 .2byte 0x6 .byte 0xc .4byte 0x3103010 .byte 0x9f .8byte 0 .8byte 0 .LLST468: .8byte .LVL698 .8byte .LVL699 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST469: .8byte .LVL700 .8byte .LVL702 .2byte 0x6 .byte 0xc .4byte 0x3103018 .byte 0x9f .8byte 0 .8byte 0 .LLST470: .8byte .LVL701 .8byte .LVL702 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST471: .8byte .LVL703 .8byte .LVL705 .2byte 0x6 .byte 0xc .4byte 0x310308c .byte 0x9f .8byte 0 .8byte 0 .LLST472: .8byte .LVL704 .8byte .LVL705 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST473: .8byte .LVL705 .8byte .LVL707 .2byte 0x6 .byte 0xc .4byte 0x310308c .byte 0x9f .8byte 0 .8byte 0 .LLST474: .8byte .LVL705 .8byte .LVL706 .2byte 0x8 .byte 0x7e .byte 0 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL706 .8byte .LVL707 .2byte 0xb .byte 0x82 .byte 0x8c,0x1 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST475: .8byte .LVL707 .8byte .LVL708 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte 0 .8byte 0 .LLST476: .8byte .LVL708 .8byte .LVL710 .2byte 0x6 .byte 0xc .4byte 0x310308c .byte 0x9f .8byte 0 .8byte 0 .LLST477: .8byte .LVL709 .8byte .LVL710 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST478: .8byte .LVL710 .8byte .LVL712 .2byte 0x6 .byte 0xc .4byte 0x310308c .byte 0x9f .8byte 0 .8byte 0 .LLST479: .8byte .LVL710 .8byte .LVL711 .2byte 0x9 .byte 0x7e .byte 0 .byte 0xc .4byte 0x7fffffff .byte 0x1a .byte 0x9f .8byte .LVL711 .8byte .LVL712 .2byte 0xc .byte 0x82 .byte 0x8c,0x1 .byte 0x94 .byte 0x4 .byte 0xc .4byte 0x7fffffff .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST480: .8byte .LVL712 .8byte .LVL713 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte 0 .8byte 0 .LLST481: .8byte .LVL713 .8byte .LVL715 .2byte 0x6 .byte 0xc .4byte 0x3102014 .byte 0x9f .8byte 0 .8byte 0 .LLST482: .8byte .LVL714 .8byte .LVL715 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST483: .8byte .LVL715 .8byte .LVL717 .2byte 0x6 .byte 0xc .4byte 0x3102014 .byte 0x9f .8byte 0 .8byte 0 .LLST484: .8byte .LVL715 .8byte .LVL716 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL716 .8byte .LVL717 .2byte 0xa .byte 0x7e .byte 0x14 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST485: .8byte .LVL717 .8byte .LVL718 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte 0 .8byte 0 .LLST486: .8byte .LVL718 .8byte .LVL720 .2byte 0x6 .byte 0xc .4byte 0x310310c .byte 0x9f .8byte 0 .8byte 0 .LLST487: .8byte .LVL719 .8byte .LVL720 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST488: .8byte .LVL720 .8byte .LVL722 .2byte 0x6 .byte 0xc .4byte 0x310310c .byte 0x9f .8byte 0 .8byte 0 .LLST489: .8byte .LVL720 .8byte .LVL721 .2byte 0x9 .byte 0x7f .byte 0 .byte 0x11 .byte 0xff,0xff,0xff,0x4f .byte 0x1a .byte 0x9f .8byte .LVL721 .8byte .LVL722 .2byte 0xc .byte 0x82 .byte 0x8c,0x2 .byte 0x94 .byte 0x4 .byte 0x11 .byte 0xff,0xff,0xff,0x4f .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST490: .8byte .LVL723 .8byte .LVL725 .2byte 0x6 .byte 0xc .4byte 0x310311c .byte 0x9f .8byte 0 .8byte 0 .LLST491: .8byte .LVL724 .8byte .LVL725 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST492: .8byte .LVL726 .8byte .LVL729 .2byte 0x6 .byte 0xc .4byte 0x310311c .byte 0x9f .8byte 0 .8byte 0 .LLST493: .8byte .LVL726 .8byte .LVL727 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x8 .byte 0x40 .byte 0x21 .byte 0x9f .8byte .LVL727 .8byte .LVL728 .2byte 0x13 .byte 0x82 .byte 0x9c,0x2 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0xb .2byte 0xff3f .byte 0x1a .byte 0x8 .byte 0x40 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST494: .8byte .LVL729 .8byte .LVL730 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST495: .8byte .LVL729 .8byte .LVL730 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST496: .8byte .LVL731 .8byte .LVL733 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST497: .8byte .LVL731 .8byte .LVL732 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x8 .byte 0x80 .byte 0x21 .byte 0x9f .8byte .LVL732 .8byte .LVL733 .2byte 0x13 .byte 0x78 .byte 0x88,0x2 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0xb .2byte 0xff3f .byte 0x1a .byte 0x8 .byte 0x80 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST498: .8byte .LVL733 .8byte .LVL735 .2byte 0x6 .byte 0xc .4byte 0x3103060 .byte 0x9f .8byte 0 .8byte 0 .LLST499: .8byte .LVL734 .8byte .LVL735 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST500: .8byte .LVL735 .8byte .LVL737 .2byte 0x6 .byte 0xc .4byte 0x31030bc .byte 0x9f .8byte 0 .8byte 0 .LLST501: .8byte .LVL736 .8byte .LVL737 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST502: .8byte .LVL740 .8byte .LVL742 .2byte 0x6 .byte 0xc .4byte 0x31030bc .byte 0x9f .8byte 0 .8byte 0 .LLST503: .8byte .LVL740 .8byte .LVL741 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xa .2byte 0x100 .byte 0x21 .byte 0x9f .8byte .LVL741 .8byte .LVL742 .2byte 0x17 .byte 0x78 .byte 0xbc,0x1 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0xb .2byte 0xfef8 .byte 0x1a .byte 0x7e .byte 0 .byte 0x21 .byte 0xa .2byte 0x100 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST504: .8byte .LVL742 .8byte .LVL744 .2byte 0x6 .byte 0xc .4byte 0x310311c .byte 0x9f .8byte 0 .8byte 0 .LLST505: .8byte .LVL743 .8byte .LVL744 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST506: .8byte .LVL744 .8byte .LVL747 .2byte 0x6 .byte 0xc .4byte 0x310311c .byte 0x9f .8byte 0 .8byte 0 .LLST507: .8byte .LVL744 .8byte .LVL745 .2byte 0xd .byte 0x7f .byte 0 .byte 0xc .4byte 0x7fffffff .byte 0x1a .byte 0x40 .byte 0x47 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL745 .8byte .LVL746 .2byte 0x10 .byte 0x78 .byte 0x9c,0x2 .byte 0x94 .byte 0x4 .byte 0xc .4byte 0x7fffffff .byte 0x1a .byte 0x40 .byte 0x47 .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST508: .8byte .LVL747 .8byte .LVL748 .2byte 0x6 .byte 0xc .4byte 0x310311c .byte 0x9f .8byte 0 .8byte 0 .LLST509: .8byte .LVL747 .8byte .LVL748 .2byte 0x5 .byte 0xc .4byte 0x310311c .8byte 0 .8byte 0 .LLST510: .8byte .LVL750 .8byte .LVL751 .2byte 0x6 .byte 0xc .4byte 0x31030c0 .byte 0x9f .8byte 0 .8byte 0 .LLST511: .8byte .LVL750 .8byte .LVL751 .2byte 0x5 .byte 0xc .4byte 0x31030c0 .8byte 0 .8byte 0 .LLST512: .8byte .LVL752 .8byte .LVL754 .2byte 0x6 .byte 0xc .4byte 0x70005d4 .byte 0x9f .8byte 0 .8byte 0 .LLST513: .8byte .LVL753 .8byte .LVL754 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST514: .8byte .LVL756 .8byte .LVL758 .2byte 0x6 .byte 0xc .4byte 0x310310c .byte 0x9f .8byte 0 .8byte 0 .LLST515: .8byte .LVL757 .8byte .LVL758 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST516: .8byte .LVL759 .8byte .LVL761 .2byte 0x6 .byte 0xc .4byte 0x310310c .byte 0x9f .8byte 0 .8byte 0 .LLST517: .8byte .LVL759 .8byte .LVL760 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x46 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL760 .8byte .LVL761 .2byte 0x16 .byte 0x82 .byte 0x8c,0x2 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x11 .byte 0xff,0xff,0xff,0x4f .byte 0x1a .byte 0x40 .byte 0x46 .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST518: .8byte .LVL761 .8byte .LVL762 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte 0 .8byte 0 .LLST519: .8byte .LVL762 .8byte .LVL764 .2byte 0x6 .byte 0xc .4byte 0x3103004 .byte 0x9f .8byte 0 .8byte 0 .LLST520: .8byte .LVL763 .8byte .LVL764 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST521: .8byte .LVL764 .8byte .LVL799 .2byte 0x6 .byte 0xc .4byte 0x3103004 .byte 0x9f .8byte 0 .8byte 0 .LLST522: .8byte .LVL764 .8byte .LVL765 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x31 .byte 0x21 .byte 0x9f .8byte .LVL765 .8byte .LVL766 .2byte 0x7 .byte 0x82 .byte 0x4 .byte 0x94 .byte 0x4 .byte 0x31 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST523: .8byte .LVL767 .8byte .LVL769 .2byte 0x6 .byte 0xc .4byte 0x3103018 .byte 0x9f .8byte 0 .8byte 0 .LLST524: .8byte .LVL768 .8byte .LVL769 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST525: .8byte .LVL770 .8byte .LVL772 .2byte 0x6 .byte 0xc .4byte 0x7010250 .byte 0x9f .8byte 0 .8byte 0 .LLST526: .8byte .LVL771 .8byte .LVL772 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST527: .8byte .LVL772 .8byte .LVL774 .2byte 0x6 .byte 0xc .4byte 0x7010250 .byte 0x9f .8byte 0 .8byte 0 .LLST528: .8byte .LVL772 .8byte .LVL773 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x9 .byte 0xfe .byte 0x1a .byte 0x9f .8byte .LVL773 .8byte .LVL774 .2byte 0x9 .byte 0x7e .byte 0xd0,0x4 .byte 0x94 .byte 0x4 .byte 0x9 .byte 0xfe .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST529: .8byte .LVL774 .8byte .LVL775 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte 0 .8byte 0 .LLST530: .8byte .LVL775 .8byte .LVL777 .2byte 0x6 .byte 0xc .4byte 0x3103004 .byte 0x9f .8byte 0 .8byte 0 .LLST531: .8byte .LVL776 .8byte .LVL777 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST532: .8byte .LVL777 .8byte .LVL799 .2byte 0x6 .byte 0xc .4byte 0x3103004 .byte 0x9f .8byte 0 .8byte 0 .LLST533: .8byte .LVL777 .8byte .LVL778 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x9 .byte 0xfe .byte 0x1a .byte 0x9f .8byte .LVL778 .8byte .LVL779 .2byte 0x8 .byte 0x82 .byte 0x4 .byte 0x94 .byte 0x4 .byte 0x9 .byte 0xfe .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST534: .8byte .LVL780 .8byte .LVL782 .2byte 0x6 .byte 0xc .4byte 0x3103018 .byte 0x9f .8byte 0 .8byte 0 .LLST535: .8byte .LVL781 .8byte .LVL782 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST536: .8byte .LVL783 .8byte .LVL784 .2byte 0x2 .byte 0x3f .byte 0x9f .8byte 0 .8byte 0 .LLST537: .8byte .LVL785 .8byte .LVL787 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST538: .8byte .LVL786 .8byte .LVL787 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST539: .8byte .LVL787 .8byte .LVL789 .2byte 0x6 .byte 0xc .4byte 0x3103108 .byte 0x9f .8byte 0 .8byte 0 .LLST540: .8byte .LVL787 .8byte .LVL788 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xb .2byte 0xff3f .byte 0x1a .byte 0x9f .8byte .LVL788 .8byte .LVL789 .2byte 0xa .byte 0x82 .byte 0x88,0x2 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xff3f .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST541: .8byte .LVL789 .8byte .LVL791 .2byte 0x6 .byte 0xc .4byte 0x310310c .byte 0x9f .8byte 0 .8byte 0 .LLST542: .8byte .LVL790 .8byte .LVL791 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST543: .8byte .LVL792 .8byte .LVL794 .2byte 0x6 .byte 0xc .4byte 0x310310c .byte 0x9f .8byte 0 .8byte 0 .LLST544: .8byte .LVL792 .8byte .LVL793 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x45 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL793 .8byte .LVL794 .2byte 0x16 .byte 0x82 .byte 0x8c,0x2 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x11 .byte 0xff,0xff,0xff,0x4f .byte 0x1a .byte 0x40 .byte 0x45 .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST545: .8byte .LVL794 .8byte .LVL795 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte 0 .8byte 0 .LLST546: .8byte .LVL795 .8byte .LVL799 .2byte 0x6 .byte 0xc .4byte 0x3103000 .byte 0x9f .8byte 0 .8byte 0 .LLST547: .8byte .LVL795 .8byte .LVL799 .2byte 0x4 .byte 0xa .2byte 0x401 .byte 0x9f .8byte 0 .8byte 0 .LLST548: .8byte .LVL796 .8byte .LVL798 .2byte 0x6 .byte 0xc .4byte 0x3103010 .byte 0x9f .8byte 0 .8byte 0 .LLST549: .8byte .LVL797 .8byte .LVL798 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST376: .8byte .LVL581 .8byte .LVL585 .2byte 0x1 .byte 0x5a .8byte .LVL585 .8byte .LVL589 .2byte 0x1 .byte 0x59 .8byte .LVL589 .8byte .LVL590 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte .LVL590 .8byte .LFE56 .2byte 0x1 .byte 0x59 .8byte 0 .8byte 0 .LLST377: .8byte .LVL584 .8byte .LVL588 .2byte 0x1 .byte 0x58 .8byte .LVL590 .8byte .LVL591 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST378: .8byte .LVL581 .8byte .LVL583 .2byte 0x6 .byte 0xc .4byte 0x3006228 .byte 0x9f .8byte 0 .8byte 0 .LLST379: .8byte .LVL582 .8byte .LVL583 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST380: .8byte .LVL593 .8byte .LVL594 .2byte 0x6 .byte 0xc .4byte 0x3102500 .byte 0x9f .8byte 0 .8byte 0 .LLST381: .8byte .LVL593 .8byte .LVL594 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST382: .8byte .LVL595 .8byte .LVL596 .2byte 0x6 .byte 0xc .4byte 0x3102504 .byte 0x9f .8byte 0 .8byte 0 .LLST383: .8byte .LVL595 .8byte .LVL596 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST384: .8byte .LVL597 .8byte .LVL598 .2byte 0x6 .byte 0xc .4byte 0x3102508 .byte 0x9f .8byte 0 .8byte 0 .LLST385: .8byte .LVL597 .8byte .LVL598 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST386: .8byte .LVL599 .8byte .LVL600 .2byte 0x6 .byte 0xc .4byte 0x310250c .byte 0x9f .8byte 0 .8byte 0 .LLST387: .8byte .LVL599 .8byte .LVL600 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST346: .8byte .LVL533 .8byte .LVL534 .2byte 0x1 .byte 0x5f .8byte .LVL534 .8byte .LVL535 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xa .2byte 0x2000 .byte 0x21 .byte 0x9f .8byte .LVL535 .8byte .LVL536 .2byte 0x13 .byte 0x7e .byte 0x8 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0xb .2byte 0xc0ff .byte 0x1a .byte 0xa .2byte 0x2000 .byte 0x21 .byte 0x9f .8byte .LVL538 .8byte .LVL539 .2byte 0x1 .byte 0x5f .8byte .LVL539 .8byte .LVL540 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x42 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL540 .8byte .LVL541 .2byte 0xa .byte 0x7f .byte 0 .byte 0x7e .byte 0 .byte 0x21 .byte 0x40 .byte 0x42 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL541 .8byte .LVL542 .2byte 0x1b .byte 0xc .4byte 0x3102000 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x11 .byte 0xff,0x9f,0x80,0x78 .byte 0x1a .byte 0x7e .byte 0 .byte 0x21 .byte 0x40 .byte 0x42 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL542 .8byte .LVL543 .2byte 0x7 .byte 0x7e .byte 0 .byte 0x40 .byte 0x42 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL544 .8byte .LVL546 .2byte 0x1 .byte 0x5f .8byte .LVL546 .8byte .LVL547 .2byte 0x2 .byte 0x7e .byte 0 .8byte .LVL547 .8byte .LVL550 .2byte 0x5 .byte 0xc .4byte 0x3102000 .8byte .LVL550 .8byte .LVL551 .2byte 0x2 .byte 0x81 .byte 0 .8byte .LVL553 .8byte .LVL554 .2byte 0x10 .byte 0x7a .byte 0x14 .byte 0x94 .byte 0x4 .byte 0x3c .byte 0x25 .byte 0x33 .byte 0x1a .byte 0x7f .byte 0 .byte 0xb .2byte 0xf000 .byte 0x1a .byte 0x21 .byte 0x9f .8byte .LVL554 .8byte .LVL555 .2byte 0x12 .byte 0x7a .byte 0x14 .byte 0x94 .byte 0x4 .byte 0x3c .byte 0x25 .byte 0x33 .byte 0x1a .byte 0x81 .byte 0 .byte 0x94 .byte 0x4 .byte 0xb .2byte 0xf000 .byte 0x1a .byte 0x21 .byte 0x9f .8byte .LVL555 .8byte .LVL556 .2byte 0x1 .byte 0x5d .8byte .LVL556 .8byte .LVL557 .2byte 0x1 .byte 0x5f .8byte .LVL557 .8byte .LVL558 .2byte 0x1 .byte 0x5d .8byte .LVL558 .8byte .LVL559 .2byte 0x7 .byte 0x7e .byte 0 .byte 0x40 .byte 0x42 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL560 .8byte .LVL561 .2byte 0x1 .byte 0x5f .8byte .LVL561 .8byte .LVL565 .2byte 0x1 .byte 0x5d .8byte .LVL565 .8byte .LVL566 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x31 .byte 0x1a .byte 0x9f .8byte .LVL566 .8byte .LVL572 .2byte 0xa .byte 0xc .4byte 0x3102000 .byte 0x94 .byte 0x4 .byte 0x31 .byte 0x1a .byte 0x9f .8byte .LVL572 .8byte .LVL574 .2byte 0x7 .byte 0x7e .byte 0 .byte 0x94 .byte 0x4 .byte 0x31 .byte 0x1a .byte 0x9f .8byte .LVL574 .8byte .LVL575 .2byte 0x1 .byte 0x5d .8byte .LVL575 .8byte .LVL578 .2byte 0x1 .byte 0x5f .8byte .LVL578 .8byte .LVL579 .2byte 0x1 .byte 0x5d .8byte .LVL579 .8byte .LVL580 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST347: .8byte .LVL567 .8byte .LVL573 .2byte 0x1 .byte 0x5d .8byte .LVL573 .8byte .LFE55 .2byte 0x5 .byte 0xc .4byte 0x3103120 .8byte 0 .8byte 0 .LLST348: .8byte .LVL531 .8byte .LVL551 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL558 .8byte .LVL560 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte 0 .8byte 0 .LLST349: .8byte .LVL531 .8byte .LVL548 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL548 .8byte .LVL549 .2byte 0x1 .byte 0x5b .8byte .LVL558 .8byte .LVL560 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte 0 .8byte 0 .LLST350: .8byte .LVL531 .8byte .LVL533 .2byte 0x6 .byte 0xc .4byte 0x3102008 .byte 0x9f .8byte 0 .8byte 0 .LLST351: .8byte .LVL532 .8byte .LVL533 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST352: .8byte .LVL534 .8byte .LVL536 .2byte 0x6 .byte 0xc .4byte 0x3102008 .byte 0x9f .8byte 0 .8byte 0 .LLST353: .8byte .LVL534 .8byte .LVL535 .2byte 0x7 .byte 0x7f .byte 0 .byte 0xa .2byte 0x2000 .byte 0x21 .byte 0x9f .8byte .LVL535 .8byte .LVL536 .2byte 0x13 .byte 0x7e .byte 0x8 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0xb .2byte 0xc0ff .byte 0x1a .byte 0xa .2byte 0x2000 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST354: .8byte .LVL536 .8byte .LVL538 .2byte 0x6 .byte 0xc .4byte 0x3102000 .byte 0x9f .8byte 0 .8byte 0 .LLST355: .8byte .LVL537 .8byte .LVL538 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST356: .8byte .LVL544 .8byte .LVL545 .2byte 0x6 .byte 0xc .4byte 0x3102000 .byte 0x9f .8byte 0 .8byte 0 .LLST357: .8byte .LVL544 .8byte .LVL545 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST358: .8byte .LVL551 .8byte .LVL553 .2byte 0x1 .byte 0x61 .8byte 0 .8byte 0 .LLST359: .8byte .LVL552 .8byte .LVL553 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST360: .8byte .LVL561 .8byte .LVL562 .2byte 0x1 .byte 0x61 .8byte 0 .8byte 0 .LLST361: .8byte .LVL561 .8byte .LVL562 .2byte 0x1 .byte 0x5d .8byte 0 .8byte 0 .LLST362: .8byte .LVL563 .8byte .LVL565 .2byte 0x6 .byte 0xc .4byte 0x3102000 .byte 0x9f .8byte 0 .8byte 0 .LLST363: .8byte .LVL564 .8byte .LVL565 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST364: .8byte .LVL567 .8byte .LVL568 .2byte 0x6 .byte 0xc .4byte 0x3103120 .byte 0x9f .8byte 0 .8byte 0 .LLST365: .8byte .LVL567 .8byte .LVL568 .2byte 0x1 .byte 0x5d .8byte 0 .8byte 0 .LLST366: .8byte .LVL569 .8byte .LVL570 .2byte 0x6 .byte 0xc .4byte 0x31033c4 .byte 0x9f .8byte 0 .8byte 0 .LLST367: .8byte .LVL569 .8byte .LVL570 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte 0 .8byte 0 .LLST368: .8byte .LVL571 .8byte .LVL574 .2byte 0x6 .byte 0xc .4byte 0x3102000 .byte 0x9f .8byte 0 .8byte 0 .LLST369: .8byte .LVL573 .8byte .LVL574 .2byte 0x1 .byte 0x5d .8byte 0 .8byte 0 .LLST370: .8byte .LVL575 .8byte .LVL576 .2byte 0x6 .byte 0xc .4byte 0x3102000 .byte 0x9f .8byte 0 .8byte 0 .LLST371: .8byte .LVL575 .8byte .LVL576 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST372: .8byte .LVL576 .8byte .LVL578 .2byte 0x6 .byte 0xc .4byte 0x3102004 .byte 0x9f .8byte 0 .8byte 0 .LLST373: .8byte .LVL577 .8byte .LVL578 .2byte 0x1 .byte 0x5d .8byte 0 .8byte 0 .LLST374: .8byte .LVL579 .8byte .LVL580 .2byte 0x6 .byte 0xc .4byte 0x3102004 .byte 0x9f .8byte 0 .8byte 0 .LLST375: .8byte .LVL579 .8byte .LVL580 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST288: .8byte .LVL476 .8byte .LVL497 .2byte 0x1 .byte 0x5a .8byte .LVL497 .8byte .LVL530 .2byte 0x1 .byte 0x62 .8byte .LVL530 .8byte .LFE54 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte 0 .8byte 0 .LLST289: .8byte .LVL476 .8byte .LVL478 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL478 .8byte .LVL479 .2byte 0xa .byte 0x7f .byte 0 .byte 0x11 .byte 0xff,0xff,0xff,0xff,0x7b .byte 0x1a .byte 0x9f .8byte .LVL479 .8byte .LVL480 .2byte 0xd .byte 0x79 .byte 0xc0,0xa .byte 0x94 .byte 0x4 .byte 0x11 .byte 0xff,0xff,0xff,0xff,0x7b .byte 0x1a .byte 0x9f .8byte .LVL482 .8byte .LVL484 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x9 .byte 0xfe .byte 0x1a .byte 0x9f .8byte .LVL484 .8byte .LVL485 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x11 .byte 0xfe,0xff,0x7b .byte 0x1a .byte 0x9f .8byte .LVL488 .8byte .LVL491 .2byte 0xa .byte 0x7f .byte 0 .byte 0x11 .byte 0xff,0xff,0xff,0xff,0x7b .byte 0x1a .byte 0x9f .8byte .LVL492 .8byte .LVL494 .2byte 0x1 .byte 0x5f .8byte .LVL494 .8byte .LVL495 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x47 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL495 .8byte .LVL496 .2byte 0xa .byte 0x78 .byte 0x80,0x70 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x47 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL505 .8byte .LVL506 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x3c .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL506 .8byte .LVL507 .2byte 0xa .byte 0x78 .byte 0x8c,0x70 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x3c .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL509 .8byte .LVL510 .2byte 0x7 .byte 0x7e .byte 0 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL510 .8byte .LVL511 .2byte 0xa .byte 0x79 .byte 0xc0,0xa .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL513 .8byte .LVL514 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL514 .8byte .LVL515 .2byte 0xa .byte 0x78 .byte 0x80,0x70 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL518 .8byte .LVL519 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x31 .byte 0x21 .byte 0x9f .8byte .LVL519 .8byte .LVL520 .2byte 0x8 .byte 0x78 .byte 0x8c,0x70 .byte 0x94 .byte 0x4 .byte 0x31 .byte 0x21 .byte 0x9f .8byte .LVL522 .8byte .LVL524 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL524 .8byte .LVL525 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x4e .byte 0x4a .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST290: .8byte .LVL476 .8byte .LVL499 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL499 .8byte .LVL500 .2byte 0x1 .byte 0x5a .8byte 0 .8byte 0 .LLST291: .8byte .LVL476 .8byte .LVL478 .2byte 0x6 .byte 0xc .4byte 0x2001540 .byte 0x9f .8byte 0 .8byte 0 .LLST292: .8byte .LVL477 .8byte .LVL478 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST293: .8byte .LVL478 .8byte .LVL480 .2byte 0x6 .byte 0xc .4byte 0x2001540 .byte 0x9f .8byte 0 .8byte 0 .LLST294: .8byte .LVL478 .8byte .LVL479 .2byte 0xa .byte 0x7f .byte 0 .byte 0x11 .byte 0xff,0xff,0xff,0xff,0x7b .byte 0x1a .byte 0x9f .8byte .LVL479 .8byte .LVL480 .2byte 0xd .byte 0x79 .byte 0xc0,0xa .byte 0x94 .byte 0x4 .byte 0x11 .byte 0xff,0xff,0xff,0xff,0x7b .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST295: .8byte .LVL480 .8byte .LVL482 .2byte 0x6 .byte 0xc .4byte 0x200180c .byte 0x9f .8byte 0 .8byte 0 .LLST296: .8byte .LVL481 .8byte .LVL482 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST297: .8byte .LVL482 .8byte .LVL483 .2byte 0x6 .byte 0xc .4byte 0x200180c .byte 0x9f .8byte 0 .8byte 0 .LLST298: .8byte .LVL482 .8byte .LVL483 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x9 .byte 0xfe .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST299: .8byte .LVL483 .8byte .LVL484 .2byte 0x6 .byte 0xc .4byte 0x200180c .byte 0x9f .8byte 0 .8byte 0 .LLST300: .8byte .LVL483 .8byte .LVL484 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x9 .byte 0xfe .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST301: .8byte .LVL484 .8byte .LVL486 .2byte 0x6 .byte 0xc .4byte 0x200180c .byte 0x9f .8byte 0 .8byte 0 .LLST302: .8byte .LVL484 .8byte .LVL485 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x11 .byte 0xfe,0xff,0x7b .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST303: .8byte .LVL486 .8byte .LVL488 .2byte 0x6 .byte 0xc .4byte 0x2001800 .byte 0x9f .8byte 0 .8byte 0 .LLST304: .8byte .LVL487 .8byte .LVL488 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST305: .8byte .LVL488 .8byte .LVL489 .2byte 0x6 .byte 0xc .4byte 0x2001800 .byte 0x9f .8byte 0 .8byte 0 .LLST306: .8byte .LVL488 .8byte .LVL489 .2byte 0xa .byte 0x7f .byte 0 .byte 0x11 .byte 0xff,0xff,0xff,0xff,0x7b .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST307: .8byte .LVL489 .8byte .LVL490 .2byte 0x6 .byte 0xc .4byte 0x2001800 .byte 0x9f .8byte 0 .8byte 0 .LLST308: .8byte .LVL489 .8byte .LVL490 .2byte 0xa .byte 0x7f .byte 0 .byte 0x11 .byte 0xff,0xff,0xff,0xff,0x7b .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST309: .8byte .LVL492 .8byte .LVL493 .2byte 0x6 .byte 0xc .4byte 0x2001800 .byte 0x9f .8byte 0 .8byte 0 .LLST310: .8byte .LVL492 .8byte .LVL493 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST311: .8byte .LVL493 .8byte .LVL494 .2byte 0x6 .byte 0xc .4byte 0x2001800 .byte 0x9f .8byte 0 .8byte 0 .LLST312: .8byte .LVL493 .8byte .LVL494 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST313: .8byte .LVL494 .8byte .LVL496 .2byte 0x6 .byte 0xc .4byte 0x2001800 .byte 0x9f .8byte 0 .8byte 0 .LLST314: .8byte .LVL494 .8byte .LVL495 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x47 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL495 .8byte .LVL496 .2byte 0xa .byte 0x78 .byte 0x80,0x70 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x47 .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST315: .8byte .LVL496 .8byte .LVL498 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte 0 .8byte 0 .LLST316: .8byte .LVL501 .8byte .LVL502 .2byte 0x3 .byte 0x8 .byte 0x64 .byte 0x9f .8byte 0 .8byte 0 .LLST317: .8byte .LVL503 .8byte .LVL505 .2byte 0x6 .byte 0xc .4byte 0x200180c .byte 0x9f .8byte 0 .8byte 0 .LLST318: .8byte .LVL504 .8byte .LVL505 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST319: .8byte .LVL505 .8byte .LVL507 .2byte 0x6 .byte 0xc .4byte 0x200180c .byte 0x9f .8byte 0 .8byte 0 .LLST320: .8byte .LVL505 .8byte .LVL506 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x3c .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL506 .8byte .LVL507 .2byte 0xa .byte 0x78 .byte 0x8c,0x70 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x3c .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST321: .8byte .LVL507 .8byte .LVL509 .2byte 0x6 .byte 0xc .4byte 0x2001540 .byte 0x9f .8byte 0 .8byte 0 .LLST322: .8byte .LVL508 .8byte .LVL509 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST323: .8byte .LVL509 .8byte .LVL511 .2byte 0x6 .byte 0xc .4byte 0x2001540 .byte 0x9f .8byte 0 .8byte 0 .LLST324: .8byte .LVL509 .8byte .LVL510 .2byte 0x7 .byte 0x7e .byte 0 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL510 .8byte .LVL511 .2byte 0xa .byte 0x79 .byte 0xc0,0xa .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST325: .8byte .LVL511 .8byte .LVL513 .2byte 0x6 .byte 0xc .4byte 0x2001800 .byte 0x9f .8byte 0 .8byte 0 .LLST326: .8byte .LVL512 .8byte .LVL513 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST327: .8byte .LVL513 .8byte .LVL515 .2byte 0x6 .byte 0xc .4byte 0x2001800 .byte 0x9f .8byte 0 .8byte 0 .LLST328: .8byte .LVL513 .8byte .LVL514 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL514 .8byte .LVL515 .2byte 0xa .byte 0x78 .byte 0x80,0x70 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST329: .8byte .LVL515 .8byte .LVL516 .2byte 0x2 .byte 0x35 .byte 0x9f .8byte 0 .8byte 0 .LLST330: .8byte .LVL516 .8byte .LVL518 .2byte 0x6 .byte 0xc .4byte 0x200180c .byte 0x9f .8byte 0 .8byte 0 .LLST331: .8byte .LVL517 .8byte .LVL518 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST332: .8byte .LVL518 .8byte .LVL520 .2byte 0x6 .byte 0xc .4byte 0x200180c .byte 0x9f .8byte 0 .8byte 0 .LLST333: .8byte .LVL518 .8byte .LVL519 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x31 .byte 0x21 .byte 0x9f .8byte .LVL519 .8byte .LVL520 .2byte 0x8 .byte 0x78 .byte 0x8c,0x70 .byte 0x94 .byte 0x4 .byte 0x31 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST334: .8byte .LVL520 .8byte .LVL522 .2byte 0x6 .byte 0xc .4byte 0x2001800 .byte 0x9f .8byte 0 .8byte 0 .LLST335: .8byte .LVL521 .8byte .LVL522 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST336: .8byte .LVL522 .8byte .LVL523 .2byte 0x6 .byte 0xc .4byte 0x2001800 .byte 0x9f .8byte 0 .8byte 0 .LLST337: .8byte .LVL522 .8byte .LVL523 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST338: .8byte .LVL523 .8byte .LVL524 .2byte 0x6 .byte 0xc .4byte 0x2001800 .byte 0x9f .8byte 0 .8byte 0 .LLST339: .8byte .LVL523 .8byte .LVL524 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST340: .8byte .LVL524 .8byte .LVL526 .2byte 0x6 .byte 0xc .4byte 0x2001800 .byte 0x9f .8byte 0 .8byte 0 .LLST341: .8byte .LVL524 .8byte .LVL525 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x4e .byte 0x4a .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST342: .8byte .LVL526 .8byte .LVL527 .2byte 0x2 .byte 0x35 .byte 0x9f .8byte 0 .8byte 0 .LLST343: .8byte .LVL527 .8byte .LVL528 .2byte 0x6 .byte 0xc .4byte 0x310300c .byte 0x9f .8byte 0 .8byte 0 .LLST344: .8byte .LVL527 .8byte .LVL528 .2byte 0x4 .byte 0xa .2byte 0x8000 .byte 0x9f .8byte 0 .8byte 0 .LLST345: .8byte .LVL528 .8byte .LVL529 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte 0 .8byte 0 .LLST264: .8byte .LVL448 .8byte .LVL463 .2byte 0x1 .byte 0x5a .8byte .LVL463 .8byte .LVL475 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte .LVL475 .8byte .LFE53 .2byte 0x1 .byte 0x5a .8byte 0 .8byte 0 .LLST265: .8byte .LVL448 .8byte .LVL464-1 .2byte 0x1 .byte 0x5b .8byte .LVL464-1 .8byte .LVL475 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0x9f .8byte .LVL475 .8byte .LFE53 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST266: .8byte .LVL448 .8byte .LVL452 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL452 .8byte .LVL453 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x11 .byte 0xfc,0x81,0x60 .byte 0x1a .byte 0x9f .8byte .LVL453 .8byte .LVL454 .2byte 0xa .byte 0x7e .byte 0x10 .byte 0x94 .byte 0x4 .byte 0x11 .byte 0xfc,0x81,0x60 .byte 0x1a .byte 0x9f .8byte .LVL454 .8byte .LVL458 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL466 .8byte .LVL467 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x47 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL467 .8byte .LVL468 .2byte 0x9 .byte 0x79 .byte 0 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x47 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL470 .8byte .LVL471 .2byte 0x9 .byte 0x7f .byte 0 .byte 0x11 .byte 0xff,0xff,0xff,0x67 .byte 0x1a .byte 0x9f .8byte .LVL471 .8byte .LVL473 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL473 .8byte .LVL474 .2byte 0x17 .byte 0x7d .byte 0x80,0x70 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x11 .byte 0xfc,0xf9,0xff,0x67 .byte 0x1a .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL475 .8byte .LFE53 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte 0 .8byte 0 .LLST267: .8byte .LVL448 .8byte .LVL450 .2byte 0x2 .byte 0x3c .byte 0x9f .8byte .LVL450 .8byte .LVL472 .2byte 0x1 .byte 0x58 .8byte .LVL475 .8byte .LFE53 .2byte 0x2 .byte 0x3c .byte 0x9f .8byte 0 .8byte 0 .LLST268: .8byte .LVL449 .8byte .LVL450 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST269: .8byte .LVL450 .8byte .LVL452 .2byte 0x6 .byte 0xc .4byte 0x2001010 .byte 0x9f .8byte 0 .8byte 0 .LLST270: .8byte .LVL451 .8byte .LVL452 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST271: .8byte .LVL454 .8byte .LVL455 .2byte 0x6 .byte 0xc .4byte 0x2001010 .byte 0x9f .8byte 0 .8byte 0 .LLST272: .8byte .LVL454 .8byte .LVL455 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST273: .8byte .LVL456 .8byte .LVL457 .2byte 0x6 .byte 0xc .4byte 0x2001010 .byte 0x9f .8byte 0 .8byte 0 .LLST274: .8byte .LVL456 .8byte .LVL457 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x40 .byte 0x4a .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST275: .8byte .LVL457 .8byte .LVL475 .2byte 0x6 .byte 0xc .4byte 0x2001010 .byte 0x9f .8byte 0 .8byte 0 .LLST276: .8byte .LVL457 .8byte .LVL458 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x40 .byte 0x49 .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST277: .8byte .LVL459 .8byte .LVL461 .2byte 0x6 .byte 0xc .4byte 0x2001010 .byte 0x9f .8byte 0 .8byte 0 .LLST278: .8byte .LVL460 .8byte .LVL461 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST279: .8byte .LVL462 .8byte .LVL464 .2byte 0x2 .byte 0x44 .byte 0x9f .8byte 0 .8byte 0 .LLST280: .8byte .LVL464 .8byte .LVL466 .2byte 0x6 .byte 0xc .4byte 0x2001010 .byte 0x9f .8byte 0 .8byte 0 .LLST281: .8byte .LVL465 .8byte .LVL466 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST282: .8byte .LVL466 .8byte .LVL468 .2byte 0x6 .byte 0xc .4byte 0x2001010 .byte 0x9f .8byte 0 .8byte 0 .LLST283: .8byte .LVL466 .8byte .LVL467 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x47 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL467 .8byte .LVL468 .2byte 0x9 .byte 0x79 .byte 0 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x47 .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST284: .8byte .LVL468 .8byte .LVL470 .2byte 0x6 .byte 0xc .4byte 0x2001800 .byte 0x9f .8byte 0 .8byte 0 .LLST285: .8byte .LVL469 .8byte .LVL470 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST286: .8byte .LVL471 .8byte .LVL474 .2byte 0x6 .byte 0xc .4byte 0x2001800 .byte 0x9f .8byte 0 .8byte 0 .LLST287: .8byte .LVL471 .8byte .LVL473 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL473 .8byte .LVL474 .2byte 0x17 .byte 0x7d .byte 0x80,0x70 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x11 .byte 0xfc,0xf9,0xff,0x67 .byte 0x1a .byte 0x40 .byte 0x4b .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST247: .8byte .LVL424 .8byte .LVL437 .2byte 0x1 .byte 0x5a .8byte .LVL437 .8byte .LVL444 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte .LVL444 .8byte .LFE52 .2byte 0x1 .byte 0x5a .8byte 0 .8byte 0 .LLST248: .8byte .LVL424 .8byte .LVL438-1 .2byte 0x1 .byte 0x5b .8byte .LVL438-1 .8byte .LVL443 .2byte 0x1 .byte 0x58 .8byte .LVL443 .8byte .LVL444 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0x9f .8byte .LVL444 .8byte .LFE52 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST249: .8byte .LVL424 .8byte .LVL438-1 .2byte 0x1 .byte 0x5c .8byte .LVL438-1 .8byte .LFE52 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5c .byte 0x9f .8byte 0 .8byte 0 .LLST250: .8byte .LVL427 .8byte .LVL428 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x31 .byte 0x25 .byte 0x31 .byte 0x1a .byte 0x9f .8byte .LVL428 .8byte .LVL433 .2byte 0x9 .byte 0x78 .byte 0 .byte 0x94 .byte 0x4 .byte 0x31 .byte 0x25 .byte 0x31 .byte 0x1a .byte 0x9f .8byte .LVL433 .8byte .LVL436 .2byte 0xa .byte 0x7a .byte 0xdc,0 .byte 0x94 .byte 0x4 .byte 0x44 .byte 0x25 .byte 0x37 .byte 0x1a .byte 0x9f .8byte .LVL440 .8byte .LVL441 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x44 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL441 .8byte .LVL442 .2byte 0x9 .byte 0x78 .byte 0 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x44 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL444 .8byte .LFE52 .2byte 0xa .byte 0x7a .byte 0xdc,0 .byte 0x94 .byte 0x4 .byte 0x44 .byte 0x25 .byte 0x37 .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST251: .8byte .LVL425 .8byte .LVL427 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST252: .8byte .LVL426 .8byte .LVL427 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST253: .8byte .LVL430 .8byte .LVL431 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST254: .8byte .LVL431 .8byte .LVL432 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x3f .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL432 .8byte .LVL433 .2byte 0x9 .byte 0x7c .byte 0 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x3f .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST255: .8byte .LVL434 .8byte .LVL435 .2byte 0x6 .byte 0x9e .byte 0x4 .4byte 0xe486cccc .8byte 0 .8byte 0 .LLST256: .8byte .LVL436 .8byte .LVL438 .2byte 0x2 .byte 0x44 .byte 0x9f .8byte 0 .8byte 0 .LLST257: .8byte .LVL438 .8byte .LVL440 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST258: .8byte .LVL439 .8byte .LVL440 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST259: .8byte .LVL440 .8byte .LVL442 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST260: .8byte .LVL440 .8byte .LVL441 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x44 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL441 .8byte .LVL442 .2byte 0x9 .byte 0x78 .byte 0 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x44 .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST261: .8byte .LVL444 .8byte .LVL445 .2byte 0x6 .byte 0x9e .byte 0x4 .4byte 0xe9069999 .8byte 0 .8byte 0 .LLST262: .8byte .LVL445 .8byte .LVL446 .2byte 0x6 .byte 0x9e .byte 0x4 .4byte 0xed866666 .8byte 0 .8byte 0 .LLST263: .8byte .LVL446 .8byte .LVL447 .2byte 0x6 .byte 0x9e .byte 0x4 .4byte 0xf5860000 .8byte 0 .8byte 0 .LLST224: .8byte .LVL388 .8byte .LVL411 .2byte 0x1 .byte 0x5a .8byte .LVL411 .8byte .LVL422 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte .LVL422 .8byte .LVL423 .2byte 0x1 .byte 0x5a .8byte .LVL423 .8byte .LFE51 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte 0 .8byte 0 .LLST225: .8byte .LVL388 .8byte .LVL412-1 .2byte 0x1 .byte 0x5b .8byte .LVL412-1 .8byte .LVL422 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0x9f .8byte .LVL422 .8byte .LFE51 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST226: .8byte .LVL388 .8byte .LVL412-1 .2byte 0x1 .byte 0x5c .8byte .LVL412-1 .8byte .LVL420 .2byte 0x1 .byte 0x59 .8byte .LVL420 .8byte .LVL422 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5c .byte 0x9f .8byte .LVL422 .8byte .LFE51 .2byte 0x1 .byte 0x5c .8byte 0 .8byte 0 .LLST227: .8byte .LVL388 .8byte .LVL397 .2byte 0x1 .byte 0x5d .8byte .LVL397 .8byte .LVL419 .2byte 0x1 .byte 0x58 .8byte .LVL419 .8byte .LVL422 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5d .byte 0x9f .8byte .LVL422 .8byte .LFE51 .2byte 0x1 .byte 0x5d .8byte 0 .8byte 0 .LLST228: .8byte .LVL388 .8byte .LVL399 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL399 .8byte .LVL400 .2byte 0x22 .byte 0x7b .byte 0 .byte 0xf7 .byte 0x29 .byte 0xf7 .byte 0x30 .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x41c00000 .byte 0x1b .byte 0x7e .byte 0 .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0x30 .byte 0x1c .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x48000000 .byte 0x1e .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0 .byte 0x9f .8byte .LVL400 .8byte .LVL401 .2byte 0x1f .byte 0xf5 .byte 0x2f .byte 0x30 .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x41c00000 .byte 0x1b .byte 0x7e .byte 0 .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0x30 .byte 0x1c .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x48000000 .byte 0x1e .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0 .byte 0x9f .8byte .LVL401 .8byte .LVL407 .2byte 0x22 .byte 0x7b .byte 0 .byte 0xf7 .byte 0x29 .byte 0xf7 .byte 0x30 .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x41c00000 .byte 0x1b .byte 0x7e .byte 0 .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0x30 .byte 0x1c .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x48000000 .byte 0x1e .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0 .byte 0x9f .8byte .LVL407 .8byte .LVL412-1 .2byte 0x2a .byte 0x7b .byte 0 .byte 0xf7 .byte 0x29 .byte 0xf7 .byte 0x30 .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x41c00000 .byte 0x1b .byte 0x7b .byte 0 .byte 0xf7 .byte 0x29 .byte 0x48 .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0x30 .byte 0x1c .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x48000000 .byte 0x1e .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0 .byte 0x9f .8byte .LVL412-1 .8byte .LVL421 .2byte 0x2c .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0xf7 .byte 0x29 .byte 0xf7 .byte 0x30 .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x41c00000 .byte 0x1b .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0xf7 .byte 0x29 .byte 0x48 .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0x30 .byte 0x1c .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x48000000 .byte 0x1e .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0 .byte 0x9f .8byte .LVL421 .8byte .LVL422 .2byte 0x1 .byte 0x5a .8byte .LVL422 .8byte .LVL423 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL423 .8byte .LFE51 .2byte 0x1 .byte 0x5a .8byte 0 .8byte 0 .LLST229: .8byte .LVL388 .8byte .LVL389 .2byte 0x2 .byte 0x3c .byte 0x9f .8byte .LVL389 .8byte .LVL407 .2byte 0x1 .byte 0x5e .8byte .LVL407 .8byte .LVL412-1 .2byte 0xb .byte 0x7b .byte 0 .byte 0xf7 .byte 0x29 .byte 0x48 .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0x9f .8byte .LVL412-1 .8byte .LVL422 .2byte 0xc .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0xf7 .byte 0x29 .byte 0x48 .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0x9f .8byte .LVL422 .8byte .LFE51 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST230: .8byte .LVL388 .8byte .LVL399 .2byte 0x6 .byte 0x9e .byte 0x4 .4byte 0 .8byte .LVL399 .8byte .LVL402 .2byte 0x16 .byte 0x7b .byte 0 .byte 0xf7 .byte 0x29 .byte 0xf7 .byte 0x30 .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x41c00000 .byte 0x1b .byte 0x7e .byte 0 .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0x30 .byte 0x1c .byte 0x9f .8byte .LVL402 .8byte .LVL403 .2byte 0x2 .byte 0x90 .byte 0x2f .8byte .LVL403 .8byte .LVL407 .2byte 0x16 .byte 0x7b .byte 0 .byte 0xf7 .byte 0x29 .byte 0xf7 .byte 0x30 .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x41c00000 .byte 0x1b .byte 0x7e .byte 0 .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0x30 .byte 0x1c .byte 0x9f .8byte .LVL407 .8byte .LVL412-1 .2byte 0x1e .byte 0x7b .byte 0 .byte 0xf7 .byte 0x29 .byte 0xf7 .byte 0x30 .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x41c00000 .byte 0x1b .byte 0x7b .byte 0 .byte 0xf7 .byte 0x29 .byte 0x48 .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0x30 .byte 0x1c .byte 0x9f .8byte .LVL412-1 .8byte .LVL422 .2byte 0x20 .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0xf7 .byte 0x29 .byte 0xf7 .byte 0x30 .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x41c00000 .byte 0x1b .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0xf7 .byte 0x29 .byte 0x48 .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0x30 .byte 0x1c .byte 0x9f .8byte .LVL422 .8byte .LFE51 .2byte 0x6 .byte 0x9e .byte 0x4 .4byte 0 .8byte 0 .8byte 0 .LLST231: .8byte .LVL392 .8byte .LVL393 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x31 .byte 0x25 .byte 0x31 .byte 0x1a .byte 0x9f .8byte .LVL393 .8byte .LVL399 .2byte 0x9 .byte 0x79 .byte 0 .byte 0x94 .byte 0x4 .byte 0x31 .byte 0x25 .byte 0x31 .byte 0x1a .byte 0x9f .8byte .LVL406 .8byte .LVL408 .2byte 0x1 .byte 0x5f .8byte .LVL408 .8byte .LVL409 .2byte 0xa .byte 0x7f .byte 0 .byte 0x11 .byte 0x80,0x80,0x98,0x80,0x7e .byte 0x21 .byte 0x9f .8byte .LVL409 .8byte .LVL410 .2byte 0x12 .byte 0x78 .byte 0 .byte 0x94 .byte 0x4 .byte 0xc .4byte 0x9ffff .byte 0x1a .byte 0x11 .byte 0x80,0x80,0x98,0x80,0x7e .byte 0x21 .byte 0x9f .8byte .LVL410 .8byte .LVL412-1 .2byte 0x15 .byte 0xf5 .byte 0x2f .byte 0x30 .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0 .byte 0xc .4byte 0x9ffff .byte 0x1a .byte 0x11 .byte 0x80,0x80,0x98,0x80,0x7e .byte 0x21 .byte 0x9f .8byte .LVL412-1 .8byte .LVL414 .2byte 0x39 .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0xf7 .byte 0x29 .byte 0xf7 .byte 0x30 .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x41c00000 .byte 0x1b .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0xf7 .byte 0x29 .byte 0x48 .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0x30 .byte 0x1c .byte 0xf4 .byte 0x30 .byte 0x4 .4byte 0x48000000 .byte 0x1e .byte 0xf7 .byte 0x37 .byte 0xf7 .byte 0 .byte 0xc .4byte 0x9ffff .byte 0x1a .byte 0x11 .byte 0x80,0x80,0x98,0x80,0x7e .byte 0x21 .byte 0x9f .8byte .LVL414 .8byte .LVL415 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x44 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL415 .8byte .LVL416 .2byte 0x9 .byte 0x79 .byte 0 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x44 .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST232: .8byte .LVL390 .8byte .LVL392 .2byte 0x1 .byte 0x59 .8byte 0 .8byte 0 .LLST233: .8byte .LVL391 .8byte .LVL392 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST234: .8byte .LVL394 .8byte .LVL396 .2byte 0x9 .byte 0x7d .byte 0 .byte 0xc .4byte 0xffffffff .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST235: .8byte .LVL395 .8byte .LVL396 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST236: .8byte .LVL396 .8byte .LVL397 .2byte 0x9 .byte 0x7d .byte 0 .byte 0xc .4byte 0xffffffff .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST237: .8byte .LVL396 .8byte .LVL398 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x3f .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL398 .8byte .LVL399 .2byte 0x9 .byte 0x78 .byte 0 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x3f .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST238: .8byte .LVL404 .8byte .LVL405 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST239: .8byte .LVL405 .8byte .LVL406 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST240: .8byte .LVL408 .8byte .LVL409 .2byte 0xa .byte 0x7f .byte 0 .byte 0x11 .byte 0x80,0x80,0x98,0x80,0x7e .byte 0x21 .byte 0x9f .8byte .LVL409 .8byte .LVL410 .2byte 0x12 .byte 0x78 .byte 0 .byte 0x94 .byte 0x4 .byte 0xc .4byte 0x9ffff .byte 0x1a .byte 0x11 .byte 0x80,0x80,0x98,0x80,0x7e .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST241: .8byte .LVL410 .8byte .LVL412 .2byte 0x2 .byte 0x44 .byte 0x9f .8byte 0 .8byte 0 .LLST242: .8byte .LVL412 .8byte .LVL414 .2byte 0x1 .byte 0x59 .8byte 0 .8byte 0 .LLST243: .8byte .LVL413 .8byte .LVL414 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST244: .8byte .LVL414 .8byte .LVL416 .2byte 0x1 .byte 0x59 .8byte 0 .8byte 0 .LLST245: .8byte .LVL414 .8byte .LVL415 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x44 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL415 .8byte .LVL416 .2byte 0x9 .byte 0x79 .byte 0 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x44 .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST246: .8byte .LVL417 .8byte .LVL418 .2byte 0x1 .byte 0x5a .8byte 0 .8byte 0 .LLST148: .8byte .LVL153 .8byte .LVL165 .2byte 0x1 .byte 0x5a .8byte .LVL165 .8byte .LVL218 .2byte 0x1 .byte 0x65 .8byte .LVL218 .8byte .LVL223 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte .LVL223 .8byte .LVL224 .2byte 0x1 .byte 0x5a .8byte .LVL224 .8byte .LVL251 .2byte 0x1 .byte 0x65 .8byte .LVL251 .8byte .LVL252 .2byte 0x1 .byte 0x5a .8byte .LVL252 .8byte .LVL272 .2byte 0x1 .byte 0x65 .8byte .LVL272 .8byte .LVL273 .2byte 0x1 .byte 0x5a .8byte .LVL273 .8byte .LVL305 .2byte 0x1 .byte 0x65 .8byte .LVL305 .8byte .LVL306 .2byte 0x1 .byte 0x5a .8byte .LVL306 .8byte .LVL333 .2byte 0x1 .byte 0x65 .8byte .LVL333 .8byte .LVL334 .2byte 0x1 .byte 0x5a .8byte .LVL334 .8byte .LFE50 .2byte 0x1 .byte 0x65 .8byte 0 .8byte 0 .LLST149: .8byte .LVL155 .8byte .LVL167 .2byte 0x1 .byte 0x68 .8byte .LVL223 .8byte .LVL337 .2byte 0x1 .byte 0x68 .8byte .LVL347 .8byte .LVL351 .2byte 0x1 .byte 0x68 .8byte .LVL351 .8byte .LVL358 .2byte 0x1 .byte 0x6e .8byte .LVL358 .8byte .LVL376 .2byte 0x1 .byte 0x68 .8byte .LVL383 .8byte .LVL384 .2byte 0x1 .byte 0x68 .8byte .LVL385 .8byte .LVL387 .2byte 0x1 .byte 0x68 .8byte 0 .8byte 0 .LLST150: .8byte .LVL153 .8byte .LVL181 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL181 .8byte .LVL182 .2byte 0x12 .byte 0x8a .byte 0 .byte 0x40 .byte 0x24 .byte 0x86 .byte 0 .byte 0x48 .byte 0x24 .byte 0x21 .byte 0x8c .byte 0 .byte 0x38 .byte 0x24 .byte 0x21 .byte 0x8b .byte 0 .byte 0x21 .byte 0x9f .8byte .LVL184 .8byte .LVL185 .2byte 0x10 .byte 0x80 .byte 0 .byte 0x40 .byte 0x24 .byte 0x91 .byte 0xf0,0x7e .byte 0x94 .byte 0x4 .byte 0x38 .byte 0x24 .byte 0x21 .byte 0x89 .byte 0 .byte 0x21 .byte 0x9f .8byte .LVL186 .8byte .LVL188 .2byte 0x15 .byte 0x7f .byte 0 .byte 0x48 .byte 0x24 .byte 0x7a .byte 0 .byte 0x40 .byte 0x24 .byte 0x21 .byte 0x8f .byte 0 .byte 0x38 .byte 0x24 .byte 0x21 .byte 0x91 .byte 0xe0,0x7e .byte 0x94 .byte 0x4 .byte 0x21 .byte 0x9f .8byte .LVL191 .8byte .LVL192 .2byte 0xd .byte 0x7b .byte 0 .byte 0x40 .byte 0x24 .byte 0x8e .byte 0 .byte 0x3c .byte 0x24 .byte 0x21 .byte 0x75 .byte 0 .byte 0x21 .byte 0x9f .8byte .LVL195 .8byte .LVL196 .2byte 0x17 .byte 0x83 .byte 0 .byte 0x48 .byte 0x24 .byte 0x91 .byte 0x88,0x7f .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x24 .byte 0x21 .byte 0x87 .byte 0 .byte 0x38 .byte 0x24 .byte 0x21 .byte 0x72 .byte 0 .byte 0x94 .byte 0x4 .byte 0x21 .byte 0x9f .8byte .LVL198 .8byte .LVL199 .2byte 0x12 .byte 0x76 .byte 0 .byte 0x48 .byte 0x24 .byte 0x76 .byte 0 .byte 0x40 .byte 0x24 .byte 0x21 .byte 0x8d .byte 0 .byte 0x38 .byte 0x24 .byte 0x21 .byte 0x88 .byte 0 .byte 0x21 .byte 0x9f .8byte .LVL204 .8byte .LVL205 .2byte 0xe .byte 0x7f .byte 0 .byte 0xc .4byte 0xfff00ff .byte 0x1a .byte 0x40 .byte 0x48 .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL205 .8byte .LVL206 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x40 .byte 0x48 .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte .LVL206 .8byte .LVL207 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x40 .byte 0x21 .byte 0x9f .8byte .LVL208 .8byte .LVL209 .2byte 0xe .byte 0x7e .byte 0 .byte 0x40 .byte 0x24 .byte 0x81 .byte 0 .byte 0x21 .byte 0xc .4byte 0x2000100 .byte 0x21 .byte 0x9f .8byte .LVL213 .8byte .LVL214 .2byte 0xb .byte 0x82 .byte 0 .byte 0x40 .byte 0x24 .byte 0x91 .byte 0xb8,0x7e .byte 0x94 .byte 0x4 .byte 0x21 .byte 0x9f .8byte .LVL214 .8byte .LVL216 .2byte 0xb .byte 0x82 .byte 0 .byte 0x3f .byte 0x24 .byte 0xc .4byte 0xfff0000 .byte 0x1a .byte 0x9f .8byte .LVL223 .8byte .LVL387 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL387 .8byte .LFE50 .2byte 0x8 .byte 0x7f .byte 0 .byte 0x40 .byte 0x48 .byte 0x24 .byte 0x1f .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST151: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL169 .8byte .LVL222 .2byte 0x3 .byte 0x91 .byte 0xc0,0x7e .8byte .LVL222 .8byte .LVL223 .2byte 0x3 .byte 0x72 .byte 0xc0,0x7e .8byte .LVL223 .8byte .LVL342 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL342 .8byte .LVL347 .2byte 0x8 .byte 0x84 .byte 0 .byte 0x8 .byte 0xc8 .byte 0x1e .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL347 .8byte .LVL352 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL352 .8byte .LVL358 .2byte 0x9 .byte 0x84 .byte 0 .byte 0xa .2byte 0x190 .byte 0x1e .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL358 .8byte .LVL365 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL365 .8byte .LVL372 .2byte 0x9 .byte 0x84 .byte 0 .byte 0xa .2byte 0x1f4 .byte 0x1e .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL372 .8byte .LVL377 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL377 .8byte .LVL382 .2byte 0x8 .byte 0x84 .byte 0 .byte 0x8 .byte 0xc8 .byte 0x1e .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL383 .8byte .LVL385 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL385 .8byte .LVL387 .2byte 0x9 .byte 0x84 .byte 0 .byte 0xa .2byte 0x1f4 .byte 0x1e .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL387 .8byte .LFE50 .2byte 0x3 .byte 0x91 .byte 0xc0,0x7e .8byte 0 .8byte 0 .LLST152: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL169 .8byte .LVL222 .2byte 0x3 .byte 0x91 .byte 0xc8,0x7e .8byte .LVL222 .8byte .LVL223 .2byte 0x3 .byte 0x72 .byte 0xc8,0x7e .8byte .LVL223 .8byte .LVL343 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL343 .8byte .LVL347 .2byte 0x12 .byte 0x84 .byte 0 .byte 0x8 .byte 0x64 .byte 0x1e .byte 0xf7 .byte 0x29 .byte 0xa .2byte 0x3e8 .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL347 .8byte .LVL353 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL353 .8byte .LVL358 .2byte 0x13 .byte 0x84 .byte 0 .byte 0xa .2byte 0x1f4 .byte 0x1e .byte 0xf7 .byte 0x29 .byte 0xa .2byte 0x3e8 .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL358 .8byte .LVL366 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL366 .8byte .LVL370 .2byte 0x12 .byte 0x84 .byte 0 .byte 0xa .2byte 0x168 .byte 0x1e .byte 0xf7 .byte 0x29 .byte 0x7b .byte 0 .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL370 .8byte .LVL372 .2byte 0x13 .byte 0x84 .byte 0 .byte 0xa .2byte 0x168 .byte 0x1e .byte 0xf7 .byte 0x29 .byte 0xa .2byte 0x3e8 .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL372 .8byte .LVL378 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL378 .8byte .LVL382 .2byte 0x12 .byte 0x84 .byte 0 .byte 0x8 .byte 0x64 .byte 0x1e .byte 0xf7 .byte 0x29 .byte 0xa .2byte 0x3e8 .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL383 .8byte .LVL385 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL385 .8byte .LVL387 .2byte 0x13 .byte 0x84 .byte 0 .byte 0xa .2byte 0x168 .byte 0x1e .byte 0xf7 .byte 0x29 .byte 0xa .2byte 0x3e8 .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL387 .8byte .LFE50 .2byte 0x3 .byte 0x91 .byte 0xc8,0x7e .8byte 0 .8byte 0 .LLST153: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL169 .8byte .LVL222 .2byte 0x3 .byte 0x91 .byte 0xd0,0x7e .8byte .LVL222 .8byte .LVL223 .2byte 0x3 .byte 0x72 .byte 0xd0,0x7e .8byte .LVL223 .8byte .LVL344 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL344 .8byte .LVL347 .2byte 0x7 .byte 0x84 .byte 0 .byte 0x3b .byte 0x1e .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL347 .8byte .LVL354 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL354 .8byte .LVL358 .2byte 0x8 .byte 0x84 .byte 0 .byte 0x8 .byte 0xc8 .byte 0x1e .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL358 .8byte .LVL367 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL367 .8byte .LVL372 .2byte 0x8 .byte 0x84 .byte 0 .byte 0x8 .byte 0xc8 .byte 0x1e .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL372 .8byte .LVL379 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL379 .8byte .LVL382 .2byte 0x7 .byte 0x84 .byte 0 .byte 0x3b .byte 0x1e .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL383 .8byte .LVL385 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL385 .8byte .LVL387 .2byte 0x8 .byte 0x84 .byte 0 .byte 0x8 .byte 0xc8 .byte 0x1e .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL387 .8byte .LFE50 .2byte 0x3 .byte 0x91 .byte 0xd0,0x7e .8byte 0 .8byte 0 .LLST154: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL169 .8byte .LVL222 .2byte 0x3 .byte 0x91 .byte 0xd8,0x7e .8byte .LVL222 .8byte .LVL223 .2byte 0x3 .byte 0x72 .byte 0xd8,0x7e .8byte .LVL223 .8byte .LVL345 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL345 .8byte .LVL347 .2byte 0x3 .byte 0x84 .byte 0x1 .byte 0x9f .8byte .LVL347 .8byte .LVL355 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL355 .8byte .LVL358 .2byte 0x3 .byte 0x84 .byte 0x1 .byte 0x9f .8byte .LVL358 .8byte .LVL368 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL368 .8byte .LVL372 .2byte 0x3 .byte 0x84 .byte 0x1 .byte 0x9f .8byte .LVL372 .8byte .LVL380 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL380 .8byte .LVL382 .2byte 0x3 .byte 0x84 .byte 0x1 .byte 0x9f .8byte .LVL383 .8byte .LVL385 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL385 .8byte .LVL387 .2byte 0x3 .byte 0x84 .byte 0x1 .byte 0x9f .8byte .LVL387 .8byte .LFE50 .2byte 0x3 .byte 0x91 .byte 0xd8,0x7e .8byte 0 .8byte 0 .LLST155: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL169 .8byte .LVL171 .2byte 0x1 .byte 0x5d .8byte .LVL223 .8byte .LVL349 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL349 .8byte .LVL358 .2byte 0x1 .byte 0x5d .8byte .LVL358 .8byte .LVL361 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL361 .8byte .LVL372 .2byte 0x1 .byte 0x5d .8byte .LVL372 .8byte .LVL385 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL385 .8byte .LVL387 .2byte 0x1 .byte 0x5d .8byte 0 .8byte 0 .LLST156: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL169 .8byte .LVL187 .2byte 0x1 .byte 0x59 .8byte .LVL223 .8byte .LVL337 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL337 .8byte .LVL347 .2byte 0x3 .byte 0x8 .byte 0xc3 .byte 0x9f .8byte .LVL347 .8byte .LVL349 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL349 .8byte .LVL358 .2byte 0x3 .byte 0x91 .byte 0xe8,0x7e .8byte .LVL358 .8byte .LVL361 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL361 .8byte .LVL372 .2byte 0x3 .byte 0x91 .byte 0xe8,0x7e .8byte .LVL372 .8byte .LVL374 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL374 .8byte .LVL383 .2byte 0x3 .byte 0x8 .byte 0xc3 .byte 0x9f .8byte .LVL383 .8byte .LVL385 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL385 .8byte .LVL387 .2byte 0x3 .byte 0x91 .byte 0xe8,0x7e .8byte 0 .8byte 0 .LLST157: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL169 .8byte .LVL172 .2byte 0x1 .byte 0x57 .8byte .LVL223 .8byte .LVL337 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL337 .8byte .LVL347 .2byte 0x1 .byte 0x57 .8byte .LVL347 .8byte .LVL361 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL361 .8byte .LVL372 .2byte 0x1 .byte 0x57 .8byte .LVL372 .8byte .LVL374 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL374 .8byte .LVL382 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL383 .8byte .LVL385 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL385 .8byte .LVL387 .2byte 0x1 .byte 0x57 .8byte 0 .8byte 0 .LLST158: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL169 .8byte .LVL215 .2byte 0x1 .byte 0x58 .8byte .LVL223 .8byte .LVL337 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL337 .8byte .LVL347 .2byte 0x3 .byte 0x91 .byte 0xf8,0x7e .8byte .LVL347 .8byte .LVL374 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL374 .8byte .LVL382 .2byte 0x2 .byte 0x85 .byte 0x24 .8byte .LVL383 .8byte .LVL387 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL387 .8byte .LFE50 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST159: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL169 .8byte .LVL209 .2byte 0x1 .byte 0x5e .8byte .LVL223 .8byte .LVL337 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL337 .8byte .LVL347 .2byte 0x1 .byte 0x5e .8byte .LVL347 .8byte .LVL349 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL349 .8byte .LVL358 .2byte 0x1 .byte 0x5e .8byte .LVL358 .8byte .LVL361 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL361 .8byte .LVL372 .2byte 0x1 .byte 0x5e .8byte .LVL372 .8byte .LVL374 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL374 .8byte .LVL382 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL383 .8byte .LVL385 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL385 .8byte .LFE50 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST160: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL169 .8byte .LVL210 .2byte 0x1 .byte 0x61 .8byte .LVL223 .8byte .LVL337 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL337 .8byte .LVL347 .2byte 0x1 .byte 0x61 .8byte .LVL347 .8byte .LVL361 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL361 .8byte .LVL372 .2byte 0x1 .byte 0x61 .8byte .LVL372 .8byte .LVL382 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL383 .8byte .LVL385 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte .LVL385 .8byte .LFE50 .2byte 0x1 .byte 0x61 .8byte 0 .8byte 0 .LLST161: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL169 .8byte .LVL189 .2byte 0x1 .byte 0x5a .8byte .LVL223 .8byte .LVL337 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL337 .8byte .LVL341 .2byte 0x1 .byte 0x68 .8byte .LVL347 .8byte .LVL349 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL349 .8byte .LVL358 .2byte 0x1 .byte 0x5a .8byte .LVL358 .8byte .LVL361 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL361 .8byte .LVL372 .2byte 0x1 .byte 0x5a .8byte .LVL372 .8byte .LVL374 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL374 .8byte .LVL382 .2byte 0x2 .byte 0x34 .byte 0x9f .8byte .LVL383 .8byte .LVL385 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL385 .8byte .LVL387 .2byte 0x1 .byte 0x5a .8byte 0 .8byte 0 .LLST162: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL169 .8byte .LVL188 .2byte 0x1 .byte 0x5f .8byte .LVL223 .8byte .LVL337 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL337 .8byte .LVL347 .2byte 0x1 .byte 0x5f .8byte .LVL347 .8byte .LVL361 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL361 .8byte .LVL372 .2byte 0x1 .byte 0x5e .8byte .LVL372 .8byte .LVL374 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL374 .8byte .LVL382 .2byte 0x2 .byte 0x32 .byte 0x9f .8byte .LVL383 .8byte .LVL385 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL385 .8byte .LVL387 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST163: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL169 .8byte .LVL193 .2byte 0x1 .byte 0x5b .8byte .LVL223 .8byte .LVL335 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL335 .8byte .LVL347 .2byte 0x2 .byte 0x35 .byte 0x9f .8byte .LVL347 .8byte .LVL373 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL373 .8byte .LVL382 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL383 .8byte .LVL385 .2byte 0x2 .byte 0x35 .byte 0x9f .8byte .LVL385 .8byte .LVL387 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte 0 .8byte 0 .LLST164: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x32 .byte 0x9f .8byte .LVL169 .8byte .LVL192 .2byte 0x1 .byte 0x6e .8byte .LVL223 .8byte .LVL335 .2byte 0x2 .byte 0x32 .byte 0x9f .8byte .LVL335 .8byte .LVL347 .2byte 0x2 .byte 0x35 .byte 0x9f .8byte .LVL347 .8byte .LVL359 .2byte 0x2 .byte 0x32 .byte 0x9f .8byte .LVL359 .8byte .LVL373 .2byte 0x2 .byte 0x34 .byte 0x9f .8byte .LVL373 .8byte .LVL385 .2byte 0x2 .byte 0x35 .byte 0x9f .8byte .LVL385 .8byte .LVL387 .2byte 0x2 .byte 0x34 .byte 0x9f .8byte 0 .8byte 0 .LLST165: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL169 .8byte .LVL194 .2byte 0x1 .byte 0x55 .8byte .LVL223 .8byte .LVL335 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL335 .8byte .LVL373 .2byte 0x2 .byte 0x3c .byte 0x9f .8byte .LVL373 .8byte .LVL382 .2byte 0x2 .byte 0x35 .byte 0x9f .8byte .LVL383 .8byte .LVL387 .2byte 0x2 .byte 0x3c .byte 0x9f .8byte 0 .8byte 0 .LLST166: .8byte .LVL153 .8byte .LVL156 .2byte 0x2 .byte 0x32 .byte 0x9f .8byte .LVL156 .8byte .LVL222 .2byte 0x3 .byte 0x91 .byte 0x88,0x7f .8byte .LVL222 .8byte .LVL223 .2byte 0x3 .byte 0x72 .byte 0x88,0x7f .8byte .LVL223 .8byte .LVL334 .2byte 0x2 .byte 0x32 .byte 0x9f .8byte .LVL334 .8byte .LFE50 .2byte 0x3 .byte 0x91 .byte 0x88,0x7f .8byte 0 .8byte 0 .LLST167: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x32 .byte 0x9f .8byte .LVL169 .8byte .LVL200 .2byte 0x1 .byte 0x68 .8byte .LVL223 .8byte .LVL335 .2byte 0x2 .byte 0x32 .byte 0x9f .8byte .LVL335 .8byte .LVL373 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL373 .8byte .LVL382 .2byte 0x2 .byte 0x32 .byte 0x9f .8byte .LVL383 .8byte .LVL387 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte 0 .8byte 0 .LLST168: .8byte .LVL153 .8byte .LVL158 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL158 .8byte .LVL197 .2byte 0x1 .byte 0x67 .8byte .LVL223 .8byte .LVL232 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL232 .8byte .LVL233 .2byte 0x1 .byte 0x5a .8byte .LVL238 .8byte .LVL239 .2byte 0x1 .byte 0x67 .8byte .LVL239 .8byte .LVL243 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL243 .8byte .LVL244 .2byte 0x1 .byte 0x5a .8byte .LVL251 .8byte .LVL256 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL256 .8byte .LVL272 .2byte 0x1 .byte 0x67 .8byte .LVL272 .8byte .LVL278 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL278 .8byte .LVL305 .2byte 0x1 .byte 0x67 .8byte .LVL305 .8byte .LVL311 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL311 .8byte .LVL333 .2byte 0x1 .byte 0x67 .8byte .LVL333 .8byte .LVL334 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL334 .8byte .LVL387 .2byte 0x1 .byte 0x67 .8byte 0 .8byte 0 .LLST169: .8byte .LVL153 .8byte .LVL159 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL159 .8byte .LVL196 .2byte 0x1 .byte 0x63 .8byte .LVL223 .8byte .LVL233 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL238 .8byte .LVL239 .2byte 0x1 .byte 0x63 .8byte .LVL239 .8byte .LVL246 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL246 .8byte .LVL251 .2byte 0x1 .byte 0x63 .8byte .LVL251 .8byte .LVL258 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL258 .8byte .LVL272 .2byte 0x1 .byte 0x63 .8byte .LVL272 .8byte .LVL281 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL281 .8byte .LVL282 .2byte 0x1 .byte 0x5a .8byte .LVL305 .8byte .LVL314 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL314 .8byte .LVL315 .2byte 0x1 .byte 0x5a .8byte .LVL333 .8byte .LVL334 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL334 .8byte .LVL387 .2byte 0x1 .byte 0x63 .8byte 0 .8byte 0 .LLST170: .8byte .LVL153 .8byte .LVL160 .2byte 0x2 .byte 0x44 .byte 0x9f .8byte .LVL160 .8byte .LVL220 .2byte 0x1 .byte 0x69 .8byte .LVL223 .8byte .LVL235 .2byte 0x2 .byte 0x44 .byte 0x9f .8byte .LVL235 .8byte .LVL239 .2byte 0x1 .byte 0x69 .8byte .LVL239 .8byte .LVL248 .2byte 0x2 .byte 0x44 .byte 0x9f .8byte .LVL248 .8byte .LVL251 .2byte 0x1 .byte 0x69 .8byte .LVL251 .8byte .LVL260 .2byte 0x2 .byte 0x44 .byte 0x9f .8byte .LVL260 .8byte .LVL272 .2byte 0x1 .byte 0x69 .8byte .LVL272 .8byte .LVL284 .2byte 0x2 .byte 0x44 .byte 0x9f .8byte .LVL284 .8byte .LVL305 .2byte 0x1 .byte 0x69 .8byte .LVL305 .8byte .LVL317 .2byte 0x2 .byte 0x44 .byte 0x9f .8byte .LVL317 .8byte .LVL333 .2byte 0x1 .byte 0x69 .8byte .LVL333 .8byte .LVL334 .2byte 0x2 .byte 0x44 .byte 0x9f .8byte .LVL334 .8byte .LFE50 .2byte 0x1 .byte 0x69 .8byte 0 .8byte 0 .LLST171: .8byte .LVL153 .8byte .LVL157 .2byte 0x2 .byte 0x40 .byte 0x9f .8byte .LVL157 .8byte .LVL182 .2byte 0x1 .byte 0x6a .8byte .LVL223 .8byte .LVL230 .2byte 0x2 .byte 0x40 .byte 0x9f .8byte .LVL230 .8byte .LVL239 .2byte 0x1 .byte 0x6a .8byte .LVL239 .8byte .LVL241 .2byte 0x2 .byte 0x40 .byte 0x9f .8byte .LVL241 .8byte .LVL251 .2byte 0x1 .byte 0x6a .8byte .LVL251 .8byte .LVL254 .2byte 0x2 .byte 0x40 .byte 0x9f .8byte .LVL254 .8byte .LVL272 .2byte 0x1 .byte 0x6a .8byte .LVL272 .8byte .LVL275 .2byte 0x2 .byte 0x40 .byte 0x9f .8byte .LVL275 .8byte .LVL276 .2byte 0x1 .byte 0x5a .8byte .LVL305 .8byte .LVL308 .2byte 0x2 .byte 0x40 .byte 0x9f .8byte .LVL308 .8byte .LVL309 .2byte 0x1 .byte 0x5a .8byte .LVL333 .8byte .LVL334 .2byte 0x2 .byte 0x40 .byte 0x9f .8byte .LVL334 .8byte .LVL387 .2byte 0x1 .byte 0x6a .8byte 0 .8byte 0 .LLST172: .8byte .LVL153 .8byte .LVL163 .2byte 0x2 .byte 0x3e .byte 0x9f .8byte .LVL163 .8byte .LVL221 .2byte 0x1 .byte 0x6b .8byte .LVL223 .8byte .LVL237 .2byte 0x2 .byte 0x3e .byte 0x9f .8byte .LVL237 .8byte .LVL239 .2byte 0x1 .byte 0x6b .8byte .LVL239 .8byte .LVL250 .2byte 0x2 .byte 0x3e .byte 0x9f .8byte .LVL250 .8byte .LVL251 .2byte 0x1 .byte 0x6b .8byte .LVL251 .8byte .LVL266 .2byte 0x2 .byte 0x3e .byte 0x9f .8byte .LVL266 .8byte .LVL272 .2byte 0x1 .byte 0x6b .8byte .LVL272 .8byte .LVL297 .2byte 0x2 .byte 0x3e .byte 0x9f .8byte .LVL297 .8byte .LVL303 .2byte 0x1 .byte 0x6b .8byte .LVL303 .8byte .LVL327 .2byte 0x2 .byte 0x3e .byte 0x9f .8byte .LVL327 .8byte .LVL333 .2byte 0x1 .byte 0x6b .8byte .LVL333 .8byte .LVL334 .2byte 0x2 .byte 0x3e .byte 0x9f .8byte .LVL334 .8byte .LFE50 .2byte 0x1 .byte 0x6b .8byte 0 .8byte 0 .LLST173: .8byte .LVL153 .8byte .LVL162 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL162 .8byte .LVL222 .2byte 0x2 .byte 0x72 .byte 0 .8byte .LVL222 .8byte .LVL223 .2byte 0x3 .byte 0x72 .byte 0xb0,0x7e .8byte .LVL223 .8byte .LVL235 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL238 .8byte .LVL239 .2byte 0x2 .byte 0x72 .byte 0 .8byte .LVL239 .8byte .LVL248 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL248 .8byte .LVL251 .2byte 0x1 .byte 0x63 .8byte .LVL251 .8byte .LVL264 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL264 .8byte .LVL272 .2byte 0x2 .byte 0x72 .byte 0 .8byte .LVL272 .8byte .LVL295 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL295 .8byte .LVL303 .2byte 0x2 .byte 0x72 .byte 0 .8byte .LVL303 .8byte .LVL325 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL325 .8byte .LVL333 .2byte 0x2 .byte 0x72 .byte 0 .8byte .LVL333 .8byte .LVL334 .2byte 0x2 .byte 0x36 .byte 0x9f .8byte .LVL334 .8byte .LFE50 .2byte 0x2 .byte 0x72 .byte 0 .8byte 0 .8byte 0 .LLST174: .8byte .LVL153 .8byte .LVL161 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL161 .8byte .LVL168 .2byte 0x1 .byte 0x59 .8byte .LVL223 .8byte .LVL235 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL238 .8byte .LVL239 .2byte 0x1 .byte 0x59 .8byte .LVL239 .8byte .LVL248 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL251 .8byte .LVL262 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL262 .8byte .LVL272 .2byte 0x1 .byte 0x59 .8byte .LVL272 .8byte .LVL287 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL287 .8byte .LVL288 .2byte 0x1 .byte 0x60 .8byte .LVL290 .8byte .LVL303 .2byte 0x1 .byte 0x59 .8byte .LVL303 .8byte .LVL320 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL333 .8byte .LVL334 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL334 .8byte .LVL338 .2byte 0x1 .byte 0x59 .8byte .LVL338 .8byte .LVL347 .2byte 0x3 .byte 0x79 .byte 0x7b .byte 0x9f .8byte .LVL347 .8byte .LVL357 .2byte 0x1 .byte 0x59 .8byte .LVL358 .8byte .LVL362 .2byte 0x1 .byte 0x59 .8byte .LVL362 .8byte .LVL371 .2byte 0x3 .byte 0x79 .byte 0x7e .byte 0x9f .8byte .LVL372 .8byte .LVL382 .2byte 0x1 .byte 0x59 .8byte .LVL383 .8byte .LVL385 .2byte 0x1 .byte 0x59 .8byte .LVL385 .8byte .LVL386 .2byte 0x3 .byte 0x79 .byte 0x7e .byte 0x9f .8byte 0 .8byte 0 .LLST175: .8byte .LVL153 .8byte .LVL162 .2byte 0x2 .byte 0x38 .byte 0x9f .8byte .LVL162 .8byte .LVL166 .2byte 0x1 .byte 0x66 .8byte .LVL223 .8byte .LVL235 .2byte 0x2 .byte 0x38 .byte 0x9f .8byte .LVL238 .8byte .LVL239 .2byte 0x1 .byte 0x66 .8byte .LVL239 .8byte .LVL248 .2byte 0x2 .byte 0x38 .byte 0x9f .8byte .LVL251 .8byte .LVL264 .2byte 0x2 .byte 0x38 .byte 0x9f .8byte .LVL264 .8byte .LVL272 .2byte 0x2 .byte 0x72 .byte 0 .8byte .LVL272 .8byte .LVL292 .2byte 0x2 .byte 0x38 .byte 0x9f .8byte .LVL292 .8byte .LVL293 .2byte 0x1 .byte 0x5a .8byte .LVL303 .8byte .LVL322 .2byte 0x2 .byte 0x38 .byte 0x9f .8byte .LVL322 .8byte .LVL323 .2byte 0x1 .byte 0x5a .8byte .LVL333 .8byte .LVL334 .2byte 0x2 .byte 0x38 .byte 0x9f .8byte .LVL334 .8byte .LVL339 .2byte 0x1 .byte 0x66 .8byte .LVL339 .8byte .LVL340 .2byte 0x3 .byte 0x86 .byte 0x7b .byte 0x9f .8byte .LVL347 .8byte .LVL350 .2byte 0x1 .byte 0x66 .8byte .LVL358 .8byte .LVL363 .2byte 0x1 .byte 0x66 .8byte .LVL363 .8byte .LVL364 .2byte 0x3 .byte 0x86 .byte 0x7e .byte 0x9f .8byte .LVL372 .8byte .LVL375 .2byte 0x1 .byte 0x66 .8byte .LVL383 .8byte .LVL385 .2byte 0x1 .byte 0x66 .8byte 0 .8byte 0 .LLST176: .8byte .LVL153 .8byte .LVL161 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL161 .8byte .LVL222 .2byte 0x3 .byte 0x91 .byte 0xf0,0x7e .8byte .LVL222 .8byte .LVL223 .2byte 0x3 .byte 0x72 .byte 0xf0,0x7e .8byte .LVL223 .8byte .LVL235 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL238 .8byte .LVL239 .2byte 0x1 .byte 0x59 .8byte .LVL239 .8byte .LVL248 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL251 .8byte .LVL262 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL262 .8byte .LVL272 .2byte 0x1 .byte 0x59 .8byte .LVL272 .8byte .LVL290 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL290 .8byte .LVL303 .2byte 0x1 .byte 0x59 .8byte .LVL303 .8byte .LVL320 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL333 .8byte .LVL334 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL334 .8byte .LFE50 .2byte 0x3 .byte 0x91 .byte 0xf0,0x7e .8byte 0 .8byte 0 .LLST177: .8byte .LVL153 .8byte .LVL160 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte .LVL160 .8byte .LVL185 .2byte 0x1 .byte 0x60 .8byte .LVL223 .8byte .LVL235 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte .LVL238 .8byte .LVL239 .2byte 0x1 .byte 0x60 .8byte .LVL239 .8byte .LVL248 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte .LVL251 .8byte .LVL260 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte .LVL260 .8byte .LVL272 .2byte 0x2 .byte 0x32 .byte 0x9f .8byte .LVL272 .8byte .LVL286 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte .LVL286 .8byte .LVL288 .2byte 0x1 .byte 0x60 .8byte .LVL288 .8byte .LVL289 .2byte 0x1 .byte 0x5a .8byte .LVL303 .8byte .LVL304 .2byte 0x1 .byte 0x60 .8byte .LVL304 .8byte .LVL305 .2byte 0x1 .byte 0x5a .8byte .LVL305 .8byte .LVL319 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte .LVL319 .8byte .LVL320 .2byte 0x1 .byte 0x5a .8byte .LVL333 .8byte .LVL334 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte .LVL334 .8byte .LVL387 .2byte 0x1 .byte 0x60 .8byte 0 .8byte 0 .LLST178: .8byte .LVL153 .8byte .LVL165 .2byte 0x3 .byte 0x8 .byte 0x62 .byte 0x9f .8byte .LVL165 .8byte .LVL216 .2byte 0x1 .byte 0x62 .8byte .LVL223 .8byte .LVL237 .2byte 0x3 .byte 0x8 .byte 0x62 .byte 0x9f .8byte .LVL238 .8byte .LVL239 .2byte 0x1 .byte 0x62 .8byte .LVL239 .8byte .LVL250 .2byte 0x3 .byte 0x8 .byte 0x62 .byte 0x9f .8byte .LVL251 .8byte .LVL268 .2byte 0x3 .byte 0x8 .byte 0x62 .byte 0x9f .8byte .LVL268 .8byte .LVL269 .2byte 0x1 .byte 0x5a .8byte .LVL272 .8byte .LVL299 .2byte 0x3 .byte 0x8 .byte 0x62 .byte 0x9f .8byte .LVL299 .8byte .LVL300 .2byte 0x1 .byte 0x5a .8byte .LVL303 .8byte .LVL329 .2byte 0x3 .byte 0x8 .byte 0x62 .byte 0x9f .8byte .LVL329 .8byte .LVL330 .2byte 0x1 .byte 0x5a .8byte .LVL333 .8byte .LVL334 .2byte 0x3 .byte 0x8 .byte 0x62 .byte 0x9f .8byte .LVL334 .8byte .LFE50 .2byte 0x1 .byte 0x62 .8byte 0 .8byte 0 .LLST179: .8byte .LVL153 .8byte .LVL164 .2byte 0x3 .byte 0x8 .byte 0x80 .byte 0x9f .8byte .LVL164 .8byte .LVL222 .2byte 0x3 .byte 0x91 .byte 0xb8,0x7e .8byte .LVL222 .8byte .LVL223 .2byte 0x3 .byte 0x72 .byte 0xb8,0x7e .8byte .LVL223 .8byte .LVL237 .2byte 0x3 .byte 0x8 .byte 0x80 .byte 0x9f .8byte .LVL238 .8byte .LVL239 .2byte 0x3 .byte 0x91 .byte 0xb8,0x7e .8byte .LVL239 .8byte .LVL250 .2byte 0x3 .byte 0x8 .byte 0x80 .byte 0x9f .8byte .LVL251 .8byte .LVL271 .2byte 0x3 .byte 0x8 .byte 0x80 .byte 0x9f .8byte .LVL271 .8byte .LVL272 .2byte 0x3 .byte 0x91 .byte 0xb8,0x7e .8byte .LVL272 .8byte .LVL302 .2byte 0x3 .byte 0x8 .byte 0x80 .byte 0x9f .8byte .LVL302 .8byte .LVL303 .2byte 0x3 .byte 0x91 .byte 0xb8,0x7e .8byte .LVL303 .8byte .LVL332 .2byte 0x3 .byte 0x8 .byte 0x80 .byte 0x9f .8byte .LVL332 .8byte .LVL333 .2byte 0x3 .byte 0x91 .byte 0xb8,0x7e .8byte .LVL333 .8byte .LVL334 .2byte 0x3 .byte 0x8 .byte 0x80 .byte 0x9f .8byte .LVL334 .8byte .LFE50 .2byte 0x3 .byte 0x91 .byte 0xb8,0x7e .8byte 0 .8byte 0 .LLST180: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x3c .byte 0x9f .8byte .LVL169 .8byte .LVL219 .2byte 0x1 .byte 0x66 .8byte .LVL223 .8byte .LVL345 .2byte 0x2 .byte 0x3c .byte 0x9f .8byte .LVL347 .8byte .LVL355 .2byte 0x2 .byte 0x3c .byte 0x9f .8byte .LVL358 .8byte .LVL368 .2byte 0x2 .byte 0x3c .byte 0x9f .8byte .LVL372 .8byte .LVL380 .2byte 0x2 .byte 0x3c .byte 0x9f .8byte .LVL383 .8byte .LVL385 .2byte 0x2 .byte 0x3c .byte 0x9f .8byte .LVL387 .8byte .LFE50 .2byte 0x1 .byte 0x66 .8byte 0 .8byte 0 .LLST181: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x4b .byte 0x9f .8byte .LVL169 .8byte .LVL183 .2byte 0x1 .byte 0x6c .8byte .LVL223 .8byte .LVL336 .2byte 0x2 .byte 0x4b .byte 0x9f .8byte .LVL336 .8byte .LVL347 .2byte 0xc .byte 0x84 .byte 0 .byte 0xf7 .byte 0x29 .byte 0x8 .byte 0x3c .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0x9f .8byte .LVL347 .8byte .LVL348 .2byte 0x2 .byte 0x4b .byte 0x9f .8byte .LVL348 .8byte .LVL359 .2byte 0xb .byte 0x84 .byte 0 .byte 0xf7 .byte 0x29 .byte 0x4e .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0x9f .8byte .LVL359 .8byte .LVL360 .2byte 0x2 .byte 0x4b .byte 0x9f .8byte .LVL360 .8byte .LVL373 .2byte 0xb .byte 0x84 .byte 0 .byte 0xf7 .byte 0x29 .byte 0x4e .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0x9f .8byte .LVL373 .8byte .LVL374 .2byte 0x2 .byte 0x4b .byte 0x9f .8byte .LVL374 .8byte .LVL382 .2byte 0xc .byte 0x84 .byte 0 .byte 0xf7 .byte 0x29 .byte 0x8 .byte 0x3c .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0x9f .8byte .LVL383 .8byte .LVL385 .2byte 0xc .byte 0x84 .byte 0 .byte 0xf7 .byte 0x29 .byte 0x8 .byte 0x3c .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0x9f .8byte .LVL385 .8byte .LVL387 .2byte 0xb .byte 0x84 .byte 0 .byte 0xf7 .byte 0x29 .byte 0x4e .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0x9f .8byte 0 .8byte 0 .LLST182: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x38 .byte 0x9f .8byte .LVL169 .8byte .LVL222 .2byte 0x3 .byte 0x91 .byte 0xe0,0x7e .8byte .LVL222 .8byte .LVL223 .2byte 0x3 .byte 0x72 .byte 0xe0,0x7e .8byte .LVL223 .8byte .LVL346 .2byte 0x2 .byte 0x38 .byte 0x9f .8byte .LVL346 .8byte .LVL347 .2byte 0x6 .byte 0x79 .byte 0 .byte 0x7f .byte 0 .byte 0x22 .byte 0x9f .8byte .LVL347 .8byte .LVL356 .2byte 0x2 .byte 0x38 .byte 0x9f .8byte .LVL356 .8byte .LVL357 .2byte 0x3 .byte 0x79 .byte 0x5 .byte 0x9f .8byte .LVL358 .8byte .LVL369 .2byte 0x2 .byte 0x38 .byte 0x9f .8byte .LVL369 .8byte .LVL371 .2byte 0x6 .byte 0x79 .byte 0 .byte 0x7e .byte 0 .byte 0x22 .byte 0x9f .8byte .LVL372 .8byte .LVL381 .2byte 0x2 .byte 0x38 .byte 0x9f .8byte .LVL381 .8byte .LVL382 .2byte 0x3 .byte 0x79 .byte 0x5 .byte 0x9f .8byte .LVL383 .8byte .LVL385 .2byte 0x2 .byte 0x38 .byte 0x9f .8byte .LVL385 .8byte .LVL386 .2byte 0x6 .byte 0x79 .byte 0 .byte 0x7e .byte 0 .byte 0x22 .byte 0x9f .8byte .LVL387 .8byte .LFE50 .2byte 0x3 .byte 0x91 .byte 0xe0,0x7e .8byte 0 .8byte 0 .LLST183: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x34 .byte 0x9f .8byte .LVL169 .8byte .LVL190 .2byte 0x1 .byte 0x6f .8byte .LVL223 .8byte .LVL345 .2byte 0x2 .byte 0x34 .byte 0x9f .8byte .LVL347 .8byte .LVL369 .2byte 0x2 .byte 0x34 .byte 0x9f .8byte .LVL369 .8byte .LVL372 .2byte 0x8 .byte 0x7a .byte 0 .byte 0x7e .byte 0 .byte 0x1c .byte 0x23 .byte 0x3 .byte 0x9f .8byte .LVL372 .8byte .LVL380 .2byte 0x2 .byte 0x34 .byte 0x9f .8byte .LVL380 .8byte .LVL382 .2byte 0x2 .byte 0x3a .byte 0x9f .8byte .LVL383 .8byte .LVL385 .2byte 0x2 .byte 0x34 .byte 0x9f .8byte .LVL385 .8byte .LVL387 .2byte 0x8 .byte 0x7a .byte 0 .byte 0x7e .byte 0 .byte 0x1c .byte 0x23 .byte 0x3 .byte 0x9f .8byte 0 .8byte 0 .LLST184: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL169 .8byte .LVL201 .2byte 0x1 .byte 0x6d .8byte .LVL223 .8byte .LVL335 .2byte 0x2 .byte 0x33 .byte 0x9f .8byte .LVL335 .8byte .LVL347 .2byte 0x2 .byte 0x35 .byte 0x9f .8byte .LVL347 .8byte .LVL373 .2byte 0x2 .byte 0x34 .byte 0x9f .8byte .LVL373 .8byte .LVL385 .2byte 0x2 .byte 0x35 .byte 0x9f .8byte .LVL385 .8byte .LVL387 .2byte 0x2 .byte 0x34 .byte 0x9f .8byte 0 .8byte 0 .LLST185: .8byte .LVL153 .8byte .LVL169 .2byte 0x2 .byte 0x34 .byte 0x9f .8byte .LVL169 .8byte .LVL199 .2byte 0x1 .byte 0x56 .8byte .LVL223 .8byte .LVL335 .2byte 0x2 .byte 0x34 .byte 0x9f .8byte .LVL335 .8byte .LVL387 .2byte 0x2 .byte 0x35 .byte 0x9f .8byte 0 .8byte 0 .LLST187: .8byte .LVL154 .8byte .LVL222 .2byte 0xa .byte 0x91 .byte 0x80,0x7f .byte 0x94 .byte 0x4 .byte 0x32 .byte 0x25 .byte 0x33 .byte 0x1a .byte 0x9f .8byte .LVL222 .8byte .LVL223 .2byte 0xa .byte 0x72 .byte 0x80,0x7f .byte 0x94 .byte 0x4 .byte 0x32 .byte 0x25 .byte 0x33 .byte 0x1a .byte 0x9f .8byte .LVL223 .8byte .LFE50 .2byte 0xa .byte 0x91 .byte 0x80,0x7f .byte 0x94 .byte 0x4 .byte 0x32 .byte 0x25 .byte 0x33 .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST188: .8byte .LVL172 .8byte .LVL173 .2byte 0x6 .byte 0xc .4byte 0x3103030 .byte 0x9f .8byte 0 .8byte 0 .LLST189: .8byte .LVL172 .8byte .LVL173 .2byte 0x1 .byte 0x57 .8byte 0 .8byte 0 .LLST190: .8byte .LVL174 .8byte .LVL175 .2byte 0x6 .byte 0xc .4byte 0x3103034 .byte 0x9f .8byte 0 .8byte 0 .LLST191: .8byte .LVL174 .8byte .LVL175 .2byte 0x1 .byte 0x57 .8byte 0 .8byte 0 .LLST192: .8byte .LVL176 .8byte .LVL177 .2byte 0x6 .byte 0xc .4byte 0x3103038 .byte 0x9f .8byte 0 .8byte 0 .LLST193: .8byte .LVL176 .8byte .LVL177 .2byte 0x1 .byte 0x57 .8byte 0 .8byte 0 .LLST194: .8byte .LVL178 .8byte .LVL179 .2byte 0x6 .byte 0xc .4byte 0x310303c .byte 0x9f .8byte 0 .8byte 0 .LLST195: .8byte .LVL178 .8byte .LVL179 .2byte 0x1 .byte 0x57 .8byte 0 .8byte 0 .LLST196: .8byte .LVL180 .8byte .LVL181 .2byte 0x6 .byte 0xc .4byte 0x310302c .byte 0x9f .8byte 0 .8byte 0 .LLST197: .8byte .LVL180 .8byte .LVL181 .2byte 0x1 .byte 0x57 .8byte 0 .8byte 0 .LLST198: .8byte .LVL181 .8byte .LVL184 .2byte 0x6 .byte 0xc .4byte 0x3103058 .byte 0x9f .8byte 0 .8byte 0 .LLST199: .8byte .LVL181 .8byte .LVL182 .2byte 0x12 .byte 0x8a .byte 0 .byte 0x40 .byte 0x24 .byte 0x86 .byte 0 .byte 0x48 .byte 0x24 .byte 0x21 .byte 0x8c .byte 0 .byte 0x38 .byte 0x24 .byte 0x21 .byte 0x8b .byte 0 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST200: .8byte .LVL184 .8byte .LVL186 .2byte 0x6 .byte 0xc .4byte 0x310305c .byte 0x9f .8byte 0 .8byte 0 .LLST201: .8byte .LVL184 .8byte .LVL185 .2byte 0x10 .byte 0x80 .byte 0 .byte 0x40 .byte 0x24 .byte 0x91 .byte 0xf0,0x7e .byte 0x94 .byte 0x4 .byte 0x38 .byte 0x24 .byte 0x21 .byte 0x89 .byte 0 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST202: .8byte .LVL186 .8byte .LVL191 .2byte 0x6 .byte 0xc .4byte 0x3103060 .byte 0x9f .8byte 0 .8byte 0 .LLST203: .8byte .LVL186 .8byte .LVL188 .2byte 0x15 .byte 0x7f .byte 0 .byte 0x48 .byte 0x24 .byte 0x7a .byte 0 .byte 0x40 .byte 0x24 .byte 0x21 .byte 0x8f .byte 0 .byte 0x38 .byte 0x24 .byte 0x21 .byte 0x91 .byte 0xe0,0x7e .byte 0x94 .byte 0x4 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST204: .8byte .LVL191 .8byte .LVL195 .2byte 0x6 .byte 0xc .4byte 0x3103064 .byte 0x9f .8byte 0 .8byte 0 .LLST205: .8byte .LVL191 .8byte .LVL192 .2byte 0xd .byte 0x7b .byte 0 .byte 0x40 .byte 0x24 .byte 0x8e .byte 0 .byte 0x3c .byte 0x24 .byte 0x21 .byte 0x75 .byte 0 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST206: .8byte .LVL195 .8byte .LVL198 .2byte 0x6 .byte 0xc .4byte 0x3103068 .byte 0x9f .8byte 0 .8byte 0 .LLST207: .8byte .LVL195 .8byte .LVL196 .2byte 0x17 .byte 0x83 .byte 0 .byte 0x48 .byte 0x24 .byte 0x91 .byte 0x88,0x7f .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x24 .byte 0x21 .byte 0x87 .byte 0 .byte 0x38 .byte 0x24 .byte 0x21 .byte 0x72 .byte 0 .byte 0x94 .byte 0x4 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST208: .8byte .LVL198 .8byte .LVL202 .2byte 0x6 .byte 0xc .4byte 0x310306c .byte 0x9f .8byte 0 .8byte 0 .LLST209: .8byte .LVL198 .8byte .LVL199 .2byte 0x12 .byte 0x76 .byte 0 .byte 0x48 .byte 0x24 .byte 0x76 .byte 0 .byte 0x40 .byte 0x24 .byte 0x21 .byte 0x8d .byte 0 .byte 0x38 .byte 0x24 .byte 0x21 .byte 0x88 .byte 0 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST210: .8byte .LVL202 .8byte .LVL204 .2byte 0x6 .byte 0xc .4byte 0x3103078 .byte 0x9f .8byte 0 .8byte 0 .LLST211: .8byte .LVL203 .8byte .LVL204 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST212: .8byte .LVL206 .8byte .LVL208 .2byte 0x6 .byte 0xc .4byte 0x3103078 .byte 0x9f .8byte 0 .8byte 0 .LLST213: .8byte .LVL206 .8byte .LVL207 .2byte 0x5 .byte 0x7f .byte 0 .byte 0x40 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST214: .8byte .LVL208 .8byte .LVL211 .2byte 0x6 .byte 0xc .4byte 0x3103080 .byte 0x9f .8byte 0 .8byte 0 .LLST215: .8byte .LVL208 .8byte .LVL209 .2byte 0xe .byte 0x7e .byte 0 .byte 0x40 .byte 0x24 .byte 0x81 .byte 0 .byte 0x21 .byte 0xc .4byte 0x2000100 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST216: .8byte .LVL211 .8byte .LVL212 .2byte 0x6 .byte 0xc .4byte 0x3103050 .byte 0x9f .8byte 0 .8byte 0 .LLST217: .8byte .LVL211 .8byte .LVL212 .2byte 0xe .byte 0x91 .byte 0xc8,0x7e .byte 0x94 .byte 0x4 .byte 0x44 .byte 0x24 .byte 0x91 .byte 0xc0,0x7e .byte 0x94 .byte 0x4 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST218: .8byte .LVL212 .8byte .LVL213 .2byte 0x6 .byte 0xc .4byte 0x3103054 .byte 0x9f .8byte 0 .8byte 0 .LLST219: .8byte .LVL212 .8byte .LVL213 .2byte 0xe .byte 0x91 .byte 0xd8,0x7e .byte 0x94 .byte 0x4 .byte 0x44 .byte 0x24 .byte 0x91 .byte 0xd0,0x7e .byte 0x94 .byte 0x4 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST220: .8byte .LVL213 .8byte .LVL214 .2byte 0x6 .byte 0xc .4byte 0x3103090 .byte 0x9f .8byte 0 .8byte 0 .LLST221: .8byte .LVL213 .8byte .LVL214 .2byte 0xb .byte 0x82 .byte 0 .byte 0x40 .byte 0x24 .byte 0x91 .byte 0xb8,0x7e .byte 0x94 .byte 0x4 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST222: .8byte .LVL214 .8byte .LVL217 .2byte 0x6 .byte 0xc .4byte 0x3103094 .byte 0x9f .8byte 0 .8byte 0 .LLST223: .8byte .LVL214 .8byte .LVL216 .2byte 0xb .byte 0x82 .byte 0 .byte 0x3f .byte 0x24 .byte 0xc .4byte 0xfff0000 .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST145: .8byte .LVL149 .8byte .LVL151 .2byte 0x1 .byte 0x5a .8byte .LVL151 .8byte .LFE49 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte 0 .8byte 0 .LLST146: .8byte .LVL149 .8byte .LVL150 .2byte 0x1 .byte 0x5b .8byte .LVL150 .8byte .LFE49 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0x9f .8byte 0 .8byte 0 .LLST147: .8byte .LVL150 .8byte .LVL152 .2byte 0x1c .byte 0x7b .byte 0 .byte 0xf7 .byte 0x29 .byte 0xa .2byte 0x3e8 .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0x7b .byte 0 .byte 0xa .2byte 0x3e8 .byte 0x1d .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x30 .byte 0x2e .byte 0x8 .byte 0xff .byte 0x1a .byte 0x22 .byte 0x9f .8byte .LVL152 .8byte .LFE49 .2byte 0x26 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0x1e .byte 0xf7 .byte 0x29 .byte 0xa .2byte 0x3e8 .byte 0xf7 .byte 0x29 .byte 0x1b .byte 0xf7 .byte 0 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0x1e .byte 0xa .2byte 0x3e8 .byte 0x1d .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x30 .byte 0x2e .byte 0x8 .byte 0xff .byte 0x1a .byte 0x22 .byte 0x9f .8byte 0 .8byte 0 .LLST108: .8byte .LVL126 .8byte .LVL128 .2byte 0x1 .byte 0x5e .8byte .LVL128 .8byte .LVL129 .2byte 0xf .byte 0x7f .byte 0xc .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0xb .2byte 0xf000 .byte 0x1a .byte 0x9f .8byte .LVL129 .8byte .LVL131 .2byte 0x1 .byte 0x5e .8byte .LVL131 .8byte .LVL145 .2byte 0x2 .byte 0x7f .byte 0xc .8byte .LVL145 .8byte .LFE48 .2byte 0x5 .byte 0xc .4byte 0x310200c .8byte 0 .8byte 0 .LLST109: .8byte .LVL124 .8byte .LVL126 .2byte 0x6 .byte 0xc .4byte 0x310200c .byte 0x9f .8byte 0 .8byte 0 .LLST110: .8byte .LVL125 .8byte .LVL126 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST111: .8byte .LVL129 .8byte .LVL130 .2byte 0x6 .byte 0xc .4byte 0x310200c .byte 0x9f .8byte 0 .8byte 0 .LLST112: .8byte .LVL129 .8byte .LVL130 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST113: .8byte .LVL130 .8byte .LVL132 .2byte 0x6 .byte 0xc .4byte 0x3102200 .byte 0x9f .8byte 0 .8byte 0 .LLST114: .8byte .LVL130 .8byte .LVL132 .2byte 0x4 .byte 0x40 .byte 0x3c .byte 0x24 .byte 0x9f .8byte 0 .8byte 0 .LLST115: .8byte .LVL132 .8byte .LVL133 .2byte 0x6 .byte 0xc .4byte 0x3102210 .byte 0x9f .8byte 0 .8byte 0 .LLST116: .8byte .LVL132 .8byte .LVL133 .2byte 0x6 .byte 0xc .4byte 0x1000009 .byte 0x9f .8byte 0 .8byte 0 .LLST117: .8byte .LVL133 .8byte .LVL134 .2byte 0x6 .byte 0xc .4byte 0x3102214 .byte 0x9f .8byte 0 .8byte 0 .LLST118: .8byte .LVL133 .8byte .LVL134 .2byte 0x6 .byte 0xc .4byte 0x500064 .byte 0x9f .8byte 0 .8byte 0 .LLST119: .8byte .LVL134 .8byte .LVL135 .2byte 0x6 .byte 0xc .4byte 0x3102230 .byte 0x9f .8byte 0 .8byte 0 .LLST120: .8byte .LVL134 .8byte .LVL135 .2byte 0x6 .byte 0xc .4byte 0x200000d .byte 0x9f .8byte 0 .8byte 0 .LLST121: .8byte .LVL135 .8byte .LVL136 .2byte 0x6 .byte 0xc .4byte 0x3102234 .byte 0x9f .8byte 0 .8byte 0 .LLST122: .8byte .LVL135 .8byte .LVL136 .2byte 0x6 .byte 0xc .4byte 0x600100 .byte 0x9f .8byte 0 .8byte 0 .LLST123: .8byte .LVL136 .8byte .LVL137 .2byte 0x6 .byte 0xc .4byte 0x3102240 .byte 0x9f .8byte 0 .8byte 0 .LLST124: .8byte .LVL136 .8byte .LVL137 .2byte 0x6 .byte 0xc .4byte 0x1000009 .byte 0x9f .8byte 0 .8byte 0 .LLST125: .8byte .LVL137 .8byte .LVL138 .2byte 0x6 .byte 0xc .4byte 0x3102244 .byte 0x9f .8byte 0 .8byte 0 .LLST126: .8byte .LVL137 .8byte .LVL138 .2byte 0x6 .byte 0xc .4byte 0x500064 .byte 0x9f .8byte 0 .8byte 0 .LLST127: .8byte .LVL138 .8byte .LVL139 .2byte 0x6 .byte 0xc .4byte 0x3102260 .byte 0x9f .8byte 0 .8byte 0 .LLST128: .8byte .LVL138 .8byte .LVL139 .2byte 0x6 .byte 0xc .4byte 0x640209 .byte 0x9f .8byte 0 .8byte 0 .LLST129: .8byte .LVL139 .8byte .LVL140 .2byte 0x6 .byte 0xc .4byte 0x3102264 .byte 0x9f .8byte 0 .8byte 0 .LLST130: .8byte .LVL139 .8byte .LVL140 .2byte 0x6 .byte 0xc .4byte 0x200040 .byte 0x9f .8byte 0 .8byte 0 .LLST131: .8byte .LVL140 .8byte .LVL141 .2byte 0x6 .byte 0xc .4byte 0x3102290 .byte 0x9f .8byte 0 .8byte 0 .LLST132: .8byte .LVL140 .8byte .LVL141 .2byte 0x6 .byte 0xc .4byte 0x1000009 .byte 0x9f .8byte 0 .8byte 0 .LLST133: .8byte .LVL141 .8byte .LVL142 .2byte 0x6 .byte 0xc .4byte 0x3102294 .byte 0x9f .8byte 0 .8byte 0 .LLST134: .8byte .LVL141 .8byte .LVL142 .2byte 0x6 .byte 0xc .4byte 0x400080 .byte 0x9f .8byte 0 .8byte 0 .LLST135: .8byte .LVL142 .8byte .LVL143 .2byte 0x6 .byte 0xc .4byte 0x3102470 .byte 0x9f .8byte 0 .8byte 0 .LLST136: .8byte .LVL142 .8byte .LVL143 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte 0 .8byte 0 .LLST137: .8byte .LVL143 .8byte .LVL144 .2byte 0x6 .byte 0xc .4byte 0x3102474 .byte 0x9f .8byte 0 .8byte 0 .LLST138: .8byte .LVL143 .8byte .LVL144 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte 0 .8byte 0 .LLST139: .8byte .LVL144 .8byte .LVL146 .2byte 0x6 .byte 0xc .4byte 0x31031c0 .byte 0x9f .8byte 0 .8byte 0 .LLST140: .8byte .LVL144 .8byte .LVL146 .2byte 0x6 .byte 0xc .4byte 0xf802f05 .byte 0x9f .8byte 0 .8byte 0 .LLST141: .8byte .LVL146 .8byte .LVL147 .2byte 0x6 .byte 0xc .4byte 0x31031c8 .byte 0x9f .8byte 0 .8byte 0 .LLST142: .8byte .LVL146 .8byte .LVL147 .2byte 0x6 .byte 0xc .4byte 0xf0000ff .byte 0x9f .8byte 0 .8byte 0 .LLST143: .8byte .LVL147 .8byte .LVL148 .2byte 0x6 .byte 0xc .4byte 0x31031d0 .byte 0x9f .8byte 0 .8byte 0 .LLST144: .8byte .LVL147 .8byte .LVL148 .2byte 0x6 .byte 0xc .4byte 0x3f00005f .byte 0x9f .8byte 0 .8byte 0 .LLST91: .8byte .LVL102 .8byte .LVL103 .2byte 0x1 .byte 0x5a .8byte .LVL103 .8byte .LFE47 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte 0 .8byte 0 .LLST92: .8byte .LVL108 .8byte .LVL109 .2byte 0x9 .byte 0x7e .byte 0 .byte 0x11 .byte 0xff,0xff,0xff,0x5f .byte 0x1a .byte 0x9f .8byte .LVL109 .8byte .LVL110 .2byte 0xc .byte 0x7f .byte 0x80,0x2 .byte 0x94 .byte 0x4 .byte 0x11 .byte 0xff,0xff,0xff,0x5f .byte 0x1a .byte 0x9f .8byte .LVL115 .8byte .LVL116 .2byte 0x6 .byte 0x7e .byte 0 .byte 0x8c .byte 0 .byte 0x22 .byte 0x9f .8byte .LVL116 .8byte .LVL121 .2byte 0x1 .byte 0x5e .8byte .LVL121 .8byte .LVL122 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x46 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL122 .8byte .LVL123 .2byte 0xa .byte 0x7b .byte 0x80,0x2 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x46 .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST93: .8byte .LVL110 .8byte .LVL111 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte 0 .8byte 0 .LLST94: .8byte .LVL111 .8byte .LVL112 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte 0 .8byte 0 .LLST95: .8byte .LVL113 .8byte .LVL116 .2byte 0x1 .byte 0x5e .8byte .LVL116 .8byte .LVL118 .2byte 0x16 .byte 0x80 .byte 0 .byte 0x7c .byte 0 .byte 0x22 .byte 0x94 .byte 0x4 .byte 0x38 .byte 0x24 .byte 0x91 .byte 0 .byte 0x7c .byte 0 .byte 0x22 .byte 0xa .2byte 0x170 .byte 0x1c .byte 0x94 .byte 0x4 .byte 0x22 .byte 0x9f .8byte .LVL118 .8byte .LVL123 .2byte 0x18 .byte 0x80 .byte 0 .byte 0x7c .byte 0 .byte 0x22 .byte 0x34 .byte 0x1c .byte 0x94 .byte 0x4 .byte 0x38 .byte 0x24 .byte 0x91 .byte 0 .byte 0x7c .byte 0 .byte 0x22 .byte 0xa .2byte 0x174 .byte 0x1c .byte 0x94 .byte 0x4 .byte 0x22 .byte 0x9f .8byte 0 .8byte 0 .LLST96: .8byte .LVL106 .8byte .LVL108 .2byte 0x6 .byte 0xc .4byte 0x3103100 .byte 0x9f .8byte 0 .8byte 0 .LLST97: .8byte .LVL107 .8byte .LVL108 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST98: .8byte .LVL108 .8byte .LVL110 .2byte 0x6 .byte 0xc .4byte 0x3103100 .byte 0x9f .8byte 0 .8byte 0 .LLST99: .8byte .LVL108 .8byte .LVL109 .2byte 0x9 .byte 0x7e .byte 0 .byte 0x11 .byte 0xff,0xff,0xff,0x5f .byte 0x1a .byte 0x9f .8byte .LVL109 .8byte .LVL110 .2byte 0xc .byte 0x7f .byte 0x80,0x2 .byte 0x94 .byte 0x4 .byte 0x11 .byte 0xff,0xff,0xff,0x5f .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST100: .8byte .LVL113 .8byte .LVL115 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x7d .byte 0 .byte 0x22 .byte 0x9f .8byte 0 .8byte 0 .LLST101: .8byte .LVL114 .8byte .LVL115 .2byte 0x1 .byte 0x6c .8byte 0 .8byte 0 .LLST102: .8byte .LVL115 .8byte .LVL117 .2byte 0x6 .byte 0x7f .byte 0 .byte 0x7d .byte 0 .byte 0x22 .byte 0x9f .8byte 0 .8byte 0 .LLST103: .8byte .LVL115 .8byte .LVL116 .2byte 0x6 .byte 0x7e .byte 0 .byte 0x8c .byte 0 .byte 0x22 .byte 0x9f .8byte .LVL116 .8byte .LVL117 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST104: .8byte .LVL119 .8byte .LVL121 .2byte 0x6 .byte 0xc .4byte 0x3103100 .byte 0x9f .8byte 0 .8byte 0 .LLST105: .8byte .LVL120 .8byte .LVL121 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST106: .8byte .LVL121 .8byte .LVL123 .2byte 0x6 .byte 0xc .4byte 0x3103100 .byte 0x9f .8byte 0 .8byte 0 .LLST107: .8byte .LVL121 .8byte .LVL122 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x46 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL122 .8byte .LVL123 .2byte 0xa .byte 0x7b .byte 0x80,0x2 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x46 .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST27: .8byte .LVL31 .8byte .LVL32 .2byte 0x1 .byte 0x5a .8byte .LVL32 .8byte .LVL101 .2byte 0x1 .byte 0x59 .8byte .LVL101 .8byte .LFE46 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte 0 .8byte 0 .LLST28: .8byte .LVL31 .8byte .LVL32 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL34 .8byte .LVL35 .2byte 0x1 .byte 0x60 .8byte .LVL35 .8byte .LVL37 .2byte 0x1 .byte 0x5f .8byte .LVL37 .8byte .LVL38 .2byte 0x2 .byte 0x7e .byte 0x7c .8byte .LVL40 .8byte .LVL41 .2byte 0x1 .byte 0x5a .8byte .LVL41 .8byte .LVL45 .2byte 0x1 .byte 0x5e .8byte .LVL45 .8byte .LVL46 .2byte 0x9 .byte 0x7f .byte 0 .byte 0x11 .byte 0xff,0xff,0xff,0x5f .byte 0x1a .byte 0x9f .8byte .LVL46 .8byte .LVL47 .2byte 0xc .byte 0x78 .byte 0x80,0x2 .byte 0x94 .byte 0x4 .byte 0x11 .byte 0xff,0xff,0xff,0x5f .byte 0x1a .byte 0x9f .8byte .LVL49 .8byte .LVL50 .2byte 0x1 .byte 0x5b .8byte .LVL50 .8byte .LVL53 .2byte 0x1 .byte 0x5e .8byte .LVL53 .8byte .LVL54 .2byte 0x1 .byte 0x5b .8byte .LVL54 .8byte .LVL57 .2byte 0x1 .byte 0x5e .8byte .LVL57 .8byte .LVL58 .2byte 0x1 .byte 0x5b .8byte .LVL58 .8byte .LVL61 .2byte 0x1 .byte 0x5e .8byte .LVL61 .8byte .LVL62 .2byte 0x1 .byte 0x5d .8byte .LVL62 .8byte .LVL64 .2byte 0x1 .byte 0x5f .8byte .LVL64 .8byte .LVL65 .2byte 0x3 .byte 0x78 .byte 0xb8,0x7 .8byte .LVL65 .8byte .LVL66 .2byte 0x1 .byte 0x5f .8byte .LVL66 .8byte .LVL68 .2byte 0x1 .byte 0x5e .8byte .LVL68 .8byte .LVL69 .2byte 0x3 .byte 0x78 .byte 0xbc,0x6 .8byte .LVL69 .8byte .LVL70 .2byte 0x1 .byte 0x5e .8byte .LVL70 .8byte .LVL72 .2byte 0x1 .byte 0x5f .8byte .LVL72 .8byte .LVL73 .2byte 0x3 .byte 0x78 .byte 0xbc,0x7 .8byte .LVL73 .8byte .LVL74 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x46 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL74 .8byte .LVL75 .2byte 0xa .byte 0x78 .byte 0x80,0x2 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x46 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL79 .8byte .LVL80 .2byte 0x1 .byte 0x5b .8byte .LVL80 .8byte .LVL82 .2byte 0x1 .byte 0x5f .8byte .LVL82 .8byte .LVL83 .2byte 0x2 .byte 0x78 .byte 0x7c .8byte .LVL85 .8byte .LVL86 .2byte 0x1 .byte 0x5a .8byte .LVL86 .8byte .LVL90 .2byte 0x1 .byte 0x5e .8byte .LVL90 .8byte .LVL91 .2byte 0x1 .byte 0x5f .8byte .LVL91 .8byte .LVL94 .2byte 0x1 .byte 0x5e .8byte .LVL94 .8byte .LVL95 .2byte 0x1 .byte 0x5f .8byte .LVL95 .8byte .LVL97 .2byte 0x1 .byte 0x5e .8byte .LVL97 .8byte .LVL98 .2byte 0x3 .byte 0x7d .byte 0x9c,0x4 .8byte .LVL98 .8byte .LVL99 .2byte 0x1 .byte 0x5e .8byte .LVL99 .8byte .LFE46 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST29: .8byte .LVL31 .8byte .LVL32 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL76 .8byte .LVL77 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte 0 .8byte 0 .LLST30: .8byte .LVL32 .8byte .LVL34 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST31: .8byte .LVL33 .8byte .LVL34 .2byte 0x1 .byte 0x60 .8byte 0 .8byte 0 .LLST32: .8byte .LVL35 .8byte .LVL36 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST33: .8byte .LVL35 .8byte .LVL36 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST34: .8byte .LVL38 .8byte .LVL40 .2byte 0x1 .byte 0x5d .8byte 0 .8byte 0 .LLST35: .8byte .LVL39 .8byte .LVL40 .2byte 0x1 .byte 0x5a .8byte 0 .8byte 0 .LLST36: .8byte .LVL41 .8byte .LVL42 .2byte 0x1 .byte 0x5d .8byte 0 .8byte 0 .LLST37: .8byte .LVL41 .8byte .LVL42 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST38: .8byte .LVL43 .8byte .LVL45 .2byte 0x6 .byte 0xc .4byte 0x3103100 .byte 0x9f .8byte 0 .8byte 0 .LLST39: .8byte .LVL44 .8byte .LVL45 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST40: .8byte .LVL45 .8byte .LVL47 .2byte 0x6 .byte 0xc .4byte 0x3103100 .byte 0x9f .8byte 0 .8byte 0 .LLST41: .8byte .LVL45 .8byte .LVL46 .2byte 0x9 .byte 0x7f .byte 0 .byte 0x11 .byte 0xff,0xff,0xff,0x5f .byte 0x1a .byte 0x9f .8byte .LVL46 .8byte .LVL47 .2byte 0xc .byte 0x78 .byte 0x80,0x2 .byte 0x94 .byte 0x4 .byte 0x11 .byte 0xff,0xff,0xff,0x5f .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST42: .8byte .LVL47 .8byte .LVL49 .2byte 0x6 .byte 0xc .4byte 0x3103334 .byte 0x9f .8byte 0 .8byte 0 .LLST43: .8byte .LVL48 .8byte .LVL49 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST44: .8byte .LVL50 .8byte .LVL51 .2byte 0x6 .byte 0xc .4byte 0x3103334 .byte 0x9f .8byte 0 .8byte 0 .LLST45: .8byte .LVL50 .8byte .LVL51 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST46: .8byte .LVL51 .8byte .LVL53 .2byte 0x6 .byte 0xc .4byte 0x3103338 .byte 0x9f .8byte 0 .8byte 0 .LLST47: .8byte .LVL52 .8byte .LVL53 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST48: .8byte .LVL54 .8byte .LVL55 .2byte 0x6 .byte 0xc .4byte 0x3103338 .byte 0x9f .8byte 0 .8byte 0 .LLST49: .8byte .LVL54 .8byte .LVL55 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST50: .8byte .LVL55 .8byte .LVL57 .2byte 0x6 .byte 0xc .4byte 0x31033b4 .byte 0x9f .8byte 0 .8byte 0 .LLST51: .8byte .LVL56 .8byte .LVL57 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST52: .8byte .LVL58 .8byte .LVL59 .2byte 0x6 .byte 0xc .4byte 0x31033b4 .byte 0x9f .8byte 0 .8byte 0 .LLST53: .8byte .LVL58 .8byte .LVL59 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST54: .8byte .LVL59 .8byte .LVL61 .2byte 0x6 .byte 0xc .4byte 0x31033b8 .byte 0x9f .8byte 0 .8byte 0 .LLST55: .8byte .LVL60 .8byte .LVL61 .2byte 0x1 .byte 0x5d .8byte 0 .8byte 0 .LLST56: .8byte .LVL62 .8byte .LVL63 .2byte 0x6 .byte 0xc .4byte 0x31033b8 .byte 0x9f .8byte 0 .8byte 0 .LLST57: .8byte .LVL62 .8byte .LVL63 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST58: .8byte .LVL63 .8byte .LVL65 .2byte 0x6 .byte 0xc .4byte 0x310333c .byte 0x9f .8byte 0 .8byte 0 .LLST59: .8byte .LVL64 .8byte .LVL65 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST60: .8byte .LVL66 .8byte .LVL67 .2byte 0x6 .byte 0xc .4byte 0x310333c .byte 0x9f .8byte 0 .8byte 0 .LLST61: .8byte .LVL66 .8byte .LVL67 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST62: .8byte .LVL67 .8byte .LVL69 .2byte 0x6 .byte 0xc .4byte 0x31033bc .byte 0x9f .8byte 0 .8byte 0 .LLST63: .8byte .LVL68 .8byte .LVL69 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST64: .8byte .LVL70 .8byte .LVL71 .2byte 0x6 .byte 0xc .4byte 0x31033bc .byte 0x9f .8byte 0 .8byte 0 .LLST65: .8byte .LVL70 .8byte .LVL71 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST66: .8byte .LVL71 .8byte .LVL73 .2byte 0x6 .byte 0xc .4byte 0x3103100 .byte 0x9f .8byte 0 .8byte 0 .LLST67: .8byte .LVL72 .8byte .LVL73 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST68: .8byte .LVL73 .8byte .LVL75 .2byte 0x6 .byte 0xc .4byte 0x3103100 .byte 0x9f .8byte 0 .8byte 0 .LLST69: .8byte .LVL73 .8byte .LVL74 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x40 .byte 0x46 .byte 0x24 .byte 0x21 .byte 0x9f .8byte .LVL74 .8byte .LVL75 .2byte 0xa .byte 0x78 .byte 0x80,0x2 .byte 0x94 .byte 0x4 .byte 0x40 .byte 0x46 .byte 0x24 .byte 0x21 .byte 0x9f .8byte 0 .8byte 0 .LLST70: .8byte .LVL75 .8byte .LVL76 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte 0 .8byte 0 .LLST71: .8byte .LVL77 .8byte .LVL79 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST72: .8byte .LVL78 .8byte .LVL79 .2byte 0x1 .byte 0x5b .8byte 0 .8byte 0 .LLST73: .8byte .LVL80 .8byte .LVL81 .2byte 0x1 .byte 0x58 .8byte 0 .8byte 0 .LLST74: .8byte .LVL80 .8byte .LVL81 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST75: .8byte .LVL83 .8byte .LVL85 .2byte 0x1 .byte 0x5c .8byte 0 .8byte 0 .LLST76: .8byte .LVL84 .8byte .LVL85 .2byte 0x1 .byte 0x5a .8byte 0 .8byte 0 .LLST77: .8byte .LVL86 .8byte .LVL87 .2byte 0x1 .byte 0x5c .8byte 0 .8byte 0 .LLST78: .8byte .LVL86 .8byte .LVL87 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST79: .8byte .LVL88 .8byte .LVL90 .2byte 0x6 .byte 0xc .4byte 0x3103218 .byte 0x9f .8byte 0 .8byte 0 .LLST80: .8byte .LVL89 .8byte .LVL90 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST81: .8byte .LVL91 .8byte .LVL92 .2byte 0x6 .byte 0xc .4byte 0x3103218 .byte 0x9f .8byte 0 .8byte 0 .LLST82: .8byte .LVL91 .8byte .LVL92 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST83: .8byte .LVL92 .8byte .LVL94 .2byte 0x6 .byte 0xc .4byte 0x310321c .byte 0x9f .8byte 0 .8byte 0 .LLST84: .8byte .LVL93 .8byte .LVL94 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST85: .8byte .LVL95 .8byte .LVL96 .2byte 0x6 .byte 0xc .4byte 0x310321c .byte 0x9f .8byte 0 .8byte 0 .LLST86: .8byte .LVL95 .8byte .LVL96 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST87: .8byte .LVL96 .8byte .LVL98 .2byte 0x6 .byte 0xc .4byte 0x3103280 .byte 0x9f .8byte 0 .8byte 0 .LLST88: .8byte .LVL97 .8byte .LVL98 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST89: .8byte .LVL99 .8byte .LVL100 .2byte 0x6 .byte 0xc .4byte 0x3103280 .byte 0x9f .8byte 0 .8byte 0 .LLST90: .8byte .LVL99 .8byte .LVL100 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST21: .8byte .LVL26 .8byte .LVL27 .2byte 0x6 .byte 0xc .4byte 0x3102020 .byte 0x9f .8byte 0 .8byte 0 .LLST22: .8byte .LVL26 .8byte .LVL27 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte 0 .8byte 0 .LLST23: .8byte .LVL27 .8byte .LVL28 .2byte 0x6 .byte 0xc .4byte 0x3102024 .byte 0x9f .8byte 0 .8byte 0 .LLST24: .8byte .LVL27 .8byte .LVL28 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte 0 .8byte 0 .LLST25: .8byte .LVL28 .8byte .LVL29 .2byte 0x6 .byte 0xc .4byte 0x3102028 .byte 0x9f .8byte 0 .8byte 0 .LLST26: .8byte .LVL28 .8byte .LVL29 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte 0 .8byte 0 .LLST15: .8byte .LVL21 .8byte .LVL22 .2byte 0x6 .byte 0xc .4byte 0x3102020 .byte 0x9f .8byte 0 .8byte 0 .LLST16: .8byte .LVL21 .8byte .LVL22 .2byte 0x3 .byte 0x9 .byte 0xff .byte 0x9f .8byte 0 .8byte 0 .LLST17: .8byte .LVL22 .8byte .LVL23 .2byte 0x6 .byte 0xc .4byte 0x3102024 .byte 0x9f .8byte 0 .8byte 0 .LLST18: .8byte .LVL22 .8byte .LVL23 .2byte 0x3 .byte 0x8 .byte 0xff .byte 0x9f .8byte 0 .8byte 0 .LLST19: .8byte .LVL23 .8byte .LVL24 .2byte 0x6 .byte 0xc .4byte 0x3102028 .byte 0x9f .8byte 0 .8byte 0 .LLST20: .8byte .LVL23 .8byte .LVL24 .2byte 0x4 .byte 0xa .2byte 0xffff .byte 0x9f .8byte 0 .8byte 0 .LLST4: .8byte .LVL7 .8byte .LVL16 .2byte 0x1 .byte 0x5a .8byte .LVL16 .8byte .LFE42 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte 0 .8byte 0 .LLST5: .8byte .LVL10 .8byte .LVL13 .2byte 0x1 .byte 0x5f .8byte .LVL13 .8byte .LVL14 .2byte 0x9 .byte 0x7f .byte 0 .byte 0x11 .byte 0xff,0xff,0xff,0x7e .byte 0x1a .byte 0x9f .8byte .LVL18 .8byte .LFE42 .2byte 0x5 .byte 0xc .4byte 0x3000150 .8byte 0 .8byte 0 .LLST6: .8byte .LVL7 .8byte .LVL8 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL8 .8byte .LVL12 .2byte 0x1 .byte 0x5e .8byte 0 .8byte 0 .LLST7: .8byte .LVL8 .8byte .LVL10 .2byte 0x6 .byte 0xc .4byte 0x3000150 .byte 0x9f .8byte 0 .8byte 0 .LLST8: .8byte .LVL9 .8byte .LVL10 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST9: .8byte .LVL13 .8byte .LVL15 .2byte 0x6 .byte 0xc .4byte 0x3000150 .byte 0x9f .8byte 0 .8byte 0 .LLST10: .8byte .LVL13 .8byte .LVL14 .2byte 0x9 .byte 0x7f .byte 0 .byte 0x11 .byte 0xff,0xff,0xff,0x7e .byte 0x1a .byte 0x9f .8byte 0 .8byte 0 .LLST11: .8byte .LVL15 .8byte .LVL17 .2byte 0x2 .byte 0x31 .byte 0x9f .8byte 0 .8byte 0 .LLST12: .8byte .LVL17 .8byte .LVL18 .2byte 0x6 .byte 0xc .4byte 0x3000150 .byte 0x9f .8byte 0 .8byte 0 .LLST13: .8byte .LVL17 .8byte .LVL18 .2byte 0x5 .byte 0xc .4byte 0x3000150 .8byte 0 .8byte 0 .LLST0: .8byte .LVL1 .8byte .LVL2 .2byte 0x1 .byte 0x5c .8byte .LVL2 .8byte .LVL4 .2byte 0x7 .byte 0x7f .byte 0 .byte 0x20 .byte 0x7c .byte 0 .byte 0x22 .byte 0x9f .8byte .LVL4 .8byte .LFE40 .2byte 0x6 .byte 0x7c .byte 0 .byte 0x7f .byte 0 .byte 0x1c .byte 0x9f .8byte 0 .8byte 0 .LLST1: .8byte .LVL1 .8byte .LVL2 .2byte 0x1 .byte 0x5b .8byte .LVL2 .8byte .LVL3 .2byte 0x6 .byte 0x7b .byte 0 .byte 0x7f .byte 0 .byte 0x22 .byte 0x9f .8byte .LVL3 .8byte .LVL4 .2byte 0x8 .byte 0x7b .byte 0 .byte 0x7f .byte 0 .byte 0x22 .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL4 .8byte .LFE40 .2byte 0x6 .byte 0x7b .byte 0 .byte 0x7f .byte 0 .byte 0x22 .byte 0x9f .8byte 0 .8byte 0 .LLST2: .8byte .LVL1 .8byte .LVL2 .2byte 0x1 .byte 0x5a .8byte .LVL2 .8byte .LVL3 .2byte 0x6 .byte 0x7a .byte 0 .byte 0x7f .byte 0 .byte 0x22 .byte 0x9f .8byte .LVL3 .8byte .LVL4 .2byte 0x8 .byte 0x7a .byte 0 .byte 0x7f .byte 0 .byte 0x22 .byte 0x23 .byte 0x1 .byte 0x9f .8byte .LVL4 .8byte .LFE40 .2byte 0x6 .byte 0x7a .byte 0 .byte 0x7f .byte 0 .byte 0x22 .byte 0x9f .8byte 0 .8byte 0 .LLST3: .8byte .LVL5 .8byte .LVL6-1 .2byte 0x1 .byte 0x5a .8byte .LVL6-1 .8byte .LFE41 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5a .byte 0x9f .8byte 0 .8byte 0 .LLST14: .8byte .LVL19 .8byte .LVL20 .2byte 0x1 .byte 0x5b .8byte .LVL20 .8byte .LFE43 .2byte 0x4 .byte 0xf3 .byte 0x1 .byte 0x5b .byte 0x9f .8byte 0 .8byte 0 .LLST580: .8byte .LVL872 .8byte .LVL874 .2byte 0x1 .byte 0x5f .8byte .LVL874 .8byte .LVL875 .2byte 0x13 .byte 0x7e .byte 0x90,0x2 .byte 0x94 .byte 0x4 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x8 .byte 0x20 .byte 0x26 .byte 0x11 .byte 0x80,0x81,0x82,0x84,0x78 .byte 0x1a .byte 0x9f .8byte .LVL875 .8byte .LVL877 .2byte 0x1 .byte 0x5f .8byte .LVL877 .8byte .LVL883 .2byte 0x3 .byte 0x7e .byte 0x90,0x2 .8byte 0 .8byte 0 .LLST581: .8byte .LVL870 .8byte .LVL872 .2byte 0x6 .byte 0xc .4byte 0x3103110 .byte 0x9f .8byte 0 .8byte 0 .LLST582: .8byte .LVL871 .8byte .LVL872 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST583: .8byte .LVL875 .8byte .LVL876 .2byte 0x6 .byte 0xc .4byte 0x3103110 .byte 0x9f .8byte 0 .8byte 0 .LLST584: .8byte .LVL875 .8byte .LVL876 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST585: .8byte .LVL878 .8byte .LVL883 .2byte 0x1 .byte 0x5a .8byte 0 .8byte 0 .LLST586: .8byte .LVL880 .8byte .LVL881 .2byte 0x1 .byte 0x5f .8byte .LVL881 .8byte .LVL882 .2byte 0x1 .byte 0x5d .8byte .LVL882 .8byte .LVL883 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST587: .8byte .LVL878 .8byte .LVL880 .2byte 0x6 .byte 0xc .4byte 0x3103114 .byte 0x9f .8byte 0 .8byte 0 .LLST588: .8byte .LVL879 .8byte .LVL880 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .LLST589: .8byte .LVL882 .8byte .LVL883 .2byte 0x6 .byte 0xc .4byte 0x3103114 .byte 0x9f .8byte 0 .8byte 0 .LLST590: .8byte .LVL882 .8byte .LVL883 .2byte 0x1 .byte 0x5f .8byte 0 .8byte 0 .section .debug_aranges,"",@progbits .4byte 0x20c .2byte 0x2 .4byte .Ldebug_info0 .byte 0x8 .byte 0 .2byte 0 .2byte 0 .8byte .LFB37 .8byte .LFE37-.LFB37 .8byte .LFB38 .8byte .LFE38-.LFB38 .8byte .LFB39 .8byte .LFE39-.LFB39 .8byte .LFB40 .8byte .LFE40-.LFB40 .8byte .LFB41 .8byte .LFE41-.LFB41 .8byte .LFB42 .8byte .LFE42-.LFB42 .8byte .LFB43 .8byte .LFE43-.LFB43 .8byte .LFB44 .8byte .LFE44-.LFB44 .8byte .LFB45 .8byte .LFE45-.LFB45 .8byte .LFB46 .8byte .LFE46-.LFB46 .8byte .LFB47 .8byte .LFE47-.LFB47 .8byte .LFB48 .8byte .LFE48-.LFB48 .8byte .LFB49 .8byte .LFE49-.LFB49 .8byte .LFB50 .8byte .LFE50-.LFB50 .8byte .LFB51 .8byte .LFE51-.LFB51 .8byte .LFB52 .8byte .LFE52-.LFB52 .8byte .LFB53 .8byte .LFE53-.LFB53 .8byte .LFB54 .8byte .LFE54-.LFB54 .8byte .LFB55 .8byte .LFE55-.LFB55 .8byte .LFB56 .8byte .LFE56-.LFB56 .8byte .LFB57 .8byte .LFE57-.LFB57 .8byte .LFB58 .8byte .LFE58-.LFB58 .8byte .LFB60 .8byte .LFE60-.LFB60 .8byte .LFB63 .8byte .LFE63-.LFB63 .8byte .LFB64 .8byte .LFE64-.LFB64 .8byte .LFB65 .8byte .LFE65-.LFB65 .8byte .LFB59 .8byte .LFE59-.LFB59 .8byte .LFB61 .8byte .LFE61-.LFB61 .8byte .LFB62 .8byte .LFE62-.LFB62 .8byte .LFB66 .8byte .LFE66-.LFB66 .8byte .LFB67 .8byte .LFE67-.LFB67 .8byte 0 .8byte 0 .section .debug_ranges,"",@progbits .Ldebug_ranges0: .8byte .LBB1164 .8byte .LBE1164 .8byte .LBB1167 .8byte .LBE1167 .8byte 0 .8byte 0 .8byte .LBB1184 .8byte .LBE1184 .8byte .LBB1190 .8byte .LBE1190 .8byte 0 .8byte 0 .8byte .LBB1187 .8byte .LBE1187 .8byte .LBB1191 .8byte .LBE1191 .8byte 0 .8byte 0 .8byte .LBB1202 .8byte .LBE1202 .8byte .LBB1205 .8byte .LBE1205 .8byte 0 .8byte 0 .8byte .LBB1232 .8byte .LBE1232 .8byte .LBB1235 .8byte .LBE1235 .8byte 0 .8byte 0 .8byte .LBB1236 .8byte .LBE1236 .8byte .LBB1239 .8byte .LBE1239 .8byte 0 .8byte 0 .8byte .LBB1258 .8byte .LBE1258 .8byte .LBB1261 .8byte .LBE1261 .8byte 0 .8byte 0 .8byte .LBB1262 .8byte .LBE1262 .8byte .LBB1265 .8byte .LBE1265 .8byte 0 .8byte 0 .8byte .LBB1266 .8byte .LBE1266 .8byte .LBB1270 .8byte .LBE1270 .8byte .LBB1271 .8byte .LBE1271 .8byte 0 .8byte 0 .8byte .LBB1274 .8byte .LBE1274 .8byte .LBB1277 .8byte .LBE1277 .8byte 0 .8byte 0 .8byte .LBB1280 .8byte .LBE1280 .8byte .LBB1283 .8byte .LBE1283 .8byte 0 .8byte 0 .8byte .LBB1330 .8byte .LBE1330 .8byte .LBB1333 .8byte .LBE1333 .8byte 0 .8byte 0 .8byte .LBB1334 .8byte .LBE1334 .8byte .LBB1337 .8byte .LBE1337 .8byte 0 .8byte 0 .8byte .LBB1338 .8byte .LBE1338 .8byte .LBB1341 .8byte .LBE1341 .8byte 0 .8byte 0 .8byte .LBB1342 .8byte .LBE1342 .8byte .LBB1345 .8byte .LBE1345 .8byte 0 .8byte 0 .8byte .LBB1346 .8byte .LBE1346 .8byte .LBB1349 .8byte .LBE1349 .8byte 0 .8byte 0 .8byte .LBB1350 .8byte .LBE1350 .8byte .LBB1353 .8byte .LBE1353 .8byte 0 .8byte 0 .8byte .LBB1356 .8byte .LBE1356 .8byte .LBB1359 .8byte .LBE1359 .8byte 0 .8byte 0 .8byte .LBB1360 .8byte .LBE1360 .8byte .LBB1363 .8byte .LBE1363 .8byte 0 .8byte 0 .8byte .LBB1364 .8byte .LBE1364 .8byte .LBB1367 .8byte .LBE1367 .8byte 0 .8byte 0 .8byte .LBB1368 .8byte .LBE1368 .8byte .LBB1371 .8byte .LBE1371 .8byte 0 .8byte 0 .8byte .LBB1372 .8byte .LBE1372 .8byte .LBB1375 .8byte .LBE1375 .8byte 0 .8byte 0 .8byte .LBB1376 .8byte .LBE1376 .8byte .LBB1379 .8byte .LBE1379 .8byte 0 .8byte 0 .8byte .LBB1380 .8byte .LBE1380 .8byte .LBB1383 .8byte .LBE1383 .8byte 0 .8byte 0 .8byte .LBB1386 .8byte .LBE1386 .8byte .LBB1389 .8byte .LBE1389 .8byte 0 .8byte 0 .8byte .LBB1394 .8byte .LBE1394 .8byte .LBB1397 .8byte .LBE1397 .8byte 0 .8byte 0 .8byte .LBB1402 .8byte .LBE1402 .8byte .LBB1405 .8byte .LBE1405 .8byte 0 .8byte 0 .8byte .LBB1408 .8byte .LBE1408 .8byte .LBB1411 .8byte .LBE1411 .8byte 0 .8byte 0 .8byte .LBB1414 .8byte .LBE1414 .8byte .LBB1417 .8byte .LBE1417 .8byte 0 .8byte 0 .8byte .LBB1420 .8byte .LBE1420 .8byte .LBB1437 .8byte .LBE1437 .8byte 0 .8byte 0 .8byte .LBB1427 .8byte .LBE1427 .8byte .LBB1430 .8byte .LBE1430 .8byte 0 .8byte 0 .8byte .LBB1438 .8byte .LBE1438 .8byte .LBB1441 .8byte .LBE1441 .8byte 0 .8byte 0 .8byte .LBB1442 .8byte .LBE1442 .8byte .LBB1445 .8byte .LBE1445 .8byte 0 .8byte 0 .8byte .LBB1446 .8byte .LBE1446 .8byte .LBB1449 .8byte .LBE1449 .8byte 0 .8byte 0 .8byte .LBB1450 .8byte .LBE1450 .8byte .LBB1453 .8byte .LBE1453 .8byte 0 .8byte 0 .8byte .LBB1460 .8byte .LBE1460 .8byte .LBB1463 .8byte .LBE1463 .8byte 0 .8byte 0 .8byte .LBB1466 .8byte .LBE1466 .8byte .LBB1469 .8byte .LBE1469 .8byte 0 .8byte 0 .8byte .LBB1470 .8byte .LBE1470 .8byte .LBB1474 .8byte .LBE1474 .8byte .LBB1475 .8byte .LBE1475 .8byte 0 .8byte 0 .8byte .LBB1476 .8byte .LBE1476 .8byte .LBB1479 .8byte .LBE1479 .8byte 0 .8byte 0 .8byte .LBB1482 .8byte .LBE1482 .8byte .LBB1485 .8byte .LBE1485 .8byte 0 .8byte 0 .8byte .LBB1488 .8byte .LBE1488 .8byte .LBB1491 .8byte .LBE1491 .8byte 0 .8byte 0 .8byte .LBB1494 .8byte .LBE1494 .8byte .LBB1497 .8byte .LBE1497 .8byte 0 .8byte 0 .8byte .LBB1504 .8byte .LBE1504 .8byte .LBB1507 .8byte .LBE1507 .8byte 0 .8byte 0 .8byte .LBB1514 .8byte .LBE1514 .8byte .LBB1517 .8byte .LBE1517 .8byte 0 .8byte 0 .8byte .LBB1520 .8byte .LBE1520 .8byte .LBB1523 .8byte .LBE1523 .8byte 0 .8byte 0 .8byte .LBB1526 .8byte .LBE1526 .8byte .LBB1529 .8byte .LBE1529 .8byte 0 .8byte 0 .8byte .LBB1534 .8byte .LBE1534 .8byte .LBB1537 .8byte .LBE1537 .8byte 0 .8byte 0 .8byte .LBB1540 .8byte .LBE1540 .8byte .LBB1543 .8byte .LBE1543 .8byte 0 .8byte 0 .8byte .LBB1546 .8byte .LBE1546 .8byte .LBB1549 .8byte .LBE1549 .8byte 0 .8byte 0 .8byte .LBB1552 .8byte .LBE1552 .8byte .LBB1558 .8byte .LBE1558 .8byte 0 .8byte 0 .8byte .LBB1555 .8byte .LBE1555 .8byte .LBB1559 .8byte .LBE1559 .8byte 0 .8byte 0 .8byte .LBB1562 .8byte .LBE1562 .8byte .LBB1565 .8byte .LBE1565 .8byte 0 .8byte 0 .8byte .LBB1588 .8byte .LBE1588 .8byte .LBB1592 .8byte .LBE1592 .8byte .LBB1593 .8byte .LBE1593 .8byte 0 .8byte 0 .8byte .LBB1604 .8byte .LBE1604 .8byte .LBB1607 .8byte .LBE1607 .8byte 0 .8byte 0 .8byte .LBB1608 .8byte .LBE1608 .8byte .LBB1614 .8byte .LBE1614 .8byte 0 .8byte 0 .8byte .LBB1611 .8byte .LBE1611 .8byte .LBB1615 .8byte .LBE1615 .8byte 0 .8byte 0 .8byte .LBB1616 .8byte .LBE1616 .8byte .LBB1619 .8byte .LBE1619 .8byte 0 .8byte 0 .8byte .LBB1620 .8byte .LBE1620 .8byte .LBB1624 .8byte .LBE1624 .8byte .LBB1628 .8byte .LBE1628 .8byte 0 .8byte 0 .8byte .LBB1625 .8byte .LBE1625 .8byte .LBB1629 .8byte .LBE1629 .8byte 0 .8byte 0 .8byte .LBB1632 .8byte .LBE1632 .8byte .LBB1635 .8byte .LBE1635 .8byte 0 .8byte 0 .8byte .LBB1638 .8byte .LBE1638 .8byte .LBB1641 .8byte .LBE1641 .8byte 0 .8byte 0 .8byte .LBB1646 .8byte .LBE1646 .8byte .LBB1649 .8byte .LBE1649 .8byte 0 .8byte 0 .8byte .LBB1652 .8byte .LBE1652 .8byte .LBB1655 .8byte .LBE1655 .8byte 0 .8byte 0 .8byte .LBB1658 .8byte .LBE1658 .8byte .LBB1661 .8byte .LBE1661 .8byte 0 .8byte 0 .8byte .LBB1666 .8byte .LBE1666 .8byte .LBB1778 .8byte .LBE1778 .8byte 0 .8byte 0 .8byte .LBB1673 .8byte .LBE1673 .8byte .LBB1781 .8byte .LBE1781 .8byte 0 .8byte 0 .8byte .LBB1680 .8byte .LBE1680 .8byte .LBB1683 .8byte .LBE1683 .8byte 0 .8byte 0 .8byte .LBB1688 .8byte .LBE1688 .8byte .LBB1691 .8byte .LBE1691 .8byte 0 .8byte 0 .8byte .LBB1702 .8byte .LBE1702 .8byte .LBB1705 .8byte .LBE1705 .8byte 0 .8byte 0 .8byte .LBB1708 .8byte .LBE1708 .8byte .LBB1711 .8byte .LBE1711 .8byte 0 .8byte 0 .8byte .LBB1716 .8byte .LBE1716 .8byte .LBB1719 .8byte .LBE1719 .8byte 0 .8byte 0 .8byte .LBB1722 .8byte .LBE1722 .8byte .LBB1725 .8byte .LBE1725 .8byte 0 .8byte 0 .8byte .LBB1730 .8byte .LBE1730 .8byte .LBB1733 .8byte .LBE1733 .8byte 0 .8byte 0 .8byte .LBB1738 .8byte .LBE1738 .8byte .LBB1741 .8byte .LBE1741 .8byte 0 .8byte 0 .8byte .LBB1746 .8byte .LBE1746 .8byte .LBB1749 .8byte .LBE1749 .8byte 0 .8byte 0 .8byte .LBB1752 .8byte .LBE1752 .8byte .LBB1755 .8byte .LBE1755 .8byte 0 .8byte 0 .8byte .LBB1758 .8byte .LBE1758 .8byte .LBB1761 .8byte .LBE1761 .8byte 0 .8byte 0 .8byte .LBB1766 .8byte .LBE1766 .8byte .LBB1769 .8byte .LBE1769 .8byte 0 .8byte 0 .8byte .LBB1772 .8byte .LBE1772 .8byte .LBB1775 .8byte .LBE1775 .8byte 0 .8byte 0 .8byte .LBB1786 .8byte .LBE1786 .8byte .LBB1789 .8byte .LBE1789 .8byte 0 .8byte 0 .8byte .LBB1794 .8byte .LBE1794 .8byte .LBB1797 .8byte .LBE1797 .8byte 0 .8byte 0 .8byte .LBB1798 .8byte .LBE1798 .8byte .LBB1801 .8byte .LBE1801 .8byte 0 .8byte 0 .8byte .LBB1804 .8byte .LBE1804 .8byte .LBB1807 .8byte .LBE1807 .8byte 0 .8byte 0 .8byte .LBB1812 .8byte .LBE1812 .8byte .LBB1815 .8byte .LBE1815 .8byte 0 .8byte 0 .8byte .LBB1816 .8byte .LBE1816 .8byte .LBB1819 .8byte .LBE1819 .8byte 0 .8byte 0 .8byte .LBB1824 .8byte .LBE1824 .8byte .LBB1827 .8byte .LBE1827 .8byte 0 .8byte 0 .8byte .LBB1830 .8byte .LBE1830 .8byte .LBB1833 .8byte .LBE1833 .8byte 0 .8byte 0 .8byte .LBB1838 .8byte .LBE1838 .8byte .LBB1841 .8byte .LBE1841 .8byte 0 .8byte 0 .8byte .LBB1846 .8byte .LBE1846 .8byte .LBB1850 .8byte .LBE1850 .8byte .LBB1851 .8byte .LBE1851 .8byte 0 .8byte 0 .8byte .LBB1856 .8byte .LBE1856 .8byte .LBB1867 .8byte .LBE1867 .8byte 0 .8byte 0 .8byte .LBB1859 .8byte .LBE1859 .8byte .LBB1862 .8byte .LBE1862 .8byte 0 .8byte 0 .8byte .LBB1863 .8byte .LBE1863 .8byte .LBB1866 .8byte .LBE1866 .8byte 0 .8byte 0 .8byte .LBB1894 .8byte .LBE1894 .8byte .LBB1903 .8byte .LBE1903 .8byte .LBB1946 .8byte .LBE1946 .8byte .LBB1950 .8byte .LBE1950 .8byte 0 .8byte 0 .8byte .LBB1899 .8byte .LBE1899 .8byte .LBB1922 .8byte .LBE1922 .8byte .LBB1926 .8byte .LBE1926 .8byte 0 .8byte 0 .8byte .LBB1914 .8byte .LBE1914 .8byte .LBB1918 .8byte .LBE1918 .8byte .LBB1919 .8byte .LBE1919 .8byte 0 .8byte 0 .8byte .LBB1923 .8byte .LBE1923 .8byte .LBB1927 .8byte .LBE1927 .8byte 0 .8byte 0 .8byte .LBB1938 .8byte .LBE1938 .8byte .LBB1942 .8byte .LBE1942 .8byte .LBB1943 .8byte .LBE1943 .8byte 0 .8byte 0 .8byte .LBB1947 .8byte .LBE1947 .8byte .LBB1951 .8byte .LBE1951 .8byte 0 .8byte 0 .8byte .LBB1962 .8byte .LBE1962 .8byte .LBB1966 .8byte .LBE1966 .8byte .LBB1967 .8byte .LBE1967 .8byte 0 .8byte 0 .8byte .LBB1970 .8byte .LBE1970 .8byte .LBB1976 .8byte .LBE1976 .8byte 0 .8byte 0 .8byte .LBB1973 .8byte .LBE1973 .8byte .LBB1977 .8byte .LBE1977 .8byte 0 .8byte 0 .8byte .LBB1980 .8byte .LBE1980 .8byte .LBB1983 .8byte .LBE1983 .8byte 0 .8byte 0 .8byte .LBB1990 .8byte .LBE1990 .8byte .LBB1993 .8byte .LBE1993 .8byte 0 .8byte 0 .8byte .LBB2002 .8byte .LBE2002 .8byte .LBB2005 .8byte .LBE2005 .8byte 0 .8byte 0 .8byte .LBB2010 .8byte .LBE2010 .8byte .LBB2013 .8byte .LBE2013 .8byte 0 .8byte 0 .8byte .LBB2020 .8byte .LBE2020 .8byte .LBB2023 .8byte .LBE2023 .8byte 0 .8byte 0 .8byte .LBB2024 .8byte .LBE2024 .8byte .LBB2030 .8byte .LBE2030 .8byte 0 .8byte 0 .8byte .LBB2027 .8byte .LBE2027 .8byte .LBB2031 .8byte .LBE2031 .8byte 0 .8byte 0 .8byte .LBB2040 .8byte .LBE2040 .8byte .LBB2043 .8byte .LBE2043 .8byte 0 .8byte 0 .8byte .LBB2046 .8byte .LBE2046 .8byte .LBB2049 .8byte .LBE2049 .8byte 0 .8byte 0 .8byte .LBB2052 .8byte .LBE2052 .8byte .LBB2055 .8byte .LBE2055 .8byte 0 .8byte 0 .8byte .LBB2058 .8byte .LBE2058 .8byte .LBB2061 .8byte .LBE2061 .8byte 0 .8byte 0 .8byte .LBB2066 .8byte .LBE2066 .8byte .LBB2093 .8byte .LBE2093 .8byte 0 .8byte 0 .8byte .LBB2071 .8byte .LBE2071 .8byte .LBB2074 .8byte .LBE2074 .8byte 0 .8byte 0 .8byte .LBB2077 .8byte .LBE2077 .8byte .LBB2080 .8byte .LBE2080 .8byte 0 .8byte 0 .8byte .LBB2083 .8byte .LBE2083 .8byte .LBB2086 .8byte .LBE2086 .8byte 0 .8byte 0 .8byte .LFB37 .8byte .LFE37 .8byte .LFB38 .8byte .LFE38 .8byte .LFB39 .8byte .LFE39 .8byte .LFB40 .8byte .LFE40 .8byte .LFB41 .8byte .LFE41 .8byte .LFB42 .8byte .LFE42 .8byte .LFB43 .8byte .LFE43 .8byte .LFB44 .8byte .LFE44 .8byte .LFB45 .8byte .LFE45 .8byte .LFB46 .8byte .LFE46 .8byte .LFB47 .8byte .LFE47 .8byte .LFB48 .8byte .LFE48 .8byte .LFB49 .8byte .LFE49 .8byte .LFB50 .8byte .LFE50 .8byte .LFB51 .8byte .LFE51 .8byte .LFB52 .8byte .LFE52 .8byte .LFB53 .8byte .LFE53 .8byte .LFB54 .8byte .LFE54 .8byte .LFB55 .8byte .LFE55 .8byte .LFB56 .8byte .LFE56 .8byte .LFB57 .8byte .LFE57 .8byte .LFB58 .8byte .LFE58 .8byte .LFB60 .8byte .LFE60 .8byte .LFB63 .8byte .LFE63 .8byte .LFB64 .8byte .LFE64 .8byte .LFB65 .8byte .LFE65 .8byte .LFB59 .8byte .LFE59 .8byte .LFB61 .8byte .LFE61 .8byte .LFB62 .8byte .LFE62 .8byte .LFB66 .8byte .LFE66 .8byte .LFB67 .8byte .LFE67 .8byte 0 .8byte 0 .section .debug_line,"",@progbits .Ldebug_line0: .section .debug_str,"MS",@progbits,1 .LASF145: .string "sys_uart_printf" .LASF83: .string "mctl_com_init" .LASF121: .string "tcksrx" .LASF55: .string "temp_trp13" .LASF117: .string "trasmax" .LASF151: .string "handler_super_standby" .LASF13: .string "size_t" .LASF82: .string "mctl_phy_ac_remapping" .LASF44: .string "type" .LASF90: .string "ccm_set_pll_sscg" .LASF70: .string "ch_index" .LASF130: .string "eye_delay_compensation" .LASF115: .string "trfc" .LASF12: .string "long long unsigned int" .LASF143: .string "addr" .LASF87: .string "PLL_ADDR" .LASF105: .string "tmod" .LASF65: .string "DRAMC_get_dram_size" .LASF131: .string "dram_disable_all_master" .LASF6: .string "long long int" .LASF7: .string "signed char" .LASF64: .string "rank1_base_addr" .LASF53: .string "auto_scan_dram_config" .LASF114: .string "trefi" .LASF4: .string "long int" .LASF26: .string "dram_tpr1" .LASF73: .string "ddr_type" .LASF139: .string "memcpy_self" .LASF39: .string "__dram_para_t" .LASF78: .string "remap_ddr3_bf" .LASF150: .string "get_pmu_exist" .LASF94: .string "auto_set_timing_para" .LASF69: .string "mctl_channel_init" .LASF141: .string "pdst" .LASF146: .string "GNU C17 8.1.0 -march=rv64gcvxthead -mabi=lp64 -g -Os -fno-common -ffunction-sections -fno-builtin -ffreestanding -fno-stack-protector -fno-delete-null-pointer-checks" .LASF135: .string "mask" .LASF126: .string "set_master_priority_pad" .LASF19: .string "dram_para1" .LASF149: .string "__DRAM_PARA" .LASF59: .string "byte1_state" .LASF68: .string "temp" .LASF61: .string "rank_num" .LASF56: .string "temp_para1" .LASF0: .string "unsigned int" .LASF62: .string "addr_line" .LASF124: .string "time_ns" .LASF106: .string "tccd" .LASF71: .string "dqs_gating_mode" .LASF2: .string "long unsigned int" .LASF10: .string "__u32" .LASF123: .string "auto_cal_timing" .LASF66: .string "dram_size0" .LASF67: .string "dram_size1" .LASF152: .string "rv_readl" .LASF96: .string "tdinit0" .LASF107: .string "tcke" .LASF3: .string "short unsigned int" .LASF48: .string "get_pmu" .LASF132: .string "dram_enable_all_master" .LASF144: .string "sdelay" .LASF154: .string "memcpy" .LASF42: .string "mctl_init" .LASF95: .string "ctrl_freq" .LASF81: .string "remap_ddr_d1" .LASF93: .string "ccm_get_sscg" .LASF60: .string "auto_scan_dram_size" .LASF108: .string "trrd" .LASF102: .string "tcwl" .LASF50: .string "dramc_simple_wr_test" .LASF104: .string "tmrd" .LASF20: .string "dram_para2" .LASF14: .string "long double" .LASF46: .string "reg_val" .LASF86: .string "PLL_CTRL_ADDR" .LASF118: .string "twr2rd" .LASF129: .string "ic_dxN_wr_delay" .LASF133: .string "mctl_vrefzq_init" .LASF18: .string "dram_odt_en" .LASF140: .string "psrc" .LASF84: .string "mctl_sys_init" .LASF147: .string "mctl_hal.c" .LASF21: .string "dram_mr0" .LASF22: .string "dram_mr1" .LASF23: .string "dram_mr2" .LASF24: .string "dram_mr3" .LASF58: .string "byte0_state" .LASF1: .string "float" .LASF51: .string "test_length" .LASF101: .string "wr_latency" .LASF119: .string "trd2wr" .LASF54: .string "auto_scan_dram_rank_width" .LASF109: .string "trcd" .LASF77: .string "remap_ddr3_9" .LASF49: .string "mctl_core_init" .LASF8: .string "unsigned char" .LASF63: .string "rank_base_addr" .LASF120: .string "tckesr" .LASF25: .string "dram_tpr0" .LASF9: .string "short int" .LASF27: .string "dram_tpr2" .LASF28: .string "dram_tpr3" .LASF29: .string "dram_tpr4" .LASF30: .string "dram_tpr5" .LASF31: .string "dram_tpr6" .LASF32: .string "dram_tpr7" .LASF33: .string "dram_tpr8" .LASF34: .string "dram_tpr9" .LASF47: .string "dram_size" .LASF40: .string "ret_val" .LASF138: .string "dram_udelay" .LASF15: .string "dram_clk" .LASF127: .string "bit_delay_compensation" .LASF125: .string "value" .LASF134: .string "paraconfig" .LASF110: .string "tfaw" .LASF142: .string "set_ddr_voltage" .LASF155: .string "__builtin_memcpy" .LASF88: .string "wave_bot" .LASF11: .string "__u64" .LASF76: .string "remap_ddr3_8" .LASF5: .string "char" .LASF92: .string "PLL_PAT" .LASF97: .string "tdinit1" .LASF98: .string "tdinit2" .LASF99: .string "tdinit3" .LASF153: .string "rv_writel" .LASF52: .string "half_size" .LASF79: .string "remap_ddr3_a" .LASF111: .string "tras" .LASF136: .string "dram_vol_set" .LASF45: .string "para" .LASF57: .string "dqs_gate_detect" .LASF43: .string "init_DRAM" .LASF91: .string "PLL_CTRL" .LASF85: .string "ccm_set_pll_ddr_clk" .LASF35: .string "dram_tpr10" .LASF36: .string "dram_tpr11" .LASF37: .string "dram_tpr12" .LASF38: .string "dram_tpr13" .LASF75: .string "remap_ddr3_c" .LASF137: .string "vol_val" .LASF72: .string "rval" .LASF16: .string "dram_type" .LASF100: .string "t_rdata_en" .LASF113: .string "trtp" .LASF148: .string "/tina-d1/lichee/brandy-2.0/spl/drivers/dram/sun20iw1p1/lib-dram" .LASF41: .string "dram_para" .LASF103: .string "tmrw" .LASF80: .string "remap_ddr2" .LASF74: .string "remap_ddr3" .LASF17: .string "dram_zq" .LASF128: .string "ic_dxN_rd_delay" .LASF89: .string "pll_clk" .LASF122: .string "tcksre" .LASF116: .string "twtp" .LASF112: .string "twtr" .ident "GCC: (C-SKY RISCV Tools V1.8.3 B20200528) 8.1.0" xfel-1.3.5/payloads/d1_f133/f133-ddr/source/memcpy.S000066400000000000000000000030621512120643700214750ustar00rootroot00000000000000#include .global memcpy .type memcpy, %function .align 3 memcpy: move t6, a0 sltiu a3, a2, 128 bnez a3, 4f andi a3, t6, REGSZ - 1 andi a4, a1, REGSZ - 1 bne a3, a4, 4f beqz a3, 2f andi a3, a1, ~(REGSZ - 1) addi a3, a3, REGSZ sub a4, a3, a1 1: lb a5, 0(a1) addi a1, a1, 1 sb a5, 0(t6) addi t6, t6, 1 bltu a1, a3, 1b sub a2, a2, a4 2: andi a4, a2, ~((16 * REGSZ) - 1) beqz a4, 4f add a3, a1, a4 3: LREG a4, 0(a1) LREG a5, REGSZ(a1) LREG a6, 2 * REGSZ(a1) LREG a7, 3 * REGSZ(a1) LREG t0, 4 * REGSZ(a1) LREG t1, 5 * REGSZ(a1) LREG t2, 6 * REGSZ(a1) LREG t3, 7 * REGSZ(a1) LREG t4, 8 * REGSZ(a1) LREG t5, 9 * REGSZ(a1) SREG a4, 0(t6) SREG a5, REGSZ(t6) SREG a6, 2 * REGSZ(t6) SREG a7, 3 * REGSZ(t6) SREG t0, 4 * REGSZ(t6) SREG t1, 5 * REGSZ(t6) SREG t2, 6 * REGSZ(t6) SREG t3, 7 * REGSZ(t6) SREG t4, 8 * REGSZ(t6) SREG t5, 9 * REGSZ(t6) LREG a4, 10 * REGSZ(a1) LREG a5, 11 * REGSZ(a1) LREG a6, 12 * REGSZ(a1) LREG a7, 13 * REGSZ(a1) LREG t0, 14 * REGSZ(a1) LREG t1, 15 * REGSZ(a1) addi a1, a1, 16 * REGSZ SREG a4, 10 * REGSZ(t6) SREG a5, 11 * REGSZ(t6) SREG a6, 12 * REGSZ(t6) SREG a7, 13 * REGSZ(t6) SREG t0, 14 * REGSZ(t6) SREG t1, 15 * REGSZ(t6) addi t6, t6, 16 * REGSZ bltu a1, a3, 3b andi a2, a2, (16 * REGSZ) - 1 4: beqz a2, 6f add a3, a1, a2 or a5, a1, t6 or a5, a5, a3 andi a5, a5, 3 bnez a5, 5f 7: lw a4, 0(a1) addi a1, a1, 4 sw a4, 0(t6) addi t6, t6, 4 bltu a1, a3, 7b ret 5: lb a4, 0(a1) addi a1, a1, 1 sb a4, 0(t6) addi t6, t6, 1 bltu a1, a3, 5b 6: ret xfel-1.3.5/payloads/d1_f133/f133-ddr/source/memset.S000066400000000000000000000030641512120643700214770ustar00rootroot00000000000000#include .global memset .type memset, %function .align 3 memset: move t0, a0 sltiu a3, a2, 16 bnez a3, 4f addi a3, t0, REGSZ - 1 andi a3, a3, ~(REGSZ - 1) beq a3, t0, 2f sub a4, a3, t0 1: sb a1, 0(t0) addi t0, t0, 1 bltu t0, a3, 1b sub a2, a2, a4 2: andi a1, a1, 0xff slli a3, a1, 8 or a1, a3, a1 slli a3, a1, 16 or a1, a3, a1 #if __riscv_xlen == 64 slli a3, a1, 32 or a1, a3, a1 #endif andi a4, a2, ~(REGSZ - 1) add a3, t0, a4 andi a4, a4, 31 * REGSZ beqz a4, 3f neg a4, a4 addi a4, a4, 32 * REGSZ sub t0, t0, a4 la a5, 3f #if __riscv_xlen == 64 srli a4, a4, 1 #endif add a5, a5, a4 jr a5 3: SREG a1, 0(t0) SREG a1, REGSZ(t0) SREG a1, 2 * REGSZ(t0) SREG a1, 3 * REGSZ(t0) SREG a1, 4 * REGSZ(t0) SREG a1, 5 * REGSZ(t0) SREG a1, 6 * REGSZ(t0) SREG a1, 7 * REGSZ(t0) SREG a1, 8 * REGSZ(t0) SREG a1, 9 * REGSZ(t0) SREG a1, 10 * REGSZ(t0) SREG a1, 11 * REGSZ(t0) SREG a1, 12 * REGSZ(t0) SREG a1, 13 * REGSZ(t0) SREG a1, 14 * REGSZ(t0) SREG a1, 15 * REGSZ(t0) SREG a1, 16 * REGSZ(t0) SREG a1, 17 * REGSZ(t0) SREG a1, 18 * REGSZ(t0) SREG a1, 19 * REGSZ(t0) SREG a1, 20 * REGSZ(t0) SREG a1, 21 * REGSZ(t0) SREG a1, 22 * REGSZ(t0) SREG a1, 23 * REGSZ(t0) SREG a1, 24 * REGSZ(t0) SREG a1, 25 * REGSZ(t0) SREG a1, 26 * REGSZ(t0) SREG a1, 27 * REGSZ(t0) SREG a1, 28 * REGSZ(t0) SREG a1, 29 * REGSZ(t0) SREG a1, 30 * REGSZ(t0) SREG a1, 31 * REGSZ(t0) addi t0, t0, 32 * REGSZ bltu t0, a3, 3b andi a2, a2, REGSZ - 1 4: beqz a2, 6f add a3, t0, a2 5: sb a1, 0(t0) addi t0, t0, 1 bltu t0, a3, 5b 6: ret xfel-1.3.5/payloads/d1_f133/f133-ddr/source/start.S000066400000000000000000000037771512120643700213550ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include #include .global _start _start: li t1, 0x1 << 22 csrs mxstatus, t1 li t1, 0x30013 csrs mcor, t1 j reset ddr_param: .word 528 .word 2 .word 0x07b7bf9 .word 0x00 .word 0x000000d2 .word 0x00000000 .word 0x00000e73 .word 0x02 .word 0x0 .word 0x0 .word 0x00471992 .word 0x0131a10c .word 0x00057041 .word 0xb4787896 .word 0x0 .word 0x48484848 .word 0x48 .word 0x1621121e .word 0x0 .word 0x0 .word 0x00000000 .word 0x00030010 .word 0x00000035 .word 0x34000000 .word 0, 0, 0, 0, 0, 0, 0, 0 reset: addi sp, sp, -32 sd s0, 8(sp) sd s1, 16(sp) sd ra, 24(sp) mv s0, a0 li t0, 0x07090108 sw zero, (t0) jal sys_uart_init jal sys_clock_init la a0, ddr_param jal sys_dram_init ld ra, 24(sp) ld s0, 8(sp) ld s1, 16(sp) addi sp, sp, 32 ret xfel-1.3.5/payloads/d1_f133/f133-ddr/source/sys-clock.c000066400000000000000000000137211512120643700221350ustar00rootroot00000000000000/* * sys-clock.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include #include static inline uint64_t counter(void) { uint64_t cnt; __asm__ __volatile__("csrr %0, time\n" : "=r"(cnt) :: "memory"); return cnt; } void sdelay(unsigned long us) { uint64_t t1 = counter(); uint64_t t2 = t1 + us * 24; do { t1 = counter(); } while(t2 >= t1); } static void set_pll_cpux_axi(void) { uint32_t val; /* Select cpux clock src to osc24m, axi divide ratio is 3, system apb clk ratio is 4 */ write32(F133_CCU_BASE + CCU_RISCV_CLK_REG, (0 << 24) | (3 << 8) | (1 << 0)); sdelay(1); /* Disable pll gating */ val = read32(F133_CCU_BASE + CCU_PLL_CPU_CTRL_REG); val &= ~(1 << 27); write32(F133_CCU_BASE + CCU_PLL_CPU_CTRL_REG, val); /* Enable pll ldo */ val = read32(F133_CCU_BASE + CCU_PLL_CPU_CTRL_REG); val |= (1 << 30); write32(F133_CCU_BASE + CCU_PLL_CPU_CTRL_REG, val); sdelay(5); /* Set default clk to 1008mhz */ val = read32(F133_CCU_BASE + CCU_PLL_CPU_CTRL_REG); val &= ~((0x3 << 16) | (0xff << 8) | (0x3 << 0)); val |= (41 << 8); write32(F133_CCU_BASE + CCU_PLL_CPU_CTRL_REG, val); /* Lock enable */ val = read32(F133_CCU_BASE + CCU_PLL_CPU_CTRL_REG); val |= (1 << 29); write32(F133_CCU_BASE + CCU_PLL_CPU_CTRL_REG, val); /* Enable pll */ val = read32(F133_CCU_BASE + CCU_PLL_CPU_CTRL_REG); val |= (1 << 31); write32(F133_CCU_BASE + CCU_PLL_CPU_CTRL_REG, val); /* Wait pll stable */ while(!(read32(F133_CCU_BASE + CCU_PLL_CPU_CTRL_REG) & (0x1 << 28))); sdelay(20); /* Enable pll gating */ val = read32(F133_CCU_BASE + CCU_PLL_CPU_CTRL_REG); val |= (1 << 27); write32(F133_CCU_BASE + CCU_PLL_CPU_CTRL_REG, val); /* Lock disable */ val = read32(F133_CCU_BASE + CCU_PLL_CPU_CTRL_REG); val &= ~(1 << 29); write32(F133_CCU_BASE + CCU_PLL_CPU_CTRL_REG, val); sdelay(1); /* Set and change cpu clk src */ val = read32(F133_CCU_BASE + CCU_RISCV_CLK_REG); val &= ~(0x07 << 24 | 0x3 << 8 | 0xf << 0); val |= (0x05 << 24 | 0x1 << 8); write32(F133_CCU_BASE + CCU_RISCV_CLK_REG, val); sdelay(1); } static void set_pll_periph0(void) { uint32_t val; /* Periph0 has been enabled */ if(read32(F133_CCU_BASE + CCU_PLL_PERI0_CTRL_REG) & (1 << 31)) return; /* Change psi src to osc24m */ val = read32(F133_CCU_BASE + CCU_PSI_CLK_REG); val &= (~(0x3 << 24)); write32(val, F133_CCU_BASE + CCU_PSI_CLK_REG); /* Set default val */ write32(F133_CCU_BASE + CCU_PLL_PERI0_CTRL_REG, 0x63 << 8); /* Lock enable */ val = read32(F133_CCU_BASE + CCU_PLL_PERI0_CTRL_REG); val |= (1 << 29); write32(F133_CCU_BASE + CCU_PLL_PERI0_CTRL_REG, val); /* Enabe pll 600m(1x) 1200m(2x) */ val = read32(F133_CCU_BASE + CCU_PLL_PERI0_CTRL_REG); val |= (1 << 31); write32(F133_CCU_BASE + CCU_PLL_PERI0_CTRL_REG, val); /* Wait pll stable */ while(!(read32(F133_CCU_BASE + CCU_PLL_PERI0_CTRL_REG) & (0x1 << 28))); sdelay(20); /* Lock disable */ val = read32(F133_CCU_BASE + CCU_PLL_PERI0_CTRL_REG); val &= ~(1 << 29); write32(F133_CCU_BASE + CCU_PLL_PERI0_CTRL_REG, val); } static void set_ahb(void) { write32(F133_CCU_BASE + CCU_PSI_CLK_REG, (2 << 0) | (0 << 8)); write32(F133_CCU_BASE + CCU_PSI_CLK_REG, read32(F133_CCU_BASE + CCU_PSI_CLK_REG) | (0x03 << 24)); sdelay(1); } static void set_apb(void) { write32(F133_CCU_BASE + CCU_APB0_CLK_REG, (2 << 0) | (1 << 8)); write32(F133_CCU_BASE + CCU_APB0_CLK_REG, (0x03 << 24) | read32(F133_CCU_BASE + CCU_APB0_CLK_REG)); sdelay(1); } static void set_dma(void) { /* Dma reset */ write32(F133_CCU_BASE + CCU_DMA_BGR_REG, read32(F133_CCU_BASE + CCU_DMA_BGR_REG) | (1 << 16)); sdelay(20); /* Enable gating clock for dma */ write32(F133_CCU_BASE + CCU_DMA_BGR_REG, read32(F133_CCU_BASE + CCU_DMA_BGR_REG) | (1 << 0)); } static void set_mbus(void) { uint32_t val; /* Reset mbus domain */ val = read32(F133_CCU_BASE + CCU_MBUS_CLK_REG); val |= (0x1 << 30); write32(F133_CCU_BASE + CCU_MBUS_CLK_REG, val); sdelay(1); /* Enable mbus master clock gating */ write32(F133_CCU_BASE + CCU_MBUS_MAT_CLK_GATING_REG, 0x00000d87); } static void set_module(virtual_addr_t addr) { uint32_t val; if(!(read32(addr) & (1 << 31))) { val = read32(addr); write32(addr, val | (1 << 31) | (1 << 30)); /* Lock enable */ val = read32(addr); val |= (1 << 29); write32(addr, val); /* Wait pll stable */ while(!(read32(addr) & (0x1 << 28))); sdelay(20); /* Lock disable */ val = read32(addr); val &= ~(1 << 29); write32(addr, val); } } void sys_clock_init(void) { set_pll_cpux_axi(); set_pll_periph0(); set_ahb(); set_apb(); set_dma(); set_mbus(); set_module(F133_CCU_BASE + CCU_PLL_PERI0_CTRL_REG); set_module(F133_CCU_BASE + CCU_PLL_VIDEO0_CTRL_REG); set_module(F133_CCU_BASE + CCU_PLL_VIDEO1_CTRL_REG); set_module(F133_CCU_BASE + CCU_PLL_VE_CTRL); set_module(F133_CCU_BASE + CCU_PLL_AUDIO0_CTRL_REG); set_module(F133_CCU_BASE + CCU_PLL_AUDIO1_CTRL_REG); } xfel-1.3.5/payloads/d1_f133/f133-ddr/source/sys-dram.c000066400000000000000000000025311512120643700217620ustar00rootroot00000000000000/* * sys-dram.c * * Copyright(c) 2007-2020 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include extern int init_DRAM(int type, void * param); void sys_dram_init(void * param) { init_DRAM(0, param); } xfel-1.3.5/payloads/d1_f133/f133-ddr/source/sys-uart.c000066400000000000000000000076171512120643700220240ustar00rootroot00000000000000/* * sys-uart.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include void sys_uart_init(void) { virtual_addr_t addr; u32_t val; /* Config GPIOE2 and GPIOE3 to txd0 and rxd0 */ addr = 0x020000c0 + 0x0; val = read32(addr); val &= ~(0xf << ((2 & 0x7) << 2)); val |= ((0x6 & 0xf) << ((2 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((3 & 0x7) << 2)); val |= ((0x6 & 0xf) << ((3 & 0x7) << 2)); write32(addr, val); /* Open the clock gate for uart0 */ addr = 0x0200190c; val = read32(addr); val |= 1 << 0; write32(addr, val); /* Deassert uart0 reset */ addr = 0x0200190c; val = read32(addr); val |= 1 << 16; write32(addr, val); /* Config uart0 to 115200-8-1-0 */ addr = 0x02500000; write32(addr + 0x04, 0x0); write32(addr + 0x08, 0xf7); write32(addr + 0x10, 0x0); val = read32(addr + 0x0c); val |= (1 << 7); write32(addr + 0x0c, val); write32(addr + 0x00, 0xd & 0xff); write32(addr + 0x04, (0xd >> 8) & 0xff); val = read32(addr + 0x0c); val &= ~(1 << 7); write32(addr + 0x0c, val); val = read32(addr + 0x0c); val &= ~0x1f; val |= (0x3 << 0) | (0 << 2) | (0x0 << 3); write32(addr + 0x0c, val); } void sys_uart_putc(char c) { virtual_addr_t addr = 0x02500000; while((read32(addr + 0x7c) & (0x1 << 1)) == 0); write32(addr + 0x00, c); } static int vpf_str_to_num(const char * fmt, int * num) { const char * p; int res, d, isd; res = 0; for(p = fmt; *fmt != '\0'; p++) { isd = (*p >= '0' && *p <= '9'); if(!isd) break; d = *p - '0'; res *= 10; res += d; } *num = res; return ((int)(p - fmt)); } static void vpf_num_to_str(uint32_t a, int ish, int pl, int pc) { char buf[32]; uint32_t base; int idx, i, t; for(i = 0; i < sizeof(buf); i++) buf[i] = pc; base = 10; if(ish) base = 16; idx = 0; do { t = a % base; if(t >= 10) buf[idx] = t - 10 + 'a'; else buf[idx] = t + '0'; a /= base; idx++; } while (a > 0); if(pl > 0) { if(pl >= sizeof(buf)) pl = sizeof(buf) - 1; if(idx < pl) idx = pl; } buf[idx] = '\0'; for(i = idx - 1; i >= 0; i--) sys_uart_putc(buf[i]); } static int vpf(const char * fmt, va_list va) { const char * p, * q; int f, c, vai, pl, pc, i; unsigned char t; pc = ' '; for(p = fmt; *p != '\0'; p++) { f = 0; pl = 0; c = *p; q = p; if(*p == '%') { q = p; p++; if(*p >= '0' && *p <= '9') p += vpf_str_to_num(p, &pl); f = *p; } if((f == 'd') || (f == 'x')) { vai = va_arg(va, int); vpf_num_to_str(vai, f == 'x', pl, pc); } else { for(i = 0; i < (p - q); i++) sys_uart_putc(q[i]); t = (unsigned char)(f != 0 ? f : c); sys_uart_putc(t); } } return 0; } int sys_uart_printf(const char * fmt, ...) { va_list va; va_start(va, fmt); vpf(fmt, va); va_end(va); return 0; } xfel-1.3.5/payloads/d1_f133/jtag/000077500000000000000000000000001512120643700162605ustar00rootroot00000000000000xfel-1.3.5/payloads/d1_f133/jtag/.gitignore000066400000000000000000000000731512120643700202500ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/d1_f133/jtag/Makefile000066400000000000000000000056101512120643700177220ustar00rootroot00000000000000# # Top makefile # CROSS ?= ~/Xuantie-900-gcc-elf-newlib-x86_64-V2.2.4/bin/riscv64-unknown-elf- NAME := jtag # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 CFLAGS := -g -ggdb -Wall -O3 CXXFLAGS := -g -ggdb -Wall -O3 LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -march=rv64gvxthead -mabi=lp64d -mcmodel=medany -fno-stack-protector LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/d1_f133/jtag/include/000077500000000000000000000000001512120643700177035ustar00rootroot00000000000000xfel-1.3.5/payloads/d1_f133/jtag/include/byteorder.h000066400000000000000000000043611512120643700220570ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/d1_f133/jtag/include/d1/000077500000000000000000000000001512120643700202075ustar00rootroot00000000000000xfel-1.3.5/payloads/d1_f133/jtag/include/d1/reg-ccu.h000066400000000000000000000050671512120643700217150ustar00rootroot00000000000000#ifndef __D1_REG_CCU_H__ #define __D1_REG_CCU_H__ #define D1_CCU_BASE (0x02001000) #define CCU_PLL_CPU_CTRL_REG (0x000) #define CCU_PLL_DDR_CTRL_REG (0x010) #define CCU_PLL_PERI0_CTRL_REG (0x020) #define CCU_PLL_PERI1_CTRL_REG (0x028) #define CCU_PLL_GPU_CTRL_REG (0x030) #define CCU_PLL_VIDEO0_CTRL_REG (0x040) #define CCU_PLL_VIDEO1_CTRL_REG (0x048) #define CCU_PLL_VE_CTRL (0x058) #define CCU_PLL_DE_CTRL (0x060) #define CCU_PLL_HSIC_CTRL (0x070) #define CCU_PLL_AUDIO0_CTRL_REG (0x078) #define CCU_PLL_AUDIO1_CTRL_REG (0x080) #define CCU_PLL_DDR_PAT0_CTRL_REG (0x110) #define CCU_PLL_DDR_PAT1_CTRL_REG (0x114) #define CCU_PLL_PERI0_PAT0_CTRL_REG (0x120) #define CCU_PLL_PERI0_PAT1_CTRL_REG (0x124) #define CCU_PLL_PERI1_PAT0_CTRL_REG (0x128) #define CCU_PLL_PERI1_PAT1_CTRL_REG (0x12c) #define CCU_PLL_GPU_PAT0_CTRL_REG (0x130) #define CCU_PLL_GPU_PAT1_CTRL_REG (0x134) #define CCU_PLL_VIDEO0_PAT0_CTRL_REG (0x140) #define CCU_PLL_VIDEO0_PAT1_CTRL_REG (0x144) #define CCU_PLL_VIDEO1_PAT0_CTRL_REG (0x148) #define CCU_PLL_VIDEO1_PAT1_CTRL_REG (0x14c) #define CCU_PLL_VE_PAT0_CTRL_REG (0x158) #define CCU_PLL_VE_PAT1_CTRL_REG (0x15c) #define CCU_PLL_DE_PAT0_CTRL_REG (0x160) #define CCU_PLL_DE_PAT1_CTRL_REG (0x164) #define CCU_PLL_HSIC_PAT0_CTRL_REG (0x170) #define CCU_PLL_HSIC_PAT1_CTRL_REG (0x174) #define CCU_PLL_AUDIO0_PAT0_CTRL_REG (0x178) #define CCU_PLL_AUDIO0_PAT1_CTRL_REG (0x17c) #define CCU_PLL_AUDIO1_PAT0_CTRL_REG (0x180) #define CCU_PLL_AUDIO1_PAT1_CTRL_REG (0x184) #define CCU_PLL_CPU_BIAS_REG (0x300) #define CCU_PLL_DDR_BIAS_REG (0x310) #define CCU_PLL_PERI0_BIAS_REG (0x320) #define CCU_PLL_PERI1_BIAS_REG (0x328) #define CCU_PLL_GPU_BIAS_REG (0x330) #define CCU_PLL_VIDEO0_BIAS_REG (0x340) #define CCU_PLL_VIDEO1_BIAS_REG (0x348) #define CCU_PLL_VE_BIAS_REG (0x358) #define CCU_PLL_DE_BIAS_REG (0x360) #define CCU_PLL_HSIC_BIAS_REG (0x370) #define CCU_PLL_AUDIO0_BIAS_REG (0x378) #define CCU_PLL_AUDIO1_BIAS_REG (0x380) #define CCU_PLL_CPU_TUN_REG (0x400) #define CCU_CPU_AXI_CFG_REG (0x500) #define CCU_CPU_GATING_REG (0x504) #define CCU_PSI_CLK_REG (0x510) #define CCU_AHB3_CLK_REG (0x51c) #define CCU_APB0_CLK_REG (0x520) #define CCU_APB1_CLK_REG (0x524) #define CCU_MBUS_CLK_REG (0x540) #define CCU_DMA_BGR_REG (0x70c) #define CCU_DRAM_CLK_REG (0x800) #define CCU_MBUS_MAT_CLK_GATING_REG (0x804) #define CCU_DRAM_BGR_REG (0x80c) #define CCU_RISCV_CLK_REG (0xd00) #define CCU_RISCV_GATING_REG (0xd04) #define CCU_RISCV_CFG_BGR_REG (0xd0c) #endif /* __D1_REG_CCU_H__ */ xfel-1.3.5/payloads/d1_f133/jtag/include/endian.h000066400000000000000000000007401512120643700213130ustar00rootroot00000000000000#ifndef __RISCV64_ENDIAN_H__ #define __RISCV64_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __RISCV64_ENDIAN_H__ */ xfel-1.3.5/payloads/d1_f133/jtag/include/io.h000066400000000000000000000016401512120643700204640ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/d1_f133/jtag/include/linkage.h000066400000000000000000000005461512120643700214730ustar00rootroot00000000000000#ifndef __RISCV64_LINKAGE_H__ #define __RISCV64_LINKAGE_H__ #ifdef __cplusplus extern "C" { #endif #if __riscv_xlen == 64 #define LREG ld #define SREG sd #define REGSZ 8 #define RVPTR .dword #elif __riscv_xlen == 32 #define LREG lw #define SREG sw #define REGSZ 4 #define RVPTR .word #endif #ifdef __cplusplus } #endif #endif /* __RISCV64_LINKAGE_H__ */ xfel-1.3.5/payloads/d1_f133/jtag/include/riscv64.h000066400000000000000000000054311512120643700213570ustar00rootroot00000000000000#ifndef __RISCV64_H__ #define __RISCV64_H__ #ifdef __cplusplus extern "C" { #endif #define MSTATUS_UIE (1 << 0) #define MSTATUS_SIE (1 << 1) #define MSTATUS_MIE (1 << 3) #define MSTATUS_UPIE (1 << 4) #define MSTATUS_SPIE (1 << 5) #define MSTATUS_MPIE (1 << 7) #define MSTATUS_SPP (1 << 8) #define MSTATUS_MPP (3 << 11) #define MSTATUS_FS (3 << 13) #define MSTATUS_XS (3 << 15) #define MSTATUS_MPRV (1 << 17) #define MSTATUS_SUM (1 << 18) #define MSTATUS_MXR (1 << 19) #define MSTATUS_TVM (1 << 20) #define MSTATUS_TW (1 << 21) #define MSTATUS_TSR (1 << 22) #define MSTATUS32_SD (1 << 31) #define MSTATUS_UXL (3ULL << 32) #define MSTATUS_SXL (3ULL << 34) #define MSTATUS64_SD (1ULL << 63) #define MIP_USIP (1 << 0) #define MIP_SSIP (1 << 1) #define MIP_MSIP (1 << 3) #define MIP_UTIP (1 << 4) #define MIP_STIP (1 << 5) #define MIP_MTIP (1 << 7) #define MIP_UEIP (1 << 8) #define MIP_SEIP (1 << 9) #define MIP_MEIP (1 << 11) #define MIE_USIE (1 << 0) #define MIE_SSIE (1 << 1) #define MIE_MSIE (1 << 3) #define MIE_UTIE (1 << 4) #define MIE_STIE (1 << 5) #define MIE_MTIE (1 << 7) #define MIE_UEIE (1 << 8) #define MIE_SEIE (1 << 9) #define MIE_MEIE (1 << 11) #define csr_swap(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrrw %0, " #csr ", %1" \ : "=r" (__v) : "rK" (__v) \ : "memory"); \ __v; \ }) #define csr_read(csr) \ ({ \ register unsigned long __v; \ __asm__ __volatile__ ("csrr %0, " #csr \ : "=r" (__v) : \ : "memory"); \ __v; \ }) #define csr_write(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrw " #csr ", %0" \ : : "rK" (__v) \ : "memory"); \ }) #define csr_read_set(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrrs %0, " #csr ", %1" \ : "=r" (__v) : "rK" (__v) \ : "memory"); \ __v; \ }) #define csr_set(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrs " #csr ", %0" \ : : "rK" (__v) \ : "memory"); \ }) #define csr_read_clear(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrrc %0, " #csr ", %1" \ : "=r" (__v) : "rK" (__v) \ : "memory"); \ __v; \ }) #define csr_clear(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrc " #csr ", %0" \ : : "rK" (__v) \ : "memory"); \ }) #ifdef __cplusplus } #endif #endif /* __RISCV64_H__ */ xfel-1.3.5/payloads/d1_f133/jtag/include/stdarg.h000066400000000000000000000010541512120643700213400ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/d1_f133/jtag/include/stddef.h000066400000000000000000000026101512120643700213240ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/d1_f133/jtag/include/stdint.h000066400000000000000000000010161512120643700213570ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/d1_f133/jtag/include/string.h000066400000000000000000000004241512120643700213620ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/d1_f133/jtag/include/types.h000066400000000000000000000021661512120643700212250ustar00rootroot00000000000000#ifndef __RISCV64_TYPES_H__ #define __RISCV64_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed long long ptrdiff_t; typedef signed long long intptr_t; typedef unsigned long long uintptr_t; typedef unsigned long long size_t; typedef signed long long ssize_t; typedef signed long off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned long irq_flags_t; typedef unsigned long long virtual_addr_t; typedef unsigned long long virtual_size_t; typedef unsigned long long physical_addr_t; typedef unsigned long long physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __RISCV64_TYPES_H__ */ xfel-1.3.5/payloads/d1_f133/jtag/include/xboot.h000066400000000000000000000004731512120643700212130ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/d1_f133/jtag/link.ld000066400000000000000000000026361512120643700175450ustar00rootroot00000000000000OUTPUT_FORMAT("elf64-littleriscv", "elf64-littleriscv", "elf64-littleriscv") OUTPUT_ARCH(riscv) ENTRY(_start) STACK_SIZE = 0x400; MEMORY { ram : org = 0x00020000, len = 0x00001000 /* 4 KB */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text*) .obj/source/sys-jtag.o (.text*) *(.text*) *(.iplt) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(.rodata*) *(.srodata*) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); PROVIDE(__global_pointer$ = . + 0x800); *(.sdata*) *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(16) (NOLOAD) : { PROVIDE(__stack_start = .); . += STACK_SIZE; . = ALIGN(16); PROVIDE(__stack_end = .); } > ram /DISCARD/ : { *(.dynsym) } /DISCARD/ : { *(.dynstr*) } /DISCARD/ : { *(.dynamic*) } /DISCARD/ : { *(.plt*) } /DISCARD/ : { *(.interp*) } /DISCARD/ : { *(.gnu*) } } xfel-1.3.5/payloads/d1_f133/jtag/source/000077500000000000000000000000001512120643700175605ustar00rootroot00000000000000xfel-1.3.5/payloads/d1_f133/jtag/source/start.S000066400000000000000000000030201512120643700210340ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include #include .global _start _start: li t1, 0x1 << 22 csrs mxstatus, t1 li t1, 0x30013 csrs mcor, t1 j reset reset: addi sp, sp, -32 sd s0, 8(sp) sd s1, 16(sp) sd ra, 24(sp) mv s0, a0 jal sys_jtag_init ld ra, 24(sp) ld s0, 8(sp) ld s1, 16(sp) addi sp, sp, 32 ret xfel-1.3.5/payloads/d1_f133/jtag/source/sys-jtag.c000066400000000000000000000035561512120643700214760ustar00rootroot00000000000000/* * sys-jtag.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include void sys_jtag_init(void) { virtual_addr_t addr; u32_t val; /* Config GPIOF0, GPIOF1, GPIOF3 and GPIOF5 to JTAG mode */ addr = 0x020000f0 + 0x00; val = read32(addr); val &= ~(0xf << ((0 & 0x7) << 2)); val |= ((0x4 & 0xf) << ((0 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((1 & 0x7) << 2)); val |= ((0x4 & 0xf) << ((1 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((3 & 0x7) << 2)); val |= ((0x4 & 0xf) << ((3 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((5 & 0x7) << 2)); val |= ((0x4 & 0xf) << ((5 & 0x7) << 2)); write32(addr, val); } xfel-1.3.5/payloads/d1_f133/read32/000077500000000000000000000000001512120643700164135ustar00rootroot00000000000000xfel-1.3.5/payloads/d1_f133/read32/.gitignore000066400000000000000000000000731512120643700204030ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/d1_f133/read32/Makefile000066400000000000000000000056671512120643700200710ustar00rootroot00000000000000# # Top makefile # CROSS ?= ~/Xuantie-900-gcc-elf-newlib-x86_64-V2.2.4/bin/riscv64-unknown-elf- NAME := read32 # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 -ffreestanding CFLAGS := -g -ggdb -Wall -O3 -ffreestanding CXXFLAGS := -g -ggdb -Wall -O3 -ffreestanding LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -march=rv64gvxthead -mabi=lp64d -mcmodel=medany -fno-stack-protector LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/d1_f133/read32/include/000077500000000000000000000000001512120643700200365ustar00rootroot00000000000000xfel-1.3.5/payloads/d1_f133/read32/include/byteorder.h000066400000000000000000000043611512120643700222120ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/d1_f133/read32/include/endian.h000066400000000000000000000007401512120643700214460ustar00rootroot00000000000000#ifndef __RISCV64_ENDIAN_H__ #define __RISCV64_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __RISCV64_ENDIAN_H__ */ xfel-1.3.5/payloads/d1_f133/read32/include/io.h000066400000000000000000000016401512120643700206170ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/d1_f133/read32/include/linkage.h000066400000000000000000000005461512120643700216260ustar00rootroot00000000000000#ifndef __RISCV64_LINKAGE_H__ #define __RISCV64_LINKAGE_H__ #ifdef __cplusplus extern "C" { #endif #if __riscv_xlen == 64 #define LREG ld #define SREG sd #define REGSZ 8 #define RVPTR .dword #elif __riscv_xlen == 32 #define LREG lw #define SREG sw #define REGSZ 4 #define RVPTR .word #endif #ifdef __cplusplus } #endif #endif /* __RISCV64_LINKAGE_H__ */ xfel-1.3.5/payloads/d1_f133/read32/include/riscv64.h000066400000000000000000000054311512120643700215120ustar00rootroot00000000000000#ifndef __RISCV64_H__ #define __RISCV64_H__ #ifdef __cplusplus extern "C" { #endif #define MSTATUS_UIE (1 << 0) #define MSTATUS_SIE (1 << 1) #define MSTATUS_MIE (1 << 3) #define MSTATUS_UPIE (1 << 4) #define MSTATUS_SPIE (1 << 5) #define MSTATUS_MPIE (1 << 7) #define MSTATUS_SPP (1 << 8) #define MSTATUS_MPP (3 << 11) #define MSTATUS_FS (3 << 13) #define MSTATUS_XS (3 << 15) #define MSTATUS_MPRV (1 << 17) #define MSTATUS_SUM (1 << 18) #define MSTATUS_MXR (1 << 19) #define MSTATUS_TVM (1 << 20) #define MSTATUS_TW (1 << 21) #define MSTATUS_TSR (1 << 22) #define MSTATUS32_SD (1 << 31) #define MSTATUS_UXL (3ULL << 32) #define MSTATUS_SXL (3ULL << 34) #define MSTATUS64_SD (1ULL << 63) #define MIP_USIP (1 << 0) #define MIP_SSIP (1 << 1) #define MIP_MSIP (1 << 3) #define MIP_UTIP (1 << 4) #define MIP_STIP (1 << 5) #define MIP_MTIP (1 << 7) #define MIP_UEIP (1 << 8) #define MIP_SEIP (1 << 9) #define MIP_MEIP (1 << 11) #define MIE_USIE (1 << 0) #define MIE_SSIE (1 << 1) #define MIE_MSIE (1 << 3) #define MIE_UTIE (1 << 4) #define MIE_STIE (1 << 5) #define MIE_MTIE (1 << 7) #define MIE_UEIE (1 << 8) #define MIE_SEIE (1 << 9) #define MIE_MEIE (1 << 11) #define csr_swap(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrrw %0, " #csr ", %1" \ : "=r" (__v) : "rK" (__v) \ : "memory"); \ __v; \ }) #define csr_read(csr) \ ({ \ register unsigned long __v; \ __asm__ __volatile__ ("csrr %0, " #csr \ : "=r" (__v) : \ : "memory"); \ __v; \ }) #define csr_write(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrw " #csr ", %0" \ : : "rK" (__v) \ : "memory"); \ }) #define csr_read_set(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrrs %0, " #csr ", %1" \ : "=r" (__v) : "rK" (__v) \ : "memory"); \ __v; \ }) #define csr_set(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrs " #csr ", %0" \ : : "rK" (__v) \ : "memory"); \ }) #define csr_read_clear(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrrc %0, " #csr ", %1" \ : "=r" (__v) : "rK" (__v) \ : "memory"); \ __v; \ }) #define csr_clear(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrc " #csr ", %0" \ : : "rK" (__v) \ : "memory"); \ }) #ifdef __cplusplus } #endif #endif /* __RISCV64_H__ */ xfel-1.3.5/payloads/d1_f133/read32/include/stdarg.h000066400000000000000000000010541512120643700214730ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/d1_f133/read32/include/stddef.h000066400000000000000000000026101512120643700214570ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/d1_f133/read32/include/stdint.h000066400000000000000000000010161512120643700215120ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/d1_f133/read32/include/string.h000066400000000000000000000004241512120643700215150ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/d1_f133/read32/include/types.h000066400000000000000000000021661512120643700213600ustar00rootroot00000000000000#ifndef __RISCV64_TYPES_H__ #define __RISCV64_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed long long ptrdiff_t; typedef signed long long intptr_t; typedef unsigned long long uintptr_t; typedef unsigned long long size_t; typedef signed long long ssize_t; typedef signed long off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned long irq_flags_t; typedef unsigned long long virtual_addr_t; typedef unsigned long long virtual_size_t; typedef unsigned long long physical_addr_t; typedef unsigned long long physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __RISCV64_TYPES_H__ */ xfel-1.3.5/payloads/d1_f133/read32/include/xboot.h000066400000000000000000000004731512120643700213460ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/d1_f133/read32/link.ld000066400000000000000000000025741512120643700177010ustar00rootroot00000000000000OUTPUT_FORMAT("elf64-littleriscv", "elf64-littleriscv", "elf64-littleriscv") OUTPUT_ARCH(riscv) ENTRY(_start) STACK_SIZE = 0x010; MEMORY { ram : org = 0x00045000, len = 0x00000200 /* 512B */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text*) *(.text*) *(.iplt) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(.rodata*) *(.srodata*) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); PROVIDE(__global_pointer$ = . + 0x800); *(.sdata*) *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(16) (NOLOAD) : { PROVIDE(__stack_start = .); . += STACK_SIZE; . = ALIGN(16); PROVIDE(__stack_end = .); } > ram /DISCARD/ : { *(.dynsym) } /DISCARD/ : { *(.dynstr*) } /DISCARD/ : { *(.dynamic*) } /DISCARD/ : { *(.plt*) } /DISCARD/ : { *(.interp*) } /DISCARD/ : { *(.gnu*) } } xfel-1.3.5/payloads/d1_f133/read32/source/000077500000000000000000000000001512120643700177135ustar00rootroot00000000000000xfel-1.3.5/payloads/d1_f133/read32/source/start.S000066400000000000000000000027601512120643700212010ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include #include .global _start _start: li t1, 0x1 << 22 csrs mxstatus, t1 li t1, 0x30013 csrs mcor, t1 j reset reset: la t0, _adr lw t0, (t0) lw t0, (t0) la t1, _val sw t0, (t1) ret .align 2 _adr: .word 0x11223344 _val: .word 0x55667788 xfel-1.3.5/payloads/d1_f133/spi/000077500000000000000000000000001512120643700161265ustar00rootroot00000000000000xfel-1.3.5/payloads/d1_f133/spi/.gitignore000066400000000000000000000000731512120643700201160ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/d1_f133/spi/Makefile000066400000000000000000000056071512120643700175760ustar00rootroot00000000000000# # Top makefile # CROSS ?= ~/Xuantie-900-gcc-elf-newlib-x86_64-V2.2.4/bin/riscv64-unknown-elf- NAME := spi # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 CFLAGS := -g -ggdb -Wall -O3 CXXFLAGS := -g -ggdb -Wall -O3 LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -march=rv64gvxthead -mabi=lp64d -mcmodel=medany -fno-stack-protector LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/d1_f133/spi/include/000077500000000000000000000000001512120643700175515ustar00rootroot00000000000000xfel-1.3.5/payloads/d1_f133/spi/include/byteorder.h000066400000000000000000000043611512120643700217250ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/d1_f133/spi/include/d1/000077500000000000000000000000001512120643700200555ustar00rootroot00000000000000xfel-1.3.5/payloads/d1_f133/spi/include/d1/reg-ccu.h000066400000000000000000000050671512120643700215630ustar00rootroot00000000000000#ifndef __D1_REG_CCU_H__ #define __D1_REG_CCU_H__ #define D1_CCU_BASE (0x02001000) #define CCU_PLL_CPU_CTRL_REG (0x000) #define CCU_PLL_DDR_CTRL_REG (0x010) #define CCU_PLL_PERI0_CTRL_REG (0x020) #define CCU_PLL_PERI1_CTRL_REG (0x028) #define CCU_PLL_GPU_CTRL_REG (0x030) #define CCU_PLL_VIDEO0_CTRL_REG (0x040) #define CCU_PLL_VIDEO1_CTRL_REG (0x048) #define CCU_PLL_VE_CTRL (0x058) #define CCU_PLL_DE_CTRL (0x060) #define CCU_PLL_HSIC_CTRL (0x070) #define CCU_PLL_AUDIO0_CTRL_REG (0x078) #define CCU_PLL_AUDIO1_CTRL_REG (0x080) #define CCU_PLL_DDR_PAT0_CTRL_REG (0x110) #define CCU_PLL_DDR_PAT1_CTRL_REG (0x114) #define CCU_PLL_PERI0_PAT0_CTRL_REG (0x120) #define CCU_PLL_PERI0_PAT1_CTRL_REG (0x124) #define CCU_PLL_PERI1_PAT0_CTRL_REG (0x128) #define CCU_PLL_PERI1_PAT1_CTRL_REG (0x12c) #define CCU_PLL_GPU_PAT0_CTRL_REG (0x130) #define CCU_PLL_GPU_PAT1_CTRL_REG (0x134) #define CCU_PLL_VIDEO0_PAT0_CTRL_REG (0x140) #define CCU_PLL_VIDEO0_PAT1_CTRL_REG (0x144) #define CCU_PLL_VIDEO1_PAT0_CTRL_REG (0x148) #define CCU_PLL_VIDEO1_PAT1_CTRL_REG (0x14c) #define CCU_PLL_VE_PAT0_CTRL_REG (0x158) #define CCU_PLL_VE_PAT1_CTRL_REG (0x15c) #define CCU_PLL_DE_PAT0_CTRL_REG (0x160) #define CCU_PLL_DE_PAT1_CTRL_REG (0x164) #define CCU_PLL_HSIC_PAT0_CTRL_REG (0x170) #define CCU_PLL_HSIC_PAT1_CTRL_REG (0x174) #define CCU_PLL_AUDIO0_PAT0_CTRL_REG (0x178) #define CCU_PLL_AUDIO0_PAT1_CTRL_REG (0x17c) #define CCU_PLL_AUDIO1_PAT0_CTRL_REG (0x180) #define CCU_PLL_AUDIO1_PAT1_CTRL_REG (0x184) #define CCU_PLL_CPU_BIAS_REG (0x300) #define CCU_PLL_DDR_BIAS_REG (0x310) #define CCU_PLL_PERI0_BIAS_REG (0x320) #define CCU_PLL_PERI1_BIAS_REG (0x328) #define CCU_PLL_GPU_BIAS_REG (0x330) #define CCU_PLL_VIDEO0_BIAS_REG (0x340) #define CCU_PLL_VIDEO1_BIAS_REG (0x348) #define CCU_PLL_VE_BIAS_REG (0x358) #define CCU_PLL_DE_BIAS_REG (0x360) #define CCU_PLL_HSIC_BIAS_REG (0x370) #define CCU_PLL_AUDIO0_BIAS_REG (0x378) #define CCU_PLL_AUDIO1_BIAS_REG (0x380) #define CCU_PLL_CPU_TUN_REG (0x400) #define CCU_CPU_AXI_CFG_REG (0x500) #define CCU_CPU_GATING_REG (0x504) #define CCU_PSI_CLK_REG (0x510) #define CCU_AHB3_CLK_REG (0x51c) #define CCU_APB0_CLK_REG (0x520) #define CCU_APB1_CLK_REG (0x524) #define CCU_MBUS_CLK_REG (0x540) #define CCU_DMA_BGR_REG (0x70c) #define CCU_DRAM_CLK_REG (0x800) #define CCU_MBUS_MAT_CLK_GATING_REG (0x804) #define CCU_DRAM_BGR_REG (0x80c) #define CCU_RISCV_CLK_REG (0xd00) #define CCU_RISCV_GATING_REG (0xd04) #define CCU_RISCV_CFG_BGR_REG (0xd0c) #endif /* __D1_REG_CCU_H__ */ xfel-1.3.5/payloads/d1_f133/spi/include/endian.h000066400000000000000000000007401512120643700211610ustar00rootroot00000000000000#ifndef __RISCV64_ENDIAN_H__ #define __RISCV64_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __RISCV64_ENDIAN_H__ */ xfel-1.3.5/payloads/d1_f133/spi/include/io.h000066400000000000000000000016401512120643700203320ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/d1_f133/spi/include/linkage.h000066400000000000000000000005461512120643700213410ustar00rootroot00000000000000#ifndef __RISCV64_LINKAGE_H__ #define __RISCV64_LINKAGE_H__ #ifdef __cplusplus extern "C" { #endif #if __riscv_xlen == 64 #define LREG ld #define SREG sd #define REGSZ 8 #define RVPTR .dword #elif __riscv_xlen == 32 #define LREG lw #define SREG sw #define REGSZ 4 #define RVPTR .word #endif #ifdef __cplusplus } #endif #endif /* __RISCV64_LINKAGE_H__ */ xfel-1.3.5/payloads/d1_f133/spi/include/riscv64.h000066400000000000000000000054311512120643700212250ustar00rootroot00000000000000#ifndef __RISCV64_H__ #define __RISCV64_H__ #ifdef __cplusplus extern "C" { #endif #define MSTATUS_UIE (1 << 0) #define MSTATUS_SIE (1 << 1) #define MSTATUS_MIE (1 << 3) #define MSTATUS_UPIE (1 << 4) #define MSTATUS_SPIE (1 << 5) #define MSTATUS_MPIE (1 << 7) #define MSTATUS_SPP (1 << 8) #define MSTATUS_MPP (3 << 11) #define MSTATUS_FS (3 << 13) #define MSTATUS_XS (3 << 15) #define MSTATUS_MPRV (1 << 17) #define MSTATUS_SUM (1 << 18) #define MSTATUS_MXR (1 << 19) #define MSTATUS_TVM (1 << 20) #define MSTATUS_TW (1 << 21) #define MSTATUS_TSR (1 << 22) #define MSTATUS32_SD (1 << 31) #define MSTATUS_UXL (3ULL << 32) #define MSTATUS_SXL (3ULL << 34) #define MSTATUS64_SD (1ULL << 63) #define MIP_USIP (1 << 0) #define MIP_SSIP (1 << 1) #define MIP_MSIP (1 << 3) #define MIP_UTIP (1 << 4) #define MIP_STIP (1 << 5) #define MIP_MTIP (1 << 7) #define MIP_UEIP (1 << 8) #define MIP_SEIP (1 << 9) #define MIP_MEIP (1 << 11) #define MIE_USIE (1 << 0) #define MIE_SSIE (1 << 1) #define MIE_MSIE (1 << 3) #define MIE_UTIE (1 << 4) #define MIE_STIE (1 << 5) #define MIE_MTIE (1 << 7) #define MIE_UEIE (1 << 8) #define MIE_SEIE (1 << 9) #define MIE_MEIE (1 << 11) #define csr_swap(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrrw %0, " #csr ", %1" \ : "=r" (__v) : "rK" (__v) \ : "memory"); \ __v; \ }) #define csr_read(csr) \ ({ \ register unsigned long __v; \ __asm__ __volatile__ ("csrr %0, " #csr \ : "=r" (__v) : \ : "memory"); \ __v; \ }) #define csr_write(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrw " #csr ", %0" \ : : "rK" (__v) \ : "memory"); \ }) #define csr_read_set(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrrs %0, " #csr ", %1" \ : "=r" (__v) : "rK" (__v) \ : "memory"); \ __v; \ }) #define csr_set(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrs " #csr ", %0" \ : : "rK" (__v) \ : "memory"); \ }) #define csr_read_clear(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrrc %0, " #csr ", %1" \ : "=r" (__v) : "rK" (__v) \ : "memory"); \ __v; \ }) #define csr_clear(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrc " #csr ", %0" \ : : "rK" (__v) \ : "memory"); \ }) #ifdef __cplusplus } #endif #endif /* __RISCV64_H__ */ xfel-1.3.5/payloads/d1_f133/spi/include/stdarg.h000066400000000000000000000010541512120643700212060ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/d1_f133/spi/include/stddef.h000066400000000000000000000026101512120643700211720ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/d1_f133/spi/include/stdint.h000066400000000000000000000010161512120643700212250ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/d1_f133/spi/include/string.h000066400000000000000000000004241512120643700212300ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/d1_f133/spi/include/types.h000066400000000000000000000021661512120643700210730ustar00rootroot00000000000000#ifndef __RISCV64_TYPES_H__ #define __RISCV64_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed long long ptrdiff_t; typedef signed long long intptr_t; typedef unsigned long long uintptr_t; typedef unsigned long long size_t; typedef signed long long ssize_t; typedef signed long off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned long irq_flags_t; typedef unsigned long long virtual_addr_t; typedef unsigned long long virtual_size_t; typedef unsigned long long physical_addr_t; typedef unsigned long long physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __RISCV64_TYPES_H__ */ xfel-1.3.5/payloads/d1_f133/spi/include/xboot.h000066400000000000000000000004731512120643700210610ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/d1_f133/spi/link.ld000066400000000000000000000026351512120643700174120ustar00rootroot00000000000000OUTPUT_FORMAT("elf64-littleriscv", "elf64-littleriscv", "elf64-littleriscv") OUTPUT_ARCH(riscv) ENTRY(_start) STACK_SIZE = 0x400; MEMORY { ram : org = 0x00020000, len = 0x00001000 /* 4 KB */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text*) .obj/source/sys-spi.o (.text*) *(.text*) *(.iplt) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(.rodata*) *(.srodata*) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); PROVIDE(__global_pointer$ = . + 0x800); *(.sdata*) *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(16) (NOLOAD) : { PROVIDE(__stack_start = .); . += STACK_SIZE; . = ALIGN(16); PROVIDE(__stack_end = .); } > ram /DISCARD/ : { *(.dynsym) } /DISCARD/ : { *(.dynstr*) } /DISCARD/ : { *(.dynamic*) } /DISCARD/ : { *(.plt*) } /DISCARD/ : { *(.interp*) } /DISCARD/ : { *(.gnu*) } } xfel-1.3.5/payloads/d1_f133/spi/source/000077500000000000000000000000001512120643700174265ustar00rootroot00000000000000xfel-1.3.5/payloads/d1_f133/spi/source/start.S000066400000000000000000000030411512120643700207050ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include #include .global _start _start: li t1, 0x1 << 22 csrs mxstatus, t1 li t1, 0x30013 csrs mcor, t1 j reset reset: addi sp, sp, -32 sd s0, 8(sp) sd s1, 16(sp) sd ra, 24(sp) mv s0, a0 li a0, 0x00021000 jal sys_spi_run ld ra, 24(sp) ld s0, 8(sp) ld s1, 16(sp) addi sp, sp, 32 ret xfel-1.3.5/payloads/d1_f133/spi/source/sys-spi.c000066400000000000000000000143611512120643700212060ustar00rootroot00000000000000/* * sys-spi.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include enum { SPI_GCR = 0x04, SPI_TCR = 0x08, SPI_IER = 0x10, SPI_ISR = 0x14, SPI_FCR = 0x18, SPI_FSR = 0x1c, SPI_WCR = 0x20, SPI_CCR = 0x24, SPI_MBC = 0x30, SPI_MTC = 0x34, SPI_BCC = 0x38, SPI_TXD = 0x200, SPI_RXD = 0x300, }; static void sys_spi_init(void) { virtual_addr_t addr; u32_t val; /* Config GPIOC2, GPIOC3, GPIOC4 and GPIOC5 */ addr = 0x02000060 + 0x00; val = read32(addr); val &= ~(0xf << ((2 & 0x7) << 2)); val |= ((0x2 & 0xf) << ((2 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((3 & 0x7) << 2)); val |= ((0x2 & 0xf) << ((3 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((4 & 0x7) << 2)); val |= ((0x2 & 0xf) << ((4 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((5 & 0x7) << 2)); val |= ((0x2 & 0xf) << ((5 & 0x7) << 2)); write32(addr, val); /* Deassert spi0 reset */ addr = 0x0200196c; val = read32(addr); val |= (1 << 16); write32(addr, val); /* Open the spi0 gate */ addr = 0x02001940; val = read32(addr); val |= (1 << 31); write32(addr, val); /* Open the spi0 bus gate */ addr = 0x0200196c; val = read32(addr); val |= (1 << 0); write32(addr, val); /* Select pll-periph0 for spi0 clk */ addr = 0x02001940; val = read32(addr); val &= ~(0x3 << 24); val |= 0x1 << 24; write32(addr, val); /* Set clock pre divide ratio, divided by 1 */ addr = 0x02001940; val = read32(addr); val &= ~(0x3 << 8); val |= 0x0 << 8; write32(addr, val); /* Set clock divide ratio, divided by 6 */ addr = 0x02001940; val = read32(addr); val &= ~(0xf << 0); val |= (6 - 1) << 0; write32(addr, val); /* Set spi clock rate control register, divided by 2 */ addr = 0x04025000; write32(addr + SPI_CCR, 0x1000); /* Enable spi0 and do a soft reset */ addr = 0x04025000; val = read32(addr + SPI_GCR); val |= (1 << 31) | (1 << 7) | (1 << 1) | (1 << 0); write32(addr + SPI_GCR, val); while(read32(addr + SPI_GCR) & (1 << 31)); val = read32(addr + SPI_TCR); val &= ~(0x3 << 0); val |= (1 << 6) | (1 << 2); write32(addr + SPI_TCR, val); val = read32(addr + SPI_FCR); val |= (1 << 31) | (1 << 15); write32(addr + SPI_FCR, val); } static void sys_spi_select(void) { virtual_addr_t addr = 0x04025000; u32_t val; val = read32(addr + SPI_TCR); val &= ~((0x3 << 4) | (0x1 << 7)); val |= ((0 & 0x3) << 4) | (0x0 << 7); write32(addr + SPI_TCR, val); } static void sys_spi_deselect(void) { virtual_addr_t addr = 0x04025000; u32_t val; val = read32(addr + SPI_TCR); val &= ~((0x3 << 4) | (0x1 << 7)); val |= ((0 & 0x3) << 4) | (0x1 << 7); write32(addr + SPI_TCR, val); } static inline void sys_spi_write_txbuf(u8_t * buf, int len) { virtual_addr_t addr = 0x04025000; int i; write32(addr + SPI_MTC, len & 0xffffff); write32(addr + SPI_BCC, len & 0xffffff); if(buf) { for(i = 0; i < len; i++) write8(addr + SPI_TXD, *buf++); } else { for(i = 0; i < len; i++) write8(addr + SPI_TXD, 0xff); } } static void sys_spi_transfer(void * txbuf, void * rxbuf, u32_t len) { virtual_addr_t addr = 0x04025000; u8_t * tx = txbuf; u8_t * rx = rxbuf; u8_t val; int n, i; while(len > 0) { n = (len <= 64) ? len : 64; write32(addr + SPI_MBC, n); sys_spi_write_txbuf(tx, n); write32(addr + SPI_TCR, read32(addr + SPI_TCR) | (1 << 31)); while(read32(addr + SPI_TCR) & (1 << 31)); while((read32(addr + SPI_FSR) & 0xff) < n); for(i = 0; i < n; i++) { val = read8(addr + SPI_RXD); if(rx) *rx++ = val; } if(tx) tx += n; len -= n; } } enum { SPI_CMD_END = 0x00, SPI_CMD_INIT = 0x01, SPI_CMD_SELECT = 0x02, SPI_CMD_DESELECT = 0x03, SPI_CMD_FAST = 0x04, SPI_CMD_TXBUF = 0x05, SPI_CMD_RXBUF = 0x06, SPI_CMD_SPINOR_WAIT = 0x07, SPI_CMD_SPINAND_WAIT = 0x08, }; void sys_spi_run(void * cbuf) { uint8_t tx[8], rx[8]; u8_t c, * p = cbuf; u32_t addr, len; while(1) { c = *p++; if(c == SPI_CMD_INIT) { sys_spi_init(); } else if(c == SPI_CMD_SELECT) { sys_spi_select(); } else if(c == SPI_CMD_DESELECT) { sys_spi_deselect(); } else if(c == SPI_CMD_FAST) { len = p[0]; sys_spi_transfer((void *)&p[1], NULL, len); p += (len + 1); } else if(c == SPI_CMD_TXBUF) { addr = (p[0] << 0) | (p[1] << 8) | (p[2] << 16) | (p[3] << 24); len = (p[4] << 0) | (p[5] << 8) | (p[6] << 16) | (p[7] << 24); sys_spi_transfer((void *)((unsigned long)addr), NULL, len); p += 8; } else if(c == SPI_CMD_RXBUF) { addr = (p[0] << 0) | (p[1] << 8) | (p[2] << 16) | (p[3] << 24); len = (p[4] << 0) | (p[5] << 8) | (p[6] << 16) | (p[7] << 24); sys_spi_transfer(NULL, (void *)((unsigned long)addr), len); p += 8; } else if(c == SPI_CMD_SPINOR_WAIT) { tx[0] = 0x05; do { sys_spi_transfer((void *)&tx[0], NULL, 1); sys_spi_transfer(NULL, (void *)&rx[0], 1); } while((rx[0] & 0x1) == 0x1); } else if(c == SPI_CMD_SPINAND_WAIT) { tx[0] = 0x0f; tx[1] = 0xc0; do { sys_spi_transfer((void *)&tx[0], NULL, 2); sys_spi_transfer(NULL, (void *)&rx[0], 1); } while((rx[0] & 0x1) == 0x1); } else { return; } } } xfel-1.3.5/payloads/d1_f133/write32/000077500000000000000000000000001512120643700166325ustar00rootroot00000000000000xfel-1.3.5/payloads/d1_f133/write32/.gitignore000066400000000000000000000000731512120643700206220ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/d1_f133/write32/Makefile000066400000000000000000000056701512120643700203020ustar00rootroot00000000000000# # Top makefile # CROSS ?= ~/Xuantie-900-gcc-elf-newlib-x86_64-V2.2.4/bin/riscv64-unknown-elf- NAME := write32 # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 -ffreestanding CFLAGS := -g -ggdb -Wall -O3 -ffreestanding CXXFLAGS := -g -ggdb -Wall -O3 -ffreestanding LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -march=rv64gvxthead -mabi=lp64d -mcmodel=medany -fno-stack-protector LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/d1_f133/write32/include/000077500000000000000000000000001512120643700202555ustar00rootroot00000000000000xfel-1.3.5/payloads/d1_f133/write32/include/byteorder.h000066400000000000000000000043611512120643700224310ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/d1_f133/write32/include/endian.h000066400000000000000000000007401512120643700216650ustar00rootroot00000000000000#ifndef __RISCV64_ENDIAN_H__ #define __RISCV64_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __RISCV64_ENDIAN_H__ */ xfel-1.3.5/payloads/d1_f133/write32/include/io.h000066400000000000000000000016401512120643700210360ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/d1_f133/write32/include/linkage.h000066400000000000000000000005461512120643700220450ustar00rootroot00000000000000#ifndef __RISCV64_LINKAGE_H__ #define __RISCV64_LINKAGE_H__ #ifdef __cplusplus extern "C" { #endif #if __riscv_xlen == 64 #define LREG ld #define SREG sd #define REGSZ 8 #define RVPTR .dword #elif __riscv_xlen == 32 #define LREG lw #define SREG sw #define REGSZ 4 #define RVPTR .word #endif #ifdef __cplusplus } #endif #endif /* __RISCV64_LINKAGE_H__ */ xfel-1.3.5/payloads/d1_f133/write32/include/riscv64.h000066400000000000000000000054311512120643700217310ustar00rootroot00000000000000#ifndef __RISCV64_H__ #define __RISCV64_H__ #ifdef __cplusplus extern "C" { #endif #define MSTATUS_UIE (1 << 0) #define MSTATUS_SIE (1 << 1) #define MSTATUS_MIE (1 << 3) #define MSTATUS_UPIE (1 << 4) #define MSTATUS_SPIE (1 << 5) #define MSTATUS_MPIE (1 << 7) #define MSTATUS_SPP (1 << 8) #define MSTATUS_MPP (3 << 11) #define MSTATUS_FS (3 << 13) #define MSTATUS_XS (3 << 15) #define MSTATUS_MPRV (1 << 17) #define MSTATUS_SUM (1 << 18) #define MSTATUS_MXR (1 << 19) #define MSTATUS_TVM (1 << 20) #define MSTATUS_TW (1 << 21) #define MSTATUS_TSR (1 << 22) #define MSTATUS32_SD (1 << 31) #define MSTATUS_UXL (3ULL << 32) #define MSTATUS_SXL (3ULL << 34) #define MSTATUS64_SD (1ULL << 63) #define MIP_USIP (1 << 0) #define MIP_SSIP (1 << 1) #define MIP_MSIP (1 << 3) #define MIP_UTIP (1 << 4) #define MIP_STIP (1 << 5) #define MIP_MTIP (1 << 7) #define MIP_UEIP (1 << 8) #define MIP_SEIP (1 << 9) #define MIP_MEIP (1 << 11) #define MIE_USIE (1 << 0) #define MIE_SSIE (1 << 1) #define MIE_MSIE (1 << 3) #define MIE_UTIE (1 << 4) #define MIE_STIE (1 << 5) #define MIE_MTIE (1 << 7) #define MIE_UEIE (1 << 8) #define MIE_SEIE (1 << 9) #define MIE_MEIE (1 << 11) #define csr_swap(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrrw %0, " #csr ", %1" \ : "=r" (__v) : "rK" (__v) \ : "memory"); \ __v; \ }) #define csr_read(csr) \ ({ \ register unsigned long __v; \ __asm__ __volatile__ ("csrr %0, " #csr \ : "=r" (__v) : \ : "memory"); \ __v; \ }) #define csr_write(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrw " #csr ", %0" \ : : "rK" (__v) \ : "memory"); \ }) #define csr_read_set(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrrs %0, " #csr ", %1" \ : "=r" (__v) : "rK" (__v) \ : "memory"); \ __v; \ }) #define csr_set(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrs " #csr ", %0" \ : : "rK" (__v) \ : "memory"); \ }) #define csr_read_clear(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrrc %0, " #csr ", %1" \ : "=r" (__v) : "rK" (__v) \ : "memory"); \ __v; \ }) #define csr_clear(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrc " #csr ", %0" \ : : "rK" (__v) \ : "memory"); \ }) #ifdef __cplusplus } #endif #endif /* __RISCV64_H__ */ xfel-1.3.5/payloads/d1_f133/write32/include/stdarg.h000066400000000000000000000010541512120643700217120ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/d1_f133/write32/include/stddef.h000066400000000000000000000026101512120643700216760ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/d1_f133/write32/include/stdint.h000066400000000000000000000010161512120643700217310ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/d1_f133/write32/include/string.h000066400000000000000000000004241512120643700217340ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/d1_f133/write32/include/types.h000066400000000000000000000021661512120643700215770ustar00rootroot00000000000000#ifndef __RISCV64_TYPES_H__ #define __RISCV64_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed long long ptrdiff_t; typedef signed long long intptr_t; typedef unsigned long long uintptr_t; typedef unsigned long long size_t; typedef signed long long ssize_t; typedef signed long off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned long irq_flags_t; typedef unsigned long long virtual_addr_t; typedef unsigned long long virtual_size_t; typedef unsigned long long physical_addr_t; typedef unsigned long long physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __RISCV64_TYPES_H__ */ xfel-1.3.5/payloads/d1_f133/write32/include/xboot.h000066400000000000000000000004731512120643700215650ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/d1_f133/write32/link.ld000066400000000000000000000025741512120643700201200ustar00rootroot00000000000000OUTPUT_FORMAT("elf64-littleriscv", "elf64-littleriscv", "elf64-littleriscv") OUTPUT_ARCH(riscv) ENTRY(_start) STACK_SIZE = 0x010; MEMORY { ram : org = 0x00045000, len = 0x00000200 /* 512B */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text*) *(.text*) *(.iplt) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(.rodata*) *(.srodata*) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); PROVIDE(__global_pointer$ = . + 0x800); *(.sdata*) *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(16) (NOLOAD) : { PROVIDE(__stack_start = .); . += STACK_SIZE; . = ALIGN(16); PROVIDE(__stack_end = .); } > ram /DISCARD/ : { *(.dynsym) } /DISCARD/ : { *(.dynstr*) } /DISCARD/ : { *(.dynamic*) } /DISCARD/ : { *(.plt*) } /DISCARD/ : { *(.interp*) } /DISCARD/ : { *(.gnu*) } } xfel-1.3.5/payloads/d1_f133/write32/source/000077500000000000000000000000001512120643700201325ustar00rootroot00000000000000xfel-1.3.5/payloads/d1_f133/write32/source/start.S000066400000000000000000000027601512120643700214200ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include #include .global _start _start: li t1, 0x1 << 22 csrs mxstatus, t1 li t1, 0x30013 csrs mcor, t1 j reset reset: la t0, _adr lw t0, (t0) la t1, _val lw t1, (t1) sw t1, (t0) ret .align 2 _adr: .word 0x11223344 _val: .word 0x55667788 xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/000077500000000000000000000000001512120643700176475ustar00rootroot00000000000000xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/ddr/000077500000000000000000000000001512120643700204205ustar00rootroot00000000000000xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/ddr/.gitignore000066400000000000000000000000731512120643700224100ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/ddr/Makefile000066400000000000000000000055601512120643700220660ustar00rootroot00000000000000# # Top makefile # CROSS ?= arm-none-eabi- NAME := ddr # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 CFLAGS := -g -ggdb -Wall -O3 CXXFLAGS := -g -ggdb -Wall -O3 LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -march=armv5te -mtune=arm926ej-s -mfloat-abi=soft -marm -mno-thumb-interwork -mno-unaligned-access LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/ddr/include/000077500000000000000000000000001512120643700220435ustar00rootroot00000000000000xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/ddr/include/byteorder.h000066400000000000000000000043611512120643700242170ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/ddr/include/endian.h000066400000000000000000000007321512120643700234540ustar00rootroot00000000000000#ifndef __ARM32_ENDIAN_H__ #define __ARM32_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __ARM32_ENDIAN_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/ddr/include/f1c100s/000077500000000000000000000000001512120643700231205ustar00rootroot00000000000000xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/ddr/include/f1c100s/reg-ccu.h000066400000000000000000000031361512120643700246210ustar00rootroot00000000000000#ifndef __F1C100S_REG_CCU_H__ #define __F1C100S_REG_CCU_H__ #define F1C100S_CCU_BASE (0x01c20000) #define CCU_PLL_CPU_CTRL (0x000) #define CCU_PLL_AUDIO_CTRL (0x008) #define CCU_PLL_VIDEO_CTRL (0x010) #define CCU_PLL_VE_CTRL (0x018) #define CCU_PLL_DDR_CTRL (0x020) #define CCU_PLL_PERIPH_CTRL (0x028) #define CCU_CPU_CFG (0x050) #define CCU_AHB_APB_CFG (0x054) #define CCU_BUS_CLK_GATE0 (0x060) #define CCU_BUS_CLK_GATE1 (0x064) #define CCU_BUS_CLK_GATE2 (0x068) #define CCU_SDMMC0_CLK (0x088) #define CCU_SDMMC1_CLK (0x08c) #define CCU_DAUDIO_CLK (0x0b0) #define CCU_SPDIF_CLK (0x0b4) #define CCU_I2S_CLK (0x0b8) #define CCU_USBPHY_CFG (0x0cc) #define CCU_DRAM_CLK_GATE (0x100) #define CCU_DEBE_CLK (0x104) #define CCU_DEFE_CLK (0x10c) #define CCU_LCD_CLK (0x118) #define CCU_DEINTERLACE_CLK (0x11c) #define CCU_TVE_CLK (0x120) #define CCU_TVD_CLK (0x124) #define CCU_CSI_CLK (0x134) #define CCU_VE_CLK (0x13c) #define CCU_ADDA_CLK (0x140) #define CCU_AVS_CLK (0x144) #define CCU_PLL_STABLE_TIME0 (0x200) #define CCU_PLL_STABLE_TIME1 (0x204) #define CCU_PLL_CPU_BIAS (0x220) #define CCU_PLL_AUDIO_BIAS (0x224) #define CCU_PLL_VIDEO_BIAS (0x228) #define CCU_PLL_VE_BIAS (0x22c) #define CCU_PLL_DDR0_BIAS (0x230) #define CCU_PLL_PERIPH_BIAS (0x234) #define CCU_PLL_CPU_TUN (0x250) #define CCU_PLL_DDR_TUN (0x260) #define CCU_PLL_AUDIO_PAT (0x284) #define CCU_PLL_VIDEO_PAT (0x288) #define CCU_PLL_DDR0_PAT (0x290) #define CCU_BUS_SOFT_RST0 (0x2c0) #define CCU_BUS_SOFT_RST1 (0x2c4) #define CCU_BUS_SOFT_RST3 (0x2d0) #endif /* __F1C100S_REG_CCU_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/ddr/include/f1c100s/reg-dram.h000066400000000000000000000020211512120643700247620ustar00rootroot00000000000000#ifndef __F1C100S_REG_DRAM_H__ #define __F1C100S_REG_DRAM_H__ #define F1C100S_DRAM_BASE (0x01c01000) #define DRAM_SCONR (0x00) #define DRAM_STMG0R (0x04) #define DRAM_STMG1R (0x08) #define DRAM_SCTLR (0x0c) #define DRAM_SREFR (0x10) #define DRAM_SEXTMR (0x14) #define DRAM_DDLYR (0x24) #define DRAM_DADRR (0x28) #define DRAM_DVALR (0x2c) #define DRAM_DRPTR0 (0x30) #define DRAM_DRPTR1 (0x34) #define DRAM_DRPTR2 (0x38) #define DRAM_DRPTR3 (0x3c) #define DRAM_SEFR (0x40) #define DRAM_MAE (0x44) #define DRAM_ASPR (0x48) #define DRAM_SDLY0 (0x4C) #define DRAM_SDLY1 (0x50) #define DRAM_SDLY2 (0x54) #define DRAM_MCR0 (0x100) #define DRAM_MCR1 (0x104) #define DRAM_MCR2 (0x108) #define DRAM_MCR3 (0x10c) #define DRAM_MCR4 (0x110) #define DRAM_MCR5 (0x114) #define DRAM_MCR6 (0x118) #define DRAM_MCR7 (0x11c) #define DRAM_MCR8 (0x120) #define DRAM_MCR9 (0x124) #define DRAM_MCR10 (0x128) #define DRAM_MCR11 (0x12c) #define DRAM_BWCR (0x140) #endif /* __F1C100S_REG_DRAM_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/ddr/include/io.h000066400000000000000000000016401512120643700226240ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/ddr/include/stdarg.h000066400000000000000000000010541512120643700235000ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/ddr/include/stddef.h000066400000000000000000000026101512120643700234640ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/ddr/include/stdint.h000066400000000000000000000010161512120643700235170ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/ddr/include/string.h000066400000000000000000000004241512120643700235220ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/ddr/include/types.h000066400000000000000000000021051512120643700233560ustar00rootroot00000000000000#ifndef __ARM32_TYPES_H__ #define __ARM32_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed int ptrdiff_t; typedef signed int intptr_t; typedef unsigned int uintptr_t; typedef unsigned int size_t; typedef signed int ssize_t; typedef signed int off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned int irq_flags_t; typedef unsigned int virtual_addr_t; typedef unsigned int virtual_size_t; typedef unsigned int physical_addr_t; typedef unsigned int physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __ARM32_TYPES_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/ddr/include/xboot.h000066400000000000000000000004731512120643700233530ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/ddr/link.ld000066400000000000000000000050531512120643700217010ustar00rootroot00000000000000OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) STACK_UND_SIZE = 0x010; STACK_ABT_SIZE = 0x010; STACK_IRQ_SIZE = 0x010; STACK_FIQ_SIZE = 0x010; STACK_SRV_SIZE = 0x400; MEMORY { ram : org = 0x00008800, len = 0x00002000 /* 8 KB */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text) .obj/source/memcpy.o (.text*) .obj/source/memset.o (.text*) .obj/source/sys-uart.o (.text*) .obj/source/sys-clock.o (.text*) .obj/source/sys-dram.o (.text*) *(.text*) *(.glue*) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ARM.exidx ALIGN(8) : { PROVIDE (__exidx_start = .); *(.ARM.exidx*) PROVIDE (__exidx_end = .); } > ram .ARM.extab ALIGN(8) : { PROVIDE (__extab_start = .); *(.ARM.extab*) PROVIDE (__extab_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(8) (NOLOAD) : { PROVIDE(__stack_start = .); PROVIDE(__stack_und_start = .); . += STACK_UND_SIZE; PROVIDE(__stack_und_end = .); . = ALIGN(8); PROVIDE(__stack_abt_start = .); . += STACK_ABT_SIZE; PROVIDE(__stack_abt_end = .); . = ALIGN(8); PROVIDE(__stack_irq_start = .); . += STACK_IRQ_SIZE; PROVIDE(__stack_irq_end = .); . = ALIGN(8); PROVIDE(__stack_fiq_start = .); . += STACK_FIQ_SIZE; PROVIDE(__stack_fiq_end = .); . = ALIGN(8); PROVIDE(__stack_srv_start = .); . += STACK_SRV_SIZE; PROVIDE(__stack_srv_end = .); . = ALIGN(8); PROVIDE(__stack_end = .); } > ram .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_info 0 : { *(.debug_info) } .debug_line 0 : { *(.debug_line) } .debug_pubnames 0 : { *(.debug_pubnames) } .debug_aranges 0 : { *(.debug_aranges) } } xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/ddr/source/000077500000000000000000000000001512120643700217205ustar00rootroot00000000000000xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/ddr/source/memcpy.S000066400000000000000000000212061512120643700233370ustar00rootroot00000000000000/* * memcpy.S */ .text .global memcpy .type memcpy, %function .align 4 memcpy: /* determine copy direction */ cmp r1, r0 bcc .Lmemcpy_backwards moveq r0, #0 /* quick abort for len=0 */ moveq pc, lr stmdb sp!, {r0, lr} /* memcpy() returns dest addr */ subs r2, r2, #4 blt .Lmemcpy_fl4 /* less than 4 bytes */ ands r12, r0, #3 bne .Lmemcpy_fdestul /* oh unaligned destination addr */ ands r12, r1, #3 bne .Lmemcpy_fsrcul /* oh unaligned source addr */ .Lmemcpy_ft8: /* we have aligned source and destination */ subs r2, r2, #8 blt .Lmemcpy_fl12 /* less than 12 bytes (4 from above) */ subs r2, r2, #0x14 blt .Lmemcpy_fl32 /* less than 32 bytes (12 from above) */ stmdb sp!, {r4} /* borrow r4 */ /* blat 32 bytes at a time */ .Lmemcpy_floop32: ldmia r1!, {r3, r4, r12, lr} stmia r0!, {r3, r4, r12, lr} ldmia r1!, {r3, r4, r12, lr} stmia r0!, {r3, r4, r12, lr} subs r2, r2, #0x20 bge .Lmemcpy_floop32 cmn r2, #0x10 ldmgeia r1!, {r3, r4, r12, lr} /* blat a remaining 16 bytes */ stmgeia r0!, {r3, r4, r12, lr} subge r2, r2, #0x10 ldmia sp!, {r4} /* return r4 */ .Lmemcpy_fl32: adds r2, r2, #0x14 /* blat 12 bytes at a time */ .Lmemcpy_floop12: ldmgeia r1!, {r3, r12, lr} stmgeia r0!, {r3, r12, lr} subges r2, r2, #0x0c bge .Lmemcpy_floop12 .Lmemcpy_fl12: adds r2, r2, #8 blt .Lmemcpy_fl4 subs r2, r2, #4 ldrlt r3, [r1], #4 strlt r3, [r0], #4 ldmgeia r1!, {r3, r12} stmgeia r0!, {r3, r12} subge r2, r2, #4 .Lmemcpy_fl4: /* less than 4 bytes to go */ adds r2, r2, #4 ldmeqia sp!, {r0, pc} /* done */ /* copy the crud byte at a time */ cmp r2, #2 ldrb r3, [r1], #1 strb r3, [r0], #1 ldrgeb r3, [r1], #1 strgeb r3, [r0], #1 ldrgtb r3, [r1], #1 strgtb r3, [r0], #1 ldmia sp!, {r0, pc} /* erg - unaligned destination */ .Lmemcpy_fdestul: rsb r12, r12, #4 cmp r12, #2 /* align destination with byte copies */ ldrb r3, [r1], #1 strb r3, [r0], #1 ldrgeb r3, [r1], #1 strgeb r3, [r0], #1 ldrgtb r3, [r1], #1 strgtb r3, [r0], #1 subs r2, r2, r12 blt .Lmemcpy_fl4 /* less the 4 bytes */ ands r12, r1, #3 beq .Lmemcpy_ft8 /* we have an aligned source */ /* erg - unaligned source */ /* This is where it gets nasty ... */ .Lmemcpy_fsrcul: bic r1, r1, #3 ldr lr, [r1], #4 cmp r12, #2 bgt .Lmemcpy_fsrcul3 beq .Lmemcpy_fsrcul2 cmp r2, #0x0c blt .Lmemcpy_fsrcul1loop4 sub r2, r2, #0x0c stmdb sp!, {r4, r5} .Lmemcpy_fsrcul1loop16: mov r3, lr, lsr #8 ldmia r1!, {r4, r5, r12, lr} orr r3, r3, r4, lsl #24 mov r4, r4, lsr #8 orr r4, r4, r5, lsl #24 mov r5, r5, lsr #8 orr r5, r5, r12, lsl #24 mov r12, r12, lsr #8 orr r12, r12, lr, lsl #24 stmia r0!, {r3-r5, r12} subs r2, r2, #0x10 bge .Lmemcpy_fsrcul1loop16 ldmia sp!, {r4, r5} adds r2, r2, #0x0c blt .Lmemcpy_fsrcul1l4 .Lmemcpy_fsrcul1loop4: mov r12, lr, lsr #8 ldr lr, [r1], #4 orr r12, r12, lr, lsl #24 str r12, [r0], #4 subs r2, r2, #4 bge .Lmemcpy_fsrcul1loop4 .Lmemcpy_fsrcul1l4: sub r1, r1, #3 b .Lmemcpy_fl4 .Lmemcpy_fsrcul2: cmp r2, #0x0c blt .Lmemcpy_fsrcul2loop4 sub r2, r2, #0x0c stmdb sp!, {r4, r5} .Lmemcpy_fsrcul2loop16: mov r3, lr, lsr #16 ldmia r1!, {r4, r5, r12, lr} orr r3, r3, r4, lsl #16 mov r4, r4, lsr #16 orr r4, r4, r5, lsl #16 mov r5, r5, lsr #16 orr r5, r5, r12, lsl #16 mov r12, r12, lsr #16 orr r12, r12, lr, lsl #16 stmia r0!, {r3-r5, r12} subs r2, r2, #0x10 bge .Lmemcpy_fsrcul2loop16 ldmia sp!, {r4, r5} adds r2, r2, #0x0c blt .Lmemcpy_fsrcul2l4 .Lmemcpy_fsrcul2loop4: mov r12, lr, lsr #16 ldr lr, [r1], #4 orr r12, r12, lr, lsl #16 str r12, [r0], #4 subs r2, r2, #4 bge .Lmemcpy_fsrcul2loop4 .Lmemcpy_fsrcul2l4: sub r1, r1, #2 b .Lmemcpy_fl4 .Lmemcpy_fsrcul3: cmp r2, #0x0c blt .Lmemcpy_fsrcul3loop4 sub r2, r2, #0x0c stmdb sp!, {r4, r5} .Lmemcpy_fsrcul3loop16: mov r3, lr, lsr #24 ldmia r1!, {r4, r5, r12, lr} orr r3, r3, r4, lsl #8 mov r4, r4, lsr #24 orr r4, r4, r5, lsl #8 mov r5, r5, lsr #24 orr r5, r5, r12, lsl #8 mov r12, r12, lsr #24 orr r12, r12, lr, lsl #8 stmia r0!, {r3-r5, r12} subs r2, r2, #0x10 bge .Lmemcpy_fsrcul3loop16 ldmia sp!, {r4, r5} adds r2, r2, #0x0c blt .Lmemcpy_fsrcul3l4 .Lmemcpy_fsrcul3loop4: mov r12, lr, lsr #24 ldr lr, [r1], #4 orr r12, r12, lr, lsl #8 str r12, [r0], #4 subs r2, r2, #4 bge .Lmemcpy_fsrcul3loop4 .Lmemcpy_fsrcul3l4: sub r1, r1, #1 b .Lmemcpy_fl4 .Lmemcpy_backwards: add r1, r1, r2 add r0, r0, r2 subs r2, r2, #4 blt .Lmemcpy_bl4 /* less than 4 bytes */ ands r12, r0, #3 bne .Lmemcpy_bdestul /* oh unaligned destination addr */ ands r12, r1, #3 bne .Lmemcpy_bsrcul /* oh unaligned source addr */ .Lmemcpy_bt8: /* we have aligned source and destination */ subs r2, r2, #8 blt .Lmemcpy_bl12 /* less than 12 bytes (4 from above) */ stmdb sp!, {r4, lr} subs r2, r2, #0x14 /* less than 32 bytes (12 from above) */ blt .Lmemcpy_bl32 /* blat 32 bytes at a time */ .Lmemcpy_bloop32: ldmdb r1!, {r3, r4, r12, lr} stmdb r0!, {r3, r4, r12, lr} ldmdb r1!, {r3, r4, r12, lr} stmdb r0!, {r3, r4, r12, lr} subs r2, r2, #0x20 bge .Lmemcpy_bloop32 .Lmemcpy_bl32: cmn r2, #0x10 ldmgedb r1!, {r3, r4, r12, lr} /* blat a remaining 16 bytes */ stmgedb r0!, {r3, r4, r12, lr} subge r2, r2, #0x10 adds r2, r2, #0x14 ldmgedb r1!, {r3, r12, lr} /* blat a remaining 12 bytes */ stmgedb r0!, {r3, r12, lr} subge r2, r2, #0x0c ldmia sp!, {r4, lr} .Lmemcpy_bl12: adds r2, r2, #8 blt .Lmemcpy_bl4 subs r2, r2, #4 ldrlt r3, [r1, #-4]! strlt r3, [r0, #-4]! ldmgedb r1!, {r3, r12} stmgedb r0!, {r3, r12} subge r2, r2, #4 .Lmemcpy_bl4: /* less than 4 bytes to go */ adds r2, r2, #4 moveq pc, lr /* copy the crud byte at a time */ cmp r2, #2 ldrb r3, [r1, #-1]! strb r3, [r0, #-1]! ldrgeb r3, [r1, #-1]! strgeb r3, [r0, #-1]! ldrgtb r3, [r1, #-1]! strgtb r3, [r0, #-1]! mov pc, lr /* erg - unaligned destination */ .Lmemcpy_bdestul: cmp r12, #2 /* align destination with byte copies */ ldrb r3, [r1, #-1]! strb r3, [r0, #-1]! ldrgeb r3, [r1, #-1]! strgeb r3, [r0, #-1]! ldrgtb r3, [r1, #-1]! strgtb r3, [r0, #-1]! subs r2, r2, r12 blt .Lmemcpy_bl4 /* less than 4 bytes to go */ ands r12, r1, #3 beq .Lmemcpy_bt8 /* we have an aligned source */ /* erg - unaligned source */ /* This is where it gets nasty ... */ .Lmemcpy_bsrcul: bic r1, r1, #3 ldr r3, [r1, #0] cmp r12, #2 blt .Lmemcpy_bsrcul1 beq .Lmemcpy_bsrcul2 cmp r2, #0x0c blt .Lmemcpy_bsrcul3loop4 sub r2, r2, #0x0c stmdb sp!, {r4, r5, lr} .Lmemcpy_bsrcul3loop16: mov lr, r3, lsl #8 ldmdb r1!, {r3-r5, r12} orr lr, lr, r12, lsr #24 mov r12, r12, lsl #8 orr r12, r12, r5, lsr #24 mov r5, r5, lsl #8 orr r5, r5, r4, lsr #24 mov r4, r4, lsl #8 orr r4, r4, r3, lsr #24 stmdb r0!, {r4, r5, r12, lr} subs r2, r2, #0x10 bge .Lmemcpy_bsrcul3loop16 ldmia sp!, {r4, r5, lr} adds r2, r2, #0x0c blt .Lmemcpy_bsrcul3l4 .Lmemcpy_bsrcul3loop4: mov r12, r3, lsl #8 ldr r3, [r1, #-4]! orr r12, r12, r3, lsr #24 str r12, [r0, #-4]! subs r2, r2, #4 bge .Lmemcpy_bsrcul3loop4 .Lmemcpy_bsrcul3l4: add r1, r1, #3 b .Lmemcpy_bl4 .Lmemcpy_bsrcul2: cmp r2, #0x0c blt .Lmemcpy_bsrcul2loop4 sub r2, r2, #0x0c stmdb sp!, {r4, r5, lr} .Lmemcpy_bsrcul2loop16: mov lr, r3, lsl #16 ldmdb r1!, {r3-r5, r12} orr lr, lr, r12, lsr #16 mov r12, r12, lsl #16 orr r12, r12, r5, lsr #16 mov r5, r5, lsl #16 orr r5, r5, r4, lsr #16 mov r4, r4, lsl #16 orr r4, r4, r3, lsr #16 stmdb r0!, {r4, r5, r12, lr} subs r2, r2, #0x10 bge .Lmemcpy_bsrcul2loop16 ldmia sp!, {r4, r5, lr} adds r2, r2, #0x0c blt .Lmemcpy_bsrcul2l4 .Lmemcpy_bsrcul2loop4: mov r12, r3, lsl #16 ldr r3, [r1, #-4]! orr r12, r12, r3, lsr #16 str r12, [r0, #-4]! subs r2, r2, #4 bge .Lmemcpy_bsrcul2loop4 .Lmemcpy_bsrcul2l4: add r1, r1, #2 b .Lmemcpy_bl4 .Lmemcpy_bsrcul1: cmp r2, #0x0c blt .Lmemcpy_bsrcul1loop4 sub r2, r2, #0x0c stmdb sp!, {r4, r5, lr} .Lmemcpy_bsrcul1loop32: mov lr, r3, lsl #24 ldmdb r1!, {r3-r5, r12} orr lr, lr, r12, lsr #8 mov r12, r12, lsl #24 orr r12, r12, r5, lsr #8 mov r5, r5, lsl #24 orr r5, r5, r4, lsr #8 mov r4, r4, lsl #24 orr r4, r4, r3, lsr #8 stmdb r0!, {r4, r5, r12, lr} subs r2, r2, #0x10 bge .Lmemcpy_bsrcul1loop32 ldmia sp!, {r4, r5, lr} adds r2, r2, #0x0c blt .Lmemcpy_bsrcul1l4 .Lmemcpy_bsrcul1loop4: mov r12, r3, lsl #24 ldr r3, [r1, #-4]! orr r12, r12, r3, lsr #8 str r12, [r0, #-4]! subs r2, r2, #4 bge .Lmemcpy_bsrcul1loop4 .Lmemcpy_bsrcul1l4: add r1, r1, #1 b .Lmemcpy_bl4 xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/ddr/source/memset.S000066400000000000000000000037721512120643700233470ustar00rootroot00000000000000/* * memcpy.S */ .text .global memset .type memset, %function .align 4 memset: stmfd sp!, {r0} /* remember address for return value */ and r1, r1, #0x000000ff /* we write bytes */ cmp r2, #0x00000004 /* do we have less than 4 bytes */ blt .Lmemset_lessthanfour /* first we will word align the address */ ands r3, r0, #0x00000003 /* get the bottom two bits */ beq .Lmemset_addraligned /* the address is word aligned */ rsb r3, r3, #0x00000004 sub r2, r2, r3 cmp r3, #0x00000002 strb r1, [r0], #0x0001 /* set 1 byte */ strgeb r1, [r0], #0x0001 /* set another byte */ strgtb r1, [r0], #0x0001 /* and a third */ cmp r2, #0x00000004 blt .Lmemset_lessthanfour /* now we must be word aligned */ .Lmemset_addraligned: orr r3, r1, r1, lsl #8 /* repeat the byte into a word */ orr r3, r3, r3, lsl #16 /* we know we have at least 4 bytes ... */ cmp r2, #0x00000020 /* if less than 32 then use words */ blt .Lmemset_lessthan32 /* we have at least 32 so lets use quad words */ stmfd sp!, {r4-r6} /* store registers */ mov r4, r3 /* duplicate data */ mov r5, r3 mov r6, r3 .Lmemset_loop16: stmia r0!, {r3-r6} /* store 16 bytes */ sub r2, r2, #0x00000010 /* adjust count */ cmp r2, #0x00000010 /* still got at least 16 bytes ? */ bgt .Lmemset_loop16 ldmfd sp!, {r4-r6} /* restore registers */ /* do we need to set some words as well ? */ cmp r2, #0x00000004 blt .Lmemset_lessthanfour /* have either less than 16 or less than 32 depending on route taken */ .Lmemset_lessthan32: /* we have at least 4 bytes so copy as words */ .Lmemset_loop4: str r3, [r0], #0x0004 sub r2, r2, #0x0004 cmp r2, #0x00000004 bge .Lmemset_loop4 .Lmemset_lessthanfour: cmp r2, #0x00000000 ldmeqfd sp!, {r0} moveq pc, lr /* zero length so exit */ cmp r2, #0x00000002 strb r1, [r0], #0x0001 /* set 1 byte */ strgeb r1, [r0], #0x0001 /* set another byte */ strgtb r1, [r0], #0x0001 /* and a third */ ldmfd sp!, {r0} mov pc, lr /* exit */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/ddr/source/start.S000066400000000000000000000037011512120643700232020ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ .global _start _start: b reset reset: ldr r0, =0x00000040 str sp, [r0, #0] str lr, [r0, #4] mrs lr, cpsr str lr, [r0, #8] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #12] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #16] bl sys_uart_init bl sys_clock_init bl sys_dram_init mov r0, #0x4 mov r1, #'e' strb r1, [r0, #0] mov r1, #'G' strb r1, [r0, #1] mov r1, #'O' strb r1, [r0, #2] mov r1, #'N' strb r1, [r0, #3] mov r1, #'.' strb r1, [r0, #4] mov r1, #'F' strb r1, [r0, #5] mov r1, #'E' strb r1, [r0, #6] mov r1, #'L' strb r1, [r0, #7] ldr r0, =0x00000040 ldr sp, [r0, #0] ldr lr, [r0, #4] ldr r1, [r0, #16] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #12] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #8] msr cpsr, r1 bx lr xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/ddr/source/sys-clock.c000066400000000000000000000062641512120643700240030ustar00rootroot00000000000000/* * sys-clock.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include #include static inline void sdelay(int loops) { __asm__ __volatile__ ("1:\n" "subs %0, %1, #1\n" "bne 1b":"=r" (loops):"0"(loops)); } static void wait_pll_stable(u32_t base) { u32_t rval = 0; u32_t time = 0xfff; do { rval = read32(base); time--; } while(time && !(rval & (1 << 28))); } static void clock_set_pll_cpu(u32_t clk) { u32_t n, k, m, p; u32_t rval = 0; u32_t div = 0; if(clk > 720000000) clk = 720000000; if((clk % 24000000) == 0) { div = clk / 24000000; n = div - 1; k = 0; m = 0; p = 0; } else if((clk % 12000000) == 0) { m = 1; div = clk / 12000000; if((div % 3) == 0) k = 2; else if((div % 4) == 0) k = 3; else k = 1; n = (div / (k + 1)) - 1; p = 0; } else { div = clk / 24000000; n = div - 1; k = 0; m = 0; p = 0; } rval = read32(F1C100S_CCU_BASE + CCU_PLL_CPU_CTRL); rval &= ~((0x3 << 16) | (0x1f << 8) | (0x3 << 4) | (0x3 << 0)); rval |= (1U << 31) | (p << 16) | (n << 8) | (k << 4) | m; write32(F1C100S_CCU_BASE + CCU_PLL_CPU_CTRL, rval); wait_pll_stable(F1C100S_CCU_BASE + CCU_PLL_CPU_CTRL); } void sys_clock_init(void) { u32_t val; write32(F1C100S_CCU_BASE + CCU_PLL_STABLE_TIME0, 0x1ff); write32(F1C100S_CCU_BASE + CCU_PLL_STABLE_TIME1, 0x1ff); val = read32(F1C100S_CCU_BASE + CCU_CPU_CFG); val &= ~(0x3 << 16); val |= (0x1 << 16); write32(F1C100S_CCU_BASE + CCU_CPU_CFG, val); sdelay(100); write32(F1C100S_CCU_BASE + CCU_PLL_VIDEO_CTRL, 0x81004107); sdelay(100); write32(F1C100S_CCU_BASE + CCU_PLL_PERIPH_CTRL, 0x80041800); sdelay(100); write32(F1C100S_CCU_BASE + CCU_AHB_APB_CFG, 0x00003180); sdelay(100); val = read32(F1C100S_CCU_BASE + CCU_DRAM_CLK_GATE); val |= (0x1 << 26) | (0x1 << 24); write32(F1C100S_CCU_BASE + CCU_DRAM_CLK_GATE, val); sdelay(100); clock_set_pll_cpu(408000000); val = read32(F1C100S_CCU_BASE + CCU_CPU_CFG); val &= ~(0x3 << 16); val |= (0x2 << 16); write32(F1C100S_CCU_BASE + CCU_CPU_CFG, val); sdelay(100); } xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/ddr/source/sys-dram.c000066400000000000000000000266361512120643700236400ustar00rootroot00000000000000/* * sys-dram.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include #include #include #define PLL_DDR_CLK (156000000) #define SDR_T_CAS (0x2) #define SDR_T_RAS (0x8) #define SDR_T_RCD (0x3) #define SDR_T_RP (0x3) #define SDR_T_WR (0x3) #define SDR_T_RFC (0xd) #define SDR_T_XSR (0xf9) #define SDR_T_RC (0xb) #define SDR_T_INIT (0x8) #define SDR_T_INIT_REF (0x7) #define SDR_T_WTR (0x2) #define SDR_T_RRD (0x2) #define SDR_T_XP (0x0) enum dram_type_t { DRAM_TYPE_SDR = 0, DRAM_TYPE_DDR = 1, DRAM_TYPE_MDDR = 2, }; struct dram_para_t { u32_t base; /* dram base address */ u32_t size; /* dram size (unit: MByte) */ u32_t clk; /* dram work clock (unit: MHz) */ u32_t access_mode; /* 0: interleave mode 1: sequence mode */ u32_t cs_num; /* dram chip count 1: one chip 2: two chip */ u32_t ddr8_remap; /* for 8bits data width DDR 0: normal 1: 8bits */ enum dram_type_t sdr_ddr; u32_t bwidth; /* dram bus width */ u32_t col_width; /* column address width */ u32_t row_width; /* row address width */ u32_t bank_size; /* dram bank count */ u32_t cas; /* dram cas */ }; static inline void sdelay(int loops) { __asm__ __volatile__ ("1:\n" "subs %0, %1, #1\n" "bne 1b":"=r" (loops):"0"(loops)); } static void dram_delay(int ms) { sdelay(ms * 2 * 1000); } static int dram_initial(void) { unsigned int time = 0xffffff; write32(F1C100S_DRAM_BASE + DRAM_SCTLR, read32(F1C100S_DRAM_BASE + DRAM_SCTLR) | 0x1); while((read32(F1C100S_DRAM_BASE + DRAM_SCTLR) & 0x1) && time--) { if(time == 0) return 0; } return 1; } static int dram_delay_scan(void) { unsigned int time = 0xffffff; write32(F1C100S_DRAM_BASE + DRAM_DDLYR, read32(F1C100S_DRAM_BASE + DRAM_DDLYR) | 0x1); while((read32(F1C100S_DRAM_BASE + DRAM_DDLYR) & 0x1) && time--) { if(time == 0) return 0; } return 1; } static void dram_set_autofresh_cycle(u32_t clk) { u32_t val = 0; u32_t row = 0; u32_t temp = 0; row = read32(F1C100S_DRAM_BASE + DRAM_SCONR); row &= 0x1e0; row >>= 0x5; if(row == 0xc) { if(clk >= 1000000) { temp = clk + (clk >> 3) + (clk >> 4) + (clk >> 5); while(temp >= (10000000 >> 6)) { temp -= (10000000 >> 6); val++; } } else { val = (clk * 499) >> 6; } } else if(row == 0xb) { if(clk >= 1000000) { temp = clk + (clk >> 3) + (clk >> 4) + (clk >> 5); while(temp >= (10000000 >> 7)) { temp -= (10000000 >> 7); val++; } } else { val = (clk * 499) >> 5; } } write32(F1C100S_DRAM_BASE + DRAM_SREFR, val); } static int dram_para_setup(struct dram_para_t * para) { u32_t val = 0; val = (para->ddr8_remap) | (0x1 << 1) | ((para->bank_size >> 2) << 3) | ((para->cs_num >> 1) << 4) | ((para->row_width - 1) << 5) | ((para->col_width - 1) << 9) | ((para->sdr_ddr ? (para->bwidth >> 4) : (para->bwidth >> 5)) << 13) | (para->access_mode << 15) | (para->sdr_ddr << 16); write32(F1C100S_DRAM_BASE + DRAM_SCONR, val); write32(F1C100S_DRAM_BASE + DRAM_SCTLR, read32(F1C100S_DRAM_BASE + DRAM_SCTLR) | (0x1 << 19)); return dram_initial(); } static u32_t dram_check_delay(u32_t bwidth) { u32_t dsize; u32_t i,j; u32_t num = 0; u32_t dflag = 0; dsize = ((bwidth == 16) ? 4 : 2); for(i = 0; i < dsize; i++) { if(i == 0) dflag = read32(F1C100S_DRAM_BASE + DRAM_DRPTR0); else if(i == 1) dflag = read32(F1C100S_DRAM_BASE + DRAM_DRPTR1); else if(i == 2) dflag = read32(F1C100S_DRAM_BASE + DRAM_DRPTR2); else if(i == 3) dflag = read32(F1C100S_DRAM_BASE + DRAM_DRPTR3); for(j = 0; j < 32; j++) { if(dflag & 0x1) num++; dflag >>= 1; } } return num; } static int sdr_readpipe_scan(void) { u32_t k = 0; for(k = 0; k < 32; k++) { write32(0x80000000 + 4 * k, k); } for(k = 0; k < 32; k++) { if(read32(0x80000000 + 4 * k) != k) return 0; } return 1; } static u32_t sdr_readpipe_select(void) { u32_t value = 0; u32_t i = 0; for(i = 0; i < 8; i++) { write32(F1C100S_DRAM_BASE + DRAM_SCTLR, (read32(F1C100S_DRAM_BASE + DRAM_SCTLR) & (~(0x7 << 6))) | (i << 6)); if(sdr_readpipe_scan()) { value = i; return value; } } return value; } static u32_t dram_check_type(struct dram_para_t * para) { u32_t val = 0; u32_t times = 0; u32_t i; for(i = 0; i < 8; i++) { val = read32(F1C100S_DRAM_BASE + DRAM_SCTLR); val &= ~(0x7 << 6); val |= (i << 6); write32(F1C100S_DRAM_BASE + DRAM_SCTLR, val); dram_delay_scan(); if(read32(F1C100S_DRAM_BASE + DRAM_DDLYR) & 0x30) times++; } if(times == 8) { para->sdr_ddr = DRAM_TYPE_SDR; return 0; } else { para->sdr_ddr = DRAM_TYPE_DDR; return 1; } } static u32_t dram_scan_readpipe(struct dram_para_t * para) { u32_t i, rp_best = 0, rp_val = 0; u32_t val = 0; u32_t readpipe[8]; if(para->sdr_ddr == DRAM_TYPE_DDR) { for(i = 0; i < 8; i++) { val = read32(F1C100S_DRAM_BASE + DRAM_SCTLR); val &= ~(0x7 << 6); val |= (i << 6); write32(F1C100S_DRAM_BASE + DRAM_SCTLR, val); dram_delay_scan(); readpipe[i] = 0; if((((read32(F1C100S_DRAM_BASE + DRAM_DDLYR) >> 4) & 0x3) == 0x0) && (((read32(F1C100S_DRAM_BASE + DRAM_DDLYR) >> 4) & 0x1) == 0x0)) { readpipe[i] = dram_check_delay(para->bwidth); } if(rp_val < readpipe[i]) { rp_val = readpipe[i]; rp_best = i; } } val = read32(F1C100S_DRAM_BASE + DRAM_SCTLR); val &= ~(0x7 << 6); val |= (rp_best << 6); write32(F1C100S_DRAM_BASE + DRAM_SCTLR, val); dram_delay_scan(); } else { val = read32(F1C100S_DRAM_BASE + DRAM_SCONR); val &= (~(0x1 << 16)); val &= (~(0x3 << 13)); write32(F1C100S_DRAM_BASE + DRAM_SCONR, val); rp_best = sdr_readpipe_select(); val = read32(F1C100S_DRAM_BASE + DRAM_SCTLR); val &= ~(0x7 << 6); val |= (rp_best << 6); write32(F1C100S_DRAM_BASE + DRAM_SCTLR, val); } return 0; } static u32_t dram_get_dram_size(struct dram_para_t * para) { u32_t colflag = 10, rowflag = 13; u32_t i = 0; u32_t val1 = 0; u32_t count = 0; u32_t addr1, addr2; para->col_width = colflag; para->row_width = rowflag; dram_para_setup(para); dram_scan_readpipe(para); for(i = 0; i < 32; i++) { *((u32_t *)(0x80000200 + i)) = 0x11111111; *((u32_t *)(0x80000600 + i)) = 0x22222222; } for(i = 0; i < 32; i++) { val1 = *((u32_t *)(0x80000200 + i)); if(val1 == 0x22222222) count++; } if(count == 32) { colflag = 9; } else { colflag = 10; } count = 0; para->col_width = colflag; para->row_width = rowflag; dram_para_setup(para); if(colflag == 10) { addr1 = 0x80400000; addr2 = 0x80c00000; } else { addr1 = 0x80200000; addr2 = 0x80600000; } for(i = 0; i < 32; i++) { *((u32_t *)(addr1 + i)) = 0x33333333; *((u32_t *)(addr2 + i)) = 0x44444444; } for(i = 0; i < 32; i++) { val1 = *((u32_t *)(addr1 + i)); if(val1 == 0x44444444) { count++; } } if(count == 32) { rowflag = 12; } else { rowflag = 13; } para->col_width = colflag; para->row_width = rowflag; if(para->row_width != 13) { para->size = 16; } else if(para->col_width == 10) { para->size = 64; } else { para->size = 32; } dram_set_autofresh_cycle(para->clk * 1000000); para->access_mode = 0; dram_para_setup(para); return 0; } static int dram_init(struct dram_para_t * para) { u32_t val = 0; u32_t i; write32(0x01c20800 + 0x24, read32(0x01c20800 + 0x24) | (0x7 << 12)); dram_delay(5); if(((para->cas) >> 3) & 0x1) { write32(0x01c20800 + 0x2c4, read32(0x01c20800 + 0x2c4) | (0x1 << 23) | (0x20 << 17)); } if((para->clk >= 144) && (para->clk <= 180)) { write32(0x01c20800 + 0x2c0, 0xaaa); } if(para->clk >= 180) { write32(0x01c20800 + 0x2c0, 0xfff); } if((para->clk) <= 96) { val = (0x1 << 0) | (0x0 << 4) | (((para->clk * 2) / 12 - 1) << 8) | (0x1u << 31); } else { val = (0x0 << 0) | (0x0 << 4) | (((para->clk * 2) / 24 - 1) << 8) | (0x1u << 31); } if(para->cas & (0x1 << 4)) { write32(F1C100S_CCU_BASE + CCU_PLL_DDR0_PAT, 0xd1303333); } else if(para->cas & (0x1 << 5)) { write32(F1C100S_CCU_BASE + CCU_PLL_DDR0_PAT, 0xcce06666); } else if(para->cas & (0x1 << 6)) { write32(F1C100S_CCU_BASE + CCU_PLL_DDR0_PAT, 0xc8909999); } else if(para->cas & (0x1 << 7)) { write32(F1C100S_CCU_BASE + CCU_PLL_DDR0_PAT, 0xc440cccc); } if(para->cas & (0xf << 4)) { val |= 0x1 << 24; } write32(F1C100S_CCU_BASE + CCU_PLL_DDR_CTRL, val); write32(F1C100S_CCU_BASE + CCU_PLL_DDR_CTRL, read32(F1C100S_CCU_BASE + CCU_PLL_DDR_CTRL) | (0x1 << 20)); while((read32(F1C100S_CCU_BASE + CCU_PLL_DDR_CTRL) & (1 << 28)) == 0); dram_delay(5); write32(F1C100S_CCU_BASE + CCU_BUS_CLK_GATE0, read32(F1C100S_CCU_BASE + CCU_BUS_CLK_GATE0) | (0x1 << 14)); write32(F1C100S_CCU_BASE + CCU_BUS_SOFT_RST0, read32(F1C100S_CCU_BASE + CCU_BUS_SOFT_RST0) & ~(0x1 << 14)); for(i = 0; i < 10; i++) continue; write32(F1C100S_CCU_BASE + CCU_BUS_SOFT_RST0, read32(F1C100S_CCU_BASE + CCU_BUS_SOFT_RST0) | (0x1 << 14)); val = read32(0x01c20800 + 0x2c4); (para->sdr_ddr == DRAM_TYPE_DDR) ? (val |= (0x1 << 16)) : (val &= ~(0x1 << 16)); write32(0x01c20800 + 0x2c4, val); val = (SDR_T_CAS << 0) | (SDR_T_RAS << 3) | (SDR_T_RCD << 7) | (SDR_T_RP << 10) | (SDR_T_WR << 13) | (SDR_T_RFC << 15) | (SDR_T_XSR << 19) | (SDR_T_RC << 28); write32(F1C100S_DRAM_BASE + DRAM_STMG0R, val); val = (SDR_T_INIT << 0) | (SDR_T_INIT_REF << 16) | (SDR_T_WTR << 20) | (SDR_T_RRD << 22) | (SDR_T_XP << 25); write32(F1C100S_DRAM_BASE + DRAM_STMG1R, val); dram_para_setup(para); dram_check_type(para); val = read32(0x01c20800 + 0x2c4); (para->sdr_ddr == DRAM_TYPE_DDR) ? (val |= (0x1 << 16)) : (val &= ~(0x1 << 16)); write32(0x01c20800 + 0x2c4, val); dram_set_autofresh_cycle(para->clk * 1000000); dram_scan_readpipe(para); dram_get_dram_size(para); for(i = 0; i < 128; i++) { *((volatile u32_t *)(para->base + 4 * i)) = para->base + 4 * i; } for(i = 0; i < 128; i++) { if(*((volatile u32_t *)(para->base + 4 * i)) != (para->base + 4 * i)) return 0; } return 1; } void sys_dram_init(void) { struct dram_para_t para; u32_t * dsz = (void *)0x0000005c; para.base = 0x80000000; para.size = 0; para.clk = PLL_DDR_CLK / 1000000; para.access_mode = 1; para.cs_num = 1; para.ddr8_remap = 0; para.sdr_ddr = DRAM_TYPE_DDR; para.bwidth = 16; para.col_width = 10; para.row_width = 13; para.bank_size = 4; para.cas = 0x3; if((dsz[0] >> 24) == 'X') return; if(dram_init(¶)) dsz[0] = (((u32_t)'X') << 24) | (para.size << 0); } xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/ddr/source/sys-uart.c000066400000000000000000000047011512120643700236550ustar00rootroot00000000000000/* * sys-uart.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include void sys_uart_init(void) { virtual_addr_t addr; u32_t val; /* Config GPIOB8 and GPIOB9 to txd0 and rxd0 */ addr = 0x01c20824 + 0x04; val = read32(addr); val &= ~(0xf << ((8 & 0x7) << 2)); val |= ((0x3 & 0x7) << ((8 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((9 & 0x7) << 2)); val |= ((0x3 & 0x7) << ((9 & 0x7) << 2)); write32(addr, val); /* Open the clock gate for uart0 */ addr = 0x01c2006c; val = read32(addr); val |= 1 << 16; write32(addr, val); /* Deassert uart0 reset */ addr = 0x01c202d8; val = read32(addr); val |= 1 << 16; write32(addr, val); /* Config uart0 to 115200-8-1-0 */ addr = 0x01c28000; write32(addr + 0x04, 0x0); write32(addr + 0x08, 0xf7); write32(addr + 0x10, 0x0); val = read32(addr + 0x0c); val |= (1 << 7); write32(addr + 0x0c, val); write32(addr + 0x00, 0xd & 0xff); write32(addr + 0x04, (0xd >> 8) & 0xff); val = read32(addr + 0x0c); val &= ~(1 << 7); write32(addr + 0x0c, val); val = read32(addr + 0x0c); val &= ~0x1f; val |= (0x3 << 0) | (0 << 2) | (0x0 << 3); write32(addr + 0x0c, val); } void sys_uart_putc(char c) { virtual_addr_t addr = 0x01c28000; while((read32(addr + 0x7c) & (0x1 << 1)) == 0); write32(addr + 0x00, c); } xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/jtag/000077500000000000000000000000001512120643700205745ustar00rootroot00000000000000xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/jtag/.gitignore000066400000000000000000000000731512120643700225640ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/jtag/Makefile000066400000000000000000000055611512120643700222430ustar00rootroot00000000000000# # Top makefile # CROSS ?= arm-none-eabi- NAME := jtag # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 CFLAGS := -g -ggdb -Wall -O3 CXXFLAGS := -g -ggdb -Wall -O3 LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -march=armv5te -mtune=arm926ej-s -mfloat-abi=soft -marm -mno-thumb-interwork -mno-unaligned-access LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/jtag/include/000077500000000000000000000000001512120643700222175ustar00rootroot00000000000000xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/jtag/include/byteorder.h000066400000000000000000000043611512120643700243730ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/jtag/include/endian.h000066400000000000000000000007321512120643700236300ustar00rootroot00000000000000#ifndef __ARM32_ENDIAN_H__ #define __ARM32_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __ARM32_ENDIAN_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/jtag/include/f1c100s/000077500000000000000000000000001512120643700232745ustar00rootroot00000000000000xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/jtag/include/f1c100s/reg-ccu.h000066400000000000000000000031361512120643700247750ustar00rootroot00000000000000#ifndef __F1C100S_REG_CCU_H__ #define __F1C100S_REG_CCU_H__ #define F1C100S_CCU_BASE (0x01c20000) #define CCU_PLL_CPU_CTRL (0x000) #define CCU_PLL_AUDIO_CTRL (0x008) #define CCU_PLL_VIDEO_CTRL (0x010) #define CCU_PLL_VE_CTRL (0x018) #define CCU_PLL_DDR_CTRL (0x020) #define CCU_PLL_PERIPH_CTRL (0x028) #define CCU_CPU_CFG (0x050) #define CCU_AHB_APB_CFG (0x054) #define CCU_BUS_CLK_GATE0 (0x060) #define CCU_BUS_CLK_GATE1 (0x064) #define CCU_BUS_CLK_GATE2 (0x068) #define CCU_SDMMC0_CLK (0x088) #define CCU_SDMMC1_CLK (0x08c) #define CCU_DAUDIO_CLK (0x0b0) #define CCU_SPDIF_CLK (0x0b4) #define CCU_I2S_CLK (0x0b8) #define CCU_USBPHY_CFG (0x0cc) #define CCU_DRAM_CLK_GATE (0x100) #define CCU_DEBE_CLK (0x104) #define CCU_DEFE_CLK (0x10c) #define CCU_LCD_CLK (0x118) #define CCU_DEINTERLACE_CLK (0x11c) #define CCU_TVE_CLK (0x120) #define CCU_TVD_CLK (0x124) #define CCU_CSI_CLK (0x134) #define CCU_VE_CLK (0x13c) #define CCU_ADDA_CLK (0x140) #define CCU_AVS_CLK (0x144) #define CCU_PLL_STABLE_TIME0 (0x200) #define CCU_PLL_STABLE_TIME1 (0x204) #define CCU_PLL_CPU_BIAS (0x220) #define CCU_PLL_AUDIO_BIAS (0x224) #define CCU_PLL_VIDEO_BIAS (0x228) #define CCU_PLL_VE_BIAS (0x22c) #define CCU_PLL_DDR0_BIAS (0x230) #define CCU_PLL_PERIPH_BIAS (0x234) #define CCU_PLL_CPU_TUN (0x250) #define CCU_PLL_DDR_TUN (0x260) #define CCU_PLL_AUDIO_PAT (0x284) #define CCU_PLL_VIDEO_PAT (0x288) #define CCU_PLL_DDR0_PAT (0x290) #define CCU_BUS_SOFT_RST0 (0x2c0) #define CCU_BUS_SOFT_RST1 (0x2c4) #define CCU_BUS_SOFT_RST3 (0x2d0) #endif /* __F1C100S_REG_CCU_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/jtag/include/f1c100s/reg-dram.h000066400000000000000000000020211512120643700251360ustar00rootroot00000000000000#ifndef __F1C100S_REG_DRAM_H__ #define __F1C100S_REG_DRAM_H__ #define F1C100S_DRAM_BASE (0x01c01000) #define DRAM_SCONR (0x00) #define DRAM_STMG0R (0x04) #define DRAM_STMG1R (0x08) #define DRAM_SCTLR (0x0c) #define DRAM_SREFR (0x10) #define DRAM_SEXTMR (0x14) #define DRAM_DDLYR (0x24) #define DRAM_DADRR (0x28) #define DRAM_DVALR (0x2c) #define DRAM_DRPTR0 (0x30) #define DRAM_DRPTR1 (0x34) #define DRAM_DRPTR2 (0x38) #define DRAM_DRPTR3 (0x3c) #define DRAM_SEFR (0x40) #define DRAM_MAE (0x44) #define DRAM_ASPR (0x48) #define DRAM_SDLY0 (0x4C) #define DRAM_SDLY1 (0x50) #define DRAM_SDLY2 (0x54) #define DRAM_MCR0 (0x100) #define DRAM_MCR1 (0x104) #define DRAM_MCR2 (0x108) #define DRAM_MCR3 (0x10c) #define DRAM_MCR4 (0x110) #define DRAM_MCR5 (0x114) #define DRAM_MCR6 (0x118) #define DRAM_MCR7 (0x11c) #define DRAM_MCR8 (0x120) #define DRAM_MCR9 (0x124) #define DRAM_MCR10 (0x128) #define DRAM_MCR11 (0x12c) #define DRAM_BWCR (0x140) #endif /* __F1C100S_REG_DRAM_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/jtag/include/io.h000066400000000000000000000016401512120643700230000ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/jtag/include/stdarg.h000066400000000000000000000010541512120643700236540ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/jtag/include/stddef.h000066400000000000000000000026101512120643700236400ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/jtag/include/stdint.h000066400000000000000000000010161512120643700236730ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/jtag/include/string.h000066400000000000000000000004241512120643700236760ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/jtag/include/types.h000066400000000000000000000021051512120643700235320ustar00rootroot00000000000000#ifndef __ARM32_TYPES_H__ #define __ARM32_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed int ptrdiff_t; typedef signed int intptr_t; typedef unsigned int uintptr_t; typedef unsigned int size_t; typedef signed int ssize_t; typedef signed int off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned int irq_flags_t; typedef unsigned int virtual_addr_t; typedef unsigned int virtual_size_t; typedef unsigned int physical_addr_t; typedef unsigned int physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __ARM32_TYPES_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/jtag/include/xboot.h000066400000000000000000000004731512120643700235270ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/jtag/link.ld000066400000000000000000000046451512120643700220630ustar00rootroot00000000000000OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) STACK_UND_SIZE = 0x010; STACK_ABT_SIZE = 0x010; STACK_IRQ_SIZE = 0x010; STACK_FIQ_SIZE = 0x010; STACK_SRV_SIZE = 0x400; MEMORY { ram : org = 0x00008800, len = 0x00001000 /* 4 KB */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text) .obj/source/sys-jtag.o (.text) *(.text*) *(.glue*) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ARM.exidx ALIGN(8) : { PROVIDE (__exidx_start = .); *(.ARM.exidx*) PROVIDE (__exidx_end = .); } > ram .ARM.extab ALIGN(8) : { PROVIDE (__extab_start = .); *(.ARM.extab*) PROVIDE (__extab_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(8) (NOLOAD) : { PROVIDE(__stack_start = .); PROVIDE(__stack_und_start = .); . += STACK_UND_SIZE; PROVIDE(__stack_und_end = .); . = ALIGN(8); PROVIDE(__stack_abt_start = .); . += STACK_ABT_SIZE; PROVIDE(__stack_abt_end = .); . = ALIGN(8); PROVIDE(__stack_irq_start = .); . += STACK_IRQ_SIZE; PROVIDE(__stack_irq_end = .); . = ALIGN(8); PROVIDE(__stack_fiq_start = .); . += STACK_FIQ_SIZE; PROVIDE(__stack_fiq_end = .); . = ALIGN(8); PROVIDE(__stack_srv_start = .); . += STACK_SRV_SIZE; PROVIDE(__stack_srv_end = .); . = ALIGN(8); PROVIDE(__stack_end = .); } > ram .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_info 0 : { *(.debug_info) } .debug_line 0 : { *(.debug_line) } .debug_pubnames 0 : { *(.debug_pubnames) } .debug_aranges 0 : { *(.debug_aranges) } } xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/jtag/source/000077500000000000000000000000001512120643700220745ustar00rootroot00000000000000xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/jtag/source/start.S000066400000000000000000000036341512120643700233630ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ .global _start _start: b reset reset: ldr r0, =0x00000040 str sp, [r0, #0] str lr, [r0, #4] mrs lr, cpsr str lr, [r0, #8] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #12] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #16] bl sys_jtag_init mov r0, #0x4 mov r1, #'e' strb r1, [r0, #0] mov r1, #'G' strb r1, [r0, #1] mov r1, #'O' strb r1, [r0, #2] mov r1, #'N' strb r1, [r0, #3] mov r1, #'.' strb r1, [r0, #4] mov r1, #'F' strb r1, [r0, #5] mov r1, #'E' strb r1, [r0, #6] mov r1, #'L' strb r1, [r0, #7] ldr r0, =0x00000040 ldr sp, [r0, #0] ldr lr, [r0, #4] ldr r1, [r0, #16] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #12] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #8] msr cpsr, r1 bx lr xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/jtag/source/sys-jtag.c000066400000000000000000000035561512120643700240120ustar00rootroot00000000000000/* * sys-jtag.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include void sys_jtag_init(void) { virtual_addr_t addr; u32_t val; /* Config GPIOF0, GPIOF1, GPIOF3 and GPIOF5 to JTAG mode */ addr = 0x01c208b4 + 0x00; val = read32(addr); val &= ~(0xf << ((0 & 0x7) << 2)); val |= ((0x3 & 0x7) << ((0 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((1 & 0x7) << 2)); val |= ((0x3 & 0x7) << ((1 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((3 & 0x7) << 2)); val |= ((0x3 & 0x7) << ((3 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((5 & 0x7) << 2)); val |= ((0x3 & 0x7) << ((5 & 0x7) << 2)); write32(addr, val); } xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/spi/000077500000000000000000000000001512120643700204425ustar00rootroot00000000000000xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/spi/.gitignore000066400000000000000000000000731512120643700224320ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/spi/Makefile000066400000000000000000000055601512120643700221100ustar00rootroot00000000000000# # Top makefile # CROSS ?= arm-none-eabi- NAME := spi # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 CFLAGS := -g -ggdb -Wall -O3 CXXFLAGS := -g -ggdb -Wall -O3 LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -march=armv5te -mtune=arm926ej-s -mfloat-abi=soft -marm -mno-thumb-interwork -mno-unaligned-access LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/spi/include/000077500000000000000000000000001512120643700220655ustar00rootroot00000000000000xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/spi/include/byteorder.h000066400000000000000000000043611512120643700242410ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/spi/include/endian.h000066400000000000000000000007321512120643700234760ustar00rootroot00000000000000#ifndef __ARM32_ENDIAN_H__ #define __ARM32_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __ARM32_ENDIAN_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/spi/include/f1c100s/000077500000000000000000000000001512120643700231425ustar00rootroot00000000000000xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/spi/include/f1c100s/reg-ccu.h000066400000000000000000000031361512120643700246430ustar00rootroot00000000000000#ifndef __F1C100S_REG_CCU_H__ #define __F1C100S_REG_CCU_H__ #define F1C100S_CCU_BASE (0x01c20000) #define CCU_PLL_CPU_CTRL (0x000) #define CCU_PLL_AUDIO_CTRL (0x008) #define CCU_PLL_VIDEO_CTRL (0x010) #define CCU_PLL_VE_CTRL (0x018) #define CCU_PLL_DDR_CTRL (0x020) #define CCU_PLL_PERIPH_CTRL (0x028) #define CCU_CPU_CFG (0x050) #define CCU_AHB_APB_CFG (0x054) #define CCU_BUS_CLK_GATE0 (0x060) #define CCU_BUS_CLK_GATE1 (0x064) #define CCU_BUS_CLK_GATE2 (0x068) #define CCU_SDMMC0_CLK (0x088) #define CCU_SDMMC1_CLK (0x08c) #define CCU_DAUDIO_CLK (0x0b0) #define CCU_SPDIF_CLK (0x0b4) #define CCU_I2S_CLK (0x0b8) #define CCU_USBPHY_CFG (0x0cc) #define CCU_DRAM_CLK_GATE (0x100) #define CCU_DEBE_CLK (0x104) #define CCU_DEFE_CLK (0x10c) #define CCU_LCD_CLK (0x118) #define CCU_DEINTERLACE_CLK (0x11c) #define CCU_TVE_CLK (0x120) #define CCU_TVD_CLK (0x124) #define CCU_CSI_CLK (0x134) #define CCU_VE_CLK (0x13c) #define CCU_ADDA_CLK (0x140) #define CCU_AVS_CLK (0x144) #define CCU_PLL_STABLE_TIME0 (0x200) #define CCU_PLL_STABLE_TIME1 (0x204) #define CCU_PLL_CPU_BIAS (0x220) #define CCU_PLL_AUDIO_BIAS (0x224) #define CCU_PLL_VIDEO_BIAS (0x228) #define CCU_PLL_VE_BIAS (0x22c) #define CCU_PLL_DDR0_BIAS (0x230) #define CCU_PLL_PERIPH_BIAS (0x234) #define CCU_PLL_CPU_TUN (0x250) #define CCU_PLL_DDR_TUN (0x260) #define CCU_PLL_AUDIO_PAT (0x284) #define CCU_PLL_VIDEO_PAT (0x288) #define CCU_PLL_DDR0_PAT (0x290) #define CCU_BUS_SOFT_RST0 (0x2c0) #define CCU_BUS_SOFT_RST1 (0x2c4) #define CCU_BUS_SOFT_RST3 (0x2d0) #endif /* __F1C100S_REG_CCU_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/spi/include/f1c100s/reg-dram.h000066400000000000000000000020211512120643700250040ustar00rootroot00000000000000#ifndef __F1C100S_REG_DRAM_H__ #define __F1C100S_REG_DRAM_H__ #define F1C100S_DRAM_BASE (0x01c01000) #define DRAM_SCONR (0x00) #define DRAM_STMG0R (0x04) #define DRAM_STMG1R (0x08) #define DRAM_SCTLR (0x0c) #define DRAM_SREFR (0x10) #define DRAM_SEXTMR (0x14) #define DRAM_DDLYR (0x24) #define DRAM_DADRR (0x28) #define DRAM_DVALR (0x2c) #define DRAM_DRPTR0 (0x30) #define DRAM_DRPTR1 (0x34) #define DRAM_DRPTR2 (0x38) #define DRAM_DRPTR3 (0x3c) #define DRAM_SEFR (0x40) #define DRAM_MAE (0x44) #define DRAM_ASPR (0x48) #define DRAM_SDLY0 (0x4C) #define DRAM_SDLY1 (0x50) #define DRAM_SDLY2 (0x54) #define DRAM_MCR0 (0x100) #define DRAM_MCR1 (0x104) #define DRAM_MCR2 (0x108) #define DRAM_MCR3 (0x10c) #define DRAM_MCR4 (0x110) #define DRAM_MCR5 (0x114) #define DRAM_MCR6 (0x118) #define DRAM_MCR7 (0x11c) #define DRAM_MCR8 (0x120) #define DRAM_MCR9 (0x124) #define DRAM_MCR10 (0x128) #define DRAM_MCR11 (0x12c) #define DRAM_BWCR (0x140) #endif /* __F1C100S_REG_DRAM_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/spi/include/io.h000066400000000000000000000016401512120643700226460ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/spi/include/stdarg.h000066400000000000000000000010541512120643700235220ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/spi/include/stddef.h000066400000000000000000000026101512120643700235060ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/spi/include/stdint.h000066400000000000000000000010161512120643700235410ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/spi/include/string.h000066400000000000000000000004241512120643700235440ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/spi/include/types.h000066400000000000000000000021051512120643700234000ustar00rootroot00000000000000#ifndef __ARM32_TYPES_H__ #define __ARM32_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed int ptrdiff_t; typedef signed int intptr_t; typedef unsigned int uintptr_t; typedef unsigned int size_t; typedef signed int ssize_t; typedef signed int off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned int irq_flags_t; typedef unsigned int virtual_addr_t; typedef unsigned int virtual_size_t; typedef unsigned int physical_addr_t; typedef unsigned int physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __ARM32_TYPES_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/spi/include/xboot.h000066400000000000000000000004731512120643700233750ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/spi/link.ld000066400000000000000000000046441512120643700217300ustar00rootroot00000000000000OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) STACK_UND_SIZE = 0x010; STACK_ABT_SIZE = 0x010; STACK_IRQ_SIZE = 0x010; STACK_FIQ_SIZE = 0x010; STACK_SRV_SIZE = 0x400; MEMORY { ram : org = 0x00008800, len = 0x00001000 /* 4 KB */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text) .obj/source/sys-spi.o (.text) *(.text*) *(.glue*) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ARM.exidx ALIGN(8) : { PROVIDE (__exidx_start = .); *(.ARM.exidx*) PROVIDE (__exidx_end = .); } > ram .ARM.extab ALIGN(8) : { PROVIDE (__extab_start = .); *(.ARM.extab*) PROVIDE (__extab_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(8) (NOLOAD) : { PROVIDE(__stack_start = .); PROVIDE(__stack_und_start = .); . += STACK_UND_SIZE; PROVIDE(__stack_und_end = .); . = ALIGN(8); PROVIDE(__stack_abt_start = .); . += STACK_ABT_SIZE; PROVIDE(__stack_abt_end = .); . = ALIGN(8); PROVIDE(__stack_irq_start = .); . += STACK_IRQ_SIZE; PROVIDE(__stack_irq_end = .); . = ALIGN(8); PROVIDE(__stack_fiq_start = .); . += STACK_FIQ_SIZE; PROVIDE(__stack_fiq_end = .); . = ALIGN(8); PROVIDE(__stack_srv_start = .); . += STACK_SRV_SIZE; PROVIDE(__stack_srv_end = .); . = ALIGN(8); PROVIDE(__stack_end = .); } > ram .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_info 0 : { *(.debug_info) } .debug_line 0 : { *(.debug_line) } .debug_pubnames 0 : { *(.debug_pubnames) } .debug_aranges 0 : { *(.debug_aranges) } } xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/spi/source/000077500000000000000000000000001512120643700217425ustar00rootroot00000000000000xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/spi/source/start.S000066400000000000000000000036571512120643700232360ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ .global _start _start: b reset reset: ldr r0, =0x00000040 str sp, [r0, #0] str lr, [r0, #4] mrs lr, cpsr str lr, [r0, #8] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #12] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #16] ldr r0, =0x00009800 bl sys_spi_run mov r0, #0x4 mov r1, #'e' strb r1, [r0, #0] mov r1, #'G' strb r1, [r0, #1] mov r1, #'O' strb r1, [r0, #2] mov r1, #'N' strb r1, [r0, #3] mov r1, #'.' strb r1, [r0, #4] mov r1, #'F' strb r1, [r0, #5] mov r1, #'E' strb r1, [r0, #6] mov r1, #'L' strb r1, [r0, #7] ldr r0, =0x00000040 ldr sp, [r0, #0] ldr lr, [r0, #4] ldr r1, [r0, #16] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #12] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #8] msr cpsr, r1 bx lr xfel-1.3.5/payloads/f1c100s_f1c200s_f1c500s/spi/source/sys-spi.c000066400000000000000000000132641512120643700235230ustar00rootroot00000000000000/* * sys-spi.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include enum { SPI_GCR = 0x04, SPI_TCR = 0x08, SPI_IER = 0x10, SPI_ISR = 0x14, SPI_FCR = 0x18, SPI_FSR = 0x1c, SPI_WCR = 0x20, SPI_CCR = 0x24, SPI_MBC = 0x30, SPI_MTC = 0x34, SPI_BCC = 0x38, SPI_TXD = 0x200, SPI_RXD = 0x300, }; static void sys_spi_init(void) { virtual_addr_t addr; u32_t val; /* Config GPIOC0, GPIOC1, GPIOC2 and GPIOC3 */ addr = 0x01c20848 + 0x00; val = read32(addr); val &= ~(0xf << ((0 & 0x7) << 2)); val |= ((0x2 & 0x7) << ((0 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((1 & 0x7) << 2)); val |= ((0x2 & 0x7) << ((1 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((2 & 0x7) << 2)); val |= ((0x2 & 0x7) << ((2 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((3 & 0x7) << 2)); val |= ((0x2 & 0x7) << ((3 & 0x7) << 2)); write32(addr, val); /* Deassert spi0 reset */ addr = 0x01c202c0; val = read32(addr); val |= (1 << 20); write32(addr, val); /* Open the spi0 bus gate */ addr = 0x01c20000 + 0x60; val = read32(addr); val |= (1 << 20); write32(addr, val); /* Set spi clock rate control register, divided by 4 */ addr = 0x01c05000; write32(addr + SPI_CCR, 0x00001001); /* Enable spi0 and do a soft reset */ addr = 0x01c05000; val = read32(addr + SPI_GCR); val |= (1 << 31) | (1 << 7) | (1 << 1) | (1 << 0); write32(addr + SPI_GCR, val); while(read32(addr + SPI_GCR) & (1 << 31)); val = read32(addr + SPI_TCR); val &= ~(0x3 << 0); val |= (1 << 6) | (1 << 2); write32(addr + SPI_TCR, val); val = read32(addr + SPI_FCR); val |= (1 << 31) | (1 << 15); write32(addr + SPI_FCR, val); } static void sys_spi_select(void) { virtual_addr_t addr = 0x01c05000; u32_t val; val = read32(addr + SPI_TCR); val &= ~((0x3 << 4) | (0x1 << 7)); val |= ((0 & 0x3) << 4) | (0x0 << 7); write32(addr + SPI_TCR, val); } static void sys_spi_deselect(void) { virtual_addr_t addr = 0x01c05000; u32_t val; val = read32(addr + SPI_TCR); val &= ~((0x3 << 4) | (0x1 << 7)); val |= ((0 & 0x3) << 4) | (0x1 << 7); write32(addr + SPI_TCR, val); } static inline void sys_spi_write_txbuf(u8_t * buf, int len) { virtual_addr_t addr = 0x01c05000; int i; write32(addr + SPI_MTC, len & 0xffffff); write32(addr + SPI_BCC, len & 0xffffff); if(buf) { for(i = 0; i < len; i++) write8(addr + SPI_TXD, *buf++); } else { for(i = 0; i < len; i++) write8(addr + SPI_TXD, 0xff); } } static void sys_spi_transfer(void * txbuf, void * rxbuf, u32_t len) { virtual_addr_t addr = 0x01c05000; u8_t * tx = txbuf; u8_t * rx = rxbuf; u8_t val; int n, i; while(len > 0) { n = (len <= 64) ? len : 64; write32(addr + SPI_MBC, n); sys_spi_write_txbuf(tx, n); write32(addr + SPI_TCR, read32(addr + SPI_TCR) | (1 << 31)); while(read32(addr + SPI_TCR) & (1 << 31)); while((read32(addr + SPI_FSR) & 0xff) < n); for(i = 0; i < n; i++) { val = read8(addr + SPI_RXD); if(rx) *rx++ = val; } if(tx) tx += n; len -= n; } } enum { SPI_CMD_END = 0x00, SPI_CMD_INIT = 0x01, SPI_CMD_SELECT = 0x02, SPI_CMD_DESELECT = 0x03, SPI_CMD_FAST = 0x04, SPI_CMD_TXBUF = 0x05, SPI_CMD_RXBUF = 0x06, SPI_CMD_SPINOR_WAIT = 0x07, SPI_CMD_SPINAND_WAIT = 0x08, }; void sys_spi_run(void * cbuf) { uint8_t tx[8], rx[8]; u8_t c, * p = cbuf; u32_t addr, len; while(1) { c = *p++; if(c == SPI_CMD_INIT) { sys_spi_init(); } else if(c == SPI_CMD_SELECT) { sys_spi_select(); } else if(c == SPI_CMD_DESELECT) { sys_spi_deselect(); } else if(c == SPI_CMD_FAST) { len = p[0]; sys_spi_transfer((void *)&p[1], NULL, len); p += (len + 1); } else if(c == SPI_CMD_TXBUF) { addr = (p[0] << 0) | (p[1] << 8) | (p[2] << 16) | (p[3] << 24); len = (p[4] << 0) | (p[5] << 8) | (p[6] << 16) | (p[7] << 24); sys_spi_transfer((void *)addr, NULL, len); p += 8; } else if(c == SPI_CMD_RXBUF) { addr = (p[0] << 0) | (p[1] << 8) | (p[2] << 16) | (p[3] << 24); len = (p[4] << 0) | (p[5] << 8) | (p[6] << 16) | (p[7] << 24); sys_spi_transfer(NULL, (void *)addr, len); p += 8; } else if(c == SPI_CMD_SPINOR_WAIT) { tx[0] = 0x05; do { sys_spi_transfer((void *)&tx[0], NULL, 1); sys_spi_transfer(NULL, (void *)&rx[0], 1); } while((rx[0] & 0x1) == 0x1); } else if(c == SPI_CMD_SPINAND_WAIT) { tx[0] = 0x0f; tx[1] = 0xc0; do { sys_spi_transfer((void *)&tx[0], NULL, 2); sys_spi_transfer(NULL, (void *)&rx[0], 1); } while((rx[0] & 0x1) == 0x1); } else { return; } } } xfel-1.3.5/payloads/h2_h3/000077500000000000000000000000001512120643700151765ustar00rootroot00000000000000xfel-1.3.5/payloads/h2_h3/h2-ddr/000077500000000000000000000000001512120643700162565ustar00rootroot00000000000000xfel-1.3.5/payloads/h2_h3/h2-ddr/.gitignore000066400000000000000000000000731512120643700202460ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/h2_h3/h2-ddr/Makefile000066400000000000000000000056311512120643700177230ustar00rootroot00000000000000# # Top makefile # CROSS ?= arm-linux-gnueabihf- NAME := h2-ddr # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 CFLAGS := -g -ggdb -Wall -O3 CXXFLAGS := -g -ggdb -Wall -O3 LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -march=armv7-a -mtune=cortex-a7 -mfpu=vfpv4 -mfloat-abi=hard -marm -mno-thumb-interwork -mno-unaligned-access -fno-stack-protector LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/h2_h3/h2-ddr/include/000077500000000000000000000000001512120643700177015ustar00rootroot00000000000000xfel-1.3.5/payloads/h2_h3/h2-ddr/include/byteorder.h000066400000000000000000000043611512120643700220550ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/h2_h3/h2-ddr/include/endian.h000066400000000000000000000007321512120643700213120ustar00rootroot00000000000000#ifndef __ARM32_ENDIAN_H__ #define __ARM32_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __ARM32_ENDIAN_H__ */ xfel-1.3.5/payloads/h2_h3/h2-ddr/include/h2/000077500000000000000000000000001512120643700202125ustar00rootroot00000000000000xfel-1.3.5/payloads/h2_h3/h2-ddr/include/h2/reg-ccu.h000066400000000000000000000051251512120643700217130ustar00rootroot00000000000000#ifndef __H3_REG_CCU_H__ #define __H3_REG_CCU_H__ #define H3_CCU_BASE (0x01c20000) #define CCU_PLL_CPUX_CTRL (0x000) #define CCU_PLL_AUDIO_CTRL (0x008) #define CCU_PLL_VIDEO_CTRL (0x010) #define CCU_PLL_VE_CTRL (0x018) #define CCU_PLL_DDR_CTRL (0x020) #define CCU_PLL_PERIPH0_CTRL (0x028) #define CCU_PLL_GPU_CTRL (0x038) #define CCU_PLL_PERIPH1_CTRL (0x044) #define CCU_PLL_DE_CTRL (0x048) #define CCU_CPUX_AXI_CFG (0x050) #define CCU_AHB1_APB1_CFG (0x054) #define CCU_APB1_CFG (0x058) #define CCU_AHB2_CFG (0x05c) #define CCU_BUS_CLK_GATE0 (0x060) #define CCU_BUS_CLK_GATE1 (0x064) #define CCU_BUS_CLK_GATE2 (0x068) #define CCU_BUS_CLK_GATE3 (0x06c) #define CCU_BUS_CLK_GATE4 (0x070) #define CCU_THS_CLK (0x074) #define CCU_NAND_CLK (0x080) #define CCU_SDMMC0_CLK (0x088) #define CCU_SDMMC1_CLK (0x08c) #define CCU_SDMMC2_CLK (0x090) #define CCU_CE_CLK (0x09c) #define CCU_SPI0_CLK (0x0a0) #define CCU_SPI1_CLK (0x0a4) #define CCU_I2S0_CLK (0x0b0) #define CCU_I2S1_CLK (0x0b4) #define CCU_I2S2_CLK (0x0b8) #define CCU_OWA_CLK (0x0c0) #define CCU_USBPHY_CFG (0x0cc) #define CCU_DRAM_CFG (0x0f4) #define CCU_MBUS_RST (0x0fc) #define CCU_DRAM_CLK_GATE (0x100) #define CCU_TCON0_CLK (0x118) #define CCU_TVE_CLK (0x120) #define CCU_DEINTERLACE_CLK (0x124) #define CCU_CSI_MISC_CLK (0x130) #define CCU_CSI_CLK (0x134) #define CCU_VE_CLK (0x13c) #define CCU_AC_DIG_CLK (0x140) #define CCU_AVS_CLK (0x144) #define CCU_HDMI_CLK (0x150) #define CCU_HDMI_SLOW_CLK (0x154) #define CCU_MBUS_CLK (0x15c) #define CCU_GPU_CLK (0x1a0) #define CCU_PLL_STABLE_TIME0 (0x200) #define CCU_PLL_STABLE_TIME1 (0x204) #define CCU_PLL_CPUX_BIAS (0x220) #define CCU_PLL_AUDIO_BIAS (0x224) #define CCU_PLL_VIDEO_BIAS (0x228) #define CCU_PLL_VE_BIAS (0x22c) #define CCU_PLL_DDR_BIAS (0x230) #define CCU_PLL_PERIPH0_BIAS (0x234) #define CCU_PLL_GPU_BIAS (0x23c) #define CCU_PLL_PERIPH1_BIAS (0x244) #define CCU_PLL_DE_BIAS (0x248) #define CCU_PLL_CPUX_TUN (0x250) #define CCU_PLL_DDR_TUN (0x260) #define CCU_PLL_CPUX_PAT (0x280) #define CCU_PLL_AUDIO_PAT (0x284) #define CCU_PLL_VIDEO_PAT (0x288) #define CCU_PLL_VE_PAT (0x28c) #define CCU_PLL_DDR_PAT (0x290) #define CCU_PLL_GPU_PAT (0x29c) #define CCU_PLL_PERIPH1_PAT (0x2a4) #define CCU_PLL_DE_PAT (0x2a8) #define CCU_BUS_SOFT_RST0 (0x2c0) #define CCU_BUS_SOFT_RST1 (0x2c4) #define CCU_BUS_SOFT_RST2 (0x2c8) #define CCU_BUS_SOFT_RST3 (0x2d0) #define CCU_BUS_SOFT_RST4 (0x2d8) #define CCU_SEC_SWITCH (0x2f0) #define CCU_PS_CTRL (0x300) #define CCU_PS_CNT (0x304) #endif /* __H3_REG_CCU_H__ */ xfel-1.3.5/payloads/h2_h3/h2-ddr/include/h2/reg-dram.h000066400000000000000000000063301512120643700220630ustar00rootroot00000000000000#ifndef __H3_REG_DRAM_H__ #define __H3_REG_DRAM_H__ #define H3_DRAM_COM_BASE (0x01c62000) #define H3_DRAM_CTL0_BASE (0x01c63000) #define H3_DRAM_CTL1_BASE (0x01c64000) #define H3_DRAM_PHY0_BASE (0x01c65000) #define H3_DRAM_PHY1_BASE (0x01c66000) #define MCTL_CR_BL8 (0x4 << 20) #define MCTL_CR_1T (0x1 << 19) #define MCTL_CR_2T (0x0 << 19) #define MCTL_CR_LPDDR3 (0x7 << 16) #define MCTL_CR_LPDDR2 (0x6 << 16) #define MCTL_CR_DDR3 (0x3 << 16) #define MCTL_CR_DDR2 (0x2 << 16) #define MCTL_CR_SEQUENTIAL (0x1 << 15) #define MCTL_CR_INTERLEAVED (0x0 << 15) #define MCTL_CR_FULL_WIDTH (0x1 << 12) #define MCTL_CR_HALF_WIDTH (0x0 << 12) #define MCTL_CR_BUS_FULL_WIDTH(x) ((x) << 12) #define MCTL_CR_PAGE_SIZE(x) ((gfls(x) - 4) << 8) #define MCTL_CR_ROW_BITS(x) (((x) - 1) << 4) #define MCTL_CR_EIGHT_BANKS (0x1 << 2) #define MCTL_CR_FOUR_BANKS (0x0 << 2) #define MCTL_CR_DUAL_RANK (0x1 << 0) #define MCTL_CR_SINGLE_RANK (0x0 << 0) #define DRAMTMG0_TWTP(x) ((x) << 24) #define DRAMTMG0_TFAW(x) ((x) << 16) #define DRAMTMG0_TRAS_MAX(x) ((x) << 8) #define DRAMTMG0_TRAS(x) ((x) << 0) #define DRAMTMG1_TXP(x) ((x) << 16) #define DRAMTMG1_TRTP(x) ((x) << 8) #define DRAMTMG1_TRC(x) ((x) << 0) #define DRAMTMG2_TCWL(x) ((x) << 24) #define DRAMTMG2_TCL(x) ((x) << 16) #define DRAMTMG2_TRD2WR(x) ((x) << 8) #define DRAMTMG2_TWR2RD(x) ((x) << 0) #define DRAMTMG3_TMRW(x) ((x) << 16) #define DRAMTMG3_TMRD(x) ((x) << 12) #define DRAMTMG3_TMOD(x) ((x) << 0) #define DRAMTMG4_TRCD(x) ((x) << 24) #define DRAMTMG4_TCCD(x) ((x) << 16) #define DRAMTMG4_TRRD(x) ((x) << 8) #define DRAMTMG4_TRP(x) ((x) << 0) #define DRAMTMG5_TCKSRX(x) ((x) << 24) #define DRAMTMG5_TCKSRE(x) ((x) << 16) #define DRAMTMG5_TCKESR(x) ((x) << 8) #define DRAMTMG5_TCKE(x) ((x) << 0) #define PTR3_TDINIT1(x) ((x) << 20) #define PTR3_TDINIT0(x) ((x) << 0) #define PTR4_TDINIT3(x) ((x) << 20) #define PTR4_TDINIT2(x) ((x) << 0) #define RFSHTMG_TREFI(x) ((x) << 16) #define RFSHTMG_TRFC(x) ((x) << 0) #define PIR_CLRSR (0x1 << 27) /* Clear status registers */ #define PIR_QSGATE (0x1 << 10) /* Read DQS gate training */ #define PIR_DRAMINIT (0x1 << 8) /* DRAM initialization */ #define PIR_DRAMRST (0x1 << 7) /* DRAM reset */ #define PIR_PHYRST (0x1 << 6) /* PHY reset */ #define PIR_DCAL (0x1 << 5) /* DDL calibration */ #define PIR_PLLINIT (0x1 << 4) /* PLL initialization */ #define PIR_ZCAL (0x1 << 1) /* ZQ calibration */ #define PIR_INIT (0x1 << 0) /* PHY initialization trigger */ #define PGSR_INIT_DONE (0x1 << 0) /* PHY init done */ #define ZQCR_PWRDOWN (0x1 << 31) /* ZQ power down */ #define DXBDLR_DQ(x) (x) /* DQ0-7 BDLR index */ #define DXBDLR_DM (8) /* DM BDLR index */ #define DXBDLR_DQS (9) /* DQS BDLR index */ #define DXBDLR_DQSN (10) /* DQSN BDLR index */ #define DXBDLR_WRITE_DELAY(x) ((x) << 8) #define DXBDLR_READ_DELAY(x) ((x) << 0) #define ACBDLR_WRITE_DELAY(x) ((x) << 8) #define DATX_IOCR_DQ(x) (x) #define DATX_IOCR_DM (8) #define DATX_IOCR_DQS (9) #define DATX_IOCR_DQSN (10) #define DATX_IOCR_WRITE_DELAY(x) ((x) << 8) #define DATX_IOCR_READ_DELAY(x) ((x) << 0) #endif /* __H3_REG_DRAM_H__ */ xfel-1.3.5/payloads/h2_h3/h2-ddr/include/io.h000066400000000000000000000016401512120643700204620ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/h2_h3/h2-ddr/include/stdarg.h000066400000000000000000000010541512120643700213360ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/h2_h3/h2-ddr/include/stddef.h000066400000000000000000000026101512120643700213220ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/h2_h3/h2-ddr/include/stdint.h000066400000000000000000000010161512120643700213550ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/h2_h3/h2-ddr/include/string.h000066400000000000000000000004241512120643700213600ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/h2_h3/h2-ddr/include/types.h000066400000000000000000000021051512120643700212140ustar00rootroot00000000000000#ifndef __ARM32_TYPES_H__ #define __ARM32_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed int ptrdiff_t; typedef signed int intptr_t; typedef unsigned int uintptr_t; typedef unsigned int size_t; typedef signed int ssize_t; typedef signed int off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned int irq_flags_t; typedef unsigned int virtual_addr_t; typedef unsigned int virtual_size_t; typedef unsigned int physical_addr_t; typedef unsigned int physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __ARM32_TYPES_H__ */ xfel-1.3.5/payloads/h2_h3/h2-ddr/include/xboot.h000066400000000000000000000004731512120643700212110ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/h2_h3/h2-ddr/link.ld000066400000000000000000000050531512120643700175370ustar00rootroot00000000000000OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) STACK_UND_SIZE = 0x010; STACK_ABT_SIZE = 0x010; STACK_IRQ_SIZE = 0x010; STACK_FIQ_SIZE = 0x010; STACK_SRV_SIZE = 0x400; MEMORY { ram : org = 0x00008000, len = 0x00002000 /* 8 KB */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text) .obj/source/memcpy.o (.text*) .obj/source/memset.o (.text*) .obj/source/sys-uart.o (.text*) .obj/source/sys-clock.o (.text*) .obj/source/sys-dram.o (.text*) *(.text*) *(.glue*) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ARM.exidx ALIGN(8) : { PROVIDE (__exidx_start = .); *(.ARM.exidx*) PROVIDE (__exidx_end = .); } > ram .ARM.extab ALIGN(8) : { PROVIDE (__extab_start = .); *(.ARM.extab*) PROVIDE (__extab_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(8) (NOLOAD) : { PROVIDE(__stack_start = .); PROVIDE(__stack_und_start = .); . += STACK_UND_SIZE; PROVIDE(__stack_und_end = .); . = ALIGN(8); PROVIDE(__stack_abt_start = .); . += STACK_ABT_SIZE; PROVIDE(__stack_abt_end = .); . = ALIGN(8); PROVIDE(__stack_irq_start = .); . += STACK_IRQ_SIZE; PROVIDE(__stack_irq_end = .); . = ALIGN(8); PROVIDE(__stack_fiq_start = .); . += STACK_FIQ_SIZE; PROVIDE(__stack_fiq_end = .); . = ALIGN(8); PROVIDE(__stack_srv_start = .); . += STACK_SRV_SIZE; PROVIDE(__stack_srv_end = .); . = ALIGN(8); PROVIDE(__stack_end = .); } > ram .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_info 0 : { *(.debug_info) } .debug_line 0 : { *(.debug_line) } .debug_pubnames 0 : { *(.debug_pubnames) } .debug_aranges 0 : { *(.debug_aranges) } } xfel-1.3.5/payloads/h2_h3/h2-ddr/source/000077500000000000000000000000001512120643700175565ustar00rootroot00000000000000xfel-1.3.5/payloads/h2_h3/h2-ddr/source/memcpy.S000066400000000000000000000212061512120643700211750ustar00rootroot00000000000000/* * memcpy.S */ .text .global memcpy .type memcpy, %function .align 4 memcpy: /* determine copy direction */ cmp r1, r0 bcc .Lmemcpy_backwards moveq r0, #0 /* quick abort for len=0 */ moveq pc, lr stmdb sp!, {r0, lr} /* memcpy() returns dest addr */ subs r2, r2, #4 blt .Lmemcpy_fl4 /* less than 4 bytes */ ands r12, r0, #3 bne .Lmemcpy_fdestul /* oh unaligned destination addr */ ands r12, r1, #3 bne .Lmemcpy_fsrcul /* oh unaligned source addr */ .Lmemcpy_ft8: /* we have aligned source and destination */ subs r2, r2, #8 blt .Lmemcpy_fl12 /* less than 12 bytes (4 from above) */ subs r2, r2, #0x14 blt .Lmemcpy_fl32 /* less than 32 bytes (12 from above) */ stmdb sp!, {r4} /* borrow r4 */ /* blat 32 bytes at a time */ .Lmemcpy_floop32: ldmia r1!, {r3, r4, r12, lr} stmia r0!, {r3, r4, r12, lr} ldmia r1!, {r3, r4, r12, lr} stmia r0!, {r3, r4, r12, lr} subs r2, r2, #0x20 bge .Lmemcpy_floop32 cmn r2, #0x10 ldmgeia r1!, {r3, r4, r12, lr} /* blat a remaining 16 bytes */ stmgeia r0!, {r3, r4, r12, lr} subge r2, r2, #0x10 ldmia sp!, {r4} /* return r4 */ .Lmemcpy_fl32: adds r2, r2, #0x14 /* blat 12 bytes at a time */ .Lmemcpy_floop12: ldmgeia r1!, {r3, r12, lr} stmgeia r0!, {r3, r12, lr} subges r2, r2, #0x0c bge .Lmemcpy_floop12 .Lmemcpy_fl12: adds r2, r2, #8 blt .Lmemcpy_fl4 subs r2, r2, #4 ldrlt r3, [r1], #4 strlt r3, [r0], #4 ldmgeia r1!, {r3, r12} stmgeia r0!, {r3, r12} subge r2, r2, #4 .Lmemcpy_fl4: /* less than 4 bytes to go */ adds r2, r2, #4 ldmeqia sp!, {r0, pc} /* done */ /* copy the crud byte at a time */ cmp r2, #2 ldrb r3, [r1], #1 strb r3, [r0], #1 ldrgeb r3, [r1], #1 strgeb r3, [r0], #1 ldrgtb r3, [r1], #1 strgtb r3, [r0], #1 ldmia sp!, {r0, pc} /* erg - unaligned destination */ .Lmemcpy_fdestul: rsb r12, r12, #4 cmp r12, #2 /* align destination with byte copies */ ldrb r3, [r1], #1 strb r3, [r0], #1 ldrgeb r3, [r1], #1 strgeb r3, [r0], #1 ldrgtb r3, [r1], #1 strgtb r3, [r0], #1 subs r2, r2, r12 blt .Lmemcpy_fl4 /* less the 4 bytes */ ands r12, r1, #3 beq .Lmemcpy_ft8 /* we have an aligned source */ /* erg - unaligned source */ /* This is where it gets nasty ... */ .Lmemcpy_fsrcul: bic r1, r1, #3 ldr lr, [r1], #4 cmp r12, #2 bgt .Lmemcpy_fsrcul3 beq .Lmemcpy_fsrcul2 cmp r2, #0x0c blt .Lmemcpy_fsrcul1loop4 sub r2, r2, #0x0c stmdb sp!, {r4, r5} .Lmemcpy_fsrcul1loop16: mov r3, lr, lsr #8 ldmia r1!, {r4, r5, r12, lr} orr r3, r3, r4, lsl #24 mov r4, r4, lsr #8 orr r4, r4, r5, lsl #24 mov r5, r5, lsr #8 orr r5, r5, r12, lsl #24 mov r12, r12, lsr #8 orr r12, r12, lr, lsl #24 stmia r0!, {r3-r5, r12} subs r2, r2, #0x10 bge .Lmemcpy_fsrcul1loop16 ldmia sp!, {r4, r5} adds r2, r2, #0x0c blt .Lmemcpy_fsrcul1l4 .Lmemcpy_fsrcul1loop4: mov r12, lr, lsr #8 ldr lr, [r1], #4 orr r12, r12, lr, lsl #24 str r12, [r0], #4 subs r2, r2, #4 bge .Lmemcpy_fsrcul1loop4 .Lmemcpy_fsrcul1l4: sub r1, r1, #3 b .Lmemcpy_fl4 .Lmemcpy_fsrcul2: cmp r2, #0x0c blt .Lmemcpy_fsrcul2loop4 sub r2, r2, #0x0c stmdb sp!, {r4, r5} .Lmemcpy_fsrcul2loop16: mov r3, lr, lsr #16 ldmia r1!, {r4, r5, r12, lr} orr r3, r3, r4, lsl #16 mov r4, r4, lsr #16 orr r4, r4, r5, lsl #16 mov r5, r5, lsr #16 orr r5, r5, r12, lsl #16 mov r12, r12, lsr #16 orr r12, r12, lr, lsl #16 stmia r0!, {r3-r5, r12} subs r2, r2, #0x10 bge .Lmemcpy_fsrcul2loop16 ldmia sp!, {r4, r5} adds r2, r2, #0x0c blt .Lmemcpy_fsrcul2l4 .Lmemcpy_fsrcul2loop4: mov r12, lr, lsr #16 ldr lr, [r1], #4 orr r12, r12, lr, lsl #16 str r12, [r0], #4 subs r2, r2, #4 bge .Lmemcpy_fsrcul2loop4 .Lmemcpy_fsrcul2l4: sub r1, r1, #2 b .Lmemcpy_fl4 .Lmemcpy_fsrcul3: cmp r2, #0x0c blt .Lmemcpy_fsrcul3loop4 sub r2, r2, #0x0c stmdb sp!, {r4, r5} .Lmemcpy_fsrcul3loop16: mov r3, lr, lsr #24 ldmia r1!, {r4, r5, r12, lr} orr r3, r3, r4, lsl #8 mov r4, r4, lsr #24 orr r4, r4, r5, lsl #8 mov r5, r5, lsr #24 orr r5, r5, r12, lsl #8 mov r12, r12, lsr #24 orr r12, r12, lr, lsl #8 stmia r0!, {r3-r5, r12} subs r2, r2, #0x10 bge .Lmemcpy_fsrcul3loop16 ldmia sp!, {r4, r5} adds r2, r2, #0x0c blt .Lmemcpy_fsrcul3l4 .Lmemcpy_fsrcul3loop4: mov r12, lr, lsr #24 ldr lr, [r1], #4 orr r12, r12, lr, lsl #8 str r12, [r0], #4 subs r2, r2, #4 bge .Lmemcpy_fsrcul3loop4 .Lmemcpy_fsrcul3l4: sub r1, r1, #1 b .Lmemcpy_fl4 .Lmemcpy_backwards: add r1, r1, r2 add r0, r0, r2 subs r2, r2, #4 blt .Lmemcpy_bl4 /* less than 4 bytes */ ands r12, r0, #3 bne .Lmemcpy_bdestul /* oh unaligned destination addr */ ands r12, r1, #3 bne .Lmemcpy_bsrcul /* oh unaligned source addr */ .Lmemcpy_bt8: /* we have aligned source and destination */ subs r2, r2, #8 blt .Lmemcpy_bl12 /* less than 12 bytes (4 from above) */ stmdb sp!, {r4, lr} subs r2, r2, #0x14 /* less than 32 bytes (12 from above) */ blt .Lmemcpy_bl32 /* blat 32 bytes at a time */ .Lmemcpy_bloop32: ldmdb r1!, {r3, r4, r12, lr} stmdb r0!, {r3, r4, r12, lr} ldmdb r1!, {r3, r4, r12, lr} stmdb r0!, {r3, r4, r12, lr} subs r2, r2, #0x20 bge .Lmemcpy_bloop32 .Lmemcpy_bl32: cmn r2, #0x10 ldmgedb r1!, {r3, r4, r12, lr} /* blat a remaining 16 bytes */ stmgedb r0!, {r3, r4, r12, lr} subge r2, r2, #0x10 adds r2, r2, #0x14 ldmgedb r1!, {r3, r12, lr} /* blat a remaining 12 bytes */ stmgedb r0!, {r3, r12, lr} subge r2, r2, #0x0c ldmia sp!, {r4, lr} .Lmemcpy_bl12: adds r2, r2, #8 blt .Lmemcpy_bl4 subs r2, r2, #4 ldrlt r3, [r1, #-4]! strlt r3, [r0, #-4]! ldmgedb r1!, {r3, r12} stmgedb r0!, {r3, r12} subge r2, r2, #4 .Lmemcpy_bl4: /* less than 4 bytes to go */ adds r2, r2, #4 moveq pc, lr /* copy the crud byte at a time */ cmp r2, #2 ldrb r3, [r1, #-1]! strb r3, [r0, #-1]! ldrgeb r3, [r1, #-1]! strgeb r3, [r0, #-1]! ldrgtb r3, [r1, #-1]! strgtb r3, [r0, #-1]! mov pc, lr /* erg - unaligned destination */ .Lmemcpy_bdestul: cmp r12, #2 /* align destination with byte copies */ ldrb r3, [r1, #-1]! strb r3, [r0, #-1]! ldrgeb r3, [r1, #-1]! strgeb r3, [r0, #-1]! ldrgtb r3, [r1, #-1]! strgtb r3, [r0, #-1]! subs r2, r2, r12 blt .Lmemcpy_bl4 /* less than 4 bytes to go */ ands r12, r1, #3 beq .Lmemcpy_bt8 /* we have an aligned source */ /* erg - unaligned source */ /* This is where it gets nasty ... */ .Lmemcpy_bsrcul: bic r1, r1, #3 ldr r3, [r1, #0] cmp r12, #2 blt .Lmemcpy_bsrcul1 beq .Lmemcpy_bsrcul2 cmp r2, #0x0c blt .Lmemcpy_bsrcul3loop4 sub r2, r2, #0x0c stmdb sp!, {r4, r5, lr} .Lmemcpy_bsrcul3loop16: mov lr, r3, lsl #8 ldmdb r1!, {r3-r5, r12} orr lr, lr, r12, lsr #24 mov r12, r12, lsl #8 orr r12, r12, r5, lsr #24 mov r5, r5, lsl #8 orr r5, r5, r4, lsr #24 mov r4, r4, lsl #8 orr r4, r4, r3, lsr #24 stmdb r0!, {r4, r5, r12, lr} subs r2, r2, #0x10 bge .Lmemcpy_bsrcul3loop16 ldmia sp!, {r4, r5, lr} adds r2, r2, #0x0c blt .Lmemcpy_bsrcul3l4 .Lmemcpy_bsrcul3loop4: mov r12, r3, lsl #8 ldr r3, [r1, #-4]! orr r12, r12, r3, lsr #24 str r12, [r0, #-4]! subs r2, r2, #4 bge .Lmemcpy_bsrcul3loop4 .Lmemcpy_bsrcul3l4: add r1, r1, #3 b .Lmemcpy_bl4 .Lmemcpy_bsrcul2: cmp r2, #0x0c blt .Lmemcpy_bsrcul2loop4 sub r2, r2, #0x0c stmdb sp!, {r4, r5, lr} .Lmemcpy_bsrcul2loop16: mov lr, r3, lsl #16 ldmdb r1!, {r3-r5, r12} orr lr, lr, r12, lsr #16 mov r12, r12, lsl #16 orr r12, r12, r5, lsr #16 mov r5, r5, lsl #16 orr r5, r5, r4, lsr #16 mov r4, r4, lsl #16 orr r4, r4, r3, lsr #16 stmdb r0!, {r4, r5, r12, lr} subs r2, r2, #0x10 bge .Lmemcpy_bsrcul2loop16 ldmia sp!, {r4, r5, lr} adds r2, r2, #0x0c blt .Lmemcpy_bsrcul2l4 .Lmemcpy_bsrcul2loop4: mov r12, r3, lsl #16 ldr r3, [r1, #-4]! orr r12, r12, r3, lsr #16 str r12, [r0, #-4]! subs r2, r2, #4 bge .Lmemcpy_bsrcul2loop4 .Lmemcpy_bsrcul2l4: add r1, r1, #2 b .Lmemcpy_bl4 .Lmemcpy_bsrcul1: cmp r2, #0x0c blt .Lmemcpy_bsrcul1loop4 sub r2, r2, #0x0c stmdb sp!, {r4, r5, lr} .Lmemcpy_bsrcul1loop32: mov lr, r3, lsl #24 ldmdb r1!, {r3-r5, r12} orr lr, lr, r12, lsr #8 mov r12, r12, lsl #24 orr r12, r12, r5, lsr #8 mov r5, r5, lsl #24 orr r5, r5, r4, lsr #8 mov r4, r4, lsl #24 orr r4, r4, r3, lsr #8 stmdb r0!, {r4, r5, r12, lr} subs r2, r2, #0x10 bge .Lmemcpy_bsrcul1loop32 ldmia sp!, {r4, r5, lr} adds r2, r2, #0x0c blt .Lmemcpy_bsrcul1l4 .Lmemcpy_bsrcul1loop4: mov r12, r3, lsl #24 ldr r3, [r1, #-4]! orr r12, r12, r3, lsr #8 str r12, [r0, #-4]! subs r2, r2, #4 bge .Lmemcpy_bsrcul1loop4 .Lmemcpy_bsrcul1l4: add r1, r1, #1 b .Lmemcpy_bl4 xfel-1.3.5/payloads/h2_h3/h2-ddr/source/memset.S000066400000000000000000000037721512120643700212050ustar00rootroot00000000000000/* * memcpy.S */ .text .global memset .type memset, %function .align 4 memset: stmfd sp!, {r0} /* remember address for return value */ and r1, r1, #0x000000ff /* we write bytes */ cmp r2, #0x00000004 /* do we have less than 4 bytes */ blt .Lmemset_lessthanfour /* first we will word align the address */ ands r3, r0, #0x00000003 /* get the bottom two bits */ beq .Lmemset_addraligned /* the address is word aligned */ rsb r3, r3, #0x00000004 sub r2, r2, r3 cmp r3, #0x00000002 strb r1, [r0], #0x0001 /* set 1 byte */ strgeb r1, [r0], #0x0001 /* set another byte */ strgtb r1, [r0], #0x0001 /* and a third */ cmp r2, #0x00000004 blt .Lmemset_lessthanfour /* now we must be word aligned */ .Lmemset_addraligned: orr r3, r1, r1, lsl #8 /* repeat the byte into a word */ orr r3, r3, r3, lsl #16 /* we know we have at least 4 bytes ... */ cmp r2, #0x00000020 /* if less than 32 then use words */ blt .Lmemset_lessthan32 /* we have at least 32 so lets use quad words */ stmfd sp!, {r4-r6} /* store registers */ mov r4, r3 /* duplicate data */ mov r5, r3 mov r6, r3 .Lmemset_loop16: stmia r0!, {r3-r6} /* store 16 bytes */ sub r2, r2, #0x00000010 /* adjust count */ cmp r2, #0x00000010 /* still got at least 16 bytes ? */ bgt .Lmemset_loop16 ldmfd sp!, {r4-r6} /* restore registers */ /* do we need to set some words as well ? */ cmp r2, #0x00000004 blt .Lmemset_lessthanfour /* have either less than 16 or less than 32 depending on route taken */ .Lmemset_lessthan32: /* we have at least 4 bytes so copy as words */ .Lmemset_loop4: str r3, [r0], #0x0004 sub r2, r2, #0x0004 cmp r2, #0x00000004 bge .Lmemset_loop4 .Lmemset_lessthanfour: cmp r2, #0x00000000 ldmeqfd sp!, {r0} moveq pc, lr /* zero length so exit */ cmp r2, #0x00000002 strb r1, [r0], #0x0001 /* set 1 byte */ strgeb r1, [r0], #0x0001 /* set another byte */ strgtb r1, [r0], #0x0001 /* and a third */ ldmfd sp!, {r0} mov pc, lr /* exit */ xfel-1.3.5/payloads/h2_h3/h2-ddr/source/start.S000066400000000000000000000034121512120643700210370ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ .global _start _start: b reset reset: ldr r0, =0x00000040 str sp, [r0, #0] str lr, [r0, #4] mrs lr, cpsr str lr, [r0, #8] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #12] mrc p15, 0, lr, c12, c0, 0 str lr, [r0, #16] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #20] bl sys_uart_init bl sys_clock_init bl sys_dram_init ldr r0, =0x00000040 ldr sp, [r0, #0] ldr lr, [r0, #4] ldr r1, [r0, #20] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #16] mcr p15, 0, r1, c12, c0, 0 ldr r1, [r0, #12] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #8] msr cpsr, r1 bx lr xfel-1.3.5/payloads/h2_h3/h2-ddr/source/sys-clock.c000066400000000000000000000047561512120643700216450ustar00rootroot00000000000000/* * sys-clock.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include #include

static inline void sdelay(int loops) { __asm__ __volatile__ ("1:\n" "subs %0, %1, #1\n" "bne 1b":"=r" (loops):"0"(loops)); } static void clock_set_pll_cpux(u32_t clk) { int p = 0; int k = 1; int m = 1; u32_t val; if(clk > 1152000000) { k = 2; } else if(clk > 768000000) { k = 3; m = 2; } /* Switch to 24MHz clock while changing cpux pll */ val = (2 << 0) | (1 << 8) | (1 << 16); write32(H3_CCU_BASE + CCU_CPUX_AXI_CFG, val); /* cpu pll rate = ((24000000 * n * k) >> p) / m */ val = (0x1 << 31); val |= ((p & 0x3) << 16); val |= ((((clk / (24000000 * k / m)) - 1) & 0x1f) << 8); val |= (((k - 1) & 0x3) << 4); val |= (((m - 1) & 0x3) << 0); write32(H3_CCU_BASE + CCU_PLL_CPUX_CTRL, val); sdelay(200); /* Switch clock source */ val = (2 << 0) | (1 << 8) | (2 << 16); write32(H3_CCU_BASE + CCU_CPUX_AXI_CFG, val); } void sys_clock_init(void) { clock_set_pll_cpux(1008000000); /* pll periph0 - 600MHZ */ write32(H3_CCU_BASE + CCU_PLL_PERIPH0_CTRL, 0x90041811); while(!(read32(H3_CCU_BASE + CCU_PLL_PERIPH0_CTRL) & (1 << 28))); /* ahb1 = pll periph0 / 3, apb1 = ahb1 / 2 */ write32(H3_CCU_BASE + CCU_AHB1_APB1_CFG, 0x00003180); /* mbus = pll periph0 / 2 */ write32(H3_CCU_BASE + CCU_MBUS_CLK, 0x81000001); } xfel-1.3.5/payloads/h2_h3/h2-ddr/source/sys-dram.c000066400000000000000000000554361512120643700214760ustar00rootroot00000000000000/* * sys-dram.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include #include

#include

#define CONFIG_DRAM_BASE (0x40000000) #define CONFIG_DRAM_CLK (624) #define CONFIG_DRAM_ZQ (3881979) #define clrbits_le32(addr, clear) \ write32(((virtual_addr_t)(addr)), read32(((virtual_addr_t)(addr))) & ~(clear)) #define setbits_le32(addr, set) \ write32(((virtual_addr_t)(addr)), read32(((virtual_addr_t)(addr))) | (set)) #define clrsetbits_le32(addr, clear, set) \ write32(((virtual_addr_t)(addr)), (read32(((virtual_addr_t)(addr))) & ~(clear)) | (set)) #define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d)) #define REPEAT_BYTE(x) ((~0ul / 0xff) * (x)) struct h3_dram_com_reg_t { u32_t cr; /* 0x00 control register */ u32_t cr_r1; /* 0x04 rank 1 control register (R40 only) */ u8_t res0[0x4]; /* 0x08 */ u32_t tmr; /* 0x0c (unused on H3) */ u32_t mcr[16][2]; /* 0x10 */ u32_t bwcr; /* 0x90 bandwidth control register */ u32_t maer; /* 0x94 master enable register */ u32_t mapr; /* 0x98 master priority register */ u32_t mcgcr; /* 0x9c */ u32_t cpu_bwcr; /* 0xa0 */ u32_t gpu_bwcr; /* 0xa4 */ u32_t ve_bwcr; /* 0xa8 */ u32_t disp_bwcr; /* 0xac */ u32_t other_bwcr; /* 0xb0 */ u32_t total_bwcr; /* 0xb4 */ u8_t res1[0x8]; /* 0xb8 */ u32_t swonr; /* 0xc0 */ u32_t swoffr; /* 0xc4 */ u8_t res2[0x8]; /* 0xc8 */ u32_t cccr; /* 0xd0 */ u8_t res3[0x54]; /* 0xd4 */ u32_t mdfs_bwlr[3]; /* 0x128 (unused on H3) */ u8_t res4[0x6cc]; /* 0x134 */ u32_t protect; /* 0x800 */ }; struct h3_dram_ctl_reg_t { u32_t pir; /* 0x00 PHY initialization register */ u32_t pwrctl; /* 0x04 */ u32_t mrctrl; /* 0x08 */ u32_t clken; /* 0x0c */ u32_t pgsr[2]; /* 0x10 PHY general status registers */ u32_t statr; /* 0x18 */ u8_t res1[0x10]; /* 0x1c */ u32_t lp3mr11; /* 0x2c */ u32_t mr[4]; /* 0x30 mode registers */ u32_t pllgcr; /* 0x40 */ u32_t ptr[5]; /* 0x44 PHY timing registers */ u32_t dramtmg[9]; /* 0x58 DRAM timing registers */ u32_t odtcfg; /* 0x7c */ u32_t pitmg[2]; /* 0x80 PHY interface timing registers */ u8_t res2[0x4]; /* 0x88 */ u32_t rfshctl0; /* 0x8c */ u32_t rfshtmg; /* 0x90 refresh timing */ u32_t rfshctl1; /* 0x94 */ u32_t pwrtmg; /* 0x98 */ u8_t res3[0x1c]; /* 0x9c */ u32_t vtfcr; /* 0xb8 (unused on H3) */ u32_t dqsgmr; /* 0xbc */ u32_t dtcr; /* 0xc0 */ u32_t dtar[4]; /* 0xc4 */ u32_t dtdr[2]; /* 0xd4 */ u32_t dtmr[2]; /* 0xdc */ u32_t dtbmr; /* 0xe4 */ u32_t catr[2]; /* 0xe8 */ u32_t dtedr[2]; /* 0xf0 */ u8_t res4[0x8]; /* 0xf8 */ u32_t pgcr[4]; /* 0x100 PHY general configuration registers */ u32_t iovcr[2]; /* 0x110 */ u32_t dqsdr; /* 0x118 */ u32_t dxccr; /* 0x11c */ u32_t odtmap; /* 0x120 */ u32_t zqctl[2]; /* 0x124 */ u8_t res6[0x14]; /* 0x12c */ u32_t zqcr; /* 0x140 ZQ control register */ u32_t zqsr; /* 0x144 ZQ status register */ u32_t zqdr[3]; /* 0x148 ZQ data registers */ u8_t res7[0x6c]; /* 0x154 */ u32_t sched; /* 0x1c0 */ u32_t perfhpr[2]; /* 0x1c4 */ u32_t perflpr[2]; /* 0x1cc */ u32_t perfwr[2]; /* 0x1d4 */ u8_t res8[0x24]; /* 0x1dc */ u32_t acmdlr; /* 0x200 AC master delay line register */ u32_t aclcdlr; /* 0x204 AC local calibrated delay line register */ u32_t aciocr; /* 0x208 AC I/O configuration register */ u8_t res9[0x4]; /* 0x20c */ u32_t acbdlr[31]; /* 0x210 AC bit delay line registers */ u8_t res10[0x74]; /* 0x28c */ struct { /* 0x300 DATX8 modules*/ u32_t mdlr; /* 0x00 master delay line register */ u32_t lcdlr[3]; /* 0x04 local calibrated delay line registers */ u32_t bdlr[11]; /* 0x10 bit delay line registers */ u32_t sdlr; /* 0x3c output enable bit delay registers */ u32_t gtr; /* 0x40 general timing register */ u32_t gcr; /* 0x44 general configuration register */ u32_t gsr[3]; /* 0x48 general status registers */ u8_t res0[0x2c];/* 0x54 */ } dx[4]; u8_t res11[0x388]; /* 0x500 */ u32_t upd2; /* 0x888 */ }; struct dram_para_t { u16_t page_size; u8_t bus_full_width; u8_t dual_rank; u8_t row_bits; u8_t bank_bits; u8_t dx_read_delays[4][11]; u8_t dx_write_delays[4][11]; u8_t ac_delays[31]; u8_t res[3]; }; static inline void sdelay(int loops) { __asm__ __volatile__ ("1:\n" "subs %0, %1, #1\n" "bne 1b":"=r" (loops):"0"(loops)); } static inline int gfls(int x) { int r = 32; if(!x) return 0; if(!(x & 0xffff0000u)) { x <<= 16; r -= 16; } if(!(x & 0xff000000u)) { x <<= 8; r -= 8; } if(!(x & 0xf0000000u)) { x <<= 4; r -= 4; } if(!(x & 0xc0000000u)) { x <<= 2; r -= 2; } if(!(x & 0x80000000u)) { x <<= 1; r -= 1; } return r; } static inline int ns_to_t(int ns) { unsigned int freq = CONFIG_DRAM_CLK / 2; return DIV_ROUND_UP(freq * ns, 1000); } static u32_t bin_to_mgray(int val) { u8_t table[32]; table[0] = 0x00; table[1] = 0x01; table[2] = 0x02; table[3] = 0x03; table[4] = 0x06; table[5] = 0x07; table[6] = 0x04; table[7] = 0x05; table[8] = 0x0c; table[9] = 0x0d; table[10] = 0x0e; table[11] = 0x0f; table[12] = 0x0a; table[13] = 0x0b; table[14] = 0x08; table[15] = 0x09; table[16] = 0x18; table[17] = 0x19; table[18] = 0x1a; table[19] = 0x1b; table[20] = 0x1e; table[21] = 0x1f; table[22] = 0x1c; table[23] = 0x1d; table[24] = 0x14; table[25] = 0x15; table[26] = 0x16; table[27] = 0x17; table[28] = 0x12; table[29] = 0x13; table[30] = 0x10; table[31] = 0x11; return table[clamp(val, 0, 31)]; } static int mgray_to_bin(u32_t val) { u8_t table[32]; table[0] = 0x00; table[1] = 0x01; table[2] = 0x02; table[3] = 0x03; table[4] = 0x06; table[5] = 0x07; table[6] = 0x04; table[7] = 0x05; table[8] = 0x0e; table[9] = 0x0f; table[10] = 0x0c; table[11] = 0x0d; table[12] = 0x08; table[13] = 0x09; table[14] = 0x0a; table[15] = 0x0b; table[16] = 0x1e; table[17] = 0x1f; table[18] = 0x1c; table[19] = 0x1d; table[20] = 0x18; table[21] = 0x19; table[22] = 0x1a; table[23] = 0x1b; table[24] = 0x10; table[25] = 0x11; table[26] = 0x12; table[27] = 0x13; table[28] = 0x16; table[29] = 0x17; table[30] = 0x14; table[31] = 0x15; return table[val & 0x1f]; } static void clock_set_pll_ddr(u32_t clk) { int n = 32; int k = 1; int m = 2; u32_t val; clrsetbits_le32(H3_CCU_BASE + CCU_PLL_DDR_TUN, (0x7 << 24) | (0x7f << 16), ((2 & 0x7) << 24) | ((16 & 0x7f) << 16)); /* ddr pll rate = 24000000 * n * k / m */ if(clk > 24000000 * k * n / m) { m = 1; if(clk > 24000000 * k * n / m) { k = 2; } } val = (0x1 << 31); val |= (0x0 << 24); val |= (0x1 << 20); val |= ((((clk / (24000000 * k / m)) - 1) & 0x1f) << 8); val |= (((k - 1) & 0x3) << 4); val |= (((m - 1) & 0x3) << 0); write32(H3_CCU_BASE + CCU_PLL_DDR_CTRL, val); sdelay(5500); } static void mctl_await_completion(u32_t * reg, u32_t mask, u32_t val) { int timeout = 0; while((read32((virtual_addr_t)reg) & mask) != val) { if(timeout++ > 10000) break; } } static int mctl_mem_matches(u32_t offset) { write32(CONFIG_DRAM_BASE, 0); write32(CONFIG_DRAM_BASE + offset, 0xaa55aa55); __asm__ __volatile__ ("dsb" : : : "memory"); return (read32(CONFIG_DRAM_BASE) == read32(CONFIG_DRAM_BASE + offset)) ? 1 : 0; } static void mctl_phy_init(u32_t val) { struct h3_dram_ctl_reg_t * ctl = (struct h3_dram_ctl_reg_t *)H3_DRAM_CTL0_BASE; write32((virtual_addr_t)&ctl->pir, val | PIR_INIT); mctl_await_completion(&ctl->pgsr[0], PGSR_INIT_DONE, 0x1); } static void mctl_set_bit_delays(struct dram_para_t * para) { struct h3_dram_ctl_reg_t * ctl = (struct h3_dram_ctl_reg_t *)H3_DRAM_CTL0_BASE; int i, j; u32_t val; u32_t read = 0x00007979, write = 0x6aaa0000; for(i = 0; i < 4; i++) { val = DATX_IOCR_WRITE_DELAY((write >> (i * 4)) & 0xf) | DATX_IOCR_READ_DELAY(((read >> (i * 4)) & 0xf) * 2); for(j = DATX_IOCR_DQ(0); j <= DATX_IOCR_DM; j++) write32((virtual_addr_t) &ctl->dx[i].bdlr[j], val); } clrbits_le32(&ctl->pgcr[0], 1 << 26); for(i = 0; i < 4; i++) { val = DATX_IOCR_WRITE_DELAY((write >> (16 + i * 4)) & 0xf) | DATX_IOCR_READ_DELAY((read >> (16 + i * 4)) & 0xf); write32((virtual_addr_t) &ctl->dx[i].bdlr[DATX_IOCR_DQS], val); write32((virtual_addr_t) &ctl->dx[i].bdlr[DATX_IOCR_DQSN], val); } setbits_le32(&ctl->pgcr[0], 1 << 26); sdelay(1); } enum { MBUS_PORT_CPU = 0, MBUS_PORT_GPU = 1, MBUS_PORT_UNUSED = 2, MBUS_PORT_DMA = 3, MBUS_PORT_VE = 4, MBUS_PORT_CSI = 5, MBUS_PORT_NAND = 6, MBUS_PORT_SS = 7, MBUS_PORT_TS = 8, MBUS_PORT_DI = 9, MBUS_PORT_DE = 10, MBUS_PORT_DE_CFD = 11, MBUS_PORT_UNKNOWN1 = 12, MBUS_PORT_UNKNOWN2 = 13, MBUS_PORT_UNKNOWN3 = 14, }; enum { MBUS_QOS_LOWEST = 0, MBUS_QOS_LOW = 1, MBUS_QOS_HIGH = 2, MBUS_QOS_HIGHEST = 3, }; static inline void mbus_configure_port(u8_t port, int bwlimit, int priority, u8_t qos, u8_t waittime, u8_t acs, u16_t bwl0, u16_t bwl1, u16_t bwl2) { struct h3_dram_com_reg_t * com = (struct h3_dram_com_reg_t *)H3_DRAM_COM_BASE; u32_t cfg0 = ( (bwlimit ? (1 << 0) : 0) | (priority ? (1 << 1) : 0) | ((qos & 0x3) << 2) | ((waittime & 0xf) << 4) | ((acs & 0xff) << 8) | (bwl0 << 16) ); u32_t cfg1 = ((u32_t)bwl2 << 16) | (bwl1 & 0xffff); write32((virtual_addr_t)&com->mcr[port][0], cfg0); write32((virtual_addr_t)&com->mcr[port][1], cfg1); } #define MBUS_CONF(port, bwlimit, qos, acs, bwl0, bwl1, bwl2) \ mbus_configure_port(MBUS_PORT_ ## port, bwlimit, 0, \ MBUS_QOS_ ## qos, 0, acs, bwl0, bwl1, bwl2) static void mctl_set_master_priority(void) { struct h3_dram_com_reg_t * com = (struct h3_dram_com_reg_t *)H3_DRAM_COM_BASE; write32((virtual_addr_t)&com->bwcr, (1 << 16) | (400 << 0)); write32((virtual_addr_t)&com->mapr, 0x00000001); write32((virtual_addr_t)&com->mcr[0][0] , 0x0200000d); write32((virtual_addr_t)&com->mcr[0][1] , 0x00800100); write32((virtual_addr_t)&com->mcr[1][0] , 0x06000009); write32((virtual_addr_t)&com->mcr[1][1] , 0x01000400); write32((virtual_addr_t)&com->mcr[2][0] , 0x0200000d); write32((virtual_addr_t)&com->mcr[2][1] , 0x00600100); write32((virtual_addr_t)&com->mcr[3][0] , 0x0100000d); write32((virtual_addr_t)&com->mcr[3][1] , 0x00200080); write32((virtual_addr_t)&com->mcr[4][0] , 0x07000009); write32((virtual_addr_t)&com->mcr[4][1] , 0x01000640); write32((virtual_addr_t)&com->mcr[5][0] , 0x0100000d); write32((virtual_addr_t)&com->mcr[5][1] , 0x00200080); write32((virtual_addr_t)&com->mcr[6][0] , 0x01000009); write32((virtual_addr_t)&com->mcr[6][1] , 0x00400080); write32((virtual_addr_t)&com->mcr[7][0] , 0x0100000d); write32((virtual_addr_t)&com->mcr[7][1] , 0x00400080); write32((virtual_addr_t)&com->mcr[8][0] , 0x0100000d); write32((virtual_addr_t)&com->mcr[8][1] , 0x00400080); write32((virtual_addr_t)&com->mcr[9][0] , 0x04000009); write32((virtual_addr_t)&com->mcr[9][1] , 0x00400100); write32((virtual_addr_t)&com->mcr[10][0], 0x2000030d); write32((virtual_addr_t)&com->mcr[10][1], 0x04001800); write32((virtual_addr_t)&com->mcr[11][0], 0x04000009); write32((virtual_addr_t)&com->mcr[11][1], 0x00400120); } static void mctl_set_timing_params(struct dram_para_t * para) { struct h3_dram_ctl_reg_t * ctl = (struct h3_dram_ctl_reg_t *)H3_DRAM_CTL0_BASE; u8_t tccd = 2; u8_t tfaw = ns_to_t(50); u8_t trrd = max(ns_to_t(10), 4); u8_t trcd = ns_to_t(15); u8_t trc = ns_to_t(53); u8_t txp = max(ns_to_t(8), 3); u8_t twtr = max(ns_to_t(8), 4); u8_t trtp = max(ns_to_t(8), 4); u8_t twr = max(ns_to_t(15), 3); u8_t trp = ns_to_t(15); u8_t tras = ns_to_t(38); u16_t trefi = ns_to_t(7800) / 32; u16_t trfc = ns_to_t(350); u8_t tmrw = 0; u8_t tmrd = 4; u8_t tmod = 12; u8_t tcke = 3; u8_t tcksrx = 5; u8_t tcksre = 5; u8_t tckesr = 4; u8_t trasmax = 24; u8_t tcl = 6; /* CL 12 */ u8_t tcwl = 4; /* CWL 8 */ u8_t t_rdata_en = 4; u8_t wr_latency = 2; u32_t tdinit0 = (500 * CONFIG_DRAM_CLK) + 1; /* 500us */ u32_t tdinit1 = (360 * CONFIG_DRAM_CLK) / 1000 + 1; /* 360ns */ u32_t tdinit2 = (200 * CONFIG_DRAM_CLK) + 1; /* 200us */ u32_t tdinit3 = (1 * CONFIG_DRAM_CLK) + 1; /* 1us */ u8_t twtp = tcwl + 2 + twr; /* WL + BL / 2 + tWR */ u8_t twr2rd = tcwl + 2 + twtr; /* WL + BL / 2 + tWTR */ u8_t trd2wr = tcl + 2 + 1 - tcwl; /* RL + BL / 2 + 2 - WL */ write32((virtual_addr_t)&ctl->mr[0], 0x1c70); /* CL=11, WR=12 */ write32((virtual_addr_t)&ctl->mr[1], 0x40); write32((virtual_addr_t)&ctl->mr[2], 0x18); /* CWL=8 */ write32((virtual_addr_t)&ctl->mr[3], 0x0); /* Set DRAM timing */ write32((virtual_addr_t)&ctl->dramtmg[0], DRAMTMG0_TWTP(twtp) | DRAMTMG0_TFAW(tfaw) | DRAMTMG0_TRAS_MAX(trasmax) | DRAMTMG0_TRAS(tras)); write32((virtual_addr_t)&ctl->dramtmg[1], DRAMTMG1_TXP(txp) | DRAMTMG1_TRTP(trtp) | DRAMTMG1_TRC(trc)); write32((virtual_addr_t)&ctl->dramtmg[2], DRAMTMG2_TCWL(tcwl) | DRAMTMG2_TCL(tcl) | DRAMTMG2_TRD2WR(trd2wr) | DRAMTMG2_TWR2RD(twr2rd)); write32((virtual_addr_t)&ctl->dramtmg[3], DRAMTMG3_TMRW(tmrw) | DRAMTMG3_TMRD(tmrd) | DRAMTMG3_TMOD(tmod)); write32((virtual_addr_t)&ctl->dramtmg[4], DRAMTMG4_TRCD(trcd) | DRAMTMG4_TCCD(tccd) | DRAMTMG4_TRRD(trrd) | DRAMTMG4_TRP(trp)); write32((virtual_addr_t)&ctl->dramtmg[5], DRAMTMG5_TCKSRX(tcksrx) | DRAMTMG5_TCKSRE(tcksre) | DRAMTMG5_TCKESR(tckesr) | DRAMTMG5_TCKE(tcke)); /* Set two rank timing */ clrsetbits_le32(&ctl->dramtmg[8], (0xff << 8) | (0xff << 0), (0x66 << 8) | (0x10 << 0)); /* Set PHY interface timing, write latency and read latency configure */ write32((virtual_addr_t)&ctl->pitmg[0], (0x2 << 24) | (t_rdata_en << 16) | (0x1 << 8) | (wr_latency << 0)); /* Set PHY timing, PTR0-2 use default */ write32((virtual_addr_t)&ctl->ptr[3], PTR3_TDINIT0(tdinit0) | PTR3_TDINIT1(tdinit1)); write32((virtual_addr_t)&ctl->ptr[4], PTR4_TDINIT2(tdinit2) | PTR4_TDINIT3(tdinit3)); /* Set refresh timing */ write32((virtual_addr_t)&ctl->rfshtmg, RFSHTMG_TREFI(trefi) | RFSHTMG_TRFC(trfc)); } static void mctl_zq_calibration(struct dram_para_t * para) { struct h3_dram_ctl_reg_t * ctl = (struct h3_dram_ctl_reg_t *)H3_DRAM_CTL0_BASE; u16_t zq_val[6]; u32_t val; u8_t zq; int i; if((read32((virtual_addr_t)(0x01c00000 + 0x24)) & 0xff) == 0 && (read32((virtual_addr_t)(0x01c00000 + 0xf0)) & 0x1) == 0) { clrsetbits_le32(&ctl->zqcr, 0xffff, CONFIG_DRAM_ZQ & 0xffff); write32((virtual_addr_t)&ctl->pir, PIR_CLRSR); mctl_phy_init(PIR_ZCAL); val = read32((virtual_addr_t)&ctl->zqdr[0]); val &= (0x1f << 16) | (0x1f << 0); val |= val << 8; write32((virtual_addr_t)&ctl->zqdr[0], val); val = read32((virtual_addr_t)&ctl->zqdr[1]); val &= (0x1f << 16) | (0x1f << 0); val |= val << 8; write32((virtual_addr_t)&ctl->zqdr[1], val); write32((virtual_addr_t)&ctl->zqdr[2], val); } else { write32((virtual_addr_t)&ctl->zqdr[2], 0x0a0a0a0a); for(i = 0; i < 6; i++) { zq = (CONFIG_DRAM_ZQ >> (i * 4)) & 0xf; write32((virtual_addr_t)&ctl->zqcr, (zq << 20) | (zq << 16) | (zq << 12) | (zq << 8) | (zq << 4) | (zq << 0)); write32((virtual_addr_t)&ctl->pir, PIR_CLRSR); mctl_phy_init(PIR_ZCAL); zq_val[i] = read32((virtual_addr_t)&ctl->zqdr[0]) & 0xff; write32((virtual_addr_t)&ctl->zqdr[2], REPEAT_BYTE(zq_val[i])); write32((virtual_addr_t)&ctl->pir, PIR_CLRSR); mctl_phy_init(PIR_ZCAL); val = read32((virtual_addr_t)&ctl->zqdr[0]) >> 24; zq_val[i] |= bin_to_mgray(mgray_to_bin(val) - 1) << 8; } write32((virtual_addr_t)&ctl->zqdr[0], (zq_val[1] << 16) | zq_val[0]); write32((virtual_addr_t)&ctl->zqdr[1], (zq_val[3] << 16) | zq_val[2]); write32((virtual_addr_t)&ctl->zqdr[2], (zq_val[5] << 16) | zq_val[4]); } } static void mctl_set_cr(struct dram_para_t * para) { struct h3_dram_com_reg_t * com = (struct h3_dram_com_reg_t *)H3_DRAM_COM_BASE; write32((virtual_addr_t)&com->cr, MCTL_CR_BL8 | MCTL_CR_INTERLEAVED | MCTL_CR_DDR3 | MCTL_CR_2T | (para->bank_bits == 3 ? MCTL_CR_EIGHT_BANKS : MCTL_CR_FOUR_BANKS) | MCTL_CR_BUS_FULL_WIDTH(para->bus_full_width) | (para->dual_rank ? MCTL_CR_DUAL_RANK : MCTL_CR_SINGLE_RANK) | MCTL_CR_PAGE_SIZE(para->page_size) | MCTL_CR_ROW_BITS(para->row_bits)); } static void mctl_sys_init(struct dram_para_t * para) { struct h3_dram_ctl_reg_t * ctl = (struct h3_dram_ctl_reg_t *)H3_DRAM_CTL0_BASE; u32_t val; val = read32(H3_CCU_BASE + CCU_MBUS_CLK); val &= ~(0x1 << 31); write32(H3_CCU_BASE + CCU_MBUS_CLK, val); val = read32(H3_CCU_BASE + CCU_MBUS_RST); val &= ~(0x1 << 31); write32(H3_CCU_BASE + CCU_MBUS_RST, val); val = read32(H3_CCU_BASE + CCU_BUS_CLK_GATE0); val &= ~(0x1 << 14); write32(H3_CCU_BASE + CCU_BUS_CLK_GATE0, val); val = read32(H3_CCU_BASE + CCU_BUS_SOFT_RST0); val &= ~(0x1 << 14); write32(H3_CCU_BASE + CCU_BUS_SOFT_RST0, val); val = read32(H3_CCU_BASE + CCU_PLL_DDR_CTRL); val &= ~(0x1 << 31); write32(H3_CCU_BASE + CCU_PLL_DDR_CTRL, val); sdelay(10); val = read32(H3_CCU_BASE + CCU_DRAM_CFG); val &= ~(0x1 << 31); write32(H3_CCU_BASE + CCU_DRAM_CFG, val); sdelay(1000); clock_set_pll_ddr(CONFIG_DRAM_CLK * 2 * 1000000); val = read32(H3_CCU_BASE + CCU_DRAM_CFG); val &= ~(0xf << 0); val &= ~(0x3 << 20); val |= ((1 - 1) << 0); val |= (0x0 << 20); val |= (0x1 << 16); write32(H3_CCU_BASE + CCU_DRAM_CFG, val); mctl_await_completion((u32_t *)(H3_CCU_BASE + CCU_DRAM_CFG), 0x1 << 16, 0); val = read32(H3_CCU_BASE + CCU_BUS_SOFT_RST0); val |= (0x1 << 14); write32(H3_CCU_BASE + CCU_BUS_SOFT_RST0, val); val = read32(H3_CCU_BASE + CCU_BUS_CLK_GATE0); val |= (0x1 << 14); write32(H3_CCU_BASE + CCU_BUS_CLK_GATE0, val); val = read32(H3_CCU_BASE + CCU_MBUS_RST); val |= (0x1 << 31); write32(H3_CCU_BASE + CCU_MBUS_RST, val); val = read32(H3_CCU_BASE + CCU_MBUS_CLK); val |= (0x1 << 31); write32(H3_CCU_BASE + CCU_MBUS_CLK, val); val = read32(H3_CCU_BASE + CCU_DRAM_CFG); val |= (0x1 << 31); write32(H3_CCU_BASE + CCU_DRAM_CFG, val); sdelay(10); write32((virtual_addr_t)&ctl->clken, 0xc00e); sdelay(500); } static int mctl_channel_init(struct dram_para_t * para) { struct h3_dram_com_reg_t * com = (struct h3_dram_com_reg_t *)H3_DRAM_COM_BASE; struct h3_dram_ctl_reg_t * ctl = (struct h3_dram_ctl_reg_t *)H3_DRAM_CTL0_BASE; int i; mctl_set_cr(para); mctl_set_timing_params(para); mctl_set_master_priority(); clrbits_le32(&ctl->pgcr[0], (1 << 30) | 0x3f); clrsetbits_le32(&ctl->pgcr[1], 1 << 24, 1 << 26); write32((virtual_addr_t)&com->protect, 0x94be6fa3); sdelay(100); clrsetbits_le32(&ctl->upd2, 0xfff << 16, 0x50 << 16); write32((virtual_addr_t)&com->protect, 0x0); sdelay(100); for(i = 0; i < 4; i++) clrsetbits_le32(&ctl->dx[i].gcr, (0x3 << 4) | (0x1 << 1) | (0x3 << 2) | (0x3 << 12) | (0x3 << 14), (0x0 << 4)); clrsetbits_le32(&ctl->aciocr, 0, 0x1 << 1); setbits_le32(&ctl->pgcr[2], 0x3 << 6); clrbits_le32(&ctl->pgcr[0], (0x3 << 14) | (0x3 << 12)); clrsetbits_le32(&ctl->pgcr[2], (0x3 << 10) | (0x3 << 8), (0x1 << 10) | (0x2 << 8)); if(!para->bus_full_width) { write32((virtual_addr_t)&ctl->dx[2].gcr, 0x0); write32((virtual_addr_t)&ctl->dx[3].gcr, 0x0); } clrsetbits_le32(&ctl->dtcr, 0xf << 24, (para->dual_rank ? 0x3 : 0x1) << 24); mctl_set_bit_delays(para); sdelay(50); mctl_zq_calibration(para); mctl_phy_init(PIR_PLLINIT | PIR_DCAL | PIR_PHYRST | PIR_DRAMRST | PIR_DRAMINIT | PIR_QSGATE); if(read32((virtual_addr_t)&ctl->pgsr[0]) & (0xfe << 20)) { if(((read32((virtual_addr_t)&ctl->dx[0].gsr[0]) >> 24) & 0x2) || ((read32((virtual_addr_t)&ctl->dx[1].gsr[0]) >> 24) & 0x2)) { clrsetbits_le32(&ctl->dtcr, 0xf << 24, 0x1 << 24); para->dual_rank = 0; } if(((read32((virtual_addr_t)&ctl->dx[2].gsr[0]) >> 24) & 0x1) || ((read32((virtual_addr_t)&ctl->dx[3].gsr[0]) >> 24) & 0x1)) { write32((virtual_addr_t)&ctl->dx[2].gcr, 0x0); write32((virtual_addr_t)&ctl->dx[3].gcr, 0x0); para->bus_full_width = 0; } mctl_set_cr(para); sdelay(20); mctl_phy_init(PIR_QSGATE); if(read32((virtual_addr_t)&ctl->pgsr[0]) & (0xfe << 20)) return 1; } mctl_await_completion(&ctl->statr, 0x1, 0x1); setbits_le32(&ctl->rfshctl0, 0x1 << 31); sdelay(10); clrbits_le32(&ctl->rfshctl0, 0x1 << 31); sdelay(10); write32((virtual_addr_t)&ctl->pgcr[3], 0x00aa0060); setbits_le32(&ctl->zqcr, ZQCR_PWRDOWN); write32((virtual_addr_t)&com->maer, 0xffffffff); return 0; } static void mctl_auto_detect_dram_size(struct dram_para_t * para) { para->page_size = 512; para->row_bits = 16; para->bank_bits = 3; mctl_set_cr(para); for(para->bank_bits = 2; para->bank_bits < 3; para->bank_bits++) { if(mctl_mem_matches((1 << para->bank_bits) * para->page_size)) break; } para->page_size = 8192; mctl_set_cr(para); for(para->page_size = 512; para->page_size < 8192; para->page_size *= 2) { if(mctl_mem_matches(para->page_size)) break; } } void sys_dram_init(void) { struct h3_dram_com_reg_t * com = (struct h3_dram_com_reg_t *)H3_DRAM_COM_BASE; struct h3_dram_ctl_reg_t * ctl = (struct h3_dram_ctl_reg_t *)H3_DRAM_CTL0_BASE; struct dram_para_t para = { .dual_rank = 0, .bus_full_width = 1, .row_bits = 15, .bank_bits = 3, .page_size = 4096, .dx_read_delays = { { 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0 }, { 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0 }, { 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0 }, { 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0 } }, .dx_write_delays = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6 } }, .ac_delays = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, }; u32_t * dsz = (void *)0x00000020; mctl_sys_init(¶); if(mctl_channel_init(¶)) { dsz[0] = 0; return; } if(para.dual_rank) write32((virtual_addr_t)&ctl->odtmap, 0x00000303); else write32((virtual_addr_t)&ctl->odtmap, 0x00000201); sdelay(1); write32((virtual_addr_t)&ctl->odtcfg, 0x0c000400); setbits_le32(&com->cccr, 1 << 31); sdelay(10); mctl_auto_detect_dram_size(¶); mctl_set_cr(¶); dsz[0] = (1UL << (para.row_bits + para.bank_bits)) * para.page_size * (para.dual_rank ? 2 : 1); } xfel-1.3.5/payloads/h2_h3/h2-ddr/source/sys-uart.c000066400000000000000000000047011512120643700215130ustar00rootroot00000000000000/* * sys-uart.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include void sys_uart_init(void) { virtual_addr_t addr; u32_t val; /* Config GPIOA4 and GPIOA5 to txd0 and rxd0 */ addr = 0x01c20800 + 0x00; val = read32(addr); val &= ~(0xf << ((4 & 0x7) << 2)); val |= ((0x2 & 0x7) << ((4 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((5 & 0x7) << 2)); val |= ((0x2 & 0x7) << ((5 & 0x7) << 2)); write32(addr, val); /* Open the clock gate for uart0 */ addr = 0x01c2006c; val = read32(addr); val |= 1 << 16; write32(addr, val); /* Deassert uart0 reset */ addr = 0x01c202d8; val = read32(addr); val |= 1 << 16; write32(addr, val); /* Config uart0 to 115200-8-1-0 */ addr = 0x01c28000; write32(addr + 0x04, 0x0); write32(addr + 0x08, 0xf7); write32(addr + 0x10, 0x0); val = read32(addr + 0x0c); val |= (1 << 7); write32(addr + 0x0c, val); write32(addr + 0x00, 0xd & 0xff); write32(addr + 0x04, (0xd >> 8) & 0xff); val = read32(addr + 0x0c); val &= ~(1 << 7); write32(addr + 0x0c, val); val = read32(addr + 0x0c); val &= ~0x1f; val |= (0x3 << 0) | (0 << 2) | (0x0 << 3); write32(addr + 0x0c, val); } void sys_uart_putc(char c) { virtual_addr_t addr = 0x01c28000; while((read32(addr + 0x7c) & (0x1 << 1)) == 0); write32(addr + 0x00, c); } xfel-1.3.5/payloads/h2_h3/h3-ddr/000077500000000000000000000000001512120643700162575ustar00rootroot00000000000000xfel-1.3.5/payloads/h2_h3/h3-ddr/.gitignore000066400000000000000000000000731512120643700202470ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/h2_h3/h3-ddr/Makefile000066400000000000000000000056311512120643700177240ustar00rootroot00000000000000# # Top makefile # CROSS ?= arm-linux-gnueabihf- NAME := h3-ddr # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 CFLAGS := -g -ggdb -Wall -O3 CXXFLAGS := -g -ggdb -Wall -O3 LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -march=armv7-a -mtune=cortex-a7 -mfpu=vfpv4 -mfloat-abi=hard -marm -mno-thumb-interwork -mno-unaligned-access -fno-stack-protector LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/h2_h3/h3-ddr/include/000077500000000000000000000000001512120643700177025ustar00rootroot00000000000000xfel-1.3.5/payloads/h2_h3/h3-ddr/include/byteorder.h000066400000000000000000000043611512120643700220560ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/h2_h3/h3-ddr/include/endian.h000066400000000000000000000007321512120643700213130ustar00rootroot00000000000000#ifndef __ARM32_ENDIAN_H__ #define __ARM32_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __ARM32_ENDIAN_H__ */ xfel-1.3.5/payloads/h2_h3/h3-ddr/include/h3/000077500000000000000000000000001512120643700202145ustar00rootroot00000000000000xfel-1.3.5/payloads/h2_h3/h3-ddr/include/h3/reg-ccu.h000066400000000000000000000051251512120643700217150ustar00rootroot00000000000000#ifndef __H3_REG_CCU_H__ #define __H3_REG_CCU_H__ #define H3_CCU_BASE (0x01c20000) #define CCU_PLL_CPUX_CTRL (0x000) #define CCU_PLL_AUDIO_CTRL (0x008) #define CCU_PLL_VIDEO_CTRL (0x010) #define CCU_PLL_VE_CTRL (0x018) #define CCU_PLL_DDR_CTRL (0x020) #define CCU_PLL_PERIPH0_CTRL (0x028) #define CCU_PLL_GPU_CTRL (0x038) #define CCU_PLL_PERIPH1_CTRL (0x044) #define CCU_PLL_DE_CTRL (0x048) #define CCU_CPUX_AXI_CFG (0x050) #define CCU_AHB1_APB1_CFG (0x054) #define CCU_APB1_CFG (0x058) #define CCU_AHB2_CFG (0x05c) #define CCU_BUS_CLK_GATE0 (0x060) #define CCU_BUS_CLK_GATE1 (0x064) #define CCU_BUS_CLK_GATE2 (0x068) #define CCU_BUS_CLK_GATE3 (0x06c) #define CCU_BUS_CLK_GATE4 (0x070) #define CCU_THS_CLK (0x074) #define CCU_NAND_CLK (0x080) #define CCU_SDMMC0_CLK (0x088) #define CCU_SDMMC1_CLK (0x08c) #define CCU_SDMMC2_CLK (0x090) #define CCU_CE_CLK (0x09c) #define CCU_SPI0_CLK (0x0a0) #define CCU_SPI1_CLK (0x0a4) #define CCU_I2S0_CLK (0x0b0) #define CCU_I2S1_CLK (0x0b4) #define CCU_I2S2_CLK (0x0b8) #define CCU_OWA_CLK (0x0c0) #define CCU_USBPHY_CFG (0x0cc) #define CCU_DRAM_CFG (0x0f4) #define CCU_MBUS_RST (0x0fc) #define CCU_DRAM_CLK_GATE (0x100) #define CCU_TCON0_CLK (0x118) #define CCU_TVE_CLK (0x120) #define CCU_DEINTERLACE_CLK (0x124) #define CCU_CSI_MISC_CLK (0x130) #define CCU_CSI_CLK (0x134) #define CCU_VE_CLK (0x13c) #define CCU_AC_DIG_CLK (0x140) #define CCU_AVS_CLK (0x144) #define CCU_HDMI_CLK (0x150) #define CCU_HDMI_SLOW_CLK (0x154) #define CCU_MBUS_CLK (0x15c) #define CCU_GPU_CLK (0x1a0) #define CCU_PLL_STABLE_TIME0 (0x200) #define CCU_PLL_STABLE_TIME1 (0x204) #define CCU_PLL_CPUX_BIAS (0x220) #define CCU_PLL_AUDIO_BIAS (0x224) #define CCU_PLL_VIDEO_BIAS (0x228) #define CCU_PLL_VE_BIAS (0x22c) #define CCU_PLL_DDR_BIAS (0x230) #define CCU_PLL_PERIPH0_BIAS (0x234) #define CCU_PLL_GPU_BIAS (0x23c) #define CCU_PLL_PERIPH1_BIAS (0x244) #define CCU_PLL_DE_BIAS (0x248) #define CCU_PLL_CPUX_TUN (0x250) #define CCU_PLL_DDR_TUN (0x260) #define CCU_PLL_CPUX_PAT (0x280) #define CCU_PLL_AUDIO_PAT (0x284) #define CCU_PLL_VIDEO_PAT (0x288) #define CCU_PLL_VE_PAT (0x28c) #define CCU_PLL_DDR_PAT (0x290) #define CCU_PLL_GPU_PAT (0x29c) #define CCU_PLL_PERIPH1_PAT (0x2a4) #define CCU_PLL_DE_PAT (0x2a8) #define CCU_BUS_SOFT_RST0 (0x2c0) #define CCU_BUS_SOFT_RST1 (0x2c4) #define CCU_BUS_SOFT_RST2 (0x2c8) #define CCU_BUS_SOFT_RST3 (0x2d0) #define CCU_BUS_SOFT_RST4 (0x2d8) #define CCU_SEC_SWITCH (0x2f0) #define CCU_PS_CTRL (0x300) #define CCU_PS_CNT (0x304) #endif /* __H3_REG_CCU_H__ */ xfel-1.3.5/payloads/h2_h3/h3-ddr/include/h3/reg-dram.h000066400000000000000000000060101512120643700220600ustar00rootroot00000000000000#ifndef __H3_REG_DRAM_H__ #define __H3_REG_DRAM_H__ #define H3_DRAM_COM_BASE (0x01c62000) #define H3_DRAM_CTL0_BASE (0x01c63000) #define H3_DRAM_CTL1_BASE (0x01c64000) #define H3_DRAM_PHY0_BASE (0x01c65000) #define H3_DRAM_PHY1_BASE (0x01c66000) #define MCTL_CR_BL8 (0x4 << 20) #define MCTL_CR_1T (0x1 << 19) #define MCTL_CR_2T (0x0 << 19) #define MCTL_CR_LPDDR3 (0x7 << 16) #define MCTL_CR_LPDDR2 (0x6 << 16) #define MCTL_CR_DDR3 (0x3 << 16) #define MCTL_CR_DDR2 (0x2 << 16) #define MCTL_CR_SEQUENTIAL (0x1 << 15) #define MCTL_CR_INTERLEAVED (0x0 << 15) #define MCTL_CR_FULL_WIDTH (0x1 << 12) #define MCTL_CR_HALF_WIDTH (0x0 << 12) #define MCTL_CR_BUS_FULL_WIDTH(x) ((x) << 12) #define MCTL_CR_PAGE_SIZE(x) ((gfls(x) - 4) << 8) #define MCTL_CR_ROW_BITS(x) (((x) - 1) << 4) #define MCTL_CR_EIGHT_BANKS (0x1 << 2) #define MCTL_CR_FOUR_BANKS (0x0 << 2) #define MCTL_CR_DUAL_RANK (0x1 << 0) #define MCTL_CR_SINGLE_RANK (0x0 << 0) #define DRAMTMG0_TWTP(x) ((x) << 24) #define DRAMTMG0_TFAW(x) ((x) << 16) #define DRAMTMG0_TRAS_MAX(x) ((x) << 8) #define DRAMTMG0_TRAS(x) ((x) << 0) #define DRAMTMG1_TXP(x) ((x) << 16) #define DRAMTMG1_TRTP(x) ((x) << 8) #define DRAMTMG1_TRC(x) ((x) << 0) #define DRAMTMG2_TCWL(x) ((x) << 24) #define DRAMTMG2_TCL(x) ((x) << 16) #define DRAMTMG2_TRD2WR(x) ((x) << 8) #define DRAMTMG2_TWR2RD(x) ((x) << 0) #define DRAMTMG3_TMRW(x) ((x) << 16) #define DRAMTMG3_TMRD(x) ((x) << 12) #define DRAMTMG3_TMOD(x) ((x) << 0) #define DRAMTMG4_TRCD(x) ((x) << 24) #define DRAMTMG4_TCCD(x) ((x) << 16) #define DRAMTMG4_TRRD(x) ((x) << 8) #define DRAMTMG4_TRP(x) ((x) << 0) #define DRAMTMG5_TCKSRX(x) ((x) << 24) #define DRAMTMG5_TCKSRE(x) ((x) << 16) #define DRAMTMG5_TCKESR(x) ((x) << 8) #define DRAMTMG5_TCKE(x) ((x) << 0) #define PTR3_TDINIT1(x) ((x) << 20) #define PTR3_TDINIT0(x) ((x) << 0) #define PTR4_TDINIT3(x) ((x) << 20) #define PTR4_TDINIT2(x) ((x) << 0) #define RFSHTMG_TREFI(x) ((x) << 16) #define RFSHTMG_TRFC(x) ((x) << 0) #define PIR_CLRSR (0x1 << 27) /* Clear status registers */ #define PIR_QSGATE (0x1 << 10) /* Read DQS gate training */ #define PIR_DRAMINIT (0x1 << 8) /* DRAM initialization */ #define PIR_DRAMRST (0x1 << 7) /* DRAM reset */ #define PIR_PHYRST (0x1 << 6) /* PHY reset */ #define PIR_DCAL (0x1 << 5) /* DDL calibration */ #define PIR_PLLINIT (0x1 << 4) /* PLL initialization */ #define PIR_ZCAL (0x1 << 1) /* ZQ calibration */ #define PIR_INIT (0x1 << 0) /* PHY initialization trigger */ #define PGSR_INIT_DONE (0x1 << 0) /* PHY init done */ #define ZQCR_PWRDOWN (0x1 << 31) /* ZQ power down */ #define DXBDLR_DQ(x) (x) /* DQ0-7 BDLR index */ #define DXBDLR_DM (8) /* DM BDLR index */ #define DXBDLR_DQS (9) /* DQS BDLR index */ #define DXBDLR_DQSN (10) /* DQSN BDLR index */ #define DXBDLR_WRITE_DELAY(x) ((x) << 8) #define DXBDLR_READ_DELAY(x) ((x) << 0) #define ACBDLR_WRITE_DELAY(x) ((x) << 8) #endif /* __H3_REG_DRAM_H__ */ xfel-1.3.5/payloads/h2_h3/h3-ddr/include/io.h000066400000000000000000000016401512120643700204630ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/h2_h3/h3-ddr/include/stdarg.h000066400000000000000000000010541512120643700213370ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/h2_h3/h3-ddr/include/stddef.h000066400000000000000000000026101512120643700213230ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/h2_h3/h3-ddr/include/stdint.h000066400000000000000000000010161512120643700213560ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/h2_h3/h3-ddr/include/string.h000066400000000000000000000004241512120643700213610ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/h2_h3/h3-ddr/include/types.h000066400000000000000000000021051512120643700212150ustar00rootroot00000000000000#ifndef __ARM32_TYPES_H__ #define __ARM32_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed int ptrdiff_t; typedef signed int intptr_t; typedef unsigned int uintptr_t; typedef unsigned int size_t; typedef signed int ssize_t; typedef signed int off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned int irq_flags_t; typedef unsigned int virtual_addr_t; typedef unsigned int virtual_size_t; typedef unsigned int physical_addr_t; typedef unsigned int physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __ARM32_TYPES_H__ */ xfel-1.3.5/payloads/h2_h3/h3-ddr/include/xboot.h000066400000000000000000000004731512120643700212120ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/h2_h3/h3-ddr/link.ld000066400000000000000000000050531512120643700175400ustar00rootroot00000000000000OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) STACK_UND_SIZE = 0x010; STACK_ABT_SIZE = 0x010; STACK_IRQ_SIZE = 0x010; STACK_FIQ_SIZE = 0x010; STACK_SRV_SIZE = 0x400; MEMORY { ram : org = 0x00008000, len = 0x00002000 /* 8 KB */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text) .obj/source/memcpy.o (.text*) .obj/source/memset.o (.text*) .obj/source/sys-uart.o (.text*) .obj/source/sys-clock.o (.text*) .obj/source/sys-dram.o (.text*) *(.text*) *(.glue*) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ARM.exidx ALIGN(8) : { PROVIDE (__exidx_start = .); *(.ARM.exidx*) PROVIDE (__exidx_end = .); } > ram .ARM.extab ALIGN(8) : { PROVIDE (__extab_start = .); *(.ARM.extab*) PROVIDE (__extab_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(8) (NOLOAD) : { PROVIDE(__stack_start = .); PROVIDE(__stack_und_start = .); . += STACK_UND_SIZE; PROVIDE(__stack_und_end = .); . = ALIGN(8); PROVIDE(__stack_abt_start = .); . += STACK_ABT_SIZE; PROVIDE(__stack_abt_end = .); . = ALIGN(8); PROVIDE(__stack_irq_start = .); . += STACK_IRQ_SIZE; PROVIDE(__stack_irq_end = .); . = ALIGN(8); PROVIDE(__stack_fiq_start = .); . += STACK_FIQ_SIZE; PROVIDE(__stack_fiq_end = .); . = ALIGN(8); PROVIDE(__stack_srv_start = .); . += STACK_SRV_SIZE; PROVIDE(__stack_srv_end = .); . = ALIGN(8); PROVIDE(__stack_end = .); } > ram .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_info 0 : { *(.debug_info) } .debug_line 0 : { *(.debug_line) } .debug_pubnames 0 : { *(.debug_pubnames) } .debug_aranges 0 : { *(.debug_aranges) } } xfel-1.3.5/payloads/h2_h3/h3-ddr/source/000077500000000000000000000000001512120643700175575ustar00rootroot00000000000000xfel-1.3.5/payloads/h2_h3/h3-ddr/source/memcpy.S000066400000000000000000000212061512120643700211760ustar00rootroot00000000000000/* * memcpy.S */ .text .global memcpy .type memcpy, %function .align 4 memcpy: /* determine copy direction */ cmp r1, r0 bcc .Lmemcpy_backwards moveq r0, #0 /* quick abort for len=0 */ moveq pc, lr stmdb sp!, {r0, lr} /* memcpy() returns dest addr */ subs r2, r2, #4 blt .Lmemcpy_fl4 /* less than 4 bytes */ ands r12, r0, #3 bne .Lmemcpy_fdestul /* oh unaligned destination addr */ ands r12, r1, #3 bne .Lmemcpy_fsrcul /* oh unaligned source addr */ .Lmemcpy_ft8: /* we have aligned source and destination */ subs r2, r2, #8 blt .Lmemcpy_fl12 /* less than 12 bytes (4 from above) */ subs r2, r2, #0x14 blt .Lmemcpy_fl32 /* less than 32 bytes (12 from above) */ stmdb sp!, {r4} /* borrow r4 */ /* blat 32 bytes at a time */ .Lmemcpy_floop32: ldmia r1!, {r3, r4, r12, lr} stmia r0!, {r3, r4, r12, lr} ldmia r1!, {r3, r4, r12, lr} stmia r0!, {r3, r4, r12, lr} subs r2, r2, #0x20 bge .Lmemcpy_floop32 cmn r2, #0x10 ldmgeia r1!, {r3, r4, r12, lr} /* blat a remaining 16 bytes */ stmgeia r0!, {r3, r4, r12, lr} subge r2, r2, #0x10 ldmia sp!, {r4} /* return r4 */ .Lmemcpy_fl32: adds r2, r2, #0x14 /* blat 12 bytes at a time */ .Lmemcpy_floop12: ldmgeia r1!, {r3, r12, lr} stmgeia r0!, {r3, r12, lr} subges r2, r2, #0x0c bge .Lmemcpy_floop12 .Lmemcpy_fl12: adds r2, r2, #8 blt .Lmemcpy_fl4 subs r2, r2, #4 ldrlt r3, [r1], #4 strlt r3, [r0], #4 ldmgeia r1!, {r3, r12} stmgeia r0!, {r3, r12} subge r2, r2, #4 .Lmemcpy_fl4: /* less than 4 bytes to go */ adds r2, r2, #4 ldmeqia sp!, {r0, pc} /* done */ /* copy the crud byte at a time */ cmp r2, #2 ldrb r3, [r1], #1 strb r3, [r0], #1 ldrgeb r3, [r1], #1 strgeb r3, [r0], #1 ldrgtb r3, [r1], #1 strgtb r3, [r0], #1 ldmia sp!, {r0, pc} /* erg - unaligned destination */ .Lmemcpy_fdestul: rsb r12, r12, #4 cmp r12, #2 /* align destination with byte copies */ ldrb r3, [r1], #1 strb r3, [r0], #1 ldrgeb r3, [r1], #1 strgeb r3, [r0], #1 ldrgtb r3, [r1], #1 strgtb r3, [r0], #1 subs r2, r2, r12 blt .Lmemcpy_fl4 /* less the 4 bytes */ ands r12, r1, #3 beq .Lmemcpy_ft8 /* we have an aligned source */ /* erg - unaligned source */ /* This is where it gets nasty ... */ .Lmemcpy_fsrcul: bic r1, r1, #3 ldr lr, [r1], #4 cmp r12, #2 bgt .Lmemcpy_fsrcul3 beq .Lmemcpy_fsrcul2 cmp r2, #0x0c blt .Lmemcpy_fsrcul1loop4 sub r2, r2, #0x0c stmdb sp!, {r4, r5} .Lmemcpy_fsrcul1loop16: mov r3, lr, lsr #8 ldmia r1!, {r4, r5, r12, lr} orr r3, r3, r4, lsl #24 mov r4, r4, lsr #8 orr r4, r4, r5, lsl #24 mov r5, r5, lsr #8 orr r5, r5, r12, lsl #24 mov r12, r12, lsr #8 orr r12, r12, lr, lsl #24 stmia r0!, {r3-r5, r12} subs r2, r2, #0x10 bge .Lmemcpy_fsrcul1loop16 ldmia sp!, {r4, r5} adds r2, r2, #0x0c blt .Lmemcpy_fsrcul1l4 .Lmemcpy_fsrcul1loop4: mov r12, lr, lsr #8 ldr lr, [r1], #4 orr r12, r12, lr, lsl #24 str r12, [r0], #4 subs r2, r2, #4 bge .Lmemcpy_fsrcul1loop4 .Lmemcpy_fsrcul1l4: sub r1, r1, #3 b .Lmemcpy_fl4 .Lmemcpy_fsrcul2: cmp r2, #0x0c blt .Lmemcpy_fsrcul2loop4 sub r2, r2, #0x0c stmdb sp!, {r4, r5} .Lmemcpy_fsrcul2loop16: mov r3, lr, lsr #16 ldmia r1!, {r4, r5, r12, lr} orr r3, r3, r4, lsl #16 mov r4, r4, lsr #16 orr r4, r4, r5, lsl #16 mov r5, r5, lsr #16 orr r5, r5, r12, lsl #16 mov r12, r12, lsr #16 orr r12, r12, lr, lsl #16 stmia r0!, {r3-r5, r12} subs r2, r2, #0x10 bge .Lmemcpy_fsrcul2loop16 ldmia sp!, {r4, r5} adds r2, r2, #0x0c blt .Lmemcpy_fsrcul2l4 .Lmemcpy_fsrcul2loop4: mov r12, lr, lsr #16 ldr lr, [r1], #4 orr r12, r12, lr, lsl #16 str r12, [r0], #4 subs r2, r2, #4 bge .Lmemcpy_fsrcul2loop4 .Lmemcpy_fsrcul2l4: sub r1, r1, #2 b .Lmemcpy_fl4 .Lmemcpy_fsrcul3: cmp r2, #0x0c blt .Lmemcpy_fsrcul3loop4 sub r2, r2, #0x0c stmdb sp!, {r4, r5} .Lmemcpy_fsrcul3loop16: mov r3, lr, lsr #24 ldmia r1!, {r4, r5, r12, lr} orr r3, r3, r4, lsl #8 mov r4, r4, lsr #24 orr r4, r4, r5, lsl #8 mov r5, r5, lsr #24 orr r5, r5, r12, lsl #8 mov r12, r12, lsr #24 orr r12, r12, lr, lsl #8 stmia r0!, {r3-r5, r12} subs r2, r2, #0x10 bge .Lmemcpy_fsrcul3loop16 ldmia sp!, {r4, r5} adds r2, r2, #0x0c blt .Lmemcpy_fsrcul3l4 .Lmemcpy_fsrcul3loop4: mov r12, lr, lsr #24 ldr lr, [r1], #4 orr r12, r12, lr, lsl #8 str r12, [r0], #4 subs r2, r2, #4 bge .Lmemcpy_fsrcul3loop4 .Lmemcpy_fsrcul3l4: sub r1, r1, #1 b .Lmemcpy_fl4 .Lmemcpy_backwards: add r1, r1, r2 add r0, r0, r2 subs r2, r2, #4 blt .Lmemcpy_bl4 /* less than 4 bytes */ ands r12, r0, #3 bne .Lmemcpy_bdestul /* oh unaligned destination addr */ ands r12, r1, #3 bne .Lmemcpy_bsrcul /* oh unaligned source addr */ .Lmemcpy_bt8: /* we have aligned source and destination */ subs r2, r2, #8 blt .Lmemcpy_bl12 /* less than 12 bytes (4 from above) */ stmdb sp!, {r4, lr} subs r2, r2, #0x14 /* less than 32 bytes (12 from above) */ blt .Lmemcpy_bl32 /* blat 32 bytes at a time */ .Lmemcpy_bloop32: ldmdb r1!, {r3, r4, r12, lr} stmdb r0!, {r3, r4, r12, lr} ldmdb r1!, {r3, r4, r12, lr} stmdb r0!, {r3, r4, r12, lr} subs r2, r2, #0x20 bge .Lmemcpy_bloop32 .Lmemcpy_bl32: cmn r2, #0x10 ldmgedb r1!, {r3, r4, r12, lr} /* blat a remaining 16 bytes */ stmgedb r0!, {r3, r4, r12, lr} subge r2, r2, #0x10 adds r2, r2, #0x14 ldmgedb r1!, {r3, r12, lr} /* blat a remaining 12 bytes */ stmgedb r0!, {r3, r12, lr} subge r2, r2, #0x0c ldmia sp!, {r4, lr} .Lmemcpy_bl12: adds r2, r2, #8 blt .Lmemcpy_bl4 subs r2, r2, #4 ldrlt r3, [r1, #-4]! strlt r3, [r0, #-4]! ldmgedb r1!, {r3, r12} stmgedb r0!, {r3, r12} subge r2, r2, #4 .Lmemcpy_bl4: /* less than 4 bytes to go */ adds r2, r2, #4 moveq pc, lr /* copy the crud byte at a time */ cmp r2, #2 ldrb r3, [r1, #-1]! strb r3, [r0, #-1]! ldrgeb r3, [r1, #-1]! strgeb r3, [r0, #-1]! ldrgtb r3, [r1, #-1]! strgtb r3, [r0, #-1]! mov pc, lr /* erg - unaligned destination */ .Lmemcpy_bdestul: cmp r12, #2 /* align destination with byte copies */ ldrb r3, [r1, #-1]! strb r3, [r0, #-1]! ldrgeb r3, [r1, #-1]! strgeb r3, [r0, #-1]! ldrgtb r3, [r1, #-1]! strgtb r3, [r0, #-1]! subs r2, r2, r12 blt .Lmemcpy_bl4 /* less than 4 bytes to go */ ands r12, r1, #3 beq .Lmemcpy_bt8 /* we have an aligned source */ /* erg - unaligned source */ /* This is where it gets nasty ... */ .Lmemcpy_bsrcul: bic r1, r1, #3 ldr r3, [r1, #0] cmp r12, #2 blt .Lmemcpy_bsrcul1 beq .Lmemcpy_bsrcul2 cmp r2, #0x0c blt .Lmemcpy_bsrcul3loop4 sub r2, r2, #0x0c stmdb sp!, {r4, r5, lr} .Lmemcpy_bsrcul3loop16: mov lr, r3, lsl #8 ldmdb r1!, {r3-r5, r12} orr lr, lr, r12, lsr #24 mov r12, r12, lsl #8 orr r12, r12, r5, lsr #24 mov r5, r5, lsl #8 orr r5, r5, r4, lsr #24 mov r4, r4, lsl #8 orr r4, r4, r3, lsr #24 stmdb r0!, {r4, r5, r12, lr} subs r2, r2, #0x10 bge .Lmemcpy_bsrcul3loop16 ldmia sp!, {r4, r5, lr} adds r2, r2, #0x0c blt .Lmemcpy_bsrcul3l4 .Lmemcpy_bsrcul3loop4: mov r12, r3, lsl #8 ldr r3, [r1, #-4]! orr r12, r12, r3, lsr #24 str r12, [r0, #-4]! subs r2, r2, #4 bge .Lmemcpy_bsrcul3loop4 .Lmemcpy_bsrcul3l4: add r1, r1, #3 b .Lmemcpy_bl4 .Lmemcpy_bsrcul2: cmp r2, #0x0c blt .Lmemcpy_bsrcul2loop4 sub r2, r2, #0x0c stmdb sp!, {r4, r5, lr} .Lmemcpy_bsrcul2loop16: mov lr, r3, lsl #16 ldmdb r1!, {r3-r5, r12} orr lr, lr, r12, lsr #16 mov r12, r12, lsl #16 orr r12, r12, r5, lsr #16 mov r5, r5, lsl #16 orr r5, r5, r4, lsr #16 mov r4, r4, lsl #16 orr r4, r4, r3, lsr #16 stmdb r0!, {r4, r5, r12, lr} subs r2, r2, #0x10 bge .Lmemcpy_bsrcul2loop16 ldmia sp!, {r4, r5, lr} adds r2, r2, #0x0c blt .Lmemcpy_bsrcul2l4 .Lmemcpy_bsrcul2loop4: mov r12, r3, lsl #16 ldr r3, [r1, #-4]! orr r12, r12, r3, lsr #16 str r12, [r0, #-4]! subs r2, r2, #4 bge .Lmemcpy_bsrcul2loop4 .Lmemcpy_bsrcul2l4: add r1, r1, #2 b .Lmemcpy_bl4 .Lmemcpy_bsrcul1: cmp r2, #0x0c blt .Lmemcpy_bsrcul1loop4 sub r2, r2, #0x0c stmdb sp!, {r4, r5, lr} .Lmemcpy_bsrcul1loop32: mov lr, r3, lsl #24 ldmdb r1!, {r3-r5, r12} orr lr, lr, r12, lsr #8 mov r12, r12, lsl #24 orr r12, r12, r5, lsr #8 mov r5, r5, lsl #24 orr r5, r5, r4, lsr #8 mov r4, r4, lsl #24 orr r4, r4, r3, lsr #8 stmdb r0!, {r4, r5, r12, lr} subs r2, r2, #0x10 bge .Lmemcpy_bsrcul1loop32 ldmia sp!, {r4, r5, lr} adds r2, r2, #0x0c blt .Lmemcpy_bsrcul1l4 .Lmemcpy_bsrcul1loop4: mov r12, r3, lsl #24 ldr r3, [r1, #-4]! orr r12, r12, r3, lsr #8 str r12, [r0, #-4]! subs r2, r2, #4 bge .Lmemcpy_bsrcul1loop4 .Lmemcpy_bsrcul1l4: add r1, r1, #1 b .Lmemcpy_bl4 xfel-1.3.5/payloads/h2_h3/h3-ddr/source/memset.S000066400000000000000000000037721512120643700212060ustar00rootroot00000000000000/* * memcpy.S */ .text .global memset .type memset, %function .align 4 memset: stmfd sp!, {r0} /* remember address for return value */ and r1, r1, #0x000000ff /* we write bytes */ cmp r2, #0x00000004 /* do we have less than 4 bytes */ blt .Lmemset_lessthanfour /* first we will word align the address */ ands r3, r0, #0x00000003 /* get the bottom two bits */ beq .Lmemset_addraligned /* the address is word aligned */ rsb r3, r3, #0x00000004 sub r2, r2, r3 cmp r3, #0x00000002 strb r1, [r0], #0x0001 /* set 1 byte */ strgeb r1, [r0], #0x0001 /* set another byte */ strgtb r1, [r0], #0x0001 /* and a third */ cmp r2, #0x00000004 blt .Lmemset_lessthanfour /* now we must be word aligned */ .Lmemset_addraligned: orr r3, r1, r1, lsl #8 /* repeat the byte into a word */ orr r3, r3, r3, lsl #16 /* we know we have at least 4 bytes ... */ cmp r2, #0x00000020 /* if less than 32 then use words */ blt .Lmemset_lessthan32 /* we have at least 32 so lets use quad words */ stmfd sp!, {r4-r6} /* store registers */ mov r4, r3 /* duplicate data */ mov r5, r3 mov r6, r3 .Lmemset_loop16: stmia r0!, {r3-r6} /* store 16 bytes */ sub r2, r2, #0x00000010 /* adjust count */ cmp r2, #0x00000010 /* still got at least 16 bytes ? */ bgt .Lmemset_loop16 ldmfd sp!, {r4-r6} /* restore registers */ /* do we need to set some words as well ? */ cmp r2, #0x00000004 blt .Lmemset_lessthanfour /* have either less than 16 or less than 32 depending on route taken */ .Lmemset_lessthan32: /* we have at least 4 bytes so copy as words */ .Lmemset_loop4: str r3, [r0], #0x0004 sub r2, r2, #0x0004 cmp r2, #0x00000004 bge .Lmemset_loop4 .Lmemset_lessthanfour: cmp r2, #0x00000000 ldmeqfd sp!, {r0} moveq pc, lr /* zero length so exit */ cmp r2, #0x00000002 strb r1, [r0], #0x0001 /* set 1 byte */ strgeb r1, [r0], #0x0001 /* set another byte */ strgtb r1, [r0], #0x0001 /* and a third */ ldmfd sp!, {r0} mov pc, lr /* exit */ xfel-1.3.5/payloads/h2_h3/h3-ddr/source/start.S000066400000000000000000000034121512120643700210400ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ .global _start _start: b reset reset: ldr r0, =0x00000040 str sp, [r0, #0] str lr, [r0, #4] mrs lr, cpsr str lr, [r0, #8] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #12] mrc p15, 0, lr, c12, c0, 0 str lr, [r0, #16] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #20] bl sys_uart_init bl sys_clock_init bl sys_dram_init ldr r0, =0x00000040 ldr sp, [r0, #0] ldr lr, [r0, #4] ldr r1, [r0, #20] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #16] mcr p15, 0, r1, c12, c0, 0 ldr r1, [r0, #12] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #8] msr cpsr, r1 bx lr xfel-1.3.5/payloads/h2_h3/h3-ddr/source/sys-clock.c000066400000000000000000000047561512120643700216460ustar00rootroot00000000000000/* * sys-clock.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include #include

static inline void sdelay(int loops) { __asm__ __volatile__ ("1:\n" "subs %0, %1, #1\n" "bne 1b":"=r" (loops):"0"(loops)); } static void clock_set_pll_cpux(u32_t clk) { int p = 0; int k = 1; int m = 1; u32_t val; if(clk > 1152000000) { k = 2; } else if(clk > 768000000) { k = 3; m = 2; } /* Switch to 24MHz clock while changing cpux pll */ val = (2 << 0) | (1 << 8) | (1 << 16); write32(H3_CCU_BASE + CCU_CPUX_AXI_CFG, val); /* cpu pll rate = ((24000000 * n * k) >> p) / m */ val = (0x1 << 31); val |= ((p & 0x3) << 16); val |= ((((clk / (24000000 * k / m)) - 1) & 0x1f) << 8); val |= (((k - 1) & 0x3) << 4); val |= (((m - 1) & 0x3) << 0); write32(H3_CCU_BASE + CCU_PLL_CPUX_CTRL, val); sdelay(200); /* Switch clock source */ val = (2 << 0) | (1 << 8) | (2 << 16); write32(H3_CCU_BASE + CCU_CPUX_AXI_CFG, val); } void sys_clock_init(void) { clock_set_pll_cpux(1008000000); /* pll periph0 - 600MHZ */ write32(H3_CCU_BASE + CCU_PLL_PERIPH0_CTRL, 0x90041811); while(!(read32(H3_CCU_BASE + CCU_PLL_PERIPH0_CTRL) & (1 << 28))); /* ahb1 = pll periph0 / 3, apb1 = ahb1 / 2 */ write32(H3_CCU_BASE + CCU_AHB1_APB1_CFG, 0x00003180); /* mbus = pll periph0 / 2 */ write32(H3_CCU_BASE + CCU_MBUS_CLK, 0x81000001); } xfel-1.3.5/payloads/h2_h3/h3-ddr/source/sys-dram.c000066400000000000000000000541241512120643700214700ustar00rootroot00000000000000/* * sys-dram.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include #include

#include

#define CONFIG_DRAM_BASE (0x40000000) #define CONFIG_DRAM_CLK (408) #define CONFIG_DRAM_ZQ (3881979) #define clrbits_le32(addr, clear) \ write32(((virtual_addr_t)(addr)), read32(((virtual_addr_t)(addr))) & ~(clear)) #define setbits_le32(addr, set) \ write32(((virtual_addr_t)(addr)), read32(((virtual_addr_t)(addr))) | (set)) #define clrsetbits_le32(addr, clear, set) \ write32(((virtual_addr_t)(addr)), (read32(((virtual_addr_t)(addr))) & ~(clear)) | (set)) #define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d)) #define REPEAT_BYTE(x) ((~0ul / 0xff) * (x)) struct h3_dram_com_reg_t { u32_t cr; /* 0x00 control register */ u32_t cr_r1; /* 0x04 rank 1 control register (R40 only) */ u8_t res0[0x4]; /* 0x08 */ u32_t tmr; /* 0x0c (unused on H3) */ u32_t mcr[16][2]; /* 0x10 */ u32_t bwcr; /* 0x90 bandwidth control register */ u32_t maer; /* 0x94 master enable register */ u32_t mapr; /* 0x98 master priority register */ u32_t mcgcr; /* 0x9c */ u32_t cpu_bwcr; /* 0xa0 */ u32_t gpu_bwcr; /* 0xa4 */ u32_t ve_bwcr; /* 0xa8 */ u32_t disp_bwcr; /* 0xac */ u32_t other_bwcr; /* 0xb0 */ u32_t total_bwcr; /* 0xb4 */ u8_t res1[0x8]; /* 0xb8 */ u32_t swonr; /* 0xc0 */ u32_t swoffr; /* 0xc4 */ u8_t res2[0x8]; /* 0xc8 */ u32_t cccr; /* 0xd0 */ u8_t res3[0x54]; /* 0xd4 */ u32_t mdfs_bwlr[3]; /* 0x128 (unused on H3) */ u8_t res4[0x6cc]; /* 0x134 */ u32_t protect; /* 0x800 */ }; struct h3_dram_ctl_reg_t { u32_t pir; /* 0x00 PHY initialization register */ u32_t pwrctl; /* 0x04 */ u32_t mrctrl; /* 0x08 */ u32_t clken; /* 0x0c */ u32_t pgsr[2]; /* 0x10 PHY general status registers */ u32_t statr; /* 0x18 */ u8_t res1[0x10]; /* 0x1c */ u32_t lp3mr11; /* 0x2c */ u32_t mr[4]; /* 0x30 mode registers */ u32_t pllgcr; /* 0x40 */ u32_t ptr[5]; /* 0x44 PHY timing registers */ u32_t dramtmg[9]; /* 0x58 DRAM timing registers */ u32_t odtcfg; /* 0x7c */ u32_t pitmg[2]; /* 0x80 PHY interface timing registers */ u8_t res2[0x4]; /* 0x88 */ u32_t rfshctl0; /* 0x8c */ u32_t rfshtmg; /* 0x90 refresh timing */ u32_t rfshctl1; /* 0x94 */ u32_t pwrtmg; /* 0x98 */ u8_t res3[0x1c]; /* 0x9c */ u32_t vtfcr; /* 0xb8 (unused on H3) */ u32_t dqsgmr; /* 0xbc */ u32_t dtcr; /* 0xc0 */ u32_t dtar[4]; /* 0xc4 */ u32_t dtdr[2]; /* 0xd4 */ u32_t dtmr[2]; /* 0xdc */ u32_t dtbmr; /* 0xe4 */ u32_t catr[2]; /* 0xe8 */ u32_t dtedr[2]; /* 0xf0 */ u8_t res4[0x8]; /* 0xf8 */ u32_t pgcr[4]; /* 0x100 PHY general configuration registers */ u32_t iovcr[2]; /* 0x110 */ u32_t dqsdr; /* 0x118 */ u32_t dxccr; /* 0x11c */ u32_t odtmap; /* 0x120 */ u32_t zqctl[2]; /* 0x124 */ u8_t res6[0x14]; /* 0x12c */ u32_t zqcr; /* 0x140 ZQ control register */ u32_t zqsr; /* 0x144 ZQ status register */ u32_t zqdr[3]; /* 0x148 ZQ data registers */ u8_t res7[0x6c]; /* 0x154 */ u32_t sched; /* 0x1c0 */ u32_t perfhpr[2]; /* 0x1c4 */ u32_t perflpr[2]; /* 0x1cc */ u32_t perfwr[2]; /* 0x1d4 */ u8_t res8[0x24]; /* 0x1dc */ u32_t acmdlr; /* 0x200 AC master delay line register */ u32_t aclcdlr; /* 0x204 AC local calibrated delay line register */ u32_t aciocr; /* 0x208 AC I/O configuration register */ u8_t res9[0x4]; /* 0x20c */ u32_t acbdlr[31]; /* 0x210 AC bit delay line registers */ u8_t res10[0x74]; /* 0x28c */ struct { /* 0x300 DATX8 modules*/ u32_t mdlr; /* 0x00 master delay line register */ u32_t lcdlr[3]; /* 0x04 local calibrated delay line registers */ u32_t bdlr[11]; /* 0x10 bit delay line registers */ u32_t sdlr; /* 0x3c output enable bit delay registers */ u32_t gtr; /* 0x40 general timing register */ u32_t gcr; /* 0x44 general configuration register */ u32_t gsr[3]; /* 0x48 general status registers */ u8_t res0[0x2c];/* 0x54 */ } dx[4]; u8_t res11[0x388]; /* 0x500 */ u32_t upd2; /* 0x888 */ }; struct dram_para_t { u16_t page_size; u8_t bus_full_width; u8_t dual_rank; u8_t row_bits; u8_t bank_bits; u8_t dx_read_delays[4][11]; u8_t dx_write_delays[4][11]; u8_t ac_delays[31]; u8_t res[3]; }; static inline void sdelay(int loops) { __asm__ __volatile__ ("1:\n" "subs %0, %1, #1\n" "bne 1b":"=r" (loops):"0"(loops)); } static inline int gfls(int x) { int r = 32; if(!x) return 0; if(!(x & 0xffff0000u)) { x <<= 16; r -= 16; } if(!(x & 0xff000000u)) { x <<= 8; r -= 8; } if(!(x & 0xf0000000u)) { x <<= 4; r -= 4; } if(!(x & 0xc0000000u)) { x <<= 2; r -= 2; } if(!(x & 0x80000000u)) { x <<= 1; r -= 1; } return r; } static inline int ns_to_t(int ns) { unsigned int freq = CONFIG_DRAM_CLK / 2; return DIV_ROUND_UP(freq * ns, 1000); } static u32_t bin_to_mgray(int val) { u8_t table[32]; table[0] = 0x00; table[1] = 0x01; table[2] = 0x02; table[3] = 0x03; table[4] = 0x06; table[5] = 0x07; table[6] = 0x04; table[7] = 0x05; table[8] = 0x0c; table[9] = 0x0d; table[10] = 0x0e; table[11] = 0x0f; table[12] = 0x0a; table[13] = 0x0b; table[14] = 0x08; table[15] = 0x09; table[16] = 0x18; table[17] = 0x19; table[18] = 0x1a; table[19] = 0x1b; table[20] = 0x1e; table[21] = 0x1f; table[22] = 0x1c; table[23] = 0x1d; table[24] = 0x14; table[25] = 0x15; table[26] = 0x16; table[27] = 0x17; table[28] = 0x12; table[29] = 0x13; table[30] = 0x10; table[31] = 0x11; return table[clamp(val, 0, 31)]; } static int mgray_to_bin(u32_t val) { u8_t table[32]; table[0] = 0x00; table[1] = 0x01; table[2] = 0x02; table[3] = 0x03; table[4] = 0x06; table[5] = 0x07; table[6] = 0x04; table[7] = 0x05; table[8] = 0x0e; table[9] = 0x0f; table[10] = 0x0c; table[11] = 0x0d; table[12] = 0x08; table[13] = 0x09; table[14] = 0x0a; table[15] = 0x0b; table[16] = 0x1e; table[17] = 0x1f; table[18] = 0x1c; table[19] = 0x1d; table[20] = 0x18; table[21] = 0x19; table[22] = 0x1a; table[23] = 0x1b; table[24] = 0x10; table[25] = 0x11; table[26] = 0x12; table[27] = 0x13; table[28] = 0x16; table[29] = 0x17; table[30] = 0x14; table[31] = 0x15; return table[val & 0x1f]; } static void clock_set_pll_ddr(u32_t clk) { int n = 32; int k = 1; int m = 2; u32_t val; clrsetbits_le32(H3_CCU_BASE + CCU_PLL_DDR_TUN, (0x7 << 24) | (0x7f << 16), ((2 & 0x7) << 24) | ((16 & 0x7f) << 16)); /* ddr pll rate = 24000000 * n * k / m */ if(clk > 24000000 * k * n / m) { m = 1; if(clk > 24000000 * k * n / m) { k = 2; } } val = (0x1 << 31); val |= (0x0 << 24); val |= (0x1 << 20); val |= ((((clk / (24000000 * k / m)) - 1) & 0x1f) << 8); val |= (((k - 1) & 0x3) << 4); val |= (((m - 1) & 0x3) << 0); write32(H3_CCU_BASE + CCU_PLL_DDR_CTRL, val); sdelay(5500); } static void mctl_await_completion(u32_t * reg, u32_t mask, u32_t val) { int timeout = 0; while((read32((virtual_addr_t)reg) & mask) != val) { if(timeout++ > 10000) break; } } static int mctl_mem_matches(u32_t offset) { write32(CONFIG_DRAM_BASE, 0); write32(CONFIG_DRAM_BASE + offset, 0xaa55aa55); __asm__ __volatile__ ("dsb" : : : "memory"); return (read32(CONFIG_DRAM_BASE) == read32(CONFIG_DRAM_BASE + offset)) ? 1 : 0; } static void mctl_phy_init(u32_t val) { struct h3_dram_ctl_reg_t * ctl = (struct h3_dram_ctl_reg_t *)H3_DRAM_CTL0_BASE; write32((virtual_addr_t)&ctl->pir, val | PIR_INIT); mctl_await_completion(&ctl->pgsr[0], PGSR_INIT_DONE, 0x1); } static void mctl_set_bit_delays(struct dram_para_t * para) { struct h3_dram_ctl_reg_t * ctl = (struct h3_dram_ctl_reg_t *)H3_DRAM_CTL0_BASE; int i, j; u32_t val; clrbits_le32(&ctl->pgcr[0], 1 << 26); for(i = 0; i < 4; i++) { for(j = 0; j < 11; j++) { val = DXBDLR_WRITE_DELAY(para->dx_write_delays[i][j]) | DXBDLR_READ_DELAY(para->dx_read_delays[i][j]); write32((virtual_addr_t)&ctl->dx[i].bdlr[j], val); } } for(i = 0; i < 31; i++) { val = ACBDLR_WRITE_DELAY(para->ac_delays[i]); write32((virtual_addr_t)&ctl->acbdlr[i], val); } setbits_le32(&ctl->pgcr[0], 1 << 26); sdelay(1); } enum { MBUS_PORT_CPU = 0, MBUS_PORT_GPU = 1, MBUS_PORT_UNUSED = 2, MBUS_PORT_DMA = 3, MBUS_PORT_VE = 4, MBUS_PORT_CSI = 5, MBUS_PORT_NAND = 6, MBUS_PORT_SS = 7, MBUS_PORT_TS = 8, MBUS_PORT_DI = 9, MBUS_PORT_DE = 10, MBUS_PORT_DE_CFD = 11, MBUS_PORT_UNKNOWN1 = 12, MBUS_PORT_UNKNOWN2 = 13, MBUS_PORT_UNKNOWN3 = 14, }; enum { MBUS_QOS_LOWEST = 0, MBUS_QOS_LOW = 1, MBUS_QOS_HIGH = 2, MBUS_QOS_HIGHEST = 3, }; static inline void mbus_configure_port(u8_t port, int bwlimit, int priority, u8_t qos, u8_t waittime, u8_t acs, u16_t bwl0, u16_t bwl1, u16_t bwl2) { struct h3_dram_com_reg_t * com = (struct h3_dram_com_reg_t *)H3_DRAM_COM_BASE; u32_t cfg0 = ( (bwlimit ? (1 << 0) : 0) | (priority ? (1 << 1) : 0) | ((qos & 0x3) << 2) | ((waittime & 0xf) << 4) | ((acs & 0xff) << 8) | (bwl0 << 16) ); u32_t cfg1 = ((u32_t)bwl2 << 16) | (bwl1 & 0xffff); write32((virtual_addr_t)&com->mcr[port][0], cfg0); write32((virtual_addr_t)&com->mcr[port][1], cfg1); } #define MBUS_CONF(port, bwlimit, qos, acs, bwl0, bwl1, bwl2) \ mbus_configure_port(MBUS_PORT_ ## port, bwlimit, 0, \ MBUS_QOS_ ## qos, 0, acs, bwl0, bwl1, bwl2) static void mctl_set_master_priority(void) { struct h3_dram_com_reg_t * com = (struct h3_dram_com_reg_t *)H3_DRAM_COM_BASE; write32((virtual_addr_t)&com->bwcr, (1 << 16) | (400 << 0)); write32((virtual_addr_t)&com->mapr, 0x00000001); MBUS_CONF( CPU, 1, HIGHEST, 0, 512, 256, 128); MBUS_CONF( GPU, 1, HIGH, 0, 1536, 1024, 256); MBUS_CONF(UNUSED, 1, HIGHEST, 0, 512, 256, 96); MBUS_CONF( DMA, 1, HIGHEST, 0, 256, 128, 32); MBUS_CONF( VE, 1, HIGH, 0, 1792, 1600, 256); MBUS_CONF( CSI, 1, HIGHEST, 0, 256, 128, 32); MBUS_CONF( NAND, 1, HIGH, 0, 256, 128, 64); MBUS_CONF( SS, 1, HIGHEST, 0, 256, 128, 64); MBUS_CONF( TS, 1, HIGHEST, 0, 256, 128, 64); MBUS_CONF( DI, 1, HIGH, 0, 1024, 256, 64); MBUS_CONF( DE, 1, HIGHEST, 3, 8192, 6120, 1024); MBUS_CONF(DE_CFD, 1, HIGH, 0, 1024, 288, 64); } static void mctl_set_timing_params(struct dram_para_t * para) { struct h3_dram_ctl_reg_t * ctl = (struct h3_dram_ctl_reg_t *)H3_DRAM_CTL0_BASE; u8_t tccd = 2; u8_t tfaw = ns_to_t(50); u8_t trrd = max(ns_to_t(10), 4); u8_t trcd = ns_to_t(15); u8_t trc = ns_to_t(53); u8_t txp = max(ns_to_t(8), 3); u8_t twtr = max(ns_to_t(8), 4); u8_t trtp = max(ns_to_t(8), 4); u8_t twr = max(ns_to_t(15), 3); u8_t trp = ns_to_t(15); u8_t tras = ns_to_t(38); u16_t trefi = ns_to_t(7800) / 32; u16_t trfc = ns_to_t(350); u8_t tmrw = 0; u8_t tmrd = 4; u8_t tmod = 12; u8_t tcke = 3; u8_t tcksrx = 5; u8_t tcksre = 5; u8_t tckesr = 4; u8_t trasmax = 24; u8_t tcl = 6; /* CL 12 */ u8_t tcwl = 4; /* CWL 8 */ u8_t t_rdata_en = 4; u8_t wr_latency = 2; u32_t tdinit0 = (500 * CONFIG_DRAM_CLK) + 1; /* 500us */ u32_t tdinit1 = (360 * CONFIG_DRAM_CLK) / 1000 + 1; /* 360ns */ u32_t tdinit2 = (200 * CONFIG_DRAM_CLK) + 1; /* 200us */ u32_t tdinit3 = (1 * CONFIG_DRAM_CLK) + 1; /* 1us */ u8_t twtp = tcwl + 2 + twr; /* WL + BL / 2 + tWR */ u8_t twr2rd = tcwl + 2 + twtr; /* WL + BL / 2 + tWTR */ u8_t trd2wr = tcl + 2 + 1 - tcwl; /* RL + BL / 2 + 2 - WL */ write32((virtual_addr_t)&ctl->mr[0], 0x1c70); /* CL=11, WR=12 */ write32((virtual_addr_t)&ctl->mr[1], 0x40); write32((virtual_addr_t)&ctl->mr[2], 0x18); /* CWL=8 */ write32((virtual_addr_t)&ctl->mr[3], 0x0); /* Set DRAM timing */ write32((virtual_addr_t)&ctl->dramtmg[0], DRAMTMG0_TWTP(twtp) | DRAMTMG0_TFAW(tfaw) | DRAMTMG0_TRAS_MAX(trasmax) | DRAMTMG0_TRAS(tras)); write32((virtual_addr_t)&ctl->dramtmg[1], DRAMTMG1_TXP(txp) | DRAMTMG1_TRTP(trtp) | DRAMTMG1_TRC(trc)); write32((virtual_addr_t)&ctl->dramtmg[2], DRAMTMG2_TCWL(tcwl) | DRAMTMG2_TCL(tcl) | DRAMTMG2_TRD2WR(trd2wr) | DRAMTMG2_TWR2RD(twr2rd)); write32((virtual_addr_t)&ctl->dramtmg[3], DRAMTMG3_TMRW(tmrw) | DRAMTMG3_TMRD(tmrd) | DRAMTMG3_TMOD(tmod)); write32((virtual_addr_t)&ctl->dramtmg[4], DRAMTMG4_TRCD(trcd) | DRAMTMG4_TCCD(tccd) | DRAMTMG4_TRRD(trrd) | DRAMTMG4_TRP(trp)); write32((virtual_addr_t)&ctl->dramtmg[5], DRAMTMG5_TCKSRX(tcksrx) | DRAMTMG5_TCKSRE(tcksre) | DRAMTMG5_TCKESR(tckesr) | DRAMTMG5_TCKE(tcke)); /* Set two rank timing */ clrsetbits_le32(&ctl->dramtmg[8], (0xff << 8) | (0xff << 0), (0x66 << 8) | (0x10 << 0)); /* Set PHY interface timing, write latency and read latency configure */ write32((virtual_addr_t)&ctl->pitmg[0], (0x2 << 24) | (t_rdata_en << 16) | (0x1 << 8) | (wr_latency << 0)); /* Set PHY timing, PTR0-2 use default */ write32((virtual_addr_t)&ctl->ptr[3], PTR3_TDINIT0(tdinit0) | PTR3_TDINIT1(tdinit1)); write32((virtual_addr_t)&ctl->ptr[4], PTR4_TDINIT2(tdinit2) | PTR4_TDINIT3(tdinit3)); /* Set refresh timing */ write32((virtual_addr_t)&ctl->rfshtmg, RFSHTMG_TREFI(trefi) | RFSHTMG_TRFC(trfc)); } static void mctl_zq_calibration(struct dram_para_t * para) { struct h3_dram_ctl_reg_t * ctl = (struct h3_dram_ctl_reg_t *)H3_DRAM_CTL0_BASE; u16_t zq_val[6]; u32_t val; u8_t zq; int i; if((read32((virtual_addr_t)(0x01c00000 + 0x24)) & 0xff) == 0 && (read32((virtual_addr_t)(0x01c00000 + 0xf0)) & 0x1) == 0) { clrsetbits_le32(&ctl->zqcr, 0xffff, CONFIG_DRAM_ZQ & 0xffff); write32((virtual_addr_t)&ctl->pir, PIR_CLRSR); mctl_phy_init(PIR_ZCAL); val = read32((virtual_addr_t)&ctl->zqdr[0]); val &= (0x1f << 16) | (0x1f << 0); val |= val << 8; write32((virtual_addr_t)&ctl->zqdr[0], val); val = read32((virtual_addr_t)&ctl->zqdr[1]); val &= (0x1f << 16) | (0x1f << 0); val |= val << 8; write32((virtual_addr_t)&ctl->zqdr[1], val); write32((virtual_addr_t)&ctl->zqdr[2], val); } else { write32((virtual_addr_t)&ctl->zqdr[2], 0x0a0a0a0a); for(i = 0; i < 6; i++) { zq = (CONFIG_DRAM_ZQ >> (i * 4)) & 0xf; write32((virtual_addr_t)&ctl->zqcr, (zq << 20) | (zq << 16) | (zq << 12) | (zq << 8) | (zq << 4) | (zq << 0)); write32((virtual_addr_t)&ctl->pir, PIR_CLRSR); mctl_phy_init(PIR_ZCAL); zq_val[i] = read32((virtual_addr_t)&ctl->zqdr[0]) & 0xff; write32((virtual_addr_t)&ctl->zqdr[2], REPEAT_BYTE(zq_val[i])); write32((virtual_addr_t)&ctl->pir, PIR_CLRSR); mctl_phy_init(PIR_ZCAL); val = read32((virtual_addr_t)&ctl->zqdr[0]) >> 24; zq_val[i] |= bin_to_mgray(mgray_to_bin(val) - 1) << 8; } write32((virtual_addr_t)&ctl->zqdr[0], (zq_val[1] << 16) | zq_val[0]); write32((virtual_addr_t)&ctl->zqdr[1], (zq_val[3] << 16) | zq_val[2]); write32((virtual_addr_t)&ctl->zqdr[2], (zq_val[5] << 16) | zq_val[4]); } } static void mctl_set_cr(struct dram_para_t * para) { struct h3_dram_com_reg_t * com = (struct h3_dram_com_reg_t *)H3_DRAM_COM_BASE; write32((virtual_addr_t)&com->cr, MCTL_CR_BL8 | MCTL_CR_INTERLEAVED | MCTL_CR_DDR3 | MCTL_CR_2T | (para->bank_bits == 3 ? MCTL_CR_EIGHT_BANKS : MCTL_CR_FOUR_BANKS) | MCTL_CR_BUS_FULL_WIDTH(para->bus_full_width) | (para->dual_rank ? MCTL_CR_DUAL_RANK : MCTL_CR_SINGLE_RANK) | MCTL_CR_PAGE_SIZE(para->page_size) | MCTL_CR_ROW_BITS(para->row_bits)); } static void mctl_sys_init(struct dram_para_t * para) { struct h3_dram_ctl_reg_t * ctl = (struct h3_dram_ctl_reg_t *)H3_DRAM_CTL0_BASE; u32_t val; val = read32(H3_CCU_BASE + CCU_MBUS_CLK); val &= ~(0x1 << 31); write32(H3_CCU_BASE + CCU_MBUS_CLK, val); val = read32(H3_CCU_BASE + CCU_MBUS_RST); val &= ~(0x1 << 31); write32(H3_CCU_BASE + CCU_MBUS_RST, val); val = read32(H3_CCU_BASE + CCU_BUS_CLK_GATE0); val &= ~(0x1 << 14); write32(H3_CCU_BASE + CCU_BUS_CLK_GATE0, val); val = read32(H3_CCU_BASE + CCU_BUS_SOFT_RST0); val &= ~(0x1 << 14); write32(H3_CCU_BASE + CCU_BUS_SOFT_RST0, val); val = read32(H3_CCU_BASE + CCU_PLL_DDR_CTRL); val &= ~(0x1 << 31); write32(H3_CCU_BASE + CCU_PLL_DDR_CTRL, val); sdelay(10); val = read32(H3_CCU_BASE + CCU_DRAM_CFG); val &= ~(0x1 << 31); write32(H3_CCU_BASE + CCU_DRAM_CFG, val); sdelay(1000); clock_set_pll_ddr(CONFIG_DRAM_CLK * 2 * 1000000); val = read32(H3_CCU_BASE + CCU_DRAM_CFG); val &= ~(0xf << 0); val &= ~(0x3 << 20); val |= ((1 - 1) << 0); val |= (0x0 << 20); val |= (0x1 << 16); write32(H3_CCU_BASE + CCU_DRAM_CFG, val); mctl_await_completion((u32_t *)(H3_CCU_BASE + CCU_DRAM_CFG), 0x1 << 16, 0); val = read32(H3_CCU_BASE + CCU_BUS_SOFT_RST0); val |= (0x1 << 14); write32(H3_CCU_BASE + CCU_BUS_SOFT_RST0, val); val = read32(H3_CCU_BASE + CCU_BUS_CLK_GATE0); val |= (0x1 << 14); write32(H3_CCU_BASE + CCU_BUS_CLK_GATE0, val); val = read32(H3_CCU_BASE + CCU_MBUS_RST); val |= (0x1 << 31); write32(H3_CCU_BASE + CCU_MBUS_RST, val); val = read32(H3_CCU_BASE + CCU_MBUS_CLK); val |= (0x1 << 31); write32(H3_CCU_BASE + CCU_MBUS_CLK, val); val = read32(H3_CCU_BASE + CCU_DRAM_CFG); val |= (0x1 << 31); write32(H3_CCU_BASE + CCU_DRAM_CFG, val); sdelay(10); write32((virtual_addr_t)&ctl->clken, 0xc00e); sdelay(500); } static int mctl_channel_init(struct dram_para_t * para) { struct h3_dram_com_reg_t * com = (struct h3_dram_com_reg_t *)H3_DRAM_COM_BASE; struct h3_dram_ctl_reg_t * ctl = (struct h3_dram_ctl_reg_t *)H3_DRAM_CTL0_BASE; int i; mctl_set_cr(para); mctl_set_timing_params(para); mctl_set_master_priority(); clrbits_le32(&ctl->pgcr[0], (1 << 30) | 0x3f); clrsetbits_le32(&ctl->pgcr[1], 1 << 24, 1 << 26); write32((virtual_addr_t)&com->protect, 0x94be6fa3); sdelay(100); clrsetbits_le32(&ctl->upd2, 0xfff << 16, 0x50 << 16); write32((virtual_addr_t)&com->protect, 0x0); sdelay(100); for(i = 0; i < 4; i++) clrsetbits_le32(&ctl->dx[i].gcr, (0x3 << 4) | (0x1 << 1) | (0x3 << 2) | (0x3 << 12) | (0x3 << 14), (0x0 << 4)); clrsetbits_le32(&ctl->aciocr, 0, 0x1 << 1); setbits_le32(&ctl->pgcr[2], 0x3 << 6); clrbits_le32(&ctl->pgcr[0], (0x3 << 14) | (0x3 << 12)); clrsetbits_le32(&ctl->pgcr[2], (0x3 << 10) | (0x3 << 8), (0x1 << 10) | (0x2 << 8)); if(!para->bus_full_width) { write32((virtual_addr_t)&ctl->dx[2].gcr, 0x0); write32((virtual_addr_t)&ctl->dx[3].gcr, 0x0); } clrsetbits_le32(&ctl->dtcr, 0xf << 24, (para->dual_rank ? 0x3 : 0x1) << 24); mctl_set_bit_delays(para); sdelay(50); mctl_zq_calibration(para); mctl_phy_init(PIR_PLLINIT | PIR_DCAL | PIR_PHYRST | PIR_DRAMRST | PIR_DRAMINIT | PIR_QSGATE); if(read32((virtual_addr_t)&ctl->pgsr[0]) & (0xfe << 20)) { if(((read32((virtual_addr_t)&ctl->dx[0].gsr[0]) >> 24) & 0x2) || ((read32((virtual_addr_t)&ctl->dx[1].gsr[0]) >> 24) & 0x2)) { clrsetbits_le32(&ctl->dtcr, 0xf << 24, 0x1 << 24); para->dual_rank = 0; } if(((read32((virtual_addr_t)&ctl->dx[2].gsr[0]) >> 24) & 0x1) || ((read32((virtual_addr_t)&ctl->dx[3].gsr[0]) >> 24) & 0x1)) { write32((virtual_addr_t)&ctl->dx[2].gcr, 0x0); write32((virtual_addr_t)&ctl->dx[3].gcr, 0x0); para->bus_full_width = 0; } mctl_set_cr(para); sdelay(20); mctl_phy_init(PIR_QSGATE); if(read32((virtual_addr_t)&ctl->pgsr[0]) & (0xfe << 20)) return 1; } mctl_await_completion(&ctl->statr, 0x1, 0x1); setbits_le32(&ctl->rfshctl0, 0x1 << 31); sdelay(10); clrbits_le32(&ctl->rfshctl0, 0x1 << 31); sdelay(10); write32((virtual_addr_t)&ctl->pgcr[3], 0x00aa0060); setbits_le32(&ctl->zqcr, ZQCR_PWRDOWN); write32((virtual_addr_t)&com->maer, 0xffffffff); return 0; } static void mctl_auto_detect_dram_size(struct dram_para_t * para) { para->page_size = 512; para->row_bits = 16; para->bank_bits = 2; mctl_set_cr(para); for(para->row_bits = 11; para->row_bits < 16; para->row_bits++) { if(mctl_mem_matches((1 << (para->row_bits + para->bank_bits)) * para->page_size)) break; } para->bank_bits = 3; mctl_set_cr(para); for(para->bank_bits = 2; para->bank_bits < 3; para->bank_bits++) { if(mctl_mem_matches((1 << para->bank_bits) * para->page_size)) break; } para->page_size = 8192; mctl_set_cr(para); for(para->page_size = 512; para->page_size < 8192; para->page_size *= 2) { if(mctl_mem_matches(para->page_size)) break; } } void sys_dram_init(void) { struct h3_dram_com_reg_t * com = (struct h3_dram_com_reg_t *)H3_DRAM_COM_BASE; struct h3_dram_ctl_reg_t * ctl = (struct h3_dram_ctl_reg_t *)H3_DRAM_CTL0_BASE; struct dram_para_t para = { .dual_rank = 1, .bus_full_width = 1, .row_bits = 15, .bank_bits = 3, .page_size = 4096, .dx_read_delays = { { 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0 }, { 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0 }, { 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0 }, { 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0 } }, .dx_write_delays = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6 } }, .ac_delays = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, }; u32_t * dsz = (void *)0x00000020; mctl_sys_init(¶); if(mctl_channel_init(¶)) { dsz[0] = 0; return; } if(para.dual_rank) write32((virtual_addr_t)&ctl->odtmap, 0x00000303); else write32((virtual_addr_t)&ctl->odtmap, 0x00000201); sdelay(1); write32((virtual_addr_t)&ctl->odtcfg, 0x0c000400); setbits_le32(&com->cccr, 1 << 31); sdelay(10); mctl_auto_detect_dram_size(¶); mctl_set_cr(¶); dsz[0] = (1UL << (para.row_bits + para.bank_bits)) * para.page_size * (para.dual_rank ? 2 : 1); } xfel-1.3.5/payloads/h2_h3/h3-ddr/source/sys-uart.c000066400000000000000000000047011512120643700215140ustar00rootroot00000000000000/* * sys-uart.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include void sys_uart_init(void) { virtual_addr_t addr; u32_t val; /* Config GPIOA4 and GPIOA5 to txd0 and rxd0 */ addr = 0x01c20800 + 0x00; val = read32(addr); val &= ~(0xf << ((4 & 0x7) << 2)); val |= ((0x2 & 0x7) << ((4 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((5 & 0x7) << 2)); val |= ((0x2 & 0x7) << ((5 & 0x7) << 2)); write32(addr, val); /* Open the clock gate for uart0 */ addr = 0x01c2006c; val = read32(addr); val |= 1 << 16; write32(addr, val); /* Deassert uart0 reset */ addr = 0x01c202d8; val = read32(addr); val |= 1 << 16; write32(addr, val); /* Config uart0 to 115200-8-1-0 */ addr = 0x01c28000; write32(addr + 0x04, 0x0); write32(addr + 0x08, 0xf7); write32(addr + 0x10, 0x0); val = read32(addr + 0x0c); val |= (1 << 7); write32(addr + 0x0c, val); write32(addr + 0x00, 0xd & 0xff); write32(addr + 0x04, (0xd >> 8) & 0xff); val = read32(addr + 0x0c); val &= ~(1 << 7); write32(addr + 0x0c, val); val = read32(addr + 0x0c); val &= ~0x1f; val |= (0x3 << 0) | (0 << 2) | (0x0 << 3); write32(addr + 0x0c, val); } void sys_uart_putc(char c) { virtual_addr_t addr = 0x01c28000; while((read32(addr + 0x7c) & (0x1 << 1)) == 0); write32(addr + 0x00, c); } xfel-1.3.5/payloads/h2_h3/jtag/000077500000000000000000000000001512120643700161235ustar00rootroot00000000000000xfel-1.3.5/payloads/h2_h3/jtag/.gitignore000066400000000000000000000000731512120643700201130ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/h2_h3/jtag/Makefile000066400000000000000000000056271512120643700175750ustar00rootroot00000000000000# # Top makefile # CROSS ?= arm-linux-gnueabihf- NAME := jtag # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 CFLAGS := -g -ggdb -Wall -O3 CXXFLAGS := -g -ggdb -Wall -O3 LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -march=armv7-a -mtune=cortex-a7 -mfpu=vfpv4 -mfloat-abi=hard -marm -mno-thumb-interwork -mno-unaligned-access -fno-stack-protector LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/h2_h3/jtag/include/000077500000000000000000000000001512120643700175465ustar00rootroot00000000000000xfel-1.3.5/payloads/h2_h3/jtag/include/byteorder.h000066400000000000000000000043611512120643700217220ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/h2_h3/jtag/include/endian.h000066400000000000000000000007321512120643700211570ustar00rootroot00000000000000#ifndef __ARM32_ENDIAN_H__ #define __ARM32_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __ARM32_ENDIAN_H__ */ xfel-1.3.5/payloads/h2_h3/jtag/include/h3/000077500000000000000000000000001512120643700200605ustar00rootroot00000000000000xfel-1.3.5/payloads/h2_h3/jtag/include/h3/reg-ccu.h000066400000000000000000000051251512120643700215610ustar00rootroot00000000000000#ifndef __H3_REG_CCU_H__ #define __H3_REG_CCU_H__ #define H3_CCU_BASE (0x01c20000) #define CCU_PLL_CPUX_CTRL (0x000) #define CCU_PLL_AUDIO_CTRL (0x008) #define CCU_PLL_VIDEO_CTRL (0x010) #define CCU_PLL_VE_CTRL (0x018) #define CCU_PLL_DDR_CTRL (0x020) #define CCU_PLL_PERIPH0_CTRL (0x028) #define CCU_PLL_GPU_CTRL (0x038) #define CCU_PLL_PERIPH1_CTRL (0x044) #define CCU_PLL_DE_CTRL (0x048) #define CCU_CPUX_AXI_CFG (0x050) #define CCU_AHB1_APB1_CFG (0x054) #define CCU_APB1_CFG (0x058) #define CCU_AHB2_CFG (0x05c) #define CCU_BUS_CLK_GATE0 (0x060) #define CCU_BUS_CLK_GATE1 (0x064) #define CCU_BUS_CLK_GATE2 (0x068) #define CCU_BUS_CLK_GATE3 (0x06c) #define CCU_BUS_CLK_GATE4 (0x070) #define CCU_THS_CLK (0x074) #define CCU_NAND_CLK (0x080) #define CCU_SDMMC0_CLK (0x088) #define CCU_SDMMC1_CLK (0x08c) #define CCU_SDMMC2_CLK (0x090) #define CCU_CE_CLK (0x09c) #define CCU_SPI0_CLK (0x0a0) #define CCU_SPI1_CLK (0x0a4) #define CCU_I2S0_CLK (0x0b0) #define CCU_I2S1_CLK (0x0b4) #define CCU_I2S2_CLK (0x0b8) #define CCU_OWA_CLK (0x0c0) #define CCU_USBPHY_CFG (0x0cc) #define CCU_DRAM_CFG (0x0f4) #define CCU_MBUS_RST (0x0fc) #define CCU_DRAM_CLK_GATE (0x100) #define CCU_TCON0_CLK (0x118) #define CCU_TVE_CLK (0x120) #define CCU_DEINTERLACE_CLK (0x124) #define CCU_CSI_MISC_CLK (0x130) #define CCU_CSI_CLK (0x134) #define CCU_VE_CLK (0x13c) #define CCU_AC_DIG_CLK (0x140) #define CCU_AVS_CLK (0x144) #define CCU_HDMI_CLK (0x150) #define CCU_HDMI_SLOW_CLK (0x154) #define CCU_MBUS_CLK (0x15c) #define CCU_GPU_CLK (0x1a0) #define CCU_PLL_STABLE_TIME0 (0x200) #define CCU_PLL_STABLE_TIME1 (0x204) #define CCU_PLL_CPUX_BIAS (0x220) #define CCU_PLL_AUDIO_BIAS (0x224) #define CCU_PLL_VIDEO_BIAS (0x228) #define CCU_PLL_VE_BIAS (0x22c) #define CCU_PLL_DDR_BIAS (0x230) #define CCU_PLL_PERIPH0_BIAS (0x234) #define CCU_PLL_GPU_BIAS (0x23c) #define CCU_PLL_PERIPH1_BIAS (0x244) #define CCU_PLL_DE_BIAS (0x248) #define CCU_PLL_CPUX_TUN (0x250) #define CCU_PLL_DDR_TUN (0x260) #define CCU_PLL_CPUX_PAT (0x280) #define CCU_PLL_AUDIO_PAT (0x284) #define CCU_PLL_VIDEO_PAT (0x288) #define CCU_PLL_VE_PAT (0x28c) #define CCU_PLL_DDR_PAT (0x290) #define CCU_PLL_GPU_PAT (0x29c) #define CCU_PLL_PERIPH1_PAT (0x2a4) #define CCU_PLL_DE_PAT (0x2a8) #define CCU_BUS_SOFT_RST0 (0x2c0) #define CCU_BUS_SOFT_RST1 (0x2c4) #define CCU_BUS_SOFT_RST2 (0x2c8) #define CCU_BUS_SOFT_RST3 (0x2d0) #define CCU_BUS_SOFT_RST4 (0x2d8) #define CCU_SEC_SWITCH (0x2f0) #define CCU_PS_CTRL (0x300) #define CCU_PS_CNT (0x304) #endif /* __H3_REG_CCU_H__ */ xfel-1.3.5/payloads/h2_h3/jtag/include/h3/reg-dram.h000066400000000000000000000060101512120643700217240ustar00rootroot00000000000000#ifndef __H3_REG_DRAM_H__ #define __H3_REG_DRAM_H__ #define H3_DRAM_COM_BASE (0x01c62000) #define H3_DRAM_CTL0_BASE (0x01c63000) #define H3_DRAM_CTL1_BASE (0x01c64000) #define H3_DRAM_PHY0_BASE (0x01c65000) #define H3_DRAM_PHY1_BASE (0x01c66000) #define MCTL_CR_BL8 (0x4 << 20) #define MCTL_CR_1T (0x1 << 19) #define MCTL_CR_2T (0x0 << 19) #define MCTL_CR_LPDDR3 (0x7 << 16) #define MCTL_CR_LPDDR2 (0x6 << 16) #define MCTL_CR_DDR3 (0x3 << 16) #define MCTL_CR_DDR2 (0x2 << 16) #define MCTL_CR_SEQUENTIAL (0x1 << 15) #define MCTL_CR_INTERLEAVED (0x0 << 15) #define MCTL_CR_FULL_WIDTH (0x1 << 12) #define MCTL_CR_HALF_WIDTH (0x0 << 12) #define MCTL_CR_BUS_FULL_WIDTH(x) ((x) << 12) #define MCTL_CR_PAGE_SIZE(x) ((gfls(x) - 4) << 8) #define MCTL_CR_ROW_BITS(x) (((x) - 1) << 4) #define MCTL_CR_EIGHT_BANKS (0x1 << 2) #define MCTL_CR_FOUR_BANKS (0x0 << 2) #define MCTL_CR_DUAL_RANK (0x1 << 0) #define MCTL_CR_SINGLE_RANK (0x0 << 0) #define DRAMTMG0_TWTP(x) ((x) << 24) #define DRAMTMG0_TFAW(x) ((x) << 16) #define DRAMTMG0_TRAS_MAX(x) ((x) << 8) #define DRAMTMG0_TRAS(x) ((x) << 0) #define DRAMTMG1_TXP(x) ((x) << 16) #define DRAMTMG1_TRTP(x) ((x) << 8) #define DRAMTMG1_TRC(x) ((x) << 0) #define DRAMTMG2_TCWL(x) ((x) << 24) #define DRAMTMG2_TCL(x) ((x) << 16) #define DRAMTMG2_TRD2WR(x) ((x) << 8) #define DRAMTMG2_TWR2RD(x) ((x) << 0) #define DRAMTMG3_TMRW(x) ((x) << 16) #define DRAMTMG3_TMRD(x) ((x) << 12) #define DRAMTMG3_TMOD(x) ((x) << 0) #define DRAMTMG4_TRCD(x) ((x) << 24) #define DRAMTMG4_TCCD(x) ((x) << 16) #define DRAMTMG4_TRRD(x) ((x) << 8) #define DRAMTMG4_TRP(x) ((x) << 0) #define DRAMTMG5_TCKSRX(x) ((x) << 24) #define DRAMTMG5_TCKSRE(x) ((x) << 16) #define DRAMTMG5_TCKESR(x) ((x) << 8) #define DRAMTMG5_TCKE(x) ((x) << 0) #define PTR3_TDINIT1(x) ((x) << 20) #define PTR3_TDINIT0(x) ((x) << 0) #define PTR4_TDINIT3(x) ((x) << 20) #define PTR4_TDINIT2(x) ((x) << 0) #define RFSHTMG_TREFI(x) ((x) << 16) #define RFSHTMG_TRFC(x) ((x) << 0) #define PIR_CLRSR (0x1 << 27) /* Clear status registers */ #define PIR_QSGATE (0x1 << 10) /* Read DQS gate training */ #define PIR_DRAMINIT (0x1 << 8) /* DRAM initialization */ #define PIR_DRAMRST (0x1 << 7) /* DRAM reset */ #define PIR_PHYRST (0x1 << 6) /* PHY reset */ #define PIR_DCAL (0x1 << 5) /* DDL calibration */ #define PIR_PLLINIT (0x1 << 4) /* PLL initialization */ #define PIR_ZCAL (0x1 << 1) /* ZQ calibration */ #define PIR_INIT (0x1 << 0) /* PHY initialization trigger */ #define PGSR_INIT_DONE (0x1 << 0) /* PHY init done */ #define ZQCR_PWRDOWN (0x1 << 31) /* ZQ power down */ #define DXBDLR_DQ(x) (x) /* DQ0-7 BDLR index */ #define DXBDLR_DM (8) /* DM BDLR index */ #define DXBDLR_DQS (9) /* DQS BDLR index */ #define DXBDLR_DQSN (10) /* DQSN BDLR index */ #define DXBDLR_WRITE_DELAY(x) ((x) << 8) #define DXBDLR_READ_DELAY(x) ((x) << 0) #define ACBDLR_WRITE_DELAY(x) ((x) << 8) #endif /* __H3_REG_DRAM_H__ */ xfel-1.3.5/payloads/h2_h3/jtag/include/io.h000066400000000000000000000016401512120643700203270ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/h2_h3/jtag/include/stdarg.h000066400000000000000000000010541512120643700212030ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/h2_h3/jtag/include/stddef.h000066400000000000000000000026101512120643700211670ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/h2_h3/jtag/include/stdint.h000066400000000000000000000010161512120643700212220ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/h2_h3/jtag/include/string.h000066400000000000000000000004241512120643700212250ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/h2_h3/jtag/include/types.h000066400000000000000000000021051512120643700210610ustar00rootroot00000000000000#ifndef __ARM32_TYPES_H__ #define __ARM32_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed int ptrdiff_t; typedef signed int intptr_t; typedef unsigned int uintptr_t; typedef unsigned int size_t; typedef signed int ssize_t; typedef signed int off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned int irq_flags_t; typedef unsigned int virtual_addr_t; typedef unsigned int virtual_size_t; typedef unsigned int physical_addr_t; typedef unsigned int physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __ARM32_TYPES_H__ */ xfel-1.3.5/payloads/h2_h3/jtag/include/xboot.h000066400000000000000000000004731512120643700210560ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/h2_h3/jtag/link.ld000066400000000000000000000046451512120643700174120ustar00rootroot00000000000000OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) STACK_UND_SIZE = 0x010; STACK_ABT_SIZE = 0x010; STACK_IRQ_SIZE = 0x010; STACK_FIQ_SIZE = 0x010; STACK_SRV_SIZE = 0x400; MEMORY { ram : org = 0x00008000, len = 0x00001000 /* 4 KB */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text) .obj/source/sys-jtag.o (.text) *(.text*) *(.glue*) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ARM.exidx ALIGN(8) : { PROVIDE (__exidx_start = .); *(.ARM.exidx*) PROVIDE (__exidx_end = .); } > ram .ARM.extab ALIGN(8) : { PROVIDE (__extab_start = .); *(.ARM.extab*) PROVIDE (__extab_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(8) (NOLOAD) : { PROVIDE(__stack_start = .); PROVIDE(__stack_und_start = .); . += STACK_UND_SIZE; PROVIDE(__stack_und_end = .); . = ALIGN(8); PROVIDE(__stack_abt_start = .); . += STACK_ABT_SIZE; PROVIDE(__stack_abt_end = .); . = ALIGN(8); PROVIDE(__stack_irq_start = .); . += STACK_IRQ_SIZE; PROVIDE(__stack_irq_end = .); . = ALIGN(8); PROVIDE(__stack_fiq_start = .); . += STACK_FIQ_SIZE; PROVIDE(__stack_fiq_end = .); . = ALIGN(8); PROVIDE(__stack_srv_start = .); . += STACK_SRV_SIZE; PROVIDE(__stack_srv_end = .); . = ALIGN(8); PROVIDE(__stack_end = .); } > ram .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_info 0 : { *(.debug_info) } .debug_line 0 : { *(.debug_line) } .debug_pubnames 0 : { *(.debug_pubnames) } .debug_aranges 0 : { *(.debug_aranges) } } xfel-1.3.5/payloads/h2_h3/jtag/source/000077500000000000000000000000001512120643700174235ustar00rootroot00000000000000xfel-1.3.5/payloads/h2_h3/jtag/source/start.S000066400000000000000000000033451512120643700207110ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ .global _start _start: b reset reset: ldr r0, =0x00000040 str sp, [r0, #0] str lr, [r0, #4] mrs lr, cpsr str lr, [r0, #8] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #12] mrc p15, 0, lr, c12, c0, 0 str lr, [r0, #16] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #20] bl sys_jtag_init ldr r0, =0x00000040 ldr sp, [r0, #0] ldr lr, [r0, #4] ldr r1, [r0, #20] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #16] mcr p15, 0, r1, c12, c0, 0 ldr r1, [r0, #12] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #8] msr cpsr, r1 bx lr xfel-1.3.5/payloads/h2_h3/jtag/source/sys-jtag.c000066400000000000000000000035561512120643700213410ustar00rootroot00000000000000/* * sys-jtag.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include void sys_jtag_init(void) { virtual_addr_t addr; u32_t val; /* Config GPIOF0, GPIOF1, GPIOF3 and GPIOF5 to JTAG mode */ addr = 0x0300b0b4 + 0x00; val = read32(addr); val &= ~(0xf << ((0 & 0x7) << 2)); val |= ((0x3 & 0x7) << ((0 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((1 & 0x7) << 2)); val |= ((0x3 & 0x7) << ((1 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((3 & 0x7) << 2)); val |= ((0x3 & 0x7) << ((3 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((5 & 0x7) << 2)); val |= ((0x3 & 0x7) << ((5 & 0x7) << 2)); write32(addr, val); } xfel-1.3.5/payloads/h2_h3/spi/000077500000000000000000000000001512120643700157715ustar00rootroot00000000000000xfel-1.3.5/payloads/h2_h3/spi/.gitignore000066400000000000000000000000731512120643700177610ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/h2_h3/spi/Makefile000066400000000000000000000056261512120643700174420ustar00rootroot00000000000000# # Top makefile # CROSS ?= arm-linux-gnueabihf- NAME := spi # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 CFLAGS := -g -ggdb -Wall -O3 CXXFLAGS := -g -ggdb -Wall -O3 LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -march=armv7-a -mtune=cortex-a7 -mfpu=vfpv4 -mfloat-abi=hard -marm -mno-thumb-interwork -mno-unaligned-access -fno-stack-protector LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/h2_h3/spi/include/000077500000000000000000000000001512120643700174145ustar00rootroot00000000000000xfel-1.3.5/payloads/h2_h3/spi/include/byteorder.h000066400000000000000000000043611512120643700215700ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/h2_h3/spi/include/endian.h000066400000000000000000000007321512120643700210250ustar00rootroot00000000000000#ifndef __ARM32_ENDIAN_H__ #define __ARM32_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __ARM32_ENDIAN_H__ */ xfel-1.3.5/payloads/h2_h3/spi/include/h3/000077500000000000000000000000001512120643700177265ustar00rootroot00000000000000xfel-1.3.5/payloads/h2_h3/spi/include/h3/reg-ccu.h000066400000000000000000000051251512120643700214270ustar00rootroot00000000000000#ifndef __H3_REG_CCU_H__ #define __H3_REG_CCU_H__ #define H3_CCU_BASE (0x01c20000) #define CCU_PLL_CPUX_CTRL (0x000) #define CCU_PLL_AUDIO_CTRL (0x008) #define CCU_PLL_VIDEO_CTRL (0x010) #define CCU_PLL_VE_CTRL (0x018) #define CCU_PLL_DDR_CTRL (0x020) #define CCU_PLL_PERIPH0_CTRL (0x028) #define CCU_PLL_GPU_CTRL (0x038) #define CCU_PLL_PERIPH1_CTRL (0x044) #define CCU_PLL_DE_CTRL (0x048) #define CCU_CPUX_AXI_CFG (0x050) #define CCU_AHB1_APB1_CFG (0x054) #define CCU_APB1_CFG (0x058) #define CCU_AHB2_CFG (0x05c) #define CCU_BUS_CLK_GATE0 (0x060) #define CCU_BUS_CLK_GATE1 (0x064) #define CCU_BUS_CLK_GATE2 (0x068) #define CCU_BUS_CLK_GATE3 (0x06c) #define CCU_BUS_CLK_GATE4 (0x070) #define CCU_THS_CLK (0x074) #define CCU_NAND_CLK (0x080) #define CCU_SDMMC0_CLK (0x088) #define CCU_SDMMC1_CLK (0x08c) #define CCU_SDMMC2_CLK (0x090) #define CCU_CE_CLK (0x09c) #define CCU_SPI0_CLK (0x0a0) #define CCU_SPI1_CLK (0x0a4) #define CCU_I2S0_CLK (0x0b0) #define CCU_I2S1_CLK (0x0b4) #define CCU_I2S2_CLK (0x0b8) #define CCU_OWA_CLK (0x0c0) #define CCU_USBPHY_CFG (0x0cc) #define CCU_DRAM_CFG (0x0f4) #define CCU_MBUS_RST (0x0fc) #define CCU_DRAM_CLK_GATE (0x100) #define CCU_TCON0_CLK (0x118) #define CCU_TVE_CLK (0x120) #define CCU_DEINTERLACE_CLK (0x124) #define CCU_CSI_MISC_CLK (0x130) #define CCU_CSI_CLK (0x134) #define CCU_VE_CLK (0x13c) #define CCU_AC_DIG_CLK (0x140) #define CCU_AVS_CLK (0x144) #define CCU_HDMI_CLK (0x150) #define CCU_HDMI_SLOW_CLK (0x154) #define CCU_MBUS_CLK (0x15c) #define CCU_GPU_CLK (0x1a0) #define CCU_PLL_STABLE_TIME0 (0x200) #define CCU_PLL_STABLE_TIME1 (0x204) #define CCU_PLL_CPUX_BIAS (0x220) #define CCU_PLL_AUDIO_BIAS (0x224) #define CCU_PLL_VIDEO_BIAS (0x228) #define CCU_PLL_VE_BIAS (0x22c) #define CCU_PLL_DDR_BIAS (0x230) #define CCU_PLL_PERIPH0_BIAS (0x234) #define CCU_PLL_GPU_BIAS (0x23c) #define CCU_PLL_PERIPH1_BIAS (0x244) #define CCU_PLL_DE_BIAS (0x248) #define CCU_PLL_CPUX_TUN (0x250) #define CCU_PLL_DDR_TUN (0x260) #define CCU_PLL_CPUX_PAT (0x280) #define CCU_PLL_AUDIO_PAT (0x284) #define CCU_PLL_VIDEO_PAT (0x288) #define CCU_PLL_VE_PAT (0x28c) #define CCU_PLL_DDR_PAT (0x290) #define CCU_PLL_GPU_PAT (0x29c) #define CCU_PLL_PERIPH1_PAT (0x2a4) #define CCU_PLL_DE_PAT (0x2a8) #define CCU_BUS_SOFT_RST0 (0x2c0) #define CCU_BUS_SOFT_RST1 (0x2c4) #define CCU_BUS_SOFT_RST2 (0x2c8) #define CCU_BUS_SOFT_RST3 (0x2d0) #define CCU_BUS_SOFT_RST4 (0x2d8) #define CCU_SEC_SWITCH (0x2f0) #define CCU_PS_CTRL (0x300) #define CCU_PS_CNT (0x304) #endif /* __H3_REG_CCU_H__ */ xfel-1.3.5/payloads/h2_h3/spi/include/h3/reg-dram.h000066400000000000000000000060101512120643700215720ustar00rootroot00000000000000#ifndef __H3_REG_DRAM_H__ #define __H3_REG_DRAM_H__ #define H3_DRAM_COM_BASE (0x01c62000) #define H3_DRAM_CTL0_BASE (0x01c63000) #define H3_DRAM_CTL1_BASE (0x01c64000) #define H3_DRAM_PHY0_BASE (0x01c65000) #define H3_DRAM_PHY1_BASE (0x01c66000) #define MCTL_CR_BL8 (0x4 << 20) #define MCTL_CR_1T (0x1 << 19) #define MCTL_CR_2T (0x0 << 19) #define MCTL_CR_LPDDR3 (0x7 << 16) #define MCTL_CR_LPDDR2 (0x6 << 16) #define MCTL_CR_DDR3 (0x3 << 16) #define MCTL_CR_DDR2 (0x2 << 16) #define MCTL_CR_SEQUENTIAL (0x1 << 15) #define MCTL_CR_INTERLEAVED (0x0 << 15) #define MCTL_CR_FULL_WIDTH (0x1 << 12) #define MCTL_CR_HALF_WIDTH (0x0 << 12) #define MCTL_CR_BUS_FULL_WIDTH(x) ((x) << 12) #define MCTL_CR_PAGE_SIZE(x) ((gfls(x) - 4) << 8) #define MCTL_CR_ROW_BITS(x) (((x) - 1) << 4) #define MCTL_CR_EIGHT_BANKS (0x1 << 2) #define MCTL_CR_FOUR_BANKS (0x0 << 2) #define MCTL_CR_DUAL_RANK (0x1 << 0) #define MCTL_CR_SINGLE_RANK (0x0 << 0) #define DRAMTMG0_TWTP(x) ((x) << 24) #define DRAMTMG0_TFAW(x) ((x) << 16) #define DRAMTMG0_TRAS_MAX(x) ((x) << 8) #define DRAMTMG0_TRAS(x) ((x) << 0) #define DRAMTMG1_TXP(x) ((x) << 16) #define DRAMTMG1_TRTP(x) ((x) << 8) #define DRAMTMG1_TRC(x) ((x) << 0) #define DRAMTMG2_TCWL(x) ((x) << 24) #define DRAMTMG2_TCL(x) ((x) << 16) #define DRAMTMG2_TRD2WR(x) ((x) << 8) #define DRAMTMG2_TWR2RD(x) ((x) << 0) #define DRAMTMG3_TMRW(x) ((x) << 16) #define DRAMTMG3_TMRD(x) ((x) << 12) #define DRAMTMG3_TMOD(x) ((x) << 0) #define DRAMTMG4_TRCD(x) ((x) << 24) #define DRAMTMG4_TCCD(x) ((x) << 16) #define DRAMTMG4_TRRD(x) ((x) << 8) #define DRAMTMG4_TRP(x) ((x) << 0) #define DRAMTMG5_TCKSRX(x) ((x) << 24) #define DRAMTMG5_TCKSRE(x) ((x) << 16) #define DRAMTMG5_TCKESR(x) ((x) << 8) #define DRAMTMG5_TCKE(x) ((x) << 0) #define PTR3_TDINIT1(x) ((x) << 20) #define PTR3_TDINIT0(x) ((x) << 0) #define PTR4_TDINIT3(x) ((x) << 20) #define PTR4_TDINIT2(x) ((x) << 0) #define RFSHTMG_TREFI(x) ((x) << 16) #define RFSHTMG_TRFC(x) ((x) << 0) #define PIR_CLRSR (0x1 << 27) /* Clear status registers */ #define PIR_QSGATE (0x1 << 10) /* Read DQS gate training */ #define PIR_DRAMINIT (0x1 << 8) /* DRAM initialization */ #define PIR_DRAMRST (0x1 << 7) /* DRAM reset */ #define PIR_PHYRST (0x1 << 6) /* PHY reset */ #define PIR_DCAL (0x1 << 5) /* DDL calibration */ #define PIR_PLLINIT (0x1 << 4) /* PLL initialization */ #define PIR_ZCAL (0x1 << 1) /* ZQ calibration */ #define PIR_INIT (0x1 << 0) /* PHY initialization trigger */ #define PGSR_INIT_DONE (0x1 << 0) /* PHY init done */ #define ZQCR_PWRDOWN (0x1 << 31) /* ZQ power down */ #define DXBDLR_DQ(x) (x) /* DQ0-7 BDLR index */ #define DXBDLR_DM (8) /* DM BDLR index */ #define DXBDLR_DQS (9) /* DQS BDLR index */ #define DXBDLR_DQSN (10) /* DQSN BDLR index */ #define DXBDLR_WRITE_DELAY(x) ((x) << 8) #define DXBDLR_READ_DELAY(x) ((x) << 0) #define ACBDLR_WRITE_DELAY(x) ((x) << 8) #endif /* __H3_REG_DRAM_H__ */ xfel-1.3.5/payloads/h2_h3/spi/include/io.h000066400000000000000000000016401512120643700201750ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/h2_h3/spi/include/stdarg.h000066400000000000000000000010541512120643700210510ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/h2_h3/spi/include/stddef.h000066400000000000000000000026101512120643700210350ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/h2_h3/spi/include/stdint.h000066400000000000000000000010161512120643700210700ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/h2_h3/spi/include/string.h000066400000000000000000000004241512120643700210730ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/h2_h3/spi/include/types.h000066400000000000000000000021051512120643700207270ustar00rootroot00000000000000#ifndef __ARM32_TYPES_H__ #define __ARM32_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed int ptrdiff_t; typedef signed int intptr_t; typedef unsigned int uintptr_t; typedef unsigned int size_t; typedef signed int ssize_t; typedef signed int off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned int irq_flags_t; typedef unsigned int virtual_addr_t; typedef unsigned int virtual_size_t; typedef unsigned int physical_addr_t; typedef unsigned int physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __ARM32_TYPES_H__ */ xfel-1.3.5/payloads/h2_h3/spi/include/xboot.h000066400000000000000000000004731512120643700207240ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/h2_h3/spi/link.ld000066400000000000000000000046441512120643700172570ustar00rootroot00000000000000OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) STACK_UND_SIZE = 0x010; STACK_ABT_SIZE = 0x010; STACK_IRQ_SIZE = 0x010; STACK_FIQ_SIZE = 0x010; STACK_SRV_SIZE = 0x400; MEMORY { ram : org = 0x00008000, len = 0x00001000 /* 4 KB */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text) .obj/source/sys-spi.o (.text) *(.text*) *(.glue*) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ARM.exidx ALIGN(8) : { PROVIDE (__exidx_start = .); *(.ARM.exidx*) PROVIDE (__exidx_end = .); } > ram .ARM.extab ALIGN(8) : { PROVIDE (__extab_start = .); *(.ARM.extab*) PROVIDE (__extab_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(8) (NOLOAD) : { PROVIDE(__stack_start = .); PROVIDE(__stack_und_start = .); . += STACK_UND_SIZE; PROVIDE(__stack_und_end = .); . = ALIGN(8); PROVIDE(__stack_abt_start = .); . += STACK_ABT_SIZE; PROVIDE(__stack_abt_end = .); . = ALIGN(8); PROVIDE(__stack_irq_start = .); . += STACK_IRQ_SIZE; PROVIDE(__stack_irq_end = .); . = ALIGN(8); PROVIDE(__stack_fiq_start = .); . += STACK_FIQ_SIZE; PROVIDE(__stack_fiq_end = .); . = ALIGN(8); PROVIDE(__stack_srv_start = .); . += STACK_SRV_SIZE; PROVIDE(__stack_srv_end = .); . = ALIGN(8); PROVIDE(__stack_end = .); } > ram .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_info 0 : { *(.debug_info) } .debug_line 0 : { *(.debug_line) } .debug_pubnames 0 : { *(.debug_pubnames) } .debug_aranges 0 : { *(.debug_aranges) } } xfel-1.3.5/payloads/h2_h3/spi/source/000077500000000000000000000000001512120643700172715ustar00rootroot00000000000000xfel-1.3.5/payloads/h2_h3/spi/source/start.S000066400000000000000000000033671512120643700205630ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ .global _start _start: b reset reset: ldr r0, =0x00000040 str sp, [r0, #0] str lr, [r0, #4] mrs lr, cpsr str lr, [r0, #8] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #12] mrc p15, 0, lr, c12, c0, 0 str lr, [r0, #16] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #20] ldr r0, =0x00009000 bl sys_spi_run ldr r0, =0x00000040 ldr sp, [r0, #0] ldr lr, [r0, #4] ldr r1, [r0, #20] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #16] mcr p15, 0, r1, c12, c0, 0 ldr r1, [r0, #12] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #8] msr cpsr, r1 bx lr xfel-1.3.5/payloads/h2_h3/spi/source/sys-spi.c000066400000000000000000000143401512120643700210460ustar00rootroot00000000000000/* * sys-spi.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include enum { SPI_GCR = 0x04, SPI_TCR = 0x08, SPI_IER = 0x10, SPI_ISR = 0x14, SPI_FCR = 0x18, SPI_FSR = 0x1c, SPI_WCR = 0x20, SPI_CCR = 0x24, SPI_MBC = 0x30, SPI_MTC = 0x34, SPI_BCC = 0x38, SPI_TXD = 0x200, SPI_RXD = 0x300, }; static void sys_spi_init(void) { virtual_addr_t addr; u32_t val; /* Config GPIOC0, GPIOC1, GPIOC2 and GPIOC3 */ addr = 0x01c20848 + 0x00; val = read32(addr); val &= ~(0xf << ((0 & 0x7) << 2)); val |= ((0x3 & 0x7) << ((0 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((1 & 0x7) << 2)); val |= ((0x3 & 0x7) << ((1 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((2 & 0x7) << 2)); val |= ((0x3 & 0x7) << ((2 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((3 & 0x7) << 2)); val |= ((0x3 & 0x7) << ((3 & 0x7) << 2)); write32(addr, val); /* Deassert spi0 reset */ addr = 0x01c202c0; val = read32(addr); val |= (1 << 20); write32(addr, val); /* Open the spi0 gate */ addr = 0x01c20000 + 0xa0; val = read32(addr); val |= (1 << 31); write32(addr, val); /* Open the spi0 bus gate */ addr = 0x01c20000 + 0x60; val = read32(addr); val |= (1 << 20); write32(addr, val); /* Select pll-periph0 for spi0 clk */ addr = 0x01c200a0; val = read32(addr); val &= ~(0x3 << 24); val |= 0x1 << 24; write32(addr, val); /* Set clock pre divide ratio, divided by 1 */ addr = 0x01c200a0; val = read32(addr); val &= ~(0x3 << 16); val |= 0x0 << 16; write32(addr, val); /* Set clock divide ratio, divided by 6 */ addr = 0x01c200a0; val = read32(addr); val &= ~(0xf << 0); val |= (6 - 1) << 0; write32(addr, val); /* Set spi clock rate control register, divided by 2 */ addr = 0x01c68000; write32(addr + SPI_CCR, 0x1000); /* Enable spi0 and do a soft reset */ addr = 0x01c68000; val = read32(addr + SPI_GCR); val |= (1 << 31) | (1 << 7) | (1 << 1) | (1 << 0); write32(addr + SPI_GCR, val); while(read32(addr + SPI_GCR) & (1 << 31)); val = read32(addr + SPI_TCR); val &= ~(0x3 << 0); val |= (1 << 6) | (1 << 2); write32(addr + SPI_TCR, val); val = read32(addr + SPI_FCR); val |= (1 << 31) | (1 << 15); write32(addr + SPI_FCR, val); } static void sys_spi_select(void) { virtual_addr_t addr = 0x01c68000; u32_t val; val = read32(addr + SPI_TCR); val &= ~((0x3 << 4) | (0x1 << 7)); val |= ((0 & 0x3) << 4) | (0x0 << 7); write32(addr + SPI_TCR, val); } static void sys_spi_deselect(void) { virtual_addr_t addr = 0x01c68000; u32_t val; val = read32(addr + SPI_TCR); val &= ~((0x3 << 4) | (0x1 << 7)); val |= ((0 & 0x3) << 4) | (0x1 << 7); write32(addr + SPI_TCR, val); } static inline void sys_spi_write_txbuf(u8_t * buf, int len) { virtual_addr_t addr = 0x01c68000; int i; write32(addr + SPI_MTC, len & 0xffffff); write32(addr + SPI_BCC, len & 0xffffff); if(buf) { for(i = 0; i < len; i++) write8(addr + SPI_TXD, *buf++); } else { for(i = 0; i < len; i++) write8(addr + SPI_TXD, 0xff); } } static void sys_spi_transfer(void * txbuf, void * rxbuf, u32_t len) { virtual_addr_t addr = 0x01c68000; u8_t * tx = txbuf; u8_t * rx = rxbuf; u8_t val; int n, i; while(len > 0) { n = (len <= 64) ? len : 64; write32(addr + SPI_MBC, n); sys_spi_write_txbuf(tx, n); write32(addr + SPI_TCR, read32(addr + SPI_TCR) | (1 << 31)); while(read32(addr + SPI_TCR) & (1 << 31)); while((read32(addr + SPI_FSR) & 0xff) < n); for(i = 0; i < n; i++) { val = read8(addr + SPI_RXD); if(rx) *rx++ = val; } if(tx) tx += n; len -= n; } } enum { SPI_CMD_END = 0x00, SPI_CMD_INIT = 0x01, SPI_CMD_SELECT = 0x02, SPI_CMD_DESELECT = 0x03, SPI_CMD_FAST = 0x04, SPI_CMD_TXBUF = 0x05, SPI_CMD_RXBUF = 0x06, SPI_CMD_SPINOR_WAIT = 0x07, SPI_CMD_SPINAND_WAIT = 0x08, }; void sys_spi_run(void * cbuf) { uint8_t tx[8], rx[8]; u8_t c, * p = cbuf; u32_t addr, len; while(1) { c = *p++; if(c == SPI_CMD_INIT) { sys_spi_init(); } else if(c == SPI_CMD_SELECT) { sys_spi_select(); } else if(c == SPI_CMD_DESELECT) { sys_spi_deselect(); } else if(c == SPI_CMD_FAST) { len = p[0]; sys_spi_transfer((void *)&p[1], NULL, len); p += (len + 1); } else if(c == SPI_CMD_TXBUF) { addr = (p[0] << 0) | (p[1] << 8) | (p[2] << 16) | (p[3] << 24); len = (p[4] << 0) | (p[5] << 8) | (p[6] << 16) | (p[7] << 24); sys_spi_transfer((void *)addr, NULL, len); p += 8; } else if(c == SPI_CMD_RXBUF) { addr = (p[0] << 0) | (p[1] << 8) | (p[2] << 16) | (p[3] << 24); len = (p[4] << 0) | (p[5] << 8) | (p[6] << 16) | (p[7] << 24); sys_spi_transfer(NULL, (void *)addr, len); p += 8; } else if(c == SPI_CMD_SPINOR_WAIT) { tx[0] = 0x05; do { sys_spi_transfer((void *)&tx[0], NULL, 1); sys_spi_transfer(NULL, (void *)&rx[0], 1); } while((rx[0] & 0x1) == 0x1); } else if(c == SPI_CMD_SPINAND_WAIT) { tx[0] = 0x0f; tx[1] = 0xc0; do { sys_spi_transfer((void *)&tx[0], NULL, 2); sys_spi_transfer(NULL, (void *)&rx[0], 1); } while((rx[0] & 0x1) == 0x1); } else { return; } } } xfel-1.3.5/payloads/r128/000077500000000000000000000000001512120643700147675ustar00rootroot00000000000000xfel-1.3.5/payloads/r128/read32/000077500000000000000000000000001512120643700160475ustar00rootroot00000000000000xfel-1.3.5/payloads/r128/read32/.gitignore000066400000000000000000000000731512120643700200370ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/r128/read32/Makefile000066400000000000000000000056011512120643700175110ustar00rootroot00000000000000# # Top makefile # CROSS ?= arm-none-eabi- NAME := read32 # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 -ffreestanding CFLAGS := -g -ggdb -Wall -O3 -ffreestanding CXXFLAGS := -g -ggdb -Wall -O3 LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -mthumb -mcpu=cortex-m33 -mfpu=fpv5-d16 -mno-unaligned-access -fno-stack-protector LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/r128/read32/include/000077500000000000000000000000001512120643700174725ustar00rootroot00000000000000xfel-1.3.5/payloads/r128/read32/include/byteorder.h000066400000000000000000000043611512120643700216460ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/r128/read32/include/endian.h000066400000000000000000000007321512120643700211030ustar00rootroot00000000000000#ifndef __ARM32_ENDIAN_H__ #define __ARM32_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __ARM32_ENDIAN_H__ */ xfel-1.3.5/payloads/r128/read32/include/io.h000066400000000000000000000016401512120643700202530ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/r128/read32/include/stdarg.h000066400000000000000000000010541512120643700211270ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/r128/read32/include/stddef.h000066400000000000000000000026101512120643700211130ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/r128/read32/include/stdint.h000066400000000000000000000010161512120643700211460ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/r128/read32/include/string.h000066400000000000000000000004241512120643700211510ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/r128/read32/include/types.h000066400000000000000000000021051512120643700210050ustar00rootroot00000000000000#ifndef __ARM32_TYPES_H__ #define __ARM32_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed int ptrdiff_t; typedef signed int intptr_t; typedef unsigned int uintptr_t; typedef unsigned int size_t; typedef signed int ssize_t; typedef signed int off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned int irq_flags_t; typedef unsigned int virtual_addr_t; typedef unsigned int virtual_size_t; typedef unsigned int physical_addr_t; typedef unsigned int physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __ARM32_TYPES_H__ */ xfel-1.3.5/payloads/r128/read32/include/xboot.h000066400000000000000000000004731512120643700210020ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/r128/read32/link.ld000066400000000000000000000046041512120643700173310ustar00rootroot00000000000000OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) STACK_UND_SIZE = 0x010; STACK_ABT_SIZE = 0x010; STACK_IRQ_SIZE = 0x010; STACK_FIQ_SIZE = 0x010; STACK_SRV_SIZE = 0x010; MEMORY { ram : org = 0x04009400, len = 0x00000200 /* 512B */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text) *(.text*) *(.glue*) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ARM.exidx ALIGN(8) : { PROVIDE (__exidx_start = .); *(.ARM.exidx*) PROVIDE (__exidx_end = .); } > ram .ARM.extab ALIGN(8) : { PROVIDE (__extab_start = .); *(.ARM.extab*) PROVIDE (__extab_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(8) (NOLOAD) : { PROVIDE(__stack_start = .); PROVIDE(__stack_und_start = .); . += STACK_UND_SIZE; PROVIDE(__stack_und_end = .); . = ALIGN(8); PROVIDE(__stack_abt_start = .); . += STACK_ABT_SIZE; PROVIDE(__stack_abt_end = .); . = ALIGN(8); PROVIDE(__stack_irq_start = .); . += STACK_IRQ_SIZE; PROVIDE(__stack_irq_end = .); . = ALIGN(8); PROVIDE(__stack_fiq_start = .); . += STACK_FIQ_SIZE; PROVIDE(__stack_fiq_end = .); . = ALIGN(8); PROVIDE(__stack_srv_start = .); . += STACK_SRV_SIZE; PROVIDE(__stack_srv_end = .); . = ALIGN(8); PROVIDE(__stack_end = .); } > ram .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_info 0 : { *(.debug_info) } .debug_line 0 : { *(.debug_line) } .debug_pubnames 0 : { *(.debug_pubnames) } .debug_aranges 0 : { *(.debug_aranges) } } xfel-1.3.5/payloads/r128/read32/source/000077500000000000000000000000001512120643700173475ustar00rootroot00000000000000xfel-1.3.5/payloads/r128/read32/source/start.S000066400000000000000000000030271512120643700206320ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ .syntax unified .global _start _start: dsb.w sy isb.w sy ldr.w r0, _iciallu mov.w r1, #0x0 str.w r1, [r0] dsb.w sy isb.w sy b.w reset .align 2 _iciallu: .word 0xe000ef50 reset: ldr.w r0, _adr adr.w r1, _val ldr.w r2, [r0] str.w r2, [r1] bx lr .align 2 _adr: .word 0x11223344 _val: .word 0x55667788 xfel-1.3.5/payloads/r128/spi/000077500000000000000000000000001512120643700155625ustar00rootroot00000000000000xfel-1.3.5/payloads/r128/spi/.gitignore000066400000000000000000000000731512120643700175520ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/r128/spi/Makefile000066400000000000000000000055761512120643700172370ustar00rootroot00000000000000# # Top makefile # CROSS ?= arm-none-eabi- NAME := spi # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 -ffreestanding CFLAGS := -g -ggdb -Wall -O3 -ffreestanding CXXFLAGS := -g -ggdb -Wall -O3 LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -mthumb -mcpu=cortex-m33 -mfpu=fpv5-d16 -mno-unaligned-access -fno-stack-protector LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/r128/spi/include/000077500000000000000000000000001512120643700172055ustar00rootroot00000000000000xfel-1.3.5/payloads/r128/spi/include/byteorder.h000066400000000000000000000043611512120643700213610ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/r128/spi/include/endian.h000066400000000000000000000007321512120643700206160ustar00rootroot00000000000000#ifndef __ARM32_ENDIAN_H__ #define __ARM32_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __ARM32_ENDIAN_H__ */ xfel-1.3.5/payloads/r128/spi/include/io.h000066400000000000000000000016401512120643700177660ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/r128/spi/include/stdarg.h000066400000000000000000000010541512120643700206420ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/r128/spi/include/stddef.h000066400000000000000000000026101512120643700206260ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/r128/spi/include/stdint.h000066400000000000000000000010161512120643700206610ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/r128/spi/include/string.h000066400000000000000000000004241512120643700206640ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/r128/spi/include/types.h000066400000000000000000000021051512120643700205200ustar00rootroot00000000000000#ifndef __ARM32_TYPES_H__ #define __ARM32_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed int ptrdiff_t; typedef signed int intptr_t; typedef unsigned int uintptr_t; typedef unsigned int size_t; typedef signed int ssize_t; typedef signed int off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned int irq_flags_t; typedef unsigned int virtual_addr_t; typedef unsigned int virtual_size_t; typedef unsigned int physical_addr_t; typedef unsigned int physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __ARM32_TYPES_H__ */ xfel-1.3.5/payloads/r128/spi/include/xboot.h000066400000000000000000000004731512120643700205150ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/r128/spi/link.ld000066400000000000000000000046441512120643700170500ustar00rootroot00000000000000OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) STACK_UND_SIZE = 0x010; STACK_ABT_SIZE = 0x010; STACK_IRQ_SIZE = 0x010; STACK_FIQ_SIZE = 0x010; STACK_SRV_SIZE = 0x400; MEMORY { ram : org = 0x040b0000, len = 0x00001000 /* 4 KB */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text) .obj/source/sys-spi.o (.text) *(.text*) *(.glue*) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ARM.exidx ALIGN(8) : { PROVIDE (__exidx_start = .); *(.ARM.exidx*) PROVIDE (__exidx_end = .); } > ram .ARM.extab ALIGN(8) : { PROVIDE (__extab_start = .); *(.ARM.extab*) PROVIDE (__extab_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(8) (NOLOAD) : { PROVIDE(__stack_start = .); PROVIDE(__stack_und_start = .); . += STACK_UND_SIZE; PROVIDE(__stack_und_end = .); . = ALIGN(8); PROVIDE(__stack_abt_start = .); . += STACK_ABT_SIZE; PROVIDE(__stack_abt_end = .); . = ALIGN(8); PROVIDE(__stack_irq_start = .); . += STACK_IRQ_SIZE; PROVIDE(__stack_irq_end = .); . = ALIGN(8); PROVIDE(__stack_fiq_start = .); . += STACK_FIQ_SIZE; PROVIDE(__stack_fiq_end = .); . = ALIGN(8); PROVIDE(__stack_srv_start = .); . += STACK_SRV_SIZE; PROVIDE(__stack_srv_end = .); . = ALIGN(8); PROVIDE(__stack_end = .); } > ram .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_info 0 : { *(.debug_info) } .debug_line 0 : { *(.debug_line) } .debug_pubnames 0 : { *(.debug_pubnames) } .debug_aranges 0 : { *(.debug_aranges) } } xfel-1.3.5/payloads/r128/spi/source/000077500000000000000000000000001512120643700170625ustar00rootroot00000000000000xfel-1.3.5/payloads/r128/spi/source/start.S000066400000000000000000000027431512120643700203510ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ .syntax unified .global _start _start: dsb.w sy isb.w sy ldr.w r0, _iciallu mov.w r1, #0x0 str.w r1, [r0] dsb.w sy isb.w sy b.w reset .align 2 _iciallu: .word 0xe000ef50 reset: push.w { lr } ldr.w r0, =0x040b1000 bl.w sys_spi_run pop.w { lr } bx lr xfel-1.3.5/payloads/r128/spi/source/sys-spi.c000066400000000000000000000147671512120643700206540ustar00rootroot00000000000000/* * sys-spi.c * * Copyright(c) 2007-2023 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include enum { SPI_GCR = 0x04, SPI_TCR = 0x08, SPI_IER = 0x10, SPI_ISR = 0x14, SPI_FCR = 0x18, SPI_FSR = 0x1c, SPI_WCR = 0x20, SPI_CCR = 0x24, SPI_MBC = 0x30, SPI_MTC = 0x34, SPI_BCC = 0x38, SPI_TXD = 0x200, SPI_RXD = 0x300, }; static void sys_spi_init(void) { virtual_addr_t addr; u32_t val; /* Config GPIOB8, GPIOB9, GPIOB10, GPIOB11, GPIOB12 and GPIOB13 */ addr = 0x4004a424 + 0x04; val = read32(addr); val &= ~(0xf << ((0 & 0x7) << 2)); val |= ((0x3 & 0xf) << ((0 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((1 & 0x7) << 2)); val |= ((0x3 & 0xf) << ((1 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((2 & 0x7) << 2)); val |= ((0x3 & 0xf) << ((2 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((3 & 0x7) << 2)); val |= ((0x3 & 0xf) << ((3 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((4 & 0x7) << 2)); val |= ((0x3 & 0xf) << ((4 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((5 & 0x7) << 2)); val |= ((0x3 & 0xf) << ((5 & 0x7) << 2)); write32(addr, val); /* Deassert spi0 reset */ addr = 0x4003c00c; val = read32(addr); val |= (1 << 0); write32(addr, val); /* Open the spi0 bus gate */ addr = 0x4003c004; val = read32(addr); val |= (1 << 0); write32(addr, val); /* Open the spi0 gate */ addr = 0x4003c020; val = read32(addr); val |= (1 << 31); write32(addr, val); /* Select CLK_HOSC for spi0 clk */ addr = 0x4003c020; val = read32(addr); val &= ~(0x3 << 24); val |= 0x0 << 24; write32(addr, val); /* Set clock pre divide ratio, divided by 1 */ addr = 0x4003c020; val = read32(addr); val &= ~(0x3 << 16); val |= 0x0 << 16; write32(addr, val); /* Set clock divide ratio, divided by 1 */ addr = 0x4003c020; val = read32(addr); val &= ~(0xf << 0); val |= (1 - 1) << 0; write32(addr, val); /* Set spi clock rate control register, divided by 2 */ addr = 0x40009000; write32(addr + SPI_CCR, 0x1000); /* Enable spi0 and do a soft reset */ addr = 0x40009000; val = read32(addr + SPI_GCR); val |= (1 << 31) | (1 << 7) | (1 << 1) | (1 << 0); write32(addr + SPI_GCR, val); while(read32(addr + SPI_GCR) & (1 << 31)); val = read32(addr + SPI_TCR); val &= ~(0x3 << 0); val |= (1 << 6) | (1 << 2); write32(addr + SPI_TCR, val); val = read32(addr + SPI_FCR); val |= (1 << 31) | (1 << 15); write32(addr + SPI_FCR, val); } static void sys_spi_select(void) { virtual_addr_t addr = 0x40009000; u32_t val; val = read32(addr + SPI_TCR); val &= ~((0x3 << 4) | (0x1 << 7)); val |= ((0 & 0x3) << 4) | (0x0 << 7); write32(addr + SPI_TCR, val); } static void sys_spi_deselect(void) { virtual_addr_t addr = 0x40009000; u32_t val; val = read32(addr + SPI_TCR); val &= ~((0x3 << 4) | (0x1 << 7)); val |= ((0 & 0x3) << 4) | (0x1 << 7); write32(addr + SPI_TCR, val); } static inline void sys_spi_write_txbuf(u8_t * buf, int len) { virtual_addr_t addr = 0x40009000; int i; write32(addr + SPI_MTC, len & 0xffffff); write32(addr + SPI_BCC, len & 0xffffff); if(buf) { for(i = 0; i < len; i++) write8(addr + SPI_TXD, *buf++); } else { for(i = 0; i < len; i++) write8(addr + SPI_TXD, 0xff); } } static void sys_spi_transfer(void * txbuf, void * rxbuf, u32_t len) { virtual_addr_t addr = 0x40009000; u8_t * tx = txbuf; u8_t * rx = rxbuf; u8_t val; int n, i; while(len > 0) { n = (len <= 64) ? len : 64; write32(addr + SPI_MBC, n); sys_spi_write_txbuf(tx, n); write32(addr + SPI_TCR, read32(addr + SPI_TCR) | (1 << 31)); while(read32(addr + SPI_TCR) & (1 << 31)); while((read32(addr + SPI_FSR) & 0xff) < n); for(i = 0; i < n; i++) { val = read8(addr + SPI_RXD); if(rx) *rx++ = val; } if(tx) tx += n; len -= n; } } enum { SPI_CMD_END = 0x00, SPI_CMD_INIT = 0x01, SPI_CMD_SELECT = 0x02, SPI_CMD_DESELECT = 0x03, SPI_CMD_FAST = 0x04, SPI_CMD_TXBUF = 0x05, SPI_CMD_RXBUF = 0x06, SPI_CMD_SPINOR_WAIT = 0x07, SPI_CMD_SPINAND_WAIT = 0x08, }; void sys_spi_run(void * cbuf) { uint8_t tx[8], rx[8]; u8_t c, * p = cbuf; u32_t addr, len; while(1) { c = *p++; if(c == SPI_CMD_INIT) { sys_spi_init(); } else if(c == SPI_CMD_SELECT) { sys_spi_select(); } else if(c == SPI_CMD_DESELECT) { sys_spi_deselect(); } else if(c == SPI_CMD_FAST) { len = p[0]; sys_spi_transfer((void *)&p[1], NULL, len); p += (len + 1); } else if(c == SPI_CMD_TXBUF) { addr = (p[0] << 0) | (p[1] << 8) | (p[2] << 16) | (p[3] << 24); len = (p[4] << 0) | (p[5] << 8) | (p[6] << 16) | (p[7] << 24); sys_spi_transfer((void *)((unsigned long)addr), NULL, len); p += 8; } else if(c == SPI_CMD_RXBUF) { addr = (p[0] << 0) | (p[1] << 8) | (p[2] << 16) | (p[3] << 24); len = (p[4] << 0) | (p[5] << 8) | (p[6] << 16) | (p[7] << 24); sys_spi_transfer(NULL, (void *)((unsigned long)addr), len); p += 8; } else if(c == SPI_CMD_SPINOR_WAIT) { tx[0] = 0x05; do { sys_spi_transfer((void *)&tx[0], NULL, 1); sys_spi_transfer(NULL, (void *)&rx[0], 1); } while((rx[0] & 0x1) == 0x1); } else if(c == SPI_CMD_SPINAND_WAIT) { tx[0] = 0x0f; tx[1] = 0xc0; do { sys_spi_transfer((void *)&tx[0], NULL, 2); sys_spi_transfer(NULL, (void *)&rx[0], 1); } while((rx[0] & 0x1) == 0x1); } else { return; } } } xfel-1.3.5/payloads/r128/write32/000077500000000000000000000000001512120643700162665ustar00rootroot00000000000000xfel-1.3.5/payloads/r128/write32/.gitignore000066400000000000000000000000731512120643700202560ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/r128/write32/Makefile000066400000000000000000000056021512120643700177310ustar00rootroot00000000000000# # Top makefile # CROSS ?= arm-none-eabi- NAME := write32 # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 -ffreestanding CFLAGS := -g -ggdb -Wall -O3 -ffreestanding CXXFLAGS := -g -ggdb -Wall -O3 LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -mthumb -mcpu=cortex-m33 -mfpu=fpv5-d16 -mno-unaligned-access -fno-stack-protector LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/r128/write32/include/000077500000000000000000000000001512120643700177115ustar00rootroot00000000000000xfel-1.3.5/payloads/r128/write32/include/byteorder.h000066400000000000000000000043611512120643700220650ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/r128/write32/include/endian.h000066400000000000000000000007321512120643700213220ustar00rootroot00000000000000#ifndef __ARM32_ENDIAN_H__ #define __ARM32_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __ARM32_ENDIAN_H__ */ xfel-1.3.5/payloads/r128/write32/include/io.h000066400000000000000000000016401512120643700204720ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/r128/write32/include/stdarg.h000066400000000000000000000010541512120643700213460ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/r128/write32/include/stddef.h000066400000000000000000000026101512120643700213320ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/r128/write32/include/stdint.h000066400000000000000000000010161512120643700213650ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/r128/write32/include/string.h000066400000000000000000000004241512120643700213700ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/r128/write32/include/types.h000066400000000000000000000021051512120643700212240ustar00rootroot00000000000000#ifndef __ARM32_TYPES_H__ #define __ARM32_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed int ptrdiff_t; typedef signed int intptr_t; typedef unsigned int uintptr_t; typedef unsigned int size_t; typedef signed int ssize_t; typedef signed int off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned int irq_flags_t; typedef unsigned int virtual_addr_t; typedef unsigned int virtual_size_t; typedef unsigned int physical_addr_t; typedef unsigned int physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __ARM32_TYPES_H__ */ xfel-1.3.5/payloads/r128/write32/include/xboot.h000066400000000000000000000004731512120643700212210ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/r128/write32/link.ld000066400000000000000000000046041512120643700175500ustar00rootroot00000000000000OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) STACK_UND_SIZE = 0x010; STACK_ABT_SIZE = 0x010; STACK_IRQ_SIZE = 0x010; STACK_FIQ_SIZE = 0x010; STACK_SRV_SIZE = 0x010; MEMORY { ram : org = 0x04009400, len = 0x00000200 /* 512B */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text) *(.text*) *(.glue*) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ARM.exidx ALIGN(8) : { PROVIDE (__exidx_start = .); *(.ARM.exidx*) PROVIDE (__exidx_end = .); } > ram .ARM.extab ALIGN(8) : { PROVIDE (__extab_start = .); *(.ARM.extab*) PROVIDE (__extab_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(8) (NOLOAD) : { PROVIDE(__stack_start = .); PROVIDE(__stack_und_start = .); . += STACK_UND_SIZE; PROVIDE(__stack_und_end = .); . = ALIGN(8); PROVIDE(__stack_abt_start = .); . += STACK_ABT_SIZE; PROVIDE(__stack_abt_end = .); . = ALIGN(8); PROVIDE(__stack_irq_start = .); . += STACK_IRQ_SIZE; PROVIDE(__stack_irq_end = .); . = ALIGN(8); PROVIDE(__stack_fiq_start = .); . += STACK_FIQ_SIZE; PROVIDE(__stack_fiq_end = .); . = ALIGN(8); PROVIDE(__stack_srv_start = .); . += STACK_SRV_SIZE; PROVIDE(__stack_srv_end = .); . = ALIGN(8); PROVIDE(__stack_end = .); } > ram .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_info 0 : { *(.debug_info) } .debug_line 0 : { *(.debug_line) } .debug_pubnames 0 : { *(.debug_pubnames) } .debug_aranges 0 : { *(.debug_aranges) } } xfel-1.3.5/payloads/r128/write32/source/000077500000000000000000000000001512120643700175665ustar00rootroot00000000000000xfel-1.3.5/payloads/r128/write32/source/start.S000066400000000000000000000030071512120643700210470ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ .syntax unified .global _start _start: dsb.w sy isb.w sy ldr.w r0, _iciallu mov.w r1, #0x0 str.w r1, [r0] dsb.w sy isb.w sy b.w reset .align 2 _iciallu: .word 0xe000ef50 reset: ldr.w r0, _adr ldr.w r1, _val str.w r1, [r0] bx lr .align 2 _adr: .word 0x11223344 _val: .word 0x55667788 xfel-1.3.5/payloads/r528_t113/000077500000000000000000000000001512120643700155435ustar00rootroot00000000000000xfel-1.3.5/payloads/r528_t113/jtag/000077500000000000000000000000001512120643700164705ustar00rootroot00000000000000xfel-1.3.5/payloads/r528_t113/jtag/.gitignore000066400000000000000000000000731512120643700204600ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/r528_t113/jtag/Makefile000066400000000000000000000056271512120643700201420ustar00rootroot00000000000000# # Top makefile # CROSS ?= arm-linux-gnueabihf- NAME := jtag # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 CFLAGS := -g -ggdb -Wall -O3 CXXFLAGS := -g -ggdb -Wall -O3 LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -march=armv7-a -mtune=cortex-a7 -mfpu=vfpv4 -mfloat-abi=hard -marm -mno-thumb-interwork -mno-unaligned-access -fno-stack-protector LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/r528_t113/jtag/include/000077500000000000000000000000001512120643700201135ustar00rootroot00000000000000xfel-1.3.5/payloads/r528_t113/jtag/include/byteorder.h000066400000000000000000000043611512120643700222670ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/r528_t113/jtag/include/endian.h000066400000000000000000000007321512120643700215240ustar00rootroot00000000000000#ifndef __ARM32_ENDIAN_H__ #define __ARM32_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __ARM32_ENDIAN_H__ */ xfel-1.3.5/payloads/r528_t113/jtag/include/io.h000066400000000000000000000016401512120643700206740ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/r528_t113/jtag/include/r528/000077500000000000000000000000001512120643700206135ustar00rootroot00000000000000xfel-1.3.5/payloads/r528_t113/jtag/include/r528/reg-ccu.h000066400000000000000000000050761512120643700223210ustar00rootroot00000000000000#ifndef __R528_REG_CCU_H__ #define __R528_REG_CCU_H__ #define R528_CCU_BASE (0x02001000) #define CCU_PLL_CPU_CTRL_REG (0x000) #define CCU_PLL_DDR_CTRL_REG (0x010) #define CCU_PLL_PERI0_CTRL_REG (0x020) #define CCU_PLL_PERI1_CTRL_REG (0x028) #define CCU_PLL_GPU_CTRL_REG (0x030) #define CCU_PLL_VIDEO0_CTRL_REG (0x040) #define CCU_PLL_VIDEO1_CTRL_REG (0x048) #define CCU_PLL_VE_CTRL (0x058) #define CCU_PLL_DE_CTRL (0x060) #define CCU_PLL_HSIC_CTRL (0x070) #define CCU_PLL_AUDIO0_CTRL_REG (0x078) #define CCU_PLL_AUDIO1_CTRL_REG (0x080) #define CCU_PLL_DDR_PAT0_CTRL_REG (0x110) #define CCU_PLL_DDR_PAT1_CTRL_REG (0x114) #define CCU_PLL_PERI0_PAT0_CTRL_REG (0x120) #define CCU_PLL_PERI0_PAT1_CTRL_REG (0x124) #define CCU_PLL_PERI1_PAT0_CTRL_REG (0x128) #define CCU_PLL_PERI1_PAT1_CTRL_REG (0x12c) #define CCU_PLL_GPU_PAT0_CTRL_REG (0x130) #define CCU_PLL_GPU_PAT1_CTRL_REG (0x134) #define CCU_PLL_VIDEO0_PAT0_CTRL_REG (0x140) #define CCU_PLL_VIDEO0_PAT1_CTRL_REG (0x144) #define CCU_PLL_VIDEO1_PAT0_CTRL_REG (0x148) #define CCU_PLL_VIDEO1_PAT1_CTRL_REG (0x14c) #define CCU_PLL_VE_PAT0_CTRL_REG (0x158) #define CCU_PLL_VE_PAT1_CTRL_REG (0x15c) #define CCU_PLL_DE_PAT0_CTRL_REG (0x160) #define CCU_PLL_DE_PAT1_CTRL_REG (0x164) #define CCU_PLL_HSIC_PAT0_CTRL_REG (0x170) #define CCU_PLL_HSIC_PAT1_CTRL_REG (0x174) #define CCU_PLL_AUDIO0_PAT0_CTRL_REG (0x178) #define CCU_PLL_AUDIO0_PAT1_CTRL_REG (0x17c) #define CCU_PLL_AUDIO1_PAT0_CTRL_REG (0x180) #define CCU_PLL_AUDIO1_PAT1_CTRL_REG (0x184) #define CCU_PLL_CPU_BIAS_REG (0x300) #define CCU_PLL_DDR_BIAS_REG (0x310) #define CCU_PLL_PERI0_BIAS_REG (0x320) #define CCU_PLL_PERI1_BIAS_REG (0x328) #define CCU_PLL_GPU_BIAS_REG (0x330) #define CCU_PLL_VIDEO0_BIAS_REG (0x340) #define CCU_PLL_VIDEO1_BIAS_REG (0x348) #define CCU_PLL_VE_BIAS_REG (0x358) #define CCU_PLL_DE_BIAS_REG (0x360) #define CCU_PLL_HSIC_BIAS_REG (0x370) #define CCU_PLL_AUDIO0_BIAS_REG (0x378) #define CCU_PLL_AUDIO1_BIAS_REG (0x380) #define CCU_PLL_CPU_TUN_REG (0x400) #define CCU_CPU_AXI_CFG_REG (0x500) #define CCU_CPU_GATING_REG (0x504) #define CCU_PSI_CLK_REG (0x510) #define CCU_AHB3_CLK_REG (0x51c) #define CCU_APB0_CLK_REG (0x520) #define CCU_APB1_CLK_REG (0x524) #define CCU_MBUS_CLK_REG (0x540) #define CCU_DMA_BGR_REG (0x70c) #define CCU_DRAM_CLK_REG (0x800) #define CCU_MBUS_MAT_CLK_GATING_REG (0x804) #define CCU_DRAM_BGR_REG (0x80c) #define CCU_RISCV_CLK_REG (0xd00) #define CCU_RISCV_GATING_REG (0xd04) #define CCU_RISCV_CFG_BGR_REG (0xd0c) #endif /* __R528_REG_CCU_H__ */ xfel-1.3.5/payloads/r528_t113/jtag/include/stdarg.h000066400000000000000000000010541512120643700215500ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/r528_t113/jtag/include/stddef.h000066400000000000000000000026101512120643700215340ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/r528_t113/jtag/include/stdint.h000066400000000000000000000010161512120643700215670ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/r528_t113/jtag/include/string.h000066400000000000000000000004241512120643700215720ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/r528_t113/jtag/include/types.h000066400000000000000000000021051512120643700214260ustar00rootroot00000000000000#ifndef __ARM32_TYPES_H__ #define __ARM32_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed int ptrdiff_t; typedef signed int intptr_t; typedef unsigned int uintptr_t; typedef unsigned int size_t; typedef signed int ssize_t; typedef signed int off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned int irq_flags_t; typedef unsigned int virtual_addr_t; typedef unsigned int virtual_size_t; typedef unsigned int physical_addr_t; typedef unsigned int physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __ARM32_TYPES_H__ */ xfel-1.3.5/payloads/r528_t113/jtag/include/xboot.h000066400000000000000000000004731512120643700214230ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/r528_t113/jtag/link.ld000066400000000000000000000046451512120643700177570ustar00rootroot00000000000000OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) STACK_UND_SIZE = 0x010; STACK_ABT_SIZE = 0x010; STACK_IRQ_SIZE = 0x010; STACK_FIQ_SIZE = 0x010; STACK_SRV_SIZE = 0x400; MEMORY { ram : org = 0x00028000, len = 0x00001000 /* 4 KB */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text) .obj/source/sys-jtag.o (.text) *(.text*) *(.glue*) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ARM.exidx ALIGN(8) : { PROVIDE (__exidx_start = .); *(.ARM.exidx*) PROVIDE (__exidx_end = .); } > ram .ARM.extab ALIGN(8) : { PROVIDE (__extab_start = .); *(.ARM.extab*) PROVIDE (__extab_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(8) (NOLOAD) : { PROVIDE(__stack_start = .); PROVIDE(__stack_und_start = .); . += STACK_UND_SIZE; PROVIDE(__stack_und_end = .); . = ALIGN(8); PROVIDE(__stack_abt_start = .); . += STACK_ABT_SIZE; PROVIDE(__stack_abt_end = .); . = ALIGN(8); PROVIDE(__stack_irq_start = .); . += STACK_IRQ_SIZE; PROVIDE(__stack_irq_end = .); . = ALIGN(8); PROVIDE(__stack_fiq_start = .); . += STACK_FIQ_SIZE; PROVIDE(__stack_fiq_end = .); . = ALIGN(8); PROVIDE(__stack_srv_start = .); . += STACK_SRV_SIZE; PROVIDE(__stack_srv_end = .); . = ALIGN(8); PROVIDE(__stack_end = .); } > ram .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_info 0 : { *(.debug_info) } .debug_line 0 : { *(.debug_line) } .debug_pubnames 0 : { *(.debug_pubnames) } .debug_aranges 0 : { *(.debug_aranges) } } xfel-1.3.5/payloads/r528_t113/jtag/source/000077500000000000000000000000001512120643700177705ustar00rootroot00000000000000xfel-1.3.5/payloads/r528_t113/jtag/source/start.S000066400000000000000000000035701512120643700212560ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ .global _start _start: mov r0, #0 mcr p15, 0, r0, c8, c7, 0 mcr p15, 0, r0, c7, c5, 0 mcr p15, 0, r0, c7, c5, 6 mcr p15, 0, r0, c7, c10, 4 mcr p15, 0, r0, c7, c5, 4 b reset reset: ldr r0, =0x00047fe0 str sp, [r0, #0] str lr, [r0, #4] mrs lr, cpsr str lr, [r0, #8] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #12] mrc p15, 0, lr, c12, c0, 0 str lr, [r0, #16] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #20] bl sys_jtag_init ldr r0, =0x00047fe0 ldr sp, [r0, #0] ldr lr, [r0, #4] ldr r1, [r0, #20] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #16] mcr p15, 0, r1, c12, c0, 0 ldr r1, [r0, #12] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #8] msr cpsr, r1 bx lr xfel-1.3.5/payloads/r528_t113/jtag/source/sys-jtag.c000066400000000000000000000035561512120643700217060ustar00rootroot00000000000000/* * sys-jtag.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include void sys_jtag_init(void) { virtual_addr_t addr; u32_t val; /* Config GPIOF0, GPIOF1, GPIOF3 and GPIOF5 to JTAG mode */ addr = 0x020000f0 + 0x00; val = read32(addr); val &= ~(0xf << ((0 & 0x7) << 2)); val |= ((0x3 & 0xf) << ((0 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((1 & 0x7) << 2)); val |= ((0x3 & 0xf) << ((1 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((3 & 0x7) << 2)); val |= ((0x3 & 0xf) << ((3 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((5 & 0x7) << 2)); val |= ((0x3 & 0xf) << ((5 & 0x7) << 2)); write32(addr, val); } xfel-1.3.5/payloads/r528_t113/read32/000077500000000000000000000000001512120643700166235ustar00rootroot00000000000000xfel-1.3.5/payloads/r528_t113/read32/.gitignore000066400000000000000000000000731512120643700206130ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/r528_t113/read32/Makefile000066400000000000000000000057021512120643700202670ustar00rootroot00000000000000# # Top makefile # CROSS ?= arm-none-eabi- NAME := read32 # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 -ffreestanding CFLAGS := -g -ggdb -Wall -O3 -ffreestanding CXXFLAGS := -g -ggdb -Wall -O3 -ffreestanding LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -march=armv7-a -mtune=cortex-a7 -mfpu=vfpv4 -mfloat-abi=softfp -marm -mno-thumb-interwork -mno-unaligned-access -fno-stack-protector LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/r528_t113/read32/include/000077500000000000000000000000001512120643700202465ustar00rootroot00000000000000xfel-1.3.5/payloads/r528_t113/read32/include/byteorder.h000066400000000000000000000043611512120643700224220ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/r528_t113/read32/include/endian.h000066400000000000000000000007321512120643700216570ustar00rootroot00000000000000#ifndef __ARM32_ENDIAN_H__ #define __ARM32_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __ARM32_ENDIAN_H__ */ xfel-1.3.5/payloads/r528_t113/read32/include/io.h000066400000000000000000000016401512120643700210270ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/r528_t113/read32/include/stdarg.h000066400000000000000000000010541512120643700217030ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/r528_t113/read32/include/stddef.h000066400000000000000000000026101512120643700216670ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/r528_t113/read32/include/stdint.h000066400000000000000000000010161512120643700217220ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/r528_t113/read32/include/string.h000066400000000000000000000004241512120643700217250ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/r528_t113/read32/include/types.h000066400000000000000000000021051512120643700215610ustar00rootroot00000000000000#ifndef __ARM32_TYPES_H__ #define __ARM32_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed int ptrdiff_t; typedef signed int intptr_t; typedef unsigned int uintptr_t; typedef unsigned int size_t; typedef signed int ssize_t; typedef signed int off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned int irq_flags_t; typedef unsigned int virtual_addr_t; typedef unsigned int virtual_size_t; typedef unsigned int physical_addr_t; typedef unsigned int physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __ARM32_TYPES_H__ */ xfel-1.3.5/payloads/r528_t113/read32/include/xboot.h000066400000000000000000000004731512120643700215560ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/r528_t113/read32/link.ld000066400000000000000000000046041512120643700201050ustar00rootroot00000000000000OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) STACK_UND_SIZE = 0x010; STACK_ABT_SIZE = 0x010; STACK_IRQ_SIZE = 0x010; STACK_FIQ_SIZE = 0x010; STACK_SRV_SIZE = 0x010; MEMORY { ram : org = 0x00045000, len = 0x00000200 /* 512B */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text) *(.text*) *(.glue*) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ARM.exidx ALIGN(8) : { PROVIDE (__exidx_start = .); *(.ARM.exidx*) PROVIDE (__exidx_end = .); } > ram .ARM.extab ALIGN(8) : { PROVIDE (__extab_start = .); *(.ARM.extab*) PROVIDE (__extab_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(8) (NOLOAD) : { PROVIDE(__stack_start = .); PROVIDE(__stack_und_start = .); . += STACK_UND_SIZE; PROVIDE(__stack_und_end = .); . = ALIGN(8); PROVIDE(__stack_abt_start = .); . += STACK_ABT_SIZE; PROVIDE(__stack_abt_end = .); . = ALIGN(8); PROVIDE(__stack_irq_start = .); . += STACK_IRQ_SIZE; PROVIDE(__stack_irq_end = .); . = ALIGN(8); PROVIDE(__stack_fiq_start = .); . += STACK_FIQ_SIZE; PROVIDE(__stack_fiq_end = .); . = ALIGN(8); PROVIDE(__stack_srv_start = .); . += STACK_SRV_SIZE; PROVIDE(__stack_srv_end = .); . = ALIGN(8); PROVIDE(__stack_end = .); } > ram .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_info 0 : { *(.debug_info) } .debug_line 0 : { *(.debug_line) } .debug_pubnames 0 : { *(.debug_pubnames) } .debug_aranges 0 : { *(.debug_aranges) } } xfel-1.3.5/payloads/r528_t113/read32/source/000077500000000000000000000000001512120643700201235ustar00rootroot00000000000000xfel-1.3.5/payloads/r528_t113/read32/source/start.S000066400000000000000000000030161512120643700214040ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ .global _start _start: mov r0, #0 mcr p15, 0, r0, c8, c7, 0 mcr p15, 0, r0, c7, c5, 0 mcr p15, 0, r0, c7, c5, 6 mcr p15, 0, r0, c7, c10, 4 mcr p15, 0, r0, c7, c5, 4 b reset reset: ldr r0, _adr adr r1, _val ldr r2, [r0] str r2, [r1] bx lr .align 2 _adr: .word 0x11223344 _val: .word 0x55667788 xfel-1.3.5/payloads/r528_t113/spi/000077500000000000000000000000001512120643700163365ustar00rootroot00000000000000xfel-1.3.5/payloads/r528_t113/spi/.gitignore000066400000000000000000000000731512120643700203260ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/r528_t113/spi/Makefile000066400000000000000000000056261512120643700200070ustar00rootroot00000000000000# # Top makefile # CROSS ?= arm-linux-gnueabihf- NAME := spi # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 CFLAGS := -g -ggdb -Wall -O3 CXXFLAGS := -g -ggdb -Wall -O3 LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -march=armv7-a -mtune=cortex-a7 -mfpu=vfpv4 -mfloat-abi=hard -marm -mno-thumb-interwork -mno-unaligned-access -fno-stack-protector LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/r528_t113/spi/include/000077500000000000000000000000001512120643700177615ustar00rootroot00000000000000xfel-1.3.5/payloads/r528_t113/spi/include/byteorder.h000066400000000000000000000043611512120643700221350ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/r528_t113/spi/include/endian.h000066400000000000000000000007321512120643700213720ustar00rootroot00000000000000#ifndef __ARM32_ENDIAN_H__ #define __ARM32_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __ARM32_ENDIAN_H__ */ xfel-1.3.5/payloads/r528_t113/spi/include/io.h000066400000000000000000000016401512120643700205420ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/r528_t113/spi/include/r528/000077500000000000000000000000001512120643700204615ustar00rootroot00000000000000xfel-1.3.5/payloads/r528_t113/spi/include/r528/reg-ccu.h000066400000000000000000000050761512120643700221670ustar00rootroot00000000000000#ifndef __R528_REG_CCU_H__ #define __R528_REG_CCU_H__ #define R528_CCU_BASE (0x02001000) #define CCU_PLL_CPU_CTRL_REG (0x000) #define CCU_PLL_DDR_CTRL_REG (0x010) #define CCU_PLL_PERI0_CTRL_REG (0x020) #define CCU_PLL_PERI1_CTRL_REG (0x028) #define CCU_PLL_GPU_CTRL_REG (0x030) #define CCU_PLL_VIDEO0_CTRL_REG (0x040) #define CCU_PLL_VIDEO1_CTRL_REG (0x048) #define CCU_PLL_VE_CTRL (0x058) #define CCU_PLL_DE_CTRL (0x060) #define CCU_PLL_HSIC_CTRL (0x070) #define CCU_PLL_AUDIO0_CTRL_REG (0x078) #define CCU_PLL_AUDIO1_CTRL_REG (0x080) #define CCU_PLL_DDR_PAT0_CTRL_REG (0x110) #define CCU_PLL_DDR_PAT1_CTRL_REG (0x114) #define CCU_PLL_PERI0_PAT0_CTRL_REG (0x120) #define CCU_PLL_PERI0_PAT1_CTRL_REG (0x124) #define CCU_PLL_PERI1_PAT0_CTRL_REG (0x128) #define CCU_PLL_PERI1_PAT1_CTRL_REG (0x12c) #define CCU_PLL_GPU_PAT0_CTRL_REG (0x130) #define CCU_PLL_GPU_PAT1_CTRL_REG (0x134) #define CCU_PLL_VIDEO0_PAT0_CTRL_REG (0x140) #define CCU_PLL_VIDEO0_PAT1_CTRL_REG (0x144) #define CCU_PLL_VIDEO1_PAT0_CTRL_REG (0x148) #define CCU_PLL_VIDEO1_PAT1_CTRL_REG (0x14c) #define CCU_PLL_VE_PAT0_CTRL_REG (0x158) #define CCU_PLL_VE_PAT1_CTRL_REG (0x15c) #define CCU_PLL_DE_PAT0_CTRL_REG (0x160) #define CCU_PLL_DE_PAT1_CTRL_REG (0x164) #define CCU_PLL_HSIC_PAT0_CTRL_REG (0x170) #define CCU_PLL_HSIC_PAT1_CTRL_REG (0x174) #define CCU_PLL_AUDIO0_PAT0_CTRL_REG (0x178) #define CCU_PLL_AUDIO0_PAT1_CTRL_REG (0x17c) #define CCU_PLL_AUDIO1_PAT0_CTRL_REG (0x180) #define CCU_PLL_AUDIO1_PAT1_CTRL_REG (0x184) #define CCU_PLL_CPU_BIAS_REG (0x300) #define CCU_PLL_DDR_BIAS_REG (0x310) #define CCU_PLL_PERI0_BIAS_REG (0x320) #define CCU_PLL_PERI1_BIAS_REG (0x328) #define CCU_PLL_GPU_BIAS_REG (0x330) #define CCU_PLL_VIDEO0_BIAS_REG (0x340) #define CCU_PLL_VIDEO1_BIAS_REG (0x348) #define CCU_PLL_VE_BIAS_REG (0x358) #define CCU_PLL_DE_BIAS_REG (0x360) #define CCU_PLL_HSIC_BIAS_REG (0x370) #define CCU_PLL_AUDIO0_BIAS_REG (0x378) #define CCU_PLL_AUDIO1_BIAS_REG (0x380) #define CCU_PLL_CPU_TUN_REG (0x400) #define CCU_CPU_AXI_CFG_REG (0x500) #define CCU_CPU_GATING_REG (0x504) #define CCU_PSI_CLK_REG (0x510) #define CCU_AHB3_CLK_REG (0x51c) #define CCU_APB0_CLK_REG (0x520) #define CCU_APB1_CLK_REG (0x524) #define CCU_MBUS_CLK_REG (0x540) #define CCU_DMA_BGR_REG (0x70c) #define CCU_DRAM_CLK_REG (0x800) #define CCU_MBUS_MAT_CLK_GATING_REG (0x804) #define CCU_DRAM_BGR_REG (0x80c) #define CCU_RISCV_CLK_REG (0xd00) #define CCU_RISCV_GATING_REG (0xd04) #define CCU_RISCV_CFG_BGR_REG (0xd0c) #endif /* __R528_REG_CCU_H__ */ xfel-1.3.5/payloads/r528_t113/spi/include/stdarg.h000066400000000000000000000010541512120643700214160ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/r528_t113/spi/include/stddef.h000066400000000000000000000026101512120643700214020ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/r528_t113/spi/include/stdint.h000066400000000000000000000010161512120643700214350ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/r528_t113/spi/include/string.h000066400000000000000000000004241512120643700214400ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/r528_t113/spi/include/types.h000066400000000000000000000021051512120643700212740ustar00rootroot00000000000000#ifndef __ARM32_TYPES_H__ #define __ARM32_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed int ptrdiff_t; typedef signed int intptr_t; typedef unsigned int uintptr_t; typedef unsigned int size_t; typedef signed int ssize_t; typedef signed int off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned int irq_flags_t; typedef unsigned int virtual_addr_t; typedef unsigned int virtual_size_t; typedef unsigned int physical_addr_t; typedef unsigned int physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __ARM32_TYPES_H__ */ xfel-1.3.5/payloads/r528_t113/spi/include/xboot.h000066400000000000000000000004731512120643700212710ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/r528_t113/spi/link.ld000066400000000000000000000046441512120643700176240ustar00rootroot00000000000000OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) STACK_UND_SIZE = 0x010; STACK_ABT_SIZE = 0x010; STACK_IRQ_SIZE = 0x010; STACK_FIQ_SIZE = 0x010; STACK_SRV_SIZE = 0x400; MEMORY { ram : org = 0x00028000, len = 0x00001000 /* 4 KB */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text) .obj/source/sys-spi.o (.text) *(.text*) *(.glue*) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ARM.exidx ALIGN(8) : { PROVIDE (__exidx_start = .); *(.ARM.exidx*) PROVIDE (__exidx_end = .); } > ram .ARM.extab ALIGN(8) : { PROVIDE (__extab_start = .); *(.ARM.extab*) PROVIDE (__extab_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(8) (NOLOAD) : { PROVIDE(__stack_start = .); PROVIDE(__stack_und_start = .); . += STACK_UND_SIZE; PROVIDE(__stack_und_end = .); . = ALIGN(8); PROVIDE(__stack_abt_start = .); . += STACK_ABT_SIZE; PROVIDE(__stack_abt_end = .); . = ALIGN(8); PROVIDE(__stack_irq_start = .); . += STACK_IRQ_SIZE; PROVIDE(__stack_irq_end = .); . = ALIGN(8); PROVIDE(__stack_fiq_start = .); . += STACK_FIQ_SIZE; PROVIDE(__stack_fiq_end = .); . = ALIGN(8); PROVIDE(__stack_srv_start = .); . += STACK_SRV_SIZE; PROVIDE(__stack_srv_end = .); . = ALIGN(8); PROVIDE(__stack_end = .); } > ram .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_info 0 : { *(.debug_info) } .debug_line 0 : { *(.debug_line) } .debug_pubnames 0 : { *(.debug_pubnames) } .debug_aranges 0 : { *(.debug_aranges) } } xfel-1.3.5/payloads/r528_t113/spi/source/000077500000000000000000000000001512120643700176365ustar00rootroot00000000000000xfel-1.3.5/payloads/r528_t113/spi/source/start.S000066400000000000000000000036131512120643700211220ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ .global _start _start: mov r0, #0 mcr p15, 0, r0, c8, c7, 0 mcr p15, 0, r0, c7, c5, 0 mcr p15, 0, r0, c7, c5, 6 mcr p15, 0, r0, c7, c10, 4 mcr p15, 0, r0, c7, c5, 4 b reset reset: ldr r0, =0x00047fe0 str sp, [r0, #0] str lr, [r0, #4] mrs lr, cpsr str lr, [r0, #8] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #12] mrc p15, 0, lr, c12, c0, 0 str lr, [r0, #16] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #20] ldr r0, =0x00029000 bl sys_spi_run ldr r0, =0x00047fe0 ldr sp, [r0, #0] ldr lr, [r0, #4] ldr r1, [r0, #20] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #16] mcr p15, 0, r1, c12, c0, 0 ldr r1, [r0, #12] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #8] msr cpsr, r1 bx lr xfel-1.3.5/payloads/r528_t113/spi/source/sys-spi.c000066400000000000000000000143611512120643700214160ustar00rootroot00000000000000/* * sys-spi.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include enum { SPI_GCR = 0x04, SPI_TCR = 0x08, SPI_IER = 0x10, SPI_ISR = 0x14, SPI_FCR = 0x18, SPI_FSR = 0x1c, SPI_WCR = 0x20, SPI_CCR = 0x24, SPI_MBC = 0x30, SPI_MTC = 0x34, SPI_BCC = 0x38, SPI_TXD = 0x200, SPI_RXD = 0x300, }; static void sys_spi_init(void) { virtual_addr_t addr; u32_t val; /* Config GPIOC2, GPIOC3, GPIOC4 and GPIOC5 */ addr = 0x02000060 + 0x00; val = read32(addr); val &= ~(0xf << ((2 & 0x7) << 2)); val |= ((0x2 & 0xf) << ((2 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((3 & 0x7) << 2)); val |= ((0x2 & 0xf) << ((3 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((4 & 0x7) << 2)); val |= ((0x2 & 0xf) << ((4 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((5 & 0x7) << 2)); val |= ((0x2 & 0xf) << ((5 & 0x7) << 2)); write32(addr, val); /* Deassert spi0 reset */ addr = 0x0200196c; val = read32(addr); val |= (1 << 16); write32(addr, val); /* Open the spi0 gate */ addr = 0x02001940; val = read32(addr); val |= (1 << 31); write32(addr, val); /* Open the spi0 bus gate */ addr = 0x0200196c; val = read32(addr); val |= (1 << 0); write32(addr, val); /* Select pll-periph0 for spi0 clk */ addr = 0x02001940; val = read32(addr); val &= ~(0x3 << 24); val |= 0x1 << 24; write32(addr, val); /* Set clock pre divide ratio, divided by 1 */ addr = 0x02001940; val = read32(addr); val &= ~(0x3 << 8); val |= 0x0 << 8; write32(addr, val); /* Set clock divide ratio, divided by 6 */ addr = 0x02001940; val = read32(addr); val &= ~(0xf << 0); val |= (6 - 1) << 0; write32(addr, val); /* Set spi clock rate control register, divided by 2 */ addr = 0x04025000; write32(addr + SPI_CCR, 0x1000); /* Enable spi0 and do a soft reset */ addr = 0x04025000; val = read32(addr + SPI_GCR); val |= (1 << 31) | (1 << 7) | (1 << 1) | (1 << 0); write32(addr + SPI_GCR, val); while(read32(addr + SPI_GCR) & (1 << 31)); val = read32(addr + SPI_TCR); val &= ~(0x3 << 0); val |= (1 << 6) | (1 << 2); write32(addr + SPI_TCR, val); val = read32(addr + SPI_FCR); val |= (1 << 31) | (1 << 15); write32(addr + SPI_FCR, val); } static void sys_spi_select(void) { virtual_addr_t addr = 0x04025000; u32_t val; val = read32(addr + SPI_TCR); val &= ~((0x3 << 4) | (0x1 << 7)); val |= ((0 & 0x3) << 4) | (0x0 << 7); write32(addr + SPI_TCR, val); } static void sys_spi_deselect(void) { virtual_addr_t addr = 0x04025000; u32_t val; val = read32(addr + SPI_TCR); val &= ~((0x3 << 4) | (0x1 << 7)); val |= ((0 & 0x3) << 4) | (0x1 << 7); write32(addr + SPI_TCR, val); } static inline void sys_spi_write_txbuf(u8_t * buf, int len) { virtual_addr_t addr = 0x04025000; int i; write32(addr + SPI_MTC, len & 0xffffff); write32(addr + SPI_BCC, len & 0xffffff); if(buf) { for(i = 0; i < len; i++) write8(addr + SPI_TXD, *buf++); } else { for(i = 0; i < len; i++) write8(addr + SPI_TXD, 0xff); } } static void sys_spi_transfer(void * txbuf, void * rxbuf, u32_t len) { virtual_addr_t addr = 0x04025000; u8_t * tx = txbuf; u8_t * rx = rxbuf; u8_t val; int n, i; while(len > 0) { n = (len <= 64) ? len : 64; write32(addr + SPI_MBC, n); sys_spi_write_txbuf(tx, n); write32(addr + SPI_TCR, read32(addr + SPI_TCR) | (1 << 31)); while(read32(addr + SPI_TCR) & (1 << 31)); while((read32(addr + SPI_FSR) & 0xff) < n); for(i = 0; i < n; i++) { val = read8(addr + SPI_RXD); if(rx) *rx++ = val; } if(tx) tx += n; len -= n; } } enum { SPI_CMD_END = 0x00, SPI_CMD_INIT = 0x01, SPI_CMD_SELECT = 0x02, SPI_CMD_DESELECT = 0x03, SPI_CMD_FAST = 0x04, SPI_CMD_TXBUF = 0x05, SPI_CMD_RXBUF = 0x06, SPI_CMD_SPINOR_WAIT = 0x07, SPI_CMD_SPINAND_WAIT = 0x08, }; void sys_spi_run(void * cbuf) { uint8_t tx[8], rx[8]; u8_t c, * p = cbuf; u32_t addr, len; while(1) { c = *p++; if(c == SPI_CMD_INIT) { sys_spi_init(); } else if(c == SPI_CMD_SELECT) { sys_spi_select(); } else if(c == SPI_CMD_DESELECT) { sys_spi_deselect(); } else if(c == SPI_CMD_FAST) { len = p[0]; sys_spi_transfer((void *)&p[1], NULL, len); p += (len + 1); } else if(c == SPI_CMD_TXBUF) { addr = (p[0] << 0) | (p[1] << 8) | (p[2] << 16) | (p[3] << 24); len = (p[4] << 0) | (p[5] << 8) | (p[6] << 16) | (p[7] << 24); sys_spi_transfer((void *)((unsigned long)addr), NULL, len); p += 8; } else if(c == SPI_CMD_RXBUF) { addr = (p[0] << 0) | (p[1] << 8) | (p[2] << 16) | (p[3] << 24); len = (p[4] << 0) | (p[5] << 8) | (p[6] << 16) | (p[7] << 24); sys_spi_transfer(NULL, (void *)((unsigned long)addr), len); p += 8; } else if(c == SPI_CMD_SPINOR_WAIT) { tx[0] = 0x05; do { sys_spi_transfer((void *)&tx[0], NULL, 1); sys_spi_transfer(NULL, (void *)&rx[0], 1); } while((rx[0] & 0x1) == 0x1); } else if(c == SPI_CMD_SPINAND_WAIT) { tx[0] = 0x0f; tx[1] = 0xc0; do { sys_spi_transfer((void *)&tx[0], NULL, 2); sys_spi_transfer(NULL, (void *)&rx[0], 1); } while((rx[0] & 0x1) == 0x1); } else { return; } } } xfel-1.3.5/payloads/r528_t113/write32/000077500000000000000000000000001512120643700170425ustar00rootroot00000000000000xfel-1.3.5/payloads/r528_t113/write32/.gitignore000066400000000000000000000000731512120643700210320ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/r528_t113/write32/Makefile000066400000000000000000000057031512120643700205070ustar00rootroot00000000000000# # Top makefile # CROSS ?= arm-none-eabi- NAME := write32 # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 -ffreestanding CFLAGS := -g -ggdb -Wall -O3 -ffreestanding CXXFLAGS := -g -ggdb -Wall -O3 -ffreestanding LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -march=armv7-a -mtune=cortex-a7 -mfpu=vfpv4 -mfloat-abi=softfp -marm -mno-thumb-interwork -mno-unaligned-access -fno-stack-protector LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/r528_t113/write32/include/000077500000000000000000000000001512120643700204655ustar00rootroot00000000000000xfel-1.3.5/payloads/r528_t113/write32/include/byteorder.h000066400000000000000000000043611512120643700226410ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/r528_t113/write32/include/endian.h000066400000000000000000000007321512120643700220760ustar00rootroot00000000000000#ifndef __ARM32_ENDIAN_H__ #define __ARM32_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __ARM32_ENDIAN_H__ */ xfel-1.3.5/payloads/r528_t113/write32/include/io.h000066400000000000000000000016401512120643700212460ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/r528_t113/write32/include/stdarg.h000066400000000000000000000010541512120643700221220ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/r528_t113/write32/include/stddef.h000066400000000000000000000026101512120643700221060ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/r528_t113/write32/include/stdint.h000066400000000000000000000010161512120643700221410ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/r528_t113/write32/include/string.h000066400000000000000000000004241512120643700221440ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/r528_t113/write32/include/types.h000066400000000000000000000021051512120643700220000ustar00rootroot00000000000000#ifndef __ARM32_TYPES_H__ #define __ARM32_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed int ptrdiff_t; typedef signed int intptr_t; typedef unsigned int uintptr_t; typedef unsigned int size_t; typedef signed int ssize_t; typedef signed int off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned int irq_flags_t; typedef unsigned int virtual_addr_t; typedef unsigned int virtual_size_t; typedef unsigned int physical_addr_t; typedef unsigned int physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __ARM32_TYPES_H__ */ xfel-1.3.5/payloads/r528_t113/write32/include/xboot.h000066400000000000000000000004731512120643700217750ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/r528_t113/write32/link.ld000066400000000000000000000046041512120643700203240ustar00rootroot00000000000000OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) STACK_UND_SIZE = 0x010; STACK_ABT_SIZE = 0x010; STACK_IRQ_SIZE = 0x010; STACK_FIQ_SIZE = 0x010; STACK_SRV_SIZE = 0x010; MEMORY { ram : org = 0x00045000, len = 0x00000200 /* 512B */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text) *(.text*) *(.glue*) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ARM.exidx ALIGN(8) : { PROVIDE (__exidx_start = .); *(.ARM.exidx*) PROVIDE (__exidx_end = .); } > ram .ARM.extab ALIGN(8) : { PROVIDE (__extab_start = .); *(.ARM.extab*) PROVIDE (__extab_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(8) (NOLOAD) : { PROVIDE(__stack_start = .); PROVIDE(__stack_und_start = .); . += STACK_UND_SIZE; PROVIDE(__stack_und_end = .); . = ALIGN(8); PROVIDE(__stack_abt_start = .); . += STACK_ABT_SIZE; PROVIDE(__stack_abt_end = .); . = ALIGN(8); PROVIDE(__stack_irq_start = .); . += STACK_IRQ_SIZE; PROVIDE(__stack_irq_end = .); . = ALIGN(8); PROVIDE(__stack_fiq_start = .); . += STACK_FIQ_SIZE; PROVIDE(__stack_fiq_end = .); . = ALIGN(8); PROVIDE(__stack_srv_start = .); . += STACK_SRV_SIZE; PROVIDE(__stack_srv_end = .); . = ALIGN(8); PROVIDE(__stack_end = .); } > ram .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_info 0 : { *(.debug_info) } .debug_line 0 : { *(.debug_line) } .debug_pubnames 0 : { *(.debug_pubnames) } .debug_aranges 0 : { *(.debug_aranges) } } xfel-1.3.5/payloads/r528_t113/write32/source/000077500000000000000000000000001512120643700203425ustar00rootroot00000000000000xfel-1.3.5/payloads/r528_t113/write32/source/start.S000066400000000000000000000030001512120643700216140ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ .global _start _start: mov r0, #0 mcr p15, 0, r0, c8, c7, 0 mcr p15, 0, r0, c7, c5, 0 mcr p15, 0, r0, c7, c5, 6 mcr p15, 0, r0, c7, c10, 4 mcr p15, 0, r0, c7, c5, 4 b reset reset: ldr r0, _adr ldr r1, _val str r1, [r0] bx lr .align 2 _adr: .word 0x11223344 _val: .word 0x55667788 xfel-1.3.5/payloads/v3s_s3/000077500000000000000000000000001512120643700154135ustar00rootroot00000000000000xfel-1.3.5/payloads/v3s_s3/jtag/000077500000000000000000000000001512120643700163405ustar00rootroot00000000000000xfel-1.3.5/payloads/v3s_s3/jtag/.gitignore000066400000000000000000000000731512120643700203300ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/v3s_s3/jtag/Makefile000066400000000000000000000056271512120643700200120ustar00rootroot00000000000000# # Top makefile # CROSS ?= arm-linux-gnueabihf- NAME := jtag # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 CFLAGS := -g -ggdb -Wall -O3 CXXFLAGS := -g -ggdb -Wall -O3 LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -march=armv7-a -mtune=cortex-a7 -mfpu=vfpv4 -mfloat-abi=hard -marm -mno-thumb-interwork -mno-unaligned-access -fno-stack-protector LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/v3s_s3/jtag/include/000077500000000000000000000000001512120643700177635ustar00rootroot00000000000000xfel-1.3.5/payloads/v3s_s3/jtag/include/byteorder.h000066400000000000000000000043611512120643700221370ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/v3s_s3/jtag/include/endian.h000066400000000000000000000007321512120643700213740ustar00rootroot00000000000000#ifndef __ARM32_ENDIAN_H__ #define __ARM32_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __ARM32_ENDIAN_H__ */ xfel-1.3.5/payloads/v3s_s3/jtag/include/io.h000066400000000000000000000016401512120643700205440ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/v3s_s3/jtag/include/stdarg.h000066400000000000000000000010541512120643700214200ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/v3s_s3/jtag/include/stddef.h000066400000000000000000000026101512120643700214040ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/v3s_s3/jtag/include/stdint.h000066400000000000000000000010161512120643700214370ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/v3s_s3/jtag/include/string.h000066400000000000000000000004241512120643700214420ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/v3s_s3/jtag/include/types.h000066400000000000000000000021051512120643700212760ustar00rootroot00000000000000#ifndef __ARM32_TYPES_H__ #define __ARM32_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed int ptrdiff_t; typedef signed int intptr_t; typedef unsigned int uintptr_t; typedef unsigned int size_t; typedef signed int ssize_t; typedef signed int off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned int irq_flags_t; typedef unsigned int virtual_addr_t; typedef unsigned int virtual_size_t; typedef unsigned int physical_addr_t; typedef unsigned int physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __ARM32_TYPES_H__ */ xfel-1.3.5/payloads/v3s_s3/jtag/include/v3s/000077500000000000000000000000001512120643700204765ustar00rootroot00000000000000xfel-1.3.5/payloads/v3s_s3/jtag/include/v3s/reg-ccu.h000066400000000000000000000044421512120643700222000ustar00rootroot00000000000000#ifndef __V3S_REG_CCU_H__ #define __V3S_REG_CCU_H__ #define V3S_CCU_BASE (0x01c20000) #define CCU_PLL_CPU_CTRL (0x000) #define CCU_PLL_AUDIO_CTRL (0x008) #define CCU_PLL_VIDEO_CTRL (0x010) #define CCU_PLL_VE_CTRL (0x018) #define CCU_PLL_DDR0_CTRL (0x020) #define CCU_PLL_PERIPH0_CTRL (0x028) #define CCU_PLL_ISP_CTRL (0x02c) #define CCU_PLL_PERIPH1_CTRL (0x044) #define CCU_PLL_DDR1_CTRL (0x04c) #define CCU_CPU_AXI_CFG (0x050) #define CCU_AHB_APB0_CFG (0x054) #define CCU_APB1_CFG (0x058) #define CCU_AHB2_CFG (0x05c) #define CCU_BUS_CLK_GATE0 (0x060) #define CCU_BUS_CLK_GATE1 (0x064) #define CCU_BUS_CLK_GATE2 (0x068) #define CCU_BUS_CLK_GATE3 (0x06c) #define CCU_BUS_CLK_GATE4 (0x070) #define CCU_SDMMC0_CLK (0x088) #define CCU_SDMMC1_CLK (0x08c) #define CCU_SDMMC2_CLK (0x090) #define CCU_CE_CLK (0x09c) #define CCU_SPI0_CLK (0x0a0) #define CCU_USBPHY_CFG (0x0cc) #define CCU_DRAM_CFG (0x0f4) #define CCU_PLL_DDR1_CFG (0x0f8) #define CCU_MBUS_RST (0x0fc) #define CCU_DRAM_CLK_GATE (0x100) #define CCU_TCON_CLK (0x118) #define CCU_CSI_MISC_CLK (0x130) #define CCU_CSI_CLK (0x134) #define CCU_VE_CLK (0x13c) #define CCU_AC_DIG_CLK (0x140) #define CCU_AVS_CLK (0x144) #define CCU_MBUS_CLK (0x15c) #define CCU_MIPI_CSI_CLK (0x16c) #define CCU_PLL_STABLE_TIME0 (0x200) #define CCU_PLL_STABLE_TIME1 (0x204) #define CCU_PLL_CPU_BIAS (0x220) #define CCU_PLL_AUDIO_BIAS (0x224) #define CCU_PLL_VIDEO_BIAS (0x228) #define CCU_PLL_VE_BIAS (0x22c) #define CCU_PLL_DDR0_BIAS (0x230) #define CCU_PLL_PERIPH0_BIAS (0x234) #define CCU_PLL_ISP_BIAS (0x238) #define CCU_PLL_PERIPH1_BIAS (0x244) #define CCU_PLL_DDR1_BIAS (0x24C) #define CCU_PLL_CPU_TUN (0x250) #define CCU_PLL_DDR0_TUN (0x260) #define CCU_PLL_CPU_PAT (0x280) #define CCU_PLL_AUDIO_PAT (0x284) #define CCU_PLL_VIDEO_PAT (0x288) #define CCU_PLL_VE_PAT (0x28c) #define CCU_PLL_DDR0_PAT (0x290) #define CCU_PLL_ISP_PAT (0x298) #define CCU_PLL_PERIPH1_PAT (0x2a4) #define CCU_PLL_DDR1_PAT0 (0x2ac) #define CCU_PLL_DDR1_PAT1 (0x2b0) #define CCU_BUS_SOFT_RST0 (0x2c0) #define CCU_BUS_SOFT_RST1 (0x2c4) #define CCU_BUS_SOFT_RST2 (0x2c8) #define CCU_BUS_SOFT_RST3 (0x2d0) #define CCU_BUS_SOFT_RST4 (0x2d8) #define CCU_PS_CTRL (0x300) #define CCU_PS_CNT (0x304) #endif /* __V3S_REG_CCU_H__ */ xfel-1.3.5/payloads/v3s_s3/jtag/include/v3s/reg-dram.h000066400000000000000000000054721512120643700223550ustar00rootroot00000000000000#ifndef __V3S_REG_DRAM_H__ #define __V3S_REG_DRAM_H__ #define V3S_DRAM_COM_BASE (0x01c62000) #define V3S_DRAM_CTL_BASE (0x01c63000) #define MCTL_CR_BL8 (0x4 << 20) #define MCTL_CR_1T (0x1 << 19) #define MCTL_CR_2T (0x0 << 19) #define MCTL_CR_LPDDR3 (0x7 << 16) #define MCTL_CR_LPDDR2 (0x6 << 16) #define MCTL_CR_DDR3 (0x3 << 16) #define MCTL_CR_DDR2 (0x2 << 16) #define MCTL_CR_SEQUENTIAL (0x1 << 15) #define MCTL_CR_INTERLEAVED (0x0 << 15) #define MCTL_CR_32BIT (0x1 << 12) #define MCTL_CR_16BIT (0x0 << 12) #define MCTL_CR_BUS_WIDTH(x) ((x) == 32 ? MCTL_CR_32BIT : MCTL_CR_16BIT) #define MCTL_CR_PAGE_SIZE(x) ((gfls(x) - 4) << 8) #define MCTL_CR_ROW_BITS(x) (((x) - 1) << 4) #define MCTL_CR_EIGHT_BANKS (0x1 << 2) #define MCTL_CR_FOUR_BANKS (0x0 << 2) #define MCTL_CR_DUAL_RANK (0x1 << 0) #define MCTL_CR_SINGLE_RANK (0x0 << 0) #define DRAMTMG0_TWTP(x) ((x) << 24) #define DRAMTMG0_TFAW(x) ((x) << 16) #define DRAMTMG0_TRAS_MAX(x) ((x) << 8) #define DRAMTMG0_TRAS(x) ((x) << 0) #define DRAMTMG1_TXP(x) ((x) << 16) #define DRAMTMG1_TRTP(x) ((x) << 8) #define DRAMTMG1_TRC(x) ((x) << 0) #define DRAMTMG2_TCWL(x) ((x) << 24) #define DRAMTMG2_TCL(x) ((x) << 16) #define DRAMTMG2_TRD2WR(x) ((x) << 8) #define DRAMTMG2_TWR2RD(x) ((x) << 0) #define DRAMTMG3_TMRW(x) ((x) << 16) #define DRAMTMG3_TMRD(x) ((x) << 12) #define DRAMTMG3_TMOD(x) ((x) << 0) #define DRAMTMG4_TRCD(x) ((x) << 24) #define DRAMTMG4_TCCD(x) ((x) << 16) #define DRAMTMG4_TRRD(x) ((x) << 8) #define DRAMTMG4_TRP(x) ((x) << 0) #define DRAMTMG5_TCKSRX(x) ((x) << 24) #define DRAMTMG5_TCKSRE(x) ((x) << 16) #define DRAMTMG5_TCKESR(x) ((x) << 8) #define DRAMTMG5_TCKE(x) ((x) << 0) #define PTR3_TDINIT1(x) ((x) << 20) #define PTR3_TDINIT0(x) ((x) << 0) #define PTR4_TDINIT3(x) ((x) << 20) #define PTR4_TDINIT2(x) ((x) << 0) #define RFSHTMG_TREFI(x) ((x) << 16) #define RFSHTMG_TRFC(x) ((x) << 0) #define PIR_CLRSR (0x1 << 27) /* Clear status registers */ #define PIR_QSGATE (0x1 << 10) /* Read DQS gate training */ #define PIR_DRAMINIT (0x1 << 8) /* DRAM initialization */ #define PIR_DRAMRST (0x1 << 7) /* DRAM reset */ #define PIR_PHYRST (0x1 << 6) /* PHY reset */ #define PIR_DCAL (0x1 << 5) /* DDL calibration */ #define PIR_PLLINIT (0x1 << 4) /* PLL initialization */ #define PIR_ZCAL (0x1 << 1) /* ZQ calibration */ #define PIR_INIT (0x1 << 0) /* PHY initialization trigger */ #define PGSR_INIT_DONE (0x1 << 0) /* PHY init done */ #define ZQCR_PWRDOWN (0x1 << 31) /* ZQ power down */ #define DATX_IOCR_DQ(x) (x) #define DATX_IOCR_DM (8) #define DATX_IOCR_DQS (9) #define DATX_IOCR_DQSN (10) #define DATX_IOCR_WRITE_DELAY(x) ((x) << 8) #define DATX_IOCR_READ_DELAY(x) ((x) << 0) #endif /* __V3S_REG_DRAM_H__ */ xfel-1.3.5/payloads/v3s_s3/jtag/include/xboot.h000066400000000000000000000004731512120643700212730ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/v3s_s3/jtag/link.ld000066400000000000000000000046451512120643700176270ustar00rootroot00000000000000OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) STACK_UND_SIZE = 0x010; STACK_ABT_SIZE = 0x010; STACK_IRQ_SIZE = 0x010; STACK_FIQ_SIZE = 0x010; STACK_SRV_SIZE = 0x400; MEMORY { ram : org = 0x00008000, len = 0x00001000 /* 4 KB */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text) .obj/source/sys-jtag.o (.text) *(.text*) *(.glue*) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ARM.exidx ALIGN(8) : { PROVIDE (__exidx_start = .); *(.ARM.exidx*) PROVIDE (__exidx_end = .); } > ram .ARM.extab ALIGN(8) : { PROVIDE (__extab_start = .); *(.ARM.extab*) PROVIDE (__extab_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(8) (NOLOAD) : { PROVIDE(__stack_start = .); PROVIDE(__stack_und_start = .); . += STACK_UND_SIZE; PROVIDE(__stack_und_end = .); . = ALIGN(8); PROVIDE(__stack_abt_start = .); . += STACK_ABT_SIZE; PROVIDE(__stack_abt_end = .); . = ALIGN(8); PROVIDE(__stack_irq_start = .); . += STACK_IRQ_SIZE; PROVIDE(__stack_irq_end = .); . = ALIGN(8); PROVIDE(__stack_fiq_start = .); . += STACK_FIQ_SIZE; PROVIDE(__stack_fiq_end = .); . = ALIGN(8); PROVIDE(__stack_srv_start = .); . += STACK_SRV_SIZE; PROVIDE(__stack_srv_end = .); . = ALIGN(8); PROVIDE(__stack_end = .); } > ram .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_info 0 : { *(.debug_info) } .debug_line 0 : { *(.debug_line) } .debug_pubnames 0 : { *(.debug_pubnames) } .debug_aranges 0 : { *(.debug_aranges) } } xfel-1.3.5/payloads/v3s_s3/jtag/source/000077500000000000000000000000001512120643700176405ustar00rootroot00000000000000xfel-1.3.5/payloads/v3s_s3/jtag/source/start.S000066400000000000000000000035701512120643700211260ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ .global _start _start: mov r0, #0 mcr p15, 0, r0, c8, c7, 0 mcr p15, 0, r0, c7, c5, 0 mcr p15, 0, r0, c7, c5, 6 mcr p15, 0, r0, c7, c10, 4 mcr p15, 0, r0, c7, c5, 4 b reset reset: ldr r0, =0x00000040 str sp, [r0, #0] str lr, [r0, #4] mrs lr, cpsr str lr, [r0, #8] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #12] mrc p15, 0, lr, c12, c0, 0 str lr, [r0, #16] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #20] bl sys_jtag_init ldr r0, =0x00000040 ldr sp, [r0, #0] ldr lr, [r0, #4] ldr r1, [r0, #20] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #16] mcr p15, 0, r1, c12, c0, 0 ldr r1, [r0, #12] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #8] msr cpsr, r1 bx lr xfel-1.3.5/payloads/v3s_s3/jtag/source/sys-jtag.c000066400000000000000000000035561512120643700215560ustar00rootroot00000000000000/* * sys-jtag.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include void sys_jtag_init(void) { virtual_addr_t addr; u32_t val; /* Config GPIOF0, GPIOF1, GPIOF3 and GPIOF5 to JTAG mode */ addr = 0x01c208b4 + 0x00; val = read32(addr); val &= ~(0xf << ((0 & 0x7) << 2)); val |= ((0x3 & 0x7) << ((0 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((1 & 0x7) << 2)); val |= ((0x3 & 0x7) << ((1 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((3 & 0x7) << 2)); val |= ((0x3 & 0x7) << ((3 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((5 & 0x7) << 2)); val |= ((0x3 & 0x7) << ((5 & 0x7) << 2)); write32(addr, val); } xfel-1.3.5/payloads/v3s_s3/s3-ddr/000077500000000000000000000000001512120643700165075ustar00rootroot00000000000000xfel-1.3.5/payloads/v3s_s3/s3-ddr/.gitignore000066400000000000000000000000731512120643700204770ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/v3s_s3/s3-ddr/Makefile000066400000000000000000000056311512120643700201540ustar00rootroot00000000000000# # Top makefile # CROSS ?= arm-linux-gnueabihf- NAME := s3-ddr # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 CFLAGS := -g -ggdb -Wall -O3 CXXFLAGS := -g -ggdb -Wall -O3 LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -march=armv7-a -mtune=cortex-a7 -mfpu=vfpv4 -mfloat-abi=hard -marm -mno-thumb-interwork -mno-unaligned-access -fno-stack-protector LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/v3s_s3/s3-ddr/include/000077500000000000000000000000001512120643700201325ustar00rootroot00000000000000xfel-1.3.5/payloads/v3s_s3/s3-ddr/include/byteorder.h000066400000000000000000000043611512120643700223060ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/v3s_s3/s3-ddr/include/endian.h000066400000000000000000000007321512120643700215430ustar00rootroot00000000000000#ifndef __ARM32_ENDIAN_H__ #define __ARM32_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __ARM32_ENDIAN_H__ */ xfel-1.3.5/payloads/v3s_s3/s3-ddr/include/io.h000066400000000000000000000016401512120643700207130ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/v3s_s3/s3-ddr/include/s3/000077500000000000000000000000001512120643700204575ustar00rootroot00000000000000xfel-1.3.5/payloads/v3s_s3/s3-ddr/include/s3/reg-ccu.h000066400000000000000000000044371512120643700221650ustar00rootroot00000000000000#ifndef __S3_REG_CCU_H__ #define __S3_REG_CCU_H__ #define S3_CCU_BASE (0x01c20000) #define CCU_PLL_CPU_CTRL (0x000) #define CCU_PLL_AUDIO_CTRL (0x008) #define CCU_PLL_VIDEO_CTRL (0x010) #define CCU_PLL_VE_CTRL (0x018) #define CCU_PLL_DDR0_CTRL (0x020) #define CCU_PLL_PERIPH0_CTRL (0x028) #define CCU_PLL_ISP_CTRL (0x02c) #define CCU_PLL_PERIPH1_CTRL (0x044) #define CCU_PLL_DDR1_CTRL (0x04c) #define CCU_CPU_AXI_CFG (0x050) #define CCU_AHB_APB0_CFG (0x054) #define CCU_APB1_CFG (0x058) #define CCU_AHB2_CFG (0x05c) #define CCU_BUS_CLK_GATE0 (0x060) #define CCU_BUS_CLK_GATE1 (0x064) #define CCU_BUS_CLK_GATE2 (0x068) #define CCU_BUS_CLK_GATE3 (0x06c) #define CCU_BUS_CLK_GATE4 (0x070) #define CCU_SDMMC0_CLK (0x088) #define CCU_SDMMC1_CLK (0x08c) #define CCU_SDMMC2_CLK (0x090) #define CCU_CE_CLK (0x09c) #define CCU_SPI0_CLK (0x0a0) #define CCU_USBPHY_CFG (0x0cc) #define CCU_DRAM_CFG (0x0f4) #define CCU_PLL_DDR1_CFG (0x0f8) #define CCU_MBUS_RST (0x0fc) #define CCU_DRAM_CLK_GATE (0x100) #define CCU_TCON_CLK (0x118) #define CCU_CSI_MISC_CLK (0x130) #define CCU_CSI_CLK (0x134) #define CCU_VE_CLK (0x13c) #define CCU_AC_DIG_CLK (0x140) #define CCU_AVS_CLK (0x144) #define CCU_MBUS_CLK (0x15c) #define CCU_MIPI_CSI_CLK (0x16c) #define CCU_PLL_STABLE_TIME0 (0x200) #define CCU_PLL_STABLE_TIME1 (0x204) #define CCU_PLL_CPU_BIAS (0x220) #define CCU_PLL_AUDIO_BIAS (0x224) #define CCU_PLL_VIDEO_BIAS (0x228) #define CCU_PLL_VE_BIAS (0x22c) #define CCU_PLL_DDR0_BIAS (0x230) #define CCU_PLL_PERIPH0_BIAS (0x234) #define CCU_PLL_ISP_BIAS (0x238) #define CCU_PLL_PERIPH1_BIAS (0x244) #define CCU_PLL_DDR1_BIAS (0x24C) #define CCU_PLL_CPU_TUN (0x250) #define CCU_PLL_DDR0_TUN (0x260) #define CCU_PLL_CPU_PAT (0x280) #define CCU_PLL_AUDIO_PAT (0x284) #define CCU_PLL_VIDEO_PAT (0x288) #define CCU_PLL_VE_PAT (0x28c) #define CCU_PLL_DDR0_PAT (0x290) #define CCU_PLL_ISP_PAT (0x298) #define CCU_PLL_PERIPH1_PAT (0x2a4) #define CCU_PLL_DDR1_PAT0 (0x2ac) #define CCU_PLL_DDR1_PAT1 (0x2b0) #define CCU_BUS_SOFT_RST0 (0x2c0) #define CCU_BUS_SOFT_RST1 (0x2c4) #define CCU_BUS_SOFT_RST2 (0x2c8) #define CCU_BUS_SOFT_RST3 (0x2d0) #define CCU_BUS_SOFT_RST4 (0x2d8) #define CCU_PS_CTRL (0x300) #define CCU_PS_CNT (0x304) #endif /* __S3_REG_CCU_H__ */ xfel-1.3.5/payloads/v3s_s3/s3-ddr/include/s3/reg-dram.h000066400000000000000000000054651512120643700223400ustar00rootroot00000000000000#ifndef __S3_REG_DRAM_H__ #define __S3_REG_DRAM_H__ #define S3_DRAM_COM_BASE (0x01c62000) #define S3_DRAM_CTL_BASE (0x01c63000) #define MCTL_CR_BL8 (0x4 << 20) #define MCTL_CR_1T (0x1 << 19) #define MCTL_CR_2T (0x0 << 19) #define MCTL_CR_LPDDR3 (0x7 << 16) #define MCTL_CR_LPDDR2 (0x6 << 16) #define MCTL_CR_DDR3 (0x3 << 16) #define MCTL_CR_DDR2 (0x2 << 16) #define MCTL_CR_SEQUENTIAL (0x1 << 15) #define MCTL_CR_INTERLEAVED (0x0 << 15) #define MCTL_CR_32BIT (0x1 << 12) #define MCTL_CR_16BIT (0x0 << 12) #define MCTL_CR_BUS_WIDTH(x) ((x) == 32 ? MCTL_CR_32BIT : MCTL_CR_16BIT) #define MCTL_CR_PAGE_SIZE(x) ((gfls(x) - 4) << 8) #define MCTL_CR_ROW_BITS(x) (((x) - 1) << 4) #define MCTL_CR_EIGHT_BANKS (0x1 << 2) #define MCTL_CR_FOUR_BANKS (0x0 << 2) #define MCTL_CR_DUAL_RANK (0x1 << 0) #define MCTL_CR_SINGLE_RANK (0x0 << 0) #define DRAMTMG0_TWTP(x) ((x) << 24) #define DRAMTMG0_TFAW(x) ((x) << 16) #define DRAMTMG0_TRAS_MAX(x) ((x) << 8) #define DRAMTMG0_TRAS(x) ((x) << 0) #define DRAMTMG1_TXP(x) ((x) << 16) #define DRAMTMG1_TRTP(x) ((x) << 8) #define DRAMTMG1_TRC(x) ((x) << 0) #define DRAMTMG2_TCWL(x) ((x) << 24) #define DRAMTMG2_TCL(x) ((x) << 16) #define DRAMTMG2_TRD2WR(x) ((x) << 8) #define DRAMTMG2_TWR2RD(x) ((x) << 0) #define DRAMTMG3_TMRW(x) ((x) << 16) #define DRAMTMG3_TMRD(x) ((x) << 12) #define DRAMTMG3_TMOD(x) ((x) << 0) #define DRAMTMG4_TRCD(x) ((x) << 24) #define DRAMTMG4_TCCD(x) ((x) << 16) #define DRAMTMG4_TRRD(x) ((x) << 8) #define DRAMTMG4_TRP(x) ((x) << 0) #define DRAMTMG5_TCKSRX(x) ((x) << 24) #define DRAMTMG5_TCKSRE(x) ((x) << 16) #define DRAMTMG5_TCKESR(x) ((x) << 8) #define DRAMTMG5_TCKE(x) ((x) << 0) #define PTR3_TDINIT1(x) ((x) << 20) #define PTR3_TDINIT0(x) ((x) << 0) #define PTR4_TDINIT3(x) ((x) << 20) #define PTR4_TDINIT2(x) ((x) << 0) #define RFSHTMG_TREFI(x) ((x) << 16) #define RFSHTMG_TRFC(x) ((x) << 0) #define PIR_CLRSR (0x1 << 27) /* Clear status registers */ #define PIR_QSGATE (0x1 << 10) /* Read DQS gate training */ #define PIR_DRAMINIT (0x1 << 8) /* DRAM initialization */ #define PIR_DRAMRST (0x1 << 7) /* DRAM reset */ #define PIR_PHYRST (0x1 << 6) /* PHY reset */ #define PIR_DCAL (0x1 << 5) /* DDL calibration */ #define PIR_PLLINIT (0x1 << 4) /* PLL initialization */ #define PIR_ZCAL (0x1 << 1) /* ZQ calibration */ #define PIR_INIT (0x1 << 0) /* PHY initialization trigger */ #define PGSR_INIT_DONE (0x1 << 0) /* PHY init done */ #define ZQCR_PWRDOWN (0x1 << 31) /* ZQ power down */ #define DATX_IOCR_DQ(x) (x) #define DATX_IOCR_DM (8) #define DATX_IOCR_DQS (9) #define DATX_IOCR_DQSN (10) #define DATX_IOCR_WRITE_DELAY(x) ((x) << 8) #define DATX_IOCR_READ_DELAY(x) ((x) << 0) #endif /* __S3_REG_DRAM_H__ */ xfel-1.3.5/payloads/v3s_s3/s3-ddr/include/stdarg.h000066400000000000000000000010541512120643700215670ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/v3s_s3/s3-ddr/include/stddef.h000066400000000000000000000026101512120643700215530ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/v3s_s3/s3-ddr/include/stdint.h000066400000000000000000000010161512120643700216060ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/v3s_s3/s3-ddr/include/string.h000066400000000000000000000004241512120643700216110ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/v3s_s3/s3-ddr/include/types.h000066400000000000000000000021051512120643700214450ustar00rootroot00000000000000#ifndef __ARM32_TYPES_H__ #define __ARM32_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed int ptrdiff_t; typedef signed int intptr_t; typedef unsigned int uintptr_t; typedef unsigned int size_t; typedef signed int ssize_t; typedef signed int off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned int irq_flags_t; typedef unsigned int virtual_addr_t; typedef unsigned int virtual_size_t; typedef unsigned int physical_addr_t; typedef unsigned int physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __ARM32_TYPES_H__ */ xfel-1.3.5/payloads/v3s_s3/s3-ddr/include/xboot.h000066400000000000000000000004731512120643700214420ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/v3s_s3/s3-ddr/link.ld000066400000000000000000000050531512120643700177700ustar00rootroot00000000000000OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) STACK_UND_SIZE = 0x010; STACK_ABT_SIZE = 0x010; STACK_IRQ_SIZE = 0x010; STACK_FIQ_SIZE = 0x010; STACK_SRV_SIZE = 0x400; MEMORY { ram : org = 0x00008000, len = 0x00002000 /* 8 KB */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text) .obj/source/memcpy.o (.text*) .obj/source/memset.o (.text*) .obj/source/sys-uart.o (.text*) .obj/source/sys-clock.o (.text*) .obj/source/sys-dram.o (.text*) *(.text*) *(.glue*) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ARM.exidx ALIGN(8) : { PROVIDE (__exidx_start = .); *(.ARM.exidx*) PROVIDE (__exidx_end = .); } > ram .ARM.extab ALIGN(8) : { PROVIDE (__extab_start = .); *(.ARM.extab*) PROVIDE (__extab_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(8) (NOLOAD) : { PROVIDE(__stack_start = .); PROVIDE(__stack_und_start = .); . += STACK_UND_SIZE; PROVIDE(__stack_und_end = .); . = ALIGN(8); PROVIDE(__stack_abt_start = .); . += STACK_ABT_SIZE; PROVIDE(__stack_abt_end = .); . = ALIGN(8); PROVIDE(__stack_irq_start = .); . += STACK_IRQ_SIZE; PROVIDE(__stack_irq_end = .); . = ALIGN(8); PROVIDE(__stack_fiq_start = .); . += STACK_FIQ_SIZE; PROVIDE(__stack_fiq_end = .); . = ALIGN(8); PROVIDE(__stack_srv_start = .); . += STACK_SRV_SIZE; PROVIDE(__stack_srv_end = .); . = ALIGN(8); PROVIDE(__stack_end = .); } > ram .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_info 0 : { *(.debug_info) } .debug_line 0 : { *(.debug_line) } .debug_pubnames 0 : { *(.debug_pubnames) } .debug_aranges 0 : { *(.debug_aranges) } } xfel-1.3.5/payloads/v3s_s3/s3-ddr/source/000077500000000000000000000000001512120643700200075ustar00rootroot00000000000000xfel-1.3.5/payloads/v3s_s3/s3-ddr/source/memcpy.S000066400000000000000000000212061512120643700214260ustar00rootroot00000000000000/* * memcpy.S */ .text .global memcpy .type memcpy, %function .align 4 memcpy: /* determine copy direction */ cmp r1, r0 bcc .Lmemcpy_backwards moveq r0, #0 /* quick abort for len=0 */ moveq pc, lr stmdb sp!, {r0, lr} /* memcpy() returns dest addr */ subs r2, r2, #4 blt .Lmemcpy_fl4 /* less than 4 bytes */ ands r12, r0, #3 bne .Lmemcpy_fdestul /* oh unaligned destination addr */ ands r12, r1, #3 bne .Lmemcpy_fsrcul /* oh unaligned source addr */ .Lmemcpy_ft8: /* we have aligned source and destination */ subs r2, r2, #8 blt .Lmemcpy_fl12 /* less than 12 bytes (4 from above) */ subs r2, r2, #0x14 blt .Lmemcpy_fl32 /* less than 32 bytes (12 from above) */ stmdb sp!, {r4} /* borrow r4 */ /* blat 32 bytes at a time */ .Lmemcpy_floop32: ldmia r1!, {r3, r4, r12, lr} stmia r0!, {r3, r4, r12, lr} ldmia r1!, {r3, r4, r12, lr} stmia r0!, {r3, r4, r12, lr} subs r2, r2, #0x20 bge .Lmemcpy_floop32 cmn r2, #0x10 ldmgeia r1!, {r3, r4, r12, lr} /* blat a remaining 16 bytes */ stmgeia r0!, {r3, r4, r12, lr} subge r2, r2, #0x10 ldmia sp!, {r4} /* return r4 */ .Lmemcpy_fl32: adds r2, r2, #0x14 /* blat 12 bytes at a time */ .Lmemcpy_floop12: ldmgeia r1!, {r3, r12, lr} stmgeia r0!, {r3, r12, lr} subges r2, r2, #0x0c bge .Lmemcpy_floop12 .Lmemcpy_fl12: adds r2, r2, #8 blt .Lmemcpy_fl4 subs r2, r2, #4 ldrlt r3, [r1], #4 strlt r3, [r0], #4 ldmgeia r1!, {r3, r12} stmgeia r0!, {r3, r12} subge r2, r2, #4 .Lmemcpy_fl4: /* less than 4 bytes to go */ adds r2, r2, #4 ldmeqia sp!, {r0, pc} /* done */ /* copy the crud byte at a time */ cmp r2, #2 ldrb r3, [r1], #1 strb r3, [r0], #1 ldrgeb r3, [r1], #1 strgeb r3, [r0], #1 ldrgtb r3, [r1], #1 strgtb r3, [r0], #1 ldmia sp!, {r0, pc} /* erg - unaligned destination */ .Lmemcpy_fdestul: rsb r12, r12, #4 cmp r12, #2 /* align destination with byte copies */ ldrb r3, [r1], #1 strb r3, [r0], #1 ldrgeb r3, [r1], #1 strgeb r3, [r0], #1 ldrgtb r3, [r1], #1 strgtb r3, [r0], #1 subs r2, r2, r12 blt .Lmemcpy_fl4 /* less the 4 bytes */ ands r12, r1, #3 beq .Lmemcpy_ft8 /* we have an aligned source */ /* erg - unaligned source */ /* This is where it gets nasty ... */ .Lmemcpy_fsrcul: bic r1, r1, #3 ldr lr, [r1], #4 cmp r12, #2 bgt .Lmemcpy_fsrcul3 beq .Lmemcpy_fsrcul2 cmp r2, #0x0c blt .Lmemcpy_fsrcul1loop4 sub r2, r2, #0x0c stmdb sp!, {r4, r5} .Lmemcpy_fsrcul1loop16: mov r3, lr, lsr #8 ldmia r1!, {r4, r5, r12, lr} orr r3, r3, r4, lsl #24 mov r4, r4, lsr #8 orr r4, r4, r5, lsl #24 mov r5, r5, lsr #8 orr r5, r5, r12, lsl #24 mov r12, r12, lsr #8 orr r12, r12, lr, lsl #24 stmia r0!, {r3-r5, r12} subs r2, r2, #0x10 bge .Lmemcpy_fsrcul1loop16 ldmia sp!, {r4, r5} adds r2, r2, #0x0c blt .Lmemcpy_fsrcul1l4 .Lmemcpy_fsrcul1loop4: mov r12, lr, lsr #8 ldr lr, [r1], #4 orr r12, r12, lr, lsl #24 str r12, [r0], #4 subs r2, r2, #4 bge .Lmemcpy_fsrcul1loop4 .Lmemcpy_fsrcul1l4: sub r1, r1, #3 b .Lmemcpy_fl4 .Lmemcpy_fsrcul2: cmp r2, #0x0c blt .Lmemcpy_fsrcul2loop4 sub r2, r2, #0x0c stmdb sp!, {r4, r5} .Lmemcpy_fsrcul2loop16: mov r3, lr, lsr #16 ldmia r1!, {r4, r5, r12, lr} orr r3, r3, r4, lsl #16 mov r4, r4, lsr #16 orr r4, r4, r5, lsl #16 mov r5, r5, lsr #16 orr r5, r5, r12, lsl #16 mov r12, r12, lsr #16 orr r12, r12, lr, lsl #16 stmia r0!, {r3-r5, r12} subs r2, r2, #0x10 bge .Lmemcpy_fsrcul2loop16 ldmia sp!, {r4, r5} adds r2, r2, #0x0c blt .Lmemcpy_fsrcul2l4 .Lmemcpy_fsrcul2loop4: mov r12, lr, lsr #16 ldr lr, [r1], #4 orr r12, r12, lr, lsl #16 str r12, [r0], #4 subs r2, r2, #4 bge .Lmemcpy_fsrcul2loop4 .Lmemcpy_fsrcul2l4: sub r1, r1, #2 b .Lmemcpy_fl4 .Lmemcpy_fsrcul3: cmp r2, #0x0c blt .Lmemcpy_fsrcul3loop4 sub r2, r2, #0x0c stmdb sp!, {r4, r5} .Lmemcpy_fsrcul3loop16: mov r3, lr, lsr #24 ldmia r1!, {r4, r5, r12, lr} orr r3, r3, r4, lsl #8 mov r4, r4, lsr #24 orr r4, r4, r5, lsl #8 mov r5, r5, lsr #24 orr r5, r5, r12, lsl #8 mov r12, r12, lsr #24 orr r12, r12, lr, lsl #8 stmia r0!, {r3-r5, r12} subs r2, r2, #0x10 bge .Lmemcpy_fsrcul3loop16 ldmia sp!, {r4, r5} adds r2, r2, #0x0c blt .Lmemcpy_fsrcul3l4 .Lmemcpy_fsrcul3loop4: mov r12, lr, lsr #24 ldr lr, [r1], #4 orr r12, r12, lr, lsl #8 str r12, [r0], #4 subs r2, r2, #4 bge .Lmemcpy_fsrcul3loop4 .Lmemcpy_fsrcul3l4: sub r1, r1, #1 b .Lmemcpy_fl4 .Lmemcpy_backwards: add r1, r1, r2 add r0, r0, r2 subs r2, r2, #4 blt .Lmemcpy_bl4 /* less than 4 bytes */ ands r12, r0, #3 bne .Lmemcpy_bdestul /* oh unaligned destination addr */ ands r12, r1, #3 bne .Lmemcpy_bsrcul /* oh unaligned source addr */ .Lmemcpy_bt8: /* we have aligned source and destination */ subs r2, r2, #8 blt .Lmemcpy_bl12 /* less than 12 bytes (4 from above) */ stmdb sp!, {r4, lr} subs r2, r2, #0x14 /* less than 32 bytes (12 from above) */ blt .Lmemcpy_bl32 /* blat 32 bytes at a time */ .Lmemcpy_bloop32: ldmdb r1!, {r3, r4, r12, lr} stmdb r0!, {r3, r4, r12, lr} ldmdb r1!, {r3, r4, r12, lr} stmdb r0!, {r3, r4, r12, lr} subs r2, r2, #0x20 bge .Lmemcpy_bloop32 .Lmemcpy_bl32: cmn r2, #0x10 ldmgedb r1!, {r3, r4, r12, lr} /* blat a remaining 16 bytes */ stmgedb r0!, {r3, r4, r12, lr} subge r2, r2, #0x10 adds r2, r2, #0x14 ldmgedb r1!, {r3, r12, lr} /* blat a remaining 12 bytes */ stmgedb r0!, {r3, r12, lr} subge r2, r2, #0x0c ldmia sp!, {r4, lr} .Lmemcpy_bl12: adds r2, r2, #8 blt .Lmemcpy_bl4 subs r2, r2, #4 ldrlt r3, [r1, #-4]! strlt r3, [r0, #-4]! ldmgedb r1!, {r3, r12} stmgedb r0!, {r3, r12} subge r2, r2, #4 .Lmemcpy_bl4: /* less than 4 bytes to go */ adds r2, r2, #4 moveq pc, lr /* copy the crud byte at a time */ cmp r2, #2 ldrb r3, [r1, #-1]! strb r3, [r0, #-1]! ldrgeb r3, [r1, #-1]! strgeb r3, [r0, #-1]! ldrgtb r3, [r1, #-1]! strgtb r3, [r0, #-1]! mov pc, lr /* erg - unaligned destination */ .Lmemcpy_bdestul: cmp r12, #2 /* align destination with byte copies */ ldrb r3, [r1, #-1]! strb r3, [r0, #-1]! ldrgeb r3, [r1, #-1]! strgeb r3, [r0, #-1]! ldrgtb r3, [r1, #-1]! strgtb r3, [r0, #-1]! subs r2, r2, r12 blt .Lmemcpy_bl4 /* less than 4 bytes to go */ ands r12, r1, #3 beq .Lmemcpy_bt8 /* we have an aligned source */ /* erg - unaligned source */ /* This is where it gets nasty ... */ .Lmemcpy_bsrcul: bic r1, r1, #3 ldr r3, [r1, #0] cmp r12, #2 blt .Lmemcpy_bsrcul1 beq .Lmemcpy_bsrcul2 cmp r2, #0x0c blt .Lmemcpy_bsrcul3loop4 sub r2, r2, #0x0c stmdb sp!, {r4, r5, lr} .Lmemcpy_bsrcul3loop16: mov lr, r3, lsl #8 ldmdb r1!, {r3-r5, r12} orr lr, lr, r12, lsr #24 mov r12, r12, lsl #8 orr r12, r12, r5, lsr #24 mov r5, r5, lsl #8 orr r5, r5, r4, lsr #24 mov r4, r4, lsl #8 orr r4, r4, r3, lsr #24 stmdb r0!, {r4, r5, r12, lr} subs r2, r2, #0x10 bge .Lmemcpy_bsrcul3loop16 ldmia sp!, {r4, r5, lr} adds r2, r2, #0x0c blt .Lmemcpy_bsrcul3l4 .Lmemcpy_bsrcul3loop4: mov r12, r3, lsl #8 ldr r3, [r1, #-4]! orr r12, r12, r3, lsr #24 str r12, [r0, #-4]! subs r2, r2, #4 bge .Lmemcpy_bsrcul3loop4 .Lmemcpy_bsrcul3l4: add r1, r1, #3 b .Lmemcpy_bl4 .Lmemcpy_bsrcul2: cmp r2, #0x0c blt .Lmemcpy_bsrcul2loop4 sub r2, r2, #0x0c stmdb sp!, {r4, r5, lr} .Lmemcpy_bsrcul2loop16: mov lr, r3, lsl #16 ldmdb r1!, {r3-r5, r12} orr lr, lr, r12, lsr #16 mov r12, r12, lsl #16 orr r12, r12, r5, lsr #16 mov r5, r5, lsl #16 orr r5, r5, r4, lsr #16 mov r4, r4, lsl #16 orr r4, r4, r3, lsr #16 stmdb r0!, {r4, r5, r12, lr} subs r2, r2, #0x10 bge .Lmemcpy_bsrcul2loop16 ldmia sp!, {r4, r5, lr} adds r2, r2, #0x0c blt .Lmemcpy_bsrcul2l4 .Lmemcpy_bsrcul2loop4: mov r12, r3, lsl #16 ldr r3, [r1, #-4]! orr r12, r12, r3, lsr #16 str r12, [r0, #-4]! subs r2, r2, #4 bge .Lmemcpy_bsrcul2loop4 .Lmemcpy_bsrcul2l4: add r1, r1, #2 b .Lmemcpy_bl4 .Lmemcpy_bsrcul1: cmp r2, #0x0c blt .Lmemcpy_bsrcul1loop4 sub r2, r2, #0x0c stmdb sp!, {r4, r5, lr} .Lmemcpy_bsrcul1loop32: mov lr, r3, lsl #24 ldmdb r1!, {r3-r5, r12} orr lr, lr, r12, lsr #8 mov r12, r12, lsl #24 orr r12, r12, r5, lsr #8 mov r5, r5, lsl #24 orr r5, r5, r4, lsr #8 mov r4, r4, lsl #24 orr r4, r4, r3, lsr #8 stmdb r0!, {r4, r5, r12, lr} subs r2, r2, #0x10 bge .Lmemcpy_bsrcul1loop32 ldmia sp!, {r4, r5, lr} adds r2, r2, #0x0c blt .Lmemcpy_bsrcul1l4 .Lmemcpy_bsrcul1loop4: mov r12, r3, lsl #24 ldr r3, [r1, #-4]! orr r12, r12, r3, lsr #8 str r12, [r0, #-4]! subs r2, r2, #4 bge .Lmemcpy_bsrcul1loop4 .Lmemcpy_bsrcul1l4: add r1, r1, #1 b .Lmemcpy_bl4 xfel-1.3.5/payloads/v3s_s3/s3-ddr/source/memset.S000066400000000000000000000037721512120643700214360ustar00rootroot00000000000000/* * memcpy.S */ .text .global memset .type memset, %function .align 4 memset: stmfd sp!, {r0} /* remember address for return value */ and r1, r1, #0x000000ff /* we write bytes */ cmp r2, #0x00000004 /* do we have less than 4 bytes */ blt .Lmemset_lessthanfour /* first we will word align the address */ ands r3, r0, #0x00000003 /* get the bottom two bits */ beq .Lmemset_addraligned /* the address is word aligned */ rsb r3, r3, #0x00000004 sub r2, r2, r3 cmp r3, #0x00000002 strb r1, [r0], #0x0001 /* set 1 byte */ strgeb r1, [r0], #0x0001 /* set another byte */ strgtb r1, [r0], #0x0001 /* and a third */ cmp r2, #0x00000004 blt .Lmemset_lessthanfour /* now we must be word aligned */ .Lmemset_addraligned: orr r3, r1, r1, lsl #8 /* repeat the byte into a word */ orr r3, r3, r3, lsl #16 /* we know we have at least 4 bytes ... */ cmp r2, #0x00000020 /* if less than 32 then use words */ blt .Lmemset_lessthan32 /* we have at least 32 so lets use quad words */ stmfd sp!, {r4-r6} /* store registers */ mov r4, r3 /* duplicate data */ mov r5, r3 mov r6, r3 .Lmemset_loop16: stmia r0!, {r3-r6} /* store 16 bytes */ sub r2, r2, #0x00000010 /* adjust count */ cmp r2, #0x00000010 /* still got at least 16 bytes ? */ bgt .Lmemset_loop16 ldmfd sp!, {r4-r6} /* restore registers */ /* do we need to set some words as well ? */ cmp r2, #0x00000004 blt .Lmemset_lessthanfour /* have either less than 16 or less than 32 depending on route taken */ .Lmemset_lessthan32: /* we have at least 4 bytes so copy as words */ .Lmemset_loop4: str r3, [r0], #0x0004 sub r2, r2, #0x0004 cmp r2, #0x00000004 bge .Lmemset_loop4 .Lmemset_lessthanfour: cmp r2, #0x00000000 ldmeqfd sp!, {r0} moveq pc, lr /* zero length so exit */ cmp r2, #0x00000002 strb r1, [r0], #0x0001 /* set 1 byte */ strgeb r1, [r0], #0x0001 /* set another byte */ strgtb r1, [r0], #0x0001 /* and a third */ ldmfd sp!, {r0} mov pc, lr /* exit */ xfel-1.3.5/payloads/v3s_s3/s3-ddr/source/start.S000066400000000000000000000036351512120643700212770ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ .global _start _start: mov r0, #0 mcr p15, 0, r0, c8, c7, 0 mcr p15, 0, r0, c7, c5, 0 mcr p15, 0, r0, c7, c5, 6 mcr p15, 0, r0, c7, c10, 4 mcr p15, 0, r0, c7, c5, 4 b reset reset: ldr r0, =0x00000040 str sp, [r0, #0] str lr, [r0, #4] mrs lr, cpsr str lr, [r0, #8] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #12] mrc p15, 0, lr, c12, c0, 0 str lr, [r0, #16] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #20] bl sys_uart_init bl sys_clock_init bl sys_dram_init ldr r0, =0x00000040 ldr sp, [r0, #0] ldr lr, [r0, #4] ldr r1, [r0, #20] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #16] mcr p15, 0, r1, c12, c0, 0 ldr r1, [r0, #12] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #8] msr cpsr, r1 bx lr xfel-1.3.5/payloads/v3s_s3/s3-ddr/source/sys-clock.c000066400000000000000000000050721512120643700220660ustar00rootroot00000000000000/* * sys-clock.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include #include static inline void sdelay(int loops) { __asm__ __volatile__ ("1:\n" "subs %0, %1, #1\n" "bne 1b":"=r" (loops):"0"(loops)); } static void clock_set_pll_cpu(u32_t clk) { int p = 0; int k = 1; int m = 1; u32_t val; if(clk > 1152000000) { k = 2; } else if(clk > 768000000) { k = 3; m = 2; } /* Switch to 24MHz clock while changing cpu pll */ val = (2 << 0) | (1 << 8) | (1 << 16); write32(S3_CCU_BASE + CCU_CPU_AXI_CFG, val); /* cpu pll rate = ((24000000 * n * k) >> p) / m */ val = (0x1 << 31); val |= ((p & 0x3) << 16); val |= ((((clk / (24000000 * k / m)) - 1) & 0x1f) << 8); val |= (((k - 1) & 0x3) << 4); val |= (((m - 1) & 0x3) << 0); write32(S3_CCU_BASE + CCU_PLL_CPU_CTRL, val); sdelay(200); /* Switch clock source */ val = (2 << 0) | (1 << 8) | (2 << 16); write32(S3_CCU_BASE + CCU_CPU_AXI_CFG, val); } void sys_clock_init(void) { clock_set_pll_cpu(1008000000); /* pll video - 396MHZ */ write32(S3_CCU_BASE + CCU_PLL_VIDEO_CTRL, 0x91004107); /* pll periph0 - 600MHZ */ write32(S3_CCU_BASE + CCU_PLL_PERIPH0_CTRL, 0x90041811); while(!(read32(S3_CCU_BASE + CCU_PLL_PERIPH0_CTRL) & (1 << 28))); /* ahb1 = pll periph0 / 3, apb1 = ahb1 / 2 */ write32(S3_CCU_BASE + CCU_AHB_APB0_CFG, 0x00003180); /* mbus = pll periph0 / 4 */ write32(S3_CCU_BASE + CCU_MBUS_CLK, 0x81000003); } xfel-1.3.5/payloads/v3s_s3/s3-ddr/source/sys-dram.c000066400000000000000000000505641512120643700217240ustar00rootroot00000000000000/* * sys-dram.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include #include #include #define CONFIG_DRAM_BASE (0x40000000) #define CONFIG_DRAM_CLK (360) #define CONFIG_DRAM_ZQ (14779) #define clrbits_le32(addr, clear) \ write32(((virtual_addr_t)(addr)), read32(((virtual_addr_t)(addr))) & ~(clear)) #define setbits_le32(addr, set) \ write32(((virtual_addr_t)(addr)), read32(((virtual_addr_t)(addr))) | (set)) #define clrsetbits_le32(addr, clear, set) \ write32(((virtual_addr_t)(addr)), (read32(((virtual_addr_t)(addr))) & ~(clear)) | (set)) #define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d)) #define REPEAT_BYTE(x) ((~0ul / 0xff) * (x)) struct s3_dram_com_reg_t { u32_t cr; /* 0x00 control register */ u8_t res0[0xc]; /* 0x04 */ u32_t mcr[16][2]; /* 0x10 */ u32_t bwcr; /* 0x90 bandwidth control register */ u32_t maer; /* 0x94 master enable register */ u32_t mapr; /* 0x98 master priority register */ u32_t mcgcr; /* 0x9c */ u32_t cpu_bwcr; /* 0xa0 */ u32_t gpu_bwcr; /* 0xa4 */ u32_t ve_bwcr; /* 0xa8 */ u32_t disp_bwcr; /* 0xac */ u32_t other_bwcr; /* 0xb0 */ u32_t total_bwcr; /* 0xb4 */ u8_t res1[0x8]; /* 0xb8 */ u32_t swonr; /* 0xc0 */ u32_t swoffr; /* 0xc4 */ u8_t res2[0x8]; /* 0xc8 */ u32_t cccr; /* 0xd0 */ u8_t res3[0x72c]; /* 0xd4 */ u32_t protect; /* 0x800 */ }; struct s3_dram_ctl_reg_t { u32_t pir; /* 0x00 PHY initialization register */ u32_t pwrctl; /* 0x04 */ u32_t mrctrl; /* 0x08 */ u32_t clken; /* 0x0c */ u32_t pgsr[2]; /* 0x10 PHY general status registers */ u32_t statr; /* 0x18 */ u8_t res1[0x14]; /* 0x1c */ u32_t mr[4]; /* 0x30 mode registers */ u32_t pllgcr; /* 0x40 */ u32_t ptr[5]; /* 0x44 PHY timing registers */ u32_t dramtmg[9]; /* 0x58 DRAM timing registers */ u32_t odtcfg; /* 0x7c */ u32_t pitmg[2]; /* 0x80 PHY interface timing registers */ u8_t res2[0x4]; /* 0x88 */ u32_t rfshctl0; /* 0x8c */ u32_t rfshtmg; /* 0x90 refresh timing */ u32_t rfshctl1; /* 0x94 */ u32_t pwrtmg; /* 0x98 */ u8_t res3[0x20]; /* 0x9c */ u32_t dqsgmr; /* 0xbc */ u32_t dtcr; /* 0xc0 */ u32_t dtar[4]; /* 0xc4 */ u32_t dtdr[2]; /* 0xd4 */ u32_t dtmr[2]; /* 0xdc */ u32_t dtbmr; /* 0xe4 */ u32_t catr[2]; /* 0xe8 */ u32_t dtedr[2]; /* 0xf0 */ u8_t res4[0x8]; /* 0xf8 */ u32_t pgcr[4]; /* 0x100 PHY general configuration registers */ u32_t iovcr[2]; /* 0x110 */ u32_t dqsdr; /* 0x118 */ u32_t dxccr; /* 0x11c */ u32_t odtmap; /* 0x120 */ u32_t zqctl[2]; /* 0x124 */ u8_t res6[0x14]; /* 0x12c */ u32_t zqcr; /* 0x140 ZQ control register */ u32_t zqsr; /* 0x144 ZQ status register */ u32_t zqdr[3]; /* 0x148 ZQ data registers */ u8_t res7[0x6c]; /* 0x154 */ u32_t sched; /* 0x1c0 */ u32_t perfhpr[2]; /* 0x1c4 */ u32_t perflpr[2]; /* 0x1cc */ u32_t perfwr[2]; /* 0x1d4 */ u8_t res8[0x2c]; /* 0x1dc */ u32_t aciocr; /* 0x208 */ u8_t res9[0xf4]; /* 0x20c */ struct { /* 0x300 DATX8 modules*/ u32_t mdlr; /* 0x00 */ u32_t lcdlr[3]; /* 0x04 */ u32_t iocr[11]; /* 0x10 IO configuration register */ u32_t bdlr6; /* 0x3c */ u32_t gtr; /* 0x40 */ u32_t gcr; /* 0x44 */ u32_t gsr[3]; /* 0x48 */ u8_t res0[0x2c];/* 0x54 */ } datx[4]; u8_t res10[0x388]; /* 0x500 */ u32_t upd2; /* 0x888 */ }; struct dram_para_t { u32_t read_delays; u32_t write_delays; u16_t page_size; u8_t bus_width; u8_t dual_rank; u8_t row_bits; u8_t bank_bits; }; static inline void sdelay(int loops) { __asm__ __volatile__ ("1:\n" "subs %0, %1, #1\n" "bne 1b":"=r" (loops):"0"(loops)); } static inline int gfls(int x) { int r = 32; if(!x) return 0; if(!(x & 0xffff0000u)) { x <<= 16; r -= 16; } if(!(x & 0xff000000u)) { x <<= 8; r -= 8; } if(!(x & 0xf0000000u)) { x <<= 4; r -= 4; } if(!(x & 0xc0000000u)) { x <<= 2; r -= 2; } if(!(x & 0x80000000u)) { x <<= 1; r -= 1; } return r; } static inline int ns_to_t(int ns) { unsigned int freq = CONFIG_DRAM_CLK / 2; return DIV_ROUND_UP(freq * ns, 1000); } static u32_t bin_to_mgray(int val) { u8_t table[32]; table[0] = 0x00; table[1] = 0x01; table[2] = 0x02; table[3] = 0x03; table[4] = 0x06; table[5] = 0x07; table[6] = 0x04; table[7] = 0x05; table[8] = 0x0c; table[9] = 0x0d; table[10] = 0x0e; table[11] = 0x0f; table[12] = 0x0a; table[13] = 0x0b; table[14] = 0x08; table[15] = 0x09; table[16] = 0x18; table[17] = 0x19; table[18] = 0x1a; table[19] = 0x1b; table[20] = 0x1e; table[21] = 0x1f; table[22] = 0x1c; table[23] = 0x1d; table[24] = 0x14; table[25] = 0x15; table[26] = 0x16; table[27] = 0x17; table[28] = 0x12; table[29] = 0x13; table[30] = 0x10; table[31] = 0x11; return table[clamp(val, 0, 31)]; } static int mgray_to_bin(u32_t val) { u8_t table[32]; table[0] = 0x00; table[1] = 0x01; table[2] = 0x02; table[3] = 0x03; table[4] = 0x06; table[5] = 0x07; table[6] = 0x04; table[7] = 0x05; table[8] = 0x0e; table[9] = 0x0f; table[10] = 0x0c; table[11] = 0x0d; table[12] = 0x08; table[13] = 0x09; table[14] = 0x0a; table[15] = 0x0b; table[16] = 0x1e; table[17] = 0x1f; table[18] = 0x1c; table[19] = 0x1d; table[20] = 0x18; table[21] = 0x19; table[22] = 0x1a; table[23] = 0x1b; table[24] = 0x10; table[25] = 0x11; table[26] = 0x12; table[27] = 0x13; table[28] = 0x16; table[29] = 0x17; table[30] = 0x14; table[31] = 0x15; return table[val & 0x1f]; } static void clock_set_pll_ddr(u32_t clk) { int n = 32; int k = 1; int m = 2; u32_t val; /* ddr pll rate = 24000000 * n * k / m */ if(clk > 24000000 * k * n / m) { m = 1; if(clk > 24000000 * k * n / m) { k = 2; } } val = (0x1 << 31); val |= (0x0 << 24); val |= (0x1 << 20); val |= ((((clk / (24000000 * k / m)) - 1) & 0x1f) << 8); val |= (((k - 1) & 0x3) << 4); val |= (((m - 1) & 0x3) << 0); write32(S3_CCU_BASE + CCU_PLL_DDR0_CTRL, val); sdelay(5500); } static void mctl_await_completion(u32_t * reg, u32_t mask, u32_t val) { int timeout = 0; while((read32((virtual_addr_t)reg) & mask) != val) { if(timeout++ > 10000) break; } } static int mctl_mem_matches(u32_t offset) { write32(CONFIG_DRAM_BASE, 0); write32(CONFIG_DRAM_BASE + offset, 0xaa55aa55); __asm__ __volatile__ ("dsb" : : : "memory"); return (read32(CONFIG_DRAM_BASE) == read32(CONFIG_DRAM_BASE + offset)) ? 1 : 0; } static void mctl_phy_init(u32_t val) { struct s3_dram_ctl_reg_t * ctl = (struct s3_dram_ctl_reg_t *)S3_DRAM_CTL_BASE; write32((virtual_addr_t)&ctl->pir, val | PIR_INIT); mctl_await_completion(&ctl->pgsr[0], PGSR_INIT_DONE, 0x1); } static void mctl_dq_delay(u32_t read, u32_t write) { struct s3_dram_ctl_reg_t * ctl = (struct s3_dram_ctl_reg_t *)S3_DRAM_CTL_BASE; int i, j; u32_t val; for(i = 0; i < 4; i++) { val = DATX_IOCR_WRITE_DELAY((write >> (i * 4)) & 0xf) | DATX_IOCR_READ_DELAY(((read >> (i * 4)) & 0xf) * 2); for(j = DATX_IOCR_DQ(0); j <= DATX_IOCR_DM; j++) write32((virtual_addr_t)&ctl->datx[i].iocr[j], val); } clrbits_le32(&ctl->pgcr[0], 1 << 26); for(i = 0; i < 4; i++) { val = DATX_IOCR_WRITE_DELAY((write >> (16 + i * 4)) & 0xf) | DATX_IOCR_READ_DELAY((read >> (16 + i * 4)) & 0xf); write32((virtual_addr_t)&ctl->datx[i].iocr[DATX_IOCR_DQS], val); write32((virtual_addr_t)&ctl->datx[i].iocr[DATX_IOCR_DQSN], val); } setbits_le32(&ctl->pgcr[0], 1 << 26); sdelay(1); } static void mctl_set_master_priority(void) { struct s3_dram_com_reg_t * com = (struct s3_dram_com_reg_t *)S3_DRAM_COM_BASE; write32((virtual_addr_t)&com->bwcr, 0x00010190); write32((virtual_addr_t)&com->mapr, 0x00000001); write32((virtual_addr_t)&com->mcr[0][0], 0x0200000d); write32((virtual_addr_t)&com->mcr[0][1], 0x00800100); write32((virtual_addr_t)&com->mcr[1][0], 0x06000009); write32((virtual_addr_t)&com->mcr[1][1], 0x01000400); write32((virtual_addr_t)&com->mcr[2][0], 0x0200000d); write32((virtual_addr_t)&com->mcr[2][1], 0x00600100); write32((virtual_addr_t)&com->mcr[3][0], 0x0100000d); write32((virtual_addr_t)&com->mcr[3][1], 0x00200080); write32((virtual_addr_t)&com->mcr[4][0], 0x07000009); write32((virtual_addr_t)&com->mcr[4][1], 0x01000640); write32((virtual_addr_t)&com->mcr[5][0], 0x0100000d); write32((virtual_addr_t)&com->mcr[5][1], 0x00200080); write32((virtual_addr_t)&com->mcr[6][0], 0x01000009); write32((virtual_addr_t)&com->mcr[6][1], 0x00400080); write32((virtual_addr_t)&com->mcr[7][0], 0x0100000d); write32((virtual_addr_t)&com->mcr[7][1], 0x00400080); write32((virtual_addr_t)&com->mcr[8][0], 0x0100000d); write32((virtual_addr_t)&com->mcr[8][1], 0x00400080); write32((virtual_addr_t)&com->mcr[9][0], 0x04000009); write32((virtual_addr_t)&com->mcr[9][1], 0x00400100); write32((virtual_addr_t)&com->mcr[10][0], 0x2000030d); write32((virtual_addr_t)&com->mcr[10][1], 0x04001800); write32((virtual_addr_t)&com->mcr[11][0], 0x04000009); write32((virtual_addr_t)&com->mcr[11][1], 0x00400120); } static void mctl_set_timing_params(struct dram_para_t * para) { struct s3_dram_ctl_reg_t * ctl = (struct s3_dram_ctl_reg_t *)S3_DRAM_CTL_BASE; u8_t tccd = 2; u8_t tfaw = ns_to_t(50); u8_t trrd = max(ns_to_t(10), 4); u8_t trcd = ns_to_t(15); u8_t trc = ns_to_t(53); u8_t txp = max(ns_to_t(8), 3); u8_t twtr = max(ns_to_t(8), 4); u8_t trtp = max(ns_to_t(8), 4); u8_t twr = max(ns_to_t(15), 3); u8_t trp = ns_to_t(15); u8_t tras = ns_to_t(38); u16_t trefi = ns_to_t(7800) / 32; u16_t trfc = ns_to_t(350); u8_t tmrw = 0; u8_t tmrd = 4; u8_t tmod = 12; u8_t tcke = 3; u8_t tcksrx = 5; u8_t tcksre = 5; u8_t tckesr = 4; u8_t trasmax = 24; u8_t tcl = 6; /* CL 12 */ u8_t tcwl = 4; /* CWL 8 */ u8_t t_rdata_en = 4; u8_t wr_latency = 2; u32_t tdinit0 = (500 * CONFIG_DRAM_CLK) + 1; /* 500us */ u32_t tdinit1 = (360 * CONFIG_DRAM_CLK) / 1000 + 1; /* 360ns */ u32_t tdinit2 = (200 * CONFIG_DRAM_CLK) + 1; /* 200us */ u32_t tdinit3 = (1 * CONFIG_DRAM_CLK) + 1; /* 1us */ u8_t twtp = tcwl + 2 + twr; /* WL + BL / 2 + tWR */ u8_t twr2rd = tcwl + 2 + twtr; /* WL + BL / 2 + tWTR */ u8_t trd2wr = tcl + 2 + 1 - tcwl; /* RL + BL / 2 + 2 - WL */ write32((virtual_addr_t)&ctl->mr[0], 0x1c70); /* CL=11, WR=12 */ write32((virtual_addr_t)&ctl->mr[1], 0x40); write32((virtual_addr_t)&ctl->mr[2], 0x18); /* CWL=8 */ write32((virtual_addr_t)&ctl->mr[3], 0x0); /* Set DRAM timing */ write32((virtual_addr_t)&ctl->dramtmg[0], DRAMTMG0_TWTP(twtp) | DRAMTMG0_TFAW(tfaw) | DRAMTMG0_TRAS_MAX(trasmax) | DRAMTMG0_TRAS(tras)); write32((virtual_addr_t)&ctl->dramtmg[1], DRAMTMG1_TXP(txp) | DRAMTMG1_TRTP(trtp) | DRAMTMG1_TRC(trc)); write32((virtual_addr_t)&ctl->dramtmg[2], DRAMTMG2_TCWL(tcwl) | DRAMTMG2_TCL(tcl) | DRAMTMG2_TRD2WR(trd2wr) | DRAMTMG2_TWR2RD(twr2rd)); write32((virtual_addr_t)&ctl->dramtmg[3], DRAMTMG3_TMRW(tmrw) | DRAMTMG3_TMRD(tmrd) | DRAMTMG3_TMOD(tmod)); write32((virtual_addr_t)&ctl->dramtmg[4], DRAMTMG4_TRCD(trcd) | DRAMTMG4_TCCD(tccd) | DRAMTMG4_TRRD(trrd) | DRAMTMG4_TRP(trp)); write32((virtual_addr_t)&ctl->dramtmg[5], DRAMTMG5_TCKSRX(tcksrx) | DRAMTMG5_TCKSRE(tcksre) | DRAMTMG5_TCKESR(tckesr) | DRAMTMG5_TCKE(tcke)); /* Set two rank timing */ clrsetbits_le32(&ctl->dramtmg[8], (0xff << 8) | (0xff << 0), (0x66 << 8) | (0x10 << 0)); /* Set PHY interface timing, write latency and read latency configure */ write32((virtual_addr_t)&ctl->pitmg[0], (0x2 << 24) | (t_rdata_en << 16) | (0x1 << 8) | (wr_latency << 0)); /* Set PHY timing, PTR0-2 use default */ write32((virtual_addr_t)&ctl->ptr[3], PTR3_TDINIT0(tdinit0) | PTR3_TDINIT1(tdinit1)); write32((virtual_addr_t)&ctl->ptr[4], PTR4_TDINIT2(tdinit2) | PTR4_TDINIT3(tdinit3)); /* Set refresh timing */ write32((virtual_addr_t)&ctl->rfshtmg, RFSHTMG_TREFI(trefi) | RFSHTMG_TRFC(trfc)); } static void mctl_zq_calibration(struct dram_para_t * para) { struct s3_dram_ctl_reg_t * ctl = (struct s3_dram_ctl_reg_t *)S3_DRAM_CTL_BASE; u16_t zq_val[6]; u32_t val; u8_t zq; int i; if(((read32(0x01c00000 + 0x24) & 0xff) == 0) && ((read32(0x01c00000 + 0xf0) & 0x1) == 0)) { clrsetbits_le32(&ctl->zqcr, 0xffff, CONFIG_DRAM_ZQ & 0xffff); write32((virtual_addr_t)&ctl->pir, PIR_CLRSR); mctl_phy_init(PIR_ZCAL); val = read32((virtual_addr_t)&ctl->zqdr[0]); val &= (0x1f << 16) | (0x1f << 0); val |= val << 8; write32((virtual_addr_t)&ctl->zqdr[0], val); val = read32((virtual_addr_t)&ctl->zqdr[1]); val &= (0x1f << 16) | (0x1f << 0); val |= val << 8; write32((virtual_addr_t)&ctl->zqdr[1], val); write32((virtual_addr_t)&ctl->zqdr[2], val); } else { write32((virtual_addr_t)&ctl->zqdr[2], 0x0a0a0a0a); for(i = 0; i < 6; i++) { zq = (CONFIG_DRAM_ZQ >> (i * 4)) & 0xf; write32((virtual_addr_t)&ctl->zqcr, (zq << 20) | (zq << 16) | (zq << 12) | (zq << 8) | (zq << 4) | (zq << 0)); write32((virtual_addr_t)&ctl->pir, PIR_CLRSR); mctl_phy_init(PIR_ZCAL); zq_val[i] = read32((virtual_addr_t)&ctl->zqdr[0]) & 0xff; write32((virtual_addr_t)&ctl->zqdr[2], REPEAT_BYTE(zq_val[i])); write32((virtual_addr_t)&ctl->pir, PIR_CLRSR); mctl_phy_init(PIR_ZCAL); val = read32((virtual_addr_t)&ctl->zqdr[0]) >> 24; zq_val[i] |= bin_to_mgray(mgray_to_bin(val) - 1) << 8; } write32((virtual_addr_t)&ctl->zqdr[0], (zq_val[1] << 16) | zq_val[0]); write32((virtual_addr_t)&ctl->zqdr[1], (zq_val[3] << 16) | zq_val[2]); write32((virtual_addr_t)&ctl->zqdr[2], (zq_val[5] << 16) | zq_val[4]); } } static void mctl_set_cr(struct dram_para_t * para) { struct s3_dram_com_reg_t * com = (struct s3_dram_com_reg_t *)S3_DRAM_COM_BASE; write32((virtual_addr_t)&com->cr, MCTL_CR_BL8 | MCTL_CR_2T | MCTL_CR_DDR3 | MCTL_CR_EIGHT_BANKS | MCTL_CR_BUS_WIDTH(para->bus_width) | MCTL_CR_INTERLEAVED | (para->dual_rank ? MCTL_CR_DUAL_RANK : MCTL_CR_SINGLE_RANK) | MCTL_CR_PAGE_SIZE(para->page_size) | MCTL_CR_ROW_BITS(para->row_bits)); } static void mctl_sys_init(struct dram_para_t * para) { struct s3_dram_ctl_reg_t * ctl = (struct s3_dram_ctl_reg_t *)S3_DRAM_CTL_BASE; u32_t val; val = read32(S3_CCU_BASE + CCU_MBUS_CLK); val &= ~(0x1 << 31); write32(S3_CCU_BASE + CCU_MBUS_CLK, val); val = read32(S3_CCU_BASE + CCU_MBUS_RST); val &= ~(0x1 << 31); write32(S3_CCU_BASE + CCU_MBUS_RST, val); val = read32(S3_CCU_BASE + CCU_BUS_CLK_GATE0); val &= ~(0x1 << 14); write32(S3_CCU_BASE + CCU_BUS_CLK_GATE0, val); val = read32(S3_CCU_BASE + CCU_BUS_SOFT_RST0); val &= ~(0x1 << 14); write32(S3_CCU_BASE + CCU_BUS_SOFT_RST0, val); val = read32(S3_CCU_BASE + CCU_PLL_DDR0_CTRL); val &= ~(0x1 << 31); write32(S3_CCU_BASE + CCU_PLL_DDR0_CTRL, val); sdelay(10); val = read32(S3_CCU_BASE + CCU_DRAM_CLK_GATE); val &= ~(0x1 << 31); write32(S3_CCU_BASE + CCU_DRAM_CLK_GATE, val); sdelay(1000); clock_set_pll_ddr(CONFIG_DRAM_CLK * 2 * 1000000); val = read32(S3_CCU_BASE + CCU_DRAM_CFG); val &= ~(0xf << 0); val &= ~(0x3 << 20); val |= ((1 - 1) << 0); val |= (0x0 << 20); val |= (0x1 << 16); write32(S3_CCU_BASE + CCU_DRAM_CFG, val); mctl_await_completion((u32_t *)(S3_CCU_BASE + CCU_DRAM_CFG), 0x1 << 16, 0); val = read32(S3_CCU_BASE + CCU_BUS_SOFT_RST0); val |= (0x1 << 14); write32(S3_CCU_BASE + CCU_BUS_SOFT_RST0, val); val = read32(S3_CCU_BASE + CCU_BUS_CLK_GATE0); val |= (0x1 << 14); write32(S3_CCU_BASE + CCU_BUS_CLK_GATE0, val); val = read32(S3_CCU_BASE + CCU_MBUS_RST); val |= (0x1 << 31); write32(S3_CCU_BASE + CCU_MBUS_RST, val); val = read32(S3_CCU_BASE + CCU_MBUS_CLK); val |= (0x1 << 31); write32(S3_CCU_BASE + CCU_MBUS_CLK, val); val = read32(S3_CCU_BASE + CCU_DRAM_CFG); val |= (0x1 << 31); write32(S3_CCU_BASE + CCU_DRAM_CFG, val); sdelay(10); write32((virtual_addr_t)&ctl->clken, 0xc00e); sdelay(500); } static int mctl_channel_init(struct dram_para_t * para) { struct s3_dram_com_reg_t * com = (struct s3_dram_com_reg_t *)S3_DRAM_COM_BASE; struct s3_dram_ctl_reg_t * ctl = (struct s3_dram_ctl_reg_t *)S3_DRAM_CTL_BASE; int i; mctl_set_cr(para); mctl_set_timing_params(para); mctl_set_master_priority(); clrbits_le32(&ctl->pgcr[0], (1 << 30) | 0x3f); clrsetbits_le32(&ctl->pgcr[1], 1 << 24, 1 << 26); write32((virtual_addr_t)&com->protect, 0x94be6fa3); sdelay(100); clrsetbits_le32(&ctl->upd2, 0xfff << 16, 0x50 << 16); write32((virtual_addr_t)&com->protect, 0x0); sdelay(100); for(i = 0; i < 4; i++) clrsetbits_le32(&ctl->datx[i].gcr, (0x3 << 4) | (0x1 << 1) | (0x3 << 2) | (0x3 << 12) | (0x3 << 14), 0x20); setbits_le32(&ctl->aciocr, 0x1 << 1); setbits_le32(&ctl->pgcr[2], 0x3 << 6); clrbits_le32(&ctl->pgcr[0], (0x3 << 14) | (0x3 << 12)); clrsetbits_le32(&ctl->pgcr[2], (0x3 << 10) | (0x3 << 8), (0x1 << 10) | (0x2 << 8)); if(para->bus_width != 32) { write32((virtual_addr_t)&ctl->datx[2].gcr, 0x0); write32((virtual_addr_t)&ctl->datx[3].gcr, 0x0); } clrsetbits_le32(&ctl->dtcr, 0xf << 24, (para->dual_rank ? 0x3 : 0x1) << 24); if(para->read_delays || para->write_delays) { mctl_dq_delay(para->read_delays, para->write_delays); sdelay(50); } mctl_zq_calibration(para); mctl_phy_init(PIR_PLLINIT | PIR_DCAL | PIR_PHYRST | PIR_DRAMRST | PIR_DRAMINIT | PIR_QSGATE); if(read32((virtual_addr_t)&ctl->pgsr[0]) & (0xfe << 20)) { if(((read32((virtual_addr_t)&ctl->datx[0].gsr[0]) >> 24) & 0x2) || ((read32((virtual_addr_t)&ctl->datx[1].gsr[0]) >> 24) & 0x2)) { clrsetbits_le32(&ctl->dtcr, 0xf << 24, 0x1 << 24); para->dual_rank = 0; } if(((read32((virtual_addr_t)&ctl->datx[2].gsr[0]) >> 24) & 0x1) || ((read32((virtual_addr_t)&ctl->datx[3].gsr[0]) >> 24) & 0x1)) { write32((virtual_addr_t)&ctl->datx[2].gcr, 0x0); write32((virtual_addr_t)&ctl->datx[3].gcr, 0x0); para->bus_width = 16; } mctl_set_cr(para); sdelay(20); mctl_phy_init(PIR_QSGATE); if(read32((virtual_addr_t)&ctl->pgsr[0]) & (0xfe << 20)) return 1; } mctl_await_completion(&ctl->statr, 0x1, 0x1); setbits_le32(&ctl->rfshctl0, 0x1 << 31); sdelay(10); clrbits_le32(&ctl->rfshctl0, 0x1 << 31); sdelay(10); write32((virtual_addr_t)&ctl->pgcr[3], 0x00aa0060); setbits_le32(&ctl->zqcr, ZQCR_PWRDOWN); write32((virtual_addr_t)&com->maer, 0xffffffff); return 0; } static void mctl_auto_detect_dram_size(struct dram_para_t * para) { para->page_size = 512; para->row_bits = 16; para->bank_bits = 2; mctl_set_cr(para); for(para->row_bits = 11; para->row_bits < 16; para->row_bits++) { if(mctl_mem_matches((1 << (para->row_bits + para->bank_bits)) * para->page_size)) break; } para->bank_bits = 3; mctl_set_cr(para); for(para->bank_bits = 2; para->bank_bits < 3; para->bank_bits++) { if(mctl_mem_matches((1 << para->bank_bits) * para->page_size)) break; } para->page_size = 8192; mctl_set_cr(para); for(para->page_size = 512; para->page_size < 8192; para->page_size *= 2) { if(mctl_mem_matches(para->page_size)) break; } } void sys_dram_init(void) { struct s3_dram_com_reg_t * com = (struct s3_dram_com_reg_t *)S3_DRAM_COM_BASE; struct s3_dram_ctl_reg_t * ctl = (struct s3_dram_ctl_reg_t *)S3_DRAM_CTL_BASE; struct dram_para_t para = { .read_delays = 0x00007979, .write_delays = 0x6aaa0000, .dual_rank = 0, .bus_width = 32, .row_bits = 15, .bank_bits = 3, .page_size = 4096, }; u32_t * dsz = (void *)0x00000020; mctl_sys_init(¶); if(mctl_channel_init(¶)) { dsz[0] = 0; return; } if(para.dual_rank) write32((virtual_addr_t)&ctl->odtmap, 0x00000303); else write32((virtual_addr_t)&ctl->odtmap, 0x00000201); sdelay(1); write32((virtual_addr_t)&ctl->odtcfg, 0x0c000400); setbits_le32(&com->cccr, 1 << 31); sdelay(10); mctl_auto_detect_dram_size(¶); mctl_set_cr(¶); dsz[0] = (1UL << (para.row_bits + para.bank_bits)) * para.page_size * (para.dual_rank ? 2 : 1); } xfel-1.3.5/payloads/v3s_s3/s3-ddr/source/sys-uart.c000066400000000000000000000047011512120643700217440ustar00rootroot00000000000000/* * sys-uart.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include void sys_uart_init(void) { virtual_addr_t addr; u32_t val; /* Config GPIOB8 and GPIOB9 to txd0 and rxd0 */ addr = 0x01c20824 + 0x04; val = read32(addr); val &= ~(0xf << ((8 & 0x7) << 2)); val |= ((0x3 & 0x7) << ((8 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((9 & 0x7) << 2)); val |= ((0x3 & 0x7) << ((9 & 0x7) << 2)); write32(addr, val); /* Open the clock gate for uart0 */ addr = 0x01c2006c; val = read32(addr); val |= 1 << 16; write32(addr, val); /* Deassert uart0 reset */ addr = 0x01c202d8; val = read32(addr); val |= 1 << 16; write32(addr, val); /* Config uart0 to 115200-8-1-0 */ addr = 0x01c28000; write32(addr + 0x04, 0x0); write32(addr + 0x08, 0xf7); write32(addr + 0x10, 0x0); val = read32(addr + 0x0c); val |= (1 << 7); write32(addr + 0x0c, val); write32(addr + 0x00, 0xd & 0xff); write32(addr + 0x04, (0xd >> 8) & 0xff); val = read32(addr + 0x0c); val &= ~(1 << 7); write32(addr + 0x0c, val); val = read32(addr + 0x0c); val &= ~0x1f; val |= (0x3 << 0) | (0 << 2) | (0x0 << 3); write32(addr + 0x0c, val); } void sys_uart_putc(char c) { virtual_addr_t addr = 0x01c28000; while((read32(addr + 0x7c) & (0x1 << 1)) == 0); write32(addr + 0x00, c); } xfel-1.3.5/payloads/v3s_s3/spi/000077500000000000000000000000001512120643700162065ustar00rootroot00000000000000xfel-1.3.5/payloads/v3s_s3/spi/.gitignore000066400000000000000000000000731512120643700201760ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/v3s_s3/spi/Makefile000066400000000000000000000056261512120643700176570ustar00rootroot00000000000000# # Top makefile # CROSS ?= arm-linux-gnueabihf- NAME := spi # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 CFLAGS := -g -ggdb -Wall -O3 CXXFLAGS := -g -ggdb -Wall -O3 LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -march=armv7-a -mtune=cortex-a7 -mfpu=vfpv4 -mfloat-abi=hard -marm -mno-thumb-interwork -mno-unaligned-access -fno-stack-protector LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/v3s_s3/spi/include/000077500000000000000000000000001512120643700176315ustar00rootroot00000000000000xfel-1.3.5/payloads/v3s_s3/spi/include/byteorder.h000066400000000000000000000043611512120643700220050ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/v3s_s3/spi/include/endian.h000066400000000000000000000007321512120643700212420ustar00rootroot00000000000000#ifndef __ARM32_ENDIAN_H__ #define __ARM32_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __ARM32_ENDIAN_H__ */ xfel-1.3.5/payloads/v3s_s3/spi/include/io.h000066400000000000000000000016401512120643700204120ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/v3s_s3/spi/include/stdarg.h000066400000000000000000000010541512120643700212660ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/v3s_s3/spi/include/stddef.h000066400000000000000000000026101512120643700212520ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/v3s_s3/spi/include/stdint.h000066400000000000000000000010161512120643700213050ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/v3s_s3/spi/include/string.h000066400000000000000000000004241512120643700213100ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/v3s_s3/spi/include/types.h000066400000000000000000000021051512120643700211440ustar00rootroot00000000000000#ifndef __ARM32_TYPES_H__ #define __ARM32_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed int ptrdiff_t; typedef signed int intptr_t; typedef unsigned int uintptr_t; typedef unsigned int size_t; typedef signed int ssize_t; typedef signed int off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned int irq_flags_t; typedef unsigned int virtual_addr_t; typedef unsigned int virtual_size_t; typedef unsigned int physical_addr_t; typedef unsigned int physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __ARM32_TYPES_H__ */ xfel-1.3.5/payloads/v3s_s3/spi/include/v3s/000077500000000000000000000000001512120643700203445ustar00rootroot00000000000000xfel-1.3.5/payloads/v3s_s3/spi/include/v3s/reg-ccu.h000066400000000000000000000044421512120643700220460ustar00rootroot00000000000000#ifndef __V3S_REG_CCU_H__ #define __V3S_REG_CCU_H__ #define V3S_CCU_BASE (0x01c20000) #define CCU_PLL_CPU_CTRL (0x000) #define CCU_PLL_AUDIO_CTRL (0x008) #define CCU_PLL_VIDEO_CTRL (0x010) #define CCU_PLL_VE_CTRL (0x018) #define CCU_PLL_DDR0_CTRL (0x020) #define CCU_PLL_PERIPH0_CTRL (0x028) #define CCU_PLL_ISP_CTRL (0x02c) #define CCU_PLL_PERIPH1_CTRL (0x044) #define CCU_PLL_DDR1_CTRL (0x04c) #define CCU_CPU_AXI_CFG (0x050) #define CCU_AHB_APB0_CFG (0x054) #define CCU_APB1_CFG (0x058) #define CCU_AHB2_CFG (0x05c) #define CCU_BUS_CLK_GATE0 (0x060) #define CCU_BUS_CLK_GATE1 (0x064) #define CCU_BUS_CLK_GATE2 (0x068) #define CCU_BUS_CLK_GATE3 (0x06c) #define CCU_BUS_CLK_GATE4 (0x070) #define CCU_SDMMC0_CLK (0x088) #define CCU_SDMMC1_CLK (0x08c) #define CCU_SDMMC2_CLK (0x090) #define CCU_CE_CLK (0x09c) #define CCU_SPI0_CLK (0x0a0) #define CCU_USBPHY_CFG (0x0cc) #define CCU_DRAM_CFG (0x0f4) #define CCU_PLL_DDR1_CFG (0x0f8) #define CCU_MBUS_RST (0x0fc) #define CCU_DRAM_CLK_GATE (0x100) #define CCU_TCON_CLK (0x118) #define CCU_CSI_MISC_CLK (0x130) #define CCU_CSI_CLK (0x134) #define CCU_VE_CLK (0x13c) #define CCU_AC_DIG_CLK (0x140) #define CCU_AVS_CLK (0x144) #define CCU_MBUS_CLK (0x15c) #define CCU_MIPI_CSI_CLK (0x16c) #define CCU_PLL_STABLE_TIME0 (0x200) #define CCU_PLL_STABLE_TIME1 (0x204) #define CCU_PLL_CPU_BIAS (0x220) #define CCU_PLL_AUDIO_BIAS (0x224) #define CCU_PLL_VIDEO_BIAS (0x228) #define CCU_PLL_VE_BIAS (0x22c) #define CCU_PLL_DDR0_BIAS (0x230) #define CCU_PLL_PERIPH0_BIAS (0x234) #define CCU_PLL_ISP_BIAS (0x238) #define CCU_PLL_PERIPH1_BIAS (0x244) #define CCU_PLL_DDR1_BIAS (0x24C) #define CCU_PLL_CPU_TUN (0x250) #define CCU_PLL_DDR0_TUN (0x260) #define CCU_PLL_CPU_PAT (0x280) #define CCU_PLL_AUDIO_PAT (0x284) #define CCU_PLL_VIDEO_PAT (0x288) #define CCU_PLL_VE_PAT (0x28c) #define CCU_PLL_DDR0_PAT (0x290) #define CCU_PLL_ISP_PAT (0x298) #define CCU_PLL_PERIPH1_PAT (0x2a4) #define CCU_PLL_DDR1_PAT0 (0x2ac) #define CCU_PLL_DDR1_PAT1 (0x2b0) #define CCU_BUS_SOFT_RST0 (0x2c0) #define CCU_BUS_SOFT_RST1 (0x2c4) #define CCU_BUS_SOFT_RST2 (0x2c8) #define CCU_BUS_SOFT_RST3 (0x2d0) #define CCU_BUS_SOFT_RST4 (0x2d8) #define CCU_PS_CTRL (0x300) #define CCU_PS_CNT (0x304) #endif /* __V3S_REG_CCU_H__ */ xfel-1.3.5/payloads/v3s_s3/spi/include/v3s/reg-dram.h000066400000000000000000000054721512120643700222230ustar00rootroot00000000000000#ifndef __V3S_REG_DRAM_H__ #define __V3S_REG_DRAM_H__ #define V3S_DRAM_COM_BASE (0x01c62000) #define V3S_DRAM_CTL_BASE (0x01c63000) #define MCTL_CR_BL8 (0x4 << 20) #define MCTL_CR_1T (0x1 << 19) #define MCTL_CR_2T (0x0 << 19) #define MCTL_CR_LPDDR3 (0x7 << 16) #define MCTL_CR_LPDDR2 (0x6 << 16) #define MCTL_CR_DDR3 (0x3 << 16) #define MCTL_CR_DDR2 (0x2 << 16) #define MCTL_CR_SEQUENTIAL (0x1 << 15) #define MCTL_CR_INTERLEAVED (0x0 << 15) #define MCTL_CR_32BIT (0x1 << 12) #define MCTL_CR_16BIT (0x0 << 12) #define MCTL_CR_BUS_WIDTH(x) ((x) == 32 ? MCTL_CR_32BIT : MCTL_CR_16BIT) #define MCTL_CR_PAGE_SIZE(x) ((gfls(x) - 4) << 8) #define MCTL_CR_ROW_BITS(x) (((x) - 1) << 4) #define MCTL_CR_EIGHT_BANKS (0x1 << 2) #define MCTL_CR_FOUR_BANKS (0x0 << 2) #define MCTL_CR_DUAL_RANK (0x1 << 0) #define MCTL_CR_SINGLE_RANK (0x0 << 0) #define DRAMTMG0_TWTP(x) ((x) << 24) #define DRAMTMG0_TFAW(x) ((x) << 16) #define DRAMTMG0_TRAS_MAX(x) ((x) << 8) #define DRAMTMG0_TRAS(x) ((x) << 0) #define DRAMTMG1_TXP(x) ((x) << 16) #define DRAMTMG1_TRTP(x) ((x) << 8) #define DRAMTMG1_TRC(x) ((x) << 0) #define DRAMTMG2_TCWL(x) ((x) << 24) #define DRAMTMG2_TCL(x) ((x) << 16) #define DRAMTMG2_TRD2WR(x) ((x) << 8) #define DRAMTMG2_TWR2RD(x) ((x) << 0) #define DRAMTMG3_TMRW(x) ((x) << 16) #define DRAMTMG3_TMRD(x) ((x) << 12) #define DRAMTMG3_TMOD(x) ((x) << 0) #define DRAMTMG4_TRCD(x) ((x) << 24) #define DRAMTMG4_TCCD(x) ((x) << 16) #define DRAMTMG4_TRRD(x) ((x) << 8) #define DRAMTMG4_TRP(x) ((x) << 0) #define DRAMTMG5_TCKSRX(x) ((x) << 24) #define DRAMTMG5_TCKSRE(x) ((x) << 16) #define DRAMTMG5_TCKESR(x) ((x) << 8) #define DRAMTMG5_TCKE(x) ((x) << 0) #define PTR3_TDINIT1(x) ((x) << 20) #define PTR3_TDINIT0(x) ((x) << 0) #define PTR4_TDINIT3(x) ((x) << 20) #define PTR4_TDINIT2(x) ((x) << 0) #define RFSHTMG_TREFI(x) ((x) << 16) #define RFSHTMG_TRFC(x) ((x) << 0) #define PIR_CLRSR (0x1 << 27) /* Clear status registers */ #define PIR_QSGATE (0x1 << 10) /* Read DQS gate training */ #define PIR_DRAMINIT (0x1 << 8) /* DRAM initialization */ #define PIR_DRAMRST (0x1 << 7) /* DRAM reset */ #define PIR_PHYRST (0x1 << 6) /* PHY reset */ #define PIR_DCAL (0x1 << 5) /* DDL calibration */ #define PIR_PLLINIT (0x1 << 4) /* PLL initialization */ #define PIR_ZCAL (0x1 << 1) /* ZQ calibration */ #define PIR_INIT (0x1 << 0) /* PHY initialization trigger */ #define PGSR_INIT_DONE (0x1 << 0) /* PHY init done */ #define ZQCR_PWRDOWN (0x1 << 31) /* ZQ power down */ #define DATX_IOCR_DQ(x) (x) #define DATX_IOCR_DM (8) #define DATX_IOCR_DQS (9) #define DATX_IOCR_DQSN (10) #define DATX_IOCR_WRITE_DELAY(x) ((x) << 8) #define DATX_IOCR_READ_DELAY(x) ((x) << 0) #endif /* __V3S_REG_DRAM_H__ */ xfel-1.3.5/payloads/v3s_s3/spi/include/xboot.h000066400000000000000000000004731512120643700211410ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/v3s_s3/spi/link.ld000066400000000000000000000046441512120643700174740ustar00rootroot00000000000000OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) STACK_UND_SIZE = 0x010; STACK_ABT_SIZE = 0x010; STACK_IRQ_SIZE = 0x010; STACK_FIQ_SIZE = 0x010; STACK_SRV_SIZE = 0x400; MEMORY { ram : org = 0x00008000, len = 0x00001000 /* 4 KB */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text) .obj/source/sys-spi.o (.text) *(.text*) *(.glue*) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ARM.exidx ALIGN(8) : { PROVIDE (__exidx_start = .); *(.ARM.exidx*) PROVIDE (__exidx_end = .); } > ram .ARM.extab ALIGN(8) : { PROVIDE (__extab_start = .); *(.ARM.extab*) PROVIDE (__extab_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(8) (NOLOAD) : { PROVIDE(__stack_start = .); PROVIDE(__stack_und_start = .); . += STACK_UND_SIZE; PROVIDE(__stack_und_end = .); . = ALIGN(8); PROVIDE(__stack_abt_start = .); . += STACK_ABT_SIZE; PROVIDE(__stack_abt_end = .); . = ALIGN(8); PROVIDE(__stack_irq_start = .); . += STACK_IRQ_SIZE; PROVIDE(__stack_irq_end = .); . = ALIGN(8); PROVIDE(__stack_fiq_start = .); . += STACK_FIQ_SIZE; PROVIDE(__stack_fiq_end = .); . = ALIGN(8); PROVIDE(__stack_srv_start = .); . += STACK_SRV_SIZE; PROVIDE(__stack_srv_end = .); . = ALIGN(8); PROVIDE(__stack_end = .); } > ram .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_info 0 : { *(.debug_info) } .debug_line 0 : { *(.debug_line) } .debug_pubnames 0 : { *(.debug_pubnames) } .debug_aranges 0 : { *(.debug_aranges) } } xfel-1.3.5/payloads/v3s_s3/spi/source/000077500000000000000000000000001512120643700175065ustar00rootroot00000000000000xfel-1.3.5/payloads/v3s_s3/spi/source/start.S000066400000000000000000000036131512120643700207720ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ .global _start _start: mov r0, #0 mcr p15, 0, r0, c8, c7, 0 mcr p15, 0, r0, c7, c5, 0 mcr p15, 0, r0, c7, c5, 6 mcr p15, 0, r0, c7, c10, 4 mcr p15, 0, r0, c7, c5, 4 b reset reset: ldr r0, =0x00000040 str sp, [r0, #0] str lr, [r0, #4] mrs lr, cpsr str lr, [r0, #8] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #12] mrc p15, 0, lr, c12, c0, 0 str lr, [r0, #16] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #20] ldr r0, =0x00009000 bl sys_spi_run ldr r0, =0x00000040 ldr sp, [r0, #0] ldr lr, [r0, #4] ldr r1, [r0, #20] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #16] mcr p15, 0, r1, c12, c0, 0 ldr r1, [r0, #12] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #8] msr cpsr, r1 bx lr xfel-1.3.5/payloads/v3s_s3/spi/source/sys-spi.c000066400000000000000000000143401512120643700212630ustar00rootroot00000000000000/* * sys-spi.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include enum { SPI_GCR = 0x04, SPI_TCR = 0x08, SPI_IER = 0x10, SPI_ISR = 0x14, SPI_FCR = 0x18, SPI_FSR = 0x1c, SPI_WCR = 0x20, SPI_CCR = 0x24, SPI_MBC = 0x30, SPI_MTC = 0x34, SPI_BCC = 0x38, SPI_TXD = 0x200, SPI_RXD = 0x300, }; static void sys_spi_init(void) { virtual_addr_t addr; u32_t val; /* Config GPIOC0, GPIOC1, GPIOC2 and GPIOC3 */ addr = 0x01c20848 + 0x00; val = read32(addr); val &= ~(0xf << ((0 & 0x7) << 2)); val |= ((0x3 & 0x7) << ((0 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((1 & 0x7) << 2)); val |= ((0x3 & 0x7) << ((1 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((2 & 0x7) << 2)); val |= ((0x3 & 0x7) << ((2 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((3 & 0x7) << 2)); val |= ((0x3 & 0x7) << ((3 & 0x7) << 2)); write32(addr, val); /* Deassert spi0 reset */ addr = 0x01c202c0; val = read32(addr); val |= (1 << 20); write32(addr, val); /* Open the spi0 gate */ addr = 0x01c20000 + 0xa0; val = read32(addr); val |= (1 << 31); write32(addr, val); /* Open the spi0 bus gate */ addr = 0x01c20000 + 0x60; val = read32(addr); val |= (1 << 20); write32(addr, val); /* Select pll-periph0 for spi0 clk */ addr = 0x01c200a0; val = read32(addr); val &= ~(0x3 << 24); val |= 0x1 << 24; write32(addr, val); /* Set clock pre divide ratio, divided by 1 */ addr = 0x01c200a0; val = read32(addr); val &= ~(0x3 << 16); val |= 0x0 << 16; write32(addr, val); /* Set clock divide ratio, divided by 6 */ addr = 0x01c200a0; val = read32(addr); val &= ~(0xf << 0); val |= (6 - 1) << 0; write32(addr, val); /* Set spi clock rate control register, divided by 2 */ addr = 0x01c68000; write32(addr + SPI_CCR, 0x1000); /* Enable spi0 and do a soft reset */ addr = 0x01c68000; val = read32(addr + SPI_GCR); val |= (1 << 31) | (1 << 7) | (1 << 1) | (1 << 0); write32(addr + SPI_GCR, val); while(read32(addr + SPI_GCR) & (1 << 31)); val = read32(addr + SPI_TCR); val &= ~(0x3 << 0); val |= (1 << 6) | (1 << 2); write32(addr + SPI_TCR, val); val = read32(addr + SPI_FCR); val |= (1 << 31) | (1 << 15); write32(addr + SPI_FCR, val); } static void sys_spi_select(void) { virtual_addr_t addr = 0x01c68000; u32_t val; val = read32(addr + SPI_TCR); val &= ~((0x3 << 4) | (0x1 << 7)); val |= ((0 & 0x3) << 4) | (0x0 << 7); write32(addr + SPI_TCR, val); } static void sys_spi_deselect(void) { virtual_addr_t addr = 0x01c68000; u32_t val; val = read32(addr + SPI_TCR); val &= ~((0x3 << 4) | (0x1 << 7)); val |= ((0 & 0x3) << 4) | (0x1 << 7); write32(addr + SPI_TCR, val); } static inline void sys_spi_write_txbuf(u8_t * buf, int len) { virtual_addr_t addr = 0x01c68000; int i; write32(addr + SPI_MTC, len & 0xffffff); write32(addr + SPI_BCC, len & 0xffffff); if(buf) { for(i = 0; i < len; i++) write8(addr + SPI_TXD, *buf++); } else { for(i = 0; i < len; i++) write8(addr + SPI_TXD, 0xff); } } static void sys_spi_transfer(void * txbuf, void * rxbuf, u32_t len) { virtual_addr_t addr = 0x01c68000; u8_t * tx = txbuf; u8_t * rx = rxbuf; u8_t val; int n, i; while(len > 0) { n = (len <= 64) ? len : 64; write32(addr + SPI_MBC, n); sys_spi_write_txbuf(tx, n); write32(addr + SPI_TCR, read32(addr + SPI_TCR) | (1 << 31)); while(read32(addr + SPI_TCR) & (1 << 31)); while((read32(addr + SPI_FSR) & 0xff) < n); for(i = 0; i < n; i++) { val = read8(addr + SPI_RXD); if(rx) *rx++ = val; } if(tx) tx += n; len -= n; } } enum { SPI_CMD_END = 0x00, SPI_CMD_INIT = 0x01, SPI_CMD_SELECT = 0x02, SPI_CMD_DESELECT = 0x03, SPI_CMD_FAST = 0x04, SPI_CMD_TXBUF = 0x05, SPI_CMD_RXBUF = 0x06, SPI_CMD_SPINOR_WAIT = 0x07, SPI_CMD_SPINAND_WAIT = 0x08, }; void sys_spi_run(void * cbuf) { uint8_t tx[8], rx[8]; u8_t c, * p = cbuf; u32_t addr, len; while(1) { c = *p++; if(c == SPI_CMD_INIT) { sys_spi_init(); } else if(c == SPI_CMD_SELECT) { sys_spi_select(); } else if(c == SPI_CMD_DESELECT) { sys_spi_deselect(); } else if(c == SPI_CMD_FAST) { len = p[0]; sys_spi_transfer((void *)&p[1], NULL, len); p += (len + 1); } else if(c == SPI_CMD_TXBUF) { addr = (p[0] << 0) | (p[1] << 8) | (p[2] << 16) | (p[3] << 24); len = (p[4] << 0) | (p[5] << 8) | (p[6] << 16) | (p[7] << 24); sys_spi_transfer((void *)addr, NULL, len); p += 8; } else if(c == SPI_CMD_RXBUF) { addr = (p[0] << 0) | (p[1] << 8) | (p[2] << 16) | (p[3] << 24); len = (p[4] << 0) | (p[5] << 8) | (p[6] << 16) | (p[7] << 24); sys_spi_transfer(NULL, (void *)addr, len); p += 8; } else if(c == SPI_CMD_SPINOR_WAIT) { tx[0] = 0x05; do { sys_spi_transfer((void *)&tx[0], NULL, 1); sys_spi_transfer(NULL, (void *)&rx[0], 1); } while((rx[0] & 0x1) == 0x1); } else if(c == SPI_CMD_SPINAND_WAIT) { tx[0] = 0x0f; tx[1] = 0xc0; do { sys_spi_transfer((void *)&tx[0], NULL, 2); sys_spi_transfer(NULL, (void *)&rx[0], 1); } while((rx[0] & 0x1) == 0x1); } else { return; } } } xfel-1.3.5/payloads/v3s_s3/v3s-ddr/000077500000000000000000000000001512120643700166755ustar00rootroot00000000000000xfel-1.3.5/payloads/v3s_s3/v3s-ddr/.gitignore000066400000000000000000000000731512120643700206650ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/v3s_s3/v3s-ddr/Makefile000066400000000000000000000056321512120643700203430ustar00rootroot00000000000000# # Top makefile # CROSS ?= arm-linux-gnueabihf- NAME := v3s-ddr # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 CFLAGS := -g -ggdb -Wall -O3 CXXFLAGS := -g -ggdb -Wall -O3 LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -march=armv7-a -mtune=cortex-a7 -mfpu=vfpv4 -mfloat-abi=hard -marm -mno-thumb-interwork -mno-unaligned-access -fno-stack-protector LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/v3s_s3/v3s-ddr/include/000077500000000000000000000000001512120643700203205ustar00rootroot00000000000000xfel-1.3.5/payloads/v3s_s3/v3s-ddr/include/byteorder.h000066400000000000000000000043611512120643700224740ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/v3s_s3/v3s-ddr/include/endian.h000066400000000000000000000007321512120643700217310ustar00rootroot00000000000000#ifndef __ARM32_ENDIAN_H__ #define __ARM32_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __ARM32_ENDIAN_H__ */ xfel-1.3.5/payloads/v3s_s3/v3s-ddr/include/io.h000066400000000000000000000016401512120643700211010ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/v3s_s3/v3s-ddr/include/stdarg.h000066400000000000000000000010541512120643700217550ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/v3s_s3/v3s-ddr/include/stddef.h000066400000000000000000000026101512120643700217410ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/v3s_s3/v3s-ddr/include/stdint.h000066400000000000000000000010161512120643700217740ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/v3s_s3/v3s-ddr/include/string.h000066400000000000000000000004241512120643700217770ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/v3s_s3/v3s-ddr/include/types.h000066400000000000000000000021051512120643700216330ustar00rootroot00000000000000#ifndef __ARM32_TYPES_H__ #define __ARM32_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed int ptrdiff_t; typedef signed int intptr_t; typedef unsigned int uintptr_t; typedef unsigned int size_t; typedef signed int ssize_t; typedef signed int off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned int irq_flags_t; typedef unsigned int virtual_addr_t; typedef unsigned int virtual_size_t; typedef unsigned int physical_addr_t; typedef unsigned int physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __ARM32_TYPES_H__ */ xfel-1.3.5/payloads/v3s_s3/v3s-ddr/include/v3s/000077500000000000000000000000001512120643700210335ustar00rootroot00000000000000xfel-1.3.5/payloads/v3s_s3/v3s-ddr/include/v3s/reg-ccu.h000066400000000000000000000044421512120643700225350ustar00rootroot00000000000000#ifndef __V3S_REG_CCU_H__ #define __V3S_REG_CCU_H__ #define V3S_CCU_BASE (0x01c20000) #define CCU_PLL_CPU_CTRL (0x000) #define CCU_PLL_AUDIO_CTRL (0x008) #define CCU_PLL_VIDEO_CTRL (0x010) #define CCU_PLL_VE_CTRL (0x018) #define CCU_PLL_DDR0_CTRL (0x020) #define CCU_PLL_PERIPH0_CTRL (0x028) #define CCU_PLL_ISP_CTRL (0x02c) #define CCU_PLL_PERIPH1_CTRL (0x044) #define CCU_PLL_DDR1_CTRL (0x04c) #define CCU_CPU_AXI_CFG (0x050) #define CCU_AHB_APB0_CFG (0x054) #define CCU_APB1_CFG (0x058) #define CCU_AHB2_CFG (0x05c) #define CCU_BUS_CLK_GATE0 (0x060) #define CCU_BUS_CLK_GATE1 (0x064) #define CCU_BUS_CLK_GATE2 (0x068) #define CCU_BUS_CLK_GATE3 (0x06c) #define CCU_BUS_CLK_GATE4 (0x070) #define CCU_SDMMC0_CLK (0x088) #define CCU_SDMMC1_CLK (0x08c) #define CCU_SDMMC2_CLK (0x090) #define CCU_CE_CLK (0x09c) #define CCU_SPI0_CLK (0x0a0) #define CCU_USBPHY_CFG (0x0cc) #define CCU_DRAM_CFG (0x0f4) #define CCU_PLL_DDR1_CFG (0x0f8) #define CCU_MBUS_RST (0x0fc) #define CCU_DRAM_CLK_GATE (0x100) #define CCU_TCON_CLK (0x118) #define CCU_CSI_MISC_CLK (0x130) #define CCU_CSI_CLK (0x134) #define CCU_VE_CLK (0x13c) #define CCU_AC_DIG_CLK (0x140) #define CCU_AVS_CLK (0x144) #define CCU_MBUS_CLK (0x15c) #define CCU_MIPI_CSI_CLK (0x16c) #define CCU_PLL_STABLE_TIME0 (0x200) #define CCU_PLL_STABLE_TIME1 (0x204) #define CCU_PLL_CPU_BIAS (0x220) #define CCU_PLL_AUDIO_BIAS (0x224) #define CCU_PLL_VIDEO_BIAS (0x228) #define CCU_PLL_VE_BIAS (0x22c) #define CCU_PLL_DDR0_BIAS (0x230) #define CCU_PLL_PERIPH0_BIAS (0x234) #define CCU_PLL_ISP_BIAS (0x238) #define CCU_PLL_PERIPH1_BIAS (0x244) #define CCU_PLL_DDR1_BIAS (0x24C) #define CCU_PLL_CPU_TUN (0x250) #define CCU_PLL_DDR0_TUN (0x260) #define CCU_PLL_CPU_PAT (0x280) #define CCU_PLL_AUDIO_PAT (0x284) #define CCU_PLL_VIDEO_PAT (0x288) #define CCU_PLL_VE_PAT (0x28c) #define CCU_PLL_DDR0_PAT (0x290) #define CCU_PLL_ISP_PAT (0x298) #define CCU_PLL_PERIPH1_PAT (0x2a4) #define CCU_PLL_DDR1_PAT0 (0x2ac) #define CCU_PLL_DDR1_PAT1 (0x2b0) #define CCU_BUS_SOFT_RST0 (0x2c0) #define CCU_BUS_SOFT_RST1 (0x2c4) #define CCU_BUS_SOFT_RST2 (0x2c8) #define CCU_BUS_SOFT_RST3 (0x2d0) #define CCU_BUS_SOFT_RST4 (0x2d8) #define CCU_PS_CTRL (0x300) #define CCU_PS_CNT (0x304) #endif /* __V3S_REG_CCU_H__ */ xfel-1.3.5/payloads/v3s_s3/v3s-ddr/include/v3s/reg-dram.h000066400000000000000000000054721512120643700227120ustar00rootroot00000000000000#ifndef __V3S_REG_DRAM_H__ #define __V3S_REG_DRAM_H__ #define V3S_DRAM_COM_BASE (0x01c62000) #define V3S_DRAM_CTL_BASE (0x01c63000) #define MCTL_CR_BL8 (0x4 << 20) #define MCTL_CR_1T (0x1 << 19) #define MCTL_CR_2T (0x0 << 19) #define MCTL_CR_LPDDR3 (0x7 << 16) #define MCTL_CR_LPDDR2 (0x6 << 16) #define MCTL_CR_DDR3 (0x3 << 16) #define MCTL_CR_DDR2 (0x2 << 16) #define MCTL_CR_SEQUENTIAL (0x1 << 15) #define MCTL_CR_INTERLEAVED (0x0 << 15) #define MCTL_CR_32BIT (0x1 << 12) #define MCTL_CR_16BIT (0x0 << 12) #define MCTL_CR_BUS_WIDTH(x) ((x) == 32 ? MCTL_CR_32BIT : MCTL_CR_16BIT) #define MCTL_CR_PAGE_SIZE(x) ((gfls(x) - 4) << 8) #define MCTL_CR_ROW_BITS(x) (((x) - 1) << 4) #define MCTL_CR_EIGHT_BANKS (0x1 << 2) #define MCTL_CR_FOUR_BANKS (0x0 << 2) #define MCTL_CR_DUAL_RANK (0x1 << 0) #define MCTL_CR_SINGLE_RANK (0x0 << 0) #define DRAMTMG0_TWTP(x) ((x) << 24) #define DRAMTMG0_TFAW(x) ((x) << 16) #define DRAMTMG0_TRAS_MAX(x) ((x) << 8) #define DRAMTMG0_TRAS(x) ((x) << 0) #define DRAMTMG1_TXP(x) ((x) << 16) #define DRAMTMG1_TRTP(x) ((x) << 8) #define DRAMTMG1_TRC(x) ((x) << 0) #define DRAMTMG2_TCWL(x) ((x) << 24) #define DRAMTMG2_TCL(x) ((x) << 16) #define DRAMTMG2_TRD2WR(x) ((x) << 8) #define DRAMTMG2_TWR2RD(x) ((x) << 0) #define DRAMTMG3_TMRW(x) ((x) << 16) #define DRAMTMG3_TMRD(x) ((x) << 12) #define DRAMTMG3_TMOD(x) ((x) << 0) #define DRAMTMG4_TRCD(x) ((x) << 24) #define DRAMTMG4_TCCD(x) ((x) << 16) #define DRAMTMG4_TRRD(x) ((x) << 8) #define DRAMTMG4_TRP(x) ((x) << 0) #define DRAMTMG5_TCKSRX(x) ((x) << 24) #define DRAMTMG5_TCKSRE(x) ((x) << 16) #define DRAMTMG5_TCKESR(x) ((x) << 8) #define DRAMTMG5_TCKE(x) ((x) << 0) #define PTR3_TDINIT1(x) ((x) << 20) #define PTR3_TDINIT0(x) ((x) << 0) #define PTR4_TDINIT3(x) ((x) << 20) #define PTR4_TDINIT2(x) ((x) << 0) #define RFSHTMG_TREFI(x) ((x) << 16) #define RFSHTMG_TRFC(x) ((x) << 0) #define PIR_CLRSR (0x1 << 27) /* Clear status registers */ #define PIR_QSGATE (0x1 << 10) /* Read DQS gate training */ #define PIR_DRAMINIT (0x1 << 8) /* DRAM initialization */ #define PIR_DRAMRST (0x1 << 7) /* DRAM reset */ #define PIR_PHYRST (0x1 << 6) /* PHY reset */ #define PIR_DCAL (0x1 << 5) /* DDL calibration */ #define PIR_PLLINIT (0x1 << 4) /* PLL initialization */ #define PIR_ZCAL (0x1 << 1) /* ZQ calibration */ #define PIR_INIT (0x1 << 0) /* PHY initialization trigger */ #define PGSR_INIT_DONE (0x1 << 0) /* PHY init done */ #define ZQCR_PWRDOWN (0x1 << 31) /* ZQ power down */ #define DATX_IOCR_DQ(x) (x) #define DATX_IOCR_DM (8) #define DATX_IOCR_DQS (9) #define DATX_IOCR_DQSN (10) #define DATX_IOCR_WRITE_DELAY(x) ((x) << 8) #define DATX_IOCR_READ_DELAY(x) ((x) << 0) #endif /* __V3S_REG_DRAM_H__ */ xfel-1.3.5/payloads/v3s_s3/v3s-ddr/include/xboot.h000066400000000000000000000004731512120643700216300ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/v3s_s3/v3s-ddr/link.ld000066400000000000000000000050531512120643700201560ustar00rootroot00000000000000OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) STACK_UND_SIZE = 0x010; STACK_ABT_SIZE = 0x010; STACK_IRQ_SIZE = 0x010; STACK_FIQ_SIZE = 0x010; STACK_SRV_SIZE = 0x400; MEMORY { ram : org = 0x00008000, len = 0x00002000 /* 8 KB */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text) .obj/source/memcpy.o (.text*) .obj/source/memset.o (.text*) .obj/source/sys-uart.o (.text*) .obj/source/sys-clock.o (.text*) .obj/source/sys-dram.o (.text*) *(.text*) *(.glue*) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ARM.exidx ALIGN(8) : { PROVIDE (__exidx_start = .); *(.ARM.exidx*) PROVIDE (__exidx_end = .); } > ram .ARM.extab ALIGN(8) : { PROVIDE (__extab_start = .); *(.ARM.extab*) PROVIDE (__extab_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(8) (NOLOAD) : { PROVIDE(__stack_start = .); PROVIDE(__stack_und_start = .); . += STACK_UND_SIZE; PROVIDE(__stack_und_end = .); . = ALIGN(8); PROVIDE(__stack_abt_start = .); . += STACK_ABT_SIZE; PROVIDE(__stack_abt_end = .); . = ALIGN(8); PROVIDE(__stack_irq_start = .); . += STACK_IRQ_SIZE; PROVIDE(__stack_irq_end = .); . = ALIGN(8); PROVIDE(__stack_fiq_start = .); . += STACK_FIQ_SIZE; PROVIDE(__stack_fiq_end = .); . = ALIGN(8); PROVIDE(__stack_srv_start = .); . += STACK_SRV_SIZE; PROVIDE(__stack_srv_end = .); . = ALIGN(8); PROVIDE(__stack_end = .); } > ram .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_info 0 : { *(.debug_info) } .debug_line 0 : { *(.debug_line) } .debug_pubnames 0 : { *(.debug_pubnames) } .debug_aranges 0 : { *(.debug_aranges) } } xfel-1.3.5/payloads/v3s_s3/v3s-ddr/source/000077500000000000000000000000001512120643700201755ustar00rootroot00000000000000xfel-1.3.5/payloads/v3s_s3/v3s-ddr/source/memcpy.S000066400000000000000000000212061512120643700216140ustar00rootroot00000000000000/* * memcpy.S */ .text .global memcpy .type memcpy, %function .align 4 memcpy: /* determine copy direction */ cmp r1, r0 bcc .Lmemcpy_backwards moveq r0, #0 /* quick abort for len=0 */ moveq pc, lr stmdb sp!, {r0, lr} /* memcpy() returns dest addr */ subs r2, r2, #4 blt .Lmemcpy_fl4 /* less than 4 bytes */ ands r12, r0, #3 bne .Lmemcpy_fdestul /* oh unaligned destination addr */ ands r12, r1, #3 bne .Lmemcpy_fsrcul /* oh unaligned source addr */ .Lmemcpy_ft8: /* we have aligned source and destination */ subs r2, r2, #8 blt .Lmemcpy_fl12 /* less than 12 bytes (4 from above) */ subs r2, r2, #0x14 blt .Lmemcpy_fl32 /* less than 32 bytes (12 from above) */ stmdb sp!, {r4} /* borrow r4 */ /* blat 32 bytes at a time */ .Lmemcpy_floop32: ldmia r1!, {r3, r4, r12, lr} stmia r0!, {r3, r4, r12, lr} ldmia r1!, {r3, r4, r12, lr} stmia r0!, {r3, r4, r12, lr} subs r2, r2, #0x20 bge .Lmemcpy_floop32 cmn r2, #0x10 ldmgeia r1!, {r3, r4, r12, lr} /* blat a remaining 16 bytes */ stmgeia r0!, {r3, r4, r12, lr} subge r2, r2, #0x10 ldmia sp!, {r4} /* return r4 */ .Lmemcpy_fl32: adds r2, r2, #0x14 /* blat 12 bytes at a time */ .Lmemcpy_floop12: ldmgeia r1!, {r3, r12, lr} stmgeia r0!, {r3, r12, lr} subges r2, r2, #0x0c bge .Lmemcpy_floop12 .Lmemcpy_fl12: adds r2, r2, #8 blt .Lmemcpy_fl4 subs r2, r2, #4 ldrlt r3, [r1], #4 strlt r3, [r0], #4 ldmgeia r1!, {r3, r12} stmgeia r0!, {r3, r12} subge r2, r2, #4 .Lmemcpy_fl4: /* less than 4 bytes to go */ adds r2, r2, #4 ldmeqia sp!, {r0, pc} /* done */ /* copy the crud byte at a time */ cmp r2, #2 ldrb r3, [r1], #1 strb r3, [r0], #1 ldrgeb r3, [r1], #1 strgeb r3, [r0], #1 ldrgtb r3, [r1], #1 strgtb r3, [r0], #1 ldmia sp!, {r0, pc} /* erg - unaligned destination */ .Lmemcpy_fdestul: rsb r12, r12, #4 cmp r12, #2 /* align destination with byte copies */ ldrb r3, [r1], #1 strb r3, [r0], #1 ldrgeb r3, [r1], #1 strgeb r3, [r0], #1 ldrgtb r3, [r1], #1 strgtb r3, [r0], #1 subs r2, r2, r12 blt .Lmemcpy_fl4 /* less the 4 bytes */ ands r12, r1, #3 beq .Lmemcpy_ft8 /* we have an aligned source */ /* erg - unaligned source */ /* This is where it gets nasty ... */ .Lmemcpy_fsrcul: bic r1, r1, #3 ldr lr, [r1], #4 cmp r12, #2 bgt .Lmemcpy_fsrcul3 beq .Lmemcpy_fsrcul2 cmp r2, #0x0c blt .Lmemcpy_fsrcul1loop4 sub r2, r2, #0x0c stmdb sp!, {r4, r5} .Lmemcpy_fsrcul1loop16: mov r3, lr, lsr #8 ldmia r1!, {r4, r5, r12, lr} orr r3, r3, r4, lsl #24 mov r4, r4, lsr #8 orr r4, r4, r5, lsl #24 mov r5, r5, lsr #8 orr r5, r5, r12, lsl #24 mov r12, r12, lsr #8 orr r12, r12, lr, lsl #24 stmia r0!, {r3-r5, r12} subs r2, r2, #0x10 bge .Lmemcpy_fsrcul1loop16 ldmia sp!, {r4, r5} adds r2, r2, #0x0c blt .Lmemcpy_fsrcul1l4 .Lmemcpy_fsrcul1loop4: mov r12, lr, lsr #8 ldr lr, [r1], #4 orr r12, r12, lr, lsl #24 str r12, [r0], #4 subs r2, r2, #4 bge .Lmemcpy_fsrcul1loop4 .Lmemcpy_fsrcul1l4: sub r1, r1, #3 b .Lmemcpy_fl4 .Lmemcpy_fsrcul2: cmp r2, #0x0c blt .Lmemcpy_fsrcul2loop4 sub r2, r2, #0x0c stmdb sp!, {r4, r5} .Lmemcpy_fsrcul2loop16: mov r3, lr, lsr #16 ldmia r1!, {r4, r5, r12, lr} orr r3, r3, r4, lsl #16 mov r4, r4, lsr #16 orr r4, r4, r5, lsl #16 mov r5, r5, lsr #16 orr r5, r5, r12, lsl #16 mov r12, r12, lsr #16 orr r12, r12, lr, lsl #16 stmia r0!, {r3-r5, r12} subs r2, r2, #0x10 bge .Lmemcpy_fsrcul2loop16 ldmia sp!, {r4, r5} adds r2, r2, #0x0c blt .Lmemcpy_fsrcul2l4 .Lmemcpy_fsrcul2loop4: mov r12, lr, lsr #16 ldr lr, [r1], #4 orr r12, r12, lr, lsl #16 str r12, [r0], #4 subs r2, r2, #4 bge .Lmemcpy_fsrcul2loop4 .Lmemcpy_fsrcul2l4: sub r1, r1, #2 b .Lmemcpy_fl4 .Lmemcpy_fsrcul3: cmp r2, #0x0c blt .Lmemcpy_fsrcul3loop4 sub r2, r2, #0x0c stmdb sp!, {r4, r5} .Lmemcpy_fsrcul3loop16: mov r3, lr, lsr #24 ldmia r1!, {r4, r5, r12, lr} orr r3, r3, r4, lsl #8 mov r4, r4, lsr #24 orr r4, r4, r5, lsl #8 mov r5, r5, lsr #24 orr r5, r5, r12, lsl #8 mov r12, r12, lsr #24 orr r12, r12, lr, lsl #8 stmia r0!, {r3-r5, r12} subs r2, r2, #0x10 bge .Lmemcpy_fsrcul3loop16 ldmia sp!, {r4, r5} adds r2, r2, #0x0c blt .Lmemcpy_fsrcul3l4 .Lmemcpy_fsrcul3loop4: mov r12, lr, lsr #24 ldr lr, [r1], #4 orr r12, r12, lr, lsl #8 str r12, [r0], #4 subs r2, r2, #4 bge .Lmemcpy_fsrcul3loop4 .Lmemcpy_fsrcul3l4: sub r1, r1, #1 b .Lmemcpy_fl4 .Lmemcpy_backwards: add r1, r1, r2 add r0, r0, r2 subs r2, r2, #4 blt .Lmemcpy_bl4 /* less than 4 bytes */ ands r12, r0, #3 bne .Lmemcpy_bdestul /* oh unaligned destination addr */ ands r12, r1, #3 bne .Lmemcpy_bsrcul /* oh unaligned source addr */ .Lmemcpy_bt8: /* we have aligned source and destination */ subs r2, r2, #8 blt .Lmemcpy_bl12 /* less than 12 bytes (4 from above) */ stmdb sp!, {r4, lr} subs r2, r2, #0x14 /* less than 32 bytes (12 from above) */ blt .Lmemcpy_bl32 /* blat 32 bytes at a time */ .Lmemcpy_bloop32: ldmdb r1!, {r3, r4, r12, lr} stmdb r0!, {r3, r4, r12, lr} ldmdb r1!, {r3, r4, r12, lr} stmdb r0!, {r3, r4, r12, lr} subs r2, r2, #0x20 bge .Lmemcpy_bloop32 .Lmemcpy_bl32: cmn r2, #0x10 ldmgedb r1!, {r3, r4, r12, lr} /* blat a remaining 16 bytes */ stmgedb r0!, {r3, r4, r12, lr} subge r2, r2, #0x10 adds r2, r2, #0x14 ldmgedb r1!, {r3, r12, lr} /* blat a remaining 12 bytes */ stmgedb r0!, {r3, r12, lr} subge r2, r2, #0x0c ldmia sp!, {r4, lr} .Lmemcpy_bl12: adds r2, r2, #8 blt .Lmemcpy_bl4 subs r2, r2, #4 ldrlt r3, [r1, #-4]! strlt r3, [r0, #-4]! ldmgedb r1!, {r3, r12} stmgedb r0!, {r3, r12} subge r2, r2, #4 .Lmemcpy_bl4: /* less than 4 bytes to go */ adds r2, r2, #4 moveq pc, lr /* copy the crud byte at a time */ cmp r2, #2 ldrb r3, [r1, #-1]! strb r3, [r0, #-1]! ldrgeb r3, [r1, #-1]! strgeb r3, [r0, #-1]! ldrgtb r3, [r1, #-1]! strgtb r3, [r0, #-1]! mov pc, lr /* erg - unaligned destination */ .Lmemcpy_bdestul: cmp r12, #2 /* align destination with byte copies */ ldrb r3, [r1, #-1]! strb r3, [r0, #-1]! ldrgeb r3, [r1, #-1]! strgeb r3, [r0, #-1]! ldrgtb r3, [r1, #-1]! strgtb r3, [r0, #-1]! subs r2, r2, r12 blt .Lmemcpy_bl4 /* less than 4 bytes to go */ ands r12, r1, #3 beq .Lmemcpy_bt8 /* we have an aligned source */ /* erg - unaligned source */ /* This is where it gets nasty ... */ .Lmemcpy_bsrcul: bic r1, r1, #3 ldr r3, [r1, #0] cmp r12, #2 blt .Lmemcpy_bsrcul1 beq .Lmemcpy_bsrcul2 cmp r2, #0x0c blt .Lmemcpy_bsrcul3loop4 sub r2, r2, #0x0c stmdb sp!, {r4, r5, lr} .Lmemcpy_bsrcul3loop16: mov lr, r3, lsl #8 ldmdb r1!, {r3-r5, r12} orr lr, lr, r12, lsr #24 mov r12, r12, lsl #8 orr r12, r12, r5, lsr #24 mov r5, r5, lsl #8 orr r5, r5, r4, lsr #24 mov r4, r4, lsl #8 orr r4, r4, r3, lsr #24 stmdb r0!, {r4, r5, r12, lr} subs r2, r2, #0x10 bge .Lmemcpy_bsrcul3loop16 ldmia sp!, {r4, r5, lr} adds r2, r2, #0x0c blt .Lmemcpy_bsrcul3l4 .Lmemcpy_bsrcul3loop4: mov r12, r3, lsl #8 ldr r3, [r1, #-4]! orr r12, r12, r3, lsr #24 str r12, [r0, #-4]! subs r2, r2, #4 bge .Lmemcpy_bsrcul3loop4 .Lmemcpy_bsrcul3l4: add r1, r1, #3 b .Lmemcpy_bl4 .Lmemcpy_bsrcul2: cmp r2, #0x0c blt .Lmemcpy_bsrcul2loop4 sub r2, r2, #0x0c stmdb sp!, {r4, r5, lr} .Lmemcpy_bsrcul2loop16: mov lr, r3, lsl #16 ldmdb r1!, {r3-r5, r12} orr lr, lr, r12, lsr #16 mov r12, r12, lsl #16 orr r12, r12, r5, lsr #16 mov r5, r5, lsl #16 orr r5, r5, r4, lsr #16 mov r4, r4, lsl #16 orr r4, r4, r3, lsr #16 stmdb r0!, {r4, r5, r12, lr} subs r2, r2, #0x10 bge .Lmemcpy_bsrcul2loop16 ldmia sp!, {r4, r5, lr} adds r2, r2, #0x0c blt .Lmemcpy_bsrcul2l4 .Lmemcpy_bsrcul2loop4: mov r12, r3, lsl #16 ldr r3, [r1, #-4]! orr r12, r12, r3, lsr #16 str r12, [r0, #-4]! subs r2, r2, #4 bge .Lmemcpy_bsrcul2loop4 .Lmemcpy_bsrcul2l4: add r1, r1, #2 b .Lmemcpy_bl4 .Lmemcpy_bsrcul1: cmp r2, #0x0c blt .Lmemcpy_bsrcul1loop4 sub r2, r2, #0x0c stmdb sp!, {r4, r5, lr} .Lmemcpy_bsrcul1loop32: mov lr, r3, lsl #24 ldmdb r1!, {r3-r5, r12} orr lr, lr, r12, lsr #8 mov r12, r12, lsl #24 orr r12, r12, r5, lsr #8 mov r5, r5, lsl #24 orr r5, r5, r4, lsr #8 mov r4, r4, lsl #24 orr r4, r4, r3, lsr #8 stmdb r0!, {r4, r5, r12, lr} subs r2, r2, #0x10 bge .Lmemcpy_bsrcul1loop32 ldmia sp!, {r4, r5, lr} adds r2, r2, #0x0c blt .Lmemcpy_bsrcul1l4 .Lmemcpy_bsrcul1loop4: mov r12, r3, lsl #24 ldr r3, [r1, #-4]! orr r12, r12, r3, lsr #8 str r12, [r0, #-4]! subs r2, r2, #4 bge .Lmemcpy_bsrcul1loop4 .Lmemcpy_bsrcul1l4: add r1, r1, #1 b .Lmemcpy_bl4 xfel-1.3.5/payloads/v3s_s3/v3s-ddr/source/memset.S000066400000000000000000000037721512120643700216240ustar00rootroot00000000000000/* * memcpy.S */ .text .global memset .type memset, %function .align 4 memset: stmfd sp!, {r0} /* remember address for return value */ and r1, r1, #0x000000ff /* we write bytes */ cmp r2, #0x00000004 /* do we have less than 4 bytes */ blt .Lmemset_lessthanfour /* first we will word align the address */ ands r3, r0, #0x00000003 /* get the bottom two bits */ beq .Lmemset_addraligned /* the address is word aligned */ rsb r3, r3, #0x00000004 sub r2, r2, r3 cmp r3, #0x00000002 strb r1, [r0], #0x0001 /* set 1 byte */ strgeb r1, [r0], #0x0001 /* set another byte */ strgtb r1, [r0], #0x0001 /* and a third */ cmp r2, #0x00000004 blt .Lmemset_lessthanfour /* now we must be word aligned */ .Lmemset_addraligned: orr r3, r1, r1, lsl #8 /* repeat the byte into a word */ orr r3, r3, r3, lsl #16 /* we know we have at least 4 bytes ... */ cmp r2, #0x00000020 /* if less than 32 then use words */ blt .Lmemset_lessthan32 /* we have at least 32 so lets use quad words */ stmfd sp!, {r4-r6} /* store registers */ mov r4, r3 /* duplicate data */ mov r5, r3 mov r6, r3 .Lmemset_loop16: stmia r0!, {r3-r6} /* store 16 bytes */ sub r2, r2, #0x00000010 /* adjust count */ cmp r2, #0x00000010 /* still got at least 16 bytes ? */ bgt .Lmemset_loop16 ldmfd sp!, {r4-r6} /* restore registers */ /* do we need to set some words as well ? */ cmp r2, #0x00000004 blt .Lmemset_lessthanfour /* have either less than 16 or less than 32 depending on route taken */ .Lmemset_lessthan32: /* we have at least 4 bytes so copy as words */ .Lmemset_loop4: str r3, [r0], #0x0004 sub r2, r2, #0x0004 cmp r2, #0x00000004 bge .Lmemset_loop4 .Lmemset_lessthanfour: cmp r2, #0x00000000 ldmeqfd sp!, {r0} moveq pc, lr /* zero length so exit */ cmp r2, #0x00000002 strb r1, [r0], #0x0001 /* set 1 byte */ strgeb r1, [r0], #0x0001 /* set another byte */ strgtb r1, [r0], #0x0001 /* and a third */ ldmfd sp!, {r0} mov pc, lr /* exit */ xfel-1.3.5/payloads/v3s_s3/v3s-ddr/source/start.S000066400000000000000000000036351512120643700214650ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ .global _start _start: mov r0, #0 mcr p15, 0, r0, c8, c7, 0 mcr p15, 0, r0, c7, c5, 0 mcr p15, 0, r0, c7, c5, 6 mcr p15, 0, r0, c7, c10, 4 mcr p15, 0, r0, c7, c5, 4 b reset reset: ldr r0, =0x00000040 str sp, [r0, #0] str lr, [r0, #4] mrs lr, cpsr str lr, [r0, #8] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #12] mrc p15, 0, lr, c12, c0, 0 str lr, [r0, #16] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #20] bl sys_uart_init bl sys_clock_init bl sys_dram_init ldr r0, =0x00000040 ldr sp, [r0, #0] ldr lr, [r0, #4] ldr r1, [r0, #20] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #16] mcr p15, 0, r1, c12, c0, 0 ldr r1, [r0, #12] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #8] msr cpsr, r1 bx lr xfel-1.3.5/payloads/v3s_s3/v3s-ddr/source/sys-clock.c000066400000000000000000000051031512120643700222470ustar00rootroot00000000000000/* * sys-clock.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include #include static inline void sdelay(int loops) { __asm__ __volatile__ ("1:\n" "subs %0, %1, #1\n" "bne 1b":"=r" (loops):"0"(loops)); } static void clock_set_pll_cpu(u32_t clk) { int p = 0; int k = 1; int m = 1; u32_t val; if(clk > 1152000000) { k = 2; } else if(clk > 768000000) { k = 3; m = 2; } /* Switch to 24MHz clock while changing cpu pll */ val = (2 << 0) | (1 << 8) | (1 << 16); write32(V3S_CCU_BASE + CCU_CPU_AXI_CFG, val); /* cpu pll rate = ((24000000 * n * k) >> p) / m */ val = (0x1 << 31); val |= ((p & 0x3) << 16); val |= ((((clk / (24000000 * k / m)) - 1) & 0x1f) << 8); val |= (((k - 1) & 0x3) << 4); val |= (((m - 1) & 0x3) << 0); write32(V3S_CCU_BASE + CCU_PLL_CPU_CTRL, val); sdelay(200); /* Switch clock source */ val = (2 << 0) | (1 << 8) | (2 << 16); write32(V3S_CCU_BASE + CCU_CPU_AXI_CFG, val); } void sys_clock_init(void) { clock_set_pll_cpu(1008000000); /* pll video - 396MHZ */ write32(V3S_CCU_BASE + CCU_PLL_VIDEO_CTRL, 0x91004107); /* pll periph0 - 600MHZ */ write32(V3S_CCU_BASE + CCU_PLL_PERIPH0_CTRL, 0x90041811); while(!(read32(V3S_CCU_BASE + CCU_PLL_PERIPH0_CTRL) & (1 << 28))); /* ahb1 = pll periph0 / 3, apb1 = ahb1 / 2 */ write32(V3S_CCU_BASE + CCU_AHB_APB0_CFG, 0x00003180); /* mbus = pll periph0 / 4 */ write32(V3S_CCU_BASE + CCU_MBUS_CLK, 0x81000003); } xfel-1.3.5/payloads/v3s_s3/v3s-ddr/source/sys-dram.c000066400000000000000000000503241512120643700221040ustar00rootroot00000000000000/* * sys-dram.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include #include #include #define CONFIG_DRAM_BASE (0x40000000) #define CONFIG_DRAM_CLK (360) #define CONFIG_DRAM_ZQ (14779) #define clrbits_le32(addr, clear) \ write32(((virtual_addr_t)(addr)), read32(((virtual_addr_t)(addr))) & ~(clear)) #define setbits_le32(addr, set) \ write32(((virtual_addr_t)(addr)), read32(((virtual_addr_t)(addr))) | (set)) #define clrsetbits_le32(addr, clear, set) \ write32(((virtual_addr_t)(addr)), (read32(((virtual_addr_t)(addr))) & ~(clear)) | (set)) #define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d)) #define REPEAT_BYTE(x) ((~0ul / 0xff) * (x)) struct v3s_dram_com_reg_t { u32_t cr; /* 0x00 control register */ u8_t res0[0xc]; /* 0x04 */ u32_t mcr[16][2]; /* 0x10 */ u32_t bwcr; /* 0x90 bandwidth control register */ u32_t maer; /* 0x94 master enable register */ u32_t mapr; /* 0x98 master priority register */ u32_t mcgcr; /* 0x9c */ u32_t cpu_bwcr; /* 0xa0 */ u32_t gpu_bwcr; /* 0xa4 */ u32_t ve_bwcr; /* 0xa8 */ u32_t disp_bwcr; /* 0xac */ u32_t other_bwcr; /* 0xb0 */ u32_t total_bwcr; /* 0xb4 */ u8_t res1[0x8]; /* 0xb8 */ u32_t swonr; /* 0xc0 */ u32_t swoffr; /* 0xc4 */ u8_t res2[0x8]; /* 0xc8 */ u32_t cccr; /* 0xd0 */ u8_t res3[0x72c]; /* 0xd4 */ u32_t protect; /* 0x800 */ }; struct v3s_dram_ctl_reg_t { u32_t pir; /* 0x00 PHY initialization register */ u32_t pwrctl; /* 0x04 */ u32_t mrctrl; /* 0x08 */ u32_t clken; /* 0x0c */ u32_t pgsr[2]; /* 0x10 PHY general status registers */ u32_t statr; /* 0x18 */ u8_t res1[0x14]; /* 0x1c */ u32_t mr[4]; /* 0x30 mode registers */ u32_t pllgcr; /* 0x40 */ u32_t ptr[5]; /* 0x44 PHY timing registers */ u32_t dramtmg[9]; /* 0x58 DRAM timing registers */ u32_t odtcfg; /* 0x7c */ u32_t pitmg[2]; /* 0x80 PHY interface timing registers */ u8_t res2[0x4]; /* 0x88 */ u32_t rfshctl0; /* 0x8c */ u32_t rfshtmg; /* 0x90 refresh timing */ u32_t rfshctl1; /* 0x94 */ u32_t pwrtmg; /* 0x98 */ u8_t res3[0x20]; /* 0x9c */ u32_t dqsgmr; /* 0xbc */ u32_t dtcr; /* 0xc0 */ u32_t dtar[4]; /* 0xc4 */ u32_t dtdr[2]; /* 0xd4 */ u32_t dtmr[2]; /* 0xdc */ u32_t dtbmr; /* 0xe4 */ u32_t catr[2]; /* 0xe8 */ u32_t dtedr[2]; /* 0xf0 */ u8_t res4[0x8]; /* 0xf8 */ u32_t pgcr[4]; /* 0x100 PHY general configuration registers */ u32_t iovcr[2]; /* 0x110 */ u32_t dqsdr; /* 0x118 */ u32_t dxccr; /* 0x11c */ u32_t odtmap; /* 0x120 */ u32_t zqctl[2]; /* 0x124 */ u8_t res6[0x14]; /* 0x12c */ u32_t zqcr; /* 0x140 ZQ control register */ u32_t zqsr; /* 0x144 ZQ status register */ u32_t zqdr[3]; /* 0x148 ZQ data registers */ u8_t res7[0x6c]; /* 0x154 */ u32_t sched; /* 0x1c0 */ u32_t perfhpr[2]; /* 0x1c4 */ u32_t perflpr[2]; /* 0x1cc */ u32_t perfwr[2]; /* 0x1d4 */ u8_t res8[0x2c]; /* 0x1dc */ u32_t aciocr; /* 0x208 */ u8_t res9[0xf4]; /* 0x20c */ struct { /* 0x300 DATX8 modules*/ u32_t mdlr; /* 0x00 */ u32_t lcdlr[3]; /* 0x04 */ u32_t iocr[11]; /* 0x10 IO configuration register */ u32_t bdlr6; /* 0x3c */ u32_t gtr; /* 0x40 */ u32_t gcr; /* 0x44 */ u32_t gsr[3]; /* 0x48 */ u8_t res0[0x2c];/* 0x54 */ } datx[4]; u8_t res10[0x388]; /* 0x500 */ u32_t upd2; /* 0x888 */ }; struct dram_para_t { u32_t read_delays; u32_t write_delays; u16_t page_size; u8_t bus_width; u8_t dual_rank; u8_t row_bits; u8_t bank_bits; }; static inline void sdelay(int loops) { __asm__ __volatile__ ("1:\n" "subs %0, %1, #1\n" "bne 1b":"=r" (loops):"0"(loops)); } static inline int gfls(int x) { int r = 32; if(!x) return 0; if(!(x & 0xffff0000u)) { x <<= 16; r -= 16; } if(!(x & 0xff000000u)) { x <<= 8; r -= 8; } if(!(x & 0xf0000000u)) { x <<= 4; r -= 4; } if(!(x & 0xc0000000u)) { x <<= 2; r -= 2; } if(!(x & 0x80000000u)) { x <<= 1; r -= 1; } return r; } static inline int ns_to_t(int ns) { unsigned int freq = CONFIG_DRAM_CLK / 2; return DIV_ROUND_UP(freq * ns, 1000); } static u32_t bin_to_mgray(int val) { u8_t table[32]; table[0] = 0x00; table[1] = 0x01; table[2] = 0x02; table[3] = 0x03; table[4] = 0x06; table[5] = 0x07; table[6] = 0x04; table[7] = 0x05; table[8] = 0x0c; table[9] = 0x0d; table[10] = 0x0e; table[11] = 0x0f; table[12] = 0x0a; table[13] = 0x0b; table[14] = 0x08; table[15] = 0x09; table[16] = 0x18; table[17] = 0x19; table[18] = 0x1a; table[19] = 0x1b; table[20] = 0x1e; table[21] = 0x1f; table[22] = 0x1c; table[23] = 0x1d; table[24] = 0x14; table[25] = 0x15; table[26] = 0x16; table[27] = 0x17; table[28] = 0x12; table[29] = 0x13; table[30] = 0x10; table[31] = 0x11; return table[clamp(val, 0, 31)]; } static int mgray_to_bin(u32_t val) { u8_t table[32]; table[0] = 0x00; table[1] = 0x01; table[2] = 0x02; table[3] = 0x03; table[4] = 0x06; table[5] = 0x07; table[6] = 0x04; table[7] = 0x05; table[8] = 0x0e; table[9] = 0x0f; table[10] = 0x0c; table[11] = 0x0d; table[12] = 0x08; table[13] = 0x09; table[14] = 0x0a; table[15] = 0x0b; table[16] = 0x1e; table[17] = 0x1f; table[18] = 0x1c; table[19] = 0x1d; table[20] = 0x18; table[21] = 0x19; table[22] = 0x1a; table[23] = 0x1b; table[24] = 0x10; table[25] = 0x11; table[26] = 0x12; table[27] = 0x13; table[28] = 0x16; table[29] = 0x17; table[30] = 0x14; table[31] = 0x15; return table[val & 0x1f]; } static void clock_set_pll_ddr(u32_t clk) { int n = 32; int k = 1; int m = 2; u32_t val; /* ddr pll rate = 24000000 * n * k / m */ if(clk > 24000000 * k * n / m) { m = 1; if(clk > 24000000 * k * n / m) { k = 2; } } val = (0x1 << 31); val |= (0x0 << 24); val |= (0x1 << 20); val |= ((((clk / (24000000 * k / m)) - 1) & 0x1f) << 8); val |= (((k - 1) & 0x3) << 4); val |= (((m - 1) & 0x3) << 0); write32(V3S_CCU_BASE + CCU_PLL_DDR0_CTRL, val); sdelay(5500); } static void mctl_await_completion(u32_t * reg, u32_t mask, u32_t val) { int timeout = 0; while((read32((virtual_addr_t)reg) & mask) != val) { if(timeout++ > 10000) break; } } static int mctl_mem_matches(u32_t offset) { write32(CONFIG_DRAM_BASE, 0); write32(CONFIG_DRAM_BASE + offset, 0xaa55aa55); __asm__ __volatile__ ("dsb" : : : "memory"); return (read32(CONFIG_DRAM_BASE) == read32(CONFIG_DRAM_BASE + offset)) ? 1 : 0; } static void mctl_phy_init(u32_t val) { struct v3s_dram_ctl_reg_t * ctl = (struct v3s_dram_ctl_reg_t *)V3S_DRAM_CTL_BASE; write32((virtual_addr_t)&ctl->pir, val | PIR_INIT); mctl_await_completion(&ctl->pgsr[0], PGSR_INIT_DONE, 0x1); } static void mctl_dq_delay(u32_t read, u32_t write) { struct v3s_dram_ctl_reg_t * ctl = (struct v3s_dram_ctl_reg_t *)V3S_DRAM_CTL_BASE; int i, j; u32_t val; for(i = 0; i < 4; i++) { val = DATX_IOCR_WRITE_DELAY((write >> (i * 4)) & 0xf) | DATX_IOCR_READ_DELAY(((read >> (i * 4)) & 0xf) * 2); for(j = DATX_IOCR_DQ(0); j <= DATX_IOCR_DM; j++) write32((virtual_addr_t)&ctl->datx[i].iocr[j], val); } clrbits_le32(&ctl->pgcr[0], 1 << 26); for(i = 0; i < 4; i++) { val = DATX_IOCR_WRITE_DELAY((write >> (16 + i * 4)) & 0xf) | DATX_IOCR_READ_DELAY((read >> (16 + i * 4)) & 0xf); write32((virtual_addr_t)&ctl->datx[i].iocr[DATX_IOCR_DQS], val); write32((virtual_addr_t)&ctl->datx[i].iocr[DATX_IOCR_DQSN], val); } setbits_le32(&ctl->pgcr[0], 1 << 26); sdelay(1); } static void mctl_set_master_priority(void) { struct v3s_dram_com_reg_t * com = (struct v3s_dram_com_reg_t *)V3S_DRAM_COM_BASE; write32((virtual_addr_t)&com->bwcr, 0x00010190); write32((virtual_addr_t)&com->mapr, 0x00000001); write32((virtual_addr_t)&com->mcr[0][0], 0x0200000d); write32((virtual_addr_t)&com->mcr[0][1], 0x00800100); write32((virtual_addr_t)&com->mcr[1][0], 0x06000009); write32((virtual_addr_t)&com->mcr[1][1], 0x01000400); write32((virtual_addr_t)&com->mcr[2][0], 0x0200000d); write32((virtual_addr_t)&com->mcr[2][1], 0x00600100); write32((virtual_addr_t)&com->mcr[3][0], 0x0100000d); write32((virtual_addr_t)&com->mcr[3][1], 0x00200080); write32((virtual_addr_t)&com->mcr[4][0], 0x07000009); write32((virtual_addr_t)&com->mcr[4][1], 0x01000640); write32((virtual_addr_t)&com->mcr[5][0], 0x0100000d); write32((virtual_addr_t)&com->mcr[5][1], 0x00200080); write32((virtual_addr_t)&com->mcr[6][0], 0x01000009); write32((virtual_addr_t)&com->mcr[6][1], 0x00400080); write32((virtual_addr_t)&com->mcr[7][0], 0x0100000d); write32((virtual_addr_t)&com->mcr[7][1], 0x00400080); write32((virtual_addr_t)&com->mcr[8][0], 0x0100000d); write32((virtual_addr_t)&com->mcr[8][1], 0x00400080); write32((virtual_addr_t)&com->mcr[9][0], 0x04000009); write32((virtual_addr_t)&com->mcr[9][1], 0x00400100); write32((virtual_addr_t)&com->mcr[10][0], 0x2000030d); write32((virtual_addr_t)&com->mcr[10][1], 0x04001800); write32((virtual_addr_t)&com->mcr[11][0], 0x04000009); write32((virtual_addr_t)&com->mcr[11][1], 0x00400120); } static void mctl_set_timing_params(struct dram_para_t * para) { struct v3s_dram_ctl_reg_t * ctl = (struct v3s_dram_ctl_reg_t *)V3S_DRAM_CTL_BASE; u8_t tccd = 1; u8_t tfaw = ns_to_t(50); u8_t trrd = max(ns_to_t(10), 2); u8_t trcd = ns_to_t(20); u8_t trc = ns_to_t(65); u8_t txp = 2; u8_t twtr = max(ns_to_t(8), 2); u8_t trtp = max(ns_to_t(8), 2); u8_t twr = max(ns_to_t(15), 3); u8_t trp = ns_to_t(15); u8_t tras = ns_to_t(45); u16_t trefi = ns_to_t(7800) / 32; u16_t trfc = ns_to_t(328); u8_t tmrw = 0; u8_t tmrd = 2; u8_t tmod = 12; u8_t tcke = 3; u8_t tcksrx = 5; u8_t tcksre = 5; u8_t tckesr = 4; u8_t trasmax = 27; u8_t tcl = 3; /* CL 12 */ u8_t tcwl = 3; /* CWL 8 */ u8_t t_rdata_en = 1; u8_t wr_latency = 1; u32_t tdinit0 = (400 * CONFIG_DRAM_CLK) + 1; /* 400us */ u32_t tdinit1 = (500 * CONFIG_DRAM_CLK) / 1000 + 1; /* 500ns */ u32_t tdinit2 = (200 * CONFIG_DRAM_CLK) + 1; /* 200us */ u32_t tdinit3 = (1 * CONFIG_DRAM_CLK) + 1; /* 1us */ u8_t twtp = tcwl + 2 + twr; /* WL + BL / 2 + tWR */ u8_t twr2rd = tcwl + 2 + twtr; /* WL + BL / 2 + tWTR */ u8_t trd2wr = tcl + 2 + 1 - tcwl; /* RL + BL / 2 + 2 - WL */ write32((virtual_addr_t)&ctl->mr[0], 0x263); /* CL=11, WR=12 */ write32((virtual_addr_t)&ctl->mr[1], 0x4); write32((virtual_addr_t)&ctl->mr[2], 0x0); /* CWL=8 */ write32((virtual_addr_t)&ctl->mr[3], 0x0); /* Set DRAM timing */ write32((virtual_addr_t)&ctl->dramtmg[0], DRAMTMG0_TWTP(twtp) | DRAMTMG0_TFAW(tfaw) | DRAMTMG0_TRAS_MAX(trasmax) | DRAMTMG0_TRAS(tras)); write32((virtual_addr_t)&ctl->dramtmg[1], DRAMTMG1_TXP(txp) | DRAMTMG1_TRTP(trtp) | DRAMTMG1_TRC(trc)); write32((virtual_addr_t)&ctl->dramtmg[2], DRAMTMG2_TCWL(tcwl) | DRAMTMG2_TCL(tcl) | DRAMTMG2_TRD2WR(trd2wr) | DRAMTMG2_TWR2RD(twr2rd)); write32((virtual_addr_t)&ctl->dramtmg[3], DRAMTMG3_TMRW(tmrw) | DRAMTMG3_TMRD(tmrd) | DRAMTMG3_TMOD(tmod)); write32((virtual_addr_t)&ctl->dramtmg[4], DRAMTMG4_TRCD(trcd) | DRAMTMG4_TCCD(tccd) | DRAMTMG4_TRRD(trrd) | DRAMTMG4_TRP(trp)); write32((virtual_addr_t)&ctl->dramtmg[5], DRAMTMG5_TCKSRX(tcksrx) | DRAMTMG5_TCKSRE(tcksre) | DRAMTMG5_TCKESR(tckesr) | DRAMTMG5_TCKE(tcke)); /* Set two rank timing */ clrsetbits_le32(&ctl->dramtmg[8], (0xff << 8) | (0xff << 0), (0x66 << 8) | (0x10 << 0)); /* Set PHY interface timing, write latency and read latency configure */ write32((virtual_addr_t)&ctl->pitmg[0], (0x2 << 24) | (t_rdata_en << 16) | (0x1 << 8) | (wr_latency << 0)); /* Set PHY timing, PTR0-2 use default */ write32((virtual_addr_t)&ctl->ptr[3], PTR3_TDINIT0(tdinit0) | PTR3_TDINIT1(tdinit1)); write32((virtual_addr_t)&ctl->ptr[4], PTR4_TDINIT2(tdinit2) | PTR4_TDINIT3(tdinit3)); /* Set refresh timing */ write32((virtual_addr_t)&ctl->rfshtmg, RFSHTMG_TREFI(trefi) | RFSHTMG_TRFC(trfc)); } static void mctl_zq_calibration(struct dram_para_t * para) { struct v3s_dram_ctl_reg_t * ctl = (struct v3s_dram_ctl_reg_t *)V3S_DRAM_CTL_BASE; u16_t zq_val[6]; u32_t val; u8_t zq; int i; if(((read32(0x01c00000 + 0x24) & 0xff) == 0) && ((read32(0x01c00000 + 0xf0) & 0x1) == 0)) { clrsetbits_le32(&ctl->zqcr, 0xffff, CONFIG_DRAM_ZQ & 0xffff); write32((virtual_addr_t)&ctl->pir, PIR_CLRSR); mctl_phy_init(PIR_ZCAL); val = read32((virtual_addr_t)&ctl->zqdr[0]); val &= (0x1f << 16) | (0x1f << 0); val |= val << 8; write32((virtual_addr_t)&ctl->zqdr[0], val); val = read32((virtual_addr_t)&ctl->zqdr[1]); val &= (0x1f << 16) | (0x1f << 0); val |= val << 8; write32((virtual_addr_t)&ctl->zqdr[1], val); write32((virtual_addr_t)&ctl->zqdr[2], val); } else { write32((virtual_addr_t)&ctl->zqdr[2], 0x0a0a0a0a); for(i = 0; i < 4; i++) { zq = (CONFIG_DRAM_ZQ >> (i * 4)) & 0xf; write32((virtual_addr_t)&ctl->zqcr, (zq << 20) | (zq << 16) | (zq << 12) | (zq << 8) | (zq << 4) | (zq << 0)); write32((virtual_addr_t)&ctl->pir, PIR_CLRSR); mctl_phy_init(PIR_ZCAL); zq_val[i] = read32((virtual_addr_t)&ctl->zqdr[0]) & 0xff; write32((virtual_addr_t)&ctl->zqdr[2], REPEAT_BYTE(zq_val[i])); write32((virtual_addr_t)&ctl->pir, PIR_CLRSR); mctl_phy_init(PIR_ZCAL); val = read32((virtual_addr_t)&ctl->zqdr[0]) >> 24; zq_val[i] |= bin_to_mgray(mgray_to_bin(val) - 1) << 8; } write32((virtual_addr_t)&ctl->zqdr[0], (zq_val[1] << 16) | zq_val[0]); write32((virtual_addr_t)&ctl->zqdr[1], (zq_val[3] << 16) | zq_val[2]); } } static void mctl_set_cr(struct dram_para_t * para) { struct v3s_dram_com_reg_t * com = (struct v3s_dram_com_reg_t *)V3S_DRAM_COM_BASE; write32((virtual_addr_t)&com->cr, MCTL_CR_BL8 | MCTL_CR_2T | (para->bank_bits == 3 ? MCTL_CR_EIGHT_BANKS : MCTL_CR_FOUR_BANKS) | MCTL_CR_DDR2 | MCTL_CR_32BIT | MCTL_CR_INTERLEAVED | (para->dual_rank ? MCTL_CR_DUAL_RANK : MCTL_CR_SINGLE_RANK) | MCTL_CR_PAGE_SIZE(para->page_size) | MCTL_CR_ROW_BITS(para->row_bits)); } static void mctl_sys_init(struct dram_para_t * para) { struct v3s_dram_ctl_reg_t * ctl = (struct v3s_dram_ctl_reg_t *)V3S_DRAM_CTL_BASE; u32_t val; val = read32(V3S_CCU_BASE + CCU_MBUS_CLK); val &= ~(0x1 << 31); write32(V3S_CCU_BASE + CCU_MBUS_CLK, val); val = read32(V3S_CCU_BASE + CCU_MBUS_RST); val &= ~(0x1 << 31); write32(V3S_CCU_BASE + CCU_MBUS_RST, val); val = read32(V3S_CCU_BASE + CCU_BUS_CLK_GATE0); val &= ~(0x1 << 14); write32(V3S_CCU_BASE + CCU_BUS_CLK_GATE0, val); val = read32(V3S_CCU_BASE + CCU_BUS_SOFT_RST0); val &= ~(0x1 << 14); write32(V3S_CCU_BASE + CCU_BUS_SOFT_RST0, val); val = read32(V3S_CCU_BASE + CCU_PLL_DDR0_CTRL); val &= ~(0x1 << 31); write32(V3S_CCU_BASE + CCU_PLL_DDR0_CTRL, val); sdelay(10); val = read32(V3S_CCU_BASE + CCU_DRAM_CLK_GATE); val &= ~(0x1 << 31); write32(V3S_CCU_BASE + CCU_DRAM_CLK_GATE, val); sdelay(1000); clock_set_pll_ddr(CONFIG_DRAM_CLK * 2 * 1000000); val = read32(V3S_CCU_BASE + CCU_DRAM_CFG); val &= ~(0xf << 0); val &= ~(0x3 << 20); val |= ((1 - 1) << 0); val |= (0x0 << 20); val |= (0x1 << 16); write32(V3S_CCU_BASE + CCU_DRAM_CFG, val); mctl_await_completion((u32_t *)(V3S_CCU_BASE + CCU_DRAM_CFG), 0x1 << 16, 0); val = read32(V3S_CCU_BASE + CCU_BUS_SOFT_RST0); val |= (0x1 << 14); write32(V3S_CCU_BASE + CCU_BUS_SOFT_RST0, val); val = read32(V3S_CCU_BASE + CCU_BUS_CLK_GATE0); val |= (0x1 << 14); write32(V3S_CCU_BASE + CCU_BUS_CLK_GATE0, val); val = read32(V3S_CCU_BASE + CCU_MBUS_CLK); val |= (0x1 << 31); write32(V3S_CCU_BASE + CCU_MBUS_CLK, val); val = read32(V3S_CCU_BASE + CCU_MBUS_RST); val |= (0x1 << 31); write32(V3S_CCU_BASE + CCU_MBUS_RST, val); val = read32(V3S_CCU_BASE + CCU_DRAM_CFG); val |= (0x1 << 31); write32(V3S_CCU_BASE + CCU_DRAM_CFG, val); sdelay(10); write32((virtual_addr_t)&ctl->clken, 0xc00e); sdelay(500); } static int mctl_channel_init(struct dram_para_t * para) { struct v3s_dram_com_reg_t * com = (struct v3s_dram_com_reg_t *)V3S_DRAM_COM_BASE; struct v3s_dram_ctl_reg_t * ctl = (struct v3s_dram_ctl_reg_t *)V3S_DRAM_CTL_BASE; int i; mctl_set_cr(para); mctl_set_timing_params(para); mctl_set_master_priority(); clrbits_le32(&ctl->pgcr[0], (1 << 30) | 0x3f); clrsetbits_le32(&ctl->pgcr[1], 1 << 24, 1 << 26); write32((virtual_addr_t)&com->protect, 0x94be6fa3); sdelay(100); clrsetbits_le32(&ctl->upd2, 0xfff << 16, 0x50 << 16); write32((virtual_addr_t)&com->protect, 0x0); sdelay(100); for(i = 0; i < 4; i++) clrsetbits_le32(&ctl->datx[i].gcr, (0x3 << 4) | (0x1 << 1) | (0x3 << 2) | (0x3 << 12) | (0x3 << 14), 0x20); setbits_le32(&ctl->aciocr, 0x1 << 1); setbits_le32(&ctl->pgcr[2], 0x3 << 6); clrbits_le32(&ctl->pgcr[0], (0x3 << 14) | (0x3 << 12)); clrsetbits_le32(&ctl->pgcr[2], (0x3 << 10) | (0x3 << 8), (0x1 << 10) | (0x2 << 8)); if(para->bus_width != 32) { write32((virtual_addr_t)&ctl->datx[2].gcr, 0x0); write32((virtual_addr_t)&ctl->datx[3].gcr, 0x0); } clrsetbits_le32(&ctl->dtcr, 0xf << 24, (para->dual_rank ? 0x3 : 0x1) << 24); if(para->read_delays || para->write_delays) { mctl_dq_delay(para->read_delays, para->write_delays); sdelay(50); } mctl_zq_calibration(para); mctl_phy_init(PIR_PLLINIT | PIR_DCAL | PIR_PHYRST | PIR_DRAMINIT | PIR_QSGATE); if(read32((virtual_addr_t)&ctl->pgsr[0]) & (0xfe << 20)) { if(((read32((virtual_addr_t)&ctl->datx[0].gsr[0]) >> 24) & 0x2) || ((read32((virtual_addr_t)&ctl->datx[1].gsr[0]) >> 24) & 0x2)) { clrsetbits_le32(&ctl->dtcr, 0xf << 24, 0x1 << 24); para->dual_rank = 0; } if(((read32((virtual_addr_t)&ctl->datx[2].gsr[0]) >> 24) & 0x1) || ((read32((virtual_addr_t)&ctl->datx[3].gsr[0]) >> 24) & 0x1)) { write32((virtual_addr_t)&ctl->datx[2].gcr, 0x0); write32((virtual_addr_t)&ctl->datx[3].gcr, 0x0); para->bus_width = 16; } mctl_set_cr(para); sdelay(20); mctl_phy_init(PIR_QSGATE); if(read32((virtual_addr_t)&ctl->pgsr[0]) & (0xfe << 20)) return 1; } mctl_await_completion(&ctl->statr, 0x1, 0x1); setbits_le32(&ctl->rfshctl0, 0x1 << 31); sdelay(10); clrbits_le32(&ctl->rfshctl0, 0x1 << 31); sdelay(10); write32((virtual_addr_t)&ctl->pgcr[3], 0x00aa0060); setbits_le32(&ctl->zqcr, ZQCR_PWRDOWN); write32((virtual_addr_t)&com->maer, 0xffffffff); return 0; } static void mctl_auto_detect_dram_size(struct dram_para_t * para) { para->page_size = 512; para->row_bits = 16; para->bank_bits = 2; mctl_set_cr(para); for(para->row_bits = 11; para->row_bits < 16; para->row_bits++) { if(mctl_mem_matches((1 << (para->row_bits + para->bank_bits)) * para->page_size)) break; } para->page_size = 8192; mctl_set_cr(para); for(para->page_size = 512; para->page_size < 8192; para->page_size *= 2) { if(mctl_mem_matches(para->page_size)) break; } } void sys_dram_init(void) { struct v3s_dram_com_reg_t * com = (struct v3s_dram_com_reg_t *)V3S_DRAM_COM_BASE; struct v3s_dram_ctl_reg_t * ctl = (struct v3s_dram_ctl_reg_t *)V3S_DRAM_CTL_BASE; struct dram_para_t para = { .read_delays = 0x00007878, .write_delays = 0x6a440000, .dual_rank = 0, .bus_width = 32, .row_bits = 15, .bank_bits = 3, .page_size = 4096, }; u32_t * dsz = (void *)0x00000020; mctl_sys_init(¶); if(mctl_channel_init(¶)) { dsz[0] = 0; return; } if(para.dual_rank) write32((virtual_addr_t)&ctl->odtmap, 0x00000303); else write32((virtual_addr_t)&ctl->odtmap, 0x00000201); sdelay(1); write32((virtual_addr_t)&ctl->odtcfg, 0x04000400); clrbits_le32(&ctl->pgcr[2], (1 << 13)); setbits_le32(&com->cccr, 1 << 31); sdelay(10); mctl_auto_detect_dram_size(¶); mctl_set_cr(¶); dsz[0] = (1UL << (para.row_bits + para.bank_bits)) * para.page_size * (para.dual_rank ? 2 : 1); } xfel-1.3.5/payloads/v3s_s3/v3s-ddr/source/sys-uart.c000066400000000000000000000047011512120643700221320ustar00rootroot00000000000000/* * sys-uart.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include void sys_uart_init(void) { virtual_addr_t addr; u32_t val; /* Config GPIOB8 and GPIOB9 to txd0 and rxd0 */ addr = 0x01c20824 + 0x04; val = read32(addr); val &= ~(0xf << ((8 & 0x7) << 2)); val |= ((0x3 & 0x7) << ((8 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((9 & 0x7) << 2)); val |= ((0x3 & 0x7) << ((9 & 0x7) << 2)); write32(addr, val); /* Open the clock gate for uart0 */ addr = 0x01c2006c; val = read32(addr); val |= 1 << 16; write32(addr, val); /* Deassert uart0 reset */ addr = 0x01c202d8; val = read32(addr); val |= 1 << 16; write32(addr, val); /* Config uart0 to 115200-8-1-0 */ addr = 0x01c28000; write32(addr + 0x04, 0x0); write32(addr + 0x08, 0xf7); write32(addr + 0x10, 0x0); val = read32(addr + 0x0c); val |= (1 << 7); write32(addr + 0x0c, val); write32(addr + 0x00, 0xd & 0xff); write32(addr + 0x04, (0xd >> 8) & 0xff); val = read32(addr + 0x0c); val &= ~(1 << 7); write32(addr + 0x0c, val); val = read32(addr + 0x0c); val &= ~0x1f; val |= (0x3 << 0) | (0 << 2) | (0x0 << 3); write32(addr + 0x0c, val); } void sys_uart_putc(char c) { virtual_addr_t addr = 0x01c28000; while((read32(addr + 0x7c) & (0x1 << 1)) == 0); write32(addr + 0x00, c); } xfel-1.3.5/payloads/v821/000077500000000000000000000000001512120643700147735ustar00rootroot00000000000000xfel-1.3.5/payloads/v821/read32/000077500000000000000000000000001512120643700160535ustar00rootroot00000000000000xfel-1.3.5/payloads/v821/read32/.gitignore000066400000000000000000000000731512120643700200430ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/v821/read32/Makefile000066400000000000000000000057361512120643700175260ustar00rootroot00000000000000# # Top makefile # CROSS ?= ~/Documents/Xuantie-900-gcc-linux-5.10.4-glibc-x86_64-V2.8.1/bin/riscv64-unknown-linux-gnu- NAME := read32 # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 -ffreestanding CFLAGS := -g -ggdb -Wall -O3 -ffreestanding CXXFLAGS := -g -ggdb -Wall -O3 -ffreestanding LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -march=rv32imacxtheade -mabi=ilp32 -mtune=e907 -mcmodel=medany -fno-stack-protector LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/v821/read32/include/000077500000000000000000000000001512120643700174765ustar00rootroot00000000000000xfel-1.3.5/payloads/v821/read32/include/byteorder.h000066400000000000000000000043611512120643700216520ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/v821/read32/include/endian.h000066400000000000000000000007401512120643700211060ustar00rootroot00000000000000#ifndef __RISCV64_ENDIAN_H__ #define __RISCV64_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __RISCV64_ENDIAN_H__ */ xfel-1.3.5/payloads/v821/read32/include/io.h000066400000000000000000000016401512120643700202570ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/v821/read32/include/linkage.h000066400000000000000000000005401512120643700212600ustar00rootroot00000000000000#ifndef __RISCV_LINKAGE_H__ #define __RISCV_LINKAGE_H__ #ifdef __cplusplus extern "C" { #endif #if __riscv_xlen == 64 #define LREG ld #define SREG sd #define REGSZ 8 #define RVPTR .dword #elif __riscv_xlen == 32 #define LREG lw #define SREG sw #define REGSZ 4 #define RVPTR .word #endif #ifdef __cplusplus } #endif #endif /* __RISCV_LINKAGE_H__ */ xfel-1.3.5/payloads/v821/read32/include/riscv32.h000066400000000000000000000054311512120643700211450ustar00rootroot00000000000000#ifndef __RISCV32_H__ #define __RISCV32_H__ #ifdef __cplusplus extern "C" { #endif #define MSTATUS_UIE (1 << 0) #define MSTATUS_SIE (1 << 1) #define MSTATUS_MIE (1 << 3) #define MSTATUS_UPIE (1 << 4) #define MSTATUS_SPIE (1 << 5) #define MSTATUS_MPIE (1 << 7) #define MSTATUS_SPP (1 << 8) #define MSTATUS_MPP (3 << 11) #define MSTATUS_FS (3 << 13) #define MSTATUS_XS (3 << 15) #define MSTATUS_MPRV (1 << 17) #define MSTATUS_SUM (1 << 18) #define MSTATUS_MXR (1 << 19) #define MSTATUS_TVM (1 << 20) #define MSTATUS_TW (1 << 21) #define MSTATUS_TSR (1 << 22) #define MSTATUS32_SD (1 << 31) #define MSTATUS_UXL (3ULL << 32) #define MSTATUS_SXL (3ULL << 34) #define MSTATUS64_SD (1ULL << 63) #define MIP_USIP (1 << 0) #define MIP_SSIP (1 << 1) #define MIP_MSIP (1 << 3) #define MIP_UTIP (1 << 4) #define MIP_STIP (1 << 5) #define MIP_MTIP (1 << 7) #define MIP_UEIP (1 << 8) #define MIP_SEIP (1 << 9) #define MIP_MEIP (1 << 11) #define MIE_USIE (1 << 0) #define MIE_SSIE (1 << 1) #define MIE_MSIE (1 << 3) #define MIE_UTIE (1 << 4) #define MIE_STIE (1 << 5) #define MIE_MTIE (1 << 7) #define MIE_UEIE (1 << 8) #define MIE_SEIE (1 << 9) #define MIE_MEIE (1 << 11) #define csr_swap(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrrw %0, " #csr ", %1" \ : "=r" (__v) : "rK" (__v) \ : "memory"); \ __v; \ }) #define csr_read(csr) \ ({ \ register unsigned long __v; \ __asm__ __volatile__ ("csrr %0, " #csr \ : "=r" (__v) : \ : "memory"); \ __v; \ }) #define csr_write(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrw " #csr ", %0" \ : : "rK" (__v) \ : "memory"); \ }) #define csr_read_set(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrrs %0, " #csr ", %1" \ : "=r" (__v) : "rK" (__v) \ : "memory"); \ __v; \ }) #define csr_set(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrs " #csr ", %0" \ : : "rK" (__v) \ : "memory"); \ }) #define csr_read_clear(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrrc %0, " #csr ", %1" \ : "=r" (__v) : "rK" (__v) \ : "memory"); \ __v; \ }) #define csr_clear(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrc " #csr ", %0" \ : : "rK" (__v) \ : "memory"); \ }) #ifdef __cplusplus } #endif #endif /* __RISCV32_H__ */ xfel-1.3.5/payloads/v821/read32/include/stdarg.h000066400000000000000000000010541512120643700211330ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/v821/read32/include/stddef.h000066400000000000000000000026101512120643700211170ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/v821/read32/include/stdint.h000066400000000000000000000010161512120643700211520ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/v821/read32/include/string.h000066400000000000000000000004241512120643700211550ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/v821/read32/include/types.h000066400000000000000000000021131512120643700210100ustar00rootroot00000000000000#ifndef __RISCV32_TYPES_H__ #define __RISCV32_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed int ptrdiff_t; typedef signed int intptr_t; typedef unsigned int uintptr_t; typedef unsigned int size_t; typedef signed int ssize_t; typedef signed int off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned int irq_flags_t; typedef unsigned int virtual_addr_t; typedef unsigned int virtual_size_t; typedef unsigned int physical_addr_t; typedef unsigned int physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __RISCV32_TYPES_H__ */ xfel-1.3.5/payloads/v821/read32/include/xboot.h000066400000000000000000000004731512120643700210060ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/v821/read32/link.ld000066400000000000000000000025741512120643700173410ustar00rootroot00000000000000OUTPUT_FORMAT("elf32-littleriscv", "elf32-littleriscv", "elf32-littleriscv") OUTPUT_ARCH(riscv) ENTRY(_start) STACK_SIZE = 0x010; MEMORY { ram : org = 0x02020800, len = 0x00000200 /* 512B */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text*) *(.text*) *(.iplt) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(.rodata*) *(.srodata*) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); PROVIDE(__global_pointer$ = . + 0x800); *(.sdata*) *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(16) (NOLOAD) : { PROVIDE(__stack_start = .); . += STACK_SIZE; . = ALIGN(16); PROVIDE(__stack_end = .); } > ram /DISCARD/ : { *(.dynsym) } /DISCARD/ : { *(.dynstr*) } /DISCARD/ : { *(.dynamic*) } /DISCARD/ : { *(.plt*) } /DISCARD/ : { *(.interp*) } /DISCARD/ : { *(.gnu*) } } xfel-1.3.5/payloads/v821/read32/source/000077500000000000000000000000001512120643700173535ustar00rootroot00000000000000xfel-1.3.5/payloads/v821/read32/source/start.S000066400000000000000000000027321512120643700206400ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include #include .global _start _start: li t1, 0x1 << 22 csrs mxstatus, t1 fence.i j reset reset: la t0, _adr lw t0, (t0) lw t0, (t0) la t1, _val sw t0, (t1) ret .align 2 _adr: .word 0x11223344 _val: .word 0x55667788 xfel-1.3.5/payloads/v821/spi/000077500000000000000000000000001512120643700155665ustar00rootroot00000000000000xfel-1.3.5/payloads/v821/spi/.gitignore000066400000000000000000000000731512120643700175560ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/v821/spi/Makefile000066400000000000000000000057331512120643700172360ustar00rootroot00000000000000# # Top makefile # CROSS ?= ~/Documents/Xuantie-900-gcc-linux-5.10.4-glibc-x86_64-V2.8.1/bin/riscv64-unknown-linux-gnu- NAME := spi # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 -ffreestanding CFLAGS := -g -ggdb -Wall -O3 -ffreestanding CXXFLAGS := -g -ggdb -Wall -O3 -ffreestanding LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -march=rv32imacxtheade -mabi=ilp32 -mtune=e907 -mcmodel=medany -fno-stack-protector LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/v821/spi/include/000077500000000000000000000000001512120643700172115ustar00rootroot00000000000000xfel-1.3.5/payloads/v821/spi/include/byteorder.h000066400000000000000000000043611512120643700213650ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/v821/spi/include/endian.h000066400000000000000000000007401512120643700206210ustar00rootroot00000000000000#ifndef __RISCV64_ENDIAN_H__ #define __RISCV64_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __RISCV64_ENDIAN_H__ */ xfel-1.3.5/payloads/v821/spi/include/io.h000066400000000000000000000016401512120643700177720ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/v821/spi/include/linkage.h000066400000000000000000000005401512120643700207730ustar00rootroot00000000000000#ifndef __RISCV_LINKAGE_H__ #define __RISCV_LINKAGE_H__ #ifdef __cplusplus extern "C" { #endif #if __riscv_xlen == 64 #define LREG ld #define SREG sd #define REGSZ 8 #define RVPTR .dword #elif __riscv_xlen == 32 #define LREG lw #define SREG sw #define REGSZ 4 #define RVPTR .word #endif #ifdef __cplusplus } #endif #endif /* __RISCV_LINKAGE_H__ */ xfel-1.3.5/payloads/v821/spi/include/riscv32.h000066400000000000000000000054311512120643700206600ustar00rootroot00000000000000#ifndef __RISCV32_H__ #define __RISCV32_H__ #ifdef __cplusplus extern "C" { #endif #define MSTATUS_UIE (1 << 0) #define MSTATUS_SIE (1 << 1) #define MSTATUS_MIE (1 << 3) #define MSTATUS_UPIE (1 << 4) #define MSTATUS_SPIE (1 << 5) #define MSTATUS_MPIE (1 << 7) #define MSTATUS_SPP (1 << 8) #define MSTATUS_MPP (3 << 11) #define MSTATUS_FS (3 << 13) #define MSTATUS_XS (3 << 15) #define MSTATUS_MPRV (1 << 17) #define MSTATUS_SUM (1 << 18) #define MSTATUS_MXR (1 << 19) #define MSTATUS_TVM (1 << 20) #define MSTATUS_TW (1 << 21) #define MSTATUS_TSR (1 << 22) #define MSTATUS32_SD (1 << 31) #define MSTATUS_UXL (3ULL << 32) #define MSTATUS_SXL (3ULL << 34) #define MSTATUS64_SD (1ULL << 63) #define MIP_USIP (1 << 0) #define MIP_SSIP (1 << 1) #define MIP_MSIP (1 << 3) #define MIP_UTIP (1 << 4) #define MIP_STIP (1 << 5) #define MIP_MTIP (1 << 7) #define MIP_UEIP (1 << 8) #define MIP_SEIP (1 << 9) #define MIP_MEIP (1 << 11) #define MIE_USIE (1 << 0) #define MIE_SSIE (1 << 1) #define MIE_MSIE (1 << 3) #define MIE_UTIE (1 << 4) #define MIE_STIE (1 << 5) #define MIE_MTIE (1 << 7) #define MIE_UEIE (1 << 8) #define MIE_SEIE (1 << 9) #define MIE_MEIE (1 << 11) #define csr_swap(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrrw %0, " #csr ", %1" \ : "=r" (__v) : "rK" (__v) \ : "memory"); \ __v; \ }) #define csr_read(csr) \ ({ \ register unsigned long __v; \ __asm__ __volatile__ ("csrr %0, " #csr \ : "=r" (__v) : \ : "memory"); \ __v; \ }) #define csr_write(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrw " #csr ", %0" \ : : "rK" (__v) \ : "memory"); \ }) #define csr_read_set(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrrs %0, " #csr ", %1" \ : "=r" (__v) : "rK" (__v) \ : "memory"); \ __v; \ }) #define csr_set(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrs " #csr ", %0" \ : : "rK" (__v) \ : "memory"); \ }) #define csr_read_clear(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrrc %0, " #csr ", %1" \ : "=r" (__v) : "rK" (__v) \ : "memory"); \ __v; \ }) #define csr_clear(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrc " #csr ", %0" \ : : "rK" (__v) \ : "memory"); \ }) #ifdef __cplusplus } #endif #endif /* __RISCV32_H__ */ xfel-1.3.5/payloads/v821/spi/include/stdarg.h000066400000000000000000000010541512120643700206460ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/v821/spi/include/stddef.h000066400000000000000000000026101512120643700206320ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/v821/spi/include/stdint.h000066400000000000000000000010161512120643700206650ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/v821/spi/include/string.h000066400000000000000000000004241512120643700206700ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/v821/spi/include/types.h000066400000000000000000000021131512120643700205230ustar00rootroot00000000000000#ifndef __RISCV32_TYPES_H__ #define __RISCV32_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed int ptrdiff_t; typedef signed int intptr_t; typedef unsigned int uintptr_t; typedef unsigned int size_t; typedef signed int ssize_t; typedef signed int off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned int irq_flags_t; typedef unsigned int virtual_addr_t; typedef unsigned int virtual_size_t; typedef unsigned int physical_addr_t; typedef unsigned int physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __RISCV32_TYPES_H__ */ xfel-1.3.5/payloads/v821/spi/include/xboot.h000066400000000000000000000004731512120643700205210ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/v821/spi/link.ld000066400000000000000000000025731512120643700170530ustar00rootroot00000000000000OUTPUT_FORMAT("elf32-littleriscv", "elf32-littleriscv", "elf32-littleriscv") OUTPUT_ARCH(riscv) ENTRY(_start) STACK_SIZE = 0x100; MEMORY { ram : org = 0x02000000, len = 0x00001000 /* 4KB */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text*) *(.text*) *(.iplt) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(.rodata*) *(.srodata*) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); PROVIDE(__global_pointer$ = . + 0x800); *(.sdata*) *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(16) (NOLOAD) : { PROVIDE(__stack_start = .); . += STACK_SIZE; . = ALIGN(16); PROVIDE(__stack_end = .); } > ram /DISCARD/ : { *(.dynsym) } /DISCARD/ : { *(.dynstr*) } /DISCARD/ : { *(.dynamic*) } /DISCARD/ : { *(.plt*) } /DISCARD/ : { *(.interp*) } /DISCARD/ : { *(.gnu*) } } xfel-1.3.5/payloads/v821/spi/source/000077500000000000000000000000001512120643700170665ustar00rootroot00000000000000xfel-1.3.5/payloads/v821/spi/source/start.S000066400000000000000000000030151512120643700203460ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include #include .global _start _start: li t1, 0x1 << 22 csrs mxstatus, t1 fence.i j reset reset: addi sp, sp, -32 sw s0, 8(sp) sw s1, 16(sp) sw ra, 24(sp) mv s0, a0 li a0, 0x02001000 jal sys_spi_run lw ra, 24(sp) lw s0, 8(sp) lw s1, 16(sp) addi sp, sp, 32 jr ra xfel-1.3.5/payloads/v821/spi/source/sys-spi.c000066400000000000000000000142761512120643700206530ustar00rootroot00000000000000/* * Copyright(c) Jianjun Jiang <8192542@qq.com> * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ #include enum { SPI_GCR = 0x04, SPI_TCR = 0x08, SPI_IER = 0x10, SPI_ISR = 0x14, SPI_FCR = 0x18, SPI_FSR = 0x1c, SPI_WCR = 0x20, SPI_CCR = 0x24, SPI_MBC = 0x30, SPI_MTC = 0x34, SPI_BCC = 0x38, SPI_TXD = 0x200, SPI_RXD = 0x300, }; static void sys_spi_init(void) { virtual_addr_t addr; u32_t val; /* Config GPIOC8, GPIOC9, GPIOC10 and GPIOC11 */ addr = 0x42000060 + 0x04; val = read32(addr); val &= ~(0xf << ((8 & 0x7) << 2)); val |= ((0x3 & 0xf) << ((8 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((9 & 0x7) << 2)); val |= ((0x3 & 0xf) << ((9 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((10 & 0x7) << 2)); val |= ((0x3 & 0xf) << ((10 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((11 & 0x7) << 2)); val |= ((0x3 & 0xf) << ((11 & 0x7) << 2)); write32(addr, val); /* Deassert spi0 reset */ addr = 0x42001094; val = read32(addr); val |= (1 << 4); write32(addr, val); /* Open the spi0 bus gate */ addr = 0x42001084; val = read32(addr); val |= (1 << 4); write32(addr, val); /* Open the spi0 gate */ addr = 0x4200101c; val = read32(addr); val |= (1 << 31); write32(addr, val); /* Select pll-peri-cko-307m for spi0 clk */ addr = 0x4200101c; val = read32(addr); val &= ~(0x7 << 24); val |= 0x1 << 24; write32(addr, val); /* Set clock pre divide ratio, divided by 1 */ addr = 0x4200101c; val = read32(addr); val &= ~(0x3 << 16); val |= 0x0 << 16; write32(addr, val); /* Set clock divide ratio, divided by 3 */ addr = 0x4200101c; val = read32(addr); val &= ~(0xf << 0); val |= (3 - 1) << 0; write32(addr, val); /* Set spi clock rate control register, divided by 2 */ addr = 0x44025000; write32(addr + SPI_CCR, 0x1000); /* Enable spi0 and do a soft reset */ addr = 0x44025000; val = read32(addr + SPI_GCR); val |= (1 << 31) | (1 << 7) | (1 << 1) | (1 << 0); write32(addr + SPI_GCR, val); while(read32(addr + SPI_GCR) & (1 << 31)); val = read32(addr + SPI_TCR); val &= ~(0x3 << 0); val |= (1 << 6) | (1 << 2); write32(addr + SPI_TCR, val); val = read32(addr + SPI_FCR); val |= (1 << 31) | (1 << 15); write32(addr + SPI_FCR, val); } static void sys_spi_select(void) { virtual_addr_t addr = 0x44025000; u32_t val; val = read32(addr + SPI_TCR); val &= ~((0x3 << 4) | (0x1 << 7)); val |= ((0 & 0x3) << 4) | (0x0 << 7); write32(addr + SPI_TCR, val); } static void sys_spi_deselect(void) { virtual_addr_t addr = 0x44025000; u32_t val; val = read32(addr + SPI_TCR); val &= ~((0x3 << 4) | (0x1 << 7)); val |= ((0 & 0x3) << 4) | (0x1 << 7); write32(addr + SPI_TCR, val); } static inline void sys_spi_write_txbuf(u8_t * buf, int len) { virtual_addr_t addr = 0x44025000; int i; write32(addr + SPI_MTC, len & 0xffffff); write32(addr + SPI_BCC, len & 0xffffff); if(buf) { for(i = 0; i < len; i++) write8(addr + SPI_TXD, *buf++); } else { for(i = 0; i < len; i++) write8(addr + SPI_TXD, 0xff); } } static void sys_spi_transfer(void * txbuf, void * rxbuf, u32_t len) { virtual_addr_t addr = 0x44025000; u8_t * tx = txbuf; u8_t * rx = rxbuf; u8_t val; int n, i; while(len > 0) { n = (len <= 64) ? len : 64; write32(addr + SPI_MBC, n); sys_spi_write_txbuf(tx, n); write32(addr + SPI_TCR, read32(addr + SPI_TCR) | (1 << 31)); while(read32(addr + SPI_TCR) & (1 << 31)); while((read32(addr + SPI_FSR) & 0xff) < n); for(i = 0; i < n; i++) { val = read8(addr + SPI_RXD); if(rx) *rx++ = val; } if(tx) tx += n; len -= n; } } enum { SPI_CMD_END = 0x00, SPI_CMD_INIT = 0x01, SPI_CMD_SELECT = 0x02, SPI_CMD_DESELECT = 0x03, SPI_CMD_FAST = 0x04, SPI_CMD_TXBUF = 0x05, SPI_CMD_RXBUF = 0x06, SPI_CMD_SPINOR_WAIT = 0x07, SPI_CMD_SPINAND_WAIT = 0x08, }; void sys_spi_run(void * cbuf) { uint8_t tx[8], rx[8]; u8_t c, * p = cbuf; u32_t addr, len; while(1) { c = *p++; if(c == SPI_CMD_INIT) { sys_spi_init(); } else if(c == SPI_CMD_SELECT) { sys_spi_select(); } else if(c == SPI_CMD_DESELECT) { sys_spi_deselect(); } else if(c == SPI_CMD_FAST) { len = p[0]; sys_spi_transfer((void *)&p[1], NULL, len); p += (len + 1); } else if(c == SPI_CMD_TXBUF) { addr = (p[0] << 0) | (p[1] << 8) | (p[2] << 16) | (p[3] << 24); len = (p[4] << 0) | (p[5] << 8) | (p[6] << 16) | (p[7] << 24); sys_spi_transfer((void *)((unsigned long)addr), NULL, len); p += 8; } else if(c == SPI_CMD_RXBUF) { addr = (p[0] << 0) | (p[1] << 8) | (p[2] << 16) | (p[3] << 24); len = (p[4] << 0) | (p[5] << 8) | (p[6] << 16) | (p[7] << 24); sys_spi_transfer(NULL, (void *)((unsigned long)addr), len); p += 8; } else if(c == SPI_CMD_SPINOR_WAIT) { tx[0] = 0x05; do { sys_spi_transfer((void *)&tx[0], NULL, 1); sys_spi_transfer(NULL, (void *)&rx[0], 1); } while((rx[0] & 0x1) == 0x1); } else if(c == SPI_CMD_SPINAND_WAIT) { tx[0] = 0x0f; tx[1] = 0xc0; do { sys_spi_transfer((void *)&tx[0], NULL, 2); sys_spi_transfer(NULL, (void *)&rx[0], 1); } while((rx[0] & 0x1) == 0x1); } else { return; } } } xfel-1.3.5/payloads/v821/write32/000077500000000000000000000000001512120643700162725ustar00rootroot00000000000000xfel-1.3.5/payloads/v821/write32/.gitignore000066400000000000000000000000731512120643700202620ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/v821/write32/Makefile000066400000000000000000000057371512120643700177460ustar00rootroot00000000000000# # Top makefile # CROSS ?= ~/Documents/Xuantie-900-gcc-linux-5.10.4-glibc-x86_64-V2.8.1/bin/riscv64-unknown-linux-gnu- NAME := write32 # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 -ffreestanding CFLAGS := -g -ggdb -Wall -O3 -ffreestanding CXXFLAGS := -g -ggdb -Wall -O3 -ffreestanding LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -march=rv32imacxtheade -mabi=ilp32 -mtune=e907 -mcmodel=medany -fno-stack-protector LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/v821/write32/include/000077500000000000000000000000001512120643700177155ustar00rootroot00000000000000xfel-1.3.5/payloads/v821/write32/include/byteorder.h000066400000000000000000000043611512120643700220710ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/v821/write32/include/endian.h000066400000000000000000000007401512120643700213250ustar00rootroot00000000000000#ifndef __RISCV64_ENDIAN_H__ #define __RISCV64_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __RISCV64_ENDIAN_H__ */ xfel-1.3.5/payloads/v821/write32/include/io.h000066400000000000000000000016401512120643700204760ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/v821/write32/include/linkage.h000066400000000000000000000005401512120643700214770ustar00rootroot00000000000000#ifndef __RISCV_LINKAGE_H__ #define __RISCV_LINKAGE_H__ #ifdef __cplusplus extern "C" { #endif #if __riscv_xlen == 64 #define LREG ld #define SREG sd #define REGSZ 8 #define RVPTR .dword #elif __riscv_xlen == 32 #define LREG lw #define SREG sw #define REGSZ 4 #define RVPTR .word #endif #ifdef __cplusplus } #endif #endif /* __RISCV_LINKAGE_H__ */ xfel-1.3.5/payloads/v821/write32/include/riscv32.h000066400000000000000000000054311512120643700213640ustar00rootroot00000000000000#ifndef __RISCV32_H__ #define __RISCV32_H__ #ifdef __cplusplus extern "C" { #endif #define MSTATUS_UIE (1 << 0) #define MSTATUS_SIE (1 << 1) #define MSTATUS_MIE (1 << 3) #define MSTATUS_UPIE (1 << 4) #define MSTATUS_SPIE (1 << 5) #define MSTATUS_MPIE (1 << 7) #define MSTATUS_SPP (1 << 8) #define MSTATUS_MPP (3 << 11) #define MSTATUS_FS (3 << 13) #define MSTATUS_XS (3 << 15) #define MSTATUS_MPRV (1 << 17) #define MSTATUS_SUM (1 << 18) #define MSTATUS_MXR (1 << 19) #define MSTATUS_TVM (1 << 20) #define MSTATUS_TW (1 << 21) #define MSTATUS_TSR (1 << 22) #define MSTATUS32_SD (1 << 31) #define MSTATUS_UXL (3ULL << 32) #define MSTATUS_SXL (3ULL << 34) #define MSTATUS64_SD (1ULL << 63) #define MIP_USIP (1 << 0) #define MIP_SSIP (1 << 1) #define MIP_MSIP (1 << 3) #define MIP_UTIP (1 << 4) #define MIP_STIP (1 << 5) #define MIP_MTIP (1 << 7) #define MIP_UEIP (1 << 8) #define MIP_SEIP (1 << 9) #define MIP_MEIP (1 << 11) #define MIE_USIE (1 << 0) #define MIE_SSIE (1 << 1) #define MIE_MSIE (1 << 3) #define MIE_UTIE (1 << 4) #define MIE_STIE (1 << 5) #define MIE_MTIE (1 << 7) #define MIE_UEIE (1 << 8) #define MIE_SEIE (1 << 9) #define MIE_MEIE (1 << 11) #define csr_swap(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrrw %0, " #csr ", %1" \ : "=r" (__v) : "rK" (__v) \ : "memory"); \ __v; \ }) #define csr_read(csr) \ ({ \ register unsigned long __v; \ __asm__ __volatile__ ("csrr %0, " #csr \ : "=r" (__v) : \ : "memory"); \ __v; \ }) #define csr_write(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrw " #csr ", %0" \ : : "rK" (__v) \ : "memory"); \ }) #define csr_read_set(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrrs %0, " #csr ", %1" \ : "=r" (__v) : "rK" (__v) \ : "memory"); \ __v; \ }) #define csr_set(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrs " #csr ", %0" \ : : "rK" (__v) \ : "memory"); \ }) #define csr_read_clear(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrrc %0, " #csr ", %1" \ : "=r" (__v) : "rK" (__v) \ : "memory"); \ __v; \ }) #define csr_clear(csr, val) \ ({ \ unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__ ("csrc " #csr ", %0" \ : : "rK" (__v) \ : "memory"); \ }) #ifdef __cplusplus } #endif #endif /* __RISCV32_H__ */ xfel-1.3.5/payloads/v821/write32/include/stdarg.h000066400000000000000000000010541512120643700213520ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/v821/write32/include/stddef.h000066400000000000000000000026101512120643700213360ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/v821/write32/include/stdint.h000066400000000000000000000010161512120643700213710ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/v821/write32/include/string.h000066400000000000000000000004241512120643700213740ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/v821/write32/include/types.h000066400000000000000000000021131512120643700212270ustar00rootroot00000000000000#ifndef __RISCV32_TYPES_H__ #define __RISCV32_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed int ptrdiff_t; typedef signed int intptr_t; typedef unsigned int uintptr_t; typedef unsigned int size_t; typedef signed int ssize_t; typedef signed int off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned int irq_flags_t; typedef unsigned int virtual_addr_t; typedef unsigned int virtual_size_t; typedef unsigned int physical_addr_t; typedef unsigned int physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __RISCV32_TYPES_H__ */ xfel-1.3.5/payloads/v821/write32/include/xboot.h000066400000000000000000000004731512120643700212250ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/v821/write32/link.ld000066400000000000000000000025741512120643700175600ustar00rootroot00000000000000OUTPUT_FORMAT("elf32-littleriscv", "elf32-littleriscv", "elf32-littleriscv") OUTPUT_ARCH(riscv) ENTRY(_start) STACK_SIZE = 0x010; MEMORY { ram : org = 0x02020800, len = 0x00000200 /* 512B */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text*) *(.text*) *(.iplt) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(.rodata*) *(.srodata*) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); PROVIDE(__global_pointer$ = . + 0x800); *(.sdata*) *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(16) (NOLOAD) : { PROVIDE(__stack_start = .); . += STACK_SIZE; . = ALIGN(16); PROVIDE(__stack_end = .); } > ram /DISCARD/ : { *(.dynsym) } /DISCARD/ : { *(.dynstr*) } /DISCARD/ : { *(.dynamic*) } /DISCARD/ : { *(.plt*) } /DISCARD/ : { *(.interp*) } /DISCARD/ : { *(.gnu*) } } xfel-1.3.5/payloads/v821/write32/source/000077500000000000000000000000001512120643700175725ustar00rootroot00000000000000xfel-1.3.5/payloads/v821/write32/source/start.S000066400000000000000000000027321512120643700210570ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include #include .global _start _start: li t1, 0x1 << 22 csrs mxstatus, t1 fence.i j reset reset: la t0, _adr lw t0, (t0) la t1, _val lw t1, (t1) sw t1, (t0) ret .align 2 _adr: .word 0x11223344 _val: .word 0x55667788 xfel-1.3.5/payloads/v831/000077500000000000000000000000001512120643700147745ustar00rootroot00000000000000xfel-1.3.5/payloads/v831/jtag/000077500000000000000000000000001512120643700157215ustar00rootroot00000000000000xfel-1.3.5/payloads/v831/jtag/.gitignore000066400000000000000000000000731512120643700177110ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/v831/jtag/Makefile000066400000000000000000000056271512120643700173730ustar00rootroot00000000000000# # Top makefile # CROSS ?= arm-linux-gnueabihf- NAME := jtag # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 CFLAGS := -g -ggdb -Wall -O3 CXXFLAGS := -g -ggdb -Wall -O3 LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -march=armv7-a -mtune=cortex-a7 -mfpu=vfpv4 -mfloat-abi=hard -marm -mno-thumb-interwork -mno-unaligned-access -fno-stack-protector LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/v831/jtag/include/000077500000000000000000000000001512120643700173445ustar00rootroot00000000000000xfel-1.3.5/payloads/v831/jtag/include/byteorder.h000066400000000000000000000043611512120643700215200ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/v831/jtag/include/endian.h000066400000000000000000000007321512120643700207550ustar00rootroot00000000000000#ifndef __ARM32_ENDIAN_H__ #define __ARM32_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __ARM32_ENDIAN_H__ */ xfel-1.3.5/payloads/v831/jtag/include/io.h000066400000000000000000000016401512120643700201250ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/v831/jtag/include/stdarg.h000066400000000000000000000010541512120643700210010ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/v831/jtag/include/stddef.h000066400000000000000000000026101512120643700207650ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/v831/jtag/include/stdint.h000066400000000000000000000010161512120643700210200ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/v831/jtag/include/string.h000066400000000000000000000004241512120643700210230ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/v831/jtag/include/types.h000066400000000000000000000021051512120643700206570ustar00rootroot00000000000000#ifndef __ARM32_TYPES_H__ #define __ARM32_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed int ptrdiff_t; typedef signed int intptr_t; typedef unsigned int uintptr_t; typedef unsigned int size_t; typedef signed int ssize_t; typedef signed int off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned int irq_flags_t; typedef unsigned int virtual_addr_t; typedef unsigned int virtual_size_t; typedef unsigned int physical_addr_t; typedef unsigned int physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __ARM32_TYPES_H__ */ xfel-1.3.5/payloads/v831/jtag/include/v831/000077500000000000000000000000001512120643700200455ustar00rootroot00000000000000xfel-1.3.5/payloads/v831/jtag/include/v831/reg-ccu.h000066400000000000000000000024011512120643700215400ustar00rootroot00000000000000#ifndef __V831_REG_CCU_H__ #define __V831_REG_CCU_H__ #define V831_CCU_BASE (0x03001000) #define CCU_PLL_CPUX_CTRL (0x000) #define CCU_PLL_DDR0_CTRL (0x010) #define CCU_PLL_PERI0_CTRL (0x020) #define CCU_PLL_UNI_CTRL (0x028) #define CCU_PLL_VIDEO0_CTRL (0x040) #define CCU_PLL_AUDIO_CTRL (0x078) #define CCU_PLL_CSI_CTRL (0x0e0) #define CCU_PLL_DDR0_PAT_CTRL (0x110) #define CCU_PLL_PERI0_PAT0_CTRL (0x120) #define CCU_PLL_PERI0_PAT1_CTRL (0x124) #define CCU_PLL_UNI_PAT0_CTRL (0x128) #define CCU_PLL_UNI_PAT1_CTRL (0x12c) #define CCU_PLL_VIDEO0_PAT0_CTRL (0x140) #define CCU_PLL_VIDEO0_PAT1_CTRL (0x144) #define CCU_PLL_AUDIO_PAT0_CTRL (0x178) #define CCU_PLL_AUDIO_PAT1_CTRL (0x17c) #define CCU_PLL_CSI_PAT0_CTRL (0x1e0) #define CCU_PLL_CSI_PAT1_CTRL (0x1e4) #define CCU_PLL_CPUX_BIAS (0x300) #define CCU_PLL_DDR0_BIAS (0x310) #define CCU_PLL_PERI0_BIAS (0x320) #define CCU_PLL_UNI_BIAS (0x328) #define CCU_PLL_VIDEO0_BIAS (0x340) #define CCU_PLL_AUDIO_BIAS (0x378) #define CCU_PLL_CSI_BIAS (0x3e0) #define CCU_PLL_CPUX_TUN (0x400) #define CCU_CPUX_AXI_CFG (0x500) #define CCU_PSI_AHB1_AHB2_CFG (0x510) #define CCU_AHB3_CFG (0x51c) #define CCU_APB1_CFG (0x520) #define CCU_APB2_CFG (0x524) #endif /* __V831_REG_CCU_H__ */ xfel-1.3.5/payloads/v831/jtag/include/v831/reg-dram.h000066400000000000000000000002621512120643700217140ustar00rootroot00000000000000#ifndef __V831_REG_DRAM_H__ #define __V831_REG_DRAM_H__ #define V831_DRAM_COM_BASE (0x04002000) #define V831_DRAM_CTL_PHY_BASE (0x04003000) #endif /* __V831_REG_DRAM_H__ */ xfel-1.3.5/payloads/v831/jtag/include/xboot.h000066400000000000000000000004731512120643700206540ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/v831/jtag/link.ld000066400000000000000000000046451512120643700172100ustar00rootroot00000000000000OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) STACK_UND_SIZE = 0x010; STACK_ABT_SIZE = 0x010; STACK_IRQ_SIZE = 0x010; STACK_FIQ_SIZE = 0x010; STACK_SRV_SIZE = 0x400; MEMORY { ram : org = 0x00022000, len = 0x00001000 /* 4 KB */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text) .obj/source/sys-jtag.o (.text) *(.text*) *(.glue*) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ARM.exidx ALIGN(8) : { PROVIDE (__exidx_start = .); *(.ARM.exidx*) PROVIDE (__exidx_end = .); } > ram .ARM.extab ALIGN(8) : { PROVIDE (__extab_start = .); *(.ARM.extab*) PROVIDE (__extab_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(8) (NOLOAD) : { PROVIDE(__stack_start = .); PROVIDE(__stack_und_start = .); . += STACK_UND_SIZE; PROVIDE(__stack_und_end = .); . = ALIGN(8); PROVIDE(__stack_abt_start = .); . += STACK_ABT_SIZE; PROVIDE(__stack_abt_end = .); . = ALIGN(8); PROVIDE(__stack_irq_start = .); . += STACK_IRQ_SIZE; PROVIDE(__stack_irq_end = .); . = ALIGN(8); PROVIDE(__stack_fiq_start = .); . += STACK_FIQ_SIZE; PROVIDE(__stack_fiq_end = .); . = ALIGN(8); PROVIDE(__stack_srv_start = .); . += STACK_SRV_SIZE; PROVIDE(__stack_srv_end = .); . = ALIGN(8); PROVIDE(__stack_end = .); } > ram .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_info 0 : { *(.debug_info) } .debug_line 0 : { *(.debug_line) } .debug_pubnames 0 : { *(.debug_pubnames) } .debug_aranges 0 : { *(.debug_aranges) } } xfel-1.3.5/payloads/v831/jtag/source/000077500000000000000000000000001512120643700172215ustar00rootroot00000000000000xfel-1.3.5/payloads/v831/jtag/source/start.S000066400000000000000000000035711512120643700205100ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ .global _start _start: mov r0, #0 mcr p15, 0, r0, c8, c7, 0 mcr p15, 0, r0, c7, c5, 0 mcr p15, 0, r0, c7, c5, 6 mcr p15, 0, r0, c7, c10, 4 mcr p15, 0, r0, c7, c5, 4 b reset reset: ldr r0, =0x00037ff8 str sp, [r0, #0] str lr, [r0, #4] mrs lr, cpsr str lr, [r0, #8] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #12] mrc p15, 0, lr, c12, c0, 0 str lr, [r0, #16] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #20] bl sys_jtag_init ldr r0, =0x00037ff8 ldr sp, [r0, #0] ldr lr, [r0, #4] ldr r1, [r0, #20] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #16] mcr p15, 0, r1, c12, c0, 0 ldr r1, [r0, #12] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #8] msr cpsr, r1 bx lr xfel-1.3.5/payloads/v831/jtag/source/sys-jtag.c000066400000000000000000000035561512120643700211370ustar00rootroot00000000000000/* * sys-jtag.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include void sys_jtag_init(void) { virtual_addr_t addr; u32_t val; /* Config GPIOF0, GPIOF1, GPIOF3 and GPIOF5 to JTAG mode */ addr = 0x0300b0b4 + 0x00; val = read32(addr); val &= ~(0xf << ((0 & 0x7) << 2)); val |= ((0x3 & 0x7) << ((0 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((1 & 0x7) << 2)); val |= ((0x3 & 0x7) << ((1 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((3 & 0x7) << 2)); val |= ((0x3 & 0x7) << ((3 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((5 & 0x7) << 2)); val |= ((0x3 & 0x7) << ((5 & 0x7) << 2)); write32(addr, val); } xfel-1.3.5/payloads/v831/spi/000077500000000000000000000000001512120643700155675ustar00rootroot00000000000000xfel-1.3.5/payloads/v831/spi/.gitignore000066400000000000000000000000731512120643700175570ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/v831/spi/Makefile000066400000000000000000000056261512120643700172400ustar00rootroot00000000000000# # Top makefile # CROSS ?= arm-linux-gnueabihf- NAME := spi # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 CFLAGS := -g -ggdb -Wall -O3 CXXFLAGS := -g -ggdb -Wall -O3 LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -march=armv7-a -mtune=cortex-a7 -mfpu=vfpv4 -mfloat-abi=hard -marm -mno-thumb-interwork -mno-unaligned-access -fno-stack-protector LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/v831/spi/include/000077500000000000000000000000001512120643700172125ustar00rootroot00000000000000xfel-1.3.5/payloads/v831/spi/include/byteorder.h000066400000000000000000000043611512120643700213660ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/v831/spi/include/endian.h000066400000000000000000000007321512120643700206230ustar00rootroot00000000000000#ifndef __ARM32_ENDIAN_H__ #define __ARM32_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __ARM32_ENDIAN_H__ */ xfel-1.3.5/payloads/v831/spi/include/io.h000066400000000000000000000016401512120643700177730ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/v831/spi/include/stdarg.h000066400000000000000000000010541512120643700206470ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/v831/spi/include/stddef.h000066400000000000000000000026101512120643700206330ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/v831/spi/include/stdint.h000066400000000000000000000010161512120643700206660ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/v831/spi/include/string.h000066400000000000000000000004241512120643700206710ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/v831/spi/include/types.h000066400000000000000000000021051512120643700205250ustar00rootroot00000000000000#ifndef __ARM32_TYPES_H__ #define __ARM32_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed int ptrdiff_t; typedef signed int intptr_t; typedef unsigned int uintptr_t; typedef unsigned int size_t; typedef signed int ssize_t; typedef signed int off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned int irq_flags_t; typedef unsigned int virtual_addr_t; typedef unsigned int virtual_size_t; typedef unsigned int physical_addr_t; typedef unsigned int physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __ARM32_TYPES_H__ */ xfel-1.3.5/payloads/v831/spi/include/v831/000077500000000000000000000000001512120643700177135ustar00rootroot00000000000000xfel-1.3.5/payloads/v831/spi/include/v831/reg-ccu.h000066400000000000000000000024011512120643700214060ustar00rootroot00000000000000#ifndef __V831_REG_CCU_H__ #define __V831_REG_CCU_H__ #define V831_CCU_BASE (0x03001000) #define CCU_PLL_CPUX_CTRL (0x000) #define CCU_PLL_DDR0_CTRL (0x010) #define CCU_PLL_PERI0_CTRL (0x020) #define CCU_PLL_UNI_CTRL (0x028) #define CCU_PLL_VIDEO0_CTRL (0x040) #define CCU_PLL_AUDIO_CTRL (0x078) #define CCU_PLL_CSI_CTRL (0x0e0) #define CCU_PLL_DDR0_PAT_CTRL (0x110) #define CCU_PLL_PERI0_PAT0_CTRL (0x120) #define CCU_PLL_PERI0_PAT1_CTRL (0x124) #define CCU_PLL_UNI_PAT0_CTRL (0x128) #define CCU_PLL_UNI_PAT1_CTRL (0x12c) #define CCU_PLL_VIDEO0_PAT0_CTRL (0x140) #define CCU_PLL_VIDEO0_PAT1_CTRL (0x144) #define CCU_PLL_AUDIO_PAT0_CTRL (0x178) #define CCU_PLL_AUDIO_PAT1_CTRL (0x17c) #define CCU_PLL_CSI_PAT0_CTRL (0x1e0) #define CCU_PLL_CSI_PAT1_CTRL (0x1e4) #define CCU_PLL_CPUX_BIAS (0x300) #define CCU_PLL_DDR0_BIAS (0x310) #define CCU_PLL_PERI0_BIAS (0x320) #define CCU_PLL_UNI_BIAS (0x328) #define CCU_PLL_VIDEO0_BIAS (0x340) #define CCU_PLL_AUDIO_BIAS (0x378) #define CCU_PLL_CSI_BIAS (0x3e0) #define CCU_PLL_CPUX_TUN (0x400) #define CCU_CPUX_AXI_CFG (0x500) #define CCU_PSI_AHB1_AHB2_CFG (0x510) #define CCU_AHB3_CFG (0x51c) #define CCU_APB1_CFG (0x520) #define CCU_APB2_CFG (0x524) #endif /* __V831_REG_CCU_H__ */ xfel-1.3.5/payloads/v831/spi/include/v831/reg-dram.h000066400000000000000000000002621512120643700215620ustar00rootroot00000000000000#ifndef __V831_REG_DRAM_H__ #define __V831_REG_DRAM_H__ #define V831_DRAM_COM_BASE (0x04002000) #define V831_DRAM_CTL_PHY_BASE (0x04003000) #endif /* __V831_REG_DRAM_H__ */ xfel-1.3.5/payloads/v831/spi/include/xboot.h000066400000000000000000000004731512120643700205220ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/v831/spi/link.ld000066400000000000000000000046441512120643700170550ustar00rootroot00000000000000OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) STACK_UND_SIZE = 0x010; STACK_ABT_SIZE = 0x010; STACK_IRQ_SIZE = 0x010; STACK_FIQ_SIZE = 0x010; STACK_SRV_SIZE = 0x400; MEMORY { ram : org = 0x00022000, len = 0x00001000 /* 4 KB */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text) .obj/source/sys-spi.o (.text) *(.text*) *(.glue*) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ARM.exidx ALIGN(8) : { PROVIDE (__exidx_start = .); *(.ARM.exidx*) PROVIDE (__exidx_end = .); } > ram .ARM.extab ALIGN(8) : { PROVIDE (__extab_start = .); *(.ARM.extab*) PROVIDE (__extab_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(8) (NOLOAD) : { PROVIDE(__stack_start = .); PROVIDE(__stack_und_start = .); . += STACK_UND_SIZE; PROVIDE(__stack_und_end = .); . = ALIGN(8); PROVIDE(__stack_abt_start = .); . += STACK_ABT_SIZE; PROVIDE(__stack_abt_end = .); . = ALIGN(8); PROVIDE(__stack_irq_start = .); . += STACK_IRQ_SIZE; PROVIDE(__stack_irq_end = .); . = ALIGN(8); PROVIDE(__stack_fiq_start = .); . += STACK_FIQ_SIZE; PROVIDE(__stack_fiq_end = .); . = ALIGN(8); PROVIDE(__stack_srv_start = .); . += STACK_SRV_SIZE; PROVIDE(__stack_srv_end = .); . = ALIGN(8); PROVIDE(__stack_end = .); } > ram .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_info 0 : { *(.debug_info) } .debug_line 0 : { *(.debug_line) } .debug_pubnames 0 : { *(.debug_pubnames) } .debug_aranges 0 : { *(.debug_aranges) } } xfel-1.3.5/payloads/v831/spi/source/000077500000000000000000000000001512120643700170675ustar00rootroot00000000000000xfel-1.3.5/payloads/v831/spi/source/start.S000066400000000000000000000036131512120643700203530ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ .global _start _start: mov r0, #0 mcr p15, 0, r0, c8, c7, 0 mcr p15, 0, r0, c7, c5, 0 mcr p15, 0, r0, c7, c5, 6 mcr p15, 0, r0, c7, c10, 4 mcr p15, 0, r0, c7, c5, 4 b reset reset: ldr r0, =0x00037ff8 str sp, [r0, #0] str lr, [r0, #4] mrs lr, cpsr str lr, [r0, #8] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #12] mrc p15, 0, lr, c12, c0, 0 str lr, [r0, #16] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #20] ldr r0, =0x00023000 bl sys_spi_run ldr r0, =0x00037ff8 ldr sp, [r0, #0] ldr lr, [r0, #4] ldr r1, [r0, #20] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #16] mcr p15, 0, r1, c12, c0, 0 ldr r1, [r0, #12] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #8] msr cpsr, r1 bx lr xfel-1.3.5/payloads/v831/spi/source/sys-spi.c000066400000000000000000000143171512120643700206500ustar00rootroot00000000000000/* * sys-spi.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include enum { SPI_GCR = 0x04, SPI_TCR = 0x08, SPI_IER = 0x10, SPI_ISR = 0x14, SPI_FCR = 0x18, SPI_FSR = 0x1c, SPI_WCR = 0x20, SPI_CCR = 0x24, SPI_MBC = 0x30, SPI_MTC = 0x34, SPI_BCC = 0x38, SPI_TXD = 0x200, SPI_RXD = 0x300, }; static void sys_spi_init(void) { virtual_addr_t addr; u32_t val; /* Config GPIOC0, GPIOC1, GPIOC2 and GPIOC3 */ addr = 0x0300b048 + 0x00; val = read32(addr); val &= ~(0xf << ((0 & 0x7) << 2)); val |= ((0x4 & 0x7) << ((0 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((1 & 0x7) << 2)); val |= ((0x4 & 0x7) << ((1 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((2 & 0x7) << 2)); val |= ((0x4 & 0x7) << ((2 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((3 & 0x7) << 2)); val |= ((0x4 & 0x7) << ((3 & 0x7) << 2)); write32(addr, val); /* Deassert spi0 reset */ addr = 0x0300196c; val = read32(addr); val |= (1 << 16); write32(addr, val); /* Open the spi0 gate */ addr = 0x03001940; val = read32(addr); val |= (1 << 31); write32(addr, val); /* Open the spi0 bus gate */ addr = 0x0300196c; val = read32(addr); val |= (1 << 0); write32(addr, val); /* Select pll-periph0 for spi0 clk */ addr = 0x03001940; val = read32(addr); val &= ~(0x3 << 24); val |= 0x1 << 24; write32(addr, val); /* Set clock pre divide ratio, divided by 1 */ addr = 0x03001940; val = read32(addr); val &= ~(0x3 << 8); val |= 0x0 << 8; write32(addr, val); /* Set clock divide ratio, divided by 6 */ addr = 0x03001940; val = read32(addr); val &= ~(0xf << 0); val |= (6 - 1) << 0; write32(addr, val); /* Set spi clock rate control register, divided by 2 */ addr = 0x05010000; write32(addr + SPI_CCR, 0x1000); /* Enable spi0 and do a soft reset */ addr = 0x05010000; val = read32(addr + SPI_GCR); val |= (1 << 31) | (1 << 7) | (1 << 1) | (1 << 0); write32(addr + SPI_GCR, val); while(read32(addr + SPI_GCR) & (1 << 31)); val = read32(addr + SPI_TCR); val &= ~(0x3 << 0); val |= (1 << 6) | (1 << 2); write32(addr + SPI_TCR, val); val = read32(addr + SPI_FCR); val |= (1 << 31) | (1 << 15); write32(addr + SPI_FCR, val); } static void sys_spi_select(void) { virtual_addr_t addr = 0x05010000; u32_t val; val = read32(addr + SPI_TCR); val &= ~((0x3 << 4) | (0x1 << 7)); val |= ((0 & 0x3) << 4) | (0x0 << 7); write32(addr + SPI_TCR, val); } static void sys_spi_deselect(void) { virtual_addr_t addr = 0x05010000; u32_t val; val = read32(addr + SPI_TCR); val &= ~((0x3 << 4) | (0x1 << 7)); val |= ((0 & 0x3) << 4) | (0x1 << 7); write32(addr + SPI_TCR, val); } static inline void sys_spi_write_txbuf(u8_t * buf, int len) { virtual_addr_t addr = 0x05010000; int i; write32(addr + SPI_MTC, len & 0xffffff); write32(addr + SPI_BCC, len & 0xffffff); if(buf) { for(i = 0; i < len; i++) write8(addr + SPI_TXD, *buf++); } else { for(i = 0; i < len; i++) write8(addr + SPI_TXD, 0xff); } } static void sys_spi_transfer(void * txbuf, void * rxbuf, u32_t len) { virtual_addr_t addr = 0x05010000; u8_t * tx = txbuf; u8_t * rx = rxbuf; u8_t val; int n, i; while(len > 0) { n = (len <= 64) ? len : 64; write32(addr + SPI_MBC, n); sys_spi_write_txbuf(tx, n); write32(addr + SPI_TCR, read32(addr + SPI_TCR) | (1 << 31)); while(read32(addr + SPI_TCR) & (1 << 31)); while((read32(addr + SPI_FSR) & 0xff) < n); for(i = 0; i < n; i++) { val = read8(addr + SPI_RXD); if(rx) *rx++ = val; } if(tx) tx += n; len -= n; } } enum { SPI_CMD_END = 0x00, SPI_CMD_INIT = 0x01, SPI_CMD_SELECT = 0x02, SPI_CMD_DESELECT = 0x03, SPI_CMD_FAST = 0x04, SPI_CMD_TXBUF = 0x05, SPI_CMD_RXBUF = 0x06, SPI_CMD_SPINOR_WAIT = 0x07, SPI_CMD_SPINAND_WAIT = 0x08, }; void sys_spi_run(void * cbuf) { uint8_t tx[8], rx[8]; u8_t c, * p = cbuf; u32_t addr, len; while(1) { c = *p++; if(c == SPI_CMD_INIT) { sys_spi_init(); } else if(c == SPI_CMD_SELECT) { sys_spi_select(); } else if(c == SPI_CMD_DESELECT) { sys_spi_deselect(); } else if(c == SPI_CMD_FAST) { len = p[0]; sys_spi_transfer((void *)&p[1], NULL, len); p += (len + 1); } else if(c == SPI_CMD_TXBUF) { addr = (p[0] << 0) | (p[1] << 8) | (p[2] << 16) | (p[3] << 24); len = (p[4] << 0) | (p[5] << 8) | (p[6] << 16) | (p[7] << 24); sys_spi_transfer((void *)addr, NULL, len); p += 8; } else if(c == SPI_CMD_RXBUF) { addr = (p[0] << 0) | (p[1] << 8) | (p[2] << 16) | (p[3] << 24); len = (p[4] << 0) | (p[5] << 8) | (p[6] << 16) | (p[7] << 24); sys_spi_transfer(NULL, (void *)addr, len); p += 8; } else if(c == SPI_CMD_SPINOR_WAIT) { tx[0] = 0x05; do { sys_spi_transfer((void *)&tx[0], NULL, 1); sys_spi_transfer(NULL, (void *)&rx[0], 1); } while((rx[0] & 0x1) == 0x1); } else if(c == SPI_CMD_SPINAND_WAIT) { tx[0] = 0x0f; tx[1] = 0xc0; do { sys_spi_transfer((void *)&tx[0], NULL, 2); sys_spi_transfer(NULL, (void *)&rx[0], 1); } while((rx[0] & 0x1) == 0x1); } else { return; } } } xfel-1.3.5/payloads/v851_v853/000077500000000000000000000000001512120643700155635ustar00rootroot00000000000000xfel-1.3.5/payloads/v851_v853/jtag/000077500000000000000000000000001512120643700165105ustar00rootroot00000000000000xfel-1.3.5/payloads/v851_v853/jtag/.gitignore000066400000000000000000000000731512120643700205000ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/v851_v853/jtag/Makefile000066400000000000000000000056271512120643700201620ustar00rootroot00000000000000# # Top makefile # CROSS ?= arm-linux-gnueabihf- NAME := jtag # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 CFLAGS := -g -ggdb -Wall -O3 CXXFLAGS := -g -ggdb -Wall -O3 LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -march=armv7-a -mtune=cortex-a7 -mfpu=vfpv4 -mfloat-abi=hard -marm -mno-thumb-interwork -mno-unaligned-access -fno-stack-protector LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/v851_v853/jtag/include/000077500000000000000000000000001512120643700201335ustar00rootroot00000000000000xfel-1.3.5/payloads/v851_v853/jtag/include/byteorder.h000066400000000000000000000043611512120643700223070ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/v851_v853/jtag/include/endian.h000066400000000000000000000007321512120643700215440ustar00rootroot00000000000000#ifndef __ARM32_ENDIAN_H__ #define __ARM32_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __ARM32_ENDIAN_H__ */ xfel-1.3.5/payloads/v851_v853/jtag/include/io.h000066400000000000000000000016401512120643700207140ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/v851_v853/jtag/include/stdarg.h000066400000000000000000000010541512120643700215700ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/v851_v853/jtag/include/stddef.h000066400000000000000000000026101512120643700215540ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/v851_v853/jtag/include/stdint.h000066400000000000000000000010161512120643700216070ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/v851_v853/jtag/include/string.h000066400000000000000000000004241512120643700216120ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/v851_v853/jtag/include/types.h000066400000000000000000000021051512120643700214460ustar00rootroot00000000000000#ifndef __ARM32_TYPES_H__ #define __ARM32_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed int ptrdiff_t; typedef signed int intptr_t; typedef unsigned int uintptr_t; typedef unsigned int size_t; typedef signed int ssize_t; typedef signed int off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned int irq_flags_t; typedef unsigned int virtual_addr_t; typedef unsigned int virtual_size_t; typedef unsigned int physical_addr_t; typedef unsigned int physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __ARM32_TYPES_H__ */ xfel-1.3.5/payloads/v851_v853/jtag/include/xboot.h000066400000000000000000000004731512120643700214430ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/v851_v853/jtag/link.ld000066400000000000000000000046451512120643700177770ustar00rootroot00000000000000OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) STACK_UND_SIZE = 0x010; STACK_ABT_SIZE = 0x010; STACK_IRQ_SIZE = 0x010; STACK_FIQ_SIZE = 0x010; STACK_SRV_SIZE = 0x100; MEMORY { ram : org = 0x00028000, len = 0x00000800 /* 2 KB */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text) .obj/source/sys-jtag.o (.text) *(.text*) *(.glue*) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ARM.exidx ALIGN(8) : { PROVIDE (__exidx_start = .); *(.ARM.exidx*) PROVIDE (__exidx_end = .); } > ram .ARM.extab ALIGN(8) : { PROVIDE (__extab_start = .); *(.ARM.extab*) PROVIDE (__extab_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(8) (NOLOAD) : { PROVIDE(__stack_start = .); PROVIDE(__stack_und_start = .); . += STACK_UND_SIZE; PROVIDE(__stack_und_end = .); . = ALIGN(8); PROVIDE(__stack_abt_start = .); . += STACK_ABT_SIZE; PROVIDE(__stack_abt_end = .); . = ALIGN(8); PROVIDE(__stack_irq_start = .); . += STACK_IRQ_SIZE; PROVIDE(__stack_irq_end = .); . = ALIGN(8); PROVIDE(__stack_fiq_start = .); . += STACK_FIQ_SIZE; PROVIDE(__stack_fiq_end = .); . = ALIGN(8); PROVIDE(__stack_srv_start = .); . += STACK_SRV_SIZE; PROVIDE(__stack_srv_end = .); . = ALIGN(8); PROVIDE(__stack_end = .); } > ram .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_info 0 : { *(.debug_info) } .debug_line 0 : { *(.debug_line) } .debug_pubnames 0 : { *(.debug_pubnames) } .debug_aranges 0 : { *(.debug_aranges) } } xfel-1.3.5/payloads/v851_v853/jtag/source/000077500000000000000000000000001512120643700200105ustar00rootroot00000000000000xfel-1.3.5/payloads/v851_v853/jtag/source/start.S000066400000000000000000000035701512120643700212760ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ .global _start _start: mov r0, #0 mcr p15, 0, r0, c8, c7, 0 mcr p15, 0, r0, c7, c5, 0 mcr p15, 0, r0, c7, c5, 6 mcr p15, 0, r0, c7, c10, 4 mcr p15, 0, r0, c7, c5, 4 b reset reset: ldr r0, =0x00040fe0 str sp, [r0, #0] str lr, [r0, #4] mrs lr, cpsr str lr, [r0, #8] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #12] mrc p15, 0, lr, c12, c0, 0 str lr, [r0, #16] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #20] bl sys_jtag_init ldr r0, =0x00040fe0 ldr sp, [r0, #0] ldr lr, [r0, #4] ldr r1, [r0, #20] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #16] mcr p15, 0, r1, c12, c0, 0 ldr r1, [r0, #12] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #8] msr cpsr, r1 bx lr xfel-1.3.5/payloads/v851_v853/jtag/source/sys-jtag.c000066400000000000000000000035561512120643700217260ustar00rootroot00000000000000/* * sys-jtag.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include void sys_jtag_init(void) { virtual_addr_t addr; u32_t val; /* Config GPIOF0, GPIOF1, GPIOF3 and GPIOF5 to JTAG mode */ addr = 0x020000f0 + 0x00; val = read32(addr); val &= ~(0xf << ((0 & 0x7) << 2)); val |= ((0x3 & 0xf) << ((0 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((1 & 0x7) << 2)); val |= ((0x3 & 0xf) << ((1 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((3 & 0x7) << 2)); val |= ((0x3 & 0xf) << ((3 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((5 & 0x7) << 2)); val |= ((0x3 & 0xf) << ((5 & 0x7) << 2)); write32(addr, val); } xfel-1.3.5/payloads/v851_v853/spi/000077500000000000000000000000001512120643700163565ustar00rootroot00000000000000xfel-1.3.5/payloads/v851_v853/spi/.gitignore000066400000000000000000000000731512120643700203460ustar00rootroot00000000000000# # Normal rules # *~ # # Generated files # /.obj /output xfel-1.3.5/payloads/v851_v853/spi/Makefile000066400000000000000000000056261512120643700200270ustar00rootroot00000000000000# # Top makefile # CROSS ?= arm-linux-gnueabihf- NAME := spi # # System environment variable. # ifeq ($(OS), Windows_NT) HOSTOS := windows else ifneq (,$(findstring Linux, $(shell uname -a))) HOSTOS := linux endif endif # # Load default variables. # ASFLAGS := -g -ggdb -Wall -O3 CFLAGS := -g -ggdb -Wall -O3 CXXFLAGS := -g -ggdb -Wall -O3 LDFLAGS := -T link.ld -nostdlib ARFLAGS := -rcs OCFLAGS := -v -O binary ODFLAGS := MCFLAGS := -march=armv7-a -mtune=cortex-a7 -mfpu=vfpv4 -mfloat-abi=hard -marm -mno-thumb-interwork -mno-unaligned-access -fno-stack-protector LIBDIRS := LIBS := INCDIRS := SRCDIRS := # # Add external library # INCDIRS += include \ include/external SRCDIRS += source \ source/external # # You shouldn't need to change anything below this point. # AS := $(CROSS)gcc -x assembler-with-cpp CC := $(CROSS)gcc CXX := $(CROSS)g++ LD := $(CROSS)ld AR := $(CROSS)ar OC := $(CROSS)objcopy OD := $(CROSS)objdump MKDIR := mkdir -p CP := cp -af RM := rm -fr CD := cd FIND := find # # X variables # X_ASFLAGS := $(MCFLAGS) $(ASFLAGS) X_CFLAGS := $(MCFLAGS) $(CFLAGS) X_CXXFLAGS := $(MCFLAGS) $(CXXFLAGS) X_LDFLAGS := $(LDFLAGS) X_OCFLAGS := $(OCFLAGS) X_LIBDIRS := $(LIBDIRS) X_LIBS := $(LIBS) -lgcc X_OUT := output X_NAME := $(patsubst %, $(X_OUT)/%, $(NAME)) X_INCDIRS := $(patsubst %, -I %, $(INCDIRS)) X_SRCDIRS := $(patsubst %, %, $(SRCDIRS)) X_OBJDIRS := $(patsubst %, .obj/%, $(X_SRCDIRS)) X_SFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.S)) X_CFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.c)) X_CPPFILES := $(foreach dir, $(X_SRCDIRS), $(wildcard $(dir)/*.cpp)) X_SDEPS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o.d)) X_CDEPS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o.d)) X_CPPDEPS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o.d)) X_DEPS := $(X_SDEPS) $(X_CDEPS) $(X_CPPDEPS) X_SOBJS := $(patsubst %, .obj/%, $(X_SFILES:.S=.o)) X_COBJS := $(patsubst %, .obj/%, $(X_CFILES:.c=.o)) X_CPPOBJS := $(patsubst %, .obj/%, $(X_CPPFILES:.cpp=.o)) X_OBJS := $(X_SOBJS) $(X_COBJS) $(X_CPPOBJS) VPATH := $(X_OBJDIRS) .PHONY: all clean all : $(X_NAME) $(X_NAME) : $(X_OBJS) @echo [LD] Linking $@.elf @$(CC) $(X_LDFLAGS) $(X_LIBDIRS) -Wl,--cref,-Map=$@.map $^ -o $@.elf $(X_LIBS) @echo [OC] Objcopying $@.bin @$(OC) $(X_OCFLAGS) $@.elf $@.bin $(X_SOBJS) : .obj/%.o : %.S @echo [AS] $< @$(AS) $(X_ASFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_COBJS) : .obj/%.o : %.c @echo [CC] $< @$(CC) $(X_CFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ $(X_CPPOBJS) : .obj/%.o : %.cpp @echo [CXX] $< @$(CXX) $(X_CXXFLAGS) -MD -MP -MF $@.d $(X_INCDIRS) -c $< -o $@ clean: @$(RM) .obj $(X_OUT) # # Include the dependency files, should be place the last of makefile # sinclude $(shell $(MKDIR) $(X_OBJDIRS) $(X_OUT)) $(X_DEPS) xfel-1.3.5/payloads/v851_v853/spi/include/000077500000000000000000000000001512120643700200015ustar00rootroot00000000000000xfel-1.3.5/payloads/v851_v853/spi/include/byteorder.h000066400000000000000000000043611512120643700221550ustar00rootroot00000000000000#ifndef __BYTEORDER_H__ #define __BYTEORDER_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u16_t __swab16(u16_t x) { return ( (x<<8) | (x>>8) ); } static inline u32_t __swab32(u32_t x) { return ( (x<<24) | (x>>24) | \ ((x & (u32_t)0x0000ff00UL)<<8) | \ ((x & (u32_t)0x00ff0000UL)>>8) ); } static inline u64_t __swab64(u64_t x) { return ( (x<<56) | (x>>56) | \ ((x & (u64_t)0x000000000000ff00ULL)<<40) | \ ((x & (u64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (u64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (u64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (u64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (u64_t)0x00ff000000000000ULL)>>40) ); } /* * swap bytes bizarrely. * swahw32 - swap 16-bit half-words in a 32-bit word */ static inline u32_t __swahw32(u32_t x) { return ( ((x & (u32_t)0x0000ffffUL)<<16) | ((x & (u32_t)0xffff0000UL)>>16) ); } /* * swap bytes bizarrely. * swahb32 - swap 8-bit halves of each 16-bit half-word in a 32-bit word */ static inline u32_t __swahb32(u32_t x) { return ( ((x & (u32_t)0x00ff00ffUL)<<8) | ((x & (u32_t)0xff00ff00UL)>>8) ); } #if (BYTE_ORDER == BIG_ENDIAN) #define cpu_to_le64(x) (__swab64((u64_t)(x))) #define le64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_le32(x) (__swab32((u32_t)(x))) #define le32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_le16(x) (__swab16((u16_t)(x))) #define le16_to_cpu(x) (__swab16((u16_t)(x))) #define cpu_to_be64(x) ((u64_t)(x)) #define be64_to_cpu(x) ((u64_t)(x)) #define cpu_to_be32(x) ((u32_t)(x)) #define be32_to_cpu(x) ((u32_t)(x)) #define cpu_to_be16(x) ((u16_t)(x)) #define be16_to_cpu(x) ((u16_t)(x)) #else #define cpu_to_le64(x) ((u64_t)(x)) #define le64_to_cpu(x) ((u64_t)(x)) #define cpu_to_le32(x) ((u32_t)(x)) #define le32_to_cpu(x) ((u32_t)(x)) #define cpu_to_le16(x) ((u16_t)(x)) #define le16_to_cpu(x) ((u16_t)(x)) #define cpu_to_be64(x) (__swab64((u64_t)(x))) #define be64_to_cpu(x) (__swab64((u64_t)(x))) #define cpu_to_be32(x) (__swab32((u32_t)(x))) #define be32_to_cpu(x) (__swab32((u32_t)(x))) #define cpu_to_be16(x) (__swab16((u16_t)(x))) #define be16_to_cpu(x) (__swab16((u16_t)(x))) #endif #ifdef __cplusplus } #endif #endif /* __BYTEORDER_H__ */ xfel-1.3.5/payloads/v851_v853/spi/include/endian.h000066400000000000000000000007321512120643700214120ustar00rootroot00000000000000#ifndef __ARM32_ENDIAN_H__ #define __ARM32_ENDIAN_H__ #ifdef __cplusplus extern "C" { #endif #define LITTLE_ENDIAN (0x1234) #define BIG_ENDIAN (0x4321) #if ( !defined(__LITTLE_ENDIAN) && !defined(__BIG_ENDIAN) ) #define __LITTLE_ENDIAN #endif #if defined(__LITTLE_ENDIAN) #define BYTE_ORDER LITTLE_ENDIAN #elif defined(__BIG_ENDIAN) #define BYTE_ORDER BIG_ENDIAN #else #error "Unknown byte order!" #endif #ifdef __cplusplus } #endif #endif /* __ARM32_ENDIAN_H__ */ xfel-1.3.5/payloads/v851_v853/spi/include/io.h000066400000000000000000000016401512120643700205620ustar00rootroot00000000000000#ifndef __IO_H__ #define __IO_H__ #ifdef __cplusplus extern "C" { #endif #include static inline u8_t read8(virtual_addr_t addr) { return( *((volatile u8_t *)(addr)) ); } static inline u16_t read16(virtual_addr_t addr) { return( *((volatile u16_t *)(addr)) ); } static inline u32_t read32(virtual_addr_t addr) { return( *((volatile u32_t *)(addr)) ); } static inline u64_t read64(virtual_addr_t addr) { return( *((volatile u64_t *)(addr)) ); } static inline void write8(virtual_addr_t addr, u8_t value) { *((volatile u8_t *)(addr)) = value; } static inline void write16(virtual_addr_t addr, u16_t value) { *((volatile u16_t *)(addr)) = value; } static inline void write32(virtual_addr_t addr, u32_t value) { *((volatile u32_t *)(addr)) = value; } static inline void write64(virtual_addr_t addr, u64_t value) { *((volatile u64_t *)(addr)) = value; } #ifdef __cplusplus } #endif #endif /* __IO_H__ */ xfel-1.3.5/payloads/v851_v853/spi/include/stdarg.h000066400000000000000000000010541512120643700214360ustar00rootroot00000000000000#ifndef __STDARG_H__ #define __STDARG_H__ #ifdef __cplusplus extern "C" { #endif typedef __builtin_va_list va_list; /* * prepare to access variable args */ #define va_start(v, l) __builtin_va_start(v, l) /* * the caller will get the value of current argument */ #define va_arg(v, l) __builtin_va_arg(v, l) /* * end for variable args */ #define va_end(v) __builtin_va_end(v) /* * copy variable args */ #define va_copy(d, s) __builtin_va_copy(d, s) #ifdef __cplusplus } #endif #endif /* __STDARG_H__ */ xfel-1.3.5/payloads/v851_v853/spi/include/stddef.h000066400000000000000000000026101512120643700214220ustar00rootroot00000000000000#ifndef __STDDEF_H__ #define __STDDEF_H__ #ifdef __cplusplus extern "C" { #endif #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define likely(expr) (!!(expr)) #define unlikely(expr) (!!(expr)) #endif #define min(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define max(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define clamp(v, a, b) min(max(a, v), b) #define ifloor(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define iround(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define iceil(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define idiv255(x) ((((int)(x) + 1) * 257) >> 16) #define X(...) ("" #__VA_ARGS__ "") enum { FALSE = 0, TRUE = 1, }; #ifdef __cplusplus } #endif #endif /* __STDDEF_H__ */ xfel-1.3.5/payloads/v851_v853/spi/include/stdint.h000066400000000000000000000010161512120643700214550ustar00rootroot00000000000000#ifndef __STDINT_H__ #define __STDINT_H__ #ifdef __cplusplus extern "C" { #endif #include typedef s8_t int8_t; typedef u8_t uint8_t; typedef s16_t int16_t; typedef u16_t uint16_t; typedef s32_t int32_t; typedef u32_t uint32_t; typedef s64_t int64_t; typedef u64_t uint64_t; #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffff) #define UINT64_MAX (0xffffffffffffffffULL) #ifdef __cplusplus } #endif #endif /* __STDINT_H__ */ xfel-1.3.5/payloads/v851_v853/spi/include/string.h000066400000000000000000000004241512120643700214600ustar00rootroot00000000000000#ifndef __STRING_H__ #define __STRING_H__ #ifdef __cplusplus extern "C" { #endif #include void * memset(void * s, int c, size_t n); void * memcpy(void * dest, const void * src, size_t len); #ifdef __cplusplus } #endif #endif /* __STRING_H__ */ xfel-1.3.5/payloads/v851_v853/spi/include/types.h000066400000000000000000000021051512120643700213140ustar00rootroot00000000000000#ifndef __ARM32_TYPES_H__ #define __ARM32_TYPES_H__ #ifdef __cplusplus extern "C" { #endif typedef signed char s8_t; typedef unsigned char u8_t; typedef signed short s16_t; typedef unsigned short u16_t; typedef signed int s32_t; typedef unsigned int u32_t; typedef signed long long s64_t; typedef unsigned long long u64_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; typedef signed int ptrdiff_t; typedef signed int intptr_t; typedef unsigned int uintptr_t; typedef unsigned int size_t; typedef signed int ssize_t; typedef signed int off_t; typedef signed long long loff_t; typedef signed int bool_t; typedef unsigned int irq_flags_t; typedef unsigned int virtual_addr_t; typedef unsigned int virtual_size_t; typedef unsigned int physical_addr_t; typedef unsigned int physical_size_t; typedef struct { volatile int counter; } atomic_t; typedef struct { volatile int lock; } spinlock_t; #ifdef __cplusplus } #endif #endif /* __ARM32_TYPES_H__ */ xfel-1.3.5/payloads/v851_v853/spi/include/xboot.h000066400000000000000000000004731512120643700213110ustar00rootroot00000000000000#ifndef __XBOOT_H__ #define __XBOOT_H__ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #ifdef __cplusplus } #endif #endif /* __XBOOT_H__ */ xfel-1.3.5/payloads/v851_v853/spi/link.ld000066400000000000000000000046441512120643700176440ustar00rootroot00000000000000OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) STACK_UND_SIZE = 0x010; STACK_ABT_SIZE = 0x010; STACK_IRQ_SIZE = 0x010; STACK_FIQ_SIZE = 0x010; STACK_SRV_SIZE = 0x100; MEMORY { ram : org = 0x00028000, len = 0x00001000 /* 4 KB */ } SECTIONS { .text : { PROVIDE(__image_start = .); PROVIDE(__text_start = .); .obj/source/start.o (.text) .obj/source/sys-spi.o (.text) *(.text*) *(.glue*) *(.note.gnu.build-id) PROVIDE(__text_end = .); } > ram .ARM.exidx ALIGN(8) : { PROVIDE (__exidx_start = .); *(.ARM.exidx*) PROVIDE (__exidx_end = .); } > ram .ARM.extab ALIGN(8) : { PROVIDE (__extab_start = .); *(.ARM.extab*) PROVIDE (__extab_end = .); } > ram .ksymtab ALIGN(16) : { PROVIDE(__ksymtab_start = .); KEEP(*(.ksymtab.text)) PROVIDE(__ksymtab_end = .); } > ram .romdisk ALIGN(8) : { PROVIDE(__romdisk_start = .); KEEP(*(.romdisk)) PROVIDE(__romdisk_end = .); } > ram .rodata ALIGN(8) : { PROVIDE(__rodata_start = .); *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) PROVIDE(__rodata_end = .); } > ram .data ALIGN(8) : { PROVIDE(__data_start = .); *(.data*) . = ALIGN(8); PROVIDE(__data_end = .); PROVIDE(__image_end = .); } > ram .bss ALIGN(8) (NOLOAD) : { PROVIDE(__bss_start = .); *(.bss*) *(.sbss*) *(COMMON) . = ALIGN(8); PROVIDE(__bss_end = .); } > ram .stack ALIGN(8) (NOLOAD) : { PROVIDE(__stack_start = .); PROVIDE(__stack_und_start = .); . += STACK_UND_SIZE; PROVIDE(__stack_und_end = .); . = ALIGN(8); PROVIDE(__stack_abt_start = .); . += STACK_ABT_SIZE; PROVIDE(__stack_abt_end = .); . = ALIGN(8); PROVIDE(__stack_irq_start = .); . += STACK_IRQ_SIZE; PROVIDE(__stack_irq_end = .); . = ALIGN(8); PROVIDE(__stack_fiq_start = .); . += STACK_FIQ_SIZE; PROVIDE(__stack_fiq_end = .); . = ALIGN(8); PROVIDE(__stack_srv_start = .); . += STACK_SRV_SIZE; PROVIDE(__stack_srv_end = .); . = ALIGN(8); PROVIDE(__stack_end = .); } > ram .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_info 0 : { *(.debug_info) } .debug_line 0 : { *(.debug_line) } .debug_pubnames 0 : { *(.debug_pubnames) } .debug_aranges 0 : { *(.debug_aranges) } } xfel-1.3.5/payloads/v851_v853/spi/source/000077500000000000000000000000001512120643700176565ustar00rootroot00000000000000xfel-1.3.5/payloads/v851_v853/spi/source/start.S000066400000000000000000000036131512120643700211420ustar00rootroot00000000000000/* * start.S * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ .global _start _start: mov r0, #0 mcr p15, 0, r0, c8, c7, 0 mcr p15, 0, r0, c7, c5, 0 mcr p15, 0, r0, c7, c5, 6 mcr p15, 0, r0, c7, c10, 4 mcr p15, 0, r0, c7, c5, 4 b reset reset: ldr r0, =0x00040fe0 str sp, [r0, #0] str lr, [r0, #4] mrs lr, cpsr str lr, [r0, #8] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #12] mrc p15, 0, lr, c12, c0, 0 str lr, [r0, #16] mrc p15, 0, lr, c1, c0, 0 str lr, [r0, #20] ldr r0, =0x00029000 bl sys_spi_run ldr r0, =0x00040fe0 ldr sp, [r0, #0] ldr lr, [r0, #4] ldr r1, [r0, #20] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #16] mcr p15, 0, r1, c12, c0, 0 ldr r1, [r0, #12] mcr p15, 0, r1, c1, c0, 0 ldr r1, [r0, #8] msr cpsr, r1 bx lr xfel-1.3.5/payloads/v851_v853/spi/source/sys-spi.c000066400000000000000000000147651512120643700214460ustar00rootroot00000000000000/* * sys-spi.c * * Copyright(c) 2007-2021 Jianjun Jiang <8192542@qq.com> * Official site: http://xboot.org * Mobile phone: +86-18665388956 * QQ: 8192542 * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #include enum { SPI_GCR = 0x04, SPI_TCR = 0x08, SPI_IER = 0x10, SPI_ISR = 0x14, SPI_FCR = 0x18, SPI_FSR = 0x1c, SPI_WCR = 0x20, SPI_CCR = 0x24, SPI_MBC = 0x30, SPI_MTC = 0x34, SPI_BCC = 0x38, SPI_TXD = 0x200, SPI_RXD = 0x300, }; static void sys_spi_init(void) { virtual_addr_t addr; u32_t val; /* Config GPIOC0, GPIOC1, GPIOC2, GPIOC3, GPIOC4 and GPIOC5 */ addr = 0x02000060 + 0x00; val = read32(addr); val &= ~(0xf << ((0 & 0x7) << 2)); val |= ((0x4 & 0xf) << ((0 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((1 & 0x7) << 2)); val |= ((0x4 & 0xf) << ((1 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((2 & 0x7) << 2)); val |= ((0x4 & 0xf) << ((2 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((3 & 0x7) << 2)); val |= ((0x4 & 0xf) << ((3 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((4 & 0x7) << 2)); val |= ((0x4 & 0xf) << ((4 & 0x7) << 2)); write32(addr, val); val = read32(addr); val &= ~(0xf << ((5 & 0x7) << 2)); val |= ((0x4 & 0xf) << ((5 & 0x7) << 2)); write32(addr, val); /* Deassert spi0 reset */ addr = 0x0200196c; val = read32(addr); val |= (1 << 16); write32(addr, val); /* Open the spi0 gate */ addr = 0x02001940; val = read32(addr); val |= (1 << 31); write32(addr, val); /* Open the spi0 bus gate */ addr = 0x0200196c; val = read32(addr); val |= (1 << 0); write32(addr, val); /* Select pll-periph0 for spi0 clk */ addr = 0x02001940; val = read32(addr); val &= ~(0x3 << 24); val |= 0x1 << 24; write32(addr, val); /* Set clock pre divide ratio, divided by 1 */ addr = 0x02001940; val = read32(addr); val &= ~(0x3 << 8); val |= 0x0 << 8; write32(addr, val); /* Set clock divide ratio, divided by 6 */ addr = 0x02001940; val = read32(addr); val &= ~(0xf << 0); val |= (6 - 1) << 0; write32(addr, val); /* Set spi clock rate control register, divided by 2 */ addr = 0x04025000; write32(addr + SPI_CCR, 0x1000); /* Enable spi0 and do a soft reset */ addr = 0x04025000; val = read32(addr + SPI_GCR); val |= (1 << 31) | (1 << 7) | (1 << 1) | (1 << 0); write32(addr + SPI_GCR, val); while(read32(addr + SPI_GCR) & (1 << 31)); val = read32(addr + SPI_TCR); val &= ~(0x3 << 0); val |= (1 << 6) | (1 << 2); write32(addr + SPI_TCR, val); val = read32(addr + SPI_FCR); val |= (1 << 31) | (1 << 15); write32(addr + SPI_FCR, val); } static void sys_spi_select(void) { virtual_addr_t addr = 0x04025000; u32_t val; val = read32(addr + SPI_TCR); val &= ~((0x3 << 4) | (0x1 << 7)); val |= ((0 & 0x3) << 4) | (0x0 << 7); write32(addr + SPI_TCR, val); } static void sys_spi_deselect(void) { virtual_addr_t addr = 0x04025000; u32_t val; val = read32(addr + SPI_TCR); val &= ~((0x3 << 4) | (0x1 << 7)); val |= ((0 & 0x3) << 4) | (0x1 << 7); write32(addr + SPI_TCR, val); } static inline void sys_spi_write_txbuf(u8_t * buf, int len) { virtual_addr_t addr = 0x04025000; int i; write32(addr + SPI_MTC, len & 0xffffff); write32(addr + SPI_BCC, len & 0xffffff); if(buf) { for(i = 0; i < len; i++) write8(addr + SPI_TXD, *buf++); } else { for(i = 0; i < len; i++) write8(addr + SPI_TXD, 0xff); } } static void sys_spi_transfer(void * txbuf, void * rxbuf, u32_t len) { virtual_addr_t addr = 0x04025000; u8_t * tx = txbuf; u8_t * rx = rxbuf; u8_t val; int n, i; while(len > 0) { n = (len <= 64) ? len : 64; write32(addr + SPI_MBC, n); sys_spi_write_txbuf(tx, n); write32(addr + SPI_TCR, read32(addr + SPI_TCR) | (1 << 31)); while(read32(addr + SPI_TCR) & (1 << 31)); while((read32(addr + SPI_FSR) & 0xff) < n); for(i = 0; i < n; i++) { val = read8(addr + SPI_RXD); if(rx) *rx++ = val; } if(tx) tx += n; len -= n; } } enum { SPI_CMD_END = 0x00, SPI_CMD_INIT = 0x01, SPI_CMD_SELECT = 0x02, SPI_CMD_DESELECT = 0x03, SPI_CMD_FAST = 0x04, SPI_CMD_TXBUF = 0x05, SPI_CMD_RXBUF = 0x06, SPI_CMD_SPINOR_WAIT = 0x07, SPI_CMD_SPINAND_WAIT = 0x08, }; void sys_spi_run(void * cbuf) { uint8_t tx[8], rx[8]; u8_t c, * p = cbuf; u32_t addr, len; while(1) { c = *p++; if(c == SPI_CMD_INIT) { sys_spi_init(); } else if(c == SPI_CMD_SELECT) { sys_spi_select(); } else if(c == SPI_CMD_DESELECT) { sys_spi_deselect(); } else if(c == SPI_CMD_FAST) { len = p[0]; sys_spi_transfer((void *)&p[1], NULL, len); p += (len + 1); } else if(c == SPI_CMD_TXBUF) { addr = (p[0] << 0) | (p[1] << 8) | (p[2] << 16) | (p[3] << 24); len = (p[4] << 0) | (p[5] << 8) | (p[6] << 16) | (p[7] << 24); sys_spi_transfer((void *)((unsigned long)addr), NULL, len); p += 8; } else if(c == SPI_CMD_RXBUF) { addr = (p[0] << 0) | (p[1] << 8) | (p[2] << 16) | (p[3] << 24); len = (p[4] << 0) | (p[5] << 8) | (p[6] << 16) | (p[7] << 24); sys_spi_transfer(NULL, (void *)((unsigned long)addr), len); p += 8; } else if(c == SPI_CMD_SPINOR_WAIT) { tx[0] = 0x05; do { sys_spi_transfer((void *)&tx[0], NULL, 1); sys_spi_transfer(NULL, (void *)&rx[0], 1); } while((rx[0] & 0x1) == 0x1); } else if(c == SPI_CMD_SPINAND_WAIT) { tx[0] = 0x0f; tx[1] = 0xc0; do { sys_spi_transfer((void *)&tx[0], NULL, 2); sys_spi_transfer(NULL, (void *)&rx[0], 1); } while((rx[0] & 0x1) == 0x1); } else { return; } } } xfel-1.3.5/progress.c000066400000000000000000000030721512120643700144710ustar00rootroot00000000000000#include static double gettime(void) { struct timeval tv; gettimeofday(&tv, NULL); return tv.tv_sec + (double)tv.tv_usec / 1000000.0; } static const char * format_eta(double remaining) { static char result[6] = ""; int seconds = remaining + 0.5; if(seconds >= 0 && seconds < 6000) { snprintf(result, sizeof(result), "%02d:%02d", seconds / 60, seconds % 60); return result; } return "--:--"; } static char * ssize(char * buf, double size) { const char * unit[] = {"B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"}; int count = 0; while((size > 1024) && (count < 8)) { size /= 1024; count++; } sprintf(buf, "%5.3f %s", size, unit[count]); return buf; } void progress_start(struct progress_t * p, uint64_t total) { if(p && (total > 0)) { p->total = total; p->done = 0; p->start = gettime(); } } void progress_update(struct progress_t * p, uint64_t bytes) { char buf1[32], buf2[32]; if(p) { p->done += bytes; double ratio = p->total > 0 ? (double)p->done / (double)p->total : 0.0; double speed = (double)p->done / (gettime() - p->start); double eta = speed > 0 ? (p->total - p->done) / speed : 0; int i, pos = 48 * ratio; printf("\r%3.0f%% [", ratio * 100); for(i = 0; i < pos; i++) putchar('='); for(i = pos; i < 48; i++) putchar(' '); if(p->done < p->total) printf("] %s/s, ETA %s \r", ssize(buf1, speed), format_eta(eta)); else printf("] %s, %s/s \r", ssize(buf1, p->done), ssize(buf2, speed)); fflush(stdout); } } void progress_stop(struct progress_t * p) { if(p) printf("\r\n"); } xfel-1.3.5/progress.h000066400000000000000000000006451512120643700145010ustar00rootroot00000000000000#ifndef __PROGRESS_H__ #define __PROGRESS_H__ #ifdef __cplusplus extern "C" { #endif #include struct progress_t { uint64_t total; uint64_t done; double start; }; void progress_start(struct progress_t * p, uint64_t total); void progress_update(struct progress_t * p, uint64_t bytes); void progress_stop(struct progress_t * p); #ifdef __cplusplus } #endif #endif /* __PROGRESS_H__ */ xfel-1.3.5/sha256.c000066400000000000000000000071751512120643700136450ustar00rootroot00000000000000#include #define ror(value, bits) (((value) >> (bits)) | ((value) << (32 - (bits)))) #define shr(value, bits) ((value) >> (bits)) static const uint32_t K[64] = { 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 }; static void sha256_transform(struct sha256_ctx_t * ctx) { uint32_t W[64]; uint32_t A, B, C, D, E, F, G, H; uint8_t * p = ctx->buf; int t; for(t = 0; t < 16; ++t) { uint32_t tmp = *p++ << 24; tmp |= *p++ << 16; tmp |= *p++ << 8; tmp |= *p++; W[t] = tmp; } for(; t < 64; t++) { uint32_t s0 = ror(W[t-15], 7) ^ ror(W[t-15], 18) ^ shr(W[t-15], 3); uint32_t s1 = ror(W[t-2], 17) ^ ror(W[t-2], 19) ^ shr(W[t-2], 10); W[t] = W[t-16] + s0 + W[t-7] + s1; } A = ctx->state[0]; B = ctx->state[1]; C = ctx->state[2]; D = ctx->state[3]; E = ctx->state[4]; F = ctx->state[5]; G = ctx->state[6]; H = ctx->state[7]; for(t = 0; t < 64; t++) { uint32_t s0 = ror(A, 2) ^ ror(A, 13) ^ ror(A, 22); uint32_t maj = (A & B) ^ (A & C) ^ (B & C); uint32_t t2 = s0 + maj; uint32_t s1 = ror(E, 6) ^ ror(E, 11) ^ ror(E, 25); uint32_t ch = (E & F) ^ ((~E) & G); uint32_t t1 = H + s1 + ch + K[t] + W[t]; H = G; G = F; F = E; E = D + t1; D = C; C = B; B = A; A = t1 + t2; } ctx->state[0] += A; ctx->state[1] += B; ctx->state[2] += C; ctx->state[3] += D; ctx->state[4] += E; ctx->state[5] += F; ctx->state[6] += G; ctx->state[7] += H; } void sha256_init(struct sha256_ctx_t * ctx) { ctx->state[0] = 0x6a09e667; ctx->state[1] = 0xbb67ae85; ctx->state[2] = 0x3c6ef372; ctx->state[3] = 0xa54ff53a; ctx->state[4] = 0x510e527f; ctx->state[5] = 0x9b05688c; ctx->state[6] = 0x1f83d9ab; ctx->state[7] = 0x5be0cd19; ctx->count = 0; } void sha256_update(struct sha256_ctx_t * ctx, const void * data, int len) { int i = (int)(ctx->count & 63); const uint8_t * p = (const uint8_t *)data; ctx->count += len; while(len--) { ctx->buf[i++] = *p++; if(i == 64) { sha256_transform(ctx); i = 0; } } } const uint8_t * sha256_final(struct sha256_ctx_t * ctx) { uint8_t * p = ctx->buf; uint64_t cnt = ctx->count * 8; int i; sha256_update(ctx, (uint8_t *)"\x80", 1); while ((ctx->count & 63) != 56) { sha256_update(ctx, (uint8_t *)"\0", 1); } for(i = 0; i < 8; ++i) { uint8_t tmp = (uint8_t)(cnt >> ((7 - i) * 8)); sha256_update(ctx, &tmp, 1); } for(i = 0; i < 8; i++) { uint32_t tmp = ctx->state[i]; *p++ = tmp >> 24; *p++ = tmp >> 16; *p++ = tmp >> 8; *p++ = tmp >> 0; } return ctx->buf; } /* * Compute sha256 (256-bits) message digest */ const uint8_t * sha256_hash(const void * data, int len, uint8_t * digest) { struct sha256_ctx_t ctx; sha256_init(&ctx); sha256_update(&ctx, data, len); memcpy(digest, sha256_final(&ctx), SHA256_DIGEST_SIZE); return digest; } xfel-1.3.5/sha256.h000066400000000000000000000010111512120643700136310ustar00rootroot00000000000000#ifndef __SHA256_H__ #define __SHA256_H__ #ifdef __cplusplus extern "C" { #endif #include #define SHA256_DIGEST_SIZE (32) struct sha256_ctx_t { uint64_t count; uint8_t buf[64]; uint32_t state[8]; }; void sha256_init(struct sha256_ctx_t * ctx); void sha256_update(struct sha256_ctx_t * ctx, const void * data, int len); const uint8_t * sha256_final(struct sha256_ctx_t * ctx); const uint8_t * sha256_hash(const void * data, int len, uint8_t * digest); #ifdef __cplusplus } #endif #endif /* __SHA256_H__ */ xfel-1.3.5/spinand.c000066400000000000000000000510251512120643700142620ustar00rootroot00000000000000#include #define SPINAND_ID(...) { .val = { __VA_ARGS__ }, .len = sizeof((uint8_t[]){ __VA_ARGS__ }) } struct spinand_info_t { char * name; struct { uint8_t val[4]; uint8_t len; } id; uint32_t page_size; uint32_t spare_size; uint32_t pages_per_block; uint32_t blocks_per_die; uint32_t planes_per_die; uint32_t ndies; }; struct spinand_pdata_t { struct spinand_info_t info; uint32_t swapbuf; uint32_t swaplen; uint32_t cmdlen; }; enum { OPCODE_RDID = 0x9f, OPCODE_GET_FEATURE = 0x0f, OPCODE_SET_FEATURE = 0x1f, OPCODE_FEATURE_PROTECT = 0xa0, OPCODE_FEATURE_CONFIG = 0xb0, OPCODE_FEATURE_STATUS = 0xc0, OPCODE_READ_PAGE_TO_CACHE = 0x13, OPCODE_READ_PAGE_FROM_CACHE = 0x03, OPCODE_WRITE_ENABLE = 0x06, OPCODE_BLOCK_ERASE = 0xd8, OPCODE_PROGRAM_LOAD = 0x02, OPCODE_PROGRAM_EXEC = 0x10, OPCODE_RESET = 0xff, }; static const struct spinand_info_t spinand_infos[] = { /* Winbond */ { "W25N512GV", SPINAND_ID(0xef, 0xaa, 0x20), 2048, 64, 64, 512, 1, 1 }, { "W25N01GV", SPINAND_ID(0xef, 0xaa, 0x21), 2048, 64, 64, 1024, 1, 1 }, { "W25N01KV", SPINAND_ID(0xef, 0xae, 0x21), 2048, 128, 64, 1024, 1, 1 }, { "W25M02GV", SPINAND_ID(0xef, 0xab, 0x21), 2048, 64, 64, 1024, 1, 2 }, { "W25N02KV", SPINAND_ID(0xef, 0xaa, 0x22), 2048, 128, 64, 2048, 1, 1 }, /* Gigadevice */ { "GD5F1GQ4UAWxx", SPINAND_ID(0xc8, 0x10), 2048, 64, 64, 1024, 1, 1 }, { "GD5F1GQ5UExxG", SPINAND_ID(0xc8, 0x51), 2048, 128, 64, 1024, 1, 1 }, { "GD5F1GQ4UExIG", SPINAND_ID(0xc8, 0xd1), 2048, 128, 64, 1024, 1, 1 }, { "GD5F1GQ4UExxH", SPINAND_ID(0xc8, 0xd9), 2048, 64, 64, 1024, 1, 1 }, { "GD5F1GQ4xAYIG", SPINAND_ID(0xc8, 0xf1), 2048, 64, 64, 1024, 1, 1 }, { "GD5F2GQ4UExIG", SPINAND_ID(0xc8, 0xd2), 2048, 128, 64, 2048, 1, 1 }, { "GD5F2GQ5UExxH", SPINAND_ID(0xc8, 0x32), 2048, 64, 64, 2048, 1, 1 }, { "GD5F2GQ4xAYIG", SPINAND_ID(0xc8, 0xf2), 2048, 64, 64, 2048, 1, 1 }, { "GD5F4GQ4UBxIG", SPINAND_ID(0xc8, 0xd4), 4096, 256, 64, 2048, 1, 1 }, { "GD5F4GQ4xAYIG", SPINAND_ID(0xc8, 0xf4), 2048, 64, 64, 4096, 1, 1 }, { "GD5F2GQ5UExxG", SPINAND_ID(0xc8, 0x52), 2048, 128, 64, 2048, 1, 1 }, { "GD5F4GQ4UCxIG", SPINAND_ID(0xc8, 0xb4), 4096, 256, 64, 2048, 1, 1 }, { "GD5F4GQ4RCxIG", SPINAND_ID(0xc8, 0xa4), 4096, 256, 64, 2048, 1, 1 }, /* Macronix */ { "MX35LF1GE4AB", SPINAND_ID(0xc2, 0x12), 2048, 64, 64, 1024, 1, 1 }, { "MX35LF1G24AD", SPINAND_ID(0xc2, 0x14), 2048, 128, 64, 1024, 1, 1 }, { "MX31LF1GE4BC", SPINAND_ID(0xc2, 0x1e), 2048, 64, 64, 1024, 1, 1 }, { "MX35LF2GE4AB", SPINAND_ID(0xc2, 0x22), 2048, 64, 64, 2048, 1, 1 }, { "MX35LF2G24AD", SPINAND_ID(0xc2, 0x24), 2048, 128, 64, 2048, 1, 1 }, { "MX35LF2GE4AD", SPINAND_ID(0xc2, 0x26), 2048, 128, 64, 2048, 1, 1 }, { "MX35LF2G14AC", SPINAND_ID(0xc2, 0x20), 2048, 64, 64, 2048, 1, 1 }, { "MX35LF4G24AD", SPINAND_ID(0xc2, 0x35), 4096, 256, 64, 2048, 1, 1 }, { "MX35LF4GE4AD", SPINAND_ID(0xc2, 0x37), 4096, 256, 64, 2048, 1, 1 }, /* Micron */ { "MT29F1G01AAADD", SPINAND_ID(0x2c, 0x12), 2048, 64, 64, 1024, 1, 1 }, { "MT29F1G01ABAFD", SPINAND_ID(0x2c, 0x14), 2048, 128, 64, 1024, 1, 1 }, { "MT29F2G01AAAED", SPINAND_ID(0x2c, 0x9f), 2048, 64, 64, 2048, 2, 1 }, { "MT29F2G01ABAGD", SPINAND_ID(0x2c, 0x24), 2048, 128, 64, 2048, 2, 1 }, { "MT29F4G01AAADD", SPINAND_ID(0x2c, 0x32), 2048, 64, 64, 4096, 2, 1 }, { "MT29F4G01ABAFD", SPINAND_ID(0x2c, 0x34), 4096, 256, 64, 2048, 1, 1 }, { "MT29F4G01ADAGD", SPINAND_ID(0x2c, 0x36), 2048, 128, 64, 2048, 2, 2 }, { "MT29F8G01ADAFD", SPINAND_ID(0x2c, 0x46), 4096, 256, 64, 2048, 1, 2 }, /* Toshiba */ { "TC58CVG0S3HRAIG", SPINAND_ID(0x98, 0xc2), 2048, 128, 64, 1024, 1, 1 }, { "TC58CVG1S3HRAIG", SPINAND_ID(0x98, 0xcb), 2048, 128, 64, 2048, 1, 1 }, { "TC58CVG2S0HRAIG", SPINAND_ID(0x98, 0xcd), 4096, 256, 64, 2048, 1, 1 }, { "TC58CVG0S3HRAIJ", SPINAND_ID(0x98, 0xe2), 2048, 128, 64, 1024, 1, 1 }, { "TC58CVG1S3HRAIJ", SPINAND_ID(0x98, 0xeb), 2048, 128, 64, 2048, 1, 1 }, { "TC58CVG2S0HRAIJ", SPINAND_ID(0x98, 0xed), 4096, 256, 64, 2048, 1, 1 }, { "TH58CVG3S0HRAIJ", SPINAND_ID(0x98, 0xe4), 4096, 256, 64, 4096, 1, 1 }, /* Esmt */ { "F50L512M41A", SPINAND_ID(0xc8, 0x20), 2048, 64, 64, 512, 1, 1 }, { "F50L1G41A", SPINAND_ID(0xc8, 0x21), 2048, 64, 64, 1024, 1, 1 }, { "F50L1G41LB", SPINAND_ID(0xc8, 0x01), 2048, 64, 64, 1024, 1, 1 }, { "F50L2G41LB", SPINAND_ID(0xc8, 0x0a), 2048, 64, 64, 1024, 1, 2 }, /* Fison */ { "CS11G0T0A0AA", SPINAND_ID(0x6b, 0x00), 2048, 128, 64, 1024, 1, 1 }, { "CS11G0G0A0AA", SPINAND_ID(0x6b, 0x10), 2048, 128, 64, 1024, 1, 1 }, { "CS11G0S0A0AA", SPINAND_ID(0x6b, 0x20), 2048, 64, 64, 1024, 1, 1 }, { "CS11G1T0A0AA", SPINAND_ID(0x6b, 0x01), 2048, 128, 64, 2048, 1, 1 }, { "CS11G1S0A0AA", SPINAND_ID(0x6b, 0x21), 2048, 64, 64, 2048, 1, 1 }, { "CS11G2T0A0AA", SPINAND_ID(0x6b, 0x02), 2048, 128, 64, 4096, 1, 1 }, { "CS11G2S0A0AA", SPINAND_ID(0x6b, 0x22), 2048, 64, 64, 4096, 1, 1 }, /* Etron */ { "EM73B044VCA", SPINAND_ID(0xd5, 0x01), 2048, 64, 64, 512, 1, 1 }, { "EM73C044SNB", SPINAND_ID(0xd5, 0x11), 2048, 120, 64, 1024, 1, 1 }, { "EM73C044SNF", SPINAND_ID(0xd5, 0x09), 2048, 128, 64, 1024, 1, 1 }, { "EM73C044VCA", SPINAND_ID(0xd5, 0x18), 2048, 64, 64, 1024, 1, 1 }, { "EM73C044SNA", SPINAND_ID(0xd5, 0x19), 2048, 64, 128, 512, 1, 1 }, { "EM73C044VCD", SPINAND_ID(0xd5, 0x1c), 2048, 64, 64, 1024, 1, 1 }, { "EM73C044SND", SPINAND_ID(0xd5, 0x1d), 2048, 64, 64, 1024, 1, 1 }, { "EM73D044SND", SPINAND_ID(0xd5, 0x1e), 2048, 64, 64, 2048, 1, 1 }, { "EM73C044VCC", SPINAND_ID(0xd5, 0x22), 2048, 64, 64, 1024, 1, 1 }, { "EM73C044VCF", SPINAND_ID(0xd5, 0x25), 2048, 64, 64, 1024, 1, 1 }, { "EM73C044SNC", SPINAND_ID(0xd5, 0x31), 2048, 128, 64, 1024, 1, 1 }, { "EM73D044SNC", SPINAND_ID(0xd5, 0x0a), 2048, 120, 64, 2048, 1, 1 }, { "EM73D044SNA", SPINAND_ID(0xd5, 0x12), 2048, 128, 64, 2048, 1, 1 }, { "EM73D044SNF", SPINAND_ID(0xd5, 0x10), 2048, 128, 64, 2048, 1, 1 }, { "EM73D044VCA", SPINAND_ID(0xd5, 0x13), 2048, 128, 64, 2048, 1, 1 }, { "EM73D044VCB", SPINAND_ID(0xd5, 0x14), 2048, 64, 64, 2048, 1, 1 }, { "EM73D044VCD", SPINAND_ID(0xd5, 0x17), 2048, 128, 64, 2048, 1, 1 }, { "EM73D044VCH", SPINAND_ID(0xd5, 0x1b), 2048, 64, 64, 2048, 1, 1 }, { "EM73D044SND", SPINAND_ID(0xd5, 0x1d), 2048, 64, 64, 2048, 1, 1 }, { "EM73D044VCG", SPINAND_ID(0xd5, 0x1f), 2048, 64, 64, 2048, 1, 1 }, { "EM73D044VCE", SPINAND_ID(0xd5, 0x20), 2048, 64, 64, 2048, 1, 1 }, { "EM73D044VCL", SPINAND_ID(0xd5, 0x2e), 2048, 128, 64, 2048, 1, 1 }, { "EM73D044SNB", SPINAND_ID(0xd5, 0x32), 2048, 128, 64, 2048, 1, 1 }, { "EM73E044SNA", SPINAND_ID(0xd5, 0x03), 4096, 256, 64, 2048, 1, 1 }, { "EM73E044SND", SPINAND_ID(0xd5, 0x0b), 4096, 240, 64, 2048, 1, 1 }, { "EM73E044SNB", SPINAND_ID(0xd5, 0x23), 4096, 256, 64, 2048, 1, 1 }, { "EM73E044VCA", SPINAND_ID(0xd5, 0x2c), 4096, 256, 64, 2048, 1, 1 }, { "EM73E044VCB", SPINAND_ID(0xd5, 0x2f), 2048, 128, 64, 4096, 1, 1 }, { "EM73F044SNA", SPINAND_ID(0xd5, 0x24), 4096, 256, 64, 4096, 1, 1 }, { "EM73F044VCA", SPINAND_ID(0xd5, 0x2d), 4096, 256, 64, 4096, 1, 1 }, { "EM73E044SNE", SPINAND_ID(0xd5, 0x0e), 4096, 256, 64, 4096, 1, 1 }, { "EM73C044SNG", SPINAND_ID(0xd5, 0x0c), 2048, 120, 64, 1024, 1, 1 }, { "EM73D044VCN", SPINAND_ID(0xd5, 0x0f), 2048, 64, 64, 2048, 1, 1 }, /* Elnec */ { "FM35Q1GA", SPINAND_ID(0xe5, 0x71), 2048, 64, 64, 1024, 1, 1 }, /* Paragon */ { "PN26G01A", SPINAND_ID(0xa1, 0xe1), 2048, 128, 64, 1024, 1, 1 }, { "PN26G02A", SPINAND_ID(0xa1, 0xe2), 2048, 128, 64, 2048, 1, 1 }, /* Ato */ { "ATO25D1GA", SPINAND_ID(0x9b, 0x12), 2048, 64, 64, 1024, 1, 1 }, /* Heyang */ { "HYF1GQ4U", SPINAND_ID(0xc9, 0x51), 2048, 128, 64, 1024, 1, 1 }, { "HYF2GQ4U", SPINAND_ID(0xc9, 0x52), 2048, 128, 64, 2048, 1, 1 }, { "HYF4GQ4U", SPINAND_ID(0xc9, 0x54), 2048, 128, 64, 4096, 1, 1 }, /* FORESEE */ { "F35SQA001G", SPINAND_ID(0xCD, 0x71, 0x71), 2048, 64, 64, 1024, 1, 1 }, { "F35SQA002G", SPINAND_ID(0xCD, 0x72, 0x72), 2048, 64, 64, 2048, 1, 1 }, }; static inline int spinand_info(struct xfel_ctx_t * ctx, struct spinand_pdata_t * pdat) { const struct spinand_info_t * t; uint8_t tx[2]; uint8_t rx[4]; int i; tx[0] = OPCODE_RDID; tx[1] = 0x0; if(!fel_spi_xfer(ctx, pdat->swapbuf, pdat->swaplen, pdat->cmdlen, tx, 2, rx, 4)) return 0; for(i = 0; i < ARRAY_SIZE(spinand_infos); i++) { t = &spinand_infos[i]; if(memcmp(rx, t->id.val, t->id.len) == 0) { memcpy(&pdat->info, t, sizeof(struct spinand_info_t)); return 1; } } tx[0] = OPCODE_RDID; if(!fel_spi_xfer(ctx, pdat->swapbuf, pdat->swaplen, pdat->cmdlen, tx, 1, rx, 4)) return 0; for(i = 0; i < ARRAY_SIZE(spinand_infos); i++) { t = &spinand_infos[i]; if(memcmp(rx, t->id.val, t->id.len) == 0) { memcpy(&pdat->info, t, sizeof(struct spinand_info_t)); return 1; } } printf("The spi nand flash '0x%02x%02x%02x%02x' is not yet supported\r\n", rx[0], rx[1], rx[2], rx[3]); return 0; } static inline int spinand_reset(struct xfel_ctx_t * ctx, struct spinand_pdata_t * pdat) { uint8_t tx[1]; tx[0] = OPCODE_RESET; if(!fel_spi_xfer(ctx, pdat->swapbuf, pdat->swaplen, pdat->cmdlen, tx, 1, 0, 0)) return 0; usleep(100 * 1000); return 1; } static inline int spinand_get_feature(struct xfel_ctx_t * ctx, struct spinand_pdata_t * pdat, uint8_t addr, uint8_t * val) { uint8_t tx[2]; tx[0] = OPCODE_GET_FEATURE; tx[1] = addr; if(!fel_spi_xfer(ctx, pdat->swapbuf, pdat->swaplen, pdat->cmdlen, tx, 2, val, 1)) return 0; return 1; } static inline int spinand_set_feature(struct xfel_ctx_t * ctx, struct spinand_pdata_t * pdat, uint8_t addr, uint8_t val) { uint8_t tx[3]; tx[0] = OPCODE_SET_FEATURE; tx[1] = addr; tx[2] = val; if(!fel_spi_xfer(ctx, pdat->swapbuf, pdat->swaplen, pdat->cmdlen, tx, 3, 0, 0)) return 0; return 1; } static inline int spinand_wait_for_busy(struct xfel_ctx_t * ctx, struct spinand_pdata_t * pdat) { uint8_t cbuf[256]; uint32_t clen = 0; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_SPINAND_WAIT; cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_END; if(clen <= pdat->cmdlen) { fel_chip_spi_run(ctx, cbuf, clen); return 1; } return 0; } static int spinand_helper_init(struct xfel_ctx_t * ctx, struct spinand_pdata_t * pdat) { uint8_t val; if(fel_spi_init(ctx, &pdat->swapbuf, &pdat->swaplen, &pdat->cmdlen) && spinand_info(ctx, pdat)) { spinand_reset(ctx, pdat); spinand_wait_for_busy(ctx, pdat); if(spinand_get_feature(ctx, pdat, OPCODE_FEATURE_PROTECT, &val) && (val != 0x0)) { spinand_set_feature(ctx, pdat, OPCODE_FEATURE_PROTECT, 0x0); spinand_wait_for_busy(ctx, pdat); } return 1; } return 0; } static void spinand_helper_read(struct xfel_ctx_t * ctx, struct spinand_pdata_t * pdat, uint32_t addr, uint8_t * buf, uint32_t count) { uint32_t pa, ca; uint32_t n; uint8_t tx[4]; while(count > 0) { pa = addr / pdat->info.page_size; ca = addr & (pdat->info.page_size - 1); n = count > (pdat->info.page_size - ca) ? (pdat->info.page_size - ca) : count; tx[0] = OPCODE_READ_PAGE_TO_CACHE; tx[1] = (uint8_t)(pa >> 16); tx[2] = (uint8_t)(pa >> 8); tx[3] = (uint8_t)(pa >> 0); fel_spi_xfer(ctx, pdat->swapbuf, pdat->swaplen, pdat->cmdlen, tx, 4, 0, 0); spinand_wait_for_busy(ctx, pdat); tx[0] = OPCODE_READ_PAGE_FROM_CACHE; tx[1] = (uint8_t)(ca >> 8); tx[2] = (uint8_t)(ca >> 0); tx[3] = 0x0; fel_spi_xfer(ctx, pdat->swapbuf, pdat->swaplen, pdat->cmdlen, tx, 4, buf, n); spinand_wait_for_busy(ctx, pdat); addr += n; buf += n; count -= n; } } static void spinand_helper_erase(struct xfel_ctx_t * ctx, struct spinand_pdata_t * pdat, uint64_t addr, uint64_t count) { uint64_t base; int64_t cnt; uint32_t esize, emask; uint32_t clen; uint32_t pa; uint8_t cbuf[256]; esize = pdat->info.page_size * pdat->info.pages_per_block; emask = esize - 1; base = addr & ~emask; cnt = (addr & emask) + count; cnt = (cnt + ((cnt & emask) ? esize : 0)) & ~emask; while(cnt > 0) { pa = base / pdat->info.page_size; clen = 0; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_FAST; cbuf[clen++] = 1; cbuf[clen++] = OPCODE_WRITE_ENABLE; cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_SPINAND_WAIT; cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_FAST; cbuf[clen++] = 4; cbuf[clen++] = OPCODE_BLOCK_ERASE; cbuf[clen++] = (uint8_t)(pa >> 16); cbuf[clen++] = (uint8_t)(pa >> 8); cbuf[clen++] = (uint8_t)(pa >> 0); cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_SPINAND_WAIT; cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_END; if(clen <= pdat->cmdlen) fel_chip_spi_run(ctx, cbuf, clen); base += esize; cnt -= esize; } } static void spinand_helper_write(struct xfel_ctx_t * ctx, struct spinand_pdata_t * pdat, uint32_t addr, uint8_t * buf, uint32_t count) { uint8_t * cbuf; int32_t clen; uint8_t * txbuf; int32_t txlen; int32_t granularity, n; uint32_t pa, ca; cbuf = malloc(pdat->cmdlen); txbuf = malloc(pdat->swaplen); if(cbuf && txbuf) { granularity = pdat->info.page_size > (pdat->swaplen - 3) ? (pdat->swaplen - 3) : pdat->info.page_size; while(count > 0) { clen = 0; txlen = 0; while((clen < (pdat->cmdlen - 33 - 1)) && (txlen < ((int32_t)pdat->swaplen - granularity - 3))) { n = count > granularity ? granularity : count; pa = addr / pdat->info.page_size; ca = addr & (pdat->info.page_size - 1); cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_FAST; cbuf[clen++] = 1; cbuf[clen++] = OPCODE_WRITE_ENABLE; cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_SPINAND_WAIT; cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_TXBUF; cbuf[clen++] = ((pdat->swapbuf + txlen) >> 0) & 0xff; cbuf[clen++] = ((pdat->swapbuf + txlen) >> 8) & 0xff; cbuf[clen++] = ((pdat->swapbuf + txlen) >> 16) & 0xff; cbuf[clen++] = ((pdat->swapbuf + txlen) >> 24) & 0xff; cbuf[clen++] = ((n + 3) >> 0) & 0xff; cbuf[clen++] = ((n + 3) >> 8) & 0xff; cbuf[clen++] = ((n + 3) >> 16) & 0xff; cbuf[clen++] = ((n + 3) >> 24) & 0xff; cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_SPINAND_WAIT; cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_FAST; cbuf[clen++] = 4; cbuf[clen++] = OPCODE_PROGRAM_EXEC; cbuf[clen++] = (uint8_t)(pa >> 16); cbuf[clen++] = (uint8_t)(pa >> 8); cbuf[clen++] = (uint8_t)(pa >> 0); cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_SPINAND_WAIT; cbuf[clen++] = SPI_CMD_DESELECT; txbuf[txlen++] = OPCODE_PROGRAM_LOAD; txbuf[txlen++] = (uint8_t)(ca >> 8); txbuf[txlen++] = (uint8_t)(ca >> 0); memcpy(&txbuf[txlen], buf, n); txlen += n; addr += n; buf += n; count -= n; if(!count) break; } cbuf[clen++] = SPI_CMD_END; fel_write(ctx, pdat->swapbuf, txbuf, txlen); if(clen <= pdat->cmdlen) fel_chip_spi_run(ctx, cbuf, clen); } } if(cbuf) free(cbuf); if(txbuf) free(txbuf); } int spinand_detect(struct xfel_ctx_t * ctx, char * name, uint64_t * capacity) { struct spinand_pdata_t pdat; if(spinand_helper_init(ctx, &pdat)) { if(name) strcpy(name, pdat.info.name); if(capacity) *capacity = pdat.info.page_size * pdat.info.pages_per_block * pdat.info.blocks_per_die * pdat.info.ndies; return 1; } return 0; } int spinand_erase(struct xfel_ctx_t * ctx, uint64_t addr, uint64_t len) { struct spinand_pdata_t pdat; struct progress_t p; uint64_t base, n; int64_t cnt; uint32_t esize, emask; if(spinand_helper_init(ctx, &pdat)) { esize = pdat.info.page_size * pdat.info.pages_per_block; emask = esize - 1; base = addr & ~emask; cnt = (addr & emask) + len; cnt = (cnt + ((cnt & emask) ? esize : 0)) & ~emask; progress_start(&p, cnt); while(cnt > 0) { n = cnt > esize ? esize : cnt; spinand_helper_erase(ctx, &pdat, base, n); base += n; cnt -= n; progress_update(&p, n); } progress_stop(&p); return 1; } return 0; } int spinand_read(struct xfel_ctx_t * ctx, uint64_t addr, void * buf, uint64_t len) { struct spinand_pdata_t pdat; struct progress_t p; uint64_t n; if(spinand_helper_init(ctx, &pdat)) { progress_start(&p, len); while(len > 0) { n = len > 65536 ? 65536 : len; spinand_helper_read(ctx, &pdat, addr, buf, n); addr += n; len -= n; buf += n; progress_update(&p, n); } progress_stop(&p); return 1; } return 0; } int spinand_write(struct xfel_ctx_t * ctx, uint64_t addr, void * buf, uint64_t len) { struct spinand_pdata_t pdat; struct progress_t p; uint64_t base, n; int64_t cnt; uint32_t esize, emask; if(spinand_helper_init(ctx, &pdat)) { esize = pdat.info.page_size * pdat.info.pages_per_block; emask = esize - 1; base = addr & ~emask; cnt = (addr & emask) + len; cnt = (cnt + ((cnt & emask) ? esize : 0)) & ~emask; progress_start(&p, cnt); while(cnt > 0) { n = cnt > esize ? esize : cnt; spinand_helper_erase(ctx, &pdat, base, n); base += n; cnt -= n; progress_update(&p, n); } base = addr; cnt = len; progress_start(&p, cnt); while(cnt > 0) { n = cnt > 65536 ? 65536 : cnt; spinand_helper_write(ctx, &pdat, base, buf, n); base += n; cnt -= n; buf += n; progress_update(&p, n); } progress_stop(&p); return 1; } return 0; } int spinand_splwrite(struct xfel_ctx_t * ctx, uint32_t splitsz, uint64_t addr, void * buf, uint64_t len) { struct spinand_pdata_t pdat; struct progress_t p; uint64_t base, n; int64_t cnt; uint32_t esize, emask; void * nbuf; uint64_t nlen; if(spinand_helper_init(ctx, &pdat)) { esize = pdat.info.page_size * pdat.info.pages_per_block; emask = esize - 1; if((splitsz <= 0) || (splitsz > pdat.info.page_size)) splitsz = pdat.info.page_size; if(splitsz & 0x3ff) { printf("The valid page size is not 1k alignable and thus not supported\r\n"); return 0; } uint8_t * pbuf = buf; if(memcmp(&pbuf[4], "eGON.BT0", 8) != 0) { printf("Invalid a eGON boot image\r\n"); return 0; } uint32_t splsz = (pbuf[19] << 24) | (pbuf[18] << 16) | (pbuf[17] << 8) | (pbuf[16] << 0); if(splsz > len) { printf("The spl size is too large, please check!\r\n"); return 0; } uint32_t tsplsz = (splsz * pdat.info.page_size / splitsz + esize) & ~emask; if(addr >= tsplsz) { int copies = 0; nlen = 0; while(nlen < addr) { nlen += tsplsz; copies++; } nlen += len; nbuf = malloc(nlen); if(nbuf) { uint8_t * pb = buf; uint8_t * pnb = nbuf; memset(pnb, 0xff, nlen); for(int i = 0; i < splsz; i += splitsz) { memcpy(pnb, pb, splitsz); pb += splitsz; pnb += pdat.info.page_size; } for(int i = 1; i < copies; i++) { memcpy(nbuf + tsplsz * i, nbuf, tsplsz); } memcpy(nbuf + (nlen - len), buf, len); } else return 0; } else { nlen = tsplsz; nbuf = malloc(nlen); if(nbuf) { uint8_t * pb = buf; uint8_t * pnb = nbuf; memset(pnb, 0xff, nlen); for(int i = 0; i < splsz; i += splitsz) { memcpy(pnb, pb, splitsz); pb += splitsz; pnb += pdat.info.page_size; } } else return 0; } uint8_t * pnbuf = nbuf; base = 0 & ~emask; cnt = (0 & emask) + nlen; cnt = (cnt + ((cnt & emask) ? esize : 0)) & ~emask; progress_start(&p, cnt); while(cnt > 0) { n = cnt > esize ? esize : cnt; spinand_helper_erase(ctx, &pdat, base, n); base += n; cnt -= n; progress_update(&p, n); } base = 0; cnt = nlen; progress_start(&p, cnt); while(cnt > 0) { n = cnt > 65536 ? 65536 : cnt; spinand_helper_write(ctx, &pdat, base, pnbuf, n); base += n; cnt -= n; pnbuf += n; progress_update(&p, n); } progress_stop(&p); if(nbuf) free(nbuf); return 1; } return 0; } xfel-1.3.5/spinand.h000066400000000000000000000011371512120643700142660ustar00rootroot00000000000000#ifndef __SPINAND_H__ #define __SPINAND_H__ #ifdef __cplusplus extern "C" { #endif #include int spinand_detect(struct xfel_ctx_t * ctx, char * name, uint64_t * capacity); int spinand_erase(struct xfel_ctx_t * ctx, uint64_t addr, uint64_t len); int spinand_read(struct xfel_ctx_t * ctx, uint64_t addr, void * buf, uint64_t len); int spinand_write(struct xfel_ctx_t * ctx, uint64_t addr, void * buf, uint64_t len); int spinand_splwrite(struct xfel_ctx_t * ctx, uint32_t splitsz, uint64_t addr, void * buf, uint64_t len); #ifdef __cplusplus } #endif #endif /* __SPINAND_H__ */ xfel-1.3.5/spinor.c000066400000000000000000000626201512120643700141430ustar00rootroot00000000000000#include struct spinor_info_t { char * name; uint32_t id; uint32_t capacity; uint32_t blksz; uint32_t read_granularity; uint32_t write_granularity; uint8_t address_length; uint8_t opcode_read; uint8_t opcode_write; uint8_t opcode_write_enable; uint8_t opcode_erase_4k; uint8_t opcode_erase_32k; uint8_t opcode_erase_64k; uint8_t opcode_erase_256k; }; struct spinor_pdata_t { struct spinor_info_t info; uint32_t swapbuf; uint32_t swaplen; uint32_t cmdlen; }; enum { OPCODE_SFDP = 0x5a, OPCODE_RDID = 0x9f, OPCODE_WRSR = 0x01, OPCODE_RDSR = 0x05, OPCODE_WREN = 0x06, OPCODE_READ = 0x03, OPCODE_PROG = 0x02, OPCODE_E4K = 0x20, OPCODE_E32K = 0x52, OPCODE_E64K = 0xd8, OPCODE_ENTER_4B = 0xb7, OPCODE_EXIT_4B = 0xe9, }; #define SFDP_MAX_NPH (6) struct sfdp_header_t { uint8_t sign[4]; uint8_t minor; uint8_t major; uint8_t nph; uint8_t unused; }; struct sfdp_parameter_header_t { uint8_t idlsb; uint8_t minor; uint8_t major; uint8_t length; uint8_t ptp[3]; uint8_t idmsb; }; struct sfdp_basic_table_t { uint8_t minor; uint8_t major; uint8_t table[16 * 4]; }; struct sfdp_t { struct sfdp_header_t h; struct sfdp_parameter_header_t ph[SFDP_MAX_NPH]; struct sfdp_basic_table_t bt; }; static const struct spinor_info_t spinor_infos[] = { { "W25X40", 0xef3013, 512 * 1024, 4096, 1, 256, 3, OPCODE_READ, OPCODE_PROG, OPCODE_WREN, OPCODE_E4K, 0, OPCODE_E64K, 0 }, { "W25Q128JVEIQ", 0xefc018, 16 * 1024 * 1024, 4096, 1, 256, 3, OPCODE_READ, OPCODE_PROG, OPCODE_WREN, OPCODE_E4K, OPCODE_E32K, OPCODE_E64K, 0 }, { "W25Q256JVEIQ", 0xef4019, 32 * 1024 * 1024, 4096, 1, 256, 4, OPCODE_READ, OPCODE_PROG, OPCODE_WREN, OPCODE_E4K, OPCODE_E32K, OPCODE_E64K, 0 }, { "GD25D10B", 0xc84011, 128 * 1024, 4096, 1, 256, 3, OPCODE_READ, OPCODE_PROG, OPCODE_WREN, OPCODE_E4K, OPCODE_E32K, OPCODE_E64K, 0 }, }; static inline int spinor_read_sfdp(struct xfel_ctx_t * ctx, uint32_t swapbuf, uint32_t swaplen, uint32_t cmdlen, struct sfdp_t * sfdp) { uint32_t addr; uint8_t tx[5]; int i; memset(sfdp, 0, sizeof(struct sfdp_t)); tx[0] = OPCODE_SFDP; tx[1] = 0x0; tx[2] = 0x0; tx[3] = 0x0; tx[4] = 0x0; if(!fel_spi_xfer(ctx, swapbuf, swaplen, cmdlen, tx, 5, &sfdp->h, sizeof(struct sfdp_header_t))) return 0; if((sfdp->h.sign[0] != 'S') || (sfdp->h.sign[1] != 'F') || (sfdp->h.sign[2] != 'D') || (sfdp->h.sign[3] != 'P')) return 0; sfdp->h.nph = sfdp->h.nph > SFDP_MAX_NPH ? sfdp->h.nph + 1 : SFDP_MAX_NPH; for(i = 0; i < sfdp->h.nph; i++) { addr = i * sizeof(struct sfdp_parameter_header_t) + sizeof(struct sfdp_header_t); tx[0] = OPCODE_SFDP; tx[1] = (addr >> 16) & 0xff; tx[2] = (addr >> 8) & 0xff; tx[3] = (addr >> 0) & 0xff; tx[4] = 0x0; if(!fel_spi_xfer(ctx, swapbuf, swaplen, cmdlen, tx, 5, &sfdp->ph[i], sizeof(struct sfdp_parameter_header_t))) return 0; } for(i = 0; i < sfdp->h.nph; i++) { if((sfdp->ph[i].idlsb == 0x00) && (sfdp->ph[i].idmsb == 0xff)) { addr = (sfdp->ph[i].ptp[0] << 0) | (sfdp->ph[i].ptp[1] << 8) | (sfdp->ph[i].ptp[2] << 16); tx[0] = OPCODE_SFDP; tx[1] = (addr >> 16) & 0xff; tx[2] = (addr >> 8) & 0xff; tx[3] = (addr >> 0) & 0xff; tx[4] = 0x0; if(fel_spi_xfer(ctx, swapbuf, swaplen, cmdlen, tx, 5, &sfdp->bt.table[0], sfdp->ph[i].length * 4)) { sfdp->bt.major = sfdp->ph[i].major; sfdp->bt.minor = sfdp->ph[i].minor; return 1; } } } return 0; } static inline int spinor_read_id(struct xfel_ctx_t * ctx, uint32_t swapbuf, uint32_t swaplen, uint32_t cmdlen, uint32_t * id) { uint8_t tx[1]; uint8_t rx[3]; tx[0] = OPCODE_RDID; if(!fel_spi_xfer(ctx, swapbuf, swaplen, cmdlen, tx, 1, rx, 3)) return 0; *id = (rx[0] << 16) | (rx[1] << 8) | (rx[2] << 0); return 1; } static inline int spinor_info(struct xfel_ctx_t * ctx, struct spinor_pdata_t * pdat) { const struct spinor_info_t * t; struct sfdp_t sfdp; uint32_t v, id; int i; if(spinor_read_sfdp(ctx, pdat->swapbuf, pdat->swaplen, pdat->cmdlen, &sfdp)) { pdat->info.name = "SFDP"; pdat->info.id = 0; /* Basic flash parameter table 2th dword */ v = (sfdp.bt.table[7] << 24) | (sfdp.bt.table[6] << 16) | (sfdp.bt.table[5] << 8) | (sfdp.bt.table[4] << 0); if(v & (1 << 31)) { v &= 0x7fffffff; pdat->info.capacity = 1 << (v - 3); } else { pdat->info.capacity = (v + 1) >> 3; } /* Basic flash parameter table 1th dword */ v = (sfdp.bt.table[3] << 24) | (sfdp.bt.table[2] << 16) | (sfdp.bt.table[1] << 8) | (sfdp.bt.table[0] << 0); if((pdat->info.capacity <= (16 * 1024 * 1024)) && (((v >> 17) & 0x3) != 0x2)) pdat->info.address_length = 3; else pdat->info.address_length = 4; if(((v >> 0) & 0x3) == 0x1) pdat->info.opcode_erase_4k = (v >> 8) & 0xff; else pdat->info.opcode_erase_4k = 0x00; pdat->info.opcode_erase_32k = 0x00; pdat->info.opcode_erase_64k = 0x00; pdat->info.opcode_erase_256k = 0x00; /* Basic flash parameter table 8th dword */ v = (sfdp.bt.table[31] << 24) | (sfdp.bt.table[30] << 16) | (sfdp.bt.table[29] << 8) | (sfdp.bt.table[28] << 0); switch((v >> 0) & 0xff) { case 12: pdat->info.opcode_erase_4k = (v >> 8) & 0xff; break; case 15: pdat->info.opcode_erase_32k = (v >> 8) & 0xff; break; case 16: pdat->info.opcode_erase_64k = (v >> 8) & 0xff; break; case 18: pdat->info.opcode_erase_256k = (v >> 8) & 0xff; break; default: break; } switch((v >> 16) & 0xff) { case 12: pdat->info.opcode_erase_4k = (v >> 24) & 0xff; break; case 15: pdat->info.opcode_erase_32k = (v >> 24) & 0xff; break; case 16: pdat->info.opcode_erase_64k = (v >> 24) & 0xff; break; case 18: pdat->info.opcode_erase_256k = (v >> 24) & 0xff; break; default: break; } /* Basic flash parameter table 9th dword */ v = (sfdp.bt.table[35] << 24) | (sfdp.bt.table[34] << 16) | (sfdp.bt.table[33] << 8) | (sfdp.bt.table[32] << 0); switch((v >> 0) & 0xff) { case 12: pdat->info.opcode_erase_4k = (v >> 8) & 0xff; break; case 15: pdat->info.opcode_erase_32k = (v >> 8) & 0xff; break; case 16: pdat->info.opcode_erase_64k = (v >> 8) & 0xff; break; case 18: pdat->info.opcode_erase_256k = (v >> 8) & 0xff; break; default: break; } switch((v >> 16) & 0xff) { case 12: pdat->info.opcode_erase_4k = (v >> 24) & 0xff; break; case 15: pdat->info.opcode_erase_32k = (v >> 24) & 0xff; break; case 16: pdat->info.opcode_erase_64k = (v >> 24) & 0xff; break; case 18: pdat->info.opcode_erase_256k = (v >> 24) & 0xff; break; default: break; } if(pdat->info.opcode_erase_4k != 0x00) pdat->info.blksz = 4096; else if(pdat->info.opcode_erase_32k != 0x00) pdat->info.blksz = 32768; else if(pdat->info.opcode_erase_64k != 0x00) pdat->info.blksz = 65536; else if(pdat->info.opcode_erase_256k != 0x00) pdat->info.blksz = 262144; pdat->info.opcode_write_enable = OPCODE_WREN; pdat->info.read_granularity = 1; pdat->info.opcode_read = OPCODE_READ; if((sfdp.bt.major == 1) && (sfdp.bt.minor < 5)) { /* Basic flash parameter table 1th dword */ v = (sfdp.bt.table[3] << 24) | (sfdp.bt.table[2] << 16) | (sfdp.bt.table[1] << 8) | (sfdp.bt.table[0] << 0); if((v >> 2) & 0x1) pdat->info.write_granularity = 64; else pdat->info.write_granularity = 1; } else if((sfdp.bt.major == 1) && (sfdp.bt.minor >= 5)) { /* Basic flash parameter table 11th dword */ v = (sfdp.bt.table[43] << 24) | (sfdp.bt.table[42] << 16) | (sfdp.bt.table[41] << 8) | (sfdp.bt.table[40] << 0); pdat->info.write_granularity = 1 << ((v >> 4) & 0xf); } pdat->info.opcode_write = OPCODE_PROG; return 1; } else if(spinor_read_id(ctx, pdat->swapbuf, pdat->swaplen, pdat->cmdlen, &id) && (id != 0xffffff) && (id != 0)) { for(i = 0; i < ARRAY_SIZE(spinor_infos); i++) { t = &spinor_infos[i]; if(id == t->id) { memcpy(&pdat->info, t, sizeof(struct spinor_info_t)); return 1; } } printf("The spi nor flash '0x%x' is not yet supported\r\n", id); } return 0; } static int spinor_helper_init(struct xfel_ctx_t * ctx, struct spinor_pdata_t * pdat) { uint8_t cbuf[256]; uint32_t clen = 0; if(fel_spi_init(ctx, &pdat->swapbuf, &pdat->swaplen, &pdat->cmdlen) && spinor_info(ctx, pdat)) { /* spi select */ cbuf[clen++] = SPI_CMD_SELECT; /* chip reset */ cbuf[clen++] = SPI_CMD_FAST; cbuf[clen++] = 2; cbuf[clen++] = 0x66; cbuf[clen++] = 0x99; /* spi deselect */ cbuf[clen++] = SPI_CMD_DESELECT; /* spi select */ cbuf[clen++] = SPI_CMD_SELECT; /* wait busy */ cbuf[clen++] = SPI_CMD_SPINOR_WAIT; /* spi deselect */ cbuf[clen++] = SPI_CMD_DESELECT; /* spi select */ cbuf[clen++] = SPI_CMD_SELECT; /* write enable */ cbuf[clen++] = SPI_CMD_FAST; cbuf[clen++] = 1; cbuf[clen++] = pdat->info.opcode_write_enable; /* spi deselect */ cbuf[clen++] = SPI_CMD_DESELECT; /* spi select */ cbuf[clen++] = SPI_CMD_SELECT; /* global block/sector unlock */ cbuf[clen++] = SPI_CMD_FAST; cbuf[clen++] = 1; cbuf[clen++] = 0x98; /* spi deselect */ cbuf[clen++] = SPI_CMD_DESELECT; /* spi select */ cbuf[clen++] = SPI_CMD_SELECT; /* wait busy */ cbuf[clen++] = SPI_CMD_SPINOR_WAIT; /* spi deselect */ cbuf[clen++] = SPI_CMD_DESELECT; /* spi select */ cbuf[clen++] = SPI_CMD_SELECT; /* write enable */ cbuf[clen++] = SPI_CMD_FAST; cbuf[clen++] = 1; cbuf[clen++] = pdat->info.opcode_write_enable; /* spi deselect */ cbuf[clen++] = SPI_CMD_DESELECT; /* spi select */ cbuf[clen++] = SPI_CMD_SELECT; /* write status 1 */ cbuf[clen++] = SPI_CMD_FAST; cbuf[clen++] = 2; cbuf[clen++] = OPCODE_WRSR; cbuf[clen++] = 0; /* spi deselect */ cbuf[clen++] = SPI_CMD_DESELECT; /* spi select */ cbuf[clen++] = SPI_CMD_SELECT; /* wait busy */ cbuf[clen++] = SPI_CMD_SPINOR_WAIT; /* spi deselect */ cbuf[clen++] = SPI_CMD_DESELECT; if(pdat->info.address_length == 4) { /* spi select */ cbuf[clen++] = SPI_CMD_SELECT; /* write enable */ cbuf[clen++] = SPI_CMD_FAST; cbuf[clen++] = 1; cbuf[clen++] = pdat->info.opcode_write_enable; /* spi deselect */ cbuf[clen++] = SPI_CMD_DESELECT; /* spi select */ cbuf[clen++] = SPI_CMD_SELECT; /* entern 4byte address */ cbuf[clen++] = SPI_CMD_FAST; cbuf[clen++] = 1; cbuf[clen++] = OPCODE_ENTER_4B; /* spi deselect */ cbuf[clen++] = SPI_CMD_DESELECT; /* spi select */ cbuf[clen++] = SPI_CMD_SELECT; /* wait busy */ cbuf[clen++] = SPI_CMD_SPINOR_WAIT; /* spi deselect */ cbuf[clen++] = SPI_CMD_DESELECT; } /* end */ cbuf[clen++] = SPI_CMD_END; if(clen <= pdat->cmdlen) { fel_chip_spi_run(ctx, cbuf, clen); return 1; } } return 0; } static void spinor_helper_read(struct xfel_ctx_t * ctx, struct spinor_pdata_t * pdat, uint32_t addr, uint8_t * buf, uint32_t count) { int32_t granularity, n; uint8_t tx[5]; if(pdat->info.read_granularity == 1) granularity = (count < 0x40000000) ? count : 0x40000000; else granularity = pdat->info.read_granularity; switch(pdat->info.address_length) { case 3: while(count > 0) { n = count > granularity ? granularity : count; tx[0] = pdat->info.opcode_read; tx[1] = (uint8_t)(addr >> 16); tx[2] = (uint8_t)(addr >> 8); tx[3] = (uint8_t)(addr >> 0); fel_spi_xfer(ctx, pdat->swapbuf, pdat->swaplen, pdat->cmdlen, tx, 4, buf, n); addr += n; buf += n; count -= n; } break; case 4: while(count > 0) { n = count > granularity ? granularity : count; tx[0] = pdat->info.opcode_read; tx[1] = (uint8_t)(addr >> 24); tx[2] = (uint8_t)(addr >> 16); tx[3] = (uint8_t)(addr >> 8); tx[4] = (uint8_t)(addr >> 0); fel_spi_xfer(ctx, pdat->swapbuf, pdat->swaplen, pdat->cmdlen, tx, 5, buf, n); addr += n; buf += n; count -= n; } break; default: break; } } static inline void spinor_sector_erase_4k(struct xfel_ctx_t * ctx, struct spinor_pdata_t * pdat, uint32_t addr) { uint8_t cbuf[256]; uint32_t clen = 0; switch(pdat->info.address_length) { case 3: cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_FAST; cbuf[clen++] = 1; cbuf[clen++] = pdat->info.opcode_write_enable; cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_FAST; cbuf[clen++] = 4; cbuf[clen++] = pdat->info.opcode_erase_4k; cbuf[clen++] = (uint8_t)(addr >> 16); cbuf[clen++] = (uint8_t)(addr >> 8); cbuf[clen++] = (uint8_t)(addr >> 0); cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_SPINOR_WAIT; cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_END; if(clen <= pdat->cmdlen) fel_chip_spi_run(ctx, cbuf, clen); break; case 4: cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_FAST; cbuf[clen++] = 1; cbuf[clen++] = pdat->info.opcode_write_enable; cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_FAST; cbuf[clen++] = 5; cbuf[clen++] = pdat->info.opcode_erase_4k; cbuf[clen++] = (uint8_t)(addr >> 24); cbuf[clen++] = (uint8_t)(addr >> 16); cbuf[clen++] = (uint8_t)(addr >> 8); cbuf[clen++] = (uint8_t)(addr >> 0); cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_SPINOR_WAIT; cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_END; if(clen <= pdat->cmdlen) fel_chip_spi_run(ctx, cbuf, clen); break; default: break; } } static inline void spinor_sector_erase_32k(struct xfel_ctx_t * ctx, struct spinor_pdata_t * pdat, uint32_t addr) { uint8_t cbuf[256]; uint32_t clen = 0; switch(pdat->info.address_length) { case 3: cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_FAST; cbuf[clen++] = 1; cbuf[clen++] = pdat->info.opcode_write_enable; cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_FAST; cbuf[clen++] = 4; cbuf[clen++] = pdat->info.opcode_erase_32k; cbuf[clen++] = (uint8_t)(addr >> 16); cbuf[clen++] = (uint8_t)(addr >> 8); cbuf[clen++] = (uint8_t)(addr >> 0); cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_SPINOR_WAIT; cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_END; if(clen <= pdat->cmdlen) fel_chip_spi_run(ctx, cbuf, clen); break; case 4: cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_FAST; cbuf[clen++] = 1; cbuf[clen++] = pdat->info.opcode_write_enable; cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_FAST; cbuf[clen++] = 5; cbuf[clen++] = pdat->info.opcode_erase_32k; cbuf[clen++] = (uint8_t)(addr >> 24); cbuf[clen++] = (uint8_t)(addr >> 16); cbuf[clen++] = (uint8_t)(addr >> 8); cbuf[clen++] = (uint8_t)(addr >> 0); cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_SPINOR_WAIT; cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_END; if(clen <= pdat->cmdlen) fel_chip_spi_run(ctx, cbuf, clen); break; default: break; } } static inline void spinor_sector_erase_64k(struct xfel_ctx_t * ctx, struct spinor_pdata_t * pdat, uint32_t addr) { uint8_t cbuf[256]; uint32_t clen = 0; switch(pdat->info.address_length) { case 3: cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_FAST; cbuf[clen++] = 1; cbuf[clen++] = pdat->info.opcode_write_enable; cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_FAST; cbuf[clen++] = 4; cbuf[clen++] = pdat->info.opcode_erase_64k; cbuf[clen++] = (uint8_t)(addr >> 16); cbuf[clen++] = (uint8_t)(addr >> 8); cbuf[clen++] = (uint8_t)(addr >> 0); cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_SPINOR_WAIT; cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_END; if(clen <= pdat->cmdlen) fel_chip_spi_run(ctx, cbuf, clen); break; case 4: cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_FAST; cbuf[clen++] = 1; cbuf[clen++] = pdat->info.opcode_write_enable; cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_FAST; cbuf[clen++] = 5; cbuf[clen++] = pdat->info.opcode_erase_64k; cbuf[clen++] = (uint8_t)(addr >> 24); cbuf[clen++] = (uint8_t)(addr >> 16); cbuf[clen++] = (uint8_t)(addr >> 8); cbuf[clen++] = (uint8_t)(addr >> 0); cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_SPINOR_WAIT; cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_END; if(clen <= pdat->cmdlen) fel_chip_spi_run(ctx, cbuf, clen); break; default: break; } } static inline void spinor_sector_erase_256k(struct xfel_ctx_t * ctx, struct spinor_pdata_t * pdat, uint32_t addr) { uint8_t cbuf[256]; uint32_t clen = 0; switch(pdat->info.address_length) { case 3: cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_FAST; cbuf[clen++] = 1; cbuf[clen++] = pdat->info.opcode_write_enable; cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_FAST; cbuf[clen++] = 4; cbuf[clen++] = pdat->info.opcode_erase_256k; cbuf[clen++] = (uint8_t)(addr >> 16); cbuf[clen++] = (uint8_t)(addr >> 8); cbuf[clen++] = (uint8_t)(addr >> 0); cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_SPINOR_WAIT; cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_END; if(clen <= pdat->cmdlen) fel_chip_spi_run(ctx, cbuf, clen); break; case 4: cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_FAST; cbuf[clen++] = 1; cbuf[clen++] = pdat->info.opcode_write_enable; cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_FAST; cbuf[clen++] = 5; cbuf[clen++] = pdat->info.opcode_erase_256k; cbuf[clen++] = (uint8_t)(addr >> 24); cbuf[clen++] = (uint8_t)(addr >> 16); cbuf[clen++] = (uint8_t)(addr >> 8); cbuf[clen++] = (uint8_t)(addr >> 0); cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_SPINOR_WAIT; cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_END; if(clen <= pdat->cmdlen) fel_chip_spi_run(ctx, cbuf, clen); break; default: break; } } static void spinor_helper_erase(struct xfel_ctx_t * ctx, struct spinor_pdata_t * pdat, uint64_t addr, uint64_t count) { uint64_t base; int64_t cnt; uint32_t esize, emask; uint32_t len; if(pdat->info.opcode_erase_4k != 0) esize = 4096; else if(pdat->info.opcode_erase_32k != 0) esize = 32768; else if(pdat->info.opcode_erase_32k != 0) esize = 65536; else if(pdat->info.opcode_erase_32k != 0) esize = 262144; else return; emask = esize - 1; base = addr & ~emask; cnt = (addr & emask) + count; cnt = (cnt + ((cnt & emask) ? esize : 0)) & ~emask; while(cnt > 0) { if((pdat->info.opcode_erase_256k != 0) && ((base & 0x3ffff) == 0) && (cnt >= 262144)) { len = 262144; spinor_sector_erase_256k(ctx, pdat, base); } else if((pdat->info.opcode_erase_64k != 0) && ((base & 0xffff) == 0) && (cnt >= 65536)) { len = 65536; spinor_sector_erase_64k(ctx, pdat, base); } else if((pdat->info.opcode_erase_32k != 0) && ((base & 0x7fff) == 0) && (cnt >= 32768)) { len = 32768; spinor_sector_erase_32k(ctx, pdat, base); } else if((pdat->info.opcode_erase_4k != 0) && ((base & 0xfff) == 0) && (cnt >= 4096)) { len = 4096; spinor_sector_erase_4k(ctx, pdat, base); } else return; base += len; cnt -= len; } } static void spinor_helper_write(struct xfel_ctx_t * ctx, struct spinor_pdata_t * pdat, uint32_t addr, uint8_t * buf, uint32_t count) { uint8_t * cbuf; int32_t clen; uint8_t * txbuf; int32_t txlen; int32_t granularity, n; if(pdat->info.write_granularity == 1) granularity = (count < 0x40000000) ? count : 0x40000000; else granularity = pdat->info.write_granularity; granularity = granularity > (pdat->swaplen - 5) ? (pdat->swaplen - 5) : granularity; switch(pdat->info.address_length) { case 3: cbuf = malloc(pdat->cmdlen); txbuf = malloc(pdat->swaplen); if(cbuf && txbuf) { while(count > 0) { clen = 0; txlen = 0; while((clen < (pdat->cmdlen - 19 - 1)) && (txlen < ((int32_t)pdat->swaplen - granularity - 4))) { n = count > granularity ? granularity : count; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_FAST; cbuf[clen++] = 1; cbuf[clen++] = pdat->info.opcode_write_enable; cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_TXBUF; cbuf[clen++] = ((pdat->swapbuf + txlen) >> 0) & 0xff; cbuf[clen++] = ((pdat->swapbuf + txlen) >> 8) & 0xff; cbuf[clen++] = ((pdat->swapbuf + txlen) >> 16) & 0xff; cbuf[clen++] = ((pdat->swapbuf + txlen) >> 24) & 0xff; cbuf[clen++] = ((n + 4) >> 0) & 0xff; cbuf[clen++] = ((n + 4) >> 8) & 0xff; cbuf[clen++] = ((n + 4) >> 16) & 0xff; cbuf[clen++] = ((n + 4) >> 24) & 0xff; cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_SPINOR_WAIT; cbuf[clen++] = SPI_CMD_DESELECT; txbuf[txlen++] = pdat->info.opcode_write; txbuf[txlen++] = (uint8_t)(addr >> 16); txbuf[txlen++] = (uint8_t)(addr >> 8); txbuf[txlen++] = (uint8_t)(addr >> 0); memcpy(&txbuf[txlen], buf, n); txlen += n; addr += n; buf += n; count -= n; } cbuf[clen++] = SPI_CMD_END; fel_write(ctx, pdat->swapbuf, txbuf, txlen); fel_chip_spi_run(ctx, cbuf, clen); } } if(cbuf) free(cbuf); if(txbuf) free(txbuf); break; case 4: cbuf = malloc(pdat->cmdlen); txbuf = malloc(pdat->swaplen); if(cbuf && txbuf) { while(count > 0) { clen = 0; txlen = 0; while((clen < (pdat->cmdlen - 19 - 1)) && (txlen < ((int32_t)pdat->swaplen - granularity - 5))) { n = count > granularity ? granularity : count; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_FAST; cbuf[clen++] = 1; cbuf[clen++] = pdat->info.opcode_write_enable; cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_TXBUF; cbuf[clen++] = ((pdat->swapbuf + txlen) >> 0) & 0xff; cbuf[clen++] = ((pdat->swapbuf + txlen) >> 8) & 0xff; cbuf[clen++] = ((pdat->swapbuf + txlen) >> 16) & 0xff; cbuf[clen++] = ((pdat->swapbuf + txlen) >> 24) & 0xff; cbuf[clen++] = ((n + 5) >> 0) & 0xff; cbuf[clen++] = ((n + 5) >> 8) & 0xff; cbuf[clen++] = ((n + 5) >> 16) & 0xff; cbuf[clen++] = ((n + 5) >> 24) & 0xff; cbuf[clen++] = SPI_CMD_DESELECT; cbuf[clen++] = SPI_CMD_SELECT; cbuf[clen++] = SPI_CMD_SPINOR_WAIT; cbuf[clen++] = SPI_CMD_DESELECT; txbuf[txlen++] = pdat->info.opcode_write; txbuf[txlen++] = (uint8_t)(addr >> 24); txbuf[txlen++] = (uint8_t)(addr >> 16); txbuf[txlen++] = (uint8_t)(addr >> 8); txbuf[txlen++] = (uint8_t)(addr >> 0); memcpy(&txbuf[txlen], buf, n); txlen += n; addr += n; buf += n; count -= n; } cbuf[clen++] = SPI_CMD_END; fel_write(ctx, pdat->swapbuf, txbuf, txlen); fel_chip_spi_run(ctx, cbuf, clen); } } if(cbuf) free(cbuf); if(txbuf) free(txbuf); break; default: break; } } int spinor_detect(struct xfel_ctx_t * ctx, char * name, uint64_t * capacity) { struct spinor_pdata_t pdat; if(spinor_helper_init(ctx, &pdat)) { if(name) strcpy(name, pdat.info.name); if(capacity) *capacity = pdat.info.capacity; return 1; } return 0; } int spinor_erase(struct xfel_ctx_t * ctx, uint64_t addr, uint64_t len) { struct spinor_pdata_t pdat; struct progress_t p; uint64_t base, n; int64_t cnt; uint32_t esize, emask; if(spinor_helper_init(ctx, &pdat)) { if(pdat.info.opcode_erase_4k != 0) esize = 4096; else if(pdat.info.opcode_erase_32k != 0) esize = 32768; else if(pdat.info.opcode_erase_32k != 0) esize = 65536; else if(pdat.info.opcode_erase_32k != 0) esize = 262144; else return 0; emask = esize - 1; base = addr & ~emask; cnt = (addr & emask) + len; cnt = (cnt + ((cnt & emask) ? esize : 0)) & ~emask; progress_start(&p, cnt); while(cnt > 0) { n = cnt > 262144 ? 262144 : cnt; spinor_helper_erase(ctx, &pdat, base, n); base += n; cnt -= n; progress_update(&p, n); } progress_stop(&p); return 1; } return 0; } int spinor_read(struct xfel_ctx_t * ctx, uint64_t addr, void * buf, uint64_t len) { struct spinor_pdata_t pdat; struct progress_t p; uint64_t n; if(spinor_helper_init(ctx, &pdat)) { progress_start(&p, len); while(len > 0) { n = len > 65536 ? 65536 : len; spinor_helper_read(ctx, &pdat, addr, buf, n); addr += n; len -= n; buf += n; progress_update(&p, n); } progress_stop(&p); return 1; } return 0; } int spinor_write(struct xfel_ctx_t * ctx, uint64_t addr, void * buf, uint64_t len) { struct spinor_pdata_t pdat; struct progress_t p; uint64_t base, n; int64_t cnt; uint32_t esize, emask; if(spinor_helper_init(ctx, &pdat)) { if(pdat.info.opcode_erase_4k != 0) esize = 4096; else if(pdat.info.opcode_erase_32k != 0) esize = 32768; else if(pdat.info.opcode_erase_32k != 0) esize = 65536; else if(pdat.info.opcode_erase_32k != 0) esize = 262144; else return 0; emask = esize - 1; base = addr & ~emask; cnt = (addr & emask) + len; cnt = (cnt + ((cnt & emask) ? esize : 0)) & ~emask; progress_start(&p, cnt); while(cnt > 0) { n = cnt > 262144 ? 262144 : cnt; spinor_helper_erase(ctx, &pdat, base, n); base += n; cnt -= n; progress_update(&p, n); } base = addr; cnt = len; progress_start(&p, cnt); while(cnt > 0) { n = cnt > 65536 ? 65536 : cnt; spinor_helper_write(ctx, &pdat, base, buf, n); base += n; cnt -= n; buf += n; progress_update(&p, n); } progress_stop(&p); return 1; } return 0; } xfel-1.3.5/spinor.h000066400000000000000000000007551512120643700141510ustar00rootroot00000000000000#ifndef __SPINOR_H__ #define __SPINOR_H__ #ifdef __cplusplus extern "C" { #endif #include int spinor_detect(struct xfel_ctx_t * ctx, char * name, uint64_t * capacity); int spinor_erase(struct xfel_ctx_t * ctx, uint64_t addr, uint64_t len); int spinor_read(struct xfel_ctx_t * ctx, uint64_t addr, void * buf, uint64_t len); int spinor_write(struct xfel_ctx_t * ctx, uint64_t addr, void * buf, uint64_t len); #ifdef __cplusplus } #endif #endif /* __SPINOR_H__ */ xfel-1.3.5/x.h000066400000000000000000000170621512120643700131050ustar00rootroot00000000000000#ifndef __X_H__ #define __X_H__ #ifdef __cplusplus extern "C" { #endif #if (defined(_WIN16) || defined(_WIN32) || defined(_WIN64)) && !defined(__WINDOWS__) # define __WINDOWS__ #endif #if defined(__linux__) || defined(__CYGWIN__) # include #elif defined(__MACH__) # include #elif defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__DragonFly__) # include #elif defined(__WINDOWS__) # include # include # include #else # error "platform not supported!" #endif #define _FILE_OFFSET_BITS 64 #include #include #include #include #include #include #include #include #include /* * byteorder */ static inline uint16_t __swab16(uint16_t x) { return ((x << 8) | ( x>> 8)); } static inline uint32_t __swab32(uint32_t x) { return ((x << 24) | (x >> 24) | \ ((x & (uint32_t)0x0000ff00UL)<<8) | \ ((x & (uint32_t)0x00ff0000UL)>>8)); } static inline uint64_t __swab64(uint64_t x) { return ((x << 56) | (x >> 56) | \ ((x & (uint64_t)0x000000000000ff00ULL)<<40) | \ ((x & (uint64_t)0x0000000000ff0000ULL)<<24) | \ ((x & (uint64_t)0x00000000ff000000ULL)<< 8) | \ ((x & (uint64_t)0x000000ff00000000ULL)>> 8) | \ ((x & (uint64_t)0x0000ff0000000000ULL)>>24) | \ ((x & (uint64_t)0x00ff000000000000ULL)>>40)); } static inline uint32_t __swahw32(uint32_t x) { return (((x & (uint32_t)0x0000ffffUL) << 16) | ((x & (uint32_t)0xffff0000UL) >> 16)); } static inline uint32_t __swahb32(uint32_t x) { return (((x & (uint32_t)0x00ff00ffUL) << 8) | ((x & (uint32_t)0xff00ff00UL) >> 8)); } #if BYTE_ORDER == BIG_ENDIAN #define cpu_to_le64(x) (__swab64((uint64_t)(x))) #define le64_to_cpu(x) (__swab64((uint64_t)(x))) #define cpu_to_le32(x) (__swab32((uint32_t)(x))) #define le32_to_cpu(x) (__swab32((uint32_t)(x))) #define cpu_to_le16(x) (__swab16((uint16_t)(x))) #define le16_to_cpu(x) (__swab16((uint16_t)(x))) #define cpu_to_be64(x) ((uint64_t)(x)) #define be64_to_cpu(x) ((uint64_t)(x)) #define cpu_to_be32(x) ((uint32_t)(x)) #define be32_to_cpu(x) ((uint32_t)(x)) #define cpu_to_be16(x) ((uint16_t)(x)) #define be16_to_cpu(x) ((uint16_t)(x)) #else #define cpu_to_le64(x) ((uint64_t)(x)) #define le64_to_cpu(x) ((uint64_t)(x)) #define cpu_to_le32(x) ((uint32_t)(x)) #define le32_to_cpu(x) ((uint32_t)(x)) #define cpu_to_le16(x) ((uint16_t)(x)) #define le16_to_cpu(x) ((uint16_t)(x)) #define cpu_to_be64(x) (__swab64((uint64_t)(x))) #define be64_to_cpu(x) (__swab64((uint64_t)(x))) #define cpu_to_be32(x) (__swab32((uint32_t)(x))) #define be32_to_cpu(x) (__swab32((uint32_t)(x))) #define cpu_to_be16(x) (__swab16((uint16_t)(x))) #define be16_to_cpu(x) (__swab16((uint16_t)(x))) #endif /* * Get unaligned */ static inline uint16_t __get_unaligned_le16(const uint8_t * p) { return (p[0] << 0) | (p[1] << 8); } static inline uint16_t __get_unaligned_be16(const uint8_t * p) { return (p[0] << 8) | (p[1] << 0); } static inline uint32_t __get_unaligned_le32(const uint8_t * p) { return (p[0] << 0) | (p[1] << 8) | (p[2] << 16) | (p[3] << 24); } static inline uint32_t __get_unaligned_be32(const uint8_t * p) { return (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | (p[3] << 0); } static inline uint64_t __get_unaligned_le64(const uint8_t * p) { return ((uint64_t)__get_unaligned_le32(p + 4) << 32) | __get_unaligned_le32(p); } static inline uint64_t __get_unaligned_be64(const uint8_t * p) { return ((uint64_t)__get_unaligned_be32(p) << 32) | __get_unaligned_be32(p + 4); } static inline uint16_t get_unaligned_le16(const void * p) { return __get_unaligned_le16((const uint8_t *)p); } static inline uint16_t get_unaligned_be16(const void * p) { return __get_unaligned_be16((const uint8_t *)p); } static inline uint32_t get_unaligned_le32(const void * p) { return __get_unaligned_le32((const uint8_t *)p); } static inline uint32_t get_unaligned_be32(const void * p) { return __get_unaligned_be32((const uint8_t *)p); } static inline uint64_t get_unaligned_le64(const void * p) { return __get_unaligned_le64((const uint8_t *)p); } static inline uint64_t get_unaligned_be64(const void * p) { return __get_unaligned_be64((const uint8_t *)p); } /* * Put unaligned */ static inline void __put_unaligned_le16(uint8_t * p, uint16_t val) { *p++ = val; *p++ = val >> 8; } static inline void __put_unaligned_be16(uint8_t * p, uint16_t val) { *p++ = val >> 8; *p++ = val; } static inline void __put_unaligned_le32(uint8_t * p, uint32_t val) { __put_unaligned_le16(p + 2, val >> 16); __put_unaligned_le16(p, val); } static inline void __put_unaligned_be32(uint8_t * p, uint32_t val) { __put_unaligned_be16(p, val >> 16); __put_unaligned_be16(p + 2, val); } static inline void __put_unaligned_le64(uint8_t * p, uint64_t val) { __put_unaligned_le32(p + 4, val >> 32); __put_unaligned_le32(p, val); } static inline void __put_unaligned_be64(uint8_t * p, uint64_t val) { __put_unaligned_be32(p, val >> 32); __put_unaligned_be32(p + 4, val); } static inline void put_unaligned_le16(void * p, uint16_t val) { __put_unaligned_le16((uint8_t *)p, val); } static inline void put_unaligned_be16(void * p, uint16_t val) { __put_unaligned_be16((uint8_t *)p, val); } static inline void put_unaligned_le32(void * p, uint32_t val) { __put_unaligned_le32((uint8_t *)p, val); } static inline void put_unaligned_be32(void * p, uint32_t val) { __put_unaligned_be32((uint8_t *)p, val); } static inline void put_unaligned_le64(void * p, uint64_t val) { __put_unaligned_le64((uint8_t *)p, val); } static inline void put_unaligned_be64(void * p, uint64_t val) { __put_unaligned_be64((uint8_t *)p, val); } /* * xdef */ #if !(defined(NULL)) #if defined(__cplusplus) #define NULL (0) #else #define NULL ((void *)0) #endif #endif #if !(defined(offsetof)) #if (defined(__GNUC__) && (__GNUC__ >= 4)) #define offsetof(type, member) __builtin_offsetof(type, member) #else #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif #endif #if !(defined(container_of)) #define container_of(ptr, type, member) ({const typeof(((type *)0)->member) *__mptr = (ptr); (type *)((char *)__mptr - offsetof(type,member));}) #endif #if !(defined(likely)) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define likely(expr) (__builtin_expect(!!(expr), 1)) #else #define likely(expr) (!!(expr)) #endif #endif #if !(defined(unlikely)) #if (defined(__GNUC__) && (__GNUC__ >= 3)) #define unlikely(expr) (__builtin_expect(!!(expr), 0)) #else #define unlikely(expr) (!!(expr)) #endif #endif #define XMAP(x, ia, ib, oa, ob) ((x - ia) * (ob - oa) / (ib - ia) + oa) #define XMIN(a, b) ({typeof(a) _amin = (a); typeof(b) _bmin = (b); (void)(&_amin == &_bmin); _amin < _bmin ? _amin : _bmin;}) #define XMAX(a, b) ({typeof(a) _amax = (a); typeof(b) _bmax = (b); (void)(&_amax == &_bmax); _amax > _bmax ? _amax : _bmax;}) #define XCLAMP(v, a, b) XMIN(XMAX(a, v), b) #define XFLOOR(x) ((x) > 0 ? (int)(x) : (int)((x) - 0.9999999999)) #define XROUND(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) #define XCEIL(x) ((x) > 0 ? (int)((x) + 0.9999999999) : (int)(x)) #define XDIV255(x) ((((int)(x) + 1) * 257) >> 16) #define ARRAY_SIZE(array) (sizeof(array) / sizeof((array)[0])) #define X(...) ("" #__VA_ARGS__ "") #ifdef __cplusplus } #endif #endif /* __X_H__ */