Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-module-and-param
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 7 Apr 2009 14:42:25 +0000 (07:42 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 7 Apr 2009 14:42:25 +0000 (07:42 -0700)
* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-module-and-param:
  Revert "module: remove the SHF_ALLOC flag on the __versions section."

265 files changed:
Documentation/isdn/README.gigaset
Documentation/video4linux/pxa_camera.txt [new file with mode: 0644]
Documentation/video4linux/v4l2-framework.txt
MAINTAINERS
arch/arm/mach-mx1/Makefile
arch/arm/mach-mx1/devices.c
arch/arm/mach-mx1/ksym_mx1.c [new file with mode: 0644]
arch/arm/mach-mx1/mx1_camera_fiq.S [new file with mode: 0644]
arch/arm/mach-mx3/clock.c
arch/arm/plat-mxc/include/mach/memory.h
arch/arm/plat-mxc/include/mach/mx1_camera.h [new file with mode: 0644]
arch/powerpc/Kconfig
arch/powerpc/boot/dts/ksi8560.dts
arch/powerpc/boot/dts/pq2fads.dts
arch/powerpc/boot/dts/sbc8548.dts
arch/powerpc/boot/dts/sbc8560.dts
arch/powerpc/boot/dts/socrates.dts
arch/powerpc/boot/dts/stx_gp3_8560.dts
arch/powerpc/boot/dts/tqm8540.dts
arch/powerpc/boot/dts/tqm8541.dts
arch/powerpc/boot/dts/tqm8555.dts
arch/powerpc/boot/dts/tqm8560.dts
arch/powerpc/configs/pseries_defconfig
arch/powerpc/include/asm/lppaca.h
arch/powerpc/include/asm/mpic.h
arch/powerpc/include/asm/ps3fb.h
arch/powerpc/include/asm/pte-common.h
arch/powerpc/include/asm/reg.h
arch/powerpc/include/asm/reg_booke.h
arch/powerpc/include/asm/rtas.h
arch/powerpc/include/asm/sfp-machine.h
arch/powerpc/include/asm/systbl.h
arch/powerpc/include/asm/unistd.h
arch/powerpc/kernel/fpu.S
arch/powerpc/kernel/ftrace.c
arch/powerpc/kernel/irq.c
arch/powerpc/kernel/lparcfg.c
arch/powerpc/kernel/misc_64.S
arch/powerpc/kernel/prom_init.c
arch/powerpc/kernel/ptrace32.c
arch/powerpc/kernel/setup-common.c
arch/powerpc/sysdev/mpic.c
drivers/isdn/gigaset/bas-gigaset.c
drivers/isdn/gigaset/interface.c
drivers/media/dvb/dvb-usb/Kconfig
drivers/media/dvb/dvb-usb/af9015.c
drivers/media/dvb/dvb-usb/af9015.h
drivers/media/dvb/dvb-usb/ce6230.c
drivers/media/dvb/dvb-usb/dvb-usb-ids.h
drivers/media/dvb/firewire/firedtv-avc.c
drivers/media/dvb/frontends/Kconfig
drivers/media/dvb/frontends/Makefile
drivers/media/dvb/frontends/au8522_decoder.c
drivers/media/dvb/frontends/lgs8gxx.c [new file with mode: 0644]
drivers/media/dvb/frontends/lgs8gxx.h [new file with mode: 0644]
drivers/media/dvb/frontends/lgs8gxx_priv.h [new file with mode: 0644]
drivers/media/radio/dsbr100.c
drivers/media/radio/radio-aimslab.c
drivers/media/radio/radio-aztech.c
drivers/media/radio/radio-gemtek-pci.c
drivers/media/radio/radio-gemtek.c
drivers/media/radio/radio-maestro.c
drivers/media/radio/radio-maxiradio.c
drivers/media/radio/radio-mr800.c
drivers/media/radio/radio-rtrack2.c
drivers/media/radio/radio-sf16fmi.c
drivers/media/radio/radio-sf16fmr2.c
drivers/media/radio/radio-si470x.c
drivers/media/radio/radio-terratec.c
drivers/media/radio/radio-trust.c
drivers/media/radio/radio-typhoon.c
drivers/media/radio/radio-zoltrix.c
drivers/media/video/Kconfig
drivers/media/video/Makefile
drivers/media/video/adv7170.c
drivers/media/video/adv7175.c
drivers/media/video/au0828/Kconfig
drivers/media/video/au0828/au0828-cards.c
drivers/media/video/au0828/au0828-core.c
drivers/media/video/au0828/au0828-i2c.c
drivers/media/video/au0828/au0828-reg.h
drivers/media/video/au0828/au0828-video.c
drivers/media/video/au0828/au0828.h
drivers/media/video/bt819.c
drivers/media/video/bt856.c
drivers/media/video/bt866.c
drivers/media/video/bt8xx/bttv-cards.c
drivers/media/video/bt8xx/bttv-driver.c
drivers/media/video/bt8xx/bttvp.h
drivers/media/video/cafe_ccic.c
drivers/media/video/cs5345.c
drivers/media/video/cs53l32a.c
drivers/media/video/cx18/cx18-audio.c
drivers/media/video/cx18/cx18-av-core.c
drivers/media/video/cx18/cx18-av-core.h
drivers/media/video/cx18/cx18-driver.c
drivers/media/video/cx18/cx18-fileops.c
drivers/media/video/cx18/cx18-gpio.c
drivers/media/video/cx18/cx18-i2c.c
drivers/media/video/cx18/cx18-ioctl.c
drivers/media/video/cx18/cx18-video.c
drivers/media/video/cx231xx/Kconfig [new file with mode: 0644]
drivers/media/video/cx231xx/Makefile [new file with mode: 0644]
drivers/media/video/cx231xx/cx231xx-audio.c [new file with mode: 0644]
drivers/media/video/cx231xx/cx231xx-avcore.c [new file with mode: 0644]
drivers/media/video/cx231xx/cx231xx-cards.c [new file with mode: 0644]
drivers/media/video/cx231xx/cx231xx-conf-reg.h [new file with mode: 0644]
drivers/media/video/cx231xx/cx231xx-core.c [new file with mode: 0644]
drivers/media/video/cx231xx/cx231xx-dvb.c [new file with mode: 0644]
drivers/media/video/cx231xx/cx231xx-i2c.c [new file with mode: 0644]
drivers/media/video/cx231xx/cx231xx-input.c [new file with mode: 0644]
drivers/media/video/cx231xx/cx231xx-pcb-cfg.c [new file with mode: 0644]
drivers/media/video/cx231xx/cx231xx-pcb-cfg.h [new file with mode: 0644]
drivers/media/video/cx231xx/cx231xx-reg.h [new file with mode: 0644]
drivers/media/video/cx231xx/cx231xx-vbi.c [new file with mode: 0644]
drivers/media/video/cx231xx/cx231xx-vbi.h [new file with mode: 0644]
drivers/media/video/cx231xx/cx231xx-video.c [new file with mode: 0644]
drivers/media/video/cx231xx/cx231xx.h [new file with mode: 0644]
drivers/media/video/cx23885/cx23885-cards.c
drivers/media/video/cx23885/cx23885-core.c
drivers/media/video/cx23885/cx23885-dvb.c
drivers/media/video/cx23885/cx23885-video.c
drivers/media/video/cx23885/cx23885.h
drivers/media/video/cx25840/cx25840-audio.c
drivers/media/video/cx25840/cx25840-core.c
drivers/media/video/cx25840/cx25840-core.h
drivers/media/video/cx25840/cx25840-firmware.c
drivers/media/video/cx88/cx88-cards.c
drivers/media/video/cx88/cx88-core.c
drivers/media/video/cx88/cx88-dvb.c
drivers/media/video/cx88/cx88-video.c
drivers/media/video/cx88/cx88.h
drivers/media/video/em28xx/em28xx-cards.c
drivers/media/video/em28xx/em28xx-core.c
drivers/media/video/em28xx/em28xx-i2c.c
drivers/media/video/em28xx/em28xx-video.c
drivers/media/video/em28xx/em28xx.h
drivers/media/video/gspca/gspca.c
drivers/media/video/gspca/gspca.h
drivers/media/video/gspca/m5602/Makefile
drivers/media/video/gspca/m5602/m5602_bridge.h
drivers/media/video/gspca/m5602/m5602_core.c
drivers/media/video/gspca/m5602/m5602_mt9m111.c
drivers/media/video/gspca/m5602/m5602_mt9m111.h
drivers/media/video/gspca/m5602/m5602_ov9650.c
drivers/media/video/gspca/m5602/m5602_ov9650.h
drivers/media/video/gspca/m5602/m5602_po1030.c
drivers/media/video/gspca/m5602/m5602_po1030.h
drivers/media/video/gspca/m5602/m5602_s5k4aa.c
drivers/media/video/gspca/m5602/m5602_s5k4aa.h
drivers/media/video/gspca/m5602/m5602_s5k83a.c
drivers/media/video/gspca/m5602/m5602_s5k83a.h
drivers/media/video/gspca/m5602/m5602_sensor.h
drivers/media/video/gspca/sq905.c
drivers/media/video/gspca/vc032x.c
drivers/media/video/ivtv/ivtv-driver.c
drivers/media/video/ivtv/ivtv-fileops.c
drivers/media/video/ivtv/ivtv-gpio.c
drivers/media/video/ivtv/ivtv-i2c.c
drivers/media/video/ivtv/ivtv-ioctl.c
drivers/media/video/ivtv/ivtv-routing.c
drivers/media/video/ks0127.c
drivers/media/video/m52790.c
drivers/media/video/msp3400-driver.c
drivers/media/video/msp3400-driver.h
drivers/media/video/msp3400-kthreads.c
drivers/media/video/mt9m001.c
drivers/media/video/mt9t031.c
drivers/media/video/mx1_camera.c [new file with mode: 0644]
drivers/media/video/mx3_camera.c
drivers/media/video/mxb.c
drivers/media/video/ov772x.c
drivers/media/video/pvrusb2/pvrusb2-audio.c
drivers/media/video/pvrusb2/pvrusb2-cs53l32a.c
drivers/media/video/pvrusb2/pvrusb2-ctrl.c
drivers/media/video/pvrusb2/pvrusb2-cx2584x-v4l.c
drivers/media/video/pvrusb2/pvrusb2-hdw.c
drivers/media/video/pvrusb2/pvrusb2-i2c-core.c
drivers/media/video/pvrusb2/pvrusb2-sysfs.c
drivers/media/video/pvrusb2/pvrusb2-video-v4l.c
drivers/media/video/pvrusb2/pvrusb2-wm8775.c
drivers/media/video/pwc/Kconfig
drivers/media/video/pxa_camera.c
drivers/media/video/s2255drv.c
drivers/media/video/saa7110.c
drivers/media/video/saa7115.c
drivers/media/video/saa7127.c
drivers/media/video/saa7134/saa6752hs.c
drivers/media/video/saa7134/saa7134-cards.c
drivers/media/video/saa7134/saa7134-core.c
drivers/media/video/saa7134/saa7134-video.c
drivers/media/video/saa7134/saa7134.h
drivers/media/video/saa717x.c
drivers/media/video/saa7185.c
drivers/media/video/saa7191.c
drivers/media/video/soc_camera.c
drivers/media/video/tda9840.c
drivers/media/video/tea6415c.c
drivers/media/video/tea6420.c
drivers/media/video/tuner-core.c
drivers/media/video/tvaudio.c
drivers/media/video/tvp5150.c
drivers/media/video/upd64031a.c
drivers/media/video/upd64083.c
drivers/media/video/usbvision/usbvision-core.c
drivers/media/video/usbvision/usbvision-i2c.c
drivers/media/video/usbvision/usbvision-video.c
drivers/media/video/uvc/Kconfig
drivers/media/video/v4l1-compat.c
drivers/media/video/v4l2-common.c
drivers/media/video/v4l2-dev.c
drivers/media/video/v4l2-ioctl.c
drivers/media/video/v4l2-subdev.c [deleted file]
drivers/media/video/vino.c
drivers/media/video/vp27smpx.c
drivers/media/video/vpx3220.c
drivers/media/video/w9968cf.c
drivers/media/video/w9968cf.h
drivers/media/video/wm8775.c
drivers/media/video/zoran/zoran.h
drivers/media/video/zoran/zoran_card.c
drivers/media/video/zoran/zoran_device.c
drivers/media/video/zoran/zoran_driver.c
drivers/media/video/zr364xx.c
drivers/net/Kconfig
drivers/net/b44.c
drivers/net/bnx2.c
drivers/net/bnx2.h
drivers/net/bnx2_fw.h
drivers/net/bnx2_fw2.h [deleted file]
drivers/net/e1000/e1000_main.c
drivers/net/forcedeth.c
drivers/net/ibm_newemac/core.c
drivers/net/myri_code.h [deleted file]
drivers/net/myri_sbus.c
drivers/net/pcmcia/axnet_cs.c
drivers/net/smsc911x.c
drivers/net/virtio_net.c
drivers/net/vxge/vxge-main.c
drivers/serial/cpm_uart/cpm_uart_core.c
drivers/serial/pmac_zilog.c
drivers/video/fsl-diu-fb.c
drivers/watchdog/wdrtas.c
firmware/Makefile
firmware/WHENCE
firmware/bnx2/bnx2-mips-06-4.6.16.fw.ihex [new file with mode: 0644]
firmware/bnx2/bnx2-mips-09-4.6.17.fw.ihex [new file with mode: 0644]
firmware/bnx2/bnx2-rv2p-06-4.6.16.fw.ihex [new file with mode: 0644]
firmware/bnx2/bnx2-rv2p-09-4.6.15.fw.ihex [new file with mode: 0644]
firmware/myricom/lanai.bin.ihex [new file with mode: 0644]
fs/ramfs/inode.c
include/linux/fsl_devices.h
include/linux/i2c-id.h
include/linux/videodev2.h
include/media/msp3400.h
include/media/ov772x.h
include/media/saa7146.h
include/media/tvaudio.h
include/media/v4l2-common.h
include/media/v4l2-i2c-drv-legacy.h [deleted file]
include/media/v4l2-i2c-drv.h
include/media/v4l2-subdev.h
net/802/fddi.c
net/ipv6/xfrm6_output.c
net/socket.c

index 55b2852..02c0e93 100644 (file)
@@ -61,24 +61,28 @@ GigaSet 307x Device Driver
      ---------------------
 2.1. Modules
      -------
-     To get the device working, you have to load the proper kernel module. You
-     can do this using
-         modprobe modulename
-     where modulename is ser_gigaset (M101), usb_gigaset (M105), or
-     bas_gigaset (direct USB connection to the base).
+     For the devices to work, the proper kernel modules have to be loaded.
+     This normally happens automatically when the system detects the USB
+     device (base, M105) or when the line discipline is attached (M101). It
+     can also be triggered manually using the modprobe(8) command, for example
+     for troubleshooting or to pass module parameters.
 
      The module ser_gigaset provides a serial line discipline N_GIGASET_M101
-     which drives the device through the regular serial line driver. To use it,
-     run the Gigaset M101 daemon "gigasetm101d" (also available from
-     http://sourceforge.net/projects/gigaset307x/) with the device file of the
-     RS232 port to the M101 as an argument, for example:
-        gigasetm101d /dev/ttyS1
-     This will open the device file, set its line discipline to N_GIGASET_M101,
-     and then sleep in the background, keeping the device open so that the
-     line discipline remains active. To deactivate it, kill the daemon, for
-     example with
-        killall gigasetm101d
-     before disconnecting the device.
+     which drives the device through the regular serial line driver. It must
+     be attached to the serial line to which the M101 is connected with the
+     ldattach(8) command (requires util-linux-ng release 2.14 or later), for
+     example:
+        ldattach GIGASET_M101 /dev/ttyS1
+     This will open the device file, attach the line discipline to it, and
+     then sleep in the background, keeping the device open so that the line
+     discipline remains active. To deactivate it, kill the daemon, for example
+     with
+        killall ldattach
+     before disconnecting the device. To have this happen automatically at
+     system startup/shutdown on an LSB compatible system, create and activate
+     an appropriate LSB startup script /etc/init.d/gigaset. (The init name
+     'gigaset' is officially assigned to this project by LANANA.)
+     Alternatively, just add the 'ldattach' command line to /etc/rc.local.
 
 2.2. Device nodes for user space programs
      ------------------------------------
@@ -194,10 +198,11 @@ GigaSet 307x Device Driver
      operation (for wireless access to the base), but are needed for access
      to the M105's own configuration mode (registration to the base, baudrate
      and line format settings, device status queries) via the gigacontr
-     utility. Their use is disabled in the driver by default for safety
-     reasons but can be enabled by setting the kernel configuration option
-     "Support for undocumented USB requests" (GIGASET_UNDOCREQ) to "Y" and
-     recompiling.
+     utility. Their use is controlled by the kernel configuration option
+     "Support for undocumented USB requests" (CONFIG_GIGASET_UNDOCREQ). If you
+     encounter error code -ENOTTY when trying to use some features of the
+     M105, try setting that option to "y" via 'make {x,menu}config' and
+     recompiling the driver.
 
 
 3.   Troubleshooting
@@ -228,6 +233,13 @@ GigaSet 307x Device Driver
      Solution:
         Select Unimodem mode for all DECT data adapters. (see section 2.4.)
 
+     Problem:
+        You want to configure your USB DECT data adapter (M105) but gigacontr
+        reports an error: "/dev/ttyGU0: Inappropriate ioctl for device".
+     Solution:
+        Recompile the usb_gigaset driver with the kernel configuration option
+        CONFIG_GIGASET_UNDOCREQ set to 'y'. (see section 2.6.)
+
 3.2. Telling the driver to provide more information
      ----------------------------------------------
      Building the driver with the "Gigaset debugging" kernel configuration
diff --git a/Documentation/video4linux/pxa_camera.txt b/Documentation/video4linux/pxa_camera.txt
new file mode 100644 (file)
index 0000000..b1137f9
--- /dev/null
@@ -0,0 +1,125 @@
+                              PXA-Camera Host Driver
+                              ======================
+
+Constraints
+-----------
+  a) Image size for YUV422P format
+     All YUV422P images are enforced to have width x height % 16 = 0.
+     This is due to DMA constraints, which transfers only planes of 8 byte
+     multiples.
+
+
+Global video workflow
+---------------------
+  a) QCI stopped
+     Initialy, the QCI interface is stopped.
+     When a buffer is queued (pxa_videobuf_ops->buf_queue), the QCI starts.
+
+  b) QCI started
+     More buffers can be queued while the QCI is started without halting the
+     capture.  The new buffers are "appended" at the tail of the DMA chain, and
+     smoothly captured one frame after the other.
+
+     Once a buffer is filled in the QCI interface, it is marked as "DONE" and
+     removed from the active buffers list. It can be then requeud or dequeued by
+     userland application.
+
+     Once the last buffer is filled in, the QCI interface stops.
+
+
+DMA usage
+---------
+  a) DMA flow
+     - first buffer queued for capture
+       Once a first buffer is queued for capture, the QCI is started, but data
+       transfer is not started. On "End Of Frame" interrupt, the irq handler
+       starts the DMA chain.
+     - capture of one videobuffer
+       The DMA chain starts transfering data into videobuffer RAM pages.
+       When all pages are transfered, the DMA irq is raised on "ENDINTR" status
+     - finishing one videobuffer
+       The DMA irq handler marks the videobuffer as "done", and removes it from
+       the active running queue
+       Meanwhile, the next videobuffer (if there is one), is transfered by DMA
+     - finishing the last videobuffer
+       On the DMA irq of the last videobuffer, the QCI is stopped.
+
+  b) DMA prepared buffer will have this structure
+
+     +------------+-----+---------------+-----------------+
+     | desc-sg[0] | ... | desc-sg[last] | finisher/linker |
+     +------------+-----+---------------+-----------------+
+
+     This structure is pointed by dma->sg_cpu.
+     The descriptors are used as follows :
+      - desc-sg[i]: i-th descriptor, transfering the i-th sg
+        element to the video buffer scatter gather
+      - finisher: has ddadr=DADDR_STOP, dcmd=ENDIRQEN
+      - linker: has ddadr= desc-sg[0] of next video buffer, dcmd=0
+
+     For the next schema, let's assume d0=desc-sg[0] .. dN=desc-sg[N],
+     "f" stands for finisher and "l" for linker.
+     A typical running chain is :
+
+         Videobuffer 1         Videobuffer 2
+     +---------+----+---+  +----+----+----+---+
+     | d0 | .. | dN | l |  | d0 | .. | dN | f |
+     +---------+----+-|-+  ^----+----+----+---+
+                      |    |
+                      +----+
+
+     After the chaining is finished, the chain looks like :
+
+         Videobuffer 1         Videobuffer 2         Videobuffer 3
+     +---------+----+---+  +----+----+----+---+  +----+----+----+---+
+     | d0 | .. | dN | l |  | d0 | .. | dN | l |  | d0 | .. | dN | f |
+     +---------+----+-|-+  ^----+----+----+-|-+  ^----+----+----+---+
+                      |    |                |    |
+                      +----+                +----+
+                                           new_link
+
+  c) DMA hot chaining timeslice issue
+
+     As DMA chaining is done while DMA _is_ running, the linking may be done
+     while the DMA jumps from one Videobuffer to another. On the schema, that
+     would be a problem if the following sequence is encountered :
+
+      - DMA chain is Videobuffer1 + Videobuffer2
+      - pxa_videobuf_queue() is called to queue Videobuffer3
+      - DMA controller finishes Videobuffer2, and DMA stops
+      =>
+         Videobuffer 1         Videobuffer 2
+     +---------+----+---+  +----+----+----+---+
+     | d0 | .. | dN | l |  | d0 | .. | dN | f |
+     +---------+----+-|-+  ^----+----+----+-^-+
+                      |    |                |
+                      +----+                +-- DMA DDADR loads DDADR_STOP
+
+      - pxa_dma_add_tail_buf() is called, the Videobuffer2 "finisher" is
+        replaced by a "linker" to Videobuffer3 (creation of new_link)
+      - pxa_videobuf_queue() finishes
+      - the DMA irq handler is called, which terminates Videobuffer2
+      - Videobuffer3 capture is not scheduled on DMA chain (as it stopped !!!)
+
+         Videobuffer 1         Videobuffer 2         Videobuffer 3
+     +---------+----+---+  +----+----+----+---+  +----+----+----+---+
+     | d0 | .. | dN | l |  | d0 | .. | dN | l |  | d0 | .. | dN | f |
+     +---------+----+-|-+  ^----+----+----+-|-+  ^----+----+----+---+
+                      |    |                |    |
+                      +----+                +----+
+                                           new_link
+                                          DMA DDADR still is DDADR_STOP
+
+      - pxa_camera_check_link_miss() is called
+        This checks if the DMA is finished and a buffer is still on the
+        pcdev->capture list. If that's the case, the capture will be restarted,
+        and Videobuffer3 is scheduled on DMA chain.
+      - the DMA irq handler finishes
+
+     Note: if DMA stops just after pxa_camera_check_link_miss() reads DDADR()
+     value, we have the guarantee that the DMA irq handler will be called back
+     when the DMA will finish the buffer, and pxa_camera_check_link_miss() will
+     be called again, to reschedule Videobuffer3.
+
+--
+Author: Robert Jarzmik <robert.jarzmik@free.fr>
index a311773..854808b 100644 (file)
@@ -90,7 +90,7 @@ up before calling v4l2_device_register then it will be untouched. If dev is
 NULL, then you *must* setup v4l2_dev->name before calling v4l2_device_register.
 
 The first 'dev' argument is normally the struct device pointer of a pci_dev,
-usb_device or platform_device. It is rare for dev to be NULL, but it happens
+usb_interface or platform_device. It is rare for dev to be NULL, but it happens
 with ISA devices or when one device creates multiple PCI devices, thus making
 it impossible to associate v4l2_dev with a particular parent.
 
@@ -351,17 +351,6 @@ And this to go from an i2c_client to a v4l2_subdev struct:
 
        struct v4l2_subdev *sd = i2c_get_clientdata(client);
 
-Finally you need to make a command function to make driver->command()
-call the right subdev_ops functions:
-
-static int subdev_command(struct i2c_client *client, unsigned cmd, void *arg)
-{
-       return v4l2_subdev_command(i2c_get_clientdata(client), cmd, arg);
-}
-
-If driver->command is never used then you can leave this out. Eventually the
-driver->command usage should be removed from v4l.
-
 Make sure to call v4l2_device_unregister_subdev(sd) when the remove() callback
 is called. This will unregister the sub-device from the bridge driver. It is
 safe to call this even if the sub-device was never registered.
@@ -375,14 +364,12 @@ from the remove() callback ensures that this is always done correctly.
 
 The bridge driver also has some helper functions it can use:
 
-struct v4l2_subdev *sd = v4l2_i2c_new_subdev(adapter, "module_foo", "chipid", 0x36);
+struct v4l2_subdev *sd = v4l2_i2c_new_subdev(v4l2_dev, adapter,
+              "module_foo", "chipid", 0x36);
 
 This loads the given module (can be NULL if no module needs to be loaded) and
 calls i2c_new_device() with the given i2c_adapter and chip/address arguments.
-If all goes well, then it registers the subdev with the v4l2_device. It gets
-the v4l2_device by calling i2c_get_adapdata(adapter), so you should make sure
-to call i2c_set_adapdata(adapter, v4l2_device) when you setup the i2c_adapter
-in your driver.
+If all goes well, then it registers the subdev with the v4l2_device.
 
 You can also use v4l2_i2c_new_probed_subdev() which is very similar to
 v4l2_i2c_new_subdev(), except that it has an array of possible I2C addresses
index 9673cd2..914f283 100644 (file)
@@ -1544,7 +1544,6 @@ S:        Maintained
 DVB SUBSYSTEM AND DRIVERS
 P:     LinuxTV.org Project
 M:     linux-media@vger.kernel.org
-L:     linux-dvb@linuxtv.org (subscription required)
 W:     http://linuxtv.org/
 T:     git kernel.org:/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
 S:     Maintained
index 82f1309..7f86fe0 100644 (file)
@@ -6,6 +6,9 @@
 
 obj-y                  += generic.o clock.o devices.o
 
+# Support for CMOS sensor interface
+obj-$(CONFIG_MX1_VIDEO)        += ksym_mx1.o mx1_camera_fiq.o
+
 # Specific board support
 obj-$(CONFIG_ARCH_MX1ADS) += mx1ads.o
 obj-$(CONFIG_MACH_SCB9328) += scb9328.o
\ No newline at end of file
index 97f42d9..76d1ffb 100644 (file)
@@ -44,7 +44,7 @@ static struct resource imx_csi_resources[] = {
 static u64 imx_csi_dmamask = 0xffffffffUL;
 
 struct platform_device imx_csi_device = {
-       .name           = "imx-csi",
+       .name           = "mx1-camera",
        .id             = 0, /* This is used to put cameras on this interface */
        .dev            = {
                .dma_mask = &imx_csi_dmamask,
diff --git a/arch/arm/mach-mx1/ksym_mx1.c b/arch/arm/mach-mx1/ksym_mx1.c
new file mode 100644 (file)
index 0000000..b09ee12
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+ * Exported ksyms of ARCH_MX1
+ *
+ * Copyright (C) 2008, Darius Augulis <augulis.darius@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include <linux/platform_device.h>
+#include <linux/module.h>
+
+#include <mach/mx1_camera.h>
+
+/* IMX camera FIQ handler */
+EXPORT_SYMBOL(mx1_camera_sof_fiq_start);
+EXPORT_SYMBOL(mx1_camera_sof_fiq_end);
diff --git a/arch/arm/mach-mx1/mx1_camera_fiq.S b/arch/arm/mach-mx1/mx1_camera_fiq.S
new file mode 100644 (file)
index 0000000..9c69aa6
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+ *  Copyright (C) 2008 Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
+ *
+ *  Based on linux/arch/arm/lib/floppydma.S
+ *      Copyright (C) 1995, 1996 Russell King
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+#include <linux/linkage.h>
+#include <asm/assembler.h>
+
+               .text
+               .global mx1_camera_sof_fiq_end
+               .global mx1_camera_sof_fiq_start
+mx1_camera_sof_fiq_start:
+               @ enable dma
+               ldr     r12, [r9]
+               orr     r12, r12, #0x00000001
+               str     r12, [r9]
+               @ unmask DMA interrupt
+               ldr     r12, [r8]
+               bic     r12, r12, r13
+               str     r12, [r8]
+               @ disable SOF interrupt
+               ldr     r12, [r10]
+               bic     r12, r12, #0x00010000
+               str     r12, [r10]
+               @ clear SOF flag
+               mov     r12, #0x00010000
+               str     r12, [r11]
+               @ return from FIQ
+               subs    pc, lr, #4
+mx1_camera_sof_fiq_end:
index ca46f48..9957a11 100644 (file)
@@ -533,7 +533,7 @@ static struct clk_lookup lookups[] __initdata = {
        _REGISTER_CLOCK(NULL, "kpp", kpp_clk)
        _REGISTER_CLOCK("fsl-usb2-udc", "usb", usb_clk1)
        _REGISTER_CLOCK("fsl-usb2-udc", "usb_ahb", usb_clk2)
-       _REGISTER_CLOCK("mx3-camera.0", "csi", csi_clk)
+       _REGISTER_CLOCK("mx3-camera.0", NULL, csi_clk)
        _REGISTER_CLOCK("imx-uart.0", NULL, uart1_clk)
        _REGISTER_CLOCK("imx-uart.1", NULL, uart2_clk)
        _REGISTER_CLOCK("imx-uart.2", NULL, uart3_clk)
index e0783e6..eca37d0 100644 (file)
 #define PHYS_OFFSET            UL(0x80000000)
 #endif
 
+#if defined(CONFIG_MX1_VIDEO)
+/*
+ * Increase size of DMA-consistent memory region.
+ * This is required for i.MX camera driver to capture at least four VGA frames.
+ */
+#define CONSISTENT_DMA_SIZE SZ_4M
+#endif /* CONFIG_MX1_VIDEO */
+
 #endif /* __ASM_ARCH_MXC_MEMORY_H__ */
diff --git a/arch/arm/plat-mxc/include/mach/mx1_camera.h b/arch/arm/plat-mxc/include/mach/mx1_camera.h
new file mode 100644 (file)
index 0000000..4fd6c70
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+ * mx1_camera.h - i.MX1/i.MXL camera driver header file
+ *
+ * Copyright (c) 2008, Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
+ * Copyright (C) 2009, Darius Augulis <augulis.darius@gmail.com>
+ *
+ * Based on PXA camera.h file:
+ * Copyright (C) 2003, Intel Corporation
+ * Copyright (C) 2008, Guennadi Liakhovetski <kernel@pengutronix.de>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#ifndef __ASM_ARCH_CAMERA_H_
+#define __ASM_ARCH_CAMERA_H_
+
+#define MX1_CAMERA_DATA_HIGH   1
+#define MX1_CAMERA_PCLK_RISING 2
+#define MX1_CAMERA_VSYNC_HIGH  4
+
+extern unsigned char mx1_camera_sof_fiq_start, mx1_camera_sof_fiq_end;
+
+/**
+ * struct mx1_camera_pdata - i.MX1/i.MXL camera platform data
+ * @mclk_10khz:        master clock frequency in 10kHz units
+ * @flags:     MX1 camera platform flags
+ */
+struct mx1_camera_pdata {
+       unsigned long mclk_10khz;
+       unsigned long flags;
+};
+
+#endif /* __ASM_ARCH_CAMERA_H_ */
index 9e08d8a..5b50e1a 100644 (file)
@@ -316,7 +316,7 @@ config ARCH_ENABLE_MEMORY_HOTREMOVE
 
 config KEXEC
        bool "kexec system call (EXPERIMENTAL)"
-       depends on BOOK3S && EXPERIMENTAL
+       depends on PPC_BOOK3S && EXPERIMENTAL
        help
          kexec is a system call that implements the ability to shutdown your
          current kernel, and to start another kernel.  It is like a reboot
@@ -775,6 +775,7 @@ config LOWMEM_CAM_NUM_BOOL
          Say N here unless you know what you are doing.
 
 config LOWMEM_CAM_NUM
+       depends on FSL_BOOKE
        int "Number of CAMs to use to map low memory" if LOWMEM_CAM_NUM_BOOL
        default 3
 
index 308fe7c..c9cfd37 100644 (file)
                bus-frequency = <0>;                            /* Fixed by bootwrapper */
 
                memory-controller@2000 {
-                       compatible = "fsl,8540-memory-controller";
+                       compatible = "fsl,mpc8540-memory-controller";
                        reg = <0x2000 0x1000>;
                        interrupt-parent = <&mpic>;
                        interrupts = <0x12 0x2>;
                };
 
                L2: l2-cache-controller@20000 {
-                       compatible = "fsl,8540-l2-cache-controller";
+                       compatible = "fsl,mpc8540-l2-cache-controller";
                        reg = <0x20000 0x1000>;
                        cache-line-size = <0x20>;               /* 32 bytes */
                        cache-size = <0x40000>;                 /* L2, 256K */
index b2d6109..0bb6693 100644 (file)
        #address-cells = <1>;
        #size-cells = <1>;
 
+       aliases {
+               ethernet0 = &enet0;
+               ethernet1 = &enet1;
+               serial0 = &serial0;
+               serial1 = &serial1;
+               pci0 = &pci0;
+       };
+
        cpus {
                #address-cells = <1>;
                #size-cells = <0>;
@@ -45,7 +53,7 @@
                #size-cells = <1>;
                reg = <0xf0010100 0x60>;
 
-               ranges = <0x0 0x0 0xfe000000 0x800000
+               ranges = <0x0 0x0 0xff800000 0x800000
                          0x1 0x0 0xf4500000 0x8000
                          0x8 0x0 0xf8200000 0x8000>;
 
@@ -71,7 +79,7 @@
                };
        };
 
-       pci@f0010800 {
+       pci0: pci@f0010800 {
                device_type = "pci";
                reg = <0xf0010800 0x10c 0xf00101ac 0x8 0xf00101c4 0x8>;
                compatible = "fsl,mpc8280-pci", "fsl,pq2-pci";
                                reg = <0x119f0 0x10 0x115f0 0x10>;
                        };
 
-                       serial@11a00 {
+                       serial0: serial@11a00 {
                                device_type = "serial";
                                compatible = "fsl,mpc8280-scc-uart",
                                             "fsl,cpm2-scc-uart";
                                fsl,cpm-command = <0x800000>;
                        };
 
-                       serial@11a20 {
+                       serial1: serial@11a20 {
                                device_type = "serial";
                                compatible = "fsl,mpc8280-scc-uart",
                                             "fsl,cpm2-scc-uart";
                                fsl,cpm-command = <0x4a00000>;
                        };
 
-                       ethernet@11320 {
+                       enet0: ethernet@11320 {
                                device_type = "network";
                                compatible = "fsl,mpc8280-fcc-enet",
                                             "fsl,cpm2-fcc-enet";
                                fsl,cpm-command = <0x16200300>;
                        };
 
-                       ethernet@11340 {
+                       enet1: ethernet@11340 {
                                device_type = "network";
                                compatible = "fsl,mpc8280-fcc-enet",
                                             "fsl,cpm2-fcc-enet";
index 9c5079f..b1f1416 100644 (file)
                compatible = "simple-bus";
 
                memory-controller@2000 {
-                       compatible = "fsl,8548-memory-controller";
+                       compatible = "fsl,mpc8548-memory-controller";
                        reg = <0x2000 0x1000>;
                        interrupt-parent = <&mpic>;
                        interrupts = <0x12 0x2>;
                };
 
                L2: l2-cache-controller@20000 {
-                       compatible = "fsl,8548-l2-cache-controller";
+                       compatible = "fsl,mpc8548-l2-cache-controller";
                        reg = <0x20000 0x1000>;
                        cache-line-size = <0x20>;       // 32 bytes
                        cache-size = <0x80000>; // L2, 512K
index b772405..c4564b8 100644 (file)
                clock-frequency = <0>;
 
                memory-controller@2000 {
-                       compatible = "fsl,8560-memory-controller";
+                       compatible = "fsl,mpc8560-memory-controller";
                        reg = <0x2000 0x1000>;
                        interrupt-parent = <&mpic>;
                        interrupts = <0x12 0x2>;
                };
 
                L2: l2-cache-controller@20000 {
-                       compatible = "fsl,8560-l2-cache-controller";
+                       compatible = "fsl,mpc8560-l2-cache-controller";
                        reg = <0x20000 0x1000>;
                        cache-line-size = <0x20>;       // 32 bytes
                        cache-size = <0x40000>;         // L2, 256K
index b8d0fc6..04c3988 100644 (file)
@@ -52,6 +52,7 @@
        soc8544@e0000000 {
                #address-cells = <1>;
                #size-cells = <1>;
+               device_type = "soc";
 
                ranges = <0x00000000 0xe0000000 0x00100000>;
                reg = <0xe0000000 0x00001000>;  // CCSRBAR 1M
index 8b17395..ea6b151 100644 (file)
                compatible = "fsl,mpc8560-immr", "simple-bus";
 
                memory-controller@2000 {
-                       compatible = "fsl,8540-memory-controller";
+                       compatible = "fsl,mpc8540-memory-controller";
                        reg = <0x2000 0x1000>;
                        interrupt-parent = <&mpic>;
                        interrupts = <18 2>;
                };
 
                L2: l2-cache-controller@20000 {
-                       compatible = "fsl,8540-l2-cache-controller";
+                       compatible = "fsl,mpc8540-l2-cache-controller";
                        reg = <0x20000 0x1000>;
                        cache-line-size = <32>;
                        cache-size = <0x40000>; // L2, 256K
index ac9413a..231bae7 100644 (file)
                compatible = "fsl,mpc8540-immr", "simple-bus";
 
                memory-controller@2000 {
-                       compatible = "fsl,8540-memory-controller";
+                       compatible = "fsl,mpc8540-memory-controller";
                        reg = <0x2000 0x1000>;
                        interrupt-parent = <&mpic>;
                        interrupts = <18 2>;
                };
 
                L2: l2-cache-controller@20000 {
-                       compatible = "fsl,8540-l2-cache-controller";
+                       compatible = "fsl,mpc8540-l2-cache-controller";
                        reg = <0x20000 0x1000>;
                        cache-line-size = <32>;
                        cache-size = <0x40000>; // L2, 256K
index c71bb5d..4356a1f 100644 (file)
                compatible = "fsl,mpc8541-immr", "simple-bus";
 
                memory-controller@2000 {
-                       compatible = "fsl,8540-memory-controller";
+                       compatible = "fsl,mpc8540-memory-controller";
                        reg = <0x2000 0x1000>;
                        interrupt-parent = <&mpic>;
                        interrupts = <18 2>;
                };
 
                L2: l2-cache-controller@20000 {
-                       compatible = "fsl,8540-l2-cache-controller";
+                       compatible = "fsl,mpc8540-l2-cache-controller";
                        reg = <0x20000 0x1000>;
                        cache-line-size = <32>;
                        cache-size = <0x40000>; // L2, 256K
index a133ded..06d366e 100644 (file)
                compatible = "fsl,mpc8555-immr", "simple-bus";
 
                memory-controller@2000 {
-                       compatible = "fsl,8540-memory-controller";
+                       compatible = "fsl,mpc8540-memory-controller";
                        reg = <0x2000 0x1000>;
                        interrupt-parent = <&mpic>;
                        interrupts = <18 2>;
                };
 
                L2: l2-cache-controller@20000 {
-                       compatible = "fsl,8540-l2-cache-controller";
+                       compatible = "fsl,mpc8540-l2-cache-controller";
                        reg = <0x20000 0x1000>;
                        cache-line-size = <32>;
                        cache-size = <0x40000>; // L2, 256K
index 649e2e5..feff915 100644 (file)
                compatible = "fsl,mpc8560-immr", "simple-bus";
 
                memory-controller@2000 {
-                       compatible = "fsl,8540-memory-controller";
+                       compatible = "fsl,mpc8540-memory-controller";
                        reg = <0x2000 0x1000>;
                        interrupt-parent = <&mpic>;
                        interrupts = <18 2>;
                };
 
                L2: l2-cache-controller@20000 {
-                       compatible = "fsl,8540-l2-cache-controller";
+                       compatible = "fsl,mpc8540-l2-cache-controller";
                        reg = <0x20000 0x1000>;
                        cache-line-size = <32>;
                        cache-size = <0x40000>; // L2, 256K
index 61b1008..f1889ab 100644 (file)
@@ -95,7 +95,7 @@ CONFIG_CGROUP_CPUACCT=y
 CONFIG_SYSFS_DEPRECATED=y
 CONFIG_SYSFS_DEPRECATED_V2=y
 CONFIG_PROC_PID_CPUSET=y
-# CONFIG_RELAY is not set
+CONFIG_RELAY=y
 CONFIG_NAMESPACES=y
 # CONFIG_UTS_NS is not set
 # CONFIG_IPC_NS is not set
index 68235f7..d2a65e8 100644 (file)
@@ -125,7 +125,7 @@ struct lppaca {
        // NOTE: This value will ALWAYS be zero for dedicated processors and
        // will NEVER be zero for shared processors (ie, initialized to a 1).
        volatile u32 yield_count;       // PLIC increments each dispatchx00-x03
-       u32 reserved6;
+       volatile u32 dispersion_count;  // dispatch changed phys cpu    x04-x07
        volatile u64 cmo_faults;        // CMO page fault count         x08-x0F
        volatile u64 cmo_fault_time;    // CMO page fault time          x10-x17
        u8      reserved7[104];         // Reserved                     x18-x7F
index c2ccca5..a002682 100644 (file)
 #define MPIC_GREG_FEATURE_1            0x00010
 #define MPIC_GREG_GLOBAL_CONF_0                0x00020
 #define                MPIC_GREG_GCONF_RESET                   0x80000000
+/* On the FSL mpic implementations the Mode field is expand to be
+ * 2 bits wide:
+ *     0b00 = pass through (interrupts routed to IRQ0)
+ *     0b01 = Mixed mode
+ *     0b10 = reserved
+ *     0b11 = External proxy / coreint
+ */
+#define                MPIC_GREG_GCONF_COREINT                 0x60000000
 #define                MPIC_GREG_GCONF_8259_PTHROU_DIS         0x20000000
 #define                MPIC_GREG_GCONF_NO_BIAS                 0x10000000
 #define                MPIC_GREG_GCONF_BASE_MASK               0x000fffff
@@ -357,6 +365,8 @@ struct mpic
 #define MPIC_BROKEN_FRR_NIRQS          0x00000800
 /* Destination only supports a single CPU at a time */
 #define MPIC_SINGLE_DEST_CPU           0x00001000
+/* Enable CoreInt delivery of interrupts */
+#define MPIC_ENABLE_COREINT            0x00002000
 
 /* MPIC HW modification ID */
 #define MPIC_REGSET_MASK               0xf0000000
@@ -470,6 +480,8 @@ extern void mpic_end_irq(unsigned int irq);
 extern unsigned int mpic_get_one_irq(struct mpic *mpic);
 /* This one gets from the primary mpic */
 extern unsigned int mpic_get_irq(void);
+/* This one gets from the primary mpic via CoreInt*/
+extern unsigned int mpic_get_coreint_irq(void);
 /* Fetch Machine Check interrupt from primary mpic */
 extern unsigned int mpic_get_mcirq(void);
 
index 90dbefb..e7233a8 100644 (file)
@@ -21,7 +21,6 @@
 
 #include <linux/types.h>
 #include <linux/ioctl.h>
-#include <linux/types.h>
 
 /* ioctl */
 #define PS3FB_IOCTL_SETMODE       _IOW('r',  1, int) /* set video mode */
index d9740e8..a7e210b 100644 (file)
@@ -151,9 +151,11 @@ extern unsigned long bad_call_to_PMD_PAGE_SIZE(void);
                                 _PAGE_NO_CACHE)
 #define PAGE_KERNEL_NCG        __pgprot(_PAGE_BASE_NC | _PAGE_KERNEL_RW | \
                                 _PAGE_NO_CACHE | _PAGE_GUARDED)
-#define PAGE_KERNEL_X  __pgprot(_PAGE_BASE | _PAGE_KERNEL_RW | _PAGE_EXEC)
+#define PAGE_KERNEL_X  __pgprot(_PAGE_BASE | _PAGE_KERNEL_RW | _PAGE_EXEC | \
+                                _PAGE_HWEXEC)
 #define PAGE_KERNEL_RO __pgprot(_PAGE_BASE | _PAGE_KERNEL_RO)
-#define PAGE_KERNEL_ROX        __pgprot(_PAGE_BASE | _PAGE_KERNEL_RO | _PAGE_EXEC)
+#define PAGE_KERNEL_ROX        __pgprot(_PAGE_BASE | _PAGE_KERNEL_RO | _PAGE_EXEC | \
+                                _PAGE_HWEXEC)
 
 /* Protection used for kernel text. We want the debuggers to be able to
  * set breakpoints anywhere, so don't write protect the kernel text
index c9ff1ec..e8018d5 100644 (file)
 #define FPSCR_NI       0x00000004      /* FPU non IEEE-Mode */
 #define FPSCR_RN       0x00000003      /* FPU rounding control */
 
+/* Bit definitions for SPEFSCR. */
+#define SPEFSCR_SOVH   0x80000000      /* Summary integer overflow high */
+#define SPEFSCR_OVH    0x40000000      /* Integer overflow high */
+#define SPEFSCR_FGH    0x20000000      /* Embedded FP guard bit high */
+#define SPEFSCR_FXH    0x10000000      /* Embedded FP sticky bit high */
+#define SPEFSCR_FINVH  0x08000000      /* Embedded FP invalid operation high */
+#define SPEFSCR_FDBZH  0x04000000      /* Embedded FP div by zero high */
+#define SPEFSCR_FUNFH  0x02000000      /* Embedded FP underflow high */
+#define SPEFSCR_FOVFH  0x01000000      /* Embedded FP overflow high */
+#define SPEFSCR_FINXS  0x00200000      /* Embedded FP inexact sticky */
+#define SPEFSCR_FINVS  0x00100000      /* Embedded FP invalid op. sticky */
+#define SPEFSCR_FDBZS  0x00080000      /* Embedded FP div by zero sticky */
+#define SPEFSCR_FUNFS  0x00040000      /* Embedded FP underflow sticky */
+#define SPEFSCR_FOVFS  0x00020000      /* Embedded FP overflow sticky */
+#define SPEFSCR_MODE   0x00010000      /* Embedded FP mode */
+#define SPEFSCR_SOV    0x00008000      /* Integer summary overflow */
+#define SPEFSCR_OV     0x00004000      /* Integer overflow */
+#define SPEFSCR_FG     0x00002000      /* Embedded FP guard bit */
+#define SPEFSCR_FX     0x00001000      /* Embedded FP sticky bit */
+#define SPEFSCR_FINV   0x00000800      /* Embedded FP invalid operation */
+#define SPEFSCR_FDBZ   0x00000400      /* Embedded FP div by zero */
+#define SPEFSCR_FUNF   0x00000200      /* Embedded FP underflow */
+#define SPEFSCR_FOVF   0x00000100      /* Embedded FP overflow */
+#define SPEFSCR_FINXE  0x00000040      /* Embedded FP inexact enable */
+#define SPEFSCR_FINVE  0x00000020      /* Embedded FP invalid op. enable */
+#define SPEFSCR_FDBZE  0x00000010      /* Embedded FP div by zero enable */
+#define SPEFSCR_FUNFE  0x00000008      /* Embedded FP underflow enable */
+#define SPEFSCR_FOVFE  0x00000004      /* Embedded FP overflow enable */
+#define SPEFSCR_FRMC   0x00000003      /* Embedded FP rounding mode control */
+
 /* Special Purpose Registers (SPRNs)*/
 #define SPRN_CTR       0x009   /* Count Register */
 #define SPRN_DSCR      0x11
index a56f4d6..601ddbc 100644 (file)
 #define SGR_NORMAL     0               /* Speculative fetching allowed. */
 #define SGR_GUARDED    1               /* Speculative fetching disallowed. */
 
-/* Bit definitions for SPEFSCR. */
-#define SPEFSCR_SOVH   0x80000000      /* Summary integer overflow high */
-#define SPEFSCR_OVH    0x40000000      /* Integer overflow high */
-#define SPEFSCR_FGH    0x20000000      /* Embedded FP guard bit high */
-#define SPEFSCR_FXH    0x10000000      /* Embedded FP sticky bit high */
-#define SPEFSCR_FINVH  0x08000000      /* Embedded FP invalid operation high */
-#define SPEFSCR_FDBZH  0x04000000      /* Embedded FP div by zero high */
-#define SPEFSCR_FUNFH  0x02000000      /* Embedded FP underflow high */
-#define SPEFSCR_FOVFH  0x01000000      /* Embedded FP overflow high */
-#define SPEFSCR_FINXS  0x00200000      /* Embedded FP inexact sticky */
-#define SPEFSCR_FINVS  0x00100000      /* Embedded FP invalid op. sticky */
-#define SPEFSCR_FDBZS  0x00080000      /* Embedded FP div by zero sticky */
-#define SPEFSCR_FUNFS  0x00040000      /* Embedded FP underflow sticky */
-#define SPEFSCR_FOVFS  0x00020000      /* Embedded FP overflow sticky */
-#define SPEFSCR_MODE   0x00010000      /* Embedded FP mode */
-#define SPEFSCR_SOV    0x00008000      /* Integer summary overflow */
-#define SPEFSCR_OV     0x00004000      /* Integer overflow */
-#define SPEFSCR_FG     0x00002000      /* Embedded FP guard bit */
-#define SPEFSCR_FX     0x00001000      /* Embedded FP sticky bit */
-#define SPEFSCR_FINV   0x00000800      /* Embedded FP invalid operation */
-#define SPEFSCR_FDBZ   0x00000400      /* Embedded FP div by zero */
-#define SPEFSCR_FUNF   0x00000200      /* Embedded FP underflow */
-#define SPEFSCR_FOVF   0x00000100      /* Embedded FP overflow */
-#define SPEFSCR_FINXE  0x00000040      /* Embedded FP inexact enable */
-#define SPEFSCR_FINVE  0x00000020      /* Embedded FP invalid op. enable */
-#define SPEFSCR_FDBZE  0x00000010      /* Embedded FP div by zero enable */
-#define SPEFSCR_FUNFE  0x00000008      /* Embedded FP underflow enable */
-#define SPEFSCR_FOVFE  0x00000004      /* Embedded FP overflow enable */
-#define SPEFSCR_FRMC   0x00000003      /* Embedded FP rounding mode control */
-
 /*
  * The IBM-403 is an even more odd special case, as it is much
  * older than the IBM-405 series.  We put these down here incase someone
index 0aa0315..01c1233 100644 (file)
@@ -68,7 +68,8 @@ struct rtas_t {
 #define RTAS_EPOW_WARNING              0x40000000 /* set bit 1 */
 #define RTAS_POWERMGM_EVENTS           0x20000000 /* set bit 2 */
 #define RTAS_HOTPLUG_EVENTS            0x10000000 /* set bit 3 */
-#define RTAS_EVENT_SCAN_ALL_EVENTS     0xf0000000
+#define RTAS_IO_EVENTS                 0x08000000 /* set bit 4 */
+#define RTAS_EVENT_SCAN_ALL_EVENTS     0xffffffff
 
 /* RTAS event severity */
 #define RTAS_SEVERITY_FATAL            0x5
index 3d9f831..3a7a67a 100644 (file)
@@ -29,9 +29,9 @@
 
 /* basic word size definitions */
 #define _FP_W_TYPE_SIZE                32
-#define _FP_W_TYPE             unsigned long
-#define _FP_WS_TYPE            signed long
-#define _FP_I_TYPE             long
+#define _FP_W_TYPE             unsigned int
+#define _FP_WS_TYPE            signed int
+#define _FP_I_TYPE             int
 
 #define __ll_B                 ((UWtype) 1 << (W_TYPE_SIZE / 2))
 #define __ll_lowpart(t)                ((UWtype) (t) & (__ll_B - 1))
index fe16649..d98a30d 100644 (file)
@@ -322,3 +322,6 @@ SYSCALL_SPU(epoll_create1)
 SYSCALL_SPU(dup3)
 SYSCALL_SPU(pipe2)
 SYSCALL(inotify_init1)
+SYSCALL(ni_syscall)
+COMPAT_SYS_SPU(preadv)
+COMPAT_SYS_SPU(pwritev)
index e07d0c7..3f06f8e 100644 (file)
 #define __NR_dup3              316
 #define __NR_pipe2             317
 #define __NR_inotify_init1     318
+#define __NR_preadv            320
+#define __NR_pwritev           321
 
 #ifdef __KERNEL__
 
-#define __NR_syscalls          319
+#define __NR_syscalls          322
 
 #define __NR__exit __NR_exit
 #define NR_syscalls    __NR_syscalls
index a088c06..2436df3 100644 (file)
@@ -145,6 +145,11 @@ END_FTR_SECTION_IFSET(CPU_FTR_VSX)
        beq     1f
        PPC_LL  r4,_MSR-STACK_FRAME_OVERHEAD(r5)
        li      r3,MSR_FP|MSR_FE0|MSR_FE1
+#ifdef CONFIG_VSX
+BEGIN_FTR_SECTION
+       oris    r3,r3,MSR_VSX@h
+END_FTR_SECTION_IFSET(CPU_FTR_VSX)
+#endif
        andc    r4,r4,r3                /* disable FP for previous task */
        PPC_STL r4,_MSR-STACK_FRAME_OVERHEAD(r5)
 1:
index 5455943..70e2a73 100644 (file)
@@ -293,7 +293,7 @@ __ftrace_make_nop(struct module *mod,
        if (tramp & 0x8000)
                tramp -= 0x10000;
 
-       pr_debug(" %x ", tramp);
+       pr_debug(" %lx ", tramp);
 
        if (tramp != addr) {
                printk(KERN_ERR
@@ -564,7 +564,7 @@ void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr)
        if (unlikely(atomic_read(&current->tracing_graph_pause)))
                return;
 
-#if CONFIG_PPC64
+#ifdef CONFIG_PPC64
        /* non core kernel code needs to save and restore the TOC */
        if (REGION_ID(self_addr) != KERNEL_REGION_ID)
                return_hooker = (unsigned long)&mod_return_to_handler;
index 5576147..8c1a496 100644 (file)
@@ -672,11 +672,13 @@ unsigned int irq_create_mapping(struct irq_host *host,
                        return NO_IRQ;
                }
        }
-       pr_debug("irq: -> obtained virq %d\n", virq);
 
        if (irq_setup_virq(host, virq, hwirq))
                return NO_IRQ;
 
+       printk(KERN_DEBUG "irq: irq %lu on host %s mapped to virtual irq %u\n",
+               hwirq, host->of_node ? host->of_node->full_name : "null", virq);
+
        return virq;
 }
 EXPORT_SYMBOL_GPL(irq_create_mapping);
index 182e0f6..78b3f78 100644 (file)
@@ -434,6 +434,21 @@ static void pseries_cmo_data(struct seq_file *m)
        seq_printf(m, "cmo_page_size=%lu\n", cmo_get_page_size());
 }
 
+static void splpar_dispatch_data(struct seq_file *m)
+{
+       int cpu;
+       unsigned long dispatches = 0;
+       unsigned long dispatch_dispersions = 0;
+
+       for_each_possible_cpu(cpu) {
+               dispatches += lppaca[cpu].yield_count;
+               dispatch_dispersions += lppaca[cpu].dispersion_count;
+       }
+
+       seq_printf(m, "dispatches=%lu\n", dispatches);
+       seq_printf(m, "dispatch_dispersions=%lu\n", dispatch_dispersions);
+}
+
 static int pseries_lparcfg_data(struct seq_file *m, void *v)
 {
        int partition_potential_processors;
@@ -460,6 +475,7 @@ static int pseries_lparcfg_data(struct seq_file *m, void *v)
                parse_ppp_data(m);
                parse_mpp_data(m);
                pseries_cmo_data(m);
+               splpar_dispatch_data(m);
 
                seq_printf(m, "purr=%ld\n", get_purr());
        } else {                /* non SPLPAR case */
index 3053fe5..b9530b2 100644 (file)
@@ -495,7 +495,15 @@ _GLOBAL(giveup_altivec)
        stvx    vr0,r4,r3
        beq     1f
        ld      r4,_MSR-STACK_FRAME_OVERHEAD(r5)
+#ifdef CONFIG_VSX
+BEGIN_FTR_SECTION
+       lis     r3,(MSR_VEC|MSR_VSX)@h
+FTR_SECTION_ELSE
+       lis     r3,MSR_VEC@h
+ALT_FTR_SECTION_END_IFSET(CPU_FTR_VSX)
+#else
        lis     r3,MSR_VEC@h
+#endif
        andc    r4,r4,r3                /* disable FP for previous task */
        std     r4,_MSR-STACK_FRAME_OVERHEAD(r5)
 1:
index 2e026c0..2f0e64b 100644 (file)
@@ -614,7 +614,7 @@ static unsigned char ibm_architecture_vec[] = {
        W(0xffffffff),                  /* virt_base */
        W(0xffffffff),                  /* virt_size */
        W(0xffffffff),                  /* load_base */
-       W(64),                          /* 128MB min RMA */
+       W(64),                          /* 64MB min RMA */
        W(0xffffffff),                  /* full client load */
        0,                              /* min RMA percentage of total RAM */
        48,                             /* max log_2(hash table size) */
@@ -732,15 +732,17 @@ static void __init prom_send_capabilities(void)
        root = call_prom("open", 1, 1, ADDR("/"));
        if (root != 0) {
                /* try calling the ibm,client-architecture-support method */
+               prom_printf("Calling ibm,client-architecture...");
                if (call_prom_ret("call-method", 3, 2, &ret,
                                  ADDR("ibm,client-architecture-support"),
                                  root,
                                  ADDR(ibm_architecture_vec)) == 0) {
                        /* the call exists... */
                        if (ret)
-                               prom_printf("WARNING: ibm,client-architecture"
+                               prom_printf("\nWARNING: ibm,client-architecture"
                                            "-support call FAILED!\n");
                        call_prom("close", 1, 0, root);
+                       prom_printf(" done\n");
                        return;
                }
                call_prom("close", 1, 0, root);
@@ -1083,7 +1085,7 @@ static void __init prom_instantiate_rtas(void)
                return;
        }
 
-       prom_printf("instantiating rtas at 0x%x ...", base);
+       prom_printf("instantiating rtas at 0x%x...", base);
 
        if (call_prom_ret("call-method", 3, 2, &entry,
                          ADDR("instantiate-rtas"),
@@ -1495,7 +1497,7 @@ static int __init prom_find_machine_type(void)
                return PLATFORM_GENERIC;
        x = prom_getproplen(rtas, "ibm,hypertas-functions");
        if (x != PROM_ERROR) {
-               prom_printf("Hypertas detected, assuming LPAR !\n");
+               prom_debug("Hypertas detected, assuming LPAR !\n");
                return PLATFORM_PSERIES_LPAR;
        }
        return PLATFORM_PSERIES;
@@ -1544,7 +1546,7 @@ static void __init prom_check_displays(void)
        };
        const unsigned char *clut;
 
-       prom_printf("Looking for displays\n");
+       prom_debug("Looking for displays\n");
        for (node = 0; prom_next_node(&node); ) {
                memset(type, 0, sizeof(type));
                prom_getprop(node, "device_type", type, sizeof(type));
@@ -1562,7 +1564,7 @@ static void __init prom_check_displays(void)
                if (call_prom("package-to-path", 3, 1, node, path,
                              PROM_SCRATCH_SIZE-10) == PROM_ERROR)
                        continue;
-               prom_printf("found display   : %s, opening ... ", path);
+               prom_printf("found display   : %s, opening... ", path);
                
                ih = call_prom("open", 1, 1, path);
                if (ih == 0) {
@@ -2387,7 +2389,7 @@ unsigned long __init prom_init(unsigned long r3, unsigned long r4,
        /*
         * Now finally create the flattened device-tree
         */
-       prom_printf("copying OF device tree ...\n");
+       prom_printf("copying OF device tree...\n");
        flatten_device_tree();
 
        /*
@@ -2402,7 +2404,7 @@ unsigned long __init prom_init(unsigned long r3, unsigned long r4,
         * Call OF "quiesce" method to shut down pending DMA's from
         * devices etc...
         */
-       prom_printf("Calling quiesce ...\n");
+       prom_printf("Calling quiesce...\n");
        call_prom("quiesce", 0, 0);
 
        /*
index 197d49c..297632c 100644 (file)
@@ -67,7 +67,8 @@ static long compat_ptrace_old(struct task_struct *child, long request,
 /* Macros to workout the correct index for the FPR in the thread struct */
 #define FPRNUMBER(i) (((i) - PT_FPR0) >> 1)
 #define FPRHALF(i) (((i) - PT_FPR0) & 1)
-#define FPRINDEX(i) TS_FPRWIDTH * FPRNUMBER(i) + FPRHALF(i)
+#define FPRINDEX(i) TS_FPRWIDTH * FPRNUMBER(i) * 2 + FPRHALF(i)
+#define FPRINDEX_3264(i) (TS_FPRWIDTH * ((i) - PT_FPR0))
 
 long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
                        compat_ulong_t caddr, compat_ulong_t cdata)
@@ -168,8 +169,9 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
                CHECK_FULL_REGS(child->thread.regs);
                if (numReg >= PT_FPR0) {
                        flush_fp_to_thread(child);
-                       tmp = ((unsigned long int *)child->thread.fpr)
-                               [FPRINDEX(numReg)];
+                       /* get 64 bit FPR */
+                       tmp = ((u64 *)child->thread.fpr)
+                               [FPRINDEX_3264(numReg)];
                } else { /* register within PT_REGS struct */
                        tmp = ptrace_get_reg(child, numReg);
                } 
@@ -262,8 +264,13 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
                                freg = (freg & 0xfffffffful) | (data << 32);
                        ret = ptrace_put_reg(child, numReg, freg);
                } else {
+                       u64 *tmp;
                        flush_fp_to_thread(child);
-                       ((unsigned int *)child->thread.regs)[index] = data;
+                       /* get 64 bit FPR ... */
+                       tmp = &(((u64 *)child->thread.fpr)
+                               [FPRINDEX_3264(numReg)]);
+                       /* ... write the 32 bit part we want */
+                       ((u32 *)tmp)[index % 2] = data;
                        ret = 0;
                }
                break;
index 9774f9f..02fed27 100644 (file)
@@ -36,7 +36,6 @@
 #include <linux/percpu.h>
 #include <linux/lmb.h>
 #include <linux/of_platform.h>
-#include <linux/platform_device.h>
 #include <asm/io.h>
 #include <asm/prom.h>
 #include <asm/processor.h>
index 532e205..21b9567 100644 (file)
@@ -1170,6 +1170,12 @@ struct mpic * __init mpic_alloc(struct device_node *node,
                        mb();
        }
 
+       /* CoreInt */
+       if (flags & MPIC_ENABLE_COREINT)
+               mpic_write(mpic->gregs, MPIC_INFO(GREG_GLOBAL_CONF_0),
+                          mpic_read(mpic->gregs, MPIC_INFO(GREG_GLOBAL_CONF_0))
+                          | MPIC_GREG_GCONF_COREINT);
+
        if (flags & MPIC_ENABLE_MCK)
                mpic_write(mpic->gregs, MPIC_INFO(GREG_GLOBAL_CONF_0),
                           mpic_read(mpic->gregs, MPIC_INFO(GREG_GLOBAL_CONF_0))
@@ -1525,6 +1531,34 @@ unsigned int mpic_get_irq(void)
        return mpic_get_one_irq(mpic);
 }
 
+unsigned int mpic_get_coreint_irq(void)
+{
+#ifdef CONFIG_BOOKE
+       struct mpic *mpic = mpic_primary;
+       u32 src;
+
+       BUG_ON(mpic == NULL);
+
+       src = mfspr(SPRN_EPR);
+
+       if (unlikely(src == mpic->spurious_vec)) {
+               if (mpic->flags & MPIC_SPV_EOI)
+                       mpic_eoi(mpic);
+               return NO_IRQ;
+       }
+       if (unlikely(mpic->protected && test_bit(src, mpic->protected))) {
+               if (printk_ratelimit())
+                       printk(KERN_WARNING "%s: Got protected source %d !\n",
+                              mpic->name, (int)src);
+               return NO_IRQ;
+       }
+
+       return irq_linear_revmap(mpic->irqhost, src);
+#else
+       return NO_IRQ;
+#endif
+}
+
 unsigned int mpic_get_mcirq(void)
 {
        struct mpic *mpic = mpic_primary;
index 831ddce..781c404 100644 (file)
@@ -821,7 +821,7 @@ static void read_iso_callback(struct urb *urb)
                /* pass URB to tasklet */
                ubc->isoindone = urb;
                ubc->isoinstatus = status;
-               tasklet_schedule(&ubc->rcvd_tasklet);
+               tasklet_hi_schedule(&ubc->rcvd_tasklet);
        } else {
                /* tasklet still busy, drop data and resubmit URB */
                ubc->loststatus = status;
@@ -888,7 +888,7 @@ static void write_iso_callback(struct urb *urb)
        ubc->isooutovfl = ubc->isooutdone;
        ubc->isooutdone = ucx;
        spin_unlock_irqrestore(&ubc->isooutlock, flags);
-       tasklet_schedule(&ubc->sent_tasklet);
+       tasklet_hi_schedule(&ubc->sent_tasklet);
 }
 
 /* starturbs
index 311e7ca..820a309 100644 (file)
@@ -193,7 +193,9 @@ static void if_close(struct tty_struct *tty, struct file *filp)
 
        mutex_lock(&cs->mutex);
 
-       if (!cs->open_count)
+       if (!cs->connected)
+               gig_dbg(DEBUG_IF, "not connected");     /* nothing to do */
+       else if (!cs->open_count)
                dev_warn(cs->dev, "%s: device not opened\n", __func__);
        else {
                if (!--cs->open_count) {
@@ -228,7 +230,10 @@ static int if_ioctl(struct tty_struct *tty, struct file *file,
        if (mutex_lock_interruptible(&cs->mutex))
                return -ERESTARTSYS; // FIXME -EINTR?
 
-       if (!cs->open_count)
+       if (!cs->connected) {
+               gig_dbg(DEBUG_IF, "not connected");
+               retval = -ENODEV;
+       } else if (!cs->open_count)
                dev_warn(cs->dev, "%s: device not opened\n", __func__);
        else {
                retval = 0;
@@ -248,13 +253,6 @@ static int if_ioctl(struct tty_struct *tty, struct file *file,
                                retval = put_user(int_arg, (int __user *) arg);
                        break;
                case GIGASET_BRKCHARS:
-                       //FIXME test if MS_LOCKED
-                       if (!cs->connected) {
-                               gig_dbg(DEBUG_ANY,
-                                   "can't communicate with unplugged device");
-                               retval = -ENODEV;
-                               break;
-                       }
                        retval = copy_from_user(&buf,
                                        (const unsigned char __user *) arg, 6)
                                ? -EFAULT : 0;
@@ -331,7 +329,7 @@ static int if_tiocmset(struct tty_struct *tty, struct file *file,
                return -ERESTARTSYS; // FIXME -EINTR?
 
        if (!cs->connected) {
-               gig_dbg(DEBUG_ANY, "can't communicate with unplugged device");
+               gig_dbg(DEBUG_IF, "not connected");
                retval = -ENODEV;
        } else {
                mc = (cs->control_state | set) & ~clear & (TIOCM_RTS|TIOCM_DTR);
@@ -360,14 +358,14 @@ static int if_write(struct tty_struct *tty, const unsigned char *buf, int count)
        if (mutex_lock_interruptible(&cs->mutex))
                return -ERESTARTSYS; // FIXME -EINTR?
 
-       if (!cs->open_count)
+       if (!cs->connected) {
+               gig_dbg(DEBUG_IF, "not connected");
+               retval = -ENODEV;
+       } else if (!cs->open_count)
                dev_warn(cs->dev, "%s: device not opened\n", __func__);
        else if (cs->mstate != MS_LOCKED) {
                dev_warn(cs->dev, "can't write to unlocked device\n");
                retval = -EBUSY;
-       } else if (!cs->connected) {
-               gig_dbg(DEBUG_ANY, "can't write to unplugged device");
-               retval = -EBUSY; //FIXME
        } else {
                retval = cs->ops->write_cmd(cs, buf, count,
                                            &cs->if_wake_tasklet);
@@ -394,14 +392,14 @@ static int if_write_room(struct tty_struct *tty)
        if (mutex_lock_interruptible(&cs->mutex))
                return -ERESTARTSYS; // FIXME -EINTR?
 
-       if (!cs->open_count)
+       if (!cs->connected) {
+               gig_dbg(DEBUG_IF, "not connected");
+               retval = -ENODEV;
+       } else if (!cs->open_count)
                dev_warn(cs->dev, "%s: device not opened\n", __func__);
        else if (cs->mstate != MS_LOCKED) {
                dev_warn(cs->dev, "can't write to unlocked device\n");
                retval = -EBUSY;
-       } else if (!cs->connected) {
-               gig_dbg(DEBUG_ANY, "can't write to unplugged device");
-               retval = -EBUSY; //FIXME
        } else
                retval = cs->ops->write_room(cs);
 
@@ -426,14 +424,14 @@ static int if_chars_in_buffer(struct tty_struct *tty)
        if (mutex_lock_interruptible(&cs->mutex))
                return -ERESTARTSYS; // FIXME -EINTR?
 
-       if (!cs->open_count)
+       if (!cs->connected) {
+               gig_dbg(DEBUG_IF, "not connected");
+               retval = -ENODEV;
+       } else if (!cs->open_count)
                dev_warn(cs->dev, "%s: device not opened\n", __func__);
        else if (cs->mstate != MS_LOCKED) {
                dev_warn(cs->dev, "can't write to unlocked device\n");
                retval = -EBUSY;
-       } else if (!cs->connected) {
-               gig_dbg(DEBUG_ANY, "can't write to unplugged device");
-               retval = -EBUSY; //FIXME
        } else
                retval = cs->ops->chars_in_buffer(cs);
 
@@ -456,7 +454,9 @@ static void if_throttle(struct tty_struct *tty)
 
        mutex_lock(&cs->mutex);
 
-       if (!cs->open_count)
+       if (!cs->connected)
+               gig_dbg(DEBUG_IF, "not connected");     /* nothing to do */
+       else if (!cs->open_count)
                dev_warn(cs->dev, "%s: device not opened\n", __func__);
        else {
                //FIXME
@@ -479,7 +479,9 @@ static void if_unthrottle(struct tty_struct *tty)
 
        mutex_lock(&cs->mutex);
 
-       if (!cs->open_count)
+       if (!cs->connected)
+               gig_dbg(DEBUG_IF, "not connected");     /* nothing to do */
+       else if (!cs->open_count)
                dev_warn(cs->dev, "%s: device not opened\n", __func__);
        else {
                //FIXME
@@ -506,13 +508,13 @@ static void if_set_termios(struct tty_struct *tty, struct ktermios *old)
 
        mutex_lock(&cs->mutex);
 
-       if (!cs->open_count) {
-               dev_warn(cs->dev, "%s: device not opened\n", __func__);
+       if (!cs->connected) {
+               gig_dbg(DEBUG_IF, "not connected");
                goto out;
        }
 
-       if (!cs->connected) {
-               gig_dbg(DEBUG_ANY, "can't communicate with unplugged device");
+       if (!cs->open_count) {
+               dev_warn(cs->dev, "%s: device not opened\n", __func__);
                goto out;
        }
 
index 6103caa..60955a7 100644 (file)
@@ -294,7 +294,7 @@ config DVB_USB_DTV5100
 
 config DVB_USB_AF9015
        tristate "Afatech AF9015 DVB-T USB2.0 support"
-       depends on DVB_USB && EXPERIMENTAL
+       depends on DVB_USB
        select DVB_AF9013
        select DVB_PLL              if !DVB_FE_CUSTOMISE
        select MEDIA_TUNER_MT2060   if !MEDIA_TUNER_CUSTOMISE
@@ -309,6 +309,6 @@ config DVB_USB_CE6230
        tristate "Intel CE6230 DVB-T USB2.0 support"
        depends on DVB_USB && EXPERIMENTAL
        select DVB_ZL10353
-       select MEDIA_TUNER_MXL5005S if !MEDIA_TUNER_CUSTOMIZE
+       select MEDIA_TUNER_MXL5005S if !MEDIA_TUNER_CUSTOMISE
        help
          Say Y here to support the Intel CE6230 DVB-T USB2.0 receiver
index f0ba8b0..53bfc8e 100644 (file)
@@ -782,17 +782,14 @@ static int af9015_read_config(struct usb_device *udev)
                                  ARRAY_SIZE(af9015_ir_table_leadtek);
                                break;
                        case USB_VID_VISIONPLUS:
-                               if (udev->descriptor.idProduct ==
-                               cpu_to_le16(USB_PID_AZUREWAVE_AD_TU700)) {
-                                       af9015_properties[i].rc_key_map =
-                                         af9015_rc_keys_twinhan;
-                                       af9015_properties[i].rc_key_map_size =
-                                         ARRAY_SIZE(af9015_rc_keys_twinhan);
-                                       af9015_config.ir_table =
-                                         af9015_ir_table_twinhan;
-                                       af9015_config.ir_table_size =
-                                         ARRAY_SIZE(af9015_ir_table_twinhan);
-                               }
+                               af9015_properties[i].rc_key_map =
+                                 af9015_rc_keys_twinhan;
+                               af9015_properties[i].rc_key_map_size =
+                                 ARRAY_SIZE(af9015_rc_keys_twinhan);
+                               af9015_config.ir_table =
+                                 af9015_ir_table_twinhan;
+                               af9015_config.ir_table_size =
+                                 ARRAY_SIZE(af9015_ir_table_twinhan);
                                break;
                        case USB_VID_KWORLD_2:
                                /* TODO: use correct rc keys */
@@ -833,6 +830,16 @@ static int af9015_read_config(struct usb_device *udev)
                                          af9015_ir_table_msi;
                                        af9015_config.ir_table_size =
                                          ARRAY_SIZE(af9015_ir_table_msi);
+                               } else if (udev->descriptor.idProduct ==
+                                       cpu_to_le16(USB_PID_TREKSTOR_DVBT)) {
+                                       af9015_properties[i].rc_key_map =
+                                         af9015_rc_keys_trekstor;
+                                       af9015_properties[i].rc_key_map_size =
+                                         ARRAY_SIZE(af9015_rc_keys_trekstor);
+                                       af9015_config.ir_table =
+                                         af9015_ir_table_trekstor;
+                                       af9015_config.ir_table_size =
+                                         ARRAY_SIZE(af9015_ir_table_trekstor);
                                }
                                break;
                        case USB_VID_AVERMEDIA:
@@ -981,6 +988,21 @@ error:
        if (ret)
                err("eeprom read failed:%d", ret);
 
+       /* AverMedia AVerTV Volar Black HD (A850) device have bad EEPROM
+          content :-( Override some wrong values here. */
+       if (le16_to_cpu(udev->descriptor.idVendor) == USB_VID_AVERMEDIA &&
+           le16_to_cpu(udev->descriptor.idProduct) == USB_PID_AVERMEDIA_A850) {
+               deb_info("%s: AverMedia A850: overriding config\n", __func__);
+               /* disable dual mode */
+               af9015_config.dual_mode = 0;
+                /* disable 2nd adapter */
+               for (i = 0; i < af9015_properties_count; i++)
+                       af9015_properties[i].num_adapters = 1;
+
+               /* set correct IF */
+               af9015_af9013_config[0].tuner_if = 4570;
+       }
+
        return ret;
 }
 
@@ -1237,6 +1259,9 @@ static struct usb_device_id af9015_usb_table[] = {
 /* 15 */{USB_DEVICE(USB_VID_MSI_2,     USB_PID_MSI_DIGI_VOX_MINI_III)},
        {USB_DEVICE(USB_VID_KWORLD_2,  USB_PID_KWORLD_395U)},
        {USB_DEVICE(USB_VID_KWORLD_2,  USB_PID_KWORLD_395U_2)},
+       {USB_DEVICE(USB_VID_KWORLD_2,  USB_PID_KWORLD_395U_3)},
+       {USB_DEVICE(USB_VID_AFATECH,   USB_PID_TREKSTOR_DVBT)},
+       {USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_A850)},
        {0},
 };
 MODULE_DEVICE_TABLE(usb, af9015_usb_table);
@@ -1401,7 +1426,7 @@ static struct dvb_usb_device_properties af9015_properties[] = {
 
                .i2c_algo = &af9015_i2c_algo,
 
-               .num_device_descs = 7,
+               .num_device_descs = 9,
                .devices = {
                        {
                                .name = "Xtensions XD-380",
@@ -1437,7 +1462,19 @@ static struct dvb_usb_device_properties af9015_properties[] = {
                                .name = "KWorld USB DVB-T TV Stick II " \
                                        "(VS-DVB-T 395U)",
                                .cold_ids = {&af9015_usb_table[16],
-                                            &af9015_usb_table[17], NULL},
+                                            &af9015_usb_table[17],
+                                            &af9015_usb_table[18], NULL},
+                               .warm_ids = {NULL},
+                       },
+                       {
+                               .name = "TrekStor DVB-T USB Stick",
+                               .cold_ids = {&af9015_usb_table[19], NULL},
+                               .warm_ids = {NULL},
+                       },
+                       {
+                               .name = "AverMedia AVerTV Volar Black HD " \
+                                       "(A850)",
+                               .cold_ids = {&af9015_usb_table[20], NULL},
                                .warm_ids = {NULL},
                        },
                }
index 00e2571..8d81a17 100644 (file)
 
 #define AF9015_EEPROM_OFFSET (AF9015_EEPROM_SAW_BW2 - AF9015_EEPROM_SAW_BW1)
 
-#define AF9015_GPIO_ON (1 << 0)
-#define AF9015_GPIO_EN (1 << 1)
-#define AF9015_GPIO_O  (1 << 2)
-#define AF9015_GPIO_I  (1 << 3)
-
-#define AF9015_GPIO_TUNER_ON  (AF9015_GPIO_ON|AF9015_GPIO_EN)
-#define AF9015_GPIO_TUNER_OFF (AF9015_GPIO_ON|AF9015_GPIO_EN|AF9015_GPIO_O)
-
 struct req_t {
        u8  cmd;       /* [0] */
        /*  seq */     /* [1] */
@@ -120,11 +112,11 @@ struct af9015_config {
 
 enum af9015_remote {
        AF9015_REMOTE_NONE                    = 0,
-       AF9015_REMOTE_A_LINK_DTU_M,
+/* 1 */        AF9015_REMOTE_A_LINK_DTU_M,
        AF9015_REMOTE_MSI_DIGIVOX_MINI_II_V3,
        AF9015_REMOTE_MYGICTV_U718,
        AF9015_REMOTE_DIGITTRADE_DVB_T,
-       AF9015_REMOTE_AVERMEDIA_KS,
+/* 5 */        AF9015_REMOTE_AVERMEDIA_KS,
 };
 
 /* Leadtek WinFast DTV Dongle Gold */
@@ -691,4 +683,67 @@ static u8 af9015_ir_table_digittrade[] = {
        0x00, 0xff, 0x1d, 0xe2, 0x40, 0x00, 0x00,
 };
 
+/* TREKSTOR DVB-T USB Stick */
+static struct dvb_usb_rc_key af9015_rc_keys_trekstor[] = {
+       { 0x07, 0x04, KEY_AGAIN },              /* Home */
+       { 0x07, 0x05, KEY_MUTE },               /* Mute */
+       { 0x07, 0x06, KEY_UP },                 /* Up */
+       { 0x07, 0x07, KEY_DOWN },               /* Down */
+       { 0x07, 0x09, KEY_RIGHT },              /* Right */
+       { 0x07, 0x0a, KEY_ENTER },              /* OK */
+       { 0x07, 0x0b, KEY_FASTFORWARD },        /* Fast forward */
+       { 0x07, 0x0c, KEY_REWIND },             /* Rewind */
+       { 0x07, 0x0d, KEY_PLAY },               /* Play/Pause */
+       { 0x07, 0x0e, KEY_VOLUMEUP },           /* Volume + */
+       { 0x07, 0x0f, KEY_VOLUMEDOWN },         /* Volume - */
+       { 0x07, 0x10, KEY_RECORD },             /* Record */
+       { 0x07, 0x11, KEY_STOP },               /* Stop */
+       { 0x07, 0x12, KEY_ZOOM },               /* TV */
+       { 0x07, 0x13, KEY_EPG },                /* Info/EPG */
+       { 0x07, 0x14, KEY_CHANNELDOWN },        /* Channel - */
+       { 0x07, 0x15, KEY_CHANNELUP },          /* Channel + */
+       { 0x07, 0x1e, KEY_1 },
+       { 0x07, 0x1f, KEY_2 },
+       { 0x07, 0x20, KEY_3 },
+       { 0x07, 0x21, KEY_4 },
+       { 0x07, 0x22, KEY_5 },
+       { 0x07, 0x23, KEY_6 },
+       { 0x07, 0x24, KEY_7 },
+       { 0x07, 0x25, KEY_8 },
+       { 0x07, 0x26, KEY_9 },
+       { 0x07, 0x08, KEY_LEFT },               /* LEFT */
+       { 0x07, 0x27, KEY_0 },
+};
+
+static u8 af9015_ir_table_trekstor[] = {
+       0x00, 0xff, 0x86, 0x79, 0x04, 0x07, 0x00,
+       0x00, 0xff, 0x85, 0x7a, 0x05, 0x07, 0x00,
+       0x00, 0xff, 0x87, 0x78, 0x06, 0x07, 0x00,
+       0x00, 0xff, 0x8c, 0x73, 0x07, 0x07, 0x00,
+       0x00, 0xff, 0x89, 0x76, 0x09, 0x07, 0x00,
+       0x00, 0xff, 0x88, 0x77, 0x0a, 0x07, 0x00,
+       0x00, 0xff, 0x8a, 0x75, 0x0b, 0x07, 0x00,
+       0x00, 0xff, 0x9e, 0x61, 0x0c, 0x07, 0x00,
+       0x00, 0xff, 0x8d, 0x72, 0x0d, 0x07, 0x00,
+       0x00, 0xff, 0x8b, 0x74, 0x0e, 0x07, 0x00,
+       0x00, 0xff, 0x9b, 0x64, 0x0f, 0x07, 0x00,
+       0x00, 0xff, 0x9d, 0x62, 0x10, 0x07, 0x00,
+       0x00, 0xff, 0x8e, 0x71, 0x11, 0x07, 0x00,
+       0x00, 0xff, 0x9c, 0x63, 0x12, 0x07, 0x00,
+       0x00, 0xff, 0x8f, 0x70, 0x13, 0x07, 0x00,
+       0x00, 0xff, 0x93, 0x6c, 0x14, 0x07, 0x00,
+       0x00, 0xff, 0x97, 0x68, 0x15, 0x07, 0x00,
+       0x00, 0xff, 0x92, 0x6d, 0x1e, 0x07, 0x00,
+       0x00, 0xff, 0x96, 0x69, 0x1f, 0x07, 0x00,
+       0x00, 0xff, 0x9a, 0x65, 0x20, 0x07, 0x00,
+       0x00, 0xff, 0x91, 0x6e, 0x21, 0x07, 0x00,
+       0x00, 0xff, 0x95, 0x6a, 0x22, 0x07, 0x00,
+       0x00, 0xff, 0x99, 0x66, 0x23, 0x07, 0x00,
+       0x00, 0xff, 0x90, 0x6f, 0x24, 0x07, 0x00,
+       0x00, 0xff, 0x94, 0x6b, 0x25, 0x07, 0x00,
+       0x00, 0xff, 0x98, 0x67, 0x26, 0x07, 0x00,
+       0x00, 0xff, 0x9f, 0x60, 0x08, 0x07, 0x00,
+       0x00, 0xff, 0x84, 0x7b, 0x27, 0x07, 0x00,
+};
+
 #endif
index 5862820..52badc0 100644 (file)
@@ -250,6 +250,7 @@ static int ce6230_probe(struct usb_interface *intf,
 
 static struct usb_device_id ce6230_table[] = {
        { USB_DEVICE(USB_VID_INTEL, USB_PID_INTEL_CE9500) },
+       { USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_A310) },
        { } /* Terminating entry */
 };
 MODULE_DEVICE_TABLE(usb, ce6230_table);
@@ -284,13 +285,18 @@ static struct dvb_usb_device_properties ce6230_properties = {
 
        .i2c_algo = &ce6230_i2c_algo,
 
-       .num_device_descs = 1,
+       .num_device_descs = 2,
        .devices = {
                {
                        .name = "Intel CE9500 reference design",
                        .cold_ids = {NULL},
                        .warm_ids = {&ce6230_table[0], NULL},
                },
+               {
+                       .name = "AVerMedia A310 USB 2.0 DVB-T tuner",
+                       .cold_ids = {NULL},
+                       .warm_ids = {&ce6230_table[1], NULL},
+               },
        }
 };
 
index dc7ea21..f506c74 100644 (file)
@@ -65,6 +65,7 @@
 #define USB_PID_AFATECH_AF9005                         0x9020
 #define USB_PID_AFATECH_AF9015_9015                    0x9015
 #define USB_PID_AFATECH_AF9015_9016                    0x9016
+#define USB_PID_TREKSTOR_DVBT                          0x901b
 #define USB_VID_ALINK_DTU                              0xf170
 #define USB_PID_ANSONIC_DVBT_USB                       0x6000
 #define USB_PID_ANYSEE                                 0x861f
 #define USB_PID_KWORLD_399U                            0xe399
 #define USB_PID_KWORLD_395U                            0xe396
 #define USB_PID_KWORLD_395U_2                          0xe39b
+#define USB_PID_KWORLD_395U_3                          0xe395
 #define USB_PID_KWORLD_PC160_2T                                0xc160
 #define USB_PID_KWORLD_VSTREAM_COLD                    0x17de
 #define USB_PID_KWORLD_VSTREAM_WARM                    0x17df
 #define USB_PID_AVERMEDIA_VOLAR_X                      0xa815
 #define USB_PID_AVERMEDIA_VOLAR_X_2                    0x8150
 #define USB_PID_AVERMEDIA_A309                         0xa309
+#define USB_PID_AVERMEDIA_A310                         0xa310
+#define USB_PID_AVERMEDIA_A850                         0x850a
 #define USB_PID_TECHNOTREND_CONNECT_S2400               0x3006
 #define USB_PID_TERRATEC_CINERGY_DT_XS_DIVERSITY       0x005a
 #define USB_PID_TERRATEC_CINERGY_DT_XS_DIVERSITY_2     0x0081
index 12f7730..32526f1 100644 (file)
@@ -151,7 +151,7 @@ static void debug_fcp(const u8 *data, int length)
                subunit_type = data[1] >> 3;
                subunit_id = data[1] & 7;
                op = subunit_type == 0x1e || subunit_id == 5 ? ~0 : data[2];
-               printk(KERN_INFO "%ssu=%x.%x l=%zu: %-8s - %s\n",
+               printk(KERN_INFO "%ssu=%x.%x l=%d: %-8s - %s\n",
                       prefix, subunit_type, subunit_id, length,
                       debug_fcp_ctype(data[0]),
                       debug_fcp_opcode(op, data, length));
index a486a7f..23e4cff 100644 (file)
@@ -513,6 +513,13 @@ config DVB_LGS8GL5
        help
          A DMB-TH tuner module. Say Y when you want to support this frontend.
 
+config DVB_LGS8GXX
+       tristate "Legend Silicon LGS8913/LGS8GL5/LGS8GXX DMB-TH demodulator"
+       depends on DVB_CORE && I2C
+       default m if DVB_FE_CUSTOMISE
+       help
+         A DMB-TH tuner module. Say Y when you want to support this frontend.
+
 comment "Tools to develop new frontends"
 
 config DVB_DUMMY_FE
index 65a336a..bc2b00a 100644 (file)
@@ -61,6 +61,7 @@ obj-$(CONFIG_DVB_TDA10048) += tda10048.o
 obj-$(CONFIG_DVB_TUNER_CX24113) += cx24113.o
 obj-$(CONFIG_DVB_S5H1411) += s5h1411.o
 obj-$(CONFIG_DVB_LGS8GL5) += lgs8gl5.o
+obj-$(CONFIG_DVB_LGS8GXX) += lgs8gxx.o
 obj-$(CONFIG_DVB_DUMMY_FE) += dvb_dummy_fe.o
 obj-$(CONFIG_DVB_AF9013) += af9013.o
 obj-$(CONFIG_DVB_CX24116) += cx24116.o
index d63e152..9e9a755 100644 (file)
@@ -652,7 +652,7 @@ static int au8522_reset(struct v4l2_subdev *sd, u32 val)
 }
 
 static int au8522_s_video_routing(struct v4l2_subdev *sd,
-                                 const struct v4l2_routing *route)
+                                       u32 input, u32 output, u32 config)
 {
        struct au8522_state *state = to_state(sd);
 
@@ -663,11 +663,11 @@ static int au8522_s_video_routing(struct v4l2_subdev *sd,
           closed), and then came back to analog mode */
        au8522_writereg(state, 0x106, 1);
 
-       if (route->input == AU8522_COMPOSITE_CH1) {
+       if (input == AU8522_COMPOSITE_CH1) {
                au8522_setup_cvbs_mode(state);
-       } else if (route->input == AU8522_SVIDEO_CH13) {
+       } else if (input == AU8522_SVIDEO_CH13) {
                au8522_setup_svideo_mode(state);
-       } else if (route->input == AU8522_COMPOSITE_CH4_SIF) {
+       } else if (input == AU8522_COMPOSITE_CH4_SIF) {
                au8522_setup_cvbs_tuner_mode(state);
        } else {
                printk(KERN_ERR "au8522 mode not currently supported\n");
@@ -677,10 +677,10 @@ static int au8522_s_video_routing(struct v4l2_subdev *sd,
 }
 
 static int au8522_s_audio_routing(struct v4l2_subdev *sd,
-                                 const struct v4l2_routing *route)
+                                       u32 input, u32 output, u32 config)
 {
        struct au8522_state *state = to_state(sd);
-       set_audio_input(state, route->input);
+       set_audio_input(state, input);
        return 0;
 }
 
diff --git a/drivers/media/dvb/frontends/lgs8gxx.c b/drivers/media/dvb/frontends/lgs8gxx.c
new file mode 100644 (file)
index 0000000..f9785df
--- /dev/null
@@ -0,0 +1,816 @@
+/*
+ *    Support for Legend Silicon DMB-TH demodulator
+ *    LGS8913, LGS8GL5
+ *    experimental support LGS8G42, LGS8G52
+ *
+ *    Copyright (C) 2007,2008 David T.L. Wong <davidtlwong@gmail.com>
+ *    Copyright (C) 2008 Sirius International (Hong Kong) Limited
+ *    Timothy Lee <timothy.lee@siriushk.com> (for initial work on LGS8GL5)
+ *
+ *    This program is free software; you can redistribute it and/or modify
+ *    it under the terms of the GNU General Public License as published by
+ *    the Free Software Foundation; either version 2 of the License, or
+ *    (at your option) any later version.
+ *
+ *    This program is distributed in the hope that it will be useful,
+ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *    GNU General Public License for more details.
+ *
+ *    You should have received a copy of the GNU General Public License
+ *    along with this program; if not, write to the Free Software
+ *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+
+#include <asm/div64.h>
+
+#include "dvb_frontend.h"
+
+#include "lgs8gxx.h"
+#include "lgs8gxx_priv.h"
+
+#define dprintk(args...) \
+       do { \
+               if (debug) \
+                       printk(KERN_DEBUG "lgs8gxx: " args); \
+       } while (0)
+
+static int debug;
+static int fake_signal_str;
+
+module_param(debug, int, 0644);
+MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off).");
+
+module_param(fake_signal_str, int, 0644);
+MODULE_PARM_DESC(fake_signal_str, "fake signal strength for LGS8913."
+"Signal strength calculation is slow.(default:off).");
+
+/* LGS8GXX internal helper functions */
+
+static int lgs8gxx_write_reg(struct lgs8gxx_state *priv, u8 reg, u8 data)
+{
+       int ret;
+       u8 buf[] = { reg, data };
+       struct i2c_msg msg = { .flags = 0, .buf = buf, .len = 2 };
+
+       msg.addr = priv->config->demod_address;
+       if (reg >= 0xC0)
+               msg.addr += 0x02;
+
+       if (debug >= 2)
+               printk(KERN_DEBUG "%s: reg=0x%02X, data=0x%02X\n",
+                       __func__, reg, data);
+
+       ret = i2c_transfer(priv->i2c, &msg, 1);
+
+       if (ret != 1)
+               dprintk(KERN_DEBUG "%s: error reg=0x%x, data=0x%x, ret=%i\n",
+                       __func__, reg, data, ret);
+
+       return (ret != 1) ? -1 : 0;
+}
+
+static int lgs8gxx_read_reg(struct lgs8gxx_state *priv, u8 reg, u8 *p_data)
+{
+       int ret;
+       u8 dev_addr;
+
+       u8 b0[] = { reg };
+       u8 b1[] = { 0 };
+       struct i2c_msg msg[] = {
+               { .flags = 0, .buf = b0, .len = 1 },
+               { .flags = I2C_M_RD, .buf = b1, .len = 1 },
+       };
+
+       dev_addr = priv->config->demod_address;
+       if (reg >= 0xC0)
+               dev_addr += 0x02;
+       msg[1].addr =  msg[0].addr = dev_addr;
+
+       ret = i2c_transfer(priv->i2c, msg, 2);
+       if (ret != 2) {
+               dprintk(KERN_DEBUG "%s: error reg=0x%x, ret=%i\n",
+                       __func__, reg, ret);
+               return -1;
+       }
+
+       *p_data = b1[0];
+       if (debug >= 2)
+               printk(KERN_DEBUG "%s: reg=0x%02X, data=0x%02X\n",
+                       __func__, reg, b1[0]);
+       return 0;
+}
+
+static int lgs8gxx_soft_reset(struct lgs8gxx_state *priv)
+{
+       lgs8gxx_write_reg(priv, 0x02, 0x00);
+       msleep(1);
+       lgs8gxx_write_reg(priv, 0x02, 0x01);
+       msleep(100);
+
+       return 0;
+}
+
+static int lgs8gxx_set_ad_mode(struct lgs8gxx_state *priv)
+{
+       const struct lgs8gxx_config *config = priv->config;
+       u8 if_conf;
+
+       if_conf = 0x10; /* AGC output on; */
+
+       if_conf |=
+               ((config->ext_adc) ? 0x80 : 0x00) |
+               ((config->if_neg_center) ? 0x04 : 0x00) |
+               ((config->if_freq == 0) ? 0x08 : 0x00) | /* Baseband */
+               ((config->ext_adc && config->adc_signed) ? 0x02 : 0x00) |
+               ((config->ext_adc && config->if_neg_edge) ? 0x01 : 0x00);
+
+       if (config->ext_adc &&
+               (config->prod == LGS8GXX_PROD_LGS8G52)) {
+               lgs8gxx_write_reg(priv, 0xBA, 0x40);
+       }
+
+       lgs8gxx_write_reg(priv, 0x07, if_conf);
+
+       return 0;
+}
+
+static int lgs8gxx_set_if_freq(struct lgs8gxx_state *priv, u32 freq /*in kHz*/)
+{
+       u64 val;
+       u32 v32;
+       u32 if_clk;
+
+       if_clk = priv->config->if_clk_freq;
+
+       val = freq;
+       if (freq != 0) {
+               val *= (u64)1 << 32;
+               if (if_clk != 0)
+                       do_div(val, if_clk);
+               v32 = val & 0xFFFFFFFF;
+               dprintk("Set IF Freq to %dkHz\n", freq);
+       } else {
+               v32 = 0;
+               dprintk("Set IF Freq to baseband\n");
+       }
+       dprintk("AFC_INIT_FREQ = 0x%08X\n", v32);
+
+       lgs8gxx_write_reg(priv, 0x09, 0xFF & (v32));
+       lgs8gxx_write_reg(priv, 0x0A, 0xFF & (v32 >> 8));
+       lgs8gxx_write_reg(priv, 0x0B, 0xFF & (v32 >> 16));
+       lgs8gxx_write_reg(priv, 0x0C, 0xFF & (v32 >> 24));
+
+       return 0;
+}
+
+static int lgs8gxx_set_mode_auto(struct lgs8gxx_state *priv)
+{
+       u8 t;
+
+       if (priv->config->prod == LGS8GXX_PROD_LGS8913)
+               lgs8gxx_write_reg(priv, 0xC6, 0x01);
+
+       lgs8gxx_read_reg(priv, 0x7E, &t);
+       lgs8gxx_write_reg(priv, 0x7E, t | 0x01);
+
+       /* clear FEC self reset */
+       lgs8gxx_read_reg(priv, 0xC5, &t);
+       lgs8gxx_write_reg(priv, 0xC5, t & 0xE0);
+
+       if (priv->config->prod == LGS8GXX_PROD_LGS8913) {
+               /* FEC auto detect */
+               lgs8gxx_write_reg(priv, 0xC1, 0x03);
+
+               lgs8gxx_read_reg(priv, 0x7C, &t);
+               t = (t & 0x8C) | 0x03;
+               lgs8gxx_write_reg(priv, 0x7C, t);
+       }
+
+
+       if (priv->config->prod == LGS8GXX_PROD_LGS8913) {
+               /* BER test mode */
+               lgs8gxx_read_reg(priv, 0xC3, &t);
+               t = (t & 0xEF) |  0x10;
+               lgs8gxx_write_reg(priv, 0xC3, t);
+       }
+
+       if (priv->config->prod == LGS8GXX_PROD_LGS8G52)
+               lgs8gxx_write_reg(priv, 0xD9, 0x40);
+
+       return 0;
+}
+
+static int lgs8gxx_set_mode_manual(struct lgs8gxx_state *priv)
+{
+       int ret = 0;
+       u8 t;
+
+       /* turn off auto-detect; manual settings */
+       lgs8gxx_write_reg(priv, 0x7E, 0);
+       if (priv->config->prod == LGS8GXX_PROD_LGS8913)
+               lgs8gxx_write_reg(priv, 0xC1, 0);
+
+       ret = lgs8gxx_read_reg(priv, 0xC5, &t);
+       t = (t & 0xE0) | 0x06;
+       lgs8gxx_write_reg(priv, 0xC5, t);
+
+       lgs8gxx_soft_reset(priv);
+
+       return 0;
+}
+
+static int lgs8gxx_is_locked(struct lgs8gxx_state *priv, u8 *locked)
+{
+       int ret = 0;
+       u8 t;
+
+       ret = lgs8gxx_read_reg(priv, 0x4B, &t);
+       if (ret != 0)
+               return ret;
+
+       *locked = ((t & 0xC0) == 0xC0) ? 1 : 0;
+       return 0;
+}
+
+static int lgs8gxx_is_autodetect_finished(struct lgs8gxx_state *priv,
+                                         u8 *finished)
+{
+       int ret = 0;
+       u8 t;
+
+       ret = lgs8gxx_read_reg(priv, 0xA4, &t);
+       if (ret != 0)
+               return ret;
+
+       *finished = ((t & 0x3) == 0x1) ? 1 : 0;
+
+       return 0;
+}
+
+static int lgs8gxx_autolock_gi(struct lgs8gxx_state *priv, u8 gi, u8 *locked)
+{
+       int err;
+       u8 ad_fini = 0;
+
+       if (gi == GI_945)
+               dprintk("try GI 945\n");
+       else if (gi == GI_595)
+               dprintk("try GI 595\n");
+       else if (gi == GI_420)
+               dprintk("try GI 420\n");
+       lgs8gxx_write_reg(priv, 0x04, gi);
+       lgs8gxx_soft_reset(priv);
+       msleep(50);
+       err = lgs8gxx_is_autodetect_finished(priv, &ad_fini);
+       if (err != 0)
+               return err;
+       if (ad_fini) {
+               err = lgs8gxx_is_locked(priv, locked);
+               if (err != 0)
+                       return err;
+       }
+
+       return 0;
+}
+
+static int lgs8gxx_auto_detect(struct lgs8gxx_state *priv,
+                              u8 *detected_param, u8 *gi)
+{
+       int i, j;
+       int err = 0;
+       u8 locked = 0, tmp_gi;
+
+       dprintk("%s\n", __func__);
+
+       lgs8gxx_set_mode_auto(priv);
+       /* Guard Interval */
+       lgs8gxx_write_reg(priv, 0x03, 00);
+
+       for (i = 0; i < 2; i++) {
+               for (j = 0; j < 2; j++) {
+                       tmp_gi = GI_945;
+                       err = lgs8gxx_autolock_gi(priv, GI_945, &locked);
+                       if (err)
+                               goto out;
+                       if (locked)
+                               goto locked;
+               }
+               for (j = 0; j < 2; j++) {
+                       tmp_gi = GI_420;
+                       err = lgs8gxx_autolock_gi(priv, GI_420, &locked);
+                       if (err)
+                               goto out;
+                       if (locked)
+                               goto locked;
+               }
+               tmp_gi = GI_595;
+               err = lgs8gxx_autolock_gi(priv, GI_595, &locked);
+               if (err)
+                       goto out;
+               if (locked)
+                       goto locked;
+       }
+
+locked:
+       if ((err == 0) && (locked == 1)) {
+               u8 t;
+
+               lgs8gxx_read_reg(priv, 0xA2, &t);
+               *detected_param = t;
+
+               if (tmp_gi == GI_945)
+                       dprintk("GI 945 locked\n");
+               else if (tmp_gi == GI_595)
+                       dprintk("GI 595 locked\n");
+               else if (tmp_gi == GI_420)
+                       dprintk("GI 420 locked\n");
+               *gi = tmp_gi;
+       }
+       if (!locked)
+               err = -1;
+
+out:
+       return err;
+}
+
+static void lgs8gxx_auto_lock(struct lgs8gxx_state *priv)
+{
+       s8 err;
+       u8 gi = 0x2;
+       u8 detected_param = 0;
+
+       err = lgs8gxx_auto_detect(priv, &detected_param, &gi);
+
+       if (err != 0) {
+               dprintk("lgs8gxx_auto_detect failed\n");
+       }
+
+       /* Apply detected parameters */
+       if (priv->config->prod == LGS8GXX_PROD_LGS8913) {
+               u8 inter_leave_len = detected_param & TIM_MASK ;
+               inter_leave_len = (inter_leave_len == TIM_LONG) ? 0x60 : 0x40;
+               detected_param &= CF_MASK | SC_MASK  | LGS_FEC_MASK;
+               detected_param |= inter_leave_len;
+       }
+       lgs8gxx_write_reg(priv, 0x7D, detected_param);
+       if (priv->config->prod == LGS8GXX_PROD_LGS8913)
+               lgs8gxx_write_reg(priv, 0xC0, detected_param);
+       /* lgs8gxx_soft_reset(priv); */
+
+       /* Enter manual mode */
+       lgs8gxx_set_mode_manual(priv);
+
+       switch (gi) {
+       case GI_945:
+               priv->curr_gi = 945; break;
+       case GI_595:
+               priv->curr_gi = 595; break;
+       case GI_420:
+               priv->curr_gi = 420; break;
+       default:
+               priv->curr_gi = 945; break;
+       }
+}
+
+static int lgs8gxx_set_mpeg_mode(struct lgs8gxx_state *priv,
+       u8 serial, u8 clk_pol, u8 clk_gated)
+{
+       int ret = 0;
+       u8 t;
+
+       ret = lgs8gxx_read_reg(priv, 0xC2, &t);
+       if (ret != 0)
+               return ret;
+
+       t &= 0xF8;
+       t |= serial ? TS_SERIAL : TS_PARALLEL;
+       t |= clk_pol ? TS_CLK_INVERTED : TS_CLK_NORMAL;
+       t |= clk_gated ? TS_CLK_GATED : TS_CLK_FREERUN;
+
+       ret = lgs8gxx_write_reg(priv, 0xC2, t);
+       if (ret != 0)
+               return ret;
+
+       return 0;
+}
+
+
+/* LGS8913 demod frontend functions */
+
+static int lgs8913_init(struct lgs8gxx_state *priv)
+{
+       u8 t;
+
+       /* LGS8913 specific */
+       lgs8gxx_write_reg(priv, 0xc1, 0x3);
+
+       lgs8gxx_read_reg(priv, 0x7c, &t);
+       lgs8gxx_write_reg(priv, 0x7c, (t&0x8c) | 0x3);
+
+       /* LGS8913 specific */
+       lgs8gxx_read_reg(priv, 0xc3, &t);
+       lgs8gxx_write_reg(priv, 0xc3, t&0x10);
+
+
+       return 0;
+}
+
+static int lgs8gxx_init(struct dvb_frontend *fe)
+{
+       struct lgs8gxx_state *priv =
+               (struct lgs8gxx_state *)fe->demodulator_priv;
+       const struct lgs8gxx_config *config = priv->config;
+       u8 data = 0;
+       s8 err;
+       dprintk("%s\n", __func__);
+
+       lgs8gxx_read_reg(priv, 0, &data);
+       dprintk("reg 0 = 0x%02X\n", data);
+
+       /* Setup MPEG output format */
+       err = lgs8gxx_set_mpeg_mode(priv, config->serial_ts,
+                                   config->ts_clk_pol,
+                                   config->ts_clk_gated);
+       if (err != 0)
+               return -EIO;
+
+       if (config->prod == LGS8GXX_PROD_LGS8913)
+               lgs8913_init(priv);
+       lgs8gxx_set_if_freq(priv, priv->config->if_freq);
+       if (config->prod != LGS8GXX_PROD_LGS8913)
+               lgs8gxx_set_ad_mode(priv);
+
+       return 0;
+}
+
+static void lgs8gxx_release(struct dvb_frontend *fe)
+{
+       struct lgs8gxx_state *state = fe->demodulator_priv;
+       dprintk("%s\n", __func__);
+
+       kfree(state);
+}
+
+
+static int lgs8gxx_write(struct dvb_frontend *fe, u8 *buf, int len)
+{
+       struct lgs8gxx_state *priv = fe->demodulator_priv;
+
+       if (len != 2)
+               return -EINVAL;
+
+       return lgs8gxx_write_reg(priv, buf[0], buf[1]);
+}
+
+static int lgs8gxx_set_fe(struct dvb_frontend *fe,
+                         struct dvb_frontend_parameters *fe_params)
+{
+       struct lgs8gxx_state *priv = fe->demodulator_priv;
+
+       dprintk("%s\n", __func__);
+
+       /* set frequency */
+       if (fe->ops.tuner_ops.set_params) {
+               fe->ops.tuner_ops.set_params(fe, fe_params);
+               if (fe->ops.i2c_gate_ctrl)
+                       fe->ops.i2c_gate_ctrl(fe, 0);
+       }
+
+       /* start auto lock */
+       lgs8gxx_auto_lock(priv);
+
+       msleep(10);
+
+       return 0;
+}
+
+static int lgs8gxx_get_fe(struct dvb_frontend *fe,
+                         struct dvb_frontend_parameters *fe_params)
+{
+       struct lgs8gxx_state *priv = fe->demodulator_priv;
+       u8 t;
+
+       dprintk("%s\n", __func__);
+
+       /* TODO: get real readings from device */
+       /* inversion status */
+       fe_params->inversion = INVERSION_OFF;
+
+       /* bandwidth */
+       fe_params->u.ofdm.bandwidth = BANDWIDTH_8_MHZ;
+
+
+       lgs8gxx_read_reg(priv, 0x7D, &t);
+       fe_params->u.ofdm.code_rate_HP = FEC_AUTO;
+       fe_params->u.ofdm.code_rate_LP = FEC_AUTO;
+
+       /* constellation */
+       switch (t & SC_MASK) {
+       case SC_QAM64:
+               fe_params->u.ofdm.constellation = QAM_64;
+               break;
+       case SC_QAM32:
+               fe_params->u.ofdm.constellation = QAM_32;
+               break;
+       case SC_QAM16:
+               fe_params->u.ofdm.constellation = QAM_16;
+               break;
+       case SC_QAM4:
+       case SC_QAM4NR:
+               fe_params->u.ofdm.constellation = QPSK;
+               break;
+       default:
+               fe_params->u.ofdm.constellation = QAM_64;
+       }
+
+       /* transmission mode */
+       fe_params->u.ofdm.transmission_mode = TRANSMISSION_MODE_AUTO;
+
+       /* guard interval */
+       fe_params->u.ofdm.guard_interval = GUARD_INTERVAL_AUTO;
+
+       /* hierarchy */
+       fe_params->u.ofdm.hierarchy_information = HIERARCHY_NONE;
+
+       return 0;
+}
+
+static
+int lgs8gxx_get_tune_settings(struct dvb_frontend *fe,
+                             struct dvb_frontend_tune_settings *fesettings)
+{
+       /* FIXME: copy from tda1004x.c */
+       fesettings->min_delay_ms = 800;
+       fesettings->step_size = 0;
+       fesettings->max_drift = 0;
+       return 0;
+}
+
+static int lgs8gxx_read_status(struct dvb_frontend *fe, fe_status_t *fe_status)
+{
+       struct lgs8gxx_state *priv = fe->demodulator_priv;
+       s8 ret;
+       u8 t;
+
+       dprintk("%s\n", __func__);
+
+       ret = lgs8gxx_read_reg(priv, 0x4B, &t);
+       if (ret != 0)
+               return -EIO;
+
+       dprintk("Reg 0x4B: 0x%02X\n", t);
+
+       *fe_status = 0;
+       if (priv->config->prod == LGS8GXX_PROD_LGS8913) {
+               if ((t & 0x40) == 0x40)
+                       *fe_status |= FE_HAS_SIGNAL | FE_HAS_CARRIER;
+               if ((t & 0x80) == 0x80)
+                       *fe_status |= FE_HAS_VITERBI | FE_HAS_SYNC |
+                               FE_HAS_LOCK;
+       } else {
+               if ((t & 0x80) == 0x80)
+                       *fe_status |= FE_HAS_SIGNAL | FE_HAS_CARRIER |
+                               FE_HAS_VITERBI | FE_HAS_SYNC | FE_HAS_LOCK;
+       }
+
+       /* success */
+       dprintk("%s: fe_status=0x%x\n", __func__, *fe_status);
+       return 0;
+}
+
+static int lgs8gxx_read_signal_agc(struct lgs8gxx_state *priv, u16 *signal)
+{
+       u16 v;
+       u8 agc_lvl[2], cat;
+
+       dprintk("%s()\n", __func__);
+       lgs8gxx_read_reg(priv, 0x3F, &agc_lvl[0]);
+       lgs8gxx_read_reg(priv, 0x3E, &agc_lvl[1]);
+
+       v = agc_lvl[0];
+       v <<= 8;
+       v |= agc_lvl[1];
+
+       dprintk("agc_lvl: 0x%04X\n", v);
+
+       if (v < 0x100)
+               cat = 0;
+       else if (v < 0x190)
+               cat = 5;
+       else if (v < 0x2A8)
+               cat = 4;
+       else if (v < 0x381)
+               cat = 3;
+       else if (v < 0x400)
+               cat = 2;
+       else if (v == 0x400)
+               cat = 1;
+       else
+               cat = 0;
+
+       *signal = cat;
+
+       return 0;
+}
+
+static int lgs8913_read_signal_strength(struct lgs8gxx_state *priv, u16 *signal)
+{
+       u8 t; s8 ret;
+       s16 max_strength = 0;
+       u8 str;
+       u16 i, gi = priv->curr_gi;
+
+       dprintk("%s\n", __func__);
+
+       ret = lgs8gxx_read_reg(priv, 0x4B, &t);
+       if (ret != 0)
+               return -EIO;
+
+       if (fake_signal_str) {
+               if ((t & 0xC0) == 0xC0) {
+                       dprintk("Fake signal strength as 50\n");
+                       *signal = 0x32;
+               } else
+                       *signal = 0;
+               return 0;
+       }
+
+       dprintk("gi = %d\n", gi);
+       for (i = 0; i < gi; i++) {
+
+               if ((i & 0xFF) == 0)
+                       lgs8gxx_write_reg(priv, 0x84, 0x03 & (i >> 8));
+               lgs8gxx_write_reg(priv, 0x83, i & 0xFF);
+
+               lgs8gxx_read_reg(priv, 0x94, &str);
+               if (max_strength < str)
+                       max_strength = str;
+       }
+
+       *signal = max_strength;
+       dprintk("%s: signal=0x%02X\n", __func__, *signal);
+
+       lgs8gxx_read_reg(priv, 0x95, &t);
+       dprintk("%s: AVG Noise=0x%02X\n", __func__, t);
+
+       return 0;
+}
+
+static int lgs8gxx_read_signal_strength(struct dvb_frontend *fe, u16 *signal)
+{
+       struct lgs8gxx_state *priv = fe->demodulator_priv;
+
+       if (priv->config->prod == LGS8GXX_PROD_LGS8913)
+               return lgs8913_read_signal_strength(priv, signal);
+       else
+               return lgs8gxx_read_signal_agc(priv, signal);
+}
+
+static int lgs8gxx_read_snr(struct dvb_frontend *fe, u16 *snr)
+{
+       struct lgs8gxx_state *priv = fe->demodulator_priv;
+       u8 t;
+       *snr = 0;
+
+       lgs8gxx_read_reg(priv, 0x95, &t);
+       dprintk("AVG Noise=0x%02X\n", t);
+       *snr = 256 - t;
+       *snr <<= 8;
+       dprintk("snr=0x%x\n", *snr);
+
+       return 0;
+}
+
+static int lgs8gxx_read_ucblocks(struct dvb_frontend *fe, u32 *ucblocks)
+{
+       *ucblocks = 0;
+       dprintk("%s: ucblocks=0x%x\n", __func__, *ucblocks);
+       return 0;
+}
+
+static int lgs8gxx_read_ber(struct dvb_frontend *fe, u32 *ber)
+{
+       struct lgs8gxx_state *priv = fe->demodulator_priv;
+       u8 r0, r1, r2, r3;
+       u32 total_cnt, err_cnt;
+
+       dprintk("%s\n", __func__);
+
+       lgs8gxx_write_reg(priv, 0xc6, 0x01);
+       lgs8gxx_write_reg(priv, 0xc6, 0x41);
+       lgs8gxx_write_reg(priv, 0xc6, 0x01);
+
+       msleep(200);
+
+       lgs8gxx_write_reg(priv, 0xc6, 0x81);
+       lgs8gxx_read_reg(priv, 0xd0, &r0);
+       lgs8gxx_read_reg(priv, 0xd1, &r1);
+       lgs8gxx_read_reg(priv, 0xd2, &r2);
+       lgs8gxx_read_reg(priv, 0xd3, &r3);
+       total_cnt = (r3 << 24) | (r2 << 16) | (r1 << 8) | (r0);
+       lgs8gxx_read_reg(priv, 0xd4, &r0);
+       lgs8gxx_read_reg(priv, 0xd5, &r1);
+       lgs8gxx_read_reg(priv, 0xd6, &r2);
+       lgs8gxx_read_reg(priv, 0xd7, &r3);
+       err_cnt = (r3 << 24) | (r2 << 16) | (r1 << 8) | (r0);
+       dprintk("error=%d total=%d\n", err_cnt, total_cnt);
+
+       if (total_cnt == 0)
+               *ber = 0;
+       else
+               *ber = err_cnt * 100 / total_cnt;
+
+       dprintk("%s: ber=0x%x\n", __func__, *ber);
+       return 0;
+}
+
+static int lgs8gxx_i2c_gate_ctrl(struct dvb_frontend *fe, int enable)
+{
+       struct lgs8gxx_state *priv = fe->demodulator_priv;
+
+       if (priv->config->tuner_address == 0)
+               return 0;
+       if (enable) {
+               u8 v = 0x80 | priv->config->tuner_address;
+               return lgs8gxx_write_reg(priv, 0x01, v);
+       }
+       return lgs8gxx_write_reg(priv, 0x01, 0);
+}
+
+static struct dvb_frontend_ops lgs8gxx_ops = {
+       .info = {
+               .name = "Legend Silicon LGS8913/LGS8GXX DMB-TH",
+               .type = FE_OFDM,
+               .frequency_min = 474000000,
+               .frequency_max = 858000000,
+               .frequency_stepsize = 10000,
+               .caps =
+                       FE_CAN_FEC_AUTO |
+                       FE_CAN_QAM_AUTO |
+                       FE_CAN_TRANSMISSION_MODE_AUTO |
+                       FE_CAN_GUARD_INTERVAL_AUTO
+       },
+
+       .release = lgs8gxx_release,
+
+       .init = lgs8gxx_init,
+       .write = lgs8gxx_write,
+       .i2c_gate_ctrl = lgs8gxx_i2c_gate_ctrl,
+
+       .set_frontend = lgs8gxx_set_fe,
+       .get_frontend = lgs8gxx_get_fe,
+       .get_tune_settings = lgs8gxx_get_tune_settings,
+
+       .read_status = lgs8gxx_read_status,
+       .read_ber = lgs8gxx_read_ber,
+       .read_signal_strength = lgs8gxx_read_signal_strength,
+       .read_snr = lgs8gxx_read_snr,
+       .read_ucblocks = lgs8gxx_read_ucblocks,
+};
+
+struct dvb_frontend *lgs8gxx_attach(const struct lgs8gxx_config *config,
+       struct i2c_adapter *i2c)
+{
+       struct lgs8gxx_state *priv = NULL;
+       u8 data = 0;
+
+       dprintk("%s()\n", __func__);
+
+       if (config == NULL || i2c == NULL)
+               return NULL;
+
+       priv = kzalloc(sizeof(struct lgs8gxx_state), GFP_KERNEL);
+       if (priv == NULL)
+               goto error_out;
+
+       priv->config = config;
+       priv->i2c = i2c;
+
+       /* check if the demod is there */
+       if (lgs8gxx_read_reg(priv, 0, &data) != 0) {
+               dprintk("%s lgs8gxx not found at i2c addr 0x%02X\n",
+                       __func__, priv->config->demod_address);
+               goto error_out;
+       }
+
+       lgs8gxx_read_reg(priv, 1, &data);
+
+       memcpy(&priv->frontend.ops, &lgs8gxx_ops,
+              sizeof(struct dvb_frontend_ops));
+       priv->frontend.demodulator_priv = priv;
+
+       return &priv->frontend;
+
+error_out:
+       dprintk("%s() error_out\n", __func__);
+       kfree(priv);
+       return NULL;
+
+}
+EXPORT_SYMBOL(lgs8gxx_attach);
+
+MODULE_DESCRIPTION("Legend Silicon LGS8913/LGS8GXX DMB-TH demodulator driver");
+MODULE_AUTHOR("David T. L. Wong <davidtlwong@gmail.com>");
+MODULE_LICENSE("GPL");
diff --git a/drivers/media/dvb/frontends/lgs8gxx.h b/drivers/media/dvb/frontends/lgs8gxx.h
new file mode 100644 (file)
index 0000000..321d366
--- /dev/null
@@ -0,0 +1,90 @@
+/*
+ *    Support for Legend Silicon DMB-TH demodulator
+ *    LGS8913, LGS8GL5
+ *    experimental support LGS8G42, LGS8G52
+ *
+ *    Copyright (C) 2007,2008 David T.L. Wong <davidtlwong@gmail.com>
+ *    Copyright (C) 2008 Sirius International (Hong Kong) Limited
+ *    Timothy Lee <timothy.lee@siriushk.com> (for initial work on LGS8GL5)
+ *
+ *    This program is free software; you can redistribute it and/or modify
+ *    it under the terms of the GNU General Public License as published by
+ *    the Free Software Foundation; either version 2 of the License, or
+ *    (at your option) any later version.
+ *
+ *    This program is distributed in the hope that it will be useful,
+ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *    GNU General Public License for more details.
+ *
+ *    You should have received a copy of the GNU General Public License
+ *    along with this program; if not, write to the Free Software
+ *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+
+#ifndef __LGS8GXX_H__
+#define __LGS8GXX_H__
+
+#include <linux/dvb/frontend.h>
+#include <linux/i2c.h>
+
+#define LGS8GXX_PROD_LGS8913 0
+#define LGS8GXX_PROD_LGS8GL5 1
+#define LGS8GXX_PROD_LGS8G42 3
+#define LGS8GXX_PROD_LGS8G52 4
+#define LGS8GXX_PROD_LGS8G54 5
+
+struct lgs8gxx_config {
+
+       /* product type */
+       u8 prod;
+
+       /* the demodulator's i2c address */
+       u8 demod_address;
+
+       /* parallel or serial transport stream */
+       u8 serial_ts;
+
+       /* transport stream polarity*/
+       u8 ts_clk_pol;
+
+       /* transport stream clock gated by ts_valid */
+       u8 ts_clk_gated;
+
+       /* A/D Clock frequency */
+       u32 if_clk_freq; /* in kHz */
+
+       /* IF frequency */
+       u32 if_freq; /* in kHz */
+
+       /*Use External ADC*/
+       u8 ext_adc;
+
+       /*External ADC output two's complement*/
+       u8 adc_signed;
+
+       /*Sample IF data at falling edge of IF_CLK*/
+       u8 if_neg_edge;
+
+       /*IF use Negative center frequency*/
+       u8 if_neg_center;
+
+       /* slave address and configuration of the tuner */
+       u8 tuner_address;
+};
+
+#if defined(CONFIG_DVB_LGS8GXX) || \
+       (defined(CONFIG_DVB_LGS8GXX_MODULE) && defined(MODULE))
+extern struct dvb_frontend *lgs8gxx_attach(const struct lgs8gxx_config *config,
+                                          struct i2c_adapter *i2c);
+#else
+static inline
+struct dvb_frontend *lgs8gxx_attach(const struct lgs8gxx_config *config,
+                                   struct i2c_adapter *i2c) {
+       printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
+       return NULL;
+}
+#endif /* CONFIG_DVB_LGS8GXX */
+
+#endif /* __LGS8GXX_H__ */
diff --git a/drivers/media/dvb/frontends/lgs8gxx_priv.h b/drivers/media/dvb/frontends/lgs8gxx_priv.h
new file mode 100644 (file)
index 0000000..9776d30
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ *    Support for Legend Silicon DMB-TH demodulator
+ *    LGS8913, LGS8GL5
+ *    experimental support LGS8G42, LGS8G52
+ *
+ *    Copyright (C) 2007,2008 David T.L. Wong <davidtlwong@gmail.com>
+ *    Copyright (C) 2008 Sirius International (Hong Kong) Limited
+ *    Timothy Lee <timothy.lee@siriushk.com> (for initial work on LGS8GL5)
+ *
+ *    This program is free software; you can redistribute it and/or modify
+ *    it under the terms of the GNU General Public License as published by
+ *    the Free Software Foundation; either version 2 of the License, or
+ *    (at your option) any later version.
+ *
+ *    This program is distributed in the hope that it will be useful,
+ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *    GNU General Public License for more details.
+ *
+ *    You should have received a copy of the GNU General Public License
+ *    along with this program; if not, write to the Free Software
+ *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+
+#ifndef LGS8913_PRIV_H
+#define LGS8913_PRIV_H
+
+struct lgs8gxx_state {
+       struct i2c_adapter *i2c;
+       /* configuration settings */
+       const struct lgs8gxx_config *config;
+       struct dvb_frontend frontend;
+       u16 curr_gi; /* current guard interval */
+};
+
+#define SC_MASK                0x1C    /* Sub-Carrier Modulation Mask */
+#define SC_QAM64       0x10    /* 64QAM modulation */
+#define SC_QAM32       0x0C    /* 32QAM modulation */
+#define SC_QAM16       0x08    /* 16QAM modulation */
+#define SC_QAM4NR      0x04    /* 4QAM modulation */
+#define SC_QAM4                0x00    /* 4QAM modulation */
+
+#define LGS_FEC_MASK   0x03    /* FEC Rate Mask */
+#define LGS_FEC_0_4    0x00    /* FEC Rate 0.4 */
+#define LGS_FEC_0_6    0x01    /* FEC Rate 0.6 */
+#define LGS_FEC_0_8    0x02    /* FEC Rate 0.8 */
+
+#define TIM_MASK         0x20  /* Time Interleave Length Mask */
+#define TIM_LONG         0x00  /* Time Interleave Length = 720 */
+#define TIM_MIDDLE     0x20   /* Time Interleave Length = 240 */
+
+#define CF_MASK        0x80    /* Control Frame Mask */
+#define CF_EN  0x80    /* Control Frame On */
+
+#define GI_MASK        0x03    /* Guard Interval Mask */
+#define GI_420 0x00    /* 1/9 Guard Interval */
+#define GI_595 0x01    /* */
+#define GI_945 0x02    /* 1/4 Guard Interval */
+
+
+#define TS_PARALLEL    0x00    /* Parallel TS Output a.k.a. SPI */
+#define TS_SERIAL      0x01    /* Serial TS Output a.k.a. SSI */
+#define TS_CLK_NORMAL          0x00    /* MPEG Clock Normal */
+#define TS_CLK_INVERTED                0x02    /* MPEG Clock Inverted */
+#define TS_CLK_GATED           0x00    /* MPEG clock gated */
+#define TS_CLK_FREERUN         0x04    /* MPEG clock free running*/
+
+
+#endif
index cc54ed4..6135762 100644 (file)
@@ -33,6 +33,9 @@
 
  History:
 
+ Version 0.45:
+       Converted to v4l2_device.
+
  Version 0.44:
        Add suspend/resume functions, fix unplug of device,
        a lot of cleanups and fixes by Alexey Klimov <klimov.linux@gmail.com>
@@ -88,7 +91,7 @@
 #include <linux/slab.h>
 #include <linux/input.h>
 #include <linux/videodev2.h>
-#include <media/v4l2-common.h>
+#include <media/v4l2-device.h>
 #include <media/v4l2-ioctl.h>
 #include <linux/usb.h>
 
  */
 #include <linux/version.h>     /* for KERNEL_VERSION MACRO     */
 
-#define DRIVER_VERSION "v0.44"
-#define RADIO_VERSION KERNEL_VERSION(0, 4, 4)
-
-static struct v4l2_queryctrl radio_qctrl[] = {
-       {
-               .id            = V4L2_CID_AUDIO_MUTE,
-               .name          = "Mute",
-               .minimum       = 0,
-               .maximum       = 1,
-               .default_value = 1,
-               .type          = V4L2_CTRL_TYPE_BOOLEAN,
-       },
-/* HINT: the disabled controls are only here to satify kradio and such apps */
-       {       .id             = V4L2_CID_AUDIO_VOLUME,
-               .flags          = V4L2_CTRL_FLAG_DISABLED,
-       },
-       {
-               .id             = V4L2_CID_AUDIO_BALANCE,
-               .flags          = V4L2_CTRL_FLAG_DISABLED,
-       },
-       {
-               .id             = V4L2_CID_AUDIO_BASS,
-               .flags          = V4L2_CTRL_FLAG_DISABLED,
-       },
-       {
-               .id             = V4L2_CID_AUDIO_TREBLE,
-               .flags          = V4L2_CTRL_FLAG_DISABLED,
-       },
-       {
-               .id             = V4L2_CID_AUDIO_LOUDNESS,
-               .flags          = V4L2_CTRL_FLAG_DISABLED,
-       },
-};
+#define DRIVER_VERSION "v0.45"
+#define RADIO_VERSION KERNEL_VERSION(0, 4, 5)
 
 #define DRIVER_AUTHOR "Markus Demleitner <msdemlei@tucana.harvard.edu>"
 #define DRIVER_DESC "D-Link DSB-R100 USB FM radio driver"
@@ -167,6 +139,8 @@ module_param(radio_nr, int, 0);
 struct dsbr100_device {
        struct usb_device *usbdev;
        struct video_device videodev;
+       struct v4l2_device v4l2_dev;
+
        u8 *transfer_buffer;
        struct mutex lock;      /* buffer locking */
        int curfreq;
@@ -384,6 +358,7 @@ static void usb_dsbr100_disconnect(struct usb_interface *intf)
        mutex_unlock(&radio->lock);
 
        video_unregister_device(&radio->videodev);
+       v4l2_device_disconnect(&radio->v4l2_dev);
 }
 
 
@@ -479,14 +454,11 @@ static int vidioc_g_frequency(struct file *file, void *priv,
 static int vidioc_queryctrl(struct file *file, void *priv,
                                struct v4l2_queryctrl *qc)
 {
-       int i;
-
-       for (i = 0; i < ARRAY_SIZE(radio_qctrl); i++) {
-               if (qc->id && qc->id == radio_qctrl[i].id) {
-                       memcpy(qc, &(radio_qctrl[i]), sizeof(*qc));
-                       return 0;
-               }
+       switch (qc->id) {
+       case V4L2_CID_AUDIO_MUTE:
+               return v4l2_ctrl_query_fill(qc, 0, 1, 1, 1);
        }
+
        return -EINVAL;
 }
 
@@ -656,6 +628,7 @@ static void usb_dsbr100_video_device_release(struct video_device *videodev)
 {
        struct dsbr100_device *radio = videodev_to_radio(videodev);
 
+       v4l2_device_unregister(&radio->v4l2_dev);
        kfree(radio->transfer_buffer);
        kfree(radio);
 }
@@ -683,22 +656,15 @@ static const struct v4l2_ioctl_ops usb_dsbr100_ioctl_ops = {
        .vidioc_s_input     = vidioc_s_input,
 };
 
-/* V4L2 interface */
-static struct video_device dsbr100_videodev_data = {
-       .name           = "D-Link DSB-R 100",
-       .fops           = &usb_dsbr100_fops,
-       .ioctl_ops      = &usb_dsbr100_ioctl_ops,
-       .release        = usb_dsbr100_video_device_release,
-};
-
 /* check if the device is present and register with v4l and usb if it is */
 static int usb_dsbr100_probe(struct usb_interface *intf,
                                const struct usb_device_id *id)
 {
        struct dsbr100_device *radio;
+       struct v4l2_device *v4l2_dev;
        int retval;
 
-       radio = kmalloc(sizeof(struct dsbr100_device), GFP_KERNEL);
+       radio = kzalloc(sizeof(struct dsbr100_device), GFP_KERNEL);
 
        if (!radio)
                return -ENOMEM;
@@ -710,17 +676,35 @@ static int usb_dsbr100_probe(struct usb_interface *intf,
                return -ENOMEM;
        }
 
+       v4l2_dev = &radio->v4l2_dev;
+
+       retval = v4l2_device_register(&intf->dev, v4l2_dev);
+       if (retval < 0) {
+               v4l2_err(v4l2_dev, "couldn't register v4l2_device\n");
+               kfree(radio->transfer_buffer);
+               kfree(radio);
+               return retval;
+       }
+
+       strlcpy(radio->videodev.name, v4l2_dev->name, sizeof(radio->videodev.name));
+       radio->videodev.v4l2_dev = v4l2_dev;
+       radio->videodev.fops = &usb_dsbr100_fops;
+       radio->videodev.ioctl_ops = &usb_dsbr100_ioctl_ops;
+       radio->videodev.release = usb_dsbr100_video_device_release;
+
        mutex_init(&radio->lock);
-       radio->videodev = dsbr100_videodev_data;
 
        radio->removed = 0;
        radio->users = 0;
        radio->usbdev = interface_to_usbdev(intf);
        radio->curfreq = FREQ_MIN * FREQ_MUL;
+
        video_set_drvdata(&radio->videodev, radio);
+
        retval = video_register_device(&radio->videodev, VFL_TYPE_RADIO, radio_nr);
        if (retval < 0) {
-               dev_err(&intf->dev, "couldn't register video device\n");
+               v4l2_err(v4l2_dev, "couldn't register video device\n");
+               v4l2_device_unregister(v4l2_dev);
                kfree(radio->transfer_buffer);
                kfree(radio);
                return -EIO;
index ac82e33..35edee0 100644 (file)
@@ -355,20 +355,8 @@ static int vidioc_s_audio(struct file *file, void *priv,
        return a->index ? -EINVAL : 0;
 }
 
-static int rtrack_open(struct file *file)
-{
-       return 0;
-}
-
-static int rtrack_release(struct file *file)
-{
-       return 0;
-}
-
 static const struct v4l2_file_operations rtrack_fops = {
        .owner          = THIS_MODULE,
-       .open           = rtrack_open,
-       .release        = rtrack_release,
        .ioctl          = video_ioctl2,
 };
 
index 49299f7..8daf809 100644 (file)
@@ -318,20 +318,8 @@ static int vidioc_s_ctrl(struct file *file, void *priv,
        return -EINVAL;
 }
 
-static int aztech_open(struct file *file)
-{
-       return 0;
-}
-
-static int aztech_release(struct file *file)
-{
-       return 0;
-}
-
 static const struct v4l2_file_operations aztech_fops = {
        .owner          = THIS_MODULE,
-       .open           = aztech_open,
-       .release        = aztech_release,
        .ioctl          = video_ioctl2,
 };
 
index 09265d2..c3f579d 100644 (file)
@@ -356,20 +356,8 @@ static struct pci_device_id gemtek_pci_id[] =
 
 MODULE_DEVICE_TABLE(pci, gemtek_pci_id);
 
-static int gemtek_pci_open(struct file *file)
-{
-       return 0;
-}
-
-static int gemtek_pci_release(struct file *file)
-{
-       return 0;
-}
-
 static const struct v4l2_file_operations gemtek_pci_fops = {
        .owner          = THIS_MODULE,
-       .open           = gemtek_pci_open,
-       .release        = gemtek_pci_release,
        .ioctl          = video_ioctl2,
 };
 
index 1504644..73985f6 100644 (file)
@@ -375,20 +375,9 @@ static int gemtek_probe(struct gemtek *gt)
 /*
  * Video 4 Linux stuff.
  */
-static int gemtek_open(struct file *file)
-{
-       return 0;
-}
-
-static int gemtek_release(struct file *file)
-{
-       return 0;
-}
 
 static const struct v4l2_file_operations gemtek_fops = {
        .owner          = THIS_MODULE,
-       .open           = gemtek_open,
-       .release        = gemtek_release,
        .ioctl          = video_ioctl2,
 };
 
index 01a6d22..64d737c 100644 (file)
@@ -292,20 +292,8 @@ static int vidioc_s_audio(struct file *file, void *priv,
        return a->index ? -EINVAL : 0;
 }
 
-static int maestro_open(struct file *file)
-{
-       return 0;
-}
-
-static int maestro_release(struct file *file)
-{
-       return 0;
-}
-
 static const struct v4l2_file_operations maestro_fops = {
        .owner          = THIS_MODULE,
-       .open           = maestro_open,
-       .release        = maestro_release,
        .ioctl          = video_ioctl2,
 };
 
index 2606f0b..3da51fe 100644 (file)
@@ -339,20 +339,8 @@ static int vidioc_s_ctrl(struct file *file, void *priv,
        return -EINVAL;
 }
 
-static int maxiradio_open(struct file *file)
-{
-       return 0;
-}
-
-static int maxiradio_release(struct file *file)
-{
-       return 0;
-}
-
 static const struct v4l2_file_operations maxiradio_fops = {
        .owner          = THIS_MODULE,
-       .open           = maxiradio_open,
-       .release        = maxiradio_release,
        .ioctl          = video_ioctl2,
 };
 
index ded25bf..cab19d0 100644 (file)
@@ -43,6 +43,7 @@
  *                     Douglas Schilling Landgraf <dougsland@gmail.com> and
  *                     David Ellingsworth <david@identd.dyndns.org>
  *                     for discussion, help and support.
+ * Version 0.11:       Converted to v4l2_device.
  *
  * Many things to do:
  *     - Correct power managment of device (suspend & resume)
@@ -59,7 +60,7 @@
 #include <linux/slab.h>
 #include <linux/input.h>
 #include <linux/videodev2.h>
-#include <media/v4l2-common.h>
+#include <media/v4l2-device.h>
 #include <media/v4l2-ioctl.h>
 #include <linux/usb.h>
 #include <linux/version.h>     /* for KERNEL_VERSION MACRO */
@@ -67,8 +68,8 @@
 /* driver and module definitions */
 #define DRIVER_AUTHOR "Alexey Klimov <klimov.linux@gmail.com>"
 #define DRIVER_DESC "AverMedia MR 800 USB FM radio driver"
-#define DRIVER_VERSION "0.10"
-#define RADIO_VERSION KERNEL_VERSION(0, 1, 0)
+#define DRIVER_VERSION "0.11"
+#define RADIO_VERSION KERNEL_VERSION(0, 1, 1)
 
 MODULE_AUTHOR(DRIVER_AUTHOR);
 MODULE_DESCRIPTION(DRIVER_DESC);
@@ -113,38 +114,6 @@ static int radio_nr = -1;
 module_param(radio_nr, int, 0);
 MODULE_PARM_DESC(radio_nr, "Radio Nr");
 
-static struct v4l2_queryctrl radio_qctrl[] = {
-       {
-               .id            = V4L2_CID_AUDIO_MUTE,
-               .name          = "Mute",
-               .minimum       = 0,
-               .maximum       = 1,
-               .step          = 1,
-               .default_value = 1,
-               .type          = V4L2_CTRL_TYPE_BOOLEAN,
-       },
-/* HINT: the disabled controls are only here to satify kradio and such apps */
-       {       .id             = V4L2_CID_AUDIO_VOLUME,
-               .flags          = V4L2_CTRL_FLAG_DISABLED,
-       },
-       {
-               .id             = V4L2_CID_AUDIO_BALANCE,
-               .flags          = V4L2_CTRL_FLAG_DISABLED,
-       },
-       {
-               .id             = V4L2_CID_AUDIO_BASS,
-               .flags          = V4L2_CTRL_FLAG_DISABLED,
-       },
-       {
-               .id             = V4L2_CID_AUDIO_TREBLE,
-               .flags          = V4L2_CTRL_FLAG_DISABLED,
-       },
-       {
-               .id             = V4L2_CID_AUDIO_LOUDNESS,
-               .flags          = V4L2_CTRL_FLAG_DISABLED,
-       },
-};
-
 static int usb_amradio_probe(struct usb_interface *intf,
                             const struct usb_device_id *id);
 static void usb_amradio_disconnect(struct usb_interface *intf);
@@ -159,6 +128,7 @@ struct amradio_device {
        /* reference to USB and video device */
        struct usb_device *usbdev;
        struct video_device *videodev;
+       struct v4l2_device v4l2_dev;
 
        unsigned char *buffer;
        struct mutex lock;      /* buffer locking */
@@ -329,6 +299,7 @@ static void usb_amradio_disconnect(struct usb_interface *intf)
 
        usb_set_intfdata(intf, NULL);
        video_unregister_device(radio->videodev);
+       v4l2_device_disconnect(&radio->v4l2_dev);
 }
 
 /* vidioc_querycap - query device capabilities */
@@ -463,14 +434,11 @@ static int vidioc_g_frequency(struct file *file, void *priv,
 static int vidioc_queryctrl(struct file *file, void *priv,
                                struct v4l2_queryctrl *qc)
 {
-       int i;
-
-       for (i = 0; i < ARRAY_SIZE(radio_qctrl); i++) {
-               if (qc->id && qc->id == radio_qctrl[i].id) {
-                       memcpy(qc, &(radio_qctrl[i]), sizeof(*qc));
-                       return 0;
-               }
+       switch (qc->id) {
+       case V4L2_CID_AUDIO_MUTE:
+               return v4l2_ctrl_query_fill(qc, 0, 1, 1, 1);
        }
+
        return -EINVAL;
 }
 
@@ -671,34 +639,29 @@ static const struct v4l2_ioctl_ops usb_amradio_ioctl_ops = {
        .vidioc_s_input     = vidioc_s_input,
 };
 
-static void usb_amradio_device_release(struct video_device *videodev)
+static void usb_amradio_video_device_release(struct video_device *videodev)
 {
        struct amradio_device *radio = video_get_drvdata(videodev);
 
        /* we call v4l to free radio->videodev */
        video_device_release(videodev);
 
+       v4l2_device_unregister(&radio->v4l2_dev);
+
        /* free rest memory */
        kfree(radio->buffer);
        kfree(radio);
 }
 
-/* V4L2 interface */
-static struct video_device amradio_videodev_template = {
-       .name           = "AverMedia MR 800 USB FM Radio",
-       .fops           = &usb_amradio_fops,
-       .ioctl_ops      = &usb_amradio_ioctl_ops,
-       .release        = usb_amradio_device_release,
-};
-
 /* check if the device is present and register with v4l and usb if it is */
 static int usb_amradio_probe(struct usb_interface *intf,
                                const struct usb_device_id *id)
 {
        struct amradio_device *radio;
+       struct v4l2_device *v4l2_dev;
        int retval;
 
-       radio = kmalloc(sizeof(struct amradio_device), GFP_KERNEL);
+       radio = kzalloc(sizeof(struct amradio_device), GFP_KERNEL);
 
        if (!radio) {
                dev_err(&intf->dev, "kmalloc for amradio_device failed\n");
@@ -713,6 +676,15 @@ static int usb_amradio_probe(struct usb_interface *intf,
                return -ENOMEM;
        }
 
+       v4l2_dev = &radio->v4l2_dev;
+       retval = v4l2_device_register(&intf->dev, v4l2_dev);
+       if (retval < 0) {
+               dev_err(&intf->dev, "couldn't register v4l2_device\n");
+               kfree(radio->buffer);
+               kfree(radio);
+               return retval;
+       }
+
        radio->videodev = video_device_alloc();
 
        if (!radio->videodev) {
@@ -722,8 +694,11 @@ static int usb_amradio_probe(struct usb_interface *intf,
                return -ENOMEM;
        }
 
-       memcpy(radio->videodev, &amradio_videodev_template,
-               sizeof(amradio_videodev_template));
+       strlcpy(radio->videodev->name, v4l2_dev->name, sizeof(radio->videodev->name));
+       radio->videodev->v4l2_dev = v4l2_dev;
+       radio->videodev->fops = &usb_amradio_fops;
+       radio->videodev->ioctl_ops = &usb_amradio_ioctl_ops;
+       radio->videodev->release = usb_amradio_video_device_release;
 
        radio->removed = 0;
        radio->users = 0;
@@ -734,10 +709,12 @@ static int usb_amradio_probe(struct usb_interface *intf,
        mutex_init(&radio->lock);
 
        video_set_drvdata(radio->videodev, radio);
+
        retval = video_register_device(radio->videodev, VFL_TYPE_RADIO, radio_nr);
        if (retval < 0) {
                dev_err(&intf->dev, "could not register video device\n");
                video_device_release(radio->videodev);
+               v4l2_device_unregister(v4l2_dev);
                kfree(radio->buffer);
                kfree(radio);
                return -EIO;
index d1e6b01..9cb193f 100644 (file)
@@ -260,20 +260,8 @@ static int vidioc_s_audio(struct file *file, void *priv,
        return a->index ? -EINVAL : 0;
 }
 
-static int rtrack2_open(struct file *file)
-{
-       return 0;
-}
-
-static int rtrack2_release(struct file *file)
-{
-       return 0;
-}
-
 static const struct v4l2_file_operations rtrack2_fops = {
        .owner          = THIS_MODULE,
-       .open           = rtrack2_open,
-       .release        = rtrack2_release,
        .ioctl          = video_ioctl2,
 };
 
index f4784f0..1dba8f0 100644 (file)
@@ -260,20 +260,8 @@ static int vidioc_s_audio(struct file *file, void *priv,
        return a->index ? -EINVAL : 0;
 }
 
-static int fmi_open(struct file *file)
-{
-       return 0;
-}
-
-static int fmi_release(struct file *file)
-{
-       return 0;
-}
-
 static const struct v4l2_file_operations fmi_fops = {
        .owner          = THIS_MODULE,
-       .open           = fmi_open,
-       .release        = fmi_release,
        .ioctl          = video_ioctl2,
 };
 
index 0ba9d88..c09ca86 100644 (file)
@@ -377,20 +377,8 @@ static int vidioc_s_audio(struct file *file, void *priv,
        return a->index ? -EINVAL : 0;
 }
 
-static int fmr2_open(struct file *file)
-{
-       return 0;
-}
-
-static int fmr2_release(struct file *file)
-{
-       return 0;
-}
-
 static const struct v4l2_file_operations fmr2_fops = {
        .owner          = THIS_MODULE,
-       .open           = fmr2_open,
-       .release        = fmr2_release,
        .ioctl          = video_ioctl2,
 };
 
index 713e242..92c2977 100644 (file)
@@ -1686,7 +1686,7 @@ static int si470x_usb_driver_probe(struct usb_interface *intf,
        /* show some infos about the specific si470x device */
        if (si470x_get_all_registers(radio) < 0) {
                retval = -EIO;
-               goto err_all;
+               goto err_video;
        }
        printk(KERN_INFO DRIVER_NAME ": DeviceID=0x%4.4hx ChipID=0x%4.4hx\n",
                        radio->registers[DEVICEID], radio->registers[CHIPID]);
@@ -1694,7 +1694,7 @@ static int si470x_usb_driver_probe(struct usb_interface *intf,
        /* get software and hardware versions */
        if (si470x_get_scratch_page_versions(radio) < 0) {
                retval = -EIO;
-               goto err_all;
+               goto err_video;
        }
        printk(KERN_INFO DRIVER_NAME
                        ": software version %d, hardware version %d\n",
@@ -1727,7 +1727,7 @@ static int si470x_usb_driver_probe(struct usb_interface *intf,
        radio->buffer = kmalloc(radio->buf_size, GFP_KERNEL);
        if (!radio->buffer) {
                retval = -EIO;
-               goto err_all;
+               goto err_video;
        }
 
        /* rds buffer configuration */
@@ -1749,8 +1749,9 @@ static int si470x_usb_driver_probe(struct usb_interface *intf,
 
        return 0;
 err_all:
-       video_device_release(radio->videodev);
        kfree(radio->buffer);
+err_video:
+       video_device_release(radio->videodev);
 err_radio:
        kfree(radio);
 err_initial:
index 5b007f5..699db9a 100644 (file)
@@ -332,20 +332,8 @@ static int vidioc_s_audio(struct file *file, void *priv,
        return a->index ? -EINVAL : 0;
 }
 
-static int terratec_open(struct file *file)
-{
-       return 0;
-}
-
-static int terratec_release(struct file *file)
-{
-       return 0;
-}
-
 static const struct v4l2_file_operations terratec_fops = {
        .owner          = THIS_MODULE,
-       .open           = terratec_open,
-       .release        = terratec_release,
        .ioctl          = video_ioctl2,
 };
 
index d1be649..6f9ecc3 100644 (file)
@@ -338,20 +338,8 @@ static int vidioc_s_audio(struct file *file, void *priv,
        return a->index ? -EINVAL : 0;
 }
 
-static int trust_open(struct file *file)
-{
-       return 0;
-}
-
-static int trust_release(struct file *file)
-{
-       return 0;
-}
-
 static const struct v4l2_file_operations trust_fops = {
        .owner          = THIS_MODULE,
-       .open           = trust_open,
-       .release        = trust_release,
        .ioctl          = video_ioctl2,
 };
 
index 92d923c..3a98f13 100644 (file)
@@ -314,20 +314,8 @@ static int vidioc_log_status(struct file *file, void *priv)
        return 0;
 }
 
-static int typhoon_open(struct file *file)
-{
-       return 0;
-}
-
-static int typhoon_release(struct file *file)
-{
-       return 0;
-}
-
 static const struct v4l2_file_operations typhoon_fops = {
        .owner          = THIS_MODULE,
-       .open           = typhoon_open,
-       .release        = typhoon_release,
        .ioctl          = video_ioctl2,
 };
 
index 1f85f20..80e98b6 100644 (file)
@@ -370,21 +370,9 @@ static int vidioc_s_audio(struct file *file, void *priv,
        return a->index ? -EINVAL : 0;
 }
 
-static int zoltrix_open(struct file *file)
-{
-       return 0;
-}
-
-static int zoltrix_release(struct file *file)
-{
-       return 0;
-}
-
 static const struct v4l2_file_operations zoltrix_fops =
 {
        .owner          = THIS_MODULE,
-       .open           = zoltrix_open,
-       .release        = zoltrix_release,
        .ioctl          = video_ioctl2,
 };
 
index 76bad58..9d48da2 100644 (file)
@@ -746,6 +746,18 @@ config SOC_CAMERA_OV772X
        help
          This is a ov772x camera driver
 
+config MX1_VIDEO
+       bool
+
+config VIDEO_MX1
+       tristate "i.MX1/i.MXL CMOS Sensor Interface driver"
+       depends on VIDEO_DEV && ARCH_MX1 && SOC_CAMERA
+       select FIQ
+       select VIDEOBUF_DMA_CONTIG
+       select MX1_VIDEO
+       ---help---
+         This is a v4l2 driver for the i.MX1/i.MXL CMOS Sensor Interface
+
 config VIDEO_MX3
        tristate "i.MX3x Camera Sensor Interface driver"
        depends on VIDEO_DEV && MX3_IPU && SOC_CAMERA
@@ -795,6 +807,8 @@ source "drivers/media/video/hdpvr/Kconfig"
 
 source "drivers/media/video/em28xx/Kconfig"
 
+source "drivers/media/video/cx231xx/Kconfig"
+
 source "drivers/media/video/usbvision/Kconfig"
 
 source "drivers/media/video/usbvideo/Kconfig"
@@ -904,5 +918,4 @@ config USB_S2255
          This driver can be compiled as a module, called s2255drv.
 
 endif # V4L_USB_DRIVERS
-
 endif # VIDEO_CAPTURE_DRIVERS
index b904674..3f1a035 100644 (file)
@@ -10,7 +10,7 @@ stkwebcam-objs        :=      stk-webcam.o stk-sensor.o
 
 omap2cam-objs  :=      omap24xxcam.o omap24xxcam-dma.o
 
-videodev-objs  :=      v4l2-dev.o v4l2-ioctl.o v4l2-device.o v4l2-subdev.o
+videodev-objs  :=      v4l2-dev.o v4l2-ioctl.o v4l2-device.o
 
 obj-$(CONFIG_VIDEO_DEV) += videodev.o v4l2-int-device.o
 ifeq ($(CONFIG_COMPAT),y)
@@ -67,6 +67,7 @@ obj-$(CONFIG_VIDEO_MEYE) += meye.o
 obj-$(CONFIG_VIDEO_SAA7134) += saa7134/
 obj-$(CONFIG_VIDEO_CX88) += cx88/
 obj-$(CONFIG_VIDEO_EM28XX) += em28xx/
+obj-$(CONFIG_VIDEO_CX231XX) += cx231xx/
 obj-$(CONFIG_VIDEO_USBVISION) += usbvision/
 obj-$(CONFIG_VIDEO_TVP5150) += tvp5150.o
 obj-$(CONFIG_VIDEO_TVP514X) += tvp514x.o
@@ -133,6 +134,7 @@ obj-$(CONFIG_VIDEO_CX18) += cx18/
 obj-$(CONFIG_VIDEO_VIVI) += vivi.o
 obj-$(CONFIG_VIDEO_CX23885) += cx23885/
 
+obj-$(CONFIG_VIDEO_MX1)                        += mx1_camera.o
 obj-$(CONFIG_VIDEO_MX3)                        += mx3_camera.o
 obj-$(CONFIG_VIDEO_PXA27x)             += pxa_camera.o
 obj-$(CONFIG_VIDEO_SH_MOBILE_CEU)      += sh_mobile_ceu_camera.o
index 873c30a..97b0034 100644 (file)
@@ -219,18 +219,19 @@ static int adv7170_s_std_output(struct v4l2_subdev *sd, v4l2_std_id std)
        return 0;
 }
 
-static int adv7170_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *route)
+static int adv7170_s_routing(struct v4l2_subdev *sd,
+                            u32 input, u32 output, u32 config)
 {
        struct adv7170 *encoder = to_adv7170(sd);
 
-       /* RJ: route->input = 0: input is from decoder
-          route->input = 1: input is from ZR36060
-          route->input = 2: color bar */
+       /* RJ: input = 0: input is from decoder
+          input = 1: input is from ZR36060
+          input = 2: color bar */
 
        v4l2_dbg(1, debug, sd, "set input from %s\n",
-                       route->input == 0 ? "decoder" : "ZR36060");
+                       input == 0 ? "decoder" : "ZR36060");
 
-       switch (route->input) {
+       switch (input) {
        case 0:
                adv7170_write(sd, 0x01, 0x20);
                adv7170_write(sd, 0x08, TR1CAPT);       /* TR1 */
@@ -250,11 +251,11 @@ static int adv7170_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *
                break;
 
        default:
-               v4l2_dbg(1, debug, sd, "illegal input: %d\n", route->input);
+               v4l2_dbg(1, debug, sd, "illegal input: %d\n", input);
                return -EINVAL;
        }
-       v4l2_dbg(1, debug, sd, "switched to %s\n", inputs[route->input]);
-       encoder->input = route->input;
+       v4l2_dbg(1, debug, sd, "switched to %s\n", inputs[input]);
+       encoder->input = input;
        return 0;
 }
 
index ff12103..cf8c06c 100644 (file)
@@ -237,15 +237,16 @@ static int adv7175_s_std_output(struct v4l2_subdev *sd, v4l2_std_id std)
        return 0;
 }
 
-static int adv7175_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *route)
+static int adv7175_s_routing(struct v4l2_subdev *sd,
+                            u32 input, u32 output, u32 config)
 {
        struct adv7175 *encoder = to_adv7175(sd);
 
-       /* RJ: route->input = 0: input is from decoder
-          route->input = 1: input is from ZR36060
-          route->input = 2: color bar */
+       /* RJ: input = 0: input is from decoder
+          input = 1: input is from ZR36060
+          input = 2: color bar */
 
-       switch (route->input) {
+       switch (input) {
        case 0:
                adv7175_write(sd, 0x01, 0x00);
 
@@ -288,11 +289,11 @@ static int adv7175_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *
                break;
 
        default:
-               v4l2_dbg(1, debug, sd, "illegal input: %d\n", route->input);
+               v4l2_dbg(1, debug, sd, "illegal input: %d\n", input);
                return -EINVAL;
        }
-       v4l2_dbg(1, debug, sd, "switched to %s\n", inputs[route->input]);
-       encoder->input = route->input;
+       v4l2_dbg(1, debug, sd, "switched to %s\n", inputs[input]);
+       encoder->input = input;
        return 0;
 }
 
index 05cdf49..0c3a5ba 100644 (file)
@@ -4,6 +4,7 @@ config VIDEO_AU0828
        depends on I2C && INPUT && DVB_CORE && USB && VIDEO_V4L2
        select I2C_ALGOBIT
        select VIDEO_TVEEPROM
+       select VIDEOBUF_VMALLOC
        select DVB_AU8522 if !DVB_FE_CUSTOMISE
        select MEDIA_TUNER_XC5000 if !MEDIA_TUNER_CUSTOMISE
        select MEDIA_TUNER_MXL5007T if !MEDIA_TUNER_CUSTOMISE
index 1aabaa7..053bbe8 100644 (file)
@@ -46,6 +46,7 @@ struct au0828_board au0828_boards[] = {
                .name   = "Hauppauge HVR850",
                .tuner_type = TUNER_XC5000,
                .tuner_addr = 0x61,
+               .i2c_clk_divider = AU0828_I2C_CLK_30KHZ,
                .input = {
                        {
                                .type = AU0828_VMUX_TELEVISION,
@@ -70,6 +71,13 @@ struct au0828_board au0828_boards[] = {
                .name   = "Hauppauge HVR950Q",
                .tuner_type = TUNER_XC5000,
                .tuner_addr = 0x61,
+               /* The au0828 hardware i2c implementation does not properly
+                  support the xc5000's i2c clock stretching.  So we need to
+                  lower the clock frequency enough where the 15us clock
+                  stretch fits inside of a normal clock cycle, or else the
+                  au0828 fails to set the STOP bit.  A 30 KHz clock puts the
+                  clock pulse width at 18us */
+               .i2c_clk_divider = AU0828_I2C_CLK_30KHZ,
                .input = {
                        {
                                .type = AU0828_VMUX_TELEVISION,
@@ -94,16 +102,19 @@ struct au0828_board au0828_boards[] = {
                .name   = "Hauppauge HVR950Q rev xxF8",
                .tuner_type = UNSET,
                .tuner_addr = ADDR_UNSET,
+               .i2c_clk_divider = AU0828_I2C_CLK_250KHZ,
        },
        [AU0828_BOARD_DVICO_FUSIONHDTV7] = {
                .name   = "DViCO FusionHDTV USB",
                .tuner_type = UNSET,
                .tuner_addr = ADDR_UNSET,
+               .i2c_clk_divider = AU0828_I2C_CLK_250KHZ,
        },
        [AU0828_BOARD_HAUPPAUGE_WOODBURY] = {
                .name = "Hauppauge Woodbury",
                .tuner_type = UNSET,
                .tuner_addr = ADDR_UNSET,
+               .i2c_clk_divider = AU0828_I2C_CLK_250KHZ,
        },
 };
 
@@ -200,8 +211,8 @@ void au0828_card_setup(struct au0828_dev *dev)
                /* Load the analog demodulator driver (note this would need to
                   be abstracted out if we ever need to support a different
                   demod) */
-               sd = v4l2_i2c_new_subdev(&dev->i2c_adap, "au8522", "au8522",
-                                        0x8e >> 1);
+               sd = v4l2_i2c_new_subdev(&dev->v4l2_dev, &dev->i2c_adap,
+                               "au8522", "au8522", 0x8e >> 1);
                if (sd == NULL)
                        printk(KERN_ERR "analog subdev registration failed\n");
        }
@@ -209,8 +220,8 @@ void au0828_card_setup(struct au0828_dev *dev)
        /* Setup tuners */
        if (dev->board.tuner_type != TUNER_ABSENT) {
                /* Load the tuner module, which does the attach */
-               sd = v4l2_i2c_new_subdev(&dev->i2c_adap, "tuner", "tuner",
-                                        dev->board.tuner_addr);
+               sd = v4l2_i2c_new_subdev(&dev->v4l2_dev, &dev->i2c_adap,
+                               "tuner", "tuner", dev->board.tuner_addr);
                if (sd == NULL)
                        printk(KERN_ERR "tuner subdev registration fail\n");
 
index 8c761d1..4cee0b9 100644 (file)
@@ -36,8 +36,6 @@ int au0828_debug;
 module_param_named(debug, au0828_debug, int, 0644);
 MODULE_PARM_DESC(debug, "enable debug messages");
 
-static atomic_t au0828_instance = ATOMIC_INIT(0);
-
 #define _AU0828_BULKPIPE 0x03
 #define _BULKPIPESIZE 0xffff
 
@@ -169,7 +167,7 @@ static void au0828_usb_disconnect(struct usb_interface *interface)
 static int au0828_usb_probe(struct usb_interface *interface,
        const struct usb_device_id *id)
 {
-       int ifnum, retval, i;
+       int ifnum, retval;
        struct au0828_dev *dev;
        struct usb_device *usbdev = interface_to_usbdev(interface);
 
@@ -197,10 +195,7 @@ static int au0828_usb_probe(struct usb_interface *interface,
        usb_set_intfdata(interface, dev);
 
        /* Create the v4l2_device */
-       i = atomic_inc_return(&au0828_instance) - 1;
-       snprintf(dev->v4l2_dev.name, sizeof(dev->v4l2_dev.name), "%s-%03d",
-                "au0828", i);
-       retval = v4l2_device_register(&dev->usbdev->dev, &dev->v4l2_dev);
+       retval = v4l2_device_register(&interface->dev, &dev->v4l2_dev);
        if (retval) {
                printk(KERN_ERR "%s() v4l2_device_register failed\n",
                       __func__);
index f9a958d..13e4943 100644 (file)
@@ -39,13 +39,15 @@ MODULE_PARM_DESC(i2c_scan, "scan i2c bus at insmod time");
 static inline int i2c_slave_did_write_ack(struct i2c_adapter *i2c_adap)
 {
        struct au0828_dev *dev = i2c_adap->algo_data;
-       return au0828_read(dev, REG_201) & 0x08 ? 0 : 1;
+       return au0828_read(dev, AU0828_I2C_STATUS_201) &
+               AU0828_I2C_STATUS_NO_WRITE_ACK ? 0 : 1;
 }
 
 static inline int i2c_slave_did_read_ack(struct i2c_adapter *i2c_adap)
 {
        struct au0828_dev *dev = i2c_adap->algo_data;
-       return au0828_read(dev, REG_201) & 0x02 ? 0 : 1;
+       return au0828_read(dev, AU0828_I2C_STATUS_201) &
+               AU0828_I2C_STATUS_NO_READ_ACK ? 0 : 1;
 }
 
 static int i2c_wait_read_ack(struct i2c_adapter *i2c_adap)
@@ -67,7 +69,8 @@ static int i2c_wait_read_ack(struct i2c_adapter *i2c_adap)
 static inline int i2c_is_read_busy(struct i2c_adapter *i2c_adap)
 {
        struct au0828_dev *dev = i2c_adap->algo_data;
-       return au0828_read(dev, REG_201) & 0x01 ? 0 : 1;
+       return au0828_read(dev, AU0828_I2C_STATUS_201) &
+               AU0828_I2C_STATUS_READ_DONE ? 0 : 1;
 }
 
 static int i2c_wait_read_done(struct i2c_adapter *i2c_adap)
@@ -89,7 +92,8 @@ static int i2c_wait_read_done(struct i2c_adapter *i2c_adap)
 static inline int i2c_is_write_done(struct i2c_adapter *i2c_adap)
 {
        struct au0828_dev *dev = i2c_adap->algo_data;
-       return au0828_read(dev, REG_201) & 0x04 ? 1 : 0;
+       return au0828_read(dev, AU0828_I2C_STATUS_201) &
+               AU0828_I2C_STATUS_WRITE_DONE ? 1 : 0;
 }
 
 static int i2c_wait_write_done(struct i2c_adapter *i2c_adap)
@@ -111,7 +115,8 @@ static int i2c_wait_write_done(struct i2c_adapter *i2c_adap)
 static inline int i2c_is_busy(struct i2c_adapter *i2c_adap)
 {
        struct au0828_dev *dev = i2c_adap->algo_data;
-       return au0828_read(dev, REG_201) & 0x10 ? 1 : 0;
+       return au0828_read(dev, AU0828_I2C_STATUS_201) &
+               AU0828_I2C_STATUS_BUSY ? 1 : 0;
 }
 
 static int i2c_wait_done(struct i2c_adapter *i2c_adap)
@@ -139,19 +144,14 @@ static int i2c_sendbytes(struct i2c_adapter *i2c_adap,
 
        dprintk(4, "%s()\n", __func__);
 
-       au0828_write(dev, REG_2FF, 0x01);
+       au0828_write(dev, AU0828_I2C_MULTIBYTE_MODE_2FF, 0x01);
 
-       /* FIXME: There is a problem with i2c communications with xc5000 that
-          requires us to slow down the i2c clock until we have a better
-          strategy (such as using the secondary i2c bus to do firmware
-          loading */
-       if ((msg->addr << 1) == 0xc2)
-               au0828_write(dev, REG_202, 0x40);
-       else
-               au0828_write(dev, REG_202, 0x07);
+       /* Set the I2C clock */
+       au0828_write(dev, AU0828_I2C_CLK_DIVIDER_202,
+                    dev->board.i2c_clk_divider);
 
        /* Hardware needs 8 bit addresses */
-       au0828_write(dev, REG_203, msg->addr << 1);
+       au0828_write(dev, AU0828_I2C_DEST_ADDR_203, msg->addr << 1);
 
        dprintk(4, "SEND: %02x\n", msg->addr);
 
@@ -163,7 +163,9 @@ static int i2c_sendbytes(struct i2c_adapter *i2c_adap,
                   actual bytes to the bus, just do a read check.  This is
                   consistent with how I saw i2c device checking done in the
                   USB trace of the Windows driver */
-               au0828_write(dev, REG_200, 0x20);
+               au0828_write(dev, AU0828_I2C_TRIGGER_200,
+                            AU0828_I2C_TRIGGER_READ);
+
                if (!i2c_wait_done(i2c_adap))
                        return -EIO;
 
@@ -177,7 +179,7 @@ static int i2c_sendbytes(struct i2c_adapter *i2c_adap,
 
                dprintk(4, " %02x\n", msg->buf[i]);
 
-               au0828_write(dev, REG_205, msg->buf[i]);
+               au0828_write(dev, AU0828_I2C_WRITE_FIFO_205, msg->buf[i]);
 
                strobe++;
                i++;
@@ -186,9 +188,12 @@ static int i2c_sendbytes(struct i2c_adapter *i2c_adap,
 
                        /* Strobe the byte into the bus */
                        if (i < msg->len)
-                               au0828_write(dev, REG_200, 0x41);
+                               au0828_write(dev, AU0828_I2C_TRIGGER_200,
+                                            AU0828_I2C_TRIGGER_WRITE |
+                                            AU0828_I2C_TRIGGER_HOLD);
                        else
-                               au0828_write(dev, REG_200, 0x01);
+                               au0828_write(dev, AU0828_I2C_TRIGGER_200,
+                                            AU0828_I2C_TRIGGER_WRITE);
 
                        /* Reset strobe trigger */
                        strobe = 0;
@@ -216,25 +221,22 @@ static int i2c_readbytes(struct i2c_adapter *i2c_adap,
 
        dprintk(4, "%s()\n", __func__);
 
-       au0828_write(dev, REG_2FF, 0x01);
+       au0828_write(dev, AU0828_I2C_MULTIBYTE_MODE_2FF, 0x01);
 
-       /* FIXME: There is a problem with i2c communications with xc5000 that
-          requires us to slow down the i2c clock until we have a better
-          strategy (such as using the secondary i2c bus to do firmware
-          loading */
-       if ((msg->addr << 1) == 0xc2)
-               au0828_write(dev, REG_202, 0x40);
-       else
-               au0828_write(dev, REG_202, 0x07);
+       /* Set the I2C clock */
+       au0828_write(dev, AU0828_I2C_CLK_DIVIDER_202,
+                    dev->board.i2c_clk_divider);
 
        /* Hardware needs 8 bit addresses */
-       au0828_write(dev, REG_203, msg->addr << 1);
+       au0828_write(dev, AU0828_I2C_DEST_ADDR_203, msg->addr << 1);
 
        dprintk(4, " RECV:\n");
 
        /* Deal with i2c_scan */
        if (msg->len == 0) {
-               au0828_write(dev, REG_200, 0x20);
+               au0828_write(dev, AU0828_I2C_TRIGGER_200,
+                            AU0828_I2C_TRIGGER_READ);
+
                if (i2c_wait_read_ack(i2c_adap))
                        return -EIO;
                return 0;
@@ -245,14 +247,18 @@ static int i2c_readbytes(struct i2c_adapter *i2c_adap,
                i++;
 
                if (i < msg->len)
-                       au0828_write(dev, REG_200, 0x60);
+                       au0828_write(dev, AU0828_I2C_TRIGGER_200,
+                                    AU0828_I2C_TRIGGER_READ |
+                                    AU0828_I2C_TRIGGER_HOLD);
                else
-                       au0828_write(dev, REG_200, 0x20);
+                       au0828_write(dev, AU0828_I2C_TRIGGER_200,
+                                    AU0828_I2C_TRIGGER_READ);
 
                if (!i2c_wait_read_done(i2c_adap))
                        return -EIO;
 
-               msg->buf[i-1] = au0828_read(dev, REG_209) & 0xff;
+               msg->buf[i-1] = au0828_read(dev, AU0828_I2C_READ_FIFO_209) &
+                       0xff;
 
                dprintk(4, " %02x\n", msg->buf[i-1]);
        }
index b15e4a3..c39f3d2 100644 (file)
 #define AU0828_SENSORCTRL_100 0x100
 #define AU0828_SENSORCTRL_VBI_103 0x103
 
-#define REG_200 0x200
-#define REG_201 0x201
-#define REG_202 0x202
-#define REG_203 0x203
-#define REG_205 0x205
-#define REG_209 0x209
-#define REG_2FF 0x2ff
+/* I2C registers */
+#define AU0828_I2C_TRIGGER_200         0x200
+#define AU0828_I2C_STATUS_201          0x201
+#define AU0828_I2C_CLK_DIVIDER_202     0x202
+#define AU0828_I2C_DEST_ADDR_203       0x203
+#define AU0828_I2C_WRITE_FIFO_205      0x205
+#define AU0828_I2C_READ_FIFO_209       0x209
+#define AU0828_I2C_MULTIBYTE_MODE_2FF  0x2ff
 
 /* Audio registers */
 #define AU0828_AUDIOCTRL_50C 0x50C
 
 #define REG_600 0x600
+
+/*********************************************************************/
+/* Here are constants for values associated with the above registers */
+
+/* I2C Trigger (Reg 0x200) */
+#define AU0828_I2C_TRIGGER_WRITE       0x01
+#define AU0828_I2C_TRIGGER_READ                0x20
+#define AU0828_I2C_TRIGGER_HOLD                0x40
+
+/* I2C Status (Reg 0x201) */
+#define AU0828_I2C_STATUS_READ_DONE    0x01
+#define AU0828_I2C_STATUS_NO_READ_ACK  0x02
+#define AU0828_I2C_STATUS_WRITE_DONE   0x04
+#define AU0828_I2C_STATUS_NO_WRITE_ACK 0x08
+#define AU0828_I2C_STATUS_BUSY         0x10
+
+/* I2C Clock Divider (Reg 0x202) */
+#define AU0828_I2C_CLK_250KHZ 0x07
+#define AU0828_I2C_CLK_100KHZ 0x14
+#define AU0828_I2C_CLK_30KHZ  0x40
index f7ad495..27bedc6 100644 (file)
@@ -1100,7 +1100,7 @@ static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id * norm)
           have to make the au0828 bridge adjust the size of its capture
           buffer, which is currently hardcoded at 720x480 */
 
-       v4l2_device_call_all(&dev->v4l2_dev, 0, tuner, s_std, *norm);
+       v4l2_device_call_all(&dev->v4l2_dev, 0, core, s_std, *norm);
        return 0;
 }
 
@@ -1154,7 +1154,6 @@ static int vidioc_s_input(struct file *file, void *priv, unsigned int index)
        struct au0828_fh *fh = priv;
        struct au0828_dev *dev = fh->dev;
        int i;
-       struct v4l2_routing route;
 
        dprintk(1, "VIDIOC_S_INPUT in function %s, input=%d\n", __func__,
                index);
@@ -1180,9 +1179,8 @@ static int vidioc_s_input(struct file *file, void *priv, unsigned int index)
                break;
        }
 
-       route.input = AUVI_INPUT(index).vmux;
-       route.output = 0;
-       v4l2_device_call_all(&dev->v4l2_dev, 0, video, s_routing, &route);
+       v4l2_device_call_all(&dev->v4l2_dev, 0, video, s_routing,
+                       AUVI_INPUT(index).vmux, 0, 0);
 
        for (i = 0; i < AU0828_MAX_INPUT; i++) {
                int enable = 0;
@@ -1205,8 +1203,8 @@ static int vidioc_s_input(struct file *file, void *priv, unsigned int index)
                }
        }
 
-       route.input = AUVI_INPUT(index).amux;
-       v4l2_device_call_all(&dev->v4l2_dev, 0, audio, s_routing, &route);
+       v4l2_device_call_all(&dev->v4l2_dev, 0, audio, s_routing,
+                       AUVI_INPUT(index).amux, 0, 0);
        return 0;
 }
 
index 6ed1a61..b977915 100644 (file)
@@ -81,6 +81,7 @@ struct au0828_board {
        char *name;
        unsigned int tuner_type;
        unsigned char tuner_addr;
+       unsigned char i2c_clk_divider;
        struct au0828_input input[AU0828_MAX_INPUT];
 
 };
index df4516d..f9330e3 100644 (file)
@@ -292,21 +292,22 @@ static int bt819_s_std(struct v4l2_subdev *sd, v4l2_std_id std)
        return 0;
 }
 
-static int bt819_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *route)
+static int bt819_s_routing(struct v4l2_subdev *sd,
+                          u32 input, u32 output, u32 config)
 {
        struct bt819 *decoder = to_bt819(sd);
 
-       v4l2_dbg(1, debug, sd, "set input %x\n", route->input);
+       v4l2_dbg(1, debug, sd, "set input %x\n", input);
 
-       if (route->input < 0 || route->input > 7)
+       if (input < 0 || input > 7)
                return -EINVAL;
 
        if (sd->v4l2_dev == NULL || sd->v4l2_dev->notify == NULL)
                v4l2_err(sd, "no notify found!\n");
 
-       if (decoder->input != route->input) {
+       if (decoder->input != input) {
                v4l2_subdev_notify(sd, BT819_FIFO_RESET_LOW, 0);
-               decoder->input = route->input;
+               decoder->input = input;
                /* select mode */
                if (decoder->input == 0) {
                        bt819_setbit(decoder, 0x0b, 6, 0);
@@ -444,9 +445,6 @@ static const struct v4l2_subdev_core_ops bt819_core_ops = {
        .g_ctrl = bt819_g_ctrl,
        .s_ctrl = bt819_s_ctrl,
        .queryctrl = bt819_queryctrl,
-};
-
-static const struct v4l2_subdev_tuner_ops bt819_tuner_ops = {
        .s_std = bt819_s_std,
 };
 
@@ -459,7 +457,6 @@ static const struct v4l2_subdev_video_ops bt819_video_ops = {
 
 static const struct v4l2_subdev_ops bt819_ops = {
        .core = &bt819_core_ops,
-       .tuner = &bt819_tuner_ops,
        .video = &bt819_video_ops,
 };
 
index 78db395..d0b4d49 100644 (file)
@@ -142,16 +142,17 @@ static int bt856_s_std_output(struct v4l2_subdev *sd, v4l2_std_id std)
        return 0;
 }
 
-static int bt856_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *route)
+static int bt856_s_routing(struct v4l2_subdev *sd,
+                          u32 input, u32 output, u32 config)
 {
        struct bt856 *encoder = to_bt856(sd);
 
-       v4l2_dbg(1, debug, sd, "set input %d\n", route->input);
+       v4l2_dbg(1, debug, sd, "set input %d\n", input);
 
        /* We only have video bus.
-        * route->input= 0: input is from bt819
-        * route->input= 1: input is from ZR36060 */
-       switch (route->input) {
+        * input= 0: input is from bt819
+        * input= 1: input is from ZR36060 */
+       switch (input) {
        case 0:
                bt856_setbit(encoder, 0xde, 4, 0);
                bt856_setbit(encoder, 0xde, 3, 1);
index 350cae4..af7e3a5 100644 (file)
@@ -99,7 +99,8 @@ static int bt866_s_std_output(struct v4l2_subdev *sd, v4l2_std_id std)
        return 0;
 }
 
-static int bt866_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *route)
+static int bt866_s_routing(struct v4l2_subdev *sd,
+                          u32 input, u32 output, u32 config)
 {
        static const __u8 init[] = {
                0xc8, 0xcc, /* CRSCALE */
@@ -137,7 +138,7 @@ static int bt866_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *ro
 
        val = encoder->reg[0xdc];
 
-       if (route->input == 0)
+       if (input == 0)
                val |= 0x40; /* CBSWAP */
        else
                val &= ~0x40; /* !CBSWAP */
@@ -145,15 +146,15 @@ static int bt866_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *ro
        bt866_write(encoder, 0xdc, val);
 
        val = encoder->reg[0xcc];
-       if (route->input == 2)
+       if (input == 2)
                val |= 0x01; /* OSDBAR */
        else
                val &= ~0x01; /* !OSDBAR */
        bt866_write(encoder, 0xcc, val);
 
-       v4l2_dbg(1, debug, sd, "set input %d\n", route->input);
+       v4l2_dbg(1, debug, sd, "set input %d\n", input);
 
-       switch (route->input) {
+       switch (input) {
        case 0:
        case 1:
        case 2:
index b9c3ba5..fdb4adf 100644 (file)
@@ -3324,17 +3324,6 @@ void __devinit bttv_init_card1(struct bttv *btv)
 /* initialization part two -- after registering i2c bus */
 void __devinit bttv_init_card2(struct bttv *btv)
 {
-       static const unsigned short tvaudio_addrs[] = {
-               I2C_ADDR_TDA8425   >> 1,
-               I2C_ADDR_TEA6300   >> 1,
-               I2C_ADDR_TEA6420   >> 1,
-               I2C_ADDR_TDA9840   >> 1,
-               I2C_ADDR_TDA985x_L >> 1,
-               I2C_ADDR_TDA985x_H >> 1,
-               I2C_ADDR_TDA9874   >> 1,
-               I2C_ADDR_PIC16C54  >> 1,
-               I2C_CLIENT_END
-       };
        int addr=ADDR_UNSET;
 
        btv->tuner_type = UNSET;
@@ -3512,12 +3501,15 @@ void __devinit bttv_init_card2(struct bttv *btv)
 
                /* Load tuner module before issuing tuner config call! */
                if (bttv_tvcards[btv->c.type].has_radio)
-                       v4l2_i2c_new_probed_subdev(&btv->c.i2c_adap,
-                               "tuner", "tuner", v4l2_i2c_tuner_addrs(ADDRS_RADIO));
-               v4l2_i2c_new_probed_subdev(&btv->c.i2c_adap, "tuner",
-                               "tuner", v4l2_i2c_tuner_addrs(ADDRS_DEMOD));
-               v4l2_i2c_new_probed_subdev(&btv->c.i2c_adap, "tuner",
-                               "tuner", v4l2_i2c_tuner_addrs(ADDRS_TV_WITH_DEMOD));
+                       v4l2_i2c_new_probed_subdev(&btv->c.v4l2_dev,
+                               &btv->c.i2c_adap, "tuner", "tuner",
+                               v4l2_i2c_tuner_addrs(ADDRS_RADIO));
+               v4l2_i2c_new_probed_subdev(&btv->c.v4l2_dev,
+                               &btv->c.i2c_adap, "tuner", "tuner",
+                               v4l2_i2c_tuner_addrs(ADDRS_DEMOD));
+               v4l2_i2c_new_probed_subdev(&btv->c.v4l2_dev,
+                               &btv->c.i2c_adap, "tuner", "tuner",
+                               v4l2_i2c_tuner_addrs(ADDRS_TV_WITH_DEMOD));
 
                tun_setup.mode_mask = T_ANALOG_TV | T_DIGITAL_TV;
                tun_setup.type = btv->tuner_type;
@@ -3570,8 +3562,8 @@ void __devinit bttv_init_card2(struct bttv *btv)
                };
                struct v4l2_subdev *sd;
 
-               sd = v4l2_i2c_new_probed_subdev(&btv->c.i2c_adap,
-                               "saa6588", "saa6588", addrs);
+               sd = v4l2_i2c_new_probed_subdev(&btv->c.v4l2_dev,
+                       &btv->c.i2c_adap, "saa6588", "saa6588", addrs);
                btv->has_saa6588 = (sd != NULL);
        }
 
@@ -3595,8 +3587,8 @@ void __devinit bttv_init_card2(struct bttv *btv)
                        I2C_CLIENT_END
                };
 
-               btv->sd_msp34xx = v4l2_i2c_new_probed_subdev(&btv->c.i2c_adap,
-                               "msp3400", "msp3400", addrs);
+               btv->sd_msp34xx = v4l2_i2c_new_probed_subdev(&btv->c.v4l2_dev,
+                       &btv->c.i2c_adap, "msp3400", "msp3400", addrs);
                if (btv->sd_msp34xx)
                        return;
                goto no_audio;
@@ -3609,16 +3601,16 @@ void __devinit bttv_init_card2(struct bttv *btv)
                        I2C_CLIENT_END
                };
 
-               if (v4l2_i2c_new_probed_subdev(&btv->c.i2c_adap,
-                               "tda7432", "tda7432", addrs))
+               if (v4l2_i2c_new_probed_subdev(&btv->c.v4l2_dev,
+                               &btv->c.i2c_adap, "tda7432", "tda7432", addrs))
                        return;
                goto no_audio;
        }
 
        case 3: {
                /* The user specified that we should probe for tvaudio */
-               btv->sd_tvaudio = v4l2_i2c_new_probed_subdev(&btv->c.i2c_adap,
-                               "tvaudio", "tvaudio", tvaudio_addrs);
+               btv->sd_tvaudio = v4l2_i2c_new_probed_subdev(&btv->c.v4l2_dev,
+                       &btv->c.i2c_adap, "tvaudio", "tvaudio", tvaudio_addrs());
                if (btv->sd_tvaudio)
                        return;
                goto no_audio;
@@ -3637,21 +3629,13 @@ void __devinit bttv_init_card2(struct bttv *btv)
           it really is a msp3400, so it will return NULL when the device
           found is really something else (e.g. a tea6300). */
        if (!bttv_tvcards[btv->c.type].no_msp34xx) {
-               static const unsigned short addrs[] = {
-                       I2C_ADDR_MSP3400 >> 1,
-                       I2C_CLIENT_END
-               };
-
-               btv->sd_msp34xx = v4l2_i2c_new_probed_subdev(&btv->c.i2c_adap,
-                               "msp3400", "msp3400", addrs);
+               btv->sd_msp34xx = v4l2_i2c_new_probed_subdev_addr(&btv->c.v4l2_dev,
+                       &btv->c.i2c_adap, "msp3400", "msp3400",
+                       I2C_ADDR_MSP3400 >> 1);
        } else if (bttv_tvcards[btv->c.type].msp34xx_alt) {
-               static const unsigned short addrs[] = {
-                       I2C_ADDR_MSP3400_ALT >> 1,
-                       I2C_CLIENT_END
-               };
-
-               btv->sd_msp34xx = v4l2_i2c_new_probed_subdev(&btv->c.i2c_adap,
-                               "msp3400", "msp3400", addrs);
+               btv->sd_msp34xx = v4l2_i2c_new_probed_subdev_addr(&btv->c.v4l2_dev,
+                       &btv->c.i2c_adap, "msp3400", "msp3400",
+                       I2C_ADDR_MSP3400_ALT >> 1);
        }
 
        /* If we found a msp34xx, then we're done. */
@@ -3665,14 +3649,14 @@ void __devinit bttv_init_card2(struct bttv *btv)
                        I2C_CLIENT_END
                };
 
-               if (v4l2_i2c_new_probed_subdev(&btv->c.i2c_adap,
-                               "tda7432", "tda7432", addrs))
+               if (v4l2_i2c_new_probed_subdev(&btv->c.v4l2_dev,
+                               &btv->c.i2c_adap, "tda7432", "tda7432", addrs))
                        return;
        }
 
        /* Now see if we can find one of the tvaudio devices. */
-       btv->sd_tvaudio = v4l2_i2c_new_probed_subdev(&btv->c.i2c_adap,
-                       "tvaudio", "tvaudio", tvaudio_addrs);
+       btv->sd_tvaudio = v4l2_i2c_new_probed_subdev(&btv->c.v4l2_dev,
+               &btv->c.i2c_adap, "tvaudio", "tvaudio", tvaudio_addrs());
        if (btv->sd_tvaudio)
                return;
 
index 7a8ca0d..74f619d 100644 (file)
@@ -1198,7 +1198,7 @@ audio_mux(struct bttv *btv, int input, int mute)
        ctrl.value = btv->mute;
        bttv_call_all(btv, core, s_ctrl, &ctrl);
        if (btv->sd_msp34xx) {
-               struct v4l2_routing route;
+               u32 in;
 
                /* Note: the inputs tuner/radio/extern/intern are translated
                   to msp routings. This assumes common behavior for all msp3400
@@ -1207,11 +1207,11 @@ audio_mux(struct bttv *btv, int input, int mute)
                   For now this is sufficient. */
                switch (input) {
                case TVAUDIO_INPUT_RADIO:
-                       route.input = MSP_INPUT(MSP_IN_SCART2, MSP_IN_TUNER1,
+                       in = MSP_INPUT(MSP_IN_SCART2, MSP_IN_TUNER1,
                                    MSP_DSP_IN_SCART, MSP_DSP_IN_SCART);
                        break;
                case TVAUDIO_INPUT_EXTERN:
-                       route.input = MSP_INPUT(MSP_IN_SCART1, MSP_IN_TUNER1,
+                       in = MSP_INPUT(MSP_IN_SCART1, MSP_IN_TUNER1,
                                    MSP_DSP_IN_SCART, MSP_DSP_IN_SCART);
                        break;
                case TVAUDIO_INPUT_INTERN:
@@ -1220,7 +1220,7 @@ audio_mux(struct bttv *btv, int input, int mute)
                           input is the BTTV_BOARD_AVERMEDIA98. I wonder how
                           that was tested. My guess is that the whole INTERN
                           input does not work. */
-                       route.input = MSP_INPUT(MSP_IN_SCART2, MSP_IN_TUNER1,
+                       in = MSP_INPUT(MSP_IN_SCART2, MSP_IN_TUNER1,
                                    MSP_DSP_IN_SCART, MSP_DSP_IN_SCART);
                        break;
                case TVAUDIO_INPUT_TUNER:
@@ -1229,21 +1229,18 @@ audio_mux(struct bttv *btv, int input, int mute)
                           is the only difference between the VOODOOTV_FM
                           and VOODOOTV_200 */
                        if (btv->c.type == BTTV_BOARD_VOODOOTV_200)
-                               route.input = MSP_INPUT(MSP_IN_SCART1, MSP_IN_TUNER2, \
+                               in = MSP_INPUT(MSP_IN_SCART1, MSP_IN_TUNER2, \
                                        MSP_DSP_IN_TUNER, MSP_DSP_IN_TUNER);
                        else
-                               route.input = MSP_INPUT_DEFAULT;
+                               in = MSP_INPUT_DEFAULT;
                        break;
                }
-               route.output = MSP_OUTPUT_DEFAULT;
-               v4l2_subdev_call(btv->sd_msp34xx, audio, s_routing, &route);
+               v4l2_subdev_call(btv->sd_msp34xx, audio, s_routing,
+                              in, MSP_OUTPUT_DEFAULT, 0);
        }
        if (btv->sd_tvaudio) {
-               struct v4l2_routing route;
-
-               route.input = input;
-               route.output = 0;
-               v4l2_subdev_call(btv->sd_tvaudio, audio, s_routing, &route);
+               v4l2_subdev_call(btv->sd_tvaudio, audio, s_routing,
+                               input, 0, 0);
        }
        return 0;
 }
@@ -1329,7 +1326,7 @@ set_tvnorm(struct bttv *btv, unsigned int norm)
                break;
        }
        id = tvnorm->v4l2_id;
-       bttv_call_all(btv, tuner, s_std, id);
+       bttv_call_all(btv, core, s_std, id);
 
        return 0;
 }
index 9649848..a1d0e9c 100644 (file)
@@ -26,7 +26,7 @@
 #define _BTTVP_H_
 
 #include <linux/version.h>
-#define BTTV_VERSION_CODE KERNEL_VERSION(0,9,17)
+#define BTTV_VERSION_CODE KERNEL_VERSION(0,9,18)
 
 #include <linux/types.h>
 #include <linux/wait.h>
index 7abe94d..5f58272 100644 (file)
@@ -1954,7 +1954,7 @@ static int cafe_pci_probe(struct pci_dev *pdev,
                goto out_freeirq;
 
        cam->sensor_addr = 0x42;
-       cam->sensor = v4l2_i2c_new_subdev(&cam->i2c_adapter,
+       cam->sensor = v4l2_i2c_new_subdev(&cam->v4l2_dev, &cam->i2c_adapter,
                        "ov7670", "ov7670", cam->sensor_addr);
        if (cam->sensor == NULL) {
                ret = -ENODEV;
index 9714059..57dc170 100644 (file)
@@ -53,14 +53,15 @@ static inline int cs5345_read(struct v4l2_subdev *sd, u8 reg)
        return i2c_smbus_read_byte_data(client, reg);
 }
 
-static int cs5345_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *route)
+static int cs5345_s_routing(struct v4l2_subdev *sd,
+                           u32 input, u32 output, u32 config)
 {
-       if ((route->input & 0xf) > 6) {
-               v4l2_err(sd, "Invalid input %d.\n", route->input);
+       if ((input & 0xf) > 6) {
+               v4l2_err(sd, "Invalid input %d.\n", input);
                return -EINVAL;
        }
-       cs5345_write(sd, 0x09, route->input & 0xf);
-       cs5345_write(sd, 0x05, route->input & 0xf0);
+       cs5345_write(sd, 0x09, input & 0xf);
+       cs5345_write(sd, 0x05, input & 0xf0);
        return 0;
 }
 
index 5aeb066..80bca8d 100644 (file)
@@ -58,17 +58,18 @@ static int cs53l32a_read(struct v4l2_subdev *sd, u8 reg)
        return i2c_smbus_read_byte_data(client, reg);
 }
 
-static int cs53l32a_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *route)
+static int cs53l32a_s_routing(struct v4l2_subdev *sd,
+                             u32 input, u32 output, u32 config)
 {
        /* There are 2 physical inputs, but the second input can be
           placed in two modes, the first mode bypasses the PGA (gain),
           the second goes through the PGA. Hence there are three
           possible inputs to choose from. */
-       if (route->input > 2) {
-               v4l2_err(sd, "Invalid input %d.\n", route->input);
+       if (input > 2) {
+               v4l2_err(sd, "Invalid input %d.\n", input);
                return -EINVAL;
        }
-       cs53l32a_write(sd, 0x01, 0x01 + (route->input << 4));
+       cs53l32a_write(sd, 0x01, 0x01 + (input << 4));
        return 0;
 }
 
index bb5c516..1519e91 100644 (file)
@@ -33,7 +33,6 @@
 int cx18_audio_set_io(struct cx18 *cx)
 {
        const struct cx18_card_audio_input *in;
-       struct v4l2_routing route;
        u32 val;
        int err;
 
@@ -44,13 +43,11 @@ int cx18_audio_set_io(struct cx18 *cx)
                in = &cx->card->audio_inputs[cx->audio_input];
 
        /* handle muxer chips */
-       route.input = in->muxer_input;
-       route.output = 0;
-       v4l2_subdev_call(cx->sd_extmux, audio, s_routing, &route);
+       v4l2_subdev_call(cx->sd_extmux, audio, s_routing,
+                       in->audio_input, 0, 0);
 
-       route.input = in->audio_input;
        err = cx18_call_hw_err(cx, cx->card->hw_audio_ctrl,
-                              audio, s_routing, &route);
+                              audio, s_routing, in->audio_input, 0, 0);
        if (err)
                return err;
 
index f4dd9d7..cf2bd88 100644 (file)
@@ -203,43 +203,42 @@ static int cx18_av_reset(struct v4l2_subdev *sd, u32 val)
 
 static int cx18_av_init(struct v4l2_subdev *sd, u32 val)
 {
-       struct cx18_av_state *state = to_cx18_av_state(sd);
        struct cx18 *cx = v4l2_get_subdevdata(sd);
 
-       switch (val) {
-       case CX18_AV_INIT_PLLS:
-               /*
-                * The crystal freq used in calculations in this driver will be
-                * 28.636360 MHz.
-                * Aim to run the PLLs' VCOs near 400 MHz to minimze errors.
-                */
+       /*
+        * The crystal freq used in calculations in this driver will be
+        * 28.636360 MHz.
+        * Aim to run the PLLs' VCOs near 400 MHz to minimze errors.
+        */
 
-               /*
-                * VDCLK  Integer = 0x0f, Post Divider = 0x04
-                * AIMCLK Integer = 0x0e, Post Divider = 0x16
-                */
-               cx18_av_write4(cx, CXADEC_PLL_CTRL1, 0x160e040f);
+       /*
+        * VDCLK  Integer = 0x0f, Post Divider = 0x04
+        * AIMCLK Integer = 0x0e, Post Divider = 0x16
+        */
+       cx18_av_write4(cx, CXADEC_PLL_CTRL1, 0x160e040f);
 
-               /* VDCLK Fraction = 0x2be2fe */
-               /* xtal * 0xf.15f17f0/4 = 108 MHz: 432 MHz before post divide */
-               cx18_av_write4(cx, CXADEC_VID_PLL_FRAC, 0x002be2fe);
+       /* VDCLK Fraction = 0x2be2fe */
+       /* xtal * 0xf.15f17f0/4 = 108 MHz: 432 MHz before post divide */
+       cx18_av_write4(cx, CXADEC_VID_PLL_FRAC, 0x002be2fe);
 
-               /* AIMCLK Fraction = 0x05227ad */
-               /* xtal * 0xe.2913d68/0x16 = 48000 * 384: 406 MHz pre post-div*/
-               cx18_av_write4(cx, CXADEC_AUX_PLL_FRAC, 0x005227ad);
+       /* AIMCLK Fraction = 0x05227ad */
+       /* xtal * 0xe.2913d68/0x16 = 48000 * 384: 406 MHz pre post-div*/
+       cx18_av_write4(cx, CXADEC_AUX_PLL_FRAC, 0x005227ad);
 
-               /* SA_MCLK_SEL=1, SA_MCLK_DIV=0x16 */
-               cx18_av_write(cx, CXADEC_I2S_MCLK, 0x56);
-               break;
+       /* SA_MCLK_SEL=1, SA_MCLK_DIV=0x16 */
+       cx18_av_write(cx, CXADEC_I2S_MCLK, 0x56);
+       return 0;
+}
 
-       case CX18_AV_INIT_NORMAL:
-       default:
-               if (!state->is_initialized) {
-                       /* initialize on first use */
-                       state->is_initialized = 1;
-                       cx18_av_initialize(cx);
-               }
-               break;
+static int cx18_av_load_fw(struct v4l2_subdev *sd)
+{
+       struct cx18_av_state *state = to_cx18_av_state(sd);
+       struct cx18 *cx = v4l2_get_subdevdata(sd);
+
+       if (!state->is_initialized) {
+               /* initialize on first use */
+               state->is_initialized = 1;
+               cx18_av_initialize(cx);
        }
        return 0;
 }
@@ -548,19 +547,19 @@ static int set_input(struct cx18 *cx, enum cx18_av_video_input vid_input,
 }
 
 static int cx18_av_s_video_routing(struct v4l2_subdev *sd,
-                                  const struct v4l2_routing *route)
+                                  u32 input, u32 output, u32 config)
 {
        struct cx18_av_state *state = to_cx18_av_state(sd);
        struct cx18 *cx = v4l2_get_subdevdata(sd);
-       return set_input(cx, route->input, state->aud_input);
+       return set_input(cx, input, state->aud_input);
 }
 
 static int cx18_av_s_audio_routing(struct v4l2_subdev *sd,
-                                  const struct v4l2_routing *route)
+                                  u32 input, u32 output, u32 config)
 {
        struct cx18_av_state *state = to_cx18_av_state(sd);
        struct cx18 *cx = v4l2_get_subdevdata(sd);
-       return set_input(cx, state->vid_input, route->input);
+       return set_input(cx, state->vid_input, input);
 }
 
 static int cx18_av_g_tuner(struct v4l2_subdev *sd, struct v4l2_tuner *vt)
@@ -1185,10 +1184,12 @@ static const struct v4l2_subdev_core_ops cx18_av_general_ops = {
        .g_chip_ident = cx18_av_g_chip_ident,
        .log_status = cx18_av_log_status,
        .init = cx18_av_init,
+       .load_fw = cx18_av_load_fw,
        .reset = cx18_av_reset,
        .queryctrl = cx18_av_queryctrl,
        .g_ctrl = cx18_av_g_ctrl,
        .s_ctrl = cx18_av_s_ctrl,
+       .s_std = cx18_av_s_std,
 #ifdef CONFIG_VIDEO_ADV_DEBUG
        .g_register = cx18_av_g_register,
        .s_register = cx18_av_s_register,
@@ -1200,7 +1201,6 @@ static const struct v4l2_subdev_tuner_ops cx18_av_tuner_ops = {
        .s_frequency = cx18_av_s_frequency,
        .g_tuner = cx18_av_g_tuner,
        .s_tuner = cx18_av_s_tuner,
-       .s_std = cx18_av_s_std,
 };
 
 static const struct v4l2_subdev_audio_ops cx18_av_audio_ops = {
index c458120..9b84a0c 100644 (file)
@@ -328,11 +328,6 @@ static inline struct cx18_av_state *to_cx18_av_state(struct v4l2_subdev *sd)
        return container_of(sd, struct cx18_av_state, sd);
 }
 
-enum cx18_av_subdev_init_arg {
-       CX18_AV_INIT_NORMAL = 0,
-       CX18_AV_INIT_PLLS = 1,
-};
-
 /* ----------------------------------------------------------------------- */
 /* cx18_av-core.c                                                         */
 int cx18_av_write(struct cx18 *cx, u16 addr, u8 value);
index 210c68a..49b1c3d 100644 (file)
@@ -810,7 +810,7 @@ static int __devinit cx18_probe(struct pci_dev *pci_dev,
                CX18_ERR("Could not register A/V decoder subdevice\n");
                goto free_map;
        }
-       cx18_call_hw(cx, CX18_HW_418_AV, core, init, (u32) CX18_AV_INIT_PLLS);
+       cx18_call_hw(cx, CX18_HW_418_AV, core, init, 0);
 
        /* Initialize GPIO Reset Controller to do chip resets during i2c init */
        if (cx->card->hw_all & CX18_HW_GPIO_RESET_CTRL) {
@@ -1028,7 +1028,7 @@ int cx18_init_on_first_open(struct cx18 *cx)
        cx18_vapi(cx, CX18_APU_STOP, 1, CX18_APU_ENCODING_METHOD_MPEG);
 
        /* Init the A/V decoder, if it hasn't been already */
-       v4l2_subdev_call(cx->sd_av, core, init, (u32) CX18_AV_INIT_NORMAL);
+       v4l2_subdev_call(cx->sd_av, core, load_fw);
 
        vf.tuner = 0;
        vf.type = V4L2_TUNER_ANALOG_TV;
index 4d7d6d5..b3889c0 100644 (file)
@@ -608,7 +608,7 @@ int cx18_v4l2_close(struct file *filp)
                /* Mark that the radio is no longer in use */
                clear_bit(CX18_F_I_RADIO_USER, &cx->i_flags);
                /* Switch tuner to TV */
-               cx18_call_all(cx, tuner, s_std, cx->std);
+               cx18_call_all(cx, core, s_std, cx->std);
                /* Select correct audio input (i.e. TV tuner or Line in) */
                cx18_audio_set_io(cx);
                if (atomic_read(&cx->ana_capturing) > 0) {
index 5518d14..86a204b 100644 (file)
@@ -156,12 +156,12 @@ static int gpiomux_s_std(struct v4l2_subdev *sd, v4l2_std_id norm)
 }
 
 static int gpiomux_s_audio_routing(struct v4l2_subdev *sd,
-                                  const struct v4l2_routing *route)
+                                  u32 input, u32 output, u32 config)
 {
        struct cx18 *cx = v4l2_get_subdevdata(sd);
        u32 data;
 
-       switch (route->input) {
+       switch (input) {
        case 0:
                data = cx->card->gpio_audio_input.tuner;
                break;
@@ -180,10 +180,10 @@ static int gpiomux_s_audio_routing(struct v4l2_subdev *sd,
 
 static const struct v4l2_subdev_core_ops gpiomux_core_ops = {
        .log_status = gpiomux_log_status,
+       .s_std = gpiomux_s_std,
 };
 
 static const struct v4l2_subdev_tuner_ops gpiomux_tuner_ops = {
-       .s_std = gpiomux_s_std,
        .s_radio = gpiomux_s_radio,
 };
 
index d092643..b9b7064 100644 (file)
@@ -100,16 +100,16 @@ int cx18_i2c_register(struct cx18 *cx, unsigned idx)
 
        if (hw == CX18_HW_TUNER) {
                /* special tuner group handling */
-               sd = v4l2_i2c_new_probed_subdev(adap, mod, type,
-                                               cx->card_i2c->radio);
+               sd = v4l2_i2c_new_probed_subdev(&cx->v4l2_dev,
+                               adap, mod, type, cx->card_i2c->radio);
                if (sd != NULL)
                        sd->grp_id = hw;
-               sd = v4l2_i2c_new_probed_subdev(adap, mod, type,
-                                               cx->card_i2c->demod);
+               sd = v4l2_i2c_new_probed_subdev(&cx->v4l2_dev,
+                               adap, mod, type, cx->card_i2c->demod);
                if (sd != NULL)
                        sd->grp_id = hw;
-               sd = v4l2_i2c_new_probed_subdev(adap, mod, type,
-                                               cx->card_i2c->tv);
+               sd = v4l2_i2c_new_probed_subdev(&cx->v4l2_dev,
+                               adap, mod, type, cx->card_i2c->tv);
                if (sd != NULL)
                        sd->grp_id = hw;
                return sd != NULL ? 0 : -1;
@@ -120,7 +120,7 @@ int cx18_i2c_register(struct cx18 *cx, unsigned idx)
                return -1;
 
        /* It's an I2C device other than an analog tuner */
-       sd = v4l2_i2c_new_subdev(adap, mod, type, hw_addrs[idx]);
+       sd = v4l2_i2c_new_subdev(&cx->v4l2_dev, adap, mod, type, hw_addrs[idx]);
        if (sd != NULL)
                sd->grp_id = hw;
        return sd != NULL ? 0 : -1;
index e4c9e3d..d7b1921 100644 (file)
@@ -705,7 +705,7 @@ int cx18_s_std(struct file *file, void *fh, v4l2_std_id *std)
                        (unsigned long long) cx->std);
 
        /* Tuner */
-       cx18_call_all(cx, tuner, s_std, cx->std);
+       cx18_call_all(cx, core, s_std, cx->std);
        return 0;
 }
 
@@ -926,16 +926,6 @@ static long cx18_default(struct file *file, void *fh, int cmd, void *arg)
        struct cx18 *cx = ((struct cx18_open_id *)fh)->cx;
 
        switch (cmd) {
-       case VIDIOC_INT_S_AUDIO_ROUTING: {
-               struct v4l2_routing *route = arg;
-
-               CX18_DEBUG_IOCTL("VIDIOC_INT_S_AUDIO_ROUTING(%d, %d)\n",
-                       route->input, route->output);
-               cx18_call_hw(cx, cx->card->hw_audio_ctrl, audio, s_routing,
-                            route);
-               break;
-       }
-
        case VIDIOC_INT_RESET: {
                u32 val = *(u32 *)arg;
 
index 6fdaded..6dc84aa 100644 (file)
 
 void cx18_video_set_io(struct cx18 *cx)
 {
-       struct v4l2_routing route;
        int inp = cx->active_input;
-       u32 type;
 
-       route.input = cx->card->video_inputs[inp].video_input;
-       route.output = 0;
-       v4l2_subdev_call(cx->sd_av, video, s_routing, &route);
-
-       type = cx->card->video_inputs[inp].video_type;
-
-       if (type == CX18_CARD_INPUT_VID_TUNER)
-               route.input = 0;  /* Tuner */
-       else if (type < CX18_CARD_INPUT_COMPOSITE1)
-               route.input = 2;  /* S-Video */
-       else
-               route.input = 1;  /* Composite */
+       v4l2_subdev_call(cx->sd_av, video, s_routing,
+                       cx->card->video_inputs[inp].video_input, 0, 0);
 }
diff --git a/drivers/media/video/cx231xx/Kconfig b/drivers/media/video/cx231xx/Kconfig
new file mode 100644 (file)
index 0000000..9115654
--- /dev/null
@@ -0,0 +1,35 @@
+config VIDEO_CX231XX
+       tristate "Conexant cx231xx USB video capture support"
+       depends on VIDEO_DEV && I2C && INPUT
+       select VIDEO_TUNER
+       select VIDEO_TVEEPROM
+       select VIDEO_IR
+       select VIDEOBUF_VMALLOC
+       select VIDEO_CX25840
+       select VIDEO_CX231XX_ALSA
+
+       ---help---
+         This is a video4linux driver for Conexant 231xx USB based TV cards.
+
+         To compile this driver as a module, choose M here: the
+         module will be called cx231xx
+
+config VIDEO_CX231XX_ALSA
+    tristate "Conexant Cx231xx ALSA audio module"
+       depends on VIDEO_CX231XX && SND
+       select SND_PCM
+
+       ---help---
+        This is an ALSA driver for Cx231xx USB based TV cards.
+
+        To compile this driver as a module, choose M here: the
+        module will be called cx231xx-alsa
+
+config VIDEO_CX231XX_DVB
+       tristate "DVB/ATSC Support for Cx231xx based TV cards"
+       depends on VIDEO_CX231XX && DVB_CORE
+       select VIDEOBUF_DVB
+       select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMISE
+       ---help---
+        This adds support for DVB cards based on the
+        Conexant cx231xx chips.
diff --git a/drivers/media/video/cx231xx/Makefile b/drivers/media/video/cx231xx/Makefile
new file mode 100644 (file)
index 0000000..755dd0c
--- /dev/null
@@ -0,0 +1,14 @@
+cx231xx-objs     := cx231xx-video.o cx231xx-i2c.o cx231xx-cards.o cx231xx-core.o \
+                   cx231xx-avcore.o cx231xx-pcb-cfg.o cx231xx-vbi.o
+
+cx231xx-alsa-objs := cx231xx-audio.o
+
+obj-$(CONFIG_VIDEO_CX231XX) += cx231xx.o
+obj-$(CONFIG_VIDEO_CX231XX_ALSA) += cx231xx-alsa.o
+obj-$(CONFIG_VIDEO_CX231XX_DVB) += cx231xx-dvb.o
+
+EXTRA_CFLAGS += -Idrivers/media/video
+EXTRA_CFLAGS += -Idrivers/media/common/tuners
+EXTRA_CFLAGS += -Idrivers/media/dvb/dvb-core
+EXTRA_CFLAGS += -Idrivers/media/dvb/frontends
+
diff --git a/drivers/media/video/cx231xx/cx231xx-audio.c b/drivers/media/video/cx231xx/cx231xx-audio.c
new file mode 100644 (file)
index 0000000..7793d60
--- /dev/null
@@ -0,0 +1,586 @@
+/*
+ *  Conexant Cx231xx audio extension
+ *
+ *  Copyright (C) 2008 <srinivasa.deevi at conexant dot com>
+ *       Based on em28xx driver
+ *
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <linux/kernel.h>
+#include <linux/usb.h>
+#include <linux/init.h>
+#include <linux/sound.h>
+#include <linux/spinlock.h>
+#include <linux/soundcard.h>
+#include <linux/slab.h>
+#include <linux/vmalloc.h>
+#include <linux/proc_fs.h>
+#include <linux/module.h>
+#include <sound/core.h>
+#include <sound/pcm.h>
+#include <sound/pcm_params.h>
+#include <sound/info.h>
+#include <sound/initval.h>
+#include <sound/control.h>
+#include <media/v4l2-common.h>
+#include "cx231xx.h"
+
+static int debug;
+module_param(debug, int, 0644);
+MODULE_PARM_DESC(debug, "activates debug info");
+
+#define dprintk(fmt, arg...) do {                                      \
+               if (debug)                                              \
+                       printk(KERN_INFO "cx231xx-audio %s: " fmt,      \
+                               __func__, ##arg);                       \
+       } while (0)
+
+static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;
+
+static int cx231xx_isoc_audio_deinit(struct cx231xx *dev)
+{
+       int i;
+
+       dprintk("Stopping isoc\n");
+
+       for (i = 0; i < CX231XX_AUDIO_BUFS; i++) {
+               if (dev->adev.urb[i]) {
+                       if (!irqs_disabled())
+                               usb_kill_urb(dev->adev.urb[i]);
+                       else
+                               usb_unlink_urb(dev->adev.urb[i]);
+
+                       usb_free_urb(dev->adev.urb[i]);
+                       dev->adev.urb[i] = NULL;
+
+                       kfree(dev->adev.transfer_buffer[i]);
+                       dev->adev.transfer_buffer[i] = NULL;
+               }
+       }
+
+       return 0;
+}
+
+static void cx231xx_audio_isocirq(struct urb *urb)
+{
+       struct cx231xx *dev = urb->context;
+       int i;
+       unsigned int oldptr;
+       int period_elapsed = 0;
+       int status;
+       unsigned char *cp;
+       unsigned int stride;
+       struct snd_pcm_substream *substream;
+       struct snd_pcm_runtime *runtime;
+
+       switch (urb->status) {
+       case 0:         /* success */
+       case -ETIMEDOUT:        /* NAK */
+               break;
+       case -ECONNRESET:       /* kill */
+       case -ENOENT:
+       case -ESHUTDOWN:
+               return;
+       default:                /* error */
+               dprintk("urb completition error %d.\n", urb->status);
+               break;
+       }
+
+       if (dev->adev.capture_pcm_substream) {
+               substream = dev->adev.capture_pcm_substream;
+               runtime = substream->runtime;
+               stride = runtime->frame_bits >> 3;
+
+               for (i = 0; i < urb->number_of_packets; i++) {
+                       int length = urb->iso_frame_desc[i].actual_length /
+                                    stride;
+                       cp = (unsigned char *)urb->transfer_buffer +
+                                             urb->iso_frame_desc[i].offset;
+
+                       if (!length)
+                               continue;
+
+                       oldptr = dev->adev.hwptr_done_capture;
+                       if (oldptr + length >= runtime->buffer_size) {
+                               unsigned int cnt;
+
+                               cnt = runtime->buffer_size - oldptr;
+                               memcpy(runtime->dma_area + oldptr * stride, cp,
+                                      cnt * stride);
+                               memcpy(runtime->dma_area, cp + cnt * stride,
+                                      length * stride - cnt * stride);
+                       } else {
+                               memcpy(runtime->dma_area + oldptr * stride, cp,
+                                      length * stride);
+                       }
+
+                       snd_pcm_stream_lock(substream);
+
+                       dev->adev.hwptr_done_capture += length;
+                       if (dev->adev.hwptr_done_capture >=
+                                               runtime->buffer_size)
+                               dev->adev.hwptr_done_capture -=
+                                               runtime->buffer_size;
+
+                       dev->adev.capture_transfer_done += length;
+                       if (dev->adev.capture_transfer_done >=
+                               runtime->period_size) {
+                               dev->adev.capture_transfer_done -=
+                                               runtime->period_size;
+                               period_elapsed = 1;
+                       }
+                       snd_pcm_stream_unlock(substream);
+               }
+               if (period_elapsed)
+                       snd_pcm_period_elapsed(substream);
+       }
+       urb->status = 0;
+
+       status = usb_submit_urb(urb, GFP_ATOMIC);
+       if (status < 0) {
+               cx231xx_errdev("resubmit of audio urb failed (error=%i)\n",
+                              status);
+       }
+       return;
+}
+
+static int cx231xx_init_audio_isoc(struct cx231xx *dev)
+{
+       int i, errCode;
+       int sb_size;
+
+       cx231xx_info("%s: Starting AUDIO transfers\n", __func__);
+
+       sb_size = CX231XX_NUM_AUDIO_PACKETS * dev->adev.max_pkt_size;
+
+       for (i = 0; i < CX231XX_AUDIO_BUFS; i++) {
+               struct urb *urb;
+               int j, k;
+
+               dev->adev.transfer_buffer[i] = kmalloc(sb_size, GFP_ATOMIC);
+               if (!dev->adev.transfer_buffer[i])
+                       return -ENOMEM;
+
+               memset(dev->adev.transfer_buffer[i], 0x80, sb_size);
+               urb = usb_alloc_urb(CX231XX_NUM_AUDIO_PACKETS, GFP_ATOMIC);
+               if (!urb) {
+                       cx231xx_errdev("usb_alloc_urb failed!\n");
+                       for (j = 0; j < i; j++) {
+                               usb_free_urb(dev->adev.urb[j]);
+                               kfree(dev->adev.transfer_buffer[j]);
+                       }
+                       return -ENOMEM;
+               }
+
+               urb->dev = dev->udev;
+               urb->context = dev;
+               urb->pipe = usb_rcvisocpipe(dev->udev,
+                                               dev->adev.end_point_addr);
+               urb->transfer_flags = URB_ISO_ASAP;
+               urb->transfer_buffer = dev->adev.transfer_buffer[i];
+               urb->interval = 1;
+               urb->complete = cx231xx_audio_isocirq;
+               urb->number_of_packets = CX231XX_NUM_AUDIO_PACKETS;
+               urb->transfer_buffer_length = sb_size;
+
+               for (j = k = 0; j < CX231XX_NUM_AUDIO_PACKETS;
+                       j++, k += dev->adev.max_pkt_size) {
+                       urb->iso_frame_desc[j].offset = k;
+                       urb->iso_frame_desc[j].length = dev->adev.max_pkt_size;
+               }
+               dev->adev.urb[i] = urb;
+       }
+
+       for (i = 0; i < CX231XX_AUDIO_BUFS; i++) {
+               errCode = usb_submit_urb(dev->adev.urb[i], GFP_ATOMIC);
+               if (errCode < 0) {
+                       cx231xx_isoc_audio_deinit(dev);
+                       return errCode;
+               }
+       }
+
+       return errCode;
+}
+
+static int cx231xx_cmd(struct cx231xx *dev, int cmd, int arg)
+{
+       dprintk("%s transfer\n", (dev->adev.capture_stream == STREAM_ON) ?
+               "stop" : "start");
+
+       switch (cmd) {
+       case CX231XX_CAPTURE_STREAM_EN:
+               if (dev->adev.capture_stream == STREAM_OFF && arg == 1) {
+                       dev->adev.capture_stream = STREAM_ON;
+                       cx231xx_init_audio_isoc(dev);
+               } else if (dev->adev.capture_stream == STREAM_ON && arg == 0) {
+                       dev->adev.capture_stream = STREAM_OFF;
+                       cx231xx_isoc_audio_deinit(dev);
+               } else {
+                       cx231xx_errdev("An underrun very likely occurred. "
+                                      "Ignoring it.\n");
+               }
+               return 0;
+       default:
+               return -EINVAL;
+       }
+}
+
+static int snd_pcm_alloc_vmalloc_buffer(struct snd_pcm_substream *subs,
+                                       size_t size)
+{
+       struct snd_pcm_runtime *runtime = subs->runtime;
+
+       dprintk("Allocating vbuffer\n");
+       if (runtime->dma_area) {
+               if (runtime->dma_bytes > size)
+                       return 0;
+
+               vfree(runtime->dma_area);
+       }
+       runtime->dma_area = vmalloc(size);
+       if (!runtime->dma_area)
+               return -ENOMEM;
+
+       runtime->dma_bytes = size;
+
+       return 0;
+}
+
+static struct snd_pcm_hardware snd_cx231xx_hw_capture = {
+       .info = SNDRV_PCM_INFO_BLOCK_TRANSFER   |
+           SNDRV_PCM_INFO_MMAP                 |
+           SNDRV_PCM_INFO_INTERLEAVED          |
+           SNDRV_PCM_INFO_MMAP_VALID,
+
+       .formats = SNDRV_PCM_FMTBIT_S16_LE,
+
+       .rates = SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_KNOT,
+
+       .rate_min = 48000,
+       .rate_max = 48000,
+       .channels_min = 2,
+       .channels_max = 2,
+       .buffer_bytes_max = 62720 * 8,  /* just about the value in usbaudio.c */
+       .period_bytes_min = 64,         /* 12544/2, */
+       .period_bytes_max = 12544,
+       .periods_min = 2,
+       .periods_max = 98,              /* 12544, */
+};
+
+static int snd_cx231xx_capture_open(struct snd_pcm_substream *substream)
+{
+       struct cx231xx *dev = snd_pcm_substream_chip(substream);
+       struct snd_pcm_runtime *runtime = substream->runtime;
+       int ret = 0;
+
+       dprintk("opening device and trying to acquire exclusive lock\n");
+
+       if (!dev) {
+               cx231xx_errdev("BUG: cx231xx can't find device struct."
+                              " Can't proceed with open\n");
+               return -ENODEV;
+       }
+
+       /* Sets volume, mute, etc */
+       dev->mute = 0;
+
+       /* set alternate setting for audio interface */
+       /* 1 - 48000 samples per sec */
+       ret = cx231xx_set_alt_setting(dev, INDEX_AUDIO, 1);
+       if (ret < 0) {
+               cx231xx_errdev("failed to set alternate setting !\n");
+
+               return ret;
+       }
+
+       /* inform hardware to start streaming */
+       ret = cx231xx_capture_start(dev, 1, Audio);
+
+       runtime->hw = snd_cx231xx_hw_capture;
+
+       mutex_lock(&dev->lock);
+       dev->adev.users++;
+       mutex_unlock(&dev->lock);
+
+       snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS);
+       dev->adev.capture_pcm_substream = substream;
+       runtime->private_data = dev;
+
+       return 0;
+}
+
+static int snd_cx231xx_pcm_close(struct snd_pcm_substream *substream)
+{
+       int ret;
+       struct cx231xx *dev = snd_pcm_substream_chip(substream);
+
+       dprintk("closing device\n");
+
+       /* set alternate setting for audio interface */
+       /* 1 - 48000 samples per sec */
+       ret = cx231xx_set_alt_setting(dev, INDEX_AUDIO, 0);
+       if (ret < 0) {
+               cx231xx_errdev("failed to set alternate setting !\n");
+
+               return ret;
+       }
+
+       /* inform hardware to start streaming */
+       ret = cx231xx_capture_start(dev, 0, Audio);
+
+       dev->mute = 1;
+       mutex_lock(&dev->lock);
+       dev->adev.users--;
+       mutex_unlock(&dev->lock);
+
+       if (dev->adev.users == 0 && dev->adev.shutdown == 1) {
+               dprintk("audio users: %d\n", dev->adev.users);
+               dprintk("disabling audio stream!\n");
+               dev->adev.shutdown = 0;
+               dprintk("released lock\n");
+               cx231xx_cmd(dev, CX231XX_CAPTURE_STREAM_EN, 0);
+       }
+       return 0;
+}
+
+static int snd_cx231xx_hw_capture_params(struct snd_pcm_substream *substream,
+                                        struct snd_pcm_hw_params *hw_params)
+{
+       unsigned int channels, rate, format;
+       int ret;
+
+       dprintk("Setting capture parameters\n");
+
+       ret = snd_pcm_alloc_vmalloc_buffer(substream,
+                                          params_buffer_bytes(hw_params));
+       format = params_format(hw_params);
+       rate = params_rate(hw_params);
+       channels = params_channels(hw_params);
+
+       /* TODO: set up cx231xx audio chip to deliver the correct audio format,
+          current default is 48000hz multiplexed => 96000hz mono
+          which shouldn't matter since analogue TV only supports mono */
+       return 0;
+}
+
+static int snd_cx231xx_hw_capture_free(struct snd_pcm_substream *substream)
+{
+       struct cx231xx *dev = snd_pcm_substream_chip(substream);
+
+       dprintk("Stop capture, if needed\n");
+
+       if (dev->adev.capture_stream == STREAM_ON)
+               cx231xx_cmd(dev, CX231XX_CAPTURE_STREAM_EN, CX231XX_STOP_AUDIO);
+
+       return 0;
+}
+
+static int snd_cx231xx_prepare(struct snd_pcm_substream *substream)
+{
+       return 0;
+}
+
+static int snd_cx231xx_capture_trigger(struct snd_pcm_substream *substream,
+                                      int cmd)
+{
+       struct cx231xx *dev = snd_pcm_substream_chip(substream);
+       int retval;
+
+       dprintk("Should %s capture\n", (cmd == SNDRV_PCM_TRIGGER_START) ?
+               "start" : "stop");
+
+       spin_lock(&dev->adev.slock);
+       switch (cmd) {
+       case SNDRV_PCM_TRIGGER_START:
+               cx231xx_cmd(dev, CX231XX_CAPTURE_STREAM_EN,
+                           CX231XX_START_AUDIO);
+               retval = 0;
+               break;
+       case SNDRV_PCM_TRIGGER_STOP:
+               cx231xx_cmd(dev, CX231XX_CAPTURE_STREAM_EN, CX231XX_STOP_AUDIO);
+               retval = 0;
+               break;
+       default:
+               retval = -EINVAL;
+       }
+
+       spin_unlock(&dev->adev.slock);
+       return retval;
+}
+
+static snd_pcm_uframes_t snd_cx231xx_capture_pointer(struct snd_pcm_substream
+                                                    *substream)
+{
+       struct cx231xx *dev;
+       unsigned long flags;
+       snd_pcm_uframes_t hwptr_done;
+
+       dev = snd_pcm_substream_chip(substream);
+
+       spin_lock_irqsave(&dev->adev.slock, flags);
+       hwptr_done = dev->adev.hwptr_done_capture;
+       spin_unlock_irqrestore(&dev->adev.slock, flags);
+
+       return hwptr_done;
+}
+
+static struct page *snd_pcm_get_vmalloc_page(struct snd_pcm_substream *subs,
+                                            unsigned long offset)
+{
+       void *pageptr = subs->runtime->dma_area + offset;
+
+       return vmalloc_to_page(pageptr);
+}
+
+static struct snd_pcm_ops snd_cx231xx_pcm_capture = {
+       .open = snd_cx231xx_capture_open,
+       .close = snd_cx231xx_pcm_close,
+       .ioctl = snd_pcm_lib_ioctl,
+       .hw_params = snd_cx231xx_hw_capture_params,
+       .hw_free = snd_cx231xx_hw_capture_free,
+       .prepare = snd_cx231xx_prepare,
+       .trigger = snd_cx231xx_capture_trigger,
+       .pointer = snd_cx231xx_capture_pointer,
+       .page = snd_pcm_get_vmalloc_page,
+};
+
+static int cx231xx_audio_init(struct cx231xx *dev)
+{
+       struct cx231xx_audio *adev = &dev->adev;
+       struct snd_pcm *pcm;
+       struct snd_card *card;
+       static int devnr;
+       int err;
+       struct usb_interface *uif;
+       int i, isoc_pipe = 0;
+
+       if (dev->has_alsa_audio != 1) {
+               /* This device does not support the extension (in this case
+                  the device is expecting the snd-usb-audio module or
+                  doesn't have analog audio support at all) */
+               return 0;
+       }
+
+       cx231xx_info("cx231xx-audio.c: probing for cx231xx "
+                    "non standard usbaudio\n");
+
+       err = snd_card_create(index[devnr], "Cx231xx Audio", THIS_MODULE,
+                             0, &card);
+       if (err < 0)
+               return err;
+
+       spin_lock_init(&adev->slock);
+       err = snd_pcm_new(card, "Cx231xx Audio", 0, 0, 1, &pcm);
+       if (err < 0) {
+               snd_card_free(card);
+               return err;
+       }
+
+       snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE,
+                       &snd_cx231xx_pcm_capture);
+       pcm->info_flags = 0;
+       pcm->private_data = dev;
+       strcpy(pcm->name, "Conexant cx231xx Capture");
+       strcpy(card->driver, "Conexant cx231xx Audio");
+       strcpy(card->shortname, "Cx231xx Audio");
+       strcpy(card->longname, "Conexant cx231xx Audio");
+
+       err = snd_card_register(card);
+       if (err < 0) {
+               snd_card_free(card);
+               return err;
+       }
+       adev->sndcard = card;
+       adev->udev = dev->udev;
+
+       /* compute alternate max packet sizes for Audio */
+       uif =
+           dev->udev->actconfig->interface[dev->current_pcb_config.
+                                           hs_config_info[0].interface_info.
+                                           audio_index + 1];
+
+       adev->end_point_addr =
+           le16_to_cpu(uif->altsetting[0].endpoint[isoc_pipe].desc.
+                       bEndpointAddress);
+
+       adev->num_alt = uif->num_altsetting;
+       cx231xx_info("EndPoint Addr 0x%x, Alternate settings: %i\n",
+                    adev->end_point_addr, adev->num_alt);
+       adev->alt_max_pkt_size = kmalloc(32 * adev->num_alt, GFP_KERNEL);
+
+       if (adev->alt_max_pkt_size == NULL) {
+               cx231xx_errdev("out of memory!\n");
+               return -ENOMEM;
+       }
+
+       for (i = 0; i < adev->num_alt; i++) {
+               u16 tmp =
+                   le16_to_cpu(uif->altsetting[i].endpoint[isoc_pipe].desc.
+                               wMaxPacketSize);
+               adev->alt_max_pkt_size[i] =
+                   (tmp & 0x07ff) * (((tmp & 0x1800) >> 11) + 1);
+               cx231xx_info("Alternate setting %i, max size= %i\n", i,
+                            adev->alt_max_pkt_size[i]);
+       }
+
+       return 0;
+}
+
+static int cx231xx_audio_fini(struct cx231xx *dev)
+{
+       if (dev == NULL)
+               return 0;
+
+       if (dev->has_alsa_audio != 1) {
+               /* This device does not support the extension (in this case
+                  the device is expecting the snd-usb-audio module or
+                  doesn't have analog audio support at all) */
+               return 0;
+       }
+
+       if (dev->adev.sndcard) {
+               snd_card_free(dev->adev.sndcard);
+               kfree(dev->adev.alt_max_pkt_size);
+               dev->adev.sndcard = NULL;
+       }
+
+       return 0;
+}
+
+static struct cx231xx_ops audio_ops = {
+       .id = CX231XX_AUDIO,
+       .name = "Cx231xx Audio Extension",
+       .init = cx231xx_audio_init,
+       .fini = cx231xx_audio_fini,
+};
+
+static int __init cx231xx_alsa_register(void)
+{
+       return cx231xx_register_extension(&audio_ops);
+}
+
+static void __exit cx231xx_alsa_unregister(void)
+{
+       cx231xx_unregister_extension(&audio_ops);
+}
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Srinivasa Deevi <srinivasa.deevi@conexant.com>");
+MODULE_DESCRIPTION("Cx231xx Audio driver");
+
+module_init(cx231xx_alsa_register);
+module_exit(cx231xx_alsa_unregister);
diff --git a/drivers/media/video/cx231xx/cx231xx-avcore.c b/drivers/media/video/cx231xx/cx231xx-avcore.c
new file mode 100644 (file)
index 0000000..1be3881
--- /dev/null
@@ -0,0 +1,2581 @@
+/*
+   cx231xx_avcore.c - driver for Conexant Cx23100/101/102
+                     USB video capture devices
+
+   Copyright (C) 2008 <srinivasa.deevi at conexant dot com>
+
+   This program contains the specific code to control the avdecoder chip and
+   other related usb control functions for cx231xx based chipset.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <linux/init.h>
+#include <linux/list.h>
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/bitmap.h>
+#include <linux/usb.h>
+#include <linux/i2c.h>
+#include <linux/version.h>
+#include <linux/mm.h>
+#include <linux/mutex.h>
+
+#include <media/v4l2-common.h>
+#include <media/v4l2-ioctl.h>
+#include <media/v4l2-chip-ident.h>
+
+#include "cx231xx.h"
+
+/******************************************************************************
+                       -: BLOCK ARRANGEMENT :-
+       I2S block ----------------------|
+       [I2S audio]                     |
+                                       |
+       Analog Front End --> Direct IF -|-> Cx25840 --> Audio
+       [video & audio]                 |   [Audio]
+                                       |
+                                       |-> Cx25840 --> Video
+                                           [Video]
+
+*******************************************************************************/
+
+/******************************************************************************
+ *                    A F E - B L O C K    C O N T R O L   functions          *
+ *                             [ANALOG FRONT END]                            *
+ ******************************************************************************/
+static int afe_write_byte(struct cx231xx *dev, u16 saddr, u8 data)
+{
+       return cx231xx_write_i2c_data(dev, AFE_DEVICE_ADDRESS,
+                                       saddr, 2, data, 1);
+}
+
+static int afe_read_byte(struct cx231xx *dev, u16 saddr, u8 *data)
+{
+       int status;
+       u32 temp = 0;
+
+       status = cx231xx_read_i2c_data(dev, AFE_DEVICE_ADDRESS,
+                                       saddr, 2, &temp, 1);
+       *data = (u8) temp;
+       return status;
+}
+
+int cx231xx_afe_init_super_block(struct cx231xx *dev, u32 ref_count)
+{
+       int status = 0;
+       u8 temp = 0;
+       u8 afe_power_status = 0;
+       int i = 0;
+
+       /* super block initialize */
+       temp = (u8) (ref_count & 0xff);
+       status = afe_write_byte(dev, SUP_BLK_TUNE2, temp);
+       if (status < 0)
+               return status;
+
+       status = afe_read_byte(dev, SUP_BLK_TUNE2, &afe_power_status);
+       if (status < 0)
+               return status;
+
+       temp = (u8) ((ref_count & 0x300) >> 8);
+       temp |= 0x40;
+       status = afe_write_byte(dev, SUP_BLK_TUNE1, temp);
+       if (status < 0)
+               return status;
+
+       status = afe_write_byte(dev, SUP_BLK_PLL2, 0x0f);
+       if (status < 0)
+               return status;
+
+       /* enable pll     */
+       while (afe_power_status != 0x18) {
+               status = afe_write_byte(dev, SUP_BLK_PWRDN, 0x18);
+               if (status < 0) {
+                       cx231xx_info(
+                       ": Init Super Block failed in send cmd\n");
+                       break;
+               }
+
+               status = afe_read_byte(dev, SUP_BLK_PWRDN, &afe_power_status);
+               afe_power_status &= 0xff;
+               if (status < 0) {
+                       cx231xx_info(
+                       ": Init Super Block failed in receive cmd\n");
+                       break;
+               }
+               i++;
+               if (i == 10) {
+                       cx231xx_info(
+                       ": Init Super Block force break in loop !!!!\n");
+                       status = -1;
+                       break;
+               }
+       }
+
+       if (status < 0)
+               return status;
+
+       /* start tuning filter */
+       status = afe_write_byte(dev, SUP_BLK_TUNE3, 0x40);
+       if (status < 0)
+               return status;
+
+       msleep(5);
+
+       /* exit tuning */
+       status = afe_write_byte(dev, SUP_BLK_TUNE3, 0x00);
+
+       return status;
+}
+
+int cx231xx_afe_init_channels(struct cx231xx *dev)
+{
+       int status = 0;
+
+       /* power up all 3 channels, clear pd_buffer */
+       status = afe_write_byte(dev, ADC_PWRDN_CLAMP_CH1, 0x00);
+       status = afe_write_byte(dev, ADC_PWRDN_CLAMP_CH2, 0x00);
+       status = afe_write_byte(dev, ADC_PWRDN_CLAMP_CH3, 0x00);
+
+       /* Enable quantizer calibration */
+       status = afe_write_byte(dev, ADC_COM_QUANT, 0x02);
+
+       /* channel initialize, force modulator (fb) reset */
+       status = afe_write_byte(dev, ADC_FB_FRCRST_CH1, 0x17);
+       status = afe_write_byte(dev, ADC_FB_FRCRST_CH2, 0x17);
+       status = afe_write_byte(dev, ADC_FB_FRCRST_CH3, 0x17);
+
+       /* start quantilizer calibration  */
+       status = afe_write_byte(dev, ADC_CAL_ATEST_CH1, 0x10);
+       status = afe_write_byte(dev, ADC_CAL_ATEST_CH2, 0x10);
+       status = afe_write_byte(dev, ADC_CAL_ATEST_CH3, 0x10);
+       msleep(5);
+
+       /* exit modulator (fb) reset */
+       status = afe_write_byte(dev, ADC_FB_FRCRST_CH1, 0x07);
+       status = afe_write_byte(dev, ADC_FB_FRCRST_CH2, 0x07);
+       status = afe_write_byte(dev, ADC_FB_FRCRST_CH3, 0x07);
+
+       /* enable the pre_clamp in each channel for single-ended input */
+       status = afe_write_byte(dev, ADC_NTF_PRECLMP_EN_CH1, 0xf0);
+       status = afe_write_byte(dev, ADC_NTF_PRECLMP_EN_CH2, 0xf0);
+       status = afe_write_byte(dev, ADC_NTF_PRECLMP_EN_CH3, 0xf0);
+
+       /* use diode instead of resistor, so set term_en to 0, res_en to 0  */
+       status = cx231xx_reg_mask_write(dev, AFE_DEVICE_ADDRESS, 8,
+                                  ADC_QGAIN_RES_TRM_CH1, 3, 7, 0x00);
+       status = cx231xx_reg_mask_write(dev, AFE_DEVICE_ADDRESS, 8,
+                                  ADC_QGAIN_RES_TRM_CH2, 3, 7, 0x00);
+       status = cx231xx_reg_mask_write(dev, AFE_DEVICE_ADDRESS, 8,
+                                  ADC_QGAIN_RES_TRM_CH3, 3, 7, 0x00);
+
+       /* dynamic element matching off */
+       status = afe_write_byte(dev, ADC_DCSERVO_DEM_CH1, 0x03);
+       status = afe_write_byte(dev, ADC_DCSERVO_DEM_CH2, 0x03);
+       status = afe_write_byte(dev, ADC_DCSERVO_DEM_CH3, 0x03);
+
+       return status;
+}
+
+int cx231xx_afe_setup_AFE_for_baseband(struct cx231xx *dev)
+{
+       u8 c_value = 0;
+       int status = 0;
+
+       status = afe_read_byte(dev, ADC_PWRDN_CLAMP_CH2, &c_value);
+       c_value &= (~(0x50));
+       status = afe_write_byte(dev, ADC_PWRDN_CLAMP_CH2, c_value);
+
+       return status;
+}
+
+/*
+       The Analog Front End in Cx231xx has 3 channels. These
+       channels are used to share between different inputs
+       like tuner, s-video and composite inputs.
+
+       channel 1 ----- pin 1  to pin4(in reg is 1-4)
+       channel 2 ----- pin 5  to pin8(in reg is 5-8)
+       channel 3 ----- pin 9 to pin 12(in reg is 9-11)
+*/
+int cx231xx_afe_set_input_mux(struct cx231xx *dev, u32 input_mux)
+{
+       u8 ch1_setting = (u8) input_mux;
+       u8 ch2_setting = (u8) (input_mux >> 8);
+       u8 ch3_setting = (u8) (input_mux >> 16);
+       int status = 0;
+       u8 value = 0;
+
+       if (ch1_setting != 0) {
+               status = afe_read_byte(dev, ADC_INPUT_CH1, &value);
+               value &= (!INPUT_SEL_MASK);
+               value |= (ch1_setting - 1) << 4;
+               value &= 0xff;
+               status = afe_write_byte(dev, ADC_INPUT_CH1, value);
+       }
+
+       if (ch2_setting != 0) {
+               status = afe_read_byte(dev, ADC_INPUT_CH2, &value);
+               value &= (!INPUT_SEL_MASK);
+               value |= (ch2_setting - 1) << 4;
+               value &= 0xff;
+               status = afe_write_byte(dev, ADC_INPUT_CH2, value);
+       }
+
+       /* For ch3_setting, the value to put in the register is
+          7 less than the input number */
+       if (ch3_setting != 0) {
+               status = afe_read_byte(dev, ADC_INPUT_CH3, &value);
+               value &= (!INPUT_SEL_MASK);
+               value |= (ch3_setting - 1) << 4;
+               value &= 0xff;
+               status = afe_write_byte(dev, ADC_INPUT_CH3, value);
+       }
+
+       return status;
+}
+
+int cx231xx_afe_set_mode(struct cx231xx *dev, enum AFE_MODE mode)
+{
+       int status = 0;
+
+       /*
+       * FIXME: We need to implement the AFE code for LOW IF and for HI IF.
+       * Currently, only baseband works.
+       */
+
+       switch (mode) {
+       case AFE_MODE_LOW_IF:
+               /* SetupAFEforLowIF();  */
+               break;
+       case AFE_MODE_BASEBAND:
+               status = cx231xx_afe_setup_AFE_for_baseband(dev);
+               break;
+       case AFE_MODE_EU_HI_IF:
+               /* SetupAFEforEuHiIF(); */
+               break;
+       case AFE_MODE_US_HI_IF:
+               /* SetupAFEforUsHiIF(); */
+               break;
+       case AFE_MODE_JAPAN_HI_IF:
+               /* SetupAFEforJapanHiIF(); */
+               break;
+       }
+
+       if ((mode != dev->afe_mode) &&
+               (dev->video_input == CX231XX_VMUX_TELEVISION))
+               status = cx231xx_afe_adjust_ref_count(dev,
+                                                    CX231XX_VMUX_TELEVISION);
+
+       dev->afe_mode = mode;
+
+       return status;
+}
+
+int cx231xx_afe_update_power_control(struct cx231xx *dev,
+                                       enum AV_MODE avmode)
+{
+       u8 afe_power_status = 0;
+       int status = 0;
+
+       switch (dev->model) {
+       case CX231XX_BOARD_CNXT_RDE_250:
+       case CX231XX_BOARD_CNXT_RDU_250:
+               if (avmode == POLARIS_AVMODE_ANALOGT_TV) {
+                       while (afe_power_status != (FLD_PWRDN_TUNING_BIAS |
+                                               FLD_PWRDN_ENABLE_PLL)) {
+                               status = afe_write_byte(dev, SUP_BLK_PWRDN,
+                                                       FLD_PWRDN_TUNING_BIAS |
+                                                       FLD_PWRDN_ENABLE_PLL);
+                               status |= afe_read_byte(dev, SUP_BLK_PWRDN,
+                                                       &afe_power_status);
+                               if (status < 0)
+                                       break;
+                       }
+
+                       status = afe_write_byte(dev, ADC_PWRDN_CLAMP_CH1,
+                                                       0x00);
+                       status |= afe_write_byte(dev, ADC_PWRDN_CLAMP_CH2,
+                                                       0x00);
+                       status |= afe_write_byte(dev, ADC_PWRDN_CLAMP_CH3,
+                                                       0x00);
+               } else if (avmode == POLARIS_AVMODE_DIGITAL) {
+                       status = afe_write_byte(dev, ADC_PWRDN_CLAMP_CH1,
+                                                       0x70);
+                       status |= afe_write_byte(dev, ADC_PWRDN_CLAMP_CH2,
+                                                       0x70);
+                       status |= afe_write_byte(dev, ADC_PWRDN_CLAMP_CH3,
+                                                       0x70);
+
+                       status |= afe_read_byte(dev, SUP_BLK_PWRDN,
+                                                 &afe_power_status);
+                       afe_power_status |= FLD_PWRDN_PD_BANDGAP |
+                                               FLD_PWRDN_PD_BIAS |
+                                               FLD_PWRDN_PD_TUNECK;
+                       status |= afe_write_byte(dev, SUP_BLK_PWRDN,
+                                                  afe_power_status);
+               } else if (avmode == POLARIS_AVMODE_ENXTERNAL_AV) {
+                       while (afe_power_status != (FLD_PWRDN_TUNING_BIAS |
+                                               FLD_PWRDN_ENABLE_PLL)) {
+                               status = afe_write_byte(dev, SUP_BLK_PWRDN,
+                                                       FLD_PWRDN_TUNING_BIAS |
+                                                       FLD_PWRDN_ENABLE_PLL);
+                               status |= afe_read_byte(dev, SUP_BLK_PWRDN,
+                                                       &afe_power_status);
+                               if (status < 0)
+                                       break;
+                       }
+
+                       status |= afe_write_byte(dev, ADC_PWRDN_CLAMP_CH1,
+                                               0x00);
+                       status |= afe_write_byte(dev, ADC_PWRDN_CLAMP_CH2,
+                                               0x00);
+                       status |= afe_write_byte(dev, ADC_PWRDN_CLAMP_CH3,
+                                               0x00);
+               } else {
+                       cx231xx_info("Invalid AV mode input\n");
+                       status = -1;
+               }
+               break;
+       default:
+               if (avmode == POLARIS_AVMODE_ANALOGT_TV) {
+                       while (afe_power_status != (FLD_PWRDN_TUNING_BIAS |
+                                               FLD_PWRDN_ENABLE_PLL)) {
+                               status = afe_write_byte(dev, SUP_BLK_PWRDN,
+                                                       FLD_PWRDN_TUNING_BIAS |
+                                                       FLD_PWRDN_ENABLE_PLL);
+                               status |= afe_read_byte(dev, SUP_BLK_PWRDN,
+                                                       &afe_power_status);
+                               if (status < 0)
+                                       break;
+                       }
+
+                       status |= afe_write_byte(dev, ADC_PWRDN_CLAMP_CH1,
+                                                       0x40);
+                       status |= afe_write_byte(dev, ADC_PWRDN_CLAMP_CH2,
+                                                       0x40);
+                       status |= afe_write_byte(dev, ADC_PWRDN_CLAMP_CH3,
+                                                       0x00);
+               } else if (avmode == POLARIS_AVMODE_DIGITAL) {
+                       status = afe_write_byte(dev, ADC_PWRDN_CLAMP_CH1,
+                                                       0x70);
+                       status |= afe_write_byte(dev, ADC_PWRDN_CLAMP_CH2,
+                                                       0x70);
+                       status |= afe_write_byte(dev, ADC_PWRDN_CLAMP_CH3,
+                                                       0x70);
+
+                       status |= afe_read_byte(dev, SUP_BLK_PWRDN,
+                                                      &afe_power_status);
+                       afe_power_status |= FLD_PWRDN_PD_BANDGAP |
+                                               FLD_PWRDN_PD_BIAS |
+                                               FLD_PWRDN_PD_TUNECK;
+                       status |= afe_write_byte(dev, SUP_BLK_PWRDN,
+                                                       afe_power_status);
+               } else if (avmode == POLARIS_AVMODE_ENXTERNAL_AV) {
+                       while (afe_power_status != (FLD_PWRDN_TUNING_BIAS |
+                                               FLD_PWRDN_ENABLE_PLL)) {
+                               status = afe_write_byte(dev, SUP_BLK_PWRDN,
+                                                       FLD_PWRDN_TUNING_BIAS |
+                                                       FLD_PWRDN_ENABLE_PLL);
+                               status |= afe_read_byte(dev, SUP_BLK_PWRDN,
+                                                       &afe_power_status);
+                               if (status < 0)
+                                       break;
+                       }
+
+                       status |= afe_write_byte(dev, ADC_PWRDN_CLAMP_CH1,
+                                                       0x00);
+                       status |= afe_write_byte(dev, ADC_PWRDN_CLAMP_CH2,
+                                                       0x00);
+                       status |= afe_write_byte(dev, ADC_PWRDN_CLAMP_CH3,
+                                                       0x40);
+               } else {
+                       cx231xx_info("Invalid AV mode input\n");
+                       status = -1;
+               }
+       }                       /* switch  */
+
+       return status;
+}
+
+int cx231xx_afe_adjust_ref_count(struct cx231xx *dev, u32 video_input)
+{
+       u8 input_mode = 0;
+       u8 ntf_mode = 0;
+       int status = 0;
+
+       dev->video_input = video_input;
+
+       if (video_input == CX231XX_VMUX_TELEVISION) {
+               status = afe_read_byte(dev, ADC_INPUT_CH3, &input_mode);
+               status = afe_read_byte(dev, ADC_NTF_PRECLMP_EN_CH3,
+                                       &ntf_mode);
+       } else {
+               status = afe_read_byte(dev, ADC_INPUT_CH1, &input_mode);
+               status = afe_read_byte(dev, ADC_NTF_PRECLMP_EN_CH1,
+                                       &ntf_mode);
+       }
+
+       input_mode = (ntf_mode & 0x3) | ((input_mode & 0x6) << 1);
+
+       switch (input_mode) {
+       case SINGLE_ENDED:
+               dev->afe_ref_count = 0x23C;
+               break;
+       case LOW_IF:
+               dev->afe_ref_count = 0x24C;
+               break;
+       case EU_IF:
+               dev->afe_ref_count = 0x258;
+               break;
+       case US_IF:
+               dev->afe_ref_count = 0x260;
+               break;
+       default:
+               break;
+       }
+
+       status = cx231xx_afe_init_super_block(dev, dev->afe_ref_count);
+
+       return status;
+}
+
+/******************************************************************************
+ *     V I D E O / A U D I O    D E C O D E R    C O N T R O L   functions    *
+ ******************************************************************************/
+static int vid_blk_write_byte(struct cx231xx *dev, u16 saddr, u8 data)
+{
+       return cx231xx_write_i2c_data(dev, VID_BLK_I2C_ADDRESS,
+                                       saddr, 2, data, 1);
+}
+
+static int vid_blk_read_byte(struct cx231xx *dev, u16 saddr, u8 *data)
+{
+       int status;
+       u32 temp = 0;
+
+       status = cx231xx_read_i2c_data(dev, VID_BLK_I2C_ADDRESS,
+                                       saddr, 2, &temp, 1);
+       *data = (u8) temp;
+       return status;
+}
+
+static int vid_blk_write_word(struct cx231xx *dev, u16 saddr, u32 data)
+{
+       return cx231xx_write_i2c_data(dev, VID_BLK_I2C_ADDRESS,
+                                       saddr, 2, data, 4);
+}
+
+static int vid_blk_read_word(struct cx231xx *dev, u16 saddr, u32 *data)
+{
+       return cx231xx_read_i2c_data(dev, VID_BLK_I2C_ADDRESS,
+                                       saddr, 2, data, 4);
+}
+
+int cx231xx_set_video_input_mux(struct cx231xx *dev, u8 input)
+{
+       int status = 0;
+
+       switch (INPUT(input)->type) {
+       case CX231XX_VMUX_COMPOSITE1:
+       case CX231XX_VMUX_SVIDEO:
+               if ((dev->current_pcb_config.type == USB_BUS_POWER) &&
+                   (dev->power_mode != POLARIS_AVMODE_ENXTERNAL_AV)) {
+                       /* External AV */
+                       status = cx231xx_set_power_mode(dev,
+                                       POLARIS_AVMODE_ENXTERNAL_AV);
+                       if (status < 0) {
+                               cx231xx_errdev("%s: set_power_mode : Failed to"
+                                               " set Power - errCode [%d]!\n",
+                                               __func__, status);
+                               return status;
+                       }
+               }
+               status = cx231xx_set_decoder_video_input(dev,
+                                                        INPUT(input)->type,
+                                                        INPUT(input)->vmux);
+               break;
+       case CX231XX_VMUX_TELEVISION:
+       case CX231XX_VMUX_CABLE:
+               if ((dev->current_pcb_config.type == USB_BUS_POWER) &&
+                   (dev->power_mode != POLARIS_AVMODE_ANALOGT_TV)) {
+                       /* Tuner */
+                       status = cx231xx_set_power_mode(dev,
+                                               POLARIS_AVMODE_ANALOGT_TV);
+                       if (status < 0) {
+                               cx231xx_errdev("%s: set_power_mode:Failed"
+                                       " to set Power - errCode [%d]!\n",
+                                       __func__, status);
+                               return status;
+                       }
+               }
+               status = cx231xx_set_decoder_video_input(dev,
+                                                       CX231XX_VMUX_COMPOSITE1,
+                                                       INPUT(input)->vmux);
+               break;
+       default:
+               cx231xx_errdev("%s: set_power_mode : Unknown Input %d !\n",
+                    __func__, INPUT(input)->type);
+               break;
+       }
+
+       /* save the selection */
+       dev->video_input = input;
+
+       return status;
+}
+
+int cx231xx_set_decoder_video_input(struct cx231xx *dev,
+                               u8 pin_type, u8 input)
+{
+       int status = 0;
+       u32 value = 0;
+
+       if (pin_type != dev->video_input) {
+               status = cx231xx_afe_adjust_ref_count(dev, pin_type);
+               if (status < 0) {
+                       cx231xx_errdev("%s: adjust_ref_count :Failed to set"
+                               "AFE input mux - errCode [%d]!\n",
+                               __func__, status);
+                       return status;
+               }
+       }
+
+       /* call afe block to set video inputs */
+       status = cx231xx_afe_set_input_mux(dev, input);
+       if (status < 0) {
+               cx231xx_errdev("%s: set_input_mux :Failed to set"
+                               " AFE input mux - errCode [%d]!\n",
+                               __func__, status);
+               return status;
+       }
+
+       switch (pin_type) {
+       case CX231XX_VMUX_COMPOSITE1:
+               status = vid_blk_read_word(dev, AFE_CTRL, &value);
+               value |= (0 << 13) | (1 << 4);
+               value &= ~(1 << 5);
+
+               /* set [24:23] [22:15] to 0  */
+               value &= (~(0x1ff8000));
+               /* set FUNC_MODE[24:23] = 2 IF_MOD[22:15] = 0  */
+               value |= 0x1000000;
+               status = vid_blk_write_word(dev, AFE_CTRL, value);
+
+               status = vid_blk_read_word(dev, OUT_CTRL1, &value);
+               value |= (1 << 7);
+               status = vid_blk_write_word(dev, OUT_CTRL1, value);
+
+               /* Set vip 1.1 output mode */
+               status = cx231xx_read_modify_write_i2c_dword(dev,
+                                                       VID_BLK_I2C_ADDRESS,
+                                                       OUT_CTRL1,
+                                                       FLD_OUT_MODE,
+                                                       OUT_MODE_VIP11);
+
+               /* Tell DIF object to go to baseband mode  */
+               status = cx231xx_dif_set_standard(dev, DIF_USE_BASEBAND);
+               if (status < 0) {
+                       cx231xx_errdev("%s: cx231xx_dif set to By pass"
+                                                  " mode- errCode [%d]!\n",
+                               __func__, status);
+                       return status;
+               }
+
+               /* Read the DFE_CTRL1 register */
+               status = vid_blk_read_word(dev, DFE_CTRL1, &value);
+
+               /* enable the VBI_GATE_EN */
+               value |= FLD_VBI_GATE_EN;
+
+               /* Enable the auto-VGA enable */
+               value |= FLD_VGA_AUTO_EN;
+
+               /* Write it back */
+               status = vid_blk_write_word(dev, DFE_CTRL1, value);
+
+               /* Disable auto config of registers */
+               status = cx231xx_read_modify_write_i2c_dword(dev,
+                                       VID_BLK_I2C_ADDRESS,
+                                       MODE_CTRL, FLD_ACFG_DIS,
+                                       cx231xx_set_field(FLD_ACFG_DIS, 1));
+
+               /* Set CVBS input mode */
+               status = cx231xx_read_modify_write_i2c_dword(dev,
+                       VID_BLK_I2C_ADDRESS,
+                       MODE_CTRL, FLD_INPUT_MODE,
+                       cx231xx_set_field(FLD_INPUT_MODE, INPUT_MODE_CVBS_0));
+               break;
+       case CX231XX_VMUX_SVIDEO:
+               /* Disable the use of  DIF */
+
+               status = vid_blk_read_word(dev, AFE_CTRL, &value);
+
+               /* set [24:23] [22:15] to 0 */
+               value &= (~(0x1ff8000));
+               /* set FUNC_MODE[24:23] = 2
+               IF_MOD[22:15] = 0 DCR_BYP_CH2[4:4] = 1; */
+               value |= 0x1000010;
+               status = vid_blk_write_word(dev, AFE_CTRL, value);
+
+               /* Tell DIF object to go to baseband mode */
+               status = cx231xx_dif_set_standard(dev, DIF_USE_BASEBAND);
+               if (status < 0) {
+                       cx231xx_errdev("%s: cx231xx_dif set to By pass"
+                                                  " mode- errCode [%d]!\n",
+                               __func__, status);
+                       return status;
+               }
+
+               /* Read the DFE_CTRL1 register */
+               status = vid_blk_read_word(dev, DFE_CTRL1, &value);
+
+               /* enable the VBI_GATE_EN */
+               value |= FLD_VBI_GATE_EN;
+
+               /* Enable the auto-VGA enable */
+               value |= FLD_VGA_AUTO_EN;
+
+               /* Write it back */
+               status = vid_blk_write_word(dev, DFE_CTRL1, value);
+
+               /* Disable auto config of registers  */
+               status =  cx231xx_read_modify_write_i2c_dword(dev,
+                                       VID_BLK_I2C_ADDRESS,
+                                       MODE_CTRL, FLD_ACFG_DIS,
+                                       cx231xx_set_field(FLD_ACFG_DIS, 1));
+
+               /* Set YC input mode */
+               status = cx231xx_read_modify_write_i2c_dword(dev,
+                       VID_BLK_I2C_ADDRESS,
+                       MODE_CTRL,
+                       FLD_INPUT_MODE,
+                       cx231xx_set_field(FLD_INPUT_MODE, INPUT_MODE_YC_1));
+
+               /* Chroma to ADC2 */
+               status = vid_blk_read_word(dev, AFE_CTRL, &value);
+               value |= FLD_CHROMA_IN_SEL;     /* set the chroma in select */
+
+               /* Clear VGA_SEL_CH2 and VGA_SEL_CH3 (bits 7 and 8)
+                  This sets them to use video
+                  rather than audio.  Only one of the two will be in use. */
+               value &= ~(FLD_VGA_SEL_CH2 | FLD_VGA_SEL_CH3);
+
+               status = vid_blk_write_word(dev, AFE_CTRL, value);
+
+               status = cx231xx_afe_set_mode(dev, AFE_MODE_BASEBAND);
+               break;
+       case CX231XX_VMUX_TELEVISION:
+       case CX231XX_VMUX_CABLE:
+       default:
+               switch (dev->model) {
+               case CX231XX_BOARD_CNXT_RDE_250:
+               case CX231XX_BOARD_CNXT_RDU_250:
+                       /* Disable the use of  DIF   */
+
+                       status = vid_blk_read_word(dev, AFE_CTRL, &value);
+                       value |= (0 << 13) | (1 << 4);
+                       value &= ~(1 << 5);
+
+                       /* set [24:23] [22:15] to 0 */
+                       value &= (~(0x1FF8000));
+                       /* set FUNC_MODE[24:23] = 2 IF_MOD[22:15] = 0 */
+                       value |= 0x1000000;
+                       status = vid_blk_write_word(dev, AFE_CTRL, value);
+
+                       status = vid_blk_read_word(dev, OUT_CTRL1, &value);
+                       value |= (1 << 7);
+                       status = vid_blk_write_word(dev, OUT_CTRL1, value);
+
+                       /* Set vip 1.1 output mode */
+                       status = cx231xx_read_modify_write_i2c_dword(dev,
+                                                       VID_BLK_I2C_ADDRESS,
+                                                       OUT_CTRL1, FLD_OUT_MODE,
+                                                       OUT_MODE_VIP11);
+
+                       /* Tell DIF object to go to baseband mode */
+                       status = cx231xx_dif_set_standard(dev,
+                                                         DIF_USE_BASEBAND);
+                       if (status < 0) {
+                               cx231xx_errdev("%s: cx231xx_dif set to By pass"
+                                               " mode- errCode [%d]!\n",
+                                               __func__, status);
+                               return status;
+                       }
+
+                       /* Read the DFE_CTRL1 register */
+                       status = vid_blk_read_word(dev, DFE_CTRL1, &value);
+
+                       /* enable the VBI_GATE_EN */
+                       value |= FLD_VBI_GATE_EN;
+
+                       /* Enable the auto-VGA enable */
+                       value |= FLD_VGA_AUTO_EN;
+
+                       /* Write it back */
+                       status = vid_blk_write_word(dev, DFE_CTRL1, value);
+
+                       /* Disable auto config of registers */
+                       status = cx231xx_read_modify_write_i2c_dword(dev,
+                                       VID_BLK_I2C_ADDRESS,
+                                       MODE_CTRL, FLD_ACFG_DIS,
+                                       cx231xx_set_field(FLD_ACFG_DIS, 1));
+
+                       /* Set CVBS input mode */
+                       status = cx231xx_read_modify_write_i2c_dword(dev,
+                               VID_BLK_I2C_ADDRESS,
+                               MODE_CTRL, FLD_INPUT_MODE,
+                               cx231xx_set_field(FLD_INPUT_MODE,
+                                               INPUT_MODE_CVBS_0));
+                       break;
+               default:
+                       /* Enable the DIF for the tuner */
+
+                       /* Reinitialize the DIF */
+                       status = cx231xx_dif_set_standard(dev, dev->norm);
+                       if (status < 0) {
+                               cx231xx_errdev("%s: cx231xx_dif set to By pass"
+                                               " mode- errCode [%d]!\n",
+                                               __func__, status);
+                               return status;
+                       }
+
+                       /* Make sure bypass is cleared */
+                       status = vid_blk_read_word(dev, DIF_MISC_CTRL, &value);
+
+                       /* Clear the bypass bit */
+                       value &= ~FLD_DIF_DIF_BYPASS;
+
+                       /* Enable the use of the DIF block */
+                       status = vid_blk_write_word(dev, DIF_MISC_CTRL, value);
+
+                       /* Read the DFE_CTRL1 register */
+                       status = vid_blk_read_word(dev, DFE_CTRL1, &value);
+
+                       /* Disable the VBI_GATE_EN */
+                       value &= ~FLD_VBI_GATE_EN;
+
+                       /* Enable the auto-VGA enable, AGC, and
+                          set the skip count to 2 */
+                       value |= FLD_VGA_AUTO_EN | FLD_AGC_AUTO_EN | 0x00200000;
+
+                       /* Write it back */
+                       status = vid_blk_write_word(dev, DFE_CTRL1, value);
+
+                       /* Wait until AGC locks up */
+                       msleep(1);
+
+                       /* Disable the auto-VGA enable AGC */
+                       value &= ~(FLD_VGA_AUTO_EN);
+
+                       /* Write it back */
+                       status = vid_blk_write_word(dev, DFE_CTRL1, value);
+
+                       /* Enable Polaris B0 AGC output */
+                       status = vid_blk_read_word(dev, PIN_CTRL, &value);
+                       value |= (FLD_OEF_AGC_RF) |
+                                (FLD_OEF_AGC_IFVGA) |
+                                (FLD_OEF_AGC_IF);
+                       status = vid_blk_write_word(dev, PIN_CTRL, value);
+
+                       /* Set vip 1.1 output mode */
+                       status = cx231xx_read_modify_write_i2c_dword(dev,
+                                               VID_BLK_I2C_ADDRESS,
+                                               OUT_CTRL1, FLD_OUT_MODE,
+                                               OUT_MODE_VIP11);
+
+                       /* Disable auto config of registers */
+                       status = cx231xx_read_modify_write_i2c_dword(dev,
+                                       VID_BLK_I2C_ADDRESS,
+                                       MODE_CTRL, FLD_ACFG_DIS,
+                                       cx231xx_set_field(FLD_ACFG_DIS, 1));
+
+                       /* Set CVBS input mode */
+                       status = cx231xx_read_modify_write_i2c_dword(dev,
+                               VID_BLK_I2C_ADDRESS,
+                               MODE_CTRL, FLD_INPUT_MODE,
+                               cx231xx_set_field(FLD_INPUT_MODE,
+                                               INPUT_MODE_CVBS_0));
+
+                       /* Set some bits in AFE_CTRL so that channel 2 or 3
+                        * is ready to receive audio */
+                       /* Clear clamp for channels 2 and 3      (bit 16-17) */
+                       /* Clear droop comp                      (bit 19-20) */
+                       /* Set VGA_SEL (for audio control)       (bit 7-8) */
+                       status = vid_blk_read_word(dev, AFE_CTRL, &value);
+
+                       value |= FLD_VGA_SEL_CH3 | FLD_VGA_SEL_CH2;
+
+                       status = vid_blk_write_word(dev, AFE_CTRL, value);
+                       break;
+
+               }
+               break;
+       }
+
+       /* Set raw VBI mode */
+       status = cx231xx_read_modify_write_i2c_dword(dev,
+                               VID_BLK_I2C_ADDRESS,
+                               OUT_CTRL1, FLD_VBIHACTRAW_EN,
+                               cx231xx_set_field(FLD_VBIHACTRAW_EN, 1));
+
+       status = vid_blk_read_word(dev, OUT_CTRL1, &value);
+       if (value & 0x02) {
+               value |= (1 << 19);
+               status = vid_blk_write_word(dev, OUT_CTRL1, value);
+       }
+
+       return status;
+}
+
+/*
+ * Handle any video-mode specific overrides that are different
+ * on a per video standards basis after touching the MODE_CTRL
+ * register which resets many values for autodetect
+ */
+int cx231xx_do_mode_ctrl_overrides(struct cx231xx *dev)
+{
+       int status = 0;
+
+       cx231xx_info("do_mode_ctrl_overrides : 0x%x\n",
+                    (unsigned int)dev->norm);
+
+       /* Change the DFE_CTRL3 bp_percent to fix flagging */
+       status = vid_blk_write_word(dev, DFE_CTRL3, 0xCD3F0280);
+
+       if (dev->norm & (V4L2_STD_NTSC | V4L2_STD_PAL_M)) {
+               cx231xx_info("do_mode_ctrl_overrides NTSC\n");
+
+               /* Move the close caption lines out of active video,
+                  adjust the active video start point */
+               status = cx231xx_read_modify_write_i2c_dword(dev,
+                                                       VID_BLK_I2C_ADDRESS,
+                                                       VERT_TIM_CTRL,
+                                                       FLD_VBLANK_CNT, 0x18);
+               status = cx231xx_read_modify_write_i2c_dword(dev,
+                                                       VID_BLK_I2C_ADDRESS,
+                                                       VERT_TIM_CTRL,
+                                                       FLD_VACTIVE_CNT,
+                                                       0x1E6000);
+               status = cx231xx_read_modify_write_i2c_dword(dev,
+                                                       VID_BLK_I2C_ADDRESS,
+                                                       VERT_TIM_CTRL,
+                                                       FLD_V656BLANK_CNT,
+                                                       0x1E000000);
+
+               status = cx231xx_read_modify_write_i2c_dword(dev,
+                                                       VID_BLK_I2C_ADDRESS,
+                                                       HORIZ_TIM_CTRL,
+                                                       FLD_HBLANK_CNT,
+                                                       cx231xx_set_field
+                                                       (FLD_HBLANK_CNT, 0x79));
+       } else if (dev->norm & V4L2_STD_SECAM) {
+               cx231xx_info("do_mode_ctrl_overrides SECAM\n");
+               status =  cx231xx_read_modify_write_i2c_dword(dev,
+                                                       VID_BLK_I2C_ADDRESS,
+                                                       VERT_TIM_CTRL,
+                                                       FLD_VBLANK_CNT, 0x24);
+               /* Adjust the active video horizontal start point */
+               status = cx231xx_read_modify_write_i2c_dword(dev,
+                                                       VID_BLK_I2C_ADDRESS,
+                                                       HORIZ_TIM_CTRL,
+                                                       FLD_HBLANK_CNT,
+                                                       cx231xx_set_field
+                                                       (FLD_HBLANK_CNT, 0x85));
+       } else {
+               cx231xx_info("do_mode_ctrl_overrides PAL\n");
+               status = cx231xx_read_modify_write_i2c_dword(dev,
+                                                       VID_BLK_I2C_ADDRESS,
+                                                       VERT_TIM_CTRL,
+                                                       FLD_VBLANK_CNT, 0x24);
+               /* Adjust the active video horizontal start point */
+               status = cx231xx_read_modify_write_i2c_dword(dev,
+                                                       VID_BLK_I2C_ADDRESS,
+                                                       HORIZ_TIM_CTRL,
+                                                       FLD_HBLANK_CNT,
+                                                       cx231xx_set_field
+                                                       (FLD_HBLANK_CNT, 0x85));
+       }
+
+       return status;
+}
+
+int cx231xx_set_audio_input(struct cx231xx *dev, u8 input)
+{
+       int status = 0;
+       enum AUDIO_INPUT ainput = AUDIO_INPUT_LINE;
+
+       switch (INPUT(input)->amux) {
+       case CX231XX_AMUX_VIDEO:
+               ainput = AUDIO_INPUT_TUNER_TV;
+               break;
+       case CX231XX_AMUX_LINE_IN:
+               status = cx231xx_i2s_blk_set_audio_input(dev, input);
+               ainput = AUDIO_INPUT_LINE;
+               break;
+       default:
+               break;
+       }
+
+       status = cx231xx_set_audio_decoder_input(dev, ainput);
+
+       return status;
+}
+
+int cx231xx_set_audio_decoder_input(struct cx231xx *dev,
+                                   enum AUDIO_INPUT audio_input)
+{
+       u32 dwval;
+       int status;
+       u8 gen_ctrl;
+       u32 value = 0;
+
+       /* Put it in soft reset   */
+       status = vid_blk_read_byte(dev, GENERAL_CTL, &gen_ctrl);
+       gen_ctrl |= 1;
+       status = vid_blk_write_byte(dev, GENERAL_CTL, gen_ctrl);
+
+       switch (audio_input) {
+       case AUDIO_INPUT_LINE:
+               /* setup AUD_IO control from Merlin paralle output */
+               value = cx231xx_set_field(FLD_AUD_CHAN1_SRC,
+                                         AUD_CHAN_SRC_PARALLEL);
+               status = vid_blk_write_word(dev, AUD_IO_CTRL, value);
+
+               /* setup input to Merlin, SRC2 connect to AC97
+                  bypass upsample-by-2, slave mode, sony mode, left justify
+                  adr 091c, dat 01000000 */
+               status = vid_blk_read_word(dev, AC97_CTL, &dwval);
+
+               status = vid_blk_write_word(dev, AC97_CTL,
+                                          (dwval | FLD_AC97_UP2X_BYPASS));
+
+               /* select the parallel1 and SRC3 */
+               status = vid_blk_write_word(dev, BAND_OUT_SEL,
+                               cx231xx_set_field(FLD_SRC3_IN_SEL, 0x0) |
+                               cx231xx_set_field(FLD_SRC3_CLK_SEL, 0x0) |
+                               cx231xx_set_field(FLD_PARALLEL1_SRC_SEL, 0x0));
+
+               /* unmute all, AC97 in, independence mode
+                  adr 08d0, data 0x00063073 */
+               status = vid_blk_write_word(dev, PATH1_CTL1, 0x00063073);
+
+               /* set AVC maximum threshold, adr 08d4, dat ffff0024 */
+               status = vid_blk_read_word(dev, PATH1_VOL_CTL, &dwval);
+               status = vid_blk_write_word(dev, PATH1_VOL_CTL,
+                                          (dwval | FLD_PATH1_AVC_THRESHOLD));
+
+               /* set SC maximum threshold, adr 08ec, dat ffffb3a3 */
+               status = vid_blk_read_word(dev, PATH1_SC_CTL, &dwval);
+               status = vid_blk_write_word(dev, PATH1_SC_CTL,
+                                          (dwval | FLD_PATH1_SC_THRESHOLD));
+               break;
+
+       case AUDIO_INPUT_TUNER_TV:
+       default:
+
+               /* Setup SRC sources and clocks */
+               status = vid_blk_write_word(dev, BAND_OUT_SEL,
+                       cx231xx_set_field(FLD_SRC6_IN_SEL, 0x00)         |
+                       cx231xx_set_field(FLD_SRC6_CLK_SEL, 0x01)        |
+                       cx231xx_set_field(FLD_SRC5_IN_SEL, 0x00)         |
+                       cx231xx_set_field(FLD_SRC5_CLK_SEL, 0x02)        |
+                       cx231xx_set_field(FLD_SRC4_IN_SEL, 0x02)         |
+                       cx231xx_set_field(FLD_SRC4_CLK_SEL, 0x03)        |
+                       cx231xx_set_field(FLD_SRC3_IN_SEL, 0x00)         |
+                       cx231xx_set_field(FLD_SRC3_CLK_SEL, 0x00)        |
+                       cx231xx_set_field(FLD_BASEBAND_BYPASS_CTL, 0x00) |
+                       cx231xx_set_field(FLD_AC97_SRC_SEL, 0x03)        |
+                       cx231xx_set_field(FLD_I2S_SRC_SEL, 0x00)         |
+                       cx231xx_set_field(FLD_PARALLEL2_SRC_SEL, 0x02)   |
+                       cx231xx_set_field(FLD_PARALLEL1_SRC_SEL, 0x01));
+
+               /* Setup the AUD_IO control */
+               status = vid_blk_write_word(dev, AUD_IO_CTRL,
+                       cx231xx_set_field(FLD_I2S_PORT_DIR, 0x00)  |
+                       cx231xx_set_field(FLD_I2S_OUT_SRC, 0x00)   |
+                       cx231xx_set_field(FLD_AUD_CHAN3_SRC, 0x00) |
+                       cx231xx_set_field(FLD_AUD_CHAN2_SRC, 0x00) |
+                       cx231xx_set_field(FLD_AUD_CHAN1_SRC, 0x03));
+
+               status = vid_blk_write_word(dev, PATH1_CTL1, 0x1F063870);
+
+               /* setAudioStandard(_audio_standard); */
+
+               status = vid_blk_write_word(dev, PATH1_CTL1, 0x00063870);
+               switch (dev->model) {
+               case CX231XX_BOARD_CNXT_RDE_250:
+               case CX231XX_BOARD_CNXT_RDU_250:
+                       status = cx231xx_read_modify_write_i2c_dword(dev,
+                                       VID_BLK_I2C_ADDRESS,
+                                       CHIP_CTRL,
+                                       FLD_SIF_EN,
+                                       cx231xx_set_field(FLD_SIF_EN, 1));
+                       break;
+               default:
+                       break;
+               }
+               break;
+
+       case AUDIO_INPUT_TUNER_FM:
+               /*  use SIF for FM radio
+                  setupFM();
+                  setAudioStandard(_audio_standard);
+                */
+               break;
+
+       case AUDIO_INPUT_MUTE:
+               status = vid_blk_write_word(dev, PATH1_CTL1, 0x1F011012);
+               break;
+       }
+
+       /* Take it out of soft reset */
+       status = vid_blk_read_byte(dev, GENERAL_CTL, &gen_ctrl);
+       gen_ctrl &= ~1;
+       status = vid_blk_write_byte(dev, GENERAL_CTL, gen_ctrl);
+
+       return status;
+}
+
+/* Set resolution of the video */
+int cx231xx_resolution_set(struct cx231xx *dev)
+{
+       int width, height;
+       u32 hscale, vscale;
+       int status = 0;
+
+       width = dev->width;
+       height = dev->height;
+
+       get_scale(dev, width, height, &hscale, &vscale);
+
+       /* set horzontal scale */
+       status = vid_blk_write_word(dev, HSCALE_CTRL, hscale);
+
+       /* set vertical scale */
+       status = vid_blk_write_word(dev, VSCALE_CTRL, vscale);
+
+       return status;
+}
+
+/******************************************************************************
+ *                    C H I P Specific  C O N T R O L   functions             *
+ ******************************************************************************/
+int cx231xx_init_ctrl_pin_status(struct cx231xx *dev)
+{
+       u32 value;
+       int status = 0;
+
+       status = vid_blk_read_word(dev, PIN_CTRL, &value);
+       value |= (~dev->board.ctl_pin_status_mask);
+       status = vid_blk_write_word(dev, PIN_CTRL, value);
+
+       return status;
+}
+
+int cx231xx_set_agc_analog_digital_mux_select(struct cx231xx *dev,
+                                             u8 analog_or_digital)
+{
+       int status = 0;
+
+       /* first set the direction to output */
+       status = cx231xx_set_gpio_direction(dev,
+                                           dev->board.
+                                           agc_analog_digital_select_gpio, 1);
+
+       /* 0 - demod ; 1 - Analog mode */
+       status = cx231xx_set_gpio_value(dev,
+                                  dev->board.agc_analog_digital_select_gpio,
+                                  analog_or_digital);
+
+       return status;
+}
+
+int cx231xx_enable_i2c_for_tuner(struct cx231xx *dev, u8 I2CIndex)
+{
+       u8 value[4] = { 0, 0, 0, 0 };
+       int status = 0;
+
+       cx231xx_info("Changing the i2c port for tuner to %d\n", I2CIndex);
+
+       status = cx231xx_read_ctrl_reg(dev, VRT_GET_REGISTER,
+                                      PWR_CTL_EN, value, 4);
+       if (status < 0)
+               return status;
+
+       if (I2CIndex == I2C_1) {
+               if (value[0] & I2C_DEMOD_EN) {
+                       value[0] &= ~I2C_DEMOD_EN;
+                       status = cx231xx_write_ctrl_reg(dev, VRT_SET_REGISTER,
+                                                  PWR_CTL_EN, value, 4);
+               }
+       } else {
+               if (!(value[0] & I2C_DEMOD_EN)) {
+                       value[0] |= I2C_DEMOD_EN;
+                       status = cx231xx_write_ctrl_reg(dev, VRT_SET_REGISTER,
+                                                  PWR_CTL_EN, value, 4);
+               }
+       }
+
+       return status;
+
+}
+
+/******************************************************************************
+ *                 D I F - B L O C K    C O N T R O L   functions             *
+ ******************************************************************************/
+int cx231xx_dif_configure_C2HH_for_low_IF(struct cx231xx *dev, u32 mode,
+                                         u32 function_mode, u32 standard)
+{
+       int status = 0;
+
+       if (mode == V4L2_TUNER_RADIO) {
+               /* C2HH */
+               /* lo if big signal */
+               status = cx231xx_reg_mask_write(dev,
+                               VID_BLK_I2C_ADDRESS, 32,
+                               AFE_CTRL_C2HH_SRC_CTRL, 30, 31, 0x1);
+               /* FUNC_MODE = DIF */
+               status = cx231xx_reg_mask_write(dev,
+                               VID_BLK_I2C_ADDRESS, 32,
+                               AFE_CTRL_C2HH_SRC_CTRL, 23, 24, function_mode);
+               /* IF_MODE */
+               status = cx231xx_reg_mask_write(dev,
+                               VID_BLK_I2C_ADDRESS, 32,
+                               AFE_CTRL_C2HH_SRC_CTRL, 15, 22, 0xFF);
+               /* no inv */
+               status = cx231xx_reg_mask_write(dev,
+                               VID_BLK_I2C_ADDRESS, 32,
+                               AFE_CTRL_C2HH_SRC_CTRL, 9, 9, 0x1);
+       } else if (standard != DIF_USE_BASEBAND) {
+               if (standard & V4L2_STD_MN) {
+                       /* lo if big signal */
+                       status = cx231xx_reg_mask_write(dev,
+                                       VID_BLK_I2C_ADDRESS, 32,
+                                       AFE_CTRL_C2HH_SRC_CTRL, 30, 31, 0x1);
+                       /* FUNC_MODE = DIF */
+                       status = cx231xx_reg_mask_write(dev,
+                                       VID_BLK_I2C_ADDRESS, 32,
+                                       AFE_CTRL_C2HH_SRC_CTRL, 23, 24,
+                                       function_mode);
+                       /* IF_MODE */
+                       status = cx231xx_reg_mask_write(dev,
+                                       VID_BLK_I2C_ADDRESS, 32,
+                                       AFE_CTRL_C2HH_SRC_CTRL, 15, 22, 0xb);
+                       /* no inv */
+                       status = cx231xx_reg_mask_write(dev,
+                                       VID_BLK_I2C_ADDRESS, 32,
+                                       AFE_CTRL_C2HH_SRC_CTRL, 9, 9, 0x1);
+                       /* 0x124, AUD_CHAN1_SRC = 0x3 */
+                       status = cx231xx_reg_mask_write(dev,
+                                       VID_BLK_I2C_ADDRESS, 32,
+                                       AUD_IO_CTRL, 0, 31, 0x00000003);
+               } else if ((standard == V4L2_STD_PAL_I) |
+                       (standard & V4L2_STD_SECAM)) {
+                       /* C2HH setup */
+                       /* lo if big signal */
+                       status = cx231xx_reg_mask_write(dev,
+                                       VID_BLK_I2C_ADDRESS, 32,
+                                       AFE_CTRL_C2HH_SRC_CTRL, 30, 31, 0x1);
+                       /* FUNC_MODE = DIF */
+                       status = cx231xx_reg_mask_write(dev,
+                                       VID_BLK_I2C_ADDRESS, 32,
+                                       AFE_CTRL_C2HH_SRC_CTRL, 23, 24,
+                                       function_mode);
+                       /* IF_MODE */
+                       status = cx231xx_reg_mask_write(dev,
+                                       VID_BLK_I2C_ADDRESS, 32,
+                                       AFE_CTRL_C2HH_SRC_CTRL, 15, 22, 0xF);
+                       /* no inv */
+                       status = cx231xx_reg_mask_write(dev,
+                                       VID_BLK_I2C_ADDRESS, 32,
+                                       AFE_CTRL_C2HH_SRC_CTRL, 9, 9, 0x1);
+               } else {
+                       /* default PAL BG */
+                       /* C2HH setup */
+                       /* lo if big signal */
+                       status = cx231xx_reg_mask_write(dev,
+                                       VID_BLK_I2C_ADDRESS, 32,
+                                       AFE_CTRL_C2HH_SRC_CTRL, 30, 31, 0x1);
+                       /* FUNC_MODE = DIF */
+                       status = cx231xx_reg_mask_write(dev,
+                                       VID_BLK_I2C_ADDRESS, 32,
+                                       AFE_CTRL_C2HH_SRC_CTRL, 23, 24,
+                                       function_mode);
+                       /* IF_MODE */
+                       status = cx231xx_reg_mask_write(dev,
+                                       VID_BLK_I2C_ADDRESS, 32,
+                                       AFE_CTRL_C2HH_SRC_CTRL, 15, 22, 0xE);
+                       /* no inv */
+                       status = cx231xx_reg_mask_write(dev,
+                                       VID_BLK_I2C_ADDRESS, 32,
+                                       AFE_CTRL_C2HH_SRC_CTRL, 9, 9, 0x1);
+               }
+       }
+
+       return status;
+}
+
+int cx231xx_dif_set_standard(struct cx231xx *dev, u32 standard)
+{
+       int status = 0;
+       u32 dif_misc_ctrl_value = 0;
+       u32 func_mode = 0;
+
+       cx231xx_info("%s: setStandard to %x\n", __func__, standard);
+
+       status = vid_blk_read_word(dev, DIF_MISC_CTRL, &dif_misc_ctrl_value);
+       if (standard != DIF_USE_BASEBAND)
+               dev->norm = standard;
+
+       switch (dev->model) {
+       case CX231XX_BOARD_CNXT_RDE_250:
+       case CX231XX_BOARD_CNXT_RDU_250:
+               func_mode = 0x03;
+               break;
+       default:
+               func_mode = 0x01;
+       }
+
+       status = cx231xx_dif_configure_C2HH_for_low_IF(dev, dev->active_mode,
+                                                 func_mode, standard);
+
+       if (standard == DIF_USE_BASEBAND) {     /* base band */
+               /* There is a different SRC_PHASE_INC value
+                  for baseband vs. DIF */
+               status = vid_blk_write_word(dev, DIF_SRC_PHASE_INC, 0xDF7DF83);
+               status = vid_blk_read_word(dev, DIF_MISC_CTRL,
+                                               &dif_misc_ctrl_value);
+               dif_misc_ctrl_value |= FLD_DIF_DIF_BYPASS;
+               status = vid_blk_write_word(dev, DIF_MISC_CTRL,
+                                               dif_misc_ctrl_value);
+       } else if (standard & V4L2_STD_PAL_D) {
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_PLL_CTRL, 0, 31, 0x6503bc0c);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_PLL_CTRL1, 0, 31, 0xbd038c85);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_PLL_CTRL2, 0, 31, 0x1db4640a);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_PLL_CTRL3, 0, 31, 0x00008800);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AGC_IF_REF, 0, 31, 0x444C1380);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AGC_CTRL_IF, 0, 31, 0xDA302600);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AGC_CTRL_INT, 0, 31, 0xDA261700);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AGC_CTRL_RF, 0, 31, 0xDA262600);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AGC_IF_INT_CURRENT, 0, 31,
+                                          0x26001700);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AGC_RF_CURRENT, 0, 31,
+                                          0x00002660);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_VIDEO_AGC_CTRL, 0, 31,
+                                          0x72500800);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_VID_AUD_OVERRIDE, 0, 31,
+                                          0x27000100);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AV_SEP_CTRL, 0, 31, 0x3F3934EA);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_COMP_FLT_CTRL, 0, 31,
+                                          0x00000000);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_SRC_PHASE_INC, 0, 31,
+                                          0x1befbf06);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_SRC_GAIN_CONTROL, 0, 31,
+                                          0x000035e8);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_RPT_VARIANCE, 0, 31, 0x00000000);
+               /* Save the Spec Inversion value */
+               dif_misc_ctrl_value &= FLD_DIF_SPEC_INV;
+               dif_misc_ctrl_value |= 0x3a023F11;
+       } else if (standard & V4L2_STD_PAL_I) {
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_PLL_CTRL, 0, 31, 0x6503bc0c);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_PLL_CTRL1, 0, 31, 0xbd038c85);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_PLL_CTRL2, 0, 31, 0x1db4640a);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_PLL_CTRL3, 0, 31, 0x00008800);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AGC_IF_REF, 0, 31, 0x444C1380);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AGC_CTRL_IF, 0, 31, 0xDA302600);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AGC_CTRL_INT, 0, 31, 0xDA261700);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AGC_CTRL_RF, 0, 31, 0xDA262600);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AGC_IF_INT_CURRENT, 0, 31,
+                                          0x26001700);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AGC_RF_CURRENT, 0, 31,
+                                          0x00002660);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_VIDEO_AGC_CTRL, 0, 31,
+                                          0x72500800);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_VID_AUD_OVERRIDE, 0, 31,
+                                          0x27000100);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AV_SEP_CTRL, 0, 31, 0x5F39A934);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_COMP_FLT_CTRL, 0, 31,
+                                          0x00000000);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_SRC_PHASE_INC, 0, 31,
+                                          0x1befbf06);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_SRC_GAIN_CONTROL, 0, 31,
+                                          0x000035e8);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_RPT_VARIANCE, 0, 31, 0x00000000);
+               /* Save the Spec Inversion value */
+               dif_misc_ctrl_value &= FLD_DIF_SPEC_INV;
+               dif_misc_ctrl_value |= 0x3a033F11;
+       } else if (standard & V4L2_STD_PAL_M) {
+               /* improved Low Frequency Phase Noise */
+               status = vid_blk_write_word(dev, DIF_PLL_CTRL, 0xFF01FF0C);
+               status = vid_blk_write_word(dev, DIF_PLL_CTRL1, 0xbd038c85);
+               status = vid_blk_write_word(dev, DIF_PLL_CTRL2, 0x1db4640a);
+               status = vid_blk_write_word(dev, DIF_PLL_CTRL3, 0x00008800);
+               status = vid_blk_write_word(dev, DIF_AGC_IF_REF, 0x444C1380);
+               status = vid_blk_write_word(dev, DIF_AGC_IF_INT_CURRENT,
+                                               0x26001700);
+               status = vid_blk_write_word(dev, DIF_AGC_RF_CURRENT,
+                                               0x00002660);
+               status = vid_blk_write_word(dev, DIF_VIDEO_AGC_CTRL,
+                                               0x72500800);
+               status = vid_blk_write_word(dev, DIF_VID_AUD_OVERRIDE,
+                                               0x27000100);
+               status = vid_blk_write_word(dev, DIF_AV_SEP_CTRL, 0x012c405d);
+               status = vid_blk_write_word(dev, DIF_COMP_FLT_CTRL,
+                                               0x009f50c1);
+               status = vid_blk_write_word(dev, DIF_SRC_PHASE_INC,
+                                               0x1befbf06);
+               status = vid_blk_write_word(dev, DIF_SRC_GAIN_CONTROL,
+                                               0x000035e8);
+               status = vid_blk_write_word(dev, DIF_SOFT_RST_CTRL_REVB,
+                                               0x00000000);
+               /* Save the Spec Inversion value */
+               dif_misc_ctrl_value &= FLD_DIF_SPEC_INV;
+               dif_misc_ctrl_value |= 0x3A0A3F10;
+       } else if (standard & (V4L2_STD_PAL_N | V4L2_STD_PAL_Nc)) {
+               /* improved Low Frequency Phase Noise */
+               status = vid_blk_write_word(dev, DIF_PLL_CTRL, 0xFF01FF0C);
+               status = vid_blk_write_word(dev, DIF_PLL_CTRL1, 0xbd038c85);
+               status = vid_blk_write_word(dev, DIF_PLL_CTRL2, 0x1db4640a);
+               status = vid_blk_write_word(dev, DIF_PLL_CTRL3, 0x00008800);
+               status = vid_blk_write_word(dev, DIF_AGC_IF_REF, 0x444C1380);
+               status = vid_blk_write_word(dev, DIF_AGC_IF_INT_CURRENT,
+                                               0x26001700);
+               status = vid_blk_write_word(dev, DIF_AGC_RF_CURRENT,
+                                               0x00002660);
+               status = vid_blk_write_word(dev, DIF_VIDEO_AGC_CTRL,
+                                               0x72500800);
+               status = vid_blk_write_word(dev, DIF_VID_AUD_OVERRIDE,
+                                               0x27000100);
+               status = vid_blk_write_word(dev, DIF_AV_SEP_CTRL,
+                                               0x012c405d);
+               status = vid_blk_write_word(dev, DIF_COMP_FLT_CTRL,
+                                               0x009f50c1);
+               status = vid_blk_write_word(dev, DIF_SRC_PHASE_INC,
+                                               0x1befbf06);
+               status = vid_blk_write_word(dev, DIF_SRC_GAIN_CONTROL,
+                                               0x000035e8);
+               status = vid_blk_write_word(dev, DIF_SOFT_RST_CTRL_REVB,
+                                               0x00000000);
+               /* Save the Spec Inversion value */
+               dif_misc_ctrl_value &= FLD_DIF_SPEC_INV;
+               dif_misc_ctrl_value = 0x3A093F10;
+       } else if (standard &
+                 (V4L2_STD_SECAM_B | V4L2_STD_SECAM_D | V4L2_STD_SECAM_G |
+                  V4L2_STD_SECAM_K | V4L2_STD_SECAM_K1)) {
+
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_PLL_CTRL, 0, 31, 0x6503bc0c);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_PLL_CTRL1, 0, 31, 0xbd038c85);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_PLL_CTRL2, 0, 31, 0x1db4640a);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_PLL_CTRL3, 0, 31, 0x00008800);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AGC_IF_REF, 0, 31, 0x888C0380);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AGC_CTRL_IF, 0, 31, 0xe0262600);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AGC_CTRL_INT, 0, 31, 0xc2171700);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AGC_CTRL_RF, 0, 31, 0xc2262600);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AGC_IF_INT_CURRENT, 0, 31,
+                                          0x26001700);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AGC_RF_CURRENT, 0, 31,
+                                          0x00002660);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_VID_AUD_OVERRIDE, 0, 31,
+                                          0x27000100);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AV_SEP_CTRL, 0, 31, 0x3F3530ec);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_COMP_FLT_CTRL, 0, 31,
+                                          0x00000000);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_SRC_PHASE_INC, 0, 31,
+                                          0x1befbf06);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_SRC_GAIN_CONTROL, 0, 31,
+                                          0x000035e8);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_RPT_VARIANCE, 0, 31, 0x00000000);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_VIDEO_AGC_CTRL, 0, 31,
+                                          0xf4000000);
+
+               /* Save the Spec Inversion value */
+               dif_misc_ctrl_value &= FLD_DIF_SPEC_INV;
+               dif_misc_ctrl_value |= 0x3a023F11;
+       } else if (standard & (V4L2_STD_SECAM_L | V4L2_STD_SECAM_LC)) {
+               /* Is it SECAM_L1? */
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_PLL_CTRL, 0, 31, 0x6503bc0c);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_PLL_CTRL1, 0, 31, 0xbd038c85);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_PLL_CTRL2, 0, 31, 0x1db4640a);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_PLL_CTRL3, 0, 31, 0x00008800);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AGC_IF_REF, 0, 31, 0x888C0380);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AGC_CTRL_IF, 0, 31, 0xe0262600);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AGC_CTRL_INT, 0, 31, 0xc2171700);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AGC_CTRL_RF, 0, 31, 0xc2262600);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AGC_IF_INT_CURRENT, 0, 31,
+                                          0x26001700);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AGC_RF_CURRENT, 0, 31,
+                                          0x00002660);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_VID_AUD_OVERRIDE, 0, 31,
+                                          0x27000100);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AV_SEP_CTRL, 0, 31, 0x3F3530ec);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_COMP_FLT_CTRL, 0, 31,
+                                          0x00000000);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_SRC_PHASE_INC, 0, 31,
+                                          0x1befbf06);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_SRC_GAIN_CONTROL, 0, 31,
+                                          0x000035e8);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_RPT_VARIANCE, 0, 31, 0x00000000);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_VIDEO_AGC_CTRL, 0, 31,
+                                          0xf2560000);
+
+               /* Save the Spec Inversion value */
+               dif_misc_ctrl_value &= FLD_DIF_SPEC_INV;
+               dif_misc_ctrl_value |= 0x3a023F11;
+
+       } else if (standard & V4L2_STD_NTSC_M) {
+               /* V4L2_STD_NTSC_M (75 IRE Setup) Or
+                  V4L2_STD_NTSC_M_JP (Japan,  0 IRE Setup) */
+
+               /* For NTSC the centre frequency of video coming out of
+                  sidewinder is around 7.1MHz or 3.6MHz depending on the
+                  spectral inversion. so for a non spectrally inverted channel
+                  the pll freq word is 0x03420c49
+                */
+
+               status = vid_blk_write_word(dev, DIF_PLL_CTRL, 0x6503BC0C);
+               status = vid_blk_write_word(dev, DIF_PLL_CTRL1, 0xBD038C85);
+               status = vid_blk_write_word(dev, DIF_PLL_CTRL2, 0x1DB4640A);
+               status = vid_blk_write_word(dev, DIF_PLL_CTRL3, 0x00008800);
+               status = vid_blk_write_word(dev, DIF_AGC_IF_REF, 0x444C0380);
+               status = vid_blk_write_word(dev, DIF_AGC_IF_INT_CURRENT,
+                                               0x26001700);
+               status = vid_blk_write_word(dev, DIF_AGC_RF_CURRENT,
+                                               0x00002660);
+               status = vid_blk_write_word(dev, DIF_VIDEO_AGC_CTRL,
+                                               0x04000800);
+               status = vid_blk_write_word(dev, DIF_VID_AUD_OVERRIDE,
+                                               0x27000100);
+               status = vid_blk_write_word(dev, DIF_AV_SEP_CTRL, 0x01296e1f);
+
+               status = vid_blk_write_word(dev, DIF_COMP_FLT_CTRL,
+                                               0x009f50c1);
+               status = vid_blk_write_word(dev, DIF_SRC_PHASE_INC,
+                                               0x1befbf06);
+               status = vid_blk_write_word(dev, DIF_SRC_GAIN_CONTROL,
+                                               0x000035e8);
+
+               status = vid_blk_write_word(dev, DIF_AGC_CTRL_IF, 0xC2262600);
+               status = vid_blk_write_word(dev, DIF_AGC_CTRL_INT,
+                                               0xC2262600);
+               status = vid_blk_write_word(dev, DIF_AGC_CTRL_RF, 0xC2262600);
+
+               /* Save the Spec Inversion value */
+               dif_misc_ctrl_value &= FLD_DIF_SPEC_INV;
+               dif_misc_ctrl_value |= 0x3a003F10;
+       } else {
+               /* default PAL BG */
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_PLL_CTRL, 0, 31, 0x6503bc0c);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_PLL_CTRL1, 0, 31, 0xbd038c85);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_PLL_CTRL2, 0, 31, 0x1db4640a);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_PLL_CTRL3, 0, 31, 0x00008800);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AGC_IF_REF, 0, 31, 0x444C1380);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AGC_CTRL_IF, 0, 31, 0xDA302600);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AGC_CTRL_INT, 0, 31, 0xDA261700);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AGC_CTRL_RF, 0, 31, 0xDA262600);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AGC_IF_INT_CURRENT, 0, 31,
+                                          0x26001700);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AGC_RF_CURRENT, 0, 31,
+                                          0x00002660);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_VIDEO_AGC_CTRL, 0, 31,
+                                          0x72500800);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_VID_AUD_OVERRIDE, 0, 31,
+                                          0x27000100);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_AV_SEP_CTRL, 0, 31, 0x3F3530EC);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_COMP_FLT_CTRL, 0, 31,
+                                          0x00A653A8);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_SRC_PHASE_INC, 0, 31,
+                                          0x1befbf06);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_SRC_GAIN_CONTROL, 0, 31,
+                                          0x000035e8);
+               status = cx231xx_reg_mask_write(dev, VID_BLK_I2C_ADDRESS, 32,
+                                          DIF_RPT_VARIANCE, 0, 31, 0x00000000);
+               /* Save the Spec Inversion value */
+               dif_misc_ctrl_value &= FLD_DIF_SPEC_INV;
+               dif_misc_ctrl_value |= 0x3a013F11;
+       }
+
+       /* The AGC values should be the same for all standards,
+          AUD_SRC_SEL[19] should always be disabled    */
+       dif_misc_ctrl_value &= ~FLD_DIF_AUD_SRC_SEL;
+
+       /* It is still possible to get Set Standard calls even when we
+          are in FM mode.
+          This is done to override the value for FM. */
+       if (dev->active_mode == V4L2_TUNER_RADIO)
+               dif_misc_ctrl_value = 0x7a080000;
+
+       /* Write the calculated value for misc ontrol register      */
+       status = vid_blk_write_word(dev, DIF_MISC_CTRL, dif_misc_ctrl_value);
+
+       return status;
+}
+
+int cx231xx_tuner_pre_channel_change(struct cx231xx *dev)
+{
+       int status = 0;
+       u32 dwval;
+
+       /* Set the RF and IF k_agc values to 3 */
+       status = vid_blk_read_word(dev, DIF_AGC_IF_REF, &dwval);
+       dwval &= ~(FLD_DIF_K_AGC_RF | FLD_DIF_K_AGC_IF);
+       dwval |= 0x33000000;
+
+       status = vid_blk_write_word(dev, DIF_AGC_IF_REF, dwval);
+
+       return status;
+}
+
+int cx231xx_tuner_post_channel_change(struct cx231xx *dev)
+{
+       int status = 0;
+       u32 dwval;
+
+       /* Set the RF and IF k_agc values to 4 for PAL/NTSC and 8 for
+        * SECAM L/B/D standards */
+       status = vid_blk_read_word(dev, DIF_AGC_IF_REF, &dwval);
+       dwval &= ~(FLD_DIF_K_AGC_RF | FLD_DIF_K_AGC_IF);
+
+       if (dev->norm & (V4L2_STD_SECAM_L | V4L2_STD_SECAM_B |
+                        V4L2_STD_SECAM_D))
+               dwval |= 0x88000000;
+       else
+               dwval |= 0x44000000;
+
+       status = vid_blk_write_word(dev, DIF_AGC_IF_REF, dwval);
+
+       return status;
+}
+
+/******************************************************************************
+ *                 I 2 S - B L O C K    C O N T R O L   functions            *
+ ******************************************************************************/
+int cx231xx_i2s_blk_initialize(struct cx231xx *dev)
+{
+       int status = 0;
+       u32 value;
+
+       status = cx231xx_read_i2c_data(dev, I2S_BLK_DEVICE_ADDRESS,
+                                      CH_PWR_CTRL1, 1, &value, 1);
+       /* enables clock to delta-sigma and decimation filter */
+       value |= 0x80;
+       status = cx231xx_write_i2c_data(dev, I2S_BLK_DEVICE_ADDRESS,
+                                       CH_PWR_CTRL1, 1, value, 1);
+       /* power up all channel */
+       status = cx231xx_write_i2c_data(dev, I2S_BLK_DEVICE_ADDRESS,
+                                       CH_PWR_CTRL2, 1, 0x00, 1);
+
+       return status;
+}
+
+int cx231xx_i2s_blk_update_power_control(struct cx231xx *dev,
+                                       enum AV_MODE avmode)
+{
+       int status = 0;
+       u32 value = 0;
+
+       if (avmode != POLARIS_AVMODE_ENXTERNAL_AV) {
+               status = cx231xx_read_i2c_data(dev, I2S_BLK_DEVICE_ADDRESS,
+                                         CH_PWR_CTRL2, 1, &value, 1);
+               value |= 0xfe;
+               status = cx231xx_write_i2c_data(dev, I2S_BLK_DEVICE_ADDRESS,
+                                               CH_PWR_CTRL2, 1, value, 1);
+       } else {
+               status = cx231xx_write_i2c_data(dev, I2S_BLK_DEVICE_ADDRESS,
+                                               CH_PWR_CTRL2, 1, 0x00, 1);
+       }
+
+       return status;
+}
+
+/* set i2s_blk for audio input types */
+int cx231xx_i2s_blk_set_audio_input(struct cx231xx *dev, u8 audio_input)
+{
+       int status = 0;
+
+       switch (audio_input) {
+       case CX231XX_AMUX_LINE_IN:
+               status = cx231xx_write_i2c_data(dev, I2S_BLK_DEVICE_ADDRESS,
+                                               CH_PWR_CTRL2, 1, 0x00, 1);
+               status = cx231xx_write_i2c_data(dev, I2S_BLK_DEVICE_ADDRESS,
+                                               CH_PWR_CTRL1, 1, 0x80, 1);
+               break;
+       case CX231XX_AMUX_VIDEO:
+       default:
+               break;
+       }
+
+       dev->ctl_ainput = audio_input;
+
+       return status;
+}
+
+/******************************************************************************
+ *                  P O W E R      C O N T R O L   functions                  *
+ ******************************************************************************/
+int cx231xx_set_power_mode(struct cx231xx *dev, enum AV_MODE mode)
+{
+       u8 value[4] = { 0, 0, 0, 0 };
+       u32 tmp = 0;
+       int status = 0;
+
+       if (dev->power_mode != mode)
+               dev->power_mode = mode;
+       else {
+               cx231xx_info(" setPowerMode::mode = %d, No Change req.\n",
+                            mode);
+               return 0;
+       }
+
+       cx231xx_info(" setPowerMode::mode = %d\n", mode);
+
+       status = cx231xx_read_ctrl_reg(dev, VRT_GET_REGISTER, PWR_CTL_EN, value,
+                                      4);
+       if (status < 0)
+               return status;
+
+       tmp = *((u32 *) value);
+
+       switch (mode) {
+       case POLARIS_AVMODE_ENXTERNAL_AV:
+
+               tmp &= (~PWR_MODE_MASK);
+
+               tmp |= PWR_AV_EN;
+               value[0] = (u8) tmp;
+               value[1] = (u8) (tmp >> 8);
+               value[2] = (u8) (tmp >> 16);
+               value[3] = (u8) (tmp >> 24);
+               status = cx231xx_write_ctrl_reg(dev, VRT_SET_REGISTER,
+                                               PWR_CTL_EN, value, 4);
+               msleep(PWR_SLEEP_INTERVAL);
+
+               tmp |= PWR_ISO_EN;
+               value[0] = (u8) tmp;
+               value[1] = (u8) (tmp >> 8);
+               value[2] = (u8) (tmp >> 16);
+               value[3] = (u8) (tmp >> 24);
+               status =
+                   cx231xx_write_ctrl_reg(dev, VRT_SET_REGISTER, PWR_CTL_EN,
+                                          value, 4);
+               msleep(PWR_SLEEP_INTERVAL);
+
+               tmp |= POLARIS_AVMODE_ENXTERNAL_AV;
+               value[0] = (u8) tmp;
+               value[1] = (u8) (tmp >> 8);
+               value[2] = (u8) (tmp >> 16);
+               value[3] = (u8) (tmp >> 24);
+               status = cx231xx_write_ctrl_reg(dev, VRT_SET_REGISTER,
+                                               PWR_CTL_EN, value, 4);
+
+               /* reset state of xceive tuner */
+               dev->xc_fw_load_done = 0;
+               break;
+
+       case POLARIS_AVMODE_ANALOGT_TV:
+
+               tmp &= (~PWR_DEMOD_EN);
+               tmp |= (I2C_DEMOD_EN);
+               value[0] = (u8) tmp;
+               value[1] = (u8) (tmp >> 8);
+               value[2] = (u8) (tmp >> 16);
+               value[3] = (u8) (tmp >> 24);
+               status = cx231xx_write_ctrl_reg(dev, VRT_SET_REGISTER,
+                                               PWR_CTL_EN, value, 4);
+               msleep(PWR_SLEEP_INTERVAL);
+
+               if (!(tmp & PWR_TUNER_EN)) {
+                       tmp |= (PWR_TUNER_EN);
+                       value[0] = (u8) tmp;
+                       value[1] = (u8) (tmp >> 8);
+                       value[2] = (u8) (tmp >> 16);
+                       value[3] = (u8) (tmp >> 24);
+                       status = cx231xx_write_ctrl_reg(dev, VRT_SET_REGISTER,
+                                                       PWR_CTL_EN, value, 4);
+                       msleep(PWR_SLEEP_INTERVAL);
+               }
+
+               if (!(tmp & PWR_AV_EN)) {
+                       tmp |= PWR_AV_EN;
+                       value[0] = (u8) tmp;
+                       value[1] = (u8) (tmp >> 8);
+                       value[2] = (u8) (tmp >> 16);
+                       value[3] = (u8) (tmp >> 24);
+                       status = cx231xx_write_ctrl_reg(dev, VRT_SET_REGISTER,
+                                                       PWR_CTL_EN, value, 4);
+                       msleep(PWR_SLEEP_INTERVAL);
+               }
+               if (!(tmp & PWR_ISO_EN)) {
+                       tmp |= PWR_ISO_EN;
+                       value[0] = (u8) tmp;
+                       value[1] = (u8) (tmp >> 8);
+                       value[2] = (u8) (tmp >> 16);
+                       value[3] = (u8) (tmp >> 24);
+                       status = cx231xx_write_ctrl_reg(dev, VRT_SET_REGISTER,
+                                                       PWR_CTL_EN, value, 4);
+                       msleep(PWR_SLEEP_INTERVAL);
+               }
+
+               if (!(tmp & POLARIS_AVMODE_ANALOGT_TV)) {
+                       tmp |= POLARIS_AVMODE_ANALOGT_TV;
+                       value[0] = (u8) tmp;
+                       value[1] = (u8) (tmp >> 8);
+                       value[2] = (u8) (tmp >> 16);
+                       value[3] = (u8) (tmp >> 24);
+                       status = cx231xx_write_ctrl_reg(dev, VRT_SET_REGISTER,
+                                                       PWR_CTL_EN, value, 4);
+                       msleep(PWR_SLEEP_INTERVAL);
+               }
+
+               if ((dev->model == CX231XX_BOARD_CNXT_RDE_250) ||
+                   (dev->model == CX231XX_BOARD_CNXT_RDU_250)) {
+                       /* tuner path to channel 1 from port 3 */
+                       cx231xx_enable_i2c_for_tuner(dev, I2C_3);
+
+                       if (dev->cx231xx_reset_analog_tuner)
+                               dev->cx231xx_reset_analog_tuner(dev);
+               }
+               break;
+
+       case POLARIS_AVMODE_DIGITAL:
+               if (!(tmp & PWR_TUNER_EN)) {
+                       tmp |= (PWR_TUNER_EN);
+                       value[0] = (u8) tmp;
+                       value[1] = (u8) (tmp >> 8);
+                       value[2] = (u8) (tmp >> 16);
+                       value[3] = (u8) (tmp >> 24);
+                       status = cx231xx_write_ctrl_reg(dev, VRT_SET_REGISTER,
+                                                       PWR_CTL_EN, value, 4);
+                       msleep(PWR_SLEEP_INTERVAL);
+               }
+               if (!(tmp & PWR_AV_EN)) {
+                       tmp |= PWR_AV_EN;
+                       value[0] = (u8) tmp;
+                       value[1] = (u8) (tmp >> 8);
+                       value[2] = (u8) (tmp >> 16);
+                       value[3] = (u8) (tmp >> 24);
+                       status = cx231xx_write_ctrl_reg(dev, VRT_SET_REGISTER,
+                                                       PWR_CTL_EN, value, 4);
+                       msleep(PWR_SLEEP_INTERVAL);
+               }
+               if (!(tmp & PWR_ISO_EN)) {
+                       tmp |= PWR_ISO_EN;
+                       value[0] = (u8) tmp;
+                       value[1] = (u8) (tmp >> 8);
+                       value[2] = (u8) (tmp >> 16);
+                       value[3] = (u8) (tmp >> 24);
+                       status = cx231xx_write_ctrl_reg(dev, VRT_SET_REGISTER,
+                                                       PWR_CTL_EN, value, 4);
+                       msleep(PWR_SLEEP_INTERVAL);
+               }
+
+               tmp |= POLARIS_AVMODE_DIGITAL | I2C_DEMOD_EN;
+               value[0] = (u8) tmp;
+               value[1] = (u8) (tmp >> 8);
+               value[2] = (u8) (tmp >> 16);
+               value[3] = (u8) (tmp >> 24);
+               status = cx231xx_write_ctrl_reg(dev, VRT_SET_REGISTER,
+                                               PWR_CTL_EN, value, 4);
+               msleep(PWR_SLEEP_INTERVAL);
+
+               if (!(tmp & PWR_DEMOD_EN)) {
+                       tmp |= PWR_DEMOD_EN;
+                       value[0] = (u8) tmp;
+                       value[1] = (u8) (tmp >> 8);
+                       value[2] = (u8) (tmp >> 16);
+                       value[3] = (u8) (tmp >> 24);
+                       status = cx231xx_write_ctrl_reg(dev, VRT_SET_REGISTER,
+                                                       PWR_CTL_EN, value, 4);
+                       msleep(PWR_SLEEP_INTERVAL);
+               }
+
+               if ((dev->model == CX231XX_BOARD_CNXT_RDE_250) ||
+                   (dev->model == CX231XX_BOARD_CNXT_RDU_250)) {
+                       /* tuner path to channel 1 from port 3 */
+                       cx231xx_enable_i2c_for_tuner(dev, I2C_3);
+
+                       if (dev->cx231xx_reset_analog_tuner)
+                               dev->cx231xx_reset_analog_tuner(dev);
+               }
+               break;
+
+       default:
+               break;
+       }
+
+       msleep(PWR_SLEEP_INTERVAL);
+
+       /* For power saving, only enable Pwr_resetout_n
+          when digital TV is selected. */
+       if (mode == POLARIS_AVMODE_DIGITAL) {
+               tmp |= PWR_RESETOUT_EN;
+               value[0] = (u8) tmp;
+               value[1] = (u8) (tmp >> 8);
+               value[2] = (u8) (tmp >> 16);
+               value[3] = (u8) (tmp >> 24);
+               status = cx231xx_write_ctrl_reg(dev, VRT_SET_REGISTER,
+                                               PWR_CTL_EN, value, 4);
+               msleep(PWR_SLEEP_INTERVAL);
+       }
+
+       /* update power control for afe */
+       status = cx231xx_afe_update_power_control(dev, mode);
+
+       /* update power control for i2s_blk */
+       status = cx231xx_i2s_blk_update_power_control(dev, mode);
+
+       status = cx231xx_read_ctrl_reg(dev, VRT_GET_REGISTER, PWR_CTL_EN, value,
+                                      4);
+       cx231xx_info(" The data of PWR_CTL_EN register 0x74"
+                                "=0x%0x,0x%0x,0x%0x,0x%0x\n",
+                    value[0], value[1], value[2], value[3]);
+
+       return status;
+}
+
+int cx231xx_power_suspend(struct cx231xx *dev)
+{
+       u8 value[4] = { 0, 0, 0, 0 };
+       u32 tmp = 0;
+       int status = 0;
+
+       status = cx231xx_read_ctrl_reg(dev, VRT_GET_REGISTER, PWR_CTL_EN,
+                                      value, 4);
+       if (status > 0)
+               return status;
+
+       tmp = *((u32 *) value);
+       tmp &= (~PWR_MODE_MASK);
+
+       value[0] = (u8) tmp;
+       value[1] = (u8) (tmp >> 8);
+       value[2] = (u8) (tmp >> 16);
+       value[3] = (u8) (tmp >> 24);
+       status = cx231xx_write_ctrl_reg(dev, VRT_SET_REGISTER, PWR_CTL_EN,
+                                       value, 4);
+
+       return status;
+}
+
+/******************************************************************************
+ *                  S T R E A M    C O N T R O L   functions                  *
+ ******************************************************************************/
+int cx231xx_start_stream(struct cx231xx *dev, u32 ep_mask)
+{
+       u8 value[4] = { 0x0, 0x0, 0x0, 0x0 };
+       u32 tmp = 0;
+       int status = 0;
+
+       cx231xx_info("cx231xx_start_stream():: ep_mask = %x\n", ep_mask);
+       status = cx231xx_read_ctrl_reg(dev, VRT_GET_REGISTER, EP_MODE_SET,
+                                      value, 4);
+       if (status < 0)
+               return status;
+
+       tmp = *((u32 *) value);
+       tmp |= ep_mask;
+       value[0] = (u8) tmp;
+       value[1] = (u8) (tmp >> 8);
+       value[2] = (u8) (tmp >> 16);
+       value[3] = (u8) (tmp >> 24);
+
+       status = cx231xx_write_ctrl_reg(dev, VRT_SET_REGISTER, EP_MODE_SET,
+                                       value, 4);
+
+       return status;
+}
+
+int cx231xx_stop_stream(struct cx231xx *dev, u32 ep_mask)
+{
+       u8 value[4] = { 0x0, 0x0, 0x0, 0x0 };
+       u32 tmp = 0;
+       int status = 0;
+
+       cx231xx_info("cx231xx_stop_stream():: ep_mask = %x\n", ep_mask);
+       status =
+           cx231xx_read_ctrl_reg(dev, VRT_GET_REGISTER, EP_MODE_SET, value, 4);
+       if (status < 0)
+               return status;
+
+       tmp = *((u32 *) value);
+       tmp &= (~ep_mask);
+       value[0] = (u8) tmp;
+       value[1] = (u8) (tmp >> 8);
+       value[2] = (u8) (tmp >> 16);
+       value[3] = (u8) (tmp >> 24);
+
+       status = cx231xx_write_ctrl_reg(dev, VRT_SET_REGISTER, EP_MODE_SET,
+                                       value, 4);
+
+       return status;
+}
+
+int cx231xx_initialize_stream_xfer(struct cx231xx *dev, u32 media_type)
+{
+       int status = 0;
+
+       if (dev->udev->speed == USB_SPEED_HIGH) {
+               switch (media_type) {
+               case 81: /* audio */
+                       cx231xx_info("%s: Audio enter HANC\n", __func__);
+                       status =
+                           cx231xx_mode_register(dev, TS_MODE_REG, 0x9300);
+                       break;
+
+               case 2: /* vbi */
+                       cx231xx_info("%s: set vanc registers\n", __func__);
+                       status = cx231xx_mode_register(dev, TS_MODE_REG, 0x300);
+                       break;
+
+               case 3: /* sliced cc */
+                       cx231xx_info("%s: set hanc registers\n", __func__);
+                       status =
+                           cx231xx_mode_register(dev, TS_MODE_REG, 0x1300);
+                       break;
+
+               case 0: /* video */
+                       cx231xx_info("%s: set video registers\n", __func__);
+                       status = cx231xx_mode_register(dev, TS_MODE_REG, 0x100);
+                       break;
+
+               case 4: /* ts1 */
+                       cx231xx_info("%s: set ts1 registers\n", __func__);
+                       status = cx231xx_mode_register(dev, TS_MODE_REG, 0x101);
+                       status = cx231xx_mode_register(dev, TS1_CFG_REG, 0x400);
+                       break;
+               case 6: /* ts1 parallel mode */
+                       cx231xx_info("%s: set ts1 parrallel mode registers\n",
+                                    __func__);
+                       status = cx231xx_mode_register(dev, TS_MODE_REG, 0x100);
+                       status = cx231xx_mode_register(dev, TS1_CFG_REG, 0x400);
+                       break;
+               }
+       } else {
+               status = cx231xx_mode_register(dev, TS_MODE_REG, 0x101);
+       }
+
+       return status;
+}
+
+int cx231xx_capture_start(struct cx231xx *dev, int start, u8 media_type)
+{
+       int rc;
+       u32 ep_mask = -1;
+       struct pcb_config *pcb_config;
+
+       /* get EP for media type */
+       pcb_config = (struct pcb_config *)&dev->current_pcb_config;
+
+       if (pcb_config->config_num == 1) {
+               switch (media_type) {
+               case 0: /* Video */
+                       ep_mask = ENABLE_EP4;   /* ep4  [00:1000] */
+                       break;
+               case 1: /* Audio */
+                       ep_mask = ENABLE_EP3;   /* ep3  [00:0100] */
+                       break;
+               case 2: /* Vbi */
+                       ep_mask = ENABLE_EP5;   /* ep5 [01:0000] */
+                       break;
+               case 3: /* Sliced_cc */
+                       ep_mask = ENABLE_EP6;   /* ep6 [10:0000] */
+                       break;
+               case 4: /* ts1 */
+               case 6: /* ts1 parallel mode */
+                       ep_mask = ENABLE_EP1;   /* ep1 [00:0001] */
+                       break;
+               case 5: /* ts2 */
+                       ep_mask = ENABLE_EP2;   /* ep2 [00:0010] */
+                       break;
+               }
+
+       } else if (pcb_config->config_num > 1) {
+               switch (media_type) {
+               case 0: /* Video */
+                       ep_mask = ENABLE_EP4;   /* ep4  [00:1000] */
+                       break;
+               case 1: /* Audio */
+                       ep_mask = ENABLE_EP3;   /* ep3  [00:0100] */
+                       break;
+               case 2: /* Vbi */
+                       ep_mask = ENABLE_EP5;   /* ep5 [01:0000] */
+                       break;
+               case 3: /* Sliced_cc */
+                       ep_mask = ENABLE_EP6;   /* ep6 [10:0000] */
+                       break;
+               case 4: /* ts1 */
+               case 6: /* ts1 parallel mode */
+                       ep_mask = ENABLE_EP1;   /* ep1 [00:0001] */
+                       break;
+               case 5: /* ts2 */
+                       ep_mask = ENABLE_EP2;   /* ep2 [00:0010] */
+                       break;
+               }
+
+       }
+
+       if (start) {
+               rc = cx231xx_initialize_stream_xfer(dev, media_type);
+
+               if (rc < 0)
+                       return rc;
+
+               /* enable video capture */
+               if (ep_mask > 0)
+                       rc = cx231xx_start_stream(dev, ep_mask);
+       } else {
+               /* disable video capture */
+               if (ep_mask > 0)
+                       rc = cx231xx_stop_stream(dev, ep_mask);
+       }
+
+       if (dev->mode == CX231XX_ANALOG_MODE)
+               ;/* do any in Analog mode */
+       else
+               ;/* do any in digital mode */
+
+       return rc;
+}
+EXPORT_SYMBOL_GPL(cx231xx_capture_start);
+
+/*****************************************************************************
+*                   G P I O   B I T control functions                        *
+******************************************************************************/
+int cx231xx_set_gpio_bit(struct cx231xx *dev, u32 gpio_bit, u8 * gpio_val)
+{
+       int status = 0;
+
+       status = cx231xx_send_gpio_cmd(dev, gpio_bit, gpio_val, 4, 0, 0);
+
+       return status;
+}
+
+int cx231xx_get_gpio_bit(struct cx231xx *dev, u32 gpio_bit, u8 * gpio_val)
+{
+       int status = 0;
+
+       status = cx231xx_send_gpio_cmd(dev, gpio_bit, gpio_val, 4, 0, 1);
+
+       return status;
+}
+
+/*
+* cx231xx_set_gpio_direction
+*      Sets the direction of the GPIO pin to input or output
+*
+* Parameters :
+*      pin_number : The GPIO Pin number to program the direction for
+*                   from 0 to 31
+*      pin_value : The Direction of the GPIO Pin under reference.
+*                      0 = Input direction
+*                      1 = Output direction
+*/
+int cx231xx_set_gpio_direction(struct cx231xx *dev,
+                              int pin_number, int pin_value)
+{
+       int status = 0;
+       u32 value = 0;
+
+       /* Check for valid pin_number - if 32 , bail out */
+       if (pin_number >= 32)
+               return -EINVAL;
+
+       /* input */
+       if (pin_value == 0)
+               value = dev->gpio_dir & (~(1 << pin_number));   /* clear */
+       else
+               value = dev->gpio_dir | (1 << pin_number);
+
+       status = cx231xx_set_gpio_bit(dev, value, (u8 *) &dev->gpio_val);
+
+       /* cache the value for future */
+       dev->gpio_dir = value;
+
+       return status;
+}
+
+/*
+* cx231xx_set_gpio_value
+*      Sets the value of the GPIO pin to Logic high or low. The Pin under
+*      reference should ALREADY BE SET IN OUTPUT MODE !!!!!!!!!
+*
+* Parameters :
+*      pin_number : The GPIO Pin number to program the direction for
+*      pin_value : The value of the GPIO Pin under reference.
+*                      0 = set it to 0
+*                      1 = set it to 1
+*/
+int cx231xx_set_gpio_value(struct cx231xx *dev, int pin_number, int pin_value)
+{
+       int status = 0;
+       u32 value = 0;
+
+       /* Check for valid pin_number - if 0xFF , bail out */
+       if (pin_number >= 32)
+               return -EINVAL;
+
+       /* first do a sanity check - if the Pin is not output, make it output */
+       if ((dev->gpio_dir & (1 << pin_number)) == 0x00) {
+               /* It was in input mode */
+               value = dev->gpio_dir | (1 << pin_number);
+               dev->gpio_dir = value;
+               status = cx231xx_set_gpio_bit(dev, dev->gpio_dir,
+                                             (u8 *) &dev->gpio_val);
+               value = 0;
+       }
+
+       if (pin_value == 0)
+               value = dev->gpio_val & (~(1 << pin_number));
+       else
+               value = dev->gpio_val | (1 << pin_number);
+
+       /* store the value */
+       dev->gpio_val = value;
+
+       /* toggle bit0 of GP_IO */
+       status = cx231xx_set_gpio_bit(dev, dev->gpio_dir, (u8 *)&dev->gpio_val);
+
+       return status;
+}
+
+/*****************************************************************************
+*                      G P I O I2C related functions                         *
+******************************************************************************/
+int cx231xx_gpio_i2c_start(struct cx231xx *dev)
+{
+       int status = 0;
+
+       /* set SCL to output 1 ; set SDA to output 1 */
+       dev->gpio_dir |= 1 << dev->board.tuner_scl_gpio;
+       dev->gpio_dir |= 1 << dev->board.tuner_sda_gpio;
+       dev->gpio_val |= 1 << dev->board.tuner_scl_gpio;
+       dev->gpio_val |= 1 << dev->board.tuner_sda_gpio;
+
+       status = cx231xx_set_gpio_bit(dev, dev->gpio_dir, (u8 *)&dev->gpio_val);
+       if (status < 0)
+               return -EINVAL;
+
+       /* set SCL to output 1; set SDA to output 0 */
+       dev->gpio_val |= 1 << dev->board.tuner_scl_gpio;
+       dev->gpio_val &= ~(1 << dev->board.tuner_sda_gpio);
+
+       status = cx231xx_set_gpio_bit(dev, dev->gpio_dir, (u8 *)&dev->gpio_val);
+       if (status < 0)
+               return -EINVAL;
+
+       /* set SCL to output 0; set SDA to output 0      */
+       dev->gpio_val &= ~(1 << dev->board.tuner_scl_gpio);
+       dev->gpio_val &= ~(1 << dev->board.tuner_sda_gpio);
+
+       status = cx231xx_set_gpio_bit(dev, dev->gpio_dir, (u8 *)&dev->gpio_val);
+       if (status < 0)
+               return -EINVAL;
+
+       return status;
+}
+
+int cx231xx_gpio_i2c_end(struct cx231xx *dev)
+{
+       int status = 0;
+
+       /* set SCL to output 0; set SDA to output 0      */
+       dev->gpio_dir |= 1 << dev->board.tuner_scl_gpio;
+       dev->gpio_dir |= 1 << dev->board.tuner_sda_gpio;
+
+       dev->gpio_val &= ~(1 << dev->board.tuner_scl_gpio);
+       dev->gpio_val &= ~(1 << dev->board.tuner_sda_gpio);
+
+       status = cx231xx_set_gpio_bit(dev, dev->gpio_dir, (u8 *)&dev->gpio_val);
+       if (status < 0)
+               return -EINVAL;
+
+       /* set SCL to output 1; set SDA to output 0      */
+       dev->gpio_val |= 1 << dev->board.tuner_scl_gpio;
+       dev->gpio_val &= ~(1 << dev->board.tuner_sda_gpio);
+
+       status = cx231xx_set_gpio_bit(dev, dev->gpio_dir, (u8 *)&dev->gpio_val);
+       if (status < 0)
+               return -EINVAL;
+
+       /* set SCL to input ,release SCL cable control
+          set SDA to input ,release SDA cable control */
+       dev->gpio_dir &= ~(1 << dev->board.tuner_scl_gpio);
+       dev->gpio_dir &= ~(1 << dev->board.tuner_sda_gpio);
+
+       status =
+           cx231xx_set_gpio_bit(dev, dev->gpio_dir, (u8 *)&dev->gpio_val);
+       if (status < 0)
+               return -EINVAL;
+
+       return status;
+}
+
+int cx231xx_gpio_i2c_write_byte(struct cx231xx *dev, u8 data)
+{
+       int status = 0;
+       u8 i;
+
+       /* set SCL to output ; set SDA to output */
+       dev->gpio_dir |= 1 << dev->board.tuner_scl_gpio;
+       dev->gpio_dir |= 1 << dev->board.tuner_sda_gpio;
+
+       for (i = 0; i < 8; i++) {
+               if (((data << i) & 0x80) == 0) {
+                       /* set SCL to output 0; set SDA to output 0     */
+                       dev->gpio_val &= ~(1 << dev->board.tuner_scl_gpio);
+                       dev->gpio_val &= ~(1 << dev->board.tuner_sda_gpio);
+                       status = cx231xx_set_gpio_bit(dev, dev->gpio_dir,
+                                                     (u8 *)&dev->gpio_val);
+
+                       /* set SCL to output 1; set SDA to output 0     */
+                       dev->gpio_val |= 1 << dev->board.tuner_scl_gpio;
+                       status = cx231xx_set_gpio_bit(dev, dev->gpio_dir,
+                                                     (u8 *)&dev->gpio_val);
+
+                       /* set SCL to output 0; set SDA to output 0     */
+                       dev->gpio_val &= ~(1 << dev->board.tuner_scl_gpio);
+                       status = cx231xx_set_gpio_bit(dev, dev->gpio_dir,
+                                                     (u8 *)&dev->gpio_val);
+               } else {
+                       /* set SCL to output 0; set SDA to output 1     */
+                       dev->gpio_val &= ~(1 << dev->board.tuner_scl_gpio);
+                       dev->gpio_val |= 1 << dev->board.tuner_sda_gpio;
+                       status = cx231xx_set_gpio_bit(dev, dev->gpio_dir,
+                                                     (u8 *)&dev->gpio_val);
+
+                       /* set SCL to output 1; set SDA to output 1     */
+                       dev->gpio_val |= 1 << dev->board.tuner_scl_gpio;
+                       status = cx231xx_set_gpio_bit(dev, dev->gpio_dir,
+                                                     (u8 *)&dev->gpio_val);
+
+                       /* set SCL to output 0; set SDA to output 1     */
+                       dev->gpio_val &= ~(1 << dev->board.tuner_scl_gpio);
+                       status = cx231xx_set_gpio_bit(dev, dev->gpio_dir,
+                                                     (u8 *)&dev->gpio_val);
+               }
+       }
+       return status;
+}
+
+int cx231xx_gpio_i2c_read_byte(struct cx231xx *dev, u8 * buf)
+{
+       u8 value = 0;
+       int status = 0;
+       u32 gpio_logic_value = 0;
+       u8 i;
+
+       /* read byte */
+       for (i = 0; i < 8; i++) {       /* send write I2c addr */
+
+               /* set SCL to output 0; set SDA to input */
+               dev->gpio_val &= ~(1 << dev->board.tuner_scl_gpio);
+               status = cx231xx_set_gpio_bit(dev, dev->gpio_dir,
+                                             (u8 *)&dev->gpio_val);
+
+               /* set SCL to output 1; set SDA to input */
+               dev->gpio_val |= 1 << dev->board.tuner_scl_gpio;
+               status = cx231xx_set_gpio_bit(dev, dev->gpio_dir,
+                                             (u8 *)&dev->gpio_val);
+
+               /* get SDA data bit */
+               gpio_logic_value = dev->gpio_val;
+               status = cx231xx_get_gpio_bit(dev, dev->gpio_dir,
+                                             (u8 *)&dev->gpio_val);
+               if ((dev->gpio_val & (1 << dev->board.tuner_sda_gpio)) != 0)
+                       value |= (1 << (8 - i - 1));
+
+               dev->gpio_val = gpio_logic_value;
+       }
+
+       /* set SCL to output 0,finish the read latest SCL signal.
+          !!!set SDA to input, never to modify SDA direction at
+          the same times */
+       dev->gpio_val &= ~(1 << dev->board.tuner_scl_gpio);
+       status = cx231xx_set_gpio_bit(dev, dev->gpio_dir, (u8 *)&dev->gpio_val);
+
+       /* store the value */
+       *buf = value & 0xff;
+
+       return status;
+}
+
+int cx231xx_gpio_i2c_read_ack(struct cx231xx *dev)
+{
+       int status = 0;
+       u32 gpio_logic_value = 0;
+       int nCnt = 10;
+       int nInit = nCnt;
+
+       /* clock stretch; set SCL to input; set SDA to input;
+          get SCL value till SCL = 1 */
+       dev->gpio_dir &= ~(1 << dev->board.tuner_sda_gpio);
+       dev->gpio_dir &= ~(1 << dev->board.tuner_scl_gpio);
+
+       gpio_logic_value = dev->gpio_val;
+       status = cx231xx_set_gpio_bit(dev, dev->gpio_dir, (u8 *)&dev->gpio_val);
+
+       do {
+               msleep(2);
+               status = cx231xx_get_gpio_bit(dev, dev->gpio_dir,
+                                             (u8 *)&dev->gpio_val);
+               nCnt--;
+       } while (((dev->gpio_val &
+                         (1 << dev->board.tuner_scl_gpio)) == 0) &&
+                        (nCnt > 0));
+
+       if (nCnt == 0)
+               cx231xx_info("No ACK after %d msec -GPIO I2C failed!",
+                            nInit * 10);
+
+       /* readAck
+          throuth clock stretch ,slave has given a SCL signal,
+          so the SDA data can be directly read.  */
+       status = cx231xx_get_gpio_bit(dev, dev->gpio_dir, (u8 *)&dev->gpio_val);
+
+       if ((dev->gpio_val & 1 << dev->board.tuner_sda_gpio) == 0) {
+               dev->gpio_val = gpio_logic_value;
+               dev->gpio_val &= ~(1 << dev->board.tuner_sda_gpio);
+               status = 0;
+       } else {
+               dev->gpio_val = gpio_logic_value;
+               dev->gpio_val |= (1 << dev->board.tuner_sda_gpio);
+       }
+
+       /* read SDA end, set the SCL to output 0, after this operation,
+          SDA direction can be changed. */
+       dev->gpio_val = gpio_logic_value;
+       dev->gpio_dir |= (1 << dev->board.tuner_scl_gpio);
+       dev->gpio_val &= ~(1 << dev->board.tuner_scl_gpio);
+       status = cx231xx_set_gpio_bit(dev, dev->gpio_dir, (u8 *)&dev->gpio_val);
+
+       return status;
+}
+
+int cx231xx_gpio_i2c_write_ack(struct cx231xx *dev)
+{
+       int status = 0;
+
+       /* set SDA to ouput */
+       dev->gpio_dir |= 1 << dev->board.tuner_sda_gpio;
+       status = cx231xx_set_gpio_bit(dev, dev->gpio_dir, (u8 *)&dev->gpio_val);
+
+       /* set SCL = 0 (output); set SDA = 0 (output) */
+       dev->gpio_val &= ~(1 << dev->board.tuner_sda_gpio);
+       dev->gpio_val &= ~(1 << dev->board.tuner_scl_gpio);
+       status = cx231xx_set_gpio_bit(dev, dev->gpio_dir, (u8 *)&dev->gpio_val);
+
+       /* set SCL = 1 (output); set SDA = 0 (output) */
+       dev->gpio_val |= 1 << dev->board.tuner_scl_gpio;
+       status = cx231xx_set_gpio_bit(dev, dev->gpio_dir, (u8 *)&dev->gpio_val);
+
+       /* set SCL = 0 (output); set SDA = 0 (output) */
+       dev->gpio_val &= ~(1 << dev->board.tuner_scl_gpio);
+       status = cx231xx_set_gpio_bit(dev, dev->gpio_dir, (u8 *)&dev->gpio_val);
+
+       /* set SDA to input,and then the slave will read data from SDA. */
+       dev->gpio_dir &= ~(1 << dev->board.tuner_sda_gpio);
+       status = cx231xx_set_gpio_bit(dev, dev->gpio_dir, (u8 *)&dev->gpio_val);
+
+       return status;
+}
+
+int cx231xx_gpio_i2c_write_nak(struct cx231xx *dev)
+{
+       int status = 0;
+
+       /* set scl to output ; set sda to input */
+       dev->gpio_dir |= 1 << dev->board.tuner_scl_gpio;
+       dev->gpio_dir &= ~(1 << dev->board.tuner_sda_gpio);
+       status = cx231xx_set_gpio_bit(dev, dev->gpio_dir, (u8 *)&dev->gpio_val);
+
+       /* set scl to output 0; set sda to input */
+       dev->gpio_val &= ~(1 << dev->board.tuner_scl_gpio);
+       status = cx231xx_set_gpio_bit(dev, dev->gpio_dir, (u8 *)&dev->gpio_val);
+
+       /* set scl to output 1; set sda to input */
+       dev->gpio_val |= 1 << dev->board.tuner_scl_gpio;
+       status = cx231xx_set_gpio_bit(dev, dev->gpio_dir, (u8 *)&dev->gpio_val);
+
+       return status;
+}
+
+/*****************************************************************************
+*                      G P I O I2C related functions                         *
+******************************************************************************/
+/* cx231xx_gpio_i2c_read
+ * Function to read data from gpio based I2C interface
+ */
+int cx231xx_gpio_i2c_read(struct cx231xx *dev, u8 dev_addr, u8 * buf, u8 len)
+{
+       int status = 0;
+       int i = 0;
+
+       /* get the lock */
+       mutex_lock(&dev->gpio_i2c_lock);
+
+       /* start */
+       status = cx231xx_gpio_i2c_start(dev);
+
+       /* write dev_addr */
+       status = cx231xx_gpio_i2c_write_byte(dev, (dev_addr << 1) + 1);
+
+       /* readAck */
+       status = cx231xx_gpio_i2c_read_ack(dev);
+
+       /* read data */
+       for (i = 0; i < len; i++) {
+               /* read data */
+               buf[i] = 0;
+               status = cx231xx_gpio_i2c_read_byte(dev, &buf[i]);
+
+               if ((i + 1) != len) {
+                       /* only do write ack if we more length */
+                       status = cx231xx_gpio_i2c_write_ack(dev);
+               }
+       }
+
+       /* write NAK - inform reads are complete */
+       status = cx231xx_gpio_i2c_write_nak(dev);
+
+       /* write end */
+       status = cx231xx_gpio_i2c_end(dev);
+
+       /* release the lock */
+       mutex_unlock(&dev->gpio_i2c_lock);
+
+       return status;
+}
+
+/* cx231xx_gpio_i2c_write
+ * Function to write data to gpio based I2C interface
+ */
+int cx231xx_gpio_i2c_write(struct cx231xx *dev, u8 dev_addr, u8 * buf, u8 len)
+{
+       int status = 0;
+       int i = 0;
+
+       /* get the lock */
+       mutex_lock(&dev->gpio_i2c_lock);
+
+       /* start */
+       status = cx231xx_gpio_i2c_start(dev);
+
+       /* write dev_addr */
+       status = cx231xx_gpio_i2c_write_byte(dev, dev_addr << 1);
+
+       /* read Ack */
+       status = cx231xx_gpio_i2c_read_ack(dev);
+
+       for (i = 0; i < len; i++) {
+               /* Write data */
+               status = cx231xx_gpio_i2c_write_byte(dev, buf[i]);
+
+               /* read Ack */
+               status = cx231xx_gpio_i2c_read_ack(dev);
+       }
+
+       /* write End */
+       status = cx231xx_gpio_i2c_end(dev);
+
+       /* release the lock */
+       mutex_unlock(&dev->gpio_i2c_lock);
+
+       return 0;
+}
diff --git a/drivers/media/video/cx231xx/cx231xx-cards.c b/drivers/media/video/cx231xx/cx231xx-cards.c
new file mode 100644 (file)
index 0000000..c8a32b1
--- /dev/null
@@ -0,0 +1,914 @@
+/*
+   cx231xx-cards.c - driver for Conexant Cx23100/101/102
+                               USB video capture devices
+
+   Copyright (C) 2008 <srinivasa.deevi at conexant dot com>
+                               Based on em28xx driver
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/delay.h>
+#include <linux/i2c.h>
+#include <linux/usb.h>
+#include <media/tuner.h>
+#include <media/tveeprom.h>
+#include <media/v4l2-common.h>
+#include <media/v4l2-chip-ident.h>
+
+#include <media/cx25840.h>
+#include "xc5000.h"
+
+#include "cx231xx.h"
+
+static int tuner = -1;
+module_param(tuner, int, 0444);
+MODULE_PARM_DESC(tuner, "tuner type");
+
+static unsigned int disable_ir;
+module_param(disable_ir, int, 0444);
+MODULE_PARM_DESC(disable_ir, "disable infrared remote support");
+
+/* Bitmask marking allocated devices from 0 to CX231XX_MAXBOARDS */
+static unsigned long cx231xx_devused;
+
+/*
+ *  Reset sequences for analog/digital modes
+ */
+
+static struct cx231xx_reg_seq RDE250_XCV_TUNER[] = {
+       {0x03, 0x01, 10},
+       {0x03, 0x00, 30},
+       {0x03, 0x01, 10},
+       {-1, -1, -1},
+};
+
+/*
+ *  Board definitions
+ */
+struct cx231xx_board cx231xx_boards[] = {
+       [CX231XX_BOARD_UNKNOWN] = {
+               .name = "Unknown CX231xx video grabber",
+               .tuner_type = TUNER_ABSENT,
+               .input = {{
+                               .type = CX231XX_VMUX_TELEVISION,
+                               .vmux = CX231XX_VIN_3_1,
+                               .amux = CX231XX_AMUX_VIDEO,
+                               .gpio = 0,
+                       }, {
+                               .type = CX231XX_VMUX_COMPOSITE1,
+                               .vmux = CX231XX_VIN_2_1,
+                               .amux = CX231XX_AMUX_LINE_IN,
+                               .gpio = 0,
+                       }, {
+                               .type = CX231XX_VMUX_SVIDEO,
+                               .vmux = CX231XX_VIN_1_1 |
+                                       (CX231XX_VIN_1_2 << 8) |
+                                       CX25840_SVIDEO_ON,
+                               .amux = CX231XX_AMUX_LINE_IN,
+                               .gpio = 0,
+                       }
+               },
+       },
+       [CX231XX_BOARD_CNXT_RDE_250] = {
+               .name = "Conexant Hybrid TV - RDE250",
+               .tuner_type = TUNER_XC5000,
+               .tuner_addr = 0x61,
+               .tuner_gpio = RDE250_XCV_TUNER,
+               .tuner_sif_gpio = 0x05,
+               .tuner_scl_gpio = 0x1a,
+               .tuner_sda_gpio = 0x1b,
+               .decoder = CX231XX_AVDECODER,
+               .demod_xfer_mode = 0,
+               .ctl_pin_status_mask = 0xFFFFFFC4,
+               .agc_analog_digital_select_gpio = 0x0c,
+               .gpio_pin_status_mask = 0x4001000,
+               .tuner_i2c_master = 1,
+               .demod_i2c_master = 2,
+               .has_dvb = 1,
+               .demod_addr = 0x02,
+               .norm = V4L2_STD_PAL,
+
+               .input = {{
+                               .type = CX231XX_VMUX_TELEVISION,
+                               .vmux = CX231XX_VIN_3_1,
+                               .amux = CX231XX_AMUX_VIDEO,
+                               .gpio = 0,
+                       }, {
+                               .type = CX231XX_VMUX_COMPOSITE1,
+                               .vmux = CX231XX_VIN_2_1,
+                               .amux = CX231XX_AMUX_LINE_IN,
+                               .gpio = 0,
+                       }, {
+                               .type = CX231XX_VMUX_SVIDEO,
+                               .vmux = CX231XX_VIN_1_1 |
+                                       (CX231XX_VIN_1_2 << 8) |
+                                       CX25840_SVIDEO_ON,
+                               .amux = CX231XX_AMUX_LINE_IN,
+                               .gpio = 0,
+                       }
+               },
+       },
+
+       [CX231XX_BOARD_CNXT_RDU_250] = {
+               .name = "Conexant Hybrid TV - RDU250",
+               .tuner_type = TUNER_XC5000,
+               .tuner_addr = 0x61,
+               .tuner_gpio = RDE250_XCV_TUNER,
+               .tuner_sif_gpio = 0x05,
+               .tuner_scl_gpio = 0x1a,
+               .tuner_sda_gpio = 0x1b,
+               .decoder = CX231XX_AVDECODER,
+               .demod_xfer_mode = 0,
+               .ctl_pin_status_mask = 0xFFFFFFC4,
+               .agc_analog_digital_select_gpio = 0x0c,
+               .gpio_pin_status_mask = 0x4001000,
+               .tuner_i2c_master = 1,
+               .demod_i2c_master = 2,
+               .has_dvb = 1,
+               .demod_addr = 0x32,
+               .norm = V4L2_STD_NTSC,
+
+               .input = {{
+                               .type = CX231XX_VMUX_TELEVISION,
+                               .vmux = CX231XX_VIN_3_1,
+                               .amux = CX231XX_AMUX_VIDEO,
+                               .gpio = 0,
+                       }, {
+                               .type = CX231XX_VMUX_COMPOSITE1,
+                               .vmux = CX231XX_VIN_2_1,
+                               .amux = CX231XX_AMUX_LINE_IN,
+                               .gpio = 0,
+                       }, {
+                               .type = CX231XX_VMUX_SVIDEO,
+                               .vmux = CX231XX_VIN_1_1 |
+                                       (CX231XX_VIN_1_2 << 8) |
+                                       CX25840_SVIDEO_ON,
+                               .amux = CX231XX_AMUX_LINE_IN,
+                               .gpio = 0,
+                       }
+               },
+       },
+};
+const unsigned int cx231xx_bcount = ARRAY_SIZE(cx231xx_boards);
+
+/* table of devices that work with this driver */
+struct usb_device_id cx231xx_id_table[] = {
+       {USB_DEVICE(0x0572, 0x5A3C),
+        .driver_info = CX231XX_BOARD_UNKNOWN},
+       {USB_DEVICE(0x0572, 0x58A2),
+        .driver_info = CX231XX_BOARD_CNXT_RDE_250},
+       {USB_DEVICE(0x0572, 0x58A1),
+        .driver_info = CX231XX_BOARD_CNXT_RDU_250},
+       {},
+};
+
+MODULE_DEVICE_TABLE(usb, cx231xx_id_table);
+
+/* cx231xx_tuner_callback
+ * will be used to reset XC5000 tuner using GPIO pin
+ */
+
+int cx231xx_tuner_callback(void *ptr, int component, int command, int arg)
+{
+       int rc = 0;
+       struct cx231xx *dev = ptr;
+
+       if (dev->tuner_type == TUNER_XC5000) {
+               if (command == XC5000_TUNER_RESET) {
+                       cx231xx_info
+                               ("Tuner CB: RESET: cmd %d : tuner type %d \n",
+                                command, dev->tuner_type);
+                       cx231xx_set_gpio_value(dev, dev->board.tuner_gpio->bit,
+                                              1);
+                       msleep(10);
+                       cx231xx_set_gpio_value(dev, dev->board.tuner_gpio->bit,
+                                              0);
+                       msleep(330);
+                       cx231xx_set_gpio_value(dev, dev->board.tuner_gpio->bit,
+                                              1);
+                       msleep(10);
+               }
+       }
+       return rc;
+}
+EXPORT_SYMBOL_GPL(cx231xx_tuner_callback);
+
+static inline void cx231xx_set_model(struct cx231xx *dev)
+{
+       memcpy(&dev->board, &cx231xx_boards[dev->model], sizeof(dev->board));
+}
+
+/* Since cx231xx_pre_card_setup() requires a proper dev->model,
+ * this won't work for boards with generic PCI IDs
+ */
+void cx231xx_pre_card_setup(struct cx231xx *dev)
+{
+
+       cx231xx_set_model(dev);
+
+       cx231xx_info("Identified as %s (card=%d)\n",
+                    dev->board.name, dev->model);
+
+       /* set the direction for GPIO pins */
+       cx231xx_set_gpio_direction(dev, dev->board.tuner_gpio->bit, 1);
+       cx231xx_set_gpio_value(dev, dev->board.tuner_gpio->bit, 1);
+       cx231xx_set_gpio_direction(dev, dev->board.tuner_sif_gpio, 1);
+
+       /* request some modules if any required */
+
+       /* reset the Tuner */
+       cx231xx_gpio_set(dev, dev->board.tuner_gpio);
+
+       /* set the mode to Analog mode initially */
+       cx231xx_set_mode(dev, CX231XX_ANALOG_MODE);
+
+       /* Unlock device */
+       /* cx231xx_set_mode(dev, CX231XX_SUSPEND); */
+
+}
+
+static void cx231xx_config_tuner(struct cx231xx *dev)
+{
+       struct tuner_setup tun_setup;
+       struct v4l2_frequency f;
+
+       if (dev->tuner_type == TUNER_ABSENT)
+               return;
+
+       tun_setup.mode_mask = T_ANALOG_TV | T_RADIO;
+       tun_setup.type = dev->tuner_type;
+       tun_setup.addr = dev->tuner_addr;
+       tun_setup.tuner_callback = cx231xx_tuner_callback;
+
+       tuner_call(dev, tuner, s_type_addr, &tun_setup);
+
+#if 0
+       if (tun_setup.type == TUNER_XC5000) {
+               static struct xc2028_ctrl ctrl = {
+                       .fname = XC5000_DEFAULT_FIRMWARE,
+                       .max_len = 64,
+                       .demod = 0;
+               };
+               struct v4l2_priv_tun_config cfg = {
+                       .tuner = dev->tuner_type,
+                       .priv = &ctrl,
+               };
+               tuner_call(dev, tuner, s_config, &cfg);
+       }
+#endif
+       /* configure tuner */
+       f.tuner = 0;
+       f.type = V4L2_TUNER_ANALOG_TV;
+       f.frequency = 9076;     /* just a magic number */
+       dev->ctl_freq = f.frequency;
+       call_all(dev, tuner, s_frequency, &f);
+
+}
+
+/* ----------------------------------------------------------------------- */
+void cx231xx_set_ir(struct cx231xx *dev, struct IR_i2c *ir)
+{
+       if (disable_ir) {
+               ir->get_key = NULL;
+               return;
+       }
+
+       /* detect & configure */
+       switch (dev->model) {
+
+       case CX231XX_BOARD_CNXT_RDE_250:
+               break;
+       case CX231XX_BOARD_CNXT_RDU_250:
+               break;
+       default:
+               break;
+       }
+}
+
+void cx231xx_card_setup(struct cx231xx *dev)
+{
+
+       cx231xx_set_model(dev);
+
+       dev->tuner_type = cx231xx_boards[dev->model].tuner_type;
+       if (cx231xx_boards[dev->model].tuner_addr)
+               dev->tuner_addr = cx231xx_boards[dev->model].tuner_addr;
+
+       /* request some modules */
+       if (dev->board.decoder == CX231XX_AVDECODER) {
+               dev->sd_cx25840 = v4l2_i2c_new_subdev(&dev->v4l2_dev,
+                                       &dev->i2c_bus[0].i2c_adap,
+                                       "cx25840", "cx25840", 0x88 >> 1);
+               if (dev->sd_cx25840 == NULL)
+                       cx231xx_info("cx25840 subdev registration failure\n");
+               cx25840_call(dev, core, load_fw);
+
+       }
+
+       if (dev->board.tuner_type != TUNER_ABSENT) {
+               dev->sd_tuner = v4l2_i2c_new_subdev(&dev->v4l2_dev,
+                               &dev->i2c_bus[1].i2c_adap,
+                               "tuner", "tuner", 0xc2 >> 1);
+               if (dev->sd_tuner == NULL)
+                       cx231xx_info("tuner subdev registration failure\n");
+
+               cx231xx_config_tuner(dev);
+       }
+
+       cx231xx_config_tuner(dev);
+
+#if 0
+       /* TBD  IR will be added later */
+       cx231xx_ir_init(dev);
+#endif
+}
+
+/*
+ * cx231xx_config()
+ * inits registers with sane defaults
+ */
+int cx231xx_config(struct cx231xx *dev)
+{
+       /* TBD need to add cx231xx specific code */
+       dev->mute = 1;          /* maybe not the right place... */
+       dev->volume = 0x1f;
+
+       return 0;
+}
+
+/*
+ * cx231xx_config_i2c()
+ * configure i2c attached devices
+ */
+void cx231xx_config_i2c(struct cx231xx *dev)
+{
+       /* u32 input = INPUT(dev->video_input)->vmux; */
+
+       call_all(dev, video, s_stream, 1);
+}
+
+/*
+ * cx231xx_realease_resources()
+ * unregisters the v4l2,i2c and usb devices
+ * called when the device gets disconected or at module unload
+*/
+void cx231xx_release_resources(struct cx231xx *dev)
+{
+
+#if 0          /* TBD IR related  */
+       if (dev->ir)
+               cx231xx_ir_fini(dev);
+#endif
+
+       cx231xx_release_analog_resources(dev);
+
+       cx231xx_remove_from_devlist(dev);
+
+       cx231xx_dev_uninit(dev);
+
+       usb_put_dev(dev->udev);
+
+       /* Mark device as unused */
+       cx231xx_devused &= ~(1 << dev->devno);
+}
+
+/*
+ * cx231xx_init_dev()
+ * allocates and inits the device structs, registers i2c bus and v4l device
+ */
+static int cx231xx_init_dev(struct cx231xx **devhandle, struct usb_device *udev,
+                           int minor)
+{
+       struct cx231xx *dev = *devhandle;
+       int retval = -ENOMEM;
+       int errCode;
+       unsigned int maxh, maxw;
+
+       dev->udev = udev;
+       mutex_init(&dev->lock);
+       mutex_init(&dev->ctrl_urb_lock);
+       mutex_init(&dev->gpio_i2c_lock);
+
+       spin_lock_init(&dev->video_mode.slock);
+       spin_lock_init(&dev->vbi_mode.slock);
+       spin_lock_init(&dev->sliced_cc_mode.slock);
+
+       init_waitqueue_head(&dev->open);
+       init_waitqueue_head(&dev->wait_frame);
+       init_waitqueue_head(&dev->wait_stream);
+
+       dev->cx231xx_read_ctrl_reg = cx231xx_read_ctrl_reg;
+       dev->cx231xx_write_ctrl_reg = cx231xx_write_ctrl_reg;
+       dev->cx231xx_send_usb_command = cx231xx_send_usb_command;
+       dev->cx231xx_gpio_i2c_read = cx231xx_gpio_i2c_read;
+       dev->cx231xx_gpio_i2c_write = cx231xx_gpio_i2c_write;
+
+       /* Query cx231xx to find what pcb config it is related to */
+       initialize_cx231xx(dev);
+
+       /* Cx231xx pre card setup */
+       cx231xx_pre_card_setup(dev);
+
+       errCode = cx231xx_config(dev);
+       if (errCode) {
+               cx231xx_errdev("error configuring device\n");
+               return -ENOMEM;
+       }
+
+       /* set default norm */
+       dev->norm = dev->board.norm;
+
+       /* register i2c bus */
+       errCode = cx231xx_dev_init(dev);
+       if (errCode < 0) {
+               cx231xx_errdev("%s: cx231xx_i2c_register - errCode [%d]!\n",
+                              __func__, errCode);
+               return errCode;
+       }
+
+       /* Do board specific init */
+       cx231xx_card_setup(dev);
+
+       /* configure the device */
+       cx231xx_config_i2c(dev);
+
+       maxw = norm_maxw(dev);
+       maxh = norm_maxh(dev);
+
+       /* set default image size */
+       dev->width = maxw;
+       dev->height = maxh;
+       dev->interlaced = 0;
+       dev->hscale = 0;
+       dev->vscale = 0;
+       dev->video_input = 0;
+
+       errCode = cx231xx_config(dev);
+       if (errCode < 0) {
+               cx231xx_errdev("%s: cx231xx_config - errCode [%d]!\n",
+                              __func__, errCode);
+               return errCode;
+       }
+
+       /* init video dma queues */
+       INIT_LIST_HEAD(&dev->video_mode.vidq.active);
+       INIT_LIST_HEAD(&dev->video_mode.vidq.queued);
+
+       /* init vbi dma queues */
+       INIT_LIST_HEAD(&dev->vbi_mode.vidq.active);
+       INIT_LIST_HEAD(&dev->vbi_mode.vidq.queued);
+
+       /* Reset other chips required if they are tied up with GPIO pins */
+
+       cx231xx_add_into_devlist(dev);
+
+       retval = cx231xx_register_analog_devices(dev);
+       if (retval < 0) {
+               cx231xx_release_resources(dev);
+               goto fail_reg_devices;
+       }
+
+       cx231xx_init_extension(dev);
+
+       return 0;
+
+fail_reg_devices:
+       mutex_unlock(&dev->lock);
+       return retval;
+}
+
+#if defined(CONFIG_MODULES) && defined(MODULE)
+static void request_module_async(struct work_struct *work)
+{
+       struct cx231xx *dev = container_of(work,
+                                          struct cx231xx, request_module_wk);
+
+       if (dev->has_alsa_audio)
+               request_module("cx231xx-alsa");
+
+       if (dev->board.has_dvb)
+               request_module("cx231xx-dvb");
+
+}
+
+static void request_modules(struct cx231xx *dev)
+{
+       INIT_WORK(&dev->request_module_wk, request_module_async);
+       schedule_work(&dev->request_module_wk);
+}
+#else
+#define request_modules(dev)
+#endif /* CONFIG_MODULES */
+
+/*
+ * cx231xx_usb_probe()
+ * checks for supported devices
+ */
+static int cx231xx_usb_probe(struct usb_interface *interface,
+                            const struct usb_device_id *id)
+{
+       struct usb_device *udev;
+       struct usb_interface *uif;
+       struct cx231xx *dev = NULL;
+       int retval = -ENODEV;
+       int nr = 0, ifnum;
+       int i, isoc_pipe = 0;
+       char *speed;
+       char descr[255] = "";
+       struct usb_interface *lif = NULL;
+       int skip_interface = 0;
+       struct usb_interface_assoc_descriptor *assoc_desc;
+
+       udev = usb_get_dev(interface_to_usbdev(interface));
+       ifnum = interface->altsetting[0].desc.bInterfaceNumber;
+
+       if (!ifnum) {
+               /*
+                * Interface number 0 - IR interface
+                */
+               /* Check to see next free device and mark as used */
+               nr = find_first_zero_bit(&cx231xx_devused, CX231XX_MAXBOARDS);
+               cx231xx_devused |= 1 << nr;
+
+               if (nr >= CX231XX_MAXBOARDS) {
+                       cx231xx_err(DRIVER_NAME ": Supports only %i cx231xx boards.\n",
+                                    CX231XX_MAXBOARDS);
+                       cx231xx_devused &= ~(1 << nr);
+                       return -ENOMEM;
+               }
+
+               /* allocate memory for our device state and initialize it */
+               dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+               if (dev == NULL) {
+                       cx231xx_err(DRIVER_NAME ": out of memory!\n");
+                       cx231xx_devused &= ~(1 << nr);
+                       return -ENOMEM;
+               }
+
+               snprintf(dev->name, 29, "cx231xx #%d", nr);
+               dev->devno = nr;
+               dev->model = id->driver_info;
+               dev->video_mode.alt = -1;
+               dev->interface_count++;
+
+               /* reset gpio dir and value */
+               dev->gpio_dir = 0;
+               dev->gpio_val = 0;
+               dev->xc_fw_load_done = 0;
+               dev->has_alsa_audio = 1;
+               dev->power_mode = -1;
+
+               /* 0 - vbi ; 1 -sliced cc mode */
+               dev->vbi_or_sliced_cc_mode = 0;
+
+               /* get maximum no.of IAD interfaces */
+               assoc_desc = udev->actconfig->intf_assoc[0];
+               dev->max_iad_interface_count = assoc_desc->bInterfaceCount;
+
+               /* init CIR module TBD */
+
+               /* store the current interface */
+               lif = interface;
+
+               switch (udev->speed) {
+               case USB_SPEED_LOW:
+                       speed = "1.5";
+                       break;
+               case USB_SPEED_UNKNOWN:
+               case USB_SPEED_FULL:
+                       speed = "12";
+                       break;
+               case USB_SPEED_HIGH:
+                       speed = "480";
+                       break;
+               default:
+                       speed = "unknown";
+               }
+
+               if (udev->manufacturer)
+                       strlcpy(descr, udev->manufacturer, sizeof(descr));
+
+               if (udev->product) {
+                       if (*descr)
+                               strlcat(descr, " ", sizeof(descr));
+                       strlcat(descr, udev->product, sizeof(descr));
+               }
+               if (*descr)
+                       strlcat(descr, " ", sizeof(descr));
+
+               cx231xx_info("New device %s@ %s Mbps "
+                    "(%04x:%04x) with %d interfaces\n",
+                    descr,
+                    speed,
+                    le16_to_cpu(udev->descriptor.idVendor),
+                    le16_to_cpu(udev->descriptor.idProduct),
+                    dev->max_iad_interface_count);
+       } else {
+               /* Get dev structure first */
+               dev = usb_get_intfdata(udev->actconfig->interface[0]);
+               if (dev == NULL) {
+                       cx231xx_err(DRIVER_NAME ": out of first interface!\n");
+                       return -ENODEV;
+               }
+
+               /* store the interface 0 back */
+               lif = udev->actconfig->interface[0];
+
+               /* increment interface count */
+               dev->interface_count++;
+
+               /* get device number */
+               nr = dev->devno;
+
+               /*
+                * set skip interface, for all interfaces but
+                * interface 1 and the last one
+                */
+               if ((ifnum != 1) && ((dev->interface_count - 1)
+                                    != dev->max_iad_interface_count))
+                       skip_interface = 1;
+
+               if (ifnum == 1) {
+                       assoc_desc = udev->actconfig->intf_assoc[0];
+                       if (assoc_desc->bFirstInterface != ifnum) {
+                               cx231xx_err(DRIVER_NAME ": Not found "
+                                           "matching IAD interface\n");
+                               return -ENODEV;
+                       }
+               }
+       }
+
+       if (skip_interface)
+               return -ENODEV;
+
+       cx231xx_info("registering interface %d\n", ifnum);
+
+       /* save our data pointer in this interface device */
+       usb_set_intfdata(lif, dev);
+
+       if ((dev->interface_count - 1) != dev->max_iad_interface_count)
+               return 0;
+
+       /*
+        * AV device initialization - only done at the last interface
+        */
+
+       /* Create v4l2 device */
+       retval = v4l2_device_register(&interface->dev, &dev->v4l2_dev);
+       if (retval) {
+               cx231xx_errdev("v4l2_device_register failed\n");
+               cx231xx_devused &= ~(1 << nr);
+               kfree(dev);
+               return -EIO;
+       }
+
+       /* allocate device struct */
+       retval = cx231xx_init_dev(&dev, udev, nr);
+       if (retval) {
+               cx231xx_devused &= ~(1 << dev->devno);
+               v4l2_device_unregister(&dev->v4l2_dev);
+               kfree(dev);
+               return retval;
+       }
+
+       /* compute alternate max packet sizes for video */
+       uif = udev->actconfig->interface[dev->current_pcb_config.
+                      hs_config_info[0].interface_info.video_index + 1];
+
+       dev->video_mode.end_point_addr = le16_to_cpu(uif->altsetting[0].
+                       endpoint[isoc_pipe].desc.bEndpointAddress);
+
+       dev->video_mode.num_alt = uif->num_altsetting;
+       cx231xx_info("EndPoint Addr 0x%x, Alternate settings: %i\n",
+                    dev->video_mode.end_point_addr,
+                    dev->video_mode.num_alt);
+       dev->video_mode.alt_max_pkt_size =
+               kmalloc(32 * dev->video_mode.num_alt, GFP_KERNEL);
+
+       if (dev->video_mode.alt_max_pkt_size == NULL) {
+               cx231xx_errdev("out of memory!\n");
+               cx231xx_devused &= ~(1 << nr);
+               v4l2_device_unregister(&dev->v4l2_dev);
+               kfree(dev);
+               return -ENOMEM;
+       }
+
+       for (i = 0; i < dev->video_mode.num_alt; i++) {
+               u16 tmp = le16_to_cpu(uif->altsetting[i].endpoint[isoc_pipe].
+                               desc.wMaxPacketSize);
+               dev->video_mode.alt_max_pkt_size[i] =
+                   (tmp & 0x07ff) * (((tmp & 0x1800) >> 11) + 1);
+               cx231xx_info("Alternate setting %i, max size= %i\n", i,
+                            dev->video_mode.alt_max_pkt_size[i]);
+       }
+
+       /* compute alternate max packet sizes for vbi */
+       uif = udev->actconfig->interface[dev->current_pcb_config.
+                                      hs_config_info[0].interface_info.
+                                      vanc_index + 1];
+
+       dev->vbi_mode.end_point_addr =
+           le16_to_cpu(uif->altsetting[0].endpoint[isoc_pipe].desc.
+                       bEndpointAddress);
+
+       dev->vbi_mode.num_alt = uif->num_altsetting;
+       cx231xx_info("EndPoint Addr 0x%x, Alternate settings: %i\n",
+                    dev->vbi_mode.end_point_addr,
+                    dev->vbi_mode.num_alt);
+       dev->vbi_mode.alt_max_pkt_size =
+           kmalloc(32 * dev->vbi_mode.num_alt, GFP_KERNEL);
+
+       if (dev->vbi_mode.alt_max_pkt_size == NULL) {
+               cx231xx_errdev("out of memory!\n");
+               cx231xx_devused &= ~(1 << nr);
+               v4l2_device_unregister(&dev->v4l2_dev);
+               kfree(dev);
+               return -ENOMEM;
+       }
+
+       for (i = 0; i < dev->vbi_mode.num_alt; i++) {
+               u16 tmp =
+                   le16_to_cpu(uif->altsetting[i].endpoint[isoc_pipe].
+                               desc.wMaxPacketSize);
+               dev->vbi_mode.alt_max_pkt_size[i] =
+                   (tmp & 0x07ff) * (((tmp & 0x1800) >> 11) + 1);
+               cx231xx_info("Alternate setting %i, max size= %i\n", i,
+                            dev->vbi_mode.alt_max_pkt_size[i]);
+       }
+
+       /* compute alternate max packet sizes for sliced CC */
+       uif = udev->actconfig->interface[dev->current_pcb_config.
+                                      hs_config_info[0].interface_info.
+                                      hanc_index + 1];
+
+       dev->sliced_cc_mode.end_point_addr =
+           le16_to_cpu(uif->altsetting[0].endpoint[isoc_pipe].desc.
+                       bEndpointAddress);
+
+       dev->sliced_cc_mode.num_alt = uif->num_altsetting;
+       cx231xx_info("EndPoint Addr 0x%x, Alternate settings: %i\n",
+                    dev->sliced_cc_mode.end_point_addr,
+                    dev->sliced_cc_mode.num_alt);
+       dev->sliced_cc_mode.alt_max_pkt_size =
+               kmalloc(32 * dev->sliced_cc_mode.num_alt, GFP_KERNEL);
+
+       if (dev->sliced_cc_mode.alt_max_pkt_size == NULL) {
+               cx231xx_errdev("out of memory!\n");
+               cx231xx_devused &= ~(1 << nr);
+               v4l2_device_unregister(&dev->v4l2_dev);
+               kfree(dev);
+               return -ENOMEM;
+       }
+
+       for (i = 0; i < dev->sliced_cc_mode.num_alt; i++) {
+               u16 tmp = le16_to_cpu(uif->altsetting[i].endpoint[isoc_pipe].
+                               desc.wMaxPacketSize);
+               dev->sliced_cc_mode.alt_max_pkt_size[i] =
+                   (tmp & 0x07ff) * (((tmp & 0x1800) >> 11) + 1);
+               cx231xx_info("Alternate setting %i, max size= %i\n", i,
+                            dev->sliced_cc_mode.alt_max_pkt_size[i]);
+       }
+
+       if (dev->current_pcb_config.ts1_source != 0xff) {
+               /* compute alternate max packet sizes for TS1 */
+               uif = udev->actconfig->interface[dev->current_pcb_config.
+                                              hs_config_info[0].
+                                              interface_info.
+                                              ts1_index + 1];
+
+               dev->ts1_mode.end_point_addr =
+                   le16_to_cpu(uif->altsetting[0].endpoint[isoc_pipe].
+                               desc.bEndpointAddress);
+
+               dev->ts1_mode.num_alt = uif->num_altsetting;
+               cx231xx_info("EndPoint Addr 0x%x, Alternate settings: %i\n",
+                            dev->ts1_mode.end_point_addr,
+                            dev->ts1_mode.num_alt);
+               dev->ts1_mode.alt_max_pkt_size =
+                       kmalloc(32 * dev->ts1_mode.num_alt, GFP_KERNEL);
+
+               if (dev->ts1_mode.alt_max_pkt_size == NULL) {
+                       cx231xx_errdev("out of memory!\n");
+                       cx231xx_devused &= ~(1 << nr);
+                       v4l2_device_unregister(&dev->v4l2_dev);
+                       kfree(dev);
+                       return -ENOMEM;
+               }
+
+               for (i = 0; i < dev->ts1_mode.num_alt; i++) {
+                       u16 tmp = le16_to_cpu(uif->altsetting[i].
+                                               endpoint[isoc_pipe].desc.
+                                               wMaxPacketSize);
+                       dev->ts1_mode.alt_max_pkt_size[i] =
+                           (tmp & 0x07ff) * (((tmp & 0x1800) >> 11) + 1);
+                       cx231xx_info("Alternate setting %i, max size= %i\n", i,
+                                    dev->ts1_mode.alt_max_pkt_size[i]);
+               }
+       }
+
+       /* load other modules required */
+       request_modules(dev);
+
+       return 0;
+}
+
+/*
+ * cx231xx_usb_disconnect()
+ * called when the device gets diconencted
+ * video device will be unregistered on v4l2_close in case it is still open
+ */
+static void cx231xx_usb_disconnect(struct usb_interface *interface)
+{
+       struct cx231xx *dev;
+
+       dev = usb_get_intfdata(interface);
+       usb_set_intfdata(interface, NULL);
+
+       if (!dev)
+               return;
+
+       if (!dev->udev)
+               return;
+
+       /* delete v4l2 device */
+       v4l2_device_unregister(&dev->v4l2_dev);
+
+       /* wait until all current v4l2 io is finished then deallocate
+          resources */
+       mutex_lock(&dev->lock);
+
+       wake_up_interruptible_all(&dev->open);
+
+       if (dev->users) {
+               cx231xx_warn
+                   ("device /dev/video%d is open! Deregistration and memory "
+                    "deallocation are deferred on close.\n", dev->vdev->num);
+
+               dev->state |= DEV_MISCONFIGURED;
+               cx231xx_uninit_isoc(dev);
+               dev->state |= DEV_DISCONNECTED;
+               wake_up_interruptible(&dev->wait_frame);
+               wake_up_interruptible(&dev->wait_stream);
+       } else {
+               dev->state |= DEV_DISCONNECTED;
+               cx231xx_release_resources(dev);
+       }
+
+       cx231xx_close_extension(dev);
+
+       mutex_unlock(&dev->lock);
+
+       if (!dev->users) {
+               kfree(dev->video_mode.alt_max_pkt_size);
+               kfree(dev->vbi_mode.alt_max_pkt_size);
+               kfree(dev->sliced_cc_mode.alt_max_pkt_size);
+               kfree(dev->ts1_mode.alt_max_pkt_size);
+               kfree(dev);
+       }
+}
+
+static struct usb_driver cx231xx_usb_driver = {
+       .name = "cx231xx",
+       .probe = cx231xx_usb_probe,
+       .disconnect = cx231xx_usb_disconnect,
+       .id_table = cx231xx_id_table,
+};
+
+static int __init cx231xx_module_init(void)
+{
+       int result;
+
+       printk(KERN_INFO DRIVER_NAME " v4l2 driver loaded.\n");
+
+       /* register this driver with the USB subsystem */
+       result = usb_register(&cx231xx_usb_driver);
+       if (result)
+               cx231xx_err(DRIVER_NAME
+                           " usb_register failed. Error number %d.\n", result);
+
+       return result;
+}
+
+static void __exit cx231xx_module_exit(void)
+{
+       /* deregister this driver with the USB subsystem */
+       usb_deregister(&cx231xx_usb_driver);
+}
+
+module_init(cx231xx_module_init);
+module_exit(cx231xx_module_exit);
diff --git a/drivers/media/video/cx231xx/cx231xx-conf-reg.h b/drivers/media/video/cx231xx/cx231xx-conf-reg.h
new file mode 100644 (file)
index 0000000..a6f398a
--- /dev/null
@@ -0,0 +1,494 @@
+/*
+   cx231xx_conf-reg.h - driver for Conexant Cx23100/101/102 USB
+                       video capture devices
+
+   Copyright (C) 2008 <srinivasa.deevi at conexant dot com>
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef _POLARIS_REG_H_
+#define _POLARIS_REG_H_
+
+#define BOARD_CFG_STAT          0x0
+#define TS_MODE_REG             0x4
+#define TS1_CFG_REG             0x8
+#define TS1_LENGTH_REG          0xc
+#define TS2_CFG_REG             0x10
+#define TS2_LENGTH_REG          0x14
+#define EP_MODE_SET             0x18
+#define CIR_PWR_PTN1            0x1c
+#define CIR_PWR_PTN2            0x20
+#define CIR_PWR_PTN3            0x24
+#define CIR_PWR_MASK0           0x28
+#define CIR_PWR_MASK1           0x2c
+#define CIR_PWR_MASK2           0x30
+#define CIR_GAIN                0x34
+#define CIR_CAR_REG             0x38
+#define CIR_OT_CFG1             0x40
+#define CIR_OT_CFG2             0x44
+#define PWR_CTL_EN              0x74
+
+/* Polaris Endpoints capture mask for register EP_MODE_SET */
+#define ENABLE_EP1              0x01   /* Bit[0]=1 */
+#define ENABLE_EP2              0x02   /* Bit[1]=1 */
+#define ENABLE_EP3              0x04   /* Bit[2]=1 */
+#define ENABLE_EP4              0x08   /* Bit[3]=1 */
+#define ENABLE_EP5              0x10   /* Bit[4]=1 */
+#define ENABLE_EP6              0x20   /* Bit[5]=1 */
+
+/* Bit definition for register PWR_CTL_EN */
+#define PWR_MODE_MASK           0x17f
+#define PWR_AV_EN               0x08   /* bit3 */
+#define PWR_ISO_EN              0x40   /* bit6 */
+#define PWR_AV_MODE             0x30   /* bit4,5  */
+#define PWR_TUNER_EN            0x04   /* bit2 */
+#define PWR_DEMOD_EN            0x02   /* bit1 */
+#define I2C_DEMOD_EN            0x01   /* bit0 */
+#define PWR_RESETOUT_EN         0x100  /* bit8 */
+
+enum AV_MODE{
+       POLARIS_AVMODE_DEFAULT = 0,
+       POLARIS_AVMODE_DIGITAL = 0x10,
+       POLARIS_AVMODE_ANALOGT_TV = 0x20,
+       POLARIS_AVMODE_ENXTERNAL_AV = 0x30,
+
+};
+
+/* Colibri Registers */
+
+#define SINGLE_ENDED            0x0
+#define LOW_IF                  0x4
+#define EU_IF                   0x9
+#define US_IF                   0xa
+
+#define SUP_BLK_TUNE1           0x00
+#define SUP_BLK_TUNE2           0x01
+#define SUP_BLK_TUNE3           0x02
+#define SUP_BLK_XTAL            0x03
+#define SUP_BLK_PLL1            0x04
+#define SUP_BLK_PLL2            0x05
+#define SUP_BLK_PLL3            0x06
+#define SUP_BLK_REF             0x07
+#define SUP_BLK_PWRDN           0x08
+#define SUP_BLK_TESTPAD         0x09
+#define ADC_COM_INT5_STAB_REF   0x0a
+#define ADC_COM_QUANT           0x0b
+#define ADC_COM_BIAS1           0x0c
+#define ADC_COM_BIAS2           0x0d
+#define ADC_COM_BIAS3           0x0e
+#define TESTBUS_CTRL            0x12
+
+#define FLD_PWRDN_TUNING_BIAS  0x10
+#define FLD_PWRDN_ENABLE_PLL   0x08
+#define FLD_PWRDN_PD_BANDGAP   0x04
+#define FLD_PWRDN_PD_BIAS      0x02
+#define FLD_PWRDN_PD_TUNECK    0x01
+
+
+#define ADC_STATUS_CH1          0x20
+#define ADC_STATUS_CH2          0x40
+#define ADC_STATUS_CH3          0x60
+
+#define ADC_STATUS2_CH1         0x21
+#define ADC_STATUS2_CH2         0x41
+#define ADC_STATUS2_CH3         0x61
+
+#define ADC_CAL_ATEST_CH1       0x22
+#define ADC_CAL_ATEST_CH2       0x42
+#define ADC_CAL_ATEST_CH3       0x62
+
+#define ADC_PWRDN_CLAMP_CH1     0x23
+#define ADC_PWRDN_CLAMP_CH2     0x43
+#define ADC_PWRDN_CLAMP_CH3     0x63
+
+#define ADC_CTRL_DAC23_CH1      0x24
+#define ADC_CTRL_DAC23_CH2      0x44
+#define ADC_CTRL_DAC23_CH3      0x64
+
+#define ADC_CTRL_DAC1_CH1       0x25
+#define ADC_CTRL_DAC1_CH2       0x45
+#define ADC_CTRL_DAC1_CH3       0x65
+
+#define ADC_DCSERVO_DEM_CH1     0x26
+#define ADC_DCSERVO_DEM_CH2     0x46
+#define ADC_DCSERVO_DEM_CH3     0x66
+
+#define ADC_FB_FRCRST_CH1       0x27
+#define ADC_FB_FRCRST_CH2       0x47
+#define ADC_FB_FRCRST_CH3       0x67
+
+#define ADC_INPUT_CH1           0x28
+#define ADC_INPUT_CH2           0x48
+#define ADC_INPUT_CH3           0x68
+#define INPUT_SEL_MASK          0x30   /* [5:4] in_sel */
+
+#define ADC_NTF_PRECLMP_EN_CH1  0x29
+#define ADC_NTF_PRECLMP_EN_CH2  0x49
+#define ADC_NTF_PRECLMP_EN_CH3  0x69
+
+#define ADC_QGAIN_RES_TRM_CH1   0x2a
+#define ADC_QGAIN_RES_TRM_CH2   0x4a
+#define ADC_QGAIN_RES_TRM_CH3   0x6a
+
+#define ADC_SOC_PRECLMP_TERM_CH1    0x2b
+#define ADC_SOC_PRECLMP_TERM_CH2    0x4b
+#define ADC_SOC_PRECLMP_TERM_CH3    0x6b
+
+#define TESTBUS_CTRL_CH1        0x32
+#define TESTBUS_CTRL_CH2        0x52
+#define TESTBUS_CTRL_CH3        0x72
+
+/******************************************************************************
+                           * DIF registers *
+ ******************************************************************************/
+#define      DIRECT_IF_REVB_BASE  0x00300
+
+/*****************************************************************************/
+#define      DIF_PLL_FREQ_WORD        (DIRECT_IF_REVB_BASE + 0x00000000)
+/*****************************************************************************/
+#define      FLD_DIF_PLL_LOCK                           0x80000000
+/*  Reserved                                [30:29] */
+#define      FLD_DIF_PLL_FREE_RUN                       0x10000000
+#define      FLD_DIF_PLL_FREQ                           0x0fffffff
+
+/*****************************************************************************/
+#define      DIF_PLL_CTRL             (DIRECT_IF_REVB_BASE + 0x00000004)
+/*****************************************************************************/
+#define      FLD_DIF_KD_PD                              0xff000000
+/*  Reserved                             [23:20] */
+#define      FLD_DIF_KDS_PD                             0x000f0000
+#define      FLD_DIF_KI_PD                              0x0000ff00
+/*  Reserved                             [7:4] */
+#define      FLD_DIF_KIS_PD                             0x0000000f
+
+/*****************************************************************************/
+#define      DIF_PLL_CTRL1            (DIRECT_IF_REVB_BASE + 0x00000008)
+/*****************************************************************************/
+#define      FLD_DIF_KD_FD                              0xff000000
+/*  Reserved                             [23:20] */
+#define      FLD_DIF_KDS_FD                             0x000f0000
+#define      FLD_DIF_KI_FD                              0x0000ff00
+#define      FLD_DIF_SIG_PROP_SZ                        0x000000f0
+#define      FLD_DIF_KIS_FD                             0x0000000f
+
+/*****************************************************************************/
+#define      DIF_PLL_CTRL2            (DIRECT_IF_REVB_BASE + 0x0000000c)
+/*****************************************************************************/
+#define      FLD_DIF_PLL_AGC_REF                        0xfff00000
+#define      FLD_DIF_PLL_AGC_KI                         0x000f0000
+/*  Reserved                             [15] */
+#define      FLD_DIF_FREQ_LIMIT                         0x00007000
+#define      FLD_DIF_K_FD                               0x00000f00
+#define      FLD_DIF_DOWNSMPL_FD                        0x000000ff
+
+/*****************************************************************************/
+#define      DIF_PLL_CTRL3            (DIRECT_IF_REVB_BASE + 0x00000010)
+/*****************************************************************************/
+/*  Reserved                             [31:16] */
+#define      FLD_DIF_PLL_AGC_EN                         0x00008000
+/*  Reserved                             [14:12] */
+#define      FLD_DIF_PLL_MAN_GAIN                       0x00000fff
+
+/*****************************************************************************/
+#define      DIF_AGC_IF_REF           (DIRECT_IF_REVB_BASE + 0x00000014)
+/*****************************************************************************/
+#define      FLD_DIF_K_AGC_RF                           0xf0000000
+#define      FLD_DIF_K_AGC_IF                           0x0f000000
+#define      FLD_DIF_K_AGC_INT                          0x00f00000
+/*  Reserved                             [19:12] */
+#define      FLD_DIF_IF_REF                             0x00000fff
+
+/*****************************************************************************/
+#define      DIF_AGC_CTRL_IF          (DIRECT_IF_REVB_BASE + 0x00000018)
+/*****************************************************************************/
+#define      FLD_DIF_IF_MAX                             0xff000000
+#define      FLD_DIF_IF_MIN                             0x00ff0000
+#define      FLD_DIF_IF_AGC                             0x0000ffff
+
+/*****************************************************************************/
+#define      DIF_AGC_CTRL_INT         (DIRECT_IF_REVB_BASE + 0x0000001c)
+/*****************************************************************************/
+#define      FLD_DIF_INT_MAX                            0xff000000
+#define      FLD_DIF_INT_MIN                            0x00ff0000
+#define      FLD_DIF_INT_AGC                            0x0000ffff
+
+/*****************************************************************************/
+#define      DIF_AGC_CTRL_RF          (DIRECT_IF_REVB_BASE + 0x00000020)
+/*****************************************************************************/
+#define      FLD_DIF_RF_MAX                             0xff000000
+#define      FLD_DIF_RF_MIN                             0x00ff0000
+#define      FLD_DIF_RF_AGC                             0x0000ffff
+
+/*****************************************************************************/
+#define      DIF_AGC_IF_INT_CURRENT   (DIRECT_IF_REVB_BASE + 0x00000024)
+/*****************************************************************************/
+#define      FLD_DIF_IF_AGC_IN                          0xffff0000
+#define      FLD_DIF_INT_AGC_IN                         0x0000ffff
+
+/*****************************************************************************/
+#define      DIF_AGC_RF_CURRENT       (DIRECT_IF_REVB_BASE + 0x00000028)
+/*****************************************************************************/
+/*  Reserved                            [31:16] */
+#define      FLD_DIF_RF_AGC_IN                          0x0000ffff
+
+/*****************************************************************************/
+#define      DIF_VIDEO_AGC_CTRL       (DIRECT_IF_REVB_BASE + 0x0000002c)
+/*****************************************************************************/
+#define      FLD_DIF_AFD                                0xc0000000
+#define      FLD_DIF_K_VID_AGC                          0x30000000
+#define      FLD_DIF_LINE_LENGTH                        0x0fff0000
+#define      FLD_DIF_AGC_GAIN                           0x0000ffff
+
+/*****************************************************************************/
+#define      DIF_VID_AUD_OVERRIDE     (DIRECT_IF_REVB_BASE + 0x00000030)
+/*****************************************************************************/
+#define      FLD_DIF_AUDIO_AGC_OVERRIDE                 0x80000000
+/*  Reserved                             [30:30] */
+#define      FLD_DIF_AUDIO_MAN_GAIN                     0x3f000000
+/*  Reserved                             [23:17] */
+#define      FLD_DIF_VID_AGC_OVERRIDE                   0x00010000
+#define      FLD_DIF_VID_MAN_GAIN                       0x0000ffff
+
+/*****************************************************************************/
+#define      DIF_AV_SEP_CTRL          (DIRECT_IF_REVB_BASE + 0x00000034)
+/*****************************************************************************/
+#define      FLD_DIF_LPF_FREQ                           0xc0000000
+#define      FLD_DIF_AV_PHASE_INC                       0x3f000000
+#define      FLD_DIF_AUDIO_FREQ                         0x00ffffff
+
+/*****************************************************************************/
+#define      DIF_COMP_FLT_CTRL        (DIRECT_IF_REVB_BASE + 0x00000038)
+/*****************************************************************************/
+/*  Reserved                            [31:24] */
+#define      FLD_DIF_IIR23_R2                           0x00ff0000
+#define      FLD_DIF_IIR23_R1                           0x0000ff00
+#define      FLD_DIF_IIR1_R1                            0x000000ff
+
+/*****************************************************************************/
+#define      DIF_MISC_CTRL            (DIRECT_IF_REVB_BASE + 0x0000003c)
+/*****************************************************************************/
+#define      FLD_DIF_DIF_BYPASS                         0x80000000
+#define      FLD_DIF_FM_NYQ_GAIN                        0x40000000
+#define      FLD_DIF_RF_AGC_ENA                         0x20000000
+#define      FLD_DIF_INT_AGC_ENA                        0x10000000
+#define      FLD_DIF_IF_AGC_ENA                         0x08000000
+#define      FLD_DIF_FORCE_RF_IF_LOCK                   0x04000000
+#define      FLD_DIF_VIDEO_AGC_ENA                      0x02000000
+#define      FLD_DIF_RF_AGC_INV                         0x01000000
+#define      FLD_DIF_INT_AGC_INV                        0x00800000
+#define      FLD_DIF_IF_AGC_INV                         0x00400000
+#define      FLD_DIF_SPEC_INV                           0x00200000
+#define      FLD_DIF_AUD_FULL_BW                        0x00100000
+#define      FLD_DIF_AUD_SRC_SEL                        0x00080000
+/*  Reserved                             [18] */
+#define      FLD_DIF_IF_FREQ                            0x00030000
+/*  Reserved                             [15:14] */
+#define      FLD_DIF_TIP_OFFSET                         0x00003f00
+/*  Reserved                             [7:5] */
+#define      FLD_DIF_DITHER_ENA                         0x00000010
+/*  Reserved                             [3:1] */
+#define      FLD_DIF_RF_IF_LOCK                         0x00000001
+
+/*****************************************************************************/
+#define      DIF_SRC_PHASE_INC        (DIRECT_IF_REVB_BASE + 0x00000040)
+/*****************************************************************************/
+/*  Reserved                             [31:29] */
+#define      FLD_DIF_PHASE_INC                          0x1fffffff
+
+/*****************************************************************************/
+#define      DIF_SRC_GAIN_CONTROL     (DIRECT_IF_REVB_BASE + 0x00000044)
+/*****************************************************************************/
+/*  Reserved                             [31:16] */
+#define      FLD_DIF_SRC_KI                             0x0000ff00
+#define      FLD_DIF_SRC_KD                             0x000000ff
+
+/*****************************************************************************/
+#define      DIF_BPF_COEFF01          (DIRECT_IF_REVB_BASE + 0x00000048)
+/*****************************************************************************/
+/*  Reserved                             [31:19] */
+#define      FLD_DIF_BPF_COEFF_0                        0x00070000
+/*  Reserved                             [15:4] */
+#define      FLD_DIF_BPF_COEFF_1                        0x0000000f
+
+/*****************************************************************************/
+#define      DIF_BPF_COEFF23          (DIRECT_IF_REVB_BASE + 0x0000004c)
+/*****************************************************************************/
+/*  Reserved                             [31:22] */
+#define      FLD_DIF_BPF_COEFF_2                        0x003f0000
+/*  Reserved                             [15:7] */
+#define      FLD_DIF_BPF_COEFF_3                        0x0000007f
+
+/*****************************************************************************/
+#define      DIF_BPF_COEFF45          (DIRECT_IF_REVB_BASE + 0x00000050)
+/*****************************************************************************/
+/*  Reserved                             [31:24] */
+#define      FLD_DIF_BPF_COEFF_4                        0x00ff0000
+/*  Reserved                             [15:8] */
+#define      FLD_DIF_BPF_COEFF_5                        0x000000ff
+
+/*****************************************************************************/
+#define      DIF_BPF_COEFF67          (DIRECT_IF_REVB_BASE + 0x00000054)
+/*****************************************************************************/
+/*  Reserved                             [31:25] */
+#define      FLD_DIF_BPF_COEFF_6                        0x01ff0000
+/*  Reserved                             [15:9] */
+#define      FLD_DIF_BPF_COEFF_7                        0x000001ff
+
+/*****************************************************************************/
+#define      DIF_BPF_COEFF89          (DIRECT_IF_REVB_BASE + 0x00000058)
+/*****************************************************************************/
+/*  Reserved                             [31:26] */
+#define      FLD_DIF_BPF_COEFF_8                        0x03ff0000
+/*  Reserved                             [15:10] */
+#define      FLD_DIF_BPF_COEFF_9                        0x000003ff
+
+/*****************************************************************************/
+#define      DIF_BPF_COEFF1011        (DIRECT_IF_REVB_BASE + 0x0000005c)
+/*****************************************************************************/
+/*  Reserved                             [31:27] */
+#define      FLD_DIF_BPF_COEFF_10                       0x07ff0000
+/*  Reserved                             [15:11] */
+#define      FLD_DIF_BPF_COEFF_11                       0x000007ff
+
+/*****************************************************************************/
+#define      DIF_BPF_COEFF1213        (DIRECT_IF_REVB_BASE + 0x00000060)
+/*****************************************************************************/
+/*  Reserved                             [31:27] */
+#define      FLD_DIF_BPF_COEFF_12                       0x07ff0000
+/*  Reserved                             [15:12] */
+#define      FLD_DIF_BPF_COEFF_13                       0x00000fff
+
+/*****************************************************************************/
+#define      DIF_BPF_COEFF1415        (DIRECT_IF_REVB_BASE + 0x00000064)
+/*****************************************************************************/
+/*  Reserved                             [31:28] */
+#define      FLD_DIF_BPF_COEFF_14                       0x0fff0000
+/*  Reserved                             [15:12] */
+#define      FLD_DIF_BPF_COEFF_15                       0x00000fff
+
+/*****************************************************************************/
+#define      DIF_BPF_COEFF1617        (DIRECT_IF_REVB_BASE + 0x00000068)
+/*****************************************************************************/
+/*  Reserved                             [31:29] */
+#define      FLD_DIF_BPF_COEFF_16                       0x1fff0000
+/*  Reserved                             [15:13] */
+#define      FLD_DIF_BPF_COEFF_17                       0x00001fff
+
+/*****************************************************************************/
+#define      DIF_BPF_COEFF1819        (DIRECT_IF_REVB_BASE + 0x0000006c)
+/*****************************************************************************/
+/*  Reserved                             [31:29] */
+#define      FLD_DIF_BPF_COEFF_18                       0x1fff0000
+/*  Reserved                             [15:13] */
+#define      FLD_DIF_BPF_COEFF_19                       0x00001fff
+
+/*****************************************************************************/
+#define      DIF_BPF_COEFF2021        (DIRECT_IF_REVB_BASE + 0x00000070)
+/*****************************************************************************/
+/*  Reserved                             [31:29] */
+#define      FLD_DIF_BPF_COEFF_20                       0x1fff0000
+/*  Reserved                             [15:14] */
+#define      FLD_DIF_BPF_COEFF_21                       0x00003fff
+
+/*****************************************************************************/
+#define      DIF_BPF_COEFF2223        (DIRECT_IF_REVB_BASE + 0x00000074)
+/*****************************************************************************/
+/*  Reserved                             [31:30] */
+#define      FLD_DIF_BPF_COEFF_22                       0x3fff0000
+/*  Reserved                             [15:14] */
+#define      FLD_DIF_BPF_COEFF_23                       0x00003fff
+
+/*****************************************************************************/
+#define      DIF_BPF_COEFF2425        (DIRECT_IF_REVB_BASE + 0x00000078)
+/*****************************************************************************/
+/*  Reserved                             [31:30] */
+#define      FLD_DIF_BPF_COEFF_24                       0x3fff0000
+/*  Reserved                             [15:14] */
+#define      FLD_DIF_BPF_COEFF_25                       0x00003fff
+
+/*****************************************************************************/
+#define      DIF_BPF_COEFF2627        (DIRECT_IF_REVB_BASE + 0x0000007c)
+/*****************************************************************************/
+/*  Reserved                             [31:30] */
+#define      FLD_DIF_BPF_COEFF_26                       0x3fff0000
+/*  Reserved                             [15:14] */
+#define      FLD_DIF_BPF_COEFF_27                       0x00003fff
+
+/*****************************************************************************/
+#define      DIF_BPF_COEFF2829        (DIRECT_IF_REVB_BASE + 0x00000080)
+/*****************************************************************************/
+/*  Reserved                             [31:30] */
+#define      FLD_DIF_BPF_COEFF_28                       0x3fff0000
+/*  Reserved                             [15:14] */
+#define      FLD_DIF_BPF_COEFF_29                       0x00003fff
+
+/*****************************************************************************/
+#define      DIF_BPF_COEFF3031        (DIRECT_IF_REVB_BASE + 0x00000084)
+/*****************************************************************************/
+/*  Reserved                             [31:30] */
+#define      FLD_DIF_BPF_COEFF_30                       0x3fff0000
+/*  Reserved                             [15:14] */
+#define      FLD_DIF_BPF_COEFF_31                       0x00003fff
+
+/*****************************************************************************/
+#define      DIF_BPF_COEFF3233        (DIRECT_IF_REVB_BASE + 0x00000088)
+/*****************************************************************************/
+/*  Reserved                             [31:30] */
+#define      FLD_DIF_BPF_COEFF_32                       0x3fff0000
+/*  Reserved                             [15:14] */
+#define      FLD_DIF_BPF_COEFF_33                       0x00003fff
+
+/*****************************************************************************/
+#define      DIF_BPF_COEFF3435        (DIRECT_IF_REVB_BASE + 0x0000008c)
+/*****************************************************************************/
+/*  Reserved                             [31:30] */
+#define      FLD_DIF_BPF_COEFF_34                       0x3fff0000
+/*  Reserved                             [15:14] */
+#define      FLD_DIF_BPF_COEFF_35                       0x00003fff
+
+/*****************************************************************************/
+#define      DIF_BPF_COEFF36          (DIRECT_IF_REVB_BASE + 0x00000090)
+/*****************************************************************************/
+/*  Reserved                             [31:30] */
+#define      FLD_DIF_BPF_COEFF_36                       0x3fff0000
+/*  Reserved                             [15:0] */
+
+/*****************************************************************************/
+#define      DIF_RPT_VARIANCE         (DIRECT_IF_REVB_BASE + 0x00000094)
+/*****************************************************************************/
+/*  Reserved                             [31:20] */
+#define      FLD_DIF_RPT_VARIANCE                       0x000fffff
+
+/*****************************************************************************/
+#define      DIF_SOFT_RST_CTRL_REVB       (DIRECT_IF_REVB_BASE + 0x00000098)
+/*****************************************************************************/
+/*  Reserved                             [31:8] */
+#define      FLD_DIF_DIF_SOFT_RST                       0x00000080
+#define      FLD_DIF_DIF_REG_RST_MSK                    0x00000040
+#define      FLD_DIF_AGC_RST_MSK                        0x00000020
+#define      FLD_DIF_CMP_RST_MSK                        0x00000010
+#define      FLD_DIF_AVS_RST_MSK                        0x00000008
+#define      FLD_DIF_NYQ_RST_MSK                        0x00000004
+#define      FLD_DIF_DIF_SRC_RST_MSK                    0x00000002
+#define      FLD_DIF_PLL_RST_MSK                        0x00000001
+
+/*****************************************************************************/
+#define      DIF_PLL_FREQ_ERR         (DIRECT_IF_REVB_BASE + 0x0000009c)
+/*****************************************************************************/
+/*  Reserved                             [31:25] */
+#define      FLD_DIF_CTL_IP                             0x01ffffff
+
+#endif
diff --git a/drivers/media/video/cx231xx/cx231xx-core.c b/drivers/media/video/cx231xx/cx231xx-core.c
new file mode 100644 (file)
index 0000000..0d333e6
--- /dev/null
@@ -0,0 +1,1200 @@
+/*
+   cx231xx-core.c - driver for Conexant Cx23100/101/102
+                               USB video capture devices
+
+   Copyright (C) 2008 <srinivasa.deevi at conexant dot com>
+                               Based on em28xx driver
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <linux/init.h>
+#include <linux/list.h>
+#include <linux/module.h>
+#include <linux/usb.h>
+#include <linux/vmalloc.h>
+#include <media/v4l2-common.h>
+
+#include "cx231xx.h"
+#include "cx231xx-reg.h"
+
+/* #define ENABLE_DEBUG_ISOC_FRAMES */
+
+static unsigned int core_debug;
+module_param(core_debug, int, 0644);
+MODULE_PARM_DESC(core_debug, "enable debug messages [core]");
+
+#define cx231xx_coredbg(fmt, arg...) do {\
+       if (core_debug) \
+               printk(KERN_INFO "%s %s :"fmt, \
+                        dev->name, __func__ , ##arg); } while (0)
+
+static unsigned int reg_debug;
+module_param(reg_debug, int, 0644);
+MODULE_PARM_DESC(reg_debug, "enable debug messages [URB reg]");
+
+#define cx231xx_regdbg(fmt, arg...) do {\
+       if (reg_debug) \
+               printk(KERN_INFO "%s %s :"fmt, \
+                        dev->name, __func__ , ##arg); } while (0)
+
+static int alt = CX231XX_PINOUT;
+module_param(alt, int, 0644);
+MODULE_PARM_DESC(alt, "alternate setting to use for video endpoint");
+
+#define cx231xx_isocdbg(fmt, arg...) do {\
+       if (core_debug) \
+               printk(KERN_INFO "%s %s :"fmt, \
+                        dev->name, __func__ , ##arg); } while (0)
+
+/*****************************************************************
+*             Device control list functions                                     *
+******************************************************************/
+
+static LIST_HEAD(cx231xx_devlist);
+static DEFINE_MUTEX(cx231xx_devlist_mutex);
+
+struct cx231xx *cx231xx_get_device(int minor,
+                                  enum v4l2_buf_type *fh_type, int *has_radio)
+{
+       struct cx231xx *h, *dev = NULL;
+
+       *fh_type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+       *has_radio = 0;
+
+       mutex_lock(&cx231xx_devlist_mutex);
+       list_for_each_entry(h, &cx231xx_devlist, devlist) {
+               if (h->vdev->minor == minor)
+                       dev = h;
+               if (h->vbi_dev->minor == minor) {
+                       dev = h;
+                       *fh_type = V4L2_BUF_TYPE_VBI_CAPTURE;
+               }
+               if (h->radio_dev && h->radio_dev->minor == minor) {
+                       dev = h;
+                       *has_radio = 1;
+               }
+       }
+       mutex_unlock(&cx231xx_devlist_mutex);
+
+       return dev;
+}
+
+/*
+ * cx231xx_realease_resources()
+ * unregisters the v4l2,i2c and usb devices
+ * called when the device gets disconected or at module unload
+*/
+void cx231xx_remove_from_devlist(struct cx231xx *dev)
+{
+       mutex_lock(&cx231xx_devlist_mutex);
+       list_del(&dev->devlist);
+       mutex_unlock(&cx231xx_devlist_mutex);
+};
+
+void cx231xx_add_into_devlist(struct cx231xx *dev)
+{
+       mutex_lock(&cx231xx_devlist_mutex);
+       list_add_tail(&dev->devlist, &cx231xx_devlist);
+       mutex_unlock(&cx231xx_devlist_mutex);
+};
+
+static LIST_HEAD(cx231xx_extension_devlist);
+static DEFINE_MUTEX(cx231xx_extension_devlist_lock);
+
+int cx231xx_register_extension(struct cx231xx_ops *ops)
+{
+       struct cx231xx *dev = NULL;
+
+       mutex_lock(&cx231xx_devlist_mutex);
+       mutex_lock(&cx231xx_extension_devlist_lock);
+       list_add_tail(&ops->next, &cx231xx_extension_devlist);
+       list_for_each_entry(dev, &cx231xx_devlist, devlist) {
+               if (dev)
+                       ops->init(dev);
+       }
+       printk(KERN_INFO DRIVER_NAME ": %s initialized\n", ops->name);
+       mutex_unlock(&cx231xx_extension_devlist_lock);
+       mutex_unlock(&cx231xx_devlist_mutex);
+       return 0;
+}
+EXPORT_SYMBOL(cx231xx_register_extension);
+
+void cx231xx_unregister_extension(struct cx231xx_ops *ops)
+{
+       struct cx231xx *dev = NULL;
+
+       mutex_lock(&cx231xx_devlist_mutex);
+       list_for_each_entry(dev, &cx231xx_devlist, devlist) {
+               if (dev)
+                       ops->fini(dev);
+       }
+
+       mutex_lock(&cx231xx_extension_devlist_lock);
+       printk(KERN_INFO DRIVER_NAME ": %s removed\n", ops->name);
+       list_del(&ops->next);
+       mutex_unlock(&cx231xx_extension_devlist_lock);
+       mutex_unlock(&cx231xx_devlist_mutex);
+}
+EXPORT_SYMBOL(cx231xx_unregister_extension);
+
+void cx231xx_init_extension(struct cx231xx *dev)
+{
+       struct cx231xx_ops *ops = NULL;
+
+       mutex_lock(&cx231xx_extension_devlist_lock);
+       if (!list_empty(&cx231xx_extension_devlist)) {
+               list_for_each_entry(ops, &cx231xx_extension_devlist, next) {
+                       if (ops->init)
+                               ops->init(dev);
+               }
+       }
+       mutex_unlock(&cx231xx_extension_devlist_lock);
+}
+
+void cx231xx_close_extension(struct cx231xx *dev)
+{
+       struct cx231xx_ops *ops = NULL;
+
+       mutex_lock(&cx231xx_extension_devlist_lock);
+       if (!list_empty(&cx231xx_extension_devlist)) {
+               list_for_each_entry(ops, &cx231xx_extension_devlist, next) {
+                       if (ops->fini)
+                               ops->fini(dev);
+               }
+       }
+       mutex_unlock(&cx231xx_extension_devlist_lock);
+}
+
+/****************************************************************
+*               U S B related functions                         *
+*****************************************************************/
+int cx231xx_send_usb_command(struct cx231xx_i2c *i2c_bus,
+                            struct cx231xx_i2c_xfer_data *req_data)
+{
+       int status = 0;
+       struct cx231xx *dev = i2c_bus->dev;
+       struct VENDOR_REQUEST_IN ven_req;
+
+       u8 saddr_len = 0;
+       u8 _i2c_period = 0;
+       u8 _i2c_nostop = 0;
+       u8 _i2c_reserve = 0;
+
+       /* Get the I2C period, nostop and reserve parameters */
+       _i2c_period = i2c_bus->i2c_period;
+       _i2c_nostop = i2c_bus->i2c_nostop;
+       _i2c_reserve = i2c_bus->i2c_reserve;
+
+       saddr_len = req_data->saddr_len;
+
+       /* Set wValue */
+       if (saddr_len == 1)     /* need check saddr_len == 0  */
+               ven_req.wValue =
+                   req_data->
+                   dev_addr << 9 | _i2c_period << 4 | saddr_len << 2 |
+                   _i2c_nostop << 1 | I2C_SYNC | _i2c_reserve << 6;
+       else
+               ven_req.wValue =
+                   req_data->
+                   dev_addr << 9 | _i2c_period << 4 | saddr_len << 2 |
+                   _i2c_nostop << 1 | I2C_SYNC | _i2c_reserve << 6;
+
+       /* set channel number */
+       if (req_data->direction & I2C_M_RD) {
+               /* channel number, for read,spec required channel_num +4 */
+               ven_req.bRequest = i2c_bus->nr + 4;
+       } else
+               ven_req.bRequest = i2c_bus->nr; /* channel number,  */
+
+       /* set index value */
+       switch (saddr_len) {
+       case 0:
+               ven_req.wIndex = 0;     /* need check */
+               break;
+       case 1:
+               ven_req.wIndex = (req_data->saddr_dat & 0xff);
+               break;
+       case 2:
+               ven_req.wIndex = req_data->saddr_dat;
+               break;
+       }
+
+       /* set wLength value */
+       ven_req.wLength = req_data->buf_size;
+
+       /* set bData value */
+       ven_req.bData = 0;
+
+       /* set the direction */
+       if (req_data->direction) {
+               ven_req.direction = USB_DIR_IN;
+               memset(req_data->p_buffer, 0x00, ven_req.wLength);
+       } else
+               ven_req.direction = USB_DIR_OUT;
+
+       /* set the buffer for read / write */
+       ven_req.pBuff = req_data->p_buffer;
+
+
+       /* call common vendor command request */
+       status = cx231xx_send_vendor_cmd(dev, &ven_req);
+       if (status < 0) {
+               cx231xx_info
+                   ("UsbInterface::sendCommand, failed with status -%d\n",
+                    status);
+       }
+
+       return status;
+}
+EXPORT_SYMBOL_GPL(cx231xx_send_usb_command);
+
+/*
+ * cx231xx_read_ctrl_reg()
+ * reads data from the usb device specifying bRequest and wValue
+ */
+int cx231xx_read_ctrl_reg(struct cx231xx *dev, u8 req, u16 reg,
+                         char *buf, int len)
+{
+       u8 val = 0;
+       int ret;
+       int pipe = usb_rcvctrlpipe(dev->udev, 0);
+
+       if (dev->state & DEV_DISCONNECTED)
+               return -ENODEV;
+
+       if (len > URB_MAX_CTRL_SIZE)
+               return -EINVAL;
+
+       switch (len) {
+       case 1:
+               val = ENABLE_ONE_BYTE;
+               break;
+       case 2:
+               val = ENABLE_TWE_BYTE;
+               break;
+       case 3:
+               val = ENABLE_THREE_BYTE;
+               break;
+       case 4:
+               val = ENABLE_FOUR_BYTE;
+               break;
+       default:
+               val = 0xFF;     /* invalid option */
+       }
+
+       if (val == 0xFF)
+               return -EINVAL;
+
+       if (reg_debug) {
+               cx231xx_isocdbg("(pipe 0x%08x): "
+                               "IN:  %02x %02x %02x %02x %02x %02x %02x %02x ",
+                               pipe,
+                               USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
+                               req, 0, val,
+                               reg & 0xff, reg >> 8, len & 0xff, len >> 8);
+       }
+
+       mutex_lock(&dev->ctrl_urb_lock);
+       ret = usb_control_msg(dev->udev, pipe, req,
+                             USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
+                             val, reg, dev->urb_buf, len, HZ);
+       if (ret < 0) {
+               cx231xx_isocdbg(" failed!\n");
+               /* mutex_unlock(&dev->ctrl_urb_lock); */
+               return ret;
+       }
+
+       if (len)
+               memcpy(buf, dev->urb_buf, len);
+
+       mutex_unlock(&dev->ctrl_urb_lock);
+
+       if (reg_debug) {
+               int byte;
+
+               cx231xx_isocdbg("<<<");
+               for (byte = 0; byte < len; byte++)
+                       cx231xx_isocdbg(" %02x", (unsigned char)buf[byte]);
+               cx231xx_isocdbg("\n");
+       }
+
+       return ret;
+}
+
+int cx231xx_send_vendor_cmd(struct cx231xx *dev,
+                               struct VENDOR_REQUEST_IN *ven_req)
+{
+       int ret;
+       int pipe = 0;
+
+       if (dev->state & DEV_DISCONNECTED)
+               return -ENODEV;
+
+       if ((ven_req->wLength > URB_MAX_CTRL_SIZE))
+               return -EINVAL;
+
+       if (ven_req->direction)
+               pipe = usb_rcvctrlpipe(dev->udev, 0);
+       else
+               pipe = usb_sndctrlpipe(dev->udev, 0);
+
+       if (reg_debug) {
+               int byte;
+
+               cx231xx_isocdbg("(pipe 0x%08x): "
+                               "OUT: %02x %02x %02x %04x %04x %04x >>>",
+                               pipe,
+                               ven_req->
+                               direction | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
+                               ven_req->bRequest, 0, ven_req->wValue,
+                               ven_req->wIndex, ven_req->wLength);
+
+               for (byte = 0; byte < ven_req->wLength; byte++)
+                       cx231xx_isocdbg(" %02x",
+                                       (unsigned char)ven_req->pBuff[byte]);
+               cx231xx_isocdbg("\n");
+       }
+
+       mutex_lock(&dev->ctrl_urb_lock);
+       ret = usb_control_msg(dev->udev, pipe, ven_req->bRequest,
+                             ven_req->
+                             direction | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
+                             ven_req->wValue, ven_req->wIndex, ven_req->pBuff,
+                             ven_req->wLength, HZ);
+       mutex_unlock(&dev->ctrl_urb_lock);
+
+       return ret;
+}
+
+/*
+ * cx231xx_write_ctrl_reg()
+ * sends data to the usb device, specifying bRequest
+ */
+int cx231xx_write_ctrl_reg(struct cx231xx *dev, u8 req, u16 reg, char *buf,
+                          int len)
+{
+       u8 val = 0;
+       int ret;
+       int pipe = usb_sndctrlpipe(dev->udev, 0);
+
+       if (dev->state & DEV_DISCONNECTED)
+               return -ENODEV;
+
+       if ((len < 1) || (len > URB_MAX_CTRL_SIZE))
+               return -EINVAL;
+
+       switch (len) {
+       case 1:
+               val = ENABLE_ONE_BYTE;
+               break;
+       case 2:
+               val = ENABLE_TWE_BYTE;
+               break;
+       case 3:
+               val = ENABLE_THREE_BYTE;
+               break;
+       case 4:
+               val = ENABLE_FOUR_BYTE;
+               break;
+       default:
+               val = 0xFF;     /* invalid option */
+       }
+
+       if (val == 0xFF)
+               return -EINVAL;
+
+       if (reg_debug) {
+               int byte;
+
+               cx231xx_isocdbg("(pipe 0x%08x): "
+                       "OUT: %02x %02x %02x %02x %02x %02x %02x %02x >>>",
+                       pipe,
+                       USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
+                       req, 0, val, reg & 0xff,
+                       reg >> 8, len & 0xff, len >> 8);
+
+               for (byte = 0; byte < len; byte++)
+                       cx231xx_isocdbg(" %02x", (unsigned char)buf[byte]);
+               cx231xx_isocdbg("\n");
+       }
+
+       mutex_lock(&dev->ctrl_urb_lock);
+       memcpy(dev->urb_buf, buf, len);
+       ret = usb_control_msg(dev->udev, pipe, req,
+                             USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
+                             val, reg, dev->urb_buf, len, HZ);
+       mutex_unlock(&dev->ctrl_urb_lock);
+
+       return ret;
+}
+
+/****************************************************************
+*           USB Alternate Setting functions                     *
+*****************************************************************/
+
+int cx231xx_set_video_alternate(struct cx231xx *dev)
+{
+       int errCode, prev_alt = dev->video_mode.alt;
+       unsigned int min_pkt_size = dev->width * 2 + 4;
+       u32 usb_interface_index = 0;
+
+       /* When image size is bigger than a certain value,
+          the frame size should be increased, otherwise, only
+          green screen will be received.
+        */
+       if (dev->width * 2 * dev->height > 720 * 240 * 2)
+               min_pkt_size *= 2;
+
+       if (dev->width > 360) {
+               /* resolutions: 720,704,640 */
+               dev->video_mode.alt = 3;
+       } else if (dev->width > 180) {
+               /* resolutions: 360,352,320,240 */
+               dev->video_mode.alt = 2;
+       } else if (dev->width > 0) {
+               /* resolutions: 180,176,160,128,88 */
+               dev->video_mode.alt = 1;
+       } else {
+               /* Change to alt0 BULK to release USB bandwidth */
+               dev->video_mode.alt = 0;
+       }
+
+       /* Get the correct video interface Index */
+       usb_interface_index =
+           dev->current_pcb_config.hs_config_info[0].interface_info.
+           video_index + 1;
+
+       if (dev->video_mode.alt != prev_alt) {
+               cx231xx_coredbg("minimum isoc packet size: %u (alt=%d)\n",
+                               min_pkt_size, dev->video_mode.alt);
+               dev->video_mode.max_pkt_size =
+                   dev->video_mode.alt_max_pkt_size[dev->video_mode.alt];
+               cx231xx_coredbg("setting alternate %d with wMaxPacketSize=%u\n",
+                               dev->video_mode.alt,
+                               dev->video_mode.max_pkt_size);
+               cx231xx_info
+                   (" setting alt %d with wMaxPktSize=%u , Interface = %d\n",
+                    dev->video_mode.alt, dev->video_mode.max_pkt_size,
+                    usb_interface_index);
+               errCode =
+                   usb_set_interface(dev->udev, usb_interface_index,
+                                     dev->video_mode.alt);
+               if (errCode < 0) {
+                       cx231xx_errdev
+                           ("cannot change alt number to %d (error=%i)\n",
+                            dev->video_mode.alt, errCode);
+                       return errCode;
+               }
+       }
+       return 0;
+}
+
+int cx231xx_set_alt_setting(struct cx231xx *dev, u8 index, u8 alt)
+{
+       int status = 0;
+       u32 usb_interface_index = 0;
+       u32 max_pkt_size = 0;
+
+       switch (index) {
+       case INDEX_TS1:
+               usb_interface_index =
+                   dev->current_pcb_config.hs_config_info[0].interface_info.
+                   ts1_index + 1;
+               dev->video_mode.alt = alt;
+               if (dev->ts1_mode.alt_max_pkt_size != NULL)
+                       max_pkt_size = dev->ts1_mode.max_pkt_size =
+                           dev->ts1_mode.alt_max_pkt_size[dev->ts1_mode.alt];
+               break;
+       case INDEX_TS2:
+               usb_interface_index =
+                   dev->current_pcb_config.hs_config_info[0].interface_info.
+                   ts2_index + 1;
+               break;
+       case INDEX_AUDIO:
+               usb_interface_index =
+                   dev->current_pcb_config.hs_config_info[0].interface_info.
+                   audio_index + 1;
+               dev->adev.alt = alt;
+               if (dev->adev.alt_max_pkt_size != NULL)
+                       max_pkt_size = dev->adev.max_pkt_size =
+                           dev->adev.alt_max_pkt_size[dev->adev.alt];
+               break;
+       case INDEX_VIDEO:
+               usb_interface_index =
+                   dev->current_pcb_config.hs_config_info[0].interface_info.
+                   video_index + 1;
+               dev->video_mode.alt = alt;
+               if (dev->video_mode.alt_max_pkt_size != NULL)
+                       max_pkt_size = dev->video_mode.max_pkt_size =
+                           dev->video_mode.alt_max_pkt_size[dev->video_mode.
+                                                            alt];
+               break;
+       case INDEX_VANC:
+               usb_interface_index =
+                   dev->current_pcb_config.hs_config_info[0].interface_info.
+                   vanc_index + 1;
+               dev->vbi_mode.alt = alt;
+               if (dev->vbi_mode.alt_max_pkt_size != NULL)
+                       max_pkt_size = dev->vbi_mode.max_pkt_size =
+                           dev->vbi_mode.alt_max_pkt_size[dev->vbi_mode.alt];
+               break;
+       case INDEX_HANC:
+               usb_interface_index =
+                   dev->current_pcb_config.hs_config_info[0].interface_info.
+                   hanc_index + 1;
+               dev->sliced_cc_mode.alt = alt;
+               if (dev->sliced_cc_mode.alt_max_pkt_size != NULL)
+                       max_pkt_size = dev->sliced_cc_mode.max_pkt_size =
+                           dev->sliced_cc_mode.alt_max_pkt_size[dev->
+                                                                sliced_cc_mode.
+                                                                alt];
+               break;
+       default:
+               break;
+       }
+
+       if (alt > 0 && max_pkt_size == 0) {
+               cx231xx_errdev
+               ("can't change interface %d alt no. to %d: Max. Pkt size = 0\n",
+               usb_interface_index, alt);
+               return -1;
+       }
+
+       cx231xx_info
+           (" setting alternate %d with wMaxPacketSize=%u , Interface = %d\n",
+            alt, max_pkt_size, usb_interface_index);
+
+       if (usb_interface_index > 0) {
+               status = usb_set_interface(dev->udev, usb_interface_index, alt);
+               if (status < 0) {
+                       cx231xx_errdev
+                       ("can't change interface %d alt no. to %d (err=%i)\n",
+                       usb_interface_index, alt, status);
+                       return status;
+               }
+       }
+
+       return status;
+}
+EXPORT_SYMBOL_GPL(cx231xx_set_alt_setting);
+
+int cx231xx_gpio_set(struct cx231xx *dev, struct cx231xx_reg_seq *gpio)
+{
+       int rc = 0;
+
+       if (!gpio)
+               return rc;
+
+       /* Send GPIO reset sequences specified at board entry */
+       while (gpio->sleep >= 0) {
+               rc = cx231xx_set_gpio_value(dev, gpio->bit, gpio->val);
+               if (rc < 0)
+                       return rc;
+
+               if (gpio->sleep > 0)
+                       msleep(gpio->sleep);
+
+               gpio++;
+       }
+       return rc;
+}
+
+int cx231xx_set_mode(struct cx231xx *dev, enum cx231xx_mode set_mode)
+{
+       if (dev->mode == set_mode)
+               return 0;
+
+       if (set_mode == CX231XX_SUSPEND) {
+               /* Set the chip in power saving mode */
+               dev->mode = set_mode;
+       }
+
+       /* Resource is locked */
+       if (dev->mode != CX231XX_SUSPEND)
+               return -EINVAL;
+
+       dev->mode = set_mode;
+
+       if (dev->mode == CX231XX_DIGITAL_MODE)
+               ;/* Set Digital power mode */
+       else
+               ;/* Set Analog Power mode */
+
+       return 0;
+}
+EXPORT_SYMBOL_GPL(cx231xx_set_mode);
+
+/*****************************************************************
+*                URB Streaming functions                         *
+******************************************************************/
+
+/*
+ * IRQ callback, called by URB callback
+ */
+static void cx231xx_irq_callback(struct urb *urb)
+{
+       struct cx231xx_dmaqueue *dma_q = urb->context;
+       struct cx231xx_video_mode *vmode =
+           container_of(dma_q, struct cx231xx_video_mode, vidq);
+       struct cx231xx *dev = container_of(vmode, struct cx231xx, video_mode);
+       int rc, i;
+
+       switch (urb->status) {
+       case 0:         /* success */
+       case -ETIMEDOUT:        /* NAK */
+               break;
+       case -ECONNRESET:       /* kill */
+       case -ENOENT:
+       case -ESHUTDOWN:
+               return;
+       default:                /* error */
+               cx231xx_isocdbg("urb completition error %d.\n", urb->status);
+               break;
+       }
+
+       /* Copy data from URB */
+       spin_lock(&dev->video_mode.slock);
+       rc = dev->video_mode.isoc_ctl.isoc_copy(dev, urb);
+       spin_unlock(&dev->video_mode.slock);
+
+       /* Reset urb buffers */
+       for (i = 0; i < urb->number_of_packets; i++) {
+               urb->iso_frame_desc[i].status = 0;
+               urb->iso_frame_desc[i].actual_length = 0;
+       }
+       urb->status = 0;
+
+       urb->status = usb_submit_urb(urb, GFP_ATOMIC);
+       if (urb->status) {
+               cx231xx_isocdbg("urb resubmit failed (error=%i)\n",
+                               urb->status);
+       }
+}
+
+/*
+ * Stop and Deallocate URBs
+ */
+void cx231xx_uninit_isoc(struct cx231xx *dev)
+{
+       struct urb *urb;
+       int i;
+
+       cx231xx_isocdbg("cx231xx: called cx231xx_uninit_isoc\n");
+
+       dev->video_mode.isoc_ctl.nfields = -1;
+       for (i = 0; i < dev->video_mode.isoc_ctl.num_bufs; i++) {
+               urb = dev->video_mode.isoc_ctl.urb[i];
+               if (urb) {
+                       if (!irqs_disabled())
+                               usb_kill_urb(urb);
+                       else
+                               usb_unlink_urb(urb);
+
+                       if (dev->video_mode.isoc_ctl.transfer_buffer[i]) {
+                               usb_buffer_free(dev->udev,
+                                               urb->transfer_buffer_length,
+                                               dev->video_mode.isoc_ctl.
+                                               transfer_buffer[i],
+                                               urb->transfer_dma);
+                       }
+                       usb_free_urb(urb);
+                       dev->video_mode.isoc_ctl.urb[i] = NULL;
+               }
+               dev->video_mode.isoc_ctl.transfer_buffer[i] = NULL;
+       }
+
+       kfree(dev->video_mode.isoc_ctl.urb);
+       kfree(dev->video_mode.isoc_ctl.transfer_buffer);
+
+       dev->video_mode.isoc_ctl.urb = NULL;
+       dev->video_mode.isoc_ctl.transfer_buffer = NULL;
+       dev->video_mode.isoc_ctl.num_bufs = 0;
+
+       cx231xx_capture_start(dev, 0, Raw_Video);
+}
+EXPORT_SYMBOL_GPL(cx231xx_uninit_isoc);
+
+/*
+ * Allocate URBs and start IRQ
+ */
+int cx231xx_init_isoc(struct cx231xx *dev, int max_packets,
+                     int num_bufs, int max_pkt_size,
+                     int (*isoc_copy) (struct cx231xx *dev, struct urb *urb))
+{
+       struct cx231xx_dmaqueue *dma_q = &dev->video_mode.vidq;
+       int i;
+       int sb_size, pipe;
+       struct urb *urb;
+       int j, k;
+       int rc;
+
+       cx231xx_isocdbg("cx231xx: called cx231xx_prepare_isoc\n");
+
+       dev->video_input = dev->video_input > 2 ? 2 : dev->video_input;
+
+       cx231xx_info("Setting Video mux to %d\n", dev->video_input);
+       video_mux(dev, dev->video_input);
+
+       /* De-allocates all pending stuff */
+       cx231xx_uninit_isoc(dev);
+
+       dev->video_mode.isoc_ctl.isoc_copy = isoc_copy;
+       dev->video_mode.isoc_ctl.num_bufs = num_bufs;
+       dma_q->pos = 0;
+       dma_q->is_partial_line = 0;
+       dma_q->last_sav = 0;
+       dma_q->current_field = -1;
+       dma_q->field1_done = 0;
+       dma_q->lines_per_field = dev->height / 2;
+       dma_q->bytes_left_in_line = dev->width << 1;
+       dma_q->lines_completed = 0;
+       for (i = 0; i < 8; i++)
+               dma_q->partial_buf[i] = 0;
+
+       dev->video_mode.isoc_ctl.urb =
+           kzalloc(sizeof(void *) * num_bufs, GFP_KERNEL);
+       if (!dev->video_mode.isoc_ctl.urb) {
+               cx231xx_errdev("cannot alloc memory for usb buffers\n");
+               return -ENOMEM;
+       }
+
+       dev->video_mode.isoc_ctl.transfer_buffer =
+           kzalloc(sizeof(void *) * num_bufs, GFP_KERNEL);
+       if (!dev->video_mode.isoc_ctl.transfer_buffer) {
+               cx231xx_errdev("cannot allocate memory for usbtransfer\n");
+               kfree(dev->video_mode.isoc_ctl.urb);
+               return -ENOMEM;
+       }
+
+       dev->video_mode.isoc_ctl.max_pkt_size = max_pkt_size;
+       dev->video_mode.isoc_ctl.buf = NULL;
+
+       sb_size = max_packets * dev->video_mode.isoc_ctl.max_pkt_size;
+
+       /* allocate urbs and transfer buffers */
+       for (i = 0; i < dev->video_mode.isoc_ctl.num_bufs; i++) {
+               urb = usb_alloc_urb(max_packets, GFP_KERNEL);
+               if (!urb) {
+                       cx231xx_err("cannot alloc isoc_ctl.urb %i\n", i);
+                       cx231xx_uninit_isoc(dev);
+                       return -ENOMEM;
+               }
+               dev->video_mode.isoc_ctl.urb[i] = urb;
+
+               dev->video_mode.isoc_ctl.transfer_buffer[i] =
+                   usb_buffer_alloc(dev->udev, sb_size, GFP_KERNEL,
+                                    &urb->transfer_dma);
+               if (!dev->video_mode.isoc_ctl.transfer_buffer[i]) {
+                       cx231xx_err("unable to allocate %i bytes for transfer"
+                                   " buffer %i%s\n",
+                                   sb_size, i,
+                                   in_interrupt() ? " while in int" : "");
+                       cx231xx_uninit_isoc(dev);
+                       return -ENOMEM;
+               }
+               memset(dev->video_mode.isoc_ctl.transfer_buffer[i], 0, sb_size);
+
+               pipe =
+                   usb_rcvisocpipe(dev->udev, dev->video_mode.end_point_addr);
+
+               usb_fill_int_urb(urb, dev->udev, pipe,
+                                dev->video_mode.isoc_ctl.transfer_buffer[i],
+                                sb_size, cx231xx_irq_callback, dma_q, 1);
+
+               urb->number_of_packets = max_packets;
+               urb->transfer_flags = URB_ISO_ASAP;
+
+               k = 0;
+               for (j = 0; j < max_packets; j++) {
+                       urb->iso_frame_desc[j].offset = k;
+                       urb->iso_frame_desc[j].length =
+                           dev->video_mode.isoc_ctl.max_pkt_size;
+                       k += dev->video_mode.isoc_ctl.max_pkt_size;
+               }
+       }
+
+       init_waitqueue_head(&dma_q->wq);
+
+       /* submit urbs and enables IRQ */
+       for (i = 0; i < dev->video_mode.isoc_ctl.num_bufs; i++) {
+               rc = usb_submit_urb(dev->video_mode.isoc_ctl.urb[i],
+                                   GFP_ATOMIC);
+               if (rc) {
+                       cx231xx_err("submit of urb %i failed (error=%i)\n", i,
+                                   rc);
+                       cx231xx_uninit_isoc(dev);
+                       return rc;
+               }
+       }
+
+       cx231xx_capture_start(dev, 1, Raw_Video);
+
+       return 0;
+}
+EXPORT_SYMBOL_GPL(cx231xx_init_isoc);
+
+/*****************************************************************
+*             Device Init/UnInit functions                       *
+******************************************************************/
+int cx231xx_dev_init(struct cx231xx *dev)
+{
+       int errCode = 0;
+
+       /* Initialize I2C bus */
+
+       /* External Master 1 Bus */
+       dev->i2c_bus[0].nr = 0;
+       dev->i2c_bus[0].dev = dev;
+       dev->i2c_bus[0].i2c_period = I2C_SPEED_1M;      /* 1MHz */
+       dev->i2c_bus[0].i2c_nostop = 0;
+       dev->i2c_bus[0].i2c_reserve = 0;
+
+       /* External Master 2 Bus */
+       dev->i2c_bus[1].nr = 1;
+       dev->i2c_bus[1].dev = dev;
+       dev->i2c_bus[1].i2c_period = I2C_SPEED_1M;      /* 1MHz */
+       dev->i2c_bus[1].i2c_nostop = 0;
+       dev->i2c_bus[1].i2c_reserve = 0;
+
+       /* Internal Master 3 Bus */
+       dev->i2c_bus[2].nr = 2;
+       dev->i2c_bus[2].dev = dev;
+       dev->i2c_bus[2].i2c_period = I2C_SPEED_400K;    /* 400kHz */
+       dev->i2c_bus[2].i2c_nostop = 0;
+       dev->i2c_bus[2].i2c_reserve = 0;
+
+       /* register I2C buses */
+       cx231xx_i2c_register(&dev->i2c_bus[0]);
+       cx231xx_i2c_register(&dev->i2c_bus[1]);
+       cx231xx_i2c_register(&dev->i2c_bus[2]);
+
+       /* init hardware */
+       /* Note : with out calling set power mode function,
+       afe can not be set up correctly */
+       errCode = cx231xx_set_power_mode(dev, POLARIS_AVMODE_ANALOGT_TV);
+       if (errCode < 0) {
+               cx231xx_errdev
+                   ("%s: Failed to set Power - errCode [%d]!\n",
+                    __func__, errCode);
+               return errCode;
+       }
+
+       /* initialize Colibri block */
+       errCode = cx231xx_afe_init_super_block(dev, 0x23c);
+       if (errCode < 0) {
+               cx231xx_errdev
+                   ("%s: cx231xx_afe init super block - errCode [%d]!\n",
+                    __func__, errCode);
+               return errCode;
+       }
+       errCode = cx231xx_afe_init_channels(dev);
+       if (errCode < 0) {
+               cx231xx_errdev
+                   ("%s: cx231xx_afe init channels - errCode [%d]!\n",
+                    __func__, errCode);
+               return errCode;
+       }
+
+       /* Set DIF in By pass mode */
+       errCode = cx231xx_dif_set_standard(dev, DIF_USE_BASEBAND);
+       if (errCode < 0) {
+               cx231xx_errdev
+                   ("%s: cx231xx_dif set to By pass mode - errCode [%d]!\n",
+                    __func__, errCode);
+               return errCode;
+       }
+
+       /* I2S block related functions */
+       errCode = cx231xx_i2s_blk_initialize(dev);
+       if (errCode < 0) {
+               cx231xx_errdev
+                   ("%s: cx231xx_i2s block initialize - errCode [%d]!\n",
+                    __func__, errCode);
+               return errCode;
+       }
+
+       /* init control pins */
+       errCode = cx231xx_init_ctrl_pin_status(dev);
+       if (errCode < 0) {
+               cx231xx_errdev("%s: cx231xx_init ctrl pins - errCode [%d]!\n",
+                              __func__, errCode);
+               return errCode;
+       }
+
+       /* set AGC mode to Analog */
+       errCode = cx231xx_set_agc_analog_digital_mux_select(dev, 1);
+       if (errCode < 0) {
+               cx231xx_errdev
+                   ("%s: cx231xx_AGC mode to Analog - errCode [%d]!\n",
+                    __func__, errCode);
+               return errCode;
+       }
+
+       /* set all alternate settings to zero initially */
+       cx231xx_set_alt_setting(dev, INDEX_VIDEO, 0);
+       cx231xx_set_alt_setting(dev, INDEX_VANC, 0);
+       cx231xx_set_alt_setting(dev, INDEX_HANC, 0);
+       if (dev->board.has_dvb)
+               cx231xx_set_alt_setting(dev, INDEX_TS1, 0);
+
+       /* set the I2C master port to 3 on channel 1 */
+       errCode = cx231xx_enable_i2c_for_tuner(dev, I2C_3);
+
+       return errCode;
+}
+EXPORT_SYMBOL_GPL(cx231xx_dev_init);
+
+void cx231xx_dev_uninit(struct cx231xx *dev)
+{
+       /* Un Initialize I2C bus */
+       cx231xx_i2c_unregister(&dev->i2c_bus[2]);
+       cx231xx_i2c_unregister(&dev->i2c_bus[1]);
+       cx231xx_i2c_unregister(&dev->i2c_bus[0]);
+}
+EXPORT_SYMBOL_GPL(cx231xx_dev_uninit);
+
+/*****************************************************************
+*              G P I O related functions                         *
+******************************************************************/
+int cx231xx_send_gpio_cmd(struct cx231xx *dev, u32 gpio_bit, u8 * gpio_val,
+                         u8 len, u8 request, u8 direction)
+{
+       int status = 0;
+       struct VENDOR_REQUEST_IN ven_req;
+
+       /* Set wValue */
+       ven_req.wValue = (u16) (gpio_bit >> 16 & 0xffff);
+
+       /* set request */
+       if (!request) {
+               if (direction)
+                       ven_req.bRequest = VRT_GET_GPIO;        /* 0x8 gpio */
+               else
+                       ven_req.bRequest = VRT_SET_GPIO;        /* 0x9 gpio */
+       } else {
+               if (direction)
+                       ven_req.bRequest = VRT_GET_GPIE;        /* 0xa gpie */
+               else
+                       ven_req.bRequest = VRT_SET_GPIE;        /* 0xb gpie */
+       }
+
+       /* set index value */
+       ven_req.wIndex = (u16) (gpio_bit & 0xffff);
+
+       /* set wLength value */
+       ven_req.wLength = len;
+
+       /* set bData value */
+       ven_req.bData = 0;
+
+       /* set the buffer for read / write */
+       ven_req.pBuff = gpio_val;
+
+       /* set the direction */
+       if (direction) {
+               ven_req.direction = USB_DIR_IN;
+               memset(ven_req.pBuff, 0x00, ven_req.wLength);
+       } else
+               ven_req.direction = USB_DIR_OUT;
+
+
+       /* call common vendor command request */
+       status = cx231xx_send_vendor_cmd(dev, &ven_req);
+       if (status < 0) {
+               cx231xx_info
+                   ("UsbInterface::sendCommand, failed with status -%d\n",
+                    status);
+       }
+
+       return status;
+}
+EXPORT_SYMBOL_GPL(cx231xx_send_gpio_cmd);
+
+/*****************************************************************
+ *    C O N T R O L - Register R E A D / W R I T E functions     *
+ *****************************************************************/
+int cx231xx_mode_register(struct cx231xx *dev, u16 address, u32 mode)
+{
+       u8 value[4] = { 0x0, 0x0, 0x0, 0x0 };
+       u32 tmp = 0;
+       int status = 0;
+
+       status =
+           cx231xx_read_ctrl_reg(dev, VRT_GET_REGISTER, address, value, 4);
+       if (status < 0)
+               return status;
+
+       tmp = *((u32 *) value);
+       tmp |= mode;
+
+       value[0] = (u8) tmp;
+       value[1] = (u8) (tmp >> 8);
+       value[2] = (u8) (tmp >> 16);
+       value[3] = (u8) (tmp >> 24);
+
+       status =
+           cx231xx_write_ctrl_reg(dev, VRT_SET_REGISTER, address, value, 4);
+
+       return status;
+}
+
+/*****************************************************************
+ *            I 2 C Internal C O N T R O L   functions           *
+ *****************************************************************/
+int cx231xx_read_i2c_data(struct cx231xx *dev, u8 dev_addr, u16 saddr,
+                         u8 saddr_len, u32 *data, u8 data_len)
+{
+       int status = 0;
+       struct cx231xx_i2c_xfer_data req_data;
+       u8 value[4] = { 0, 0, 0, 0 };
+
+       if (saddr_len == 0)
+               saddr = 0;
+       else if (saddr_len == 0)
+               saddr &= 0xff;
+
+       /* prepare xfer_data struct */
+       req_data.dev_addr = dev_addr >> 1;
+       req_data.direction = I2C_M_RD;
+       req_data.saddr_len = saddr_len;
+       req_data.saddr_dat = saddr;
+       req_data.buf_size = data_len;
+       req_data.p_buffer = (u8 *) value;
+
+       /* usb send command */
+       status = dev->cx231xx_send_usb_command(&dev->i2c_bus[0], &req_data);
+
+       if (status >= 0) {
+               /* Copy the data read back to main buffer */
+               if (data_len == 1)
+                       *data = value[0];
+               else
+                       *data =
+                           value[0] | value[1] << 8 | value[2] << 16 | value[3]
+                           << 24;
+       }
+
+       return status;
+}
+
+int cx231xx_write_i2c_data(struct cx231xx *dev, u8 dev_addr, u16 saddr,
+                          u8 saddr_len, u32 data, u8 data_len)
+{
+       int status = 0;
+       u8 value[4] = { 0, 0, 0, 0 };
+       struct cx231xx_i2c_xfer_data req_data;
+
+       value[0] = (u8) data;
+       value[1] = (u8) (data >> 8);
+       value[2] = (u8) (data >> 16);
+       value[3] = (u8) (data >> 24);
+
+       if (saddr_len == 0)
+               saddr = 0;
+       else if (saddr_len == 0)
+               saddr &= 0xff;
+
+       /* prepare xfer_data struct */
+       req_data.dev_addr = dev_addr >> 1;
+       req_data.direction = 0;
+       req_data.saddr_len = saddr_len;
+       req_data.saddr_dat = saddr;
+       req_data.buf_size = data_len;
+       req_data.p_buffer = value;
+
+       /* usb send command */
+       status = dev->cx231xx_send_usb_command(&dev->i2c_bus[0], &req_data);
+
+       return status;
+}
+
+int cx231xx_reg_mask_write(struct cx231xx *dev, u8 dev_addr, u8 size,
+                          u16 register_address, u8 bit_start, u8 bit_end,
+                          u32 value)
+{
+       int status = 0;
+       u32 tmp;
+       u32 mask = 0;
+       int i;
+
+       if (bit_start > (size - 1) || bit_end > (size - 1))
+               return -1;
+
+       if (size == 8) {
+               status =
+                   cx231xx_read_i2c_data(dev, dev_addr, register_address, 2,
+                                         &tmp, 1);
+       } else {
+               status =
+                   cx231xx_read_i2c_data(dev, dev_addr, register_address, 2,
+                                         &tmp, 4);
+       }
+
+       if (status < 0)
+               return status;
+
+       mask = 1 << bit_end;
+       for (i = bit_end; i > bit_start && i > 0; i--)
+               mask = mask + (1 << (i - 1));
+
+       value <<= bit_start;
+
+       if (size == 8) {
+               tmp &= ~mask;
+               tmp |= value;
+               tmp &= 0xff;
+               status =
+                   cx231xx_write_i2c_data(dev, dev_addr, register_address, 2,
+                                          tmp, 1);
+       } else {
+               tmp &= ~mask;
+               tmp |= value;
+               status =
+                   cx231xx_write_i2c_data(dev, dev_addr, register_address, 2,
+                                          tmp, 4);
+       }
+
+       return status;
+}
+
+int cx231xx_read_modify_write_i2c_dword(struct cx231xx *dev, u8 dev_addr,
+                                       u16 saddr, u32 mask, u32 value)
+{
+       u32 temp;
+       int status = 0;
+
+       status = cx231xx_read_i2c_data(dev, dev_addr, saddr, 2, &temp, 4);
+
+       if (status < 0)
+               return status;
+
+       temp &= ~mask;
+       temp |= value;
+
+       status = cx231xx_write_i2c_data(dev, dev_addr, saddr, 2, temp, 4);
+
+       return status;
+}
+
+u32 cx231xx_set_field(u32 field_mask, u32 data)
+{
+       u32 temp;
+
+       for (temp = field_mask; (temp & 1) == 0; temp >>= 1)
+               data <<= 1;
+
+       return data;
+}
diff --git a/drivers/media/video/cx231xx/cx231xx-dvb.c b/drivers/media/video/cx231xx/cx231xx-dvb.c
new file mode 100644 (file)
index 0000000..c5082a4
--- /dev/null
@@ -0,0 +1,559 @@
+/*
+ DVB device driver for cx231xx
+
+ Copyright (C) 2008 <srinivasa.deevi at conexant dot com>
+               Based on em28xx driver
+
+ This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <linux/kernel.h>
+#include <linux/usb.h>
+
+#include "cx231xx.h"
+#include <media/v4l2-common.h>
+#include <media/videobuf-vmalloc.h>
+
+#include "xc5000.h"
+#include "dvb_dummy_fe.h"
+
+MODULE_DESCRIPTION("driver for cx231xx based DVB cards");
+MODULE_AUTHOR("Srinivasa Deevi <srinivasa.deevi@conexant.com>");
+MODULE_LICENSE("GPL");
+
+static unsigned int debug;
+module_param(debug, int, 0644);
+MODULE_PARM_DESC(debug, "enable debug messages [dvb]");
+
+DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
+
+#define dprintk(level, fmt, arg...) do {                       \
+if (debug >= level)                                            \
+       printk(KERN_DEBUG "%s/2-dvb: " fmt, dev->name, ## arg); \
+} while (0)
+
+#define CX231XX_DVB_NUM_BUFS 5
+#define CX231XX_DVB_MAX_PACKETSIZE 564
+#define CX231XX_DVB_MAX_PACKETS 64
+
+struct cx231xx_dvb {
+       struct dvb_frontend *frontend;
+
+       /* feed count management */
+       struct mutex lock;
+       int nfeeds;
+
+       /* general boilerplate stuff */
+       struct dvb_adapter adapter;
+       struct dvb_demux demux;
+       struct dmxdev dmxdev;
+       struct dmx_frontend fe_hw;
+       struct dmx_frontend fe_mem;
+       struct dvb_net net;
+};
+
+static inline void print_err_status(struct cx231xx *dev, int packet, int status)
+{
+       char *errmsg = "Unknown";
+
+       switch (status) {
+       case -ENOENT:
+               errmsg = "unlinked synchronuously";
+               break;
+       case -ECONNRESET:
+               errmsg = "unlinked asynchronuously";
+               break;
+       case -ENOSR:
+               errmsg = "Buffer error (overrun)";
+               break;
+       case -EPIPE:
+               errmsg = "Stalled (device not responding)";
+               break;
+       case -EOVERFLOW:
+               errmsg = "Babble (bad cable?)";
+               break;
+       case -EPROTO:
+               errmsg = "Bit-stuff error (bad cable?)";
+               break;
+       case -EILSEQ:
+               errmsg = "CRC/Timeout (could be anything)";
+               break;
+       case -ETIME:
+               errmsg = "Device does not respond";
+               break;
+       }
+       if (packet < 0) {
+               dprintk(1, "URB status %d [%s].\n", status, errmsg);
+       } else {
+               dprintk(1, "URB packet %d, status %d [%s].\n",
+                       packet, status, errmsg);
+       }
+}
+
+static inline int dvb_isoc_copy(struct cx231xx *dev, struct urb *urb)
+{
+       int i;
+
+       if (!dev)
+               return 0;
+
+       if ((dev->state & DEV_DISCONNECTED) || (dev->state & DEV_MISCONFIGURED))
+               return 0;
+
+       if (urb->status < 0) {
+               print_err_status(dev, -1, urb->status);
+               if (urb->status == -ENOENT)
+                       return 0;
+       }
+
+       for (i = 0; i < urb->number_of_packets; i++) {
+               int status = urb->iso_frame_desc[i].status;
+
+               if (status < 0) {
+                       print_err_status(dev, i, status);
+                       if (urb->iso_frame_desc[i].status != -EPROTO)
+                               continue;
+               }
+
+               dvb_dmx_swfilter(&dev->dvb->demux, urb->transfer_buffer +
+                                urb->iso_frame_desc[i].offset,
+                                urb->iso_frame_desc[i].actual_length);
+       }
+
+       return 0;
+}
+
+static int start_streaming(struct cx231xx_dvb *dvb)
+{
+       int rc;
+       struct cx231xx *dev = dvb->adapter.priv;
+
+       usb_set_interface(dev->udev, 0, 1);
+       rc = cx231xx_set_mode(dev, CX231XX_DIGITAL_MODE);
+       if (rc < 0)
+               return rc;
+
+       return cx231xx_init_isoc(dev, CX231XX_DVB_MAX_PACKETS,
+                                CX231XX_DVB_NUM_BUFS,
+                                CX231XX_DVB_MAX_PACKETSIZE, dvb_isoc_copy);
+}
+
+static int stop_streaming(struct cx231xx_dvb *dvb)
+{
+       struct cx231xx *dev = dvb->adapter.priv;
+
+       cx231xx_uninit_isoc(dev);
+
+       cx231xx_set_mode(dev, CX231XX_SUSPEND);
+
+       return 0;
+}
+
+static int start_feed(struct dvb_demux_feed *feed)
+{
+       struct dvb_demux *demux = feed->demux;
+       struct cx231xx_dvb *dvb = demux->priv;
+       int rc, ret;
+
+       if (!demux->dmx.frontend)
+               return -EINVAL;
+
+       mutex_lock(&dvb->lock);
+       dvb->nfeeds++;
+       rc = dvb->nfeeds;
+
+       if (dvb->nfeeds == 1) {
+               ret = start_streaming(dvb);
+               if (ret < 0)
+                       rc = ret;
+       }
+
+       mutex_unlock(&dvb->lock);
+       return rc;
+}
+
+static int stop_feed(struct dvb_demux_feed *feed)
+{
+       struct dvb_demux *demux = feed->demux;
+       struct cx231xx_dvb *dvb = demux->priv;
+       int err = 0;
+
+       mutex_lock(&dvb->lock);
+       dvb->nfeeds--;
+
+       if (0 == dvb->nfeeds)
+               err = stop_streaming(dvb);
+
+       mutex_unlock(&dvb->lock);
+       return err;
+}
+
+/* ------------------------------------------------------------------ */
+static int cx231xx_dvb_bus_ctrl(struct dvb_frontend *fe, int acquire)
+{
+       struct cx231xx *dev = fe->dvb->priv;
+
+       if (acquire)
+               return cx231xx_set_mode(dev, CX231XX_DIGITAL_MODE);
+       else
+               return cx231xx_set_mode(dev, CX231XX_SUSPEND);
+}
+
+/* ------------------------------------------------------------------ */
+
+static struct xc5000_config cnxt_rde250_tunerconfig = {
+       .i2c_address = 0x61,
+       .if_khz = 5380,
+};
+
+/* ------------------------------------------------------------------ */
+#if 0
+static int attach_xc5000(u8 addr, struct cx231xx *dev)
+{
+
+       struct dvb_frontend *fe;
+       struct xc5000_config cfg;
+
+       memset(&cfg, 0, sizeof(cfg));
+       cfg.i2c_adap = &dev->i2c_bus[1].i2c_adap;
+       cfg.i2c_addr = addr;
+
+       if (!dev->dvb->frontend) {
+               printk(KERN_ERR "%s/2: dvb frontend not attached. "
+                      "Can't attach xc5000\n", dev->name);
+               return -EINVAL;
+       }
+
+       fe = dvb_attach(xc5000_attach, dev->dvb->frontend, &cfg);
+       if (!fe) {
+               printk(KERN_ERR "%s/2: xc5000 attach failed\n", dev->name);
+               dvb_frontend_detach(dev->dvb->frontend);
+               dev->dvb->frontend = NULL;
+               return -EINVAL;
+       }
+
+       printk(KERN_INFO "%s/2: xc5000 attached\n", dev->name);
+
+       return 0;
+}
+#endif
+
+int cx231xx_set_analog_freq(struct cx231xx *dev, u32 freq)
+{
+       int status = 0;
+
+       if ((dev->dvb != NULL) && (dev->dvb->frontend != NULL)) {
+
+               struct dvb_tuner_ops *dops = &dev->dvb->frontend->ops.tuner_ops;
+
+               if (dops->set_analog_params != NULL) {
+                       struct analog_parameters params;
+
+                       params.frequency = freq;
+                       params.std = dev->norm;
+                       params.mode = 0;        /* 0- Air; 1 - cable */
+                       /*params.audmode = ;       */
+
+                       /* Set the analog parameters to set the frequency */
+                       cx231xx_info("Setting Frequency for XC5000\n");
+                       dops->set_analog_params(dev->dvb->frontend, &params);
+               }
+
+       }
+
+       return status;
+}
+
+int cx231xx_reset_analog_tuner(struct cx231xx *dev)
+{
+       int status = 0;
+
+       if ((dev->dvb != NULL) && (dev->dvb->frontend != NULL)) {
+
+               struct dvb_tuner_ops *dops = &dev->dvb->frontend->ops.tuner_ops;
+
+               if (dops->init != NULL && !dev->xc_fw_load_done) {
+
+                       cx231xx_info("Reloading firmware for XC5000\n");
+                       status = dops->init(dev->dvb->frontend);
+                       if (status == 0) {
+                               dev->xc_fw_load_done = 1;
+                               cx231xx_info
+                                   ("XC5000 firmware download completed\n");
+                       } else {
+                               dev->xc_fw_load_done = 0;
+                               cx231xx_info
+                                   ("XC5000 firmware download failed !!!\n");
+                       }
+               }
+
+       }
+
+       return status;
+}
+
+/* ------------------------------------------------------------------ */
+
+static int register_dvb(struct cx231xx_dvb *dvb,
+                       struct module *module,
+                       struct cx231xx *dev, struct device *device)
+{
+       int result;
+
+       mutex_init(&dvb->lock);
+
+       /* register adapter */
+       result = dvb_register_adapter(&dvb->adapter, dev->name, module, device,
+                                     adapter_nr);
+       if (result < 0) {
+               printk(KERN_WARNING
+                      "%s: dvb_register_adapter failed (errno = %d)\n",
+                      dev->name, result);
+               goto fail_adapter;
+       }
+
+       /* Ensure all frontends negotiate bus access */
+       dvb->frontend->ops.ts_bus_ctrl = cx231xx_dvb_bus_ctrl;
+
+       dvb->adapter.priv = dev;
+
+       /* register frontend */
+       result = dvb_register_frontend(&dvb->adapter, dvb->frontend);
+       if (result < 0) {
+               printk(KERN_WARNING
+                      "%s: dvb_register_frontend failed (errno = %d)\n",
+                      dev->name, result);
+               goto fail_frontend;
+       }
+
+       /* register demux stuff */
+       dvb->demux.dmx.capabilities =
+           DMX_TS_FILTERING | DMX_SECTION_FILTERING |
+           DMX_MEMORY_BASED_FILTERING;
+       dvb->demux.priv = dvb;
+       dvb->demux.filternum = 256;
+       dvb->demux.feednum = 256;
+       dvb->demux.start_feed = start_feed;
+       dvb->demux.stop_feed = stop_feed;
+
+       result = dvb_dmx_init(&dvb->demux);
+       if (result < 0) {
+               printk(KERN_WARNING "%s: dvb_dmx_init failed (errno = %d)\n",
+                      dev->name, result);
+               goto fail_dmx;
+       }
+
+       dvb->dmxdev.filternum = 256;
+       dvb->dmxdev.demux = &dvb->demux.dmx;
+       dvb->dmxdev.capabilities = 0;
+       result = dvb_dmxdev_init(&dvb->dmxdev, &dvb->adapter);
+       if (result < 0) {
+               printk(KERN_WARNING "%s: dvb_dmxdev_init failed (errno = %d)\n",
+                      dev->name, result);
+               goto fail_dmxdev;
+       }
+
+       dvb->fe_hw.source = DMX_FRONTEND_0;
+       result = dvb->demux.dmx.add_frontend(&dvb->demux.dmx, &dvb->fe_hw);
+       if (result < 0) {
+               printk(KERN_WARNING
+                      "%s: add_frontend failed (DMX_FRONTEND_0, errno = %d)\n",
+                      dev->name, result);
+               goto fail_fe_hw;
+       }
+
+       dvb->fe_mem.source = DMX_MEMORY_FE;
+       result = dvb->demux.dmx.add_frontend(&dvb->demux.dmx, &dvb->fe_mem);
+       if (result < 0) {
+               printk(KERN_WARNING
+                      "%s: add_frontend failed (DMX_MEMORY_FE, errno = %d)\n",
+                      dev->name, result);
+               goto fail_fe_mem;
+       }
+
+       result = dvb->demux.dmx.connect_frontend(&dvb->demux.dmx, &dvb->fe_hw);
+       if (result < 0) {
+               printk(KERN_WARNING
+                      "%s: connect_frontend failed (errno = %d)\n", dev->name,
+                      result);
+               goto fail_fe_conn;
+       }
+
+       /* register network adapter */
+       dvb_net_init(&dvb->adapter, &dvb->net, &dvb->demux.dmx);
+       return 0;
+
+fail_fe_conn:
+       dvb->demux.dmx.remove_frontend(&dvb->demux.dmx, &dvb->fe_mem);
+fail_fe_mem:
+       dvb->demux.dmx.remove_frontend(&dvb->demux.dmx, &dvb->fe_hw);
+fail_fe_hw:
+       dvb_dmxdev_release(&dvb->dmxdev);
+fail_dmxdev:
+       dvb_dmx_release(&dvb->demux);
+fail_dmx:
+       dvb_unregister_frontend(dvb->frontend);
+fail_frontend:
+       dvb_frontend_detach(dvb->frontend);
+       dvb_unregister_adapter(&dvb->adapter);
+fail_adapter:
+       return result;
+}
+
+static void unregister_dvb(struct cx231xx_dvb *dvb)
+{
+       dvb_net_release(&dvb->net);
+       dvb->demux.dmx.remove_frontend(&dvb->demux.dmx, &dvb->fe_mem);
+       dvb->demux.dmx.remove_frontend(&dvb->demux.dmx, &dvb->fe_hw);
+       dvb_dmxdev_release(&dvb->dmxdev);
+       dvb_dmx_release(&dvb->demux);
+       dvb_unregister_frontend(dvb->frontend);
+       dvb_frontend_detach(dvb->frontend);
+       dvb_unregister_adapter(&dvb->adapter);
+}
+
+static int dvb_init(struct cx231xx *dev)
+{
+       int result = 0;
+       struct cx231xx_dvb *dvb;
+
+       if (!dev->board.has_dvb) {
+               /* This device does not support the extension */
+               return 0;
+       }
+
+       dvb = kzalloc(sizeof(struct cx231xx_dvb), GFP_KERNEL);
+
+       if (dvb == NULL) {
+               printk(KERN_INFO "cx231xx_dvb: memory allocation failed\n");
+               return -ENOMEM;
+       }
+       dev->dvb = dvb;
+       dev->cx231xx_set_analog_freq = cx231xx_set_analog_freq;
+       dev->cx231xx_reset_analog_tuner = cx231xx_reset_analog_tuner;
+
+       cx231xx_set_mode(dev, CX231XX_DIGITAL_MODE);
+       /* init frontend */
+       switch (dev->model) {
+       case CX231XX_BOARD_CNXT_RDE_250:
+
+               /* dev->dvb->frontend = dvb_attach(s5h1411_attach,
+                  &dvico_s5h1411_config,
+                  &dev->i2c_bus[1].i2c_adap); */
+               dev->dvb->frontend = dvb_attach(dvb_dummy_fe_ofdm_attach);
+
+               if (dev->dvb->frontend == NULL) {
+                       printk(DRIVER_NAME
+                              ": Failed to attach dummy front end\n");
+                       result = -EINVAL;
+                       goto out_free;
+               }
+
+               /* define general-purpose callback pointer */
+               dvb->frontend->callback = cx231xx_tuner_callback;
+
+               if (dvb_attach(xc5000_attach, dev->dvb->frontend,
+                              &dev->i2c_bus[1].i2c_adap,
+                              &cnxt_rde250_tunerconfig) < 0) {
+                       result = -EINVAL;
+                       goto out_free;
+               }
+
+               break;
+       case CX231XX_BOARD_CNXT_RDU_250:
+
+               dev->dvb->frontend = dvb_attach(dvb_dummy_fe_ofdm_attach);
+
+               if (dev->dvb->frontend == NULL) {
+                       printk(DRIVER_NAME
+                              ": Failed to attach dummy front end\n");
+                       result = -EINVAL;
+                       goto out_free;
+               }
+
+               /* define general-purpose callback pointer */
+               dvb->frontend->callback = cx231xx_tuner_callback;
+
+               if (dvb_attach(xc5000_attach, dev->dvb->frontend,
+                              &dev->i2c_bus[1].i2c_adap,
+                              &cnxt_rde250_tunerconfig) < 0) {
+                       result = -EINVAL;
+                       goto out_free;
+               }
+               break;
+
+       default:
+               printk(KERN_ERR "%s/2: The frontend of your DVB/ATSC card"
+                      " isn't supported yet\n", dev->name);
+               break;
+       }
+       if (NULL == dvb->frontend) {
+               printk(KERN_ERR
+                      "%s/2: frontend initialization failed\n", dev->name);
+               result = -EINVAL;
+               goto out_free;
+       }
+
+       /* register everything */
+       result = register_dvb(dvb, THIS_MODULE, dev, &dev->udev->dev);
+
+       if (result < 0)
+               goto out_free;
+
+       cx231xx_set_mode(dev, CX231XX_SUSPEND);
+       printk(KERN_INFO "Successfully loaded cx231xx-dvb\n");
+       return 0;
+
+out_free:
+       cx231xx_set_mode(dev, CX231XX_SUSPEND);
+       kfree(dvb);
+       dev->dvb = NULL;
+       return result;
+}
+
+static int dvb_fini(struct cx231xx *dev)
+{
+       if (!dev->board.has_dvb) {
+               /* This device does not support the extension */
+               return 0;
+       }
+
+       if (dev->dvb) {
+               unregister_dvb(dev->dvb);
+               dev->dvb = NULL;
+       }
+
+       return 0;
+}
+
+static struct cx231xx_ops dvb_ops = {
+       .id = CX231XX_DVB,
+       .name = "Cx231xx dvb Extension",
+       .init = dvb_init,
+       .fini = dvb_fini,
+};
+
+static int __init cx231xx_dvb_register(void)
+{
+       return cx231xx_register_extension(&dvb_ops);
+}
+
+static void __exit cx231xx_dvb_unregister(void)
+{
+       cx231xx_unregister_extension(&dvb_ops);
+}
+
+module_init(cx231xx_dvb_register);
+module_exit(cx231xx_dvb_unregister);
diff --git a/drivers/media/video/cx231xx/cx231xx-i2c.c b/drivers/media/video/cx231xx/cx231xx-i2c.c
new file mode 100644 (file)
index 0000000..b4a03d8
--- /dev/null
@@ -0,0 +1,555 @@
+/*
+   cx231xx-i2c.c - driver for Conexant Cx23100/101/102 USB video capture devices
+
+   Copyright (C) 2008 <srinivasa.deevi at conexant dot com>
+               Based on em28xx driver
+               Based on Cx23885 driver
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/usb.h>
+#include <linux/i2c.h>
+#include <media/v4l2-common.h>
+#include <media/tuner.h>
+
+#include "cx231xx.h"
+
+/* ----------------------------------------------------------- */
+
+static unsigned int i2c_scan;
+module_param(i2c_scan, int, 0444);
+MODULE_PARM_DESC(i2c_scan, "scan i2c bus at insmod time");
+
+static unsigned int i2c_debug;
+module_param(i2c_debug, int, 0644);
+MODULE_PARM_DESC(i2c_debug, "enable debug messages [i2c]");
+
+#define dprintk1(lvl, fmt, args...)                    \
+do {                                                   \
+       if (i2c_debug >= lvl) {                         \
+               printk(fmt, ##args);                    \
+               }                                       \
+} while (0)
+
+#define dprintk2(lvl, fmt, args...)                    \
+do {                                                   \
+       if (i2c_debug >= lvl) {                         \
+               printk(KERN_DEBUG "%s at %s: " fmt,     \
+                      dev->name, __func__ , ##args);   \
+      }                                                \
+} while (0)
+
+/*
+ * cx231xx_i2c_send_bytes()
+ */
+int cx231xx_i2c_send_bytes(struct i2c_adapter *i2c_adap,
+                          const struct i2c_msg *msg)
+{
+       struct cx231xx_i2c *bus = i2c_adap->algo_data;
+       struct cx231xx *dev = bus->dev;
+       struct cx231xx_i2c_xfer_data req_data;
+       int status = 0;
+       u16 size = 0;
+       u8 loop = 0;
+       u8 saddr_len = 1;
+       u8 *buf_ptr = NULL;
+       u16 saddr = 0;
+       u8 need_gpio = 0;
+
+       if ((bus->nr == 1) && (msg->addr == 0x61)
+           && (dev->tuner_type == TUNER_XC5000)) {
+
+               size = msg->len;
+
+               if (size == 2) {        /* register write sub addr */
+                       /* Just writing sub address will cause problem
+                       * to XC5000. So ignore the request */
+                       return 0;
+               } else if (size == 4) { /* register write with sub addr */
+                       if (msg->len >= 2)
+                               saddr = msg->buf[0] << 8 | msg->buf[1];
+                       else if (msg->len == 1)
+                               saddr = msg->buf[0];
+
+                       switch (saddr) {
+                       case 0x0000:    /* start tuner calibration mode */
+                               need_gpio = 1;
+                               /* FW Loading is done */
+                               dev->xc_fw_load_done = 1;
+                               break;
+                       case 0x000D:    /* Set signal source */
+                       case 0x0001:    /* Set TV standard - Video */
+                       case 0x0002:    /* Set TV standard - Audio */
+                       case 0x0003:    /* Set RF Frequency */
+                               need_gpio = 1;
+                               break;
+                       default:
+                               if (dev->xc_fw_load_done)
+                                       need_gpio = 1;
+                               break;
+                       }
+
+                       if (need_gpio) {
+                               dprintk1(1,
+                               "GPIO WRITE: addr 0x%x, len %d, saddr 0x%x\n",
+                               msg->addr, msg->len, saddr);
+
+                               return dev->cx231xx_gpio_i2c_write(dev,
+                                                                  msg->addr,
+                                                                  msg->buf,
+                                                                  msg->len);
+                       }
+               }
+
+               /* special case for Xc5000 tuner case */
+               saddr_len = 1;
+
+               /* adjust the length to correct length */
+               size -= saddr_len;
+               buf_ptr = (u8 *) (msg->buf + 1);
+
+               do {
+                       /* prepare xfer_data struct */
+                       req_data.dev_addr = msg->addr;
+                       req_data.direction = msg->flags;
+                       req_data.saddr_len = saddr_len;
+                       req_data.saddr_dat = msg->buf[0];
+                       req_data.buf_size = size > 16 ? 16 : size;
+                       req_data.p_buffer = (u8 *) (buf_ptr + loop * 16);
+
+                       bus->i2c_nostop = (size > 16) ? 1 : 0;
+                       bus->i2c_reserve = (loop == 0) ? 0 : 1;
+
+                       /* usb send command */
+                       status = dev->cx231xx_send_usb_command(bus, &req_data);
+                       loop++;
+
+                       if (size >= 16)
+                               size -= 16;
+                       else
+                               size = 0;
+
+               } while (size > 0);
+
+               bus->i2c_nostop = 0;
+               bus->i2c_reserve = 0;
+
+       } else {                /* regular case */
+
+               /* prepare xfer_data struct */
+               req_data.dev_addr = msg->addr;
+               req_data.direction = msg->flags;
+               req_data.saddr_len = 0;
+               req_data.saddr_dat = 0;
+               req_data.buf_size = msg->len;
+               req_data.p_buffer = msg->buf;
+
+               /* usb send command */
+               status = dev->cx231xx_send_usb_command(bus, &req_data);
+       }
+
+       return status < 0 ? status : 0;
+}
+
+/*
+ * cx231xx_i2c_recv_bytes()
+ * read a byte from the i2c device
+ */
+static int cx231xx_i2c_recv_bytes(struct i2c_adapter *i2c_adap,
+                                 const struct i2c_msg *msg)
+{
+       struct cx231xx_i2c *bus = i2c_adap->algo_data;
+       struct cx231xx *dev = bus->dev;
+       struct cx231xx_i2c_xfer_data req_data;
+       int status = 0;
+       u16 saddr = 0;
+       u8 need_gpio = 0;
+
+       if ((bus->nr == 1) && (msg->addr == 0x61)
+           && dev->tuner_type == TUNER_XC5000) {
+
+               if (msg->len == 2)
+                       saddr = msg->buf[0] << 8 | msg->buf[1];
+               else if (msg->len == 1)
+                       saddr = msg->buf[0];
+
+               if (dev->xc_fw_load_done) {
+
+                       switch (saddr) {
+                       case 0x0009:    /* BUSY check */
+                               dprintk1(1,
+                               "GPIO R E A D: Special case BUSY check \n");
+                               /*Try read BUSY register, just set it to zero*/
+                               msg->buf[0] = 0;
+                               if (msg->len == 2)
+                                       msg->buf[1] = 0;
+                               return 0;
+                       case 0x0004:    /* read Lock status */
+                               need_gpio = 1;
+                               break;
+
+                       }
+
+                       if (need_gpio) {
+                               /* this is a special case to handle Xceive tuner
+                               clock stretch issue with gpio based I2C */
+
+                               dprintk1(1,
+                               "GPIO R E A D: addr 0x%x, len %d, saddr 0x%x\n",
+                               msg->addr, msg->len,
+                               msg->buf[0] << 8 | msg->buf[1]);
+
+                               status =
+                                   dev->cx231xx_gpio_i2c_write(dev, msg->addr,
+                                                               msg->buf,
+                                                               msg->len);
+                               status =
+                                   dev->cx231xx_gpio_i2c_read(dev, msg->addr,
+                                                              msg->buf,
+                                                              msg->len);
+                               return status;
+                       }
+               }
+
+               /* prepare xfer_data struct */
+               req_data.dev_addr = msg->addr;
+               req_data.direction = msg->flags;
+               req_data.saddr_len = msg->len;
+               req_data.saddr_dat = msg->buf[0] << 8 | msg->buf[1];
+               req_data.buf_size = msg->len;
+               req_data.p_buffer = msg->buf;
+
+               /* usb send command */
+               status = dev->cx231xx_send_usb_command(bus, &req_data);
+
+       } else {
+
+               /* prepare xfer_data struct */
+               req_data.dev_addr = msg->addr;
+               req_data.direction = msg->flags;
+               req_data.saddr_len = 0;
+               req_data.saddr_dat = 0;
+               req_data.buf_size = msg->len;
+               req_data.p_buffer = msg->buf;
+
+               /* usb send command */
+               status = dev->cx231xx_send_usb_command(bus, &req_data);
+       }
+
+       return status < 0 ? status : 0;
+}
+
+/*
+ * cx231xx_i2c_recv_bytes_with_saddr()
+ * read a byte from the i2c device
+ */
+static int cx231xx_i2c_recv_bytes_with_saddr(struct i2c_adapter *i2c_adap,
+                                            const struct i2c_msg *msg1,
+                                            const struct i2c_msg *msg2)
+{
+       struct cx231xx_i2c *bus = i2c_adap->algo_data;
+       struct cx231xx *dev = bus->dev;
+       struct cx231xx_i2c_xfer_data req_data;
+       int status = 0;
+       u16 saddr = 0;
+       u8 need_gpio = 0;
+
+       if (msg1->len == 2)
+               saddr = msg1->buf[0] << 8 | msg1->buf[1];
+       else if (msg1->len == 1)
+               saddr = msg1->buf[0];
+
+       if ((bus->nr == 1) && (msg2->addr == 0x61)
+           && dev->tuner_type == TUNER_XC5000) {
+
+               if ((msg2->len < 16)) {
+
+                       dprintk1(1,
+                       "i2c_read: addr 0x%x, len %d, saddr 0x%x, len %d\n",
+                       msg2->addr, msg2->len, saddr, msg1->len);
+
+                       switch (saddr) {
+                       case 0x0008:    /* read FW load status */
+                               need_gpio = 1;
+                               break;
+                       case 0x0004:    /* read Lock status */
+                               need_gpio = 1;
+                               break;
+                       }
+
+                       if (need_gpio) {
+                               status =
+                                   dev->cx231xx_gpio_i2c_write(dev, msg1->addr,
+                                                               msg1->buf,
+                                                               msg1->len);
+                               status =
+                                   dev->cx231xx_gpio_i2c_read(dev, msg2->addr,
+                                                              msg2->buf,
+                                                              msg2->len);
+                               return status;
+                       }
+               }
+       }
+
+       /* prepare xfer_data struct */
+       req_data.dev_addr = msg2->addr;
+       req_data.direction = msg2->flags;
+       req_data.saddr_len = msg1->len;
+       req_data.saddr_dat = saddr;
+       req_data.buf_size = msg2->len;
+       req_data.p_buffer = msg2->buf;
+
+       /* usb send command */
+       status = dev->cx231xx_send_usb_command(bus, &req_data);
+
+       return status < 0 ? status : 0;
+}
+
+/*
+ * cx231xx_i2c_check_for_device()
+ * check if there is a i2c_device at the supplied address
+ */
+static int cx231xx_i2c_check_for_device(struct i2c_adapter *i2c_adap,
+                                       const struct i2c_msg *msg)
+{
+       struct cx231xx_i2c *bus = i2c_adap->algo_data;
+       struct cx231xx *dev = bus->dev;
+       struct cx231xx_i2c_xfer_data req_data;
+       int status = 0;
+
+       /* prepare xfer_data struct */
+       req_data.dev_addr = msg->addr;
+       req_data.direction = msg->flags;
+       req_data.saddr_len = 0;
+       req_data.saddr_dat = 0;
+       req_data.buf_size = 0;
+       req_data.p_buffer = NULL;
+
+       /* usb send command */
+       status = dev->cx231xx_send_usb_command(bus, &req_data);
+
+       return status < 0 ? status : 0;
+}
+
+/*
+ * cx231xx_i2c_xfer()
+ * the main i2c transfer function
+ */
+static int cx231xx_i2c_xfer(struct i2c_adapter *i2c_adap,
+                           struct i2c_msg msgs[], int num)
+{
+       struct cx231xx_i2c *bus = i2c_adap->algo_data;
+       struct cx231xx *dev = bus->dev;
+       int addr, rc, i, byte;
+
+       if (num <= 0)
+               return 0;
+
+       for (i = 0; i < num; i++) {
+
+               addr = msgs[i].addr >> 1;
+
+               dprintk2(2, "%s %s addr=%x len=%d:",
+                        (msgs[i].flags & I2C_M_RD) ? "read" : "write",
+                        i == num - 1 ? "stop" : "nonstop", addr, msgs[i].len);
+               if (!msgs[i].len) {
+                       /* no len: check only for device presence */
+                       rc = cx231xx_i2c_check_for_device(i2c_adap, &msgs[i]);
+                       if (rc < 0) {
+                               dprintk2(2, " no device\n");
+                               return rc;
+                       }
+
+               } else if (msgs[i].flags & I2C_M_RD) {
+                       /* read bytes */
+                       rc = cx231xx_i2c_recv_bytes(i2c_adap, &msgs[i]);
+                       if (i2c_debug >= 2) {
+                               for (byte = 0; byte < msgs[i].len; byte++)
+                                       printk(" %02x", msgs[i].buf[byte]);
+                       }
+               } else if (i + 1 < num && (msgs[i + 1].flags & I2C_M_RD) &&
+                          msgs[i].addr == msgs[i + 1].addr
+                          && (msgs[i].len <= 2) && (bus->nr < 2)) {
+                       /* read bytes */
+                       rc = cx231xx_i2c_recv_bytes_with_saddr(i2c_adap,
+                                                              &msgs[i],
+                                                              &msgs[i + 1]);
+                       if (i2c_debug >= 2) {
+                               for (byte = 0; byte < msgs[i].len; byte++)
+                                       printk(" %02x", msgs[i].buf[byte]);
+                       }
+                       i++;
+               } else {
+                       /* write bytes */
+                       if (i2c_debug >= 2) {
+                               for (byte = 0; byte < msgs[i].len; byte++)
+                                       printk(" %02x", msgs[i].buf[byte]);
+                       }
+                       rc = cx231xx_i2c_send_bytes(i2c_adap, &msgs[i]);
+               }
+               if (rc < 0)
+                       goto err;
+               if (i2c_debug >= 2)
+                       printk("\n");
+       }
+
+       return num;
+err:
+       dprintk2(2, " ERROR: %i\n", rc);
+       return rc;
+}
+
+/* ----------------------------------------------------------- */
+
+/*
+ * functionality()
+ */
+static u32 functionality(struct i2c_adapter *adap)
+{
+       return I2C_FUNC_SMBUS_EMUL | I2C_FUNC_I2C;
+}
+
+/*
+ * attach_inform()
+ * gets called when a device attaches to the i2c bus
+ * does some basic configuration
+ */
+static int attach_inform(struct i2c_client *client)
+{
+       struct cx231xx_i2c *bus = i2c_get_adapdata(client->adapter);
+       struct cx231xx *dev = bus->dev;
+
+       switch (client->addr << 1) {
+       case 0x8e:
+               {
+                       struct IR_i2c *ir = i2c_get_clientdata(client);
+                       dprintk1(1, "attach_inform: IR detected (%s).\n",
+                                ir->phys);
+                       cx231xx_set_ir(dev, ir);
+                       break;
+               }
+               break;
+
+       default:
+               break;
+       }
+
+       return 0;
+}
+
+static struct i2c_algorithm cx231xx_algo = {
+       .master_xfer = cx231xx_i2c_xfer,
+       .functionality = functionality,
+};
+
+static struct i2c_adapter cx231xx_adap_template = {
+       .owner = THIS_MODULE,
+       .name = "cx231xx",
+       .id = I2C_HW_B_CX231XX,
+       .algo = &cx231xx_algo,
+       .client_register = attach_inform,
+};
+
+static struct i2c_client cx231xx_client_template = {
+       .name = "cx231xx internal",
+};
+
+/* ----------------------------------------------------------- */
+
+/*
+ * i2c_devs
+ * incomplete list of known devices
+ */
+static char *i2c_devs[128] = {
+       [0x60 >> 1] = "colibri",
+       [0x88 >> 1] = "hammerhead",
+       [0x8e >> 1] = "CIR",
+       [0x32 >> 1] = "GeminiIII",
+       [0x02 >> 1] = "Aquarius",
+       [0xa0 >> 1] = "eeprom",
+       [0xc0 >> 1] = "tuner/XC3028",
+       [0xc2 >> 1] = "tuner/XC5000",
+};
+
+/*
+ * cx231xx_do_i2c_scan()
+ * check i2c address range for devices
+ */
+void cx231xx_do_i2c_scan(struct cx231xx *dev, struct i2c_client *c)
+{
+       unsigned char buf;
+       int i, rc;
+
+       cx231xx_info(": Checking for I2C devices ..\n");
+       for (i = 0; i < 128; i++) {
+               c->addr = i;
+               rc = i2c_master_recv(c, &buf, 0);
+               if (rc < 0)
+                       continue;
+               cx231xx_info("%s: i2c scan: found device @ 0x%x  [%s]\n",
+                            dev->name, i << 1,
+                            i2c_devs[i] ? i2c_devs[i] : "???");
+       }
+       cx231xx_info(": Completed Checking for I2C devices.\n");
+}
+
+/*
+ * cx231xx_i2c_register()
+ * register i2c bus
+ */
+int cx231xx_i2c_register(struct cx231xx_i2c *bus)
+{
+       struct cx231xx *dev = bus->dev;
+
+       BUG_ON(!dev->cx231xx_send_usb_command);
+
+       memcpy(&bus->i2c_adap, &cx231xx_adap_template, sizeof(bus->i2c_adap));
+       memcpy(&bus->i2c_algo, &cx231xx_algo, sizeof(bus->i2c_algo));
+       memcpy(&bus->i2c_client, &cx231xx_client_template,
+              sizeof(bus->i2c_client));
+
+       bus->i2c_adap.dev.parent = &dev->udev->dev;
+
+       strlcpy(bus->i2c_adap.name, bus->dev->name, sizeof(bus->i2c_adap.name));
+
+       bus->i2c_algo.data = bus;
+       bus->i2c_adap.algo_data = bus;
+       i2c_set_adapdata(&bus->i2c_adap, &dev->v4l2_dev);
+       i2c_add_adapter(&bus->i2c_adap);
+
+       bus->i2c_client.adapter = &bus->i2c_adap;
+
+       if (0 == bus->i2c_rc) {
+               if (i2c_scan)
+                       cx231xx_do_i2c_scan(dev, &bus->i2c_client);
+       } else
+               cx231xx_warn("%s: i2c bus %d register FAILED\n",
+                            dev->name, bus->nr);
+
+       return bus->i2c_rc;
+}
+
+/*
+ * cx231xx_i2c_unregister()
+ * unregister i2c_bus
+ */
+int cx231xx_i2c_unregister(struct cx231xx_i2c *bus)
+{
+       i2c_del_adapter(&bus->i2c_adap);
+       return 0;
+}
diff --git a/drivers/media/video/cx231xx/cx231xx-input.c b/drivers/media/video/cx231xx/cx231xx-input.c
new file mode 100644 (file)
index 0000000..97e304c
--- /dev/null
@@ -0,0 +1,246 @@
+/*
+  handle cx231xx IR remotes via linux kernel input layer.
+
+  Copyright (C) 2008 <srinivasa.deevi at conexant dot com>
+               Based on em28xx driver
+
+               < This is a place holder for IR now.>
+
+  This program is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program; if not, write to the Free Software
+  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/delay.h>
+#include <linux/interrupt.h>
+#include <linux/input.h>
+#include <linux/usb.h>
+
+#include "cx231xx.h"
+
+static unsigned int ir_debug;
+module_param(ir_debug, int, 0644);
+MODULE_PARM_DESC(ir_debug, "enable debug messages [IR]");
+
+#define i2cdprintk(fmt, arg...) \
+       if (ir_debug) { \
+               printk(KERN_DEBUG "%s/ir: " fmt, ir->c.name , ## arg); \
+       }
+
+#define dprintk(fmt, arg...) \
+       if (ir_debug) { \
+               printk(KERN_DEBUG "%s/ir: " fmt, ir->name , ## arg); \
+       }
+
+/**********************************************************
+ Polling structure used by cx231xx IR's
+ **********************************************************/
+
+struct cx231xx_ir_poll_result {
+       unsigned int toggle_bit:1;
+       unsigned int read_count:7;
+       u8 rc_address;
+       u8 rc_data[4];
+};
+
+struct cx231xx_IR {
+       struct cx231xx *dev;
+       struct input_dev *input;
+       struct ir_input_state ir;
+       char name[32];
+       char phys[32];
+
+       /* poll external decoder */
+       int polling;
+       struct work_struct work;
+       struct timer_list timer;
+       unsigned int last_toggle:1;
+       unsigned int last_readcount;
+       unsigned int repeat_interval;
+
+       int (*get_key) (struct cx231xx_IR *, struct cx231xx_ir_poll_result *);
+};
+
+/**********************************************************
+ Polling code for cx231xx
+ **********************************************************/
+
+static void cx231xx_ir_handle_key(struct cx231xx_IR *ir)
+{
+       int result;
+       int do_sendkey = 0;
+       struct cx231xx_ir_poll_result poll_result;
+
+       /* read the registers containing the IR status */
+       result = ir->get_key(ir, &poll_result);
+       if (result < 0) {
+               dprintk("ir->get_key() failed %d\n", result);
+               return;
+       }
+
+       dprintk("ir->get_key result tb=%02x rc=%02x lr=%02x data=%02x\n",
+               poll_result.toggle_bit, poll_result.read_count,
+               ir->last_readcount, poll_result.rc_data[0]);
+
+       if (ir->dev->chip_id == CHIP_ID_EM2874) {
+               /* The em2874 clears the readcount field every time the
+                  register is read.  The em2860/2880 datasheet says that it
+                  is supposed to clear the readcount, but it doesn't.  So with
+                  the em2874, we are looking for a non-zero read count as
+                  opposed to a readcount that is incrementing */
+               ir->last_readcount = 0;
+       }
+
+       if (poll_result.read_count == 0) {
+               /* The button has not been pressed since the last read */
+       } else if (ir->last_toggle != poll_result.toggle_bit) {
+               /* A button has been pressed */
+               dprintk("button has been pressed\n");
+               ir->last_toggle = poll_result.toggle_bit;
+               ir->repeat_interval = 0;
+               do_sendkey = 1;
+       } else if (poll_result.toggle_bit == ir->last_toggle &&
+                  poll_result.read_count > 0 &&
+                  poll_result.read_count != ir->last_readcount) {
+               /* The button is still being held down */
+               dprintk("button being held down\n");
+
+               /* Debouncer for first keypress */
+               if (ir->repeat_interval++ > 9) {
+                       /* Start repeating after 1 second */
+                       do_sendkey = 1;
+               }
+       }
+
+       if (do_sendkey) {
+               dprintk("sending keypress\n");
+               ir_input_keydown(ir->input, &ir->ir, poll_result.rc_data[0],
+                                poll_result.rc_data[0]);
+               ir_input_nokey(ir->input, &ir->ir);
+       }
+
+       ir->last_readcount = poll_result.read_count;
+       return;
+}
+
+static void ir_timer(unsigned long data)
+{
+       struct cx231xx_IR *ir = (struct cx231xx_IR *)data;
+
+       schedule_work(&ir->work);
+}
+
+static void cx231xx_ir_work(struct work_struct *work)
+{
+       struct cx231xx_IR *ir = container_of(work, struct cx231xx_IR, work);
+
+       cx231xx_ir_handle_key(ir);
+       mod_timer(&ir->timer, jiffies + msecs_to_jiffies(ir->polling));
+}
+
+void cx231xx_ir_start(struct cx231xx_IR *ir)
+{
+       setup_timer(&ir->timer, ir_timer, (unsigned long)ir);
+       INIT_WORK(&ir->work, cx231xx_ir_work);
+       schedule_work(&ir->work);
+}
+
+static void cx231xx_ir_stop(struct cx231xx_IR *ir)
+{
+       del_timer_sync(&ir->timer);
+       flush_scheduled_work();
+}
+
+int cx231xx_ir_init(struct cx231xx *dev)
+{
+       struct cx231xx_IR *ir;
+       struct input_dev *input_dev;
+       u8 ir_config;
+       int err = -ENOMEM;
+
+       if (dev->board.ir_codes == NULL) {
+               /* No remote control support */
+               return 0;
+       }
+
+       ir = kzalloc(sizeof(*ir), GFP_KERNEL);
+       input_dev = input_allocate_device();
+       if (!ir || !input_dev)
+               goto err_out_free;
+
+       ir->input = input_dev;
+
+       /* Setup the proper handler based on the chip */
+       switch (dev->chip_id) {
+       default:
+               printk("Unrecognized cx231xx chip id: IR not supported\n");
+               goto err_out_free;
+       }
+
+       /* This is how often we ask the chip for IR information */
+       ir->polling = 100;      /* ms */
+
+       /* init input device */
+       snprintf(ir->name, sizeof(ir->name), "cx231xx IR (%s)", dev->name);
+
+       usb_make_path(dev->udev, ir->phys, sizeof(ir->phys));
+       strlcat(ir->phys, "/input0", sizeof(ir->phys));
+
+       ir_input_init(input_dev, &ir->ir, IR_TYPE_OTHER, dev->board.ir_codes);
+       input_dev->name = ir->name;
+       input_dev->phys = ir->phys;
+       input_dev->id.bustype = BUS_USB;
+       input_dev->id.version = 1;
+       input_dev->id.vendor = le16_to_cpu(dev->udev->descriptor.idVendor);
+       input_dev->id.product = le16_to_cpu(dev->udev->descriptor.idProduct);
+
+       input_dev->dev.parent = &dev->udev->dev;
+       /* record handles to ourself */
+       ir->dev = dev;
+       dev->ir = ir;
+
+       cx231xx_ir_start(ir);
+
+       /* all done */
+       err = input_register_device(ir->input);
+       if (err)
+               goto err_out_stop;
+
+       return 0;
+err_out_stop:
+       cx231xx_ir_stop(ir);
+       dev->ir = NULL;
+err_out_free:
+       input_free_device(input_dev);
+       kfree(ir);
+       return err;
+}
+
+int cx231xx_ir_fini(struct cx231xx *dev)
+{
+       struct cx231xx_IR *ir = dev->ir;
+
+       /* skip detach on non attached boards */
+       if (!ir)
+               return 0;
+
+       cx231xx_ir_stop(ir);
+       input_unregister_device(ir->input);
+       kfree(ir);
+
+       /* done */
+       dev->ir = NULL;
+       return 0;
+}
diff --git a/drivers/media/video/cx231xx/cx231xx-pcb-cfg.c b/drivers/media/video/cx231xx/cx231xx-pcb-cfg.c
new file mode 100644 (file)
index 0000000..7473c33
--- /dev/null
@@ -0,0 +1,795 @@
+/*
+   cx231xx-pcb-config.c - driver for Conexant
+               Cx23100/101/102 USB video capture devices
+
+   Copyright (C) 2008 <srinivasa.deevi at conexant dot com>
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include "cx231xx.h"
+#include "cx231xx-conf-reg.h"
+
+static unsigned int pcb_debug;
+module_param(pcb_debug, int, 0644);
+MODULE_PARM_DESC(pcb_debug, "enable pcb config debug messages [video]");
+
+/******************************************************************************/
+
+struct pcb_config cx231xx_Scenario[] = {
+       {
+        INDEX_SELFPOWER_DIGITAL_ONLY,  /* index */
+        USB_SELF_POWER,        /* power_type */
+        0,                     /* speed , not decide yet */
+        MOD_DIGITAL,           /* mode */
+        SOURCE_TS_BDA,         /* ts1_source, digital tv only */
+        NOT_SUPPORTED,         /* ts2_source  */
+        NOT_SUPPORTED,         /* analog source */
+
+        0,                     /* digital_index  */
+        0,                     /* analog index */
+        0,                     /* dif_index   */
+        0,                     /* external_index */
+
+        1,                     /* only one configuration */
+        {
+         {
+          0,                   /* config index */
+          {
+           0,                  /* interrupt ep index */
+           1,                  /* ts1 index */
+           NOT_SUPPORTED,      /* TS2 index */
+           NOT_SUPPORTED,      /* AUDIO */
+           NOT_SUPPORTED,      /* VIDEO */
+           NOT_SUPPORTED,      /* VANC */
+           NOT_SUPPORTED,      /* HANC */
+           NOT_SUPPORTED       /* ir_index */
+           }
+          ,
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         }
+        ,
+        /* full-speed config */
+        {
+         {
+          0,                   /* config index */
+          {
+           0,                  /* interrupt ep index */
+           1,                  /* ts1 index */
+           NOT_SUPPORTED,      /* TS2 index */
+           NOT_SUPPORTED,      /* AUDIO */
+           NOT_SUPPORTED,      /* VIDEO */
+           NOT_SUPPORTED,      /* VANC */
+           NOT_SUPPORTED,      /* HANC */
+           NOT_SUPPORTED       /* ir_index */
+           }
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         }
+        }
+       ,
+
+       {
+        INDEX_SELFPOWER_DUAL_DIGITAL,  /* index */
+        USB_SELF_POWER,        /* power_type */
+        0,                     /* speed , not decide yet */
+        MOD_DIGITAL,           /* mode */
+        SOURCE_TS_BDA,         /* ts1_source, digital tv only */
+        0,                     /* ts2_source,need update from register */
+        NOT_SUPPORTED,         /* analog source */
+        0,                     /* digital_index  */
+        0,                     /* analog index */
+        0,                     /* dif_index */
+        0,                     /* external_index */
+
+        1,                     /* only one configuration */
+        {
+         {
+          0,                   /* config index */
+          {
+           0,                  /* interrupt ep index */
+           1,                  /* ts1 index */
+           2,                  /* TS2 index */
+           NOT_SUPPORTED,      /* AUDIO */
+           NOT_SUPPORTED,      /* VIDEO */
+           NOT_SUPPORTED,      /* VANC */
+           NOT_SUPPORTED,      /* HANC */
+           NOT_SUPPORTED       /* ir_index */
+           }
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         }
+        ,
+        /* full-speed */
+        {
+         {
+          0,                   /* config index */
+          {
+           0,                  /* interrupt ep index */
+           1,                  /* ts1 index */
+           2,                  /* TS2 index */
+           NOT_SUPPORTED,      /* AUDIO */
+           NOT_SUPPORTED,      /* VIDEO */
+           NOT_SUPPORTED,      /* VANC */
+           NOT_SUPPORTED,      /* HANC */
+           NOT_SUPPORTED       /* ir_index */
+           }
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         }
+        }
+       ,
+
+       {
+        INDEX_SELFPOWER_ANALOG_ONLY,   /* index */
+        USB_SELF_POWER,        /* power_type */
+        0,                     /* speed , not decide yet */
+        MOD_ANALOG | MOD_DIF | MOD_EXTERNAL,   /* mode ,analog tv only */
+        NOT_SUPPORTED,         /* ts1_source, NOT SUPPORT */
+        NOT_SUPPORTED,         /* ts2_source,NOT SUPPORT */
+        0,                     /* analog source, need update */
+
+        0,                     /* digital_index  */
+        0,                     /* analog index */
+        0,                     /* dif_index */
+        0,                     /* external_index */
+
+        1,                     /* only one configuration */
+        {
+         {
+          0,                   /* config index */
+          {
+           0,                  /* interrupt ep index */
+           NOT_SUPPORTED,      /* ts1 index */
+           NOT_SUPPORTED,      /* TS2 index */
+           1,                  /* AUDIO */
+           2,                  /* VIDEO */
+           3,                  /* VANC */
+           4,                  /* HANC */
+           NOT_SUPPORTED       /* ir_index */
+           }
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         }
+        ,
+        /* full-speed */
+        {
+         {
+          0,                   /* config index */
+          {
+           0,                  /* interrupt ep index */
+           NOT_SUPPORTED,      /* ts1 index */
+           NOT_SUPPORTED,      /* TS2 index */
+           1,                  /* AUDIO */
+           2,                  /* VIDEO */
+           NOT_SUPPORTED,      /* VANC */
+           NOT_SUPPORTED,      /* HANC */
+           NOT_SUPPORTED       /* ir_index */
+           }
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         }
+        }
+       ,
+
+       {
+        INDEX_SELFPOWER_DUAL,  /* index */
+        USB_SELF_POWER,        /* power_type */
+        0,                     /* speed , not decide yet */
+        /* mode ,analog tv and digital path */
+        MOD_ANALOG | MOD_DIF | MOD_DIGITAL | MOD_EXTERNAL,
+        0,                     /* ts1_source,will update in register */
+        NOT_SUPPORTED,         /* ts2_source,NOT SUPPORT */
+        0,                     /* analog source need update */
+        0,                     /* digital_index  */
+        0,                     /* analog index */
+        0,                     /* dif_index */
+        0,                     /* external_index */
+        1,                     /* only one configuration */
+        {
+         {
+          0,                   /* config index */
+          {
+           0,                  /* interrupt ep index */
+           1,                  /* ts1 index */
+           NOT_SUPPORTED,      /* TS2 index */
+           2,                  /* AUDIO */
+           3,                  /* VIDEO */
+           4,                  /* VANC */
+           5,                  /* HANC */
+           NOT_SUPPORTED       /* ir_index */
+           }
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         }
+        ,
+        /* full-speed */
+        {
+         {
+          0,                   /* config index */
+          {
+           0,                  /* interrupt ep index */
+           1,                  /* ts1 index */
+           NOT_SUPPORTED,      /* TS2 index */
+           2,                  /* AUDIO */
+           3,                  /* VIDEO */
+           NOT_SUPPORTED,      /* VANC */
+           NOT_SUPPORTED,      /* HANC */
+           NOT_SUPPORTED       /* ir_index */
+           }
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         }
+        }
+       ,
+
+       {
+        INDEX_SELFPOWER_TRIPLE,        /* index */
+        USB_SELF_POWER,        /* power_type */
+        0,                     /* speed , not decide yet */
+        /* mode ,analog tv and digital path */
+        MOD_ANALOG | MOD_DIF | MOD_DIGITAL | MOD_EXTERNAL,
+        0,                     /* ts1_source, update in register */
+        0,                     /* ts2_source,update in register */
+        0,                     /* analog source, need update */
+
+        0,                     /* digital_index  */
+        0,                     /* analog index */
+        0,                     /* dif_index */
+        0,                     /* external_index */
+        1,                     /* only one configuration */
+        {
+         {
+          0,                   /* config index */
+          {
+           0,                  /* interrupt ep index */
+           1,                  /* ts1 index */
+           2,                  /* TS2 index */
+           3,                  /* AUDIO */
+           4,                  /* VIDEO */
+           5,                  /* VANC */
+           6,                  /* HANC */
+           NOT_SUPPORTED       /* ir_index */
+           }
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         }
+        ,
+        /* full-speed */
+        {
+         {
+          0,                   /* config index */
+          {
+           0,                  /* interrupt ep index */
+           1,                  /* ts1 index */
+           2,                  /* TS2 index */
+           3,                  /* AUDIO */
+           4,                  /* VIDEO */
+           NOT_SUPPORTED,      /* VANC */
+           NOT_SUPPORTED,      /* HANC */
+           NOT_SUPPORTED       /* ir_index */
+           }
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         }
+        }
+       ,
+
+       {
+        INDEX_SELFPOWER_COMPRESSOR,    /* index */
+        USB_SELF_POWER,        /* power_type */
+        0,                     /* speed , not decide yet */
+        /* mode ,analog tv AND DIGITAL path */
+        MOD_ANALOG | MOD_DIF | MOD_DIGITAL | MOD_EXTERNAL,
+        NOT_SUPPORTED,         /* ts1_source, disable */
+        SOURCE_TS_BDA,         /* ts2_source */
+        0,                     /* analog source,need update */
+        0,                     /* digital_index  */
+        0,                     /* analog index */
+        0,                     /* dif_index */
+        0,                     /* external_index */
+        1,                     /* only one configuration */
+        {
+         {
+          0,                   /* config index */
+          {
+           0,                  /* interrupt ep index */
+           NOT_SUPPORTED,      /* ts1 index */
+           1,                  /* TS2 index */
+           2,                  /* AUDIO */
+           3,                  /* VIDEO */
+           4,                  /* VANC */
+           5,                  /* HANC */
+           NOT_SUPPORTED       /* ir_index */
+           }
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         }
+        ,
+        /* full-speed  */
+        {
+         {
+          0,                   /* config index */
+          {
+           0,                  /* interrupt ep index */
+           NOT_SUPPORTED,      /* ts1 index */
+           1,                  /* TS2 index */
+           2,                  /* AUDIO */
+           3,                  /* VIDEO */
+           NOT_SUPPORTED,      /* VANC */
+           NOT_SUPPORTED,      /* HANC */
+           NOT_SUPPORTED       /* ir_index */
+           }
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         }
+        }
+       ,
+
+       {
+        INDEX_BUSPOWER_DIGITAL_ONLY,   /* index */
+        USB_BUS_POWER,         /* power_type */
+        0,                     /* speed , not decide yet */
+        MOD_DIGITAL,           /* mode ,analog tv AND DIGITAL path */
+        SOURCE_TS_BDA,         /* ts1_source, disable */
+        NOT_SUPPORTED,         /* ts2_source */
+        NOT_SUPPORTED,         /* analog source */
+
+        0,                     /* digital_index  */
+        0,                     /* analog index */
+        0,                     /* dif_index */
+        0,                     /* external_index */
+
+        1,                     /* only one configuration */
+        {
+         {
+          0,                   /* config index */
+          {
+           0,                  /* interrupt ep index  = 2 */
+           1,                  /* ts1 index */
+           NOT_SUPPORTED,      /* TS2 index */
+           NOT_SUPPORTED,      /* AUDIO */
+           NOT_SUPPORTED,      /* VIDEO */
+           NOT_SUPPORTED,      /* VANC */
+           NOT_SUPPORTED,      /* HANC */
+           NOT_SUPPORTED       /* ir_index */
+           }
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         }
+        ,
+        /* full-speed */
+        {
+         {
+          0,                   /* config index */
+          {
+           0,                  /* interrupt ep index  = 2 */
+           1,                  /* ts1 index */
+           NOT_SUPPORTED,      /* TS2 index */
+           NOT_SUPPORTED,      /* AUDIO */
+           NOT_SUPPORTED,      /* VIDEO */
+           NOT_SUPPORTED,      /* VANC */
+           NOT_SUPPORTED,      /* HANC */
+           NOT_SUPPORTED       /* ir_index */
+           }
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         }
+        }
+       ,
+       {
+        INDEX_BUSPOWER_ANALOG_ONLY,    /* index */
+        USB_BUS_POWER,         /* power_type */
+        0,                     /* speed , not decide yet */
+        MOD_ANALOG,            /* mode ,analog tv AND DIGITAL path */
+        NOT_SUPPORTED,         /* ts1_source, disable */
+        NOT_SUPPORTED,         /* ts2_source */
+        SOURCE_ANALOG,         /* analog source--analog */
+        0,                     /* digital_index  */
+        0,                     /* analog index */
+        0,                     /* dif_index */
+        0,                     /* external_index */
+        1,                     /* only one configuration */
+        {
+         {
+          0,                   /* config index */
+          {
+           0,                  /* interrupt ep index */
+           NOT_SUPPORTED,      /* ts1 index */
+           NOT_SUPPORTED,      /* TS2 index */
+           1,                  /* AUDIO */
+           2,                  /* VIDEO */
+           3,                  /* VANC */
+           4,                  /* HANC */
+           NOT_SUPPORTED       /* ir_index */
+           }
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         }
+        ,
+        {                      /* full-speed */
+         {
+          0,                   /* config index */
+          {
+           0,                  /* interrupt ep index */
+           NOT_SUPPORTED,      /* ts1 index */
+           NOT_SUPPORTED,      /* TS2 index */
+           1,                  /* AUDIO */
+           2,                  /* VIDEO */
+           NOT_SUPPORTED,      /* VANC */
+           NOT_SUPPORTED,      /* HANC */
+           NOT_SUPPORTED       /* ir_index */
+           }
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         }
+        }
+       ,
+       {
+        INDEX_BUSPOWER_DIF_ONLY,       /* index */
+        USB_BUS_POWER,         /* power_type */
+        0,                     /* speed , not decide yet */
+        /* mode ,analog tv AND DIGITAL path */
+        MOD_DIF | MOD_ANALOG | MOD_DIGITAL | MOD_EXTERNAL,
+        SOURCE_TS_BDA,         /* ts1_source, disable */
+        NOT_SUPPORTED,         /* ts2_source */
+        SOURCE_DIF | SOURCE_ANALOG | SOURCE_EXTERNAL,  /* analog source, dif */
+        0,                     /* digital_index  */
+        0,                     /* analog index */
+        0,                     /* dif_index */
+        0,                     /* external_index */
+        1,                     /* only one configuration */
+        {
+         {
+          0,                   /* config index */
+          {
+           0,                  /* interrupt ep index */
+           1,                  /* ts1 index */
+           NOT_SUPPORTED,      /* TS2 index */
+           2,                  /* AUDIO */
+           3,                  /* VIDEO */
+           4,                  /* VANC */
+           5,                  /* HANC */
+           NOT_SUPPORTED       /* ir_index */
+           }
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         }
+        ,
+        {                      /* full speed */
+         {
+          0,                   /* config index */
+          {
+           0,                  /* interrupt ep index */
+           1,                  /* ts1 index */
+           NOT_SUPPORTED,      /* TS2 index */
+           2,                  /* AUDIO */
+           3,                  /* VIDEO */
+           NOT_SUPPORTED,      /* VANC */
+           NOT_SUPPORTED,      /* HANC */
+           NOT_SUPPORTED       /* ir_index */
+           }
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         ,
+         {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
+                          NOT_SUPPORTED}
+          }
+         }
+        }
+       ,
+
+};
+
+/*****************************************************************/
+
+u32 initialize_cx231xx(struct cx231xx *dev)
+{
+       u32 config_info = 0;
+       struct pcb_config *p_pcb_info;
+       u8 usb_speed = 1;       /* from register,1--HS, 0--FS  */
+       u8 data[4] = { 0, 0, 0, 0 };
+       u32 ts1_source = 0;
+       u32 ts2_source = 0;
+       u32 analog_source = 0;
+       u8 _current_scenario_idx = 0xff;
+
+       ts1_source = SOURCE_TS_BDA;
+       ts2_source = SOURCE_TS_BDA;
+
+       /* read board config register to find out which
+       pcb config it is related to */
+       cx231xx_read_ctrl_reg(dev, VRT_GET_REGISTER, BOARD_CFG_STAT, data, 4);
+
+       config_info = *((u32 *) data);
+       usb_speed = (u8) (config_info & 0x1);
+
+       /* Verify this device belongs to Bus power or Self power device */
+       if (config_info & BUS_POWER) {  /* bus-power */
+               switch (config_info & BUSPOWER_MASK) {
+               case TS1_PORT | BUS_POWER:
+                       cx231xx_Scenario[INDEX_BUSPOWER_DIGITAL_ONLY].speed =
+                           usb_speed;
+                       p_pcb_info =
+                           &cx231xx_Scenario[INDEX_BUSPOWER_DIGITAL_ONLY];
+                       _current_scenario_idx = INDEX_BUSPOWER_DIGITAL_ONLY;
+                       break;
+               case AVDEC_ENABLE | BUS_POWER:
+                       cx231xx_Scenario[INDEX_BUSPOWER_ANALOG_ONLY].speed =
+                           usb_speed;
+                       p_pcb_info =
+                           &cx231xx_Scenario[INDEX_BUSPOWER_ANALOG_ONLY];
+                       _current_scenario_idx = INDEX_BUSPOWER_ANALOG_ONLY;
+                       break;
+               case AVDEC_ENABLE | BUS_POWER | TS1_PORT:
+                       cx231xx_Scenario[INDEX_BUSPOWER_DIF_ONLY].speed =
+                           usb_speed;
+                       p_pcb_info = &cx231xx_Scenario[INDEX_BUSPOWER_DIF_ONLY];
+                       _current_scenario_idx = INDEX_BUSPOWER_DIF_ONLY;
+                       break;
+               default:
+                       cx231xx_info("bad config in buspower!!!!\n");
+                       cx231xx_info("config_info=%x\n",
+                                    (config_info & BUSPOWER_MASK));
+                       return 1;
+               }
+       } else {                /* self-power */
+
+               switch (config_info & SELFPOWER_MASK) {
+               case TS1_PORT | SELF_POWER:
+                       cx231xx_Scenario[INDEX_SELFPOWER_DIGITAL_ONLY].speed =
+                           usb_speed;
+                       p_pcb_info =
+                           &cx231xx_Scenario[INDEX_SELFPOWER_DIGITAL_ONLY];
+                       _current_scenario_idx = INDEX_SELFPOWER_DIGITAL_ONLY;
+                       break;
+               case TS1_TS2_PORT | SELF_POWER:
+                       cx231xx_Scenario[INDEX_SELFPOWER_DUAL_DIGITAL].speed =
+                           usb_speed;
+                       cx231xx_Scenario[INDEX_SELFPOWER_DUAL_DIGITAL].
+                           ts2_source = ts2_source;
+                       p_pcb_info =
+                           &cx231xx_Scenario[INDEX_SELFPOWER_DUAL_DIGITAL];
+                       _current_scenario_idx = INDEX_SELFPOWER_DUAL_DIGITAL;
+                       break;
+               case AVDEC_ENABLE | SELF_POWER:
+                       cx231xx_Scenario[INDEX_SELFPOWER_ANALOG_ONLY].speed =
+                           usb_speed;
+                       cx231xx_Scenario[INDEX_SELFPOWER_ANALOG_ONLY].
+                           analog_source = analog_source;
+                       p_pcb_info =
+                           &cx231xx_Scenario[INDEX_SELFPOWER_ANALOG_ONLY];
+                       _current_scenario_idx = INDEX_SELFPOWER_ANALOG_ONLY;
+                       break;
+               case AVDEC_ENABLE | TS1_PORT | SELF_POWER:
+                       cx231xx_Scenario[INDEX_SELFPOWER_DUAL].speed =
+                           usb_speed;
+                       cx231xx_Scenario[INDEX_SELFPOWER_DUAL].ts1_source =
+                           ts1_source;
+                       cx231xx_Scenario[INDEX_SELFPOWER_DUAL].analog_source =
+                           analog_source;
+                       p_pcb_info = &cx231xx_Scenario[INDEX_SELFPOWER_DUAL];
+                       _current_scenario_idx = INDEX_SELFPOWER_DUAL;
+                       break;
+               case AVDEC_ENABLE | TS1_TS2_PORT | SELF_POWER:
+                       cx231xx_Scenario[INDEX_SELFPOWER_TRIPLE].speed =
+                           usb_speed;
+                       cx231xx_Scenario[INDEX_SELFPOWER_TRIPLE].ts1_source =
+                           ts1_source;
+                       cx231xx_Scenario[INDEX_SELFPOWER_TRIPLE].ts2_source =
+                           ts2_source;
+                       cx231xx_Scenario[INDEX_SELFPOWER_TRIPLE].analog_source =
+                           analog_source;
+                       p_pcb_info = &cx231xx_Scenario[INDEX_SELFPOWER_TRIPLE];
+                       _current_scenario_idx = INDEX_SELFPOWER_TRIPLE;
+                       break;
+               case AVDEC_ENABLE | TS1VIP_TS2_PORT | SELF_POWER:
+                       cx231xx_Scenario[INDEX_SELFPOWER_COMPRESSOR].speed =
+                           usb_speed;
+                       cx231xx_Scenario[INDEX_SELFPOWER_COMPRESSOR].
+                           analog_source = analog_source;
+                       p_pcb_info =
+                           &cx231xx_Scenario[INDEX_SELFPOWER_COMPRESSOR];
+                       _current_scenario_idx = INDEX_SELFPOWER_COMPRESSOR;
+                       break;
+               default:
+                       cx231xx_info("bad senario!!!!!\n");
+                       cx231xx_info("config_info=%x\n",
+                                    (config_info & SELFPOWER_MASK));
+                       return 1;
+               }
+       }
+
+       dev->current_scenario_idx = _current_scenario_idx;
+
+       memcpy(&dev->current_pcb_config, p_pcb_info,
+                  sizeof(struct pcb_config));
+
+       if (pcb_debug) {
+               cx231xx_info("SC(0x00) register = 0x%x\n", config_info);
+               cx231xx_info("scenario %d\n",
+                           (dev->current_pcb_config.index) + 1);
+               cx231xx_info("type=%x\n", dev->current_pcb_config.type);
+               cx231xx_info("mode=%x\n", dev->current_pcb_config.mode);
+               cx231xx_info("speed=%x\n", dev->current_pcb_config.speed);
+               cx231xx_info("ts1_source=%x\n",
+                            dev->current_pcb_config.ts1_source);
+               cx231xx_info("ts2_source=%x\n",
+                            dev->current_pcb_config.ts2_source);
+               cx231xx_info("analog_source=%x\n",
+                            dev->current_pcb_config.analog_source);
+       }
+
+       return 0;
+}
diff --git a/drivers/media/video/cx231xx/cx231xx-pcb-cfg.h b/drivers/media/video/cx231xx/cx231xx-pcb-cfg.h
new file mode 100644 (file)
index 0000000..f5e46e8
--- /dev/null
@@ -0,0 +1,231 @@
+/*
+   cx231xx-pcb-cfg.h - driver for Conexant
+               Cx23100/101/102 USB video capture devices
+
+   Copyright (C) 2008 <srinivasa.deevi at conexant dot com>
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef _PCB_CONFIG_H_
+#define _PCB_CONFIG_H_
+
+#include <linux/init.h>
+#include <linux/module.h>
+
+/***************************************************************************
+                               * Class Information *
+***************************************************************************/
+#define CLASS_DEFAULT       0xFF
+
+enum VENDOR_REQUEST_TYPE {
+       /* Set/Get I2C */
+       VRT_SET_I2C0 = 0x0,
+       VRT_SET_I2C1 = 0x1,
+       VRT_SET_I2C2 = 0x2,
+       VRT_GET_I2C0 = 0x4,
+       VRT_GET_I2C1 = 0x5,
+       VRT_GET_I2C2 = 0x6,
+
+       /* Set/Get GPIO */
+       VRT_SET_GPIO = 0x8,
+       VRT_GET_GPIO = 0x9,
+
+       /* Set/Get GPIE */
+       VRT_SET_GPIE = 0xA,
+       VRT_GET_GPIE = 0xB,
+
+       /* Set/Get Register Control/Status */
+       VRT_SET_REGISTER = 0xC,
+       VRT_GET_REGISTER = 0xD,
+
+       /* Get Extended Compat ID Descriptor */
+       VRT_GET_EXTCID_DESC = 0xFF,
+};
+
+enum BYTE_ENABLE_MASK {
+       ENABLE_ONE_BYTE = 0x1,
+       ENABLE_TWE_BYTE = 0x3,
+       ENABLE_THREE_BYTE = 0x7,
+       ENABLE_FOUR_BYTE = 0xF,
+};
+
+#define SPEED_MASK      0x1
+enum USB_SPEED{
+       FULL_SPEED = 0x0,       /* 0: full speed */
+       HIGH_SPEED = 0x1        /* 1: high speed */
+};
+
+enum _true_false{
+       FALSE = 0,
+       TRUE = 1
+};
+
+#define TS_MASK         0x6
+enum TS_PORT{
+       NO_TS_PORT = 0x0,       /* 2'b00: Neither port used. PCB not a Hybrid,
+                                  only offers Analog TV or Video */
+       TS1_PORT = 0x4,         /* 2'b10: TS1 Input (Hybrid mode :
+                               Digital or External Analog/Compressed source) */
+       TS1_TS2_PORT = 0x6,     /* 2'b11: TS1 & TS2 Inputs
+                               (Dual inputs from Digital and/or
+                               External Analog/Compressed sources) */
+       TS1_EXT_CLOCK = 0x6,    /* 2'b11: TS1 & TS2 as selector
+                                               to external clock */
+       TS1VIP_TS2_PORT = 0x2   /* 2'b01: TS1 used as 656/VIP Output,
+                                  TS2 Input (from Compressor) */
+};
+
+#define EAVP_MASK       0x8
+enum EAV_PRESENT{
+       NO_EXTERNAL_AV = 0x0,   /* 0: No External A/V inputs
+                                               (no need for i2s blcok),
+                                               Analog Tuner must be present */
+       EXTERNAL_AV = 0x8       /* 1: External A/V inputs
+                                               present (requires i2s blk) */
+};
+
+#define ATM_MASK        0x30
+enum AT_MODE{
+       DIF_TUNER = 0x30,       /* 2'b11: IF Tuner (requires use of DIF) */
+       BASEBAND_SOUND = 0x20,  /* 2'b10: Baseband Composite &
+                                               Sound-IF Signals present */
+       NO_TUNER = 0x10         /* 2'b0x: No Analog Tuner present */
+};
+
+#define PWR_SEL_MASK    0x40
+enum POWE_TYPE{
+       SELF_POWER = 0x0,       /* 0: self power */
+       BUS_POWER = 0x40        /* 1: bus power */
+};
+
+enum USB_POWE_TYPE{
+       USB_SELF_POWER = 0,
+       USB_BUS_POWER
+};
+
+#define BO_0_MASK       0x80
+enum AVDEC_STATUS{
+       AVDEC_DISABLE = 0x0,    /* 0: A/V Decoder Disabled */
+       AVDEC_ENABLE = 0x80     /* 1: A/V Decoder Enabled */
+};
+
+#define BO_1_MASK       0x100
+
+#define BUSPOWER_MASK   0xC4   /* for Polaris spec 0.8 */
+#define SELFPOWER_MASK  0x86
+
+/***************************************************************************/
+#define NOT_DECIDE_YET  0xFE
+#define NOT_SUPPORTED   0xFF
+
+/***************************************************************************
+                               * for mod field use *
+***************************************************************************/
+#define MOD_DIGITAL     0x1
+#define MOD_ANALOG      0x2
+#define MOD_DIF         0x4
+#define MOD_EXTERNAL    0x8
+#define CAP_ALL_MOD     0x0f
+
+/***************************************************************************
+                               * source define *
+***************************************************************************/
+#define SOURCE_DIGITAL          0x1
+#define SOURCE_ANALOG           0x2
+#define SOURCE_DIF              0x4
+#define SOURCE_EXTERNAL         0x8
+#define SOURCE_TS_BDA                  0x10
+#define SOURCE_TS_ENCODE               0x20
+#define SOURCE_TS_EXTERNAL     0x40
+
+/***************************************************************************
+                               * interface information define *
+***************************************************************************/
+struct INTERFACE_INFO {
+       u8 interrupt_index;
+       u8 ts1_index;
+       u8 ts2_index;
+       u8 audio_index;
+       u8 video_index;
+       u8 vanc_index;          /* VBI */
+       u8 hanc_index;          /* Sliced CC */
+       u8 ir_index;
+};
+
+enum INDEX_INTERFACE_INFO{
+       INDEX_INTERRUPT = 0x0,
+       INDEX_TS1,
+       INDEX_TS2,
+       INDEX_AUDIO,
+       INDEX_VIDEO,
+       INDEX_VANC,
+       INDEX_HANC,
+       INDEX_IR,
+};
+
+/***************************************************************************
+                               * configuration information define *
+***************************************************************************/
+struct CONFIG_INFO {
+       u8 config_index;
+       struct INTERFACE_INFO interface_info;
+};
+
+struct pcb_config {
+       u8 index;
+       u8 type;                /* bus power or self power,
+                                          self power--0, bus_power--1 */
+       u8 speed;               /* usb speed, 2.0--1, 1.1--0 */
+       u8 mode;                /* digital , anlog, dif or external A/V */
+       u32 ts1_source;         /* three source -- BDA,External,encode */
+       u32 ts2_source;
+       u32 analog_source;
+       u8 digital_index;       /* bus-power used */
+       u8 analog_index;        /* bus-power used */
+       u8 dif_index;           /* bus-power used */
+       u8 external_index;      /* bus-power used */
+       u8 config_num;          /* current config num, 0,1,2,
+                                                  for self-power, always 0 */
+       struct CONFIG_INFO hs_config_info[3];
+       struct CONFIG_INFO fs_config_info[3];
+};
+
+enum INDEX_PCB_CONFIG{
+       INDEX_SELFPOWER_DIGITAL_ONLY = 0x0,
+       INDEX_SELFPOWER_DUAL_DIGITAL,
+       INDEX_SELFPOWER_ANALOG_ONLY,
+       INDEX_SELFPOWER_DUAL,
+       INDEX_SELFPOWER_TRIPLE,
+       INDEX_SELFPOWER_COMPRESSOR,
+       INDEX_BUSPOWER_DIGITAL_ONLY,
+       INDEX_BUSPOWER_ANALOG_ONLY,
+       INDEX_BUSPOWER_DIF_ONLY,
+       INDEX_BUSPOWER_EXTERNAL_ONLY,
+       INDEX_BUSPOWER_EXTERNAL_ANALOG,
+       INDEX_BUSPOWER_EXTERNAL_DIF,
+       INDEX_BUSPOWER_EXTERNAL_DIGITAL,
+       INDEX_BUSPOWER_DIGITAL_ANALOG,
+       INDEX_BUSPOWER_DIGITAL_DIF,
+       INDEX_BUSPOWER_DIGITAL_ANALOG_EXTERNAL,
+       INDEX_BUSPOWER_DIGITAL_DIF_EXTERNAL,
+};
+
+/***************************************************************************/
+struct cx231xx;
+
+u32 initialize_cx231xx(struct cx231xx *p_dev);
+
+#endif
diff --git a/drivers/media/video/cx231xx/cx231xx-reg.h b/drivers/media/video/cx231xx/cx231xx-reg.h
new file mode 100644 (file)
index 0000000..750c5d3
--- /dev/null
@@ -0,0 +1,1564 @@
+/*
+   cx231xx-reg.h - driver for Conexant Cx23100/101/102
+              USB video capture devices
+
+   Copyright (C) 2008 <srinivasa.deevi at conexant dot com>
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef _CX231XX_REG_H
+#define _CX231XX_REG_H
+
+/*****************************************************************************
+                               * VBI codes *
+*****************************************************************************/
+
+#define SAV_ACTIVE_VIDEO_FIELD1                0x80
+#define EAV_ACTIVE_VIDEO_FIELD1                0x90
+
+#define SAV_ACTIVE_VIDEO_FIELD2                0xc0
+#define EAV_ACTIVE_VIDEO_FIELD2                0xd0
+
+#define SAV_VBLANK_FIELD1              0xa0
+#define EAV_VBLANK_FIELD1              0xb0
+
+#define SAV_VBLANK_FIELD2              0xe0
+#define EAV_VBLANK_FIELD2              0xf0
+
+#define SAV_VBI_FIELD1                 0x20
+#define EAV_VBI_FIELD1                 0x30
+
+#define SAV_VBI_FIELD2                 0x60
+#define EAV_VBI_FIELD2                 0x70
+
+/*****************************************************************************/
+/* Audio ADC Registers */
+#define CH_PWR_CTRL1                   0x0000000e
+#define CH_PWR_CTRL2                   0x0000000f
+/*****************************************************************************/
+
+#define      HOST_REG1                0x000
+#define      FLD_FORCE_CHIP_SEL       0x80
+#define      FLD_AUTO_INC_DIS         0x20
+#define      FLD_PREFETCH_EN          0x10
+/* Reserved [2:3] */
+#define      FLD_DIGITAL_PWR_DN       0x02
+#define      FLD_SLEEP                0x01
+
+/*****************************************************************************/
+#define      HOST_REG2                0x001
+
+/*****************************************************************************/
+#define      HOST_REG3                0x002
+
+/*****************************************************************************/
+/* added for polaris */
+#define      GPIO_PIN_CTL0            0x3
+#define      GPIO_PIN_CTL1            0x4
+#define      GPIO_PIN_CTL2            0x5
+#define      GPIO_PIN_CTL3            0x6
+#define      TS1_PIN_CTL0             0x7
+#define      TS1_PIN_CTL1             0x8
+/*****************************************************************************/
+
+#define      FLD_CLK_IN_EN            0x80
+#define      FLD_XTAL_CTRL            0x70
+#define      FLD_BB_CLK_MODE          0x0C
+#define      FLD_REF_DIV_PLL          0x02
+#define      FLD_REF_SEL_PLL1         0x01
+
+/*****************************************************************************/
+#define      CHIP_CTRL                0x100
+/* Reserved [27] */
+/* Reserved [31:21] */
+#define      FLD_CHIP_ACFG_DIS        0x00100000
+/* Reserved [19] */
+#define      FLD_DUAL_MODE_ADC2       0x00040000
+#define      FLD_SIF_EN               0x00020000
+#define      FLD_SOFT_RST             0x00010000
+#define      FLD_DEVICE_ID            0x0000ffff
+
+/*****************************************************************************/
+#define      AFE_CTRL                 0x104
+#define      AFE_CTRL_C2HH_SRC_CTRL   0x104
+#define      FLD_DIF_OUT_SEL          0xc0000000
+#define      FLD_AUX_PLL_CLK_ALT_SEL  0x3c000000
+#define      FLD_UV_ORDER_MODE        0x02000000
+#define      FLD_FUNC_MODE            0x01800000
+#define      FLD_ROT1_PHASE_CTL       0x007f8000
+#define      FLD_AUD_IN_SEL           0x00004000
+#define      FLD_LUMA_IN_SEL          0x00002000
+#define      FLD_CHROMA_IN_SEL        0x00001000
+/* reserve [11:10] */
+#define      FLD_INV_SPEC_DIS         0x00000200
+#define      FLD_VGA_SEL_CH3          0x00000100
+#define      FLD_VGA_SEL_CH2          0x00000080
+#define      FLD_VGA_SEL_CH1          0x00000040
+#define      FLD_DCR_BYP_CH1          0x00000020
+#define      FLD_DCR_BYP_CH2          0x00000010
+#define      FLD_DCR_BYP_CH3          0x00000008
+#define      FLD_EN_12DB_CH3          0x00000004
+#define      FLD_EN_12DB_CH2          0x00000002
+#define      FLD_EN_12DB_CH1          0x00000001
+
+/* redefine in Cx231xx */
+/*****************************************************************************/
+#define      DC_CTRL1                 0x108
+/* reserve [31:30] */
+#define      FLD_CLAMP_LVL_CH1        0x3fff8000
+#define      FLD_CLAMP_LVL_CH2        0x00007fff
+/*****************************************************************************/
+
+/*****************************************************************************/
+#define      DC_CTRL2                 0x10c
+/* reserve [31:28] */
+#define      FLD_CLAMP_LVL_CH3        0x00fffe00
+#define      FLD_CLAMP_WIND_LENTH     0x000001e0
+#define      FLD_C2HH_SAT_MIN         0x0000001e
+#define      FLD_FLT_BYP_SEL          0x00000001
+/*****************************************************************************/
+
+/*****************************************************************************/
+#define      DC_CTRL3                 0x110
+/* reserve [31:16] */
+#define      FLD_ERR_GAIN_CTL         0x00070000
+#define      FLD_LPF_MIN              0x0000ffff
+/*****************************************************************************/
+
+/*****************************************************************************/
+#define      DC_CTRL4                 0x114
+/* reserve [31:31] */
+#define      FLD_INTG_CH1             0x7fffffff
+/*****************************************************************************/
+
+/*****************************************************************************/
+#define      DC_CTRL5                 0x118
+/* reserve [31:31] */
+#define      FLD_INTG_CH2             0x7fffffff
+/*****************************************************************************/
+
+/*****************************************************************************/
+#define      DC_CTRL6                 0x11c
+/* reserve [31:31] */
+#define      FLD_INTG_CH3             0x7fffffff
+/*****************************************************************************/
+
+/*****************************************************************************/
+#define      PIN_CTRL                 0x120
+#define      FLD_OEF_AGC_RF           0x00000001
+#define      FLD_OEF_AGC_IFVGA        0x00000002
+#define      FLD_OEF_AGC_IF           0x00000004
+#define      FLD_REG_BO_PUD           0x80000000
+#define      FLD_IR_IRQ_STAT          0x40000000
+#define      FLD_AUD_IRQ_STAT         0x20000000
+#define      FLD_VID_IRQ_STAT         0x10000000
+/* Reserved [27:26] */
+#define      FLD_IRQ_N_OUT_EN         0x02000000
+#define      FLD_IRQ_N_POLAR          0x01000000
+/* Reserved [23:6] */
+#define      FLD_OE_AUX_PLL_CLK       0x00000020
+#define      FLD_OE_I2S_BCLK          0x00000010
+#define      FLD_OE_I2S_WCLK          0x00000008
+#define      FLD_OE_AGC_IF            0x00000004
+#define      FLD_OE_AGC_IFVGA         0x00000002
+#define      FLD_OE_AGC_RF            0x00000001
+
+/*****************************************************************************/
+#define      AUD_IO_CTRL              0x124
+/* Reserved [31:8] */
+#define      FLD_I2S_PORT_DIR         0x00000080
+#define      FLD_I2S_OUT_SRC          0x00000040
+#define      FLD_AUD_CHAN3_SRC        0x00000030
+#define      FLD_AUD_CHAN2_SRC        0x0000000c
+#define      FLD_AUD_CHAN1_SRC        0x00000003
+
+/*****************************************************************************/
+#define      AUD_LOCK1                0x128
+#define      FLD_AUD_LOCK_KI_SHIFT    0xc0000000
+#define      FLD_AUD_LOCK_KD_SHIFT    0x30000000
+/* Reserved [27:25] */
+#define      FLD_EN_AV_LOCK           0x01000000
+#define      FLD_VID_COUNT            0x00ffffff
+
+/*****************************************************************************/
+#define      AUD_LOCK2                0x12c
+#define      FLD_AUD_LOCK_KI_MULT     0xf0000000
+#define      FLD_AUD_LOCK_KD_MULT     0x0F000000
+/* Reserved [23:22] */
+#define      FLD_AUD_LOCK_FREQ_SHIFT  0x00300000
+#define      FLD_AUD_COUNT            0x000fffff
+
+/*****************************************************************************/
+#define      AFE_DIAG_CTRL1           0x134
+/* Reserved [31:16] */
+#define      FLD_CUV_DLY_LENGTH       0x0000ff00
+#define      FLD_YC_DLY_LENGTH        0x000000ff
+
+/*****************************************************************************/
+/* Poalris redefine */
+#define      AFE_DIAG_CTRL3           0x138
+/* Reserved [31:26] */
+#define      FLD_AUD_DUAL_FLAG_POL    0x02000000
+#define      FLD_VID_DUAL_FLAG_POL    0x01000000
+/* Reserved [23:23] */
+#define      FLD_COL_CLAMP_DIS_CH1    0x00400000
+#define      FLD_COL_CLAMP_DIS_CH2    0x00200000
+#define      FLD_COL_CLAMP_DIS_CH3    0x00100000
+
+#define      TEST_CTRL1               0x144
+/* Reserved [31:29] */
+#define      FLD_LBIST_EN             0x10000000
+/* Reserved [27:10] */
+#define      FLD_FI_BIST_INTR_R       0x0000200
+#define      FLD_FI_BIST_INTR_L       0x0000100
+#define      FLD_BIST_FAIL_AUD_PLL    0x0000080
+#define      FLD_BIST_INTR_AUD_PLL    0x0000040
+#define      FLD_BIST_FAIL_VID_PLL    0x0000020
+#define      FLD_BIST_INTR_VID_PLL    0x0000010
+/* Reserved [3:1] */
+#define      FLD_CIR_TEST_DIS         0x00000001
+
+/*****************************************************************************/
+#define      TEST_CTRL2               0x148
+#define      FLD_TSXCLK_POL_CTL       0x80000000
+#define      FLD_ISO_CTL_SEL          0x40000000
+#define      FLD_ISO_CTL_EN           0x20000000
+#define      FLD_BIST_DEBUGZ          0x10000000
+#define      FLD_AUD_BIST_TEST_H      0x0f000000
+/* Reserved [23:22] */
+#define      FLD_FLTRN_BIST_TEST_H    0x00020000
+#define      FLD_VID_BIST_TEST_H      0x00010000
+/* Reserved [19:17] */
+#define      FLD_BIST_TEST_H          0x00010000
+/* Reserved [15:13] */
+#define      FLD_TAB_EN               0x00001000
+/* Reserved [11:0] */
+
+/*****************************************************************************/
+#define      BIST_STAT                0x14c
+#define      FLD_AUD_BIST_FAIL_H      0xfff00000
+#define      FLD_FLTRN_BIST_FAIL_H    0x00180000
+#define      FLD_VID_BIST_FAIL_H      0x00070000
+#define      FLD_AUD_BIST_TST_DONE    0x0000fff0
+#define      FLD_FLTRN_BIST_TST_DONE  0x00000008
+#define      FLD_VID_BIST_TST_DONE    0x00000007
+
+/*****************************************************************************/
+/* DirectIF registers definition have been moved to DIF_reg.h                */
+/*****************************************************************************/
+#define      MODE_CTRL                0x400
+#define      FLD_AFD_PAL60_DIS        0x20000000
+#define      FLD_AFD_FORCE_SECAM      0x10000000
+#define      FLD_AFD_FORCE_PALNC      0x08000000
+#define      FLD_AFD_FORCE_PAL        0x04000000
+#define      FLD_AFD_PALM_SEL         0x03000000
+#define      FLD_CKILL_MODE           0x00300000
+#define      FLD_COMB_NOTCH_MODE      0x00c00000       /* bit[19:18] */
+#define      FLD_CLR_LOCK_STAT        0x00020000
+#define      FLD_FAST_LOCK_MD         0x00010000
+#define      FLD_WCEN                 0x00008000
+#define      FLD_CAGCEN               0x00004000
+#define      FLD_CKILLEN              0x00002000
+#define      FLD_AUTO_SC_LOCK         0x00001000
+#define      FLD_MAN_SC_FAST_LOCK     0x00000800
+#define      FLD_INPUT_MODE           0x00000600
+#define      FLD_AFD_ACQUIRE          0x00000100
+#define      FLD_AFD_NTSC_SEL         0x00000080
+#define      FLD_AFD_PAL_SEL          0x00000040
+#define      FLD_ACFG_DIS             0x00000020
+#define      FLD_SQ_PIXEL             0x00000010
+#define      FLD_VID_FMT_SEL          0x0000000f
+
+/*****************************************************************************/
+#define      OUT_CTRL1                0x404
+#define      FLD_POLAR                0x7f000000
+/* Reserved [23] */
+#define      FLD_RND_MODE             0x00600000
+#define      FLD_VIPCLAMP_EN          0x00100000
+#define      FLD_VIPBLANK_EN          0x00080000
+#define      FLD_VIP_OPT_AL           0x00040000
+#define      FLD_IDID0_SOURCE         0x00020000
+#define      FLD_DCMODE               0x00010000
+#define      FLD_CLK_GATING           0x0000c000
+#define      FLD_CLK_INVERT           0x00002000
+#define      FLD_HSFMT                0x00001000
+#define      FLD_VALIDFMT             0x00000800
+#define      FLD_ACTFMT               0x00000400
+#define      FLD_SWAPRAW              0x00000200
+#define      FLD_CLAMPRAW_EN          0x00000100
+#define      FLD_BLUE_FIELD_EN        0x00000080
+#define      FLD_BLUE_FIELD_ACT       0x00000040
+#define      FLD_TASKBIT_VAL          0x00000020
+#define      FLD_ANC_DATA_EN          0x00000010
+#define      FLD_VBIHACTRAW_EN        0x00000008
+#define      FLD_MODE10B              0x00000004
+#define      FLD_OUT_MODE             0x00000003
+
+/*****************************************************************************/
+#define      OUT_CTRL2                0x408
+#define      FLD_AUD_GRP              0xc0000000
+#define      FLD_SAMPLE_RATE          0x30000000
+#define      FLD_AUD_ANC_EN           0x08000000
+#define      FLD_EN_C                 0x04000000
+#define      FLD_EN_B                 0x02000000
+#define      FLD_EN_A                 0x01000000
+/* Reserved [23:20] */
+#define      FLD_IDID1_LSB            0x000c0000
+#define      FLD_IDID0_LSB            0x00030000
+#define      FLD_IDID1_MSB            0x0000ff00
+#define      FLD_IDID0_MSB            0x000000ff
+
+/*****************************************************************************/
+#define      GEN_STAT                 0x40c
+#define      FLD_VCR_DETECT           0x00800000
+#define      FLD_SPECIAL_PLAY_N       0x00400000
+#define      FLD_VPRES                0x00200000
+#define      FLD_AGC_LOCK             0x00100000
+#define      FLD_CSC_LOCK             0x00080000
+#define      FLD_VLOCK                0x00040000
+#define      FLD_SRC_LOCK             0x00020000
+#define      FLD_HLOCK                0x00010000
+#define      FLD_VSYNC_N              0x00008000
+#define      FLD_SRC_FIFO_UFLOW       0x00004000
+#define      FLD_SRC_FIFO_OFLOW       0x00002000
+#define      FLD_FIELD                0x00001000
+#define      FLD_AFD_FMT_STAT         0x00000f00
+#define      FLD_MV_TYPE2_PAIR        0x00000080
+#define      FLD_MV_T3CS              0x00000040
+#define      FLD_MV_CS                0x00000020
+#define      FLD_MV_PSP               0x00000010
+/* Reserved [3] */
+#define      FLD_MV_CDAT              0x00000003
+
+/*****************************************************************************/
+#define      INT_STAT_MASK            0x410
+#define      FLD_COMB_3D_FIFO_MSK     0x80000000
+#define      FLD_WSS_DAT_AVAIL_MSK    0x40000000
+#define      FLD_GS2_DAT_AVAIL_MSK    0x20000000
+#define      FLD_GS1_DAT_AVAIL_MSK    0x10000000
+#define      FLD_CC_DAT_AVAIL_MSK     0x08000000
+#define      FLD_VPRES_CHANGE_MSK     0x04000000
+#define      FLD_MV_CHANGE_MSK        0x02000000
+#define      FLD_END_VBI_EVEN_MSK     0x01000000
+#define      FLD_END_VBI_ODD_MSK      0x00800000
+#define      FLD_FMT_CHANGE_MSK       0x00400000
+#define      FLD_VSYNC_TRAIL_MSK      0x00200000
+#define      FLD_HLOCK_CHANGE_MSK     0x00100000
+#define      FLD_VLOCK_CHANGE_MSK     0x00080000
+#define      FLD_CSC_LOCK_CHANGE_MSK  0x00040000
+#define      FLD_SRC_FIFO_UFLOW_MSK   0x00020000
+#define      FLD_SRC_FIFO_OFLOW_MSK   0x00010000
+#define      FLD_COMB_3D_FIFO_STAT    0x00008000
+#define      FLD_WSS_DAT_AVAIL_STAT   0x00004000
+#define      FLD_GS2_DAT_AVAIL_STAT   0x00002000
+#define      FLD_GS1_DAT_AVAIL_STAT   0x00001000
+#define      FLD_CC_DAT_AVAIL_STAT    0x00000800
+#define      FLD_VPRES_CHANGE_STAT    0x00000400
+#define      FLD_MV_CHANGE_STAT       0x00000200
+#define      FLD_END_VBI_EVEN_STAT    0x00000100
+#define      FLD_END_VBI_ODD_STAT     0x00000080
+#define      FLD_FMT_CHANGE_STAT      0x00000040
+#define      FLD_VSYNC_TRAIL_STAT     0x00000020
+#define      FLD_HLOCK_CHANGE_STAT    0x00000010
+#define      FLD_VLOCK_CHANGE_STAT    0x00000008
+#define      FLD_CSC_LOCK_CHANGE_STAT 0x00000004
+#define      FLD_SRC_FIFO_UFLOW_STAT  0x00000002
+#define      FLD_SRC_FIFO_OFLOW_STAT  0x00000001
+
+/*****************************************************************************/
+#define      LUMA_CTRL                0x414
+#define      BRIGHTNESS_CTRL_BYTE     0x414
+#define      CONTRAST_CTRL_BYTE       0x415
+#define      LUMA_CTRL_BYTE_3         0x416
+#define      FLD_LUMA_CORE_SEL        0x00c00000
+#define      FLD_RANGE                0x00300000
+/* Reserved [19] */
+#define      FLD_PEAK_EN              0x00040000
+#define      FLD_PEAK_SEL             0x00030000
+#define      FLD_CNTRST               0x0000ff00
+#define      FLD_BRITE                0x000000ff
+
+/*****************************************************************************/
+#define      HSCALE_CTRL              0x418
+#define      FLD_HFILT                0x03000000
+#define      FLD_HSCALE               0x00ffffff
+
+/*****************************************************************************/
+#define      VSCALE_CTRL              0x41c
+#define      FLD_LINE_AVG_DIS         0x01000000
+/* Reserved [23:20] */
+#define      FLD_VS_INTRLACE          0x00080000
+#define      FLD_VFILT                0x00070000
+/* Reserved [15:13] */
+#define      FLD_VSCALE               0x00001fff
+
+/*****************************************************************************/
+#define      CHROMA_CTRL              0x420
+#define      USAT_CTRL_BYTE           0x420
+#define      VSAT_CTRL_BYTE           0x421
+#define      HUE_CTRL_BYTE            0x422
+#define      FLD_C_LPF_EN             0x20000000
+#define      FLD_CHR_DELAY            0x1c000000
+#define      FLD_C_CORE_SEL           0x03000000
+#define      FLD_HUE                  0x00ff0000
+#define      FLD_VSAT                 0x0000ff00
+#define      FLD_USAT                 0x000000ff
+
+/*****************************************************************************/
+#define      VBI_LINE_CTRL1           0x424
+#define      FLD_VBI_MD_LINE4         0xff000000
+#define      FLD_VBI_MD_LINE3         0x00ff0000
+#define      FLD_VBI_MD_LINE2         0x0000ff00
+#define      FLD_VBI_MD_LINE1         0x000000ff
+
+/*****************************************************************************/
+#define      VBI_LINE_CTRL2           0x428
+#define      FLD_VBI_MD_LINE8         0xff000000
+#define      FLD_VBI_MD_LINE7         0x00ff0000
+#define      FLD_VBI_MD_LINE6         0x0000ff00
+#define      FLD_VBI_MD_LINE5         0x000000ff
+
+/*****************************************************************************/
+#define      VBI_LINE_CTRL3           0x42c
+#define      FLD_VBI_MD_LINE12        0xff000000
+#define      FLD_VBI_MD_LINE11        0x00ff0000
+#define      FLD_VBI_MD_LINE10        0x0000ff00
+#define      FLD_VBI_MD_LINE9         0x000000ff
+
+/*****************************************************************************/
+#define      VBI_LINE_CTRL4           0x430
+#define      FLD_VBI_MD_LINE16        0xff000000
+#define      FLD_VBI_MD_LINE15        0x00ff0000
+#define      FLD_VBI_MD_LINE14        0x0000ff00
+#define      FLD_VBI_MD_LINE13        0x000000ff
+
+/*****************************************************************************/
+#define      VBI_LINE_CTRL5           0x434
+#define      FLD_VBI_MD_LINE17        0x000000ff
+
+/*****************************************************************************/
+#define      VBI_FC_CFG               0x438
+#define      FLD_FC_ALT2              0xff000000
+#define      FLD_FC_ALT1              0x00ff0000
+#define      FLD_FC_ALT2_TYPE         0x0000f000
+#define      FLD_FC_ALT1_TYPE         0x00000f00
+/* Reserved [7:1] */
+#define      FLD_FC_SEARCH_MODE       0x00000001
+
+/*****************************************************************************/
+#define      VBI_MISC_CFG1            0x43c
+#define      FLD_TTX_PKTADRU          0xfff00000
+#define      FLD_TTX_PKTADRL          0x000fff00
+/* Reserved [7:6] */
+#define      FLD_MOJI_PACK_DIS        0x00000020
+#define      FLD_VPS_DEC_DIS          0x00000010
+#define      FLD_CRI_MARG_SCALE       0x0000000c
+#define      FLD_EDGE_RESYNC_EN       0x00000002
+#define      FLD_ADAPT_SLICE_DIS      0x00000001
+
+/*****************************************************************************/
+#define      VBI_MISC_CFG2            0x440
+#define      FLD_HAMMING_TYPE         0x0f000000
+/* Reserved [23:20] */
+#define      FLD_WSS_FIFO_RST         0x00080000
+#define      FLD_GS2_FIFO_RST         0x00040000
+#define      FLD_GS1_FIFO_RST         0x00020000
+#define      FLD_CC_FIFO_RST          0x00010000
+/* Reserved [15:12] */
+#define      FLD_VBI3_SDID            0x00000f00
+#define      FLD_VBI2_SDID            0x000000f0
+#define      FLD_VBI1_SDID            0x0000000f
+
+/*****************************************************************************/
+#define      VBI_PAY1                 0x444
+#define      FLD_GS1_FIFO_DAT         0xFF000000
+#define      FLD_GS1_STAT             0x00FF0000
+#define      FLD_CC_FIFO_DAT          0x0000FF00
+#define      FLD_CC_STAT              0x000000FF
+
+/*****************************************************************************/
+#define      VBI_PAY2                 0x448
+#define      FLD_WSS_FIFO_DAT         0xff000000
+#define      FLD_WSS_STAT             0x00ff0000
+#define      FLD_GS2_FIFO_DAT         0x0000ff00
+#define      FLD_GS2_STAT             0x000000ff
+
+/*****************************************************************************/
+#define      VBI_CUST1_CFG1           0x44c
+/* Reserved [31] */
+#define      FLD_VBI1_CRIWIN          0x7f000000
+#define      FLD_VBI1_SLICE_DIST      0x00f00000
+#define      FLD_VBI1_BITINC          0x000fff00
+#define      FLD_VBI1_HDELAY          0x000000ff
+
+/*****************************************************************************/
+#define      VBI_CUST1_CFG2           0x450
+#define      FLD_VBI1_FC_LENGTH       0x1f000000
+#define      FLD_VBI1_FRAME_CODE      0x00ffffff
+
+/*****************************************************************************/
+#define      VBI_CUST1_CFG3           0x454
+#define      FLD_VBI1_HAM_EN          0x80000000
+#define      FLD_VBI1_FIFO_MODE       0x70000000
+#define      FLD_VBI1_FORMAT_TYPE     0x0f000000
+#define      FLD_VBI1_PAYLD_LENGTH    0x00ff0000
+#define      FLD_VBI1_CRI_LENGTH      0x0000f000
+#define      FLD_VBI1_CRI_MARGIN      0x00000f00
+#define      FLD_VBI1_CRI_TIME        0x000000ff
+
+/*****************************************************************************/
+#define      VBI_CUST2_CFG1           0x458
+/* Reserved [31] */
+#define      FLD_VBI2_CRIWIN          0x7f000000
+#define      FLD_VBI2_SLICE_DIST      0x00f00000
+#define      FLD_VBI2_BITINC          0x000fff00
+#define      FLD_VBI2_HDELAY          0x000000ff
+
+/*****************************************************************************/
+#define      VBI_CUST2_CFG2           0x45c
+#define      FLD_VBI2_FC_LENGTH       0x1f000000
+#define      FLD_VBI2_FRAME_CODE      0x00ffffff
+
+/*****************************************************************************/
+#define      VBI_CUST2_CFG3           0x460
+#define      FLD_VBI2_HAM_EN          0x80000000
+#define      FLD_VBI2_FIFO_MODE       0x70000000
+#define      FLD_VBI2_FORMAT_TYPE     0x0f000000
+#define      FLD_VBI2_PAYLD_LENGTH    0x00ff0000
+#define      FLD_VBI2_CRI_LENGTH      0x0000f000
+#define      FLD_VBI2_CRI_MARGIN      0x00000f00
+#define      FLD_VBI2_CRI_TIME        0x000000ff
+
+/*****************************************************************************/
+#define      VBI_CUST3_CFG1           0x464
+/* Reserved [31] */
+#define      FLD_VBI3_CRIWIN          0x7f000000
+#define      FLD_VBI3_SLICE_DIST      0x00f00000
+#define      FLD_VBI3_BITINC          0x000fff00
+#define      FLD_VBI3_HDELAY          0x000000ff
+
+/*****************************************************************************/
+#define      VBI_CUST3_CFG2           0x468
+#define      FLD_VBI3_FC_LENGTH       0x1f000000
+#define      FLD_VBI3_FRAME_CODE      0x00ffffff
+
+/*****************************************************************************/
+#define      VBI_CUST3_CFG3           0x46c
+#define      FLD_VBI3_HAM_EN          0x80000000
+#define      FLD_VBI3_FIFO_MODE       0x70000000
+#define      FLD_VBI3_FORMAT_TYPE     0x0f000000
+#define      FLD_VBI3_PAYLD_LENGTH    0x00ff0000
+#define      FLD_VBI3_CRI_LENGTH      0x0000f000
+#define      FLD_VBI3_CRI_MARGIN      0x00000f00
+#define      FLD_VBI3_CRI_TIME        0x000000ff
+
+/*****************************************************************************/
+#define      HORIZ_TIM_CTRL           0x470
+#define      FLD_BGDEL_CNT            0xff000000
+/* Reserved [23:22] */
+#define      FLD_HACTIVE_CNT          0x003ff000
+/* Reserved [11:10] */
+#define      FLD_HBLANK_CNT           0x000003ff
+
+/*****************************************************************************/
+#define      VERT_TIM_CTRL            0x474
+#define      FLD_V656BLANK_CNT        0xff000000
+/* Reserved [23:22] */
+#define      FLD_VACTIVE_CNT          0x003ff000
+/* Reserved [11:10] */
+#define      FLD_VBLANK_CNT           0x000003ff
+
+/*****************************************************************************/
+#define      SRC_COMB_CFG             0x478
+#define      FLD_CCOMB_2LN_CHECK      0x80000000
+#define      FLD_CCOMB_3LN_EN         0x40000000
+#define      FLD_CCOMB_2LN_EN         0x20000000
+#define      FLD_CCOMB_3D_EN          0x10000000
+/* Reserved [27] */
+#define      FLD_LCOMB_3LN_EN         0x04000000
+#define      FLD_LCOMB_2LN_EN         0x02000000
+#define      FLD_LCOMB_3D_EN          0x01000000
+#define      FLD_LUMA_LPF_SEL         0x00c00000
+#define      FLD_UV_LPF_SEL           0x00300000
+#define      FLD_BLEND_SLOPE          0x000f0000
+#define      FLD_CCOMB_REDUCE_EN      0x00008000
+/* Reserved [14:10] */
+#define      FLD_SRC_DECIM_RATIO      0x000003ff
+
+/*****************************************************************************/
+#define      CHROMA_VBIOFF_CFG        0x47c
+#define      FLD_VBI_VOFFSET          0x1f000000
+/* Reserved [23:20] */
+#define      FLD_SC_STEP              0x000fffff
+
+/*****************************************************************************/
+#define      FIELD_COUNT              0x480
+#define      FLD_FIELD_COUNT_FLD      0x000003ff
+
+/*****************************************************************************/
+#define      MISC_TIM_CTRL            0x484
+#define      FLD_DEBOUNCE_COUNT       0xc0000000
+#define      FLD_VT_LINE_CNT_HYST     0x30000000
+/* Reserved [27] */
+#define      FLD_AFD_STAT             0x07ff0000
+#define      FLD_VPRES_VERT_EN        0x00008000
+/* Reserved [14:12] */
+#define      FLD_HR32                 0x00000800
+#define      FLD_TDALGN               0x00000400
+#define      FLD_TDFIELD              0x00000200
+/* Reserved [8:6] */
+#define      FLD_TEMPDEC              0x0000003f
+
+/*****************************************************************************/
+#define      DFE_CTRL1                0x488
+#define      FLD_CLAMP_AUTO_EN        0x80000000
+#define      FLD_AGC_AUTO_EN          0x40000000
+#define      FLD_VGA_CRUSH_EN         0x20000000
+#define      FLD_VGA_AUTO_EN          0x10000000
+#define      FLD_VBI_GATE_EN          0x08000000
+#define      FLD_CLAMP_LEVEL          0x07000000
+/* Reserved [23:22] */
+#define      FLD_CLAMP_SKIP_CNT       0x00300000
+#define      FLD_AGC_GAIN             0x000fff00
+/* Reserved [7:6] */
+#define      FLD_VGA_GAIN             0x0000003f
+
+/*****************************************************************************/
+#define      DFE_CTRL2                0x48c
+#define      FLD_VGA_ACQUIRE_RANGE    0x00ff0000
+#define      FLD_VGA_TRACK_RANGE      0x0000ff00
+#define      FLD_VGA_SYNC             0x000000ff
+
+/*****************************************************************************/
+#define      DFE_CTRL3                0x490
+#define      FLD_BP_PERCENT           0xff000000
+#define      FLD_DFT_THRESHOLD        0x00ff0000
+/* Reserved [15:12] */
+#define      FLD_SYNC_WIDTH_SEL       0x00000600
+#define      FLD_BP_LOOP_GAIN         0x00000300
+#define      FLD_SYNC_LOOP_GAIN       0x000000c0
+/* Reserved [5:4] */
+#define      FLD_AGC_LOOP_GAIN        0x0000000c
+#define      FLD_DCC_LOOP_GAIN        0x00000003
+
+/*****************************************************************************/
+#define      PLL_CTRL                 0x494
+#define      FLD_PLL_KD               0xff000000
+#define      FLD_PLL_KI               0x00ff0000
+#define      FLD_PLL_MAX_OFFSET       0x0000ffff
+
+/*****************************************************************************/
+#define      HTL_CTRL                 0x498
+/* Reserved [31:24] */
+#define      FLD_AUTO_LOCK_SPD        0x00080000
+#define      FLD_MAN_FAST_LOCK        0x00040000
+#define      FLD_HTL_15K_EN           0x00020000
+#define      FLD_HTL_500K_EN          0x00010000
+#define      FLD_HTL_KD               0x0000ff00
+#define      FLD_HTL_KI               0x000000ff
+
+/*****************************************************************************/
+#define      COMB_CTRL                0x49c
+#define      FLD_COMB_PHASE_LIMIT     0xff000000
+#define      FLD_CCOMB_ERR_LIMIT      0x00ff0000
+#define      FLD_LUMA_THRESHOLD       0x0000ff00
+#define      FLD_LCOMB_ERR_LIMIT      0x000000ff
+
+/*****************************************************************************/
+#define      CRUSH_CTRL               0x4a0
+#define      FLD_WTW_EN               0x00400000
+#define      FLD_CRUSH_FREQ           0x00200000
+#define      FLD_MAJ_SEL_EN           0x00100000
+#define      FLD_MAJ_SEL              0x000c0000
+/* Reserved [17:15] */
+#define      FLD_SYNC_TIP_REDUCE      0x00007e00
+/* Reserved [8:6] */
+#define      FLD_SYNC_TIP_INC         0x0000003f
+
+/*****************************************************************************/
+#define      SOFT_RST_CTRL            0x4a4
+#define      FLD_VD_SOFT_RST          0x00008000
+/* Reserved [14:12] */
+#define      FLD_REG_RST_MSK          0x00000800
+#define      FLD_VOF_RST_MSK          0x00000400
+#define      FLD_MVDET_RST_MSK        0x00000200
+#define      FLD_VBI_RST_MSK          0x00000100
+#define      FLD_SCALE_RST_MSK        0x00000080
+#define      FLD_CHROMA_RST_MSK       0x00000040
+#define      FLD_LUMA_RST_MSK         0x00000020
+#define      FLD_VTG_RST_MSK          0x00000010
+#define      FLD_YCSEP_RST_MSK        0x00000008
+#define      FLD_SRC_RST_MSK          0x00000004
+#define      FLD_DFE_RST_MSK          0x00000002
+/* Reserved [0] */
+
+/*****************************************************************************/
+#define      MV_DT_CTRL1              0x4a8
+/* Reserved [31:29] */
+#define      FLD_PSP_STOP_LINE        0x1f000000
+/* Reserved [23:21] */
+#define      FLD_PSP_STRT_LINE        0x001f0000
+/* Reserved [15] */
+#define      FLD_PSP_LLIMW            0x00007f00
+/* Reserved [7] */
+#define      FLD_PSP_ULIMW            0x0000007f
+
+/*****************************************************************************/
+#define      MV_DT_CTRL2              0x4aC
+#define      FLD_CS_STOPWIN           0xff000000
+#define      FLD_CS_STRTWIN           0x00ff0000
+#define      FLD_CS_WIDTH             0x0000ff00
+#define      FLD_PSP_SPEC_VAL         0x000000ff
+
+/*****************************************************************************/
+#define      MV_DT_CTRL3              0x4B0
+#define      FLD_AUTO_RATE_DIS        0x80000000
+#define      FLD_HLOCK_DIS            0x40000000
+#define      FLD_SEL_FIELD_CNT        0x20000000
+#define      FLD_CS_TYPE2_SEL         0x10000000
+#define      FLD_CS_LINE_THRSH_SEL    0x08000000
+#define      FLD_CS_ATHRESH_SEL       0x04000000
+#define      FLD_PSP_SPEC_SEL         0x02000000
+#define      FLD_PSP_LINES_SEL        0x01000000
+#define      FLD_FIELD_CNT            0x00f00000
+#define      FLD_CS_TYPE2_CNT         0x000fc000
+#define      FLD_CS_LINE_CNT          0x00003f00
+#define      FLD_CS_ATHRESH_LEV       0x000000ff
+
+/*****************************************************************************/
+#define      CHIP_VERSION             0x4b4
+/* Cx231xx redefine  */
+#define      VERSION                  0x4b4
+#define      FLD_REV_ID               0x000000ff
+
+/*****************************************************************************/
+#define      MISC_DIAG_CTRL           0x4b8
+/* Reserved [31:24] */
+#define      FLD_SC_CONVERGE_THRESH   0x00ff0000
+#define      FLD_CCOMB_ERR_LIMIT_3D   0x0000ff00
+#define      FLD_LCOMB_ERR_LIMIT_3D   0x000000ff
+
+/*****************************************************************************/
+#define      VBI_PASS_CTRL            0x4bc
+#define      FLD_VBI_PASS_MD          0x00200000
+#define      FLD_VBI_SETUP_DIS        0x00100000
+#define      FLD_PASS_LINE_CTRL       0x000fffff
+
+/*****************************************************************************/
+/* Cx231xx redefine */
+#define      VCR_DET_CTRL             0x4c0
+#define      FLD_EN_FIELD_PHASE_DET   0x80000000
+#define      FLD_EN_HEAD_SW_DET       0x40000000
+#define      FLD_FIELD_PHASE_LENGTH   0x01ff0000
+/* Reserved [29:25] */
+#define      FLD_FIELD_PHASE_DELAY    0x0000ff00
+#define      FLD_FIELD_PHASE_LIMIT    0x000000f0
+#define      FLD_HEAD_SW_DET_LIMIT    0x0000000f
+
+/*****************************************************************************/
+#define      DL_CTL                   0x800
+#define      DL_CTL_ADDRESS_LOW       0x800    /* Byte 1 in DL_CTL */
+#define      DL_CTL_ADDRESS_HIGH      0x801    /* Byte 2 in DL_CTL */
+#define      DL_CTL_DATA              0x802    /* Byte 3 in DL_CTL */
+#define      DL_CTL_CONTROL           0x803    /* Byte 4 in DL_CTL */
+/* Reserved [31:5] */
+#define      FLD_START_8051           0x10000000
+#define      FLD_DL_ENABLE            0x08000000
+#define      FLD_DL_AUTO_INC          0x04000000
+#define      FLD_DL_MAP               0x03000000
+
+/*****************************************************************************/
+#define      STD_DET_STATUS           0x804
+#define      FLD_SPARE_STATUS1        0xff000000
+#define      FLD_SPARE_STATUS0        0x00ff0000
+#define      FLD_MOD_DET_STATUS1      0x0000ff00
+#define      FLD_MOD_DET_STATUS0      0x000000ff
+
+/*****************************************************************************/
+#define      AUD_BUILD_NUM            0x806
+#define      AUD_VER_NUM              0x807
+#define      STD_DET_CTL              0x808
+#define      STD_DET_CTL_AUD_CTL      0x808    /* Byte 1 in STD_DET_CTL */
+#define      STD_DET_CTL_PREF_MODE    0x809    /* Byte 2 in STD_DET_CTL */
+#define      FLD_SPARE_CTL0           0xff000000
+#define      FLD_DIS_DBX              0x00800000
+#define      FLD_DIS_BTSC             0x00400000
+#define      FLD_DIS_NICAM_A2         0x00200000
+#define      FLD_VIDEO_PRESENT        0x00100000
+#define      FLD_DW8051_VIDEO_FORMAT  0x000f0000
+#define      FLD_PREF_DEC_MODE        0x0000ff00
+#define      FLD_AUD_CONFIG           0x000000ff
+
+/*****************************************************************************/
+#define      DW8051_INT               0x80c
+#define      FLD_VIDEO_PRESENT_CHANGE 0x80000000
+#define      FLD_VIDEO_CHANGE         0x40000000
+#define      FLD_RDS_READY            0x20000000
+#define      FLD_AC97_INT             0x10000000
+#define      FLD_NICAM_BIT_ERROR_TOO_HIGH         0x08000000
+#define      FLD_NICAM_LOCK           0x04000000
+#define      FLD_NICAM_UNLOCK         0x02000000
+#define      FLD_DFT4_TH_CMP          0x01000000
+/* Reserved [23:22] */
+#define      FLD_LOCK_IND_INT         0x00200000
+#define      FLD_DFT3_TH_CMP          0x00100000
+#define      FLD_DFT2_TH_CMP          0x00080000
+#define      FLD_DFT1_TH_CMP          0x00040000
+#define      FLD_FM2_DFT_TH_CMP       0x00020000
+#define      FLD_FM1_DFT_TH_CMP       0x00010000
+#define      FLD_VIDEO_PRESENT_EN     0x00008000
+#define      FLD_VIDEO_CHANGE_EN      0x00004000
+#define      FLD_RDS_READY_EN         0x00002000
+#define      FLD_AC97_INT_EN          0x00001000
+#define      FLD_NICAM_BIT_ERROR_TOO_HIGH_EN      0x00000800
+#define      FLD_NICAM_LOCK_EN        0x00000400
+#define      FLD_NICAM_UNLOCK_EN      0x00000200
+#define      FLD_DFT4_TH_CMP_EN       0x00000100
+/* Reserved [7] */
+#define      FLD_DW8051_INT6_CTL1     0x00000040
+#define      FLD_DW8051_INT5_CTL1     0x00000020
+#define      FLD_DW8051_INT4_CTL1     0x00000010
+#define      FLD_DW8051_INT3_CTL1     0x00000008
+#define      FLD_DW8051_INT2_CTL1     0x00000004
+#define      FLD_DW8051_INT1_CTL1     0x00000002
+#define      FLD_DW8051_INT0_CTL1     0x00000001
+
+/*****************************************************************************/
+#define      GENERAL_CTL              0x810
+#define      FLD_RDS_INT              0x80000000
+#define      FLD_NBER_INT             0x40000000
+#define      FLD_NLL_INT              0x20000000
+#define      FLD_IFL_INT              0x10000000
+#define      FLD_FDL_INT              0x08000000
+#define      FLD_AFC_INT              0x04000000
+#define      FLD_AMC_INT              0x02000000
+#define      FLD_AC97_INT_CTL         0x01000000
+#define      FLD_RDS_INT_DIS          0x00800000
+#define      FLD_NBER_INT_DIS         0x00400000
+#define      FLD_NLL_INT_DIS          0x00200000
+#define      FLD_IFL_INT_DIS          0x00100000
+#define      FLD_FDL_INT_DIS          0x00080000
+#define      FLD_FC_INT_DIS           0x00040000
+#define      FLD_AMC_INT_DIS          0x00020000
+#define      FLD_AC97_INT_DIS         0x00010000
+#define      FLD_REV_NUM              0x0000ff00
+/* Reserved [7:5] */
+#define      FLD_DBX_SOFT_RESET_REG   0x00000010
+#define      FLD_AD_SOFT_RESET_REG    0x00000008
+#define      FLD_SRC_SOFT_RESET_REG   0x00000004
+#define      FLD_CDMOD_SOFT_RESET     0x00000002
+#define      FLD_8051_SOFT_RESET      0x00000001
+
+/*****************************************************************************/
+#define      AAGC_CTL                 0x814
+#define      FLD_AFE_12DB_EN          0x80000000
+#define      FLD_AAGC_DEFAULT_EN      0x40000000
+#define      FLD_AAGC_DEFAULT         0x3f000000
+/* Reserved [23] */
+#define      FLD_AAGC_GAIN            0x00600000
+#define      FLD_AAGC_TH              0x001f0000
+/* Reserved [15:14] */
+#define      FLD_AAGC_HYST2           0x00003f00
+/* Reserved [7:6] */
+#define      FLD_AAGC_HYST1           0x0000003f
+
+/*****************************************************************************/
+#define      IF_SRC_CTL               0x818
+#define      FLD_DBX_BYPASS           0x80000000
+/* Reserved [30:25] */
+#define      FLD_IF_SRC_MODE          0x01000000
+/* Reserved [23:18] */
+#define      FLD_IF_SRC_PHASE_INC     0x0001ffff
+
+/*****************************************************************************/
+#define      ANALOG_DEMOD_CTL         0x81c
+#define      FLD_ROT1_PHACC_PROG      0xffff0000
+/* Reserved [15] */
+#define      FLD_FM1_DELAY_FIX        0x00007000
+#define      FLD_PDF4_SHIFT           0x00000c00
+#define      FLD_PDF3_SHIFT           0x00000300
+#define      FLD_PDF2_SHIFT           0x000000c0
+#define      FLD_PDF1_SHIFT           0x00000030
+#define      FLD_FMBYPASS_MODE2       0x00000008
+#define      FLD_FMBYPASS_MODE1       0x00000004
+#define      FLD_NICAM_MODE           0x00000002
+#define      FLD_BTSC_FMRADIO_MODE    0x00000001
+
+/*****************************************************************************/
+#define      ROT_FREQ_CTL             0x820
+#define      FLD_ROT3_PHACC_PROG      0xffff0000
+#define      FLD_ROT2_PHACC_PROG      0x0000ffff
+
+/*****************************************************************************/
+#define      FM_CTL                   0x824
+#define      FLD_FM2_DC_FB_SHIFT      0xf0000000
+#define      FLD_FM2_DC_INT_SHIFT     0x0f000000
+#define      FLD_FM2_AFC_RESET        0x00800000
+#define      FLD_FM2_DC_PASS_IN       0x00400000
+#define      FLD_FM2_DAGC_SHIFT       0x00380000
+#define      FLD_FM2_CORDIC_SHIFT     0x00070000
+#define      FLD_FM1_DC_FB_SHIFT      0x0000f000
+#define      FLD_FM1_DC_INT_SHIFT     0x00000f00
+#define      FLD_FM1_AFC_RESET        0x00000080
+#define      FLD_FM1_DC_PASS_IN       0x00000040
+#define      FLD_FM1_DAGC_SHIFT       0x00000038
+#define      FLD_FM1_CORDIC_SHIFT     0x00000007
+
+/*****************************************************************************/
+#define      LPF_PDF_CTL              0x828
+/* Reserved [31:30] */
+#define      FLD_LPF32_SHIFT1         0x30000000
+#define      FLD_LPF32_SHIFT2         0x0c000000
+#define      FLD_LPF160_SHIFTA        0x03000000
+#define      FLD_LPF160_SHIFTB        0x00c00000
+#define      FLD_LPF160_SHIFTC        0x00300000
+#define      FLD_LPF32_COEF_SEL2      0x000c0000
+#define      FLD_LPF32_COEF_SEL1      0x00030000
+#define      FLD_LPF160_COEF_SELC     0x0000c000
+#define      FLD_LPF160_COEF_SELB     0x00003000
+#define      FLD_LPF160_COEF_SELA     0x00000c00
+#define      FLD_LPF160_IN_EN_REG     0x00000300
+#define      FLD_PDF4_PDF_SEL         0x000000c0
+#define      FLD_PDF3_PDF_SEL         0x00000030
+#define      FLD_PDF2_PDF_SEL         0x0000000c
+#define      FLD_PDF1_PDF_SEL         0x00000003
+
+/*****************************************************************************/
+#define      DFT1_CTL1                0x82c
+#define      FLD_DFT1_DWELL           0xffff0000
+#define      FLD_DFT1_FREQ            0x0000ffff
+
+/*****************************************************************************/
+#define      DFT1_CTL2                0x830
+#define      FLD_DFT1_THRESHOLD       0xffffff00
+#define      FLD_DFT1_CMP_CTL         0x00000080
+#define      FLD_DFT1_AVG             0x00000070
+/* Reserved [3:1] */
+#define      FLD_DFT1_START           0x00000001
+
+/*****************************************************************************/
+#define      DFT1_STATUS              0x834
+#define      FLD_DFT1_DONE            0x80000000
+#define      FLD_DFT1_TH_CMP_STAT     0x40000000
+#define      FLD_DFT1_RESULT          0x3fffffff
+
+/*****************************************************************************/
+#define      DFT2_CTL1                0x838
+#define      FLD_DFT2_DWELL           0xffff0000
+#define      FLD_DFT2_FREQ            0x0000ffff
+
+/*****************************************************************************/
+#define      DFT2_CTL2                0x83C
+#define      FLD_DFT2_THRESHOLD       0xffffff00
+#define      FLD_DFT2_CMP_CTL         0x00000080
+#define      FLD_DFT2_AVG             0x00000070
+/* Reserved [3:1] */
+#define      FLD_DFT2_START           0x00000001
+
+/*****************************************************************************/
+#define      DFT2_STATUS              0x840
+#define      FLD_DFT2_DONE            0x80000000
+#define      FLD_DFT2_TH_CMP_STAT     0x40000000
+#define      FLD_DFT2_RESULT          0x3fffffff
+
+/*****************************************************************************/
+#define      DFT3_CTL1                0x844
+#define      FLD_DFT3_DWELL           0xffff0000
+#define      FLD_DFT3_FREQ            0x0000ffff
+
+/*****************************************************************************/
+#define      DFT3_CTL2                0x848
+#define      FLD_DFT3_THRESHOLD       0xffffff00
+#define      FLD_DFT3_CMP_CTL         0x00000080
+#define      FLD_DFT3_AVG             0x00000070
+/* Reserved [3:1] */
+#define      FLD_DFT3_START           0x00000001
+
+/*****************************************************************************/
+#define      DFT3_STATUS              0x84c
+#define      FLD_DFT3_DONE            0x80000000
+#define      FLD_DFT3_TH_CMP_STAT     0x40000000
+#define      FLD_DFT3_RESULT          0x3fffffff
+
+/*****************************************************************************/
+#define      DFT4_CTL1                0x850
+#define      FLD_DFT4_DWELL           0xffff0000
+#define      FLD_DFT4_FREQ            0x0000ffff
+
+/*****************************************************************************/
+#define      DFT4_CTL2                0x854
+#define      FLD_DFT4_THRESHOLD       0xffffff00
+#define      FLD_DFT4_CMP_CTL         0x00000080
+#define      FLD_DFT4_AVG             0x00000070
+/* Reserved [3:1] */
+#define      FLD_DFT4_START           0x00000001
+
+/*****************************************************************************/
+#define      DFT4_STATUS              0x858
+#define      FLD_DFT4_DONE            0x80000000
+#define      FLD_DFT4_TH_CMP_STAT     0x40000000
+#define      FLD_DFT4_RESULT          0x3fffffff
+
+/*****************************************************************************/
+#define      AM_MTS_DET               0x85c
+#define      FLD_AM_MTS_MODE          0x80000000
+/* Reserved [30:26] */
+#define      FLD_AM_SUB               0x02000000
+#define      FLD_AM_GAIN_EN           0x01000000
+/* Reserved [23:16] */
+#define      FLD_AMMTS_GAIN_SCALE     0x0000e000
+#define      FLD_MTS_PDF_SHIFT        0x00001800
+#define      FLD_AM_REG_GAIN          0x00000700
+#define      FLD_AGC_REF              0x000000ff
+
+/*****************************************************************************/
+#define      ANALOG_MUX_CTL           0x860
+/* Reserved [31:29] */
+#define      FLD_MUX21_SEL            0x10000000
+#define      FLD_MUX20_SEL            0x08000000
+#define      FLD_MUX19_SEL            0x04000000
+#define      FLD_MUX18_SEL            0x02000000
+#define      FLD_MUX17_SEL            0x01000000
+#define      FLD_MUX16_SEL            0x00800000
+#define      FLD_MUX15_SEL            0x00400000
+#define      FLD_MUX14_SEL            0x00300000
+#define      FLD_MUX13_SEL            0x000C0000
+#define      FLD_MUX12_SEL            0x00020000
+#define      FLD_MUX11_SEL            0x00018000
+#define      FLD_MUX10_SEL            0x00004000
+#define      FLD_MUX9_SEL             0x00002000
+#define      FLD_MUX8_SEL             0x00001000
+#define      FLD_MUX7_SEL             0x00000800
+#define      FLD_MUX6_SEL             0x00000600
+#define      FLD_MUX5_SEL             0x00000100
+#define      FLD_MUX4_SEL             0x000000c0
+#define      FLD_MUX3_SEL             0x00000030
+#define      FLD_MUX2_SEL             0x0000000c
+#define      FLD_MUX1_SEL             0x00000003
+
+/*****************************************************************************/
+/* Cx231xx redefine */
+#define      DPLL_CTRL1               0x864
+#define      DIG_PLL_CTL1             0x864
+
+#define      FLD_PLL_STATUS           0x07000000
+#define      FLD_BANDWIDTH_SELECT     0x00030000
+#define      FLD_PLL_SHIFT_REG        0x00007000
+#define      FLD_PHASE_SHIFT          0x000007ff
+
+/*****************************************************************************/
+/* Cx231xx redefine */
+#define      DPLL_CTRL2               0x868
+#define      DIG_PLL_CTL2             0x868
+#define      FLD_PLL_UNLOCK_THR       0xff000000
+#define      FLD_PLL_LOCK_THR         0x00ff0000
+/* Reserved [15:8] */
+#define      FLD_AM_PDF_SEL2          0x000000c0
+#define      FLD_AM_PDF_SEL1          0x00000030
+#define      FLD_DPLL_FSM_CTRL        0x0000000c
+/* Reserved [1] */
+#define      FLD_PLL_PILOT_DET        0x00000001
+
+/*****************************************************************************/
+/* Cx231xx redefine */
+#define      DPLL_CTRL3               0x86c
+#define      DIG_PLL_CTL3             0x86c
+#define      FLD_DISABLE_LOOP         0x01000000
+#define      FLD_A1_DS1_SEL           0x000c0000
+#define      FLD_A1_DS2_SEL           0x00030000
+#define      FLD_A1_KI                0x0000ff00
+#define      FLD_A1_KD                0x000000ff
+
+/*****************************************************************************/
+/* Cx231xx redefine */
+#define      DPLL_CTRL4               0x870
+#define      DIG_PLL_CTL4             0x870
+#define      FLD_A2_DS1_SEL           0x000c0000
+#define      FLD_A2_DS2_SEL           0x00030000
+#define      FLD_A2_KI                0x0000ff00
+#define      FLD_A2_KD                0x000000ff
+
+/*****************************************************************************/
+/* Cx231xx redefine */
+#define      DPLL_CTRL5               0x874
+#define      DIG_PLL_CTL5             0x874
+#define      FLD_TRK_DS1_SEL          0x000c0000
+#define      FLD_TRK_DS2_SEL          0x00030000
+#define      FLD_TRK_KI               0x0000ff00
+#define      FLD_TRK_KD               0x000000ff
+
+/*****************************************************************************/
+#define      DEEMPH_GAIN_CTL          0x878
+#define      FLD_DEEMPH2_GAIN         0xFFFF0000
+#define      FLD_DEEMPH1_GAIN         0x0000FFFF
+
+/*****************************************************************************/
+/* Cx231xx redefine */
+#define      DEEMPH_COEFF1            0x87c
+#define      DEEMPH_COEF1             0x87c
+#define      FLD_DEEMPH_B0            0xffff0000
+#define      FLD_DEEMPH_A0            0x0000ffff
+
+/*****************************************************************************/
+/* Cx231xx redefine */
+#define      DEEMPH_COEFF2            0x880
+#define      DEEMPH_COEF2             0x880
+#define      FLD_DEEMPH_B1            0xFFFF0000
+#define      FLD_DEEMPH_A1            0x0000FFFF
+
+/*****************************************************************************/
+#define      DBX1_CTL1                0x884
+#define      FLD_DBX1_WBE_GAIN        0xffff0000
+#define      FLD_DBX1_IN_GAIN         0x0000ffff
+
+/*****************************************************************************/
+#define      DBX1_CTL2                0x888
+#define      FLD_DBX1_SE_BYPASS       0xffff0000
+#define      FLD_DBX1_SE_GAIN         0x0000ffff
+
+/*****************************************************************************/
+#define      DBX1_RMS_SE              0x88C
+#define      FLD_DBX1_RMS_WBE         0xffff0000
+#define      FLD_DBX1_RMS_SE_FLD      0x0000ffff
+
+/*****************************************************************************/
+#define      DBX2_CTL1                0x890
+#define      FLD_DBX2_WBE_GAIN        0xffff0000
+#define      FLD_DBX2_IN_GAIN         0x0000ffff
+
+/*****************************************************************************/
+#define      DBX2_CTL2                0x894
+#define      FLD_DBX2_SE_BYPASS       0xffff0000
+#define      FLD_DBX2_SE_GAIN         0x0000ffff
+
+/*****************************************************************************/
+#define      DBX2_RMS_SE              0x898
+#define      FLD_DBX2_RMS_WBE         0xffff0000
+#define      FLD_DBX2_RMS_SE_FLD      0x0000ffff
+
+/*****************************************************************************/
+#define      AM_FM_DIFF               0x89c
+/* Reserved [31] */
+#define      FLD_FM_DIFF_OUT          0x7fff0000
+/* Reserved [15] */
+#define      FLD_AM_DIFF_OUT          0x00007fff
+
+/*****************************************************************************/
+#define      NICAM_FAW                0x8a0
+#define      FLD_FAWDETWINEND         0xFc000000
+#define      FLD_FAWDETWINSTR         0x03ff0000
+/* Reserved [15:12] */
+#define      FLD_FAWDETTHRSHLD3       0x00000f00
+#define      FLD_FAWDETTHRSHLD2       0x000000f0
+#define      FLD_FAWDETTHRSHLD1       0x0000000f
+
+/*****************************************************************************/
+/* Cx231xx redefine */
+#define      DEEMPH_GAIN              0x8a4
+#define      NICAM_DEEMPHGAIN         0x8a4
+/* Reserved [31:18] */
+#define      FLD_DEEMPHGAIN           0x0003ffff
+
+/*****************************************************************************/
+/* Cx231xx redefine */
+#define      DEEMPH_NUMER1            0x8a8
+#define      NICAM_DEEMPHNUMER1       0x8a8
+/* Reserved [31:18] */
+#define      FLD_DEEMPHNUMER1         0x0003ffff
+
+/*****************************************************************************/
+/* Cx231xx redefine */
+#define      DEEMPH_NUMER2            0x8ac
+#define      NICAM_DEEMPHNUMER2       0x8ac
+/* Reserved [31:18] */
+#define      FLD_DEEMPHNUMER2         0x0003ffff
+
+/*****************************************************************************/
+/* Cx231xx redefine */
+#define      DEEMPH_DENOM1            0x8b0
+#define      NICAM_DEEMPHDENOM1       0x8b0
+/* Reserved [31:18] */
+#define      FLD_DEEMPHDENOM1         0x0003ffff
+
+/*****************************************************************************/
+/* Cx231xx redefine */
+#define      DEEMPH_DENOM2            0x8b4
+#define      NICAM_DEEMPHDENOM2       0x8b4
+/* Reserved [31:18] */
+#define      FLD_DEEMPHDENOM2         0x0003ffff
+
+/*****************************************************************************/
+#define      NICAM_ERRLOG_CTL1        0x8B8
+/* Reserved [31:28] */
+#define      FLD_ERRINTRPTTHSHLD1     0x0fff0000
+/* Reserved [15:12] */
+#define      FLD_ERRLOGPERIOD         0x00000fff
+
+/*****************************************************************************/
+#define      NICAM_ERRLOG_CTL2        0x8bc
+/* Reserved [31:28] */
+#define      FLD_ERRINTRPTTHSHLD3     0x0fff0000
+/* Reserved [15:12] */
+#define      FLD_ERRINTRPTTHSHLD2     0x00000fff
+
+/*****************************************************************************/
+#define      NICAM_ERRLOG_STS1        0x8c0
+/* Reserved [31:28] */
+#define      FLD_ERRLOG2              0x0fff0000
+/* Reserved [15:12] */
+#define      FLD_ERRLOG1              0x00000fff
+
+/*****************************************************************************/
+#define      NICAM_ERRLOG_STS2        0x8c4
+/* Reserved [31:12] */
+#define      FLD_ERRLOG3              0x00000fff
+
+/*****************************************************************************/
+#define      NICAM_STATUS             0x8c8
+/* Reserved [31:20] */
+#define      FLD_NICAM_CIB            0x000c0000
+#define      FLD_NICAM_LOCK_STAT      0x00020000
+#define      FLD_NICAM_MUTE           0x00010000
+#define      FLD_NICAMADDIT_DATA      0x0000ffe0
+#define      FLD_NICAMCNTRL           0x0000001f
+
+/*****************************************************************************/
+#define      DEMATRIX_CTL             0x8cc
+#define      FLD_AC97_IN_SHIFT        0xf0000000
+#define      FLD_I2S_IN_SHIFT         0x0f000000
+#define      FLD_DEMATRIX_SEL_CTL     0x00ff0000
+/* Reserved [15:11] */
+#define      FLD_DMTRX_BYPASS         0x00000400
+#define      FLD_DEMATRIX_MODE        0x00000300
+/* Reserved [7:6] */
+#define      FLD_PH_DBX_SEL           0x00000020
+#define      FLD_PH_CH_SEL            0x00000010
+#define      FLD_PHASE_FIX            0x0000000f
+
+/*****************************************************************************/
+#define      PATH1_CTL1               0x8d0
+/* Reserved [31:29] */
+#define      FLD_PATH1_MUTE_CTL       0x1f000000
+/* Reserved [23:22] */
+#define      FLD_PATH1_AVC_CG         0x00300000
+#define      FLD_PATH1_AVC_RT         0x000f0000
+#define      FLD_PATH1_AVC_AT         0x0000f000
+#define      FLD_PATH1_AVC_STEREO     0x00000800
+#define      FLD_PATH1_AVC_CR         0x00000700
+#define      FLD_PATH1_AVC_RMS_CON    0x000000f0
+#define      FLD_PATH1_SEL_CTL        0x0000000f
+
+/*****************************************************************************/
+#define      PATH1_VOL_CTL            0x8d4
+#define      FLD_PATH1_AVC_THRESHOLD  0x7fff0000
+#define      FLD_PATH1_BAL_LEFT       0x00008000
+#define      FLD_PATH1_BAL_LEVEL      0x00007f00
+#define      FLD_PATH1_VOLUME         0x000000ff
+
+/*****************************************************************************/
+#define      PATH1_EQ_CTL             0x8d8
+/* Reserved [31:30] */
+#define      FLD_PATH1_EQ_TREBLE_VOL  0x3f000000
+/* Reserved [23:22] */
+#define      FLD_PATH1_EQ_MID_VOL     0x003f0000
+/* Reserved [15:14] */
+#define      FLD_PATH1_EQ_BASS_VOL    0x00003f00
+/* Reserved [7:1] */
+#define      FLD_PATH1_EQ_BAND_SEL    0x00000001
+
+/*****************************************************************************/
+#define      PATH1_SC_CTL             0x8dc
+#define      FLD_PATH1_SC_THRESHOLD   0x7fff0000
+#define      FLD_PATH1_SC_RT          0x0000f000
+#define      FLD_PATH1_SC_AT          0x00000f00
+#define      FLD_PATH1_SC_STEREO      0x00000080
+#define      FLD_PATH1_SC_CR          0x00000070
+#define      FLD_PATH1_SC_RMS_CON     0x0000000f
+
+/*****************************************************************************/
+#define      PATH2_CTL1               0x8e0
+/* Reserved [31:26] */
+#define      FLD_PATH2_MUTE_CTL       0x03000000
+/* Reserved [23:22] */
+#define      FLD_PATH2_AVC_CG         0x00300000
+#define      FLD_PATH2_AVC_RT         0x000f0000
+#define      FLD_PATH2_AVC_AT         0x0000f000
+#define      FLD_PATH2_AVC_STEREO     0x00000800
+#define      FLD_PATH2_AVC_CR         0x00000700
+#define      FLD_PATH2_AVC_RMS_CON    0x000000f0
+#define      FLD_PATH2_SEL_CTL        0x0000000f
+
+/*****************************************************************************/
+#define      PATH2_VOL_CTL            0x8e4
+#define      FLD_PATH2_AVC_THRESHOLD  0xffff0000
+#define      FLD_PATH2_BAL_LEFT       0x00008000
+#define      FLD_PATH2_BAL_LEVEL      0x00007f00
+#define      FLD_PATH2_VOLUME         0x000000ff
+
+/*****************************************************************************/
+#define      PATH2_EQ_CTL             0x8e8
+/* Reserved [31:30] */
+#define      FLD_PATH2_EQ_TREBLE_VOL  0x3f000000
+/* Reserved [23:22] */
+#define      FLD_PATH2_EQ_MID_VOL     0x003f0000
+/* Reserved [15:14] */
+#define      FLD_PATH2_EQ_BASS_VOL    0x00003f00
+/* Reserved [7:1] */
+#define      FLD_PATH2_EQ_BAND_SEL    0x00000001
+
+/*****************************************************************************/
+#define      PATH2_SC_CTL             0x8eC
+#define      FLD_PATH2_SC_THRESHOLD   0xffff0000
+#define      FLD_PATH2_SC_RT          0x0000f000
+#define      FLD_PATH2_SC_AT          0x00000f00
+#define      FLD_PATH2_SC_STEREO      0x00000080
+#define      FLD_PATH2_SC_CR          0x00000070
+#define      FLD_PATH2_SC_RMS_CON     0x0000000f
+
+/*****************************************************************************/
+#define      SRC_CTL                  0x8f0
+#define      FLD_SRC_STATUS           0xffffff00
+#define      FLD_FIFO_LF_EN           0x000000fc
+#define      FLD_BYPASS_LI            0x00000002
+#define      FLD_BYPASS_PF            0x00000001
+
+/*****************************************************************************/
+#define      SRC_LF_COEF              0x8f4
+#define      FLD_LOOP_FILTER_COEF2    0xffff0000
+#define      FLD_LOOP_FILTER_COEF1    0x0000ffff
+
+/*****************************************************************************/
+#define      SRC1_CTL                 0x8f8
+/* Reserved [31:28] */
+#define      FLD_SRC1_FIFO_RD_TH      0x0f000000
+/* Reserved [23:18] */
+#define      FLD_SRC1_PHASE_INC       0x0003ffff
+
+/*****************************************************************************/
+#define      SRC2_CTL                 0x8fc
+/* Reserved [31:28] */
+#define      FLD_SRC2_FIFO_RD_TH      0x0f000000
+/* Reserved [23:18] */
+#define      FLD_SRC2_PHASE_INC       0x0003ffff
+
+/*****************************************************************************/
+#define      SRC3_CTL                 0x900
+/* Reserved [31:28] */
+#define      FLD_SRC3_FIFO_RD_TH      0x0f000000
+/* Reserved [23:18] */
+#define      FLD_SRC3_PHASE_INC       0x0003ffff
+
+/*****************************************************************************/
+#define      SRC4_CTL                 0x904
+/* Reserved [31:28] */
+#define      FLD_SRC4_FIFO_RD_TH      0x0f000000
+/* Reserved [23:18] */
+#define      FLD_SRC4_PHASE_INC       0x0003ffff
+
+/*****************************************************************************/
+#define      SRC5_CTL                 0x908
+/* Reserved [31:28] */
+#define      FLD_SRC5_FIFO_RD_TH      0x0f000000
+/* Reserved [23:18] */
+#define      FLD_SRC5_PHASE_INC       0x0003ffff
+
+/*****************************************************************************/
+#define      SRC6_CTL                 0x90c
+/* Reserved [31:28] */
+#define      FLD_SRC6_FIFO_RD_TH      0x0f000000
+/* Reserved [23:18] */
+#define      FLD_SRC6_PHASE_INC       0x0003ffff
+
+/*****************************************************************************/
+#define      BAND_OUT_SEL             0x910
+#define      FLD_SRC6_IN_SEL          0xc0000000
+#define      FLD_SRC6_CLK_SEL         0x30000000
+#define      FLD_SRC5_IN_SEL          0x0c000000
+#define      FLD_SRC5_CLK_SEL         0x03000000
+#define      FLD_SRC4_IN_SEL          0x00c00000
+#define      FLD_SRC4_CLK_SEL         0x00300000
+#define      FLD_SRC3_IN_SEL          0x000c0000
+#define      FLD_SRC3_CLK_SEL         0x00030000
+#define      FLD_BASEBAND_BYPASS_CTL  0x0000ff00
+#define      FLD_AC97_SRC_SEL         0x000000c0
+#define      FLD_I2S_SRC_SEL          0x00000030
+#define      FLD_PARALLEL2_SRC_SEL    0x0000000c
+#define      FLD_PARALLEL1_SRC_SEL    0x00000003
+
+/*****************************************************************************/
+#define      I2S_IN_CTL               0x914
+/* Reserved [31:11] */
+#define      FLD_I2S_UP2X_BW20K       0x00000400
+#define      FLD_I2S_UP2X_BYPASS      0x00000200
+#define      FLD_I2S_IN_MASTER_MODE   0x00000100
+#define      FLD_I2S_IN_SONY_MODE     0x00000080
+#define      FLD_I2S_IN_RIGHT_JUST    0x00000040
+#define      FLD_I2S_IN_WS_SEL        0x00000020
+#define      FLD_I2S_IN_BCN_DEL       0x0000001f
+
+/*****************************************************************************/
+#define      I2S_OUT_CTL              0x918
+/* Reserved [31:17] */
+#define      FLD_I2S_OUT_SOFT_RESET_EN  0x00010000
+/* Reserved [15:9] */
+#define      FLD_I2S_OUT_MASTER_MODE  0x00000100
+#define      FLD_I2S_OUT_SONY_MODE    0x00000080
+#define      FLD_I2S_OUT_RIGHT_JUST   0x00000040
+#define      FLD_I2S_OUT_WS_SEL       0x00000020
+#define      FLD_I2S_OUT_BCN_DEL      0x0000001f
+
+/*****************************************************************************/
+#define      AC97_CTL                 0x91c
+/* Reserved [31:26] */
+#define      FLD_AC97_UP2X_BW20K      0x02000000
+#define      FLD_AC97_UP2X_BYPASS     0x01000000
+/* Reserved [23:17] */
+#define      FLD_AC97_RST_ACL         0x00010000
+/* Reserved [15:9] */
+#define      FLD_AC97_WAKE_UP_SYNC    0x00000100
+/* Reserved [7:1] */
+#define      FLD_AC97_SHUTDOWN        0x00000001
+
+/* Cx231xx redefine */
+#define      QPSK_IAGC_CTL1            0x94c
+#define      QPSK_IAGC_CTL2            0x950
+#define      QPSK_FEPR_FREQ            0x954
+#define      QPSK_BTL_CTL1             0x958
+#define      QPSK_BTL_CTL2             0x95c
+#define      QPSK_CTL_CTL1             0x960
+#define      QPSK_CTL_CTL2             0x964
+#define      QPSK_MF_FAGC_CTL          0x968
+#define      QPSK_EQ_CTL               0x96c
+#define      QPSK_LOCK_CTL             0x970
+
+/*****************************************************************************/
+#define      FM1_DFT_CTL              0x9a8
+#define      FLD_FM1_DFT_THRESHOLD    0xffff0000
+/* Reserved [15:8] */
+#define      FLD_FM1_DFT_CMP_CTL      0x00000080
+#define      FLD_FM1_DFT_AVG          0x00000070
+/* Reserved [3:1] */
+#define      FLD_FM1_DFT_START        0x00000001
+
+/*****************************************************************************/
+#define      FM1_DFT_STATUS           0x9ac
+#define      FLD_FM1_DFT_DONE         0x80000000
+/* Reserved [30:19] */
+#define      FLD_FM_DFT_TH_CMP        0x00040000
+#define      FLD_FM1_DFT              0x0003ffff
+
+/*****************************************************************************/
+#define      FM2_DFT_CTL              0x9b0
+#define      FLD_FM2_DFT_THRESHOLD    0xffff0000
+/* Reserved [15:8] */
+#define      FLD_FM2_DFT_CMP_CTL      0x00000080
+#define      FLD_FM2_DFT_AVG          0x00000070
+/* Reserved [3:1] */
+#define      FLD_FM2_DFT_START        0x00000001
+
+/*****************************************************************************/
+#define      FM2_DFT_STATUS           0x9b4
+#define      FLD_FM2_DFT_DONE         0x80000000
+/* Reserved [30:19] */
+#define      FLD_FM2_DFT_TH_CMP_STAT  0x00040000
+#define      FLD_FM2_DFT              0x0003ffff
+
+/*****************************************************************************/
+/* Cx231xx redefine */
+#define      AAGC_STATUS_REG          0x9b8
+#define      AAGC_STATUS              0x9b8
+/* Reserved [31:27] */
+#define      FLD_FM2_DAGC_OUT         0x07000000
+/* Reserved [23:19] */
+#define      FLD_FM1_DAGC_OUT         0x00070000
+/* Reserved [15:6] */
+#define      FLD_AFE_VGA_OUT          0x0000003f
+
+/*****************************************************************************/
+#define      MTS_GAIN_STATUS          0x9bc
+/* Reserved [31:14] */
+#define      FLD_MTS_GAIN             0x00003fff
+
+#define      RDS_OUT                  0x9c0
+#define      FLD_RDS_Q                0xffff0000
+#define      FLD_RDS_I                0x0000ffff
+
+/*****************************************************************************/
+#define      AUTOCONFIG_REG           0x9c4
+/* Reserved [31:4] */
+#define      FLD_AUTOCONFIG_MODE      0x0000000f
+
+#define      FM_AFC                   0x9c8
+#define      FLD_FM2_AFC              0xffff0000
+#define      FLD_FM1_AFC              0x0000ffff
+
+/*****************************************************************************/
+/* Cx231xx redefine */
+#define      NEW_SPARE                0x9cc
+#define      NEW_SPARE_REG            0x9cc
+
+/*****************************************************************************/
+#define      DBX_ADJ                  0x9d0
+/* Reserved [31:28] */
+#define      FLD_DBX2_ADJ             0x0fff0000
+/* Reserved [15:12] */
+#define      FLD_DBX1_ADJ             0x00000fff
+
+#define      VID_FMT_AUTO              0
+#define      VID_FMT_NTSC_M            1
+#define      VID_FMT_NTSC_J            2
+#define      VID_FMT_NTSC_443          3
+#define      VID_FMT_PAL_BDGHI         4
+#define      VID_FMT_PAL_M             5
+#define      VID_FMT_PAL_N             6
+#define      VID_FMT_PAL_NC            7
+#define      VID_FMT_PAL_60            8
+#define      VID_FMT_SECAM             12
+#define      VID_FMT_SECAM_60          13
+
+#define      INPUT_MODE_CVBS_0         0       /* INPUT_MODE_VALUE(0) */
+#define      INPUT_MODE_YC_1           1       /* INPUT_MODE_VALUE(1) */
+#define      INPUT_MODE_YC2_2          2       /* INPUT_MODE_VALUE(2) */
+#define      INPUT_MODE_YUV_3          3       /* INPUT_MODE_VALUE(3) */
+
+#define      LUMA_LPF_LOW_BANDPASS     0       /* 0.6Mhz LPF BW */
+#define      LUMA_LPF_MEDIUM_BANDPASS  1       /* 1.0Mhz LPF BW */
+#define      LUMA_LPF_HIGH_BANDPASS    2       /* 1.5Mhz LPF BW */
+
+#define      UV_LPF_LOW_BANDPASS       0       /* 0.6Mhz LPF BW */
+#define      UV_LPF_MEDIUM_BANDPASS    1       /* 1.0Mhz LPF BW */
+#define      UV_LPF_HIGH_BANDPASS      2       /* 1.5Mhz LPF BW */
+
+#define      TWO_TAP_FILT              0
+#define      THREE_TAP_FILT            1
+#define      FOUR_TAP_FILT             2
+#define      FIVE_TAP_FILT             3
+
+#define      AUD_CHAN_SRC_PARALLEL     0
+#define      AUD_CHAN_SRC_I2S_INPUT    1
+#define      AUD_CHAN_SRC_FLATIRON     2
+#define      AUD_CHAN_SRC_PARALLEL3    3
+
+#define      OUT_MODE_601              0
+#define      OUT_MODE_656              1
+#define      OUT_MODE_VIP11            2
+#define      OUT_MODE_VIP20            3
+
+#define      PHASE_INC_49MHZ          0x0df22
+#define      PHASE_INC_56MHZ          0x0fa5b
+#define      PHASE_INC_28MHZ          0x010000
+
+#endif
diff --git a/drivers/media/video/cx231xx/cx231xx-vbi.c b/drivers/media/video/cx231xx/cx231xx-vbi.c
new file mode 100644 (file)
index 0000000..9418052
--- /dev/null
@@ -0,0 +1,701 @@
+/*
+   cx231xx_vbi.c - driver for Conexant Cx23100/101/102 USB video capture devices
+
+   Copyright (C) 2008 <srinivasa.deevi at conexant dot com>
+       Based on cx88 driver
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <linux/init.h>
+#include <linux/list.h>
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/bitmap.h>
+#include <linux/usb.h>
+#include <linux/i2c.h>
+#include <linux/version.h>
+#include <linux/mm.h>
+#include <linux/mutex.h>
+
+#include <media/v4l2-common.h>
+#include <media/v4l2-ioctl.h>
+#include <media/v4l2-chip-ident.h>
+#include <media/msp3400.h>
+#include <media/tuner.h>
+
+#include "cx231xx.h"
+#include "cx231xx-vbi.h"
+
+static inline void print_err_status(struct cx231xx *dev, int packet, int status)
+{
+       char *errmsg = "Unknown";
+
+       switch (status) {
+       case -ENOENT:
+               errmsg = "unlinked synchronuously";
+               break;
+       case -ECONNRESET:
+               errmsg = "unlinked asynchronuously";
+               break;
+       case -ENOSR:
+               errmsg = "Buffer error (overrun)";
+               break;
+       case -EPIPE:
+               errmsg = "Stalled (device not responding)";
+               break;
+       case -EOVERFLOW:
+               errmsg = "Babble (bad cable?)";
+               break;
+       case -EPROTO:
+               errmsg = "Bit-stuff error (bad cable?)";
+               break;
+       case -EILSEQ:
+               errmsg = "CRC/Timeout (could be anything)";
+               break;
+       case -ETIME:
+               errmsg = "Device does not respond";
+               break;
+       }
+       if (packet < 0) {
+               cx231xx_err(DRIVER_NAME "URB status %d [%s].\n", status,
+                           errmsg);
+       } else {
+               cx231xx_err(DRIVER_NAME "URB packet %d, status %d [%s].\n",
+                           packet, status, errmsg);
+       }
+}
+
+/*
+ * Controls the isoc copy of each urb packet
+ */
+static inline int cx231xx_isoc_vbi_copy(struct cx231xx *dev, struct urb *urb)
+{
+       struct cx231xx_buffer *buf;
+       struct cx231xx_dmaqueue *dma_q = urb->context;
+       int rc = 1;
+       unsigned char *p_buffer;
+       u32 bytes_parsed = 0, buffer_size = 0;
+       u8 sav_eav = 0;
+
+       if (!dev)
+               return 0;
+
+       if ((dev->state & DEV_DISCONNECTED) || (dev->state & DEV_MISCONFIGURED))
+               return 0;
+
+       if (urb->status < 0) {
+               print_err_status(dev, -1, urb->status);
+               if (urb->status == -ENOENT)
+                       return 0;
+       }
+
+       buf = dev->vbi_mode.isoc_ctl.buf;
+
+       /* get buffer pointer and length */
+       p_buffer = urb->transfer_buffer;
+       buffer_size = urb->actual_length;
+
+       if (buffer_size > 0) {
+               bytes_parsed = 0;
+
+               if (dma_q->is_partial_line) {
+                       /* Handle the case where we were working on a partial
+                          line */
+                       sav_eav = dma_q->last_sav;
+               } else {
+                       /* Check for a SAV/EAV overlapping the
+                          buffer boundary */
+
+                       sav_eav = cx231xx_find_boundary_SAV_EAV(p_buffer,
+                                                         dma_q->partial_buf,
+                                                         &bytes_parsed);
+               }
+
+               sav_eav &= 0xF0;
+               /* Get the first line if we have some portion of an SAV/EAV from
+                  the last buffer or a partial line */
+               if (sav_eav) {
+                       bytes_parsed += cx231xx_get_vbi_line(dev, dma_q,
+                               sav_eav,                       /* SAV/EAV */
+                               p_buffer + bytes_parsed,       /* p_buffer */
+                               buffer_size - bytes_parsed);   /* buffer size */
+               }
+
+               /* Now parse data that is completely in this buffer */
+               dma_q->is_partial_line = 0;
+
+               while (bytes_parsed < buffer_size) {
+                       u32 bytes_used = 0;
+
+                       sav_eav = cx231xx_find_next_SAV_EAV(
+                               p_buffer + bytes_parsed,        /* p_buffer */
+                               buffer_size - bytes_parsed, /* buffer size */
+                               &bytes_used);   /* bytes used to get SAV/EAV */
+
+                       bytes_parsed += bytes_used;
+
+                       sav_eav &= 0xF0;
+                       if (sav_eav && (bytes_parsed < buffer_size)) {
+                               bytes_parsed += cx231xx_get_vbi_line(dev,
+                                       dma_q, sav_eav, /* SAV/EAV */
+                                       p_buffer+bytes_parsed, /* p_buffer */
+                                       buffer_size-bytes_parsed);/*buf size*/
+                       }
+               }
+
+               /* Save the last four bytes of the buffer so we can
+               check the buffer boundary condition next time */
+               memcpy(dma_q->partial_buf, p_buffer + buffer_size - 4, 4);
+               bytes_parsed = 0;
+       }
+
+       return rc;
+}
+
+/* ------------------------------------------------------------------
+       Vbi buf operations
+   ------------------------------------------------------------------*/
+
+static int
+vbi_buffer_setup(struct videobuf_queue *vq, unsigned int *count,
+                unsigned int *size)
+{
+       struct cx231xx_fh *fh = vq->priv_data;
+       struct cx231xx *dev = fh->dev;
+       u32 height = 0;
+
+       height = ((dev->norm & V4L2_STD_625_50) ?
+                 PAL_VBI_LINES : NTSC_VBI_LINES);
+
+       *size = (dev->width * height * 2);
+       if (0 == *count)
+               *count = CX231XX_DEF_VBI_BUF;
+
+       if (*count < CX231XX_MIN_BUF)
+               *count = CX231XX_MIN_BUF;
+
+       return 0;
+}
+
+/* This is called *without* dev->slock held; please keep it that way */
+static void free_buffer(struct videobuf_queue *vq, struct cx231xx_buffer *buf)
+{
+       struct cx231xx_fh *fh = vq->priv_data;
+       struct cx231xx *dev = fh->dev;
+       unsigned long flags = 0;
+       if (in_interrupt())
+               BUG();
+
+       /* We used to wait for the buffer to finish here, but this didn't work
+          because, as we were keeping the state as VIDEOBUF_QUEUED,
+          videobuf_queue_cancel marked it as finished for us.
+          (Also, it could wedge forever if the hardware was misconfigured.)
+
+          This should be safe; by the time we get here, the buffer isn't
+          queued anymore. If we ever start marking the buffers as
+          VIDEOBUF_ACTIVE, it won't be, though.
+        */
+       spin_lock_irqsave(&dev->vbi_mode.slock, flags);
+       if (dev->vbi_mode.isoc_ctl.buf == buf)
+               dev->vbi_mode.isoc_ctl.buf = NULL;
+       spin_unlock_irqrestore(&dev->vbi_mode.slock, flags);
+
+       videobuf_vmalloc_free(&buf->vb);
+       buf->vb.state = VIDEOBUF_NEEDS_INIT;
+}
+
+static int
+vbi_buffer_prepare(struct videobuf_queue *vq, struct videobuf_buffer *vb,
+                  enum v4l2_field field)
+{
+       struct cx231xx_fh *fh = vq->priv_data;
+       struct cx231xx_buffer *buf =
+           container_of(vb, struct cx231xx_buffer, vb);
+       struct cx231xx *dev = fh->dev;
+       int rc = 0, urb_init = 0;
+       u32 height = 0;
+
+       height = ((dev->norm & V4L2_STD_625_50) ?
+                 PAL_VBI_LINES : NTSC_VBI_LINES);
+       buf->vb.size = ((dev->width << 1) * height);
+
+       if (0 != buf->vb.baddr && buf->vb.bsize < buf->vb.size)
+               return -EINVAL;
+
+       buf->vb.width = dev->width;
+       buf->vb.height = height;
+       buf->vb.field = field;
+       buf->vb.field = V4L2_FIELD_SEQ_TB;
+
+       if (VIDEOBUF_NEEDS_INIT == buf->vb.state) {
+               rc = videobuf_iolock(vq, &buf->vb, NULL);
+               if (rc < 0)
+                       goto fail;
+       }
+
+       if (!dev->vbi_mode.isoc_ctl.num_bufs)
+               urb_init = 1;
+
+       if (urb_init) {
+               rc = cx231xx_init_vbi_isoc(dev, CX231XX_NUM_VBI_PACKETS,
+                                          CX231XX_NUM_VBI_BUFS,
+                                          dev->vbi_mode.alt_max_pkt_size[0],
+                                          cx231xx_isoc_vbi_copy);
+               if (rc < 0)
+                       goto fail;
+       }
+
+       buf->vb.state = VIDEOBUF_PREPARED;
+       return 0;
+
+fail:
+       free_buffer(vq, buf);
+       return rc;
+}
+
+static void
+vbi_buffer_queue(struct videobuf_queue *vq, struct videobuf_buffer *vb)
+{
+       struct cx231xx_buffer *buf =
+           container_of(vb, struct cx231xx_buffer, vb);
+       struct cx231xx_fh *fh = vq->priv_data;
+       struct cx231xx *dev = fh->dev;
+       struct cx231xx_dmaqueue *vidq = &dev->vbi_mode.vidq;
+
+       buf->vb.state = VIDEOBUF_QUEUED;
+       list_add_tail(&buf->vb.queue, &vidq->active);
+
+}
+
+static void vbi_buffer_release(struct videobuf_queue *vq,
+                              struct videobuf_buffer *vb)
+{
+       struct cx231xx_buffer *buf =
+           container_of(vb, struct cx231xx_buffer, vb);
+
+
+       free_buffer(vq, buf);
+}
+
+struct videobuf_queue_ops cx231xx_vbi_qops = {
+       .buf_setup   = vbi_buffer_setup,
+       .buf_prepare = vbi_buffer_prepare,
+       .buf_queue   = vbi_buffer_queue,
+       .buf_release = vbi_buffer_release,
+};
+
+/* ------------------------------------------------------------------
+       URB control
+   ------------------------------------------------------------------*/
+
+/*
+ * IRQ callback, called by URB callback
+ */
+static void cx231xx_irq_vbi_callback(struct urb *urb)
+{
+       struct cx231xx_dmaqueue *dma_q = urb->context;
+       struct cx231xx_video_mode *vmode =
+           container_of(dma_q, struct cx231xx_video_mode, vidq);
+       struct cx231xx *dev = container_of(vmode, struct cx231xx, vbi_mode);
+       int rc;
+
+       switch (urb->status) {
+       case 0:         /* success */
+       case -ETIMEDOUT:        /* NAK */
+               break;
+       case -ECONNRESET:       /* kill */
+       case -ENOENT:
+       case -ESHUTDOWN:
+               return;
+       default:                /* error */
+               cx231xx_err(DRIVER_NAME "urb completition error %d.\n",
+                           urb->status);
+               break;
+       }
+
+       /* Copy data from URB */
+       spin_lock(&dev->vbi_mode.slock);
+       rc = dev->vbi_mode.isoc_ctl.isoc_copy(dev, urb);
+       spin_unlock(&dev->vbi_mode.slock);
+
+       /* Reset status */
+       urb->status = 0;
+
+       urb->status = usb_submit_urb(urb, GFP_ATOMIC);
+       if (urb->status) {
+               cx231xx_err(DRIVER_NAME "urb resubmit failed (error=%i)\n",
+                           urb->status);
+       }
+}
+
+/*
+ * Stop and Deallocate URBs
+ */
+void cx231xx_uninit_vbi_isoc(struct cx231xx *dev)
+{
+       struct urb *urb;
+       int i;
+
+       cx231xx_info(DRIVER_NAME "cx231xx: called cx231xx_uninit_vbi_isoc\n");
+
+       dev->vbi_mode.isoc_ctl.nfields = -1;
+       for (i = 0; i < dev->vbi_mode.isoc_ctl.num_bufs; i++) {
+               urb = dev->vbi_mode.isoc_ctl.urb[i];
+               if (urb) {
+                       if (!irqs_disabled())
+                               usb_kill_urb(urb);
+                       else
+                               usb_unlink_urb(urb);
+
+                       if (dev->vbi_mode.isoc_ctl.transfer_buffer[i]) {
+
+                               kfree(dev->vbi_mode.isoc_ctl.
+                                     transfer_buffer[i]);
+                               dev->vbi_mode.isoc_ctl.transfer_buffer[i] =
+                                   NULL;
+                       }
+                       usb_free_urb(urb);
+                       dev->vbi_mode.isoc_ctl.urb[i] = NULL;
+               }
+               dev->vbi_mode.isoc_ctl.transfer_buffer[i] = NULL;
+       }
+
+       kfree(dev->vbi_mode.isoc_ctl.urb);
+       kfree(dev->vbi_mode.isoc_ctl.transfer_buffer);
+
+       dev->vbi_mode.isoc_ctl.urb = NULL;
+       dev->vbi_mode.isoc_ctl.transfer_buffer = NULL;
+       dev->vbi_mode.isoc_ctl.num_bufs = 0;
+
+       cx231xx_capture_start(dev, 0, Vbi);
+}
+EXPORT_SYMBOL_GPL(cx231xx_uninit_vbi_isoc);
+
+/*
+ * Allocate URBs and start IRQ
+ */
+int cx231xx_init_vbi_isoc(struct cx231xx *dev, int max_packets,
+                         int num_bufs, int max_pkt_size,
+                         int (*isoc_copy) (struct cx231xx *dev,
+                                           struct urb *urb))
+{
+       struct cx231xx_dmaqueue *dma_q = &dev->vbi_mode.vidq;
+       int i;
+       int sb_size, pipe;
+       struct urb *urb;
+       int rc;
+
+       cx231xx_info(DRIVER_NAME "cx231xx: called cx231xx_prepare_isoc\n");
+
+       /* De-allocates all pending stuff */
+       cx231xx_uninit_vbi_isoc(dev);
+
+       /* clear if any halt */
+       usb_clear_halt(dev->udev,
+                      usb_rcvbulkpipe(dev->udev,
+                                      dev->vbi_mode.end_point_addr));
+
+       dev->vbi_mode.isoc_ctl.isoc_copy = isoc_copy;
+       dev->vbi_mode.isoc_ctl.num_bufs = num_bufs;
+       dma_q->pos = 0;
+       dma_q->is_partial_line = 0;
+       dma_q->last_sav = 0;
+       dma_q->current_field = -1;
+       dma_q->bytes_left_in_line = dev->width << 1;
+       dma_q->lines_per_field = ((dev->norm & V4L2_STD_625_50) ?
+                                 PAL_VBI_LINES : NTSC_VBI_LINES);
+       dma_q->lines_completed = 0;
+       for (i = 0; i < 8; i++)
+               dma_q->partial_buf[i] = 0;
+
+       dev->vbi_mode.isoc_ctl.urb = kzalloc(sizeof(void *) * num_bufs,
+                                            GFP_KERNEL);
+       if (!dev->vbi_mode.isoc_ctl.urb) {
+               cx231xx_errdev("cannot alloc memory for usb buffers\n");
+               return -ENOMEM;
+       }
+
+       dev->vbi_mode.isoc_ctl.transfer_buffer =
+           kzalloc(sizeof(void *) * num_bufs, GFP_KERNEL);
+       if (!dev->vbi_mode.isoc_ctl.transfer_buffer) {
+               cx231xx_errdev("cannot allocate memory for usbtransfer\n");
+               kfree(dev->vbi_mode.isoc_ctl.urb);
+               return -ENOMEM;
+       }
+
+       dev->vbi_mode.isoc_ctl.max_pkt_size = max_pkt_size;
+       dev->vbi_mode.isoc_ctl.buf = NULL;
+
+       sb_size = max_packets * dev->vbi_mode.isoc_ctl.max_pkt_size;
+
+       /* allocate urbs and transfer buffers */
+       for (i = 0; i < dev->vbi_mode.isoc_ctl.num_bufs; i++) {
+
+               urb = usb_alloc_urb(0, GFP_KERNEL);
+               if (!urb) {
+                       cx231xx_err(DRIVER_NAME
+                                   ": cannot alloc isoc_ctl.urb %i\n", i);
+                       cx231xx_uninit_vbi_isoc(dev);
+                       return -ENOMEM;
+               }
+               dev->vbi_mode.isoc_ctl.urb[i] = urb;
+               urb->transfer_flags = 0;
+
+               dev->vbi_mode.isoc_ctl.transfer_buffer[i] =
+                   kzalloc(sb_size, GFP_KERNEL);
+               if (!dev->vbi_mode.isoc_ctl.transfer_buffer[i]) {
+                       cx231xx_err(DRIVER_NAME
+                                   ": unable to allocate %i bytes for transfer"
+                                   " buffer %i%s\n", sb_size, i,
+                                   in_interrupt() ? " while in int" : "");
+                       cx231xx_uninit_vbi_isoc(dev);
+                       return -ENOMEM;
+               }
+
+               pipe = usb_rcvbulkpipe(dev->udev, dev->vbi_mode.end_point_addr);
+               usb_fill_bulk_urb(urb, dev->udev, pipe,
+                                 dev->vbi_mode.isoc_ctl.transfer_buffer[i],
+                                 sb_size, cx231xx_irq_vbi_callback, dma_q);
+       }
+
+       init_waitqueue_head(&dma_q->wq);
+
+       /* submit urbs and enables IRQ */
+       for (i = 0; i < dev->vbi_mode.isoc_ctl.num_bufs; i++) {
+               rc = usb_submit_urb(dev->vbi_mode.isoc_ctl.urb[i], GFP_ATOMIC);
+               if (rc) {
+                       cx231xx_err(DRIVER_NAME
+                                   ": submit of urb %i failed (error=%i)\n", i,
+                                   rc);
+                       cx231xx_uninit_vbi_isoc(dev);
+                       return rc;
+               }
+       }
+
+       cx231xx_capture_start(dev, 1, Vbi);
+
+       return 0;
+}
+EXPORT_SYMBOL_GPL(cx231xx_init_vbi_isoc);
+
+u32 cx231xx_get_vbi_line(struct cx231xx *dev, struct cx231xx_dmaqueue *dma_q,
+                        u8 sav_eav, u8 *p_buffer, u32 buffer_size)
+{
+       u32 bytes_copied = 0;
+       int current_field = -1;
+
+       switch (sav_eav) {
+
+       case SAV_VBI_FIELD1:
+               current_field = 1;
+               break;
+
+       case SAV_VBI_FIELD2:
+               current_field = 2;
+               break;
+       default:
+               break;
+       }
+
+       if (current_field < 0)
+               return bytes_copied;
+
+       dma_q->last_sav = sav_eav;
+
+       bytes_copied =
+           cx231xx_copy_vbi_line(dev, dma_q, p_buffer, buffer_size,
+                                 current_field);
+
+       return bytes_copied;
+}
+
+/*
+ * Announces that a buffer were filled and request the next
+ */
+static inline void vbi_buffer_filled(struct cx231xx *dev,
+                                    struct cx231xx_dmaqueue *dma_q,
+                                    struct cx231xx_buffer *buf)
+{
+       /* Advice that buffer was filled */
+       /* cx231xx_info(DRIVER_NAME "[%p/%d] wakeup\n", buf, buf->vb.i); */
+
+       buf->vb.state = VIDEOBUF_DONE;
+       buf->vb.field_count++;
+       do_gettimeofday(&buf->vb.ts);
+
+       dev->vbi_mode.isoc_ctl.buf = NULL;
+
+       list_del(&buf->vb.queue);
+       wake_up(&buf->vb.done);
+}
+
+u32 cx231xx_copy_vbi_line(struct cx231xx *dev, struct cx231xx_dmaqueue *dma_q,
+                         u8 *p_line, u32 length, int field_number)
+{
+       u32 bytes_to_copy;
+       struct cx231xx_buffer *buf;
+       u32 _line_size = dev->width * 2;
+
+       if (dma_q->current_field != field_number)
+               cx231xx_reset_vbi_buffer(dev, dma_q);
+
+       /* get the buffer pointer */
+       buf = dev->vbi_mode.isoc_ctl.buf;
+
+       /* Remember the field number for next time */
+       dma_q->current_field = field_number;
+
+       bytes_to_copy = dma_q->bytes_left_in_line;
+       if (bytes_to_copy > length)
+               bytes_to_copy = length;
+
+       if (dma_q->lines_completed >= dma_q->lines_per_field) {
+               dma_q->bytes_left_in_line -= bytes_to_copy;
+               dma_q->is_partial_line =
+                   (dma_q->bytes_left_in_line == 0) ? 0 : 1;
+               return 0;
+       }
+
+       dma_q->is_partial_line = 1;
+
+       /* If we don't have a buffer, just return the number of bytes we would
+          have copied if we had a buffer. */
+       if (!buf) {
+               dma_q->bytes_left_in_line -= bytes_to_copy;
+               dma_q->is_partial_line =
+                   (dma_q->bytes_left_in_line == 0) ? 0 : 1;
+               return bytes_to_copy;
+       }
+
+       /* copy the data to video buffer */
+       cx231xx_do_vbi_copy(dev, dma_q, p_line, bytes_to_copy);
+
+       dma_q->pos += bytes_to_copy;
+       dma_q->bytes_left_in_line -= bytes_to_copy;
+
+       if (dma_q->bytes_left_in_line == 0) {
+
+               dma_q->bytes_left_in_line = _line_size;
+               dma_q->lines_completed++;
+               dma_q->is_partial_line = 0;
+
+               if (cx231xx_is_vbi_buffer_done(dev, dma_q) && buf) {
+
+                       vbi_buffer_filled(dev, dma_q, buf);
+
+                       dma_q->pos = 0;
+                       buf = NULL;
+                       dma_q->lines_completed = 0;
+               }
+       }
+
+       return bytes_to_copy;
+}
+
+/*
+ * video-buf generic routine to get the next available buffer
+ */
+static inline void get_next_vbi_buf(struct cx231xx_dmaqueue *dma_q,
+                                   struct cx231xx_buffer **buf)
+{
+       struct cx231xx_video_mode *vmode =
+           container_of(dma_q, struct cx231xx_video_mode, vidq);
+       struct cx231xx *dev = container_of(vmode, struct cx231xx, vbi_mode);
+       char *outp;
+
+       if (list_empty(&dma_q->active)) {
+               cx231xx_err(DRIVER_NAME ": No active queue to serve\n");
+               dev->vbi_mode.isoc_ctl.buf = NULL;
+               *buf = NULL;
+               return;
+       }
+
+       /* Get the next buffer */
+       *buf = list_entry(dma_q->active.next, struct cx231xx_buffer, vb.queue);
+
+       /* Cleans up buffer - Usefull for testing for frame/URB loss */
+       outp = videobuf_to_vmalloc(&(*buf)->vb);
+       memset(outp, 0, (*buf)->vb.size);
+
+       dev->vbi_mode.isoc_ctl.buf = *buf;
+
+       return;
+}
+
+void cx231xx_reset_vbi_buffer(struct cx231xx *dev,
+                             struct cx231xx_dmaqueue *dma_q)
+{
+       struct cx231xx_buffer *buf;
+
+       buf = dev->vbi_mode.isoc_ctl.buf;
+
+       if (buf == NULL) {
+               /* first try to get the buffer */
+               get_next_vbi_buf(dma_q, &buf);
+
+               dma_q->pos = 0;
+               dma_q->current_field = -1;
+       }
+
+       dma_q->bytes_left_in_line = dev->width << 1;
+       dma_q->lines_completed = 0;
+}
+
+int cx231xx_do_vbi_copy(struct cx231xx *dev, struct cx231xx_dmaqueue *dma_q,
+                       u8 *p_buffer, u32 bytes_to_copy)
+{
+       u8 *p_out_buffer = NULL;
+       u32 current_line_bytes_copied = 0;
+       struct cx231xx_buffer *buf;
+       u32 _line_size = dev->width << 1;
+       void *startwrite;
+       int offset, lencopy;
+
+       buf = dev->vbi_mode.isoc_ctl.buf;
+
+       if (buf == NULL)
+               return -EINVAL;
+
+       p_out_buffer = videobuf_to_vmalloc(&buf->vb);
+
+       if (dma_q->bytes_left_in_line != _line_size) {
+               current_line_bytes_copied =
+                   _line_size - dma_q->bytes_left_in_line;
+       }
+
+       offset = (dma_q->lines_completed * _line_size) +
+                current_line_bytes_copied;
+
+       /* prepare destination address */
+       startwrite = p_out_buffer + offset;
+
+       lencopy = dma_q->bytes_left_in_line > bytes_to_copy ?
+                 bytes_to_copy : dma_q->bytes_left_in_line;
+
+       memcpy(startwrite, p_buffer, lencopy);
+
+       return 0;
+}
+
+u8 cx231xx_is_vbi_buffer_done(struct cx231xx *dev,
+                             struct cx231xx_dmaqueue *dma_q)
+{
+       u32 height = 0;
+
+       height = ((dev->norm & V4L2_STD_625_50) ?
+                 PAL_VBI_LINES : NTSC_VBI_LINES);
+       return (dma_q->lines_completed == height) ? 1 : 0;
+}
diff --git a/drivers/media/video/cx231xx/cx231xx-vbi.h b/drivers/media/video/cx231xx/cx231xx-vbi.h
new file mode 100644 (file)
index 0000000..89c7fe8
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+   cx231xx_vbi.h - driver for Conexant Cx23100/101/102 USB video capture devices
+
+   Copyright (C) 2008 <srinivasa.deevi at conexant dot com>
+               Based on cx88 driver
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef _CX231XX_VBI_H
+#define _CX231XX_VBI_H
+
+extern struct videobuf_queue_ops cx231xx_vbi_qops;
+
+#define   NTSC_VBI_START_LINE 10       /* line 10 - 21 */
+#define   NTSC_VBI_END_LINE   21
+#define   NTSC_VBI_LINES         (NTSC_VBI_END_LINE-NTSC_VBI_START_LINE+1)
+
+#define   PAL_VBI_START_LINE  6
+#define   PAL_VBI_END_LINE    23
+#define   PAL_VBI_LINES       (PAL_VBI_END_LINE-PAL_VBI_START_LINE+1)
+
+#define   VBI_STRIDE            1440
+#define   VBI_SAMPLES_PER_LINE  1440
+
+#define   CX231XX_NUM_VBI_PACKETS       4
+#define   CX231XX_NUM_VBI_BUFS          5
+
+/* stream functions */
+int cx231xx_init_vbi_isoc(struct cx231xx *dev, int max_packets,
+                         int num_bufs, int max_pkt_size,
+                         int (*isoc_copy) (struct cx231xx *dev,
+                                           struct urb *urb));
+
+void cx231xx_uninit_vbi_isoc(struct cx231xx *dev);
+
+/* vbi data copy functions */
+u32 cx231xx_get_vbi_line(struct cx231xx *dev, struct cx231xx_dmaqueue *dma_q,
+                        u8 sav_eav, u8 *p_buffer, u32 buffer_size);
+
+u32 cx231xx_copy_vbi_line(struct cx231xx *dev, struct cx231xx_dmaqueue *dma_q,
+                         u8 *p_line, u32 length, int field_number);
+
+void cx231xx_reset_vbi_buffer(struct cx231xx *dev,
+                             struct cx231xx_dmaqueue *dma_q);
+
+int cx231xx_do_vbi_copy(struct cx231xx *dev, struct cx231xx_dmaqueue *dma_q,
+                       u8 *p_buffer, u32 bytes_to_copy);
+
+u8 cx231xx_is_vbi_buffer_done(struct cx231xx *dev,
+                             struct cx231xx_dmaqueue *dma_q);
+
+#endif
diff --git a/drivers/media/video/cx231xx/cx231xx-video.c b/drivers/media/video/cx231xx/cx231xx-video.c
new file mode 100644 (file)
index 0000000..a23ae73
--- /dev/null
@@ -0,0 +1,2434 @@
+/*
+   cx231xx-video.c - driver for Conexant Cx23100/101/102
+                    USB video capture devices
+
+   Copyright (C) 2008 <srinivasa.deevi at conexant dot com>
+       Based on em28xx driver
+       Based on cx23885 driver
+       Based on cx88 driver
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <linux/init.h>
+#include <linux/list.h>
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/bitmap.h>
+#include <linux/usb.h>
+#include <linux/i2c.h>
+#include <linux/version.h>
+#include <linux/mm.h>
+#include <linux/mutex.h>
+
+#include <media/v4l2-common.h>
+#include <media/v4l2-ioctl.h>
+#include <media/v4l2-chip-ident.h>
+#include <media/msp3400.h>
+#include <media/tuner.h>
+
+#include "dvb_frontend.h"
+
+#include "cx231xx.h"
+#include "cx231xx-vbi.h"
+
+#define CX231XX_VERSION_CODE            KERNEL_VERSION(0, 0, 1)
+
+#define DRIVER_AUTHOR   "Srinivasa Deevi <srinivasa.deevi@conexant.com>"
+#define DRIVER_DESC     "Conexant cx231xx based USB video device driver"
+
+#define cx231xx_videodbg(fmt, arg...) do {\
+       if (video_debug) \
+               printk(KERN_INFO "%s %s :"fmt, \
+                        dev->name, __func__ , ##arg); } while (0)
+
+static unsigned int isoc_debug;
+module_param(isoc_debug, int, 0644);
+MODULE_PARM_DESC(isoc_debug, "enable debug messages [isoc transfers]");
+
+#define cx231xx_isocdbg(fmt, arg...) \
+do {\
+       if (isoc_debug) { \
+               printk(KERN_INFO "%s %s :"fmt, \
+                        dev->name, __func__ , ##arg); \
+       } \
+  } while (0)
+
+MODULE_AUTHOR(DRIVER_AUTHOR);
+MODULE_DESCRIPTION(DRIVER_DESC);
+MODULE_LICENSE("GPL");
+
+static unsigned int card[]     = {[0 ... (CX231XX_MAXBOARDS - 1)] = UNSET };
+static unsigned int video_nr[] = {[0 ... (CX231XX_MAXBOARDS - 1)] = UNSET };
+static unsigned int vbi_nr[]   = {[0 ... (CX231XX_MAXBOARDS - 1)] = UNSET };
+static unsigned int radio_nr[] = {[0 ... (CX231XX_MAXBOARDS - 1)] = UNSET };
+
+module_param_array(card, int, NULL, 0444);
+module_param_array(video_nr, int, NULL, 0444);
+module_param_array(vbi_nr, int, NULL, 0444);
+module_param_array(radio_nr, int, NULL, 0444);
+
+MODULE_PARM_DESC(card, "card type");
+MODULE_PARM_DESC(video_nr, "video device numbers");
+MODULE_PARM_DESC(vbi_nr, "vbi device numbers");
+MODULE_PARM_DESC(radio_nr, "radio device numbers");
+
+static unsigned int video_debug;
+module_param(video_debug, int, 0644);
+MODULE_PARM_DESC(video_debug, "enable debug messages [video]");
+
+/* supported video standards */
+static struct cx231xx_fmt format[] = {
+       {
+        .name = "16bpp YUY2, 4:2:2, packed",
+        .fourcc = V4L2_PIX_FMT_YUYV,
+        .depth = 16,
+        .reg = 0,
+        },
+};
+
+/* supported controls */
+/* Common to all boards */
+
+/* ------------------------------------------------------------------- */
+
+static const struct v4l2_queryctrl no_ctl = {
+       .name = "42",
+       .flags = V4L2_CTRL_FLAG_DISABLED,
+};
+
+static struct cx231xx_ctrl cx231xx_ctls[] = {
+       /* --- video --- */
+       {
+               .v = {
+                       .id = V4L2_CID_BRIGHTNESS,
+                       .name = "Brightness",
+                       .minimum = 0x00,
+                       .maximum = 0xff,
+                       .step = 1,
+                       .default_value = 0x7f,
+                       .type = V4L2_CTRL_TYPE_INTEGER,
+               },
+               .off = 128,
+               .reg = LUMA_CTRL,
+               .mask = 0x00ff,
+               .shift = 0,
+       }, {
+               .v = {
+                       .id = V4L2_CID_CONTRAST,
+                       .name = "Contrast",
+                       .minimum = 0,
+                       .maximum = 0xff,
+                       .step = 1,
+                       .default_value = 0x3f,
+                       .type = V4L2_CTRL_TYPE_INTEGER,
+               },
+               .off = 0,
+               .reg = LUMA_CTRL,
+               .mask = 0xff00,
+               .shift = 8,
+       }, {
+               .v = {
+                       .id = V4L2_CID_HUE,
+                       .name = "Hue",
+                       .minimum = 0,
+                       .maximum = 0xff,
+                       .step = 1,
+                       .default_value = 0x7f,
+                       .type = V4L2_CTRL_TYPE_INTEGER,
+               },
+               .off = 128,
+               .reg = CHROMA_CTRL,
+               .mask = 0xff0000,
+               .shift = 16,
+       }, {
+       /* strictly, this only describes only U saturation.
+       * V saturation is handled specially through code.
+       */
+               .v = {
+                       .id = V4L2_CID_SATURATION,
+                       .name = "Saturation",
+                       .minimum = 0,
+                       .maximum = 0xff,
+                       .step = 1,
+                       .default_value = 0x7f,
+                       .type = V4L2_CTRL_TYPE_INTEGER,
+               },
+               .off = 0,
+               .reg = CHROMA_CTRL,
+               .mask = 0x00ff,
+               .shift = 0,
+       }, {
+               /* --- audio --- */
+               .v = {
+                       .id = V4L2_CID_AUDIO_MUTE,
+                       .name = "Mute",
+                       .minimum = 0,
+                       .maximum = 1,
+                       .default_value = 1,
+                       .type = V4L2_CTRL_TYPE_BOOLEAN,
+               },
+               .reg = PATH1_CTL1,
+               .mask = (0x1f << 24),
+               .shift = 24,
+       }, {
+               .v = {
+                       .id = V4L2_CID_AUDIO_VOLUME,
+                       .name = "Volume",
+                       .minimum = 0,
+                       .maximum = 0x3f,
+                       .step = 1,
+                       .default_value = 0x3f,
+                       .type = V4L2_CTRL_TYPE_INTEGER,
+               },
+               .reg = PATH1_VOL_CTL,
+               .mask = 0xff,
+               .shift = 0,
+       }
+};
+static const int CX231XX_CTLS = ARRAY_SIZE(cx231xx_ctls);
+
+static const u32 cx231xx_user_ctrls[] = {
+       V4L2_CID_USER_CLASS,
+       V4L2_CID_BRIGHTNESS,
+       V4L2_CID_CONTRAST,
+       V4L2_CID_SATURATION,
+       V4L2_CID_HUE,
+       V4L2_CID_AUDIO_VOLUME,
+#if 0
+       V4L2_CID_AUDIO_BALANCE,
+#endif
+       V4L2_CID_AUDIO_MUTE,
+       0
+};
+
+static const u32 *ctrl_classes[] = {
+       cx231xx_user_ctrls,
+       NULL
+};
+
+/* ------------------------------------------------------------------
+       Video buffer and parser functions
+   ------------------------------------------------------------------*/
+
+/*
+ * Announces that a buffer were filled and request the next
+ */
+static inline void buffer_filled(struct cx231xx *dev,
+                                struct cx231xx_dmaqueue *dma_q,
+                                struct cx231xx_buffer *buf)
+{
+       /* Advice that buffer was filled */
+       cx231xx_isocdbg("[%p/%d] wakeup\n", buf, buf->vb.i);
+       buf->vb.state = VIDEOBUF_DONE;
+       buf->vb.field_count++;
+       do_gettimeofday(&buf->vb.ts);
+
+       dev->video_mode.isoc_ctl.buf = NULL;
+
+       list_del(&buf->vb.queue);
+       wake_up(&buf->vb.done);
+}
+
+static inline void print_err_status(struct cx231xx *dev, int packet, int status)
+{
+       char *errmsg = "Unknown";
+
+       switch (status) {
+       case -ENOENT:
+               errmsg = "unlinked synchronuously";
+               break;
+       case -ECONNRESET:
+               errmsg = "unlinked asynchronuously";
+               break;
+       case -ENOSR:
+               errmsg = "Buffer error (overrun)";
+               break;
+       case -EPIPE:
+               errmsg = "Stalled (device not responding)";
+               break;
+       case -EOVERFLOW:
+               errmsg = "Babble (bad cable?)";
+               break;
+       case -EPROTO:
+               errmsg = "Bit-stuff error (bad cable?)";
+               break;
+       case -EILSEQ:
+               errmsg = "CRC/Timeout (could be anything)";
+               break;
+       case -ETIME:
+               errmsg = "Device does not respond";
+               break;
+       }
+       if (packet < 0) {
+               cx231xx_isocdbg("URB status %d [%s].\n", status, errmsg);
+       } else {
+               cx231xx_isocdbg("URB packet %d, status %d [%s].\n",
+                               packet, status, errmsg);
+       }
+}
+
+/*
+ * video-buf generic routine to get the next available buffer
+ */
+static inline void get_next_buf(struct cx231xx_dmaqueue *dma_q,
+                               struct cx231xx_buffer **buf)
+{
+       struct cx231xx_video_mode *vmode =
+           container_of(dma_q, struct cx231xx_video_mode, vidq);
+       struct cx231xx *dev = container_of(vmode, struct cx231xx, video_mode);
+
+       char *outp;
+
+       if (list_empty(&dma_q->active)) {
+               cx231xx_isocdbg("No active queue to serve\n");
+               dev->video_mode.isoc_ctl.buf = NULL;
+               *buf = NULL;
+               return;
+       }
+
+       /* Get the next buffer */
+       *buf = list_entry(dma_q->active.next, struct cx231xx_buffer, vb.queue);
+
+       /* Cleans up buffer - Usefull for testing for frame/URB loss */
+       outp = videobuf_to_vmalloc(&(*buf)->vb);
+       memset(outp, 0, (*buf)->vb.size);
+
+       dev->video_mode.isoc_ctl.buf = *buf;
+
+       return;
+}
+
+/*
+ * Controls the isoc copy of each urb packet
+ */
+static inline int cx231xx_isoc_copy(struct cx231xx *dev, struct urb *urb)
+{
+       struct cx231xx_buffer *buf;
+       struct cx231xx_dmaqueue *dma_q = urb->context;
+       unsigned char *outp = NULL;
+       int i, rc = 1;
+       unsigned char *p_buffer;
+       u32 bytes_parsed = 0, buffer_size = 0;
+       u8 sav_eav = 0;
+
+       if (!dev)
+               return 0;
+
+       if ((dev->state & DEV_DISCONNECTED) || (dev->state & DEV_MISCONFIGURED))
+               return 0;
+
+       if (urb->status < 0) {
+               print_err_status(dev, -1, urb->status);
+               if (urb->status == -ENOENT)
+                       return 0;
+       }
+
+       buf = dev->video_mode.isoc_ctl.buf;
+       if (buf != NULL)
+               outp = videobuf_to_vmalloc(&buf->vb);
+
+       for (i = 0; i < urb->number_of_packets; i++) {
+               int status = urb->iso_frame_desc[i].status;
+
+               if (status < 0) {
+                       print_err_status(dev, i, status);
+                       if (urb->iso_frame_desc[i].status != -EPROTO)
+                               continue;
+               }
+
+               if (urb->iso_frame_desc[i].actual_length <= 0) {
+                       /* cx231xx_isocdbg("packet %d is empty",i); - spammy */
+                       continue;
+               }
+               if (urb->iso_frame_desc[i].actual_length >
+                   dev->video_mode.max_pkt_size) {
+                       cx231xx_isocdbg("packet bigger than packet size");
+                       continue;
+               }
+
+               /*  get buffer pointer and length */
+               p_buffer = urb->transfer_buffer + urb->iso_frame_desc[i].offset;
+               buffer_size = urb->iso_frame_desc[i].actual_length;
+               bytes_parsed = 0;
+
+               if (dma_q->is_partial_line) {
+                       /* Handle the case of a partial line */
+                       sav_eav = dma_q->last_sav;
+               } else {
+                       /* Check for a SAV/EAV overlapping
+                               the buffer boundary */
+                       sav_eav =
+                           cx231xx_find_boundary_SAV_EAV(p_buffer,
+                                                         dma_q->partial_buf,
+                                                         &bytes_parsed);
+               }
+
+               sav_eav &= 0xF0;
+               /* Get the first line if we have some portion of an SAV/EAV from
+                  the last buffer or a partial line  */
+               if (sav_eav) {
+                       bytes_parsed += cx231xx_get_video_line(dev, dma_q,
+                               sav_eav,        /* SAV/EAV */
+                               p_buffer + bytes_parsed,        /* p_buffer */
+                               buffer_size - bytes_parsed);/* buf size */
+               }
+
+               /* Now parse data that is completely in this buffer */
+               /* dma_q->is_partial_line = 0;  */
+
+               while (bytes_parsed < buffer_size) {
+                       u32 bytes_used = 0;
+
+                       sav_eav = cx231xx_find_next_SAV_EAV(
+                               p_buffer + bytes_parsed,        /* p_buffer */
+                               buffer_size - bytes_parsed,     /* buf size */
+                               &bytes_used);/* bytes used to get SAV/EAV */
+
+                       bytes_parsed += bytes_used;
+
+                       sav_eav &= 0xF0;
+                       if (sav_eav && (bytes_parsed < buffer_size)) {
+                               bytes_parsed += cx231xx_get_video_line(dev,
+                                       dma_q, sav_eav, /* SAV/EAV */
+                                       p_buffer + bytes_parsed,/* p_buffer */
+                                       buffer_size - bytes_parsed);/*buf size*/
+                       }
+               }
+
+               /* Save the last four bytes of the buffer so we can check the
+                  buffer boundary condition next time */
+               memcpy(dma_q->partial_buf, p_buffer + buffer_size - 4, 4);
+               bytes_parsed = 0;
+
+       }
+       return rc;
+}
+
+u8 cx231xx_find_boundary_SAV_EAV(u8 *p_buffer, u8 *partial_buf,
+                                u32 *p_bytes_used)
+{
+       u32 bytes_used;
+       u8 boundary_bytes[8];
+       u8 sav_eav = 0;
+
+       *p_bytes_used = 0;
+
+       /* Create an array of the last 4 bytes of the last buffer and the first
+          4 bytes of the current buffer. */
+
+       memcpy(boundary_bytes, partial_buf, 4);
+       memcpy(boundary_bytes + 4, p_buffer, 4);
+
+       /* Check for the SAV/EAV in the boundary buffer */
+       sav_eav = cx231xx_find_next_SAV_EAV((u8 *)&boundary_bytes, 8,
+                                           &bytes_used);
+
+       if (sav_eav) {
+               /* found a boundary SAV/EAV.  Updates the bytes used to reflect
+                  only those used in the new buffer */
+               *p_bytes_used = bytes_used - 4;
+       }
+
+       return sav_eav;
+}
+
+u8 cx231xx_find_next_SAV_EAV(u8 *p_buffer, u32 buffer_size, u32 *p_bytes_used)
+{
+       u32 i;
+       u8 sav_eav = 0;
+
+       /*
+        * Don't search if the buffer size is less than 4.  It causes a page
+        * fault since buffer_size - 4 evaluates to a large number in that
+        * case.
+        */
+       if (buffer_size < 4) {
+               *p_bytes_used = buffer_size;
+               return 0;
+       }
+
+       for (i = 0; i < (buffer_size - 3); i++) {
+
+               if ((p_buffer[i] == 0xFF) &&
+                   (p_buffer[i + 1] == 0x00) && (p_buffer[i + 2] == 0x00)) {
+
+                       *p_bytes_used = i + 4;
+                       sav_eav = p_buffer[i + 3];
+                       return sav_eav;
+               }
+       }
+
+       *p_bytes_used = buffer_size;
+       return 0;
+}
+
+u32 cx231xx_get_video_line(struct cx231xx *dev,
+                          struct cx231xx_dmaqueue *dma_q, u8 sav_eav,
+                          u8 *p_buffer, u32 buffer_size)
+{
+       u32 bytes_copied = 0;
+       int current_field = -1;
+
+       switch (sav_eav) {
+       case SAV_ACTIVE_VIDEO_FIELD1:
+               /* looking for skipped line which occurred in PAL 720x480 mode.
+                  In this case, there will be no active data contained
+                  between the SAV and EAV */
+               if ((buffer_size > 3) && (p_buffer[0] == 0xFF) &&
+                   (p_buffer[1] == 0x00) && (p_buffer[2] == 0x00) &&
+                   ((p_buffer[3] == EAV_ACTIVE_VIDEO_FIELD1) ||
+                    (p_buffer[3] == EAV_ACTIVE_VIDEO_FIELD2) ||
+                    (p_buffer[3] == EAV_VBLANK_FIELD1) ||
+                    (p_buffer[3] == EAV_VBLANK_FIELD2)))
+                       return bytes_copied;
+               current_field = 1;
+               break;
+
+       case SAV_ACTIVE_VIDEO_FIELD2:
+               /* looking for skipped line which occurred in PAL 720x480 mode.
+                  In this case, there will be no active data contained between
+                  the SAV and EAV */
+               if ((buffer_size > 3) && (p_buffer[0] == 0xFF) &&
+                   (p_buffer[1] == 0x00) && (p_buffer[2] == 0x00) &&
+                   ((p_buffer[3] == EAV_ACTIVE_VIDEO_FIELD1) ||
+                    (p_buffer[3] == EAV_ACTIVE_VIDEO_FIELD2) ||
+                    (p_buffer[3] == EAV_VBLANK_FIELD1)       ||
+                    (p_buffer[3] == EAV_VBLANK_FIELD2)))
+                       return bytes_copied;
+               current_field = 2;
+               break;
+       }
+
+       dma_q->last_sav = sav_eav;
+
+       bytes_copied = cx231xx_copy_video_line(dev, dma_q, p_buffer,
+                                              buffer_size, current_field);
+
+       return bytes_copied;
+}
+
+u32 cx231xx_copy_video_line(struct cx231xx *dev,
+                           struct cx231xx_dmaqueue *dma_q, u8 *p_line,
+                           u32 length, int field_number)
+{
+       u32 bytes_to_copy;
+       struct cx231xx_buffer *buf;
+       u32 _line_size = dev->width * 2;
+
+       if (dma_q->current_field != field_number)
+               cx231xx_reset_video_buffer(dev, dma_q);
+
+       /* get the buffer pointer */
+       buf = dev->video_mode.isoc_ctl.buf;
+
+       /* Remember the field number for next time */
+       dma_q->current_field = field_number;
+
+       bytes_to_copy = dma_q->bytes_left_in_line;
+       if (bytes_to_copy > length)
+               bytes_to_copy = length;
+
+       if (dma_q->lines_completed >= dma_q->lines_per_field) {
+               dma_q->bytes_left_in_line -= bytes_to_copy;
+               dma_q->is_partial_line = (dma_q->bytes_left_in_line == 0) ?
+                                         0 : 1;
+               return 0;
+       }
+
+       dma_q->is_partial_line = 1;
+
+       /* If we don't have a buffer, just return the number of bytes we would
+          have copied if we had a buffer. */
+       if (!buf) {
+               dma_q->bytes_left_in_line -= bytes_to_copy;
+               dma_q->is_partial_line = (dma_q->bytes_left_in_line == 0)
+                                        ? 0 : 1;
+               return bytes_to_copy;
+       }
+
+       /* copy the data to video buffer */
+       cx231xx_do_copy(dev, dma_q, p_line, bytes_to_copy);
+
+       dma_q->pos += bytes_to_copy;
+       dma_q->bytes_left_in_line -= bytes_to_copy;
+
+       if (dma_q->bytes_left_in_line == 0) {
+               dma_q->bytes_left_in_line = _line_size;
+               dma_q->lines_completed++;
+               dma_q->is_partial_line = 0;
+
+               if (cx231xx_is_buffer_done(dev, dma_q) && buf) {
+                       buffer_filled(dev, dma_q, buf);
+
+                       dma_q->pos = 0;
+                       buf = NULL;
+                       dma_q->lines_completed = 0;
+               }
+       }
+
+       return bytes_to_copy;
+}
+
+void cx231xx_reset_video_buffer(struct cx231xx *dev,
+                               struct cx231xx_dmaqueue *dma_q)
+{
+       struct cx231xx_buffer *buf;
+
+       /* handle the switch from field 1 to field 2 */
+       if (dma_q->current_field == 1) {
+               if (dma_q->lines_completed >= dma_q->lines_per_field)
+                       dma_q->field1_done = 1;
+               else
+                       dma_q->field1_done = 0;
+       }
+
+       buf = dev->video_mode.isoc_ctl.buf;
+
+       if (buf == NULL) {
+               u8 *outp = NULL;
+               /* first try to get the buffer */
+               get_next_buf(dma_q, &buf);
+
+               if (buf)
+                       outp = videobuf_to_vmalloc(&buf->vb);
+
+               dma_q->pos = 0;
+               dma_q->field1_done = 0;
+               dma_q->current_field = -1;
+       }
+
+       /* reset the counters */
+       dma_q->bytes_left_in_line = dev->width << 1;
+       dma_q->lines_completed = 0;
+}
+
+int cx231xx_do_copy(struct cx231xx *dev, struct cx231xx_dmaqueue *dma_q,
+                   u8 *p_buffer, u32 bytes_to_copy)
+{
+       u8 *p_out_buffer = NULL;
+       u32 current_line_bytes_copied = 0;
+       struct cx231xx_buffer *buf;
+       u32 _line_size = dev->width << 1;
+       void *startwrite;
+       int offset, lencopy;
+
+       buf = dev->video_mode.isoc_ctl.buf;
+
+       if (buf == NULL)
+               return -1;
+
+       p_out_buffer = videobuf_to_vmalloc(&buf->vb);
+
+       current_line_bytes_copied = _line_size - dma_q->bytes_left_in_line;
+
+       /* Offset field 2 one line from the top of the buffer */
+       offset = (dma_q->current_field == 1) ? 0 : _line_size;
+
+       /* Offset for field 2 */
+       startwrite = p_out_buffer + offset;
+
+       /* lines already completed in the current field */
+       startwrite += (dma_q->lines_completed * _line_size * 2);
+
+       /* bytes already completed in the current line */
+       startwrite += current_line_bytes_copied;
+
+       lencopy = dma_q->bytes_left_in_line > bytes_to_copy ?
+                 bytes_to_copy : dma_q->bytes_left_in_line;
+
+       if ((u8 *)(startwrite + lencopy) > (u8 *)(p_out_buffer + buf->vb.size))
+               return 0;
+
+       /* The below copies the UYVY data straight into video buffer */
+       cx231xx_swab((u16 *) p_buffer, (u16 *) startwrite, (u16) lencopy);
+
+       return 0;
+}
+
+void cx231xx_swab(u16 *from, u16 *to, u16 len)
+{
+       u16 i;
+
+       if (len <= 0)
+               return;
+
+       for (i = 0; i < len / 2; i++)
+               to[i] = (from[i] << 8) | (from[i] >> 8);
+}
+
+u8 cx231xx_is_buffer_done(struct cx231xx *dev, struct cx231xx_dmaqueue *dma_q)
+{
+       u8 buffer_complete = 0;
+
+       /* Dual field stream */
+       buffer_complete = ((dma_q->current_field == 2) &&
+                          (dma_q->lines_completed >= dma_q->lines_per_field) &&
+                           dma_q->field1_done);
+
+       return buffer_complete;
+}
+
+/* ------------------------------------------------------------------
+       Videobuf operations
+   ------------------------------------------------------------------*/
+
+static int
+buffer_setup(struct videobuf_queue *vq, unsigned int *count, unsigned int *size)
+{
+       struct cx231xx_fh *fh = vq->priv_data;
+       struct cx231xx *dev = fh->dev;
+       struct v4l2_frequency f;
+
+       *size = (fh->dev->width * fh->dev->height * dev->format->depth + 7)>>3;
+       if (0 == *count)
+               *count = CX231XX_DEF_BUF;
+
+       if (*count < CX231XX_MIN_BUF)
+               *count = CX231XX_MIN_BUF;
+
+       /* Ask tuner to go to analog mode */
+       memset(&f, 0, sizeof(f));
+       f.frequency = dev->ctl_freq;
+       f.type = fh->radio ? V4L2_TUNER_RADIO : V4L2_TUNER_ANALOG_TV;
+
+       call_all(dev, tuner, s_frequency, &f);
+
+       return 0;
+}
+
+/* This is called *without* dev->slock held; please keep it that way */
+static void free_buffer(struct videobuf_queue *vq, struct cx231xx_buffer *buf)
+{
+       struct cx231xx_fh *fh = vq->priv_data;
+       struct cx231xx *dev = fh->dev;
+       unsigned long flags = 0;
+
+       if (in_interrupt())
+               BUG();
+
+       /* We used to wait for the buffer to finish here, but this didn't work
+          because, as we were keeping the state as VIDEOBUF_QUEUED,
+          videobuf_queue_cancel marked it as finished for us.
+          (Also, it could wedge forever if the hardware was misconfigured.)
+
+          This should be safe; by the time we get here, the buffer isn't
+          queued anymore. If we ever start marking the buffers as
+          VIDEOBUF_ACTIVE, it won't be, though.
+        */
+       spin_lock_irqsave(&dev->video_mode.slock, flags);
+       if (dev->video_mode.isoc_ctl.buf == buf)
+               dev->video_mode.isoc_ctl.buf = NULL;
+       spin_unlock_irqrestore(&dev->video_mode.slock, flags);
+
+       videobuf_vmalloc_free(&buf->vb);
+       buf->vb.state = VIDEOBUF_NEEDS_INIT;
+}
+
+static int
+buffer_prepare(struct videobuf_queue *vq, struct videobuf_buffer *vb,
+              enum v4l2_field field)
+{
+       struct cx231xx_fh *fh = vq->priv_data;
+       struct cx231xx_buffer *buf =
+           container_of(vb, struct cx231xx_buffer, vb);
+       struct cx231xx *dev = fh->dev;
+       int rc = 0, urb_init = 0;
+
+       /* The only currently supported format is 16 bits/pixel */
+       buf->vb.size = (fh->dev->width * fh->dev->height * dev->format->depth
+                       + 7) >> 3;
+       if (0 != buf->vb.baddr && buf->vb.bsize < buf->vb.size)
+               return -EINVAL;
+
+       buf->vb.width = dev->width;
+       buf->vb.height = dev->height;
+       buf->vb.field = field;
+
+       if (VIDEOBUF_NEEDS_INIT == buf->vb.state) {
+               rc = videobuf_iolock(vq, &buf->vb, NULL);
+               if (rc < 0)
+                       goto fail;
+       }
+
+       if (!dev->video_mode.isoc_ctl.num_bufs)
+               urb_init = 1;
+
+       if (urb_init) {
+               rc = cx231xx_init_isoc(dev, CX231XX_NUM_PACKETS,
+                                      CX231XX_NUM_BUFS,
+                                      dev->video_mode.max_pkt_size,
+                                      cx231xx_isoc_copy);
+               if (rc < 0)
+                       goto fail;
+       }
+
+       buf->vb.state = VIDEOBUF_PREPARED;
+       return 0;
+
+fail:
+       free_buffer(vq, buf);
+       return rc;
+}
+
+static void buffer_queue(struct videobuf_queue *vq, struct videobuf_buffer *vb)
+{
+       struct cx231xx_buffer *buf =
+           container_of(vb, struct cx231xx_buffer, vb);
+       struct cx231xx_fh *fh = vq->priv_data;
+       struct cx231xx *dev = fh->dev;
+       struct cx231xx_dmaqueue *vidq = &dev->video_mode.vidq;
+
+       buf->vb.state = VIDEOBUF_QUEUED;
+       list_add_tail(&buf->vb.queue, &vidq->active);
+
+}
+
+static void buffer_release(struct videobuf_queue *vq,
+                          struct videobuf_buffer *vb)
+{
+       struct cx231xx_buffer *buf =
+           container_of(vb, struct cx231xx_buffer, vb);
+       struct cx231xx_fh *fh = vq->priv_data;
+       struct cx231xx *dev = (struct cx231xx *)fh->dev;
+
+       cx231xx_isocdbg("cx231xx: called buffer_release\n");
+
+       free_buffer(vq, buf);
+}
+
+static struct videobuf_queue_ops cx231xx_video_qops = {
+       .buf_setup = buffer_setup,
+       .buf_prepare = buffer_prepare,
+       .buf_queue = buffer_queue,
+       .buf_release = buffer_release,
+};
+
+/*********************  v4l2 interface  **************************************/
+
+void video_mux(struct cx231xx *dev, int index)
+{
+       dev->video_input = index;
+       dev->ctl_ainput = INPUT(index)->amux;
+
+       cx231xx_set_video_input_mux(dev, index);
+
+       cx25840_call(dev, video, s_routing, INPUT(index)->vmux, 0, 0);
+
+       cx231xx_set_audio_input(dev, dev->ctl_ainput);
+
+       cx231xx_info("video_mux : %d\n", index);
+
+       /* do mode control overrides if required */
+       cx231xx_do_mode_ctrl_overrides(dev);
+}
+
+/* Usage lock check functions */
+static int res_get(struct cx231xx_fh *fh)
+{
+       struct cx231xx *dev = fh->dev;
+       int rc = 0;
+
+       /* This instance already has stream_on */
+       if (fh->stream_on)
+               return rc;
+
+       if (fh->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) {
+               if (dev->stream_on)
+                       return -EBUSY;
+               dev->stream_on = 1;
+       } else if (fh->type == V4L2_BUF_TYPE_VBI_CAPTURE) {
+               if (dev->vbi_stream_on)
+                       return -EBUSY;
+               dev->vbi_stream_on = 1;
+       } else
+               return -EINVAL;
+
+       fh->stream_on = 1;
+
+       return rc;
+}
+
+static int res_check(struct cx231xx_fh *fh)
+{
+       return fh->stream_on;
+}
+
+static void res_free(struct cx231xx_fh *fh)
+{
+       struct cx231xx *dev = fh->dev;
+
+       fh->stream_on = 0;
+
+       if (fh->type == V4L2_BUF_TYPE_VIDEO_CAPTURE)
+               dev->stream_on = 0;
+       if (fh->type == V4L2_BUF_TYPE_VBI_CAPTURE)
+               dev->vbi_stream_on = 0;
+}
+
+static int check_dev(struct cx231xx *dev)
+{
+       if (dev->state & DEV_DISCONNECTED) {
+               cx231xx_errdev("v4l2 ioctl: device not present\n");
+               return -ENODEV;
+       }
+
+       if (dev->state & DEV_MISCONFIGURED) {
+               cx231xx_errdev("v4l2 ioctl: device is misconfigured; "
+                              "close and open it again\n");
+               return -EIO;
+       }
+       return 0;
+}
+
+void get_scale(struct cx231xx *dev,
+              unsigned int width, unsigned int height,
+              unsigned int *hscale, unsigned int *vscale)
+{
+       unsigned int maxw = norm_maxw(dev);
+       unsigned int maxh = norm_maxh(dev);
+
+       *hscale = (((unsigned long)maxw) << 12) / width - 4096L;
+       if (*hscale >= 0x4000)
+               *hscale = 0x3fff;
+
+       *vscale = (((unsigned long)maxh) << 12) / height - 4096L;
+       if (*vscale >= 0x4000)
+               *vscale = 0x3fff;
+
+       dev->hscale = *hscale;
+       dev->vscale = *vscale;
+
+}
+
+/* ------------------------------------------------------------------
+       IOCTL vidioc handling
+   ------------------------------------------------------------------*/
+
+static int vidioc_g_fmt_vid_cap(struct file *file, void *priv,
+                               struct v4l2_format *f)
+{
+       struct cx231xx_fh *fh = priv;
+       struct cx231xx *dev = fh->dev;
+
+       mutex_lock(&dev->lock);
+
+       f->fmt.pix.width = dev->width;
+       f->fmt.pix.height = dev->height;
+       f->fmt.pix.pixelformat = dev->format->fourcc;;
+       f->fmt.pix.bytesperline = (dev->width * dev->format->depth + 7) >> 3;;
+       f->fmt.pix.sizeimage = f->fmt.pix.bytesperline * dev->height;
+       f->fmt.pix.colorspace = V4L2_COLORSPACE_SMPTE170M;
+
+       f->fmt.pix.field = V4L2_FIELD_INTERLACED;
+
+       mutex_unlock(&dev->lock);
+
+       return 0;
+}
+
+static struct cx231xx_fmt *format_by_fourcc(unsigned int fourcc)
+{
+       unsigned int i;
+
+       for (i = 0; i < ARRAY_SIZE(format); i++)
+               if (format[i].fourcc == fourcc)
+                       return &format[i];
+
+       return NULL;
+}
+
+static int vidioc_try_fmt_vid_cap(struct file *file, void *priv,
+                                 struct v4l2_format *f)
+{
+       struct cx231xx_fh *fh = priv;
+       struct cx231xx *dev = fh->dev;
+       int width = f->fmt.pix.width;
+       int height = f->fmt.pix.height;
+       unsigned int maxw = norm_maxw(dev);
+       unsigned int maxh = norm_maxh(dev);
+       unsigned int hscale, vscale;
+       struct cx231xx_fmt *fmt;
+
+       fmt = format_by_fourcc(f->fmt.pix.pixelformat);
+       if (!fmt) {
+               cx231xx_videodbg("Fourcc format (%08x) invalid.\n",
+                                f->fmt.pix.pixelformat);
+               return -EINVAL;
+       }
+
+       /* width must even because of the YUYV format
+          height must be even because of interlacing */
+       height &= 0xfffe;
+       width &= 0xfffe;
+
+       if (unlikely(height < 32))
+               height = 32;
+       if (unlikely(height > maxh))
+               height = maxh;
+       if (unlikely(width < 48))
+               width = 48;
+       if (unlikely(width > maxw))
+               width = maxw;
+
+       get_scale(dev, width, height, &hscale, &vscale);
+
+       width = (((unsigned long)maxw) << 12) / (hscale + 4096L);
+       height = (((unsigned long)maxh) << 12) / (vscale + 4096L);
+
+       f->fmt.pix.width = width;
+       f->fmt.pix.height = height;
+       f->fmt.pix.pixelformat = fmt->fourcc;
+       f->fmt.pix.bytesperline = (dev->width * fmt->depth + 7) >> 3;
+       f->fmt.pix.sizeimage = f->fmt.pix.bytesperline * height;
+       f->fmt.pix.colorspace = V4L2_COLORSPACE_SMPTE170M;
+       f->fmt.pix.field = V4L2_FIELD_INTERLACED;
+
+       return 0;
+}
+
+static int vidioc_s_fmt_vid_cap(struct file *file, void *priv,
+                               struct v4l2_format *f)
+{
+       struct cx231xx_fh *fh = priv;
+       struct cx231xx *dev = fh->dev;
+       int rc;
+       struct cx231xx_fmt *fmt;
+
+       rc = check_dev(dev);
+       if (rc < 0)
+               return rc;
+
+       mutex_lock(&dev->lock);
+
+       vidioc_try_fmt_vid_cap(file, priv, f);
+
+       fmt = format_by_fourcc(f->fmt.pix.pixelformat);
+       if (!fmt) {
+               rc = -EINVAL;
+               goto out;
+       }
+
+       if (videobuf_queue_is_busy(&fh->vb_vidq)) {
+               cx231xx_errdev("%s queue busy\n", __func__);
+               rc = -EBUSY;
+               goto out;
+       }
+
+       if (dev->stream_on && !fh->stream_on) {
+               cx231xx_errdev("%s device in use by another fh\n", __func__);
+               rc = -EBUSY;
+               goto out;
+       }
+
+       /* set new image size */
+       dev->width = f->fmt.pix.width;
+       dev->height = f->fmt.pix.height;
+       dev->format = fmt;
+       get_scale(dev, dev->width, dev->height, &dev->hscale, &dev->vscale);
+
+       call_all(dev, video, s_fmt, f);
+
+       /* Set the correct alternate setting for this resolution */
+       cx231xx_resolution_set(dev);
+
+out:
+       mutex_unlock(&dev->lock);
+       return rc;
+}
+
+static int vidioc_g_std(struct file *file, void *priv, v4l2_std_id * id)
+{
+       struct cx231xx_fh *fh = priv;
+       struct cx231xx *dev = fh->dev;
+
+       *id = dev->norm;
+       return 0;
+}
+
+static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id *norm)
+{
+       struct cx231xx_fh *fh = priv;
+       struct cx231xx *dev = fh->dev;
+       struct v4l2_format f;
+       int rc;
+
+       rc = check_dev(dev);
+       if (rc < 0)
+               return rc;
+
+       cx231xx_info("vidioc_s_std : 0x%x\n", (unsigned int)*norm);
+
+       mutex_lock(&dev->lock);
+       dev->norm = *norm;
+
+       /* Adjusts width/height, if needed */
+       f.fmt.pix.width = dev->width;
+       f.fmt.pix.height = dev->height;
+       vidioc_try_fmt_vid_cap(file, priv, &f);
+
+       /* set new image size */
+       dev->width = f.fmt.pix.width;
+       dev->height = f.fmt.pix.height;
+       get_scale(dev, dev->width, dev->height, &dev->hscale, &dev->vscale);
+
+       call_all(dev, core, s_std, dev->norm);
+
+       mutex_unlock(&dev->lock);
+
+       cx231xx_resolution_set(dev);
+
+       /* do mode control overrides */
+       cx231xx_do_mode_ctrl_overrides(dev);
+
+       return 0;
+}
+
+static const char *iname[] = {
+       [CX231XX_VMUX_COMPOSITE1] = "Composite1",
+       [CX231XX_VMUX_SVIDEO]     = "S-Video",
+       [CX231XX_VMUX_TELEVISION] = "Television",
+       [CX231XX_VMUX_CABLE]      = "Cable TV",
+       [CX231XX_VMUX_DVB]        = "DVB",
+       [CX231XX_VMUX_DEBUG]      = "for debug only",
+};
+
+static int vidioc_enum_input(struct file *file, void *priv,
+                            struct v4l2_input *i)
+{
+       struct cx231xx_fh *fh = priv;
+       struct cx231xx *dev = fh->dev;
+       unsigned int n;
+
+       n = i->index;
+       if (n >= MAX_CX231XX_INPUT)
+               return -EINVAL;
+       if (0 == INPUT(n)->type)
+               return -EINVAL;
+
+       i->index = n;
+       i->type = V4L2_INPUT_TYPE_CAMERA;
+
+       strcpy(i->name, iname[INPUT(n)->type]);
+
+       if ((CX231XX_VMUX_TELEVISION == INPUT(n)->type) ||
+           (CX231XX_VMUX_CABLE == INPUT(n)->type))
+               i->type = V4L2_INPUT_TYPE_TUNER;
+
+       i->std = dev->vdev->tvnorms;
+
+       return 0;
+}
+
+static int vidioc_g_input(struct file *file, void *priv, unsigned int *i)
+{
+       struct cx231xx_fh *fh = priv;
+       struct cx231xx *dev = fh->dev;
+
+       *i = dev->video_input;
+
+       return 0;
+}
+
+static int vidioc_s_input(struct file *file, void *priv, unsigned int i)
+{
+       struct cx231xx_fh *fh = priv;
+       struct cx231xx *dev = fh->dev;
+       int rc;
+
+       rc = check_dev(dev);
+       if (rc < 0)
+               return rc;
+
+       if (i >= MAX_CX231XX_INPUT)
+               return -EINVAL;
+       if (0 == INPUT(i)->type)
+               return -EINVAL;
+
+       mutex_lock(&dev->lock);
+
+       video_mux(dev, i);
+
+       mutex_unlock(&dev->lock);
+       return 0;
+}
+
+static int vidioc_g_audio(struct file *file, void *priv, struct v4l2_audio *a)
+{
+       struct cx231xx_fh *fh = priv;
+       struct cx231xx *dev = fh->dev;
+
+       switch (a->index) {
+       case CX231XX_AMUX_VIDEO:
+               strcpy(a->name, "Television");
+               break;
+       case CX231XX_AMUX_LINE_IN:
+               strcpy(a->name, "Line In");
+               break;
+       default:
+               return -EINVAL;
+       }
+
+       a->index = dev->ctl_ainput;
+       a->capability = V4L2_AUDCAP_STEREO;
+
+       return 0;
+}
+
+static int vidioc_s_audio(struct file *file, void *priv, struct v4l2_audio *a)
+{
+       struct cx231xx_fh *fh = priv;
+       struct cx231xx *dev = fh->dev;
+       int status = 0;
+
+       /* Doesn't allow manual routing */
+       if (a->index != dev->ctl_ainput)
+               return -EINVAL;
+
+       dev->ctl_ainput = INPUT(a->index)->amux;
+       status = cx231xx_set_audio_input(dev, dev->ctl_ainput);
+
+       return status;
+}
+
+static int vidioc_queryctrl(struct file *file, void *priv,
+                           struct v4l2_queryctrl *qc)
+{
+       struct cx231xx_fh *fh = priv;
+       struct cx231xx *dev = fh->dev;
+       int id = qc->id;
+       int i;
+       int rc;
+
+       rc = check_dev(dev);
+       if (rc < 0)
+               return rc;
+
+       qc->id = v4l2_ctrl_next(ctrl_classes, qc->id);
+       if (unlikely(qc->id == 0))
+               return -EINVAL;
+
+       memset(qc, 0, sizeof(*qc));
+
+       qc->id = id;
+
+       if (qc->id < V4L2_CID_BASE || qc->id >= V4L2_CID_LASTP1)
+               return -EINVAL;
+
+       for (i = 0; i < CX231XX_CTLS; i++)
+               if (cx231xx_ctls[i].v.id == qc->id)
+                       break;
+
+       if (i == CX231XX_CTLS) {
+               *qc = no_ctl;
+               return 0;
+       }
+       *qc = cx231xx_ctls[i].v;
+
+       mutex_lock(&dev->lock);
+       call_all(dev, core, queryctrl, qc);
+       mutex_unlock(&dev->lock);
+
+       if (qc->type)
+               return 0;
+       else
+               return -EINVAL;
+}
+
+static int vidioc_g_ctrl(struct file *file, void *priv,
+                        struct v4l2_control *ctrl)
+{
+       struct cx231xx_fh *fh = priv;
+       struct cx231xx *dev = fh->dev;
+       int rc;
+
+       rc = check_dev(dev);
+       if (rc < 0)
+               return rc;
+
+       mutex_lock(&dev->lock);
+       call_all(dev, core, g_ctrl, ctrl);
+       mutex_unlock(&dev->lock);
+       return rc;
+}
+
+static int vidioc_s_ctrl(struct file *file, void *priv,
+                        struct v4l2_control *ctrl)
+{
+       struct cx231xx_fh *fh = priv;
+       struct cx231xx *dev = fh->dev;
+       int rc;
+
+       rc = check_dev(dev);
+       if (rc < 0)
+               return rc;
+
+       mutex_lock(&dev->lock);
+       call_all(dev, core, s_ctrl, ctrl);
+       mutex_unlock(&dev->lock);
+       return rc;
+}
+
+static int vidioc_g_tuner(struct file *file, void *priv, struct v4l2_tuner *t)
+{
+       struct cx231xx_fh *fh = priv;
+       struct cx231xx *dev = fh->dev;
+       int rc;
+
+       rc = check_dev(dev);
+       if (rc < 0)
+               return rc;
+
+       if (0 != t->index)
+               return -EINVAL;
+
+       strcpy(t->name, "Tuner");
+
+       t->type = V4L2_TUNER_ANALOG_TV;
+       t->capability = V4L2_TUNER_CAP_NORM;
+       t->rangehigh = 0xffffffffUL;
+       t->signal = 0xffff;     /* LOCKED */
+
+       return 0;
+}
+
+static int vidioc_s_tuner(struct file *file, void *priv, struct v4l2_tuner *t)
+{
+       struct cx231xx_fh *fh = priv;
+       struct cx231xx *dev = fh->dev;
+       int rc;
+
+       rc = check_dev(dev);
+       if (rc < 0)
+               return rc;
+
+       if (0 != t->index)
+               return -EINVAL;
+#if 0
+       mutex_lock(&dev->lock);
+       call_all(dev, tuner, s_tuner, t);
+       mutex_unlock(&dev->lock);
+#endif
+       return 0;
+}
+
+static int vidioc_g_frequency(struct file *file, void *priv,
+                             struct v4l2_frequency *f)
+{
+       struct cx231xx_fh *fh = priv;
+       struct cx231xx *dev = fh->dev;
+
+       mutex_lock(&dev->lock);
+       f->type = fh->radio ? V4L2_TUNER_RADIO : V4L2_TUNER_ANALOG_TV;
+       f->frequency = dev->ctl_freq;
+
+       call_all(dev, tuner, g_frequency, f);
+
+       mutex_unlock(&dev->lock);
+
+       return 0;
+}
+
+static int vidioc_s_frequency(struct file *file, void *priv,
+                             struct v4l2_frequency *f)
+{
+       struct cx231xx_fh *fh = priv;
+       struct cx231xx *dev = fh->dev;
+       int rc;
+
+       rc = check_dev(dev);
+       if (rc < 0)
+               return rc;
+
+       if (0 != f->tuner)
+               return -EINVAL;
+
+       if (unlikely(0 == fh->radio && f->type != V4L2_TUNER_ANALOG_TV))
+               return -EINVAL;
+       if (unlikely(1 == fh->radio && f->type != V4L2_TUNER_RADIO))
+               return -EINVAL;
+
+       /* set pre channel change settings in DIF first */
+       rc = cx231xx_tuner_pre_channel_change(dev);
+
+       mutex_lock(&dev->lock);
+
+       dev->ctl_freq = f->frequency;
+
+       if (dev->tuner_type == TUNER_XC5000) {
+               if (dev->cx231xx_set_analog_freq != NULL)
+                       dev->cx231xx_set_analog_freq(dev, f->frequency);
+       } else
+               call_all(dev, tuner, s_frequency, f);
+
+       mutex_unlock(&dev->lock);
+
+       /* set post channel change settings in DIF first */
+       rc = cx231xx_tuner_post_channel_change(dev);
+
+       cx231xx_info("Set New FREQUENCY to %d\n", f->frequency);
+
+       return rc;
+}
+
+#ifdef CONFIG_VIDEO_ADV_DEBUG
+
+/*
+  -R, --list-registers=type=<host/i2cdrv/i2caddr>,
+                               chip=<chip>[,min=<addr>,max=<addr>]
+                    dump registers from <min> to <max> [VIDIOC_DBG_G_REGISTER]
+  -r, --set-register=type=<host/i2cdrv/i2caddr>,
+                               chip=<chip>,reg=<addr>,val=<val>
+                    set the register [VIDIOC_DBG_S_REGISTER]
+
+  if type == host, then <chip> is the hosts chip ID (default 0)
+  if type == i2cdrv (default), then <chip> is the I2C driver name or ID
+  if type == i2caddr, then <chip> is the 7-bit I2C address
+*/
+
+static int vidioc_g_register(struct file *file, void *priv,
+                            struct v4l2_dbg_register *reg)
+{
+       struct cx231xx_fh *fh = priv;
+       struct cx231xx *dev = fh->dev;
+       int ret = 0;
+       u8 value[4] = { 0, 0, 0, 0 };
+       u32 data = 0;
+
+       switch (reg->match.type) {
+       case V4L2_CHIP_MATCH_HOST:
+               switch (reg->match.addr) {
+               case 0: /* Cx231xx - internal registers */
+                       ret = cx231xx_read_ctrl_reg(dev, VRT_GET_REGISTER,
+                                                 (u16)reg->reg, value, 4);
+                       reg->val = value[0] | value[1] << 8 |
+                                  value[2] << 16 | value[3] << 24;
+                       break;
+               case 1: /* AFE - read byte */
+                       ret = cx231xx_read_i2c_data(dev, AFE_DEVICE_ADDRESS,
+                                                 (u16)reg->reg, 2, &data, 1);
+                       reg->val = le32_to_cpu(data & 0xff);
+                       break;
+               case 14: /* AFE - read dword */
+                       ret = cx231xx_read_i2c_data(dev, AFE_DEVICE_ADDRESS,
+                                                 (u16)reg->reg, 2, &data, 4);
+                       reg->val = le32_to_cpu(data);
+                       break;
+               case 2: /* Video Block - read byte */
+                       ret = cx231xx_read_i2c_data(dev, VID_BLK_I2C_ADDRESS,
+                                                 (u16)reg->reg, 2, &data, 1);
+                       reg->val = le32_to_cpu(data & 0xff);
+                       break;
+               case 24: /* Video Block - read dword */
+                       ret = cx231xx_read_i2c_data(dev, VID_BLK_I2C_ADDRESS,
+                                                 (u16)reg->reg, 2, &data, 4);
+                       reg->val = le32_to_cpu(data);
+                       break;
+               case 3: /* I2S block - read byte */
+                       ret = cx231xx_read_i2c_data(dev,
+                                                   I2S_BLK_DEVICE_ADDRESS,
+                                                   (u16)reg->reg, 1,
+                                                   &data, 1);
+                       reg->val = le32_to_cpu(data & 0xff);
+                       break;
+               case 34: /* I2S Block - read dword */
+                       ret =
+                           cx231xx_read_i2c_data(dev, I2S_BLK_DEVICE_ADDRESS,
+                                                 (u16)reg->reg, 1, &data, 4);
+                       reg->val = le32_to_cpu(data);
+                       break;
+               }
+               return ret < 0 ? ret : 0;
+
+       case V4L2_CHIP_MATCH_I2C_DRIVER:
+               call_all(dev, core, g_register, reg);
+               return 0;
+       case V4L2_CHIP_MATCH_I2C_ADDR:
+               /* Not supported yet */
+               return -EINVAL;
+       default:
+               if (!v4l2_chip_match_host(&reg->match))
+                       return -EINVAL;
+       }
+
+       mutex_lock(&dev->lock);
+       call_all(dev, core, g_register, reg);
+       mutex_unlock(&dev->lock);
+
+       return ret;
+}
+
+static int vidioc_s_register(struct file *file, void *priv,
+                            struct v4l2_dbg_register *reg)
+{
+       struct cx231xx_fh *fh = priv;
+       struct cx231xx *dev = fh->dev;
+       int ret = 0;
+       __le64 buf;
+       u32 value;
+       u8 data[4] = { 0, 0, 0, 0 };
+
+       buf = cpu_to_le64(reg->val);
+
+       switch (reg->match.type) {
+       case V4L2_CHIP_MATCH_HOST:
+               {
+                       value = (u32) buf & 0xffffffff;
+
+                       switch (reg->match.addr) {
+                       case 0: /* cx231xx internal registers */
+                               data[0] = (u8) value;
+                               data[1] = (u8) (value >> 8);
+                               data[2] = (u8) (value >> 16);
+                               data[3] = (u8) (value >> 24);
+                               ret = cx231xx_write_ctrl_reg(dev,
+                                                          VRT_SET_REGISTER,
+                                                          (u16)reg->reg, data,
+                                                          4);
+                               break;
+                       case 1: /* AFE - read byte */
+                               ret = cx231xx_write_i2c_data(dev,
+                                                       AFE_DEVICE_ADDRESS,
+                                                       (u16)reg->reg, 2,
+                                                       value, 1);
+                               break;
+                       case 14: /* AFE - read dword */
+                               ret = cx231xx_write_i2c_data(dev,
+                                                       AFE_DEVICE_ADDRESS,
+                                                       (u16)reg->reg, 2,
+                                                       value, 4);
+                               break;
+                       case 2: /* Video Block - read byte */
+                               ret =
+                                   cx231xx_write_i2c_data(dev,
+                                                       VID_BLK_I2C_ADDRESS,
+                                                       (u16)reg->reg, 2,
+                                                       value, 1);
+                               break;
+                       case 24: /* Video Block - read dword */
+                               ret =
+                                   cx231xx_write_i2c_data(dev,
+                                                       VID_BLK_I2C_ADDRESS,
+                                                       (u16)reg->reg, 2,
+                                                       value, 4);
+                               break;
+                       case 3: /* I2S block - read byte */
+                               ret =
+                                   cx231xx_write_i2c_data(dev,
+                                                       I2S_BLK_DEVICE_ADDRESS,
+                                                       (u16)reg->reg, 1,
+                                                       value, 1);
+                               break;
+                       case 34: /* I2S block - read dword */
+                               ret =
+                                   cx231xx_write_i2c_data(dev,
+                                                       I2S_BLK_DEVICE_ADDRESS,
+                                                       (u16)reg->reg, 1,
+                                                       value, 4);
+                               break;
+                       }
+               }
+               return ret < 0 ? ret : 0;
+
+       default:
+               break;
+       }
+
+       mutex_lock(&dev->lock);
+       call_all(dev, core, s_register, reg);
+       mutex_unlock(&dev->lock);
+
+       return ret;
+}
+#endif
+
+static int vidioc_cropcap(struct file *file, void *priv,
+                         struct v4l2_cropcap *cc)
+{
+       struct cx231xx_fh *fh = priv;
+       struct cx231xx *dev = fh->dev;
+
+       if (cc->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
+               return -EINVAL;
+
+       cc->bounds.left = 0;
+       cc->bounds.top = 0;
+       cc->bounds.width = dev->width;
+       cc->bounds.height = dev->height;
+       cc->defrect = cc->bounds;
+       cc->pixelaspect.numerator = 54; /* 4:3 FIXME: remove magic numbers */
+       cc->pixelaspect.denominator = 59;
+
+       return 0;
+}
+
+static int vidioc_streamon(struct file *file, void *priv,
+                          enum v4l2_buf_type type)
+{
+       struct cx231xx_fh *fh = priv;
+       struct cx231xx *dev = fh->dev;
+       int rc;
+
+       rc = check_dev(dev);
+       if (rc < 0)
+               return rc;
+
+       mutex_lock(&dev->lock);
+       rc = res_get(fh);
+
+       if (likely(rc >= 0))
+               rc = videobuf_streamon(&fh->vb_vidq);
+
+       call_all(dev, video, s_stream, 1);
+
+       mutex_unlock(&dev->lock);
+
+       return rc;
+}
+
+static int vidioc_streamoff(struct file *file, void *priv,
+                           enum v4l2_buf_type type)
+{
+       struct cx231xx_fh *fh = priv;
+       struct cx231xx *dev = fh->dev;
+       int rc;
+
+       rc = check_dev(dev);
+       if (rc < 0)
+               return rc;
+
+       if ((fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) &&
+           (fh->type != V4L2_BUF_TYPE_VBI_CAPTURE))
+               return -EINVAL;
+       if (type != fh->type)
+               return -EINVAL;
+
+       mutex_lock(&dev->lock);
+
+       cx25840_call(dev, video, s_stream, 0);
+
+       videobuf_streamoff(&fh->vb_vidq);
+       res_free(fh);
+
+       mutex_unlock(&dev->lock);
+
+       return 0;
+}
+
+static int vidioc_querycap(struct file *file, void *priv,
+                          struct v4l2_capability *cap)
+{
+       struct cx231xx_fh *fh = priv;
+       struct cx231xx *dev = fh->dev;
+
+       strlcpy(cap->driver, "cx231xx", sizeof(cap->driver));
+       strlcpy(cap->card, cx231xx_boards[dev->model].name, sizeof(cap->card));
+       usb_make_path(dev->udev, cap->bus_info, sizeof(cap->bus_info));
+
+       cap->version = CX231XX_VERSION_CODE;
+
+       cap->capabilities = V4L2_CAP_VBI_CAPTURE |
+#if 0
+               V4L2_CAP_SLICED_VBI_CAPTURE |
+#endif
+               V4L2_CAP_VIDEO_CAPTURE  |
+               V4L2_CAP_AUDIO          |
+               V4L2_CAP_READWRITE      |
+               V4L2_CAP_STREAMING;
+
+       if (dev->tuner_type != TUNER_ABSENT)
+               cap->capabilities |= V4L2_CAP_TUNER;
+
+       return 0;
+}
+
+static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv,
+                                  struct v4l2_fmtdesc *f)
+{
+       if (unlikely(f->index >= ARRAY_SIZE(format)))
+               return -EINVAL;
+
+       strlcpy(f->description, format[f->index].name, sizeof(f->description));
+       f->pixelformat = format[f->index].fourcc;
+
+       return 0;
+}
+
+/* Sliced VBI ioctls */
+static int vidioc_g_fmt_sliced_vbi_cap(struct file *file, void *priv,
+                                      struct v4l2_format *f)
+{
+       struct cx231xx_fh *fh = priv;
+       struct cx231xx *dev = fh->dev;
+       int rc;
+
+       rc = check_dev(dev);
+       if (rc < 0)
+               return rc;
+
+       mutex_lock(&dev->lock);
+
+       f->fmt.sliced.service_set = 0;
+
+       call_all(dev, video, g_fmt, f);
+
+       if (f->fmt.sliced.service_set == 0)
+               rc = -EINVAL;
+
+       mutex_unlock(&dev->lock);
+       return rc;
+}
+
+static int vidioc_try_set_sliced_vbi_cap(struct file *file, void *priv,
+                                        struct v4l2_format *f)
+{
+       struct cx231xx_fh *fh = priv;
+       struct cx231xx *dev = fh->dev;
+       int rc;
+
+       rc = check_dev(dev);
+       if (rc < 0)
+               return rc;
+
+       mutex_lock(&dev->lock);
+       call_all(dev, video, g_fmt, f);
+       mutex_unlock(&dev->lock);
+
+       if (f->fmt.sliced.service_set == 0)
+               return -EINVAL;
+
+       return 0;
+}
+
+/* RAW VBI ioctls */
+
+static int vidioc_g_fmt_vbi_cap(struct file *file, void *priv,
+                               struct v4l2_format *f)
+{
+       struct cx231xx_fh *fh = priv;
+       struct cx231xx *dev = fh->dev;
+
+       f->fmt.vbi.sampling_rate = (dev->norm & V4L2_STD_625_50) ?
+           35468950 : 28636363;
+       f->fmt.vbi.samples_per_line = VBI_LINE_LENGTH;
+       f->fmt.vbi.sample_format = V4L2_PIX_FMT_GREY;
+       f->fmt.vbi.offset = 64 * 4;
+       f->fmt.vbi.start[0] = (dev->norm & V4L2_STD_625_50) ?
+           PAL_VBI_START_LINE : NTSC_VBI_START_LINE;
+       f->fmt.vbi.count[0] = (dev->norm & V4L2_STD_625_50) ?
+           PAL_VBI_LINES : NTSC_VBI_LINES;
+       f->fmt.vbi.start[1] = (dev->norm & V4L2_STD_625_50) ?
+           PAL_VBI_START_LINE + 312 : NTSC_VBI_START_LINE + 263;
+       f->fmt.vbi.count[1] = f->fmt.vbi.count[0];
+
+       return 0;
+
+}
+
+static int vidioc_try_fmt_vbi_cap(struct file *file, void *priv,
+                                 struct v4l2_format *f)
+{
+       struct cx231xx_fh *fh = priv;
+       struct cx231xx *dev = fh->dev;
+
+       if (dev->vbi_stream_on && !fh->stream_on) {
+               cx231xx_errdev("%s device in use by another fh\n", __func__);
+               return -EBUSY;
+       }
+
+       f->type = V4L2_BUF_TYPE_VBI_CAPTURE;
+       f->fmt.vbi.sampling_rate = (dev->norm & V4L2_STD_625_50) ?
+           35468950 : 28636363;
+       f->fmt.vbi.samples_per_line = VBI_LINE_LENGTH;
+       f->fmt.vbi.sample_format = V4L2_PIX_FMT_GREY;
+       f->fmt.vbi.offset = 244;
+       f->fmt.vbi.flags = 0;
+       f->fmt.vbi.start[0] = (dev->norm & V4L2_STD_625_50) ?
+           PAL_VBI_START_LINE : NTSC_VBI_START_LINE;
+       f->fmt.vbi.count[0] = (dev->norm & V4L2_STD_625_50) ?
+           PAL_VBI_LINES : NTSC_VBI_LINES;
+       f->fmt.vbi.start[1] = (dev->norm & V4L2_STD_625_50) ?
+           PAL_VBI_START_LINE + 312 : NTSC_VBI_START_LINE + 263;
+       f->fmt.vbi.count[1] = f->fmt.vbi.count[0];
+
+       return 0;
+
+}
+
+static int vidioc_reqbufs(struct file *file, void *priv,
+                         struct v4l2_requestbuffers *rb)
+{
+       struct cx231xx_fh *fh = priv;
+       struct cx231xx *dev = fh->dev;
+       int rc;
+
+       rc = check_dev(dev);
+       if (rc < 0)
+               return rc;
+
+       return videobuf_reqbufs(&fh->vb_vidq, rb);
+}
+
+static int vidioc_querybuf(struct file *file, void *priv, struct v4l2_buffer *b)
+{
+       struct cx231xx_fh *fh = priv;
+       struct cx231xx *dev = fh->dev;
+       int rc;
+
+       rc = check_dev(dev);
+       if (rc < 0)
+               return rc;
+
+       return videobuf_querybuf(&fh->vb_vidq, b);
+}
+
+static int vidioc_qbuf(struct file *file, void *priv, struct v4l2_buffer *b)
+{
+       struct cx231xx_fh *fh = priv;
+       struct cx231xx *dev = fh->dev;
+       int rc;
+
+       rc = check_dev(dev);
+       if (rc < 0)
+               return rc;
+
+       return videobuf_qbuf(&fh->vb_vidq, b);
+}
+
+static int vidioc_dqbuf(struct file *file, void *priv, struct v4l2_buffer *b)
+{
+       struct cx231xx_fh *fh = priv;
+       struct cx231xx *dev = fh->dev;
+       int rc;
+
+       rc = check_dev(dev);
+       if (rc < 0)
+               return rc;
+
+       return videobuf_dqbuf(&fh->vb_vidq, b, file->f_flags & O_NONBLOCK);
+}
+
+#ifdef CONFIG_VIDEO_V4L1_COMPAT
+static int vidiocgmbuf(struct file *file, void *priv, struct video_mbuf *mbuf)
+{
+       struct cx231xx_fh *fh = priv;
+
+       return videobuf_cgmbuf(&fh->vb_vidq, mbuf, 8);
+}
+#endif
+
+/* ----------------------------------------------------------- */
+/* RADIO ESPECIFIC IOCTLS                                      */
+/* ----------------------------------------------------------- */
+
+static int radio_querycap(struct file *file, void *priv,
+                         struct v4l2_capability *cap)
+{
+       struct cx231xx *dev = ((struct cx231xx_fh *)priv)->dev;
+
+       strlcpy(cap->driver, "cx231xx", sizeof(cap->driver));
+       strlcpy(cap->card, cx231xx_boards[dev->model].name, sizeof(cap->card));
+       usb_make_path(dev->udev, cap->bus_info, sizeof(cap->bus_info));
+
+       cap->version = CX231XX_VERSION_CODE;
+       cap->capabilities = V4L2_CAP_TUNER;
+       return 0;
+}
+
+static int radio_g_tuner(struct file *file, void *priv, struct v4l2_tuner *t)
+{
+       struct cx231xx *dev = ((struct cx231xx_fh *)priv)->dev;
+
+       if (unlikely(t->index > 0))
+               return -EINVAL;
+
+       strcpy(t->name, "Radio");
+       t->type = V4L2_TUNER_RADIO;
+
+       mutex_lock(&dev->lock);
+       call_all(dev, tuner, s_tuner, t);
+       mutex_unlock(&dev->lock);
+
+       return 0;
+}
+
+static int radio_enum_input(struct file *file, void *priv, struct v4l2_input *i)
+{
+       if (i->index != 0)
+               return -EINVAL;
+       strcpy(i->name, "Radio");
+       i->type = V4L2_INPUT_TYPE_TUNER;
+
+       return 0;
+}
+
+static int radio_g_audio(struct file *file, void *priv, struct v4l2_audio *a)
+{
+       if (unlikely(a->index))
+               return -EINVAL;
+
+       strcpy(a->name, "Radio");
+       return 0;
+}
+
+static int radio_s_tuner(struct file *file, void *priv, struct v4l2_tuner *t)
+{
+       struct cx231xx *dev = ((struct cx231xx_fh *)priv)->dev;
+
+       if (0 != t->index)
+               return -EINVAL;
+
+       mutex_lock(&dev->lock);
+       call_all(dev, tuner, s_tuner, t);
+       mutex_unlock(&dev->lock);
+
+       return 0;
+}
+
+static int radio_s_audio(struct file *file, void *fh, struct v4l2_audio *a)
+{
+       return 0;
+}
+
+static int radio_s_input(struct file *file, void *fh, unsigned int i)
+{
+       return 0;
+}
+
+static int radio_queryctrl(struct file *file, void *priv,
+                          struct v4l2_queryctrl *c)
+{
+       int i;
+
+       if (c->id < V4L2_CID_BASE || c->id >= V4L2_CID_LASTP1)
+               return -EINVAL;
+       if (c->id == V4L2_CID_AUDIO_MUTE) {
+               for (i = 0; i < CX231XX_CTLS; i++)
+                       if (cx231xx_ctls[i].v.id == c->id)
+                               break;
+               *c = cx231xx_ctls[i].v;
+       } else
+               *c = no_ctl;
+       return 0;
+}
+
+/*
+ * cx231xx_v4l2_open()
+ * inits the device and starts isoc transfer
+ */
+static int cx231xx_v4l2_open(struct file *filp)
+{
+       int minor = video_devdata(filp)->minor;
+       int errCode = 0, radio = 0;
+       struct cx231xx *dev = NULL;
+       struct cx231xx_fh *fh;
+       enum v4l2_buf_type fh_type = 0;
+
+       dev = cx231xx_get_device(minor, &fh_type, &radio);
+       if (NULL == dev)
+               return -ENODEV;
+
+       mutex_lock(&dev->lock);
+
+       cx231xx_videodbg("open minor=%d type=%s users=%d\n",
+                        minor, v4l2_type_names[fh_type], dev->users);
+
+#if 0
+       errCode = cx231xx_set_mode(dev, CX231XX_ANALOG_MODE);
+       if (errCode < 0) {
+               cx231xx_errdev
+                   ("Device locked on digital mode. Can't open analog\n");
+               mutex_unlock(&dev->lock);
+               return -EBUSY;
+       }
+#endif
+
+       fh = kzalloc(sizeof(struct cx231xx_fh), GFP_KERNEL);
+       if (!fh) {
+               cx231xx_errdev("cx231xx-video.c: Out of memory?!\n");
+               mutex_unlock(&dev->lock);
+               return -ENOMEM;
+       }
+       fh->dev = dev;
+       fh->radio = radio;
+       fh->type = fh_type;
+       filp->private_data = fh;
+
+       if (fh->type == V4L2_BUF_TYPE_VIDEO_CAPTURE && dev->users == 0) {
+               dev->width = norm_maxw(dev);
+               dev->height = norm_maxh(dev);
+               dev->hscale = 0;
+               dev->vscale = 0;
+
+               /* Power up in Analog TV mode */
+               cx231xx_set_power_mode(dev, POLARIS_AVMODE_ANALOGT_TV);
+
+#if 0
+               cx231xx_set_mode(dev, CX231XX_ANALOG_MODE);
+#endif
+               cx231xx_resolution_set(dev);
+
+               /* set video alternate setting */
+               cx231xx_set_video_alternate(dev);
+
+               /* Needed, since GPIO might have disabled power of
+                  some i2c device */
+               cx231xx_config_i2c(dev);
+
+               /* device needs to be initialized before isoc transfer */
+               dev->video_input = dev->video_input > 2 ? 2 : dev->video_input;
+               video_mux(dev, dev->video_input);
+
+       }
+       if (fh->radio) {
+               cx231xx_videodbg("video_open: setting radio device\n");
+
+               /* cx231xx_start_radio(dev); */
+
+               call_all(dev, tuner, s_radio);
+       }
+
+       dev->users++;
+
+       if (fh->type == V4L2_BUF_TYPE_VIDEO_CAPTURE)
+               videobuf_queue_vmalloc_init(&fh->vb_vidq, &cx231xx_video_qops,
+                                           NULL, &dev->video_mode.slock,
+                                           fh->type, V4L2_FIELD_INTERLACED,
+                                           sizeof(struct cx231xx_buffer), fh);
+       if (fh->type == V4L2_BUF_TYPE_VBI_CAPTURE) {
+               /* Set the required alternate setting  VBI interface works in
+                  Bulk mode only */
+               cx231xx_set_alt_setting(dev, INDEX_VANC, 0);
+
+               videobuf_queue_vmalloc_init(&fh->vb_vidq, &cx231xx_vbi_qops,
+                                           NULL, &dev->vbi_mode.slock,
+                                           fh->type, V4L2_FIELD_SEQ_TB,
+                                           sizeof(struct cx231xx_buffer), fh);
+       }
+
+       mutex_unlock(&dev->lock);
+
+       return errCode;
+}
+
+/*
+ * cx231xx_realease_resources()
+ * unregisters the v4l2,i2c and usb devices
+ * called when the device gets disconected or at module unload
+*/
+void cx231xx_release_analog_resources(struct cx231xx *dev)
+{
+
+       /*FIXME: I2C IR should be disconnected */
+
+       if (dev->radio_dev) {
+               if (-1 != dev->radio_dev->minor)
+                       video_unregister_device(dev->radio_dev);
+               else
+                       video_device_release(dev->radio_dev);
+               dev->radio_dev = NULL;
+       }
+       if (dev->vbi_dev) {
+               cx231xx_info("V4L2 device /dev/vbi%d deregistered\n",
+                            dev->vbi_dev->num);
+               if (-1 != dev->vbi_dev->minor)
+                       video_unregister_device(dev->vbi_dev);
+               else
+                       video_device_release(dev->vbi_dev);
+               dev->vbi_dev = NULL;
+       }
+       if (dev->vdev) {
+               cx231xx_info("V4L2 device /dev/video%d deregistered\n",
+                            dev->vdev->num);
+               if (-1 != dev->vdev->minor)
+                       video_unregister_device(dev->vdev);
+               else
+                       video_device_release(dev->vdev);
+               dev->vdev = NULL;
+       }
+}
+
+/*
+ * cx231xx_v4l2_close()
+ * stops streaming and deallocates all resources allocated by the v4l2
+ * calls and ioctls
+ */
+static int cx231xx_v4l2_close(struct file *filp)
+{
+       struct cx231xx_fh *fh = filp->private_data;
+       struct cx231xx *dev = fh->dev;
+
+       cx231xx_videodbg("users=%d\n", dev->users);
+
+       mutex_lock(&dev->lock);
+
+       if (res_check(fh))
+               res_free(fh);
+
+       if (fh->type == V4L2_BUF_TYPE_VBI_CAPTURE) {
+               videobuf_stop(&fh->vb_vidq);
+               videobuf_mmap_free(&fh->vb_vidq);
+
+               /* the device is already disconnect,
+                  free the remaining resources */
+               if (dev->state & DEV_DISCONNECTED) {
+                       cx231xx_release_resources(dev);
+                       mutex_unlock(&dev->lock);
+                       kfree(dev);
+                       return 0;
+               }
+
+               /* do this before setting alternate! */
+               cx231xx_uninit_vbi_isoc(dev);
+
+               /* set alternate 0 */
+               if (!dev->vbi_or_sliced_cc_mode)
+                       cx231xx_set_alt_setting(dev, INDEX_VANC, 0);
+               else
+                       cx231xx_set_alt_setting(dev, INDEX_HANC, 0);
+
+               kfree(fh);
+               dev->users--;
+               wake_up_interruptible_nr(&dev->open, 1);
+               mutex_unlock(&dev->lock);
+               return 0;
+       }
+
+       if (dev->users == 1) {
+               videobuf_stop(&fh->vb_vidq);
+               videobuf_mmap_free(&fh->vb_vidq);
+
+               /* the device is already disconnect,
+                  free the remaining resources */
+               if (dev->state & DEV_DISCONNECTED) {
+                       cx231xx_release_resources(dev);
+                       mutex_unlock(&dev->lock);
+                       kfree(dev);
+                       return 0;
+               }
+
+               /* Save some power by putting tuner to sleep */
+               call_all(dev, tuner, s_standby);
+
+               /* do this before setting alternate! */
+               cx231xx_uninit_isoc(dev);
+               cx231xx_set_mode(dev, CX231XX_SUSPEND);
+
+               /* set alternate 0 */
+               cx231xx_set_alt_setting(dev, INDEX_VIDEO, 0);
+       }
+       kfree(fh);
+       dev->users--;
+       wake_up_interruptible_nr(&dev->open, 1);
+       mutex_unlock(&dev->lock);
+       return 0;
+}
+
+/*
+ * cx231xx_v4l2_read()
+ * will allocate buffers when called for the first time
+ */
+static ssize_t
+cx231xx_v4l2_read(struct file *filp, char __user *buf, size_t count,
+                 loff_t *pos)
+{
+       struct cx231xx_fh *fh = filp->private_data;
+       struct cx231xx *dev = fh->dev;
+       int rc;
+
+       rc = check_dev(dev);
+       if (rc < 0)
+               return rc;
+
+       if ((fh->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) ||
+           (fh->type == V4L2_BUF_TYPE_VBI_CAPTURE)) {
+               mutex_lock(&dev->lock);
+               rc = res_get(fh);
+               mutex_unlock(&dev->lock);
+
+               if (unlikely(rc < 0))
+                       return rc;
+
+               return videobuf_read_stream(&fh->vb_vidq, buf, count, pos, 0,
+                                           filp->f_flags & O_NONBLOCK);
+       }
+       return 0;
+}
+
+/*
+ * cx231xx_v4l2_poll()
+ * will allocate buffers when called for the first time
+ */
+static unsigned int cx231xx_v4l2_poll(struct file *filp, poll_table * wait)
+{
+       struct cx231xx_fh *fh = filp->private_data;
+       struct cx231xx *dev = fh->dev;
+       int rc;
+
+       rc = check_dev(dev);
+       if (rc < 0)
+               return rc;
+
+       mutex_lock(&dev->lock);
+       rc = res_get(fh);
+       mutex_unlock(&dev->lock);
+
+       if (unlikely(rc < 0))
+               return POLLERR;
+
+       if ((V4L2_BUF_TYPE_VIDEO_CAPTURE == fh->type) ||
+           (V4L2_BUF_TYPE_VBI_CAPTURE == fh->type))
+               return videobuf_poll_stream(filp, &fh->vb_vidq, wait);
+       else
+               return POLLERR;
+}
+
+/*
+ * cx231xx_v4l2_mmap()
+ */
+static int cx231xx_v4l2_mmap(struct file *filp, struct vm_area_struct *vma)
+{
+       struct cx231xx_fh *fh = filp->private_data;
+       struct cx231xx *dev = fh->dev;
+       int rc;
+
+       rc = check_dev(dev);
+       if (rc < 0)
+               return rc;
+
+       mutex_lock(&dev->lock);
+       rc = res_get(fh);
+       mutex_unlock(&dev->lock);
+
+       if (unlikely(rc < 0))
+               return rc;
+
+       rc = videobuf_mmap_mapper(&fh->vb_vidq, vma);
+
+       cx231xx_videodbg("vma start=0x%08lx, size=%ld, ret=%d\n",
+                        (unsigned long)vma->vm_start,
+                        (unsigned long)vma->vm_end -
+                        (unsigned long)vma->vm_start, rc);
+
+       return rc;
+}
+
+static const struct v4l2_file_operations cx231xx_v4l_fops = {
+       .owner   = THIS_MODULE,
+       .open    = cx231xx_v4l2_open,
+       .release = cx231xx_v4l2_close,
+       .read    = cx231xx_v4l2_read,
+       .poll    = cx231xx_v4l2_poll,
+       .mmap    = cx231xx_v4l2_mmap,
+       .ioctl   = video_ioctl2,
+};
+
+static const struct v4l2_ioctl_ops video_ioctl_ops = {
+       .vidioc_querycap               = vidioc_querycap,
+       .vidioc_enum_fmt_vid_cap       = vidioc_enum_fmt_vid_cap,
+       .vidioc_g_fmt_vid_cap          = vidioc_g_fmt_vid_cap,
+       .vidioc_try_fmt_vid_cap        = vidioc_try_fmt_vid_cap,
+       .vidioc_s_fmt_vid_cap          = vidioc_s_fmt_vid_cap,
+       .vidioc_g_fmt_vbi_cap          = vidioc_g_fmt_vbi_cap,
+       .vidioc_try_fmt_vbi_cap        = vidioc_try_fmt_vbi_cap,
+       .vidioc_s_fmt_vbi_cap          = vidioc_try_fmt_vbi_cap,
+       .vidioc_g_audio                =  vidioc_g_audio,
+       .vidioc_s_audio                = vidioc_s_audio,
+       .vidioc_cropcap                = vidioc_cropcap,
+       .vidioc_g_fmt_sliced_vbi_cap   = vidioc_g_fmt_sliced_vbi_cap,
+       .vidioc_try_fmt_sliced_vbi_cap = vidioc_try_set_sliced_vbi_cap,
+       .vidioc_reqbufs                = vidioc_reqbufs,
+       .vidioc_querybuf               = vidioc_querybuf,
+       .vidioc_qbuf                   = vidioc_qbuf,
+       .vidioc_dqbuf                  = vidioc_dqbuf,
+       .vidioc_s_std                  = vidioc_s_std,
+       .vidioc_g_std                  = vidioc_g_std,
+       .vidioc_enum_input             = vidioc_enum_input,
+       .vidioc_g_input                = vidioc_g_input,
+       .vidioc_s_input                = vidioc_s_input,
+       .vidioc_queryctrl              = vidioc_queryctrl,
+       .vidioc_g_ctrl                 = vidioc_g_ctrl,
+       .vidioc_s_ctrl                 = vidioc_s_ctrl,
+       .vidioc_streamon               = vidioc_streamon,
+       .vidioc_streamoff              = vidioc_streamoff,
+       .vidioc_g_tuner                = vidioc_g_tuner,
+       .vidioc_s_tuner                = vidioc_s_tuner,
+       .vidioc_g_frequency            = vidioc_g_frequency,
+       .vidioc_s_frequency            = vidioc_s_frequency,
+#ifdef CONFIG_VIDEO_ADV_DEBUG
+       .vidioc_g_register             = vidioc_g_register,
+       .vidioc_s_register             = vidioc_s_register,
+#endif
+#ifdef CONFIG_VIDEO_V4L1_COMPAT
+       .vidiocgmbuf                   = vidiocgmbuf,
+#endif
+};
+
+static struct video_device cx231xx_vbi_template;
+
+static const struct video_device cx231xx_video_template = {
+       .fops         = &cx231xx_v4l_fops,
+       .release      = video_device_release,
+       .ioctl_ops    = &video_ioctl_ops,
+       .minor        = -1,
+       .tvnorms      = V4L2_STD_ALL,
+       .current_norm = V4L2_STD_PAL,
+};
+
+static const struct v4l2_file_operations radio_fops = {
+       .owner   = THIS_MODULE,
+       .open   = cx231xx_v4l2_open,
+       .release = cx231xx_v4l2_close,
+       .ioctl   = video_ioctl2,
+};
+
+static const struct v4l2_ioctl_ops radio_ioctl_ops = {
+       .vidioc_querycap    = radio_querycap,
+       .vidioc_g_tuner     = radio_g_tuner,
+       .vidioc_enum_input  = radio_enum_input,
+       .vidioc_g_audio     = radio_g_audio,
+       .vidioc_s_tuner     = radio_s_tuner,
+       .vidioc_s_audio     = radio_s_audio,
+       .vidioc_s_input     = radio_s_input,
+       .vidioc_queryctrl   = radio_queryctrl,
+       .vidioc_g_ctrl      = vidioc_g_ctrl,
+       .vidioc_s_ctrl      = vidioc_s_ctrl,
+       .vidioc_g_frequency = vidioc_g_frequency,
+       .vidioc_s_frequency = vidioc_s_frequency,
+#ifdef CONFIG_VIDEO_ADV_DEBUG
+       .vidioc_g_register  = vidioc_g_register,
+       .vidioc_s_register  = vidioc_s_register,
+#endif
+};
+
+static struct video_device cx231xx_radio_template = {
+       .name      = "cx231xx-radio",
+       .fops      = &radio_fops,
+       .ioctl_ops = &radio_ioctl_ops,
+       .minor     = -1,
+};
+
+/******************************** usb interface ******************************/
+
+static struct video_device *cx231xx_vdev_init(struct cx231xx *dev,
+               const struct video_device
+               *template, const char *type_name)
+{
+       struct video_device *vfd;
+
+       vfd = video_device_alloc();
+       if (NULL == vfd)
+               return NULL;
+
+       *vfd = *template;
+       vfd->minor = -1;
+       vfd->v4l2_dev = &dev->v4l2_dev;
+       vfd->release = video_device_release;
+       vfd->debug = video_debug;
+
+       snprintf(vfd->name, sizeof(vfd->name), "%s %s", dev->name, type_name);
+
+       return vfd;
+}
+
+int cx231xx_register_analog_devices(struct cx231xx *dev)
+{
+       int ret;
+
+       cx231xx_info("%s: v4l2 driver version %d.%d.%d\n",
+                    dev->name,
+                    (CX231XX_VERSION_CODE >> 16) & 0xff,
+                    (CX231XX_VERSION_CODE >> 8) & 0xff,
+                    CX231XX_VERSION_CODE & 0xff);
+
+       /* set default norm */
+       /*dev->norm = cx231xx_video_template.current_norm; */
+       dev->width = norm_maxw(dev);
+       dev->height = norm_maxh(dev);
+       dev->interlaced = 0;
+       dev->hscale = 0;
+       dev->vscale = 0;
+
+       /* Analog specific initialization */
+       dev->format = &format[0];
+       /* video_mux(dev, dev->video_input); */
+
+       /* Audio defaults */
+       dev->mute = 1;
+       dev->volume = 0x1f;
+
+       /* enable vbi capturing */
+       /* write code here...  */
+
+       /* allocate and fill video video_device struct */
+       dev->vdev = cx231xx_vdev_init(dev, &cx231xx_video_template, "video");
+       if (!dev->vdev) {
+               cx231xx_errdev("cannot allocate video_device.\n");
+               return -ENODEV;
+       }
+
+       /* register v4l2 video video_device */
+       ret = video_register_device(dev->vdev, VFL_TYPE_GRABBER,
+                                   video_nr[dev->devno]);
+       if (ret) {
+               cx231xx_errdev("unable to register video device (error=%i).\n",
+                              ret);
+               return ret;
+       }
+
+       cx231xx_info("%s/0: registered device video%d [v4l2]\n",
+                    dev->name, dev->vdev->num);
+
+       /* Initialize VBI template */
+       memcpy(&cx231xx_vbi_template, &cx231xx_video_template,
+              sizeof(cx231xx_vbi_template));
+       strcpy(cx231xx_vbi_template.name, "cx231xx-vbi");
+
+       /* Allocate and fill vbi video_device struct */
+       dev->vbi_dev = cx231xx_vdev_init(dev, &cx231xx_vbi_template, "vbi");
+
+       /* register v4l2 vbi video_device */
+       ret = video_register_device(dev->vbi_dev, VFL_TYPE_VBI,
+                                   vbi_nr[dev->devno]);
+       if (ret < 0) {
+               cx231xx_errdev("unable to register vbi device\n");
+               return ret;
+       }
+
+       cx231xx_info("%s/0: registered device vbi%d\n",
+                    dev->name, dev->vbi_dev->num);
+
+       if (cx231xx_boards[dev->model].radio.type == CX231XX_RADIO) {
+               dev->radio_dev = cx231xx_vdev_init(dev, &cx231xx_radio_template,
+                                                  "radio");
+               if (!dev->radio_dev) {
+                       cx231xx_errdev("cannot allocate video_device.\n");
+                       return -ENODEV;
+               }
+               ret = video_register_device(dev->radio_dev, VFL_TYPE_RADIO,
+                                           radio_nr[dev->devno]);
+               if (ret < 0) {
+                       cx231xx_errdev("can't register radio device\n");
+                       return ret;
+               }
+               cx231xx_info("Registered radio device as /dev/radio%d\n",
+                            dev->radio_dev->num);
+       }
+
+       cx231xx_info("V4L2 device registered as /dev/video%d and /dev/vbi%d\n",
+                    dev->vdev->num, dev->vbi_dev->num);
+
+       return 0;
+}
diff --git a/drivers/media/video/cx231xx/cx231xx.h b/drivers/media/video/cx231xx/cx231xx.h
new file mode 100644 (file)
index 0000000..aa4a23e
--- /dev/null
@@ -0,0 +1,779 @@
+/*
+   cx231xx.h - driver for Conexant Cx23100/101/102 USB video capture devices
+
+   Copyright (C) 2008 <srinivasa.deevi at conexant dot com>
+       Based on em28xx driver
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef _CX231XX_H
+#define _CX231XX_H
+
+#include <linux/videodev2.h>
+#include <linux/types.h>
+#include <linux/ioctl.h>
+#include <linux/i2c.h>
+#include <linux/i2c-algo-bit.h>
+#include <linux/mutex.h>
+
+
+#include <media/videobuf-vmalloc.h>
+#include <media/v4l2-device.h>
+#include <media/ir-kbd-i2c.h>
+#if defined(CONFIG_VIDEO_CX231XX_DVB) || \
+       defined(CONFIG_VIDEO_CX231XX_DVB_MODULE)
+#include <media/videobuf-dvb.h>
+#endif
+
+#include "cx231xx-reg.h"
+#include "cx231xx-pcb-cfg.h"
+#include "cx231xx-conf-reg.h"
+
+#define DRIVER_NAME                     "cx231xx"
+#define PWR_SLEEP_INTERVAL              5
+
+/* I2C addresses for control block in Cx231xx */
+#define     AFE_DEVICE_ADDRESS         0x60
+#define     I2S_BLK_DEVICE_ADDRESS     0x98
+#define     VID_BLK_I2C_ADDRESS                0x88
+#define     DIF_USE_BASEBAND            0xFFFFFFFF
+
+/* Boards supported by driver */
+#define CX231XX_BOARD_UNKNOWN              0
+#define CX231XX_BOARD_CNXT_RDE_250             1
+#define CX231XX_BOARD_CNXT_RDU_250             2
+
+/* Limits minimum and default number of buffers */
+#define CX231XX_MIN_BUF                 4
+#define CX231XX_DEF_BUF                 12
+#define CX231XX_DEF_VBI_BUF             6
+
+#define VBI_LINE_COUNT                  17
+#define VBI_LINE_LENGTH                 1440
+
+/*Limits the max URB message size */
+#define URB_MAX_CTRL_SIZE               80
+
+/* Params for validated field */
+#define CX231XX_BOARD_NOT_VALIDATED     1
+#define CX231XX_BOARD_VALIDATED                0
+
+/* maximum number of cx231xx boards */
+#define CX231XX_MAXBOARDS               8
+
+/* maximum number of frames that can be queued */
+#define CX231XX_NUM_FRAMES              5
+
+/* number of buffers for isoc transfers */
+#define CX231XX_NUM_BUFS                8
+
+/* number of packets for each buffer
+   windows requests only 40 packets .. so we better do the same
+   this is what I found out for all alternate numbers there!
+ */
+#define CX231XX_NUM_PACKETS             40
+
+/* default alternate; 0 means choose the best */
+#define CX231XX_PINOUT                  0
+
+#define CX231XX_INTERLACED_DEFAULT      1
+
+/* time to wait when stopping the isoc transfer */
+#define CX231XX_URB_TIMEOUT            \
+               msecs_to_jiffies(CX231XX_NUM_BUFS * CX231XX_NUM_PACKETS)
+
+enum cx231xx_mode {
+       CX231XX_SUSPEND,
+       CX231XX_ANALOG_MODE,
+       CX231XX_DIGITAL_MODE,
+};
+
+enum cx231xx_std_mode {
+       CX231XX_TV_AIR = 0,
+       CX231XX_TV_CABLE
+};
+
+enum cx231xx_stream_state {
+       STREAM_OFF,
+       STREAM_INTERRUPT,
+       STREAM_ON,
+};
+
+struct cx231xx;
+
+struct cx231xx_usb_isoc_ctl {
+       /* max packet size of isoc transaction */
+       int max_pkt_size;
+
+       /* number of allocated urbs */
+       int num_bufs;
+
+       /* urb for isoc transfers */
+       struct urb **urb;
+
+       /* transfer buffers for isoc transfer */
+       char **transfer_buffer;
+
+       /* Last buffer command and region */
+       u8 cmd;
+       int pos, size, pktsize;
+
+       /* Last field: ODD or EVEN? */
+       int field;
+
+       /* Stores incomplete commands */
+       u32 tmp_buf;
+       int tmp_buf_len;
+
+       /* Stores already requested buffers */
+       struct cx231xx_buffer *buf;
+
+       /* Stores the number of received fields */
+       int nfields;
+
+       /* isoc urb callback */
+       int (*isoc_copy) (struct cx231xx *dev, struct urb *urb);
+};
+
+struct cx231xx_fmt {
+       char *name;
+       u32 fourcc;             /* v4l2 format id */
+       int depth;
+       int reg;
+};
+
+/* buffer for one video frame */
+struct cx231xx_buffer {
+       /* common v4l buffer stuff -- must be first */
+       struct videobuf_buffer vb;
+
+       struct list_head frame;
+       int top_field;
+       int receiving;
+};
+
+struct cx231xx_dmaqueue {
+       struct list_head active;
+       struct list_head queued;
+
+       wait_queue_head_t wq;
+
+       /* Counters to control buffer fill */
+       int pos;
+       u8 is_partial_line;
+       u8 partial_buf[8];
+       u8 last_sav;
+       int current_field;
+       u32 bytes_left_in_line;
+       u32 lines_completed;
+       u8 field1_done;
+       u32 lines_per_field;
+};
+
+/* inputs */
+
+#define MAX_CX231XX_INPUT               4
+
+enum cx231xx_itype {
+       CX231XX_VMUX_COMPOSITE1 = 1,
+       CX231XX_VMUX_SVIDEO,
+       CX231XX_VMUX_TELEVISION,
+       CX231XX_VMUX_CABLE,
+       CX231XX_RADIO,
+       CX231XX_VMUX_DVB,
+       CX231XX_VMUX_DEBUG
+};
+
+enum cx231xx_v_input {
+       CX231XX_VIN_1_1 = 0x1,
+       CX231XX_VIN_2_1,
+       CX231XX_VIN_3_1,
+       CX231XX_VIN_4_1,
+       CX231XX_VIN_1_2 = 0x01,
+       CX231XX_VIN_2_2,
+       CX231XX_VIN_3_2,
+       CX231XX_VIN_1_3 = 0x1,
+       CX231XX_VIN_2_3,
+       CX231XX_VIN_3_3,
+};
+
+/* cx231xx has two audio inputs: tuner and line in */
+enum cx231xx_amux {
+       /* This is the only entry for cx231xx tuner input */
+       CX231XX_AMUX_VIDEO,     /* cx231xx tuner */
+       CX231XX_AMUX_LINE_IN,   /* Line In */
+};
+
+struct cx231xx_reg_seq {
+       unsigned char bit;
+       unsigned char val;
+       int sleep;
+};
+
+struct cx231xx_input {
+       enum cx231xx_itype type;
+       unsigned int vmux;
+       enum cx231xx_amux amux;
+       struct cx231xx_reg_seq *gpio;
+};
+
+#define INPUT(nr) (&cx231xx_boards[dev->model].input[nr])
+
+enum cx231xx_decoder {
+       CX231XX_NODECODER,
+       CX231XX_AVDECODER
+};
+
+enum CX231XX_I2C_MASTER_PORT {
+       I2C_0 = 0,
+       I2C_1 = 1,
+       I2C_2 = 2,
+       I2C_3 = 3
+};
+
+struct cx231xx_board {
+       char *name;
+       int vchannels;
+       int tuner_type;
+       int tuner_addr;
+       v4l2_std_id norm;       /* tv norm */
+
+       /* demod related */
+       int demod_addr;
+       u8 demod_xfer_mode;     /* 0 - Serial; 1 - parallel */
+
+       /* GPIO Pins */
+       struct cx231xx_reg_seq *dvb_gpio;
+       struct cx231xx_reg_seq *suspend_gpio;
+       struct cx231xx_reg_seq *tuner_gpio;
+       u8 tuner_sif_gpio;
+       u8 tuner_scl_gpio;
+       u8 tuner_sda_gpio;
+
+       /* PIN ctrl */
+       u32 ctl_pin_status_mask;
+       u8 agc_analog_digital_select_gpio;
+       u32 gpio_pin_status_mask;
+
+       /* i2c masters */
+       u8 tuner_i2c_master;
+       u8 demod_i2c_master;
+
+       unsigned int max_range_640_480:1;
+       unsigned int has_dvb:1;
+       unsigned int valid:1;
+
+       unsigned char xclk, i2c_speed;
+
+       enum cx231xx_decoder decoder;
+
+       struct cx231xx_input input[MAX_CX231XX_INPUT];
+       struct cx231xx_input radio;
+       IR_KEYTAB_TYPE *ir_codes;
+};
+
+/* device states */
+enum cx231xx_dev_state {
+       DEV_INITIALIZED = 0x01,
+       DEV_DISCONNECTED = 0x02,
+       DEV_MISCONFIGURED = 0x04,
+};
+
+enum AFE_MODE {
+       AFE_MODE_LOW_IF,
+       AFE_MODE_BASEBAND,
+       AFE_MODE_EU_HI_IF,
+       AFE_MODE_US_HI_IF,
+       AFE_MODE_JAPAN_HI_IF
+};
+
+enum AUDIO_INPUT {
+       AUDIO_INPUT_MUTE,
+       AUDIO_INPUT_LINE,
+       AUDIO_INPUT_TUNER_TV,
+       AUDIO_INPUT_SPDIF,
+       AUDIO_INPUT_TUNER_FM
+};
+
+#define CX231XX_AUDIO_BUFS              5
+#define CX231XX_NUM_AUDIO_PACKETS       64
+#define CX231XX_CAPTURE_STREAM_EN       1
+#define CX231XX_STOP_AUDIO              0
+#define CX231XX_START_AUDIO             1
+
+/* cx231xx extensions */
+#define CX231XX_AUDIO                   0x10
+#define CX231XX_DVB                     0x20
+
+struct cx231xx_audio {
+       char name[50];
+       char *transfer_buffer[CX231XX_AUDIO_BUFS];
+       struct urb *urb[CX231XX_AUDIO_BUFS];
+       struct usb_device *udev;
+       unsigned int capture_transfer_done;
+       struct snd_pcm_substream *capture_pcm_substream;
+
+       unsigned int hwptr_done_capture;
+       struct snd_card *sndcard;
+
+       int users, shutdown;
+       enum cx231xx_stream_state capture_stream;
+       spinlock_t slock;
+
+       int alt;                /* alternate */
+       int max_pkt_size;       /* max packet size of isoc transaction */
+       int num_alt;            /* Number of alternative settings */
+       unsigned int *alt_max_pkt_size; /* array of wMaxPacketSize */
+       u16 end_point_addr;
+};
+
+struct cx231xx;
+
+struct cx231xx_fh {
+       struct cx231xx *dev;
+       unsigned int stream_on:1;       /* Locks streams */
+       int radio;
+
+       struct videobuf_queue vb_vidq;
+
+       enum v4l2_buf_type type;
+};
+
+/*****************************************************************/
+/* set/get i2c */
+/* 00--1Mb/s, 01-400kb/s, 10--100kb/s, 11--5Mb/s */
+#define I2C_SPEED_1M            0x0
+#define I2C_SPEED_400K          0x1
+#define I2C_SPEED_100K          0x2
+#define I2C_SPEED_5M            0x3
+
+/* 0-- STOP transaction */
+#define I2C_STOP                0x0
+/* 1-- do not transmit STOP at end of transaction */
+#define I2C_NOSTOP              0x1
+/* 1--alllow slave to insert clock wait states */
+#define I2C_SYNC                0x1
+
+struct cx231xx_i2c {
+       struct cx231xx *dev;
+
+       int nr;
+
+       /* i2c i/o */
+       struct i2c_adapter i2c_adap;
+       struct i2c_algo_bit_data i2c_algo;
+       struct i2c_client i2c_client;
+       u32 i2c_rc;
+
+       /* different settings for each bus */
+       u8 i2c_period;
+       u8 i2c_nostop;
+       u8 i2c_reserve;
+};
+
+struct cx231xx_i2c_xfer_data {
+       u8 dev_addr;
+       u8 direction;           /* 1 - IN, 0 - OUT */
+       u8 saddr_len;           /* sub address len */
+       u16 saddr_dat;          /* sub addr data */
+       u8 buf_size;            /* buffer size */
+       u8 *p_buffer;           /* pointer to the buffer */
+};
+
+struct VENDOR_REQUEST_IN {
+       u8 bRequest;
+       u16 wValue;
+       u16 wIndex;
+       u16 wLength;
+       u8 direction;
+       u8 bData;
+       u8 *pBuff;
+};
+
+struct cx231xx_ctrl {
+       struct v4l2_queryctrl v;
+       u32 off;
+       u32 reg;
+       u32 mask;
+       u32 shift;
+};
+
+enum TRANSFER_TYPE {
+       Raw_Video = 0,
+       Audio,
+       Vbi,                    /* VANC */
+       Sliced_cc,              /* HANC */
+       TS1_serial_mode,
+       TS2,
+       TS1_parallel_mode
+} ;
+
+struct cx231xx_video_mode {
+       /* Isoc control struct */
+       struct cx231xx_dmaqueue vidq;
+       struct cx231xx_usb_isoc_ctl isoc_ctl;
+       spinlock_t slock;
+
+       /* usb transfer */
+       int alt;                /* alternate */
+       int max_pkt_size;       /* max packet size of isoc transaction */
+       int num_alt;            /* Number of alternative settings */
+       unsigned int *alt_max_pkt_size; /* array of wMaxPacketSize */
+       u16 end_point_addr;
+};
+
+/* main device struct */
+struct cx231xx {
+       /* generic device properties */
+       char name[30];          /* name (including minor) of the device */
+       int model;              /* index in the device_data struct */
+       int devno;              /* marks the number of this device */
+
+       struct cx231xx_board board;
+
+       unsigned int stream_on:1;       /* Locks streams */
+       unsigned int vbi_stream_on:1;   /* Locks streams for VBI */
+       unsigned int has_audio_class:1;
+       unsigned int has_alsa_audio:1;
+
+       struct cx231xx_fmt *format;
+
+       struct v4l2_device v4l2_dev;
+       struct v4l2_subdev *sd_cx25840;
+       struct v4l2_subdev *sd_tuner;
+
+       struct cx231xx_IR *ir;
+
+       struct list_head devlist;
+
+       int tuner_type;         /* type of the tuner */
+       int tuner_addr;         /* tuner address */
+
+       /* I2C adapters: Master 1 & 2 (External) & Master 3 (Internal only) */
+       struct cx231xx_i2c i2c_bus[3];
+       unsigned int xc_fw_load_done:1;
+       struct mutex gpio_i2c_lock;
+
+       /* video for linux */
+       int users;              /* user count for exclusive use */
+       struct video_device *vdev;      /* video for linux device struct */
+       v4l2_std_id norm;       /* selected tv norm */
+       int ctl_freq;           /* selected frequency */
+       unsigned int ctl_ainput;        /* selected audio input */
+       int mute;
+       int volume;
+
+       /* frame properties */
+       int width;              /* current frame width */
+       int height;             /* current frame height */
+       unsigned hscale;        /* horizontal scale factor (see datasheet) */
+       unsigned vscale;        /* vertical scale factor (see datasheet) */
+       int interlaced;         /* 1=interlace fileds, 0=just top fileds */
+
+       struct cx231xx_audio adev;
+
+       /* states */
+       enum cx231xx_dev_state state;
+
+       struct work_struct request_module_wk;
+
+       /* locks */
+       struct mutex lock;
+       struct mutex ctrl_urb_lock;     /* protects urb_buf */
+       struct list_head inqueue, outqueue;
+       wait_queue_head_t open, wait_frame, wait_stream;
+       struct video_device *vbi_dev;
+       struct video_device *radio_dev;
+
+       unsigned char eedata[256];
+
+       struct cx231xx_video_mode video_mode;
+       struct cx231xx_video_mode vbi_mode;
+       struct cx231xx_video_mode sliced_cc_mode;
+       struct cx231xx_video_mode ts1_mode;
+
+       struct usb_device *udev;        /* the usb device */
+       char urb_buf[URB_MAX_CTRL_SIZE];        /* urb control msg buffer */
+
+       /* helper funcs that call usb_control_msg */
+       int (*cx231xx_read_ctrl_reg) (struct cx231xx *dev, u8 req, u16 reg,
+                                     char *buf, int len);
+       int (*cx231xx_write_ctrl_reg) (struct cx231xx *dev, u8 req, u16 reg,
+                                      char *buf, int len);
+       int (*cx231xx_send_usb_command) (struct cx231xx_i2c *i2c_bus,
+                               struct cx231xx_i2c_xfer_data *req_data);
+       int (*cx231xx_gpio_i2c_read) (struct cx231xx *dev, u8 dev_addr,
+                                     u8 *buf, u8 len);
+       int (*cx231xx_gpio_i2c_write) (struct cx231xx *dev, u8 dev_addr,
+                                      u8 *buf, u8 len);
+
+       int (*cx231xx_set_analog_freq) (struct cx231xx *dev, u32 freq);
+       int (*cx231xx_reset_analog_tuner) (struct cx231xx *dev);
+
+       enum cx231xx_mode mode;
+
+       struct cx231xx_dvb *dvb;
+
+       /* Cx231xx supported PCB config's */
+       struct pcb_config current_pcb_config;
+       u8 current_scenario_idx;
+       u8 interface_count;
+       u8 max_iad_interface_count;
+
+       /* GPIO related register direction and values */
+       u32 gpio_dir;
+       u32 gpio_val;
+
+       /* Power Modes */
+       int power_mode;
+
+       /* afe parameters */
+       enum AFE_MODE afe_mode;
+       u32 afe_ref_count;
+
+       /* video related parameters */
+       u32 video_input;
+       u32 active_mode;
+       u8 vbi_or_sliced_cc_mode;       /* 0 - vbi ; 1 - sliced cc mode */
+       enum cx231xx_std_mode std_mode; /* 0 - Air; 1 - cable */
+
+};
+
+#define cx25840_call(cx231xx, o, f, args...) \
+       v4l2_subdev_call(cx231xx->sd_cx25840, o, f, ##args)
+#define tuner_call(cx231xx, o, f, args...) \
+       v4l2_subdev_call(cx231xx->sd_tuner, o, f, ##args)
+#define call_all(dev, o, f, args...) \
+       v4l2_device_call_until_err(&dev->v4l2_dev, 0, o, f, ##args)
+
+struct cx231xx_ops {
+       struct list_head next;
+       char *name;
+       int id;
+       int (*init) (struct cx231xx *);
+       int (*fini) (struct cx231xx *);
+};
+
+/* call back functions in dvb module */
+int cx231xx_set_analog_freq(struct cx231xx *dev, u32 freq);
+int cx231xx_reset_analog_tuner(struct cx231xx *dev);
+
+/* Provided by cx231xx-i2c.c */
+void cx231xx_do_i2c_scan(struct cx231xx *dev, struct i2c_client *c);
+int cx231xx_i2c_register(struct cx231xx_i2c *bus);
+int cx231xx_i2c_unregister(struct cx231xx_i2c *bus);
+
+/* Internal block control functions */
+int cx231xx_read_i2c_data(struct cx231xx *dev, u8 dev_addr,
+                         u16 saddr, u8 saddr_len, u32 *data, u8 data_len);
+int cx231xx_write_i2c_data(struct cx231xx *dev, u8 dev_addr,
+                          u16 saddr, u8 saddr_len, u32 data, u8 data_len);
+int cx231xx_reg_mask_write(struct cx231xx *dev, u8 dev_addr, u8 size,
+                          u16 register_address, u8 bit_start, u8 bit_end,
+                          u32 value);
+int cx231xx_read_modify_write_i2c_dword(struct cx231xx *dev, u8 dev_addr,
+                                       u16 saddr, u32 mask, u32 value);
+u32 cx231xx_set_field(u32 field_mask, u32 data);
+
+/* afe related functions */
+int cx231xx_afe_init_super_block(struct cx231xx *dev, u32 ref_count);
+int cx231xx_afe_init_channels(struct cx231xx *dev);
+int cx231xx_afe_setup_AFE_for_baseband(struct cx231xx *dev);
+int cx231xx_afe_set_input_mux(struct cx231xx *dev, u32 input_mux);
+int cx231xx_afe_set_mode(struct cx231xx *dev, enum AFE_MODE mode);
+int cx231xx_afe_update_power_control(struct cx231xx *dev,
+                                       enum AV_MODE avmode);
+int cx231xx_afe_adjust_ref_count(struct cx231xx *dev, u32 video_input);
+
+/* i2s block related functions */
+int cx231xx_i2s_blk_initialize(struct cx231xx *dev);
+int cx231xx_i2s_blk_update_power_control(struct cx231xx *dev,
+                                       enum AV_MODE avmode);
+int cx231xx_i2s_blk_set_audio_input(struct cx231xx *dev, u8 audio_input);
+
+/* DIF related functions */
+int cx231xx_dif_configure_C2HH_for_low_IF(struct cx231xx *dev, u32 mode,
+                                         u32 function_mode, u32 standard);
+int cx231xx_dif_set_standard(struct cx231xx *dev, u32 standard);
+int cx231xx_tuner_pre_channel_change(struct cx231xx *dev);
+int cx231xx_tuner_post_channel_change(struct cx231xx *dev);
+
+/* video parser functions */
+u8 cx231xx_find_next_SAV_EAV(u8 *p_buffer, u32 buffer_size,
+                            u32 *p_bytes_used);
+u8 cx231xx_find_boundary_SAV_EAV(u8 *p_buffer, u8 *partial_buf,
+                                u32 *p_bytes_used);
+int cx231xx_do_copy(struct cx231xx *dev, struct cx231xx_dmaqueue *dma_q,
+                   u8 *p_buffer, u32 bytes_to_copy);
+void cx231xx_reset_video_buffer(struct cx231xx *dev,
+                               struct cx231xx_dmaqueue *dma_q);
+u8 cx231xx_is_buffer_done(struct cx231xx *dev, struct cx231xx_dmaqueue *dma_q);
+u32 cx231xx_copy_video_line(struct cx231xx *dev, struct cx231xx_dmaqueue *dma_q,
+                           u8 *p_line, u32 length, int field_number);
+u32 cx231xx_get_video_line(struct cx231xx *dev, struct cx231xx_dmaqueue *dma_q,
+                          u8 sav_eav, u8 *p_buffer, u32 buffer_size);
+void cx231xx_swab(u16 *from, u16 *to, u16 len);
+
+/* Provided by cx231xx-core.c */
+
+u32 cx231xx_request_buffers(struct cx231xx *dev, u32 count);
+void cx231xx_queue_unusedframes(struct cx231xx *dev);
+void cx231xx_release_buffers(struct cx231xx *dev);
+
+/* read from control pipe */
+int cx231xx_read_ctrl_reg(struct cx231xx *dev, u8 req, u16 reg,
+                         char *buf, int len);
+
+/* write to control pipe */
+int cx231xx_write_ctrl_reg(struct cx231xx *dev, u8 req, u16 reg,
+                          char *buf, int len);
+int cx231xx_mode_register(struct cx231xx *dev, u16 address, u32 mode);
+
+int cx231xx_send_vendor_cmd(struct cx231xx *dev,
+                               struct VENDOR_REQUEST_IN *ven_req);
+int cx231xx_send_usb_command(struct cx231xx_i2c *i2c_bus,
+                               struct cx231xx_i2c_xfer_data *req_data);
+
+/* Gpio related functions */
+int cx231xx_send_gpio_cmd(struct cx231xx *dev, u32 gpio_bit, u8 *gpio_val,
+                         u8 len, u8 request, u8 direction);
+int cx231xx_set_gpio_bit(struct cx231xx *dev, u32 gpio_bit, u8 *gpio_val);
+int cx231xx_get_gpio_bit(struct cx231xx *dev, u32 gpio_bit, u8 *gpio_val);
+int cx231xx_set_gpio_value(struct cx231xx *dev, int pin_number, int pin_value);
+int cx231xx_set_gpio_direction(struct cx231xx *dev, int pin_number,
+                              int pin_value);
+
+int cx231xx_gpio_i2c_start(struct cx231xx *dev);
+int cx231xx_gpio_i2c_end(struct cx231xx *dev);
+int cx231xx_gpio_i2c_write_byte(struct cx231xx *dev, u8 data);
+int cx231xx_gpio_i2c_read_byte(struct cx231xx *dev, u8 *buf);
+int cx231xx_gpio_i2c_read_ack(struct cx231xx *dev);
+int cx231xx_gpio_i2c_write_ack(struct cx231xx *dev);
+int cx231xx_gpio_i2c_write_nak(struct cx231xx *dev);
+
+int cx231xx_gpio_i2c_read(struct cx231xx *dev, u8 dev_addr, u8 *buf, u8 len);
+int cx231xx_gpio_i2c_write(struct cx231xx *dev, u8 dev_addr, u8 *buf, u8 len);
+
+/* audio related functions */
+int cx231xx_set_audio_decoder_input(struct cx231xx *dev,
+                                   enum AUDIO_INPUT audio_input);
+
+int cx231xx_capture_start(struct cx231xx *dev, int start, u8 media_type);
+int cx231xx_resolution_set(struct cx231xx *dev);
+int cx231xx_set_video_alternate(struct cx231xx *dev);
+int cx231xx_set_alt_setting(struct cx231xx *dev, u8 index, u8 alt);
+int cx231xx_init_isoc(struct cx231xx *dev, int max_packets,
+                     int num_bufs, int max_pkt_size,
+                     int (*isoc_copy) (struct cx231xx *dev,
+                                       struct urb *urb));
+void cx231xx_uninit_isoc(struct cx231xx *dev);
+int cx231xx_set_mode(struct cx231xx *dev, enum cx231xx_mode set_mode);
+int cx231xx_gpio_set(struct cx231xx *dev, struct cx231xx_reg_seq *gpio);
+
+/* Device list functions */
+void cx231xx_release_resources(struct cx231xx *dev);
+void cx231xx_release_analog_resources(struct cx231xx *dev);
+int cx231xx_register_analog_devices(struct cx231xx *dev);
+void cx231xx_remove_from_devlist(struct cx231xx *dev);
+void cx231xx_add_into_devlist(struct cx231xx *dev);
+struct cx231xx *cx231xx_get_device(int minor,
+                                  enum v4l2_buf_type *fh_type, int *has_radio);
+void cx231xx_init_extension(struct cx231xx *dev);
+void cx231xx_close_extension(struct cx231xx *dev);
+
+/* hardware init functions */
+int cx231xx_dev_init(struct cx231xx *dev);
+void cx231xx_dev_uninit(struct cx231xx *dev);
+void cx231xx_config_i2c(struct cx231xx *dev);
+int cx231xx_config(struct cx231xx *dev);
+
+/* Stream control functions */
+int cx231xx_start_stream(struct cx231xx *dev, u32 ep_mask);
+int cx231xx_stop_stream(struct cx231xx *dev, u32 ep_mask);
+
+int cx231xx_initialize_stream_xfer(struct cx231xx *dev, u32 media_type);
+
+/* Power control functions */
+int cx231xx_set_power_mode(struct cx231xx *dev, enum AV_MODE mode);
+int cx231xx_power_suspend(struct cx231xx *dev);
+
+/* chip specific control functions */
+int cx231xx_init_ctrl_pin_status(struct cx231xx *dev);
+int cx231xx_set_agc_analog_digital_mux_select(struct cx231xx *dev,
+                                             u8 analog_or_digital);
+int cx231xx_enable_i2c_for_tuner(struct cx231xx *dev, u8 I2CIndex);
+
+/* video audio decoder related functions */
+void video_mux(struct cx231xx *dev, int index);
+int cx231xx_set_video_input_mux(struct cx231xx *dev, u8 input);
+int cx231xx_set_decoder_video_input(struct cx231xx *dev, u8 pin_type, u8 input);
+int cx231xx_do_mode_ctrl_overrides(struct cx231xx *dev);
+int cx231xx_set_audio_input(struct cx231xx *dev, u8 input);
+void get_scale(struct cx231xx *dev,
+              unsigned int width, unsigned int height,
+              unsigned int *hscale, unsigned int *vscale);
+
+/* Provided by cx231xx-video.c */
+int cx231xx_register_extension(struct cx231xx_ops *dev);
+void cx231xx_unregister_extension(struct cx231xx_ops *dev);
+void cx231xx_init_extension(struct cx231xx *dev);
+void cx231xx_close_extension(struct cx231xx *dev);
+
+/* Provided by cx231xx-cards.c */
+extern void cx231xx_pre_card_setup(struct cx231xx *dev);
+extern void cx231xx_card_setup(struct cx231xx *dev);
+extern struct cx231xx_board cx231xx_boards[];
+extern struct usb_device_id cx231xx_id_table[];
+extern const unsigned int cx231xx_bcount;
+void cx231xx_set_ir(struct cx231xx *dev, struct IR_i2c *ir);
+int cx231xx_tuner_callback(void *ptr, int component, int command, int arg);
+
+/* Provided by cx231xx-input.c */
+int cx231xx_ir_init(struct cx231xx *dev);
+int cx231xx_ir_fini(struct cx231xx *dev);
+
+/* printk macros */
+
+#define cx231xx_err(fmt, arg...) do {\
+       printk(KERN_ERR fmt , ##arg); } while (0)
+
+#define cx231xx_errdev(fmt, arg...) do {\
+       printk(KERN_ERR "%s: "fmt,\
+                       dev->name , ##arg); } while (0)
+
+#define cx231xx_info(fmt, arg...) do {\
+       printk(KERN_INFO "%s: "fmt,\
+                       dev->name , ##arg); } while (0)
+#define cx231xx_warn(fmt, arg...) do {\
+       printk(KERN_WARNING "%s: "fmt,\
+                       dev->name , ##arg); } while (0)
+
+static inline unsigned int norm_maxw(struct cx231xx *dev)
+{
+       if (dev->board.max_range_640_480)
+               return 640;
+       else
+               return 720;
+}
+
+static inline unsigned int norm_maxh(struct cx231xx *dev)
+{
+       if (dev->board.max_range_640_480)
+               return 480;
+       else
+               return (dev->norm & V4L2_STD_625_50) ? 576 : 480;
+}
+#endif
index 5e4b7e7..a3c0565 100644 (file)
@@ -739,9 +739,10 @@ void cx23885_card_setup(struct cx23885_dev *dev)
        case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H:
        case CX23885_BOARD_COMPRO_VIDEOMATE_E650F:
        case CX23885_BOARD_NETUP_DUAL_DVBS2_CI:
-               dev->sd_cx25840 = v4l2_i2c_new_subdev(&dev->i2c_bus[2].i2c_adap,
+               dev->sd_cx25840 = v4l2_i2c_new_subdev(&dev->v4l2_dev,
+                               &dev->i2c_bus[2].i2c_adap,
                                "cx25840", "cx25840", 0x88 >> 1);
-               v4l2_subdev_call(dev->sd_cx25840, core, init, 0);
+               v4l2_subdev_call(dev->sd_cx25840, core, load_fw);
                break;
        }
 
index dc7fff2..beda429 100644 (file)
@@ -875,7 +875,7 @@ static int cx23885_dev_setup(struct cx23885_dev *dev)
        cx23885_i2c_register(&dev->i2c_bus[1]);
        cx23885_i2c_register(&dev->i2c_bus[2]);
        cx23885_card_setup(dev);
-       call_all(dev, core, s_standby, 0);
+       call_all(dev, tuner, s_standby);
        cx23885_ir_init(dev);
 
        if (cx23885_boards[dev->board].porta == CX23885_ANALOG_VIDEO) {
index d43c743..f48454a 100644 (file)
@@ -673,7 +673,7 @@ static int dvb_register(struct cx23885_tsport *port)
        fe0->dvb.frontend->callback = cx23885_tuner_callback;
 
        /* Put the analog decoder in standby to keep it quiet */
-       call_all(dev, core, s_standby, 0);
+       call_all(dev, tuner, s_standby);
 
        if (fe0->dvb.frontend->ops.analog_ops.standby)
                fe0->dvb.frontend->ops.analog_ops.standby(fe0->dvb.frontend);
index f0ac62c..68068c6 100644 (file)
@@ -299,7 +299,7 @@ static int cx23885_set_tvnorm(struct cx23885_dev *dev, v4l2_std_id norm)
 
        dev->tvnorm = norm;
 
-       call_all(dev, tuner, s_std, norm);
+       call_all(dev, core, s_std, norm);
 
        return 0;
 }
@@ -393,9 +393,6 @@ static void res_free(struct cx23885_dev *dev, struct cx23885_fh *fh,
 
 static int cx23885_video_mux(struct cx23885_dev *dev, unsigned int input)
 {
-       struct v4l2_routing route;
-       memset(&route, 0, sizeof(route));
-
        dprintk(1, "%s() video_mux: %d [vmux=%d, gpio=0x%x,0x%x,0x%x,0x%x]\n",
                __func__,
                input, INPUT(input)->vmux,
@@ -403,10 +400,9 @@ static int cx23885_video_mux(struct cx23885_dev *dev, unsigned int input)
                INPUT(input)->gpio2, INPUT(input)->gpio3);
        dev->input = input;
 
-       route.input = INPUT(input)->vmux;
-
        /* Tell the internal A/V decoder */
-       v4l2_subdev_call(dev->sd_cx25840, video, s_routing, &route);
+       v4l2_subdev_call(dev->sd_cx25840, video, s_routing,
+                       INPUT(input)->vmux, 0, 0);
 
        return 0;
 }
@@ -1523,10 +1519,12 @@ int cx23885_video_register(struct cx23885_dev *dev)
                struct v4l2_subdev *sd = NULL;
 
                if (dev->tuner_addr)
-                       sd = v4l2_i2c_new_subdev(&dev->i2c_bus[1].i2c_adap,
+                       sd = v4l2_i2c_new_subdev(&dev->v4l2_dev,
+                               &dev->i2c_bus[1].i2c_adap,
                                "tuner", "tuner", dev->tuner_addr);
                else
-                       sd = v4l2_i2c_new_probed_subdev(&dev->i2c_bus[1].i2c_adap,
+                       sd = v4l2_i2c_new_probed_subdev(&dev->v4l2_dev,
+                               &dev->i2c_bus[1].i2c_adap,
                                "tuner", "tuner", v4l2_i2c_tuner_addrs(ADDRS_TV));
                if (sd) {
                        struct tuner_setup tun_setup;
index 02d980a..8564283 100644 (file)
@@ -37,7 +37,7 @@
 #include <linux/version.h>
 #include <linux/mutex.h>
 
-#define CX23885_VERSION_CODE KERNEL_VERSION(0, 0, 1)
+#define CX23885_VERSION_CODE KERNEL_VERSION(0, 0, 2)
 
 #define UNSET (-1U)
 
index 93d74be..2f846f5 100644 (file)
@@ -32,7 +32,7 @@ static int set_audclk_freq(struct i2c_client *client, u32 freq)
 
        /* common for all inputs and rates */
        /* SA_MCLK_SEL=1, SA_MCLK_DIV=0x10 */
-       if (!state->is_cx23885)
+       if (!state->is_cx23885 && !state->is_cx231xx)
                cx25840_write(client, 0x127, 0x50);
 
        if (state->aud_input != CX25840_AUDIO_SERIAL) {
@@ -43,11 +43,14 @@ static int set_audclk_freq(struct i2c_client *client, u32 freq)
                                 * so avoid destroying registers. */
                                break;
                        }
-                       /* VID_PLL and AUX_PLL */
-                       cx25840_write4(client, 0x108, 0x1006040f);
 
-                       /* AUX_PLL_FRAC */
-                       cx25840_write4(client, 0x110, 0x01bb39ee);
+                       if (!state->is_cx231xx) {
+                               /* VID_PLL and AUX_PLL */
+                               cx25840_write4(client, 0x108, 0x1006040f);
+
+                               /* AUX_PLL_FRAC */
+                               cx25840_write4(client, 0x110, 0x01bb39ee);
+                       }
 
                        if (state->is_cx25836)
                                break;
@@ -64,11 +67,14 @@ static int set_audclk_freq(struct i2c_client *client, u32 freq)
                                 * so avoid destroying registers. */
                                break;
                        }
-                       /* VID_PLL and AUX_PLL */
-                       cx25840_write4(client, 0x108, 0x1009040f);
 
-                       /* AUX_PLL_FRAC */
-                       cx25840_write4(client, 0x110, 0x00ec6bd6);
+                       if (!state->is_cx231xx) {
+                               /* VID_PLL and AUX_PLL */
+                               cx25840_write4(client, 0x108, 0x1009040f);
+
+                               /* AUX_PLL_FRAC */
+                               cx25840_write4(client, 0x110, 0x00ec6bd6);
+                       }
 
                        if (state->is_cx25836)
                                break;
@@ -85,11 +91,14 @@ static int set_audclk_freq(struct i2c_client *client, u32 freq)
                                 * so avoid destroying registers. */
                                break;
                        }
-                       /* VID_PLL and AUX_PLL */
-                       cx25840_write4(client, 0x108, 0x100a040f);
 
-                       /* AUX_PLL_FRAC */
-                       cx25840_write4(client, 0x110, 0x0098d6e5);
+                       if (!state->is_cx231xx) {
+                               /* VID_PLL and AUX_PLL */
+                               cx25840_write4(client, 0x108, 0x100a040f);
+
+                               /* AUX_PLL_FRAC */
+                               cx25840_write4(client, 0x110, 0x0098d6e5);
+                       }
 
                        if (state->is_cx25836)
                                break;
@@ -108,11 +117,14 @@ static int set_audclk_freq(struct i2c_client *client, u32 freq)
                                 * so avoid destroying registers. */
                                break;
                        }
-                       /* VID_PLL and AUX_PLL */
-                       cx25840_write4(client, 0x108, 0x1e08040f);
 
-                       /* AUX_PLL_FRAC */
-                       cx25840_write4(client, 0x110, 0x012a0869);
+                       if (!state->is_cx231xx) {
+                               /* VID_PLL and AUX_PLL */
+                               cx25840_write4(client, 0x108, 0x1e08040f);
+
+                               /* AUX_PLL_FRAC */
+                               cx25840_write4(client, 0x110, 0x012a0869);
+                       }
 
                        if (state->is_cx25836)
                                break;
@@ -136,11 +148,14 @@ static int set_audclk_freq(struct i2c_client *client, u32 freq)
                                break;
                        }
 
-                       /* VID_PLL and AUX_PLL */
-                       cx25840_write4(client, 0x108, 0x1809040f);
 
-                       /* AUX_PLL_FRAC */
-                       cx25840_write4(client, 0x110, 0x00ec6bd6);
+                       if (!state->is_cx231xx) {
+                               /* VID_PLL and AUX_PLL */
+                               cx25840_write4(client, 0x108, 0x1809040f);
+
+                               /* AUX_PLL_FRAC */
+                               cx25840_write4(client, 0x110, 0x00ec6bd6);
+                       }
 
                        if (state->is_cx25836)
                                break;
@@ -155,7 +170,7 @@ static int set_audclk_freq(struct i2c_client *client, u32 freq)
                        break;
 
                case 48000:
-                       if (!state->is_cx23885) {
+                       if (!state->is_cx23885 && !state->is_cx231xx) {
                                /* VID_PLL and AUX_PLL */
                                cx25840_write4(client, 0x108, 0x180a040f);
 
@@ -166,7 +181,7 @@ static int set_audclk_freq(struct i2c_client *client, u32 freq)
                        if (state->is_cx25836)
                                break;
 
-                       if (!state->is_cx23885) {
+                       if (!state->is_cx23885 && !state->is_cx231xx) {
                                /* src1_ctl */
                                cx25840_write4(client, 0x8f8, 0x08018000);
 
@@ -227,10 +242,9 @@ void cx25840_audio_set_path(struct i2c_client *client)
        /* deassert soft reset */
        cx25840_and_or(client, 0x810, ~0x1, 0x00);
 
-       if (state->is_cx23885) {
-               /* Ensure the controller is running when we exit */
+       /* Ensure the controller is running when we exit */
+       if (state->is_cx23885 || state->is_cx231xx)
                cx25840_and_or(client, 0x803, ~0x10, 0x10);
-       }
 }
 
 static int get_volume(struct i2c_client *client)
index 737ee4e..0be51b6 100644 (file)
@@ -345,6 +345,77 @@ static void cx23885_initialize(struct i2c_client *client)
 
 /* ----------------------------------------------------------------------- */
 
+static void cx231xx_initialize(struct i2c_client *client)
+{
+       DEFINE_WAIT(wait);
+       struct cx25840_state *state = to_state(i2c_get_clientdata(client));
+       struct workqueue_struct *q;
+
+       /* Internal Reset */
+       cx25840_and_or(client, 0x102, ~0x01, 0x01);
+       cx25840_and_or(client, 0x102, ~0x01, 0x00);
+
+       /* Stop microcontroller */
+       cx25840_and_or(client, 0x803, ~0x10, 0x00);
+
+       /* DIF in reset? */
+       cx25840_write(client, 0x398, 0);
+
+       /* Trust the default xtal, no division */
+       /* This changes for the cx23888 products */
+       cx25840_write(client, 0x2, 0x76);
+
+       /* Bring down the regulator for AUX clk */
+       cx25840_write(client, 0x1, 0x40);
+
+       /* Disable DIF bypass */
+       cx25840_write4(client, 0x33c, 0x00000001);
+
+       /* DIF Src phase inc */
+       cx25840_write4(client, 0x340, 0x0df7df83);
+
+       /* Luma */
+       cx25840_write4(client, 0x414, 0x00107d12);
+
+       /* Chroma */
+       cx25840_write4(client, 0x420, 0x3d008282);
+
+       /* ADC2 input select */
+       cx25840_write(client, 0x102, 0x10);
+
+       /* VIN1 & VIN5 */
+       cx25840_write(client, 0x103, 0x11);
+
+       /* Enable format auto detect */
+       cx25840_write(client, 0x400, 0);
+       /* Fast subchroma lock */
+       /* White crush, Chroma AGC & Chroma Killer enabled */
+       cx25840_write(client, 0x401, 0xe8);
+
+       /* Do the firmware load in a work handler to prevent.
+          Otherwise the kernel is blocked waiting for the
+          bit-banging i2c interface to finish uploading the
+          firmware. */
+       INIT_WORK(&state->fw_work, cx25840_work_handler);
+       init_waitqueue_head(&state->fw_wait);
+       q = create_singlethread_workqueue("cx25840_fw");
+       prepare_to_wait(&state->fw_wait, &wait, TASK_UNINTERRUPTIBLE);
+       queue_work(q, &state->fw_work);
+       schedule();
+       finish_wait(&state->fw_wait, &wait);
+       destroy_workqueue(q);
+
+       cx25840_std_setup(client);
+
+       /* (re)set input */
+       set_input(client, state->vid_input, state->aud_input);
+
+       /* start microcontroller */
+       cx25840_and_or(client, 0x803, ~0x10, 0x10);
+}
+
+/* ----------------------------------------------------------------------- */
+
 void cx25840_std_setup(struct i2c_client *client)
 {
        struct cx25840_state *state = to_state(i2c_get_clientdata(client));
@@ -414,39 +485,41 @@ void cx25840_std_setup(struct i2c_client *client)
        }
 
        /* DEBUG: Displays configured PLL frequency */
-       pll_int = cx25840_read(client, 0x108);
-       pll_frac = cx25840_read4(client, 0x10c) & 0x1ffffff;
-       pll_post = cx25840_read(client, 0x109);
-       v4l_dbg(1, cx25840_debug, client,
-                               "PLL regs = int: %u, frac: %u, post: %u\n",
-                               pll_int, pll_frac, pll_post);
-
-       if (pll_post) {
-               int fin, fsc;
-               int pll = (28636363L * ((((u64)pll_int) << 25L) + pll_frac)) >> 25L;
-
-               pll /= pll_post;
-               v4l_dbg(1, cx25840_debug, client, "PLL = %d.%06d MHz\n",
-                               pll / 1000000, pll % 1000000);
-               v4l_dbg(1, cx25840_debug, client, "PLL/8 = %d.%06d MHz\n",
-                               pll / 8000000, (pll / 8) % 1000000);
-
-               fin = ((u64)src_decimation * pll) >> 12;
-               v4l_dbg(1, cx25840_debug, client,
-                               "ADC Sampling freq = %d.%06d MHz\n",
-                               fin / 1000000, fin % 1000000);
-
-               fsc = (((u64)sc) * pll) >> 24L;
+       if (!state->is_cx231xx) {
+               pll_int = cx25840_read(client, 0x108);
+               pll_frac = cx25840_read4(client, 0x10c) & 0x1ffffff;
+               pll_post = cx25840_read(client, 0x109);
                v4l_dbg(1, cx25840_debug, client,
-                               "Chroma sub-carrier freq = %d.%06d MHz\n",
-                               fsc / 1000000, fsc % 1000000);
-
-               v4l_dbg(1, cx25840_debug, client, "hblank %i, hactive %i, "
-                       "vblank %i, vactive %i, vblank656 %i, src_dec %i, "
-                       "burst 0x%02x, luma_lpf %i, uv_lpf %i, comb 0x%02x, "
-                       "sc 0x%06x\n",
-                       hblank, hactive, vblank, vactive, vblank656,
-                       src_decimation, burst, luma_lpf, uv_lpf, comb, sc);
+                       "PLL regs = int: %u, frac: %u, post: %u\n",
+                       pll_int, pll_frac, pll_post);
+
+               if (pll_post) {
+                       int fin, fsc;
+                       int pll = (28636363L * ((((u64)pll_int) << 25L) + pll_frac)) >> 25L;
+
+                       pll /= pll_post;
+                       v4l_dbg(1, cx25840_debug, client, "PLL = %d.%06d MHz\n",
+                                       pll / 1000000, pll % 1000000);
+                       v4l_dbg(1, cx25840_debug, client, "PLL/8 = %d.%06d MHz\n",
+                                       pll / 8000000, (pll / 8) % 1000000);
+
+                       fin = ((u64)src_decimation * pll) >> 12;
+                       v4l_dbg(1, cx25840_debug, client,
+                                       "ADC Sampling freq = %d.%06d MHz\n",
+                                       fin / 1000000, fin % 1000000);
+
+                       fsc = (((u64)sc) * pll) >> 24L;
+                       v4l_dbg(1, cx25840_debug, client,
+                                       "Chroma sub-carrier freq = %d.%06d MHz\n",
+                                       fsc / 1000000, fsc % 1000000);
+
+                       v4l_dbg(1, cx25840_debug, client, "hblank %i, hactive %i, "
+                               "vblank %i, vactive %i, vblank656 %i, src_dec %i, "
+                               "burst 0x%02x, luma_lpf %i, uv_lpf %i, comb 0x%02x, "
+                               "sc 0x%06x\n",
+                               hblank, hactive, vblank, vactive, vblank656,
+                               src_decimation, burst, luma_lpf, uv_lpf, comb, sc);
+               }
        }
 
        /* Sets horizontal blanking delay and active lines */
@@ -596,7 +669,7 @@ static int set_input(struct i2c_client *client, enum cx25840_video_input vid_inp
         * configuration in reg (for the cx23885) so we have no
         * need to attempt to flip bits for earlier av decoders.
         */
-       if (!state->is_cx23885) {
+       if (!state->is_cx23885 && !state->is_cx231xx) {
                switch (aud_input) {
                case CX25840_AUDIO_SERIAL:
                        /* do nothing, use serial audio input */
@@ -619,7 +692,7 @@ static int set_input(struct i2c_client *client, enum cx25840_video_input vid_inp
        /* Set INPUT_MODE to Composite (0) or S-Video (1) */
        cx25840_and_or(client, 0x401, ~0x6, is_composite ? 0 : 0x02);
 
-       if (!state->is_cx23885) {
+       if (!state->is_cx23885 && !state->is_cx231xx) {
                /* Set CH_SEL_ADC2 to 1 if input comes from CH3 */
                cx25840_and_or(client, 0x102, ~0x2, (reg & 0x80) == 0 ? 2 : 0);
                /* Set DUAL_MODE_ADC2 to 1 if input comes from both CH2&CH3 */
@@ -653,6 +726,19 @@ static int set_input(struct i2c_client *client, enum cx25840_video_input vid_inp
                /* I2S_IN_CTL: I2S_IN_SONY_MODE, LEFT SAMPLE on WS=1 */
                cx25840_write(client, 0x914, 0xa0);
 
+               /* I2S_OUT_CTL:
+                * I2S_IN_SONY_MODE, LEFT SAMPLE on WS=1
+                * I2S_OUT_MASTER_MODE = Master
+                */
+               cx25840_write(client, 0x918, 0xa0);
+               cx25840_write(client, 0x919, 0x01);
+       } else if (state->is_cx231xx) {
+               /* Audio channel 1 src : Parallel 1 */
+               cx25840_write(client, 0x124, 0x03);
+
+               /* I2S_IN_CTL: I2S_IN_SONY_MODE, LEFT SAMPLE on WS=1 */
+               cx25840_write(client, 0x914, 0xa0);
+
                /* I2S_OUT_CTL:
                 * I2S_IN_SONY_MODE, LEFT SAMPLE on WS=1
                 * I2S_OUT_MASTER_MODE = Master
@@ -1096,7 +1182,7 @@ static void log_audio_status(struct i2c_client *client)
 
 /* ----------------------------------------------------------------------- */
 
-/* This init operation must be called to load the driver's firmware.
+/* This load_fw operation must be called to load the driver's firmware.
    Without this the audio standard detection will fail and you will
    only get mono.
 
@@ -1106,18 +1192,20 @@ static void log_audio_status(struct i2c_client *client)
    postponing it is that loading this firmware takes a long time (seconds)
    due to the slow i2c bus speed. So it will speed up the boot process if
    you can avoid loading the fw as long as the video device isn't used.  */
-static int cx25840_init(struct v4l2_subdev *sd, u32 val)
+static int cx25840_load_fw(struct v4l2_subdev *sd)
 {
        struct cx25840_state *state = to_state(sd);
        struct i2c_client *client = v4l2_get_subdevdata(sd);
 
        if (!state->is_initialized) {
-               /* initialize on first use */
+               /* initialize and load firmware */
                state->is_initialized = 1;
                if (state->is_cx25836)
                        cx25836_initialize(client);
                else if (state->is_cx23885)
                        cx23885_initialize(client);
+               else if (state->is_cx231xx)
+                       cx231xx_initialize(client);
                else
                        cx25840_initialize(client);
        }
@@ -1159,7 +1247,7 @@ static int cx25840_s_stream(struct v4l2_subdev *sd, int enable)
        v4l_dbg(1, cx25840_debug, client, "%s output\n",
                        enable ? "enable" : "disable");
        if (enable) {
-               if (state->is_cx23885) {
+               if (state->is_cx23885 || state->is_cx231xx) {
                        u8 v = (cx25840_read(client, 0x421) | 0x0b);
                        cx25840_write(client, 0x421, v);
                } else {
@@ -1169,7 +1257,7 @@ static int cx25840_s_stream(struct v4l2_subdev *sd, int enable)
                                        state->is_cx25836 ? 0x04 : 0x07);
                }
        } else {
-               if (state->is_cx23885) {
+               if (state->is_cx23885 || state->is_cx231xx) {
                        u8 v = cx25840_read(client, 0x421) & ~(0x0b);
                        cx25840_write(client, 0x421, v);
                } else {
@@ -1234,22 +1322,24 @@ static int cx25840_s_radio(struct v4l2_subdev *sd)
        return 0;
 }
 
-static int cx25840_s_video_routing(struct v4l2_subdev *sd, const struct v4l2_routing *route)
+static int cx25840_s_video_routing(struct v4l2_subdev *sd,
+                                  u32 input, u32 output, u32 config)
 {
        struct cx25840_state *state = to_state(sd);
        struct i2c_client *client = v4l2_get_subdevdata(sd);
 
-       return set_input(client, route->input, state->aud_input);
+       return set_input(client, input, state->aud_input);
 }
 
-static int cx25840_s_audio_routing(struct v4l2_subdev *sd, const struct v4l2_routing *route)
+static int cx25840_s_audio_routing(struct v4l2_subdev *sd,
+                                  u32 input, u32 output, u32 config)
 {
        struct cx25840_state *state = to_state(sd);
        struct i2c_client *client = v4l2_get_subdevdata(sd);
 
        if (state->is_cx25836)
                return -EINVAL;
-       return set_input(client, state->vid_input, route->input);
+       return set_input(client, state->vid_input, input);
 }
 
 static int cx25840_s_frequency(struct v4l2_subdev *sd, struct v4l2_frequency *freq)
@@ -1350,6 +1440,8 @@ static int cx25840_reset(struct v4l2_subdev *sd, u32 val)
                cx25836_initialize(client);
        else if (state->is_cx23885)
                cx23885_initialize(client);
+       else if (state->is_cx231xx)
+               cx231xx_initialize(client);
        else
                cx25840_initialize(client);
        return 0;
@@ -1382,8 +1474,9 @@ static const struct v4l2_subdev_core_ops cx25840_core_ops = {
        .g_ctrl = cx25840_g_ctrl,
        .s_ctrl = cx25840_s_ctrl,
        .queryctrl = cx25840_queryctrl,
+       .s_std = cx25840_s_std,
        .reset = cx25840_reset,
-       .init = cx25840_init,
+       .load_fw = cx25840_load_fw,
 #ifdef CONFIG_VIDEO_ADV_DEBUG
        .g_register = cx25840_g_register,
        .s_register = cx25840_s_register,
@@ -1392,7 +1485,6 @@ static const struct v4l2_subdev_core_ops cx25840_core_ops = {
 
 static const struct v4l2_subdev_tuner_ops cx25840_tuner_ops = {
        .s_frequency = cx25840_s_frequency,
-       .s_std = cx25840_s_std,
        .s_radio = cx25840_s_radio,
        .g_tuner = cx25840_g_tuner,
        .s_tuner = cx25840_s_tuner,
@@ -1449,6 +1541,8 @@ static int cx25840_probe(struct i2c_client *client,
                id = V4L2_IDENT_CX25836 + ((device_id >> 4) & 0xf) - 6;
        } else if (device_id == 0x1313) {
                id = V4L2_IDENT_CX25836 + ((device_id >> 4) & 0xf) - 6;
+       } else if ((device_id & 0xfff0) == 0x5A30) {
+               id = V4L2_IDENT_CX25840 + ((device_id >> 4) & 0xf);
        }
        else {
                v4l_dbg(1, cx25840_debug, client, "cx25840 not found\n");
@@ -1471,6 +1565,7 @@ static int cx25840_probe(struct i2c_client *client,
        state->c = client;
        state->is_cx25836 = ((device_id & 0xff00) == 0x8300);
        state->is_cx23885 = (device_id == 0x0000) || (device_id == 0x1313);
+       state->is_cx231xx = (device_id == 0x5a3e);
        state->vid_input = CX25840_COMPOSITE7;
        state->aud_input = CX25840_AUDIO8;
        state->audclk_freq = 48000;
index 9ad0eb8..814b565 100644 (file)
@@ -50,6 +50,7 @@ struct cx25840_state {
        u32 rev;
        int is_cx25836;
        int is_cx23885;
+       int is_cx231xx;
        int is_initialized;
        wait_queue_head_t fw_wait;    /* wake up when the fw load is finished */
        struct work_struct fw_work;   /* work entry for fw load */
index 0b2dceb..0df53b0 100644 (file)
@@ -25,6 +25,7 @@
 
 #define FWFILE "v4l-cx25840.fw"
 #define FWFILE_CX23885 "v4l-cx23885-avcore-01.fw"
+#define FWFILE_CX231XX "v4l-cx231xx-avcore-01.fw"
 
 /*
  * Mike Isely <isely@pobox.com> - The FWSEND parameter controls the
@@ -96,9 +97,17 @@ int cx25840_loadfw(struct i2c_client *client)
        u8 buffer[FWSEND];
        const u8 *ptr;
        int size, retval;
+       int MAX_BUF_SIZE = FWSEND;
 
        if (state->is_cx23885)
                firmware = FWFILE_CX23885;
+       else if (state->is_cx231xx)
+               firmware = FWFILE_CX231XX;
+
+       if ((state->is_cx231xx) && MAX_BUF_SIZE > 16) {
+               v4l_err(client, " Firmware download size changed to 16 bytes max length\n");
+               MAX_BUF_SIZE = 16;  /* cx231xx cannot accept more than 16 bytes at a time */
+       }
 
        if (request_firmware(&fw, firmware, FWDEV(client)) != 0) {
                v4l_err(client, "unable to open firmware %s\n", firmware);
@@ -113,7 +122,7 @@ int cx25840_loadfw(struct i2c_client *client)
        size = fw->size;
        ptr = fw->data;
        while (size > 0) {
-               int len = min(FWSEND - 2, size);
+               int len = min(MAX_BUF_SIZE - 2, size);
 
                memcpy(buffer + 2, ptr, len);
 
index 0363971..6bbbfc6 100644 (file)
@@ -3049,7 +3049,7 @@ static void cx88_card_setup(struct cx88_core *core)
                            ctl.fname);
                call_all(core, tuner, s_config, &xc2028_cfg);
        }
-       call_all(core, core, s_standby, 0);
+       call_all(core, tuner, s_standby);
 }
 
 /* ------------------------------------------------------------------ */
@@ -3221,16 +3221,19 @@ struct cx88_core *cx88_core_create(struct pci_dev *pci, int nr)
                   The radio_type is sometimes missing, or set to UNSET but
                   later code configures a tea5767.
                 */
-               v4l2_i2c_new_probed_subdev(&core->i2c_adap, "tuner", "tuner",
+               v4l2_i2c_new_probed_subdev(&core->v4l2_dev, &core->i2c_adap,
+                               "tuner", "tuner",
                                v4l2_i2c_tuner_addrs(ADDRS_RADIO));
                if (has_demod)
-                       v4l2_i2c_new_probed_subdev(&core->i2c_adap, "tuner",
-                               "tuner", v4l2_i2c_tuner_addrs(ADDRS_DEMOD));
+                       v4l2_i2c_new_probed_subdev(&core->v4l2_dev,
+                               &core->i2c_adap, "tuner", "tuner",
+                               v4l2_i2c_tuner_addrs(ADDRS_DEMOD));
                if (core->board.tuner_addr == ADDR_UNSET) {
-                       v4l2_i2c_new_probed_subdev(&core->i2c_adap, "tuner",
-                               "tuner", has_demod ? tv_addrs + 4 : tv_addrs);
+                       v4l2_i2c_new_probed_subdev(&core->v4l2_dev,
+                               &core->i2c_adap, "tuner", "tuner",
+                               has_demod ? tv_addrs + 4 : tv_addrs);
                } else {
-                       v4l2_i2c_new_subdev(&core->i2c_adap,
+                       v4l2_i2c_new_subdev(&core->v4l2_dev, &core->i2c_adap,
                                "tuner", "tuner", core->board.tuner_addr);
                }
        }
index f2fb9f3..0e149b2 100644 (file)
@@ -991,7 +991,7 @@ int cx88_set_tvnorm(struct cx88_core *core, v4l2_std_id norm)
        set_tvaudio(core);
 
        // tell i2c chips
-       call_all(core, tuner, s_std, norm);
+       call_all(core, core, s_std, norm);
 
        // done
        return 0;
index 4ff4d9f..9389cf2 100644 (file)
@@ -1168,7 +1168,7 @@ static int dvb_register(struct cx8802_dev *dev)
                fe1->dvb.frontend->ops.ts_bus_ctrl = cx88_dvb_bus_ctrl;
 
        /* Put the analog decoder in standby to keep it quiet */
-       call_all(core, core, s_standby, 0);
+       call_all(core, tuner, s_standby);
 
        /* register everything */
        return videobuf_dvb_register_bus(&dev->frontends, THIS_MODULE, dev,
index 434237a..ec0425d 100644 (file)
@@ -428,10 +428,8 @@ int cx88_video_mux(struct cx88_core *core, unsigned int input)
                   routes for different inputs. HVR-1300 surely does */
                if (core->board.audio_chip &&
                    core->board.audio_chip == V4L2_IDENT_WM8775) {
-                       struct v4l2_routing route;
-
-                       route.input = INPUT(input).audioroute;
-                       call_all(core, audio, s_routing, &route);
+                       call_all(core, audio, s_routing,
+                                       INPUT(input).audioroute, 0, 0);
                }
                /* cx2388's C-ADC is connected to the tuner only.
                   When used with S-Video, that ADC is busy dealing with
@@ -823,10 +821,8 @@ static int video_open(struct file *file)
                if (core->board.radio.audioroute) {
                        if(core->board.audio_chip &&
                                core->board.audio_chip == V4L2_IDENT_WM8775) {
-                               struct v4l2_routing route;
-
-                               route.input = core->board.radio.audioroute;
-                               call_all(core, audio, s_routing, &route);
+                               call_all(core, audio, s_routing,
+                                       core->board.radio.audioroute, 0, 0);
                        }
                        /* "I2S ADC mode" */
                        core->tvaudio = WW_I2SADC;
@@ -931,7 +927,7 @@ static int video_release(struct file *file)
        kfree(fh);
 
        if(atomic_dec_and_test(&dev->core->users))
-               call_all(dev->core, core, s_standby, 0);
+               call_all(dev->core, tuner, s_standby);
 
        return 0;
 }
@@ -1882,18 +1878,15 @@ static int __devinit cx8800_initdev(struct pci_dev *pci_dev,
        /* load and configure helper modules */
 
        if (core->board.audio_chip == V4L2_IDENT_WM8775)
-               v4l2_i2c_new_subdev(&core->i2c_adap,
+               v4l2_i2c_new_subdev(&core->v4l2_dev, &core->i2c_adap,
                                "wm8775", "wm8775", 0x36 >> 1);
 
        if (core->board.audio_chip == V4L2_IDENT_TVAUDIO) {
                /* This probes for a tda9874 as is used on some
                   Pixelview Ultra boards. */
-               static const unsigned short i2c_addr[] = {
-                       0xb0 >> 1, I2C_CLIENT_END
-               };
-
-               v4l2_i2c_new_probed_subdev(&core->i2c_adap,
-                               "tvaudio", "tvaudio", i2c_addr);
+               v4l2_i2c_new_probed_subdev_addr(&core->v4l2_dev,
+                               &core->i2c_adap,
+                               "tvaudio", "tvaudio", 0xb0 >> 1);
        }
 
        switch (core->boardnr) {
index 9a43fdf..7724d16 100644 (file)
@@ -41,7 +41,7 @@
 
 #include <linux/version.h>
 #include <linux/mutex.h>
-#define CX88_VERSION_CODE KERNEL_VERSION(0,0,6)
+#define CX88_VERSION_CODE KERNEL_VERSION(0,0,7)
 
 #define UNSET (-1U)
 
index 0f48c0f..7c70738 100644 (file)
@@ -31,6 +31,8 @@
 #include <media/msp3400.h>
 #include <media/saa7115.h>
 #include <media/tvp5150.h>
+#include <media/tvaudio.h>
+#include <media/i2c-addr.h>
 #include <media/tveeprom.h>
 #include <media/v4l2-common.h>
 #include <media/v4l2-chip-ident.h>
@@ -1240,6 +1242,7 @@ struct em28xx_board em28xx_boards[] = {
        [EM2820_BOARD_COMPRO_VIDEOMATE_FORYOU] = {
                .name         = "Compro VideoMate ForYou/Stereo",
                .tuner_type   = TUNER_LG_PAL_NEW_TAPC,
+               .tvaudio_addr = 0xb0,
                .tda9887_conf = TDA9887_PRESENT,
                .decoder      = EM28XX_TVP5150,
                .adecoder     = EM28XX_TVAUDIO,
@@ -1444,6 +1447,24 @@ static struct em28xx_hash_table em28xx_i2c_hash[] = {
        {0xc51200e3, EM2820_BOARD_GADMEI_TVR200, TUNER_LG_PAL_NEW_TAPC},
 };
 
+/* I2C possible address to saa7115, tvp5150, msp3400, tvaudio */
+static unsigned short saa711x_addrs[] = {
+       0x4a >> 1, 0x48 >> 1,   /* SAA7111, SAA7111A and SAA7113 */
+       0x42 >> 1, 0x40 >> 1,   /* SAA7114, SAA7115 and SAA7118 */
+       I2C_CLIENT_END };
+
+static unsigned short tvp5150_addrs[] = {
+       0xb8 >> 1,
+       0xba >> 1,
+       I2C_CLIENT_END
+};
+
+static unsigned short msp3400_addrs[] = {
+       0x80 >> 1,
+       0x88 >> 1,
+       I2C_CLIENT_END
+};
+
 int em28xx_tuner_callback(void *ptr, int component, int command, int arg)
 {
        int rc = 0;
@@ -1672,31 +1693,55 @@ static void em28xx_setup_xc3028(struct em28xx *dev, struct xc2028_ctrl *ctl)
        }
 }
 
-static void em28xx_config_tuner(struct em28xx *dev)
+static void em28xx_tuner_setup(struct em28xx *dev)
 {
-       struct v4l2_priv_tun_config  xc2028_cfg;
        struct tuner_setup           tun_setup;
        struct v4l2_frequency        f;
 
        if (dev->tuner_type == TUNER_ABSENT)
                return;
 
+       memset(&tun_setup, 0, sizeof(tun_setup));
+
        tun_setup.mode_mask = T_ANALOG_TV | T_RADIO;
-       tun_setup.type = dev->tuner_type;
-       tun_setup.addr = dev->tuner_addr;
        tun_setup.tuner_callback = em28xx_tuner_callback;
 
-       em28xx_i2c_call_clients(dev, TUNER_SET_TYPE_ADDR, &tun_setup);
+       if (dev->board.radio.type) {
+               tun_setup.type = dev->board.radio.type;
+               tun_setup.addr = dev->board.radio_addr;
+
+               v4l2_device_call_all(&dev->v4l2_dev, 0, tuner, s_type_addr, &tun_setup);
+       }
+
+       if ((dev->tuner_type != TUNER_ABSENT) && (dev->tuner_type)) {
+               tun_setup.type   = dev->tuner_type;
+               tun_setup.addr   = dev->tuner_addr;
+
+               v4l2_device_call_all(&dev->v4l2_dev, 0, tuner, s_type_addr, &tun_setup);
+       }
+
+       if (dev->tda9887_conf) {
+               struct v4l2_priv_tun_config tda9887_cfg;
+
+               tda9887_cfg.tuner = TUNER_TDA9887;
+               tda9887_cfg.priv = &dev->tda9887_conf;
+
+               v4l2_device_call_all(&dev->v4l2_dev, 0, tuner, s_config, &tda9887_cfg);
+       }
 
        if (dev->tuner_type == TUNER_XC2028) {
+               struct v4l2_priv_tun_config  xc2028_cfg;
                struct xc2028_ctrl           ctl;
 
+               memset(&xc2028_cfg, 0, sizeof(xc2028_cfg));
+               memset(&ctl, 0, sizeof(ctl));
+
                em28xx_setup_xc3028(dev, &ctl);
 
                xc2028_cfg.tuner = TUNER_XC2028;
                xc2028_cfg.priv  = &ctl;
 
-               em28xx_i2c_call_clients(dev, TUNER_SET_CONFIG, &xc2028_cfg);
+               v4l2_device_call_all(&dev->v4l2_dev, 0, tuner, s_config, &xc2028_cfg);
        }
 
        /* configure tuner */
@@ -1704,7 +1749,7 @@ static void em28xx_config_tuner(struct em28xx *dev)
        f.type = V4L2_TUNER_ANALOG_TV;
        f.frequency = 9076;     /* just a magic number */
        dev->ctl_freq = f.frequency;
-       em28xx_i2c_call_clients(dev, VIDIOC_S_FREQUENCY, &f);
+       v4l2_device_call_all(&dev->v4l2_dev, 0, tuner, s_frequency, &f);
 }
 
 static int em28xx_hint_board(struct em28xx *dev)
@@ -1911,22 +1956,52 @@ void em28xx_card_setup(struct em28xx *dev)
        if (tuner >= 0)
                dev->tuner_type = tuner;
 
-#ifdef CONFIG_MODULES
        /* request some modules */
        if (dev->board.has_msp34xx)
-               request_module("msp3400");
+               v4l2_i2c_new_probed_subdev(&dev->v4l2_dev, &dev->i2c_adap,
+                       "msp3400", "msp3400", msp3400_addrs);
+
        if (dev->board.decoder == EM28XX_SAA711X)
-               request_module("saa7115");
+               v4l2_i2c_new_probed_subdev(&dev->v4l2_dev, &dev->i2c_adap,
+                       "saa7115", "saa7115_auto", saa711x_addrs);
+
        if (dev->board.decoder == EM28XX_TVP5150)
-               request_module("tvp5150");
-       if (dev->board.tuner_type != TUNER_ABSENT)
-               request_module("tuner");
-       if (dev->board.adecoder == EM28XX_TVAUDIO)
-               request_module("tvaudio");
-#endif
+               v4l2_i2c_new_probed_subdev(&dev->v4l2_dev, &dev->i2c_adap,
+                       "tvp5150", "tvp5150", tvp5150_addrs);
 
-       em28xx_config_tuner(dev);
+       if (dev->board.adecoder == EM28XX_TVAUDIO)
+               v4l2_i2c_new_subdev(&dev->v4l2_dev, &dev->i2c_adap,
+                       "tvaudio", "tvaudio", dev->board.tvaudio_addr);
+
+       if (dev->board.tuner_type != TUNER_ABSENT) {
+               int has_demod = (dev->tda9887_conf & TDA9887_PRESENT);
+
+               if (dev->board.radio.type)
+                       v4l2_i2c_new_subdev(&dev->v4l2_dev, &dev->i2c_adap,
+                               "tuner", "tuner", dev->board.radio_addr);
+
+               if (has_demod)
+                       v4l2_i2c_new_probed_subdev(&dev->v4l2_dev,
+                               &dev->i2c_adap, "tuner", "tuner",
+                               v4l2_i2c_tuner_addrs(ADDRS_DEMOD));
+               if (dev->tuner_addr == 0) {
+                       enum v4l2_i2c_tuner_type type =
+                               has_demod ? ADDRS_TV_WITH_DEMOD : ADDRS_TV;
+                       struct v4l2_subdev *sd;
+
+                       sd = v4l2_i2c_new_probed_subdev(&dev->v4l2_dev,
+                               &dev->i2c_adap, "tuner", "tuner",
+                               v4l2_i2c_tuner_addrs(type));
+
+                       if (sd)
+                               dev->tuner_addr = v4l2_i2c_subdev_addr(sd);
+               } else {
+                       v4l2_i2c_new_subdev(&dev->v4l2_dev, &dev->i2c_adap,
+                               "tuner", "tuner", dev->tuner_addr);
+               }
+       }
 
+       em28xx_tuner_setup(dev);
        em28xx_ir_init(dev);
 }
 
@@ -1975,6 +2050,9 @@ void em28xx_release_resources(struct em28xx *dev)
        em28xx_remove_from_devlist(dev);
 
        em28xx_i2c_unregister(dev);
+
+       v4l2_device_unregister(&dev->v4l2_dev);
+
        usb_put_dev(dev->udev);
 
        /* Mark device as unused */
@@ -1986,6 +2064,7 @@ void em28xx_release_resources(struct em28xx *dev)
  * allocates and inits the device structs, registers i2c bus and v4l device
  */
 static int em28xx_init_dev(struct em28xx **devhandle, struct usb_device *udev,
+                          struct usb_interface *interface,
                           int minor)
 {
        struct em28xx *dev = *devhandle;
@@ -2019,9 +2098,16 @@ static int em28xx_init_dev(struct em28xx **devhandle, struct usb_device *udev,
                }
        }
 
+       retval = v4l2_device_register(&interface->dev, &dev->v4l2_dev);
+       if (retval < 0) {
+               em28xx_errdev("Call to v4l2_device_register() failed!\n");
+               return retval;
+       }
+
        /* register i2c bus */
        errCode = em28xx_i2c_register(dev);
        if (errCode < 0) {
+               v4l2_device_unregister(&dev->v4l2_dev);
                em28xx_errdev("%s: em28xx_i2c_register - errCode [%d]!\n",
                        __func__, errCode);
                return errCode;
@@ -2033,6 +2119,7 @@ static int em28xx_init_dev(struct em28xx **devhandle, struct usb_device *udev,
        /* Configure audio */
        errCode = em28xx_audio_setup(dev);
        if (errCode < 0) {
+               v4l2_device_unregister(&dev->v4l2_dev);
                em28xx_errdev("%s: Error while setting audio - errCode [%d]!\n",
                        __func__, errCode);
        }
@@ -2077,7 +2164,7 @@ static int em28xx_init_dev(struct em28xx **devhandle, struct usb_device *udev,
        em28xx_init_extension(dev);
 
        /* Save some power by putting tuner to sleep */
-       em28xx_i2c_call_clients(dev, TUNER_SET_STANDBY, NULL);
+       v4l2_device_call_all(&dev->v4l2_dev, 0, tuner, s_standby);
 
        return 0;
 
@@ -2096,7 +2183,7 @@ static int em28xx_usb_probe(struct usb_interface *interface,
        struct usb_device *udev;
        struct usb_interface *uif;
        struct em28xx *dev = NULL;
-       int retval = -ENODEV;
+       int retval;
        int i, nr, ifnum, isoc_pipe;
        char *speed;
        char descr[255] = "";
@@ -2118,7 +2205,8 @@ static int em28xx_usb_probe(struct usb_interface *interface,
                        interface->altsetting[0].desc.bInterfaceClass);
 
                em28xx_devused &= ~(1<<nr);
-               return -ENODEV;
+               retval = -ENODEV;
+               goto err;
        }
 
        endpoint = &interface->cur_altsetting->endpoint[0].desc;
@@ -2151,7 +2239,8 @@ static int em28xx_usb_probe(struct usb_interface *interface,
                                "interface not used by the driver\n");
 
                        em28xx_devused &= ~(1<<nr);
-                       return -ENODEV;
+                       retval = -ENODEV;
+                       goto err;
                }
        }
 
@@ -2194,7 +2283,8 @@ static int em28xx_usb_probe(struct usb_interface *interface,
                printk(DRIVER_NAME ": Supports only %i em28xx boards.\n",
                                EM28XX_MAXBOARDS);
                em28xx_devused &= ~(1<<nr);
-               return -ENOMEM;
+               retval = -ENOMEM;
+               goto err;
        }
 
        /* allocate memory for our device state and initialize it */
@@ -2202,7 +2292,8 @@ static int em28xx_usb_probe(struct usb_interface *interface,
        if (dev == NULL) {
                em28xx_err(DRIVER_NAME ": out of memory!\n");
                em28xx_devused &= ~(1<<nr);
-               return -ENOMEM;
+               retval = -ENOMEM;
+               goto err;
        }
 
        snprintf(dev->name, 29, "em28xx #%d", nr);
@@ -2229,7 +2320,8 @@ static int em28xx_usb_probe(struct usb_interface *interface,
                em28xx_errdev("out of memory!\n");
                em28xx_devused &= ~(1<<nr);
                kfree(dev);
-               return -ENOMEM;
+               retval = -ENOMEM;
+               goto err;
        }
 
        for (i = 0; i < dev->num_alt ; i++) {
@@ -2244,12 +2336,11 @@ static int em28xx_usb_probe(struct usb_interface *interface,
        /* allocate device struct */
        mutex_init(&dev->lock);
        mutex_lock(&dev->lock);
-       retval = em28xx_init_dev(&dev, udev, nr);
+       retval = em28xx_init_dev(&dev, udev, interface, nr);
        if (retval) {
                em28xx_devused &= ~(1<<dev->devno);
                kfree(dev);
-
-               return retval;
+               goto err;
        }
 
        /* save our data pointer in this interface device */
@@ -2263,6 +2354,9 @@ static int em28xx_usb_probe(struct usb_interface *interface,
        mutex_unlock(&dev->lock);
 
        return 0;
+
+err:
+       return retval;
 }
 
 /*
@@ -2288,6 +2382,8 @@ static void em28xx_usb_disconnect(struct usb_interface *interface)
 
        wake_up_interruptible_all(&dev->open);
 
+       v4l2_device_disconnect(&dev->v4l2_dev);
+
        if (dev->users) {
                em28xx_warn
                    ("device /dev/video%d is open! Deregistration and memory "
index 8f1999c..192b76c 100644 (file)
@@ -1018,14 +1018,10 @@ EXPORT_SYMBOL_GPL(em28xx_init_isoc);
  */
 void em28xx_wake_i2c(struct em28xx *dev)
 {
-       struct v4l2_routing route;
-       int zero = 0;
-
-       route.input = INPUT(dev->ctl_input)->vmux;
-       route.output = 0;
-       em28xx_i2c_call_clients(dev, VIDIOC_INT_RESET, &zero);
-       em28xx_i2c_call_clients(dev, VIDIOC_INT_S_VIDEO_ROUTING, &route);
-       em28xx_i2c_call_clients(dev, VIDIOC_STREAMON, NULL);
+       v4l2_device_call_all(&dev->v4l2_dev, 0, core,  reset, 0);
+       v4l2_device_call_all(&dev->v4l2_dev, 0, video, s_routing,
+                       INPUT(dev->ctl_input)->vmux, 0, 0);
+       v4l2_device_call_all(&dev->v4l2_dev, 0, video, s_stream, 0);
 }
 
 /*
index 02c12fe..f0bf1d9 100644 (file)
@@ -459,70 +459,15 @@ static u32 functionality(struct i2c_adapter *adap)
 static int attach_inform(struct i2c_client *client)
 {
        struct em28xx *dev = client->adapter->algo_data;
+       struct IR_i2c *ir = i2c_get_clientdata(client);
 
        switch (client->addr << 1) {
-       case 0x86:
-       case 0x84:
-       case 0x96:
-       case 0x94:
-       {
-               struct v4l2_priv_tun_config tda9887_cfg;
-
-               struct tuner_setup tun_setup;
-
-               tun_setup.mode_mask = T_ANALOG_TV | T_RADIO;
-               tun_setup.type = TUNER_TDA9887;
-               tun_setup.addr = client->addr;
-
-               em28xx_i2c_call_clients(dev, TUNER_SET_TYPE_ADDR,
-                       &tun_setup);
-
-               tda9887_cfg.tuner = TUNER_TDA9887;
-               tda9887_cfg.priv = &dev->tda9887_conf;
-               em28xx_i2c_call_clients(dev, TUNER_SET_CONFIG,
-                                       &tda9887_cfg);
-               break;
-       }
-       case 0x42:
-               dprintk1(1, "attach_inform: saa7114 detected.\n");
-               break;
-       case 0x4a:
-               dprintk1(1, "attach_inform: saa7113 detected.\n");
-               break;
-       case 0xa0:
-               dprintk1(1, "attach_inform: eeprom detected.\n");
-               break;
        case 0x60:
        case 0x8e:
-       {
-               struct IR_i2c *ir = i2c_get_clientdata(client);
-               dprintk1(1, "attach_inform: IR detected (%s).\n",
-                       ir->phys);
+               dprintk1(1, "attach_inform: IR detected (%s).\n", ir->phys);
                em28xx_set_ir(dev, ir);
                break;
        }
-       case 0x80:
-       case 0x88:
-               dprintk1(1, "attach_inform: msp34xx detected.\n");
-               break;
-       case 0xb8:
-       case 0xba:
-               dprintk1(1, "attach_inform: tvp5150 detected.\n");
-               break;
-
-       case 0xb0:
-               dprintk1(1, "attach_inform: tda9874 detected\n");
-               break;
-
-       default:
-               if (!dev->tuner_addr)
-                       dev->tuner_addr = client->addr;
-
-               dprintk1(1, "attach inform: detected I2C address %x\n",
-                               client->addr << 1);
-               dprintk1(1, "driver id %d\n", client->driver->id);
-
-       }
 
        return 0;
 }
@@ -534,7 +479,6 @@ static struct i2c_algorithm em28xx_algo = {
 
 static struct i2c_adapter em28xx_adap_template = {
        .owner = THIS_MODULE,
-       .class = I2C_CLASS_TV_ANALOG,
        .name = "em28xx",
        .id = I2C_HW_B_EM28XX,
        .algo = &em28xx_algo,
@@ -594,16 +538,6 @@ void em28xx_do_i2c_scan(struct em28xx *dev)
                                        ARRAY_SIZE(i2c_devicelist), 32);
 }
 
-/*
- * em28xx_i2c_call_clients()
- * send commands to all attached i2c devices
- */
-void em28xx_i2c_call_clients(struct em28xx *dev, unsigned int cmd, void *arg)
-{
-       BUG_ON(NULL == dev->i2c_adap.algo_data);
-       i2c_clients_command(&dev->i2c_adap, cmd, arg);
-}
-
 /*
  * em28xx_i2c_register()
  * register i2c bus
@@ -618,6 +552,7 @@ int em28xx_i2c_register(struct em28xx *dev)
        dev->i2c_adap.dev.parent = &dev->udev->dev;
        strcpy(dev->i2c_adap.name, dev->name);
        dev->i2c_adap.algo_data = dev;
+       i2c_set_adapdata(&dev->i2c_adap, &dev->v4l2_dev);
 
        retval = i2c_add_adapter(&dev->i2c_adap);
        if (retval < 0) {
index 575472f..882796e 100644 (file)
@@ -49,7 +49,7 @@
                      "Sascha Sommer <saschasommer@freenet.de>"
 
 #define DRIVER_DESC         "Empia em28xx based USB video device driver"
-#define EM28XX_VERSION_CODE  KERNEL_VERSION(0, 1, 1)
+#define EM28XX_VERSION_CODE  KERNEL_VERSION(0, 1, 2)
 
 #define em28xx_videodbg(fmt, arg...) do {\
        if (video_debug) \
@@ -400,7 +400,7 @@ buffer_setup(struct videobuf_queue *vq, unsigned int *count, unsigned int *size)
        f.frequency = dev->ctl_freq;
        f.type = fh->radio ? V4L2_TUNER_RADIO : V4L2_TUNER_ANALOG_TV;
 
-       em28xx_i2c_call_clients(dev, VIDIOC_S_FREQUENCY, &f);
+       v4l2_device_call_all(&dev->v4l2_dev, 0, tuner, s_frequency, &f);
 
        return 0;
 }
@@ -515,10 +515,6 @@ static struct videobuf_queue_ops em28xx_video_qops = {
 
 static void video_mux(struct em28xx *dev, int index)
 {
-       struct v4l2_routing route;
-
-       route.input = INPUT(index)->vmux;
-       route.output = 0;
        dev->ctl_input = index;
        dev->ctl_ainput = INPUT(index)->amux;
        dev->ctl_aoutput = INPUT(index)->aout;
@@ -526,25 +522,22 @@ static void video_mux(struct em28xx *dev, int index)
        if (!dev->ctl_aoutput)
                dev->ctl_aoutput = EM28XX_AOUT_MASTER;
 
-       em28xx_i2c_call_clients(dev, VIDIOC_INT_S_VIDEO_ROUTING, &route);
+       v4l2_device_call_all(&dev->v4l2_dev, 0, video, s_routing,
+                       INPUT(index)->vmux, 0, 0);
 
        if (dev->board.has_msp34xx) {
                if (dev->i2s_speed) {
-                       em28xx_i2c_call_clients(dev, VIDIOC_INT_I2S_CLOCK_FREQ,
-                               &dev->i2s_speed);
+                       v4l2_device_call_all(&dev->v4l2_dev, 0, audio,
+                               s_i2s_clock_freq, dev->i2s_speed);
                }
-               route.input = dev->ctl_ainput;
-               route.output = MSP_OUTPUT(MSP_SC_IN_DSP_SCART1);
                /* Note: this is msp3400 specific */
-               em28xx_i2c_call_clients(dev, VIDIOC_INT_S_AUDIO_ROUTING,
-                       &route);
+               v4l2_device_call_all(&dev->v4l2_dev, 0, audio, s_routing,
+                        dev->ctl_ainput, MSP_OUTPUT(MSP_SC_IN_DSP_SCART1), 0);
        }
 
        if (dev->board.adecoder != EM28XX_NOADECODER) {
-               route.input = dev->ctl_ainput;
-               route.output = dev->ctl_aoutput;
-               em28xx_i2c_call_clients(dev, VIDIOC_INT_S_AUDIO_ROUTING,
-                       &route);
+               v4l2_device_call_all(&dev->v4l2_dev, 0, audio, s_routing,
+                       dev->ctl_ainput, dev->ctl_aoutput, 0);
        }
 
        em28xx_audio_analog_set(dev);
@@ -829,7 +822,7 @@ static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id *norm)
        get_scale(dev, dev->width, dev->height, &dev->hscale, &dev->vscale);
 
        em28xx_resolution_set(dev);
-       em28xx_i2c_call_clients(dev, VIDIOC_S_STD, &dev->norm);
+       v4l2_device_call_all(&dev->v4l2_dev, 0, core, s_std, dev->norm);
 
        mutex_unlock(&dev->lock);
        return 0;
@@ -995,8 +988,9 @@ static int vidioc_queryctrl(struct file *file, void *priv,
                        }
                }
        }
+
        mutex_lock(&dev->lock);
-       em28xx_i2c_call_clients(dev, VIDIOC_QUERYCTRL, qc);
+       v4l2_device_call_all(&dev->v4l2_dev, 0, core, queryctrl, qc);
        mutex_unlock(&dev->lock);
 
        if (qc->type)
@@ -1020,11 +1014,11 @@ static int vidioc_g_ctrl(struct file *file, void *priv,
        mutex_lock(&dev->lock);
 
        if (dev->board.has_msp34xx)
-               em28xx_i2c_call_clients(dev, VIDIOC_G_CTRL, ctrl);
+               v4l2_device_call_all(&dev->v4l2_dev, 0, core, g_ctrl, ctrl);
        else {
                rc = em28xx_get_ctrl(dev, ctrl);
                if (rc < 0) {
-                       em28xx_i2c_call_clients(dev, VIDIOC_G_CTRL, ctrl);
+                       v4l2_device_call_all(&dev->v4l2_dev, 0, core, g_ctrl, ctrl);
                        rc = 0;
                }
        }
@@ -1048,7 +1042,7 @@ static int vidioc_s_ctrl(struct file *file, void *priv,
        mutex_lock(&dev->lock);
 
        if (dev->board.has_msp34xx)
-               em28xx_i2c_call_clients(dev, VIDIOC_S_CTRL, ctrl);
+               v4l2_device_call_all(&dev->v4l2_dev, 0, core, s_ctrl, ctrl);
        else {
                rc = 1;
                for (i = 0; i < ARRAY_SIZE(em28xx_qctrl); i++) {
@@ -1067,7 +1061,7 @@ static int vidioc_s_ctrl(struct file *file, void *priv,
 
        /* Control not found - try to send it to the attached devices */
        if (rc == 1) {
-               em28xx_i2c_call_clients(dev, VIDIOC_S_CTRL, ctrl);
+               v4l2_device_call_all(&dev->v4l2_dev, 0, core, s_ctrl, ctrl);
                rc = 0;
        }
 
@@ -1092,10 +1086,9 @@ static int vidioc_g_tuner(struct file *file, void *priv,
        strcpy(t->name, "Tuner");
 
        mutex_lock(&dev->lock);
-
-       em28xx_i2c_call_clients(dev, VIDIOC_G_TUNER, t);
-
+       v4l2_device_call_all(&dev->v4l2_dev, 0, tuner, g_tuner, t);
        mutex_unlock(&dev->lock);
+
        return 0;
 }
 
@@ -1114,10 +1107,9 @@ static int vidioc_s_tuner(struct file *file, void *priv,
                return -EINVAL;
 
        mutex_lock(&dev->lock);
-
-       em28xx_i2c_call_clients(dev, VIDIOC_S_TUNER, t);
-
+       v4l2_device_call_all(&dev->v4l2_dev, 0, tuner, s_tuner, t);
        mutex_unlock(&dev->lock);
+
        return 0;
 }
 
@@ -1157,7 +1149,7 @@ static int vidioc_s_frequency(struct file *file, void *priv,
        mutex_lock(&dev->lock);
 
        dev->ctl_freq = f->frequency;
-       em28xx_i2c_call_clients(dev, VIDIOC_S_FREQUENCY, f);
+       v4l2_device_call_all(&dev->v4l2_dev, 0, tuner, s_frequency, f);
 
        mutex_unlock(&dev->lock);
 
@@ -1186,7 +1178,7 @@ static int vidioc_g_chip_ident(struct file *file, void *priv,
        chip->ident = V4L2_IDENT_NONE;
        chip->revision = 0;
 
-       em28xx_i2c_call_clients(dev, VIDIOC_DBG_G_CHIP_IDENT, chip);
+       v4l2_device_call_all(&dev->v4l2_dev, 0, core, g_chip_ident, chip);
 
        return 0;
 }
@@ -1211,7 +1203,7 @@ static int vidioc_g_register(struct file *file, void *priv,
                reg->size = 1;
                return 0;
        case V4L2_CHIP_MATCH_I2C_DRIVER:
-               em28xx_i2c_call_clients(dev, VIDIOC_DBG_G_REGISTER, reg);
+               v4l2_device_call_all(&dev->v4l2_dev, 0, core, g_register, reg);
                return 0;
        case V4L2_CHIP_MATCH_I2C_ADDR:
                /* Not supported yet */
@@ -1263,7 +1255,7 @@ static int vidioc_s_register(struct file *file, void *priv,
 
                return rc;
        case V4L2_CHIP_MATCH_I2C_DRIVER:
-               em28xx_i2c_call_clients(dev, VIDIOC_DBG_S_REGISTER, reg);
+               v4l2_device_call_all(&dev->v4l2_dev, 0, core, s_register, reg);
                return 0;
        case V4L2_CHIP_MATCH_I2C_ADDR:
                /* Not supported yet */
@@ -1406,13 +1398,13 @@ static int vidioc_g_fmt_sliced_vbi_cap(struct file *file, void *priv,
        mutex_lock(&dev->lock);
 
        f->fmt.sliced.service_set = 0;
-
-       em28xx_i2c_call_clients(dev, VIDIOC_G_FMT, f);
+       v4l2_device_call_all(&dev->v4l2_dev, 0, video, g_fmt, f);
 
        if (f->fmt.sliced.service_set == 0)
                rc = -EINVAL;
 
        mutex_unlock(&dev->lock);
+
        return rc;
 }
 
@@ -1428,7 +1420,7 @@ static int vidioc_try_set_sliced_vbi_cap(struct file *file, void *priv,
                return rc;
 
        mutex_lock(&dev->lock);
-       em28xx_i2c_call_clients(dev, VIDIOC_G_FMT, f);
+       v4l2_device_call_all(&dev->v4l2_dev, 0, video, g_fmt, f);
        mutex_unlock(&dev->lock);
 
        if (f->fmt.sliced.service_set == 0)
@@ -1532,7 +1524,7 @@ static int radio_g_tuner(struct file *file, void *priv,
        t->type = V4L2_TUNER_RADIO;
 
        mutex_lock(&dev->lock);
-       em28xx_i2c_call_clients(dev, VIDIOC_G_TUNER, t);
+       v4l2_device_call_all(&dev->v4l2_dev, 0, tuner, g_tuner, t);
        mutex_unlock(&dev->lock);
 
        return 0;
@@ -1567,7 +1559,7 @@ static int radio_s_tuner(struct file *file, void *priv,
                return -EINVAL;
 
        mutex_lock(&dev->lock);
-       em28xx_i2c_call_clients(dev, VIDIOC_S_TUNER, t);
+       v4l2_device_call_all(&dev->v4l2_dev, 0, tuner, s_tuner, t);
        mutex_unlock(&dev->lock);
 
        return 0;
@@ -1655,7 +1647,7 @@ static int em28xx_v4l2_open(struct file *filp)
        }
        if (fh->radio) {
                em28xx_videodbg("video_open: setting radio device\n");
-               em28xx_i2c_call_clients(dev, AUDC_SET_RADIO, NULL);
+               v4l2_device_call_all(&dev->v4l2_dev, 0, tuner, s_radio);
        }
 
        dev->users++;
@@ -1738,7 +1730,7 @@ static int em28xx_v4l2_close(struct file *filp)
                }
 
                /* Save some power by putting tuner to sleep */
-               em28xx_i2c_call_clients(dev, TUNER_SET_STANDBY, NULL);
+               v4l2_device_call_all(&dev->v4l2_dev, 0, tuner, s_standby);
 
                /* do this before setting alternate! */
                em28xx_uninit_isoc(dev);
@@ -1959,11 +1951,12 @@ static struct video_device *em28xx_vdev_init(struct em28xx *dev,
        vfd = video_device_alloc();
        if (NULL == vfd)
                return NULL;
-       *vfd = *template;
-       vfd->minor   = -1;
-       vfd->parent = &dev->udev->dev;
-       vfd->release = video_device_release;
-       vfd->debug = video_debug;
+
+       *vfd            = *template;
+       vfd->minor      = -1;
+       vfd->v4l2_dev   = &dev->v4l2_dev;
+       vfd->release    = video_device_release;
+       vfd->debug      = video_debug;
 
        snprintf(vfd->name, sizeof(vfd->name), "%s %s",
                 dev->name, type_name);
index a33a58d..4c4e580 100644 (file)
@@ -27,6 +27,7 @@
 
 #include <linux/videodev2.h>
 #include <media/videobuf-vmalloc.h>
+#include <media/v4l2-device.h>
 
 #include <linux/i2c.h>
 #include <linux/mutex.h>
@@ -385,6 +386,8 @@ struct em28xx_board {
        unsigned int valid:1;
 
        unsigned char xclk, i2c_speed;
+       unsigned char radio_addr;
+       unsigned short tvaudio_addr;
 
        enum em28xx_decoder decoder;
        enum em28xx_adecoder adecoder;
@@ -460,6 +463,7 @@ struct em28xx {
        int devno;              /* marks the number of this device */
        enum em28xx_chip_id chip_id;
 
+       struct v4l2_device v4l2_dev;
        struct em28xx_board board;
 
        unsigned int stream_on:1;       /* Locks streams */
@@ -577,11 +581,9 @@ struct em28xx_ops {
 };
 
 /* Provided by em28xx-i2c.c */
-
-void em28xx_i2c_call_clients(struct em28xx *dev, unsigned int cmd, void *arg);
 void em28xx_do_i2c_scan(struct em28xx *dev);
-int em28xx_i2c_register(struct em28xx *dev);
-int em28xx_i2c_unregister(struct em28xx *dev);
+int  em28xx_i2c_register(struct em28xx *dev);
+int  em28xx_i2c_unregister(struct em28xx *dev);
 
 /* Provided by em28xx-core.c */
 
index a75c1ca..a2741d7 100644 (file)
@@ -1132,6 +1132,7 @@ static int vidioc_enum_input(struct file *file, void *priv,
        if (input->index != 0)
                return -EINVAL;
        input->type = V4L2_INPUT_TYPE_CAMERA;
+       input->status = gspca_dev->cam.input_flags;
        strncpy(input->name, gspca_dev->sd_desc->name,
                sizeof input->name);
        return 0;
index e4d4cf6..58e8ff0 100644 (file)
@@ -56,6 +56,7 @@ struct cam {
                                 * - cannot be > MAX_NURBS
                                 * - when 0 and bulk_size != 0 means
                                 *   1 URB and submit done by subdriver */
+       u32 input_flags;        /* value for ENUM_INPUT status flags */
 };
 
 struct gspca_dev;
index 226ab4f..9fa3644 100644 (file)
@@ -7,5 +7,4 @@ gspca_m5602-objs := m5602_core.o \
                    m5602_s5k83a.o \
                    m5602_s5k4aa.o
 
-EXTRA_CFLAGS += -Idrivers/media/video/gspca
-
+EXTRA_CFLAGS += -Idrivers/media/video/gspca
\ No newline at end of file
index a3f3b7a..8f1cea6 100644 (file)
@@ -112,14 +112,14 @@ static const unsigned char sensor_urb_skeleton[] = {
 struct sd {
        struct gspca_dev gspca_dev;
 
-       /* The name of the m5602 camera */
-       char *name;
-
        /* A pointer to the currently connected sensor */
-       struct m5602_sensor *sensor;
+       const struct m5602_sensor *sensor;
 
        struct sd_desc *desc;
 
+       /* Sensor private data */
+       void *sensor_priv;
+
        /* The current frame's id, used to detect frame boundaries */
        u8 frame_id;
 
index b35e483..1aac298 100644 (file)
@@ -51,7 +51,7 @@ int m5602_read_bridge(struct sd *sd, u8 address, u8 *i2c_data)
               address, *i2c_data);
 
        /* usb_control_msg(...) returns the number of bytes sent upon success,
-       mask that and return zero upon success instead*/
+       mask that and return zero instead*/
        return (err < 0) ? err : 0;
 }
 
@@ -76,7 +76,7 @@ int m5602_write_bridge(struct sd *sd, u8 address, u8 i2c_data)
                                4, M5602_URB_MSG_TIMEOUT);
 
        /* usb_control_msg(...) returns the number of bytes sent upon success,
-          mask that and return zero upon success instead */
+          mask that and return zero instead */
        return (err < 0) ? err : 0;
 }
 
@@ -92,29 +92,29 @@ int m5602_read_sensor(struct sd *sd, const u8 address,
                err = m5602_read_bridge(sd, M5602_XB_I2C_STATUS, i2c_data);
        } while ((*i2c_data & I2C_BUSY) && !err);
        if (err < 0)
-               goto out;
+               return err;
 
        err = m5602_write_bridge(sd, M5602_XB_I2C_DEV_ADDR,
                                 sd->sensor->i2c_slave_id);
        if (err < 0)
-               goto out;
+               return err;
 
        err = m5602_write_bridge(sd, M5602_XB_I2C_REG_ADDR, address);
        if (err < 0)
-               goto out;
+               return err;
 
        if (sd->sensor->i2c_regW == 1) {
                err = m5602_write_bridge(sd, M5602_XB_I2C_CTRL, len);
                if (err < 0)
-                       goto out;
+                       return err;
 
                err = m5602_write_bridge(sd, M5602_XB_I2C_CTRL, 0x08);
                if (err < 0)
-                       goto out;
+                       return err;
        } else {
                err = m5602_write_bridge(sd, M5602_XB_I2C_CTRL, 0x18 + len);
                if (err < 0)
-                       goto out;
+                       return err;
        }
 
        for (i = 0; (i < len) && !err; i++) {
@@ -123,7 +123,6 @@ int m5602_read_sensor(struct sd *sd, const u8 address,
                PDEBUG(D_CONF, "Reading sensor register "
                               "0x%x containing 0x%x ", address, *i2c_data);
        }
-out:
        return err;
 }
 
@@ -310,7 +309,11 @@ static void m5602_urb_complete(struct gspca_dev *gspca_dev,
 
 static void m5602_stop_transfer(struct gspca_dev *gspca_dev)
 {
-       /* Is there are a command to stop a data transfer? */
+       struct sd *sd = (struct sd *) gspca_dev;
+
+       /* Run the sensor specific end transfer sequence */
+       if (sd->sensor->stop)
+               sd->sensor->stop(sd);
 }
 
 /* sub-driver description, the ctrl and nctrl is filled at probe time */
@@ -359,6 +362,17 @@ static int m5602_probe(struct usb_interface *intf,
                               THIS_MODULE);
 }
 
+void m5602_disconnect(struct usb_interface *intf)
+{
+       struct gspca_dev *gspca_dev = usb_get_intfdata(intf);
+       struct sd *sd = (struct sd *) gspca_dev;
+
+       if (sd->sensor->disconnect)
+               sd->sensor->disconnect(sd);
+
+       gspca_disconnect(intf);
+}
+
 static struct usb_driver sd_driver = {
        .name = MODULE_NAME,
        .id_table = m5602_table,
@@ -367,7 +381,7 @@ static struct usb_driver sd_driver = {
        .suspend = gspca_suspend,
        .resume = gspca_resume,
 #endif
-       .disconnect = gspca_disconnect
+       .disconnect = m5602_disconnect
 };
 
 /* -- module insert / remove -- */
index c0e71c3..7d3f9e3 100644 (file)
 
 #include "m5602_mt9m111.h"
 
+static struct v4l2_pix_format mt9m111_modes[] = {
+       {
+               640,
+               480,
+               V4L2_PIX_FMT_SBGGR8,
+               V4L2_FIELD_NONE,
+               .sizeimage = 640 * 480,
+               .bytesperline = 640,
+               .colorspace = V4L2_COLORSPACE_SRGB,
+               .priv = 0
+       }
+};
+
+const static struct ctrl mt9m111_ctrls[] = {
+       {
+               {
+                       .id             = V4L2_CID_VFLIP,
+                       .type           = V4L2_CTRL_TYPE_BOOLEAN,
+                       .name           = "vertical flip",
+                       .minimum        = 0,
+                       .maximum        = 1,
+                       .step           = 1,
+                       .default_value  = 0
+               },
+               .set = mt9m111_set_vflip,
+               .get = mt9m111_get_vflip
+       }, {
+               {
+                       .id             = V4L2_CID_HFLIP,
+                       .type           = V4L2_CTRL_TYPE_BOOLEAN,
+                       .name           = "horizontal flip",
+                       .minimum        = 0,
+                       .maximum        = 1,
+                       .step           = 1,
+                       .default_value  = 0
+               },
+               .set = mt9m111_set_hflip,
+               .get = mt9m111_get_hflip
+       }, {
+               {
+                       .id             = V4L2_CID_GAIN,
+                       .type           = V4L2_CTRL_TYPE_INTEGER,
+                       .name           = "gain",
+                       .minimum        = 0,
+                       .maximum        = (INITIAL_MAX_GAIN - 1) * 2 * 2 * 2,
+                       .step           = 1,
+                       .default_value  = DEFAULT_GAIN,
+                       .flags          = V4L2_CTRL_FLAG_SLIDER
+               },
+               .set = mt9m111_set_gain,
+               .get = mt9m111_get_gain
+       }
+};
+
+
 static void mt9m111_dump_registers(struct sd *sd);
 
 int mt9m111_probe(struct sd *sd)
@@ -62,10 +117,10 @@ int mt9m111_probe(struct sd *sd)
        return -ENODEV;
 
 sensor_found:
-       sd->gspca_dev.cam.cam_mode = mt9m111.modes;
-       sd->gspca_dev.cam.nmodes = mt9m111.nmodes;
-       sd->desc->ctrls = mt9m111.ctrls;
-       sd->desc->nctrls = mt9m111.nctrls;
+       sd->gspca_dev.cam.cam_mode = mt9m111_modes;
+       sd->gspca_dev.cam.nmodes = ARRAY_SIZE(mt9m111_modes);
+       sd->desc->ctrls = mt9m111_ctrls;
+       sd->desc->nctrls = ARRAY_SIZE(mt9m111_ctrls);
        return 0;
 }
 
@@ -125,16 +180,15 @@ int mt9m111_set_vflip(struct gspca_dev *gspca_dev, __s32 val)
        /* Set the correct page map */
        err = m5602_write_sensor(sd, MT9M111_PAGE_MAP, data, 2);
        if (err < 0)
-               goto out;
+               return err;
 
        err = m5602_read_sensor(sd, MT9M111_SC_R_MODE_CONTEXT_B, data, 2);
        if (err < 0)
-               goto out;
+               return err;
 
        data[0] = (data[0] & 0xfe) | val;
        err = m5602_write_sensor(sd, MT9M111_SC_R_MODE_CONTEXT_B,
                                   data, 2);
-out:
        return err;
 }
 
@@ -163,16 +217,15 @@ int mt9m111_set_hflip(struct gspca_dev *gspca_dev, __s32 val)
        /* Set the correct page map */
        err = m5602_write_sensor(sd, MT9M111_PAGE_MAP, data, 2);
        if (err < 0)
-               goto out;
+               return err;
 
        err = m5602_read_sensor(sd, MT9M111_SC_R_MODE_CONTEXT_B, data, 2);
        if (err < 0)
-               goto out;
+               return err;
 
        data[0] = (data[0] & 0xfd) | ((val << 1) & 0x02);
        err = m5602_write_sensor(sd, MT9M111_SC_R_MODE_CONTEXT_B,
                                        data, 2);
-out:
        return err;
 }
 
@@ -204,7 +257,7 @@ int mt9m111_set_gain(struct gspca_dev *gspca_dev, __s32 val)
        /* Set the correct page map */
        err = m5602_write_sensor(sd, MT9M111_PAGE_MAP, data, 2);
        if (err < 0)
-               goto out;
+               return err;
 
        if (val >= INITIAL_MAX_GAIN * 2 * 2 * 2)
                return -EINVAL;
@@ -229,7 +282,7 @@ int mt9m111_set_gain(struct gspca_dev *gspca_dev, __s32 val)
 
        err = m5602_write_sensor(sd, MT9M111_SC_GLOBAL_GAIN,
                                   data, 2);
-out:
+
        return err;
 }
 
index e795ab7..00c6db0 100644 (file)
@@ -94,7 +94,7 @@ int mt9m111_set_hflip(struct gspca_dev *gspca_dev, __s32 val);
 int mt9m111_get_gain(struct gspca_dev *gspca_dev, __s32 *val);
 int mt9m111_set_gain(struct gspca_dev *gspca_dev, __s32 val);
 
-static struct m5602_sensor mt9m111 = {
+const static struct m5602_sensor mt9m111 = {
        .name = "MT9M111",
 
        .i2c_slave_id = 0xba,
@@ -102,64 +102,7 @@ static struct m5602_sensor mt9m111 = {
 
        .probe = mt9m111_probe,
        .init = mt9m111_init,
-       .power_down = mt9m111_power_down,
-
-       .nctrls = 3,
-       .ctrls = {
-       {
-               {
-                       .id             = V4L2_CID_VFLIP,
-                       .type           = V4L2_CTRL_TYPE_BOOLEAN,
-                       .name           = "vertical flip",
-                       .minimum        = 0,
-                       .maximum        = 1,
-                       .step           = 1,
-                       .default_value  = 0
-               },
-               .set = mt9m111_set_vflip,
-               .get = mt9m111_get_vflip
-       }, {
-               {
-                       .id             = V4L2_CID_HFLIP,
-                       .type           = V4L2_CTRL_TYPE_BOOLEAN,
-                       .name           = "horizontal flip",
-                       .minimum        = 0,
-                       .maximum        = 1,
-                       .step           = 1,
-                       .default_value  = 0
-               },
-               .set = mt9m111_set_hflip,
-               .get = mt9m111_get_hflip
-       }, {
-               {
-                       .id             = V4L2_CID_GAIN,
-                       .type           = V4L2_CTRL_TYPE_INTEGER,
-                       .name           = "gain",
-                       .minimum        = 0,
-                       .maximum        = (INITIAL_MAX_GAIN - 1) * 2 * 2 * 2,
-                       .step           = 1,
-                       .default_value  = DEFAULT_GAIN,
-                       .flags          = V4L2_CTRL_FLAG_SLIDER
-               },
-               .set = mt9m111_set_gain,
-               .get = mt9m111_get_gain
-       }
-       },
-
-       .nmodes = 1,
-       .modes = {
-       {
-               M5602_DEFAULT_FRAME_WIDTH,
-               M5602_DEFAULT_FRAME_HEIGHT,
-               V4L2_PIX_FMT_SBGGR8,
-               V4L2_FIELD_NONE,
-               .sizeimage =
-                       M5602_DEFAULT_FRAME_WIDTH * M5602_DEFAULT_FRAME_HEIGHT,
-               .bytesperline = M5602_DEFAULT_FRAME_WIDTH,
-               .colorspace = V4L2_COLORSPACE_SRGB,
-               .priv = 1
-       }
-       }
+       .power_down = mt9m111_power_down
 };
 
 static const unsigned char preinit_mt9m111[][4] =
index c908a8d..fc4548f 100644 (file)
@@ -65,14 +65,177 @@ static
                        DMI_MATCH(DMI_PRODUCT_NAME, "Aurora m9700")
                }
        },
-       { }
+       {}
+};
+
+const static struct ctrl ov9650_ctrls[] = {
+#define EXPOSURE_IDX 0
+       {
+               {
+                       .id             = V4L2_CID_EXPOSURE,
+                       .type           = V4L2_CTRL_TYPE_INTEGER,
+                       .name           = "exposure",
+                       .minimum        = 0x00,
+                       .maximum        = 0x1ff,
+                       .step           = 0x4,
+                       .default_value  = EXPOSURE_DEFAULT,
+                       .flags          = V4L2_CTRL_FLAG_SLIDER
+               },
+               .set = ov9650_set_exposure,
+               .get = ov9650_get_exposure
+       },
+#define GAIN_IDX 1
+       {
+               {
+                       .id             = V4L2_CID_GAIN,
+                       .type           = V4L2_CTRL_TYPE_INTEGER,
+                       .name           = "gain",
+                       .minimum        = 0x00,
+                       .maximum        = 0x3ff,
+                       .step           = 0x1,
+                       .default_value  = GAIN_DEFAULT,
+                       .flags          = V4L2_CTRL_FLAG_SLIDER
+               },
+               .set = ov9650_set_gain,
+               .get = ov9650_get_gain
+       },
+#define RED_BALANCE_IDX 2
+       {
+               {
+                       .type           = V4L2_CTRL_TYPE_INTEGER,
+                       .name           = "red balance",
+                       .minimum        = 0x00,
+                       .maximum        = 0xff,
+                       .step           = 0x1,
+                       .default_value  = RED_GAIN_DEFAULT,
+                       .flags          = V4L2_CTRL_FLAG_SLIDER
+               },
+               .set = ov9650_set_red_balance,
+               .get = ov9650_get_red_balance
+       },
+#define BLUE_BALANCE_IDX 3
+       {
+               {
+                       .type           = V4L2_CTRL_TYPE_INTEGER,
+                       .name           = "blue balance",
+                       .minimum        = 0x00,
+                       .maximum        = 0xff,
+                       .step           = 0x1,
+                       .default_value  = BLUE_GAIN_DEFAULT,
+                       .flags          = V4L2_CTRL_FLAG_SLIDER
+               },
+               .set = ov9650_set_blue_balance,
+               .get = ov9650_get_blue_balance
+       },
+#define HFLIP_IDX 4
+       {
+               {
+                       .id             = V4L2_CID_HFLIP,
+                       .type           = V4L2_CTRL_TYPE_BOOLEAN,
+                       .name           = "horizontal flip",
+                       .minimum        = 0,
+                       .maximum        = 1,
+                       .step           = 1,
+                       .default_value  = 0
+               },
+               .set = ov9650_set_hflip,
+               .get = ov9650_get_hflip
+       },
+#define VFLIP_IDX 5
+       {
+               {
+                       .id             = V4L2_CID_VFLIP,
+                       .type           = V4L2_CTRL_TYPE_BOOLEAN,
+                       .name           = "vertical flip",
+                       .minimum        = 0,
+                       .maximum        = 1,
+                       .step           = 1,
+                       .default_value  = 0
+               },
+               .set = ov9650_set_vflip,
+               .get = ov9650_get_vflip
+       },
+#define AUTO_WHITE_BALANCE_IDX 6
+       {
+               {
+                       .id             = V4L2_CID_AUTO_WHITE_BALANCE,
+                       .type           = V4L2_CTRL_TYPE_BOOLEAN,
+                       .name           = "auto white balance",
+                       .minimum        = 0,
+                       .maximum        = 1,
+                       .step           = 1,
+                       .default_value  = 1
+               },
+               .set = ov9650_set_auto_white_balance,
+               .get = ov9650_get_auto_white_balance
+       },
+#define AUTO_GAIN_CTRL_IDX 7
+       {
+               {
+                       .id             = V4L2_CID_AUTOGAIN,
+                       .type           = V4L2_CTRL_TYPE_BOOLEAN,
+                       .name           = "auto gain control",
+                       .minimum        = 0,
+                       .maximum        = 1,
+                       .step           = 1,
+                       .default_value  = 1
+               },
+               .set = ov9650_set_auto_gain,
+               .get = ov9650_get_auto_gain
+       }
+};
+
+static struct v4l2_pix_format ov9650_modes[] = {
+       {
+               176,
+               144,
+               V4L2_PIX_FMT_SBGGR8,
+               V4L2_FIELD_NONE,
+               .sizeimage =
+                       176 * 144,
+               .bytesperline = 176,
+               .colorspace = V4L2_COLORSPACE_SRGB,
+               .priv = 9
+       }, {
+               320,
+               240,
+               V4L2_PIX_FMT_SBGGR8,
+               V4L2_FIELD_NONE,
+               .sizeimage =
+                       320 * 240,
+               .bytesperline = 320,
+               .colorspace = V4L2_COLORSPACE_SRGB,
+               .priv = 8
+       }, {
+               352,
+               288,
+               V4L2_PIX_FMT_SBGGR8,
+               V4L2_FIELD_NONE,
+               .sizeimage =
+                       352 * 288,
+               .bytesperline = 352,
+               .colorspace = V4L2_COLORSPACE_SRGB,
+               .priv = 9
+       }, {
+               640,
+               480,
+               V4L2_PIX_FMT_SBGGR8,
+               V4L2_FIELD_NONE,
+               .sizeimage =
+                       640 * 480,
+               .bytesperline = 640,
+               .colorspace = V4L2_COLORSPACE_SRGB,
+               .priv = 9
+       }
 };
 
 static void ov9650_dump_registers(struct sd *sd);
 
 int ov9650_probe(struct sd *sd)
 {
+       int err = 0;
        u8 prod_id = 0, ver_id = 0, i;
+       s32 *sensor_settings;
 
        if (force_sensor) {
                if (force_sensor == OV9650_SENSOR) {
@@ -86,16 +249,20 @@ int ov9650_probe(struct sd *sd)
 
        info("Probing for an ov9650 sensor");
 
-       /* Run the pre-init to actually probe the unit */
-       for (i = 0; i < ARRAY_SIZE(preinit_ov9650); i++) {
+       /* Run the pre-init before probing the sensor */
+       for (i = 0; i < ARRAY_SIZE(preinit_ov9650) && !err; i++) {
                u8 data = preinit_ov9650[i][2];
                if (preinit_ov9650[i][0] == SENSOR)
-                       m5602_write_sensor(sd,
-                                           preinit_ov9650[i][1], &data, 1);
+                       err = m5602_write_sensor(sd,
+                               preinit_ov9650[i][1], &data, 1);
                else
-                       m5602_write_bridge(sd, preinit_ov9650[i][1], data);
+                       err = m5602_write_bridge(sd,
+                               preinit_ov9650[i][1], data);
        }
 
+       if (err < 0)
+               return err;
+
        if (m5602_read_sensor(sd, OV9650_PID, &prod_id, 1))
                return -ENODEV;
 
@@ -106,14 +273,28 @@ int ov9650_probe(struct sd *sd)
                info("Detected an ov9650 sensor");
                goto sensor_found;
        }
-
        return -ENODEV;
 
 sensor_found:
-       sd->gspca_dev.cam.cam_mode = ov9650.modes;
-       sd->gspca_dev.cam.nmodes = ov9650.nmodes;
-       sd->desc->ctrls = ov9650.ctrls;
-       sd->desc->nctrls = ov9650.nctrls;
+       sensor_settings = kmalloc(
+               ARRAY_SIZE(ov9650_ctrls) * sizeof(s32), GFP_KERNEL);
+       if (!sensor_settings)
+               return -ENOMEM;
+
+       sd->gspca_dev.cam.cam_mode = ov9650_modes;
+       sd->gspca_dev.cam.nmodes = ARRAY_SIZE(ov9650_modes);
+       sd->desc->ctrls = ov9650_ctrls;
+       sd->desc->nctrls = ARRAY_SIZE(ov9650_ctrls);
+
+       for (i = 0; i < ARRAY_SIZE(ov9650_ctrls); i++)
+               sensor_settings[i] = ov9650_ctrls[i].qctrl.default_value;
+       sd->sensor_priv = sensor_settings;
+
+       if (dmi_check_system(ov9650_flip_dmi_table) && !err) {
+               info("vflip quirk active");
+               sensor_settings[VFLIP_IDX] = 1;
+       }
+
        return 0;
 }
 
@@ -121,6 +302,7 @@ int ov9650_init(struct sd *sd)
 {
        int i, err = 0;
        u8 data;
+       s32 *sensor_settings = sd->sensor_priv;
 
        if (dump_sensor)
                ov9650_dump_registers(sd);
@@ -134,70 +316,157 @@ int ov9650_init(struct sd *sd)
                        err = m5602_write_bridge(sd, init_ov9650[i][1], data);
        }
 
-       if (dmi_check_system(ov9650_flip_dmi_table) && !err) {
-               info("vflip quirk active");
-               data = 0x30;
-               err = m5602_write_sensor(sd, OV9650_MVFP, &data, 1);
-       }
+       err = ov9650_set_exposure(&sd->gspca_dev, sensor_settings[EXPOSURE_IDX]);
+       if (err < 0)
+               return err;
+
+       err = ov9650_set_gain(&sd->gspca_dev, sensor_settings[GAIN_IDX]);
+       if (err < 0)
+               return err;
+
+       err = ov9650_set_red_balance(&sd->gspca_dev, sensor_settings[RED_BALANCE_IDX]);
+       if (err < 0)
+               return err;
+
+       err = ov9650_set_blue_balance(&sd->gspca_dev, sensor_settings[BLUE_BALANCE_IDX]);
+       if (err < 0)
+               return err;
+
+       err = ov9650_set_hflip(&sd->gspca_dev, sensor_settings[HFLIP_IDX]);
+       if (err < 0)
+               return err;
+
+       err = ov9650_set_vflip(&sd->gspca_dev, sensor_settings[VFLIP_IDX]);
+       if (err < 0)
+               return err;
+
+       err = ov9650_set_auto_white_balance(&sd->gspca_dev, sensor_settings[AUTO_WHITE_BALANCE_IDX]);
+       if (err < 0)
+               return err;
+
+       err = ov9650_set_auto_gain(&sd->gspca_dev, sensor_settings[AUTO_GAIN_CTRL_IDX]);
        return err;
 }
 
 int ov9650_start(struct sd *sd)
 {
+       u8 data;
        int i, err = 0;
        struct cam *cam = &sd->gspca_dev.cam;
+       s32 *sensor_settings = sd->sensor_priv;
+
+       int width = cam->cam_mode[sd->gspca_dev.curr_mode].width;
+       int height = cam->cam_mode[sd->gspca_dev.curr_mode].height;
+       int ver_offs = cam->cam_mode[sd->gspca_dev.curr_mode].priv;
+       int hor_offs = OV9650_LEFT_OFFSET;
+
+       if (sensor_settings[VFLIP_IDX])
+               ver_offs--;
 
+       if (width <= 320)
+               hor_offs /= 2;
+
+       /* Synthesize the vsync/hsync setup */
        for (i = 0; i < ARRAY_SIZE(res_init_ov9650) && !err; i++) {
-               u8 data = res_init_ov9650[i][1];
-               err = m5602_write_bridge(sd, res_init_ov9650[i][0], data);
+               if (res_init_ov9650[i][0] == BRIDGE)
+                       err = m5602_write_bridge(sd, res_init_ov9650[i][1],
+                               res_init_ov9650[i][2]);
+               else if (res_init_ov9650[i][0] == SENSOR) {
+                       u8 data = res_init_ov9650[i][2];
+                       err = m5602_write_sensor(sd,
+                               res_init_ov9650[i][1], &data, 1);
+               }
        }
        if (err < 0)
                return err;
 
-       switch (cam->cam_mode[sd->gspca_dev.curr_mode].width)
-       {
+       err = m5602_write_bridge(sd, M5602_XB_VSYNC_PARA,
+                                ((ver_offs >> 8) & 0xff));
+       if (err < 0)
+               return err;
+
+       err = m5602_write_bridge(sd, M5602_XB_VSYNC_PARA, (ver_offs & 0xff));
+       if (err < 0)
+               return err;
+
+       err = m5602_write_bridge(sd, M5602_XB_VSYNC_PARA, 0);
+       if (err < 0)
+               return err;
+
+       err = m5602_write_bridge(sd, M5602_XB_VSYNC_PARA, (height >> 8) & 0xff);
+       if (err < 0)
+               return err;
+
+       err = m5602_write_bridge(sd, M5602_XB_VSYNC_PARA, (height & 0xff));
+       if (err < 0)
+               return err;
+
+       for (i = 0; i < 2 && !err; i++)
+               err = m5602_write_bridge(sd, M5602_XB_VSYNC_PARA, 0);
+       if (err < 0)
+               return err;
+
+       err = m5602_write_bridge(sd, M5602_XB_HSYNC_PARA,
+                                (hor_offs >> 8) & 0xff);
+       if (err < 0)
+               return err;
+
+       err = m5602_write_bridge(sd, M5602_XB_HSYNC_PARA, hor_offs & 0xff);
+       if (err < 0)
+               return err;
+
+       err = m5602_write_bridge(sd, M5602_XB_HSYNC_PARA,
+                                ((width + hor_offs) >> 8) & 0xff);
+       if (err < 0)
+               return err;
+
+       err = m5602_write_bridge(sd, M5602_XB_HSYNC_PARA,
+                                ((width + hor_offs) & 0xff));
+       if (err < 0)
+               return err;
+
+       switch (width) {
        case 640:
                PDEBUG(D_V4L2, "Configuring camera for VGA mode");
 
-               for (i = 0; i < ARRAY_SIZE(VGA_ov9650) && !err; i++) {
-                       u8 data = VGA_ov9650[i][2];
-                       if (VGA_ov9650[i][0] == SENSOR)
-                               err = m5602_write_sensor(sd,
-                                       VGA_ov9650[i][1], &data, 1);
-                       else
-                               err = m5602_write_bridge(sd, VGA_ov9650[i][1], data);
-               }
+               data = OV9650_VGA_SELECT | OV9650_RGB_SELECT |
+                      OV9650_RAW_RGB_SELECT;
+               err = m5602_write_sensor(sd, OV9650_COM7, &data, 1);
                break;
 
        case 352:
                PDEBUG(D_V4L2, "Configuring camera for CIF mode");
 
-               for (i = 0; i < ARRAY_SIZE(CIF_ov9650) && !err; i++) {
-                       u8 data = CIF_ov9650[i][2];
-                       if (CIF_ov9650[i][0] == SENSOR)
-                               err = m5602_write_sensor(sd,
-                                       CIF_ov9650[i][1], &data, 1);
-                       else
-                               err = m5602_write_bridge(sd, CIF_ov9650[i][1], data);
-               }
+               data = OV9650_CIF_SELECT | OV9650_RGB_SELECT |
+                               OV9650_RAW_RGB_SELECT;
+               err = m5602_write_sensor(sd, OV9650_COM7, &data, 1);
                break;
 
        case 320:
                PDEBUG(D_V4L2, "Configuring camera for QVGA mode");
 
-               for (i = 0; i < ARRAY_SIZE(QVGA_ov9650) && !err; i++) {
-                       u8 data = QVGA_ov9650[i][2];
-                       if (QVGA_ov9650[i][0] == SENSOR)
-                               err = m5602_write_sensor(sd,
-                                       QVGA_ov9650[i][1], &data, 1);
-                       else
-                               err = m5602_write_bridge(sd, QVGA_ov9650[i][1], data);
-               }
+               data = OV9650_QVGA_SELECT | OV9650_RGB_SELECT |
+                               OV9650_RAW_RGB_SELECT;
+               err = m5602_write_sensor(sd, OV9650_COM7, &data, 1);
+               break;
+
+       case 176:
+               PDEBUG(D_V4L2, "Configuring camera for QCIF mode");
+
+               data = OV9650_QCIF_SELECT | OV9650_RGB_SELECT |
+                       OV9650_RAW_RGB_SELECT;
+               err = m5602_write_sensor(sd, OV9650_COM7, &data, 1);
                break;
        }
        return err;
 }
 
+int ov9650_stop(struct sd *sd)
+{
+       u8 data = OV9650_SOFT_SLEEP | OV9650_OUTPUT_DRIVE_2X;
+       return m5602_write_sensor(sd, OV9650_COM2, &data, 1);
+}
+
 int ov9650_power_down(struct sd *sd)
 {
        int i, err = 0;
@@ -214,76 +483,63 @@ int ov9650_power_down(struct sd *sd)
        return err;
 }
 
-int ov9650_get_exposure(struct gspca_dev *gspca_dev, __s32 *val)
+void ov9650_disconnect(struct sd *sd)
 {
-       struct sd *sd = (struct sd *) gspca_dev;
-       u8 i2c_data;
-       int err;
-
-       err = m5602_read_sensor(sd, OV9650_COM1, &i2c_data, 1);
-       if (err < 0)
-               goto out;
-       *val = i2c_data & 0x03;
+       ov9650_stop(sd);
+       ov9650_power_down(sd);
 
-       err = m5602_read_sensor(sd, OV9650_AECH, &i2c_data, 1);
-       if (err < 0)
-               goto out;
-       *val |= (i2c_data << 2);
+       sd->sensor = NULL;
+       kfree(sd->sensor_priv);
+}
 
-       err = m5602_read_sensor(sd, OV9650_AECHM, &i2c_data, 1);
-       if (err < 0)
-               goto out;
-       *val |= (i2c_data & 0x3f) << 10;
+int ov9650_get_exposure(struct gspca_dev *gspca_dev, __s32 *val)
+{
+       struct sd *sd = (struct sd *) gspca_dev;
+       s32 *sensor_settings = sd->sensor_priv;
 
+       *val = sensor_settings[EXPOSURE_IDX];
        PDEBUG(D_V4L2, "Read exposure %d", *val);
-out:
-       return err;
+       return 0;
 }
 
 int ov9650_set_exposure(struct gspca_dev *gspca_dev, __s32 val)
 {
        struct sd *sd = (struct sd *) gspca_dev;
+       s32 *sensor_settings = sd->sensor_priv;
        u8 i2c_data;
        int err;
 
-       PDEBUG(D_V4L2, "Set exposure to %d",
-              val & 0xffff);
+       PDEBUG(D_V4L2, "Set exposure to %d", val);
 
+       sensor_settings[EXPOSURE_IDX] = val;
        /* The 6 MSBs */
        i2c_data = (val >> 10) & 0x3f;
        err = m5602_write_sensor(sd, OV9650_AECHM,
                                  &i2c_data, 1);
        if (err < 0)
-               goto out;
+               return err;
 
        /* The 8 middle bits */
        i2c_data = (val >> 2) & 0xff;
        err = m5602_write_sensor(sd, OV9650_AECH,
                                  &i2c_data, 1);
        if (err < 0)
-               goto out;
+               return err;
 
        /* The 2 LSBs */
        i2c_data = val & 0x03;
        err = m5602_write_sensor(sd, OV9650_COM1, &i2c_data, 1);
-
-out:
        return err;
 }
 
 int ov9650_get_gain(struct gspca_dev *gspca_dev, __s32 *val)
 {
-       int err;
-       u8 i2c_data;
        struct sd *sd = (struct sd *) gspca_dev;
+       s32 *sensor_settings = sd->sensor_priv;
 
-       m5602_read_sensor(sd, OV9650_VREF, &i2c_data, 1);
-       *val = (i2c_data & 0x03) << 8;
-
-       err = m5602_read_sensor(sd, OV9650_GAIN, &i2c_data, 1);
-       *val |= i2c_data;
+       *val = sensor_settings[GAIN_IDX];
        PDEBUG(D_V4L2, "Read gain %d", *val);
-       return err;
+       return 0;
 }
 
 int ov9650_set_gain(struct gspca_dev *gspca_dev, __s32 val)
@@ -291,15 +547,25 @@ int ov9650_set_gain(struct gspca_dev *gspca_dev, __s32 val)
        int err;
        u8 i2c_data;
        struct sd *sd = (struct sd *) gspca_dev;
+       s32 *sensor_settings = sd->sensor_priv;
+
+       PDEBUG(D_V4L2, "Setting gain to %d", val);
+
+       sensor_settings[GAIN_IDX] = val;
 
        /* The 2 MSB */
        /* Read the OV9650_VREF register first to avoid
           corrupting the VREF high and low bits */
-       m5602_read_sensor(sd, OV9650_VREF, &i2c_data, 1);
+       err = m5602_read_sensor(sd, OV9650_VREF, &i2c_data, 1);
+       if (err < 0)
+               return err;
+
        /* Mask away all uninteresting bits */
        i2c_data = ((val & 0x0300) >> 2) |
                        (i2c_data & 0x3F);
        err = m5602_write_sensor(sd, OV9650_VREF, &i2c_data, 1);
+       if (err < 0)
+               return err;
 
        /* The 8 LSBs */
        i2c_data = val & 0xff;
@@ -309,16 +575,12 @@ int ov9650_set_gain(struct gspca_dev *gspca_dev, __s32 val)
 
 int ov9650_get_red_balance(struct gspca_dev *gspca_dev, __s32 *val)
 {
-       int err;
-       u8 i2c_data;
        struct sd *sd = (struct sd *) gspca_dev;
+       s32 *sensor_settings = sd->sensor_priv;
 
-       err = m5602_read_sensor(sd, OV9650_RED, &i2c_data, 1);
-       *val = i2c_data;
-
+       *val = sensor_settings[RED_BALANCE_IDX];
        PDEBUG(D_V4L2, "Read red gain %d", *val);
-
-       return err;
+       return 0;
 }
 
 int ov9650_set_red_balance(struct gspca_dev *gspca_dev, __s32 val)
@@ -326,28 +588,26 @@ int ov9650_set_red_balance(struct gspca_dev *gspca_dev, __s32 val)
        int err;
        u8 i2c_data;
        struct sd *sd = (struct sd *) gspca_dev;
+       s32 *sensor_settings = sd->sensor_priv;
 
-       PDEBUG(D_V4L2, "Set red gain to %d",
-                            val & 0xff);
+       PDEBUG(D_V4L2, "Set red gain to %d", val);
+
+       sensor_settings[RED_BALANCE_IDX] = val;
 
        i2c_data = val & 0xff;
        err = m5602_write_sensor(sd, OV9650_RED, &i2c_data, 1);
-
        return err;
 }
 
 int ov9650_get_blue_balance(struct gspca_dev *gspca_dev, __s32 *val)
 {
-       int err;
-       u8 i2c_data;
        struct sd *sd = (struct sd *) gspca_dev;
+       s32 *sensor_settings = sd->sensor_priv;
 
-       err = m5602_read_sensor(sd, OV9650_BLUE, &i2c_data, 1);
-       *val = i2c_data;
-
+       *val = sensor_settings[BLUE_BALANCE_IDX];
        PDEBUG(D_V4L2, "Read blue gain %d", *val);
 
-       return err;
+       return 0;
 }
 
 int ov9650_set_blue_balance(struct gspca_dev *gspca_dev, __s32 val)
@@ -355,30 +615,25 @@ int ov9650_set_blue_balance(struct gspca_dev *gspca_dev, __s32 val)
        int err;
        u8 i2c_data;
        struct sd *sd = (struct sd *) gspca_dev;
+       s32 *sensor_settings = sd->sensor_priv;
+
+       PDEBUG(D_V4L2, "Set blue gain to %d", val);
 
-       PDEBUG(D_V4L2, "Set blue gain to %d",
-              val & 0xff);
+       sensor_settings[BLUE_BALANCE_IDX] = val;
 
        i2c_data = val & 0xff;
        err = m5602_write_sensor(sd, OV9650_BLUE, &i2c_data, 1);
-
        return err;
 }
 
 int ov9650_get_hflip(struct gspca_dev *gspca_dev, __s32 *val)
 {
-       int err;
-       u8 i2c_data;
        struct sd *sd = (struct sd *) gspca_dev;
+       s32 *sensor_settings = sd->sensor_priv;
 
-       err = m5602_read_sensor(sd, OV9650_MVFP, &i2c_data, 1);
-       if (dmi_check_system(ov9650_flip_dmi_table))
-               *val = ((i2c_data & OV9650_HFLIP) >> 5) ? 0 : 1;
-       else
-               *val = (i2c_data & OV9650_HFLIP) >> 5;
+       *val = sensor_settings[HFLIP_IDX];
        PDEBUG(D_V4L2, "Read horizontal flip %d", *val);
-
-       return err;
+       return 0;
 }
 
 int ov9650_set_hflip(struct gspca_dev *gspca_dev, __s32 val)
@@ -386,38 +641,26 @@ int ov9650_set_hflip(struct gspca_dev *gspca_dev, __s32 val)
        int err;
        u8 i2c_data;
        struct sd *sd = (struct sd *) gspca_dev;
+       s32 *sensor_settings = sd->sensor_priv;
 
        PDEBUG(D_V4L2, "Set horizontal flip to %d", val);
-       err = m5602_read_sensor(sd, OV9650_MVFP, &i2c_data, 1);
-       if (err < 0)
-               goto out;
-
-       if (dmi_check_system(ov9650_flip_dmi_table))
-               i2c_data = ((i2c_data & 0xdf) |
-                          (((val ? 0 : 1) & 0x01) << 5));
-       else
-               i2c_data = ((i2c_data & 0xdf) |
-                          ((val & 0x01) << 5));
 
+       sensor_settings[HFLIP_IDX] = val;
+       i2c_data = ((val & 0x01) << 5) | (sensor_settings[VFLIP_IDX] << 4);
        err = m5602_write_sensor(sd, OV9650_MVFP, &i2c_data, 1);
-out:
+
        return err;
 }
 
 int ov9650_get_vflip(struct gspca_dev *gspca_dev, __s32 *val)
 {
-       int err;
-       u8 i2c_data;
        struct sd *sd = (struct sd *) gspca_dev;
+       s32 *sensor_settings = sd->sensor_priv;
 
-       err = m5602_read_sensor(sd, OV9650_MVFP, &i2c_data, 1);
-       if (dmi_check_system(ov9650_flip_dmi_table))
-               *val = ((i2c_data & 0x10) >> 4) ? 0 : 1;
-       else
-               *val = (i2c_data & 0x10) >> 4;
+       *val = sensor_settings[VFLIP_IDX];
        PDEBUG(D_V4L2, "Read vertical flip %d", *val);
 
-       return err;
+       return 0;
 }
 
 int ov9650_set_vflip(struct gspca_dev *gspca_dev, __s32 val)
@@ -425,40 +668,32 @@ int ov9650_set_vflip(struct gspca_dev *gspca_dev, __s32 val)
        int err;
        u8 i2c_data;
        struct sd *sd = (struct sd *) gspca_dev;
+       s32 *sensor_settings = sd->sensor_priv;
 
        PDEBUG(D_V4L2, "Set vertical flip to %d", val);
-       err = m5602_read_sensor(sd, OV9650_MVFP, &i2c_data, 1);
+       sensor_settings[VFLIP_IDX] = val;
+
+       i2c_data = ((val & 0x01) << 4) | (sensor_settings[VFLIP_IDX] << 5);
+       err = m5602_write_sensor(sd, OV9650_MVFP, &i2c_data, 1);
        if (err < 0)
-               goto out;
+               return err;
 
-       if (dmi_check_system(ov9650_flip_dmi_table))
-               i2c_data = ((i2c_data & 0xef) |
-                               (((val ? 0 : 1) & 0x01) << 4));
-       else
-               i2c_data = ((i2c_data & 0xef) |
-                               ((val & 0x01) << 4));
+       /* When vflip is toggled we need to readjust the bridge hsync/vsync */
+       if (gspca_dev->streaming)
+               err = ov9650_start(sd);
 
-       err = m5602_write_sensor(sd, OV9650_MVFP, &i2c_data, 1);
-out:
        return err;
 }
 
 int ov9650_get_brightness(struct gspca_dev *gspca_dev, __s32 *val)
 {
-       int err;
-       u8 i2c_data;
        struct sd *sd = (struct sd *) gspca_dev;
+       s32 *sensor_settings = sd->sensor_priv;
 
-       err = m5602_read_sensor(sd, OV9650_VREF, &i2c_data, 1);
-       if (err < 0)
-               goto out;
-       *val = (i2c_data & 0x03) << 8;
-
-       err = m5602_read_sensor(sd, OV9650_GAIN, &i2c_data, 1);
-       *val |= i2c_data;
+       *val = sensor_settings[GAIN_IDX];
        PDEBUG(D_V4L2, "Read gain %d", *val);
-out:
-       return err;
+
+       return 0;
 }
 
 int ov9650_set_brightness(struct gspca_dev *gspca_dev, __s32 val)
@@ -466,40 +701,38 @@ int ov9650_set_brightness(struct gspca_dev *gspca_dev, __s32 val)
        int err;
        u8 i2c_data;
        struct sd *sd = (struct sd *) gspca_dev;
+       s32 *sensor_settings = sd->sensor_priv;
 
-       PDEBUG(D_V4L2, "Set gain to %d", val & 0x3ff);
+       PDEBUG(D_V4L2, "Set gain to %d", val);
+
+       sensor_settings[GAIN_IDX] = val;
 
        /* Read the OV9650_VREF register first to avoid
                corrupting the VREF high and low bits */
        err = m5602_read_sensor(sd, OV9650_VREF, &i2c_data, 1);
        if (err < 0)
-               goto out;
+               return err;
 
        /* Mask away all uninteresting bits */
        i2c_data = ((val & 0x0300) >> 2) | (i2c_data & 0x3F);
        err = m5602_write_sensor(sd, OV9650_VREF, &i2c_data, 1);
        if (err < 0)
-               goto out;
+               return err;
 
        /* The 8 LSBs */
        i2c_data = val & 0xff;
        err = m5602_write_sensor(sd, OV9650_GAIN, &i2c_data, 1);
 
-out:
        return err;
 }
 
 int ov9650_get_auto_white_balance(struct gspca_dev *gspca_dev, __s32 *val)
 {
-       int err;
-       u8 i2c_data;
        struct sd *sd = (struct sd *) gspca_dev;
+       s32 *sensor_settings = sd->sensor_priv;
 
-       err = m5602_read_sensor(sd, OV9650_COM8, &i2c_data, 1);
-       *val = (i2c_data & OV9650_AWB_EN) >> 1;
-       PDEBUG(D_V4L2, "Read auto white balance %d", *val);
-
-       return err;
+       *val = sensor_settings[AUTO_WHITE_BALANCE_IDX];
+       return 0;
 }
 
 int ov9650_set_auto_white_balance(struct gspca_dev *gspca_dev, __s32 val)
@@ -507,29 +740,29 @@ int ov9650_set_auto_white_balance(struct gspca_dev *gspca_dev, __s32 val)
        int err;
        u8 i2c_data;
        struct sd *sd = (struct sd *) gspca_dev;
+       s32 *sensor_settings = sd->sensor_priv;
 
        PDEBUG(D_V4L2, "Set auto white balance to %d", val);
+
+       sensor_settings[AUTO_WHITE_BALANCE_IDX] = val;
        err = m5602_read_sensor(sd, OV9650_COM8, &i2c_data, 1);
        if (err < 0)
-               goto out;
+               return err;
 
        i2c_data = ((i2c_data & 0xfd) | ((val & 0x01) << 1));
        err = m5602_write_sensor(sd, OV9650_COM8, &i2c_data, 1);
-out:
+
        return err;
 }
 
 int ov9650_get_auto_gain(struct gspca_dev *gspca_dev, __s32 *val)
 {
-       int err;
-       u8 i2c_data;
        struct sd *sd = (struct sd *) gspca_dev;
+       s32 *sensor_settings = sd->sensor_priv;
 
-       err = m5602_read_sensor(sd, OV9650_COM8, &i2c_data, 1);
-       *val = (i2c_data & OV9650_AGC_EN) >> 2;
+       *val = sensor_settings[AUTO_GAIN_CTRL_IDX];
        PDEBUG(D_V4L2, "Read auto gain control %d", *val);
-
-       return err;
+       return 0;
 }
 
 int ov9650_set_auto_gain(struct gspca_dev *gspca_dev, __s32 val)
@@ -537,15 +770,18 @@ int ov9650_set_auto_gain(struct gspca_dev *gspca_dev, __s32 val)
        int err;
        u8 i2c_data;
        struct sd *sd = (struct sd *) gspca_dev;
+       s32 *sensor_settings = sd->sensor_priv;
 
        PDEBUG(D_V4L2, "Set auto gain control to %d", val);
+
+       sensor_settings[AUTO_GAIN_CTRL_IDX] = val;
        err = m5602_read_sensor(sd, OV9650_COM8, &i2c_data, 1);
        if (err < 0)
-               goto out;
+               return err;
 
        i2c_data = ((i2c_data & 0xfb) | ((val & 0x01) << 2));
        err = m5602_write_sensor(sd, OV9650_COM8, &i2c_data, 1);
-out:
+
        return err;
 }
 
index f4b33b8..fcc54e4 100644 (file)
@@ -32,6 +32,7 @@
 #define OV9650_BAVE                    0x05
 #define OV9650_GEAVE                   0x06
 #define OV9650_RSVD7                   0x07
+#define OV9650_COM2                    0x09
 #define OV9650_PID                     0x0a
 #define OV9650_VER                     0x0b
 #define OV9650_COM3                    0x0c
@@ -96,6 +97,7 @@
 #define OV9650_VGA_SELECT              (1 << 6)
 #define OV9650_CIF_SELECT              (1 << 5)
 #define OV9650_QVGA_SELECT             (1 << 4)
+#define OV9650_QCIF_SELECT             (1 << 3)
 #define OV9650_RGB_SELECT              (1 << 2)
 #define OV9650_RAW_RGB_SELECT          (1 << 0)
 
 #define OV9650_VFLIP                   (1 << 4)
 #define OV9650_HFLIP                   (1 << 5)
 
+#define OV9650_SOFT_SLEEP              (1 << 4)
+#define OV9650_OUTPUT_DRIVE_2X         (1 << 0)
+
+#define OV9650_LEFT_OFFSET             0x62
+
 #define GAIN_DEFAULT                   0x14
 #define RED_GAIN_DEFAULT               0x70
 #define BLUE_GAIN_DEFAULT              0x20
-#define EXPOSURE_DEFAULT               0x5003
+#define EXPOSURE_DEFAULT               0x1ff
 
 /*****************************************************************************/
 
@@ -129,7 +136,9 @@ extern int dump_sensor;
 int ov9650_probe(struct sd *sd);
 int ov9650_init(struct sd *sd);
 int ov9650_start(struct sd *sd);
+int ov9650_stop(struct sd *sd);
 int ov9650_power_down(struct sd *sd);
+void ov9650_disconnect(struct sd *sd);
 
 int ov9650_set_exposure(struct gspca_dev *gspca_dev, __s32 val);
 int ov9650_get_exposure(struct gspca_dev *gspca_dev, __s32 *val);
@@ -150,152 +159,16 @@ int ov9650_set_auto_white_balance(struct gspca_dev *gspca_dev, __s32 val);
 int ov9650_get_auto_gain(struct gspca_dev *gspca_dev, __s32 *val);
 int ov9650_set_auto_gain(struct gspca_dev *gspca_dev, __s32 val);
 
-static struct m5602_sensor ov9650 = {
+const static struct m5602_sensor ov9650 = {
        .name = "OV9650",
        .i2c_slave_id = 0x60,
        .i2c_regW = 1,
        .probe = ov9650_probe,
        .init = ov9650_init,
        .start = ov9650_start,
+       .stop = ov9650_stop,
        .power_down = ov9650_power_down,
-
-       .nctrls = 8,
-       .ctrls = {
-       {
-               {
-                       .id             = V4L2_CID_EXPOSURE,
-                       .type           = V4L2_CTRL_TYPE_INTEGER,
-                       .name           = "exposure",
-                       .minimum        = 0x00,
-                       .maximum        = 0xffff,
-                       .step           = 0x1,
-                       .default_value  = EXPOSURE_DEFAULT,
-                       .flags          = V4L2_CTRL_FLAG_SLIDER
-               },
-               .set = ov9650_set_exposure,
-               .get = ov9650_get_exposure
-       }, {
-               {
-                       .id             = V4L2_CID_GAIN,
-                       .type           = V4L2_CTRL_TYPE_INTEGER,
-                       .name           = "gain",
-                       .minimum        = 0x00,
-                       .maximum        = 0x3ff,
-                       .step           = 0x1,
-                       .default_value  = GAIN_DEFAULT,
-                       .flags          = V4L2_CTRL_FLAG_SLIDER
-               },
-               .set = ov9650_set_gain,
-               .get = ov9650_get_gain
-       }, {
-               {
-                       .type           = V4L2_CTRL_TYPE_INTEGER,
-                       .name           = "red balance",
-                       .minimum        = 0x00,
-                       .maximum        = 0xff,
-                       .step           = 0x1,
-                       .default_value  = RED_GAIN_DEFAULT,
-                       .flags          = V4L2_CTRL_FLAG_SLIDER
-               },
-               .set = ov9650_set_red_balance,
-               .get = ov9650_get_red_balance
-       }, {
-               {
-                       .type           = V4L2_CTRL_TYPE_INTEGER,
-                       .name           = "blue balance",
-                       .minimum        = 0x00,
-                       .maximum        = 0xff,
-                       .step           = 0x1,
-                       .default_value  = BLUE_GAIN_DEFAULT,
-                       .flags          = V4L2_CTRL_FLAG_SLIDER
-               },
-               .set = ov9650_set_blue_balance,
-               .get = ov9650_get_blue_balance
-       }, {
-               {
-                       .id             = V4L2_CID_HFLIP,
-                       .type           = V4L2_CTRL_TYPE_BOOLEAN,
-                       .name           = "horizontal flip",
-                       .minimum        = 0,
-                       .maximum        = 1,
-                       .step           = 1,
-                       .default_value  = 0
-               },
-               .set = ov9650_set_hflip,
-               .get = ov9650_get_hflip
-       }, {
-               {
-                       .id             = V4L2_CID_VFLIP,
-                       .type           = V4L2_CTRL_TYPE_BOOLEAN,
-                       .name           = "vertical flip",
-                       .minimum        = 0,
-                       .maximum        = 1,
-                       .step           = 1,
-                       .default_value  = 0
-               },
-               .set = ov9650_set_vflip,
-               .get = ov9650_get_vflip
-       }, {
-               {
-                       .id             = V4L2_CID_AUTO_WHITE_BALANCE,
-                       .type           = V4L2_CTRL_TYPE_BOOLEAN,
-                       .name           = "auto white balance",
-                       .minimum        = 0,
-                       .maximum        = 1,
-                       .step           = 1,
-                       .default_value  = 0
-               },
-               .set = ov9650_set_auto_white_balance,
-               .get = ov9650_get_auto_white_balance
-       }, {
-               {
-                       .id             = V4L2_CID_AUTOGAIN,
-                       .type           = V4L2_CTRL_TYPE_BOOLEAN,
-                       .name           = "auto gain control",
-                       .minimum        = 0,
-                       .maximum        = 1,
-                       .step           = 1,
-                       .default_value  = 0
-               },
-               .set = ov9650_set_auto_gain,
-               .get = ov9650_get_auto_gain
-       }
-       },
-
-       .nmodes = 3,
-       .modes = {
-       {
-               320,
-               240,
-               V4L2_PIX_FMT_SBGGR8,
-               V4L2_FIELD_NONE,
-               .sizeimage =
-                       320 * 240,
-               .bytesperline = 320,
-               .colorspace = V4L2_COLORSPACE_SRGB,
-               .priv = 0
-       }, {
-               352,
-               288,
-               V4L2_PIX_FMT_SBGGR8,
-               V4L2_FIELD_NONE,
-               .sizeimage =
-                       352 * 288,
-               .bytesperline = 352,
-               .colorspace = V4L2_COLORSPACE_SRGB,
-               .priv = 0
-       }, {
-               640,
-               480,
-               V4L2_PIX_FMT_SBGGR8,
-               V4L2_FIELD_NONE,
-               .sizeimage =
-                       640 * 480,
-               .bytesperline = 640,
-               .colorspace = V4L2_COLORSPACE_SRGB,
-               .priv = 0
-       }
-       }
+       .disconnect = ov9650_disconnect,
 };
 
 static const unsigned char preinit_ov9650[][3] =
@@ -345,6 +218,10 @@ static const unsigned char init_ov9650[][3] =
 
        /* Reset chip */
        {SENSOR, OV9650_COM7, OV9650_REGISTER_RESET},
+       /* One extra reset is needed in order to make the sensor behave
+          properly when resuming from ram */
+       {SENSOR, OV9650_COM7, OV9650_REGISTER_RESET},
+
        /* Enable double clock */
        {SENSOR, OV9650_CLKRC, 0x80},
        /* Do something out of spec with the power */
@@ -427,18 +304,12 @@ static const unsigned char init_ov9650[][3] =
        /* Enable denoise, and white-pixel erase */
        {SENSOR, OV9650_COM22, 0x23},
 
-       /* Set the high bits of the exposure value */
-       {SENSOR, OV9650_AECH, ((EXPOSURE_DEFAULT & 0xff00) >> 8)},
-
        /* Enable VARIOPIXEL */
        {SENSOR, OV9650_COM3, OV9650_VARIOPIXEL},
        {SENSOR, OV9650_COM4, OV9650_QVGA_VARIOPIXEL},
 
-       /* Set the low bits of the exposure value */
-       {SENSOR, OV9650_COM1, (EXPOSURE_DEFAULT & 0xff)},
-       {SENSOR, OV9650_GAIN, GAIN_DEFAULT},
-       {SENSOR, OV9650_BLUE, BLUE_GAIN_DEFAULT},
-       {SENSOR, OV9650_RED, RED_GAIN_DEFAULT},
+       /* Put the sensor in soft sleep mode */
+       {SENSOR, OV9650_COM2, OV9650_SOFT_SLEEP | OV9650_OUTPUT_DRIVE_2X},
 };
 
 static const unsigned char power_down_ov9650[][3] =
@@ -461,73 +332,15 @@ static const unsigned char power_down_ov9650[][3] =
        {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0},
 };
 
-static const unsigned char res_init_ov9650[][2] =
-{
-       {M5602_XB_LINE_OF_FRAME_H, 0x82},
-       {M5602_XB_LINE_OF_FRAME_L, 0x00},
-       {M5602_XB_PIX_OF_LINE_H, 0x82},
-       {M5602_XB_PIX_OF_LINE_L, 0x00},
-       {M5602_XB_SIG_INI, 0x01}
-};
-
-static const unsigned char VGA_ov9650[][3] =
+static const unsigned char res_init_ov9650[][3] =
 {
-       /* Moves the view window in a vertical orientation */
-       {BRIDGE, M5602_XB_VSYNC_PARA, 0x00},
-       {BRIDGE, M5602_XB_VSYNC_PARA, 0x09},
-       {BRIDGE, M5602_XB_VSYNC_PARA, 0x00},
-       {BRIDGE, M5602_XB_VSYNC_PARA, 0x01},
-       {BRIDGE, M5602_XB_VSYNC_PARA, 0xe0}, /* 480 */
-       {BRIDGE, M5602_XB_VSYNC_PARA, 0x00},
-       {BRIDGE, M5602_XB_VSYNC_PARA, 0x00},
-       {BRIDGE, M5602_XB_HSYNC_PARA, 0x00},
-       {BRIDGE, M5602_XB_HSYNC_PARA, 0x62}, /* 98 */
-       {BRIDGE, M5602_XB_HSYNC_PARA, 0x02}, /* 640 + 98 */
-       {BRIDGE, M5602_XB_HSYNC_PARA, 0xe2},
-
-       {SENSOR, OV9650_COM7, OV9650_VGA_SELECT |
-                             OV9650_RGB_SELECT |
-                             OV9650_RAW_RGB_SELECT},
-};
+       {SENSOR, OV9650_COM2, OV9650_OUTPUT_DRIVE_2X},
 
-static const unsigned char CIF_ov9650[][3] =
-{
-       /* Moves the view window in a vertical orientation */
-       {BRIDGE, M5602_XB_VSYNC_PARA, 0x00},
-       {BRIDGE, M5602_XB_VSYNC_PARA, 0x09},
-       {BRIDGE, M5602_XB_VSYNC_PARA, 0x00},
-       {BRIDGE, M5602_XB_VSYNC_PARA, 0x01},
-       {BRIDGE, M5602_XB_VSYNC_PARA, 0x20}, /* 288 */
-       {BRIDGE, M5602_XB_VSYNC_PARA, 0x00},
-       {BRIDGE, M5602_XB_VSYNC_PARA, 0x00},
-       {BRIDGE, M5602_XB_HSYNC_PARA, 0x00},
-       {BRIDGE, M5602_XB_HSYNC_PARA, 0x62}, /* 98 */
-       {BRIDGE, M5602_XB_HSYNC_PARA, 0x01}, /* 352 + 98 */
-       {BRIDGE, M5602_XB_HSYNC_PARA, 0xc2},
-
-       {SENSOR, OV9650_COM7, OV9650_CIF_SELECT |
-                             OV9650_RGB_SELECT |
-                             OV9650_RAW_RGB_SELECT},
-};
-
-static const unsigned char QVGA_ov9650[][3] =
-{
-       /* Moves the view window in a vertical orientation */
-       {BRIDGE, M5602_XB_VSYNC_PARA, 0x00},
-       {BRIDGE, M5602_XB_VSYNC_PARA, 0x08},
-       {BRIDGE, M5602_XB_VSYNC_PARA, 0x00},
-       {BRIDGE, M5602_XB_VSYNC_PARA, 0x00},
-       {BRIDGE, M5602_XB_VSYNC_PARA, 0xf0}, /* 240 */
-       {BRIDGE, M5602_XB_VSYNC_PARA, 0x00},
-       {BRIDGE, M5602_XB_VSYNC_PARA, 0x00},
-       {BRIDGE, M5602_XB_HSYNC_PARA, 0x00},
-       {BRIDGE, M5602_XB_HSYNC_PARA, 0x31}, /* 50 */
-       {BRIDGE, M5602_XB_HSYNC_PARA, 0x01}, /* 320 + 50 */
-       {BRIDGE, M5602_XB_HSYNC_PARA, 0x71},
-
-       {SENSOR, OV9650_COM7, OV9650_QVGA_SELECT |
-                             OV9650_RGB_SELECT |
-                             OV9650_RAW_RGB_SELECT},
+       {BRIDGE, M5602_XB_LINE_OF_FRAME_H, 0x82},
+       {BRIDGE, M5602_XB_LINE_OF_FRAME_L, 0x00},
+       {BRIDGE, M5602_XB_PIX_OF_LINE_H, 0x82},
+       {BRIDGE, M5602_XB_PIX_OF_LINE_L, 0x00},
+       {BRIDGE, M5602_XB_SIG_INI, 0x01}
 };
 
 #endif
index 2e7fb91..eaddf48 100644 (file)
 
 #include "m5602_po1030.h"
 
+static struct v4l2_pix_format po1030_modes[] = {
+       {
+               640,
+               480,
+               V4L2_PIX_FMT_SBGGR8,
+               V4L2_FIELD_NONE,
+               .sizeimage = 640 * 480,
+               .bytesperline = 640,
+               .colorspace = V4L2_COLORSPACE_SRGB,
+               .priv = 0
+       }
+};
+
+const static struct ctrl po1030_ctrls[] = {
+       {
+               {
+                       .id             = V4L2_CID_GAIN,
+                       .type           = V4L2_CTRL_TYPE_INTEGER,
+                       .name           = "gain",
+                       .minimum        = 0x00,
+                       .maximum        = 0x4f,
+                       .step           = 0x1,
+                       .default_value  = PO1030_GLOBAL_GAIN_DEFAULT,
+                       .flags          = V4L2_CTRL_FLAG_SLIDER
+               },
+               .set = po1030_set_gain,
+               .get = po1030_get_gain
+       }, {
+               {
+                       .id             = V4L2_CID_EXPOSURE,
+                       .type           = V4L2_CTRL_TYPE_INTEGER,
+                       .name           = "exposure",
+                       .minimum        = 0x00,
+                       .maximum        = 0x02ff,
+                       .step           = 0x1,
+                       .default_value  = PO1030_EXPOSURE_DEFAULT,
+                       .flags          = V4L2_CTRL_FLAG_SLIDER
+               },
+               .set = po1030_set_exposure,
+               .get = po1030_get_exposure
+       }, {
+               {
+                       .id             = V4L2_CID_RED_BALANCE,
+                       .type           = V4L2_CTRL_TYPE_INTEGER,
+                       .name           = "red balance",
+                       .minimum        = 0x00,
+                       .maximum        = 0xff,
+                       .step           = 0x1,
+                       .default_value  = PO1030_RED_GAIN_DEFAULT,
+                       .flags          = V4L2_CTRL_FLAG_SLIDER
+               },
+               .set = po1030_set_red_balance,
+               .get = po1030_get_red_balance
+       }, {
+               {
+                       .id             = V4L2_CID_BLUE_BALANCE,
+                       .type           = V4L2_CTRL_TYPE_INTEGER,
+                       .name           = "blue balance",
+                       .minimum        = 0x00,
+                       .maximum        = 0xff,
+                       .step           = 0x1,
+                       .default_value  = PO1030_BLUE_GAIN_DEFAULT,
+                       .flags          = V4L2_CTRL_FLAG_SLIDER
+               },
+               .set = po1030_set_blue_balance,
+               .get = po1030_get_blue_balance
+       }, {
+               {
+                       .id             = V4L2_CID_HFLIP,
+                       .type           = V4L2_CTRL_TYPE_BOOLEAN,
+                       .name           = "horizontal flip",
+                       .minimum        = 0,
+                       .maximum        = 1,
+                       .step           = 1,
+                       .default_value  = 0,
+               },
+               .set = po1030_set_hflip,
+               .get = po1030_get_hflip
+       }, {
+               {
+                       .id             = V4L2_CID_VFLIP,
+                       .type           = V4L2_CTRL_TYPE_BOOLEAN,
+                       .name           = "vertical flip",
+                       .minimum        = 0,
+                       .maximum        = 1,
+                       .step           = 1,
+                       .default_value  = 0,
+               },
+               .set = po1030_set_vflip,
+               .get = po1030_get_vflip
+       }
+};
+
 static void po1030_dump_registers(struct sd *sd);
 
 int po1030_probe(struct sd *sd)
@@ -59,10 +152,10 @@ int po1030_probe(struct sd *sd)
        return -ENODEV;
 
 sensor_found:
-       sd->gspca_dev.cam.cam_mode = po1030.modes;
-       sd->gspca_dev.cam.nmodes = po1030.nmodes;
-       sd->desc->ctrls = po1030.ctrls;
-       sd->desc->nctrls = po1030.nctrls;
+       sd->gspca_dev.cam.cam_mode = po1030_modes;
+       sd->gspca_dev.cam.nmodes = ARRAY_SIZE(po1030_modes);
+       sd->desc->ctrls = po1030_ctrls;
+       sd->desc->nctrls = ARRAY_SIZE(po1030_ctrls);
        return 0;
 }
 
@@ -108,7 +201,7 @@ int po1030_get_exposure(struct gspca_dev *gspca_dev, __s32 *val)
        err = m5602_read_sensor(sd, PO1030_REG_INTEGLINES_H,
                                 &i2c_data, 1);
        if (err < 0)
-               goto out;
+               return err;
        *val = (i2c_data << 8);
 
        err = m5602_read_sensor(sd, PO1030_REG_INTEGLINES_M,
@@ -116,7 +209,7 @@ int po1030_get_exposure(struct gspca_dev *gspca_dev, __s32 *val)
        *val |= i2c_data;
 
        PDEBUG(D_V4L2, "Exposure read as %d", *val);
-out:
+
        return err;
 }
 
@@ -135,7 +228,7 @@ int po1030_set_exposure(struct gspca_dev *gspca_dev, __s32 val)
        err = m5602_write_sensor(sd, PO1030_REG_INTEGLINES_H,
                                  &i2c_data, 1);
        if (err < 0)
-               goto out;
+               return err;
 
        i2c_data = (val & 0xff);
        PDEBUG(D_V4L2, "Set exposure to low byte to 0x%x",
@@ -143,7 +236,6 @@ int po1030_set_exposure(struct gspca_dev *gspca_dev, __s32 val)
        err = m5602_write_sensor(sd, PO1030_REG_INTEGLINES_M,
                                  &i2c_data, 1);
 
-out:
        return err;
 }
 
@@ -186,14 +278,13 @@ int po1030_set_hflip(struct gspca_dev *gspca_dev, __s32 val)
        PDEBUG(D_V4L2, "Set hflip %d", val);
        err = m5602_read_sensor(sd, PO1030_REG_CONTROL2, &i2c_data, 1);
        if (err < 0)
-               goto out;
+               return err;
 
        i2c_data = (0x7f & i2c_data) | ((val & 0x01) << 7);
 
        err = m5602_write_sensor(sd, PO1030_REG_CONTROL2,
                                 &i2c_data, 1);
 
-out:
        return err;
 }
 
@@ -222,14 +313,13 @@ int po1030_set_vflip(struct gspca_dev *gspca_dev, __s32 val)
        PDEBUG(D_V4L2, "Set vflip %d", val);
        err = m5602_read_sensor(sd, PO1030_REG_CONTROL2, &i2c_data, 1);
        if (err < 0)
-               goto out;
+               return err;
 
        i2c_data = (i2c_data & 0xbf) | ((val & 0x01) << 6);
 
        err = m5602_write_sensor(sd, PO1030_REG_CONTROL2,
                                 &i2c_data, 1);
 
-out:
        return err;
 }
 
index def39d5..c10b123 100644 (file)
@@ -141,7 +141,7 @@ int po1030_set_hflip(struct gspca_dev *gspca_dev, __s32 val);
 int po1030_get_vflip(struct gspca_dev *gspca_dev, __s32 *val);
 int po1030_set_vflip(struct gspca_dev *gspca_dev, __s32 val);
 
-static struct m5602_sensor po1030 = {
+static const struct m5602_sensor po1030 = {
        .name = "PO1030",
 
        .i2c_slave_id = 0xdc,
@@ -150,102 +150,6 @@ static struct m5602_sensor po1030 = {
        .probe = po1030_probe,
        .init = po1030_init,
        .power_down = po1030_power_down,
-
-       .nctrls = 6,
-       .ctrls = {
-       {
-               {
-                       .id             = V4L2_CID_GAIN,
-                       .type           = V4L2_CTRL_TYPE_INTEGER,
-                       .name           = "gain",
-                       .minimum        = 0x00,
-                       .maximum        = 0x4f,
-                       .step           = 0x1,
-                       .default_value  = PO1030_GLOBAL_GAIN_DEFAULT,
-                       .flags          = V4L2_CTRL_FLAG_SLIDER
-               },
-               .set = po1030_set_gain,
-               .get = po1030_get_gain
-       }, {
-               {
-                       .id             = V4L2_CID_EXPOSURE,
-                       .type           = V4L2_CTRL_TYPE_INTEGER,
-                       .name           = "exposure",
-                       .minimum        = 0x00,
-                       .maximum        = 0x02ff,
-                       .step           = 0x1,
-                       .default_value  = PO1030_EXPOSURE_DEFAULT,
-                       .flags          = V4L2_CTRL_FLAG_SLIDER
-               },
-               .set = po1030_set_exposure,
-               .get = po1030_get_exposure
-       }, {
-               {
-                       .id             = V4L2_CID_RED_BALANCE,
-                       .type           = V4L2_CTRL_TYPE_INTEGER,
-                       .name           = "red balance",
-                       .minimum        = 0x00,
-                       .maximum        = 0xff,
-                       .step           = 0x1,
-                       .default_value  = PO1030_RED_GAIN_DEFAULT,
-                       .flags          = V4L2_CTRL_FLAG_SLIDER
-               },
-               .set = po1030_set_red_balance,
-               .get = po1030_get_red_balance
-       }, {
-               {
-                       .id             = V4L2_CID_BLUE_BALANCE,
-                       .type           = V4L2_CTRL_TYPE_INTEGER,
-                       .name           = "blue balance",
-                       .minimum        = 0x00,
-                       .maximum        = 0xff,
-                       .step           = 0x1,
-                       .default_value  = PO1030_BLUE_GAIN_DEFAULT,
-                       .flags          = V4L2_CTRL_FLAG_SLIDER
-               },
-               .set = po1030_set_blue_balance,
-               .get = po1030_get_blue_balance
-       }, {
-               {
-                       .id             = V4L2_CID_HFLIP,
-                       .type           = V4L2_CTRL_TYPE_BOOLEAN,
-                       .name           = "horizontal flip",
-                       .minimum        = 0,
-                       .maximum        = 1,
-                       .step           = 1,
-                       .default_value  = 0,
-               },
-               .set = po1030_set_hflip,
-               .get = po1030_get_hflip
-       }, {
-               {
-                       .id             = V4L2_CID_VFLIP,
-                       .type           = V4L2_CTRL_TYPE_BOOLEAN,
-                       .name           = "vertical flip",
-                       .minimum        = 0,
-                       .maximum        = 1,
-                       .step           = 1,
-                       .default_value  = 0,
-               },
-               .set = po1030_set_vflip,
-               .get = po1030_get_vflip
-       }
-       },
-
-       .nmodes = 1,
-       .modes = {
-       {
-               M5602_DEFAULT_FRAME_WIDTH,
-               M5602_DEFAULT_FRAME_HEIGHT,
-               V4L2_PIX_FMT_SBGGR8,
-               V4L2_FIELD_NONE,
-               .sizeimage =
-                       M5602_DEFAULT_FRAME_WIDTH * M5602_DEFAULT_FRAME_HEIGHT,
-               .bytesperline = M5602_DEFAULT_FRAME_WIDTH,
-               .colorspace = V4L2_COLORSPACE_SRGB,
-               .priv = 1
-       }
-       }
 };
 
 static const unsigned char preinit_po1030[][3] =
index 48892b5..4306d59 100644 (file)
@@ -50,6 +50,76 @@ static
        { }
 };
 
+static struct v4l2_pix_format s5k4aa_modes[] = {
+       {
+               640,
+               480,
+               V4L2_PIX_FMT_SBGGR8,
+               V4L2_FIELD_NONE,
+               .sizeimage =
+                       640 * 480,
+               .bytesperline = 640,
+               .colorspace = V4L2_COLORSPACE_SRGB,
+               .priv = 0
+       }
+};
+
+const static struct ctrl s5k4aa_ctrls[] = {
+       {
+               {
+                       .id             = V4L2_CID_VFLIP,
+                       .type           = V4L2_CTRL_TYPE_BOOLEAN,
+                       .name           = "vertical flip",
+                       .minimum        = 0,
+                       .maximum        = 1,
+                       .step           = 1,
+                       .default_value  = 0
+               },
+               .set = s5k4aa_set_vflip,
+               .get = s5k4aa_get_vflip
+
+       }, {
+               {
+                       .id             = V4L2_CID_HFLIP,
+                       .type           = V4L2_CTRL_TYPE_BOOLEAN,
+                       .name           = "horizontal flip",
+                       .minimum        = 0,
+                       .maximum        = 1,
+                       .step           = 1,
+                       .default_value  = 0
+               },
+               .set = s5k4aa_set_hflip,
+               .get = s5k4aa_get_hflip
+
+       }, {
+               {
+                       .id             = V4L2_CID_GAIN,
+                       .type           = V4L2_CTRL_TYPE_INTEGER,
+                       .name           = "Gain",
+                       .minimum        = 0,
+                       .maximum        = 127,
+                       .step           = 1,
+                       .default_value  = 0xa0,
+                       .flags          = V4L2_CTRL_FLAG_SLIDER
+               },
+               .set = s5k4aa_set_gain,
+               .get = s5k4aa_get_gain
+       }, {
+               {
+                       .id             = V4L2_CID_EXPOSURE,
+                       .type           = V4L2_CTRL_TYPE_INTEGER,
+                       .name           = "Exposure",
+                       .minimum        = 13,
+                       .maximum        = 0xfff,
+                       .step           = 1,
+                       .default_value  = 0x100,
+                       .flags          = V4L2_CTRL_FLAG_SLIDER
+               },
+               .set = s5k4aa_set_exposure,
+               .get = s5k4aa_get_exposure
+       }
+};
+
 static void s5k4aa_dump_registers(struct sd *sd);
 
 int s5k4aa_probe(struct sd *sd)
@@ -115,14 +185,56 @@ int s5k4aa_probe(struct sd *sd)
                info("Detected a s5k4aa sensor");
 
 sensor_found:
-       sd->gspca_dev.cam.cam_mode = s5k4aa.modes;
-       sd->gspca_dev.cam.nmodes = s5k4aa.nmodes;
-       sd->desc->ctrls = s5k4aa.ctrls;
-       sd->desc->nctrls = s5k4aa.nctrls;
-
+       sd->gspca_dev.cam.cam_mode = s5k4aa_modes;
+       sd->gspca_dev.cam.nmodes = ARRAY_SIZE(s5k4aa_modes);
+       sd->desc->ctrls = s5k4aa_ctrls;
+       sd->desc->nctrls = ARRAY_SIZE(s5k4aa_ctrls);
        return 0;
 }
 
+int s5k4aa_start(struct sd *sd)
+{
+       int i, err = 0;
+       u8 data[2];
+       struct cam *cam = &sd->gspca_dev.cam;
+
+       switch (cam->cam_mode[sd->gspca_dev.curr_mode].width)
+       {
+       case 640:
+               PDEBUG(D_V4L2, "Configuring camera for VGA mode");
+
+               for (i = 0; i < ARRAY_SIZE(VGA_s5k4aa); i++) {
+                       switch (VGA_s5k4aa[i][0]) {
+                       case BRIDGE:
+                               err = m5602_write_bridge(sd,
+                                                VGA_s5k4aa[i][1],
+                                                VGA_s5k4aa[i][2]);
+                       break;
+
+                       case SENSOR:
+                               data[0] = VGA_s5k4aa[i][2];
+                               err = m5602_write_sensor(sd,
+                                                VGA_s5k4aa[i][1],
+                                                data, 1);
+                       break;
+
+                       case SENSOR_LONG:
+                               data[0] = VGA_s5k4aa[i][2];
+                               data[1] = VGA_s5k4aa[i][3];
+                               err = m5602_write_sensor(sd,
+                                                 VGA_s5k4aa[i][1],
+                                                 data, 2);
+                       break;
+
+                       default:
+                               err("Invalid stream command, exiting init");
+                               return -EINVAL;
+                       }
+               }
+       }
+       return err;
+}
+
 int s5k4aa_init(struct sd *sd)
 {
        int i, err = 0;
@@ -194,17 +306,17 @@ int s5k4aa_get_exposure(struct gspca_dev *gspca_dev, __s32 *val)
 
        err = m5602_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
        if (err < 0)
-               goto out;
+               return err;
 
        err = m5602_read_sensor(sd, S5K4AA_EXPOSURE_HI, &data, 1);
        if (err < 0)
-               goto out;
+               return err;
 
        *val = data << 8;
        err = m5602_read_sensor(sd, S5K4AA_EXPOSURE_LO, &data, 1);
        *val |= data;
        PDEBUG(D_V4L2, "Read exposure %d", *val);
-out:
+
        return err;
 }
 
@@ -217,14 +329,14 @@ int s5k4aa_set_exposure(struct gspca_dev *gspca_dev, __s32 val)
        PDEBUG(D_V4L2, "Set exposure to %d", val);
        err = m5602_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
        if (err < 0)
-               goto out;
+               return err;
        data = (val >> 8) & 0xff;
        err = m5602_write_sensor(sd, S5K4AA_EXPOSURE_HI, &data, 1);
        if (err < 0)
-               goto out;
+               return err;
        data = val & 0xff;
        err = m5602_write_sensor(sd, S5K4AA_EXPOSURE_LO, &data, 1);
-out:
+
        return err;
 }
 
@@ -236,13 +348,12 @@ int s5k4aa_get_vflip(struct gspca_dev *gspca_dev, __s32 *val)
 
        err = m5602_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
        if (err < 0)
-               goto out;
+               return err;
 
        err = m5602_read_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
        *val = (data & S5K4AA_RM_V_FLIP) >> 7;
        PDEBUG(D_V4L2, "Read vertical flip %d", *val);
 
-out:
        return err;
 }
 
@@ -255,32 +366,32 @@ int s5k4aa_set_vflip(struct gspca_dev *gspca_dev, __s32 val)
        PDEBUG(D_V4L2, "Set vertical flip to %d", val);
        err = m5602_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
        if (err < 0)
-               goto out;
+               return err;
        err = m5602_write_sensor(sd, S5K4AA_READ_MODE, &data, 1);
        if (err < 0)
-               goto out;
+               return err;
        data = ((data & ~S5K4AA_RM_V_FLIP)
                        | ((val & 0x01) << 7));
        err = m5602_write_sensor(sd, S5K4AA_READ_MODE, &data, 1);
        if (err < 0)
-               goto out;
+               return err;
 
        if (val) {
                err = m5602_read_sensor(sd, S5K4AA_ROWSTART_LO, &data, 1);
                if (err < 0)
-                       goto out;
+                       return err;
 
                data++;
                err = m5602_write_sensor(sd, S5K4AA_ROWSTART_LO, &data, 1);
        } else {
                err = m5602_read_sensor(sd, S5K4AA_ROWSTART_LO, &data, 1);
                if (err < 0)
-                       goto out;
+                       return err;
 
                data--;
                err = m5602_write_sensor(sd, S5K4AA_ROWSTART_LO, &data, 1);
        }
-out:
+
        return err;
 }
 
@@ -292,12 +403,12 @@ int s5k4aa_get_hflip(struct gspca_dev *gspca_dev, __s32 *val)
 
        err = m5602_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
        if (err < 0)
-               goto out;
+               return err;
 
        err = m5602_read_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
        *val = (data & S5K4AA_RM_H_FLIP) >> 6;
        PDEBUG(D_V4L2, "Read horizontal flip %d", *val);
-out:
+
        return err;
 }
 
@@ -311,32 +422,32 @@ int s5k4aa_set_hflip(struct gspca_dev *gspca_dev, __s32 val)
               val);
        err = m5602_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
        if (err < 0)
-               goto out;
+               return err;
        err = m5602_write_sensor(sd, S5K4AA_READ_MODE, &data, 1);
        if (err < 0)
-               goto out;
+               return err;
 
        data = ((data & ~S5K4AA_RM_H_FLIP) | ((val & 0x01) << 6));
        err = m5602_write_sensor(sd, S5K4AA_READ_MODE, &data, 1);
        if (err < 0)
-               goto out;
+               return err;
 
        if (val) {
                err = m5602_read_sensor(sd, S5K4AA_COLSTART_LO, &data, 1);
                if (err < 0)
-                       goto out;
+                       return err;
                data++;
                err = m5602_write_sensor(sd, S5K4AA_COLSTART_LO, &data, 1);
                if (err < 0)
-                       goto out;
+                       return err;
        } else {
                err = m5602_read_sensor(sd, S5K4AA_COLSTART_LO, &data, 1);
                if (err < 0)
-                       goto out;
+                       return err;
                data--;
                err = m5602_write_sensor(sd, S5K4AA_COLSTART_LO, &data, 1);
        }
-out:
+
        return err;
 }
 
@@ -348,13 +459,12 @@ int s5k4aa_get_gain(struct gspca_dev *gspca_dev, __s32 *val)
 
        err = m5602_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
        if (err < 0)
-               goto out;
+               return err;
 
        err = m5602_read_sensor(sd, S5K4AA_GAIN_2, &data, 1);
        *val = data;
        PDEBUG(D_V4L2, "Read gain %d", *val);
 
-out:
        return err;
 }
 
@@ -367,12 +477,11 @@ int s5k4aa_set_gain(struct gspca_dev *gspca_dev, __s32 val)
        PDEBUG(D_V4L2, "Set gain to %d", val);
        err = m5602_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
        if (err < 0)
-               goto out;
+               return err;
 
        data = val & 0xff;
        err = m5602_write_sensor(sd, S5K4AA_GAIN_2, &data, 1);
 
-out:
        return err;
 }
 
index 1f88b0d..ca854d4 100644 (file)
@@ -65,6 +65,7 @@ extern int dump_sensor;
 
 int s5k4aa_probe(struct sd *sd);
 int s5k4aa_init(struct sd *sd);
+int s5k4aa_start(struct sd *sd);
 int s5k4aa_power_down(struct sd *sd);
 
 int s5k4aa_get_exposure(struct gspca_dev *gspca_dev, __s32 *val);
@@ -76,84 +77,14 @@ int s5k4aa_set_hflip(struct gspca_dev *gspca_dev, __s32 val);
 int s5k4aa_get_gain(struct gspca_dev *gspca_dev, __s32 *val);
 int s5k4aa_set_gain(struct gspca_dev *gspca_dev, __s32 val);
 
-static struct m5602_sensor s5k4aa = {
+static const struct m5602_sensor s5k4aa = {
        .name = "S5K4AA",
        .probe = s5k4aa_probe,
        .init = s5k4aa_init,
+       .start = s5k4aa_start,
        .power_down = s5k4aa_power_down,
        .i2c_slave_id = 0x5a,
        .i2c_regW = 2,
-       .nctrls = 4,
-       .ctrls = {
-       {
-               {
-                       .id             = V4L2_CID_VFLIP,
-                       .type           = V4L2_CTRL_TYPE_BOOLEAN,
-                       .name           = "vertical flip",
-                       .minimum        = 0,
-                       .maximum        = 1,
-                       .step           = 1,
-                       .default_value  = 0
-               },
-               .set = s5k4aa_set_vflip,
-               .get = s5k4aa_get_vflip
-
-       }, {
-               {
-                       .id             = V4L2_CID_HFLIP,
-                       .type           = V4L2_CTRL_TYPE_BOOLEAN,
-                       .name           = "horizontal flip",
-                       .minimum        = 0,
-                       .maximum        = 1,
-                       .step           = 1,
-                       .default_value  = 0
-               },
-               .set = s5k4aa_set_hflip,
-               .get = s5k4aa_get_hflip
-
-       }, {
-               {
-                       .id             = V4L2_CID_GAIN,
-                       .type           = V4L2_CTRL_TYPE_INTEGER,
-                       .name           = "Gain",
-                       .minimum        = 0,
-                       .maximum        = 127,
-                       .step           = 1,
-                       .default_value  = 0xa0,
-                       .flags          = V4L2_CTRL_FLAG_SLIDER
-               },
-               .set = s5k4aa_set_gain,
-               .get = s5k4aa_get_gain
-       }, {
-               {
-                       .id             = V4L2_CID_EXPOSURE,
-                       .type           = V4L2_CTRL_TYPE_INTEGER,
-                       .name           = "Exposure",
-                       .minimum        = 13,
-                       .maximum        = 0xfff,
-                       .step           = 1,
-                       .default_value  = 0x100,
-                       .flags          = V4L2_CTRL_FLAG_SLIDER
-               },
-               .set = s5k4aa_set_exposure,
-               .get = s5k4aa_get_exposure
-       }
-       },
-
-       .nmodes = 1,
-       .modes = {
-       {
-               M5602_DEFAULT_FRAME_WIDTH,
-               M5602_DEFAULT_FRAME_HEIGHT,
-               V4L2_PIX_FMT_SBGGR8,
-               V4L2_FIELD_NONE,
-               .sizeimage =
-                       M5602_DEFAULT_FRAME_WIDTH * M5602_DEFAULT_FRAME_HEIGHT,
-               .bytesperline = M5602_DEFAULT_FRAME_WIDTH,
-               .colorspace = V4L2_COLORSPACE_SRGB,
-               .priv = 1
-       }
-       }
 };
 
 static const unsigned char preinit_s5k4aa[][4] =
@@ -329,4 +260,63 @@ static const unsigned char init_s5k4aa[][4] =
        {SENSOR, S5K4AA_GAIN_2, 0xa0, 0x00}
 };
 
+static const unsigned char VGA_s5k4aa[][4] =
+{
+       {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x06, 0x00},
+       {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
+       {BRIDGE, M5602_XB_ADC_CTRL, 0xc0, 0x00},
+       {BRIDGE, M5602_XB_SENSOR_TYPE, 0x08, 0x00},
+       {BRIDGE, M5602_XB_LINE_OF_FRAME_H, 0x81, 0x00},
+       {BRIDGE, M5602_XB_PIX_OF_LINE_H, 0x82, 0x00},
+       {BRIDGE, M5602_XB_SIG_INI, 0x01, 0x00},
+       {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
+       {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
+       {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
+       {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
+       /* VSYNC_PARA, VSYNC_PARA : img height 480 = 0x01e0 */
+       {BRIDGE, M5602_XB_VSYNC_PARA, 0x01, 0x00},
+       {BRIDGE, M5602_XB_VSYNC_PARA, 0xe0, 0x00},
+       {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
+       {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
+       {BRIDGE, M5602_XB_SIG_INI, 0x00, 0x00},
+       {BRIDGE, M5602_XB_SIG_INI, 0x02, 0x00},
+       {BRIDGE, M5602_XB_HSYNC_PARA, 0x00, 0x00},
+       {BRIDGE, M5602_XB_HSYNC_PARA, 0x00, 0x00},
+       /* HSYNC_PARA, HSYNC_PARA : img width 640 = 0x0280 */
+       {BRIDGE, M5602_XB_HSYNC_PARA, 0x02, 0x00},
+       {BRIDGE, M5602_XB_HSYNC_PARA, 0x80, 0x00},
+       {BRIDGE, M5602_XB_SIG_INI, 0x00, 0x00},
+       {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00},
+       {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xa0, 0x00}, /* 48 MHz */
+
+       {SENSOR, S5K4AA_PAGE_MAP, 0x02, 0x00},
+       {SENSOR, S5K4AA_READ_MODE, S5K4AA_RM_H_FLIP | S5K4AA_RM_ROW_SKIP_2X
+               | S5K4AA_RM_COL_SKIP_2X, 0x00},
+       /* 0x37 : Fix image stability when light is too bright and improves
+        * image quality in 640x480, but worsens it in 1280x1024 */
+       {SENSOR, 0x37, 0x01, 0x00},
+       /* ROWSTART_HI, ROWSTART_LO : 10 + (1024-960)/2 = 42 = 0x002a */
+       {SENSOR, S5K4AA_ROWSTART_HI, 0x00, 0x00},
+       {SENSOR, S5K4AA_ROWSTART_LO, 0x2a, 0x00},
+       {SENSOR, S5K4AA_COLSTART_HI, 0x00, 0x00},
+       {SENSOR, S5K4AA_COLSTART_LO, 0x0c, 0x00},
+       /* window_height_hi, window_height_lo : 960 = 0x03c0 */
+       {SENSOR, S5K4AA_WINDOW_HEIGHT_HI, 0x03, 0x00},
+       {SENSOR, S5K4AA_WINDOW_HEIGHT_LO, 0xc0, 0x00},
+       /* window_width_hi, window_width_lo : 1280 = 0x0500 */
+       {SENSOR, S5K4AA_WINDOW_WIDTH_HI, 0x05, 0x00},
+       {SENSOR, S5K4AA_WINDOW_WIDTH_LO, 0x00, 0x00},
+       {SENSOR, S5K4AA_H_BLANK_HI__, 0x00, 0x00},
+       {SENSOR, S5K4AA_H_BLANK_LO__, 0xa8, 0x00}, /* helps to sync... */
+       {SENSOR, S5K4AA_EXPOSURE_HI, 0x01, 0x00},
+       {SENSOR, S5K4AA_EXPOSURE_LO, 0x00, 0x00},
+       {SENSOR, 0x11, 0x04, 0x00},
+       {SENSOR, 0x12, 0xc3, 0x00},
+       {SENSOR, S5K4AA_PAGE_MAP, 0x02, 0x00},
+       {SENSOR, 0x02, 0x0e, 0x00},
+       {SENSOR_LONG, S5K4AA_GLOBAL_GAIN__, 0x0f, 0x00},
+       {SENSOR, S5K4AA_GAIN_1, 0x0b, 0x00},
+       {SENSOR, S5K4AA_GAIN_2, 0xa0, 0x00}
+};
+
 #endif
index ccea4a7..42c86aa 100644 (file)
 
 #include "m5602_s5k83a.h"
 
+static struct v4l2_pix_format s5k83a_modes[] = {
+       {
+               640,
+               480,
+               V4L2_PIX_FMT_SBGGR8,
+               V4L2_FIELD_NONE,
+               .sizeimage =
+                       640 * 480,
+               .bytesperline = 640,
+               .colorspace = V4L2_COLORSPACE_SRGB,
+               .priv = 0
+       }
+};
+
+const static struct ctrl s5k83a_ctrls[] = {
+       {
+               {
+                       .id = V4L2_CID_BRIGHTNESS,
+                       .type = V4L2_CTRL_TYPE_INTEGER,
+                       .name = "brightness",
+                       .minimum = 0x00,
+                       .maximum = 0xff,
+                       .step = 0x01,
+                       .default_value = S5K83A_DEFAULT_BRIGHTNESS,
+                       .flags = V4L2_CTRL_FLAG_SLIDER
+               },
+                       .set = s5k83a_set_brightness,
+                       .get = s5k83a_get_brightness
+
+       }, {
+               {
+                       .id = V4L2_CID_WHITENESS,
+                       .type = V4L2_CTRL_TYPE_INTEGER,
+                       .name = "whiteness",
+                       .minimum = 0x00,
+                       .maximum = 0xff,
+                       .step = 0x01,
+                       .default_value = S5K83A_DEFAULT_WHITENESS,
+                       .flags = V4L2_CTRL_FLAG_SLIDER
+               },
+                       .set = s5k83a_set_whiteness,
+                       .get = s5k83a_get_whiteness,
+       }, {
+               {
+                       .id = V4L2_CID_GAIN,
+                       .type = V4L2_CTRL_TYPE_INTEGER,
+                       .name = "gain",
+                       .minimum = 0x00,
+                       .maximum = S5K83A_MAXIMUM_GAIN,
+                       .step = 0x01,
+                       .default_value = S5K83A_DEFAULT_GAIN,
+                       .flags = V4L2_CTRL_FLAG_SLIDER
+               },
+                       .set = s5k83a_set_gain,
+                       .get = s5k83a_get_gain
+       }, {
+               {
+                       .id         = V4L2_CID_HFLIP,
+                       .type       = V4L2_CTRL_TYPE_BOOLEAN,
+                       .name       = "horizontal flip",
+                       .minimum    = 0,
+                       .maximum    = 1,
+                       .step       = 1,
+                       .default_value  = 0
+               },
+                       .set = s5k83a_set_hflip,
+                       .get = s5k83a_get_hflip
+       }, {
+               {
+                .id         = V4L2_CID_VFLIP,
+               .type       = V4L2_CTRL_TYPE_BOOLEAN,
+               .name       = "vertical flip",
+               .minimum    = 0,
+               .maximum    = 1,
+               .step       = 1,
+               .default_value  = 0
+               },
+               .set = s5k83a_set_vflip,
+               .get = s5k83a_get_vflip
+       }
+};
+
 static void s5k83a_dump_registers(struct sd *sd);
 
 int s5k83a_probe(struct sd *sd)
@@ -63,10 +145,10 @@ int s5k83a_probe(struct sd *sd)
                info("Detected a s5k83a sensor");
 
 sensor_found:
-       sd->gspca_dev.cam.cam_mode = s5k83a.modes;
-       sd->gspca_dev.cam.nmodes = s5k83a.nmodes;
-       sd->desc->ctrls = s5k83a.ctrls;
-       sd->desc->nctrls = s5k83a.nctrls;
+       sd->gspca_dev.cam.cam_mode = s5k83a_modes;
+       sd->gspca_dev.cam.nmodes = ARRAY_SIZE(s5k83a_modes);
+       sd->desc->ctrls = s5k83a_ctrls;
+       sd->desc->nctrls = ARRAY_SIZE(s5k83a_ctrls);
        return 0;
 }
 
@@ -108,6 +190,16 @@ int s5k83a_init(struct sd *sd)
        return (err < 0) ? err : 0;
 }
 
+int s5k83a_start(struct sd *sd)
+{
+       return s5k83a_set_led_indication(sd, 1);
+}
+
+int s5k83a_stop(struct sd *sd)
+{
+       return s5k83a_set_led_indication(sd, 0);
+}
+
 int s5k83a_power_down(struct sd *sd)
 {
        return 0;
@@ -163,12 +255,11 @@ int s5k83a_get_brightness(struct gspca_dev *gspca_dev, __s32 *val)
 
        err = m5602_read_sensor(sd, S5K83A_BRIGHTNESS, data, 2);
        if (err < 0)
-               goto out;
+               return err;
 
        data[1] = data[1] << 1;
        *val = data[1];
 
-out:
        return err;
 }
 
@@ -182,13 +273,13 @@ int s5k83a_set_brightness(struct gspca_dev *gspca_dev, __s32 val)
        data[1] = 0x20;
        err = m5602_write_sensor(sd, 0x14, data, 2);
        if (err < 0)
-               goto out;
+               return err;
 
        data[0] = 0x01;
        data[1] = 0x00;
        err = m5602_write_sensor(sd, 0x0d, data, 2);
        if (err < 0)
-               goto out;
+               return err;
 
        /* FIXME: This is not sane, we need to figure out the composition
                  of these registers */
@@ -196,7 +287,6 @@ int s5k83a_set_brightness(struct gspca_dev *gspca_dev, __s32 val)
        data[1] = val >> 1; /* brightness, high 7 bits */
        err = m5602_write_sensor(sd, S5K83A_BRIGHTNESS, data, 2);
 
-out:
        return err;
 }
 
@@ -208,11 +298,10 @@ int s5k83a_get_whiteness(struct gspca_dev *gspca_dev, __s32 *val)
 
        err = m5602_read_sensor(sd, S5K83A_WHITENESS, &data, 1);
        if (err < 0)
-               goto out;
+               return err;
 
        *val = data;
 
-out:
        return err;
 }
 
@@ -236,7 +325,7 @@ int s5k83a_get_gain(struct gspca_dev *gspca_dev, __s32 *val)
 
        err = m5602_read_sensor(sd, S5K83A_GAIN, data, 2);
        if (err < 0)
-               goto out;
+               return err;
 
        data[1] = data[1] & 0x3f;
        if (data[1] > S5K83A_MAXIMUM_GAIN)
@@ -244,7 +333,6 @@ int s5k83a_get_gain(struct gspca_dev *gspca_dev, __s32 *val)
 
        *val = data[1];
 
-out:
        return err;
 }
 
@@ -269,12 +357,11 @@ int s5k83a_get_vflip(struct gspca_dev *gspca_dev, __s32 *val)
        data[0] = 0x05;
        err = m5602_write_sensor(sd, S5K83A_PAGE_MAP, data, 1);
        if (err < 0)
-               goto out;
+               return err;
 
        err = m5602_read_sensor(sd, S5K83A_FLIP, data, 1);
        *val = (data[0] | 0x40) ? 1 : 0;
 
-out:
        return err;
 }
 
@@ -287,23 +374,22 @@ int s5k83a_set_vflip(struct gspca_dev *gspca_dev, __s32 val)
        data[0] = 0x05;
        err = m5602_write_sensor(sd, S5K83A_PAGE_MAP, data, 1);
        if (err < 0)
-               goto out;
+               return err;
 
        err = m5602_read_sensor(sd, S5K83A_FLIP, data, 1);
        if (err < 0)
-               goto out;
+               return err;
 
        /* set or zero six bit, seven is hflip */
        data[0] = (val) ? (data[0] & 0x80) | 0x40 | S5K83A_FLIP_MASK
                        : (data[0] & 0x80) | S5K83A_FLIP_MASK;
        err = m5602_write_sensor(sd, S5K83A_FLIP, data, 1);
        if (err < 0)
-               goto out;
+               return err;
 
        data[0] = (val) ? 0x0b : 0x0a;
        err = m5602_write_sensor(sd, S5K83A_VFLIP_TUNE, data, 1);
 
-out:
        return err;
 }
 
@@ -316,12 +402,11 @@ int s5k83a_get_hflip(struct gspca_dev *gspca_dev, __s32 *val)
        data[0] = 0x05;
        err = m5602_write_sensor(sd, S5K83A_PAGE_MAP, data, 1);
        if (err < 0)
-               goto out;
+               return err;
 
        err = m5602_read_sensor(sd, S5K83A_FLIP, data, 1);
        *val = (data[0] | 0x80) ? 1 : 0;
 
-out:
        return err;
 }
 
@@ -334,21 +419,40 @@ int s5k83a_set_hflip(struct gspca_dev *gspca_dev, __s32 val)
        data[0] = 0x05;
        err = m5602_write_sensor(sd, S5K83A_PAGE_MAP, data, 1);
        if (err < 0)
-               goto out;
+               return err;
 
        err = m5602_read_sensor(sd, S5K83A_FLIP, data, 1);
        if (err < 0)
-               goto out;
+               return err;
 
        /* set or zero seven bit, six is vflip */
        data[0] = (val) ? (data[0] & 0x40) | 0x80 | S5K83A_FLIP_MASK
                        : (data[0] & 0x40) | S5K83A_FLIP_MASK;
        err = m5602_write_sensor(sd, S5K83A_FLIP, data, 1);
        if (err < 0)
-               goto out;
+               return err;
 
        data[0] = (val) ? 0x0a : 0x0b;
        err = m5602_write_sensor(sd, S5K83A_HFLIP_TUNE, data, 1);
-out:
+
        return err;
 }
+
+int s5k83a_set_led_indication(struct sd *sd, u8 val)
+{
+       int err = 0;
+       u8 data[1];
+
+       err = m5602_read_bridge(sd, M5602_XB_GPIO_DAT, data);
+       if (err < 0)
+               return err;
+
+       if (val)
+               data[0] = data[0] | S5K83A_GPIO_LED_MASK;
+       else
+               data[0] = data[0] & ~S5K83A_GPIO_LED_MASK;
+
+       err = m5602_write_bridge(sd, M5602_XB_GPIO_DAT, data[0]);
+
+       return (err < 0) ? err : 0;
+}
index 05ccb5b..819ab25 100644 (file)
@@ -34,7 +34,7 @@
 #define S5K83A_DEFAULT_GAIN                    0x00
 #define S5K83A_MAXIMUM_GAIN                    0x3c
 #define S5K83A_FLIP_MASK                       0x10
-
+#define S5K83A_GPIO_LED_MASK           0x10
 
 /*****************************************************************************/
 
@@ -44,8 +44,12 @@ extern int dump_sensor;
 
 int s5k83a_probe(struct sd *sd);
 int s5k83a_init(struct sd *sd);
+int s5k83a_start(struct sd *sd);
+int s5k83a_stop(struct sd *sd);
 int s5k83a_power_down(struct sd *sd);
 
+int s5k83a_set_led_indication(struct sd *sd, u8 val);
+
 int s5k83a_set_brightness(struct gspca_dev *gspca_dev, __s32 val);
 int s5k83a_get_brightness(struct gspca_dev *gspca_dev, __s32 *val);
 int s5k83a_set_whiteness(struct gspca_dev *gspca_dev, __s32 val);
@@ -57,95 +61,15 @@ int s5k83a_set_vflip(struct gspca_dev *gspca_dev, __s32 val);
 int s5k83a_get_hflip(struct gspca_dev *gspca_dev, __s32 *val);
 int s5k83a_set_hflip(struct gspca_dev *gspca_dev, __s32 val);
 
-static struct m5602_sensor s5k83a = {
+static const struct m5602_sensor s5k83a = {
        .name = "S5K83A",
        .probe = s5k83a_probe,
        .init = s5k83a_init,
+       .start = s5k83a_start,
+       .stop = s5k83a_stop,
        .power_down = s5k83a_power_down,
        .i2c_slave_id = 0x5a,
        .i2c_regW = 2,
-       .nctrls = 5,
-       .ctrls = {
-       {
-               {
-                       .id = V4L2_CID_BRIGHTNESS,
-                       .type = V4L2_CTRL_TYPE_INTEGER,
-                       .name = "brightness",
-                       .minimum = 0x00,
-                       .maximum = 0xff,
-                       .step = 0x01,
-                       .default_value = S5K83A_DEFAULT_BRIGHTNESS,
-                       .flags = V4L2_CTRL_FLAG_SLIDER
-               },
-                       .set = s5k83a_set_brightness,
-                       .get = s5k83a_get_brightness
-
-       }, {
-               {
-                       .id = V4L2_CID_WHITENESS,
-                       .type = V4L2_CTRL_TYPE_INTEGER,
-                       .name = "whiteness",
-                       .minimum = 0x00,
-                       .maximum = 0xff,
-                       .step = 0x01,
-                       .default_value = S5K83A_DEFAULT_WHITENESS,
-                       .flags = V4L2_CTRL_FLAG_SLIDER
-               },
-                       .set = s5k83a_set_whiteness,
-                       .get = s5k83a_get_whiteness,
-       }, {
-               {
-                       .id = V4L2_CID_GAIN,
-                       .type = V4L2_CTRL_TYPE_INTEGER,
-                       .name = "gain",
-                       .minimum = 0x00,
-                       .maximum = S5K83A_MAXIMUM_GAIN,
-                       .step = 0x01,
-                       .default_value = S5K83A_DEFAULT_GAIN,
-                       .flags = V4L2_CTRL_FLAG_SLIDER
-               },
-                       .set = s5k83a_set_gain,
-                       .get = s5k83a_get_gain
-       }, {
-               {
-                       .id         = V4L2_CID_HFLIP,
-                       .type       = V4L2_CTRL_TYPE_BOOLEAN,
-                       .name       = "horizontal flip",
-                       .minimum    = 0,
-                       .maximum    = 1,
-                       .step       = 1,
-                       .default_value  = 0
-               },
-                       .set = s5k83a_set_hflip,
-                       .get = s5k83a_get_hflip
-       }, {
-               {
-                .id         = V4L2_CID_VFLIP,
-               .type       = V4L2_CTRL_TYPE_BOOLEAN,
-               .name       = "vertical flip",
-               .minimum    = 0,
-               .maximum    = 1,
-               .step       = 1,
-               .default_value  = 0
-               },
-               .set = s5k83a_set_vflip,
-               .get = s5k83a_get_vflip
-               }
-       },
-       .nmodes = 1,
-       .modes = {
-       {
-               M5602_DEFAULT_FRAME_WIDTH,
-               M5602_DEFAULT_FRAME_HEIGHT,
-               V4L2_PIX_FMT_SBGGR8,
-               V4L2_FIELD_NONE,
-               .sizeimage =
-                       M5602_DEFAULT_FRAME_WIDTH * M5602_DEFAULT_FRAME_HEIGHT,
-               .bytesperline = M5602_DEFAULT_FRAME_WIDTH,
-               .colorspace = V4L2_COLORSPACE_SRGB,
-               .priv = 1
-       }
-       }
 };
 
 static const unsigned char preinit_s5k83a[][4] =
@@ -381,7 +305,7 @@ static const unsigned char init_s5k83a[][4] =
        {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00},
        {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xf0, 0x00},
        {BRIDGE, M5602_XB_GPIO_DIR, 0x1d, 0x00},
-       {BRIDGE, M5602_XB_GPIO_DAT, 0x1c, 0x00},
+       {BRIDGE, M5602_XB_GPIO_DAT, 0x08, 0x00},
        {BRIDGE, M5602_XB_GPIO_EN_H, 0x06, 0x00},
        {BRIDGE, M5602_XB_GPIO_DIR_H, 0x06, 0x00},
        {BRIDGE, M5602_XB_GPIO_DAT_H, 0x00, 0x00},
index 261623f..0d30269 100644 (file)
 
 #include "m5602_bridge.h"
 
-#define M5602_DEFAULT_FRAME_WIDTH  640
-#define M5602_DEFAULT_FRAME_HEIGHT 480
-
-#define M5602_MAX_CTRLS                (V4L2_CID_LASTP1 - V4L2_CID_BASE + 10)
-
 /* Enumerates all supported sensors */
 enum sensors {
        OV9650_SENSOR   = 1,
@@ -61,14 +56,14 @@ struct m5602_sensor {
        /* Executed when the camera starts to send data */
        int (*start)(struct sd *sd);
 
-       /* Performs a power down sequence */
-       int (*power_down)(struct sd *sd);
+       /* Executed when the camera ends to send data */
+       int (*stop)(struct sd *sd);
 
-       int nctrls;
-       struct ctrl ctrls[M5602_MAX_CTRLS];
+       /* Executed when the device is disconnected */
+       void (*disconnect)(struct sd *sd);
 
-       char nmodes;
-       struct v4l2_pix_format modes[];
+       /* Performs a power down sequence */
+       int (*power_down)(struct sd *sd);
 };
 
 #endif
index 04e3ae5..2e1cdf0 100644 (file)
@@ -360,6 +360,12 @@ static int sd_init(struct gspca_dev *gspca_dev)
        gspca_dev->cam.nmodes = ARRAY_SIZE(sq905_mode);
        if (!(ident & SQ905_HIRES_MASK))
                gspca_dev->cam.nmodes--;
+
+       if (ident & SQ905_ORIENTATION_MASK)
+               gspca_dev->cam.input_flags = V4L2_IN_ST_VFLIP;
+       else
+               gspca_dev->cam.input_flags = V4L2_IN_ST_VFLIP |
+                                            V4L2_IN_ST_HFLIP;
        return 0;
 }
 
index 4c802fb..e4e933c 100644 (file)
@@ -159,37 +159,16 @@ static const struct v4l2_pix_format vc0323_mode[] = {
                .priv = 2},
 };
 static const struct v4l2_pix_format bi_mode[] = {
-/*fixme: jeg does not work
-       {320, 240, V4L2_PIX_FMT_JPEG, V4L2_FIELD_NONE,
-               .bytesperline = 320,
-               .sizeimage = 320 * 240 * 3 / 8 + 590,
-               .colorspace = V4L2_COLORSPACE_JPEG,
-               .priv = 5},
-*/
        {320, 240, V4L2_PIX_FMT_YVYU, V4L2_FIELD_NONE,
                .bytesperline = 320,
                .sizeimage = 320 * 240 * 2,
                .colorspace = V4L2_COLORSPACE_SRGB,
-               .priv = 4},
-/*
-       {640, 480, V4L2_PIX_FMT_JPEG, V4L2_FIELD_NONE,
-               .bytesperline = 640,
-               .sizeimage = 640 * 480 * 3 / 8 + 590,
-               .colorspace = V4L2_COLORSPACE_JPEG,
-               .priv = 3},
-*/
+               .priv = 2},
        {640, 480, V4L2_PIX_FMT_YVYU, V4L2_FIELD_NONE,
                .bytesperline = 640,
                .sizeimage = 640 * 480 * 2,
                .colorspace = V4L2_COLORSPACE_SRGB,
-               .priv = 2},
-/*
-       {1280, 1024, V4L2_PIX_FMT_JPEG, V4L2_FIELD_NONE,
-               .bytesperline = 1280,
-               .sizeimage = 1280 * 1024 * 1 / 4 + 590,
-               .colorspace = V4L2_COLORSPACE_JPEG,
                .priv = 1},
-*/
        {1280, 1024, V4L2_PIX_FMT_YVYU, V4L2_FIELD_NONE,
                .bytesperline = 1280,
                .sizeimage = 1280 * 1024 * 2,
@@ -1034,121 +1013,6 @@ static const u8 mi1320_soc_InitVGA[][4] = {
        {0xb3, 0x5c, 0x01, 0xcc},
        {}
 };
-static const u8 mi1320_soc_InitVGA_JPG[][4] = {
-       {0xb3, 0x01, 0x01, 0xcc},
-       {0xb0, 0x03, 0x19, 0xcc},
-       {0xb0, 0x04, 0x02, 0xcc},
-       {0x00, 0x00, 0x30, 0xdd},
-       {0xb3, 0x00, 0x64, 0xcc},
-       {0xb3, 0x00, 0x67, 0xcc},
-       {0xb3, 0x05, 0x01, 0xcc},
-       {0xb3, 0x06, 0x01, 0xcc},
-       {0xb3, 0x08, 0x01, 0xcc},
-       {0xb3, 0x09, 0x0c, 0xcc},
-       {0xb3, 0x34, 0x02, 0xcc},
-       {0xb3, 0x35, 0xc8, 0xcc},
-       {0xb3, 0x02, 0x00, 0xcc},
-       {0xb3, 0x03, 0x0a, 0xcc},
-       {0xb3, 0x04, 0x05, 0xcc},
-       {0xb3, 0x20, 0x00, 0xcc},
-       {0xb3, 0x21, 0x00, 0xcc},
-       {0xb3, 0x22, 0x01, 0xcc},
-       {0xb3, 0x23, 0xe0, 0xcc},
-       {0xb3, 0x14, 0x00, 0xcc},
-       {0xb3, 0x15, 0x00, 0xcc},
-       {0xb3, 0x16, 0x02, 0xcc},
-       {0xb3, 0x17, 0x7f, 0xcc},
-       {0xb3, 0x00, 0x67, 0xcc},
-       {0xb8, 0x00, 0x00, 0xcc},
-       {0xbc, 0x00, 0x71, 0xcc},
-       {0xbc, 0x01, 0x01, 0xcc},
-       {0xb3, 0x5c, 0x01, 0xcc},
-       {0xf0, 0x00, 0x02, 0xbb},
-       {0x00, 0x00, 0x10, 0xdd},
-       {0xc8, 0x00, 0x00, 0xbb},
-       {0x00, 0x00, 0x30, 0xdd},
-       {0xf0, 0x00, 0x00, 0xbb},
-       {0x00, 0x00, 0x10, 0xdd},
-       {0x07, 0x00, 0xe0, 0xbb},
-       {0x08, 0x00, 0x0b, 0xbb},
-       {0x21, 0x00, 0x0c, 0xbb},
-       {0x20, 0x01, 0x03, 0xbb},
-       {0xb6, 0x00, 0x00, 0xcc},
-       {0xb6, 0x03, 0x02, 0xcc},
-       {0xb6, 0x02, 0x80, 0xcc},
-       {0xb6, 0x05, 0x01, 0xcc},
-       {0xb6, 0x04, 0xe0, 0xcc},
-       {0xb6, 0x12, 0xf8, 0xcc},
-       {0xb6, 0x13, 0x05, 0xcc},
-       {0xb6, 0x18, 0x02, 0xcc},
-       {0xb6, 0x17, 0x58, 0xcc},
-       {0xb6, 0x16, 0x00, 0xcc},
-       {0xb6, 0x22, 0x12, 0xcc},
-       {0xb6, 0x23, 0x0b, 0xcc},
-       {0xbf, 0xc0, 0x39, 0xcc},
-       {0xbf, 0xc1, 0x04, 0xcc},
-       {0xbf, 0xcc, 0x00, 0xcc},
-       {0xb3, 0x01, 0x41, 0xcc},
-       {0xf0, 0x00, 0x00, 0xbb},
-       {0x05, 0x01, 0x78, 0xbb},
-       {0x06, 0x00, 0x11, 0xbb},
-       {0x07, 0x01, 0x42, 0xbb},
-       {0x08, 0x00, 0x11, 0xbb},
-       {0x20, 0x01, 0x03, 0xbb},
-       {0x21, 0x80, 0x00, 0xbb},
-       {0x22, 0x0d, 0x0f, 0xbb},
-       {0x24, 0x80, 0x00, 0xbb},
-       {0x59, 0x00, 0xff, 0xbb},
-       {0xf0, 0x00, 0x02, 0xbb},
-       {0x39, 0x03, 0xca, 0xbb},
-       {0x3a, 0x06, 0x80, 0xbb},
-       {0x3b, 0x01, 0x52, 0xbb},
-       {0x3c, 0x05, 0x40, 0xbb},
-       {0x57, 0x01, 0x9c, 0xbb},
-       {0x58, 0x01, 0xee, 0xbb},
-       {0x59, 0x00, 0xf0, 0xbb},
-       {0x5a, 0x01, 0x20, 0xbb},
-       {0x5c, 0x1d, 0x17, 0xbb},
-       {0x5d, 0x22, 0x1c, 0xbb},
-       {0x64, 0x1e, 0x1c, 0xbb},
-       {0x5b, 0x00, 0x00, 0xbb},
-       {0xf0, 0x00, 0x02, 0xbb},
-       {0x22, 0xa0, 0x78, 0xbb},
-       {0x23, 0xa0, 0x78, 0xbb},
-       {0x24, 0x7f, 0x00, 0xbb},
-       {0x28, 0xea, 0x02, 0xbb},
-       {0x29, 0x86, 0x7a, 0xbb},
-       {0x5e, 0x52, 0x4c, 0xbb},
-       {0x5f, 0x20, 0x24, 0xbb},
-       {0x60, 0x00, 0x02, 0xbb},
-       {0x02, 0x00, 0xee, 0xbb},
-       {0x03, 0x39, 0x23, 0xbb},
-       {0x04, 0x07, 0x24, 0xbb},
-       {0x09, 0x00, 0xc0, 0xbb},
-       {0x0a, 0x00, 0x79, 0xbb},
-       {0x0b, 0x00, 0x04, 0xbb},
-       {0x0c, 0x00, 0x5c, 0xbb},
-       {0x0d, 0x00, 0xd9, 0xbb},
-       {0x0e, 0x00, 0x53, 0xbb},
-       {0x0f, 0x00, 0x21, 0xbb},
-       {0x10, 0x00, 0xa4, 0xbb},
-       {0x11, 0x00, 0xe5, 0xbb},
-       {0x15, 0x00, 0x00, 0xbb},
-       {0x16, 0x00, 0x00, 0xbb},
-       {0x17, 0x00, 0x00, 0xbb},
-       {0x18, 0x00, 0x00, 0xbb},
-       {0x19, 0x00, 0x00, 0xbb},
-       {0x1a, 0x00, 0x00, 0xbb},
-       {0x1b, 0x00, 0x00, 0xbb},
-       {0x1c, 0x00, 0x00, 0xbb},
-       {0x1d, 0x00, 0x00, 0xbb},
-       {0x1e, 0x00, 0x00, 0xbb},
-       {0xf0, 0x00, 0x01, 0xbb},
-       {0x06, 0xe0, 0x0e, 0xbb},
-       {0x06, 0x60, 0x0e, 0xbb},
-       {0xb3, 0x5c, 0x01, 0xcc},
-       {}
-};
 static const u8 mi1320_soc_InitQVGA[][4] = {
        {0xb3, 0x01, 0x01, 0xcc},
        {0xb0, 0x03, 0x19, 0xcc},
@@ -1262,268 +1126,6 @@ static const u8 mi1320_soc_InitQVGA[][4] = {
        {0xb3, 0x5c, 0x01, 0xcc},
        {}
 };
-static const u8 mi1320_soc_InitQVGA_JPG[][4] = {
-       {0xb3, 0x01, 0x01, 0xcc},
-       {0xb0, 0x03, 0x19, 0xcc},
-       {0xb0, 0x04, 0x02, 0xcc},
-       {0x00, 0x00, 0x30, 0xdd},
-       {0xb3, 0x00, 0x64, 0xcc},
-       {0xb3, 0x00, 0x67, 0xcc},
-       {0xb3, 0x05, 0x01, 0xcc},
-       {0xb3, 0x06, 0x01, 0xcc},
-       {0xb3, 0x08, 0x01, 0xcc},
-       {0xb3, 0x09, 0x0c, 0xcc},
-       {0xb3, 0x34, 0x02, 0xcc},
-       {0xb3, 0x35, 0xc8, 0xcc},
-       {0xb3, 0x02, 0x00, 0xcc},
-       {0xb3, 0x03, 0x0a, 0xcc},
-       {0xb3, 0x04, 0x05, 0xcc},
-       {0xb3, 0x20, 0x00, 0xcc},
-       {0xb3, 0x21, 0x00, 0xcc},
-       {0xb3, 0x22, 0x01, 0xcc},
-       {0xb3, 0x23, 0xe0, 0xcc},
-       {0xb3, 0x14, 0x00, 0xcc},
-       {0xb3, 0x15, 0x00, 0xcc},
-       {0xb3, 0x16, 0x02, 0xcc},
-       {0xb3, 0x17, 0x7f, 0xcc},
-       {0xb3, 0x00, 0x67, 0xcc},
-       {0xb8, 0x00, 0x00, 0xcc},
-       {0xbc, 0x00, 0xd1, 0xcc},
-       {0xbc, 0x01, 0x01, 0xcc},
-       {0xb3, 0x5c, 0x01, 0xcc},
-       {0xf0, 0x00, 0x02, 0xbb},
-       {0x00, 0x00, 0x10, 0xdd},
-       {0xc8, 0x00, 0x00, 0xbb},
-       {0x00, 0x00, 0x30, 0xdd},
-       {0xf0, 0x00, 0x00, 0xbb},
-       {0x00, 0x00, 0x10, 0xdd},
-       {0x07, 0x00, 0xe0, 0xbb},
-       {0x08, 0x00, 0x0b, 0xbb},
-       {0x21, 0x00, 0x0c, 0xbb},
-       {0x20, 0x01, 0x03, 0xbb},
-       {0xb6, 0x00, 0x00, 0xcc},
-       {0xb6, 0x03, 0x01, 0xcc},
-       {0xb6, 0x02, 0x40, 0xcc},
-       {0xb6, 0x05, 0x00, 0xcc},
-       {0xb6, 0x04, 0xf0, 0xcc},
-       {0xb6, 0x12, 0xf8, 0xcc},
-       {0xb6, 0x13, 0x05, 0xcc},
-       {0xb6, 0x18, 0x00, 0xcc},
-       {0xb6, 0x17, 0x96, 0xcc},
-       {0xb6, 0x16, 0x00, 0xcc},
-       {0xb6, 0x22, 0x12, 0xcc},
-       {0xb6, 0x23, 0x0b, 0xcc},
-       {0xbf, 0xc0, 0x39, 0xcc},
-       {0xbf, 0xc1, 0x04, 0xcc},
-       {0xbf, 0xcc, 0x00, 0xcc},
-       {0xbc, 0x02, 0x18, 0xcc},
-       {0xbc, 0x03, 0x50, 0xcc},
-       {0xbc, 0x04, 0x18, 0xcc},
-       {0xbc, 0x05, 0x00, 0xcc},
-       {0xbc, 0x06, 0x00, 0xcc},
-       {0xbc, 0x08, 0x30, 0xcc},
-       {0xbc, 0x09, 0x40, 0xcc},
-       {0xbc, 0x0a, 0x10, 0xcc},
-       {0xbc, 0x0b, 0x00, 0xcc},
-       {0xbc, 0x0c, 0x00, 0xcc},
-       {0xb3, 0x01, 0x41, 0xcc},
-       {0xf0, 0x00, 0x00, 0xbb},
-       {0x05, 0x01, 0x78, 0xbb},
-       {0x06, 0x00, 0x11, 0xbb},
-       {0x07, 0x01, 0x42, 0xbb},
-       {0x08, 0x00, 0x11, 0xbb},
-       {0x20, 0x01, 0x03, 0xbb},
-       {0x21, 0x80, 0x00, 0xbb},
-       {0x22, 0x0d, 0x0f, 0xbb},
-       {0x24, 0x80, 0x00, 0xbb},
-       {0x59, 0x00, 0xff, 0xbb},
-       {0xf0, 0x00, 0x02, 0xbb},
-       {0x39, 0x03, 0xca, 0xbb},
-       {0x3a, 0x06, 0x80, 0xbb},
-       {0x3b, 0x01, 0x52, 0xbb},
-       {0x3c, 0x05, 0x40, 0xbb},
-       {0x57, 0x01, 0x9c, 0xbb},
-       {0x58, 0x01, 0xee, 0xbb},
-       {0x59, 0x00, 0xf0, 0xbb},
-       {0x5a, 0x01, 0x20, 0xbb},
-       {0x5c, 0x1d, 0x17, 0xbb},
-       {0x5d, 0x22, 0x1c, 0xbb},
-       {0x64, 0x1e, 0x1c, 0xbb},
-       {0x5b, 0x00, 0x00, 0xbb},
-       {0xf0, 0x00, 0x02, 0xbb},
-       {0x22, 0xa0, 0x78, 0xbb},
-       {0x23, 0xa0, 0x78, 0xbb},
-       {0x24, 0x7f, 0x00, 0xbb},
-       {0x28, 0xea, 0x02, 0xbb},
-       {0x29, 0x86, 0x7a, 0xbb},
-       {0x5e, 0x52, 0x4c, 0xbb},
-       {0x5f, 0x20, 0x24, 0xbb},
-       {0x60, 0x00, 0x02, 0xbb},
-       {0x02, 0x00, 0xee, 0xbb},
-       {0x03, 0x39, 0x23, 0xbb},
-       {0x04, 0x07, 0x24, 0xbb},
-       {0x09, 0x00, 0xc0, 0xbb},
-       {0x0a, 0x00, 0x79, 0xbb},
-       {0x0b, 0x00, 0x04, 0xbb},
-       {0x0c, 0x00, 0x5c, 0xbb},
-       {0x0d, 0x00, 0xd9, 0xbb},
-       {0x0e, 0x00, 0x53, 0xbb},
-       {0x0f, 0x00, 0x21, 0xbb},
-       {0x10, 0x00, 0xa4, 0xbb},
-       {0x11, 0x00, 0xe5, 0xbb},
-       {0x15, 0x00, 0x00, 0xbb},
-       {0x16, 0x00, 0x00, 0xbb},
-       {0x17, 0x00, 0x00, 0xbb},
-       {0x18, 0x00, 0x00, 0xbb},
-       {0x19, 0x00, 0x00, 0xbb},
-       {0x1a, 0x00, 0x00, 0xbb},
-       {0x1b, 0x00, 0x00, 0xbb},
-       {0x1c, 0x00, 0x00, 0xbb},
-       {0x1d, 0x00, 0x00, 0xbb},
-       {0x1e, 0x00, 0x00, 0xbb},
-       {0xf0, 0x00, 0x01, 0xbb},
-       {0x06, 0xe0, 0x0e, 0xbb},
-       {0x06, 0x60, 0x0e, 0xbb},
-       {0xb3, 0x5c, 0x01, 0xcc},
-       {}
-};
-static const u8 mi1320_soc_InitSXGA_JPG[][4] = {
-       {0xb3, 0x01, 0x01, 0xcc},
-       {0xb0, 0x03, 0x19, 0xcc},
-       {0xb0, 0x04, 0x02, 0xcc},
-       {0x00, 0x00, 0x33, 0xdd},
-       {0xb3, 0x00, 0x64, 0xcc},
-       {0xb3, 0x00, 0x67, 0xcc},
-       {0xb3, 0x05, 0x00, 0xcc},
-       {0xb3, 0x06, 0x00, 0xcc},
-       {0xb3, 0x08, 0x01, 0xcc},
-       {0xb3, 0x09, 0x0c, 0xcc},
-       {0xb3, 0x34, 0x02, 0xcc},
-       {0xb3, 0x35, 0xc8, 0xcc},
-       {0xb3, 0x02, 0x00, 0xcc},
-       {0xb3, 0x03, 0x0a, 0xcc},
-       {0xb3, 0x04, 0x05, 0xcc},
-       {0xb3, 0x20, 0x00, 0xcc},
-       {0xb3, 0x21, 0x00, 0xcc},
-       {0xb3, 0x22, 0x04, 0xcc},
-       {0xb3, 0x23, 0x00, 0xcc},
-       {0xb3, 0x14, 0x00, 0xcc},
-       {0xb3, 0x15, 0x00, 0xcc},
-       {0xb3, 0x16, 0x04, 0xcc},
-       {0xb3, 0x17, 0xff, 0xcc},
-       {0xb3, 0x00, 0x67, 0xcc},
-       {0xbc, 0x00, 0x71, 0xcc},
-       {0xbc, 0x01, 0x01, 0xcc},
-       {0xf0, 0x00, 0x02, 0xbb},
-       {0x00, 0x00, 0x30, 0xdd},
-       {0xc8, 0x9f, 0x0b, 0xbb},
-       {0x00, 0x00, 0x20, 0xdd},
-       {0x5b, 0x00, 0x01, 0xbb},
-       {0x00, 0x00, 0x20, 0xdd},
-       {0xf0, 0x00, 0x00, 0xbb},
-       {0x00, 0x00, 0x30, 0xdd},
-       {0x20, 0x01, 0x03, 0xbb},
-       {0x00, 0x00, 0x20, 0xdd},
-       {0xb6, 0x00, 0x00, 0xcc},
-       {0xb6, 0x03, 0x05, 0xcc},
-       {0xb6, 0x02, 0x00, 0xcc},
-       {0xb6, 0x05, 0x04, 0xcc},
-       {0xb6, 0x04, 0x00, 0xcc},
-       {0xb6, 0x12, 0xf8, 0xcc},
-       {0xb6, 0x13, 0x29, 0xcc},
-       {0xb6, 0x18, 0x0a, 0xcc},
-       {0xb6, 0x17, 0x00, 0xcc},
-       {0xb6, 0x16, 0x00, 0xcc},
-       {0xb6, 0x22, 0x12, 0xcc},
-       {0xb6, 0x23, 0x0b, 0xcc},
-       {0xbf, 0xc0, 0x39, 0xcc},
-       {0xbf, 0xc1, 0x04, 0xcc},
-       {0xbf, 0xcc, 0x00, 0xcc},
-       {0xb3, 0x5c, 0x01, 0xcc},
-       {0xb3, 0x01, 0x41, 0xcc},
-       {0xf0, 0x00, 0x00, 0xbb},
-       {0x05, 0x01, 0x78, 0xbb},
-       {0x06, 0x00, 0x11, 0xbb},
-       {0x07, 0x01, 0x42, 0xbb},
-       {0x08, 0x00, 0x11, 0xbb},
-       {0x20, 0x01, 0x03, 0xbb},
-       {0x21, 0x80, 0x00, 0xbb},
-       {0x22, 0x0d, 0x0f, 0xbb},
-       {0x24, 0x80, 0x00, 0xbb},
-       {0x59, 0x00, 0xff, 0xbb},
-       {0xf0, 0x00, 0x02, 0xbb},
-       {0x39, 0x03, 0xca, 0xbb},
-       {0x3a, 0x06, 0x80, 0xbb},
-       {0x3b, 0x01, 0x52, 0xbb},
-       {0x3c, 0x05, 0x40, 0xbb},
-       {0x57, 0x01, 0x9c, 0xbb},
-       {0x58, 0x01, 0xee, 0xbb},
-       {0x59, 0x00, 0xf0, 0xbb},
-       {0x5a, 0x01, 0x20, 0xbb},
-       {0x5c, 0x1d, 0x17, 0xbb},
-       {0x5d, 0x22, 0x1c, 0xbb},
-       {0x64, 0x1e, 0x1c, 0xbb},
-       {0x5b, 0x00, 0x00, 0xbb},
-       {0xf0, 0x00, 0x02, 0xbb},
-       {0x22, 0xa0, 0x78, 0xbb},
-       {0x23, 0xa0, 0x78, 0xbb},
-       {0x24, 0x7f, 0x00, 0xbb},
-       {0x28, 0xea, 0x02, 0xbb},
-       {0x29, 0x86, 0x7a, 0xbb},
-       {0x5e, 0x52, 0x4c, 0xbb},
-       {0x5f, 0x20, 0x24, 0xbb},
-       {0x60, 0x00, 0x02, 0xbb},
-       {0x02, 0x00, 0xee, 0xbb},
-       {0x03, 0x39, 0x23, 0xbb},
-       {0x04, 0x07, 0x24, 0xbb},
-       {0x09, 0x00, 0xc0, 0xbb},
-       {0x0a, 0x00, 0x79, 0xbb},
-       {0x0b, 0x00, 0x04, 0xbb},
-       {0x0c, 0x00, 0x5c, 0xbb},
-       {0x0d, 0x00, 0xd9, 0xbb},
-       {0x0e, 0x00, 0x53, 0xbb},
-       {0x0f, 0x00, 0x21, 0xbb},
-       {0x10, 0x00, 0xa4, 0xbb},
-       {0x11, 0x00, 0xe5, 0xbb},
-       {0x15, 0x00, 0x00, 0xbb},
-       {0x16, 0x00, 0x00, 0xbb},
-       {0x17, 0x00, 0x00, 0xbb},
-       {0x18, 0x00, 0x00, 0xbb},
-       {0x19, 0x00, 0x00, 0xbb},
-       {0x1a, 0x00, 0x00, 0xbb},
-       {0x1b, 0x00, 0x00, 0xbb},
-       {0x1c, 0x00, 0x00, 0xbb},
-       {0x1d, 0x00, 0x00, 0xbb},
-       {0x1e, 0x00, 0x00, 0xbb},
-       {0xf0, 0x00, 0x01, 0xbb},
-       {0x06, 0xe0, 0x0e, 0xbb},
-       {0x06, 0x60, 0x0e, 0xbb},
-       {0xb3, 0x5c, 0x01, 0xcc},
-       {0xf0, 0x00, 0x00, 0xbb},
-       {0x05, 0x01, 0x13, 0xbb},
-       {0x06, 0x00, 0x11, 0xbb},
-       {0x07, 0x00, 0x85, 0xbb},
-       {0x08, 0x00, 0x27, 0xbb},
-       {0x20, 0x01, 0x03, 0xbb},
-       {0x21, 0x80, 0x00, 0xbb},
-       {0x22, 0x0d, 0x0f, 0xbb},
-       {0x24, 0x80, 0x00, 0xbb},
-       {0x59, 0x00, 0xff, 0xbb},
-       {0xf0, 0x00, 0x02, 0xbb},
-       {0x39, 0x03, 0x0d, 0xbb},
-       {0x3a, 0x06, 0x1b, 0xbb},
-       {0x3b, 0x00, 0x95, 0xbb},
-       {0x3c, 0x04, 0xdb, 0xbb},
-       {0x57, 0x02, 0x00, 0xbb},
-       {0x58, 0x02, 0x66, 0xbb},
-       {0x59, 0x00, 0xff, 0xbb},
-       {0x5a, 0x01, 0x33, 0xbb},
-       {0x5c, 0x12, 0x0d, 0xbb},
-       {0x5d, 0x16, 0x11, 0xbb},
-       {0x64, 0x5e, 0x1c, 0xbb},
-       {0x2f, 0x90, 0x00, 0xbb},
-       {}
-};
 static const u8 mi1320_soc_InitSXGA[][4] = {
        {0xb3, 0x01, 0x01, 0xcc},
        {0xb0, 0x03, 0x19, 0xcc},
@@ -3015,11 +2617,8 @@ static int sd_start(struct gspca_dev *gspca_dev)
        int mode;
        static const u8 (*mi1320_soc_init[])[4] = {
                mi1320_soc_InitSXGA,
-               mi1320_soc_InitSXGA_JPG,
                mi1320_soc_InitVGA,
-               mi1320_soc_InitVGA_JPG,
                mi1320_soc_InitQVGA,
-               mi1320_soc_InitQVGA_JPG
        };
 
        /* Assume start use the good resolution from gspca_dev->mode */
index eca8bf9..b0195e8 100644 (file)
@@ -884,12 +884,9 @@ static void ivtv_load_and_init_modules(struct ivtv *itv)
        }
        else if (itv->card->type == IVTV_CARD_GV_MVPRX ||
                 itv->card->type == IVTV_CARD_GV_MVPRX2E) {
-               struct v4l2_crystal_freq crystal_freq;
-
                /* The crystal frequency of GVMVPRX is 24.576MHz */
-               crystal_freq.freq = SAA7115_FREQ_24_576_MHZ;
-               crystal_freq.flags = SAA7115_FREQ_FL_UCGC;
-               v4l2_subdev_call(itv->sd_video, video, s_crystal_freq, &crystal_freq);
+               v4l2_subdev_call(itv->sd_video, video, s_crystal_freq,
+                       SAA7115_FREQ_24_576_MHZ, SAA7115_FREQ_FL_UCGC);
        }
 
        if (hw & IVTV_HW_CX25840) {
@@ -1234,7 +1231,7 @@ int ivtv_init_on_first_open(struct ivtv *itv)
        if (itv->card->hw_all & IVTV_HW_CX25840) {
                struct v4l2_control ctrl;
 
-               v4l2_subdev_call(itv->sd_video, core, init, 0);
+               v4l2_subdev_call(itv->sd_video, core, load_fw);
                /* CX25840_CID_ENABLE_PVR150_WORKAROUND */
                ctrl.id = V4L2_CID_PRIVATE_BASE;
                ctrl.value = itv->pvr150_workaround;
index cfaacf6..e707ef3 100644 (file)
@@ -857,15 +857,12 @@ int ivtv_v4l2_close(struct file *filp)
                /* Mark that the radio is no longer in use */
                clear_bit(IVTV_F_I_RADIO_USER, &itv->i_flags);
                /* Switch tuner to TV */
-               ivtv_call_all(itv, tuner, s_std, itv->std);
+               ivtv_call_all(itv, core, s_std, itv->std);
                /* Select correct audio input (i.e. TV tuner or Line in) */
                ivtv_audio_set_io(itv);
-               if (itv->hw_flags & IVTV_HW_SAA711X)
-               {
-                       struct v4l2_crystal_freq crystal_freq;
-                       crystal_freq.freq = SAA7115_FREQ_32_11_MHZ;
-                       crystal_freq.flags = 0;
-                       ivtv_call_hw(itv, IVTV_HW_SAA711X, video, s_crystal_freq, &crystal_freq);
+               if (itv->hw_flags & IVTV_HW_SAA711X) {
+                       ivtv_call_hw(itv, IVTV_HW_SAA711X, video, s_crystal_freq,
+                                       SAA7115_FREQ_32_11_MHZ, 0);
                }
                if (atomic_read(&itv->capturing) > 0) {
                        /* Undo video mute */
@@ -956,10 +953,8 @@ static int ivtv_serialized_open(struct ivtv_stream *s, struct file *filp)
                /* Select the correct audio input (i.e. radio tuner) */
                ivtv_audio_set_io(itv);
                if (itv->hw_flags & IVTV_HW_SAA711X) {
-                       struct v4l2_crystal_freq crystal_freq;
-                       crystal_freq.freq = SAA7115_FREQ_32_11_MHZ;
-                       crystal_freq.flags = SAA7115_FREQ_FL_APLL;
-                       ivtv_call_hw(itv, IVTV_HW_SAA711X, video, s_crystal_freq, &crystal_freq);
+                       ivtv_call_hw(itv, IVTV_HW_SAA711X, video, s_crystal_freq,
+                               SAA7115_FREQ_32_11_MHZ, SAA7115_FREQ_FL_APLL);
                }
                /* Done! Unmute and continue. */
                ivtv_unmute(itv);
index 3321983..ceb05bd 100644 (file)
@@ -248,15 +248,16 @@ static int subdev_s_std(struct v4l2_subdev *sd, v4l2_std_id std)
        return 0;
 }
 
-static int subdev_s_audio_routing(struct v4l2_subdev *sd, const struct v4l2_routing *route)
+static int subdev_s_audio_routing(struct v4l2_subdev *sd,
+                                 u32 input, u32 output, u32 config)
 {
        struct ivtv *itv = sd_to_ivtv(sd);
        u16 mask, data;
 
-       if (route->input > 2)
+       if (input > 2)
                return -EINVAL;
        mask = itv->card->gpio_audio_input.mask;
-       switch (route->input) {
+       switch (input) {
        case 0:
                data = itv->card->gpio_audio_input.tuner;
                break;
@@ -318,17 +319,18 @@ static int subdev_log_status(struct v4l2_subdev *sd)
        return 0;
 }
 
-static int subdev_s_video_routing(struct v4l2_subdev *sd, const struct v4l2_routing *route)
+static int subdev_s_video_routing(struct v4l2_subdev *sd,
+                                 u32 input, u32 output, u32 config)
 {
        struct ivtv *itv = sd_to_ivtv(sd);
        u16 mask, data;
 
-       if (route->input > 2) /* 0:Tuner 1:Composite 2:S-Video */
+       if (input > 2) /* 0:Tuner 1:Composite 2:S-Video */
                return -EINVAL;
        mask = itv->card->gpio_video_input.mask;
-       if  (route->input == 0)
+       if (input == 0)
                data = itv->card->gpio_video_input.tuner;
-       else if  (route->input == 1)
+       else if (input == 1)
                data = itv->card->gpio_video_input.composite;
        else
                data = itv->card->gpio_video_input.svideo;
@@ -342,10 +344,10 @@ static const struct v4l2_subdev_core_ops subdev_core_ops = {
        .g_ctrl = subdev_g_ctrl,
        .s_ctrl = subdev_s_ctrl,
        .queryctrl = subdev_queryctrl,
+       .s_std = subdev_s_std,
 };
 
 static const struct v4l2_subdev_tuner_ops subdev_tuner_ops = {
-       .s_std = subdev_s_std,
        .s_radio = subdev_s_radio,
        .g_tuner = subdev_g_tuner,
        .s_tuner = subdev_s_tuner,
index e73a196..9e3d32b 100644 (file)
@@ -161,15 +161,18 @@ int ivtv_i2c_register(struct ivtv *itv, unsigned idx)
                return -1;
        if (hw == IVTV_HW_TUNER) {
                /* special tuner handling */
-               sd = v4l2_i2c_new_probed_subdev(adap, mod, type,
+               sd = v4l2_i2c_new_probed_subdev(&itv->v4l2_dev,
+                               adap, mod, type,
                                itv->card_i2c->radio);
                if (sd)
                        sd->grp_id = 1 << idx;
-               sd = v4l2_i2c_new_probed_subdev(adap, mod, type,
+               sd = v4l2_i2c_new_probed_subdev(&itv->v4l2_dev,
+                               adap, mod, type,
                                itv->card_i2c->demod);
                if (sd)
                        sd->grp_id = 1 << idx;
-               sd = v4l2_i2c_new_probed_subdev(adap, mod, type,
+               sd = v4l2_i2c_new_probed_subdev(&itv->v4l2_dev,
+                               adap, mod, type,
                                itv->card_i2c->tv);
                if (sd)
                        sd->grp_id = 1 << idx;
@@ -178,11 +181,11 @@ int ivtv_i2c_register(struct ivtv *itv, unsigned idx)
        if (!hw_addrs[idx])
                return -1;
        if (hw == IVTV_HW_UPD64031A || hw == IVTV_HW_UPD6408X) {
-               unsigned short addrs[2] = { hw_addrs[idx], I2C_CLIENT_END };
-
-               sd = v4l2_i2c_new_probed_subdev(adap, mod, type, addrs);
+               sd = v4l2_i2c_new_probed_subdev_addr(&itv->v4l2_dev,
+                               adap, mod, type, hw_addrs[idx]);
        } else {
-               sd = v4l2_i2c_new_subdev(adap, mod, type, hw_addrs[idx]);
+               sd = v4l2_i2c_new_subdev(&itv->v4l2_dev,
+                               adap, mod, type, hw_addrs[idx]);
        }
        if (sd)
                sd->grp_id = 1 << idx;
index 9a04242..4a2d464 100644 (file)
@@ -1033,7 +1033,6 @@ static int ivtv_g_output(struct file *file, void *fh, unsigned int *i)
 static int ivtv_s_output(struct file *file, void *fh, unsigned int outp)
 {
        struct ivtv *itv = ((struct ivtv_open_id *)fh)->itv;
-       struct v4l2_routing route;
 
        if (outp >= itv->card->nof_outputs)
                return -EINVAL;
@@ -1046,9 +1045,9 @@ static int ivtv_s_output(struct file *file, void *fh, unsigned int outp)
                   itv->active_output, outp);
 
        itv->active_output = outp;
-       route.input = SAA7127_INPUT_TYPE_NORMAL;
-       route.output = itv->card->video_outputs[outp].video_output;
-       ivtv_call_hw(itv, IVTV_HW_SAA7127, video, s_routing, &route);
+       ivtv_call_hw(itv, IVTV_HW_SAA7127, video, s_routing,
+                       SAA7127_INPUT_TYPE_NORMAL,
+                       itv->card->video_outputs[outp].video_output, 0);
 
        return 0;
 }
@@ -1121,7 +1120,7 @@ int ivtv_s_std(struct file *file, void *fh, v4l2_std_id *std)
        IVTV_DEBUG_INFO("Switching standard to %llx.\n", (unsigned long long)itv->std);
 
        /* Tuner */
-       ivtv_call_all(itv, tuner, s_std, itv->std);
+       ivtv_call_all(itv, core, s_std, itv->std);
 
        if (itv->v4l2_cap & V4L2_CAP_VIDEO_OUTPUT) {
                /* set display standard */
@@ -1735,13 +1734,6 @@ static long ivtv_default(struct file *file, void *fh, int cmd, void *arg)
        struct ivtv *itv = ((struct ivtv_open_id *)fh)->itv;
 
        switch (cmd) {
-       case VIDIOC_INT_S_AUDIO_ROUTING: {
-               struct v4l2_routing *route = arg;
-
-               ivtv_call_hw(itv, itv->card->hw_audio, audio, s_routing, route);
-               break;
-       }
-
        case VIDIOC_INT_RESET: {
                u32 val = *(u32 *)arg;
 
index 3fd3022..8898c56 100644 (file)
@@ -34,7 +34,7 @@
 void ivtv_audio_set_io(struct ivtv *itv)
 {
        const struct ivtv_card_audio_input *in;
-       struct v4l2_routing route;
+       u32 input, output = 0;
 
        /* Determine which input to use */
        if (test_bit(IVTV_F_I_RADIO_USER, &itv->i_flags))
@@ -43,73 +43,77 @@ void ivtv_audio_set_io(struct ivtv *itv)
                in = &itv->card->audio_inputs[itv->audio_input];
 
        /* handle muxer chips */
-       route.input = in->muxer_input;
-       route.output = 0;
+       input = in->muxer_input;
        if (itv->card->hw_muxer & IVTV_HW_M52790)
-               route.output = M52790_OUT_STEREO;
-       v4l2_subdev_call(itv->sd_muxer, audio, s_routing, &route);
+               output = M52790_OUT_STEREO;
+       v4l2_subdev_call(itv->sd_muxer, audio, s_routing,
+                       input, output, 0);
 
-       route.input = in->audio_input;
-       route.output = 0;
+       input = in->audio_input;
+       output = 0;
        if (itv->card->hw_audio & IVTV_HW_MSP34XX)
-               route.output = MSP_OUTPUT(MSP_SC_IN_DSP_SCART1);
-       ivtv_call_hw(itv, itv->card->hw_audio, audio, s_routing, &route);
+               output = MSP_OUTPUT(MSP_SC_IN_DSP_SCART1);
+       ivtv_call_hw(itv, itv->card->hw_audio, audio, s_routing,
+                       input, output, 0);
 }
 
 /* Selects the video input and output according to the current
    settings. */
 void ivtv_video_set_io(struct ivtv *itv)
 {
-       struct v4l2_routing route;
        int inp = itv->active_input;
+       u32 input;
        u32 type;
 
-       route.input = itv->card->video_inputs[inp].video_input;
-       route.output = 0;
-       v4l2_subdev_call(itv->sd_video, video, s_routing, &route);
+       v4l2_subdev_call(itv->sd_video, video, s_routing,
+               itv->card->video_inputs[inp].video_input, 0, 0);
 
        type = itv->card->video_inputs[inp].video_type;
 
        if (type == IVTV_CARD_INPUT_VID_TUNER) {
-               route.input = 0;  /* Tuner */
+               input = 0;  /* Tuner */
        } else if (type < IVTV_CARD_INPUT_COMPOSITE1) {
-               route.input = 2;  /* S-Video */
+               input = 2;  /* S-Video */
        } else {
-               route.input = 1;  /* Composite */
+               input = 1;  /* Composite */
        }
 
        if (itv->card->hw_video & IVTV_HW_GPIO)
-               ivtv_call_hw(itv, IVTV_HW_GPIO, video, s_routing, &route);
+               ivtv_call_hw(itv, IVTV_HW_GPIO, video, s_routing,
+                               input, 0, 0);
 
        if (itv->card->hw_video & IVTV_HW_UPD64031A) {
                if (type == IVTV_CARD_INPUT_VID_TUNER ||
                    type >= IVTV_CARD_INPUT_COMPOSITE1) {
                        /* Composite: GR on, connect to 3DYCS */
-                       route.input = UPD64031A_GR_ON | UPD64031A_3DYCS_COMPOSITE;
+                       input = UPD64031A_GR_ON | UPD64031A_3DYCS_COMPOSITE;
                } else {
                        /* S-Video: GR bypassed, turn it off */
-                       route.input = UPD64031A_GR_OFF | UPD64031A_3DYCS_DISABLE;
+                       input = UPD64031A_GR_OFF | UPD64031A_3DYCS_DISABLE;
                }
-               route.input |= itv->card->gr_config;
+               input |= itv->card->gr_config;
 
-               ivtv_call_hw(itv, IVTV_HW_UPD64031A, video, s_routing, &route);
+               ivtv_call_hw(itv, IVTV_HW_UPD64031A, video, s_routing,
+                               input, 0, 0);
        }
 
        if (itv->card->hw_video & IVTV_HW_UPD6408X) {
-               route.input = UPD64083_YCS_MODE;
+               input = UPD64083_YCS_MODE;
                if (type > IVTV_CARD_INPUT_VID_TUNER &&
                    type < IVTV_CARD_INPUT_COMPOSITE1) {
-                       /* S-Video uses YCNR mode and internal Y-ADC, the upd64031a
-                          is not used. */
-                       route.input |= UPD64083_YCNR_MODE;
+                       /* S-Video uses YCNR mode and internal Y-ADC, the
+                          upd64031a is not used. */
+                       input |= UPD64083_YCNR_MODE;
                }
                else if (itv->card->hw_video & IVTV_HW_UPD64031A) {
-                 /* Use upd64031a output for tuner and composite(CX23416GYC only) inputs */
-                 if ((type == IVTV_CARD_INPUT_VID_TUNER)||
-                     (itv->card->type == IVTV_CARD_CX23416GYC)) {
-                   route.input |= UPD64083_EXT_Y_ADC;
-                 }
+                       /* Use upd64031a output for tuner and
+                          composite(CX23416GYC only) inputs */
+                       if (type == IVTV_CARD_INPUT_VID_TUNER ||
+                           itv->card->type == IVTV_CARD_CX23416GYC) {
+                               input |= UPD64083_EXT_Y_ADC;
+                       }
                }
-               ivtv_call_hw(itv, IVTV_HW_UPD6408X, video, s_routing, &route);
+               ivtv_call_hw(itv, IVTV_HW_UPD6408X, video, s_routing,
+                               input, 0, 0);
        }
 }
index 841024b..fab8e02 100644 (file)
@@ -409,11 +409,12 @@ static void ks0127_init(struct v4l2_subdev *sd)
        }
 }
 
-static int ks0127_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *route)
+static int ks0127_s_routing(struct v4l2_subdev *sd,
+                           u32 input, u32 output, u32 config)
 {
        struct ks0127 *ks = to_ks0127(sd);
 
-       switch (route->input) {
+       switch (input) {
        case KS_INPUT_COMPOSITE_1:
        case KS_INPUT_COMPOSITE_2:
        case KS_INPUT_COMPOSITE_3:
@@ -421,13 +422,13 @@ static int ks0127_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *r
        case KS_INPUT_COMPOSITE_5:
        case KS_INPUT_COMPOSITE_6:
                v4l2_dbg(1, debug, sd,
-                       "s_routing %d: Composite\n", route->input);
+                       "s_routing %d: Composite\n", input);
                /* autodetect 50/60 Hz */
                ks0127_and_or(sd, KS_CMDA,   0xfc, 0x00);
                /* VSE=0 */
                ks0127_and_or(sd, KS_CMDA,   ~0x40, 0x00);
                /* set input line */
-               ks0127_and_or(sd, KS_CMDB,   0xb0, route->input);
+               ks0127_and_or(sd, KS_CMDB,   0xb0, input);
                /* non-freerunning mode */
                ks0127_and_or(sd, KS_CMDC,   0x70, 0x0a);
                /* analog input */
@@ -455,13 +456,13 @@ static int ks0127_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *r
        case KS_INPUT_SVIDEO_2:
        case KS_INPUT_SVIDEO_3:
                v4l2_dbg(1, debug, sd,
-                       "s_routing %d: S-Video\n", route->input);
+                       "s_routing %d: S-Video\n", input);
                /* autodetect 50/60 Hz */
                ks0127_and_or(sd, KS_CMDA,   0xfc, 0x00);
                /* VSE=0 */
                ks0127_and_or(sd, KS_CMDA,   ~0x40, 0x00);
                /* set input line */
-               ks0127_and_or(sd, KS_CMDB,   0xb0, route->input);
+               ks0127_and_or(sd, KS_CMDB,   0xb0, input);
                /* non-freerunning mode */
                ks0127_and_or(sd, KS_CMDC,   0x70, 0x0a);
                /* analog input */
@@ -496,7 +497,7 @@ static int ks0127_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *r
 
                ks0127_and_or(sd, KS_CMDA,   0xff, 0x40); /* VSE=1 */
                /* set input line and VALIGN */
-               ks0127_and_or(sd, KS_CMDB,   0xb0, (route->input | 0x40));
+               ks0127_and_or(sd, KS_CMDB,   0xb0, (input | 0x40));
                /* freerunning mode, */
                /* TSTGEN = 1 TSTGFR=11 TSTGPH=0 TSTGPK=0  VMEM=1*/
                ks0127_and_or(sd, KS_CMDC,   0x70, 0x87);
@@ -531,7 +532,7 @@ static int ks0127_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *r
 
        default:
                v4l2_dbg(1, debug, sd,
-                       "s_routing: Unknown input %d\n", route->input);
+                       "s_routing: Unknown input %d\n", input);
                break;
        }
 
@@ -648,9 +649,6 @@ static int ks0127_g_chip_ident(struct v4l2_subdev *sd, struct v4l2_dbg_chip_iden
 
 static const struct v4l2_subdev_core_ops ks0127_core_ops = {
        .g_chip_ident = ks0127_g_chip_ident,
-};
-
-static const struct v4l2_subdev_tuner_ops ks0127_tuner_ops = {
        .s_std = ks0127_s_std,
 };
 
@@ -663,7 +661,6 @@ static const struct v4l2_subdev_video_ops ks0127_video_ops = {
 
 static const struct v4l2_subdev_ops ks0127_ops = {
        .core = &ks0127_core_ops,
-       .tuner = &ks0127_tuner_ops,
        .video = &ks0127_video_ops,
 };
 
index 1f340fe..d7317e7 100644 (file)
@@ -69,12 +69,13 @@ static int m52790_write(struct v4l2_subdev *sd)
    part of the audio output routing. The normal case is that another
    chip takes care of the actual muting so making it part of the
    output routing seems to be the right thing to do for now. */
-static int m52790_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *route)
+static int m52790_s_routing(struct v4l2_subdev *sd,
+                           u32 input, u32 output, u32 config)
 {
        struct m52790_state *state = to_state(sd);
 
-       state->input = route->input;
-       state->output = route->output;
+       state->input = input;
+       state->output = output;
        m52790_write(sd);
        return 0;
 }
index 9e8e06c..e9df3cb 100644 (file)
@@ -56,7 +56,7 @@
 #include <linux/videodev2.h>
 #include <media/v4l2-device.h>
 #include <media/v4l2-ioctl.h>
-#include <media/v4l2-i2c-drv-legacy.h>
+#include <media/v4l2-i2c-drv.h>
 #include <media/msp3400.h>
 #include <media/tvaudio.h>
 #include "msp3400-driver.h"
@@ -108,10 +108,6 @@ MODULE_PARM_DESC(dolby, "Activates Dolby processsing");
 /* DSP unit subaddress */
 #define I2C_MSP_DSP     0x12
 
-/* Addresses to scan */
-static unsigned short normal_i2c[] = { 0x80 >> 1, 0x88 >> 1, I2C_CLIENT_END };
-
-I2C_CLIENT_INSMOD;
 
 /* ----------------------------------------------------------------------- */
 /* functions for talking to the MSP3400C Sound processor                   */
@@ -509,25 +505,26 @@ static int msp_s_std(struct v4l2_subdev *sd, v4l2_std_id id)
        return 0;
 }
 
-static int msp_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *rt)
+static int msp_s_routing(struct v4l2_subdev *sd,
+                        u32 input, u32 output, u32 config)
 {
        struct msp_state *state = to_state(sd);
        struct i2c_client *client = v4l2_get_subdevdata(sd);
-       int tuner = (rt->input >> 3) & 1;
-       int sc_in = rt->input & 0x7;
-       int sc1_out = rt->output & 0xf;
-       int sc2_out = (rt->output >> 4) & 0xf;
+       int tuner = (input >> 3) & 1;
+       int sc_in = input & 0x7;
+       int sc1_out = output & 0xf;
+       int sc2_out = (output >> 4) & 0xf;
        u16 val, reg;
        int i;
        int extern_input = 1;
 
-       if (state->routing.input == rt->input &&
-                       state->routing.output == rt->output)
+       if (state->route_in == input && state->route_out == output)
                return 0;
-       state->routing = *rt;
+       state->route_in = input;
+       state->route_out = output;
        /* check if the tuner input is used */
        for (i = 0; i < 5; i++) {
-               if (((rt->input >> (4 + i * 4)) & 0xf) == 0)
+               if (((input >> (4 + i * 4)) & 0xf) == 0)
                        extern_input = 0;
        }
        state->mode = extern_input ? MSP_MODE_EXTERN : MSP_MODE_AM_DETECT;
@@ -677,7 +674,7 @@ static int msp_log_status(struct v4l2_subdev *sd)
        }
        v4l_info(client, "Audmode:  0x%04x\n", state->audmode);
        v4l_info(client, "Routing:  0x%08x (input) 0x%08x (output)\n",
-                       state->routing.input, state->routing.output);
+                       state->route_in, state->route_out);
        v4l_info(client, "ACB:      0x%04x\n", state->acb);
        return 0;
 }
@@ -696,11 +693,6 @@ static int msp_resume(struct i2c_client *client)
        return 0;
 }
 
-static int msp_command(struct i2c_client *client, unsigned cmd, void *arg)
-{
-       return v4l2_subdev_command(i2c_get_clientdata(client), cmd, arg);
-}
-
 /* ----------------------------------------------------------------------- */
 
 static const struct v4l2_subdev_core_ops msp_core_ops = {
@@ -709,6 +701,7 @@ static const struct v4l2_subdev_core_ops msp_core_ops = {
        .g_ctrl = msp_g_ctrl,
        .s_ctrl = msp_s_ctrl,
        .queryctrl = msp_queryctrl,
+       .s_std = msp_s_std,
 };
 
 static const struct v4l2_subdev_tuner_ops msp_tuner_ops = {
@@ -716,7 +709,6 @@ static const struct v4l2_subdev_tuner_ops msp_tuner_ops = {
        .g_tuner = msp_g_tuner,
        .s_tuner = msp_s_tuner,
        .s_radio = msp_s_radio,
-       .s_std = msp_s_std,
 };
 
 static const struct v4l2_subdev_audio_ops msp_audio_ops = {
@@ -770,8 +762,8 @@ static int msp_probe(struct i2c_client *client, const struct i2c_device_id *id)
        state->i2s_mode = 0;
        init_waitqueue_head(&state->wq);
        /* These are the reset input/output positions */
-       state->routing.input = MSP_INPUT_DEFAULT;
-       state->routing.output = MSP_OUTPUT_DEFAULT;
+       state->route_in = MSP_INPUT_DEFAULT;
+       state->route_out = MSP_OUTPUT_DEFAULT;
 
        state->rev1 = msp_read_dsp(client, 0x1e);
        if (state->rev1 != -1)
@@ -925,8 +917,6 @@ MODULE_DEVICE_TABLE(i2c, msp_id);
 
 static struct v4l2_i2c_driver_data v4l2_i2c_data = {
        .name = "msp3400",
-       .driverid = I2C_DRIVERID_MSP3400,
-       .command = msp_command,
        .probe = msp_probe,
        .remove = msp_remove,
        .suspend = msp_suspend,
index 3fe1c1b..d6b3e6d 100644 (file)
@@ -80,7 +80,8 @@ struct msp_state {
        int i2s_mode;
        int main, second;       /* sound carrier */
        int input;
-       struct v4l2_routing routing;
+       u32 route_in;
+       u32 route_out;
 
        /* v4l2 */
        int audmode;
index a655e9c..168bca7 100644 (file)
@@ -188,7 +188,7 @@ void msp3400c_set_mode(struct i2c_client *client, int mode)
 {
        struct msp_state *state = to_state(i2c_get_clientdata(client));
        struct msp3400c_init_data_dem *data = &msp3400c_init_data[mode];
-       int tuner = (state->routing.input >> 3) & 1;
+       int tuner = (state->route_in >> 3) & 1;
        int i;
 
        v4l_dbg(1, msp_debug, client, "set_mode: %d\n", mode);
@@ -896,7 +896,7 @@ static void msp34xxg_set_source(struct i2c_client *client, u16 reg, int in)
 static void msp34xxg_set_sources(struct i2c_client *client)
 {
        struct msp_state *state = to_state(i2c_get_clientdata(client));
-       u32 in = state->routing.input;
+       u32 in = state->route_in;
 
        msp34xxg_set_source(client, 0x0008, (in >> 4) & 0xf);
        /* quasi-peak detector is set to same input as the loudspeaker (MAIN) */
@@ -912,7 +912,7 @@ static void msp34xxg_set_sources(struct i2c_client *client)
 static void msp34xxg_reset(struct i2c_client *client)
 {
        struct msp_state *state = to_state(i2c_get_clientdata(client));
-       int tuner = (state->routing.input >> 3) & 1;
+       int tuner = (state->route_in >> 3) & 1;
        int modus;
 
        /* initialize std to 1 (autodetect) to signal that no standard is
index fa7e509..684f62f 100644 (file)
@@ -207,7 +207,7 @@ static unsigned long mt9m001_query_bus_param(struct soc_camera_device *icd)
        struct mt9m001 *mt9m001 = container_of(icd, struct mt9m001, icd);
        struct soc_camera_link *icl = mt9m001->client->dev.platform_data;
        /* MT9M001 has all capture_format parameters fixed */
-       unsigned long flags = SOCAM_PCLK_SAMPLE_RISING |
+       unsigned long flags = SOCAM_PCLK_SAMPLE_FALLING |
                SOCAM_HSYNC_ACTIVE_HIGH | SOCAM_VSYNC_ACTIVE_HIGH |
                SOCAM_DATA_ACTIVE_HIGH | SOCAM_MASTER;
 
index 23f9ce9..2b0927b 100644 (file)
@@ -141,8 +141,19 @@ static int get_shutter(struct soc_camera_device *icd, u32 *data)
 
 static int mt9t031_init(struct soc_camera_device *icd)
 {
+       struct mt9t031 *mt9t031 = container_of(icd, struct mt9t031, icd);
+       struct soc_camera_link *icl = mt9t031->client->dev.platform_data;
        int ret;
 
+       if (icl->power) {
+               ret = icl->power(&mt9t031->client->dev, 1);
+               if (ret < 0) {
+                       dev_err(icd->vdev->parent,
+                               "Platform failed to power-on the camera.\n");
+                       return ret;
+               }
+       }
+
        /* Disable chip output, synchronous option update */
        ret = reg_write(icd, MT9T031_RESET, 1);
        if (ret >= 0)
@@ -150,13 +161,23 @@ static int mt9t031_init(struct soc_camera_device *icd)
        if (ret >= 0)
                ret = reg_clear(icd, MT9T031_OUTPUT_CONTROL, 2);
 
+       if (ret < 0 && icl->power)
+               icl->power(&mt9t031->client->dev, 0);
+
        return ret >= 0 ? 0 : -EIO;
 }
 
 static int mt9t031_release(struct soc_camera_device *icd)
 {
+       struct mt9t031 *mt9t031 = container_of(icd, struct mt9t031, icd);
+       struct soc_camera_link *icl = mt9t031->client->dev.platform_data;
+
        /* Disable the chip */
        reg_clear(icd, MT9T031_OUTPUT_CONTROL, 2);
+
+       if (icl->power)
+               icl->power(&mt9t031->client->dev, 0);
+
        return 0;
 }
 
diff --git a/drivers/media/video/mx1_camera.c b/drivers/media/video/mx1_camera.c
new file mode 100644 (file)
index 0000000..86fab56
--- /dev/null
@@ -0,0 +1,827 @@
+/*
+ * V4L2 Driver for i.MXL/i.MXL camera (CSI) host
+ *
+ * Copyright (C) 2008, Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
+ * Copyright (C) 2009, Darius Augulis <augulis.darius@gmail.com>
+ *
+ * Based on PXA SoC camera driver
+ * Copyright (C) 2006, Sascha Hauer, Pengutronix
+ * Copyright (C) 2008, Guennadi Liakhovetski <kernel@pengutronix.de>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include <linux/clk.h>
+#include <linux/delay.h>
+#include <linux/device.h>
+#include <linux/dma-mapping.h>
+#include <linux/errno.h>
+#include <linux/fs.h>
+#include <linux/init.h>
+#include <linux/interrupt.h>
+#include <linux/io.h>
+#include <linux/kernel.h>
+#include <linux/mm.h>
+#include <linux/module.h>
+#include <linux/moduleparam.h>
+#include <linux/mutex.h>
+#include <linux/platform_device.h>
+#include <linux/time.h>
+#include <linux/version.h>
+#include <linux/videodev2.h>
+
+#include <media/soc_camera.h>
+#include <media/v4l2-common.h>
+#include <media/v4l2-dev.h>
+#include <media/videobuf-dma-contig.h>
+
+#include <asm/dma.h>
+#include <asm/fiq.h>
+#include <mach/dma-mx1-mx2.h>
+#include <mach/hardware.h>
+#include <mach/mx1_camera.h>
+
+/*
+ * CSI registers
+ */
+#define DMA_CCR(x)     (0x8c + ((x) << 6))     /* Control Registers */
+#define DMA_DIMR       0x08                    /* Interrupt mask Register */
+#define CSICR1         0x00                    /* CSI Control Register 1 */
+#define CSISR          0x08                    /* CSI Status Register */
+#define CSIRXR         0x10                    /* CSI RxFIFO Register */
+
+#define CSICR1_RXFF_LEVEL(x)   (((x) & 0x3) << 19)
+#define CSICR1_SOF_POL         (1 << 17)
+#define CSICR1_SOF_INTEN       (1 << 16)
+#define CSICR1_MCLKDIV(x)      (((x) & 0xf) << 12)
+#define CSICR1_MCLKEN          (1 << 9)
+#define CSICR1_FCC             (1 << 8)
+#define CSICR1_BIG_ENDIAN      (1 << 7)
+#define CSICR1_CLR_RXFIFO      (1 << 5)
+#define CSICR1_GCLK_MODE       (1 << 4)
+#define CSICR1_DATA_POL                (1 << 2)
+#define CSICR1_REDGE           (1 << 1)
+#define CSICR1_EN              (1 << 0)
+
+#define CSISR_SFF_OR_INT       (1 << 25)
+#define CSISR_RFF_OR_INT       (1 << 24)
+#define CSISR_STATFF_INT       (1 << 21)
+#define CSISR_RXFF_INT         (1 << 18)
+#define CSISR_SOF_INT          (1 << 16)
+#define CSISR_DRDY             (1 << 0)
+
+#define VERSION_CODE KERNEL_VERSION(0, 0, 1)
+#define DRIVER_NAME "mx1-camera"
+
+#define CSI_IRQ_MASK   (CSISR_SFF_OR_INT | CSISR_RFF_OR_INT | \
+                       CSISR_STATFF_INT | CSISR_RXFF_INT | CSISR_SOF_INT)
+
+#define CSI_BUS_FLAGS  (SOCAM_MASTER | SOCAM_HSYNC_ACTIVE_HIGH | \
+                       SOCAM_VSYNC_ACTIVE_HIGH | SOCAM_VSYNC_ACTIVE_LOW | \
+                       SOCAM_PCLK_SAMPLE_RISING | SOCAM_PCLK_SAMPLE_FALLING | \
+                       SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATA_ACTIVE_LOW | \
+                       SOCAM_DATAWIDTH_8)
+
+#define MAX_VIDEO_MEM 16       /* Video memory limit in megabytes */
+
+/*
+ * Structures
+ */
+
+/* buffer for one video frame */
+struct mx1_buffer {
+       /* common v4l buffer stuff -- must be first */
+       struct videobuf_buffer vb;
+       const struct soc_camera_data_format *fmt;
+       int inwork;
+};
+
+/* i.MX1/i.MXL is only supposed to handle one camera on its Camera Sensor
+ * Interface. If anyone ever builds hardware to enable more than
+ * one camera, they will have to modify this driver too */
+struct mx1_camera_dev {
+       struct soc_camera_device        *icd;
+       struct mx1_camera_pdata         *pdata;
+       struct mx1_buffer               *active;
+       struct device                   *dev;
+       struct resource                 *res;
+       struct clk                      *clk;
+       struct list_head                capture;
+
+       void __iomem                    *base;
+       int                             dma_chan;
+       unsigned int                    irq;
+       unsigned long                   mclk;
+
+       spinlock_t                      lock;
+};
+
+/*
+ *  Videobuf operations
+ */
+static int mx1_videobuf_setup(struct videobuf_queue *vq, unsigned int *count,
+                             unsigned int *size)
+{
+       struct soc_camera_device *icd = vq->priv_data;
+
+       *size = icd->width * icd->height *
+               ((icd->current_fmt->depth + 7) >> 3);
+
+       if (!*count)
+               *count = 32;
+
+       while (*size * *count > MAX_VIDEO_MEM * 1024 * 1024)
+               (*count)--;
+
+       dev_dbg(&icd->dev, "count=%d, size=%d\n", *count, *size);
+
+       return 0;
+}
+
+static void free_buffer(struct videobuf_queue *vq, struct mx1_buffer *buf)
+{
+       struct soc_camera_device *icd = vq->priv_data;
+       struct videobuf_buffer *vb = &buf->vb;
+
+       BUG_ON(in_interrupt());
+
+       dev_dbg(&icd->dev, "%s (vb=0x%p) 0x%08lx %d\n", __func__,
+               vb, vb->baddr, vb->bsize);
+
+       /* This waits until this buffer is out of danger, i.e., until it is no
+        * longer in STATE_QUEUED or STATE_ACTIVE */
+       videobuf_waiton(vb, 0, 0);
+       videobuf_dma_contig_free(vq, vb);
+
+       vb->state = VIDEOBUF_NEEDS_INIT;
+}
+
+static int mx1_videobuf_prepare(struct videobuf_queue *vq,
+               struct videobuf_buffer *vb, enum v4l2_field field)
+{
+       struct soc_camera_device *icd = vq->priv_data;
+       struct mx1_buffer *buf = container_of(vb, struct mx1_buffer, vb);
+       int ret;
+
+       dev_dbg(&icd->dev, "%s (vb=0x%p) 0x%08lx %d\n", __func__,
+               vb, vb->baddr, vb->bsize);
+
+       /* Added list head initialization on alloc */
+       WARN_ON(!list_empty(&vb->queue));
+
+       BUG_ON(NULL == icd->current_fmt);
+
+       /* I think, in buf_prepare you only have to protect global data,
+        * the actual buffer is yours */
+       buf->inwork = 1;
+
+       if (buf->fmt    != icd->current_fmt ||
+           vb->width   != icd->width ||
+           vb->height  != icd->height ||
+           vb->field   != field) {
+               buf->fmt        = icd->current_fmt;
+               vb->width       = icd->width;
+               vb->height      = icd->height;
+               vb->field       = field;
+               vb->state       = VIDEOBUF_NEEDS_INIT;
+       }
+
+       vb->size = vb->width * vb->height * ((buf->fmt->depth + 7) >> 3);
+       if (0 != vb->baddr && vb->bsize < vb->size) {
+               ret = -EINVAL;
+               goto out;
+       }
+
+       if (vb->state == VIDEOBUF_NEEDS_INIT) {
+               ret = videobuf_iolock(vq, vb, NULL);
+               if (ret)
+                       goto fail;
+
+               vb->state = VIDEOBUF_PREPARED;
+       }
+
+       buf->inwork = 0;
+
+       return 0;
+
+fail:
+       free_buffer(vq, buf);
+out:
+       buf->inwork = 0;
+       return ret;
+}
+
+static int mx1_camera_setup_dma(struct mx1_camera_dev *pcdev)
+{
+       struct videobuf_buffer *vbuf = &pcdev->active->vb;
+       int ret;
+
+       if (unlikely(!pcdev->active)) {
+               dev_err(pcdev->dev, "DMA End IRQ with no active buffer\n");
+               return -EFAULT;
+       }
+
+       /* setup sg list for future DMA */
+       ret = imx_dma_setup_single(pcdev->dma_chan,
+               videobuf_to_dma_contig(vbuf),
+               vbuf->size, pcdev->res->start +
+               CSIRXR, DMA_MODE_READ);
+       if (unlikely(ret))
+               dev_err(pcdev->dev, "Failed to setup DMA sg list\n");
+
+       return ret;
+}
+
+static void mx1_videobuf_queue(struct videobuf_queue *vq,
+                                               struct videobuf_buffer *vb)
+{
+       struct soc_camera_device *icd = vq->priv_data;
+       struct soc_camera_host *ici = to_soc_camera_host(icd->dev.parent);
+       struct mx1_camera_dev *pcdev = ici->priv;
+       struct mx1_buffer *buf = container_of(vb, struct mx1_buffer, vb);
+       unsigned long flags;
+
+       dev_dbg(&icd->dev, "%s (vb=0x%p) 0x%08lx %d\n", __func__,
+               vb, vb->baddr, vb->bsize);
+
+       spin_lock_irqsave(&pcdev->lock, flags);
+
+       list_add_tail(&vb->queue, &pcdev->capture);
+
+       vb->state = VIDEOBUF_ACTIVE;
+
+       if (!pcdev->active) {
+               pcdev->active = buf;
+
+               /* setup sg list for future DMA */
+               if (!mx1_camera_setup_dma(pcdev)) {
+                       unsigned int temp;
+                       /* enable SOF irq */
+                       temp = __raw_readl(pcdev->base + CSICR1) |
+                                                       CSICR1_SOF_INTEN;
+                       __raw_writel(temp, pcdev->base + CSICR1);
+               }
+       }
+
+       spin_unlock_irqrestore(&pcdev->lock, flags);
+}
+
+static void mx1_videobuf_release(struct videobuf_queue *vq,
+                                struct videobuf_buffer *vb)
+{
+       struct mx1_buffer *buf = container_of(vb, struct mx1_buffer, vb);
+#ifdef DEBUG
+       struct soc_camera_device *icd = vq->priv_data;
+
+       dev_dbg(&icd->dev, "%s (vb=0x%p) 0x%08lx %d\n", __func__,
+               vb, vb->baddr, vb->bsize);
+
+       switch (vb->state) {
+       case VIDEOBUF_ACTIVE:
+               dev_dbg(&icd->dev, "%s (active)\n", __func__);
+               break;
+       case VIDEOBUF_QUEUED:
+               dev_dbg(&icd->dev, "%s (queued)\n", __func__);
+               break;
+       case VIDEOBUF_PREPARED:
+               dev_dbg(&icd->dev, "%s (prepared)\n", __func__);
+               break;
+       default:
+               dev_dbg(&icd->dev, "%s (unknown)\n", __func__);
+               break;
+       }
+#endif
+
+       free_buffer(vq, buf);
+}
+
+static void mx1_camera_wakeup(struct mx1_camera_dev *pcdev,
+                             struct videobuf_buffer *vb,
+                             struct mx1_buffer *buf)
+{
+       /* _init is used to debug races, see comment in mx1_camera_reqbufs() */
+       list_del_init(&vb->queue);
+       vb->state = VIDEOBUF_DONE;
+       do_gettimeofday(&vb->ts);
+       vb->field_count++;
+       wake_up(&vb->done);
+
+       if (list_empty(&pcdev->capture)) {
+               pcdev->active = NULL;
+               return;
+       }
+
+       pcdev->active = list_entry(pcdev->capture.next,
+                                  struct mx1_buffer, vb.queue);
+
+       /* setup sg list for future DMA */
+       if (likely(!mx1_camera_setup_dma(pcdev))) {
+               unsigned int temp;
+
+               /* enable SOF irq */
+               temp = __raw_readl(pcdev->base + CSICR1) | CSICR1_SOF_INTEN;
+               __raw_writel(temp, pcdev->base + CSICR1);
+       }
+}
+
+static void mx1_camera_dma_irq(int channel, void *data)
+{
+       struct mx1_camera_dev *pcdev = data;
+       struct mx1_buffer *buf;
+       struct videobuf_buffer *vb;
+       unsigned long flags;
+
+       spin_lock_irqsave(&pcdev->lock, flags);
+
+       imx_dma_disable(channel);
+
+       if (unlikely(!pcdev->active)) {
+               dev_err(pcdev->dev, "DMA End IRQ with no active buffer\n");
+               goto out;
+       }
+
+       vb = &pcdev->active->vb;
+       buf = container_of(vb, struct mx1_buffer, vb);
+       WARN_ON(buf->inwork || list_empty(&vb->queue));
+       dev_dbg(pcdev->dev, "%s (vb=0x%p) 0x%08lx %d\n", __func__,
+               vb, vb->baddr, vb->bsize);
+
+       mx1_camera_wakeup(pcdev, vb, buf);
+out:
+       spin_unlock_irqrestore(&pcdev->lock, flags);
+}
+
+static struct videobuf_queue_ops mx1_videobuf_ops = {
+       .buf_setup      = mx1_videobuf_setup,
+       .buf_prepare    = mx1_videobuf_prepare,
+       .buf_queue      = mx1_videobuf_queue,
+       .buf_release    = mx1_videobuf_release,
+};
+
+static void mx1_camera_init_videobuf(struct videobuf_queue *q,
+                                    struct soc_camera_device *icd)
+{
+       struct soc_camera_host *ici = to_soc_camera_host(icd->dev.parent);
+       struct mx1_camera_dev *pcdev = ici->priv;
+
+       videobuf_queue_dma_contig_init(q, &mx1_videobuf_ops, pcdev->dev,
+                                       &pcdev->lock,
+                                       V4L2_BUF_TYPE_VIDEO_CAPTURE,
+                                       V4L2_FIELD_NONE,
+                                       sizeof(struct mx1_buffer), icd);
+}
+
+static int mclk_get_divisor(struct mx1_camera_dev *pcdev)
+{
+       unsigned int mclk = pcdev->mclk;
+       unsigned long div;
+       unsigned long lcdclk;
+
+       lcdclk = clk_get_rate(pcdev->clk);
+
+       /* We verify platform_mclk_10khz != 0, so if anyone breaks it, here
+        * they get a nice Oops */
+       div = (lcdclk + 2 * mclk - 1) / (2 * mclk) - 1;
+
+       dev_dbg(pcdev->dev, "System clock %lukHz, target freq %dkHz, "
+               "divisor %lu\n", lcdclk / 1000, mclk / 1000, div);
+
+       return div;
+}
+
+static void mx1_camera_activate(struct mx1_camera_dev *pcdev)
+{
+       unsigned int csicr1 = CSICR1_EN;
+
+       dev_dbg(pcdev->dev, "Activate device\n");
+
+       clk_enable(pcdev->clk);
+
+       /* enable CSI before doing anything else */
+       __raw_writel(csicr1, pcdev->base + CSICR1);
+
+       csicr1 |= CSICR1_MCLKEN | CSICR1_FCC | CSICR1_GCLK_MODE;
+       csicr1 |= CSICR1_MCLKDIV(mclk_get_divisor(pcdev));
+       csicr1 |= CSICR1_RXFF_LEVEL(2); /* 16 words */
+
+       __raw_writel(csicr1, pcdev->base + CSICR1);
+}
+
+static void mx1_camera_deactivate(struct mx1_camera_dev *pcdev)
+{
+       dev_dbg(pcdev->dev, "Deactivate device\n");
+
+       /* Disable all CSI interface */
+       __raw_writel(0x00, pcdev->base + CSICR1);
+
+       clk_disable(pcdev->clk);
+}
+
+/* The following two functions absolutely depend on the fact, that
+ * there can be only one camera on i.MX1/i.MXL camera sensor interface */
+static int mx1_camera_add_device(struct soc_camera_device *icd)
+{
+       struct soc_camera_host *ici = to_soc_camera_host(icd->dev.parent);
+       struct mx1_camera_dev *pcdev = ici->priv;
+       int ret;
+
+       if (pcdev->icd) {
+               ret = -EBUSY;
+               goto ebusy;
+       }
+
+       dev_info(&icd->dev, "MX1 Camera driver attached to camera %d\n",
+                icd->devnum);
+
+       mx1_camera_activate(pcdev);
+       ret = icd->ops->init(icd);
+
+       if (!ret)
+               pcdev->icd = icd;
+
+ebusy:
+       return ret;
+}
+
+static void mx1_camera_remove_device(struct soc_camera_device *icd)
+{
+       struct soc_camera_host *ici = to_soc_camera_host(icd->dev.parent);
+       struct mx1_camera_dev *pcdev = ici->priv;
+       unsigned int csicr1;
+
+       BUG_ON(icd != pcdev->icd);
+
+       /* disable interrupts */
+       csicr1 = __raw_readl(pcdev->base + CSICR1) & ~CSI_IRQ_MASK;
+       __raw_writel(csicr1, pcdev->base + CSICR1);
+
+       /* Stop DMA engine */
+       imx_dma_disable(pcdev->dma_chan);
+
+       dev_info(&icd->dev, "MX1 Camera driver detached from camera %d\n",
+                icd->devnum);
+
+       icd->ops->release(icd);
+
+       mx1_camera_deactivate(pcdev);
+
+       pcdev->icd = NULL;
+}
+
+static int mx1_camera_set_crop(struct soc_camera_device *icd,
+                              struct v4l2_rect *rect)
+{
+       return icd->ops->set_crop(icd, rect);
+}
+
+static int mx1_camera_set_bus_param(struct soc_camera_device *icd, __u32 pixfmt)
+{
+       struct soc_camera_host *ici = to_soc_camera_host(icd->dev.parent);
+       struct mx1_camera_dev *pcdev = ici->priv;
+       unsigned long camera_flags, common_flags;
+       unsigned int csicr1;
+       int ret;
+
+       camera_flags = icd->ops->query_bus_param(icd);
+
+       /* MX1 supports only 8bit buswidth */
+       common_flags = soc_camera_bus_param_compatible(camera_flags,
+                                                              CSI_BUS_FLAGS);
+       if (!common_flags)
+               return -EINVAL;
+
+       icd->buswidth = 8;
+
+       /* Make choises, based on platform choice */
+       if ((common_flags & SOCAM_VSYNC_ACTIVE_HIGH) &&
+               (common_flags & SOCAM_VSYNC_ACTIVE_LOW)) {
+                       if (!pcdev->pdata ||
+                            pcdev->pdata->flags & MX1_CAMERA_VSYNC_HIGH)
+                               common_flags &= ~SOCAM_VSYNC_ACTIVE_LOW;
+                       else
+                               common_flags &= ~SOCAM_VSYNC_ACTIVE_HIGH;
+       }
+
+       if ((common_flags & SOCAM_PCLK_SAMPLE_RISING) &&
+               (common_flags & SOCAM_PCLK_SAMPLE_FALLING)) {
+                       if (!pcdev->pdata ||
+                            pcdev->pdata->flags & MX1_CAMERA_PCLK_RISING)
+                               common_flags &= ~SOCAM_PCLK_SAMPLE_FALLING;
+                       else
+                               common_flags &= ~SOCAM_PCLK_SAMPLE_RISING;
+       }
+
+       if ((common_flags & SOCAM_DATA_ACTIVE_HIGH) &&
+               (common_flags & SOCAM_DATA_ACTIVE_LOW)) {
+                       if (!pcdev->pdata ||
+                            pcdev->pdata->flags & MX1_CAMERA_DATA_HIGH)
+                               common_flags &= ~SOCAM_DATA_ACTIVE_LOW;
+                       else
+                               common_flags &= ~SOCAM_DATA_ACTIVE_HIGH;
+       }
+
+       ret = icd->ops->set_bus_param(icd, common_flags);
+       if (ret < 0)
+               return ret;
+
+       csicr1 = __raw_readl(pcdev->base + CSICR1);
+
+       if (common_flags & SOCAM_PCLK_SAMPLE_RISING)
+               csicr1 |= CSICR1_REDGE;
+       if (common_flags & SOCAM_VSYNC_ACTIVE_HIGH)
+               csicr1 |= CSICR1_SOF_POL;
+       if (common_flags & SOCAM_DATA_ACTIVE_LOW)
+               csicr1 |= CSICR1_DATA_POL;
+
+       __raw_writel(csicr1, pcdev->base + CSICR1);
+
+       return 0;
+}
+
+static int mx1_camera_set_fmt(struct soc_camera_device *icd,
+                             struct v4l2_format *f)
+{
+       struct soc_camera_host *ici = to_soc_camera_host(icd->dev.parent);
+       const struct soc_camera_format_xlate *xlate;
+       struct v4l2_pix_format *pix = &f->fmt.pix;
+       int ret;
+
+       xlate = soc_camera_xlate_by_fourcc(icd, pix->pixelformat);
+       if (!xlate) {
+               dev_warn(&ici->dev, "Format %x not found\n", pix->pixelformat);
+               return -EINVAL;
+       }
+
+       ret = icd->ops->set_fmt(icd, f);
+       if (!ret) {
+               icd->buswidth = xlate->buswidth;
+               icd->current_fmt = xlate->host_fmt;
+       }
+
+       return ret;
+}
+
+static int mx1_camera_try_fmt(struct soc_camera_device *icd,
+                             struct v4l2_format *f)
+{
+       /* TODO: limit to mx1 hardware capabilities */
+
+       /* limit to sensor capabilities */
+       return icd->ops->try_fmt(icd, f);
+}
+
+static int mx1_camera_reqbufs(struct soc_camera_file *icf,
+                             struct v4l2_requestbuffers *p)
+{
+       int i;
+
+       /* This is for locking debugging only. I removed spinlocks and now I
+        * check whether .prepare is ever called on a linked buffer, or whether
+        * a dma IRQ can occur for an in-work or unlinked buffer. Until now
+        * it hadn't triggered */
+       for (i = 0; i < p->count; i++) {
+               struct mx1_buffer *buf = container_of(icf->vb_vidq.bufs[i],
+                                                     struct mx1_buffer, vb);
+               buf->inwork = 0;
+               INIT_LIST_HEAD(&buf->vb.queue);
+       }
+
+       return 0;
+}
+
+static unsigned int mx1_camera_poll(struct file *file, poll_table *pt)
+{
+       struct soc_camera_file *icf = file->private_data;
+       struct mx1_buffer *buf;
+
+       buf = list_entry(icf->vb_vidq.stream.next, struct mx1_buffer,
+                        vb.stream);
+
+       poll_wait(file, &buf->vb.done, pt);
+
+       if (buf->vb.state == VIDEOBUF_DONE ||
+           buf->vb.state == VIDEOBUF_ERROR)
+               return POLLIN | POLLRDNORM;
+
+       return 0;
+}
+
+static int mx1_camera_querycap(struct soc_camera_host *ici,
+                              struct v4l2_capability *cap)
+{
+       /* cap->name is set by the friendly caller:-> */
+       strlcpy(cap->card, "i.MX1/i.MXL Camera", sizeof(cap->card));
+       cap->version = VERSION_CODE;
+       cap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING;
+
+       return 0;
+}
+
+static struct soc_camera_host_ops mx1_soc_camera_host_ops = {
+       .owner          = THIS_MODULE,
+       .add            = mx1_camera_add_device,
+       .remove         = mx1_camera_remove_device,
+       .set_bus_param  = mx1_camera_set_bus_param,
+       .set_crop       = mx1_camera_set_crop,
+       .set_fmt        = mx1_camera_set_fmt,
+       .try_fmt        = mx1_camera_try_fmt,
+       .init_videobuf  = mx1_camera_init_videobuf,
+       .reqbufs        = mx1_camera_reqbufs,
+       .poll           = mx1_camera_poll,
+       .querycap       = mx1_camera_querycap,
+};
+
+/* Should be allocated dynamically too, but we have only one. */
+static struct soc_camera_host mx1_soc_camera_host = {
+       .drv_name       = DRIVER_NAME,
+       .ops            = &mx1_soc_camera_host_ops,
+};
+
+static struct fiq_handler fh = {
+       .name           = "csi_sof"
+};
+
+static int __init mx1_camera_probe(struct platform_device *pdev)
+{
+       struct mx1_camera_dev *pcdev;
+       struct resource *res;
+       struct pt_regs regs;
+       struct clk *clk;
+       void __iomem *base;
+       unsigned int irq;
+       int err = 0;
+
+       res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+       irq = platform_get_irq(pdev, 0);
+       if (!res || !irq) {
+               err = -ENODEV;
+               goto exit;
+       }
+
+       clk = clk_get(&pdev->dev, "csi_clk");
+       if (IS_ERR(clk)) {
+               err = PTR_ERR(clk);
+               goto exit;
+       }
+
+       pcdev = kzalloc(sizeof(*pcdev), GFP_KERNEL);
+       if (!pcdev) {
+               dev_err(&pdev->dev, "Could not allocate pcdev\n");
+               err = -ENOMEM;
+               goto exit_put_clk;
+       }
+
+       dev_set_drvdata(&pdev->dev, pcdev);
+       pcdev->res = res;
+       pcdev->clk = clk;
+
+       pcdev->pdata = pdev->dev.platform_data;
+
+       if (pcdev->pdata)
+               pcdev->mclk = pcdev->pdata->mclk_10khz * 10000;
+
+       if (!pcdev->mclk) {
+               dev_warn(&pdev->dev,
+                        "mclk_10khz == 0! Please, fix your platform data. "
+                        "Using default 20MHz\n");
+               pcdev->mclk = 20000000;
+       }
+
+       INIT_LIST_HEAD(&pcdev->capture);
+       spin_lock_init(&pcdev->lock);
+
+       /*
+        * Request the regions.
+        */
+       if (!request_mem_region(res->start, resource_size(res), DRIVER_NAME)) {
+               err = -EBUSY;
+               goto exit_kfree;
+       }
+
+       base = ioremap(res->start, resource_size(res));
+       if (!base) {
+               err = -ENOMEM;
+               goto exit_release;
+       }
+       pcdev->irq = irq;
+       pcdev->base = base;
+       pcdev->dev = &pdev->dev;
+
+       /* request dma */
+       pcdev->dma_chan = imx_dma_request_by_prio(DRIVER_NAME, DMA_PRIO_HIGH);
+       if (pcdev->dma_chan < 0) {
+               dev_err(pcdev->dev, "Can't request DMA for MX1 CSI\n");
+               err = -EBUSY;
+               goto exit_iounmap;
+       }
+       dev_dbg(pcdev->dev, "got DMA channel %d\n", pcdev->dma_chan);
+
+       imx_dma_setup_handlers(pcdev->dma_chan, mx1_camera_dma_irq, NULL,
+                              pcdev);
+
+       imx_dma_config_channel(pcdev->dma_chan, IMX_DMA_TYPE_FIFO,
+                              IMX_DMA_MEMSIZE_32, DMA_REQ_CSI_R, 0);
+       /* burst length : 16 words = 64 bytes */
+       imx_dma_config_burstlen(pcdev->dma_chan, 0);
+
+       /* request irq */
+       err = claim_fiq(&fh);
+       if (err) {
+               dev_err(pcdev->dev, "Camera interrupt register failed \n");
+               goto exit_free_dma;
+       }
+
+       set_fiq_handler(&mx1_camera_sof_fiq_start, &mx1_camera_sof_fiq_end -
+                                                  &mx1_camera_sof_fiq_start);
+
+       regs.ARM_r8 = DMA_BASE + DMA_DIMR;
+       regs.ARM_r9 = DMA_BASE + DMA_CCR(pcdev->dma_chan);
+       regs.ARM_r10 = (long)pcdev->base + CSICR1;
+       regs.ARM_fp = (long)pcdev->base + CSISR;
+       regs.ARM_sp = 1 << pcdev->dma_chan;
+       set_fiq_regs(&regs);
+
+       mxc_set_irq_fiq(irq, 1);
+       enable_fiq(irq);
+
+       mx1_soc_camera_host.priv        = pcdev;
+       mx1_soc_camera_host.dev.parent  = &pdev->dev;
+       mx1_soc_camera_host.nr          = pdev->id;
+       err = soc_camera_host_register(&mx1_soc_camera_host);
+       if (err)
+               goto exit_free_irq;
+
+       dev_info(&pdev->dev, "MX1 Camera driver loaded\n");
+
+       return 0;
+
+exit_free_irq:
+       disable_fiq(irq);
+       mxc_set_irq_fiq(irq, 0);
+       release_fiq(&fh);
+exit_free_dma:
+       imx_dma_free(pcdev->dma_chan);
+exit_iounmap:
+       iounmap(base);
+exit_release:
+       release_mem_region(res->start, resource_size(res));
+exit_kfree:
+       kfree(pcdev);
+exit_put_clk:
+       clk_put(clk);
+exit:
+       return err;
+}
+
+static int __exit mx1_camera_remove(struct platform_device *pdev)
+{
+       struct mx1_camera_dev *pcdev = platform_get_drvdata(pdev);
+       struct resource *res;
+
+       imx_dma_free(pcdev->dma_chan);
+       disable_fiq(pcdev->irq);
+       mxc_set_irq_fiq(pcdev->irq, 0);
+       release_fiq(&fh);
+
+       clk_put(pcdev->clk);
+
+       soc_camera_host_unregister(&mx1_soc_camera_host);
+
+       iounmap(pcdev->base);
+
+       res = pcdev->res;
+       release_mem_region(res->start, resource_size(res));
+
+       kfree(pcdev);
+
+       dev_info(&pdev->dev, "MX1 Camera driver unloaded\n");
+
+       return 0;
+}
+
+static struct platform_driver mx1_camera_driver = {
+       .driver         = {
+               .name   = DRIVER_NAME,
+       },
+       .remove         = __exit_p(mx1_camera_remove),
+};
+
+static int __init mx1_camera_init(void)
+{
+       return platform_driver_probe(&mx1_camera_driver, mx1_camera_probe);
+}
+
+static void __exit mx1_camera_exit(void)
+{
+       return platform_driver_unregister(&mx1_camera_driver);
+}
+
+module_init(mx1_camera_init);
+module_exit(mx1_camera_exit);
+
+MODULE_DESCRIPTION("i.MX1/i.MXL SoC Camera Host driver");
+MODULE_AUTHOR("Paulius Zaleckas <paulius.zaleckas@teltonika.lt>");
+MODULE_LICENSE("GPL v2");
+MODULE_ALIAS("platform:" DRIVER_NAME);
index 70629e1..c462b81 100644 (file)
@@ -1100,7 +1100,7 @@ static int mx3_camera_probe(struct platform_device *pdev)
        }
        memset(mx3_cam, 0, sizeof(*mx3_cam));
 
-       mx3_cam->clk = clk_get(&pdev->dev, "csi_clk");
+       mx3_cam->clk = clk_get(&pdev->dev, NULL);
        if (IS_ERR(mx3_cam->clk)) {
                err = PTR_ERR(mx3_cam->clk);
                goto eclkget;
index 84aec62..3be5a71 100644 (file)
@@ -83,9 +83,14 @@ static struct {
 static int video_audio_connect[MXB_INPUTS] =
        { 0, 1, 3, 3 };
 
+struct mxb_routing {
+       u32 input;
+       u32 output;
+};
+
 /* These are the necessary input-output-pins for bringing one audio source
    (see above) to the CD-output. Note that gain is set to 0 in this table. */
-static struct v4l2_routing TEA6420_cd[MXB_AUDIOS + 1][2] = {
+static struct mxb_routing TEA6420_cd[MXB_AUDIOS + 1][2] = {
        { { 1, 1 }, { 1, 1 } }, /* Tuner */
        { { 5, 1 }, { 6, 1 } }, /* AUX 1 */
        { { 4, 1 }, { 6, 1 } }, /* AUX 2 */
@@ -97,7 +102,7 @@ static struct v4l2_routing TEA6420_cd[MXB_AUDIOS + 1][2] = {
 
 /* These are the necessary input-output-pins for bringing one audio source
    (see above) to the line-output. Note that gain is set to 0 in this table. */
-static struct v4l2_routing TEA6420_line[MXB_AUDIOS + 1][2] = {
+static struct mxb_routing TEA6420_line[MXB_AUDIOS + 1][2] = {
        { { 2, 3 }, { 1, 2 } },
        { { 5, 3 }, { 6, 2 } },
        { { 4, 3 }, { 6, 2 } },
@@ -134,10 +139,6 @@ struct mxb
 
 #define saa7111a_call(mxb, o, f, args...) \
        v4l2_subdev_call(mxb->saa7111a, o, f, ##args)
-#define tea6420_1_call(mxb, o, f, args...) \
-       v4l2_subdev_call(mxb->tea6420_1, o, f, ##args)
-#define tea6420_2_call(mxb, o, f, args...) \
-       v4l2_subdev_call(mxb->tea6420_2, o, f, ##args)
 #define tda9840_call(mxb, o, f, args...) \
        v4l2_subdev_call(mxb->tda9840, o, f, ##args)
 #define tea6415c_call(mxb, o, f, args...) \
@@ -147,6 +148,22 @@ struct mxb
 #define call_all(dev, o, f, args...) \
        v4l2_device_call_until_err(&dev->v4l2_dev, 0, o, f, ##args)
 
+static inline void tea6420_route_cd(struct mxb *mxb, int idx)
+{
+       v4l2_subdev_call(mxb->tea6420_1, audio, s_routing,
+               TEA6420_cd[idx][0].input, TEA6420_cd[idx][0].output, 0);
+       v4l2_subdev_call(mxb->tea6420_2, audio, s_routing,
+               TEA6420_cd[idx][1].input, TEA6420_cd[idx][1].output, 0);
+}
+
+static inline void tea6420_route_line(struct mxb *mxb, int idx)
+{
+       v4l2_subdev_call(mxb->tea6420_1, audio, s_routing,
+               TEA6420_line[idx][0].input, TEA6420_line[idx][0].output, 0);
+       v4l2_subdev_call(mxb->tea6420_2, audio, s_routing,
+               TEA6420_line[idx][1].input, TEA6420_line[idx][1].output, 0);
+}
+
 static struct saa7146_extension extension;
 
 static int mxb_probe(struct saa7146_dev *dev)
@@ -168,13 +185,20 @@ static int mxb_probe(struct saa7146_dev *dev)
                return -EFAULT;
        }
 
-       mxb->saa7111a = v4l2_i2c_new_subdev(&mxb->i2c_adapter, "saa7115", "saa7111", I2C_SAA7111A);
-       mxb->tea6420_1 = v4l2_i2c_new_subdev(&mxb->i2c_adapter, "tea6420", "tea6420", I2C_TEA6420_1);
-       mxb->tea6420_2 = v4l2_i2c_new_subdev(&mxb->i2c_adapter, "tea6420", "tea6420", I2C_TEA6420_2);
-       mxb->tea6415c = v4l2_i2c_new_subdev(&mxb->i2c_adapter, "tea6415c", "tea6415c", I2C_TEA6415C);
-       mxb->tda9840 = v4l2_i2c_new_subdev(&mxb->i2c_adapter, "tda9840", "tda9840", I2C_TDA9840);
-       mxb->tuner = v4l2_i2c_new_subdev(&mxb->i2c_adapter, "tuner", "tuner", I2C_TUNER);
-       if (v4l2_i2c_new_subdev(&mxb->i2c_adapter, "saa5246a", "saa5246a", I2C_SAA5246A)) {
+       mxb->saa7111a = v4l2_i2c_new_subdev(&dev->v4l2_dev, &mxb->i2c_adapter,
+                       "saa7115", "saa7111", I2C_SAA7111A);
+       mxb->tea6420_1 = v4l2_i2c_new_subdev(&dev->v4l2_dev, &mxb->i2c_adapter,
+                       "tea6420", "tea6420", I2C_TEA6420_1);
+       mxb->tea6420_2 = v4l2_i2c_new_subdev(&dev->v4l2_dev, &mxb->i2c_adapter,
+                       "tea6420", "tea6420", I2C_TEA6420_2);
+       mxb->tea6415c = v4l2_i2c_new_subdev(&dev->v4l2_dev, &mxb->i2c_adapter,
+                       "tea6415c", "tea6415c", I2C_TEA6415C);
+       mxb->tda9840 = v4l2_i2c_new_subdev(&dev->v4l2_dev, &mxb->i2c_adapter,
+                       "tda9840", "tda9840", I2C_TDA9840);
+       mxb->tuner = v4l2_i2c_new_subdev(&dev->v4l2_dev, &mxb->i2c_adapter,
+                       "tuner", "tuner", I2C_TUNER);
+       if (v4l2_i2c_new_subdev(&dev->v4l2_dev, &mxb->i2c_adapter,
+                       "saa5246a", "saa5246a", I2C_SAA5246A)) {
                printk(KERN_INFO "mxb: found teletext decoder\n");
        }
 
@@ -261,18 +285,16 @@ static int mxb_init_done(struct saa7146_dev* dev)
        struct i2c_msg msg;
        struct tuner_setup tun_setup;
        v4l2_std_id std = V4L2_STD_PAL_BG;
-       struct v4l2_routing route;
 
        int i = 0, err = 0;
 
        /* select video mode in saa7111a */
-       saa7111a_call(mxb, tuner, s_std, std);
+       saa7111a_call(mxb, core, s_std, std);
 
        /* select tuner-output on saa7111a */
        i = 0;
-       route.input = SAA7115_COMPOSITE0;
-       route.output = SAA7111_FMT_CCIR | SAA7111_VBI_BYPASS;
-       saa7111a_call(mxb, video, s_routing, &route);
+       saa7111a_call(mxb, video, s_routing, SAA7115_COMPOSITE0,
+               SAA7111_FMT_CCIR | SAA7111_VBI_BYPASS, 0);
 
        /* select a tuner type */
        tun_setup.mode_mask = T_ANALOG_TV;
@@ -286,23 +308,17 @@ static int mxb_init_done(struct saa7146_dev* dev)
        tuner_call(mxb, tuner, s_frequency, &mxb->cur_freq);
 
        /* set a default video standard */
-       tuner_call(mxb, tuner, s_std, std);
+       tuner_call(mxb, core, s_std, std);
 
        /* mute audio on tea6420s */
-       tea6420_1_call(mxb, audio, s_routing, &TEA6420_line[6][0]);
-       tea6420_2_call(mxb, audio, s_routing, &TEA6420_line[6][1]);
-       tea6420_1_call(mxb, audio, s_routing, &TEA6420_line[6][0]);
-       tea6420_2_call(mxb, audio, s_routing, &TEA6420_line[6][1]);
+       tea6420_route_line(mxb, 6);
+       tea6420_route_cd(mxb, 6);
 
        /* switch to tuner-channel on tea6415c */
-       route.input = 3;
-       route.output = 17;
-       tea6415c_call(mxb, video, s_routing, &route);
+       tea6415c_call(mxb, video, s_routing, 3, 17, 0);
 
        /* select tuner-output on multicable on tea6415c */
-       route.input = 3;
-       route.output = 13;
-       tea6415c_call(mxb, video, s_routing, &route);
+       tea6415c_call(mxb, video, s_routing, 3, 13, 0);
 
        /* the rest for mxb */
        mxb->cur_input = 0;
@@ -426,18 +442,9 @@ static int vidioc_s_ctrl(struct file *file, void *fh, struct v4l2_control *vc)
 
        if (vc->id == V4L2_CID_AUDIO_MUTE) {
                mxb->cur_mute = vc->value;
-               if (!vc->value) {
-                       /* switch the audio-source */
-                       tea6420_1_call(mxb, audio, s_routing,
-                                       &TEA6420_line[video_audio_connect[mxb->cur_input]][0]);
-                       tea6420_2_call(mxb, audio, s_routing,
-                                       &TEA6420_line[video_audio_connect[mxb->cur_input]][1]);
-               } else {
-                       tea6420_1_call(mxb, audio, s_routing,
-                                       &TEA6420_line[6][0]);
-                       tea6420_2_call(mxb, audio, s_routing,
-                                       &TEA6420_line[6][1]);
-               }
+               /* switch the audio-source */
+               tea6420_route_line(mxb, vc->value ? 6 :
+                               video_audio_connect[mxb->cur_input]);
                DEB_EE(("VIDIOC_S_CTRL, V4L2_CID_AUDIO_MUTE: %d.\n", vc->value));
        }
        return 0;
@@ -466,7 +473,7 @@ static int vidioc_s_input(struct file *file, void *fh, unsigned int input)
 {
        struct saa7146_dev *dev = ((struct saa7146_fh *)fh)->dev;
        struct mxb *mxb = (struct mxb *)dev->ext_priv;
-       struct v4l2_routing route;
+       int err = 0;
        int i = 0;
 
        DEB_EE(("VIDIOC_S_INPUT %d.\n", input));
@@ -484,16 +491,12 @@ static int vidioc_s_input(struct file *file, void *fh, unsigned int input)
        switch (input) {
        case TUNER:
                i = SAA7115_COMPOSITE0;
-               route.input = 3;
-               route.output = 17;
 
-               if (tea6415c_call(mxb, video, s_routing, &route)) {
-                       printk(KERN_ERR "VIDIOC_S_INPUT: could not address tea6415c #1\n");
-                       return -EFAULT;
-               }
+               err = tea6415c_call(mxb, video, s_routing, 3, 17, 0);
+
                /* connect tuner-output always to multicable */
-               route.input = 3;
-               route.output = 13;
+               if (!err)
+                       err = tea6415c_call(mxb, video, s_routing, 3, 13, 0);
                break;
        case AUX3_YC:
                /* nothing to be done here. aux3_yc is
@@ -507,37 +510,20 @@ static int vidioc_s_input(struct file *file, void *fh, unsigned int input)
                break;
        case AUX1:
                i = SAA7115_COMPOSITE0;
-               route.input = 1;
-               route.output = 17;
+               err = tea6415c_call(mxb, video, s_routing, 1, 17, 0);
                break;
        }
 
-       /* switch video in tea6415c only if necessary */
-       switch (input) {
-       case TUNER:
-       case AUX1:
-               if (tea6415c_call(mxb, video, s_routing, &route)) {
-                       printk(KERN_ERR "VIDIOC_S_INPUT: could not address tea6415c #3\n");
-                       return -EFAULT;
-               }
-               break;
-       default:
-               break;
-       }
+       if (err)
+               return err;
 
        /* switch video in saa7111a */
-       route.input = i;
-       route.output = 0;
-       if (saa7111a_call(mxb, video, s_routing, &route))
+       if (saa7111a_call(mxb, video, s_routing, i, 0, 0))
                printk(KERN_ERR "VIDIOC_S_INPUT: could not address saa7111a #1.\n");
 
        /* switch the audio-source only if necessary */
-       if (0 == mxb->cur_mute) {
-               tea6420_1_call(mxb, audio, s_routing,
-                               &TEA6420_line[video_audio_connect[input]][0]);
-               tea6420_2_call(mxb, audio, s_routing,
-                               &TEA6420_line[video_audio_connect[input]][1]);
-       }
+       if (0 == mxb->cur_mute)
+               tea6420_route_line(mxb, video_audio_connect[input]);
 
        return 0;
 }
@@ -679,9 +665,7 @@ static long vidioc_default(struct file *file, void *fh, int cmd, void *arg)
 
                DEB_EE(("MXB_S_AUDIO_CD: i:%d.\n", i));
 
-               tea6420_1_call(mxb, audio, s_routing, &TEA6420_cd[i][0]);
-               tea6420_2_call(mxb, audio, s_routing, &TEA6420_cd[i][1]);
-
+               tea6420_route_cd(mxb, i);
                return 0;
        }
        case MXB_S_AUDIO_LINE:
@@ -694,9 +678,7 @@ static long vidioc_default(struct file *file, void *fh, int cmd, void *arg)
                }
 
                DEB_EE(("MXB_S_AUDIO_LINE: i:%d.\n", i));
-               tea6420_1_call(mxb, audio, s_routing, &TEA6420_line[i][0]);
-               tea6420_2_call(mxb, audio, s_routing, &TEA6420_line[i][1]);
-
+               tea6420_route_line(mxb, i);
                return 0;
        }
        default:
@@ -788,7 +770,7 @@ static int std_callback(struct saa7146_dev *dev, struct saa7146_standard *standa
                saa7146_write(dev, GPIO_CTRL, 0x00404050);
                /* unset the 7111 gpio register -- I don't know what this does exactly */
                saa7111a_call(mxb, core, s_gpio, 0);
-               tuner_call(mxb, tuner, s_std, std);
+               tuner_call(mxb, core, s_std, std);
        } else {
                v4l2_std_id std = V4L2_STD_PAL_BG;
 
@@ -797,7 +779,7 @@ static int std_callback(struct saa7146_dev *dev, struct saa7146_standard *standa
                saa7146_write(dev, GPIO_CTRL, 0x00404050);
                /* set the 7111 gpio register -- I don't know what this does exactly */
                saa7111a_call(mxb, core, s_gpio, 1);
-               tuner_call(mxb, tuner, s_std, std);
+               tuner_call(mxb, core, s_std, std);
        }
        return 0;
 }
index 84b0fc1..c0d9112 100644 (file)
 #define GAM15       0x8C /* Gamma Curve 15th segment input end point */
 #define SLOP        0x8D /* Gamma curve highest segment slope */
 #define DNSTH       0x8E /* De-noise threshold */
-#define EDGE0       0x8F /* Edge enhancement control 0 */
-#define EDGE1       0x90 /* Edge enhancement control 1 */
+#define EDGE_STRNGT 0x8F /* Edge strength  control when manual mode */
+#define EDGE_TRSHLD 0x90 /* Edge threshold control when manual mode */
 #define DNSOFF      0x91 /* Auto De-noise threshold control */
-#define EDGE2       0x92 /* Edge enhancement strength low  point control */
-#define EDGE3       0x93 /* Edge enhancement strength high point control */
+#define EDGE_UPPER  0x92 /* Edge strength upper limit when Auto mode */
+#define EDGE_LOWER  0x93 /* Edge strength lower limit when Auto mode */
 #define MTX1        0x94 /* Matrix coefficient 1 */
 #define MTX2        0x95 /* Matrix coefficient 2 */
 #define MTX3        0x96 /* Matrix coefficient 3 */
 #define VOSZ_VGA        0xF0
 #define VOSZ_QVGA       0x78
 
+/* DSPAUTO (DSP Auto Function ON/OFF Control) */
+#define AWB_ACTRL       0x80 /* AWB auto threshold control */
+#define DENOISE_ACTRL   0x40 /* De-noise auto threshold control */
+#define EDGE_ACTRL      0x20 /* Edge enhancement auto strength control */
+#define UV_ACTRL        0x10 /* UV adjust auto slope control */
+#define SCAL0_ACTRL     0x08 /* Auto scaling factor control */
+#define SCAL1_2_ACTRL   0x04 /* Auto scaling factor control */
+
 /*
  * ID
  */
@@ -670,7 +678,7 @@ static int ov772x_set_bus_param(struct soc_camera_device *icd,
 static unsigned long ov772x_query_bus_param(struct soc_camera_device *icd)
 {
        struct ov772x_priv *priv = container_of(icd, struct ov772x_priv, icd);
-       struct soc_camera_link *icl = priv->client->dev.platform_data;
+       struct soc_camera_link *icl = &priv->info->link;
        unsigned long flags = SOCAM_PCLK_SAMPLE_RISING | SOCAM_MASTER |
                SOCAM_VSYNC_ACTIVE_HIGH | SOCAM_HSYNC_ACTIVE_HIGH |
                SOCAM_DATA_ACTIVE_HIGH | priv->info->buswidth;
@@ -815,6 +823,53 @@ static int ov772x_set_params(struct ov772x_priv *priv, u32 width, u32 height,
         */
        ov772x_reset(priv->client);
 
+       /*
+        * Edge Ctrl
+        */
+       if (priv->info->edgectrl.strength & OV772X_MANUAL_EDGE_CTRL) {
+
+               /*
+                * Manual Edge Control Mode
+                *
+                * Edge auto strength bit is set by default.
+                * Remove it when manual mode.
+                */
+
+               ret = ov772x_mask_set(priv->client, DSPAUTO, EDGE_ACTRL, 0x00);
+               if (ret < 0)
+                       goto ov772x_set_fmt_error;
+
+               ret = ov772x_mask_set(priv->client,
+                                     EDGE_TRSHLD, EDGE_THRESHOLD_MASK,
+                                     priv->info->edgectrl.threshold);
+               if (ret < 0)
+                       goto ov772x_set_fmt_error;
+
+               ret = ov772x_mask_set(priv->client,
+                                     EDGE_STRNGT, EDGE_STRENGTH_MASK,
+                                     priv->info->edgectrl.strength);
+               if (ret < 0)
+                       goto ov772x_set_fmt_error;
+
+       } else if (priv->info->edgectrl.upper > priv->info->edgectrl.lower) {
+               /*
+                * Auto Edge Control Mode
+                *
+                * set upper and lower limit
+                */
+               ret = ov772x_mask_set(priv->client,
+                                     EDGE_UPPER, EDGE_UPPER_MASK,
+                                     priv->info->edgectrl.upper);
+               if (ret < 0)
+                       goto ov772x_set_fmt_error;
+
+               ret = ov772x_mask_set(priv->client,
+                                     EDGE_LOWER, EDGE_LOWER_MASK,
+                                     priv->info->edgectrl.lower);
+               if (ret < 0)
+                       goto ov772x_set_fmt_error;
+       }
+
        /*
         * set size format
         */
index ccf2a3c..10ef1a2 100644 (file)
@@ -58,9 +58,9 @@ static const struct routing_scheme routing_schemes[] = {
 void pvr2_msp3400_subdev_update(struct pvr2_hdw *hdw, struct v4l2_subdev *sd)
 {
        if (hdw->input_dirty || hdw->force_dirty) {
-               struct v4l2_routing route;
                const struct routing_scheme *sp;
                unsigned int sid = hdw->hdw_desc->signal_routing_scheme;
+               u32 input;
 
                pvr2_trace(PVR2_TRACE_CHIPS, "subdev msp3400 v4l2 set_stereo");
 
@@ -68,7 +68,7 @@ void pvr2_msp3400_subdev_update(struct pvr2_hdw *hdw, struct v4l2_subdev *sd)
                    ((sp = routing_schemes + sid) != NULL) &&
                    (hdw->input_val >= 0) &&
                    (hdw->input_val < sp->cnt)) {
-                       route.input = sp->def[hdw->input_val];
+                       input = sp->def[hdw->input_val];
                } else {
                        pvr2_trace(PVR2_TRACE_ERROR_LEGS,
                                   "*** WARNING *** subdev msp3400 set_input:"
@@ -77,8 +77,8 @@ void pvr2_msp3400_subdev_update(struct pvr2_hdw *hdw, struct v4l2_subdev *sd)
                                   sid, hdw->input_val);
                        return;
                }
-               route.output = MSP_OUTPUT(MSP_SC_IN_DSP_SCART1);
-               sd->ops->audio->s_routing(sd, &route);
+               sd->ops->audio->s_routing(sd, input,
+                       MSP_OUTPUT(MSP_SC_IN_DSP_SCART1), 0);
        }
 }
 
index b5c3428..9023adf 100644 (file)
@@ -60,16 +60,16 @@ static const struct routing_scheme routing_schemes[] = {
 void pvr2_cs53l32a_subdev_update(struct pvr2_hdw *hdw, struct v4l2_subdev *sd)
 {
        if (hdw->input_dirty || hdw->force_dirty) {
-               struct v4l2_routing route;
                const struct routing_scheme *sp;
                unsigned int sid = hdw->hdw_desc->signal_routing_scheme;
+               u32 input;
                pvr2_trace(PVR2_TRACE_CHIPS, "subdev v4l2 set_input(%d)",
                           hdw->input_val);
                if ((sid < ARRAY_SIZE(routing_schemes)) &&
                    ((sp = routing_schemes + sid) != NULL) &&
                    (hdw->input_val >= 0) &&
                    (hdw->input_val < sp->cnt)) {
-                       route.input = sp->def[hdw->input_val];
+                       input = sp->def[hdw->input_val];
                } else {
                        pvr2_trace(PVR2_TRACE_ERROR_LEGS,
                                   "*** WARNING *** subdev v4l2 set_input:"
@@ -78,8 +78,7 @@ void pvr2_cs53l32a_subdev_update(struct pvr2_hdw *hdw, struct v4l2_subdev *sd)
                                   sid, hdw->input_val);
                        return;
                }
-               route.output = 0;
-               sd->ops->audio->s_routing(sd, &route);
+               sd->ops->audio->s_routing(sd, input, 0, 0);
        }
 }
 
index 203f54c..1b992b8 100644 (file)
@@ -137,14 +137,12 @@ int pvr2_ctrl_get_min(struct pvr2_ctrl *cptr)
 int pvr2_ctrl_get_def(struct pvr2_ctrl *cptr, int *valptr)
 {
        int ret = 0;
-       if (!cptr) return 0;
+       if (!cptr) return -EINVAL;
        LOCK_TAKE(cptr->hdw->big_lock); do {
-               if (cptr->info->type == pvr2_ctl_int) {
-                       if (cptr->info->get_def_value) {
-                               ret = cptr->info->get_def_value(cptr, valptr);
-                       } else {
-                               *valptr = cptr->info->default_value;
-                       }
+               if (cptr->info->get_def_value) {
+                       ret = cptr->info->get_def_value(cptr, valptr);
+               } else {
+                       *valptr = cptr->info->default_value;
                }
        } while(0); LOCK_GIVE(cptr->hdw->big_lock);
        return ret;
index 4e017ff..05e5235 100644 (file)
@@ -105,14 +105,11 @@ void pvr2_cx25840_subdev_update(struct pvr2_hdw *hdw, struct v4l2_subdev *sd)
 {
        pvr2_trace(PVR2_TRACE_CHIPS, "subdev cx2584x update...");
        if (hdw->input_dirty || hdw->force_dirty) {
-               struct v4l2_routing route;
                enum cx25840_video_input vid_input;
                enum cx25840_audio_input aud_input;
                const struct routing_scheme *sp;
                unsigned int sid = hdw->hdw_desc->signal_routing_scheme;
 
-               memset(&route, 0, sizeof(route));
-
                if ((sid < ARRAY_SIZE(routing_schemes)) &&
                    ((sp = routing_schemes + sid) != NULL) &&
                    (hdw->input_val >= 0) &&
@@ -131,10 +128,8 @@ void pvr2_cx25840_subdev_update(struct pvr2_hdw *hdw, struct v4l2_subdev *sd)
                pvr2_trace(PVR2_TRACE_CHIPS,
                           "subdev cx2584x set_input vid=0x%x aud=0x%x",
                           vid_input, aud_input);
-               route.input = (u32)vid_input;
-               sd->ops->video->s_routing(sd, &route);
-               route.input = (u32)aud_input;
-               sd->ops->audio->s_routing(sd, &route);
+               sd->ops->video->s_routing(sd, (u32)vid_input, 0, 0);
+               sd->ops->audio->s_routing(sd, (u32)aud_input, 0, 0);
        }
 }
 
index 7a65b42..d9d974a 100644 (file)
@@ -2039,7 +2039,7 @@ static int pvr2_hdw_load_subdev(struct pvr2_hdw *hdw,
                           "Module ID %u:"
                           " Setting up with specified i2c address 0x%x",
                           mid, i2caddr[0]);
-               sd = v4l2_i2c_new_subdev(&hdw->i2c_adap,
+               sd = v4l2_i2c_new_subdev(&hdw->v4l2_dev, &hdw->i2c_adap,
                                         fname, fname,
                                         i2caddr[0]);
        } else {
@@ -2047,7 +2047,7 @@ static int pvr2_hdw_load_subdev(struct pvr2_hdw *hdw,
                           "Module ID %u:"
                           " Setting up with address probe list",
                           mid);
-               sd = v4l2_i2c_new_probed_subdev(&hdw->i2c_adap,
+               sd = v4l2_i2c_new_probed_subdev(&hdw->v4l2_dev, &hdw->i2c_adap,
                                                fname, fname,
                                                i2caddr);
        }
@@ -2185,7 +2185,7 @@ static void pvr2_hdw_setup_low(struct pvr2_hdw *hdw)
        pvr2_hdw_load_modules(hdw);
        if (!pvr2_hdw_dev_ok(hdw)) return;
 
-       v4l2_device_call_all(&hdw->v4l2_dev, 0, core, init, 0);
+       v4l2_device_call_all(&hdw->v4l2_dev, 0, core, load_fw);
 
        for (idx = 0; idx < CTRLDEF_COUNT; idx++) {
                cptr = hdw->controls + idx;
@@ -2574,7 +2574,7 @@ struct pvr2_hdw *pvr2_hdw_create(struct usb_interface *intf,
        hdw->ctl_read_urb = usb_alloc_urb(0,GFP_KERNEL);
        if (!hdw->ctl_read_urb) goto fail;
 
-       if (v4l2_device_register(&usb_dev->dev, &hdw->v4l2_dev) != 0) {
+       if (v4l2_device_register(&intf->dev, &hdw->v4l2_dev) != 0) {
                pvr2_trace(PVR2_TRACE_ERROR_LEGS,
                           "Error registering with v4l core, giving up");
                goto fail;
@@ -2926,6 +2926,7 @@ static void pvr2_subdev_update(struct pvr2_hdw *hdw)
                pvr2_trace(PVR2_TRACE_CHIPS, "subdev tuner set_type(%d)",
                           hdw->tuner_type);
                if (((int)(hdw->tuner_type)) >= 0) {
+                       memset(&setup, 0, sizeof(setup));
                        setup.addr = ADDR_UNSET;
                        setup.type = hdw->tuner_type;
                        setup.mode_mask = T_RADIO | T_ANALOG_TV;
@@ -2943,7 +2944,7 @@ static void pvr2_subdev_update(struct pvr2_hdw *hdw)
                        v4l2_std_id vs;
                        vs = hdw->std_mask_cur;
                        v4l2_device_call_all(&hdw->v4l2_dev, 0,
-                                            tuner, s_std, vs);
+                                            core, s_std, vs);
                }
                hdw->tuner_signal_stale = !0;
                hdw->cropcap_stale = !0;
index 9464862..9af282f 100644 (file)
@@ -520,16 +520,6 @@ static u32 pvr2_i2c_functionality(struct i2c_adapter *adap)
        return I2C_FUNC_SMBUS_EMUL | I2C_FUNC_I2C;
 }
 
-static int pvr2_i2c_attach_inform(struct i2c_client *client)
-{
-       return 0;
-}
-
-static int pvr2_i2c_detach_inform(struct i2c_client *client)
-{
-       return 0;
-}
-
 static struct i2c_algorithm pvr2_i2c_algo_template = {
        .master_xfer   = pvr2_i2c_xfer,
        .functionality = pvr2_i2c_functionality,
@@ -539,8 +529,6 @@ static struct i2c_adapter pvr2_i2c_adap_template = {
        .owner         = THIS_MODULE,
        .class         = 0,
        .id            = I2C_HW_B_BT848,
-       .client_register = pvr2_i2c_attach_inform,
-       .client_unregister = pvr2_i2c_detach_inform,
 };
 
 
index e20ba1e..299c1cb 100644 (file)
@@ -153,14 +153,16 @@ static ssize_t show_def(struct device *class_dev,
        struct pvr2_sysfs_ctl_item *cip;
        int val;
        int ret;
+       unsigned int cnt = 0;
        cip = container_of(attr, struct pvr2_sysfs_ctl_item, attr_def);
        ret = pvr2_ctrl_get_def(cip->cptr, &val);
-       pvr2_sysfs_trace("pvr2_sysfs(%p) show_def(cid=%d) is %d, stat=%d",
-                        cip->chptr, cip->ctl_id, val, ret);
-       if (ret < 0) {
-               return ret;
-       }
-       return scnprintf(buf, PAGE_SIZE, "%d\n", val);
+       if (ret < 0) return ret;
+       ret = pvr2_ctrl_value_to_sym(cip->cptr, ~0, val,
+                                    buf, PAGE_SIZE - 1, &cnt);
+       pvr2_sysfs_trace("pvr2_sysfs(%p) show_def(cid=%d) is %.*s (%d)",
+                        cip->chptr, cip->ctl_id, cnt, buf, val);
+       buf[cnt] = '\n';
+       return cnt + 1;
 }
 
 static ssize_t show_val_norm(struct device *class_dev,
index b3862f5..d2fe7c8 100644 (file)
@@ -75,16 +75,17 @@ static const struct routing_scheme routing_schemes[] = {
 void pvr2_saa7115_subdev_update(struct pvr2_hdw *hdw, struct v4l2_subdev *sd)
 {
        if (hdw->input_dirty || hdw->force_dirty) {
-               struct v4l2_routing route;
                const struct routing_scheme *sp;
                unsigned int sid = hdw->hdw_desc->signal_routing_scheme;
+               u32 input;
+
                pvr2_trace(PVR2_TRACE_CHIPS, "subdev v4l2 set_input(%d)",
                           hdw->input_val);
                if ((sid < ARRAY_SIZE(routing_schemes)) &&
                    ((sp = routing_schemes + sid) != NULL) &&
                    (hdw->input_val >= 0) &&
                    (hdw->input_val < sp->cnt)) {
-                       route.input = sp->def[hdw->input_val];
+                       input = sp->def[hdw->input_val];
                } else {
                        pvr2_trace(PVR2_TRACE_ERROR_LEGS,
                                   "*** WARNING *** subdev v4l2 set_input:"
@@ -93,8 +94,7 @@ void pvr2_saa7115_subdev_update(struct pvr2_hdw *hdw, struct v4l2_subdev *sd)
                                   sid, hdw->input_val);
                        return;
                }
-               route.output = 0;
-               sd->ops->video->s_routing(sd, &route);
+               sd->ops->video->s_routing(sd, input, 0, 0);
        }
 }
 
index 1670aa4..8c1eae0 100644 (file)
 void pvr2_wm8775_subdev_update(struct pvr2_hdw *hdw, struct v4l2_subdev *sd)
 {
        if (hdw->input_dirty || hdw->force_dirty) {
-               struct v4l2_routing route;
-
-               memset(&route, 0, sizeof(route));
+               u32 input;
 
                switch (hdw->input_val) {
                case PVR2_CVAL_INPUT_RADIO:
-                       route.input = 1;
+                       input = 1;
                        break;
                default:
                        /* All other cases just use the second input */
-                       route.input = 2;
+                       input = 2;
                        break;
                }
                pvr2_trace(PVR2_TRACE_CHIPS, "subdev wm8775"
                           " set_input(val=%d route=0x%x)",
-                          hdw->input_val, route.input);
+                          hdw->input_val, input);
 
-               sd->ops->audio->s_routing(sd, &route);
+               sd->ops->audio->s_routing(sd, input, 0, 0);
        }
 }
 
index 8b9f0aa..340f954 100644 (file)
@@ -39,7 +39,7 @@ config USB_PWC_DEBUG
 config USB_PWC_INPUT_EVDEV
        bool "USB Philips Cameras input events device support"
        default y
-       depends on USB_PWC && INPUT
+       depends on USB_PWC=INPUT || INPUT=y
        ---help---
          This option makes USB Philips cameras register the snapshot button as
          an input device to report button events.
index c522616..c639845 100644 (file)
                        CICR0_PERRM | CICR0_QDM | CICR0_CDM | CICR0_SOFM | \
                        CICR0_EOFM | CICR0_FOM)
 
+/*
+ * YUV422P picture size should be a multiple of 16, so the heuristic aligns
+ * height, width on 4 byte boundaries to reach the 16 multiple for the size.
+ */
+#define YUV422P_X_Y_ALIGN 4
+#define YUV422P_SIZE_ALIGN YUV422P_X_Y_ALIGN * YUV422P_X_Y_ALIGN
+
 /*
  * Structures
  */
@@ -236,20 +243,11 @@ static int pxa_videobuf_setup(struct videobuf_queue *vq, unsigned int *count,
                              unsigned int *size)
 {
        struct soc_camera_device *icd = vq->priv_data;
-       struct soc_camera_host *ici = to_soc_camera_host(icd->dev.parent);
-       struct pxa_camera_dev *pcdev = ici->priv;
 
        dev_dbg(&icd->dev, "count=%d, size=%d\n", *count, *size);
 
-       /* planar capture requires Y, U and V buffers to be page aligned */
-       if (pcdev->channels == 3) {
-               *size = PAGE_ALIGN(icd->width * icd->height); /* Y pages */
-               *size += PAGE_ALIGN(icd->width * icd->height / 2); /* U pages */
-               *size += PAGE_ALIGN(icd->width * icd->height / 2); /* V pages */
-       } else {
-               *size = icd->width * icd->height *
-                       ((icd->current_fmt->depth + 7) >> 3);
-       }
+       *size = roundup(icd->width * icd->height *
+                       ((icd->current_fmt->depth + 7) >> 3), 8);
 
        if (0 == *count)
                *count = 32;
@@ -289,19 +287,63 @@ static void free_buffer(struct videobuf_queue *vq, struct pxa_buffer *buf)
        buf->vb.state = VIDEOBUF_NEEDS_INIT;
 }
 
+static int calculate_dma_sglen(struct scatterlist *sglist, int sglen,
+                              int sg_first_ofs, int size)
+{
+       int i, offset, dma_len, xfer_len;
+       struct scatterlist *sg;
+
+       offset = sg_first_ofs;
+       for_each_sg(sglist, sg, sglen, i) {
+               dma_len = sg_dma_len(sg);
+
+               /* PXA27x Developer's Manual 27.4.4.1: round up to 8 bytes */
+               xfer_len = roundup(min(dma_len - offset, size), 8);
+
+               size = max(0, size - xfer_len);
+               offset = 0;
+               if (size == 0)
+                       break;
+       }
+
+       BUG_ON(size != 0);
+       return i + 1;
+}
+
+/**
+ * pxa_init_dma_channel - init dma descriptors
+ * @pcdev: pxa camera device
+ * @buf: pxa buffer to find pxa dma channel
+ * @dma: dma video buffer
+ * @channel: dma channel (0 => 'Y', 1 => 'U', 2 => 'V')
+ * @cibr: camera Receive Buffer Register
+ * @size: bytes to transfer
+ * @sg_first: first element of sg_list
+ * @sg_first_ofs: offset in first element of sg_list
+ *
+ * Prepares the pxa dma descriptors to transfer one camera channel.
+ * Beware sg_first and sg_first_ofs are both input and output parameters.
+ *
+ * Returns 0 or -ENOMEM if no coherent memory is available
+ */
 static int pxa_init_dma_channel(struct pxa_camera_dev *pcdev,
                                struct pxa_buffer *buf,
                                struct videobuf_dmabuf *dma, int channel,
-                               int sglen, int sg_start, int cibr,
-                               unsigned int size)
+                               int cibr, int size,
+                               struct scatterlist **sg_first, int *sg_first_ofs)
 {
        struct pxa_cam_dma *pxa_dma = &buf->dmas[channel];
-       int i;
+       struct scatterlist *sg;
+       int i, offset, sglen;
+       int dma_len = 0, xfer_len = 0;
 
        if (pxa_dma->sg_cpu)
                dma_free_coherent(pcdev->dev, pxa_dma->sg_size,
                                  pxa_dma->sg_cpu, pxa_dma->sg_dma);
 
+       sglen = calculate_dma_sglen(*sg_first, dma->sglen,
+                                   *sg_first_ofs, size);
+
        pxa_dma->sg_size = (sglen + 1) * sizeof(struct pxa_dma_desc);
        pxa_dma->sg_cpu = dma_alloc_coherent(pcdev->dev, pxa_dma->sg_size,
                                             &pxa_dma->sg_dma, GFP_KERNEL);
@@ -309,31 +351,75 @@ static int pxa_init_dma_channel(struct pxa_camera_dev *pcdev,
                return -ENOMEM;
 
        pxa_dma->sglen = sglen;
+       offset = *sg_first_ofs;
 
-       for (i = 0; i < sglen; i++) {
-               int sg_i = sg_start + i;
-               struct scatterlist *sg = dma->sglist;
-               unsigned int dma_len = sg_dma_len(&sg[sg_i]), xfer_len;
+       dev_dbg(pcdev->dev, "DMA: sg_first=%p, sglen=%d, ofs=%d, dma.desc=%x\n",
+               *sg_first, sglen, *sg_first_ofs, pxa_dma->sg_dma);
 
-               pxa_dma->sg_cpu[i].dsadr = pcdev->res->start + cibr;
-               pxa_dma->sg_cpu[i].dtadr = sg_dma_address(&sg[sg_i]);
+
+       for_each_sg(*sg_first, sg, sglen, i) {
+               dma_len = sg_dma_len(sg);
 
                /* PXA27x Developer's Manual 27.4.4.1: round up to 8 bytes */
-               xfer_len = (min(dma_len, size) + 7) & ~7;
+               xfer_len = roundup(min(dma_len - offset, size), 8);
 
+               size = max(0, size - xfer_len);
+
+               pxa_dma->sg_cpu[i].dsadr = pcdev->res->start + cibr;
+               pxa_dma->sg_cpu[i].dtadr = sg_dma_address(sg) + offset;
                pxa_dma->sg_cpu[i].dcmd =
                        DCMD_FLOWSRC | DCMD_BURST8 | DCMD_INCTRGADDR | xfer_len;
-               size -= dma_len;
+#ifdef DEBUG
+               if (!i)
+                       pxa_dma->sg_cpu[i].dcmd |= DCMD_STARTIRQEN;
+#endif
                pxa_dma->sg_cpu[i].ddadr =
                        pxa_dma->sg_dma + (i + 1) * sizeof(struct pxa_dma_desc);
+
+               dev_vdbg(pcdev->dev, "DMA: desc.%08x->@phys=0x%08x, len=%d\n",
+                        pxa_dma->sg_dma + i * sizeof(struct pxa_dma_desc),
+                        sg_dma_address(sg) + offset, xfer_len);
+               offset = 0;
+
+               if (size == 0)
+                       break;
        }
 
-       pxa_dma->sg_cpu[sglen - 1].ddadr = DDADR_STOP;
-       pxa_dma->sg_cpu[sglen - 1].dcmd |= DCMD_ENDIRQEN;
+       pxa_dma->sg_cpu[sglen].ddadr = DDADR_STOP;
+       pxa_dma->sg_cpu[sglen].dcmd  = DCMD_FLOWSRC | DCMD_BURST8 | DCMD_ENDIRQEN;
+
+       /*
+        * Handle 1 special case :
+        *  - in 3 planes (YUV422P format), we might finish with xfer_len equal
+        *    to dma_len (end on PAGE boundary). In this case, the sg element
+        *    for next plane should be the next after the last used to store the
+        *    last scatter gather RAM page
+        */
+       if (xfer_len >= dma_len) {
+               *sg_first_ofs = xfer_len - dma_len;
+               *sg_first = sg_next(sg);
+       } else {
+               *sg_first_ofs = xfer_len;
+               *sg_first = sg;
+       }
 
        return 0;
 }
 
+static void pxa_videobuf_set_actdma(struct pxa_camera_dev *pcdev,
+                                   struct pxa_buffer *buf)
+{
+       buf->active_dma = DMA_Y;
+       if (pcdev->channels == 3)
+               buf->active_dma |= DMA_U | DMA_V;
+}
+
+/*
+ * Please check the DMA prepared buffer structure in :
+ *   Documentation/video4linux/pxa_camera.txt
+ * Please check also in pxa_camera_check_link_miss() to understand why DMA chain
+ * modification while DMA chain is running will work anyway.
+ */
 static int pxa_videobuf_prepare(struct videobuf_queue *vq,
                struct videobuf_buffer *vb, enum v4l2_field field)
 {
@@ -342,7 +428,6 @@ static int pxa_videobuf_prepare(struct videobuf_queue *vq,
        struct pxa_camera_dev *pcdev = ici->priv;
        struct pxa_buffer *buf = container_of(vb, struct pxa_buffer, vb);
        int ret;
-       int sglen_y,  sglen_yu = 0, sglen_u = 0, sglen_v = 0;
        int size_y, size_u = 0, size_v = 0;
 
        dev_dbg(&icd->dev, "%s (vb=0x%p) 0x%08lx %d\n", __func__,
@@ -381,62 +466,58 @@ static int pxa_videobuf_prepare(struct videobuf_queue *vq,
        }
 
        if (vb->state == VIDEOBUF_NEEDS_INIT) {
-               unsigned int size = vb->size;
+               int size = vb->size;
+               int next_ofs = 0;
                struct videobuf_dmabuf *dma = videobuf_to_dma(vb);
+               struct scatterlist *sg;
 
                ret = videobuf_iolock(vq, vb, NULL);
                if (ret)
                        goto fail;
 
                if (pcdev->channels == 3) {
-                       /* FIXME the calculations should be more precise */
-                       sglen_y = dma->sglen / 2;
-                       sglen_u = sglen_v = dma->sglen / 4 + 1;
-                       sglen_yu = sglen_y + sglen_u;
                        size_y = size / 2;
                        size_u = size_v = size / 4;
                } else {
-                       sglen_y = dma->sglen;
                        size_y = size;
                }
 
-               /* init DMA for Y channel */
-               ret = pxa_init_dma_channel(pcdev, buf, dma, 0, sglen_y,
-                                          0, 0x28, size_y);
+               sg = dma->sglist;
 
+               /* init DMA for Y channel */
+               ret = pxa_init_dma_channel(pcdev, buf, dma, 0, CIBR0, size_y,
+                                          &sg, &next_ofs);
                if (ret) {
                        dev_err(pcdev->dev,
                                "DMA initialization for Y/RGB failed\n");
                        goto fail;
                }
 
-               if (pcdev->channels == 3) {
-                       /* init DMA for U channel */
-                       ret = pxa_init_dma_channel(pcdev, buf, dma, 1, sglen_u,
-                                                  sglen_y, 0x30, size_u);
-                       if (ret) {
-                               dev_err(pcdev->dev,
-                                       "DMA initialization for U failed\n");
-                               goto fail_u;
-                       }
-
-                       /* init DMA for V channel */
-                       ret = pxa_init_dma_channel(pcdev, buf, dma, 2, sglen_v,
-                                                  sglen_yu, 0x38, size_v);
-                       if (ret) {
-                               dev_err(pcdev->dev,
-                                       "DMA initialization for V failed\n");
-                               goto fail_v;
-                       }
+               /* init DMA for U channel */
+               if (size_u)
+                       ret = pxa_init_dma_channel(pcdev, buf, dma, 1, CIBR1,
+                                                  size_u, &sg, &next_ofs);
+               if (ret) {
+                       dev_err(pcdev->dev,
+                               "DMA initialization for U failed\n");
+                       goto fail_u;
+               }
+
+               /* init DMA for V channel */
+               if (size_v)
+                       ret = pxa_init_dma_channel(pcdev, buf, dma, 2, CIBR2,
+                                                  size_v, &sg, &next_ofs);
+               if (ret) {
+                       dev_err(pcdev->dev,
+                               "DMA initialization for V failed\n");
+                       goto fail_v;
                }
 
                vb->state = VIDEOBUF_PREPARED;
        }
 
        buf->inwork = 0;
-       buf->active_dma = DMA_Y;
-       if (pcdev->channels == 3)
-               buf->active_dma |= DMA_U | DMA_V;
+       pxa_videobuf_set_actdma(pcdev, buf);
 
        return 0;
 
@@ -453,6 +534,92 @@ out:
        return ret;
 }
 
+/**
+ * pxa_dma_start_channels - start DMA channel for active buffer
+ * @pcdev: pxa camera device
+ *
+ * Initialize DMA channels to the beginning of the active video buffer, and
+ * start these channels.
+ */
+static void pxa_dma_start_channels(struct pxa_camera_dev *pcdev)
+{
+       int i;
+       struct pxa_buffer *active;
+
+       active = pcdev->active;
+
+       for (i = 0; i < pcdev->channels; i++) {
+               dev_dbg(pcdev->dev, "%s (channel=%d) ddadr=%08x\n", __func__,
+                       i, active->dmas[i].sg_dma);
+               DDADR(pcdev->dma_chans[i]) = active->dmas[i].sg_dma;
+               DCSR(pcdev->dma_chans[i]) = DCSR_RUN;
+       }
+}
+
+static void pxa_dma_stop_channels(struct pxa_camera_dev *pcdev)
+{
+       int i;
+
+       for (i = 0; i < pcdev->channels; i++) {
+               dev_dbg(pcdev->dev, "%s (channel=%d)\n", __func__, i);
+               DCSR(pcdev->dma_chans[i]) = 0;
+       }
+}
+
+static void pxa_dma_add_tail_buf(struct pxa_camera_dev *pcdev,
+                                struct pxa_buffer *buf)
+{
+       int i;
+       struct pxa_dma_desc *buf_last_desc;
+
+       for (i = 0; i < pcdev->channels; i++) {
+               buf_last_desc = buf->dmas[i].sg_cpu + buf->dmas[i].sglen;
+               buf_last_desc->ddadr = DDADR_STOP;
+
+               if (pcdev->sg_tail[i])
+                       /* Link the new buffer to the old tail */
+                       pcdev->sg_tail[i]->ddadr = buf->dmas[i].sg_dma;
+
+               /* Update the channel tail */
+               pcdev->sg_tail[i] = buf_last_desc;
+       }
+}
+
+/**
+ * pxa_camera_start_capture - start video capturing
+ * @pcdev: camera device
+ *
+ * Launch capturing. DMA channels should not be active yet. They should get
+ * activated at the end of frame interrupt, to capture only whole frames, and
+ * never begin the capture of a partial frame.
+ */
+static void pxa_camera_start_capture(struct pxa_camera_dev *pcdev)
+{
+       unsigned long cicr0, cifr;
+
+       dev_dbg(pcdev->dev, "%s\n", __func__);
+       /* Reset the FIFOs */
+       cifr = __raw_readl(pcdev->base + CIFR) | CIFR_RESET_F;
+       __raw_writel(cifr, pcdev->base + CIFR);
+       /* Enable End-Of-Frame Interrupt */
+       cicr0 = __raw_readl(pcdev->base + CICR0) | CICR0_ENB;
+       cicr0 &= ~CICR0_EOFM;
+       __raw_writel(cicr0, pcdev->base + CICR0);
+}
+
+static void pxa_camera_stop_capture(struct pxa_camera_dev *pcdev)
+{
+       unsigned long cicr0;
+
+       pxa_dma_stop_channels(pcdev);
+
+       cicr0 = __raw_readl(pcdev->base + CICR0) & ~CICR0_ENB;
+       __raw_writel(cicr0, pcdev->base + CICR0);
+
+       pcdev->active = NULL;
+       dev_dbg(pcdev->dev, "%s\n", __func__);
+}
+
 static void pxa_videobuf_queue(struct videobuf_queue *vq,
                               struct videobuf_buffer *vb)
 {
@@ -460,81 +627,20 @@ static void pxa_videobuf_queue(struct videobuf_queue *vq,
        struct soc_camera_host *ici = to_soc_camera_host(icd->dev.parent);
        struct pxa_camera_dev *pcdev = ici->priv;
        struct pxa_buffer *buf = container_of(vb, struct pxa_buffer, vb);
-       struct pxa_buffer *active;
        unsigned long flags;
-       int i;
 
-       dev_dbg(&icd->dev, "%s (vb=0x%p) 0x%08lx %d\n", __func__,
-               vb, vb->baddr, vb->bsize);
+       dev_dbg(&icd->dev, "%s (vb=0x%p) 0x%08lx %d active=%p\n", __func__,
+               vb, vb->baddr, vb->bsize, pcdev->active);
+
        spin_lock_irqsave(&pcdev->lock, flags);
 
        list_add_tail(&vb->queue, &pcdev->capture);
 
        vb->state = VIDEOBUF_ACTIVE;
-       active = pcdev->active;
+       pxa_dma_add_tail_buf(pcdev, buf);
 
-       if (!active) {
-               unsigned long cifr, cicr0;
-
-               cifr = __raw_readl(pcdev->base + CIFR) | CIFR_RESET_F;
-               __raw_writel(cifr, pcdev->base + CIFR);
-
-               for (i = 0; i < pcdev->channels; i++) {
-                       DDADR(pcdev->dma_chans[i]) = buf->dmas[i].sg_dma;
-                       DCSR(pcdev->dma_chans[i]) = DCSR_RUN;
-                       pcdev->sg_tail[i] = buf->dmas[i].sg_cpu + buf->dmas[i].sglen - 1;
-               }
-
-               pcdev->active = buf;
-
-               cicr0 = __raw_readl(pcdev->base + CICR0) | CICR0_ENB;
-               __raw_writel(cicr0, pcdev->base + CICR0);
-       } else {
-               struct pxa_cam_dma *buf_dma;
-               struct pxa_cam_dma *act_dma;
-               int nents;
-
-               for (i = 0; i < pcdev->channels; i++) {
-                       buf_dma = &buf->dmas[i];
-                       act_dma = &active->dmas[i];
-                       nents = buf_dma->sglen;
-
-                       /* Stop DMA engine */
-                       DCSR(pcdev->dma_chans[i]) = 0;
-
-                       /* Add the descriptors we just initialized to
-                          the currently running chain */
-                       pcdev->sg_tail[i]->ddadr = buf_dma->sg_dma;
-                       pcdev->sg_tail[i] = buf_dma->sg_cpu + buf_dma->sglen - 1;
-
-                       /* Setup a dummy descriptor with the DMA engines current
-                        * state
-                        */
-                       buf_dma->sg_cpu[nents].dsadr =
-                               pcdev->res->start + 0x28 + i*8; /* CIBRx */
-                       buf_dma->sg_cpu[nents].dtadr =
-                               DTADR(pcdev->dma_chans[i]);
-                       buf_dma->sg_cpu[nents].dcmd =
-                               DCMD(pcdev->dma_chans[i]);
-
-                       if (DDADR(pcdev->dma_chans[i]) == DDADR_STOP) {
-                               /* The DMA engine is on the last
-                                  descriptor, set the next descriptors
-                                  address to the descriptors we just
-                                  initialized */
-                               buf_dma->sg_cpu[nents].ddadr = buf_dma->sg_dma;
-                       } else {
-                               buf_dma->sg_cpu[nents].ddadr =
-                                       DDADR(pcdev->dma_chans[i]);
-                       }
-
-                       /* The next descriptor is the dummy descriptor */
-                       DDADR(pcdev->dma_chans[i]) = buf_dma->sg_dma + nents *
-                               sizeof(struct pxa_dma_desc);
-
-                       DCSR(pcdev->dma_chans[i]) = DCSR_RUN;
-               }
-       }
+       if (!pcdev->active)
+               pxa_camera_start_capture(pcdev);
 
        spin_unlock_irqrestore(&pcdev->lock, flags);
 }
@@ -572,7 +678,7 @@ static void pxa_camera_wakeup(struct pxa_camera_dev *pcdev,
                              struct videobuf_buffer *vb,
                              struct pxa_buffer *buf)
 {
-       unsigned long cicr0;
+       int i;
 
        /* _init is used to debug races, see comment in pxa_camera_reqbufs() */
        list_del_init(&vb->queue);
@@ -580,15 +686,12 @@ static void pxa_camera_wakeup(struct pxa_camera_dev *pcdev,
        do_gettimeofday(&vb->ts);
        vb->field_count++;
        wake_up(&vb->done);
+       dev_dbg(pcdev->dev, "%s dequeud buffer (vb=0x%p)\n", __func__, vb);
 
        if (list_empty(&pcdev->capture)) {
-               pcdev->active = NULL;
-               DCSR(pcdev->dma_chans[0]) = 0;
-               DCSR(pcdev->dma_chans[1]) = 0;
-               DCSR(pcdev->dma_chans[2]) = 0;
-
-               cicr0 = __raw_readl(pcdev->base + CICR0) & ~CICR0_ENB;
-               __raw_writel(cicr0, pcdev->base + CICR0);
+               pxa_camera_stop_capture(pcdev);
+               for (i = 0; i < pcdev->channels; i++)
+                       pcdev->sg_tail[i] = NULL;
                return;
        }
 
@@ -596,6 +699,35 @@ static void pxa_camera_wakeup(struct pxa_camera_dev *pcdev,
                                   struct pxa_buffer, vb.queue);
 }
 
+/**
+ * pxa_camera_check_link_miss - check missed DMA linking
+ * @pcdev: camera device
+ *
+ * The DMA chaining is done with DMA running. This means a tiny temporal window
+ * remains, where a buffer is queued on the chain, while the chain is already
+ * stopped. This means the tailed buffer would never be transfered by DMA.
+ * This function restarts the capture for this corner case, where :
+ *  - DADR() == DADDR_STOP
+ *  - a videobuffer is queued on the pcdev->capture list
+ *
+ * Please check the "DMA hot chaining timeslice issue" in
+ *   Documentation/video4linux/pxa_camera.txt
+ *
+ * Context: should only be called within the dma irq handler
+ */
+static void pxa_camera_check_link_miss(struct pxa_camera_dev *pcdev)
+{
+       int i, is_dma_stopped = 1;
+
+       for (i = 0; i < pcdev->channels; i++)
+               if (DDADR(pcdev->dma_chans[i]) != DDADR_STOP)
+                       is_dma_stopped = 0;
+       dev_dbg(pcdev->dev, "%s : top queued buffer=%p, dma_stopped=%d\n",
+               __func__, pcdev->active, is_dma_stopped);
+       if (pcdev->active && is_dma_stopped)
+               pxa_camera_start_capture(pcdev);
+}
+
 static void pxa_camera_dma_irq(int channel, struct pxa_camera_dev *pcdev,
                               enum pxa_camera_active_dma act_dma)
 {
@@ -603,61 +735,70 @@ static void pxa_camera_dma_irq(int channel, struct pxa_camera_dev *pcdev,
        unsigned long flags;
        u32 status, camera_status, overrun;
        struct videobuf_buffer *vb;
-       unsigned long cifr, cicr0;
 
        spin_lock_irqsave(&pcdev->lock, flags);
 
        status = DCSR(channel);
-       DCSR(channel) = status | DCSR_ENDINTR;
+       DCSR(channel) = status;
+
+       camera_status = __raw_readl(pcdev->base + CISR);
+       overrun = CISR_IFO_0;
+       if (pcdev->channels == 3)
+               overrun |= CISR_IFO_1 | CISR_IFO_2;
 
        if (status & DCSR_BUSERR) {
                dev_err(pcdev->dev, "DMA Bus Error IRQ!\n");
                goto out;
        }
 
-       if (!(status & DCSR_ENDINTR)) {
+       if (!(status & (DCSR_ENDINTR | DCSR_STARTINTR))) {
                dev_err(pcdev->dev, "Unknown DMA IRQ source, "
                        "status: 0x%08x\n", status);
                goto out;
        }
 
-       if (!pcdev->active) {
-               dev_err(pcdev->dev, "DMA End IRQ with no active buffer!\n");
-               goto out;
-       }
-
-       camera_status = __raw_readl(pcdev->base + CISR);
-       overrun = CISR_IFO_0;
-       if (pcdev->channels == 3)
-               overrun |= CISR_IFO_1 | CISR_IFO_2;
-       if (camera_status & overrun) {
-               dev_dbg(pcdev->dev, "FIFO overrun! CISR: %x\n", camera_status);
-               /* Stop the Capture Interface */
-               cicr0 = __raw_readl(pcdev->base + CICR0) & ~CICR0_ENB;
-               __raw_writel(cicr0, pcdev->base + CICR0);
-
-               /* Stop DMA */
-               DCSR(channel) = 0;
-               /* Reset the FIFOs */
-               cifr = __raw_readl(pcdev->base + CIFR) | CIFR_RESET_F;
-               __raw_writel(cifr, pcdev->base + CIFR);
-               /* Enable End-Of-Frame Interrupt */
-               cicr0 &= ~CICR0_EOFM;
-               __raw_writel(cicr0, pcdev->base + CICR0);
-               /* Restart the Capture Interface */
-               __raw_writel(cicr0 | CICR0_ENB, pcdev->base + CICR0);
+       /*
+        * pcdev->active should not be NULL in DMA irq handler.
+        *
+        * But there is one corner case : if capture was stopped due to an
+        * overrun of channel 1, and at that same channel 2 was completed.
+        *
+        * When handling the overrun in DMA irq for channel 1, we'll stop the
+        * capture and restart it (and thus set pcdev->active to NULL). But the
+        * DMA irq handler will already be pending for channel 2. So on entering
+        * the DMA irq handler for channel 2 there will be no active buffer, yet
+        * that is normal.
+        */
+       if (!pcdev->active)
                goto out;
-       }
 
        vb = &pcdev->active->vb;
        buf = container_of(vb, struct pxa_buffer, vb);
        WARN_ON(buf->inwork || list_empty(&vb->queue));
-       dev_dbg(pcdev->dev, "%s (vb=0x%p) 0x%08lx %d\n", __func__,
-               vb, vb->baddr, vb->bsize);
 
-       buf->active_dma &= ~act_dma;
-       if (!buf->active_dma)
-               pxa_camera_wakeup(pcdev, vb, buf);
+       dev_dbg(pcdev->dev, "%s channel=%d %s%s(vb=0x%p) dma.desc=%x\n",
+               __func__, channel, status & DCSR_STARTINTR ? "SOF " : "",
+               status & DCSR_ENDINTR ? "EOF " : "", vb, DDADR(channel));
+
+       if (status & DCSR_ENDINTR) {
+               /*
+                * It's normal if the last frame creates an overrun, as there
+                * are no more DMA descriptors to fetch from QCI fifos
+                */
+               if (camera_status & overrun &&
+                   !list_is_last(pcdev->capture.next, &pcdev->capture)) {
+                       dev_dbg(pcdev->dev, "FIFO overrun! CISR: %x\n",
+                               camera_status);
+                       pxa_camera_stop_capture(pcdev);
+                       pxa_camera_start_capture(pcdev);
+                       goto out;
+               }
+               buf->active_dma &= ~act_dma;
+               if (!buf->active_dma) {
+                       pxa_camera_wakeup(pcdev, vb, buf);
+                       pxa_camera_check_link_miss(pcdev);
+               }
+       }
 
 out:
        spin_unlock_irqrestore(&pcdev->lock, flags);
@@ -786,6 +927,8 @@ static irqreturn_t pxa_camera_irq(int irq, void *data)
 {
        struct pxa_camera_dev *pcdev = data;
        unsigned long status, cicr0;
+       struct pxa_buffer *buf;
+       struct videobuf_buffer *vb;
 
        status = __raw_readl(pcdev->base + CISR);
        dev_dbg(pcdev->dev, "Camera interrupt status 0x%lx\n", status);
@@ -796,12 +939,14 @@ static irqreturn_t pxa_camera_irq(int irq, void *data)
        __raw_writel(status, pcdev->base + CISR);
 
        if (status & CISR_EOF) {
-               int i;
-               for (i = 0; i < pcdev->channels; i++) {
-                       DDADR(pcdev->dma_chans[i]) =
-                               pcdev->active->dmas[i].sg_dma;
-                       DCSR(pcdev->dma_chans[i]) = DCSR_RUN;
-               }
+               pcdev->active = list_first_entry(&pcdev->capture,
+                                          struct pxa_buffer, vb.queue);
+               vb = &pcdev->active->vb;
+               buf = container_of(vb, struct pxa_buffer, vb);
+               pxa_videobuf_set_actdma(pcdev, buf);
+
+               pxa_dma_start_channels(pcdev);
+
                cicr0 = __raw_readl(pcdev->base + CICR0) | CICR0_EOFM;
                __raw_writel(cicr0, pcdev->base + CICR0);
        }
@@ -1265,6 +1410,18 @@ static int pxa_camera_try_fmt(struct soc_camera_device *icd,
                pix->width = 2048;
        pix->width &= ~0x01;
 
+       /*
+        * YUV422P planar format requires images size to be a 16 bytes
+        * multiple. If not, zeros will be inserted between Y and U planes, and
+        * U and V planes, and YUV422P standard would be violated.
+        */
+       if (xlate->host_fmt->fourcc == V4L2_PIX_FMT_YUV422P) {
+               if (!IS_ALIGNED(pix->width * pix->height, YUV422P_SIZE_ALIGN))
+                       pix->height = ALIGN(pix->height, YUV422P_X_Y_ALIGN);
+               if (!IS_ALIGNED(pix->width * pix->height, YUV422P_SIZE_ALIGN))
+                       pix->width = ALIGN(pix->width, YUV422P_X_Y_ALIGN);
+       }
+
        pix->bytesperline = pix->width *
                DIV_ROUND_UP(xlate->host_fmt->depth, 8);
        pix->sizeimage = pix->height * pix->bytesperline;
@@ -1372,18 +1529,8 @@ static int pxa_camera_resume(struct soc_camera_device *icd)
                ret = pcdev->icd->ops->resume(pcdev->icd);
 
        /* Restart frame capture if active buffer exists */
-       if (!ret && pcdev->active) {
-               unsigned long cifr, cicr0;
-
-               /* Reset the FIFOs */
-               cifr = __raw_readl(pcdev->base + CIFR) | CIFR_RESET_F;
-               __raw_writel(cifr, pcdev->base + CIFR);
-
-               cicr0 = __raw_readl(pcdev->base + CICR0);
-               cicr0 &= ~CICR0_EOFM;   /* Enable End-Of-Frame Interrupt */
-               cicr0 |= CICR0_ENB;     /* Restart the Capture Interface */
-               __raw_writel(cicr0, pcdev->base + CICR0);
-       }
+       if (!ret && pcdev->active)
+               pxa_camera_start_capture(pcdev);
 
        return ret;
 }
index b5be633..5202cad 100644 (file)
@@ -722,7 +722,6 @@ static void free_buffer(struct videobuf_queue *vq, struct s2255_buffer *buf)
 {
        dprintk(4, "%s\n", __func__);
 
-       videobuf_waiton(&buf->vb, 0, 0);
        videobuf_vmalloc_free(&buf->vb);
        buf->vb.state = VIDEOBUF_NEEDS_INIT;
 }
@@ -1324,7 +1323,6 @@ static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)
 
 static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
 {
-       int res;
        struct s2255_fh *fh = priv;
        struct s2255_dev *dev = fh->dev;
 
@@ -1338,9 +1336,7 @@ static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
                return -EINVAL;
        }
        s2255_stop_acquire(dev, fh->channel);
-       res = videobuf_streamoff(&fh->vb_vidq);
-       if (res < 0)
-               return res;
+       videobuf_streamoff(&fh->vb_vidq);
        res_free(dev, fh);
        return 0;
 }
@@ -1707,13 +1703,13 @@ static void s2255_destroy(struct kref *kref)
        kfree(dev->fw_data);
        usb_put_dev(dev->udev);
        dprintk(1, "%s", __func__);
-       kfree(dev);
 
        while (!list_empty(&s2255_devlist)) {
                list = s2255_devlist.next;
                list_del(list);
        }
        mutex_unlock(&dev->open_lock);
+       kfree(dev);
 }
 
 static int s2255_close(struct file *file)
index df4e08d..5c24c99 100644 (file)
@@ -299,17 +299,18 @@ static int saa7110_s_std(struct v4l2_subdev *sd, v4l2_std_id std)
        return 0;
 }
 
-static int saa7110_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *route)
+static int saa7110_s_routing(struct v4l2_subdev *sd,
+                            u32 input, u32 output, u32 config)
 {
        struct saa7110 *decoder = to_saa7110(sd);
 
-       if (route->input < 0 || route->input >= SAA7110_MAX_INPUT) {
-               v4l2_dbg(1, debug, sd, "input=%d not available\n", route->input);
+       if (input < 0 || input >= SAA7110_MAX_INPUT) {
+               v4l2_dbg(1, debug, sd, "input=%d not available\n", input);
                return -EINVAL;
        }
-       if (decoder->input != route->input) {
-               saa7110_selmux(sd, route->input);
-               v4l2_dbg(1, debug, sd, "switched to input=%d\n", route->input);
+       if (decoder->input != input) {
+               saa7110_selmux(sd, input);
+               v4l2_dbg(1, debug, sd, "switched to input=%d\n", input);
        }
        return 0;
 }
@@ -414,9 +415,6 @@ static const struct v4l2_subdev_core_ops saa7110_core_ops = {
        .g_ctrl = saa7110_g_ctrl,
        .s_ctrl = saa7110_s_ctrl,
        .queryctrl = saa7110_queryctrl,
-};
-
-static const struct v4l2_subdev_tuner_ops saa7110_tuner_ops = {
        .s_std = saa7110_s_std,
 };
 
@@ -429,7 +427,6 @@ static const struct v4l2_subdev_video_ops saa7110_video_ops = {
 
 static const struct v4l2_subdev_ops saa7110_ops = {
        .core = &saa7110_core_ops,
-       .tuner = &saa7110_tuner_ops,
        .video = &saa7110_video_ops,
 };
 
index cebf159..44873a0 100644 (file)
@@ -46,7 +46,7 @@
 #include <linux/videodev2.h>
 #include <media/v4l2-device.h>
 #include <media/v4l2-chip-ident.h>
-#include <media/v4l2-i2c-drv-legacy.h>
+#include <media/v4l2-i2c-drv.h>
 #include <media/saa7115.h>
 #include <asm/div64.h>
 
@@ -62,12 +62,6 @@ module_param(debug, bool, 0644);
 
 MODULE_PARM_DESC(debug, "Debug level (0-1)");
 
-static unsigned short normal_i2c[] = {
-               0x4a >> 1, 0x48 >> 1,   /* SAA7111, SAA7111A and SAA7113 */
-               0x42 >> 1, 0x40 >> 1,   /* SAA7114, SAA7115 and SAA7118 */
-               I2C_CLIENT_END };
-
-I2C_CLIENT_INSMOD;
 
 struct saa711x_state {
        struct v4l2_subdev sd;
@@ -1234,30 +1228,32 @@ static int saa711x_s_radio(struct v4l2_subdev *sd)
        return 0;
 }
 
-static int saa711x_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *route)
+static int saa711x_s_routing(struct v4l2_subdev *sd,
+                            u32 input, u32 output, u32 config)
 {
        struct saa711x_state *state = to_state(sd);
-       u32 input = route->input;
        u8 mask = (state->ident == V4L2_IDENT_SAA7111) ? 0xf8 : 0xf0;
 
-       v4l2_dbg(1, debug, sd, "decoder set input %d output %d\n", route->input, route->output);
+       v4l2_dbg(1, debug, sd, "decoder set input %d output %d\n",
+               input, output);
+
        /* saa7111/3 does not have these inputs */
        if ((state->ident == V4L2_IDENT_SAA7113 ||
             state->ident == V4L2_IDENT_SAA7111) &&
-           (route->input == SAA7115_COMPOSITE4 ||
-            route->input == SAA7115_COMPOSITE5)) {
+           (input == SAA7115_COMPOSITE4 ||
+            input == SAA7115_COMPOSITE5)) {
                return -EINVAL;
        }
-       if (route->input > SAA7115_SVIDEO3)
+       if (input > SAA7115_SVIDEO3)
                return -EINVAL;
-       if (route->output > SAA7115_IPORT_ON)
+       if (output > SAA7115_IPORT_ON)
                return -EINVAL;
-       if (state->input == route->input && state->output == route->output)
+       if (state->input == input && state->output == output)
                return 0;
        v4l2_dbg(1, debug, sd, "now setting %s input %s output\n",
-               (route->input >= SAA7115_SVIDEO0) ? "S-Video" : "Composite",
-               (route->output == SAA7115_IPORT_ON) ? "iport on" : "iport off");
-       state->input = route->input;
+               (input >= SAA7115_SVIDEO0) ? "S-Video" : "Composite",
+               (output == SAA7115_IPORT_ON) ? "iport on" : "iport off");
+       state->input = input;
 
        /* saa7111 has slightly different input numbering */
        if (state->ident == V4L2_IDENT_SAA7111) {
@@ -1266,10 +1262,10 @@ static int saa711x_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *
                /* saa7111 specific */
                saa711x_write(sd, R_10_CHROMA_CNTL_2,
                                (saa711x_read(sd, R_10_CHROMA_CNTL_2) & 0x3f) |
-                               ((route->output & 0xc0) ^ 0x40));
+                               ((output & 0xc0) ^ 0x40));
                saa711x_write(sd, R_13_RT_X_PORT_OUT_CNTL,
                                (saa711x_read(sd, R_13_RT_X_PORT_OUT_CNTL) & 0xf0) |
-                               ((route->output & 2) ? 0x0a : 0));
+                               ((output & 2) ? 0x0a : 0));
        }
 
        /* select mode */
@@ -1282,7 +1278,7 @@ static int saa711x_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *
                        (saa711x_read(sd, R_09_LUMA_CNTL) & 0x7f) |
                        (state->input >= SAA7115_SVIDEO0 ? 0x80 : 0x0));
 
-       state->output = route->output;
+       state->output = output;
        if (state->ident == V4L2_IDENT_SAA7114 ||
                        state->ident == V4L2_IDENT_SAA7115) {
                saa711x_write(sd, R_83_X_PORT_I_O_ENA_AND_OUT_CLK,
@@ -1319,17 +1315,16 @@ static int saa711x_s_stream(struct v4l2_subdev *sd, int enable)
        return 0;
 }
 
-static int saa711x_s_crystal_freq(struct v4l2_subdev *sd, struct v4l2_crystal_freq *freq)
+static int saa711x_s_crystal_freq(struct v4l2_subdev *sd, u32 freq, u32 flags)
 {
        struct saa711x_state *state = to_state(sd);
 
-       if (freq->freq != SAA7115_FREQ_32_11_MHZ &&
-                       freq->freq != SAA7115_FREQ_24_576_MHZ)
+       if (freq != SAA7115_FREQ_32_11_MHZ && freq != SAA7115_FREQ_24_576_MHZ)
                return -EINVAL;
-       state->crystal_freq = freq->freq;
-       state->cgcdiv = (freq->flags & SAA7115_FREQ_FL_CGCDIV) ? 3 : 4;
-       state->ucgc = (freq->flags & SAA7115_FREQ_FL_UCGC) ? 1 : 0;
-       state->apll = (freq->flags & SAA7115_FREQ_FL_APLL) ? 1 : 0;
+       state->crystal_freq = freq;
+       state->cgcdiv = (flags & SAA7115_FREQ_FL_CGCDIV) ? 3 : 4;
+       state->ucgc = (flags & SAA7115_FREQ_FL_UCGC) ? 1 : 0;
+       state->apll = (flags & SAA7115_FREQ_FL_APLL) ? 1 : 0;
        saa711x_s_clock_freq(sd, state->audclk_freq);
        return 0;
 }
@@ -1498,11 +1493,6 @@ static int saa711x_log_status(struct v4l2_subdev *sd)
        return 0;
 }
 
-static int saa711x_command(struct i2c_client *client, unsigned cmd, void *arg)
-{
-       return v4l2_subdev_command(i2c_get_clientdata(client), cmd, arg);
-}
-
 /* ----------------------------------------------------------------------- */
 
 static const struct v4l2_subdev_core_ops saa711x_core_ops = {
@@ -1511,6 +1501,7 @@ static const struct v4l2_subdev_core_ops saa711x_core_ops = {
        .g_ctrl = saa711x_g_ctrl,
        .s_ctrl = saa711x_s_ctrl,
        .queryctrl = saa711x_queryctrl,
+       .s_std = saa711x_s_std,
        .reset = saa711x_reset,
        .s_gpio = saa711x_s_gpio,
 #ifdef CONFIG_VIDEO_ADV_DEBUG
@@ -1520,7 +1511,6 @@ static const struct v4l2_subdev_core_ops saa711x_core_ops = {
 };
 
 static const struct v4l2_subdev_tuner_ops saa711x_tuner_ops = {
-       .s_std = saa711x_s_std,
        .s_radio = saa711x_s_radio,
        .g_tuner = saa711x_g_tuner,
 };
@@ -1676,10 +1666,7 @@ MODULE_DEVICE_TABLE(i2c, saa7115_id);
 
 static struct v4l2_i2c_driver_data v4l2_i2c_data = {
        .name = "saa7115",
-       .driverid = I2C_DRIVERID_SAA711X,
-       .command = saa711x_command,
        .probe = saa711x_probe,
        .remove = saa711x_remove,
-       .legacy_class = I2C_CLASS_TV_ANALOG | I2C_CLASS_TV_DIGITAL,
        .id_table = saa7115_id,
 };
index 128bb8b..2fe7a70 100644 (file)
@@ -570,15 +570,16 @@ static int saa7127_s_std_output(struct v4l2_subdev *sd, v4l2_std_id std)
        return saa7127_set_std(sd, std);
 }
 
-static int saa7127_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *route)
+static int saa7127_s_routing(struct v4l2_subdev *sd,
+                            u32 input, u32 output, u32 config)
 {
        struct saa7127_state *state = to_state(sd);
        int rc = 0;
 
-       if (state->input_type != route->input)
-               rc = saa7127_set_input_type(sd, route->input);
-       if (rc == 0 && state->output_type != route->output)
-               rc = saa7127_set_output_type(sd, route->output);
+       if (state->input_type != input)
+               rc = saa7127_set_input_type(sd, input);
+       if (rc == 0 && state->output_type != output)
+               rc = saa7127_set_output_type(sd, output);
        return rc;
 }
 
index dc2213e..63c4b8f 100644 (file)
@@ -928,9 +928,6 @@ static const struct v4l2_subdev_core_ops saa6752hs_core_ops = {
        .g_ext_ctrls = saa6752hs_g_ext_ctrls,
        .s_ext_ctrls = saa6752hs_s_ext_ctrls,
        .try_ext_ctrls = saa6752hs_try_ext_ctrls,
-};
-
-static const struct v4l2_subdev_tuner_ops saa6752hs_tuner_ops = {
        .s_std = saa6752hs_s_std,
 };
 
@@ -941,7 +938,6 @@ static const struct v4l2_subdev_video_ops saa6752hs_video_ops = {
 
 static const struct v4l2_subdev_ops saa6752hs_ops = {
        .core = &saa6752hs_core_ops,
-       .tuner = &saa6752hs_tuner_ops,
        .video = &saa6752hs_video_ops,
 };
 
index a790a72..fdb1944 100644 (file)
@@ -4508,12 +4508,17 @@ struct saa7134_board saa7134_boards[] = {
                /* Matthias Schwarzott <zzam@gentoo.org> */
                .name           = "Avermedia DVB-S Hybrid+FM A700",
                .audio_clock    = 0x00187de7,
-               .tuner_type     = TUNER_ABSENT, /* TUNER_XC2028 */
+               .tuner_type     = TUNER_XC2028,
                .radio_type     = UNSET,
                .tuner_addr     = ADDR_UNSET,
                .radio_addr     = ADDR_UNSET,
                .mpeg           = SAA7134_MPEG_DVB,
                .inputs         = { {
+                       .name   = name_tv,
+                       .vmux   = 4,
+                       .amux   = TV,
+                       .tv     = 1,
+               }, {
                        .name = name_comp,
                        .vmux = 1,
                        .amux = LINE1,
@@ -4522,6 +4527,10 @@ struct saa7134_board saa7134_boards[] = {
                        .vmux = 6,
                        .amux = LINE1,
                } },
+               .radio = {
+                       .name = name_radio,
+                       .amux = TV,
+               },
        },
        [SAA7134_BOARD_BEHOLD_H6] = {
                /* Igor Kuznetsov <igk@igk.ru> */
@@ -5914,6 +5923,11 @@ static int saa7134_xc2028_callback(struct saa7134_dev *dev,
                        msleep(10);
                        saa7134_set_gpio(dev, 21, 1);
                break;
+               case SAA7134_BOARD_AVERMEDIA_A700_HYBRID:
+                       saa7134_set_gpio(dev, 18, 0);
+                       msleep(10);
+                       saa7134_set_gpio(dev, 18, 1);
+               break;
                }
        return 0;
        }
@@ -6259,10 +6273,6 @@ int saa7134_board_init1(struct saa7134_dev *dev)
                saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0c0007cd, 0x0c0007cd);
                break;
        case SAA7134_BOARD_AVERMEDIA_A700_HYBRID:
-               printk("%s: %s: hybrid analog/dvb card\n"
-                      "%s: Sorry, of the analog inputs, only analog s-video and composite "
-                      "are supported for now.\n",
-                       dev->name, card(dev).name, dev->name);
        case SAA7134_BOARD_AVERMEDIA_A700_PRO:
                /* write windows gpio values */
                saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x80040100, 0x80040100);
@@ -6326,6 +6336,7 @@ static void saa7134_tuner_setup(struct saa7134_dev *dev)
                case SAA7134_BOARD_AVERMEDIA_A16D:
                case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
                case SAA7134_BOARD_AVERMEDIA_M103:
+               case SAA7134_BOARD_AVERMEDIA_A700_HYBRID:
                        ctl.demod = XC3028_FE_ZARLINK456;
                        break;
                default:
@@ -6599,20 +6610,24 @@ int saa7134_board_init2(struct saa7134_dev *dev)
                /* Note: radio tuner address is always filled in,
                   so we do not need to probe for a radio tuner device. */
                if (dev->radio_type != UNSET)
-                       v4l2_i2c_new_subdev(&dev->i2c_adap,
-                               "tuner", "tuner", dev->radio_addr);
+                       v4l2_i2c_new_subdev(&dev->v4l2_dev,
+                               &dev->i2c_adap, "tuner", "tuner",
+                               dev->radio_addr);
                if (has_demod)
-                       v4l2_i2c_new_probed_subdev(&dev->i2c_adap, "tuner",
-                               "tuner", v4l2_i2c_tuner_addrs(ADDRS_DEMOD));
+                       v4l2_i2c_new_probed_subdev(&dev->v4l2_dev,
+                               &dev->i2c_adap, "tuner", "tuner",
+                               v4l2_i2c_tuner_addrs(ADDRS_DEMOD));
                if (dev->tuner_addr == ADDR_UNSET) {
                        enum v4l2_i2c_tuner_type type =
                                has_demod ? ADDRS_TV_WITH_DEMOD : ADDRS_TV;
 
-                       v4l2_i2c_new_probed_subdev(&dev->i2c_adap, "tuner",
-                               "tuner", v4l2_i2c_tuner_addrs(type));
+                       v4l2_i2c_new_probed_subdev(&dev->v4l2_dev,
+                               &dev->i2c_adap, "tuner", "tuner",
+                               v4l2_i2c_tuner_addrs(type));
                } else {
-                       v4l2_i2c_new_subdev(&dev->i2c_adap,
-                               "tuner", "tuner", dev->tuner_addr);
+                       v4l2_i2c_new_subdev(&dev->v4l2_dev,
+                               &dev->i2c_adap, "tuner", "tuner",
+                               dev->tuner_addr);
                }
        }
 
index dafa0d8..0bb09f1 100644 (file)
@@ -982,7 +982,7 @@ static int __devinit saa7134_initdev(struct pci_dev *pci_dev,
        /* load i2c helpers */
        if (card_is_empress(dev)) {
                struct v4l2_subdev *sd =
-                       v4l2_i2c_new_subdev(&dev->i2c_adap,
+                       v4l2_i2c_new_subdev(&dev->v4l2_dev, &dev->i2c_adap,
                                "saa6752hs", "saa6752hs",
                                saa7134_boards[dev->board].empress_addr);
 
@@ -991,12 +991,11 @@ static int __devinit saa7134_initdev(struct pci_dev *pci_dev,
        }
 
        if (saa7134_boards[dev->board].rds_addr) {
-               unsigned short addrs[2] = { 0, I2C_CLIENT_END };
                struct v4l2_subdev *sd;
 
-               addrs[0] = saa7134_boards[dev->board].rds_addr;
-               sd = v4l2_i2c_new_probed_subdev(&dev->i2c_adap, "saa6588",
-                           "saa6588", addrs);
+               sd = v4l2_i2c_new_probed_subdev_addr(&dev->v4l2_dev,
+                               &dev->i2c_adap, "saa6588", "saa6588",
+                               saa7134_boards[dev->board].rds_addr);
                if (sd)
                        printk(KERN_INFO "%s: found RDS decoder\n", dev->name);
        }
@@ -1015,7 +1014,7 @@ static int __devinit saa7134_initdev(struct pci_dev *pci_dev,
        saa7134_irq_video_signalchange(dev);
 
        if (TUNER_ABSENT != dev->tuner_type)
-               saa_call_all(dev, core, s_standby, 0);
+               saa_call_all(dev, tuner, s_standby);
 
        /* register v4l devices */
        if (saa7134_no_overlay > 0)
index 404f70e..493cad9 100644 (file)
@@ -625,10 +625,10 @@ void saa7134_set_tvnorm_hw(struct saa7134_dev *dev)
        saa7134_set_decoder(dev);
 
        if (card_in(dev, dev->ctl_input).tv)
-               saa_call_all(dev, tuner, s_std, dev->tvnorm->id);
+               saa_call_all(dev, core, s_std, dev->tvnorm->id);
        /* Set the correct norm for the saa6752hs. This function
           does nothing if there is no saa6752hs. */
-       saa_call_empress(dev, tuner, s_std, dev->tvnorm->id);
+       saa_call_empress(dev, core, s_std, dev->tvnorm->id);
 }
 
 static void set_h_prescale(struct saa7134_dev *dev, int task, int prescale)
@@ -1496,7 +1496,7 @@ static int video_release(struct file *file)
        saa_andorb(SAA7134_OFMT_DATA_A, 0x1f, 0);
        saa_andorb(SAA7134_OFMT_DATA_B, 0x1f, 0);
 
-       saa_call_all(dev, core, s_standby, 0);
+       saa_call_all(dev, tuner, s_standby);
        if (fh->radio)
                saa_call_all(dev, core, ioctl, RDS_CMD_CLOSE, &cmd);
 
index a2dd326..0cbaf90 100644 (file)
@@ -20,7 +20,7 @@
  */
 
 #include <linux/version.h>
-#define SAA7134_VERSION_CODE KERNEL_VERSION(0,2,14)
+#define SAA7134_VERSION_CODE KERNEL_VERSION(0,2,15)
 
 #include <linux/pci.h>
 #include <linux/i2c.h>
index 25bf230..b15c409 100644 (file)
@@ -1104,22 +1104,22 @@ static struct v4l2_queryctrl saa717x_qctrl[] = {
        },
 };
 
-static int saa717x_s_video_routing(struct v4l2_subdev *sd, const struct v4l2_routing *route)
+static int saa717x_s_video_routing(struct v4l2_subdev *sd,
+                                  u32 input, u32 output, u32 config)
 {
        struct saa717x_state *decoder = to_state(sd);
-       int inp = route->input;
-       int is_tuner = inp & 0x80;  /* tuner input flag */
+       int is_tuner = input & 0x80;  /* tuner input flag */
 
-       inp &= 0x7f;
+       input &= 0x7f;
 
-       v4l2_dbg(1, debug, sd, "decoder set input (%d)\n", inp);
+       v4l2_dbg(1, debug, sd, "decoder set input (%d)\n", input);
        /* inputs from 0-9 are available*/
        /* saa717x have mode0-mode9 but mode5 is reserved. */
-       if (inp < 0 || inp > 9 || inp == 5)
+       if (input < 0 || input > 9 || input == 5)
                return -EINVAL;
 
-       if (decoder->input != inp) {
-               int input_line = inp;
+       if (decoder->input != input) {
+               int input_line = input;
 
                decoder->input = input_line;
                v4l2_dbg(1, debug, sd,  "now setting %s input %d\n",
@@ -1276,12 +1276,13 @@ static int saa717x_s_std(struct v4l2_subdev *sd, v4l2_std_id std)
        return 0;
 }
 
-static int saa717x_s_audio_routing(struct v4l2_subdev *sd, const struct v4l2_routing *route)
+static int saa717x_s_audio_routing(struct v4l2_subdev *sd,
+                                  u32 input, u32 output, u32 config)
 {
        struct saa717x_state *decoder = to_state(sd);
 
-       if (route->input < 3) { /* FIXME! --tadachi */
-               decoder->audio_input = route->input;
+       if (input < 3) { /* FIXME! --tadachi */
+               decoder->audio_input = input;
                v4l2_dbg(1, debug, sd,
                                "set decoder audio input to %d\n",
                                decoder->audio_input);
@@ -1390,12 +1391,12 @@ static const struct v4l2_subdev_core_ops saa717x_core_ops = {
        .queryctrl = saa717x_queryctrl,
        .g_ctrl = saa717x_g_ctrl,
        .s_ctrl = saa717x_s_ctrl,
+       .s_std = saa717x_s_std,
 };
 
 static const struct v4l2_subdev_tuner_ops saa717x_tuner_ops = {
        .g_tuner = saa717x_g_tuner,
        .s_tuner = saa717x_s_tuner,
-       .s_std = saa717x_s_std,
        .s_radio = saa717x_s_radio,
 };
 
index 75747b1..212baa1 100644 (file)
@@ -245,14 +245,15 @@ static int saa7185_s_std_output(struct v4l2_subdev *sd, v4l2_std_id std)
        return 0;
 }
 
-static int saa7185_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *route)
+static int saa7185_s_routing(struct v4l2_subdev *sd,
+                            u32 input, u32 output, u32 config)
 {
        struct saa7185 *encoder = to_saa7185(sd);
 
-       /* RJ: route->input = 0: input is from SA7111
-        route->input = 1: input is from ZR36060 */
+       /* RJ: input = 0: input is from SA7111
+        input = 1: input is from ZR36060 */
 
-       switch (route->input) {
+       switch (input) {
        case 0:
                /* turn off colorbar */
                saa7185_write(sd, 0x3a, 0x0f);
index 3f523ae..a251377 100644 (file)
@@ -160,14 +160,14 @@ static int saa7191_write_block(struct v4l2_subdev *sd,
 /* Helper functions */
 
 static int saa7191_s_routing(struct v4l2_subdev *sd,
-                               const struct v4l2_routing *route)
+                            u32 input, u32 output, u32 config)
 {
        struct saa7191 *decoder = to_saa7191(sd);
        u8 luma = saa7191_read_reg(sd, SAA7191_REG_LUMA);
        u8 iock = saa7191_read_reg(sd, SAA7191_REG_IOCK);
        int err;
 
-       switch (route->input) {
+       switch (input) {
        case SAA7191_INPUT_COMPOSITE: /* Set Composite input */
                iock &= ~(SAA7191_IOCK_CHRS | SAA7191_IOCK_GPSW1
                          | SAA7191_IOCK_GPSW2);
@@ -190,7 +190,7 @@ static int saa7191_s_routing(struct v4l2_subdev *sd,
        if (err)
                return -EIO;
 
-       decoder->input = route->input;
+       decoder->input = input;
 
        return 0;
 }
@@ -582,9 +582,6 @@ static const struct v4l2_subdev_core_ops saa7191_core_ops = {
        .g_chip_ident = saa7191_g_chip_ident,
        .g_ctrl = saa7191_g_ctrl,
        .s_ctrl = saa7191_s_ctrl,
-};
-
-static const struct v4l2_subdev_tuner_ops saa7191_tuner_ops = {
        .s_std = saa7191_s_std,
 };
 
@@ -597,7 +594,6 @@ static const struct v4l2_subdev_video_ops saa7191_video_ops = {
 static const struct v4l2_subdev_ops saa7191_ops = {
        .core = &saa7191_core_ops,
        .video = &saa7191_video_ops,
-       .tuner = &saa7191_tuner_ops,
 };
 
 static int saa7191_probe(struct i2c_client *client,
index 6d8bfd4..0e890cc 100644 (file)
@@ -764,7 +764,10 @@ static int soc_camera_s_register(struct file *file, void *fh,
 
 static int device_register_link(struct soc_camera_device *icd)
 {
-       int ret = device_register(&icd->dev);
+       int ret = dev_set_name(&icd->dev, "%u-%u", icd->iface, icd->devnum);
+
+       if (!ret)
+               ret = device_register(&icd->dev);
 
        if (ret < 0) {
                /* Prevent calling device_unregister() */
@@ -1060,7 +1063,6 @@ int soc_camera_device_register(struct soc_camera_device *icd)
 
        icd->devnum = num;
        icd->dev.bus = &soc_camera_bus_type;
-       dev_set_name(&icd->dev, "%u-%u", icd->iface, icd->devnum);
 
        icd->dev.release        = dummy_release;
        icd->use_count          = 0;
index fe11580..d381fce 100644 (file)
@@ -192,7 +192,6 @@ static int tda9840_remove(struct i2c_client *client)
        return 0;
 }
 
-
 static const struct i2c_device_id tda9840_id[] = {
        { "tda9840", 0 },
        { }
index d61c56f..d4a9ed4 100644 (file)
@@ -47,12 +47,11 @@ MODULE_PARM_DESC(debug, "Debug level (0-1)");
 
 
 /* makes a connection between the input-pin 'i' and the output-pin 'o' */
-static int tea6415c_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *route)
+static int tea6415c_s_routing(struct v4l2_subdev *sd,
+                             u32 i, u32 o, u32 config)
 {
        struct i2c_client *client = v4l2_get_subdevdata(sd);
        u8 byte = 0;
-       u32 i = route->input;
-       u32 o = route->output;
        int ret;
 
        v4l2_dbg(1, debug, sd, "i=%d, o=%d\n", i, o);
@@ -170,7 +169,6 @@ static int tea6415c_remove(struct i2c_client *client)
        return 0;
 }
 
-
 static const struct i2c_device_id tea6415c_id[] = {
        { "tea6415c", 0 },
        { }
index 3492223..ced6ead 100644 (file)
@@ -48,15 +48,15 @@ MODULE_PARM_DESC(debug, "Debug level (0-1)");
 
 /* make a connection between the input 'i' and the output 'o'
    with gain 'g' (note: i = 6 means 'mute') */
-static int tea6420_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *route)
+static int tea6420_s_routing(struct v4l2_subdev *sd,
+                            u32 i, u32 o, u32 config)
 {
        struct i2c_client *client = v4l2_get_subdevdata(sd);
-       int i = route->input;
-       int o = route->output & 0xf;
-       int g = (route->output >> 4) & 0xf;
+       int g = (o >> 4) & 0xf;
        u8 byte;
        int ret;
 
+       o &= 0xf;
        v4l2_dbg(1, debug, sd, "i=%d, o=%d, g=%d\n", i, o, g);
 
        /* check if the parameters are valid */
@@ -133,13 +133,8 @@ static int tea6420_probe(struct i2c_client *client,
 
        /* set initial values: set "mute"-input to all outputs at gain 0 */
        err = 0;
-       for (i = 1; i < 5; i++) {
-               struct v4l2_routing route;
-
-               route.input = 6;
-               route.output = i;
-               err += tea6420_s_routing(sd, &route);
-       }
+       for (i = 1; i < 5; i++)
+               err += tea6420_s_routing(sd, 6, i, 0);
        if (err) {
                v4l_dbg(1, debug, client, "could not initialize tea6420\n");
                return -ENODEV;
@@ -156,7 +151,6 @@ static int tea6420_remove(struct i2c_client *client)
        return 0;
 }
 
-
 static const struct i2c_device_id tea6420_id[] = {
        { "tea6420", 0 },
        { }
index 72d4103..78c377a 100644 (file)
 #include <linux/i2c.h>
 #include <linux/types.h>
 #include <linux/init.h>
-#include <linux/videodev.h>
+#include <linux/videodev2.h>
 #include <media/tuner.h>
 #include <media/tuner-types.h>
 #include <media/v4l2-device.h>
 #include <media/v4l2-ioctl.h>
-#include <media/v4l2-i2c-drv-legacy.h>
+#include <media/v4l2-i2c-drv.h>
 #include "mt20xx.h"
 #include "tda8290.h"
 #include "tea5761.h"
@@ -101,18 +101,6 @@ static inline struct tuner *to_tuner(struct v4l2_subdev *sd)
        return container_of(sd, struct tuner, sd);
 }
 
-/* standard i2c insmod options */
-static unsigned short normal_i2c[] = {
-#if defined(CONFIG_MEDIA_TUNER_TEA5761) || (defined(CONFIG_MEDIA_TUNER_TEA5761_MODULE) && defined(MODULE))
-       0x10,
-#endif
-       0x42, 0x43, 0x4a, 0x4b,                 /* tda8290 */
-       0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
-       0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
-       I2C_CLIENT_END
-};
-
-I2C_CLIENT_INSMOD;
 
 /* insmod options used at init time => read/only */
 static unsigned int addr;
@@ -785,7 +773,7 @@ static int tuner_s_radio(struct v4l2_subdev *sd)
        return 0;
 }
 
-static int tuner_s_standby(struct v4l2_subdev *sd, u32 standby)
+static int tuner_s_standby(struct v4l2_subdev *sd)
 {
        struct tuner *t = to_tuner(sd);
        struct analog_demod_ops *analog_ops = &t->fe.ops.analog_ops;
@@ -951,11 +939,6 @@ static int tuner_log_status(struct v4l2_subdev *sd)
        return 0;
 }
 
-static int tuner_command(struct i2c_client *client, unsigned cmd, void *arg)
-{
-       return v4l2_subdev_command(i2c_get_clientdata(client), cmd, arg);
-}
-
 static int tuner_suspend(struct i2c_client *c, pm_message_t state)
 {
        struct tuner *t = to_tuner(i2c_get_clientdata(c));
@@ -980,15 +963,28 @@ static int tuner_resume(struct i2c_client *c)
        return 0;
 }
 
+static int tuner_command(struct i2c_client *client, unsigned cmd, void *arg)
+{
+       struct v4l2_subdev *sd = i2c_get_clientdata(client);
+
+       /* TUNER_SET_CONFIG is still called by tuner-simple.c, so we have
+          to handle it here.
+          There must be a better way of doing this... */
+       switch (cmd) {
+       case TUNER_SET_CONFIG:
+               return tuner_s_config(sd, arg);
+       }
+       return -ENOIOCTLCMD;
+}
+
 /* ----------------------------------------------------------------------- */
 
 static const struct v4l2_subdev_core_ops tuner_core_ops = {
        .log_status = tuner_log_status,
-       .s_standby = tuner_s_standby,
+       .s_std = tuner_s_std,
 };
 
 static const struct v4l2_subdev_tuner_ops tuner_tuner_ops = {
-       .s_std = tuner_s_std,
        .s_radio = tuner_s_radio,
        .g_tuner = tuner_g_tuner,
        .s_tuner = tuner_s_tuner,
@@ -996,6 +992,7 @@ static const struct v4l2_subdev_tuner_ops tuner_tuner_ops = {
        .g_frequency = tuner_g_frequency,
        .s_type_addr = tuner_s_type_addr,
        .s_config = tuner_s_config,
+       .s_standby = tuner_s_standby,
 };
 
 static const struct v4l2_subdev_ops tuner_ops = {
@@ -1023,7 +1020,7 @@ static void tuner_lookup(struct i2c_adapter *adap,
                int mode_mask;
 
                if (pos->i2c->adapter != adap ||
-                   pos->i2c->driver->id != I2C_DRIVERID_TUNER)
+                   strcmp(pos->i2c->driver->driver.name, "tuner"))
                        continue;
 
                mode_mask = pos->mode_mask & ~T_STANDBY;
@@ -1167,40 +1164,6 @@ register_client:
        return 0;
 }
 
-static int tuner_legacy_probe(struct i2c_adapter *adap)
-{
-       if (0 != addr) {
-               normal_i2c[0] = addr;
-               normal_i2c[1] = I2C_CLIENT_END;
-       }
-
-       if ((adap->class & I2C_CLASS_TV_ANALOG) == 0)
-               return 0;
-
-       /* HACK: Ignore 0x6b and 0x6f on cx88 boards.
-        * FusionHDTV5 RT Gold has an ir receiver at 0x6b
-        * and an RTC at 0x6f which can get corrupted if probed.
-        */
-       if ((adap->id == I2C_HW_B_CX2388x) ||
-           (adap->id == I2C_HW_B_CX23885)) {
-               unsigned int i = 0;
-
-               while (i < I2C_CLIENT_MAX_OPTS && ignore[i] != I2C_CLIENT_END)
-                       i += 2;
-               if (i + 4 < I2C_CLIENT_MAX_OPTS) {
-                       ignore[i+0] = adap->nr;
-                       ignore[i+1] = 0x6b;
-                       ignore[i+2] = adap->nr;
-                       ignore[i+3] = 0x6f;
-                       ignore[i+4] = I2C_CLIENT_END;
-               } else
-                       printk(KERN_WARNING "tuner: "
-                              "too many options specified "
-                              "in i2c probe ignore list!\n");
-       }
-       return 1;
-}
-
 static int tuner_remove(struct i2c_client *client)
 {
        struct tuner *t = to_tuner(i2c_get_clientdata(client));
@@ -1227,13 +1190,11 @@ MODULE_DEVICE_TABLE(i2c, tuner_id);
 
 static struct v4l2_i2c_driver_data v4l2_i2c_data = {
        .name = "tuner",
-       .driverid = I2C_DRIVERID_TUNER,
-       .command = tuner_command,
        .probe = tuner_probe,
        .remove = tuner_remove,
+       .command = tuner_command,
        .suspend = tuner_suspend,
        .resume = tuner_resume,
-       .legacy_probe = tuner_legacy_probe,
        .id_table = tuner_id,
 };
 
index 226bf35..0869baf 100644 (file)
@@ -35,7 +35,7 @@
 #include <media/tvaudio.h>
 #include <media/v4l2-device.h>
 #include <media/v4l2-chip-ident.h>
-#include <media/v4l2-i2c-drv-legacy.h>
+#include <media/v4l2-i2c-drv.h>
 
 #include <media/i2c-addr.h>
 
@@ -136,20 +136,6 @@ static inline struct CHIPSTATE *to_state(struct v4l2_subdev *sd)
        return container_of(sd, struct CHIPSTATE, sd);
 }
 
-/* ---------------------------------------------------------------------- */
-/* i2c addresses                                                          */
-
-static unsigned short normal_i2c[] = {
-       I2C_ADDR_TDA8425   >> 1,
-       I2C_ADDR_TEA6300   >> 1,
-       I2C_ADDR_TEA6420   >> 1,
-       I2C_ADDR_TDA9840   >> 1,
-       I2C_ADDR_TDA985x_L >> 1,
-       I2C_ADDR_TDA985x_H >> 1,
-       I2C_ADDR_TDA9874   >> 1,
-       I2C_ADDR_PIC16C54  >> 1,
-       I2C_CLIENT_END };
-I2C_CLIENT_INSMOD;
 
 /* ---------------------------------------------------------------------- */
 /* i2c I/O functions                                                      */
@@ -1795,17 +1781,18 @@ static int tvaudio_queryctrl(struct v4l2_subdev *sd, struct v4l2_queryctrl *qc)
        return -EINVAL;
 }
 
-static int tvaudio_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *rt)
+static int tvaudio_s_routing(struct v4l2_subdev *sd,
+                            u32 input, u32 output, u32 config)
 {
        struct CHIPSTATE *chip = to_state(sd);
        struct CHIPDESC *desc = chip->desc;
 
        if (!(desc->flags & CHIP_HAS_INPUTSEL))
                return 0;
-       if (rt->input >= 4)
+       if (input >= 4)
                return -EINVAL;
        /* There are four inputs: tuner, radio, extern and intern. */
-       chip->input = rt->input;
+       chip->input = input;
        if (chip->muted)
                return 0;
        chip_write_masked(chip, desc->inputreg,
@@ -1918,11 +1905,6 @@ static int tvaudio_g_chip_ident(struct v4l2_subdev *sd, struct v4l2_dbg_chip_ide
        return v4l2_chip_ident_i2c_client(client, chip, V4L2_IDENT_TVAUDIO, 0);
 }
 
-static int tvaudio_command(struct i2c_client *client, unsigned cmd, void *arg)
-{
-       return v4l2_subdev_command(i2c_get_clientdata(client), cmd, arg);
-}
-
 /* ----------------------------------------------------------------------- */
 
 static const struct v4l2_subdev_core_ops tvaudio_core_ops = {
@@ -1930,12 +1912,12 @@ static const struct v4l2_subdev_core_ops tvaudio_core_ops = {
        .queryctrl = tvaudio_queryctrl,
        .g_ctrl = tvaudio_g_ctrl,
        .s_ctrl = tvaudio_s_ctrl,
+       .s_std = tvaudio_s_std,
 };
 
 static const struct v4l2_subdev_tuner_ops tvaudio_tuner_ops = {
        .s_radio = tvaudio_s_radio,
        .s_frequency = tvaudio_s_frequency,
-       .s_std = tvaudio_s_std,
        .s_tuner = tvaudio_s_tuner,
        .s_tuner = tvaudio_g_tuner,
 };
@@ -2088,17 +2070,6 @@ static int tvaudio_remove(struct i2c_client *client)
        return 0;
 }
 
-static int tvaudio_legacy_probe(struct i2c_adapter *adap)
-{
-       /* don't attach on saa7146 based cards,
-          because dedicated drivers are used */
-       if ((adap->id == I2C_HW_SAA7146))
-               return 0;
-       if (adap->class & I2C_CLASS_TV_ANALOG)
-               return 1;
-       return 0;
-}
-
 /* This driver supports many devices and the idea is to let the driver
    detect which device is present. So rather than listing all supported
    devices here, we pretend to support a single, fake device type. */
@@ -2110,10 +2081,7 @@ MODULE_DEVICE_TABLE(i2c, tvaudio_id);
 
 static struct v4l2_i2c_driver_data v4l2_i2c_data = {
        .name = "tvaudio",
-       .driverid = I2C_DRIVERID_TVAUDIO,
-       .command = tvaudio_command,
        .probe = tvaudio_probe,
        .remove = tvaudio_remove,
-       .legacy_probe = tvaudio_legacy_probe,
        .id_table = tvaudio_id,
 };
index 3a5a95f..2d38e25 100644 (file)
@@ -10,7 +10,7 @@
 #include <linux/delay.h>
 #include <media/v4l2-device.h>
 #include <media/tvp5150.h>
-#include <media/v4l2-i2c-drv-legacy.h>
+#include <media/v4l2-i2c-drv.h>
 #include <media/v4l2-chip-ident.h>
 
 #include "tvp5150_reg.h"
@@ -19,14 +19,6 @@ MODULE_DESCRIPTION("Texas Instruments TVP5150A video decoder driver");
 MODULE_AUTHOR("Mauro Carvalho Chehab");
 MODULE_LICENSE("GPL");
 
-/* standard i2c insmod options */
-static unsigned short normal_i2c[] = {
-       0xb8 >> 1,
-       0xba >> 1,
-       I2C_CLIENT_END
-};
-
-I2C_CLIENT_INSMOD;
 
 static int debug;
 module_param(debug, int, 0);
@@ -77,7 +69,8 @@ struct tvp5150 {
        struct v4l2_subdev sd;
 
        v4l2_std_id norm;       /* Current set standard */
-       struct v4l2_routing route;
+       u32 input;
+       u32 output;
        int enable;
        int bright;
        int contrast;
@@ -288,10 +281,10 @@ static inline void tvp5150_selmux(struct v4l2_subdev *sd)
        int input = 0;
        unsigned char val;
 
-       if ((decoder->route.output & TVP5150_BLACK_SCREEN) || !decoder->enable)
+       if ((decoder->output & TVP5150_BLACK_SCREEN) || !decoder->enable)
                input = 8;
 
-       switch (decoder->route.input) {
+       switch (decoder->input) {
        case TVP5150_COMPOSITE1:
                input |= 2;
                /* fall through */
@@ -307,8 +300,8 @@ static inline void tvp5150_selmux(struct v4l2_subdev *sd)
 
        v4l2_dbg(1, debug, sd, "Selecting video route: route input=%i, output=%i "
                        "=> tvp5150 input=%i, opmode=%i\n",
-                       decoder->route.input,decoder->route.output,
-                       input, opmode );
+                       decoder->input, decoder->output,
+                       input, opmode);
 
        tvp5150_write(sd, TVP5150_OP_MODE_CTL, opmode);
        tvp5150_write(sd, TVP5150_VD_IN_SRC_SEL_1, input);
@@ -317,7 +310,7 @@ static inline void tvp5150_selmux(struct v4l2_subdev *sd)
         * For Composite and TV, it should be the reverse
         */
        val = tvp5150_read(sd, TVP5150_MISC_CTL);
-       if (decoder->route.input == TVP5150_SVIDEO)
+       if (decoder->input == TVP5150_SVIDEO)
                val = (val & ~0x40) | 0x10;
        else
                val = (val & ~0x10) | 0x40;
@@ -886,11 +879,13 @@ static int tvp5150_s_ctrl(struct v4l2_subdev *sd, struct v4l2_control *ctrl)
                        I2C Command
  ****************************************************************************/
 
-static int tvp5150_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *route)
+static int tvp5150_s_routing(struct v4l2_subdev *sd,
+                            u32 input, u32 output, u32 config)
 {
        struct tvp5150 *decoder = to_tvp5150(sd);
 
-       decoder->route = *route;
+       decoder->input = input;
+       decoder->output = output;
        tvp5150_selmux(sd);
        return 0;
 }
@@ -1026,11 +1021,6 @@ static int tvp5150_queryctrl(struct v4l2_subdev *sd, struct v4l2_queryctrl *qc)
        return -EINVAL;
 }
 
-static int tvp5150_command(struct i2c_client *client, unsigned cmd, void *arg)
-{
-       return v4l2_subdev_command(i2c_get_clientdata(client), cmd, arg);
-}
-
 /* ----------------------------------------------------------------------- */
 
 static const struct v4l2_subdev_core_ops tvp5150_core_ops = {
@@ -1038,6 +1028,7 @@ static const struct v4l2_subdev_core_ops tvp5150_core_ops = {
        .g_ctrl = tvp5150_g_ctrl,
        .s_ctrl = tvp5150_s_ctrl,
        .queryctrl = tvp5150_queryctrl,
+       .s_std = tvp5150_s_std,
        .reset = tvp5150_reset,
        .g_chip_ident = tvp5150_g_chip_ident,
 #ifdef CONFIG_VIDEO_ADV_DEBUG
@@ -1047,7 +1038,6 @@ static const struct v4l2_subdev_core_ops tvp5150_core_ops = {
 };
 
 static const struct v4l2_subdev_tuner_ops tvp5150_tuner_ops = {
-       .s_std = tvp5150_s_std,
        .g_tuner = tvp5150_g_tuner,
 };
 
@@ -1090,7 +1080,7 @@ static int tvp5150_probe(struct i2c_client *c,
                 c->addr << 1, c->adapter->name);
 
        core->norm = V4L2_STD_ALL;      /* Default is autodetect */
-       core->route.input = TVP5150_COMPOSITE1;
+       core->input = TVP5150_COMPOSITE1;
        core->enable = 1;
        core->bright = 128;
        core->contrast = 128;
@@ -1125,9 +1115,7 @@ MODULE_DEVICE_TABLE(i2c, tvp5150_id);
 
 static struct v4l2_i2c_driver_data v4l2_i2c_data = {
        .name = "tvp5150",
-       .command = tvp5150_command,
        .probe = tvp5150_probe,
        .remove = tvp5150_remove,
-       .legacy_class = I2C_CLASS_TV_ANALOG | I2C_CLASS_TV_DIGITAL,
        .id_table = tvp5150_id,
 };
index c0ac651..a07a3fb 100644 (file)
@@ -124,17 +124,18 @@ static int upd64031a_s_frequency(struct v4l2_subdev *sd, struct v4l2_frequency *
 
 /* ------------------------------------------------------------------------ */
 
-static int upd64031a_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *route)
+static int upd64031a_s_routing(struct v4l2_subdev *sd,
+                              u32 input, u32 output, u32 config)
 {
        struct upd64031a_state *state = to_state(sd);
        u8 r00, r05, r08;
 
-       state->gr_mode = (route->input & 3) << 6;
-       state->direct_3dycs_connect = (route->input & 0xc) << 4;
+       state->gr_mode = (input & 3) << 6;
+       state->direct_3dycs_connect = (input & 0xc) << 4;
        state->ext_comp_sync =
-               (route->input & UPD64031A_COMPOSITE_EXTERNAL) << 1;
+               (input & UPD64031A_COMPOSITE_EXTERNAL) << 1;
        state->ext_vert_sync =
-               (route->input & UPD64031A_VERTICAL_EXTERNAL) << 2;
+               (input & UPD64031A_VERTICAL_EXTERNAL) << 2;
        r00 = (state->regs[R00] & ~GR_MODE_MASK) | state->gr_mode;
        r05 = (state->regs[R00] & ~SYNC_CIRCUIT_MASK) |
                state->ext_comp_sync | state->ext_vert_sync;
index 410c915..6eb0e5b 100644 (file)
@@ -102,15 +102,16 @@ static u8 upd64083_read(struct v4l2_subdev *sd, u8 reg)
 
 /* ------------------------------------------------------------------------ */
 
-static int upd64083_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *route)
+static int upd64083_s_routing(struct v4l2_subdev *sd,
+                             u32 input, u32 output, u32 config)
 {
        struct upd64083_state *state = to_state(sd);
        u8 r00, r02;
 
-       if (route->input > 7 || (route->input & 6) == 6)
+       if (input > 7 || (input & 6) == 6)
                return -EINVAL;
-       state->mode = (route->input & 3) << 6;
-       state->ext_y_adc = (route->input & UPD64083_EXT_Y_ADC) << 3;
+       state->mode = (input & 3) << 6;
+       state->ext_y_adc = (input & UPD64083_EXT_Y_ADC) << 3;
        r00 = (state->regs[R00] & ~(3 << 6)) | state->mode;
        r02 = (state->regs[R02] & ~(1 << 5)) | state->ext_y_adc;
        upd64083_write(sd, R00, r00);
index a0feb1c..8bc03b9 100644 (file)
@@ -2597,7 +2597,6 @@ int usbvision_muxsel(struct usb_usbvision *usbvision, int channel)
        /* inputs #1 and #2 are variable for SAA7111 and SAA7113 */
        int mode[4]= {SAA7115_COMPOSITE0, 0, 0, SAA7115_COMPOSITE3};
        int audio[]= {1, 0, 0, 0};
-       struct v4l2_routing route;
        //channel 0 is TV with audiochannel 1 (tuner mono)
        //channel 1 is Composite with audio channel 0 (line in)
        //channel 2 is S-Video with audio channel 0 (line in)
@@ -2630,9 +2629,7 @@ int usbvision_muxsel(struct usb_usbvision *usbvision, int channel)
                        mode[2] = SAA7115_SVIDEO1;
                        break;
        }
-       route.input = mode[channel];
-       route.output = 0;
-       call_all(usbvision, video, s_routing, &route);
+       call_all(usbvision, video, s_routing, mode[channel], 0, 0);
        usbvision_set_audio(usbvision, audio[channel]);
        return 0;
 }
index dd2f8f2..1fe5bef 100644 (file)
@@ -28,7 +28,6 @@
 #include <linux/module.h>
 #include <linux/delay.h>
 #include <linux/slab.h>
-#include <linux/version.h>
 #include <linux/utsname.h>
 #include <linux/init.h>
 #include <asm/uaccess.h>
@@ -247,7 +246,8 @@ int usbvision_i2c_register(struct usb_usbvision *usbvision)
        switch (usbvision_device_data[usbvision->DevModel].Codec) {
        case CODEC_SAA7113:
        case CODEC_SAA7111:
-               v4l2_i2c_new_probed_subdev(&usbvision->i2c_adap, "saa7115",
+               v4l2_i2c_new_probed_subdev(&usbvision->v4l2_dev,
+                               &usbvision->i2c_adap, "saa7115",
                                "saa7115_auto", saa711x_addrs);
                break;
        }
@@ -256,13 +256,15 @@ int usbvision_i2c_register(struct usb_usbvision *usbvision)
                enum v4l2_i2c_tuner_type type;
                struct tuner_setup tun_setup;
 
-               sd = v4l2_i2c_new_probed_subdev(&usbvision->i2c_adap, "tuner",
+               sd = v4l2_i2c_new_probed_subdev(&usbvision->v4l2_dev,
+                               &usbvision->i2c_adap, "tuner",
                                "tuner", v4l2_i2c_tuner_addrs(ADDRS_DEMOD));
                /* depending on whether we found a demod or not, select
                   the tuner type. */
                type = sd ? ADDRS_TV_WITH_DEMOD : ADDRS_TV;
 
-               sd = v4l2_i2c_new_probed_subdev(&usbvision->i2c_adap, "tuner",
+               sd = v4l2_i2c_new_probed_subdev(&usbvision->v4l2_dev,
+                               &usbvision->i2c_adap, "tuner",
                                "tuner", v4l2_i2c_tuner_addrs(type));
 
                if (usbvision->tuner_type != -1) {
index fa62a2f..d7056a5 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * USB USBVISION Video device driver 0.9.9
+ * USB USBVISION Video device driver 0.9.10
  *
  *
  *
@@ -79,7 +79,7 @@
 #define DRIVER_LICENSE "GPL"
 #define USBVISION_DRIVER_VERSION_MAJOR 0
 #define USBVISION_DRIVER_VERSION_MINOR 9
-#define USBVISION_DRIVER_VERSION_PATCHLEVEL 9
+#define USBVISION_DRIVER_VERSION_PATCHLEVEL 10
 #define USBVISION_DRIVER_VERSION KERNEL_VERSION(USBVISION_DRIVER_VERSION_MAJOR,\
 USBVISION_DRIVER_VERSION_MINOR,\
 USBVISION_DRIVER_VERSION_PATCHLEVEL)
@@ -621,7 +621,7 @@ static int vidioc_s_std (struct file *file, void *priv, v4l2_std_id *id)
        usbvision->tvnormId=*id;
 
        mutex_lock(&usbvision->lock);
-       call_all(usbvision, tuner, s_std, usbvision->tvnormId);
+       call_all(usbvision, core, s_std, usbvision->tvnormId);
        mutex_unlock(&usbvision->lock);
        /* propagate the change to the decoder */
        usbvision_muxsel(usbvision, usbvision->ctl_input);
@@ -1522,7 +1522,8 @@ static int __devinit usbvision_register_video(struct usb_usbvision *usbvision)
  * Returns NULL on error, a pointer to usb_usbvision else.
  *
  */
-static struct usb_usbvision *usbvision_alloc(struct usb_device *dev)
+static struct usb_usbvision *usbvision_alloc(struct usb_device *dev,
+                                            struct usb_interface *intf)
 {
        struct usb_usbvision *usbvision;
 
@@ -1531,7 +1532,7 @@ static struct usb_usbvision *usbvision_alloc(struct usb_device *dev)
                return NULL;
 
        usbvision->dev = dev;
-       if (v4l2_device_register(&dev->dev, &usbvision->v4l2_dev))
+       if (v4l2_device_register(&intf->dev, &usbvision->v4l2_dev))
                goto err_free;
 
        mutex_init(&usbvision->lock);   /* available */
@@ -1669,7 +1670,8 @@ static int __devinit usbvision_probe(struct usb_interface *intf,
                return -ENODEV;
        }
 
-       if ((usbvision = usbvision_alloc(dev)) == NULL) {
+       usbvision = usbvision_alloc(dev, intf);
+       if (usbvision == NULL) {
                dev_err(&intf->dev, "%s: couldn't allocate USBVision struct\n", __func__);
                return -ENOMEM;
        }
index c2d9760..2956a76 100644 (file)
@@ -9,7 +9,7 @@ config USB_VIDEO_CLASS
 config USB_VIDEO_CLASS_INPUT_EVDEV
        bool "UVC input events device support"
        default y
-       depends on USB_VIDEO_CLASS && INPUT
+       depends on USB_VIDEO_CLASS=INPUT || INPUT=y
        ---help---
          This option makes USB Video Class devices register an input device
          to report button events.
index b617bf0..02f2a6d 100644 (file)
@@ -575,6 +575,8 @@ static noinline long v4l1_compat_get_input_info(
                        chan->norm = VIDEO_MODE_NTSC;
                if (sid & V4L2_STD_SECAM)
                        chan->norm = VIDEO_MODE_SECAM;
+               if (sid == V4L2_STD_ALL)
+                       chan->norm = VIDEO_MODE_AUTO;
        }
 done:
        return err;
@@ -601,6 +603,9 @@ static noinline long v4l1_compat_set_input(
        case VIDEO_MODE_SECAM:
                sid = V4L2_STD_SECAM;
                break;
+       case VIDEO_MODE_AUTO:
+               sid = V4L2_STD_ALL;
+               break;
        }
        if (0 != sid) {
                err = drv(file, VIDIOC_S_STD, &sid);
@@ -804,9 +809,9 @@ static noinline long v4l1_compat_select_tuner(
 
        t.index = tun->tuner;
 
-       err = drv(file, VIDIOC_S_INPUT, &t);
+       err = drv(file, VIDIOC_S_TUNER, &t);
        if (err < 0)
-               dprintk("VIDIOCSTUNER / VIDIOC_S_INPUT: %ld\n", err);
+               dprintk("VIDIOCSTUNER / VIDIOC_S_TUNER: %ld\n", err);
        return err;
 }
 
index 1da8cb8..f576ef6 100644 (file)
@@ -739,33 +739,8 @@ EXPORT_SYMBOL(v4l2_chip_ident_i2c_client);
 
 /* ----------------------------------------------------------------- */
 
-/* Helper function for I2C legacy drivers */
+/* I2C Helper functions */
 
-int v4l2_i2c_attach(struct i2c_adapter *adapter, int address, struct i2c_driver *driver,
-               const char *name,
-               int (*probe)(struct i2c_client *, const struct i2c_device_id *))
-{
-       struct i2c_client *client;
-       int err;
-
-       client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL);
-       if (!client)
-               return -ENOMEM;
-
-       client->addr = address;
-       client->adapter = adapter;
-       client->driver = driver;
-       strlcpy(client->name, name, sizeof(client->name));
-
-       err = probe(client, NULL);
-       if (err == 0) {
-               i2c_attach_client(client);
-       } else {
-               kfree(client);
-       }
-       return err != -ENOMEM ? 0 : err;
-}
-EXPORT_SYMBOL(v4l2_i2c_attach);
 
 void v4l2_i2c_subdev_init(struct v4l2_subdev *sd, struct i2c_client *client,
                const struct v4l2_subdev_ops *ops)
@@ -785,18 +760,16 @@ EXPORT_SYMBOL_GPL(v4l2_i2c_subdev_init);
 
 
 
-/* Load an i2c sub-device. It assumes that i2c_get_adapdata(adapter)
-   returns the v4l2_device and that i2c_get_clientdata(client)
-   returns the v4l2_subdev. */
-struct v4l2_subdev *v4l2_i2c_new_subdev(struct i2c_adapter *adapter,
+/* Load an i2c sub-device. */
+struct v4l2_subdev *v4l2_i2c_new_subdev(struct v4l2_device *v4l2_dev,
+               struct i2c_adapter *adapter,
                const char *module_name, const char *client_type, u8 addr)
 {
-       struct v4l2_device *dev = i2c_get_adapdata(adapter);
        struct v4l2_subdev *sd = NULL;
        struct i2c_client *client;
        struct i2c_board_info info;
 
-       BUG_ON(!dev);
+       BUG_ON(!v4l2_dev);
 
        if (module_name)
                request_module(module_name);
@@ -823,7 +796,7 @@ struct v4l2_subdev *v4l2_i2c_new_subdev(struct i2c_adapter *adapter,
 
        /* Register with the v4l2_device which increases the module's
           use count as well. */
-       if (v4l2_device_register_subdev(dev, sd))
+       if (v4l2_device_register_subdev(v4l2_dev, sd))
                sd = NULL;
        /* Decrease the module use count to match the first try_module_get. */
        module_put(client->driver->driver.owner);
@@ -837,19 +810,17 @@ error:
 }
 EXPORT_SYMBOL_GPL(v4l2_i2c_new_subdev);
 
-/* Probe and load an i2c sub-device. It assumes that i2c_get_adapdata(adapter)
-   returns the v4l2_device and that i2c_get_clientdata(client)
-   returns the v4l2_subdev. */
-struct v4l2_subdev *v4l2_i2c_new_probed_subdev(struct i2c_adapter *adapter,
+/* Probe and load an i2c sub-device. */
+struct v4l2_subdev *v4l2_i2c_new_probed_subdev(struct v4l2_device *v4l2_dev,
+       struct i2c_adapter *adapter,
        const char *module_name, const char *client_type,
        const unsigned short *addrs)
 {
-       struct v4l2_device *dev = i2c_get_adapdata(adapter);
        struct v4l2_subdev *sd = NULL;
        struct i2c_client *client = NULL;
        struct i2c_board_info info;
 
-       BUG_ON(!dev);
+       BUG_ON(!v4l2_dev);
 
        if (module_name)
                request_module(module_name);
@@ -875,7 +846,7 @@ struct v4l2_subdev *v4l2_i2c_new_probed_subdev(struct i2c_adapter *adapter,
 
        /* Register with the v4l2_device which increases the module's
           use count as well. */
-       if (v4l2_device_register_subdev(dev, sd))
+       if (v4l2_device_register_subdev(v4l2_dev, sd))
                sd = NULL;
        /* Decrease the module use count to match the first try_module_get. */
        module_put(client->driver->driver.owner);
@@ -889,6 +860,17 @@ error:
 }
 EXPORT_SYMBOL_GPL(v4l2_i2c_new_probed_subdev);
 
+struct v4l2_subdev *v4l2_i2c_new_probed_subdev_addr(struct v4l2_device *v4l2_dev,
+               struct i2c_adapter *adapter,
+               const char *module_name, const char *client_type, u8 addr)
+{
+       unsigned short addrs[2] = { addr, I2C_CLIENT_END };
+
+       return v4l2_i2c_new_probed_subdev(v4l2_dev, adapter,
+                       module_name, client_type, addrs);
+}
+EXPORT_SYMBOL_GPL(v4l2_i2c_new_probed_subdev_addr);
+
 /* Return i2c client address of v4l2_subdev. */
 unsigned short v4l2_i2c_subdev_addr(struct v4l2_subdev *sd)
 {
index 91228b3..31eac66 100644 (file)
@@ -229,7 +229,7 @@ static int v4l2_mmap(struct file *filp, struct vm_area_struct *vm)
 static int v4l2_open(struct inode *inode, struct file *filp)
 {
        struct video_device *vdev;
-       int ret;
+       int ret = 0;
 
        /* Check if the video device is available */
        mutex_lock(&videodev_lock);
@@ -243,7 +243,9 @@ static int v4l2_open(struct inode *inode, struct file *filp)
        /* and increase the device refcount */
        video_get(vdev);
        mutex_unlock(&videodev_lock);
-       ret = vdev->fops->open(filp);
+       if (vdev->fops->open)
+               ret = vdev->fops->open(filp);
+
        /* decrease the refcount in case of an error */
        if (ret)
                video_put(vdev);
@@ -254,7 +256,10 @@ static int v4l2_open(struct inode *inode, struct file *filp)
 static int v4l2_release(struct inode *inode, struct file *filp)
 {
        struct video_device *vdev = video_devdata(filp);
-       int ret = vdev->fops->release(filp);
+       int ret = 0;
+
+       if (vdev->fops->release)
+               vdev->fops->release(filp);
 
        /* decrease the refcount unconditionally since the release()
           return value is ignored. */
index f41c6f5..88f10d6 100644 (file)
@@ -275,32 +275,6 @@ static const char *v4l2_ioctls[] = {
 };
 #define V4L2_IOCTLS ARRAY_SIZE(v4l2_ioctls)
 
-static const char *v4l2_int_ioctls[] = {
-       [_IOC_NR(AUDC_SET_RADIO)]              = "AUDC_SET_RADIO",
-
-       [_IOC_NR(TUNER_SET_TYPE_ADDR)]         = "TUNER_SET_TYPE_ADDR",
-       [_IOC_NR(TUNER_SET_STANDBY)]           = "TUNER_SET_STANDBY",
-       [_IOC_NR(TUNER_SET_CONFIG)]            = "TUNER_SET_CONFIG",
-
-       [_IOC_NR(VIDIOC_INT_S_TUNER_MODE)]     = "VIDIOC_INT_S_TUNER_MODE",
-       [_IOC_NR(VIDIOC_INT_RESET)]            = "VIDIOC_INT_RESET",
-       [_IOC_NR(VIDIOC_INT_AUDIO_CLOCK_FREQ)] = "VIDIOC_INT_AUDIO_CLOCK_FREQ",
-       [_IOC_NR(VIDIOC_INT_DECODE_VBI_LINE)]  = "VIDIOC_INT_DECODE_VBI_LINE",
-       [_IOC_NR(VIDIOC_INT_S_VBI_DATA)]       = "VIDIOC_INT_S_VBI_DATA",
-       [_IOC_NR(VIDIOC_INT_G_VBI_DATA)]       = "VIDIOC_INT_G_VBI_DATA",
-       [_IOC_NR(VIDIOC_INT_I2S_CLOCK_FREQ)]   = "VIDIOC_INT_I2S_CLOCK_FREQ",
-       [_IOC_NR(VIDIOC_INT_S_STANDBY)]        = "VIDIOC_INT_S_STANDBY",
-       [_IOC_NR(VIDIOC_INT_S_AUDIO_ROUTING)]  = "VIDIOC_INT_S_AUDIO_ROUTING",
-       [_IOC_NR(VIDIOC_INT_G_AUDIO_ROUTING)]  = "VIDIOC_INT_G_AUDIO_ROUTING",
-       [_IOC_NR(VIDIOC_INT_S_VIDEO_ROUTING)]  = "VIDIOC_INT_S_VIDEO_ROUTING",
-       [_IOC_NR(VIDIOC_INT_G_VIDEO_ROUTING)]  = "VIDIOC_INT_G_VIDEO_ROUTING",
-       [_IOC_NR(VIDIOC_INT_S_CRYSTAL_FREQ)]   = "VIDIOC_INT_S_CRYSTAL_FREQ",
-       [_IOC_NR(VIDIOC_INT_INIT)]             = "VIDIOC_INT_INIT",
-       [_IOC_NR(VIDIOC_INT_G_STD_OUTPUT)]     = "VIDIOC_INT_G_STD_OUTPUT",
-       [_IOC_NR(VIDIOC_INT_S_STD_OUTPUT)]     = "VIDIOC_INT_S_STD_OUTPUT",
-};
-#define V4L2_INT_IOCTLS ARRAY_SIZE(v4l2_int_ioctls)
-
 /* Common ioctl debug function. This function can be used by
    external ioctl messages as well as internal V4L ioctl */
 void v4l_printk_ioctl(unsigned int cmd)
@@ -309,12 +283,8 @@ void v4l_printk_ioctl(unsigned int cmd)
 
        switch (_IOC_TYPE(cmd)) {
        case 'd':
-               if (_IOC_NR(cmd) >= V4L2_INT_IOCTLS) {
-                       type = "v4l2_int";
-                       break;
-               }
-               printk("%s", v4l2_int_ioctls[_IOC_NR(cmd)]);
-               return;
+               type = "v4l2_int";
+               break;
 #ifdef CONFIG_VIDEO_V4L1_COMPAT
        case 'v':
                if (_IOC_NR(cmd) >= V4L1_IOCTLS) {
diff --git a/drivers/media/video/v4l2-subdev.c b/drivers/media/video/v4l2-subdev.c
deleted file mode 100644 (file)
index dc88167..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
-    V4L2 sub-device support.
-
-    Copyright (C) 2008  Hans Verkuil <hverkuil@xs4all.nl>
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#include <linux/types.h>
-#include <linux/ioctl.h>
-#include <linux/i2c.h>
-#include <linux/videodev2.h>
-#include <media/v4l2-subdev.h>
-
-int v4l2_subdev_command(struct v4l2_subdev *sd, unsigned cmd, void *arg)
-{
-       switch (cmd) {
-       case VIDIOC_QUERYCTRL:
-               return v4l2_subdev_call(sd, core, queryctrl, arg);
-       case VIDIOC_G_CTRL:
-               return v4l2_subdev_call(sd, core, g_ctrl, arg);
-       case VIDIOC_S_CTRL:
-               return v4l2_subdev_call(sd, core, s_ctrl, arg);
-       case VIDIOC_G_EXT_CTRLS:
-               return v4l2_subdev_call(sd, core, g_ext_ctrls, arg);
-       case VIDIOC_S_EXT_CTRLS:
-               return v4l2_subdev_call(sd, core, s_ext_ctrls, arg);
-       case VIDIOC_TRY_EXT_CTRLS:
-               return v4l2_subdev_call(sd, core, try_ext_ctrls, arg);
-       case VIDIOC_QUERYMENU:
-               return v4l2_subdev_call(sd, core, querymenu, arg);
-       case VIDIOC_LOG_STATUS:
-               return v4l2_subdev_call(sd, core, log_status);
-       case VIDIOC_DBG_G_CHIP_IDENT:
-               return v4l2_subdev_call(sd, core, g_chip_ident, arg);
-       case VIDIOC_INT_S_STANDBY:
-               return v4l2_subdev_call(sd, core, s_standby, arg ? (*(u32 *)arg) : 0);
-       case VIDIOC_INT_RESET:
-               return v4l2_subdev_call(sd, core, reset, arg ? (*(u32 *)arg) : 0);
-       case VIDIOC_INT_S_GPIO:
-               return v4l2_subdev_call(sd, core, s_gpio, arg ? (*(u32 *)arg) : 0);
-       case VIDIOC_INT_INIT:
-               return v4l2_subdev_call(sd, core, init, arg ? (*(u32 *)arg) : 0);
-#ifdef CONFIG_VIDEO_ADV_DEBUG
-       case VIDIOC_DBG_G_REGISTER:
-               return v4l2_subdev_call(sd, core, g_register, arg);
-       case VIDIOC_DBG_S_REGISTER:
-               return v4l2_subdev_call(sd, core, s_register, arg);
-#endif
-
-       case VIDIOC_INT_S_TUNER_MODE:
-               return v4l2_subdev_call(sd, tuner, s_mode, *(enum v4l2_tuner_type *)arg);
-       case AUDC_SET_RADIO:
-               return v4l2_subdev_call(sd, tuner, s_radio);
-       case VIDIOC_S_TUNER:
-               return v4l2_subdev_call(sd, tuner, s_tuner, arg);
-       case VIDIOC_G_TUNER:
-               return v4l2_subdev_call(sd, tuner, g_tuner, arg);
-       case VIDIOC_S_STD:
-               return v4l2_subdev_call(sd, tuner, s_std, *(v4l2_std_id *)arg);
-       case VIDIOC_S_FREQUENCY:
-               return v4l2_subdev_call(sd, tuner, s_frequency, arg);
-       case VIDIOC_G_FREQUENCY:
-               return v4l2_subdev_call(sd, tuner, g_frequency, arg);
-       case TUNER_SET_TYPE_ADDR:
-               return v4l2_subdev_call(sd, tuner, s_type_addr, arg);
-       case TUNER_SET_CONFIG:
-               return v4l2_subdev_call(sd, tuner, s_config, arg);
-
-       case VIDIOC_INT_AUDIO_CLOCK_FREQ:
-               return v4l2_subdev_call(sd, audio, s_clock_freq, *(u32 *)arg);
-       case VIDIOC_INT_S_AUDIO_ROUTING:
-               return v4l2_subdev_call(sd, audio, s_routing, arg);
-       case VIDIOC_INT_I2S_CLOCK_FREQ:
-               return v4l2_subdev_call(sd, audio, s_i2s_clock_freq, *(u32 *)arg);
-
-       case VIDIOC_INT_S_VIDEO_ROUTING:
-               return v4l2_subdev_call(sd, video, s_routing, arg);
-       case VIDIOC_INT_S_CRYSTAL_FREQ:
-               return v4l2_subdev_call(sd, video, s_crystal_freq, arg);
-       case VIDIOC_INT_DECODE_VBI_LINE:
-               return v4l2_subdev_call(sd, video, decode_vbi_line, arg);
-       case VIDIOC_INT_S_VBI_DATA:
-               return v4l2_subdev_call(sd, video, s_vbi_data, arg);
-       case VIDIOC_INT_G_VBI_DATA:
-               return v4l2_subdev_call(sd, video, g_vbi_data, arg);
-       case VIDIOC_G_SLICED_VBI_CAP:
-               return v4l2_subdev_call(sd, video, g_sliced_vbi_cap, arg);
-       case VIDIOC_ENUM_FMT:
-               return v4l2_subdev_call(sd, video, enum_fmt, arg);
-       case VIDIOC_TRY_FMT:
-               return v4l2_subdev_call(sd, video, try_fmt, arg);
-       case VIDIOC_S_FMT:
-               return v4l2_subdev_call(sd, video, s_fmt, arg);
-       case VIDIOC_G_FMT:
-               return v4l2_subdev_call(sd, video, g_fmt, arg);
-       case VIDIOC_INT_S_STD_OUTPUT:
-               return v4l2_subdev_call(sd, video, s_std_output, *(v4l2_std_id *)arg);
-       case VIDIOC_QUERYSTD:
-               return v4l2_subdev_call(sd, video, querystd, arg);
-       case VIDIOC_INT_G_INPUT_STATUS:
-               return v4l2_subdev_call(sd, video, g_input_status, arg);
-       case VIDIOC_STREAMON:
-               return v4l2_subdev_call(sd, video, s_stream, 1);
-       case VIDIOC_STREAMOFF:
-               return v4l2_subdev_call(sd, video, s_stream, 0);
-       case VIDIOC_S_PARM:
-               return v4l2_subdev_call(sd, video, s_parm, arg);
-       case VIDIOC_G_PARM:
-               return v4l2_subdev_call(sd, video, g_parm, arg);
-
-       default:
-               return v4l2_subdev_call(sd, core, ioctl, cmd, arg);
-       }
-}
-EXPORT_SYMBOL_GPL(v4l2_subdev_command);
index 8da4dd1..43e0998 100644 (file)
@@ -60,8 +60,8 @@
 // #define VINO_DEBUG
 // #define VINO_DEBUG_INT
 
-#define VINO_MODULE_VERSION "0.0.5"
-#define VINO_VERSION_CODE KERNEL_VERSION(0, 0, 5)
+#define VINO_MODULE_VERSION "0.0.6"
+#define VINO_VERSION_CODE KERNEL_VERSION(0, 0, 6)
 
 MODULE_DESCRIPTION("SGI VINO Video4Linux2 driver");
 MODULE_VERSION(VINO_MODULE_VERSION);
@@ -2565,12 +2565,11 @@ static int vino_acquire_input(struct vino_channel_settings *vcs)
                int input;
                int data_norm;
                v4l2_std_id norm;
-               struct v4l2_routing route = { 0, 0 };
 
                input = VINO_INPUT_COMPOSITE;
 
-               route.input = vino_get_saa7191_input(input);
-               ret = decoder_call(video, s_routing, &route);
+               ret = decoder_call(video, s_routing,
+                               vino_get_saa7191_input(input), 0, 0);
                if (ret) {
                        ret = -EINVAL;
                        goto out;
@@ -2589,7 +2588,7 @@ static int vino_acquire_input(struct vino_channel_settings *vcs)
                        }
                        if (data_norm == 3)
                                data_norm = VINO_DATA_NORM_PAL;
-                       ret = decoder_call(tuner, s_std, norm);
+                       ret = decoder_call(core, s_std, norm);
                }
 
                spin_lock_irqsave(&vino_drvdata->input_lock, flags);
@@ -2656,10 +2655,9 @@ static int vino_set_input(struct vino_channel_settings *vcs, int input)
                if (vino_drvdata->decoder_owner == vcs->channel) {
                        int data_norm;
                        v4l2_std_id norm;
-                       struct v4l2_routing route = { 0, 0 };
 
-                       route.input = vino_get_saa7191_input(input);
-                       ret = decoder_call(video, s_routing, &route);
+                       ret = decoder_call(video, s_routing,
+                                       vino_get_saa7191_input(input), 0, 0);
                        if (ret) {
                                vino_drvdata->decoder_owner = VINO_NO_CHANNEL;
                                ret = -EINVAL;
@@ -2679,7 +2677,7 @@ static int vino_set_input(struct vino_channel_settings *vcs, int input)
                                }
                                if (data_norm == 3)
                                        data_norm = VINO_DATA_NORM_PAL;
-                               ret = decoder_call(tuner, s_std, norm);
+                               ret = decoder_call(core, s_std, norm);
                        }
 
                        spin_lock_irqsave(&vino_drvdata->input_lock, flags);
@@ -2813,7 +2811,7 @@ static int vino_set_data_norm(struct vino_channel_settings *vcs,
                 * as it may take a while... */
 
                norm = vino_data_norms[data_norm].std;
-               err = decoder_call(tuner, s_std, norm);
+               err = decoder_call(core, s_std, norm);
 
                spin_lock_irqsave(&vino_drvdata->input_lock, *flags);
 
@@ -4266,7 +4264,6 @@ static int vino_init_channel_settings(struct vino_channel_settings *vcs,
 
 static int __init vino_module_init(void)
 {
-       unsigned short addr[] = { 0, I2C_CLIENT_END };
        int ret;
 
        printk(KERN_INFO "SGI VINO driver version %s\n",
@@ -4336,12 +4333,12 @@ static int __init vino_module_init(void)
        }
        vino_init_stage++;
 
-       addr[0] = 0x45;
-       vino_drvdata->decoder = v4l2_i2c_new_probed_subdev(&vino_i2c_adapter,
-                       "saa7191", "saa7191", addr);
-       addr[0] = 0x2b;
-       vino_drvdata->camera = v4l2_i2c_new_probed_subdev(&vino_i2c_adapter,
-                       "indycam", "indycam", addr);
+       vino_drvdata->decoder =
+               v4l2_i2c_new_probed_subdev_addr(&vino_drvdata->v4l2_dev,
+                       &vino_i2c_adapter, "saa7191", "saa7191", 0x45);
+       vino_drvdata->camera =
+               v4l2_i2c_new_probed_subdev_addr(&vino_drvdata->v4l2_dev,
+                       &vino_i2c_adapter, "indycam", "indycam", 0x2b);
 
        dprintk("init complete!\n");
 
index 42e23a4..38e53b3 100644 (file)
@@ -134,11 +134,11 @@ static int vp27smpx_log_status(struct v4l2_subdev *sd)
 static const struct v4l2_subdev_core_ops vp27smpx_core_ops = {
        .log_status = vp27smpx_log_status,
        .g_chip_ident = vp27smpx_g_chip_ident,
+       .s_std = vp27smpx_s_std,
 };
 
 static const struct v4l2_subdev_tuner_ops vp27smpx_tuner_ops = {
        .s_radio = vp27smpx_s_radio,
-       .s_std = vp27smpx_s_std,
        .s_tuner = vp27smpx_s_tuner,
        .g_tuner = vp27smpx_g_tuner,
 };
index 2fa7e8b..97e0ce2 100644 (file)
@@ -376,33 +376,34 @@ static int vpx3220_s_std(struct v4l2_subdev *sd, v4l2_std_id std)
        return 0;
 }
 
-static int vpx3220_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *route)
+static int vpx3220_s_routing(struct v4l2_subdev *sd,
+                            u32 input, u32 output, u32 config)
 {
        int data;
 
-       /* RJ:   route->input = 0: ST8 (PCTV) input
-                route->input = 1: COMPOSITE  input
-                route->input = 2: SVHS       input  */
+       /* RJ:   input = 0: ST8 (PCTV) input
+                input = 1: COMPOSITE  input
+                input = 2: SVHS       input  */
 
-       const int input[3][2] = {
+       const int input_vals[3][2] = {
                {0x0c, 0},
                {0x0d, 0},
                {0x0e, 1}
        };
 
-       if (route->input < 0 || route->input > 2)
+       if (input < 0 || input > 2)
                return -EINVAL;
 
-       v4l2_dbg(1, debug, sd, "input switched to %s\n", inputs[route->input]);
+       v4l2_dbg(1, debug, sd, "input switched to %s\n", inputs[input]);
 
-       vpx3220_write(sd, 0x33, input[route->input][0]);
+       vpx3220_write(sd, 0x33, input_vals[input][0]);
 
        data = vpx3220_fp_read(sd, 0xf2) & ~(0x0020);
        if (data < 0)
                return data;
        /* 0x0010 is required to latch the setting */
        vpx3220_fp_write(sd, 0xf2,
-                       data | (input[route->input][1] << 5) | 0x0010);
+                       data | (input_vals[input][1] << 5) | 0x0010);
 
        udelay(10);
        return 0;
@@ -516,9 +517,6 @@ static const struct v4l2_subdev_core_ops vpx3220_core_ops = {
        .g_ctrl = vpx3220_g_ctrl,
        .s_ctrl = vpx3220_s_ctrl,
        .queryctrl = vpx3220_queryctrl,
-};
-
-static const struct v4l2_subdev_tuner_ops vpx3220_tuner_ops = {
        .s_std = vpx3220_s_std,
 };
 
@@ -531,7 +529,6 @@ static const struct v4l2_subdev_video_ops vpx3220_video_ops = {
 
 static const struct v4l2_subdev_ops vpx3220_ops = {
        .core = &vpx3220_core_ops,
-       .tuner = &vpx3220_tuner_ops,
        .video = &vpx3220_video_ops,
 };
 
index 3b08bc4..f59b2bd 100644 (file)
@@ -3440,7 +3440,7 @@ w9968cf_usb_probe(struct usb_interface* intf, const struct usb_device_id* id)
        if (!cam)
                return -ENOMEM;
 
-       err = v4l2_device_register(&udev->dev, &cam->v4l2_dev);
+       err = v4l2_device_register(&intf->dev, &cam->v4l2_dev);
        if (err)
                goto fail0;
 
@@ -3523,7 +3523,8 @@ w9968cf_usb_probe(struct usb_interface* intf, const struct usb_device_id* id)
        w9968cf_turn_on_led(cam);
 
        w9968cf_i2c_init(cam);
-       cam->sensor_sd = v4l2_i2c_new_probed_subdev(&cam->i2c_adapter,
+       cam->sensor_sd = v4l2_i2c_new_probed_subdev(&cam->v4l2_dev,
+                       &cam->i2c_adapter,
                        "ovcamchip", "ovcamchip", addrs);
 
        usb_set_intfdata(intf, cam);
index fdfc6a4..73ad864 100644 (file)
@@ -134,7 +134,7 @@ static const struct w9968cf_format w9968cf_formatlist[] = {
 
 #define W9968CF_MODULE_NAME     "V4L driver for W996[87]CF JPEG USB " \
                                "Dual Mode Camera Chip"
-#define W9968CF_MODULE_VERSION  "1:1.33-basic"
+#define W9968CF_MODULE_VERSION  "1:1.34-basic"
 #define W9968CF_MODULE_AUTHOR   "(C) 2002-2004 Luca Risolia"
 #define W9968CF_AUTHOR_EMAIL    "<luca.risolia@studio.unibo.it>"
 #define W9968CF_MODULE_LICENSE  "GPL"
index eddf11a..f1f261a 100644 (file)
@@ -79,7 +79,8 @@ static int wm8775_write(struct v4l2_subdev *sd, int reg, u16 val)
        return -1;
 }
 
-static int wm8775_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *route)
+static int wm8775_s_routing(struct v4l2_subdev *sd,
+                           u32 input, u32 output, u32 config)
 {
        struct wm8775_state *state = to_state(sd);
 
@@ -88,11 +89,11 @@ static int wm8775_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *r
           16 combinations.
           If only one input is active (the normal case) then the
           input values 1, 2, 4 or 8 should be used. */
-       if (route->input > 15) {
-               v4l2_err(sd, "Invalid input %d.\n", route->input);
+       if (input > 15) {
+               v4l2_err(sd, "Invalid input %d.\n", input);
                return -EINVAL;
        }
-       state->input = route->input;
+       state->input = input;
        if (state->muted)
                return 0;
        wm8775_write(sd, R21, 0x0c0);
index afecf32..d439c76 100644 (file)
@@ -143,8 +143,8 @@ Private IOCTL to set up for displaying MJPEG
 #ifdef __KERNEL__
 
 #define MAJOR_VERSION 0                /* driver major version */
-#define MINOR_VERSION 9                /* driver minor version */
-#define RELEASE_VERSION 5      /* release version */
+#define MINOR_VERSION 10       /* driver minor version */
+#define RELEASE_VERSION 0      /* release version */
 
 #define ZORAN_NAME    "ZORAN"  /* name of the device */
 
index f91bba4..ea6c577 100644 (file)
@@ -1087,10 +1087,8 @@ zr36057_init (struct zoran *zr)
                detect_guest_activity(zr);
        test_interrupts(zr);
        if (!pass_through) {
-               struct v4l2_routing route = { 2, 0 };
-
                decoder_call(zr, video, s_stream, 0);
-               encoder_call(zr, video, s_routing, &route);
+               encoder_call(zr, video, s_routing, 2, 0, 0);
        }
 
        zr->zoran_proc = NULL;
@@ -1360,11 +1358,13 @@ static int __devinit zoran_probe(struct pci_dev *pdev,
                goto zr_free_irq;
        }
 
-       zr->decoder = v4l2_i2c_new_probed_subdev(&zr->i2c_adapter,
-               zr->card.mod_decoder, zr->card.i2c_decoder, zr->card.addrs_decoder);
+       zr->decoder = v4l2_i2c_new_probed_subdev(&zr->v4l2_dev,
+               &zr->i2c_adapter, zr->card.mod_decoder, zr->card.i2c_decoder,
+               zr->card.addrs_decoder);
 
        if (zr->card.mod_encoder)
-               zr->encoder = v4l2_i2c_new_probed_subdev(&zr->i2c_adapter,
+               zr->encoder = v4l2_i2c_new_probed_subdev(&zr->v4l2_dev,
+                       &zr->i2c_adapter,
                        zr->card.mod_encoder, zr->card.i2c_encoder,
                        zr->card.addrs_encoder);
 
index e0223de..f6c2fb4 100644 (file)
@@ -971,7 +971,6 @@ zr36057_enable_jpg (struct zoran          *zr,
        struct vfe_settings cap;
        int field_size =
            zr->jpg_buffers.buffer_size / zr->jpg_settings.field_per_buff;
-       struct v4l2_routing route = { 0, 0 };
 
        zr->codec_mode = mode;
 
@@ -994,8 +993,7 @@ zr36057_enable_jpg (struct zoran          *zr,
                 */
                set_videobus_dir(zr, 0);
                decoder_call(zr, video, s_stream, 1);
-               route.input = 0;
-               encoder_call(zr, video, s_routing, &route);
+               encoder_call(zr, video, s_routing, 0, 0, 0);
 
                /* Take the JPEG codec and the VFE out of sleep */
                jpeg_codec_sleep(zr, 0);
@@ -1043,8 +1041,7 @@ zr36057_enable_jpg (struct zoran          *zr,
                 */
                decoder_call(zr, video, s_stream, 0);
                set_videobus_dir(zr, 1);
-               route.input = 1;
-               encoder_call(zr, video, s_routing, &route);
+               encoder_call(zr, video, s_routing, 1, 0, 0);
 
                /* Take the JPEG codec and the VFE out of sleep */
                jpeg_codec_sleep(zr, 0);
@@ -1089,8 +1086,7 @@ zr36057_enable_jpg (struct zoran          *zr,
                zr36057_adjust_vfe(zr, mode);
 
                decoder_call(zr, video, s_stream, 1);
-               route.input = 0;
-               encoder_call(zr, video, s_routing, &route);
+               encoder_call(zr, video, s_routing, 0, 0, 0);
 
                dprintk(2, KERN_INFO "%s: enable_jpg(IDLE)\n", ZR_DEVNAME(zr));
                break;
@@ -1571,8 +1567,6 @@ zoran_set_pci_master (struct zoran *zr,
 void
 zoran_init_hardware (struct zoran *zr)
 {
-       struct v4l2_routing route = { 0, 0 };
-
        /* Enable bus-mastering */
        zoran_set_pci_master(zr, 1);
 
@@ -1581,16 +1575,14 @@ zoran_init_hardware (struct zoran *zr)
                zr->card.init(zr);
        }
 
-       route.input = zr->card.input[zr->input].muxsel;
-
        decoder_call(zr, core, init, 0);
-       decoder_call(zr, tuner, s_std, zr->norm);
-       decoder_call(zr, video, s_routing, &route);
+       decoder_call(zr, core, s_std, zr->norm);
+       decoder_call(zr, video, s_routing,
+               zr->card.input[zr->input].muxsel, 0, 0);
 
        encoder_call(zr, core, init, 0);
        encoder_call(zr, video, s_std_output, zr->norm);
-       route.input = 0;
-       encoder_call(zr, video, s_routing, &route);
+       encoder_call(zr, video, s_routing, 0, 0, 0);
 
        /* toggle JPEG codec sleep to sync PLL */
        jpeg_codec_sleep(zr, 1);
index f16e57c..092333b 100644 (file)
@@ -1018,10 +1018,8 @@ zoran_close(struct file  *file)
                zoran_set_pci_master(zr, 0);
 
                if (!pass_through) {    /* Switch to color bar */
-                       struct v4l2_routing route = { 2, 0 };
-
                        decoder_call(zr, video, s_stream, 0);
-                       encoder_call(zr, video, s_routing, &route);
+                       encoder_call(zr, video, s_routing, 2, 0, 0);
                }
        }
 
@@ -1449,7 +1447,7 @@ zoran_set_norm (struct zoran *zr,
                v4l2_std_id std = 0;
 
                decoder_call(zr, video, querystd, &std);
-               decoder_call(zr, tuner, s_std, std);
+               decoder_call(zr, core, s_std, std);
 
                /* let changes come into effect */
                ssleep(2);
@@ -1461,7 +1459,7 @@ zoran_set_norm (struct zoran *zr,
                                "%s: %s - no norm detected\n",
                                ZR_DEVNAME(zr), __func__);
                        /* reset norm */
-                       decoder_call(zr, tuner, s_std, zr->norm);
+                       decoder_call(zr, core, s_std, zr->norm);
                        return -EIO;
                }
 
@@ -1480,7 +1478,7 @@ zoran_set_norm (struct zoran *zr,
        if (on)
                zr36057_overlay(zr, 0);
 
-       decoder_call(zr, tuner, s_std, norm);
+       decoder_call(zr, core, s_std, norm);
        encoder_call(zr, video, s_std_output, norm);
 
        if (on)
@@ -1496,8 +1494,6 @@ static int
 zoran_set_input (struct zoran *zr,
                 int           input)
 {
-       struct v4l2_routing route = { 0, 0 };
-
        if (input == zr->input) {
                return 0;
        }
@@ -1519,10 +1515,10 @@ zoran_set_input (struct zoran *zr,
                return -EINVAL;
        }
 
-       route.input = zr->card.input[input].muxsel;
        zr->input = input;
 
-       decoder_call(zr, video, s_routing, &route);
+       decoder_call(zr, video, s_routing,
+                       zr->card.input[input].muxsel, 0, 0);
 
        return 0;
 }
@@ -1748,7 +1744,6 @@ jpgreqbuf_unlock_and_return:
        case BUZIOC_G_STATUS:
        {
                struct zoran_status *bstat = arg;
-               struct v4l2_routing route = { 0, 0 };
                int status = 0, res = 0;
                v4l2_std_id norm;
 
@@ -1762,8 +1757,6 @@ jpgreqbuf_unlock_and_return:
                        return -EINVAL;
                }
 
-               route.input = zr->card.input[bstat->input].muxsel;
-
                mutex_lock(&zr->resource_lock);
 
                if (zr->codec_mode != BUZ_MODE_IDLE) {
@@ -1775,7 +1768,8 @@ jpgreqbuf_unlock_and_return:
                        goto gstat_unlock_and_return;
                }
 
-               decoder_call(zr, video, s_routing, &route);
+               decoder_call(zr, video, s_routing,
+                               zr->card.input[bstat->input].muxsel, 0, 0);
 
                /* sleep 1 second */
                ssleep(1);
@@ -1785,8 +1779,8 @@ jpgreqbuf_unlock_and_return:
                decoder_call(zr, video, g_input_status, &status);
 
                /* restore previous input and norm */
-               route.input = zr->card.input[zr->input].muxsel;
-               decoder_call(zr, video, s_routing, &route);
+               decoder_call(zr, video, s_routing,
+                               zr->card.input[zr->input].muxsel, 0, 0);
 gstat_unlock_and_return:
                mutex_unlock(&zr->resource_lock);
 
index 221409f..ac169c9 100644 (file)
@@ -26,7 +26,6 @@
  */
 
 
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/usb.h>
index 16899ee..9e7baec 100644 (file)
@@ -2234,7 +2234,7 @@ config BNX2
        tristate "Broadcom NetXtremeII support"
        depends on PCI
        select CRC32
-       select ZLIB_INFLATE
+       select FW_LOADER
        help
          This driver supports Broadcom NetXtremeII gigabit Ethernet cards.
 
index 5c84541..17b2750 100644 (file)
@@ -703,7 +703,7 @@ static int b44_alloc_rx_skb(struct b44 *bp, int src_idx, u32 dest_idx_unmasked)
 
        if (bp->flags & B44_FLAG_RX_RING_HACK)
                b44_sync_dma_desc_for_device(bp->sdev, bp->rx_ring_dma,
-                                           dest_idx * sizeof(dp),
+                                           dest_idx * sizeof(*dp),
                                            DMA_BIDIRECTIONAL);
 
        return RX_PKT_BUF_SZ;
@@ -731,7 +731,7 @@ static void b44_recycle_rx(struct b44 *bp, int src_idx, u32 dest_idx_unmasked)
 
        if (bp->flags & B44_FLAG_RX_RING_HACK)
                b44_sync_dma_desc_for_cpu(bp->sdev, bp->rx_ring_dma,
-                                        src_idx * sizeof(src_desc),
+                                        src_idx * sizeof(*src_desc),
                                         DMA_BIDIRECTIONAL);
 
        ctrl = src_desc->ctrl;
@@ -747,10 +747,10 @@ static void b44_recycle_rx(struct b44 *bp, int src_idx, u32 dest_idx_unmasked)
 
        if (bp->flags & B44_FLAG_RX_RING_HACK)
                b44_sync_dma_desc_for_device(bp->sdev, bp->rx_ring_dma,
-                                            dest_idx * sizeof(dest_desc),
+                                            dest_idx * sizeof(*dest_desc),
                                             DMA_BIDIRECTIONAL);
 
-       ssb_dma_sync_single_for_device(bp->sdev, le32_to_cpu(src_desc->addr),
+       ssb_dma_sync_single_for_device(bp->sdev, dest_map->mapping,
                                       RX_PKT_BUF_SZ,
                                       DMA_FROM_DEVICE);
 }
index ad446db..17cbc8c 100644 (file)
 #include <linux/crc32.h>
 #include <linux/prefetch.h>
 #include <linux/cache.h>
-#include <linux/zlib.h>
+#include <linux/firmware.h>
 #include <linux/log2.h>
 
 #include "bnx2.h"
 #include "bnx2_fw.h"
-#include "bnx2_fw2.h"
-
-#define FW_BUF_SIZE            0x10000
 
 #define DRV_MODULE_NAME                "bnx2"
 #define PFX DRV_MODULE_NAME    ": "
-#define DRV_MODULE_VERSION     "1.9.3"
-#define DRV_MODULE_RELDATE     "March 17, 2009"
+#define DRV_MODULE_VERSION     "2.0.0"
+#define DRV_MODULE_RELDATE     "April 2, 2009"
+#define FW_MIPS_FILE_06                "bnx2/bnx2-mips-06-4.6.16.fw"
+#define FW_RV2P_FILE_06                "bnx2/bnx2-rv2p-06-4.6.16.fw"
+#define FW_MIPS_FILE_09                "bnx2/bnx2-mips-09-4.6.17.fw"
+#define FW_RV2P_FILE_09                "bnx2/bnx2-rv2p-09-4.6.15.fw"
 
 #define RUN_AT(x) (jiffies + (x))
 
@@ -72,6 +73,10 @@ MODULE_AUTHOR("Michael Chan <mchan@broadcom.com>");
 MODULE_DESCRIPTION("Broadcom NetXtreme II BCM5706/5708/5709/5716 Driver");
 MODULE_LICENSE("GPL");
 MODULE_VERSION(DRV_MODULE_VERSION);
+MODULE_FIRMWARE(FW_MIPS_FILE_06);
+MODULE_FIRMWARE(FW_RV2P_FILE_06);
+MODULE_FIRMWARE(FW_MIPS_FILE_09);
+MODULE_FIRMWARE(FW_RV2P_FILE_09);
 
 static int disable_msi = 0;
 
@@ -3391,33 +3396,143 @@ bnx2_set_rx_mode(struct net_device *dev)
        spin_unlock_bh(&bp->phy_lock);
 }
 
-static void
-load_rv2p_fw(struct bnx2 *bp, __le32 *rv2p_code, u32 rv2p_code_len,
-       u32 rv2p_proc)
+static int __devinit
+check_fw_section(const struct firmware *fw,
+                const struct bnx2_fw_file_section *section,
+                u32 alignment, bool non_empty)
+{
+       u32 offset = be32_to_cpu(section->offset);
+       u32 len = be32_to_cpu(section->len);
+
+       if ((offset == 0 && len != 0) || offset >= fw->size || offset & 3)
+               return -EINVAL;
+       if ((non_empty && len == 0) || len > fw->size - offset ||
+           len & (alignment - 1))
+               return -EINVAL;
+       return 0;
+}
+
+static int __devinit
+check_mips_fw_entry(const struct firmware *fw,
+                   const struct bnx2_mips_fw_file_entry *entry)
+{
+       if (check_fw_section(fw, &entry->text, 4, true) ||
+           check_fw_section(fw, &entry->data, 4, false) ||
+           check_fw_section(fw, &entry->rodata, 4, false))
+               return -EINVAL;
+       return 0;
+}
+
+static int __devinit
+bnx2_request_firmware(struct bnx2 *bp)
 {
+       const char *mips_fw_file, *rv2p_fw_file;
+       const struct bnx2_mips_fw_file *mips;
+       const struct bnx2_rv2p_fw_file *rv2p;
+       int rc;
+
+       if (CHIP_NUM(bp) == CHIP_NUM_5709) {
+               mips_fw_file = FW_MIPS_FILE_09;
+               rv2p_fw_file = FW_RV2P_FILE_09;
+       } else {
+               mips_fw_file = FW_MIPS_FILE_06;
+               rv2p_fw_file = FW_RV2P_FILE_06;
+       }
+
+       rc = request_firmware(&bp->mips_firmware, mips_fw_file, &bp->pdev->dev);
+       if (rc) {
+               printk(KERN_ERR PFX "Can't load firmware file \"%s\"\n",
+                      mips_fw_file);
+               return rc;
+       }
+
+       rc = request_firmware(&bp->rv2p_firmware, rv2p_fw_file, &bp->pdev->dev);
+       if (rc) {
+               printk(KERN_ERR PFX "Can't load firmware file \"%s\"\n",
+                      rv2p_fw_file);
+               return rc;
+       }
+       mips = (const struct bnx2_mips_fw_file *) bp->mips_firmware->data;
+       rv2p = (const struct bnx2_rv2p_fw_file *) bp->rv2p_firmware->data;
+       if (bp->mips_firmware->size < sizeof(*mips) ||
+           check_mips_fw_entry(bp->mips_firmware, &mips->com) ||
+           check_mips_fw_entry(bp->mips_firmware, &mips->cp) ||
+           check_mips_fw_entry(bp->mips_firmware, &mips->rxp) ||
+           check_mips_fw_entry(bp->mips_firmware, &mips->tpat) ||
+           check_mips_fw_entry(bp->mips_firmware, &mips->txp)) {
+               printk(KERN_ERR PFX "Firmware file \"%s\" is invalid\n",
+                      mips_fw_file);
+               return -EINVAL;
+       }
+       if (bp->rv2p_firmware->size < sizeof(*rv2p) ||
+           check_fw_section(bp->rv2p_firmware, &rv2p->proc1.rv2p, 8, true) ||
+           check_fw_section(bp->rv2p_firmware, &rv2p->proc2.rv2p, 8, true)) {
+               printk(KERN_ERR PFX "Firmware file \"%s\" is invalid\n",
+                      rv2p_fw_file);
+               return -EINVAL;
+       }
+
+       return 0;
+}
+
+static u32
+rv2p_fw_fixup(u32 rv2p_proc, int idx, u32 loc, u32 rv2p_code)
+{
+       switch (idx) {
+       case RV2P_P1_FIXUP_PAGE_SIZE_IDX:
+               rv2p_code &= ~RV2P_BD_PAGE_SIZE_MSK;
+               rv2p_code |= RV2P_BD_PAGE_SIZE;
+               break;
+       }
+       return rv2p_code;
+}
+
+static int
+load_rv2p_fw(struct bnx2 *bp, u32 rv2p_proc,
+            const struct bnx2_rv2p_fw_file_entry *fw_entry)
+{
+       u32 rv2p_code_len, file_offset;
+       __be32 *rv2p_code;
        int i;
-       u32 val;
+       u32 val, cmd, addr;
+
+       rv2p_code_len = be32_to_cpu(fw_entry->rv2p.len);
+       file_offset = be32_to_cpu(fw_entry->rv2p.offset);
+
+       rv2p_code = (__be32 *)(bp->rv2p_firmware->data + file_offset);
 
-       if (rv2p_proc == RV2P_PROC2 && CHIP_NUM(bp) == CHIP_NUM_5709) {
-               val = le32_to_cpu(rv2p_code[XI_RV2P_PROC2_MAX_BD_PAGE_LOC]);
-               val &= ~XI_RV2P_PROC2_BD_PAGE_SIZE_MSK;
-               val |= XI_RV2P_PROC2_BD_PAGE_SIZE;
-               rv2p_code[XI_RV2P_PROC2_MAX_BD_PAGE_LOC] = cpu_to_le32(val);
+       if (rv2p_proc == RV2P_PROC1) {
+               cmd = BNX2_RV2P_PROC1_ADDR_CMD_RDWR;
+               addr = BNX2_RV2P_PROC1_ADDR_CMD;
+       } else {
+               cmd = BNX2_RV2P_PROC2_ADDR_CMD_RDWR;
+               addr = BNX2_RV2P_PROC2_ADDR_CMD;
        }
 
        for (i = 0; i < rv2p_code_len; i += 8) {
-               REG_WR(bp, BNX2_RV2P_INSTR_HIGH, le32_to_cpu(*rv2p_code));
+               REG_WR(bp, BNX2_RV2P_INSTR_HIGH, be32_to_cpu(*rv2p_code));
                rv2p_code++;
-               REG_WR(bp, BNX2_RV2P_INSTR_LOW, le32_to_cpu(*rv2p_code));
+               REG_WR(bp, BNX2_RV2P_INSTR_LOW, be32_to_cpu(*rv2p_code));
                rv2p_code++;
 
-               if (rv2p_proc == RV2P_PROC1) {
-                       val = (i / 8) | BNX2_RV2P_PROC1_ADDR_CMD_RDWR;
-                       REG_WR(bp, BNX2_RV2P_PROC1_ADDR_CMD, val);
-               }
-               else {
-                       val = (i / 8) | BNX2_RV2P_PROC2_ADDR_CMD_RDWR;
-                       REG_WR(bp, BNX2_RV2P_PROC2_ADDR_CMD, val);
+               val = (i / 8) | cmd;
+               REG_WR(bp, addr, val);
+       }
+
+       rv2p_code = (__be32 *)(bp->rv2p_firmware->data + file_offset);
+       for (i = 0; i < 8; i++) {
+               u32 loc, code;
+
+               loc = be32_to_cpu(fw_entry->fixup[i]);
+               if (loc && ((loc * 4) < rv2p_code_len)) {
+                       code = be32_to_cpu(*(rv2p_code + loc - 1));
+                       REG_WR(bp, BNX2_RV2P_INSTR_HIGH, code);
+                       code = be32_to_cpu(*(rv2p_code + loc));
+                       code = rv2p_fw_fixup(rv2p_proc, i, loc, code);
+                       REG_WR(bp, BNX2_RV2P_INSTR_LOW, code);
+
+                       val = (loc / 2) | cmd;
+                       REG_WR(bp, addr, val);
                }
        }
 
@@ -3428,14 +3543,18 @@ load_rv2p_fw(struct bnx2 *bp, __le32 *rv2p_code, u32 rv2p_code_len,
        else {
                REG_WR(bp, BNX2_RV2P_COMMAND, BNX2_RV2P_COMMAND_PROC2_RESET);
        }
+
+       return 0;
 }
 
 static int
-load_cpu_fw(struct bnx2 *bp, const struct cpu_reg *cpu_reg, struct fw_info *fw)
+load_cpu_fw(struct bnx2 *bp, const struct cpu_reg *cpu_reg,
+           const struct bnx2_mips_fw_file_entry *fw_entry)
 {
+       u32 addr, len, file_offset;
+       __be32 *data;
        u32 offset;
        u32 val;
-       int rc;
 
        /* Halt the CPU. */
        val = bnx2_reg_rd_ind(bp, cpu_reg->mode);
@@ -3444,64 +3563,52 @@ load_cpu_fw(struct bnx2 *bp, const struct cpu_reg *cpu_reg, struct fw_info *fw)
        bnx2_reg_wr_ind(bp, cpu_reg->state, cpu_reg->state_value_clear);
 
        /* Load the Text area. */
-       offset = cpu_reg->spad_base + (fw->text_addr - cpu_reg->mips_view_base);
-       if (fw->gz_text) {
-               int j;
-
-               rc = zlib_inflate_blob(fw->text, FW_BUF_SIZE, fw->gz_text,
-                                      fw->gz_text_len);
-               if (rc < 0)
-                       return rc;
+       addr = be32_to_cpu(fw_entry->text.addr);
+       len = be32_to_cpu(fw_entry->text.len);
+       file_offset = be32_to_cpu(fw_entry->text.offset);
+       data = (__be32 *)(bp->mips_firmware->data + file_offset);
 
-               for (j = 0; j < (fw->text_len / 4); j++, offset += 4) {
-                       bnx2_reg_wr_ind(bp, offset, le32_to_cpu(fw->text[j]));
-               }
-       }
-
-       /* Load the Data area. */
-       offset = cpu_reg->spad_base + (fw->data_addr - cpu_reg->mips_view_base);
-       if (fw->data) {
+       offset = cpu_reg->spad_base + (addr - cpu_reg->mips_view_base);
+       if (len) {
                int j;
 
-               for (j = 0; j < (fw->data_len / 4); j++, offset += 4) {
-                       bnx2_reg_wr_ind(bp, offset, fw->data[j]);
-               }
+               for (j = 0; j < (len / 4); j++, offset += 4)
+                       bnx2_reg_wr_ind(bp, offset, be32_to_cpu(data[j]));
        }
 
-       /* Load the SBSS area. */
-       offset = cpu_reg->spad_base + (fw->sbss_addr - cpu_reg->mips_view_base);
-       if (fw->sbss_len) {
-               int j;
-
-               for (j = 0; j < (fw->sbss_len / 4); j++, offset += 4) {
-                       bnx2_reg_wr_ind(bp, offset, 0);
-               }
-       }
+       /* Load the Data area. */
+       addr = be32_to_cpu(fw_entry->data.addr);
+       len = be32_to_cpu(fw_entry->data.len);
+       file_offset = be32_to_cpu(fw_entry->data.offset);
+       data = (__be32 *)(bp->mips_firmware->data + file_offset);
 
-       /* Load the BSS area. */
-       offset = cpu_reg->spad_base + (fw->bss_addr - cpu_reg->mips_view_base);
-       if (fw->bss_len) {
+       offset = cpu_reg->spad_base + (addr - cpu_reg->mips_view_base);
+       if (len) {
                int j;
 
-               for (j = 0; j < (fw->bss_len/4); j++, offset += 4) {
-                       bnx2_reg_wr_ind(bp, offset, 0);
-               }
+               for (j = 0; j < (len / 4); j++, offset += 4)
+                       bnx2_reg_wr_ind(bp, offset, be32_to_cpu(data[j]));
        }
 
        /* Load the Read-Only area. */
-       offset = cpu_reg->spad_base +
-               (fw->rodata_addr - cpu_reg->mips_view_base);
-       if (fw->rodata) {
+       addr = be32_to_cpu(fw_entry->rodata.addr);
+       len = be32_to_cpu(fw_entry->rodata.len);
+       file_offset = be32_to_cpu(fw_entry->rodata.offset);
+       data = (__be32 *)(bp->mips_firmware->data + file_offset);
+
+       offset = cpu_reg->spad_base + (addr - cpu_reg->mips_view_base);
+       if (len) {
                int j;
 
-               for (j = 0; j < (fw->rodata_len / 4); j++, offset += 4) {
-                       bnx2_reg_wr_ind(bp, offset, fw->rodata[j]);
-               }
+               for (j = 0; j < (len / 4); j++, offset += 4)
+                       bnx2_reg_wr_ind(bp, offset, be32_to_cpu(data[j]));
        }
 
        /* Clear the pre-fetch instruction. */
        bnx2_reg_wr_ind(bp, cpu_reg->inst, 0);
-       bnx2_reg_wr_ind(bp, cpu_reg->pc, fw->start_addr);
+
+       val = be32_to_cpu(fw_entry->start_addr);
+       bnx2_reg_wr_ind(bp, cpu_reg->pc, val);
 
        /* Start the CPU. */
        val = bnx2_reg_rd_ind(bp, cpu_reg->mode);
@@ -3515,95 +3622,40 @@ load_cpu_fw(struct bnx2 *bp, const struct cpu_reg *cpu_reg, struct fw_info *fw)
 static int
 bnx2_init_cpus(struct bnx2 *bp)
 {
-       struct fw_info *fw;
-       int rc, rv2p_len;
-       void *text, *rv2p;
+       const struct bnx2_mips_fw_file *mips_fw =
+               (const struct bnx2_mips_fw_file *) bp->mips_firmware->data;
+       const struct bnx2_rv2p_fw_file *rv2p_fw =
+               (const struct bnx2_rv2p_fw_file *) bp->rv2p_firmware->data;
+       int rc;
 
        /* Initialize the RV2P processor. */
-       text = vmalloc(FW_BUF_SIZE);
-       if (!text)
-               return -ENOMEM;
-       if (CHIP_NUM(bp) == CHIP_NUM_5709) {
-               rv2p = bnx2_xi_rv2p_proc1;
-               rv2p_len = sizeof(bnx2_xi_rv2p_proc1);
-       } else {
-               rv2p = bnx2_rv2p_proc1;
-               rv2p_len = sizeof(bnx2_rv2p_proc1);
-       }
-       rc = zlib_inflate_blob(text, FW_BUF_SIZE, rv2p, rv2p_len);
-       if (rc < 0)
-               goto init_cpu_err;
-
-       load_rv2p_fw(bp, text, rc /* == len */, RV2P_PROC1);
-
-       if (CHIP_NUM(bp) == CHIP_NUM_5709) {
-               rv2p = bnx2_xi_rv2p_proc2;
-               rv2p_len = sizeof(bnx2_xi_rv2p_proc2);
-       } else {
-               rv2p = bnx2_rv2p_proc2;
-               rv2p_len = sizeof(bnx2_rv2p_proc2);
-       }
-       rc = zlib_inflate_blob(text, FW_BUF_SIZE, rv2p, rv2p_len);
-       if (rc < 0)
-               goto init_cpu_err;
-
-       load_rv2p_fw(bp, text, rc /* == len */, RV2P_PROC2);
+       load_rv2p_fw(bp, RV2P_PROC1, &rv2p_fw->proc1);
+       load_rv2p_fw(bp, RV2P_PROC2, &rv2p_fw->proc2);
 
        /* Initialize the RX Processor. */
-       if (CHIP_NUM(bp) == CHIP_NUM_5709)
-               fw = &bnx2_rxp_fw_09;
-       else
-               fw = &bnx2_rxp_fw_06;
-
-       fw->text = text;
-       rc = load_cpu_fw(bp, &cpu_reg_rxp, fw);
+       rc = load_cpu_fw(bp, &cpu_reg_rxp, &mips_fw->rxp);
        if (rc)
                goto init_cpu_err;
 
        /* Initialize the TX Processor. */
-       if (CHIP_NUM(bp) == CHIP_NUM_5709)
-               fw = &bnx2_txp_fw_09;
-       else
-               fw = &bnx2_txp_fw_06;
-
-       fw->text = text;
-       rc = load_cpu_fw(bp, &cpu_reg_txp, fw);
+       rc = load_cpu_fw(bp, &cpu_reg_txp, &mips_fw->txp);
        if (rc)
                goto init_cpu_err;
 
        /* Initialize the TX Patch-up Processor. */
-       if (CHIP_NUM(bp) == CHIP_NUM_5709)
-               fw = &bnx2_tpat_fw_09;
-       else
-               fw = &bnx2_tpat_fw_06;
-
-       fw->text = text;
-       rc = load_cpu_fw(bp, &cpu_reg_tpat, fw);
+       rc = load_cpu_fw(bp, &cpu_reg_tpat, &mips_fw->tpat);
        if (rc)
                goto init_cpu_err;
 
        /* Initialize the Completion Processor. */
-       if (CHIP_NUM(bp) == CHIP_NUM_5709)
-               fw = &bnx2_com_fw_09;
-       else
-               fw = &bnx2_com_fw_06;
-
-       fw->text = text;
-       rc = load_cpu_fw(bp, &cpu_reg_com, fw);
+       rc = load_cpu_fw(bp, &cpu_reg_com, &mips_fw->com);
        if (rc)
                goto init_cpu_err;
 
        /* Initialize the Command Processor. */
-       if (CHIP_NUM(bp) == CHIP_NUM_5709)
-               fw = &bnx2_cp_fw_09;
-       else
-               fw = &bnx2_cp_fw_06;
-
-       fw->text = text;
-       rc = load_cpu_fw(bp, &cpu_reg_cp, fw);
+       rc = load_cpu_fw(bp, &cpu_reg_cp, &mips_fw->cp);
 
 init_cpu_err:
-       vfree(text);
        return rc;
 }
 
@@ -7807,6 +7859,10 @@ bnx2_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 
        pci_set_drvdata(pdev, dev);
 
+       rc = bnx2_request_firmware(bp);
+       if (rc)
+               goto error;
+
        memcpy(dev->dev_addr, bp->mac_addr, 6);
        memcpy(dev->perm_addr, bp->mac_addr, 6);
 
@@ -7823,13 +7879,7 @@ bnx2_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 
        if ((rc = register_netdev(dev))) {
                dev_err(&pdev->dev, "Cannot register net device\n");
-               if (bp->regview)
-                       iounmap(bp->regview);
-               pci_release_regions(pdev);
-               pci_disable_device(pdev);
-               pci_set_drvdata(pdev, NULL);
-               free_netdev(dev);
-               return rc;
+               goto error;
        }
 
        printk(KERN_INFO "%s: %s (%c%d) %s found at mem %lx, "
@@ -7843,6 +7893,20 @@ bnx2_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
                bp->pdev->irq, dev->dev_addr);
 
        return 0;
+
+error:
+       if (bp->mips_firmware)
+               release_firmware(bp->mips_firmware);
+       if (bp->rv2p_firmware)
+               release_firmware(bp->rv2p_firmware);
+
+       if (bp->regview)
+               iounmap(bp->regview);
+       pci_release_regions(pdev);
+       pci_disable_device(pdev);
+       pci_set_drvdata(pdev, NULL);
+       free_netdev(dev);
+       return rc;
 }
 
 static void __devexit
@@ -7855,6 +7919,11 @@ bnx2_remove_one(struct pci_dev *pdev)
 
        unregister_netdev(dev);
 
+       if (bp->mips_firmware)
+               release_firmware(bp->mips_firmware);
+       if (bp->rv2p_firmware)
+               release_firmware(bp->rv2p_firmware);
+
        if (bp->regview)
                iounmap(bp->regview);
 
index 704cbbc..5b570e1 100644 (file)
@@ -6885,6 +6885,8 @@ struct bnx2 {
 
        u32                     idle_chk_status_idx;
 
+       const struct firmware   *mips_firmware;
+       const struct firmware   *rv2p_firmware;
 };
 
 #define REG_RD(bp, offset)                                     \
@@ -6915,44 +6917,41 @@ struct cpu_reg {
        u32 mips_view_base;
 };
 
-struct fw_info {
-       const u32 ver_major;
-       const u32 ver_minor;
-       const u32 ver_fix;
-
-       const u32 start_addr;
-
-       /* Text section. */
-       const u32 text_addr;
-       const u32 text_len;
-       const u32 text_index;
-       __le32 *text;
-       u8 *gz_text;
-       const u32 gz_text_len;
-
-       /* Data section. */
-       const u32 data_addr;
-       const u32 data_len;
-       const u32 data_index;
-       const u32 *data;
-
-       /* SBSS section. */
-       const u32 sbss_addr;
-       const u32 sbss_len;
-       const u32 sbss_index;
-
-       /* BSS section. */
-       const u32 bss_addr;
-       const u32 bss_len;
-       const u32 bss_index;
-
-       /* Read-only section. */
-       const u32 rodata_addr;
-       const u32 rodata_len;
-       const u32 rodata_index;
-       const u32 *rodata;
+struct bnx2_fw_file_section {
+       __be32 addr;
+       __be32 len;
+       __be32 offset;
 };
 
+struct bnx2_mips_fw_file_entry {
+       __be32 start_addr;
+       struct bnx2_fw_file_section text;
+       struct bnx2_fw_file_section data;
+       struct bnx2_fw_file_section rodata;
+};
+
+struct bnx2_rv2p_fw_file_entry {
+       struct bnx2_fw_file_section rv2p;
+       __be32 fixup[8];
+};
+
+struct bnx2_mips_fw_file {
+       struct bnx2_mips_fw_file_entry com;
+       struct bnx2_mips_fw_file_entry cp;
+       struct bnx2_mips_fw_file_entry rxp;
+       struct bnx2_mips_fw_file_entry tpat;
+       struct bnx2_mips_fw_file_entry txp;
+};
+
+struct bnx2_rv2p_fw_file {
+       struct bnx2_rv2p_fw_file_entry proc1;
+       struct bnx2_rv2p_fw_file_entry proc2;
+};
+
+#define RV2P_P1_FIXUP_PAGE_SIZE_IDX            0
+#define RV2P_BD_PAGE_SIZE_MSK                  0xffff
+#define RV2P_BD_PAGE_SIZE                      ((BCM_PAGE_SIZE / 16) - 1)
+
 #define RV2P_PROC1                              0
 #define RV2P_PROC2                              1
 
index 6a4f1d6..940eb91 100644 (file)
@@ -4,883 +4,9 @@
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, except as noted below.
- *
- * This file contains firmware data derived from proprietary unpublished
- * source code, Copyright (c) 2004, 2005, 2006, 2007 Broadcom Corporation.
- *
- * Permission is hereby granted for the distribution of this firmware data
- * in hexadecimal or equivalent format, provided this copyright notice is
- * accompanying it.
+ * the Free Software Foundation.
  */
 
-static u8 bnx2_COM_b06FwText[] = {
-       0xcd, 0x7c, 0x0d, 0x70, 0x5c, 0xd7, 0x75, 0xde, 0xd9, 0xb7, 0xbb, 0xc0,
-       0x12, 0x04, 0xc1, 0x07, 0x68, 0x05, 0xad, 0x24, 0x24, 0xde, 0x87, 0x7d,
-       0x00, 0x56, 0x22, 0xe4, 0x3c, 0x32, 0x10, 0x0d, 0xb9, 0x5b, 0x72, 0xbd,
-       0x0b, 0x50, 0x90, 0x43, 0x23, 0x90, 0x84, 0x28, 0x6a, 0x86, 0xe3, 0x41,
-       0x97, 0xa0, 0x62, 0x69, 0xdc, 0x86, 0x1e, 0x2b, 0x29, 0xe5, 0x2a, 0xe6,
-       0x6a, 0x01, 0xca, 0x94, 0x02, 0x72, 0x61, 0x12, 0x04, 0xd5, 0x54, 0x6d,
-       0xd7, 0x0b, 0x80, 0x54, 0xd4, 0x25, 0x97, 0x94, 0xfc, 0xa3, 0x99, 0xd8,
-       0x21, 0x4a, 0xd1, 0x92, 0xed, 0x71, 0xa7, 0x92, 0xc7, 0x9d, 0xaa, 0x33,
-       0x9a, 0x94, 0xa5, 0xe4, 0xda, 0xf1, 0x34, 0x8d, 0x6a, 0x7b, 0x1a, 0x25,
-       0xb1, 0xf3, 0xfa, 0x7d, 0xf7, 0xdd, 0x0b, 0x2c, 0x20, 0x48, 0x56, 0x92,
-       0xf1, 0x4c, 0x30, 0xb3, 0xbc, 0xef, 0xde, 0x77, 0x7f, 0xcf, 0x39, 0xf7,
-       0x9c, 0xef, 0x9c, 0x7b, 0x1f, 0x77, 0x89, 0xb4, 0x88, 0xfe, 0xdb, 0x82,
-       0xdf, 0xc0, 0xbf, 0xf8, 0x9d, 0xfd, 0xdb, 0x3f, 0xb8, 0xf3, 0x83, 0x78,
-       0xdc, 0x69, 0xd9, 0x4d, 0x11, 0x96, 0x87, 0xf1, 0x8b, 0xe3, 0xb7, 0x43,
-       0x3f, 0x6f, 0xf4, 0x67, 0xb3, 0x41, 0x48, 0x64, 0xe2, 0x87, 0x22, 0xa1,
-       0x75, 0xef, 0x62, 0xef, 0xd2, 0xe6, 0xbd, 0xfe, 0xac, 0xf7, 0x59, 0xcf,
-       0xfe, 0x7b, 0xf4, 0x6d, 0xfe, 0xc2, 0xba, 0xf9, 0x16, 0xfd, 0x93, 0x98,
-       0x95, 0xb9, 0xfa, 0xb1, 0x9c, 0x2b, 0xb1, 0x70, 0xe6, 0xbb, 0xa3, 0xfb,
-       0x5d, 0x91, 0x6c, 0x6d, 0x5b, 0x32, 0x2f, 0x3f, 0xf3, 0x8b, 0xf1, 0x88,
-       0xb0, 0xfc, 0x97, 0x32, 0x3f, 0x3d, 0xfc, 0xb5, 0x0f, 0x39, 0x6f, 0x55,
-       0xc2, 0x12, 0xb3, 0x33, 0x6f, 0x8b, 0xdd, 0x2b, 0xb1, 0x2e, 0xb4, 0x79,
-       0xba, 0xef, 0x59, 0x4b, 0xda, 0x4c, 0x5f, 0xf6, 0x44, 0x38, 0x23, 0x63,
-       0x93, 0x33, 0x87, 0x7d, 0xcb, 0x95, 0xe2, 0x4d, 0x19, 0x37, 0x59, 0x92,
-       0xd6, 0xc1, 0xe9, 0x81, 0x0f, 0x09, 0xf2, 0x63, 0x93, 0xb5, 0x98, 0xe4,
-       0xea, 0xc5, 0x56, 0xcb, 0x75, 0x91, 0xc6, 0x8a, 0x37, 0x67, 0x24, 0xd6,
-       0x94, 0x79, 0xba, 0xf9, 0x25, 0x97, 0xe3, 0x27, 0x46, 0x73, 0xee, 0xcd,
-       0x12, 0x71, 0x7d, 0x7f, 0x1a, 0xe3, 0xef, 0xa9, 0xfd, 0xcc, 0x7f, 0x2c,
-       0x12, 0x8c, 0x6d, 0x65, 0x8a, 0x61, 0xa6, 0xa1, 0x4c, 0x72, 0xb4, 0xbb,
-       0xa6, 0xf2, 0x4d, 0x41, 0xde, 0x35, 0xf9, 0x2d, 0x41, 0x7e, 0x42, 0xe7,
-       0xed, 0x96, 0x60, 0x2d, 0xb1, 0x4d, 0x58, 0x4b, 0x2c, 0x92, 0x19, 0xda,
-       0x84, 0x3e, 0x63, 0xd1, 0x8c, 0x9b, 0x59, 0x52, 0xf5, 0x3e, 0xa1, 0xeb,
-       0x1d, 0x8c, 0x06, 0xed, 0x26, 0x47, 0x7b, 0x6b, 0x4c, 0x1f, 0x1e, 0xed,
-       0x51, 0xe9, 0xa3, 0xa3, 0x29, 0x95, 0x16, 0x55, 0xbd, 0x50, 0x66, 0x7a,
-       0xd4, 0x55, 0x69, 0x97, 0x2e, 0x4f, 0x8f, 0x26, 0x55, 0xda, 0xaf, 0x53,
-       0x4f, 0xa7, 0x03, 0x3a, 0x1d, 0xd4, 0x69, 0x46, 0xa7, 0x59, 0x9d, 0x0e,
-       0xe9, 0x7e, 0x46, 0x74, 0x7e, 0xaf, 0x4e, 0xc7, 0x74, 0x3a, 0xae, 0xd3,
-       0xfb, 0x75, 0xba, 0x4f, 0xcf, 0xeb, 0x93, 0x3a, 0x7f, 0x50, 0xcf, 0xef,
-       0x10, 0xe6, 0xf1, 0x93, 0x26, 0x2d, 0xbf, 0x58, 0x67, 0x52, 0xf6, 0xcf,
-       0xc4, 0xa4, 0x54, 0x0e, 0x4b, 0x5e, 0xf1, 0xb5, 0x3f, 0x2a, 0x2d, 0x31,
-       0x99, 0xaa, 0xc7, 0xe4, 0xaa, 0x12, 0xdb, 0x1f, 0xf8, 0x5f, 0xeb, 0xb3,
-       0xe5, 0x42, 0x3d, 0x2e, 0x97, 0xea, 0x12, 0x1a, 0xeb, 0xdb, 0x24, 0xd6,
-       0x89, 0x9b, 0x24, 0x6b, 0x87, 0x24, 0xac, 0xe8, 0x9b, 0x94, 0xdc, 0x4c,
-       0x27, 0xf2, 0x4e, 0x42, 0x64, 0x32, 0x1a, 0xf0, 0x33, 0x26, 0xe1, 0x79,
-       0xf2, 0x67, 0x7e, 0xf4, 0xa5, 0xb9, 0x84, 0x44, 0x8e, 0x27, 0xd1, 0x7f,
-       0xab, 0x44, 0xe7, 0xa5, 0x2b, 0x2c, 0x3d, 0x89, 0x07, 0x50, 0x63, 0xa8,
-       0x16, 0x91, 0xe1, 0x5a, 0x08, 0x3c, 0x8b, 0x41, 0x5e, 0x5a, 0xf1, 0xb3,
-       0xf1, 0x8b, 0xe3, 0x97, 0xc0, 0xef, 0x09, 0xf4, 0xd3, 0x25, 0xf9, 0x1a,
-       0xfb, 0xc4, 0xb8, 0x65, 0x8c, 0x5f, 0x76, 0xec, 0x09, 0xe1, 0x9c, 0x12,
-       0xf2, 0xb5, 0xbe, 0x60, 0x4e, 0x97, 0xea, 0xb1, 0x50, 0xee, 0xb4, 0x1c,
-       0xcc, 0x7b, 0x92, 0xb4, 0xdc, 0x16, 0x29, 0xd8, 0xa1, 0xe4, 0x64, 0xba,
-       0x43, 0x8a, 0xe3, 0x78, 0x57, 0x96, 0xac, 0x85, 0xbe, 0x0b, 0xb6, 0x4c,
-       0x04, 0xef, 0x58, 0xf6, 0x37, 0xd8, 0xb7, 0x8e, 0x4d, 0x01, 0xbe, 0x54,
-       0xfe, 0x63, 0x3c, 0xb3, 0xaf, 0xff, 0x17, 0x0e, 0xe6, 0xfc, 0xd7, 0xc8,
-       0xb3, 0xfc, 0xcb, 0x5b, 0x83, 0x3c, 0x9f, 0x59, 0xd7, 0x8c, 0x69, 0xd6,
-       0xca, 0xb1, 0xfb, 0xb0, 0x5e, 0x8e, 0xbf, 0xb2, 0x5e, 0xcc, 0xa3, 0x35,
-       0x94, 0x3f, 0x9d, 0x94, 0x23, 0xe5, 0x5d, 0x92, 0xf3, 0x7c, 0x7f, 0xbf,
-       0x27, 0x71, 0x4b, 0x7a, 0xec, 0x3c, 0xde, 0x56, 0x6b, 0x12, 0xca, 0x95,
-       0x0d, 0x3d, 0xd8, 0x6f, 0x04, 0x65, 0x9d, 0xa8, 0xdf, 0x16, 0x1a, 0x3a,
-       0x8d, 0xb9, 0x67, 0x48, 0x17, 0xc8, 0xae, 0xd7, 0x93, 0x98, 0xc4, 0x78,
-       0x0b, 0xb5, 0x1e, 0xef, 0xb2, 0xd8, 0xe8, 0xb3, 0x03, 0x75, 0x48, 0x23,
-       0xf6, 0xc5, 0x3e, 0xd9, 0x5f, 0x2b, 0xda, 0xc6, 0xf1, 0x8e, 0x73, 0xf2,
-       0xfd, 0x9c, 0x67, 0x33, 0x2f, 0x15, 0xd0, 0xad, 0x42, 0xba, 0xb5, 0x74,
-       0xc9, 0x99, 0x1a, 0xc7, 0xd8, 0x68, 0xde, 0xb7, 0xfe, 0x23, 0x9b, 0x77,
-       0x02, 0xfd, 0xc7, 0x91, 0x6e, 0x0e, 0xe5, 0x4e, 0xfa, 0x18, 0x3f, 0x81,
-       0xe7, 0x8d, 0xd6, 0x70, 0x55, 0xcb, 0x60, 0x02, 0x73, 0x8f, 0xcb, 0x45,
-       0x25, 0x87, 0x9b, 0x25, 0x0c, 0x39, 0x24, 0x8f, 0xdb, 0xe7, 0x6f, 0x97,
-       0x42, 0xdc, 0x49, 0x52, 0x87, 0x76, 0xef, 0xd8, 0x84, 0x35, 0x6a, 0x6d,
-       0x78, 0x3c, 0x0e, 0x39, 0xbc, 0xdc, 0x6e, 0xa1, 0xc4, 0x12, 0xc7, 0xfe,
-       0x2d, 0x29, 0x4a, 0x7e, 0xf1, 0x91, 0x90, 0xb4, 0x58, 0xa8, 0xb7, 0x2d,
-       0x14, 0xd0, 0x80, 0xf4, 0xc9, 0x82, 0x3e, 0x21, 0x09, 0xf6, 0x73, 0x56,
-       0xba, 0x6b, 0xea, 0x7d, 0xd2, 0x52, 0xef, 0x86, 0xf0, 0x2e, 0x22, 0xa9,
-       0x1d, 0xe6, 0xfd, 0x10, 0xde, 0xdf, 0x24, 0x13, 0x36, 0xe6, 0x52, 0x7e,
-       0xc1, 0xca, 0x61, 0x8e, 0x1f, 0x89, 0xa8, 0xb5, 0xa2, 0xee, 0x44, 0x43,
-       0x3f, 0x13, 0xa8, 0xf7, 0x34, 0xc6, 0xc2, 0x7c, 0xcb, 0x49, 0xcc, 0xa5,
-       0x13, 0x73, 0xe1, 0x1c, 0x8b, 0x56, 0xae, 0x1e, 0x41, 0x7e, 0xda, 0xca,
-       0x9f, 0x3d, 0x8a, 0x67, 0xb1, 0xad, 0xcc, 0x0b, 0x4c, 0xd1, 0x7e, 0x5f,
-       0x43, 0xfb, 0x7d, 0x68, 0xcf, 0x31, 0xd8, 0x3e, 0x90, 0xff, 0xa2, 0x92,
-       0xc5, 0xe4, 0x7b, 0xd0, 0x23, 0xfc, 0xf7, 0xa0, 0xc7, 0xd7, 0x34, 0x3d,
-       0x7e, 0x26, 0xbf, 0x78, 0x7a, 0x5c, 0xfd, 0x05, 0xd1, 0x43, 0xa4, 0x70,
-       0x92, 0xcf, 0x11, 0x29, 0x2a, 0xbd, 0xc5, 0x7d, 0x4b, 0x79, 0xa7, 0xce,
-       0x22, 0x9d, 0x28, 0xc7, 0xd8, 0x03, 0xf5, 0x08, 0xd2, 0x67, 0x90, 0x6e,
-       0x0e, 0x8d, 0x9d, 0x7c, 0x13, 0xfc, 0xf7, 0xc5, 0xde, 0x61, 0xec, 0x47,
-       0x31, 0x61, 0x4b, 0x97, 0xd8, 0x1f, 0x84, 0xf1, 0xee, 0x74, 0xec, 0x82,
-       0x7c, 0x9f, 0xef, 0x43, 0xc6, 0xce, 0xe7, 0x66, 0x36, 0xbd, 0x9d, 0x55,
-       0x4f, 0x51, 0xd2, 0x33, 0x6b, 0x65, 0x22, 0xa1, 0x7c, 0x39, 0x39, 0x61,
-       0x65, 0xe2, 0xd0, 0x53, 0xcc, 0x0f, 0x86, 0x82, 0x39, 0x0f, 0xa0, 0xae,
-       0xd1, 0x59, 0x66, 0xee, 0x03, 0x98, 0xfb, 0x7a, 0xdd, 0x95, 0xc5, 0x5c,
-       0x38, 0x07, 0xce, 0xab, 0xa8, 0x75, 0x10, 0xfb, 0x39, 0xa4, 0xfa, 0x09,
-       0x67, 0x06, 0x85, 0xb6, 0xb4, 0x30, 0xc3, 0x7d, 0xc0, 0x76, 0xec, 0x2b,
-       0xd0, 0xc9, 0x85, 0x9a, 0xe9, 0xa3, 0xd8, 0xd8, 0x07, 0xe6, 0x23, 0x5b,
-       0x2d, 0x37, 0x0a, 0xde, 0xb3, 0xab, 0xa3, 0x78, 0xf7, 0xb4, 0xe4, 0xce,
-       0xde, 0x61, 0x61, 0x0d, 0xe8, 0x97, 0x34, 0x1a, 0x83, 0xce, 0xe6, 0x3e,
-       0x8b, 0x49, 0x3e, 0xce, 0xb2, 0x49, 0x3d, 0x6e, 0x44, 0xb2, 0x2a, 0x9f,
-       0x6b, 0x5b, 0x9d, 0xc7, 0x0b, 0x7a, 0x3d, 0x19, 0xac, 0x87, 0x73, 0x30,
-       0x6b, 0xc9, 0x34, 0xac, 0xc5, 0xd0, 0x9a, 0xb4, 0xb0, 0xa1, 0xe3, 0x63,
-       0xda, 0x86, 0xb0, 0xdd, 0x74, 0x03, 0xef, 0xa6, 0xd1, 0x86, 0xb4, 0x47,
-       0x9d, 0x75, 0x76, 0x85, 0x36, 0x65, 0x08, 0xfd, 0x94, 0xe6, 0x2c, 0xc9,
-       0x7b, 0xb0, 0xd9, 0xde, 0xcd, 0x5a, 0x5e, 0x57, 0x65, 0x29, 0xba, 0xa1,
-       0x2c, 0x3d, 0x66, 0x05, 0xfa, 0x1a, 0xb6, 0x05, 0xf6, 0x67, 0x6a, 0xce,
-       0x49, 0x1b, 0x59, 0x2a, 0xcd, 0xbc, 0x1f, 0x59, 0x32, 0xed, 0x63, 0x90,
-       0x5d, 0x33, 0xc6, 0xfa, 0x39, 0x9b, 0x3a, 0x98, 0x63, 0x79, 0x48, 0x63,
-       0x15, 0x8e, 0x13, 0xd8, 0x86, 0xca, 0x1a, 0xdb, 0x70, 0x14, 0x6d, 0x25,
-       0x94, 0xef, 0x6b, 0x95, 0x03, 0x73, 0xa6, 0x8f, 0xa3, 0x4a, 0x66, 0x27,
-       0x67, 0x1c, 0x7b, 0x38, 0x2c, 0xd9, 0xe1, 0xd9, 0x41, 0x19, 0xaa, 0x77,
-       0x81, 0xa7, 0x6f, 0xfb, 0xb0, 0x9d, 0x1f, 0x8c, 0x8a, 0x0b, 0xbd, 0x88,
-       0x35, 0x0f, 0x80, 0xc6, 0xf5, 0xa8, 0x58, 0x19, 0x0f, 0x69, 0x23, 0xd6,
-       0x8a, 0x44, 0x86, 0xd7, 0xe4, 0x9b, 0x50, 0x07, 0x7d, 0x0f, 0xac, 0xaf,
-       0x07, 0xf9, 0x04, 0x6d, 0x73, 0xde, 0xcf, 0x7c, 0xd8, 0x61, 0x6d, 0xb3,
-       0x58, 0x4a, 0x3d, 0x61, 0x74, 0xc4, 0x6f, 0x60, 0x7f, 0xab, 0xbd, 0x50,
-       0x04, 0x76, 0x41, 0x1f, 0xa2, 0xe4, 0xb4, 0x54, 0x7f, 0xce, 0xec, 0x7b,
-       0x55, 0xbe, 0x67, 0x80, 0xb2, 0x57, 0x01, 0x26, 0xe0, 0x9a, 0x16, 0xd5,
-       0x5e, 0xcf, 0xdb, 0x71, 0x99, 0x2e, 0x73, 0x3d, 0x8b, 0x92, 0xaa, 0xfd,
-       0x7b, 0xc9, 0x9f, 0x15, 0xf9, 0xd6, 0x0c, 0xeb, 0x7d, 0x55, 0xd7, 0x7b,
-       0x01, 0xf5, 0x52, 0xc9, 0xa1, 0x90, 0x03, 0x3b, 0xe0, 0x60, 0x9b, 0x6c,
-       0x4b, 0x22, 0xb5, 0x47, 0xf0, 0x1b, 0xa2, 0x91, 0x41, 0xbd, 0x00, 0xfb,
-       0xbc, 0x00, 0x7a, 0x88, 0xdc, 0x5d, 0x6e, 0x86, 0x3e, 0xf9, 0x9f, 0x98,
-       0x6b, 0x5c, 0x9e, 0xc4, 0x3a, 0x5e, 0x9a, 0x21, 0xbe, 0xfa, 0xaa, 0x2c,
-       0xcd, 0x10, 0x6f, 0xbd, 0x20, 0xd3, 0x33, 0x29, 0xef, 0x5b, 0xa0, 0xf3,
-       0x19, 0xe1, 0x5a, 0xb6, 0x79, 0x48, 0x81, 0x05, 0x9d, 0xe4, 0xe3, 0xd0,
-       0x67, 0x7d, 0x3b, 0x82, 0xfe, 0x7a, 0x74, 0x7f, 0x6e, 0xcd, 0x91, 0xab,
-       0x36, 0xf5, 0xd3, 0x3b, 0xf7, 0x78, 0x4e, 0xef, 0xf1, 0x31, 0xaf, 0x4b,
-       0x2c, 0xec, 0xeb, 0xec, 0x78, 0x11, 0xd6, 0x8f, 0xfb, 0xfa, 0x6d, 0x6b,
-       0x15, 0xff, 0x24, 0x80, 0x59, 0x1d, 0x65, 0xef, 0xfe, 0x6e, 0x7b, 0xbc,
-       0x71, 0x6f, 0x73, 0xfc, 0x36, 0xb4, 0x89, 0x20, 0x7d, 0xef, 0x7d, 0x8d,
-       0x3e, 0x1a, 0xda, 0x0e, 0x72, 0x5f, 0xa0, 0xcd, 0xbf, 0x05, 0x2d, 0x48,
-       0xff, 0xf7, 0xb3, 0x9f, 0x6f, 0x0b, 0xbf, 0xaf, 0xfd, 0x3c, 0xfe, 0x5e,
-       0xfb, 0xb9, 0x71, 0x2f, 0x5f, 0x20, 0x2d, 0x30, 0xb6, 0xcc, 0x06, 0xb2,
-       0xd5, 0x03, 0x5a, 0x27, 0x21, 0xa7, 0x98, 0x43, 0xf9, 0x6f, 0xfd, 0x6c,
-       0x24, 0xc0, 0x73, 0x81, 0x3c, 0xb1, 0x9e, 0xa9, 0x13, 0xe8, 0xde, 0xa1,
-       0xfa, 0x55, 0xa5, 0x67, 0x2f, 0x2a, 0x3d, 0xeb, 0x1c, 0x2d, 0x0a, 0xe5,
-       0xed, 0xf6, 0x30, 0xe9, 0x7e, 0xc1, 0xfb, 0x7d, 0xcc, 0xd1, 0x49, 0x26,
-       0xad, 0x9e, 0xa2, 0x65, 0xfd, 0xbe, 0x1c, 0x5c, 0x78, 0x58, 0x0e, 0x96,
-       0xd9, 0xc7, 0x2e, 0xbc, 0x77, 0x51, 0xb6, 0x09, 0xba, 0x96, 0x3a, 0xfd,
-       0xed, 0x50, 0x30, 0x96, 0x05, 0xfb, 0xb5, 0x1c, 0xba, 0xbb, 0x7e, 0x25,
-       0x94, 0x5b, 0xe0, 0xde, 0x45, 0x79, 0xbd, 0x51, 0xe7, 0x1b, 0x7d, 0xff,
-       0x0a, 0xc6, 0x34, 0x72, 0xee, 0x35, 0xe8, 0xd4, 0x69, 0xe2, 0x41, 0x2b,
-       0xe7, 0x91, 0x7f, 0xb4, 0x2d, 0x8f, 0xd8, 0xc1, 0xfa, 0x0f, 0x81, 0x66,
-       0xb4, 0x49, 0xa4, 0x21, 0xec, 0x61, 0x84, 0xfb, 0x97, 0xcf, 0xe2, 0x87,
-       0x33, 0xdc, 0x83, 0x12, 0x09, 0x67, 0x80, 0x7f, 0xe3, 0xac, 0xb3, 0x0b,
-       0x73, 0x0e, 0xf6, 0x77, 0x71, 0x65, 0x7f, 0x77, 0xcb, 0xc4, 0x42, 0x16,
-       0x3a, 0x20, 0xaf, 0xfa, 0x89, 0xba, 0x6b, 0x6c, 0x0b, 0xea, 0x27, 0x35,
-       0x1f, 0x36, 0x1b, 0xfd, 0x87, 0x32, 0x4f, 0x97, 0x35, 0x35, 0x94, 0x19,
-       0x7e, 0x15, 0x30, 0x16, 0x6d, 0xc4, 0x88, 0xc6, 0x3d, 0xbe, 0x9f, 0x27,
-       0x9f, 0xfb, 0xf7, 0x09, 0xf7, 0xc4, 0xa5, 0x72, 0xd1, 0x0e, 0x2b, 0xd9,
-       0x5c, 0xfc, 0xd8, 0xaa, 0x6c, 0x02, 0x27, 0xab, 0x5e, 0x48, 0x5b, 0xce,
-       0xa5, 0x15, 0xb4, 0x1c, 0xc2, 0x1a, 0x40, 0xb3, 0xce, 0x10, 0xe8, 0xd6,
-       0x2a, 0x85, 0xfa, 0x2e, 0xfd, 0x8e, 0xe5, 0x11, 0x19, 0x8b, 0x1b, 0x3b,
-       0xf4, 0xe7, 0x5b, 0x03, 0xac, 0x8b, 0x3a, 0xe5, 0xff, 0x1d, 0x0e, 0x64,
-       0xdf, 0x96, 0xc2, 0xe9, 0x21, 0xc8, 0x18, 0xb1, 0xd8, 0x26, 0x2d, 0x63,
-       0xec, 0x07, 0xe5, 0x67, 0x29, 0xc3, 0xa2, 0xf5, 0xe7, 0x20, 0xd2, 0x1f,
-       0x87, 0x69, 0xb7, 0xd9, 0x57, 0xe1, 0xb4, 0x69, 0x6f, 0xe6, 0xd1, 0xb1,
-       0xd2, 0xcf, 0x98, 0x67, 0x49, 0x58, 0xcd, 0x05, 0x65, 0x67, 0xd7, 0xce,
-       0xc5, 0xea, 0x34, 0x73, 0x79, 0x34, 0x1c, 0xcc, 0xa5, 0xa3, 0xa1, 0xaf,
-       0x78, 0xc3, 0x5c, 0x9a, 0x30, 0x97, 0xb8, 0xb2, 0x37, 0x9c, 0xcb, 0x05,
-       0xf0, 0xbe, 0x70, 0xf6, 0xc6, 0xeb, 0x82, 0x36, 0xf1, 0x86, 0x36, 0x9d,
-       0xeb, 0xda, 0xb0, 0xbe, 0x19, 0x03, 0xef, 0xce, 0x5e, 0xdd, 0x1c, 0xb4,
-       0x61, 0xbd, 0x26, 0xd8, 0x37, 0xbe, 0x53, 0x7e, 0x5b, 0x83, 0xfc, 0x1f,
-       0x84, 0xfc, 0x1b, 0xb9, 0x32, 0xb6, 0xd9, 0xf0, 0x75, 0x53, 0x28, 0x7f,
-       0xf2, 0x03, 0xf4, 0x3d, 0x43, 0x63, 0xe5, 0x25, 0xf8, 0x0f, 0x49, 0x29,
-       0xa4, 0xe1, 0x9b, 0xd8, 0x83, 0xa2, 0xfc, 0x89, 0x34, 0x7c, 0x16, 0x7b,
-       0xb3, 0xc2, 0x5b, 0x85, 0x74, 0xbf, 0xb6, 0x59, 0xdf, 0x97, 0x09, 0xc8,
-       0x70, 0x21, 0x9d, 0xc6, 0x78, 0xd0, 0xd5, 0x6e, 0x2f, 0xda, 0x71, 0xdc,
-       0xb7, 0x22, 0xb4, 0x23, 0x17, 0xca, 0x1f, 0x47, 0x7e, 0x33, 0xde, 0xff,
-       0xa9, 0x9e, 0x4f, 0x1b, 0xea, 0x7c, 0x5a, 0xf9, 0x26, 0x17, 0x54, 0x1d,
-       0xf6, 0x71, 0x19, 0xf9, 0x3b, 0x50, 0x07, 0x9b, 0x1c, 0x12, 0x68, 0xb9,
-       0x3b, 0xf1, 0xfb, 0x36, 0xca, 0x3e, 0x84, 0xb2, 0x2f, 0xa3, 0xec, 0x76,
-       0xe4, 0x5f, 0x5c, 0xd7, 0xef, 0x36, 0xe4, 0x1f, 0xc3, 0x7b, 0xac, 0xd3,
-       0xfe, 0x06, 0xde, 0xdf, 0x81, 0xdf, 0x97, 0xd7, 0xd5, 0xf9, 0x37, 0xeb,
-       0xf2, 0xc6, 0x2f, 0xf8, 0x63, 0x2d, 0x73, 0xc6, 0x27, 0x08, 0xf4, 0xe8,
-       0x54, 0xb9, 0x35, 0x34, 0x7c, 0x3a, 0x16, 0xda, 0x73, 0x9a, 0x78, 0x23,
-       0xa2, 0xfc, 0x80, 0x08, 0xfc, 0x80, 0xe9, 0x39, 0x3a, 0x88, 0x11, 0x94,
-       0x11, 0xbb, 0xcb, 0x40, 0x93, 0xf4, 0x78, 0x57, 0xb0, 0x4f, 0x0a, 0xb5,
-       0x2e, 0xe4, 0xb9, 0x7f, 0x20, 0x63, 0xb5, 0x16, 0xc8, 0x75, 0x4f, 0xba,
-       0x0a, 0x19, 0x3b, 0x00, 0xdf, 0x64, 0x02, 0x36, 0x70, 0xa2, 0xd6, 0x25,
-       0x0f, 0xd4, 0xae, 0x44, 0x02, 0x39, 0x32, 0x63, 0x3f, 0xbd, 0x6e, 0xec,
-       0x18, 0xfd, 0x0a, 0xc8, 0xfd, 0xfc, 0xe8, 0xfe, 0x39, 0x8e, 0x6f, 0x75,
-       0x47, 0xa4, 0x0d, 0x73, 0xa0, 0xff, 0x28, 0xbd, 0x11, 0xe9, 0x49, 0x4e,
-       0x29, 0x07, 0xb5, 0x28, 0xe1, 0x4c, 0x0f, 0xec, 0x83, 0xca, 0xc3, 0x5f,
-       0x84, 0xbe, 0xab, 0xad, 0xfa, 0x91, 0xc3, 0x2b, 0x7e, 0x64, 0x17, 0xfc,
-       0xcc, 0x17, 0x23, 0xc1, 0xde, 0x6f, 0x85, 0x6e, 0xb8, 0x9e, 0x38, 0x47,
-       0xe9, 0x77, 0xee, 0xf1, 0x9c, 0xd7, 0xae, 0xf3, 0x94, 0x65, 0xe8, 0x0b,
-       0x2b, 0xaa, 0xf4, 0x95, 0x58, 0x78, 0x37, 0x40, 0xf9, 0x45, 0x7e, 0xa1,
-       0x71, 0x7f, 0xff, 0x0e, 0xf6, 0x32, 0xdf, 0x1b, 0x39, 0xc3, 0x3f, 0x4a,
-       0xc6, 0x18, 0xbf, 0xf8, 0x8b, 0x75, 0x6b, 0x3b, 0xb0, 0x6e, 0x6d, 0x91,
-       0x15, 0xba, 0x72, 0x8d, 0x51, 0xac, 0x71, 0x69, 0x8e, 0xb4, 0xed, 0x87,
-       0x7c, 0x8a, 0x1b, 0x11, 0xca, 0x31, 0xf5, 0x6a, 0x1b, 0x74, 0x35, 0x69,
-       0x17, 0x11, 0xc6, 0x3c, 0x26, 0xb0, 0xa6, 0x09, 0xac, 0x69, 0xa2, 0x81,
-       0x8e, 0x07, 0x56, 0xd6, 0x64, 0xe6, 0x8d, 0x7a, 0x6a, 0xbf, 0xf1, 0x99,
-       0x3f, 0xe8, 0xa9, 0x36, 0x83, 0x69, 0x38, 0x97, 0xdc, 0xba, 0xb9, 0x90,
-       0x16, 0x9c, 0xcb, 0xca, 0x3c, 0xe2, 0x8c, 0x1c, 0x1d, 0xac, 0x91, 0xaf,
-       0x1c, 0x73, 0xaf, 0x4c, 0x96, 0x3f, 0xa0, 0xe7, 0xd1, 0x8a, 0x79, 0x8c,
-       0x41, 0x6f, 0x70, 0x3c, 0xec, 0xff, 0xda, 0x38, 0x9e, 0xe3, 0xe4, 0xbf,
-       0x9e, 0x8b, 0xa1, 0x05, 0xfd, 0xb6, 0x84, 0xc6, 0xe2, 0x86, 0x5e, 0xae,
-       0xc2, 0x0e, 0x97, 0xca, 0xff, 0x6d, 0x6b, 0x30, 0xb7, 0xa4, 0x9e, 0x47,
-       0x40, 0x63, 0x60, 0x78, 0x60, 0xa9, 0xbc, 0xd6, 0x07, 0x8d, 0x74, 0xbd,
-       0xbb, 0x49, 0xeb, 0x2b, 0xc8, 0x40, 0x63, 0xf9, 0xa7, 0x9a, 0x56, 0xeb,
-       0x32, 0x3f, 0xaf, 0xf3, 0x5b, 0x42, 0xc3, 0x27, 0x4d, 0xd9, 0xd5, 0xa6,
-       0x77, 0xf6, 0xf7, 0xd5, 0x26, 0xa3, 0x3f, 0x2e, 0x95, 0x1b, 0xf7, 0xfb,
-       0x21, 0x2b, 0xb0, 0x3b, 0x45, 0x29, 0x0d, 0x64, 0xa1, 0xe7, 0x68, 0x7f,
-       0x86, 0xac, 0xc0, 0xf6, 0xb0, 0xce, 0x21, 0x85, 0x1d, 0x23, 0x99, 0x2a,
-       0xe5, 0x1e, 0xb4, 0xac, 0x8d, 0xe6, 0x66, 0x7c, 0x7f, 0xca, 0x5b, 0x4e,
-       0x84, 0x85, 0x7a, 0x99, 0xb8, 0x8d, 0xe5, 0xcf, 0xa0, 0x1c, 0x76, 0xbd,
-       0x3e, 0x26, 0x6c, 0xb7, 0x31, 0x3e, 0x4b, 0x6a, 0x7c, 0x16, 0x00, 0xbb,
-       0x9c, 0xc2, 0x53, 0x4f, 0x8d, 0xc2, 0xfe, 0xeb, 0xe7, 0xa7, 0xf1, 0x9c,
-       0x6c, 0xc4, 0x80, 0xe8, 0xb7, 0x32, 0x9a, 0x9b, 0x53, 0x76, 0x00, 0xfb,
-       0x81, 0xbc, 0x3a, 0x03, 0x5e, 0x85, 0x64, 0x5a, 0xd9, 0x04, 0xce, 0x83,
-       0xed, 0x2a, 0xa3, 0xdd, 0x8b, 0x4c, 0xab, 0xa3, 0xee, 0x62, 0x58, 0x0e,
-       0xc4, 0x83, 0xb6, 0xcc, 0x27, 0x17, 0x8d, 0xdd, 0x6e, 0x91, 0x68, 0x86,
-       0xba, 0xcd, 0x49, 0x03, 0x87, 0x62, 0x3d, 0x47, 0x47, 0xa7, 0x5d, 0xda,
-       0xcb, 0xff, 0x03, 0x79, 0x68, 0x91, 0x26, 0x25, 0x27, 0x4f, 0xea, 0xb1,
-       0xce, 0x60, 0xac, 0xad, 0x98, 0x6b, 0x18, 0x3a, 0x32, 0x92, 0xc0, 0x38,
-       0x87, 0x2d, 0x77, 0x1b, 0xc6, 0xa3, 0xd7, 0xd8, 0x25, 0x53, 0x75, 0xca,
-       0xfa, 0xdf, 0x44, 0x56, 0x7d, 0xc5, 0x13, 0x68, 0x67, 0x7c, 0x14, 0x8e,
-       0x57, 0x05, 0x46, 0x69, 0xc1, 0x3a, 0x1c, 0x3b, 0x17, 0x86, 0xed, 0x9b,
-       0x33, 0x75, 0x38, 0xa7, 0xe3, 0xa3, 0xa9, 0xc5, 0x14, 0xfa, 0xea, 0xa2,
-       0xec, 0x41, 0xe6, 0xc2, 0xf8, 0xb1, 0x6f, 0xb6, 0x83, 0x4e, 0x1e, 0x34,
-       0x76, 0x7c, 0xb5, 0xbd, 0x69, 0xd7, 0xbd, 0x38, 0xa2, 0x65, 0xf7, 0xaf,
-       0xfc, 0xec, 0x38, 0xdf, 0x37, 0xc6, 0x07, 0x4c, 0x3b, 0x53, 0x27, 0xac,
-       0xf5, 0xf1, 0x7d, 0xd1, 0xd5, 0x79, 0x3e, 0x35, 0x1a, 0xf8, 0x31, 0x12,
-       0xc9, 0xf7, 0x0d, 0x6a, 0xbe, 0x3d, 0x8d, 0x32, 0xb6, 0xc7, 0x5e, 0xa8,
-       0x37, 0x62, 0xf0, 0xa0, 0xdf, 0x22, 0xb0, 0x47, 0xa9, 0xdc, 0x04, 0x5d,
-       0x93, 0x6d, 0x0f, 0x62, 0x22, 0xef, 0x85, 0xbb, 0xc1, 0x53, 0xf4, 0x53,
-       0x5a, 0x69, 0xab, 0xe2, 0x93, 0xa3, 0x2f, 0xa1, 0xff, 0x23, 0xe5, 0x60,
-       0xaf, 0x05, 0x74, 0x20, 0x5e, 0x0a, 0xc9, 0x92, 0x9b, 0x84, 0x7f, 0x47,
-       0x3b, 0x94, 0x94, 0x97, 0x5d, 0x83, 0x9f, 0x88, 0x9d, 0x50, 0xbf, 0xce,
-       0xf9, 0x70, 0xdd, 0x27, 0xb0, 0x6e, 0x5f, 0x66, 0xbd, 0x40, 0x3e, 0xfa,
-       0xb0, 0x37, 0xff, 0x53, 0xc4, 0x39, 0x4a, 0x3f, 0xe0, 0x6a, 0xa4, 0x71,
-       0x5d, 0xc6, 0x9e, 0x3d, 0xa5, 0x63, 0x93, 0x27, 0x34, 0x2f, 0x2b, 0xe0,
-       0xe5, 0xb6, 0xa4, 0x2d, 0xbd, 0x98, 0x3b, 0xea, 0xf4, 0xf7, 0x00, 0x8f,
-       0xd3, 0xd7, 0x4b, 0x60, 0x3e, 0x36, 0x64, 0x7d, 0xab, 0xb6, 0xfb, 0x9f,
-       0x89, 0x52, 0x5f, 0xb4, 0xab, 0xb8, 0xe7, 0x09, 0x25, 0x6b, 0x81, 0xec,
-       0x85, 0xf5, 0x7b, 0xc3, 0xef, 0x30, 0xcd, 0xae, 0xac, 0xc6, 0xf9, 0x8c,
-       0xae, 0x66, 0xfd, 0x39, 0xd4, 0x0f, 0x61, 0x4d, 0xbe, 0x3f, 0xa9, 0xe6,
-       0x3b, 0x0f, 0x5e, 0x87, 0xa5, 0xb4, 0x22, 0x8f, 0xf3, 0x90, 0xc7, 0x26,
-       0x91, 0x8e, 0x46, 0xb9, 0xa1, 0xac, 0xbc, 0x1e, 0x65, 0x4c, 0x2e, 0x69,
-       0x19, 0xde, 0x45, 0x88, 0xdd, 0x90, 0x37, 0xbc, 0xe3, 0xf3, 0x46, 0x18,
-       0x90, 0x71, 0x27, 0xdf, 0x5f, 0xf2, 0x18, 0x23, 0x6c, 0x96, 0xa2, 0x1d,
-       0xe0, 0x97, 0x92, 0x47, 0x39, 0xcd, 0x25, 0x23, 0xe2, 0x24, 0x0e, 0xc8,
-       0x9b, 0xe8, 0x3b, 0x9b, 0x8e, 0x4a, 0xe0, 0xa7, 0x4e, 0x80, 0x6e, 0xcb,
-       0xb6, 0xef, 0xbf, 0x04, 0xbf, 0xba, 0x0a, 0xbf, 0x66, 0x09, 0x69, 0xa9,
-       0x86, 0x3d, 0xd0, 0x12, 0xc1, 0x9e, 0x32, 0x7b, 0x25, 0x26, 0x15, 0xd4,
-       0x59, 0xc0, 0xbb, 0xc7, 0x6b, 0x86, 0xcb, 0xbe, 0x6f, 0x61, 0x5d, 0xfb,
-       0xdd, 0xbf, 0xf6, 0x0b, 0xf1, 0xc6, 0xba, 0x06, 0x77, 0x11, 0x33, 0x11,
-       0xf3, 0x10, 0xab, 0xf0, 0x1d, 0xf1, 0xc7, 0x61, 0xcc, 0x85, 0x32, 0xdc,
-       0x26, 0xb1, 0x8c, 0x93, 0x18, 0x11, 0xa3, 0x8b, 0x5f, 0x03, 0xff, 0x8b,
-       0x7e, 0xb3, 0xdb, 0x25, 0xcf, 0x83, 0xd7, 0xcf, 0xd5, 0x0d, 0xef, 0x93,
-       0xe0, 0xbd, 0x53, 0x2c, 0x8a, 0x2f, 0x17, 0x3d, 0x37, 0xf9, 0x39, 0xa4,
-       0xdf, 0xf1, 0x7e, 0x85, 0xb4, 0x78, 0x0a, 0x26, 0x0f, 0x38, 0x1b, 0x7a,
-       0x75, 0xd6, 0xe0, 0xc7, 0x36, 0xe2, 0x7d, 0x4d, 0xc7, 0xab, 0xe8, 0xd3,
-       0xb1, 0x2d, 0x80, 0xa5, 0x3b, 0x51, 0x2f, 0x90, 0x6b, 0x53, 0x76, 0x18,
-       0x75, 0x39, 0x07, 0xfa, 0x62, 0xdf, 0xc5, 0x5e, 0xf2, 0xfd, 0x7b, 0xbd,
-       0xc9, 0x86, 0x3d, 0x31, 0x0f, 0x1e, 0x28, 0xd9, 0x1c, 0x68, 0x17, 0xc6,
-       0xee, 0xa4, 0xbf, 0x43, 0xf9, 0x0a, 0x7c, 0x86, 0x8c, 0x0e, 0xd0, 0x26,
-       0x24, 0x55, 0xdc, 0x8f, 0xb6, 0xe7, 0x39, 0xd0, 0xfe, 0xd3, 0x35, 0xf2,
-       0xa1, 0x55, 0xe9, 0xfe, 0xe7, 0xcb, 0xb4, 0xef, 0x01, 0x46, 0x9b, 0x50,
-       0xb1, 0x5c, 0xda, 0x84, 0x34, 0x78, 0x13, 0xc4, 0xf0, 0x1e, 0x50, 0x6d,
-       0x59, 0x8f, 0x6d, 0x1b, 0xf9, 0xc7, 0x3a, 0x5b, 0x81, 0xaf, 0x28, 0x83,
-       0x6d, 0xc0, 0x25, 0xed, 0x72, 0x20, 0xdd, 0x0c, 0xba, 0x77, 0x28, 0x3c,
-       0x65, 0xb9, 0x1f, 0x86, 0xed, 0x02, 0xa6, 0xb3, 0x1d, 0x6f, 0xd5, 0xf7,
-       0xb8, 0x1d, 0x65, 0x3f, 0x05, 0xfd, 0x59, 0xb6, 0x49, 0xc7, 0xaf, 0x1f,
-       0xc6, 0xfe, 0xab, 0x6c, 0x0d, 0xe2, 0x22, 0xe4, 0x83, 0xd1, 0x03, 0xc6,
-       0xfe, 0xd9, 0x1a, 0x47, 0x92, 0x37, 0x41, 0x0c, 0xc5, 0x52, 0x75, 0x89,
-       0xe7, 0x1b, 0xfd, 0x16, 0xee, 0x3b, 0xdf, 0xbf, 0xe8, 0x29, 0x7b, 0x0a,
-       0x1e, 0xec, 0x86, 0x0d, 0x8b, 0x68, 0x5a, 0xb7, 0x82, 0xd6, 0x81, 0x8d,
-       0x4d, 0x76, 0x40, 0xef, 0xb8, 0x56, 0x53, 0x40, 0x3f, 0x62, 0x85, 0xbf,
-       0x85, 0x1f, 0x4f, 0xff, 0x81, 0x38, 0x81, 0x73, 0x47, 0xbb, 0x05, 0xd6,
-       0xa5, 0x2d, 0x7e, 0x0c, 0x63, 0x84, 0x25, 0xd9, 0xc9, 0xfc, 0x03, 0xba,
-       0x0d, 0x9f, 0x7d, 0xe9, 0xdd, 0xd1, 0x28, 0xcf, 0x83, 0x98, 0x27, 0xd7,
-       0x63, 0xe2, 0x7a, 0x5d, 0x4a, 0x07, 0xac, 0xca, 0x85, 0x99, 0x93, 0x19,
-       0x97, 0x73, 0x4b, 0x48, 0x07, 0xe6, 0x76, 0x37, 0x74, 0xf4, 0x8e, 0x0e,
-       0xf6, 0x69, 0xc6, 0x6e, 0x9c, 0x93, 0xc1, 0x2f, 0x81, 0xdd, 0x8d, 0xba,
-       0xcd, 0xb2, 0xa3, 0x93, 0xb4, 0xeb, 0x52, 0xba, 0x7a, 0x95, 0x1f, 0xb4,
-       0xbf, 0x1c, 0x7b, 0x7d, 0xf9, 0x1d, 0x0d, 0xf3, 0x6a, 0x3c, 0x03, 0x20,
-       0x76, 0xd8, 0x89, 0x77, 0x9c, 0x13, 0x9c, 0xe4, 0xb8, 0x2f, 0x7b, 0x14,
-       0xdd, 0x38, 0xb7, 0xc6, 0x79, 0x10, 0x43, 0x71, 0xce, 0x9c, 0xc3, 0x7a,
-       0x6c, 0xc2, 0xf9, 0xfc, 0x57, 0xcd, 0xc3, 0x4d, 0x7a, 0x5d, 0x06, 0xcb,
-       0xa4, 0xd0, 0xf6, 0x3f, 0x60, 0x0d, 0x7c, 0xe6, 0x3a, 0x8c, 0xcd, 0x4e,
-       0x05, 0xfd, 0xb4, 0x98, 0x78, 0xb0, 0x89, 0x6b, 0x70, 0x5e, 0xdc, 0x33,
-       0x86, 0x4e, 0x1d, 0x9a, 0x47, 0xbb, 0xd7, 0x8d, 0xeb, 0x78, 0x6b, 0xf5,
-       0xc8, 0xed, 0x0d, 0xeb, 0xeb, 0x97, 0xe2, 0x02, 0xe5, 0xe2, 0x36, 0xa4,
-       0x06, 0x13, 0x0c, 0x40, 0xf7, 0xbf, 0x2b, 0x26, 0xe0, 0x59, 0xd5, 0x78,
-       0x01, 0x3e, 0x99, 0xd2, 0xfd, 0x6a, 0x2f, 0xc6, 0x90, 0x87, 0x3e, 0xa9,
-       0xdf, 0x43, 0x19, 0x1b, 0x9f, 0xa8, 0x79, 0xe3, 0x93, 0xb5, 0x81, 0x71,
-       0xe2, 0xa9, 0x40, 0xe6, 0x50, 0xbf, 0x26, 0x13, 0xf0, 0xb3, 0xc7, 0x73,
-       0xaa, 0x9d, 0x8a, 0x31, 0x6c, 0xd0, 0x8f, 0x70, 0x3f, 0x4e, 0x04, 0x63,
-       0xc5, 0xc6, 0xf3, 0xd0, 0x41, 0x0b, 0xb3, 0xb0, 0x4b, 0xae, 0x93, 0xa5,
-       0x5c, 0xee, 0xf7, 0x9c, 0x11, 0x25, 0x7b, 0x71, 0x67, 0x8c, 0xbc, 0xac,
-       0xce, 0xfe, 0xb2, 0x2c, 0xcc, 0xf9, 0x72, 0x17, 0x74, 0xe1, 0x43, 0x90,
-       0x55, 0x39, 0x07, 0x45, 0x78, 0x0e, 0xca, 0xeb, 0x5c, 0x5c, 0xac, 0x53,
-       0x5d, 0x12, 0x3d, 0x96, 0x90, 0xc8, 0x31, 0x62, 0xcb, 0x94, 0x7d, 0x97,
-       0x08, 0xec, 0xd8, 0x8b, 0x1f, 0xb2, 0xc4, 0x19, 0xcc, 0x4a, 0x2a, 0xf9,
-       0x38, 0x6c, 0x6f, 0x15, 0x69, 0x49, 0x52, 0xe9, 0xb3, 0xe8, 0x2b, 0x7a,
-       0x0e, 0x75, 0xd1, 0x6e, 0xd3, 0x52, 0x12, 0xbf, 0x4e, 0x69, 0x59, 0x0a,
-       0xf6, 0x4a, 0xcb, 0xd2, 0x5a, 0xff, 0x7c, 0x68, 0xc5, 0x3f, 0xe7, 0xfb,
-       0xb7, 0x75, 0x5c, 0xe1, 0x8b, 0xfa, 0x8c, 0x81, 0x32, 0x42, 0x7b, 0xa4,
-       0x7c, 0x63, 0xe8, 0xfd, 0x2f, 0xc2, 0xc7, 0x02, 0x0e, 0x2c, 0xc3, 0x97,
-       0xca, 0xf8, 0xf2, 0xac, 0x57, 0xf4, 0x73, 0x03, 0xbe, 0xbc, 0xe6, 0xb9,
-       0xc5, 0x82, 0x38, 0x6f, 0x53, 0xdf, 0xfd, 0x85, 0xf7, 0x4f, 0xe4, 0xfe,
-       0x76, 0xe7, 0xfe, 0x6c, 0xa8, 0xe8, 0xb7, 0xc2, 0xb7, 0xba, 0x31, 0x73,
-       0x58, 0xf6, 0x6f, 0x5f, 0x86, 0x0f, 0x9c, 0xbd, 0x11, 0x38, 0x2b, 0x51,
-       0x50, 0xba, 0xea, 0x75, 0xe5, 0xb7, 0x7d, 0xa2, 0xe7, 0xb0, 0x6c, 0xd9,
-       0xee, 0xd8, 0xd7, 0xc2, 0xc4, 0x40, 0x87, 0x25, 0x0f, 0xfd, 0x9f, 0x0f,
-       0xbb, 0xf6, 0x5e, 0x71, 0x46, 0x1e, 0x11, 0x9e, 0x0d, 0xba, 0xd2, 0x7d,
-       0xcc, 0x4d, 0x7c, 0x32, 0xd4, 0x7b, 0xf0, 0x93, 0xc0, 0xae, 0xdd, 0xe7,
-       0x98, 0xf7, 0x25, 0xb6, 0xdd, 0xc6, 0x73, 0x5c, 0xba, 0x4f, 0x25, 0x25,
-       0x05, 0xba, 0xf4, 0x29, 0x9a, 0xf0, 0x6c, 0x22, 0x21, 0xbd, 0xc7, 0x88,
-       0x49, 0x14, 0x6d, 0xfa, 0x40, 0x9b, 0x34, 0x68, 0x03, 0x9f, 0x66, 0x9b,
-       0x7d, 0x0d, 0xe9, 0x65, 0x49, 0x0d, 0x7e, 0x0f, 0xb4, 0xe9, 0x03, 0x6d,
-       0x7a, 0xcf, 0x25, 0xd1, 0x1e, 0x7d, 0x2c, 0x75, 0x23, 0x6d, 0x91, 0x5f,
-       0xbb, 0xbe, 0x13, 0xcf, 0xae, 0xa4, 0x8e, 0xc5, 0x30, 0x46, 0x48, 0xf6,
-       0xf4, 0x14, 0x65, 0x78, 0x3b, 0x30, 0x74, 0xfc, 0xb0, 0x5c, 0x81, 0x1d,
-       0x2a, 0xc3, 0x7f, 0x7b, 0x76, 0xd0, 0x19, 0x5b, 0x86, 0x2e, 0xad, 0xdf,
-       0xed, 0xcb, 0x37, 0xb6, 0x7f, 0xd3, 0x4f, 0x5c, 0xef, 0xdc, 0x2f, 0xa1,
-       0x01, 0x99, 0x2e, 0x2b, 0xfb, 0x90, 0xc8, 0x85, 0x15, 0xd6, 0xc1, 0x1a,
-       0x8b, 0xb0, 0x31, 0x3c, 0xf3, 0x74, 0xa1, 0xeb, 0x1f, 0x91, 0x87, 0x2a,
-       0x53, 0xf8, 0x01, 0x77, 0xcf, 0xb0, 0xee, 0x41, 0xe0, 0xed, 0x87, 0xe5,
-       0xc0, 0x0c, 0xb0, 0x58, 0x06, 0xf3, 0x1e, 0x70, 0x81, 0xcb, 0x33, 0xcd,
-       0xd2, 0x86, 0x32, 0xd0, 0x76, 0xac, 0xbe, 0x1e, 0xd7, 0x2e, 0x83, 0x0f,
-       0x83, 0xf2, 0x27, 0xf5, 0x01, 0xf9, 0x4a, 0xbd, 0x5f, 0xbe, 0x04, 0xdb,
-       0xf2, 0x5c, 0xbd, 0x0b, 0x7b, 0x25, 0x01, 0x9e, 0x64, 0xc0, 0x1f, 0x4f,
-       0xbe, 0x5c, 0x4f, 0xcb, 0x17, 0x41, 0xab, 0xe7, 0xf1, 0x1b, 0x2e, 0xa7,
-       0x65, 0x4f, 0xb9, 0x5f, 0xf3, 0x88, 0xfc, 0x71, 0x31, 0x1f, 0x17, 0x6b,
-       0x77, 0x9e, 0x29, 0x62, 0xff, 0x2d, 0xd4, 0xdd, 0xb7, 0xaa, 0x34, 0xb2,
-       0x6d, 0xb6, 0x9c, 0x59, 0xb1, 0x2f, 0x45, 0xdf, 0x76, 0x9d, 0xa3, 0x13,
-       0xe0, 0x43, 0x15, 0xfb, 0x74, 0x4c, 0xd1, 0x7e, 0xd5, 0xf6, 0x54, 0x03,
-       0xdb, 0x63, 0xd6, 0x37, 0x5b, 0x90, 0xef, 0x48, 0xee, 0xc4, 0xb4, 0xec,
-       0x3f, 0xe9, 0xcb, 0x6f, 0x7a, 0x3e, 0xe4, 0x98, 0xba, 0x78, 0x80, 0x3a,
-       0x3e, 0x39, 0x11, 0xb6, 0x94, 0x9f, 0x1b, 0x60, 0x8d, 0xef, 0x75, 0x60,
-       0xcf, 0xa6, 0xb3, 0xd6, 0x94, 0xa4, 0x4e, 0x4c, 0x49, 0xf7, 0x09, 0xc8,
-       0x82, 0xc7, 0xbe, 0x96, 0x6d, 0xeb, 0x1d, 0xf2, 0xc0, 0x71, 0x9c, 0xc1,
-       0xbc, 0xb8, 0xf6, 0x5b, 0x92, 0xc6, 0xf8, 0x87, 0xa4, 0x07, 0x6d, 0x5c,
-       0xb4, 0xb9, 0xa6, 0xc6, 0x6e, 0xc5, 0xd8, 0xcd, 0x72, 0x24, 0xee, 0x40,
-       0xd6, 0x68, 0xc3, 0xff, 0xaf, 0xe4, 0xaa, 0x4c, 0x7f, 0x24, 0xb9, 0x33,
-       0x6f, 0x37, 0x4b, 0x0b, 0x9f, 0xa1, 0x1a, 0xe6, 0x59, 0xde, 0x8d, 0x94,
-       0xe5, 0xae, 0x58, 0xc7, 0x7f, 0x22, 0xb9, 0xf3, 0x1c, 0xfb, 0x2d, 0x94,
-       0x7f, 0x43, 0x72, 0xc7, 0x7f, 0x8a, 0xfc, 0x15, 0xa4, 0x6f, 0x23, 0x1d,
-       0x93, 0xee, 0xe3, 0xf0, 0x91, 0xcf, 0x7f, 0x1b, 0x79, 0xf8, 0x74, 0xe7,
-       0x8f, 0xa0, 0xde, 0x6e, 0xcc, 0xef, 0xde, 0x18, 0xb0, 0x06, 0x74, 0x5e,
-       0xec, 0xba, 0x60, 0xfe, 0x2c, 0x67, 0x19, 0xdf, 0x1d, 0x81, 0x4e, 0xfb,
-       0x1f, 0xd0, 0x69, 0xfa, 0x79, 0x81, 0x79, 0xea, 0x36, 0x3e, 0x4f, 0x81,
-       0x26, 0x87, 0x90, 0xf7, 0xe5, 0x61, 0x8f, 0xf6, 0x66, 0xa7, 0x8c, 0xdb,
-       0x45, 0xbf, 0x05, 0xb8, 0xa2, 0x15, 0xfb, 0x60, 0x6a, 0xc7, 0xc6, 0xfb,
-       0xe0, 0x68, 0xef, 0x61, 0xd9, 0xb4, 0xdd, 0xac, 0xdf, 0xac, 0xd7, 0xb5,
-       0x7f, 0xa8, 0xe8, 0xe0, 0x14, 0x3f, 0x29, 0x5c, 0x87, 0x9b, 0x78, 0xd2,
-       0xea, 0xbd, 0xff, 0x21, 0xec, 0x03, 0xeb, 0x3c, 0xf3, 0xc1, 0x3e, 0xb0,
-       0xce, 0x43, 0x37, 0xcc, 0xc3, 0x47, 0x9b, 0xef, 0x92, 0xe6, 0xe3, 0xab,
-       0xfb, 0xa0, 0xe9, 0xf8, 0xcf, 0xdf, 0x07, 0xcd, 0xe7, 0x51, 0xef, 0x3c,
-       0x69, 0x86, 0x3e, 0xce, 0x90, 0x66, 0x9d, 0x48, 0x1f, 0xc1, 0x5a, 0x39,
-       0xf7, 0x66, 0xcc, 0x3d, 0xc0, 0x45, 0x1f, 0x82, 0xbc, 0x7f, 0x62, 0xfb,
-       0x21, 0x5d, 0xfe, 0x9f, 0xfd, 0x91, 0xb8, 0x53, 0x91, 0x10, 0x69, 0x8a,
-       0xba, 0x55, 0xd2, 0xf0, 0x79, 0xd0, 0xe6, 0xa0, 0x74, 0x93, 0x7e, 0xd5,
-       0xbd, 0xc8, 0x17, 0xfd, 0x28, 0x7d, 0x74, 0x45, 0x4f, 0xe0, 0xa4, 0x01,
-       0x96, 0xbf, 0x0a, 0x99, 0x21, 0xc6, 0x7c, 0x5d, 0xf6, 0xcf, 0xf8, 0x32,
-       0xee, 0x71, 0xfd, 0x6f, 0x62, 0xfd, 0xd9, 0xed, 0x71, 0x59, 0x4e, 0xc6,
-       0x41, 0x93, 0x05, 0xe8, 0xf6, 0x2b, 0x12, 0xd0, 0x81, 0x31, 0xe7, 0x3d,
-       0xe2, 0x26, 0x86, 0xc5, 0x4d, 0x7f, 0x0f, 0x74, 0x18, 0x86, 0xec, 0xe7,
-       0xeb, 0x94, 0x9d, 0x57, 0x64, 0x08, 0x32, 0xf1, 0x86, 0xe7, 0xa4, 0x81,
-       0x85, 0xa0, 0x2f, 0x28, 0x17, 0x94, 0x89, 0x36, 0xa5, 0x93, 0xe6, 0x3d,
-       0xe7, 0xa9, 0xaa, 0xdc, 0x2a, 0xf3, 0x0a, 0x9b, 0xe2, 0xdd, 0x71, 0x65,
-       0x2f, 0xd2, 0x13, 0x56, 0x0f, 0x74, 0x74, 0x5a, 0xec, 0xde, 0x9b, 0x9b,
-       0xcd, 0x3d, 0x85, 0xc2, 0x89, 0x90, 0x4c, 0xf5, 0x92, 0x57, 0xec, 0x17,
-       0xf9, 0x6a, 0xd1, 0x8f, 0xb8, 0x6f, 0xf9, 0xa7, 0x3b, 0x93, 0xf2, 0xe9,
-       0xde, 0x15, 0xb9, 0xac, 0x88, 0x04, 0xfb, 0x62, 0x48, 0xf1, 0xc3, 0xcc,
-       0xdb, 0xac, 0xc5, 0xbc, 0xeb, 0x6f, 0x78, 0xc7, 0xb5, 0x50, 0xd6, 0x57,
-       0xf6, 0x4e, 0xf2, 0x9d, 0x73, 0xfd, 0x5d, 0xd0, 0xcc, 0x79, 0xaa, 0x24,
-       0xaf, 0x41, 0xf6, 0x40, 0xc3, 0xf3, 0x4c, 0x49, 0xc3, 0x29, 0xc8, 0xfd,
-       0xab, 0xb2, 0xe7, 0x04, 0xf7, 0xcc, 0xab, 0x58, 0xab, 0xd2, 0x25, 0xd0,
-       0x11, 0xec, 0xcf, 0x97, 0x69, 0x8f, 0xb1, 0x92, 0x5b, 0x13, 0x93, 0xf0,
-       0xe1, 0x26, 0x6c, 0x5f, 0x96, 0xbc, 0xa2, 0x2c, 0x0d, 0xa2, 0x4d, 0xf5,
-       0x11, 0xfc, 0xda, 0xf4, 0xda, 0x3e, 0x0b, 0xba, 0x3b, 0xc9, 0x8a, 0xf5,
-       0x19, 0xd0, 0xfd, 0x61, 0x49, 0x1d, 0x5f, 0xd1, 0x35, 0x90, 0xbb, 0x40,
-       0xd7, 0xa4, 0xce, 0xdb, 0x52, 0x2d, 0xbb, 0xf2, 0x71, 0xea, 0x90, 0x32,
-       0xd7, 0x05, 0x1d, 0xc3, 0xf3, 0xdb, 0x32, 0xf4, 0x4c, 0x19, 0x3a, 0x05,
-       0x3a, 0xe4, 0x4b, 0x28, 0xff, 0x22, 0xea, 0x3c, 0x0f, 0x9f, 0xe7, 0x39,
-       0x60, 0xbf, 0x8b, 0xc0, 0x14, 0x17, 0xca, 0x59, 0xed, 0x1b, 0xaa, 0xf5,
-       0xc2, 0x66, 0x29, 0x7f, 0x45, 0xaa, 0x15, 0xd2, 0xe3, 0x27, 0x8a, 0xb7,
-       0x39, 0x6f, 0x2b, 0x71, 0x16, 0x66, 0x26, 0x52, 0xa9, 0x18, 0x9a, 0x50,
-       0xf7, 0x31, 0xf6, 0x6f, 0x74, 0x65, 0xeb, 0x3a, 0x5d, 0x29, 0xf2, 0x62,
-       0x2d, 0xc0, 0x93, 0xc4, 0xc7, 0xa5, 0x99, 0xe4, 0xca, 0x19, 0x59, 0x09,
-       0x76, 0xf3, 0x32, 0xfc, 0x92, 0x58, 0xe6, 0x5b, 0x12, 0x3b, 0xe5, 0xfb,
-       0xdf, 0x87, 0xdd, 0x2c, 0x82, 0x27, 0x56, 0x08, 0xe5, 0x8b, 0x7c, 0x47,
-       0xb9, 0xa7, 0x6c, 0x87, 0x18, 0x2b, 0x97, 0x97, 0x51, 0x56, 0x55, 0x3e,
-       0xd3, 0xb7, 0x31, 0x1f, 0x3d, 0x3f, 0x55, 0xc6, 0x7a, 0xcd, 0x92, 0x1f,
-       0x4f, 0xcb, 0xe3, 0xe5, 0x6d, 0x76, 0x33, 0xda, 0x57, 0x16, 0xd9, 0xc6,
-       0x19, 0xe4, 0x95, 0x9d, 0x97, 0x17, 0x59, 0xde, 0x25, 0x57, 0x66, 0x32,
-       0x6a, 0x0e, 0xd5, 0xb9, 0x8c, 0x04, 0x31, 0x49, 0xea, 0x2b, 0xce, 0x15,
-       0x79, 0xfa, 0x96, 0x65, 0xda, 0xd9, 0x88, 0x14, 0x13, 0xa4, 0x75, 0x42,
-       0x2e, 0xcf, 0xc4, 0x37, 0x31, 0x86, 0x93, 0x73, 0xf9, 0x6c, 0x62, 0x07,
-       0xf6, 0xfb, 0x88, 0x1d, 0x30, 0x5e, 0x10, 0x81, 0x2d, 0x53, 0x31, 0x04,
-       0xa4, 0xc9, 0x06, 0x9f, 0x95, 0xef, 0x03, 0x6c, 0xb4, 0x8a, 0x1f, 0x89,
-       0x27, 0xb9, 0x5e, 0xa7, 0xb8, 0x0c, 0xfd, 0xd1, 0x91, 0x79, 0x49, 0xee,
-       0x99, 0x0f, 0xd6, 0x67, 0x9d, 0x11, 0xde, 0xd3, 0x90, 0x6b, 0x73, 0x8e,
-       0x77, 0x15, 0x98, 0x22, 0x1f, 0xf7, 0xc0, 0xaf, 0x3f, 0x8b, 0x41, 0x7f,
-       0x0d, 0x66, 0xad, 0x3d, 0x9b, 0x02, 0x7c, 0x16, 0x91, 0xa9, 0x19, 0x9e,
-       0xa9, 0x41, 0xb7, 0x01, 0x43, 0xfe, 0xf3, 0x08, 0x9e, 0x6b, 0xcc, 0xc3,
-       0x4f, 0x0b, 0x7c, 0x50, 0x3c, 0x07, 0xfd, 0x91, 0xe6, 0xd6, 0x3c, 0xd7,
-       0x1e, 0x92, 0x7b, 0x80, 0x4e, 0x04, 0xfd, 0x77, 0xeb, 0xb1, 0xba, 0xcf,
-       0xa4, 0x19, 0xc3, 0x93, 0x14, 0xf4, 0x45, 0x6e, 0x2e, 0x82, 0xb1, 0xba,
-       0x34, 0x36, 0xe7, 0xbb, 0xf5, 0xd8, 0xd3, 0xf8, 0x78, 0x69, 0x79, 0xa2,
-       0x6c, 0xb0, 0x5e, 0x1a, 0x36, 0x56, 0x22, 0x23, 0x7d, 0xbe, 0x7c, 0xdf,
-       0x23, 0xbd, 0xfa, 0x91, 0xf7, 0xe4, 0x68, 0xfd, 0xdd, 0xce, 0xce, 0x1a,
-       0xff, 0x5a, 0x31, 0x47, 0xfe, 0x30, 0x3f, 0xe0, 0x23, 0xce, 0xdd, 0x82,
-       0x3d, 0x2f, 0x01, 0x77, 0x59, 0xe7, 0xba, 0xd4, 0x3b, 0x0b, 0xd8, 0xa0,
-       0x3a, 0x03, 0xdd, 0x78, 0x8e, 0xe7, 0x89, 0xd0, 0x6d, 0xe7, 0xa2, 0x52,
-       0x9a, 0xa5, 0x5c, 0x4a, 0x87, 0x05, 0x7e, 0xb1, 0x7e, 0x75, 0xa6, 0x0b,
-       0x69, 0x2b, 0xd2, 0xa4, 0xea, 0xa7, 0x3a, 0xe3, 0xaa, 0xf6, 0xd5, 0x99,
-       0xb4, 0x6a, 0x57, 0x9d, 0xe9, 0x47, 0xea, 0x49, 0xd3, 0x39, 0x38, 0x4e,
-       0xe7, 0x7a, 0x65, 0xea, 0x34, 0xec, 0xcb, 0x80, 0xa5, 0xce, 0xe2, 0x27,
-       0x60, 0x7f, 0x22, 0xf0, 0xb2, 0xae, 0xda, 0x83, 0xc0, 0x58, 0x3b, 0x81,
-       0x41, 0x76, 0x8a, 0x7b, 0x8a, 0xeb, 0xa7, 0xee, 0xbd, 0xcc, 0x78, 0x52,
-       0xe2, 0x41, 0xc9, 0xca, 0x81, 0xd9, 0x66, 0xec, 0xd7, 0x88, 0x5d, 0x92,
-       0x1e, 0x7b, 0x18, 0xf9, 0x42, 0x85, 0x74, 0xbb, 0x4f, 0xf9, 0x6e, 0x39,
-       0xef, 0x1c, 0x78, 0x92, 0xc1, 0x18, 0xef, 0xa7, 0x7d, 0x1f, 0xe4, 0xcf,
-       0xd5, 0x7d, 0x64, 0x30, 0x9f, 0x46, 0x7a, 0xf0, 0x1c, 0x31, 0xfb, 0x73,
-       0xce, 0x11, 0x29, 0xd7, 0xa4, 0xef, 0x7d, 0x72, 0xd9, 0xcd, 0xc8, 0xcb,
-       0x6e, 0x5a, 0xae, 0xb8, 0x3b, 0xe4, 0xeb, 0xb0, 0xd3, 0x2f, 0xb9, 0x7d,
-       0x9b, 0x88, 0x05, 0xaa, 0xea, 0x6c, 0xc6, 0xf0, 0xca, 0xd5, 0xf1, 0xc4,
-       0x1f, 0xc8, 0xd2, 0x0c, 0xb1, 0xb3, 0xbf, 0x7b, 0xbf, 0x57, 0xa4, 0xdd,
-       0xc2, 0x1c, 0x88, 0xd5, 0x8a, 0xb0, 0x7f, 0x87, 0x65, 0xd8, 0xa3, 0xdd,
-       0x53, 0x36, 0x2a, 0x31, 0x1c, 0xec, 0x67, 0xaf, 0x00, 0xbd, 0x7a, 0x79,
-       0x16, 0xfb, 0x49, 0x28, 0xff, 0x78, 0xae, 0x90, 0xef, 0xae, 0x3c, 0x59,
-       0xe6, 0x3a, 0x4b, 0xd7, 0xb5, 0x48, 0x58, 0x46, 0x14, 0x5e, 0x68, 0x93,
-       0x17, 0x17, 0x37, 0x8b, 0x05, 0x0b, 0x65, 0xdd, 0x12, 0x55, 0xb7, 0x18,
-       0xe8, 0x7f, 0x4b, 0x3b, 0xef, 0x22, 0xbd, 0x05, 0xda, 0x30, 0x16, 0x80,
-       0xb5, 0xb5, 0x73, 0x25, 0x26, 0xdf, 0x8f, 0xfd, 0xf5, 0x96, 0xda, 0x6b,
-       0x79, 0x37, 0x8e, 0x67, 0xa6, 0xdc, 0x73, 0x8c, 0x3b, 0x85, 0x75, 0xfc,
-       0xf7, 0xaf, 0xd4, 0xfb, 0x66, 0x77, 0x17, 0x70, 0x1d, 0xe5, 0x15, 0xe9,
-       0x52, 0x30, 0x6e, 0x1e, 0x38, 0xae, 0xd0, 0xcf, 0x3b, 0x14, 0x4e, 0xba,
-       0x88, 0xbd, 0x30, 0xa1, 0xea, 0xef, 0xc4, 0x7e, 0xda, 0xd4, 0x42, 0xfc,
-       0xb0, 0x07, 0xb2, 0xf8, 0xd2, 0x0c, 0x9f, 0xf9, 0x9e, 0xfe, 0x15, 0xe3,
-       0x6b, 0x17, 0x46, 0xa7, 0xdd, 0xdf, 0xd2, 0xfb, 0x47, 0x42, 0x77, 0xf5,
-       0x01, 0x87, 0x1e, 0x6b, 0xc2, 0x5a, 0x9c, 0x64, 0x32, 0x64, 0x75, 0x5a,
-       0xc0, 0xf1, 0xc3, 0xca, 0xe6, 0xf6, 0x61, 0xfe, 0x69, 0x39, 0x93, 0x6e,
-       0x93, 0xaa, 0xed, 0xaa, 0x3b, 0x57, 0xcb, 0xf6, 0x76, 0x62, 0x7d, 0xfc,
-       0x36, 0xa1, 0xac, 0x07, 0x69, 0x33, 0xd2, 0xdb, 0xa4, 0x74, 0xb2, 0xaf,
-       0x25, 0xe8, 0x2f, 0xba, 0x2e, 0xff, 0x75, 0x3d, 0xce, 0x5f, 0x6a, 0x7f,
-       0x8a, 0xe3, 0x44, 0xc5, 0xfd, 0x7c, 0xab, 0xf4, 0x1c, 0xb3, 0x81, 0x6d,
-       0x13, 0xc0, 0xba, 0x5d, 0x92, 0x3e, 0x96, 0x94, 0x5b, 0x8e, 0x99, 0x38,
-       0xd1, 0x97, 0x47, 0x53, 0x2a, 0x66, 0xf8, 0xa5, 0x51, 0xb7, 0xa2, 0xce,
-       0x53, 0xf5, 0xdd, 0xb0, 0x65, 0x7d, 0x67, 0xec, 0x1b, 0xa3, 0x7d, 0x2a,
-       0xfd, 0xf6, 0x68, 0x5a, 0xa5, 0xaf, 0x8c, 0xde, 0x52, 0x0b, 0xfc, 0xa3,
-       0xd2, 0x42, 0x5a, 0x3e, 0x57, 0x26, 0xbe, 0x1c, 0x00, 0x76, 0xf4, 0xa0,
-       0x67, 0xfa, 0xa1, 0x67, 0xd2, 0xd0, 0x33, 0x83, 0xd4, 0x33, 0xd0, 0xdb,
-       0xaf, 0x40, 0x6f, 0x7b, 0xf2, 0x06, 0xe4, 0xf5, 0x82, 0xd7, 0x0c, 0x5c,
-       0xe8, 0xfb, 0xc1, 0x5a, 0x9d, 0xa7, 0x96, 0xc1, 0xdf, 0xea, 0x59, 0x89,
-       0xb5, 0x43, 0x07, 0x6d, 0x9f, 0x6f, 0x92, 0x85, 0xb8, 0xef, 0x9f, 0xf0,
-       0x5c, 0xb9, 0x86, 0xfa, 0x39, 0x97, 0xfb, 0x78, 0xa2, 0x85, 0xfe, 0xd8,
-       0xb5, 0x99, 0x1d, 0xd0, 0x49, 0x94, 0xf7, 0x98, 0x54, 0xc7, 0x13, 0xb2,
-       0x08, 0xff, 0x6c, 0xb5, 0x4e, 0x1a, 0xcf, 0xdc, 0xff, 0xff, 0x12, 0x75,
-       0xd3, 0xb0, 0x0f, 0xb6, 0x2c, 0xf5, 0x25, 0xe5, 0x4c, 0x9f, 0x33, 0x98,
-       0xb4, 0xa8, 0xbb, 0x92, 0x52, 0x81, 0xaf, 0x5f, 0x2d, 0xb3, 0x3e, 0xeb,
-       0x61, 0x7f, 0x96, 0x83, 0x76, 0xd3, 0x65, 0xa3, 0x27, 0x20, 0x9f, 0x73,
-       0x8c, 0x03, 0x06, 0x36, 0xc0, 0xb2, 0x9a, 0x21, 0x07, 0x1e, 0xe8, 0x3f,
-       0x8e, 0xf2, 0x01, 0xde, 0x25, 0x40, 0x19, 0xb1, 0x50, 0x49, 0xf1, 0x38,
-       0xef, 0x8d, 0xa3, 0x8c, 0x6d, 0x9c, 0x44, 0x0a, 0xe5, 0x63, 0x92, 0x4a,
-       0x14, 0xd4, 0xbd, 0xa6, 0x4e, 0x94, 0xb1, 0x8f, 0xb0, 0x8e, 0xc7, 0xcc,
-       0xb6, 0x50, 0x8e, 0xc2, 0xae, 0x29, 0xdf, 0xa6, 0x62, 0x03, 0x59, 0xdb,
-       0xc3, 0x7e, 0x60, 0x59, 0xca, 0x66, 0xbb, 0xbc, 0xe7, 0x29, 0x5d, 0x78,
-       0xaf, 0x3e, 0xb7, 0xb8, 0xa7, 0xd6, 0x2a, 0xf9, 0x5a, 0xd3, 0x7b, 0xe8,
-       0x7f, 0xb3, 0x27, 0x2f, 0x27, 0x6c, 0xe1, 0x19, 0x7b, 0xb0, 0xcf, 0x23,
-       0x3b, 0xb8, 0x27, 0x40, 0x77, 0xd8, 0xdf, 0xe7, 0xb1, 0xde, 0xe7, 0x60,
-       0x7f, 0x2f, 0xc2, 0xfe, 0x5e, 0x28, 0xaf, 0xea, 0x8f, 0xc0, 0xee, 0x52,
-       0x07, 0x3c, 0x03, 0x9e, 0x8d, 0x01, 0xf7, 0xef, 0x85, 0x3f, 0x30, 0x02,
-       0xec, 0x3f, 0x04, 0xfe, 0x65, 0xc0, 0xbb, 0x71, 0xde, 0x45, 0x01, 0x1f,
-       0x07, 0xd5, 0x59, 0xe6, 0xac, 0x3a, 0xcf, 0xff, 0x81, 0xb2, 0xbd, 0x8f,
-       0x97, 0x2d, 0xd8, 0x87, 0xa2, 0x7f, 0x9d, 0xeb, 0x00, 0xff, 0xad, 0xec,
-       0xe7, 0xc1, 0x17, 0xa1, 0x57, 0x7e, 0x8c, 0x79, 0x3d, 0x37, 0x4b, 0x7b,
-       0x8e, 0x3a, 0x01, 0xde, 0xf6, 0x18, 0xeb, 0xc2, 0x7e, 0x3e, 0x7a, 0x59,
-       0x96, 0x81, 0x3b, 0xb2, 0x94, 0x63, 0xf8, 0x0f, 0xce, 0x85, 0x8a, 0xf4,
-       0x52, 0x07, 0x02, 0x13, 0x0d, 0xca, 0xc0, 0xf1, 0x04, 0xb0, 0x1e, 0x90,
-       0xbc, 0x3a, 0xaf, 0xc3, 0xf3, 0xf9, 0x2d, 0x62, 0x11, 0xef, 0x79, 0x3c,
-       0x9b, 0xa1, 0xde, 0x30, 0x18, 0x69, 0x79, 0xb0, 0x43, 0xb2, 0xdb, 0x3b,
-       0x94, 0xee, 0x70, 0xbc, 0x97, 0x31, 0xee, 0x1e, 0xb8, 0x20, 0x6f, 0x00,
-       0x21, 0x58, 0x99, 0x43, 0xf2, 0xbf, 0x3c, 0xc6, 0xa8, 0x02, 0xdf, 0x0f,
-       0x73, 0x89, 0x81, 0x66, 0x9b, 0xf6, 0xbb, 0x76, 0x6c, 0x4f, 0x9d, 0xfd,
-       0xc7, 0x14, 0xc6, 0xca, 0x0b, 0xfb, 0x87, 0x9d, 0xc0, 0x98, 0xa9, 0xe3,
-       0x94, 0xfd, 0x6d, 0xe0, 0xdb, 0x3f, 0x05, 0x06, 0x22, 0x55, 0x87, 0x36,
-       0x07, 0xfb, 0x85, 0xf3, 0x5f, 0x26, 0x9e, 0x60, 0x4c, 0x3d, 0xf0, 0xcb,
-       0x57, 0xe6, 0xb6, 0x13, 0xf6, 0xeb, 0xb6, 0xcd, 0x94, 0x81, 0x71, 0x0f,
-       0x7e, 0xdf, 0xf1, 0xc0, 0x5e, 0x77, 0x9f, 0x47, 0xab, 0x13, 0xd2, 0xc9,
-       0xd3, 0x4e, 0x4b, 0x6e, 0x91, 0x8f, 0x44, 0x82, 0x7e, 0xac, 0x79, 0x1b,
-       0xb2, 0x4a, 0x3d, 0xd0, 0x09, 0x39, 0x67, 0x9e, 0x3a, 0x85, 0x3a, 0x81,
-       0xb2, 0xe0, 0x4a, 0xa9, 0x0e, 0x9d, 0xd0, 0xd6, 0x25, 0x15, 0xd2, 0x6c,
-       0x9e, 0x7a, 0xe2, 0x07, 0x32, 0xbd, 0x4e, 0x57, 0x0e, 0x89, 0xf1, 0x6b,
-       0x5b, 0x25, 0x9a, 0x71, 0xed, 0x7b, 0xd5, 0x1a, 0x03, 0x7d, 0x79, 0x80,
-       0xf8, 0x73, 0x36, 0xeb, 0x74, 0x88, 0xc6, 0x9e, 0x0a, 0x3f, 0xbd, 0x89,
-       0xb5, 0xb2, 0x0f, 0x45, 0xa7, 0xc1, 0xa1, 0xc0, 0x17, 0x50, 0x31, 0x3f,
-       0xe0, 0xe0, 0xc4, 0x8f, 0xa1, 0x6b, 0xf3, 0xc4, 0x25, 0xa0, 0x73, 0xf7,
-       0x09, 0xca, 0xd1, 0x75, 0xea, 0x6c, 0xbc, 0x62, 0xa5, 0xa9, 0xaf, 0x65,
-       0xf1, 0x38, 0x30, 0x97, 0xb5, 0x4b, 0x0a, 0x94, 0x57, 0x9e, 0x7d, 0x2f,
-       0x5a, 0x32, 0x3d, 0xd7, 0x26, 0x3d, 0xf3, 0x8c, 0xaf, 0xee, 0x6e, 0x91,
-       0x36, 0xc6, 0x58, 0x69, 0x83, 0x06, 0x24, 0x8f, 0xf2, 0xee, 0xf9, 0xb0,
-       0x8a, 0x87, 0x55, 0x2c, 0xd2, 0xa8, 0x1f, 0xfa, 0xc0, 0x49, 0x2f, 0x5b,
-       0xff, 0x25, 0x16, 0x60, 0x48, 0xc8, 0x52, 0x19, 0x32, 0x56, 0x86, 0x8c,
-       0x95, 0x21, 0x63, 0x65, 0xc8, 0x18, 0xb0, 0xdf, 0x73, 0xd8, 0x7f, 0x17,
-       0xcb, 0x83, 0xda, 0xae, 0xdf, 0xaf, 0xec, 0xfa, 0x91, 0x32, 0xcf, 0xf0,
-       0xe9, 0x83, 0x26, 0x95, 0x0e, 0xb9, 0xa4, 0x7c, 0x51, 0xe3, 0xa3, 0xbe,
-       0x22, 0xcf, 0xcc, 0xbe, 0x2a, 0x67, 0x66, 0x57, 0x71, 0xe0, 0x54, 0xd9,
-       0x97, 0x97, 0x3d, 0xf8, 0x9f, 0x0b, 0xc4, 0x54, 0xd9, 0xf6, 0x66, 0x85,
-       0xad, 0x0e, 0x4b, 0x41, 0xe1, 0x64, 0x65, 0x47, 0x80, 0xaf, 0x14, 0x2e,
-       0xe4, 0xde, 0x94, 0x8e, 0xed, 0xaf, 0xc9, 0x45, 0xd8, 0xf1, 0xc5, 0xfa,
-       0xeb, 0xf2, 0xbc, 0xc2, 0xe3, 0xa4, 0xc3, 0x07, 0xe4, 0x47, 0x76, 0x70,
-       0x4e, 0x7c, 0x06, 0x58, 0x63, 0xb1, 0x8f, 0xba, 0x23, 0x02, 0x5b, 0xe0,
-       0x14, 0xbb, 0xb1, 0xaf, 0x0f, 0x5a, 0x37, 0x00, 0xd3, 0xf0, 0xfd, 0x16,
-       0x79, 0x71, 0xb6, 0xd8, 0x20, 0x13, 0xd4, 0x0f, 0xce, 0x51, 0xb1, 0x68,
-       0xa7, 0x68, 0x37, 0xb9, 0x5e, 0xda, 0xa9, 0x3f, 0xd8, 0xcc, 0xb3, 0xd4,
-       0xea, 0xc9, 0x73, 0x2d, 0x8c, 0x37, 0xc6, 0x5d, 0xd2, 0xf4, 0x35, 0x39,
-       0x58, 0x63, 0xd9, 0xab, 0xe0, 0x0f, 0xd3, 0xef, 0xf9, 0xf7, 0xc4, 0x39,
-       0x1e, 0xfb, 0x05, 0x6e, 0xea, 0xc4, 0x5a, 0xcb, 0x7f, 0xa9, 0x63, 0x5e,
-       0xfd, 0x0a, 0x47, 0xbf, 0x13, 0x2f, 0x9b, 0x7b, 0x0d, 0xaf, 0xa9, 0x78,
-       0xe0, 0x06, 0x71, 0xe2, 0xa7, 0xb0, 0xaf, 0x8a, 0x57, 0x85, 0x31, 0x4b,
-       0xc6, 0x73, 0x19, 0x2b, 0x6e, 0xd4, 0x18, 0xea, 0xbc, 0x54, 0xee, 0x86,
-       0x7e, 0xb9, 0x07, 0xfa, 0xe5, 0xde, 0x77, 0xdc, 0xaf, 0x35, 0x71, 0xfb,
-       0x9e, 0x62, 0xd8, 0xea, 0x92, 0xb1, 0x5a, 0x63, 0x5b, 0xc6, 0x71, 0x37,
-       0x8a, 0xdb, 0x32, 0xa6, 0x9b, 0x5e, 0x17, 0x0b, 0xa4, 0x6c, 0xf8, 0xf2,
-       0x92, 0xc7, 0xb8, 0x9b, 0xb9, 0x9b, 0xbd, 0x11, 0xfe, 0xfa, 0xc3, 0xcd,
-       0x26, 0xe6, 0x1c, 0xc9, 0x5c, 0x15, 0xde, 0xd1, 0x2e, 0xcd, 0x10, 0x0f,
-       0xa8, 0xb3, 0x40, 0x15, 0xbb, 0xce, 0x07, 0xf1, 0x03, 0x94, 0xc3, 0xea,
-       0xc2, 0xdf, 0x61, 0xec, 0xda, 0xde, 0xe1, 0xd8, 0x63, 0xe1, 0xe0, 0xae,
-       0x1f, 0xf7, 0x72, 0xa0, 0xcb, 0x20, 0x8b, 0xf5, 0xd5, 0x3b, 0x74, 0x43,
-       0x4a, 0x5f, 0x5c, 0xc5, 0x1e, 0x20, 0xbf, 0xe0, 0x2f, 0x60, 0x9f, 0x4c,
-       0x41, 0x3f, 0x15, 0x54, 0x7f, 0x31, 0xca, 0x45, 0x36, 0x17, 0xb6, 0x24,
-       0x7a, 0x8a, 0xbe, 0x50, 0x10, 0x6b, 0xc9, 0x87, 0x1d, 0xa5, 0xbf, 0x31,
-       0x77, 0xe0, 0x33, 0xee, 0xcf, 0xe4, 0x44, 0x73, 0xa6, 0x09, 0x76, 0x15,
-       0xfc, 0xab, 0x33, 0x26, 0x80, 0xbd, 0xbb, 0xf4, 0x5d, 0x39, 0x30, 0x77,
-       0x69, 0x73, 0x20, 0xff, 0x8c, 0x23, 0x73, 0x7d, 0x66, 0x0e, 0x6b, 0xfb,
-       0xb6, 0x4e, 0x49, 0xac, 0x05, 0x36, 0xed, 0xa3, 0xa7, 0x88, 0x07, 0x9a,
-       0x65, 0x39, 0xce, 0x7e, 0x83, 0x3d, 0x33, 0x5d, 0x66, 0xdf, 0xdf, 0x95,
-       0xe1, 0xb9, 0x74, 0x2b, 0xf5, 0xc8, 0x12, 0xf4, 0xc0, 0x65, 0x9b, 0x36,
-       0x74, 0x1c, 0x36, 0xae, 0x53, 0xde, 0x9c, 0xa3, 0x7d, 0x4c, 0xd9, 0x67,
-       0x64, 0x5b, 0xe2, 0x0c, 0xe6, 0xf4, 0x84, 0x17, 0xa1, 0x8f, 0xe6, 0x0f,
-       0xa1, 0xec, 0xeb, 0x92, 0xb2, 0xbb, 0x43, 0x7c, 0xde, 0x66, 0x3f, 0x29,
-       0xbc, 0x6f, 0x90, 0xb2, 0x6f, 0x0d, 0x51, 0x8e, 0xe0, 0x73, 0x2f, 0xad,
-       0xce, 0xf3, 0x7b, 0x73, 0xca, 0x4f, 0x52, 0x7a, 0x66, 0xc9, 0xe3, 0x78,
-       0x97, 0xb4, 0x6e, 0xbb, 0x15, 0xfa, 0x24, 0xa6, 0xcf, 0xc2, 0xd0, 0x86,
-       0xd8, 0xc6, 0x8b, 0xe8, 0xfc, 0x67, 0x25, 0x77, 0x3a, 0x0e, 0x7d, 0xc6,
-       0xbe, 0x8c, 0xef, 0x40, 0x1b, 0x69, 0xf0, 0x36, 0xed, 0xdd, 0x2e, 0xd8,
-       0xbd, 0x9b, 0xd4, 0x7c, 0x46, 0xbc, 0x7e, 0x99, 0x3a, 0xc9, 0xb1, 0xfb,
-       0xa0, 0xcb, 0x13, 0x4a, 0x6e, 0x4b, 0xe5, 0xcb, 0x89, 0x18, 0x74, 0x72,
-       0x6c, 0x3b, 0xe9, 0xf9, 0x61, 0xb9, 0xd3, 0x1d, 0x97, 0xbb, 0x20, 0x3b,
-       0x43, 0xae, 0x27, 0xc3, 0xe0, 0xc5, 0x1e, 0x17, 0x76, 0x47, 0x61, 0xe8,
-       0x66, 0xf8, 0x5d, 0x1c, 0x9b, 0xf7, 0xc4, 0xd9, 0x36, 0xc0, 0x8f, 0x7f,
-       0x54, 0x0f, 0x68, 0x94, 0x9b, 0xfb, 0x88, 0xa2, 0xcd, 0x88, 0xb7, 0x53,
-       0xdb, 0xd9, 0x36, 0xc9, 0xab, 0x7a, 0x3b, 0x95, 0x3d, 0x2e, 0x2d, 0xde,
-       0x87, 0x14, 0xb6, 0x79, 0x11, 0xfa, 0x06, 0x98, 0xbb, 0x54, 0xdb, 0x81,
-       0x3c, 0x6c, 0xe8, 0x62, 0x06, 0xe9, 0x87, 0x91, 0xb2, 0x6e, 0xa8, 0x35,
-       0x88, 0xe5, 0x1a, 0x3c, 0xba, 0x7a, 0xbf, 0xf0, 0xa3, 0x0a, 0x97, 0x5e,
-       0x55, 0xf7, 0xcb, 0x2c, 0x60, 0x9d, 0x1c, 0xf4, 0x4a, 0x2b, 0x30, 0xd0,
-       0xcc, 0x29, 0x27, 0x3d, 0x1c, 0xda, 0x2d, 0xbf, 0x06, 0x5f, 0xbe, 0xea,
-       0x91, 0x97, 0x3b, 0xe4, 0xc1, 0x3b, 0x28, 0x23, 0xbb, 0x65, 0xff, 0x1d,
-       0x21, 0xd9, 0xdf, 0xef, 0x64, 0x39, 0xef, 0x5b, 0x6e, 0x33, 0xfe, 0x74,
-       0xcf, 0x48, 0x2a, 0x34, 0x20, 0x4f, 0x42, 0xc6, 0x8a, 0x90, 0xaf, 0xe1,
-       0x3a, 0x69, 0x4e, 0x7d, 0x4f, 0x3d, 0x9f, 0x06, 0x56, 0x36, 0xd8, 0xcf,
-       0x95, 0x99, 0x7a, 0x93, 0x24, 0xaf, 0x67, 0x3c, 0x39, 0x19, 0x9c, 0x71,
-       0x5c, 0x4f, 0x99, 0x80, 0x0f, 0x72, 0x7d, 0xb0, 0x3f, 0xd5, 0xbd, 0x2e,
-       0xf5, 0x1c, 0xa7, 0xff, 0xeb, 0x13, 0xe7, 0x15, 0x14, 0x5f, 0x68, 0x23,
-       0x98, 0xfe, 0xbb, 0xd6, 0x15, 0x7c, 0xd7, 0x46, 0xff, 0x61, 0x67, 0xeb,
-       0xea, 0xbd, 0xf4, 0xf5, 0xb2, 0x68, 0xe2, 0x6e, 0x15, 0xac, 0x99, 0x36,
-       0xdd, 0xb1, 0xa9, 0x0b, 0xdb, 0xdd, 0xfb, 0xe5, 0x4f, 0x60, 0xdf, 0xbf,
-       0xb2, 0x62, 0xdf, 0xf7, 0x81, 0x1e, 0xeb, 0x31, 0x80, 0x6b, 0xdf, 0x8d,
-       0xb5, 0x8c, 0x80, 0x9f, 0x77, 0xe1, 0x77, 0x67, 0x79, 0x4d, 0x1c, 0x6f,
-       0xb6, 0x08, 0x3c, 0xd9, 0xe4, 0xb2, 0xbf, 0x35, 0xf1, 0xbc, 0x62, 0x41,
-       0x56, 0x62, 0x85, 0x83, 0xd7, 0x84, 0x76, 0xef, 0x2d, 0x89, 0xf6, 0xba,
-       0x6f, 0x75, 0x87, 0xdc, 0x17, 0xac, 0x10, 0xcf, 0x95, 0x3d, 0x39, 0x5b,
-       0x27, 0x0e, 0xbb, 0x22, 0xd6, 0x79, 0x62, 0xb0, 0x6f, 0xa8, 0x18, 0x54,
-       0xb5, 0xfc, 0x6d, 0xa4, 0xa8, 0x0f, 0xfd, 0x18, 0x0e, 0xe2, 0x14, 0x0a,
-       0xab, 0x50, 0xcf, 0xde, 0x05, 0x3e, 0x4c, 0xe1, 0xd7, 0xbd, 0xfd, 0x56,
-       0xec, 0x5f, 0xca, 0x29, 0x63, 0x5f, 0xbd, 0xf6, 0xf6, 0x10, 0xdf, 0x6d,
-       0x14, 0x07, 0xfb, 0x8e, 0x44, 0x4e, 0xc0, 0xd6, 0x59, 0xd4, 0x0f, 0x5c,
-       0x07, 0xed, 0xa4, 0x2d, 0x0b, 0x27, 0xb9, 0xd7, 0x37, 0xaa, 0x6f, 0xea,
-       0x9a, 0xb5, 0x28, 0xbb, 0x91, 0x2d, 0x30, 0xc6, 0x59, 0x26, 0x0f, 0x3c,
-       0xf0, 0xc0, 0x97, 0x53, 0x5e, 0x3b, 0xf4, 0x76, 0x5c, 0xc2, 0xa7, 0x7c,
-       0x19, 0x52, 0xd8, 0x75, 0x1b, 0x30, 0xd7, 0x16, 0x8d, 0x1b, 0xe2, 0x12,
-       0x39, 0xd5, 0x25, 0xcd, 0xc0, 0xd5, 0x4d, 0xc7, 0x68, 0x23, 0x53, 0xc9,
-       0x21, 0x08, 0x41, 0x44, 0xdd, 0x55, 0x74, 0x06, 0xdf, 0x94, 0x6d, 0xc9,
-       0x37, 0x85, 0x78, 0xe9, 0x86, 0x2d, 0xf0, 0x09, 0xbc, 0x2b, 0x1b, 0xd4,
-       0x2f, 0xad, 0xd6, 0x87, 0x1c, 0x31, 0xb6, 0xc6, 0x36, 0x8c, 0xb5, 0xa5,
-       0x06, 0xdf, 0x60, 0x8c, 0x0d, 0xbe, 0x66, 0xd3, 0xb9, 0x60, 0x0e, 0xd6,
-       0x52, 0x87, 0x54, 0x4f, 0x73, 0x8f, 0x32, 0xce, 0x62, 0x07, 0x7e, 0x6a,
-       0x99, 0xfe, 0x2a, 0xdf, 0x27, 0xf5, 0xfb, 0x6e, 0xfd, 0x9e, 0xfe, 0x68,
-       0xd1, 0x6f, 0x02, 0x4d, 0xf7, 0x40, 0x7f, 0xde, 0xb7, 0xc3, 0x55, 0xb8,
-       0xe1, 0xbe, 0x15, 0x9e, 0xed, 0x15, 0xeb, 0x38, 0xfc, 0xd4, 0xf2, 0x61,
-       0x71, 0xb7, 0x2f, 0xa7, 0x23, 0x32, 0x06, 0x5e, 0x30, 0x9f, 0xe5, 0x7c,
-       0xd2, 0x47, 0xe4, 0xa0, 0xe2, 0x4d, 0xf5, 0xa4, 0x73, 0x34, 0x19, 0x9a,
-       0x12, 0xab, 0xca, 0xe7, 0x47, 0x90, 0x1e, 0x01, 0xde, 0x09, 0x62, 0x97,
-       0x56, 0x75, 0x2d, 0x2d, 0x81, 0x31, 0xec, 0x3d, 0x6b, 0xe2, 0x58, 0xab,
-       0x31, 0x2e, 0xbe, 0x1f, 0x52, 0xef, 0xd3, 0x6b, 0xe2, 0x5c, 0x79, 0x8b,
-       0x58, 0xc6, 0xbc, 0x27, 0x2f, 0xc8, 0x2f, 0xd8, 0xe2, 0x93, 0x26, 0xe6,
-       0xd5, 0xa6, 0xf9, 0x42, 0xfe, 0xcc, 0xc8, 0x45, 0xdb, 0x19, 0xa1, 0xfc,
-       0xfd, 0xea, 0x8e, 0x1b, 0x65, 0xa2, 0x93, 0xf1, 0xb6, 0xc6, 0x39, 0xac,
-       0x8f, 0xa3, 0x35, 0x8e, 0xbf, 0x3e, 0xfe, 0xc6, 0xb1, 0x83, 0x18, 0x5b,
-       0x6e, 0x4d, 0x8c, 0xad, 0x71, 0x3c, 0x8e, 0xb5, 0x05, 0xfe, 0x53, 0xd1,
-       0x8f, 0xbb, 0xe4, 0x51, 0x4f, 0x72, 0x8e, 0xf9, 0x2f, 0x58, 0xe0, 0x63,
-       0x1c, 0x76, 0x84, 0xbc, 0x34, 0x67, 0xcf, 0xe4, 0x69, 0x2a, 0x79, 0x24,
-       0xe0, 0xe7, 0x60, 0xc0, 0xf7, 0x80, 0xff, 0x57, 0x56, 0xf8, 0x48, 0xfb,
-       0x40, 0x3e, 0x76, 0x8a, 0x40, 0xcf, 0x5a, 0xc7, 0xc8, 0x43, 0xa6, 0xe4,
-       0x21, 0xdf, 0x91, 0x87, 0xdd, 0xfa, 0x1d, 0xf9, 0x07, 0x9c, 0xf6, 0x79,
-       0x60, 0x0c, 0x2f, 0xa7, 0xbe, 0xb1, 0xe9, 0xee, 0x35, 0x7b, 0x31, 0x2d,
-       0xcf, 0x2f, 0xb4, 0x88, 0x9d, 0x09, 0xd6, 0x35, 0xbe, 0x26, 0xde, 0xce,
-       0xf3, 0xab, 0x7e, 0x62, 0x4f, 0xb3, 0xae, 0x04, 0xd7, 0x75, 0x50, 0x5e,
-       0x93, 0xc2, 0x4c, 0x04, 0x3e, 0x60, 0x1a, 0x38, 0xa7, 0x1f, 0xfa, 0x96,
-       0xf1, 0x51, 0x94, 0xd5, 0x88, 0x57, 0x68, 0xeb, 0xd2, 0xd8, 0x2b, 0xd4,
-       0xc1, 0xc4, 0x23, 0xaf, 0x4a, 0xbe, 0x62, 0x74, 0x0c, 0xfa, 0xb7, 0x4c,
-       0xff, 0xa4, 0x73, 0xf6, 0x96, 0xeb, 0x64, 0x39, 0x79, 0x9d, 0x38, 0xc9,
-       0x45, 0x59, 0xe5, 0xeb, 0xf8, 0xc6, 0x74, 0xf7, 0xee, 0x0b, 0xaf, 0xca,
-       0xc6, 0xf8, 0x06, 0xbc, 0x9f, 0x14, 0xf3, 0xde, 0xf0, 0x7e, 0x43, 0x3e,
-       0x14, 0x5f, 0x11, 0xf2, 0x82, 0x34, 0x20, 0x1e, 0x8e, 0xca, 0xef, 0xc6,
-       0xb9, 0x1f, 0x8b, 0xea, 0x7c, 0x33, 0x65, 0xf5, 0x2a, 0x9d, 0x31, 0xe4,
-       0x05, 0xf2, 0x5a, 0xc4, 0x38, 0xb1, 0x9e, 0xdf, 0xf3, 0x87, 0xe2, 0xf0,
-       0x73, 0x7b, 0xa8, 0x5f, 0xcc, 0x9e, 0x6e, 0x51, 0x7b, 0xfa, 0x09, 0x2f,
-       0x24, 0x25, 0x37, 0x24, 0x53, 0xee, 0x61, 0x85, 0xf1, 0x7f, 0x03, 0x7d,
-       0x3d, 0xa8, 0xfb, 0x9a, 0x92, 0x5e, 0xad, 0x7f, 0x0e, 0x41, 0xce, 0x7d,
-       0xb9, 0xd7, 0xdb, 0x21, 0xbf, 0xda, 0xce, 0x3d, 0x60, 0xd6, 0x7f, 0x58,
-       0x7a, 0x76, 0x2c, 0x27, 0xe1, 0x19, 0xdc, 0x12, 0x5d, 0xa1, 0x01, 0xf7,
-       0x99, 0x91, 0xef, 0x80, 0x0e, 0xc1, 0xfa, 0xd7, 0xac, 0x55, 0xaf, 0x93,
-       0x6b, 0x66, 0x3d, 0xae, 0x35, 0xc0, 0xf2, 0xab, 0x6b, 0x35, 0xf5, 0x5b,
-       0x21, 0x4b, 0x4e, 0x52, 0x42, 0x8d, 0xb4, 0x59, 0xd1, 0x51, 0x23, 0x8c,
-       0x91, 0x2c, 0xdb, 0x4e, 0x3a, 0x19, 0x32, 0xb1, 0xe8, 0x00, 0xeb, 0x76,
-       0x03, 0x87, 0xbb, 0xbd, 0xbd, 0xe9, 0x82, 0x8a, 0x91, 0x5a, 0x6a, 0x5d,
-       0x53, 0xc0, 0x64, 0x0b, 0xde, 0x2b, 0xfe, 0xa7, 0x81, 0x59, 0x27, 0xe4,
-       0x61, 0x09, 0xaf, 0x89, 0xe5, 0x22, 0x7f, 0x9e, 0xf1, 0x5c, 0x27, 0x99,
-       0x05, 0x8f, 0x7f, 0x13, 0x3e, 0x7c, 0x15, 0x7a, 0xff, 0xe3, 0xb4, 0x0d,
-       0x65, 0xd8, 0x0b, 0xe0, 0x92, 0xaf, 0xbc, 0x27, 0x86, 0x9f, 0x68, 0x88,
-       0xe5, 0x06, 0xf8, 0xf4, 0xa2, 0xc2, 0xa4, 0xc4, 0xed, 0x47, 0x43, 0x77,
-       0xf7, 0x85, 0xe1, 0x67, 0x14, 0xfd, 0x98, 0x4b, 0x1c, 0x77, 0x58, 0xee,
-       0x04, 0x7f, 0xce, 0x2e, 0x14, 0x43, 0x7b, 0xca, 0x46, 0x56, 0xe1, 0x57,
-       0xd6, 0x9d, 0xf4, 0x65, 0xd0, 0xe3, 0x19, 0x8d, 0xf9, 0x78, 0x5e, 0x53,
-       0xd5, 0x3e, 0x0b, 0x63, 0x43, 0xa5, 0xfa, 0x61, 0x99, 0xf6, 0x18, 0xdb,
-       0xe9, 0x91, 0x52, 0x3c, 0x7b, 0x63, 0xf3, 0x0a, 0x8d, 0x1c, 0x1b, 0x3e,
-       0x5f, 0x9a, 0xfa, 0xbb, 0xaa, 0xcf, 0x3b, 0x9e, 0x51, 0xf2, 0x65, 0xe2,
-       0xc2, 0xf4, 0x8f, 0x78, 0x5e, 0xd5, 0x63, 0x8f, 0xf0, 0xb9, 0x42, 0x19,
-       0x50, 0x3e, 0x13, 0x68, 0xf9, 0x90, 0x64, 0xc7, 0x92, 0x0a, 0xb7, 0x3c,
-       0x5e, 0xe6, 0x7e, 0x21, 0xfe, 0x7f, 0x0d, 0xd8, 0x3f, 0x02, 0x9e, 0xd1,
-       0x0f, 0xe0, 0xd8, 0xdc, 0x17, 0x28, 0xab, 0xd9, 0xef, 0xb2, 0x2f, 0x5e,
-       0x6b, 0x23, 0xc6, 0xb8, 0x54, 0x16, 0x45, 0xbf, 0x65, 0x31, 0xb1, 0x73,
-       0x85, 0x05, 0x8b, 0xb9, 0x70, 0x48, 0x52, 0x27, 0xfe, 0x35, 0x64, 0xe8,
-       0xd7, 0xe1, 0x23, 0xa9, 0x7a, 0xea, 0xfc, 0x6a, 0x08, 0x98, 0xcb, 0x72,
-       0x6f, 0x90, 0x92, 0x1d, 0x95, 0x92, 0xba, 0xa3, 0xc9, 0xf3, 0xdc, 0xb0,
-       0x8a, 0xed, 0x94, 0x6c, 0x62, 0xfe, 0xff, 0xde, 0x16, 0xd8, 0xfa, 0x0e,
-       0xe4, 0xd9, 0x8e, 0x79, 0x96, 0x4f, 0x49, 0xf4, 0xc4, 0x21, 0x69, 0x3a,
-       0xf1, 0xb0, 0x34, 0x1f, 0x27, 0xc6, 0x63, 0xec, 0xde, 0xda, 0xd5, 0x2c,
-       0xc4, 0xdc, 0x43, 0x18, 0xfb, 0xb0, 0x7c, 0xdf, 0x33, 0x73, 0x5a, 0xc4,
-       0x1c, 0x59, 0xc7, 0xe4, 0x0d, 0x1e, 0xdf, 0x85, 0xf9, 0x70, 0xfd, 0x49,
-       0x8d, 0xfb, 0x76, 0x35, 0xf8, 0xae, 0x4d, 0xda, 0x77, 0x65, 0xbb, 0x4f,
-       0x61, 0xad, 0x27, 0x25, 0xea, 0x9a, 0xf6, 0xbb, 0x51, 0x2f, 0xd1, 0x70,
-       0x07, 0x82, 0x75, 0xf4, 0x9d, 0x80, 0x36, 0xe2, 0x1e, 0x9e, 0xb7, 0xb3,
-       0x2c, 0x38, 0xf3, 0xb7, 0xaa, 0xbb, 0xc2, 0x6b, 0xc7, 0xdf, 0xd9, 0x50,
-       0xd7, 0x94, 0x99, 0x36, 0xd1, 0xc0, 0xe7, 0x1f, 0x88, 0x36, 0xb4, 0x83,
-       0x71, 0x53, 0x69, 0xe0, 0x7b, 0x04, 0x7e, 0x10, 0xd7, 0x90, 0x6e, 0xc0,
-       0x39, 0x6b, 0xbf, 0x45, 0xcc, 0xa3, 0xbc, 0x30, 0x67, 0xee, 0x91, 0x59,
-       0x58, 0x8b, 0x53, 0xa4, 0xff, 0x62, 0xf3, 0x4e, 0xee, 0x5c, 0x11, 0xf3,
-       0xbe, 0x49, 0xdd, 0x25, 0xe2, 0xdd, 0x0d, 0xd4, 0x4b, 0x06, 0xf8, 0x93,
-       0xf9, 0x04, 0x78, 0x7e, 0x5b, 0x97, 0x95, 0xf9, 0xf3, 0x1b, 0x73, 0x03,
-       0xc4, 0x37, 0x5b, 0x79, 0x0e, 0x09, 0xdc, 0x4c, 0x39, 0xfb, 0x2e, 0xe4,
-       0xac, 0x59, 0x9d, 0xfb, 0x94, 0xca, 0xf4, 0xe7, 0x0a, 0x90, 0x1f, 0xde,
-       0x87, 0xa3, 0xdf, 0x57, 0xd0, 0xf1, 0x58, 0xce, 0x93, 0x98, 0xde, 0xf8,
-       0x07, 0xec, 0x73, 0xfd, 0x19, 0x6c, 0xe3, 0xfd, 0x12, 0xca, 0x5b, 0x42,
-       0xcd, 0x79, 0x78, 0x9d, 0xbf, 0x72, 0x04, 0xba, 0x60, 0x01, 0xf2, 0x3c,
-       0x09, 0x1d, 0x38, 0x14, 0xe6, 0xfe, 0x6c, 0xd1, 0xbe, 0xac, 0x4b, 0xbf,
-       0x3d, 0x34, 0x86, 0x3e, 0xac, 0xe3, 0xaf, 0xcb, 0x14, 0xf4, 0xff, 0x74,
-       0x3d, 0xa5, 0xbe, 0x17, 0xc9, 0x26, 0x78, 0x07, 0x8c, 0xe5, 0x63, 0x18,
-       0xff, 0x75, 0xe0, 0xe1, 0xcd, 0xa0, 0xa7, 0xa5, 0x79, 0xf5, 0x2b, 0x3a,
-       0x16, 0x15, 0x63, 0x2c, 0x1e, 0x7a, 0xb3, 0x14, 0x60, 0xcd, 0xf8, 0x34,
-       0xd2, 0xcd, 0x2d, 0x81, 0xbc, 0x4e, 0x6e, 0xd5, 0x77, 0x2f, 0x50, 0xfe,
-       0x98, 0x8a, 0x41, 0x06, 0x6b, 0x72, 0xb4, 0xaf, 0x12, 0x85, 0xcc, 0x71,
-       0x5d, 0xf7, 0xa2, 0x1e, 0x65, 0xad, 0x4f, 0x9f, 0xcd, 0xb6, 0x28, 0xfd,
-       0x98, 0x87, 0x2c, 0x15, 0x94, 0x1f, 0x01, 0x7c, 0xef, 0xb1, 0xdd, 0xaf,
-       0x6f, 0xe5, 0xd9, 0x67, 0x93, 0xab, 0x7c, 0x8b, 0xce, 0xb0, 0x98, 0xb2,
-       0x8f, 0xa0, 0x8c, 0x72, 0x76, 0x03, 0x78, 0xc3, 0xb2, 0x1c, 0xf2, 0x1c,
-       0xeb, 0x46, 0x3d, 0x0e, 0xc7, 0xb8, 0xb4, 0x79, 0xed, 0x9c, 0xb8, 0x96,
-       0xce, 0x75, 0x77, 0xe7, 0x59, 0x76, 0x83, 0x2e, 0x8b, 0xe8, 0xf5, 0xfd,
-       0xa9, 0xfe, 0xb6, 0xc1, 0x39, 0x9a, 0x5d, 0xc1, 0xc6, 0x9c, 0x5f, 0x4c,
-       0xb5, 0xcb, 0xda, 0x81, 0xec, 0x1c, 0x01, 0x3f, 0x22, 0x99, 0xaf, 0xf1,
-       0x4c, 0x19, 0xf4, 0x35, 0x7b, 0x22, 0xa1, 0xfc, 0xce, 0xa4, 0x15, 0xdc,
-       0x5d, 0xba, 0x58, 0x6e, 0xf4, 0x19, 0xcc, 0xfd, 0x6f, 0x57, 0xc6, 0x56,
-       0x78, 0x45, 0xbe, 0x91, 0x5f, 0xef, 0xc6, 0x2b, 0xf2, 0x91, 0xfc, 0x2a,
-       0x48, 0x69, 0x96, 0x7c, 0xa2, 0xbc, 0x8c, 0x29, 0x79, 0x29, 0x55, 0x0c,
-       0x4e, 0xa6, 0x2e, 0xe1, 0x37, 0x0f, 0x1b, 0x9d, 0xd7, 0x9b, 0xbb, 0x61,
-       0xbf, 0x44, 0xfa, 0x85, 0x86, 0xe1, 0x1e, 0x2d, 0xcc, 0x2a, 0x9d, 0x02,
-       0xbb, 0x98, 0x50, 0xba, 0xa2, 0x30, 0xce, 0xfc, 0xd2, 0x56, 0x7e, 0x9b,
-       0x8b, 0x79, 0xa0, 0xbc, 0x53, 0xf3, 0xf5, 0x06, 0x75, 0xbf, 0x89, 0x7b,
-       0xb0, 0x54, 0xa9, 0xab, 0xf7, 0x67, 0xe7, 0x9a, 0x54, 0xfd, 0xb3, 0x73,
-       0xeb, 0xef, 0x28, 0xb1, 0xec, 0x66, 0xc6, 0x55, 0x64, 0x71, 0xa6, 0x49,
-       0x96, 0xe6, 0xfe, 0x90, 0x7e, 0x22, 0x8c, 0xc1, 0xca, 0xf7, 0x1d, 0xfa,
-       0x5b, 0x2c, 0x5f, 0x86, 0x21, 0x37, 0x0b, 0x83, 0xd3, 0x52, 0x1d, 0xa4,
-       0x1f, 0xa4, 0xee, 0x0e, 0x62, 0xbd, 0x4d, 0xc0, 0xc0, 0xc0, 0x85, 0x2e,
-       0xe3, 0xcf, 0x5b, 0xb4, 0x3e, 0x79, 0xb0, 0x75, 0x25, 0x2e, 0x1d, 0x2f,
-       0xfa, 0x55, 0xd7, 0x7c, 0x33, 0xc3, 0x3e, 0xf9, 0xdd, 0x0c, 0x79, 0x66,
-       0xa1, 0x3d, 0xef, 0x64, 0x76, 0x33, 0xae, 0xad, 0xf9, 0x1c, 0x46, 0x7d,
-       0xa6, 0xbf, 0xa7, 0xf3, 0x73, 0x3a, 0xfd, 0xac, 0xec, 0x3f, 0xf9, 0x19,
-       0xcc, 0x7b, 0x53, 0x70, 0xef, 0x4a, 0x1a, 0xbf, 0x9b, 0x88, 0xe8, 0x6f,
-       0x34, 0x3e, 0x8b, 0x32, 0xc6, 0xe2, 0x3e, 0xab, 0xd6, 0xc4, 0xbb, 0x7d,
-       0x45, 0xf9, 0x79, 0x77, 0x54, 0x8c, 0x3f, 0xc8, 0xfb, 0x53, 0x2d, 0xba,
-       0xbf, 0x3d, 0x5a, 0x96, 0xc6, 0x65, 0x3f, 0xec, 0x5d, 0x01, 0xb8, 0x98,
-       0x77, 0xce, 0x26, 0xc2, 0x8d, 0x63, 0x9a, 0xfd, 0x14, 0xc4, 0x1a, 0xcc,
-       0xdd, 0x87, 0xb0, 0xf2, 0x89, 0x56, 0xe2, 0x16, 0xba, 0x7c, 0x5c, 0x0e,
-       0x94, 0x55, 0xfc, 0x42, 0x9d, 0x59, 0x4e, 0x43, 0x2f, 0x0c, 0x29, 0x9b,
-       0x16, 0x0b, 0x0d, 0xd7, 0x32, 0x52, 0x38, 0xbd, 0x17, 0xe3, 0x30, 0x16,
-       0x98, 0xd5, 0x67, 0x83, 0xfb, 0x64, 0x7f, 0x3d, 0x18, 0x7b, 0xb2, 0xcc,
-       0xf7, 0x29, 0xe0, 0x04, 0xbe, 0xcf, 0x27, 0xc2, 0xea, 0x74, 0xe3, 0x56,
-       0xb4, 0x6d, 0xd2, 0x74, 0xe6, 0xbd, 0x6b, 0xb6, 0xa7, 0x0e, 0x00, 0xc0,
-       0x69, 0xc9, 0xe3, 0x3d, 0xdb, 0x98, 0xfe, 0x26, 0x61, 0xb7, 0xe8, 0x9f,
-       0x3f, 0x2a, 0xcb, 0x95, 0x69, 0xb9, 0x5c, 0x31, 0xb2, 0xce, 0xbb, 0xd7,
-       0x9c, 0xfb, 0x5d, 0xc1, 0xb7, 0xbf, 0xe5, 0x2c, 0xf8, 0xb3, 0x96, 0x56,
-       0xf9, 0x35, 0xdf, 0xdb, 0xfc, 0x2b, 0x3b, 0xf8, 0xe6, 0x6d, 0xb7, 0xba,
-       0xc3, 0xb5, 0x76, 0xcf, 0xb1, 0x9f, 0xfd, 0x36, 0xcf, 0x3a, 0x82, 0x7b,
-       0x68, 0x9d, 0x0d, 0xef, 0xe3, 0xfa, 0xee, 0xd7, 0xa7, 0xec, 0x80, 0x8f,
-       0xa4, 0xe7, 0x98, 0x9e, 0xef, 0xad, 0xd8, 0xff, 0xec, 0xf3, 0x31, 0xcd,
-       0x37, 0xa4, 0x0b, 0x7c, 0xe6, 0xfe, 0x5a, 0xd6, 0xe7, 0xbf, 0xb6, 0x1e,
-       0xa3, 0xf1, 0xee, 0x5d, 0x53, 0xc3, 0xb8, 0x6c, 0x4f, 0xfb, 0x64, 0xee,
-       0x80, 0xb3, 0xec, 0xa4, 0xbe, 0xe3, 0x77, 0xb5, 0xa1, 0xcc, 0xdc, 0x45,
-       0x23, 0xbd, 0x18, 0xd3, 0x44, 0x5a, 0x1f, 0xd3, 0xcf, 0x63, 0x0d, 0xdf,
-       0xc8, 0x98, 0x3e, 0x23, 0xe8, 0xc3, 0xdc, 0x41, 0x6f, 0xbc, 0x53, 0xcc,
-       0xef, 0x83, 0x28, 0x8b, 0x16, 0xbf, 0x61, 0xa6, 0x1f, 0x08, 0xec, 0xb6,
-       0x45, 0x26, 0xd5, 0x7c, 0x8a, 0xea, 0xbe, 0x06, 0xbf, 0x9b, 0x19, 0xb2,
-       0x83, 0xfc, 0xe4, 0xc2, 0x7a, 0x39, 0x65, 0xf9, 0x33, 0xcd, 0xd2, 0x52,
-       0xc4, 0x38, 0x7c, 0xbf, 0xd1, 0xf7, 0xf4, 0x51, 0xfd, 0x9d, 0x90, 0x87,
-       0x36, 0x4f, 0x50, 0xde, 0x8b, 0xc5, 0x95, 0x7b, 0xa2, 0xc5, 0xe0, 0x1b,
-       0x26, 0xcb, 0xdc, 0xd7, 0xe4, 0x37, 0xda, 0x22, 0x17, 0x6a, 0xfc, 0x3e,
-       0x69, 0xb7, 0xba, 0x47, 0x13, 0x9c, 0x4d, 0x72, 0x5e, 0x3d, 0xca, 0x2e,
-       0x54, 0x6b, 0x25, 0xd2, 0x54, 0xdb, 0xf6, 0xa8, 0xb6, 0xed, 0xa4, 0xf1,
-       0x08, 0x68, 0xfc, 0x25, 0xcd, 0x17, 0xb6, 0xcf, 0xaa, 0xfb, 0xdd, 0xd9,
-       0x38, 0xcf, 0xc7, 0x1e, 0x53, 0x6b, 0xa1, 0x9d, 0x40, 0xdb, 0x5f, 0x0e,
-       0xab, 0x78, 0xa7, 0xfa, 0x06, 0x1c, 0xf2, 0xc9, 0x6f, 0xba, 0xa1, 0xe3,
-       0xcb, 0xfc, 0x76, 0x7b, 0x04, 0x29, 0xbf, 0xd9, 0xde, 0xab, 0xee, 0xff,
-       0x57, 0xd5, 0x37, 0x01, 0x46, 0x1e, 0xc3, 0x7a, 0xac, 0x6f, 0x62, 0x8c,
-       0x80, 0xef, 0x85, 0x32, 0xbf, 0xe5, 0x36, 0x77, 0x4c, 0x37, 0x2f, 0x73,
-       0x4f, 0x88, 0xf2, 0xf3, 0x83, 0x6f, 0xfb, 0xab, 0xea, 0x3b, 0x82, 0x24,
-       0xbf, 0x2b, 0x84, 0xfd, 0xba, 0x1f, 0xcf, 0x3c, 0x57, 0xde, 0x87, 0x14,
-       0xfa, 0xa7, 0x36, 0x81, 0xf4, 0x61, 0xc9, 0xab, 0xb8, 0x5f, 0x2b, 0xf2,
-       0x93, 0x6a, 0xec, 0x52, 0xed, 0x13, 0xb2, 0xff, 0xf4, 0x43, 0xfc, 0x5e,
-       0x42, 0x7d, 0x77, 0x9e, 0xf3, 0x38, 0xc7, 0xb8, 0x4c, 0xa9, 0x75, 0x17,
-       0x35, 0xed, 0xcd, 0x59, 0xcc, 0xcf, 0xd4, 0xb7, 0x19, 0xc5, 0x5a, 0x2b,
-       0xe6, 0x18, 0xd2, 0xf7, 0x4c, 0xe9, 0x0f, 0x98, 0xf5, 0xb7, 0xf0, 0xee,
-       0xa2, 0xcf, 0xf3, 0xc3, 0xfd, 0x65, 0xde, 0x23, 0x4d, 0xe9, 0x38, 0x01,
-       0x63, 0x87, 0x3c, 0x9f, 0xa0, 0x8c, 0x3b, 0xe9, 0x09, 0x58, 0xa0, 0xa8,
-       0x24, 0x78, 0xb6, 0xad, 0xd7, 0xd2, 0xda, 0xb0, 0x16, 0xde, 0x9d, 0x0d,
-       0xd6, 0xc3, 0xef, 0x21, 0x0a, 0xe5, 0xc6, 0x6f, 0x2a, 0xd4, 0x37, 0xd0,
-       0xfc, 0x76, 0x46, 0x26, 0x6a, 0x9f, 0x94, 0x07, 0xca, 0x5b, 0xf4, 0xf7,
-       0x14, 0x31, 0x79, 0xa0, 0xf6, 0xba, 0xa2, 0x69, 0x41, 0x7d, 0xd7, 0x11,
-       0xd5, 0x3c, 0x33, 0xdf, 0x54, 0x04, 0xfd, 0x1d, 0xa8, 0x39, 0x0d, 0xdf,
-       0x2f, 0x44, 0x65, 0x62, 0xe1, 0x47, 0x91, 0x8d, 0xbf, 0x61, 0x78, 0x54,
-       0x72, 0xa7, 0x69, 0xa3, 0xa7, 0xe5, 0xf1, 0x8a, 0xef, 0xdf, 0xe9, 0x11,
-       0x5b, 0x6e, 0x96, 0xcb, 0xf1, 0xb1, 0x3d, 0x6f, 0xb8, 0x1d, 0xa1, 0xea,
-       0x6c, 0x33, 0x74, 0x2f, 0xf1, 0x8c, 0xb4, 0x30, 0xbf, 0x30, 0xcb, 0x7d,
-       0x1a, 0xc1, 0x1a, 0x1d, 0xfb, 0x9a, 0xdc, 0xde, 0xce, 0xb8, 0xdb, 0x9d,
-       0xf0, 0x65, 0x7f, 0xdb, 0x0b, 0xf4, 0xf5, 0xe7, 0x16, 0xf7, 0xca, 0xe7,
-       0x6a, 0xb1, 0x50, 0x75, 0x86, 0xf7, 0x0d, 0x9d, 0x91, 0x8a, 0xa4, 0x50,
-       0x8f, 0xfd, 0x43, 0x5e, 0x12, 0xd7, 0xc9, 0xb3, 0x27, 0x7f, 0xea, 0x5f,
-       0x73, 0xf1, 0x1e, 0xba, 0xe6, 0xb2, 0x67, 0x62, 0x8b, 0x63, 0xf0, 0x5d,
-       0x59, 0xef, 0x3a, 0xc8, 0x01, 0xb0, 0x03, 0xf6, 0x1c, 0xfd, 0xdc, 0x6b,
-       0x5a, 0x6f, 0x59, 0xc7, 0x6e, 0x92, 0x6b, 0x2b, 0xf7, 0x95, 0x5f, 0x83,
-       0x6c, 0x27, 0x03, 0xfa, 0xab, 0x58, 0xfc, 0x21, 0x09, 0x7f, 0x1e, 0x36,
-       0xe5, 0xf3, 0x4d, 0x4a, 0xb7, 0xd3, 0xb6, 0xc1, 0x07, 0x82, 0x9f, 0x13,
-       0x41, 0x3f, 0xa9, 0xf6, 0x40, 0x66, 0xa7, 0x45, 0xbe, 0xb0, 0x49, 0xb2,
-       0xed, 0xf4, 0xa3, 0xe5, 0xe7, 0xe8, 0xaf, 0xc6, 0x7d, 0x96, 0x96, 0x3f,
-       0xe2, 0x1e, 0xaf, 0x73, 0x2d, 0xa9, 0xc4, 0x9f, 0xc9, 0xa7, 0x65, 0x22,
-       0xc1, 0xb5, 0x3c, 0x2a, 0xc5, 0xca, 0x63, 0xf8, 0x71, 0x9d, 0x9c, 0xf7,
-       0xc7, 0xf4, 0x5d, 0x86, 0x31, 0x29, 0xcd, 0x64, 0x64, 0x6a, 0x6e, 0x92,
-       0xdf, 0xa0, 0x8e, 0xdc, 0xa9, 0xce, 0xf8, 0x9c, 0x44, 0x2a, 0xb4, 0x2d,
-       0x39, 0xc5, 0xbb, 0x1b, 0x6a, 0x3d, 0x93, 0x58, 0xcf, 0xe3, 0xed, 0xbc,
-       0xb3, 0x7e, 0x0d, 0xfa, 0xd7, 0x3a, 0x45, 0x39, 0x74, 0xec, 0xee, 0x10,
-       0xf3, 0xfb, 0xe0, 0xbf, 0xb3, 0x6c, 0x9f, 0x84, 0x8f, 0xad, 0xe8, 0x79,
-       0x94, 0xeb, 0xb3, 0x66, 0xd5, 0xfe, 0x14, 0xda, 0xa2, 0xde, 0x31, 0xd3,
-       0xd6, 0xd4, 0x61, 0x5b, 0xae, 0x73, 0xaf, 0x34, 0x9f, 0x33, 0xf3, 0x82,
-       0x1c, 0x26, 0x1a, 0xe9, 0xdd, 0xb2, 0x8e, 0xde, 0x11, 0x62, 0x5e, 0xd0,
-       0x8b, 0x34, 0x0e, 0x6b, 0x1a, 0x7f, 0x05, 0xfd, 0x1b, 0x1e, 0xdc, 0x89,
-       0x32, 0x5b, 0x7f, 0x93, 0xf4, 0x7e, 0xe8, 0x4e, 0x9a, 0xb3, 0x3e, 0xe9,
-       0x4e, 0xd9, 0xe2, 0x7c, 0x36, 0xa2, 0xf9, 0xeb, 0x9a, 0x2f, 0xfb, 0x40,
-       0x2f, 0xde, 0x2b, 0xdd, 0xa6, 0xbe, 0x2f, 0xc8, 0x8e, 0xef, 0x83, 0xec,
-       0x98, 0x75, 0x6d, 0x83, 0x8c, 0xf1, 0xdc, 0x84, 0xf5, 0x1b, 0x69, 0x12,
-       0xd8, 0xbd, 0x30, 0x63, 0x1f, 0x2e, 0xd7, 0x0a, 0x5c, 0xfa, 0x05, 0xda,
-       0x28, 0x7e, 0x63, 0x7d, 0xb3, 0xb6, 0x51, 0x3f, 0x8f, 0xc7, 0x3f, 0x6a,
-       0x0f, 0x6c, 0x94, 0x0d, 0x9a, 0xb4, 0xe9, 0x36, 0xfb, 0x80, 0x91, 0x19,
-       0x0f, 0x4e, 0x25, 0x1e, 0x14, 0x33, 0x8e, 0xbf, 0x9b, 0x7e, 0xef, 0xd0,
-       0xc0, 0x36, 0xa0, 0x16, 0x75, 0x67, 0x27, 0xc1, 0x3b, 0x40, 0xa9, 0xd0,
-       0x3e, 0x75, 0x7f, 0x63, 0xed, 0xf7, 0x23, 0x69, 0x79, 0x76, 0x55, 0x56,
-       0x46, 0x7e, 0x28, 0x8e, 0x24, 0x6f, 0xa4, 0xac, 0xb0, 0xdf, 0x49, 0xae,
-       0x33, 0xf1, 0x90, 0x5a, 0xa7, 0x0d, 0x3f, 0x92, 0x77, 0x2d, 0xec, 0x50,
-       0x75, 0x8e, 0x7c, 0x47, 0xba, 0xc8, 0x67, 0x73, 0xde, 0xab, 0xf4, 0x0a,
-       0xc6, 0x65, 0x19, 0x75, 0x23, 0xdf, 0x67, 0xf4, 0x79, 0x70, 0x7b, 0x07,
-       0xef, 0x24, 0x14, 0x50, 0x56, 0x59, 0xdc, 0x78, 0x6e, 0xbf, 0xad, 0xe4,
-       0xe0, 0x51, 0xd0, 0xfd, 0x9f, 0xa1, 0xee, 0x63, 0x48, 0xb9, 0xc6, 0xcc,
-       0x0a, 0xdf, 0x49, 0xef, 0x8f, 0xca, 0x20, 0xe4, 0x82, 0xf9, 0x47, 0x81,
-       0x37, 0x69, 0x4f, 0x91, 0x56, 0xf8, 0x4c, 0x5d, 0xef, 0x6a, 0x7b, 0xca,
-       0xb9, 0xec, 0xc3, 0x5c, 0xd4, 0x3a, 0xb5, 0x3c, 0xdd, 0xaf, 0xdb, 0x8d,
-       0xaf, 0xd0, 0xea, 0xa1, 0x77, 0xe0, 0x8d, 0xe8, 0x0a, 0xde, 0x08, 0xc6,
-       0xca, 0x76, 0x18, 0xac, 0x11, 0xac, 0x21, 0xc0, 0x1a, 0x81, 0x9c, 0x4f,
-       0x4a, 0x04, 0x72, 0x1c, 0x5e, 0x95, 0x63, 0xe0, 0x9e, 0x60, 0xcf, 0x4c,
-       0xf1, 0x1c, 0x53, 0xd1, 0x99, 0x72, 0x48, 0xf9, 0x25, 0x1f, 0x1b, 0x79,
-       0x7d, 0xfb, 0xbb, 0xf0, 0xba, 0xd4, 0x61, 0xf0, 0xc3, 0x3f, 0x6c, 0x1f,
-       0x3c, 0xd2, 0xb1, 0xba, 0x0f, 0x6e, 0xfa, 0x05, 0xed, 0x83, 0xf5, 0x72,
-       0xd9, 0x28, 0x53, 0x36, 0xe4, 0x89, 0xfc, 0xa2, 0x3c, 0x51, 0x8e, 0x48,
-       0x4b, 0xea, 0xd3, 0x66, 0xfa, 0x6f, 0x89, 0xab, 0xea, 0xdb, 0x91, 0x69,
-       0xe8, 0xa0, 0x8e, 0x50, 0xa5, 0x12, 0x97, 0xd2, 0xe2, 0x4f, 0x94, 0x4c,
-       0x3f, 0x5b, 0xa7, 0x5e, 0x7a, 0xaf, 0xb5, 0xaf, 0xd5, 0xb9, 0x85, 0x75,
-       0x3a, 0xb7, 0xb0, 0xa2, 0x73, 0xdb, 0xb5, 0xcf, 0xf6, 0x0f, 0xd1, 0xb9,
-       0xf1, 0x86, 0xb3, 0x21, 0x73, 0x2e, 0x24, 0xa1, 0x5c, 0x5f, 0x8b, 0xec,
-       0x81, 0x1d, 0x19, 0x99, 0xd9, 0x2b, 0x7f, 0x30, 0x33, 0xad, 0xee, 0x49,
-       0x7d, 0xd3, 0x4b, 0x25, 0x3e, 0x11, 0xf2, 0xe5, 0xa3, 0xf0, 0xb9, 0x27,
-       0xba, 0x9a, 0x64, 0xcf, 0x6d, 0xea, 0xbc, 0xd3, 0xce, 0x85, 0x3a, 0x85,
-       0x91, 0xf8, 0xbc, 0xe7, 0x78, 0xc9, 0x10, 0xef, 0xcc, 0x35, 0xcb, 0x44,
-       0xbc, 0x55, 0xf6, 0x02, 0x3b, 0x15, 0xaf, 0xf7, 0xd4, 0x37, 0xd3, 0x59,
-       0x75, 0x9e, 0xf4, 0x86, 0xe6, 0x3b, 0xe8, 0xd0, 0x66, 0xcb, 0x7f, 0xac,
-       0x33, 0xcf, 0xf2, 0x07, 0xd7, 0xe5, 0xf9, 0xfc, 0x04, 0xfc, 0xb9, 0x38,
-       0x68, 0xd5, 0x78, 0xff, 0x28, 0xac, 0xe8, 0x59, 0xaa, 0x8c, 0xab, 0x7b,
-       0x5d, 0x57, 0xc3, 0xa4, 0x97, 0xf2, 0xa1, 0x12, 0xb9, 0x30, 0x30, 0xce,
-       0x2c, 0x90, 0xb4, 0x4b, 0xbf, 0x53, 0xe3, 0x4f, 0xe8, 0xff, 0xfd, 0xea,
-       0x7c, 0x79, 0x19, 0xb4, 0xf1, 0x55, 0xfc, 0xb9, 0x10, 0x27, 0xae, 0x5f,
-       0xbd, 0xc3, 0xfc, 0x4e, 0x7c, 0xaf, 0xb0, 0xbd, 0x39, 0x0b, 0xd1, 0xf1,
-       0x2a, 0x1d, 0x07, 0x50, 0x67, 0x7b, 0x1b, 0xfd, 0xbf, 0x0b, 0xc4, 0x7a,
-       0xfc, 0xae, 0x9f, 0xd8, 0xce, 0x39, 0x5a, 0x91, 0x1f, 0x2a, 0x5f, 0x34,
-       0x4b, 0xfa, 0x56, 0xc1, 0xa7, 0xe3, 0x09, 0x63, 0xcf, 0x43, 0xdd, 0xe7,
-       0x1b, 0x7d, 0x51, 0xf6, 0x11, 0x53, 0x77, 0x42, 0x56, 0xff, 0x9f, 0x17,
-       0xc6, 0x98, 0xb2, 0xa1, 0xbb, 0xcb, 0xd3, 0x12, 0x3e, 0x31, 0x26, 0x91,
-       0xe3, 0x8c, 0xe7, 0x67, 0xa5, 0x14, 0xf7, 0xe5, 0x01, 0x6f, 0xad, 0x6f,
-       0xd2, 0x6d, 0xad, 0x9f, 0xfb, 0xa3, 0x32, 0x74, 0xfa, 0x31, 0x89, 0x9e,
-       0xe0, 0xbb, 0x35, 0x67, 0x39, 0xd0, 0x47, 0x9b, 0xa5, 0x12, 0x67, 0x4c,
-       0x3b, 0xaa, 0xce, 0xc6, 0x2f, 0x8f, 0xbf, 0x1e, 0x2d, 0x01, 0x2b, 0x14,
-       0x94, 0x6e, 0x41, 0xba, 0xe2, 0x4b, 0xe4, 0xae, 0xe3, 0x9e, 0x82, 0xbf,
-       0x19, 0x9a, 0xa8, 0x44, 0xd5, 0x1d, 0xa5, 0xcb, 0x71, 0xd6, 0x7d, 0x0c,
-       0x7e, 0x37, 0x71, 0x06, 0x74, 0xc7, 0x98, 0xb4, 0x30, 0x1f, 0x3e, 0xb1,
-       0x8a, 0x33, 0xa8, 0x13, 0x86, 0xbc, 0xb8, 0x44, 0xce, 0x04, 0x6b, 0xe7,
-       0x7f, 0x1c, 0x64, 0xcd, 0xef, 0x95, 0xf0, 0x71, 0x3e, 0x37, 0xfa, 0x43,
-       0xc4, 0xee, 0xb0, 0x0d, 0xe7, 0x7f, 0x1f, 0xfd, 0xf1, 0x5d, 0x56, 0x7f,
-       0x87, 0x8b, 0x7c, 0xf5, 0xef, 0xfa, 0x7f, 0x04, 0x50, 0xf6, 0xff, 0x3f,
-       0xc3, 0x8e, 0xbb, 0xb0, 0xa8, 0x4d, 0x00, 0x00, 0x00 };
-
-static const u32 bnx2_COM_b06FwData[(0x0/4) + 1] = { 0x0 };
-static const u32 bnx2_COM_b06FwRodata[(0x14/4) + 1] = {
-       0x08000e7c, 0x08000ec4, 0x08000f04, 0x08000f50, 0x08000f84, 0x00000000
-};
-
-static struct fw_info bnx2_com_fw_06 = {
-       /* Firmware version: 4.6.16 */
-       .ver_major                      = 0x4,
-       .ver_minor                      = 0x6,
-       .ver_fix                        = 0x10,
-
-       .start_addr                     = 0x080000f8,
-
-       .text_addr                      = 0x08000000,
-       .text_len                       = 0x4da4,
-       .text_index                     = 0x0,
-       .gz_text                        = bnx2_COM_b06FwText,
-       .gz_text_len                    = sizeof(bnx2_COM_b06FwText),
-
-       .data_addr                      = 0x00000000,
-       .data_len                       = 0x0,
-       .data_index                     = 0x0,
-       .data                           = bnx2_COM_b06FwData,
-
-       .sbss_addr                      = 0x08004de0,
-       .sbss_len                       = 0x38,
-       .sbss_index                     = 0x0,
-
-       .bss_addr                       = 0x08004e18,
-       .bss_len                        = 0xbc,
-       .bss_index                      = 0x0,
-
-       .rodata_addr                    = 0x08004da4,
-       .rodata_len                     = 0x14,
-       .rodata_index                   = 0x0,
-       .rodata                         = bnx2_COM_b06FwRodata,
-};
-
 /* Initialized Values for the Completion Processor. */
 static const struct cpu_reg cpu_reg_com = {
        .mode = BNX2_COM_CPU_MODE,
@@ -897,1277 +23,6 @@ static const struct cpu_reg cpu_reg_com = {
        .mips_view_base = 0x8000000,
 };
 
-static u8 bnx2_CP_b06FwText[] = {
-       0x9d, 0xbc, 0x0d, 0x7c, 0x1b, 0xe5, 0x95, 0x2e, 0xfe, 0xcc, 0x48, 0xb2,
-       0x65, 0x5b, 0xb6, 0xc7, 0x8e, 0x92, 0x28, 0xac, 0x37, 0xd1, 0xc4, 0x23,
-       0x47, 0xc1, 0xa6, 0x8c, 0x12, 0x27, 0xa8, 0xac, 0x4a, 0x54, 0xc7, 0x24,
-       0x4e, 0x48, 0xc1, 0x29, 0x69, 0x6b, 0xb8, 0x2d, 0xa8, 0xf9, 0xc2, 0x84,
-       0x40, 0x43, 0xcb, 0xde, 0x6b, 0xee, 0xed, 0xae, 0x55, 0xdb, 0x49, 0x9c,
-       0x44, 0x96, 0x6c, 0xc7, 0x24, 0xa1, 0xdb, 0xff, 0xa2, 0xc4, 0xce, 0x07,
-       0x54, 0xb6, 0xd2, 0x96, 0xee, 0x86, 0xde, 0x74, 0xd1, 0x4d, 0x02, 0x18,
-       0xca, 0x47, 0xda, 0xe5, 0x76, 0x69, 0x7f, 0xbd, 0xc5, 0x97, 0x42, 0x08,
-       0x5b, 0x0a, 0xe9, 0xe7, 0x86, 0x7e, 0x30, 0xf7, 0x39, 0x23, 0x29, 0x31,
-       0x2c, 0xdb, 0x76, 0xff, 0xfa, 0xfd, 0xe6, 0x27, 0xcd, 0xe8, 0xfd, 0x38,
-       0xef, 0x79, 0xcf, 0x79, 0xce, 0x73, 0xde, 0x79, 0x67, 0xfc, 0x40, 0x39,
-       0x0a, 0x9f, 0x4a, 0x1e, 0x1f, 0x6a, 0xde, 0xb6, 0x61, 0x69, 0xe8, 0x43,
-       0x4b, 0xe5, 0xdc, 0xa9, 0x95, 0x38, 0xf1, 0x67, 0x7e, 0xfc, 0x7f, 0x6e,
-       0xc1, 0xc2, 0x47, 0xe1, 0xd1, 0x58, 0xf8, 0xed, 0x00, 0xb4, 0x62, 0xff,
-       0x72, 0xc0, 0xad, 0x46, 0xc6, 0x3a, 0x5a, 0x0c, 0xb8, 0x1d, 0x91, 0x6d,
-       0xb7, 0x6f, 0x30, 0x80, 0x68, 0xa6, 0xd1, 0xbf, 0x1c, 0x7f, 0xb0, 0xe2,
-       0x5e, 0x27, 0xe4, 0xfa, 0x5f, 0x46, 0x7e, 0xdf, 0xfd, 0xed, 0x6b, 0xf4,
-       0x0b, 0x69, 0x07, 0xdc, 0x5a, 0x24, 0x0e, 0xad, 0x01, 0xee, 0x3a, 0xd6,
-       0xf9, 0xca, 0x82, 0xaf, 0x28, 0xa8, 0x2a, 0xb6, 0x75, 0xde, 0xfa, 0xf6,
-       0x02, 0x5f, 0xac, 0x2c, 0xa2, 0xe1, 0xf1, 0x2c, 0xda, 0x9b, 0x06, 0xba,
-       0xad, 0x4a, 0x23, 0x04, 0xb7, 0x61, 0x74, 0x0c, 0x28, 0x9e, 0xf0, 0x96,
-       0x25, 0xf0, 0x94, 0x1a, 0x88, 0x5f, 0x11, 0x41, 0xfb, 0x95, 0xe3, 0xe5,
-       0x71, 0x67, 0xc4, 0x8d, 0xb6, 0xac, 0x3b, 0xfe, 0x17, 0x11, 0x03, 0x2b,
-       0xb3, 0x46, 0x19, 0xaa, 0x34, 0xf4, 0x65, 0x5f, 0x77, 0xe7, 0xdb, 0x6b,
-       0x2e, 0x7c, 0xdf, 0x56, 0x9b, 0xff, 0x9e, 0x15, 0x73, 0x46, 0x80, 0xed,
-       0x09, 0xcb, 0x2a, 0x89, 0xdc, 0x7c, 0xb3, 0x1a, 0x31, 0x7c, 0x47, 0xb0,
-       0x0c, 0xeb, 0x35, 0x7c, 0x71, 0x47, 0xf3, 0x2f, 0x94, 0x53, 0x23, 0x4d,
-       0x88, 0x1f, 0x75, 0x20, 0xaa, 0x3d, 0xcb, 0xef, 0xb9, 0x73, 0x3b, 0xc2,
-       0x4d, 0x38, 0x70, 0xf4, 0x22, 0xaf, 0x3b, 0xed, 0x6b, 0xbd, 0xfb, 0xe7,
-       0xce, 0xbd, 0x25, 0xfc, 0x2c, 0x1e, 0x3c, 0x2a, 0xbf, 0xef, 0x40, 0x77,
-       0x93, 0x82, 0xa9, 0x9b, 0x37, 0xc3, 0x61, 0x34, 0xa1, 0x6f, 0xbf, 0xe2,
-       0xec, 0x69, 0x52, 0x11, 0xf5, 0xea, 0xc1, 0x18, 0x27, 0xc1, 0x69, 0x20,
-       0x56, 0x1a, 0x09, 0x3b, 0xdf, 0x48, 0x44, 0x34, 0x87, 0x61, 0x59, 0xc1,
-       0xd0, 0x6c, 0x38, 0x6a, 0x2c, 0xeb, 0x31, 0xd3, 0x03, 0xff, 0xa7, 0x9e,
-       0x47, 0x7c, 0xb4, 0x1d, 0xaa, 0xf1, 0x3c, 0x7a, 0x46, 0x9f, 0xc7, 0x43,
-       0x7b, 0xcb, 0x31, 0x35, 0x83, 0xe3, 0x4d, 0xf9, 0xf0, 0xed, 0x05, 0xd2,
-       0xb7, 0xc8, 0xd1, 0xcc, 0xc3, 0x8d, 0x29, 0xc7, 0x39, 0x7e, 0x4b, 0x99,
-       0x8b, 0xd6, 0xd4, 0xec, 0xcb, 0x65, 0xb6, 0xb3, 0x4c, 0xdf, 0xfb, 0xca,
-       0xc4, 0x47, 0x23, 0xf8, 0x4e, 0x42, 0xc1, 0x96, 0x50, 0x15, 0xa2, 0x35,
-       0x32, 0x5e, 0xcb, 0x3a, 0x6a, 0x9e, 0xb3, 0xa6, 0x34, 0xe9, 0x6b, 0x12,
-       0xcf, 0xf2, 0xbf, 0x1d, 0xa1, 0x57, 0xad, 0x9c, 0x57, 0xda, 0xfb, 0x3c,
-       0x6d, 0x68, 0x2d, 0xaf, 0x3b, 0x91, 0x4a, 0x20, 0x56, 0x15, 0xf9, 0x04,
-       0xcf, 0x75, 0xf3, 0x2d, 0xc5, 0xed, 0x7e, 0x3b, 0xe1, 0xfe, 0x54, 0xa5,
-       0xa1, 0xde, 0x57, 0x0d, 0x27, 0x9e, 0xa3, 0xcc, 0x27, 0xcc, 0xcd, 0x70,
-       0x19, 0x5f, 0x10, 0x9b, 0xe3, 0xb8, 0x5e, 0xb4, 0x30, 0xbb, 0x58, 0x5f,
-       0xda, 0xd5, 0xb0, 0x23, 0x65, 0x59, 0xbb, 0xcc, 0xe8, 0x87, 0xcb, 0x68,
-       0x10, 0xa7, 0x13, 0xed, 0x70, 0x47, 0x02, 0xfe, 0xf3, 0x08, 0x63, 0x79,
-       0xd6, 0x8b, 0x27, 0x12, 0x70, 0xb6, 0x2c, 0xa8, 0x43, 0x4f, 0x36, 0x82,
-       0xeb, 0xb3, 0x26, 0x5a, 0xb3, 0x7f, 0xda, 0xca, 0x6e, 0x48, 0xf9, 0x39,
-       0x86, 0x3f, 0x58, 0xf9, 0x31, 0xc8, 0xf8, 0xe4, 0x9b, 0xf3, 0x9a, 0xba,
-       0x02, 0xbb, 0x47, 0x0c, 0xec, 0xe4, 0xfc, 0xad, 0x0a, 0xe5, 0xa2, 0x65,
-       0xd0, 0xcd, 0xf3, 0x88, 0x60, 0x45, 0xd6, 0xe0, 0x9c, 0x46, 0xb0, 0x3c,
-       0x55, 0xaf, 0x8d, 0x62, 0x21, 0xa2, 0xbe, 0xbc, 0x6d, 0xef, 0xe1, 0x78,
-       0xd7, 0x07, 0xda, 0x51, 0x49, 0x1b, 0xc9, 0x2c, 0x09, 0xa3, 0x85, 0xfd,
-       0xaf, 0xf9, 0x33, 0xfa, 0xbf, 0x89, 0xfd, 0xbf, 0xc5, 0xfe, 0x73, 0x76,
-       0xff, 0x70, 0xae, 0xe6, 0xb9, 0x9b, 0xf6, 0xb8, 0x3b, 0xe3, 0x74, 0xae,
-       0x4a, 0x79, 0xb1, 0x2b, 0x63, 0xd2, 0xe6, 0xe4, 0x2f, 0x1f, 0x76, 0x8c,
-       0xd4, 0x61, 0xe7, 0x88, 0xee, 0x7b, 0x8a, 0xbf, 0x7b, 0xc7, 0xae, 0xc0,
-       0xf6, 0x11, 0x05, 0x87, 0x8c, 0x2b, 0xd0, 0xc3, 0xdf, 0x07, 0x46, 0xe6,
-       0xe2, 0xc1, 0x11, 0x07, 0xc2, 0x33, 0xa6, 0x8f, 0x43, 0xbe, 0xaf, 0x40,
-       0x7c, 0xcc, 0x8f, 0x9e, 0xc4, 0xb3, 0xb6, 0x0e, 0x2b, 0x23, 0xdf, 0x2e,
-       0xfa, 0x33, 0x7d, 0xc7, 0x8f, 0x0d, 0x09, 0x1f, 0x7a, 0x52, 0xe2, 0x07,
-       0x6e, 0xda, 0xa6, 0xf8, 0xc1, 0xaf, 0x80, 0x2a, 0xb6, 0x9f, 0x2d, 0xfe,
-       0xaf, 0xc0, 0xc9, 0x79, 0xdb, 0xc8, 0xff, 0x76, 0xa5, 0xc4, 0x26, 0xa4,
-       0x4d, 0xb1, 0x0b, 0xf9, 0x5d, 0x4b, 0xbb, 0x2b, 0x87, 0xff, 0x70, 0x39,
-       0x82, 0x0f, 0x68, 0x78, 0xad, 0x59, 0xae, 0xd3, 0xde, 0x43, 0x52, 0x66,
-       0x10, 0x47, 0x32, 0xe2, 0xa7, 0x7e, 0xb4, 0x24, 0x26, 0xd9, 0x7e, 0x33,
-       0xdb, 0x36, 0xf1, 0x4f, 0xd9, 0x26, 0xfc, 0x63, 0x36, 0x88, 0x7f, 0xa0,
-       0x1e, 0xbf, 0x99, 0xf5, 0xe3, 0xd1, 0x6c, 0x1d, 0xbe, 0x91, 0xf5, 0xe1,
-       0xeb, 0x9c, 0xbf, 0xaf, 0x65, 0xdb, 0x69, 0xfb, 0x1a, 0x8e, 0x67, 0x45,
-       0xff, 0x25, 0x1c, 0x6f, 0x39, 0x7a, 0x47, 0xea, 0x83, 0xa7, 0x69, 0x5b,
-       0xff, 0x60, 0xae, 0x46, 0xae, 0xb6, 0xd9, 0xb6, 0xc9, 0x5d, 0xbc, 0xbe,
-       0x7b, 0xa4, 0x3e, 0x7a, 0xa5, 0x62, 0x59, 0x6a, 0xa8, 0x31, 0x7c, 0x4a,
-       0x55, 0x31, 0xe5, 0xd5, 0xfd, 0x39, 0x55, 0xf7, 0x47, 0xe1, 0x42, 0x82,
-       0xbe, 0x11, 0x9f, 0xa9, 0xa7, 0xe3, 0xb4, 0x29, 0xaf, 0x31, 0xca, 0xf1,
-       0xe8, 0xfe, 0xb8, 0xaa, 0x61, 0x67, 0x4a, 0x3f, 0x10, 0x57, 0xbd, 0x88,
-       0x67, 0xcb, 0xf1, 0xb3, 0x11, 0xbd, 0x3f, 0xae, 0xde, 0x88, 0x78, 0xad,
-       0x65, 0x7d, 0x3d, 0x84, 0x6d, 0xb3, 0x23, 0x88, 0xce, 0x8c, 0x20, 0x36,
-       0x37, 0x52, 0x87, 0x54, 0x0a, 0x78, 0x6b, 0xc0, 0xf0, 0xfd, 0x8b, 0xd2,
-       0x8e, 0xbf, 0x6e, 0xd7, 0xfd, 0x7e, 0xb5, 0x31, 0x3e, 0xaa, 0x2e, 0xa1,
-       0x4b, 0xc3, 0xef, 0x8b, 0xac, 0x44, 0x97, 0x7d, 0x4d, 0x81, 0x66, 0x78,
-       0xd1, 0x9b, 0xfa, 0x30, 0x62, 0xde, 0xfa, 0x8e, 0x21, 0xb5, 0xfe, 0xa2,
-       0xa9, 0xea, 0x93, 0xed, 0xaa, 0x65, 0xfd, 0x7c, 0xf1, 0x5b, 0x96, 0x7f,
-       0x96, 0x65, 0x2d, 0x5a, 0x2c, 0x7d, 0xfa, 0x51, 0x13, 0x31, 0xb1, 0xd6,
-       0x9e, 0xc3, 0x72, 0x9c, 0x1b, 0xa9, 0x65, 0x1f, 0x1a, 0xfe, 0xf7, 0x35,
-       0x7a, 0x70, 0xb3, 0x5a, 0x8e, 0xd7, 0xc6, 0xca, 0xf1, 0x0a, 0xc7, 0xf3,
-       0x8b, 0x11, 0x1f, 0x7e, 0x35, 0x62, 0x59, 0x9f, 0x32, 0xff, 0x0a, 0xc3,
-       0xb5, 0x83, 0xf8, 0xc7, 0x09, 0x2f, 0x7e, 0x96, 0xd0, 0xf0, 0x6a, 0x22,
-       0x7a, 0xef, 0x0c, 0xe8, 0xd1, 0x09, 0xe5, 0xf4, 0xed, 0x55, 0x68, 0x6c,
-       0xaf, 0x52, 0xf4, 0xb6, 0x3d, 0xd0, 0x7d, 0x57, 0x2a, 0x5e, 0x9c, 0xcf,
-       0x68, 0xf8, 0x49, 0xa6, 0x3e, 0xfc, 0xcf, 0xec, 0xf3, 0x37, 0xe6, 0x63,
-       0x56, 0x6e, 0x96, 0xe8, 0x4d, 0x74, 0x44, 0x3d, 0xa7, 0xa8, 0xe7, 0x14,
-       0xf5, 0x9c, 0xa2, 0x9e, 0x29, 0xc3, 0xa3, 0x29, 0xea, 0x99, 0xba, 0xfb,
-       0x3a, 0x6d, 0xea, 0x6b, 0x9c, 0xc7, 0xe3, 0xf6, 0x3c, 0x86, 0x39, 0x5f,
-       0x7f, 0x81, 0xbf, 0xb5, 0xb1, 0xf5, 0x59, 0xeb, 0xbf, 0x79, 0x65, 0x4c,
-       0x0f, 0xcf, 0xcc, 0xe3, 0x97, 0x8c, 0xed, 0x3b, 0x56, 0x4c, 0x93, 0x71,
-       0xc9, 0xf8, 0x6c, 0xfd, 0xf9, 0xb7, 0x29, 0x3b, 0x15, 0x94, 0x5b, 0xd6,
-       0x5e, 0xb3, 0xf0, 0xbf, 0xb7, 0x38, 0xbe, 0x9b, 0x95, 0xbc, 0x5d, 0xfd,
-       0x5d, 0x29, 0xf5, 0x1d, 0x8c, 0xaa, 0x2b, 0x79, 0xae, 0xc7, 0xa3, 0xf8,
-       0xa8, 0xe3, 0xbd, 0xe7, 0xf7, 0x7a, 0x65, 0x3e, 0xfc, 0x97, 0xce, 0x69,
-       0x8f, 0x76, 0x7f, 0x77, 0xf2, 0x5c, 0xc6, 0x22, 0xb6, 0x28, 0x36, 0xe0,
-       0xa5, 0xbd, 0x5c, 0x53, 0xf8, 0x0f, 0x71, 0x35, 0xb2, 0x0d, 0xed, 0xcd,
-       0x8f, 0xd8, 0x7d, 0x94, 0x24, 0xc5, 0x6f, 0x14, 0xbc, 0xf5, 0x61, 0x05,
-       0xa7, 0x42, 0x06, 0x6d, 0xe6, 0x18, 0x71, 0x01, 0x28, 0x4d, 0xc2, 0xed,
-       0x89, 0x44, 0x90, 0x18, 0x80, 0xbb, 0x2c, 0x12, 0xc6, 0xc2, 0x81, 0xfa,
-       0xce, 0x73, 0xd0, 0x83, 0x03, 0x8a, 0xde, 0xce, 0x58, 0x62, 0x8e, 0x53,
-       0x8f, 0x57, 0x2a, 0xba, 0xbf, 0x44, 0x81, 0x5b, 0x61, 0xb9, 0x40, 0xe6,
-       0x18, 0x76, 0x66, 0xe5, 0x77, 0x18, 0x46, 0xe6, 0x37, 0xc5, 0xbe, 0x24,
-       0xa6, 0xd0, 0xee, 0xcf, 0x71, 0xec, 0xba, 0x9f, 0xf8, 0xea, 0x76, 0x45,
-       0x3a, 0x71, 0x38, 0x01, 0x77, 0x49, 0x64, 0x2b, 0x9e, 0x4c, 0x84, 0x67,
-       0x16, 0xcb, 0x29, 0x2c, 0xe7, 0xcf, 0x4c, 0x97, 0xe5, 0xc7, 0x56, 0xd4,
-       0x9b, 0x97, 0xa5, 0x3c, 0x79, 0x0c, 0x7b, 0x52, 0x52, 0x37, 0x62, 0xd7,
-       0x75, 0xb2, 0x8f, 0xbe, 0x44, 0x7d, 0xdb, 0x0d, 0x8a, 0x1e, 0x7e, 0x98,
-       0xf3, 0xd7, 0x83, 0xc6, 0xe8, 0x1b, 0xd0, 0xb5, 0x4e, 0xe4, 0x65, 0x59,
-       0x90, 0xc9, 0xcb, 0x31, 0x3f, 0x03, 0xe5, 0xf6, 0x14, 0xac, 0x39, 0x06,
-       0x3c, 0x3e, 0xc3, 0xf0, 0xbf, 0xe3, 0xa8, 0xc5, 0x01, 0xce, 0x4f, 0x1f,
-       0x7d, 0x45, 0xf0, 0xec, 0xee, 0xbd, 0x7e, 0x78, 0x0c, 0x0b, 0x47, 0x42,
-       0xb5, 0x78, 0x96, 0x58, 0x5b, 0x45, 0xdf, 0x7c, 0x5e, 0x43, 0x74, 0x4e,
-       0x24, 0xac, 0xdc, 0x92, 0x1d, 0x2d, 0xcc, 0xc1, 0x8b, 0x35, 0x05, 0x19,
-       0xdf, 0x77, 0xbd, 0x5a, 0xf9, 0xe0, 0xeb, 0x50, 0x3a, 0x52, 0x7a, 0x30,
-       0x0e, 0x0b, 0xd5, 0x8b, 0x75, 0xff, 0x94, 0xf2, 0x96, 0x8a, 0x2a, 0x62,
-       0x75, 0xf6, 0xfd, 0xe5, 0x1a, 0xb5, 0x31, 0xc6, 0x65, 0x07, 0x43, 0x5f,
-       0x54, 0xd3, 0x4d, 0x36, 0x13, 0x74, 0xd9, 0xd7, 0x1c, 0x48, 0x3b, 0xa3,
-       0x3e, 0x07, 0x7e, 0x6f, 0x45, 0xd7, 0xc9, 0xb5, 0x72, 0xc4, 0xda, 0x1b,
-       0x7d, 0x4e, 0x34, 0x86, 0xb7, 0xd3, 0x07, 0xa7, 0xd6, 0xb5, 0xf0, 0xbf,
-       0x80, 0x79, 0x1a, 0xf5, 0xfe, 0xed, 0x90, 0xdf, 0xef, 0xd0, 0x6e, 0x5a,
-       0xa4, 0x2e, 0xcb, 0x88, 0x1d, 0xea, 0x9a, 0xf8, 0x78, 0x9f, 0x69, 0x59,
-       0x87, 0xcd, 0x13, 0x4a, 0x4b, 0xea, 0x5d, 0x2b, 0xea, 0x8c, 0x47, 0x4b,
-       0x23, 0x01, 0x73, 0x27, 0xc1, 0xd8, 0x11, 0x89, 0x2b, 0xd1, 0x6c, 0x9f,
-       0x72, 0x7d, 0xb6, 0x5f, 0x59, 0x91, 0x95, 0xf2, 0x27, 0x94, 0xe5, 0x59,
-       0x29, 0x5f, 0x2c, 0x1b, 0x66, 0x59, 0xe0, 0x48, 0x22, 0x10, 0x2c, 0x96,
-       0x5f, 0xc1, 0xb2, 0xd7, 0x5f, 0x2a, 0x1b, 0xa6, 0xad, 0x9a, 0x9c, 0x97,
-       0x0a, 0x6c, 0xd6, 0xf4, 0x68, 0x9c, 0x3a, 0x2f, 0x8d, 0xf8, 0x6e, 0x7d,
-       0xdd, 0xc8, 0x05, 0x1d, 0x9c, 0x83, 0xa3, 0x1c, 0x59, 0x2b, 0x71, 0x6e,
-       0x83, 0xe1, 0x42, 0xbf, 0x56, 0x8d, 0x0d, 0xe6, 0x6f, 0xad, 0xcd, 0xeb,
-       0xe4, 0xbf, 0xbc, 0x6c, 0xb0, 0xcb, 0xd7, 0xb1, 0xbc, 0x6e, 0x1e, 0x2d,
-       0x60, 0xeb, 0xa9, 0x04, 0x06, 0x1d, 0x11, 0x62, 0x7e, 0x73, 0xc0, 0xdf,
-       0x03, 0x99, 0x1b, 0x3f, 0xae, 0xa7, 0x2c, 0x69, 0xe7, 0x74, 0xfc, 0x45,
-       0xfc, 0x72, 0x19, 0xb9, 0x26, 0xe5, 0xa6, 0x68, 0xdf, 0x82, 0x75, 0x96,
-       0x35, 0x64, 0x8a, 0x9d, 0xfb, 0x68, 0xe7, 0x33, 0xe1, 0xaf, 0xd5, 0xe3,
-       0x69, 0x56, 0x38, 0x9c, 0x98, 0x81, 0xb4, 0xa6, 0x12, 0x73, 0xef, 0xf2,
-       0xa0, 0x2a, 0xaa, 0x94, 0x90, 0xdb, 0x60, 0x42, 0xc6, 0x59, 0x89, 0xa8,
-       0x53, 0x0f, 0xca, 0xdc, 0x95, 0x30, 0xe6, 0x35, 0xa8, 0xac, 0x77, 0xc9,
-       0x97, 0x65, 0xcc, 0x7e, 0xfa, 0x72, 0xdc, 0xd6, 0x51, 0xeb, 0xa5, 0x71,
-       0x4b, 0x7b, 0x45, 0x1d, 0xfd, 0x67, 0xea, 0x59, 0xd6, 0x8e, 0x4b, 0xba,
-       0x2d, 0x89, 0x96, 0x51, 0xb7, 0xc7, 0x12, 0x81, 0xf0, 0xd3, 0x88, 0x2b,
-       0x6d, 0x59, 0x27, 0xc6, 0x12, 0x52, 0xaf, 0x8f, 0xe5, 0xfb, 0x95, 0x95,
-       0x97, 0xea, 0x4c, 0x15, 0xfc, 0x56, 0xc6, 0x23, 0xe3, 0xbb, 0x0e, 0x1b,
-       0xf6, 0xea, 0xf1, 0x38, 0xc4, 0xae, 0xa2, 0x58, 0x6f, 0xea, 0x7e, 0xda,
-       0x1f, 0xed, 0x06, 0xa8, 0x49, 0xc6, 0xdc, 0x79, 0x0c, 0x00, 0xee, 0xd8,
-       0xdb, 0xce, 0xb1, 0x5a, 0x78, 0xcd, 0xac, 0xc5, 0x18, 0xbd, 0xb4, 0x3a,
-       0x29, 0xd7, 0xa7, 0xcb, 0x18, 0x51, 0xd6, 0x1f, 0xf5, 0x97, 0xa1, 0x5c,
-       0xe4, 0xfc, 0x1b, 0x35, 0x6f, 0xbf, 0x1f, 0x54, 0xff, 0x17, 0xd6, 0x98,
-       0x37, 0x7f, 0xad, 0x3a, 0x29, 0x9c, 0xaf, 0x1d, 0x5a, 0xd2, 0xc3, 0x78,
-       0x17, 0xb7, 0x2a, 0x0c, 0xbd, 0xfd, 0x82, 0xd2, 0x8d, 0x1b, 0x43, 0x7a,
-       0xec, 0x87, 0x8a, 0x1e, 0x1d, 0x50, 0x0c, 0xfa, 0x61, 0x10, 0xab, 0xb2,
-       0xef, 0xef, 0xeb, 0xfb, 0x50, 0x0f, 0x4b, 0x3f, 0xd2, 0xdf, 0x59, 0xf4,
-       0xdb, 0x63, 0x2a, 0x8e, 0x47, 0xc6, 0xa6, 0x60, 0xb3, 0x3d, 0xa6, 0x15,
-       0xb6, 0x7f, 0x7c, 0xd7, 0x74, 0x61, 0xe3, 0xde, 0x53, 0x0b, 0xc5, 0x40,
-       0x36, 0x1d, 0x8d, 0xa2, 0xb7, 0xd9, 0x85, 0x0d, 0xa3, 0x37, 0xa9, 0x22,
-       0x1b, 0xd4, 0xf9, 0x65, 0xf9, 0x6f, 0x85, 0xbc, 0xc5, 0x83, 0xf5, 0x59,
-       0xce, 0x1d, 0x31, 0x74, 0xfd, 0x51, 0x99, 0xdb, 0x5a, 0x7e, 0xcb, 0xdc,
-       0x7a, 0xf9, 0x2d, 0xf3, 0x3c, 0x8b, 0xdf, 0xd5, 0xf0, 0xcf, 0x12, 0x59,
-       0x9a, 0x91, 0xd8, 0x0f, 0x77, 0x45, 0xa4, 0x0b, 0x77, 0x0d, 0x58, 0x56,
-       0x7f, 0xc0, 0xb2, 0xca, 0x42, 0xe4, 0x59, 0x81, 0xc6, 0xf0, 0x95, 0x4a,
-       0x09, 0xa6, 0xb4, 0x66, 0xf4, 0x1f, 0x2d, 0x89, 0x55, 0x47, 0x66, 0xd1,
-       0xf7, 0x35, 0xfc, 0x6c, 0x49, 0x3b, 0x26, 0xc6, 0xa7, 0x8f, 0x21, 0x6f,
-       0x67, 0xdf, 0x5e, 0x50, 0xb4, 0x33, 0x91, 0x5f, 0x64, 0xd7, 0xfb, 0xd3,
-       0xf4, 0xcb, 0xb8, 0x86, 0x18, 0xfd, 0x83, 0x32, 0xd5, 0xa2, 0xe7, 0x12,
-       0xa7, 0xfe, 0xa0, 0xfa, 0x17, 0x1b, 0x3b, 0x13, 0xef, 0x5a, 0x0c, 0xa7,
-       0xfc, 0xe4, 0x1a, 0xef, 0xcd, 0xbc, 0xd7, 0x6e, 0xca, 0x6c, 0xbb, 0x91,
-       0xb2, 0x17, 0x1b, 0xef, 0xcc, 0xac, 0xb0, 0xc7, 0x9c, 0x66, 0xe1, 0x4d,
-       0x7b, 0x45, 0xa7, 0xa2, 0x03, 0x0b, 0xc7, 0xcd, 0xeb, 0x88, 0x15, 0xaf,
-       0x5b, 0x8e, 0x59, 0xd2, 0x46, 0x97, 0xd2, 0x4a, 0x7b, 0x8a, 0x3b, 0x4b,
-       0x41, 0x4e, 0xad, 0x95, 0x44, 0xa2, 0xca, 0x5a, 0x5b, 0xff, 0xad, 0xca,
-       0xca, 0xd1, 0xe9, 0x6d, 0x77, 0xd1, 0x77, 0x1f, 0x57, 0xf3, 0xf3, 0x7d,
-       0xde, 0x1e, 0x43, 0x5e, 0x7e, 0x3f, 0xda, 0x53, 0xd2, 0x8e, 0xe8, 0x35,
-       0xef, 0x6f, 0xed, 0x12, 0x23, 0x2e, 0xc9, 0x9c, 0xe7, 0x1e, 0x97, 0x31,
-       0x61, 0xc9, 0x7b, 0xf0, 0xe3, 0x7a, 0xe2, 0x47, 0xf4, 0x3f, 0xc4, 0x8f,
-       0xa5, 0x7f, 0xa2, 0xec, 0x59, 0xca, 0x21, 0x3c, 0x45, 0xe2, 0x9e, 0xf0,
-       0x16, 0xe1, 0x2b, 0x41, 0xca, 0x25, 0xfc, 0xa5, 0x68, 0x1b, 0x96, 0xf5,
-       0x4d, 0x73, 0x01, 0x62, 0xb5, 0xfa, 0x20, 0x50, 0x87, 0x41, 0xca, 0xea,
-       0x48, 0x22, 0xce, 0x71, 0x52, 0xd7, 0xea, 0x75, 0x0e, 0xa8, 0x4d, 0x0e,
-       0x74, 0xe3, 0x55, 0xd3, 0xe8, 0xdf, 0x8c, 0xbf, 0x44, 0x8f, 0xd7, 0xc2,
-       0x61, 0x33, 0x48, 0x5c, 0x2a, 0x47, 0x67, 0x13, 0x27, 0x62, 0xad, 0x17,
-       0x43, 0xa9, 0x78, 0x07, 0x61, 0x83, 0x31, 0xec, 0xd9, 0x4f, 0x26, 0x02,
-       0x7a, 0xfb, 0x56, 0xa6, 0x40, 0xab, 0x06, 0xdc, 0xf0, 0x4b, 0x2a, 0xc4,
-       0x98, 0xf1, 0x75, 0xc6, 0xf9, 0x4d, 0xe6, 0x15, 0xd4, 0x6d, 0x1f, 0x6d,
-       0x48, 0xa5, 0xbd, 0x48, 0x3f, 0x41, 0xf2, 0x19, 0xa9, 0xcb, 0xb8, 0xd0,
-       0xa0, 0xe0, 0x86, 0x06, 0xda, 0x27, 0x79, 0xd1, 0xe7, 0x43, 0x4e, 0xfb,
-       0xff, 0x44, 0xb6, 0x31, 0x7a, 0xb3, 0xfa, 0x23, 0x0b, 0x33, 0xed, 0x36,
-       0xb4, 0xa8, 0x4a, 0xb9, 0xff, 0x28, 0x27, 0x30, 0x21, 0x5c, 0xad, 0xd2,
-       0xf8, 0x0d, 0xc6, 0xbd, 0x52, 0xa7, 0x0a, 0x15, 0xc3, 0xf1, 0x59, 0xe5,
-       0xb4, 0xe1, 0xd2, 0x88, 0x8e, 0xbb, 0x46, 0x2b, 0xe1, 0x18, 0xd6, 0x2f,
-       0xae, 0x74, 0x20, 0x56, 0x22, 0xfc, 0x70, 0xb4, 0x16, 0x35, 0xfb, 0xac,
-       0x6e, 0x77, 0xc4, 0xb2, 0x3c, 0x4b, 0x22, 0xb8, 0xf7, 0xa8, 0x06, 0x75,
-       0x9f, 0x0b, 0x15, 0xcc, 0x43, 0xd6, 0x99, 0x7d, 0xb8, 0x8f, 0xfc, 0x6e,
-       0x4e, 0x32, 0x88, 0xd5, 0xc4, 0xa2, 0x8b, 0xa9, 0xb6, 0xd6, 0x17, 0x12,
-       0x0d, 0xdb, 0xe6, 0x38, 0x84, 0xfb, 0xaf, 0xc1, 0xe6, 0xec, 0x1a, 0xdc,
-       0xc9, 0xd8, 0xf9, 0x9c, 0x81, 0xee, 0x39, 0xf4, 0xd7, 0x3b, 0xc9, 0xff,
-       0x36, 0xa6, 0xd6, 0x61, 0x63, 0x76, 0x1b, 0xff, 0xeb, 0xc0, 0xdd, 0x3c,
-       0x36, 0xa5, 0xc4, 0xbf, 0x3f, 0x8d, 0x4d, 0xd9, 0x7a, 0xc4, 0x46, 0x37,
-       0x62, 0x2b, 0x39, 0xc1, 0x5d, 0xa3, 0x5e, 0xea, 0xb6, 0x0d, 0x1b, 0xb2,
-       0x6d, 0xb8, 0x97, 0x63, 0xb9, 0x97, 0xf3, 0xa1, 0x26, 0xb7, 0xd2, 0xc7,
-       0x3c, 0xf0, 0x0e, 0x2f, 0xc5, 0x7d, 0xa3, 0xd7, 0x61, 0x0b, 0xe3, 0xe4,
-       0xed, 0x4b, 0xae, 0x43, 0xf7, 0xe8, 0x7d, 0xe8, 0x4a, 0x19, 0x5d, 0x73,
-       0x98, 0x6a, 0xbd, 0xb5, 0xe4, 0x3e, 0xdc, 0x43, 0x39, 0xb6, 0xed, 0xb5,
-       0x50, 0xb6, 0x68, 0xb1, 0x6a, 0xd4, 0xc4, 0x2d, 0x9f, 0x21, 0xb1, 0xf9,
-       0xc0, 0xad, 0x7d, 0xc6, 0xee, 0x02, 0xb6, 0x38, 0x51, 0x62, 0x28, 0x62,
-       0xa3, 0xf9, 0xeb, 0x89, 0xbf, 0xc1, 0xe6, 0x51, 0x17, 0xee, 0x18, 0xed,
-       0x52, 0x56, 0x8b, 0xad, 0xb8, 0x54, 0xce, 0x67, 0x94, 0xd8, 0xd7, 0xaa,
-       0xb4, 0x8c, 0xda, 0xf3, 0xac, 0x79, 0x23, 0x5d, 0xca, 0xba, 0xec, 0x9d,
-       0x0e, 0x94, 0xcb, 0x5c, 0x5c, 0x83, 0xf1, 0xa6, 0xaf, 0x58, 0xe9, 0xfc,
-       0x7c, 0xa6, 0xe9, 0x3e, 0x6e, 0x5f, 0xe4, 0x57, 0x9f, 0xf4, 0x2d, 0xd0,
-       0xbb, 0x0e, 0xa8, 0xc2, 0x2b, 0xdd, 0xc8, 0xd9, 0xf3, 0x59, 0xc2, 0x7e,
-       0x6a, 0x70, 0xc4, 0x9b, 0xe7, 0x12, 0xf3, 0xd8, 0x97, 0x95, 0x72, 0x71,
-       0xac, 0x94, 0x9b, 0xe3, 0x99, 0x93, 0xf4, 0xe1, 0x7e, 0xea, 0xa7, 0x8b,
-       0x73, 0xd4, 0x45, 0xbd, 0x7c, 0x2e, 0x75, 0x8a, 0x31, 0x62, 0x1b, 0x3e,
-       0x57, 0xe8, 0xa7, 0x2f, 0x5b, 0x8a, 0x72, 0xa3, 0x0f, 0x8f, 0x68, 0x25,
-       0xf4, 0x31, 0xe1, 0x19, 0x07, 0x6e, 0x3d, 0x6c, 0xac, 0xe3, 0x18, 0xbe,
-       0xc4, 0x36, 0x44, 0xae, 0x46, 0xad, 0x06, 0xf9, 0xb2, 0x3d, 0xc4, 0xec,
-       0x72, 0xe3, 0x37, 0xd6, 0x23, 0xde, 0x76, 0xbb, 0x6c, 0x15, 0xcb, 0x3e,
-       0x3f, 0xe0, 0xc7, 0x8d, 0xb4, 0xef, 0xb2, 0x64, 0x94, 0x7a, 0x77, 0x93,
-       0x53, 0xb5, 0x52, 0xe7, 0x9c, 0x63, 0xea, 0xf5, 0x0e, 0xda, 0xb3, 0x33,
-       0xb9, 0x86, 0xf3, 0xa0, 0xa1, 0x32, 0xd9, 0xc7, 0x79, 0xf0, 0xc2, 0x9d,
-       0x6c, 0x47, 0x27, 0xe5, 0x72, 0x25, 0xd7, 0x71, 0x2e, 0xea, 0xe0, 0x49,
-       0x76, 0x70, 0x2e, 0x80, 0xbb, 0xa8, 0xcb, 0xfb, 0x42, 0xbf, 0x56, 0x7a,
-       0x6b, 0x65, 0x18, 0x6d, 0x9c, 0xbf, 0x28, 0x36, 0xa7, 0xea, 0xc3, 0x3b,
-       0x24, 0xee, 0x3b, 0x99, 0x90, 0x19, 0x3f, 0x26, 0x17, 0xa6, 0xf5, 0x1b,
-       0x3d, 0xfc, 0x5d, 0x94, 0xb3, 0x88, 0xe3, 0x22, 0xa7, 0xc4, 0xd7, 0xa2,
-       0x9c, 0x2e, 0x94, 0x19, 0xcf, 0x5a, 0x0f, 0x7b, 0xe1, 0x77, 0xb1, 0x6c,
-       0x39, 0xcb, 0xae, 0xa6, 0x9c, 0xab, 0x29, 0xff, 0xbc, 0xe4, 0xa7, 0xd1,
-       0x4d, 0x39, 0xe7, 0x0c, 0xbb, 0xc9, 0x51, 0x75, 0xdc, 0x4f, 0xdd, 0x1f,
-       0x48, 0x95, 0xa1, 0x9a, 0xf3, 0xfc, 0x39, 0xfe, 0xde, 0x41, 0x3f, 0x7a,
-       0x7e, 0xd0, 0xc2, 0x99, 0x90, 0x86, 0x41, 0xad, 0x0c, 0xbd, 0xc1, 0xad,
-       0xe4, 0xe5, 0x32, 0x57, 0xcc, 0xa7, 0x8c, 0x0a, 0xc6, 0x75, 0xc4, 0x5d,
-       0xcd, 0x3a, 0xb6, 0x07, 0xdd, 0x48, 0x7b, 0x11, 0x75, 0x19, 0x51, 0xda,
-       0xb8, 0x0b, 0x03, 0x9a, 0x02, 0x17, 0xf1, 0xb0, 0x94, 0xfe, 0xb4, 0x93,
-       0x71, 0xd7, 0x15, 0x91, 0xff, 0x68, 0x27, 0xe4, 0x60, 0xd5, 0x11, 0x23,
-       0xfe, 0x82, 0x12, 0x68, 0x73, 0xa9, 0xf7, 0x51, 0x47, 0x15, 0x38, 0x33,
-       0xf8, 0x25, 0x6c, 0x64, 0x5f, 0x7d, 0x29, 0x0f, 0x73, 0x93, 0xbf, 0x53,
-       0x72, 0x36, 0x7e, 0x7a, 0x90, 0x1c, 0x79, 0xdc, 0x9a, 0x67, 0x88, 0xdd,
-       0x44, 0x70, 0xcf, 0xd1, 0x2a, 0x0c, 0x0e, 0x5e, 0x87, 0x6d, 0x2c, 0xb7,
-       0x2b, 0x55, 0x0d, 0x63, 0x68, 0x99, 0x5d, 0x67, 0x84, 0xfe, 0x35, 0x90,
-       0xbc, 0x0f, 0x2b, 0x53, 0xf5, 0xc1, 0xa3, 0x4a, 0x8c, 0x3a, 0xf4, 0xa2,
-       0x3f, 0xb9, 0xd1, 0xd6, 0x69, 0x62, 0x5f, 0x27, 0xb6, 0x1e, 0xbd, 0x02,
-       0x7b, 0xf6, 0x6d, 0xc1, 0x5d, 0x47, 0x99, 0xbf, 0xda, 0xb6, 0xac, 0xa2,
-       0x77, 0xdf, 0x75, 0xca, 0x06, 0xb6, 0xb7, 0x7b, 0x98, 0xf6, 0x4c, 0x9b,
-       0xbe, 0x7f, 0xaf, 0x91, 0x5b, 0xe6, 0xd8, 0xa2, 0xf8, 0x6b, 0xaf, 0x43,
-       0x97, 0x6d, 0x7b, 0x79, 0xbd, 0xed, 0xc8, 0xce, 0x67, 0x9e, 0xf3, 0xb7,
-       0xd6, 0xa3, 0xde, 0x52, 0x7b, 0x7e, 0x55, 0xea, 0xad, 0x25, 0xc1, 0xdc,
-       0xbf, 0x96, 0xb9, 0x57, 0xc1, 0x5e, 0x7a, 0xb3, 0x8b, 0xc9, 0x1b, 0xbd,
-       0xc8, 0x68, 0x41, 0xea, 0xa3, 0x38, 0x0f, 0x0d, 0x05, 0x7b, 0x79, 0x8b,
-       0x65, 0x6c, 0x5b, 0x7e, 0x9f, 0x2f, 0xc8, 0xfc, 0xb6, 0xa3, 0x86, 0xf1,
-       0x75, 0x43, 0x68, 0x9d, 0x72, 0xaf, 0x76, 0x69, 0xce, 0x7c, 0xc5, 0x39,
-       0x93, 0x3c, 0xd1, 0x6e, 0x2b, 0xf1, 0x25, 0xdb, 0x76, 0xaf, 0xcf, 0x36,
-       0xa3, 0x73, 0x74, 0x7a, 0xfb, 0xc5, 0x3a, 0x65, 0x9c, 0x8b, 0xe2, 0x3c,
-       0xeb, 0xfd, 0x82, 0x65, 0x81, 0x45, 0x45, 0x2c, 0xbb, 0xb3, 0xd0, 0xff,
-       0x41, 0x8b, 0x31, 0xc9, 0xe9, 0x32, 0x1c, 0x18, 0x09, 0xfe, 0x57, 0x25,
-       0x5e, 0xeb, 0xa4, 0xcc, 0x0a, 0xb1, 0xe4, 0xef, 0xac, 0x3d, 0xeb, 0x64,
-       0x5e, 0x3e, 0x42, 0x43, 0x86, 0xe2, 0xba, 0xe4, 0xb3, 0x6b, 0xb0, 0x3e,
-       0x25, 0xb2, 0xb6, 0x63, 0x43, 0xca, 0x96, 0xcb, 0x5f, 0x94, 0xab, 0x8f,
-       0x36, 0xa3, 0x25, 0x77, 0xdb, 0x32, 0xb5, 0xd3, 0xae, 0xee, 0xd9, 0xab,
-       0xe2, 0xe9, 0xd0, 0x26, 0xc5, 0x3f, 0x53, 0xe2, 0x70, 0x3d, 0xba, 0xf6,
-       0xca, 0xb7, 0x9f, 0x7c, 0x37, 0xa6, 0x4c, 0xcd, 0x1c, 0x60, 0xb9, 0x65,
-       0x58, 0xbf, 0xb7, 0x16, 0x73, 0x38, 0xd6, 0xdb, 0xcd, 0xff, 0xa2, 0xbc,
-       0x33, 0x43, 0xc6, 0xb3, 0xa2, 0x10, 0xcb, 0xeb, 0x71, 0xdf, 0x5e, 0xf1,
-       0x21, 0xf9, 0xdd, 0x82, 0xde, 0xa5, 0xf5, 0x85, 0x38, 0xff, 0x37, 0x9c,
-       0x97, 0x2e, 0xe5, 0x06, 0xe2, 0x42, 0x8c, 0xb8, 0x40, 0x9b, 0x52, 0xda,
-       0x89, 0x0b, 0xd7, 0x17, 0x70, 0xc1, 0x43, 0x5c, 0x58, 0x93, 0x7d, 0x9b,
-       0xf2, 0x88, 0x2f, 0xbe, 0x57, 0x9e, 0xbb, 0x29, 0xcf, 0xb1, 0xd0, 0x1c,
-       0xc0, 0x96, 0x67, 0x19, 0x79, 0x4c, 0x2d, 0xe7, 0xd0, 0x62, 0x7c, 0x50,
-       0x94, 0x11, 0x5b, 0xcf, 0xcb, 0x28, 0xb3, 0xd8, 0x94, 0x45, 0xb9, 0x7f,
-       0x8f, 0x06, 0x7b, 0x7d, 0xe0, 0xb2, 0x3c, 0xeb, 0xf7, 0xbe, 0xcb, 0x1c,
-       0x41, 0x7e, 0x13, 0x2f, 0x9a, 0xeb, 0x89, 0x73, 0xcb, 0x88, 0x7b, 0x2e,
-       0x8e, 0x4b, 0xb0, 0x4e, 0x64, 0x73, 0xd1, 0x2f, 0xa4, 0x6d, 0xd1, 0xc9,
-       0x52, 0x47, 0x7e, 0x1e, 0x8a, 0xf3, 0xec, 0xa4, 0x1f, 0xbb, 0x51, 0x1d,
-       0xd1, 0xa3, 0x37, 0x39, 0x64, 0xce, 0x88, 0xf2, 0x43, 0xed, 0x85, 0xbe,
-       0xfe, 0xbb, 0xd2, 0x50, 0xd3, 0x4f, 0x39, 0x4f, 0x28, 0xb7, 0x70, 0x5c,
-       0xfe, 0xd2, 0xaa, 0xa8, 0x27, 0x12, 0xe8, 0x48, 0xbc, 0x2f, 0x36, 0xde,
-       0x90, 0xcd, 0xf3, 0x4b, 0x75, 0x28, 0x6e, 0x95, 0xd3, 0xf6, 0x9d, 0x46,
-       0xe0, 0xe2, 0x6a, 0xf6, 0x30, 0xef, 0xa0, 0xf0, 0x19, 0x93, 0x6d, 0x15,
-       0xfb, 0xaa, 0x23, 0x96, 0x84, 0x0a, 0x76, 0xb0, 0x46, 0x61, 0xde, 0xd0,
-       0x16, 0xb5, 0xed, 0x61, 0x17, 0xf5, 0x75, 0x42, 0xf9, 0x98, 0x70, 0x66,
-       0x9b, 0x63, 0xc4, 0x95, 0x55, 0xc4, 0x95, 0xea, 0xa4, 0x12, 0xf5, 0x46,
-       0x1a, 0xb7, 0xd5, 0x20, 0xd0, 0xf6, 0x28, 0xfb, 0xac, 0x21, 0xcf, 0xbc,
-       0x89, 0xb1, 0x36, 0xc9, 0x3e, 0x57, 0xb1, 0xcf, 0xb5, 0xd9, 0x2d, 0x6c,
-       0x57, 0xb0, 0x55, 0xc5, 0x9c, 0x7d, 0x70, 0x7b, 0x69, 0x07, 0x23, 0x0d,
-       0x4e, 0x84, 0x17, 0xff, 0x02, 0x98, 0x81, 0x98, 0xca, 0xfc, 0x7d, 0x5e,
-       0x52, 0x72, 0xa9, 0x03, 0xb7, 0x2e, 0xcb, 0x08, 0x96, 0x6a, 0xf0, 0x0c,
-       0x7b, 0x25, 0x1e, 0xa1, 0x2f, 0x54, 0xa7, 0xec, 0xb1, 0xf1, 0x56, 0x45,
-       0xd9, 0x3e, 0x05, 0x57, 0x85, 0xbe, 0xae, 0xa4, 0x67, 0xe6, 0x31, 0x5f,
-       0xa5, 0x3e, 0x7a, 0x26, 0x04, 0x1b, 0xd3, 0xc4, 0xc6, 0x63, 0x4a, 0x7e,
-       0x3d, 0x86, 0x7e, 0x9f, 0x42, 0xbc, 0x2a, 0x22, 0x6b, 0x20, 0x81, 0xce,
-       0x0f, 0x29, 0xf7, 0x11, 0x0b, 0x5d, 0x8c, 0x43, 0x1e, 0x62, 0xa3, 0xc4,
-       0xe9, 0xf4, 0xad, 0x89, 0x81, 0x3a, 0xf4, 0xd3, 0xb7, 0x37, 0x1e, 0x3d,
-       0x75, 0x8b, 0x07, 0xb5, 0xfc, 0xf6, 0xf2, 0x98, 0xc5, 0xc3, 0x4d, 0x5f,
-       0x76, 0xc3, 0x31, 0x20, 0x7c, 0xaf, 0x89, 0xb1, 0xca, 0x83, 0xf2, 0x01,
-       0x13, 0x5b, 0x28, 0x4f, 0xe9, 0x50, 0x33, 0xe3, 0x09, 0xfd, 0x3c, 0x55,
-       0x83, 0xeb, 0x07, 0x97, 0x60, 0x93, 0x8d, 0x5f, 0xb5, 0x38, 0x3b, 0xb8,
-       0xd4, 0xc6, 0x8d, 0x87, 0x52, 0x33, 0xf0, 0xce, 0xde, 0x6b, 0x6c, 0x8c,
-       0x1b, 0x64, 0x6c, 0xf6, 0xed, 0x0b, 0xa3, 0x8b, 0x6d, 0x7a, 0xf7, 0x5d,
-       0x8b, 0xfb, 0x8e, 0xfa, 0xa8, 0x23, 0x83, 0x71, 0x40, 0x7d, 0xd7, 0xff,
-       0x49, 0xb1, 0xf3, 0xe9, 0xd8, 0x2f, 0x73, 0x2d, 0x75, 0x32, 0x34, 0x56,
-       0xf9, 0xed, 0xb4, 0xb9, 0x70, 0x5e, 0x47, 0x79, 0x9d, 0x5c, 0x4d, 0x9d,
-       0xdc, 0x94, 0xa5, 0x39, 0x0c, 0x3b, 0x39, 0xd7, 0xe4, 0x10, 0x35, 0xb5,
-       0xf4, 0xcb, 0x12, 0x1e, 0xb4, 0xff, 0xd1, 0xbf, 0x60, 0x6c, 0xcf, 0x71,
-       0x3e, 0xf9, 0xdb, 0x94, 0xf9, 0x94, 0xf8, 0xe9, 0x20, 0xe6, 0x2a, 0xd4,
-       0xef, 0xff, 0x02, 0x66, 0xe7, 0x73, 0x9b, 0xa2, 0xae, 0x54, 0x8e, 0xbf,
-       0x25, 0x91, 0xb3, 0x39, 0x3d, 0x33, 0x22, 0x5d, 0xe5, 0x7f, 0x1b, 0x8f,
-       0x92, 0x73, 0x27, 0xc5, 0x67, 0xbd, 0xb4, 0xe7, 0x26, 0xea, 0x4b, 0x63,
-       0xec, 0x30, 0x89, 0x73, 0xb3, 0xe0, 0xe2, 0x38, 0x36, 0x51, 0x3f, 0x1e,
-       0x8e, 0x63, 0x2b, 0xcb, 0xdd, 0xc5, 0xff, 0xee, 0x3a, 0x5a, 0xcb, 0xc3,
-       0xcb, 0x63, 0x16, 0x8f, 0x9f, 0x12, 0xb3, 0x9a, 0x69, 0xc7, 0x0e, 0x94,
-       0x0c, 0xab, 0x78, 0xca, 0x54, 0x70, 0xa1, 0x89, 0xfd, 0x35, 0x5c, 0xc6,
-       0x3a, 0x89, 0x65, 0xde, 0xe4, 0x97, 0x88, 0x73, 0x7e, 0xac, 0x23, 0x27,
-       0xe8, 0xdc, 0xab, 0xc1, 0x15, 0xca, 0x30, 0x67, 0x12, 0x19, 0x4e, 0x14,
-       0x38, 0xe6, 0x3c, 0xe6, 0x3a, 0x8d, 0x61, 0xda, 0x90, 0xb6, 0xd9, 0xb6,
-       0xa1, 0x38, 0xe3, 0x73, 0x90, 0xb9, 0x7e, 0xde, 0x76, 0x5b, 0xde, 0x63,
-       0x47, 0xf4, 0x31, 0x8e, 0x67, 0x4e, 0x44, 0xf7, 0xdf, 0x42, 0x5f, 0x10,
-       0xce, 0x57, 0x9a, 0x04, 0x0e, 0x0c, 0xb6, 0xa3, 0x9a, 0x36, 0xe3, 0x5d,
-       0x7c, 0x14, 0xa9, 0xda, 0x7e, 0xdb, 0x56, 0xf3, 0x6d, 0x97, 0x45, 0x2b,
-       0x23, 0x8d, 0x31, 0x69, 0x7b, 0xbc, 0xd0, 0xf6, 0x0a, 0xb6, 0x9d, 0x60,
-       0xdb, 0x2b, 0xff, 0x5d, 0xdb, 0xd3, 0xe3, 0x5d, 0x4f, 0x21, 0x2e, 0x4b,
-       0xde, 0x5c, 0xc4, 0xed, 0x22, 0xc7, 0xf8, 0x8d, 0xf7, 0x32, 0x4e, 0xee,
-       0x90, 0xb9, 0xf3, 0xe5, 0x7d, 0xf6, 0xbd, 0xd8, 0x7c, 0xb9, 0xad, 0x3d,
-       0xc5, 0x18, 0x6f, 0xd6, 0x4c, 0x6b, 0x6b, 0x0e, 0xff, 0xff, 0x70, 0x4a,
-       0xb8, 0x44, 0x3b, 0x2c, 0xca, 0xfa, 0xac, 0xa1, 0x77, 0x2d, 0x73, 0x18,
-       0xdb, 0x2e, 0x32, 0xd7, 0xb9, 0xf1, 0x52, 0x5f, 0xb2, 0x36, 0xd2, 0x8e,
-       0x85, 0x03, 0x7a, 0xe7, 0x2e, 0xf2, 0xd1, 0xc3, 0x21, 0x3d, 0xfa, 0x2d,
-       0xe8, 0xf1, 0x52, 0xe5, 0x25, 0x94, 0x4c, 0x9c, 0xc5, 0x60, 0xf6, 0x47,
-       0x92, 0x6f, 0xb2, 0x4d, 0xb7, 0xe2, 0x99, 0xe8, 0x43, 0x8c, 0xf5, 0xdc,
-       0xac, 0xe7, 0x1e, 0x80, 0xbb, 0x92, 0xf5, 0xc6, 0x07, 0xe2, 0x96, 0x8b,
-       0x5c, 0x50, 0x8d, 0xe8, 0x1d, 0x95, 0x8a, 0x11, 0xdb, 0xc4, 0xb6, 0xd7,
-       0x30, 0x96, 0x95, 0x27, 0xbb, 0xc9, 0x03, 0x74, 0xdf, 0x97, 0x55, 0xbd,
-       0x6b, 0x3d, 0x5e, 0xc2, 0xbf, 0x92, 0x3c, 0xce, 0x4b, 0x9e, 0x45, 0x8a,
-       0xed, 0x59, 0xe3, 0x1a, 0xf9, 0xcc, 0xbb, 0x56, 0x78, 0x41, 0x85, 0x53,
-       0xda, 0xbd, 0x38, 0xbe, 0xe0, 0xdd, 0xc4, 0x65, 0x3c, 0xd7, 0x5c, 0x46,
-       0xe3, 0xfb, 0xf0, 0xa9, 0xa9, 0x75, 0x45, 0x62, 0xfd, 0x56, 0x57, 0x64,
-       0xdb, 0xfd, 0xc7, 0x9b, 0xf3, 0x76, 0xeb, 0xcf, 0xb8, 0x71, 0xd6, 0x2b,
-       0xbe, 0xc4, 0xfc, 0x67, 0x7f, 0x13, 0x76, 0xef, 0x67, 0x5e, 0xa9, 0x36,
-       0x86, 0xcb, 0x95, 0x1a, 0xe6, 0x44, 0xc3, 0x36, 0x1f, 0x76, 0x1a, 0xbb,
-       0xec, 0x9c, 0x59, 0xe2, 0x83, 0xd4, 0x99, 0x9f, 0x91, 0xf8, 0x27, 0xeb,
-       0x39, 0x07, 0x6e, 0xdd, 0x90, 0xa0, 0xdf, 0x6a, 0xbd, 0x2c, 0xb3, 0xae,
-       0xb0, 0x4e, 0x2f, 0x6b, 0x18, 0xbd, 0xd3, 0x38, 0xc9, 0xba, 0x69, 0xb1,
-       0xaa, 0xd1, 0x5f, 0x73, 0x29, 0x8e, 0x74, 0x14, 0xca, 0x33, 0xd9, 0xb3,
-       0x65, 0x73, 0x4f, 0xc3, 0xb3, 0x1d, 0xbc, 0x96, 0xf7, 0x85, 0xcb, 0xf1,
-       0x6e, 0x67, 0x61, 0x6e, 0x0e, 0xb9, 0xf2, 0xb8, 0xff, 0x69, 0x77, 0x71,
-       0xbd, 0x28, 0x5f, 0xe6, 0xda, 0x12, 0x94, 0xef, 0xb9, 0x14, 0x5b, 0xe2,
-       0xc4, 0xf2, 0x6d, 0x7b, 0xf3, 0xeb, 0x93, 0x95, 0x4b, 0x05, 0xb7, 0xeb,
-       0x71, 0xb7, 0xed, 0xf7, 0x5f, 0x75, 0xe5, 0xed, 0xc0, 0x59, 0x18, 0x97,
-       0x49, 0x1b, 0xbc, 0x52, 0xd6, 0xfc, 0x0b, 0xf8, 0x39, 0x9b, 0xff, 0xf7,
-       0x42, 0xe6, 0xc2, 0x45, 0xff, 0x7c, 0xdc, 0x74, 0x60, 0x6a, 0x46, 0x9e,
-       0xaf, 0xab, 0xfb, 0x9a, 0xd0, 0x33, 0x46, 0xbc, 0xa1, 0x0f, 0xb5, 0x85,
-       0xd6, 0x5a, 0xa8, 0x91, 0x75, 0x83, 0x5a, 0x54, 0xec, 0x13, 0xde, 0x4c,
-       0x9e, 0x31, 0x76, 0xca, 0x1e, 0x4b, 0x6f, 0x26, 0xbf, 0x2e, 0xb2, 0x33,
-       0xd5, 0xf7, 0xee, 0x1d, 0x9a, 0xe0, 0x85, 0xd8, 0x46, 0xdd, 0xad, 0x0b,
-       0x03, 0x39, 0xbf, 0x03, 0xba, 0xb9, 0x4b, 0x56, 0x92, 0x12, 0xb7, 0x61,
-       0x7b, 0xad, 0x82, 0x2e, 0xa3, 0x1a, 0x8e, 0xc5, 0xbf, 0xb5, 0xee, 0x58,
-       0x27, 0xff, 0xbd, 0x5b, 0xc0, 0x97, 0x0f, 0xb2, 0x6f, 0x19, 0xb7, 0x70,
-       0x3a, 0x37, 0x2a, 0xe8, 0x53, 0x37, 0x38, 0x84, 0x73, 0x2a, 0x8c, 0x9d,
-       0xf6, 0x5c, 0xa0, 0x37, 0xad, 0x60, 0x77, 0x5a, 0x30, 0xd3, 0x49, 0x1c,
-       0xf4, 0x61, 0x67, 0x5a, 0x70, 0xd0, 0x45, 0x1c, 0x9c, 0x83, 0xed, 0x69,
-       0xc1, 0xc1, 0x12, 0xbc, 0x3c, 0x78, 0x05, 0x1e, 0xe2, 0xef, 0x07, 0x53,
-       0xa5, 0x08, 0xef, 0xfd, 0x0b, 0x1c, 0x48, 0x0b, 0x7f, 0x72, 0x23, 0x35,
-       0x5c, 0x87, 0x54, 0x3a, 0xcf, 0x25, 0xaa, 0x86, 0xff, 0x12, 0x49, 0xfe,
-       0x1e, 0x20, 0xef, 0xcb, 0x0c, 0xcd, 0x45, 0x82, 0xbf, 0x65, 0xbd, 0xcd,
-       0x43, 0xf9, 0x13, 0x81, 0x0a, 0x6c, 0x18, 0x92, 0x1c, 0xda, 0x77, 0xeb,
-       0x5d, 0x81, 0x79, 0xec, 0xb3, 0x0e, 0xbb, 0xc9, 0xd9, 0xda, 0x86, 0xfc,
-       0xe8, 0xe7, 0xef, 0x9d, 0xa9, 0x4a, 0xbc, 0x36, 0xa8, 0xdb, 0xfd, 0xf5,
-       0xa4, 0x56, 0xac, 0x70, 0x19, 0x55, 0x58, 0x31, 0x38, 0x1f, 0x3b, 0xd2,
-       0x82, 0xbd, 0xd5, 0xc4, 0xde, 0x7a, 0x3c, 0x98, 0x16, 0x7e, 0xa9, 0xc1,
-       0xbb, 0xd7, 0xc0, 0x48, 0x5a, 0xd6, 0x84, 0x6b, 0x70, 0x61, 0x28, 0x80,
-       0x41, 0xbb, 0x7f, 0x13, 0xc9, 0x54, 0x98, 0xf2, 0x79, 0x51, 0xb9, 0x2f,
-       0xe7, 0xab, 0x82, 0x82, 0xc9, 0x40, 0x10, 0x03, 0x63, 0xb3, 0x50, 0xbe,
-       0x4f, 0x37, 0xb7, 0x42, 0xbf, 0x78, 0x17, 0xae, 0xc4, 0xee, 0x31, 0x1f,
-       0x4a, 0xf7, 0x55, 0xc3, 0x1d, 0x6a, 0xc2, 0xce, 0xb1, 0x0f, 0x61, 0xfb,
-       0x58, 0x1d, 0xb1, 0x13, 0x78, 0x3a, 0x63, 0xa2, 0x9f, 0x18, 0x3c, 0x87,
-       0x31, 0xe6, 0x95, 0xac, 0xcc, 0xa3, 0xcc, 0x8f, 0x02, 0x4f, 0xa0, 0x9a,
-       0x31, 0x4a, 0x7e, 0xcb, 0xb5, 0xb0, 0x8d, 0xed, 0xf9, 0x75, 0x2a, 0x3d,
-       0xbe, 0x13, 0xb6, 0xbe, 0x91, 0xcb, 0x88, 0xee, 0x65, 0x4d, 0x68, 0xba,
-       0x3d, 0xed, 0xb4, 0xd7, 0xe8, 0x2f, 0xdb, 0xe5, 0x5f, 0x15, 0xec, 0xd2,
-       0x5e, 0x53, 0xc3, 0x93, 0x97, 0xf2, 0x5c, 0xb4, 0x96, 0x20, 0x60, 0x3a,
-       0x15, 0xf8, 0x99, 0xef, 0xfa, 0x9f, 0x7a, 0xdf, 0xda, 0xda, 0xe5, 0xf5,
-       0x9f, 0xe9, 0x6b, 0xb0, 0x72, 0x6f, 0x49, 0x65, 0x3c, 0x2f, 0x41, 0x5c,
-       0x93, 0x35, 0xaa, 0x46, 0x8d, 0x5a, 0x79, 0x5f, 0xde, 0x5d, 0x15, 0x2b,
-       0x8b, 0x34, 0xc3, 0x3f, 0x5e, 0xe7, 0x7f, 0x2d, 0x21, 0x3a, 0xfd, 0xbd,
-       0xe5, 0x36, 0x0c, 0xdf, 0x31, 0xd4, 0xf9, 0x7f, 0x92, 0x79, 0xbb, 0x04,
-       0x55, 0x1e, 0x5c, 0x9f, 0xf8, 0xe0, 0x7a, 0x6a, 0x04, 0xca, 0xca, 0x66,
-       0x1f, 0x79, 0x3f, 0x9c, 0xab, 0x17, 0x60, 0xda, 0x87, 0x7c, 0x24, 0x02,
-       0xf5, 0x74, 0x73, 0x98, 0xb9, 0x7e, 0xfe, 0x7e, 0xce, 0xf2, 0xac, 0xee,
-       0x8b, 0x2a, 0xf9, 0x7b, 0x36, 0x9d, 0xa1, 0x3f, 0xd0, 0xae, 0xbb, 0x85,
-       0xb3, 0xb0, 0x2f, 0x60, 0x6b, 0xc2, 0xb2, 0x9e, 0xa4, 0x0e, 0xe4, 0x5e,
-       0xe0, 0x9b, 0x99, 0xdf, 0x59, 0x93, 0x5e, 0x27, 0x5e, 0x37, 0xa6, 0xb7,
-       0x47, 0xae, 0x17, 0x31, 0x19, 0xfb, 0xec, 0x13, 0x75, 0xdc, 0x68, 0xdc,
-       0x76, 0x98, 0x79, 0xf2, 0xc2, 0x80, 0xee, 0x4f, 0xe2, 0xff, 0x5a, 0xc2,
-       0x0b, 0xd3, 0x4a, 0x71, 0xdd, 0xee, 0xfd, 0x6b, 0x27, 0x55, 0x31, 0x17,
-       0xc7, 0x77, 0x28, 0xa1, 0xf7, 0xc7, 0x99, 0xb7, 0x45, 0xbd, 0x88, 0x39,
-       0x23, 0x75, 0xfe, 0x9d, 0x09, 0x7b, 0x9c, 0xe6, 0x79, 0xce, 0xdd, 0xe9,
-       0xe6, 0x3a, 0x7f, 0x6f, 0x46, 0x6c, 0x50, 0xe1, 0x58, 0x9a, 0xf1, 0x70,
-       0x46, 0xc5, 0x9d, 0x0f, 0x78, 0xb1, 0x69, 0xc0, 0x83, 0x6d, 0x03, 0x5f,
-       0x82, 0x71, 0x95, 0x13, 0x77, 0x30, 0xf7, 0xdb, 0x3c, 0x50, 0x4a, 0x3d,
-       0x6a, 0xd8, 0x32, 0xe0, 0x44, 0xd3, 0x55, 0x55, 0x88, 0xcf, 0x2c, 0xc5,
-       0xf3, 0xf4, 0xdd, 0xab, 0x42, 0x15, 0x48, 0xdb, 0x9c, 0x43, 0xb0, 0x41,
-       0x78, 0x9b, 0xe8, 0x8d, 0x71, 0xd0, 0x10, 0x0c, 0xf9, 0xa0, 0xf5, 0x99,
-       0xdf, 0x58, 0xb9, 0x99, 0x7b, 0x6c, 0x3e, 0xe9, 0x88, 0x88, 0x6e, 0xa4,
-       0xae, 0xac, 0x35, 0x79, 0x19, 0x23, 0xdf, 0xa3, 0x47, 0x65, 0x5e, 0x24,
-       0x30, 0xb9, 0x4c, 0x71, 0x20, 0x1c, 0xa8, 0x8a, 0x55, 0x47, 0xc2, 0x58,
-       0x99, 0xed, 0xf1, 0xf9, 0xec, 0x7b, 0x59, 0x11, 0x9c, 0x5f, 0x62, 0xe2,
-       0x96, 0x2c, 0x9c, 0x2b, 0xa9, 0xfb, 0x56, 0xea, 0x75, 0x87, 0xf9, 0x07,
-       0x2b, 0x9f, 0xd7, 0xb8, 0x89, 0x97, 0x96, 0xb5, 0x99, 0xfa, 0x65, 0x4e,
-       0x81, 0x9f, 0x16, 0xf4, 0x2b, 0x3a, 0xad, 0x18, 0xff, 0x9d, 0x75, 0x9a,
-       0xfa, 0x75, 0xb3, 0x3d, 0x37, 0xdb, 0x2b, 0x1b, 0x7f, 0xaf, 0x9e, 0x4b,
-       0x29, 0xcf, 0x4a, 0x5b, 0x86, 0xd9, 0x72, 0x2f, 0xc0, 0x1f, 0x55, 0x8a,
-       0x3c, 0xf4, 0x4f, 0x8d, 0xe9, 0x25, 0x7b, 0xbd, 0xed, 0xeb, 0x59, 0xcb,
-       0x1a, 0x36, 0x45, 0xff, 0x7e, 0xea, 0x5f, 0xd6, 0x5d, 0x64, 0x0e, 0x9a,
-       0x10, 0xad, 0xd5, 0xfb, 0x01, 0x49, 0x7c, 0x15, 0xcc, 0x60, 0xae, 0xf5,
-       0x8d, 0x76, 0x0f, 0x5e, 0x4b, 0x54, 0xda, 0xe3, 0xbe, 0xaa, 0xc1, 0xb2,
-       0xbe, 0x16, 0xf2, 0xe3, 0x4d, 0xa3, 0x31, 0xbc, 0x48, 0xd5, 0x19, 0x13,
-       0x64, 0xed, 0x83, 0xba, 0x48, 0xcd, 0xe5, 0x7c, 0x89, 0xcf, 0x63, 0x1b,
-       0xed, 0xc9, 0xef, 0x88, 0x00, 0xaf, 0x26, 0x8c, 0xe0, 0x0e, 0xf6, 0x3f,
-       0xea, 0x8d, 0x60, 0x7b, 0x4a, 0x6d, 0x75, 0x92, 0x7c, 0x96, 0x31, 0xd7,
-       0xdb, 0x85, 0x7f, 0xb5, 0xd2, 0x5e, 0x0b, 0x25, 0x21, 0x89, 0x25, 0xf3,
-       0x70, 0x46, 0x73, 0xe0, 0x99, 0xe0, 0x2c, 0x44, 0x6b, 0x1c, 0xe4, 0x33,
-       0xaf, 0x5b, 0xff, 0xec, 0x95, 0x7e, 0x64, 0x2c, 0x7f, 0xe0, 0x38, 0x14,
-       0x1b, 0xef, 0x76, 0xa6, 0x22, 0xd4, 0xf7, 0xfb, 0xfb, 0xff, 0xbf, 0xd6,
-       0x94, 0x57, 0xfa, 0xd7, 0x35, 0x3f, 0xf9, 0xf9, 0xe3, 0x1f, 0xb8, 0xce,
-       0x12, 0xe4, 0x78, 0xbf, 0x67, 0x7d, 0xc7, 0x6e, 0xf3, 0x23, 0xa5, 0x79,
-       0x5e, 0x2f, 0xed, 0x3d, 0xcd, 0xf1, 0x49, 0x9b, 0xc5, 0x7e, 0x44, 0x6f,
-       0x93, 0xa5, 0x82, 0xd7, 0x3b, 0x53, 0xa2, 0x3f, 0xc9, 0x97, 0x4e, 0x5b,
-       0x98, 0x25, 0xe7, 0x0f, 0xdb, 0x65, 0xe3, 0xd4, 0x57, 0x0f, 0x6d, 0x88,
-       0xb1, 0x81, 0xf1, 0x42, 0xee, 0xb2, 0x6a, 0xc4, 0x5c, 0x0b, 0xdb, 0x19,
-       0xb2, 0xd2, 0xde, 0x6a, 0xec, 0x34, 0x69, 0x77, 0x86, 0x3a, 0xdf, 0x09,
-       0x0b, 0xa7, 0x4d, 0x39, 0x77, 0x61, 0xca, 0xeb, 0xc0, 0x2e, 0xd3, 0x89,
-       0x4e, 0x43, 0xd5, 0xe5, 0xba, 0x23, 0x24, 0xe7, 0x2e, 0xf8, 0x67, 0x2a,
-       0xd8, 0x13, 0x56, 0xb1, 0xc5, 0xe8, 0xf1, 0xcb, 0xf5, 0xe5, 0x21, 0x39,
-       0x57, 0xb0, 0x91, 0x3a, 0x89, 0x33, 0x57, 0xde, 0xca, 0x76, 0x7b, 0x43,
-       0xf9, 0x75, 0xf1, 0x18, 0x2c, 0x6b, 0x8f, 0xd9, 0xf2, 0xe1, 0x0a, 0x96,
-       0x3b, 0x67, 0x4a, 0xec, 0x38, 0x70, 0xcb, 0xc2, 0x40, 0x3c, 0x5a, 0x02,
-       0x3d, 0x56, 0x46, 0x3f, 0xdd, 0x39, 0x30, 0x8f, 0xf5, 0x04, 0xfb, 0x9d,
-       0xbe, 0xdd, 0x90, 0xf5, 0xae, 0x80, 0xff, 0x27, 0xe4, 0xde, 0x69, 0xef,
-       0x02, 0x6a, 0xd6, 0xf0, 0xbf, 0xc2, 0x79, 0xab, 0x36, 0x9c, 0xdb, 0x5e,
-       0x80, 0xde, 0x59, 0xa6, 0x2c, 0x08, 0x56, 0xc1, 0x85, 0x38, 0xf9, 0xf9,
-       0xd8, 0x38, 0xf3, 0xeb, 0x94, 0xa1, 0x1d, 0xb1, 0xd7, 0xcc, 0x3d, 0xd4,
-       0x85, 0x87, 0xf1, 0x22, 0xa0, 0x4d, 0x2a, 0xc5, 0xf3, 0x79, 0x82, 0x0d,
-       0x31, 0x47, 0x44, 0xf0, 0x2d, 0x6e, 0x3d, 0xd1, 0x4c, 0xd5, 0x19, 0x6e,
-       0x7f, 0x2c, 0xe3, 0xe1, 0xa1, 0xf1, 0xf0, 0xfa, 0x37, 0x65, 0x7c, 0xfe,
-       0x8d, 0x19, 0xf8, 0xd7, 0x67, 0x8a, 0x76, 0x59, 0xf4, 0x6d, 0xc1, 0x36,
-       0xcb, 0x92, 0x7b, 0xc9, 0x8f, 0x67, 0xa5, 0xad, 0x7c, 0x1c, 0x2b, 0xa1,
-       0xec, 0x4f, 0xd2, 0xd6, 0x5d, 0x8c, 0x55, 0xbb, 0x8c, 0x38, 0xa1, 0xd2,
-       0xb2, 0x0c, 0xf2, 0x99, 0x12, 0xc5, 0x8f, 0x9d, 0x4d, 0xbf, 0xe5, 0x7c,
-       0x02, 0x9b, 0x32, 0x01, 0x77, 0x7e, 0x3e, 0xc4, 0xcf, 0x04, 0x03, 0xfc,
-       0x8c, 0xbf, 0x3e, 0x7f, 0x0f, 0xfb, 0xd9, 0x9e, 0x99, 0xee, 0x03, 0x0a,
-       0x56, 0xb3, 0xad, 0x96, 0x10, 0x9c, 0x2b, 0x9a, 0xfe, 0xcd, 0xca, 0x79,
-       0xa7, 0xdf, 0x37, 0x75, 0x33, 0xe6, 0xc2, 0xb9, 0xbe, 0x49, 0xce, 0x15,
-       0xb4, 0x84, 0xe5, 0x5c, 0xc1, 0x7a, 0x43, 0xce, 0x89, 0xd9, 0x59, 0x39,
-       0xb7, 0xac, 0xcb, 0xe7, 0xef, 0xc7, 0x22, 0x13, 0x77, 0xa5, 0x64, 0xed,
-       0x4d, 0xb0, 0xc8, 0xed, 0xff, 0x4e, 0xa6, 0x09, 0x5b, 0x52, 0x72, 0x7f,
-       0x8c, 0xb9, 0x86, 0xe1, 0xf1, 0x3f, 0x93, 0xb9, 0x16, 0x77, 0xee, 0x0f,
-       0xa3, 0x73, 0x3f, 0x9a, 0xca, 0x38, 0x86, 0xd2, 0x50, 0xc0, 0x7f, 0x14,
-       0x9a, 0xff, 0x0c, 0x75, 0x72, 0x8a, 0x72, 0x9e, 0x7e, 0x8f, 0x9c, 0xa2,
-       0x43, 0xf8, 0xef, 0x4e, 0xb8, 0x91, 0x09, 0xbd, 0x63, 0xc5, 0xed, 0x5c,
-       0xc8, 0xeb, 0xbf, 0x27, 0xe1, 0x47, 0xce, 0xce, 0xc9, 0xde, 0x28, 0x15,
-       0xec, 0xee, 0x4b, 0xc5, 0xa3, 0x2a, 0x8a, 0xf3, 0xab, 0x87, 0x65, 0x6e,
-       0x5f, 0x4d, 0xc8, 0x7f, 0xd1, 0x2f, 0xa9, 0x8c, 0x4b, 0x2a, 0x73, 0xf9,
-       0x41, 0x59, 0xdf, 0x57, 0x4b, 0x45, 0x3f, 0x72, 0x8f, 0x22, 0x2e, 0x39,
-       0x63, 0x13, 0xaf, 0x6b, 0x8b, 0x10, 0xab, 0xa1, 0x9e, 0xca, 0x0d, 0xaf,
-       0xbf, 0x71, 0xc2, 0xe7, 0x37, 0x27, 0xe0, 0xbf, 0x72, 0x62, 0xba, 0x08,
-       0xe4, 0x0a, 0xea, 0x07, 0x61, 0x81, 0xd7, 0xbf, 0x39, 0x31, 0x8f, 0x3c,
-       0x33, 0x6e, 0x2d, 0x6f, 0x3e, 0x6f, 0xcd, 0x8b, 0x18, 0xb9, 0xd3, 0x94,
-       0xe1, 0x9d, 0x6b, 0xf4, 0xf8, 0x1c, 0xc7, 0xa9, 0xfb, 0xb5, 0x69, 0x7d,
-       0x5c, 0x08, 0xfd, 0xff, 0xed, 0xa3, 0x18, 0xe7, 0x68, 0x0f, 0xcd, 0x32,
-       0x06, 0x89, 0x77, 0xcc, 0x85, 0x6a, 0x65, 0x2c, 0x81, 0x02, 0x6f, 0x2b,
-       0x8e, 0x4b, 0xe1, 0x5c, 0xbb, 0xa9, 0x8b, 0x62, 0x0c, 0xb3, 0xac, 0x5e,
-       0xc3, 0x57, 0x58, 0x03, 0xe7, 0x9c, 0x65, 0x4f, 0x7d, 0xd8, 0xc9, 0x9c,
-       0xfd, 0x9c, 0xd9, 0xf2, 0x57, 0x4e, 0x44, 0x7d, 0xa5, 0x8c, 0xad, 0xb2,
-       0xf6, 0x74, 0xa6, 0x69, 0xca, 0x9a, 0x64, 0x1e, 0xd4, 0x92, 0x95, 0xfb,
-       0x4b, 0x0e, 0xda, 0xb7, 0x85, 0x87, 0x4d, 0xf9, 0x5f, 0x70, 0x26, 0x1e,
-       0x73, 0xd0, 0x56, 0xdc, 0x86, 0xde, 0xf1, 0x65, 0xa5, 0x8a, 0xae, 0xec,
-       0x0c, 0x4e, 0x42, 0x0f, 0x6f, 0x51, 0xe8, 0x87, 0x35, 0x0b, 0x4c, 0x99,
-       0x82, 0x37, 0x12, 0x01, 0x33, 0x50, 0x88, 0x4b, 0xe7, 0x38, 0x77, 0x6f,
-       0x25, 0x8c, 0xce, 0x27, 0x0b, 0xe7, 0x3f, 0xcb, 0x4c, 0x5f, 0x1f, 0x17,
-       0x7b, 0x74, 0xbb, 0xb7, 0x27, 0x70, 0xc1, 0xd1, 0x8c, 0x0b, 0x87, 0xcc,
-       0x12, 0x2c, 0x6f, 0x17, 0x3b, 0x75, 0xbb, 0x77, 0x26, 0x30, 0xe5, 0xe4,
-       0xb5, 0x73, 0xe6, 0x5c, 0x62, 0x9a, 0xbd, 0x7e, 0x29, 0x31, 0x22, 0xa6,
-       0x31, 0xbe, 0x96, 0x47, 0xbc, 0xee, 0xf2, 0x09, 0x68, 0x65, 0xe4, 0x40,
-       0xee, 0x08, 0x5a, 0x1d, 0x49, 0xdd, 0xdf, 0xe6, 0x68, 0xc2, 0xaa, 0xac,
-       0x9f, 0x3c, 0xfa, 0x05, 0xf2, 0x4e, 0xfb, 0x3e, 0x1f, 0x6d, 0xd2, 0xc9,
-       0x0a, 0x43, 0xb3, 0xd4, 0x88, 0xe4, 0x76, 0x55, 0xb8, 0x4b, 0xdb, 0xfa,
-       0x11, 0x35, 0x32, 0x88, 0x9b, 0x9a, 0xdd, 0xad, 0xd5, 0x13, 0x45, 0x9d,
-       0x20, 0xe6, 0x89, 0x40, 0xab, 0x32, 0xa0, 0x56, 0x46, 0x44, 0x37, 0xfe,
-       0xd6, 0xe4, 0xb8, 0xc8, 0xaa, 0xb9, 0x07, 0xc6, 0x7f, 0xe3, 0x46, 0x79,
-       0x94, 0x58, 0xf5, 0x43, 0xdf, 0x7f, 0xae, 0xde, 0x33, 0x6e, 0xc1, 0x7b,
-       0x97, 0x21, 0xdf, 0xb6, 0x6d, 0x31, 0x1f, 0x19, 0xfb, 0x8c, 0x3b, 0x60,
-       0x59, 0x8c, 0x93, 0x3e, 0x28, 0x73, 0x39, 0x1e, 0xfa, 0x1a, 0xe3, 0xd2,
-       0xc6, 0xcc, 0x1f, 0xac, 0x8f, 0x3a, 0x6d, 0x0e, 0x40, 0xde, 0xe4, 0xbf,
-       0xed, 0x75, 0xe3, 0xf7, 0x96, 0xf0, 0x11, 0x27, 0x7d, 0xba, 0x84, 0x78,
-       0xbe, 0xdb, 0x74, 0xb6, 0xad, 0x50, 0x14, 0xf4, 0x19, 0x0b, 0xb4, 0x32,
-       0xc6, 0xa9, 0x5e, 0xfa, 0x75, 0xcc, 0x6b, 0x04, 0x0f, 0x81, 0xe5, 0x32,
-       0x9b, 0x37, 0xbb, 0x22, 0xf7, 0x7c, 0x76, 0xac, 0x59, 0xb0, 0x60, 0xea,
-       0xb6, 0x27, 0x8d, 0x0e, 0xf2, 0xaf, 0xaf, 0x90, 0xa7, 0xe5, 0xfb, 0xc9,
-       0x61, 0xde, 0x07, 0xf4, 0xb3, 0x79, 0x73, 0x69, 0x44, 0x78, 0x58, 0xfa,
-       0xb6, 0xc3, 0x46, 0x1b, 0x73, 0xb0, 0x7b, 0x3e, 0x7b, 0xae, 0xf9, 0x00,
-       0xbf, 0xf3, 0x75, 0xd2, 0xa8, 0xfe, 0xc0, 0x3a, 0x15, 0x11, 0xe9, 0xc3,
-       0xcf, 0x3e, 0xee, 0xf9, 0x6c, 0xe7, 0x92, 0x31, 0x6c, 0xcf, 0x6e, 0xfb,
-       0x93, 0xfd, 0x54, 0x46, 0x64, 0x3d, 0x34, 0x76, 0xfb, 0xea, 0xc0, 0x3d,
-       0x9f, 0xcd, 0x2c, 0x19, 0x64, 0x1f, 0x9f, 0x66, 0x7c, 0xc9, 0xd7, 0x89,
-       0x2a, 0x8e, 0x0f, 0xd4, 0x41, 0x59, 0x64, 0xdb, 0xed, 0x0b, 0x03, 0xbf,
-       0xb7, 0x16, 0x0c, 0x94, 0xd8, 0x3a, 0x70, 0x51, 0x07, 0x0f, 0x9a, 0xce,
-       0x5c, 0xc0, 0x61, 0xeb, 0xa0, 0xcb, 0x47, 0x1d, 0x24, 0xa9, 0x83, 0xdc,
-       0x4c, 0x23, 0xfc, 0x36, 0x75, 0xb0, 0x60, 0x7c, 0xf3, 0xe6, 0xb2, 0x08,
-       0x9c, 0x0e, 0xe3, 0x47, 0x0e, 0xe6, 0x45, 0xaa, 0xcb, 0xd8, 0x4c, 0xbd,
-       0xdd, 0xf3, 0xd9, 0xf9, 0x4b, 0x6c, 0x9d, 0xdf, 0xea, 0x0e, 0xdc, 0x47,
-       0xbb, 0x69, 0xa5, 0xad, 0x6f, 0xe5, 0xd1, 0xce, 0xa3, 0x8f, 0x47, 0x02,
-       0xbb, 0xb3, 0x1b, 0xa9, 0xab, 0x35, 0x1c, 0xc7, 0x3a, 0xca, 0xd5, 0xc5,
-       0xdf, 0x31, 0xfe, 0x8e, 0xf3, 0xb7, 0xcc, 0x8f, 0x7a, 0x49, 0xb6, 0xd8,
-       0x25, 0xd9, 0x1c, 0x94, 0xc7, 0x63, 0xaf, 0x55, 0x96, 0x47, 0x8e, 0xdf,
-       0xba, 0x3a, 0xd0, 0xc9, 0x36, 0xfe, 0xbf, 0x32, 0xd9, 0x57, 0xe0, 0x32,
-       0xe2, 0x3e, 0x27, 0x44, 0x3e, 0xbd, 0xa3, 0x13, 0x39, 0x62, 0xef, 0xef,
-       0xf2, 0xd8, 0x4b, 0xd9, 0xaa, 0x38, 0x3f, 0xcf, 0x2d, 0x49, 0xcf, 0xf6,
-       0x18, 0xf0, 0xb9, 0x8d, 0x7e, 0x0c, 0x64, 0x47, 0xa8, 0x03, 0xb1, 0x93,
-       0x2f, 0x52, 0x7f, 0xdd, 0xac, 0x73, 0x8a, 0xb1, 0x4c, 0x8f, 0xd2, 0x67,
-       0x69, 0xb3, 0x7a, 0x98, 0x07, 0xed, 0xe5, 0x51, 0xb6, 0x9b, 0xa6, 0x4c,
-       0x25, 0xb4, 0x5f, 0x05, 0x72, 0x0f, 0xf7, 0x0c, 0xdb, 0x3f, 0x6c, 0xfc,
-       0xba, 0xe2, 0x14, 0xc7, 0x1e, 0xf5, 0x6e, 0xc6, 0x68, 0x93, 0xe8, 0x2a,
-       0x46, 0x5d, 0xe9, 0x3e, 0xff, 0x34, 0x5d, 0x5e, 0x96, 0xf7, 0x0a, 0xf2,
-       0x09, 0xcb, 0xfa, 0x89, 0xd1, 0xb2, 0x90, 0x49, 0x21, 0xd2, 0x76, 0xae,
-       0x64, 0x59, 0x25, 0xf6, 0xfe, 0xb3, 0xd8, 0xed, 0x1b, 0x0c, 0x91, 0xb7,
-       0xb1, 0x7d, 0x3b, 0x8d, 0x73, 0x73, 0x86, 0xfe, 0x1c, 0xf8, 0x9d, 0x15,
-       0x9d, 0x29, 0xf5, 0xe6, 0xe1, 0x15, 0xc6, 0xde, 0xa8, 0x16, 0xef, 0x74,
-       0x0b, 0xbf, 0x37, 0x9c, 0xe1, 0x35, 0x88, 0x33, 0xa1, 0xd4, 0x83, 0x77,
-       0x92, 0x7b, 0x9e, 0x33, 0xf2, 0x7e, 0x7c, 0x24, 0xa3, 0x47, 0x1f, 0xe6,
-       0x39, 0x39, 0x30, 0xb9, 0x54, 0x31, 0x4e, 0x05, 0xc9, 0x7b, 0x3d, 0x70,
-       0x32, 0x87, 0x6a, 0x75, 0xf4, 0x04, 0x5d, 0xa0, 0x2f, 0x96, 0xcb, 0xb8,
-       0xe2, 0x1c, 0xa3, 0xe0, 0xb6, 0x5b, 0xdb, 0x68, 0x63, 0x79, 0x7c, 0xa1,
-       0x0b, 0x1e, 0x6d, 0x53, 0xa6, 0x18, 0xe3, 0x3c, 0xda, 0xfa, 0x84, 0xe0,
-       0x82, 0xdc, 0x77, 0x0d, 0x53, 0xcf, 0x82, 0x0f, 0xaf, 0xda, 0x7b, 0xd5,
-       0x88, 0x11, 0x55, 0x4e, 0x23, 0xdf, 0xae, 0xc6, 0x76, 0xdb, 0x1d, 0x1a,
-       0x2e, 0xfb, 0xb8, 0xae, 0xb5, 0x3b, 0x64, 0x1f, 0x1d, 0xd1, 0x2b, 0x53,
-       0xa8, 0x97, 0xc7, 0xb9, 0x65, 0x2e, 0x1b, 0xe7, 0xd8, 0x06, 0xf3, 0x8e,
-       0xe5, 0x89, 0xf7, 0xf7, 0x2f, 0xfd, 0x49, 0xbf, 0x3d, 0x35, 0x2a, 0x64,
-       0x9f, 0x8f, 0xdc, 0x13, 0xeb, 0x64, 0xbe, 0x36, 0x7d, 0xaf, 0x8f, 0x7e,
-       0x82, 0xed, 0x1f, 0x8f, 0x73, 0x3e, 0xe7, 0x1a, 0xb2, 0x0f, 0x48, 0xee,
-       0xa1, 0x4d, 0xdf, 0xf7, 0x63, 0xdf, 0x9f, 0x2c, 0x17, 0x2e, 0x73, 0x98,
-       0x38, 0x19, 0x6d, 0x97, 0xfa, 0x96, 0xf5, 0xe3, 0x05, 0x41, 0xe4, 0x66,
-       0x38, 0x31, 0xd2, 0x00, 0x0c, 0x27, 0x45, 0xd7, 0xe9, 0xcf, 0x6c, 0x30,
-       0xfe, 0xcd, 0x8a, 0xd6, 0x36, 0x6a, 0xbd, 0xaa, 0xac, 0x67, 0x8c, 0xdd,
-       0xda, 0x67, 0xd4, 0x6b, 0x7d, 0x6a, 0xee, 0x18, 0xe3, 0xd0, 0x01, 0xe6,
-       0xe8, 0xe5, 0x82, 0x15, 0x35, 0x46, 0xb4, 0xbf, 0x06, 0x0d, 0xf0, 0xdb,
-       0xf7, 0x24, 0xf4, 0xf8, 0x37, 0x54, 0x23, 0xb8, 0x56, 0xf8, 0xa7, 0xfa,
-       0x8e, 0x95, 0xa6, 0x0d, 0x7c, 0xa1, 0xe1, 0x67, 0x65, 0x79, 0x6c, 0x8f,
-       0x76, 0xce, 0xe2, 0xbc, 0xbc, 0xb9, 0x48, 0xf7, 0x67, 0x14, 0xd1, 0x91,
-       0x70, 0xae, 0x11, 0xec, 0x62, 0x3c, 0xfe, 0xb7, 0x86, 0x08, 0x8e, 0xf0,
-       0xfb, 0xa7, 0xd7, 0xca, 0x1e, 0x37, 0xcb, 0x0a, 0x06, 0x16, 0x84, 0x6b,
-       0x38, 0x86, 0x67, 0xf8, 0x7f, 0x7f, 0xf6, 0x75, 0xeb, 0xdc, 0x2c, 0x63,
-       0x70, 0x25, 0x83, 0xe2, 0xf0, 0x84, 0xae, 0x4d, 0xa9, 0xff, 0xd9, 0x3d,
-       0x37, 0xf6, 0x3a, 0xe3, 0x67, 0x9e, 0x0f, 0x34, 0x6a, 0x49, 0xb5, 0xae,
-       0x5c, 0xf4, 0x3a, 0x3c, 0xf1, 0x52, 0x21, 0xce, 0xe7, 0xef, 0x75, 0x3e,
-       0x7e, 0x49, 0x3f, 0x72, 0xdf, 0x76, 0x1e, 0x6d, 0x2e, 0x1a, 0xa7, 0xde,
-       0xdd, 0x33, 0x38, 0xe6, 0x2f, 0x34, 0xdc, 0x69, 0x8f, 0xb3, 0xd6, 0x98,
-       0xc3, 0x31, 0x2a, 0xd0, 0x1a, 0x9c, 0xe5, 0x79, 0xfe, 0xd8, 0x42, 0x96,
-       0x96, 0xb6, 0x5a, 0xe9, 0x43, 0x25, 0xac, 0x73, 0xbd, 0x79, 0x70, 0x76,
-       0x4f, 0x93, 0xee, 0xfb, 0x02, 0x6d, 0x35, 0xd4, 0xf0, 0x2b, 0x2b, 0xaa,
-       0x39, 0xcd, 0xaf, 0x73, 0xd4, 0x77, 0x26, 0xa4, 0xac, 0xcc, 0xab, 0x11,
-       0x6d, 0x50, 0xde, 0xb2, 0x30, 0x33, 0x10, 0x6e, 0xb0, 0xc7, 0x0f, 0xdc,
-       0x91, 0x19, 0x61, 0xae, 0x2c, 0x6d, 0x2a, 0x58, 0x19, 0x78, 0xc3, 0xf2,
-       0xcf, 0x1a, 0xc1, 0xce, 0xec, 0x1f, 0xe3, 0xb0, 0x5f, 0x21, 0x87, 0xd6,
-       0x3b, 0xe2, 0x79, 0xbf, 0x6b, 0x03, 0xfb, 0x2d, 0x37, 0xec, 0x3c, 0xfc,
-       0xb6, 0x44, 0x40, 0xd6, 0x8c, 0xc6, 0x3e, 0x33, 0x1e, 0x90, 0xbd, 0x19,
-       0x5e, 0xe4, 0xda, 0xa5, 0x4c, 0xbd, 0x36, 0x8e, 0x1c, 0x19, 0xa6, 0xec,
-       0x23, 0x39, 0x54, 0x9e, 0x5f, 0x47, 0x70, 0xc8, 0x3a, 0xb8, 0xf6, 0x2a,
-       0x39, 0x61, 0x9b, 0x21, 0x6d, 0x28, 0x58, 0x18, 0x98, 0x81, 0xc6, 0xb5,
-       0x3f, 0x7a, 0xb9, 0x24, 0x90, 0xf7, 0xdb, 0x3e, 0xc3, 0xd8, 0x76, 0x1a,
-       0xbf, 0x26, 0x56, 0xc9, 0x3e, 0x93, 0xb4, 0xd4, 0x63, 0x5b, 0x0d, 0xc8,
-       0x68, 0x4e, 0x8c, 0x1a, 0xb2, 0x0f, 0xd2, 0xb2, 0x56, 0x07, 0x5e, 0xa3,
-       0xdf, 0x51, 0x9e, 0xac, 0xb3, 0x50, 0x57, 0xca, 0x14, 0xf6, 0x70, 0x28,
-       0x2d, 0x9f, 0x15, 0x9d, 0x3c, 0x61, 0xc6, 0x99, 0x35, 0x48, 0x7c, 0x18,
-       0xfb, 0xcc, 0xeb, 0x86, 0x70, 0x78, 0xdd, 0x5c, 0xa9, 0x54, 0x33, 0xde,
-       0x3a, 0xfd, 0x63, 0xf6, 0x7a, 0x86, 0x9f, 0x58, 0x2e, 0x3c, 0x54, 0x72,
-       0x43, 0x27, 0x9e, 0x34, 0x6a, 0xf0, 0x84, 0x96, 0xe7, 0x74, 0xc4, 0x44,
-       0xbc, 0x90, 0x58, 0x90, 0xa3, 0x87, 0x90, 0x1b, 0x1b, 0x9d, 0x17, 0x95,
-       0x5f, 0x33, 0x6f, 0x04, 0x9e, 0xcb, 0x74, 0xe1, 0x41, 0xb9, 0x8f, 0xa5,
-       0xd4, 0xb7, 0x35, 0x3a, 0xa4, 0xbf, 0x2e, 0xec, 0xb2, 0xd7, 0x65, 0xc7,
-       0x3e, 0x73, 0xd8, 0x78, 0xa4, 0x20, 0xab, 0x60, 0xfe, 0xd8, 0x67, 0x9e,
-       0x34, 0x4e, 0xdb, 0x73, 0x27, 0x7b, 0x16, 0xfa, 0x4d, 0xc1, 0xc6, 0x72,
-       0xa8, 0xcc, 0x2f, 0x1c, 0xc6, 0xa7, 0xe1, 0xa8, 0x19, 0xa3, 0xed, 0xc9,
-       0x7a, 0xcf, 0xed, 0x70, 0xd6, 0xb8, 0xe8, 0x9b, 0x77, 0xc0, 0x55, 0x23,
-       0x9c, 0xbe, 0xc8, 0xb7, 0xdb, 0xf8, 0xbf, 0xe8, 0x76, 0xca, 0xd6, 0xad,
-       0x93, 0xd8, 0xd3, 0x27, 0xf9, 0x9f, 0x51, 0x4d, 0x1d, 0xe9, 0x1d, 0xb2,
-       0xae, 0x5d, 0x49, 0x6c, 0x65, 0x1c, 0x75, 0x57, 0xb3, 0xcc, 0xdb, 0xd4,
-       0xfb, 0x82, 0x81, 0x0a, 0x72, 0x7d, 0xcb, 0x7a, 0x87, 0x5c, 0x7f, 0x61,
-       0xa0, 0x31, 0x67, 0x30, 0xfe, 0xe1, 0x66, 0xbd, 0x4d, 0xee, 0x11, 0x6f,
-       0x30, 0x2e, 0x5a, 0xb1, 0x75, 0x52, 0x46, 0xf7, 0xc5, 0x94, 0x62, 0x1f,
-       0x8b, 0xe0, 0x9f, 0x61, 0xc1, 0x15, 0xb1, 0x88, 0x5d, 0xba, 0x19, 0x45,
-       0x8b, 0xec, 0xf5, 0x69, 0x97, 0xf1, 0xbb, 0xe4, 0x7e, 0x03, 0xa2, 0x93,
-       0x2e, 0x18, 0xb9, 0x23, 0x32, 0x67, 0xb3, 0x2d, 0x04, 0x16, 0xff, 0x8e,
-       0x39, 0x93, 0xcc, 0x4f, 0x7d, 0xae, 0x49, 0xc9, 0x05, 0x7d, 0xe4, 0xfe,
-       0x8f, 0x40, 0x6f, 0x4f, 0x50, 0xd7, 0xad, 0x21, 0x1b, 0xf3, 0x7c, 0x09,
-       0xd8, 0x7c, 0xdf, 0x7c, 0x05, 0x1f, 0x45, 0x25, 0x73, 0xdc, 0x86, 0xf1,
-       0x35, 0xa8, 0xaa, 0x89, 0xfa, 0xca, 0xb1, 0x94, 0xe7, 0x5b, 0x99, 0xc7,
-       0x7c, 0x12, 0x55, 0x6b, 0x63, 0x48, 0x70, 0xec, 0x95, 0xc6, 0xad, 0xbc,
-       0xd6, 0x87, 0x64, 0xca, 0xc5, 0x71, 0xfc, 0xd0, 0xaa, 0x9a, 0x29, 0xb2,
-       0x99, 0xde, 0x0a, 0x83, 0x79, 0xb7, 0xad, 0x0b, 0x62, 0x79, 0x4a, 0xb8,
-       0x54, 0x63, 0x74, 0x0b, 0xfe, 0x40, 0xdb, 0xd5, 0x3b, 0x36, 0x2a, 0x71,
-       0xda, 0x6c, 0x82, 0x3a, 0x97, 0xb2, 0x96, 0xb5, 0x2a, 0xf0, 0x5b, 0xea,
-       0x38, 0xce, 0x73, 0xc3, 0xff, 0x1a, 0xd4, 0xa5, 0xa5, 0x38, 0x6b, 0xc5,
-       0x35, 0x1f, 0xed, 0x52, 0x5d, 0x27, 0xbc, 0x6b, 0x45, 0x48, 0xad, 0x40,
-       0xb9, 0x56, 0xb0, 0xd3, 0x74, 0x41, 0x97, 0x53, 0xb7, 0xf5, 0x19, 0x6f,
-       0x94, 0xcb, 0x75, 0x87, 0x7d, 0xdd, 0x5f, 0xb8, 0x9e, 0xe6, 0xf5, 0xf3,
-       0xbc, 0x3e, 0x48, 0xdd, 0xab, 0x57, 0x48, 0xfd, 0xcd, 0xa6, 0xd4, 0x27,
-       0x1d, 0x31, 0x12, 0x85, 0xf9, 0x88, 0xdd, 0x9e, 0x2f, 0xbb, 0xed, 0xf6,
-       0x7c, 0x1b, 0x4e, 0xb6, 0x11, 0x8f, 0x96, 0xc3, 0x44, 0x45, 0x40, 0x70,
-       0x5e, 0xe4, 0xe2, 0xdc, 0x65, 0x45, 0xae, 0xad, 0x8c, 0x8b, 0x3d, 0x4f,
-       0x97, 0x23, 0xde, 0x35, 0xc7, 0xb6, 0xc3, 0x34, 0x79, 0x8a, 0xee, 0x7f,
-       0x5d, 0x69, 0xf1, 0xc9, 0xb2, 0x4e, 0x8a, 0x9c, 0xf7, 0x7e, 0xd3, 0x19,
-       0x6e, 0x72, 0x2c, 0xc8, 0x95, 0xc2, 0x88, 0x5d, 0x54, 0x66, 0x57, 0x08,
-       0x3e, 0x24, 0x32, 0x2d, 0xcc, 0xd0, 0xe2, 0x41, 0xe6, 0x56, 0xc1, 0x2c,
-       0x75, 0xbb, 0x9e, 0x88, 0x7d, 0xc2, 0xde, 0xb3, 0xe4, 0x9c, 0x5c, 0x83,
-       0x16, 0xdd, 0x81, 0x05, 0xe1, 0x39, 0xcc, 0xd0, 0x68, 0x97, 0x66, 0xa9,
-       0x43, 0xf7, 0xdf, 0x84, 0xff, 0x62, 0xd7, 0x3b, 0x92, 0xc9, 0x75, 0x96,
-       0x73, 0x4e, 0xbf, 0x4a, 0x39, 0x76, 0x07, 0x44, 0x8e, 0xb1, 0x82, 0x1c,
-       0x31, 0xc6, 0x5c, 0x53, 0xbb, 0x21, 0x30, 0x78, 0x49, 0x6f, 0x4f, 0xdb,
-       0x7a, 0xeb, 0xe3, 0x79, 0x29, 0x76, 0x90, 0x3f, 0x9e, 0x6a, 0xf2, 0x16,
-       0xd6, 0xf6, 0x25, 0xa7, 0x13, 0xfc, 0x3d, 0xfb, 0xa9, 0x0d, 0x86, 0x1e,
-       0x76, 0xd8, 0xfc, 0xdf, 0x8d, 0xb8, 0xcd, 0xad, 0x1d, 0x10, 0xee, 0xf8,
-       0xb0, 0x5d, 0xce, 0x45, 0x9d, 0x54, 0xe0, 0x91, 0x82, 0xbf, 0x54, 0x30,
-       0xbe, 0x7d, 0xd5, 0xfe, 0x9d, 0xe6, 0xdc, 0xba, 0xe8, 0xab, 0xc5, 0x18,
-       0x25, 0xeb, 0x83, 0xfd, 0xb6, 0xef, 0xa7, 0xf1, 0x7d, 0xfb, 0x3b, 0x97,
-       0xcf, 0xcb, 0xd0, 0x47, 0x9f, 0x70, 0xb0, 0x8d, 0x5e, 0x7b, 0x2f, 0xaa,
-       0xac, 0x15, 0x5c, 0x8b, 0x1d, 0x1c, 0x95, 0xdb, 0xe8, 0x44, 0xbf, 0x26,
-       0x36, 0xd1, 0x8d, 0xa4, 0x66, 0x7a, 0xb3, 0x4d, 0xd3, 0x73, 0x2a, 0x13,
-       0x87, 0x9a, 0x7e, 0xcf, 0x58, 0x2e, 0xd7, 0xce, 0x5a, 0x87, 0x8d, 0x53,
-       0x21, 0x7a, 0x70, 0x67, 0x89, 0xad, 0xdf, 0xa9, 0xdb, 0xec, 0x7d, 0x5b,
-       0x94, 0xf9, 0xe9, 0x84, 0xc4, 0xd1, 0x79, 0xc8, 0x98, 0x22, 0x9b, 0xb3,
-       0x7d, 0x0f, 0xe7, 0xa4, 0x2f, 0x15, 0x88, 0x5e, 0xc9, 0xff, 0x26, 0x19,
-       0xcb, 0x7a, 0xa9, 0xcf, 0x58, 0xbb, 0xf0, 0xb8, 0xad, 0x38, 0x40, 0x1b,
-       0x9b, 0x30, 0x2d, 0xeb, 0x08, 0x31, 0xa2, 0x7a, 0x81, 0x8a, 0xdc, 0xcc,
-       0xad, 0x48, 0x31, 0x36, 0x1d, 0x31, 0x5a, 0x3e, 0x5a, 0x82, 0xb8, 0x9f,
-       0x31, 0xdc, 0xb7, 0x93, 0xa3, 0xb9, 0x9f, 0xf3, 0x75, 0xca, 0x14, 0x7e,
-       0xe9, 0xbc, 0xb8, 0x02, 0x46, 0x78, 0x99, 0xe3, 0x87, 0xd6, 0x94, 0xc8,
-       0x9e, 0xea, 0xf9, 0x5f, 0x94, 0x61, 0x9b, 0x38, 0x6f, 0x35, 0xe7, 0xf8,
-       0xed, 0x80, 0xde, 0xf6, 0x02, 0xfb, 0x69, 0x1c, 0x68, 0xe9, 0x14, 0x19,
-       0x0e, 0x87, 0x9c, 0xb1, 0x23, 0x08, 0xb4, 0x6f, 0x55, 0x8a, 0x39, 0x04,
-       0x70, 0xe5, 0xb8, 0x89, 0xa3, 0x4d, 0xcf, 0x90, 0xef, 0x48, 0xfd, 0x52,
-       0x3c, 0x66, 0x3e, 0x65, 0xd5, 0xcf, 0x7e, 0xde, 0x3a, 0x66, 0xa8, 0x5b,
-       0xa8, 0xed, 0x58, 0x25, 0x64, 0x4d, 0x33, 0x7d, 0xdb, 0x5d, 0x01, 0xdd,
-       0xdc, 0xc3, 0xb6, 0xce, 0x24, 0x4e, 0x05, 0xdd, 0x6c, 0xeb, 0x11, 0x53,
-       0x72, 0x08, 0x67, 0x5b, 0x1b, 0xe7, 0xb6, 0x27, 0x15, 0xf0, 0xc9, 0xba,
-       0xad, 0xe4, 0x79, 0xb7, 0x27, 0x64, 0xcf, 0xf8, 0x18, 0xc7, 0x13, 0xdd,
-       0xe6, 0x42, 0xcb, 0xfd, 0x55, 0xb4, 0x9f, 0x6a, 0x14, 0x6d, 0x5d, 0xf7,
-       0x11, 0xef, 0x70, 0x17, 0xcb, 0xbc, 0x1c, 0x98, 0x87, 0xe7, 0x42, 0x2d,
-       0x6b, 0xe7, 0xc1, 0x19, 0x3b, 0xa6, 0x04, 0xda, 0xb6, 0x2a, 0x71, 0x4d,
-       0x6c, 0xf1, 0xce, 0x8c, 0x1e, 0x6c, 0x85, 0x60, 0x77, 0x8c, 0xfa, 0x98,
-       0x87, 0x77, 0x16, 0x8b, 0x5c, 0xce, 0x70, 0xd0, 0x11, 0xe8, 0x7a, 0x8a,
-       0xf3, 0x5b, 0xb5, 0x40, 0x64, 0x07, 0xb2, 0x19, 0x91, 0x3f, 0x86, 0x64,
-       0xf6, 0xec, 0xdb, 0x87, 0x0d, 0x38, 0x4f, 0x34, 0x3d, 0x68, 0xc1, 0xde,
-       0x63, 0xde, 0x22, 0xf3, 0xd0, 0x21, 0xf3, 0x50, 0x4e, 0x7f, 0x5a, 0x4d,
-       0xb9, 0xb7, 0xd8, 0x72, 0xcf, 0xc3, 0xa8, 0x29, 0xeb, 0x64, 0x4e, 0xed,
-       0x4e, 0x0c, 0x12, 0x3b, 0x03, 0x17, 0x7b, 0xd8, 0xcf, 0xcb, 0x94, 0x79,
-       0x01, 0xf5, 0x3e, 0xd5, 0x2e, 0xfc, 0xb6, 0x0f, 0x03, 0xa9, 0xe2, 0x1e,
-       0x74, 0x05, 0x92, 0x7a, 0x4f, 0x39, 0xfa, 0xc8, 0xf7, 0x7a, 0xac, 0xa9,
-       0x99, 0x72, 0x3d, 0x8d, 0x1d, 0xa9, 0xa8, 0x46, 0x7f, 0xa0, 0xde, 0xa1,
-       0xcf, 0x83, 0x3e, 0xf9, 0xaa, 0x23, 0x4a, 0x1f, 0x30, 0xbd, 0x17, 0x89,
-       0x0d, 0x27, 0xd0, 0x65, 0xa1, 0xc6, 0xb6, 0x87, 0x9f, 0x8e, 0x19, 0x0e,
-       0x59, 0x6b, 0x0f, 0xe6, 0xa8, 0x03, 0x95, 0x73, 0x22, 0x3a, 0xa8, 0xa4,
-       0xcf, 0x8e, 0x07, 0x74, 0xff, 0x73, 0x94, 0x67, 0x0f, 0xe5, 0x59, 0x93,
-       0x9f, 0x43, 0xdf, 0x0e, 0x45, 0x7c, 0x3a, 0xd0, 0xbe, 0x81, 0xd7, 0x77,
-       0x53, 0x9e, 0xc0, 0x80, 0x82, 0x34, 0xd1, 0xac, 0x8f, 0x7c, 0xf6, 0xc0,
-       0x34, 0x79, 0xdc, 0xf6, 0x9c, 0xc5, 0xc9, 0x05, 0x4a, 0x71, 0xd8, 0x14,
-       0xfc, 0xd6, 0x30, 0x4a, 0x3b, 0x3d, 0xc4, 0x19, 0x89, 0x7a, 0x55, 0x94,
-       0x1a, 0x82, 0x01, 0x33, 0x79, 0xcd, 0xc5, 0xb9, 0xa9, 0xc6, 0x31, 0x2d,
-       0xcd, 0x38, 0x59, 0xe4, 0x76, 0x7f, 0xb0, 0x8e, 0x7a, 0x85, 0x9f, 0xc9,
-       0x3a, 0x9a, 0xac, 0x35, 0x7d, 0xb9, 0x22, 0xbf, 0xbf, 0x52, 0xf6, 0x3f,
-       0xe4, 0xaf, 0x3f, 0xad, 0x09, 0x47, 0x2e, 0x96, 0xff, 0xb9, 0xf5, 0x84,
-       0x5d, 0x5e, 0xca, 0xb9, 0x6c, 0x2e, 0x5f, 0x6e, 0x97, 0xfb, 0xb9, 0xf5,
-       0x8c, 0xe6, 0x9c, 0x56, 0xae, 0xb8, 0x07, 0xef, 0xd4, 0x97, 0x5c, 0xc4,
-       0x3c, 0x47, 0xc3, 0x32, 0x3c, 0x61, 0x9c, 0xad, 0x5f, 0xdf, 0xd4, 0xcd,
-       0x38, 0x56, 0xe4, 0x5a, 0x75, 0xf4, 0x2b, 0x0b, 0x43, 0xe6, 0xa9, 0xa1,
-       0x12, 0xf4, 0x90, 0x3b, 0x0a, 0x17, 0x10, 0x8e, 0x2a, 0xeb, 0x7c, 0xb7,
-       0x96, 0x5f, 0xce, 0x79, 0xf5, 0xa0, 0x5f, 0x6d, 0xb3, 0xb9, 0x61, 0x54,
-       0x15, 0xdc, 0xad, 0xb3, 0xc7, 0x7e, 0x39, 0xfe, 0x4b, 0xac, 0x98, 0xbe,
-       0x6e, 0xd7, 0x8d, 0x43, 0x46, 0x91, 0xb3, 0x9c, 0x7a, 0x50, 0x25, 0x4e,
-       0x0e, 0x9b, 0xcb, 0x24, 0x36, 0xfb, 0x59, 0x3f, 0x18, 0x53, 0xa7, 0x73,
-       0x9b, 0xbf, 0xa9, 0x40, 0x55, 0xcf, 0x2e, 0x07, 0x64, 0xff, 0xaf, 0xec,
-       0xd9, 0x96, 0xbe, 0xca, 0x0a, 0xeb, 0x57, 0x1f, 0xc4, 0x35, 0x8a, 0x7d,
-       0x09, 0xdf, 0xa8, 0x28, 0xca, 0x18, 0x8c, 0xda, 0x72, 0xfe, 0xd2, 0x5a,
-       0xab, 0xe5, 0xe6, 0x68, 0x78, 0xaf, 0xec, 0xd1, 0x82, 0xec, 0xb1, 0x0f,
-       0x5c, 0x7f, 0x93, 0x7e, 0xa6, 0xb7, 0x59, 0xdc, 0x7b, 0x2a, 0x6b, 0xb3,
-       0xf2, 0x9f, 0x82, 0x1e, 0xe2, 0x50, 0x54, 0x6b, 0x61, 0x9c, 0xd7, 0x7d,
-       0x9b, 0x38, 0x1f, 0x71, 0xaf, 0xec, 0x6b, 0x2d, 0xc6, 0xc8, 0x52, 0xe4,
-       0xd7, 0x48, 0x81, 0x43, 0x85, 0x75, 0x51, 0xda, 0x3d, 0x7a, 0x32, 0xbf,
-       0xb3, 0x72, 0x5e, 0x27, 0x63, 0xe1, 0xe5, 0xfd, 0xf7, 0x69, 0xea, 0x75,
-       0x94, 0xff, 0xed, 0xb8, 0xb4, 0xee, 0x22, 0x6b, 0x4f, 0x12, 0x7b, 0x7f,
-       0x6b, 0xad, 0x7f, 0x4f, 0xd9, 0xe9, 0x7b, 0x5f, 0x67, 0xc6, 0x64, 0x3f,
-       0xda, 0xd1, 0xc2, 0xfa, 0x7c, 0xeb, 0xbf, 0xdf, 0x8f, 0x46, 0x5b, 0x42,
-       0x74, 0x07, 0xb9, 0x5d, 0x1c, 0x7d, 0x38, 0x9a, 0x68, 0xd4, 0x76, 0x42,
-       0x93, 0x75, 0x69, 0x7e, 0xfa, 0x70, 0x2c, 0x81, 0x68, 0xc9, 0x55, 0xd5,
-       0xe4, 0x5b, 0x88, 0x3a, 0x64, 0x8f, 0x50, 0xa2, 0xb1, 0x6d, 0x37, 0xc7,
-       0xe4, 0x5f, 0xdb, 0x87, 0xd1, 0x44, 0xcb, 0xad, 0x8c, 0x23, 0xfe, 0x8a,
-       0x3c, 0xd7, 0xe9, 0x38, 0x4c, 0x1c, 0xd8, 0x5e, 0x58, 0x1b, 0x5b, 0x9f,
-       0xf8, 0x15, 0xe5, 0xb7, 0x85, 0x64, 0xbd, 0x3f, 0x56, 0xee, 0x2c, 0x7a,
-       0x53, 0x67, 0xb1, 0x79, 0x50, 0x11, 0xfb, 0xc2, 0xa6, 0xb4, 0xc8, 0x73,
-       0x16, 0x1b, 0x07, 0xbf, 0x87, 0x43, 0x83, 0xb3, 0xd1, 0x6a, 0xeb, 0xa6,
-       0x0b, 0x5b, 0xf7, 0x9e, 0xc4, 0x9e, 0x94, 0x85, 0xdd, 0x21, 0x0f, 0xb6,
-       0x1c, 0x54, 0xb0, 0x2a, 0x70, 0x06, 0x3b, 0xf7, 0x5a, 0x98, 0x1f, 0xea,
-       0x46, 0x9b, 0x59, 0x81, 0xd2, 0x9a, 0x05, 0x9d, 0x2a, 0xcb, 0xad, 0x1f,
-       0xed, 0x52, 0x6e, 0xe4, 0xb8, 0x73, 0xae, 0xe3, 0xc4, 0x02, 0x15, 0x3e,
-       0x03, 0x5a, 0x75, 0x24, 0xaa, 0xdc, 0x92, 0x6d, 0x55, 0x3a, 0x46, 0x6d,
-       0x3e, 0xa5, 0xdc, 0x94, 0xf5, 0x55, 0x4a, 0x4c, 0x3f, 0x14, 0x3a, 0x8b,
-       0x74, 0xba, 0xaa, 0x32, 0xef, 0x2f, 0x67, 0xc9, 0x1d, 0x24, 0xe7, 0x30,
-       0x69, 0x53, 0x7f, 0xec, 0xb9, 0x02, 0xb1, 0xbb, 0x29, 0xfc, 0x64, 0xe4,
-       0x15, 0xbc, 0x32, 0xf2, 0x2f, 0x58, 0xae, 0x49, 0x9e, 0x69, 0x75, 0x3b,
-       0x23, 0x96, 0xb5, 0xbf, 0x39, 0x6e, 0xcd, 0x34, 0x2c, 0xb6, 0x57, 0x85,
-       0x59, 0x91, 0xef, 0x62, 0xb7, 0xc6, 0xb6, 0x52, 0xc7, 0xed, 0x7b, 0xb7,
-       0xbe, 0xc8, 0xa7, 0xe1, 0x4b, 0xe5, 0xcc, 0x5a, 0x44, 0x87, 0x6a, 0xa1,
-       0x6f, 0xab, 0x71, 0x18, 0x5d, 0xff, 0x5b, 0x69, 0xc2, 0x4d, 0xd9, 0x57,
-       0xf0, 0xe6, 0x48, 0x37, 0x31, 0x53, 0xef, 0xf8, 0x96, 0x62, 0x75, 0xef,
-       0x0e, 0xe9, 0x6d, 0xff, 0x55, 0x89, 0xc6, 0xcb, 0x69, 0x53, 0x65, 0xcc,
-       0x09, 0x6e, 0x1e, 0x91, 0x7c, 0xb9, 0x03, 0xee, 0x01, 0x3d, 0xb7, 0x82,
-       0x3c, 0xfb, 0x0b, 0x8b, 0xe2, 0x73, 0x66, 0xd0, 0x2e, 0x1d, 0x8a, 0x1e,
-       0x34, 0xd4, 0x6e, 0x3c, 0x6e, 0xea, 0x93, 0xbf, 0x75, 0x18, 0xe9, 0x6f,
-       0xa2, 0x09, 0xeb, 0xb2, 0x7a, 0x7a, 0x29, 0xf3, 0xb0, 0x9d, 0x49, 0x13,
-       0xa9, 0xa4, 0xde, 0xd1, 0xe5, 0xe8, 0xc7, 0xdd, 0x81, 0xfa, 0x6d, 0x6f,
-       0x93, 0xcb, 0x79, 0x88, 0x29, 0xc9, 0x89, 0x0c, 0xf3, 0xdc, 0x7e, 0x6c,
-       0x3d, 0x18, 0xc1, 0x96, 0xfd, 0x26, 0xfa, 0x92, 0x19, 0xca, 0xf6, 0x1a,
-       0x6d, 0xdb, 0xb2, 0xda, 0x43, 0xf1, 0x1b, 0x54, 0x04, 0xa2, 0xec, 0xb3,
-       0x45, 0x8d, 0x04, 0xfc, 0xaa, 0xc2, 0xe8, 0x3f, 0xe1, 0x44, 0x2f, 0xcb,
-       0x0c, 0xa4, 0x68, 0x73, 0x49, 0x37, 0xe3, 0x65, 0x1d, 0x46, 0xc7, 0x7d,
-       0x38, 0x32, 0xee, 0x41, 0x7a, 0x5c, 0xe3, 0x51, 0x8e, 0x87, 0x86, 0x2d,
-       0x62, 0xb9, 0x17, 0x8f, 0x1d, 0x76, 0x63, 0xfb, 0x3e, 0x0f, 0xe6, 0x45,
-       0x66, 0xe1, 0xf0, 0xe1, 0x72, 0x1c, 0xe0, 0xf5, 0x9a, 0xc5, 0x7e, 0x7c,
-       0x8d, 0xd7, 0x07, 0xf7, 0xb9, 0x38, 0x0f, 0xf3, 0x71, 0x9c, 0x86, 0x9d,
-       0x1e, 0xaf, 0x40, 0x6a, 0x98, 0x26, 0x4f, 0xce, 0xfa, 0x3a, 0x33, 0x8c,
-       0xa3, 0x87, 0x19, 0x1b, 0x0f, 0x9a, 0x48, 0xb0, 0x9f, 0x3d, 0xd4, 0x55,
-       0x1f, 0x71, 0x6d, 0xeb, 0xb8, 0x60, 0xfc, 0x3a, 0xac, 0x1e, 0xd0, 0xdb,
-       0x5a, 0x15, 0x23, 0xba, 0x44, 0x09, 0xca, 0x73, 0x2b, 0x6e, 0x95, 0xd7,
-       0x5a, 0x12, 0xba, 0xd9, 0x8a, 0x6e, 0x9c, 0xe6, 0xb8, 0xff, 0x3b, 0xfd,
-       0x76, 0x99, 0x43, 0xef, 0xbf, 0x5e, 0x3d, 0x89, 0xa1, 0x6c, 0x8e, 0x5c,
-       0x1d, 0x08, 0x1f, 0x3a, 0x49, 0xfe, 0xf6, 0x38, 0xf1, 0xe7, 0x65, 0xcb,
-       0x67, 0xa8, 0xb8, 0xe9, 0x01, 0x23, 0x7c, 0x41, 0x09, 0x6c, 0xfb, 0x25,
-       0x75, 0x70, 0xe3, 0x61, 0x15, 0x1f, 0x1b, 0x5a, 0x86, 0x4c, 0x28, 0x8a,
-       0x3d, 0x4b, 0x54, 0xdc, 0x70, 0xf0, 0x24, 0x71, 0xff, 0xac, 0xcd, 0x93,
-       0x73, 0x99, 0x2f, 0x22, 0x38, 0x20, 0x6b, 0xf7, 0x6e, 0xc6, 0xef, 0x4a,
-       0x9c, 0x19, 0xec, 0xa6, 0xdf, 0x56, 0xe2, 0x54, 0xfa, 0x24, 0xed, 0xb1,
-       0x12, 0x8f, 0x0f, 0x1a, 0x93, 0x3f, 0x71, 0x54, 0xe2, 0x31, 0x9e, 0x0f,
-       0xf1, 0x7c, 0xf1, 0xb0, 0x31, 0xd8, 0xa5, 0x56, 0x62, 0xd1, 0xa1, 0x66,
-       0x0c, 0x26, 0xc5, 0x36, 0x35, 0x6c, 0x1b, 0x6f, 0x2a, 0xe8, 0x5e, 0x74,
-       0xee, 0xc5, 0x3d, 0xd4, 0xd5, 0xdd, 0x43, 0xdd, 0xec, 0xcf, 0x47, 0x9d,
-       0x9f, 0xc4, 0x43, 0xcc, 0xeb, 0x76, 0x27, 0x7d, 0x38, 0x9f, 0x32, 0xfc,
-       0x9f, 0x52, 0x0c, 0xb3, 0x4c, 0x09, 0x68, 0x67, 0xe0, 0xc3, 0x2b, 0xd9,
-       0x72, 0xf4, 0x0e, 0xd7, 0xe1, 0x27, 0xb4, 0xcf, 0x07, 0xf7, 0x9d, 0xb4,
-       0xed, 0xff, 0x40, 0x6a, 0x2e, 0x1e, 0x1b, 0x33, 0xd9, 0xb6, 0xcc, 0x93,
-       0xc3, 0xde, 0xdb, 0xe4, 0x4a, 0x89, 0x6f, 0x44, 0x87, 0x68, 0x16, 0xc4,
-       0xc4, 0x93, 0xc8, 0x0e, 0xea, 0xfd, 0x37, 0xab, 0xc2, 0xab, 0x55, 0xea,
-       0xd2, 0x81, 0x29, 0x4d, 0x8f, 0xd7, 0xa8, 0xf1, 0x41, 0xe6, 0xaf, 0xf1,
-       0x5a, 0xea, 0xe4, 0xb1, 0x41, 0x27, 0x16, 0x2c, 0x56, 0x79, 0x3d, 0x7e,
-       0x91, 0xb1, 0x2d, 0x3e, 0x4f, 0x35, 0x71, 0xc0, 0x96, 0x15, 0xf1, 0x12,
-       0x72, 0xfb, 0xea, 0xc5, 0xf5, 0x8c, 0x5f, 0x0e, 0xb1, 0xbd, 0x58, 0xa5,
-       0xea, 0xa4, 0xde, 0x5f, 0xc1, 0x18, 0xed, 0xfa, 0x11, 0x1e, 0xc7, 0x47,
-       0xac, 0xee, 0x55, 0xe4, 0xdc, 0xf3, 0x03, 0x56, 0xf7, 0xcd, 0xa6, 0xe1,
-       0x2b, 0x51, 0x03, 0xd1, 0x2f, 0xe0, 0x15, 0x1c, 0x1b, 0x93, 0x32, 0xb2,
-       0x0f, 0x24, 0x86, 0x91, 0xa4, 0xd5, 0x3d, 0x64, 0xce, 0x47, 0xb3, 0x9d,
-       0x1b, 0xbb, 0x2a, 0xf3, 0x98, 0x29, 0x7e, 0x24, 0x6b, 0x25, 0x53, 0xf8,
-       0x25, 0xdb, 0xb9, 0x30, 0x52, 0x8d, 0x19, 0xb5, 0xe2, 0x07, 0x67, 0xf1,
-       0xc6, 0xe0, 0x77, 0x71, 0x7e, 0xd0, 0xc2, 0xa2, 0x90, 0x05, 0x67, 0xa8,
-       0xd1, 0x6c, 0x55, 0x97, 0x12, 0x23, 0x14, 0xac, 0x6e, 0xf8, 0x1e, 0xde,
-       0x1a, 0x94, 0xfd, 0xa6, 0x96, 0x2d, 0xcb, 0x00, 0x16, 0x5b, 0x7b, 0x66,
-       0x8a, 0xdf, 0x48, 0xbd, 0x3f, 0x95, 0x07, 0xeb, 0x8c, 0x86, 0xc5, 0x5c,
-       0xf8, 0x15, 0x8c, 0x8e, 0x18, 0xd1, 0xcd, 0x45, 0x39, 0x07, 0x5f, 0xa1,
-       0x0e, 0xec, 0xf8, 0x74, 0xb0, 0x06, 0x0b, 0x2e, 0x32, 0x6b, 0xfc, 0xf0,
-       0x3c, 0xda, 0xce, 0xa2, 0xc5, 0x01, 0x73, 0xa5, 0xfa, 0x6f, 0xf4, 0xd3,
-       0x57, 0x70, 0x24, 0x5d, 0xc4, 0x6b, 0x1f, 0x5a, 0xe9, 0xe7, 0xf9, 0x7d,
-       0xfe, 0x5e, 0xb4, 0xa4, 0x4e, 0xd8, 0xeb, 0x0f, 0xc7, 0x89, 0x8f, 0x83,
-       0x29, 0x29, 0xa3, 0x61, 0x2c, 0xdb, 0x4a, 0x6c, 0x88, 0xe2, 0x9f, 0xb2,
-       0x11, 0xe2, 0x43, 0x98, 0xf8, 0xd0, 0x4c, 0x7c, 0x30, 0x89, 0x0f, 0x4d,
-       0xc4, 0x87, 0x20, 0xf1, 0xc1, 0xb0, 0xd7, 0xd6, 0xd3, 0x47, 0xbf, 0x8b,
-       0x92, 0xe1, 0xb3, 0x70, 0xd1, 0x07, 0xce, 0x98, 0x16, 0xf9, 0x49, 0xa3,
-       0xb6, 0x11, 0xf3, 0x95, 0xa8, 0xe6, 0x45, 0x9a, 0xed, 0x95, 0x0d, 0x6b,
-       0x1c, 0x8b, 0x85, 0x60, 0xa8, 0x3e, 0xdc, 0x4f, 0xac, 0xfe, 0x95, 0xd1,
-       0xd8, 0xef, 0x45, 0xe3, 0x81, 0x99, 0x30, 0x06, 0x17, 0xab, 0x0d, 0x4a,
-       0xf4, 0xe3, 0x5e, 0x8e, 0xb3, 0x16, 0x73, 0xf7, 0x69, 0x98, 0xc7, 0xe3,
-       0x1f, 0x53, 0xf5, 0x93, 0x2f, 0x3b, 0xe0, 0x9d, 0x4d, 0xba, 0x33, 0x87,
-       0x4c, 0x80, 0xac, 0xd6, 0xeb, 0xc3, 0x95, 0xc7, 0x5f, 0x51, 0x15, 0xe4,
-       0x3e, 0x2e, 0x31, 0xaf, 0x31, 0xd8, 0xa7, 0xaa, 0xb2, 0x96, 0x44, 0x0c,
-       0xe7, 0xa1, 0x22, 0x42, 0x16, 0x51, 0xc7, 0xfc, 0xc2, 0xda, 0x68, 0x96,
-       0x61, 0x47, 0x13, 0x39, 0xa7, 0x57, 0x3f, 0x21, 0x31, 0x6a, 0x36, 0x63,
-       0x44, 0x79, 0x32, 0x7e, 0xe7, 0x6c, 0x78, 0x50, 0x96, 0xb4, 0xac, 0xaf,
-       0x86, 0x34, 0x78, 0x22, 0x81, 0xe8, 0x56, 0xa6, 0x91, 0x1f, 0x5f, 0x10,
-       0xc6, 0xea, 0xec, 0x09, 0x0c, 0x73, 0x7c, 0xab, 0xb2, 0xc5, 0x67, 0xc5,
-       0xfe, 0xf8, 0xe7, 0xf2, 0x33, 0x67, 0x57, 0x1e, 0x98, 0x0d, 0x43, 0xbb,
-       0x57, 0x1d, 0xae, 0x22, 0x07, 0x3f, 0xce, 0xb8, 0xa7, 0x4c, 0x7d, 0x42,
-       0x41, 0xc7, 0x70, 0x1c, 0x33, 0x42, 0x2f, 0x28, 0xb1, 0x5a, 0xdd, 0xef,
-       0x57, 0x6a, 0xf1, 0x89, 0x7d, 0xd4, 0xf5, 0xa2, 0x1f, 0x7a, 0xe4, 0xb9,
-       0xb0, 0x6f, 0x1e, 0x15, 0xdd, 0xd6, 0xa7, 0x87, 0x38, 0x8e, 0xc9, 0x86,
-       0x13, 0x82, 0x93, 0x8f, 0xba, 0xe1, 0x78, 0x74, 0x16, 0xa2, 0x68, 0x6a,
-       0xb8, 0xb2, 0xeb, 0x5f, 0x54, 0xd1, 0x8b, 0xf0, 0x6b, 0x7d, 0x30, 0xae,
-       0x18, 0xda, 0xcf, 0x95, 0x13, 0xf6, 0x7d, 0xb8, 0xaf, 0x66, 0x4f, 0x52,
-       0x97, 0xc7, 0x0b, 0xf9, 0xd2, 0x3a, 0x24, 0x06, 0x64, 0x5f, 0xfe, 0x59,
-       0xcc, 0x1d, 0xd6, 0xdb, 0x77, 0x29, 0x46, 0xf0, 0x06, 0xe5, 0x2c, 0xe6,
-       0x0c, 0x07, 0x39, 0x97, 0x1a, 0x56, 0x26, 0x8b, 0xf8, 0x29, 0x18, 0xbc,
-       0x8e, 0x18, 0x6c, 0x2d, 0xfb, 0x89, 0x19, 0xd7, 0x65, 0x4f, 0x82, 0x53,
-       0xd1, 0x3b, 0x1a, 0x94, 0x38, 0x63, 0xa8, 0x71, 0x71, 0x3d, 0xeb, 0x78,
-       0x86, 0x9b, 0x70, 0x3b, 0xc7, 0xdc, 0xc6, 0x79, 0xfb, 0xee, 0x62, 0x0b,
-       0x4b, 0x16, 0xeb, 0x07, 0xca, 0x1c, 0xd1, 0x7b, 0x6b, 0x90, 0xeb, 0x9a,
-       0x49, 0xbb, 0xb9, 0x7b, 0x91, 0x1e, 0x7e, 0x81, 0xb8, 0x4b, 0x9c, 0x46,
-       0x2f, 0xe3, 0xce, 0x46, 0xc6, 0xa2, 0xf2, 0x88, 0xde, 0xcf, 0x1c, 0xf5,
-       0xc2, 0x1d, 0x8e, 0x68, 0x48, 0x9e, 0xff, 0xf8, 0x32, 0x96, 0xc1, 0x1d,
-       0xaa, 0x22, 0x0e, 0xea, 0xb9, 0xef, 0x42, 0x3f, 0x70, 0x3b, 0xfa, 0xf1,
-       0x03, 0xf2, 0xbb, 0x99, 0x57, 0xe5, 0x88, 0x51, 0x19, 0x3c, 0x98, 0x3d,
-       0x89, 0x03, 0xd9, 0x47, 0xb1, 0x37, 0xbb, 0x5b, 0x49, 0xdb, 0xf7, 0x20,
-       0x15, 0x79, 0xee, 0x26, 0x5a, 0xa5, 0x7c, 0x06, 0x95, 0xa1, 0xaf, 0x5b,
-       0xe9, 0x1a, 0x15, 0xd5, 0xa1, 0x20, 0x56, 0x27, 0xe3, 0x70, 0x44, 0xde,
-       0xb6, 0xe4, 0xb9, 0xcf, 0x2d, 0x13, 0x06, 0xae, 0x4f, 0x96, 0x23, 0x76,
-       0xc8, 0xb2, 0xfa, 0x9b, 0x9d, 0xd8, 0x34, 0xd1, 0x84, 0x95, 0xc3, 0x0f,
-       0x59, 0xf3, 0x18, 0x73, 0xde, 0xbd, 0xc6, 0x83, 0x3b, 0x0e, 0x79, 0xb0,
-       0x3e, 0x19, 0x85, 0x2f, 0x52, 0xc1, 0xdf, 0x01, 0x73, 0x39, 0x8c, 0xc9,
-       0x49, 0x18, 0xfd, 0xd7, 0x39, 0x02, 0xc7, 0xc2, 0xaa, 0x07, 0x7f, 0x4d,
-       0x1c, 0x5f, 0x45, 0xdc, 0x89, 0x4d, 0x58, 0xa8, 0x8e, 0x78, 0x71, 0x27,
-       0xeb, 0x7f, 0x8c, 0x73, 0xff, 0xd6, 0x92, 0xe3, 0xc4, 0x02, 0x23, 0x36,
-       0xa1, 0x68, 0xd8, 0x3a, 0xe1, 0xa6, 0xae, 0xdc, 0x88, 0x1d, 0xa9, 0xc5,
-       0xf5, 0xfb, 0xfc, 0xb8, 0x63, 0xc2, 0x83, 0x96, 0xa4, 0xb5, 0xec, 0xb8,
-       0x19, 0x5f, 0xab, 0xc1, 0xc0, 0xfa, 0x09, 0x2f, 0x6e, 0x4b, 0xea, 0xbe,
-       0x1b, 0x98, 0xf3, 0x8f, 0x99, 0x41, 0xfc, 0xed, 0x84, 0x0f, 0xb7, 0x24,
-       0x4f, 0x49, 0x1e, 0xb9, 0xdc, 0xc9, 0xd8, 0x73, 0xff, 0x44, 0x1d, 0xd6,
-       0x26, 0xf5, 0x8b, 0x93, 0xe4, 0x76, 0xdd, 0x47, 0x4c, 0xdc, 0x3b, 0xa1,
-       0xa2, 0x83, 0xed, 0x7c, 0x22, 0x39, 0x17, 0x5d, 0x47, 0x9a, 0x29, 0xc3,
-       0x62, 0xac, 0x1a, 0x76, 0xc2, 0x24, 0x8b, 0xc7, 0x27, 0x81, 0x76, 0xfa,
-       0x47, 0x22, 0xf5, 0x45, 0xec, 0x19, 0x30, 0x71, 0xd7, 0x84, 0x9c, 0x9f,
-       0xb4, 0x9f, 0x95, 0xbb, 0x70, 0x70, 0x31, 0x6e, 0x1c, 0x56, 0x89, 0x03,
-       0xa5, 0x48, 0xaf, 0x55, 0x70, 0x1b, 0xaf, 0xef, 0x4a, 0xd9, 0x7b, 0xab,
-       0x11, 0x1a, 0x0a, 0x1c, 0xab, 0x21, 0x67, 0x58, 0x72, 0x30, 0x7f, 0xfd,
-       0x41, 0xe2, 0x7c, 0x19, 0x71, 0xbe, 0x82, 0x1c, 0xf6, 0xba, 0xd1, 0x93,
-       0x78, 0x80, 0xb8, 0x7c, 0x62, 0xb8, 0x9b, 0x71, 0xa7, 0x12, 0x5f, 0x63,
-       0x1c, 0x48, 0xf2, 0xfc, 0xec, 0x90, 0xd1, 0x55, 0x46, 0x9c, 0x7e, 0x81,
-       0xf8, 0xdb, 0x4f, 0xcc, 0xb8, 0x3b, 0x49, 0xb7, 0x1f, 0x62, 0x0e, 0x70,
-       0x55, 0x74, 0xa1, 0x87, 0x39, 0xd6, 0x0d, 0x4a, 0xc0, 0xf7, 0x1a, 0x2a,
-       0xe1, 0x38, 0x58, 0x8b, 0x96, 0x7d, 0x52, 0x46, 0xf0, 0x4b, 0x85, 0x7a,
-       0xd8, 0x49, 0x9d, 0x9f, 0x84, 0x35, 0xe8, 0xe0, 0x78, 0xeb, 0x4d, 0x32,
-       0x70, 0xfc, 0xd8, 0xd4, 0xb5, 0x7f, 0x22, 0xd6, 0xbe, 0x43, 0x4c, 0xf5,
-       0xcf, 0x6e, 0x46, 0xab, 0x61, 0xf2, 0x38, 0x89, 0x57, 0x06, 0x0d, 0xf3,
-       0x10, 0x9c, 0x78, 0x99, 0x3c, 0x6f, 0x6a, 0x36, 0x63, 0xa6, 0x21, 0x7e,
-       0x98, 0xe1, 0x78, 0x54, 0xc9, 0x4b, 0xe0, 0x18, 0x07, 0xde, 0x38, 0xb8,
-       0x8c, 0xe3, 0x92, 0x58, 0x2a, 0xf1, 0x2e, 0x43, 0x59, 0x97, 0x61, 0x0d,
-       0xf5, 0xd1, 0x9a, 0x54, 0x91, 0x39, 0x12, 0xc1, 0x5d, 0xfb, 0xf3, 0x71,
-       0x78, 0x5b, 0x28, 0x7e, 0x33, 0xe3, 0x70, 0xb8, 0x9c, 0x71, 0xd8, 0x15,
-       0x11, 0xd9, 0x9c, 0x18, 0x65, 0xdc, 0xde, 0x91, 0x0a, 0xa3, 0x8d, 0x73,
-       0x38, 0x99, 0x61, 0xbf, 0xc9, 0x3a, 0x9c, 0xc9, 0x78, 0x18, 0xb3, 0x34,
-       0x1e, 0x44, 0xb5, 0xb1, 0x59, 0x3c, 0xfc, 0x3c, 0xe6, 0xf3, 0x30, 0xec,
-       0x6b, 0x1b, 0x93, 0x0a, 0xe2, 0xed, 0x8a, 0xcd, 0xe7, 0xcf, 0x64, 0x04,
-       0x9b, 0x65, 0x2d, 0x73, 0x7b, 0x95, 0x3c, 0x8b, 0x32, 0x98, 0xfa, 0x1e,
-       0xaa, 0xa9, 0xff, 0xaa, 0x02, 0x0e, 0xfd, 0x34, 0x24, 0xb8, 0x5b, 0x4f,
-       0xdc, 0x95, 0xe7, 0x04, 0x2c, 0x6b, 0x5d, 0x60, 0x3a, 0x1e, 0xfd, 0x9f,
-       0x77, 0xa3, 0xf6, 0x33, 0x17, 0x82, 0x49, 0xc4, 0xbf, 0x14, 0xf1, 0x8f,
-       0x63, 0xe8, 0xb9, 0x96, 0x18, 0x48, 0x99, 0xfe, 0x21, 0x45, 0x0c, 0x24,
-       0x4e, 0x3f, 0x4a, 0x9c, 0xfe, 0x06, 0x71, 0xfa, 0xeb, 0xc4, 0xe9, 0xaf,
-       0x11, 0x13, 0xf2, 0x6b, 0x7a, 0x6d, 0x72, 0xff, 0x85, 0xf3, 0xf1, 0x96,
-       0xbd, 0xb6, 0x38, 0x93, 0xba, 0x9a, 0x3b, 0xac, 0x60, 0x9e, 0xa1, 0x1f,
-       0x13, 0xbb, 0xff, 0x01, 0xe7, 0xc9, 0x3f, 0xa3, 0xce, 0x7e, 0x26, 0xa6,
-       0x35, 0xd9, 0x07, 0x77, 0xb2, 0x51, 0xeb, 0x87, 0xfd, 0x2c, 0xb2, 0x29,
-       0x5c, 0xb4, 0x24, 0xb9, 0x11, 0x8e, 0x64, 0xe3, 0xb1, 0xd3, 0x72, 0x9f,
-       0x77, 0x96, 0xe4, 0xf5, 0x1b, 0xe1, 0x4c, 0xea, 0xc7, 0xe2, 0x94, 0x65,
-       0x25, 0xff, 0x73, 0x25, 0x1b, 0xcd, 0xd7, 0x60, 0x63, 0x9b, 0x7f, 0xca,
-       0xfe, 0xaf, 0xfe, 0xc2, 0x03, 0xd4, 0x57, 0x8e, 0x6d, 0x66, 0xa8, 0xfb,
-       0x72, 0xf2, 0x95, 0x47, 0xb2, 0xf2, 0xbb, 0xb1, 0x23, 0xa1, 0x1e, 0x43,
-       0x6c, 0xa6, 0xf0, 0xf1, 0x30, 0x6e, 0x4a, 0x7a, 0x68, 0x07, 0x71, 0x54,
-       0xd1, 0xb7, 0x3e, 0x37, 0xd1, 0x4c, 0x5f, 0x7b, 0xc8, 0xd2, 0x22, 0x81,
-       0x8e, 0x09, 0x72, 0x9e, 0x2d, 0x13, 0xcb, 0xb0, 0x62, 0xd8, 0xb2, 0x3c,
-       0x4b, 0x8d, 0xf0, 0x56, 0xc5, 0x0f, 0x17, 0x7d, 0xd0, 0x41, 0xbf, 0xda,
-       0x7c, 0x28, 0xa0, 0xbd, 0x46, 0x3c, 0xed, 0x6c, 0x3e, 0x41, 0xfb, 0x30,
-       0x2e, 0xb6, 0x11, 0x4b, 0x9d, 0x91, 0x00, 0xf3, 0x44, 0x0f, 0x6d, 0xdf,
-       0x8b, 0x8b, 0x09, 0xf1, 0x2f, 0xbd, 0xeb, 0x9f, 0x98, 0x9b, 0x74, 0xd1,
-       0x37, 0x7e, 0x9e, 0xa8, 0xa3, 0x0f, 0xb8, 0xf1, 0x46, 0xc2, 0xa0, 0xbf,
-       0x79, 0xf0, 0x56, 0xa2, 0x89, 0x7d, 0x05, 0x59, 0xc6, 0x8f, 0x7b, 0x26,
-       0xc2, 0xf4, 0xb3, 0x6b, 0x79, 0xc8, 0x73, 0x99, 0xf5, 0xf1, 0x6f, 0x2a,
-       0xf5, 0x83, 0x73, 0xd5, 0x1a, 0x44, 0x6b, 0x35, 0x7c, 0x7e, 0xe2, 0x23,
-       0xf8, 0x57, 0xc6, 0xed, 0x4d, 0x49, 0x70, 0x0e, 0x11, 0x22, 0x0f, 0x9c,
-       0x3c, 0x22, 0xf7, 0x1c, 0xd1, 0x18, 0x6d, 0x70, 0xe8, 0xcc, 0x6d, 0xf5,
-       0xdc, 0x79, 0x87, 0x93, 0x7d, 0x92, 0x15, 0xb3, 0xec, 0xcf, 0x07, 0xcb,
-       0x71, 0xef, 0xa1, 0x13, 0xf4, 0x91, 0x12, 0x2c, 0x7a, 0xc0, 0x8d, 0xcf,
-       0x1f, 0xc9, 0x90, 0x3b, 0xa8, 0x90, 0xfd, 0xbc, 0x69, 0x12, 0x85, 0x39,
-       0xa3, 0x11, 0xdc, 0xb9, 0x3f, 0x83, 0xe1, 0x02, 0xcf, 0x0b, 0x85, 0xe2,
-       0xff, 0x43, 0xc5, 0x09, 0xf2, 0x88, 0x40, 0xe7, 0xd5, 0xb4, 0xb1, 0xaa,
-       0x48, 0x20, 0x2e, 0xe3, 0x6e, 0xa7, 0x8d, 0xf5, 0x71, 0x3e, 0x33, 0x1c,
-       0x47, 0x82, 0x36, 0xf6, 0x55, 0xca, 0xbf, 0x87, 0x36, 0x16, 0xa7, 0x8d,
-       0xc5, 0x69, 0x4f, 0x71, 0xda, 0x98, 0x3c, 0xfb, 0x1b, 0xa7, 0x8d, 0xc5,
-       0x69, 0x63, 0xf1, 0xcc, 0x32, 0x1c, 0x25, 0xd3, 0xd8, 0x39, 0xd6, 0x4c,
-       0x1c, 0x53, 0xec, 0xa8, 0x94, 0xbb, 0xf9, 0x23, 0xe4, 0xec, 0xd7, 0xf1,
-       0x50, 0xd0, 0x46, 0x9f, 0xec, 0x4f, 0x67, 0xc8, 0x79, 0xdc, 0xf8, 0x75,
-       0x56, 0x38, 0x7e, 0x33, 0xf3, 0xd8, 0x93, 0xe4, 0xf9, 0x2a, 0x9e, 0x30,
-       0x25, 0x0f, 0x36, 0x79, 0xce, 0x58, 0x93, 0x12, 0xbe, 0x76, 0x12, 0x77,
-       0x0f, 0x02, 0x37, 0x90, 0x17, 0xd6, 0x92, 0x97, 0x1c, 0x5e, 0xc4, 0xdf,
-       0x07, 0x4f, 0xd0, 0xe6, 0x4f, 0xda, 0x7b, 0xbb, 0x54, 0xb6, 0x75, 0x66,
-       0xb0, 0xde, 0x77, 0x3d, 0x7d, 0xf0, 0x7e, 0xd6, 0x75, 0x1e, 0x94, 0x3a,
-       0x27, 0xd8, 0xb6, 0x1e, 0xfe, 0x35, 0xe7, 0xbf, 0xe3, 0x81, 0x5a, 0xbc,
-       0xb1, 0x5f, 0x0f, 0xbf, 0x43, 0xcc, 0xab, 0x75, 0x58, 0xcb, 0xae, 0x0e,
-       0x05, 0xb6, 0x5d, 0xad, 0xe6, 0xf9, 0x5e, 0xfb, 0x90, 0x13, 0xc7, 0x42,
-       0xcb, 0xe0, 0x59, 0x54, 0xe4, 0x7c, 0xb4, 0xa5, 0x5a, 0xe1, 0x58, 0x7a,
-       0xf8, 0x3c, 0xb9, 0x4a, 0x92, 0xed, 0x1f, 0xcd, 0x3c, 0x4e, 0x0c, 0xf9,
-       0x22, 0x9e, 0x63, 0x7e, 0x3e, 0xf6, 0xa1, 0x97, 0xc9, 0x1d, 0xdd, 0x18,
-       0x27, 0x07, 0x3c, 0x3e, 0x18, 0xfd, 0xa8, 0x93, 0xb8, 0xef, 0x59, 0x54,
-       0x89, 0x4c, 0x5a, 0xb8, 0x62, 0x25, 0x9e, 0x19, 0x34, 0xb4, 0x1b, 0x94,
-       0x3c, 0x2f, 0xcc, 0xef, 0xfd, 0x32, 0x2e, 0x8e, 0x22, 0x30, 0x79, 0x9e,
-       0xdc, 0xf0, 0x9d, 0xb4, 0xc4, 0xb0, 0x93, 0xf4, 0x71, 0x3f, 0xc2, 0x49,
-       0x0d, 0x27, 0xc6, 0x0d, 0x2c, 0x4c, 0x7a, 0xf1, 0xf0, 0x78, 0x10, 0x57,
-       0xd3, 0x77, 0xb3, 0xe4, 0x87, 0x1f, 0x4a, 0x8a, 0x2f, 0xd6, 0x61, 0x62,
-       0xbc, 0x8e, 0x3e, 0x22, 0xbc, 0xfc, 0x67, 0xf0, 0xd4, 0x9e, 0xb5, 0xf7,
-       0x36, 0x8f, 0xa6, 0xf4, 0xfe, 0x18, 0xc7, 0x13, 0xf3, 0xea, 0xc7, 0x62,
-       0xd0, 0xd3, 0xc0, 0x87, 0xdf, 0x4d, 0x7f, 0x52, 0xe2, 0xa3, 0xf8, 0xa3,
-       0x86, 0x09, 0xf2, 0x9d, 0x52, 0x62, 0x6a, 0x79, 0xa4, 0xfe, 0xc2, 0xf7,
-       0x15, 0x3d, 0xf7, 0x94, 0x6a, 0x59, 0xdf, 0x5b, 0xac, 0xc1, 0x77, 0x44,
-       0x23, 0xf7, 0x30, 0xed, 0xe7, 0x62, 0xe4, 0x79, 0xf3, 0xd9, 0xfb, 0x6a,
-       0x31, 0x63, 0x5f, 0x12, 0xff, 0xad, 0x36, 0xfe, 0xd1, 0x59, 0x8c, 0xf3,
-       0xb3, 0x64, 0x7f, 0x76, 0xf2, 0xf4, 0x6c, 0xb9, 0x57, 0x34, 0xa9, 0x36,
-       0x76, 0x1c, 0x83, 0x7e, 0xec, 0x15, 0x45, 0xf7, 0x7d, 0x95, 0xb1, 0xc1,
-       0x45, 0x1b, 0x75, 0x4c, 0x68, 0xf4, 0xdd, 0xc6, 0x13, 0x33, 0x60, 0xc4,
-       0xaf, 0x51, 0x5d, 0x16, 0x6c, 0x79, 0x6e, 0xa8, 0xca, 0xe7, 0x45, 0x82,
-       0x3b, 0x12, 0x17, 0xc8, 0x17, 0x89, 0xc1, 0x9d, 0xf4, 0x97, 0x35, 0x76,
-       0x2c, 0x3a, 0x61, 0xef, 0xfd, 0xde, 0x3a, 0x11, 0xa7, 0x8f, 0x2c, 0x43,
-       0xc5, 0xb0, 0x07, 0x9f, 0xb3, 0xe3, 0xd0, 0x43, 0x56, 0x0d, 0xfd, 0xe5,
-       0xae, 0x43, 0x81, 0xce, 0xeb, 0xe9, 0x2f, 0xf5, 0x4b, 0x25, 0x86, 0x31,
-       0x6e, 0xa7, 0x0c, 0x73, 0x94, 0xd8, 0xf2, 0x50, 0xb3, 0x31, 0xf9, 0x32,
-       0xf2, 0x3e, 0xb3, 0x6b, 0xa0, 0x16, 0x7f, 0xff, 0xc0, 0x71, 0x7b, 0x2d,
-       0xe4, 0x4e, 0x9e, 0x27, 0x07, 0x7c, 0xb6, 0x7f, 0xc4, 0xf8, 0xfb, 0x1e,
-       0xc6, 0xbc, 0x18, 0xfd, 0x68, 0xe7, 0x80, 0xb5, 0xec, 0xf9, 0xc5, 0xf1,
-       0xb5, 0x55, 0x08, 0x32, 0x26, 0xb9, 0xd1, 0x3f, 0xa0, 0x0f, 0x76, 0x30,
-       0x06, 0x9d, 0x5d, 0x6c, 0x52, 0x16, 0x0f, 0x86, 0x06, 0x04, 0x53, 0x4f,
-       0xdd, 0x52, 0x8b, 0xf8, 0xff, 0xd0, 0x38, 0xbe, 0xcf, 0xd9, 0xf7, 0x08,
-       0xeb, 0xb0, 0xe9, 0xc8, 0x52, 0xca, 0xdc, 0x44, 0x1f, 0x64, 0x5e, 0xcd,
-       0x7c, 0x67, 0xc3, 0x7e, 0xf1, 0x0b, 0xb4, 0x48, 0x9e, 0xd6, 0x6d, 0x06,
-       0xcc, 0x57, 0xe9, 0x43, 0x25, 0xe4, 0x3a, 0x0f, 0xa6, 0xec, 0xe7, 0x73,
-       0x72, 0x15, 0x46, 0x18, 0x8b, 0x69, 0xa3, 0x25, 0x86, 0x0f, 0x33, 0xc8,
-       0xeb, 0x16, 0x72, 0x3e, 0xca, 0xb2, 0x1e, 0x80, 0x1c, 0x02, 0xc4, 0x27,
-       0x1c, 0x25, 0x08, 0x1e, 0xf5, 0xf3, 0x98, 0xcf, 0x83, 0x8a, 0xc8, 0xaa,
-       0x98, 0x79, 0x94, 0x75, 0x47, 0x33, 0xb6, 0x2d, 0xfe, 0x3d, 0xe7, 0x3d,
-       0x41, 0x5b, 0xff, 0x04, 0xb1, 0x7e, 0x72, 0x2f, 0xd0, 0x7f, 0x30, 0x6f,
-       0xdb, 0x29, 0xb6, 0xdf, 0x4e, 0xcc, 0xbb, 0x40, 0x9b, 0xed, 0xe3, 0x7c,
-       0x0f, 0x8d, 0x18, 0xc1, 0x46, 0x35, 0xa0, 0x4d, 0x70, 0x9e, 0x7b, 0xc6,
-       0x54, 0x0c, 0x0c, 0x2e, 0xc3, 0x28, 0xf3, 0xa0, 0xde, 0xb4, 0xf8, 0x88,
-       0x94, 0x39, 0x89, 0x6e, 0xfa, 0xc8, 0x2f, 0x17, 0x2b, 0x88, 0x7d, 0x5c,
-       0xf6, 0xbe, 0x3b, 0x99, 0xef, 0x7f, 0x11, 0x9b, 0x12, 0x8f, 0x5b, 0x95,
-       0x86, 0xde, 0x9f, 0x56, 0x99, 0x67, 0xd1, 0x36, 0x7b, 0x98, 0x9f, 0x2c,
-       0x67, 0x7e, 0xd2, 0x5b, 0xb0, 0xcb, 0x33, 0xb4, 0xc3, 0x01, 0xc6, 0xb1,
-       0x97, 0xd3, 0xf9, 0xb8, 0xf7, 0x83, 0x21, 0x3f, 0x16, 0x5e, 0x53, 0x89,
-       0xa7, 0x0f, 0xe6, 0x65, 0xdb, 0x4b, 0x9b, 0x7c, 0x8a, 0x7a, 0xbe, 0x83,
-       0x7a, 0x7d, 0x29, 0x25, 0x18, 0x15, 0xc4, 0x33, 0xe4, 0xd1, 0x5b, 0xc8,
-       0x05, 0xbe, 0x97, 0xca, 0xdb, 0xe4, 0xe7, 0x27, 0xd6, 0x68, 0xf9, 0xf8,
-       0xe0, 0x85, 0xba, 0x4f, 0xf6, 0x00, 0x5a, 0xd6, 0x72, 0x33, 0xd7, 0x49,
-       0x5e, 0xc3, 0xb6, 0x23, 0xe4, 0x46, 0x4e, 0xcc, 0x49, 0x46, 0xb0, 0x22,
-       0x55, 0xdf, 0xd6, 0x20, 0x9b, 0x3d, 0xe6, 0xe4, 0x39, 0xa0, 0x2b, 0x29,
-       0xef, 0x0e, 0xd0, 0x50, 0xc1, 0xdc, 0xe9, 0xaf, 0x0b, 0xef, 0x2b, 0xf8,
-       0xc4, 0x9f, 0xc1, 0x1d, 0xd7, 0x50, 0xa6, 0x14, 0xb9, 0xe3, 0x54, 0xe1,
-       0x7d, 0x05, 0x37, 0xdb, 0xef, 0x2b, 0x70, 0x63, 0xc6, 0x84, 0xd3, 0xf9,
-       0xa9, 0x94, 0x07, 0xb3, 0x27, 0x2e, 0x71, 0x50, 0x77, 0x49, 0xa4, 0x15,
-       0x4f, 0x26, 0x14, 0xcc, 0x32, 0xfe, 0x27, 0xbe, 0x6f, 0xaf, 0x09, 0xd4,
-       0xda, 0x7b, 0xf6, 0x5d, 0x91, 0x28, 0x0e, 0x27, 0xf4, 0xb6, 0xc7, 0x78,
-       0x5e, 0x46, 0x3c, 0xad, 0xda, 0xa7, 0xe0, 0xa9, 0x80, 0x17, 0xa5, 0x47,
-       0x64, 0xaf, 0xbb, 0x65, 0x39, 0x17, 0xaf, 0xb2, 0x76, 0xac, 0x13, 0xfb,
-       0xe6, 0x1c, 0x1e, 0x09, 0x54, 0x09, 0x06, 0x1e, 0x36, 0x65, 0xdd, 0xd2,
-       0x40, 0x5f, 0xa2, 0x96, 0xfc, 0xba, 0xbe, 0xb3, 0x15, 0xf5, 0xe6, 0xcf,
-       0x1c, 0xb5, 0x28, 0x39, 0x72, 0x87, 0x26, 0x6b, 0xf6, 0xdf, 0xe0, 0x9c,
-       0xf5, 0x12, 0xbb, 0x7a, 0x52, 0xf9, 0xf8, 0xd9, 0x9a, 0xb1, 0xaa, 0x45,
-       0x2f, 0xbd, 0xe4, 0x27, 0x6a, 0xf2, 0xa2, 0x5d, 0xa6, 0x22, 0x92, 0x23,
-       0xfe, 0xd4, 0xe1, 0x04, 0xf9, 0x82, 0xc4, 0xd2, 0x0a, 0x1e, 0x95, 0xe4,
-       0x8d, 0x3f, 0x67, 0x2c, 0xbd, 0x27, 0x94, 0x0b, 0xca, 0x9b, 0x2c, 0x6a,
-       0xc8, 0xc5, 0xe9, 0x03, 0x38, 0x12, 0xd2, 0xdb, 0x37, 0x38, 0xa2, 0x4f,
-       0x33, 0x07, 0x0b, 0x2f, 0x63, 0x4e, 0xbe, 0x2a, 0x90, 0xc1, 0x2e, 0xf2,
-       0xc0, 0x9d, 0xcc, 0xc5, 0x3b, 0x68, 0x9b, 0x9d, 0xfb, 0x19, 0xdb, 0x1c,
-       0x97, 0x73, 0x71, 0x2d, 0x14, 0xdf, 0x40, 0x0e, 0xd0, 0xe5, 0x51, 0xc5,
-       0x5e, 0xc5, 0x77, 0x02, 0x1d, 0xaf, 0x12, 0xa3, 0x1b, 0x19, 0x37, 0xc4,
-       0xde, 0xf7, 0xa4, 0xf4, 0x4e, 0x2a, 0xa0, 0xa6, 0x92, 0xb9, 0xe3, 0xbd,
-       0xe3, 0xcd, 0xf4, 0x9b, 0xfc, 0x33, 0x73, 0xce, 0x25, 0x75, 0xcc, 0x39,
-       0xaf, 0x43, 0xef, 0x10, 0xed, 0x9f, 0xbe, 0x74, 0xff, 0x00, 0xc8, 0xcf,
-       0xd4, 0x9d, 0x9c, 0xbf, 0xdc, 0x11, 0x04, 0x2e, 0xb6, 0xa3, 0xb1, 0xad,
-       0xc4, 0x21, 0x32, 0xe8, 0xed, 0x6f, 0x90, 0xa7, 0x75, 0x31, 0x3f, 0xdd,
-       0xc2, 0x5c, 0x3e, 0xc6, 0x5c, 0x3e, 0xc6, 0x7a, 0xa9, 0x21, 0xb9, 0x4f,
-       0x64, 0xb4, 0x9f, 0x61, 0xfe, 0xf3, 0x39, 0xf2, 0x9f, 0xa1, 0x07, 0x44,
-       0xae, 0x59, 0xb8, 0xf7, 0xf0, 0x75, 0x48, 0xd2, 0x9e, 0xee, 0xe1, 0xb5,
-       0x81, 0x07, 0xe6, 0xe3, 0x6e, 0xe6, 0xf1, 0xb1, 0xf1, 0x65, 0x18, 0x64,
-       0x26, 0xba, 0xed, 0xf0, 0x47, 0xd0, 0x43, 0x3e, 0xb5, 0x9c, 0x18, 0xbd,
-       0xe1, 0x60, 0xc6, 0xc6, 0x6c, 0xc1, 0xfc, 0x1f, 0x67, 0x80, 0xd7, 0xc8,
-       0xc9, 0x06, 0x53, 0x27, 0x6c, 0x9e, 0xe6, 0x62, 0x7c, 0x28, 0x25, 0x2e,
-       0x85, 0xf7, 0x1b, 0x5d, 0x2b, 0x55, 0x6b, 0x59, 0xd9, 0xe2, 0x40, 0xff,
-       0x1b, 0xf4, 0xd5, 0x9a, 0x23, 0x2a, 0x6a, 0x87, 0x25, 0x57, 0x27, 0x3f,
-       0x22, 0x46, 0x3f, 0x47, 0x8c, 0xae, 0x3c, 0x94, 0xcf, 0xcb, 0x13, 0xcc,
-       0xbb, 0x6a, 0x8d, 0x7c, 0x6e, 0xbe, 0x67, 0x40, 0xf6, 0xe8, 0xb8, 0xf1,
-       0x1d, 0xda, 0xfe, 0xa9, 0x82, 0xed, 0x9f, 0x2e, 0x60, 0xb0, 0xc5, 0xdc,
-       0xfc, 0x35, 0x1b, 0x7f, 0xf3, 0xb9, 0xf9, 0xc2, 0x61, 0xa3, 0x2b, 0x4c,
-       0x8c, 0xbe, 0xfa, 0x90, 0xf4, 0xaf, 0xa1, 0x96, 0x78, 0x32, 0x93, 0x58,
-       0x52, 0x35, 0x2c, 0xeb, 0x33, 0x81, 0xce, 0x09, 0xd5, 0x67, 0xf7, 0xb1,
-       0x9d, 0xb2, 0xf5, 0xd2, 0x07, 0xbe, 0x9a, 0x30, 0xb4, 0xad, 0x4a, 0xc0,
-       0x5c, 0x4d, 0x7d, 0x1e, 0xc9, 0x5c, 0x87, 0xce, 0xc1, 0x3a, 0x1c, 0x4b,
-       0x4b, 0x7c, 0x91, 0xf6, 0x25, 0x17, 0x77, 0xe2, 0x9d, 0xfd, 0x73, 0xf1,
-       0xce, 0xd8, 0xe5, 0x3c, 0x7c, 0x47, 0x2a, 0x7a, 0x3f, 0xc3, 0xeb, 0x2a,
-       0xc9, 0xc3, 0xbf, 0xc7, 0x3c, 0xfc, 0x0d, 0x45, 0xd6, 0x10, 0x55, 0x7c,
-       0x62, 0x91, 0x83, 0xf1, 0x45, 0xf7, 0x7f, 0xd7, 0x11, 0x97, 0xfb, 0xc8,
-       0xfe, 0x07, 0xf8, 0xff, 0xb3, 0x8c, 0xe7, 0xc3, 0x9c, 0x89, 0x68, 0xad,
-       0x03, 0x4f, 0x2f, 0x8e, 0x47, 0x65, 0x9d, 0xb4, 0x9f, 0x3c, 0x65, 0x0e,
-       0xe3, 0xe1, 0xdf, 0xa7, 0xea, 0xc3, 0x0b, 0x1d, 0x0e, 0x5c, 0x34, 0xf5,
-       0xf6, 0x03, 0xbc, 0xf6, 0x4c, 0x56, 0x7c, 0x31, 0x4c, 0xfc, 0x5a, 0x59,
-       0xf0, 0xc5, 0x5a, 0x94, 0xd3, 0xce, 0xe7, 0xd2, 0x5e, 0x7f, 0x9c, 0xd2,
-       0x07, 0x9f, 0xa1, 0x9d, 0xd6, 0x5e, 0xb2, 0x53, 0x59, 0xa3, 0x95, 0xbc,
-       0xa6, 0x9d, 0x79, 0xcd, 0xf4, 0xe7, 0xa5, 0x8f, 0xa3, 0x2f, 0x7b, 0x1f,
-       0xee, 0xdd, 0xab, 0x77, 0x39, 0x1d, 0x71, 0x4b, 0x33, 0xba, 0x99, 0xa3,
-       0x75, 0x23, 0xb0, 0xc8, 0xe8, 0xb8, 0xa0, 0xe8, 0x9d, 0x3f, 0x54, 0xca,
-       0x99, 0xf3, 0x9d, 0xc1, 0xf6, 0x51, 0x3d, 0x98, 0x51, 0x0c, 0xdc, 0x40,
-       0x8c, 0x7b, 0x78, 0xa4, 0x84, 0x76, 0xb8, 0x1e, 0x47, 0x06, 0xf5, 0x70,
-       0x1c, 0x26, 0x31, 0xb4, 0xde, 0x5f, 0xa6, 0x5c, 0xc0, 0x69, 0xf3, 0x2c,
-       0xb6, 0x67, 0xe7, 0x60, 0xbd, 0x26, 0x7b, 0x9a, 0xd6, 0x63, 0x62, 0xf0,
-       0x02, 0x71, 0xa8, 0x9d, 0xdc, 0x4a, 0xf2, 0x06, 0x0b, 0x7b, 0x42, 0x57,
-       0x63, 0x8b, 0xed, 0xbf, 0xa5, 0xf2, 0x4e, 0x0b, 0xcf, 0x3c, 0xc3, 0x20,
-       0x4e, 0x48, 0x6e, 0xee, 0x9b, 0xb6, 0x3f, 0x57, 0xd6, 0x75, 0x1b, 0xab,
-       0xf2, 0xf7, 0x95, 0xff, 0x58, 0x99, 0x29, 0x1c, 0x1a, 0x91, 0xf5, 0x85,
-       0x19, 0xca, 0xe3, 0x83, 0x0d, 0xbe, 0x1e, 0xc6, 0x8f, 0xfb, 0xcd, 0x1c,
-       0x5e, 0x5f, 0x5c, 0x86, 0x29, 0xaf, 0x82, 0xd0, 0xd5, 0x61, 0xe9, 0x83,
-       0x9f, 0x73, 0x96, 0xff, 0x93, 0xd2, 0xce, 0x82, 0xc2, 0x9a, 0xc3, 0x3b,
-       0x35, 0x8c, 0x55, 0x3c, 0x97, 0xe7, 0x03, 0xe5, 0xbc, 0x78, 0xfd, 0x47,
-       0x56, 0xd4, 0x2b, 0xd7, 0x89, 0xd9, 0xb3, 0xc4, 0x7f, 0x67, 0x28, 0x77,
-       0x12, 0x6f, 0xe7, 0x87, 0x66, 0x28, 0xeb, 0xd3, 0xc5, 0x3a, 0x2f, 0x22,
-       0x3b, 0xf2, 0x22, 0xe7, 0x53, 0x0f, 0x4e, 0xc1, 0x55, 0x78, 0x56, 0x5e,
-       0xf6, 0x81, 0xb9, 0xc8, 0x43, 0x65, 0x2d, 0xfe, 0x1c, 0x86, 0xf6, 0x0b,
-       0x6f, 0xb4, 0xac, 0x40, 0xc3, 0x39, 0x6c, 0x3f, 0x7a, 0x42, 0xe9, 0x48,
-       0xbd, 0x6b, 0xa1, 0x74, 0x46, 0x6c, 0x8e, 0xbd, 0xdf, 0x59, 0xda, 0xe8,
-       0x53, 0xda, 0xb3, 0x81, 0xf0, 0xfd, 0x0c, 0xbe, 0x5a, 0x44, 0x9e, 0x63,
-       0x97, 0xb1, 0x9d, 0xe0, 0x35, 0xc3, 0x7e, 0x66, 0xe8, 0xb8, 0x3d, 0xce,
-       0xf7, 0xeb, 0xe1, 0x9b, 0x56, 0xb4, 0x5d, 0xea, 0x16, 0xe5, 0x9a, 0xcf,
-       0x89, 0x16, 0xd9, 0x8a, 0xff, 0x8f, 0x17, 0x64, 0x2f, 0x25, 0x77, 0xce,
-       0x97, 0xe9, 0xa4, 0xec, 0x25, 0xa1, 0x28, 0x4e, 0x35, 0x4f, 0x97, 0xbf,
-       0x38, 0xd6, 0x83, 0xef, 0x69, 0x2f, 0x5f, 0xf6, 0xe3, 0xb5, 0xb2, 0x4f,
-       0xea, 0x54, 0xf3, 0x24, 0xfe, 0xce, 0x5e, 0xd7, 0x78, 0xd3, 0xde, 0xdf,
-       0xb9, 0xcb, 0x6c, 0x89, 0x96, 0xe1, 0xa3, 0x50, 0xaf, 0x8a, 0x2f, 0x2c,
-       0xb3, 0xf9, 0x76, 0xb4, 0xbd, 0x8c, 0x39, 0xb7, 0xdb, 0x88, 0xde, 0xef,
-       0x46, 0x2e, 0x47, 0x9e, 0xd0, 0x71, 0x51, 0x39, 0xa6, 0xdc, 0x11, 0xd0,
-       0xb7, 0xbd, 0x4d, 0xfe, 0xf3, 0x6c, 0x20, 0xce, 0x39, 0x37, 0x7c, 0x03,
-       0x8a, 0x6e, 0x6e, 0x62, 0x8c, 0x7d, 0x86, 0x39, 0xed, 0xc6, 0x40, 0xbf,
-       0x7d, 0xcf, 0x53, 0x89, 0xac, 0xc1, 0x95, 0xf6, 0xfb, 0x26, 0xda, 0x61,
-       0x64, 0x5e, 0x94, 0x35, 0x38, 0xfe, 0x8e, 0x61, 0xa1, 0x7d, 0x6d, 0x23,
-       0x82, 0xf6, 0xf7, 0xba, 0xc2, 0x3b, 0x29, 0x3a, 0x50, 0x6f, 0x7f, 0x7f,
-       0x1a, 0x0d, 0x99, 0x4b, 0x6b, 0xd5, 0xe8, 0x35, 0x2d, 0xeb, 0x49, 0x53,
-       0x9e, 0x57, 0xbb, 0xb4, 0xb7, 0x7c, 0x8d, 0x83, 0x39, 0x10, 0x21, 0x25,
-       0x96, 0x7f, 0x27, 0xcf, 0xe5, 0xe7, 0xc5, 0x56, 0xbc, 0x67, 0x6f, 0xb9,
-       0xfd, 0xac, 0x93, 0xfd, 0xce, 0xa5, 0x05, 0x4b, 0x9c, 0xf8, 0x4e, 0xa2,
-       0x2a, 0xe6, 0xe1, 0xef, 0xed, 0x4b, 0x4a, 0xb0, 0x25, 0x44, 0x0e, 0x7a,
-       0xd5, 0x19, 0x9c, 0xcf, 0x38, 0x71, 0x26, 0x11, 0x0f, 0x8d, 0xb1, 0xbf,
-       0x53, 0x09, 0x15, 0xa7, 0x47, 0xfa, 0x42, 0x87, 0xec, 0xbe, 0x5f, 0x45,
-       0xef, 0x51, 0xb9, 0x0f, 0xd9, 0x8e, 0x0d, 0x89, 0xf3, 0x8c, 0xbb, 0xd2,
-       0x96, 0xac, 0x05, 0xe8, 0xb9, 0x8d, 0xcc, 0x9f, 0x55, 0x47, 0x10, 0xb7,
-       0x30, 0xde, 0x3d, 0x97, 0xe8, 0x86, 0x6b, 0xb1, 0xde, 0xf5, 0x2d, 0x72,
-       0x96, 0xaa, 0x88, 0x1e, 0x7c, 0x4b, 0xe9, 0x20, 0x37, 0x74, 0x63, 0x32,
-       0x21, 0x7e, 0x21, 0xef, 0xac, 0xf9, 0x34, 0x8e, 0x91, 0x23, 0x3f, 0x9b,
-       0xd0, 0x70, 0xbe, 0xd9, 0x83, 0x0c, 0x39, 0xf3, 0x77, 0x12, 0x6e, 0x7c,
-       0x95, 0x9c, 0xf9, 0x91, 0x11, 0x59, 0xb3, 0x6c, 0x45, 0x4b, 0x42, 0xd6,
-       0xab, 0xc9, 0x03, 0xc7, 0xbc, 0xb4, 0x6d, 0xcb, 0xea, 0x35, 0x67, 0xd3,
-       0x9f, 0xce, 0xb2, 0x4f, 0x59, 0xe7, 0x8c, 0x62, 0x35, 0x79, 0xd0, 0x23,
-       0x63, 0x3e, 0x3c, 0xcf, 0x5c, 0x21, 0xc9, 0x7a, 0xcf, 0x25, 0xfc, 0x18,
-       0xc8, 0xf8, 0xf0, 0x14, 0x73, 0x86, 0x9d, 0x3c, 0x97, 0xf7, 0x1f, 0x95,
-       0x18, 0x41, 0xf2, 0xf2, 0x93, 0xa8, 0x18, 0xb8, 0x02, 0x9b, 0xd7, 0x3e,
-       0x0a, 0x75, 0xe0, 0x04, 0x8f, 0x6b, 0xc9, 0x21, 0xae, 0x45, 0x6a, 0x24,
-       0x82, 0xd4, 0xd8, 0x8b, 0xe8, 0x1f, 0x91, 0x71, 0xc9, 0x7b, 0x6c, 0x64,
-       0x0f, 0x12, 0xb9, 0xe7, 0x80, 0x17, 0xe9, 0x31, 0xe9, 0xa7, 0x96, 0x7d,
-       0xff, 0xb9, 0xed, 0xff, 0xab, 0xb5, 0xf9, 0x13, 0xd2, 0xf6, 0xa3, 0x7f,
-       0xa4, 0x7d, 0xd1, 0x95, 0xac, 0xbd, 0xb4, 0x17, 0xd6, 0x5e, 0xdc, 0x6c,
-       0xd3, 0x03, 0x47, 0x24, 0xb7, 0xb6, 0x12, 0x7a, 0x74, 0xb7, 0x62, 0xb4,
-       0x55, 0x28, 0xe7, 0xb1, 0x3b, 0x2b, 0xef, 0x45, 0x28, 0xc5, 0x53, 0xc4,
-       0x6b, 0x57, 0x48, 0xd7, 0xbe, 0x45, 0xdb, 0x59, 0x4e, 0x8c, 0x7b, 0xd5,
-       0xbc, 0x1a, 0x71, 0x4d, 0xf4, 0x57, 0x8a, 0x17, 0x06, 0xdd, 0xc4, 0xa6,
-       0x08, 0xf2, 0xcf, 0xc8, 0x79, 0xf0, 0x83, 0x84, 0x97, 0xf3, 0xd5, 0x98,
-       0x33, 0x1c, 0x0d, 0xf2, 0x0c, 0x9e, 0x7d, 0xed, 0x54, 0x62, 0x23, 0x0e,
-       0x51, 0xde, 0xe7, 0x12, 0x17, 0x39, 0x3f, 0x9d, 0xd4, 0xbf, 0xe8, 0x3b,
-       0x5e, 0xd0, 0x75, 0x1f, 0x75, 0x5d, 0x87, 0x67, 0x12, 0x5f, 0xc4, 0x23,
-       0x94, 0xff, 0xe1, 0x41, 0x23, 0x3a, 0x5f, 0x39, 0x49, 0xfc, 0x2e, 0xc5,
-       0x69, 0xb6, 0x7d, 0x07, 0x33, 0xf7, 0x29, 0xe9, 0x2b, 0x25, 0xeb, 0xa5,
-       0x0a, 0xde, 0x5a, 0x72, 0x12, 0x13, 0xfc, 0xef, 0x07, 0x83, 0xf2, 0x1c,
-       0x5a, 0x35, 0xfb, 0x10, 0xfd, 0xf8, 0xed, 0xdc, 0xa4, 0x87, 0xbc, 0x6b,
-       0x55, 0xf3, 0x49, 0xec, 0x4a, 0xcb, 0xb5, 0xf5, 0xe8, 0x1f, 0xbc, 0x00,
-       0x47, 0xa8, 0x04, 0x77, 0x78, 0x9b, 0x69, 0xeb, 0x39, 0xec, 0xce, 0x34,
-       0xcf, 0xc8, 0x73, 0xe2, 0xaa, 0x19, 0xf2, 0x4c, 0xd6, 0xa9, 0x44, 0x29,
-       0xbe, 0xc3, 0x3a, 0x9b, 0x89, 0x15, 0xf9, 0x7b, 0x38, 0xe4, 0xfe, 0xc4,
-       0xfa, 0x0c, 0xfb, 0x48, 0xd8, 0x6d, 0xcc, 0x50, 0x0e, 0xd0, 0x0f, 0xab,
-       0x17, 0xcf, 0x50, 0x52, 0x69, 0xc9, 0x35, 0x5e, 0xc4, 0x13, 0x0f, 0xe4,
-       0x75, 0x78, 0xc8, 0xdc, 0x88, 0x74, 0xa6, 0xba, 0xd0, 0xde, 0x4b, 0x85,
-       0x7b, 0x6d, 0xf2, 0x3c, 0x88, 0x51, 0x78, 0x17, 0xc0, 0xe5, 0x7b, 0x6c,
-       0xdf, 0xc8, 0x56, 0x91, 0xcf, 0x97, 0xd3, 0xd6, 0x4a, 0x62, 0x5e, 0xc6,
-       0xf9, 0x8d, 0x8b, 0x34, 0xec, 0x5d, 0xfa, 0xd9, 0x5a, 0x54, 0x69, 0xce,
-       0x5f, 0x35, 0xbf, 0xc8, 0x7e, 0xaa, 0x62, 0x35, 0x91, 0x47, 0xec, 0x7d,
-       0x59, 0xa1, 0xa5, 0x33, 0x19, 0xe7, 0xe4, 0x5e, 0x75, 0x0c, 0xaf, 0x27,
-       0x6a, 0x63, 0xb5, 0x91, 0x6a, 0xe6, 0xf6, 0x17, 0x30, 0x30, 0xea, 0x44,
-       0x15, 0x79, 0x7c, 0x65, 0xb2, 0x16, 0x6e, 0x7b, 0x5d, 0xf1, 0x0a, 0xf2,
-       0xa7, 0xb9, 0xe4, 0x48, 0x75, 0xa8, 0x26, 0x4f, 0xf2, 0x84, 0x2c, 0xeb,
-       0xa7, 0x8b, 0x2d, 0xeb, 0x4a, 0x1e, 0x65, 0x3c, 0xce, 0x85, 0xc4, 0x4f,
-       0xa3, 0x68, 0xb4, 0xfd, 0xd5, 0x40, 0x93, 0xfd, 0xdd, 0x4a, 0x5f, 0xef,
-       0x0a, 0x2d, 0x9c, 0xf8, 0x62, 0xa8, 0x61, 0x62, 0x26, 0xd4, 0xe1, 0x59,
-       0x70, 0xb0, 0xad, 0x8f, 0x2f, 0xb5, 0xd0, 0x6a, 0xca, 0xfb, 0x04, 0x84,
-       0xa7, 0x6d, 0x24, 0x4f, 0xeb, 0x0f, 0x19, 0x13, 0x8f, 0xe2, 0x7a, 0xc6,
-       0x5d, 0xf7, 0xb0, 0x8f, 0xfd, 0x48, 0xce, 0xef, 0xcc, 0xcd, 0x23, 0xff,
-       0xbf, 0x7a, 0xb1, 0x70, 0xb6, 0x0e, 0x79, 0x97, 0x08, 0x3a, 0x26, 0x4e,
-       0xe2, 0x26, 0x96, 0xf1, 0x0c, 0xbf, 0x84, 0x64, 0xf6, 0x47, 0x18, 0xc8,
-       0x4a, 0x3c, 0xc9, 0xe1, 0x06, 0xb6, 0x5d, 0x3e, 0xdc, 0x46, 0xae, 0xba,
-       0x06, 0x9b, 0x27, 0x2c, 0xac, 0x0a, 0x4d, 0x62, 0xd5, 0x04, 0x39, 0xf0,
-       0x44, 0xd1, 0x5f, 0x85, 0xbf, 0xad, 0x81, 0x3c, 0x7f, 0xe6, 0x26, 0xb6,
-       0xc8, 0xda, 0x9e, 0x4a, 0x3f, 0x6c, 0xa1, 0x7d, 0x3f, 0x9e, 0x8a, 0x63,
-       0xc3, 0x84, 0x60, 0xee, 0x7d, 0xe8, 0x9d, 0x90, 0xb5, 0xe2, 0xaf, 0x84,
-       0xe6, 0x4f, 0xfc, 0x08, 0x2d, 0x13, 0xe9, 0xd0, 0x82, 0x89, 0x31, 0xca,
-       0x9d, 0xa0, 0x6c, 0x83, 0xa1, 0xfa, 0x89, 0x91, 0x50, 0x70, 0xe2, 0x40,
-       0x28, 0x30, 0xd1, 0x8e, 0x9d, 0x13, 0xeb, 0xb0, 0x63, 0x62, 0x1b, 0xb6,
-       0x4f, 0x08, 0x6e, 0x4f, 0x61, 0xe5, 0xc4, 0xab, 0x58, 0x31, 0xf1, 0x2c,
-       0x5a, 0x27, 0xce, 0x62, 0xf9, 0xc4, 0x8b, 0x68, 0x9b, 0x78, 0x89, 0x63,
-       0x91, 0xb5, 0x67, 0x59, 0x77, 0x2e, 0xde, 0xe7, 0x9b, 0xbe, 0x97, 0x5a,
-       0xd6, 0x56, 0xe4, 0x59, 0x30, 0x99, 0x43, 0x17, 0xd6, 0x6a, 0xe7, 0xd0,
-       0xb7, 0x5f, 0xde, 0xb5, 0xd6, 0xa8, 0xf5, 0x42, 0xee, 0xe1, 0xbe, 0x28,
-       0xcf, 0x06, 0xd0, 0xc6, 0xa6, 0xef, 0x1b, 0xd6, 0xb5, 0xa9, 0x4b, 0xf7,
-       0x3c, 0xe5, 0x99, 0x2c, 0x89, 0x3d, 0xe7, 0xd1, 0x93, 0xfd, 0x8d, 0x15,
-       0xd5, 0xa4, 0xac, 0x3c, 0x2b, 0x26, 0xf6, 0x70, 0x0e, 0x0f, 0xed, 0x3f,
-       0x4f, 0x0e, 0x35, 0x69, 0xaf, 0x1d, 0xbd, 0xbd, 0x40, 0xde, 0xd3, 0xe3,
-       0x27, 0x36, 0x9d, 0x43, 0xea, 0x28, 0x30, 0x71, 0x50, 0xfc, 0x70, 0x23,
-       0xfd, 0x70, 0x52, 0x7c, 0x32, 0x4e, 0x4c, 0xbe, 0xcd, 0x83, 0xfb, 0xc8,
-       0x93, 0x4a, 0x90, 0x1b, 0x2b, 0xc7, 0xd3, 0x23, 0x71, 0x6b, 0x9e, 0x21,
-       0xef, 0x2e, 0x31, 0x72, 0x57, 0x32, 0xee, 0xbf, 0xc4, 0x6b, 0x93, 0x83,
-       0xf0, 0xfb, 0x8c, 0x80, 0x6f, 0x1e, 0xcf, 0x4f, 0xa7, 0x27, 0xc9, 0x71,
-       0xba, 0x30, 0xc5, 0x6f, 0xc9, 0x89, 0x81, 0x5e, 0xa4, 0xd3, 0xa2, 0xcf,
-       0x76, 0xea, 0x53, 0x70, 0x51, 0xef, 0x6a, 0x25, 0x1e, 0x5a, 0x8a, 0xe0,
-       0xa1, 0x8a, 0x8a, 0x7d, 0xc2, 0x25, 0xec, 0x77, 0x9f, 0x98, 0x03, 0xca,
-       0x8b, 0xf8, 0x0e, 0x73, 0x98, 0xf2, 0x7d, 0xe4, 0x43, 0xc4, 0xca, 0xaa,
-       0x88, 0x62, 0xac, 0x0a, 0x9c, 0xc3, 0xd3, 0x63, 0x4e, 0xb8, 0x93, 0x4e,
-       0x4c, 0x12, 0x27, 0x1d, 0x49, 0xd9, 0x3f, 0xa0, 0x51, 0x16, 0x59, 0xa7,
-       0x3a, 0x8b, 0x9c, 0x7d, 0x7f, 0x4f, 0xee, 0xcf, 0x7c, 0xd7, 0xee, 0xc7,
-       0x49, 0xd9, 0xfb, 0x88, 0xa5, 0x3d, 0xa9, 0xef, 0xa1, 0x35, 0xed, 0xb1,
-       0x9f, 0xf3, 0xdb, 0x9d, 0x7a, 0x15, 0xa9, 0xfd, 0x75, 0xb8, 0xdd, 0x7e,
-       0xd6, 0xcf, 0x84, 0x46, 0xbd, 0xdd, 0x32, 0x6e, 0x22, 0x7a, 0x78, 0x1d,
-       0xd6, 0x1e, 0xfe, 0x24, 0x8f, 0x59, 0xb8, 0xe9, 0x70, 0x27, 0x6e, 0x1c,
-       0x8f, 0xa3, 0x63, 0xbc, 0x8f, 0xc7, 0x7a, 0x7c, 0x6c, 0xa8, 0x1a, 0x99,
-       0x90, 0xc6, 0x1c, 0x7f, 0x3d, 0x73, 0x7c, 0xe1, 0x67, 0x1b, 0xf0, 0x34,
-       0x71, 0x27, 0x18, 0xda, 0x80, 0x49, 0xdb, 0x17, 0x65, 0x8f, 0xe5, 0x06,
-       0x6c, 0x67, 0xfe, 0x3e, 0x8a, 0x0d, 0xe8, 0xe1, 0xb5, 0x21, 0x7b, 0x0e,
-       0x4e, 0x62, 0x19, 0xf3, 0xb3, 0x77, 0xae, 0x39, 0x89, 0x0f, 0x1f, 0x92,
-       0xbe, 0x2f, 0x20, 0xb5, 0x77, 0x23, 0xdb, 0xcc, 0xa1, 0x7d, 0xfc, 0x9f,
-       0x71, 0xe3, 0x10, 0xee, 0xac, 0x46, 0x35, 0x9e, 0x0d, 0x05, 0x3a, 0x06,
-       0x94, 0x7f, 0xb6, 0xdb, 0xde, 0x9e, 0xfa, 0x11, 0x76, 0xa5, 0xce, 0xe3,
-       0xe1, 0xcc, 0x4b, 0xe8, 0x4f, 0x4d, 0x9f, 0x53, 0x99, 0xcb, 0x37, 0x19,
-       0x0f, 0xbe, 0x8f, 0x23, 0x63, 0x53, 0xc4, 0xde, 0x57, 0x78, 0xbc, 0xff,
-       0x7e, 0x7a, 0xfe, 0x39, 0xdc, 0xbc, 0xdd, 0x48, 0x3e, 0x55, 0xe4, 0x6f,
-       0x71, 0xab, 0xda, 0xc8, 0xed, 0x9a, 0x03, 0x7d, 0x5b, 0x58, 0x95, 0xfb,
-       0x81, 0x46, 0xec, 0x05, 0x45, 0x6f, 0xff, 0x96, 0xe2, 0x61, 0xae, 0x21,
-       0xcf, 0x45, 0xea, 0xd1, 0x1b, 0xa8, 0xef, 0xb2, 0x07, 0xbe, 0x0f, 0xe7,
-       0x03, 0x4e, 0x94, 0x26, 0x65, 0x2d, 0x47, 0xde, 0x2b, 0x23, 0xef, 0x30,
-       0xc9, 0xe9, 0xa5, 0xf2, 0xae, 0x89, 0xe4, 0x24, 0x63, 0x7f, 0x6e, 0x61,
-       0x09, 0xe4, 0x39, 0xec, 0xeb, 0xb0, 0x71, 0x30, 0x8a, 0x1e, 0x53, 0x9e,
-       0x31, 0xca, 0x8f, 0x7f, 0x5e, 0xf3, 0xf7, 0xd1, 0xcb, 0xf8, 0xb3, 0x9e,
-       0x98, 0x78, 0xbb, 0x7d, 0x6f, 0xf6, 0xfb, 0xe8, 0x1b, 0xf9, 0x47, 0xb7,
-       0xf0, 0x9d, 0x3e, 0x53, 0x9e, 0xe3, 0xd6, 0xcd, 0xf7, 0xbe, 0xc3, 0x66,
-       0xbe, 0xec, 0x69, 0xa3, 0x4d, 0xe4, 0x16, 0xba, 0xb0, 0xbd, 0x36, 0xff,
-       0x1e, 0x95, 0x0f, 0x7a, 0xe7, 0xd0, 0x5f, 0xda, 0xef, 0x1c, 0x92, 0xfb,
-       0xfa, 0xf2, 0xbe, 0xaa, 0x27, 0x12, 0xf2, 0x1e, 0x09, 0x75, 0x99, 0x0b,
-       0xaa, 0xd7, 0x45, 0x5e, 0xf8, 0xaa, 0x39, 0x13, 0xbd, 0x5e, 0x0b, 0xd7,
-       0x53, 0x96, 0x63, 0x4d, 0x1f, 0x63, 0xe6, 0x12, 0xef, 0x70, 0xd9, 0xef,
-       0x26, 0x39, 0xff, 0xa9, 0x7f, 0xff, 0x6e, 0x92, 0x37, 0x89, 0x93, 0x0a,
-       0x2a, 0x8d, 0x5b, 0xf0, 0x9c, 0x1d, 0x13, 0x14, 0x54, 0x34, 0xc8, 0xba,
-       0xa8, 0x1f, 0xcf, 0x18, 0x8d, 0xfe, 0x1a, 0xb9, 0xdf, 0xa5, 0x9c, 0xb3,
-       0xe2, 0xde, 0x3a, 0xc6, 0x97, 0xff, 0x68, 0x2f, 0xfe, 0xf3, 0xd8, 0xb9,
-       0x37, 0x4c, 0xce, 0xe8, 0x95, 0x67, 0x23, 0x67, 0x14, 0x9f, 0xc5, 0xdc,
-       0x91, 0x92, 0x3d, 0xec, 0x0c, 0x8a, 0xe5, 0x6f, 0xd2, 0xcf, 0xde, 0x94,
-       0x3d, 0x58, 0xe4, 0x3c, 0x7f, 0x85, 0x60, 0xcd, 0x8c, 0xfc, 0x73, 0x52,
-       0xf6, 0x5e, 0x5f, 0x59, 0x0f, 0xd8, 0x5e, 0x78, 0xef, 0xa2, 0x94, 0x95,
-       0x7a, 0x6f, 0xda, 0x6b, 0xc2, 0x2e, 0xe3, 0x37, 0xd6, 0x6b, 0xde, 0x5a,
-       0x96, 0xfd, 0x45, 0xe1, 0xff, 0xf3, 0xe2, 0x33, 0x66, 0x14, 0x72, 0x4d,
-       0xea, 0x88, 0xae, 0x2e, 0xd7, 0xe9, 0x4d, 0x39, 0x88, 0x7b, 0x67, 0xad,
-       0x6e, 0xaf, 0x8c, 0x61, 0xec, 0x7d, 0x75, 0x54, 0xfb, 0x1d, 0x84, 0x79,
-       0xfd, 0x8a, 0x3c, 0xff, 0xbe, 0x4f, 0x59, 0x3f, 0x2e, 0x31, 0x2a, 0x70,
-       0xae, 0x26, 0xbf, 0xae, 0x73, 0x59, 0xc6, 0x47, 0xbc, 0xb2, 0xef, 0xaf,
-       0xd4, 0x3e, 0xb7, 0xfb, 0x35, 0x2f, 0xd7, 0xfb, 0x46, 0x61, 0xbc, 0xb5,
-       0xf6, 0xb3, 0x4a, 0x0f, 0xda, 0xbc, 0xc6, 0x31, 0x6d, 0xdc, 0xcb, 0xbc,
-       0xef, 0xed, 0x67, 0xa4, 0xd0, 0xaf, 0x6a, 0x3f, 0xef, 0x75, 0xb9, 0x0f,
-       0x91, 0xeb, 0xa9, 0x42, 0x1d, 0x3d, 0x1c, 0xb5, 0xfb, 0x57, 0x99, 0xbf,
-       0x15, 0xfb, 0xa4, 0x3f, 0x2d, 0x2e, 0xb6, 0x31, 0x29, 0xf6, 0xd5, 0x5d,
-       0xca, 0xd8, 0x74, 0xae, 0xf9, 0x3e, 0x6c, 0x4f, 0x88, 0x9e, 0xe5, 0x1d,
-       0x95, 0xc4, 0x60, 0x9b, 0x6b, 0xb9, 0xe8, 0x6f, 0x4b, 0x91, 0xd6, 0xe2,
-       0x38, 0xd4, 0x24, 0xcf, 0xe6, 0xb9, 0x68, 0xd3, 0x71, 0x94, 0x91, 0xdb,
-       0x46, 0x79, 0x4d, 0xf6, 0xb4, 0x1c, 0x31, 0xf5, 0xe8, 0x13, 0xf8, 0x12,
-       0x1c, 0x57, 0xd9, 0xeb, 0x5f, 0x6d, 0x69, 0xc8, 0x75, 0x93, 0xb9, 0xc9,
-       0xf4, 0x15, 0x83, 0x32, 0xda, 0x8e, 0xbd, 0x17, 0xdb, 0x94, 0x67, 0xf7,
-       0x06, 0x12, 0xf2, 0x0c, 0x59, 0x63, 0x8c, 0xfc, 0x10, 0xcf, 0x65, 0x64,
-       0xff, 0xc3, 0x6f, 0xad, 0xf8, 0x4c, 0xd9, 0x67, 0x39, 0xbd, 0x4e, 0x09,
-       0x71, 0x29, 0x10, 0xae, 0x52, 0x8a, 0xcf, 0x91, 0x5d, 0xfe, 0xdc, 0x44,
-       0x9b, 0x39, 0x6f, 0x3f, 0xfb, 0x27, 0x67, 0x11, 0xb4, 0xa4, 0xe4, 0x5d,
-       0x8c, 0xfa, 0xe4, 0x2a, 0x34, 0xe6, 0xea, 0x1d, 0xce, 0x02, 0xff, 0x08,
-       0x63, 0x0d, 0xed, 0x66, 0x47, 0x20, 0x6c, 0x3f, 0xe3, 0x26, 0xef, 0xdc,
-       0x78, 0x18, 0x7a, 0xe7, 0x1b, 0x2c, 0xff, 0xb1, 0xec, 0xf3, 0x56, 0xda,
-       0x2b, 0x63, 0x2a, 0xfa, 0xb8, 0xbc, 0xdb, 0x87, 0x7a, 0x8c, 0x88, 0x7f,
-       0x78, 0x50, 0x13, 0x09, 0xd3, 0x0f, 0x25, 0x7e, 0xcb, 0xf3, 0x71, 0xfa,
-       0x01, 0xc9, 0xab, 0x5a, 0xb2, 0xf2, 0xfc, 0xb7, 0xec, 0x9b, 0xd6, 0xfd,
-       0x6b, 0x1d, 0xc1, 0xc2, 0xfe, 0xe5, 0x62, 0xbc, 0xb7, 0xbc, 0x85, 0xbd,
-       0xd5, 0xee, 0x79, 0x8c, 0x6f, 0x96, 0xbd, 0x6f, 0x60, 0xa3, 0x8d, 0x0d,
-       0x9a, 0xa1, 0x1f, 0xfb, 0xa5, 0xa3, 0x1b, 0x8f, 0x2d, 0x32, 0xba, 0x8e,
-       0xab, 0xb9, 0xb4, 0x8f, 0x38, 0x71, 0xad, 0x23, 0x3a, 0xc4, 0x6f, 0xff,
-       0x77, 0x89, 0xcd, 0x37, 0xd9, 0x75, 0xf5, 0xe0, 0x3a, 0xb5, 0xf8, 0x6c,
-       0xb5, 0x3c, 0x73, 0xa1, 0x77, 0x7c, 0x43, 0xe9, 0xc6, 0xd6, 0x90, 0xd1,
-       0xbe, 0x4d, 0xd1, 0xdb, 0xbe, 0xac, 0xe8, 0xfe, 0x90, 0x22, 0xe5, 0xec,
-       0x77, 0xe8, 0x5c, 0x8a, 0x9d, 0x2e, 0xf6, 0x71, 0x38, 0xa1, 0x87, 0x67,
-       0xb0, 0xec, 0x39, 0xd3, 0xf0, 0x5d, 0x60, 0x9b, 0x3f, 0xe4, 0x31, 0x84,
-       0x20, 0x96, 0xdb, 0xed, 0x46, 0x17, 0xba, 0xec, 0xf7, 0xa4, 0x76, 0x30,
-       0x26, 0xc8, 0xfb, 0xb0, 0x62, 0xd0, 0x92, 0x75, 0x34, 0x31, 0xbd, 0xff,
-       0x66, 0x48, 0x4e, 0xdd, 0xc3, 0x80, 0xed, 0x81, 0x37, 0xd2, 0x8d, 0x86,
-       0x45, 0x86, 0x6f, 0x89, 0x6a, 0xd7, 0x0f, 0xca, 0xfb, 0x81, 0x96, 0x73,
-       0x9c, 0x23, 0x90, 0x36, 0x72, 0x96, 0xd6, 0x50, 0x6d, 0xd7, 0x59, 0xa4,
-       0x7e, 0x14, 0xae, 0x0f, 0xfd, 0xca, 0x4a, 0x6b, 0xd0, 0x6a, 0x0d, 0xa9,
-       0x13, 0x1f, 0xd2, 0xf0, 0x1f, 0xd5, 0x13, 0x5c, 0xf9, 0xa5, 0x85, 0x59,
-       0x52, 0x4f, 0xf6, 0xac, 0x7d, 0x1a, 0x77, 0x0d, 0xc8, 0x7b, 0x22, 0xc4,
-       0x1f, 0xf5, 0xe8, 0x17, 0xc8, 0x35, 0xcb, 0xed, 0xf7, 0x6f, 0x49, 0x2c,
-       0x59, 0x4f, 0x3c, 0xeb, 0x86, 0x16, 0xd2, 0xfb, 0xaf, 0x50, 0xe5, 0x1d,
-       0x43, 0x8f, 0xc9, 0xbe, 0x9d, 0x03, 0x0b, 0xd4, 0xfc, 0xfe, 0x9e, 0xd8,
-       0x1f, 0x7d, 0x5f, 0x11, 0xfb, 0x2a, 0x97, 0xf7, 0x15, 0xd5, 0xd9, 0xcf,
-       0xa7, 0xac, 0x4f, 0x38, 0x0a, 0xfb, 0x15, 0x2f, 0xbf, 0xc7, 0x73, 0x23,
-       0x79, 0xfd, 0x26, 0x79, 0x67, 0x1f, 0xc7, 0xba, 0x39, 0x21, 0x4b, 0x5a,
-       0xff, 0x0f, 0xdd, 0x0f, 0x6b, 0xf2, 0xd0, 0x56, 0x00, 0x00, 0x00 };
-
-static const u32 bnx2_CP_b06FwData[(0x84/4) + 1] = {
-       0x00000000, 0x0000001b, 0x0000000f, 0x0000000a, 0x00000008, 0x00000006,
-       0x00000005, 0x00000005, 0x00000004, 0x00000004, 0x00000003, 0x00000003,
-       0x00000003, 0x00000003, 0x00000003, 0x00000002, 0x00000002, 0x00000002,
-       0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000002,
-       0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000002,
-       0x00000001, 0x00000001, 0x00000001, 0x00000000 };
-static const u32 bnx2_CP_b06FwRodata[(0x134/4) + 1] = {
-       0x08000f30, 0x08000d88, 0x08000fc4, 0x0800106c, 0x08000f58, 0x08000f98,
-       0x080011a4, 0x08000da4, 0x080011c8, 0x08000df4, 0x08001498, 0x08001440,
-       0x08000da4, 0x08000da4, 0x08000da4, 0x08001254, 0x08001254, 0x08000da4,
-       0x08000da4, 0x080016e0, 0x08000da4, 0x08000da4, 0x08000da4, 0x08000da4,
-       0x080013d4, 0x08000da4, 0x08000da4, 0x08000da4, 0x08000da4, 0x08000da4,
-       0x08000da4, 0x08000da4, 0x08000da4, 0x08000da4, 0x08000da4, 0x08000da4,
-       0x08000da4, 0x08000da4, 0x08000da4, 0x08000fb8, 0x08000da4, 0x08000da4,
-       0x08001690, 0x08000da4, 0x08000da4, 0x08000da4, 0x08000da4, 0x08000da4,
-       0x08000da4, 0x08000da4, 0x08000da4, 0x08000da4, 0x08000da4, 0x08000da4,
-       0x08000da4, 0x08000da4, 0x08000da4, 0x08000da4, 0x08000da4, 0x08000da4,
-       0x080015bc, 0x08000da4, 0x08000da4, 0x08001348, 0x080012b8, 0x08002e50,
-       0x08002e58, 0x08002e20, 0x08002e2c, 0x08002e38, 0x08002e44, 0x0800532c,
-       0x080052ec, 0x080052b8, 0x0800528c, 0x08005268, 0x08005224, 0x00000000
-};
-
-static struct fw_info bnx2_cp_fw_06 = {
-       /* Firmware version: 4.6.16 */
-       .ver_major                      = 0x4,
-       .ver_minor                      = 0x6,
-       .ver_fix                        = 0x10,
-
-       .start_addr                     = 0x08000080,
-
-       .text_addr                      = 0x08000000,
-       .text_len                       = 0x56cc,
-       .text_index                     = 0x0,
-       .gz_text                        = bnx2_CP_b06FwText,
-       .gz_text_len                    = sizeof(bnx2_CP_b06FwText),
-
-       .data_addr                      = 0x08005820,
-       .data_len                       = 0x84,
-       .data_index                     = 0x0,
-       .data                           = bnx2_CP_b06FwData,
-
-       .sbss_addr                      = 0x080058a4,
-       .sbss_len                       = 0xf1,
-       .sbss_index                     = 0x0,
-
-       .bss_addr                       = 0x08005998,
-       .bss_len                        = 0x5d8,
-       .bss_index                      = 0x0,
-
-       .rodata_addr                    = 0x080056cc,
-       .rodata_len                     = 0x134,
-       .rodata_index                   = 0x0,
-       .rodata                         = bnx2_CP_b06FwRodata,
-};
-
 /* Initialized Values the Command Processor. */
 static const struct cpu_reg cpu_reg_cp = {
        .mode = BNX2_CP_CPU_MODE,
@@ -2184,771 +39,6 @@ static const struct cpu_reg cpu_reg_cp = {
        .mips_view_base = 0x8000000,
 };
 
-static u8 bnx2_RXP_b06FwText[] = {
-       0xec, 0x5b, 0x5d, 0x6c, 0x1c, 0xd7, 0x75, 0x3e, 0x33, 0x3b, 0x24, 0x57,
-       0x14, 0x45, 0x8e, 0xa8, 0x15, 0xb5, 0xb2, 0x99, 0x64, 0x97, 0x1c, 0x89,
-       0x1b, 0x93, 0x50, 0x86, 0xec, 0x5a, 0x66, 0x92, 0x45, 0xbc, 0x59, 0x52,
-       0x16, 0x53, 0x08, 0xf0, 0xda, 0x56, 0x5c, 0xa3, 0x31, 0x90, 0xc5, 0x92,
-       0x76, 0xd2, 0x37, 0xc9, 0xa9, 0x5d, 0x21, 0xb1, 0xab, 0xf5, 0x92, 0x91,
-       0x15, 0x75, 0xc5, 0x61, 0x24, 0x26, 0x72, 0x1b, 0xb7, 0xa0, 0xf9, 0x23,
-       0xaa, 0xc1, 0x4a, 0xe3, 0x9f, 0xd8, 0xf5, 0x43, 0x64, 0x31, 0xb2, 0xad,
-       0xfa, 0xa5, 0x80, 0xd3, 0x1f, 0xc0, 0x28, 0x8c, 0x56, 0x90, 0x6b, 0xd9,
-       0x68, 0x81, 0x42, 0x6d, 0x51, 0xd4, 0x6d, 0x64, 0x4d, 0xbf, 0xef, 0xce,
-       0x0c, 0xb9, 0x22, 0x94, 0xc6, 0x2f, 0x7d, 0x9b, 0x0b, 0x2c, 0xee, 0xdc,
-       0x3b, 0xe7, 0x9e, 0x7b, 0xce, 0xb9, 0xe7, 0xf7, 0x0e, 0xf9, 0x44, 0x9b,
-       0xb4, 0x4a, 0xd0, 0x36, 0xe1, 0x97, 0x3d, 0x70, 0xe8, 0xb1, 0xc1, 0x5d,
-       0xbb, 0x77, 0xe1, 0x71, 0x77, 0xcc, 0x6c, 0x36, 0x38, 0xaf, 0x49, 0xd4,
-       0xa2, 0x16, 0xb5, 0xa8, 0x45, 0x2d, 0x6a, 0x51, 0x8b, 0x5a, 0xd4, 0xa2,
-       0x16, 0xb5, 0xa8, 0x45, 0x2d, 0x6a, 0x51, 0x8b, 0x5a, 0xd4, 0xa2, 0x16,
-       0xb5, 0xa8, 0x45, 0x2d, 0x6a, 0x51, 0x8b, 0x5a, 0xd4, 0xa2, 0x16, 0xb5,
-       0xa8, 0x45, 0x2d, 0x6a, 0x51, 0x8b, 0x5a, 0xd4, 0xa2, 0x16, 0xb5, 0xa8,
-       0x45, 0x2d, 0x6a, 0x51, 0x8b, 0x5a, 0xd4, 0xa2, 0x16, 0xb5, 0xa8, 0x45,
-       0x2d, 0x6a, 0x51, 0x8b, 0x5a, 0xd4, 0xfe, 0x3f, 0x5a, 0x4c, 0xc4, 0x64,
-       0xbf, 0x29, 0xf8, 0x49, 0x5c, 0xcf, 0xa5, 0x0e, 0x16, 0x2c, 0x89, 0xc7,
-       0x72, 0x6f, 0x3f, 0x3e, 0x6e, 0x89, 0xe4, 0xeb, 0xfd, 0xa9, 0x11, 0xf9,
-       0xc4, 0xab, 0x24, 0x0c, 0xe1, 0xfc, 0x67, 0x72, 0xd7, 0x0f, 0x9f, 0xbf,
-       0x2b, 0x7d, 0x6d, 0x2e, 0x26, 0x71, 0x33, 0xf7, 0xee, 0xa0, 0xb9, 0x53,
-       0xe2, 0xdd, 0x58, 0xf3, 0x5c, 0xdf, 0xc4, 0x66, 0x69, 0x0f, 0x71, 0x79,
-       0xde, 0x92, 0xed, 0xc9, 0x25, 0xbb, 0xa2, 0x8d, 0xf4, 0xbd, 0xa6, 0x15,
-       0x9c, 0x1b, 0x5e, 0xde, 0xd0, 0x45, 0x07, 0xbe, 0x89, 0x7a, 0x5c, 0x1e,
-       0x59, 0x6c, 0x95, 0x47, 0xe7, 0x36, 0x4a, 0x79, 0x4e, 0x4c, 0x3d, 0x97,
-       0x94, 0x6f, 0x61, 0xee, 0x72, 0x0c, 0x70, 0xae, 0x94, 0x62, 0xb9, 0x8f,
-       0xef, 0x2d, 0xd7, 0x08, 0x2f, 0xba, 0x9e, 0x5b, 0xb9, 0x77, 0xa2, 0xfe,
-       0xe6, 0xbd, 0xe5, 0x3a, 0xe1, 0x08, 0x83, 0x77, 0xf5, 0x8f, 0xbc, 0xf3,
-       0x7d, 0x09, 0xb9, 0xe0, 0x9a, 0xf2, 0x82, 0xfb, 0x32, 0xf6, 0x4c, 0x57,
-       0x2a, 0xd2, 0x24, 0xe5, 0x93, 0x37, 0xbc, 0x98, 0x95, 0x4e, 0x61, 0x13,
-       0x73, 0x44, 0xf0, 0xde, 0xc1, 0x7b, 0x07, 0xf3, 0x0b, 0x3f, 0xdf, 0x2c,
-       0xad, 0x49, 0x39, 0xdf, 0xc7, 0x75, 0x5c, 0xc3, 0xb5, 0x8b, 0xed, 0xfe,
-       0x3a, 0xc1, 0xba, 0xa2, 0xc4, 0x2c, 0x4f, 0x0a, 0xb6, 0x21, 0x23, 0x09,
-       0xd1, 0x74, 0xab, 0x02, 0x3a, 0x7e, 0xd1, 0x26, 0xad, 0xc4, 0x55, 0xd1,
-       0xf2, 0x2e, 0xfb, 0x10, 0xdf, 0x53, 0x1d, 0x3e, 0xae, 0x67, 0x81, 0xab,
-       0x24, 0xaf, 0xbb, 0x0f, 0xcb, 0x5f, 0xb8, 0x63, 0xf2, 0x92, 0x3b, 0x01,
-       0x9c, 0x0f, 0xc9, 0xab, 0xee, 0x7e, 0x79, 0xc5, 0x2d, 0xca, 0xcf, 0xdc,
-       0x7d, 0xf2, 0xb2, 0x3b, 0x2a, 0x2f, 0xba, 0x79, 0xec, 0x97, 0xd1, 0x8a,
-       0xce, 0xdd, 0x32, 0x7e, 0x92, 0x34, 0xa6, 0xaf, 0x41, 0x36, 0xf2, 0x98,
-       0xdd, 0x67, 0xea, 0xa2, 0x61, 0xcf, 0xf4, 0x6b, 0x22, 0x8f, 0x4a, 0x3e,
-       0x31, 0x2c, 0x73, 0x6e, 0x97, 0x56, 0x38, 0xd9, 0xa9, 0x8d, 0x9c, 0x24,
-       0x2d, 0x9e, 0x8c, 0xdb, 0xe9, 0x54, 0x21, 0x96, 0x36, 0x47, 0x62, 0x92,
-       0xdf, 0x03, 0xb9, 0x55, 0x9d, 0xa4, 0xe4, 0x4d, 0xc9, 0x1f, 0xb5, 0x0c,
-       0xc8, 0x53, 0x93, 0x58, 0x8e, 0x7c, 0x6e, 0xe1, 0x1c, 0x5a, 0x9b, 0x2c,
-       0xd4, 0x6c, 0x29, 0x3b, 0xf3, 0x5a, 0x39, 0xa1, 0x51, 0x04, 0x18, 0x0f,
-       0x60, 0xfc, 0x67, 0xc1, 0xf8, 0x4b, 0x52, 0x3e, 0x25, 0xf9, 0xc9, 0x59,
-       0xcf, 0x2b, 0xd8, 0x7f, 0x1c, 0xcc, 0x0d, 0x63, 0x4e, 0x97, 0xd8, 0x8f,
-       0x38, 0x37, 0x1b, 0xcc, 0x51, 0x1e, 0x9e, 0x8c, 0xd8, 0x14, 0x23, 0xe8,
-       0x35, 0x8b, 0xe8, 0x9b, 0xd1, 0x73, 0x8f, 0x8d, 0x9b, 0xfc, 0xff, 0x03,
-       0xe2, 0xf9, 0x26, 0xf0, 0x6c, 0x83, 0x66, 0x89, 0x7f, 0x36, 0x77, 0xf4,
-       0xe0, 0x3f, 0xf4, 0xad, 0x8d, 0xf5, 0xdc, 0x7b, 0x52, 0xa8, 0x69, 0x4a,
-       0x57, 0x34, 0x3c, 0xf7, 0xd4, 0x9f, 0xea, 0xf4, 0xf5, 0xc2, 0x69, 0x97,
-       0x56, 0xc8, 0xc9, 0x21, 0xfd, 0x29, 0xd0, 0xbf, 0x49, 0xb6, 0xfc, 0x90,
-       0x3c, 0xf4, 0xa7, 0x74, 0xc9, 0xa7, 0x0d, 0xb1, 0x65, 0xd1, 0x35, 0xb4,
-       0x11, 0x27, 0x2f, 0x7a, 0xce, 0x4a, 0x96, 0x45, 0x97, 0x52, 0x22, 0x2f,
-       0xcf, 0x64, 0xd3, 0xc3, 0x15, 0x49, 0x49, 0x79, 0xc8, 0x96, 0x65, 0x17,
-       0x90, 0x89, 0x8a, 0x5c, 0xcd, 0xa6, 0xed, 0xcb, 0xb2, 0x51, 0x56, 0x4c,
-       0x5b, 0x4e, 0xbb, 0x71, 0x79, 0xeb, 0xe4, 0x3e, 0xf9, 0x96, 0xc3, 0x73,
-       0x92, 0xfe, 0x26, 0x79, 0x5a, 0x96, 0xb2, 0x4f, 0x5f, 0x5b, 0xb2, 0x8f,
-       0xb7, 0x49, 0x3b, 0x75, 0xb0, 0xd6, 0xee, 0xd3, 0xfd, 0x15, 0xf0, 0x96,
-       0x87, 0x6c, 0xdb, 0x21, 0x33, 0x43, 0xf1, 0x55, 0x78, 0xb0, 0x13, 0x3d,
-       0xd7, 0xfd, 0xfd, 0x16, 0xe8, 0x83, 0x2d, 0x5a, 0x48, 0x63, 0x93, 0x14,
-       0xba, 0xb8, 0xe6, 0x25, 0xe0, 0xc0, 0xfb, 0x55, 0xda, 0x6f, 0xd3, 0x0a,
-       0xa7, 0xda, 0xc5, 0xf8, 0xd1, 0x9d, 0x38, 0x4f, 0x43, 0x1e, 0x19, 0xf2,
-       0xbc, 0xaf, 0xdb, 0x46, 0x6a, 0x42, 0x72, 0xa4, 0x5d, 0x36, 0x1f, 0xdf,
-       0x2a, 0x73, 0x66, 0x5c, 0x12, 0xc7, 0xc3, 0xbd, 0x5a, 0x82, 0xf3, 0xf9,
-       0x32, 0xf1, 0xa7, 0x52, 0xfa, 0xa6, 0x60, 0x1c, 0xd2, 0x34, 0x8a, 0x33,
-       0xea, 0x35, 0x7b, 0xf4, 0x21, 0x2d, 0xaf, 0xfe, 0x8f, 0x6a, 0x2c, 0x18,
-       0xef, 0xd2, 0xbe, 0x6a, 0x74, 0x89, 0x61, 0xcd, 0x43, 0xae, 0x86, 0x5c,
-       0x74, 0xc2, 0xf9, 0xb8, 0xf8, 0x70, 0x94, 0xb3, 0x0c, 0xae, 0xc9, 0x59,
-       0x06, 0x7b, 0xea, 0x4f, 0x07, 0x38, 0xf3, 0x01, 0xec, 0x06, 0xc9, 0x27,
-       0xdb, 0x78, 0xa6, 0x01, 0xec, 0x75, 0xf9, 0xce, 0x50, 0xfa, 0x0c, 0xff,
-       0x57, 0x6b, 0x6d, 0x0d, 0xdf, 0xdb, 0x32, 0xef, 0xaa, 0x35, 0xc9, 0xfb,
-       0x70, 0xb6, 0xa5, 0xe4, 0x1d, 0xe6, 0x82, 0x1e, 0xd3, 0xf2, 0x09, 0xe2,
-       0x6a, 0x96, 0xc7, 0x13, 0xbd, 0x18, 0x6b, 0x52, 0xfe, 0x12, 0xf5, 0xf5,
-       0x13, 0xf1, 0xe7, 0x39, 0x97, 0x3e, 0xda, 0xab, 0x1f, 0x03, 0x7d, 0x94,
-       0x41, 0x3a, 0x29, 0x10, 0x7e, 0x79, 0xe8, 0x36, 0xf0, 0x67, 0xa2, 0x0f,
-       0xf9, 0xdf, 0x2c, 0xf9, 0x22, 0xe9, 0x57, 0x76, 0x0a, 0x39, 0x27, 0xb1,
-       0xdf, 0xdd, 0xb0, 0xc9, 0xf5, 0xf6, 0x0a, 0x1b, 0x6d, 0xa7, 0xad, 0x7e,
-       0x11, 0x3c, 0xa7, 0x33, 0x22, 0x16, 0xe4, 0x95, 0x94, 0x66, 0x6b, 0x1a,
-       0x3c, 0x51, 0x2f, 0xb7, 0x61, 0x7e, 0xc3, 0xc7, 0x79, 0xc5, 0x7a, 0x38,
-       0xf7, 0x41, 0x20, 0xcb, 0x7d, 0x32, 0xe1, 0xec, 0x57, 0x3c, 0x57, 0xf5,
-       0xcb, 0x92, 0xef, 0xee, 0x35, 0xa7, 0x40, 0x6f, 0xc1, 0x48, 0xcf, 0x55,
-       0x24, 0x29, 0x0b, 0xf0, 0x13, 0x2f, 0xc2, 0xe6, 0x5f, 0x71, 0x53, 0xb0,
-       0xaf, 0xbc, 0x3c, 0xea, 0xe4, 0x64, 0xe2, 0x14, 0x6d, 0x2c, 0x9d, 0x29,
-       0xc4, 0x72, 0x32, 0xef, 0xa4, 0x33, 0x0b, 0xd0, 0xbd, 0x05, 0xc7, 0xf3,
-       0xa6, 0xec, 0xfe, 0xd4, 0x28, 0x30, 0x5e, 0x74, 0x76, 0x24, 0x27, 0x20,
-       0xc8, 0x25, 0x2b, 0x25, 0x4b, 0x6e, 0x06, 0x3a, 0x86, 0xf7, 0xae, 0x85,
-       0x7e, 0x00, 0x3a, 0x9e, 0x85, 0x7d, 0x93, 0x16, 0x53, 0x16, 0xfb, 0x20,
-       0x3b, 0x47, 0x07, 0x2e, 0x4d, 0xf2, 0xfb, 0x6f, 0x40, 0xbe, 0x21, 0xdf,
-       0x77, 0x81, 0xb6, 0x04, 0x70, 0x92, 0xae, 0xdb, 0xa4, 0xda, 0x05, 0xf9,
-       0x0d, 0x25, 0x94, 0x5d, 0x16, 0x3a, 0xb7, 0x4a, 0xe1, 0x8e, 0x66, 0xbc,
-       0xef, 0xc2, 0x98, 0xf2, 0x6f, 0xc1, 0x1c, 0xdf, 0xff, 0x4b, 0x60, 0x5f,
-       0x4d, 0xeb, 0xc6, 0x57, 0xd1, 0xb7, 0xcb, 0x36, 0x8b, 0xbd, 0x89, 0xfe,
-       0x9f, 0xd1, 0x77, 0xa2, 0xef, 0xc5, 0x5e, 0xe7, 0x21, 0x43, 0xca, 0x0f,
-       0xcf, 0x0b, 0x5c, 0xb3, 0x3d, 0xd8, 0x97, 0x78, 0xdb, 0x81, 0x67, 0x53,
-       0xb0, 0x57, 0x3b, 0xc6, 0xad, 0xc1, 0x5e, 0x16, 0x68, 0x8e, 0x29, 0x19,
-       0x16, 0xac, 0xf8, 0xba, 0xb1, 0x86, 0x3e, 0x0e, 0xdc, 0x84, 0xd7, 0xe5,
-       0x4a, 0x57, 0x17, 0x9e, 0xb9, 0x27, 0x61, 0xf8, 0x1e, 0xbd, 0x4b, 0xfc,
-       0x1c, 0xe7, 0xe5, 0x09, 0x07, 0xfe, 0x89, 0xfa, 0xe6, 0x52, 0x8e, 0xbb,
-       0x65, 0x02, 0xbc, 0x8f, 0x3b, 0xe9, 0x99, 0xaa, 0xee, 0x79, 0x7a, 0xd6,
-       0x30, 0xab, 0x92, 0x86, 0x1d, 0x8f, 0xc9, 0x38, 0xe4, 0x77, 0xda, 0x89,
-       0xcb, 0x45, 0x65, 0x7b, 0xe4, 0xe9, 0x21, 0xc8, 0x05, 0xf1, 0xa4, 0x8b,
-       0xf6, 0x49, 0x9b, 0x82, 0xfc, 0x8a, 0xa6, 0x5c, 0xca, 0xd2, 0x96, 0xb3,
-       0xb2, 0xbc, 0x6a, 0xcb, 0x15, 0xd8, 0x32, 0xed, 0xb8, 0x02, 0x7b, 0xf6,
-       0xf5, 0xfa, 0x41, 0xd9, 0x06, 0xbd, 0x4e, 0x62, 0x3f, 0xea, 0xf5, 0xb3,
-       0xd0, 0x6b, 0xc8, 0xd4, 0x86, 0xae, 0x9b, 0xd4, 0x89, 0x6f, 0xc3, 0xa7,
-       0x81, 0xdf, 0x44, 0xf0, 0xbc, 0xfc, 0x5d, 0x29, 0x9c, 0x6a, 0x05, 0xdd,
-       0x7b, 0xdb, 0x29, 0xb3, 0xf2, 0x32, 0x7f, 0xa1, 0x2e, 0x3e, 0x05, 0xf9,
-       0xc1, 0x8f, 0x2a, 0x1d, 0x04, 0x6f, 0xd9, 0x3d, 0x80, 0x19, 0xc6, 0x39,
-       0xb7, 0x02, 0x3f, 0x69, 0xbc, 0x15, 0x1c, 0xdf, 0x83, 0xee, 0x2c, 0xf5,
-       0x15, 0xf3, 0x0b, 0xe1, 0x79, 0xb7, 0xa9, 0x3d, 0xcb, 0x43, 0xad, 0x01,
-       0x7f, 0x94, 0x03, 0xf5, 0x3e, 0x09, 0xbd, 0xd5, 0x64, 0x5c, 0xe9, 0x6e,
-       0x5e, 0xc9, 0x61, 0xde, 0xa1, 0xfe, 0x02, 0x87, 0x4d, 0x19, 0x98, 0x72,
-       0xbf, 0x82, 0x4f, 0xae, 0xd9, 0x77, 0x37, 0x69, 0xe7, 0x78, 0x83, 0xf4,
-       0x28, 0x1f, 0xd4, 0x1d, 0xe8, 0x76, 0x13, 0x6c, 0x9f, 0xef, 0x1e, 0x92,
-       0xc7, 0xdc, 0x61, 0x9c, 0x43, 0x52, 0x0e, 0xba, 0xdd, 0xf2, 0xfb, 0xee,
-       0x46, 0xb9, 0xdc, 0x09, 0xba, 0x56, 0x6d, 0xec, 0x6e, 0xf9, 0x03, 0xc6,
-       0x3c, 0xf5, 0x0c, 0x3f, 0xa9, 0xdf, 0x05, 0x1a, 0x68, 0x4f, 0xb4, 0x2b,
-       0xc2, 0xc5, 0xa4, 0xa4, 0xf6, 0xfc, 0x89, 0xef, 0xdb, 0x80, 0x77, 0xae,
-       0x93, 0xf6, 0x4b, 0xda, 0x8c, 0xc0, 0x66, 0xd3, 0x66, 0x49, 0xc8, 0x33,
-       0x69, 0xe5, 0x73, 0xa3, 0x2c, 0xd8, 0x37, 0xca, 0x20, 0xc4, 0x13, 0xda,
-       0xe5, 0xa8, 0xe4, 0x5d, 0xf6, 0xf4, 0x97, 0x88, 0x91, 0x0e, 0x62, 0xa4,
-       0x83, 0xd8, 0x08, 0x5b, 0x78, 0xc5, 0x41, 0x6c, 0x74, 0x10, 0x1b, 0xe1,
-       0xcf, 0x5e, 0x72, 0x10, 0x1f, 0xa1, 0x43, 0x2f, 0x38, 0x8c, 0xeb, 0xdf,
-       0x46, 0x4c, 0x35, 0xe4, 0x99, 0x9a, 0xc8, 0x91, 0x5a, 0x1a, 0xd4, 0xa5,
-       0x87, 0x3f, 0x90, 0xfe, 0xcc, 0x07, 0x92, 0xb6, 0x2f, 0xe2, 0xf7, 0x96,
-       0xe0, 0x9d, 0xca, 0x11, 0xf0, 0xbe, 0x1e, 0xe6, 0x13, 0x38, 0x7f, 0x8b,
-       0x39, 0x83, 0x3f, 0x0f, 0x97, 0x88, 0xb8, 0x41, 0x9b, 0x1e, 0x93, 0xf9,
-       0x59, 0xda, 0xf2, 0xed, 0x38, 0x8b, 0x4e, 0x99, 0xb2, 0xfc, 0x71, 0xc1,
-       0xbe, 0xc3, 0x1c, 0xa5, 0xee, 0x98, 0x31, 0xd0, 0x76, 0x1b, 0x7e, 0x29,
-       0xc4, 0xda, 0x3f, 0xd2, 0x0a, 0x0b, 0x71, 0xc4, 0x56, 0xc6, 0x5b, 0xc9,
-       0xfb, 0x7a, 0x74, 0xc3, 0x1b, 0x5f, 0x5d, 0xd3, 0x0f, 0xfd, 0x86, 0xdc,
-       0x13, 0x09, 0xc0, 0xcc, 0x6a, 0x23, 0xcb, 0x6f, 0xfb, 0x76, 0x92, 0xe5,
-       0xf8, 0x46, 0x60, 0x7b, 0xdc, 0x1f, 0x63, 0x97, 0x78, 0xf9, 0x4c, 0x9c,
-       0x97, 0x91, 0x1f, 0x24, 0x91, 0x17, 0x24, 0xe0, 0x7b, 0x98, 0x73, 0x74,
-       0x23, 0x3f, 0xf0, 0xbc, 0x17, 0x6d, 0xcf, 0x7b, 0x07, 0xbf, 0x7f, 0xb7,
-       0x57, 0x79, 0x40, 0xab, 0x68, 0xa3, 0x6e, 0x4a, 0x46, 0xdd, 0x9f, 0xb6,
-       0xfb, 0x72, 0x8c, 0xcb, 0xa4, 0x93, 0x90, 0x29, 0xa7, 0xa6, 0xdd, 0xb7,
-       0x3c, 0xad, 0x15, 0x97, 0x67, 0xb0, 0xaf, 0x81, 0x39, 0xa9, 0x54, 0xed,
-       0x33, 0xda, 0x88, 0x7b, 0x54, 0xbb, 0x7f, 0xb9, 0x5d, 0xd9, 0x79, 0xd5,
-       0x61, 0xce, 0x70, 0x5d, 0xe5, 0x2e, 0x05, 0x2b, 0x6d, 0xfe, 0x2e, 0x14,
-       0xaf, 0x50, 0x23, 0xdd, 0xcd, 0x01, 0xcd, 0xb0, 0xc3, 0x9c, 0x77, 0xb8,
-       0x90, 0xb5, 0x60, 0x8b, 0xa4, 0x51, 0xcd, 0x5d, 0xf0, 0xe9, 0x3e, 0xad,
-       0x15, 0x96, 0xdb, 0xb4, 0x91, 0x53, 0x8c, 0xc7, 0xd2, 0x1d, 0x13, 0xae,
-       0xdb, 0x01, 0x7b, 0xad, 0x63, 0x0f, 0xe6, 0x5b, 0x94, 0x2d, 0xe8, 0x86,
-       0x0e, 0xbf, 0x04, 0x7a, 0x5e, 0x54, 0xf9, 0x0f, 0xf9, 0x4b, 0xe1, 0xac,
-       0x42, 0xfe, 0x3c, 0xef, 0xaf, 0xed, 0x90, 0xfe, 0x74, 0x2a, 0xaf, 0x87,
-       0xfc, 0x7a, 0xde, 0xbf, 0xd9, 0xe4, 0x99, 0x3c, 0x79, 0xde, 0x0b, 0x76,
-       0x02, 0xf4, 0x7b, 0x17, 0x74, 0xab, 0x06, 0x7e, 0x18, 0xdb, 0x29, 0xf3,
-       0x69, 0xf0, 0x71, 0x14, 0x3c, 0x9e, 0x06, 0x7f, 0x33, 0xa0, 0xe5, 0x37,
-       0xed, 0xd9, 0x98, 0x4b, 0x4a, 0x8a, 0xb2, 0x2e, 0x2f, 0x32, 0xa7, 0x64,
-       0x1e, 0x69, 0x4a, 0x69, 0x31, 0x5c, 0x1f, 0xea, 0xc3, 0x01, 0xd9, 0xeb,
-       0x74, 0x42, 0x3e, 0x94, 0xe7, 0x35, 0xd0, 0x4b, 0x9f, 0x5f, 0xcd, 0xe8,
-       0x08, 0x80, 0x65, 0x1b, 0xb1, 0x5e, 0x46, 0x94, 0x2e, 0x2c, 0x5a, 0x92,
-       0x2f, 0xdb, 0x26, 0xed, 0x36, 0x55, 0xb6, 0x2b, 0xc8, 0x0c, 0x7c, 0x39,
-       0x8e, 0xd4, 0x0c, 0xbc, 0xe3, 0x58, 0x60, 0xf3, 0xa1, 0x6c, 0x0d, 0xd8,
-       0x5d, 0x28, 0xf3, 0x70, 0xee, 0xc1, 0x0e, 0xfa, 0xcc, 0x79, 0xf7, 0x0b,
-       0xc0, 0x41, 0xbc, 0xbf, 0x09, 0x47, 0x1c, 0x31, 0x84, 0x78, 0xe2, 0x72,
-       0xc6, 0x21, 0x3c, 0xf3, 0x8b, 0xb8, 0xb4, 0x22, 0x26, 0x6f, 0xc8, 0x89,
-       0xf6, 0xf9, 0x1d, 0x69, 0x73, 0x31, 0x16, 0x93, 0x63, 0x09, 0xb9, 0xc3,
-       0x60, 0x00, 0xd8, 0xec, 0x67, 0xea, 0x85, 0x19, 0x0d, 0xba, 0xdc, 0x26,
-       0x93, 0x03, 0x69, 0x73, 0x1e, 0x7b, 0xe8, 0xd8, 0xe3, 0x6b, 0x9c, 0xaf,
-       0xfd, 0x87, 0x57, 0x4a, 0xec, 0x84, 0x9d, 0x48, 0xdc, 0xc8, 0x19, 0x83,
-       0x53, 0xb5, 0x03, 0xc2, 0xfc, 0x6a, 0x72, 0x60, 0x03, 0xec, 0xbc, 0x77,
-       0x78, 0xaf, 0x30, 0x97, 0x8f, 0x0f, 0x8e, 0x5b, 0x3e, 0x5d, 0x23, 0xb0,
-       0xeb, 0x49, 0xe4, 0x79, 0x7b, 0xeb, 0xcc, 0x01, 0x8c, 0xc1, 0xde, 0xba,
-       0x21, 0x47, 0x60, 0xaf, 0xcd, 0xd0, 0x9f, 0x15, 0xa5, 0xcb, 0x26, 0x64,
-       0x4d, 0xdf, 0x3a, 0x0c, 0xdc, 0xef, 0x40, 0x6e, 0x16, 0x62, 0x67, 0x37,
-       0xf2, 0xd9, 0x0c, 0xce, 0x33, 0x85, 0xd8, 0xd7, 0xa8, 0xd7, 0x12, 0xdf,
-       0x0a, 0xb8, 0x57, 0x76, 0x32, 0x2f, 0xf3, 0xbc, 0x07, 0xac, 0xf4, 0xb3,
-       0xe4, 0x65, 0xca, 0x91, 0x7c, 0xd5, 0x56, 0xbe, 0x10, 0x3a, 0x9b, 0x62,
-       0x3e, 0x07, 0xfd, 0x83, 0x4e, 0x16, 0x39, 0x5e, 0xd5, 0xc1, 0xe4, 0xa4,
-       0xcc, 0x43, 0x76, 0x62, 0x16, 0xb2, 0x84, 0x0d, 0xe1, 0x5a, 0x02, 0xdd,
-       0xf6, 0xbc, 0x18, 0x74, 0x77, 0x3c, 0x4b, 0x38, 0xa9, 0x28, 0x9b, 0x83,
-       0xcc, 0x26, 0xdd, 0x5d, 0x1d, 0x7e, 0x3e, 0x09, 0x5f, 0x99, 0xe0, 0x5e,
-       0x9f, 0x85, 0x0e, 0x77, 0x23, 0x86, 0x78, 0x1e, 0x6c, 0x38, 0xa1, 0x0b,
-       0x75, 0x18, 0xf6, 0xe2, 0xf2, 0x5d, 0x1b, 0xe6, 0xc5, 0x9c, 0x84, 0x4f,
-       0x2b, 0x99, 0x9e, 0x77, 0x0f, 0x68, 0xa9, 0xda, 0x1d, 0x58, 0xd7, 0x24,
-       0x08, 0x7b, 0xa6, 0xbf, 0xdf, 0x46, 0x15, 0x3b, 0x30, 0x6e, 0xc7, 0x7e,
-       0x9b, 0x98, 0x7b, 0x4e, 0xd2, 0x16, 0xb2, 0xb4, 0x7d, 0x23, 0xf0, 0xe7,
-       0x6f, 0x82, 0x4e, 0xae, 0x51, 0x70, 0xf1, 0xa6, 0x5c, 0x56, 0x96, 0x6a,
-       0xdb, 0x65, 0x6e, 0x3f, 0xf7, 0xe8, 0xa6, 0x1d, 0x22, 0xfe, 0xf3, 0x99,
-       0x74, 0xd3, 0x8f, 0x74, 0x06, 0x63, 0xed, 0x73, 0xfe, 0x1e, 0x62, 0x32,
-       0xdf, 0x1d, 0x51, 0xf4, 0x8a, 0x7e, 0xd1, 0xde, 0xe8, 0xc7, 0xa8, 0x5c,
-       0xbb, 0x76, 0x0f, 0x72, 0xf0, 0xbd, 0xbb, 0xa9, 0x03, 0x86, 0x5c, 0xb2,
-       0x3c, 0xef, 0x92, 0xdd, 0x04, 0xfe, 0x74, 0x69, 0xb2, 0x8e, 0x9b, 0xd2,
-       0x0a, 0x99, 0x3b, 0x5a, 0x20, 0x97, 0x36, 0x25, 0x97, 0x49, 0x15, 0xf7,
-       0xde, 0xc5, 0xd9, 0x70, 0x6d, 0x45, 0xc5, 0x97, 0x82, 0x5a, 0xc7, 0x35,
-       0x3c, 0xd3, 0x77, 0x91, 0x73, 0x1f, 0xc3, 0xda, 0x98, 0xb4, 0x28, 0xdd,
-       0x66, 0xfc, 0x27, 0xaf, 0xd2, 0xe1, 0xe3, 0x61, 0xac, 0xa5, 0x0e, 0x87,
-       0xfc, 0x8f, 0x06, 0x3c, 0x12, 0xaf, 0x0d, 0xbc, 0x6d, 0xaa, 0xce, 0x28,
-       0xfb, 0xe7, 0xd7, 0x11, 0x53, 0xf2, 0x40, 0x5d, 0x94, 0x0b, 0x7d, 0x21,
-       0x41, 0x43, 0xba, 0x9f, 0xc1, 0x3e, 0xa4, 0x61, 0x13, 0xf2, 0x5e, 0xd1,
-       0xaa, 0xe4, 0xcb, 0x0c, 0xf7, 0x11, 0x3d, 0x96, 0x6b, 0x91, 0x11, 0x68,
-       0x5d, 0xd5, 0xb1, 0xcc, 0x07, 0xa0, 0x7b, 0x5f, 0x07, 0x8f, 0x85, 0x19,
-       0xfa, 0xaa, 0x2f, 0x61, 0xdd, 0x4a, 0x5a, 0xf7, 0xb7, 0x95, 0x23, 0x0e,
-       0x65, 0xfa, 0x0e, 0x64, 0xaa, 0x77, 0x35, 0x4b, 0x87, 0x14, 0x91, 0x4f,
-       0xcd, 0x0f, 0x83, 0xaf, 0x81, 0x36, 0x89, 0xed, 0xa2, 0xaf, 0x42, 0xed,
-       0x93, 0x58, 0x41, 0x60, 0xb8, 0xee, 0xe9, 0x3b, 0xb1, 0x7e, 0x20, 0x01,
-       0xf9, 0x52, 0x66, 0x7a, 0x00, 0x47, 0x18, 0x14, 0x4a, 0x66, 0xa1, 0xb3,
-       0x59, 0x88, 0x9b, 0xef, 0xfa, 0x93, 0xa6, 0x70, 0x1e, 0x3e, 0xbd, 0xc8,
-       0xb5, 0xa4, 0xd9, 0x5f, 0xd3, 0x64, 0x85, 0xb2, 0xfe, 0x2b, 0xf8, 0xa7,
-       0x5f, 0x79, 0x7b, 0x87, 0xc2, 0xf7, 0xe4, 0x87, 0x7c, 0xe1, 0x0c, 0x41,
-       0xd3, 0xe6, 0x9c, 0x25, 0x83, 0xd3, 0xa2, 0x15, 0x90, 0x7b, 0x50, 0x47,
-       0x7a, 0x86, 0xd2, 0x95, 0x94, 0xbe, 0x0d, 0xbc, 0x1a, 0xb2, 0x7f, 0x88,
-       0xfc, 0x6e, 0x0d, 0xf2, 0x8e, 0x46, 0x9e, 0x3b, 0x02, 0x9e, 0xd5, 0x7e,
-       0xc3, 0x79, 0x7d, 0x8d, 0xf7, 0xd1, 0x99, 0x70, 0x5f, 0x03, 0xb6, 0xbc,
-       0x82, 0x9a, 0x87, 0xfb, 0x93, 0x9e, 0x1b, 0x9e, 0x6e, 0x59, 0x95, 0x1e,
-       0xfd, 0x57, 0xde, 0xfd, 0x43, 0x9a, 0xca, 0xd3, 0x74, 0xe4, 0x8c, 0xfa,
-       0x10, 0x78, 0x1d, 0xe2, 0x79, 0xe9, 0x72, 0xff, 0x6e, 0xe2, 0x3b, 0x42,
-       0xde, 0x80, 0xb3, 0xd5, 0xaf, 0x61, 0x86, 0xc2, 0x3d, 0x1a, 0xf5, 0x27,
-       0xc4, 0x49, 0x5c, 0x84, 0xe1, 0x99, 0xd0, 0xdf, 0x4a, 0xbc, 0x60, 0xc7,
-       0x83, 0xb3, 0x0e, 0xd7, 0x89, 0x66, 0x58, 0xeb, 0xd7, 0xc1, 0x68, 0x1f,
-       0xa4, 0xde, 0xf5, 0x04, 0x76, 0x16, 0xea, 0x21, 0xf7, 0x64, 0x7f, 0x2b,
-       0x9d, 0xe5, 0x3a, 0xae, 0x27, 0x3c, 0x61, 0xe0, 0x33, 0xe0, 0x83, 0x7e,
-       0x06, 0xdb, 0x78, 0xf9, 0x26, 0x5f, 0xce, 0xd8, 0x4e, 0x1f, 0x63, 0xaf,
-       0xf7, 0xe7, 0xac, 0x7d, 0xf0, 0xac, 0xc3, 0x7e, 0x1b, 0xfd, 0x3a, 0xe7,
-       0x50, 0x4f, 0x2c, 0x8e, 0xa2, 0xb7, 0x64, 0xed, 0x1e, 0x80, 0x7e, 0x3e,
-       0xac, 0xe7, 0xdb, 0x4a, 0x46, 0x8e, 0x35, 0xbd, 0x14, 0xab, 0xb5, 0xc3,
-       0x88, 0xc9, 0x52, 0xb9, 0x4d, 0xd5, 0xc6, 0x6d, 0xc3, 0x85, 0x2c, 0xe6,
-       0xea, 0x8c, 0xcb, 0x30, 0x7f, 0xac, 0x43, 0x6c, 0x88, 0xeb, 0xd3, 0xf1,
-       0xca, 0xed, 0x39, 0xda, 0x49, 0x4a, 0x52, 0xf5, 0x6b, 0x88, 0x79, 0xc8,
-       0x1f, 0x95, 0x0e, 0x7d, 0xf1, 0x76, 0xd2, 0x5f, 0x45, 0xec, 0x32, 0x72,
-       0x62, 0xe8, 0xb9, 0xe6, 0xf8, 0x64, 0xb6, 0x0d, 0xb1, 0x7e, 0x6c, 0xbb,
-       0x7e, 0x6e, 0xdf, 0xf6, 0xd8, 0xb9, 0xae, 0x52, 0x53, 0xae, 0xb2, 0x5d,
-       0x9f, 0x86, 0x2f, 0xaf, 0x89, 0x8e, 0x98, 0x8a, 0x1a, 0x01, 0xe3, 0x73,
-       0x0f, 0x3c, 0xa0, 0xe7, 0x62, 0x52, 0x4e, 0xc8, 0x93, 0x8b, 0x59, 0xf8,
-       0xf5, 0x5a, 0x3a, 0x55, 0x94, 0x27, 0xa5, 0x5a, 0x3b, 0x24, 0x93, 0xb5,
-       0xf0, 0xde, 0x80, 0x77, 0x06, 0x49, 0xe5, 0xbf, 0xe8, 0x5f, 0x27, 0x03,
-       0xda, 0x41, 0x73, 0x7e, 0x84, 0x31, 0x3a, 0x4b, 0xdf, 0x7d, 0x0d, 0x3a,
-       0xd1, 0x12, 0xd4, 0xda, 0xbe, 0xfe, 0x19, 0xb9, 0x8f, 0x30, 0x47, 0xfd,
-       0xdb, 0xb0, 0x7a, 0x6e, 0x7b, 0x4e, 0xfd, 0x89, 0x8a, 0xa9, 0x4b, 0x36,
-       0x9f, 0x09, 0xf3, 0xf6, 0xe0, 0x94, 0x75, 0xdd, 0x64, 0x6d, 0x70, 0xc1,
-       0x21, 0x3e, 0x53, 0x9d, 0xb5, 0x91, 0xbb, 0x8c, 0xb5, 0xad, 0xa4, 0x0b,
-       0xcd, 0xc0, 0x3c, 0xf6, 0x77, 0x9a, 0x83, 0x71, 0xb8, 0xf6, 0xb5, 0x86,
-       0xb5, 0x9c, 0x63, 0x4f, 0xdc, 0xd8, 0xa3, 0xe1, 0xce, 0xe4, 0x82, 0x9b,
-       0x51, 0x35, 0x7b, 0xc1, 0x55, 0xb9, 0x02, 0x6a, 0x74, 0xe8, 0x93, 0xba,
-       0x43, 0x81, 0x3f, 0x72, 0xff, 0xce, 0xf4, 0xcf, 0x9d, 0xfe, 0x63, 0x45,
-       0x18, 0xdf, 0xa8, 0x6f, 0x53, 0xca, 0x4f, 0xbd, 0xd9, 0x70, 0x17, 0xf0,
-       0x26, 0xfc, 0xd2, 0x9d, 0x9b, 0xfd, 0x9a, 0xc6, 0x0c, 0x7c, 0x5a, 0xab,
-       0xca, 0x53, 0x7c, 0x9f, 0x96, 0x6a, 0x80, 0x4d, 0xf1, 0xde, 0xa0, 0xc3,
-       0xaf, 0xbd, 0x7f, 0x2b, 0x58, 0xc3, 0xfc, 0xc1, 0x32, 0x99, 0x3b, 0xf8,
-       0xb2, 0xf0, 0x9e, 0x59, 0x1d, 0x27, 0x4a, 0x01, 0xbe, 0xa6, 0xe0, 0xdd,
-       0x5b, 0x6d, 0x3e, 0x4d, 0xe1, 0xda, 0x3f, 0x0d, 0xee, 0xa6, 0x94, 0x2f,
-       0xcc, 0x03, 0x16, 0x3c, 0xa4, 0x4a, 0x3a, 0xf4, 0x66, 0xa4, 0xee, 0xcb,
-       0x1b, 0xf1, 0x8e, 0xf7, 0x4f, 0x8a, 0xb6, 0x0b, 0x2a, 0xe7, 0x68, 0xe4,
-       0x3f, 0x4f, 0xbe, 0xf3, 0x06, 0x69, 0x74, 0xc7, 0xb0, 0x56, 0x0e, 0xf8,
-       0x77, 0x14, 0xa6, 0x4c, 0x98, 0xfd, 0xe6, 0x24, 0xf1, 0x26, 0x04, 0xf8,
-       0x90, 0x97, 0xe4, 0xc2, 0x33, 0xfc, 0x26, 0xf7, 0x06, 0xde, 0x8d, 0x1c,
-       0xa3, 0xff, 0x66, 0x40, 0xcb, 0x8f, 0x03, 0x79, 0x85, 0xef, 0x7f, 0xb1,
-       0xf9, 0xe6, 0xf1, 0x3d, 0xb7, 0x07, 0xf2, 0xc4, 0xf3, 0xa1, 0x5f, 0x43,
-       0x13, 0xf5, 0xfd, 0x34, 0xf0, 0xa8, 0x18, 0x5c, 0xd1, 0x73, 0x88, 0xf9,
-       0x59, 0x64, 0x34, 0x35, 0xd8, 0xb4, 0x20, 0xf6, 0xbb, 0x69, 0xbb, 0x84,
-       0x55, 0x1f, 0xd5, 0xe8, 0x57, 0xaf, 0xc3, 0xaf, 0xf2, 0xac, 0x3f, 0x96,
-       0xa9, 0x5a, 0xaf, 0xdd, 0xac, 0xa9, 0xfc, 0x3a, 0x73, 0x5a, 0xfa, 0xed,
-       0xd3, 0xc8, 0x3d, 0x50, 0xa3, 0xa5, 0x8e, 0x08, 0x65, 0x7e, 0x5d, 0x76,
-       0xa8, 0x9c, 0xe0, 0x63, 0xb1, 0x20, 0x93, 0x22, 0xea, 0x04, 0x7d, 0xe8,
-       0x5f, 0x3d, 0x95, 0xd3, 0x68, 0xa8, 0x42, 0x6f, 0x81, 0xeb, 0x6d, 0x85,
-       0x87, 0xf8, 0x1a, 0x71, 0x69, 0xd2, 0x32, 0x14, 0xe2, 0x4b, 0xc9, 0x51,
-       0x37, 0xc4, 0x69, 0xc8, 0x65, 0x64, 0x2d, 0xfa, 0x90, 0x17, 0xf0, 0xcf,
-       0xe7, 0x5f, 0x7a, 0xcc, 0x09, 0xf4, 0xdc, 0xdd, 0x81, 0x0c, 0x7e, 0x8f,
-       0x32, 0xc0, 0x18, 0x3a, 0xef, 0x7c, 0xc5, 0xaf, 0x45, 0x54, 0x2d, 0x37,
-       0x86, 0x9a, 0x82, 0x73, 0x2b, 0x2d, 0x05, 0x3b, 0x3c, 0xe3, 0x7d, 0x98,
-       0x2b, 0xe2, 0x47, 0xb9, 0x10, 0x66, 0x3f, 0x9e, 0xf3, 0x01, 0x9c, 0x0c,
-       0xfb, 0x35, 0x79, 0x58, 0x8b, 0x84, 0x39, 0xa1, 0xcc, 0xe8, 0x39, 0xe6,
-       0xef, 0x3b, 0x40, 0x2b, 0x73, 0x56, 0x9c, 0xe7, 0xaa, 0xff, 0x59, 0x85,
-       0xa9, 0xac, 0xc1, 0xf8, 0xb9, 0xe7, 0xa8, 0x1b, 0xe6, 0xbb, 0xcc, 0x69,
-       0xc3, 0xdc, 0x27, 0xaf, 0x15, 0x9d, 0x31, 0xed, 0x3e, 0x87, 0xf0, 0xfa,
-       0xec, 0x66, 0xb1, 0x52, 0x3d, 0xba, 0x27, 0x23, 0x43, 0xac, 0x9d, 0x8f,
-       0xe1, 0xcc, 0x3b, 0xa4, 0x9c, 0x41, 0x1e, 0x60, 0xde, 0x85, 0xbe, 0x19,
-       0x73, 0x5f, 0xc6, 0x1c, 0x74, 0x23, 0xc3, 0xfc, 0x66, 0x83, 0xaa, 0x41,
-       0x4a, 0x2a, 0x76, 0xec, 0x08, 0xf4, 0xe5, 0x89, 0x4e, 0x5f, 0x3f, 0xbe,
-       0x87, 0xf1, 0x46, 0xcc, 0x7f, 0x03, 0xbd, 0xe7, 0xf5, 0x0c, 0x85, 0xf3,
-       0xd4, 0xfb, 0x61, 0xcc, 0xdf, 0x09, 0x1c, 0x15, 0x3c, 0x7f, 0x0e, 0xcf,
-       0x7f, 0xb8, 0x6e, 0xed, 0x77, 0x31, 0xae, 0x60, 0xbe, 0xb0, 0x6e, 0x3e,
-       0xf4, 0xb3, 0xdc, 0xaf, 0xa2, 0x15, 0xdd, 0x29, 0x2d, 0xaf, 0xea, 0x88,
-       0x63, 0xa8, 0x55, 0xe8, 0x6b, 0x59, 0xb3, 0xcc, 0x20, 0x17, 0xa7, 0x9f,
-       0x3d, 0x88, 0x35, 0x8b, 0xd0, 0xbb, 0x56, 0x95, 0x65, 0xea, 0xca, 0x1e,
-       0x0f, 0x1d, 0xec, 0x99, 0x63, 0x5f, 0x39, 0x68, 0xd7, 0x09, 0xc3, 0xe7,
-       0x27, 0x0f, 0xf6, 0xd4, 0x0f, 0x01, 0x96, 0xf9, 0x7a, 0xe3, 0x1d, 0xef,
-       0x37, 0xd6, 0xed, 0xe9, 0xd7, 0x38, 0x45, 0x75, 0x37, 0x78, 0xe8, 0x60,
-       0x61, 0x86, 0x71, 0x9a, 0xf5, 0x26, 0xf3, 0xd2, 0xca, 0xc1, 0xf1, 0xda,
-       0x54, 0x50, 0xd3, 0x84, 0xef, 0xf9, 0x8e, 0xf2, 0xbf, 0x15, 0x6d, 0xa4,
-       0xab, 0x11, 0x8f, 0xca, 0x6b, 0x80, 0xe7, 0x49, 0xe0, 0x61, 0x6d, 0xa4,
-       0xee, 0x90, 0x15, 0xbd, 0xa9, 0xb9, 0x5b, 0xd1, 0x46, 0x5c, 0xdc, 0x2b,
-       0xc4, 0x77, 0x02, 0x75, 0xc7, 0x77, 0x48, 0x2f, 0xf0, 0x7c, 0x26, 0xc8,
-       0x6d, 0x78, 0x37, 0x65, 0xf8, 0x77, 0x38, 0x6a, 0x1c, 0xd6, 0xbe, 0x4d,
-       0xeb, 0x6a, 0xdf, 0xa6, 0xe0, 0x1e, 0x8b, 0xb0, 0x7a, 0x00, 0xab, 0xee,
-       0xd0, 0x31, 0x97, 0x0a, 0xee, 0x94, 0xe3, 0xbc, 0x53, 0x6e, 0x90, 0x45,
-       0x53, 0x20, 0x7f, 0xd2, 0x11, 0xd6, 0x2b, 0x8d, 0xf4, 0xf1, 0xbe, 0x79,
-       0x0a, 0xef, 0xc3, 0xb3, 0x09, 0x79, 0x5f, 0xc4, 0x3c, 0xe9, 0x3d, 0x03,
-       0xf8, 0x90, 0xde, 0x4f, 0x7b, 0xa6, 0x5c, 0x7b, 0x06, 0xbf, 0x70, 0xbf,
-       0x50, 0x2e, 0xa4, 0xf5, 0xd7, 0xd5, 0x5a, 0xa1, 0xdf, 0x5b, 0x0c, 0x62,
-       0x3a, 0xe9, 0xa2, 0x0f, 0xa2, 0x3f, 0x0e, 0xef, 0xc0, 0x59, 0x63, 0x33,
-       0x56, 0xf0, 0xbc, 0x5a, 0xa0, 0x2b, 0x84, 0xd3, 0x90, 0x5f, 0xeb, 0xcc,
-       0xc3, 0x52, 0xa8, 0x35, 0x92, 0x8f, 0xc8, 0x0f, 0xb0, 0x57, 0x3e, 0xd3,
-       0xa4, 0xec, 0x88, 0xf7, 0x08, 0xcd, 0xb2, 0x02, 0x9d, 0xbe, 0x84, 0xfa,
-       0x63, 0x1e, 0xb5, 0xd1, 0x12, 0xef, 0xb5, 0xeb, 0x27, 0x3b, 0x79, 0x1f,
-       0x32, 0x65, 0xad, 0xd5, 0xf1, 0x73, 0x80, 0x59, 0xb0, 0x58, 0xeb, 0x4b,
-       0xd0, 0x10, 0x23, 0x91, 0x67, 0x8c, 0x5b, 0xff, 0xe3, 0x95, 0x13, 0x8d,
-       0xb0, 0xb7, 0xaa, 0xb3, 0xdb, 0xa4, 0x3a, 0x9b, 0x3e, 0x3a, 0x87, 0x7a,
-       0x77, 0xc6, 0xd2, 0xb7, 0xe8, 0x7e, 0xad, 0x34, 0x03, 0xdf, 0xa4, 0x6a,
-       0xad, 0x39, 0x79, 0xae, 0x93, 0x67, 0xd7, 0x64, 0xf5, 0x9b, 0x9d, 0xfa,
-       0xef, 0x50, 0x17, 0x15, 0xe5, 0xb1, 0x13, 0x1b, 0xa4, 0x3c, 0x70, 0x1f,
-       0x72, 0x2d, 0xc8, 0xf3, 0x44, 0x05, 0x95, 0x21, 0xf5, 0xea, 0xbd, 0x03,
-       0xe3, 0x16, 0x6b, 0x26, 0xf1, 0xe3, 0x9a, 0xf8, 0x3c, 0xc6, 0x4e, 0xb4,
-       0x29, 0x9f, 0xe4, 0xdf, 0x99, 0xf7, 0x9a, 0x45, 0xe4, 0x63, 0x85, 0x01,
-       0x24, 0x8d, 0xc8, 0x5e, 0xcc, 0x9d, 0x22, 0x3d, 0xcc, 0x19, 0xe1, 0x8f,
-       0x7b, 0xce, 0xc1, 0xcb, 0x9d, 0x20, 0xbc, 0x2e, 0xc6, 0x89, 0x98, 0x34,
-       0x9d, 0x60, 0x9d, 0x2d, 0x5d, 0xa8, 0x51, 0x88, 0xb3, 0xc7, 0x40, 0x3f,
-       0x8a, 0xdf, 0x1e, 0xe4, 0x51, 0x26, 0xf2, 0xda, 0x5b, 0xc0, 0x03, 0x96,
-       0x6b, 0x6e, 0x05, 0xff, 0x6a, 0x27, 0xeb, 0xce, 0x9e, 0x73, 0x84, 0xe7,
-       0x7d, 0x76, 0x17, 0xe8, 0xf1, 0xf7, 0x27, 0x0e, 0xe3, 0x84, 0x48, 0xef,
-       0xb4, 0x74, 0xea, 0x6a, 0x8d, 0x21, 0xe3, 0x59, 0xbe, 0x6b, 0x03, 0xfc,
-       0xab, 0xca, 0x3e, 0x7b, 0xd5, 0x3a, 0xff, 0xce, 0xa2, 0xbc, 0x46, 0x37,
-       0xe6, 0x34, 0x3c, 0x23, 0x57, 0xca, 0x9a, 0xd2, 0x3b, 0xef, 0xc3, 0xf6,
-       0x9c, 0xeb, 0xd8, 0xe2, 0xdf, 0xed, 0xf8, 0xb4, 0xf1, 0x6e, 0xb0, 0x0c,
-       0xa9, 0x1a, 0x3b, 0x59, 0xf3, 0x13, 0x86, 0xdf, 0x52, 0xd8, 0x73, 0x2d,
-       0xe5, 0xe7, 0xcf, 0xe9, 0xfa, 0xff, 0xa5, 0x5f, 0xeb, 0xbf, 0xe1, 0x84,
-       0x77, 0x4b, 0xa9, 0x86, 0xbb, 0xa5, 0x74, 0xc3, 0xb7, 0x97, 0x9f, 0xb4,
-       0x05, 0x7a, 0x27, 0x93, 0xb6, 0x27, 0xe1, 0xf7, 0xa5, 0xbd, 0x37, 0xe5,
-       0x90, 0x19, 0x15, 0xa7, 0xc7, 0x21, 0xfb, 0x2b, 0x75, 0xd2, 0x8b, 0x98,
-       0x53, 0x8f, 0xcb, 0xfb, 0x8b, 0xad, 0x72, 0x65, 0xce, 0xcf, 0x29, 0xaf,
-       0xa8, 0x6f, 0x4e, 0xa6, 0x7c, 0x80, 0xc2, 0xff, 0x72, 0x3d, 0x83, 0x5f,
-       0xa7, 0x5c, 0x5d, 0xbc, 0x39, 0xa7, 0xbc, 0xe0, 0xde, 0x0d, 0x5a, 0x3a,
-       0x03, 0x1b, 0x46, 0xdd, 0x86, 0x18, 0x58, 0x09, 0xee, 0xea, 0x55, 0xce,
-       0x62, 0xd0, 0x16, 0x78, 0x27, 0x1f, 0xde, 0x57, 0xf7, 0x9a, 0x17, 0x21,
-       0xe3, 0xaf, 0x1a, 0x9d, 0xa8, 0xa3, 0x79, 0xd7, 0x16, 0xc6, 0xec, 0x30,
-       0xf6, 0x90, 0xee, 0xb7, 0x81, 0x7b, 0x00, 0x7a, 0x4a, 0xdd, 0xb4, 0xa1,
-       0xb3, 0xa6, 0x2c, 0xf5, 0xa5, 0x67, 0x2a, 0xc2, 0xef, 0x02, 0x59, 0xec,
-       0xb9, 0x0c, 0xbd, 0xcc, 0x40, 0x1e, 0xcc, 0xf5, 0x28, 0x57, 0x9c, 0xed,
-       0xf4, 0x94, 0x94, 0xdd, 0xad, 0xc0, 0x97, 0x97, 0x92, 0x3b, 0x8c, 0xbd,
-       0x8e, 0x43, 0x6f, 0x7f, 0xb9, 0x85, 0x77, 0x99, 0xcd, 0x56, 0x16, 0x34,
-       0xde, 0x25, 0xe3, 0x27, 0xa7, 0x64, 0xc2, 0x59, 0xfd, 0x66, 0x94, 0xe1,
-       0xf7, 0x94, 0x45, 0xd4, 0xb4, 0xbe, 0x3d, 0xe6, 0x64, 0xfc, 0x14, 0x70,
-       0x38, 0xac, 0x8d, 0x7b, 0xa1, 0x37, 0xfd, 0xaa, 0x36, 0x2e, 0x29, 0x9f,
-       0xc4, 0xf9, 0xef, 0x01, 0x57, 0x6f, 0x65, 0x0f, 0xe0, 0xca, 0xa8, 0x9f,
-       0x8b, 0xc8, 0x85, 0x17, 0x1c, 0x43, 0xca, 0x36, 0x7c, 0x6b, 0x31, 0xa9,
-       0xeb, 0xbb, 0xba, 0x65, 0xde, 0xe9, 0x37, 0x75, 0xde, 0x3d, 0x26, 0x7c,
-       0xdf, 0x57, 0x56, 0xf6, 0x9d, 0xd4, 0x0d, 0xab, 0x5b, 0x16, 0x9d, 0x8a,
-       0x54, 0x07, 0x38, 0xe6, 0xf9, 0x55, 0xc4, 0xb4, 0x7c, 0x5f, 0x99, 0xd7,
-       0x35, 0x75, 0xb7, 0x5d, 0x76, 0xd5, 0xfd, 0x68, 0xca, 0x94, 0xc3, 0xa0,
-       0x0f, 0xcf, 0x0b, 0xd0, 0xf1, 0x69, 0xe6, 0x78, 0xfe, 0x9d, 0xf1, 0x81,
-       0xe5, 0x22, 0x68, 0x68, 0x97, 0xde, 0x1f, 0xd3, 0xc6, 0x1e, 0xc2, 0x1c,
-       0xc7, 0x69, 0xe8, 0xeb, 0xc3, 0x78, 0x26, 0x6c, 0x12, 0x3d, 0xe5, 0xd0,
-       0x8d, 0xde, 0x04, 0x2d, 0xd0, 0x4b, 0xd6, 0xa5, 0xfb, 0x53, 0x32, 0x7f,
-       0x72, 0xb7, 0x94, 0x16, 0x76, 0x03, 0xff, 0x3f, 0x22, 0xe7, 0xbf, 0x33,
-       0xb8, 0x8b, 0x65, 0xde, 0xcf, 0x7d, 0x5e, 0xdc, 0xa2, 0x6c, 0x63, 0x9a,
-       0xf3, 0xec, 0xf7, 0x61, 0x3d, 0xea, 0x07, 0x47, 0xdd, 0x4f, 0x03, 0x06,
-       0x67, 0xe7, 0x36, 0x7e, 0xfb, 0xeb, 0x84, 0x9f, 0xae, 0xb0, 0x76, 0x40,
-       0x6c, 0x99, 0x1b, 0x2c, 0xd4, 0xd2, 0x66, 0x41, 0x7d, 0x97, 0xc8, 0x88,
-       0x1f, 0x6f, 0x38, 0x17, 0x17, 0x6b, 0x1a, 0xf5, 0x68, 0x8e, 0xef, 0x0e,
-       0xab, 0xfb, 0x1f, 0xf5, 0x7d, 0x4e, 0xde, 0x95, 0x51, 0xe8, 0x58, 0xef,
-       0x74, 0x06, 0x39, 0xf1, 0x7b, 0xc8, 0x27, 0x7f, 0x1e, 0xc8, 0x60, 0x38,
-       0xd0, 0x8d, 0xd6, 0x06, 0x9d, 0xc0, 0x39, 0x3b, 0x38, 0x7b, 0x07, 0x7a,
-       0xe0, 0xe0, 0xac, 0x57, 0xf5, 0x63, 0xb8, 0xc1, 0xe7, 0x6e, 0x92, 0xbf,
-       0x9c, 0x49, 0x67, 0x56, 0xa0, 0x3f, 0x57, 0xc1, 0xeb, 0x0a, 0xea, 0xbc,
-       0x2b, 0x88, 0x23, 0x0b, 0x35, 0x7e, 0x4b, 0xe0, 0xb7, 0x38, 0x8e, 0xb7,
-       0xe1, 0x3c, 0x42, 0x7f, 0xfc, 0x52, 0x60, 0x17, 0x9b, 0xd4, 0x7d, 0xe7,
-       0xfb, 0x38, 0xc3, 0x15, 0xd3, 0xcf, 0x17, 0xfd, 0x35, 0x9b, 0x24, 0xfc,
-       0xde, 0xe7, 0xeb, 0x0f, 0x69, 0xa1, 0xfe, 0x7c, 0xb2, 0xc5, 0xcf, 0xfb,
-       0xf9, 0x0d, 0x8c, 0xf5, 0x0b, 0x9f, 0xef, 0xdf, 0xe2, 0xe3, 0x6a, 0xd4,
-       0xdb, 0x8f, 0x3d, 0xd6, 0x6a, 0x85, 0x3e, 0xf8, 0x6c, 0xd7, 0x93, 0x63,
-       0xf6, 0xcd, 0xf6, 0x76, 0x8f, 0x13, 0xca, 0x87, 0xf2, 0x2b, 0xca, 0x11,
-       0x37, 0x0d, 0x5b, 0xa0, 0xec, 0xac, 0x06, 0xd9, 0x89, 0xfc, 0xb9, 0x23,
-       0xbc, 0xef, 0xc2, 0x3b, 0x25, 0xbb, 0x64, 0x21, 0xd6, 0xca, 0xfb, 0x5a,
-       0xe8, 0xe3, 0xdf, 0xca, 0xc4, 0xac, 0xc8, 0x32, 0xde, 0x2f, 0x39, 0xb4,
-       0xd1, 0x0c, 0xf2, 0xd7, 0x8d, 0x32, 0x3f, 0x87, 0x3a, 0xcb, 0x91, 0x52,
-       0xe1, 0x4e, 0xc6, 0x99, 0xb8, 0x5c, 0x51, 0xf7, 0x7b, 0x22, 0x3b, 0xcf,
-       0x1a, 0x62, 0x9c, 0x45, 0x41, 0x07, 0x99, 0x9f, 0xef, 0x0b, 0xef, 0xfb,
-       0x7c, 0x5b, 0xaf, 0xd6, 0xb0, 0xd6, 0xe9, 0x55, 0xfe, 0xb1, 0x5a, 0x1f,
-       0x97, 0xf2, 0x0c, 0xf7, 0x42, 0x3f, 0x97, 0xc2, 0x3b, 0x5b, 0x26, 0x4f,
-       0x66, 0xe4, 0xfb, 0xfc, 0x5e, 0x93, 0x1d, 0xc5, 0x1e, 0x05, 0xa9, 0x2c,
-       0x63, 0xbe, 0xfe, 0x4f, 0x32, 0xb7, 0x38, 0x2e, 0xf3, 0x33, 0x17, 0x1a,
-       0xee, 0x73, 0x31, 0x9e, 0x6b, 0xac, 0x4f, 0x8b, 0xac, 0xa9, 0x50, 0x7f,
-       0x5a, 0x18, 0xc3, 0x06, 0xea, 0x93, 0xa5, 0x9b, 0xef, 0x1f, 0x1b, 0xeb,
-       0xd2, 0x51, 0x39, 0x8a, 0x33, 0xae, 0x9e, 0xcc, 0xa8, 0xba, 0xa6, 0x25,
-       0x37, 0xfb, 0xf8, 0x87, 0x88, 0x11, 0x63, 0x42, 0x3d, 0xbb, 0x2e, 0x5f,
-       0xb3, 0x8f, 0xca, 0x23, 0x88, 0x1d, 0x47, 0x90, 0x5f, 0xff, 0x36, 0xea,
-       0xba, 0xd4, 0x66, 0x9e, 0x21, 0xe8, 0xb5, 0x58, 0x57, 0x7a, 0x32, 0x6a,
-       0xdf, 0x61, 0xfe, 0x00, 0x92, 0x7d, 0xbf, 0xce, 0xf8, 0xf8, 0xdf, 0x5e,
-       0x1e, 0xf1, 0xee, 0x43, 0x0b, 0x3e, 0x41, 0xc1, 0x69, 0x3e, 0xdc, 0x0c,
-       0xe1, 0xfa, 0xcd, 0x63, 0x84, 0x9b, 0xd3, 0x02, 0x38, 0x0d, 0x70, 0x31,
-       0xb9, 0x68, 0x1b, 0xd0, 0x8d, 0x51, 0xf0, 0x09, 0xdf, 0x3e, 0x18, 0x7e,
-       0x6f, 0xdc, 0x80, 0x98, 0xba, 0xb6, 0xfe, 0x8d, 0x60, 0xfd, 0xf7, 0x83,
-       0xf5, 0x97, 0x56, 0xd7, 0x87, 0x71, 0xf5, 0x13, 0x4f, 0x1a, 0xe8, 0x7a,
-       0xa3, 0xe6, 0xc3, 0x1f, 0x0d, 0xe8, 0xba, 0xb4, 0x4a, 0x57, 0x08, 0x0f,
-       0x79, 0x2a, 0x9e, 0xe9, 0x93, 0xe9, 0x9b, 0x7b, 0x21, 0x47, 0x7e, 0x47,
-       0x86, 0x4d, 0x38, 0xfc, 0x7e, 0x4b, 0x3b, 0xd1, 0x65, 0x25, 0x71, 0x54,
-       0xc6, 0xac, 0xf4, 0xf0, 0xa4, 0xc4, 0xa0, 0xc3, 0xf4, 0x29, 0x31, 0x99,
-       0xa7, 0xaf, 0x41, 0x5f, 0xb6, 0x6f, 0x4d, 0xeb, 0xfb, 0x0d, 0xb4, 0xc6,
-       0x9e, 0x27, 0x8d, 0x3e, 0xad, 0xf1, 0x1d, 0x6b, 0xb4, 0xfa, 0xf0, 0x3e,
-       0xad, 0xef, 0xd7, 0x1a, 0xe0, 0xcf, 0x1a, 0x01, 0xbc, 0xd1, 0x00, 0x4f,
-       0x7d, 0x66, 0x3e, 0x41, 0x7d, 0x26, 0x6d, 0x5f, 0x50, 0xf7, 0x66, 0x1b,
-       0x72, 0xb3, 0x07, 0x3f, 0xbf, 0xc3, 0x93, 0x38, 0xf2, 0x8c, 0x66, 0xbc,
-       0xbb, 0x32, 0xc3, 0x1c, 0x44, 0xef, 0x69, 0x96, 0x9d, 0xd0, 0x59, 0x9e,
-       0x5d, 0xe3, 0x9d, 0xab, 0x27, 0x8f, 0xd8, 0xa4, 0xe5, 0x3f, 0xbd, 0x33,
-       0x89, 0x9d, 0x76, 0x55, 0xfa, 0xcc, 0x66, 0xe1, 0x9d, 0xae, 0xc2, 0x99,
-       0x21, 0x2d, 0xa7, 0xfb, 0x7a, 0xcd, 0xb7, 0xc0, 0xe7, 0xe8, 0x8c, 0x26,
-       0xf3, 0x56, 0x3a, 0x79, 0x1e, 0x38, 0xf6, 0xe0, 0x6c, 0xe6, 0x07, 0x48,
-       0x8f, 0xc8, 0x04, 0xf4, 0x7b, 0x5e, 0xc5, 0x43, 0xea, 0x71, 0x7a, 0xac,
-       0x82, 0x1c, 0xe7, 0xa7, 0x2a, 0xa6, 0x79, 0xde, 0x87, 0x88, 0x6b, 0x63,
-       0xeb, 0x74, 0x4f, 0x3f, 0xeb, 0xeb, 0x9e, 0x7e, 0x16, 0xb5, 0xf1, 0xf1,
-       0xb8, 0xb4, 0x2c, 0xc1, 0x7e, 0x9e, 0xef, 0x52, 0xfa, 0xa7, 0x3f, 0xcf,
-       0x6f, 0x19, 0xf0, 0x73, 0xc7, 0x0d, 0xb1, 0x8e, 0xab, 0x38, 0x00, 0x79,
-       0x17, 0x64, 0xf2, 0x14, 0x7d, 0xa9, 0x25, 0x3b, 0x8e, 0xf3, 0x3c, 0x98,
-       0xcf, 0xcc, 0x0d, 0x8e, 0xc3, 0x46, 0xa6, 0xf8, 0x7d, 0x70, 0xe9, 0x23,
-       0x19, 0xb7, 0x28, 0x07, 0x94, 0xfa, 0x4b, 0xa6, 0xc4, 0x96, 0xe0, 0x13,
-       0x96, 0x92, 0xd2, 0x04, 0xdb, 0xd2, 0xcf, 0x26, 0xb4, 0xea, 0xec, 0x7f,
-       0xc1, 0x1e, 0xf8, 0x4d, 0x20, 0x83, 0x71, 0x52, 0xab, 0xd6, 0x06, 0xd0,
-       0x53, 0xcf, 0x91, 0x46, 0x9d, 0xa5, 0x9e, 0x93, 0x8e, 0xd0, 0x5e, 0xf0,
-       0x7c, 0x36, 0xa3, 0xee, 0x6c, 0x3f, 0xb4, 0xc9, 0xcb, 0xdf, 0x48, 0x61,
-       0x26, 0xfc, 0x1b, 0x10, 0xd9, 0x8c, 0x1c, 0xa6, 0xa3, 0x60, 0xef, 0x18,
-       0xbe, 0x22, 0x9f, 0x96, 0xaf, 0x6d, 0x9f, 0x82, 0x2f, 0xf2, 0xd1, 0xc8,
-       0x17, 0x79, 0x6a, 0x97, 0x26, 0xc5, 0x57, 0xc8, 0x0f, 0x04, 0x0d, 0x7e,
-       0x7a, 0x8e, 0x27, 0x81, 0xff, 0x61, 0xf8, 0x80, 0x6e, 0xf4, 0x0f, 0xa1,
-       0x47, 0x28, 0x3b, 0x4b, 0xde, 0xc9, 0xeb, 0x55, 0xe4, 0x8b, 0x21, 0x9f,
-       0x25, 0x3c, 0xbf, 0x2e, 0x93, 0xb3, 0xde, 0x61, 0xc4, 0x53, 0xde, 0x27,
-       0x77, 0xea, 0x4a, 0x77, 0xd7, 0xf3, 0xfe, 0xba, 0xf8, 0xf2, 0xe1, 0x5d,
-       0x3c, 0x9e, 0x17, 0xd7, 0xcb, 0xa2, 0xd1, 0x77, 0x24, 0x83, 0xbf, 0x7b,
-       0xa1, 0x9f, 0xa0, 0x8c, 0xae, 0x4a, 0x61, 0x96, 0x77, 0x5a, 0x3e, 0xbe,
-       0xd2, 0xea, 0xdf, 0xbe, 0x34, 0xae, 0x19, 0x00, 0x5c, 0x37, 0xe0, 0x48,
-       0xd7, 0x0a, 0xe5, 0x07, 0x9f, 0xb3, 0xbd, 0xc1, 0xd7, 0x34, 0xae, 0xcb,
-       0xca, 0x33, 0x88, 0xff, 0x6f, 0xd8, 0x37, 0xc9, 0xb5, 0xc4, 0x1c, 0x68,
-       0xbe, 0xbe, 0x0f, 0x36, 0xd9, 0x04, 0x5f, 0x66, 0xca, 0x95, 0x5a, 0xb3,
-       0xcc, 0x23, 0xcf, 0x59, 0x58, 0xa4, 0x2f, 0x24, 0xed, 0xad, 0x98, 0xf7,
-       0xfd, 0x17, 0x7d, 0xed, 0x95, 0x1a, 0xe2, 0x2b, 0x6c, 0xfb, 0x4a, 0x2d,
-       0x81, 0xbe, 0x1b, 0xbd, 0x85, 0x3e, 0x85, 0x3e, 0x83, 0x7e, 0x00, 0xfd,
-       0x00, 0x7a, 0x0b, 0x6b, 0x93, 0xe8, 0xc3, 0x5a, 0x82, 0xb8, 0xd6, 0xf8,
-       0xae, 0xaa, 0xfd, 0xf8, 0xdd, 0x90, 0xb1, 0xcc, 0xb0, 0x47, 0x50, 0x63,
-       0x17, 0x06, 0xc2, 0xbf, 0xb9, 0xb9, 0xe1, 0x99, 0x16, 0x6b, 0xf7, 0x8a,
-       0xb6, 0x47, 0x7d, 0x5f, 0x98, 0x41, 0x5c, 0x78, 0x6e, 0xab, 0xb4, 0x5a,
-       0xe6, 0x3d, 0xea, 0xee, 0x68, 0x16, 0x63, 0x3e, 0xa3, 0x3e, 0x4e, 0x4c,
-       0x21, 0x3e, 0xd1, 0x7f, 0xfe, 0x6f, 0xe7, 0xd6, 0x1b, 0xdb, 0xc6, 0x59,
-       0xc6, 0x1f, 0x9f, 0x9d, 0x34, 0xe9, 0x9a, 0xf6, 0x92, 0x38, 0xa9, 0x93,
-       0x85, 0xcd, 0x8e, 0x2f, 0xad, 0x45, 0xd2, 0x71, 0xed, 0x2c, 0x16, 0xa6,
-       0x8c, 0x78, 0x76, 0x92, 0x76, 0x30, 0xa6, 0xb4, 0x74, 0xd3, 0x84, 0x10,
-       0x58, 0xc9, 0xba, 0x75, 0x13, 0xd2, 0x28, 0x30, 0x34, 0x89, 0xa2, 0x18,
-       0x27, 0x61, 0x19, 0x18, 0xc7, 0x0b, 0x81, 0x4e, 0xf0, 0xc5, 0x38, 0xd1,
-       0x06, 0x22, 0x4a, 0x3a, 0x8d, 0x0f, 0x08, 0x6d, 0x74, 0xb8, 0x83, 0xef,
-       0xfc, 0x11, 0x62, 0x12, 0x1f, 0xaa, 0xa8, 0x63, 0x20, 0x21, 0xe0, 0x23,
-       0xd2, 0x98, 0x8e, 0xdf, 0xef, 0x79, 0xef, 0x12, 0xc7, 0x64, 0x54, 0xf0,
-       0xc1, 0x3a, 0xbf, 0x77, 0xf7, 0xbe, 0xf7, 0xde, 0xfb, 0x3c, 0xef, 0xef,
-       0xf9, 0x3d, 0x7f, 0xce, 0x43, 0x9f, 0x19, 0xe0, 0xf8, 0x11, 0x61, 0x0c,
-       0x36, 0x9b, 0xc6, 0xff, 0xea, 0xc5, 0x1e, 0x63, 0x4b, 0xc1, 0xdb, 0x77,
-       0xb8, 0x61, 0x60, 0xab, 0x46, 0xd0, 0x67, 0x3f, 0x9f, 0x00, 0x36, 0xb0,
-       0x92, 0xa8, 0x54, 0xb1, 0x07, 0x7f, 0xed, 0xce, 0x29, 0xa7, 0xa3, 0x2c,
-       0x16, 0xc1, 0x4d, 0x73, 0x65, 0x72, 0x97, 0xcb, 0xf0, 0x47, 0xe0, 0xcb,
-       0x45, 0xe9, 0xbb, 0xd3, 0x16, 0x90, 0x83, 0xfe, 0x12, 0x73, 0xa3, 0x1d,
-       0xf8, 0x26, 0x9e, 0x87, 0xf7, 0x5a, 0xf3, 0xb0, 0x66, 0xa7, 0xc1, 0x05,
-       0x3d, 0x2f, 0xe2, 0x4c, 0x4a, 0xfc, 0x1c, 0x31, 0x47, 0xd0, 0xdf, 0xc4,
-       0xb2, 0xc8, 0xab, 0x32, 0xd3, 0x9a, 0x83, 0x84, 0x72, 0xfd, 0x0e, 0x7d,
-       0x7b, 0xc4, 0xc4, 0xa7, 0x18, 0x7f, 0x16, 0x99, 0x2c, 0x1b, 0x2e, 0x0b,
-       0xbf, 0xac, 0x61, 0xbc, 0xbb, 0xfd, 0xf1, 0x78, 0xdd, 0xd2, 0x71, 0x6a,
-       0xd2, 0x6b, 0x62, 0xbb, 0x63, 0x23, 0xb0, 0x11, 0x51, 0xa9, 0x43, 0x2e,
-       0xd7, 0x21, 0x93, 0x37, 0x4b, 0xd4, 0xf5, 0x61, 0xe8, 0x7d, 0x0b, 0xf3,
-       0xb3, 0x18, 0x6b, 0x44, 0x9f, 0x5d, 0x2f, 0x01, 0x3b, 0x6d, 0xf5, 0x4f,
-       0x7b, 0xc9, 0x0b, 0x69, 0x07, 0xcd, 0x38, 0x03, 0xe6, 0x3e, 0x09, 0xae,
-       0x75, 0xeb, 0x7c, 0x6a, 0x1a, 0x03, 0xe3, 0x3a, 0x41, 0x07, 0x4b, 0xdd,
-       0xfe, 0x3d, 0x5e, 0x8f, 0xa9, 0x77, 0xe2, 0x39, 0xbe, 0xc7, 0x88, 0x64,
-       0xcb, 0x41, 0xbf, 0x4e, 0xf4, 0x6b, 0x6f, 0x18, 0xeb, 0x68, 0xd3, 0x3b,
-       0x58, 0xfe, 0x3b, 0xf0, 0x7a, 0x33, 0xdf, 0x4f, 0xd8, 0x05, 0x09, 0x38,
-       0x3f, 0xed, 0x2f, 0x65, 0x93, 0xd6, 0xfc, 0xb6, 0x91, 0xcf, 0x80, 0xef,
-       0x03, 0x24, 0x96, 0x0a, 0x02, 0xbe, 0x18, 0xa5, 0x8c, 0xd2, 0xd8, 0xd7,
-       0x3f, 0x89, 0xca, 0x61, 0x57, 0x2a, 0xa5, 0x03, 0x62, 0x75, 0xb5, 0x68,
-       0x8d, 0x4e, 0xdc, 0x6a, 0x7c, 0xe6, 0x67, 0xfd, 0x67, 0xc2, 0xf7, 0x5e,
-       0x69, 0xd7, 0xb8, 0x34, 0xec, 0x0c, 0xee, 0x39, 0xd4, 0x34, 0xb7, 0x87,
-       0xfd, 0xfb, 0x78, 0xdd, 0x91, 0x02, 0xf8, 0x67, 0xae, 0x0c, 0x26, 0x0f,
-       0xfc, 0xb6, 0xc6, 0x98, 0xe3, 0x61, 0x0c, 0x6f, 0x38, 0x3e, 0x8f, 0x39,
-       0x16, 0xec, 0x31, 0xc6, 0xcd, 0x30, 0x46, 0x5f, 0xd3, 0x18, 0x13, 0xfe,
-       0x18, 0x59, 0x29, 0x5e, 0x99, 0xc0, 0x5e, 0x1b, 0x83, 0x7d, 0x4f, 0xda,
-       0xa7, 0xe5, 0x23, 0x22, 0x9d, 0x38, 0xf7, 0x72, 0x0a, 0x72, 0xf2, 0xbc,
-       0x49, 0x77, 0x1a, 0xf3, 0x7e, 0x0d, 0xb6, 0x35, 0xe0, 0x3c, 0xc5, 0x58,
-       0x18, 0x36, 0xec, 0xf3, 0x2e, 0xe3, 0x62, 0x05, 0x30, 0xb2, 0x84, 0x6d,
-       0x85, 0x86, 0x53, 0x35, 0xf0, 0xba, 0x2a, 0x2c, 0x69, 0xd1, 0xe1, 0x7b,
-       0x76, 0x48, 0xd1, 0x0e, 0x8d, 0x87, 0xc1, 0x6b, 0xb2, 0x65, 0xee, 0x23,
-       0x19, 0x0a, 0x8f, 0xb5, 0x82, 0x8b, 0x7a, 0xf2, 0x36, 0xa0, 0xa6, 0x58,
-       0x5a, 0x92, 0xfa, 0x86, 0x8d, 0xe3, 0x05, 0xc8, 0xe1, 0x45, 0xfc, 0x7f,
-       0x3e, 0xaa, 0x75, 0x4a, 0xe0, 0xeb, 0x8b, 0x78, 0x1f, 0xf2, 0x19, 0xf2,
-       0x88, 0x1a, 0xec, 0xad, 0x05, 0x5b, 0x03, 0x5e, 0x35, 0x4a, 0xde, 0xf5,
-       0xdc, 0xda, 0x4d, 0x79, 0x73, 0x35, 0x81, 0x67, 0xd1, 0x2e, 0x9f, 0x21,
-       0x1e, 0xd8, 0x0b, 0x69, 0x9c, 0x5b, 0x37, 0xdc, 0xb7, 0xb8, 0x85, 0x0d,
-       0xd4, 0x05, 0x8e, 0x00, 0x8e, 0xbd, 0x0d, 0x0c, 0x2c, 0xe2, 0xfe, 0xfa,
-       0x6a, 0x44, 0xd6, 0x1c, 0xf2, 0x22, 0x89, 0x67, 0x71, 0x6f, 0x7d, 0x7d,
-       0xb1, 0xd7, 0xe4, 0x51, 0xd8, 0x7f, 0x42, 0x0a, 0xe0, 0x75, 0xa7, 0xb5,
-       0xef, 0xad, 0xe4, 0xcc, 0x39, 0x35, 0xfa, 0x77, 0xb3, 0x52, 0xe7, 0x7e,
-       0xd2, 0xdc, 0x03, 0xb9, 0xc1, 0x65, 0xe8, 0x2c, 0x39, 0x3b, 0xfd, 0x00,
-       0xfc, 0xdf, 0xe0, 0x75, 0xbe, 0x3b, 0x8e, 0xd5, 0x24, 0xd6, 0x86, 0xfb,
-       0xbe, 0x10, 0x9a, 0x3e, 0x0e, 0x3b, 0x6a, 0x71, 0xaf, 0x17, 0x15, 0x0b,
-       0x8a, 0xcb, 0xb3, 0xb0, 0x29, 0xac, 0xb5, 0xe8, 0x83, 0x2e, 0x3e, 0x08,
-       0x59, 0xa6, 0x71, 0x5f, 0x93, 0x2d, 0xd9, 0x2c, 0x2a, 0x2f, 0xb3, 0x5e,
-       0x32, 0xb8, 0x66, 0xd5, 0xc0, 0xd1, 0xb0, 0x7f, 0xac, 0x4d, 0xe8, 0x16,
-       0xf6, 0x90, 0xb5, 0x19, 0xc5, 0x11, 0x78, 0xbc, 0x09, 0xbf, 0x02, 0xf8,
-       0x66, 0x6d, 0xc2, 0x27, 0x00, 0xbe, 0x59, 0x9b, 0x29, 0x1c, 0x81, 0xf1,
-       0x9b, 0x01, 0xae, 0x71, 0xfc, 0x94, 0xe6, 0xe1, 0x0d, 0xbe, 0x90, 0x4b,
-       0x12, 0x5f, 0x02, 0x3e, 0x69, 0x74, 0xe1, 0xeb, 0xcb, 0xc4, 0x10, 0xea,
-       0x75, 0x12, 0xb8, 0x45, 0x5d, 0x30, 0x5c, 0x72, 0xbd, 0x62, 0xd6, 0x6c,
-       0x7e, 0xeb, 0x9a, 0xda, 0x88, 0x29, 0x71, 0xa0, 0x63, 0x5c, 0x3b, 0x5c,
-       0x53, 0x1b, 0xf0, 0xba, 0x64, 0xf4, 0xc8, 0x35, 0xfb, 0xb9, 0x64, 0xd6,
-       0x53, 0xf2, 0x0d, 0xc5, 0xad, 0x00, 0xb3, 0xc8, 0x21, 0x63, 0x58, 0x3f,
-       0x47, 0x9e, 0xff, 0xf6, 0x4d, 0xc9, 0x7e, 0x87, 0xb8, 0x35, 0x1c, 0x6b,
-       0x0f, 0x11, 0xab, 0x3c, 0xd9, 0x80, 0x6d, 0x3a, 0xed, 0x26, 0x1e, 0x65,
-       0xfd, 0x66, 0x1e, 0xba, 0xd2, 0x7a, 0x32, 0xe1, 0xc6, 0x43, 0xc9, 0x47,
-       0xdb, 0x43, 0xb4, 0x8d, 0xc3, 0xf6, 0x45, 0x39, 0xe5, 0xc7, 0xa3, 0x0e,
-       0xc8, 0x45, 0xe5, 0xfe, 0x2c, 0xcf, 0x78, 0x57, 0x73, 0x23, 0xef, 0xa4,
-       0xb9, 0xd6, 0x68, 0x6f, 0x6a, 0xdc, 0xa8, 0xed, 0x9d, 0x74, 0x8b, 0x14,
-       0x7b, 0x3c, 0xef, 0xc2, 0xc9, 0xb7, 0xa2, 0x26, 0xce, 0xd5, 0x7f, 0xd4,
-       0x60, 0x01, 0x00, 0x4c, 0xdb, 0x9f, 0xc0, 0x91, 0xba, 0x4d, 0x7b, 0x4b,
-       0xfb, 0x48, 0xb9, 0xe1, 0xb8, 0xce, 0xff, 0xb4, 0xbd, 0x4b, 0xb0, 0xbd,
-       0xb4, 0x97, 0x47, 0x24, 0xc7, 0x9c, 0x9c, 0xa5, 0xe7, 0x0b, 0x86, 0x4b,
-       0xfb, 0xf7, 0x55, 0xf2, 0x32, 0x5f, 0x21, 0x87, 0xaa, 0xc3, 0x96, 0xb1,
-       0xf6, 0x91, 0x36, 0x6d, 0x0e, 0xf6, 0x9c, 0xb9, 0x5a, 0x5c, 0xab, 0xb2,
-       0x5f, 0x22, 0x15, 0xb7, 0xf0, 0xce, 0x3b, 0x3a, 0x55, 0x82, 0xfe, 0x51,
-       0x9f, 0x20, 0xf7, 0x17, 0xe8, 0x5b, 0x0c, 0xa9, 0x8e, 0x64, 0x7f, 0xc0,
-       0xb5, 0xf7, 0xbc, 0x33, 0x2e, 0xd4, 0xb0, 0xd3, 0xec, 0x01, 0xf2, 0x80,
-       0x8f, 0x63, 0x5d, 0xa6, 0xdc, 0x9b, 0xb4, 0xdd, 0x7f, 0xb7, 0x9c, 0xe1,
-       0xd4, 0xc5, 0x10, 0xf7, 0x36, 0xda, 0xeb, 0x61, 0xa9, 0x46, 0xf9, 0xfe,
-       0x58, 0xaf, 0x10, 0xf7, 0xce, 0x7e, 0xeb, 0xd0, 0xbc, 0x06, 0x59, 0xac,
-       0x01, 0xd7, 0x32, 0x58, 0x03, 0xfe, 0x9f, 0x80, 0xbc, 0xe8, 0x33, 0x10,
-       0x87, 0xf1, 0x7f, 0xcb, 0x3c, 0x9b, 0x75, 0x99, 0xbb, 0x73, 0xe6, 0x7c,
-       0x29, 0xd3, 0xd7, 0x25, 0xa7, 0xf2, 0x5d, 0x92, 0x5c, 0xe5, 0x75, 0x99,
-       0xac, 0x2c, 0xc9, 0x03, 0xce, 0x38, 0xde, 0xf7, 0x86, 0x37, 0xeb, 0xa8,
-       0xaf, 0x32, 0x3a, 0x83, 0x67, 0xcf, 0x8e, 0xf4, 0xc9, 0x9f, 0x5d, 0x47,
-       0x16, 0xd7, 0x6c, 0xc9, 0xdb, 0x69, 0x79, 0x5e, 0x63, 0xf9, 0xf4, 0x4f,
-       0x42, 0xe0, 0xa4, 0xcc, 0xc9, 0xb7, 0x89, 0xf4, 0x38, 0xb1, 0x6d, 0x21,
-       0xa7, 0x6c, 0x81, 0xac, 0xe3, 0x86, 0x37, 0xdb, 0xe6, 0xfa, 0xb1, 0x17,
-       0xc0, 0xdd, 0xdd, 0xb7, 0x7a, 0x83, 0xf8, 0xb0, 0xe1, 0xb7, 0x7f, 0xf0,
-       0xf3, 0x62, 0x69, 0xa9, 0x30, 0x07, 0xa7, 0x38, 0xeb, 0x40, 0x97, 0x98,
-       0xc3, 0x8f, 0x69, 0xdc, 0xa1, 0xa5, 0x4c, 0x8c, 0xba, 0x0a, 0x8c, 0x1a,
-       0x25, 0x76, 0x8d, 0xaf, 0xb9, 0x8c, 0x0b, 0x44, 0xe5, 0xb7, 0x25, 0xe2,
-       0x70, 0x5c, 0x7e, 0x53, 0x7a, 0x16, 0xf3, 0x49, 0x54, 0x19, 0xcf, 0xbc,
-       0x5e, 0x29, 0x90, 0x27, 0x29, 0x9f, 0xcf, 0xba, 0x5f, 0x54, 0x3b, 0x10,
-       0xb7, 0x8a, 0xdd, 0x2d, 0x8a, 0x37, 0x4f, 0x6b, 0x1e, 0x36, 0x6e, 0x0d,
-       0xc8, 0xf5, 0x55, 0xbe, 0x6f, 0x0a, 0x63, 0x47, 0x43, 0xb9, 0x75, 0xda,
-       0xa5, 0x64, 0x6c, 0xc6, 0x3a, 0x20, 0x17, 0xa2, 0x8c, 0x53, 0x8f, 0x11,
-       0x9f, 0x61, 0x0b, 0x87, 0xed, 0x19, 0xd6, 0x38, 0xa9, 0xfd, 0x89, 0x35,
-       0xe1, 0xec, 0xd3, 0x3e, 0xce, 0xf2, 0xda, 0x18, 0x64, 0x4a, 0x5b, 0x94,
-       0xa8, 0x4c, 0x58, 0x49, 0xd8, 0x3c, 0xfc, 0xdf, 0xe0, 0xf8, 0x71, 0xf9,
-       0xc2, 0xc6, 0x45, 0xf0, 0xef, 0x61, 0xfb, 0x1c, 0xed, 0xaa, 0x3d, 0x8a,
-       0x7b, 0xf9, 0xfc, 0x0f, 0x34, 0x8d, 0xf5, 0x69, 0x7f, 0x2c, 0x5e, 0xc7,
-       0x3e, 0x2f, 0x3b, 0x32, 0x5b, 0x62, 0x2e, 0xda, 0xcc, 0x75, 0xef, 0xbd,
-       0x67, 0x77, 0x9e, 0xbb, 0xb0, 0x4c, 0x7e, 0x63, 0xea, 0xdc, 0x8a, 0xe0,
-       0x42, 0x9f, 0xec, 0xe2, 0x33, 0xf9, 0xbc, 0xc3, 0x92, 0x7d, 0x04, 0xf8,
-       0x52, 0xe6, 0xaf, 0xe0, 0xd7, 0xde, 0xc2, 0x5f, 0x89, 0xf6, 0xef, 0x63,
-       0x9b, 0xee, 0xf3, 0xc7, 0xfb, 0x3d, 0x74, 0x28, 0xda, 0x70, 0x3f, 0x63,
-       0x2a, 0x6c, 0xc7, 0xa5, 0xb0, 0xc1, 0xa3, 0xe7, 0x75, 0x39, 0xad, 0x72,
-       0xce, 0xbe, 0xbd, 0x69, 0x8c, 0x13, 0x38, 0x67, 0x38, 0x41, 0xb8, 0x1c,
-       0xf2, 0xb9, 0xc5, 0x9d, 0xe4, 0x4d, 0xfe, 0xff, 0x36, 0x8d, 0xc5, 0xc4,
-       0xad, 0xfe, 0xa6, 0xf7, 0xb8, 0x73, 0xc7, 0x0e, 0xc7, 0x2d, 0x62, 0xe7,
-       0x8f, 0x71, 0x8d, 0x3a, 0xe4, 0x29, 0x8f, 0x8f, 0x80, 0xe7, 0xe7, 0x80,
-       0x05, 0x51, 0xe7, 0xb6, 0x18, 0x8b, 0x4d, 0xae, 0x2d, 0x9b, 0x7a, 0x54,
-       0x72, 0xe0, 0x6b, 0xfb, 0xe6, 0x6a, 0x53, 0xd0, 0x65, 0x8c, 0x7f, 0x90,
-       0xe3, 0x8f, 0xf8, 0xeb, 0x9c, 0x70, 0x0b, 0xd6, 0x87, 0x65, 0x66, 0xd5,
-       0xe8, 0x5f, 0xd6, 0x81, 0xee, 0x1d, 0x46, 0x7b, 0x9d, 0x36, 0xe1, 0xfd,
-       0xc6, 0x09, 0x6c, 0x43, 0x4a, 0x6d, 0xc3, 0xfc, 0x32, 0xf5, 0x93, 0x7a,
-       0x19, 0xe8, 0x63, 0x80, 0x79, 0xd4, 0x51, 0xe2, 0x6c, 0x5a, 0x5e, 0x58,
-       0xe6, 0xda, 0x64, 0x34, 0xa7, 0x35, 0xb4, 0x32, 0xab, 0xf5, 0x3d, 0x83,
-       0xe5, 0xc4, 0x8b, 0x05, 0x19, 0x97, 0xab, 0x2e, 0xd7, 0x2c, 0x51, 0xcd,
-       0x87, 0x3b, 0x1a, 0xde, 0xff, 0x9c, 0xbf, 0x66, 0x29, 0xd5, 0xab, 0xc1,
-       0xf2, 0xe5, 0x1d, 0x79, 0xe7, 0xad, 0xc3, 0x4d, 0xeb, 0x14, 0x70, 0xb8,
-       0xb8, 0x90, 0x3f, 0x44, 0xba, 0xd8, 0x87, 0xcf, 0x25, 0xe7, 0xe3, 0xb3,
-       0x68, 0x5b, 0xef, 0x60, 0x3d, 0x83, 0xd0, 0x8f, 0x8b, 0x3c, 0x62, 0xb8,
-       0x45, 0xde, 0x7a, 0x18, 0xeb, 0x76, 0x50, 0xeb, 0x28, 0xe7, 0xbf, 0xfb,
-       0x1e, 0xfa, 0xe7, 0x7d, 0x7e, 0x9e, 0xc6, 0x78, 0x7c, 0x77, 0xee, 0xa9,
-       0xd2, 0x49, 0xea, 0xe6, 0xa4, 0xe6, 0x03, 0xd9, 0x87, 0xfb, 0x96, 0x6b,
-       0x44, 0x39, 0x5c, 0x8e, 0x19, 0x7b, 0x7a, 0xa2, 0x69, 0x3e, 0x49, 0x7f,
-       0x3e, 0xc1, 0xf5, 0x16, 0x89, 0xf4, 0xa6, 0xb4, 0x96, 0x24, 0x59, 0xa6,
-       0x8f, 0x02, 0x5b, 0x35, 0xcd, 0xb1, 0x6e, 0x8d, 0xbd, 0xf9, 0xff, 0x13,
-       0x7b, 0xf3, 0x56, 0x49, 0xe7, 0xd8, 0xe2, 0xfc, 0x2f, 0x72, 0x6c, 0xac,
-       0xa7, 0x37, 0x72, 0x7b, 0x6e, 0x99, 0xf6, 0x29, 0xa3, 0xb1, 0xe3, 0x3f,
-       0x95, 0xb8, 0x96, 0x9c, 0xe3, 0x55, 0xce, 0x71, 0xbc, 0xae, 0xb5, 0x74,
-       0x0f, 0xe9, 0x9e, 0x5d, 0x5c, 0x26, 0xa6, 0x74, 0xc8, 0x5a, 0x25, 0xc0,
-       0x95, 0x07, 0x7c, 0x4e, 0x5b, 0xec, 0x6e, 0xc5, 0x3e, 0x39, 0xe3, 0x5a,
-       0x5a, 0x47, 0x68, 0x3d, 0xcc, 0x73, 0x03, 0x52, 0x5b, 0xa5, 0x9d, 0x4d,
-       0xc2, 0xaf, 0x88, 0x86, 0x6a, 0xeb, 0xcc, 0x45, 0xb2, 0x4e, 0x64, 0x5c,
-       0x98, 0xbb, 0xcf, 0xd9, 0xf3, 0xd8, 0x5f, 0x31, 0xf8, 0xfd, 0xe4, 0xf0,
-       0x8c, 0x8f, 0x35, 0xcb, 0x7b, 0x74, 0x87, 0x03, 0xee, 0x95, 0xf3, 0x2f,
-       0xb0, 0xde, 0xd4, 0x6b, 0xc7, 0xbe, 0x0e, 0x3b, 0x99, 0x8b, 0xf2, 0xff,
-       0x0c, 0xb8, 0x3f, 0x7d, 0x8d, 0xb8, 0xfa, 0x1a, 0xb5, 0x6a, 0x46, 0x96,
-       0x54, 0xf7, 0x3b, 0xfc, 0x58, 0x52, 0x87, 0xea, 0x07, 0x75, 0x2c, 0xaf,
-       0x9c, 0x7b, 0x54, 0x71, 0xaa, 0x58, 0x1a, 0x36, 0x75, 0x26, 0x76, 0xcc,
-       0xaf, 0x27, 0x6f, 0x7c, 0x7e, 0xcc, 0x7f, 0xfe, 0x5f, 0x7c, 0xf9, 0xda,
-       0x8a, 0x31, 0xba, 0xd6, 0x56, 0x52, 0x7d, 0xcb, 0xf9, 0x65, 0xea, 0x07,
-       0xf5, 0x84, 0x38, 0x17, 0xdc, 0x17, 0xc8, 0x24, 0x68, 0xf3, 0x7e, 0xea,
-       0x7c, 0x63, 0x4d, 0x41, 0xb0, 0x3f, 0x83, 0x73, 0x81, 0x8c, 0x78, 0xad,
-       0xd1, 0x0e, 0x70, 0xaf, 0xc5, 0x21, 0xa7, 0xdd, 0xfd, 0xd6, 0x55, 0xde,
-       0x95, 0x4d, 0xf6, 0x14, 0xe7, 0x7f, 0x99, 0x71, 0x5c, 0xec, 0xb1, 0xfd,
-       0xe4, 0xf3, 0x65, 0x95, 0x4f, 0x1e, 0xf2, 0xe9, 0x52, 0xdc, 0xa7, 0x8f,
-       0x77, 0xc9, 0xd7, 0xb9, 0x0e, 0xac, 0x19, 0xe3, 0xb2, 0xc0, 0xb7, 0xf3,
-       0xc4, 0xf9, 0xbe, 0x3e, 0xe2, 0x0b, 0x63, 0x8a, 0x99, 0xe9, 0x43, 0xc0,
-       0x30, 0xb6, 0x8f, 0x2b, 0x07, 0x31, 0x3e, 0x56, 0x5c, 0x63, 0x8b, 0x61,
-       0x60, 0x72, 0xad, 0x04, 0x7e, 0xc6, 0xba, 0xaf, 0x3d, 0xf2, 0x7a, 0xca,
-       0x5f, 0xaf, 0x89, 0x3e, 0xca, 0x87, 0xfb, 0x80, 0x58, 0xd9, 0x89, 0xf1,
-       0xce, 0x46, 0x53, 0xd0, 0xb1, 0x71, 0x9c, 0x1f, 0x52, 0x1f, 0x22, 0x8c,
-       0x7d, 0xbe, 0x5d, 0xea, 0xf5, 0xfd, 0x36, 0x07, 0x6d, 0xf8, 0xaa, 0xa5,
-       0x2e, 0xfa, 0x11, 0x1a, 0x47, 0x6c, 0x2d, 0xc3, 0x67, 0x05, 0x76, 0xd7,
-       0xd5, 0x06, 0x8d, 0xe0, 0xfa, 0x6d, 0xac, 0x89, 0xd3, 0xda, 0xe0, 0x6d,
-       0x95, 0x19, 0x7d, 0xcd, 0x63, 0xba, 0xa6, 0xb5, 0x52, 0x22, 0xf6, 0xb8,
-       0xf8, 0xe7, 0xa6, 0xf9, 0xdc, 0xc1, 0x86, 0x79, 0x4d, 0xca, 0xd9, 0x1d,
-       0x1b, 0x41, 0xdf, 0x19, 0xbc, 0xbd, 0x62, 0x6c, 0x40, 0xb1, 0x9a, 0xd2,
-       0xfa, 0xa5, 0xf0, 0xd8, 0x06, 0xd6, 0x92, 0x3c, 0xf4, 0x06, 0xb8, 0xf7,
-       0x08, 0xd6, 0x90, 0x5c, 0xdb, 0x9b, 0x5b, 0x70, 0x33, 0xcc, 0x85, 0xc1,
-       0x86, 0xcd, 0x49, 0x0e, 0xbe, 0x40, 0x2e, 0x7c, 0x98, 0x31, 0x64, 0xf0,
-       0xc1, 0x82, 0x1f, 0x6f, 0x1c, 0x61, 0x9c, 0x54, 0x56, 0xd6, 0x39, 0x77,
-       0xee, 0x6f, 0xe3, 0x6f, 0xd7, 0x4a, 0x9c, 0xaf, 0x89, 0x3d, 0xb0, 0x6d,
-       0x95, 0x5d, 0x1c, 0xb9, 0x16, 0x69, 0x1c, 0xef, 0xc5, 0x9e, 0xe0, 0xbd,
-       0x38, 0xae, 0xdf, 0x90, 0x5f, 0xad, 0x06, 0xf6, 0x3c, 0x24, 0x6f, 0x3a,
-       0xde, 0xdc, 0xbc, 0xdb, 0xcd, 0x35, 0x70, 0x0b, 0xcc, 0x65, 0x3b, 0x8e,
-       0x5b, 0x14, 0xcf, 0xab, 0xbb, 0xf5, 0x6e, 0x4b, 0x65, 0x49, 0x0c, 0xf8,
-       0x1a, 0xd6, 0xf0, 0x8d, 0xbb, 0x2d, 0x31, 0xf2, 0xa3, 0x6c, 0xae, 0xfd,
-       0x57, 0xfc, 0x0f, 0x30, 0x90, 0xfa, 0x48, 0xbd, 0xbc, 0x21, 0x53, 0x8a,
-       0xf9, 0xfb, 0xf5, 0x6b, 0xc4, 0x89, 0x80, 0xd3, 0x12, 0xd3, 0xa9, 0x8b,
-       0x31, 0xf5, 0x09, 0x8e, 0x95, 0x9b, 0x71, 0xe1, 0x33, 0x7e, 0x0e, 0x61,
-       0x3f, 0xdd, 0x7b, 0xd4, 0xc7, 0x86, 0x31, 0xe5, 0xcb, 0x19, 0x9b, 0x18,
-       0xc1, 0xf9, 0x1c, 0x94, 0xd9, 0x2b, 0x8d, 0x38, 0x4c, 0x5f, 0xcf, 0xe0,
-       0x87, 0x7e, 0xe3, 0xa1, 0xfc, 0xd7, 0x92, 0xc1, 0x15, 0xf2, 0x25, 0x07,
-       0x58, 0xda, 0x23, 0xf9, 0xe9, 0xb0, 0x24, 0x57, 0x7e, 0xd6, 0x67, 0xf8,
-       0x2d, 0xf5, 0x0f, 0xfb, 0x4d, 0xcf, 0xb1, 0x5d, 0xc7, 0xf9, 0x23, 0xc2,
-       0x67, 0x1b, 0x7d, 0xc6, 0x7e, 0x3e, 0x1f, 0x5c, 0xb3, 0x9b, 0x74, 0xf4,
-       0x5e, 0x5f, 0x47, 0x79, 0xdd, 0x32, 0xb9, 0x0e, 0xdc, 0x3b, 0xb8, 0xc2,
-       0x39, 0x9a, 0x7e, 0x83, 0x2b, 0xc6, 0x47, 0xdf, 0xdb, 0x6f, 0x64, 0xa7,
-       0x1f, 0xae, 0x83, 0xef, 0x9a, 0xb1, 0xa7, 0x46, 0xc1, 0xe3, 0x46, 0x58,
-       0x83, 0x44, 0x9b, 0x3d, 0xe4, 0x4e, 0x09, 0xf5, 0x3d, 0xe1, 0xeb, 0x1c,
-       0xf1, 0xa6, 0xcb, 0xc7, 0x9b, 0x5d, 0x1b, 0x93, 0x33, 0x35, 0x27, 0x8c,
-       0x83, 0x34, 0xd8, 0x18, 0xe9, 0xff, 0x4f, 0x1b, 0x73, 0xc4, 0x1f, 0x27,
-       0xb8, 0x16, 0xe0, 0x4a, 0xd0, 0x0e, 0x70, 0xa5, 0x99, 0xc7, 0x06, 0xb2,
-       0x6f, 0x3c, 0xdf, 0xe8, 0xe7, 0x65, 0x7c, 0x7f, 0xde, 0xd2, 0xfd, 0xf3,
-       0xca, 0x8e, 0x1f, 0x4f, 0x19, 0x27, 0xa0, 0x7a, 0x25, 0xec, 0xed, 0xf7,
-       0xd4, 0x6f, 0x5e, 0xbc, 0x32, 0xa1, 0xb1, 0x9c, 0x9a, 0xca, 0xfa, 0xab,
-       0x58, 0x9f, 0x33, 0xd8, 0x47, 0x0f, 0x46, 0x77, 0xeb, 0x86, 0x56, 0x9f,
-       0xc9, 0xfa, 0xbc, 0x25, 0x23, 0x5d, 0x98, 0x5f, 0x5a, 0xeb, 0xb0, 0xda,
-       0x9d, 0xaf, 0xc8, 0x03, 0x66, 0xee, 0x6d, 0x6d, 0x63, 0xeb, 0xcf, 0xb4,
-       0x7d, 0x2b, 0xd0, 0x73, 0xea, 0xcf, 0xea, 0x33, 0xb3, 0x15, 0x6f, 0x3c,
-       0x72, 0x72, 0xd8, 0x2e, 0x0a, 0x6b, 0xbd, 0xc7, 0xe5, 0x09, 0x97, 0xd7,
-       0x7f, 0x88, 0xeb, 0xd3, 0xf4, 0x21, 0x13, 0x11, 0xfd, 0xfe, 0x20, 0x11,
-       0x7b, 0x0c, 0x7b, 0x6f, 0x46, 0xbf, 0xf7, 0x38, 0xa4, 0x35, 0xe2, 0x35,
-       0x21, 0x97, 0x62, 0x8d, 0xc1, 0xb3, 0xf2, 0xb8, 0x3b, 0xe4, 0xd6, 0xc5,
-       0x70, 0xdc, 0x19, 0xcd, 0xf7, 0x1c, 0x90, 0xc7, 0xdc, 0x48, 0x5b, 0x76,
-       0xcb, 0xe8, 0xfc, 0x44, 0x38, 0xd3, 0xbe, 0xe0, 0x44, 0xdb, 0xa6, 0xb6,
-       0xb0, 0xa7, 0xb7, 0x80, 0xf7, 0x5b, 0xb1, 0x50, 0x6e, 0x83, 0xef, 0x1e,
-       0x36, 0x35, 0x1d, 0xea, 0x5f, 0x11, 0x43, 0xee, 0x93, 0x6d, 0xfb, 0xb8,
-       0x6c, 0xa7, 0xf8, 0x4d, 0xd6, 0x29, 0xb4, 0x07, 0x35, 0xe7, 0xb2, 0x0d,
-       0xbc, 0xd9, 0x4e, 0xb5, 0xa9, 0x0e, 0xaa, 0x1f, 0x06, 0x9c, 0xda, 0xb6,
-       0x89, 0x4f, 0x77, 0xf0, 0x88, 0x77, 0x9e, 0x83, 0x1c, 0x58, 0xef, 0x71,
-       0x02, 0x6d, 0xe2, 0x9a, 0xdd, 0x74, 0xbe, 0x1f, 0xed, 0xbb, 0x31, 0x46,
-       0xab, 0xbe, 0xa3, 0xe5, 0x9c, 0x34, 0x79, 0xcc, 0x3d, 0xf7, 0x74, 0x36,
-       0xb5, 0x3f, 0x77, 0xd4, 0x7c, 0x6f, 0xf4, 0x3d, 0xca, 0xb8, 0x90, 0x91,
-       0xbf, 0xc5, 0xf6, 0xb6, 0x97, 0xfb, 0xf6, 0xb6, 0x0f, 0x4b, 0x7b, 0x0f,
-       0x45, 0xd1, 0xdd, 0x74, 0x5f, 0xa0, 0x43, 0x41, 0xfb, 0x28, 0x71, 0x85,
-       0x76, 0x4b, 0x7d, 0xa6, 0xed, 0x28, 0x9f, 0xb5, 0xd8, 0xd4, 0x87, 0xff,
-       0xd9, 0x87, 0x7d, 0x19, 0xbf, 0xfb, 0xbe, 0xd1, 0x33, 0x8b, 0xbe, 0x3f,
-       0xe3, 0x17, 0xd4, 0xd3, 0xfd, 0xfc, 0xa9, 0x84, 0x7e, 0x1f, 0xb4, 0xbf,
-       0xae, 0x05, 0x38, 0x12, 0xf3, 0x63, 0x0a, 0x26, 0xef, 0x64, 0xe2, 0xbe,
-       0x94, 0x9d, 0xe6, 0x9d, 0x62, 0xd7, 0x21, 0xe7, 0x0b, 0x90, 0xf3, 0x64,
-       0x98, 0xbe, 0x1f, 0xf3, 0x4b, 0x8e, 0xe4, 0xb6, 0x28, 0x6f, 0xda, 0x75,
-       0xea, 0x26, 0x78, 0xc4, 0x16, 0x31, 0xc5, 0x02, 0x07, 0xca, 0x60, 0x8e,
-       0xaf, 0xe1, 0xbc, 0xe5, 0xd7, 0x6f, 0xa4, 0x61, 0xd3, 0x5c, 0xfc, 0x28,
-       0x77, 0xf8, 0xf4, 0x6b, 0x94, 0x31, 0xeb, 0xd9, 0x18, 0x0b, 0xe0, 0xfc,
-       0x98, 0x63, 0x77, 0xa1, 0xd3, 0x13, 0xd0, 0xdd, 0x88, 0x38, 0xe5, 0x13,
-       0x52, 0x98, 0x9e, 0x50, 0xfb, 0x3f, 0x08, 0xfb, 0x34, 0xef, 0x66, 0x65,
-       0xe1, 0xe5, 0x3b, 0xb1, 0x4f, 0xe9, 0xe7, 0x6b, 0x0c, 0xc3, 0x6b, 0x51,
-       0x9d, 0x26, 0xe7, 0x60, 0xdc, 0xcd, 0xe4, 0x92, 0xfd, 0xef, 0xaa, 0xfa,
-       0xe5, 0x70, 0x56, 0x2a, 0x57, 0x6c, 0xad, 0x85, 0xc9, 0xc8, 0x7b, 0x1e,
-       0x65, 0x38, 0x73, 0x3e, 0x0e, 0x9c, 0x22, 0x77, 0xff, 0x60, 0xd4, 0xac,
-       0xe9, 0x5f, 0xfb, 0xe9, 0x03, 0x27, 0xcb, 0x8d, 0x63, 0x68, 0xfd, 0x0c,
-       0xae, 0x3d, 0x74, 0xd4, 0xec, 0x1f, 0xfa, 0xc3, 0x37, 0xbd, 0x4c, 0x94,
-       0xcf, 0xe4, 0xbd, 0xcc, 0xd1, 0x52, 0x57, 0x38, 0xb7, 0x77, 0x7d, 0xbd,
-       0xfe, 0x28, 0xc6, 0x8b, 0xcb, 0xe0, 0xe6, 0x84, 0xfa, 0xf1, 0xf3, 0x7b,
-       0x7c, 0x56, 0x13, 0x1f, 0x30, 0x7e, 0xeb, 0x1b, 0xf2, 0xd8, 0x06, 0xe5,
-       0x44, 0xfb, 0x1e, 0x92, 0x1f, 0x39, 0xc3, 0xf6, 0x93, 0x5a, 0x77, 0x9c,
-       0xc8, 0x30, 0x1f, 0x73, 0xd0, 0x49, 0xda, 0x6b, 0x12, 0x19, 0xfd, 0x98,
-       0xf0, 0x9b, 0x16, 0xd6, 0x7a, 0x0c, 0xbb, 0x4f, 0x4a, 0x50, 0xef, 0x31,
-       0x94, 0x39, 0x10, 0xfa, 0xa7, 0xf7, 0xc6, 0x79, 0xde, 0x63, 0xea, 0x3d,
-       0x24, 0x44, 0xb9, 0xfd, 0xf1, 0x0e, 0x7e, 0xe3, 0xb9, 0x37, 0xde, 0x77,
-       0xff, 0xd3, 0xe7, 0xd2, 0x89, 0x25, 0xfa, 0xac, 0x2d, 0xce, 0xbf, 0xfa,
-       0xcd, 0xbb, 0x16, 0x0a, 0x9d, 0xa2, 0xf9, 0xb2, 0x4b, 0xef, 0x38, 0xac,
-       0x7b, 0x48, 0xc4, 0x0e, 0x58, 0x8c, 0x7b, 0x13, 0xdf, 0x98, 0x43, 0x61,
-       0x8c, 0x0d, 0x6d, 0x70, 0x86, 0x97, 0x46, 0x2c, 0xb9, 0x3f, 0x92, 0x89,
-       0x5b, 0x72, 0x2c, 0xbe, 0x22, 0x78, 0x26, 0xf3, 0x29, 0x1b, 0x89, 0x02,
-       0xef, 0x8f, 0x94, 0x39, 0x5e, 0x5c, 0xfd, 0x93, 0xe4, 0x31, 0xcf, 0xbb,
-       0xe4, 0x4a, 0x28, 0x79, 0xd7, 0xdb, 0x1e, 0x73, 0xde, 0xd6, 0xe6, 0xfb,
-       0xd5, 0x23, 0x10, 0x37, 0x16, 0x9e, 0x32, 0xb5, 0x87, 0x4b, 0x97, 0x06,
-       0x37, 0xf4, 0x9b, 0xb9, 0x69, 0xd3, 0x2e, 0xa1, 0xdd, 0xea, 0xd7, 0x41,
-       0x55, 0x2e, 0x0d, 0x56, 0x8f, 0xdc, 0x6e, 0xfc, 0x6d, 0xf2, 0xab, 0xc0,
-       0x87, 0x89, 0xef, 0xa9, 0x0b, 0x3b, 0xbb, 0x7c, 0x26, 0x74, 0x66, 0xd9,
-       0x5a, 0x6d, 0x63, 0x0e, 0xec, 0x94, 0x27, 0xdd, 0x27, 0x83, 0x38, 0x15,
-       0xe3, 0x5a, 0x22, 0x9d, 0x9b, 0x13, 0x26, 0xe7, 0xb1, 0x69, 0x29, 0x17,
-       0xea, 0x7a, 0x89, 0xb1, 0xaa, 0xa8, 0x62, 0x43, 0xf7, 0x26, 0xeb, 0xc1,
-       0x7a, 0x64, 0x46, 0x31, 0xa3, 0x47, 0xf1, 0xc0, 0xe8, 0x5d, 0x97, 0xc6,
-       0x61, 0xc9, 0x97, 0xae, 0x2d, 0xbb, 0x03, 0xac, 0xe1, 0x79, 0x75, 0xf9,
-       0x09, 0xb4, 0x89, 0x33, 0xf7, 0x34, 0x9d, 0x6f, 0xcc, 0xc9, 0x26, 0xec,
-       0x41, 0xab, 0x39, 0x1f, 0xcb, 0x73, 0xcd, 0x79, 0xd8, 0x57, 0x25, 0xdf,
-       0xcb, 0xdc, 0x6b, 0x10, 0x6f, 0x77, 0xfd, 0x78, 0xfb, 0x87, 0x06, 0xa8,
-       0x83, 0xf0, 0x6f, 0xf2, 0x91, 0xb1, 0xb6, 0x91, 0xf9, 0x52, 0xf8, 0x1f,
-       0xbb, 0xb1, 0x53, 0xb4, 0x37, 0x76, 0xf2, 0xe3, 0xb8, 0xf6, 0x25, 0x70,
-       0x92, 0x22, 0xf8, 0x45, 0xc1, 0xaf, 0xc3, 0xe7, 0xf5, 0x9d, 0xfe, 0xb7,
-       0x98, 0xd3, 0x41, 0xcd, 0xad, 0x0f, 0xee, 0xc9, 0xad, 0xdf, 0x35, 0xc0,
-       0xda, 0xe3, 0xe2, 0xd6, 0x6e, 0xdf, 0x88, 0xdf, 0x77, 0xe2, 0x96, 0xef,
-       0x63, 0xf6, 0x4c, 0x51, 0xf7, 0xcc, 0x65, 0x8d, 0x11, 0xcf, 0x6f, 0x2d,
-       0xc9, 0x8c, 0xd3, 0x25, 0xb9, 0xd5, 0xc0, 0x4e, 0x78, 0xe3, 0xb3, 0x6e,
-       0xa1, 0x2f, 0x2c, 0xec, 0xcf, 0xe7, 0x29, 0x47, 0x8b, 0xe5, 0xc2, 0x1c,
-       0xff, 0x90, 0x44, 0xc6, 0x68, 0x3b, 0x68, 0x13, 0x3e, 0x05, 0x2c, 0x03,
-       0x4f, 0xdf, 0x6a, 0xcc, 0x7d, 0xbf, 0x9f, 0x1c, 0x29, 0xc3, 0xe0, 0x9d,
-       0x0b, 0x5e, 0x2b, 0xf6, 0xdf, 0x31, 0xd6, 0xb4, 0xec, 0xcc, 0x95, 0x36,
-       0x4b, 0x6d, 0x93, 0xbe, 0xc7, 0x94, 0xff, 0x1e, 0x61, 0xcc, 0x67, 0xb6,
-       0x14, 0xdc, 0x33, 0x27, 0xc7, 0x4f, 0x25, 0x62, 0x49, 0x4b, 0xe7, 0xa5,
-       0xf6, 0x2b, 0xeb, 0xce, 0xc1, 0x2e, 0xd1, 0x86, 0x29, 0xae, 0x81, 0xab,
-       0x12, 0xd7, 0x68, 0x9f, 0xd4, 0xa6, 0xc5, 0x8b, 0x98, 0x67, 0x6e, 0x4b,
-       0xf3, 0x0f, 0xb1, 0xd3, 0xe1, 0x44, 0x65, 0x46, 0xb1, 0x0e, 0x7c, 0x55,
-       0xe7, 0x0e, 0x7b, 0x1c, 0x6a, 0xcc, 0x2d, 0xd1, 0xbf, 0x64, 0x1e, 0xa6,
-       0x43, 0xb2, 0x15, 0x91, 0x57, 0xa0, 0xdf, 0x57, 0xd7, 0xb9, 0xe7, 0xc2,
-       0xbd, 0xc6, 0x47, 0xac, 0xdf, 0x63, 0x49, 0xaf, 0xe6, 0x6b, 0x8b, 0x58,
-       0x2f, 0xf0, 0xab, 0xf1, 0xf0, 0x29, 0xf8, 0x09, 0x5a, 0x27, 0xc1, 0x18,
-       0xeb, 0x2c, 0x7c, 0xca, 0xc6, 0xb8, 0x10, 0x30, 0x62, 0x9a, 0xe7, 0x67,
-       0xc0, 0x8b, 0x77, 0x73, 0x35, 0xc5, 0xea, 0x82, 0xc6, 0x63, 0x6b, 0xeb,
-       0x1d, 0x6a, 0x2f, 0x6a, 0xd5, 0x3e, 0xac, 0x8b, 0x1c, 0xb7, 0xc6, 0x8a,
-       0xfe, 0xf9, 0x16, 0xa9, 0x56, 0xd9, 0x96, 0x81, 0x56, 0xd5, 0x97, 0x20,
-       0x1f, 0x65, 0xcb, 0x1a, 0xb8, 0x6e, 0x75, 0xc3, 0xc1, 0x2f, 0x85, 0xdf,
-       0x08, 0x7e, 0x0f, 0x4a, 0xb6, 0x4c, 0xfe, 0xcd, 0xfc, 0x53, 0x47, 0xd3,
-       0xf3, 0x5b, 0xf4, 0xfb, 0x11, 0xd6, 0xb4, 0x15, 0x7d, 0x3f, 0xad, 0x58,
-       0xdd, 0x8f, 0x9b, 0x32, 0xbe, 0x9b, 0xf2, 0xb1, 0xee, 0xa7, 0x7e, 0x6d,
-       0xed, 0xbf, 0x01, 0x17, 0x24, 0x5e, 0x9d, 0xe0, 0x70, 0x00, 0x00, 0x00 };
-
-static const u32 bnx2_RXP_b06FwData[(0x0/4) + 1] = { 0x0 };
-static const u32 bnx2_RXP_b06FwRodata[(0x24/4) + 1] = {
-       0x08004c28, 0x08004c28, 0x08004ba0, 0x08004bd8, 0x08004c0c, 0x08004c30,
-       0x08004c30, 0x08004c30, 0x08004b10, 0x00000000 };
-
-static struct fw_info bnx2_rxp_fw_06 = {
-       /* Firmware version: 4.6.16 */
-       .ver_major                      = 0x4,
-       .ver_minor                      = 0x6,
-       .ver_fix                        = 0x10,
-
-       .start_addr                     = 0x080031d8,
-
-       .text_addr                      = 0x08000000,
-       .text_len                       = 0x70dc,
-       .text_index                     = 0x0,
-       .gz_text                        = bnx2_RXP_b06FwText,
-       .gz_text_len                    = sizeof(bnx2_RXP_b06FwText),
-
-       .data_addr                      = 0x00000000,
-       .data_len                       = 0x0,
-       .data_index                     = 0x0,
-       .data                           = bnx2_RXP_b06FwData,
-
-       .sbss_addr                      = 0x08007120,
-       .sbss_len                       = 0x54,
-       .sbss_index                     = 0x0,
-
-       .bss_addr                       = 0x08007178,
-       .bss_len                        = 0x450,
-       .bss_index                      = 0x0,
-
-       .rodata_addr                    = 0x080070dc,
-       .rodata_len                     = 0x24,
-       .rodata_index                   = 0x0,
-       .rodata                         = bnx2_RXP_b06FwRodata,
-};
-
 /* Initialized Values for the RX Processor. */
 static const struct cpu_reg cpu_reg_rxp = {
        .mode = BNX2_RXP_CPU_MODE,
@@ -2965,595 +55,6 @@ static const struct cpu_reg cpu_reg_rxp = {
        .mips_view_base = 0x8000000,
 };
 
-static u8 bnx2_rv2p_proc1[] = {
-       /* Date:        02/03/2009 14:20 */
-       0xa5, 0x56, 0x4f, 0x68, 0x14, 0x67, 0x14, 0x7f, 0x33, 0xbb, 0xb3, 0xb3,
-       0x99, 0x9d, 0xd9, 0xdd, 0x92, 0x18, 0x96, 0x18, 0xcc, 0x1a, 0x84, 0x92,
-       0x75, 0xb7, 0x6e, 0x6c, 0x0f, 0x42, 0x03, 0x29, 0xb9, 0x08, 0x35, 0x87,
-       0x12, 0x11, 0x8a, 0x2d, 0x68, 0xb7, 0x22, 0x14, 0x0a, 0xa5, 0x07, 0x8f,
-       0xa5, 0x83, 0x71, 0x53, 0x5a, 0xbc, 0xe4, 0xd0, 0x80, 0x42, 0x35, 0x27,
-       0x5b, 0x62, 0x0e, 0x3b, 0xe0, 0xa1, 0x88, 0xe0, 0x41, 0x8f, 0x7a, 0xaa,
-       0x7f, 0x5a, 0x28, 0x46, 0x29, 0xb5, 0x87, 0x82, 0xc7, 0xde, 0x9a, 0xe9,
-       0xf7, 0xfe, 0x7c, 0xbb, 0x33, 0x5f, 0x66, 0x13, 0xa1, 0x42, 0xfc, 0xf1,
-       0xbd, 0x79, 0xef, 0xfb, 0xde, 0x9f, 0xdf, 0x7b, 0x6f, 0xab, 0x00, 0x60,
-       0x43, 0x18, 0x4d, 0x29, 0x04, 0x2b, 0x67, 0x15, 0x11, 0x00, 0x36, 0x81,
-       0xff, 0x39, 0x3e, 0x9d, 0xc3, 0x23, 0x72, 0x3e, 0xcc, 0x10, 0x1e, 0xae,
-       0xaa, 0xff, 0x3f, 0x85, 0xf9, 0x3a, 0x62, 0x0e, 0xe6, 0x0f, 0x22, 0x1e,
-       0x85, 0xbb, 0xf5, 0x9a, 0xc2, 0x7f, 0x63, 0x08, 0xf1, 0x1c, 0xf4, 0x7e,
-       0x8e, 0x4a, 0x74, 0xff, 0x96, 0xd8, 0xff, 0x9a, 0x63, 0x3c, 0xd6, 0xac,
-       0x12, 0x3e, 0x5a, 0xc5, 0xf7, 0x4e, 0x9d, 0x82, 0x02, 0xda, 0x5d, 0x50,
-       0x17, 0x23, 0x96, 0xd4, 0x83, 0x45, 0xb2, 0x03, 0xbb, 0xa2, 0x70, 0x12,
-       0x9e, 0x2f, 0xa0, 0xfe, 0x1b, 0xde, 0xa5, 0x55, 0xc4, 0x12, 0x74, 0x9a,
-       0xa8, 0x77, 0x00, 0xb2, 0xf5, 0x6a, 0x4a, 0x0f, 0xe5, 0x11, 0x84, 0x4d,
-       0xc4, 0x11, 0x80, 0x56, 0xf2, 0x3d, 0xd7, 0x0a, 0x5b, 0x68, 0xff, 0x85,
-       0xbc, 0xb7, 0x4f, 0xee, 0x51, 0x71, 0x47, 0x88, 0x3d, 0xb1, 0x53, 0x7f,
-       0x2d, 0x96, 0xb3, 0xfe, 0x67, 0x4a, 0x4f, 0xc7, 0xe3, 0x73, 0xde, 0xa6,
-       0x38, 0x1e, 0x57, 0xe2, 0x79, 0xb6, 0xaa, 0xf3, 0x86, 0xfa, 0xbf, 0xc7,
-       0x69, 0x7d, 0xd8, 0x43, 0xff, 0x89, 0xd2, 0x4f, 0xdf, 0xcb, 0xf2, 0x5f,
-       0x06, 0xf2, 0x99, 0xf4, 0xf7, 0xad, 0x06, 0xfa, 0xe7, 0x00, 0x34, 0x24,
-       0x8f, 0xa4, 0xff, 0x30, 0xe6, 0x78, 0xe6, 0xe0, 0x90, 0x5d, 0x23, 0xbd,
-       0x3c, 0xd4, 0x28, 0x3f, 0x1c, 0xef, 0x01, 0xc1, 0x25, 0xc1, 0x6b, 0x82,
-       0x3f, 0x08, 0xc2, 0xff, 0xc4, 0xad, 0x21, 0xf2, 0x7d, 0x82, 0xfb, 0x0d,
-       0xf9, 0x2d, 0xc1, 0xb7, 0x0c, 0x7b, 0xcf, 0x62, 0x7c, 0xac, 0xbf, 0xcb,
-       0xf9, 0x5d, 0xc3, 0xfe, 0x4b, 0xe0, 0xfc, 0x58, 0x46, 0xde, 0x36, 0x85,
-       0x87, 0x58, 0x77, 0xf9, 0x3e, 0xa3, 0xf5, 0x84, 0x37, 0x8d, 0xa4, 0xfe,
-       0x8d, 0x5d, 0xf4, 0x59, 0x6d, 0x61, 0x26, 0xcb, 0xee, 0x7a, 0x2c, 0x79,
-       0x14, 0x7b, 0xaf, 0x77, 0x67, 0x08, 0xef, 0xe7, 0x32, 0x79, 0x3f, 0x2e,
-       0x71, 0xa8, 0xa6, 0x23, 0xfb, 0xdb, 0x16, 0xf3, 0xdb, 0x11, 0x5e, 0xee,
-       0xc6, 0x63, 0xe1, 0xd5, 0x8c, 0xe6, 0x57, 0x9a, 0x57, 0xcc, 0x8f, 0x82,
-       0xc1, 0x8f, 0x6f, 0xf7, 0xc8, 0x4b, 0xc9, 0x88, 0x6f, 0x39, 0xd6, 0xf9,
-       0xb6, 0x45, 0x7c, 0xb1, 0x50, 0xa5, 0x7b, 0xbf, 0x8b, 0xe8, 0x38, 0xe6,
-       0xaf, 0xe0, 0x39, 0x0f, 0x97, 0x23, 0x6d, 0x27, 0xfd, 0xd4, 0xd0, 0xef,
-       0xb0, 0x7d, 0x20, 0x9f, 0x6d, 0x47, 0xfb, 0xc9, 0x72, 0x0f, 0xf0, 0x3c,
-       0xda, 0x5b, 0x37, 0xf2, 0x56, 0xa7, 0xb8, 0x41, 0xe2, 0x07, 0x23, 0x7e,
-       0x9d, 0xbf, 0x57, 0xc2, 0xf7, 0x49, 0x95, 0x0f, 0xfe, 0x3e, 0x05, 0xfa,
-       0x7e, 0x9c, 0x0b, 0x45, 0x38, 0x7b, 0xbc, 0x42, 0xfe, 0x94, 0x0b, 0x7c,
-       0xcd, 0x87, 0x15, 0xc6, 0x73, 0x1e, 0xe3, 0x9f, 0x9e, 0xca, 0x2d, 0xc4,
-       0xf1, 0xf9, 0x12, 0x9f, 0x3f, 0x09, 0xf0, 0xde, 0x51, 0xf5, 0xb0, 0xb6,
-       0xd7, 0x7e, 0xed, 0xe6, 0x0f, 0xbe, 0xaf, 0xdf, 0xd1, 0x7e, 0xe8, 0xf7,
-       0xd2, 0x75, 0x19, 0xfe, 0x2e, 0x63, 0xc7, 0x4e, 0xe7, 0x21, 0x3f, 0xcb,
-       0x78, 0xb5, 0x4d, 0x50, 0x5b, 0xf3, 0xd9, 0xee, 0x8a, 0x9f, 0xc7, 0xf3,
-       0x3b, 0x57, 0x1e, 0xe0, 0xfd, 0xf6, 0xd1, 0xb5, 0x48, 0xfc, 0xab, 0xe8,
-       0xba, 0x92, 0x1c, 0xa6, 0x81, 0xcf, 0x4b, 0xc2, 0x93, 0x25, 0xe2, 0x71,
-       0x59, 0x7d, 0x42, 0x9c, 0x80, 0xd0, 0x26, 0x3d, 0xef, 0x3e, 0xd9, 0xe7,
-       0x44, 0xae, 0xea, 0x37, 0x9d, 0xe6, 0xff, 0x16, 0xf3, 0xa2, 0x98, 0xe6,
-       0xd3, 0x7c, 0x62, 0xce, 0x25, 0xf3, 0x61, 0xf5, 0x79, 0xb4, 0xb3, 0x8e,
-       0xe9, 0x7a, 0x3d, 0x5a, 0xd5, 0xf9, 0x61, 0xbe, 0xb2, 0x9e, 0x2a, 0x56,
-       0x8b, 0xd5, 0xc3, 0xb6, 0x24, 0x72, 0x56, 0xbe, 0xb7, 0x4c, 0xde, 0x66,
-       0xf1, 0xbe, 0x6a, 0xf0, 0xb8, 0x21, 0xbc, 0x1f, 0xe9, 0xad, 0xbf, 0xd6,
-       0x7e, 0xb8, 0x29, 0xbc, 0xaf, 0x0e, 0xf6, 0xc3, 0x26, 0xed, 0x27, 0x75,
-       0x26, 0xf5, 0x5e, 0x98, 0x4b, 0xd5, 0xe9, 0x3d, 0xc8, 0xec, 0xef, 0xab,
-       0x72, 0x4f, 0x5b, 0xfa, 0xbc, 0x90, 0xd8, 0x23, 0xa4, 0x5e, 0x06, 0xf2,
-       0xc3, 0x35, 0xfa, 0x74, 0x2c, 0x96, 0x77, 0x54, 0xbf, 0x65, 0xc5, 0xeb,
-       0xc2, 0x5f, 0xc2, 0x83, 0x0e, 0xf5, 0x93, 0x33, 0xf6, 0xf9, 0xed, 0x54,
-       0x9d, 0x00, 0x0e, 0xea, 0xfd, 0x90, 0xf4, 0x2b, 0xb9, 0xdf, 0xf0, 0xbe,
-       0x1a, 0x74, 0x66, 0x93, 0x7b, 0xee, 0x72, 0xbf, 0xdf, 0x03, 0xea, 0xa3,
-       0xf2, 0x8e, 0xbe, 0xd4, 0xf3, 0xac, 0xde, 0x4c, 0xf6, 0xf7, 0x98, 0xcc,
-       0x2f, 0x5b, 0xf6, 0x73, 0xc9, 0x8c, 0x53, 0xed, 0xbd, 0xec, 0x7a, 0x71,
-       0xbc, 0xff, 0x6c, 0xbf, 0xde, 0xbc, 0xdb, 0xab, 0xee, 0x9e, 0x51, 0xf7,
-       0xbf, 0xb7, 0x75, 0x1e, 0x6d, 0x27, 0x6b, 0xbf, 0x7f, 0xa0, 0xee, 0x15,
-       0x7d, 0x99, 0x1b, 0x67, 0xea, 0x59, 0x7c, 0x2d, 0xee, 0xd0, 0x4b, 0xcf,
-       0x2f, 0xed, 0xe7, 0xc6, 0x06, 0xd7, 0xfd, 0xa3, 0xb8, 0xbf, 0x97, 0x52,
-       0xf3, 0x75, 0x44, 0xea, 0xac, 0xf4, 0xc8, 0xbf, 0xa7, 0xdb, 0x83, 0x79,
-       0x9c, 0xe4, 0xcd, 0x49, 0xe1, 0xab, 0x3d, 0xb7, 0x4e, 0xfd, 0xe1, 0x76,
-       0x5e, 0x1a, 0x75, 0x98, 0x6d, 0x62, 0xfd, 0xbf, 0x86, 0x48, 0xfc, 0xfc,
-       0x2d, 0xe5, 0x6f, 0x20, 0xfd, 0x55, 0x80, 0x9f, 0x22, 0x1d, 0x97, 0xae,
-       0x1b, 0xe3, 0x8f, 0x4d, 0xe9, 0x93, 0x7e, 0x7c, 0xf8, 0xee, 0xa2, 0xbc,
-       0x5b, 0x85, 0x1b, 0x91, 0x9e, 0x63, 0x38, 0xd7, 0x5c, 0x68, 0xcb, 0xdc,
-       0x3c, 0x2b, 0xf3, 0xeb, 0x85, 0xc7, 0xf3, 0xb1, 0x73, 0x82, 0x78, 0x08,
-       0xe3, 0x32, 0xc7, 0x3a, 0x01, 0x9f, 0x27, 0x02, 0xfe, 0x7d, 0xd8, 0x76,
-       0x7d, 0xd2, 0x9b, 0x08, 0x18, 0xc7, 0x4b, 0x68, 0x57, 0x83, 0x3f, 0x16,
-       0x49, 0xbd, 0x39, 0x98, 0x63, 0xe6, 0xfc, 0x92, 0x38, 0xdf, 0x46, 0xb9,
-       0xda, 0x93, 0xd3, 0x7c, 0xe6, 0x3a, 0xfb, 0x7d, 0x5e, 0x5f, 0x97, 0xaa,
-       0xd4, 0x2b, 0xc9, 0x3c, 0xeb, 0x3e, 0xba, 0x69, 0xe4, 0x57, 0xd7, 0xe7,
-       0xcd, 0x58, 0xcf, 0xf7, 0xe9, 0xe3, 0xe8, 0x6f, 0x05, 0xca, 0x2e, 0xf3,
-       0x82, 0x51, 0xdd, 0x63, 0xbb, 0x68, 0x36, 0xd9, 0x95, 0x79, 0xd8, 0xbd,
-       0x48, 0xd7, 0x2c, 0x76, 0xb5, 0x7c, 0x81, 0x1a, 0x61, 0x69, 0xe3, 0x1e,
-       0xc9, 0xcb, 0x51, 0x8e, 0xe5, 0xee, 0x09, 0x9d, 0xaf, 0x0a, 0xc5, 0xbf,
-       0xc6, 0xf9, 0xfa, 0xf8, 0x7b, 0xc6, 0xd3, 0xf0, 0x3e, 0xa1, 0x37, 0x98,
-       0xe3, 0x45, 0x42, 0x08, 0x92, 0x73, 0xdc, 0x51, 0xee, 0x55, 0xc9, 0x9f,
-       0x41, 0xfd, 0xcc, 0xfd, 0xb8, 0x5b, 0x1d, 0x47, 0x13, 0xfc, 0xd3, 0x75,
-       0x34, 0xe7, 0x39, 0xf1, 0xc4, 0xe0, 0x63, 0x77, 0x08, 0x1f, 0xad, 0x21,
-       0x7c, 0x36, 0xe7, 0xd6, 0x57, 0xd2, 0xc7, 0x79, 0x70, 0x72, 0xb4, 0x70,
-       0xfd, 0xfc, 0x32, 0xd5, 0xd5, 0xee, 0xf2, 0x0f, 0x08, 0xdf, 0x59, 0xb1,
-       0x28, 0x5f, 0xfe, 0x0a, 0xeb, 0xe5, 0x59, 0x5e, 0xd3, 0xf8, 0xcd, 0xb2,
-       0xfe, 0xbd, 0xf1, 0x1f, 0xb6, 0x34, 0x9b, 0xb9, 0xa0, 0x0c, 0x00, 0x00,
-       0x00 };
-
-static u8 bnx2_rv2p_proc2[] = {
-       /* Date:        02/03/2009 14:20 */
-       0xad, 0x57, 0x4d, 0x68, 0x5c, 0x55, 0x14, 0x3e, 0xf3, 0xe6, 0xef, 0xcd,
-       0xcc, 0x9b, 0xcc, 0x34, 0x8d, 0x93, 0x31, 0x29, 0x26, 0x4d, 0x68, 0xea,
-       0xc8, 0x44, 0xf3, 0x47, 0x05, 0x5d, 0x18, 0x46, 0x48, 0x7f, 0x2c, 0x34,
-       0x8d, 0x2e, 0x8a, 0x9b, 0x36, 0x53, 0x3b, 0x3a, 0x6d, 0xed, 0xc2, 0xec,
-       0xdc, 0xf8, 0xb0, 0x35, 0x41, 0x98, 0x45, 0x53, 0x4c, 0x13, 0x44, 0xa8,
-       0xe8, 0xce, 0xdd, 0x88, 0x9a, 0xd6, 0x8d, 0x50, 0x68, 0x28, 0x76, 0x51,
-       0x04, 0x05, 0xed, 0x42, 0x10, 0xad, 0xa1, 0x15, 0x41, 0x51, 0xb3, 0x92,
-       0x8c, 0xf7, 0x9e, 0xef, 0xdc, 0x37, 0xef, 0x4d, 0xa6, 0xa4, 0x0b, 0x67,
-       0xf3, 0xe5, 0xdc, 0x77, 0xee, 0xb9, 0xe7, 0xe7, 0x3b, 0xe7, 0xde, 0x64,
-       0x89, 0x28, 0x42, 0x6e, 0xbd, 0x4f, 0x21, 0x85, 0xc2, 0x21, 0x5b, 0x41,
-       0x83, 0x28, 0x9a, 0xd7, 0x32, 0x59, 0x24, 0xbf, 0x27, 0xb2, 0x0c, 0xdf,
-       0xd6, 0x1d, 0xad, 0x46, 0x6e, 0x41, 0xeb, 0xd9, 0xf4, 0x92, 0x05, 0xbd,
-       0x08, 0x69, 0x54, 0x3a, 0xae, 0xc6, 0x1d, 0x82, 0xcf, 0x08, 0x46, 0x42,
-       0xc0, 0xb0, 0xa0, 0xd5, 0x82, 0x24, 0x7a, 0x5d, 0x22, 0x6f, 0x8a, 0xec,
-       0x08, 0xe6, 0x65, 0xfd, 0xb4, 0xe0, 0xab, 0xb2, 0x7e, 0x47, 0x70, 0x5d,
-       0xa1, 0xf1, 0x53, 0xcb, 0xbf, 0x35, 0x9a, 0xb2, 0x03, 0xf3, 0x05, 0xf8,
-       0xff, 0x62, 0x3f, 0xeb, 0x37, 0x82, 0xfa, 0x77, 0x1b, 0xc6, 0x0f, 0x13,
-       0xaf, 0x15, 0xd5, 0xfa, 0xbb, 0x27, 0x2e, 0x2f, 0x62, 0xdf, 0xf1, 0x7e,
-       0xac, 0x3f, 0x56, 0xd4, 0x71, 0xc7, 0xc8, 0x15, 0xa4, 0x61, 0x9b, 0xe3,
-       0x70, 0x87, 0x4d, 0xa2, 0xa0, 0xff, 0xe3, 0x22, 0xa4, 0xd9, 0x34, 0xec,
-       0x26, 0x03, 0x76, 0x73, 0x5b, 0xec, 0x7e, 0x9f, 0xf0, 0xdb, 0xff, 0x54,
-       0xec, 0x27, 0xb7, 0xb5, 0x5f, 0x4e, 0x03, 0x77, 0x16, 0xdb, 0x9d, 0x93,
-       0xd8, 0xc6, 0xff, 0xd3, 0xdb, 0xda, 0x7f, 0xd3, 0xf3, 0xdf, 0xac, 0x03,
-       0xfb, 0xf0, 0xf9, 0x13, 0xf7, 0x29, 0x93, 0x47, 0x13, 0xaf, 0xf8, 0x15,
-       0x06, 0x4e, 0x16, 0x19, 0x6a, 0x27, 0x25, 0xb1, 0x53, 0x43, 0xfa, 0xbc,
-       0x4e, 0x8a, 0x58, 0xda, 0xce, 0x5e, 0x3b, 0x76, 0x0d, 0xeb, 0xc7, 0x32,
-       0xc0, 0x57, 0x24, 0x80, 0xbb, 0x49, 0x9d, 0x90, 0x46, 0xa3, 0x92, 0x12,
-       0xfb, 0x28, 0x23, 0xb9, 0x29, 0xec, 0x5f, 0x73, 0xb4, 0x5f, 0xb7, 0x54,
-       0xdd, 0xb4, 0x1c, 0x26, 0x37, 0x13, 0xf4, 0xff, 0x0a, 0x41, 0x6f, 0xc7,
-       0x5e, 0xac, 0x5e, 0xac, 0x40, 0xee, 0xfd, 0x38, 0xcb, 0xfa, 0x2b, 0x75,
-       0x13, 0x87, 0x5e, 0x57, 0xfc, 0xcf, 0xc0, 0x0e, 0x0d, 0xd8, 0x7c, 0x18,
-       0xf2, 0xa3, 0x0e, 0x1d, 0x36, 0xf6, 0xf0, 0xbb, 0xbc, 0xc7, 0xf0, 0x09,
-       0x72, 0x25, 0xc6, 0x90, 0x9f, 0x9d, 0xd7, 0xfe, 0x66, 0xe8, 0x84, 0xa5,
-       0x1d, 0xb1, 0x24, 0xbe, 0xb0, 0xed, 0x7c, 0x01, 0xfd, 0xaf, 0xfa, 0x1c,
-       0xf6, 0xad, 0x32, 0x8e, 0x7d, 0x5d, 0x63, 0xc0, 0xa5, 0xb1, 0xa8, 0x86,
-       0x62, 0x65, 0x8e, 0xc5, 0x27, 0x7f, 0x1e, 0xb5, 0x59, 0xcf, 0x1d, 0x36,
-       0x7c, 0x35, 0x79, 0xd7, 0xf1, 0x5e, 0x6c, 0xf2, 0x76, 0x10, 0xf9, 0xf9,
-       0x75, 0x8f, 0xd6, 0x57, 0x49, 0x1a, 0xc0, 0x39, 0x33, 0xd5, 0x76, 0x7c,
-       0x7f, 0x57, 0xed, 0x7b, 0xb8, 0xfa, 0x4d, 0x72, 0xdc, 0x93, 0x12, 0x7f,
-       0xbf, 0xf0, 0x63, 0x57, 0x1b, 0x7e, 0x64, 0xf8, 0xef, 0xfb, 0xa5, 0x2c,
-       0xe7, 0xef, 0x08, 0xd6, 0x2f, 0x4d, 0xad, 0x22, 0xcf, 0x07, 0x39, 0x7e,
-       0x4a, 0x5e, 0xf8, 0x1c, 0xbb, 0x66, 0xd3, 0x5a, 0x7e, 0x79, 0xa2, 0xf2,
-       0x25, 0xe4, 0x72, 0x58, 0xcb, 0xc7, 0x9c, 0x93, 0x57, 0xa1, 0x1f, 0x3d,
-       0x9f, 0xe5, 0xbc, 0x1d, 0x91, 0x53, 0x0e, 0xaa, 0x51, 0xa1, 0x7e, 0xb5,
-       0xd8, 0x79, 0x16, 0x9d, 0x35, 0xfe, 0x9e, 0xa5, 0x85, 0x3a, 0xbe, 0x9f,
-       0x4b, 0xe9, 0xb8, 0xce, 0xa8, 0xb8, 0x58, 0xaf, 0xab, 0x1a, 0xc3, 0xfe,
-       0xda, 0xa2, 0xb6, 0x17, 0xa2, 0x7b, 0x9f, 0x69, 0xf9, 0x70, 0xf1, 0x1e,
-       0xf4, 0x8b, 0xd5, 0x79, 0x31, 0x6c, 0x21, 0x6f, 0xf7, 0x2d, 0xe8, 0x0b,
-       0xad, 0x92, 0x11, 0xae, 0x5b, 0x88, 0x9c, 0x29, 0xe0, 0x3b, 0xfc, 0xfd,
-       0xdf, 0x50, 0x8d, 0xf3, 0xf5, 0x7c, 0x47, 0x64, 0xd5, 0xe4, 0x47, 0x30,
-       0x63, 0xe2, 0x02, 0x3e, 0x2c, 0x6f, 0xe7, 0x1d, 0xc3, 0x57, 0xa9, 0x57,
-       0xe1, 0x41, 0x7c, 0x05, 0x4e, 0x0d, 0x01, 0x63, 0x83, 0x5a, 0x2f, 0xda,
-       0x86, 0xb7, 0xc1, 0xba, 0x48, 0x5d, 0x7d, 0xfc, 0x62, 0x50, 0xbc, 0x0a,
-       0xf0, 0x4c, 0xf1, 0x98, 0xe7, 0x90, 0xca, 0xa7, 0xe1, 0x8b, 0x36, 0x14,
-       0xa7, 0x33, 0x62, 0xaf, 0x2a, 0x71, 0x9d, 0x95, 0xb8, 0x7e, 0x4f, 0x9a,
-       0xbc, 0x9b, 0x78, 0x80, 0x0b, 0x5e, 0x3c, 0x86, 0x6f, 0xb8, 0x1f, 0x66,
-       0xaa, 0x01, 0x7f, 0x6a, 0x37, 0x06, 0xf0, 0x47, 0xef, 0x20, 0xd0, 0x8b,
-       0x73, 0x88, 0xfb, 0xa4, 0xa3, 0xfb, 0xaa, 0xf1, 0x43, 0xd7, 0x75, 0x43,
-       0xf8, 0x6a, 0xa9, 0x78, 0xfd, 0xfd, 0xd9, 0xd3, 0xa6, 0x3f, 0x83, 0xfd,
-       0x62, 0xe2, 0x3f, 0x97, 0xe6, 0x01, 0x34, 0x71, 0x7b, 0x3d, 0xd8, 0x0f,
-       0xe0, 0x7f, 0xdc, 0xe3, 0x51, 0xd7, 0x3e, 0xc9, 0x93, 0x60, 0xee, 0x69,
-       0x6d, 0x6f, 0x5a, 0xec, 0x8f, 0x88, 0x7d, 0xc7, 0xd7, 0x8f, 0xda, 0xbf,
-       0x3e, 0xaf, 0x0f, 0x4d, 0x7d, 0x9a, 0xfd, 0x68, 0xf2, 0xc4, 0xe7, 0x17,
-       0x6f, 0xaf, 0xeb, 0xfd, 0xbd, 0xdb, 0xf4, 0xe7, 0x23, 0x9e, 0xbd, 0xef,
-       0xbc, 0x7e, 0xd4, 0xdf, 0x53, 0xf4, 0x9c, 0x88, 0xc1, 0x39, 0xf3, 0x87,
-       0x9a, 0x33, 0x1c, 0x87, 0xed, 0xac, 0xca, 0x5c, 0x99, 0xd3, 0xe7, 0xe4,
-       0xc5, 0xef, 0xbc, 0x99, 0xeb, 0xca, 0x6f, 0x99, 0x3f, 0xc7, 0xfd, 0x73,
-       0x24, 0xde, 0xe6, 0x3c, 0xc0, 0x64, 0xb1, 0x35, 0x5f, 0xc8, 0x3b, 0xec,
-       0xaa, 0xfc, 0x9b, 0x39, 0x30, 0x6e, 0xec, 0x43, 0x74, 0x47, 0xfd, 0xfa,
-       0xad, 0xf5, 0x89, 0x3c, 0x60, 0x9e, 0x6d, 0x6c, 0xe2, 0xde, 0xfd, 0x67,
-       0xb3, 0x79, 0x1f, 0x07, 0xea, 0xe8, 0x12, 0xd7, 0x3d, 0xae, 0xea, 0xcf,
-       0xef, 0x03, 0xef, 0x9e, 0xb7, 0xa2, 0x7a, 0x5d, 0xe5, 0x42, 0x78, 0xf5,
-       0xfa, 0xe3, 0xb2, 0xbf, 0x80, 0xb9, 0xf4, 0xda, 0x29, 0xce, 0xff, 0x7b,
-       0x67, 0x37, 0x78, 0x3e, 0x7d, 0xf8, 0xc6, 0x35, 0x1d, 0xd7, 0xa3, 0xb4,
-       0x3e, 0xe7, 0xb0, 0x3f, 0xa5, 0xdd, 0x50, 0xdf, 0x78, 0xb6, 0xb5, 0x1e,
-       0x78, 0xd7, 0xa0, 0x5e, 0x4a, 0x6f, 0x36, 0x78, 0xaf, 0x36, 0xfd, 0x43,
-       0xbf, 0xec, 0xcf, 0x40, 0xdf, 0xf4, 0x73, 0xb0, 0xae, 0x77, 0x36, 0x9b,
-       0x73, 0xd7, 0xe4, 0x3b, 0xc8, 0xd3, 0xa3, 0xe3, 0x7e, 0xbb, 0x83, 0xb4,
-       0x56, 0x87, 0xdd, 0x69, 0xe9, 0xc3, 0x13, 0x72, 0xf0, 0x4f, 0xc9, 0x0c,
-       0x9f, 0x53, 0x7e, 0x81, 0x79, 0x46, 0xb9, 0x14, 0xe2, 0x2c, 0x1f, 0xc6,
-       0xf7, 0x72, 0x1a, 0xeb, 0x3d, 0x69, 0xdc, 0x6f, 0xd3, 0x71, 0x87, 0xf5,
-       0x7b, 0xd2, 0xc0, 0x9c, 0xf4, 0xeb, 0x9a, 0x37, 0x8f, 0x80, 0x2b, 0x31,
-       0x7f, 0xff, 0x46, 0xe8, 0x7a, 0x4c, 0x2b, 0xa8, 0xcb, 0xba, 0x80, 0xfe,
-       0x2b, 0x0d, 0x39, 0xfc, 0x7d, 0xa6, 0x80, 0xb9, 0x4a, 0x03, 0xc1, 0xfb,
-       0x50, 0xfa, 0xb9, 0xa7, 0x39, 0xb7, 0xfc, 0x73, 0x2d, 0x31, 0xb6, 0x5c,
-       0x0f, 0xde, 0x97, 0x2b, 0x31, 0xff, 0x9c, 0xd0, 0x76, 0x59, 0x54, 0xf3,
-       0xc1, 0x3f, 0xd7, 0xc2, 0x52, 0xef, 0xbf, 0x64, 0x0e, 0xec, 0xa4, 0x9b,
-       0x75, 0xc4, 0xb5, 0x56, 0x6f, 0xcd, 0xb3, 0x39, 0xcf, 0xd8, 0x83, 0xdf,
-       0x26, 0x8e, 0xa6, 0x7d, 0x9c, 0x7f, 0x4a, 0xfc, 0xfc, 0x85, 0xdf, 0x21,
-       0x39, 0x89, 0x47, 0xdb, 0xc5, 0xfa, 0x01, 0x99, 0xb3, 0xae, 0x27, 0x07,
-       0xe7, 0xe3, 0x34, 0xfb, 0xd5, 0x49, 0x78, 0x77, 0xe4, 0xbc, 0xbe, 0x36,
-       0xf1, 0x75, 0x8d, 0x00, 0x97, 0x46, 0x4c, 0x1d, 0x4c, 0xbd, 0x4c, 0x7d,
-       0x50, 0xc7, 0xdc, 0x28, 0xab, 0x4d, 0x94, 0x47, 0x99, 0xa7, 0x23, 0xe5,
-       0x3f, 0x83, 0xef, 0xb4, 0xa3, 0x45, 0xad, 0xff, 0x16, 0x7d, 0xc3, 0x7d,
-       0x44, 0xf4, 0x83, 0x60, 0x73, 0x1e, 0x49, 0x01, 0x02, 0xef, 0xb2, 0x30,
-       0x5d, 0x8f, 0xca, 0xf2, 0xb8, 0xe9, 0x9b, 0x60, 0xdf, 0x5d, 0xe1, 0x77,
-       0xfa, 0xc2, 0xe6, 0xd6, 0xfe, 0x37, 0xf1, 0x69, 0xbd, 0x61, 0xe1, 0xa1,
-       0x4d, 0xa5, 0xfd, 0x78, 0xd7, 0x74, 0xc4, 0xc1, 0xf3, 0x8e, 0xb8, 0xbf,
-       0x4e, 0x8a, 0x0f, 0x89, 0xb8, 0x16, 0x77, 0x75, 0x26, 0x38, 0x8e, 0x4b,
-       0x5f, 0xdf, 0xe2, 0xcf, 0x1f, 0x2d, 0xa7, 0xb0, 0xde, 0x5d, 0x82, 0xf9,
-       0x08, 0xf3, 0x35, 0x4c, 0x17, 0xc0, 0xe7, 0x0f, 0x96, 0x80, 0xef, 0xd3,
-       0x21, 0xd8, 0xe9, 0x7c, 0x9b, 0xef, 0x71, 0xbb, 0x1b, 0xe9, 0xac, 0x2d,
-       0x0b, 0x4f, 0xf3, 0x16, 0xff, 0x3f, 0xd2, 0xa0, 0xb4, 0xbc, 0x5b, 0xa5,
-       0xcf, 0xc0, 0xcf, 0x88, 0xaf, 0xce, 0xdb, 0xf1, 0x55, 0xa3, 0xa3, 0xf8,
-       0x88, 0xed, 0xc2, 0x5b, 0xbb, 0x95, 0xb7, 0xa6, 0x8e, 0x79, 0xab, 0x2d,
-       0x4f, 0xf7, 0x05, 0x79, 0x1a, 0x13, 0x9e, 0xfe, 0xed, 0xcd, 0xd3, 0xad,
-       0x76, 0x31, 0xc7, 0x6f, 0xfe, 0x6f, 0xbc, 0x05, 0x1e, 0x18, 0xd4, 0xe7,
-       0x77, 0xfb, 0xf8, 0x67, 0xfc, 0xf2, 0xcf, 0x9f, 0x43, 0x6a, 0xae, 0xfe,
-       0x07, 0x92, 0xe2, 0x88, 0x7c, 0xe0, 0x0d, 0x00, 0x00, 0x00 };
-
-static u8 bnx2_TPAT_b06FwText[] = {
-       0xbd, 0x58, 0x6d, 0x70, 0x5c, 0xd5, 0x79, 0x7e, 0xce, 0xbd, 0x77, 0xb5,
-       0xd7, 0xd2, 0x4a, 0xba, 0xb2, 0xd6, 0x66, 0x5d, 0xdc, 0xfa, 0x1e, 0x74,
-       0x57, 0x52, 0x58, 0x01, 0x77, 0x6d, 0x01, 0xeb, 0xe6, 0xb6, 0xbe, 0xc8,
-       0xb2, 0xbc, 0xfe, 0x00, 0xe4, 0xc0, 0x4c, 0xe4, 0x96, 0x8e, 0x37, 0xc6,
-       0x18, 0xd9, 0x90, 0xa9, 0x28, 0xfc, 0x58, 0x37, 0x4c, 0xbd, 0x95, 0x65,
-       0x63, 0xc3, 0x4a, 0x6b, 0x0c, 0xb1, 0x4c, 0xda, 0x99, 0x78, 0x84, 0xb1,
-       0x4c, 0x22, 0x7b, 0x0d, 0xe4, 0x07, 0x49, 0xc3, 0xa0, 0xc1, 0x0e, 0x08,
-       0x06, 0xf3, 0x31, 0x6d, 0x67, 0x98, 0xe9, 0xa4, 0xf5, 0x18, 0xf3, 0x11,
-       0x92, 0x18, 0x87, 0x4e, 0x3a, 0xa2, 0x10, 0x9f, 0x3e, 0x67, 0x77, 0xc5,
-       0x57, 0x32, 0xd3, 0xfe, 0xaa, 0x66, 0x56, 0x7b, 0xf7, 0xec, 0xf9, 0x78,
-       0xcf, 0xfb, 0x3e, 0xef, 0xf3, 0x3e, 0xef, 0x5e, 0x21, 0x50, 0x8f, 0xda,
-       0x5f, 0x23, 0x5f, 0xdd, 0xdf, 0x1a, 0xba, 0x2f, 0x7d, 0xf5, 0x75, 0x57,
-       0xf3, 0xf1, 0x3a, 0xe1, 0xd4, 0x59, 0xf8, 0x7f, 0xfc, 0x33, 0x01, 0x67,
-       0xce, 0x0e, 0xfd, 0x82, 0x6d, 0x04, 0x85, 0xcb, 0x7b, 0x3c, 0xd8, 0x66,
-       0x10, 0x77, 0x6f, 0xf7, 0x80, 0x70, 0x2a, 0xe5, 0xae, 0xc4, 0xef, 0x54,
-       0x21, 0x6e, 0x41, 0x8f, 0xff, 0x71, 0xf0, 0xe9, 0x35, 0xcf, 0x5d, 0x2f,
-       0x2f, 0x1e, 0x36, 0x61, 0x3b, 0xc1, 0x5e, 0xcb, 0x69, 0x87, 0xbd, 0x98,
-       0x6b, 0xfe, 0xb1, 0xe3, 0x2f, 0x04, 0x9a, 0xe6, 0xf6, 0x52, 0x6a, 0xc4,
-       0x8f, 0x62, 0xd8, 0x4f, 0x60, 0x77, 0xc9, 0x40, 0xe8, 0x44, 0xb1, 0xcb,
-       0x9b, 0x55, 0x5b, 0x7c, 0xe9, 0xef, 0x86, 0x5a, 0x72, 0xda, 0x97, 0x89,
-       0x5e, 0x13, 0xe1, 0x77, 0xbc, 0xc5, 0xd8, 0x5d, 0x4e, 0x60, 0xa4, 0x6c,
-       0xe3, 0xac, 0x39, 0x82, 0xde, 0xf2, 0xdc, 0x3a, 0x97, 0xeb, 0x3a, 0xb1,
-       0xe7, 0xcb, 0x6b, 0xdd, 0xdd, 0x48, 0x25, 0xf6, 0xc0, 0x40, 0x2e, 0xee,
-       0x71, 0x5d, 0x9b, 0xbb, 0x07, 0xb2, 0x93, 0xfb, 0x14, 0xea, 0xba, 0x5d,
-       0xee, 0x51, 0xe0, 0x7a, 0xe9, 0x1e, 0x85, 0xde, 0x2b, 0xc3, 0xcf, 0x6f,
-       0xa9, 0xe7, 0x3a, 0x16, 0xe3, 0x19, 0xee, 0xff, 0x74, 0xd9, 0xc1, 0xc9,
-       0xb2, 0x87, 0xe7, 0xcb, 0x2e, 0x7e, 0x54, 0x8e, 0xe3, 0xa9, 0xb2, 0x9d,
-       0xb3, 0x03, 0xf4, 0xc7, 0x47, 0x77, 0xaa, 0x84, 0x87, 0xc2, 0x1f, 0x05,
-       0xde, 0xa1, 0x43, 0x46, 0x2c, 0xf3, 0x37, 0xd7, 0xa1, 0x7f, 0xfe, 0x71,
-       0x1b, 0x1b, 0x4a, 0x8b, 0x73, 0xd1, 0x00, 0x9c, 0x23, 0xe0, 0x5f, 0x67,
-       0xa3, 0x9f, 0x7b, 0x14, 0xb8, 0x7f, 0x58, 0x1e, 0xe1, 0xcb, 0xc6, 0xbb,
-       0x45, 0xdb, 0x6e, 0x1e, 0x5d, 0xa8, 0xe7, 0xe0, 0x57, 0xc5, 0x8b, 0xea,
-       0x42, 0xda, 0xc1, 0x2b, 0xcb, 0x95, 0x6a, 0x0c, 0x50, 0x68, 0xe8, 0x2e,
-       0xc0, 0x0c, 0x64, 0x76, 0x9d, 0x29, 0xd0, 0x7b, 0x95, 0xd7, 0x39, 0x2a,
-       0x6e, 0xb9, 0xc5, 0x08, 0x60, 0x8b, 0xc0, 0xb5, 0xda, 0xa6, 0x32, 0xd8,
-       0x57, 0xe6, 0xbd, 0x68, 0xcf, 0x48, 0x19, 0xe1, 0x5f, 0x76, 0x98, 0x98,
-       0x88, 0xe3, 0xfe, 0xb7, 0xbb, 0x2d, 0x7c, 0x5c, 0x94, 0x89, 0x4e, 0xf3,
-       0x7e, 0xec, 0x2c, 0xe6, 0x71, 0x47, 0x11, 0x05, 0x23, 0x18, 0xc2, 0x37,
-       0xba, 0x03, 0xde, 0x33, 0xc4, 0xf7, 0xcb, 0xb0, 0x5b, 0x83, 0xd3, 0x97,
-       0xdf, 0xdb, 0x2e, 0x0f, 0x87, 0x06, 0x90, 0x1d, 0x03, 0xfa, 0x4a, 0x02,
-       0xa7, 0x32, 0x02, 0x5b, 0xfc, 0xcb, 0x50, 0x70, 0xba, 0xb1, 0xb7, 0x2c,
-       0xb3, 0x05, 0x7e, 0x77, 0xd5, 0x28, 0xec, 0x45, 0xc1, 0x6d, 0xd6, 0xf2,
-       0x12, 0xec, 0x96, 0x60, 0xc0, 0x4a, 0x8f, 0xb5, 0xcd, 0x1e, 0x13, 0x32,
-       0xbf, 0xc2, 0x94, 0x21, 0x20, 0x33, 0x9d, 0x46, 0xaa, 0xa0, 0x84, 0x1c,
-       0xba, 0x08, 0x6d, 0xd3, 0x6d, 0xd6, 0x35, 0x53, 0xfa, 0x7d, 0xc0, 0xba,
-       0x7a, 0x0a, 0x58, 0xcf, 0x3d, 0x1f, 0x5a, 0x2e, 0xb0, 0x3d, 0xfd, 0x6b,
-       0x15, 0x2e, 0x90, 0xe1, 0x61, 0xd1, 0x8d, 0xd1, 0x32, 0x70, 0xd3, 0x18,
-       0xec, 0x18, 0xe7, 0x16, 0xb9, 0x77, 0x3d, 0xe7, 0xae, 0x1d, 0x6d, 0x1b,
-       0x9c, 0x11, 0x92, 0x77, 0x93, 0x03, 0x40, 0xca, 0x3f, 0x0e, 0xe9, 0xae,
-       0x13, 0xd2, 0xd9, 0x53, 0xdb, 0x33, 0x59, 0xdb, 0xf3, 0x8a, 0x29, 0x5b,
-       0xac, 0x2a, 0x41, 0xf4, 0x96, 0xe0, 0x3e, 0xe9, 0x83, 0x77, 0x89, 0xf1,
-       0xde, 0xf5, 0x70, 0x5b, 0xa4, 0x7f, 0x98, 0x73, 0xa3, 0x41, 0x97, 0xf5,
-       0x5e, 0x51, 0xe0, 0x43, 0x4f, 0xcf, 0xef, 0xd2, 0xb6, 0x84, 0x4e, 0x90,
-       0x11, 0xfd, 0xe5, 0xfd, 0x73, 0x39, 0x62, 0x9c, 0xf4, 0xe3, 0xc0, 0x42,
-       0x34, 0xb7, 0x78, 0xf3, 0xf1, 0xb0, 0x83, 0xc6, 0xa8, 0xb7, 0xcc, 0x78,
-       0xc0, 0xa9, 0xc3, 0x49, 0xff, 0xb7, 0x0a, 0xdf, 0xd0, 0xf3, 0x81, 0x6f,
-       0x3f, 0xe2, 0x20, 0xe6, 0x5d, 0xc4, 0xd1, 0xf4, 0x36, 0xe3, 0x55, 0x67,
-       0x08, 0x4d, 0xde, 0xcf, 0x8d, 0xd7, 0x9c, 0x38, 0x1e, 0xe2, 0x7d, 0xee,
-       0x4c, 0xc6, 0xf1, 0x40, 0xf9, 0xab, 0xfb, 0x5a, 0x22, 0x3b, 0xfe, 0x8e,
-       0x42, 0x4b, 0x65, 0x7d, 0xf8, 0xac, 0x3f, 0x01, 0x5c, 0xa6, 0xc7, 0xf3,
-       0x62, 0x63, 0xe9, 0x92, 0x72, 0xa3, 0x19, 0x3c, 0x50, 0xb2, 0x31, 0x8f,
-       0x76, 0x45, 0x3c, 0x1b, 0x6f, 0x17, 0xf3, 0x62, 0x55, 0x39, 0x14, 0x6b,
-       0x26, 0x7b, 0x44, 0x38, 0x69, 0x89, 0x9e, 0x71, 0x10, 0x9b, 0x4a, 0xad,
-       0xf1, 0x05, 0xfe, 0xc3, 0xff, 0x57, 0xe3, 0x6c, 0xab, 0x0c, 0x5d, 0x71,
-       0x49, 0x79, 0x49, 0x03, 0xf5, 0x5e, 0x9f, 0x58, 0x3b, 0xa9, 0xd4, 0x5e,
-       0x3f, 0x2b, 0x7a, 0x27, 0x61, 0x37, 0x04, 0x81, 0x75, 0xd7, 0xe8, 0x69,
-       0x23, 0xb7, 0x20, 0x86, 0x52, 0xc9, 0xc5, 0x29, 0x5f, 0xe3, 0x77, 0x1e,
-       0x2c, 0x4f, 0xf0, 0x85, 0xd8, 0x19, 0x1f, 0x56, 0x8c, 0xcf, 0x53, 0x1b,
-       0x2c, 0x8c, 0x74, 0xaf, 0xad, 0xac, 0x89, 0x10, 0x2b, 0x4f, 0x14, 0xb3,
-       0x30, 0x88, 0xbf, 0x45, 0x41, 0x72, 0x76, 0x82, 0x98, 0x7f, 0xcb, 0x4f,
-       0x76, 0x7e, 0x6c, 0x92, 0x1c, 0x5a, 0x65, 0x82, 0x86, 0x0a, 0x2b, 0x48,
-       0x76, 0x1e, 0x81, 0x80, 0xe9, 0x59, 0x78, 0xc5, 0x8f, 0x20, 0xdc, 0x60,
-       0x63, 0x17, 0x71, 0x55, 0xc7, 0xf1, 0xa3, 0x95, 0x71, 0xfd, 0x19, 0xce,
-       0xaa, 0xf2, 0x57, 0x73, 0x9e, 0xe3, 0xa5, 0x36, 0xe4, 0x2a, 0x79, 0x0f,
-       0x67, 0x1d, 0xef, 0xfb, 0xad, 0x88, 0x7e, 0xfc, 0x93, 0xcf, 0xc6, 0x6e,
-       0xa4, 0x9d, 0x66, 0xe0, 0xe5, 0x1e, 0x17, 0x8b, 0x50, 0x68, 0x01, 0xed,
-       0x36, 0x70, 0x21, 0xbd, 0x10, 0xd3, 0x2d, 0xfa, 0xeb, 0xb8, 0xd3, 0x3f,
-       0xde, 0xaa, 0x63, 0xa2, 0xf7, 0x72, 0x56, 0x8d, 0x2b, 0xf5, 0xbc, 0x5f,
-       0x87, 0xd9, 0x8e, 0xe1, 0x19, 0x66, 0x89, 0xbf, 0x88, 0x39, 0xf9, 0x12,
-       0xcf, 0x6f, 0x59, 0x66, 0xc2, 0x5c, 0xe6, 0x9a, 0xee, 0x7c, 0x60, 0xa2,
-       0xa8, 0x39, 0x41, 0xce, 0xbe, 0xc4, 0xff, 0xe7, 0xca, 0x1a, 0x9f, 0x3e,
-       0xf1, 0x29, 0xd0, 0xde, 0xa1, 0xe3, 0xee, 0x5b, 0xed, 0xc4, 0xde, 0x76,
-       0xfa, 0x33, 0xc2, 0x3c, 0x78, 0x90, 0xf6, 0x9e, 0x2b, 0x7e, 0xcf, 0x58,
-       0xe5, 0x48, 0x57, 0x9f, 0xf0, 0x4e, 0x11, 0xe2, 0x79, 0xff, 0xef, 0xb4,
-       0x8f, 0x5d, 0x6e, 0x4b, 0xcc, 0xdc, 0x47, 0xcc, 0x68, 0xee, 0x59, 0x6f,
-       0x39, 0x63, 0x72, 0xe0, 0x7d, 0x1a, 0x91, 0x08, 0x86, 0xac, 0x44, 0x29,
-       0xb5, 0x77, 0x90, 0xdf, 0xdb, 0x41, 0xd6, 0xb2, 0x47, 0x65, 0x9e, 0xe7,
-       0xe5, 0x2c, 0x43, 0x26, 0x9a, 0xcd, 0xd4, 0xd0, 0x88, 0x90, 0x83, 0xcd,
-       0x42, 0xf6, 0xdf, 0x03, 0xe9, 0x9c, 0x10, 0xfa, 0xcc, 0xf5, 0x56, 0x57,
-       0x05, 0xa3, 0x59, 0x62, 0x54, 0xbf, 0xdf, 0x67, 0xa5, 0x2a, 0xef, 0x43,
-       0xd6, 0x95, 0x53, 0x09, 0x8c, 0x96, 0xa4, 0xef, 0x8a, 0x28, 0xbe, 0x96,
-       0xb6, 0x71, 0x22, 0xa9, 0x96, 0xbc, 0x90, 0x96, 0xb9, 0x1e, 0x73, 0x31,
-       0x73, 0x21, 0x81, 0x61, 0x62, 0xe9, 0x1f, 0x92, 0x23, 0xe8, 0x29, 0x9b,
-       0xc4, 0xb1, 0x8b, 0xfd, 0xa5, 0x28, 0x66, 0xc8, 0x4f, 0x75, 0xe9, 0x4e,
-       0x8c, 0x94, 0x64, 0xe7, 0x1b, 0x48, 0xe5, 0x8f, 0x30, 0x5e, 0x67, 0x17,
-       0x78, 0xd8, 0x5f, 0x6e, 0x63, 0x8c, 0xa4, 0xbb, 0x8a, 0x1c, 0x65, 0x76,
-       0x4b, 0x67, 0x17, 0x7d, 0x5b, 0x17, 0x90, 0xdb, 0xca, 0x19, 0xee, 0x53,
-       0xc0, 0xaa, 0x72, 0x5e, 0xf4, 0x95, 0xe7, 0x70, 0xfa, 0x73, 0x62, 0x53,
-       0x63, 0xd5, 0xc6, 0xe6, 0x12, 0x70, 0x67, 0xc9, 0x47, 0x8b, 0x67, 0xbc,
-       0x18, 0xc5, 0x45, 0xfa, 0x71, 0x02, 0xf7, 0x38, 0x21, 0x16, 0x79, 0xeb,
-       0xd4, 0x8e, 0xb8, 0x9e, 0x9f, 0x17, 0x6b, 0x19, 0xb7, 0x30, 0x02, 0x63,
-       0xd2, 0x37, 0x71, 0x36, 0x3e, 0x3c, 0x3f, 0x52, 0xe1, 0x5d, 0xfd, 0x6e,
-       0xa2, 0xdf, 0xc7, 0x1a, 0x07, 0x72, 0xc8, 0x17, 0x85, 0xc1, 0x26, 0xfa,
-       0xe1, 0xa4, 0x28, 0x0c, 0xc4, 0x20, 0x0b, 0xf7, 0x0a, 0x3a, 0x6b, 0x8c,
-       0x24, 0xb1, 0x60, 0x8e, 0xa7, 0x2d, 0xfc, 0x75, 0xe9, 0x29, 0xe3, 0x5c,
-       0xa4, 0x0e, 0xe6, 0x81, 0x08, 0xa2, 0x07, 0x2c, 0x34, 0x1f, 0x10, 0xc4,
-       0x5d, 0xa1, 0x33, 0xaa, 0xd7, 0x21, 0x81, 0x7d, 0xa3, 0x36, 0xee, 0xe9,
-       0x88, 0xe0, 0x42, 0x52, 0x0e, 0x5e, 0x21, 0x86, 0xfd, 0x26, 0x8e, 0x8d,
-       0x1e, 0x97, 0xae, 0x6b, 0x14, 0x22, 0x68, 0x8a, 0x23, 0xd2, 0x5e, 0x87,
-       0x06, 0xae, 0xdb, 0x59, 0x52, 0x3b, 0xed, 0xa0, 0xe0, 0x36, 0x40, 0xfa,
-       0x0f, 0x73, 0xdf, 0x53, 0x45, 0xa5, 0xea, 0xaf, 0xf5, 0x66, 0x3e, 0x30,
-       0xe5, 0xf4, 0x0e, 0x7e, 0x7e, 0x6b, 0xaa, 0xba, 0xff, 0xbc, 0x03, 0x36,
-       0x1a, 0x0f, 0x56, 0xf6, 0x9f, 0x7d, 0x8a, 0x16, 0x7c, 0x58, 0xd2, 0xf9,
-       0xa4, 0x54, 0x34, 0xf0, 0xfa, 0xdf, 0x13, 0x4a, 0xdd, 0xe4, 0xcb, 0xdc,
-       0xcb, 0xa2, 0x6d, 0x60, 0x94, 0xcf, 0x83, 0xe9, 0xa4, 0x9b, 0xa5, 0xcd,
-       0xe7, 0xcb, 0x51, 0xda, 0xc7, 0x5c, 0xf0, 0xb6, 0x19, 0x3b, 0x1c, 0x13,
-       0x75, 0xde, 0x0e, 0x63, 0x6b, 0x05, 0xab, 0x0e, 0x16, 0x8d, 0xd5, 0x63,
-       0x89, 0x17, 0x8a, 0x4d, 0xcc, 0xcd, 0x8d, 0x93, 0x16, 0xe7, 0xe9, 0xdc,
-       0x14, 0x88, 0x7a, 0xbd, 0x62, 0xe5, 0x64, 0x5f, 0x25, 0x5f, 0x07, 0xc6,
-       0x0d, 0xbc, 0xe9, 0xdf, 0x80, 0x48, 0x90, 0x15, 0x03, 0x93, 0x3a, 0x7f,
-       0xd6, 0x8a, 0xd5, 0x93, 0x8c, 0xdf, 0x7c, 0x9d, 0x3b, 0x37, 0x88, 0x48,
-       0xa0, 0xf3, 0xe5, 0xf3, 0x1c, 0xb2, 0x99, 0x43, 0xc7, 0xfe, 0x97, 0x1c,
-       0x7a, 0xa8, 0x64, 0x21, 0xd7, 0x52, 0xcd, 0x97, 0x5e, 0xc6, 0xe2, 0xef,
-       0x6b, 0x75, 0x7b, 0x3b, 0xc7, 0xa3, 0x07, 0x74, 0x0e, 0xf7, 0x32, 0x87,
-       0x35, 0x9e, 0x2d, 0xb1, 0x69, 0x1c, 0x76, 0x73, 0x10, 0x5a, 0x1f, 0x8e,
-       0x2a, 0xbc, 0xed, 0x2b, 0xf5, 0xf1, 0x32, 0xed, 0x13, 0x39, 0xf8, 0x2c,
-       0xf1, 0x08, 0x12, 0xd2, 0xbb, 0x9e, 0x52, 0x33, 0x7e, 0x2a, 0xfb, 0x2c,
-       0x79, 0xf9, 0x9c, 0xd0, 0xf7, 0x8f, 0xc2, 0x49, 0x6b, 0x3c, 0xf6, 0x5a,
-       0x57, 0x55, 0x70, 0x19, 0x12, 0xaf, 0xac, 0xd5, 0xf3, 0x35, 0x36, 0xa3,
-       0x68, 0x48, 0xce, 0xd2, 0x37, 0x72, 0xa8, 0x51, 0xa8, 0x25, 0xaf, 0xa6,
-       0xab, 0xb8, 0x2c, 0xb2, 0x36, 0xad, 0xe7, 0x59, 0xbd, 0xe3, 0xb2, 0xb0,
-       0xde, 0xac, 0xd6, 0xd1, 0xbd, 0xc4, 0x86, 0xe6, 0xb8, 0xcb, 0xdb, 0xa3,
-       0xd8, 0x47, 0x8c, 0x7a, 0x69, 0x17, 0xc3, 0xac, 0xab, 0xbb, 0x4b, 0xd2,
-       0x1d, 0x26, 0x4e, 0x77, 0xd7, 0x70, 0x3a, 0xcc, 0x5a, 0xba, 0x1b, 0x72,
-       0xaf, 0xae, 0xa5, 0x11, 0xe2, 0x94, 0x34, 0x56, 0xc1, 0xe9, 0x48, 0x0d,
-       0xa7, 0xbd, 0x15, 0x9c, 0xee, 0x36, 0x34, 0x3e, 0x35, 0xf6, 0x36, 0xf1,
-       0xbe, 0x67, 0xa3, 0x30, 0x7e, 0xc0, 0xfd, 0xc3, 0x05, 0xc3, 0x3d, 0x35,
-       0xec, 0xf5, 0x68, 0xec, 0x19, 0x69, 0xdc, 0x63, 0xf0, 0x6e, 0x2f, 0x88,
-       0x42, 0xae, 0x11, 0x32, 0x3b, 0x2c, 0x0a, 0x9d, 0xf3, 0x88, 0xbd, 0x67,
-       0x38, 0xa3, 0x81, 0xd8, 0xab, 0xfa, 0x4c, 0xcf, 0x8f, 0x11, 0x7b, 0xff,
-       0x29, 0xce, 0x46, 0x34, 0xd7, 0xea, 0xd8, 0x02, 0x8b, 0x4e, 0x68, 0xae,
-       0x8d, 0x92, 0x30, 0x2c, 0xe4, 0x4b, 0xc6, 0xe2, 0x04, 0x14, 0xb6, 0x92,
-       0xdb, 0xde, 0xf4, 0x76, 0xf9, 0x2d, 0xb8, 0x01, 0xa7, 0xbb, 0x0c, 0x68,
-       0x1d, 0x62, 0x4e, 0x54, 0xb1, 0x7b, 0x17, 0x39, 0xa3, 0x29, 0x90, 0x9d,
-       0x67, 0xa9, 0x37, 0xb6, 0xa4, 0x1b, 0x50, 0xf2, 0x86, 0xc3, 0x66, 0x56,
-       0x43, 0x9b, 0xe7, 0xae, 0x86, 0xae, 0x85, 0x71, 0x58, 0xed, 0x36, 0x1a,
-       0x8e, 0x7a, 0xb9, 0x13, 0x42, 0xe3, 0x15, 0xe8, 0x3a, 0x6e, 0xd3, 0x7e,
-       0x38, 0xf5, 0x81, 0x97, 0xf9, 0xc0, 0x7c, 0x5c, 0x9c, 0x75, 0xaa, 0xf5,
-       0xa0, 0x6f, 0x5c, 0x63, 0xec, 0x57, 0xea, 0x4d, 0xcf, 0xc0, 0x1d, 0xdd,
-       0x4a, 0x79, 0x4b, 0xa3, 0x88, 0x4c, 0xd8, 0xa8, 0x3b, 0xd8, 0x8a, 0x97,
-       0xba, 0x22, 0x38, 0x7b, 0xab, 0xfe, 0x3e, 0x8a, 0x7a, 0xe2, 0x70, 0xd3,
-       0xb5, 0x51, 0x2c, 0x99, 0xa8, 0x62, 0xb2, 0xc1, 0xfb, 0x89, 0xb8, 0x8b,
-       0x98, 0x9c, 0xe7, 0x9d, 0x11, 0xdb, 0x9c, 0x0c, 0xf6, 0xd2, 0xa6, 0xd7,
-       0xc9, 0xf1, 0xe7, 0x93, 0xbb, 0x66, 0x2c, 0xda, 0xbf, 0x62, 0x59, 0xa1,
-       0x73, 0x09, 0x22, 0x58, 0x34, 0x21, 0x07, 0x8e, 0xe9, 0x0a, 0x33, 0x6a,
-       0x89, 0x0d, 0xc4, 0xbb, 0xe6, 0x57, 0x93, 0x71, 0xba, 0x62, 0x69, 0xdb,
-       0xd0, 0xcd, 0xb8, 0xa4, 0xce, 0x24, 0x93, 0xd9, 0x51, 0x62, 0x7d, 0xdb,
-       0xf1, 0x08, 0xea, 0x0e, 0xfc, 0x97, 0x32, 0x02, 0xe6, 0x42, 0xb7, 0x22,
-       0x3e, 0x0b, 0x99, 0x7a, 0x72, 0xc8, 0x45, 0xc4, 0xf1, 0xd8, 0xfe, 0x9d,
-       0x6a, 0x09, 0xc7, 0xdf, 0xbb, 0xbe, 0x19, 0x6d, 0xcb, 0x64, 0x7e, 0x2b,
-       0xf7, 0x9f, 0x4d, 0x17, 0x3a, 0x13, 0x8c, 0xdd, 0x49, 0xb8, 0xb8, 0x6a,
-       0x4c, 0xe6, 0x8e, 0xa1, 0x0e, 0xcd, 0x13, 0x5e, 0xf6, 0x84, 0x88, 0xa1,
-       0xf1, 0x44, 0x0c, 0xfb, 0x8e, 0xeb, 0xfc, 0x8c, 0xc1, 0x1a, 0xf3, 0x66,
-       0x3b, 0x44, 0xa1, 0x9f, 0xf9, 0x39, 0xd3, 0x2f, 0xda, 0xd1, 0x3e, 0x2e,
-       0xa7, 0xb3, 0xc2, 0x0b, 0x1f, 0x80, 0x87, 0x76, 0xd6, 0x65, 0xfb, 0x84,
-       0x8b, 0x15, 0xba, 0x7e, 0x94, 0x75, 0xfe, 0xe8, 0x7a, 0x6a, 0xf0, 0x4e,
-       0xa1, 0x58, 0x5f, 0xa9, 0x79, 0xbd, 0x7c, 0xf5, 0xb1, 0xfe, 0x59, 0x62,
-       0xdd, 0xb8, 0xce, 0x2d, 0x03, 0x33, 0xfe, 0x25, 0xb5, 0x3d, 0x99, 0x65,
-       0xad, 0x9b, 0xc7, 0xbc, 0xaa, 0xe6, 0x13, 0x5a, 0x74, 0x6e, 0xcd, 0xab,
-       0xe5, 0x93, 0x85, 0x33, 0x8c, 0xdd, 0xe1, 0xff, 0x73, 0x5d, 0xb2, 0x90,
-       0x38, 0x60, 0xa0, 0xa5, 0x23, 0x8a, 0x6b, 0x96, 0xb6, 0x39, 0xcd, 0x88,
-       0xe2, 0x26, 0xdf, 0x41, 0x13, 0x31, 0xb1, 0x9f, 0x39, 0x85, 0xf9, 0xd5,
-       0x5c, 0x5b, 0xa9, 0xeb, 0x55, 0x2d, 0xd7, 0xf2, 0xa5, 0x04, 0x6b, 0x93,
-       0xae, 0x05, 0xbd, 0xac, 0x05, 0x16, 0x0e, 0x95, 0xb5, 0x6f, 0x1d, 0xbc,
-       0x4b, 0xce, 0x7e, 0xc5, 0xd7, 0xbe, 0x5d, 0x8c, 0x12, 0x73, 0xe3, 0x41,
-       0xe6, 0xc6, 0xda, 0xf2, 0x25, 0xb5, 0xc6, 0xd3, 0xf5, 0x38, 0x64, 0x3d,
-       0xb6, 0xc4, 0x4d, 0xe3, 0x72, 0xd0, 0x15, 0xa7, 0xee, 0x24, 0x36, 0x3b,
-       0x1b, 0x0d, 0xa5, 0x5e, 0x4e, 0xa7, 0x42, 0xea, 0x98, 0xcc, 0xdd, 0x42,
-       0xba, 0xef, 0x93, 0x9b, 0xd6, 0x9a, 0x51, 0x2c, 0xaf, 0xe5, 0x60, 0xb2,
-       0x96, 0x83, 0x1e, 0x73, 0xd0, 0x6d, 0x45, 0xf8, 0x09, 0x6d, 0x6c, 0x63,
-       0x0e, 0x6e, 0xa3, 0x4e, 0xfd, 0x7e, 0xa9, 0xc2, 0xfb, 0x99, 0x15, 0x22,
-       0x35, 0x73, 0x9e, 0xf9, 0xe4, 0x5e, 0xe6, 0x51, 0xaf, 0xb5, 0x65, 0xce,
-       0x33, 0x66, 0xab, 0x6b, 0xf9, 0xb4, 0xbb, 0xc6, 0xfb, 0x0f, 0xd4, 0xf2,
-       0x69, 0xf5, 0x97, 0xf2, 0x49, 0xf3, 0xd3, 0x0b, 0xbf, 0x43, 0xab, 0xd6,
-       0x22, 0x79, 0xa1, 0xef, 0x97, 0xb3, 0x10, 0xfe, 0xd8, 0xd7, 0x67, 0xd9,
-       0xb0, 0x82, 0xc6, 0x0a, 0xdf, 0x58, 0x41, 0x28, 0x7a, 0x59, 0x3b, 0x6d,
-       0x2f, 0x2f, 0xb2, 0xf4, 0x9d, 0x5e, 0xb7, 0x96, 0xb1, 0xd8, 0x99, 0xfe,
-       0x05, 0xce, 0xb6, 0x2a, 0xd5, 0x97, 0xbe, 0xa4, 0xde, 0x60, 0x5c, 0x62,
-       0xd4, 0x1f, 0xeb, 0x27, 0xb3, 0xa2, 0x7f, 0x52, 0xfb, 0xa6, 0x11, 0x11,
-       0x6f, 0xad, 0x58, 0x35, 0x09, 0xdc, 0x43, 0x3d, 0x73, 0x8e, 0x7e, 0x59,
-       0xe3, 0xcb, 0xa1, 0x35, 0xbc, 0xdb, 0x19, 0xdf, 0xc2, 0xc3, 0xe5, 0xaa,
-       0x7f, 0xf6, 0x95, 0x65, 0x66, 0x1a, 0x23, 0x58, 0xc3, 0x9a, 0x76, 0x98,
-       0x7c, 0xf1, 0x6f, 0xc9, 0x28, 0x5e, 0x24, 0x5f, 0xbc, 0xc4, 0xfb, 0x1d,
-       0xaa, 0xde, 0xcf, 0x9f, 0x45, 0x2a, 0x73, 0x5a, 0xf3, 0x05, 0xb5, 0xf7,
-       0xa1, 0x72, 0x9b, 0x7f, 0x9a, 0x78, 0x7c, 0xb0, 0x24, 0x07, 0xfa, 0x78,
-       0x47, 0xbb, 0x5b, 0xce, 0x0e, 0x0a, 0x81, 0x8d, 0x49, 0x38, 0x66, 0xa0,
-       0xef, 0xe1, 0x52, 0xe3, 0x66, 0xe8, 0x87, 0x02, 0xfa, 0x78, 0xd7, 0x95,
-       0xac, 0x71, 0x8f, 0x95, 0xbf, 0xa4, 0xeb, 0xb0, 0xad, 0xa4, 0xb9, 0x4a,
-       0xa9, 0x8e, 0xb4, 0xd6, 0x4a, 0x79, 0x71, 0xb3, 0xe6, 0x94, 0x48, 0x14,
-       0xca, 0x6f, 0x4b, 0x2c, 0x61, 0xec, 0xf3, 0xc4, 0xd7, 0xbb, 0x5e, 0x3d,
-       0x79, 0x21, 0x24, 0xaf, 0xf7, 0x90, 0xb7, 0x7b, 0x45, 0x5f, 0x85, 0xcf,
-       0xb3, 0x22, 0x3b, 0x69, 0x8b, 0x1e, 0x6a, 0x94, 0x0d, 0xcc, 0x33, 0x77,
-       0xe1, 0x3c, 0x62, 0x4a, 0xe3, 0xca, 0xc0, 0x0f, 0xfc, 0xb5, 0xe4, 0xfc,
-       0x1b, 0xe8, 0x2b, 0xf2, 0x52, 0x05, 0x8b, 0x37, 0x50, 0x27, 0x55, 0xb1,
-       0xf8, 0x43, 0x62, 0x31, 0x57, 0xc3, 0x62, 0x24, 0x48, 0x92, 0xef, 0x3e,
-       0xc7, 0x62, 0xef, 0x1f, 0xe0, 0xf7, 0x2f, 0x62, 0x6e, 0xbd, 0xe6, 0xf7,
-       0xc8, 0x1c, 0xe6, 0x58, 0x9f, 0x3b, 0x02, 0xf2, 0xb0, 0xc6, 0x9b, 0x8d,
-       0xbe, 0x47, 0xeb, 0xb1, 0xe1, 0xd1, 0x18, 0x6e, 0x7e, 0x54, 0xa9, 0xd7,
-       0x7c, 0x78, 0x2d, 0xe4, 0xa2, 0x5f, 0xa4, 0x27, 0x70, 0xa6, 0x25, 0xe9,
-       0xee, 0x83, 0xee, 0xa3, 0x7a, 0xad, 0xdb, 0x8b, 0x5a, 0xa3, 0x84, 0xd4,
-       0x28, 0xb2, 0xff, 0x7d, 0xe6, 0xfa, 0xa6, 0xa4, 0xcc, 0xef, 0xac, 0x70,
-       0x7f, 0xca, 0xa7, 0x16, 0xdf, 0x6b, 0x98, 0x32, 0xdb, 0x6e, 0x54, 0xb1,
-       0x76, 0x4d, 0x0d, 0x6b, 0x5f, 0x9b, 0xb2, 0xf1, 0x4b, 0xd6, 0x85, 0xcd,
-       0xe9, 0x28, 0x56, 0xeb, 0x1a, 0xef, 0xe8, 0x5e, 0x2a, 0x8a, 0x7e, 0xc6,
-       0xc5, 0x58, 0xaa, 0xa8, 0x37, 0xa8, 0x3b, 0x18, 0xcb, 0x55, 0xec, 0xa7,
-       0xce, 0x50, 0x9f, 0xdc, 0x68, 0x56, 0x7b, 0xa9, 0xd1, 0x9a, 0x3e, 0xb9,
-       0xb1, 0xac, 0xf3, 0xd1, 0x25, 0x06, 0xa2, 0x38, 0xcd, 0x35, 0x7b, 0xfc,
-       0xaa, 0x3e, 0x79, 0x1d, 0xa9, 0xac, 0xd6, 0x27, 0x2e, 0x79, 0xbf, 0x54,
-       0xd1, 0x27, 0x5a, 0x8f, 0x68, 0x2d, 0xa2, 0xfb, 0x85, 0x6e, 0xf6, 0x0b,
-       0x72, 0x5a, 0xeb, 0x15, 0xa3, 0x5b, 0xfa, 0x86, 0x19, 0x61, 0x8d, 0xcc,
-       0x30, 0x96, 0x97, 0x61, 0xd7, 0x23, 0x4d, 0x8c, 0x45, 0x23, 0x76, 0x38,
-       0x2b, 0xac, 0x25, 0x9e, 0xe6, 0x4f, 0x6a, 0x90, 0xdf, 0xd3, 0x2e, 0x47,
-       0x35, 0xc7, 0x32, 0xfe, 0x73, 0xe3, 0xff, 0x5e, 0x1b, 0xd7, 0xf3, 0xb3,
-       0xac, 0xd1, 0x7a, 0xcd, 0x8f, 0xac, 0x2a, 0xee, 0xd1, 0xdc, 0xe4, 0xfd,
-       0x19, 0x2e, 0xd0, 0xc6, 0x37, 0xbf, 0x14, 0x47, 0x9b, 0x79, 0xa1, 0xe3,
-       0xf8, 0x09, 0xd7, 0xea, 0x78, 0xdb, 0x78, 0x87, 0x3e, 0x3e, 0x47, 0x1f,
-       0xff, 0xf2, 0xd1, 0x80, 0xdc, 0x84, 0x4f, 0x0d, 0xfa, 0x78, 0x3b, 0x71,
-       0xf3, 0x63, 0xff, 0x7a, 0xb4, 0xb7, 0x26, 0xdd, 0x0f, 0xcc, 0xb9, 0x7a,
-       0x0b, 0x7b, 0x09, 0x7d, 0xa7, 0xe8, 0x67, 0xdd, 0xeb, 0x1c, 0xa3, 0x7f,
-       0x99, 0xcb, 0x15, 0x0d, 0xd2, 0x6e, 0x56, 0xfd, 0xdb, 0x51, 0xf3, 0x6f,
-       0x66, 0x6a, 0x1b, 0xcf, 0xd1, 0xf5, 0x54, 0xeb, 0xd1, 0xfb, 0x2b, 0xfd,
-       0x92, 0x19, 0xdc, 0x5a, 0x89, 0x55, 0x5d, 0x90, 0xb7, 0x5e, 0x2c, 0xea,
-       0x9a, 0xdd, 0xcf, 0x9a, 0xcd, 0x9e, 0xc9, 0x94, 0x83, 0x83, 0x48, 0x4d,
-       0x73, 0xaf, 0xbd, 0xa7, 0x91, 0x0a, 0xd9, 0x4f, 0x0d, 0x9d, 0x67, 0xef,
-       0x93, 0x31, 0x64, 0x6e, 0xa6, 0xa2, 0x27, 0x6f, 0xad, 0xd5, 0xe9, 0xfe,
-       0x9a, 0xae, 0xbc, 0xbf, 0x76, 0x4e, 0x9e, 0xba, 0x72, 0xee, 0x1c, 0x7d,
-       0x97, 0xcb, 0x2d, 0xfd, 0xac, 0xfb, 0x80, 0x37, 0xfc, 0x9f, 0x29, 0x2c,
-       0x6c, 0xac, 0xe8, 0x8e, 0xcf, 0xef, 0x6c, 0x89, 0x8d, 0xe3, 0x17, 0x55,
-       0xa6, 0xe3, 0x2e, 0x13, 0xf5, 0x4a, 0x59, 0xcb, 0x42, 0x14, 0x4b, 0x33,
-       0xaa, 0x18, 0x97, 0x05, 0x0d, 0xca, 0x96, 0xe0, 0x6e, 0xc6, 0x07, 0xb6,
-       0x15, 0x0c, 0x5a, 0x23, 0x45, 0x39, 0xc4, 0x5e, 0x2e, 0xcf, 0x3e, 0x2c,
-       0xdc, 0x0f, 0xad, 0x6f, 0xf5, 0x79, 0x77, 0xeb, 0x3e, 0x8e, 0xef, 0x83,
-       0xb4, 0x67, 0xee, 0xdc, 0x10, 0x8f, 0x95, 0xfe, 0x4a, 0x3d, 0x16, 0x97,
-       0x39, 0xbd, 0x47, 0x84, 0x73, 0x9e, 0xa8, 0xe8, 0xe7, 0x41, 0xad, 0x9f,
-       0x5d, 0x8d, 0xc7, 0x31, 0x4f, 0xce, 0x9e, 0x40, 0x6a, 0xe0, 0x82, 0x29,
-       0xfb, 0x63, 0xd4, 0xcc, 0xeb, 0x6a, 0x7b, 0xad, 0xa8, 0xed, 0xd5, 0x36,
-       0xf5, 0x10, 0xed, 0xd6, 0x78, 0xac, 0xd6, 0x37, 0x23, 0x88, 0xa1, 0x69,
-       0xd4, 0x63, 0x8d, 0x4f, 0xe6, 0x8e, 0xb0, 0xce, 0xc4, 0x8e, 0xef, 0xa8,
-       0xd8, 0xfb, 0xba, 0xff, 0xa4, 0x59, 0xc9, 0xef, 0x13, 0xba, 0x4e, 0x58,
-       0xb0, 0x58, 0x77, 0xae, 0x1c, 0x93, 0xe1, 0x16, 0xf1, 0x91, 0x5a, 0x92,
-       0xf4, 0x12, 0xab, 0x85, 0xd6, 0x3e, 0x49, 0x6a, 0x9f, 0x18, 0x32, 0x27,
-       0xfe, 0x85, 0xf6, 0x69, 0xfd, 0xa6, 0x6b, 0xa1, 0x83, 0x96, 0x51, 0xaf,
-       0xb3, 0xcd, 0x48, 0x52, 0x3b, 0x3b, 0x68, 0xfe, 0x6c, 0x3f, 0x4b, 0xac,
-       0xe2, 0x3e, 0x75, 0x07, 0x1c, 0x5c, 0x33, 0x26, 0x9d, 0xa3, 0xb8, 0x40,
-       0x0e, 0xf7, 0x06, 0xb5, 0x4e, 0xbc, 0x3a, 0x9d, 0x64, 0x4d, 0x77, 0xd0,
-       0xf5, 0xd9, 0x3e, 0x31, 0xd4, 0x8d, 0xe9, 0xb3, 0x0b, 0xd3, 0x26, 0xe3,
-       0xe4, 0x98, 0x47, 0x39, 0xee, 0xa2, 0xfd, 0x44, 0x23, 0xfb, 0x2d, 0xa5,
-       0xfa, 0x59, 0x0f, 0x2c, 0xd6, 0xdc, 0x5e, 0xb4, 0x0f, 0x8e, 0x88, 0xd4,
-       0x40, 0x23, 0x52, 0xfd, 0x31, 0x78, 0xce, 0x3a, 0xa1, 0x7f, 0x63, 0x98,
-       0xd3, 0x24, 0xc0, 0xe3, 0xc5, 0x3f, 0xe7, 0xba, 0xa4, 0xb3, 0x85, 0x18,
-       0x6b, 0xf9, 0xd3, 0x54, 0xbe, 0x05, 0xa9, 0x21, 0x07, 0x9e, 0xfb, 0x3a,
-       0xe7, 0x15, 0xbe, 0x30, 0xef, 0xd9, 0xca, 0x3c, 0xfa, 0xe2, 0x7a, 0xad,
-       0xb5, 0x94, 0x7a, 0x82, 0x7a, 0xab, 0xe0, 0x68, 0xce, 0x11, 0x18, 0xf6,
-       0xf5, 0x9e, 0x3d, 0xae, 0x05, 0x99, 0xb8, 0x03, 0x9f, 0xa8, 0x42, 0x3c,
-       0xec, 0x8c, 0x54, 0x7e, 0x97, 0x90, 0x4e, 0x8e, 0xdc, 0x36, 0x5d, 0xed,
-       0xb3, 0xd8, 0x17, 0x29, 0xf5, 0x22, 0xb9, 0xe9, 0x09, 0x6a, 0x9f, 0xe1,
-       0xa9, 0x4f, 0xd4, 0x34, 0xb5, 0xcd, 0x88, 0xa7, 0xe7, 0x55, 0x39, 0xe8,
-       0xb0, 0xa3, 0xd4, 0xe3, 0xfc, 0x6e, 0xcf, 0xd4, 0x1c, 0x2f, 0xf1, 0x3c,
-       0x72, 0xc2, 0xed, 0xde, 0x7f, 0xab, 0xcd, 0x5f, 0x9a, 0xab, 0xd4, 0x18,
-       0x6d, 0x78, 0xcb, 0xc7, 0xfd, 0x11, 0x24, 0x73, 0xb3, 0xf4, 0xcf, 0x99,
-       0xe5, 0xb2, 0x7f, 0x8a, 0xf7, 0x5c, 0x2f, 0x64, 0x96, 0x77, 0xec, 0x9d,
-       0x07, 0xcd, 0xb5, 0x92, 0xf9, 0x60, 0x78, 0x75, 0x7c, 0xfe, 0x99, 0x2f,
-       0x13, 0x47, 0xf8, 0xbe, 0x39, 0xa3, 0xf7, 0x50, 0xaa, 0xc7, 0xd7, 0x3d,
-       0xfe, 0x08, 0x7b, 0xfc, 0x82, 0x6a, 0xf0, 0xde, 0x50, 0xcf, 0x75, 0xc8,
-       0xfe, 0x11, 0xe1, 0x71, 0xad, 0xcb, 0xba, 0xa0, 0xfb, 0xaa, 0x11, 0xf6,
-       0x55, 0x2e, 0x9e, 0x26, 0xc7, 0x9c, 0x2c, 0x77, 0xe2, 0xf9, 0xb2, 0x87,
-       0x67, 0x58, 0x3f, 0x9e, 0x2a, 0x5b, 0xd8, 0xfa, 0x88, 0xcc, 0x58, 0x62,
-       0x27, 0xce, 0xfb, 0xd2, 0xf9, 0x1e, 0xed, 0x36, 0x03, 0xb9, 0x7f, 0x25,
-       0x79, 0x85, 0x67, 0x14, 0x72, 0x66, 0x8b, 0xb0, 0x03, 0x1b, 0xdf, 0xe9,
-       0x30, 0x70, 0x38, 0x3e, 0x84, 0xbe, 0xf6, 0xbb, 0xf9, 0xb2, 0xd0, 0x7a,
-       0x40, 0xd7, 0x6a, 0xdd, 0x6f, 0x34, 0xe3, 0x4e, 0xf2, 0xd9, 0xd5, 0x4b,
-       0x43, 0xfc, 0x3a, 0xdd, 0xd6, 0xf9, 0x92, 0xa0, 0x66, 0x68, 0x91, 0x59,
-       0xe0, 0xa7, 0xd8, 0xc8, 0x7e, 0x21, 0xb3, 0x6c, 0x7f, 0xad, 0x37, 0xff,
-       0x29, 0x56, 0xea, 0x3e, 0xc3, 0x6f, 0x66, 0xbd, 0xab, 0xc6, 0xe1, 0x70,
-       0xc5, 0x8f, 0x06, 0x9a, 0x0e, 0x16, 0x54, 0xbd, 0x27, 0x73, 0x93, 0x15,
-       0x1d, 0xb5, 0xd0, 0xb9, 0x91, 0x7d, 0x40, 0xc3, 0x01, 0xcf, 0x5d, 0x27,
-       0x14, 0x63, 0xb1, 0x9b, 0xb1, 0x48, 0x86, 0x31, 0xb6, 0xdb, 0xcd, 0x41,
-       0x32, 0x6c, 0x16, 0x79, 0x71, 0x8b, 0xae, 0xb1, 0x75, 0xf5, 0xec, 0xbf,
-       0x59, 0x53, 0x27, 0x0d, 0xf6, 0x23, 0xba, 0x1f, 0x8f, 0x62, 0x2a, 0xdd,
-       0xc6, 0x3e, 0x29, 0x8a, 0xed, 0xe9, 0x1e, 0xea, 0x1a, 0x03, 0xc6, 0xc1,
-       0x4b, 0x6a, 0xe5, 0x17, 0xfa, 0x88, 0x4d, 0xe3, 0x9a, 0xc3, 0x6c, 0xb1,
-       0x91, 0xf9, 0x9b, 0x59, 0x46, 0xb1, 0x76, 0x8b, 0xee, 0xe1, 0xf5, 0x1d,
-       0x1c, 0xf6, 0xc7, 0x06, 0xa6, 0x17, 0x38, 0xd8, 0xd5, 0x2d, 0x13, 0x05,
-       0xe8, 0x5c, 0xfe, 0x6a, 0x4d, 0x81, 0x93, 0xfd, 0xbd, 0x3a, 0x03, 0x67,
-       0x03, 0x6d, 0x91, 0x75, 0x4a, 0xb5, 0xa6, 0x4d, 0xe4, 0x2a, 0xf5, 0x26,
-       0xe1, 0x64, 0xd9, 0xff, 0xcd, 0x4c, 0xb1, 0x27, 0x3b, 0xa8, 0xd4, 0x4e,
-       0x62, 0xe9, 0xe3, 0x8e, 0xe1, 0x43, 0xec, 0xc4, 0xf7, 0xb6, 0xb2, 0xb7,
-       0xfa, 0x3a, 0xdb, 0xb7, 0xb7, 0x8a, 0xdf, 0x24, 0x7f, 0x1b, 0xdd, 0x09,
-       0xe8, 0x7e, 0xa7, 0xa0, 0x22, 0x9e, 0x37, 0xfb, 0x38, 0xb5, 0xe0, 0x6f,
-       0x96, 0x75, 0xc1, 0x9d, 0x5f, 0xf5, 0xd5, 0x6a, 0x6a, 0xa9, 0x8f, 0xc8,
-       0xf9, 0x61, 0xe5, 0x73, 0xcc, 0x59, 0x37, 0x7e, 0x49, 0x6d, 0xa6, 0x6f,
-       0x7a, 0xaa, 0x76, 0x59, 0xf5, 0x01, 0x9b, 0xc4, 0x6b, 0xe1, 0xac, 0xf9,
-       0x03, 0x36, 0x7d, 0x5e, 0xef, 0x62, 0xce, 0x9a, 0xf1, 0xc5, 0xb4, 0x51,
-       0xba, 0xd3, 0x15, 0xfc, 0xf8, 0xf8, 0xc8, 0x1b, 0x4e, 0xcc, 0x47, 0xa1,
-       0x93, 0x39, 0x36, 0xfb, 0x4f, 0x1c, 0x6b, 0x5f, 0x0a, 0xfc, 0xa6, 0xfc,
-       0x5d, 0xf2, 0xbe, 0xd1, 0xd5, 0x82, 0xc2, 0x0c, 0x6d, 0x3c, 0xf4, 0x75,
-       0x62, 0x32, 0x3f, 0x86, 0xfb, 0xd8, 0x46, 0xe0, 0x59, 0xd6, 0xdb, 0x63,
-       0xe4, 0x8c, 0xe6, 0xb4, 0x83, 0x32, 0x9f, 0x8f, 0x94, 0x92, 0x83, 0xa7,
-       0x99, 0xb7, 0xc7, 0xf9, 0x7c, 0x94, 0xf7, 0xdc, 0x4a, 0x7d, 0x77, 0xef,
-       0x78, 0x3d, 0xbe, 0x3d, 0x1e, 0xc3, 0xd6, 0xf1, 0x80, 0x9a, 0x02, 0xb7,
-       0x35, 0x72, 0xdf, 0x57, 0x89, 0xe7, 0xcd, 0x4b, 0xaf, 0xc3, 0x5a, 0x27,
-       0xe9, 0xde, 0xcd, 0xdc, 0xab, 0x3b, 0x08, 0xc7, 0x21, 0x8e, 0xfe, 0xd9,
-       0x5b, 0x2e, 0xd0, 0x44, 0xbd, 0xbf, 0xd4, 0x12, 0xeb, 0xc7, 0x57, 0x57,
-       0x9e, 0x47, 0xd2, 0x79, 0x6a, 0x0b, 0x62, 0xb2, 0x44, 0x4c, 0x32, 0x36,
-       0x4f, 0x97, 0x88, 0x4b, 0x6a, 0xc3, 0x93, 0x25, 0x8d, 0x6d, 0x1f, 0xcf,
-       0x75, 0x0c, 0xa9, 0x2a, 0x56, 0x3e, 0x55, 0x4f, 0x78, 0xaf, 0x45, 0x50,
-       0x6f, 0xe9, 0xdf, 0x76, 0xf0, 0x66, 0x31, 0xe1, 0x6c, 0x28, 0x6b, 0x3c,
-       0xfc, 0x6d, 0x0d, 0x0f, 0x6f, 0x47, 0xaa, 0xfa, 0x44, 0xce, 0x4c, 0x42,
-       0x73, 0xdd, 0x62, 0xe7, 0xa6, 0xd2, 0xf0, 0x34, 0x7d, 0x9f, 0xa7, 0xc6,
-       0x76, 0xdf, 0x67, 0xc8, 0xc7, 0xa6, 0x8c, 0x2e, 0xf6, 0xd4, 0xf4, 0x87,
-       0xbe, 0x33, 0xf3, 0x37, 0x2d, 0x3b, 0x75, 0x4c, 0x8e, 0x17, 0x71, 0x2b,
-       0xfb, 0x1e, 0x3f, 0x44, 0xf5, 0x6e, 0x53, 0xbc, 0xf3, 0x43, 0xbc, 0xf3,
-       0x0f, 0xf9, 0x3c, 0x51, 0x4a, 0x66, 0x7b, 0x78, 0xe7, 0x27, 0xf9, 0x3c,
-       0x59, 0x6a, 0xad, 0xd3, 0x67, 0x4c, 0x4e, 0x85, 0xac, 0x03, 0x2f, 0xab,
-       0x52, 0xbc, 0x12, 0x0e, 0xf6, 0xc0, 0x06, 0x1a, 0x0e, 0xce, 0xf1, 0xb3,
-       0xfe, 0x6d, 0x49, 0xd7, 0x38, 0xcd, 0xf9, 0x83, 0xba, 0x26, 0x67, 0xae,
-       0x14, 0x97, 0xd4, 0x47, 0x9e, 0x0c, 0x9f, 0xc6, 0x29, 0x35, 0x1f, 0xa9,
-       0x99, 0xf9, 0x42, 0x4e, 0xaf, 0x30, 0xa4, 0xbb, 0xc8, 0xac, 0x72, 0x75,
-       0x67, 0x8d, 0xab, 0xbd, 0xa9, 0x1b, 0xeb, 0xaa, 0x77, 0x48, 0x39, 0x47,
-       0x30, 0x8f, 0xd8, 0xd7, 0x35, 0x55, 0xf3, 0x8f, 0xfe, 0x4c, 0x7d, 0x67,
-       0x85, 0x09, 0x93, 0x7e, 0x08, 0x6f, 0xd5, 0x63, 0xd1, 0xda, 0x6f, 0x3e,
-       0x29, 0x5f, 0xf7, 0x82, 0xd3, 0xf1, 0x1e, 0x7e, 0xa7, 0x7b, 0xc1, 0x4f,
-       0x54, 0x2e, 0xde, 0xf3, 0x19, 0x67, 0x15, 0xd0, 0x45, 0xed, 0xf1, 0x3e,
-       0x39, 0xa1, 0x83, 0x2a, 0x4a, 0xe0, 0x14, 0xfb, 0xb0, 0x23, 0x5d, 0x49,
-       0x67, 0x17, 0xf7, 0x0b, 0x1d, 0x87, 0x5c, 0xb0, 0x93, 0x3a, 0x93, 0x73,
-       0xca, 0x1d, 0x5c, 0xa3, 0xb9, 0xf0, 0x3e, 0xfa, 0xe6, 0xb7, 0xed, 0x96,
-       0xe7, 0x63, 0x57, 0xe9, 0x39, 0xc3, 0xf2, 0xb4, 0x5f, 0x52, 0x99, 0x5d,
-       0xb4, 0xe7, 0x2c, 0xed, 0x89, 0x78, 0x21, 0xb9, 0x31, 0x55, 0x59, 0x5f,
-       0xb0, 0xb4, 0x1d, 0x15, 0x7b, 0x38, 0xa6, 0x39, 0x4f, 0xf6, 0x9f, 0x62,
-       0x8d, 0xdd, 0x02, 0xfd, 0x3b, 0x85, 0xb6, 0xa1, 0x2d, 0xb1, 0x85, 0xf6,
-       0x1c, 0x8e, 0x57, 0xf8, 0x94, 0xdf, 0xf1, 0xbc, 0x92, 0xb1, 0xbe, 0x9e,
-       0x78, 0xbf, 0x22, 0x9d, 0x60, 0x6c, 0xbb, 0xa8, 0xef, 0xab, 0x71, 0xde,
-       0x57, 0xc1, 0xf2, 0xff, 0x00, 0xb0, 0x60, 0x72, 0xf9, 0x60, 0x17, 0x00,
-       0x00, 0x00 };
-
-static const u32 bnx2_TPAT_b06FwData[(0x0/4) + 1] = { 0x0 };
-static const u32 bnx2_TPAT_b06FwRodata[(0x0/4) + 1] = { 0x0 };
-
-static struct fw_info bnx2_tpat_fw_06 = {
-       /* Firmware version: 4.6.16 */
-       .ver_major                      = 0x4,
-       .ver_minor                      = 0x6,
-       .ver_fix                        = 0x10,
-
-       .start_addr                     = 0x08000488,
-
-       .text_addr                      = 0x08000400,
-       .text_len                       = 0x175c,
-       .text_index                     = 0x0,
-       .gz_text                        = bnx2_TPAT_b06FwText,
-       .gz_text_len                    = sizeof(bnx2_TPAT_b06FwText),
-
-       .data_addr                      = 0x00000000,
-       .data_len                       = 0x0,
-       .data_index                     = 0x0,
-       .data                           = bnx2_TPAT_b06FwData,
-
-       .sbss_addr                      = 0x08001b80,
-       .sbss_len                       = 0x44,
-       .sbss_index                     = 0x0,
-
-       .bss_addr                       = 0x08001bc4,
-       .bss_len                        = 0x450,
-       .bss_index                      = 0x0,
-
-       .rodata_addr                    = 0x00000000,
-       .rodata_len                     = 0x0,
-       .rodata_index                   = 0x0,
-       .rodata                         = bnx2_TPAT_b06FwRodata,
-};
-
 /* Initialized Values for the TX Patch-up Processor. */
 static const struct cpu_reg cpu_reg_tpat = {
        .mode = BNX2_TPAT_CPU_MODE,
@@ -3570,882 +71,6 @@ static const struct cpu_reg cpu_reg_tpat = {
        .mips_view_base = 0x8000000,
 };
 
-static u8 bnx2_TXP_b06FwText[] = {
-       0xad, 0x7b, 0x0f, 0x70, 0x54, 0xe7, 0x75, 0xef, 0xef, 0xee, 0x1f, 0x69,
-       0x57, 0x5a, 0xad, 0x2e, 0x78, 0xc1, 0xab, 0x54, 0x29, 0x7b, 0xd9, 0xbb,
-       0xd2, 0x1a, 0x09, 0xb8, 0x0b, 0xc2, 0x88, 0xe8, 0xd6, 0x6c, 0x85, 0x00,
-       0x21, 0x64, 0x2c, 0x63, 0x25, 0x15, 0x7d, 0x9e, 0x5a, 0x0f, 0x64, 0x23,
-       0xdb, 0xd8, 0x16, 0x35, 0x6d, 0xe5, 0xd4, 0xad, 0xd6, 0x92, 0xc0, 0xc2,
-       0xac, 0xb8, 0x22, 0x0b, 0x11, 0xee, 0xf4, 0xbd, 0xc8, 0x96, 0xb0, 0xb0,
-       0xb3, 0x62, 0xed, 0xa4, 0xaf, 0xd3, 0xcc, 0x34, 0xe3, 0x7d, 0xfe, 0x83,
-       0x49, 0x1e, 0xb6, 0xd3, 0x4e, 0xe7, 0x3d, 0xa7, 0xf3, 0xde, 0x84, 0x17,
-       0x63, 0x62, 0xa7, 0x89, 0xed, 0xe6, 0xa5, 0xf3, 0x44, 0xea, 0xf8, 0xbe,
-       0xdf, 0xb9, 0x77, 0x17, 0x88, 0x9b, 0x4e, 0x67, 0x3a, 0x4f, 0x33, 0x9a,
-       0xd5, 0xde, 0x3f, 0xdf, 0x77, 0xce, 0xf9, 0xce, 0xf9, 0x9d, 0xdf, 0x39,
-       0xdf, 0xa7, 0x06, 0xa0, 0x0a, 0xa5, 0x9f, 0x1a, 0xfe, 0xb6, 0x0c, 0x0d,
-       0x1f, 0x4a, 0xad, 0xb9, 0x75, 0x0d, 0xff, 0xbc, 0x15, 0x6a, 0x85, 0x4f,
-       0x6e, 0xde, 0xaa, 0x00, 0xfd, 0x3f, 0xc6, 0xbf, 0xeb, 0xe7, 0xf3, 0xff,
-       0xbe, 0xd7, 0x9c, 0x1f, 0x2f, 0xa0, 0x96, 0xe5, 0x92, 0x5f, 0x04, 0x3c,
-       0xe6, 0xcc, 0x17, 0xda, 0x75, 0x04, 0xbc, 0x66, 0xaf, 0xb9, 0x4f, 0x07,
-       0xd2, 0xf9, 0xa6, 0xd8, 0x16, 0xfc, 0xd2, 0xce, 0x44, 0x7c, 0x90, 0xeb,
-       0x9f, 0x37, 0x3f, 0x19, 0xf9, 0xf6, 0x46, 0xed, 0xe3, 0x19, 0x2f, 0x02,
-       0xaa, 0x79, 0x1a, 0x6a, 0x03, 0x02, 0xf5, 0x7c, 0xe7, 0xcf, 0x1b, 0xfd,
-       0x5e, 0x84, 0xcb, 0x63, 0xb5, 0x62, 0xcc, 0x42, 0x26, 0x60, 0x0e, 0xa1,
-       0x72, 0x03, 0xf0, 0x5e, 0x36, 0x61, 0x8c, 0x01, 0x53, 0x1e, 0x33, 0x11,
-       0x7b, 0x05, 0x06, 0x0e, 0x17, 0x62, 0xe8, 0xe0, 0xef, 0x0e, 0xeb, 0x53,
-       0x3b, 0xe6, 0x47, 0xc6, 0xcb, 0xe7, 0xf6, 0xb6, 0x00, 0x5b, 0xb3, 0x06,
-       0x8e, 0x58, 0x08, 0xd4, 0x99, 0x8f, 0x63, 0x13, 0x3f, 0xc3, 0xe6, 0x30,
-       0xde, 0x9a, 0x8c, 0xc7, 0x9e, 0x83, 0xd6, 0xa7, 0x7b, 0xb5, 0x61, 0xa0,
-       0x69, 0x70, 0x40, 0xd1, 0xfa, 0xdf, 0x56, 0xb4, 0x9e, 0x49, 0x05, 0x01,
-       0x85, 0xcf, 0x35, 0xe5, 0xe5, 0x73, 0x18, 0xab, 0xf2, 0x01, 0x5c, 0xf2,
-       0xca, 0xfc, 0xbf, 0x45, 0x7b, 0x2b, 0xf0, 0xe9, 0xad, 0x18, 0xa7, 0x0c,
-       0x7e, 0x53, 0xc1, 0xb3, 0x2d, 0x89, 0xe8, 0x28, 0xe4, 0x7e, 0x0c, 0x5b,
-       0x0a, 0xf2, 0xa9, 0x51, 0x6b, 0xdb, 0x1e, 0x37, 0x6c, 0xfb, 0x8c, 0x51,
-       0x89, 0x8c, 0xaa, 0x45, 0x01, 0x05, 0xa3, 0x86, 0x07, 0x69, 0xb5, 0x3d,
-       0xe6, 0x83, 0x16, 0xbd, 0x17, 0xff, 0x4c, 0x9d, 0xd3, 0x49, 0x3f, 0xdc,
-       0xe7, 0xfb, 0x51, 0x89, 0xa2, 0xea, 0x5a, 0xed, 0xd9, 0xac, 0x6d, 0x9f,
-       0xd7, 0x7d, 0x38, 0x43, 0xfb, 0x8c, 0xe6, 0xff, 0xd9, 0x2e, 0xd2, 0x36,
-       0xe3, 0x7a, 0x79, 0xfe, 0x00, 0x66, 0x54, 0xdb, 0x9e, 0xe5, 0xbd, 0x23,
-       0xf9, 0xb2, 0x9d, 0x6d, 0xdb, 0xa3, 0xdb, 0xf6, 0x3e, 0xfd, 0x17, 0xf6,
-       0xde, 0x5f, 0x79, 0xd6, 0xb6, 0x9f, 0x32, 0x6e, 0xc2, 0xd9, 0x5c, 0x87,
-       0xd2, 0x35, 0xbf, 0x3c, 0xbc, 0x63, 0xda, 0xc6, 0x79, 0x03, 0xaa, 0xc7,
-       0xdc, 0xa6, 0xec, 0x98, 0xef, 0x54, 0xb6, 0x16, 0x76, 0x2b, 0xdb, 0x66,
-       0x7f, 0x57, 0xe9, 0x9c, 0xef, 0x57, 0xb6, 0x17, 0xa2, 0x98, 0xb3, 0x22,
-       0x98, 0xb5, 0xfa, 0x94, 0x8e, 0xf9, 0x5e, 0xc5, 0xd5, 0x63, 0x58, 0x69,
-       0x2f, 0x94, 0xc7, 0xba, 0x6e, 0xc7, 0x1d, 0x59, 0x13, 0x13, 0x56, 0x25,
-       0xe7, 0x59, 0xb4, 0xbf, 0xdd, 0xb8, 0x48, 0x3d, 0x0d, 0x1c, 0x2d, 0x3c,
-       0x85, 0xdb, 0xa7, 0x6d, 0x3b, 0x9f, 0x02, 0xf2, 0x05, 0xe0, 0xeb, 0x56,
-       0xbc, 0x67, 0x50, 0xb1, 0xed, 0xed, 0x09, 0x7b, 0xc5, 0x15, 0xa3, 0x29,
-       0xf9, 0x1a, 0xfe, 0xaf, 0x3d, 0x13, 0x41, 0x26, 0xc4, 0x31, 0x8e, 0x71,
-       0xcd, 0x1e, 0x98, 0x44, 0xa0, 0xd2, 0x1c, 0xc7, 0x8f, 0xb2, 0x08, 0x54,
-       0x98, 0x19, 0x9c, 0xcf, 0x8e, 0xaa, 0x01, 0xc4, 0xa3, 0x3b, 0x94, 0xcc,
-       0xb0, 0x07, 0xda, 0xd0, 0xbb, 0xd0, 0x62, 0x5c, 0x8f, 0x0b, 0xaf, 0x2a,
-       0x5a, 0xf1, 0x35, 0x68, 0xe9, 0x5f, 0x28, 0x5a, 0x67, 0x9d, 0x17, 0x69,
-       0x4f, 0x22, 0x80, 0x6f, 0x37, 0xca, 0x9a, 0x8c, 0x63, 0x8d, 0xb3, 0x36,
-       0x19, 0xdc, 0x72, 0x6d, 0x6d, 0x4c, 0x8c, 0x52, 0xae, 0x23, 0x94, 0xeb,
-       0x75, 0x43, 0x8b, 0x3e, 0x0b, 0x7b, 0xc5, 0x80, 0x21, 0xf7, 0x4c, 0x8c,
-       0x17, 0xec, 0x58, 0xd8, 0xbc, 0x44, 0x79, 0x91, 0xf9, 0x9c, 0x19, 0xc8,
-       0xd4, 0x9a, 0xbf, 0xb4, 0xdf, 0xdc, 0x10, 0xc5, 0xcb, 0x85, 0x08, 0x5e,
-       0x2a, 0xa8, 0x78, 0xb1, 0xd0, 0x01, 0xab, 0x80, 0xf0, 0xed, 0x85, 0x5f,
-       0xe7, 0xc7, 0x36, 0x42, 0x7c, 0x9e, 0x72, 0x87, 0x77, 0x16, 0x7c, 0xfd,
-       0x15, 0x26, 0x7a, 0xbe, 0x93, 0x1d, 0xb1, 0xab, 0x74, 0xf4, 0x2f, 0x31,
-       0xf5, 0xf4, 0x2a, 0x25, 0xd4, 0x4a, 0x3f, 0xec, 0x79, 0x23, 0xdf, 0xea,
-       0xd3, 0x8f, 0x07, 0xe1, 0xa7, 0xfd, 0xb7, 0x16, 0x6c, 0x7b, 0xcc, 0x38,
-       0xb8, 0x76, 0x6f, 0xeb, 0x37, 0x8b, 0x3d, 0x7a, 0x37, 0x32, 0x85, 0x01,
-       0x20, 0x6c, 0xf2, 0x93, 0xa1, 0xb8, 0xbb, 0xb9, 0x23, 0x76, 0xae, 0xdf,
-       0xe7, 0xfa, 0x33, 0x65, 0xa0, 0xdd, 0x5f, 0xb2, 0x28, 0x83, 0xf5, 0x47,
-       0x61, 0x54, 0xc5, 0xa8, 0xdf, 0xf7, 0x28, 0x67, 0x12, 0xdf, 0x28, 0xe8,
-       0x94, 0xad, 0x99, 0x32, 0xc6, 0x28, 0x5f, 0x00, 0x7b, 0x73, 0xda, 0x54,
-       0x06, 0xda, 0xc4, 0x0c, 0x56, 0x23, 0x1d, 0x51, 0xe9, 0x83, 0x7f, 0x06,
-       0x77, 0x8c, 0x6e, 0x1c, 0xb7, 0xb0, 0x4e, 0x35, 0xb9, 0xbe, 0x29, 0x3c,
-       0x5e, 0x81, 0x44, 0xff, 0xc7, 0x8a, 0x82, 0x37, 0x13, 0xdd, 0x98, 0xa4,
-       0x3e, 0xdd, 0xf9, 0x20, 0x1e, 0xcc, 0x55, 0xe1, 0xfe, 0x9c, 0x8d, 0x07,
-       0x52, 0x30, 0xab, 0xa8, 0x4f, 0x32, 0x95, 0x88, 0xbd, 0x0f, 0x1f, 0x3a,
-       0xf2, 0xdd, 0x8c, 0xa5, 0x2d, 0x48, 0x57, 0x04, 0xb0, 0x25, 0x1f, 0x62,
-       0x3c, 0xa6, 0x71, 0x7a, 0x3a, 0x00, 0xff, 0x7a, 0x0f, 0x66, 0x22, 0x15,
-       0x48, 0x36, 0x78, 0xf8, 0x1b, 0x09, 0xb7, 0x4f, 0xd7, 0x87, 0xb7, 0x5a,
-       0x3e, 0xec, 0xb7, 0x3c, 0x18, 0xc9, 0xd9, 0x76, 0x87, 0x61, 0xe3, 0xea,
-       0x7a, 0x15, 0xdf, 0xa2, 0xfd, 0x0e, 0x5a, 0x51, 0x9c, 0x2d, 0x3c, 0x49,
-       0x59, 0x22, 0xae, 0xbc, 0x16, 0x65, 0xb7, 0x28, 0xbb, 0x45, 0xb9, 0x2d,
-       0x91, 0xf3, 0x55, 0xc6, 0x8c, 0x41, 0xbd, 0x82, 0x94, 0xa1, 0x1a, 0x83,
-       0x94, 0x23, 0x9e, 0xb2, 0xe1, 0x49, 0x69, 0x99, 0xbd, 0x04, 0xaf, 0x15,
-       0x0d, 0xb6, 0xfd, 0xf1, 0x7a, 0xd1, 0x85, 0x6b, 0xee, 0xe9, 0x96, 0x18,
-       0xfd, 0xed, 0x1a, 0xc6, 0xd5, 0xf7, 0x69, 0xb7, 0xa7, 0x0b, 0x41, 0x0c,
-       0xe7, 0x1c, 0xbf, 0x3d, 0x54, 0x41, 0xb9, 0x45, 0xae, 0x82, 0x9e, 0x60,
-       0x8c, 0x26, 0xfa, 0x18, 0xa3, 0xd8, 0x49, 0x99, 0x1f, 0xb0, 0x22, 0xe1,
-       0x8e, 0xe9, 0x44, 0xeb, 0x6e, 0xc5, 0x87, 0xed, 0xf9, 0xeb, 0x72, 0x52,
-       0x5f, 0x89, 0x41, 0xea, 0xaa, 0x52, 0xbe, 0x08, 0xf6, 0x51, 0xce, 0x97,
-       0x4a, 0x72, 0xce, 0x16, 0x64, 0xae, 0xcf, 0xca, 0x5a, 0x96, 0x13, 0x99,
-       0xa5, 0x66, 0x44, 0x41, 0x55, 0x08, 0xbb, 0xf3, 0xef, 0x70, 0x2d, 0xea,
-       0xf1, 0x4d, 0xae, 0xc1, 0xcb, 0x8c, 0x91, 0x6f, 0x5c, 0xf3, 0x17, 0x59,
-       0x8f, 0x27, 0xb8, 0x0e, 0xda, 0xe9, 0x0c, 0x42, 0xe8, 0x2f, 0xa4, 0x71,
-       0x78, 0x1a, 0xe9, 0x39, 0xe3, 0x18, 0xe3, 0x7d, 0x39, 0xbc, 0x7a, 0x65,
-       0x5a, 0xd5, 0xab, 0xb0, 0x6f, 0x36, 0x82, 0xa1, 0x42, 0x3b, 0xac, 0x5c,
-       0x04, 0x07, 0xe8, 0x9b, 0x1f, 0xa6, 0xd2, 0x0f, 0x84, 0x21, 0xb2, 0x47,
-       0xf0, 0x20, 0xdf, 0x79, 0x6a, 0x3a, 0x82, 0x41, 0xda, 0x68, 0x47, 0x2a,
-       0xd1, 0x1a, 0xe4, 0xb5, 0xfd, 0xbc, 0x76, 0x84, 0xf6, 0x7f, 0xd5, 0x98,
-       0x44, 0x7f, 0x8f, 0x96, 0x04, 0x22, 0xb8, 0xcf, 0x82, 0x4a, 0x17, 0x7e,
-       0x82, 0xf8, 0x96, 0x7c, 0x95, 0xdf, 0xef, 0x2d, 0x54, 0x51, 0xdf, 0x30,
-       0xa2, 0xfa, 0x27, 0xb6, 0xbf, 0xc5, 0xb6, 0xbf, 0x66, 0x24, 0x2e, 0xfc,
-       0xd0, 0xeb, 0xc3, 0x63, 0x05, 0x0f, 0x86, 0x67, 0xab, 0xf0, 0xfb, 0x39,
-       0x1f, 0xee, 0x6c, 0xa8, 0xc2, 0xc1, 0xd9, 0x34, 0xc6, 0xa6, 0xab, 0x30,
-       0x90, 0xc3, 0x8a, 0xfb, 0x8c, 0xb1, 0x25, 0x15, 0xd0, 0x16, 0x3b, 0x90,
-       0xc4, 0x55, 0xae, 0xc3, 0x63, 0xb3, 0xa1, 0x70, 0xdf, 0xb4, 0x8a, 0xe1,
-       0xf9, 0x20, 0x9f, 0xf7, 0xf0, 0xf9, 0x4a, 0x18, 0xeb, 0xe2, 0xc3, 0x2a,
-       0x44, 0xc6, 0x6a, 0x3c, 0x3c, 0x1b, 0xc4, 0x43, 0x39, 0x15, 0x07, 0xa6,
-       0x5b, 0x30, 0x65, 0xa5, 0x71, 0x94, 0xd8, 0xf1, 0xf5, 0x94, 0xd6, 0x73,
-       0x40, 0xd1, 0xd2, 0x5b, 0x95, 0x34, 0x1a, 0x53, 0x7e, 0x5c, 0x22, 0x0e,
-       0xf9, 0x53, 0x4d, 0xad, 0x2f, 0x12, 0x1b, 0x2a, 0xcc, 0x08, 0xbf, 0x6b,
-       0x13, 0x8c, 0xd9, 0xb4, 0xdf, 0xb3, 0x1e, 0x58, 0x26, 0xf1, 0x1b, 0x09,
-       0x77, 0x59, 0x6a, 0xb8, 0xab, 0x50, 0x1f, 0xde, 0x61, 0x45, 0xc3, 0x3b,
-       0x18, 0x5f, 0x5b, 0xc5, 0x1f, 0xad, 0x00, 0x8e, 0xa5, 0x7e, 0x69, 0xf7,
-       0x2f, 0x71, 0xf0, 0x2c, 0x7c, 0xfb, 0xb4, 0x96, 0x99, 0x81, 0x66, 0x30,
-       0x1b, 0x60, 0x72, 0xde, 0xc7, 0xf5, 0x53, 0xb0, 0x44, 0x6f, 0x21, 0x8e,
-       0xab, 0x78, 0x98, 0x98, 0xf2, 0xb7, 0xc4, 0x94, 0x81, 0xe3, 0x71, 0x75,
-       0x0a, 0x41, 0xda, 0x1b, 0xd8, 0x7b, 0x2e, 0xc2, 0x35, 0xef, 0xc4, 0x93,
-       0x94, 0x6b, 0xc7, 0x86, 0x08, 0xee, 0x2f, 0xa8, 0xe1, 0x4e, 0xae, 0xdf,
-       0xfb, 0xf9, 0x68, 0x78, 0x0b, 0xd7, 0xf2, 0xdd, 0xbc, 0x16, 0x2b, 0xe2,
-       0x9f, 0xc4, 0x9f, 0x92, 0xf0, 0x00, 0xf7, 0x1d, 0xf7, 0xa3, 0x18, 0x91,
-       0xb9, 0x68, 0x73, 0xeb, 0x65, 0x3b, 0xa4, 0xeb, 0xa7, 0x0f, 0xd0, 0xd6,
-       0x8f, 0x16, 0x42, 0x78, 0xc8, 0xd2, 0x92, 0xdf, 0x50, 0x42, 0xb4, 0x69,
-       0x80, 0x76, 0x20, 0xc0, 0x2c, 0x97, 0xe7, 0x52, 0x88, 0x2d, 0x77, 0xb1,
-       0xf6, 0xe0, 0xac, 0xf8, 0x09, 0xd7, 0xde, 0xa2, 0x0f, 0xd0, 0x7f, 0xbe,
-       0x71, 0x2d, 0x56, 0x35, 0x35, 0xe3, 0x60, 0x77, 0x92, 0xfe, 0xe2, 0xda,
-       0xe8, 0xc4, 0xb4, 0xd8, 0x41, 0x9b, 0x82, 0x27, 0x8d, 0xb5, 0xeb, 0xfe,
-       0xd6, 0xbe, 0xb4, 0x4c, 0xec, 0xa1, 0x62, 0x84, 0x36, 0x3c, 0x6d, 0xd9,
-       0xf6, 0xd5, 0xf5, 0x3f, 0xb5, 0x5b, 0x6f, 0x16, 0xbb, 0x88, 0xae, 0xdf,
-       0x52, 0x24, 0x8f, 0x2c, 0xd1, 0xc3, 0xff, 0x1f, 0x7c, 0xe5, 0x0f, 0xed,
-       0x7e, 0x47, 0x3f, 0xf1, 0x17, 0x1f, 0x7d, 0xf1, 0x49, 0x8e, 0xed, 0x41,
-       0x3f, 0xc7, 0x7b, 0xc4, 0xb2, 0x3f, 0xaa, 0x33, 0x3f, 0xb5, 0x5b, 0x37,
-       0xea, 0x43, 0x8b, 0xca, 0xff, 0xe0, 0xf5, 0x08, 0x1e, 0x2e, 0xb4, 0xd2,
-       0x76, 0x1d, 0x78, 0xca, 0x12, 0x3c, 0xec, 0x64, 0xbc, 0x45, 0xe9, 0xcf,
-       0xf5, 0xf4, 0x6f, 0x9f, 0xb2, 0xd5, 0xca, 0x63, 0xc7, 0x64, 0x06, 0xdb,
-       0xe9, 0xef, 0x17, 0xb2, 0xf1, 0xd6, 0xe7, 0xa1, 0x65, 0xa8, 0x43, 0xb8,
-       0x93, 0x36, 0xee, 0xb0, 0xb4, 0x4e, 0x59, 0xd3, 0x0e, 0xe2, 0xd2, 0x2b,
-       0xd9, 0x68, 0xb8, 0xbd, 0x20, 0xf6, 0xae, 0x0f, 0x6f, 0x29, 0xdc, 0xca,
-       0xb5, 0x57, 0xb0, 0x69, 0x75, 0x80, 0x38, 0x73, 0x07, 0xdc, 0x75, 0x75,
-       0xd7, 0xee, 0xcd, 0x54, 0x53, 0xff, 0x4f, 0xd1, 0x85, 0xcc, 0x32, 0xf7,
-       0xda, 0x30, 0xaf, 0xd5, 0xae, 0x47, 0xf8, 0x0e, 0xfa, 0xc1, 0x3d, 0xf4,
-       0x83, 0xab, 0xeb, 0x7f, 0x69, 0xc7, 0x6e, 0x72, 0xfd, 0xa0, 0x7d, 0xda,
-       0x17, 0xde, 0x46, 0x3b, 0x6d, 0x35, 0x14, 0xcc, 0x1a, 0x4f, 0xa1, 0xff,
-       0x1a, 0x77, 0x48, 0xcf, 0x9c, 0x35, 0xd2, 0xc4, 0x91, 0x36, 0xf8, 0x96,
-       0x60, 0xe6, 0x79, 0xe3, 0x30, 0x62, 0xae, 0xef, 0xe0, 0x40, 0x2e, 0x88,
-       0xcc, 0x9d, 0x2a, 0xe6, 0x1a, 0x55, 0x3c, 0xc2, 0xb1, 0x3f, 0x4c, 0x35,
-       0x0d, 0xbe, 0x45, 0x1b, 0xcc, 0x2c, 0x91, 0x6b, 0x69, 0xfc, 0x95, 0xf1,
-       0x65, 0xe0, 0x26, 0x77, 0xee, 0x79, 0x89, 0xd1, 0xf9, 0x16, 0x1c, 0x29,
-       0xf4, 0x29, 0x2e, 0x6e, 0x6a, 0x9d, 0x69, 0x7c, 0xcf, 0x16, 0x2c, 0x9d,
-       0x27, 0x86, 0xb4, 0xd3, 0xa7, 0xc6, 0xe9, 0x47, 0xa3, 0xc4, 0x90, 0xed,
-       0xf4, 0xa3, 0x27, 0xf3, 0xa2, 0x53, 0xc2, 0x30, 0xbc, 0x37, 0x33, 0x37,
-       0xd3, 0x3e, 0x96, 0x93, 0xf3, 0x6b, 0x55, 0xfd, 0x30, 0xa6, 0x1c, 0xd9,
-       0x86, 0x95, 0x3b, 0xc8, 0x31, 0x2e, 0xf9, 0x51, 0x1b, 0xd5, 0x1f, 0xc1,
-       0x69, 0xe7, 0x5a, 0x84, 0xef, 0xa6, 0x3d, 0x1e, 0x1d, 0xaa, 0x6a, 0x76,
-       0x30, 0xaf, 0x8a, 0xef, 0x77, 0x2a, 0x3b, 0x98, 0x6b, 0xd3, 0xcc, 0xb5,
-       0x69, 0xe6, 0xda, 0x34, 0xe7, 0x4f, 0x33, 0xc7, 0xb6, 0x17, 0x86, 0x95,
-       0x1e, 0xb1, 0xbb, 0xd8, 0xdf, 0x72, 0xf9, 0x03, 0xb1, 0x27, 0xbc, 0xbd,
-       0xb0, 0xc6, 0xe3, 0x72, 0xba, 0x61, 0xa5, 0xc4, 0x61, 0x02, 0x55, 0x3a,
-       0x73, 0x98, 0x35, 0xac, 0x74, 0x31, 0xcf, 0xf6, 0x39, 0x36, 0x8c, 0x0f,
-       0x5d, 0x66, 0x7e, 0x7d, 0x93, 0xf9, 0x35, 0x9f, 0x62, 0x3c, 0xad, 0xbe,
-       0x6a, 0xf7, 0x2f, 0x73, 0x73, 0xc1, 0x18, 0xe5, 0xfc, 0x1a, 0xd7, 0xaa,
-       0xc8, 0x1c, 0xda, 0xe1, 0x55, 0x70, 0x9f, 0x8e, 0xda, 0x3a, 0x62, 0xe9,
-       0x91, 0x02, 0xf1, 0xdf, 0x88, 0xb7, 0x7e, 0x40, 0x83, 0x1e, 0xd1, 0xfd,
-       0xb8, 0x7a, 0x13, 0x49, 0x8e, 0xde, 0x8e, 0x63, 0xb9, 0x4a, 0x0c, 0xa6,
-       0xd2, 0x4b, 0x03, 0xe4, 0x28, 0x9d, 0x2d, 0x78, 0x9c, 0x53, 0x2b, 0x51,
-       0x33, 0x41, 0x7f, 0x41, 0xfa, 0x38, 0xf3, 0xc3, 0xa4, 0x75, 0x2b, 0xf2,
-       0xcc, 0xa3, 0x73, 0x86, 0x0f, 0x6f, 0xe6, 0xd7, 0x10, 0xdf, 0x12, 0x46,
-       0x48, 0xa9, 0x62, 0xdc, 0x9a, 0xc8, 0x5a, 0x82, 0x4b, 0xb6, 0x3d, 0x27,
-       0x32, 0x24, 0x12, 0xe9, 0x51, 0x08, 0x56, 0xd9, 0x2b, 0xee, 0x4d, 0x55,
-       0x60, 0x53, 0x22, 0x8c, 0x15, 0x7a, 0xbf, 0xd2, 0x59, 0x48, 0x18, 0xaf,
-       0xe2, 0x77, 0x95, 0x7b, 0xe6, 0x4d, 0xc6, 0x74, 0x9f, 0xb2, 0x67, 0xbe,
-       0x0a, 0x97, 0x22, 0x22, 0x23, 0x6a, 0xfd, 0xba, 0x07, 0xef, 0xdd, 0xa5,
-       0x40, 0xd5, 0xd3, 0x38, 0xdf, 0xa2, 0xd2, 0x9f, 0x3a, 0xc9, 0x2d, 0x62,
-       0xf0, 0x2e, 0x44, 0xc3, 0x3b, 0xb9, 0x06, 0xd5, 0x0b, 0xb2, 0x2e, 0x1d,
-       0xb4, 0x55, 0x3d, 0xfd, 0xaf, 0x53, 0xe9, 0xa0, 0x1d, 0xbb, 0x66, 0xa1,
-       0x56, 0x99, 0xbd, 0xca, 0xb6, 0x82, 0x46, 0x3b, 0x89, 0x4d, 0x86, 0xc9,
-       0x91, 0xc4, 0x47, 0xca, 0x6b, 0x28, 0x7e, 0x7a, 0xe3, 0x3a, 0xf6, 0x79,
-       0x24, 0xd6, 0x36, 0xad, 0x36, 0x19, 0x87, 0x1e, 0xca, 0x25, 0x32, 0x04,
-       0x50, 0xdb, 0x68, 0xaf, 0xf8, 0x30, 0xb5, 0xc0, 0x7b, 0x26, 0x8e, 0x17,
-       0xba, 0xb9, 0x2e, 0xcd, 0x25, 0xbf, 0x52, 0xe9, 0x87, 0x1d, 0x1c, 0x5f,
-       0xfc, 0x3b, 0x0d, 0x77, 0x2d, 0x3b, 0xc9, 0x89, 0xfe, 0xb5, 0x35, 0x3c,
-       0xc8, 0x31, 0x64, 0x1d, 0x2b, 0xca, 0x7e, 0x19, 0xbe, 0x67, 0x3a, 0x8d,
-       0xf7, 0x9c, 0x1c, 0x5a, 0xf6, 0xe1, 0x61, 0xa5, 0x93, 0x6b, 0x09, 0xbf,
-       0x3b, 0xfe, 0xae, 0x69, 0xf8, 0x6b, 0x4c, 0xc4, 0xbc, 0xe4, 0x6d, 0x17,
-       0x53, 0x09, 0x75, 0x52, 0xe9, 0xe6, 0x58, 0x8c, 0x2d, 0x62, 0x7d, 0x35,
-       0xfd, 0xa6, 0x83, 0xfa, 0x76, 0x51, 0xdf, 0x2e, 0x67, 0x4e, 0xf1, 0xbb,
-       0x5f, 0x9d, 0x77, 0x4b, 0xe1, 0x1e, 0x47, 0xf7, 0x9d, 0x7c, 0x67, 0x0f,
-       0x65, 0xdd, 0xc3, 0xe7, 0xb7, 0x58, 0xdf, 0xe7, 0x35, 0x91, 0x57, 0xe2,
-       0xfa, 0xc6, 0x5c, 0x25, 0xb1, 0xfd, 0xdd, 0x12, 0x57, 0x40, 0xc6, 0x63,
-       0x4a, 0xec, 0x0f, 0xa1, 0xa7, 0x05, 0x81, 0xa5, 0xe6, 0x50, 0xdb, 0xee,
-       0x06, 0xe2, 0x14, 0x71, 0x32, 0x70, 0x9c, 0x1c, 0x99, 0xd8, 0x3b, 0xd7,
-       0xaa, 0x60, 0xcc, 0xb8, 0x99, 0xf1, 0x67, 0x60, 0xa2, 0xa0, 0x75, 0xc6,
-       0x78, 0xaf, 0x79, 0x52, 0xb8, 0xfb, 0x01, 0xb4, 0x93, 0xaf, 0x45, 0xcd,
-       0x41, 0x44, 0xad, 0x78, 0x74, 0x42, 0xd1, 0x06, 0xb7, 0x40, 0xbb, 0x40,
-       0xcc, 0x1f, 0x9e, 0x55, 0xb4, 0xa1, 0x3a, 0xaf, 0x96, 0x7e, 0xdb, 0xe1,
-       0xcd, 0x07, 0xb0, 0xda, 0xe1, 0x66, 0x83, 0x48, 0x92, 0xa3, 0xee, 0xe4,
-       0x98, 0xfb, 0x37, 0x29, 0xb8, 0x62, 0xfc, 0x94, 0xeb, 0xa4, 0xa5, 0x33,
-       0x8a, 0x81, 0x2c, 0xe3, 0x3f, 0x7a, 0x5c, 0x38, 0xf8, 0x01, 0x72, 0x70,
-       0x04, 0x42, 0x7c, 0x36, 0x3b, 0x19, 0x1f, 0x0e, 0x78, 0xb5, 0x24, 0xf9,
-       0x77, 0x9a, 0x63, 0x1a, 0x05, 0xf2, 0x72, 0xce, 0x11, 0xbb, 0xaf, 0x34,
-       0x66, 0xa2, 0x34, 0xa6, 0x9e, 0x07, 0xe3, 0x62, 0x02, 0xdb, 0x13, 0xcc,
-       0x01, 0xc4, 0xb2, 0xa3, 0xc2, 0xf5, 0x39, 0x5e, 0xe5, 0x71, 0x83, 0xdf,
-       0x87, 0x95, 0x3d, 0x12, 0x33, 0x95, 0x2e, 0x73, 0xab, 0xe5, 0x1c, 0x35,
-       0xe6, 0x21, 0x2c, 0x38, 0x73, 0x0c, 0xc9, 0x1c, 0x43, 0x3f, 0x52, 0xb4,
-       0xe4, 0x39, 0x45, 0x30, 0xb8, 0xa9, 0xef, 0x1c, 0x63, 0xe4, 0x88, 0xa2,
-       0xb5, 0x1e, 0xa3, 0xfa, 0x41, 0x5d, 0xc6, 0x3f, 0x54, 0x9a, 0x67, 0x08,
-       0x8d, 0x79, 0xc6, 0x5f, 0x21, 0xa0, 0x6c, 0xc9, 0xb5, 0x63, 0x6c, 0xb6,
-       0x1d, 0xa3, 0x39, 0x05, 0xf7, 0x18, 0xcb, 0x70, 0xe9, 0x66, 0xa7, 0xfe,
-       0xa8, 0x59, 0xa1, 0xd7, 0x61, 0x44, 0x45, 0xad, 0x47, 0xff, 0x3c, 0xf6,
-       0x96, 0xb8, 0xfb, 0xf6, 0x13, 0x3d, 0xc4, 0x73, 0x1b, 0x1f, 0x30, 0x56,
-       0xe2, 0x4b, 0x90, 0xf6, 0x9b, 0xad, 0xe4, 0xd9, 0x4b, 0xbd, 0x6e, 0x3c,
-       0xff, 0x7d, 0xc0, 0x5d, 0x03, 0xb1, 0xff, 0x67, 0xef, 0xb5, 0xe3, 0xe9,
-       0x5c, 0x05, 0x5a, 0xd7, 0xe3, 0xce, 0x28, 0x6a, 0x3c, 0xcc, 0x5d, 0xef,
-       0xec, 0x56, 0x1e, 0xe6, 0x3d, 0xe7, 0xd9, 0xc0, 0x6f, 0x98, 0x1f, 0xb7,
-       0xfd, 0x71, 0xa3, 0x5c, 0x97, 0x67, 0x6f, 0xbc, 0xae, 0x9a, 0xff, 0xf2,
-       0xba, 0x82, 0x17, 0x08, 0x50, 0x5f, 0x67, 0xae, 0xc8, 0x67, 0x6d, 0x78,
-       0x4d, 0x1f, 0x06, 0x27, 0x63, 0x38, 0xb0, 0x10, 0xc1, 0x42, 0x56, 0xeb,
-       0xbf, 0xc4, 0xba, 0x60, 0x6f, 0x8b, 0x8e, 0x87, 0x16, 0xa2, 0x98, 0xcf,
-       0xc2, 0x0e, 0x9a, 0x7a, 0x31, 0xa8, 0x24, 0xb1, 0x7f, 0xa1, 0x1e, 0xe7,
-       0xb2, 0xfa, 0x85, 0x51, 0x25, 0x31, 0x5c, 0x47, 0x3e, 0xf1, 0xc8, 0x42,
-       0x33, 0x1e, 0x5e, 0x08, 0xf0, 0x1d, 0x1b, 0x5d, 0xa9, 0x7a, 0x3e, 0xef,
-       0xc1, 0xf3, 0x27, 0x6d, 0x5b, 0xf8, 0xd4, 0xe0, 0x02, 0x30, 0x3f, 0xc5,
-       0x1c, 0x73, 0x86, 0xf9, 0xe6, 0x19, 0x60, 0xff, 0x33, 0x1e, 0xcc, 0x4e,
-       0xd9, 0xd8, 0x6b, 0x8c, 0xd6, 0x79, 0xe8, 0xe4, 0xfd, 0xcc, 0x07, 0x7e,
-       0xe6, 0xb6, 0x7b, 0x55, 0x17, 0xa7, 0x2f, 0x11, 0x87, 0x1e, 0x78, 0x26,
-       0x89, 0x77, 0xb2, 0x19, 0x74, 0x91, 0x77, 0x0f, 0x53, 0x96, 0xb7, 0xb3,
-       0xcc, 0x4f, 0x0b, 0x06, 0xde, 0xca, 0x06, 0x38, 0x4f, 0x33, 0x5e, 0xcb,
-       0xca, 0x33, 0xf2, 0x6c, 0x08, 0x03, 0x94, 0xe5, 0xcd, 0x6c, 0x94, 0x73,
-       0x46, 0xf0, 0x1d, 0x3e, 0x77, 0xff, 0x82, 0xce, 0x7c, 0x14, 0xe0, 0xbc,
-       0x31, 0xbc, 0x91, 0x0d, 0x51, 0xd6, 0x08, 0x73, 0xd0, 0x00, 0xc6, 0xb2,
-       0x4d, 0x17, 0xb6, 0x90, 0xb3, 0xb8, 0x39, 0x44, 0xae, 0x5d, 0xb6, 0xbb,
-       0x9d, 0x98, 0x93, 0x79, 0xca, 0xf3, 0x0e, 0x60, 0x34, 0xfb, 0x9a, 0xb7,
-       0x5c, 0x27, 0xbf, 0x30, 0xb5, 0xe8, 0x70, 0xba, 0xe7, 0x2d, 0xfe, 0x3d,
-       0x0b, 0x9c, 0xb3, 0x32, 0x76, 0xad, 0x49, 0x0e, 0xcb, 0xdc, 0xf3, 0xc3,
-       0x0d, 0xcd, 0x9c, 0x57, 0xef, 0x7f, 0x45, 0x91, 0x3a, 0xc6, 0x87, 0xd8,
-       0x33, 0x62, 0x2f, 0xc6, 0xf1, 0x3c, 0xf0, 0x57, 0xe4, 0x95, 0x8d, 0x93,
-       0x9a, 0xf8, 0x7d, 0x1f, 0xf9, 0x4a, 0x4f, 0x11, 0x0d, 0xc9, 0x87, 0x30,
-       0x62, 0x57, 0x90, 0x77, 0xd7, 0x92, 0xaf, 0x2e, 0x34, 0x33, 0xff, 0x6c,
-       0xb0, 0xed, 0xef, 0xb7, 0xc0, 0xf6, 0x98, 0xba, 0x51, 0xe7, 0x2d, 0x7e,
-       0xbe, 0x06, 0xfa, 0x85, 0xb0, 0xa2, 0x17, 0x7f, 0x88, 0xc4, 0xd0, 0xab,
-       0x10, 0xbb, 0x02, 0x6b, 0x16, 0x7c, 0x58, 0x4b, 0x7d, 0xb6, 0x4e, 0x72,
-       0x6e, 0xf2, 0x8e, 0x04, 0x75, 0xba, 0x7d, 0x92, 0x5c, 0x4a, 0x0f, 0x61,
-       0x35, 0x6d, 0x3c, 0x78, 0xca, 0xb6, 0x2b, 0x69, 0xe3, 0x46, 0xae, 0xcf,
-       0x7d, 0x27, 0x6c, 0xbc, 0x62, 0xbc, 0x42, 0x9b, 0x2a, 0xe4, 0x83, 0x2d,
-       0x7c, 0x27, 0xc2, 0xe7, 0x03, 0xd8, 0x3f, 0x29, 0x75, 0x50, 0x3d, 0x9f,
-       0xb9, 0x88, 0x63, 0xd9, 0x24, 0x9a, 0x69, 0xbf, 0x18, 0xc7, 0x6c, 0xe2,
-       0x3b, 0xb1, 0x05, 0x37, 0x97, 0xc4, 0x16, 0x7e, 0x1d, 0x0e, 0x00, 0xa7,
-       0xa7, 0xb4, 0x89, 0x22, 0xb9, 0x74, 0x8d, 0x39, 0x02, 0xe6, 0x62, 0xbc,
-       0x3d, 0xa3, 0xe0, 0xf8, 0x14, 0x6b, 0xb7, 0x0d, 0xb0, 0xab, 0xa8, 0xc7,
-       0x5b, 0x33, 0xbf, 0x89, 0xe7, 0x4e, 0x52, 0xf7, 0x67, 0x23, 0xf8, 0x7a,
-       0xd6, 0x87, 0x5b, 0x8e, 0x0b, 0x3f, 0xd3, 0x93, 0x07, 0x14, 0xa9, 0x75,
-       0xa4, 0x06, 0x49, 0xc4, 0xfc, 0x8a, 0x07, 0x0d, 0xcf, 0xf9, 0xa0, 0x9f,
-       0x8b, 0xc1, 0xdf, 0x10, 0x80, 0xde, 0xf0, 0xfb, 0xc4, 0x17, 0x0f, 0x2a,
-       0x58, 0x97, 0x6e, 0xff, 0x4a, 0x92, 0xd7, 0x22, 0xbc, 0x86, 0xdf, 0xac,
-       0x84, 0x77, 0xb9, 0x97, 0xf9, 0xb8, 0x42, 0x27, 0xb7, 0xf2, 0xd9, 0xb6,
-       0x97, 0x78, 0xbf, 0xe7, 0xab, 0xb6, 0x1d, 0x5f, 0x2f, 0xcf, 0xab, 0x88,
-       0x9f, 0xd3, 0xf9, 0x9c, 0x9b, 0x03, 0xaf, 0x73, 0x2b, 0x2f, 0x7d, 0x47,
-       0xe2, 0xf3, 0x71, 0xb8, 0xf5, 0x90, 0xcb, 0xc1, 0x5f, 0x2a, 0x08, 0x4f,
-       0x89, 0x39, 0x3a, 0x9c, 0x9d, 0x52, 0x88, 0x73, 0x26, 0x9f, 0xdd, 0x0c,
-       0x6f, 0x4a, 0x9b, 0xc8, 0x70, 0xed, 0xf7, 0xaa, 0xad, 0x78, 0xc1, 0xf2,
-       0xa3, 0x5a, 0x5f, 0x8e, 0x07, 0x7b, 0x54, 0xbc, 0x40, 0x8e, 0xcf, 0x75,
-       0x4a, 0x16, 0x51, 0xc9, 0x5a, 0x8b, 0xe3, 0x79, 0xfe, 0x1a, 0xfa, 0x57,
-       0x3c, 0xc4, 0x36, 0xaf, 0x83, 0x6d, 0x15, 0x0d, 0x40, 0x31, 0xef, 0xc3,
-       0x79, 0xdd, 0xe5, 0x77, 0x2f, 0x39, 0x79, 0x58, 0x53, 0x8b, 0xd7, 0x78,
-       0x9d, 0xd6, 0x9a, 0x56, 0x0e, 0x7b, 0x45, 0xce, 0x17, 0x0b, 0x3b, 0x7d,
-       0xae, 0xff, 0x5c, 0xf4, 0x4a, 0xfd, 0x70, 0xfd, 0x7b, 0x15, 0x3c, 0xa6,
-       0x16, 0x6d, 0xf7, 0x22, 0xe0, 0x33, 0x03, 0x6d, 0xe3, 0xfa, 0xe7, 0x6e,
-       0x90, 0xbd, 0x19, 0x63, 0x85, 0xeb, 0x75, 0x73, 0x67, 0xd6, 0xf1, 0x9b,
-       0x4e, 0xb1, 0xfd, 0x53, 0x86, 0x60, 0xeb, 0xb0, 0xd2, 0x41, 0xac, 0xca,
-       0xf8, 0xdc, 0xba, 0xf8, 0x08, 0xeb, 0xe2, 0xd7, 0xb3, 0xd2, 0x1b, 0x39,
-       0x84, 0x7d, 0x0e, 0xce, 0x0e, 0x09, 0xce, 0xc6, 0xce, 0x42, 0x1b, 0x1c,
-       0x28, 0xe1, 0xec, 0x9c, 0x8b, 0xb3, 0xfd, 0x2e, 0xce, 0x1e, 0x2a, 0xe1,
-       0xec, 0x10, 0x9a, 0xf3, 0x11, 0x72, 0xe0, 0x0e, 0xe6, 0xda, 0x6e, 0x72,
-       0x0e, 0xc9, 0x91, 0x7d, 0xca, 0xce, 0xf9, 0x80, 0xb2, 0x2d, 0x17, 0xc0,
-       0xeb, 0xe4, 0x53, 0x33, 0xbd, 0x50, 0x6f, 0xd9, 0x80, 0xe0, 0xce, 0x5c,
-       0x0f, 0x2a, 0x75, 0xa9, 0x03, 0x2b, 0xb1, 0xdd, 0xc9, 0x55, 0x52, 0x2f,
-       0x49, 0x2f, 0xa0, 0x97, 0x58, 0x07, 0x35, 0x68, 0xba, 0x75, 0xbf, 0xe0,
-       0xde, 0xed, 0x7c, 0xf7, 0x2c, 0xfd, 0x10, 0x6e, 0x4e, 0x53, 0xee, 0x60,
-       0x3d, 0xf0, 0x61, 0x4a, 0x41, 0xf1, 0xce, 0x00, 0x38, 0x16, 0xf5, 0x3d,
-       0xd0, 0x36, 0x3e, 0xd5, 0xa3, 0x74, 0xcc, 0xce, 0x05, 0x99, 0xb7, 0x99,
-       0x93, 0x66, 0x82, 0x6e, 0xae, 0xfe, 0xec, 0x58, 0xd2, 0x73, 0x49, 0xb6,
-       0x6d, 0x22, 0xc7, 0x69, 0x5d, 0xff, 0x8f, 0x36, 0x7e, 0x47, 0xde, 0xff,
-       0xcf, 0x25, 0xfb, 0xa5, 0x29, 0x4f, 0x24, 0xb0, 0xbd, 0xa0, 0x06, 0xd2,
-       0x85, 0x0e, 0xbe, 0xdf, 0xc3, 0xb1, 0x7a, 0x83, 0x1d, 0xd6, 0xdd, 0xc1,
-       0xad, 0x56, 0x77, 0x70, 0x9b, 0xc5, 0xd8, 0x2d, 0xf4, 0xd2, 0x8e, 0x3d,
-       0xac, 0xe1, 0xef, 0x26, 0x7f, 0x90, 0x31, 0xfb, 0xc9, 0x65, 0x82, 0xd4,
-       0x6d, 0x84, 0xba, 0x15, 0xa3, 0x7e, 0xa4, 0x35, 0x3f, 0x34, 0x75, 0xcc,
-       0x59, 0xb7, 0x09, 0xa7, 0x8f, 0x54, 0x65, 0xae, 0x6e, 0xeb, 0x3a, 0x41,
-       0x4c, 0x37, 0x1b, 0xda, 0x6e, 0x39, 0x85, 0x25, 0x7e, 0x53, 0xea, 0x5e,
-       0xd6, 0xb2, 0x89, 0x84, 0xf1, 0x3e, 0x12, 0xd1, 0xd7, 0xf9, 0xec, 0x28,
-       0x7d, 0x75, 0xcc, 0xe9, 0x1d, 0x70, 0x01, 0xf2, 0xcd, 0xe8, 0xb2, 0x02,
-       0xc1, 0xdb, 0x59, 0x57, 0x85, 0x4d, 0xad, 0x75, 0x97, 0x57, 0x7a, 0x19,
-       0xc5, 0xdf, 0x0e, 0xa1, 0x19, 0x9d, 0x85, 0x40, 0x70, 0xcb, 0xf4, 0xe7,
-       0xf0, 0x0f, 0x27, 0x99, 0xbb, 0x20, 0x7e, 0x67, 0xdb, 0xf7, 0xb3, 0x26,
-       0x39, 0x9a, 0xaf, 0xc7, 0x15, 0x67, 0x4d, 0x7d, 0x38, 0x92, 0x8f, 0xe1,
-       0x32, 0xf1, 0xc9, 0xb7, 0x50, 0x87, 0x77, 0xa7, 0xbc, 0xd8, 0x67, 0xdc,
-       0x56, 0xca, 0x09, 0x1e, 0xdc, 0x9b, 0x3c, 0x48, 0x1e, 0xe0, 0x41, 0x2d,
-       0x39, 0xd8, 0x23, 0xce, 0x35, 0x2f, 0x6b, 0xb7, 0x2f, 0x62, 0xd8, 0xcd,
-       0x19, 0x94, 0xb1, 0x9e, 0x32, 0xb6, 0x04, 0xb7, 0xe4, 0xb4, 0xe0, 0x1d,
-       0x39, 0x04, 0xfc, 0xe6, 0xca, 0xb6, 0x33, 0x27, 0x6d, 0x0c, 0x18, 0xab,
-       0xf0, 0xe1, 0xc9, 0xd1, 0x41, 0x1f, 0xfd, 0xe5, 0x27, 0xa9, 0x3e, 0x58,
-       0xd3, 0x38, 0x4f, 0x26, 0x71, 0x31, 0x44, 0xfc, 0x6e, 0x24, 0x67, 0xa0,
-       0x1f, 0x18, 0xf3, 0x8c, 0xc5, 0x6d, 0xf4, 0x0f, 0xfa, 0x43, 0xda, 0x6b,
-       0x26, 0xfa, 0xc7, 0x48, 0x00, 0x6b, 0x28, 0x4f, 0x90, 0xf8, 0x1c, 0x5a,
-       0x88, 0x05, 0xf7, 0x30, 0xa7, 0x44, 0x59, 0x9b, 0x05, 0x13, 0xb8, 0xad,
-       0x0e, 0x89, 0xe4, 0x22, 0xf5, 0xf6, 0x2f, 0x34, 0x07, 0x77, 0x31, 0x47,
-       0x5c, 0x49, 0xd8, 0x23, 0xaf, 0x18, 0x21, 0x84, 0x17, 0x0c, 0xda, 0xbb,
-       0x0f, 0xa3, 0xf3, 0x2c, 0x97, 0x12, 0xac, 0xd7, 0x17, 0x5a, 0x83, 0xb7,
-       0x33, 0x16, 0x6b, 0x88, 0x53, 0x4d, 0x0b, 0xe9, 0xa0, 0xd4, 0x6b, 0xcd,
-       0x0b, 0x1b, 0x29, 0x9f, 0xac, 0x63, 0x73, 0xdb, 0x26, 0xfa, 0x41, 0x6c,
-       0x01, 0xdb, 0x09, 0x65, 0xaf, 0x71, 0xcc, 0xbe, 0x28, 0x79, 0xe8, 0xfe,
-       0x0d, 0x21, 0x62, 0x91, 0xd8, 0x92, 0x76, 0x2c, 0x94, 0x75, 0x92, 0xdc,
-       0xdb, 0xd0, 0xb6, 0x70, 0x4a, 0x72, 0x6f, 0xb4, 0x2d, 0x7b, 0x4a, 0xc7,
-       0x65, 0xe6, 0x8f, 0x35, 0x29, 0xcd, 0x38, 0xa7, 0xc4, 0xa3, 0x17, 0xa9,
-       0x8b, 0x0f, 0x3f, 0xb3, 0xf7, 0xea, 0x89, 0xe2, 0x4a, 0xc6, 0x4f, 0x2d,
-       0xf1, 0x2f, 0x4a, 0x5c, 0xaf, 0x5d, 0xa0, 0x61, 0x16, 0x7e, 0x46, 0xff,
-       0x88, 0x22, 0x90, 0xd0, 0xf1, 0xde, 0xc9, 0x24, 0xed, 0x70, 0x6d, 0xcc,
-       0x03, 0xa4, 0x50, 0x03, 0x4c, 0x77, 0x4f, 0x3c, 0x47, 0x1f, 0x1c, 0xe7,
-       0xbc, 0x15, 0x0b, 0x22, 0xb3, 0x3c, 0x1f, 0xe1, 0xf3, 0xd7, 0xe7, 0xae,
-       0xe5, 0xdc, 0x1f, 0x9d, 0x92, 0xfe, 0x52, 0xb4, 0xed, 0xfc, 0x49, 0x77,
-       0xee, 0x44, 0x2a, 0x89, 0x9f, 0x9e, 0xd4, 0x86, 0xde, 0x53, 0xe2, 0xfd,
-       0xe7, 0x15, 0x99, 0x1f, 0xf5, 0x35, 0xf8, 0xd0, 0x1e, 0x4d, 0x24, 0x86,
-       0xf7, 0x72, 0xcc, 0xd6, 0x8d, 0xb4, 0xbf, 0x23, 0x07, 0x13, 0x3b, 0xb1,
-       0xd4, 0x4f, 0x79, 0x5c, 0x59, 0xea, 0x39, 0xf6, 0xc9, 0x52, 0x9d, 0xc5,
-       0x1a, 0xf3, 0xba, 0x3c, 0x11, 0xda, 0x21, 0xb0, 0xa7, 0x25, 0x84, 0x3a,
-       0xe7, 0x39, 0x95, 0xcf, 0x89, 0x1d, 0x7e, 0xae, 0x78, 0xf4, 0xf7, 0x89,
-       0x5b, 0x82, 0x1d, 0x11, 0x62, 0xd6, 0xdd, 0x52, 0x8f, 0x66, 0x32, 0xf4,
-       0x77, 0x3f, 0xfd, 0x7d, 0xab, 0xf8, 0xb4, 0x45, 0x9f, 0xb6, 0xe8, 0xd3,
-       0x96, 0x16, 0x1d, 0x42, 0x5c, 0x1d, 0xe0, 0xba, 0xa5, 0xa3, 0xe2, 0xeb,
-       0xbd, 0xd8, 0xc7, 0xdf, 0xfb, 0x78, 0xff, 0x08, 0x6b, 0x54, 0x2c, 0x95,
-       0x39, 0x0f, 0xa1, 0xc3, 0x7a, 0x02, 0x83, 0x39, 0xfc, 0x22, 0xd8, 0x52,
-       0x89, 0xca, 0xd5, 0x52, 0x7f, 0x6b, 0xea, 0x51, 0x3c, 0xc1, 0x1a, 0xe8,
-       0xe7, 0x4a, 0xb5, 0xee, 0xeb, 0x39, 0xa6, 0x68, 0x6a, 0x07, 0x6b, 0xd9,
-       0xbd, 0x85, 0xbb, 0xb9, 0xbe, 0xf1, 0xc1, 0xd7, 0x15, 0xd6, 0x41, 0x75,
-       0x9c, 0x9b, 0xb1, 0x74, 0x07, 0xe7, 0xb1, 0x44, 0x0e, 0x07, 0x5f, 0x7f,
-       0x0f, 0x62, 0xdb, 0x6f, 0x37, 0x0e, 0x70, 0x7e, 0x57, 0x8e, 0x51, 0xd6,
-       0x83, 0x03, 0x8c, 0xb1, 0x7d, 0x4e, 0x7c, 0xf5, 0x72, 0x8c, 0xeb, 0xb8,
-       0xb5, 0x25, 0x2b, 0xf9, 0xd2, 0xc6, 0x93, 0x86, 0x8d, 0xe7, 0xf9, 0x7b,
-       0x81, 0xd8, 0x35, 0x76, 0x03, 0x76, 0x79, 0xf8, 0xdc, 0x1e, 0x3e, 0xd7,
-       0x4a, 0xdc, 0x9e, 0x9f, 0x95, 0xbe, 0xde, 0x21, 0xe9, 0xeb, 0x21, 0x6f,
-       0x89, 0xed, 0x87, 0x70, 0x3e, 0x1b, 0x1f, 0xf6, 0x7a, 0xed, 0x11, 0xc6,
-       0xd5, 0x85, 0x8f, 0xe8, 0xbb, 0x6f, 0x6e, 0xd0, 0x7a, 0x68, 0xc3, 0xe4,
-       0xa4, 0xa2, 0x45, 0xbf, 0x8b, 0xe2, 0xf6, 0x00, 0x9a, 0x62, 0x6b, 0xbd,
-       0x09, 0x95, 0x38, 0x57, 0x1c, 0xa0, 0xa6, 0xcf, 0x16, 0x5c, 0x6c, 0xdb,
-       0x54, 0xc2, 0xb6, 0xd6, 0x7c, 0x15, 0xb1, 0x87, 0x39, 0x78, 0xd6, 0xce,
-       0x84, 0x99, 0x9f, 0x0a, 0xb3, 0x32, 0xf6, 0x08, 0x9a, 0x52, 0x32, 0x96,
-       0xde, 0x39, 0xa9, 0xe0, 0x4b, 0xd5, 0x48, 0x30, 0x37, 0xc1, 0xa8, 0xd4,
-       0x33, 0x36, 0x73, 0x90, 0xea, 0x37, 0x25, 0x3f, 0x76, 0x13, 0x0f, 0x7b,
-       0x89, 0x87, 0xc2, 0x99, 0xa5, 0xd7, 0xe9, 0xe2, 0xd1, 0xd6, 0x82, 0xac,
-       0x8b, 0xac, 0x89, 0xac, 0xcd, 0x21, 0xdc, 0x6b, 0x49, 0xdd, 0x6e, 0x63,
-       0xca, 0x48, 0xc4, 0x9e, 0x83, 0xac, 0xd3, 0x21, 0xda, 0xc2, 0x8f, 0x7d,
-       0xc4, 0xbf, 0xbd, 0x2d, 0xb4, 0x55, 0xd8, 0x8f, 0xbd, 0x4e, 0x1f, 0xa0,
-       0x6c, 0x3f, 0x3f, 0xd7, 0x50, 0x61, 0x4e, 0xfb, 0xaa, 0xdf, 0xb5, 0xa3,
-       0xdb, 0x57, 0xf4, 0x9a, 0x32, 0x5e, 0xb9, 0xa7, 0xe8, 0xda, 0x6e, 0x7b,
-       0x56, 0xc6, 0xb5, 0x71, 0xd6, 0x70, 0xb9, 0x69, 0xd9, 0x66, 0x82, 0xed,
-       0x4b, 0x36, 0x02, 0x6b, 0x6f, 0xe0, 0xa7, 0x55, 0xbc, 0xd6, 0x75, 0x9d,
-       0x9f, 0xf6, 0x09, 0x07, 0x26, 0x3f, 0xed, 0xdc, 0x49, 0x7e, 0xda, 0xa0,
-       0x94, 0xb9, 0xa9, 0xf4, 0x14, 0xca, 0xfc, 0xb4, 0xb6, 0x84, 0xcd, 0x87,
-       0xb0, 0x97, 0xdc, 0xa5, 0xae, 0x61, 0x04, 0x81, 0x75, 0x9e, 0x4f, 0x3d,
-       0x18, 0x61, 0xed, 0x51, 0x01, 0x2c, 0xb3, 0xb1, 0x72, 0x7d, 0xc6, 0xae,
-       0xd4, 0x1b, 0x62, 0x95, 0x1e, 0xe9, 0x19, 0x27, 0x32, 0x63, 0xc4, 0x12,
-       0xcf, 0x3a, 0x2d, 0x93, 0x46, 0x40, 0x5d, 0xa2, 0xdf, 0x5d, 0xaa, 0x09,
-       0xa2, 0x81, 0x1d, 0xe4, 0x36, 0x89, 0xd4, 0x2f, 0xed, 0x99, 0xc8, 0x08,
-       0xa2, 0xeb, 0x8a, 0xc3, 0x51, 0xa4, 0x0f, 0x46, 0x1d, 0x5c, 0x99, 0x40,
-       0x3e, 0x11, 0x0d, 0x74, 0x17, 0x32, 0xc1, 0xae, 0xc6, 0x18, 0x76, 0x4e,
-       0x76, 0xb0, 0xe6, 0xd0, 0xb1, 0x6d, 0xb2, 0x93, 0xf5, 0x51, 0x8f, 0xd2,
-       0x33, 0x2b, 0xf6, 0x11, 0xfb, 0x6a, 0x6a, 0xcc, 0x73, 0x63, 0x2f, 0xb3,
-       0x5c, 0xcf, 0xbe, 0xef, 0xf8, 0xce, 0xb8, 0xa1, 0xd2, 0x2e, 0xff, 0xdb,
-       0x8f, 0xb0, 0x8d, 0x33, 0x86, 0xf8, 0x1c, 0xbf, 0xb3, 0xb6, 0xda, 0xda,
-       0x32, 0x65, 0xfb, 0x74, 0xe9, 0x49, 0x47, 0x9d, 0xf5, 0x92, 0x1a, 0xab,
-       0x63, 0xb6, 0x97, 0x6b, 0x54, 0xee, 0x3f, 0xdf, 0xb8, 0x56, 0x9b, 0x83,
-       0x5b, 0x89, 0x67, 0xac, 0xc7, 0x02, 0x01, 0x62, 0x64, 0xe0, 0x94, 0x8d,
-       0x59, 0xe3, 0x1d, 0xfb, 0x49, 0xdd, 0xc7, 0xf5, 0xb8, 0x95, 0x78, 0x2b,
-       0xfc, 0xc3, 0x0c, 0xee, 0x9a, 0xf6, 0x79, 0x58, 0x5b, 0xb5, 0x54, 0xc0,
-       0xa9, 0xad, 0x9c, 0x3e, 0xe1, 0xb1, 0xfc, 0x6d, 0xc1, 0xae, 0x1c, 0xeb,
-       0x04, 0xd6, 0xa9, 0x6e, 0x8d, 0x76, 0x6b, 0xf0, 0x9e, 0x9c, 0x57, 0xa9,
-       0x33, 0xe1, 0x6d, 0xdd, 0x68, 0xe3, 0xe3, 0xf5, 0x89, 0xe1, 0xa8, 0x87,
-       0xd8, 0xc8, 0xb1, 0xac, 0x7c, 0x4b, 0xb0, 0x8f, 0x58, 0x7c, 0x7b, 0x0e,
-       0x69, 0xe9, 0xa9, 0x86, 0xd7, 0x8f, 0xf6, 0x87, 0x21, 0xfd, 0x2f, 0x7c,
-       0x89, 0xd1, 0x18, 0xa1, 0xaf, 0x45, 0xdb, 0x95, 0xc4, 0xe2, 0x20, 0x12,
-       0x17, 0x3e, 0xf6, 0xbe, 0x63, 0x3f, 0x9d, 0xdf, 0xc8, 0xe7, 0x3b, 0x89,
-       0x93, 0x69, 0xe2, 0xe6, 0xe8, 0xb0, 0x1f, 0xf2, 0x8e, 0xd6, 0xf7, 0xb6,
-       0x12, 0xa7, 0x8f, 0xe3, 0x77, 0xf8, 0xbc, 0xba, 0x8d, 0x18, 0x39, 0x6b,
-       0x24, 0xd2, 0x5b, 0x90, 0xe9, 0xac, 0x85, 0x66, 0x34, 0x2a, 0xd2, 0xaf,
-       0x12, 0xfb, 0x27, 0xf1, 0x3d, 0xce, 0xe9, 0xd3, 0xc5, 0x8e, 0x9b, 0x31,
-       0x30, 0xab, 0xa9, 0xd7, 0xfd, 0x4c, 0x6c, 0x20, 0x76, 0xe9, 0xa8, 0x40,
-       0xd5, 0x52, 0xea, 0xf6, 0x3d, 0x07, 0x4f, 0x82, 0xba, 0x8e, 0xff, 0x42,
-       0x1e, 0xf4, 0x17, 0x05, 0xe9, 0x4b, 0x96, 0xb9, 0x9d, 0xf8, 0x44, 0x73,
-       0xdb, 0x2d, 0x33, 0xc9, 0x52, 0x9f, 0x32, 0x10, 0xec, 0x9c, 0xb6, 0x71,
-       0xd2, 0x08, 0x43, 0xea, 0xf3, 0xca, 0x54, 0x91, 0x19, 0xbf, 0x19, 0xdb,
-       0x78, 0xbd, 0x63, 0xba, 0x5a, 0xe9, 0xc8, 0xd9, 0xf8, 0xa6, 0xa1, 0x65,
-       0xda, 0xbd, 0x8c, 0x65, 0x43, 0x3b, 0x0b, 0x5c, 0x26, 0x27, 0x12, 0xdf,
-       0xf2, 0x21, 0xa4, 0xbb, 0x63, 0x35, 0xcf, 0xdc, 0x46, 0xbe, 0x20, 0xb1,
-       0xe5, 0x5d, 0x53, 0x85, 0x94, 0x32, 0xe3, 0x13, 0xbb, 0x75, 0x22, 0x5d,
-       0xa8, 0x56, 0x76, 0xd3, 0x96, 0x77, 0xac, 0xab, 0xc0, 0x25, 0xc7, 0x96,
-       0xb7, 0xd1, 0x96, 0x78, 0x6b, 0x05, 0xbc, 0xe7, 0xeb, 0xd0, 0xa9, 0xc0,
-       0xa9, 0xbd, 0xaa, 0x99, 0x9f, 0xd3, 0xe4, 0xae, 0xe4, 0x7d, 0x6a, 0x2f,
-       0xbe, 0x42, 0x9c, 0x79, 0x92, 0x3e, 0xfa, 0x33, 0xbd, 0x19, 0x55, 0x5f,
-       0x6d, 0xe1, 0x3a, 0x6e, 0x0c, 0xee, 0xc8, 0xf5, 0xe1, 0xa9, 0x79, 0x1b,
-       0xcf, 0x31, 0x3e, 0x1a, 0x53, 0x19, 0xb5, 0x92, 0xb5, 0x18, 0x73, 0xd9,
-       0xe2, 0x09, 0xc7, 0xbf, 0x57, 0xb6, 0x6d, 0x9e, 0x8b, 0xc2, 0xfb, 0x15,
-       0xf9, 0xbb, 0xbe, 0x2d, 0x36, 0x27, 0x9f, 0x51, 0x7e, 0xda, 0x18, 0x32,
-       0xb4, 0xf4, 0xc7, 0xde, 0x2a, 0x54, 0x27, 0x6c, 0x7b, 0x28, 0x25, 0xd7,
-       0xf5, 0xb6, 0xa4, 0x73, 0xbf, 0x81, 0x9f, 0xe5, 0x3e, 0xf2, 0xeb, 0xc2,
-       0xf9, 0x62, 0x69, 0xea, 0xbc, 0x93, 0x79, 0xbd, 0x8f, 0x79, 0xbd, 0xce,
-       0xd4, 0xd2, 0x7b, 0xbc, 0xd2, 0x3b, 0x29, 0x1e, 0xac, 0xe5, 0xf5, 0x5d,
-       0xa5, 0xbc, 0x5e, 0x73, 0x4a, 0xfa, 0x70, 0xe4, 0x7a, 0x70, 0xf7, 0x2f,
-       0xba, 0x99, 0xd7, 0xab, 0x26, 0x7d, 0xe8, 0x62, 0x4e, 0xf7, 0x93, 0x67,
-       0x6f, 0xcd, 0xd7, 0x21, 0x78, 0xc2, 0x8b, 0x78, 0xea, 0xdb, 0x38, 0x48,
-       0x1f, 0x3b, 0x98, 0xf4, 0x2a, 0xb1, 0xe5, 0x1e, 0xda, 0xe9, 0x9f, 0x70,
-       0x40, 0xf5, 0xa2, 0x46, 0xff, 0x2e, 0x1e, 0xfa, 0x35, 0xb9, 0xbc, 0x2f,
-       0x27, 0x31, 0xbd, 0xb2, 0xad, 0xeb, 0x94, 0x9b, 0xcb, 0x43, 0xa7, 0x46,
-       0x17, 0x25, 0x97, 0xd7, 0xad, 0xef, 0xc3, 0xe9, 0x69, 0xfc, 0xe1, 0x0a,
-       0x92, 0xc4, 0x3a, 0xce, 0xd9, 0x90, 0x4a, 0xb0, 0x6e, 0xd6, 0x06, 0xb7,
-       0x29, 0x89, 0x89, 0x1a, 0xc6, 0xfe, 0x69, 0xe6, 0xf2, 0x80, 0x99, 0x50,
-       0x93, 0x1e, 0x74, 0xfb, 0xb9, 0x1e, 0x1f, 0xb0, 0x86, 0xfe, 0x61, 0x3e,
-       0xc6, 0x31, 0x2b, 0xe0, 0x63, 0x2e, 0xff, 0x40, 0xc7, 0xa7, 0x5e, 0xfa,
-       0xde, 0x65, 0x6f, 0x00, 0x57, 0xf3, 0x6e, 0x2e, 0xaf, 0x6d, 0xb4, 0x47,
-       0xae, 0xa4, 0x42, 0xf8, 0x30, 0x6f, 0xd0, 0x07, 0xfb, 0x70, 0x84, 0xb9,
-       0xfc, 0x8a, 0xae, 0xe2, 0xa7, 0xf9, 0x56, 0xfa, 0x65, 0x04, 0x3f, 0x21,
-       0xcf, 0x5d, 0xc7, 0x5c, 0x7e, 0x27, 0x7d, 0x2a, 0xc5, 0x5c, 0xde, 0xee,
-       0xf0, 0x8c, 0xe6, 0xb6, 0x33, 0x53, 0x4e, 0x2e, 0x6f, 0x64, 0x89, 0x5f,
-       0xef, 0x47, 0x62, 0x91, 0xf8, 0x60, 0xff, 0x6c, 0x63, 0x88, 0xcf, 0xd2,
-       0x6e, 0x85, 0xf5, 0x98, 0x71, 0x72, 0xcf, 0xe6, 0xe0, 0x6e, 0xce, 0xbd,
-       0xcc, 0x89, 0x33, 0x1b, 0x3b, 0xd7, 0xbd, 0x89, 0x3f, 0x58, 0xe2, 0xa1,
-       0x1f, 0x9a, 0xc1, 0x3b, 0x18, 0x6b, 0x61, 0xfa, 0xd7, 0x4f, 0x53, 0x89,
-       0xfe, 0x73, 0xac, 0x21, 0x7f, 0xc2, 0x38, 0xbb, 0x93, 0xbe, 0xb1, 0x72,
-       0x5d, 0x80, 0xeb, 0xee, 0xc6, 0x59, 0x07, 0xe3, 0x2c, 0xca, 0x38, 0x5b,
-       0xc1, 0x38, 0x7b, 0xda, 0x48, 0x24, 0x37, 0x93, 0x6f, 0xbd, 0x9e, 0x97,
-       0x58, 0x6b, 0xe1, 0xb8, 0x1a, 0xf5, 0x1a, 0xed, 0x97, 0x98, 0xd9, 0xb9,
-       0x6e, 0xf4, 0x6c, 0x35, 0xc4, 0x56, 0xf8, 0x74, 0x19, 0xb9, 0x05, 0x11,
-       0xe9, 0xc2, 0xa2, 0x37, 0x31, 0xbc, 0xca, 0x9b, 0x18, 0x7a, 0x5f, 0x79,
-       0xc7, 0x7e, 0x8b, 0x71, 0x76, 0x3b, 0xe3, 0x6c, 0x37, 0xe3, 0xac, 0xdd,
-       0xb2, 0xf1, 0x52, 0x4a, 0xeb, 0x6b, 0xf6, 0xc4, 0x8d, 0x76, 0x0f, 0x56,
-       0x54, 0x33, 0x25, 0x04, 0x91, 0xe8, 0xfc, 0x03, 0xca, 0x7f, 0xc1, 0x48,
-       0xf4, 0x24, 0x15, 0x89, 0xad, 0x18, 0x7e, 0x4c, 0xbd, 0x2b, 0x4b, 0xb1,
-       0xb5, 0x7f, 0xf6, 0xd5, 0x92, 0x6f, 0x94, 0x75, 0xf7, 0xe2, 0x45, 0x83,
-       0x18, 0xba, 0x54, 0x8b, 0x65, 0x3c, 0xbd, 0x98, 0xa0, 0x1d, 0x83, 0x89,
-       0x5e, 0x1c, 0x65, 0x1e, 0xbc, 0x9f, 0xf9, 0xf7, 0x01, 0x2b, 0xde, 0xba,
-       0x83, 0x75, 0xce, 0xa5, 0xa8, 0x16, 0x8b, 0x29, 0xbd, 0x18, 0xa0, 0x0f,
-       0x0f, 0x30, 0x5f, 0xb4, 0x5b, 0x3f, 0x57, 0xb6, 0x91, 0x23, 0xdc, 0x57,
-       0x90, 0xf7, 0xb4, 0x64, 0xbf, 0x67, 0x10, 0xfd, 0xf3, 0x82, 0x6d, 0x50,
-       0x6f, 0x32, 0x7b, 0x71, 0xdc, 0xaa, 0x40, 0x6f, 0x4b, 0xb7, 0xb2, 0xab,
-       0x20, 0xbd, 0x33, 0xc6, 0xa3, 0xc5, 0x78, 0x75, 0xe4, 0x55, 0x88, 0xa5,
-       0xdd, 0xc8, 0x4a, 0x7c, 0x5a, 0xbb, 0x95, 0x3b, 0x67, 0x25, 0xc6, 0x7b,
-       0x95, 0x5e, 0x89, 0x61, 0x6b, 0x58, 0xb9, 0x4b, 0x62, 0xda, 0xe9, 0x33,
-       0x4b, 0xdc, 0xcb, 0x3e, 0xc4, 0x6d, 0xe4, 0x6f, 0x60, 0x4c, 0x79, 0xbf,
-       0x1a, 0x65, 0xdc, 0xb5, 0x57, 0x78, 0xe8, 0xa7, 0x71, 0xae, 0x9d, 0x07,
-       0x1d, 0xc6, 0x6f, 0xda, 0x19, 0xb5, 0x9f, 0x31, 0xd5, 0x8b, 0x23, 0xd6,
-       0x6f, 0xd8, 0x57, 0x1c, 0x5e, 0x52, 0xc6, 0xf3, 0xcd, 0xb8, 0x37, 0xb7,
-       0x1c, 0x01, 0x5d, 0xf2, 0x75, 0x08, 0xc9, 0x25, 0x01, 0x54, 0xe9, 0x92,
-       0x67, 0x9a, 0xdb, 0x16, 0x4e, 0x50, 0x86, 0x0d, 0xe5, 0xf8, 0xde, 0x8c,
-       0x07, 0x89, 0x03, 0xfb, 0x52, 0xf7, 0xe2, 0x01, 0xb5, 0x0a, 0x61, 0xda,
-       0xe9, 0x61, 0x35, 0x44, 0x7c, 0xfd, 0xbd, 0xd2, 0x38, 0xff, 0xa9, 0xa2,
-       0x54, 0x33, 0x5f, 0xe3, 0x54, 0x75, 0x8c, 0xb1, 0x4d, 0xd3, 0x52, 0x9b,
-       0x44, 0xdb, 0xa2, 0xd3, 0x3a, 0xc2, 0xac, 0x55, 0x37, 0xa7, 0xb4, 0xe1,
-       0xcd, 0xde, 0xf8, 0xe0, 0xa2, 0x82, 0x6c, 0x98, 0x7c, 0x2e, 0x9f, 0x48,
-       0xf4, 0x34, 0x8b, 0x8d, 0xf5, 0x28, 0xb6, 0xd3, 0x4e, 0x5d, 0xf9, 0x08,
-       0x63, 0xe8, 0xbd, 0x0a, 0xe1, 0x46, 0xe9, 0xfc, 0xf5, 0xb1, 0xa2, 0x1c,
-       0x2b, 0x3a, 0x2d, 0x3c, 0x2d, 0x4a, 0x9e, 0xa6, 0x33, 0x0e, 0x6d, 0x7b,
-       0x13, 0xf9, 0x59, 0xe8, 0x94, 0xd4, 0x38, 0xf1, 0x09, 0x72, 0xda, 0x66,
-       0xf2, 0xdd, 0x5e, 0x7a, 0xb5, 0xbd, 0xb2, 0x21, 0x61, 0xb4, 0x2b, 0x78,
-       0x62, 0xae, 0x85, 0xf5, 0x11, 0xc7, 0xbc, 0x9c, 0x57, 0x71, 0x25, 0x1f,
-       0xc5, 0xbb, 0x1c, 0xfb, 0x92, 0x33, 0x76, 0x3d, 0x7e, 0x54, 0xc2, 0xad,
-       0x14, 0x71, 0x6b, 0x4b, 0x4e, 0xa1, 0xbf, 0xc6, 0x30, 0x62, 0xfc, 0xdd,
-       0xa7, 0x97, 0x6e, 0x0e, 0xd0, 0x6e, 0xa2, 0x8b, 0x8f, 0x9f, 0xe3, 0x78,
-       0xd8, 0xc1, 0xe9, 0x37, 0x3f, 0x9d, 0x59, 0xc2, 0xb5, 0xa2, 0xed, 0x6b,
-       0x4b, 0xef, 0xad, 0x9d, 0xf9, 0xf3, 0x92, 0xbe, 0x3a, 0x3c, 0xa7, 0x92,
-       0xa8, 0x38, 0x75, 0x4d, 0x56, 0x5d, 0xe2, 0x83, 0x19, 0xf5, 0x89, 0xaf,
-       0x71, 0xfe, 0xc7, 0xc8, 0xf5, 0x6c, 0xce, 0x7f, 0xd5, 0x99, 0x37, 0xc2,
-       0x79, 0x95, 0x6b, 0xbc, 0x30, 0x7a, 0xed, 0x1d, 0x95, 0xba, 0xe3, 0xf1,
-       0x28, 0x6d, 0xf7, 0xe1, 0x06, 0x79, 0x2e, 0x84, 0x5d, 0xf9, 0x15, 0x95,
-       0x82, 0xe3, 0x41, 0xd6, 0x01, 0xae, 0x2f, 0x91, 0xe7, 0x59, 0xcf, 0xf1,
-       0x9e, 0xf0, 0xae, 0xcd, 0xe4, 0x18, 0x9f, 0xb5, 0x7b, 0x84, 0x6b, 0xf1,
-       0x7f, 0xf8, 0x8e, 0xdc, 0xfb, 0x75, 0x79, 0xf4, 0x4f, 0x31, 0xcc, 0x1a,
-       0xe8, 0xb1, 0x5c, 0x06, 0x0f, 0xe7, 0xbe, 0xec, 0xec, 0xab, 0xad, 0x5d,
-       0x8f, 0xfb, 0x38, 0xe7, 0x81, 0x5a, 0xc6, 0xd1, 0x7f, 0x4b, 0x25, 0x84,
-       0x1b, 0xed, 0xae, 0x86, 0xe4, 0xda, 0x44, 0xeb, 0x2a, 0xc5, 0x46, 0x45,
-       0x0a, 0x43, 0x1d, 0x2d, 0x89, 0xe4, 0x15, 0x3c, 0x61, 0x4b, 0x5f, 0xd3,
-       0x5b, 0xca, 0xbb, 0x52, 0xff, 0x49, 0x6f, 0xb5, 0xbd, 0xc4, 0x91, 0xb6,
-       0x14, 0xde, 0xf9, 0x4c, 0xef, 0x40, 0xea, 0x6e, 0xc9, 0x37, 0x41, 0xa5,
-       0x9d, 0xf3, 0x1c, 0x21, 0x66, 0xbf, 0x68, 0xbc, 0x12, 0x65, 0x36, 0x86,
-       0x6f, 0x9d, 0x82, 0x83, 0x86, 0x1f, 0x99, 0x88, 0x8d, 0xdd, 0xfc, 0xdc,
-       0x4f, 0xde, 0xf4, 0x9e, 0x51, 0x83, 0x19, 0x55, 0x25, 0x57, 0x24, 0x06,
-       0x7b, 0xde, 0xf4, 0xcb, 0x5e, 0x4c, 0xcc, 0x23, 0xfb, 0xe6, 0xff, 0xd6,
-       0x5e, 0xca, 0x3a, 0xf2, 0x16, 0xd1, 0x3d, 0xa8, 0x10, 0x43, 0x93, 0x20,
-       0x97, 0xd9, 0x6b, 0x14, 0x63, 0x1e, 0xa4, 0xaf, 0x7a, 0xa0, 0x9d, 0xbe,
-       0xcc, 0xfa, 0xee, 0xb1, 0x06, 0xed, 0x74, 0x9b, 0x57, 0xc7, 0xf0, 0xf1,
-       0x00, 0x1e, 0x39, 0xbe, 0x0d, 0xb5, 0x4e, 0xef, 0x67, 0x9c, 0x36, 0xf5,
-       0xb0, 0xae, 0x1a, 0xfd, 0xa5, 0x8f, 0xf5, 0xd5, 0xd5, 0xf5, 0x8f, 0xa3,
-       0xd5, 0xb9, 0x3e, 0x86, 0xfb, 0x72, 0x41, 0xa5, 0x2b, 0xe7, 0xc3, 0xb6,
-       0x3b, 0x1f, 0x87, 0x7f, 0x5d, 0x3f, 0xe5, 0x92, 0xeb, 0xf2, 0xf7, 0x5d,
-       0xac, 0xcb, 0x44, 0xbe, 0x0a, 0xc4, 0x96, 0x53, 0xb6, 0x75, 0x3a, 0x46,
-       0x8e, 0xfb, 0x94, 0x3d, 0xd6, 0x7f, 0xb7, 0xaf, 0x3a, 0xfb, 0x34, 0x72,
-       0xad, 0x4a, 0xf6, 0xef, 0xf9, 0x8c, 0x60, 0xce, 0x00, 0x72, 0x8c, 0xed,
-       0xbb, 0x9c, 0xf7, 0xff, 0xb8, 0xc2, 0xd5, 0x29, 0xcd, 0x7a, 0xb5, 0x83,
-       0xeb, 0x27, 0xcf, 0x24, 0x4b, 0xd7, 0x9a, 0x03, 0xee, 0x19, 0x01, 0xf1,
-       0x85, 0x01, 0xdc, 0xc2, 0x45, 0x68, 0x48, 0x88, 0x8f, 0x0d, 0xa0, 0x21,
-       0x4f, 0x40, 0x5d, 0xee, 0xca, 0xfb, 0x90, 0x55, 0x64, 0xad, 0xa9, 0x13,
-       0x37, 0x69, 0xbb, 0x65, 0xf2, 0xfe, 0x2f, 0x2a, 0x7f, 0xf5, 0x7d, 0xc1,
-       0x5b, 0x72, 0xcc, 0xb0, 0x70, 0xcd, 0x5f, 0x77, 0xff, 0xb7, 0x20, 0xf7,
-       0x7c, 0xfa, 0x9f, 0x30, 0x8e, 0x13, 0x3d, 0xd5, 0x1e, 0xf1, 0x9f, 0x3f,
-       0xc1, 0x03, 0xb3, 0x8f, 0xf0, 0xbe, 0x8c, 0x7f, 0x88, 0x35, 0x84, 0x4f,
-       0xe9, 0x24, 0xfe, 0xec, 0x3f, 0xee, 0xd9, 0x55, 0x81, 0xbf, 0xb4, 0x2b,
-       0x97, 0x8d, 0xa0, 0x21, 0x35, 0xc6, 0xe7, 0x15, 0x74, 0x90, 0x2f, 0x3e,
-       0x65, 0x6c, 0xc1, 0xb6, 0x25, 0x82, 0x01, 0x2f, 0xda, 0x03, 0xbd, 0x62,
-       0x43, 0x05, 0x5b, 0x79, 0xfd, 0x25, 0xae, 0xef, 0xb3, 0x86, 0x0f, 0x0d,
-       0x4b, 0xa5, 0x8f, 0xa7, 0x4d, 0xa5, 0xd1, 0x1e, 0x70, 0xf7, 0xab, 0x32,
-       0x76, 0xad, 0xae, 0x0f, 0xdd, 0xe1, 0x69, 0x98, 0x7a, 0x9b, 0xfe, 0xd4,
-       0xbe, 0xee, 0xc6, 0x7b, 0x65, 0x9b, 0x18, 0xe4, 0x90, 0x2f, 0xd8, 0xb8,
-       0x69, 0x14, 0xea, 0xba, 0x1b, 0xd7, 0xbf, 0x2c, 0xf7, 0x21, 0xc6, 0x20,
-       0x32, 0xb5, 0xa6, 0xf4, 0x79, 0x12, 0x1c, 0xe7, 0x10, 0x7e, 0xbf, 0x30,
-       0x86, 0x83, 0xb9, 0x12, 0xa7, 0xa6, 0x6f, 0xeb, 0xeb, 0xae, 0xeb, 0xf6,
-       0x50, 0x2e, 0xd1, 0x5f, 0x53, 0xd2, 0xed, 0x00, 0xeb, 0x8b, 0x6a, 0x62,
-       0xec, 0x83, 0xb4, 0xe9, 0x90, 0x63, 0xd3, 0x5e, 0x18, 0xf9, 0xeb, 0xe3,
-       0x0e, 0x72, 0xdc, 0xa0, 0x29, 0x76, 0x93, 0x3d, 0xb2, 0x43, 0xd8, 0xcf,
-       0x71, 0xf7, 0xdd, 0x30, 0xee, 0x80, 0x71, 0x7d, 0xdc, 0xbd, 0xb9, 0xc4,
-       0x69, 0x4f, 0x69, 0xdc, 0x47, 0x67, 0xcb, 0x63, 0x64, 0x70, 0xfb, 0xba,
-       0x0c, 0xf2, 0x9b, 0x0e, 0xd8, 0x07, 0x1c, 0x7b, 0x9c, 0x72, 0xae, 0x6f,
-       0x6d, 0x10, 0xee, 0xc5, 0x3f, 0x4d, 0xd9, 0x8f, 0x4f, 0x92, 0x7b, 0xe9,
-       0xce, 0x9e, 0xf0, 0x37, 0x0a, 0xe5, 0xbe, 0x94, 0xf6, 0x4e, 0x97, 0x37,
-       0xcd, 0xd8, 0x8e, 0x04, 0x76, 0x7c, 0xa6, 0x97, 0xb1, 0x8d, 0xf5, 0xd7,
-       0x76, 0xab, 0x3b, 0xd8, 0x69, 0x05, 0xc8, 0xbb, 0xaa, 0x95, 0xad, 0x39,
-       0xe9, 0x69, 0x48, 0x2c, 0x97, 0xb8, 0x70, 0x41, 0xea, 0xbc, 0xbb, 0x59,
-       0x1f, 0x2c, 0x0f, 0x20, 0xdc, 0x8f, 0x89, 0xc2, 0xef, 0x2a, 0xe9, 0x88,
-       0xec, 0x4d, 0x4b, 0x5e, 0x01, 0x73, 0x5e, 0x0f, 0xaa, 0xe9, 0x4b, 0x11,
-       0xd3, 0x30, 0x4f, 0x36, 0xd8, 0x20, 0x47, 0x09, 0x2c, 0x35, 0xd3, 0xe6,
-       0xee, 0x06, 0x2f, 0x8e, 0x39, 0xfc, 0x4b, 0x9b, 0xe1, 0xef, 0x94, 0xc4,
-       0xcc, 0x1d, 0x39, 0xc9, 0x63, 0xa4, 0x90, 0xfa, 0x08, 0xfe, 0x31, 0x55,
-       0x1c, 0x5a, 0x82, 0xf4, 0xfd, 0x4b, 0x20, 0xf5, 0xc4, 0x04, 0xfe, 0x4a,
-       0x8f, 0x06, 0xfa, 0x0a, 0x3e, 0xa5, 0xcb, 0x9a, 0x0b, 0xee, 0xb4, 0xc2,
-       0x08, 0xb1, 0x1e, 0xeb, 0xf6, 0xc6, 0x59, 0x5f, 0x88, 0x1d, 0x03, 0x6d,
-       0xb7, 0xe4, 0xfb, 0x82, 0x1d, 0x96, 0x8b, 0x85, 0x2b, 0x67, 0x02, 0xc1,
-       0x6d, 0xd3, 0xf1, 0xe8, 0x84, 0xc3, 0xc5, 0x42, 0x6d, 0xf1, 0xbc, 0x6d,
-       0xbf, 0x61, 0x14, 0xaf, 0x56, 0x3a, 0xdf, 0x8d, 0xb6, 0x64, 0xbe, 0x19,
-       0xf7, 0x90, 0x3f, 0xb5, 0x4f, 0x37, 0xc3, 0x98, 0x06, 0x4e, 0x1c, 0x8f,
-       0x62, 0x6d, 0x4e, 0x3b, 0x3d, 0xec, 0xed, 0xc3, 0xd4, 0x7c, 0x27, 0x72,
-       0x85, 0xe0, 0x62, 0xcc, 0x43, 0x5e, 0x9d, 0xf2, 0x60, 0x97, 0x71, 0x5c,
-       0x29, 0x2e, 0x53, 0x70, 0x17, 0x11, 0xbc, 0xdf, 0xe1, 0x13, 0x73, 0xac,
-       0x47, 0x15, 0xdc, 0xe4, 0xe0, 0x6e, 0x4b, 0xdb, 0x5a, 0xf2, 0xed, 0x3b,
-       0xc9, 0x07, 0x77, 0x11, 0x57, 0x12, 0xeb, 0x6c, 0xbc, 0x99, 0xca, 0xf4,
-       0xd7, 0x40, 0xeb, 0x39, 0xcc, 0x1a, 0xa8, 0x47, 0x71, 0xf9, 0x5d, 0xd3,
-       0x9c, 0xcb, 0x09, 0x57, 0xcd, 0xb5, 0x90, 0x37, 0xb2, 0xae, 0x49, 0x69,
-       0x31, 0x8f, 0x47, 0xc5, 0x94, 0x33, 0x46, 0xac, 0xcd, 0x98, 0xab, 0x60,
-       0xbe, 0xeb, 0xc5, 0xd3, 0x8e, 0xfc, 0x49, 0xca, 0x77, 0x37, 0xbe, 0x66,
-       0xf5, 0x05, 0xfb, 0x2c, 0xd9, 0xbf, 0x8c, 0x27, 0xaf, 0x7a, 0x4d, 0xf2,
-       0xd7, 0x78, 0xac, 0xce, 0xfb, 0x05, 0x25, 0xe3, 0x6b, 0x6a, 0x9d, 0x83,
-       0xa9, 0x5c, 0x2a, 0x71, 0x36, 0xd1, 0x2f, 0x41, 0x8e, 0xd5, 0x7e, 0x3c,
-       0xb8, 0x98, 0x86, 0xdb, 0xb3, 0xd9, 0x66, 0xfc, 0x2f, 0x14, 0x23, 0xda,
-       0x44, 0x9a, 0x18, 0xb0, 0x85, 0x98, 0xdb, 0xdf, 0xeb, 0xe3, 0x7d, 0xe9,
-       0x79, 0xa9, 0x6d, 0xe3, 0x59, 0x14, 0x83, 0x66, 0x22, 0x73, 0x94, 0x9e,
-       0xd3, 0x53, 0x90, 0xfd, 0x8d, 0x00, 0x1e, 0x60, 0xed, 0x94, 0x2e, 0xed,
-       0xfd, 0x6c, 0x9d, 0x76, 0xf7, 0xb3, 0x0e, 0xcf, 0xfb, 0xc2, 0xdd, 0x56,
-       0x0b, 0xf3, 0xbd, 0xef, 0x86, 0xb1, 0x13, 0x13, 0x2b, 0x3d, 0x1e, 0xac,
-       0x5e, 0xb7, 0x47, 0x99, 0x59, 0x56, 0xce, 0xad, 0x51, 0x27, 0x1f, 0x56,
-       0x50, 0xcf, 0xf3, 0x27, 0x65, 0x8e, 0xcf, 0xb5, 0x8d, 0x9f, 0x94, 0x5c,
-       0xab, 0xb6, 0x6d, 0xb2, 0xb4, 0x3e, 0xa9, 0xfd, 0xa2, 0xb4, 0x53, 0x94,
-       0xba, 0xad, 0x30, 0xd7, 0xb4, 0xd9, 0xd3, 0x5a, 0x74, 0x40, 0x49, 0x93,
-       0xf7, 0x69, 0xc9, 0x5b, 0xbc, 0x1e, 0x3c, 0xa2, 0x6b, 0x83, 0xd2, 0x13,
-       0x7c, 0x19, 0x2e, 0x07, 0x6e, 0x9a, 0x1b, 0x60, 0x5e, 0x73, 0x6d, 0xeb,
-       0xf6, 0x07, 0xeb, 0xdb, 0x9a, 0x1d, 0x5e, 0x6c, 0xdb, 0x97, 0x53, 0xdd,
-       0xe4, 0x0c, 0xc2, 0x8b, 0xe5, 0xfa, 0xea, 0xb6, 0xc6, 0x99, 0x00, 0x65,
-       0x53, 0xf0, 0x3e, 0x73, 0xd2, 0x44, 0xa1, 0x2c, 0xa3, 0xcb, 0x99, 0x77,
-       0x90, 0x33, 0x57, 0x99, 0x5a, 0x6b, 0x17, 0x39, 0xb3, 0x9e, 0x2a, 0xd6,
-       0xf9, 0xd0, 0x8b, 0xa7, 0xac, 0x66, 0x39, 0xe3, 0xe4, 0xf0, 0xe6, 0x2b,
-       0x27, 0xb5, 0xb4, 0x70, 0xe6, 0x1f, 0x18, 0xc0, 0x3d, 0xe4, 0xcc, 0x57,
-       0xb3, 0x3e, 0xec, 0x21, 0x67, 0x5e, 0xcc, 0x06, 0xd0, 0x47, 0xce, 0xfc,
-       0x11, 0xf9, 0xd5, 0xbb, 0xa9, 0x2b, 0x78, 0xb4, 0xd4, 0x07, 0xdb, 0x9b,
-       0xf4, 0xd0, 0xaf, 0x85, 0x37, 0xff, 0xbc, 0xc4, 0x9b, 0xe7, 0xff, 0x05,
-       0x6f, 0xde, 0x4a, 0x3e, 0xd8, 0x9d, 0x13, 0x4e, 0xb0, 0x92, 0x9c, 0xc0,
-       0xc6, 0xcb, 0xa5, 0x1e, 0xd8, 0x0a, 0xe6, 0xb3, 0xa7, 0x53, 0x7d, 0xc8,
-       0x4e, 0x63, 0x79, 0x8d, 0xd3, 0x77, 0x12, 0x99, 0x34, 0xe3, 0xb2, 0x92,
-       0xe8, 0xec, 0x43, 0x82, 0xf5, 0xb1, 0x96, 0xbc, 0xe8, 0xf6, 0xc0, 0x16,
-       0xdf, 0x85, 0xf4, 0x88, 0x7c, 0xa8, 0x59, 0x00, 0x56, 0xdc, 0xd0, 0x03,
-       0xab, 0x49, 0xe0, 0x4f, 0xeb, 0x20, 0xfb, 0x9a, 0x0c, 0xb3, 0x85, 0x66,
-       0xc6, 0xa7, 0x82, 0x23, 0x89, 0x10, 0xba, 0x8f, 0x93, 0xf3, 0x38, 0x3d,
-       0x30, 0x7b, 0xe4, 0x3b, 0x46, 0x1f, 0x8e, 0xce, 0xbb, 0x3d, 0xb0, 0xed,
-       0xe4, 0x6e, 0xbe, 0x44, 0x04, 0x95, 0x0b, 0x3e, 0xbc, 0x40, 0xee, 0xbc,
-       0x95, 0xeb, 0x7c, 0xa6, 0xd4, 0x07, 0x5b, 0xc1, 0x18, 0xb1, 0x73, 0x2a,
-       0x66, 0x16, 0xf0, 0x86, 0x17, 0xb8, 0xb8, 0xc2, 0xe9, 0xed, 0x4b, 0xff,
-       0x3f, 0x84, 0x73, 0x0e, 0x77, 0x0e, 0x2e, 0x66, 0x14, 0x57, 0xb7, 0x0a,
-       0xae, 0x89, 0xac, 0xab, 0x87, 0xeb, 0xda, 0x7e, 0x52, 0xeb, 0x7c, 0x85,
-       0xb6, 0x68, 0x4a, 0xbc, 0xea, 0xac, 0xc7, 0x40, 0x4a, 0x6a, 0xd9, 0x40,
-       0x5b, 0xc0, 0x39, 0x0f, 0xa5, 0xb6, 0xfd, 0x28, 0x1b, 0xef, 0xa9, 0x2c,
-       0xc5, 0xe3, 0xaa, 0x7c, 0x05, 0xd2, 0x25, 0x1f, 0x09, 0xd0, 0xa7, 0x03,
-       0x93, 0x69, 0x54, 0x6d, 0x70, 0xfd, 0x7b, 0x55, 0x7e, 0x9c, 0xbc, 0xb5,
-       0x53, 0xea, 0xe8, 0xf0, 0x76, 0xab, 0x13, 0x53, 0x56, 0x0c, 0x95, 0xe7,
-       0x4a, 0x7b, 0xa6, 0xe7, 0xe4, 0xec, 0x5c, 0x7d, 0x9b, 0xfa, 0xd5, 0x32,
-       0x1f, 0x4c, 0x93, 0xe3, 0x44, 0x02, 0x77, 0x14, 0x84, 0x2b, 0xf6, 0xe0,
-       0xa8, 0xa5, 0x45, 0xbf, 0x87, 0xf8, 0xd0, 0xfd, 0xb4, 0x51, 0xb1, 0xee,
-       0x7a, 0xbf, 0x69, 0x40, 0xfa, 0x51, 0x9f, 0xe9, 0x37, 0x0d, 0xe7, 0xf0,
-       0x8b, 0xba, 0x96, 0x4a, 0x78, 0xd6, 0xfa, 0xc9, 0xe7, 0xb5, 0xe8, 0xd3,
-       0x78, 0x02, 0x23, 0xb9, 0x9f, 0x2b, 0x21, 0xdd, 0x37, 0xf8, 0x13, 0xaf,
-       0x16, 0x9d, 0x53, 0x42, 0x7c, 0xf7, 0xee, 0x60, 0x97, 0x75, 0x37, 0x71,
-       0x27, 0x9e, 0xec, 0x54, 0xbc, 0x98, 0x89, 0x3a, 0x5c, 0x34, 0xd8, 0xc3,
-       0x6b, 0x53, 0x85, 0x32, 0xa7, 0x71, 0x6b, 0xfe, 0xed, 0xc7, 0x5d, 0xfc,
-       0x88, 0xe7, 0x83, 0x8b, 0x97, 0xe0, 0xea, 0x56, 0x4d, 0x5d, 0x1f, 0x9c,
-       0x54, 0xed, 0xfe, 0x65, 0x12, 0xc3, 0x3a, 0xf6, 0xd0, 0xf7, 0xee, 0x99,
-       0x1e, 0xa0, 0x9c, 0xc2, 0xa5, 0x57, 0x10, 0xa7, 0xfa, 0x30, 0x4e, 0x9c,
-       0xb1, 0x28, 0x5f, 0x8e, 0x35, 0xe4, 0xe2, 0xfa, 0x8c, 0x3d, 0xb9, 0x41,
-       0x37, 0x56, 0x7b, 0x8b, 0x4b, 0xa2, 0xe4, 0x36, 0xeb, 0x98, 0xb7, 0xdb,
-       0x0b, 0xcd, 0xb8, 0x7c, 0x46, 0x67, 0x7d, 0xdb, 0x41, 0xee, 0xde, 0x83,
-       0x87, 0xa9, 0xcf, 0xa3, 0x85, 0xc7, 0x91, 0xfe, 0x92, 0x0f, 0x87, 0x8f,
-       0xa7, 0xb1, 0x6a, 0x5d, 0x0a, 0xe9, 0x2f, 0x06, 0x88, 0x53, 0x21, 0x4c,
-       0x30, 0x16, 0xa1, 0xb8, 0x7e, 0x2e, 0xe7, 0x7f, 0xfe, 0x82, 0x36, 0xfb,
-       0x26, 0xed, 0xf7, 0x8d, 0x6b, 0x7b, 0x00, 0x65, 0xfe, 0x7d, 0x9d, 0xab,
-       0x7a, 0xb9, 0x86, 0xfb, 0x9c, 0xd8, 0x8c, 0x32, 0x36, 0x75, 0x5c, 0x2d,
-       0xf5, 0x12, 0x17, 0x4f, 0x6a, 0x8b, 0xf7, 0x22, 0x3e, 0x7c, 0xd9, 0x8b,
-       0x81, 0x3a, 0xfa, 0x5d, 0x94, 0x5c, 0xf5, 0xc3, 0x44, 0xc2, 0x38, 0x47,
-       0xae, 0x3a, 0xba, 0xc1, 0xe5, 0xaa, 0x9e, 0x05, 0x15, 0x15, 0x0b, 0xac,
-       0x65, 0x9d, 0x5e, 0xe2, 0x37, 0x83, 0x6e, 0x2f, 0x51, 0xf8, 0x4d, 0xab,
-       0x9c, 0x75, 0xba, 0x8d, 0xb5, 0x5c, 0xfa, 0x0a, 0x32, 0xe8, 0x2c, 0xcc,
-       0x04, 0xef, 0x21, 0x36, 0xf7, 0x49, 0x6f, 0xa4, 0x10, 0x09, 0xdf, 0x43,
-       0xde, 0xf5, 0x2d, 0xae, 0xaf, 0xec, 0xed, 0xf6, 0x15, 0x56, 0xf3, 0xbd,
-       0x28, 0x3f, 0x05, 0x57, 0x45, 0xf6, 0x1b, 0xf5, 0xe8, 0xa9, 0x92, 0xbd,
-       0x86, 0x97, 0xa9, 0x43, 0xff, 0xdc, 0x4a, 0x3c, 0x3a, 0xe7, 0xaf, 0x12,
-       0xc2, 0xff, 0x68, 0xde, 0xc5, 0xb6, 0x58, 0xfe, 0xae, 0xa0, 0xf0, 0xc9,
-       0xf6, 0xe3, 0xee, 0x77, 0xfd, 0x86, 0xef, 0x65, 0xfd, 0x56, 0x50, 0x3f,
-       0x7b, 0x5a, 0xea, 0xa2, 0x68, 0xdb, 0x19, 0xea, 0xb7, 0x78, 0xd2, 0x89,
-       0x2f, 0xd6, 0x98, 0xf1, 0xe1, 0x84, 0x57, 0xf4, 0xfa, 0x99, 0xe8, 0x45,
-       0xae, 0xc2, 0x78, 0xe1, 0xb8, 0x1e, 0x3d, 0xe2, 0xe8, 0xe5, 0xea, 0xe3,
-       0xf6, 0x69, 0xaf, 0x9c, 0x4c, 0xde, 0xd8, 0x17, 0xd5, 0xc9, 0x97, 0x3f,
-       0x61, 0x6c, 0x3c, 0x71, 0x98, 0x9c, 0xf9, 0x2a, 0x6b, 0x4a, 0x3f, 0x9f,
-       0xaf, 0x73, 0x9e, 0x97, 0x3e, 0xad, 0xe7, 0x1a, 0x67, 0x5e, 0xbc, 0xfe,
-       0x4e, 0x89, 0x2f, 0x4b, 0x4f, 0x5a, 0x9e, 0x53, 0x1d, 0x3b, 0xed, 0x76,
-       0x78, 0xa0, 0x70, 0x2b, 0x1b, 0x1d, 0xeb, 0xfe, 0xad, 0x35, 0x0b, 0x2e,
-       0xce, 0x38, 0x6e, 0xd5, 0x55, 0x25, 0x7b, 0xe1, 0xab, 0xd6, 0x3d, 0x68,
-       0xbb, 0xfe, 0x1c, 0x09, 0xef, 0x62, 0x9c, 0x7c, 0x85, 0xef, 0xec, 0x3a,
-       0x57, 0x1f, 0xbe, 0xcb, 0x6a, 0x71, 0x6c, 0x74, 0xd7, 0xb9, 0x28, 0x46,
-       0x2d, 0xe9, 0xeb, 0x43, 0xf1, 0x99, 0x87, 0xb1, 0x7d, 0x2a, 0x86, 0x77,
-       0x8d, 0x60, 0xe9, 0xec, 0x89, 0xc4, 0xa4, 0xc1, 0x98, 0x8c, 0xd0, 0x77,
-       0xe3, 0xb1, 0x77, 0xc9, 0x51, 0x33, 0x3e, 0xe0, 0x68, 0x8e, 0xb8, 0x46,
-       0xde, 0x08, 0xc5, 0x3d, 0xbb, 0xe9, 0xbe, 0x5b, 0xfe, 0xbb, 0x1a, 0xb1,
-       0x25, 0xf1, 0xd6, 0xfd, 0xa8, 0x47, 0x96, 0xd8, 0x1f, 0xd4, 0xff, 0x1a,
-       0xc7, 0x4e, 0x78, 0x98, 0x1f, 0x08, 0x4e, 0x77, 0x1a, 0xfc, 0xde, 0x34,
-       0xf8, 0x01, 0xfe, 0xd1, 0x9e, 0x91, 0xf3, 0x51, 0x8a, 0x9c, 0xc5, 0xf8,
-       0xc4, 0xae, 0xd3, 0xf5, 0xe2, 0xb7, 0xa0, 0x0f, 0x5f, 0x45, 0xd3, 0xd0,
-       0x22, 0x7e, 0x6c, 0x17, 0x79, 0xef, 0x7d, 0xc6, 0xd1, 0x2b, 0x46, 0x3c,
-       0xea, 0xa1, 0xf0, 0xc5, 0x88, 0x17, 0xf7, 0x1b, 0xb2, 0xa7, 0xa4, 0x0d,
-       0x3d, 0x0f, 0x6d, 0xf0, 0xbc, 0x22, 0x67, 0x6a, 0x2e, 0xd9, 0x99, 0x25,
-       0x32, 0xaf, 0x82, 0xb5, 0xab, 0x9b, 0x3a, 0x2b, 0xa0, 0xb5, 0xfa, 0x15,
-       0xdd, 0xf8, 0x40, 0xf9, 0x7b, 0xbb, 0x18, 0xf9, 0xc4, 0xbe, 0xac, 0x97,
-       0xc7, 0xd5, 0x62, 0x01, 0x6f, 0x59, 0xb6, 0x7a, 0x1c, 0xb3, 0x64, 0x2f,
-       0xee, 0xaf, 0xf1, 0xc0, 0x09, 0x1f, 0x3a, 0x52, 0x3f, 0xb1, 0x33, 0x11,
-       0x19, 0xf3, 0x13, 0xda, 0x42, 0xc6, 0x77, 0xfb, 0xd5, 0x2f, 0x17, 0xa0,
-       0x6c, 0xb3, 0x84, 0x33, 0x8b, 0x5f, 0x4c, 0xc1, 0xb6, 0xa4, 0x87, 0x68,
-       0xe3, 0x8e, 0xd4, 0x08, 0xde, 0x4f, 0xa5, 0xff, 0x63, 0x00, 0xda, 0x85,
-       0x2b, 0x5e, 0xad, 0xd8, 0xec, 0x8d, 0x29, 0xc1, 0x46, 0x7d, 0xa8, 0xd1,
-       0xdd, 0x9f, 0x67, 0xfd, 0x14, 0x0a, 0xec, 0x2a, 0x48, 0x9d, 0x39, 0x85,
-       0x85, 0xc9, 0x0c, 0x7c, 0xe4, 0x77, 0xa3, 0x2d, 0x5a, 0xdf, 0x73, 0x8a,
-       0x16, 0x3d, 0xa0, 0xc4, 0x94, 0x7b, 0xf5, 0x61, 0xbc, 0x60, 0x24, 0xd2,
-       0xed, 0x4a, 0x7d, 0xa0, 0xb3, 0x50, 0x1e, 0xbb, 0x83, 0xb8, 0xa1, 0x15,
-       0xaf, 0x78, 0x2b, 0x51, 0xb7, 0x5e, 0xef, 0xac, 0xf4, 0x6a, 0xc3, 0x5f,
-       0x60, 0x1d, 0xb0, 0xa3, 0x50, 0x0c, 0x7e, 0x90, 0xf0, 0x60, 0x8d, 0xb3,
-       0x87, 0x90, 0x2d, 0xf5, 0x47, 0xa7, 0xd0, 0x35, 0x69, 0x6f, 0xbe, 0x98,
-       0xd2, 0xa2, 0xcf, 0x29, 0x99, 0x3d, 0x21, 0xf2, 0x9a, 0x07, 0xa1, 0xc7,
-       0xe6, 0x19, 0xc7, 0x1d, 0x05, 0x0f, 0x56, 0x3a, 0x7e, 0x9c, 0xe5, 0x98,
-       0x87, 0x51, 0x79, 0xc2, 0xde, 0xbc, 0xc7, 0xd0, 0x86, 0xaf, 0x78, 0x33,
-       0xff, 0xb5, 0x8e, 0x76, 0xdb, 0xa6, 0x68, 0xac, 0x4f, 0x47, 0x70, 0x91,
-       0x3a, 0x7c, 0x3d, 0xa5, 0x25, 0xff, 0x4c, 0xd1, 0x7a, 0xbe, 0x4c, 0x5f,
-       0xf6, 0x9a, 0x61, 0xca, 0xa9, 0x25, 0x67, 0x21, 0xbd, 0xf3, 0x18, 0xae,
-       0x18, 0x99, 0xe0, 0xf6, 0xc6, 0x24, 0xf9, 0x59, 0x94, 0xf9, 0x30, 0x86,
-       0xa3, 0xe4, 0x77, 0x87, 0x0b, 0x15, 0x28, 0xaa, 0x3a, 0xf9, 0x59, 0x0f,
-       0x3c, 0x93, 0x21, 0x65, 0x2e, 0x1b, 0x37, 0x3a, 0xf0, 0x47, 0x28, 0x3a,
-       0x38, 0x77, 0x18, 0xa1, 0x13, 0x3f, 0xb0, 0x6b, 0x74, 0xbd, 0x75, 0x52,
-       0xe1, 0xbc, 0xcf, 0x44, 0x69, 0x63, 0xbe, 0x27, 0xe7, 0x4e, 0xac, 0x6e,
-       0xdc, 0x3b, 0x19, 0xe1, 0xfb, 0x35, 0x58, 0x7b, 0x22, 0x86, 0x0f, 0x53,
-       0x37, 0xa3, 0xe8, 0x70, 0x04, 0x85, 0x7e, 0x40, 0x3f, 0x62, 0xad, 0x95,
-       0x21, 0x8f, 0x94, 0x7d, 0xa3, 0xc3, 0x96, 0xd4, 0xe8, 0x3e, 0x7e, 0x0f,
-       0xf1, 0x57, 0xec, 0xf9, 0x39, 0x72, 0x1d, 0xf9, 0x5c, 0xd3, 0x16, 0x9b,
-       0xfb, 0x5e, 0x95, 0xb3, 0x7f, 0x89, 0x18, 0x9f, 0x53, 0x9d, 0xde, 0xe0,
-       0x28, 0xc7, 0x3c, 0x3b, 0x25, 0xb5, 0x5b, 0xfb, 0xa6, 0x40, 0x69, 0x7f,
-       0xfd, 0x87, 0x86, 0x07, 0x9b, 0x59, 0xdf, 0x47, 0x75, 0x39, 0x9b, 0x39,
-       0xaa, 0xd5, 0x61, 0x13, 0x4e, 0xab, 0x2c, 0xc4, 0xf5, 0xff, 0x80, 0x09,
-       0x35, 0x49, 0xac, 0xd1, 0xf1, 0x5e, 0xf6, 0x37, 0x58, 0xf3, 0xd4, 0xcb,
-       0xd9, 0x1b, 0xac, 0x3c, 0xe1, 0xe7, 0x9c, 0x9b, 0xc9, 0x75, 0xb6, 0xe3,
-       0xbb, 0xaa, 0x5b, 0x6f, 0x10, 0x8f, 0x30, 0x3e, 0x1b, 0x22, 0x1f, 0x0d,
-       0xf0, 0xf7, 0x46, 0xd9, 0x7e, 0x9d, 0x4c, 0xa2, 0xcb, 0xbf, 0x25, 0x53,
-       0x80, 0x7c, 0x80, 0x78, 0x99, 0x7d, 0x0d, 0x1f, 0x72, 0xec, 0xcc, 0xac,
-       0x3b, 0xe6, 0xf1, 0x82, 0x8c, 0x2b, 0xf3, 0xc5, 0x99, 0x37, 0x65, 0xfc,
-       0x90, 0x9c, 0xbf, 0xfd, 0x77, 0xce, 0x41, 0x86, 0x77, 0x82, 0x35, 0xb2,
-       0xd1, 0x88, 0x0e, 0x95, 0xeb, 0x65, 0xc9, 0x1c, 0x1a, 0xeb, 0x51, 0x79,
-       0x37, 0x8a, 0x35, 0x93, 0xf6, 0x48, 0xd4, 0x94, 0xeb, 0xb6, 0x5d, 0xbb,
-       0x51, 0x8f, 0xbe, 0xad, 0xf8, 0x98, 0xf3, 0x7c, 0xb4, 0xc1, 0x38, 0xce,
-       0x66, 0x9b, 0x2e, 0xbc, 0x4f, 0x0e, 0x15, 0x63, 0xbd, 0x77, 0xc9, 0x3b,
-       0x8e, 0xb9, 0xec, 0xb1, 0x6a, 0xe9, 0x13, 0x30, 0x0f, 0x2a, 0xb3, 0xd9,
-       0xfb, 0xab, 0x05, 0xab, 0xc6, 0xe8, 0x0b, 0xcd, 0x93, 0x22, 0xab, 0x3d,
-       0x52, 0xc3, 0x71, 0x8e, 0x72, 0x9c, 0xd9, 0x0d, 0x7a, 0xdf, 0x98, 0x22,
-       0x36, 0x0b, 0xe1, 0x58, 0xe1, 0xa2, 0xf4, 0xd0, 0x68, 0xb7, 0x69, 0x3e,
-       0x2f, 0x76, 0x8b, 0xe0, 0xbb, 0xa5, 0x71, 0x9e, 0x2a, 0x5c, 0xc0, 0x6c,
-       0xf6, 0x2d, 0xe7, 0xef, 0x31, 0xd6, 0x0d, 0xe3, 0xac, 0x21, 0xf3, 0xc4,
-       0x93, 0xc9, 0x6c, 0x53, 0xdf, 0x24, 0xe5, 0x70, 0xcf, 0xca, 0x0d, 0xe0,
-       0xd9, 0xd2, 0x33, 0xa3, 0x7c, 0x77, 0xf4, 0xda, 0xdf, 0x62, 0x23, 0x77,
-       0x0f, 0xdf, 0xdd, 0x53, 0xa8, 0xe4, 0xda, 0xb9, 0xb5, 0xf8, 0x11, 0xcb,
-       0x2f, 0x7d, 0x70, 0xbc, 0x36, 0xb5, 0x19, 0x63, 0xc6, 0x5f, 0x62, 0x2f,
-       0xf5, 0x1e, 0xa7, 0x3d, 0x4f, 0x58, 0xce, 0x5e, 0xbd, 0x9c, 0xcb, 0x22,
-       0x96, 0x87, 0xda, 0xce, 0x90, 0x93, 0x1d, 0x63, 0xcc, 0xdc, 0x97, 0x6a,
-       0xea, 0x79, 0x9d, 0x7e, 0x97, 0xfe, 0xa2, 0xec, 0x87, 0x03, 0x93, 0xb9,
-       0x47, 0x31, 0xb3, 0xa4, 0x69, 0xf1, 0x45, 0x62, 0xc2, 0x69, 0xe2, 0x94,
-       0x8f, 0x98, 0x50, 0x9b, 0xf3, 0x94, 0xf6, 0x77, 0x0d, 0x7e, 0x6f, 0xba,
-       0x30, 0x87, 0xbf, 0xa1, 0x5d, 0x44, 0xbe, 0x78, 0x72, 0x0e, 0xf2, 0xac,
-       0xdb, 0x83, 0xd5, 0xe7, 0x06, 0x71, 0xe9, 0x66, 0xb7, 0x8f, 0xe6, 0x65,
-       0xee, 0xde, 0x97, 0x6d, 0x52, 0xc7, 0x64, 0xec, 0x5e, 0x2d, 0x9a, 0xe1,
-       0x5a, 0x4d, 0x38, 0x1c, 0x5c, 0x65, 0x8e, 0x97, 0x73, 0x58, 0x35, 0xf0,
-       0xd1, 0xf7, 0xc7, 0x0c, 0x39, 0xbf, 0x10, 0x0d, 0xef, 0xe0, 0x1a, 0x8e,
-       0x59, 0x4d, 0xad, 0x71, 0x65, 0x0f, 0xca, 0xfc, 0xdb, 0xe5, 0xd4, 0x5a,
-       0xdf, 0x51, 0x34, 0xf5, 0x3c, 0x88, 0x2f, 0x21, 0xbd, 0xa4, 0xa9, 0x7f,
-       0x0a, 0x71, 0xe3, 0x7e, 0xc8, 0x39, 0x4e, 0x77, 0xac, 0x86, 0x3c, 0x33,
-       0xc9, 0xd2, 0x4f, 0xec, 0x15, 0xfa, 0x53, 0x98, 0x22, 0x77, 0x6c, 0x5c,
-       0xa7, 0x5f, 0xf8, 0x5a, 0xe9, 0x9e, 0xbb, 0x4f, 0x24, 0xfe, 0x12, 0xa0,
-       0x0d, 0x2a, 0xe1, 0x5b, 0x5a, 0xcf, 0x39, 0x68, 0x0b, 0xe7, 0x8c, 0xef,
-       0x45, 0x1c, 0xa4, 0xbf, 0x4d, 0x15, 0x14, 0x18, 0x0d, 0x17, 0x31, 0x24,
-       0xb9, 0x8b, 0xef, 0xb4, 0x67, 0x43, 0xe4, 0xb2, 0x51, 0x54, 0xea, 0xf1,
-       0xd8, 0x28, 0xf5, 0x6b, 0x27, 0x96, 0x8f, 0x13, 0x43, 0x32, 0x6a, 0xc8,
-       0x39, 0x77, 0x5a, 0xa9, 0x47, 0x9d, 0xff, 0x15, 0x90, 0x5a, 0xa8, 0x71,
-       0x46, 0xf6, 0xa8, 0x0f, 0xe3, 0xe2, 0x54, 0x11, 0xc7, 0x52, 0x69, 0xec,
-       0x5f, 0xa2, 0x62, 0xd2, 0x5a, 0xe6, 0xf4, 0x0e, 0xa4, 0xe6, 0xea, 0xca,
-       0x1d, 0x72, 0xfa, 0x91, 0x5b, 0x53, 0x9e, 0x06, 0x39, 0xa7, 0x31, 0xcb,
-       0xda, 0x6b, 0xca, 0x18, 0xc1, 0x41, 0xe3, 0xcb, 0x30, 0x96, 0x0a, 0x76,
-       0x8e, 0xe1, 0xd5, 0x19, 0xc9, 0x71, 0xc9, 0xb6, 0x5b, 0x26, 0xc5, 0x3e,
-       0x1e, 0x72, 0xdf, 0x00, 0x9a, 0x1d, 0x2e, 0xf7, 0x50, 0xdb, 0xea, 0x19,
-       0x97, 0xd3, 0x35, 0xe7, 0xe5, 0xac, 0x74, 0x0d, 0xc2, 0xb4, 0xd7, 0xf9,
-       0x94, 0x9f, 0x98, 0x23, 0xf6, 0x94, 0x33, 0x7a, 0xae, 0x9e, 0xc9, 0xbc,
-       0x82, 0xb1, 0x96, 0x1b, 0xf7, 0x58, 0xe4, 0xff, 0x06, 0xae, 0x9d, 0x1b,
-       0x2c, 0xf5, 0xc7, 0xff, 0xcc, 0xbe, 0x74, 0x93, 0xe8, 0xbd, 0x22, 0x44,
-       0x4c, 0x8f, 0xcd, 0x5c, 0xb3, 0xaf, 0xd8, 0xf4, 0x9c, 0xe4, 0x0c, 0xc7,
-       0xe6, 0x6e, 0xcf, 0x4d, 0x1b, 0xba, 0xac, 0x34, 0x31, 0x9f, 0xd0, 0xaf,
-       0x96, 0xd0, 0xdf, 0x9a, 0xd1, 0xbf, 0xc2, 0xf4, 0xf5, 0x5e, 0xb5, 0x36,
-       0xa3, 0x75, 0xfd, 0x7b, 0x36, 0x6e, 0x6e, 0x87, 0x57, 0x97, 0xeb, 0x33,
-       0x76, 0x5a, 0x95, 0xbf, 0xff, 0x24, 0x24, 0xb9, 0xfe, 0x65, 0xab, 0x68,
-       0xaf, 0x5e, 0xe6, 0x72, 0xc4, 0x1f, 0x64, 0x65, 0xdf, 0x2b, 0x63, 0xb3,
-       0xde, 0xbe, 0xf0, 0xae, 0xf7, 0x10, 0xbe, 0x9f, 0x3f, 0x8c, 0x77, 0xa6,
-       0x7c, 0x08, 0xeb, 0xa2, 0xcb, 0x66, 0xd4, 0xae, 0x4f, 0xa4, 0xdf, 0x23,
-       0x2e, 0x5e, 0x98, 0x29, 0xfb, 0xc5, 0x43, 0x6d, 0x6b, 0x66, 0x14, 0x8e,
-       0x55, 0x83, 0x0a, 0xea, 0xf9, 0x1d, 0xc3, 0x8b, 0x58, 0x89, 0xe3, 0x7a,
-       0x29, 0xa7, 0x9c, 0x7b, 0x10, 0xee, 0x1b, 0xcf, 0x1f, 0x0a, 0xb9, 0x3d,
-       0xb0, 0x10, 0x71, 0x74, 0x1c, 0x13, 0xd9, 0xa6, 0xe4, 0xfb, 0x72, 0x0e,
-       0x87, 0x35, 0xd9, 0x25, 0x8c, 0xe3, 0x44, 0xb6, 0x8c, 0xa1, 0x51, 0x39,
-       0x97, 0x9a, 0x8c, 0x79, 0x5c, 0x8c, 0x8c, 0x79, 0xb4, 0x4c, 0xcc, 0xe3,
-       0x0f, 0x09, 0x77, 0x18, 0x2d, 0xc4, 0xa3, 0x95, 0xf0, 0xe2, 0x3e, 0xc3,
-       0xf5, 0x8f, 0x86, 0x39, 0x3f, 0x62, 0x4b, 0x25, 0x2f, 0x4b, 0x4e, 0xf6,
-       0x31, 0x27, 0x2f, 0x23, 0xbf, 0xf6, 0xe1, 0x4d, 0x5d, 0xec, 0xb1, 0xa6,
-       0x6c, 0x0f, 0xe3, 0x1c, 0x1e, 0xb6, 0x8b, 0x3d, 0xe2, 0x4b, 0x7e, 0x1c,
-       0x6e, 0x9e, 0xb5, 0x67, 0x22, 0xa2, 0xbb, 0x17, 0xa7, 0x89, 0xaf, 0xb8,
-       0x39, 0x1e, 0x3d, 0xcd, 0x9c, 0x3d, 0xa6, 0x97, 0x7d, 0xfc, 0xb7, 0x4b,
-       0x72, 0xea, 0x7d, 0xf3, 0xb8, 0x9f, 0x7f, 0x37, 0x44, 0xf7, 0x2b, 0xee,
-       0x7c, 0xab, 0xe7, 0xfe, 0x26, 0x54, 0xee, 0x9f, 0xca, 0xb3, 0xb1, 0xfc,
-       0xe3, 0xfc, 0x2e, 0x63, 0x85, 0xe8, 0x9f, 0x95, 0xe8, 0x8f, 0xc8, 0xff,
-       0x89, 0x88, 0x5d, 0x64, 0x3f, 0x11, 0xb4, 0x87, 0x8d, 0xd7, 0x68, 0x8f,
-       0xc3, 0xd7, 0xce, 0x4c, 0xb9, 0xf8, 0x55, 0xc5, 0xeb, 0x3b, 0x52, 0xaf,
-       0x6c, 0x0a, 0xe2, 0x17, 0xf6, 0xa5, 0x48, 0x94, 0x98, 0x50, 0xe6, 0xa1,
-       0x62, 0x33, 0xc3, 0xb1, 0x99, 0x5b, 0x2b, 0x5e, 0xd3, 0xa3, 0x38, 0x40,
-       0xbe, 0xbd, 0x90, 0x2d, 0x9f, 0x15, 0x89, 0x13, 0x6b, 0x3e, 0x8f, 0xfe,
-       0x3a, 0x19, 0xaf, 0x9e, 0xfe, 0x95, 0xa4, 0x0d, 0xd4, 0xf0, 0xce, 0x69,
-       0xa9, 0xb5, 0xc9, 0x8f, 0x27, 0xe3, 0xc6, 0x43, 0xe4, 0x91, 0x13, 0x93,
-       0xb6, 0xfd, 0x96, 0x81, 0x3b, 0xc3, 0xcc, 0xef, 0x2f, 0x90, 0x4f, 0x90,
-       0x6f, 0xc4, 0x2a, 0x95, 0xa6, 0xe8, 0x2a, 0xe6, 0xfa, 0x31, 0xd6, 0x0a,
-       0x4f, 0x13, 0xe3, 0x4e, 0x2f, 0x54, 0xc1, 0x3a, 0x21, 0xfb, 0x82, 0x55,
-       0x98, 0x7c, 0x26, 0x49, 0xd9, 0x97, 0x72, 0x9c, 0x00, 0xaa, 0xcf, 0xb4,
-       0xa2, 0xea, 0x94, 0x82, 0x1d, 0x89, 0x56, 0x04, 0xcf, 0xd4, 0x30, 0xff,
-       0x06, 0x70, 0xa5, 0x85, 0x6b, 0xfc, 0x4c, 0x59, 0x0f, 0x67, 0x8f, 0x14,
-       0x4f, 0xe6, 0x62, 0xe4, 0xf1, 0x11, 0x2c, 0x58, 0xb2, 0x1f, 0x1c, 0x70,
-       0xb0, 0xf4, 0xc2, 0x86, 0x7a, 0x67, 0xcf, 0xea, 0xc5, 0x82, 0x1e, 0x3d,
-       0xab, 0xd4, 0xe0, 0xc7, 0x27, 0x8a, 0x37, 0x57, 0xc2, 0x7e, 0x79, 0x85,
-       0x99, 0xe8, 0xdb, 0x4b, 0xff, 0x5f, 0xb3, 0x3a, 0xc2, 0xfa, 0xc6, 0xb6,
-       0xaf, 0x6e, 0x94, 0x3a, 0xd8, 0x70, 0xea, 0x60, 0x77, 0x6f, 0x5f, 0x1f,
-       0x7c, 0x4c, 0xc9, 0x6c, 0x0f, 0xc3, 0xfe, 0xa8, 0xd2, 0xb4, 0x3f, 0xf6,
-       0x9b, 0x09, 0xbe, 0x2f, 0x7b, 0x7c, 0xb6, 0xfd, 0xc3, 0x16, 0xdb, 0xce,
-       0xb7, 0xc4, 0xfb, 0x54, 0xaf, 0x8a, 0x33, 0x8d, 0xb2, 0x2f, 0xe8, 0xc1,
-       0x8f, 0x13, 0x7a, 0x74, 0x2f, 0x64, 0x0f, 0x9e, 0x78, 0xbf, 0x4c, 0xce,
-       0x18, 0xd6, 0x87, 0x3b, 0xad, 0xa5, 0x78, 0x61, 0x7e, 0x23, 0xfa, 0xfd,
-       0x70, 0xce, 0xc5, 0xd8, 0x06, 0xde, 0x5e, 0x01, 0xc9, 0xe1, 0x89, 0xd6,
-       0xc7, 0x10, 0xc1, 0x7c, 0xe1, 0x30, 0x1e, 0x39, 0x21, 0xf5, 0xd7, 0xea,
-       0xb6, 0xc0, 0x09, 0xfb, 0x07, 0x51, 0xb3, 0x48, 0x8c, 0xb4, 0xed, 0xaa,
-       0x8d, 0x4d, 0x51, 0xa6, 0x26, 0xf2, 0x8d, 0x18, 0x79, 0xb3, 0x3e, 0xf8,
-       0x63, 0x2c, 0xc1, 0xd9, 0xd9, 0xf4, 0xcd, 0xe4, 0xf2, 0x9d, 0xcf, 0x2a,
-       0xc2, 0xdb, 0x23, 0x78, 0xbe, 0x20, 0x9c, 0x65, 0x6d, 0x5b, 0xd7, 0x89,
-       0xe5, 0x78, 0x79, 0x3e, 0x82, 0xb3, 0x96, 0x4e, 0xce, 0x04, 0xa5, 0xda,
-       0xb4, 0x6b, 0x6b, 0x29, 0x6b, 0xb5, 0xd7, 0x8b, 0xed, 0x29, 0xa9, 0x19,
-       0xf5, 0xc1, 0x90, 0x82, 0xe5, 0x95, 0xd0, 0x17, 0x1f, 0x06, 0x86, 0x82,
-       0x66, 0xe2, 0xc2, 0xb3, 0x4a, 0xa2, 0xef, 0x03, 0x6f, 0x04, 0xdf, 0x22,
-       0x16, 0x7d, 0xbd, 0x20, 0x67, 0xa5, 0x88, 0x37, 0xb3, 0x31, 0xae, 0x5b,
-       0x00, 0x9e, 0x86, 0x1a, 0x1c, 0x61, 0xec, 0xbc, 0x66, 0x54, 0x10, 0xaf,
-       0xe4, 0xec, 0x94, 0x60, 0x7d, 0xbd, 0x9c, 0x19, 0xb1, 0x5f, 0xd4, 0xdd,
-       0x7a, 0xdf, 0x98, 0xbb, 0xf1, 0x4c, 0xb1, 0x4a, 0x8c, 0x6f, 0xea, 0x89,
-       0x2a, 0x6f, 0xd8, 0xe9, 0x2f, 0x2a, 0xd4, 0xb3, 0xb7, 0x06, 0x55, 0x8e,
-       0xae, 0x18, 0xcd, 0x95, 0xf3, 0x4b, 0xad, 0xd4, 0x77, 0x3d, 0x99, 0x92,
-       0x3f, 0x56, 0x33, 0xee, 0x8f, 0x32, 0x5f, 0x57, 0x9e, 0x90, 0xbc, 0x42,
-       0xfe, 0xad, 0x6c, 0x26, 0x2f, 0x16, 0x0e, 0x11, 0xc0, 0x83, 0xaa, 0xf8,
-       0x86, 0x4a, 0xfd, 0x36, 0xf9, 0xe4, 0x2c, 0xd4, 0x0b, 0x05, 0xc9, 0xeb,
-       0x82, 0x0b, 0xe5, 0xf9, 0xa2, 0xa8, 0x9b, 0x94, 0x35, 0x52, 0xdb, 0x3e,
-       0x9a, 0x0c, 0xc9, 0xd9, 0xf7, 0x11, 0x0f, 0xeb, 0xef, 0x00, 0xfd, 0xeb,
-       0x9e, 0x16, 0x7d, 0x70, 0xb3, 0x57, 0x63, 0x0d, 0x1e, 0x67, 0x2d, 0xa1,
-       0xb5, 0x4e, 0x28, 0x37, 0x8e, 0xf3, 0x6c, 0x8d, 0xc4, 0x4b, 0x86, 0x7a,
-       0x3e, 0xe9, 0xe8, 0xb4, 0x86, 0x3a, 0x09, 0x5e, 0x27, 0x89, 0xd7, 0x35,
-       0xb8, 0x32, 0x05, 0x9d, 0x11, 0x8c, 0x57, 0x0d, 0x02, 0x95, 0x9a, 0x48,
-       0x77, 0x40, 0x62, 0x41, 0xeb, 0x17, 0x3e, 0x55, 0x4d, 0x7c, 0x9e, 0x9d,
-       0x92, 0x7c, 0xa3, 0x08, 0x57, 0xc9, 0xd4, 0x9a, 0x43, 0xf8, 0x70, 0x03,
-       0xf0, 0xc6, 0xa4, 0xbb, 0xef, 0xde, 0x27, 0x67, 0x6f, 0x2b, 0xdd, 0x33,
-       0x0d, 0x8f, 0x39, 0x67, 0x15, 0x64, 0xfc, 0x43, 0x38, 0x93, 0x15, 0x7e,
-       0x39, 0x44, 0x7e, 0x19, 0x1f, 0x26, 0xf7, 0x6c, 0x2d, 0x40, 0x62, 0xb2,
-       0xc9, 0xf8, 0x88, 0xbe, 0xff, 0x2c, 0x79, 0xeb, 0x11, 0xb8, 0xfb, 0xee,
-       0x8d, 0xa5, 0xb3, 0x08, 0xf1, 0x7c, 0xa7, 0xb2, 0xd3, 0x39, 0xcf, 0x64,
-       0x30, 0xde, 0x3a, 0x94, 0x1d, 0xf3, 0xdb, 0x94, 0xae, 0xf9, 0x6e, 0x65,
-       0x4f, 0x41, 0xea, 0xd8, 0xd5, 0x6d, 0x0f, 0x9e, 0xd8, 0xad, 0xec, 0x9c,
-       0xed, 0x55, 0xc8, 0x6f, 0xd5, 0x80, 0xd9, 0xa7, 0x74, 0xcf, 0xbb, 0xfd,
-       0xf4, 0x4e, 0xd6, 0x70, 0x3b, 0x2d, 0xf1, 0x07, 0xb5, 0xad, 0x6b, 0x52,
-       0xfe, 0x17, 0x2b, 0x22, 0xff, 0xf7, 0xd0, 0xbf, 0x55, 0xb1, 0xed, 0x55,
-       0xa9, 0xd7, 0x65, 0x3d, 0xec, 0xe7, 0x53, 0xcc, 0x93, 0x56, 0x0d, 0x06,
-       0x58, 0x83, 0x8c, 0x1a, 0xb7, 0x94, 0xf6, 0xcf, 0x44, 0x27, 0x39, 0x2f,
-       0x21, 0xfe, 0x8a, 0x4c, 0x25, 0x65, 0xf8, 0x07, 0xca, 0xbf, 0xbf, 0xa4,
-       0x57, 0xb7, 0x9c, 0x27, 0xf0, 0x23, 0x23, 0x3a, 0xe4, 0xa9, 0xef, 0xb1,
-       0xc9, 0xeb, 0x7a, 0xf9, 0x78, 0x6d, 0x9c, 0x5c, 0x75, 0xbf, 0xa2, 0x0d,
-       0x3f, 0xe7, 0xea, 0x75, 0xe1, 0x8a, 0xa2, 0x15, 0x47, 0x21, 0xb8, 0xe0,
-       0xea, 0xb5, 0xb6, 0xa4, 0xd7, 0x9a, 0x7c, 0xa7, 0x73, 0x4e, 0xab, 0x86,
-       0x7a, 0x2d, 0x4c, 0x76, 0x28, 0x9d, 0xf3, 0xd2, 0xcb, 0x14, 0xdd, 0x44,
-       0x8f, 0x13, 0x76, 0x95, 0xde, 0xad, 0xdc, 0xee, 0x9c, 0x2b, 0x93, 0xb3,
-       0x5d, 0xb2, 0xdf, 0x5f, 0xd6, 0x4b, 0x72, 0xfa, 0xd2, 0xf0, 0xb6, 0x69,
-       0x35, 0xbc, 0x75, 0xda, 0xb6, 0xbf, 0x6b, 0xfc, 0xb3, 0xa3, 0xcb, 0x59,
-       0x43, 0x74, 0x91, 0x73, 0x23, 0x65, 0x7d, 0xbe, 0x50, 0xd2, 0x47, 0xd6,
-       0xea, 0xfa, 0x3a, 0x95, 0xff, 0x87, 0xef, 0xdd, 0xac, 0x7b, 0xa6, 0xa4,
-       0xac, 0x4f, 0xd8, 0x2c, 0x9f, 0x2f, 0x1b, 0xc2, 0x1b, 0xbc, 0xff, 0x93,
-       0x6c, 0x59, 0x2f, 0x2f, 0xe6, 0x66, 0xc5, 0xfe, 0x43, 0xf2, 0x3f, 0x7c,
-       0xc4, 0x91, 0xb8, 0x31, 0x46, 0x3f, 0x72, 0xf5, 0xd3, 0x86, 0x57, 0x7a,
-       0x9b, 0x8a, 0x57, 0xa0, 0xf5, 0x2f, 0x2a, 0x89, 0x34, 0x6b, 0x70, 0x9c,
-       0x2d, 0xfc, 0xea, 0xfa, 0x35, 0xe7, 0xab, 0x94, 0x6d, 0x39, 0x19, 0xfb,
-       0x21, 0x8e, 0x2d, 0x67, 0x4a, 0x14, 0x3c, 0x37, 0x0b, 0xcc, 0x5a, 0x9c,
-       0xd6, 0x1c, 0xc1, 0xd3, 0x86, 0x6d, 0x3f, 0xdb, 0xa2, 0xcb, 0x59, 0xa0,
-       0xf3, 0x6e, 0xaf, 0x08, 0x46, 0x8d, 0x2e, 0x7b, 0x79, 0x72, 0x9e, 0xa4,
-       0x97, 0x36, 0x10, 0xdd, 0xc5, 0x07, 0xca, 0x6b, 0x2f, 0xe7, 0xdc, 0x32,
-       0xb4, 0x8f, 0xd8, 0xa6, 0x7c, 0xde, 0x4d, 0xfa, 0x30, 0x37, 0xda, 0x64,
-       0x6d, 0xd8, 0x59, 0x5f, 0x43, 0xfc, 0x95, 0xe8, 0x43, 0x5f, 0x9d, 0x23,
-       0x97, 0x18, 0x33, 0xfc, 0x0e, 0x6f, 0x3b, 0x42, 0xae, 0x32, 0xc1, 0xd8,
-       0x79, 0xd2, 0xba, 0x80, 0x0b, 0xf9, 0xd7, 0xf0, 0xc6, 0xb5, 0xff, 0x67,
-       0x13, 0x7f, 0xb9, 0xb8, 0xb1, 0xcb, 0x39, 0xd3, 0x74, 0xba, 0xf5, 0x96,
-       0x84, 0xe0, 0x50, 0x77, 0xb3, 0x9c, 0x71, 0xaa, 0x34, 0xf3, 0x9b, 0x64,
-       0xbf, 0xab, 0xc2, 0x34, 0x6f, 0x3d, 0xaf, 0x8b, 0x6d, 0xfe, 0x62, 0xfd,
-       0x19, 0x5d, 0xf4, 0xfa, 0x9f, 0x6b, 0xc7, 0x9d, 0xff, 0xaf, 0xfc, 0xbb,
-       0x5b, 0xf7, 0xe9, 0x12, 0x3b, 0x67, 0x5b, 0xda, 0x1d, 0x4c, 0x68, 0x35,
-       0x57, 0x39, 0x36, 0x68, 0x31, 0x6f, 0x71, 0x3e, 0x0d, 0x33, 0xe9, 0x7c,
-       0x9a, 0xa6, 0x6b, 0x9b, 0x6e, 0xb3, 0xc1, 0xf9, 0xec, 0x30, 0xdd, 0xf3,
-       0xcf, 0x69, 0x53, 0x77, 0x3e, 0x7b, 0xcc, 0xb8, 0xf3, 0xd9, 0x69, 0xae,
-       0xbc, 0x2e, 0x17, 0x7f, 0xfe, 0x1f, 0x9b, 0x97, 0x53, 0xd9, 0x78, 0x3a,
-       0x00, 0x00, 0x00 };
-
-static const u32 bnx2_TXP_b06FwData[(0x0/4) + 1] = { 0x0 };
-static const u32 bnx2_TXP_b06FwRodata[(0x0/4) + 1] = { 0x0 };
-
-static struct fw_info bnx2_txp_fw_06 = {
-       /* Firmware version: 4.6.16 */
-       .ver_major                      = 0x4,
-       .ver_minor                      = 0x6,
-       .ver_fix                        = 0x10,
-
-       .start_addr                     = 0x08000098,
-
-       .text_addr                      = 0x08000000,
-       .text_len                       = 0x3a74,
-       .text_index                     = 0x0,
-       .gz_text                        = bnx2_TXP_b06FwText,
-       .gz_text_len                    = sizeof(bnx2_TXP_b06FwText),
-
-       .data_addr                      = 0x00000000,
-       .data_len                       = 0x0,
-       .data_index                     = 0x0,
-       .data                           = bnx2_TXP_b06FwData,
-
-       .sbss_addr                      = 0x08003aa0,
-       .sbss_len                       = 0x68,
-       .sbss_index                     = 0x0,
-
-       .bss_addr                       = 0x08003b08,
-       .bss_len                        = 0x14c,
-       .bss_index                      = 0x0,
-
-       .rodata_addr                    = 0x00000000,
-       .rodata_len                     = 0x0,
-       .rodata_index                   = 0x0,
-       .rodata                         = bnx2_TXP_b06FwRodata,
-};
-
 /* Initialized Values for the TX Processor. */
 static const struct cpu_reg cpu_reg_txp = {
        .mode = BNX2_TXP_CPU_MODE,
@@ -4461,4 +86,3 @@ static const struct cpu_reg cpu_reg_txp = {
        .spad_base = BNX2_TXP_SCRATCH,
        .mips_view_base = 0x8000000,
 };
-
diff --git a/drivers/net/bnx2_fw2.h b/drivers/net/bnx2_fw2.h
deleted file mode 100644 (file)
index c54e488..0000000
+++ /dev/null
@@ -1,4547 +0,0 @@
-/* bnx2_fw2.h: Broadcom NX2 network driver.
- *
- * Copyright (c) 2004, 2005, 2006, 2007 Broadcom Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, except as noted below.
- *
- * This file contains firmware data derived from proprietary unpublished
- * source code, Copyright (c) 2004, 2005, 2006, 2007 Broadcom Corporation.
- *
- * Permission is hereby granted for the distribution of this firmware data
- * in hexadecimal or equivalent format, provided this copyright notice is
- * accompanying it.
- */
-
-static u8 bnx2_COM_b09FwText[] = {
-       0xcd, 0x7c, 0x7b, 0x6c, 0x5c, 0xd7, 0x99, 0xdf, 0x77, 0xef, 0xcc, 0x90,
-       0x43, 0x6a, 0x44, 0x5d, 0x32, 0x13, 0x66, 0x1c, 0x33, 0xcd, 0x3c, 0x2e,
-       0x29, 0xda, 0x64, 0x92, 0x31, 0x77, 0xa4, 0xd0, 0xc9, 0xad, 0x3d, 0x99,
-       0x19, 0xc9, 0x4c, 0xa8, 0x0d, 0xe8, 0x44, 0x2e, 0x52, 0x54, 0x28, 0xd8,
-       0x21, 0xe5, 0x28, 0x8b, 0xec, 0xae, 0xf2, 0x28, 0x9a, 0x2e, 0xd2, 0xd5,
-       0x64, 0x48, 0x29, 0xca, 0x62, 0xc4, 0x19, 0xd3, 0x34, 0x93, 0xa2, 0x01,
-       0x32, 0x19, 0x92, 0x72, 0x76, 0x31, 0x12, 0x15, 0xdb, 0xcd, 0x1a, 0x41,
-       0xe2, 0xb0, 0xd4, 0x23, 0xde, 0x20, 0x2d, 0xb4, 0x1b, 0x17, 0x4d, 0xd3,
-       0x45, 0x21, 0xc8, 0x4e, 0x6c, 0x6c, 0xb3, 0x6d, 0x50, 0x2c, 0x10, 0x77,
-       0x91, 0x64, 0xfa, 0xfb, 0x9d, 0x73, 0xee, 0x70, 0x44, 0x31, 0x4e, 0xba,
-       0x7f, 0x95, 0xc0, 0xe0, 0xdc, 0x7b, 0x9e, 0xdf, 0xf9, 0xce, 0xf7, 0x3e,
-       0xdf, 0xe5, 0x43, 0x22, 0xbd, 0x62, 0xfe, 0xf6, 0xe3, 0x97, 0xf9, 0xfd,
-       0x3f, 0x9c, 0x7b, 0xe0, 0x9d, 0x87, 0xdf, 0x89, 0xc7, 0x43, 0xf6, 0x81,
-       0xae, 0x20, 0xeb, 0x03, 0xf8, 0x45, 0xf1, 0x9b, 0x30, 0xcf, 0x7b, 0xfd,
-       0x39, 0xf8, 0x1d, 0xb6, 0x44, 0x66, 0xff, 0x46, 0xc4, 0xda, 0xd5, 0x16,
-       0xfe, 0x35, 0x63, 0xde, 0xe8, 0xcf, 0xfe, 0x2d, 0xfb, 0x39, 0xff, 0x80,
-       0xb9, 0xfd, 0xbf, 0x80, 0x19, 0xbe, 0xdf, 0xfc, 0x24, 0x6c, 0x7b, 0xb7,
-       0x3e, 0x90, 0x73, 0x25, 0x1c, 0xf0, 0x7e, 0x38, 0x3d, 0xe7, 0x8a, 0x64,
-       0x9b, 0x63, 0xf1, 0xbc, 0xfc, 0xb2, 0x55, 0x8a, 0x06, 0x85, 0xf5, 0x6f,
-       0xf3, 0x7e, 0xf1, 0x95, 0x6f, 0xbf, 0x3b, 0xf1, 0xb3, 0x7a, 0x40, 0xc2,
-       0x8e, 0xf7, 0xba, 0x38, 0x23, 0x12, 0x1e, 0xc2, 0x98, 0x2f, 0x1f, 0x9c,
-       0xb5, 0xa5, 0xcf, 0x9f, 0xeb, 0xb5, 0xd6, 0xb7, 0x0f, 0x4a, 0xc9, 0xf6,
-       0x1c, 0xb9, 0xb2, 0x19, 0x95, 0xef, 0x6c, 0x8a, 0x35, 0x93, 0xe9, 0x11,
-       0x7b, 0xf9, 0xad, 0x92, 0x75, 0x2c, 0x09, 0xb8, 0x5c, 0x27, 0x2e, 0xb9,
-       0xca, 0x20, 0xde, 0x13, 0x31, 0x91, 0x7f, 0xbe, 0x5f, 0x8f, 0x0d, 0x4b,
-       0x60, 0x55, 0xc2, 0x5d, 0xde, 0x0b, 0xd3, 0x37, 0x56, 0x62, 0x12, 0x5c,
-       0x1a, 0x97, 0x72, 0x35, 0x22, 0xa1, 0x55, 0x19, 0x0a, 0xc8, 0x70, 0xec,
-       0x71, 0xf4, 0x28, 0x34, 0x83, 0x72, 0xa4, 0x69, 0x49, 0xd0, 0x0d, 0x03,
-       0xb6, 0x08, 0x7e, 0x0e, 0x7e, 0x51, 0xfc, 0x62, 0xf8, 0x9d, 0xc5, 0x3c,
-       0x43, 0x92, 0x6f, 0x72, 0x4e, 0xac, 0x5b, 0xc5, 0xfa, 0xd5, 0x84, 0x33,
-       0x8b, 0x79, 0x6f, 0x05, 0x62, 0xf2, 0xed, 0x83, 0x84, 0xcb, 0x21, 0x3c,
-       0x80, 0x2d, 0x6c, 0xe5, 0x56, 0xe4, 0x74, 0x3e, 0x2d, 0x71, 0xdb, 0xed,
-       0x95, 0xa2, 0x63, 0xc5, 0xe7, 0x47, 0x07, 0xa4, 0x74, 0x1c, 0xed, 0x55,
-       0xc9, 0xda, 0x98, 0xbf, 0xe8, 0xc8, 0xac, 0x6e, 0x63, 0xdd, 0x17, 0x41,
-       0x27, 0x09, 0x87, 0x08, 0xfb, 0x4e, 0xf5, 0x31, 0x3c, 0x73, 0xbe, 0x78,
-       0x50, 0xc3, 0xbd, 0x8a, 0x77, 0xd6, 0xff, 0x41, 0x44, 0xbf, 0xf3, 0x99,
-       0x7d, 0xfd, 0x75, 0xfd, 0xfd, 0x72, 0xfd, 0x51, 0xec, 0x99, 0x30, 0xf8,
-       0x7b, 0x96, 0x52, 0x08, 0xb0, 0x34, 0x56, 0x22, 0xd6, 0xda, 0xca, 0xb8,
-       0x9c, 0xab, 0x3e, 0x24, 0xb9, 0x74, 0xab, 0x35, 0x97, 0x96, 0xa8, 0x2d,
-       0xc3, 0x4e, 0x1e, 0x1d, 0xb6, 0x9b, 0x62, 0x35, 0x2a, 0x12, 0xee, 0x06,
-       0x5e, 0x5e, 0x5d, 0xe1, 0xdc, 0x41, 0xd4, 0x0d, 0xa2, 0x7f, 0x9f, 0xb5,
-       0xbe, 0x02, 0xf8, 0x3d, 0xe2, 0xa7, 0xd5, 0x5a, 0x4c, 0x0f, 0xc7, 0xe6,
-       0xb1, 0xe6, 0xd5, 0xe6, 0xf0, 0xe4, 0x6d, 0x71, 0x30, 0xe7, 0x00, 0xfa,
-       0x10, 0x57, 0x9c, 0x8b, 0x73, 0x72, 0xbe, 0x08, 0xc6, 0x46, 0xd1, 0x46,
-       0xb8, 0x5a, 0xad, 0x5c, 0xda, 0xe1, 0xbb, 0x6c, 0x01, 0x7f, 0x5b, 0xc4,
-       0x5f, 0xef, 0x90, 0x7c, 0xb7, 0xc9, 0x35, 0xda, 0xb0, 0x97, 0xba, 0xbc,
-       0xe7, 0xed, 0xed, 0x0a, 0xcf, 0x2d, 0x2c, 0xef, 0x0b, 0x26, 0x46, 0x4b,
-       0x8a, 0x4e, 0x66, 0xb1, 0x1f, 0x4b, 0xd1, 0x84, 0x85, 0xe7, 0x64, 0x93,
-       0xfd, 0x89, 0xeb, 0xb8, 0x2c, 0xe0, 0x5c, 0xcb, 0x2b, 0x25, 0xfb, 0x6a,
-       0xf3, 0x17, 0xad, 0x9c, 0xbb, 0x68, 0x6f, 0xaf, 0xb3, 0xff, 0x09, 0xf4,
-       0x0f, 0xca, 0x62, 0xa5, 0x4f, 0x08, 0x93, 0x1e, 0x77, 0x02, 0xe3, 0xc4,
-       0xb1, 0xbd, 0x73, 0xf6, 0xd5, 0xf5, 0xf3, 0xf6, 0x35, 0x75, 0x6e, 0x58,
-       0xab, 0x3d, 0x57, 0x27, 0xde, 0xc6, 0xfe, 0x3f, 0xc4, 0x5b, 0x0c, 0xf3,
-       0x47, 0x51, 0xee, 0xb3, 0x1a, 0xb5, 0x16, 0xd6, 0x8f, 0xe1, 0x79, 0x2f,
-       0x1c, 0xde, 0x52, 0x74, 0x77, 0x05, 0x74, 0xe7, 0x78, 0x31, 0x79, 0x66,
-       0x73, 0x08, 0xfb, 0x88, 0xca, 0xd7, 0xc1, 0x17, 0x03, 0x87, 0xf7, 0x49,
-       0x1e, 0x7c, 0x41, 0x7a, 0x7b, 0x74, 0xf5, 0x9f, 0x49, 0x31, 0x9a, 0x18,
-       0xa5, 0xfc, 0x48, 0x4e, 0x80, 0x9e, 0x0d, 0x6b, 0xe7, 0x96, 0xb2, 0x29,
-       0x5b, 0x1e, 0x16, 0xdb, 0xc3, 0xba, 0x99, 0x31, 0xa7, 0x20, 0x41, 0xb4,
-       0x65, 0x25, 0xe0, 0x45, 0x25, 0xb7, 0xfa, 0x5e, 0x0b, 0x74, 0x19, 0x5f,
-       0xc0, 0xa0, 0xc0, 0x92, 0x58, 0xb6, 0xdb, 0x25, 0xc5, 0xe3, 0xac, 0x0f,
-       0x83, 0xc6, 0xc1, 0xb3, 0x2b, 0x07, 0x00, 0x97, 0x0c, 0xdb, 0xc2, 0xba,
-       0x61, 0xa7, 0x2c, 0x25, 0xb1, 0x2f, 0xff, 0xa1, 0x65, 0x64, 0x9e, 0xc1,
-       0xef, 0xa8, 0x59, 0xab, 0xcd, 0x87, 0x96, 0xbd, 0x1a, 0xb1, 0x02, 0xab,
-       0xe3, 0x72, 0x76, 0x0f, 0xbc, 0x36, 0x80, 0x57, 0x7b, 0xc9, 0xe7, 0xd3,
-       0x20, 0xde, 0x07, 0xd1, 0xb7, 0xcf, 0x0a, 0xae, 0xde, 0x8d, 0xd3, 0xb5,
-       0xe6, 0x70, 0x7a, 0x1b, 0x38, 0xb5, 0x57, 0x07, 0xd0, 0xe7, 0x6e, 0x9c,
-       0x36, 0x80, 0x53, 0x7b, 0x55, 0xe3, 0xb3, 0x01, 0x7c, 0xda, 0x4b, 0x51,
-       0x94, 0xfb, 0x2c, 0x7b, 0x59, 0xe3, 0xb3, 0x61, 0x78, 0xfa, 0x62, 0x93,
-       0xb0, 0x66, 0x3b, 0x68, 0x2e, 0x4b, 0xda, 0x81, 0x9c, 0x2a, 0xc8, 0x5c,
-       0xc5, 0x06, 0xbe, 0x82, 0xe2, 0x4e, 0x58, 0x32, 0xa7, 0xda, 0x0a, 0x92,
-       0x02, 0x0d, 0x95, 0x9c, 0xb1, 0x51, 0x5b, 0x12, 0xf1, 0xac, 0x0d, 0x7c,
-       0x57, 0x81, 0xf7, 0x2a, 0x70, 0xae, 0x64, 0xc2, 0x8b, 0xe0, 0xd7, 0x38,
-       0xce, 0x65, 0x77, 0x7d, 0xc2, 0xa9, 0x2b, 0x9e, 0x8d, 0x9b, 0x33, 0x23,
-       0xed, 0xf3, 0x9c, 0x62, 0x38, 0x2f, 0x75, 0x7e, 0xd6, 0x5f, 0x66, 0xf6,
-       0x49, 0x6a, 0x39, 0xa0, 0xce, 0x2b, 0xbd, 0xfa, 0xae, 0xf6, 0x79, 0xd9,
-       0x13, 0x94, 0x65, 0x3c, 0x23, 0x91, 0xd4, 0x12, 0xcf, 0x29, 0x9b, 0x0a,
-       0x08, 0xcf, 0x2a, 0x24, 0xd9, 0x19, 0x9e, 0x4b, 0x54, 0x92, 0xab, 0x3c,
-       0xb3, 0x0d, 0x73, 0x5e, 0xfa, 0x9c, 0x92, 0x7b, 0x9c, 0x53, 0xd2, 0x9c,
-       0xd3, 0x76, 0xf3, 0x8a, 0x39, 0xa7, 0x7f, 0x2b, 0x86, 0xe6, 0xdf, 0x10,
-       0x07, 0x36, 0x70, 0x10, 0xbc, 0x03, 0x07, 0xdd, 0x6d, 0x1c, 0xc4, 0x6d,
-       0xec, 0xe1, 0xae, 0xfd, 0x77, 0xd6, 0x75, 0xee, 0x5d, 0x4a, 0x41, 0x4f,
-       0xac, 0x85, 0x0a, 0xe1, 0x0e, 0x48, 0x71, 0x86, 0x30, 0x52, 0xae, 0x6b,
-       0x58, 0xf3, 0x2b, 0x94, 0x6d, 0x07, 0x04, 0x34, 0xf1, 0xb6, 0x80, 0x1a,
-       0x53, 0x92, 0x85, 0x26, 0xdb, 0x4a, 0x92, 0xcb, 0x80, 0x5e, 0x6b, 0xac,
-       0x03, 0x83, 0x6e, 0x6a, 0x3e, 0xde, 0xd1, 0x07, 0xd1, 0x36, 0x1e, 0xf3,
-       0x95, 0x38, 0xe4, 0x74, 0x10, 0xe5, 0xd7, 0x50, 0xee, 0xb3, 0x66, 0x6a,
-       0x7f, 0x65, 0x49, 0x5f, 0x4b, 0x9c, 0x09, 0xee, 0x31, 0x36, 0x9d, 0x73,
-       0x4b, 0x31, 0x47, 0xde, 0x26, 0xce, 0x3b, 0x43, 0x22, 0x83, 0x09, 0xa7,
-       0x28, 0xff, 0x05, 0xed, 0x89, 0x58, 0x56, 0xfe, 0xb7, 0x4f, 0xbb, 0xc0,
-       0x43, 0xcf, 0xeb, 0x59, 0xf5, 0xc4, 0x7a, 0x8e, 0xcb, 0xa0, 0x2e, 0x24,
-       0xb3, 0xd0, 0x31, 0x05, 0x97, 0xeb, 0x71, 0xfe, 0xf8, 0x2c, 0xd7, 0xcd,
-       0x37, 0x7d, 0x7d, 0x20, 0xd9, 0x80, 0xc7, 0x36, 0xf2, 0xe5, 0xa4, 0x95,
-       0x6f, 0x12, 0x57, 0x19, 0x71, 0x9b, 0x1a, 0x66, 0x0d, 0x6b, 0x1b, 0x4e,
-       0xf0, 0x6b, 0x16, 0x34, 0x49, 0xd8, 0xe2, 0xe0, 0x9b, 0x73, 0x01, 0xff,
-       0x1c, 0x82, 0xde, 0xa4, 0x2c, 0x42, 0x3f, 0x96, 0x2b, 0x9c, 0xef, 0x33,
-       0x56, 0xe0, 0xb2, 0x3f, 0x3f, 0xcf, 0x86, 0x73, 0xeb, 0xf9, 0xca, 0xcd,
-       0xd7, 0x0c, 0xef, 0x2b, 0x3d, 0x88, 0xf9, 0x4a, 0x1d, 0xf3, 0x95, 0xc8,
-       0xb3, 0x07, 0x94, 0xae, 0x39, 0x4e, 0xfc, 0x9d, 0x47, 0xdb, 0x2d, 0xd0,
-       0x08, 0xf9, 0x81, 0xfc, 0x41, 0x5e, 0x7d, 0xb7, 0x8d, 0xfd, 0x76, 0xe0,
-       0x76, 0x06, 0x72, 0x98, 0xbc, 0x11, 0x96, 0x7c, 0x94, 0xf5, 0x8f, 0x1b,
-       0x98, 0x20, 0x13, 0xd4, 0xfb, 0xf1, 0x1e, 0x5f, 0x3e, 0x82, 0x16, 0x01,
-       0xdb, 0xf3, 0x6a, 0x8f, 0xb6, 0xe7, 0x01, 0x37, 0x9d, 0x30, 0x72, 0xdf,
-       0x9e, 0x91, 0xdb, 0x3e, 0xbc, 0x3c, 0x2b, 0xca, 0x55, 0xb1, 0xd6, 0x33,
-       0x61, 0xc8, 0x70, 0x5b, 0xf2, 0x69, 0xd0, 0x66, 0x3a, 0x60, 0xe4, 0xc3,
-       0x8b, 0xc6, 0x56, 0xd2, 0x38, 0x0e, 0x2a, 0x3d, 0xbe, 0x88, 0x79, 0x4f,
-       0x00, 0x46, 0xce, 0x19, 0xb4, 0xd6, 0x2a, 0x11, 0xe8, 0x6c, 0xc0, 0xe6,
-       0x24, 0xe2, 0x80, 0x09, 0xef, 0x7e, 0x9f, 0x88, 0x2c, 0x6c, 0xfa, 0xeb,
-       0x2e, 0xb6, 0xf5, 0x45, 0x49, 0xe1, 0xdb, 0x99, 0x0d, 0xec, 0xd0, 0xc6,
-       0xcc, 0xc9, 0xca, 0x99, 0x96, 0xed, 0x92, 0x06, 0xdd, 0xd1, 0x86, 0x44,
-       0x26, 0x37, 0x32, 0xef, 0x06, 0xbf, 0xa1, 0x1e, 0x63, 0xca, 0xcd, 0x52,
-       0xc4, 0x76, 0x5d, 0x94, 0x94, 0x3f, 0x27, 0xba, 0x6f, 0xb8, 0x3e, 0xbd,
-       0x0c, 0x49, 0xc8, 0x6d, 0xb5, 0x36, 0x70, 0x26, 0x47, 0x9b, 0xbf, 0x6c,
-       0x7d, 0x35, 0xa8, 0xed, 0x15, 0xdb, 0xfb, 0xa9, 0xa5, 0xd7, 0x8c, 0x4f,
-       0x27, 0x15, 0x1e, 0x62, 0x5d, 0xfa, 0xdd, 0x35, 0xef, 0xd7, 0x22, 0x46,
-       0x87, 0x99, 0xf7, 0xf9, 0xa0, 0xb6, 0x7f, 0xc2, 0x3d, 0xe4, 0xa3, 0xa0,
-       0xe7, 0xf4, 0xe0, 0x9c, 0xc3, 0x21, 0x6f, 0x6a, 0x7c, 0x43, 0xf5, 0x2b,
-       0x99, 0x7e, 0xd1, 0x6e, 0x3d, 0xee, 0xd4, 0xf4, 0x88, 0xa2, 0xa1, 0x4f,
-       0x4f, 0x0f, 0xab, 0xf2, 0xb3, 0xd3, 0x29, 0x55, 0x2e, 0x4e, 0xbb, 0xaa,
-       0x3c, 0xaf, 0xfa, 0x5b, 0xde, 0x90, 0xa9, 0x1f, 0x9d, 0x8e, 0xab, 0x72,
-       0xdc, 0x94, 0x69, 0x53, 0x66, 0x4c, 0x39, 0x69, 0x4a, 0xcf, 0x94, 0x59,
-       0x53, 0x16, 0xcc, 0x7c, 0x53, 0xe6, 0xfd, 0x98, 0x29, 0x67, 0x4c, 0x79,
-       0xdc, 0x94, 0x1f, 0x31, 0xe5, 0x09, 0x03, 0xd7, 0xbc, 0x29, 0x3f, 0x6e,
-       0xea, 0x4f, 0x1b, 0x38, 0x3f, 0x03, 0x78, 0x1e, 0x09, 0xed, 0xd0, 0xca,
-       0x69, 0x4d, 0x5f, 0x15, 0x47, 0xca, 0x9b, 0xdc, 0x7f, 0x1c, 0x32, 0x25,
-       0x88, 0xb3, 0x04, 0xbf, 0x3b, 0xa4, 0x09, 0x17, 0x72, 0x38, 0x88, 0x33,
-       0xe4, 0xf3, 0x69, 0xf9, 0x53, 0xf4, 0x1d, 0xbd, 0xe0, 0xc8, 0x62, 0x95,
-       0xfa, 0xf5, 0x5b, 0xf2, 0x6a, 0x85, 0xe7, 0xf1, 0xbc, 0xdc, 0xa8, 0xa4,
-       0xe2, 0x41, 0x8b, 0x74, 0x94, 0x98, 0x7c, 0x45, 0x12, 0x90, 0xfd, 0x63,
-       0x71, 0x96, 0xd7, 0xa8, 0x54, 0xd0, 0xef, 0xa0, 0x5a, 0xfb, 0x79, 0x01,
-       0x4c, 0x72, 0xa5, 0xd2, 0x0d, 0x99, 0xf5, 0x4a, 0x8b, 0x7a, 0xfd, 0xfc,
-       0xa6, 0xc8, 0xc8, 0x05, 0xe2, 0xf9, 0x5b, 0xb2, 0x51, 0x21, 0xde, 0x9f,
-       0x87, 0xad, 0x90, 0x4a, 0xbf, 0x28, 0x89, 0xd1, 0x8b, 0xc2, 0xf9, 0xc6,
-       0xd2, 0x28, 0xe3, 0x65, 0xfc, 0xce, 0x41, 0xde, 0x76, 0x4f, 0xe8, 0xf9,
-       0x86, 0xcd, 0x7c, 0x2e, 0xec, 0xc2, 0x5b, 0x0e, 0x65, 0xe0, 0x7f, 0xb5,
-       0xf4, 0x9e, 0xb4, 0x3c, 0xcc, 0x3a, 0x41, 0x96, 0xb6, 0xcf, 0x23, 0xf6,
-       0xc4, 0xf5, 0x16, 0xe4, 0x31, 0xf9, 0xdf, 0xd4, 0x6d, 0x1b, 0xfe, 0x92,
-       0x9a, 0xed, 0x81, 0x3e, 0x33, 0xc3, 0x58, 0x83, 0xef, 0x71, 0xd8, 0x9a,
-       0x52, 0x22, 0x1e, 0x8a, 0x95, 0x5f, 0xb5, 0xb2, 0x41, 0x6d, 0x9f, 0x6a,
-       0x19, 0xc1, 0x76, 0x4b, 0xf2, 0xe8, 0xbb, 0x60, 0x64, 0x66, 0xa1, 0x79,
-       0x4b, 0xc9, 0x8d, 0xaf, 0x2b, 0x1a, 0x4e, 0x9c, 0x2f, 0x09, 0x75, 0x86,
-       0x1d, 0xa0, 0x4c, 0xbb, 0x92, 0xae, 0xb7, 0x16, 0xaa, 0x94, 0xc1, 0xc3,
-       0x52, 0xac, 0x0d, 0x97, 0x6c, 0x94, 0xa7, 0xeb, 0x31, 0x39, 0x5d, 0xe1,
-       0x3c, 0xfb, 0xd1, 0xc7, 0x45, 0x1d, 0x18, 0x6b, 0x90, 0xf2, 0x98, 0x6b,
-       0xbe, 0x6e, 0xe9, 0x35, 0xb1, 0x07, 0x77, 0xcb, 0xfa, 0x44, 0xf3, 0x9a,
-       0x55, 0xac, 0xd3, 0x4e, 0x42, 0x7d, 0xb3, 0x53, 0x66, 0xfb, 0xf2, 0xfa,
-       0x79, 0xac, 0x5d, 0xc0, 0x7a, 0x59, 0x25, 0xb3, 0xba, 0x21, 0xf7, 0x7e,
-       0x52, 0xf9, 0x72, 0xab, 0x5c, 0x1d, 0x95, 0x8b, 0x9b, 0x71, 0x39, 0x52,
-       0x19, 0x97, 0x8d, 0x4d, 0x4f, 0x0a, 0x95, 0xb4, 0xac, 0xa3, 0x4f, 0xbe,
-       0x92, 0x91, 0xb5, 0xcd, 0x63, 0xea, 0xac, 0x2f, 0x42, 0x2e, 0x6d, 0xa0,
-       0x4f, 0x63, 0x73, 0x12, 0x3f, 0xdf, 0x1e, 0x88, 0xa1, 0xdf, 0x10, 0xfa,
-       0x88, 0xf5, 0xb3, 0xca, 0x3d, 0xc0, 0x21, 0xe6, 0xae, 0xfa, 0xb6, 0xc1,
-       0xb8, 0x2c, 0x54, 0x79, 0x4e, 0x2f, 0x4c, 0x6f, 0xac, 0xc4, 0xb2, 0xd4,
-       0x77, 0xa7, 0x9b, 0xc3, 0xe0, 0x53, 0xe8, 0xef, 0x2a, 0x65, 0x42, 0x50,
-       0x8a, 0x90, 0xb5, 0x0d, 0xc0, 0x46, 0x58, 0x1b, 0xb0, 0xdf, 0x8b, 0xcd,
-       0x21, 0x94, 0x0e, 0x4a, 0xac, 0x03, 0xd8, 0x8b, 0x4d, 0x17, 0x65, 0x0c,
-       0xa5, 0xd6, 0xed, 0x27, 0x9b, 0x9c, 0x3f, 0xab, 0x74, 0x90, 0xc6, 0xf1,
-       0xd4, 0x1d, 0xb6, 0x7a, 0xc0, 0x5b, 0xb4, 0x8a, 0x2b, 0x62, 0xe7, 0xd2,
-       0x21, 0xfa, 0x0b, 0x90, 0x2b, 0x37, 0x0f, 0x68, 0x58, 0x3e, 0x1b, 0xa0,
-       0xdc, 0x09, 0xba, 0xe7, 0x81, 0xaf, 0x5e, 0xc9, 0x06, 0x69, 0x73, 0xf1,
-       0x59, 0x5a, 0x01, 0xcf, 0xa5, 0xad, 0x12, 0x0c, 0x50, 0x5f, 0x45, 0xd9,
-       0xa7, 0xde, 0xa2, 0x5c, 0xca, 0xd5, 0xb4, 0x6d, 0x5e, 0x6a, 0xdb, 0xe6,
-       0xeb, 0xa8, 0xb7, 0x20, 0x3b, 0xe0, 0x9b, 0xd4, 0x79, 0x1e, 0x03, 0x98,
-       0x33, 0x6b, 0x15, 0x2a, 0xfe, 0x79, 0xd6, 0x5b, 0x4f, 0x54, 0x69, 0xaf,
-       0xd1, 0x6e, 0x53, 0xf2, 0x49, 0x92, 0xcb, 0x71, 0x23, 0x83, 0x23, 0x8a,
-       0x37, 0x88, 0x83, 0xe4, 0x72, 0xda, 0xd4, 0x75, 0x77, 0xd4, 0xf9, 0xb2,
-       0xfa, 0x73, 0x80, 0x61, 0x48, 0x9d, 0xad, 0xed, 0x4d, 0x59, 0x39, 0x65,
-       0x2b, 0xb6, 0x5a, 0x79, 0x37, 0x24, 0xc5, 0xf1, 0x3f, 0xc2, 0x9e, 0xd8,
-       0x56, 0x72, 0x40, 0x5a, 0xe0, 0xbb, 0xca, 0x07, 0xe6, 0xdc, 0x84, 0xb2,
-       0xb3, 0x72, 0x15, 0xf8, 0x38, 0x5a, 0xd5, 0x95, 0xfa, 0xa1, 0x87, 0xdc,
-       0x25, 0xd2, 0x53, 0xbd, 0xb5, 0x0c, 0x9c, 0xce, 0x2c, 0x15, 0xac, 0xe4,
-       0x12, 0xe8, 0x63, 0x10, 0xb6, 0x87, 0x1b, 0x91, 0xdc, 0x65, 0xd2, 0x11,
-       0xfb, 0xb0, 0xbe, 0x4b, 0x66, 0xa2, 0xbb, 0x6d, 0x9b, 0x87, 0x0e, 0x68,
-       0x9d, 0x8f, 0xbe, 0x4b, 0x70, 0xe6, 0x7a, 0xb5, 0x9f, 0x92, 0x5c, 0xa5,
-       0x9c, 0x2d, 0x40, 0xd7, 0x53, 0xe7, 0xf4, 0xc0, 0x9e, 0x61, 0x3d, 0xe7,
-       0x44, 0xdb, 0xc5, 0xac, 0x05, 0xfd, 0x66, 0x97, 0x95, 0x8d, 0x3e, 0x89,
-       0xf2, 0xde, 0x20, 0x6d, 0x5b, 0xea, 0x90, 0xe4, 0xaa, 0x3f, 0x47, 0x27,
-       0x3e, 0xf6, 0x29, 0x9d, 0x34, 0xe0, 0x0d, 0xa8, 0x79, 0x61, 0x97, 0x58,
-       0x73, 0x6a, 0xde, 0x58, 0xc7, 0xbc, 0x68, 0xbb, 0xf8, 0xb7, 0x01, 0x3d,
-       0x0f, 0xf0, 0xac, 0xf6, 0xc4, 0x36, 0x8e, 0x29, 0x58, 0x79, 0xd8, 0x4e,
-       0x33, 0x69, 0x5b, 0x02, 0x83, 0x7e, 0x5f, 0xbd, 0xaf, 0x02, 0xf6, 0x95,
-       0xc3, 0xbe, 0xec, 0xc1, 0xdd, 0xfb, 0x2a, 0x05, 0xf4, 0xbe, 0x06, 0x3a,
-       0x60, 0x8a, 0xee, 0x5a, 0xbf, 0x73, 0x5f, 0x68, 0xbb, 0xb8, 0x7b, 0x8e,
-       0xc7, 0x06, 0xf4, 0x1c, 0xd1, 0x8e, 0x39, 0x06, 0x77, 0xcd, 0x01, 0x7a,
-       0x8e, 0x72, 0xfc, 0xe0, 0x1e, 0xe3, 0x5f, 0xef, 0xd5, 0xe3, 0x39, 0xa6,
-       0x0b, 0x7a, 0x58, 0x9d, 0x75, 0x58, 0xc9, 0xd4, 0xb6, 0xad, 0x76, 0x1a,
-       0x3a, 0xaf, 0x73, 0xcc, 0x9d, 0x76, 0xa6, 0xad, 0xec, 0xcc, 0x3b, 0xe8,
-       0xcc, 0x7a, 0x14, 0x3e, 0x73, 0x6a, 0x19, 0xbe, 0x73, 0xe5, 0xed, 0x58,
-       0xf7, 0xcf, 0xe0, 0x87, 0x42, 0x16, 0x8d, 0xd2, 0x2f, 0x98, 0x14, 0xe5,
-       0x97, 0x8e, 0xc2, 0xff, 0x75, 0xf6, 0x29, 0x5b, 0xb4, 0x38, 0x3a, 0xee,
-       0xfb, 0x0b, 0xd6, 0x2c, 0xe4, 0x46, 0x71, 0x14, 0x36, 0x7d, 0x14, 0xf8,
-       0x72, 0x47, 0x30, 0x8e, 0xf0, 0xbc, 0x3b, 0x44, 0x9f, 0xf5, 0x99, 0xea,
-       0x2c, 0xde, 0xf7, 0xa1, 0xfd, 0xe7, 0x06, 0xce, 0x3e, 0xf4, 0xf9, 0x57,
-       0xa8, 0x63, 0x1b, 0xfb, 0x70, 0x8a, 0x1f, 0xe0, 0xfd, 0x41, 0xf4, 0x01,
-       0x4f, 0x81, 0x53, 0x6c, 0xf7, 0x30, 0x7e, 0x2f, 0xa3, 0xee, 0xdd, 0xa8,
-       0xbb, 0x8e, 0xba, 0x43, 0x78, 0xff, 0xe1, 0xae, 0x79, 0xdf, 0x81, 0xf7,
-       0xcf, 0xa1, 0x1d, 0xfb, 0x77, 0x5e, 0x44, 0xfb, 0x83, 0xf8, 0xfd, 0xc5,
-       0xae, 0x3e, 0x8d, 0x5d, 0xef, 0xbe, 0xbc, 0x79, 0xc9, 0xf0, 0xc0, 0x8e,
-       0x6f, 0x07, 0xfe, 0xb1, 0xa8, 0x8f, 0x0a, 0x15, 0xca, 0x9b, 0xb0, 0x3c,
-       0xb2, 0xe2, 0xcb, 0x1c, 0x91, 0x79, 0xc8, 0xfa, 0x42, 0x45, 0xbc, 0x6e,
-       0x19, 0x9e, 0xfc, 0x31, 0x64, 0xfa, 0x3c, 0xf0, 0x5a, 0x80, 0x7d, 0x71,
-       0x74, 0x25, 0x8c, 0xe7, 0x21, 0xc8, 0x3b, 0xc9, 0x74, 0x09, 0x79, 0x3e,
-       0x02, 0xd9, 0xd2, 0x0b, 0x9e, 0x57, 0x3e, 0x88, 0x3c, 0x0e, 0xb9, 0x34,
-       0x8b, 0xbe, 0xb3, 0xe8, 0xf3, 0xd1, 0xe6, 0xff, 0x31, 0xb4, 0xec, 0xc3,
-       0xf0, 0xec, 0x2e, 0x18, 0xc2, 0xe2, 0xae, 0x92, 0x1f, 0x5f, 0x98, 0x9e,
-       0x5b, 0x89, 0xc8, 0xf0, 0xaa, 0x9d, 0xa4, 0xb3, 0x3f, 0xb2, 0xca, 0x98,
-       0x84, 0x8c, 0x04, 0x85, 0xb2, 0x5f, 0xc6, 0x43, 0xb0, 0xd1, 0x02, 0xde,
-       0x30, 0x74, 0x94, 0x7a, 0x97, 0x2c, 0x60, 0xcb, 0x36, 0x77, 0x62, 0x13,
-       0x47, 0xda, 0xb1, 0x89, 0x21, 0xe8, 0x88, 0xd7, 0x83, 0x5a, 0x5e, 0x45,
-       0x40, 0x27, 0x6f, 0x01, 0xfe, 0x29, 0x5b, 0x42, 0xe0, 0x1f, 0x07, 0xbc,
-       0xf3, 0x26, 0xda, 0x6f, 0xd4, 0x5b, 0xa0, 0x77, 0xc8, 0x38, 0x9b, 0xf5,
-       0x2c, 0xd1, 0x96, 0x21, 0x0f, 0xe0, 0xbd, 0xd1, 0xc9, 0x6b, 0xe7, 0xb4,
-       0x8d, 0x75, 0x97, 0x6f, 0xf3, 0xa0, 0xa3, 0x69, 0x91, 0xf6, 0xfa, 0xe1,
-       0xd0, 0x9d, 0x7b, 0xfc, 0xa3, 0x5d, 0x7b, 0x0c, 0x4a, 0x72, 0x89, 0xf8,
-       0x8d, 0xa8, 0xbd, 0xfa, 0xf8, 0x2d, 0x2a, 0x5b, 0x7e, 0x1c, 0x3e, 0x89,
-       0x40, 0x9a, 0x2b, 0x5b, 0x14, 0x3a, 0xb1, 0x0f, 0xb2, 0x9e, 0x72, 0x9e,
-       0xf8, 0x0e, 0x03, 0x87, 0x11, 0xfc, 0x1c, 0xfc, 0x76, 0x70, 0x7a, 0xb2,
-       0xbd, 0x3f, 0x7f, 0x0f, 0xeb, 0x90, 0x55, 0x2c, 0x09, 0x3f, 0xf0, 0x71,
-       0x91, 0xcf, 0x90, 0xaf, 0x7d, 0x94, 0xb7, 0x3e, 0x4c, 0x8f, 0xed, 0x82,
-       0x89, 0xb8, 0x21, 0x4c, 0xf5, 0x16, 0x6c, 0x8b, 0x28, 0xa3, 0x60, 0xa7,
-       0x9b, 0xd4, 0x29, 0x5c, 0x73, 0x92, 0xf6, 0xb6, 0x81, 0x93, 0x7a, 0xc5,
-       0x93, 0x73, 0x95, 0xb7, 0x1b, 0xb8, 0x78, 0xbe, 0xb0, 0xf9, 0x96, 0xb8,
-       0x7e, 0x54, 0xe9, 0x1e, 0x0d, 0xd3, 0x6e, 0xfc, 0xd0, 0x3f, 0x27, 0x7e,
-       0xa8, 0x0f, 0x88, 0x4b, 0xda, 0xd4, 0xc4, 0xe7, 0xef, 0x00, 0x9f, 0xec,
-       0xeb, 0x1a, 0xdd, 0xf2, 0x2e, 0x03, 0xd7, 0xdd, 0xfa, 0xf8, 0xf4, 0x1d,
-       0xfa, 0xd8, 0xc7, 0xf1, 0x5e, 0x67, 0xf1, 0xfb, 0x7d, 0xbe, 0xcc, 0x1d,
-       0x5e, 0xdd, 0xab, 0x7d, 0xd9, 0xb4, 0xb3, 0xad, 0xb3, 0xfe, 0xdb, 0x7d,
-       0xfe, 0x19, 0x0e, 0x2f, 0xef, 0x6e, 0xeb, 0x3b, 0xb0, 0x33, 0x66, 0xf7,
-       0x7c, 0x3f, 0xee, 0xdb, 0xdb, 0xaf, 0xdd, 0xf1, 0xeb, 0xe0, 0xab, 0xd8,
-       0x3b, 0x7b, 0xc9, 0xda, 0xf3, 0xcd, 0x82, 0xad, 0xf7, 0xc2, 0x3e, 0x68,
-       0x6b, 0x6e, 0xf5, 0x07, 0x95, 0x6e, 0xcc, 0xda, 0xf4, 0x63, 0x4a, 0x6b,
-       0x7c, 0xbe, 0x07, 0x65, 0xe7, 0xd8, 0x21, 0xf0, 0x40, 0x16, 0x7d, 0x39,
-       0xc7, 0xee, 0xf1, 0xbe, 0x8d, 0x94, 0x96, 0x85, 0x5a, 0x08, 0xed, 0x89,
-       0x6c, 0x49, 0x1e, 0x86, 0xaf, 0x98, 0x98, 0xa2, 0xdf, 0x00, 0x7f, 0x79,
-       0x46, 0xe4, 0x98, 0x94, 0x6b, 0x1f, 0x94, 0x85, 0x95, 0x96, 0xbc, 0x1f,
-       0x7a, 0xf0, 0xf7, 0xa0, 0x47, 0xe5, 0x12, 0x84, 0xd7, 0x25, 0x1c, 0xc6,
-       0xa5, 0xa8, 0xd8, 0x4f, 0xc1, 0x96, 0xbf, 0x10, 0x93, 0xe0, 0x05, 0xd2,
-       0x5e, 0xca, 0x79, 0xbf, 0x48, 0xbf, 0x2d, 0x57, 0xe1, 0x08, 0x25, 0x26,
-       0xb3, 0x92, 0x82, 0xfd, 0x37, 0xe6, 0x34, 0x50, 0x96, 0x25, 0x35, 0xfa,
-       0xb4, 0xa0, 0xef, 0x25, 0xf4, 0xc5, 0xb8, 0x9e, 0x8d, 0x38, 0x7e, 0x83,
-       0xd2, 0xbb, 0x41, 0x18, 0x92, 0xa6, 0x24, 0x2c, 0x3f, 0x6c, 0xd1, 0xd7,
-       0x7d, 0x66, 0x33, 0x0c, 0xdd, 0x14, 0x97, 0xe7, 0x20, 0x67, 0x9f, 0x55,
-       0xf1, 0x17, 0xb7, 0xed, 0x8f, 0x3e, 0x7a, 0x18, 0x74, 0xb7, 0x2c, 0xe1,
-       0xa8, 0xf7, 0x73, 0x59, 0x59, 0x6e, 0xc1, 0xef, 0xa1, 0xac, 0x7f, 0x00,
-       0xf2, 0x2a, 0xf1, 0xa5, 0x12, 0x6d, 0x49, 0x37, 0x03, 0xd8, 0x4b, 0x32,
-       0x73, 0xf8, 0x5d, 0x03, 0x9a, 0x3e, 0x8e, 0x49, 0x70, 0xb9, 0x00, 0xfb,
-       0xf9, 0x8c, 0x2c, 0xa6, 0xe1, 0x9f, 0xda, 0xa5, 0x56, 0xc0, 0x75, 0x63,
-       0xd0, 0xdb, 0xd0, 0xa7, 0x2b, 0xf4, 0x87, 0xe5, 0xc8, 0x32, 0xfb, 0x9c,
-       0x01, 0x6d, 0x75, 0x01, 0x77, 0xdd, 0x72, 0x36, 0x9a, 0x28, 0xe5, 0xc1,
-       0x4f, 0xb6, 0xdb, 0x0f, 0x5e, 0x66, 0x49, 0xfd, 0xf6, 0x34, 0xe8, 0x87,
-       0xcf, 0x38, 0xce, 0x55, 0xd6, 0x27, 0x51, 0xb2, 0xde, 0x15, 0x7b, 0x29,
-       0x8c, 0xb9, 0xa0, 0x93, 0x2e, 0x97, 0xe4, 0x6c, 0xe6, 0x98, 0x34, 0x6a,
-       0xf0, 0xc9, 0x33, 0xb0, 0xa3, 0xea, 0x9e, 0x34, 0x2a, 0xb4, 0x9f, 0x4e,
-       0x81, 0x1f, 0x5e, 0x41, 0x39, 0x8f, 0xf2, 0x16, 0xca, 0x8f, 0xa3, 0x7c,
-       0x0d, 0x25, 0x61, 0x3f, 0x25, 0x8d, 0xfa, 0x55, 0xcc, 0xcd, 0x39, 0xa6,
-       0x0c, 0xcc, 0xf0, 0x21, 0x0f, 0x9f, 0x82, 0x9d, 0xe3, 0xd7, 0x9f, 0x12,
-       0x69, 0x7c, 0x0c, 0xbf, 0x96, 0x7a, 0xa7, 0x8f, 0xb9, 0x90, 0x99, 0x84,
-       0xbd, 0x2b, 0xd6, 0xd9, 0xcc, 0xc7, 0xcd, 0x3c, 0x1f, 0xc3, 0x7a, 0xd7,
-       0xb1, 0x76, 0x18, 0xe7, 0xd9, 0x92, 0x47, 0xd3, 0x67, 0xe4, 0x93, 0xe9,
-       0x7b, 0x65, 0x62, 0x20, 0x5c, 0x0a, 0x7b, 0xdc, 0x3f, 0xed, 0xda, 0xbd,
-       0xf6, 0xef, 0xef, 0x9b, 0x7b, 0x8e, 0x60, 0x2f, 0xfb, 0xb5, 0xed, 0x66,
-       0xff, 0x13, 0xe3, 0x73, 0x58, 0x92, 0x1c, 0xe1, 0x7c, 0x9e, 0x04, 0x96,
-       0x47, 0x9c, 0x8c, 0x3d, 0x06, 0xeb, 0x3d, 0x85, 0xdf, 0x19, 0xd0, 0x8a,
-       0x7b, 0x3e, 0x69, 0xff, 0x47, 0xc0, 0x84, 0xb6, 0x06, 0xd7, 0x11, 0x2b,
-       0x78, 0xe8, 0x26, 0xf6, 0x56, 0x92, 0xee, 0x43, 0x9e, 0xdc, 0x6e, 0xf2,
-       0x19, 0x92, 0xf2, 0xd2, 0x31, 0xf9, 0x71, 0xed, 0xba, 0x9c, 0xab, 0x1d,
-       0x93, 0x97, 0x51, 0x2e, 0xd6, 0x4a, 0xc0, 0x23, 0x7d, 0x46, 0xce, 0xd1,
-       0xc2, 0xb9, 0x50, 0x2e, 0xdf, 0x1f, 0x9b, 0xc7, 0xf9, 0xcd, 0x3a, 0x2d,
-       0xd9, 0x48, 0x97, 0x64, 0x63, 0x12, 0x63, 0xea, 0x3d, 0x12, 0xfa, 0x2a,
-       0xf7, 0xdb, 0x27, 0xf9, 0x5a, 0x49, 0x0a, 0x19, 0xfa, 0x34, 0xbd, 0x92,
-       0x87, 0x4d, 0x0e, 0x3b, 0xe8, 0x8c, 0x8e, 0xb3, 0xb9, 0xb1, 0x22, 0x6c,
-       0xf8, 0x85, 0xe6, 0xeb, 0x56, 0xa3, 0x6d, 0xff, 0x6f, 0x59, 0xcf, 0xc2,
-       0x76, 0xfd, 0x0e, 0xe4, 0xc6, 0x73, 0xb0, 0x09, 0x9f, 0xbd, 0x83, 0xc7,
-       0x48, 0x23, 0xd7, 0xac, 0x46, 0x7d, 0x94, 0x7c, 0x66, 0xf8, 0x01, 0x63,
-       0xe1, 0xe7, 0x34, 0x6a, 0xb7, 0x0c, 0xfd, 0x29, 0x5b, 0x00, 0xe7, 0x42,
-       0xbd, 0xf2, 0x77, 0xf0, 0xaf, 0x28, 0x77, 0x7c, 0xbd, 0xaf, 0xfd, 0x86,
-       0x3a, 0x60, 0xcd, 0x47, 0x13, 0x80, 0x4a, 0xa4, 0x5e, 0x2f, 0x28, 0x5c,
-       0xb9, 0xcb, 0x43, 0x52, 0xab, 0x12, 0xbf, 0x09, 0xc7, 0xb6, 0x95, 0x5d,
-       0x0b, 0xbc, 0xba, 0x38, 0x1f, 0xbf, 0x3d, 0x01, 0xff, 0xe1, 0x8c, 0x38,
-       0x13, 0xbd, 0xd8, 0x13, 0x9f, 0x45, 0x66, 0x2e, 0xff, 0x3a, 0x19, 0xd0,
-       0x05, 0xbf, 0x3e, 0x84, 0xb3, 0x8c, 0xc8, 0x59, 0xd8, 0xff, 0xe7, 0x40,
-       0x47, 0x9f, 0xaf, 0x0c, 0xc9, 0xf9, 0x4a, 0x1c, 0xfe, 0x16, 0xed, 0x94,
-       0xe5, 0xe9, 0xe4, 0x3a, 0xcb, 0x27, 0xa6, 0x53, 0x75, 0x96, 0x5f, 0x32,
-       0xfe, 0xe2, 0x97, 0x8d, 0x1f, 0xb9, 0x3e, 0xad, 0x7d, 0xb8, 0xaf, 0x4d,
-       0x8f, 0xaa, 0xb2, 0x39, 0xbd, 0x13, 0x3b, 0x09, 0x1b, 0xbd, 0x9d, 0xa1,
-       0x7e, 0x06, 0x8c, 0x12, 0x3c, 0x09, 0x7a, 0x9a, 0x87, 0xdc, 0xce, 0xc1,
-       0xf7, 0x38, 0x0b, 0x1f, 0xa4, 0xd8, 0x84, 0x4c, 0xf0, 0xd2, 0x28, 0xc5,
-       0xfc, 0xf9, 0x63, 0xbb, 0x18, 0xdf, 0xe4, 0x99, 0x19, 0xff, 0x2b, 0x4d,
-       0xff, 0xab, 0xf3, 0x8f, 0xf3, 0x81, 0x36, 0xa9, 0x2b, 0x7f, 0x09, 0x9f,
-       0x51, 0x82, 0xc5, 0x0c, 0xc7, 0xa6, 0xe9, 0xaf, 0xca, 0x36, 0xec, 0x83,
-       0xb0, 0xf7, 0x3d, 0x09, 0x3f, 0xd5, 0x6a, 0xbd, 0x0a, 0x59, 0x53, 0x82,
-       0xcf, 0x68, 0x5b, 0xa8, 0x5f, 0x67, 0x1b, 0xe5, 0xc8, 0x98, 0x73, 0x1b,
-       0x34, 0x97, 0x3d, 0x2e, 0xf2, 0x5d, 0xd4, 0x35, 0x56, 0x78, 0x06, 0xdf,
-       0xc7, 0x19, 0x98, 0x33, 0x51, 0x75, 0xec, 0x07, 0xfb, 0x3d, 0xca, 0x7d,
-       0x8c, 0x39, 0xdd, 0x18, 0x5f, 0x5f, 0xe7, 0x98, 0xc4, 0x24, 0xaf, 0x74,
-       0xbe, 0xbb, 0xae, 0xf7, 0x77, 0x34, 0x33, 0x2a, 0x57, 0x2b, 0x6a, 0x0e,
-       0xd0, 0xfa, 0xaf, 0x30, 0x66, 0x0b, 0x74, 0xcb, 0x18, 0x95, 0x27, 0x65,
-       0xe8, 0xa4, 0x72, 0x25, 0x05, 0xda, 0x09, 0xca, 0x6c, 0x8c, 0x60, 0xbb,
-       0xb2, 0x5d, 0xf9, 0x72, 0x97, 0x8e, 0x8f, 0xf0, 0x19, 0x3a, 0xac, 0x39,
-       0x23, 0xbc, 0x1b, 0x81, 0x7d, 0x83, 0x3d, 0x75, 0xe2, 0x42, 0xff, 0x15,
-       0x71, 0x16, 0x66, 0x8f, 0xea, 0x4f, 0xaf, 0x83, 0xf1, 0x66, 0x9d, 0x02,
-       0x14, 0x77, 0x1e, 0xeb, 0xa7, 0x2e, 0x05, 0x83, 0x8c, 0xa9, 0x27, 0x2f,
-       0x81, 0xad, 0x3c, 0x83, 0x8b, 0xa6, 0x4f, 0x6b, 0xbe, 0x2f, 0x4a, 0xda,
-       0x22, 0x0e, 0x12, 0xa5, 0x2d, 0x20, 0x7b, 0xc0, 0xbb, 0x21, 0x1f, 0x5a,
-       0xd5, 0x7b, 0xb6, 0x2f, 0x0a, 0xef, 0x5b, 0xe4, 0xf6, 0x4a, 0x22, 0x7d,
-       0x0b, 0xb2, 0x39, 0x1f, 0x4d, 0x83, 0x56, 0x3e, 0xd1, 0x05, 0x9e, 0x9e,
-       0xcc, 0xda, 0x3f, 0xe8, 0xd2, 0xb6, 0x20, 0x7c, 0x7e, 0xc6, 0x01, 0x2a,
-       0x59, 0x8c, 0xe9, 0x96, 0x7f, 0x11, 0xc4, 0x73, 0x93, 0xef, 0xb0, 0x73,
-       0x82, 0x1a, 0xbe, 0xb2, 0xc1, 0x21, 0xfc, 0x04, 0xd1, 0xb1, 0x5c, 0x4b,
-       0x3e, 0x04, 0x29, 0x2f, 0x98, 0x3f, 0x69, 0xd6, 0x4a, 0x5e, 0x0c, 0xb7,
-       0x6d, 0xba, 0xd4, 0xaa, 0x07, 0xdb, 0x22, 0x68, 0x7c, 0x22, 0xca, 0x18,
-       0xd9, 0xc3, 0xa6, 0xee, 0xb4, 0x8f, 0xc3, 0x2a, 0x5e, 0xc7, 0x7b, 0x24,
-       0xd2, 0xd6, 0x94, 0xa1, 0xad, 0x8f, 0x81, 0xb6, 0x4e, 0x29, 0xda, 0x6a,
-       0xc9, 0xab, 0xe9, 0xb4, 0x7c, 0x61, 0x4f, 0xfa, 0xda, 0xfd, 0x17, 0x01,
-       0xbc, 0xfc, 0x0d, 0xca, 0xc2, 0x17, 0xb1, 0x2e, 0xf4, 0x4e, 0xb9, 0x92,
-       0xc8, 0xce, 0xd2, 0x16, 0x82, 0x1e, 0x29, 0xc3, 0xe7, 0x4a, 0x5e, 0x1a,
-       0x52, 0x7d, 0x92, 0xd0, 0x29, 0x0d, 0xd0, 0x1b, 0xf1, 0x5b, 0xae, 0x40,
-       0x0e, 0x5f, 0x0a, 0x41, 0x6f, 0x91, 0x67, 0x65, 0xc0, 0x86, 0x6c, 0x60,
-       0xff, 0x06, 0x78, 0x27, 0x79, 0x29, 0x82, 0x32, 0xae, 0xe6, 0x6a, 0x54,
-       0x5c, 0x35, 0xbe, 0x51, 0x19, 0x55, 0xe3, 0x1a, 0xb0, 0x5f, 0x93, 0x97,
-       0x20, 0xdf, 0x33, 0x69, 0x19, 0xb9, 0x94, 0x91, 0xf8, 0x25, 0x4b, 0x8a,
-       0x33, 0xad, 0x56, 0x18, 0xb0, 0x8f, 0x5e, 0xea, 0x97, 0x5b, 0x2a, 0xb6,
-       0x1a, 0x56, 0xf1, 0xd6, 0xc5, 0xcc, 0x0c, 0x78, 0x93, 0xf8, 0xf3, 0x30,
-       0xa6, 0x00, 0xfd, 0x58, 0x90, 0xb3, 0x2b, 0xc4, 0x0f, 0xe3, 0xe5, 0xdb,
-       0xb1, 0x80, 0x24, 0x20, 0xcb, 0x8e, 0xcb, 0x7c, 0xad, 0x1b, 0xb2, 0x2c,
-       0x08, 0x1d, 0xf8, 0x50, 0xb7, 0xf4, 0x0e, 0x93, 0x1e, 0x80, 0x17, 0x0f,
-       0x73, 0x17, 0x24, 0x8f, 0x31, 0x85, 0x95, 0x9d, 0xfe, 0x45, 0xe9, 0x06,
-       0x4f, 0x1d, 0x97, 0x93, 0x35, 0xce, 0x13, 0x74, 0xca, 0x72, 0x10, 0x34,
-       0xe4, 0x3a, 0x47, 0x30, 0x0f, 0xf4, 0x76, 0xc7, 0x1f, 0xf9, 0x2f, 0xfb,
-       0x06, 0x34, 0xe9, 0xf3, 0x5d, 0xb8, 0xd4, 0xe5, 0xcd, 0x58, 0xdb, 0x19,
-       0x09, 0xce, 0x65, 0x3e, 0x60, 0x7d, 0x37, 0x93, 0xb1, 0xae, 0x65, 0xb2,
-       0xd6, 0xf5, 0x4c, 0xc1, 0xba, 0x01, 0xdd, 0xd4, 0xd8, 0x7c, 0x0e, 0xf4,
-       0x03, 0xdd, 0xcf, 0x98, 0x79, 0xfb, 0x0c, 0xa3, 0x26, 0x66, 0xf0, 0x9a,
-       0x6c, 0x54, 0x68, 0x3b, 0xb4, 0x1e, 0x9e, 0x4b, 0x97, 0xee, 0x01, 0x7c,
-       0x80, 0x83, 0xbe, 0xee, 0x8e, 0xee, 0x08, 0x79, 0xa3, 0xb2, 0xa6, 0x74,
-       0x47, 0x84, 0xba, 0x23, 0x9d, 0x97, 0xfd, 0xb2, 0x5d, 0x03, 0xff, 0x89,
-       0xb2, 0x83, 0x65, 0xbb, 0x1e, 0x95, 0x2f, 0x54, 0x7d, 0x5a, 0xe2, 0x7e,
-       0xcb, 0x6f, 0xea, 0x91, 0x80, 0x4c, 0x29, 0x7d, 0xdd, 0x27, 0x57, 0xd7,
-       0xe1, 0x0f, 0xc1, 0x5a, 0xb0, 0xef, 0x63, 0xac, 0xc0, 0x56, 0xbe, 0xb1,
-       0xf4, 0xf3, 0xee, 0xea, 0x2c, 0x70, 0xc5, 0xfb, 0x25, 0xec, 0xb3, 0x9f,
-       0x3b, 0xf2, 0xdf, 0xc7, 0xc1, 0x93, 0x7c, 0xb6, 0x24, 0x0f, 0xbb, 0x91,
-       0xf7, 0x5c, 0x79, 0xd8, 0x3d, 0xdb, 0x95, 0x31, 0xc0, 0x15, 0x80, 0x4d,
-       0x1e, 0x06, 0x1c, 0x55, 0xd5, 0xde, 0xed, 0x8a, 0x35, 0x07, 0x3d, 0x5c,
-       0x54, 0xf7, 0x57, 0x28, 0xd7, 0xf5, 0xda, 0x79, 0xf8, 0xab, 0xc5, 0xf1,
-       0x1e, 0xea, 0xb7, 0xd1, 0x12, 0xf9, 0x5e, 0xd9, 0xf1, 0x19, 0xf0, 0xdc,
-       0x57, 0xba, 0xa9, 0xdb, 0x8f, 0xa6, 0x27, 0xe5, 0x46, 0x85, 0xcf, 0x6c,
-       0x4f, 0xa4, 0x45, 0xc5, 0x8f, 0x2b, 0xd3, 0x8b, 0xee, 0x6b, 0x86, 0xc7,
-       0x6a, 0xa0, 0xf1, 0x53, 0xf2, 0x8d, 0xcd, 0x79, 0xf9, 0xf7, 0x9b, 0xb3,
-       0xb0, 0x4f, 0x4e, 0xc0, 0x3e, 0xf9, 0x08, 0x78, 0xf8, 0x38, 0x78, 0xf8,
-       0xe3, 0xa0, 0xfb, 0x19, 0x15, 0x77, 0xa8, 0x55, 0x12, 0x57, 0x4a, 0x2a,
-       0xce, 0xfd, 0x1a, 0x68, 0x7e, 0x42, 0x82, 0xab, 0x43, 0xc0, 0x6b, 0xa9,
-       0x15, 0x75, 0x5b, 0x0f, 0xc3, 0x06, 0xc1, 0x59, 0x97, 0x12, 0x41, 0x45,
-       0x23, 0xae, 0xf3, 0x69, 0xe0, 0xf2, 0x4d, 0x5e, 0xa2, 0xc6, 0x23, 0xde,
-       0xa8, 0x8d, 0x4a, 0xf1, 0x32, 0xfa, 0x2f, 0x47, 0x80, 0x37, 0xea, 0xc6,
-       0xc4, 0xf9, 0xa2, 0x6c, 0x81, 0x2e, 0xb2, 0xc0, 0xcf, 0x3b, 0xa4, 0x1c,
-       0x4d, 0x7c, 0x4d, 0x64, 0x52, 0x0e, 0x2d, 0x81, 0xa6, 0x97, 0x6c, 0xec,
-       0x99, 0xb8, 0xc4, 0xf3, 0x65, 0x4f, 0xec, 0x65, 0xca, 0xa2, 0x03, 0xc6,
-       0x37, 0xd1, 0xfa, 0xbe, 0x2e, 0x5c, 0x97, 0xeb, 0x7d, 0x46, 0xe6, 0xa1,
-       0x53, 0x61, 0x7f, 0x43, 0x66, 0xbb, 0x31, 0xac, 0x19, 0x9e, 0xbb, 0xec,
-       0x84, 0xe7, 0x2f, 0x73, 0x9e, 0xb0, 0x04, 0x96, 0x78, 0xb6, 0x9c, 0x07,
-       0x3c, 0x80, 0xb9, 0x53, 0x4b, 0xc4, 0xdb, 0x18, 0xc6, 0xfd, 0x63, 0xe8,
-       0x63, 0x4d, 0x57, 0xb9, 0x65, 0x2d, 0x1f, 0x72, 0x8d, 0x4e, 0x9d, 0x88,
-       0x33, 0x80, 0xfc, 0xc8, 0x36, 0xb4, 0x7e, 0x2b, 0x28, 0xfd, 0xa7, 0x75,
-       0xdf, 0x71, 0x81, 0x51, 0xd7, 0xeb, 0xaa, 0xfd, 0x04, 0x96, 0xb7, 0xa8,
-       0xef, 0xb1, 0x06, 0xc7, 0x84, 0x3a, 0xe0, 0xce, 0x40, 0xee, 0xdc, 0x1b,
-       0x26, 0xee, 0x1f, 0x83, 0x7e, 0x4d, 0x2e, 0xe9, 0x98, 0x7c, 0xf2, 0x72,
-       0x1a, 0xfb, 0x91, 0x41, 0x46, 0x17, 0x6c, 0xec, 0xe1, 0x7d, 0x4a, 0x7e,
-       0x4d, 0x40, 0x66, 0x39, 0xb2, 0x7e, 0x90, 0x67, 0x33, 0x28, 0x8d, 0xa7,
-       0xf9, 0xce, 0x33, 0xe2, 0x79, 0x93, 0x17, 0xa3, 0xd0, 0x2f, 0x38, 0xa7,
-       0xbe, 0x21, 0xa9, 0x6f, 0xb2, 0x6d, 0x48, 0xd1, 0x72, 0x10, 0x67, 0xb0,
-       0x58, 0x69, 0x3d, 0x9c, 0x4b, 0x97, 0x40, 0x6d, 0xc4, 0x39, 0xf1, 0x41,
-       0xbc, 0x8f, 0x03, 0x36, 0xe2, 0xb8, 0x8f, 0xba, 0x18, 0x75, 0xfb, 0xa5,
-       0x58, 0x23, 0x3d, 0xa3, 0xac, 0xef, 0x37, 0xbe, 0xde, 0x67, 0x78, 0x27,
-       0x84, 0xbd, 0x6b, 0x3a, 0x2e, 0x80, 0xa6, 0xca, 0xf0, 0xbb, 0xae, 0x2e,
-       0x49, 0xf8, 0x4d, 0x90, 0xcf, 0x9f, 0xa2, 0x0c, 0x05, 0x7d, 0x95, 0xd7,
-       0x27, 0x40, 0x6b, 0x7d, 0x90, 0x97, 0xad, 0xd6, 0x71, 0xd8, 0xc9, 0xa7,
-       0xd3, 0xc4, 0xd1, 0x4d, 0xe0, 0xa8, 0x3b, 0x76, 0x1a, 0xe7, 0xb5, 0xf6,
-       0xf4, 0x43, 0x4a, 0x5e, 0xc0, 0xd6, 0x51, 0x7a, 0x4b, 0xc7, 0x38, 0xd2,
-       0xb4, 0x8d, 0x14, 0x0f, 0xe7, 0x5c, 0xca, 0xc3, 0x3c, 0xf0, 0x30, 0xae,
-       0xe4, 0xb7, 0x96, 0x2d, 0x3d, 0x52, 0x3c, 0x9e, 0xc5, 0x7e, 0x27, 0x77,
-       0xf5, 0xcb, 0xe0, 0x1d, 0xb6, 0x5f, 0xf3, 0x43, 0x61, 0xc6, 0x43, 0x03,
-       0xde, 0xa4, 0x6c, 0x1c, 0x9c, 0x92, 0x8b, 0x07, 0x13, 0x93, 0xb3, 0x36,
-       0x75, 0xc2, 0x94, 0xd4, 0x9f, 0xce, 0xca, 0x5a, 0x55, 0xeb, 0xe6, 0x39,
-       0x77, 0x52, 0xf2, 0xcd, 0x02, 0xde, 0x3d, 0x94, 0xec, 0xef, 0xcb, 0x5d,
-       0x7f, 0x4f, 0x39, 0xee, 0x09, 0x32, 0x42, 0xeb, 0x5e, 0xdb, 0xee, 0xc6,
-       0xf9, 0x50, 0x2e, 0x7c, 0x10, 0xf5, 0x39, 0xc8, 0x36, 0x9e, 0x67, 0x0a,
-       0x67, 0x77, 0x4a, 0x9d, 0x53, 0x3e, 0x4d, 0x7f, 0x80, 0x63, 0x12, 0xb1,
-       0x39, 0xd4, 0xcf, 0x08, 0x75, 0x28, 0xf7, 0xe6, 0xcf, 0xe7, 0x19, 0xf8,
-       0x03, 0x8c, 0x31, 0xe1, 0xef, 0x33, 0x61, 0xf2, 0x64, 0xc0, 0xf5, 0xeb,
-       0xc7, 0xa0, 0x7f, 0x43, 0x6a, 0x8d, 0x72, 0x95, 0x75, 0x29, 0x87, 0xe3,
-       0xf3, 0x69, 0xbe, 0x8b, 0x3c, 0x66, 0xfc, 0xf2, 0xe3, 0xf0, 0x5b, 0xf3,
-       0xcd, 0xae, 0xdf, 0xa0, 0x7f, 0x77, 0x64, 0x9d, 0x96, 0xcb, 0xdb, 0x31,
-       0xc7, 0xc8, 0xde, 0x93, 0x35, 0xc6, 0xac, 0x2d, 0xe9, 0x82, 0x2c, 0x3d,
-       0x2a, 0xc3, 0x46, 0x8e, 0x72, 0x3f, 0x7d, 0x4a, 0xd7, 0xe5, 0x67, 0x62,
-       0x72, 0x6e, 0xed, 0xff, 0x85, 0xae, 0x7f, 0xbd, 0x5d, 0x57, 0xd8, 0xc3,
-       0xae, 0xbb, 0x79, 0x19, 0xf2, 0xa0, 0x0a, 0x59, 0x51, 0x85, 0xac, 0xa8,
-       0x42, 0x56, 0x54, 0x21, 0x2b, 0xaa, 0x90, 0x15, 0x55, 0xc8, 0x8a, 0xea,
-       0x8c, 0xd1, 0x9b, 0xa7, 0x21, 0x73, 0xe9, 0xf3, 0xd0, 0xcf, 0xe9, 0xb4,
-       0x05, 0xe2, 0x90, 0x25, 0xf4, 0x67, 0x12, 0xa5, 0x5b, 0xc0, 0xcd, 0xd7,
-       0xd3, 0xf4, 0xb9, 0x5b, 0xf2, 0x57, 0xe9, 0xce, 0xdd, 0xab, 0xf8, 0x86,
-       0x3c, 0x0a, 0x7c, 0x7d, 0x08, 0xf8, 0xfa, 0xf0, 0x5d, 0x39, 0x16, 0x7e,
-       0x4c, 0x64, 0xb8, 0x14, 0x80, 0xff, 0x39, 0x73, 0x07, 0xee, 0xe8, 0x7b,
-       0x63, 0x8d, 0xbb, 0x6c, 0x63, 0xfa, 0xdc, 0xa3, 0xea, 0xde, 0x7c, 0x03,
-       0x76, 0xf9, 0x8d, 0x74, 0x29, 0x12, 0x50, 0xf7, 0x73, 0x2e, 0x69, 0x67,
-       0x8f, 0xbf, 0x6f, 0x84, 0xb5, 0x5c, 0xd4, 0x67, 0x9f, 0xcf, 0xf4, 0x81,
-       0x0f, 0x68, 0xdf, 0xdd, 0x50, 0xf6, 0xdd, 0xd1, 0x74, 0x50, 0xb6, 0xa2,
-       0xd4, 0xa9, 0x3f, 0x92, 0x93, 0x2b, 0x91, 0x1e, 0xfa, 0xdf, 0x8b, 0xd5,
-       0x83, 0xb2, 0xad, 0x64, 0xca, 0x07, 0xd1, 0xd7, 0x93, 0x79, 0xd0, 0xc4,
-       0x11, 0xf8, 0x8e, 0x17, 0x65, 0x2c, 0x76, 0x11, 0x7b, 0xfd, 0x3c, 0xc6,
-       0xc0, 0x07, 0x68, 0x15, 0x50, 0x77, 0x1d, 0x7e, 0xc6, 0x6d, 0xe1, 0xf3,
-       0x98, 0x73, 0x1e, 0x88, 0xce, 0x3a, 0x29, 0xe7, 0x35, 0xf1, 0xe9, 0x8c,
-       0x34, 0xc5, 0xbb, 0xb6, 0x41, 0xc9, 0xaf, 0xd3, 0x2f, 0xeb, 0x03, 0x1f,
-       0xfe, 0x08, 0x7a, 0x98, 0x6b, 0x50, 0x2e, 0x70, 0x0f, 0xff, 0x0d, 0xf0,
-       0xc5, 0x67, 0xbb, 0xbd, 0xfb, 0xa1, 0x7b, 0x29, 0xf7, 0xb5, 0xef, 0x94,
-       0xc7, 0x18, 0xa5, 0x1b, 0xd2, 0xbc, 0x77, 0xe0, 0xfe, 0xfe, 0x18, 0x76,
-       0x4e, 0x14, 0x74, 0x80, 0xfa, 0x75, 0xdf, 0xce, 0xf5, 0xed, 0x19, 0x1d,
-       0xeb, 0xbb, 0xa2, 0x6c, 0x9a, 0x1c, 0xf4, 0xd8, 0x31, 0xf4, 0x65, 0xac,
-       0xbd, 0xd5, 0x3a, 0x95, 0x86, 0xdf, 0xf1, 0x24, 0x65, 0xd9, 0x7d, 0xe0,
-       0x69, 0xda, 0x45, 0xd4, 0xb9, 0x62, 0xdd, 0xcc, 0x6c, 0x3b, 0x61, 0xe8,
-       0xcb, 0x19, 0xd0, 0x5c, 0x0e, 0x74, 0x18, 0x78, 0x60, 0x0a, 0xfa, 0x57,
-       0xc5, 0x9c, 0x41, 0xeb, 0x5c, 0xf7, 0x83, 0xd6, 0x5f, 0x64, 0xc6, 0xa1,
-       0x8f, 0x1f, 0x82, 0x3e, 0xe6, 0x7d, 0x74, 0x0e, 0x3a, 0x99, 0xfa, 0xd8,
-       0x91, 0x3f, 0xdd, 0xcc, 0x41, 0x76, 0xdd, 0xd7, 0x43, 0x5e, 0x9b, 0x6a,
-       0xf3, 0x54, 0xc1, 0xf0, 0xdc, 0x01, 0x13, 0xfb, 0x28, 0x28, 0xde, 0x2c,
-       0xaf, 0xd3, 0x0e, 0x01, 0x9f, 0xae, 0x53, 0x46, 0xd0, 0xa6, 0xa4, 0xec,
-       0x80, 0xac, 0x59, 0xff, 0x00, 0xca, 0x29, 0x94, 0xda, 0x56, 0xbb, 0x52,
-       0x7d, 0x35, 0xec, 0xdf, 0x23, 0xef, 0xd8, 0x6b, 0x75, 0xec, 0xef, 0x18,
-       0x73, 0x1b, 0x4a, 0xfd, 0xde, 0x47, 0xb0, 0xc7, 0xe3, 0xa0, 0xc1, 0x19,
-       0xd0, 0xe0, 0x14, 0xf6, 0x7a, 0xde, 0x1a, 0x39, 0x1c, 0x80, 0x3e, 0x3f,
-       0x23, 0x85, 0x34, 0x64, 0xee, 0x5a, 0xc9, 0x9a, 0x58, 0x12, 0xf5, 0x9e,
-       0x4f, 0xf3, 0x4e, 0xfd, 0xbd, 0x2a, 0x3e, 0xb8, 0xbc, 0x19, 0x34, 0x71,
-       0xc4, 0x20, 0xea, 0xa8, 0xc3, 0x21, 0xb3, 0x1c, 0xcc, 0x55, 0xfd, 0x59,
-       0xaf, 0xf4, 0x62, 0xbe, 0xea, 0x34, 0xde, 0x19, 0x5b, 0x38, 0x66, 0xdd,
-       0x59, 0xcf, 0xd8, 0x45, 0xc2, 0xc9, 0xc1, 0x17, 0x0d, 0xba, 0x8c, 0x5f,
-       0xb8, 0x38, 0x9f, 0xac, 0xe4, 0x47, 0x60, 0x93, 0x29, 0x99, 0xdc, 0x6b,
-       0x64, 0x32, 0xe4, 0x5d, 0xcd, 0x93, 0xb5, 0x4d, 0xda, 0x4e, 0x9e, 0xf2,
-       0xa7, 0x29, 0xc7, 0x8a, 0x35, 0xd8, 0x3f, 0xe9, 0xdf, 0xb3, 0xb2, 0x6a,
-       0xce, 0xb0, 0xca, 0xd5, 0x28, 0xad, 0x89, 0xe5, 0x1c, 0xbe, 0x09, 0xff,
-       0x35, 0x03, 0x1e, 0xf6, 0x20, 0x37, 0x1d, 0xc8, 0x45, 0xea, 0xb5, 0xaf,
-       0x76, 0x4b, 0x1f, 0xea, 0x2f, 0xc3, 0xe6, 0x79, 0x92, 0x7c, 0x7b, 0x5d,
-       0xec, 0xc6, 0x1b, 0xc5, 0x47, 0x18, 0x1b, 0x19, 0x32, 0x77, 0xb3, 0xff,
-       0x0b, 0xf0, 0xea, 0x35, 0x42, 0xb0, 0xeb, 0xaf, 0xd6, 0xf6, 0xc1, 0x47,
-       0x3c, 0x66, 0xe5, 0xa3, 0xac, 0x2b, 0xc9, 0x7a, 0x86, 0x76, 0x28, 0x63,
-       0x24, 0x61, 0xd4, 0xef, 0xf6, 0x49, 0xa9, 0xff, 0x9f, 0x53, 0x77, 0x34,
-       0x0b, 0x4a, 0xee, 0xfa, 0xf1, 0xe5, 0xe7, 0x24, 0xd9, 0xf4, 0xe3, 0x54,
-       0x5c, 0x7f, 0xcb, 0x2a, 0x36, 0xff, 0x1c, 0xeb, 0x10, 0x06, 0xee, 0x45,
-       0xaf, 0x63, 0x2f, 0x4f, 0x98, 0x75, 0x1c, 0x2b, 0x74, 0x38, 0x86, 0xfd,
-       0xec, 0xef, 0x93, 0xbe, 0x00, 0xe4, 0xd9, 0x28, 0x9e, 0x6f, 0xa1, 0x6e,
-       0xe7, 0xbd, 0x51, 0x15, 0x2b, 0x70, 0x18, 0xde, 0x33, 0xf4, 0x77, 0x03,
-       0x32, 0xc7, 0x86, 0xfe, 0x6c, 0x54, 0x3f, 0x8e, 0x12, 0xe3, 0x9e, 0xbc,
-       0x2e, 0x73, 0xda, 0xdf, 0x86, 0x4d, 0x39, 0xac, 0x74, 0xf0, 0x4c, 0x9a,
-       0xb1, 0x90, 0x33, 0x90, 0x8f, 0xf7, 0xa3, 0x8e, 0x7e, 0x53, 0x49, 0x9c,
-       0xf7, 0x14, 0x8c, 0xbf, 0xaf, 0xcf, 0x25, 0xa0, 0xf4, 0xf5, 0x0a, 0xce,
-       0x83, 0x73, 0x50, 0xdf, 0xfd, 0x5c, 0x3e, 0xd5, 0x11, 0x47, 0xc9, 0xd9,
-       0xed, 0xb8, 0x41, 0x36, 0x0f, 0x1d, 0xbd, 0x56, 0x25, 0x0f, 0x66, 0x70,
-       0xde, 0x59, 0xf9, 0xda, 0xe6, 0x3d, 0xc0, 0x75, 0x54, 0x02, 0x4f, 0xb5,
-       0x40, 0x3f, 0xd4, 0x0d, 0x63, 0x90, 0xc9, 0x8e, 0xb1, 0x25, 0xa2, 0x12,
-       0x7c, 0x6a, 0x48, 0xba, 0x2f, 0xc4, 0xa4, 0xeb, 0x02, 0xf3, 0x4f, 0x52,
-       0x71, 0xd8, 0xc5, 0xb4, 0x87, 0x78, 0x0f, 0xc9, 0xfb, 0xc3, 0xb8, 0xbe,
-       0x8f, 0xe4, 0x5d, 0x24, 0xfa, 0xc1, 0x76, 0xef, 0xba, 0xe4, 0x00, 0x3f,
-       0x7a, 0xce, 0xdd, 0x63, 0xcb, 0x7a, 0x2c, 0xef, 0x31, 0x63, 0x25, 0x49,
-       0x99, 0x7b, 0xcc, 0x14, 0xc6, 0xa6, 0x26, 0x5f, 0x6e, 0x8f, 0xe7, 0x58,
-       0xea, 0xc4, 0x28, 0xf8, 0xfb, 0xad, 0xd2, 0xf8, 0x22, 0xf9, 0xdc, 0xbf,
-       0xeb, 0x1a, 0x32, 0x77, 0x5f, 0xec, 0x13, 0x37, 0xed, 0x49, 0xd3, 0xee,
-       0x2a, 0x3d, 0x19, 0x6c, 0xc7, 0x5b, 0x78, 0x2f, 0x96, 0x38, 0xcf, 0xe4,
-       0x11, 0x7d, 0x47, 0x46, 0x5f, 0x0a, 0xbe, 0xc5, 0x93, 0xb0, 0x31, 0xeb,
-       0x2c, 0x7b, 0xa4, 0x5c, 0x3f, 0x25, 0xb3, 0xea, 0xf9, 0x43, 0xf2, 0xa8,
-       0x43, 0xdc, 0x9d, 0x91, 0xf4, 0x84, 0xb6, 0xc7, 0xc4, 0xd6, 0xb8, 0xed,
-       0x76, 0xcf, 0xc8, 0xd1, 0xb4, 0xd2, 0x21, 0xce, 0x23, 0xc0, 0x71, 0xb1,
-       0xd9, 0x45, 0x7a, 0x07, 0xec, 0x1e, 0x78, 0x2c, 0x2b, 0x17, 0x37, 0xd1,
-       0x17, 0x67, 0xf5, 0x08, 0xdf, 0xeb, 0xc0, 0x27, 0x63, 0x16, 0x4f, 0x11,
-       0x9f, 0xdc, 0x3b, 0x75, 0x28, 0x71, 0x4a, 0x1c, 0x50, 0x2f, 0x33, 0xe6,
-       0x96, 0x98, 0xbc, 0x2d, 0xf4, 0x9b, 0x89, 0x33, 0xce, 0xe3, 0xef, 0x5b,
-       0x8f, 0xb3, 0x37, 0x06, 0x85, 0xe6, 0x98, 0x7d, 0xc1, 0x11, 0xfb, 0x12,
-       0xcb, 0x08, 0x4a, 0xb6, 0x01, 0xa4, 0x8d, 0xa4, 0x69, 0x73, 0x51, 0x07,
-       0x3b, 0xf2, 0x09, 0xf2, 0x96, 0xce, 0xff, 0x4b, 0x8e, 0x4c, 0xca, 0x95,
-       0xb5, 0xbb, 0xf9, 0x2b, 0x70, 0x41, 0xdb, 0x25, 0x77, 0xf2, 0xd7, 0xe4,
-       0x3f, 0x80, 0xbf, 0xb8, 0xc6, 0x19, 0x95, 0xbb, 0xf0, 0xa9, 0x68, 0x22,
-       0x9e, 0xd5, 0xfe, 0x85, 0x93, 0xb2, 0x47, 0xe2, 0xb4, 0x47, 0x1b, 0x4f,
-       0x8e, 0xe3, 0xdc, 0x5b, 0xf2, 0x44, 0xda, 0xa7, 0x2f, 0xe6, 0xf8, 0xb5,
-       0xa4, 0x06, 0xfd, 0x5c, 0x76, 0x2d, 0x59, 0x70, 0xcf, 0x28, 0x7b, 0xf2,
-       0xc3, 0xd1, 0x96, 0x9c, 0x4e, 0xeb, 0xb1, 0x0b, 0x32, 0x62, 0x68, 0x5c,
-       0xf9, 0x6b, 0x90, 0xbf, 0x3c, 0x2f, 0xbe, 0xdf, 0x23, 0xe9, 0x81, 0x33,
-       0x92, 0x9c, 0xd8, 0x22, 0xbe, 0x70, 0x0e, 0x94, 0x3b, 0xbf, 0x36, 0x16,
-       0xa6, 0x72, 0x9e, 0xf2, 0x15, 0xc2, 0xb4, 0x0f, 0x74, 0x9b, 0x85, 0xbf,
-       0xb4, 0x13, 0x0f, 0x4b, 0x8d, 0x94, 0x5a, 0x21, 0xac, 0x5d, 0x84, 0x3f,
-       0xf1, 0xe1, 0xa8, 0x1b, 0x1f, 0xb6, 0x47, 0x62, 0x67, 0xa5, 0xa6, 0x60,
-       0xfd, 0x44, 0x5a, 0xd3, 0xcb, 0x62, 0x66, 0xaf, 0x18, 0x55, 0x67, 0x8c,
-       0x9a, 0x73, 0x6d, 0x59, 0x9f, 0x6c, 0xea, 0x78, 0xd4, 0x4e, 0x9c, 0x7a,
-       0x47, 0xe6, 0x04, 0x8d, 0x2c, 0x28, 0xd7, 0xde, 0x25, 0xbe, 0xcc, 0xa9,
-       0x65, 0x70, 0x56, 0xcb, 0x3c, 0xa3, 0xb8, 0xb9, 0x47, 0x0a, 0x77, 0xd8,
-       0xca, 0x21, 0xe6, 0xfd, 0xc5, 0xb3, 0xf6, 0x32, 0x64, 0xc3, 0x93, 0x12,
-       0x72, 0xfd, 0xb9, 0x98, 0xd3, 0x19, 0x33, 0xf7, 0x11, 0xfb, 0x19, 0xb7,
-       0x42, 0x9f, 0x07, 0xd1, 0x7e, 0x3f, 0xfa, 0x51, 0x57, 0xf2, 0x1e, 0x80,
-       0x7a, 0x93, 0xb1, 0xf6, 0x01, 0xf4, 0xeb, 0x91, 0x7c, 0x7d, 0xbf, 0xa9,
-       0xf3, 0xe7, 0x38, 0xdc, 0xd1, 0xdf, 0xaf, 0xd3, 0xf7, 0x07, 0x59, 0x1b,
-       0x32, 0x7e, 0x99, 0x7d, 0xe3, 0xed, 0x3b, 0x10, 0xbb, 0xf1, 0xa0, 0xa3,
-       0xc7, 0xb3, 0x1f, 0x65, 0x3e, 0x74, 0x4b, 0x15, 0xfa, 0xa6, 0x3a, 0xc5,
-       0xbb, 0x40, 0x63, 0x57, 0xcc, 0x9a, 0x7c, 0x16, 0xda, 0x17, 0xaf, 0x19,
-       0x7d, 0xbb, 0x93, 0x8b, 0x7a, 0x24, 0xe3, 0xe7, 0xf5, 0x30, 0x17, 0x91,
-       0xeb, 0xf2, 0x3c, 0x40, 0x53, 0x9b, 0xda, 0x96, 0xb6, 0x33, 0x5d, 0xbc,
-       0x6b, 0x83, 0x7e, 0xd7, 0xfa, 0xbf, 0x01, 0xfd, 0xbf, 0xb1, 0x02, 0x9d,
-       0xdf, 0x47, 0xdd, 0xaf, 0xf3, 0x4f, 0xec, 0x76, 0xbe, 0x8f, 0x7f, 0x8f,
-       0xbc, 0xa5, 0xee, 0xf1, 0x7a, 0x3c, 0xca, 0xf4, 0x8c, 0xfc, 0x39, 0x6c,
-       0xad, 0x67, 0x36, 0x27, 0xb1, 0x5e, 0x1a, 0x7e, 0xdd, 0x38, 0xfc, 0xba,
-       0x51, 0xf8, 0x75, 0x2e, 0x74, 0xe1, 0x90, 0xca, 0x27, 0xa3, 0xde, 0x9f,
-       0x38, 0x24, 0xd6, 0xd7, 0x32, 0x62, 0x1d, 0xbc, 0x00, 0x1b, 0x61, 0xe9,
-       0x25, 0xd0, 0x7f, 0xe2, 0x79, 0x11, 0xf2, 0x04, 0xf9, 0xef, 0x31, 0xc9,
-       0xc6, 0x86, 0xe4, 0xf3, 0x9b, 0x6c, 0x23, 0x3d, 0x65, 0xe5, 0x15, 0xf7,
-       0x25, 0xc5, 0x67, 0x17, 0x6b, 0xd7, 0x25, 0xf4, 0x84, 0x96, 0xb5, 0x3f,
-       0x80, 0x3d, 0xd5, 0x48, 0x6b, 0xda, 0xbb, 0x2d, 0xa4, 0x3d, 0xe8, 0xa7,
-       0x35, 0xca, 0xd8, 0x9b, 0x12, 0xbd, 0xf0, 0x92, 0xbc, 0xf9, 0x82, 0xab,
-       0xe2, 0x12, 0x6b, 0x4f, 0x2a, 0xdd, 0x07, 0xb9, 0x16, 0x95, 0xf5, 0xcd,
-       0xdf, 0x91, 0x4f, 0x39, 0x89, 0x2b, 0x94, 0x99, 0x94, 0x5d, 0x5a, 0xa7,
-       0x41, 0xc6, 0x56, 0x12, 0xa5, 0x32, 0x6c, 0xef, 0x2b, 0xf6, 0x98, 0x64,
-       0x83, 0xa5, 0x56, 0x3f, 0xfd, 0x82, 0x9a, 0xeb, 0x24, 0x6d, 0x9e, 0xef,
-       0xbd, 0xb0, 0xad, 0x13, 0x75, 0x25, 0xa3, 0xa8, 0x27, 0x33, 0xd4, 0x9b,
-       0xd4, 0x7d, 0xd4, 0x3f, 0x8c, 0x97, 0xe3, 0x79, 0x8d, 0xba, 0xe9, 0xef,
-       0xd4, 0x9d, 0x67, 0x71, 0xc6, 0x91, 0xfa, 0x1a, 0xe5, 0x13, 0xf4, 0xfc,
-       0x93, 0xb4, 0x73, 0x45, 0xd1, 0x3f, 0xed, 0xdc, 0x47, 0xc5, 0xb7, 0x71,
-       0xd9, 0xb6, 0xdb, 0xc6, 0xfd, 0x83, 0x7d, 0xd2, 0x1b, 0x05, 0x7e, 0xc8,
-       0xff, 0x3b, 0x36, 0x60, 0x2e, 0x73, 0x13, 0xb6, 0x26, 0xf7, 0x61, 0xc9,
-       0xa0, 0x7b, 0x1d, 0x74, 0xc4, 0xb5, 0x6f, 0xb6, 0x3e, 0x1c, 0xe5, 0x1e,
-       0x2c, 0x65, 0x23, 0x6c, 0x0f, 0xfe, 0xa6, 0x3b, 0x0a, 0xca, 0x88, 0x7d,
-       0xb0, 0xcd, 0x6d, 0x43, 0xb3, 0x9f, 0x34, 0xbe, 0x04, 0xf8, 0x79, 0x95,
-       0x7b, 0x28, 0xf3, 0x4e, 0x04, 0x36, 0xd7, 0x22, 0x63, 0x52, 0x6a, 0xdd,
-       0xf7, 0x67, 0x22, 0x92, 0xbc, 0xd0, 0x25, 0xa9, 0xa7, 0xec, 0x41, 0x9d,
-       0xb7, 0xf8, 0x30, 0x74, 0xcf, 0x41, 0xb4, 0x1f, 0x90, 0xb2, 0x13, 0x85,
-       0x3f, 0x33, 0x2a, 0xe5, 0xd1, 0x30, 0x78, 0xe6, 0x01, 0xde, 0x75, 0x28,
-       0x38, 0xca, 0xce, 0x30, 0xca, 0x6e, 0x94, 0xf7, 0x48, 0xf9, 0xc9, 0x4b,
-       0xfb, 0xb4, 0x2d, 0xbb, 0xfb, 0xfd, 0x9f, 0x76, 0xab, 0xd8, 0xb9, 0xf5,
-       0x8e, 0x88, 0xb9, 0x47, 0xff, 0x2d, 0x60, 0xf7, 0xfb, 0x12, 0x9e, 0x90,
-       0xb8, 0x4f, 0x44, 0x64, 0x18, 0xb2, 0x77, 0x04, 0x7a, 0xeb, 0xe0, 0x85,
-       0x21, 0x19, 0xbd, 0x10, 0x97, 0xfb, 0x2e, 0xf8, 0xf6, 0xc0, 0xf2, 0x74,
-       0xca, 0xc4, 0x71, 0xdd, 0xdf, 0x32, 0x8e, 0x7b, 0x9f, 0x9a, 0x1f, 0x30,
-       0xae, 0x41, 0x1e, 0x46, 0x3f, 0xa7, 0xec, 0x06, 0x8d, 0xfb, 0x1f, 0xc9,
-       0x91, 0x95, 0x90, 0x1c, 0x55, 0xbc, 0xe8, 0xdb, 0xf0, 0xff, 0x13, 0xfb,
-       0x48, 0x80, 0x47, 0x4e, 0x18, 0xbf, 0xb3, 0x17, 0x78, 0x25, 0x0e, 0xa1,
-       0xeb, 0xe0, 0x8b, 0x32, 0x3f, 0xb5, 0x98, 0xee, 0x1c, 0xcf, 0xb1, 0x3f,
-       0xc5, 0x98, 0x2c, 0x6c, 0x0b, 0xb6, 0xcb, 0x60, 0x40, 0xf6, 0x6a, 0x7f,
-       0x1f, 0xda, 0x29, 0x73, 0x8e, 0x42, 0xe6, 0xec, 0x6e, 0xcf, 0xa1, 0x8d,
-       0xeb, 0xdf, 0x83, 0x75, 0xc9, 0x8f, 0x5c, 0xd7, 0xc7, 0x09, 0xcf, 0x75,
-       0x10, 0xfe, 0x07, 0xcf, 0xb5, 0x4b, 0x0a, 0x0e, 0x73, 0x37, 0x59, 0xf7,
-       0x16, 0x73, 0xd6, 0x13, 0xe6, 0xac, 0x05, 0xb6, 0x31, 0xed, 0x2d, 0x9d,
-       0xaf, 0x50, 0x88, 0x26, 0x4a, 0x22, 0x71, 0x15, 0xbf, 0x5b, 0xaf, 0xf8,
-       0xf6, 0x49, 0xb6, 0x9f, 0xf7, 0x10, 0x8b, 0x69, 0x15, 0x5b, 0x8b, 0x07,
-       0x3c, 0xda, 0x37, 0xe9, 0x30, 0xf3, 0x92, 0x1b, 0x2b, 0xbc, 0x93, 0x0c,
-       0xe0, 0x07, 0x3c, 0x07, 0x2d, 0x71, 0x5c, 0xd6, 0x95, 0xb4, 0x6e, 0x9b,
-       0x01, 0xff, 0xda, 0xaa, 0x4f, 0x3c, 0x97, 0x1e, 0x34, 0xef, 0x31, 0x59,
-       0xab, 0xbc, 0x63, 0xc8, 0xf6, 0xfe, 0xf6, 0x9e, 0x5c, 0xa6, 0x9f, 0xf7,
-       0x49, 0xa8, 0x23, 0x9f, 0xbc, 0xa4, 0x72, 0x15, 0xb5, 0xef, 0x10, 0xe4,
-       0x3d, 0x24, 0xf6, 0xf9, 0x53, 0xd0, 0xf5, 0xee, 0x3d, 0x77, 0x99, 0x3d,
-       0x73, 0xbf, 0xc4, 0x37, 0xc7, 0xfb, 0x7a, 0x8e, 0x38, 0x0f, 0x77, 0xf8,
-       0x1b, 0x91, 0x81, 0x9d, 0xfb, 0x73, 0xca, 0x42, 0xca, 0xbf, 0x49, 0x95,
-       0xef, 0x72, 0xcb, 0x86, 0x1c, 0xaa, 0x42, 0x2e, 0x55, 0x21, 0x8b, 0xaa,
-       0x90, 0x45, 0xb0, 0x41, 0x9e, 0x85, 0x5c, 0x7d, 0x06, 0xbe, 0xda, 0xd7,
-       0xab, 0xbe, 0xfd, 0x9e, 0x85, 0x1c, 0x53, 0x36, 0x1d, 0xed, 0x9f, 0x9a,
-       0xed, 0x75, 0xff, 0xd6, 0xf9, 0x50, 0x01, 0xcf, 0x1f, 0xd7, 0x2d, 0x45,
-       0x35, 0x26, 0x2e, 0xf3, 0xcd, 0xbd, 0xfa, 0x72, 0x7f, 0xa1, 0x8e, 0xfd,
-       0x9a, 0xbb, 0x7e, 0x15, 0x8b, 0xa0, 0x0c, 0xfe, 0x4d, 0x3c, 0xd0, 0x99,
-       0xa7, 0xc9, 0x33, 0x56, 0x39, 0x42, 0x38, 0x53, 0xe2, 0x9d, 0x76, 0x61,
-       0x59, 0x16, 0x26, 0x17, 0xa5, 0x3c, 0x69, 0xc9, 0xdc, 0x38, 0xce, 0x68,
-       0x7c, 0x18, 0x3a, 0x32, 0x0d, 0x5d, 0xbb, 0x80, 0x79, 0xc8, 0x7f, 0x0f,
-       0xe2, 0x5c, 0x1c, 0x73, 0x27, 0xfe, 0xa5, 0xe9, 0x5c, 0x4d, 0xac, 0x6b,
-       0x2a, 0x47, 0x7c, 0x79, 0xfa, 0xd5, 0x95, 0x87, 0x61, 0x3f, 0x4d, 0xc8,
-       0xd5, 0xc9, 0x87, 0x65, 0xfb, 0x8e, 0xf1, 0x38, 0x07, 0xc8, 0xe1, 0xcf,
-       0x6f, 0xf2, 0x1e, 0xb4, 0x4b, 0x66, 0xa3, 0x8c, 0x81, 0xc1, 0xc6, 0x71,
-       0xfb, 0x65, 0x5b, 0xf9, 0xa1, 0x07, 0xe4, 0xb6, 0xa2, 0x2d, 0xd6, 0x85,
-       0x50, 0xa7, 0xed, 0xd1, 0xb5, 0x8a, 0x6f, 0x5b, 0x28, 0x1c, 0x99, 0x98,
-       0x1f, 0xf5, 0x0d, 0xe3, 0x49, 0x8c, 0x2f, 0xad, 0x45, 0x76, 0x64, 0x01,
-       0x4b, 0xff, 0x5c, 0x3b, 0xfd, 0xe3, 0xbf, 0x8e, 0xe8, 0x6f, 0x0b, 0xba,
-       0xa4, 0x1c, 0x2d, 0xb5, 0xca, 0x6e, 0xd0, 0xba, 0xda, 0xce, 0x69, 0xf5,
-       0xdb, 0x48, 0xcb, 0x36, 0x60, 0x25, 0x1d, 0x24, 0x55, 0xee, 0xce, 0x77,
-       0xaa, 0x03, 0xfb, 0xf4, 0x37, 0x0a, 0x01, 0x8c, 0xe3, 0xfb, 0x89, 0x88,
-       0x7e, 0xf7, 0xef, 0xdd, 0xdf, 0x86, 0xbe, 0x31, 0x25, 0xaf, 0xd6, 0x6a,
-       0x01, 0xf0, 0xf0, 0x20, 0x9e, 0x5f, 0x44, 0x9f, 0x30, 0xce, 0x86, 0xb1,
-       0xa4, 0xb7, 0xa8, 0xfc, 0x9b, 0x80, 0xeb, 0xe7, 0xf5, 0x52, 0x77, 0xff,
-       0x67, 0xd5, 0xfe, 0xf4, 0x4a, 0x37, 0xf3, 0x55, 0x51, 0x52, 0xaf, 0xff,
-       0x0a, 0xbe, 0x56, 0x48, 0xf2, 0x35, 0x17, 0xb6, 0x78, 0x88, 0xf4, 0x8b,
-       0xfa, 0x7b, 0xa1, 0xa3, 0x04, 0xfc, 0xd4, 0x05, 0xbd, 0xa9, 0x70, 0x0d,
-       0x4a, 0xa2, 0x4f, 0xef, 0xe7, 0x99, 0x6a, 0x38, 0x42, 0xde, 0xf7, 0x98,
-       0x6f, 0x10, 0x0e, 0x78, 0x2f, 0x4d, 0xcf, 0x55, 0x68, 0x2b, 0xb5, 0x5a,
-       0xd0, 0x65, 0xd8, 0xc9, 0xcf, 0x94, 0x5f, 0xb1, 0x2d, 0xda, 0x57, 0x5b,
-       0x50, 0xf9, 0x96, 0x37, 0xa7, 0x35, 0x8d, 0x74, 0xde, 0x9f, 0xbc, 0xd1,
-       0xdd, 0x49, 0x58, 0xb6, 0xd3, 0x3d, 0x86, 0x2f, 0xc2, 0xc1, 0x62, 0x25,
-       0x12, 0x9c, 0x53, 0xf7, 0x5b, 0x5b, 0x26, 0x1f, 0xf3, 0xda, 0x74, 0xaa,
-       0x19, 0x56, 0xb9, 0x00, 0xbc, 0x4b, 0xc8, 0x57, 0x78, 0x97, 0xa2, 0xdb,
-       0x53, 0xa6, 0x3d, 0xd9, 0x54, 0x6d, 0x2a, 0xde, 0xc5, 0x18, 0x57, 0x37,
-       0xca, 0xdb, 0x15, 0xca, 0x07, 0xcc, 0xaf, 0x65, 0x09, 0x60, 0x7f, 0x71,
-       0x7a, 0x6e, 0x85, 0xf0, 0x7d, 0x7f, 0x3a, 0xb7, 0xc2, 0x1c, 0xc8, 0xff,
-       0x34, 0x7d, 0x63, 0xc5, 0x92, 0x0d, 0x37, 0xa1, 0xe2, 0x57, 0xeb, 0x8c,
-       0xb1, 0x72, 0x9c, 0x9a, 0xf3, 0x45, 0x23, 0x93, 0xbf, 0x37, 0x3d, 0xbc,
-       0x1e, 0x90, 0x73, 0x66, 0x0e, 0xbe, 0xc7, 0xd7, 0xef, 0xa0, 0x6b, 0xd0,
-       0xca, 0x15, 0xd0, 0x4a, 0x2f, 0x6c, 0x09, 0xd2, 0x37, 0x7d, 0xb2, 0x5e,
-       0xc8, 0x01, 0xae, 0xf3, 0x8c, 0x5a, 0x27, 0x80, 0x75, 0xe6, 0x54, 0xce,
-       0x78, 0x80, 0x79, 0xb7, 0xb0, 0x35, 0x61, 0x13, 0xba, 0x8c, 0x59, 0xdb,
-       0xd8, 0xf3, 0x28, 0xf4, 0x12, 0xf3, 0x3f, 0xfe, 0x7b, 0x64, 0x27, 0x6f,
-       0xfc, 0x39, 0x33, 0xee, 0x9b, 0x18, 0xc7, 0x33, 0x51, 0xf9, 0xe6, 0x6f,
-       0xb6, 0x65, 0x58, 0xd9, 0x90, 0x3a, 0x07, 0x89, 0x30, 0xd4, 0xb1, 0x57,
-       0xea, 0xe2, 0x2e, 0xc9, 0xab, 0x7d, 0x7d, 0x53, 0x8d, 0xb3, 0xbc, 0x6f,
-       0x00, 0x76, 0xda, 0x25, 0x98, 0xbb, 0xaa, 0xe3, 0x6d, 0x79, 0xc5, 0xd3,
-       0xe0, 0x91, 0x49, 0x3f, 0x57, 0x4f, 0x8f, 0xf3, 0xfb, 0x27, 0xd7, 0x8f,
-       0x98, 0x9c, 0x8e, 0xbf, 0x6f, 0x65, 0x8f, 0xf7, 0x2a, 0x1b, 0x6c, 0xe7,
-       0x9b, 0x08, 0x7f, 0x8c, 0xdf, 0xc7, 0xcf, 0x31, 0x7e, 0x74, 0xff, 0x0e,
-       0xcc, 0x5b, 0xe6, 0xcc, 0x39, 0x8e, 0xb1, 0x49, 0x95, 0xaf, 0xcb, 0xba,
-       0xe0, 0x7c, 0x86, 0x73, 0x74, 0xde, 0xf7, 0x8c, 0x83, 0x47, 0xb5, 0xcd,
-       0x57, 0x82, 0x9d, 0x55, 0x06, 0xbf, 0x04, 0x3c, 0xca, 0xf1, 0x61, 0x13,
-       0x57, 0x7b, 0xa3, 0x38, 0x1f, 0xef, 0x12, 0xc7, 0x21, 0x7b, 0xfc, 0xf1,
-       0x3c, 0xc7, 0x6b, 0xd3, 0x37, 0x2a, 0xae, 0x9c, 0xad, 0xea, 0x7c, 0x47,
-       0x8d, 0x07, 0xc6, 0x6e, 0x78, 0xb6, 0x71, 0x99, 0x73, 0xa9, 0x67, 0xe3,
-       0xf2, 0x5d, 0xd7, 0x8f, 0xad, 0xf1, 0x7e, 0x0a, 0xfd, 0x61, 0xeb, 0x2d,
-       0x6c, 0x72, 0xff, 0xdf, 0xc4, 0xfe, 0xe9, 0x53, 0x68, 0x5a, 0x3a, 0x08,
-       0xb9, 0xf5, 0x1f, 0x82, 0xf0, 0x19, 0xa0, 0xbb, 0x6f, 0x05, 0x3b, 0xf7,
-       0xe7, 0xeb, 0x6b, 0x4d, 0x97, 0x41, 0xd0, 0xc8, 0x62, 0x1b, 0xef, 0x96,
-       0x04, 0xde, 0x39, 0x02, 0x1d, 0x64, 0x49, 0x61, 0xdc, 0x8d, 0x2d, 0xf0,
-       0x6e, 0xc1, 0x19, 0x73, 0x1c, 0x95, 0xc7, 0x16, 0x07, 0xbc, 0x7c, 0xe6,
-       0xb7, 0x02, 0xcc, 0x39, 0x8b, 0xab, 0x5c, 0xdd, 0x6c, 0xd4, 0x05, 0xbc,
-       0x8e, 0xb2, 0x4f, 0xb4, 0x5e, 0xfe, 0x97, 0xfb, 0x29, 0x6b, 0xfa, 0x5d,
-       0xff, 0xec, 0x39, 0xf7, 0x8b, 0x98, 0x3b, 0x60, 0xda, 0x7d, 0x1a, 0x09,
-       0x30, 0xe5, 0x4d, 0x76, 0xbe, 0x01, 0xf1, 0xe3, 0x7c, 0xec, 0xff, 0x2d,
-       0x05, 0xcb, 0x1c, 0xf4, 0xd0, 0xbc, 0xda, 0xcf, 0x0b, 0xa0, 0x05, 0xca,
-       0x15, 0x9f, 0x7e, 0x5f, 0x00, 0xfd, 0xee, 0x63, 0x0a, 0xdf, 0x1e, 0xb4,
-       0xe6, 0xd3, 0x18, 0xe9, 0x8b, 0xb4, 0xf5, 0x8a, 0xe2, 0xb9, 0x52, 0xfb,
-       0xdc, 0x29, 0xb3, 0x12, 0x4e, 0xdc, 0xf6, 0xcf, 0x9d, 0xcf, 0x7b, 0xe5,
-       0xb8, 0xfa, 0xfc, 0x91, 0xf9, 0x07, 0x9c, 0x6d, 0xda, 0x9c, 0x6d, 0xa6,
-       0xe3, 0x9b, 0x04, 0x7f, 0x3e, 0xfa, 0xfb, 0xd4, 0xaf, 0xbc, 0x0b, 0xe2,
-       0xf7, 0x12, 0xca, 0x44, 0x90, 0x72, 0x9a, 0x7c, 0x94, 0x8b, 0xf3, 0x3e,
-       0xe5, 0xa4, 0x04, 0xfa, 0x60, 0xb7, 0x8c, 0x86, 0xc4, 0xff, 0x2e, 0xa9,
-       0x4b, 0xb6, 0x9c, 0x56, 0xeb, 0x06, 0xef, 0x8d, 0x2b, 0x41, 0xd9, 0x50,
-       0x77, 0x9f, 0xe0, 0xd1, 0xde, 0xa0, 0x2c, 0xba, 0x6d, 0x3d, 0x27, 0x75,
-       0xf4, 0x59, 0x43, 0xdb, 0xb9, 0x36, 0x6c, 0xd4, 0x07, 0xb0, 0x21, 0xdd,
-       0xbf, 0x6f, 0x15, 0xa3, 0x77, 0xf4, 0x35, 0x32, 0x96, 0xb1, 0x47, 0xc6,
-       0xa7, 0x1d, 0xc9, 0xaf, 0x0f, 0xe0, 0x07, 0x19, 0xaf, 0xe4, 0x02, 0x63,
-       0x91, 0x8c, 0xe7, 0x96, 0xe0, 0x9f, 0x6a, 0x3f, 0x9f, 0xf6, 0xf6, 0x95,
-       0xcd, 0x44, 0xa9, 0x24, 0x6e, 0xfc, 0x91, 0xf6, 0x77, 0x3c, 0x7d, 0xa5,
-       0xb0, 0xd7, 0x19, 0xf3, 0x8d, 0xab, 0xfc, 0xd9, 0x1e, 0x2f, 0x11, 0x3b,
-       0x05, 0xdf, 0xf5, 0xeb, 0x69, 0xc6, 0x7a, 0xef, 0x23, 0xbe, 0xbf, 0xc4,
-       0x4d, 0xda, 0x23, 0xe3, 0xe2, 0x5e, 0x72, 0x47, 0x1f, 0x11, 0xfa, 0xa7,
-       0x89, 0xf8, 0x14, 0xf1, 0xd6, 0xfe, 0xbe, 0x20, 0x68, 0xec, 0xa5, 0x71,
-       0x19, 0xbe, 0xf4, 0x23, 0x15, 0x63, 0xff, 0x70, 0x7a, 0x37, 0x6d, 0xa8,
-       0x58, 0xf1, 0x78, 0xbf, 0x0c, 0x8f, 0xae, 0x89, 0x40, 0x5b, 0xf0, 0x7b,
-       0x03, 0x0b, 0x3e, 0xaa, 0x7a, 0x87, 0xbd, 0x1e, 0x57, 0xdf, 0x5c, 0x65,
-       0x55, 0xde, 0x23, 0x63, 0xc9, 0x3c, 0xd3, 0x88, 0xca, 0x85, 0x7b, 0x16,
-       0x67, 0x5b, 0x68, 0xf2, 0x7c, 0x19, 0x57, 0x66, 0xdc, 0x98, 0xb1, 0x65,
-       0xc6, 0x88, 0xf5, 0xf7, 0x53, 0x47, 0x9a, 0x7b, 0xc5, 0x91, 0x89, 0x8b,
-       0x51, 0xf3, 0x4d, 0x9a, 0x58, 0xdb, 0xd0, 0xbb, 0xf9, 0x9a, 0xa3, 0xee,
-       0xfd, 0x8a, 0x4e, 0xbf, 0x9c, 0x1c, 0xed, 0x06, 0xce, 0x07, 0x54, 0x3e,
-       0xa4, 0xed, 0xbe, 0x07, 0x7e, 0x25, 0xfd, 0x38, 0xea, 0x5b, 0x1f, 0xcf,
-       0x87, 0x50, 0xf7, 0x0b, 0xe0, 0x9e, 0x75, 0xf0, 0x39, 0x95, 0xee, 0xfd,
-       0xb4, 0x6c, 0x57, 0x98, 0x9f, 0x5d, 0x3f, 0x90, 0x53, 0xe7, 0xc1, 0x98,
-       0x8d, 0x2f, 0x9b, 0xfc, 0x5c, 0x35, 0xfa, 0xcc, 0x8e, 0xb9, 0xab, 0x66,
-       0xcc, 0x66, 0x40, 0x8a, 0xeb, 0x94, 0x3f, 0x96, 0x5a, 0xeb, 0x56, 0xe0,
-       0xad, 0x52, 0xaa, 0xef, 0x75, 0xef, 0xde, 0x6a, 0x3d, 0x93, 0x56, 0xbe,
-       0xec, 0xf9, 0x92, 0x39, 0x63, 0xfd, 0x1d, 0x64, 0x70, 0x27, 0x7f, 0x38,
-       0xaa, 0xe3, 0x09, 0xd9, 0x81, 0x5e, 0xfa, 0x0f, 0x7d, 0x1a, 0xbf, 0xf4,
-       0x7b, 0x7f, 0x65, 0x6c, 0x51, 0xfa, 0xbc, 0x03, 0x4a, 0x4f, 0xdb, 0x0d,
-       0x9f, 0x4e, 0x98, 0x73, 0x43, 0x7f, 0xf8, 0xa0, 0x64, 0xeb, 0x90, 0x9b,
-       0x83, 0x7c, 0x3f, 0x6b, 0xc6, 0xf2, 0xb9, 0x25, 0x47, 0x27, 0x76, 0xdf,
-       0xa7, 0x4f, 0x6a, 0x3f, 0xbb, 0xd7, 0xbf, 0x53, 0xf7, 0x73, 0x4d, 0x7d,
-       0x78, 0x15, 0x9c, 0xa0, 0x27, 0x1f, 0x06, 0xbd, 0xd6, 0x11, 0xc0, 0xcb,
-       0x18, 0xe4, 0x80, 0xcb, 0x5c, 0x9d, 0x80, 0x4c, 0x0c, 0x24, 0x98, 0xc3,
-       0xa7, 0xe0, 0x69, 0xd4, 0x43, 0x68, 0xf3, 0xe1, 0xd4, 0xfe, 0x79, 0xa3,
-       0xce, 0xf6, 0x38, 0xd6, 0xea, 0x96, 0x89, 0x41, 0xe2, 0x79, 0x37, 0x1c,
-       0x03, 0x81, 0xbd, 0x73, 0xd4, 0x1e, 0xec, 0x80, 0xef, 0xee, 0xef, 0x47,
-       0x73, 0xf0, 0xc3, 0x72, 0x2b, 0x8c, 0x15, 0x10, 0xc6, 0x01, 0xc8, 0x39,
-       0xec, 0x31, 0xed, 0xe7, 0x0e, 0xfb, 0x78, 0xf1, 0x63, 0x0c, 0x21, 0x45,
-       0x17, 0x73, 0x19, 0xee, 0x25, 0x64, 0x62, 0x0e, 0x84, 0x2b, 0x61, 0xf2,
-       0x0f, 0x09, 0x9f, 0x7d, 0x40, 0x9f, 0xff, 0xfd, 0x66, 0xbf, 0x7e, 0xce,
-       0x22, 0xe7, 0xba, 0x17, 0xe3, 0xbf, 0xd2, 0xc2, 0x5a, 0x34, 0xe8, 0xc0,
-       0xff, 0xbe, 0xaf, 0x7f, 0xaf, 0x9e, 0xab, 0xd7, 0xff, 0xa6, 0x2f, 0x66,
-       0xbe, 0xe3, 0x23, 0x9c, 0xe4, 0x2f, 0x1f, 0x87, 0x9c, 0x63, 0xc0, 0xdc,
-       0x23, 0x10, 0x86, 0x9e, 0x5d, 0x30, 0x24, 0xd2, 0x77, 0xca, 0xb8, 0x43,
-       0x1d, 0x7b, 0x27, 0xad, 0xf5, 0xc9, 0x42, 0xad, 0x57, 0xca, 0x35, 0xe6,
-       0x53, 0xf3, 0xfb, 0x32, 0xda, 0x59, 0xe4, 0x4b, 0x95, 0x37, 0x69, 0xf2,
-       0x15, 0x7d, 0xfe, 0xec, 0x43, 0x3f, 0xea, 0x10, 0x94, 0x75, 0x2d, 0x9f,
-       0xea, 0x72, 0x77, 0xce, 0xe2, 0x7c, 0x3b, 0x67, 0x51, 0xe7, 0x25, 0x15,
-       0xdb, 0x79, 0x22, 0xcc, 0x89, 0xeb, 0xcc, 0x41, 0x2a, 0xc9, 0xa3, 0x87,
-       0x7b, 0x24, 0xb9, 0xdc, 0x6b, 0x68, 0xf4, 0x3d, 0x66, 0x1d, 0xac, 0xb7,
-       0x34, 0x29, 0xc9, 0xa5, 0x3f, 0x86, 0x6f, 0xaf, 0xf2, 0x22, 0x3b, 0xf2,
-       0xdb, 0x87, 0xcd, 0xb7, 0x48, 0x59, 0x8b, 0xf9, 0x28, 0xf9, 0x25, 0x9c,
-       0xd7, 0xe1, 0xc4, 0x68, 0xdc, 0xe6, 0xb7, 0xb8, 0x27, 0x24, 0xb9, 0x3a,
-       0xa9, 0xbf, 0x89, 0x4b, 0xf3, 0x46, 0x3e, 0xa1, 0xec, 0xe9, 0xd4, 0x65,
-       0x3d, 0x9f, 0xbb, 0xc4, 0xf6, 0x14, 0x6c, 0x47, 0xb6, 0xe7, 0x63, 0x01,
-       0x75, 0x6b, 0x7f, 0x3f, 0xe8, 0xa9, 0xcb, 0xd8, 0x03, 0xcc, 0xe9, 0xe4,
-       0x78, 0xda, 0x1e, 0xa7, 0x71, 0x66, 0xf9, 0xb8, 0x2d, 0x1c, 0xa3, 0xe6,
-       0xc3, 0xb3, 0x7f, 0x47, 0x44, 0x5c, 0x8f, 0xcb, 0x7a, 0xd3, 0x05, 0x4f,
-       0xe8, 0x9c, 0xf8, 0x62, 0xdd, 0xcf, 0xe5, 0x7c, 0xb4, 0x9d, 0xcb, 0x49,
-       0x18, 0x0b, 0x95, 0xdd, 0xb4, 0x77, 0xc8, 0xe4, 0x54, 0xf6, 0xa8, 0xfb,
-       0xd9, 0x0e, 0xf9, 0x67, 0xfa, 0x3f, 0x73, 0x80, 0x77, 0xf7, 0x22, 0x6c,
-       0x1f, 0x34, 0xed, 0xb0, 0x8f, 0xa2, 0x51, 0xc5, 0x07, 0xc9, 0x86, 0xdf,
-       0xef, 0xfa, 0x01, 0x9d, 0x0b, 0x4a, 0x3c, 0x79, 0x06, 0xe6, 0x09, 0xf8,
-       0xb1, 0xac, 0x3b, 0x88, 0xb1, 0x3c, 0x27, 0x94, 0x8d, 0x83, 0x2a, 0xd7,
-       0x30, 0xe0, 0x4d, 0x99, 0x7b, 0xc1, 0x41, 0xb5, 0x96, 0xe3, 0x71, 0x7e,
-       0x5f, 0x36, 0xf4, 0x74, 0xac, 0xbf, 0x1b, 0x5e, 0xc6, 0xe0, 0xfc, 0xdc,
-       0x51, 0xb6, 0xf3, 0x7d, 0x77, 0x1f, 0x3f, 0x4f, 0x34, 0x6b, 0x05, 0xdb,
-       0x39, 0xf6, 0xc4, 0x25, 0xef, 0x96, 0x51, 0x5e, 0xf6, 0x00, 0x23, 0x9f,
-       0x51, 0x9a, 0x6f, 0x07, 0x82, 0x4b, 0xfc, 0xed, 0x9e, 0x27, 0x88, 0xb9,
-       0x7d, 0x9e, 0xdd, 0x3b, 0xa7, 0xb4, 0xcb, 0x3b, 0x6f, 0x6d, 0x57, 0x98,
-       0x27, 0x51, 0x92, 0x93, 0x99, 0x3e, 0x99, 0xab, 0xd9, 0xfc, 0xc6, 0x93,
-       0x31, 0x7a, 0xde, 0x83, 0xcb, 0xbc, 0x92, 0x71, 0x23, 0xc6, 0xe7, 0xee,
-       0x81, 0x6f, 0x4e, 0x7a, 0x1e, 0x91, 0xf5, 0xfa, 0x4c, 0x47, 0xfe, 0x6d,
-       0x97, 0xa1, 0xb3, 0x7f, 0x1d, 0x92, 0xde, 0x12, 0x7c, 0x32, 0x9f, 0xa7,
-       0x47, 0xa4, 0x50, 0xef, 0xbc, 0x3b, 0x63, 0xae, 0x4f, 0xe7, 0x37, 0xb4,
-       0x4a, 0x0f, 0xd6, 0x4a, 0xb4, 0xab, 0xa2, 0x8c, 0x4b, 0xb0, 0xdf, 0x7e,
-       0xa3, 0x6f, 0xe1, 0x08, 0xf5, 0xbe, 0xc5, 0x12, 0x97, 0xb0, 0x41, 0x47,
-       0xa8, 0x75, 0x52, 0x72, 0x34, 0x5a, 0x82, 0x8f, 0x3a, 0x62, 0xd6, 0x7d,
-       0x3b, 0xde, 0xd9, 0xf7, 0x80, 0x69, 0xbf, 0xd7, 0xbc, 0xf7, 0x9a, 0xf7,
-       0x00, 0xde, 0xeb, 0xad, 0x5a, 0x95, 0x73, 0xb2, 0xe4, 0xf7, 0x22, 0xbc,
-       0xdb, 0xf2, 0x24, 0x74, 0x59, 0xa0, 0xa7, 0x7a, 0xe5, 0xf1, 0xba, 0xc2,
-       0xaf, 0xe5, 0x2e, 0xd1, 0x20, 0xd8, 0x6f, 0x9e, 0xef, 0xe6, 0xc1, 0x4f,
-       0xde, 0x91, 0x37, 0x3c, 0xec, 0x98, 0xdc, 0xec, 0x0e, 0x78, 0xb3, 0x80,
-       0xf5, 0xd7, 0xe5, 0x41, 0x51, 0x47, 0x69, 0x5f, 0xb9, 0x50, 0xd1, 0xf9,
-       0x3e, 0x27, 0x2b, 0x80, 0xb5, 0xf6, 0x3f, 0x0e, 0xe8, 0xdc, 0x14, 0x3f,
-       0x9f, 0x91, 0xf9, 0xee, 0x23, 0x26, 0x27, 0x82, 0x63, 0x99, 0x57, 0xe9,
-       0xdf, 0x39, 0x76, 0xda, 0xaa, 0xd4, 0x45, 0xd4, 0x33, 0xfc, 0x6e, 0x25,
-       0x8d, 0xbe, 0x8b, 0x94, 0x35, 0xd0, 0x53, 0xbe, 0x2d, 0xf1, 0x39, 0xe5,
-       0x1f, 0x76, 0x7e, 0xf7, 0x73, 0x0e, 0xb0, 0xfe, 0x65, 0x93, 0x71, 0xe1,
-       0x1e, 0x09, 0x2c, 0xfb, 0x79, 0x50, 0x3c, 0x63, 0xda, 0x61, 0xfc, 0xb6,
-       0xfa, 0x77, 0x77, 0xc5, 0x8c, 0x7d, 0x5b, 0x81, 0x74, 0x3e, 0xe7, 0x30,
-       0xc7, 0xd4, 0xf1, 0xfc, 0x38, 0x33, 0x73, 0x6b, 0x68, 0x73, 0x1d, 0x14,
-       0x5b, 0xc5, 0x8d, 0xd8, 0x56, 0x92, 0xfe, 0xc3, 0xbf, 0x4b, 0xde, 0xf8,
-       0x47, 0xfc, 0x16, 0x46, 0xe7, 0x79, 0xab, 0x75, 0xa2, 0xda, 0x86, 0xe4,
-       0x37, 0xda, 0x69, 0xf0, 0xd5, 0xbe, 0x2d, 0x9d, 0xf3, 0x1d, 0xc1, 0x7b,
-       0x06, 0x74, 0x0c, 0x99, 0x2a, 0xfc, 0x1e, 0x9b, 0x7c, 0xc7, 0xef, 0xb1,
-       0x3d, 0x95, 0x6f, 0xb2, 0x6d, 0xbe, 0x2f, 0xba, 0xde, 0x0c, 0x8a, 0xbd,
-       0x34, 0xce, 0x6f, 0xd5, 0xf8, 0x6d, 0x23, 0x6c, 0xb5, 0x38, 0xda, 0x99,
-       0xc7, 0x36, 0xa4, 0xf2, 0x54, 0xca, 0xcd, 0x8f, 0xa0, 0xfc, 0x34, 0xfc,
-       0x75, 0x1d, 0x9f, 0x2f, 0x37, 0x99, 0xaf, 0xe2, 0xa8, 0x7b, 0xcf, 0xe4,
-       0x52, 0x01, 0xeb, 0xf9, 0xdf, 0x3e, 0x47, 0x51, 0x47, 0xf8, 0x4a, 0x86,
-       0x47, 0xfd, 0x5c, 0x84, 0x0d, 0x87, 0x3a, 0xa1, 0xd4, 0x8c, 0xa8, 0x1c,
-       0x17, 0x6d, 0x8f, 0xd0, 0xd6, 0x0b, 0xa3, 0x2f, 0xf7, 0xda, 0x4b, 0x7d,
-       0xd5, 0xa2, 0x4c, 0x4a, 0x61, 0x9d, 0x86, 0xca, 0x0f, 0x24, 0x9e, 0x5d,
-       0xa7, 0x48, 0x7f, 0x4d, 0xc9, 0xf8, 0xc4, 0xe8, 0xac, 0xe4, 0x9d, 0x10,
-       0x7c, 0xb1, 0xb2, 0xf2, 0x73, 0x5e, 0x80, 0x0d, 0x1d, 0xd9, 0x0a, 0x78,
-       0xdc, 0x1b, 0xd7, 0xa6, 0x1f, 0xa2, 0xf7, 0xa3, 0xef, 0x8e, 0xc4, 0x2a,
-       0xab, 0xef, 0xf5, 0x58, 0xcf, 0x7b, 0x01, 0xff, 0x7b, 0x6c, 0xe6, 0xef,
-       0xc3, 0x4f, 0x68, 0x4e, 0xc9, 0xd9, 0xca, 0x7e, 0xe6, 0xc6, 0xa7, 0xb7,
-       0x81, 0xb7, 0x93, 0xed, 0x7c, 0x7d, 0xe6, 0xb0, 0xf9, 0xba, 0x87, 0x67,
-       0xc5, 0x5c, 0x79, 0xd2, 0x19, 0xf3, 0xe5, 0x69, 0x87, 0x0d, 0xc9, 0xe3,
-       0x4d, 0x3f, 0x47, 0x7e, 0x2f, 0x3b, 0x9c, 0x34, 0xf8, 0x59, 0xf8, 0x86,
-       0x7e, 0x2e, 0x24, 0x73, 0x36, 0x5b, 0xad, 0x93, 0x69, 0xde, 0xc7, 0xce,
-       0x1c, 0x5d, 0xc3, 0x1e, 0xaf, 0xd5, 0x81, 0xc3, 0xe3, 0xac, 0x63, 0xee,
-       0x56, 0xb7, 0xe4, 0xc6, 0x55, 0xbc, 0xaf, 0x77, 0xcd, 0xdd, 0x2f, 0x57,
-       0x6b, 0x51, 0x95, 0x87, 0x56, 0x84, 0x9d, 0xdf, 0x90, 0xdb, 0x0e, 0xef,
-       0xa3, 0x8f, 0xa8, 0xf1, 0x3e, 0xbf, 0x73, 0x9d, 0xa8, 0x1c, 0x59, 0xd7,
-       0xf2, 0xe4, 0x54, 0x06, 0x76, 0xcb, 0x25, 0xb1, 0x3e, 0x9a, 0x19, 0x82,
-       0xef, 0xcd, 0xb5, 0x52, 0x18, 0x07, 0xda, 0x89, 0x91, 0xd7, 0x7f, 0xd1,
-       0x6a, 0x00, 0xde, 0xdb, 0x4d, 0xda, 0xeb, 0xb0, 0xa1, 0x66, 0x38, 0xc6,
-       0x13, 0xfb, 0x02, 0xfb, 0x0c, 0x80, 0xfe, 0x42, 0xfa, 0x7b, 0xb4, 0xca,
-       0x01, 0x69, 0x38, 0x6c, 0xe3, 0x73, 0x4c, 0x1a, 0x51, 0xdf, 0x4f, 0xf9,
-       0x21, 0xf0, 0x17, 0x57, 0x32, 0xc9, 0xbf, 0xc3, 0x67, 0x4e, 0xe9, 0x5c,
-       0xed, 0x18, 0x78, 0x28, 0x68, 0x6c, 0xb3, 0x20, 0xe6, 0xf8, 0xbe, 0xa3,
-       0x6d, 0x05, 0xde, 0xf1, 0x6b, 0x5b, 0x44, 0xeb, 0x18, 0xde, 0xfb, 0x05,
-       0xe1, 0x0b, 0xf8, 0x7c, 0x79, 0xc8, 0xd8, 0x14, 0x9d, 0xbe, 0x7c, 0x2a,
-       0x76, 0x91, 0xff, 0x0f, 0x62, 0xf3, 0x83, 0x32, 0x0b, 0x98, 0xcf, 0x9b,
-       0x7d, 0x3e, 0x92, 0x71, 0xe5, 0x56, 0x9d, 0x77, 0xf0, 0x07, 0x51, 0x32,
-       0xdf, 0x90, 0x30, 0x8f, 0x99, 0x9c, 0x4a, 0x0f, 0x7b, 0x3d, 0x21, 0x2f,
-       0xc3, 0xbe, 0x7e, 0xa5, 0x92, 0x4a, 0x1f, 0x51, 0x71, 0xe7, 0x44, 0xec,
-       0xaa, 0x8c, 0xc5, 0xe9, 0x03, 0x96, 0x9c, 0x44, 0xec, 0x16, 0xe8, 0xe1,
-       0x76, 0xe5, 0x50, 0x3f, 0xff, 0x27, 0x45, 0x03, 0xfa, 0xf0, 0xb6, 0xca,
-       0x81, 0x49, 0x30, 0x66, 0x82, 0xf7, 0x21, 0x93, 0x87, 0xc3, 0x75, 0xd8,
-       0x36, 0x24, 0x2f, 0x57, 0xda, 0xfa, 0x97, 0xeb, 0xe8, 0xdc, 0x36, 0xa5,
-       0x5f, 0x8f, 0xf6, 0x53, 0x0e, 0x71, 0x3d, 0x3d, 0x87, 0xdf, 0x87, 0x78,
-       0xf5, 0x63, 0x91, 0x8e, 0xfe, 0xbe, 0xc1, 0x62, 0xde, 0x0b, 0xf7, 0xfe,
-       0x13, 0x47, 0xdb, 0x40, 0x1c, 0x97, 0x72, 0x8e, 0xaa, 0xf9, 0x78, 0xdf,
-       0x3b, 0x24, 0x3f, 0x6e, 0xfa, 0xf3, 0x30, 0x1f, 0x87, 0x39, 0x3f, 0x94,
-       0x7d, 0x9d, 0x30, 0x68, 0xfd, 0xff, 0xb2, 0x8a, 0xeb, 0x4d, 0xa2, 0x3f,
-       0x75, 0x34, 0xe8, 0xa5, 0x1e, 0xd3, 0xff, 0xdf, 0xa1, 0x2d, 0xe3, 0xf8,
-       0x4c, 0x7c, 0x72, 0x1d, 0xd8, 0xf8, 0x0f, 0x38, 0xa6, 0xdd, 0xb7, 0x4b,
-       0x87, 0xc0, 0xaf, 0x27, 0xa4, 0xb1, 0x92, 0x8a, 0x3d, 0x2e, 0xfe, 0xbc,
-       0xad, 0x87, 0x79, 0x2f, 0x56, 0xc8, 0x8c, 0x39, 0x0b, 0x0a, 0x1e, 0xde,
-       0xdd, 0x26, 0x9c, 0xab, 0x58, 0xaf, 0xd1, 0xdc, 0x1d, 0x7b, 0x48, 0x64,
-       0xb7, 0x24, 0x95, 0xd6, 0x67, 0x33, 0x22, 0x5b, 0x38, 0x9b, 0x3f, 0x31,
-       0x67, 0xf3, 0x7e, 0xcc, 0xed, 0x5e, 0x18, 0x97, 0xd4, 0x85, 0x54, 0xfc,
-       0xbc, 0xf0, 0x8e, 0xf9, 0x00, 0xef, 0x98, 0xad, 0x47, 0x32, 0x71, 0xec,
-       0x37, 0x81, 0xfd, 0xa2, 0x6c, 0xf2, 0x99, 0xdf, 0xf7, 0xef, 0x23, 0x6f,
-       0x3f, 0x4c, 0x99, 0x49, 0x5c, 0x14, 0x54, 0x1b, 0xec, 0x93, 0xa7, 0x08,
-       0xd3, 0xbf, 0xe3, 0xf9, 0xa8, 0x58, 0xe8, 0xad, 0x26, 0xbf, 0x5b, 0xd5,
-       0xf0, 0xe5, 0x01, 0xdf, 0xbc, 0x86, 0x2f, 0x3e, 0xdb, 0xb6, 0x5d, 0x13,
-       0xb1, 0xb3, 0x42, 0x7b, 0x89, 0xf6, 0x0b, 0xed, 0xfa, 0xbf, 0xe9, 0xd7,
-       0xb1, 0x3d, 0xf8, 0xb1, 0x0f, 0x64, 0xdb, 0x7b, 0xef, 0x42, 0xdf, 0x6b,
-       0x19, 0x95, 0x63, 0xec, 0x4c, 0xc9, 0x7b, 0x25, 0xfb, 0x91, 0x44, 0x3c,
-       0x6b, 0xb9, 0xc6, 0x06, 0x44, 0x59, 0xe7, 0x33, 0x65, 0xae, 0x6b, 0x6c,
-       0x0b, 0x9e, 0x4d, 0x06, 0x6b, 0x29, 0xdc, 0xc2, 0x67, 0x1a, 0x02, 0xcd,
-       0x93, 0xd6, 0xde, 0x05, 0x1e, 0xd2, 0xff, 0x13, 0xe3, 0x2a, 0xf0, 0x58,
-       0x06, 0x1e, 0x4f, 0xdd, 0x65, 0x83, 0x85, 0xda, 0x36, 0xd8, 0xb6, 0x5a,
-       0xef, 0x26, 0x60, 0xca, 0x3b, 0xb4, 0xbf, 0xca, 0x6d, 0x5a, 0x21, 0x4c,
-       0xe3, 0xfc, 0x2e, 0x5b, 0xae, 0x67, 0x78, 0x1e, 0xb0, 0xc1, 0x30, 0xdf,
-       0xda, 0x0e, 0x2d, 0x61, 0xff, 0x8a, 0x7e, 0x41, 0xbb, 0x09, 0x27, 0x68,
-       0xf1, 0x2c, 0x38, 0x9f, 0x58, 0x37, 0x00, 0xcb, 0xb6, 0xa2, 0x03, 0x4d,
-       0x03, 0xdb, 0xf5, 0xde, 0x37, 0xa0, 0x01, 0xee, 0x93, 0xf4, 0xe7, 0xd3,
-       0x5e, 0xfb, 0xbb, 0x75, 0xf8, 0xb7, 0x25, 0xb9, 0xff, 0x90, 0x27, 0xb9,
-       0x0b, 0x2d, 0x59, 0x48, 0x8b, 0x35, 0x76, 0x88, 0x34, 0x49, 0x3b, 0x01,
-       0x36, 0x64, 0x8c, 0x38, 0xd6, 0xf6, 0xe0, 0xec, 0x57, 0xf7, 0xe3, 0xf7,
-       0x6f, 0xfa, 0x79, 0xbf, 0x94, 0xdb, 0xa0, 0xbc, 0x12, 0xeb, 0xbe, 0x43,
-       0xda, 0x3f, 0xbc, 0x1d, 0x05, 0xce, 0xd1, 0x9e, 0x7c, 0xa2, 0xcb, 0xc4,
-       0x51, 0xb5, 0x5e, 0x4e, 0x3e, 0x41, 0xbc, 0xa2, 0xfc, 0xea, 0x4f, 0x1c,
-       0x3f, 0x27, 0x49, 0xc7, 0x04, 0xc9, 0x17, 0x25, 0x99, 0xcf, 0x30, 0x27,
-       0xb4, 0x57, 0x8e, 0x40, 0xae, 0x4d, 0x55, 0x26, 0xe5, 0x0b, 0x95, 0x88,
-       0xb2, 0x1b, 0xfe, 0x2c, 0x9d, 0x8a, 0x8d, 0x5a, 0x2d, 0x79, 0x04, 0xf6,
-       0xcf, 0xec, 0x50, 0x97, 0xbc, 0x32, 0xae, 0xf3, 0x6f, 0x6f, 0x33, 0xb9,
-       0xce, 0x61, 0xce, 0x28, 0xf7, 0x03, 0xb9, 0x6f, 0xc1, 0x17, 0xb0, 0xba,
-       0x65, 0x36, 0x1a, 0x91, 0xe9, 0x34, 0xca, 0x37, 0xa7, 0xd5, 0x37, 0xa4,
-       0xd9, 0x68, 0xa7, 0x1c, 0x21, 0xcc, 0x2c, 0xdf, 0x62, 0xca, 0x9f, 0xf5,
-       0x77, 0xc0, 0x62, 0xcd, 0x67, 0x02, 0x6a, 0x7f, 0xe5, 0x3a, 0xe5, 0x1b,
-       0xc7, 0x40, 0x9e, 0x34, 0x79, 0x0f, 0x59, 0x92, 0x35, 0xc8, 0x97, 0x62,
-       0x4d, 0xac, 0x8d, 0x0c, 0x2c, 0x6a, 0x57, 0xdb, 0x9f, 0x45, 0xd0, 0xd7,
-       0x5c, 0x8d, 0xf2, 0x6f, 0x4a, 0xe5, 0x4e, 0xcf, 0xc1, 0xd6, 0x85, 0x4f,
-       0x3c, 0xdb, 0xed, 0x99, 0x7b, 0xce, 0x5e, 0xc6, 0x43, 0x3a, 0x65, 0x98,
-       0xff, 0x3f, 0x73, 0x0e, 0x0f, 0x48, 0x5f, 0x09, 0xe7, 0xe2, 0xdb, 0xdc,
-       0xc0, 0x29, 0xd6, 0xcc, 0xa9, 0x73, 0xf2, 0xcf, 0x84, 0xb2, 0xa7, 0x33,
-       0x67, 0xdb, 0xb7, 0x39, 0xc8, 0xb3, 0xd4, 0x17, 0x52, 0x0a, 0xc3, 0xa6,
-       0xed, 0xb9, 0x00, 0xdd, 0x5d, 0xf3, 0x40, 0x2b, 0x93, 0xd0, 0x87, 0x93,
-       0x52, 0x86, 0xed, 0xf6, 0xd1, 0xf4, 0x67, 0xc5, 0x7e, 0xea, 0xa0, 0xac,
-       0xd5, 0x7a, 0x80, 0x0f, 0xea, 0x85, 0x90, 0xf2, 0xaf, 0x6f, 0x1f, 0xa7,
-       0xbe, 0xa3, 0x2e, 0xd1, 0x67, 0xb1, 0x5d, 0xff, 0xc4, 0x80, 0xfe, 0x7e,
-       0x65, 0xbf, 0x6c, 0xd5, 0x7d, 0x5d, 0x08, 0xff, 0xb0, 0x16, 0x32, 0x7a,
-       0xb9, 0x17, 0xb2, 0xfb, 0xaf, 0x43, 0x0d, 0xe5, 0xab, 0x73, 0xff, 0xd4,
-       0x41, 0xea, 0xff, 0x70, 0xf4, 0x36, 0x5c, 0xee, 0xbd, 0x53, 0x07, 0x69,
-       0xbb, 0xc3, 0x39, 0xcc, 0xf5, 0x78, 0x1f, 0xc7, 0x3d, 0x46, 0x25, 0x74,
-       0xf1, 0x84, 0xd8, 0xf0, 0x5b, 0x02, 0x4b, 0xb4, 0xf5, 0xee, 0xf4, 0x5d,
-       0x02, 0x97, 0x6d, 0xf3, 0xad, 0xed, 0xb0, 0xb6, 0x65, 0x32, 0x28, 0x1b,
-       0xfe, 0xf7, 0xb7, 0xfc, 0xdd, 0xe1, 0xdb, 0x1d, 0x78, 0x03, 0x5d, 0x8a,
-       0xbf, 0xff, 0x0b, 0xc4, 0xbf, 0x6d, 0x24, 0x80, 0x4a, 0x00, 0x00, 0x00 };
-
-static const u32 bnx2_COM_b09FwData[(0x0/4) + 1] = { 0x0 };
-static const u32 bnx2_COM_b09FwRodata[(0x30/4) + 1] = {
-       0x80080100, 0x80080080, 0x80080000, 0x80080240, 0x08000ea4, 0x08000efc,
-       0x08000f40, 0x08000fd4, 0x08001018, 0x80080100, 0x80080080, 0x80080000,
-       0x00000000 };
-
-static struct fw_info bnx2_com_fw_09 = {
-       /* Firmware version: 4.6.15 */
-       .ver_major                      = 0x4,
-       .ver_minor                      = 0x6,
-       .ver_fix                        = 0xf,
-
-       .start_addr                     = 0x080000f8,
-
-       .text_addr                      = 0x08000000,
-       .text_len                       = 0x4a7c,
-       .text_index                     = 0x0,
-       .gz_text                        = bnx2_COM_b09FwText,
-       .gz_text_len                    = sizeof(bnx2_COM_b09FwText),
-
-       .data_addr                      = 0x00000000,
-       .data_len                       = 0x0,
-       .data_index                     = 0x0,
-       .data                           = bnx2_COM_b09FwData,
-
-       .sbss_addr                      = 0x08004ae0,
-       .sbss_len                       = 0x38,
-       .sbss_index                     = 0x0,
-
-       .bss_addr                       = 0x08004b18,
-       .bss_len                        = 0xc0,
-       .bss_index                      = 0x0,
-
-       .rodata_addr                    = 0x08004a7c,
-       .rodata_len                     = 0x30,
-       .rodata_index                   = 0x0,
-       .rodata                         = bnx2_COM_b09FwRodata,
-};
-
-static u8 bnx2_CP_b09FwText[] = {
-       0xa5, 0xbc, 0x0d, 0x74, 0x1c, 0xe5, 0x95, 0x26, 0xfc, 0x54, 0x75, 0xb7,
-       0xd4, 0x92, 0x5a, 0x52, 0x49, 0x6e, 0x8b, 0x36, 0x68, 0x70, 0xb5, 0x55,
-       0x2d, 0x0b, 0x4b, 0x40, 0xb5, 0x24, 0x3b, 0xed, 0x6c, 0x83, 0x3b, 0xb6,
-       0x6c, 0x64, 0x63, 0x40, 0x36, 0x06, 0xc4, 0xb7, 0xfe, 0x3e, 0x7a, 0xfc,
-       0x03, 0x86, 0x38, 0x19, 0x91, 0xcd, 0xce, 0x0a, 0xd6, 0x59, 0x55, 0xe4,
-       0x3f, 0xd9, 0x6e, 0x75, 0x4b, 0x42, 0xfe, 0xe1, 0xec, 0x9c, 0xa5, 0x2d,
-       0xcb, 0x96, 0x21, 0xad, 0x16, 0x24, 0x6c, 0xc6, 0x39, 0x27, 0x09, 0x1a,
-       0x63, 0x83, 0x0d, 0x18, 0xc8, 0x24, 0xf9, 0x86, 0xc9, 0xd9, 0x5d, 0x34,
-       0xc6, 0xfc, 0x19, 0x70, 0x1c, 0x92, 0xc9, 0x9a, 0x19, 0x4c, 0xed, 0x73,
-       0xab, 0xd5, 0xb6, 0xec, 0x30, 0xc9, 0xcc, 0x59, 0x9d, 0xd3, 0xa7, 0xab,
-       0xab, 0xde, 0x9f, 0xfb, 0xde, 0xf7, 0xde, 0xe7, 0x3e, 0xf7, 0x7d, 0xdf,
-       0x92, 0x0e, 0x14, 0x63, 0xf2, 0xaf, 0x94, 0x9f, 0x9b, 0x9a, 0x3b, 0xd6,
-       0xce, 0x0d, 0xdf, 0x34, 0x4f, 0x7e, 0xbb, 0xcb, 0x0b, 0xdc, 0xf8, 0xb2,
-       0xbf, 0x28, 0x22, 0x57, 0xdf, 0xd2, 0xbf, 0xb4, 0xe0, 0xbf, 0xf0, 0x17,
-       0x41, 0x50, 0xe1, 0x57, 0xfd, 0xe4, 0x4f, 0x17, 0xa0, 0xe5, 0xfb, 0x97,
-       0x0f, 0xbc, 0x6a, 0xd4, 0xb8, 0x77, 0xa1, 0x01, 0xaf, 0x2b, 0xba, 0xaa,
-       0x7d, 0xad, 0x01, 0xc4, 0x32, 0xf5, 0xfa, 0x22, 0x5c, 0xb4, 0x2d, 0xbf,
-       0x1b, 0x72, 0xff, 0xcf, 0xa2, 0x9f, 0x3f, 0xf5, 0x93, 0xaf, 0x04, 0xcf,
-       0xa7, 0x5d, 0xf0, 0x6a, 0x51, 0x0b, 0x5a, 0x2d, 0xbc, 0xd5, 0xac, 0xf3,
-       0x57, 0xb3, 0xb7, 0xa9, 0x28, 0xcb, 0xb7, 0x15, 0x0c, 0xa4, 0x11, 0xd4,
-       0x2c, 0x04, 0xeb, 0x2c, 0x20, 0xee, 0x8e, 0x22, 0x5e, 0x18, 0xf5, 0xa2,
-       0xc0, 0x28, 0x40, 0x5c, 0xeb, 0xd4, 0xb7, 0x34, 0x03, 0x0b, 0x13, 0x5e,
-       0xfd, 0x74, 0x06, 0x58, 0x9b, 0xf0, 0x62, 0xc2, 0xe5, 0xd3, 0xdf, 0xc9,
-       0x44, 0xca, 0x72, 0xfa, 0x88, 0xc1, 0x65, 0x20, 0xae, 0x46, 0xe5, 0x3e,
-       0xf4, 0x45, 0x19, 0xa9, 0x0b, 0x6c, 0x4b, 0x7d, 0x5b, 0x7f, 0x37, 0x11,
-       0xd4, 0xb6, 0xa1, 0x3e, 0x30, 0x84, 0x42, 0xc4, 0xfd, 0xc1, 0x3a, 0xe0,
-       0xf3, 0x8b, 0x3b, 0x53, 0x0a, 0x3c, 0xc6, 0x34, 0xb4, 0xec, 0x07, 0x76,
-       0xa4, 0x82, 0x31, 0x83, 0xc3, 0xeb, 0x19, 0x93, 0xba, 0x41, 0x2d, 0xcd,
-       0xe7, 0x5b, 0x52, 0xc0, 0xd6, 0xd4, 0x34, 0x6c, 0xeb, 0xb3, 0xf1, 0xa2,
-       0x59, 0xa3, 0x1d, 0x60, 0x0f, 0xdd, 0xce, 0xf3, 0x69, 0xb0, 0xd2, 0xf2,
-       0xfc, 0x03, 0xfb, 0x27, 0xb3, 0x35, 0x3c, 0x3b, 0xe6, 0xc7, 0x0b, 0x63,
-       0x15, 0xd8, 0xd1, 0x57, 0x81, 0xed, 0x7d, 0x75, 0x50, 0x0d, 0x1b, 0x75,
-       0xe1, 0x3a, 0x14, 0xcc, 0xb7, 0xf1, 0x8e, 0xd9, 0x80, 0xad, 0x6c, 0xf8,
-       0xcd, 0x86, 0x2a, 0xac, 0xd1, 0xaa, 0xb1, 0xc5, 0xf8, 0x0a, 0x72, 0x63,
-       0xfd, 0xfc, 0x62, 0x2a, 0x85, 0xb8, 0x27, 0xea, 0x56, 0x55, 0xe3, 0x56,
-       0x9c, 0xdb, 0x1d, 0xc5, 0x27, 0xbb, 0xb1, 0xba, 0x0c, 0xb6, 0x9d, 0x09,
-       0x87, 0xda, 0x36, 0x2a, 0x9a, 0xfe, 0x4c, 0x86, 0x02, 0xad, 0x74, 0xb3,
-       0x3d, 0xe8, 0x43, 0x99, 0xa9, 0x53, 0xc1, 0xfe, 0x52, 0xec, 0x37, 0x25,
-       0xb2, 0x04, 0xf0, 0x93, 0xd9, 0x7f, 0x41, 0x7b, 0xc8, 0x8d, 0x69, 0x6b,
-       0xea, 0x2d, 0xca, 0xa4, 0x53, 0x9e, 0x6a, 0xfc, 0x60, 0x2c, 0x80, 0xef,
-       0x53, 0xb6, 0xe7, 0xc6, 0x44, 0xc6, 0xe0, 0x3e, 0x0b, 0x15, 0x18, 0xee,
-       0xab, 0xc6, 0xb3, 0x46, 0x03, 0x9e, 0xa3, 0x8c, 0x9b, 0xcd, 0x3a, 0xac,
-       0x89, 0xdc, 0x4f, 0x79, 0x14, 0xac, 0x6c, 0xf8, 0xf3, 0x49, 0xb9, 0x82,
-       0x3a, 0x54, 0x15, 0xb1, 0xca, 0x60, 0x9d, 0xae, 0x4a, 0x9b, 0x97, 0xe5,
-       0xed, 0x4d, 0xc1, 0xf2, 0x46, 0x45, 0xe6, 0x5b, 0x91, 0xa1, 0xbc, 0xdf,
-       0xdb, 0x1d, 0x32, 0x37, 0xa8, 0x58, 0xee, 0xa3, 0xcc, 0x8f, 0x84, 0x43,
-       0x91, 0x39, 0x94, 0x79, 0x24, 0xa3, 0x72, 0x3c, 0x7e, 0xfd, 0x10, 0x65,
-       0x8f, 0xad, 0x54, 0x29, 0x3b, 0x65, 0x49, 0x51, 0x96, 0x14, 0x65, 0x49,
-       0x51, 0x16, 0x47, 0xee, 0x3a, 0xca, 0x9c, 0x9b, 0xa3, 0xa1, 0xcc, 0x04,
-       0xe5, 0x9d, 0x2a, 0x67, 0x35, 0x65, 0x47, 0xbc, 0x22, 0xfa, 0x6d, 0xbd,
-       0x26, 0x49, 0x7d, 0xa7, 0x6c, 0xfb, 0x4d, 0xd3, 0xb6, 0x3f, 0x35, 0x7d,
-       0xd4, 0x5f, 0x8a, 0x76, 0x90, 0x97, 0x67, 0xa6, 0x55, 0x10, 0x45, 0x0b,
-       0x4d, 0xd0, 0x3e, 0xde, 0x1c, 0x8a, 0x54, 0x2a, 0x2a, 0xdc, 0x86, 0xa6,
-       0xcf, 0xce, 0x06, 0x4d, 0xea, 0x47, 0x0f, 0x65, 0xa1, 0x1b, 0x59, 0xb6,
-       0x75, 0x45, 0xbf, 0x41, 0x6d, 0x1c, 0xd2, 0xaf, 0xce, 0xfe, 0x27, 0x26,
-       0xe7, 0x4e, 0xda, 0x0f, 0xb0, 0x4f, 0xe9, 0x5f, 0xda, 0xb6, 0xed, 0xdf,
-       0x98, 0x30, 0x34, 0x84, 0xac, 0x7e, 0xda, 0x9f, 0x2b, 0xaa, 0xe9, 0x1d,
-       0x19, 0x3e, 0xbf, 0xd4, 0x46, 0x6e, 0x3e, 0xd6, 0x64, 0xf4, 0xc9, 0x31,
-       0x04, 0x29, 0x82, 0xd8, 0x41, 0x20, 0xee, 0x8b, 0x6a, 0x22, 0x7b, 0xdb,
-       0xbe, 0xde, 0x2e, 0x7b, 0x86, 0x21, 0xba, 0x32, 0x3a, 0x67, 0xb8, 0x7c,
-       0x91, 0x73, 0x73, 0x1f, 0xb5, 0x4a, 0x9b, 0xc3, 0x28, 0x36, 0xe0, 0x2b,
-       0x32, 0xd0, 0x96, 0x1c, 0x2d, 0xb6, 0x4a, 0xa2, 0x3f, 0xbe, 0xbb, 0x77,
-       0xd4, 0x8b, 0xe2, 0x51, 0x03, 0x45, 0xa3, 0x4f, 0xbb, 0x51, 0xd6, 0x80,
-       0x5d, 0x63, 0x0f, 0xb9, 0x73, 0x63, 0x5b, 0x32, 0x39, 0x46, 0xc7, 0xf6,
-       0xbd, 0xef, 0x26, 0xce, 0xdb, 0x05, 0x46, 0xd1, 0x7d, 0xae, 0xa8, 0xa1,
-       0x1f, 0x02, 0xce, 0xaf, 0x69, 0x5e, 0x84, 0x6e, 0x4d, 0xc1, 0x4c, 0xe3,
-       0x95, 0x12, 0x94, 0x45, 0x60, 0x8d, 0x55, 0xc5, 0x0b, 0xa2, 0xfe, 0x38,
-       0xe7, 0x06, 0x2f, 0x27, 0xd2, 0xf0, 0xf4, 0xda, 0xb6, 0x94, 0x7d, 0x07,
-       0x77, 0xdf, 0xad, 0x46, 0x8f, 0xde, 0xec, 0x41, 0x0b, 0xcb, 0x63, 0xd3,
-       0x89, 0xe6, 0x4f, 0x15, 0x75, 0x77, 0x1b, 0xac, 0x11, 0x17, 0x62, 0x5a,
-       0x9c, 0xdf, 0xd7, 0x5f, 0xbf, 0x3c, 0xd2, 0x86, 0xc4, 0xc8, 0x05, 0xde,
-       0x77, 0xf3, 0x5e, 0x04, 0xc9, 0xd4, 0xf5, 0xd7, 0xdf, 0x11, 0x89, 0xa3,
-       0x77, 0x44, 0xae, 0xdd, 0x18, 0xaf, 0x88, 0x63, 0xfb, 0x5e, 0x1d, 0xe5,
-       0x46, 0x1b, 0x52, 0x23, 0x72, 0x6d, 0xdb, 0x67, 0xcc, 0xef, 0x62, 0x5f,
-       0x03, 0xfd, 0xff, 0x9a, 0x36, 0x6c, 0xdb, 0x6b, 0xa1, 0xd0, 0xb0, 0xa8,
-       0x7b, 0xc5, 0xfd, 0xf7, 0x0d, 0x0a, 0xf4, 0xbb, 0xe1, 0x2e, 0x30, 0x44,
-       0x6f, 0x11, 0xf7, 0xfa, 0x44, 0x54, 0x9b, 0x69, 0xd8, 0xf6, 0x90, 0x39,
-       0x07, 0x0f, 0xb4, 0xad, 0x81, 0x75, 0xc0, 0x07, 0x6b, 0x95, 0x7c, 0xb7,
-       0x51, 0x87, 0x6b, 0xd0, 0x7d, 0x60, 0x0d, 0x7a, 0x9e, 0xa0, 0xe3, 0x56,
-       0x68, 0xce, 0x3c, 0xfd, 0x64, 0xb6, 0xc8, 0x24, 0xf2, 0xb5, 0xf3, 0x23,
-       0xba, 0xfd, 0x4b, 0x7e, 0x4b, 0x99, 0x0b, 0x36, 0xa6, 0x5f, 0x2e, 0xb3,
-       0x9d, 0x65, 0xb6, 0x5d, 0x51, 0x26, 0x82, 0xa7, 0xc6, 0x44, 0x17, 0xa2,
-       0xb2, 0x3f, 0xa5, 0x8b, 0x9f, 0xda, 0xdd, 0x7e, 0xd1, 0x85, 0xd5, 0xee,
-       0x41, 0xb0, 0xed, 0x41, 0xc5, 0x8d, 0xa5, 0xbd, 0x60, 0x1d, 0x3a, 0x41,
-       0x71, 0x30, 0x56, 0xab, 0x44, 0x51, 0xdc, 0xab, 0x60, 0x69, 0xb8, 0x08,
-       0x7a, 0x85, 0xb4, 0xf7, 0x4b, 0xdb, 0xd2, 0x44, 0xde, 0x13, 0x28, 0xe1,
-       0xfd, 0x75, 0xe1, 0x9f, 0x13, 0xcf, 0x44, 0xa6, 0x30, 0xcb, 0xaf, 0xe0,
-       0xfd, 0x37, 0xa6, 0xfc, 0x96, 0x72, 0xb6, 0xbd, 0x99, 0x3e, 0xdf, 0x43,
-       0x1b, 0xdf, 0x9e, 0x8a, 0x05, 0xa9, 0x25, 0xcb, 0x13, 0xe5, 0xfd, 0x68,
-       0xa8, 0xb5, 0x1b, 0xd2, 0x0f, 0x94, 0xe2, 0x28, 0xdc, 0x99, 0xe6, 0x09,
-       0xef, 0xa9, 0x84, 0xd1, 0xfe, 0x8c, 0xe2, 0xa1, 0xb1, 0x4b, 0x3f, 0x13,
-       0xde, 0x37, 0x12, 0x0a, 0xde, 0x37, 0x42, 0x1d, 0x67, 0x95, 0x09, 0xef,
-       0xeb, 0x19, 0x0d, 0x33, 0x7a, 0x83, 0xed, 0x96, 0x12, 0xc1, 0x8f, 0x32,
-       0x7e, 0x04, 0x7a, 0xa3, 0x38, 0x92, 0x31, 0xf1, 0xf4, 0x15, 0x38, 0xf0,
-       0xa5, 0x7f, 0x96, 0x8b, 0x63, 0x5f, 0x97, 0xd0, 0xd1, 0x6d, 0x5e, 0xb4,
-       0x63, 0x1a, 0xe2, 0xe5, 0xd1, 0x09, 0xef, 0x27, 0xbd, 0x50, 0xca, 0xa2,
-       0x46, 0x20, 0xab, 0xfc, 0x83, 0x1d, 0xf7, 0x4b, 0x31, 0xca, 0xe7, 0x60,
-       0x59, 0x94, 0x76, 0x47, 0x8c, 0x4a, 0x9d, 0xb7, 0x4b, 0x68, 0xb3, 0x05,
-       0xd1, 0x6b, 0x31, 0x32, 0x68, 0xe0, 0xe9, 0x84, 0x6d, 0x7f, 0x6c, 0x8e,
-       0x47, 0x7c, 0x30, 0xda, 0x3e, 0x42, 0x30, 0x36, 0x87, 0x7a, 0x39, 0x91,
-       0x31, 0x30, 0x9c, 0x88, 0xe2, 0xc5, 0x44, 0x8d, 0xb6, 0x19, 0x4d, 0x88,
-       0x05, 0x72, 0x31, 0x64, 0x94, 0x72, 0x0f, 0x85, 0xda, 0x50, 0x1e, 0x8d,
-       0xe0, 0x28, 0xe5, 0x3e, 0x37, 0x57, 0xda, 0x31, 0xf1, 0xfa, 0xbf, 0x42,
-       0x56, 0xe2, 0x3b, 0x9e, 0xa4, 0xac, 0x91, 0xa6, 0x8b, 0x36, 0xa6, 0x79,
-       0x71, 0xda, 0xbc, 0x86, 0x76, 0x08, 0xab, 0x28, 0xea, 0x75, 0xf7, 0x24,
-       0x34, 0x1c, 0xce, 0xf8, 0xdc, 0x9b, 0x13, 0x7e, 0x1c, 0xa0, 0xbf, 0xcd,
-       0x88, 0xc2, 0x0a, 0xb0, 0xdd, 0x19, 0xc4, 0xb5, 0xec, 0x60, 0x35, 0xc6,
-       0x06, 0x83, 0xe6, 0x1b, 0x4a, 0x00, 0x87, 0x86, 0xaf, 0xc5, 0xe8, 0xa0,
-       0x82, 0x91, 0x10, 0x65, 0xe7, 0xf5, 0xf7, 0x06, 0xaf, 0x47, 0x66, 0xd0,
-       0x85, 0x5d, 0x8e, 0x5e, 0x1d, 0x9c, 0x99, 0xfc, 0xbe, 0x16, 0xe9, 0x61,
-       0xb8, 0xe7, 0xf4, 0x6a, 0x78, 0x26, 0xe3, 0x76, 0x1b, 0xbd, 0x7e, 0x0c,
-       0x67, 0x7e, 0xca, 0x79, 0x93, 0xb6, 0x75, 0x0c, 0x25, 0x0e, 0x39, 0x73,
-       0x58, 0x1e, 0x65, 0x63, 0xb9, 0xf8, 0xca, 0x58, 0xa6, 0x33, 0xce, 0x34,
-       0x13, 0x87, 0xc4, 0xc7, 0xbd, 0xc4, 0x20, 0xf1, 0xf1, 0xb7, 0x14, 0x94,
-       0x35, 0x63, 0xf3, 0x58, 0xfe, 0xb9, 0x42, 0xfb, 0x77, 0x63, 0x9d, 0xd6,
-       0x80, 0x44, 0x4a, 0xec, 0x34, 0x8f, 0xcb, 0x72, 0x2d, 0xf3, 0x5f, 0x0c,
-       0xeb, 0x60, 0x31, 0x76, 0xd1, 0xc7, 0x76, 0xee, 0x96, 0xfb, 0xb6, 0xfd,
-       0x50, 0xb8, 0x9c, 0x36, 0x86, 0xc5, 0x45, 0x08, 0x99, 0x1f, 0x38, 0xb2,
-       0x59, 0x38, 0x94, 0x91, 0x18, 0xaa, 0x33, 0xbe, 0x9d, 0x60, 0x5f, 0xcd,
-       0xec, 0xc7, 0xc4, 0x4f, 0x39, 0x37, 0x7f, 0x3d, 0x56, 0x87, 0x1f, 0x8e,
-       0x19, 0xf8, 0xef, 0x63, 0x3a, 0x9e, 0xbf, 0x02, 0xd7, 0xef, 0xa6, 0xae,
-       0x04, 0xc3, 0x1a, 0xb0, 0x25, 0x55, 0x80, 0x6d, 0x83, 0xc5, 0xd8, 0x3c,
-       0x58, 0x53, 0xf7, 0x22, 0xf1, 0xf8, 0x87, 0xe6, 0x1d, 0x18, 0xaf, 0x6c,
-       0x76, 0x7c, 0x66, 0x07, 0xef, 0xef, 0x1c, 0xac, 0xe1, 0x1c, 0xda, 0xb6,
-       0x1a, 0xae, 0x8f, 0x1c, 0x25, 0xbe, 0x4f, 0xf8, 0x83, 0xfa, 0xb8, 0x1a,
-       0xd4, 0x63, 0xf0, 0x20, 0xd1, 0xa0, 0xc2, 0x9a, 0x1e, 0x4c, 0xd3, 0x8b,
-       0xe1, 0x37, 0x1e, 0xe2, 0xd8, 0x82, 0xba, 0xa5, 0x36, 0xd0, 0x7e, 0x19,
-       0x33, 0x54, 0x93, 0xf8, 0x52, 0x8c, 0x4f, 0x06, 0x83, 0x3d, 0x96, 0xba,
-       0x02, 0x56, 0xa5, 0x6d, 0x7f, 0x3f, 0x8c, 0x8e, 0x6b, 0xa2, 0x88, 0x4d,
-       0x67, 0x2c, 0xb8, 0x3e, 0x1a, 0x05, 0xe3, 0x18, 0xce, 0xf5, 0x1a, 0x81,
-       0xbf, 0x53, 0xee, 0xc6, 0x7f, 0x6c, 0x0b, 0xea, 0xba, 0x5a, 0x6f, 0x1d,
-       0x50, 0x49, 0x36, 0xaa, 0xa0, 0x07, 0xa2, 0xcb, 0xd0, 0xe9, 0xf0, 0x04,
-       0x05, 0x9a, 0x61, 0x62, 0x73, 0x8a, 0x95, 0xfc, 0x35, 0xed, 0xfd, 0x6a,
-       0xcd, 0x05, 0x53, 0x0d, 0x9e, 0x68, 0x53, 0x89, 0xb7, 0x4d, 0xe7, 0x6c,
-       0xbd, 0xca, 0xb6, 0x1b, 0x9b, 0xa4, 0x4f, 0x1d, 0x95, 0x9c, 0xe7, 0x0a,
-       0xce, 0x73, 0x63, 0xb6, 0x18, 0x67, 0x07, 0x61, 0x5d, 0x13, 0x0d, 0xb6,
-       0x3e, 0xa2, 0x16, 0xe3, 0xc3, 0xe1, 0x62, 0xbc, 0x33, 0xe8, 0xc6, 0x07,
-       0x83, 0xb6, 0xbd, 0xde, 0x2c, 0x47, 0x41, 0x18, 0xd3, 0x0b, 0x10, 0x3a,
-       0x3f, 0x04, 0x0b, 0x5f, 0xb0, 0xec, 0xef, 0x06, 0x03, 0xf8, 0xc7, 0xc1,
-       0xaf, 0xe2, 0xf9, 0xca, 0xd8, 0xc9, 0x69, 0x8c, 0x91, 0x17, 0x68, 0x3f,
-       0xe7, 0x12, 0xc1, 0xf6, 0x19, 0xae, 0x60, 0x27, 0x79, 0xcb, 0x86, 0xc7,
-       0x94, 0x60, 0xfc, 0x0d, 0x25, 0xa8, 0xf7, 0x2a, 0x7e, 0x7c, 0x44, 0x3b,
-       0x3d, 0x93, 0xa9, 0x89, 0xfc, 0x9c, 0xfd, 0xff, 0xde, 0xfc, 0xa1, 0x3d,
-       0x5e, 0x25, 0x3a, 0x14, 0x7d, 0x51, 0xe7, 0x29, 0xea, 0x9c, 0xfe, 0xfb,
-       0xc3, 0x14, 0x75, 0x4e, 0x79, 0x9e, 0xff, 0x83, 0xf8, 0x25, 0xf3, 0x15,
-       0xe1, 0x3c, 0x5e, 0x87, 0xff, 0xe2, 0x8c, 0xed, 0xa4, 0xfd, 0x9f, 0xfc,
-       0x32, 0xbe, 0xcf, 0xfd, 0x39, 0x0c, 0x92, 0x71, 0x9e, 0xb0, 0xe3, 0x9a,
-       0x8c, 0x51, 0xc6, 0xea, 0xe8, 0x52, 0xef, 0x50, 0x1e, 0x55, 0x51, 0x6c,
-       0xdb, 0x4f, 0x98, 0x93, 0xcf, 0xfd, 0xf9, 0xb1, 0x7e, 0x95, 0xf7, 0x65,
-       0xbc, 0x67, 0x5d, 0xa2, 0x7b, 0x5d, 0xbd, 0x89, 0xbf, 0x83, 0x56, 0x0c,
-       0xa7, 0x0b, 0xf9, 0xbb, 0x2e, 0x76, 0xe9, 0xf7, 0x93, 0xa5, 0x57, 0x3e,
-       0xa7, 0x9d, 0x3a, 0xfd, 0xdd, 0xcd, 0xdf, 0x32, 0x96, 0x37, 0x69, 0x37,
-       0x5f, 0x66, 0x27, 0x62, 0x23, 0x75, 0xb4, 0xa7, 0x33, 0x12, 0x57, 0x2c,
-       0x7f, 0xd4, 0x6b, 0xa9, 0x51, 0xe8, 0x74, 0x7d, 0xaf, 0x12, 0xed, 0x80,
-       0x9e, 0xb1, 0x70, 0x4f, 0xb3, 0x0b, 0xdf, 0x6a, 0x56, 0x30, 0xcd, 0xe8,
-       0x40, 0xdf, 0x3c, 0xcb, 0xae, 0x30, 0xf6, 0xab, 0xe2, 0x03, 0x05, 0x49,
-       0x58, 0xf4, 0x3b, 0x44, 0xc8, 0x95, 0xca, 0xff, 0x9d, 0x82, 0xd3, 0xe1,
-       0x10, 0x6d, 0x6e, 0x0b, 0x39, 0x15, 0x50, 0x98, 0x84, 0xb7, 0x94, 0xf3,
-       0x3f, 0xda, 0x0b, 0x6f, 0x31, 0x7d, 0x7f, 0x59, 0x6f, 0x4d, 0xc7, 0x7b,
-       0xc4, 0x8a, 0xac, 0x12, 0x6c, 0xa7, 0xbe, 0xcd, 0x32, 0x25, 0xd8, 0x7a,
-       0x3b, 0xf5, 0x5d, 0xab, 0x48, 0x3f, 0x51, 0xd4, 0x65, 0xb6, 0x10, 0x73,
-       0xe4, 0x3a, 0x02, 0x23, 0xf3, 0xab, 0x49, 0xd9, 0xe1, 0xf5, 0x50, 0x86,
-       0x83, 0x89, 0x77, 0xed, 0xb4, 0x16, 0xd4, 0xd3, 0xce, 0xef, 0x0d, 0xfc,
-       0x0d, 0x6f, 0x41, 0x74, 0x23, 0x5e, 0x4a, 0x3c, 0xe5, 0xcf, 0x97, 0xcb,
-       0xc9, 0x7a, 0xb5, 0x3c, 0xff, 0xd3, 0x8e, 0xf9, 0x73, 0xf2, 0xf8, 0x92,
-       0x5b, 0x40, 0x8e, 0xe2, 0x2d, 0x64, 0x5f, 0xef, 0x3b, 0xf5, 0x23, 0xac,
-       0x5f, 0xd3, 0xde, 0xab, 0x04, 0xeb, 0x3e, 0x42, 0xbd, 0xfe, 0x3d, 0x04,
-       0x5b, 0x8f, 0x92, 0x5b, 0x1a, 0x93, 0xf2, 0x84, 0x32, 0x0e, 0x9f, 0x71,
-       0xe4, 0x99, 0x95, 0x81, 0xe2, 0xea, 0x85, 0x6f, 0xa6, 0x51, 0x8b, 0x2e,
-       0x67, 0x4e, 0xa1, 0x04, 0x7a, 0x75, 0x94, 0x91, 0xbf, 0x04, 0x46, 0x81,
-       0xb1, 0x01, 0x72, 0xb9, 0x70, 0x0d, 0xbe, 0xc9, 0x58, 0x30, 0x83, 0x65,
-       0x1e, 0xd3, 0x2e, 0xe1, 0x97, 0xd2, 0x93, 0x20, 0xc0, 0x4c, 0xcf, 0xf1,
-       0xb2, 0xf8, 0xbd, 0x88, 0xc9, 0xbd, 0x27, 0x13, 0x50, 0x52, 0x89, 0xe0,
-       0x3e, 0xc0, 0x18, 0x0f, 0xbb, 0x62, 0x0f, 0x07, 0xd0, 0x85, 0x73, 0xe1,
-       0x50, 0x3c, 0xab, 0x84, 0xda, 0x07, 0x14, 0xd3, 0xbb, 0x8b, 0xfd, 0x6d,
-       0x67, 0x99, 0x1d, 0xfc, 0x9c, 0x35, 0x0c, 0x73, 0x85, 0x12, 0xbb, 0xa1,
-       0x80, 0x65, 0x6a, 0xc2, 0x21, 0xf2, 0xcc, 0xd0, 0x85, 0x95, 0x30, 0xbd,
-       0x4f, 0x65, 0xa4, 0xad, 0x88, 0xb2, 0x25, 0xfb, 0xa4, 0x9a, 0xc3, 0xa3,
-       0xdf, 0x4f, 0xea, 0xec, 0x1d, 0xf9, 0xed, 0xf4, 0xed, 0xee, 0xfd, 0xaf,
-       0x85, 0x7f, 0x78, 0xef, 0xaf, 0xa7, 0x5d, 0x79, 0xaf, 0x5e, 0x1b, 0xa6,
-       0xff, 0xb9, 0x8c, 0x22, 0xce, 0x9d, 0xf0, 0xa3, 0x58, 0x9d, 0x07, 0x72,
-       0xcf, 0x85, 0xb4, 0x3b, 0x16, 0x70, 0xe1, 0x73, 0x3b, 0xb6, 0x4a, 0xee,
-       0x15, 0x23, 0xde, 0x56, 0x1f, 0x70, 0xa3, 0x3e, 0xb2, 0x95, 0x58, 0x30,
-       0xb1, 0x6a, 0x21, 0x9f, 0x85, 0xcc, 0x17, 0x51, 0xa3, 0x6f, 0x85, 0x5c,
-       0x7f, 0x46, 0x9b, 0x5d, 0x28, 0x75, 0x59, 0x26, 0xc7, 0x7d, 0x04, 0x6b,
-       0xb6, 0x98, 0x36, 0x5e, 0x22, 0x4c, 0x14, 0x46, 0x8f, 0x28, 0xa7, 0x13,
-       0x5f, 0xd8, 0x31, 0x37, 0x96, 0xd3, 0x2f, 0x4d, 0xea, 0x59, 0xf7, 0x46,
-       0x43, 0xfa, 0x09, 0x66, 0x0a, 0xae, 0xa8, 0xa5, 0x4c, 0x64, 0xb6, 0x28,
-       0xef, 0x66, 0x7a, 0x94, 0x33, 0x19, 0xa9, 0x7b, 0x44, 0x79, 0x27, 0x23,
-       0xf1, 0xb0, 0x5a, 0x3f, 0x4e, 0x7e, 0x43, 0x4e, 0xa5, 0x6e, 0x36, 0xa1,
-       0x6c, 0x33, 0xcb, 0xc8, 0xf3, 0x8d, 0xba, 0x21, 0xca, 0x7b, 0xb0, 0x19,
-       0xe6, 0x76, 0xd3, 0x83, 0x09, 0x0d, 0xbe, 0xcd, 0xa6, 0x5b, 0x7e, 0x33,
-       0x1f, 0x90, 0xba, 0xd5, 0xfa, 0xd6, 0xcc, 0x45, 0xfa, 0x57, 0xee, 0xf7,
-       0xc1, 0xe6, 0xfc, 0xbd, 0xdf, 0xda, 0xe3, 0xab, 0x54, 0xfe, 0xfe, 0x77,
-       0x2e, 0x0e, 0x85, 0x75, 0xa7, 0xf2, 0x73, 0xe1, 0x52, 0x2a, 0xf9, 0x63,
-       0x05, 0x2c, 0x2d, 0x68, 0xa5, 0x99, 0x0e, 0x6d, 0x4e, 0x35, 0xd2, 0xdf,
-       0x02, 0x8c, 0x95, 0x51, 0xe2, 0x3b, 0x79, 0x2f, 0xfb, 0x2c, 0x30, 0x7c,
-       0x58, 0x9c, 0xa8, 0x71, 0xe5, 0xf4, 0xa7, 0x12, 0xc3, 0x5c, 0x8c, 0xe9,
-       0xc2, 0xf1, 0xae, 0xe6, 0xdc, 0xd5, 0xfa, 0x07, 0x94, 0xbb, 0xc8, 0x30,
-       0xea, 0x8a, 0x94, 0x6a, 0xfd, 0xdd, 0x4c, 0x94, 0x3e, 0xde, 0xce, 0x7e,
-       0x7d, 0x78, 0x37, 0x51, 0xc6, 0x1c, 0x24, 0x18, 0xb3, 0xd8, 0xe0, 0x92,
-       0xe6, 0x00, 0xc8, 0xf9, 0xa6, 0xfc, 0xb5, 0x81, 0xf1, 0x5f, 0x62, 0xb4,
-       0x7a, 0xdb, 0xdc, 0x08, 0x36, 0x64, 0xe0, 0x5e, 0xd7, 0x1c, 0xc5, 0x7a,
-       0xc6, 0xf6, 0x87, 0x18, 0x2f, 0x37, 0x32, 0x16, 0xee, 0x0a, 0x73, 0x6c,
-       0x15, 0xb6, 0x5d, 0x68, 0x74, 0x49, 0x3e, 0x83, 0x5e, 0xc6, 0xe2, 0xb5,
-       0x8c, 0x2f, 0x5b, 0x78, 0x7d, 0x2a, 0xf3, 0xcf, 0xf6, 0x43, 0xcc, 0xa7,
-       0x5e, 0xba, 0xa2, 0x4d, 0xa8, 0xc3, 0x46, 0x7d, 0xdd, 0x56, 0xc6, 0x62,
-       0xb6, 0x6b, 0x95, 0x45, 0x6d, 0xfb, 0x86, 0x50, 0x30, 0xe6, 0x51, 0x4c,
-       0xbc, 0x38, 0x3a, 0x61, 0xeb, 0xd3, 0x25, 0x97, 0xca, 0xc7, 0x41, 0x19,
-       0xab, 0xe4, 0x08, 0x82, 0x0f, 0x92, 0x27, 0x4c, 0xc5, 0x08, 0x15, 0x4b,
-       0x06, 0x25, 0x4f, 0x08, 0x60, 0x65, 0xe2, 0xbb, 0x78, 0xb1, 0xc1, 0x8d,
-       0x56, 0xe6, 0x58, 0xb7, 0x25, 0x7c, 0x58, 0x41, 0x2c, 0x5d, 0x9a, 0x60,
-       0xee, 0xa4, 0xf9, 0xb1, 0x2c, 0xe1, 0xc6, 0xb1, 0x06, 0xe6, 0x40, 0xfe,
-       0x42, 0x7c, 0x64, 0xba, 0x70, 0xdc, 0xd4, 0x90, 0x76, 0xfc, 0x61, 0x17,
-       0x31, 0x90, 0x7a, 0x54, 0x25, 0x77, 0x10, 0x1d, 0xba, 0xa8, 0x4f, 0x15,
-       0xf1, 0x4b, 0x3a, 0xfc, 0xb2, 0x5c, 0x40, 0xe4, 0x92, 0x7c, 0xe0, 0x37,
-       0x76, 0x7c, 0xba, 0xd4, 0x87, 0xe5, 0x8b, 0xca, 0x38, 0x84, 0xdf, 0x12,
-       0x27, 0x47, 0x4d, 0x72, 0xbb, 0xa9, 0x43, 0x3d, 0x4f, 0x6e, 0x5d, 0x8e,
-       0xb7, 0x0c, 0xe1, 0xd6, 0x6f, 0x42, 0xa3, 0xef, 0xf6, 0x8c, 0x86, 0x3a,
-       0xce, 0x2b, 0x2e, 0x9c, 0x32, 0xca, 0xc8, 0xfb, 0x38, 0x0f, 0xa3, 0x70,
-       0x6f, 0x9d, 0x6b, 0x22, 0x39, 0xda, 0x1d, 0x29, 0xe5, 0x78, 0xdd, 0x73,
-       0x73, 0x9c, 0xe8, 0xeb, 0xd4, 0xed, 0x9a, 0xb0, 0xc3, 0x89, 0x72, 0x7c,
-       0x40, 0xb3, 0xed, 0x77, 0x0c, 0xd1, 0x33, 0x70, 0x78, 0x52, 0xc7, 0x07,
-       0x79, 0xdd, 0x33, 0xa9, 0xe3, 0x2d, 0x6c, 0x8f, 0xfe, 0x87, 0x6d, 0x57,
-       0xf0, 0x18, 0x1d, 0xcc, 0x29, 0xc9, 0x6f, 0x88, 0xc3, 0xc4, 0x95, 0x18,
-       0x75, 0xfc, 0x72, 0x66, 0x83, 0xe0, 0x36, 0xa7, 0xbb, 0xd1, 0xc1, 0xef,
-       0x98, 0x7a, 0x98, 0x76, 0x20, 0x7a, 0x78, 0x6b, 0x32, 0xb7, 0xb1, 0xed,
-       0x01, 0x53, 0x74, 0x9c, 0xcf, 0xcb, 0x44, 0xd7, 0x37, 0x4a, 0x8e, 0xd5,
-       0x03, 0x7c, 0xc1, 0xb2, 0x2e, 0xe2, 0xee, 0x42, 0xfc, 0xa0, 0x4d, 0x6c,
-       0xa7, 0xd4, 0x89, 0x95, 0xf3, 0x6b, 0x6d, 0x3b, 0xdc, 0xa4, 0xe3, 0x82,
-       0x51, 0x1f, 0x69, 0x54, 0x67, 0x51, 0xd6, 0x28, 0xf6, 0x91, 0x0f, 0x74,
-       0xa7, 0x66, 0x22, 0xe6, 0x17, 0x5b, 0x43, 0x47, 0x41, 0x0e, 0xc3, 0x71,
-       0x26, 0x61, 0xd4, 0x6d, 0xc3, 0x0c, 0x1c, 0xf0, 0xb7, 0x90, 0xc7, 0xa9,
-       0x2d, 0x4c, 0xff, 0xc9, 0x9f, 0x0c, 0x6b, 0x07, 0xce, 0xda, 0x69, 0xbf,
-       0xcd, 0x38, 0x49, 0x18, 0xa0, 0x2e, 0x5f, 0xd1, 0x5c, 0x78, 0xb5, 0xee,
-       0x9a, 0x49, 0xbe, 0x29, 0x9c, 0xe5, 0x3d, 0xfb, 0x98, 0x5f, 0xfa, 0x62,
-       0x9e, 0xa7, 0x2e, 0x73, 0x49, 0x1e, 0xe8, 0x36, 0xa4, 0x6d, 0xe6, 0x0b,
-       0x63, 0x57, 0xcb, 0x30, 0x61, 0x4f, 0xf8, 0x45, 0x86, 0xa0, 0xa6, 0xab,
-       0x7f, 0x6c, 0x1e, 0xaf, 0xc3, 0xcf, 0x35, 0x37, 0x7c, 0xe4, 0xc5, 0xaf,
-       0xf9, 0x73, 0x6d, 0xf4, 0x9a, 0xe3, 0x33, 0x4a, 0x1d, 0xac, 0x3c, 0xa2,
-       0x24, 0x89, 0x0f, 0xe3, 0x1e, 0x68, 0xe5, 0x51, 0xb7, 0xae, 0x11, 0x13,
-       0x36, 0x13, 0x13, 0x2c, 0x62, 0x42, 0x5f, 0xe6, 0x88, 0x92, 0xca, 0x7c,
-       0x46, 0x5d, 0x48, 0x1d, 0xb1, 0x9d, 0x2d, 0x94, 0xe5, 0x27, 0x36, 0xaa,
-       0x44, 0x9e, 0x0b, 0xbc, 0xdf, 0x42, 0x1e, 0x92, 0x97, 0x53, 0x7c, 0x95,
-       0x10, 0x54, 0x2c, 0xcf, 0x52, 0xb9, 0xdf, 0xaa, 0x5c, 0xcf, 0x70, 0x4b,
-       0xb9, 0xee, 0xb1, 0xa3, 0x4b, 0xdd, 0x58, 0x80, 0xd9, 0xe1, 0x85, 0x8b,
-       0x44, 0x17, 0x6a, 0x34, 0xa6, 0x7b, 0x61, 0x55, 0xb9, 0x88, 0xe5, 0xef,
-       0x35, 0x34, 0x60, 0x11, 0x73, 0xce, 0xb3, 0x04, 0xa7, 0x6e, 0xc3, 0x85,
-       0x71, 0xea, 0xe7, 0x69, 0x53, 0xd6, 0x1b, 0x6c, 0xdc, 0x16, 0xb6, 0xe2,
-       0xf4, 0x78, 0xab, 0x94, 0xb6, 0x57, 0x6c, 0x08, 0x4f, 0x28, 0x43, 0x49,
-       0xd4, 0x5d, 0x77, 0x16, 0x41, 0x73, 0x17, 0x79, 0x92, 0x5e, 0x31, 0x3b,
-       0xe2, 0xa1, 0xe6, 0x5e, 0x4f, 0x84, 0x22, 0xc7, 0x95, 0x9c, 0x3f, 0xbd,
-       0x4c, 0xdb, 0x78, 0x2b, 0x61, 0x74, 0x16, 0xba, 0x72, 0xbf, 0xdf, 0x70,
-       0xf2, 0xd9, 0xbc, 0x3f, 0x05, 0x26, 0x71, 0xc7, 0xeb, 0x3d, 0x93, 0xc0,
-       0x79, 0xb5, 0x59, 0xf2, 0x5a, 0x9c, 0xdf, 0x6c, 0x8e, 0x2b, 0x1e, 0xa3,
-       0x8c, 0xfa, 0x10, 0x2c, 0x2e, 0x20, 0xa7, 0x14, 0xee, 0xe0, 0xf5, 0x9e,
-       0x65, 0x19, 0x72, 0xc2, 0x89, 0xba, 0xf9, 0xf5, 0x11, 0x2f, 0x62, 0x56,
-       0x21, 0xfd, 0xba, 0x34, 0xea, 0xf7, 0xde, 0x98, 0xb5, 0xaa, 0x7c, 0xf4,
-       0x8b, 0x12, 0xe6, 0xbb, 0xb3, 0x93, 0x0b, 0xcb, 0x24, 0x57, 0xdc, 0x38,
-       0xca, 0x91, 0x55, 0xf6, 0x57, 0xa9, 0x51, 0x59, 0xc3, 0xd0, 0xe0, 0xa9,
-       0xdc, 0x78, 0x8b, 0x1a, 0x9d, 0x40, 0x7b, 0xb3, 0xb7, 0x25, 0x92, 0x85,
-       0xb7, 0x22, 0xba, 0x09, 0xe1, 0xa4, 0xe4, 0xad, 0x82, 0xb1, 0xb1, 0xad,
-       0x44, 0xbd, 0xaa, 0xf2, 0x79, 0xf9, 0xb9, 0x82, 0x5a, 0x16, 0x95, 0xfc,
-       0x55, 0x6f, 0x79, 0xc3, 0xc1, 0x62, 0x8d, 0xf9, 0xc6, 0xaf, 0x02, 0xff,
-       0x77, 0xf5, 0x5b, 0xdd, 0x32, 0x77, 0x1e, 0x43, 0xbe, 0x65, 0xdd, 0x00,
-       0x6e, 0x95, 0x58, 0xda, 0x3d, 0xe2, 0x66, 0x7e, 0x26, 0xf3, 0x25, 0xf1,
-       0xf8, 0xc8, 0xbd, 0x2f, 0xd1, 0xdf, 0x3c, 0xd4, 0xfd, 0x0e, 0xc3, 0x62,
-       0x98, 0xb0, 0x6d, 0x23, 0x1c, 0x0c, 0x14, 0x28, 0x3a, 0xb6, 0x37, 0xfc,
-       0x13, 0xed, 0x0b, 0xc4, 0x41, 0x90, 0x98, 0x97, 0x61, 0xcb, 0x48, 0xc1,
-       0x94, 0x7a, 0x91, 0xfb, 0xf2, 0xf5, 0x7a, 0x0d, 0x2b, 0x2e, 0xf5, 0x86,
-       0xc3, 0xc1, 0xf6, 0x6d, 0xac, 0xb7, 0x93, 0xf5, 0x62, 0x8c, 0xbd, 0xeb,
-       0x47, 0x35, 0x27, 0x1f, 0xb4, 0x46, 0x8a, 0xa7, 0xf6, 0x77, 0xa9, 0xde,
-       0x93, 0x86, 0x35, 0xee, 0xf4, 0xd7, 0x14, 0xec, 0x2c, 0x70, 0xb9, 0x91,
-       0x64, 0xbd, 0x71, 0xd6, 0x7b, 0x77, 0x54, 0xd6, 0x33, 0x70, 0xcb, 0x48,
-       0x22, 0x35, 0xe1, 0x32, 0x0c, 0xed, 0x1d, 0xc4, 0x88, 0xd9, 0xce, 0x5c,
-       0xde, 0x72, 0x28, 0xd3, 0x85, 0xed, 0xc6, 0xd1, 0x70, 0x21, 0xeb, 0x1d,
-       0x37, 0x8e, 0x06, 0x3c, 0xf4, 0x99, 0x75, 0x6c, 0xaf, 0x9b, 0x79, 0x91,
-       0x4a, 0x8c, 0xdc, 0x32, 0x22, 0xdc, 0xc1, 0xc4, 0x6c, 0xe6, 0x67, 0x8e,
-       0x6d, 0xca, 0xda, 0x09, 0x64, 0x4e, 0x65, 0x7c, 0xc1, 0xba, 0x11, 0x67,
-       0x7c, 0xca, 0x35, 0x87, 0x25, 0x57, 0xae, 0xb0, 0xb0, 0xb9, 0x41, 0xe2,
-       0xa7, 0x42, 0xec, 0x0e, 0xd6, 0x8d, 0x33, 0x9e, 0x6c, 0x1b, 0xfb, 0x33,
-       0x8c, 0x6b, 0x95, 0xcc, 0x65, 0x6d, 0xfb, 0x15, 0x63, 0x61, 0x05, 0x43,
-       0xbc, 0xd7, 0x4b, 0x99, 0xbd, 0xa1, 0x62, 0x89, 0xd3, 0x4e, 0x5b, 0x31,
-       0x08, 0x3e, 0x29, 0x48, 0x1a, 0xd6, 0x06, 0x91, 0xff, 0x58, 0x38, 0x18,
-       0x3f, 0xac, 0xd4, 0xb7, 0x6f, 0xc3, 0x3f, 0x11, 0x2f, 0x41, 0xac, 0x9b,
-       0x89, 0x21, 0x93, 0xd6, 0xd2, 0x66, 0x31, 0x42, 0x4a, 0x8c, 0x77, 0x9f,
-       0x58, 0xc4, 0x08, 0xe7, 0x46, 0xb0, 0xb3, 0x95, 0xe5, 0x23, 0xb9, 0x75,
-       0x16, 0x5c, 0x18, 0x0d, 0x32, 0x0e, 0x8b, 0x2e, 0x80, 0xad, 0x99, 0x7c,
-       0x2c, 0xb0, 0xed, 0x83, 0xa6, 0x6d, 0xbf, 0x64, 0xce, 0xc4, 0x61, 0x33,
-       0x18, 0x17, 0x1f, 0x78, 0xdf, 0x5c, 0x78, 0x83, 0xe4, 0xc5, 0x80, 0xc8,
-       0xa6, 0x30, 0x76, 0x29, 0x28, 0xe1, 0x27, 0x10, 0x72, 0xeb, 0x25, 0x8a,
-       0x0d, 0x6f, 0x53, 0x6d, 0x67, 0x2d, 0xf5, 0x5e, 0x36, 0x5f, 0xc1, 0x27,
-       0x37, 0x2a, 0x38, 0x7a, 0x63, 0x28, 0x30, 0xa4, 0x94, 0x32, 0x2e, 0x84,
-       0xda, 0x5a, 0x14, 0xeb, 0x04, 0xeb, 0xc6, 0x1a, 0x5c, 0xc1, 0x00, 0x94,
-       0x72, 0x62, 0xd6, 0x6c, 0x5d, 0x68, 0x8b, 0xbb, 0x37, 0x14, 0xd8, 0xc9,
-       0x6f, 0xd7, 0xa8, 0x82, 0x51, 0x23, 0x18, 0x83, 0xd3, 0x3e, 0xfb, 0x66,
-       0xca, 0x7c, 0x53, 0xc8, 0xb6, 0x4f, 0x86, 0xeb, 0xb5, 0x93, 0x78, 0x9f,
-       0xb8, 0x2c, 0xfd, 0xe4, 0x65, 0x03, 0xf3, 0x70, 0x23, 0xd6, 0xa2, 0xdc,
-       0x24, 0xb4, 0x84, 0x71, 0x52, 0x62, 0x79, 0x5e, 0xde, 0x7c, 0x4c, 0xb7,
-       0xed, 0xf7, 0xcd, 0x5c, 0x5b, 0x5a, 0x73, 0x30, 0x0e, 0xcc, 0xc4, 0x98,
-       0x11, 0x6c, 0x1d, 0xa7, 0x1e, 0x02, 0xf4, 0xf5, 0x19, 0x46, 0x15, 0x26,
-       0x3c, 0x41, 0x6d, 0x42, 0x59, 0xf4, 0x99, 0x8a, 0x39, 0x1b, 0x9e, 0x52,
-       0xea, 0x3b, 0x8a, 0x60, 0x90, 0x9f, 0x5e, 0x23, 0xf3, 0x11, 0xf0, 0x91,
-       0x0b, 0xae, 0x83, 0xc3, 0x2f, 0x70, 0x7b, 0xc2, 0x1d, 0xbb, 0x80, 0x1a,
-       0xfa, 0x9d, 0xd1, 0xfe, 0x90, 0x12, 0x64, 0xf2, 0xf2, 0x35, 0x26, 0x38,
-       0x22, 0x6b, 0x15, 0xe2, 0xf7, 0xd8, 0xf6, 0xc3, 0x94, 0x75, 0x17, 0x65,
-       0xdd, 0x18, 0xfe, 0xd8, 0xfe, 0x07, 0xa7, 0xcd, 0x5b, 0x31, 0x64, 0x5c,
-       0xdd, 0xee, 0x47, 0x36, 0xa6, 0x4b, 0xbb, 0x1e, 0x2c, 0x99, 0xce, 0x5c,
-       0xab, 0x59, 0xf0, 0xaa, 0xd2, 0x43, 0x7c, 0x62, 0x7b, 0x8c, 0x7f, 0xea,
-       0xd5, 0x1c, 0xc2, 0x05, 0xc6, 0xe6, 0x40, 0x5c, 0x51, 0xab, 0x4b, 0xa0,
-       0xc1, 0x6b, 0xd8, 0x78, 0x84, 0x7c, 0x27, 0x36, 0xbd, 0x1c, 0xdf, 0xe4,
-       0x9c, 0x96, 0x86, 0xd4, 0x6b, 0x5d, 0x9c, 0x93, 0xc3, 0x61, 0xf9, 0xed,
-       0xc1, 0xf8, 0x74, 0x17, 0xba, 0x38, 0xcb, 0x5a, 0x48, 0x9d, 0x21, 0xf7,
-       0xbd, 0x8d, 0xf2, 0x9b, 0xf2, 0x5f, 0xa3, 0xe0, 0x61, 0x5a, 0xa4, 0x1a,
-       0xea, 0x0e, 0xc8, 0xfd, 0x56, 0x53, 0x7e, 0x2b, 0xe4, 0x92, 0x6e, 0xce,
-       0x8b, 0x0d, 0x97, 0x2c, 0x4d, 0x84, 0x78, 0x3f, 0x2c, 0xd7, 0xb1, 0x87,
-       0x39, 0xee, 0xd8, 0x01, 0x45, 0x30, 0xee, 0x97, 0xf6, 0x2b, 0x8c, 0x81,
-       0x1a, 0x9f, 0x7f, 0x93, 0x7d, 0x9f, 0x08, 0xbf, 0x64, 0xcf, 0xa8, 0x50,
-       0x70, 0x32, 0xa2, 0x63, 0xe6, 0x8d, 0xd5, 0x98, 0xb8, 0x5b, 0xc6, 0xac,
-       0xa0, 0xd4, 0x38, 0xe8, 0x91, 0x1c, 0xb9, 0xcc, 0xb8, 0x06, 0x4b, 0x56,
-       0xe4, 0xee, 0x15, 0x85, 0x64, 0x8d, 0x53, 0x47, 0xd1, 0x8d, 0x95, 0xd0,
-       0x27, 0xef, 0x2d, 0x0a, 0xb9, 0xdb, 0x4a, 0x15, 0x43, 0xbb, 0x5d, 0x91,
-       0xe7, 0xbf, 0x23, 0x2f, 0xb7, 0xed, 0x47, 0x38, 0x5f, 0xb3, 0xc3, 0x3e,
-       0x9c, 0x63, 0x3f, 0xdd, 0xd4, 0xdf, 0xf2, 0x4b, 0xf3, 0x95, 0xaf, 0xff,
-       0xa9, 0xad, 0xdf, 0x23, 0x75, 0xa5, 0x8d, 0xda, 0xd6, 0x25, 0xca, 0x03,
-       0x1e, 0xc9, 0x91, 0x36, 0x86, 0x1d, 0x9d, 0xb1, 0xec, 0x73, 0xce, 0x6f,
-       0xad, 0xf9, 0xad, 0x4b, 0xeb, 0x75, 0xe7, 0x9d, 0x58, 0xba, 0x70, 0xbe,
-       0x86, 0x09, 0xbb, 0xa2, 0xd1, 0xd2, 0x0a, 0x21, 0x31, 0xb5, 0xa6, 0xee,
-       0x39, 0xb6, 0xfb, 0x73, 0x33, 0x17, 0x6f, 0x0f, 0x9a, 0xc1, 0x3e, 0x8b,
-       0xfe, 0x13, 0x67, 0x8e, 0xdb, 0x22, 0xbc, 0x63, 0xec, 0x16, 0xce, 0xc3,
-       0x4c, 0x14, 0x36, 0x06, 0x7b, 0x66, 0x31, 0xe7, 0x73, 0x35, 0x4b, 0x9c,
-       0x96, 0xf9, 0x71, 0xca, 0xb0, 0xaf, 0x22, 0x2c, 0xa2, 0x8c, 0xe1, 0xc6,
-       0x3f, 0x15, 0xdf, 0xa4, 0x1d, 0xb1, 0xce, 0x60, 0x4f, 0x0c, 0x7f, 0xaa,
-       0x2c, 0xc8, 0x28, 0x64, 0x2d, 0xcc, 0x7b, 0x4b, 0x3c, 0xa3, 0x92, 0x23,
-       0x15, 0x68, 0xdd, 0xcd, 0x55, 0xfc, 0xc8, 0x73, 0xf7, 0x2d, 0x6b, 0x32,
-       0x97, 0xd6, 0x20, 0xd1, 0x67, 0x16, 0x40, 0xbd, 0x49, 0xe2, 0x05, 0x7d,
-       0x59, 0x93, 0xf1, 0x59, 0xb4, 0x72, 0x59, 0x5f, 0x30, 0x56, 0xad, 0x25,
-       0x5e, 0xbc, 0xc8, 0x1e, 0x87, 0xc9, 0xc5, 0x2c, 0xc7, 0x33, 0x9c, 0xf8,
-       0x37, 0x65, 0x4d, 0x52, 0xe2, 0x57, 0x7e, 0x5d, 0xb3, 0x12, 0xfd, 0x7b,
-       0x57, 0x40, 0xaf, 0xca, 0x61, 0xa0, 0x1a, 0x6d, 0xc2, 0xc2, 0xbe, 0x40,
-       0x41, 0x2e, 0x7f, 0x28, 0x43, 0xef, 0xde, 0x30, 0xd2, 0xd3, 0x9d, 0xfa,
-       0xbc, 0xe7, 0x85, 0x60, 0xf4, 0xf6, 0xbd, 0xd7, 0xca, 0x7a, 0x40, 0x40,
-       0xda, 0x8d, 0xd3, 0x77, 0x54, 0xe3, 0x43, 0xdb, 0xd2, 0xa4, 0xfd, 0xa3,
-       0x37, 0x10, 0x47, 0xcc, 0xc5, 0xa8, 0x6f, 0x3f, 0x84, 0x33, 0xe4, 0xa4,
-       0x4e, 0xbe, 0xa4, 0x17, 0x46, 0xc7, 0x1f, 0xf6, 0x20, 0x14, 0x1f, 0x21,
-       0x0e, 0xf8, 0x46, 0xbd, 0xe4, 0x56, 0x33, 0x9d, 0x75, 0xaf, 0x85, 0xc4,
-       0x96, 0x38, 0x79, 0xf9, 0xd7, 0xdc, 0x6e, 0xac, 0x25, 0x66, 0x1c, 0x34,
-       0xea, 0x3b, 0x0e, 0xe1, 0x1f, 0x89, 0xb3, 0x52, 0x5e, 0x65, 0x7f, 0xd2,
-       0xa6, 0x9b, 0xfd, 0xc1, 0x4b, 0x2e, 0x70, 0x2f, 0xf9, 0xac, 0xdb, 0x63,
-       0xfc, 0xc4, 0x23, 0xbc, 0x43, 0x78, 0xf7, 0xae, 0xbd, 0x0a, 0x5a, 0xd8,
-       0xce, 0x4e, 0xda, 0xcc, 0xc3, 0x21, 0xb8, 0x5b, 0x6f, 0x24, 0xbf, 0x02,
-       0x5d, 0x70, 0xba, 0x0f, 0x3b, 0x46, 0x10, 0xc9, 0x18, 0xe3, 0x33, 0x7c,
-       0xa8, 0x62, 0x3b, 0x12, 0x53, 0x0a, 0x26, 0xdb, 0x89, 0xdc, 0x77, 0x65,
-       0x3b, 0x65, 0x78, 0x72, 0xb2, 0x9d, 0x7d, 0x6c, 0xe7, 0xe6, 0xd9, 0x70,
-       0x97, 0xdd, 0x2c, 0x73, 0xd5, 0x40, 0xff, 0x29, 0x43, 0xca, 0x89, 0x2b,
-       0xe4, 0xa3, 0x5f, 0x85, 0x62, 0xd4, 0x4a, 0xee, 0x72, 0xd6, 0xa9, 0xb7,
-       0xb8, 0x61, 0xfc, 0x02, 0x69, 0x91, 0x72, 0x7e, 0xf6, 0x38, 0x1d, 0x35,
-       0xaf, 0x9b, 0x2a, 0x6c, 0xdd, 0x5b, 0x9c, 0x97, 0x97, 0xfd, 0xe4, 0xfb,
-       0xa8, 0xe4, 0x3d, 0x3f, 0x76, 0x30, 0x07, 0x5d, 0xcc, 0x7e, 0x0e, 0x9b,
-       0xc2, 0x23, 0xeb, 0xcd, 0x22, 0x45, 0x72, 0xf2, 0x00, 0x39, 0x45, 0x25,
-       0x36, 0x3b, 0x71, 0x28, 0xc0, 0xfa, 0x0d, 0x65, 0x39, 0x7e, 0x02, 0xcf,
-       0x32, 0x96, 0x6d, 0x09, 0xe7, 0xfa, 0x23, 0x0e, 0x33, 0xcf, 0x6d, 0xc4,
-       0xc1, 0xc1, 0x4b, 0xcf, 0x83, 0x8b, 0x8d, 0xa9, 0xf3, 0x35, 0x1e, 0xf4,
-       0xa0, 0x8d, 0xdf, 0x05, 0x12, 0x67, 0xae, 0x18, 0xfb, 0x96, 0x91, 0x47,
-       0xf8, 0x5d, 0x8c, 0xad, 0x23, 0x36, 0xb6, 0x38, 0x39, 0x4e, 0x01, 0xba,
-       0x1b, 0x04, 0x0f, 0xc5, 0x96, 0xa6, 0x4b, 0xec, 0x88, 0xa4, 0x21, 0xf1,
-       0x55, 0xec, 0x27, 0xea, 0xd8, 0x8f, 0x4b, 0x99, 0x6a, 0x3f, 0x5d, 0x78,
-       0xcd, 0x38, 0xba, 0xa2, 0x10, 0x47, 0xef, 0x97, 0xb5, 0xfb, 0x8e, 0x30,
-       0x8e, 0xdd, 0x46, 0xdf, 0x7c, 0x97, 0xd8, 0xb2, 0x65, 0x36, 0xe3, 0x97,
-       0x83, 0x59, 0x0a, 0x0a, 0xc9, 0x2b, 0xb6, 0xed, 0x0d, 0xea, 0x05, 0xaa,
-       0xc6, 0x3e, 0xaf, 0xc6, 0x2e, 0x91, 0xdf, 0x64, 0x9e, 0x7e, 0xf4, 0xb1,
-       0x42, 0xf8, 0x24, 0x5f, 0x7a, 0xfb, 0x0c, 0xdb, 0x58, 0x6c, 0xe6, 0x75,
-       0xe5, 0xe8, 0x69, 0xb2, 0x9d, 0x4a, 0x24, 0xf7, 0xe6, 0xeb, 0x2b, 0x38,
-       0x15, 0x0a, 0x4c, 0xae, 0x9d, 0x57, 0xa2, 0x77, 0xe4, 0xe8, 0x49, 0xf2,
-       0x1c, 0xc6, 0xa9, 0xa3, 0x9d, 0x01, 0xca, 0x72, 0x3e, 0x9c, 0x9f, 0x53,
-       0xf1, 0xcd, 0xa9, 0x6d, 0x88, 0xed, 0x42, 0x29, 0xab, 0xc5, 0x96, 0x32,
-       0xda, 0x68, 0x26, 0x84, 0x78, 0x49, 0xb4, 0x0c, 0x89, 0x11, 0xfa, 0xd6,
-       0x68, 0x01, 0xdc, 0xf3, 0x24, 0xee, 0x0a, 0xd7, 0x72, 0xdf, 0x72, 0x3a,
-       0x51, 0x80, 0x07, 0xcc, 0x8b, 0xb6, 0xe0, 0xe2, 0x49, 0x03, 0xd7, 0x15,
-       0x10, 0x13, 0x6b, 0xc3, 0xa1, 0xd8, 0x3a, 0xe6, 0xb4, 0xc7, 0x1b, 0xdc,
-       0xb7, 0x7c, 0x90, 0xf9, 0x3d, 0x79, 0xf1, 0xd5, 0xe3, 0x11, 0x7d, 0xe0,
-       0xc4, 0xd2, 0x90, 0xf4, 0x29, 0xfd, 0xe5, 0x6d, 0x54, 0xfa, 0xb7, 0xed,
-       0x50, 0xd8, 0xe7, 0xcc, 0x79, 0x7e, 0x0c, 0xef, 0x19, 0xf9, 0x31, 0xf8,
-       0x9c, 0xf8, 0xcd, 0x1c, 0x98, 0x98, 0x23, 0x79, 0xc1, 0x11, 0xe5, 0xa8,
-       0x93, 0x03, 0x5b, 0x31, 0xe6, 0xbe, 0x91, 0x9e, 0xc9, 0xdc, 0x77, 0x9c,
-       0x3c, 0xf7, 0x38, 0x79, 0xee, 0xcb, 0x93, 0xb9, 0xef, 0x8b, 0x19, 0xa9,
-       0x33, 0xb5, 0x7c, 0x24, 0x26, 0x6b, 0xd6, 0x23, 0x89, 0x50, 0x5d, 0xbe,
-       0xce, 0xcb, 0x2c, 0x7f, 0xfc, 0x52, 0xf9, 0xd5, 0xcc, 0x57, 0x57, 0x61,
-       0x5b, 0xaa, 0x04, 0x0f, 0x6a, 0x4e, 0x6e, 0xe9, 0x2d, 0x8c, 0x9e, 0xb8,
-       0xef, 0x7d, 0x63, 0xbc, 0xce, 0x45, 0x1c, 0x1a, 0xe1, 0xe0, 0x5b, 0x12,
-       0x0a, 0xfd, 0xce, 0x83, 0x1e, 0xad, 0x1c, 0x6b, 0xcd, 0x7f, 0xb2, 0x1f,
-       0x5c, 0x25, 0xcf, 0xf2, 0x7b, 0x14, 0x52, 0xfe, 0x35, 0x96, 0x0f, 0x9a,
-       0x23, 0x93, 0xb9, 0xe0, 0xd1, 0x04, 0xfa, 0x24, 0xcf, 0x5a, 0xd3, 0x1c,
-       0xd2, 0xbb, 0x9d, 0x75, 0x63, 0x1d, 0xeb, 0x32, 0x3a, 0xd6, 0x53, 0x9e,
-       0xb4, 0x7b, 0x32, 0x47, 0xca, 0xc5, 0x62, 0x4b, 0x78, 0xe6, 0x22, 0x96,
-       0xdb, 0x3c, 0x89, 0x33, 0x2d, 0x97, 0x78, 0xae, 0x6d, 0xf7, 0x9b, 0x79,
-       0xae, 0xcb, 0x58, 0x50, 0x29, 0xb9, 0x35, 0x68, 0x17, 0x15, 0x48, 0xfb,
-       0x65, 0x4f, 0x66, 0xea, 0x18, 0x11, 0x2b, 0x8c, 0x86, 0xf4, 0xd9, 0xea,
-       0x54, 0xec, 0x92, 0xb1, 0x0a, 0x6e, 0x59, 0x8e, 0x7e, 0x8e, 0x5d, 0x1a,
-       0x6f, 0x7d, 0xa1, 0x60, 0xd6, 0xc1, 0x44, 0x77, 0x01, 0x6d, 0x4b, 0x2d,
-       0x10, 0x7b, 0x40, 0xee, 0x1e, 0xb2, 0xb6, 0xbd, 0xfd, 0x0a, 0xdd, 0x15,
-       0xc4, 0x98, 0x0a, 0xe0, 0xe9, 0x44, 0x28, 0x76, 0x16, 0x96, 0x72, 0x32,
-       0xe3, 0xa6, 0xad, 0x4b, 0xbb, 0x5b, 0xd8, 0x5e, 0x8f, 0x72, 0xe2, 0x52,
-       0x9b, 0x17, 0x2e, 0x6e, 0x76, 0xd6, 0x71, 0xf3, 0xbe, 0xe2, 0xc5, 0x43,
-       0x7d, 0xf9, 0xbd, 0xc6, 0x18, 0xde, 0x33, 0x05, 0x17, 0xbd, 0xe4, 0x3d,
-       0xcc, 0xd2, 0x13, 0xdb, 0x90, 0xf3, 0x4b, 0xf9, 0xe4, 0xe7, 0xfd, 0xa0,
-       0x5b, 0x30, 0xec, 0x27, 0xb3, 0x63, 0x93, 0x6b, 0x2e, 0x7f, 0xac, 0x4c,
-       0x1e, 0xdb, 0x2f, 0x5c, 0xec, 0x4b, 0x55, 0x4f, 0xc9, 0xb3, 0x69, 0x5f,
-       0x03, 0xc1, 0x1e, 0x0b, 0x95, 0x6c, 0xc3, 0x8d, 0xbf, 0x65, 0xfc, 0x76,
-       0x0f, 0x1c, 0xbd, 0x41, 0x52, 0x32, 0xcf, 0xa1, 0x18, 0x36, 0x37, 0x7b,
-       0xe0, 0x1a, 0xaa, 0x2e, 0xcc, 0xad, 0xf3, 0x91, 0x3c, 0x3b, 0xdf, 0x8a,
-       0x83, 0xd3, 0x6a, 0x56, 0xf2, 0x6a, 0xd2, 0x88, 0x43, 0xa2, 0xd7, 0x4a,
-       0x7e, 0x8b, 0x5e, 0xfc, 0xfc, 0x16, 0x1d, 0x55, 0xf1, 0xbb, 0x1c, 0xb1,
-       0x2a, 0xd9, 0xf3, 0x6a, 0x47, 0x82, 0x98, 0x55, 0x12, 0xed, 0xc4, 0xd7,
-       0x7b, 0x6d, 0xbb, 0x87, 0x7e, 0x59, 0xc4, 0x18, 0xff, 0x48, 0xa8, 0x3e,
-       0x32, 0x47, 0x29, 0x20, 0xdf, 0x69, 0x47, 0xcf, 0x48, 0x41, 0xbc, 0x3c,
-       0x5a, 0xc5, 0x98, 0xae, 0xe1, 0x93, 0xb9, 0x6d, 0xc8, 0x8e, 0x5e, 0xbd,
-       0x57, 0x36, 0x75, 0x9f, 0x2c, 0xbf, 0x3f, 0x26, 0xe3, 0x11, 0xb9, 0x45,
-       0xfe, 0x0b, 0x17, 0xb7, 0xa6, 0x44, 0x36, 0x0f, 0x0e, 0xf4, 0x89, 0xbc,
-       0x36, 0x3a, 0xcc, 0x5b, 0x29, 0x27, 0x91, 0xbe, 0x72, 0xea, 0xfc, 0xe6,
-       0xdb, 0x91, 0x75, 0xf0, 0x4e, 0x65, 0x98, 0xf3, 0x65, 0xb9, 0x0b, 0xc5,
-       0xbf, 0x34, 0xe6, 0x15, 0xca, 0x73, 0x19, 0x69, 0xa3, 0x45, 0x19, 0x49,
-       0x4f, 0xad, 0xd3, 0xa9, 0x1c, 0xca, 0x3c, 0x5c, 0x28, 0x9c, 0xe3, 0xb2,
-       0x1e, 0xf3, 0x32, 0x90, 0xdc, 0xd2, 0x5e, 0x2a, 0x92, 0xa2, 0x7f, 0xd1,
-       0x8f, 0x0e, 0x77, 0x96, 0xbf, 0xb3, 0x5f, 0xd6, 0xe7, 0xd5, 0x3e, 0x36,
-       0xf7, 0x0a, 0x9f, 0x3c, 0x4e, 0x9f, 0x1c, 0xff, 0xa3, 0x3e, 0x39, 0xef,
-       0x4f, 0x94, 0xcf, 0xaf, 0xb7, 0xda, 0xf6, 0x6e, 0x53, 0xd6, 0xe8, 0x65,
-       0xdd, 0xb5, 0xe1, 0x4b, 0xf6, 0x5e, 0x65, 0x3d, 0x7e, 0x36, 0xd2, 0x95,
-       0xc1, 0xb4, 0xac, 0xbf, 0x0c, 0xa4, 0x80, 0x45, 0x49, 0xe9, 0x27, 0x46,
-       0x7d, 0xa9, 0xb7, 0x32, 0x1a, 0x31, 0x43, 0xe8, 0xc2, 0x19, 0xd3, 0xd8,
-       0xf7, 0x20, 0x79, 0x77, 0x37, 0x73, 0xd2, 0x83, 0xe6, 0x72, 0xfa, 0x7b,
-       0x31, 0x36, 0x34, 0xd0, 0x18, 0x57, 0x98, 0xf4, 0x7b, 0xab, 0x9d, 0xae,
-       0xe8, 0xf5, 0x45, 0xdb, 0x57, 0x25, 0x42, 0xc1, 0xb6, 0x8d, 0xc4, 0xf3,
-       0xa5, 0xbd, 0x5e, 0xe8, 0x8a, 0xc3, 0x07, 0x5a, 0x7f, 0xa1, 0x0a, 0x46,
-       0x9d, 0x29, 0xc8, 0xe5, 0xcd, 0xb2, 0xe6, 0x22, 0xfd, 0x2c, 0x67, 0x5e,
-       0x22, 0x75, 0x75, 0xb4, 0xd7, 0x2a, 0x48, 0xd5, 0x06, 0xfb, 0xe0, 0xb2,
-       0xed, 0xdf, 0x91, 0x17, 0x8e, 0x3b, 0xb9, 0x7c, 0x7d, 0xdd, 0x6e, 0xf5,
-       0x7f, 0x10, 0x0b, 0x9d, 0x36, 0x34, 0x59, 0xf3, 0x7f, 0xe1, 0x4f, 0xae,
-       0x7b, 0x9b, 0x90, 0xbd, 0x89, 0x42, 0x63, 0x89, 0x32, 0xe2, 0xcf, 0x71,
-       0x8a, 0xdb, 0x06, 0x3e, 0xbf, 0xf8, 0x64, 0x4a, 0xec, 0x1c, 0x55, 0x01,
-       0x63, 0x06, 0x66, 0x1f, 0x28, 0xc5, 0xb2, 0x01, 0xe1, 0x0a, 0x3e, 0xab,
-       0x30, 0x1a, 0xc0, 0x9c, 0x03, 0x95, 0x68, 0xd9, 0x23, 0xfb, 0x50, 0x76,
-       0x57, 0x45, 0x74, 0x35, 0xdc, 0x87, 0x34, 0x3c, 0xb0, 0xc7, 0xb6, 0x67,
-       0xcd, 0x23, 0xb5, 0x63, 0x4c, 0x7c, 0xb7, 0x69, 0x15, 0x3c, 0xd9, 0x6a,
-       0x2c, 0x49, 0xd6, 0x39, 0x6b, 0xad, 0x1f, 0x26, 0x5a, 0x5b, 0xce, 0xf5,
-       0xd6, 0x6e, 0xa8, 0x55, 0x82, 0xe6, 0x29, 0x25, 0x82, 0x82, 0x6c, 0x04,
-       0xae, 0xa4, 0x82, 0x57, 0x0d, 0x74, 0x95, 0x45, 0xa3, 0x70, 0x65, 0xa3,
-       0xf0, 0x25, 0xdd, 0x68, 0xa0, 0xbe, 0x4b, 0x38, 0xf7, 0xd3, 0x92, 0xd5,
-       0x98, 0x96, 0xbd, 0x0e, 0xfa, 0x81, 0x06, 0xfa, 0x48, 0x25, 0xfb, 0xf3,
-       0xa3, 0x25, 0xd9, 0x86, 0x69, 0x46, 0x33, 0x6d, 0xa3, 0x19, 0x33, 0x93,
-       0x7e, 0x2c, 0xe0, 0x7c, 0x2c, 0x4e, 0xb6, 0xb2, 0x1f, 0x1f, 0xda, 0x07,
-       0xee, 0x44, 0x60, 0xc8, 0x8b, 0xf2, 0x01, 0x1d, 0x1f, 0xce, 0xf5, 0xa2,
-       0x68, 0x28, 0x80, 0xd2, 0xa4, 0xec, 0x8d, 0x21, 0xb6, 0xb1, 0x39, 0x00,
-       0x5f, 0x16, 0x28, 0x19, 0xb0, 0xf1, 0xad, 0xf0, 0xa8, 0x7a, 0x77, 0xa5,
-       0x65, 0x4f, 0x73, 0x62, 0x41, 0x6b, 0xfb, 0x16, 0xe3, 0xce, 0x49, 0xbf,
-       0x77, 0x33, 0xcf, 0x52, 0xc8, 0xd7, 0x25, 0x06, 0xb6, 0xb6, 0x1f, 0x4c,
-       0xc8, 0xda, 0x46, 0x88, 0x7e, 0xeb, 0x81, 0x77, 0xa8, 0x53, 0xe9, 0xa3,
-       0xed, 0xa0, 0x40, 0xf4, 0xaf, 0xd2, 0xbf, 0xa0, 0x95, 0xd2, 0xce, 0xb7,
-       0x66, 0x5a, 0x94, 0x64, 0xba, 0x53, 0xe9, 0xcd, 0x94, 0x78, 0x51, 0x2c,
-       0xf3, 0xf2, 0x15, 0x8c, 0x36, 0x3c, 0x69, 0xa7, 0x2b, 0x9c, 0xb9, 0xb5,
-       0x3c, 0x90, 0x9c, 0xdb, 0x5a, 0x15, 0xae, 0x0d, 0x76, 0x56, 0xa8, 0xb2,
-       0x9f, 0x42, 0x1c, 0x52, 0x72, 0x7d, 0x69, 0x46, 0x12, 0xcf, 0xfa, 0x65,
-       0x7d, 0x55, 0xe6, 0xbf, 0xb5, 0x3d, 0xd1, 0x7b, 0xe1, 0xa2, 0xcc, 0xe9,
-       0xc7, 0xb4, 0xc3, 0xdb, 0x93, 0x9f, 0x5f, 0xdc, 0x97, 0x6a, 0x63, 0x9e,
-       0x66, 0xe2, 0x55, 0xfe, 0x5e, 0xc4, 0x71, 0xbf, 0x98, 0xf1, 0x61, 0x61,
-       0xb2, 0xd9, 0xd9, 0x8b, 0x5b, 0x96, 0x8c, 0xe0, 0x15, 0x7e, 0xb7, 0x24,
-       0x57, 0xe1, 0x18, 0xf3, 0xd4, 0x07, 0x92, 0x51, 0xbc, 0x9d, 0x09, 0xe0,
-       0x7e, 0xea, 0x6f, 0x06, 0xed, 0xf4, 0xae, 0xa4, 0x8e, 0x37, 0x32, 0xc0,
-       0xcf, 0xfa, 0x6c, 0x84, 0x1a, 0xbf, 0xa3, 0x3e, 0xed, 0xac, 0x8d, 0x35,
-       0xe3, 0x67, 0x09, 0x13, 0x6f, 0x24, 0x6a, 0xcc, 0x9b, 0xd5, 0xdf, 0x62,
-       0xdc, 0x9d, 0xa0, 0x4d, 0x9d, 0x47, 0xbc, 0x52, 0xd6, 0xf1, 0x72, 0xf2,
-       0x77, 0x8f, 0x79, 0x98, 0x63, 0x6d, 0xc0, 0x11, 0xbf, 0xb3, 0x2e, 0x71,
-       0x85, 0x5c, 0xb2, 0x36, 0xb1, 0x88, 0x72, 0x3d, 0x95, 0x22, 0x57, 0x34,
-       0xaa, 0x29, 0x8f, 0x17, 0x0b, 0x07, 0xbc, 0xa8, 0xa4, 0x6d, 0x9c, 0x3e,
-       0x10, 0xc5, 0xce, 0x54, 0x11, 0x5a, 0xfa, 0x03, 0x38, 0xc3, 0xeb, 0xad,
-       0xb4, 0xf1, 0x1f, 0xb1, 0x6f, 0xa3, 0x49, 0xc3, 0x80, 0x56, 0x84, 0x9e,
-       0xba, 0x1f, 0x93, 0xef, 0xa9, 0xcc, 0x39, 0x98, 0x1b, 0x18, 0x25, 0xd8,
-       0xc1, 0xb4, 0xbe, 0xb0, 0x39, 0x88, 0xfe, 0x3a, 0xda, 0x7a, 0x15, 0xe3,
-       0x87, 0x11, 0x43, 0x39, 0x31, 0x26, 0xc5, 0x5c, 0xb1, 0x30, 0x6a, 0x51,
-       0x06, 0x15, 0xfb, 0x34, 0x55, 0xd6, 0xe4, 0xf8, 0x2c, 0x80, 0x63, 0x09,
-       0xd8, 0xc5, 0x51, 0xe3, 0xc2, 0x4e, 0x84, 0x4e, 0xbc, 0xcf, 0xb8, 0xfe,
-       0xf7, 0x99, 0x12, 0x7c, 0xbf, 0x6f, 0x36, 0xfe, 0x36, 0x2d, 0xeb, 0xbd,
-       0x3e, 0xac, 0x1f, 0x0c, 0xab, 0xb9, 0xb5, 0x4a, 0x1f, 0x1e, 0x1a, 0x84,
-       0x35, 0x93, 0xf6, 0xf8, 0xf2, 0x70, 0x19, 0xd6, 0xf4, 0xbd, 0x60, 0x33,
-       0x77, 0xa6, 0x5d, 0x7b, 0x71, 0x34, 0x2d, 0x32, 0x96, 0x53, 0xc6, 0x22,
-       0x1c, 0xe3, 0x75, 0x0f, 0x6d, 0xbf, 0xb2, 0xf7, 0xdb, 0xf8, 0x2c, 0x55,
-       0x53, 0x77, 0xbf, 0xda, 0x8e, 0xe3, 0xce, 0x7e, 0x6c, 0x03, 0xde, 0xa2,
-       0x1e, 0xcb, 0x77, 0xdb, 0xf6, 0x6f, 0xc2, 0x31, 0xfc, 0x2c, 0x73, 0x2d,
-       0x8a, 0x78, 0x6d, 0x86, 0x5b, 0xf0, 0x66, 0xa6, 0x1a, 0x65, 0xbd, 0xad,
-       0x78, 0x9d, 0x9c, 0xbf, 0x74, 0x77, 0x27, 0x4e, 0xb1, 0x7d, 0x5f, 0xbf,
-       0x17, 0xaf, 0xa5, 0xbd, 0x78, 0xb5, 0xcf, 0xd0, 0xd6, 0x2a, 0x7f, 0xa7,
-       0xc4, 0x2b, 0x73, 0xfd, 0x0c, 0xa4, 0x72, 0xfa, 0xdc, 0x3e, 0x56, 0x00,
-       0xc1, 0xf2, 0x43, 0x7e, 0x59, 0xbf, 0x95, 0xf3, 0x31, 0xad, 0xed, 0x5a,
-       0xf2, 0x77, 0x17, 0x13, 0xd4, 0xe7, 0x9b, 0xa3, 0x01, 0xdc, 0x91, 0x14,
-       0xdd, 0x7e, 0x7e, 0x71, 0x17, 0xb1, 0xa3, 0x77, 0x34, 0x82, 0x13, 0x09,
-       0x8f, 0xb3, 0xe7, 0xd8, 0x33, 0x2a, 0xfb, 0xb1, 0xdf, 0xe5, 0xdc, 0x00,
-       0x6b, 0x47, 0x73, 0x6d, 0x6d, 0x19, 0x2b, 0xa4, 0xee, 0x6e, 0xc7, 0xd3,
-       0x5a, 0x81, 0xc4, 0xdf, 0x9c, 0x8d, 0x1a, 0x41, 0xda, 0xee, 0x77, 0x9d,
-       0xf5, 0xbd, 0x81, 0x54, 0xbd, 0x36, 0x0d, 0xf9, 0x79, 0xac, 0xc1, 0x4c,
-       0xe3, 0xf7, 0xf6, 0x0b, 0x7e, 0x59, 0x77, 0x15, 0xbe, 0xd8, 0xda, 0xbe,
-       0x36, 0x21, 0xfd, 0xe8, 0xd8, 0x3c, 0x7a, 0xe1, 0x62, 0x3f, 0xf9, 0xfa,
-       0x12, 0xda, 0xc8, 0xba, 0x90, 0x1f, 0x8b, 0x6b, 0xeb, 0x50, 0x9b, 0x95,
-       0x35, 0xdd, 0x08, 0x39, 0xab, 0x89, 0x8e, 0x50, 0xd4, 0xd9, 0xd7, 0x82,
-       0x9a, 0xbf, 0xe7, 0xc5, 0xbb, 0x7f, 0xe0, 0x2b, 0xc0, 0xac, 0x81, 0x36,
-       0xf6, 0x6b, 0x63, 0x99, 0xf9, 0x0f, 0x76, 0xcb, 0x3d, 0xd2, 0x7f, 0x4d,
-       0x59, 0xee, 0x19, 0x27, 0xbc, 0x58, 0x7e, 0x37, 0xd1, 0x97, 0x1a, 0x71,
-       0xd8, 0x2f, 0x3c, 0x43, 0xfc, 0xa0, 0xb5, 0x3d, 0x4c, 0xfb, 0xd9, 0x41,
-       0x19, 0x56, 0xd0, 0x76, 0x96, 0x11, 0x17, 0xca, 0x8d, 0x0b, 0x17, 0x7b,
-       0x53, 0x26, 0xe6, 0x8c, 0xfa, 0x68, 0xcb, 0x45, 0xec, 0xaf, 0x19, 0xc6,
-       0x28, 0x71, 0x84, 0xf6, 0xbd, 0x60, 0xd4, 0x4f, 0x7b, 0xd6, 0x31, 0x7f,
-       0x54, 0x7c, 0xdc, 0x40, 0x88, 0xb1, 0xac, 0x9d, 0x75, 0x22, 0xa3, 0x15,
-       0xb8, 0x79, 0xbf, 0x1b, 0x77, 0x26, 0xc3, 0xd4, 0x4f, 0x1d, 0x63, 0xdc,
-       0x65, 0x7d, 0x6f, 0x1b, 0x9b, 0x85, 0x0a, 0xe3, 0x88, 0xfd, 0x9c, 0x83,
-       0x61, 0x85, 0x8e, 0x9e, 0x02, 0xec, 0x37, 0x90, 0x82, 0x55, 0xce, 0xf8,
-       0x72, 0x61, 0xf4, 0xb9, 0x2f, 0xe2, 0xf7, 0x8a, 0x2e, 0xa7, 0x8e, 0x47,
-       0x30, 0xe5, 0x02, 0xb1, 0x0e, 0x68, 0x7c, 0xc2, 0xc6, 0xe2, 0xc6, 0x8d,
-       0xca, 0x0f, 0x1c, 0x5b, 0x92, 0x76, 0x85, 0x3b, 0xe4, 0xf5, 0x9f, 0xd7,
-       0xf9, 0x6f, 0x0a, 0x72, 0x3a, 0xcf, 0x8f, 0x33, 0xb8, 0x4f, 0x70, 0x7a,
-       0x7d, 0x63, 0x1e, 0xa7, 0xa5, 0xbc, 0xdc, 0x5f, 0x61, 0xf7, 0x6a, 0x70,
-       0x17, 0x1a, 0x2e, 0x6c, 0xaf, 0x7b, 0x46, 0x99, 0xd0, 0xc4, 0xe7, 0x15,
-       0x62, 0xc7, 0xed, 0x36, 0xdd, 0x96, 0x76, 0xfd, 0x12, 0xcb, 0x41, 0x29,
-       0xbc, 0x34, 0x97, 0xc2, 0x3f, 0xba, 0x27, 0xe7, 0x52, 0x78, 0x6f, 0x7e,
-       0x4c, 0x79, 0x59, 0x23, 0xe4, 0x76, 0x22, 0xaf, 0xd8, 0x86, 0x94, 0x79,
-       0xb0, 0xc8, 0x59, 0x8f, 0x46, 0xf7, 0x14, 0x7b, 0xc8, 0x73, 0x18, 0xa7,
-       0x0d, 0x0d, 0x97, 0xec, 0xc1, 0x8d, 0xb6, 0xa4, 0xcc, 0x3b, 0xac, 0x62,
-       0xea, 0xa1, 0x6d, 0xd4, 0xc3, 0xf9, 0x13, 0x2e, 0xae, 0x62, 0x89, 0xb9,
-       0x5d, 0x19, 0xf7, 0xef, 0x64, 0x1b, 0x9f, 0x5f, 0x64, 0x1d, 0xde, 0xeb,
-       0xe5, 0xf5, 0x75, 0xb8, 0x9d, 0x38, 0xba, 0x36, 0x6c, 0x29, 0xb9, 0x73,
-       0x05, 0x45, 0xb8, 0x71, 0xa0, 0x12, 0x3e, 0x43, 0xd6, 0x2d, 0xfe, 0xb3,
-       0xe2, 0xab, 0x90, 0xf1, 0x3b, 0x9c, 0x81, 0x76, 0x72, 0x1d, 0x16, 0x0f,
-       0x30, 0x64, 0x3b, 0x7b, 0x04, 0x0b, 0xf1, 0x74, 0xf3, 0x75, 0x58, 0xea,
-       0x70, 0x9d, 0x10, 0x6e, 0x1a, 0x12, 0x0c, 0xed, 0x54, 0xfa, 0x89, 0x9d,
-       0x4c, 0x38, 0xe8, 0xd7, 0x31, 0xa5, 0x8f, 0x98, 0xb9, 0xcf, 0xf1, 0x11,
-       0x59, 0x2f, 0xee, 0x54, 0x52, 0x99, 0x0a, 0x8e, 0x43, 0x6c, 0xf7, 0xb2,
-       0x8c, 0x33, 0x29, 0xe3, 0x79, 0x62, 0xd1, 0xfc, 0x49, 0x19, 0x67, 0x37,
-       0x49, 0x2e, 0x2b, 0x32, 0x16, 0xa1, 0x96, 0x72, 0x54, 0x52, 0x8e, 0x63,
-       0x66, 0x85, 0x32, 0xa0, 0xe5, 0x64, 0xab, 0x61, 0xff, 0x8c, 0x39, 0x58,
-       0x63, 0xfa, 0x94, 0x65, 0xce, 0xbd, 0xbc, 0x6c, 0x9f, 0x5f, 0xec, 0x49,
-       0x7d, 0x61, 0xfb, 0x8c, 0x9c, 0x9c, 0x65, 0xfd, 0x3a, 0x4e, 0xcd, 0xbd,
-       0x0e, 0xa5, 0xfb, 0x8b, 0xd0, 0x48, 0x5c, 0xaf, 0x1f, 0x30, 0xfa, 0x36,
-       0x2a, 0x22, 0xab, 0x87, 0xbf, 0x9d, 0x75, 0x03, 0xea, 0xf3, 0xff, 0x2f,
-       0xbc, 0xd2, 0x8e, 0xdd, 0x58, 0x91, 0xcc, 0xd9, 0xb0, 0xe3, 0xbf, 0xb5,
-       0x62, 0xbf, 0xb2, 0x46, 0x48, 0x7b, 0xce, 0xb8, 0xb0, 0x84, 0x7d, 0x1f,
-       0x33, 0x1f, 0x56, 0x2c, 0xed, 0xc2, 0x45, 0xd9, 0xaf, 0x57, 0x29, 0x63,
-       0x77, 0xfa, 0x3a, 0xdc, 0x31, 0x30, 0x6e, 0x7b, 0x8d, 0x05, 0xc8, 0x84,
-       0x43, 0xed, 0x3d, 0x8a, 0x17, 0xbb, 0xd2, 0x2e, 0x2c, 0x1a, 0x20, 0x5f,
-       0x33, 0xe3, 0x4a, 0x6c, 0x7a, 0x8e, 0x87, 0x2f, 0x4c, 0x32, 0x1f, 0xcd,
-       0x4a, 0x7e, 0xd8, 0xd6, 0xbe, 0x30, 0xf1, 0x80, 0x12, 0xd3, 0x3e, 0xbf,
-       0x98, 0x4c, 0x1d, 0xfd, 0xae, 0xea, 0xf0, 0x30, 0x1f, 0xde, 0x3c, 0xe8,
-       0xa3, 0x2f, 0x28, 0xf4, 0x13, 0x3f, 0x7d, 0xbf, 0x01, 0x6f, 0xd3, 0x37,
-       0xee, 0x67, 0x5c, 0xfc, 0xfb, 0xd1, 0x2a, 0xdc, 0xb6, 0x27, 0x8a, 0x97,
-       0x0f, 0xfa, 0xd1, 0xbe, 0xe7, 0x56, 0xbc, 0xc5, 0x72, 0x63, 0x8c, 0x07,
-       0x63, 0xc3, 0x95, 0xfc, 0xf8, 0xf9, 0xa9, 0xe2, 0x67, 0x2d, 0xf1, 0xa8,
-       0x02, 0x27, 0xf7, 0xbb, 0xd0, 0x32, 0xa0, 0x62, 0xc0, 0x54, 0x70, 0xf7,
-       0x4d, 0x32, 0x1e, 0x2f, 0xd6, 0xd4, 0x5e, 0xb6, 0x8b, 0x25, 0x49, 0xe1,
-       0x70, 0x5e, 0xce, 0x93, 0x8e, 0x43, 0xf4, 0xcb, 0xdb, 0xc8, 0xc1, 0x76,
-       0xf4, 0xb5, 0xd1, 0x8f, 0x6c, 0xcc, 0x0a, 0xff, 0x18, 0x2b, 0xb4, 0x1e,
-       0xc9, 0x6b, 0x9d, 0x75, 0xfe, 0x14, 0xe7, 0x71, 0xc2, 0x53, 0x6f, 0x4d,
-       0x43, 0x51, 0x2c, 0x10, 0x0d, 0x69, 0x47, 0xb0, 0x1c, 0x7d, 0x63, 0xd0,
-       0x64, 0xcd, 0x7f, 0x1b, 0x79, 0xd4, 0x76, 0xf2, 0xa8, 0xee, 0xcc, 0x11,
-       0xce, 0xb1, 0xcf, 0x2b, 0x7b, 0xdf, 0xdb, 0xa8, 0xbb, 0xc5, 0x0e, 0x27,
-       0xf2, 0x5a, 0x45, 0x6c, 0xff, 0x38, 0x63, 0xd2, 0x82, 0xfe, 0x1c, 0x6e,
-       0x7c, 0xd6, 0xf4, 0x3c, 0x8c, 0x69, 0x3d, 0xf4, 0xf9, 0x5c, 0xdb, 0x3b,
-       0x85, 0x9b, 0x79, 0xca, 0x62, 0x65, 0xd1, 0xd0, 0x86, 0xd7, 0xa9, 0x7c,
-       0x2f, 0xdb, 0xdc, 0x3a, 0xb9, 0x8f, 0xd0, 0xcb, 0x36, 0x7b, 0x58, 0xb7,
-       0xbe, 0xdf, 0xe2, 0x5c, 0xba, 0x59, 0x3f, 0x14, 0xd8, 0xa8, 0x98, 0xac,
-       0xeb, 0xe4, 0x11, 0xa8, 0xd9, 0x7f, 0x79, 0xae, 0xda, 0x88, 0x31, 0xfd,
-       0x93, 0xfe, 0x7e, 0x7e, 0xf4, 0x3a, 0x84, 0x68, 0x24, 0x4f, 0x9b, 0x9b,
-       0xa0, 0xd3, 0x66, 0x5d, 0x93, 0x7d, 0x6d, 0x97, 0x71, 0xb8, 0x67, 0xc6,
-       0x66, 0xb2, 0x8f, 0xbe, 0x4c, 0x48, 0xeb, 0x42, 0xfd, 0x89, 0x69, 0x90,
-       0x71, 0x48, 0x7f, 0xcb, 0xf1, 0xe4, 0xd8, 0xd5, 0xe3, 0xa8, 0x26, 0x3e,
-       0x5d, 0x2c, 0x98, 0x3c, 0x33, 0xe7, 0xe4, 0xe2, 0x31, 0xc7, 0xc7, 0x76,
-       0x38, 0xf2, 0x7b, 0xd8, 0x66, 0x36, 0xb7, 0x07, 0x22, 0x69, 0x95, 0x32,
-       0xc2, 0x58, 0xd1, 0x96, 0x54, 0x62, 0x15, 0xd1, 0xfa, 0xce, 0x69, 0x08,
-       0x45, 0x7e, 0xc6, 0xb6, 0xa7, 0xb1, 0xed, 0x67, 0xd9, 0x76, 0x8a, 0x6d,
-       0x8f, 0xb0, 0xed, 0x1f, 0x5c, 0x6a, 0x5b, 0xc5, 0xfd, 0x7b, 0xf2, 0xb6,
-       0xe5, 0x46, 0xa4, 0x89, 0x59, 0xdf, 0x34, 0xd9, 0x03, 0xad, 0xe6, 0xdc,
-       0x8b, 0xee, 0x74, 0xc6, 0xf6, 0x9c, 0xbd, 0x2d, 0x60, 0xec, 0xb9, 0x6b,
-       0x8f, 0x82, 0xf7, 0xc3, 0xef, 0x63, 0xc2, 0x9f, 0xe3, 0x11, 0x79, 0x1b,
-       0xd2, 0x68, 0x43, 0x5a, 0xf2, 0x7f, 0xd2, 0xf4, 0xa5, 0x8e, 0xd8, 0x8f,
-       0xec, 0x3f, 0x90, 0x3f, 0x27, 0x44, 0x1f, 0xbf, 0x23, 0xee, 0x86, 0x4e,
-       0xbc, 0xc7, 0xd8, 0xf9, 0xa3, 0x8c, 0x07, 0xe9, 0xb4, 0x0f, 0xcf, 0x66,
-       0x04, 0x1b, 0xdb, 0x88, 0x8d, 0x82, 0xf7, 0xe4, 0x81, 0xc3, 0x47, 0x1f,
-       0x0b, 0xb0, 0xf2, 0xb3, 0xb4, 0x9f, 0x67, 0x69, 0x3f, 0xcf, 0x0e, 0xfb,
-       0x70, 0xf3, 0x21, 0x2f, 0xce, 0x11, 0x6b, 0x7a, 0x59, 0x26, 0x91, 0x6a,
-       0xc0, 0x4d, 0xe4, 0x59, 0x87, 0x7b, 0x19, 0x97, 0x19, 0xff, 0xeb, 0xb2,
-       0x1a, 0x76, 0xf5, 0x57, 0xa0, 0x7e, 0x48, 0x62, 0x70, 0x05, 0x1e, 0xe9,
-       0xf3, 0x62, 0xce, 0x7e, 0xd9, 0x87, 0x24, 0x2f, 0xec, 0xbb, 0x13, 0xc3,
-       0x8e, 0x8f, 0x4f, 0xa3, 0x7f, 0x54, 0xa2, 0x76, 0x48, 0xae, 0xc9, 0x53,
-       0x68, 0xb3, 0x0b, 0x0e, 0x55, 0x71, 0xbc, 0xb7, 0x62, 0xfe, 0xa1, 0x00,
-       0xf1, 0xdc, 0x8f, 0x48, 0x76, 0xf9, 0x45, 0xc1, 0xe4, 0xed, 0x63, 0x53,
-       0x63, 0x9a, 0xf8, 0xa1, 0x83, 0x61, 0x91, 0x3c, 0x86, 0x5d, 0x7e, 0x3e,
-       0x15, 0x27, 0x7f, 0xcb, 0x67, 0x52, 0x26, 0x1f, 0x7b, 0xa6, 0xe2, 0xe2,
-       0x65, 0x7c, 0x6a, 0x1c, 0x90, 0x6f, 0x0d, 0xed, 0xf3, 0xc4, 0xd7, 0xaf,
-       0x43, 0xc4, 0x91, 0xe7, 0xfe, 0x62, 0x96, 0x0b, 0xe4, 0xfc, 0x7d, 0x2a,
-       0x9e, 0xfb, 0x26, 0xfd, 0xd4, 0x85, 0x58, 0x45, 0x8e, 0x0b, 0xdf, 0xbe,
-       0xa7, 0x01, 0xbb, 0xa8, 0x8f, 0x56, 0xfa, 0x91, 0x2f, 0x1c, 0xb5, 0xad,
-       0x0a, 0xc9, 0x5b, 0x2b, 0x71, 0xe7, 0x1e, 0x3f, 0x63, 0xf8, 0xb5, 0x48,
-       0x0e, 0xcf, 0x66, 0x5b, 0xd5, 0xe8, 0x9d, 0xcc, 0xe7, 0xb7, 0xa7, 0x96,
-       0xd9, 0x0f, 0x39, 0x7b, 0xf2, 0xb2, 0xf6, 0xff, 0xda, 0x7d, 0xde, 0xd0,
-       0xb8, 0xce, 0x7c, 0xde, 0x64, 0xce, 0x41, 0x0e, 0x76, 0x02, 0xa1, 0x4a,
-       0xe6, 0xe7, 0x46, 0x39, 0x16, 0x31, 0x9f, 0x7f, 0xc8, 0x2f, 0xcf, 0x6e,
-       0x15, 0x59, 0x9c, 0xf2, 0x97, 0xc7, 0xb8, 0x6b, 0xca, 0x18, 0xeb, 0x23,
-       0xd3, 0x90, 0xe7, 0x63, 0x5f, 0xd8, 0x7f, 0x6f, 0x40, 0xe9, 0x0f, 0xd1,
-       0x6a, 0x1b, 0x83, 0x7d, 0x0f, 0x29, 0x86, 0xd6, 0xa4, 0x12, 0xba, 0x46,
-       0xdf, 0xc4, 0x92, 0xec, 0x2f, 0x10, 0xcb, 0xae, 0xf6, 0x8a, 0x2c, 0xf7,
-       0x67, 0x57, 0x61, 0x9c, 0x73, 0x5c, 0xc4, 0x3a, 0x37, 0xf4, 0xfa, 0x68,
-       0xa3, 0x50, 0x0e, 0x37, 0xd7, 0xe1, 0x43, 0xf2, 0x9c, 0xb6, 0xe4, 0x9b,
-       0xd0, 0x18, 0x5f, 0xef, 0x4c, 0xfe, 0x02, 0x65, 0xc4, 0x94, 0x3b, 0x92,
-       0x5f, 0xd8, 0x23, 0xa1, 0x7d, 0x4e, 0xbd, 0xc2, 0xd1, 0x03, 0x17, 0xfb,
-       0x2e, 0xc7, 0x27, 0xad, 0xd0, 0x78, 0xe5, 0x2a, 0x3c, 0x6c, 0x68, 0xd9,
-       0x9c, 0x18, 0xfd, 0x5f, 0x9e, 0xe8, 0xaf, 0x7f, 0xfa, 0xfd, 0xe6, 0x9c,
-       0x5d, 0xea, 0x99, 0xbb, 0xf0, 0x2d, 0x07, 0x77, 0xd7, 0x6c, 0x74, 0x47,
-       0x3b, 0x1e, 0x93, 0xb5, 0xd0, 0x35, 0xce, 0x3a, 0x41, 0x3b, 0x76, 0xee,
-       0x6d, 0xc3, 0xe6, 0xbd, 0x82, 0xad, 0xf5, 0xad, 0x8b, 0x94, 0x19, 0xf4,
-       0xc3, 0x01, 0x27, 0x97, 0x71, 0x1b, 0x9f, 0xca, 0x9a, 0xab, 0xea, 0x71,
-       0xf6, 0xc0, 0x74, 0xac, 0x19, 0xcd, 0xb5, 0x35, 0x2b, 0x53, 0x4a, 0xff,
-       0x8a, 0x22, 0xc9, 0x9c, 0xc5, 0xc7, 0xd8, 0xc9, 0x79, 0xc1, 0xa9, 0x7e,
-       0x89, 0x3b, 0x0a, 0x7c, 0xf7, 0xc8, 0x5e, 0xe6, 0x32, 0xe4, 0xf9, 0x7a,
-       0x4c, 0xdb, 0xcc, 0xdf, 0x3b, 0x8a, 0x73, 0x72, 0x6d, 0xbe, 0x8a, 0x17,
-       0xe5, 0xed, 0x41, 0x74, 0x97, 0xb7, 0xa1, 0x4f, 0x39, 0x06, 0xe6, 0xd8,
-       0xe4, 0x83, 0x97, 0xfd, 0xf9, 0x8b, 0x22, 0x67, 0x5d, 0x30, 0x3b, 0x35,
-       0xbe, 0x6f, 0x9f, 0xd4, 0xfd, 0x75, 0xc5, 0xf9, 0xd8, 0x94, 0x93, 0xd7,
-       0x24, 0x16, 0x5e, 0x83, 0x98, 0x3f, 0xef, 0xff, 0xdf, 0xe4, 0xf3, 0xcd,
-       0x82, 0x01, 0x93, 0x75, 0xef, 0x2e, 0x41, 0xf1, 0x76, 0x87, 0xc3, 0x5d,
-       0x6e, 0x9f, 0x64, 0xf8, 0x8a, 0xf6, 0xa7, 0xda, 0xaf, 0xb4, 0x2f, 0x71,
-       0x5a, 0x74, 0xda, 0xc8, 0xba, 0xa2, 0x3f, 0x07, 0xa3, 0x65, 0x4d, 0x96,
-       0xdc, 0xad, 0xcd, 0xd9, 0xa7, 0x29, 0x26, 0x6f, 0xee, 0x66, 0x0e, 0x55,
-       0xb2, 0x9f, 0xd7, 0xe4, 0x3e, 0x4b, 0x07, 0x02, 0x28, 0xda, 0xef, 0x21,
-       0xae, 0xcf, 0x80, 0x7b, 0x7f, 0x01, 0xed, 0x55, 0x38, 0xc2, 0x6b, 0xf7,
-       0x6d, 0x31, 0xae, 0x85, 0x6b, 0x7f, 0x21, 0x79, 0xb9, 0x70, 0xbe, 0x13,
-       0xf7, 0xad, 0x65, 0x1c, 0x57, 0xf7, 0x7b, 0x19, 0x9f, 0xab, 0xe1, 0x61,
-       0xcc, 0x5b, 0x32, 0xf0, 0x67, 0x28, 0xd8, 0x5f, 0x8c, 0x07, 0x06, 0xae,
-       0xc7, 0xcc, 0xfd, 0x25, 0xb8, 0x7f, 0x60, 0x26, 0x66, 0xec, 0x97, 0xdc,
-       0x49, 0x47, 0x60, 0x7f, 0x29, 0x56, 0x0c, 0x04, 0x51, 0xb1, 0xbf, 0x0c,
-       0x6d, 0x03, 0xb3, 0xa0, 0xed, 0x2f, 0xc7, 0x5d, 0x03, 0x35, 0x28, 0xdf,
-       0xaf, 0xe1, 0xce, 0x01, 0x03, 0x65, 0xfb, 0x2b, 0x18, 0xd3, 0x42, 0x8c,
-       0x9d, 0x7e, 0x2c, 0xdf, 0xc3, 0xb9, 0x39, 0x58, 0x45, 0xbf, 0x58, 0x45,
-       0x4e, 0xbd, 0x1a, 0xfb, 0x52, 0x73, 0x50, 0x72, 0x30, 0x80, 0xa5, 0x7b,
-       0xc6, 0x35, 0x52, 0x1a, 0x2c, 0x0e, 0x35, 0xa0, 0xe8, 0xa0, 0xe4, 0x7e,
-       0xc1, 0x13, 0x2d, 0x08, 0x5e, 0x58, 0x84, 0x72, 0xe6, 0xbe, 0xc0, 0x7b,
-       0x63, 0xc0, 0xec, 0x31, 0x17, 0x8e, 0x68, 0xab, 0xb0, 0x75, 0xec, 0x9b,
-       0x93, 0x36, 0x2f, 0xfb, 0x47, 0xe5, 0x9c, 0x5f, 0xb9, 0x96, 0x7b, 0xab,
-       0xd1, 0x33, 0x96, 0x5f, 0x07, 0x0b, 0xf6, 0x6d, 0xa7, 0x06, 0xc7, 0x33,
-       0xf2, 0x4c, 0x7c, 0x04, 0xb4, 0x6f, 0xa5, 0x5b, 0xce, 0x8f, 0xbb, 0xa2,
-       0x6a, 0x59, 0x77, 0xf3, 0x86, 0x5b, 0xe2, 0x99, 0x4d, 0xcc, 0xbb, 0x24,
-       0x87, 0xdd, 0x78, 0xcb, 0x9a, 0xcc, 0x07, 0x97, 0xf6, 0x13, 0xfa, 0xcc,
-       0x85, 0x01, 0x0d, 0x5f, 0xc3, 0x1a, 0x67, 0x0d, 0x55, 0xe5, 0x9c, 0xc9,
-       0x79, 0x56, 0xe7, 0x2c, 0x39, 0xed, 0x2c, 0x0e, 0xd3, 0xc1, 0xd4, 0x75,
-       0xa8, 0xc9, 0x38, 0x6b, 0xb5, 0x75, 0x71, 0xbc, 0xa0, 0xb6, 0x1a, 0xd6,
-       0xe4, 0xd9, 0x0f, 0x6b, 0xbe, 0x86, 0x98, 0xa9, 0x5d, 0x3a, 0x1f, 0x12,
-       0xd4, 0x47, 0x10, 0x0c, 0x6c, 0xc3, 0x3a, 0xe7, 0x7c, 0xa0, 0x12, 0x6d,
-       0x97, 0x73, 0x46, 0xfc, 0x5e, 0x0d, 0x23, 0x93, 0x5f, 0x6b, 0x94, 0xb3,
-       0xd7, 0xb2, 0x8f, 0x65, 0x33, 0xe7, 0x97, 0x3c, 0xf9, 0x88, 0xa2, 0xf6,
-       0x3a, 0xeb, 0x63, 0xab, 0x5c, 0x8c, 0x01, 0x2d, 0x0a, 0xe2, 0x45, 0xd1,
-       0x90, 0xfe, 0xe1, 0xe4, 0xba, 0x83, 0x67, 0x74, 0x8b, 0x52, 0x30, 0xda,
-       0xa3, 0xb8, 0x47, 0x73, 0xeb, 0x0e, 0x2e, 0xf2, 0xd8, 0x6d, 0xa9, 0x4a,
-       0x96, 0xd1, 0x30, 0x7b, 0xae, 0x1b, 0xaf, 0x26, 0xca, 0x9c, 0xb3, 0xc7,
-       0x5b, 0xe7, 0x16, 0xe0, 0x11, 0xda, 0x7e, 0xeb, 0x8d, 0xc7, 0xf0, 0x41,
-       0x86, 0x5c, 0x23, 0x61, 0x85, 0x87, 0xd9, 0xe7, 0xd1, 0x84, 0x8a, 0x17,
-       0x07, 0xb7, 0x84, 0x87, 0x9c, 0xfe, 0xbf, 0x8d, 0xcd, 0x23, 0x92, 0x77,
-       0xb5, 0xd9, 0xdb, 0x53, 0xed, 0xb6, 0xc4, 0xdd, 0x6c, 0xa2, 0x92, 0xb9,
-       0xb9, 0x86, 0x0f, 0xe6, 0x6e, 0xc0, 0x39, 0x96, 0x19, 0x4d, 0x6c, 0xc4,
-       0x27, 0xe4, 0x08, 0x99, 0xc4, 0x72, 0xbc, 0xc6, 0x5c, 0xf2, 0x7b, 0x89,
-       0x56, 0xe6, 0x96, 0xab, 0xf0, 0xca, 0xa0, 0xf0, 0x8f, 0x16, 0x2c, 0x4c,
-       0x28, 0x58, 0x1a, 0x5a, 0x85, 0x93, 0xc3, 0xcc, 0x29, 0x07, 0xe5, 0xbc,
-       0xeb, 0x35, 0x58, 0x93, 0x3b, 0x0f, 0xc5, 0xe7, 0x31, 0x3e, 0x5f, 0x89,
-       0xa3, 0xc3, 0x01, 0x1c, 0x60, 0x0e, 0xf9, 0x0e, 0x31, 0x64, 0x28, 0xd1,
-       0x80, 0xd3, 0xcc, 0x95, 0x7e, 0x94, 0x88, 0xe0, 0x33, 0xfe, 0x3e, 0x92,
-       0x90, 0xf5, 0xef, 0x66, 0x5c, 0xc8, 0xfc, 0x18, 0x05, 0xbd, 0x33, 0x70,
-       0xbc, 0xed, 0x79, 0x52, 0xc9, 0x23, 0xfc, 0xb4, 0xe2, 0xf4, 0x70, 0x2b,
-       0xce, 0x0c, 0x2e, 0xc3, 0x99, 0xe1, 0x5f, 0xe1, 0x83, 0x41, 0x91, 0x57,
-       0xce, 0x2c, 0x3a, 0xef, 0x16, 0xb0, 0x5d, 0xe2, 0xd4, 0xf0, 0xbf, 0xa5,
-       0xed, 0x8f, 0xec, 0xe3, 0xab, 0xa4, 0xdd, 0xe7, 0xff, 0x48, 0xdb, 0xa2,
-       0x4b, 0x89, 0xf5, 0x5e, 0x9c, 0x4c, 0x78, 0x99, 0x57, 0x8d, 0xdf, 0x50,
-       0x84, 0xf1, 0xf9, 0xcc, 0x36, 0xb1, 0x3d, 0x53, 0x88, 0x17, 0xfb, 0xdc,
-       0xe4, 0x8a, 0x5f, 0x25, 0x7e, 0x74, 0xd2, 0x0e, 0x0b, 0x99, 0xbf, 0x79,
-       0xa9, 0xe3, 0xf9, 0xc4, 0xfb, 0x55, 0xd4, 0x9f, 0x0f, 0xa7, 0x12, 0x7e,
-       0xbc, 0x9e, 0xa8, 0x8f, 0x67, 0x95, 0x46, 0x58, 0x15, 0xb9, 0xbc, 0xf2,
-       0x68, 0xa2, 0xc3, 0x91, 0xe9, 0xd5, 0x44, 0x9b, 0xbd, 0x95, 0x3a, 0xee,
-       0x49, 0x7d, 0xdb, 0x39, 0x6f, 0xf8, 0x4a, 0xe2, 0x82, 0x2d, 0xe7, 0x88,
-       0x9f, 0xa1, 0x4e, 0x4f, 0x26, 0xe2, 0x28, 0x62, 0x9e, 0x72, 0x2c, 0x31,
-       0x8e, 0x61, 0xda, 0xe5, 0x3b, 0x7d, 0xc6, 0x89, 0x35, 0xd8, 0x84, 0xcf,
-       0xd2, 0x85, 0x78, 0x8b, 0x7d, 0x94, 0x37, 0xb9, 0x31, 0xe1, 0xb4, 0xb7,
-       0x09, 0x9f, 0xf4, 0x29, 0xc8, 0xcc, 0xdd, 0x84, 0x8f, 0xf9, 0xec, 0x0d,
-       0x5e, 0x9f, 0x0b, 0x53, 0xc2, 0xc9, 0x67, 0x67, 0xfa, 0x54, 0x27, 0x07,
-       0xee, 0x6e, 0xde, 0x84, 0xd3, 0xe9, 0x8f, 0x71, 0x80, 0xb9, 0xf4, 0x63,
-       0xe6, 0x34, 0x44, 0xa6, 0x11, 0x70, 0x8d, 0x42, 0x9c, 0xe4, 0xf3, 0x5a,
-       0x59, 0xef, 0xd1, 0x72, 0xe5, 0x3f, 0xe2, 0x78, 0x1e, 0x61, 0x5b, 0x67,
-       0xd3, 0xdf, 0x61, 0xbb, 0xc2, 0x39, 0xbf, 0xc3, 0x76, 0x7f, 0x85, 0x91,
-       0x49, 0x7d, 0x9c, 0x36, 0x65, 0x5c, 0x1b, 0x7c, 0x28, 0xf6, 0x73, 0x1c,
-       0x0f, 0xf3, 0xbb, 0x03, 0x13, 0x99, 0x9d, 0xfc, 0x7e, 0x0d, 0x87, 0x33,
-       0x12, 0xdb, 0xf3, 0x67, 0x87, 0x64, 0x7d, 0x4b, 0xfc, 0x47, 0x9f, 0x5c,
-       0x97, 0x9b, 0x8e, 0x54, 0x7f, 0x59, 0x7c, 0x1a, 0xed, 0xe8, 0x3f, 0xcc,
-       0x2b, 0xc7, 0x47, 0x61, 0x0b, 0xbb, 0x0e, 0xb8, 0x91, 0xea, 0x25, 0x9f,
-       0xed, 0xad, 0xc4, 0x53, 0xbb, 0x35, 0x3c, 0xb9, 0xfb, 0x5a, 0x6c, 0xd9,
-       0x7d, 0x3d, 0xf6, 0xed, 0xae, 0x46, 0x92, 0xb9, 0xf2, 0x27, 0x4d, 0xb6,
-       0x3d, 0x87, 0x9f, 0x1d, 0xf4, 0x05, 0x2f, 0xbf, 0x5f, 0x0e, 0x8b, 0x9f,
-       0x18, 0xb8, 0xd1, 0xf1, 0x97, 0x16, 0xdc, 0xe0, 0x7c, 0xc7, 0x30, 0x27,
-       0xd3, 0x19, 0xde, 0x90, 0xdd, 0x14, 0x7e, 0x28, 0x3b, 0x1d, 0x5b, 0xfb,
-       0xab, 0xd0, 0xbf, 0xbb, 0x32, 0x5e, 0xc9, 0x7e, 0x56, 0xce, 0xb3, 0x31,
-       0xc4, 0xba, 0x66, 0x63, 0x4f, 0x78, 0x4d, 0xf6, 0x79, 0xb4, 0x65, 0xfd,
-       0xd8, 0xdc, 0x1f, 0x60, 0x5f, 0xb2, 0x86, 0xef, 0x3e, 0xf1, 0x20, 0x6c,
-       0xfb, 0x42, 0xd3, 0x11, 0xc6, 0xb7, 0x1f, 0xa3, 0x9d, 0xcf, 0x92, 0xfd,
-       0x1b, 0xc8, 0xa9, 0x0a, 0xe2, 0xde, 0xa8, 0x8d, 0x53, 0xe1, 0x71, 0xdc,
-       0xc1, 0xf6, 0x76, 0xf6, 0x97, 0x51, 0xa6, 0xe2, 0x78, 0x21, 0xef, 0x2d,
-       0x0d, 0x6f, 0xc4, 0xae, 0x31, 0x59, 0x03, 0x3c, 0x81, 0xa5, 0xe4, 0x2c,
-       0x15, 0x73, 0x7f, 0x56, 0x82, 0x32, 0xcd, 0x7d, 0xbe, 0x59, 0xec, 0x2f,
-       0x4e, 0xfb, 0x13, 0xac, 0x5c, 0x87, 0xb5, 0xce, 0xd9, 0xc2, 0x76, 0xbc,
-       0x94, 0x10, 0x9c, 0x5e, 0x8d, 0x83, 0x89, 0x75, 0xd8, 0x92, 0x92, 0x7d,
-       0xc0, 0xe5, 0xa8, 0xc9, 0xfe, 0x55, 0x78, 0x3d, 0xe3, 0xa9, 0x2b, 0xfb,
-       0x3f, 0xb0, 0x38, 0x9b, 0xa6, 0x5c, 0xc3, 0xe1, 0xb5, 0xd9, 0x7d, 0xe1,
-       0x07, 0xb3, 0xad, 0x98, 0x95, 0x95, 0xf5, 0xb4, 0x36, 0xe2, 0xbb, 0xac,
-       0xa7, 0x4d, 0x60, 0x61, 0xf6, 0x0c, 0x16, 0x65, 0xdf, 0x62, 0x2c, 0x16,
-       0xdc, 0x90, 0x75, 0xb6, 0x5f, 0x31, 0x39, 0x91, 0x7d, 0xc3, 0xbf, 0xc4,
-       0xd6, 0xbd, 0x71, 0xc6, 0xc2, 0x3c, 0x46, 0xd5, 0x6b, 0x07, 0x04, 0x5f,
-       0xc6, 0x3c, 0x4e, 0x2c, 0xe8, 0x4b, 0xdd, 0x43, 0x7b, 0x54, 0xc9, 0xf3,
-       0x25, 0xce, 0xac, 0xa3, 0x2f, 0x77, 0x92, 0x9f, 0x4b, 0xfc, 0xbb, 0x6b,
-       0xf2, 0xbe, 0xf0, 0x3a, 0x89, 0x7d, 0x3a, 0x8e, 0x66, 0x9c, 0xbd, 0x0c,
-       0xdd, 0x6b, 0xdc, 0xc1, 0x67, 0x52, 0xff, 0x2f, 0x91, 0xdc, 0xbb, 0xca,
-       0xde, 0xe9, 0xac, 0x19, 0x29, 0x38, 0x1e, 0x62, 0x5f, 0xa4, 0x91, 0x4b,
-       0xf7, 0xcb, 0x59, 0xce, 0x75, 0x72, 0x96, 0xd3, 0x72, 0x19, 0x6d, 0xf6,
-       0x96, 0x14, 0x1e, 0x2c, 0x45, 0x00, 0xcb, 0x47, 0x0b, 0x10, 0x3b, 0x58,
-       0x8c, 0xdb, 0x77, 0xb7, 0xd3, 0x96, 0x2d, 0xda, 0xaf, 0x61, 0xae, 0x55,
-       0x8a, 0xb1, 0x84, 0xf7, 0x1e, 0xe8, 0x0f, 0xb6, 0x02, 0xa1, 0x13, 0xa7,
-       0x5d, 0xc5, 0xb8, 0x9f, 0xb1, 0x23, 0x9d, 0x5e, 0x8e, 0xd8, 0xfe, 0xe3,
-       0xb0, 0xd2, 0xb4, 0xc9, 0x3d, 0xc4, 0x99, 0xbd, 0x6e, 0xa8, 0xd1, 0x5f,
-       0x61, 0xdf, 0xb0, 0x8a, 0xf2, 0x3d, 0x2f, 0xd8, 0x01, 0x43, 0x31, 0xce,
-       0x85, 0xb2, 0xe4, 0x40, 0x6e, 0x94, 0x26, 0x5b, 0x30, 0x4a, 0xac, 0xf1,
-       0x25, 0x63, 0xc8, 0x64, 0xda, 0x90, 0x26, 0x96, 0xa4, 0xc9, 0x9b, 0x4a,
-       0x92, 0x26, 0x63, 0x79, 0x1d, 0x76, 0xd1, 0x5f, 0x0a, 0x98, 0xcb, 0x6f,
-       0xcb, 0xdc, 0x0a, 0x6b, 0xf8, 0x4e, 0x6c, 0x1f, 0x6e, 0xe3, 0x87, 0xfc,
-       0x71, 0xf8, 0xdb, 0x58, 0x38, 0x7a, 0x02, 0x3d, 0x99, 0x38, 0xed, 0xf1,
-       0x63, 0x6c, 0x4f, 0x1f, 0xc3, 0x53, 0x7d, 0x5d, 0xcc, 0x11, 0x8e, 0xe1,
-       0x49, 0x5e, 0xf7, 0xf5, 0x19, 0x9d, 0x01, 0xf5, 0x18, 0x52, 0xe9, 0x4d,
-       0xb8, 0xb3, 0x5f, 0x61, 0x0e, 0xb7, 0x09, 0x77, 0xec, 0xa7, 0x2d, 0x3e,
-       0xd1, 0x81, 0xd6, 0xd1, 0xd7, 0x90, 0xc8, 0xbc, 0xc4, 0xfc, 0x6a, 0x23,
-       0x7a, 0x52, 0x1b, 0xc8, 0xbd, 0x9e, 0x67, 0x3b, 0x47, 0xe8, 0xe7, 0x9d,
-       0x1c, 0xe3, 0xe3, 0xfc, 0x5c, 0xc2, 0x70, 0x4d, 0x57, 0xf2, 0x58, 0x4d,
-       0xbf, 0x4f, 0x49, 0xee, 0xb0, 0x8e, 0x38, 0x71, 0x6f, 0x29, 0x8a, 0x45,
-       0xbf, 0xf9, 0x35, 0x69, 0x99, 0x0b, 0xb1, 0x7d, 0x59, 0x9b, 0x76, 0xa3,
-       0x28, 0x29, 0xeb, 0xd1, 0xe3, 0xc1, 0x22, 0x72, 0x00, 0x6f, 0x52, 0x74,
-       0xd8, 0x6e, 0x77, 0xa7, 0x04, 0x4b, 0x72, 0xdc, 0xfc, 0xe5, 0xcc, 0xaf,
-       0xb0, 0x75, 0x70, 0x1a, 0x16, 0xf5, 0x55, 0x23, 0xee, 0xb7, 0xed, 0xe7,
-       0xe8, 0x6b, 0x09, 0xe6, 0x58, 0xbb, 0xfa, 0x63, 0xc4, 0x94, 0x12, 0xe4,
-       0x72, 0x3d, 0xd1, 0x4d, 0xd0, 0xd4, 0xaf, 0xd8, 0x23, 0x99, 0xc5, 0x79,
-       0x13, 0xee, 0x3a, 0x7e, 0x43, 0x29, 0xce, 0x97, 0xe4, 0xd6, 0xc5, 0xff,
-       0xfc, 0x12, 0xb7, 0xf9, 0xd7, 0x95, 0xbf, 0xff, 0xdf, 0x58, 0x7e, 0x62,
-       0xca, 0xd9, 0xb5, 0xfc, 0x7b, 0x39, 0x32, 0xd6, 0xeb, 0xe5, 0xdc, 0x9a,
-       0x25, 0x7c, 0x49, 0xce, 0xdc, 0x1e, 0x4f, 0x14, 0x30, 0x4e, 0xaa, 0x0b,
-       0x3c, 0x50, 0xfd, 0x1e, 0x14, 0x32, 0x9e, 0x55, 0x61, 0xb3, 0xdf, 0xc6,
-       0x62, 0xb3, 0x00, 0x87, 0x1b, 0x62, 0x72, 0xce, 0xa2, 0xdd, 0xe3, 0xf0,
-       0xd1, 0xd5, 0xf7, 0xfc, 0xe1, 0xba, 0xf5, 0x26, 0x72, 0x37, 0x39, 0x5f,
-       0xd0, 0x86, 0x53, 0x15, 0xf2, 0xae, 0xd0, 0x26, 0xe7, 0xdc, 0x59, 0x51,
-       0xad, 0xac, 0xa3, 0xe9, 0x38, 0x61, 0xd4, 0xeb, 0x95, 0x2a, 0xe3, 0xb9,
-       0xf2, 0xae, 0x6d, 0xf9, 0xa3, 0x8c, 0xf5, 0x72, 0x86, 0xe2, 0x5f, 0xda,
-       0xa7, 0x58, 0x83, 0xed, 0x4f, 0x34, 0x63, 0x62, 0x95, 0xc4, 0xff, 0xff,
-       0xe6, 0xcb, 0x73, 0xba, 0x6d, 0xa9, 0x1f, 0x96, 0xca, 0xb9, 0x24, 0x69,
-       0x7b, 0x3b, 0xf3, 0x27, 0x8f, 0x11, 0xc6, 0xbb, 0xc2, 0xd2, 0x9c, 0xfd,
-       0xa4, 0x1c, 0xa7, 0x28, 0x34, 0xce, 0x4f, 0xbe, 0x3b, 0xf2, 0xd7, 0xa5,
-       0xc2, 0x0f, 0xb7, 0xa5, 0x36, 0x91, 0x9b, 0x8b, 0x3c, 0xbf, 0xb7, 0xd7,
-       0xf8, 0x2b, 0x59, 0xf6, 0xee, 0xc9, 0xf6, 0xc4, 0x16, 0xe4, 0x4c, 0x8e,
-       0xdc, 0x93, 0x3a, 0xa2, 0xb3, 0xa9, 0x75, 0x5c, 0xcc, 0x85, 0x6f, 0xc0,
-       0xa3, 0xf4, 0xc1, 0x99, 0xc6, 0xeb, 0x76, 0x97, 0x9c, 0x9f, 0xa9, 0xd5,
-       0xa6, 0xf4, 0xf5, 0x0b, 0x47, 0x96, 0x42, 0xca, 0xd2, 0x9f, 0x92, 0xb3,
-       0xa8, 0x9f, 0xd9, 0xb5, 0x55, 0xf2, 0xfc, 0xc2, 0x64, 0xfb, 0x35, 0xce,
-       0xd9, 0xbe, 0x7d, 0xa9, 0xbc, 0xdc, 0xb2, 0xde, 0xea, 0xcf, 0xf7, 0x55,
-       0x77, 0x79, 0x3c, 0x22, 0x5b, 0xbc, 0xf4, 0x4a, 0x99, 0xe1, 0xcb, 0x9f,
-       0x59, 0x9d, 0xe1, 0xd4, 0xc9, 0xf7, 0x29, 0x32, 0x6e, 0x62, 0x9e, 0x7a,
-       0xf5, 0x18, 0xb5, 0x29, 0x63, 0x92, 0x3a, 0x32, 0x2e, 0x6d, 0xd2, 0x0e,
-       0x4a, 0xcb, 0x50, 0x2c, 0x75, 0x84, 0xbb, 0x6a, 0x0e, 0x07, 0x2f, 0x17,
-       0x5e, 0x2e, 0xb6, 0x51, 0x66, 0xdb, 0xef, 0x39, 0x31, 0x53, 0xda, 0xe1,
-       0x38, 0xc6, 0x56, 0xd1, 0xce, 0xed, 0x2e, 0xe2, 0xa7, 0xfd, 0x5e, 0x73,
-       0x00, 0x5b, 0x13, 0xa2, 0x6b, 0x23, 0x70, 0x88, 0xd8, 0xb1, 0xd9, 0xe1,
-       0x1b, 0x1e, 0x74, 0xa7, 0xf3, 0xfb, 0xa3, 0x85, 0x72, 0xf6, 0x36, 0x20,
-       0x3a, 0xef, 0x36, 0xc9, 0xb3, 0xb4, 0x85, 0xba, 0x9b, 0x5c, 0x69, 0x3d,
-       0xfe, 0x99, 0xf3, 0x2b, 0xe7, 0x8f, 0x73, 0x7b, 0x95, 0x71, 0xda, 0x51,
-       0x2e, 0x5e, 0x81, 0xf1, 0x9d, 0x3c, 0x69, 0xf2, 0x5c, 0x66, 0x77, 0xe6,
-       0x9f, 0xed, 0x71, 0xe7, 0x5c, 0xe6, 0xe5, 0x77, 0x3a, 0xd2, 0x9a, 0x6d,
-       0x1f, 0xe0, 0xb3, 0xcb, 0x67, 0x34, 0x19, 0xd3, 0x0d, 0x39, 0xcb, 0xf9,
-       0x4f, 0x9c, 0xbb, 0xa9, 0x65, 0xc7, 0x2b, 0x72, 0x67, 0x96, 0x63, 0xea,
-       0x42, 0x23, 0x8f, 0xab, 0x41, 0xcb, 0x72, 0x70, 0xf5, 0x0e, 0x67, 0x0f,
-       0x3e, 0x8d, 0x60, 0x6b, 0x1b, 0x2c, 0xbb, 0xd8, 0xc8, 0xe3, 0x80, 0x61,
-       0xce, 0x51, 0xba, 0x30, 0x3b, 0x5c, 0x2c, 0x1c, 0x3b, 0xe8, 0x8e, 0x06,
-       0xb5, 0x0f, 0x10, 0xaa, 0x3b, 0xe6, 0xec, 0x95, 0x0a, 0x36, 0x18, 0x58,
-       0x9f, 0x21, 0xdf, 0x1e, 0x93, 0x77, 0x1d, 0xe5, 0xda, 0x69, 0x9f, 0xd7,
-       0x82, 0xa5, 0xed, 0xc4, 0x52, 0xeb, 0xcf, 0x3d, 0x4e, 0x7b, 0xc1, 0xf6,
-       0x61, 0x25, 0xd8, 0xba, 0x51, 0xc9, 0xb7, 0xe7, 0xfb, 0x92, 0xf6, 0xea,
-       0x58, 0xbf, 0x7a, 0xf2, 0xfd, 0x42, 0x83, 0x6d, 0x5c, 0xbd, 0x9f, 0x3c,
-       0x3d, 0x2e, 0x7b, 0x51, 0x87, 0x27, 0x39, 0xe1, 0xb1, 0x3f, 0xd8, 0x8b,
-       0xfa, 0xd2, 0x3e, 0x63, 0xec, 0xb3, 0xb5, 0x58, 0x89, 0x91, 0x31, 0x74,
-       0xa1, 0x30, 0x1c, 0xaa, 0x7b, 0x19, 0xd0, 0xdd, 0xd1, 0x50, 0x60, 0xd8,
-       0xd9, 0xd3, 0x35, 0xbd, 0x8b, 0x9c, 0xfa, 0xd5, 0xe4, 0xc5, 0x7f, 0x5c,
-       0x27, 0x25, 0x86, 0xd1, 0x56, 0xaf, 0xc4, 0xe6, 0x17, 0xb3, 0x9d, 0xba,
-       0x30, 0xf4, 0x82, 0x68, 0x5e, 0x47, 0xa1, 0xba, 0x0f, 0x38, 0x9f, 0x47,
-       0x9b, 0x43, 0x81, 0x21, 0xe7, 0x8c, 0xa7, 0xe8, 0xc5, 0xf4, 0xe6, 0xe6,
-       0x5e, 0x17, 0xbe, 0xcd, 0x7c, 0x32, 0x8e, 0x91, 0x84, 0x97, 0x63, 0xa9,
-       0xd7, 0xb6, 0xa3, 0x82, 0x36, 0x8e, 0xd8, 0xe6, 0x06, 0xe2, 0x77, 0x02,
-       0x31, 0xd7, 0x8d, 0xe5, 0x88, 0x93, 0x40, 0xbb, 0x8c, 0x38, 0x39, 0x51,
-       0x7d, 0xdd, 0x0e, 0xda, 0x6f, 0xda, 0x1f, 0x0c, 0x58, 0x88, 0xe3, 0xc5,
-       0xc4, 0xc2, 0xff, 0xc7, 0x05, 0xcb, 0x2c, 0x81, 0xbc, 0x5f, 0x90, 0xbe,
-       0x67, 0x59, 0x28, 0xa8, 0xbf, 0x32, 0xb9, 0x27, 0xdd, 0x9d, 0xf8, 0xad,
-       0xbc, 0xc7, 0xc4, 0x7a, 0x7f, 0xac, 0x8c, 0xf4, 0xed, 0xc5, 0xa1, 0xbe,
-       0x3e, 0x6c, 0x79, 0x82, 0x32, 0x1a, 0x36, 0x16, 0x9a, 0x5d, 0xcc, 0xa5,
-       0x7d, 0x58, 0xa7, 0xcd, 0x8e, 0xa8, 0x2c, 0x37, 0x94, 0xce, 0xad, 0x3b,
-       0x6e, 0x75, 0xf6, 0xbc, 0x7b, 0x98, 0xa3, 0x38, 0xf1, 0x53, 0xf3, 0x46,
-       0x63, 0xca, 0xce, 0x4c, 0x8b, 0xb2, 0x23, 0x2d, 0x6d, 0x75, 0x2a, 0x3d,
-       0x99, 0xbf, 0xa5, 0x4f, 0x58, 0x38, 0x6d, 0xca, 0xbb, 0x39, 0xd2, 0xae,
-       0x85, 0xe1, 0xe6, 0x7f, 0xcd, 0x3b, 0x3a, 0xa2, 0xd3, 0x4e, 0x6c, 0x1e,
-       0x7c, 0x1c, 0xdd, 0x83, 0xa7, 0x9c, 0x33, 0x46, 0x1e, 0xc3, 0x6b, 0x5d,
-       0x1f, 0x0d, 0x1e, 0xb1, 0x90, 0x2d, 0x97, 0xf3, 0xf9, 0x55, 0xd1, 0x13,
-       0xd8, 0xa9, 0xc9, 0xbb, 0x27, 0x3d, 0xe4, 0x11, 0xb2, 0x6f, 0xbb, 0x1a,
-       0x5f, 0xef, 0x95, 0x39, 0x2c, 0xb3, 0x0a, 0xa3, 0xc1, 0xd8, 0x3a, 0x67,
-       0x0e, 0x1b, 0x70, 0x32, 0xfb, 0x38, 0xde, 0xdb, 0xd3, 0x05, 0x35, 0x1c,
-       0x0c, 0xdc, 0x06, 0xbb, 0xeb, 0xb8, 0x19, 0xb3, 0x3c, 0x08, 0x1e, 0x76,
-       0xa9, 0xc0, 0x0b, 0x7b, 0xe0, 0x9d, 0xc1, 0xf9, 0x9f, 0xcf, 0x18, 0x5d,
-       0x6e, 0xd8, 0x0b, 0xfe, 0xb1, 0x29, 0xd8, 0x63, 0xb8, 0xac, 0xbf, 0x99,
-       0x8e, 0x60, 0x5f, 0x44, 0x35, 0xda, 0xef, 0x52, 0xa1, 0xf8, 0xa2, 0xf2,
-       0x5e, 0x69, 0x17, 0xee, 0x6c, 0xf4, 0x59, 0xa5, 0xd1, 0x60, 0xdf, 0x29,
-       0x25, 0x58, 0x67, 0xa9, 0x6d, 0x9c, 0xe7, 0x3a, 0xbc, 0x42, 0x0e, 0xd2,
-       0xca, 0xd8, 0xbb, 0x34, 0xa9, 0x3b, 0xeb, 0x4c, 0xaa, 0x51, 0x13, 0x29,
-       0x52, 0x34, 0xdc, 0x96, 0x05, 0x8e, 0xa6, 0x57, 0xe3, 0x9d, 0x3d, 0x26,
-       0xf3, 0x54, 0x9d, 0xb8, 0xf5, 0xbd, 0x32, 0xc1, 0x80, 0x0e, 0xd3, 0xaa,
-       0x57, 0x19, 0xfb, 0x3d, 0x2a, 0x16, 0xce, 0x8c, 0x86, 0xc6, 0x17, 0xb8,
-       0xdc, 0x88, 0x64, 0x65, 0xfd, 0x53, 0x97, 0xb3, 0xc9, 0xb8, 0x2b, 0xe9,
-       0x25, 0xff, 0xac, 0xc6, 0x6f, 0xc8, 0x83, 0x7f, 0x4d, 0xbe, 0x3b, 0xc1,
-       0x78, 0x3e, 0x91, 0x29, 0x66, 0xbe, 0xe8, 0x91, 0x1c, 0x78, 0xdc, 0xc3,
-       0xb9, 0x28, 0x6b, 0xf4, 0xe3, 0xdc, 0xb0, 0x17, 0x77, 0xec, 0x09, 0xee,
-       0x9b, 0x50, 0xab, 0xf0, 0xc9, 0x70, 0x31, 0x96, 0x0f, 0x78, 0x29, 0x9b,
-       0x8d, 0x5d, 0xc4, 0xff, 0x8f, 0xf8, 0xac, 0x65, 0x0f, 0x94, 0xcc, 0xdc,
-       0x59, 0xe4, 0xec, 0x06, 0xeb, 0x97, 0x60, 0xd9, 0x80, 0xf0, 0x34, 0x15,
-       0x1f, 0x0e, 0x2b, 0xf8, 0x20, 0x6d, 0x62, 0x21, 0xfb, 0xdb, 0x9c, 0x7a,
-       0xc1, 0xf6, 0xd2, 0xcf, 0xd7, 0x64, 0x4c, 0x3c, 0x98, 0xd6, 0x19, 0x53,
-       0xde, 0xb6, 0x5d, 0x46, 0x23, 0xde, 0xde, 0x6d, 0x9c, 0x78, 0xd7, 0x15,
-       0x1a, 0x9f, 0xeb, 0x6a, 0xc4, 0x5b, 0x07, 0x1b, 0xf1, 0xb3, 0xfe, 0x05,
-       0xb8, 0xb9, 0x31, 0x86, 0xf3, 0x73, 0x1b, 0xf1, 0xe6, 0x7e, 0x1d, 0x3b,
-       0x52, 0xcd, 0xd0, 0x47, 0xc7, 0xc9, 0x4f, 0x23, 0xa8, 0x67, 0x4e, 0x65,
-       0xf4, 0xdb, 0x5d, 0x25, 0xd1, 0x2e, 0xec, 0x34, 0xa3, 0x98, 0xb3, 0x5f,
-       0xf4, 0x60, 0xdb, 0xeb, 0xe6, 0x46, 0xf1, 0x72, 0x9f, 0x41, 0x3f, 0x8d,
-       0x52, 0x0f, 0x3a, 0x9e, 0x24, 0x36, 0x87, 0x9e, 0x30, 0x2e, 0x1c, 0xe0,
-       0xef, 0x05, 0x07, 0x9a, 0xd1, 0xce, 0xfe, 0x13, 0xa9, 0x18, 0xf6, 0x8d,
-       0x36, 0x70, 0xcc, 0x26, 0xc7, 0x5f, 0x63, 0xfd, 0x46, 0x69, 0x41, 0xdf,
-       0x68, 0x2b, 0xf9, 0x66, 0x17, 0x79, 0x66, 0x2b, 0x7a, 0xd9, 0xd6, 0xd6,
-       0x94, 0x89, 0x65, 0xc9, 0x56, 0x3c, 0x9d, 0x90, 0x33, 0x8d, 0x46, 0x64,
-       0x9e, 0x22, 0xef, 0x7d, 0xb5, 0xe2, 0x10, 0x75, 0xb2, 0x70, 0x60, 0x39,
-       0xed, 0xd0, 0x8b, 0x45, 0x7b, 0x74, 0x3c, 0x95, 0xba, 0x13, 0xef, 0x8c,
-       0x98, 0x68, 0x4b, 0x8a, 0xbe, 0xe5, 0x5c, 0x4d, 0x1c, 0xc7, 0x19, 0x5b,
-       0x7e, 0x33, 0x10, 0xfb, 0x1b, 0x4e, 0xf3, 0x49, 0x15, 0xc1, 0xce, 0x19,
-       0x9c, 0xf0, 0x9b, 0x1a, 0xe5, 0x6c, 0x94, 0x8b, 0xa8, 0x16, 0xb4, 0xca,
-       0x55, 0x4b, 0xe7, 0x7d, 0xcb, 0xad, 0x6e, 0xc2, 0x37, 0x06, 0xdc, 0xe4,
-       0xf4, 0x2a, 0x73, 0x11, 0xab, 0x83, 0xb6, 0x61, 0x95, 0xa9, 0xb9, 0x79,
-       0xdb, 0x2e, 0xef, 0xa1, 0x19, 0x2e, 0xec, 0x32, 0x6b, 0xda, 0x4a, 0x58,
-       0x6f, 0x69, 0x38, 0x18, 0x2b, 0x52, 0x9b, 0x99, 0x27, 0x3e, 0x8e, 0x75,
-       0x7b, 0x1e, 0xc7, 0x1a, 0x7e, 0x3a, 0xf6, 0xd8, 0x5d, 0x4b, 0x4c, 0x05,
-       0x2f, 0x1a, 0x76, 0x57, 0x97, 0x69, 0x70, 0x6e, 0x65, 0x5e, 0x1f, 0x47,
-       0xe7, 0xa1, 0xc7, 0xf1, 0x28, 0xed, 0xab, 0x92, 0x7e, 0xbc, 0x32, 0x69,
-       0x77, 0xdd, 0xdc, 0x58, 0x87, 0x4f, 0x9d, 0xfc, 0x43, 0xec, 0x75, 0xab,
-       0x93, 0x13, 0xa7, 0x55, 0xb9, 0xde, 0xed, 0x5c, 0x5b, 0xea, 0x2b, 0x65,
-       0xf9, 0xd8, 0xf2, 0x5b, 0xb6, 0xfb, 0xbb, 0x3d, 0xe5, 0x78, 0xa2, 0x52,
-       0xe2, 0x87, 0xac, 0xed, 0x42, 0x31, 0xe6, 0x32, 0xcf, 0x7a, 0xe2, 0x38,
-       0xb6, 0x93, 0xb7, 0xf9, 0xc3, 0x92, 0x03, 0xd7, 0x9b, 0x5b, 0xd4, 0x5b,
-       0x89, 0xed, 0x0a, 0x76, 0xd6, 0xf6, 0xa1, 0x97, 0xbe, 0xba, 0xab, 0x36,
-       0x18, 0xef, 0x45, 0xd4, 0xde, 0x35, 0xbd, 0xe7, 0xdf, 0xf0, 0x5e, 0x96,
-       0xbc, 0xb7, 0x9d, 0x7f, 0x37, 0xeb, 0x71, 0x74, 0xed, 0x91, 0xf9, 0x7f,
-       0x1c, 0x8f, 0x51, 0xfe, 0xce, 0x81, 0xc7, 0xf1, 0x4d, 0xda, 0x4e, 0x45,
-       0xd3, 0xd1, 0xc7, 0x2a, 0x30, 0xbb, 0xaf, 0x1c, 0xe3, 0x0f, 0x57, 0xca,
-       0x39, 0x28, 0x62, 0x62, 0xaf, 0xf2, 0x38, 0xd6, 0x0f, 0x1d, 0xa0, 0x2f,
-       0x3a, 0xfe, 0x47, 0x2c, 0xce, 0xc7, 0xab, 0x00, 0xd6, 0x11, 0x93, 0x73,
-       0xb8, 0xee, 0xc7, 0x9a, 0xc4, 0x61, 0xc7, 0xf7, 0x0b, 0xa2, 0xab, 0xe8,
-       0xf7, 0x6d, 0xf4, 0xfb, 0xe5, 0xf4, 0xfb, 0x56, 0xfa, 0x7d, 0x0b, 0xfd,
-       0x3e, 0x46, 0xbf, 0x8f, 0xd2, 0xef, 0x23, 0xf4, 0xfb, 0x66, 0xfa, 0xbd,
-       0x49, 0xbf, 0x87, 0x72, 0xa2, 0xf9, 0x38, 0x3c, 0xfd, 0x5e, 0xda, 0x50,
-       0xee, 0x3d, 0x99, 0x83, 0xc4, 0x9f, 0xd3, 0xe6, 0x9c, 0xc0, 0x62, 0xc6,
-       0xd5, 0x61, 0x62, 0x44, 0x7a, 0xe4, 0xaf, 0x9c, 0x77, 0x2a, 0xd2, 0xc4,
-       0xfd, 0x57, 0xa8, 0x8f, 0xa5, 0xe1, 0x1a, 0xf3, 0x69, 0xc6, 0xb0, 0x5f,
-       0x18, 0xf5, 0x3d, 0x7e, 0x96, 0xf9, 0x41, 0xaa, 0xbe, 0x6f, 0x1a, 0x0c,
-       0xab, 0x51, 0xdd, 0x0a, 0xac, 0xf4, 0x73, 0xcc, 0x72, 0xde, 0x6e, 0x25,
-       0x1e, 0x1b, 0x6c, 0xc3, 0x7f, 0x19, 0xd4, 0xa8, 0x8b, 0x9a, 0xf1, 0x5b,
-       0x5d, 0xf8, 0x71, 0x00, 0x2e, 0xff, 0x35, 0xc0, 0xe7, 0x55, 0x98, 0x73,
-       0x58, 0xde, 0xef, 0x4b, 0x57, 0xb9, 0x1a, 0x66, 0x42, 0x6c, 0x04, 0x44,
-       0x6a, 0x17, 0x33, 0xc1, 0x39, 0xce, 0x3b, 0x40, 0xb1, 0x55, 0x82, 0xe9,
-       0x45, 0xd8, 0x5a, 0xe7, 0xe0, 0xec, 0xb3, 0x72, 0x6e, 0xb0, 0x8a, 0x78,
-       0xe4, 0x8b, 0xb6, 0x62, 0x5b, 0xaf, 0x75, 0x7f, 0x15, 0x96, 0xa3, 0xa7,
-       0x37, 0xa7, 0x83, 0x87, 0xc3, 0x1a, 0xa9, 0x42, 0x48, 0x9f, 0xa3, 0xc0,
-       0xdd, 0xd1, 0x1c, 0xc1, 0x83, 0x99, 0x04, 0xfa, 0x38, 0xc6, 0x0d, 0xf4,
-       0xb3, 0x75, 0x7f, 0xfa, 0xdd, 0x4e, 0x7c, 0x33, 0xa1, 0xd3, 0xfe, 0x2f,
-       0xda, 0xe9, 0x8a, 0x39, 0x7d, 0x55, 0x30, 0x3a, 0x57, 0xa8, 0xf3, 0x98,
-       0xd3, 0x06, 0x8f, 0xc8, 0xc2, 0xf7, 0xf4, 0xa8, 0xd7, 0xaa, 0x20, 0x36,
-       0xcf, 0x1a, 0x80, 0x32, 0x9c, 0x94, 0xf7, 0x20, 0xba, 0xf0, 0xff, 0x99,
-       0x6d, 0x8e, 0xfd, 0x8c, 0xbb, 0x34, 0xcc, 0x4c, 0xca, 0x7d, 0x7b, 0xc1,
-       0x67, 0x4d, 0xc1, 0x3a, 0xdd, 0xb5, 0x81, 0xf7, 0xab, 0xf1, 0x23, 0xc6,
-       0xd9, 0xc0, 0xc0, 0x02, 0xa8, 0x4d, 0x5e, 0xdc, 0xdd, 0x50, 0x8a, 0xf8,
-       0x4a, 0xe1, 0xa1, 0x92, 0xef, 0xbb, 0xa9, 0xcf, 0xff, 0x17, 0x0f, 0x99,
-       0xcf, 0x61, 0xc2, 0x9f, 0x70, 0xf6, 0xdd, 0xd7, 0x99, 0x77, 0x28, 0x16,
-       0xaf, 0xb7, 0xa5, 0x2c, 0x6c, 0x30, 0x99, 0x0b, 0xdd, 0x53, 0xc9, 0x9c,
-       0x44, 0xca, 0x4b, 0xbb, 0x5b, 0x9d, 0xf6, 0x0e, 0xa6, 0xe4, 0x7a, 0xf7,
-       0x64, 0x9f, 0x77, 0x01, 0x95, 0x5e, 0xe2, 0xad, 0x82, 0x33, 0xb5, 0x09,
-       0xfa, 0x34, 0x7e, 0xec, 0x46, 0x4d, 0xba, 0x5f, 0x75, 0xfd, 0xf8, 0x1a,
-       0xcc, 0x31, 0x7f, 0xaf, 0xca, 0x7c, 0xc4, 0xf0, 0x54, 0x48, 0x41, 0xa5,
-       0x61, 0x9c, 0xff, 0x19, 0x7d, 0x6b, 0xc2, 0x95, 0xc0, 0x53, 0x63, 0xa7,
-       0xec, 0xf1, 0x6b, 0xfc, 0x9c, 0x73, 0xa9, 0xdb, 0x86, 0x0f, 0x06, 0x65,
-       0xce, 0x64, 0x9d, 0x9f, 0xb1, 0x5d, 0xd5, 0x51, 0xca, 0x7b, 0xa7, 0x87,
-       0x4d, 0xe6, 0x3a, 0x6d, 0xf8, 0xc7, 0xc1, 0x95, 0xf8, 0xfd, 0x60, 0x4d,
-       0xdb, 0x7f, 0x52, 0x6d, 0x7b, 0x69, 0xf8, 0x6b, 0xf8, 0x65, 0xa5, 0x86,
-       0xa7, 0x69, 0x43, 0xbf, 0x4f, 0x58, 0x4b, 0xaf, 0x21, 0x16, 0xfc, 0xef,
-       0x44, 0xf0, 0xc2, 0x49, 0x67, 0x5f, 0xa9, 0xde, 0xfc, 0xd0, 0x15, 0x8c,
-       0x9f, 0x51, 0x83, 0xd6, 0x36, 0x65, 0x39, 0xec, 0x4c, 0x2b, 0xce, 0x67,
-       0xa6, 0xda, 0x42, 0x97, 0x8d, 0x2a, 0xb1, 0x03, 0xb1, 0x07, 0xda, 0x22,
-       0x73, 0xb9, 0x9f, 0x92, 0x47, 0x77, 0x7f, 0x95, 0xf6, 0x98, 0xa2, 0x3d,
-       0xa6, 0x68, 0x8f, 0xc4, 0xa4, 0xe7, 0x89, 0x55, 0x3f, 0x48, 0xd1, 0x1e,
-       0xe9, 0x3f, 0xcf, 0xd1, 0x7f, 0x72, 0x5c, 0xb9, 0xdd, 0x39, 0xb7, 0xf6,
-       0x06, 0x63, 0x62, 0xe2, 0x09, 0x79, 0x27, 0xad, 0x66, 0x43, 0x16, 0xc1,
-       0xf6, 0x5e, 0xe5, 0xb3, 0x72, 0x39, 0x67, 0xfb, 0xed, 0x90, 0xf8, 0x40,
-       0x6e, 0x3f, 0xe0, 0xc8, 0xc8, 0x63, 0x65, 0xf2, 0x7e, 0xd4, 0xc1, 0xbd,
-       0xff, 0x92, 0xce, 0xfe, 0x3b, 0xe5, 0x10, 0x7d, 0xfd, 0x5b, 0xc7, 0x2e,
-       0xba, 0xfc, 0x1b, 0xfb, 0x97, 0x55, 0x32, 0xfe, 0x55, 0xf8, 0x62, 0xb0,
-       0x05, 0xe7, 0x19, 0x7f, 0xdf, 0x6a, 0x1a, 0xef, 0x0c, 0x20, 0xd8, 0x51,
-       0xae, 0x46, 0x91, 0xcd, 0xb4, 0xe0, 0xb3, 0x44, 0x14, 0x07, 0x12, 0x35,
-       0xed, 0x35, 0xae, 0xb3, 0x6a, 0x7c, 0x86, 0x58, 0x54, 0x0c, 0x9f, 0x92,
-       0x5f, 0x2e, 0xac, 0x8d, 0x60, 0x88, 0x6d, 0x7a, 0xa2, 0x1a, 0x46, 0x9a,
-       0xc5, 0x56, 0x73, 0xef, 0x4e, 0xfd, 0xa9, 0xbf, 0x2e, 0xda, 0xe3, 0x7b,
-       0x4d, 0x17, 0xed, 0x71, 0xcd, 0x6b, 0x69, 0xf4, 0xe1, 0xd2, 0x3d, 0xf2,
-       0x6e, 0xa9, 0xf8, 0xb3, 0x82, 0x1f, 0x84, 0xc7, 0xdb, 0xa6, 0x21, 0xf8,
-       0xec, 0x7d, 0xb4, 0xf5, 0x93, 0x49, 0x59, 0x53, 0x6c, 0xc1, 0xfb, 0x2c,
-       0xef, 0xa6, 0x5f, 0x9c, 0xcc, 0xb8, 0xdd, 0xbf, 0x4c, 0x2a, 0xcc, 0x4b,
-       0x97, 0xe3, 0x97, 0x99, 0x37, 0xd5, 0x8f, 0x35, 0x13, 0x67, 0xb2, 0x2b,
-       0x69, 0x4f, 0x92, 0xff, 0xc7, 0x98, 0xff, 0x07, 0x3b, 0x8f, 0x60, 0x25,
-       0xca, 0x0f, 0xad, 0x42, 0xd9, 0x1e, 0xe2, 0x67, 0x88, 0xf9, 0x3f, 0xaf,
-       0x67, 0xec, 0x91, 0xf7, 0x0d, 0xca, 0xed, 0xed, 0xab, 0x44, 0x2f, 0x82,
-       0x27, 0x7f, 0x57, 0x8e, 0xb2, 0x55, 0xc0, 0x21, 0xa9, 0x67, 0xb0, 0xde,
-       0x4a, 0x54, 0xee, 0xa9, 0x89, 0x2c, 0x46, 0xcd, 0xf9, 0xdb, 0xd4, 0x95,
-       0xb8, 0xfe, 0xd0, 0x3f, 0x73, 0x0e, 0xa4, 0x6c, 0x35, 0x9e, 0xa0, 0xdd,
-       0x16, 0x92, 0x13, 0xb6, 0x24, 0x7f, 0x6d, 0xcf, 0xa4, 0x2f, 0x7e, 0xf6,
-       0x15, 0x60, 0x5d, 0xd6, 0x60, 0xbc, 0x2b, 0x46, 0x7c, 0xe8, 0x29, 0xbb,
-       0x3c, 0xea, 0xc6, 0x9a, 0x6c, 0x03, 0x16, 0x0f, 0xd8, 0xf6, 0xb9, 0xb9,
-       0x31, 0xf8, 0xa2, 0x3e, 0x62, 0x98, 0x0f, 0x8f, 0x26, 0x4b, 0xf8, 0x2d,
-       0xc7, 0x4f, 0x42, 0xe3, 0xb3, 0x55, 0x63, 0xc3, 0x0c, 0x97, 0xd1, 0x9e,
-       0x55, 0x24, 0xee, 0xfb, 0xf0, 0x08, 0xe3, 0xf3, 0xd2, 0x64, 0x00, 0xf1,
-       0xac, 0x6d, 0xbf, 0xd9, 0xec, 0xc7, 0xc3, 0xac, 0xdf, 0x9a, 0xec, 0x41,
-       0x37, 0xed, 0x22, 0x7e, 0xc8, 0xd0, 0x35, 0xc6, 0xfb, 0x75, 0x59, 0x2f,
-       0x63, 0x58, 0x25, 0x6e, 0x63, 0x2c, 0x7a, 0x54, 0xce, 0xca, 0xd0, 0x07,
-       0xdf, 0x31, 0xad, 0x1b, 0x5c, 0x30, 0xd0, 0x99, 0xf5, 0x63, 0x79, 0x32,
-       0x78, 0x41, 0xde, 0xcd, 0xfb, 0xcc, 0xac, 0xc3, 0xc6, 0x6c, 0x00, 0xb7,
-       0x27, 0x8f, 0x3e, 0x3a, 0x13, 0xd6, 0x7f, 0x9e, 0x81, 0x06, 0x7c, 0x3d,
-       0x5b, 0xcd, 0xf6, 0x83, 0x1b, 0xde, 0x50, 0xaa, 0xf1, 0x8d, 0x43, 0x26,
-       0xdb, 0x57, 0xb1, 0x8c, 0xed, 0x2c, 0x49, 0x5e, 0x8f, 0x47, 0x0e, 0x35,
-       0xe3, 0xc1, 0x6c, 0x13, 0x16, 0x31, 0x3e, 0x75, 0x30, 0x37, 0xc4, 0xbd,
-       0xc0, 0xed, 0x03, 0xa2, 0x7b, 0x28, 0x6f, 0x36, 0x8f, 0x33, 0x5f, 0x36,
-       0x41, 0x43, 0x74, 0xf6, 0x92, 0x77, 0xd2, 0x56, 0x6f, 0xdf, 0xdf, 0x84,
-       0xa5, 0x03, 0x2a, 0x6a, 0xc2, 0x85, 0x88, 0xb7, 0x29, 0x68, 0x19, 0x90,
-       0x38, 0x2b, 0xdc, 0xc6, 0x64, 0x5c, 0x0d, 0xb1, 0x0f, 0x93, 0x71, 0x35,
-       0x77, 0xbf, 0x3b, 0x25, 0x6b, 0x0b, 0x6f, 0x93, 0x2f, 0x85, 0xd1, 0xe2,
-       0xc4, 0x68, 0x59, 0x13, 0xb7, 0xe0, 0x66, 0xec, 0x0e, 0xd3, 0xc6, 0x17,
-       0x34, 0x4a, 0xac, 0xd6, 0x9d, 0xbd, 0xa9, 0xb1, 0x7e, 0xa3, 0xe3, 0x82,
-       0x42, 0xfb, 0xda, 0x2f, 0x31, 0xd1, 0x8f, 0x8d, 0xc9, 0x28, 0xde, 0xe9,
-       0x63, 0xbc, 0xb9, 0x31, 0xb6, 0xb4, 0x04, 0x86, 0xf9, 0x08, 0x42, 0xd6,
-       0x49, 0xc6, 0xf6, 0xf3, 0xe9, 0x4a, 0x2c, 0xde, 0x23, 0x65, 0x1a, 0xf1,
-       0xee, 0xb0, 0xec, 0x4d, 0x6e, 0xc2, 0x53, 0x7d, 0x2e, 0x0c, 0x99, 0x35,
-       0x3d, 0x2a, 0xe3, 0xe7, 0xfc, 0xc6, 0xa0, 0xf6, 0x23, 0x72, 0xd5, 0x0b,
-       0x4d, 0x8c, 0xca, 0xd7, 0x34, 0xa3, 0x85, 0x72, 0xb5, 0x18, 0xe2, 0x93,
-       0x16, 0x1e, 0x6c, 0xde, 0x84, 0x93, 0x7d, 0x86, 0xf5, 0xb4, 0xac, 0x03,
-       0x34, 0xf2, 0xf9, 0x74, 0x37, 0x36, 0x1b, 0xc2, 0x69, 0x75, 0xfa, 0x16,
-       0x59, 0xa7, 0xd1, 0x8c, 0x77, 0x68, 0xaf, 0x3d, 0xe9, 0x05, 0x8c, 0xfd,
-       0x12, 0xf3, 0xbd, 0x56, 0x80, 0xf5, 0xca, 0xbf, 0xa2, 0xe0, 0xf4, 0x01,
-       0xe1, 0x58, 0x0b, 0x70, 0xff, 0x80, 0xec, 0x0b, 0xa8, 0x98, 0x7f, 0x68,
-       0x35, 0xce, 0xed, 0xce, 0x71, 0xae, 0x37, 0xc3, 0xd6, 0xd7, 0xc9, 0xb9,
-       0xda, 0x4b, 0xc9, 0xb9, 0xc8, 0xe5, 0xea, 0x36, 0x2a, 0x6e, 0x84, 0xb2,
-       0x11, 0xf2, 0x0a, 0xe1, 0x17, 0x01, 0x3c, 0x93, 0x69, 0xc6, 0x6d, 0xc9,
-       0x6a, 0x8c, 0x90, 0x6f, 0xa5, 0x89, 0x17, 0xe9, 0x0c, 0xe3, 0xca, 0x70,
-       0x15, 0x3f, 0x3a, 0x3f, 0xb3, 0xf8, 0x31, 0x9c, 0x7b, 0x6b, 0x68, 0xcb,
-       0xb1, 0x36, 0xc5, 0xd9, 0xdb, 0x18, 0xca, 0x48, 0xac, 0x56, 0x98, 0xb7,
-       0xde, 0xa5, 0x49, 0x6e, 0x2a, 0xe7, 0x0e, 0x7e, 0xde, 0xa7, 0xe3, 0x5b,
-       0x8d, 0x3b, 0x95, 0x58, 0xa5, 0xf3, 0x5e, 0x92, 0x55, 0x4c, 0xd9, 0x6e,
-       0x9b, 0x2b, 0x6b, 0x94, 0x62, 0x97, 0x6c, 0x83, 0x39, 0xfa, 0xc3, 0x66,
-       0x05, 0xf4, 0x0a, 0x5d, 0xce, 0x50, 0xd2, 0xdf, 0xfd, 0x78, 0x35, 0x11,
-       0x47, 0x26, 0x51, 0xdf, 0xb3, 0x51, 0x71, 0xc9, 0xd9, 0xf3, 0xba, 0xb8,
-       0x22, 0x3e, 0x16, 0x87, 0x27, 0xe9, 0xb5, 0xca, 0x59, 0xff, 0x9d, 0xb9,
-       0x1d, 0x8c, 0x07, 0xf5, 0x9c, 0x62, 0xd5, 0x39, 0x7f, 0x9e, 0x46, 0x07,
-       0xd6, 0x25, 0x0c, 0xc6, 0xc0, 0xd5, 0x76, 0x37, 0xe7, 0xe1, 0x58, 0xa2,
-       0x03, 0xf7, 0x27, 0xea, 0xc7, 0x9f, 0xa4, 0x6d, 0xe1, 0xee, 0x0e, 0xb4,
-       0xf0, 0xd9, 0x50, 0xaa, 0xe6, 0x42, 0x37, 0x75, 0x3d, 0x31, 0xad, 0xce,
-       0x59, 0x97, 0x77, 0x1b, 0x3a, 0xcb, 0xeb, 0xc4, 0xb3, 0xfa, 0xd8, 0x80,
-       0xfa, 0xef, 0x15, 0x4c, 0x97, 0x5c, 0x32, 0x82, 0xe3, 0x09, 0x1f, 0xbe,
-       0x9e, 0xb4, 0xe8, 0x03, 0xc0, 0xfa, 0x6c, 0x33, 0xf3, 0x88, 0xa7, 0xec,
-       0x0a, 0x87, 0xeb, 0xba, 0x69, 0x83, 0x0b, 0x70, 0x82, 0xb1, 0xb7, 0x66,
-       0x9e, 0xa1, 0x2d, 0x52, 0xe4, 0x7d, 0xeb, 0x5f, 0xdb, 0xee, 0x68, 0x09,
-       0x36, 0x0c, 0x85, 0x22, 0x2b, 0x19, 0x67, 0x9f, 0x6a, 0x36, 0xc6, 0x6d,
-       0xc6, 0xc0, 0x19, 0xd1, 0x04, 0xe7, 0x3a, 0x24, 0xff, 0xaf, 0x03, 0x7f,
-       0x41, 0x3b, 0xff, 0x24, 0x21, 0x7e, 0x62, 0x10, 0x37, 0xfd, 0xf8, 0x06,
-       0xed, 0xfc, 0x7c, 0xa2, 0x0e, 0x59, 0xfa, 0x65, 0x07, 0xfd, 0xe3, 0xdd,
-       0x44, 0x30, 0x7e, 0x93, 0xca, 0x7c, 0x8f, 0xfe, 0xf1, 0x51, 0x22, 0x42,
-       0xdf, 0xf9, 0x2a, 0x3f, 0x0d, 0xf4, 0x87, 0x3a, 0xd6, 0xd1, 0xe9, 0x07,
-       0x7e, 0x9c, 0x65, 0xf9, 0x03, 0xa9, 0x9a, 0xd6, 0x15, 0x4a, 0x8d, 0x59,
-       0xa3, 0x54, 0x30, 0x9f, 0xd5, 0x68, 0xff, 0xb7, 0xe0, 0x43, 0x59, 0x4f,
-       0x4e, 0x12, 0x8b, 0x92, 0xe8, 0x2f, 0x22, 0x97, 0x5b, 0xe9, 0x9c, 0xe5,
-       0xaf, 0x3f, 0xf1, 0xa9, 0x12, 0x1c, 0x3f, 0xe3, 0x0a, 0x76, 0xcc, 0x20,
-       0x8f, 0xfe, 0x0b, 0xfa, 0xc1, 0x37, 0x59, 0xf6, 0x93, 0xbe, 0x62, 0x7c,
-       0x63, 0x88, 0x31, 0x37, 0x55, 0x80, 0x82, 0x3d, 0x5e, 0x3c, 0x78, 0x48,
-       0xc7, 0x3e, 0x27, 0x57, 0x17, 0x9d, 0x52, 0x77, 0xc4, 0x88, 0x73, 0x73,
-       0x81, 0x19, 0x07, 0x56, 0xe3, 0xd4, 0x6e, 0x9d, 0x71, 0x2f, 0x67, 0x27,
-       0xcf, 0x86, 0x1d, 0x6e, 0x1e, 0x17, 0x6e, 0x5e, 0xc0, 0x71, 0x6d, 0x4d,
-       0x85, 0xda, 0xb7, 0x51, 0x17, 0xb7, 0x67, 0xc5, 0xfe, 0x22, 0x78, 0x8e,
-       0x63, 0xeb, 0xa7, 0xad, 0x1c, 0x48, 0x54, 0x33, 0x47, 0xf7, 0xc1, 0xa2,
-       0xad, 0x58, 0xf2, 0x0e, 0x13, 0x6d, 0xc5, 0xa2, 0xad, 0x58, 0xb4, 0x15,
-       0x8b, 0xb6, 0x62, 0x65, 0x16, 0xe0, 0x99, 0x3e, 0x03, 0x23, 0xec, 0x73,
-       0xe7, 0x30, 0x39, 0xbc, 0xf3, 0x3e, 0x50, 0x9d, 0xe4, 0x29, 0xca, 0xc4,
-       0xdd, 0xb7, 0x60, 0xa8, 0xef, 0x56, 0x7e, 0x14, 0xb4, 0xd2, 0x66, 0x7a,
-       0xd2, 0x62, 0x83, 0x22, 0x93, 0x17, 0xc3, 0x99, 0x9b, 0x2b, 0x51, 0x2c,
-       0xf1, 0x5d, 0xc1, 0x0e, 0xe7, 0x7e, 0xde, 0xd6, 0xe4, 0x9e, 0x85, 0x9a,
-       0x79, 0x9b, 0xf0, 0x48, 0x9f, 0x8a, 0xdb, 0xc2, 0xf2, 0x7f, 0x08, 0x9a,
-       0x99, 0x0f, 0xc8, 0xfe, 0x7c, 0x82, 0xfe, 0x99, 0xb3, 0x15, 0x19, 0x53,
-       0xa6, 0x7f, 0x13, 0x4e, 0xf4, 0x1b, 0x8c, 0x59, 0x26, 0x32, 0xe9, 0x04,
-       0x7d, 0x42, 0xfc, 0xdc, 0xc0, 0x33, 0x6c, 0x6b, 0xf6, 0x80, 0x0b, 0x95,
-       0x8d, 0x6e, 0x94, 0xd0, 0xdf, 0x6f, 0x4b, 0xd7, 0x04, 0xbe, 0xa5, 0x24,
-       0x9c, 0xf5, 0xd7, 0x5d, 0x29, 0x8c, 0xcf, 0x34, 0x2a, 0xb1, 0x6f, 0xb0,
-       0x11, 0x8f, 0xed, 0x76, 0xd1, 0x46, 0xed, 0x05, 0xe5, 0x4d, 0x46, 0xc7,
-       0x02, 0x97, 0xe0, 0x45, 0x23, 0xbe, 0xc1, 0x1c, 0x60, 0x7d, 0x7f, 0xd0,
-       0x7c, 0x05, 0x41, 0xf3, 0x24, 0x16, 0xe0, 0x59, 0x93, 0xb8, 0x39, 0xaf,
-       0x11, 0x1b, 0xf7, 0x1b, 0xb4, 0x29, 0x37, 0xf3, 0x63, 0xf9, 0xbf, 0x37,
-       0xba, 0xb3, 0xc6, 0xf3, 0x32, 0xe4, 0x9c, 0x43, 0xb3, 0xfc, 0x4f, 0x06,
-       0xa5, 0x87, 0xf8, 0x34, 0xa3, 0xd7, 0xe0, 0xb8, 0x5f, 0xb0, 0x4b, 0x0d,
-       0xf9, 0x7f, 0x1c, 0xc4, 0x11, 0x8e, 0xfb, 0xc2, 0xcd, 0x6f, 0xdb, 0x95,
-       0x86, 0xc4, 0x50, 0xe2, 0x49, 0x5a, 0xfa, 0x8f, 0xed, 0x08, 0x10, 0x3b,
-       0x3a, 0xfa, 0x8d, 0x78, 0x29, 0x63, 0xd8, 0x46, 0x07, 0x63, 0x04, 0x5f,
-       0x8c, 0xb6, 0x6f, 0x21, 0xa4, 0xad, 0x20, 0xee, 0x9c, 0xe6, 0x58, 0x7a,
-       0x52, 0x82, 0x51, 0x3a, 0x8a, 0x7a, 0x63, 0xb8, 0x81, 0x39, 0x63, 0x41,
-       0x6f, 0x0b, 0x6a, 0x99, 0x3f, 0xba, 0x7b, 0x5b, 0x61, 0x30, 0x97, 0x9c,
-       0xd9, 0xbb, 0x1c, 0x0b, 0xc6, 0xf2, 0x1c, 0x5a, 0xc7, 0x11, 0x67, 0xdd,
-       0xea, 0x29, 0x78, 0xee, 0xd3, 0x69, 0x53, 0x72, 0xe6, 0xc5, 0x6b, 0x55,
-       0x12, 0x37, 0xcf, 0x50, 0xd7, 0xed, 0x03, 0xab, 0xed, 0x81, 0x94, 0xf0,
-       0xa6, 0x2e, 0x78, 0x9a, 0x24, 0xf7, 0xd1, 0x31, 0x46, 0x8e, 0x3c, 0xcc,
-       0x1c, 0xec, 0x8d, 0xfd, 0xab, 0x71, 0xff, 0x9e, 0xcb, 0x39, 0x9b, 0xd9,
-       0x64, 0xfd, 0x7b, 0xda, 0xc5, 0x86, 0x12, 0xda, 0x85, 0x97, 0x76, 0xb1,
-       0x2b, 0x15, 0x32, 0x0f, 0xd3, 0x2e, 0x6a, 0x89, 0x21, 0x1d, 0xbd, 0x92,
-       0xef, 0x38, 0xef, 0xed, 0x55, 0x78, 0x10, 0xc0, 0x9b, 0xb4, 0x8f, 0x8d,
-       0xbd, 0x76, 0x97, 0x9b, 0xb1, 0xa7, 0xa7, 0xb9, 0x1a, 0xaf, 0x65, 0x6e,
-       0xc5, 0xa3, 0xfd, 0xd5, 0x78, 0x85, 0xb6, 0xf3, 0x76, 0x02, 0xf3, 0x2b,
-       0xa0, 0xce, 0xac, 0x60, 0xac, 0xbe, 0x4d, 0x09, 0xb5, 0x2e, 0x42, 0xfd,
-       0xf8, 0xcb, 0x4a, 0xb0, 0x93, 0x9c, 0xe5, 0xc4, 0x05, 0x62, 0xff, 0xeb,
-       0x19, 0x39, 0x77, 0xe7, 0xc3, 0x38, 0xed, 0x6a, 0x9c, 0xf5, 0xbe, 0xd1,
-       0x5f, 0xc7, 0x79, 0xf3, 0xa0, 0xd0, 0xf0, 0xe3, 0x14, 0xb1, 0xb4, 0x63,
-       0x37, 0xc6, 0x03, 0x86, 0x71, 0xa2, 0x55, 0xa9, 0xc2, 0x9b, 0xc3, 0xb7,
-       0x62, 0x63, 0x7f, 0x50, 0x8f, 0xd1, 0x37, 0x5f, 0xe3, 0xb3, 0xf5, 0xbb,
-       0x67, 0xe1, 0x38, 0x6d, 0x6f, 0x9c, 0xb6, 0xb7, 0xb6, 0x5f, 0xc5, 0x8b,
-       0xc3, 0xb7, 0xb0, 0x5f, 0x05, 0xb3, 0x6a, 0x15, 0x27, 0xff, 0xda, 0x91,
-       0x72, 0xfe, 0x77, 0x81, 0xf3, 0x8e, 0xde, 0x9c, 0x51, 0x13, 0xb3, 0xf7,
-       0xcb, 0xf8, 0xc8, 0xc3, 0x9c, 0xb5, 0xe9, 0x46, 0xdc, 0xbc, 0xa7, 0x12,
-       0xe7, 0xf6, 0x1a, 0x56, 0xb9, 0xcb, 0x5e, 0x70, 0x2a, 0x1c, 0xe2, 0x3c,
-       0x34, 0xa2, 0xe1, 0x50, 0x23, 0x42, 0x03, 0xb9, 0x18, 0xa1, 0x19, 0x0b,
-       0xf0, 0x3d, 0xce, 0xfb, 0x5a, 0xe6, 0x80, 0x35, 0x43, 0x82, 0xbd, 0x36,
-       0x73, 0xc5, 0x66, 0x4c, 0x8c, 0x8d, 0x73, 0x6c, 0x11, 0x9c, 0x25, 0xbf,
-       0x7d, 0x9f, 0x31, 0xe3, 0x43, 0xe6, 0x80, 0x1f, 0x3a, 0x31, 0x43, 0xde,
-       0xa5, 0xbd, 0x32, 0x6e, 0xec, 0xe2, 0x9c, 0x6e, 0xec, 0x37, 0xea, 0xfa,
-       0xf8, 0x7b, 0xbd, 0x33, 0xc7, 0x31, 0xe2, 0xb9, 0x60, 0x85, 0xe0, 0x7f,
-       0x0b, 0x73, 0xde, 0x56, 0x9c, 0xed, 0x0b, 0x99, 0x0b, 0x95, 0x56, 0xbc,
-       0x47, 0x99, 0xfb, 0x28, 0x5f, 0x92, 0xbc, 0x6c, 0x66, 0xd2, 0x18, 0xff,
-       0xd0, 0x25, 0x18, 0xd3, 0x8a, 0xf2, 0xec, 0xad, 0x38, 0xd5, 0xbf, 0x1c,
-       0xa5, 0x43, 0xc2, 0x35, 0xa5, 0x4d, 0x37, 0xb6, 0xee, 0xbe, 0x13, 0xeb,
-       0x0f, 0xe6, 0x72, 0xbe, 0xf5, 0x89, 0x4d, 0xcc, 0x75, 0x85, 0xbf, 0xd7,
-       0xe1, 0x50, 0x2a, 0x26, 0x47, 0x42, 0x77, 0x30, 0x9f, 0x8b, 0xac, 0x20,
-       0x7e, 0x2e, 0x0d, 0x13, 0x63, 0x2b, 0x82, 0x81, 0x97, 0x61, 0xe9, 0xbc,
-       0x17, 0x58, 0x07, 0xd1, 0x89, 0x85, 0x65, 0x8c, 0x3b, 0xb7, 0xf5, 0xbb,
-       0x29, 0xbb, 0x3c, 0xaf, 0xc3, 0x8f, 0x52, 0x56, 0x5c, 0x9e, 0x6f, 0x84,
-       0xf8, 0x8a, 0xe8, 0xc9, 0x05, 0xb3, 0xa9, 0x26, 0xd6, 0x41, 0x8c, 0x2e,
-       0x0d, 0x07, 0xcd, 0x6f, 0xa0, 0x99, 0x73, 0x2f, 0x32, 0x47, 0xb0, 0xfe,
-       0x10, 0x9c, 0x7d, 0x7f, 0x79, 0x47, 0xe4, 0x3f, 0xf4, 0xed, 0x76, 0xec,
-       0x69, 0x7d, 0xe3, 0x65, 0x1b, 0x3c, 0x90, 0xaa, 0xef, 0x74, 0xa1, 0xc6,
-       0x2a, 0x87, 0x91, 0xee, 0x23, 0x2f, 0x8d, 0x23, 0xd8, 0x13, 0x87, 0xc4,
-       0x8c, 0x7a, 0x4b, 0x43, 0x35, 0xdb, 0x8e, 0xe0, 0xad, 0x84, 0x4b, 0xb0,
-       0x09, 0xf2, 0x4f, 0x8a, 0x22, 0xc4, 0xe1, 0x37, 0x12, 0xc5, 0xd0, 0x87,
-       0x12, 0xce, 0xff, 0x11, 0xba, 0x39, 0x6b, 0x91, 0xaf, 0x2d, 0xc0, 0xab,
-       0xfd, 0x3e, 0xcc, 0x27, 0x4f, 0xa9, 0x4b, 0x3e, 0x65, 0x97, 0x12, 0x87,
-       0xeb, 0x87, 0x42, 0x9a, 0x47, 0xb1, 0xed, 0x03, 0x73, 0x7f, 0x6d, 0x4f,
-       0x8b, 0x4a, 0x59, 0x23, 0xb2, 0x48, 0xfe, 0x9f, 0xd4, 0x3c, 0xa3, 0xf5,
-       0x2c, 0x7c, 0xb8, 0x81, 0x58, 0x7a, 0xac, 0xb7, 0x12, 0x6f, 0xed, 0xee,
-       0x91, 0x35, 0x4b, 0x18, 0xfc, 0xfd, 0x5a, 0x6f, 0x00, 0x3a, 0xb1, 0x4c,
-       0xe7, 0x75, 0x03, 0x31, 0x5a, 0x27, 0x3e, 0xbf, 0xdd, 0x6b, 0x2f, 0xf0,
-       0x35, 0x59, 0x6c, 0xbd, 0x0e, 0x0b, 0x88, 0xd1, 0x6f, 0xf4, 0x06, 0x4f,
-       0x2c, 0x51, 0x15, 0x94, 0x34, 0x99, 0xec, 0xdb, 0x87, 0x17, 0x69, 0xdf,
-       0x4f, 0xa4, 0x8e, 0x7e, 0x6d, 0x06, 0xac, 0xfa, 0x12, 0x04, 0x37, 0x78,
-       0x14, 0x59, 0xe3, 0x90, 0xd8, 0x56, 0x8d, 0x1b, 0xc9, 0x4d, 0x74, 0xe2,
-       0x77, 0x4d, 0x56, 0xe2, 0x1c, 0xb0, 0x66, 0x68, 0x35, 0x3e, 0x1c, 0x14,
-       0x1f, 0xc5, 0x42, 0xb1, 0xff, 0x05, 0xe1, 0x90, 0x79, 0x86, 0xb8, 0x5c,
-       0x3b, 0x96, 0x20, 0xfe, 0xca, 0xb9, 0x3c, 0x8c, 0xab, 0xc4, 0x81, 0xca,
-       0x94, 0x60, 0x57, 0x00, 0x8d, 0xcc, 0xf7, 0xca, 0x53, 0xe2, 0x93, 0x96,
-       0x9c, 0x1b, 0xc1, 0xcd, 0x63, 0x3e, 0xe8, 0x63, 0x1a, 0x3f, 0x7e, 0xe8,
-       0x23, 0x55, 0xfc, 0x50, 0xd6, 0x91, 0x59, 0xfc, 0x50, 0x56, 0xc6, 0x31,
-       0x73, 0x44, 0xc1, 0x4d, 0x8e, 0x6d, 0x89, 0x0f, 0x7a, 0xf1, 0xec, 0x28,
-       0xb0, 0xa1, 0xdf, 0xc4, 0xe1, 0xfd, 0x39, 0x9c, 0xdb, 0xcc, 0x3e, 0x42,
-       0x03, 0x61, 0xac, 0x4f, 0x8b, 0x7d, 0x36, 0xe2, 0xb7, 0x7b, 0x8d, 0xb6,
-       0x35, 0x6a, 0x28, 0xb2, 0x9c, 0x18, 0xf6, 0xfe, 0x48, 0x23, 0x3e, 0x7c,
-       0x62, 0x01, 0x8c, 0x70, 0x23, 0xce, 0x1c, 0xd8, 0x84, 0xf2, 0x27, 0x54,
-       0xe2, 0x8f, 0x8a, 0xf1, 0xe9, 0x82, 0xed, 0x82, 0xa3, 0x5e, 0xab, 0x8c,
-       0xb8, 0xb5, 0x8d, 0xb8, 0xf5, 0xb3, 0xb9, 0xe3, 0x98, 0x9f, 0x94, 0x73,
-       0xad, 0xcc, 0xaf, 0xd4, 0x08, 0x9e, 0x24, 0x6e, 0xed, 0xea, 0x93, 0xf9,
-       0xe2, 0xdc, 0x12, 0xb3, 0xb6, 0xa6, 0x73, 0x9c, 0xe8, 0x70, 0xbf, 0xa1,
-       0xb9, 0x68, 0xcb, 0x43, 0x93, 0x78, 0xf5, 0x5b, 0xc6, 0xff, 0x47, 0xe6,
-       0x45, 0x71, 0x36, 0x2d, 0x7e, 0x25, 0x71, 0x45, 0xc7, 0x87, 0xb4, 0xf1,
-       0xa5, 0xd4, 0xf5, 0x19, 0xe6, 0x16, 0x2d, 0x8c, 0x73, 0x1f, 0xd3, 0x9e,
-       0x97, 0x93, 0x3f, 0xbe, 0x97, 0x12, 0x1b, 0x59, 0x8e, 0x25, 0x59, 0xb1,
-       0x05, 0x67, 0x9d, 0x95, 0xdf, 0x31, 0x9c, 0x4e, 0xfc, 0xb1, 0xb8, 0xb0,
-       0x12, 0xaf, 0x0e, 0xca, 0x79, 0x17, 0x03, 0xde, 0xde, 0xa0, 0x56, 0xa2,
-       0xc8, 0x9e, 0x6e, 0x9e, 0xfb, 0x4e, 0x38, 0x39, 0x76, 0x69, 0x34, 0xbf,
-       0xbf, 0x98, 0xdf, 0x77, 0xb0, 0xf0, 0xfd, 0xb9, 0x01, 0xf2, 0x4f, 0x28,
-       0x87, 0xe7, 0x16, 0xe0, 0xf6, 0x3d, 0x6d, 0x18, 0xd9, 0xfd, 0x31, 0x8a,
-       0xfa, 0xd5, 0x7b, 0x7d, 0xa8, 0xa9, 0x7b, 0x48, 0xe9, 0xc2, 0xa2, 0xb0,
-       0xbc, 0xe7, 0x23, 0x6b, 0xe6, 0x7d, 0xd8, 0x7c, 0x80, 0x79, 0xcc, 0xd8,
-       0x75, 0x38, 0xaa, 0x31, 0x1e, 0x9a, 0x1f, 0xa3, 0xa0, 0xdf, 0xe3, 0x9c,
-       0x05, 0x3c, 0x6a, 0x36, 0x61, 0xe5, 0xe4, 0x59, 0x40, 0x54, 0x5d, 0xbd,
-       0x97, 0x00, 0x5f, 0xe9, 0xe4, 0xff, 0x1f, 0xc8, 0xbd, 0xdb, 0x63, 0xa0,
-       0x77, 0xf4, 0x7f, 0x95, 0xe7, 0xce, 0x06, 0xfd, 0x6b, 0xca, 0x76, 0xa2,
-       0x7d, 0xcf, 0xe3, 0x58, 0xb1, 0xe7, 0x3b, 0xb8, 0x73, 0xa0, 0xb6, 0x33,
-       0xc2, 0x5c, 0xe7, 0x83, 0xf0, 0x38, 0x8e, 0x85, 0x8b, 0x60, 0xf9, 0xc9,
-       0xb1, 0x6e, 0xfc, 0x8a, 0xbc, 0x4e, 0xca, 0xbf, 0xd3, 0xb6, 0x7e, 0xaf,
-       0xb4, 0xf7, 0xf6, 0xa4, 0x7f, 0xfd, 0x7c, 0x9a, 0x9c, 0xa7, 0x79, 0x21,
-       0xf5, 0x2b, 0x5b, 0x77, 0x9e, 0xe7, 0xef, 0xbf, 0x65, 0xc7, 0xfc, 0x72,
-       0x7f, 0xd6, 0x64, 0xbd, 0xef, 0xe0, 0x01, 0xe6, 0xbf, 0xa7, 0x9b, 0xbe,
-       0x83, 0x85, 0x43, 0x97, 0xea, 0xa0, 0x68, 0xf7, 0x3a, 0x07, 0xbb, 0xe9,
-       0x61, 0xe4, 0x48, 0xb2, 0x57, 0x25, 0xfb, 0x27, 0x7f, 0x89, 0xcd, 0x7b,
-       0x65, 0x6d, 0xd3, 0xb6, 0xd7, 0x1b, 0xb2, 0xc7, 0x97, 0x3f, 0x37, 0x27,
-       0xed, 0x58, 0x8a, 0x95, 0x91, 0xba, 0x5b, 0x94, 0xbe, 0xcc, 0xd4, 0x31,
-       0x4d, 0x93, 0xff, 0x97, 0xa7, 0x95, 0x44, 0xa7, 0x8e, 0xad, 0x47, 0xd9,
-       0x9e, 0x39, 0xa2, 0xec, 0xca, 0x5c, 0xad, 0x8f, 0xe7, 0xec, 0x58, 0x9b,
-       0xb4, 0x21, 0x32, 0xc1, 0x8f, 0x62, 0x91, 0x2b, 0xff, 0xec, 0x99, 0x49,
-       0xb9, 0x0b, 0xa1, 0x57, 0xe6, 0xe4, 0xbe, 0x9f, 0x72, 0x9b, 0x4d, 0x31,
-       0xa8, 0xf3, 0xa6, 0xca, 0x9e, 0x1f, 0xe7, 0x7f, 0xbb, 0xd4, 0x56, 0xae,
-       0xdc, 0xcd, 0x7e, 0xb1, 0x21, 0x75, 0xde, 0xd4, 0x35, 0xfb, 0x02, 0xe2,
-       0x47, 0x48, 0xdb, 0x8a, 0x5c, 0xbe, 0xb7, 0xe6, 0xca, 0x7c, 0x4f, 0xb0,
-       0x0b, 0x23, 0x09, 0x0d, 0xef, 0x99, 0x92, 0xdf, 0xc9, 0xad, 0x28, 0xbe,
-       0xc7, 0xfc, 0xf1, 0x99, 0x44, 0xb0, 0x75, 0x9d, 0x52, 0x1f, 0x9b, 0xc3,
-       0x38, 0x87, 0x0a, 0x59, 0x4f, 0x8f, 0x38, 0xff, 0xaf, 0x2a, 0x13, 0x8a,
-       0x20, 0x43, 0x7f, 0x78, 0x23, 0x11, 0xec, 0x38, 0xa3, 0xe4, 0xfe, 0x0f,
-       0xd6, 0xeb, 0xce, 0xfb, 0x1c, 0x79, 0xbb, 0x13, 0xce, 0x39, 0x75, 0x3d,
-       0x57, 0x6c, 0x30, 0xd8, 0x97, 0x46, 0xa5, 0xac, 0x9b, 0x58, 0x16, 0xf3,
-       0xa1, 0xee, 0x94, 0x15, 0x50, 0xf1, 0x15, 0xc4, 0xfd, 0xb2, 0x47, 0x72,
-       0xcb, 0xe4, 0xff, 0xa9, 0x11, 0x7e, 0xf4, 0x2f, 0xaf, 0x4f, 0xc9, 0xff,
-       0x06, 0xca, 0xdb, 0x8b, 0x35, 0x76, 0x3d, 0xd2, 0x9a, 0xac, 0x7d, 0xc0,
-       0x9a, 0x46, 0x5d, 0xfb, 0x8d, 0x4d, 0x1c, 0xb7, 0x07, 0xd3, 0x99, 0xdb,
-       0x85, 0x6b, 0xeb, 0xdb, 0x1a, 0xd5, 0x6b, 0x10, 0xab, 0x08, 0x6a, 0x31,
-       0x72, 0xcd, 0x1e, 0xe7, 0xff, 0xed, 0xc8, 0xb9, 0x14, 0xab, 0xd5, 0x4b,
-       0x4c, 0x6f, 0x52, 0x14, 0x14, 0x84, 0xe0, 0x7e, 0x28, 0xe3, 0x86, 0x56,
-       0xfb, 0x5b, 0xfb, 0x17, 0x7e, 0x03, 0xdb, 0xc6, 0x6e, 0xb9, 0xf4, 0xff,
-       0x87, 0xfe, 0x63, 0xf6, 0xea, 0xec, 0x37, 0xdf, 0xe6, 0xc7, 0x76, 0x6c,
-       0xba, 0xf4, 0x2d, 0xed, 0xfe, 0x31, 0x59, 0xf3, 0xef, 0x7a, 0xd4, 0xe8,
-       0x2e, 0x94, 0x63, 0xab, 0xb9, 0xde, 0x2f, 0x67, 0xe5, 0xd6, 0x43, 0xf6,
-       0xff, 0x65, 0x0e, 0xe4, 0x1d, 0xc3, 0x08, 0xf3, 0x6e, 0xd1, 0x4b, 0x14,
-       0x0f, 0x66, 0xe4, 0x9d, 0xa0, 0x59, 0x90, 0xff, 0xfb, 0xf5, 0x60, 0x26,
-       0xa7, 0xbf, 0x47, 0x33, 0x3e, 0xe6, 0x00, 0x3e, 0xda, 0x60, 0x07, 0xf9,
-       0x0b, 0xf9, 0xd3, 0x25, 0x5d, 0xde, 0xeb, 0x97, 0x75, 0x85, 0xef, 0xd3,
-       0xa7, 0xdd, 0xb5, 0x72, 0x6d, 0xc9, 0xb9, 0x51, 0x25, 0x77, 0x7d, 0xde,
-       0x79, 0x37, 0x52, 0x8d, 0xae, 0xc3, 0xc2, 0xc4, 0x34, 0x39, 0x3f, 0x29,
-       0x6b, 0x36, 0x96, 0x3f, 0x2a, 0xef, 0x61, 0xf8, 0x88, 0xb1, 0x5f, 0xf5,
-       0x4f, 0xbe, 0x73, 0xd5, 0xba, 0x82, 0x38, 0x36, 0x27, 0x6c, 0xc4, 0x9a,
-       0x94, 0xa0, 0xbe, 0x52, 0x69, 0x63, 0xbd, 0x3a, 0xf4, 0x64, 0xa5, 0x0d,
-       0xc5, 0xf9, 0xdf, 0x92, 0x1e, 0xb6, 0x71, 0x30, 0x51, 0xaf, 0x7b, 0xd4,
-       0x4f, 0x6d, 0xcb, 0x39, 0x03, 0x29, 0xfb, 0xf6, 0x71, 0xbc, 0x94, 0x98,
-       0x4e, 0x94, 0xba, 0xba, 0xdd, 0x4b, 0xeb, 0xe7, 0x7f, 0xa3, 0x21, 0xc6,
-       0xb6, 0x82, 0x9d, 0x61, 0x57, 0x70, 0xc3, 0x05, 0xe2, 0x4a, 0x36, 0x6c,
-       0xc4, 0x7f, 0xc0, 0x3e, 0xfe, 0x56, 0xa9, 0x43, 0x62, 0x4a, 0xfb, 0xb9,
-       0xb6, 0xea, 0xdb, 0x0b, 0xd4, 0xf3, 0xce, 0xbb, 0xf8, 0xd2, 0xbe, 0x16,
-       0x5d, 0x0d, 0x2d, 0x69, 0xd9, 0x7e, 0xb6, 0x39, 0x33, 0x1a, 0xdc, 0x57,
-       0x41, 0x30, 0xfa, 0xb6, 0xda, 0x85, 0x35, 0x72, 0x3c, 0x24, 0x1a, 0xd4,
-       0x1f, 0xa0, 0x7d, 0x34, 0x3a, 0x6d, 0xc4, 0xea, 0x0a, 0x20, 0x9c, 0xf2,
-       0x4b, 0xed, 0x84, 0x39, 0x81, 0x70, 0x31, 0x96, 0x73, 0xce, 0x03, 0xc8,
-       0xb9, 0x49, 0xe6, 0x0d, 0x09, 0xf9, 0xbf, 0x7d, 0x4e, 0x37, 0x93, 0x7b,
-       0x5a, 0xcc, 0xd7, 0x19, 0xaf, 0xd7, 0xcb, 0xff, 0x48, 0x2a, 0xf6, 0xe1,
-       0xc1, 0x84, 0xac, 0x81, 0xfc, 0x1f, 0x05, 0x3f, 0x96, 0xb4, 0x1c, 0x54,
-       0x00, 0x00, 0x00 };
-
-static const u32 bnx2_CP_b09FwData[(0x84/4) + 1] = {
-       0x00000000, 0x0000001b, 0x0000000f, 0x0000000a, 0x00000008, 0x00000006,
-       0x00000005, 0x00000005, 0x00000004, 0x00000004, 0x00000003, 0x00000003,
-       0x00000003, 0x00000003, 0x00000003, 0x00000002, 0x00000002, 0x00000002,
-       0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000002,
-       0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000002,
-       0x00000001, 0x00000001, 0x00000001, 0x00000000 };
-static const u32 bnx2_CP_b09FwRodata[(0x16c/4) + 1] = {
-       0x80080100, 0x80080080, 0x80080000, 0x08001800, 0x08001800, 0x08001838,
-       0x08001838, 0x0800184c, 0x0800181c, 0x08001a74, 0x08001a40, 0x08001acc,
-       0x08001acc, 0x08001b54, 0x08001a84, 0x80080240, 0x080021c4, 0x08002010,
-       0x080021ec, 0x08002284, 0x080023d4, 0x08002420, 0x08002544, 0x0800244c,
-       0x080024d0, 0x08002080, 0x080029f8, 0x0800299c, 0x0800202c, 0x0800202c,
-       0x0800202c, 0x080025b8, 0x080025b8, 0x0800202c, 0x0800202c, 0x08002874,
-       0x0800202c, 0x0800202c, 0x0800202c, 0x0800202c, 0x080028d4, 0x0800202c,
-       0x0800202c, 0x0800202c, 0x0800202c, 0x0800202c, 0x0800202c, 0x0800202c,
-       0x0800202c, 0x0800202c, 0x0800202c, 0x0800202c, 0x0800202c, 0x0800202c,
-       0x0800202c, 0x08002440, 0x0800202c, 0x0800202c, 0x08002944, 0x0800202c,
-       0x0800202c, 0x0800202c, 0x0800202c, 0x0800202c, 0x0800202c, 0x0800202c,
-       0x0800202c, 0x0800202c, 0x0800202c, 0x0800202c, 0x0800202c, 0x0800202c,
-       0x0800202c, 0x0800202c, 0x0800202c, 0x0800202c, 0x08002798, 0x0800202c,
-       0x0800202c, 0x08002700, 0x0800265c, 0x080037c0, 0x08003794, 0x08003760,
-       0x08003734, 0x08003714, 0x080036c8, 0x80080100, 0x80080080, 0x80080000,
-       0x80080080, 0x00000000 };
-
-static struct fw_info bnx2_cp_fw_09 = {
-       /* Firmware version: 4.6.15 */
-       .ver_major                      = 0x4,
-       .ver_minor                      = 0x6,
-       .ver_fix                        = 0xf,
-
-       .start_addr                     = 0x08000080,
-
-       .text_addr                      = 0x08000000,
-       .text_len                       = 0x5418,
-       .text_index                     = 0x0,
-       .gz_text                        = bnx2_CP_b09FwText,
-       .gz_text_len                    = sizeof(bnx2_CP_b09FwText),
-
-       .data_addr                      = 0x080055a0,
-       .data_len                       = 0x84,
-       .data_index                     = 0x0,
-       .data                           = bnx2_CP_b09FwData,
-
-       .sbss_addr                      = 0x08005624,
-       .sbss_len                       = 0x91,
-       .sbss_index                     = 0x0,
-
-       .bss_addr                       = 0x080056b8,
-       .bss_len                        = 0x19c,
-       .bss_index                      = 0x0,
-
-       .rodata_addr                    = 0x08005418,
-       .rodata_len                     = 0x16c,
-       .rodata_index                   = 0x0,
-       .rodata                         = bnx2_CP_b09FwRodata,
-};
-
-static u8 bnx2_RXP_b09FwText[] = {
-       0xec, 0x5c, 0x7d, 0x70, 0x1c, 0xe5, 0x79, 0xff, 0xbd, 0x7b, 0x7b, 0xd2,
-       0x4a, 0x3a, 0x9d, 0x56, 0xa7, 0x93, 0x7c, 0x22, 0x04, 0xef, 0xa2, 0x3d,
-       0xf9, 0xb0, 0x0c, 0xec, 0x9d, 0x4f, 0xb6, 0xa0, 0xdb, 0xb2, 0x83, 0x0d,
-       0x11, 0x21, 0x13, 0x84, 0x4d, 0x52, 0x33, 0x49, 0x27, 0x37, 0xc6, 0x18,
-       0x81, 0x4d, 0x70, 0x0d, 0x6d, 0x55, 0x86, 0x19, 0x6f, 0x2c, 0x7f, 0x01,
-       0x27, 0x9d, 0x62, 0x64, 0x63, 0xd2, 0x0e, 0x68, 0x6c, 0x59, 0x08, 0x7c,
-       0xd2, 0x61, 0x20, 0xad, 0xe8, 0x84, 0xfa, 0x26, 0xd8, 0xe0, 0x94, 0xcf,
-       0x21, 0x0c, 0xc3, 0x1f, 0xcd, 0xa0, 0x62, 0x3e, 0xcc, 0x94, 0xa1, 0x26,
-       0x38, 0xa9, 0xdd, 0xb8, 0x7e, 0xfb, 0x3c, 0x7b, 0x3a, 0x9b, 0x90, 0x26,
-       0x9d, 0xfc, 0xd1, 0xff, 0xf6, 0x99, 0xb9, 0xb9, 0xbd, 0x77, 0xdf, 0xf7,
-       0xf9, 0xfe, 0x7c, 0x3d, 0xf2, 0x5f, 0x47, 0x50, 0x8f, 0x39, 0x68, 0xa4,
-       0x4f, 0x76, 0xc3, 0xc0, 0xc6, 0xf4, 0x65, 0x4b, 0x2e, 0xa3, 0xc7, 0xee,
-       0x50, 0x53, 0x8d, 0xca, 0xeb, 0x02, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01,
-       0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10,
-       0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00,
-       0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04,
-       0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0x04, 0x10, 0x40,
-       0x00, 0x01, 0x04, 0x10, 0x40, 0x00, 0x01, 0xfc, 0x7f, 0x40, 0x08, 0xd0,
-       0xf9, 0xbb, 0x71, 0xee, 0x03, 0x4d, 0x71, 0xdc, 0x7b, 0xaf, 0xb6, 0xa0,
-       0x85, 0x9c, 0x99, 0x7b, 0x6f, 0xb1, 0x00, 0xb7, 0xd8, 0x65, 0x2c, 0xc3,
-       0x7f, 0x4b, 0x2f, 0xae, 0x82, 0xd7, 0xbf, 0xea, 0x9c, 0x79, 0xec, 0xf9,
-       0xa5, 0xe6, 0x89, 0xb1, 0x10, 0x34, 0xdd, 0x79, 0x27, 0xad, 0x77, 0x42,
-       0xbb, 0x90, 0xce, 0xfc, 0xfd, 0x82, 0x95, 0x31, 0x44, 0xab, 0xb8, 0xe0,
-       0x29, 0x8e, 0x94, 0xfb, 0x6d, 0x89, 0x17, 0x6d, 0x4f, 0x2c, 0xcb, 0xc2,
-       0xd3, 0x9c, 0x19, 0x51, 0x37, 0x74, 0x56, 0x1a, 0xe1, 0x0a, 0xe5, 0x35,
-       0x45, 0x05, 0xaa, 0xa5, 0xe1, 0xd6, 0xf1, 0x7a, 0xac, 0x1d, 0x6b, 0xc0,
-       0x9a, 0xb1, 0x04, 0x6e, 0x2b, 0x42, 0x0f, 0x39, 0x1a, 0x66, 0x43, 0x33,
-       0x22, 0x34, 0x85, 0x5c, 0xd8, 0x39, 0x75, 0xc3, 0xde, 0xfc, 0x59, 0xe9,
-       0xfa, 0x7f, 0x63, 0x52, 0xbe, 0x61, 0xdc, 0x7f, 0x0f, 0x45, 0x75, 0x0e,
-       0xd3, 0x33, 0xef, 0x3b, 0x75, 0xc3, 0xbe, 0xe2, 0x71, 0xf9, 0xfc, 0x82,
-       0x38, 0x0e, 0x95, 0x74, 0x3c, 0x55, 0xda, 0x4f, 0x3c, 0x98, 0x9e, 0x07,
-       0xcd, 0x53, 0x1d, 0x0f, 0x5b, 0xb3, 0x61, 0x4c, 0x8c, 0x9c, 0x95, 0x21,
-       0xcb, 0x34, 0xa0, 0x58, 0xfa, 0x0b, 0xa0, 0x7d, 0x05, 0xda, 0x57, 0x08,
-       0x63, 0xef, 0x58, 0x29, 0x86, 0xfa, 0x04, 0x9e, 0x5f, 0xc0, 0xe7, 0xf9,
-       0x2c, 0xe3, 0x78, 0x3b, 0x5a, 0x3d, 0x5f, 0x43, 0xe7, 0x8f, 0x64, 0x81,
-       0xf1, 0x91, 0x3e, 0x3a, 0x2a, 0x31, 0x68, 0xd7, 0x62, 0xb5, 0x0e, 0xaf,
-       0xce, 0x61, 0x5c, 0x55, 0x3c, 0x9e, 0x30, 0xa6, 0x8e, 0x34, 0x55, 0xf0,
-       0x40, 0x68, 0x16, 0xbc, 0xda, 0x2f, 0xbd, 0x3f, 0x5e, 0xac, 0xbe, 0xdf,
-       0x41, 0x74, 0x34, 0xd2, 0xc3, 0x06, 0xfc, 0x73, 0xa9, 0x1f, 0xff, 0x50,
-       0xca, 0xe1, 0xd9, 0x52, 0x1f, 0xd1, 0xbd, 0x87, 0xe8, 0xae, 0xc7, 0x3f,
-       0x96, 0xd6, 0xe0, 0xc7, 0xa5, 0xef, 0xe2, 0x99, 0xd2, 0x2a, 0x3c, 0x5d,
-       0xba, 0x09, 0x07, 0x4b, 0x1e, 0xc2, 0xdd, 0x8c, 0x2f, 0x25, 0x3e, 0xcb,
-       0xd7, 0x11, 0x1f, 0x5b, 0x30, 0x5b, 0x64, 0x79, 0x24, 0x46, 0x6c, 0x73,
-       0x0c, 0x58, 0x90, 0xa8, 0x81, 0xc0, 0x6a, 0xdb, 0x7c, 0x0a, 0xb8, 0x0d,
-       0x6e, 0xdc, 0x3c, 0xc1, 0x5a, 0x7a, 0x62, 0xc4, 0x40, 0x98, 0xf8, 0xb5,
-       0xd2, 0x6d, 0xd8, 0xaa, 0xf7, 0xa1, 0xde, 0x1a, 0xc2, 0x03, 0xbe, 0x8d,
-       0xa1, 0x45, 0x9c, 0x7f, 0x45, 0x7e, 0x48, 0xe0, 0xc1, 0x24, 0x34, 0x41,
-       0xcf, 0x5d, 0xc5, 0xbf, 0x6b, 0xa9, 0xd8, 0x8c, 0x78, 0x28, 0x10, 0x5f,
-       0x05, 0xe2, 0xa3, 0x40, 0xbc, 0x15, 0x88, 0x97, 0x02, 0xf1, 0x57, 0x20,
-       0x7e, 0x0a, 0xc4, 0x4f, 0x81, 0xf8, 0x29, 0x10, 0xaf, 0x05, 0xd6, 0xf9,
-       0x00, 0xc9, 0x52, 0xb1, 0x71, 0xab, 0x63, 0x63, 0xac, 0xd4, 0x26, 0xf6,
-       0xee, 0x56, 0xc5, 0x73, 0xc3, 0x06, 0xe6, 0x3b, 0x88, 0x3c, 0xbd, 0xc4,
-       0x2a, 0x5f, 0x15, 0xea, 0x9a, 0x49, 0xc0, 0x4d, 0xcf, 0x83, 0x8d, 0x89,
-       0x92, 0x2a, 0xa6, 0x87, 0xa5, 0x5c, 0x69, 0xbb, 0x68, 0x72, 0xcc, 0x9e,
-       0x8d, 0x8a, 0xd5, 0xff, 0xba, 0x68, 0xc4, 0x2f, 0x47, 0x7a, 0x31, 0xd6,
-       0xec, 0xe2, 0x70, 0xd6, 0xc0, 0xb2, 0x8c, 0x82, 0x5c, 0xdc, 0xc3, 0xb6,
-       0xac, 0x69, 0x7b, 0x18, 0x45, 0x39, 0xce, 0xe7, 0x34, 0xd2, 0xb5, 0x87,
-       0x64, 0xb7, 0x86, 0xc9, 0x11, 0x17, 0x35, 0xe9, 0x1a, 0x94, 0xfb, 0x58,
-       0x7f, 0x2a, 0xc9, 0xb4, 0x0f, 0xf5, 0xb1, 0x18, 0x1a, 0xac, 0x4b, 0xd0,
-       0x10, 0xe3, 0x35, 0x88, 0x56, 0xd2, 0xd5, 0x3c, 0xe7, 0x02, 0xf1, 0xf9,
-       0xee, 0x28, 0x3e, 0x1d, 0xd5, 0x50, 0xda, 0xa9, 0xe2, 0x1b, 0x19, 0x29,
-       0xff, 0x2a, 0xa3, 0xf6, 0x7f, 0x2a, 0x1c, 0x4c, 0x95, 0x54, 0x7c, 0x9e,
-       0x4f, 0xc3, 0x6b, 0xd6, 0xf0, 0x9f, 0x79, 0x0f, 0x21, 0xc2, 0x3b, 0x40,
-       0x78, 0x6b, 0x17, 0xa7, 0x30, 0x1b, 0x67, 0x71, 0xfa, 0xb0, 0x31, 0xdf,
-       0xb1, 0x63, 0xa3, 0x52, 0x03, 0xa3, 0x06, 0x64, 0xff, 0x2c, 0x36, 0xe5,
-       0x3b, 0x8e, 0x6e, 0x52, 0xb6, 0xe0, 0xe2, 0x5a, 0x0d, 0x9b, 0x87, 0x79,
-       0x6d, 0x39, 0xca, 0x45, 0x41, 0xfe, 0xf0, 0xc7, 0xea, 0x6b, 0x26, 0x42,
-       0x7e, 0x65, 0xfc, 0xf1, 0x7a, 0x4e, 0x34, 0xa2, 0xde, 0x34, 0xca, 0x58,
-       0x1f, 0xe7, 0xf3, 0x39, 0xe5, 0x5d, 0xe9, 0xc6, 0x99, 0x0f, 0xcd, 0x0b,
-       0x91, 0x6e, 0x6e, 0xc9, 0x66, 0xb1, 0x26, 0xdf, 0xa1, 0xaf, 0x51, 0x48,
-       0xdb, 0x6a, 0xc5, 0xc6, 0x71, 0x07, 0xe9, 0xd1, 0x61, 0x81, 0x91, 0x4e,
-       0xb6, 0x31, 0xd2, 0x76, 0xd1, 0x8f, 0x09, 0xc3, 0x50, 0x2a, 0x31, 0xf1,
-       0x58, 0x36, 0x89, 0xb3, 0x0f, 0xf1, 0x6f, 0x15, 0x3f, 0x5b, 0x9a, 0xc4,
-       0xc7, 0xfb, 0x4a, 0x73, 0x71, 0xfb, 0x68, 0xa4, 0xb2, 0xef, 0x1a, 0xa2,
-       0xc9, 0x32, 0x32, 0xae, 0xc9, 0x7b, 0x47, 0x3b, 0x6b, 0xe9, 0x77, 0xc5,
-       0xd6, 0xfd, 0xf9, 0x0e, 0xbb, 0x5f, 0xd1, 0x50, 0x4e, 0x44, 0x48, 0xf7,
-       0xd0, 0xea, 0x08, 0xff, 0x25, 0x43, 0x67, 0xb0, 0x22, 0x63, 0x4e, 0xf2,
-       0xdf, 0x80, 0x25, 0x93, 0x15, 0x9a, 0xc9, 0xa2, 0x8d, 0x03, 0x25, 0x1b,
-       0x77, 0xe4, 0x3b, 0xdc, 0x95, 0x62, 0x16, 0x68, 0x5f, 0x98, 0x9b, 0x54,
-       0x7e, 0x21, 0xbd, 0x56, 0xa6, 0xb3, 0x10, 0x93, 0xb1, 0x8e, 0x81, 0x49,
-       0xc5, 0xdc, 0xd3, 0xaf, 0x48, 0xf9, 0xab, 0xb4, 0x82, 0xaf, 0x65, 0xb2,
-       0x98, 0xd5, 0x75, 0xdc, 0x9c, 0xd1, 0xbc, 0x16, 0xe2, 0x71, 0xc3, 0x12,
-       0x0d, 0x17, 0xed, 0x74, 0xf1, 0xf6, 0xe2, 0x9f, 0xa3, 0xbc, 0x82, 0x75,
-       0xcf, 0x7c, 0xb1, 0x1c, 0x09, 0xc4, 0xac, 0x3a, 0xc4, 0xf6, 0x86, 0x31,
-       0x6f, 0xe7, 0x59, 0x99, 0xb0, 0x78, 0xdd, 0x9a, 0x3c, 0xa5, 0xb0, 0x0c,
-       0x61, 0xb4, 0xee, 0xbd, 0x82, 0x72, 0x8a, 0x99, 0x02, 0xbe, 0x16, 0xe7,
-       0xbd, 0x35, 0x56, 0x55, 0x96, 0x08, 0x76, 0xef, 0xac, 0xc8, 0xff, 0x68,
-       0xb6, 0x07, 0x2f, 0x15, 0xb0, 0xaf, 0x0d, 0x3f, 0xc0, 0xc8, 0x12, 0xce,
-       0x4f, 0x8c, 0x63, 0x88, 0x64, 0xff, 0xc1, 0x89, 0x70, 0xa6, 0x6a, 0xe3,
-       0xea, 0x39, 0x81, 0x6f, 0x5e, 0x29, 0xf0, 0x6a, 0x7a, 0x5a, 0x8e, 0xb5,
-       0x32, 0xbf, 0x0f, 0x37, 0x56, 0xfe, 0x16, 0xae, 0xee, 0x94, 0x8b, 0x36,
-       0xa2, 0x55, 0xdd, 0xc7, 0x38, 0x2e, 0x69, 0x25, 0xfd, 0xa5, 0x66, 0xf1,
-       0x5f, 0x11, 0xd4, 0xb3, 0x9d, 0xef, 0x96, 0x46, 0x4b, 0x85, 0xe6, 0xfd,
-       0x44, 0xb3, 0x63, 0x48, 0xc5, 0xe6, 0x7c, 0xc7, 0xa9, 0xf7, 0x94, 0xef,
-       0xcb, 0xd9, 0xf9, 0x4c, 0xa7, 0xc3, 0x3e, 0xa6, 0x08, 0xfc, 0x54, 0x35,
-       0x67, 0x72, 0x48, 0x60, 0xb2, 0x04, 0xaf, 0xdd, 0xd1, 0x29, 0xfe, 0xe3,
-       0x94, 0x07, 0x0c, 0xd1, 0xf9, 0xb0, 0x8d, 0x85, 0x43, 0xdf, 0x85, 0xb5,
-       0xcb, 0xc1, 0x4c, 0xc1, 0xc6, 0x54, 0x41, 0xca, 0xed, 0xb6, 0x94, 0xef,
-       0xda, 0xe6, 0x86, 0xe3, 0x21, 0xb8, 0x97, 0x2f, 0xed, 0x4a, 0xd5, 0x86,
-       0x54, 0xd6, 0x4d, 0xee, 0x75, 0x91, 0x5c, 0xb5, 0x5f, 0xf4, 0xe2, 0x89,
-       0x92, 0x81, 0x62, 0x29, 0x85, 0x27, 0x4b, 0xac, 0x7f, 0x8b, 0xbe, 0x17,
-       0x51, 0x7c, 0x66, 0x29, 0xb7, 0x30, 0xbf, 0x3a, 0xc6, 0x17, 0xd8, 0x98,
-       0x2c, 0x28, 0x08, 0x91, 0xce, 0x73, 0x3a, 0xed, 0x2f, 0x9c, 0x25, 0xdb,
-       0x69, 0xe8, 0xf8, 0xa1, 0x8b, 0xdb, 0xed, 0x16, 0x18, 0x37, 0x5a, 0x18,
-       0x2f, 0x68, 0x94, 0xbb, 0x55, 0xf4, 0xe6, 0xc7, 0x31, 0xaf, 0x39, 0x4e,
-       0xb1, 0x26, 0xb0, 0x2a, 0x13, 0x01, 0x56, 0xf2, 0xbb, 0x08, 0xda, 0xad,
-       0x32, 0xda, 0x63, 0x8d, 0x98, 0xbf, 0xf0, 0x9f, 0x30, 0xdb, 0x12, 0x25,
-       0x1d, 0xd7, 0x93, 0x1e, 0x04, 0x54, 0xb2, 0x53, 0x9b, 0x65, 0x11, 0x4e,
-       0x01, 0x2b, 0x49, 0x7b, 0x29, 0x7e, 0x13, 0x24, 0x7b, 0x78, 0x69, 0x1c,
-       0x8f, 0x13, 0xff, 0xa5, 0xbc, 0x94, 0x91, 0xac, 0xb9, 0x61, 0x3b, 0xe5,
-       0x84, 0xe9, 0x62, 0x0f, 0x4a, 0xa5, 0x6f, 0x62, 0x6a, 0x84, 0xf8, 0xcc,
-       0x3b, 0xc4, 0x93, 0xaa, 0x17, 0x85, 0xd9, 0xb7, 0x5a, 0x64, 0xf1, 0x24,
-       0xf9, 0xce, 0x44, 0xc1, 0x34, 0x8e, 0x93, 0x9f, 0xbd, 0x60, 0x37, 0x10,
-       0x9f, 0x2e, 0xe1, 0x32, 0xf0, 0x5c, 0xbe, 0x00, 0xab, 0x85, 0xed, 0x15,
-       0xc1, 0xfd, 0x3b, 0xb3, 0x84, 0x13, 0x83, 0x75, 0xf0, 0xa0, 0x2e, 0xf1,
-       0x4e, 0x6c, 0xb5, 0x87, 0x22, 0x55, 0x1f, 0xaf, 0x27, 0x9a, 0x7d, 0xdd,
-       0x36, 0x42, 0xc3, 0x3d, 0x84, 0x97, 0xfc, 0x15, 0xb7, 0x92, 0xbf, 0x7a,
-       0xb8, 0x9c, 0xe2, 0x21, 0xea, 0xec, 0x49, 0xbf, 0x36, 0xe4, 0xc9, 0x5a,
-       0xcb, 0xea, 0xff, 0x48, 0x6c, 0xc2, 0x27, 0x69, 0xb6, 0x83, 0x4a, 0xf2,
-       0xea, 0x78, 0x39, 0x3d, 0x82, 0x57, 0x8b, 0x7f, 0x82, 0x5c, 0xb3, 0x99,
-       0xda, 0x2c, 0xd6, 0x61, 0x66, 0xe4, 0x0a, 0xe0, 0xcf, 0xd9, 0x7e, 0x02,
-       0xf3, 0xad, 0x75, 0x38, 0x34, 0x76, 0x2f, 0x8e, 0x8c, 0xd6, 0xe3, 0x39,
-       0x2b, 0x86, 0xf6, 0x89, 0x0a, 0x9d, 0x6b, 0xe6, 0x72, 0x93, 0x9e, 0xa6,
-       0xe0, 0x6b, 0xe3, 0x98, 0x14, 0xb8, 0x3e, 0xb3, 0x0e, 0x39, 0xdf, 0xcf,
-       0x3d, 0xac, 0xa1, 0xdc, 0x96, 0xcf, 0xbb, 0x14, 0xd7, 0x75, 0xd8, 0xd9,
-       0x0c, 0x71, 0x0b, 0xd5, 0x93, 0x3b, 0x29, 0x5e, 0xef, 0x54, 0x62, 0x70,
-       0x13, 0x2e, 0xd9, 0x55, 0xe0, 0x22, 0xcb, 0xc0, 0x9e, 0x22, 0x70, 0x77,
-       0x51, 0xc5, 0xdf, 0x14, 0x2f, 0x45, 0xb9, 0x8d, 0xcf, 0x2e, 0x40, 0x79,
-       0x1e, 0x7f, 0x87, 0x31, 0x16, 0x33, 0x13, 0x20, 0x9d, 0xed, 0x2f, 0xa8,
-       0xf8, 0xb1, 0xbd, 0xeb, 0xec, 0xd8, 0x0a, 0x53, 0xcf, 0x51, 0xac, 0x85,
-       0xac, 0xd3, 0xe4, 0x67, 0xfc, 0x0c, 0x7c, 0x3f, 0xff, 0x99, 0xfc, 0xb9,
-       0x4f, 0x53, 0xc5, 0x6d, 0xf9, 0x8e, 0x81, 0x8f, 0x94, 0x8f, 0xe5, 0xbf,
-       0x85, 0x19, 0xff, 0x77, 0xa2, 0x15, 0x7f, 0xdd, 0xc3, 0x79, 0xc4, 0xad,
-       0xf8, 0xed, 0xbc, 0x2f, 0xf8, 0x6d, 0xc5, 0x3f, 0x47, 0xb2, 0xcc, 0x47,
-       0x35, 0xc6, 0x62, 0xb8, 0x68, 0x22, 0x89, 0xba, 0x9d, 0xfc, 0x9b, 0xd7,
-       0x05, 0x2e, 0xee, 0xe6, 0xf8, 0x4a, 0x42, 0xd9, 0x7b, 0x2d, 0xe1, 0x63,
-       0xd9, 0xab, 0xb9, 0xe2, 0x7b, 0x73, 0xf8, 0xcf, 0xe7, 0x98, 0x76, 0xc2,
-       0xb7, 0x74, 0x29, 0x3f, 0xf3, 0x99, 0x3a, 0xfc, 0x7a, 0xaf, 0x69, 0x97,
-       0x95, 0xa5, 0x44, 0x93, 0x63, 0x92, 0x63, 0xf3, 0x2f, 0xe6, 0xce, 0x24,
-       0xc8, 0xce, 0xd3, 0xb2, 0xbc, 0x8a, 0xf1, 0x55, 0xcf, 0x27, 0x11, 0x3a,
-       0x47, 0x57, 0xc5, 0xea, 0xec, 0x97, 0xe9, 0xda, 0x94, 0xf7, 0x5b, 0xd1,
-       0xb0, 0xd0, 0x22, 0x3b, 0xb5, 0xa1, 0x91, 0xe2, 0x3a, 0x62, 0xad, 0x92,
-       0x91, 0x6f, 0xb3, 0x8f, 0x6a, 0x5e, 0xd8, 0xf9, 0x0a, 0x4a, 0x23, 0xcf,
-       0x93, 0x7d, 0xa3, 0xec, 0x8b, 0x1b, 0x3e, 0x12, 0x5f, 0xc1, 0xf4, 0x98,
-       0x88, 0xb2, 0xac, 0xab, 0x28, 0xb6, 0xe7, 0x53, 0x7d, 0xf8, 0xe0, 0xe1,
-       0xbb, 0xe4, 0x58, 0x9f, 0x8e, 0x17, 0xb3, 0x49, 0x5a, 0x67, 0x5f, 0xb2,
-       0xf1, 0x4c, 0x5e, 0xc3, 0xee, 0xe1, 0x84, 0xef, 0xc7, 0xf7, 0x74, 0xd6,
-       0x9d, 0x2a, 0x2b, 0x36, 0x9e, 0x25, 0x3f, 0x3c, 0x58, 0x60, 0x1d, 0xab,
-       0xb8, 0x38, 0xf3, 0x75, 0x59, 0xd3, 0xc6, 0xbe, 0x1d, 0xa1, 0x33, 0x3a,
-       0xe1, 0x8e, 0x42, 0xb7, 0x96, 0xcb, 0x37, 0x56, 0xf0, 0x73, 0x03, 0xad,
-       0xb5, 0xd1, 0xf7, 0x12, 0xd9, 0xf8, 0x3b, 0x7c, 0xe8, 0xff, 0x1b, 0x1f,
-       0xf4, 0x1d, 0xa3, 0x75, 0x90, 0xbf, 0xcc, 0x88, 0xd5, 0x95, 0xfe, 0x46,
-       0x53, 0xad, 0x19, 0xb1, 0xc6, 0xef, 0x69, 0xfc, 0x34, 0x4e, 0x38, 0x7a,
-       0xb1, 0x77, 0x54, 0xca, 0x2d, 0x76, 0x3b, 0x5c, 0x3d, 0x86, 0x2d, 0x16,
-       0xc5, 0xeb, 0x28, 0x9f, 0x91, 0x32, 0x95, 0x5e, 0xd8, 0xa3, 0x8a, 0x16,
-       0xca, 0x99, 0x9e, 0x58, 0x9b, 0x35, 0xc4, 0x9d, 0xa3, 0x2a, 0xf2, 0x85,
-       0x0b, 0x28, 0x27, 0x4b, 0xf9, 0x64, 0x1a, 0xee, 0x60, 0xba, 0x01, 0x2f,
-       0x8f, 0xe9, 0x14, 0x3b, 0x67, 0xe5, 0xf2, 0x64, 0x2f, 0x4a, 0x84, 0xe7,
-       0xd3, 0x74, 0x57, 0xea, 0xb0, 0x88, 0x60, 0x2c, 0x1e, 0xc1, 0x9e, 0x42,
-       0x1c, 0x87, 0xc7, 0x23, 0xd8, 0x46, 0xfe, 0xf7, 0xd3, 0x2c, 0xd3, 0x8c,
-       0x60, 0x73, 0x89, 0x7b, 0x8d, 0x10, 0xe9, 0xc0, 0x13, 0xef, 0xf9, 0x6b,
-       0x0d, 0x58, 0x3e, 0xc6, 0x7b, 0xcf, 0xca, 0x76, 0xcb, 0xd2, 0xdb, 0x43,
-       0xd5, 0x7d, 0xef, 0x50, 0x1f, 0x63, 0x50, 0xef, 0x72, 0x21, 0xe5, 0xaa,
-       0x04, 0xf5, 0x2a, 0x71, 0xea, 0x55, 0xac, 0xb9, 0xfe, 0xcb, 0xa4, 0x48,
-       0x93, 0xf2, 0x19, 0xca, 0x53, 0x6f, 0xd2, 0xe7, 0xa4, 0x4d, 0xe5, 0x96,
-       0x64, 0xbc, 0x78, 0x98, 0x65, 0xf4, 0x84, 0xbd, 0x84, 0x3a, 0xce, 0x69,
-       0xd3, 0x70, 0x95, 0x5f, 0x50, 0x9f, 0x65, 0xa0, 0x63, 0x9a, 0x79, 0x50,
-       0xb1, 0xb5, 0x00, 0x0c, 0x16, 0xe0, 0x1d, 0xa6, 0xd8, 0x6e, 0x99, 0x88,
-       0x22, 0x36, 0xa1, 0x23, 0x3c, 0x91, 0xa2, 0xbd, 0x1a, 0xe2, 0xf4, 0xdb,
-       0xa3, 0xbe, 0xab, 0xc9, 0x69, 0x13, 0x8b, 0x76, 0x9f, 0x91, 0x0f, 0x52,
-       0xac, 0xdd, 0x91, 0x34, 0x7b, 0x6f, 0x14, 0x70, 0x53, 0x43, 0x52, 0xd6,
-       0xa6, 0x6b, 0xa9, 0x7e, 0xcb, 0x43, 0x71, 0x92, 0x3d, 0xea, 0xc8, 0x4d,
-       0xaf, 0x76, 0x5b, 0xf6, 0xab, 0x20, 0xbc, 0x25, 0x3e, 0xc3, 0xeb, 0x9e,
-       0xf8, 0xac, 0xdb, 0xda, 0xf3, 0x16, 0x3a, 0xb1, 0x78, 0x42, 0x15, 0xbf,
-       0x1c, 0x5a, 0x84, 0xcc, 0x34, 0xf4, 0x1a, 0xe2, 0xeb, 0xc3, 0x29, 0xe2,
-       0xbb, 0x40, 0xb2, 0x14, 0x48, 0x96, 0x02, 0xc9, 0x42, 0x7a, 0x39, 0xe8,
-       0xf7, 0x6d, 0x2c, 0x6b, 0x8a, 0xea, 0xef, 0x3b, 0x7e, 0x6f, 0x79, 0xb0,
-       0xc4, 0x72, 0x98, 0xae, 0x07, 0x96, 0x9b, 0xe5, 0x94, 0xf2, 0x2d, 0x9b,
-       0xe5, 0x31, 0x0d, 0x4f, 0x21, 0x6b, 0x4d, 0x1b, 0x48, 0x4d, 0x57, 0xf5,
-       0x21, 0xe5, 0xe7, 0x36, 0xeb, 0x83, 0x65, 0x94, 0xf2, 0x69, 0x92, 0x69,
-       0x2b, 0xc9, 0x38, 0x58, 0x90, 0x87, 0x6a, 0x2c, 0xcb, 0x98, 0x20, 0xde,
-       0x62, 0x24, 0x53, 0x7c, 0x42, 0x23, 0x59, 0x3b, 0xa1, 0x92, 0xac, 0xa1,
-       0x09, 0xe8, 0x0a, 0xeb, 0x69, 0xfa, 0xff, 0xe2, 0x87, 0xfb, 0x6a, 0x4f,
-       0x5c, 0x43, 0xfd, 0xb4, 0x4a, 0xfb, 0x07, 0xc9, 0x77, 0x72, 0x2a, 0x8c,
-       0x5a, 0x4b, 0xa1, 0x3c, 0xac, 0xe1, 0xf1, 0xf1, 0x06, 0x4c, 0x90, 0xdd,
-       0xc7, 0xc6, 0xa1, 0x87, 0xe9, 0xfd, 0xd6, 0x73, 0xfe, 0x04, 0xf2, 0xa7,
-       0x0d, 0x18, 0xa7, 0xfc, 0xf3, 0x40, 0x3e, 0x26, 0x26, 0x46, 0x54, 0x6c,
-       0x29, 0x9c, 0x20, 0xd9, 0x24, 0xe5, 0xd8, 0xcd, 0x09, 0xda, 0x22, 0x36,
-       0xdb, 0x66, 0x0f, 0x70, 0x05, 0xf9, 0x5a, 0x08, 0x6b, 0x2d, 0xb8, 0xdb,
-       0xed, 0x2b, 0x30, 0xdb, 0x07, 0x63, 0x87, 0xed, 0xe9, 0x35, 0x30, 0x8f,
-       0x5e, 0x43, 0xa3, 0xc0, 0xe5, 0x24, 0xc7, 0x80, 0xe5, 0x6d, 0xa0, 0x84,
-       0x44, 0xf9, 0xdb, 0xec, 0x3f, 0x42, 0x36, 0x28, 0x52, 0x5d, 0x2b, 0x52,
-       0x0f, 0x78, 0x60, 0xf4, 0x8c, 0xbc, 0x3d, 0x6d, 0xba, 0x49, 0x5a, 0x0b,
-       0x0f, 0x69, 0xd8, 0x5f, 0xd2, 0x28, 0x5e, 0x4c, 0x1b, 0xe0, 0x98, 0x87,
-       0x56, 0x4b, 0x3d, 0xda, 0x47, 0xd6, 0xa3, 0xd4, 0x0b, 0x6b, 0xa0, 0x3e,
-       0x19, 0x57, 0x8f, 0x08, 0xec, 0xa7, 0xf8, 0x9d, 0x5a, 0x64, 0x1e, 0x5d,
-       0x0d, 0xaf, 0xdc, 0x0e, 0x73, 0xa0, 0x96, 0x18, 0xf9, 0x74, 0xa8, 0x86,
-       0xfa, 0xc2, 0x4e, 0xfb, 0x35, 0x98, 0xfa, 0xfe, 0xd0, 0xaf, 0xe4, 0x64,
-       0x1c, 0x17, 0x84, 0x71, 0x52, 0x1a, 0xdf, 0xe2, 0x33, 0x2c, 0xf7, 0x06,
-       0x6c, 0xcf, 0x42, 0x0b, 0x3b, 0x6a, 0x7a, 0x7f, 0x1e, 0x38, 0x96, 0x37,
-       0x30, 0xb9, 0xa8, 0x0e, 0x68, 0xee, 0xe8, 0xb9, 0x03, 0xde, 0xaa, 0xb0,
-       0xdf, 0xe7, 0x6a, 0xe9, 0x3c, 0xf9, 0xc8, 0x7a, 0x21, 0xf0, 0x24, 0xd1,
-       0x5a, 0x30, 0xc5, 0x7d, 0x89, 0x9a, 0x5e, 0x48, 0x79, 0x76, 0x5b, 0x49,
-       0xa0, 0xd6, 0x32, 0xf5, 0x59, 0xb0, 0x6e, 0x74, 0xd2, 0xe9, 0x19, 0x89,
-       0x66, 0x96, 0xdd, 0xcb, 0x91, 0x9c, 0xab, 0xb6, 0x12, 0xff, 0x6b, 0x48,
-       0xa6, 0xdb, 0x2d, 0xaf, 0x87, 0xb0, 0x52, 0xed, 0x31, 0x13, 0x1f, 0x90,
-       0xec, 0x6b, 0x29, 0x47, 0x8c, 0x95, 0x86, 0x9b, 0x38, 0x1f, 0x4c, 0x94,
-       0x78, 0x4e, 0xea, 0xc1, 0xd5, 0xf9, 0x6a, 0x2c, 0xb0, 0xdd, 0xd9, 0xe6,
-       0x17, 0xfa, 0xf5, 0xfb, 0xa0, 0xef, 0x23, 0xdc, 0x3f, 0xf5, 0x60, 0xb4,
-       0x53, 0xa1, 0xde, 0x5c, 0xca, 0x15, 0x96, 0x39, 0xc2, 0xf9, 0x99, 0x7c,
-       0xdd, 0xdd, 0x67, 0x37, 0x51, 0x6c, 0xc2, 0x7b, 0xc2, 0x36, 0x50, 0xe3,
-       0xb0, 0x4f, 0x34, 0x90, 0x8f, 0x47, 0xb0, 0x9d, 0x7c, 0x44, 0xb3, 0xac,
-       0x14, 0x35, 0x53, 0xfa, 0xb1, 0x2c, 0xed, 0x2d, 0xc1, 0x28, 0xd9, 0xf5,
-       0x98, 0x6d, 0x55, 0xd1, 0xec, 0x1c, 0x92, 0x2d, 0xd6, 0x7f, 0x10, 0x7d,
-       0x4b, 0xbf, 0x1b, 0xab, 0x61, 0xb4, 0x1a, 0x68, 0x70, 0xf8, 0xfd, 0x69,
-       0x39, 0xdb, 0x1c, 0x21, 0xff, 0xe2, 0x3d, 0x96, 0x77, 0x10, 0xbf, 0x96,
-       0x88, 0xf1, 0x5e, 0x97, 0xf2, 0x27, 0xc4, 0x0c, 0xd1, 0x42, 0x0b, 0xc7,
-       0x2d, 0xf7, 0xe7, 0xd6, 0xd1, 0x43, 0x54, 0x53, 0x8c, 0x16, 0x50, 0x2e,
-       0x55, 0x11, 0x72, 0x2c, 0x7d, 0x1f, 0x8e, 0x92, 0xcd, 0xd9, 0x45, 0x2e,
-       0x12, 0xd7, 0xed, 0xba, 0x50, 0xf4, 0xee, 0x92, 0xb2, 0x33, 0x0d, 0x9a,
-       0xc2, 0x92, 0xc6, 0x4b, 0xb4, 0xba, 0x85, 0x7c, 0xbf, 0xd1, 0x89, 0x88,
-       0xe2, 0x2e, 0xe8, 0x07, 0x6c, 0x8d, 0xf2, 0xae, 0x94, 0xdb, 0xd2, 0x06,
-       0xa6, 0x6d, 0xea, 0xc7, 0x5b, 0xc3, 0x68, 0xb6, 0xa0, 0xeb, 0x8e, 0x35,
-       0xf0, 0x14, 0xee, 0x26, 0x3e, 0x11, 0x99, 0x4f, 0x35, 0x90, 0xd6, 0xc4,
-       0x5e, 0xbb, 0x0e, 0xee, 0x4d, 0x02, 0x11, 0x27, 0x4e, 0xbc, 0xd5, 0x20,
-       0xe7, 0x3f, 0xb3, 0x8c, 0x70, 0xdf, 0xb7, 0x7f, 0x44, 0xf2, 0x8a, 0xf9,
-       0xf5, 0x0e, 0xaf, 0x59, 0x76, 0x11, 0xeb, 0xa9, 0xe7, 0xa7, 0x25, 0x7a,
-       0xbf, 0x85, 0xde, 0x3f, 0x44, 0xb8, 0x73, 0x31, 0x7f, 0xd6, 0x6b, 0x6a,
-       0x77, 0xac, 0xf2, 0x73, 0x78, 0x90, 0x64, 0xe0, 0xfc, 0xcd, 0x6b, 0xcc,
-       0xf3, 0x22, 0xe6, 0x99, 0x6a, 0x37, 0xfb, 0x95, 0x8d, 0x8f, 0xf2, 0x77,
-       0x73, 0x0f, 0xef, 0xee, 0xb0, 0x21, 0x26, 0xec, 0x3d, 0x28, 0xeb, 0x68,
-       0x8a, 0x3a, 0x56, 0xff, 0x34, 0xa0, 0x44, 0x9c, 0x51, 0x14, 0x9b, 0x81,
-       0x87, 0x0a, 0x96, 0xb7, 0x51, 0x31, 0x07, 0xe2, 0xd4, 0xf7, 0x9e, 0xfc,
-       0xa1, 0x8a, 0x9d, 0x9d, 0x65, 0x33, 0x46, 0x46, 0x8f, 0x3a, 0x51, 0xf1,
-       0xe2, 0x2e, 0x05, 0x0b, 0x96, 0xa8, 0x78, 0x8b, 0x72, 0xc8, 0x36, 0x9a,
-       0x45, 0xc2, 0x96, 0xda, 0x54, 0xe9, 0x89, 0x7f, 0x5f, 0x3c, 0x9a, 0xa4,
-       0xb1, 0x6a, 0x4c, 0x5a, 0x7d, 0x07, 0xf0, 0xa8, 0x74, 0x9b, 0xd9, 0x16,
-       0x11, 0xca, 0xc3, 0xe7, 0xf2, 0x50, 0x6a, 0x8a, 0xf0, 0x0f, 0x76, 0xbf,
-       0xeb, 0xfb, 0x0c, 0xd9, 0xd2, 0x7d, 0x23, 0x0f, 0xd1, 0x94, 0x71, 0x30,
-       0xdb, 0xcc, 0x76, 0xe1, 0xf9, 0x99, 0x94, 0x37, 0x4c, 0xc3, 0x47, 0x8b,
-       0x8a, 0xc5, 0x19, 0x34, 0x29, 0x8e, 0x75, 0x6a, 0x2f, 0xf1, 0xdc, 0xee,
-       0x34, 0xe1, 0x74, 0x0b, 0xe7, 0xc4, 0xa8, 0xf8, 0xd9, 0xa8, 0xd9, 0x43,
-       0x3d, 0xee, 0xaa, 0x8d, 0x30, 0xfb, 0xee, 0x11, 0xd4, 0x97, 0x11, 0xef,
-       0x56, 0x92, 0xf8, 0xb4, 0x55, 0xc4, 0x93, 0x65, 0x33, 0x8e, 0x2a, 0xbf,
-       0x67, 0x65, 0xcc, 0xb2, 0xbc, 0x98, 0xf2, 0x1b, 0x99, 0xce, 0xb0, 0x8f,
-       0xdf, 0x85, 0xda, 0x98, 0x40, 0x4d, 0x66, 0xc4, 0xd7, 0x6d, 0x94, 0xec,
-       0xdd, 0x94, 0x51, 0x89, 0xb6, 0x4a, 0x39, 0x9d, 0x68, 0x2f, 0x1e, 0xa0,
-       0x9e, 0x85, 0x75, 0xfa, 0x92, 0xcc, 0x7d, 0x9b, 0xe5, 0xbc, 0x65, 0x4e,
-       0x66, 0xd2, 0x6c, 0x3d, 0xff, 0x96, 0x0d, 0xac, 0xfb, 0x43, 0x94, 0xcf,
-       0x17, 0x2f, 0xed, 0xda, 0x31, 0xa0, 0x3c, 0x20, 0x8d, 0x15, 0x6c, 0xdb,
-       0x46, 0x7a, 0xef, 0xdb, 0x9d, 0xfa, 0xa9, 0x77, 0xf0, 0xda, 0x50, 0x54,
-       0x34, 0xed, 0xf6, 0xfc, 0xda, 0xf9, 0x2a, 0xf1, 0xf5, 0x61, 0x9a, 0xf9,
-       0xe1, 0x78, 0x7b, 0x07, 0x97, 0x16, 0xff, 0x94, 0xf6, 0x86, 0x88, 0x17,
-       0x68, 0x31, 0x92, 0x75, 0x05, 0xcd, 0x25, 0x57, 0x67, 0x0e, 0x48, 0x57,
-       0x67, 0xfc, 0xa4, 0xf7, 0x51, 0xd6, 0x3b, 0xcf, 0x45, 0x55, 0xdd, 0xf3,
-       0x7e, 0x3e, 0x3f, 0x4c, 0x31, 0xc9, 0xb6, 0x44, 0x53, 0x83, 0xc3, 0xfa,
-       0x85, 0xa8, 0x73, 0xba, 0x8c, 0x85, 0x62, 0x87, 0xf4, 0xe2, 0xd5, 0x7c,
-       0x16, 0x15, 0x13, 0xfe, 0x79, 0xa6, 0xfd, 0xe5, 0xf3, 0x6d, 0xe2, 0xd8,
-       0xc3, 0x54, 0x7c, 0xeb, 0x7d, 0x7f, 0xe9, 0x7d, 0x92, 0xe2, 0x49, 0x73,
-       0x6e, 0x95, 0xa9, 0x56, 0xf6, 0x37, 0x28, 0x2f, 0xdb, 0xb7, 0xc8, 0x5c,
-       0x2b, 0xfb, 0x1d, 0xbc, 0x38, 0xe1, 0xd9, 0xb9, 0xfb, 0x3c, 0x1f, 0xd7,
-       0x74, 0x4a, 0x39, 0x61, 0x5f, 0x45, 0xba, 0x60, 0x3c, 0x55, 0x5d, 0xfc,
-       0xe5, 0x9c, 0x6e, 0xa8, 0x89, 0xae, 0xaf, 0xd4, 0x2b, 0xce, 0x69, 0x35,
-       0xce, 0x1b, 0x78, 0x31, 0xaf, 0xb4, 0x85, 0xd1, 0x84, 0x3e, 0x5b, 0xe0,
-       0xdd, 0x1e, 0x81, 0xd3, 0x97, 0x47, 0x10, 0xba, 0xcc, 0x2a, 0x77, 0x84,
-       0xfa, 0x25, 0xe6, 0x95, 0xc9, 0x51, 0xce, 0x48, 0xad, 0x53, 0x45, 0xed,
-       0xa5, 0x5c, 0xa7, 0xd8, 0x0e, 0x0a, 0xfe, 0x85, 0xf6, 0x5d, 0x77, 0xa9,
-       0x65, 0x74, 0x50, 0x4b, 0xe0, 0xf5, 0x5d, 0x9d, 0x09, 0x9f, 0xf3, 0x43,
-       0xe6, 0xe1, 0x4a, 0x5f, 0x06, 0xf6, 0xc7, 0xc5, 0x64, 0xc7, 0xdc, 0x0a,
-       0x05, 0xe9, 0x25, 0xf0, 0x22, 0xf4, 0x7e, 0xdb, 0x2e, 0xf6, 0x85, 0x47,
-       0x74, 0x9e, 0x09, 0x81, 0xae, 0x84, 0x0e, 0x6b, 0xd5, 0x0b, 0x44, 0x9b,
-       0xfa, 0x4d, 0xd2, 0x07, 0xd3, 0xaa, 0xe2, 0xa9, 0xe2, 0x88, 0x8a, 0xd3,
-       0x0f, 0xf3, 0x19, 0x08, 0xd6, 0x51, 0x7a, 0x01, 0xc5, 0x76, 0x46, 0x9d,
-       0x93, 0x6d, 0x40, 0xaf, 0xf4, 0x61, 0x51, 0x31, 0x35, 0xca, 0xf8, 0x7c,
-       0x3f, 0x42, 0x91, 0x7d, 0x2b, 0xcd, 0x7b, 0x7e, 0x23, 0x17, 0x64, 0xfe,
-       0x9d, 0xf6, 0x30, 0xde, 0xa8, 0x38, 0xe2, 0xd3, 0xae, 0xe8, 0x68, 0x8a,
-       0x74, 0x3d, 0x91, 0xae, 0xe2, 0xd9, 0x48, 0x7b, 0xd8, 0xe7, 0x98, 0x87,
-       0x5e, 0xf1, 0x78, 0x9e, 0xf2, 0x0a, 0xd5, 0xdc, 0x89, 0xac, 0x62, 0xd5,
-       0x42, 0x62, 0xb3, 0xad, 0x63, 0x99, 0x5e, 0xa9, 0x57, 0xf7, 0xe7, 0xab,
-       0xf7, 0x3f, 0xbd, 0xa2, 0x90, 0x57, 0xa8, 0x7f, 0x83, 0x5e, 0xef, 0x28,
-       0xf7, 0x34, 0x51, 0x2c, 0xbd, 0x46, 0xb5, 0xeb, 0xd5, 0xb1, 0x5e, 0x91,
-       0xcf, 0xeb, 0x78, 0x65, 0x7c, 0xb9, 0x78, 0x30, 0x6f, 0xe1, 0xe5, 0x62,
-       0xe5, 0x2e, 0xe8, 0x81, 0xa2, 0x2b, 0xc6, 0xf3, 0xdc, 0xfb, 0x98, 0xa9,
-       0x32, 0x66, 0xc4, 0x5a, 0xc2, 0x53, 0x56, 0x2f, 0xf4, 0xeb, 0xc8, 0x78,
-       0xb1, 0x01, 0x93, 0x63, 0x95, 0x7a, 0x77, 0xeb, 0xb9, 0x7a, 0xf7, 0xc5,
-       0x3b, 0x9d, 0x48, 0x4e, 0x77, 0xd0, 0xd7, 0x38, 0xbc, 0x49, 0x46, 0xad,
-       0x10, 0xd5, 0x49, 0x2b, 0x37, 0x2d, 0x22, 0x3d, 0x3b, 0xba, 0x99, 0x5f,
-       0xf4, 0x69, 0xd4, 0x63, 0x4c, 0x14, 0xd9, 0x5f, 0x0d, 0x18, 0xc5, 0x6f,
-       0xb5, 0x56, 0xec, 0xdc, 0x96, 0xd3, 0x1c, 0xa0, 0x9e, 0xfa, 0x8b, 0x06,
-       0x9a, 0x0d, 0xea, 0x9c, 0x1b, 0xbd, 0x8e, 0x6e, 0xe4, 0x54, 0xc7, 0xea,
-       0xb9, 0x5e, 0xac, 0x5c, 0xa9, 0x38, 0xf7, 0xad, 0x0c, 0x4d, 0x1b, 0xc6,
-       0x16, 0xbf, 0x0e, 0x9d, 0x1c, 0xd8, 0x4f, 0x33, 0x50, 0x0d, 0xcd, 0xa5,
-       0xef, 0xe9, 0xb8, 0x2f, 0xd4, 0x7d, 0x1f, 0x36, 0xe5, 0x07, 0xf0, 0xb7,
-       0x79, 0xce, 0x13, 0x3a, 0x1e, 0x63, 0x1e, 0x0a, 0x7c, 0xff, 0x73, 0xb0,
-       0x85, 0x6b, 0xdf, 0x23, 0x25, 0x8a, 0xc3, 0x21, 0xe4, 0x12, 0x8e, 0x9f,
-       0x47, 0x12, 0xa7, 0xc4, 0xf9, 0xfd, 0xbf, 0xbb, 0x97, 0xf5, 0x46, 0xfd,
-       0x1c, 0xcd, 0x4e, 0x4a, 0xf6, 0x4a, 0xbe, 0x7f, 0xf2, 0x03, 0x74, 0x3b,
-       0xe5, 0x91, 0x0f, 0x6c, 0x13, 0x63, 0x7a, 0xc5, 0x7e, 0xdb, 0x47, 0xb9,
-       0x1e, 0x7d, 0x42, 0xf5, 0x28, 0x2a, 0xb6, 0xd2, 0x73, 0xa3, 0xf3, 0x4a,
-       0x7a, 0x8a, 0x78, 0x3f, 0x46, 0x39, 0x26, 0xe1, 0x1c, 0x47, 0xa2, 0xc0,
-       0xb3, 0xfa, 0x51, 0x9a, 0xd5, 0xcd, 0xdc, 0x32, 0x8a, 0xe7, 0x03, 0x76,
-       0xd7, 0xc0, 0xa0, 0x30, 0x8f, 0x52, 0x6d, 0x4e, 0x1c, 0xa0, 0xb9, 0x8b,
-       0xbe, 0x37, 0xb4, 0x87, 0xba, 0xec, 0x75, 0x30, 0xdd, 0x85, 0xc2, 0x34,
-       0x5e, 0x17, 0xa6, 0x5e, 0x23, 0x58, 0x27, 0x9f, 0x60, 0x91, 0xaf, 0x9b,
-       0xe3, 0xb0, 0xfc, 0xef, 0x57, 0xd2, 0x1d, 0xfe, 0xf7, 0xd1, 0xf4, 0xc5,
-       0xe7, 0x7b, 0x0b, 0x77, 0x07, 0xd5, 0xc6, 0x7c, 0x21, 0x83, 0x48, 0x33,
-       0xd7, 0x8a, 0xa8, 0x38, 0xb0, 0x0b, 0x5a, 0xbd, 0xf3, 0x3e, 0xbe, 0x3e,
-       0x04, 0x4d, 0x73, 0xa8, 0xd2, 0x12, 0x2f, 0xd4, 0x1b, 0xa4, 0xae, 0x13,
-       0xdc, 0x0f, 0x74, 0xe5, 0x9e, 0x80, 0xd9, 0x53, 0x43, 0x34, 0x3e, 0x01,
-       0xe3, 0x7a, 0x1f, 0x49, 0x1f, 0xe7, 0x2c, 0xce, 0xe3, 0x8c, 0x8a, 0xc1,
-       0xd1, 0xa8, 0xd8, 0x4c, 0xb2, 0xb4, 0x3b, 0x27, 0x71, 0x85, 0xcf, 0xff,
-       0x2b, 0xc4, 0x3f, 0xe7, 0x9c, 0x13, 0x94, 0x73, 0x18, 0xef, 0xd1, 0x34,
-       0xe3, 0x1d, 0xa0, 0x3e, 0xf3, 0x7a, 0xdb, 0x4c, 0xf5, 0x84, 0xcc, 0x44,
-       0x97, 0x30, 0x29, 0xa9, 0xb1, 0x3c, 0x5d, 0xfd, 0x33, 0xe0, 0xb9, 0xd8,
-       0x97, 0xa9, 0xa7, 0x9e, 0x64, 0x1a, 0x22, 0x7a, 0x1f, 0xfa, 0xf4, 0x4e,
-       0xce, 0xd1, 0x3b, 0xf1, 0x07, 0x64, 0x52, 0xdd, 0xfb, 0xc9, 0x1e, 0xdb,
-       0x0a, 0xaf, 0xc8, 0xce, 0xd6, 0x8a, 0x4c, 0x83, 0x3e, 0x2f, 0x3f, 0x49,
-       0x33, 0x2f, 0x51, 0x67, 0x86, 0xe6, 0x48, 0xa6, 0x6d, 0xae, 0x22, 0xba,
-       0x44, 0xb3, 0xcb, 0x18, 0x10, 0x66, 0x3f, 0xe9, 0xad, 0x6f, 0xdc, 0xd7,
-       0xdb, 0x4f, 0xd2, 0x5d, 0x3e, 0xce, 0x19, 0xea, 0x39, 0xbe, 0xe8, 0x93,
-       0xec, 0x73, 0xd5, 0xbb, 0xca, 0x94, 0x78, 0x8a, 0x7a, 0x97, 0xa7, 0x8a,
-       0xaa, 0xd8, 0x47, 0xf6, 0x1c, 0xa7, 0xb8, 0x19, 0xf4, 0xef, 0x1f, 0xa9,
-       0x06, 0x96, 0xbe, 0xd7, 0x3c, 0x97, 0x6f, 0xc8, 0xae, 0x65, 0xb2, 0x6b,
-       0x27, 0x65, 0x65, 0xee, 0xd9, 0xb8, 0xde, 0x1d, 0xa6, 0x7a, 0x27, 0xf0,
-       0xa1, 0x9f, 0x63, 0x0f, 0xa3, 0xb3, 0xc8, 0x3d, 0xa1, 0x25, 0x96, 0xe7,
-       0x8d, 0xdc, 0x7c, 0xc2, 0xfd, 0x7e, 0xa9, 0x92, 0x1f, 0xa9, 0x36, 0xba,
-       0x21, 0xa7, 0x47, 0xbc, 0x50, 0xe4, 0x9f, 0x54, 0x4c, 0x62, 0xec, 0x5b,
-       0xae, 0x68, 0xea, 0xf4, 0xd0, 0xde, 0xe9, 0x49, 0xd5, 0xb2, 0xca, 0xef,
-       0x0b, 0xeb, 0x94, 0x15, 0x72, 0x6f, 0x9f, 0x8f, 0x4d, 0xb8, 0x6c, 0xb1,
-       0x7b, 0x73, 0x02, 0xfe, 0x4c, 0x6c, 0x50, 0x4c, 0xa2, 0xb7, 0x3b, 0xd9,
-       0x33, 0x2d, 0x92, 0xd4, 0x43, 0x25, 0xbd, 0x94, 0x48, 0xa6, 0x8e, 0xc3,
-       0xd6, 0x8e, 0x14, 0x6d, 0xed, 0x8d, 0x62, 0xf5, 0x6e, 0x93, 0xe5, 0x62,
-       0x5f, 0xe5, 0xf8, 0xb0, 0xdc, 0xfb, 0x29, 0x0f, 0xc1, 0xef, 0x43, 0xe4,
-       0xa1, 0x46, 0x8a, 0xb1, 0x3b, 0x51, 0x4b, 0x4d, 0xb3, 0xdc, 0xde, 0x44,
-       0xf3, 0xcf, 0x5d, 0x44, 0xbf, 0xdc, 0x9a, 0x03, 0xd7, 0x93, 0x47, 0xf8,
-       0xc2, 0xb9, 0x85, 0x79, 0x7a, 0x33, 0x52, 0x91, 0x91, 0xca, 0x70, 0xe5,
-       0xff, 0x17, 0xd2, 0x1a, 0x28, 0x06, 0xd7, 0x0d, 0x09, 0xea, 0xef, 0x2b,
-       0xf1, 0xb8, 0x90, 0xef, 0x4e, 0xfd, 0x7b, 0xb3, 0x57, 0x64, 0xa5, 0xde,
-       0x7f, 0xdc, 0xcc, 0x77, 0x51, 0x8a, 0x33, 0x1c, 0xfb, 0xed, 0xb3, 0x15,
-       0xdd, 0xf2, 0x1c, 0x7f, 0xa8, 0xe4, 0x8a, 0x6b, 0xf3, 0xd8, 0x40, 0xbd,
-       0x83, 0x1b, 0x26, 0x1c, 0xd7, 0x16, 0x7b, 0x49, 0x37, 0x96, 0x31, 0x48,
-       0x44, 0xb7, 0xea, 0x5d, 0xfa, 0x38, 0xf5, 0x5a, 0x84, 0xcb, 0xa0, 0x7e,
-       0x94, 0x62, 0x7c, 0x1e, 0x76, 0xcc, 0xc5, 0x54, 0xbd, 0xc3, 0x77, 0xbb,
-       0x03, 0x62, 0xe1, 0x54, 0x25, 0xcd, 0x1f, 0x3a, 0x27, 0xdf, 0x69, 0xb9,
-       0xfd, 0x26, 0x7e, 0x5f, 0x3f, 0x67, 0x93, 0x2b, 0x99, 0x26, 0xfd, 0x7e,
-       0x76, 0x8e, 0x87, 0x3f, 0x74, 0xf6, 0x8e, 0xaf, 0xfe, 0xf6, 0x99, 0x59,
-       0xe2, 0x93, 0x7b, 0x45, 0x78, 0x31, 0x87, 0xfb, 0xc4, 0x0b, 0xe7, 0x7c,
-       0xe1, 0x52, 0xc2, 0xbd, 0x01, 0x37, 0xd2, 0x7c, 0xd4, 0x49, 0x73, 0x28,
-       0xcd, 0x2e, 0x48, 0x0d, 0xb3, 0x3e, 0xce, 0x90, 0x3e, 0xd8, 0xe6, 0xa7,
-       0xc8, 0xe6, 0x1d, 0x39, 0x8a, 0x99, 0xd4, 0x7a, 0x61, 0xf6, 0x92, 0xbf,
-       0x51, 0xed, 0x32, 0x13, 0x1f, 0xc3, 0x34, 0xd6, 0xfa, 0x3e, 0x7d, 0x66,
-       0xce, 0xa7, 0x4f, 0xb1, 0x4f, 0xa3, 0x6f, 0x38, 0x04, 0x25, 0xf3, 0x29,
-       0xe9, 0x8c, 0xe2, 0x4d, 0x30, 0x4e, 0xce, 0x53, 0x67, 0x40, 0xfd, 0xb2,
-       0x36, 0x9f, 0xf6, 0xc8, 0x42, 0x47, 0xe2, 0x28, 0xf5, 0xdb, 0xfb, 0xc0,
-       0x25, 0xa3, 0xeb, 0xe8, 0x31, 0x61, 0x96, 0xdf, 0x0b, 0x71, 0x0e, 0x10,
-       0x68, 0xcc, 0x54, 0xf0, 0x5d, 0x5e, 0x4c, 0x60, 0x47, 0xa9, 0x82, 0xf3,
-       0x32, 0xf2, 0xe1, 0x31, 0xff, 0x7e, 0x41, 0x81, 0x96, 0x79, 0x9b, 0x6b,
-       0x33, 0xc1, 0x25, 0x73, 0xf2, 0x7f, 0x67, 0xce, 0x06, 0x6f, 0xce, 0xe9,
-       0x67, 0x4b, 0x8c, 0x6b, 0x8f, 0x96, 0xe1, 0x7c, 0x0d, 0xb1, 0x26, 0xff,
-       0x67, 0x54, 0x03, 0x34, 0xea, 0x81, 0xfd, 0xbc, 0x8f, 0x5c, 0x11, 0x94,
-       0xbf, 0xcb, 0xb5, 0x47, 0xec, 0xf0, 0x5c, 0xfe, 0xfa, 0x06, 0xad, 0xf5,
-       0xd1, 0x87, 0x75, 0xc6, 0x77, 0x12, 0x37, 0xd1, 0xb3, 0xeb, 0xef, 0xeb,
-       0xcf, 0xa3, 0xa7, 0x36, 0x4d, 0xfd, 0xad, 0xbf, 0xcf, 0xbf, 0xaf, 0xa0,
-       0x3d, 0xcb, 0xf9, 0xdd, 0x08, 0xdf, 0xb5, 0xac, 0xce, 0x26, 0x8d, 0xcd,
-       0x60, 0x3a, 0x06, 0xd6, 0x14, 0x0d, 0xdc, 0x4a, 0x75, 0x61, 0xcc, 0xbf,
-       0x07, 0x3d, 0x3f, 0xf7, 0x28, 0xb4, 0x6f, 0x19, 0xed, 0x1b, 0xf4, 0xd7,
-       0x0c, 0x2c, 0x2f, 0x9e, 0x9f, 0xe9, 0x54, 0x3a, 0x77, 0xe8, 0xdc, 0x1c,
-       0xcb, 0x76, 0x70, 0xc5, 0xce, 0x7c, 0xaf, 0x18, 0xc9, 0x47, 0x89, 0x96,
-       0x42, 0x19, 0x40, 0xa2, 0x23, 0x73, 0x33, 0xe5, 0x5d, 0x2b, 0xa5, 0x2a,
-       0x4d, 0x58, 0x9b, 0x22, 0x3f, 0xd6, 0x97, 0xe2, 0x8e, 0x54, 0x0d, 0xf5,
-       0x34, 0xc3, 0xb8, 0x4d, 0xaf, 0x45, 0x7f, 0xea, 0x52, 0xe0, 0xc6, 0x3a,
-       0xea, 0x41, 0x06, 0xfc, 0x9e, 0xbe, 0x86, 0xe8, 0xd5, 0x59, 0x4f, 0xe1,
-       0xf6, 0x73, 0xff, 0xae, 0x42, 0x34, 0x7e, 0xef, 0x3c, 0x77, 0x33, 0xdc,
-       0xe6, 0x1e, 0xaa, 0x83, 0xdd, 0x58, 0x97, 0x0a, 0x53, 0x6f, 0xcd, 0xf9,
-       0x61, 0x3e, 0x22, 0xd6, 0x67, 0x72, 0xfd, 0xb9, 0x3e, 0x67, 0x46, 0xcc,
-       0x90, 0x5c, 0xa8, 0xf5, 0xc4, 0x73, 0x34, 0xbf, 0x65, 0x4a, 0x7c, 0x1f,
-       0xa5, 0x20, 0x66, 0xf1, 0xcc, 0x48, 0xc3, 0x1f, 0xcd, 0x59, 0xe9, 0xc7,
-       0xeb, 0x71, 0xd5, 0xbe, 0x06, 0x64, 0xf6, 0xe9, 0xb0, 0x1f, 0xb7, 0x68,
-       0x2d, 0x45, 0x9f, 0x19, 0xb1, 0xb7, 0xf8, 0x87, 0x68, 0x77, 0x60, 0x8d,
-       0xfe, 0x3f, 0x95, 0x7d, 0x0b, 0x70, 0x54, 0xe7, 0x95, 0xe6, 0x77, 0xfb,
-       0x21, 0xb5, 0x9e, 0x5c, 0x09, 0x09, 0x5a, 0x20, 0x9b, 0x6e, 0xf7, 0x6d,
-       0xa9, 0x8d, 0x3a, 0xe1, 0x36, 0x88, 0xb5, 0x9c, 0xed, 0x2d, 0x1a, 0x2c,
-       0x8c, 0x08, 0x60, 0xcb, 0xb6, 0x3c, 0x83, 0x77, 0x32, 0x6b, 0xc5, 0x36,
-       0x18, 0x3f, 0x92, 0x91, 0x09, 0x5b, 0x25, 0x53, 0x53, 0xd1, 0x1d, 0x01,
-       0x42, 0x40, 0xbf, 0x24, 0xc1, 0x00, 0x33, 0x53, 0xe3, 0x46, 0x0f, 0x20,
-       0xb8, 0x5b, 0xc2, 0x71, 0x66, 0x4a, 0xc9, 0xd4, 0x56, 0x34, 0x20, 0x0c,
-       0x04, 0x63, 0x3c, 0x93, 0x99, 0x29, 0xb2, 0xeb, 0x2d, 0x13, 0x1c, 0xc0,
-       0x0f, 0xfc, 0x4c, 0xb2, 0x16, 0xf1, 0xc4, 0x77, 0xbf, 0x73, 0xbb, 0x1b,
-       0x04, 0x45, 0x3c, 0x35, 0x54, 0x75, 0xb5, 0x6e, 0xdf, 0xff, 0xfe, 0x8f,
-       0xf3, 0x9f, 0xf3, 0x9d, 0xef, 0x9c, 0xf3, 0xdf, 0xa2, 0x84, 0xfe, 0xfb,
-       0xdf, 0xcc, 0x75, 0x8c, 0x4f, 0xdc, 0x0b, 0x69, 0x66, 0xb3, 0x65, 0xbc,
-       0x0b, 0x5f, 0x0e, 0x24, 0x9c, 0xe8, 0xea, 0x77, 0xe0, 0xda, 0xa2, 0x73,
-       0xa6, 0x67, 0xf6, 0x8d, 0xfc, 0x4e, 0xc4, 0xe6, 0xc4, 0x33, 0xfd, 0xf2,
-       0xed, 0x40, 0x60, 0x71, 0x36, 0xe7, 0xba, 0x61, 0xd0, 0x89, 0xa7, 0xd9,
-       0xf6, 0xa2, 0x6e, 0xcb, 0xed, 0xb1, 0x55, 0x1b, 0xc0, 0x73, 0xfd, 0x8c,
-       0x6d, 0x34, 0x13, 0xcf, 0x86, 0x8a, 0x71, 0x7f, 0x75, 0x76, 0x1d, 0xc3,
-       0x5c, 0x87, 0xe1, 0x30, 0x94, 0x4c, 0xa3, 0x13, 0xe5, 0x9c, 0x3f, 0xb9,
-       0x18, 0x7e, 0x98, 0x29, 0xc1, 0xe8, 0x81, 0x71, 0x25, 0x9d, 0xce, 0xb6,
-       0x19, 0xb2, 0x62, 0x5a, 0x43, 0x19, 0x6b, 0xb4, 0x61, 0x26, 0xfd, 0xfb,
-       0x85, 0x8c, 0x03, 0x9f, 0x65, 0x5c, 0xf8, 0x74, 0xa4, 0x18, 0xbf, 0x3e,
-       0x50, 0xc2, 0x8f, 0x8a, 0x4f, 0x46, 0x34, 0xfe, 0xde, 0xac, 0xbc, 0x12,
-       0x95, 0xd8, 0x23, 0x80, 0x4f, 0x33, 0xe3, 0xca, 0xd1, 0xaf, 0x5c, 0x6b,
-       0xc6, 0xfc, 0x8e, 0x6a, 0x70, 0xcc, 0xbf, 0x36, 0xbf, 0x3b, 0x4d, 0xae,
-       0xd3, 0xc7, 0xaa, 0xd4, 0x4a, 0xf0, 0xd9, 0x01, 0x19, 0x47, 0xfa, 0x6f,
-       0x56, 0x5e, 0x8d, 0x8a, 0x7c, 0x2b, 0xf1, 0xeb, 0x11, 0x91, 0xe3, 0x27,
-       0xd4, 0x69, 0xe9, 0x7f, 0x5c, 0x39, 0x9e, 0x7b, 0xe6, 0xe7, 0xdc, 0x8b,
-       0x8d, 0xa3, 0x0e, 0x90, 0x4c, 0xf0, 0x59, 0x17, 0x5e, 0x38, 0x68, 0x23,
-       0x27, 0x2e, 0xc6, 0xc6, 0xc1, 0x12, 0xbc, 0x30, 0xa8, 0xa2, 0xe3, 0x60,
-       0xb3, 0x42, 0xbe, 0xaf, 0xce, 0x20, 0xef, 0xed, 0x18, 0x0d, 0xb0, 0xdd,
-       0xb8, 0x72, 0x2e, 0xdd, 0x30, 0x33, 0xdb, 0x4f, 0x36, 0xf7, 0x93, 0xe5,
-       0x31, 0x86, 0xc2, 0x38, 0x8d, 0x5c, 0x72, 0xdf, 0xe6, 0xd7, 0x18, 0x21,
-       0x3e, 0x9c, 0xb6, 0x53, 0xc7, 0x24, 0x1e, 0x15, 0xbb, 0x4f, 0x6d, 0xbe,
-       0x12, 0x95, 0xb9, 0x1a, 0xca, 0x91, 0x46, 0x9b, 0xc5, 0xb1, 0x5f, 0x67,
-       0x5c, 0xb8, 0x82, 0xb6, 0xf2, 0x10, 0xe5, 0xb1, 0x9a, 0xf2, 0x68, 0xa6,
-       0x3c, 0x5a, 0x39, 0xdf, 0x97, 0xa3, 0x82, 0x93, 0xde, 0x40, 0x44, 0xd1,
-       0xb0, 0x2a, 0x23, 0x7d, 0x58, 0xe3, 0xb8, 0x1c, 0xe1, 0xbf, 0xd9, 0xbc,
-       0x35, 0x7a, 0xab, 0x5c, 0xa0, 0x96, 0x87, 0xc5, 0xaf, 0x89, 0x6c, 0x02,
-       0xe4, 0x50, 0xe3, 0xca, 0xa8, 0x15, 0x23, 0xef, 0xdb, 0xec, 0x49, 0xe5,
-       0x6d, 0xa7, 0x44, 0xec, 0x53, 0xf2, 0xe1, 0xca, 0x3e, 0x72, 0xb5, 0x1a,
-       0x2d, 0x7b, 0xff, 0xde, 0x94, 0x7c, 0xa7, 0x36, 0x2f, 0xb4, 0xf0, 0xe6,
-       0x6f, 0x36, 0x37, 0x5d, 0x5f, 0xd3, 0xb8, 0xf2, 0x36, 0xd7, 0x73, 0x81,
-       0x7a, 0x7a, 0x92, 0x73, 0x2d, 0x92, 0xbd, 0x4b, 0x73, 0xef, 0x38, 0xd7,
-       0x4f, 0x87, 0x8b, 0xf1, 0x5e, 0xaa, 0x84, 0x1f, 0xca, 0x76, 0x98, 0x7b,
-       0x97, 0x6e, 0x56, 0x4e, 0x59, 0xf2, 0x0d, 0xe0, 0x5d, 0x8e, 0x7d, 0xec,
-       0x7a, 0x1f, 0x59, 0xde, 0x96, 0xad, 0xc3, 0xe5, 0xed, 0x57, 0xf0, 0x54,
-       0xd6, 0x66, 0x28, 0x91, 0xeb, 0xb5, 0x34, 0xc9, 0x8b, 0x49, 0x7d, 0x91,
-       0x3e, 0x46, 0x95, 0xfc, 0xa8, 0x42, 0x8c, 0xa1, 0xfe, 0xa9, 0xcb, 0x3c,
-       0x0e, 0xe2, 0xe2, 0x3a, 0x7c, 0xc1, 0x38, 0x21, 0x42, 0x8b, 0x92, 0xb5,
-       0x48, 0x8e, 0xb4, 0x50, 0x62, 0x42, 0xeb, 0xdf, 0x20, 0xb9, 0xd4, 0x6b,
-       0xe4, 0xb9, 0x54, 0x21, 0x74, 0xa7, 0xbf, 0x30, 0x27, 0xaa, 0xe8, 0x57,
-       0xb5, 0xeb, 0x79, 0x37, 0xae, 0xd9, 0x34, 0x87, 0x78, 0xaf, 0x27, 0x8d,
-       0xdc, 0x3f, 0x72, 0x2f, 0xf2, 0xdd, 0x27, 0xb5, 0xdf, 0x99, 0x4f, 0xdc,
-       0xd4, 0x36, 0x8f, 0xe5, 0xf9, 0x78, 0x5f, 0xb0, 0xbc, 0x14, 0x3d, 0xbb,
-       0xbd, 0xc9, 0x14, 0xaa, 0x90, 0xd4, 0x6c, 0x73, 0x0b, 0x38, 0x3b, 0x3b,
-       0xbc, 0xbd, 0xcd, 0xb0, 0xf2, 0x20, 0x9e, 0x14, 0xfe, 0x61, 0xa6, 0xd8,
-       0x8c, 0x53, 0x6b, 0xf0, 0x54, 0xd8, 0x2a, 0x65, 0xee, 0xd6, 0xac, 0xec,
-       0xfd, 0x45, 0x58, 0x17, 0x2c, 0x42, 0xaa, 0x95, 0x18, 0xd7, 0x6f, 0xb4,
-       0xb0, 0x7b, 0xf2, 0xa7, 0xc0, 0x8b, 0xdf, 0xf4, 0x0b, 0x1f, 0x03, 0x0a,
-       0x63, 0x1c, 0x13, 0x39, 0x0c, 0xec, 0xf7, 0x1a, 0x36, 0x9b, 0x3c, 0xff,
-       0x99, 0x69, 0xb4, 0xc9, 0xb3, 0xd2, 0x47, 0xad, 0xc5, 0x1b, 0x6f, 0xd6,
-       0x7b, 0x0f, 0xe5, 0xf4, 0xaf, 0x33, 0x25, 0xe7, 0xa8, 0xd6, 0x31, 0xee,
-       0xe9, 0x97, 0x9a, 0x4d, 0x04, 0xbb, 0xaa, 0x7d, 0x1d, 0xba, 0xad, 0x18,
-       0x67, 0xbf, 0xf6, 0xdf, 0x88, 0xe9, 0x05, 0x70, 0xd5, 0x01, 0xf7, 0xc5,
-       0x6d, 0xb0, 0xd5, 0x11, 0xab, 0xa9, 0xd3, 0xcd, 0xa3, 0x36, 0xcc, 0xeb,
-       0x57, 0xf0, 0x58, 0xd2, 0x86, 0x07, 0x92, 0x76, 0xac, 0x4a, 0xe2, 0xfb,
-       0xf3, 0x80, 0xc9, 0x1a, 0xf8, 0xdb, 0xa7, 0xe8, 0x9a, 0xcb, 0xe1, 0x6f,
-       0x8d, 0x91, 0x17, 0xac, 0x62, 0x2c, 0xba, 0x72, 0x94, 0x38, 0xc8, 0xb6,
-       0xce, 0x3e, 0xea, 0x66, 0x9f, 0x1d, 0x35, 0x7d, 0xb8, 0xb3, 0x10, 0xa0,
-       0x75, 0xfb, 0xa7, 0xe8, 0x97, 0x2a, 0x1d, 0xf0, 0xd3, 0xaf, 0xf8, 0x3b,
-       0x6b, 0xec, 0x0c, 0xc4, 0xea, 0xfe, 0xd5, 0xe2, 0xb4, 0x0f, 0xd2, 0x5e,
-       0xe6, 0xf5, 0xb3, 0x7d, 0x9d, 0x0d, 0x2a, 0xf5, 0xf9, 0x93, 0x3f, 0x96,
-       0x7c, 0xaf, 0xdc, 0x93, 0xba, 0xab, 0x82, 0xf2, 0x7e, 0x3b, 0xf1, 0xf0,
-       0x8c, 0x79, 0xb6, 0xda, 0xaa, 0x41, 0xe1, 0x31, 0xce, 0xcd, 0xcd, 0xdf,
-       0xd4, 0x3a, 0x17, 0x16, 0xdc, 0xa3, 0x62, 0xed, 0xa0, 0xb4, 0x85, 0xd5,
-       0x8f, 0x93, 0xb8, 0x53, 0xa0, 0x4d, 0x98, 0x07, 0xab, 0xa4, 0xad, 0x8d,
-       0x6b, 0xb4, 0xa3, 0xa4, 0x1f, 0x58, 0x19, 0xc7, 0xc3, 0xa5, 0xf0, 0x47,
-       0x64, 0x8e, 0xf5, 0x8b, 0x1d, 0x7c, 0xb6, 0x14, 0x2d, 0xa3, 0xd9, 0xe7,
-       0x56, 0x8c, 0xbe, 0x37, 0x33, 0x9b, 0xfb, 0xfe, 0xc3, 0x75, 0xe3, 0x2d,
-       0x8d, 0x7e, 0xac, 0x4b, 0x52, 0xe7, 0x6c, 0x1e, 0x0c, 0xe6, 0x72, 0xd0,
-       0x4f, 0xa4, 0xbc, 0xd3, 0xea, 0xba, 0x7f, 0x5b, 0x9a, 0xab, 0xf9, 0xd2,
-       0x8e, 0xa7, 0xd8, 0x8f, 0x65, 0xc3, 0x18, 0x1c, 0x33, 0x11, 0xd5, 0x4d,
-       0x64, 0xf8, 0x79, 0x43, 0x87, 0x51, 0x42, 0x1b, 0x7f, 0x2a, 0x26, 0x98,
-       0x97, 0xd5, 0xa4, 0x1f, 0x24, 0x02, 0xca, 0x86, 0x18, 0x70, 0x84, 0xf1,
-       0xe3, 0x21, 0x7e, 0x86, 0x13, 0x5c, 0x03, 0xe7, 0x6d, 0x23, 0x6e, 0x6c,
-       0x4b, 0x01, 0x43, 0x09, 0x44, 0xf6, 0x2f, 0x96, 0x58, 0xa6, 0x84, 0xe3,
-       0x01, 0xe3, 0x6c, 0x93, 0xe6, 0xe7, 0x20, 0x3f, 0x63, 0xdc, 0x53, 0x8e,
-       0x87, 0x00, 0xf1, 0x30, 0x92, 0xd1, 0x60, 0x64, 0x02, 0x98, 0xa0, 0x6d,
-       0x5d, 0x1b, 0x56, 0x51, 0x76, 0xa8, 0x12, 0x1f, 0x8d, 0x64, 0x63, 0xa5,
-       0x75, 0x19, 0xa9, 0x5d, 0xcb, 0xda, 0xa4, 0x7e, 0x2d, 0xb6, 0x54, 0x84,
-       0x43, 0xc9, 0x4a, 0xab, 0x86, 0xfd, 0x8e, 0xce, 0x7e, 0x55, 0xa9, 0xb1,
-       0xb6, 0xe2, 0x70, 0xd4, 0xe7, 0xe9, 0xa5, 0xbe, 0x1b, 0x0e, 0xb1, 0xaf,
-       0x46, 0x1c, 0x89, 0xe6, 0x6b, 0x67, 0xbe, 0x96, 0x9f, 0x49, 0x8e, 0xc8,
-       0x59, 0x49, 0xd9, 0xca, 0xbd, 0xbc, 0xdf, 0x95, 0xf5, 0x4a, 0x0e, 0x3f,
-       0xcf, 0x71, 0xa6, 0xff, 0x7e, 0x8a, 0xe3, 0x05, 0x69, 0x07, 0xde, 0xde,
-       0x14, 0x74, 0xcb, 0x97, 0x8e, 0xd4, 0x7b, 0x93, 0x06, 0x64, 0x6f, 0x1b,
-       0x39, 0x87, 0xd7, 0xa8, 0xf7, 0x01, 0xca, 0xf9, 0x2f, 0xe8, 0x23, 0x5c,
-       0x8c, 0x65, 0x2b, 0xb0, 0xab, 0xaf, 0x12, 0x3b, 0xfb, 0x0c, 0xf4, 0x2c,
-       0x6e, 0xc3, 0xa9, 0xa8, 0x89, 0x75, 0x21, 0x13, 0x2b, 0x19, 0x23, 0xfc,
-       0x00, 0x0d, 0x4d, 0x87, 0xf1, 0x20, 0x63, 0x65, 0x95, 0xf2, 0xf8, 0x16,
-       0xde, 0xde, 0xed, 0xc0, 0x7a, 0xfd, 0x8f, 0x68, 0xbf, 0xa6, 0xf9, 0xab,
-       0x45, 0xb5, 0x18, 0x4c, 0x34, 0xa8, 0xdd, 0x9c, 0x5f, 0xa4, 0x8d, 0xfb,
-       0x14, 0x74, 0xe0, 0x69, 0xfd, 0xfb, 0x6c, 0xeb, 0xb6, 0x39, 0x34, 0xb9,
-       0x96, 0xba, 0x96, 0xec, 0xa3, 0x41, 0xdd, 0xca, 0xfb, 0xac, 0x6c, 0xad,
-       0x74, 0x7d, 0xa3, 0xe4, 0x44, 0x4a, 0x71, 0x92, 0x32, 0x3b, 0x96, 0x8c,
-       0xd0, 0x55, 0x43, 0x79, 0xba, 0xb1, 0x0b, 0x8f, 0x93, 0x9b, 0xbc, 0x4d,
-       0xd2, 0x70, 0x6f, 0x5c, 0x41, 0x53, 0xbd, 0x8e, 0xf3, 0xe9, 0x6f, 0xe1,
-       0xcd, 0xe1, 0x30, 0xde, 0x20, 0x07, 0x58, 0xf0, 0x97, 0xc2, 0xe9, 0x3d,
-       0x38, 0x9b, 0x0e, 0xe3, 0x4c, 0xd4, 0xdb, 0xfa, 0xbc, 0x52, 0x8b, 0x9f,
-       0x11, 0xd3, 0xee, 0x8e, 0x03, 0xef, 0xb1, 0x1f, 0x7f, 0xdc, 0x81, 0x4b,
-       0x69, 0x15, 0x87, 0xb9, 0x37, 0x8e, 0xd0, 0x02, 0x18, 0x6d, 0x1e, 0x1c,
-       0x1c, 0x78, 0x00, 0x13, 0xa9, 0x07, 0x70, 0x22, 0xf9, 0xb6, 0xe9, 0xd2,
-       0xa4, 0x06, 0xe6, 0xc2, 0x25, 0x62, 0xea, 0x24, 0xa5, 0x51, 0x7a, 0x4f,
-       0x2b, 0x71, 0x51, 0x33, 0x44, 0xee, 0x6f, 0xf2, 0xb7, 0x7b, 0xe3, 0x4d,
-       0xd8, 0x9f, 0xa1, 0x48, 0x13, 0x3a, 0x12, 0x31, 0x19, 0xab, 0x11, 0x31,
-       0x72, 0xc8, 0x5d, 0x7d, 0xe2, 0x37, 0xef, 0xc6, 0xca, 0x0a, 0x28, 0x2d,
-       0x75, 0x63, 0xb9, 0x75, 0x34, 0x4d, 0xab, 0x6d, 0x4a, 0xbc, 0x49, 0xb9,
-       0xf2, 0xb9, 0x1f, 0x26, 0x28, 0xf7, 0x04, 0x65, 0x7b, 0x7d, 0x3f, 0x9a,
-       0xb8, 0x1f, 0xdf, 0xc2, 0xf9, 0xdd, 0x6d, 0x78, 0x93, 0x58, 0x57, 0xbe,
-       0xc8, 0xd7, 0xe9, 0xb4, 0x35, 0xb0, 0xef, 0xb4, 0x99, 0xaa, 0x16, 0x99,
-       0xb6, 0xe1, 0x17, 0x51, 0x91, 0x69, 0x9a, 0xd8, 0xe7, 0xf3, 0xf8, 0xed,
-       0x23, 0x55, 0xd4, 0x65, 0x5b, 0x77, 0x30, 0x5b, 0xaf, 0x2b, 0xbd, 0xc7,
-       0x85, 0xcb, 0xd6, 0xdc, 0x64, 0xae, 0x5f, 0x35, 0xbf, 0x5f, 0x98, 0x2b,
-       0xab, 0x65, 0x7e, 0x86, 0xc9, 0x98, 0x3a, 0xc0, 0x78, 0x91, 0xb6, 0x13,
-       0x80, 0xe4, 0x9c, 0xeb, 0xe3, 0x5d, 0xb0, 0x87, 0x4a, 0x0d, 0x35, 0xec,
-       0x9d, 0xea, 0xc0, 0x9b, 0xb8, 0x42, 0x8e, 0x72, 0x57, 0x5c, 0x63, 0x7c,
-       0x7b, 0x81, 0x63, 0xfd, 0x0b, 0x2e, 0xf2, 0xda, 0x17, 0xcf, 0xda, 0x5a,
-       0x77, 0x63, 0x1b, 0xee, 0x4b, 0xcb, 0xfa, 0xfe, 0x0b, 0x07, 0xd2, 0x11,
-       0x49, 0xcb, 0x3a, 0x63, 0xb4, 0x0b, 0x59, 0x67, 0xe5, 0x7f, 0xb0, 0xce,
-       0x23, 0xec, 0xaf, 0x96, 0x76, 0x94, 0xf7, 0x1b, 0x65, 0x38, 0x98, 0x54,
-       0x71, 0x52, 0x2f, 0xc5, 0x05, 0x55, 0xf2, 0xf5, 0xd9, 0x5a, 0x66, 0x33,
-       0xe3, 0xd3, 0x21, 0x7e, 0x9e, 0x62, 0x0c, 0x75, 0x5a, 0x77, 0xe0, 0x84,
-       0x5e, 0x4b, 0x9c, 0xbf, 0x55, 0x87, 0xe5, 0x1e, 0x03, 0x83, 0x8a, 0x4a,
-       0x9c, 0x91, 0x9c, 0xaa, 0x75, 0x5f, 0xce, 0x16, 0xb8, 0x20, 0x39, 0x8d,
-       0x82, 0xd8, 0x6f, 0xcd, 0xcb, 0x16, 0xce, 0xdc, 0x3a, 0xbf, 0x5b, 0xfb,
-       0x21, 0x55, 0xd0, 0xde, 0x33, 0x9f, 0xad, 0xce, 0xf9, 0x2d, 0x65, 0x47,
-       0x55, 0x16, 0x2b, 0xc4, 0x87, 0x8d, 0xe7, 0x71, 0x83, 0x7c, 0x7c, 0xdf,
-       0xa3, 0xf4, 0x41, 0xf4, 0xcf, 0xcd, 0xdf, 0xdb, 0xaa, 0x49, 0x9c, 0x97,
-       0x7a, 0x74, 0x99, 0x56, 0x00, 0xbb, 0xe5, 0x67, 0x0f, 0x6f, 0xce, 0xf2,
-       0xf9, 0xf4, 0xe6, 0x6c, 0x8c, 0x7a, 0x74, 0xf3, 0x5d, 0xd6, 0xf7, 0x8f,
-       0x36, 0xfb, 0x52, 0x37, 0x7c, 0x55, 0x96, 0x2f, 0x5b, 0x67, 0x6d, 0xd0,
-       0xab, 0x1b, 0xca, 0x8a, 0x46, 0xf1, 0xd7, 0x79, 0x8e, 0x22, 0x6d, 0x02,
-       0xca, 0x89, 0xa8, 0x61, 0xba, 0xb5, 0x62, 0xfa, 0x7a, 0x28, 0x63, 0x8c,
-       0xc5, 0xa6, 0xac, 0xba, 0xa7, 0x86, 0x37, 0xd2, 0x12, 0x13, 0x83, 0xfa,
-       0xfb, 0xbf, 0xb1, 0x6b, 0x37, 0xda, 0x8b, 0x16, 0x93, 0xb3, 0xd3, 0xcf,
-       0x3d, 0x1b, 0x72, 0xe0, 0xfd, 0x74, 0x76, 0x3d, 0xef, 0x0d, 0x97, 0xe0,
-       0xdd, 0x94, 0xf8, 0x6b, 0xa8, 0x85, 0xec, 0xf7, 0x64, 0x5a, 0x63, 0x6c,
-       0x2a, 0xe3, 0xb6, 0x61, 0xdb, 0x98, 0x03, 0xfb, 0xa3, 0x1a, 0x62, 0x89,
-       0x9f, 0x9a, 0x45, 0x9a, 0x6f, 0xc2, 0x6f, 0x77, 0x60, 0x5f, 0x7a, 0x12,
-       0x63, 0x7d, 0x1f, 0x9b, 0x76, 0xad, 0x0b, 0x1f, 0x85, 0x26, 0xc9, 0xeb,
-       0xa4, 0xfe, 0xa9, 0x63, 0xd7, 0x80, 0xc6, 0x58, 0xda, 0x86, 0x9d, 0x8b,
-       0x5b, 0xb0, 0x6b, 0xac, 0x19, 0xc6, 0x21, 0x0f, 0x76, 0x92, 0xf0, 0x4d,
-       0x0c, 0x4f, 0xe2, 0x54, 0x52, 0x6b, 0x2a, 0x52, 0x26, 0x71, 0x92, 0xe3,
-       0x6c, 0x4d, 0xbc, 0x05, 0x83, 0x7d, 0x6c, 0x4b, 0x4a, 0x8e, 0x57, 0xc6,
-       0x99, 0x44, 0x77, 0xea, 0x76, 0x35, 0x8f, 0x36, 0xec, 0x48, 0x6c, 0x69,
-       0xcf, 0xd6, 0x3d, 0x88, 0xab, 0x69, 0x4d, 0xe9, 0xe5, 0x1e, 0x1d, 0x4e,
-       0xe7, 0x6b, 0x20, 0x82, 0xa1, 0x59, 0x3c, 0xdc, 0x96, 0xd6, 0xd1, 0x3b,
-       0xd0, 0xc2, 0xf6, 0x1a, 0xba, 0x13, 0x52, 0x3f, 0xf6, 0x71, 0x3c, 0x13,
-       0xef, 0xe9, 0x5e, 0xf7, 0x5d, 0xfc, 0x1e, 0xd1, 0x3b, 0xb1, 0x81, 0xfd,
-       0x08, 0xe7, 0xd2, 0x14, 0x6f, 0x93, 0x01, 0x3b, 0x7e, 0xa5, 0xdb, 0x61,
-       0x54, 0xd9, 0x71, 0x44, 0x2f, 0x23, 0x3f, 0xb7, 0xa3, 0x21, 0x44, 0xdf,
-       0x9c, 0xf3, 0xd5, 0x1f, 0x26, 0x15, 0x3c, 0x40, 0x2c, 0x3d, 0x16, 0x6a,
-       0x68, 0x5f, 0x2e, 0x6c, 0xf7, 0x80, 0x82, 0x2b, 0xda, 0x35, 0xd3, 0xa0,
-       0xbf, 0x72, 0xf9, 0xf3, 0x7b, 0xf3, 0x6b, 0x33, 0x5b, 0x03, 0xfe, 0xc2,
-       0xcc, 0x3f, 0x37, 0xc5, 0xf9, 0x3d, 0xc6, 0xe7, 0xee, 0x5a, 0xd4, 0xd0,
-       0x29, 0xcf, 0xb9, 0x89, 0xe3, 0xf2, 0x9c, 0xe4, 0xf6, 0x6f, 0x3c, 0xa7,
-       0x63, 0xdb, 0x40, 0xc4, 0x9a, 0xef, 0xf6, 0x04, 0x16, 0x3a, 0x20, 0x76,
-       0xd4, 0xa0, 0x5e, 0x02, 0xba, 0x26, 0xf5, 0x19, 0xe4, 0x37, 0xfe, 0xc0,
-       0x53, 0x10, 0x39, 0x49, 0xbc, 0xf9, 0x16, 0x76, 0x46, 0x87, 0xc1, 0x98,
-       0x93, 0xf8, 0xe6, 0x5f, 0x3b, 0x84, 0x14, 0x9e, 0x4b, 0xa7, 0xf0, 0xbc,
-       0x70, 0x6c, 0x2b, 0xc7, 0x96, 0xc6, 0x77, 0xa2, 0x6f, 0x21, 0x66, 0xc5,
-       0x55, 0x87, 0xf1, 0x44, 0xf4, 0xdd, 0x6a, 0xc9, 0x65, 0x6e, 0x4d, 0x2c,
-       0x65, 0xff, 0x22, 0x53, 0x6f, 0xab, 0x81, 0x2f, 0xd9, 0xff, 0x52, 0x6c,
-       0x19, 0x92, 0x9c, 0x90, 0x89, 0xd7, 0xc9, 0xa9, 0xae, 0x50, 0x8f, 0x5a,
-       0x1a, 0xa5, 0xff, 0x71, 0x45, 0xb3, 0x7c, 0x57, 0x1b, 0xf7, 0x78, 0x16,
-       0xdc, 0x94, 0x73, 0x59, 0x46, 0x53, 0xee, 0x8a, 0xc9, 0x9e, 0x3b, 0x60,
-       0xcb, 0x78, 0xf0, 0x18, 0x79, 0x49, 0xe1, 0xc8, 0x8f, 0x14, 0xf1, 0x5f,
-       0x35, 0xe4, 0xa2, 0xee, 0x03, 0x1e, 0x65, 0xc1, 0x1e, 0x17, 0x1e, 0x88,
-       0x91, 0xa3, 0xc6, 0x9a, 0xb1, 0x65, 0xaf, 0xc6, 0x36, 0x5e, 0xfd, 0x1c,
-       0xe3, 0xd6, 0x93, 0xf0, 0x79, 0x86, 0xc8, 0xa5, 0xdc, 0xc4, 0x60, 0xc7,
-       0x48, 0x39, 0x4a, 0xc8, 0xb3, 0xa5, 0xdc, 0x5c, 0x3a, 0xe2, 0x46, 0x0d,
-       0xfd, 0x99, 0x3b, 0x73, 0x1e, 0x63, 0x7b, 0xa0, 0x96, 0x84, 0x3f, 0x37,
-       0x0b, 0x35, 0xa9, 0x57, 0x06, 0x50, 0x9e, 0xd9, 0x84, 0x74, 0x2c, 0x88,
-       0x52, 0xf2, 0xfb, 0x06, 0x8e, 0x77, 0x7f, 0x4c, 0x63, 0x3f, 0x59, 0x6e,
-       0xb3, 0x9c, 0xcf, 0xf4, 0x26, 0xbc, 0x6b, 0xa5, 0xde, 0x78, 0x45, 0x7f,
-       0x0d, 0x45, 0x7d, 0x37, 0xce, 0x9c, 0x69, 0x21, 0xcc, 0x21, 0xf7, 0x68,
-       0x7d, 0x1a, 0xd9, 0xf3, 0x67, 0x2b, 0x72, 0xeb, 0x09, 0xca, 0x7a, 0x9c,
-       0x6d, 0xd4, 0x83, 0xd9, 0x98, 0xc1, 0xf5, 0x5c, 0xa4, 0xde, 0xdc, 0xcb,
-       0xb9, 0x5e, 0x63, 0xec, 0xd0, 0xc9, 0xb5, 0xbc, 0x3f, 0xfc, 0x23, 0xa5,
-       0x86, 0x6b, 0x99, 0x22, 0x57, 0xfd, 0x38, 0xe5, 0x51, 0x7c, 0x5c, 0xcb,
-       0x77, 0x79, 0xff, 0x3b, 0x5c, 0xcb, 0xd6, 0xbd, 0xde, 0xd6, 0xe3, 0x8a,
-       0xb7, 0x7d, 0x8d, 0xe2, 0x53, 0xb7, 0x2a, 0xa5, 0xb8, 0x38, 0x5c, 0x8e,
-       0x4b, 0xf4, 0xbd, 0xd7, 0x86, 0x2b, 0x71, 0x79, 0xb8, 0x8a, 0x36, 0xa2,
-       0xb1, 0x0f, 0xd3, 0x2c, 0xd3, 0xdc, 0x98, 0x4a, 0x3f, 0x8f, 0x19, 0xb1,
-       0x5a, 0x7c, 0x9c, 0xde, 0x80, 0xf2, 0x98, 0xc4, 0x00, 0x1e, 0x7c, 0xc4,
-       0xfb, 0x1f, 0xa6, 0x47, 0x51, 0xbc, 0xe7, 0x73, 0xb6, 0x31, 0xcd, 0xfb,
-       0xb9, 0xbe, 0xcb, 0xe9, 0x0e, 0x94, 0xee, 0xd9, 0x08, 0xc7, 0x1e, 0xb3,
-       0x6b, 0x4b, 0x08, 0x3f, 0xb3, 0x73, 0x2d, 0xdd, 0xba, 0x77, 0xe2, 0x2e,
-       0x7b, 0x90, 0x7d, 0x8c, 0x2b, 0x0b, 0x32, 0x1b, 0x51, 0xbe, 0xc7, 0x83,
-       0x67, 0x29, 0xc3, 0x51, 0x68, 0x81, 0x35, 0xca, 0x46, 0x14, 0x8c, 0x64,
-       0xd7, 0xbf, 0x2e, 0x93, 0xb5, 0x8b, 0xfb, 0x1b, 0xa7, 0xc7, 0x32, 0x6e,
-       0x8b, 0x77, 0x4f, 0xa6, 0x4b, 0x70, 0x3a, 0x25, 0xf2, 0x81, 0xea, 0x08,
-       0x8f, 0xa2, 0x70, 0x0f, 0x31, 0x71, 0x58, 0xb7, 0xf8, 0x82, 0xd8, 0xc4,
-       0x70, 0xfa, 0x76, 0x36, 0x15, 0xc4, 0xce, 0x44, 0x0d, 0xed, 0xa9, 0x16,
-       0x2b, 0xf7, 0x48, 0x8d, 0x79, 0xe2, 0x5e, 0x17, 0xb5, 0xe8, 0x50, 0xfa,
-       0x56, 0x7b, 0x6a, 0xa4, 0x6e, 0x0a, 0xb6, 0x9a, 0x98, 0xd4, 0xb3, 0x78,
-       0x73, 0xcc, 0xaa, 0x61, 0x8b, 0x4d, 0xb6, 0x62, 0xcb, 0x00, 0xda, 0xf7,
-       0x37, 0x8a, 0x4d, 0x3a, 0x31, 0x44, 0xbe, 0x7f, 0x91, 0xb1, 0xc3, 0x0c,
-       0xed, 0x73, 0x62, 0x42, 0x01, 0x06, 0x87, 0x5d, 0xf8, 0xf1, 0xb0, 0x07,
-       0xee, 0x58, 0x31, 0xc6, 0x29, 0xe3, 0x31, 0x72, 0x9c, 0x8f, 0x18, 0x65,
-       0x8f, 0xd2, 0xa7, 0x7e, 0x18, 0xad, 0x42, 0x26, 0x5d, 0x8b, 0xab, 0xc4,
-       0x94, 0x34, 0xf7, 0xe3, 0x83, 0x68, 0x00, 0x2f, 0xa7, 0x83, 0x78, 0x3f,
-       0x2a, 0xd8, 0x13, 0xc4, 0x11, 0xca, 0xaf, 0x28, 0xe6, 0x66, 0xbf, 0x82,
-       0x43, 0x1e, 0x38, 0x63, 0x9a, 0x67, 0x28, 0xa7, 0x0b, 0x8e, 0x4c, 0x2b,
-       0xed, 0x46, 0xce, 0x44, 0x88, 0x1f, 0x70, 0xe8, 0x43, 0x8c, 0xb9, 0x07,
-       0x83, 0xf9, 0xfc, 0xaf, 0xd7, 0x3d, 0x81, 0x99, 0xb4, 0x9d, 0x2f, 0x4d,
-       0x55, 0x93, 0x98, 0x2a, 0x19, 0xba, 0x12, 0xd5, 0x24, 0x17, 0x48, 0x6c,
-       0x37, 0x14, 0xe7, 0x62, 0x72, 0x89, 0xaa, 0xad, 0x92, 0x17, 0xe6, 0xfc,
-       0xe5, 0x6c, 0x99, 0xc9, 0x76, 0x57, 0x31, 0xff, 0xc0, 0xd6, 0x59, 0xb9,
-       0x1c, 0x93, 0x7a, 0x83, 0xf7, 0xe5, 0x31, 0x5e, 0xe2, 0xb5, 0xdd, 0xa1,
-       0xd7, 0xa2, 0x7f, 0x3f, 0x4b, 0xea, 0x71, 0xc7, 0x11, 0xa4, 0x4c, 0x6e,
-       0x17, 0x0f, 0x98, 0x78, 0x93, 0x18, 0x72, 0x39, 0x29, 0xbc, 0x48, 0xf8,
-       0x50, 0x17, 0x7d, 0x4f, 0x19, 0xf9, 0x80, 0x86, 0x6d, 0xe4, 0xeb, 0xbe,
-       0xf8, 0x04, 0xe3, 0x91, 0xaf, 0x93, 0x93, 0x95, 0xb3, 0x9b, 0x1f, 0x70,
-       0xbc, 0x56, 0xec, 0xa4, 0x2d, 0x16, 0x69, 0x77, 0x61, 0x25, 0xf9, 0x8e,
-       0x43, 0xa3, 0xcb, 0x78, 0x58, 0xfc, 0x86, 0xe4, 0x70, 0x54, 0xa9, 0x95,
-       0xad, 0x7d, 0x1d, 0xf7, 0xa2, 0xbd, 0xda, 0x05, 0xa9, 0x6f, 0xbd, 0x81,
-       0x25, 0x48, 0x3d, 0x2a, 0xbe, 0x93, 0x1c, 0x39, 0xac, 0x19, 0xe7, 0x31,
-       0xcf, 0x62, 0xdd, 0xc5, 0x61, 0x99, 0x4f, 0x15, 0x65, 0xaf, 0xe2, 0x1d,
-       0xca, 0xf5, 0x52, 0xd4, 0x37, 0x75, 0x1f, 0x1a, 0x4e, 0x5d, 0xb2, 0x4b,
-       0xed, 0x4f, 0xda, 0x07, 0xa1, 0xb1, 0xbf, 0x4f, 0xa3, 0x21, 0xf4, 0xa9,
-       0x72, 0x2d, 0xfc, 0xb0, 0x15, 0xdd, 0x43, 0x32, 0x07, 0xd3, 0xac, 0x24,
-       0x1e, 0x3e, 0x6c, 0x8d, 0x2f, 0x63, 0xdf, 0x1a, 0x5b, 0x78, 0x19, 0x49,
-       0xe7, 0xe3, 0x8b, 0x49, 0x1c, 0x4e, 0x52, 0xfe, 0x8b, 0xdf, 0xa6, 0x1c,
-       0x26, 0x31, 0x9c, 0xd2, 0xc8, 0x1d, 0x4b, 0xe0, 0xa9, 0x0e, 0x62, 0x17,
-       0xfd, 0x75, 0x8c, 0xed, 0xd3, 0xb1, 0x12, 0x18, 0xd5, 0xd9, 0x31, 0xbf,
-       0x1e, 0xbf, 0x6a, 0x4e, 0x3c, 0x64, 0xc5, 0xa9, 0xbc, 0xfe, 0x1d, 0x9f,
-       0x99, 0x2d, 0xc7, 0x32, 0xb1, 0x3e, 0x76, 0xd9, 0x9c, 0x68, 0x9d, 0xfe,
-       0x7b, 0x85, 0x75, 0xa6, 0x2a, 0x62, 0xab, 0xe6, 0x77, 0x56, 0x2e, 0xdd,
-       0x94, 0xcb, 0x0c, 0xed, 0x2d, 0xf3, 0x41, 0x6b, 0x5e, 0xef, 0xcd, 0x12,
-       0x2e, 0x5f, 0x17, 0xf7, 0xcc, 0x46, 0x71, 0x15, 0xdb, 0x10, 0x43, 0xc3,
-       0x5a, 0xd3, 0x29, 0xfc, 0x8b, 0x79, 0xe1, 0xa6, 0x7e, 0x66, 0xf2, 0x9e,
-       0xf8, 0x9e, 0x0b, 0xb9, 0x9c, 0x8f, 0x3b, 0xc7, 0xf7, 0x27, 0x71, 0x3c,
-       0x29, 0xd8, 0xef, 0xc1, 0x13, 0x92, 0x9b, 0x52, 0xbd, 0xbd, 0x06, 0x26,
-       0xc8, 0xf1, 0xde, 0xa6, 0xec, 0x25, 0xff, 0x38, 0x41, 0x9e, 0x37, 0xdd,
-       0x37, 0x45, 0x90, 0xaa, 0x92, 0x1a, 0x8c, 0xe0, 0xe7, 0x24, 0xb6, 0x27,
-       0x7f, 0x4a, 0x1c, 0xfb, 0x98, 0xbc, 0xa7, 0x8b, 0x9c, 0x7a, 0x12, 0x5b,
-       0x52, 0xcd, 0x78, 0x69, 0x6f, 0x0b, 0x71, 0x45, 0xb0, 0xd1, 0x77, 0xea,
-       0xa2, 0xbd, 0x19, 0xfb, 0x0f, 0xa5, 0x91, 0x1a, 0x11, 0x7f, 0x28, 0x3e,
-       0x57, 0x7c, 0xa1, 0x86, 0x68, 0xe2, 0x24, 0x0c, 0x7e, 0xef, 0x4c, 0x6c,
-       0x44, 0x64, 0xe4, 0x2d, 0xf2, 0xf8, 0x49, 0x2c, 0xef, 0xd3, 0xd6, 0x1e,
-       0xc4, 0x24, 0x56, 0xd1, 0x57, 0x26, 0x13, 0x2d, 0xec, 0xbf, 0x19, 0x3d,
-       0x7b, 0xbd, 0x56, 0xbe, 0x49, 0x62, 0xf8, 0x6d, 0x63, 0x11, 0x18, 0x43,
-       0x72, 0x36, 0xc3, 0x85, 0x60, 0xdc, 0xa3, 0x7c, 0x48, 0x3e, 0xdc, 0x10,
-       0xf7, 0x32, 0x06, 0xf3, 0x1a, 0xab, 0x14, 0x9f, 0xa7, 0xc0, 0x26, 0xb5,
-       0xc0, 0x19, 0x38, 0xa5, 0x2b, 0x28, 0xba, 0x57, 0x41, 0x88, 0xbe, 0xca,
-       0x33, 0x8b, 0x3e, 0x64, 0x48, 0x47, 0xcf, 0x00, 0xd7, 0x7b, 0x7d, 0xdf,
-       0x64, 0xbf, 0x56, 0xb3, 0x3f, 0xd9, 0xbb, 0x16, 0xf4, 0x8c, 0xf9, 0x3a,
-       0x4e, 0xc1, 0x6d, 0x71, 0xab, 0x9e, 0x81, 0xeb, 0x79, 0x81, 0xd2, 0x8f,
-       0x1b, 0xbd, 0x81, 0x19, 0x8a, 0xb4, 0xdd, 0x4a, 0xcc, 0x9a, 0xde, 0xde,
-       0x50, 0x92, 0x8b, 0xc9, 0x3f, 0x6d, 0x62, 0x17, 0xdd, 0x96, 0xbd, 0x88,
-       0x2c, 0x7a, 0x92, 0x11, 0xea, 0xf4, 0x4f, 0xcc, 0x54, 0x6b, 0x2b, 0xe7,
-       0xd9, 0x28, 0xb5, 0x31, 0x0b, 0x13, 0xce, 0x4a, 0x2e, 0xce, 0x29, 0x98,
-       0xd0, 0xdd, 0xee, 0xa2, 0x3e, 0x15, 0x12, 0x97, 0x8a, 0x46, 0x5d, 0x70,
-       0x1d, 0x2c, 0x41, 0xe1, 0xa0, 0xf0, 0x31, 0xc9, 0x41, 0xa8, 0xb0, 0x8f,
-       0x96, 0xd2, 0x06, 0xb8, 0x87, 0xa3, 0xb4, 0xb1, 0xa8, 0x1b, 0xf3, 0x46,
-       0xdd, 0xf8, 0x31, 0x31, 0xa0, 0x66, 0x54, 0xc3, 0x38, 0x31, 0xc0, 0x3d,
-       0x1a, 0xc0, 0x58, 0x34, 0x88, 0x19, 0xa3, 0xe3, 0xca, 0x1b, 0xe9, 0x66,
-       0xee, 0xb7, 0x8c, 0x23, 0x32, 0xcc, 0xef, 0xa9, 0xec, 0x67, 0x0b, 0xb1,
-       0x4e, 0xf6, 0x36, 0x80, 0x1d, 0x03, 0x69, 0x2c, 0xdb, 0x63, 0xe2, 0x9f,
-       0xf4, 0x06, 0x77, 0x91, 0x22, 0xb1, 0x80, 0x89, 0x34, 0xfd, 0xda, 0x0a,
-       0xdd, 0xbb, 0x56, 0xce, 0x3b, 0xb7, 0x57, 0x99, 0x28, 0x08, 0x79, 0x75,
-       0xa2, 0xfb, 0xda, 0x22, 0x45, 0x7c, 0x54, 0x83, 0x67, 0x03, 0xe6, 0x22,
-       0x5b, 0x57, 0xbc, 0x0f, 0x1b, 0x54, 0x85, 0xb6, 0xd8, 0x82, 0x9d, 0x15,
-       0x86, 0xeb, 0x4a, 0xa3, 0x69, 0xae, 0x0b, 0xd5, 0xcd, 0xb2, 0x72, 0xd0,
-       0xb6, 0xf5, 0xfc, 0x6e, 0xe3, 0x9a, 0x65, 0xdd, 0x1d, 0x88, 0xed, 0x56,
-       0x90, 0xf6, 0x77, 0x20, 0x3a, 0xdc, 0x21, 0xfc, 0x89, 0x78, 0xd0, 0x4b,
-       0x3c, 0x30, 0xbb, 0x9e, 0x0e, 0x3d, 0x88, 0xcb, 0x96, 0xc7, 0x97, 0x67,
-       0xbc, 0x01, 0x8f, 0x6d, 0xfa, 0x1e, 0xe8, 0xb3, 0x25, 0xcf, 0x21, 0x76,
-       0xd3, 0xdc, 0x27, 0xbc, 0xd9, 0xdf, 0xdb, 0xc3, 0xbd, 0x7f, 0xe8, 0x80,
-       0xf8, 0x17, 0xd3, 0xec, 0x25, 0x2f, 0x45, 0x85, 0xac, 0x41, 0x43, 0x3c,
-       0x61, 0x7e, 0x5c, 0xa3, 0xf9, 0xa6, 0x76, 0xd1, 0x8f, 0x9f, 0xdf, 0xd3,
-       0xb0, 0x61, 0x83, 0x70, 0x96, 0x45, 0x1a, 0x63, 0xe9, 0x34, 0xce, 0x8d,
-       0xcc, 0x47, 0xea, 0x21, 0xae, 0x87, 0xfb, 0xe4, 0x8c, 0x7f, 0xc1, 0x38,
-       0x43, 0xb0, 0x4f, 0x53, 0x0f, 0x13, 0xf7, 0x6c, 0xa3, 0x7e, 0x6c, 0xa9,
-       0x80, 0x71, 0xa5, 0x51, 0xc6, 0xbf, 0x3e, 0x7f, 0xae, 0xb7, 0x19, 0xbb,
-       0xf6, 0x0a, 0xaf, 0x10, 0xfe, 0xe5, 0x33, 0x3e, 0x40, 0x0b, 0x92, 0x63,
-       0xd9, 0xb1, 0xa2, 0x89, 0x5b, 0xf5, 0x44, 0xf6, 0xfc, 0x24, 0x76, 0x50,
-       0x27, 0x5d, 0xec, 0x9f, 0x3e, 0x85, 0xfd, 0x69, 0x81, 0x22, 0x19, 0x6f,
-       0xf4, 0x27, 0xe6, 0xce, 0x6a, 0x91, 0x8d, 0xf4, 0xff, 0x9b, 0x6a, 0xc1,
-       0x8b, 0x75, 0xa1, 0xaf, 0x5a, 0xeb, 0x15, 0x7e, 0x4b, 0xce, 0x3a, 0x3f,
-       0x1f, 0x79, 0xe6, 0x76, 0xf3, 0xf9, 0x9c, 0xed, 0x64, 0x4e, 0x1d, 0xd8,
-       0xb1, 0x1b, 0x46, 0xb1, 0xa6, 0x45, 0xe6, 0x2b, 0x1d, 0xe8, 0xa5, 0x7c,
-       0xb7, 0x25, 0x3b, 0xb0, 0x9f, 0xf6, 0x3a, 0xa8, 0x1f, 0xab, 0xb1, 0xa1,
-       0x7e, 0xca, 0x8e, 0x89, 0x7f, 0x94, 0x9a, 0xc5, 0x82, 0x45, 0x7e, 0xda,
-       0x56, 0x07, 0xe2, 0xa9, 0x73, 0xb3, 0xad, 0x9a, 0xa8, 0x4d, 0x7c, 0x9e,
-       0xc8, 0xa2, 0x13, 0xc5, 0x7d, 0x27, 0xe1, 0xec, 0xeb, 0x44, 0x91, 0x7f,
-       0x09, 0x56, 0x84, 0x2e, 0x98, 0x97, 0x35, 0x87, 0xfb, 0x38, 0xe5, 0x73,
-       0x2c, 0x58, 0xc3, 0x98, 0x91, 0x71, 0xca, 0xd0, 0x1c, 0xda, 0x7d, 0x23,
-       0x76, 0x8c, 0xc9, 0x59, 0x08, 0x1b, 0x56, 0x2d, 0x96, 0x58, 0x5c, 0xa1,
-       0x5e, 0xcf, 0x62, 0x3c, 0xa9, 0xa9, 0xcf, 0x59, 0xe7, 0x56, 0xc8, 0xb9,
-       0xaa, 0x3c, 0x78, 0xd2, 0x3a, 0xaf, 0x21, 0xf7, 0x37, 0x31, 0x0e, 0xd8,
-       0x84, 0x9a, 0x98, 0x61, 0x8a, 0xbc, 0x8f, 0x23, 0xf2, 0xa2, 0x8d, 0xf3,
-       0x68, 0x5a, 0xe4, 0xdf, 0x30, 0xa5, 0x88, 0x3e, 0xfb, 0xdb, 0x47, 0x15,
-       0xdd, 0xb5, 0x3a, 0xa3, 0x20, 0xd0, 0xc7, 0xbe, 0x42, 0x23, 0xb3, 0xb3,
-       0xb9, 0xf1, 0x3c, 0xbf, 0xdb, 0x44, 0x5e, 0xb0, 0x09, 0x65, 0x31, 0xe1,
-       0xe4, 0x82, 0x0b, 0x91, 0xa5, 0xe5, 0x7c, 0x3e, 0x1d, 0xf2, 0xb7, 0x96,
-       0x2a, 0xc2, 0x7d, 0xfc, 0x4d, 0xab, 0x14, 0xe1, 0x2a, 0xf2, 0x9c, 0xee,
-       0xaa, 0xcf, 0x9c, 0xcf, 0xd5, 0x31, 0x1b, 0x89, 0x0d, 0x72, 0xce, 0x24,
-       0x7f, 0xd6, 0xea, 0x46, 0xce, 0xda, 0x19, 0x97, 0xd8, 0xe1, 0x68, 0x68,
-       0x59, 0xb4, 0x89, 0x38, 0x67, 0x2e, 0x39, 0x44, 0xbd, 0xbf, 0x88, 0x2a,
-       0xfc, 0x73, 0x54, 0x30, 0xcd, 0x83, 0x9f, 0x47, 0x0b, 0x25, 0x26, 0x4e,
-       0x49, 0x5e, 0xf6, 0x4c, 0xd2, 0x30, 0x29, 0xd7, 0x96, 0x55, 0xd4, 0xa5,
-       0x40, 0xa8, 0x14, 0xa8, 0xee, 0x7e, 0xd2, 0x69, 0xc5, 0xe8, 0x65, 0xa8,
-       0x20, 0xfe, 0xf7, 0x0d, 0xfd, 0xa1, 0xf3, 0x0e, 0xc4, 0xe0, 0x62, 0xc9,
-       0x15, 0xda, 0xb1, 0x2d, 0xf4, 0x1b, 0x33, 0xd5, 0x26, 0xcf, 0xd4, 0xe2,
-       0xdc, 0x6e, 0xd1, 0xd3, 0x00, 0x0a, 0xe3, 0xe7, 0xa9, 0x93, 0x2a, 0xce,
-       0x46, 0x7d, 0xfa, 0x1a, 0xdb, 0xb7, 0xa8, 0xff, 0xf3, 0x6e, 0xc2, 0xed,
-       0x79, 0xda, 0x03, 0x78, 0xdc, 0xc2, 0xed, 0x30, 0xb6, 0xd0, 0x2f, 0x90,
-       0xb7, 0xed, 0x7b, 0xd2, 0xa6, 0xd2, 0x9f, 0xfb, 0x54, 0x1f, 0x63, 0xea,
-       0x2d, 0x1c, 0x43, 0xf8, 0xe4, 0x4c, 0xf2, 0xbd, 0xa7, 0xa3, 0x0d, 0x9e,
-       0x5f, 0xe3, 0x09, 0xda, 0xa3, 0x8c, 0x21, 0x6b, 0xd2, 0x50, 0xca, 0xd8,
-       0xf1, 0x04, 0xd7, 0xb1, 0xad, 0x22, 0x3b, 0x6e, 0x79, 0xae, 0xef, 0xf8,
-       0x90, 0xf0, 0xad, 0x7b, 0xb0, 0xc6, 0xea, 0x3b, 0x68, 0xd9, 0xe6, 0xbe,
-       0xa8, 0x82, 0x19, 0xf5, 0x1a, 0x12, 0xe9, 0x66, 0x6c, 0xac, 0xac, 0xc5,
-       0xfe, 0xc4, 0x26, 0x2c, 0x24, 0xe7, 0x7d, 0xa4, 0xd2, 0xa0, 0x5f, 0x24,
-       0x06, 0xc5, 0x35, 0x75, 0xbe, 0xf2, 0x8d, 0x5c, 0xae, 0xba, 0x0a, 0x8e,
-       0xb8, 0xf8, 0xbb, 0x02, 0xf4, 0xab, 0x73, 0x51, 0x62, 0x9d, 0x81, 0xcc,
-       0xf6, 0xbd, 0x6b, 0xc8, 0x9b, 0xf3, 0x81, 0x44, 0x8d, 0xb8, 0x75, 0x4e,
-       0x25, 0xf0, 0x3c, 0x79, 0x44, 0x8a, 0xde, 0xaf, 0x20, 0xac, 0xa5, 0xd6,
-       0xa3, 0x08, 0xc6, 0x2c, 0xc1, 0x43, 0x79, 0x66, 0xce, 0x2d, 0x73, 0xaa,
-       0xcc, 0xcd, 0x29, 0x7f, 0xff, 0x34, 0xef, 0x89, 0x6e, 0x09, 0xb7, 0x90,
-       0xdf, 0x8b, 0xd1, 0x4a, 0x7d, 0xaa, 0xe2, 0x9c, 0x13, 0x09, 0xb9, 0xef,
-       0xd5, 0x0d, 0x5b, 0x23, 0x3e, 0xdb, 0x93, 0xd5, 0xc1, 0xb5, 0x75, 0xdc,
-       0xff, 0xf2, 0x46, 0x4c, 0x8d, 0x88, 0x2f, 0xfb, 0xc3, 0x67, 0x50, 0x8c,
-       0xeb, 0x67, 0x50, 0x44, 0xae, 0xde, 0x53, 0xef, 0xa0, 0x61, 0xe2, 0x31,
-       0xdb, 0x61, 0x13, 0x33, 0x45, 0xc6, 0x71, 0xb7, 0xc4, 0x9a, 0x36, 0x72,
-       0x08, 0x23, 0x3d, 0xee, 0x16, 0x3f, 0xe9, 0x88, 0x03, 0xf3, 0xe2, 0x06,
-       0x0a, 0xc3, 0xda, 0xbe, 0x2b, 0xf6, 0x6b, 0x66, 0xfb, 0xac, 0x39, 0x8c,
-       0xf9, 0x6e, 0xac, 0xb9, 0x97, 0x73, 0xb7, 0x6b, 0x3f, 0x31, 0xef, 0xab,
-       0x92, 0x39, 0xfe, 0xd2, 0x9d, 0x3d, 0xfb, 0x70, 0x07, 0xe5, 0x92, 0x97,
-       0x89, 0x49, 0xfd, 0xf9, 0x2b, 0xf3, 0x9b, 0x37, 0xdd, 0x17, 0x2e, 0x23,
-       0x7a, 0x3a, 0xfd, 0x3c, 0xa0, 0xe8, 0xac, 0xd4, 0x56, 0x26, 0x71, 0x28,
-       0x29, 0xba, 0x2b, 0x32, 0x8e, 0xe0, 0x22, 0x79, 0x61, 0x41, 0xff, 0x24,
-       0x06, 0xc9, 0x0b, 0xed, 0x71, 0xef, 0x3e, 0x4a, 0x12, 0x1b, 0xd5, 0x25,
-       0xc4, 0xea, 0x32, 0xce, 0x23, 0x3f, 0x87, 0x3a, 0x4b, 0xee, 0xe2, 0x5f,
-       0x76, 0x72, 0xbd, 0x45, 0xe4, 0x48, 0xcd, 0xb1, 0x42, 0x68, 0x15, 0xe5,
-       0x28, 0xd5, 0xe4, 0x0c, 0x7c, 0xb6, 0x5d, 0x94, 0x73, 0x29, 0xd1, 0xe6,
-       0x62, 0x95, 0xd5, 0xd6, 0x63, 0x9d, 0x01, 0xd1, 0x2a, 0xc5, 0xff, 0x8a,
-       0xcf, 0x25, 0xdf, 0x5e, 0x2c, 0x3e, 0x37, 0xcc, 0xb9, 0xcd, 0xc9, 0xd5,
-       0x99, 0x56, 0x59, 0xf7, 0xf7, 0x25, 0x2e, 0x7c, 0xd9, 0x9f, 0xf8, 0x3d,
-       0x9f, 0xe9, 0x80, 0xba, 0xb7, 0x18, 0x0f, 0xfd, 0x65, 0x09, 0xf4, 0xca,
-       0x6c, 0xae, 0x7c, 0x5e, 0x38, 0x1a, 0x32, 0x13, 0xc2, 0x93, 0xee, 0x84,
-       0x67, 0xb6, 0x8c, 0x25, 0x18, 0x20, 0x7b, 0x21, 0x7b, 0x27, 0x39, 0xdc,
-       0xdb, 0xd5, 0x18, 0xbc, 0xea, 0xc4, 0xf5, 0x7d, 0x98, 0x0f, 0xed, 0xe1,
-       0x2a, 0xae, 0x2d, 0xeb, 0x23, 0x76, 0xd0, 0x47, 0x04, 0xfc, 0x59, 0x0c,
-       0x93, 0x1a, 0xbd, 0x93, 0x3e, 0x62, 0x84, 0x3e, 0xe2, 0xa2, 0x5e, 0x8e,
-       0xe5, 0x39, 0x1f, 0xd1, 0x6e, 0xd3, 0xad, 0xfe, 0x9d, 0xda, 0x7d, 0x35,
-       0xc4, 0x30, 0x8e, 0xf1, 0xb5, 0x9b, 0xb8, 0xd8, 0x4c, 0xed, 0x97, 0xe6,
-       0x23, 0x55, 0xb2, 0xc6, 0xe6, 0x9a, 0x6c, 0x8e, 0xbc, 0x03, 0xfb, 0x88,
-       0x8f, 0x35, 0x9a, 0x3c, 0xa3, 0x25, 0x6b, 0xec, 0x1d, 0xe8, 0x67, 0xff,
-       0x7d, 0xc4, 0xc8, 0x18, 0x31, 0x52, 0x5f, 0x78, 0xec, 0x45, 0x15, 0xf5,
-       0x1d, 0x64, 0x0f, 0xdf, 0x16, 0x6c, 0x79, 0x99, 0xd8, 0xf2, 0x3c, 0x31,
-       0x72, 0x67, 0x4a, 0xc6, 0x91, 0xf1, 0xf2, 0xe3, 0x48, 0x9f, 0xff, 0x66,
-       0xae, 0xaf, 0x92, 0xb9, 0xde, 0x6e, 0x1e, 0xf2, 0xdb, 0x9f, 0xf2, 0xef,
-       0x62, 0x8b, 0x43, 0xf5, 0x26, 0xa6, 0x9f, 0xa9, 0x98, 0x24, 0xbe, 0x5a,
-       0x71, 0x00, 0xfd, 0x6b, 0x04, 0x2b, 0x17, 0xab, 0xb8, 0x1c, 0x9d, 0x44,
-       0xd1, 0x81, 0x3c, 0x16, 0x99, 0x4b, 0x4e, 0x10, 0x87, 0x06, 0x21, 0xd8,
-       0xd3, 0xc4, 0x3d, 0x30, 0x68, 0x13, 0x65, 0x18, 0x4d, 0xca, 0xd9, 0x0b,
-       0x13, 0xbb, 0x42, 0x2e, 0x72, 0xd8, 0xee, 0xe3, 0x05, 0x96, 0x4f, 0x28,
-       0x23, 0x5e, 0xe7, 0xf9, 0xb5, 0x70, 0x6b, 0xc1, 0x1a, 0xc6, 0x11, 0x43,
-       0x76, 0x14, 0x2c, 0xca, 0xc6, 0x0e, 0xe7, 0xda, 0xa4, 0x5d, 0x2d, 0x06,
-       0x77, 0x8b, 0xae, 0xf9, 0x50, 0xa3, 0x9d, 0x67, 0x2c, 0x01, 0xbc, 0x1b,
-       0xb5, 0xdd, 0xe9, 0x22, 0x07, 0xee, 0xd2, 0x17, 0xe3, 0xda, 0xcc, 0x2d,
-       0xb4, 0x6f, 0x37, 0x7f, 0x9b, 0xc0, 0xc1, 0xa8, 0x0b, 0x05, 0x56, 0x8d,
-       0xb2, 0x9c, 0xeb, 0xc9, 0xea, 0xcb, 0x36, 0xea, 0x4b, 0x21, 0x63, 0xb3,
-       0x15, 0x96, 0x5d, 0x4a, 0x3f, 0x93, 0xd6, 0xbb, 0x32, 0xda, 0x62, 0xe1,
-       0xad, 0x41, 0xfa, 0xc0, 0x32, 0xc4, 0xfb, 0xba, 0x70, 0x36, 0x54, 0x86,
-       0xd8, 0x01, 0xb1, 0xa7, 0x5a, 0xc1, 0x4d, 0x8e, 0xdb, 0x44, 0xf9, 0xa8,
-       0xc4, 0x95, 0x86, 0x4e, 0xbb, 0xbd, 0x0c, 0x17, 0x2a, 0x18, 0xaf, 0x5a,
-       0xef, 0x13, 0xb5, 0x62, 0x7f, 0x6e, 0x8f, 0x54, 0xf2, 0x9b, 0xd6, 0xeb,
-       0x7c, 0x39, 0xbf, 0x96, 0xbc, 0x7d, 0x66, 0x6b, 0xe4, 0x3d, 0xe4, 0x30,
-       0x2f, 0x49, 0x3e, 0xc8, 0xe6, 0xa3, 0xdf, 0x60, 0x5c, 0x34, 0x26, 0xb2,
-       0xce, 0xeb, 0xd6, 0xeb, 0x35, 0xd9, 0x33, 0x3d, 0xf9, 0x3d, 0xc8, 0x5f,
-       0x6b, 0x6b, 0x8b, 0x95, 0x5f, 0x98, 0xcf, 0x56, 0xcb, 0xfc, 0xae, 0x32,
-       0x0e, 0xfb, 0x31, 0x7f, 0x5f, 0x86, 0x9e, 0xa1, 0xe9, 0x7e, 0x41, 0x6c,
-       0xce, 0x73, 0xd3, 0xd9, 0xc3, 0x8a, 0xb8, 0xbc, 0xbf, 0x75, 0x34, 0xf4,
-       0x24, 0xf7, 0xc1, 0xbf, 0xb0, 0xc1, 0xca, 0xa5, 0x90, 0xe3, 0x32, 0xfe,
-       0x10, 0x3c, 0x35, 0xe8, 0xcf, 0xcb, 0xf0, 0xb3, 0xa4, 0xf8, 0x57, 0x13,
-       0x85, 0xa1, 0x12, 0xfa, 0xbb, 0xee, 0xe7, 0x2a, 0x2c, 0xce, 0x5c, 0x86,
-       0x4a, 0xea, 0x5e, 0xff, 0xd0, 0xed, 0xf4, 0xfc, 0x86, 0x0f, 0x48, 0x87,
-       0x14, 0x62, 0xc2, 0x6f, 0xcc, 0x5d, 0x8f, 0x66, 0x9f, 0x39, 0x97, 0x74,
-       0xe1, 0xa3, 0x50, 0x3b, 0x26, 0x2a, 0xc2, 0x18, 0x48, 0x14, 0xa1, 0x7d,
-       0x56, 0xbd, 0xf5, 0xce, 0x45, 0x4d, 0xdc, 0x83, 0xf3, 0x51, 0x27, 0x9a,
-       0x66, 0x7b, 0xac, 0x7c, 0x92, 0x8d, 0x76, 0xf1, 0x76, 0x34, 0x42, 0x5f,
-       0xe0, 0xb9, 0xc9, 0x3f, 0x14, 0x68, 0x8b, 0x70, 0x7f, 0x0e, 0xc3, 0xf7,
-       0x27, 0x3e, 0x27, 0xc6, 0x94, 0x1b, 0x33, 0xc3, 0x65, 0xb8, 0x7b, 0x40,
-       0xce, 0x29, 0x48, 0x9d, 0x4a, 0x9b, 0x9a, 0xaf, 0x94, 0x61, 0xc9, 0x90,
-       0xe0, 0xb9, 0x9c, 0xfd, 0x48, 0x87, 0x5c, 0xb1, 0x36, 0xee, 0x51, 0x27,
-       0xea, 0xf7, 0x5a, 0x72, 0x55, 0xed, 0x8a, 0xd9, 0x75, 0x49, 0x8f, 0xe8,
-       0xf4, 0x67, 0x9d, 0xf7, 0x53, 0xef, 0xa7, 0x42, 0xde, 0xf6, 0x99, 0x76,
-       0xad, 0xe3, 0x57, 0x4a, 0x10, 0xa3, 0x19, 0xa0, 0x6f, 0x24, 0x80, 0x0f,
-       0x12, 0xc2, 0xed, 0x03, 0x78, 0x7f, 0x2c, 0x88, 0x77, 0xe8, 0x87, 0x8a,
-       0xe2, 0xde, 0xc8, 0x33, 0x8c, 0xdd, 0xde, 0xe5, 0x75, 0x61, 0x5c, 0xc7,
-       0x15, 0xca, 0xcf, 0x19, 0x6f, 0xc4, 0xa5, 0xb1, 0x6f, 0xe0, 0xf2, 0x5e,
-       0x05, 0xc7, 0xb4, 0x6f, 0xe0, 0xe2, 0xa1, 0x4e, 0x2c, 0xda, 0x2b, 0x67,
-       0xf5, 0x8e, 0x86, 0x54, 0xfa, 0x81, 0x27, 0xeb, 0xcc, 0xae, 0x17, 0xf4,
-       0x7a, 0x62, 0x86, 0x57, 0x6f, 0x67, 0x6c, 0x24, 0xf8, 0x1d, 0xb1, 0xc9,
-       0x9e, 0xc9, 0xde, 0x75, 0xe2, 0xb2, 0x85, 0xd9, 0xb7, 0xc7, 0x89, 0x1b,
-       0x78, 0x2d, 0xe3, 0x88, 0x6d, 0xdf, 0x81, 0x57, 0x19, 0x94, 0x6e, 0x61,
-       0x3b, 0x17, 0x71, 0xee, 0xe9, 0x68, 0x11, 0x0a, 0xab, 0xcb, 0x2d, 0x7b,
-       0x2b, 0x8e, 0x07, 0x70, 0x9a, 0xb2, 0x5b, 0x59, 0xed, 0xe5, 0xb5, 0xf8,
-       0xd8, 0x20, 0xe3, 0x93, 0x99, 0xf8, 0xe0, 0x26, 0xdf, 0xfa, 0xaa, 0x85,
-       0x0d, 0x0e, 0xed, 0x81, 0x39, 0x59, 0x6c, 0x20, 0xa0, 0x13, 0x93, 0x25,
-       0x27, 0x58, 0xae, 0x69, 0x1b, 0xbe, 0x4b, 0x1b, 0x4f, 0x87, 0x8e, 0xfd,
-       0x49, 0x29, 0x39, 0xf0, 0x0b, 0xa1, 0x7a, 0xa3, 0x02, 0x2b, 0x78, 0x7f,
-       0x62, 0x91, 0x8a, 0x75, 0xfc, 0xf6, 0xb3, 0x5d, 0x90, 0xf3, 0xb8, 0x6a,
-       0xa6, 0x54, 0x1f, 0xff, 0xae, 0xa5, 0x2f, 0xdf, 0x84, 0xb3, 0xb1, 0x86,
-       0xf6, 0x11, 0xe5, 0x8a, 0x69, 0x54, 0xd7, 0xf1, 0xb7, 0x2a, 0x9c, 0x8b,
-       0x7a, 0x27, 0x0e, 0xa1, 0xc1, 0x33, 0xa5, 0xec, 0x37, 0x0d, 0x55, 0xf6,
-       0x47, 0xd6, 0x2b, 0xcf, 0xdf, 0xc5, 0xfb, 0x17, 0xa6, 0xe9, 0xe1, 0x8d,
-       0xf8, 0xca, 0x79, 0x5d, 0xff, 0x84, 0x83, 0x98, 0x4b, 0x86, 0xf5, 0x06,
-       0x75, 0x0b, 0xb1, 0x20, 0xa2, 0xde, 0x4e, 0xff, 0x8a, 0xa8, 0x7f, 0x61,
-       0xc6, 0x8b, 0x65, 0x50, 0x2d, 0x5f, 0xd4, 0x8a, 0xe4, 0xd0, 0x74, 0x1e,
-       0x29, 0x7a, 0x97, 0xe5, 0xa4, 0xed, 0x15, 0xdd, 0xc7, 0x9d, 0xf4, 0x87,
-       0x09, 0x62, 0x78, 0x9c, 0x18, 0x5e, 0x48, 0x0c, 0xbf, 0xba, 0xa7, 0x18,
-       0x67, 0xf7, 0x34, 0x21, 0x5d, 0x21, 0xcf, 0xd8, 0xe1, 0xe4, 0xea, 0x52,
-       0x96, 0x6f, 0xb7, 0xa1, 0xa6, 0x7f, 0xa9, 0x9c, 0x75, 0x85, 0xf8, 0xd0,
-       0x82, 0x38, 0x11, 0xb1, 0xd5, 0x0e, 0x87, 0xf5, 0x7e, 0xc1, 0x8c, 0x9b,
-       0xf4, 0xcf, 0xa5, 0x15, 0xa2, 0xa5, 0x4a, 0xf0, 0xe1, 0xe2, 0x1c, 0xf1,
-       0x99, 0x3f, 0xe5, 0x5c, 0x8e, 0x53, 0xa7, 0x9f, 0xd2, 0xef, 0x91, 0x1a,
-       0x1d, 0xdb, 0xcb, 0x73, 0x12, 0xc3, 0x98, 0xd8, 0x41, 0x0d, 0xab, 0xaf,
-       0x36, 0x91, 0xd0, 0xc3, 0xf4, 0x4f, 0x21, 0x44, 0x2a, 0x82, 0xf4, 0x4b,
-       0x72, 0xad, 0xe2, 0x12, 0xe3, 0xaf, 0x4c, 0x50, 0xc1, 0x47, 0x5f, 0x13,
-       0xbf, 0xef, 0xd7, 0xcf, 0x2a, 0xa7, 0x67, 0x65, 0xdf, 0x6b, 0x10, 0x8c,
-       0x28, 0xb7, 0x30, 0xa2, 0xd0, 0xe2, 0x40, 0xb3, 0x2d, 0x6c, 0xf1, 0xd8,
-       0xe4, 0x4c, 0x51, 0x34, 0x74, 0x6f, 0xa2, 0x61, 0xc2, 0x67, 0x27, 0x1f,
-       0xfb, 0xe3, 0xaf, 0x91, 0x87, 0x59, 0x7c, 0x60, 0xba, 0xdf, 0x69, 0x02,
-       0xa6, 0xcb, 0x23, 0x7f, 0x76, 0xd9, 0x93, 0xc5, 0xca, 0x72, 0xe1, 0x6d,
-       0xff, 0xcf, 0x6c, 0xbd, 0x69, 0xfe, 0x79, 0x1c, 0xf9, 0x25, 0xaf, 0xe5,
-       0x79, 0xb1, 0x3b, 0xea, 0x45, 0xfc, 0x1f, 0xcd, 0xc7, 0x2d, 0xee, 0x76,
-       0x6c, 0x8e, 0x9c, 0xcb, 0x74, 0xf4, 0xff, 0xfd, 0x1c, 0x79, 0x9f, 0xc1,
-       0x36, 0x8d, 0x03, 0x64, 0xfd, 0xea, 0x3b, 0xe6, 0x2a, 0x6b, 0xae, 0xa7,
-       0x73, 0xed, 0x24, 0x56, 0x96, 0xb9, 0x28, 0xf8, 0x81, 0xd6, 0xa0, 0x9e,
-       0x46, 0xa9, 0xe0, 0x49, 0x44, 0xea, 0x91, 0xc5, 0x9a, 0xcf, 0x7d, 0x90,
-       0xdf, 0xbb, 0x78, 0xff, 0x35, 0xcd, 0xd1, 0xf4, 0x2c, 0xa4, 0x06, 0x6b,
-       0xe3, 0x5e, 0x35, 0xb8, 0x4f, 0xc3, 0x1f, 0x29, 0x54, 0xa6, 0xcc, 0xf6,
-       0x2a, 0x69, 0x93, 0xad, 0xc5, 0x42, 0x39, 0x6f, 0xe5, 0x49, 0xb2, 0x3a,
-       0x53, 0x4b, 0x9d, 0x11, 0xec, 0x12, 0xde, 0xb1, 0x80, 0x6b, 0x57, 0x31,
-       0x34, 0x26, 0x1c, 0xc1, 0x65, 0xf1, 0x20, 0xb5, 0xae, 0xce, 0xb3, 0x1e,
-       0xca, 0x5c, 0x62, 0x2c, 0xb6, 0xea, 0xb8, 0xd3, 0x86, 0xb7, 0xee, 0xb4,
-       0x85, 0x97, 0xfe, 0xd9, 0xfd, 0x8d, 0x77, 0xcf, 0x95, 0x77, 0x5f, 0xc8,
-       0xe6, 0x24, 0x2f, 0xeb, 0x96, 0xba, 0xe1, 0x72, 0xf2, 0xaa, 0x41, 0xc6,
-       0xf2, 0xcb, 0x83, 0xbf, 0x33, 0xbf, 0xed, 0x88, 0x78, 0xec, 0xa8, 0xf3,
-       0xf4, 0xe0, 0x9a, 0x99, 0xaa, 0xb2, 0xee, 0xcf, 0x95, 0xf7, 0x0d, 0x9c,
-       0xd2, 0x3f, 0xb9, 0xc8, 0xdd, 0x75, 0x26, 0xe3, 0x64, 0xdb, 0x32, 0x3b,
-       0xed, 0x82, 0x32, 0x33, 0xeb, 0x67, 0xd5, 0xb9, 0x6d, 0x4a, 0x3d, 0xb5,
-       0xa3, 0x0a, 0x47, 0xa8, 0xbf, 0x47, 0xc6, 0xc4, 0xff, 0xa9, 0x38, 0x4c,
-       0x3b, 0x3d, 0x54, 0xef, 0xeb, 0xbc, 0xcc, 0xb8, 0xf1, 0x43, 0xf2, 0xf9,
-       0x37, 0x34, 0x6f, 0xfb, 0x29, 0xc9, 0x29, 0x86, 0x1c, 0x38, 0x13, 0xbc,
-       0x66, 0xe5, 0x78, 0x63, 0x07, 0x54, 0x0c, 0x26, 0xb2, 0xf6, 0xfe, 0x0a,
-       0xed, 0xf8, 0xc6, 0x99, 0x03, 0x1d, 0x5b, 0x06, 0xc4, 0x3e, 0x1a, 0x2d,
-       0x3b, 0xba, 0x91, 0x13, 0x12, 0xbc, 0x16, 0xbb, 0x78, 0x42, 0x6a, 0x71,
-       0x46, 0x0a, 0x0e, 0xca, 0x77, 0x39, 0xf9, 0xae, 0xf8, 0xd8, 0x00, 0x63,
-       0x5b, 0x07, 0xed, 0xe7, 0x14, 0xe3, 0x0c, 0xce, 0x2d, 0x6c, 0x9a, 0xef,
-       0x30, 0xee, 0x1a, 0x42, 0x83, 0x7a, 0x02, 0x6b, 0xc8, 0x59, 0xc9, 0x67,
-       0xc6, 0x9a, 0xb1, 0xd3, 0x8a, 0x9b, 0x7c, 0xea, 0x0a, 0x65, 0x21, 0xd7,
-       0xdf, 0x8c, 0xee, 0x43, 0xb5, 0xe4, 0x35, 0xa6, 0xb9, 0x5a, 0xff, 0x73,
-       0x54, 0x0e, 0x74, 0x77, 0x56, 0x52, 0x1e, 0x9f, 0x86, 0x8c, 0x0e, 0x62,
-       0xfa, 0x86, 0x13, 0x4a, 0xc3, 0xda, 0x98, 0xf2, 0x6d, 0xee, 0x87, 0xe4,
-       0x41, 0x3c, 0x8c, 0xc7, 0x57, 0xd3, 0x9f, 0xfd, 0x0f, 0xec, 0x50, 0x95,
-       0x25, 0xb6, 0xb0, 0xf0, 0x41, 0xf8, 0xd5, 0xb0, 0x76, 0xea, 0xa2, 0x7d,
-       0x33, 0xbd, 0x4f, 0x23, 0xef, 0x89, 0x5f, 0x97, 0xb6, 0x72, 0xb6, 0xbe,
-       0x13, 0xc7, 0xd3, 0xd4, 0xeb, 0x68, 0x2f, 0x4e, 0xa4, 0x65, 0x4c, 0xe1,
-       0x53, 0x01, 0xc4, 0x06, 0xec, 0x18, 0xd5, 0x7d, 0x91, 0x72, 0xca, 0xa5,
-       0x38, 0xe4, 0x8d, 0xac, 0x51, 0x02, 0xe4, 0x6d, 0x69, 0x9c, 0xd9, 0xed,
-       0x6d, 0xaf, 0x67, 0x8c, 0x18, 0x1d, 0x83, 0xfa, 0xcc, 0xe2, 0x34, 0x4e,
-       0x0f, 0x3f, 0x04, 0xcf, 0x2c, 0xaf, 0x67, 0xb9, 0xd2, 0x82, 0xad, 0x63,
-       0xff, 0x51, 0x2e, 0xc9, 0xc3, 0xb1, 0x5b, 0x60, 0x50, 0xf6, 0xdb, 0xd1,
-       0x3f, 0x57, 0x6c, 0xbe, 0x67, 0xac, 0x14, 0xf3, 0xe8, 0x8f, 0x5e, 0xb2,
-       0xfc, 0x6c, 0xd6, 0x8e, 0x6a, 0xb4, 0x8f, 0xcc, 0xc7, 0x72, 0x3e, 0xfc,
-       0xab, 0xe5, 0xf5, 0x77, 0x66, 0x44, 0x15, 0x79, 0xc9, 0x73, 0x35, 0x28,
-       0x62, 0x3f, 0x3b, 0x72, 0xfe, 0xba, 0x42, 0xfb, 0xbf, 0xe6, 0x43, 0x56,
-       0x1f, 0x4f, 0xcd, 0x95, 0xa0, 0x60, 0x9b, 0x15, 0xd3, 0xcb, 0xba, 0x75,
-       0x7c, 0x16, 0x95, 0x9c, 0x86, 0x8a, 0x13, 0xba, 0xe0, 0x48, 0x0b, 0x6d,
-       0xd5, 0x89, 0x0d, 0x41, 0x9a, 0xa3, 0x95, 0xcf, 0x9f, 0xc4, 0xce, 0xe4,
-       0xbf, 0x9b, 0xcf, 0x51, 0x8f, 0x56, 0x92, 0xc3, 0x78, 0x88, 0x03, 0x4f,
-       0x85, 0x56, 0x93, 0x73, 0x72, 0xcd, 0x09, 0x07, 0x31, 0x48, 0x41, 0xa2,
-       0x89, 0xf6, 0x1f, 0x5a, 0x80, 0x09, 0xab, 0x7d, 0xd5, 0xdc, 0x6c, 0x0e,
-       0xf1, 0x83, 0xb9, 0xd9, 0x38, 0x50, 0xe4, 0xff, 0x9f, 0x91, 0xdf, 0x2b,
-       0xa6, 0xa7, 0x52, 0xe4, 0xe7, 0x80, 0x9b, 0x7e, 0x6b, 0x1f, 0xdb, 0x9c,
-       0xdb, 0xed, 0x40, 0xbf, 0xd6, 0x82, 0xfe, 0x31, 0x78, 0x3e, 0x65, 0x9b,
-       0x7f, 0x1a, 0x1e, 0x98, 0x9b, 0xe5, 0x0a, 0x6f, 0xa1, 0x3b, 0xfa, 0xbc,
-       0xb9, 0xac, 0x52, 0xd6, 0xeb, 0x84, 0x9b, 0xeb, 0xdd, 0x77, 0x3d, 0x9f,
-       0xb7, 0xde, 0x7c, 0xd8, 0xf2, 0x13, 0xbb, 0xe7, 0x4a, 0xbd, 0xec, 0xa7,
-       0x09, 0x13, 0x97, 0xf4, 0xa3, 0x56, 0x1c, 0x2e, 0xd8, 0xd0, 0x93, 0x90,
-       0xbd, 0x95, 0xb9, 0x6d, 0xcd, 0xc9, 0xe3, 0xff, 0x54, 0xdf, 0x3c, 0xef,
-       0x65, 0x39, 0x5d, 0x96, 0x5a, 0x75, 0x9e, 0xe3, 0x8b, 0x2e, 0x8b, 0x1e,
-       0x5b, 0xef, 0xfd, 0x24, 0xe5, 0xfd, 0xd9, 0x27, 0xd4, 0xdf, 0x73, 0x0c,
-       0xc9, 0xa9, 0xb4, 0xb0, 0x0f, 0xd3, 0x5c, 0xaf, 0x37, 0x78, 0x4e, 0xe0,
-       0x8f, 0xa8, 0xdb, 0x3a, 0xb6, 0x0f, 0x48, 0xbe, 0xd5, 0xa3, 0x38, 0xf6,
-       0xac, 0xc1, 0x25, 0xfa, 0xff, 0x9d, 0x96, 0x1e, 0x0a, 0xae, 0xc8, 0x3c,
-       0x04, 0x5b, 0xda, 0xe8, 0xc7, 0xad, 0xb3, 0x2e, 0x91, 0x9a, 0x70, 0xa7,
-       0xf2, 0x61, 0x7d, 0x27, 0x8e, 0x86, 0x0c, 0xb3, 0x5c, 0xf3, 0xaf, 0x65,
-       0xd0, 0x5f, 0x34, 0xd6, 0x58, 0x88, 0xf1, 0x90, 0xf0, 0x47, 0xb8, 0xd2,
-       0x69, 0xaf, 0x31, 0xc3, 0xae, 0xba, 0x5e, 0x4e, 0xe7, 0xb0, 0xd2, 0xf6,
-       0xc0, 0x5c, 0x89, 0x97, 0x92, 0x16, 0x8e, 0x7c, 0x1d, 0xf7, 0x59, 0x7b,
-       0xab, 0xd2, 0x87, 0x4a, 0xbe, 0xf7, 0x68, 0xe8, 0x4a, 0x54, 0x30, 0xc5,
-       0x5c, 0xd2, 0x1c, 0x6a, 0x50, 0xb7, 0xe3, 0x4e, 0x62, 0xd7, 0x12, 0x9c,
-       0xd1, 0xa5, 0xae, 0x61, 0x7c, 0xdb, 0x01, 0xa9, 0xc1, 0x1d, 0x0e, 0x6d,
-       0x8d, 0x2e, 0xc5, 0xbe, 0x01, 0x43, 0x71, 0x86, 0xbd, 0x91, 0x18, 0xb9,
-       0x10, 0xe3, 0x71, 0x2b, 0xdf, 0x27, 0xf9, 0x84, 0xc1, 0xc6, 0x4e, 0x6c,
-       0xd7, 0x0b, 0xd1, 0xa3, 0x47, 0x8a, 0xb6, 0x2c, 0xee, 0xc2, 0x7e, 0xbd,
-       0xd4, 0x98, 0x17, 0x36, 0x88, 0xe9, 0xda, 0x86, 0x24, 0xfc, 0x2d, 0x17,
-       0xc9, 0x39, 0x8e, 0xc3, 0xdb, 0xb1, 0xc4, 0x4e, 0xcc, 0xbd, 0xc7, 0xe1,
-       0x8a, 0x65, 0x9a, 0x90, 0x18, 0xab, 0x72, 0xed, 0xc8, 0x04, 0x11, 0x1f,
-       0xe3, 0x7e, 0x33, 0xae, 0x75, 0x64, 0x96, 0x92, 0x83, 0x8a, 0x1c, 0xed,
-       0xd4, 0xc5, 0x7a, 0x3c, 0xd3, 0x7a, 0xc1, 0x7c, 0xd2, 0x2f, 0xf8, 0x59,
-       0x8b, 0x67, 0x55, 0x9f, 0xc5, 0x29, 0x23, 0xb6, 0xaf, 0xb2, 0x0f, 0x3b,
-       0x75, 0xee, 0x55, 0xd3, 0xf3, 0xa8, 0xc8, 0x8d, 0xc1, 0x56, 0xf1, 0x6a,
-       0xe2, 0xa7, 0xfc, 0x2d, 0xb2, 0x13, 0x19, 0x9a, 0x58, 0xa7, 0x4b, 0x2e,
-       0xaf, 0x91, 0x36, 0xe3, 0xc6, 0xdb, 0xea, 0x8d, 0x7d, 0x78, 0x5a, 0xf7,
-       0xe9, 0x87, 0x20, 0x39, 0xbc, 0xff, 0xce, 0xe7, 0x24, 0xdf, 0xd2, 0x84,
-       0x17, 0x2b, 0xb2, 0xf1, 0x87, 0xc7, 0x56, 0x42, 0xdc, 0xcd, 0xfb, 0x11,
-       0xb9, 0xef, 0x4d, 0x46, 0xa8, 0xa7, 0x1b, 0x83, 0x53, 0x66, 0xa4, 0xd2,
-       0xe8, 0x94, 0xb3, 0x28, 0xee, 0xf0, 0xea, 0x17, 0xdd, 0xf5, 0xde, 0x8e,
-       0x29, 0x05, 0x38, 0x13, 0xa3, 0x1f, 0xb6, 0xfe, 0xbb, 0x47, 0xe9, 0xdb,
-       0x89, 0xa1, 0xe0, 0x1d, 0x68, 0x6f, 0x93, 0xb1, 0x9a, 0xd1, 0xbb, 0xd7,
-       0x34, 0x4b, 0x43, 0x3e, 0x35, 0x0d, 0x27, 0x56, 0x04, 0xed, 0xb8, 0xa0,
-       0x9a, 0x70, 0x84, 0xfe, 0xdd, 0xcc, 0xd0, 0x3f, 0x0e, 0xd3, 0x4e, 0x76,
-       0x50, 0xc7, 0xe4, 0x5d, 0x28, 0x3f, 0xed, 0x24, 0x4e, 0x3b, 0x39, 0x13,
-       0x9a, 0x9f, 0x7b, 0x57, 0x52, 0x23, 0xaf, 0x98, 0xc4, 0x92, 0x01, 0x15,
-       0x9f, 0xde, 0x33, 0x89, 0xd0, 0x50, 0x7e, 0xee, 0x62, 0x97, 0xf9, 0xf9,
-       0x4b, 0x6d, 0x50, 0xe6, 0x2e, 0x73, 0x94, 0xb5, 0xc8, 0xdf, 0xf9, 0x7b,
-       0xf9, 0xdf, 0xc4, 0xcf, 0x3a, 0xd1, 0x6a, 0xad, 0xed, 0x2f, 0x6a, 0xb2,
-       0x98, 0x91, 0x5f, 0x93, 0xeb, 0x96, 0xeb, 0x4b, 0xb7, 0x5c, 0x3f, 0xee,
-       0xbe, 0xf9, 0x7a, 0xfb, 0x9c, 0x9b, 0xaf, 0xf3, 0x36, 0x71, 0x43, 0xae,
-       0x1d, 0xba, 0x6f, 0xe2, 0x28, 0xd7, 0x3a, 0x63, 0xc1, 0x21, 0xf3, 0x42,
-       0x85, 0xcc, 0x45, 0x62, 0xd6, 0xec, 0x5c, 0x97, 0x65, 0xa6, 0xcf, 0xf5,
-       0xcd, 0x5c, 0x6d, 0xc0, 0x3a, 0xf7, 0x4b, 0xbb, 0xd1, 0xe4, 0x1d, 0xdf,
-       0xdc, 0x3b, 0x74, 0xd9, 0xb3, 0x88, 0xa5, 0xe1, 0x80, 0xd2, 0x1b, 0x33,
-       0xcc, 0x19, 0x5a, 0xb1, 0x21, 0xef, 0x4a, 0xa9, 0x7e, 0x03, 0x25, 0x7e,
-       0x6d, 0xc3, 0x0c, 0x5b, 0x17, 0x9c, 0x0b, 0xb5, 0x8e, 0x3f, 0x53, 0x92,
-       0x88, 0x67, 0xbc, 0x81, 0x43, 0x94, 0x55, 0x2c, 0x73, 0x95, 0x71, 0x75,
-       0x17, 0x9e, 0x09, 0x39, 0x8c, 0xe2, 0xb0, 0xd7, 0x3d, 0x5f, 0x59, 0x86,
-       0xed, 0x43, 0x7f, 0x8e, 0xf5, 0x49, 0xe1, 0xf8, 0xb5, 0xd8, 0x32, 0x66,
-       0xc3, 0x31, 0xea, 0x77, 0x2f, 0xc7, 0x21, 0xfe, 0xb9, 0x53, 0x90, 0xb3,
-       0x79, 0x8d, 0x8c, 0x91, 0x75, 0xeb, 0xb3, 0x75, 0xe8, 0x75, 0xac, 0x8f,
-       0x9a, 0xf8, 0x54, 0xa7, 0xef, 0xd1, 0x64, 0x7e, 0x12, 0x3b, 0xb7, 0x5a,
-       0x58, 0xfa, 0x48, 0x9c, 0xfb, 0x39, 0x4b, 0x6c, 0x75, 0x29, 0x6d, 0x56,
-       0xc1, 0x67, 0x52, 0x77, 0xac, 0xe4, 0x9c, 0xc9, 0x0d, 0xc7, 0xa3, 0x9b,
-       0x30, 0x1c, 0x35, 0xe4, 0x7d, 0xc0, 0xde, 0x1a, 0x7b, 0xe4, 0x85, 0x0a,
-       0xf2, 0xec, 0x84, 0xee, 0x6f, 0x3f, 0xa7, 0xc0, 0x53, 0x16, 0xf6, 0xd3,
-       0xcf, 0x7c, 0x89, 0xdf, 0xea, 0x92, 0x4f, 0xd3, 0x5d, 0xab, 0xa8, 0xef,
-       0x7b, 0x86, 0x02, 0x56, 0x7e, 0xe0, 0xef, 0x6e, 0x9b, 0xbf, 0x90, 0x1a,
-       0xb3, 0x9e, 0xcb, 0x35, 0xbe, 0x8e, 0x83, 0x69, 0x17, 0x1e, 0x8b, 0x7b,
-       0x94, 0x79, 0x7b, 0x54, 0xdc, 0x1f, 0xf7, 0x4e, 0x2c, 0xb1, 0x93, 0x7f,
-       0x2c, 0x9a, 0xc1, 0xfe, 0x14, 0xfc, 0x68, 0xa1, 0xf8, 0x82, 0xff, 0x0a,
-       0x63, 0x56, 0x84, 0x7d, 0xa2, 0xb4, 0x60, 0xb1, 0x57, 0x3d, 0x68, 0xf3,
-       0xb9, 0x7f, 0x8b, 0xad, 0xb0, 0x67, 0x56, 0xa3, 0x9b, 0xf3, 0x5f, 0x19,
-       0x97, 0x9a, 0x55, 0x03, 0x50, 0xd1, 0x8c, 0x1d, 0x87, 0xc4, 0x36, 0xe5,
-       0x9d, 0x75, 0x78, 0xaa, 0xc2, 0x2d, 0x77, 0xa0, 0xf8, 0x4b, 0x72, 0xed,
-       0x49, 0x89, 0x3f, 0x37, 0x94, 0xdb, 0x4c, 0xc6, 0x2f, 0xf3, 0x73, 0x35,
-       0x89, 0xa5, 0xd8, 0x3a, 0x20, 0xf9, 0x76, 0xe2, 0xb6, 0xce, 0x38, 0xa8,
-       0x42, 0x0b, 0x3c, 0x65, 0x93, 0x3a, 0xd0, 0x26, 0xf8, 0x62, 0x9b, 0x10,
-       0x88, 0x89, 0xcd, 0x6a, 0x6a, 0x07, 0x22, 0xa7, 0x25, 0xcf, 0x37, 0x2f,
-       0xe4, 0xe7, 0xbc, 0xfc, 0xbd, 0x55, 0x76, 0xdd, 0xf5, 0xca, 0xa8, 0x8a,
-       0x09, 0x35, 0x1b, 0x47, 0x1e, 0x4a, 0x6a, 0x6b, 0x0b, 0x6d, 0x72, 0x26,
-       0xe2, 0xb2, 0x19, 0xb1, 0xfa, 0x55, 0x6a, 0x51, 0xde, 0x8c, 0xbe, 0xbd,
-       0xef, 0xd2, 0x07, 0xc9, 0x18, 0xbf, 0x37, 0x9d, 0xd4, 0xcb, 0xe5, 0x6d,
-       0x1e, 0xdc, 0x17, 0x97, 0x3c, 0x69, 0x4f, 0x75, 0xf6, 0x4c, 0x87, 0x5c,
-       0x3b, 0xd0, 0xa1, 0x13, 0x64, 0x67, 0x7d, 0x61, 0x56, 0x59, 0x71, 0xe9,
-       0x97, 0x59, 0x9d, 0x49, 0xdc, 0x7d, 0x87, 0xd8, 0x78, 0xcf, 0x58, 0x83,
-       0x3b, 0xab, 0x77, 0x4d, 0xbc, 0x96, 0xbe, 0xb4, 0x7d, 0x9b, 0xe4, 0x34,
-       0x2e, 0xf9, 0xcc, 0x23, 0xa3, 0xd3, 0xdb, 0xe7, 0x73, 0x30, 0x55, 0x39,
-       0x4e, 0x95, 0xd7, 0x37, 0xa9, 0xf5, 0x45, 0x94, 0x87, 0xa3, 0x2d, 0xca,
-       0xaa, 0xa8, 0xd4, 0xfb, 0x6c, 0xd1, 0x12, 0xeb, 0x5c, 0xab, 0x89, 0xef,
-       0x85, 0xc6, 0x95, 0x6d, 0xd6, 0x99, 0x59, 0x43, 0x49, 0x36, 0x02, 0x95,
-       0xa3, 0xcd, 0xca, 0xf6, 0xe8, 0x27, 0xe6, 0x53, 0x56, 0x5d, 0x7d, 0xa6,
-       0x75, 0xbe, 0xa6, 0x70, 0xd4, 0x85, 0x8a, 0x83, 0x25, 0x28, 0x18, 0xd4,
-       0x30, 0x73, 0xf4, 0x41, 0xf2, 0x56, 0xe1, 0x3a, 0x46, 0x8b, 0xc3, 0x3a,
-       0xa3, 0xf6, 0xfa, 0xf5, 0x33, 0x6a, 0x0e, 0xe2, 0x82, 0x01, 0xeb, 0x1f,
-       0x63, 0xa5, 0xc3, 0x8c, 0x95, 0xcc, 0x25, 0xdf, 0x0b, 0x19, 0x3b, 0x66,
-       0xc2, 0x1b, 0xa8, 0xb4, 0x19, 0xa6, 0xe4, 0x6e, 0x5e, 0x21, 0x61, 0x5c,
-       0x53, 0x67, 0x60, 0x45, 0x9d, 0xbc, 0x9b, 0xe9, 0x30, 0xec, 0xe1, 0x2e,
-       0x1c, 0x0e, 0x75, 0xe1, 0x3d, 0xbd, 0x0b, 0x3b, 0xf5, 0x62, 0xa3, 0x3c,
-       0x5c, 0x2a, 0x67, 0xd9, 0x27, 0xa2, 0xd0, 0xf4, 0xb4, 0xa2, 0x9d, 0xba,
-       0x0a, 0xef, 0x3e, 0x9f, 0xe2, 0x35, 0x96, 0x29, 0x1a, 0x2e, 0x67, 0xbc,
-       0x53, 0xe5, 0xb4, 0x81, 0x6b, 0x99, 0x00, 0xa6, 0x88, 0xab, 0xc9, 0x31,
-       0x39, 0x4f, 0x52, 0x8b, 0x81, 0xb1, 0xff, 0x29, 0xdc, 0xc0, 0x20, 0x26,
-       0x59, 0x67, 0x2a, 0x9f, 0x93, 0x5a, 0xa6, 0x33, 0x98, 0xe3, 0x30, 0x86,
-       0xb2, 0xae, 0xb1, 0x0c, 0xd7, 0xe8, 0x9d, 0x7e, 0x98, 0xee, 0x64, 0x3c,
-       0x87, 0xd7, 0x6a, 0x60, 0xff, 0xbe, 0x1b, 0xf5, 0xc9, 0x19, 0x38, 0x56,
-       0x5f, 0x89, 0x02, 0x1c, 0x1d, 0xee, 0x20, 0xc7, 0xef, 0x6e, 0x2f, 0x67,
-       0x7c, 0x3a, 0x3a, 0xec, 0x44, 0x2a, 0x25, 0x39, 0x07, 0xab, 0x36, 0x39,
-       0xe9, 0xa0, 0x2d, 0xed, 0x4a, 0xa0, 0xbe, 0x26, 0xec, 0x4f, 0xd6, 0xd8,
-       0x55, 0xf6, 0x51, 0x85, 0x54, 0x5a, 0xe3, 0x27, 0xc0, 0x4f, 0x90, 0x9f,
-       0x26, 0x7c, 0x8f, 0x36, 0x5b, 0x41, 0xbc, 0x7d, 0x35, 0x5d, 0x86, 0x4f,
-       0x92, 0x5a, 0x40, 0xa7, 0x1e, 0x0c, 0x33, 0x46, 0x30, 0x2c, 0x39, 0x95,
-       0xe1, 0x2a, 0xed, 0xf4, 0xa5, 0x50, 0x19, 0xcc, 0xd4, 0xed, 0x62, 0x42,
-       0x79, 0xff, 0x25, 0x7f, 0x0e, 0x33, 0x5b, 0x5f, 0x3d, 0x92, 0x81, 0xf2,
-       0x78, 0x9d, 0x41, 0x7d, 0x61, 0x0c, 0xbb, 0x48, 0x6a, 0x29, 0x5a, 0xe7,
-       0x25, 0x7b, 0xb1, 0x51, 0x13, 0xf6, 0x7a, 0x6a, 0xec, 0x1a, 0xce, 0xa5,
-       0x27, 0x11, 0x4f, 0xca, 0xbb, 0x6d, 0xa2, 0xc7, 0xef, 0x9b, 0x46, 0x85,
-       0x9c, 0xc9, 0xe8, 0x44, 0x5c, 0xab, 0x64, 0x1c, 0x24, 0xef, 0x3e, 0x1e,
-       0x0e, 0x45, 0x63, 0xa5, 0xf2, 0x9e, 0xf0, 0x92, 0x97, 0x43, 0xde, 0x96,
-       0x7e, 0xc5, 0x78, 0xa8, 0xc4, 0x7a, 0xaf, 0xa3, 0x8b, 0x58, 0xac, 0xa9,
-       0x4e, 0xc5, 0xdb, 0xb4, 0x05, 0x01, 0x1c, 0x4b, 0x8b, 0xdc, 0x28, 0xa7,
-       0xb1, 0xac, 0xdc, 0x6e, 0x9c, 0x9d, 0xce, 0xea, 0xc1, 0xc6, 0xa8, 0x83,
-       0xdf, 0xb2, 0xf7, 0x72, 0xae, 0x95, 0x3e, 0xc2, 0xda, 0xff, 0x9f, 0xdf,
-       0x91, 0x3b, 0xbf, 0xda, 0x5e, 0x19, 0x76, 0x05, 0x97, 0xc7, 0xed, 0x9f,
-       0xc8, 0xfb, 0xc8, 0x4f, 0x34, 0xca, 0x7b, 0x6b, 0xae, 0xe0, 0xe3, 0xa3,
-       0xae, 0xe0, 0xda, 0xf8, 0x51, 0x85, 0xf2, 0xda, 0x57, 0x63, 0x77, 0x05,
-       0x1f, 0xb9, 0xd1, 0x9e, 0xfb, 0xde, 0x85, 0xb1, 0x50, 0xb1, 0xa1, 0x86,
-       0xc5, 0xa7, 0x7b, 0x03, 0x9f, 0x28, 0x96, 0x2f, 0x37, 0x4a, 0xe8, 0x63,
-       0x9f, 0xcf, 0x8c, 0x9b, 0xed, 0xb3, 0x04, 0xab, 0xec, 0x1c, 0xeb, 0x2a,
-       0x5e, 0x49, 0xdd, 0x78, 0xae, 0x85, 0xcf, 0x15, 0xf3, 0xb9, 0x92, 0xb0,
-       0xc4, 0x8d, 0x5e, 0x7d, 0x95, 0xa2, 0x79, 0x8a, 0x14, 0xa9, 0x87, 0x69,
-       0xf8, 0x55, 0xfa, 0x9f, 0xef, 0x90, 0x78, 0xb7, 0x67, 0xac, 0x12, 0x6b,
-       0x76, 0x9b, 0x4b, 0xe6, 0x2d, 0x34, 0x97, 0xa4, 0x43, 0x31, 0xf3, 0xa5,
-       0x6a, 0xd9, 0x4f, 0xa9, 0xf1, 0xc9, 0x33, 0x9a, 0xea, 0x63, 0x9c, 0xf9,
-       0x4d, 0x7d, 0xbb, 0xbc, 0xa3, 0x07, 0x79, 0x7f, 0xa9, 0x90, 0x63, 0x9c,
-       0x4c, 0x89, 0x8e, 0x6c, 0x6d, 0x77, 0x31, 0x16, 0x95, 0x77, 0x67, 0x0f,
-       0x73, 0xef, 0x0f, 0xa6, 0xfe, 0xd7, 0x1d, 0x72, 0x76, 0x5d, 0xce, 0x06,
-       0x00, 0xff, 0x1f, 0x17, 0x23, 0xca, 0x76, 0xf8, 0x78, 0x00, 0x00, 0x00 };
-
-static const u32 bnx2_RXP_b09FwData[(0x0/4) + 1] = { 0x0 };
-static const u32 bnx2_RXP_b09FwRodata[(0x124/4) + 1] = {
-       0x5f865437, 0xe4ac62cc, 0x50103a45, 0x36621985, 0xbf14c0e8, 0x1bc27a1e,
-       0x84f4b556, 0x094ea6fe, 0x7dda01e7, 0xc04d7481, 0x80080100, 0x80080080,
-       0x80080000, 0x08004fbc, 0x08004fbc, 0x08005098, 0x0800506c, 0x08005050,
-       0x08004f8c, 0x08004f8c, 0x08004f8c, 0x08004fc4, 0x080072ac, 0x080072f8,
-       0x080072b8, 0x080071dc, 0x080072b8, 0x080072e8, 0x080072b8, 0x080071dc,
-       0x080071dc, 0x080071dc, 0x080071dc, 0x080071dc, 0x080071dc, 0x080071dc,
-       0x080071dc, 0x080071dc, 0x080071dc, 0x080072d8, 0x080072c8, 0x080071dc,
-       0x080071dc, 0x080071dc, 0x080071dc, 0x080071dc, 0x080071dc, 0x080071dc,
-       0x080071dc, 0x080071dc, 0x080071dc, 0x080071dc, 0x080071dc, 0x080072c8,
-       0x0800787c, 0x08007748, 0x08007844, 0x08007748, 0x08007814, 0x08007630,
-       0x08007748, 0x08007748, 0x08007748, 0x08007748, 0x08007748, 0x08007748,
-       0x08007748, 0x08007748, 0x08007748, 0x08007748, 0x08007748, 0x08007748,
-       0x08007770, 0x00000000 };
-
-static struct fw_info bnx2_rxp_fw_09 = {
-       /* Firmware version: 4.6.15 */
-       .ver_major                      = 0x4,
-       .ver_minor                      = 0x6,
-       .ver_fix                        = 0xf,
-
-       .start_addr                     = 0x080031d8,
-
-       .text_addr                      = 0x08000000,
-       .text_len                       = 0x78f4,
-       .text_index                     = 0x0,
-       .gz_text                        = bnx2_RXP_b09FwText,
-       .gz_text_len                    = sizeof(bnx2_RXP_b09FwText),
-
-       .data_addr                      = 0x00000000,
-       .data_len                       = 0x0,
-       .data_index                     = 0x0,
-       .data                           = bnx2_RXP_b09FwData,
-
-       .sbss_addr                      = 0x08007a40,
-       .sbss_len                       = 0x58,
-       .sbss_index                     = 0x0,
-
-       .bss_addr                       = 0x08007a98,
-       .bss_len                        = 0x20,
-       .bss_index                      = 0x0,
-
-       .rodata_addr                    = 0x080078f4,
-       .rodata_len                     = 0x124,
-       .rodata_index                   = 0x0,
-       .rodata                         = bnx2_RXP_b09FwRodata,
-};
-
-static u8 bnx2_xi_rv2p_proc1[] = {
-       /* Date:        01/27/2009 19:01 */
-#define XI_RV2P_PROC1_POST_WAIT_TIMEOUT_MSK    0xffff
-       0xa5, 0x56, 0xdd, 0x6b, 0x1c, 0x55, 0x14, 0x3f, 0x33, 0xbb, 0x33, 0xb3,
-       0xd9, 0x9d, 0xd9, 0x5d, 0x9a, 0x34, 0x8e, 0xb1, 0x34, 0xdb, 0x20, 0xca,
-       0xa6, 0x13, 0xdd, 0x68, 0x1f, 0x04, 0x03, 0x2d, 0x01, 0x29, 0x98, 0xe2,
-       0x43, 0xa0, 0x52, 0x8a, 0x60, 0x5c, 0xb4, 0x08, 0xf6, 0x2f, 0x10, 0xc1,
-       0x21, 0x31, 0x11, 0xc4, 0xaf, 0x7d, 0xe8, 0x42, 0x02, 0x6a, 0x40, 0x50,
-       0x09, 0x11, 0x77, 0xdf, 0x24, 0x16, 0x7c, 0x68, 0xf1, 0x41, 0xda, 0xa7,
-       0x16, 0xd4, 0x97, 0x46, 0x11, 0xbf, 0x5e, 0x04, 0xd1, 0xc7, 0x9a, 0xf1,
-       0x9e, 0x8f, 0xbb, 0x3b, 0x73, 0xb3, 0x9b, 0x14, 0x5c, 0x48, 0x7e, 0x9c,
-       0x7b, 0xcf, 0x39, 0xf7, 0x7c, 0x9f, 0xa9, 0x02, 0x80, 0x0d, 0x71, 0x77,
-       0x52, 0x21, 0x58, 0xb9, 0x5c, 0x01, 0x01, 0x60, 0x1b, 0xf8, 0xe7, 0xf8,
-       0x44, 0xc7, 0x8f, 0x0a, 0x7d, 0x92, 0x21, 0x3e, 0x59, 0x55, 0xff, 0x2f,
-       0xc3, 0xe9, 0x1a, 0x62, 0x0e, 0x4e, 0x9f, 0x40, 0x7c, 0x12, 0xbe, 0xae,
-       0x85, 0x0a, 0xff, 0x4d, 0x20, 0x46, 0xfa, 0x68, 0xe7, 0xcb, 0x6e, 0x89,
-       0xf4, 0xef, 0x8a, 0xfc, 0xf7, 0x39, 0xc6, 0x27, 0xa2, 0x02, 0xeb, 0x11,
-       0x84, 0x99, 0x2a, 0xc1, 0xed, 0x16, 0xd2, 0xe7, 0xcf, 0x83, 0x8b, 0x7a,
-       0xde, 0x53, 0x0c, 0x48, 0x1f, 0xb3, 0xe2, 0x19, 0xb1, 0xcb, 0x66, 0xbe,
-       0x3b, 0xad, 0x0a, 0x9e, 0xc3, 0x8f, 0xf3, 0x48, 0xdf, 0x57, 0x7c, 0xa3,
-       0x85, 0x38, 0x0e, 0x97, 0x0a, 0x3e, 0xfb, 0x53, 0x17, 0x9c, 0x64, 0xf5,
-       0xbb, 0xd3, 0x28, 0xaf, 0x64, 0xa6, 0x45, 0xbf, 0x83, 0xfa, 0x7f, 0x4f,
-       0x58, 0x3f, 0xea, 0x4d, 0xeb, 0xbb, 0x5f, 0xe9, 0xc3, 0x73, 0x57, 0xec,
-       0x73, 0x0d, 0xfb, 0x5c, 0x65, 0x0f, 0xca, 0xaf, 0x00, 0xfb, 0x39, 0xaa,
-       0xde, 0x45, 0xfa, 0xaf, 0xbe, 0xbe, 0x2e, 0xa2, 0x6f, 0xb1, 0xbc, 0xfa,
-       0x13, 0xfb, 0x59, 0xee, 0x35, 0x25, 0xa7, 0xe3, 0x92, 0xb5, 0xd3, 0x8b,
-       0xb4, 0x7f, 0x3a, 0xfe, 0xc8, 0x7f, 0x2b, 0xc9, 0xf2, 0xc3, 0x21, 0xfc,
-       0x37, 0x15, 0x7f, 0x56, 0x2f, 0x9f, 0x7f, 0xdb, 0x3f, 0x1f, 0x18, 0x1f,
-       0xc7, 0x88, 0xcf, 0x75, 0xf1, 0xe7, 0x29, 0x78, 0xd0, 0x0e, 0x89, 0x2f,
-       0x0f, 0x21, 0xc5, 0x09, 0x62, 0xc4, 0xe3, 0x82, 0x2f, 0x09, 0x7e, 0x2e,
-       0xb8, 0x2d, 0x08, 0xff, 0x13, 0xff, 0x1e, 0x72, 0x7e, 0x54, 0xf0, 0x01,
-       0xe3, 0xfc, 0x9a, 0xe0, 0x23, 0x86, 0xfc, 0x71, 0x8b, 0xf1, 0x0f, 0xa1,
-       0xe7, 0x85, 0x7e, 0xc6, 0x90, 0x8f, 0x81, 0xe3, 0x63, 0x19, 0x71, 0xfb,
-       0x58, 0xea, 0x19, 0xf3, 0x2f, 0xf7, 0x75, 0xcd, 0x57, 0xa0, 0x38, 0xc2,
-       0x74, 0x9a, 0xff, 0x83, 0x03, 0xf8, 0x99, 0x6d, 0xbe, 0x3e, 0x48, 0xae,
-       0x9d, 0xb0, 0x1d, 0x57, 0x44, 0xbe, 0xd8, 0xb9, 0x3a, 0xa4, 0x7f, 0xe6,
-       0xa2, 0x41, 0xfd, 0x52, 0x17, 0x3f, 0xbe, 0x92, 0xba, 0xdc, 0xb1, 0x9a,
-       0x51, 0xc8, 0x79, 0xa5, 0x3c, 0x06, 0x52, 0x8f, 0x23, 0x46, 0x3d, 0x7b,
-       0xaa, 0x9e, 0xa5, 0xae, 0xea, 0xba, 0xbe, 0xb2, 0x75, 0xc5, 0xf5, 0xe1,
-       0x1a, 0xf5, 0x11, 0x1f, 0x12, 0x97, 0x92, 0xe1, 0xdf, 0xab, 0x09, 0x86,
-       0x18, 0x7f, 0xb6, 0xcd, 0xb8, 0xc1, 0x18, 0xf9, 0x6e, 0x1e, 0xf1, 0x94,
-       0xff, 0x0d, 0xeb, 0x9b, 0x04, 0x44, 0x3f, 0x6c, 0x53, 0x1f, 0xe5, 0xa1,
-       0xed, 0x2a, 0x9b, 0xe1, 0x6e, 0xf2, 0x0e, 0xf3, 0x4d, 0x38, 0x37, 0x09,
-       0xc3, 0x8d, 0x1b, 0xcc, 0xff, 0x5d, 0x8d, 0xed, 0x7e, 0x56, 0xe6, 0x53,
-       0xff, 0xa7, 0xef, 0xa5, 0xff, 0x2a, 0x48, 0xff, 0x63, 0xc5, 0x5d, 0xfd,
-       0x8e, 0xc8, 0xbd, 0xa2, 0xeb, 0x9b, 0x7f, 0xcb, 0x6e, 0x95, 0xfc, 0x7d,
-       0xab, 0x4b, 0xe4, 0x98, 0xbf, 0x56, 0xa5, 0xdb, 0xb7, 0xbb, 0xda, 0x1f,
-       0xe9, 0xf3, 0x69, 0xed, 0x3f, 0xcb, 0x07, 0x72, 0x6d, 0x3b, 0x3a, 0x7e,
-       0x7c, 0x5e, 0x24, 0x3b, 0x46, 0x3b, 0x9b, 0x46, 0x3e, 0x6b, 0xf7, 0x34,
-       0x07, 0xff, 0x4c, 0xfa, 0x73, 0x30, 0x1d, 0x1f, 0x3d, 0x07, 0x0b, 0xb0,
-       0x74, 0xb6, 0x42, 0xf6, 0x94, 0x5d, 0x56, 0x73, 0xa1, 0xc2, 0xf8, 0x62,
-       0x91, 0xf1, 0x97, 0x22, 0xc6, 0x2f, 0x49, 0x2e, 0x95, 0x98, 0x7e, 0x21,
-       0x40, 0xbd, 0xa3, 0xea, 0x61, 0x2d, 0xaf, 0xed, 0x3a, 0xc8, 0x1e, 0x7c,
-       0x5f, 0xbf, 0xa3, 0xed, 0xd0, 0xef, 0x65, 0xeb, 0x65, 0xf8, 0xbb, 0x8c,
-       0x4d, 0x3b, 0x1b, 0x87, 0xfc, 0x2c, 0xe3, 0x46, 0x03, 0xed, 0xba, 0x9a,
-       0xf4, 0xfa, 0xb0, 0x5e, 0x25, 0xbe, 0x29, 0x60, 0x7a, 0x51, 0xea, 0x73,
-       0x91, 0xfa, 0xa7, 0xac, 0xae, 0x10, 0x27, 0x20, 0xa6, 0xbd, 0x60, 0x17,
-       0xaf, 0x53, 0xbd, 0xe4, 0xe4, 0x5c, 0xe5, 0x67, 0x2a, 0xdb, 0x77, 0xbb,
-       0x5c, 0x8f, 0x85, 0x6c, 0x1d, 0x3f, 0x9c, 0x9a, 0xaf, 0x69, 0x7f, 0xad,
-       0x5e, 0xfd, 0xee, 0xcf, 0x53, 0x36, 0x1f, 0xb7, 0x5b, 0xda, 0x7f, 0x73,
-       0x6f, 0x30, 0x7b, 0xdc, 0x90, 0x40, 0xcd, 0xca, 0xfd, 0x8c, 0xd9, 0x2f,
-       0x83, 0xfa, 0xad, 0x6a, 0xf4, 0xcf, 0x11, 0xe9, 0xb7, 0x91, 0xce, 0x66,
-       0xeb, 0xb0, 0x7e, 0x46, 0xfe, 0x2f, 0x64, 0x9e, 0x54, 0xa1, 0xb7, 0x97,
-       0xb6, 0x91, 0x2e, 0x81, 0xf4, 0x61, 0x27, 0xce, 0x65, 0xf2, 0x70, 0x06,
-       0x06, 0xce, 0x95, 0x0f, 0x45, 0x4f, 0x43, 0xe6, 0x8b, 0x9b, 0xda, 0x5f,
-       0xc4, 0x5e, 0x06, 0xb2, 0xc3, 0x33, 0xe6, 0xc3, 0xdd, 0x3d, 0xdd, 0xef,
-       0xcb, 0xee, 0x20, 0x7f, 0x3d, 0xf8, 0xcd, 0xe7, 0xfa, 0x68, 0x52, 0xbf,
-       0x38, 0x63, 0x97, 0x77, 0x32, 0x79, 0x02, 0x38, 0xa1, 0xf7, 0x52, 0xda,
-       0xae, 0xf4, 0x5e, 0x45, 0x7d, 0x21, 0x34, 0x67, 0xd3, 0xfb, 0xf5, 0xfd,
-       0x44, 0xcf, 0xf5, 0x80, 0xfa, 0xa4, 0xbc, 0xaf, 0xef, 0xf4, 0x1c, 0xad,
-       0x45, 0xe9, 0xfe, 0x1d, 0x93, 0xb9, 0x69, 0x03, 0xcf, 0xcd, 0x92, 0xe9,
-       0xa7, 0xda, 0xb7, 0x83, 0xf3, 0xc5, 0xfe, 0xde, 0xd9, 0xbb, 0xb7, 0x39,
-       0x7b, 0x58, 0xde, 0x8b, 0x46, 0xde, 0x6f, 0xf5, 0xe2, 0x68, 0x3b, 0x83,
-       0xbe, 0x2b, 0x4e, 0x29, 0xbd, 0xc2, 0x2f, 0x73, 0xe1, 0x79, 0x9a, 0x77,
-       0x67, 0x84, 0x6f, 0x2e, 0x55, 0xaf, 0x83, 0xf8, 0x62, 0xa3, 0xae, 0x0b,
-       0xfb, 0xf8, 0xb2, 0x73, 0x4c, 0xfb, 0xb3, 0xb5, 0xc5, 0xf5, 0x71, 0x31,
-       0xd5, 0xaf, 0xe9, 0xf9, 0x3f, 0x22, 0xf5, 0xa0, 0xf8, 0xc8, 0x8f, 0x9d,
-       0xbd, 0xfe, 0xbe, 0x48, 0xd7, 0xd7, 0xa2, 0xd4, 0xb5, 0x3d, 0xb7, 0x49,
-       0x7d, 0xe4, 0x35, 0x7f, 0x35, 0xf2, 0x35, 0x1b, 0x61, 0x9d, 0xbc, 0x0e,
-       0x5d, 0xb1, 0xf3, 0x87, 0x8c, 0xbd, 0x81, 0xf4, 0xa1, 0x0b, 0x9f, 0x75,
-       0xb5, 0x5f, 0x7c, 0x5d, 0x8b, 0x18, 0x3f, 0x8d, 0xa4, 0x9f, 0x7a, 0xfe,
-       0xe1, 0xbb, 0x0b, 0xf2, 0x6e, 0x15, 0x3e, 0xe9, 0xed, 0x03, 0x9c, 0x6f,
-       0x1e, 0x34, 0x64, 0x7e, 0x2e, 0xc9, 0x1c, 0xfb, 0xa9, 0xc8, 0x73, 0xb2,
-       0xb9, 0x40, 0xf5, 0x0a, 0xe3, 0x32, 0xcf, 0x9a, 0x01, 0xd3, 0x13, 0x01,
-       0x7f, 0x07, 0x37, 0x3c, 0x9f, 0xf8, 0x26, 0x02, 0xc6, 0xf1, 0x12, 0xca,
-       0x85, 0xf0, 0xf3, 0x39, 0x62, 0x8f, 0xd6, 0x7d, 0xde, 0x73, 0xeb, 0x37,
-       0x64, 0x9e, 0x54, 0x74, 0xdc, 0xc4, 0xcf, 0xc7, 0xf1, 0x7c, 0x5c, 0xcd,
-       0x2d, 0xa6, 0xb9, 0x1e, 0xfc, 0x5e, 0xfd, 0x7f, 0x24, 0x59, 0xa9, 0x55,
-       0xd2, 0x71, 0xd6, 0xfd, 0xf6, 0xae, 0x11, 0x5f, 0x9d, 0x9f, 0x87, 0x12,
-       0x3d, 0xe7, 0xa7, 0xce, 0xa2, 0xbd, 0x15, 0x28, 0x7b, 0x5c, 0x3f, 0x8c,
-       0x4a, 0x8f, 0xed, 0xa1, 0xd8, 0xb1, 0x55, 0x99, 0x9b, 0xab, 0xcb, 0xa4,
-       0xe6, 0xdc, 0xaa, 0x3e, 0x9f, 0xa7, 0x86, 0x59, 0xdc, 0xba, 0x46, 0xe7,
-       0xe5, 0x6e, 0x8e, 0xcf, 0xbd, 0x05, 0x1d, 0xaf, 0x0a, 0xf9, 0xdf, 0xe6,
-       0x78, 0x3d, 0x77, 0x85, 0xf1, 0x22, 0x3c, 0x4d, 0x58, 0x6c, 0x4b, 0x9f,
-       0xaf, 0xfb, 0x05, 0x42, 0xa0, 0x78, 0xd9, 0x8f, 0xf1, 0x7e, 0x77, 0x64,
-       0x2f, 0x17, 0x52, 0xf9, 0x33, 0xf7, 0xe4, 0x41, 0x79, 0x3c, 0x62, 0xec,
-       0x0b, 0xbd, 0xd7, 0x2d, 0xe3, 0xfb, 0x36, 0x30, 0xea, 0xf1, 0xe5, 0x21,
-       0xf5, 0x08, 0x43, 0xea, 0xd9, 0x9c, 0x6f, 0x4b, 0xd2, 0xef, 0x79, 0x70,
-       0x72, 0xb4, 0x78, 0xfd, 0xfc, 0x0a, 0xe5, 0xd5, 0x5e, 0xe5, 0xef, 0x1a,
-       0xdf, 0x59, 0xb3, 0x28, 0x5e, 0xfe, 0x1a, 0xf3, 0xe5, 0xf9, 0x3c, 0xd4,
-       0xf8, 0xe6, 0x0a, 0xf7, 0x95, 0x0d, 0xff, 0x01, 0xd7, 0x0e, 0x41, 0x60,
-       0x88, 0x0d, 0x00, 0x00, 0x00 };
-
-static u8 bnx2_xi_rv2p_proc2[] = {
-       /* Date:        01/27/2009 19:01 */
-#define XI_RV2P_PROC2_MAX_BD_PAGE_LOC   5
-#define XI_RV2P_PROC2_BD_PAGE_SIZE_MSK 0xffff
-#define XI_RV2P_PROC2_BD_PAGE_SIZE     ((BCM_PAGE_SIZE / 16) - 1)
-       0xad, 0x57, 0x4d, 0x68, 0x5c, 0x55, 0x14, 0xbe, 0x33, 0x6f, 0x7e, 0xde,
-       0xcc, 0xbc, 0xc9, 0x4c, 0x93, 0x38, 0x99, 0x26, 0xc5, 0xa4, 0x09, 0x8d,
-       0x4e, 0x9d, 0x69, 0x27, 0x3f, 0x44, 0xb0, 0x42, 0x43, 0x90, 0xb4, 0xb5,
-       0x4a, 0xd3, 0x28, 0xc5, 0x5d, 0x92, 0xa9, 0x1d, 0x8c, 0x69, 0x23, 0x18,
-       0x70, 0xe1, 0xc6, 0x47, 0x5a, 0xd3, 0xcd, 0x2c, 0x4c, 0x31, 0x3f, 0x8a,
-       0xa0, 0xd8, 0x9d, 0xb8, 0x19, 0x50, 0xdb, 0x8a, 0x22, 0x14, 0x0c, 0x52,
-       0x17, 0x45, 0xb0, 0x58, 0x37, 0x8a, 0x58, 0x1b, 0x1a, 0x11, 0x8d, 0x8b,
-       0xae, 0x24, 0xe3, 0xbd, 0xe7, 0x3b, 0xf7, 0xcd, 0xbc, 0xc9, 0x8b, 0x89,
-       0x62, 0x36, 0x27, 0xe7, 0xbe, 0x73, 0xcf, 0x39, 0xf7, 0x9c, 0xef, 0x7c,
-       0xf7, 0x4e, 0x52, 0x08, 0x11, 0x10, 0x76, 0xb9, 0x5d, 0x4a, 0xe1, 0x33,
-       0x0c, 0x53, 0x8a, 0x8a, 0x10, 0xc1, 0xb4, 0xd2, 0x85, 0x5f, 0xf0, 0xdf,
-       0xfe, 0x24, 0x89, 0x6f, 0xcb, 0x96, 0x32, 0x13, 0x76, 0x46, 0xd9, 0x45,
-       0xc4, 0xb3, 0xfe, 0x88, 0x94, 0x87, 0xc5, 0x68, 0x06, 0xf6, 0x01, 0xa1,
-       0xa4, 0xb4, 0xb5, 0x95, 0xdc, 0xc5, 0xf2, 0x38, 0xcb, 0xc7, 0x7d, 0x90,
-       0x87, 0x58, 0x3e, 0x56, 0x27, 0x05, 0xdb, 0x3d, 0xcd, 0xfa, 0x00, 0x4b,
-       0x8b, 0xd7, 0x47, 0x59, 0xff, 0x90, 0xa5, 0xcd, 0xeb, 0x61, 0xd6, 0x1f,
-       0xf0, 0xa9, 0x25, 0xe4, 0xab, 0xf4, 0xb5, 0x4a, 0x55, 0xb7, 0xe0, 0x3e,
-       0x83, 0x73, 0x3c, 0xd3, 0xa1, 0xbe, 0xdf, 0xad, 0xb8, 0xed, 0xef, 0x38,
-       0xfa, 0xac, 0xa1, 0xf4, 0x1f, 0xa5, 0xee, 0x53, 0x6a, 0x73, 0x0a, 0xdb,
-       0x9b, 0xd3, 0x25, 0xb5, 0xdf, 0x10, 0xcb, 0xf3, 0x26, 0x55, 0x67, 0xd1,
-       0x82, 0x6e, 0x97, 0x4d, 0xaa, 0xcb, 0xa2, 0xc5, 0xfe, 0x58, 0xee, 0x8e,
-       0x23, 0xde, 0xa9, 0x0e, 0xd4, 0xed, 0xbb, 0x47, 0x60, 0x67, 0x27, 0x74,
-       0x61, 0xf1, 0xbd, 0x5d, 0xf0, 0xf7, 0x29, 0xa5, 0xaf, 0xfb, 0x9a, 0x7c,
-       0xa8, 0x47, 0x98, 0xad, 0xfc, 0x41, 0xb5, 0xbe, 0xb7, 0x7f, 0x71, 0x1e,
-       0xf6, 0x63, 0x1d, 0x58, 0x7f, 0x30, 0xab, 0xfc, 0x85, 0x84, 0xcd, 0x52,
-       0xe4, 0x28, 0x2f, 0x9f, 0x9d, 0x73, 0xfb, 0xff, 0x61, 0x1e, 0xda, 0x44,
-       0x1c, 0x7e, 0xa3, 0x2e, 0xbf, 0xa9, 0x4d, 0x7e, 0x6f, 0x47, 0x6a, 0xfd,
-       0x37, 0xf8, 0xe0, 0x3f, 0xba, 0xad, 0xff, 0x42, 0x1c, 0xb2, 0x29, 0xeb,
-       0x15, 0x27, 0xb2, 0x4d, 0xfe, 0x2f, 0x6e, 0xeb, 0xff, 0x55, 0x27, 0x7f,
-       0xbd, 0x5e, 0x5f, 0x3f, 0x52, 0x3f, 0xb0, 0x0f, 0xf2, 0xf6, 0xfd, 0xfa,
-       0xdc, 0x9c, 0x9f, 0x01, 0x39, 0x98, 0x25, 0x51, 0x3a, 0xcd, 0x00, 0x1f,
-       0xee, 0x56, 0x71, 0x1b, 0x45, 0xc0, 0xaf, 0xfc, 0x1d, 0x30, 0x43, 0xd7,
-       0xb0, 0xfe, 0x1c, 0xf7, 0xe9, 0x79, 0x3e, 0xc8, 0x2f, 0x51, 0x55, 0x98,
-       0x4a, 0xa5, 0x18, 0x63, 0xff, 0xdc, 0x67, 0x3b, 0x86, 0xfd, 0x2b, 0x96,
-       0xca, 0xef, 0x86, 0xc4, 0x8d, 0x57, 0xdf, 0x8d, 0x7f, 0xe8, 0x3b, 0xf6,
-       0xef, 0x7a, 0x08, 0x5f, 0xdf, 0x28, 0x42, 0x6f, 0xbb, 0x9c, 0xa4, 0xfa,
-       0x2c, 0x97, 0xbd, 0x70, 0x52, 0xef, 0x5f, 0xce, 0x71, 0x02, 0x71, 0x44,
-       0xa7, 0x49, 0xc9, 0xa1, 0xae, 0xd2, 0x26, 0xe7, 0x59, 0x27, 0xb1, 0xb8,
-       0x4f, 0xcf, 0x05, 0xf4, 0x62, 0x88, 0x44, 0x7a, 0x62, 0x4e, 0x9d, 0x33,
-       0x21, 0xc6, 0xfd, 0x2a, 0x61, 0x3f, 0xd7, 0xc5, 0x30, 0xad, 0x4f, 0x60,
-       0xff, 0x45, 0xbb, 0x45, 0x67, 0x28, 0xf6, 0x61, 0x5f, 0x73, 0x2f, 0xe4,
-       0x42, 0x6f, 0x50, 0x89, 0x6c, 0x71, 0x86, 0xd4, 0x03, 0x3f, 0xf7, 0x98,
-       0x64, 0x67, 0xe7, 0xf4, 0xdc, 0xe9, 0xbe, 0xa9, 0x3a, 0xbd, 0x52, 0x9d,
-       0xbf, 0x2e, 0xd4, 0xf5, 0xee, 0x3e, 0x65, 0x2f, 0x8b, 0xdb, 0x89, 0x38,
-       0xa3, 0x93, 0x5e, 0x73, 0xfb, 0x92, 0x53, 0xdf, 0x9d, 0xf6, 0x7f, 0x90,
-       0xea, 0x30, 0xc8, 0xf5, 0xe8, 0x60, 0x9c, 0xed, 0xf1, 0xc0, 0x59, 0x82,
-       0xfe, 0x5f, 0x1b, 0x4a, 0x52, 0x3d, 0x4f, 0x60, 0xfd, 0xd2, 0xf0, 0x15,
-       0xf4, 0xe3, 0x18, 0xd5, 0x41, 0x44, 0x2f, 0x7c, 0x8c, 0x5d, 0x13, 0x34,
-       0xdf, 0xe7, 0xfa, 0x8b, 0x9f, 0x42, 0x2f, 0x18, 0x4a, 0x9f, 0xb2, 0x4e,
-       0x5f, 0x85, 0x7d, 0xf0, 0x7c, 0x92, 0xea, 0x77, 0x82, 0xa3, 0x1c, 0x33,
-       0x88, 0x4f, 0x4a, 0xa1, 0xf3, 0xa4, 0x5a, 0x2b, 0xf4, 0x3d, 0x29, 0x2e,
-       0x96, 0xf1, 0x7d, 0x3a, 0xa6, 0xce, 0x37, 0xe2, 0xf0, 0xce, 0x64, 0x08,
-       0xfb, 0x4b, 0xf3, 0xe0, 0x8d, 0x7b, 0x1f, 0x29, 0x7d, 0x2c, 0x7b, 0x0f,
-       0xf6, 0xd9, 0xc9, 0x39, 0x76, 0xec, 0x47, 0xfd, 0xd6, 0xfc, 0xb0, 0x67,
-       0x58, 0x46, 0x03, 0xd4, 0x3f, 0x9f, 0xb0, 0x86, 0x21, 0x5f, 0xa7, 0xef,
-       0x7f, 0xf9, 0x4a, 0x54, 0xb7, 0x53, 0x0d, 0x81, 0x2b, 0xba, 0x3e, 0x2c,
-       0x13, 0xfa, 0x5c, 0x90, 0x3b, 0xc5, 0xfd, 0x9c, 0xb5, 0x15, 0xde, 0xb9,
-       0x8f, 0x99, 0xed, 0xf0, 0x0e, 0x39, 0xdc, 0x0d, 0x19, 0xea, 0x22, 0xbe,
-       0xf8, 0x17, 0xb8, 0xe7, 0xbc, 0x36, 0xcd, 0x15, 0x56, 0xab, 0xf8, 0x24,
-       0x21, 0x71, 0xe9, 0xc2, 0xa9, 0x9c, 0x03, 0xe2, 0x57, 0xd9, 0x07, 0x8d,
-       0x37, 0xe5, 0x30, 0x2c, 0xa6, 0xd8, 0xef, 0x24, 0xd7, 0xe3, 0x2c, 0xd7,
-       0xe3, 0x37, 0x96, 0xd3, 0x31, 0x5d, 0x07, 0xc8, 0x8b, 0x34, 0xff, 0x69,
-       0x8f, 0x7b, 0x43, 0xdf, 0x0f, 0xe8, 0xcf, 0x32, 0xf7, 0xf3, 0x2d, 0xe7,
-       0x9e, 0xd0, 0x75, 0xdd, 0xea, 0xbe, 0xd0, 0xf8, 0xc7, 0xfa, 0xe8, 0xa4,
-       0xe7, 0x39, 0x4b, 0x5f, 0x76, 0xc2, 0x4d, 0x63, 0x17, 0xa4, 0x53, 0xdf,
-       0x6e, 0x9a, 0xdf, 0x86, 0x96, 0xab, 0xfa, 0x7c, 0x2a, 0xcf, 0x5f, 0xf5,
-       0xfc, 0x35, 0x2c, 0xcd, 0x92, 0x8c, 0x36, 0x5e, 0x56, 0xf1, 0x5a, 0x3d,
-       0xf8, 0xc3, 0x3d, 0xc7, 0xf5, 0xf5, 0x9d, 0x8e, 0x13, 0xb1, 0xf6, 0xdf,
-       0x5c, 0x75, 0xcf, 0x2b, 0xe6, 0x33, 0xec, 0xe0, 0xbb, 0x79, 0x80, 0xfb,
-       0xc0, 0x32, 0xf5, 0xa8, 0xf2, 0x3b, 0xc2, 0x71, 0xf2, 0x1c, 0xc7, 0xaa,
-       0xe1, 0x0b, 0x95, 0xe7, 0xfa, 0x86, 0xe6, 0x09, 0x8d, 0x8f, 0x2a, 0x5f,
-       0xe8, 0x3e, 0x50, 0xfc, 0xec, 0xcd, 0x55, 0xb5, 0xbf, 0x6d, 0x1b, 0xfe,
-       0x58, 0x75, 0xfc, 0xdd, 0x72, 0x78, 0x22, 0x49, 0x71, 0x0f, 0xb3, 0xea,
-       0xe6, 0xc1, 0x3f, 0x24, 0x0f, 0xaa, 0xef, 0xa6, 0x69, 0x39, 0xf3, 0xc2,
-       0xfc, 0x37, 0xa3, 0xe2, 0xa5, 0x39, 0xff, 0xb4, 0xbe, 0xbf, 0x64, 0xfe,
-       0xcc, 0x93, 0x63, 0xb5, 0x7c, 0x77, 0xdb, 0x23, 0xee, 0x7f, 0xf5, 0xc7,
-       0xf3, 0x95, 0x65, 0xbe, 0xcf, 0x51, 0x9e, 0x95, 0xf1, 0x3c, 0xe3, 0x25,
-       0x57, 0xdf, 0x07, 0xf4, 0x15, 0xf6, 0xb2, 0xbf, 0x9a, 0xf7, 0xfa, 0xb4,
-       0x7f, 0xa8, 0x76, 0x4f, 0xad, 0x7d, 0x7d, 0xff, 0x03, 0x5b, 0xf0, 0xf8,
-       0xe7, 0x1b, 0x78, 0x7f, 0x7d, 0xb6, 0x51, 0x7d, 0x4f, 0x79, 0xe2, 0xc4,
-       0x16, 0x74, 0x3f, 0x85, 0x25, 0x9e, 0xe9, 0xbd, 0x26, 0xb4, 0xbd, 0x3f,
-       0x88, 0xf7, 0xa4, 0x60, 0xfc, 0x9e, 0x7b, 0x98, 0xfd, 0x64, 0xc0, 0xc7,
-       0x2f, 0x9c, 0xa1, 0xfe, 0xbe, 0x79, 0xf6, 0x3e, 0xf1, 0xf2, 0x7b, 0x2f,
-       0x5f, 0x53, 0x7e, 0x77, 0x8b, 0xd5, 0x19, 0x8b, 0xf2, 0x1a, 0xda, 0x0b,
-       0xf3, 0xfb, 0x87, 0xea, 0xfb, 0xad, 0xfc, 0x9a, 0x8c, 0x07, 0x69, 0x37,
-       0xe1, 0x7e, 0x97, 0x6c, 0xce, 0x13, 0x73, 0x7f, 0x24, 0x81, 0x7d, 0x9a,
-       0xbf, 0xdc, 0xf8, 0x79, 0x77, 0xa3, 0x7a, 0xff, 0xc0, 0xcd, 0xad, 0x83,
-       0xde, 0x73, 0x71, 0xb2, 0xaf, 0x36, 0x4e, 0x46, 0xac, 0x94, 0xe1, 0x7f,
-       0x84, 0x79, 0x65, 0x9c, 0x13, 0xf9, 0x29, 0x9a, 0xa0, 0x78, 0x85, 0xe3,
-       0x84, 0x6b, 0x91, 0x8a, 0xe1, 0xdc, 0x85, 0xa7, 0xf0, 0xbd, 0x10, 0xc7,
-       0x7a, 0x6b, 0x1c, 0xef, 0xcd, 0x91, 0xb0, 0x45, 0xf6, 0xad, 0x71, 0xc8,
-       0x14, 0xf3, 0xcf, 0x8a, 0xc3, 0xcb, 0x90, 0xcb, 0xa1, 0xad, 0x78, 0x19,
-       0xf7, 0xdb, 0xf5, 0x90, 0x5a, 0x97, 0x8f, 0xa0, 0x0c, 0x78, 0x69, 0xa8,
-       0xdb, 0xa2, 0xef, 0xa3, 0x19, 0xe0, 0x48, 0x74, 0x7a, 0x9f, 0xab, 0x0d,
-       0xfc, 0xd2, 0x5a, 0xe5, 0xef, 0x5a, 0x9e, 0xb7, 0x7a, 0x97, 0x1c, 0x1e,
-       0x75, 0xe7, 0x01, 0xfe, 0x52, 0xfe, 0x49, 0x95, 0x7c, 0xb5, 0x13, 0x7e,
-       0x37, 0x18, 0x2f, 0xbf, 0xf3, 0xbd, 0xdf, 0x24, 0xbe, 0x2a, 0xa3, 0x0e,
-       0x2b, 0xe5, 0xfa, 0xfe, 0xe8, 0x3c, 0x74, 0x1c, 0x9c, 0x4b, 0x9f, 0xb3,
-       0x1a, 0x17, 0x79, 0x9d, 0xe1, 0xfc, 0xef, 0xd0, 0xfb, 0x2f, 0xc5, 0xe7,
-       0x55, 0x7e, 0xb1, 0x7e, 0x94, 0xee, 0xa1, 0xa0, 0x7c, 0xdf, 0x6b, 0xdd,
-       0x7d, 0x3f, 0x8c, 0x50, 0x5e, 0x8d, 0x72, 0x41, 0xef, 0x77, 0x9f, 0xbb,
-       0x39, 0x0f, 0xb9, 0x90, 0xd7, 0x7d, 0xd3, 0xfd, 0xd5, 0xfd, 0x44, 0xdf,
-       0x53, 0x3d, 0x64, 0xd6, 0x5f, 0xe8, 0x21, 0x9c, 0xe7, 0x0b, 0xeb, 0xee,
-       0x77, 0xf2, 0xc9, 0xac, 0xb2, 0x7f, 0x4d, 0x7c, 0x43, 0xf3, 0x28, 0xc4,
-       0xf7, 0x2c, 0xab, 0x7c, 0x29, 0xf8, 0xaf, 0x96, 0x77, 0x0d, 0x71, 0x3d,
-       0xc8, 0xcb, 0x7d, 0x7a, 0xee, 0xdc, 0xf3, 0x5b, 0xad, 0xbb, 0x3a, 0xc7,
-       0x13, 0x1e, 0xfc, 0xa4, 0xcf, 0xa9, 0xec, 0xf3, 0x8c, 0x5f, 0x53, 0x0c,
-       0x1d, 0xc1, 0xfb, 0xb0, 0x21, 0x8c, 0x39, 0x69, 0x08, 0x7b, 0xdd, 0xef,
-       0x12, 0x3f, 0x11, 0xfa, 0x05, 0xb3, 0xa7, 0x31, 0x42, 0xe7, 0xba, 0x74,
-       0xe3, 0x6b, 0x32, 0x7b, 0x7f, 0x29, 0x86, 0xf5, 0x96, 0x21, 0x84, 0x09,
-       0x10, 0xde, 0x0d, 0x71, 0x01, 0xf3, 0xf0, 0xce, 0x02, 0xe4, 0xdb, 0xe2,
-       0x49, 0xf8, 0x69, 0x9c, 0xa5, 0xfb, 0xd4, 0x6c, 0x41, 0x79, 0x4b, 0x4b,
-       0x8c, 0xf3, 0xb4, 0x9f, 0x7e, 0xaf, 0x56, 0x44, 0x9c, 0x7f, 0x47, 0xf0,
-       0xbc, 0x02, 0xcf, 0x81, 0x9a, 0xbe, 0xef, 0x14, 0xdf, 0x4a, 0x8f, 0x4b,
-       0xfc, 0xc2, 0x0d, 0xe3, 0xdc, 0xac, 0xc7, 0xb9, 0xee, 0x6f, 0xda, 0xef,
-       0x89, 0xeb, 0x81, 0xcd, 0xb8, 0xd6, 0xf9, 0xa9, 0x3a, 0xff, 0xe9, 0xbc,
-       0x7b, 0x37, 0xfb, 0x57, 0xfb, 0x62, 0x12, 0xdf, 0xff, 0x17, 0xae, 0x21,
-       0x8f, 0x76, 0xa9, 0xf8, 0x2d, 0x35, 0xf8, 0xf4, 0x9e, 0x3b, 0xf0, 0x9b,
-       0x21, 0x79, 0xfc, 0x6f, 0x6a, 0x8c, 0x09, 0xd0, 0x18, 0x10, 0x00, 0x00,
-       0x00 };
-
-static u8 bnx2_TPAT_b09FwText[] = {
-       0xbd, 0x58, 0x5d, 0x6c, 0x1c, 0x57, 0x15, 0x3e, 0x73, 0xe7, 0xee, 0xee,
-       0x78, 0xb1, 0xe3, 0x71, 0x3b, 0xa4, 0xdb, 0x62, 0xc8, 0x8c, 0x7d, 0xfd,
-       0x03, 0xb6, 0xc2, 0x94, 0x6e, 0xdb, 0xad, 0x18, 0x45, 0xc3, 0xec, 0xda,
-       0xb1, 0xa2, 0x3c, 0xb8, 0x52, 0xa4, 0x46, 0x6a, 0x04, 0x66, 0x1d, 0x93,
-       0x3e, 0xa6, 0x88, 0x07, 0xa4, 0x3e, 0x64, 0x59, 0x3b, 0xa9, 0x1f, 0x96,
-       0x2c, 0xb8, 0xc8, 0x7e, 0x41, 0x28, 0x72, 0x6a, 0xbb, 0x48, 0x8b, 0x37,
-       0x11, 0x48, 0x3c, 0x45, 0x8d, 0x1c, 0x14, 0x55, 0xea, 0x0b, 0x0f, 0xfc,
-       0x3d, 0x46, 0x6a, 0x45, 0xfb, 0x50, 0x90, 0x55, 0xa9, 0xa8, 0x82, 0xe0,
-       0xcb, 0x77, 0x66, 0x67, 0x9c, 0x4d, 0xec, 0x08, 0x9e, 0xb0, 0xb4, 0xba,
-       0x33, 0x73, 0xef, 0x39, 0xf7, 0xdc, 0x73, 0xbe, 0xef, 0x9c, 0x73, 0x3d,
-       0x64, 0x50, 0x9e, 0x92, 0xbf, 0x3e, 0xfc, 0x8a, 0xdf, 0xbd, 0xf8, 0x83,
-       0x67, 0x8f, 0xbf, 0x70, 0x1c, 0x8f, 0xcf, 0x1b, 0xfd, 0x59, 0x49, 0xff,
-       0xc7, 0x3f, 0x93, 0xc8, 0x4e, 0xed, 0xe0, 0x1f, 0x59, 0x22, 0xb8, 0xfd,
-       0x54, 0xa4, 0xc8, 0x32, 0x83, 0xdf, 0x7c, 0x6d, 0x5e, 0x11, 0x85, 0xad,
-       0x09, 0xb7, 0x4c, 0xff, 0xd6, 0x35, 0x47, 0x12, 0x7f, 0xff, 0x72, 0x70,
-       0xff, 0xeb, 0xb7, 0x5e, 0xf4, 0x76, 0xaf, 0x99, 0x64, 0xd9, 0xc1, 0xb2,
-       0xb4, 0x47, 0xc9, 0x1a, 0x84, 0xcc, 0xcf, 0xc7, 0xbe, 0x2d, 0xe8, 0x48,
-       0xaa, 0xab, 0xa6, 0x85, 0xba, 0xa7, 0x6f, 0x8d, 0x29, 0xbb, 0x8e, 0x0d,
-       0x6e, 0xb4, 0x5d, 0x8a, 0xda, 0x05, 0x7a, 0xb7, 0xed, 0xd0, 0xcd, 0xb6,
-       0xa4, 0x85, 0xb7, 0x2e, 0xd1, 0x92, 0xef, 0x15, 0x2a, 0xa6, 0x45, 0x22,
-       0xf0, 0x0a, 0x55, 0x72, 0x69, 0xc3, 0xf7, 0x6a, 0x73, 0xe6, 0x80, 0x61,
-       0x05, 0x16, 0xbd, 0x31, 0x26, 0xe8, 0x9a, 0x73, 0x8e, 0xbe, 0xa7, 0xce,
-       0xe2, 0x27, 0x49, 0xac, 0x48, 0xa3, 0xbc, 0x26, 0x49, 0xae, 0xf4, 0xd3,
-       0x49, 0x5f, 0xeb, 0x79, 0x3f, 0x84, 0xfc, 0xf0, 0xf8, 0x05, 0xea, 0xa1,
-       0x9a, 0xed, 0xcd, 0x10, 0x65, 0x78, 0x0d, 0x45, 0x7e, 0x86, 0x42, 0xbb,
-       0x73, 0xae, 0x6b, 0xf1, 0x78, 0x5f, 0x6f, 0x40, 0xbe, 0x47, 0xa5, 0xf3,
-       0x4f, 0x24, 0xf3, 0x76, 0x32, 0x2f, 0x48, 0xac, 0x7a, 0xee, 0x16, 0x8d,
-       0x84, 0xd2, 0xd8, 0xd3, 0x91, 0x3a, 0x6a, 0x47, 0x5b, 0x92, 0xcc, 0x15,
-       0xb6, 0x5f, 0xd9, 0x65, 0xd2, 0x90, 0x31, 0x59, 0x46, 0x8a, 0xe0, 0xfb,
-       0x88, 0xdb, 0x48, 0x28, 0x0c, 0xa2, 0x9d, 0x46, 0xc1, 0x8e, 0xda, 0x3f,
-       0x34, 0xa2, 0xe6, 0x9e, 0x0e, 0x65, 0x9e, 0x84, 0x0a, 0x8d, 0x68, 0x8b,
-       0x75, 0xf5, 0x90, 0x54, 0x39, 0xc8, 0x0c, 0xdb, 0x82, 0x78, 0x8c, 0x92,
-       0xef, 0xac, 0xbb, 0x82, 0xe7, 0x69, 0x23, 0xdc, 0x92, 0x46, 0xb4, 0x36,
-       0x83, 0x67, 0x0b, 0xf2, 0xf0, 0x8b, 0x6f, 0x50, 0x38, 0x6b, 0x40, 0x8e,
-       0xcf, 0x69, 0xe3, 0x5d, 0x50, 0xe8, 0xd8, 0xb4, 0x58, 0xf4, 0x0a, 0x35,
-       0x3a, 0x65, 0x94, 0xb7, 0x0e, 0x04, 0xcd, 0x9e, 0x69, 0x1f, 0xfc, 0xc6,
-       0xb6, 0x7c, 0x4b, 0x6a, 0x2d, 0x9e, 0xcd, 0x25, 0x67, 0x64, 0x7d, 0x61,
-       0xc7, 0x7e, 0x87, 0xdf, 0x61, 0x73, 0x13, 0xb6, 0xb7, 0xb2, 0xb0, 0x47,
-       0x6b, 0xde, 0x27, 0x52, 0x65, 0xd8, 0x19, 0xe2, 0xe7, 0x2d, 0x57, 0x01,
-       0x85, 0xa1, 0xd5, 0x3e, 0x72, 0x07, 0xb4, 0xae, 0xf8, 0x9e, 0xbd, 0x45,
-       0x01, 0x2d, 0x36, 0x07, 0xed, 0xa9, 0x66, 0x1d, 0xf3, 0x35, 0x5e, 0x03,
-       0x7f, 0x10, 0x4d, 0xb5, 0xb4, 0xde, 0xf4, 0x7f, 0x9b, 0xa1, 0x23, 0x62,
-       0x32, 0x43, 0x9e, 0x1b, 0xe2, 0xdb, 0xd0, 0xe6, 0xa3, 0x3e, 0x3b, 0x96,
-       0xd8, 0xc0, 0x7e, 0xc7, 0x3e, 0xfe, 0x97, 0x92, 0xf7, 0x5e, 0x3b, 0x5a,
-       0x4b, 0xfd, 0x1c, 0xdb, 0x0d, 0xbf, 0xfa, 0x14, 0x15, 0x61, 0xff, 0x63,
-       0xcf, 0x94, 0xca, 0xb1, 0x2d, 0x6c, 0x37, 0xd6, 0xab, 0x07, 0x36, 0xbd,
-       0x7a, 0xc0, 0x26, 0xb6, 0x47, 0x90, 0x5c, 0xb5, 0x68, 0x49, 0x7d, 0x64,
-       0xd0, 0x11, 0xad, 0x97, 0x7c, 0x69, 0x54, 0xd6, 0x3e, 0x4b, 0x9e, 0x81,
-       0xc3, 0x26, 0x70, 0xd8, 0x04, 0x2e, 0x9b, 0x64, 0x8b, 0xc0, 0xa5, 0x5b,
-       0x63, 0x16, 0xdd, 0x33, 0x11, 0xcf, 0x36, 0xcf, 0xe7, 0xa8, 0xee, 0x2b,
-       0xba, 0xdc, 0x64, 0xcf, 0xe4, 0x68, 0x51, 0x7d, 0xae, 0xcf, 0xc3, 0x1f,
-       0x6f, 0x93, 0x3e, 0x16, 0x01, 0xb3, 0x11, 0xdc, 0xf9, 0x86, 0x1a, 0xa7,
-       0xcb, 0x6d, 0x45, 0xf5, 0x36, 0xcb, 0x2d, 0x51, 0x47, 0xae, 0x1f, 0x72,
-       0x93, 0x90, 0x2b, 0xd2, 0x95, 0x58, 0xb6, 0x1f, 0xb2, 0xbb, 0x89, 0xec,
-       0x44, 0x61, 0x9a, 0x7c, 0xc8, 0x0c, 0xbb, 0xd3, 0xc0, 0xdc, 0x9c, 0x33,
-       0x09, 0xd9, 0x49, 0x5a, 0xc2, 0xaf, 0xde, 0xa4, 0x9a, 0x2c, 0xb2, 0x5e,
-       0xaf, 0x70, 0x9e, 0x7d, 0x1e, 0xeb, 0xac, 0x41, 0xa7, 0x83, 0x39, 0x0b,
-       0x7a, 0x24, 0xc6, 0x0f, 0x75, 0xbd, 0x09, 0x6c, 0x3b, 0xfc, 0xfc, 0xae,
-       0x16, 0x01, 0xfc, 0x50, 0x54, 0x6e, 0x9d, 0xf8, 0x3d, 0x4b, 0x65, 0xc4,
-       0x52, 0xa8, 0x7e, 0xaa, 0xda, 0x86, 0x21, 0x02, 0x93, 0xaa, 0xf0, 0x42,
-       0x38, 0x2b, 0xe3, 0x6f, 0x73, 0xb6, 0x01, 0x8e, 0x1d, 0x17, 0x9d, 0x9c,
-       0x93, 0xc1, 0x1a, 0xc4, 0x5f, 0xf5, 0x52, 0xd5, 0x19, 0xc0, 0x5a, 0x10,
-       0x2d, 0x3f, 0x02, 0x8e, 0x0e, 0x60, 0x0d, 0x8f, 0x1c, 0x07, 0xac, 0x57,
-       0xbc, 0xbe, 0x17, 0x36, 0xa6, 0xdf, 0x7a, 0xa9, 0xf6, 0x50, 0x7c, 0xd8,
-       0xc6, 0x38, 0x2e, 0xd8, 0x5f, 0x26, 0xb1, 0xed, 0x8e, 0x57, 0x3a, 0x6f,
-       0x63, 0x7e, 0xe7, 0xab, 0x82, 0x76, 0xf5, 0x75, 0x15, 0x15, 0xf0, 0xe9,
-       0xf3, 0x8a, 0x0a, 0x07, 0xcc, 0x18, 0x4b, 0x29, 0xa6, 0x78, 0xe4, 0x7c,
-       0x43, 0x85, 0x79, 0x65, 0x98, 0x4b, 0x93, 0x4f, 0x52, 0xcd, 0xf1, 0xfc,
-       0x32, 0x15, 0x68, 0xa9, 0x39, 0x01, 0xdf, 0xf5, 0xe3, 0xdc, 0x9e, 0x4f,
-       0x34, 0x8c, 0xe7, 0xf0, 0x69, 0xc8, 0x20, 0x5f, 0xd4, 0xa0, 0x8b, 0xc7,
-       0x41, 0xe8, 0xf7, 0x60, 0x23, 0xfc, 0xa1, 0x26, 0xec, 0x29, 0xf8, 0x23,
-       0x74, 0x78, 0x8e, 0xf3, 0x98, 0xf3, 0x4c, 0xa4, 0x3c, 0xbf, 0x1a, 0xdb,
-       0xe2, 0xd9, 0xb7, 0x89, 0xf3, 0x51, 0x9a, 0x83, 0x38, 0x27, 0x59, 0x73,
-       0x32, 0xa0, 0xd9, 0x7a, 0xe3, 0x92, 0x36, 0x15, 0xcd, 0x65, 0x03, 0xc6,
-       0x6e, 0x6f, 0x09, 0x58, 0x9c, 0xad, 0xb7, 0x06, 0x4f, 0xef, 0x34, 0xa8,
-       0xf6, 0x4c, 0x20, 0x8e, 0x0a, 0xec, 0x1f, 0xf9, 0xcc, 0x29, 0xec, 0xd5,
-       0x1e, 0x3c, 0x7d, 0xa7, 0x71, 0x0c, 0xbe, 0xa2, 0xfb, 0xf0, 0x3f, 0xf6,
-       0xdf, 0x79, 0xda, 0x84, 0x9d, 0x1c, 0x33, 0x70, 0x2b, 0x7c, 0x75, 0xcc,
-       0x00, 0x96, 0xf1, 0x0c, 0x6c, 0xd4, 0xda, 0x83, 0x73, 0x22, 0xa8, 0x51,
-       0xd8, 0x5e, 0xc2, 0xcf, 0xa2, 0xa9, 0x86, 0x65, 0xdd, 0x81, 0x4e, 0x51,
-       0xf4, 0xdc, 0xc8, 0xdc, 0x65, 0xae, 0xf0, 0x39, 0x58, 0x97, 0x65, 0x04,
-       0xae, 0x1c, 0x6a, 0xf5, 0xbc, 0x22, 0x82, 0x00, 0x98, 0x90, 0x88, 0x4d,
-       0x11, 0x58, 0xe1, 0x38, 0x5c, 0x45, 0x1c, 0x80, 0x03, 0xd8, 0x0c, 0xff,
-       0xd7, 0x44, 0x70, 0x91, 0x2a, 0x45, 0xa2, 0xc5, 0x06, 0x61, 0x3f, 0xec,
-       0x55, 0xc2, 0x0f, 0x78, 0x0e, 0xed, 0x12, 0x6c, 0xf0, 0xc2, 0x1a, 0x79,
-       0xfe, 0x1c, 0xbc, 0x9e, 0xfb, 0x31, 0x59, 0x99, 0xe0, 0x9c, 0xdc, 0x68,
-       0x90, 0x25, 0x83, 0xb3, 0x72, 0xa9, 0x31, 0xec, 0xff, 0x15, 0xbe, 0x26,
-       0xf2, 0xc6, 0x37, 0x69, 0xc2, 0xdf, 0x04, 0x6f, 0xeb, 0xf8, 0x5d, 0x21,
-       0xde, 0xfb, 0x9c, 0x1c, 0x69, 0xf1, 0x78, 0x56, 0xaa, 0x56, 0xb7, 0xde,
-       0xbf, 0x69, 0xf6, 0xfb, 0x3d, 0x2a, 0xd1, 0x9b, 0xc9, 0xde, 0xf0, 0x0d,
-       0x9d, 0x6c, 0x94, 0x80, 0xef, 0x03, 0xfa, 0x4b, 0xa9, 0xfe, 0xad, 0x58,
-       0x37, 0x63, 0x77, 0xc2, 0xdf, 0x3a, 0x74, 0x8f, 0xa3, 0x69, 0x7e, 0x42,
-       0x1e, 0xec, 0xe4, 0xeb, 0xc5, 0x66, 0x0e, 0x9c, 0xd0, 0xba, 0xaa, 0x7e,
-       0x8f, 0xf3, 0xe6, 0x81, 0x5f, 0x1b, 0x3f, 0xc4, 0x72, 0x96, 0xe7, 0x0c,
-       0xaa, 0xa2, 0x0e, 0xd5, 0xdb, 0xfc, 0xcc, 0x73, 0x9c, 0xcf, 0x72, 0x18,
-       0xff, 0x8c, 0xb5, 0x1f, 0xea, 0x5a, 0x9b, 0xb9, 0xc6, 0xbe, 0x02, 0x47,
-       0xda, 0x96, 0x51, 0x6e, 0x92, 0x51, 0x69, 0x92, 0x5b, 0xf5, 0x65, 0x1c,
-       0x97, 0xd0, 0xb6, 0xe1, 0x53, 0xc6, 0xc3, 0xa4, 0x8c, 0x1a, 0x46, 0x5c,
-       0xc3, 0x0c, 0x3c, 0x0f, 0xb5, 0x7e, 0x9d, 0x01, 0x27, 0x42, 0xf8, 0x5f,
-       0x2c, 0x20, 0x47, 0x5e, 0x73, 0xa8, 0x5f, 0xa8, 0x39, 0x51, 0x77, 0xa8,
-       0x4f, 0x28, 0xb6, 0xed, 0x3d, 0x01, 0xdb, 0x78, 0x3e, 0xac, 0xfa, 0xbf,
-       0xc2, 0x9e, 0x41, 0xcc, 0xc7, 0x4a, 0x23, 0xcd, 0xfb, 0xd0, 0xa9, 0x38,
-       0x67, 0x58, 0x49, 0xfe, 0x8f, 0x92, 0xdc, 0x2e, 0x81, 0x5b, 0xad, 0x5f,
-       0x46, 0x5e, 0xaf, 0xc7, 0xb8, 0xf1, 0x6a, 0xae, 0xd8, 0xd3, 0xc3, 0xa3,
-       0xcc, 0x51, 0xad, 0x2f, 0xfa, 0xd3, 0x58, 0x2b, 0x4d, 0xca, 0xcf, 0x20,
-       0xb7, 0x73, 0x3d, 0x60, 0xdb, 0x02, 0xd8, 0xd6, 0xd7, 0xc9, 0xfb, 0xa8,
-       0x09, 0xf5, 0xb8, 0x06, 0xf4, 0x90, 0xa9, 0x0c, 0xfc, 0x3c, 0x77, 0x8e,
-       0xf8, 0x3b, 0xf5, 0x08, 0xbc, 0x57, 0xc1, 0xeb, 0xa5, 0xe2, 0x29, 0xa3,
-       0xb2, 0x75, 0xcc, 0x4c, 0xfa, 0x08, 0xd8, 0x0d, 0x5e, 0x3b, 0x2c, 0x97,
-       0x85, 0x5c, 0x1f, 0x64, 0xbe, 0x82, 0xb9, 0x0c, 0xc6, 0x6e, 0x3d, 0x71,
-       0x2d, 0xc1, 0x5e, 0x2e, 0xf6, 0x9a, 0x21, 0x19, 0xe4, 0x51, 0xaf, 0x47,
-       0xdc, 0x0a, 0x3d, 0x97, 0xd4, 0x6d, 0xe6, 0xf2, 0x89, 0x2e, 0x2e, 0xbb,
-       0x64, 0xc6, 0x9c, 0x78, 0x29, 0xc9, 0x41, 0x9c, 0xc7, 0x5f, 0x48, 0xe6,
-       0x1d, 0xe4, 0xe3, 0xe7, 0x92, 0xba, 0x62, 0xe1, 0x39, 0xa0, 0xe5, 0x38,
-       0x37, 0x67, 0x39, 0x37, 0x17, 0x90, 0x9b, 0x4b, 0xe0, 0xa7, 0xff, 0x31,
-       0x19, 0xc8, 0x4d, 0x44, 0xbf, 0x6b, 0x48, 0xe4, 0x21, 0x13, 0xf2, 0xdc,
-       0x1b, 0xcc, 0xc1, 0x36, 0xcf, 0xfe, 0x18, 0x67, 0x0a, 0xcf, 0x70, 0xde,
-       0xd4, 0x3a, 0x13, 0x28, 0xf7, 0x32, 0x8d, 0x16, 0x2e, 0x23, 0x4f, 0x9a,
-       0x34, 0x81, 0xdd, 0x78, 0xdf, 0xb4, 0x96, 0xa7, 0x3d, 0x05, 0xff, 0xbd,
-       0x6f, 0x90, 0xe2, 0xfa, 0xfb, 0x1d, 0xe8, 0x18, 0x71, 0xa7, 0xc0, 0xfb,
-       0xc5, 0xd2, 0x7f, 0x93, 0xf9, 0x43, 0x22, 0x83, 0xba, 0x56, 0xe4, 0x7d,
-       0x89, 0x2a, 0x2d, 0xf6, 0x83, 0xdf, 0x85, 0x07, 0x1f, 0x78, 0x20, 0xaa,
-       0x36, 0xc1, 0x3f, 0xc4, 0x38, 0xc6, 0x1a, 0xd6, 0x8b, 0x22, 0x72, 0xaa,
-       0xc3, 0xb8, 0x66, 0xbc, 0x9f, 0x49, 0xf0, 0x3e, 0x0b, 0xbc, 0x7b, 0xe3,
-       0x37, 0xc0, 0xa3, 0x1b, 0x0f, 0xf1, 0xe8, 0x4c, 0x82, 0xf1, 0x59, 0x60,
-       0xfc, 0x97, 0xc0, 0x96, 0x85, 0x9a, 0x0e, 0xdc, 0x36, 0xc8, 0x88, 0x50,
-       0x1b, 0x80, 0x83, 0x44, 0xcf, 0xe9, 0x44, 0xcf, 0xcc, 0x63, 0xf4, 0x9c,
-       0x4e, 0xf4, 0xcc, 0x74, 0xeb, 0x81, 0x5c, 0x25, 0x91, 0x0b, 0x1f, 0x23,
-       0x57, 0x49, 0xe4, 0xc2, 0x2e, 0x39, 0x0b, 0x67, 0xe2, 0x73, 0x71, 0x1e,
-       0xdb, 0x45, 0x2c, 0x7c, 0x8a, 0xb1, 0x62, 0x87, 0x18, 0xef, 0x61, 0x04,
-       0x66, 0x9a, 0x37, 0xb1, 0x96, 0xfd, 0x90, 0x61, 0x0e, 0x3c, 0xe2, 0xbb,
-       0x3d, 0xf8, 0x6e, 0x1f, 0xef, 0xf8, 0xfb, 0x66, 0x82, 0x15, 0xae, 0x45,
-       0x5e, 0x2d, 0x7c, 0x68, 0x6d, 0x46, 0xb0, 0x9f, 0xc5, 0xd5, 0xc3, 0x62,
-       0x60, 0x61, 0x0e, 0x35, 0xa7, 0x69, 0x52, 0x59, 0x32, 0x57, 0x5f, 0x91,
-       0x31, 0x76, 0xb7, 0xb1, 0x7e, 0xbb, 0xc3, 0xab, 0x99, 0x46, 0x8e, 0x68,
-       0xbd, 0x97, 0x16, 0x50, 0x4f, 0xce, 0x03, 0x4b, 0xd7, 0x7d, 0xb0, 0x90,
-       0x86, 0x81, 0x0b, 0x0d, 0x5c, 0x7b, 0x71, 0x6c, 0x23, 0xb5, 0x08, 0x66,
-       0xfc, 0x88, 0x76, 0x26, 0xf3, 0x94, 0xd9, 0xec, 0xd4, 0x43, 0xb9, 0xde,
-       0xbd, 0x8f, 0x8b, 0x7d, 0x02, 0xd4, 0xe0, 0x3f, 0xa2, 0x17, 0x70, 0x48,
-       0x8e, 0x22, 0x97, 0x36, 0x39, 0x27, 0x80, 0xa3, 0x9b, 0x5c, 0xeb, 0x39,
-       0xe7, 0x5a, 0xc0, 0x62, 0x9a, 0x7f, 0x72, 0xe8, 0x5b, 0x3e, 0x41, 0xed,
-       0x10, 0x34, 0x5f, 0xd4, 0x7a, 0xca, 0xff, 0x04, 0xb8, 0xc2, 0xb7, 0x75,
-       0x9e, 0xdb, 0xc5, 0x77, 0xfe, 0x66, 0x51, 0x76, 0xf5, 0x49, 0xec, 0x89,
-       0xfd, 0xce, 0xf0, 0xfa, 0x1c, 0x7a, 0x1a, 0xce, 0xf3, 0x18, 0xd7, 0xf9,
-       0xdd, 0x48, 0x7c, 0x6a, 0x62, 0xfc, 0x02, 0x46, 0x3e, 0x4f, 0x0f, 0xce,
-       0xa7, 0xf5, 0x5d, 0x9f, 0x9f, 0xb5, 0x96, 0x41, 0x2f, 0x95, 0x1b, 0x0a,
-       0xf5, 0x7d, 0xa4, 0xb0, 0x00, 0x9e, 0x95, 0x5b, 0xe9, 0x3c, 0xcf, 0xd9,
-       0x5d, 0x73, 0x78, 0x6e, 0xf1, 0x77, 0x41, 0x3b, 0x6a, 0x11, 0x75, 0x11,
-       0xfd, 0xd3, 0x3a, 0xf7, 0x61, 0xdc, 0x53, 0xc5, 0xf5, 0x72, 0x9c, 0x7b,
-       0xb0, 0x77, 0x90, 0xff, 0xd7, 0xc1, 0x29, 0xf0, 0xfb, 0x29, 0x41, 0x4f,
-       0x50, 0xd9, 0x49, 0xcf, 0xa3, 0x35, 0x38, 0x5b, 0x30, 0x0d, 0xe6, 0xe2,
-       0xb0, 0x3d, 0x4d, 0xdc, 0x6b, 0x8d, 0x84, 0x55, 0x96, 0x69, 0x21, 0x1f,
-       0xac, 0x68, 0xaa, 0x76, 0xf4, 0xd8, 0xb3, 0xc8, 0xd1, 0xd1, 0x4f, 0xb8,
-       0xb6, 0xb1, 0x6f, 0x4f, 0xc0, 0x1e, 0xf4, 0x05, 0xeb, 0x92, 0xde, 0x6e,
-       0xb0, 0x9e, 0x3c, 0x99, 0xe8, 0x11, 0x97, 0xfd, 0x54, 0xcf, 0x9f, 0xa0,
-       0x87, 0x1c, 0x41, 0xdc, 0xff, 0x4a, 0xe8, 0x62, 0x1f, 0x64, 0xd0, 0x8f,
-       0x8f, 0xd3, 0xbc, 0x5a, 0x8c, 0x6b, 0xf1, 0x79, 0xd4, 0xde, 0xa8, 0x98,
-       0x85, 0xef, 0x72, 0xb1, 0x9e, 0x7a, 0xf3, 0x5f, 0x9a, 0xf3, 0x0f, 0xea,
-       0x24, 0xf4, 0xe3, 0xbd, 0x8d, 0xb9, 0x95, 0x80, 0xde, 0x6c, 0xc6, 0xb5,
-       0xdb, 0xbe, 0x88, 0x9e, 0xbf, 0xd2, 0xf8, 0x47, 0xda, 0xcb, 0x84, 0xc0,
-       0x71, 0xe1, 0x02, 0x7c, 0x23, 0xb7, 0x7b, 0xe9, 0x35, 0xf4, 0xa8, 0x99,
-       0x15, 0xd4, 0x65, 0xf8, 0x4d, 0x5c, 0xad, 0x8d, 0x73, 0x9f, 0x79, 0x03,
-       0x5c, 0x9f, 0x2f, 0x2a, 0xdf, 0x34, 0x46, 0x69, 0xf9, 0x67, 0x5c, 0x67,
-       0xe2, 0x7a, 0x0d, 0xfc, 0xb8, 0x74, 0xa5, 0xa5, 0x68, 0xb9, 0x65, 0xc3,
-       0x2e, 0xfb, 0x41, 0x2f, 0xae, 0x38, 0x1f, 0x57, 0xf0, 0x8b, 0xf3, 0x2d,
-       0xce, 0x04, 0x3e, 0x04, 0xec, 0x0f, 0xee, 0xbd, 0x39, 0x66, 0x9c, 0xff,
-       0x4e, 0xe1, 0x99, 0xcf, 0xca, 0xbd, 0x32, 0xfb, 0x81, 0x7b, 0xe2, 0xee,
-       0xfe, 0x9d, 0x73, 0x23, 0x74, 0x6e, 0x33, 0x87, 0xb8, 0x47, 0xa9, 0xc8,
-       0xf9, 0x86, 0x1d, 0xf3, 0xaa, 0xde, 0xee, 0xf8, 0x3b, 0xf2, 0x59, 0xa7,
-       0x57, 0x0a, 0xe9, 0xce, 0x8b, 0x22, 0xee, 0x3b, 0x42, 0xe4, 0x15, 0x3e,
-       0xcb, 0x04, 0xee, 0x27, 0x1e, 0x7c, 0xe7, 0xa1, 0x2f, 0xe9, 0xf0, 0x73,
-       0x38, 0xe1, 0xe7, 0x50, 0xeb, 0x44, 0x26, 0xed, 0xc7, 0x0e, 0x72, 0xee,
-       0x17, 0xe2, 0x7f, 0xe7, 0xdc, 0x46, 0xc2, 0xb9, 0x6c, 0x8c, 0x4d, 0xb1,
-       0xd2, 0x3d, 0xf7, 0x0e, 0xe6, 0x72, 0x5d, 0xf7, 0xa2, 0xc3, 0x62, 0x12,
-       0xf3, 0x03, 0x9c, 0xe4, 0x75, 0x88, 0xff, 0x4a, 0x2f, 0x99, 0x57, 0x99,
-       0x97, 0x29, 0x46, 0x5c, 0xe0, 0x31, 0xd5, 0xd1, 0x83, 0x3d, 0x70, 0xd7,
-       0x59, 0xcd, 0xc4, 0xf8, 0x37, 0x83, 0x74, 0x4d, 0x81, 0xa6, 0x1b, 0x9e,
-       0x7f, 0x87, 0xc7, 0x16, 0xcf, 0x4b, 0xca, 0xae, 0x58, 0xf4, 0xfa, 0x98,
-       0xe7, 0xba, 0xc2, 0xf3, 0x77, 0x60, 0xf7, 0x5d, 0xe5, 0x50, 0x66, 0x94,
-       0x39, 0xc9, 0x15, 0x2a, 0x0b, 0xdc, 0xe0, 0x0e, 0xd8, 0xd4, 0x97, 0xd0,
-       0x1f, 0xb9, 0x12, 0xb1, 0xfd, 0x29, 0x6c, 0xe1, 0x7c, 0x0b, 0xbb, 0xc6,
-       0xd7, 0x81, 0x83, 0x05, 0x7e, 0xdf, 0xc7, 0x18, 0xdf, 0x2d, 0x78, 0x7f,
-       0x07, 0x67, 0xb0, 0x28, 0xb7, 0xaa, 0x71, 0xf7, 0x7b, 0x20, 0x77, 0x25,
-       0xc1, 0x6b, 0x06, 0xdf, 0xe7, 0x63, 0xbc, 0x72, 0x1c, 0xd9, 0xe7, 0x5a,
-       0x7f, 0x80, 0x38, 0x96, 0xe9, 0x2f, 0x31, 0x8f, 0xef, 0xfa, 0x31, 0x7e,
-       0x61, 0x0f, 0x64, 0x5a, 0x9f, 0xca, 0x98, 0xe7, 0xe0, 0xc3, 0x65, 0x3f,
-       0xc6, 0xd7, 0xf8, 0x4d, 0x1c, 0xbb, 0x83, 0xfd, 0x6e, 0x3d, 0xc3, 0xf6,
-       0x49, 0x8a, 0x39, 0xe5, 0x2e, 0x72, 0x8f, 0xe9, 0x8f, 0x20, 0xdf, 0x62,
-       0x5d, 0x2b, 0xe5, 0x7d, 0x16, 0x7c, 0x67, 0x5f, 0x33, 0xf7, 0x07, 0x92,
-       0xe7, 0x2f, 0x22, 0xb6, 0x36, 0xfc, 0xd8, 0xe9, 0x05, 0xcc, 0x15, 0xb6,
-       0xad, 0x97, 0xd4, 0xd5, 0xd4, 0xae, 0x4f, 0x63, 0x7b, 0x1e, 0xd6, 0x89,
-       0xf9, 0xed, 0xc3, 0xe4, 0xec, 0x2e, 0xb9, 0xbf, 0x1f, 0x22, 0x87, 0xf9,
-       0x6d, 0x96, 0xc9, 0xef, 0xf7, 0x20, 0xe5, 0x7d, 0x3c, 0x87, 0xc0, 0x3b,
-       0xcb, 0x3e, 0x7a, 0xef, 0xec, 0xc6, 0x7e, 0x5a, 0xfb, 0x19, 0xdf, 0xbc,
-       0xa7, 0xe7, 0x72, 0xef, 0xde, 0xc1, 0x76, 0x1e, 0x79, 0x2f, 0xf6, 0x03,
-       0x72, 0xa6, 0x37, 0x3e, 0x47, 0x29, 0xfe, 0x1f, 0x60, 0x7c, 0x01, 0x76,
-       0x55, 0x68, 0xa2, 0xc4, 0xe3, 0xc9, 0x03, 0x18, 0xe7, 0xfb, 0x3a, 0xd7,
-       0xa6, 0x3c, 0xee, 0x61, 0x5c, 0xe7, 0xf9, 0x2e, 0xd6, 0xc9, 0x53, 0x95,
-       0x35, 0x7e, 0xff, 0x2c, 0x79, 0xe7, 0xbc, 0xcc, 0x7d, 0xd4, 0x0d, 0x9c,
-       0x9f, 0xeb, 0xd1, 0x18, 0xd5, 0x1d, 0xf8, 0xd5, 0x67, 0x1b, 0x2e, 0xd0,
-       0x83, 0x1e, 0xec, 0xb0, 0xba, 0xb2, 0x6a, 0x76, 0x71, 0xe5, 0xb0, 0x7e,
-       0x8c, 0xef, 0x27, 0x46, 0x79, 0xcd, 0x48, 0x7a, 0x78, 0xee, 0xbf, 0xf6,
-       0xb4, 0x19, 0xf7, 0x62, 0x9c, 0x17, 0xb8, 0x07, 0x7b, 0x0d, 0xfb, 0xf6,
-       0xc5, 0xef, 0xe1, 0x16, 0x8f, 0xec, 0x17, 0x8a, 0x79, 0xd1, 0xe1, 0x79,
-       0x6a, 0x77, 0x84, 0x75, 0xf0, 0x8f, 0x88, 0x52, 0x9b, 0xa8, 0xfa, 0x16,
-       0xd7, 0x54, 0x3b, 0xc9, 0xff, 0x17, 0x31, 0x3e, 0x9f, 0x60, 0x20, 0x3d,
-       0x4b, 0xec, 0x57, 0xec, 0xaf, 0xf5, 0x2c, 0x30, 0xf5, 0xba, 0x9f, 0xda,
-       0x0a, 0x6c, 0x7f, 0x23, 0xcd, 0x31, 0x88, 0x97, 0xda, 0xd3, 0x72, 0x34,
-       0x84, 0x2d, 0xfc, 0xff, 0x82, 0x0a, 0x7a, 0x3b, 0xb6, 0x65, 0xc6, 0x78,
-       0x79, 0xff, 0x7f, 0x04, 0x8f, 0xf6, 0x71, 0x1c, 0x3f, 0x8e, 0xef, 0x7e,
-       0xfc, 0xac, 0x1c, 0x7c, 0xff, 0x51, 0xc3, 0xb3, 0x07, 0x04, 0xe7, 0x23,
-       0xb2, 0xb2, 0x88, 0xc1, 0x5d, 0xc4, 0x28, 0x24, 0xaf, 0xf4, 0x41, 0xdc,
-       0x9b, 0x13, 0x38, 0x37, 0x11, 0xe2, 0x19, 0x1c, 0xc0, 0xd9, 0x46, 0x3d,
-       0xff, 0x3d, 0xe2, 0x38, 0x58, 0xb8, 0x6b, 0x74, 0x62, 0x37, 0x96, 0xc4,
-       0x6e, 0xb4, 0xf5, 0xf0, 0x99, 0x5d, 0xf1, 0x52, 0xf2, 0xce, 0x67, 0xe2,
-       0x5e, 0xc1, 0xe5, 0x1e, 0x09, 0x3e, 0x28, 0x19, 0x9d, 0x7b, 0x7b, 0x93,
-       0xef, 0x97, 0x35, 0xce, 0xe5, 0xdc, 0xcf, 0x81, 0x6b, 0xa8, 0x96, 0x23,
-       0xb8, 0x6b, 0x68, 0x5d, 0x2f, 0x31, 0x76, 0x27, 0xc6, 0xa7, 0x62, 0x0c,
-       0x8b, 0x41, 0x41, 0x29, 0xb7, 0xba, 0x9f, 0x31, 0x96, 0xf8, 0x9e, 0xc6,
-       0xef, 0x1d, 0x1d, 0x1b, 0xc0, 0x1d, 0x6e, 0x32, 0xb8, 0x1d, 0xb2, 0x7e,
-       0xa3, 0xd3, 0x13, 0xdb, 0x11, 0xf3, 0x1e, 0xb8, 0x7b, 0x1f, 0x76, 0x85,
-       0xe0, 0x6d, 0xe7, 0x6e, 0x37, 0x87, 0x9c, 0x72, 0x1b, 0xb1, 0xbd, 0xab,
-       0x3a, 0x75, 0x71, 0x83, 0xfb, 0xae, 0x16, 0xf2, 0x4d, 0x1e, 0xbd, 0xb2,
-       0x4a, 0xef, 0xa2, 0x16, 0x5d, 0xc3, 0x9a, 0xeb, 0x98, 0xbb, 0xd2, 0x4a,
-       0x71, 0x84, 0x1e, 0x0f, 0xd8, 0x9c, 0x57, 0xff, 0xd4, 0x55, 0xa7, 0x7b,
-       0x2d, 0xff, 0xfd, 0x07, 0x5d, 0xe7, 0x92, 0xbb, 0xa8, 0x13, 0x00, 0x00,
-       0x00 };
-
-static const u32 bnx2_TPAT_b09FwData[(0x0/4) + 1] = { 0x0 };
-static const u32 bnx2_TPAT_b09FwRodata[(0x4/4) + 1] = {
-       0x00000001, 0x00000000 };
-
-static struct fw_info bnx2_tpat_fw_09 = {
-       /* Firmware version: 4.6.15 */
-       .ver_major                      = 0x4,
-       .ver_minor                      = 0x6,
-       .ver_fix                        = 0xf,
-
-       .start_addr                     = 0x08000488,
-
-       .text_addr                      = 0x08000400,
-       .text_len                       = 0x13a4,
-       .text_index                     = 0x0,
-       .gz_text                        = bnx2_TPAT_b09FwText,
-       .gz_text_len                    = sizeof(bnx2_TPAT_b09FwText),
-
-       .data_addr                      = 0x00000000,
-       .data_len                       = 0x0,
-       .data_index                     = 0x0,
-       .data                           = bnx2_TPAT_b09FwData,
-
-       .sbss_addr                      = 0x080017c0,
-       .sbss_len                       = 0x40,
-       .sbss_index                     = 0x0,
-
-       .bss_addr                       = 0x08001800,
-       .bss_len                        = 0x12b4,
-       .bss_index                      = 0x0,
-
-       .rodata_addr                    = 0x080017a4,
-       .rodata_len                     = 0x4,
-       .rodata_index                   = 0x0,
-       .rodata                         = bnx2_TPAT_b09FwRodata,
-};
-
-static u8 bnx2_TXP_b09FwText[] = {
-       0xc5, 0x7b, 0x7d, 0x70, 0x1b, 0xe7, 0x79, 0xe7, 0xef, 0xc5, 0x02, 0xe4,
-       0x02, 0x04, 0x41, 0x90, 0x82, 0x64, 0xf0, 0xca, 0x44, 0x58, 0x61, 0x41,
-       0xc1, 0x26, 0x2d, 0x2f, 0x28, 0x50, 0x82, 0xcb, 0x55, 0x85, 0x4a, 0xb4,
-       0x44, 0xc7, 0x74, 0x43, 0x3b, 0x6a, 0x4b, 0x67, 0x3c, 0x09, 0x2a, 0x51,
-       0x16, 0x2d, 0xcb, 0x16, 0xed, 0xf8, 0x7a, 0xec, 0x9c, 0x27, 0xda, 0x50,
-       0x1f, 0x96, 0x25, 0x10, 0x00, 0x3f, 0x64, 0xca, 0x9d, 0xce, 0x19, 0x26,
-       0x29, 0x51, 0xb6, 0xf1, 0x21, 0xc7, 0x4a, 0x6a, 0xcf, 0x24, 0x11, 0x4e,
-       0x96, 0x65, 0xd9, 0x89, 0x3f, 0x92, 0xf8, 0x7a, 0x4e, 0xa7, 0x37, 0xd5,
-       0x48, 0xfe, 0x90, 0x2c, 0xf9, 0xa3, 0x69, 0x6f, 0x2a, 0xb5, 0x4e, 0xf7,
-       0x9e, 0x67, 0x17, 0x94, 0x15, 0xd7, 0x9d, 0x9b, 0xf6, 0xfe, 0x38, 0xce,
-       0x70, 0x00, 0xec, 0xbe, 0xfb, 0xbe, 0xcf, 0xf7, 0xf3, 0x7b, 0x9e, 0xf7,
-       0xdd, 0x56, 0xc0, 0x83, 0xea, 0x5f, 0x3d, 0xfd, 0xc7, 0x87, 0x86, 0x1f,
-       0x8e, 0x2d, 0x5b, 0xb1, 0x8c, 0xbe, 0x76, 0xa2, 0xa1, 0xc6, 0xc9, 0x37,
-       0x57, 0x08, 0x20, 0xf5, 0x21, 0xfe, 0x43, 0x7f, 0x5f, 0xf9, 0x8f, 0x3d,
-       0x66, 0xfd, 0x49, 0x80, 0x7f, 0x9e, 0x2e, 0xfe, 0x87, 0xec, 0xd0, 0x93,
-       0x5d, 0x6b, 0x54, 0xc8, 0x92, 0x7e, 0x79, 0xd5, 0x26, 0x15, 0x48, 0x16,
-       0xda, 0x42, 0x6b, 0xf1, 0x1b, 0xd3, 0x08, 0x38, 0xc1, 0xd7, 0xbf, 0xa2,
-       0x7f, 0xb6, 0xe3, 0xc7, 0x2b, 0x95, 0x4f, 0xf3, 0x12, 0x64, 0xbf, 0x7e,
-       0x10, 0xfe, 0x56, 0xc8, 0x2d, 0xf4, 0xcc, 0x5f, 0x2c, 0x2d, 0x39, 0xe1,
-       0x9b, 0x9f, 0x0b, 0x86, 0x4b, 0xd7, 0xb0, 0x33, 0x3b, 0x84, 0x23, 0x71,
-       0xa0, 0x76, 0x34, 0xa2, 0xed, 0x04, 0x72, 0x0e, 0x3d, 0x12, 0x3a, 0x81,
-       0x10, 0x66, 0x0b, 0x2a, 0x1e, 0x2d, 0xc3, 0x70, 0xea, 0x21, 0x3c, 0x96,
-       0xfe, 0x17, 0x33, 0xe4, 0xe2, 0x47, 0x86, 0xb0, 0x8b, 0xc6, 0xee, 0x4e,
-       0x43, 0x0e, 0xea, 0x8f, 0x20, 0x98, 0x85, 0x5c, 0xaf, 0x0f, 0xa3, 0x38,
-       0x1a, 0x3e, 0x3d, 0x07, 0xa5, 0xaf, 0x59, 0x52, 0x86, 0x80, 0xb6, 0xd4,
-       0x5d, 0x42, 0xe9, 0x2f, 0x09, 0x25, 0xb1, 0x4d, 0x40, 0x16, 0x34, 0xee,
-       0x86, 0x02, 0x7f, 0x0e, 0x63, 0x69, 0x41, 0xc6, 0x19, 0x89, 0xe7, 0x59,
-       0x45, 0xf2, 0x16, 0x70, 0xaa, 0x1a, 0x76, 0x67, 0x79, 0x0d, 0x81, 0x9d,
-       0xf1, 0x88, 0x7f, 0x06, 0x7c, 0x3f, 0x84, 0x11, 0x6b, 0x9c, 0x42, 0x5c,
-       0x9b, 0xe6, 0x2e, 0xcd, 0x34, 0x0f, 0x69, 0xb5, 0x30, 0xfc, 0x4a, 0x10,
-       0x10, 0x18, 0xd1, 0x1c, 0x48, 0xfa, 0xd7, 0x84, 0x9c, 0x50, 0x82, 0x9b,
-       0xf1, 0xcf, 0xc4, 0x73, 0x32, 0xea, 0x82, 0x3d, 0x3e, 0x85, 0x5a, 0x54,
-       0xfc, 0xb6, 0xd4, 0xa6, 0xd3, 0xa6, 0x79, 0x4a, 0x75, 0xe2, 0x10, 0xc9,
-       0x67, 0xa4, 0xf0, 0xcf, 0x66, 0x85, 0x64, 0xb3, 0x4b, 0x9d, 0x5f, 0x5f,
-       0x46, 0xde, 0x6f, 0x9a, 0x33, 0x74, 0x6f, 0x4f, 0x61, 0x5e, 0xce, 0xa6,
-       0xe9, 0x50, 0x4d, 0x73, 0x93, 0xfa, 0x4f, 0xe6, 0xc6, 0xdf, 0x1a, 0x1b,
-       0xc3, 0x33, 0x39, 0x3f, 0x9e, 0xcd, 0x26, 0x51, 0x48, 0x9b, 0x90, 0x74,
-       0x27, 0x06, 0x47, 0x43, 0xd8, 0x56, 0xec, 0x46, 0x31, 0xad, 0xa4, 0xce,
-       0xd0, 0x73, 0x1b, 0xe3, 0x2a, 0xee, 0x2f, 0xf6, 0x60, 0x2e, 0x0d, 0xd3,
-       0xad, 0xab, 0x15, 0xb7, 0x88, 0x62, 0x4b, 0xb1, 0x17, 0xa5, 0xb4, 0x7a,
-       0x7a, 0x44, 0x44, 0x86, 0x9b, 0x25, 0x27, 0xb6, 0x17, 0xdb, 0xf1, 0x40,
-       0x31, 0x41, 0xcf, 0x98, 0xf8, 0x5a, 0xac, 0x85, 0xc6, 0x77, 0xe0, 0xe9,
-       0x49, 0xd3, 0x8c, 0xc6, 0xfc, 0x18, 0x2c, 0x6a, 0x98, 0xcb, 0x39, 0x90,
-       0x3a, 0xe4, 0x44, 0xea, 0x29, 0x60, 0xcb, 0x53, 0x1d, 0x98, 0xc9, 0x99,
-       0xd8, 0xa8, 0x8d, 0x34, 0x3b, 0xe0, 0x42, 0xca, 0x2f, 0xe0, 0x52, 0x7d,
-       0xd8, 0xec, 0xb7, 0x69, 0x3f, 0x23, 0x09, 0x6c, 0x7d, 0x2a, 0x8a, 0x77,
-       0xd2, 0x06, 0xbe, 0xd6, 0x19, 0xc4, 0x70, 0x31, 0x80, 0x37, 0xd3, 0x01,
-       0x5a, 0x43, 0xc3, 0x1b, 0x69, 0x99, 0xd6, 0x69, 0xc7, 0xc9, 0x34, 0x8f,
-       0xe1, 0xb1, 0x5e, 0x0c, 0x14, 0x5b, 0xf0, 0x7a, 0x3a, 0x48, 0x6b, 0x06,
-       0xf0, 0x2a, 0x8d, 0xbb, 0xb7, 0xa8, 0xe2, 0x34, 0x8d, 0x1b, 0x2c, 0x86,
-       0xf0, 0x4a, 0xda, 0x4b, 0xb4, 0x06, 0x70, 0x22, 0x3d, 0x84, 0x9d, 0xe9,
-       0xb6, 0xd3, 0x6b, 0x49, 0x86, 0xa1, 0x05, 0xbc, 0x0e, 0x5f, 0x7b, 0xd7,
-       0xec, 0x0d, 0x58, 0xa6, 0x42, 0xeb, 0xcc, 0xaf, 0x3b, 0x84, 0x91, 0xf4,
-       0xa9, 0xaa, 0xbf, 0x68, 0x78, 0x2c, 0x77, 0xd9, 0xfc, 0xf1, 0xd2, 0x16,
-       0x1c, 0xc9, 0x02, 0x4f, 0xcf, 0x00, 0x33, 0x59, 0xc3, 0xac, 0xd7, 0x4d,
-       0x73, 0xba, 0xb3, 0x9d, 0xe4, 0xa5, 0xf6, 0x6f, 0xa4, 0x51, 0xcf, 0x96,
-       0x9d, 0xc0, 0x53, 0x4a, 0x7f, 0x05, 0x0e, 0xe4, 0xe7, 0x9c, 0xa8, 0x19,
-       0x55, 0x7a, 0xf2, 0x50, 0x4e, 0x6f, 0x21, 0x8f, 0x3a, 0x94, 0x55, 0xfa,
-       0x0c, 0xec, 0x30, 0x83, 0x7a, 0x6b, 0xa8, 0x5d, 0x32, 0xe1, 0x23, 0x5b,
-       0x48, 0xb7, 0x9b, 0x66, 0xc3, 0x4a, 0xd3, 0x7c, 0xbd, 0x13, 0xa6, 0x43,
-       0x57, 0x4f, 0x97, 0xa1, 0x56, 0x3e, 0x82, 0x3a, 0x7c, 0x02, 0x95, 0xaf,
-       0x78, 0x11, 0x19, 0x0c, 0x4b, 0x91, 0xa1, 0xcb, 0xf4, 0x6c, 0x7d, 0x91,
-       0xcc, 0x99, 0x78, 0x51, 0x47, 0x81, 0x62, 0x59, 0x86, 0x93, 0xf8, 0x69,
-       0x1f, 0x35, 0x4d, 0xa7, 0xea, 0x85, 0x97, 0xe4, 0xbb, 0xfe, 0x80, 0x69,
-       0xbe, 0xaf, 0xf9, 0x51, 0x43, 0xba, 0xb9, 0x65, 0xcc, 0xc4, 0xb4, 0x76,
-       0x82, 0xe4, 0x29, 0x90, 0xea, 0x8b, 0xd3, 0x33, 0x01, 0x1a, 0x9f, 0xc0,
-       0xfa, 0xd1, 0x20, 0x9e, 0xc9, 0xca, 0xf8, 0xf1, 0xd2, 0x28, 0xea, 0x68,
-       0x2e, 0x0f, 0xc9, 0xaa, 0x96, 0xe4, 0x87, 0x22, 0x99, 0x5b, 0xd1, 0xb6,
-       0x47, 0x14, 0xcf, 0x10, 0x8f, 0x41, 0x7c, 0xbf, 0x1c, 0xc0, 0x73, 0x65,
-       0x3f, 0x8e, 0x96, 0x5b, 0x70, 0xbc, 0xac, 0xe1, 0x60, 0x4e, 0xd9, 0x5b,
-       0x81, 0x89, 0x7a, 0x7d, 0x07, 0x1a, 0x96, 0x03, 0x6f, 0xe6, 0x63, 0xc8,
-       0xe4, 0x4c, 0xb3, 0x40, 0x74, 0x7b, 0x88, 0x8f, 0x37, 0xf2, 0x5f, 0xc5,
-       0xe1, 0x49, 0x27, 0x42, 0xd3, 0x01, 0x3c, 0x9b, 0x76, 0xe2, 0xfa, 0x8c,
-       0x62, 0xe4, 0xa1, 0x46, 0xb7, 0x09, 0x35, 0x79, 0x83, 0x50, 0x72, 0x06,
-       0x22, 0x21, 0x97, 0x70, 0xa0, 0xf5, 0xb0, 0x13, 0x6a, 0x29, 0x04, 0x57,
-       0xab, 0x0c, 0xb5, 0xf5, 0x21, 0xc0, 0xe7, 0x40, 0x0d, 0xf9, 0xc6, 0xfa,
-       0xf1, 0x28, 0x5d, 0x0b, 0xd0, 0x35, 0x7c, 0xb5, 0x16, 0xd2, 0x22, 0x09,
-       0x24, 0x3b, 0x55, 0x42, 0xd2, 0x69, 0x9a, 0x92, 0xda, 0x81, 0xbb, 0x1e,
-       0x37, 0xcd, 0xf0, 0x72, 0x1e, 0xef, 0x47, 0xb8, 0x44, 0x72, 0x68, 0x25,
-       0xba, 0xb2, 0x44, 0x67, 0x96, 0xe8, 0xcc, 0x12, 0x9d, 0x59, 0x89, 0xec,
-       0x46, 0xd1, 0x80, 0x47, 0x48, 0x5f, 0x21, 0xe2, 0xf1, 0x1d, 0x4b, 0x57,
-       0xcf, 0x95, 0x83, 0xc4, 0x43, 0xc8, 0xe2, 0xe1, 0xe9, 0x9c, 0x80, 0x43,
-       0x55, 0xfa, 0xce, 0x60, 0x35, 0xc2, 0x31, 0x25, 0x99, 0x47, 0x92, 0x9e,
-       0x53, 0xf6, 0x1a, 0x50, 0x7a, 0x2a, 0x64, 0x03, 0x1b, 0xfd, 0x09, 0xcc,
-       0x65, 0x5d, 0xa8, 0x53, 0x95, 0x10, 0xe9, 0x2c, 0x5a, 0xc1, 0x02, 0xdc,
-       0xe7, 0xa7, 0x39, 0x1d, 0xb2, 0xb0, 0x63, 0xc9, 0x23, 0x88, 0x8c, 0x3b,
-       0x30, 0xab, 0x49, 0xe4, 0xa3, 0x1a, 0xa4, 0x56, 0x5a, 0xae, 0x14, 0xa7,
-       0x4f, 0x9a, 0x3f, 0x4b, 0x6b, 0x11, 0x3d, 0x34, 0x1f, 0xf9, 0x26, 0xcb,
-       0x32, 0x4a, 0x34, 0x3c, 0x6a, 0xd1, 0x7b, 0xb4, 0xfc, 0x75, 0x61, 0xdb,
-       0x90, 0x4e, 0x36, 0xa3, 0x84, 0x20, 0x94, 0x68, 0x48, 0x28, 0x5a, 0x52,
-       0xf8, 0x31, 0x53, 0x7e, 0x83, 0xc6, 0x04, 0xae, 0x19, 0xd3, 0x87, 0x91,
-       0xac, 0xc0, 0x5a, 0xd5, 0xc4, 0x1a, 0xad, 0x0f, 0x3b, 0xcb, 0xf3, 0xbe,
-       0xc9, 0x31, 0xcc, 0xef, 0x9b, 0x49, 0x77, 0x63, 0x57, 0x36, 0x84, 0x9d,
-       0x85, 0xa0, 0x6f, 0x3a, 0xcd, 0xf7, 0x54, 0xf2, 0x79, 0xbe, 0x17, 0xb8,
-       0xe6, 0x5e, 0xcb, 0x35, 0xf7, 0x12, 0x18, 0x99, 0xf8, 0x1d, 0x8a, 0x23,
-       0x0d, 0xd8, 0xa9, 0x7e, 0x4a, 0xf6, 0xa2, 0x26, 0x06, 0xd0, 0x8c, 0x33,
-       0xfe, 0x76, 0xec, 0x9f, 0xea, 0xc5, 0xae, 0xa9, 0x65, 0x78, 0x6c, 0xa2,
-       0x25, 0xe5, 0xd1, 0x49, 0x38, 0x9e, 0x70, 0x72, 0x40, 0x28, 0x43, 0x92,
-       0x08, 0x47, 0x07, 0xc8, 0x7e, 0x5b, 0x1b, 0x4d, 0xf3, 0x44, 0x8c, 0xec,
-       0x5b, 0x6b, 0xd3, 0xd6, 0x93, 0x00, 0x2a, 0x7d, 0x4a, 0xcf, 0xbb, 0xf0,
-       0xe2, 0x76, 0xb2, 0xbb, 0x99, 0x18, 0x06, 0x24, 0x48, 0xed, 0x5e, 0xfc,
-       0xbd, 0xf9, 0x94, 0x93, 0xe5, 0x6e, 0xee, 0xd8, 0xa4, 0xed, 0x15, 0x1c,
-       0xeb, 0x6a, 0xae, 0xc6, 0x13, 0x9e, 0x9f, 0x9f, 0x21, 0xdd, 0xd1, 0x3c,
-       0x83, 0xb1, 0xb6, 0xc4, 0x20, 0x2e, 0x9b, 0x67, 0x36, 0xf4, 0x62, 0xe7,
-       0xdc, 0x32, 0xec, 0x9b, 0x70, 0x21, 0xd9, 0x28, 0xd0, 0xa0, 0x86, 0x2b,
-       0xf7, 0x61, 0x19, 0x8c, 0x19, 0x7e, 0xae, 0x17, 0x07, 0xe7, 0xec, 0xdf,
-       0xd9, 0xab, 0xbf, 0xe7, 0xe7, 0x3b, 0x4f, 0x3a, 0x65, 0x79, 0x72, 0xac,
-       0x24, 0x15, 0xe8, 0x6d, 0x38, 0x32, 0x11, 0x20, 0xdd, 0x76, 0x0b, 0xe7,
-       0xe1, 0x45, 0x3e, 0xcf, 0xe3, 0x26, 0x4e, 0x69, 0xa4, 0xe7, 0xec, 0x3a,
-       0xe1, 0x39, 0xdc, 0x23, 0x5c, 0xa5, 0x3b, 0x45, 0xcd, 0xf4, 0x37, 0x85,
-       0x7c, 0x38, 0x25, 0x6a, 0x4b, 0xed, 0x24, 0xfb, 0x7e, 0xe1, 0x3e, 0xac,
-       0x84, 0x42, 0xe2, 0x11, 0xd2, 0xe7, 0x06, 0x21, 0x95, 0xe0, 0x77, 0xe8,
-       0xc3, 0xc2, 0x51, 0xa2, 0x39, 0x2c, 0x1b, 0xe2, 0x75, 0x82, 0xa4, 0x37,
-       0x18, 0x92, 0x3e, 0x84, 0x8d, 0x14, 0xff, 0x6f, 0x4d, 0xeb, 0x78, 0x34,
-       0x5b, 0x4b, 0x31, 0x92, 0x7d, 0xff, 0x32, 0xad, 0xab, 0xe2, 0x31, 0xca,
-       0x15, 0xb2, 0xbe, 0x0f, 0x3e, 0xf2, 0xb9, 0xd7, 0x63, 0xec, 0x8f, 0x40,
-       0x21, 0x1b, 0xee, 0x7f, 0x54, 0x98, 0xe6, 0xd6, 0x88, 0xb9, 0x78, 0x5d,
-       0xac, 0x2d, 0x7a, 0x12, 0xff, 0x68, 0xe6, 0x03, 0x43, 0xa8, 0xef, 0xa4,
-       0x7b, 0xa3, 0x90, 0x5d, 0xfa, 0x2e, 0x1c, 0xa2, 0x5c, 0xe2, 0xd1, 0x29,
-       0xbe, 0x8c, 0x86, 0xfb, 0x1f, 0x13, 0x1c, 0xf3, 0x95, 0xca, 0xb3, 0x18,
-       0x39, 0x5d, 0x0b, 0x25, 0xb4, 0x46, 0xb4, 0x69, 0x75, 0x92, 0x91, 0x68,
-       0xa6, 0x14, 0xe7, 0xee, 0x54, 0x86, 0xf7, 0x40, 0xf1, 0x5f, 0x00, 0xfb,
-       0x2a, 0xe7, 0x93, 0x5d, 0x48, 0x58, 0x79, 0xc5, 0xc0, 0x4d, 0x57, 0xf3,
-       0x8a, 0x4e, 0x76, 0x52, 0x8b, 0x3d, 0x44, 0xd7, 0xcb, 0x9a, 0x12, 0x9c,
-       0x86, 0xb9, 0x78, 0x40, 0xe3, 0x7b, 0x3a, 0x76, 0x95, 0xcd, 0x90, 0xa4,
-       0xb3, 0xac, 0x90, 0xaa, 0xd5, 0x99, 0x56, 0x3f, 0xf9, 0xc6, 0x6f, 0xcc,
-       0x81, 0xb8, 0xac, 0xbd, 0x57, 0xf0, 0x93, 0xbc, 0xe0, 0x73, 0x16, 0xbf,
-       0x2c, 0xff, 0x9a, 0x70, 0xe8, 0xbf, 0x31, 0xbf, 0x1d, 0x87, 0x6f, 0x71,
-       0xd1, 0x99, 0xaa, 0xd3, 0xd1, 0x37, 0x3c, 0xba, 0xc3, 0x6c, 0x56, 0x1d,
-       0x14, 0xab, 0x54, 0x8a, 0xed, 0xde, 0xc4, 0xa5, 0x4e, 0xb7, 0x78, 0xbd,
-       0x33, 0xd8, 0xfb, 0x51, 0xc1, 0x4d, 0x7a, 0x46, 0xdf, 0xb6, 0x62, 0xc2,
-       0xf9, 0x21, 0xd9, 0x5a, 0x0d, 0xc5, 0x55, 0x14, 0x5b, 0x7a, 0x2f, 0x50,
-       0x2e, 0xba, 0x25, 0xe6, 0xfe, 0xe3, 0x1a, 0xdd, 0xf1, 0x55, 0x37, 0x1e,
-       0xbc, 0x69, 0x36, 0xd1, 0x40, 0xb1, 0xdd, 0x8f, 0xd3, 0xf1, 0x1e, 0x8c,
-       0x94, 0x6b, 0xc9, 0x0e, 0x9f, 0xaf, 0xec, 0x56, 0x5b, 0x7a, 0x2f, 0xa6,
-       0x17, 0x53, 0x2c, 0xc1, 0x67, 0x85, 0x4e, 0xb5, 0x6f, 0x9b, 0x38, 0x71,
-       0xab, 0x07, 0x71, 0x92, 0xab, 0x2c, 0x5f, 0x49, 0xe3, 0xd3, 0xc5, 0xaa,
-       0x5a, 0x59, 0x2d, 0xb5, 0x0e, 0xc9, 0x52, 0xeb, 0x70, 0x0d, 0xc5, 0xe1,
-       0xf3, 0x37, 0x0a, 0x9c, 0xba, 0x31, 0x92, 0xa8, 0x11, 0x6e, 0x9c, 0xe9,
-       0x4b, 0x90, 0x9d, 0xb4, 0xa4, 0xdc, 0x3a, 0xc5, 0x8f, 0x51, 0x01, 0x49,
-       0x4d, 0x60, 0xe7, 0x0c, 0x1e, 0x19, 0xd1, 0x7a, 0x61, 0xcc, 0xb1, 0x0d,
-       0xb5, 0x63, 0x64, 0xae, 0x0f, 0x46, 0x59, 0x42, 0x3e, 0x40, 0xcc, 0x97,
-       0x91, 0x72, 0xe9, 0xed, 0xdd, 0xf9, 0xc2, 0x5d, 0x2e, 0xdb, 0x87, 0x89,
-       0xff, 0xec, 0xa4, 0x0f, 0x1e, 0xd6, 0xf3, 0x69, 0x92, 0x51, 0x3b, 0x9e,
-       0x2f, 0x47, 0x29, 0xde, 0x69, 0x24, 0x17, 0x95, 0xe2, 0x45, 0x88, 0xec,
-       0x4b, 0xc6, 0xc6, 0x09, 0xe5, 0x20, 0xc5, 0x85, 0x5c, 0x9e, 0x40, 0x51,
-       0x32, 0xe0, 0xa7, 0xfc, 0xfd, 0x6a, 0x35, 0x06, 0x0c, 0xd2, 0xa7, 0x62,
-       0x24, 0x81, 0x93, 0x0e, 0xa0, 0xa3, 0x59, 0x8f, 0xec, 0x6d, 0x26, 0x7d,
-       0x34, 0x96, 0xdc, 0xd8, 0x3e, 0xd1, 0x84, 0x07, 0xa6, 0x3c, 0xd8, 0x3a,
-       0x61, 0xe2, 0x52, 0x8c, 0x6d, 0x43, 0xe9, 0x27, 0x12, 0xbb, 0xeb, 0x48,
-       0xae, 0xb7, 0xc6, 0x22, 0x09, 0xb7, 0x70, 0xa2, 0xb6, 0xd4, 0x47, 0x38,
-       0x20, 0xc9, 0x7e, 0xa1, 0xd1, 0x1c, 0xa1, 0x9d, 0xda, 0xed, 0x48, 0x05,
-       0x64, 0xb8, 0x4a, 0x5e, 0x8a, 0x25, 0xec, 0xc7, 0x7c, 0xef, 0xeb, 0xd8,
-       0x58, 0xe3, 0x85, 0x94, 0x91, 0x91, 0x23, 0x0c, 0x80, 0x45, 0x35, 0xe8,
-       0x69, 0x75, 0xd0, 0x7f, 0xc0, 0x37, 0x3b, 0xd9, 0xe2, 0x3b, 0x44, 0xf1,
-       0x75, 0x4b, 0xd6, 0xc1, 0xeb, 0x30, 0x66, 0xa0, 0xb9, 0xfd, 0x78, 0x9a,
-       0xe2, 0xf5, 0x43, 0x14, 0x7f, 0x8e, 0x94, 0xcb, 0x82, 0xe3, 0x89, 0xc5,
-       0x4f, 0x96, 0x78, 0xcb, 0x12, 0x6f, 0x59, 0xe2, 0x8b, 0xe2, 0xc2, 0xd1,
-       0x2c, 0xf3, 0xf1, 0x6b, 0xf2, 0xd1, 0x04, 0xf1, 0xee, 0xc6, 0x66, 0xa2,
-       0xf7, 0xc1, 0xa9, 0x3a, 0x6c, 0x23, 0x7a, 0x8b, 0x9a, 0xa2, 0x3d, 0x27,
-       0x4c, 0xec, 0x8f, 0x29, 0xc6, 0x4f, 0x29, 0x10, 0x39, 0x5a, 0x4d, 0xb3,
-       0x4f, 0x63, 0x9e, 0x29, 0x5e, 0x39, 0x2c, 0x9e, 0xf7, 0x26, 0xe1, 0xc6,
-       0x20, 0x3d, 0x33, 0x30, 0x85, 0xcf, 0x1c, 0xc4, 0x93, 0x9b, 0x78, 0xdc,
-       0xa7, 0x29, 0x89, 0x1b, 0x28, 0xae, 0x9f, 0x53, 0x23, 0x95, 0x73, 0x12,
-       0x7e, 0x9f, 0xe4, 0x31, 0xcc, 0xf2, 0xb8, 0x89, 0xf8, 0x79, 0x80, 0xf0,
-       0x4e, 0x3d, 0xc5, 0xa5, 0xc2, 0x81, 0x48, 0xf4, 0x97, 0xc4, 0x7b, 0xa4,
-       0x44, 0xb4, 0x8f, 0xda, 0xb4, 0xdf, 0xc7, 0xb4, 0xc7, 0x4c, 0xdc, 0x43,
-       0xb4, 0x1f, 0x26, 0xda, 0x07, 0xb3, 0x2c, 0x0f, 0xce, 0x3b, 0x36, 0xfd,
-       0x47, 0xca, 0xbc, 0xee, 0x97, 0xf1, 0x30, 0x4f, 0x7f, 0x13, 0x36, 0x4e,
-       0xcd, 0xcb, 0xcb, 0x34, 0xbf, 0xad, 0x1d, 0x33, 0xff, 0x84, 0x64, 0xb6,
-       0xb8, 0xc4, 0x72, 0x83, 0x51, 0xab, 0x47, 0x0e, 0x6e, 0xc1, 0x7d, 0x0e,
-       0x78, 0xbc, 0x58, 0x50, 0xe2, 0x5c, 0x10, 0xc2, 0x31, 0xd2, 0xef, 0x71,
-       0xca, 0x67, 0xcf, 0x97, 0xaf, 0xcd, 0x6f, 0xac, 0xeb, 0x49, 0xd2, 0xb1,
-       0x92, 0x37, 0x28, 0xb6, 0xa5, 0xca, 0x49, 0xec, 0x9e, 0x42, 0x72, 0x56,
-       0xfb, 0x6f, 0x14, 0x60, 0x16, 0x91, 0x7d, 0xd5, 0x26, 0xfd, 0xaa, 0x07,
-       0x9b, 0x66, 0x02, 0x18, 0x2a, 0xaf, 0x41, 0x96, 0xe2, 0xcd, 0x36, 0x8a,
-       0xcf, 0x1f, 0xc7, 0x92, 0x5b, 0x7d, 0x88, 0x90, 0x7e, 0x03, 0xb8, 0x8f,
-       0x9e, 0xd9, 0x37, 0xc5, 0x3c, 0xf8, 0xab, 0x7a, 0x0e, 0x60, 0x0b, 0x5d,
-       0xdb, 0x33, 0x25, 0xe3, 0x25, 0xed, 0x49, 0xc2, 0x34, 0x36, 0xc6, 0xb8,
-       0x27, 0x0b, 0x3f, 0xb9, 0x27, 0x61, 0xc0, 0x48, 0xf4, 0x25, 0xfa, 0xbd,
-       0xb9, 0xec, 0xf1, 0x8d, 0x4c, 0xe2, 0x7b, 0x8b, 0x75, 0x1f, 0x16, 0x10,
-       0x1e, 0xbb, 0x4b, 0x8b, 0x90, 0xdd, 0x3b, 0x31, 0x5c, 0x76, 0xe0, 0x3b,
-       0x33, 0x1e, 0x3c, 0x34, 0xf1, 0x99, 0x59, 0x13, 0x77, 0xe2, 0x8e, 0x56,
-       0x0f, 0x1e, 0x9c, 0x49, 0x62, 0xef, 0x14, 0x42, 0xb5, 0xb1, 0x31, 0x8a,
-       0xdd, 0x76, 0x3e, 0xa8, 0x23, 0xde, 0x1f, 0x9b, 0xf2, 0xfa, 0x06, 0x0f,
-       0xb0, 0x0c, 0xd6, 0x04, 0xdd, 0x40, 0xa5, 0x36, 0x26, 0x61, 0xb3, 0x26,
-       0x2d, 0xa8, 0x25, 0x43, 0x7f, 0x92, 0xe6, 0x9b, 0x86, 0xf4, 0xda, 0x62,
-       0x44, 0x0e, 0x36, 0x4b, 0x95, 0xdc, 0x02, 0x34, 0xe1, 0xa1, 0xb9, 0x24,
-       0xc6, 0xc8, 0x46, 0xb7, 0x4f, 0x8c, 0x7c, 0xaf, 0x91, 0x62, 0x88, 0xaf,
-       0x43, 0x19, 0x7c, 0x53, 0xe8, 0x28, 0x44, 0xdc, 0xd8, 0x36, 0xe3, 0xf5,
-       0x6d, 0x3d, 0x60, 0xae, 0x66, 0x7b, 0xba, 0x77, 0xae, 0x09, 0xf7, 0x4f,
-       0xd1, 0xb5, 0x09, 0xb6, 0x61, 0xb2, 0xb5, 0x48, 0x2d, 0xf1, 0x16, 0x4e,
-       0xba, 0x09, 0x33, 0x49, 0xb1, 0x3a, 0x92, 0x87, 0x1b, 0x5b, 0x2c, 0x5b,
-       0xf0, 0x63, 0xf3, 0x94, 0x89, 0xb3, 0x5a, 0x14, 0x39, 0xb2, 0xeb, 0x83,
-       0x53, 0xca, 0xe5, 0x6e, 0xc2, 0x3b, 0xef, 0x49, 0xca, 0xc1, 0x56, 0x29,
-       0x89, 0xa6, 0xe5, 0x14, 0xe3, 0x9b, 0x4c, 0xf3, 0x9e, 0x8e, 0xb6, 0xa1,
-       0xb7, 0x88, 0xe6, 0x46, 0x7d, 0x11, 0x2a, 0x8d, 0x4a, 0x8e, 0xb0, 0xf3,
-       0x70, 0x8d, 0xe3, 0x46, 0x9c, 0x59, 0x48, 0x7a, 0x06, 0xc7, 0xf2, 0x80,
-       0xaf, 0x29, 0x63, 0xe7, 0xb8, 0x26, 0xb2, 0x93, 0xc6, 0x4c, 0xd0, 0xd7,
-       0x58, 0x82, 0xaf, 0xa6, 0x04, 0xbc, 0x40, 0xf1, 0x65, 0xc1, 0xf2, 0xdf,
-       0x98, 0xa9, 0x26, 0x0b, 0x13, 0xfa, 0x5e, 0x9c, 0x54, 0x8c, 0x0a, 0x94,
-       0xbd, 0x14, 0x2a, 0xf1, 0xc4, 0x9c, 0xd3, 0x77, 0x98, 0xf0, 0x5f, 0x93,
-       0x1a, 0xc5, 0x1e, 0xd2, 0xe7, 0x0e, 0xb2, 0x85, 0xbf, 0x27, 0x7c, 0xf2,
-       0x58, 0x26, 0x1c, 0xd2, 0x44, 0x3f, 0x4d, 0x0c, 0xec, 0x2a, 0x51, 0xcc,
-       0x77, 0xac, 0xa5, 0x20, 0xa6, 0x44, 0x29, 0xad, 0x21, 0x9d, 0x71, 0xc1,
-       0x58, 0x68, 0xeb, 0xe4, 0xfe, 0xec, 0x71, 0xd3, 0xa7, 0xaa, 0xf9, 0x12,
-       0xe9, 0xec, 0xe1, 0xb2, 0x17, 0xc3, 0x84, 0x07, 0x16, 0x10, 0x8e, 0x7c,
-       0x90, 0xec, 0x62, 0xfb, 0x84, 0x44, 0xf4, 0xf1, 0xb8, 0x24, 0x92, 0x8b,
-       0x6c, 0x3c, 0xfa, 0xd0, 0x0c, 0xdb, 0x25, 0xd9, 0x11, 0xd9, 0xe2, 0x31,
-       0xca, 0xf9, 0xcf, 0xff, 0x16, 0x06, 0x51, 0xfc, 0xc6, 0xd5, 0xdc, 0x6f,
-       0xcb, 0x63, 0x64, 0x8a, 0x79, 0x56, 0x0e, 0xc2, 0x91, 0xc4, 0x2d, 0xda,
-       0xaf, 0x28, 0x27, 0x30, 0xef, 0x84, 0x83, 0xa7, 0xa2, 0x94, 0x57, 0x08,
-       0xdb, 0xc4, 0x2e, 0x99, 0x5b, 0x02, 0x2c, 0x03, 0xe6, 0xe7, 0x66, 0x89,
-       0xf3, 0x67, 0x13, 0xe1, 0xdf, 0xff, 0x77, 0xbb, 0xdb, 0x64, 0xa6, 0x2c,
-       0x3c, 0x4b, 0x38, 0x9b, 0xec, 0x29, 0x75, 0xd5, 0x7e, 0x1e, 0x34, 0xcf,
-       0x04, 0x38, 0x5f, 0x37, 0x21, 0x75, 0xd5, 0x16, 0xd8, 0x96, 0xb0, 0x58,
-       0xeb, 0xd8, 0xf9, 0xa0, 0x1f, 0x6c, 0x0f, 0xd1, 0x6b, 0xec, 0xc1, 0x43,
-       0x34, 0xf9, 0xb1, 0x75, 0x8e, 0xed, 0xd7, 0xfc, 0x64, 0xb1, 0xfe, 0x2f,
-       0xe6, 0x95, 0x95, 0xea, 0xc1, 0x5f, 0xe1, 0xeb, 0x74, 0x3d, 0x80, 0xef,
-       0x90, 0x1f, 0xdd, 0x47, 0x7c, 0x6e, 0xed, 0x7c, 0xc0, 0xf2, 0xdb, 0xad,
-       0xe5, 0xdf, 0xa3, 0xeb, 0x2c, 0xef, 0x6e, 0x8a, 0x73, 0x1a, 0xf6, 0x65,
-       0x2b, 0x9c, 0x87, 0xc8, 0xe6, 0xe3, 0xf8, 0x4b, 0x8a, 0xb3, 0xc7, 0xca,
-       0x8c, 0xc9, 0x12, 0x16, 0x1e, 0xfb, 0x61, 0xb9, 0x1d, 0x3f, 0x20, 0x9f,
-       0x7c, 0x9e, 0x62, 0xee, 0xf7, 0x2d, 0x9c, 0xe6, 0x14, 0x8f, 0xa6, 0x55,
-       0x3c, 0x4d, 0x58, 0x7f, 0x5f, 0x21, 0x84, 0x23, 0xe9, 0xf0, 0xde, 0x0b,
-       0x50, 0x5e, 0x20, 0x79, 0xf9, 0xf6, 0x52, 0x8d, 0x76, 0x38, 0xad, 0xe4,
-       0x81, 0xa0, 0x6f, 0x4f, 0xc1, 0xef, 0x1b, 0x49, 0x07, 0x7c, 0x23, 0x84,
-       0x81, 0x76, 0xa6, 0x5b, 0x7c, 0x3b, 0x0b, 0xcb, 0x11, 0x6a, 0x82, 0xb1,
-       0x88, 0x72, 0xc2, 0x7d, 0x13, 0x1b, 0x90, 0x6a, 0xb4, 0xe3, 0xfc, 0x03,
-       0x53, 0x1c, 0x83, 0xdb, 0x52, 0x37, 0x3a, 0xbe, 0x5e, 0xd5, 0xb7, 0x1f,
-       0x43, 0x74, 0xad, 0xa1, 0x03, 0xbe, 0x37, 0xad, 0x58, 0x0b, 0x3c, 0x4f,
-       0xb6, 0xf5, 0x50, 0xc7, 0x6f, 0xcc, 0x64, 0xd5, 0xb6, 0x7e, 0x30, 0xe9,
-       0xa4, 0xf8, 0x6a, 0x9a, 0x47, 0x3b, 0x04, 0x02, 0x1d, 0xdd, 0x30, 0x9a,
-       0xe6, 0x6b, 0xc8, 0x64, 0xbe, 0xb9, 0x83, 0x22, 0x94, 0x7a, 0x0b, 0x12,
-       0x0b, 0x28, 0xb5, 0x74, 0xac, 0xae, 0xde, 0x93, 0xf1, 0x9d, 0x09, 0x37,
-       0x52, 0x4d, 0x7e, 0xcc, 0x12, 0x36, 0xd9, 0x68, 0xc5, 0xa2, 0xb6, 0xd3,
-       0xc7, 0xa9, 0x96, 0x09, 0x7d, 0xc3, 0x4f, 0xbc, 0x26, 0x21, 0x77, 0x10,
-       0x90, 0xa8, 0xd2, 0xc4, 0xbf, 0x73, 0x73, 0x51, 0xec, 0x2e, 0xff, 0xd8,
-       0x61, 0xe7, 0x13, 0x25, 0x9f, 0xc4, 0x4f, 0x28, 0x2f, 0xd2, 0xbd, 0xec,
-       0x9b, 0x66, 0xc8, 0xb2, 0x33, 0x81, 0xc7, 0x97, 0x45, 0xf6, 0xfe, 0x4f,
-       0xc7, 0x75, 0xc4, 0x17, 0xc9, 0x2a, 0x6b, 0xd5, 0x8e, 0x0d, 0xd7, 0xa9,
-       0x0f, 0xe2, 0x2f, 0xfd, 0x2c, 0xcb, 0x61, 0x91, 0xa5, 0x3a, 0xf5, 0x8c,
-       0x0b, 0x0d, 0x41, 0x35, 0x8b, 0x17, 0xfa, 0xf8, 0x5a, 0xc0, 0xf7, 0x44,
-       0x3a, 0xe9, 0x08, 0xa8, 0xf0, 0xbb, 0xf4, 0x6e, 0xf1, 0x04, 0x61, 0xc0,
-       0x89, 0x74, 0x8f, 0x98, 0x28, 0xdc, 0x29, 0x8c, 0xfc, 0x37, 0x85, 0x31,
-       0x9b, 0x12, 0x46, 0xa1, 0x9f, 0x3e, 0x37, 0x88, 0xc9, 0xc2, 0xb0, 0xd8,
-       0x5d, 0xe0, 0x79, 0x49, 0x27, 0x34, 0xf7, 0x0f, 0x29, 0xc6, 0xfe, 0x80,
-       0x62, 0xec, 0x31, 0x8a, 0xb1, 0xcf, 0x93, 0x5d, 0x7f, 0xff, 0x2a, 0x96,
-       0x65, 0x5b, 0x4e, 0x32, 0x06, 0xf1, 0xfd, 0xbc, 0xf4, 0x12, 0xe9, 0x95,
-       0x65, 0xf6, 0x13, 0xb2, 0x61, 0x96, 0xc5, 0x7f, 0xe6, 0x9c, 0x40, 0xfa,
-       0xf8, 0xd0, 0xb2, 0xd9, 0xc7, 0x97, 0x31, 0x66, 0x1a, 0x16, 0x3b, 0x98,
-       0xae, 0x5a, 0xaa, 0xdb, 0x55, 0xc2, 0x21, 0xd9, 0x61, 0xb1, 0xb1, 0xc0,
-       0xd7, 0xf7, 0xe1, 0x3e, 0xaa, 0xff, 0xb6, 0xc6, 0xc2, 0x89, 0x6e, 0xc2,
-       0x48, 0x17, 0x54, 0x73, 0x71, 0x34, 0x46, 0x98, 0xe1, 0xc6, 0x2b, 0x54,
-       0xab, 0x22, 0xb9, 0x2d, 0xae, 0xe4, 0xf3, 0x76, 0x5e, 0xcd, 0xa5, 0xc1,
-       0x75, 0x3a, 0x1a, 0x9c, 0xaa, 0x72, 0x24, 0x89, 0xf0, 0xde, 0xb8, 0x03,
-       0x46, 0x8d, 0xee, 0xc2, 0x80, 0x55, 0x17, 0xae, 0x41, 0x66, 0x42, 0xe0,
-       0x65, 0xf2, 0x01, 0x17, 0xc9, 0xe8, 0x50, 0x27, 0x3e, 0x23, 0xb5, 0x0a,
-       0xaa, 0xe3, 0x4f, 0x9f, 0xa5, 0x9c, 0x73, 0x17, 0xe5, 0xd6, 0x89, 0xec,
-       0x0a, 0x04, 0x3b, 0x64, 0x34, 0x74, 0x38, 0xf1, 0x8d, 0xd2, 0xef, 0xe3,
-       0x4c, 0x63, 0xe4, 0xe0, 0x0b, 0xf0, 0xf8, 0x5e, 0x9a, 0x64, 0x7a, 0xf0,
-       0xbd, 0x3a, 0xaa, 0xd7, 0xb6, 0x12, 0x4e, 0x1a, 0x27, 0x1a, 0x7a, 0x3a,
-       0x22, 0x3d, 0xb7, 0x09, 0xf8, 0x6b, 0xf5, 0x1a, 0x8c, 0xb7, 0xfa, 0xe0,
-       0x57, 0x53, 0xe2, 0xd5, 0x02, 0xe5, 0x0d, 0xc7, 0x37, 0xc5, 0x5b, 0xb3,
-       0x3a, 0xf6, 0x96, 0xfb, 0xc5, 0x2f, 0x66, 0x65, 0x90, 0x4e, 0x28, 0x3e,
-       0x69, 0xc8, 0x10, 0x5d, 0x2e, 0xc2, 0x42, 0x2f, 0xdf, 0x21, 0x70, 0x9d,
-       0x9a, 0xc4, 0x77, 0x56, 0xb0, 0xcd, 0xdb, 0xb1, 0x2b, 0x98, 0x51, 0x42,
-       0x49, 0x47, 0xb7, 0x08, 0x52, 0xec, 0x6a, 0xc8, 0xf4, 0x88, 0x06, 0xc2,
-       0x9e, 0x0b, 0xa7, 0x37, 0x88, 0x05, 0x25, 0xc6, 0x9a, 0xf0, 0x2f, 0x24,
-       0xd9, 0x2c, 0x2c, 0x7d, 0x20, 0xd9, 0x18, 0xdf, 0xc5, 0xb6, 0x43, 0x39,
-       0x4a, 0xf6, 0xfd, 0x7a, 0x32, 0x89, 0x5b, 0x3b, 0xd6, 0x20, 0x64, 0xd9,
-       0xc7, 0xb0, 0xd8, 0x47, 0xf2, 0x4b, 0x5a, 0xfd, 0x07, 0xbf, 0xef, 0xc0,
-       0x24, 0x5c, 0x7e, 0x1d, 0x21, 0x89, 0x72, 0x43, 0xa9, 0x23, 0x32, 0xf8,
-       0x96, 0xe8, 0x15, 0xa3, 0x85, 0x80, 0x2f, 0x9d, 0x86, 0xbf, 0x8e, 0x74,
-       0x9c, 0x26, 0x1d, 0xef, 0x21, 0x1d, 0xef, 0xf9, 0x12, 0x1d, 0xef, 0x24,
-       0x1d, 0xef, 0x2f, 0xfc, 0x9d, 0xa5, 0x33, 0xa7, 0xae, 0x63, 0x94, 0x72,
-       0xee, 0x78, 0xab, 0xcd, 0x4f, 0x81, 0x30, 0xea, 0x9e, 0x58, 0xaf, 0x13,
-       0x1e, 0x9d, 0x62, 0x66, 0x2f, 0x3d, 0xd3, 0x5c, 0xb5, 0x65, 0xbf, 0xef,
-       0xc9, 0x74, 0xb7, 0x78, 0xd2, 0xf2, 0x2b, 0xc6, 0x8d, 0x49, 0x34, 0xaa,
-       0x3d, 0x34, 0x17, 0xdb, 0xca, 0x9d, 0x02, 0x4f, 0xb1, 0xbd, 0x7c, 0x93,
-       0x04, 0xcf, 0x36, 0x93, 0x12, 0x28, 0xb2, 0xdd, 0xf4, 0xd3, 0x6f, 0xb6,
-       0x9d, 0x0d, 0xa2, 0xb1, 0xf8, 0x45, 0xfb, 0x81, 0xdf, 0xa9, 0xb3, 0xfd,
-       0xb0, 0x1d, 0x0d, 0x0b, 0x67, 0x91, 0x7c, 0x96, 0xe6, 0x1f, 0x21, 0xba,
-       0x77, 0xa6, 0xf7, 0x3b, 0x99, 0x36, 0x59, 0x67, 0x3b, 0x62, 0xfb, 0xb9,
-       0x48, 0xb4, 0xb2, 0xcd, 0x5f, 0xed, 0xd9, 0xd0, 0xdf, 0xef, 0x4a, 0x50,
-       0xb7, 0x38, 0x6d, 0x1e, 0x38, 0x87, 0x73, 0xce, 0xe6, 0x78, 0xea, 0xb7,
-       0x6a, 0xba, 0x63, 0x57, 0x73, 0x39, 0xe7, 0x75, 0xc8, 0x0b, 0xf4, 0x80,
-       0xfe, 0x9d, 0xd6, 0x2b, 0x34, 0xdf, 0x10, 0xb4, 0x15, 0x90, 0x03, 0xfa,
-       0xa4, 0x3e, 0xd9, 0x4a, 0xf1, 0x96, 0xe6, 0x94, 0x33, 0x80, 0x9a, 0x11,
-       0xd8, 0x99, 0x10, 0x84, 0x47, 0x17, 0x91, 0xbf, 0xc1, 0xf0, 0xe8, 0x4a,
-       0x4f, 0x92, 0xee, 0x2d, 0x25, 0x7c, 0xbe, 0x58, 0xdf, 0x06, 0x33, 0x0b,
-       0xb9, 0x41, 0x1f, 0xc4, 0x27, 0xa3, 0x61, 0xff, 0x79, 0x28, 0xa9, 0xb3,
-       0x92, 0x52, 0xa1, 0x3c, 0x35, 0x34, 0x22, 0x94, 0xc1, 0xcb, 0x42, 0x49,
-       0x96, 0xac, 0x1e, 0xcf, 0x36, 0xb4, 0x5b, 0x58, 0x7c, 0x10, 0xd1, 0x02,
-       0x70, 0x1b, 0x01, 0xbc, 0x7b, 0x6e, 0x26, 0x9b, 0xd4, 0x3e, 0xe2, 0xd8,
-       0x9e, 0x3c, 0x43, 0x54, 0x2f, 0xce, 0x70, 0xcf, 0x68, 0x5b, 0xb5, 0x67,
-       0x34, 0x68, 0xf5, 0x8c, 0xce, 0x4b, 0x4a, 0x62, 0xbe, 0x67, 0x74, 0x05,
-       0x3c, 0x97, 0xd2, 0xef, 0xad, 0xce, 0xb7, 0xb4, 0x3a, 0x5f, 0x5b, 0x01,
-       0x22, 0x9a, 0x31, 0xcc, 0x1a, 0xd5, 0x43, 0xfc, 0x26, 0x1d, 0xae, 0x88,
-       0xda, 0x73, 0x18, 0x21, 0x44, 0xa9, 0xde, 0xbd, 0x9e, 0xf2, 0xa0, 0x3b,
-       0xb3, 0x03, 0x33, 0x9a, 0xd2, 0x37, 0x00, 0xb6, 0x9d, 0x6e, 0xec, 0xa3,
-       0x18, 0xba, 0xb7, 0xcc, 0xf5, 0xc8, 0xb0, 0x38, 0xcb, 0x76, 0xe3, 0xb4,
-       0xa5, 0x66, 0xaf, 0xff, 0x70, 0x75, 0xfd, 0x21, 0x6b, 0xfd, 0x0b, 0x92,
-       0xd2, 0x5f, 0x5d, 0x5f, 0xfb, 0x33, 0xa1, 0xa4, 0x68, 0xfd, 0x9e, 0x3d,
-       0xb4, 0xbe, 0x4b, 0xe5, 0xb5, 0x1f, 0xe6, 0xb5, 0xe9, 0x73, 0x08, 0xd7,
-       0x93, 0xdd, 0xbc, 0x57, 0x90, 0xc5, 0xbb, 0xb9, 0x35, 0xd8, 0x35, 0xb3,
-       0x06, 0x3b, 0xc9, 0xdf, 0xb6, 0x6a, 0x0d, 0x54, 0xa7, 0xa1, 0xde, 0xa7,
-       0xe2, 0xb2, 0x23, 0x22, 0xa4, 0xf5, 0xed, 0x2d, 0x84, 0x41, 0x4e, 0x34,
-       0xcb, 0xf8, 0xd4, 0x1c, 0x50, 0xd7, 0xf4, 0x39, 0x91, 0xfc, 0x7d, 0x0f,
-       0xfe, 0x5c, 0x22, 0xff, 0x7d, 0x67, 0x81, 0x40, 0xd2, 0x63, 0xd5, 0x1c,
-       0x09, 0xe1, 0x29, 0xfe, 0xd8, 0x69, 0xdb, 0x7b, 0x2b, 0x7c, 0x8d, 0x68,
-       0x68, 0x50, 0x6f, 0x40, 0x43, 0xa3, 0x6c, 0x38, 0xa8, 0x8e, 0x59, 0x4f,
-       0x21, 0xd1, 0xcc, 0xf5, 0x51, 0x3c, 0x35, 0x71, 0x65, 0xf9, 0xdf, 0x9b,
-       0x89, 0xeb, 0xf8, 0x39, 0x02, 0x15, 0x56, 0x4c, 0xfc, 0xb2, 0x39, 0xe2,
-       0xe4, 0xbf, 0x6d, 0x54, 0x97, 0xd6, 0x51, 0xf0, 0xed, 0xc1, 0x9e, 0xac,
-       0x92, 0xda, 0x43, 0x75, 0xe5, 0xfe, 0x48, 0x5b, 0xcf, 0x26, 0x51, 0x83,
-       0xd0, 0xc2, 0xf0, 0xe0, 0x00, 0x92, 0xcd, 0xf5, 0x55, 0x3a, 0x1e, 0x46,
-       0xb3, 0x8b, 0x9e, 0xe3, 0x79, 0xae, 0xb1, 0xa7, 0x22, 0xd9, 0x13, 0xdf,
-       0xe7, 0xef, 0x57, 0xef, 0xcb, 0xbf, 0xa3, 0x4f, 0xae, 0xfa, 0xaf, 0x4b,
-       0xbf, 0xec, 0xfa, 0xb1, 0x2f, 0xb9, 0xfe, 0x6f, 0xd5, 0xe7, 0x95, 0x46,
-       0xa7, 0x95, 0xfb, 0x93, 0x0e, 0xee, 0x4b, 0x3a, 0xf5, 0x42, 0xd7, 0x2e,
-       0xf5, 0x3f, 0x51, 0xcc, 0xe2, 0x7e, 0x04, 0xe7, 0xdb, 0x33, 0x56, 0x3f,
-       0xe2, 0xf8, 0x6f, 0x61, 0x4f, 0x8e, 0x1d, 0x6e, 0x51, 0x37, 0x6e, 0x98,
-       0x4d, 0xea, 0x1f, 0x51, 0x7d, 0xb2, 0x03, 0x03, 0x31, 0x0d, 0x63, 0x59,
-       0xa5, 0xef, 0x0e, 0xa8, 0xc9, 0x3b, 0x05, 0x4d, 0x54, 0x72, 0x0b, 0x69,
-       0xbc, 0x7a, 0x4f, 0x33, 0xa8, 0xe6, 0xaa, 0xa0, 0x96, 0x62, 0x8f, 0x53,
-       0xf5, 0xcb, 0x28, 0x05, 0x64, 0x67, 0x29, 0x28, 0xd7, 0x94, 0x5a, 0xe4,
-       0x5a, 0x1a, 0xe7, 0x1d, 0x57, 0x2e, 0xdf, 0x81, 0x1d, 0xb8, 0xbc, 0xdc,
-       0x63, 0x34, 0xeb, 0x8a, 0xbf, 0x59, 0xda, 0x81, 0x5d, 0x31, 0x7e, 0xb6,
-       0x9b, 0x6a, 0x2f, 0x88, 0xc6, 0x0c, 0x21, 0x5c, 0x5d, 0x60, 0x37, 0xd5,
-       0x97, 0x4b, 0x1c, 0x6a, 0xcf, 0xaf, 0x85, 0x53, 0x76, 0x97, 0x20, 0x7c,
-       0x19, 0x07, 0x0e, 0x76, 0xc2, 0xed, 0x5e, 0xa1, 0x0c, 0x9e, 0x10, 0xc3,
-       0x78, 0x36, 0x16, 0xe9, 0xdb, 0x2c, 0x42, 0xb2, 0x87, 0xee, 0xb9, 0x32,
-       0x10, 0x72, 0xc6, 0x70, 0xbb, 0x56, 0x28, 0x41, 0x87, 0x48, 0x62, 0x40,
-       0x55, 0xb5, 0x71, 0xc8, 0xb4, 0x26, 0x44, 0x6d, 0x46, 0xb9, 0x7c, 0x96,
-       0xb0, 0xd1, 0x95, 0xa5, 0xc3, 0xe8, 0x58, 0x1e, 0xd9, 0xdb, 0xef, 0x50,
-       0x65, 0xc2, 0x6c, 0xc2, 0x99, 0xf1, 0xe2, 0xa6, 0x03, 0xf3, 0xfd, 0x19,
-       0xd3, 0xfc, 0x38, 0x56, 0xb9, 0x97, 0x44, 0x28, 0xd7, 0x97, 0xa2, 0xb2,
-       0x97, 0xf0, 0x79, 0xdb, 0x01, 0xc6, 0x4b, 0x9c, 0x0f, 0x2a, 0x64, 0x37,
-       0xed, 0xc4, 0x63, 0x1f, 0x66, 0xd2, 0x8c, 0x9f, 0x74, 0x4c, 0x53, 0x6d,
-       0xa3, 0x8e, 0xb6, 0x50, 0xae, 0x4f, 0x60, 0x2e, 0xcd, 0x7d, 0x9c, 0x41,
-       0x92, 0x71, 0x3f, 0xd1, 0xbf, 0x81, 0xea, 0xda, 0x14, 0xc5, 0x2b, 0x96,
-       0xf1, 0x00, 0xf7, 0x6b, 0xa9, 0x96, 0xfe, 0x79, 0xd7, 0xd7, 0xc6, 0x20,
-       0xbb, 0xf5, 0xd7, 0xba, 0xae, 0x3f, 0x80, 0x46, 0xca, 0xe7, 0x3a, 0x55,
-       0x2e, 0x88, 0x46, 0x22, 0xda, 0x79, 0x44, 0x82, 0x2f, 0x93, 0x3e, 0x46,
-       0x54, 0x60, 0xa7, 0x55, 0x33, 0x3b, 0x61, 0x14, 0xd8, 0xa6, 0xe0, 0xae,
-       0xed, 0x6c, 0xc4, 0xfb, 0xb9, 0xa8, 0xd5, 0x0b, 0x32, 0xa8, 0x8e, 0x79,
-       0x49, 0x53, 0x52, 0x79, 0x7a, 0x6e, 0xa3, 0xff, 0x7f, 0xed, 0xa9, 0x8b,
-       0x43, 0xae, 0x53, 0xd9, 0xbf, 0xfe, 0xdc, 0x73, 0x96, 0x6c, 0xf4, 0xae,
-       0xc9, 0xbf, 0xf0, 0x7c, 0x12, 0xcf, 0x7b, 0x3e, 0x8a, 0x9b, 0x66, 0x82,
-       0x70, 0x65, 0x3f, 0xd5, 0xcd, 0x1f, 0x8f, 0x1a, 0x9e, 0xf3, 0x71, 0xee,
-       0xe9, 0x3a, 0xf1, 0x07, 0xf4, 0xfb, 0xe9, 0x51, 0x19, 0xb7, 0x16, 0x9b,
-       0xe1, 0x1a, 0x93, 0xc8, 0x3f, 0xd7, 0x52, 0xae, 0x72, 0xe0, 0x9e, 0xe8,
-       0x51, 0x54, 0x02, 0x0e, 0x1a, 0xb3, 0x9f, 0x7e, 0x73, 0x6f, 0xea, 0x71,
-       0x6c, 0xf6, 0xcf, 0x7a, 0xde, 0x8f, 0x33, 0xbd, 0x15, 0xa6, 0x97, 0x72,
-       0xe4, 0xed, 0xd8, 0x78, 0x07, 0x0c, 0x9f, 0x6e, 0xfd, 0xbb, 0x5f, 0xee,
-       0x6c, 0xc2, 0xe1, 0x5c, 0x33, 0x5e, 0xcc, 0x19, 0xee, 0x9f, 0x76, 0x46,
-       0x31, 0x38, 0x6a, 0xe2, 0x15, 0xcd, 0x18, 0xae, 0x25, 0x3b, 0x4f, 0x50,
-       0xad, 0x14, 0x5e, 0xae, 0xf8, 0x2f, 0x0b, 0x44, 0x24, 0x44, 0x86, 0x08,
-       0x2c, 0xde, 0x4d, 0xa1, 0x2b, 0x55, 0xaf, 0x47, 0xb4, 0xd7, 0x85, 0x59,
-       0x73, 0x6f, 0xa7, 0x93, 0x68, 0x00, 0xd6, 0x51, 0x4c, 0x9e, 0x4b, 0x47,
-       0x71, 0x6b, 0x44, 0xc6, 0xfa, 0xa2, 0x86, 0x17, 0xd3, 0x5e, 0xdc, 0x55,
-       0x8c, 0x13, 0x86, 0xf6, 0x13, 0xed, 0x09, 0x94, 0xd3, 0x01, 0x7c, 0xbd,
-       0xd8, 0x42, 0xf2, 0x0e, 0x62, 0x6d, 0x91, 0x31, 0x16, 0xe7, 0x67, 0xdd,
-       0xbd, 0x31, 0xde, 0x82, 0x1e, 0x8a, 0xdf, 0xb3, 0x69, 0xb8, 0xb7, 0xc7,
-       0x43, 0xe8, 0x2e, 0x46, 0x51, 0x24, 0x2c, 0x76, 0x3b, 0xcd, 0x79, 0x17,
-       0xe9, 0xa4, 0x9d, 0xea, 0xfb, 0x25, 0x11, 0x42, 0xa8, 0x45, 0xaf, 0x18,
-       0x26, 0xcc, 0x94, 0x28, 0x36, 0xe1, 0xfc, 0x18, 0xdb, 0xf9, 0x5b, 0x5d,
-       0xbb, 0x72, 0x7e, 0x84, 0x8a, 0xb8, 0x49, 0x06, 0xb6, 0x51, 0x95, 0x97,
-       0x2a, 0x12, 0xbd, 0xfb, 0x3a, 0xed, 0x7e, 0xec, 0x0d, 0xc5, 0xcf, 0xf9,
-       0x6d, 0x20, 0x3d, 0x7d, 0x72, 0x60, 0xd6, 0x73, 0x85, 0x64, 0xe0, 0xd3,
-       0x7f, 0xd4, 0xf5, 0xc6, 0x01, 0x20, 0x3a, 0xc5, 0xbc, 0x71, 0x7c, 0x0d,
-       0x27, 0x28, 0xbe, 0xb6, 0xcb, 0xf8, 0xb5, 0x49, 0xb5, 0x64, 0x68, 0x86,
-       0x7b, 0xff, 0xaa, 0x97, 0xe8, 0xf0, 0x23, 0x49, 0x6b, 0xdf, 0x56, 0xfc,
-       0xa1, 0xb9, 0x71, 0x61, 0x10, 0x5f, 0x8b, 0xd8, 0xb2, 0x7a, 0x9d, 0x74,
-       0x38, 0x3d, 0xd6, 0x8c, 0xb9, 0x31, 0xee, 0xad, 0x9c, 0xea, 0x3a, 0x34,
-       0x69, 0x62, 0x9d, 0x66, 0x78, 0x7e, 0xda, 0x79, 0x03, 0x1e, 0x38, 0x30,
-       0x72, 0xba, 0x86, 0xf4, 0x7a, 0x59, 0xbb, 0x1b, 0x8f, 0x4e, 0xe1, 0xab,
-       0xcd, 0xc0, 0x23, 0x41, 0x70, 0xff, 0x59, 0x09, 0x1d, 0x41, 0xa4, 0x67,
-       0x3b, 0x22, 0x7e, 0x55, 0x28, 0xda, 0x2b, 0x14, 0xab, 0xea, 0x08, 0x3b,
-       0xdc, 0x46, 0xb5, 0x7c, 0x0d, 0x79, 0xf0, 0x5d, 0x45, 0x27, 0xc9, 0x28,
-       0x88, 0xf2, 0x58, 0x0d, 0x24, 0xf2, 0x93, 0x0b, 0x2a, 0xd6, 0x35, 0x90,
-       0xac, 0x25, 0x21, 0x93, 0x9e, 0xdb, 0x71, 0x68, 0x74, 0x5e, 0x56, 0x5e,
-       0xdc, 0x42, 0x32, 0x7c, 0x76, 0xd4, 0xdc, 0xa1, 0xc6, 0x02, 0x24, 0x6b,
-       0x3f, 0xd1, 0x37, 0x2f, 0x27, 0x96, 0xdf, 0xbc, 0x9c, 0xee, 0xc6, 0xae,
-       0x39, 0x96, 0xdb, 0xbf, 0x47, 0x5e, 0xb3, 0x96, 0xdd, 0xad, 0x9b, 0x8c,
-       0xa2, 0xf9, 0xc0, 0x55, 0xd9, 0x31, 0x7d, 0x8f, 0x10, 0x1f, 0xdf, 0xf3,
-       0xad, 0x8c, 0x0c, 0x5e, 0x14, 0x5e, 0xa2, 0xc7, 0x4f, 0xba, 0x39, 0xeb,
-       0x62, 0x0c, 0x4e, 0x32, 0xb9, 0x2a, 0xe3, 0x20, 0xc9, 0x38, 0x38, 0xc5,
-       0xb2, 0xfe, 0x11, 0xc9, 0x1a, 0x78, 0x83, 0x70, 0xd7, 0xcd, 0xb1, 0x28,
-       0xea, 0x0f, 0x28, 0xc9, 0x66, 0x29, 0x9c, 0x68, 0x10, 0xa0, 0xea, 0x02,
-       0xed, 0xf5, 0xf8, 0x98, 0xe5, 0xac, 0x91, 0x9c, 0xbf, 0x37, 0x42, 0xfc,
-       0xac, 0xa1, 0xf9, 0xd6, 0x91, 0x9c, 0x93, 0xc4, 0xff, 0x6d, 0xd6, 0xbc,
-       0x2d, 0x34, 0xef, 0x06, 0xaa, 0x21, 0x66, 0x3d, 0x17, 0x88, 0x9e, 0xe8,
-       0xe7, 0xb4, 0x10, 0xca, 0x8e, 0x04, 0x2f, 0x52, 0xad, 0xbc, 0xd6, 0x1a,
-       0xe7, 0xa7, 0x71, 0x4c, 0xfb, 0x5b, 0xb5, 0x0e, 0xf5, 0xcb, 0x7a, 0xc7,
-       0x77, 0x83, 0x7b, 0x07, 0x06, 0xfa, 0xb1, 0x37, 0xbb, 0x81, 0x6a, 0x1e,
-       0x99, 0x30, 0xa4, 0x81, 0xef, 0xc7, 0x95, 0x68, 0xa3, 0xe0, 0xf8, 0x67,
-       0x90, 0x1f, 0x56, 0xa8, 0xde, 0x09, 0x87, 0xe6, 0x10, 0x94, 0x1d, 0x25,
-       0x99, 0xf0, 0x5e, 0x8b, 0x2c, 0x95, 0xc8, 0x5f, 0x83, 0xfd, 0x84, 0x93,
-       0x9d, 0x78, 0xb9, 0xe0, 0xc4, 0xab, 0xe9, 0x0d, 0x94, 0xe7, 0xdc, 0x84,
-       0x87, 0x0d, 0xb7, 0x73, 0xc5, 0x81, 0x1a, 0x3b, 0x26, 0x2f, 0x45, 0xef,
-       0xf8, 0xc3, 0xa8, 0xcb, 0x38, 0xfb, 0x28, 0x47, 0x6b, 0xb7, 0x91, 0x5c,
-       0xd6, 0x95, 0xf8, 0x7e, 0x0b, 0x32, 0xe9, 0x14, 0xb2, 0xd9, 0x30, 0xd5,
-       0x32, 0x4e, 0xe4, 0x9b, 0x5b, 0xac, 0xfe, 0x6c, 0x8e, 0xae, 0xe5, 0xca,
-       0x5f, 0xec, 0x1b, 0x7f, 0xab, 0xda, 0x2f, 0x1e, 0xa4, 0x9c, 0xd2, 0x4f,
-       0xd8, 0x73, 0x03, 0xc5, 0x77, 0x9b, 0xc6, 0xd9, 0x78, 0x1f, 0xf6, 0x14,
-       0xf4, 0xab, 0xf1, 0x63, 0xba, 0x60, 0xf7, 0x05, 0xb7, 0x90, 0x3c, 0xce,
-       0xa5, 0x4d, 0x3c, 0xaa, 0xb1, 0x3e, 0x29, 0x2e, 0xa5, 0xb9, 0x37, 0x68,
-       0xe2, 0x19, 0x4d, 0x70, 0xbc, 0xa1, 0x3c, 0xba, 0x01, 0x4b, 0x0a, 0x26,
-       0x4e, 0x6b, 0x2a, 0xc5, 0x2e, 0x18, 0x6e, 0xc2, 0x7e, 0x91, 0xd1, 0x7f,
-       0x31, 0xf3, 0xce, 0x21, 0xb4, 0x75, 0x02, 0x9b, 0x47, 0x25, 0xcc, 0xcd,
-       0x5c, 0xcd, 0xd1, 0x78, 0xf1, 0xf3, 0x3c, 0x9d, 0x98, 0x81, 0xb9, 0xc3,
-       0xa9, 0x2b, 0xc3, 0xbc, 0xd7, 0x32, 0x12, 0x57, 0x12, 0xb5, 0x56, 0xce,
-       0x56, 0xfb, 0x97, 0x48, 0x8a, 0x56, 0x12, 0x6d, 0xa9, 0x4f, 0x50, 0x59,
-       0x2f, 0x43, 0x09, 0xfe, 0x0c, 0x91, 0xe8, 0x20, 0xef, 0x29, 0x94, 0xed,
-       0xfc, 0xbd, 0xb4, 0x9a, 0xbf, 0xc3, 0x05, 0x8f, 0x50, 0xc7, 0x1c, 0xc8,
-       0xcf, 0x98, 0x94, 0x67, 0x05, 0x66, 0x49, 0xc1, 0x2f, 0x64, 0x77, 0xe0,
-       0xeb, 0x31, 0xd3, 0xbc, 0x2b, 0xae, 0x0e, 0x36, 0x4b, 0xf8, 0xd3, 0x06,
-       0xc2, 0x14, 0x64, 0xf7, 0x84, 0x01, 0x10, 0xda, 0xda, 0x69, 0x98, 0x32,
-       0xd5, 0x0c, 0x35, 0x3a, 0xf7, 0x1a, 0x7b, 0x45, 0x7b, 0x71, 0x83, 0xb8,
-       0xa1, 0xd8, 0x2f, 0x42, 0x87, 0xee, 0x14, 0xd1, 0xa7, 0x6c, 0xdc, 0xd6,
-       0x5a, 0xfc, 0xbc, 0x1f, 0xda, 0x43, 0x7c, 0xef, 0xd3, 0x4c, 0x3c, 0x4d,
-       0xbc, 0xed, 0x2d, 0xdb, 0xb5, 0xc8, 0xee, 0xb4, 0xcd, 0xdb, 0xa3, 0x74,
-       0xff, 0x62, 0x9a, 0xfd, 0xf1, 0x61, 0xab, 0xd7, 0xd9, 0x4c, 0xcf, 0xdc,
-       0x9c, 0x0d, 0x87, 0x06, 0x85, 0x32, 0x34, 0x0b, 0xee, 0x77, 0xb6, 0x55,
-       0x4e, 0x0a, 0xca, 0x3d, 0x12, 0xc7, 0x57, 0xf6, 0x79, 0x9b, 0xf6, 0x65,
-       0x05, 0x58, 0x71, 0x91, 0xe9, 0xbf, 0x91, 0xea, 0xbe, 0x9f, 0xa5, 0xdb,
-       0xfa, 0xdd, 0x24, 0xb6, 0xf3, 0xf1, 0x6e, 0x71, 0x89, 0xea, 0xbe, 0x57,
-       0xd3, 0xc9, 0x85, 0x75, 0xe8, 0x11, 0x17, 0x0a, 0x7d, 0xe2, 0xc3, 0x7c,
-       0x2f, 0x9c, 0x63, 0xf7, 0x8b, 0x77, 0xf3, 0x4c, 0x5b, 0xbf, 0x38, 0x33,
-       0x7b, 0xde, 0x92, 0xfd, 0x2e, 0x8d, 0xfb, 0x9a, 0xf5, 0xb5, 0xf0, 0x99,
-       0x04, 0x4f, 0x59, 0x8f, 0xdc, 0xe7, 0xb3, 0xfb, 0x43, 0xeb, 0xe2, 0x39,
-       0xd3, 0xa9, 0x72, 0xaf, 0x37, 0x68, 0xf1, 0x38, 0x43, 0x78, 0x79, 0x36,
-       0xbf, 0x41, 0x1c, 0x2e, 0xd8, 0xfc, 0x4d, 0x17, 0xd8, 0x6e, 0x65, 0xca,
-       0x0d, 0x5f, 0xcc, 0xcf, 0x06, 0xfc, 0x9d, 0x41, 0xd4, 0x58, 0xfd, 0x24,
-       0x13, 0xe3, 0x5a, 0x24, 0xf4, 0x0a, 0x82, 0x70, 0x96, 0xd8, 0xa6, 0x4d,
-       0x3c, 0xa7, 0xb9, 0x20, 0x8d, 0xcb, 0x24, 0x17, 0xb2, 0x21, 0x9f, 0x0b,
-       0x8e, 0x69, 0xae, 0x01, 0xe2, 0xb5, 0xdc, 0x67, 0x08, 0x39, 0xf8, 0xfb,
-       0x17, 0x6d, 0xcd, 0x45, 0x79, 0x80, 0xfb, 0xe3, 0x6f, 0xd6, 0xd8, 0x36,
-       0xc7, 0xf9, 0x68, 0xbe, 0xa7, 0x4d, 0x39, 0xb6, 0x93, 0x7b, 0xd9, 0x6e,
-       0xcc, 0xe5, 0x6a, 0xb8, 0xc5, 0xe0, 0xae, 0xe9, 0x34, 0x71, 0x4e, 0x73,
-       0x52, 0x5d, 0xf2, 0x10, 0xe5, 0x26, 0x07, 0x64, 0xf5, 0x6e, 0x94, 0x26,
-       0x9d, 0x0e, 0xde, 0x73, 0xfa, 0x59, 0x8c, 0x7b, 0x00, 0xc0, 0x7e, 0xe2,
-       0xe1, 0x99, 0x5c, 0x88, 0xea, 0x7f, 0xb9, 0x5a, 0x43, 0xfc, 0x01, 0x8e,
-       0xe7, 0x24, 0xd1, 0xac, 0x43, 0x4a, 0xac, 0x34, 0xf1, 0xc9, 0xf2, 0x48,
-       0xf4, 0x32, 0xc5, 0x2f, 0x3f, 0xe5, 0xaa, 0xdd, 0x85, 0x46, 0xfc, 0x2c,
-       0xd7, 0x88, 0x57, 0x73, 0xa4, 0xc3, 0xd8, 0x48, 0xbf, 0x87, 0x62, 0xe4,
-       0xd2, 0x98, 0x0b, 0x5b, 0x23, 0x86, 0xdf, 0x83, 0x28, 0xce, 0x25, 0xae,
-       0x47, 0x2a, 0x10, 0xee, 0x19, 0x41, 0x13, 0xde, 0xcc, 0x81, 0x30, 0x04,
-       0xdc, 0x4b, 0x68, 0x8e, 0xf7, 0x62, 0xc6, 0x90, 0x0b, 0x0a, 0xd5, 0x1f,
-       0x88, 0xd7, 0xc3, 0xac, 0x39, 0x19, 0xa7, 0x1c, 0x5d, 0x6c, 0x44, 0x6f,
-       0xae, 0x09, 0xfd, 0x94, 0xab, 0x56, 0xaf, 0x8c, 0xe3, 0xdd, 0xac, 0x57,
-       0xdc, 0x94, 0x1d, 0xe9, 0xf7, 0xd3, 0x9c, 0xae, 0xe5, 0xca, 0xd0, 0xb3,
-       0x04, 0xd8, 0x64, 0x84, 0xd9, 0xbc, 0xb7, 0xfb, 0x28, 0xde, 0x1e, 0x16,
-       0x9f, 0xe1, 0x49, 0xb2, 0xc1, 0x2d, 0x9a, 0x52, 0xb9, 0x20, 0x45, 0x4e,
-       0xaf, 0x87, 0x32, 0x7c, 0x9b, 0x30, 0xa2, 0x0d, 0x14, 0x47, 0x9a, 0xed,
-       0x18, 0x61, 0x44, 0x84, 0x4c, 0x98, 0xdc, 0x09, 0xb7, 0x6a, 0xa0, 0xa7,
-       0x93, 0x65, 0xea, 0x86, 0xfb, 0x29, 0xb2, 0x1b, 0xc7, 0x17, 0xfb, 0xf3,
-       0x8d, 0x78, 0x83, 0xf2, 0xe4, 0xeb, 0x39, 0xc8, 0xb5, 0x14, 0xfb, 0x3f,
-       0xa0, 0xd8, 0x7f, 0x2a, 0x36, 0x12, 0xe2, 0x98, 0x5f, 0x88, 0xe1, 0x5b,
-       0x04, 0x83, 0x5b, 0xbc, 0xb4, 0xe6, 0x26, 0xc1, 0xeb, 0x20, 0xb9, 0x58,
-       0xe7, 0xbe, 0x9a, 0xc5, 0x0f, 0xc5, 0x61, 0xe6, 0xe9, 0xff, 0x27, 0xed,
-       0xdb, 0x6b, 0xe1, 0x69, 0x22, 0x5d, 0xce, 0xf7, 0x24, 0xaf, 0xed, 0x47,
-       0x72, 0x1d, 0x63, 0xe3, 0xc2, 0x1a, 0xbd, 0x4e, 0xbc, 0x94, 0x63, 0x9b,
-       0x33, 0xf1, 0xbc, 0xa6, 0x51, 0xcd, 0xc2, 0xb5, 0xf6, 0x10, 0xd5, 0x2d,
-       0xdc, 0x27, 0x32, 0xdc, 0x27, 0x89, 0xc2, 0xbd, 0x39, 0xfc, 0x9e, 0x0c,
-       0x69, 0x59, 0x2d, 0xa6, 0x90, 0x77, 0x3a, 0x09, 0x6b, 0x70, 0x8c, 0x65,
-       0x3f, 0x7a, 0xab, 0x4b, 0xcd, 0xc3, 0xf0, 0xea, 0x3d, 0x30, 0x2c, 0xdf,
-       0xad, 0x13, 0x0f, 0x90, 0x8d, 0xbc, 0x1c, 0xab, 0x45, 0x9e, 0xea, 0x1e,
-       0xc2, 0xdf, 0xee, 0x3f, 0xa3, 0xe7, 0x13, 0x13, 0xd8, 0x13, 0x84, 0xf4,
-       0x5d, 0x3f, 0xfe, 0x02, 0x67, 0x5d, 0x8c, 0xcb, 0xe1, 0xee, 0x8b, 0x1b,
-       0x9e, 0xf5, 0xf1, 0x3a, 0x71, 0x7b, 0xae, 0x1d, 0x17, 0x27, 0x1b, 0xc9,
-       0xbe, 0x9b, 0xb0, 0x78, 0x3c, 0x88, 0xf7, 0x88, 0x96, 0x61, 0x8d, 0xb1,
-       0xba, 0x31, 0xdc, 0x0c, 0x65, 0x88, 0xea, 0xa1, 0xbe, 0x9f, 0x0b, 0xf6,
-       0x01, 0xa5, 0xe7, 0x0e, 0xe1, 0x81, 0x1a, 0x49, 0x92, 0xec, 0x4d, 0x73,
-       0x4c, 0x6b, 0xd3, 0xbc, 0xe0, 0xfe, 0xcf, 0xdd, 0xd8, 0x3f, 0xc7, 0xb4,
-       0x9c, 0xea, 0xba, 0x61, 0x96, 0x3f, 0x4f, 0x77, 0x5d, 0x6f, 0x7d, 0xbe,
-       0x56, 0xfd, 0xac, 0x74, 0x85, 0xac, 0xcf, 0x1f, 0xd1, 0x27, 0xf7, 0x99,
-       0xc3, 0x46, 0x8d, 0xf8, 0xbe, 0x8b, 0xfb, 0xcd, 0x49, 0xf0, 0xff, 0x71,
-       0x97, 0xdd, 0xaf, 0xbb, 0x1b, 0x86, 0xd5, 0x13, 0xf9, 0xb5, 0xd5, 0x8b,
-       0x0e, 0x91, 0x1b, 0xc8, 0xc4, 0x9f, 0x4c, 0x58, 0x2b, 0x10, 0xa3, 0xc2,
-       0xbc, 0x49, 0x36, 0x16, 0xeb, 0xfd, 0x54, 0x1b, 0xc8, 0xc4, 0xaf, 0x81,
-       0x3d, 0x9d, 0x02, 0xfb, 0x55, 0x1d, 0x3f, 0x2d, 0x70, 0x0c, 0x77, 0xe2,
-       0x99, 0xb4, 0x12, 0x4a, 0x89, 0x30, 0xd5, 0xf9, 0x0e, 0x84, 0x9a, 0xfb,
-       0xb1, 0x9f, 0xf2, 0xc9, 0x6c, 0x9a, 0xf3, 0x07, 0x7d, 0x52, 0x3c, 0x6f,
-       0xa0, 0xf8, 0xf3, 0xf1, 0xa8, 0x1d, 0xef, 0x8b, 0x71, 0x65, 0xef, 0x1f,
-       0x90, 0x4e, 0x9f, 0x2b, 0xf2, 0x9c, 0x06, 0xae, 0xac, 0x64, 0x1f, 0x56,
-       0xa2, 0x29, 0xc7, 0x7d, 0x08, 0xcd, 0x70, 0x6c, 0xa1, 0xe5, 0x68, 0xad,
-       0x83, 0xd9, 0x1a, 0xf4, 0xc5, 0x7b, 0x45, 0x7f, 0xa9, 0x8f, 0xf7, 0x14,
-       0xfc, 0x0b, 0xf4, 0x3b, 0xc5, 0x9a, 0x69, 0xee, 0x09, 0x6e, 0x10, 0x7d,
-       0x25, 0xee, 0x0b, 0x0e, 0x8b, 0x6f, 0x94, 0xd8, 0xe7, 0xe7, 0xfb, 0x83,
-       0xf3, 0xfa, 0xe7, 0xbe, 0xa0, 0xe1, 0x7e, 0x89, 0x64, 0xbf, 0x3d, 0xc7,
-       0x71, 0x58, 0x7a, 0xc0, 0x87, 0xe5, 0xc8, 0xbb, 0xe0, 0x3e, 0x11, 0xff,
-       0x1d, 0xdc, 0x45, 0xb8, 0x60, 0xb1, 0x6a, 0xeb, 0x6f, 0x75, 0xde, 0x81,
-       0xc4, 0x72, 0x12, 0xfa, 0x02, 0xd6, 0xe9, 0x00, 0xc5, 0xb3, 0x8c, 0x39,
-       0x18, 0x60, 0x5d, 0xb2, 0xbd, 0x59, 0x7d, 0x27, 0xca, 0x2b, 0x06, 0x22,
-       0x9d, 0x6e, 0xcc, 0xe6, 0x16, 0x51, 0x4d, 0x60, 0x62, 0xaf, 0x56, 0x8f,
-       0x5a, 0x2b, 0x06, 0xb8, 0x09, 0x47, 0x42, 0xf6, 0xd2, 0x3c, 0xe9, 0x31,
-       0x19, 0x1e, 0xba, 0x77, 0x92, 0x72, 0xd3, 0xfe, 0x4e, 0x7b, 0xee, 0xb6,
-       0xfc, 0x4d, 0xd8, 0x47, 0x1e, 0x5f, 0xaf, 0x46, 0x31, 0xea, 0xf7, 0x52,
-       0xac, 0xf9, 0x56, 0x75, 0xce, 0xcf, 0xc8, 0x36, 0x79, 0xbd, 0x4d, 0xb5,
-       0xb6, 0x1e, 0x96, 0xc9, 0x76, 0xed, 0x25, 0x1b, 0x75, 0xb4, 0xd6, 0xd6,
-       0xce, 0x0d, 0xe8, 0x19, 0xf5, 0x8a, 0x57, 0xd3, 0xf7, 0x98, 0xa1, 0x46,
-       0x1a, 0x47, 0x36, 0x5b, 0x53, 0xa5, 0xb7, 0x35, 0xff, 0xcf, 0xb5, 0x5c,
-       0xa7, 0x7b, 0x29, 0x8f, 0x3c, 0x98, 0x73, 0x20, 0x50, 0xbd, 0x1e, 0xcf,
-       0x87, 0xa0, 0x75, 0xd4, 0x01, 0x4d, 0x82, 0xae, 0xf1, 0xdc, 0xbc, 0x86,
-       0x8c, 0x46, 0xf2, 0x93, 0x6f, 0xc7, 0x13, 0xf8, 0x20, 0xeb, 0xc4, 0x7a,
-       0xca, 0xef, 0x6b, 0xd3, 0x3a, 0xce, 0x95, 0x6b, 0x79, 0x3d, 0xb2, 0xc3,
-       0xf9, 0x71, 0x4e, 0x1a, 0xe7, 0xc6, 0x74, 0xfe, 0x8b, 0xf4, 0x05, 0x88,
-       0xe6, 0x22, 0x8d, 0xe5, 0x7b, 0xe7, 0xad, 0xbe, 0xc0, 0xf1, 0x6b, 0xea,
-       0x29, 0xc7, 0x38, 0xf7, 0x8a, 0xec, 0x5c, 0xd0, 0xad, 0xb1, 0x2e, 0x7d,
-       0xb8, 0x3c, 0x61, 0xe0, 0xdc, 0xca, 0x06, 0x5c, 0x99, 0x68, 0xc5, 0x03,
-       0x39, 0x0f, 0x2e, 0x4c, 0x98, 0xb8, 0x69, 0x39, 0xee, 0x09, 0x12, 0x06,
-       0x6b, 0x20, 0xbf, 0xff, 0x29, 0xd5, 0x3c, 0x14, 0x4f, 0x89, 0xd2, 0x48,
-       0x62, 0x1d, 0xd9, 0x75, 0x34, 0x86, 0xd4, 0x2d, 0xf1, 0x48, 0xe8, 0x3c,
-       0xbe, 0x67, 0x52, 0x2c, 0xf6, 0x4b, 0x7a, 0xaf, 0x70, 0x5a, 0xfb, 0x84,
-       0x1b, 0xac, 0x7d, 0x45, 0xc7, 0xf4, 0xb0, 0x90, 0x4a, 0xd7, 0xfa, 0xf5,
-       0x97, 0xe5, 0x21, 0xce, 0x3d, 0x9c, 0x23, 0xc7, 0x4d, 0x97, 0xba, 0xc1,
-       0xea, 0xd3, 0xec, 0xce, 0x5f, 0xcd, 0x4d, 0x57, 0xf3, 0xd1, 0xce, 0x6a,
-       0x1e, 0x1a, 0x29, 0xbc, 0xf3, 0x05, 0xfc, 0x14, 0xaa, 0xee, 0x57, 0x70,
-       0xfe, 0x71, 0x8b, 0xb3, 0x64, 0x0e, 0x7b, 0xc8, 0x07, 0x8f, 0x6a, 0x27,
-       0x82, 0x94, 0x21, 0xe0, 0xec, 0x10, 0x78, 0x90, 0xcf, 0x8b, 0x04, 0x4c,
-       0xdc, 0xa9, 0xd9, 0xf6, 0xb0, 0xbc, 0xd3, 0x85, 0x41, 0xca, 0x49, 0xae,
-       0x98, 0x97, 0x7c, 0xdd, 0x8f, 0xd7, 0x34, 0xb6, 0xe1, 0x5b, 0xaa, 0x39,
-       0x89, 0xf7, 0xbf, 0xed, 0xbd, 0xea, 0xdf, 0xee, 0x5b, 0xcf, 0xdb, 0xa6,
-       0x86, 0xe4, 0x42, 0x78, 0xde, 0x8b, 0xab, 0x54, 0x37, 0xc8, 0x54, 0x33,
-       0xac, 0x47, 0x62, 0x81, 0x92, 0x64, 0xfd, 0xfb, 0x68, 0xee, 0x5f, 0x76,
-       0x0e, 0xe2, 0xfe, 0x71, 0x07, 0xea, 0x54, 0x8e, 0xb3, 0x06, 0xf6, 0x37,
-       0x72, 0x9c, 0xea, 0xc5, 0x8e, 0x71, 0xb7, 0x38, 0x99, 0x73, 0xe2, 0xc9,
-       0xbe, 0x47, 0xb0, 0xa0, 0x63, 0x4b, 0xb5, 0xd7, 0xc9, 0xdf, 0xbf, 0x89,
-       0xd4, 0x22, 0x5e, 0x9f, 0x7b, 0x68, 0x02, 0xde, 0x0e, 0xe6, 0x03, 0x9e,
-       0x8b, 0x34, 0xff, 0xe6, 0x51, 0xa7, 0x38, 0x9f, 0xfe, 0x1b, 0xf3, 0x48,
-       0x80, 0x71, 0x01, 0xdf, 0xab, 0x87, 0xd1, 0xc8, 0x63, 0x59, 0x87, 0x5e,
-       0xaa, 0x49, 0x07, 0x31, 0x4a, 0x74, 0xbd, 0x6e, 0xcd, 0x75, 0xb6, 0x4a,
-       0xbf, 0x57, 0x34, 0x64, 0x64, 0x23, 0x48, 0xb4, 0xf8, 0x57, 0xf6, 0xa1,
-       0xa1, 0x74, 0x6d, 0xbe, 0x25, 0xa3, 0xf7, 0x30, 0x7f, 0x9c, 0x13, 0x06,
-       0xf0, 0x41, 0x5a, 0xe0, 0x7d, 0xcb, 0x06, 0x07, 0xd0, 0x5a, 0xa0, 0xfa,
-       0xdf, 0x8a, 0x21, 0x3c, 0x2e, 0x6e, 0xdb, 0xb6, 0x63, 0x10, 0xdb, 0x89,
-       0x97, 0x7a, 0xe2, 0xe5, 0xe3, 0xd8, 0x12, 0x5a, 0x87, 0xaf, 0x1d, 0x93,
-       0xab, 0xfd, 0x87, 0xea, 0x5c, 0xab, 0xc0, 0xbd, 0x29, 0xa7, 0x1a, 0xc1,
-       0xb6, 0xf1, 0x48, 0xbf, 0xd7, 0xc1, 0x76, 0x18, 0xc1, 0x7d, 0xd3, 0x49,
-       0xba, 0xcf, 0x73, 0x05, 0xb1, 0x29, 0xe3, 0x14, 0xef, 0x52, 0x9d, 0x74,
-       0x3c, 0xed, 0x58, 0x24, 0xe1, 0x07, 0xe6, 0x93, 0x81, 0x1d, 0xb8, 0x45,
-       0xeb, 0xc5, 0xbd, 0x64, 0x83, 0xdd, 0xad, 0x3b, 0x30, 0x41, 0x36, 0xb0,
-       0xb9, 0x89, 0x6a, 0xb7, 0x58, 0xd9, 0x1c, 0x08, 0xb0, 0x1c, 0x05, 0x7a,
-       0xe8, 0x7a, 0x23, 0xd5, 0x73, 0x8e, 0x18, 0x59, 0x1b, 0xf9, 0x85, 0xac,
-       0x2a, 0xb9, 0x24, 0xea, 0xad, 0x35, 0x1b, 0x29, 0x4f, 0xbb, 0x18, 0x1f,
-       0xf8, 0x18, 0x27, 0x7c, 0x91, 0x1e, 0xc3, 0xac, 0x55, 0xd5, 0xe8, 0x7a,
-       0x47, 0x6b, 0x6e, 0x8e, 0x6c, 0x76, 0x4d, 0xc7, 0xb5, 0xcf, 0xcd, 0xcb,
-       0x48, 0x43, 0x4d, 0xc7, 0x8c, 0x59, 0xf1, 0x8f, 0xc0, 0xdf, 0x71, 0xad,
-       0xee, 0xe7, 0xe7, 0x60, 0x9a, 0xed, 0xb8, 0x16, 0x72, 0x44, 0xfc, 0xf7,
-       0xe0, 0xaf, 0x68, 0x8d, 0x20, 0x36, 0x96, 0x7a, 0x31, 0x30, 0x2e, 0x7d,
-       0x8e, 0x4f, 0x7c, 0x6c, 0xcb, 0x9f, 0xf3, 0xbf, 0x75, 0x3c, 0xd2, 0xe3,
-       0xa9, 0xf2, 0x7f, 0xef, 0xf4, 0xe7, 0x73, 0x0d, 0x67, 0x38, 0xaf, 0xf2,
-       0x7c, 0xbc, 0xef, 0x37, 0x2f, 0xdf, 0x20, 0xb6, 0x5b, 0xf3, 0xed, 0x75,
-       0xb3, 0x0f, 0xbb, 0xc8, 0xd7, 0xd7, 0x75, 0x18, 0x78, 0x2d, 0xf1, 0x80,
-       0xb9, 0xd5, 0x92, 0xc1, 0x9f, 0x58, 0xcf, 0xf7, 0xb4, 0x56, 0x2c, 0x7b,
-       0xb7, 0xfd, 0x96, 0xf7, 0x04, 0x78, 0x8f, 0x60, 0x7e, 0x5f, 0x20, 0x6a,
-       0xed, 0xd7, 0xd9, 0x7b, 0x03, 0xdf, 0xa2, 0x38, 0xcb, 0xfb, 0x06, 0xb2,
-       0x70, 0x8e, 0xd7, 0x09, 0xd7, 0x38, 0xd3, 0xf6, 0x81, 0x6c, 0xfb, 0xd8,
-       0x5f, 0x21, 0x19, 0xe0, 0xfe, 0xa4, 0x6d, 0xff, 0xd1, 0xce, 0xfb, 0x80,
-       0xa7, 0x0c, 0x77, 0xed, 0x0a, 0x50, 0x8d, 0xdf, 0x67, 0xd9, 0xc3, 0x75,
-       0xfa, 0xdb, 0xab, 0xfe, 0xb1, 0x95, 0xeb, 0x7c, 0xee, 0x09, 0xbe, 0xbb,
-       0x6a, 0xb2, 0x55, 0x22, 0x3c, 0xc5, 0x6b, 0xf2, 0xde, 0x02, 0xe7, 0x55,
-       0x2b, 0xee, 0x7a, 0x1a, 0x57, 0x18, 0xee, 0x05, 0x2b, 0x9c, 0x62, 0x51,
-       0xa6, 0x9f, 0x6c, 0x4f, 0x45, 0x22, 0x63, 0x78, 0x9a, 0x57, 0x84, 0xf0,
-       0x50, 0x66, 0x3e, 0x26, 0xb7, 0xa3, 0x7d, 0x0a, 0xf8, 0xdf, 0x99, 0x20,
-       0xda, 0x26, 0xc2, 0x43, 0xb7, 0x3b, 0xc2, 0xc3, 0xef, 0x38, 0xf8, 0x5e,
-       0xa1, 0xeb, 0x26, 0x0b, 0x7f, 0x1f, 0xed, 0x5a, 0x66, 0x7d, 0xbe, 0xdd,
-       0x75, 0x63, 0xe1, 0x6e, 0xa4, 0xe7, 0xdc, 0x97, 0xf3, 0x0e, 0x13, 0x0f,
-       0xc5, 0x1c, 0xf8, 0x9a, 0xf6, 0xd7, 0xe4, 0x5b, 0x82, 0x6c, 0xe3, 0x18,
-       0xe7, 0x60, 0x4b, 0xa7, 0xae, 0x15, 0x2a, 0xda, 0x32, 0x8d, 0x84, 0xd7,
-       0x9a, 0xa8, 0xe6, 0x6f, 0xc4, 0x0f, 0x73, 0x8c, 0xd7, 0x4c, 0x8a, 0xfb,
-       0x26, 0x5e, 0xef, 0x30, 0x86, 0x82, 0x50, 0x8c, 0x37, 0x85, 0x92, 0xba,
-       0xdd, 0xa1, 0x1c, 0x69, 0x72, 0xf8, 0xb1, 0x2f, 0x62, 0xe7, 0xd1, 0x4e,
-       0x2b, 0x6f, 0xbe, 0xd3, 0x65, 0xf7, 0xec, 0x4e, 0x56, 0xf3, 0xeb, 0xa9,
-       0x2e, 0x6d, 0x56, 0x39, 0x9a, 0x22, 0xff, 0x59, 0x48, 0xf1, 0x73, 0x3c,
-       0x9b, 0xb2, 0xce, 0x82, 0xfc, 0x32, 0x53, 0x43, 0xb6, 0x11, 0xd6, 0xc6,
-       0x11, 0x8e, 0x3e, 0x64, 0xd1, 0xfa, 0xb3, 0xae, 0x58, 0xa1, 0x8c, 0x8a,
-       0x53, 0x39, 0x08, 0x14, 0x09, 0x37, 0xb4, 0xf9, 0x5f, 0x46, 0x99, 0xfb,
-       0xa1, 0x56, 0xa0, 0x67, 0x1e, 0x5a, 0x0b, 0x40, 0x2e, 0xe3, 0xbe, 0x0c,
-       0xab, 0x17, 0xeb, 0xc0, 0x5a, 0x6d, 0x3b, 0xe1, 0x42, 0xde, 0xff, 0x15,
-       0x54, 0x63, 0x37, 0xa2, 0xb2, 0xc1, 0x89, 0xf1, 0x0c, 0xe7, 0xe1, 0x63,
-       0x5d, 0xf2, 0x28, 0x2a, 0x6e, 0x7b, 0x4f, 0x33, 0xe1, 0xa6, 0x0c, 0x3d,
-       0x57, 0x22, 0x4c, 0x4a, 0xb1, 0x63, 0x6b, 0xec, 0x37, 0x66, 0xb2, 0xd1,
-       0xde, 0x53, 0x19, 0x9d, 0x14, 0x58, 0xa0, 0x26, 0x31, 0x3a, 0xe7, 0xf4,
-       0xa5, 0xd3, 0x51, 0xa4, 0xcb, 0xfc, 0xbc, 0xfb, 0x72, 0xd2, 0x9a, 0x3f,
-       0xb2, 0x77, 0x89, 0xc3, 0x81, 0x65, 0x1d, 0x87, 0x50, 0x59, 0x68, 0xd3,
-       0x10, 0x24, 0x4c, 0xc0, 0x35, 0x6c, 0x13, 0xf1, 0x7a, 0xe7, 0xe3, 0x5c,
-       0x47, 0xfc, 0xa4, 0xeb, 0xe6, 0x29, 0xf6, 0xeb, 0x63, 0x5d, 0x1f, 0xa4,
-       0x95, 0x64, 0x93, 0x04, 0xb9, 0x8e, 0xf8, 0xbf, 0x6f, 0x94, 0xfb, 0x08,
-       0xbf, 0xe0, 0x3e, 0x02, 0xe5, 0x65, 0x65, 0xb8, 0x59, 0x78, 0xc5, 0xba,
-       0x0c, 0xd5, 0x15, 0x44, 0xf3, 0xa5, 0x88, 0xd2, 0x53, 0x22, 0x8c, 0xb2,
-       0x45, 0x50, 0x5d, 0x57, 0xb6, 0xe5, 0x65, 0x9f, 0xcd, 0xab, 0x5c, 0xc5,
-       0x21, 0x51, 0x0b, 0x77, 0xf0, 0x3e, 0x34, 0xe7, 0x71, 0x6b, 0x4f, 0x9f,
-       0xae, 0xff, 0xbc, 0x6b, 0x09, 0xd5, 0x16, 0x23, 0x4c, 0x1f, 0x78, 0xaf,
-       0x8f, 0x6a, 0xd0, 0xec, 0xf1, 0x2a, 0x2e, 0xf1, 0x56, 0xe5, 0xc2, 0xdf,
-       0xf9, 0x4c, 0xe2, 0x6b, 0x5d, 0x9b, 0x26, 0xf9, 0x8c, 0xe2, 0x4f, 0xba,
-       0xd6, 0x4c, 0x2a, 0xa1, 0x8d, 0xb4, 0xee, 0x6e, 0xde, 0x5f, 0xa7, 0x39,
-       0x67, 0x35, 0xa6, 0xbb, 0xd0, 0x75, 0x73, 0x96, 0x7b, 0xcb, 0xc7, 0xba,
-       0xcc, 0x6c, 0x98, 0x31, 0xa8, 0x65, 0x2b, 0x89, 0x02, 0x55, 0xf3, 0xd7,
-       0xd9, 0xbc, 0xba, 0x48, 0x1f, 0x87, 0xd2, 0x84, 0x76, 0xe2, 0xb6, 0x6e,
-       0x56, 0x17, 0xd6, 0x20, 0xd5, 0xd4, 0x4d, 0x35, 0xa8, 0xdf, 0xb7, 0x36,
-       0xd3, 0x8d, 0x09, 0xd2, 0xe1, 0xa6, 0x52, 0xd0, 0xd7, 0x9d, 0x51, 0x31,
-       0x50, 0xe2, 0x7a, 0xb3, 0xd2, 0xb5, 0x6b, 0x72, 0xaa, 0x5a, 0xff, 0xf6,
-       0x53, 0xcd, 0x4a, 0x76, 0x91, 0xb1, 0x6d, 0xae, 0xb5, 0x40, 0x34, 0x0b,
-       0x7b, 0x5e, 0x37, 0xad, 0x73, 0xfd, 0xe8, 0x77, 0xcd, 0xd0, 0x42, 0xb6,
-       0x85, 0xbb, 0xf1, 0xf8, 0x94, 0xcf, 0x08, 0xe8, 0x7e, 0x74, 0x76, 0x9c,
-       0xa2, 0x67, 0xdb, 0xf1, 0xf8, 0xe1, 0x5b, 0x90, 0xff, 0x23, 0x27, 0x2e,
-       0x66, 0x92, 0x58, 0xda, 0xf1, 0x55, 0x9c, 0xd9, 0x20, 0xe3, 0xef, 0x32,
-       0x5e, 0x5c, 0x22, 0xfe, 0x0c, 0x6b, 0x8e, 0x7f, 0xcf, 0xfe, 0x90, 0x5b,
-       0xb8, 0xc7, 0x35, 0xc6, 0x9e, 0xbf, 0xe7, 0x06, 0xf7, 0xde, 0x0c, 0xd4,
-       0x10, 0x0e, 0x0a, 0x13, 0xcd, 0x6a, 0x86, 0xcf, 0x38, 0x05, 0x7c, 0x9c,
-       0x2b, 0xa7, 0x89, 0x27, 0x47, 0xa9, 0xc5, 0xe7, 0x24, 0x7e, 0x9c, 0xa5,
-       0x73, 0x14, 0x03, 0xd8, 0x07, 0xdc, 0x97, 0x43, 0x96, 0x1d, 0x5c, 0xbb,
-       0xf6, 0x7e, 0x0f, 0xef, 0xf1, 0x1f, 0xcf, 0x72, 0x6c, 0x14, 0x54, 0xbb,
-       0x84, 0x90, 0x9c, 0x5d, 0x82, 0x9e, 0xd9, 0xed, 0x74, 0x5d, 0x45, 0x5f,
-       0xd5, 0xd7, 0x42, 0x05, 0x8f, 0x87, 0xf1, 0x49, 0x2e, 0x63, 0xff, 0x8e,
-       0x5c, 0xfd, 0xed, 0x16, 0x8d, 0xe3, 0x84, 0x1d, 0x11, 0xb7, 0xf2, 0xb0,
-       0xda, 0xf1, 0xef, 0xe2, 0xe5, 0x72, 0xca, 0xa2, 0x61, 0x37, 0xcd, 0xc5,
-       0xb2, 0x79, 0xce, 0x4c, 0xdd, 0xc9, 0xf2, 0x0b, 0xf8, 0x7e, 0x48, 0xfa,
-       0x98, 0xa4, 0x67, 0x1e, 0x27, 0x1e, 0xca, 0xc4, 0x5b, 0xb6, 0xf4, 0x5d,
-       0x1a, 0xc3, 0xf7, 0x40, 0xfa, 0x32, 0x14, 0x67, 0xf5, 0x6c, 0xe6, 0x08,
-       0xe5, 0xcb, 0x5a, 0x8a, 0x45, 0x67, 0xe3, 0xf7, 0x62, 0x6d, 0x4e, 0x49,
-       0x1a, 0x14, 0x2e, 0x53, 0x7e, 0x08, 0xa7, 0xce, 0x36, 0xfc, 0x36, 0xd9,
-       0x70, 0x0b, 0x61, 0x80, 0x70, 0xe8, 0x1c, 0x8d, 0x37, 0x9c, 0x32, 0x1e,
-       0x9b, 0x90, 0x70, 0x8e, 0xf7, 0x80, 0x85, 0xfd, 0xbc, 0x01, 0x1e, 0x3b,
-       0xff, 0xbd, 0x8e, 0xea, 0xba, 0x70, 0x82, 0xb2, 0xaa, 0x51, 0x4f, 0xb8,
-       0xbd, 0xd0, 0xf9, 0x08, 0xf6, 0x53, 0x7d, 0xbf, 0x35, 0x46, 0x32, 0x69,
-       0x8c, 0x53, 0xbd, 0xd1, 0x36, 0x74, 0x01, 0x7f, 0x67, 0x56, 0x78, 0x1f,
-       0x5d, 0x84, 0x13, 0x17, 0xf0, 0x99, 0x29, 0xa9, 0xea, 0xe9, 0x19, 0xa8,
-       0x95, 0x73, 0x68, 0x1b, 0xbe, 0x82, 0x0f, 0x4d, 0xde, 0x63, 0x97, 0x25,
-       0x89, 0x30, 0x60, 0xd8, 0xef, 0x44, 0x00, 0x95, 0x80, 0x84, 0x5b, 0x35,
-       0xee, 0x49, 0x2b, 0xc3, 0x4f, 0x13, 0x96, 0x7f, 0x5f, 0xb4, 0x0d, 0x7e,
-       0x8c, 0x33, 0x66, 0xbe, 0x91, 0xd7, 0x15, 0x48, 0xdc, 0xd8, 0x76, 0xba,
-       0x06, 0x4a, 0x8f, 0x4b, 0xa8, 0x89, 0x66, 0xe9, 0xaf, 0xcd, 0x33, 0x81,
-       0xcf, 0x4c, 0x35, 0xf2, 0x19, 0xe1, 0x20, 0x35, 0x38, 0x4d, 0x3e, 0x31,
-       0x88, 0x79, 0xda, 0xfe, 0x81, 0xf8, 0xd7, 0x88, 0x06, 0xc6, 0x7d, 0x86,
-       0x7b, 0x0f, 0xd1, 0xf6, 0x53, 0xc2, 0x01, 0x5b, 0x63, 0x17, 0xcc, 0xe4,
-       0x42, 0xeb, 0xfc, 0x5e, 0x9d, 0xdd, 0xfb, 0x66, 0x5f, 0xb9, 0x1b, 0x9b,
-       0xd2, 0x4e, 0x92, 0xd3, 0x3c, 0x5e, 0x73, 0x51, 0x0c, 0x66, 0x8c, 0x53,
-       0xb9, 0x9e, 0x4a, 0x33, 0xc7, 0xac, 0x0a, 0xec, 0xa2, 0xb8, 0xb0, 0xd3,
-       0xca, 0x05, 0xf0, 0x2c, 0x5e, 0xd1, 0x81, 0x2b, 0x53, 0xff, 0xc3, 0x43,
-       0xfa, 0x5b, 0xad, 0x2e, 0x87, 0x08, 0x66, 0x0c, 0xd1, 0xa0, 0x4b, 0xf8,
-       0xb8, 0x53, 0xe9, 0x71, 0x48, 0xc3, 0xb8, 0x31, 0x66, 0x98, 0x5e, 0x55,
-       0xed, 0x6f, 0x17, 0x91, 0xbe, 0x92, 0x88, 0xa2, 0xae, 0xe4, 0x95, 0xeb,
-       0x4a, 0xed, 0xb2, 0xa7, 0x64, 0xb8, 0xfd, 0x2b, 0xee, 0xa5, 0xba, 0x65,
-       0x07, 0xd5, 0xb6, 0x5e, 0xaa, 0xaf, 0x15, 0xb2, 0xc7, 0x1a, 0x92, 0x7f,
-       0x88, 0xe2, 0x80, 0x0e, 0x67, 0x66, 0x1b, 0x5c, 0x99, 0xb0, 0x7f, 0x37,
-       0x76, 0x20, 0x19, 0xb4, 0xb1, 0xad, 0x4c, 0xba, 0xaa, 0xed, 0x64, 0x2c,
-       0x73, 0x2f, 0xce, 0xe4, 0x19, 0x9f, 0x27, 0xb0, 0x31, 0xcd, 0xbf, 0xe1,
-       0x79, 0x39, 0xae, 0xe3, 0x28, 0xd5, 0x4e, 0xee, 0x8e, 0x66, 0xd2, 0x43,
-       0x0b, 0x46, 0xca, 0x82, 0x4d, 0x90, 0x74, 0x01, 0xcf, 0xd1, 0x4e, 0x19,
-       0xfb, 0x66, 0x28, 0x91, 0x50, 0x9e, 0x72, 0x92, 0x9d, 0xef, 0x26, 0x1b,
-       0xf2, 0xaa, 0x5e, 0xfa, 0x1d, 0xe0, 0x73, 0x47, 0x64, 0x93, 0x3f, 0xe9,
-       0x6a, 0xb7, 0x62, 0xcd, 0x2f, 0xa8, 0xc6, 0xf9, 0x15, 0xf1, 0xc2, 0xb2,
-       0xd0, 0x51, 0x37, 0x3e, 0x5f, 0x13, 0xae, 0xb9, 0xa3, 0x0e, 0x41, 0x9a,
-       0x33, 0x58, 0xdd, 0x23, 0x13, 0x58, 0x13, 0xeb, 0x40, 0x31, 0x27, 0xaa,
-       0x18, 0x6b, 0x44, 0xf1, 0x62, 0x35, 0xf6, 0x53, 0xed, 0xef, 0x53, 0x37,
-       0x22, 0xe3, 0xaf, 0x78, 0xde, 0x89, 0x73, 0x0d, 0x00, 0xcf, 0x00, 0x61,
-       0xa8, 0xd1, 0xf4, 0x57, 0x90, 0x5f, 0x08, 0xf7, 0x3d, 0x71, 0x3e, 0x9f,
-       0x49, 0x21, 0x4a, 0x5d, 0x8d, 0x86, 0xe5, 0xbd, 0xf8, 0xb8, 0x91, 0xf1,
-       0xaf, 0x97, 0x62, 0x83, 0x8c, 0xdd, 0x33, 0x01, 0xeb, 0x5c, 0x04, 0xc5,
-       0xc0, 0x2a, 0xcd, 0xd7, 0xd2, 0xfa, 0x65, 0x34, 0xb2, 0x4c, 0xfe, 0x6f,
-       0x34, 0x92, 0xcd, 0x12, 0xe6, 0xc9, 0xa5, 0x07, 0xf0, 0x4a, 0x9a, 0xe7,
-       0x0d, 0x27, 0x35, 0xe1, 0xe7, 0x9e, 0xbc, 0x25, 0x13, 0x63, 0x86, 0xd7,
-       0xf0, 0x5a, 0xb1, 0xc9, 0x5e, 0x27, 0xc0, 0xbd, 0xa2, 0xff, 0xe0, 0x5a,
-       0x1a, 0xe5, 0xc7, 0xd5, 0x54, 0x77, 0x46, 0xa1, 0x7e, 0xa3, 0x42, 0xfa,
-       0xe0, 0x1e, 0xf5, 0x12, 0xc2, 0xbc, 0x70, 0xbf, 0x1a, 0xe7, 0x73, 0xc8,
-       0xe6, 0x0e, 0x59, 0x37, 0x4d, 0x57, 0xa7, 0xea, 0x7f, 0x0f, 0x6c, 0x87,
-       0x5e, 0xde, 0xeb, 0x70, 0xef, 0xee, 0xf4, 0x62, 0x1f, 0xe5, 0xc0, 0x67,
-       0xd3, 0x6d, 0x06, 0xd7, 0x7e, 0x60, 0x1c, 0x2a, 0x52, 0xf4, 0xec, 0x50,
-       0x1d, 0x9f, 0x09, 0xda, 0x55, 0xde, 0x06, 0x47, 0xe6, 0xb6, 0x3a, 0xae,
-       0x37, 0x6a, 0xa8, 0x4e, 0x1e, 0x49, 0x33, 0xbd, 0xdc, 0x7b, 0x33, 0xcd,
-       0x9d, 0x71, 0xf5, 0xf2, 0x5a, 0xb2, 0x8b, 0x66, 0x9d, 0xe5, 0x18, 0xc0,
-       0x93, 0x34, 0x36, 0x54, 0x66, 0x59, 0x7e, 0xb7, 0x8e, 0xfb, 0x9d, 0x7b,
-       0x48, 0xbf, 0x0d, 0x59, 0x7b, 0x9e, 0x6c, 0x79, 0x10, 0x4b, 0x46, 0x5f,
-       0xa8, 0xb3, 0x6b, 0x1f, 0xae, 0xcb, 0x87, 0xb0, 0x27, 0x1d, 0xc0, 0x4c,
-       0xba, 0xcd, 0xff, 0x12, 0x9c, 0xd5, 0xbc, 0xca, 0xe7, 0x88, 0xe7, 0xc7,
-       0x04, 0x30, 0x7d, 0xf5, 0x3b, 0xcb, 0xc7, 0xee, 0x99, 0x1e, 0xb7, 0x30,
-       0xbf, 0x8c, 0x7c, 0xc0, 0xae, 0x63, 0x28, 0x56, 0x78, 0x1e, 0x25, 0xbd,
-       0xbe, 0x4f, 0x7a, 0x75, 0x90, 0x5e, 0x5f, 0xd2, 0xfe, 0x92, 0x31, 0x8b,
-       0x7b, 0x57, 0xdc, 0xcb, 0xfb, 0x43, 0x06, 0x81, 0x16, 0x6b, 0x4c, 0x26,
-       0xee, 0xc4, 0xeb, 0x94, 0x07, 0x6b, 0x28, 0xfe, 0x9d, 0x4a, 0x9b, 0xab,
-       0xe7, 0x62, 0x6d, 0xa9, 0xf7, 0x29, 0x4f, 0x1b, 0x7f, 0xa8, 0x68, 0x67,
-       0xc8, 0x4f, 0xb3, 0x13, 0x7f, 0x8a, 0x33, 0x8d, 0x6d, 0xfe, 0xb7, 0x60,
-       0xb8, 0x9f, 0x88, 0x3f, 0x42, 0x35, 0x3f, 0xd5, 0x0d, 0xcb, 0xff, 0x0b,
-       0x39, 0x59, 0x1c, 0x92, 0xda, 0x76, 0xf9, 0x25, 0xfc, 0x15, 0xce, 0x5c,
-       0x17, 0xd6, 0x5e, 0x02, 0x8f, 0xb1, 0xeb, 0xf1, 0xf0, 0xec, 0xfd, 0x7c,
-       0x1e, 0x2a, 0x48, 0xe9, 0xcc, 0xde, 0xc7, 0x4a, 0xf3, 0xbe, 0x9b, 0x40,
-       0x7e, 0x03, 0xd5, 0xd2, 0xd6, 0x39, 0x54, 0x78, 0x9e, 0x26, 0xbf, 0x88,
-       0x8e, 0xf1, 0xf8, 0x63, 0x5d, 0x6a, 0x21, 0x04, 0x89, 0x30, 0x0e, 0x61,
-       0x84, 0x1e, 0x3e, 0x9f, 0xf1, 0x74, 0x3a, 0x48, 0xb9, 0xa0, 0xad, 0x2f,
-       0x2a, 0xbe, 0x0d, 0x1b, 0x03, 0x70, 0x9e, 0x3b, 0x46, 0x79, 0x4e, 0x49,
-       0x3d, 0x8d, 0xb6, 0x7e, 0xaf, 0xb8, 0x1b, 0xa9, 0xc6, 0xb6, 0xc1, 0xa3,
-       0x08, 0x13, 0x66, 0x50, 0xa2, 0x67, 0x60, 0xcf, 0xb3, 0xb4, 0x20, 0x51,
-       0x9d, 0xc8, 0x71, 0x26, 0x8d, 0xa3, 0x7e, 0x09, 0x37, 0x74, 0xa8, 0x97,
-       0xa7, 0x31, 0x6f, 0x2f, 0xf6, 0x98, 0xd5, 0x05, 0x1a, 0x2f, 0xf9, 0x09,
-       0xdb, 0xd4, 0xc0, 0x49, 0xb5, 0xbf, 0xa4, 0x6f, 0xc3, 0xd6, 0x34, 0xe7,
-       0x69, 0x92, 0x0b, 0xf9, 0x66, 0x5f, 0x64, 0x1b, 0x86, 0x0a, 0x01, 0xec,
-       0xcf, 0x86, 0xf7, 0xee, 0x26, 0x5c, 0x37, 0x56, 0x0e, 0x87, 0x36, 0x8b,
-       0x00, 0xe9, 0x9b, 0xea, 0xff, 0xa6, 0x20, 0xd5, 0xc9, 0x7e, 0xfa, 0xb7,
-       0xeb, 0x99, 0x53, 0x54, 0xcf, 0xbc, 0x4e, 0xbe, 0xe6, 0xad, 0xd6, 0xaa,
-       0x4b, 0xf3, 0x26, 0xe6, 0x62, 0xeb, 0x71, 0xc9, 0xd2, 0x59, 0x90, 0x6c,
-       0x8c, 0x73, 0x08, 0x9f, 0x8d, 0x71, 0x8b, 0xcd, 0x63, 0x86, 0xfb, 0xc1,
-       0xce, 0x20, 0xe5, 0x34, 0xc6, 0x9c, 0x8e, 0x3f, 0x92, 0x48, 0x1e, 0x33,
-       0xea, 0x0e, 0xac, 0x8b, 0xed, 0xc0, 0x90, 0xf6, 0x5d, 0xd4, 0x34, 0x71,
-       0x3c, 0x92, 0x8d, 0x06, 0x9a, 0xf7, 0x42, 0x67, 0x2f, 0xc2, 0x4f, 0x31,
-       0x3e, 0xfa, 0x19, 0xe1, 0x23, 0xf6, 0x5d, 0x9e, 0xbf, 0x51, 0x5f, 0x46,
-       0xb8, 0xa2, 0xbe, 0xd3, 0xce, 0xf3, 0x37, 0x16, 0xf8, 0x4c, 0x26, 0xa8,
-       0x36, 0x85, 0xe7, 0xdd, 0x95, 0x3a, 0x9e, 0xa0, 0x18, 0x93, 0x58, 0xee,
-       0x02, 0x16, 0xf0, 0xd9, 0x63, 0xbb, 0x8e, 0x61, 0x7e, 0x97, 0x14, 0x04,
-       0x66, 0xe3, 0x64, 0x1f, 0xff, 0xea, 0x8c, 0x51, 0xa8, 0x7a, 0x36, 0x94,
-       0xfb, 0x27, 0x07, 0xcc, 0x24, 0xbf, 0x33, 0xe0, 0xa8, 0xf3, 0x52, 0xbc,
-       0x0d, 0x56, 0x20, 0x79, 0x39, 0x2e, 0x4b, 0xea, 0xbc, 0xdc, 0x59, 0xd6,
-       0x47, 0x38, 0xbe, 0x5b, 0xba, 0x70, 0xd2, 0x33, 0xbb, 0x26, 0x95, 0xe1,
-       0xdd, 0x68, 0x1b, 0xfa, 0x40, 0xd4, 0x5a, 0x3b, 0x97, 0xd3, 0xed, 0x48,
-       0x2d, 0xd6, 0x9d, 0x1b, 0xae, 0x64, 0x57, 0x13, 0x1d, 0xe7, 0x4c, 0x5c,
-       0xb7, 0xc6, 0xda, 0xdf, 0x9a, 0x6e, 0xff, 0x73, 0x9a, 0x9b, 0xbf, 0x3f,
-       0xe0, 0xe5, 0x33, 0x93, 0xc7, 0xb3, 0x2f, 0x9a, 0xd1, 0x85, 0xb6, 0x7c,
-       0x4e, 0x90, 0xef, 0x07, 0x75, 0x07, 0x9a, 0xd5, 0xc8, 0xe5, 0x7e, 0xfa,
-       0xfd, 0xb7, 0x05, 0x42, 0xfb, 0x2b, 0x07, 0xf1, 0xab, 0xbc, 0x8e, 0xc7,
-       0x28, 0x0f, 0x34, 0xa8, 0x8a, 0x3f, 0xcf, 0xfb, 0xd7, 0x31, 0x9b, 0xff,
-       0x9b, 0xf2, 0xe4, 0x87, 0x8d, 0x7e, 0xab, 0xc6, 0xb0, 0xf9, 0x2b, 0x10,
-       0x7f, 0x03, 0x5e, 0xf6, 0x85, 0xc5, 0xe4, 0x17, 0x7b, 0xc9, 0x5f, 0x1f,
-       0x23, 0x5b, 0xa3, 0x0a, 0x9e, 0xfc, 0x40, 0xd9, 0x0b, 0xf2, 0xd7, 0xb1,
-       0x34, 0xcb, 0x3f, 0xe8, 0x1b, 0x18, 0xe5, 0xb8, 0x6b, 0xf5, 0x55, 0xb5,
-       0x90, 0x83, 0xe3, 0xae, 0x15, 0x4f, 0x8d, 0x90, 0xe3, 0xd7, 0x75, 0x4c,
-       0xd7, 0x48, 0x39, 0x1c, 0xf4, 0xf0, 0x79, 0x7e, 0x02, 0x87, 0x03, 0x9a,
-       0x9d, 0x2b, 0xe7, 0x28, 0x1f, 0x5d, 0x22, 0x3a, 0xf6, 0xc7, 0x9a, 0x91,
-       0xa2, 0x7c, 0x94, 0x51, 0x6d, 0x5b, 0x52, 0x67, 0x19, 0x63, 0xfe, 0x82,
-       0x30, 0xa6, 0x12, 0x72, 0x49, 0x6d, 0xc3, 0x27, 0xb1, 0xcd, 0x3c, 0xd3,
-       0xc8, 0x36, 0xe5, 0xc2, 0xe1, 0xf6, 0x59, 0xb3, 0x12, 0x60, 0x7e, 0x25,
-       0xbc, 0xa8, 0x91, 0xcd, 0x5c, 0x17, 0x0e, 0xbe, 0x48, 0x39, 0x75, 0xa6,
-       0xaa, 0x8f, 0x70, 0x61, 0xde, 0x1e, 0x63, 0x2c, 0xeb, 0x68, 0x0a, 0x6a,
-       0xa2, 0x80, 0x3f, 0xa6, 0xef, 0xad, 0xc1, 0x4b, 0x55, 0x5b, 0x5d, 0x36,
-       0xfb, 0xdf, 0xbd, 0xd5, 0x77, 0x6c, 0xac, 0x67, 0x42, 0x85, 0xfb, 0xe9,
-       0x37, 0xcf, 0x19, 0xe0, 0xb3, 0x2d, 0x7c, 0xd6, 0xca, 0xb3, 0xb5, 0xb3,
-       0x86, 0xfd, 0xc5, 0xcf, 0xef, 0x15, 0xac, 0x1b, 0xe3, 0xbe, 0x30, 0xf7,
-       0x68, 0x24, 0xec, 0xbe, 0xfa, 0xde, 0x03, 0x7f, 0xf6, 0xe0, 0xd6, 0x31,
-       0xee, 0x45, 0x9c, 0xb8, 0x59, 0xc6, 0x3f, 0x51, 0x1e, 0x96, 0xd9, 0xe7,
-       0xc9, 0xd7, 0x7f, 0xd4, 0x75, 0x6a, 0x92, 0x73, 0xea, 0xdb, 0x5d, 0x9b,
-       0xd2, 0xf3, 0x3a, 0xbe, 0xca, 0xd3, 0xe9, 0x7b, 0x28, 0xee, 0x64, 0xd2,
-       0xca, 0x70, 0x44, 0xb2, 0xf6, 0xd5, 0x52, 0x25, 0xf1, 0x15, 0x2a, 0xd2,
-       0x78, 0xbe, 0x5e, 0xf4, 0x8f, 0x85, 0xa8, 0xb6, 0xf1, 0xfb, 0x1e, 0x38,
-       0x60, 0x52, 0xae, 0x70, 0xe2, 0xe9, 0xd1, 0xb0, 0xf6, 0x26, 0xe1, 0x9d,
-       0x67, 0x46, 0x4d, 0xf3, 0x4d, 0x0d, 0x7f, 0xd2, 0x40, 0x35, 0x72, 0xbb,
-       0x50, 0x12, 0x84, 0x0d, 0x42, 0xeb, 0x45, 0x5b, 0xb0, 0x00, 0xe5, 0xf4,
-       0x4e, 0x9a, 0xef, 0x50, 0x11, 0x78, 0xb1, 0xe8, 0xc1, 0x0b, 0x63, 0xdc,
-       0xfb, 0xf3, 0xa0, 0xf4, 0x54, 0x93, 0x6f, 0xdb, 0x81, 0x10, 0xc5, 0x58,
-       0x19, 0xbd, 0x87, 0x12, 0xb8, 0xf5, 0x80, 0x40, 0x34, 0x92, 0x40, 0xcf,
-       0xa1, 0x7a, 0xac, 0x1f, 0x93, 0x71, 0x31, 0x5e, 0x8f, 0xdb, 0x9e, 0x9a,
-       0xe7, 0xe3, 0x9d, 0x6a, 0x9d, 0x27, 0x5b, 0xe7, 0xd8, 0x8e, 0x66, 0x39,
-       0x66, 0x53, 0xbe, 0xc8, 0x72, 0x0c, 0x34, 0xcd, 0x60, 0xa7, 0xdd, 0xe7,
-       0x78, 0x8e, 0xf2, 0xc7, 0x13, 0x9d, 0x6a, 0x30, 0xe8, 0xd0, 0x71, 0xc3,
-       0x44, 0xe5, 0xdb, 0x0d, 0x30, 0x8f, 0xf3, 0x1e, 0xc6, 0xa7, 0xed, 0xa6,
-       0x79, 0x6b, 0x3c, 0x72, 0x99, 0x2a, 0x3b, 0xf2, 0xa9, 0xb7, 0xc9, 0xa7,
-       0x5a, 0xf0, 0x44, 0x76, 0x7e, 0xaf, 0x4b, 0xed, 0xbf, 0x20, 0x19, 0x3b,
-       0xfc, 0x30, 0x3f, 0xa9, 0xd5, 0xcd, 0x4f, 0x5d, 0x7a, 0x24, 0xb8, 0x5d,
-       0xf0, 0x19, 0x11, 0xee, 0x89, 0x9b, 0xe6, 0xd9, 0xb8, 0x69, 0x16, 0xe3,
-       0x86, 0x7b, 0xd9, 0x0a, 0x3f, 0x0e, 0x2d, 0xe5, 0x77, 0x0d, 0xc2, 0xc9,
-       0x66, 0xb2, 0x2f, 0xcf, 0x52, 0x35, 0xb8, 0x91, 0xea, 0x2b, 0x83, 0x82,
-       0x5c, 0x68, 0xa1, 0xd2, 0x0f, 0xb4, 0xf8, 0xf6, 0x8f, 0x36, 0xe1, 0x99,
-       0xb9, 0xdf, 0xe5, 0xe3, 0x39, 0x56, 0x3f, 0xed, 0x13, 0x0d, 0xab, 0x1b,
-       0x10, 0x49, 0x6e, 0x01, 0xf7, 0x46, 0xf9, 0x4c, 0xaa, 0x81, 0xdb, 0xe2,
-       0x83, 0xd8, 0x3a, 0xc6, 0xfb, 0x6b, 0x3f, 0xef, 0xfa, 0x64, 0xcc, 0xfc,
-       0x5b, 0x37, 0xd1, 0xbf, 0xba, 0xb3, 0x2d, 0xe5, 0xb1, 0xde, 0x55, 0x3a,
-       0x49, 0x75, 0x40, 0x23, 0xca, 0x33, 0x6a, 0x65, 0xb1, 0x48, 0xbe, 0xe9,
-       0x45, 0x24, 0xd8, 0x4c, 0xb1, 0x6a, 0x8e, 0x7c, 0x77, 0xa6, 0xcc, 0x75,
-       0xc0, 0x2f, 0xbb, 0xcc, 0x89, 0x45, 0x98, 0x9e, 0xa3, 0xb9, 0xb2, 0x6a,
-       0xcf, 0x47, 0x84, 0xf3, 0xea, 0x74, 0xb3, 0xc1, 0xa3, 0x47, 0x4e, 0xb7,
-       0x09, 0x09, 0x97, 0x97, 0x9b, 0x66, 0x6f, 0xa7, 0x3a, 0x5c, 0x2f, 0x30,
-       0xe4, 0xd0, 0xd5, 0x44, 0xbb, 0x84, 0xaf, 0x06, 0x11, 0xe9, 0x39, 0x8b,
-       0x48, 0xff, 0x39, 0x8a, 0x61, 0xcf, 0x96, 0xf9, 0x9c, 0xef, 0x23, 0xf8,
-       0xdb, 0xb1, 0x85, 0x38, 0x3e, 0xf3, 0x50, 0xb5, 0x27, 0x06, 0xcf, 0x8d,
-       0x2b, 0x74, 0x1c, 0x26, 0xbd, 0x9e, 0xd4, 0x6a, 0x28, 0xae, 0xcb, 0x70,
-       0xb4, 0x42, 0x6e, 0xa4, 0x3a, 0x21, 0xf6, 0xb8, 0x69, 0x2e, 0x6b, 0xb5,
-       0x6b, 0x9e, 0x65, 0xb3, 0xd7, 0xbe, 0xa3, 0x30, 0xdf, 0xef, 0x09, 0x92,
-       0xfe, 0xda, 0x52, 0x5b, 0xc5, 0x49, 0xd3, 0xf8, 0x43, 0x41, 0x3c, 0xdf,
-       0x56, 0x0f, 0x0f, 0xf3, 0x2d, 0x63, 0xe7, 0x04, 0xf7, 0xe1, 0x58, 0x6f,
-       0xf0, 0xf4, 0xc4, 0x79, 0x9f, 0x9c, 0x75, 0x54, 0xf1, 0xac, 0x8b, 0x53,
-       0x4c, 0x14, 0x3e, 0xc2, 0x53, 0x86, 0xbb, 0x9b, 0xf2, 0x53, 0xed, 0x18,
-       0xbf, 0x2f, 0xe1, 0xc5, 0x63, 0x14, 0x37, 0x2e, 0x69, 0x75, 0xd8, 0xdf,
-       0xc8, 0xb6, 0xc3, 0x74, 0x72, 0xcf, 0x70, 0x1b, 0xee, 0xe5, 0x77, 0x4e,
-       0xca, 0xbf, 0x6b, 0x9d, 0x0d, 0xa4, 0x6b, 0x84, 0x0d, 0x98, 0x8e, 0xf9,
-       0xf5, 0x7b, 0xb0, 0x78, 0x94, 0xf5, 0x78, 0xac, 0x2b, 0x48, 0x32, 0x7a,
-       0x82, 0xec, 0xc2, 0xa1, 0x77, 0x43, 0x26, 0x5b, 0x5c, 0x1b, 0xbf, 0x76,
-       0x0e, 0x75, 0xe8, 0x9c, 0x44, 0xf5, 0x9d, 0xc4, 0xfb, 0x79, 0x4a, 0xe2,
-       0x88, 0xb8, 0x76, 0xce, 0x7c, 0x3d, 0xf7, 0x13, 0x8d, 0x19, 0x3b, 0x2f,
-       0x1d, 0xa6, 0xbc, 0xf4, 0x4a, 0x8e, 0x7d, 0xe4, 0x17, 0x96, 0x8f, 0x38,
-       0x28, 0xd6, 0xae, 0x49, 0x87, 0x70, 0x4e, 0x83, 0x5a, 0x83, 0x18, 0xd1,
-       0x1d, 0xe9, 0xe9, 0xae, 0x62, 0x3e, 0x17, 0xc5, 0xff, 0x99, 0x9c, 0x32,
-       0x68, 0xf5, 0x9f, 0x54, 0xa5, 0x8f, 0x3f, 0x79, 0xef, 0x3f, 0xa8, 0x0f,
-       0xa1, 0x61, 0x25, 0x70, 0x7e, 0x94, 0xfb, 0x55, 0xbc, 0xcf, 0x35, 0x2c,
-       0xae, 0xf0, 0x7b, 0x61, 0xb5, 0x43, 0x78, 0x2f, 0xce, 0xef, 0x5b, 0xb1,
-       0xef, 0x3d, 0x0c, 0xf6, 0xbd, 0x06, 0x1a, 0xfb, 0xc9, 0x68, 0x38, 0xd4,
-       0x43, 0x7e, 0x33, 0x00, 0xeb, 0xbc, 0x90, 0x36, 0x6b, 0xf7, 0xc7, 0x93,
-       0xa7, 0xaa, 0xfb, 0x5b, 0x91, 0xea, 0xde, 0x5c, 0xb4, 0xd0, 0x23, 0x2e,
-       0x15, 0x98, 0xa6, 0xb7, 0x89, 0xa6, 0x6e, 0xf1, 0xe1, 0xec, 0x3a, 0x71,
-       0x71, 0xb6, 0x57, 0x9c, 0x2d, 0x70, 0x4c, 0xfe, 0x79, 0xd7, 0xae, 0x1c,
-       0xe7, 0xb3, 0x3b, 0xc5, 0xbb, 0xf9, 0x0d, 0xe2, 0x42, 0xa1, 0x5f, 0x7c,
-       0x34, 0x6b, 0xe0, 0xfe, 0x78, 0x2f, 0x0a, 0x63, 0xf0, 0xbb, 0xf5, 0xfb,
-       0xc5, 0xa5, 0xbc, 0xdd, 0x27, 0xbc, 0x50, 0x68, 0xf1, 0x15, 0xd2, 0x5c,
-       0x03, 0x1f, 0xa3, 0x1a, 0x78, 0x91, 0xef, 0x99, 0xc9, 0x80, 0xaf, 0x34,
-       0xa9, 0x0c, 0xde, 0x23, 0x4c, 0xf3, 0xb6, 0xd8, 0x69, 0xd6, 0xa1, 0xf9,
-       0x5a, 0xcc, 0xc6, 0x07, 0x3b, 0x49, 0x1e, 0x9b, 0x29, 0xb7, 0x4c, 0x6b,
-       0x6d, 0x55, 0x2c, 0xc2, 0xb6, 0xce, 0xbc, 0x72, 0xae, 0xe6, 0xfd, 0xa7,
-       0x21, 0x38, 0x3b, 0x81, 0xbd, 0xe9, 0xcf, 0x79, 0xbd, 0x44, 0xbc, 0x1a,
-       0xae, 0x21, 0x7c, 0x4c, 0xbc, 0xbe, 0x3e, 0xfa, 0xf9, 0x7e, 0x9e, 0x93,
-       0xc6, 0xee, 0x4a, 0x87, 0x53, 0x47, 0x84, 0x52, 0x29, 0xd8, 0xfb, 0x79,
-       0x9a, 0x57, 0x52, 0x4e, 0x8f, 0x50, 0x1d, 0xd1, 0x2a, 0xd9, 0xbc, 0x26,
-       0xaa, 0xbc, 0xde, 0x44, 0xbc, 0x5e, 0x2c, 0x70, 0x7d, 0xfe, 0x76, 0xd7,
-       0x1b, 0xa3, 0x63, 0x66, 0x3d, 0xd5, 0xff, 0x75, 0x6a, 0xb7, 0xb8, 0x40,
-       0x3c, 0x7f, 0x48, 0x3c, 0x7f, 0x5c, 0xb8, 0x53, 0x7c, 0x44, 0x7c, 0x5e,
-       0x2c, 0xf0, 0x1e, 0x9e, 0x5b, 0x7c, 0x98, 0xb3, 0x79, 0xfc, 0xf0, 0x2a,
-       0x8f, 0x41, 0xdf, 0xfe, 0x74, 0x93, 0xef, 0xd1, 0x49, 0xbf, 0x6f, 0xcf,
-       0xa4, 0x69, 0x7e, 0xa8, 0x49, 0x3e, 0xe6, 0xeb, 0x55, 0xed, 0x8b, 0x7c,
-       0xdd, 0x4c, 0x7c, 0xf1, 0xfe, 0xeb, 0x6f, 0xeb, 0x70, 0x9e, 0xaf, 0xc7,
-       0xac, 0x73, 0x6c, 0xf6, 0x19, 0xa9, 0x7a, 0xde, 0x83, 0x25, 0xbe, 0x7c,
-       0x74, 0xfd, 0x95, 0x7f, 0xcd, 0xd7, 0xe0, 0x05, 0xd2, 0x5f, 0xb1, 0xca,
-       0x57, 0xfd, 0xbf, 0xc9, 0x17, 0xd5, 0xba, 0x63, 0xcc, 0x57, 0xa3, 0xfe,
-       0xc6, 0x98, 0x49, 0xfa, 0x92, 0xac, 0x77, 0xc1, 0x8a, 0xd9, 0x1d, 0x78,
-       0x25, 0xc6, 0xef, 0xc7, 0x45, 0x42, 0x47, 0x28, 0x9e, 0xce, 0x96, 0x3d,
-       0xa2, 0xc6, 0xda, 0x87, 0xc5, 0x1b, 0xb5, 0x44, 0xd3, 0xe1, 0x19, 0x7e,
-       0xff, 0x0b, 0x1a, 0x61, 0x01, 0x3f, 0xbf, 0x37, 0x37, 0x0d, 0xee, 0x97,
-       0xf5, 0x8a, 0x86, 0x22, 0xef, 0xbb, 0x6e, 0x10, 0xbe, 0x22, 0x9f, 0xa3,
-       0xeb, 0x11, 0xde, 0x62, 0xb7, 0xf0, 0x1c, 0x32, 0x4c, 0x8f, 0xba, 0x4e,
-       0xd4, 0x1d, 0xba, 0x53, 0x78, 0xaa, 0x7b, 0xb0, 0xee, 0x62, 0xd0, 0x97,
-       0xbe, 0x46, 0x1e, 0x17, 0xb5, 0x9b, 0x2d, 0x79, 0xbc, 0xa6, 0xcd, 0xef,
-       0x1f, 0x5a, 0xe7, 0x10, 0xf9, 0x1c, 0x9c, 0x27, 0x48, 0xb5, 0x53, 0x43,
-       0xb5, 0x76, 0x7a, 0x37, 0xc6, 0xe7, 0x7b, 0x0c, 0x92, 0x3f, 0x42, 0x4e,
-       0x5d, 0xe9, 0x3f, 0x21, 0xd4, 0xd4, 0xfd, 0x22, 0x79, 0xab, 0x97, 0xea,
-       0x9f, 0xad, 0xb1, 0x48, 0xf2, 0x06, 0x11, 0x49, 0x38, 0x05, 0xe7, 0x15,
-       0x4d, 0xae, 0x2d, 0x19, 0xd8, 0x43, 0xf1, 0xed, 0xe5, 0x9c, 0x83, 0xb0,
-       0x03, 0xbf, 0x43, 0xe6, 0xc4, 0x5a, 0xbf, 0x17, 0x4f, 0x12, 0xee, 0x78,
-       0x22, 0x3b, 0x88, 0x27, 0x0b, 0x03, 0x78, 0xa2, 0xf0, 0xaf, 0xde, 0x95,
-       0x91, 0x3d, 0xfa, 0xf9, 0x95, 0xd5, 0x33, 0x08, 0x89, 0xeb, 0x23, 0x1c,
-       0xa3, 0x1f, 0x6e, 0x97, 0x23, 0x5c, 0xeb, 0xbe, 0x75, 0xf3, 0x07, 0x2a,
-       0xfb, 0xa2, 0xba, 0xe2, 0x94, 0x85, 0x45, 0x1e, 0x59, 0x7e, 0xc8, 0x3a,
-       0x1b, 0x95, 0xbe, 0x69, 0x97, 0xf5, 0x4e, 0xe7, 0x3b, 0x2b, 0x36, 0xa9,
-       0xec, 0x0f, 0x0f, 0xc7, 0xd7, 0x58, 0xf9, 0xf5, 0x6f, 0x56, 0xd9, 0x3d,
-       0x9a, 0x77, 0x56, 0x5d, 0x6f, 0xf7, 0xd1, 0x56, 0x45, 0xad, 0xcf, 0x33,
-       0xab, 0xec, 0xfd, 0xed, 0x4f, 0x57, 0xb5, 0x5a, 0x9f, 0xe7, 0x57, 0xd9,
-       0x3e, 0xf5, 0xee, 0x2a, 0xd5, 0xfa, 0xfc, 0x87, 0x55, 0x76, 0x5e, 0xbe,
-       0xb4, 0x6a, 0xc9, 0xd5, 0xf7, 0x63, 0xf8, 0xef, 0xff, 0x00, 0x88, 0xf4,
-       0x23, 0x6f, 0xec, 0x3a, 0x00, 0x00, 0x00 };
-
-static const u32 bnx2_TXP_b09FwData[(0x0/4) + 1] = { 0x0 };
-static const u32 bnx2_TXP_b09FwRodata[(0x30/4) + 1] = {
-       0x80000940, 0x80000900, 0x80080100, 0x80080080, 0x80080000, 0x800e0000,
-       0x80080080, 0x80080000, 0x80000a80, 0x80000a00, 0x80000980, 0x80000900,
-       0x00000000 };
-
-static struct fw_info bnx2_txp_fw_09 = {
-       /* Firmware version: 4.6.15 */
-       .ver_major                      = 0x4,
-       .ver_minor                      = 0x6,
-       .ver_fix                        = 0xf,
-
-       .start_addr                     = 0x08000098,
-
-       .text_addr                      = 0x08000000,
-       .text_len                       = 0x3ae8,
-       .text_index                     = 0x0,
-       .gz_text                        = bnx2_TXP_b09FwText,
-       .gz_text_len                    = sizeof(bnx2_TXP_b09FwText),
-
-       .data_addr                      = 0x00000000,
-       .data_len                       = 0x0,
-       .data_index                     = 0x0,
-       .data                           = bnx2_TXP_b09FwData,
-
-       .sbss_addr                      = 0x08003b40,
-       .sbss_len                       = 0x6c,
-       .sbss_index                     = 0x0,
-
-       .bss_addr                       = 0x08003bac,
-       .bss_len                        = 0x24c,
-       .bss_index                      = 0x0,
-
-       .rodata_addr                    = 0x08003ae8,
-       .rodata_len                     = 0x30,
-       .rodata_index                   = 0x0,
-       .rodata                         = bnx2_TXP_b09FwRodata,
-};
-
index 93b861d..a65023d 100644 (file)
@@ -2335,6 +2335,12 @@ static void e1000_set_rx_mode(struct net_device *netdev)
        int mta_reg_count = (hw->mac_type == e1000_ich8lan) ?
                                E1000_NUM_MTA_REGISTERS_ICH8LAN :
                                E1000_NUM_MTA_REGISTERS;
+       u32 *mcarray = kcalloc(mta_reg_count, sizeof(u32), GFP_ATOMIC);
+
+       if (!mcarray) {
+               DPRINTK(PROBE, ERR, "memory allocation failed\n");
+               return;
+       }
 
        if (hw->mac_type == e1000_ich8lan)
                rar_entries = E1000_RAR_ENTRIES_ICH8LAN;
@@ -2401,22 +2407,34 @@ static void e1000_set_rx_mode(struct net_device *netdev)
        }
        WARN_ON(uc_ptr != NULL);
 
-       /* clear the old settings from the multicast hash table */
-
-       for (i = 0; i < mta_reg_count; i++) {
-               E1000_WRITE_REG_ARRAY(hw, MTA, i, 0);
-               E1000_WRITE_FLUSH();
-       }
-
        /* load any remaining addresses into the hash table */
 
        for (; mc_ptr; mc_ptr = mc_ptr->next) {
+               u32 hash_reg, hash_bit, mta;
                hash_value = e1000_hash_mc_addr(hw, mc_ptr->da_addr);
-               e1000_mta_set(hw, hash_value);
+               hash_reg = (hash_value >> 5) & 0x7F;
+               hash_bit = hash_value & 0x1F;
+               mta = (1 << hash_bit);
+               mcarray[hash_reg] |= mta;
        }
 
+       /* write the hash table completely, write from bottom to avoid
+        * both stupid write combining chipsets, and flushing each write */
+       for (i = mta_reg_count - 1; i >= 0 ; i--) {
+               /*
+                * If we are on an 82544 has an errata where writing odd
+                * offsets overwrites the previous even offset, but writing
+                * backwards over the range solves the issue by always
+                * writing the odd offset first
+                */
+               E1000_WRITE_REG_ARRAY(hw, MTA, i, mcarray[i]);
+       }
+       E1000_WRITE_FLUSH();
+
        if (hw->mac_type == e1000_82542_rev2_0)
                e1000_leave_82542_rst(adapter);
+
+       kfree(mcarray);
 }
 
 /* Need to wait a few seconds after link up to get diagnostic information from
index a858c6f..663a7b3 100644 (file)
@@ -6117,6 +6117,9 @@ static int nv_resume(struct pci_dev *pdev)
 
        pci_write_config_dword(pdev, NV_MSI_PRIV_OFFSET, NV_MSI_PRIV_VALUE);
 
+       /* restore phy state, including autoneg */
+       phy_init(dev);
+
        netif_device_attach(dev);
        if (netif_running(dev)) {
                rc = nv_open(dev);
index a815e17..77e4b5b 100644 (file)
@@ -1229,7 +1229,7 @@ static int emac_link_differs(struct emac_instance *dev)
 static void emac_link_timer(struct work_struct *work)
 {
        struct emac_instance *dev =
-               container_of((struct delayed_work *)work,
+               container_of(to_delayed_work(work),
                             struct emac_instance, link_work);
        int link_poll_interval;
 
diff --git a/drivers/net/myri_code.h b/drivers/net/myri_code.h
deleted file mode 100644 (file)
index ba7b865..0000000
+++ /dev/null
@@ -1,5006 +0,0 @@
-/* This is the Myrinet MCP code for LANai4.x */
-/* Generated by  cat $MYRI_HOME/lib/lanai/mcp4.dat > myri_code4.h */
-
-static unsigned int __devinitdata lanai4_code_off = 0x0000; /* half-word offset */
-static unsigned char __devinitdata lanai4_code[76256] = {
-0xF2,0x0E,
-0xFE,0x00, 0xC2,0x90, 0x00,0x00, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x01,0x4C, 0x97,0x93,
-0xFF,0xFC, 0xE0,0x00, 0x00,0x14, 0x00,0x00, 0x00,0x01, 0x00,0x00, 0x00,0x00, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF7,0x06, 0x2A,0x6C, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06,
-0x2C,0x10, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x15,0x48, 0x97,0x93,
-0xFF,0xFC, 0xF7,0x02, 0x05,0x3C, 0x97,0x13, 0xFF,0xFC, 0xF7,0x02, 0x00,0x03, 0x97,0x13,
-0xFF,0xFC, 0xF7,0x06, 0x29,0xE0, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06, 0x2B,0x84, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06,
-0x2C,0x1C, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x15,0x48, 0x97,0x93,
-0xFF,0xFC, 0xF7,0x02, 0x0A,0xBC, 0x97,0x13, 0xFF,0xFC, 0xF7,0x02, 0x00,0x02, 0x97,0x13,
-0xFF,0xFC, 0xF7,0x06, 0x2A,0xF8, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0xF7,0x04, 0x4A,0x9C, 0x85,0x16, 0x00,0x00, 0x20,0x3A, 0x00,0x01, 0xEE,0x00,
-0x01,0x01, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x75,0xEC, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x01,0x00, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x75,0xF0, 0x00,0x00,
-0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x01,0x2D, 0x00,0x00, 0x00,0x01, 0xF7,0x04,
-0x2D,0x38, 0xF6,0x86, 0x2C,0x28, 0x06,0x38, 0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39,
-0x00,0x02, 0xF4,0x82, 0x00,0x12, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0x01,0xE0, 0xB4,0xBA,
-0x68,0x02, 0xE0,0x00, 0x01,0xE0, 0xF0,0x05, 0x2D,0x38, 0xF7,0x04, 0x3B,0x64, 0xF5,0x84,
-0x4F,0x54, 0xF7,0x05, 0x7A,0x10, 0x20,0x2E, 0x00,0x00, 0xE6,0x00, 0x01,0x99, 0x97,0x2A,
-0x00,0x20, 0x95,0xAA, 0x00,0x1C, 0xF6,0x06, 0x4A,0x98, 0x26,0xAC, 0x00,0x01, 0x77,0x35,
-0x00,0x01, 0xC7,0x38, 0x68,0x00, 0x77,0x39, 0x00,0x02, 0x07,0x38, 0x00,0x0C, 0xA4,0xBA,
-0x60,0x02, 0x00,0x00, 0x00,0x01, 0x94,0xAA, 0x00,0x10, 0xC7,0x38, 0x60,0x00, 0x87,0x3A,
-0x00,0x04, 0x00,0x00, 0x00,0x01, 0x97,0x2A, 0x00,0x14, 0xF7,0x04, 0x4A,0x9C, 0x00,0x00,
-0x00,0x01, 0x27,0x38, 0x00,0x01, 0xC0,0x2E, 0x72,0x00, 0xD7,0x00, 0x0A,0x01, 0xE0,0x00,
-0x01,0xD0, 0xF7,0x05, 0x7A,0x18, 0x95,0xAA, 0x00,0x1C, 0xF6,0x06, 0x4A,0x98, 0x06,0xAC,
-0x00,0x01, 0x77,0x35, 0x00,0x01, 0xC7,0x38, 0x68,0x00, 0x77,0x39, 0x00,0x02, 0x07,0x38,
-0x00,0x0C, 0xA4,0xBA, 0x60,0x02, 0x00,0x00, 0x00,0x01, 0x94,0xAA, 0x00,0x10, 0xC7,0x38,
-0x60,0x00, 0x87,0x3A, 0x00,0x04, 0xF0,0x05, 0x7A,0x18, 0x97,0x2A, 0x00,0x14, 0xF5,0x05,
-0x79,0xD8, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x01,0xF4, 0x97,0x93, 0xFF,0xFC, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x04, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0x38, 0xF7,0x04,
-0x7A,0x10, 0xF6,0x84, 0x3B,0x64, 0x00,0x00, 0x00,0x01, 0xC0,0x3A, 0x6A,0x00, 0x47,0x0C,
-0x00,0x01, 0xD7,0x00, 0x0A,0x70, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x02,0x4C, 0x00,0x00,
-0x00,0x01, 0xF7,0x04, 0x75,0xEC, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x02,0x4C, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x75,0xF0, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x02,0x85, 0xF4,0x82, 0x00,0x00, 0xF7,0x04, 0x2D,0x38, 0xF6,0x86,
-0x2C,0x28, 0x06,0x38, 0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF3,0x02,
-0x00,0x12, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0x02,0x74, 0xB3,0x3A, 0x68,0x02, 0xF0,0x05,
-0x2D,0x38, 0xF3,0x06, 0x2A,0x6C, 0xF3,0x05, 0x2C,0x10, 0xE0,0x00, 0x05,0x28, 0xF0,0x05,
-0x7A,0x18, 0xF3,0x84, 0x79,0xD8, 0xF6,0x84, 0x4A,0xA0, 0x23,0x14, 0x00,0x20, 0x93,0x16,
-0xFF,0xC4, 0x84,0x1E, 0x00,0x10, 0x96,0x96, 0xFF,0xD4, 0xF7,0x04, 0x4A,0x9C, 0x94,0x16,
-0xFF,0xE0, 0x85,0x1E, 0x00,0x14, 0xC0,0x36, 0x72,0x00, 0xEC,0x00, 0x03,0x6C, 0x95,0x16,
-0xFF,0xE4, 0x77,0x35, 0x00,0x01, 0xC7,0x38, 0x68,0x00, 0x77,0x39, 0x00,0x02, 0xF3,0x06,
-0x4A,0x98, 0xC6,0xB8, 0x30,0x00, 0x06,0xB4, 0x00,0x0C, 0xC5,0x84, 0x00,0x00, 0x87,0x36,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0xC0,0x3A, 0x42,0x00, 0xE6,0x00, 0x02,0xFC, 0xC6,0x24,
-0x00,0x00, 0x87,0x36, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0xC0,0x3A, 0x52,0x00, 0xE6,0x00,
-0x03,0x00, 0x20,0x32, 0x00,0x00, 0xF6,0x02, 0x00,0x01, 0x20,0x32, 0x00,0x00, 0xE6,0x00,
-0x03,0x0D, 0x00,0x00, 0x00,0x01, 0xF5,0x82, 0x00,0x00, 0x86,0x36, 0x00,0x00, 0x87,0x16,
-0xFF,0xE0, 0x00,0x00, 0x00,0x01, 0xC0,0x32, 0x72,0x00, 0xE2,0x00, 0x03,0x48, 0xF5,0x02,
-0x00,0x00, 0xC0,0x32, 0x72,0x00, 0xE6,0x00, 0x03,0x50, 0x20,0x2A, 0x00,0x00, 0x86,0xB6,
-0x00,0x04, 0x87,0x16, 0xFF,0xE4, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE2,0x00,
-0x03,0x51, 0x20,0x2A, 0x00,0x00, 0xF5,0x02, 0x00,0x01, 0x20,0x2A, 0x00,0x00, 0xE6,0x00,
-0x03,0x61, 0x20,0x2E, 0x00,0x00, 0xF5,0x82, 0x00,0x01, 0x20,0x2E, 0x00,0x00, 0xE6,0x00,
-0x03,0x70, 0x20,0x26, 0x00,0x00, 0xF4,0x82, 0x00,0x01, 0x20,0x26, 0x00,0x00, 0xE6,0x00,
-0x03,0xA5, 0xF6,0x02, 0x00,0x01, 0x87,0x16, 0xFF,0xD4, 0xF3,0x06, 0x4A,0x98, 0x76,0xB9,
-0x00,0x01, 0xC6,0xB4, 0x70,0x00, 0x76,0xB5, 0x00,0x02, 0xC6,0xB4, 0x30,0x00, 0x06,0xB4,
-0x00,0x14, 0x86,0xB6, 0x00,0x00, 0x97,0x16, 0xFF,0xD8, 0xE0,0x00, 0x04,0x18, 0x96,0x96,
-0xFF,0xDC, 0x27,0x14, 0x00,0x2C, 0x97,0x13, 0xFF,0xFC, 0x83,0x16, 0xFF,0xC4, 0x00,0x00,
-0x00,0x01, 0x93,0x13, 0xFF,0xFC, 0xF3,0x06, 0x4A,0x98, 0x93,0x13, 0xFF,0xFC, 0x93,0x96,
-0xFF,0xCC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x25,0x68, 0x97,0x93, 0xFF,0xFC, 0x83,0x96,
-0xFF,0xCC, 0x20,0x22, 0x00,0x00, 0xE6,0x00, 0x04,0x15, 0xF6,0x02, 0x00,0x01, 0x87,0x16,
-0xFF,0xD4, 0xF3,0x06, 0x4A,0x98, 0x76,0xB9, 0x00,0x01, 0xC6,0xB4, 0x70,0x00, 0x76,0xB5,
-0x00,0x02, 0xC6,0xB4, 0x30,0x00, 0x06,0xB4, 0x00,0x14, 0x86,0xB6, 0x00,0x00, 0x97,0x16,
-0xFF,0xD8, 0x96,0x96, 0xFF,0xDC, 0xF7,0x05, 0x4A,0xA0, 0xE0,0x00, 0x04,0x1C, 0x20,0x32,
-0x00,0x00, 0xF6,0x02, 0x00,0x00, 0x20,0x32, 0x00,0x00, 0xE6,0x00, 0x04,0x2C, 0xF4,0x82,
-0x00,0x01, 0xE0,0x00, 0x04,0x84, 0xF4,0x82, 0x00,0x00, 0x86,0x96, 0xFF,0xD8, 0x00,0x00,
-0x00,0x01, 0x77,0x35, 0x00,0x02, 0xC7,0x38, 0x68,0x00, 0x77,0x39, 0x00,0x02, 0xF6,0x86,
-0x42,0xC8, 0xA6,0x3A, 0x68,0x02, 0xC7,0x38, 0x68,0x00, 0x75,0x39, 0x00,0x1E, 0x75,0x28,
-0xFF,0xE5, 0x05,0xB8, 0x00,0x02, 0x86,0xAE, 0x00,0x00, 0x07,0x38, 0x00,0x04, 0x97,0x16,
-0xFF,0xEC, 0xC6,0x30, 0x57,0xC0, 0x76,0x30, 0xFF,0xF0, 0x96,0x16, 0xFF,0xF4, 0x75,0xAD,
-0x00,0x1E, 0x75,0xAC, 0xFF,0xE5, 0xC6,0xB4, 0x5F,0xC0, 0x76,0xB4, 0xFF,0xF0, 0x96,0x96,
-0xFF,0xF0, 0x20,0x26, 0x00,0x00, 0xE6,0x00, 0x05,0x25, 0xF3,0x06, 0x29,0xE0, 0x86,0x96,
-0xFF,0xF0, 0xF5,0x82, 0x00,0x00, 0xC7,0x34, 0x68,0x00, 0xC4,0x9C, 0x72,0x00, 0xC0,0x2E,
-0x6A,0x00, 0xEC,0x00, 0x04,0xF0, 0xC5,0x24, 0x00,0x00, 0xC6,0x2C, 0x00,0x00, 0x87,0x16,
-0xFF,0xEC, 0x00,0x00, 0x00,0x01, 0xA6,0xB2, 0x70,0x02, 0x05,0xAC, 0x00,0x01, 0xC7,0x30,
-0x70,0x00, 0x77,0x39, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB4,
-0xFF,0xF0, 0xF6,0xAB, 0x28,0x00, 0x05,0x28, 0x00,0x02, 0x87,0x16, 0xFF,0xF0, 0x00,0x00,
-0x00,0x01, 0xC0,0x2E, 0x72,0x00, 0xEC,0x00, 0x04,0xB1, 0x06,0x30, 0x00,0x02, 0xF3,0x02,
-0x00,0x03, 0xF3,0x05, 0x76,0xF4, 0x87,0x16, 0xFF,0xF0, 0x86,0x9E, 0x00,0x04, 0xC7,0x38,
-0x70,0x00, 0xC7,0x38, 0x48,0x00, 0xC6,0xB4, 0x70,0x00, 0x87,0x16, 0xFF,0xF4, 0x06,0xB4,
-0x00,0x20, 0x97,0x02, 0xFF,0x6C, 0x94,0x82, 0xFF,0x50, 0x96,0x82, 0xFF,0x58, 0xF3,0x06,
-0x29,0xE0, 0xF3,0x05, 0x2C,0x10, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0xF7,0x04, 0x7A,0x18, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x05,0xCD, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x7A,0x10, 0xF6,0x84, 0x3B,0x64, 0x00,0x00,
-0x00,0x01, 0xC0,0x3A, 0x6A,0x00, 0x47,0x0C, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x05,0xCD, 0xF5,0x86, 0x4A,0x98, 0xF6,0x04, 0x79,0xD8, 0xF6,0x84, 0x4F,0x54, 0x00,0x00,
-0x00,0x01, 0x96,0xB2, 0x00,0x1C, 0x06,0xB4, 0x00,0x01, 0x77,0x35, 0x00,0x01, 0xC7,0x38,
-0x68,0x00, 0x77,0x39, 0x00,0x02, 0x07,0x38, 0x00,0x0C, 0xA5,0x3A, 0x58,0x02, 0x00,0x00,
-0x00,0x01, 0x95,0x32, 0x00,0x10, 0xC7,0x38, 0x58,0x00, 0x87,0x3A, 0x00,0x04, 0xF0,0x05,
-0x7A,0x18, 0x97,0x32, 0x00,0x14, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x01,0xF4, 0x97,0x93,
-0xFF,0xFC, 0xE0,0x00, 0x05,0xFC, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x2D,0x38, 0xF6,0x86,
-0x2C,0x28, 0x06,0x38, 0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF5,0x02,
-0x00,0x12, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0x05,0xF4, 0xB5,0x3A, 0x68,0x02, 0xF0,0x05,
-0x2D,0x38, 0xF5,0x06, 0x2A,0x6C, 0xF5,0x05, 0x2C,0x10, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x85,0x96, 0x00,0x00, 0xF7,0x04, 0x75,0xEC, 0x85,0x2E,
-0x00,0x20, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x06,0xCC, 0xF5,0x05, 0x7A,0x08, 0xF7,0x04,
-0x75,0xF0, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x06,0xCC, 0x00,0x00,
-0x00,0x01, 0xF7,0x04, 0x7A,0x08, 0xF6,0x84, 0x3B,0x64, 0x00,0x00, 0x00,0x01, 0xC0,0x3A,
-0x6A,0x00, 0x47,0x0C, 0x00,0x01, 0xD7,0x00, 0x0A,0x70, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x06,0xCC, 0x00,0x00, 0x00,0x01, 0x87,0x2E, 0x00,0x1C, 0xF6,0x84, 0x4F,0x54, 0xF7,0x05,
-0x7A,0x00, 0xC7,0x34, 0x72,0x00, 0x20,0x3A, 0x00,0x00, 0xEE,0x00, 0x06,0x8D, 0xF5,0x02,
-0x00,0x01, 0xE0,0x00, 0x06,0x90, 0xF5,0x05, 0x79,0xF8, 0xF0,0x85, 0x79,0xF8, 0xF6,0x84,
-0x7A,0x00, 0xC7,0x38, 0x70,0x00, 0xC6,0xB4, 0x70,0x00, 0xF7,0x04, 0x79,0xF8, 0xF6,0x85,
-0x79,0xE8, 0xC7,0x38, 0x70,0x00, 0xC6,0x34, 0x70,0x00, 0xF7,0x04, 0x4A,0x9C, 0x00,0x00,
-0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xEC,0x00, 0x06,0xCC, 0xF6,0x05, 0x79,0xF0, 0x20,0x36,
-0x00,0x00, 0xEC,0x00, 0x06,0xF8, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x2D,0x38, 0xF6,0x86,
-0x2C,0x28, 0x06,0x38, 0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF5,0x02,
-0x00,0x13, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0x07,0x38, 0xB5,0x3A, 0x68,0x02, 0xE0,0x00,
-0x07,0x38, 0xF0,0x05, 0x2D,0x38, 0xF7,0x04, 0x4A,0x9C, 0x00,0x00, 0x00,0x01, 0xC0,0x32,
-0x72,0x00, 0xEE,0x00, 0x07,0x19, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x4A,0x9C, 0xE0,0x00,
-0x07,0x28, 0xF7,0x05, 0x79,0xF0, 0x20,0x32, 0x00,0x00, 0xEC,0x00, 0x07,0x28, 0x00,0x00,
-0x00,0x01, 0xF0,0x85, 0x79,0xF0, 0xF5,0x85, 0x79,0xE0, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x07,0x4C, 0x97,0x93, 0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x04, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0x22,0x10, 0x00,0x38, 0xF7,0x04, 0x75,0xEC, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x07,0xA4, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x75,0xF0, 0x00,0x00,
-0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x07,0xA4, 0x00,0x00, 0x00,0x01, 0xF7,0x04,
-0x7A,0x08, 0xF6,0x84, 0x3B,0x64, 0x00,0x00, 0x00,0x01, 0xC0,0x3A, 0x6A,0x00, 0x47,0x0C,
-0x00,0x01, 0xD7,0x00, 0x0A,0x70, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x07,0xD5, 0xF4,0x02,
-0x00,0x00, 0xF7,0x04, 0x2D,0x38, 0xF6,0x86, 0x2C,0x28, 0x06,0x38, 0x00,0x01, 0xF6,0x05,
-0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF3,0x02, 0x00,0x13, 0x20,0x32, 0x00,0x44, 0xE6,0x00,
-0x07,0xCC, 0xB3,0x3A, 0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xE0,0x00, 0x0A,0xA4, 0xF3,0x06,
-0x2B,0x84, 0xF6,0x84, 0x79,0xE8, 0xF6,0x06, 0x4A,0x98, 0x77,0x35, 0x00,0x01, 0xC7,0x38,
-0x68,0x00, 0x77,0x39, 0x00,0x02, 0xF6,0x84, 0x79,0xE0, 0x07,0x38, 0x00,0x0C, 0xA3,0x3A,
-0x60,0x02, 0xC3,0xB4, 0x00,0x00, 0x93,0x36, 0x00,0x10, 0xC7,0x38, 0x60,0x00, 0x87,0x3A,
-0x00,0x04, 0x23,0x14, 0x00,0x20, 0x93,0x16, 0xFF,0xC4, 0x97,0x36, 0x00,0x14, 0x84,0x9E,
-0x00,0x10, 0xF6,0x84, 0x4A,0xA0, 0x94,0x96, 0xFF,0xE0, 0x96,0x96, 0xFF,0xD4, 0x85,0x1E,
-0x00,0x14, 0xF7,0x04, 0x4A,0x9C, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xEC,0x00,
-0x08,0xEC, 0x95,0x16, 0xFF,0xE4, 0x77,0x35, 0x00,0x01, 0xC7,0x38, 0x68,0x00, 0x77,0x39,
-0x00,0x02, 0xC6,0xB8, 0x60,0x00, 0x06,0xB4, 0x00,0x0C, 0xC5,0x84, 0x00,0x00, 0x87,0x36,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0xC0,0x3A, 0x4A,0x00, 0xE6,0x00, 0x08,0x7C, 0xC6,0x20,
-0x00,0x00, 0x87,0x36, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0xC0,0x3A, 0x52,0x00, 0xE6,0x00,
-0x08,0x80, 0x20,0x32, 0x00,0x00, 0xF6,0x02, 0x00,0x01, 0x20,0x32, 0x00,0x00, 0xE6,0x00,
-0x08,0x8D, 0x00,0x00, 0x00,0x01, 0xF5,0x82, 0x00,0x00, 0x86,0x36, 0x00,0x00, 0x87,0x16,
-0xFF,0xE0, 0x00,0x00, 0x00,0x01, 0xC0,0x32, 0x72,0x00, 0xE2,0x00, 0x08,0xC8, 0xF5,0x02,
-0x00,0x00, 0xC0,0x32, 0x72,0x00, 0xE6,0x00, 0x08,0xD0, 0x20,0x2A, 0x00,0x00, 0x86,0xB6,
-0x00,0x04, 0x87,0x16, 0xFF,0xE4, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE2,0x00,
-0x08,0xD1, 0x20,0x2A, 0x00,0x00, 0xF5,0x02, 0x00,0x01, 0x20,0x2A, 0x00,0x00, 0xE6,0x00,
-0x08,0xE1, 0x20,0x2E, 0x00,0x00, 0xF5,0x82, 0x00,0x01, 0x20,0x2E, 0x00,0x00, 0xE6,0x00,
-0x08,0xF0, 0x20,0x22, 0x00,0x00, 0xF4,0x02, 0x00,0x01, 0x20,0x22, 0x00,0x00, 0xE6,0x00,
-0x09,0x25, 0xF6,0x02, 0x00,0x01, 0x87,0x16, 0xFF,0xD4, 0xF3,0x06, 0x4A,0x98, 0x76,0xB9,
-0x00,0x01, 0xC6,0xB4, 0x70,0x00, 0x76,0xB5, 0x00,0x02, 0xC6,0xB4, 0x30,0x00, 0x06,0xB4,
-0x00,0x14, 0x86,0xB6, 0x00,0x00, 0x97,0x16, 0xFF,0xD8, 0xE0,0x00, 0x09,0x98, 0x96,0x96,
-0xFF,0xDC, 0x27,0x14, 0x00,0x2C, 0x97,0x13, 0xFF,0xFC, 0x83,0x16, 0xFF,0xC4, 0x00,0x00,
-0x00,0x01, 0x93,0x13, 0xFF,0xFC, 0xF3,0x06, 0x4A,0x98, 0x93,0x13, 0xFF,0xFC, 0x93,0x96,
-0xFF,0xCC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x25,0x68, 0x97,0x93, 0xFF,0xFC, 0x83,0x96,
-0xFF,0xCC, 0x20,0x22, 0x00,0x00, 0xE6,0x00, 0x09,0x95, 0xF6,0x02, 0x00,0x01, 0x87,0x16,
-0xFF,0xD4, 0xF3,0x06, 0x4A,0x98, 0x76,0xB9, 0x00,0x01, 0xC6,0xB4, 0x70,0x00, 0x76,0xB5,
-0x00,0x02, 0xC6,0xB4, 0x30,0x00, 0x06,0xB4, 0x00,0x14, 0x86,0xB6, 0x00,0x00, 0x97,0x16,
-0xFF,0xD8, 0x96,0x96, 0xFF,0xDC, 0xF7,0x05, 0x4A,0xA0, 0xE0,0x00, 0x09,0x9C, 0x20,0x32,
-0x00,0x00, 0xF6,0x02, 0x00,0x00, 0x20,0x32, 0x00,0x00, 0xE6,0x00, 0x09,0xAC, 0xF4,0x82,
-0x00,0x01, 0xE0,0x00, 0x0A,0x04, 0xF4,0x82, 0x00,0x00, 0x86,0x96, 0xFF,0xD8, 0x00,0x00,
-0x00,0x01, 0x77,0x35, 0x00,0x02, 0xC7,0x38, 0x68,0x00, 0x77,0x39, 0x00,0x02, 0xF6,0x86,
-0x42,0xC8, 0xA6,0x3A, 0x68,0x02, 0xC7,0x38, 0x68,0x00, 0x75,0x39, 0x00,0x1E, 0x75,0x28,
-0xFF,0xE5, 0x05,0xB8, 0x00,0x02, 0x86,0xAE, 0x00,0x00, 0x07,0x38, 0x00,0x04, 0x97,0x16,
-0xFF,0xEC, 0xC6,0x30, 0x57,0xC0, 0x76,0x30, 0xFF,0xF0, 0x96,0x16, 0xFF,0xF4, 0x75,0xAD,
-0x00,0x1E, 0x75,0xAC, 0xFF,0xE5, 0xC6,0xB4, 0x5F,0xC0, 0x76,0xB4, 0xFF,0xF0, 0x96,0x96,
-0xFF,0xF0, 0x20,0x26, 0x00,0x00, 0xE6,0x00, 0x0A,0xA5, 0xF3,0x06, 0x2A,0xF8, 0x86,0x96,
-0xFF,0xF0, 0xF5,0x82, 0x00,0x00, 0xC7,0x34, 0x68,0x00, 0xC4,0x9C, 0x72,0x00, 0xC0,0x2E,
-0x6A,0x00, 0xEC,0x00, 0x0A,0x70, 0xC5,0x24, 0x00,0x00, 0xC6,0x2C, 0x00,0x00, 0x87,0x16,
-0xFF,0xEC, 0x00,0x00, 0x00,0x01, 0xA6,0xB2, 0x70,0x02, 0x05,0xAC, 0x00,0x01, 0xC7,0x30,
-0x70,0x00, 0x77,0x39, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB4,
-0xFF,0xF0, 0xF6,0xAB, 0x28,0x00, 0x05,0x28, 0x00,0x02, 0x87,0x16, 0xFF,0xF0, 0x00,0x00,
-0x00,0x01, 0xC0,0x2E, 0x72,0x00, 0xEC,0x00, 0x0A,0x31, 0x06,0x30, 0x00,0x02, 0xF3,0x02,
-0x00,0x02, 0xF3,0x05, 0x76,0xF4, 0x87,0x16, 0xFF,0xF0, 0x86,0x9E, 0x00,0x04, 0xC7,0x38,
-0x70,0x00, 0xC7,0x38, 0x48,0x00, 0xC6,0xB4, 0x70,0x00, 0x87,0x16, 0xFF,0xF4, 0x06,0xB4,
-0x00,0x20, 0x97,0x02, 0xFF,0x6C, 0x94,0x82, 0xFF,0x50, 0x96,0x82, 0xFF,0x58, 0xF3,0x06,
-0x2A,0xF8, 0xF3,0x05, 0x2C,0x1C, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0xF6,0x84, 0x79,0xE8, 0xF7,0x04, 0x79,0xF8, 0x00,0x00, 0x00,0x01, 0xC6,0xB4,
-0x70,0x00, 0xF7,0x04, 0x7A,0x20, 0xF6,0x85, 0x79,0xE8, 0x07,0x38, 0x00,0x01, 0xF7,0x05,
-0x7A,0x20, 0xF7,0x04, 0x79,0xF0, 0xF6,0x04, 0x7A,0x20, 0xC0,0x36, 0x72,0x00, 0xE6,0x00,
-0x0B,0x2C, 0xF6,0x86, 0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38,
-0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF5,0x82, 0x00,0x13, 0x20,0x32,
-0x00,0x44, 0xE6,0x00, 0x0B,0x20, 0xB5,0xBA, 0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF5,0x86,
-0x2B,0x84, 0xE0,0x00, 0x0B,0x38, 0xF5,0x85, 0x2C,0x1C, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x07,0x4C, 0x97,0x93, 0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0xF7,0x06, 0x2C,0x10, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06, 0x29,0xE0, 0x97,0x13,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x14,0xF4, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06,
-0x2C,0x10, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06, 0x2A,0x6C, 0x97,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x14,0xF4, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06, 0x2C,0x1C, 0x97,0x13,
-0xFF,0xFC, 0xF7,0x06, 0x2A,0xF8, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x14,0xF4, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06, 0x2C,0x1C, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06,
-0x2B,0x84, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x14,0xF4, 0x97,0x93,
-0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF0,0x05,
-0x2D,0x38, 0xF0,0x05, 0x2D,0x3C, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0x22,0x10, 0x00,0x18, 0xFF,0x85, 0x2E,0xDC, 0xF7,0x06, 0x0C,0x3E, 0xC7,0x7C,
-0x74,0x00, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x14,0x29, 0x97,0x16, 0xFF,0xF4, 0x47,0x38,
-0xFF,0xFB, 0xF6,0x84, 0x6F,0x50, 0xCF,0xB8, 0x00,0x00, 0x83,0x96, 0xFF,0xF4, 0xF7,0x02,
-0x00,0x3F, 0xC3,0x9C, 0x6D,0x80, 0xC7,0x1C, 0x74,0x00, 0x20,0x3A, 0x00,0x3F, 0xE2,0x00,
-0x12,0x60, 0x93,0x96, 0xFF,0xF4, 0x77,0x39, 0x00,0x02, 0xF6,0x82, 0x0C,0x5C, 0xA6,0xB6,
-0x70,0x02, 0x00,0x00, 0x00,0x01, 0xC1,0x34, 0x00,0x00, 0x00,0x00, 0x12,0x60, 0x00,0x00,
-0x12,0x60, 0x00,0x00, 0x0D,0x68, 0x00,0x00, 0x0D,0x68, 0x00,0x00, 0x0D,0x5C, 0x00,0x00,
-0x0D,0x5C, 0x00,0x00, 0x0D,0x68, 0x00,0x00, 0x0D,0x68, 0x00,0x00, 0x12,0x50, 0x00,0x00,
-0x12,0x50, 0x00,0x00, 0x12,0x3C, 0x00,0x00, 0x12,0x3C, 0x00,0x00, 0x0D,0xE0, 0x00,0x00,
-0x0D,0xE0, 0x00,0x00, 0x12,0x3C, 0x00,0x00, 0x12,0x3C, 0x00,0x00, 0x0D,0xE8, 0x00,0x00,
-0x0D,0xF4, 0x00,0x00, 0x0E,0x00, 0x00,0x00, 0x0E,0x20, 0x00,0x00, 0x0E,0x40, 0x00,0x00,
-0x0E,0x60, 0x00,0x00, 0x0E,0x80, 0x00,0x00, 0x0E,0xA0, 0x00,0x00, 0x0E,0xC0, 0x00,0x00,
-0x0E,0xC8, 0x00,0x00, 0x0E,0xD0, 0x00,0x00, 0x12,0x28, 0x00,0x00, 0x0E,0xD8, 0x00,0x00,
-0x0E,0xF4, 0x00,0x00, 0x0F,0x10, 0x00,0x00, 0x12,0x28, 0x00,0x00, 0x0F,0x18, 0x00,0x00,
-0x0F,0x18, 0x00,0x00, 0x0F,0x24, 0x00,0x00, 0x0F,0x24, 0x00,0x00, 0x0F,0x44, 0x00,0x00,
-0x0F,0x44, 0x00,0x00, 0x0F,0x64, 0x00,0x00, 0x0F,0x64, 0x00,0x00, 0x0F,0x84, 0x00,0x00,
-0x0F,0x84, 0x00,0x00, 0x0F,0x8C, 0x00,0x00, 0x0F,0x8C, 0x00,0x00, 0x0F,0x94, 0x00,0x00,
-0x0F,0x94, 0x00,0x00, 0x0F,0xB0, 0x00,0x00, 0x0F,0xB0, 0x00,0x00, 0x0F,0xB8, 0x00,0x00,
-0x0F,0xD8, 0x00,0x00, 0x0F,0xF8, 0x00,0x00, 0x10,0x2C, 0x00,0x00, 0x10,0x60, 0x00,0x00,
-0x10,0x94, 0x00,0x00, 0x10,0xC8, 0x00,0x00, 0x10,0xFC, 0x00,0x00, 0x11,0x30, 0x00,0x00,
-0x11,0x4C, 0x00,0x00, 0x11,0x68, 0x00,0x00, 0x12,0x14, 0x00,0x00, 0x11,0x84, 0x00,0x00,
-0x11,0xB4, 0x00,0x00, 0x11,0xE4, 0x00,0x00, 0x12,0x14, 0xF3,0x82, 0x00,0x06, 0xE0,0x00,
-0x12,0x54, 0x93,0x93, 0xFF,0xFC, 0xF6,0x02, 0x00,0x05, 0x20,0x32, 0x00,0x14, 0xE6,0x00,
-0x0D,0xB5, 0x27,0x00, 0x00,0x10, 0x20,0x3A, 0x00,0x01, 0xE2,0x00, 0x0D,0xB5, 0xF7,0x06,
-0x2D,0xCC, 0xF6,0x84, 0x2E,0xCC, 0x00,0x00, 0x00,0x01, 0x75,0xB5, 0x00,0x02, 0xB6,0x2E,
-0x70,0x02, 0x06,0xB4, 0x00,0x01, 0xF6,0x85, 0x2E,0xCC, 0x86,0x02, 0xFF,0x34, 0xF7,0x06,
-0x2E,0x4C, 0x20,0x36, 0x00,0x1F, 0xE2,0x00, 0x0D,0xB5, 0xB6,0x2E, 0x70,0x02, 0xF0,0x05,
-0x2E,0xCC, 0xF7,0x04, 0x2D,0x58, 0x00,0x00, 0x00,0x01, 0x87,0x3A, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x87,0x3A, 0x00,0x18, 0x00,0x00, 0x00,0x01, 0x07,0x88, 0x00,0x08, 0xC1,0x38,
-0x00,0x00, 0x97,0x93, 0xFF,0xFC, 0xE0,0x00, 0x12,0x60, 0x00,0x00, 0x00,0x01, 0xE0,0x00,
-0x12,0x40, 0xF3,0x82, 0x00,0x06, 0xF3,0x82, 0x00,0x0B, 0xE0,0x00, 0x12,0x54, 0x93,0x93,
-0xFF,0xFC, 0xF3,0x82, 0x00,0x07, 0xE0,0x00, 0x12,0x54, 0x93,0x93, 0xFF,0xFC, 0xF3,0x82,
-0x00,0x0B, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x15,0x84, 0x97,0x93,
-0xFF,0xFC, 0xF3,0x82, 0x00,0x05, 0xE0,0x00, 0x12,0x54, 0x93,0x93, 0xFF,0xFC, 0xF3,0x82,
-0x00,0x07, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x15,0x84, 0x97,0x93,
-0xFF,0xFC, 0xF3,0x82, 0x00,0x05, 0xE0,0x00, 0x12,0x54, 0x93,0x93, 0xFF,0xFC, 0xF3,0x82,
-0x00,0x0B, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x15,0x84, 0x97,0x93,
-0xFF,0xFC, 0xF3,0x82, 0x00,0x06, 0xE0,0x00, 0x12,0x54, 0x93,0x93, 0xFF,0xFC, 0xF3,0x82,
-0x00,0x07, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x15,0x84, 0x97,0x93,
-0xFF,0xFC, 0xF3,0x82, 0x00,0x06, 0xE0,0x00, 0x12,0x54, 0x93,0x93, 0xFF,0xFC, 0xF3,0x82,
-0x00,0x0B, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x15,0x84, 0x97,0x93,
-0xFF,0xFC, 0xF3,0x82, 0x00,0x05, 0xE0,0x00, 0x12,0x54, 0x93,0x93, 0xFF,0xFC, 0xF3,0x82,
-0x00,0x07, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x15,0x84, 0x97,0x93,
-0xFF,0xFC, 0xF3,0x82, 0x00,0x05, 0xE0,0x00, 0x12,0x54, 0x93,0x93, 0xFF,0xFC, 0xE0,0x00,
-0x12,0x40, 0xF3,0x82, 0x00,0x0B, 0xE0,0x00, 0x12,0x40, 0xF3,0x82, 0x00,0x07, 0xE0,0x00,
-0x12,0x2C, 0xF3,0x82, 0x00,0x0B, 0xF3,0x82, 0x00,0x0B, 0x93,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x15,0x84, 0x97,0x93, 0xFF,0xFC, 0xE0,0x00, 0x12,0x40, 0xF3,0x82,
-0x00,0x06, 0xF3,0x82, 0x00,0x07, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x15,0x84, 0x97,0x93, 0xFF,0xFC, 0xE0,0x00, 0x12,0x40, 0xF3,0x82, 0x00,0x06, 0xE0,0x00,
-0x12,0x2C, 0xF3,0x82, 0x00,0x0B, 0xF3,0x82, 0x00,0x14, 0xE0,0x00, 0x12,0x54, 0x93,0x93,
-0xFF,0xFC, 0xF3,0x82, 0x00,0x14, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x15,0x84, 0x97,0x93, 0xFF,0xFC, 0xF3,0x82, 0x00,0x05, 0xE0,0x00, 0x12,0x54, 0x93,0x93,
-0xFF,0xFC, 0xF3,0x82, 0x00,0x14, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x15,0x84, 0x97,0x93, 0xFF,0xFC, 0xF3,0x82, 0x00,0x06, 0xE0,0x00, 0x12,0x54, 0x93,0x93,
-0xFF,0xFC, 0xF3,0x82, 0x00,0x14, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x15,0x84, 0x97,0x93, 0xFF,0xFC, 0xF3,0x82, 0x00,0x05, 0xE0,0x00, 0x12,0x54, 0x93,0x93,
-0xFF,0xFC, 0xE0,0x00, 0x12,0x40, 0xF3,0x82, 0x00,0x14, 0xE0,0x00, 0x12,0x2C, 0xF3,0x82,
-0x00,0x14, 0xF3,0x82, 0x00,0x14, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x15,0x84, 0x97,0x93, 0xFF,0xFC, 0xE0,0x00, 0x12,0x40, 0xF3,0x82, 0x00,0x06, 0xE0,0x00,
-0x12,0x2C, 0xF3,0x82, 0x00,0x14, 0xF3,0x82, 0x00,0x14, 0x93,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x15,0x84, 0x97,0x93, 0xFF,0xFC, 0xF3,0x82, 0x00,0x0B, 0xE0,0x00,
-0x12,0x54, 0x93,0x93, 0xFF,0xFC, 0xF3,0x82, 0x00,0x14, 0x93,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x15,0x84, 0x97,0x93, 0xFF,0xFC, 0xF3,0x82, 0x00,0x07, 0xE0,0x00,
-0x12,0x54, 0x93,0x93, 0xFF,0xFC, 0xF3,0x82, 0x00,0x14, 0x93,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x15,0x84, 0x97,0x93, 0xFF,0xFC, 0xF3,0x82, 0x00,0x0B, 0x93,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x15,0x84, 0x97,0x93, 0xFF,0xFC, 0xF3,0x82,
-0x00,0x05, 0xE0,0x00, 0x12,0x54, 0x93,0x93, 0xFF,0xFC, 0xF3,0x82, 0x00,0x14, 0x93,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x15,0x84, 0x97,0x93, 0xFF,0xFC, 0xF3,0x82,
-0x00,0x07, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x15,0x84, 0x97,0x93,
-0xFF,0xFC, 0xF3,0x82, 0x00,0x05, 0xE0,0x00, 0x12,0x54, 0x93,0x93, 0xFF,0xFC, 0xF3,0x82,
-0x00,0x14, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x15,0x84, 0x97,0x93,
-0xFF,0xFC, 0xF3,0x82, 0x00,0x0B, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x15,0x84, 0x97,0x93, 0xFF,0xFC, 0xF3,0x82, 0x00,0x06, 0xE0,0x00, 0x12,0x54, 0x93,0x93,
-0xFF,0xFC, 0xF3,0x82, 0x00,0x14, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x15,0x84, 0x97,0x93, 0xFF,0xFC, 0xF3,0x82, 0x00,0x07, 0x93,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x15,0x84, 0x97,0x93, 0xFF,0xFC, 0xF3,0x82, 0x00,0x06, 0xE0,0x00,
-0x12,0x54, 0x93,0x93, 0xFF,0xFC, 0xF3,0x82, 0x00,0x14, 0x93,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x15,0x84, 0x97,0x93, 0xFF,0xFC, 0xF3,0x82, 0x00,0x0B, 0x93,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x15,0x84, 0x97,0x93, 0xFF,0xFC, 0xF3,0x82,
-0x00,0x05, 0xE0,0x00, 0x12,0x54, 0x93,0x93, 0xFF,0xFC, 0xF3,0x82, 0x00,0x14, 0x93,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x15,0x84, 0x97,0x93, 0xFF,0xFC, 0xF3,0x82,
-0x00,0x07, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x15,0x84, 0x97,0x93,
-0xFF,0xFC, 0xF3,0x82, 0x00,0x05, 0xE0,0x00, 0x12,0x54, 0x93,0x93, 0xFF,0xFC, 0xF3,0x82,
-0x00,0x14, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x15,0x84, 0x97,0x93,
-0xFF,0xFC, 0xE0,0x00, 0x12,0x40, 0xF3,0x82, 0x00,0x0B, 0xF3,0x82, 0x00,0x14, 0x93,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x15,0x84, 0x97,0x93, 0xFF,0xFC, 0xE0,0x00,
-0x12,0x40, 0xF3,0x82, 0x00,0x07, 0xF3,0x82, 0x00,0x14, 0x93,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x15,0x84, 0x97,0x93, 0xFF,0xFC, 0xE0,0x00, 0x12,0x2C, 0xF3,0x82,
-0x00,0x0B, 0xF3,0x82, 0x00,0x14, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x15,0x84, 0x97,0x93, 0xFF,0xFC, 0xF3,0x82, 0x00,0x0B, 0x93,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x15,0x84, 0x97,0x93, 0xFF,0xFC, 0xE0,0x00, 0x12,0x40, 0xF3,0x82,
-0x00,0x06, 0xF3,0x82, 0x00,0x14, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x15,0x84, 0x97,0x93, 0xFF,0xFC, 0xF3,0x82, 0x00,0x07, 0x93,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x15,0x84, 0x97,0x93, 0xFF,0xFC, 0xE0,0x00, 0x12,0x40, 0xF3,0x82,
-0x00,0x06, 0xF3,0x82, 0x00,0x14, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x15,0x84, 0x97,0x93, 0xFF,0xFC, 0xE0,0x00, 0x12,0x2C, 0xF3,0x82, 0x00,0x0B, 0xF7,0x04,
-0x35,0x28, 0xF6,0x82, 0x00,0x01, 0x07,0x38, 0x00,0x08, 0xE0,0x00, 0x13,0xCC, 0xF7,0x05,
-0x35,0x44, 0xF3,0x82, 0x00,0x14, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x15,0x84, 0x97,0x93, 0xFF,0xFC, 0xF3,0x82, 0x00,0x07, 0x93,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x15,0x84, 0x97,0x93, 0xFF,0xFC, 0xF3,0x82, 0x00,0x05, 0x93,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x15,0x84, 0x97,0x93, 0xFF,0xFC, 0x90,0x13,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x15,0x84, 0x97,0x93, 0xFF,0xFC, 0x83,0x96,
-0xFF,0xF4, 0x00,0x00, 0x00,0x01, 0x77,0x9C, 0x00,0x14, 0x70,0x3E, 0xFF,0xE1, 0xE6,0x00,
-0x12,0x9D, 0xF7,0x06, 0x04,0x00, 0xF7,0x04, 0x6F,0x5C, 0x00,0x00, 0x00,0x01, 0x07,0x38,
-0x00,0x01, 0xF7,0x05, 0x6F,0x5C, 0xF7,0x04, 0x6F,0x5C, 0xE0,0x00, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x83,0x96, 0xFF,0xF4, 0xF7,0x06, 0x04,0x00, 0xC0,0x1E, 0x74,0x00, 0xE6,0x00,
-0x14,0x29, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x2E,0xD0, 0xF6,0x84, 0x35,0x24, 0x07,0x38,
-0x00,0x01, 0x20,0x36, 0x00,0x00, 0xE6,0x00, 0x14,0x05, 0xF7,0x05, 0x2E,0xD0, 0xF7,0x04,
-0xE0,0x14, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x14,0x05, 0xF6,0x82,
-0x00,0x00, 0xF6,0x85, 0xE0,0x14, 0xF7,0x04, 0x2E,0xD8, 0xC5,0x34, 0x00,0x00, 0x07,0x38,
-0x00,0x01, 0xF7,0x05, 0x2E,0xD8, 0x20,0x2A, 0x00,0x02, 0xEE,0x00, 0x13,0xCC, 0xF6,0x82,
-0x00,0x00, 0xF6,0x84, 0x35,0x28, 0x00,0x00, 0x00,0x01, 0x87,0x36, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x20,0x3A, 0x00,0x02, 0xE6,0x00, 0x13,0xA0, 0x05,0xB4, 0x00,0x08, 0x95,0x93,
-0xFF,0xFC, 0x95,0x16, 0xFF,0xE8, 0x95,0x96, 0xFF,0xE4, 0x96,0x96, 0xFF,0xE0, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x16,0x64, 0x97,0x93, 0xFF,0xFC, 0x85,0x16, 0xFF,0xE8, 0x85,0x96,
-0xFF,0xE4, 0x86,0x96, 0xFF,0xE0, 0x20,0x22, 0x00,0x00, 0xE6,0x00, 0x13,0x90, 0xF7,0x02,
-0x00,0x00, 0x86,0x36, 0x00,0x0C, 0x00,0x00, 0x00,0x01, 0x20,0x32, 0x00,0x0F, 0xE2,0x00,
-0x13,0x75, 0x00,0x00, 0x00,0x01, 0x87,0x36, 0x00,0x14, 0x00,0x00, 0x00,0x01, 0x07,0x38,
-0x00,0x01, 0x97,0x36, 0x00,0x14, 0x87,0x36, 0x00,0x14, 0xE0,0x00, 0x13,0x90, 0xF7,0x02,
-0x00,0x00, 0x76,0xB1, 0x00,0x02, 0xC6,0xB4, 0x60,0x00, 0x77,0x35, 0x00,0x05, 0xC7,0x38,
-0x6A,0x00, 0xC7,0x38, 0x60,0x00, 0x07,0x38, 0x00,0x10, 0xC7,0x2C, 0x70,0x00, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x12,0x00, 0xF7,0x05, 0x35,0x2C, 0xF6,0x84, 0x35,0x28, 0xF7,0x04,
-0x6F,0x4C, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0x13,0xC0, 0x07,0x34,
-0x14,0x94, 0xF3,0x84, 0x6F,0x44, 0xE0,0x00, 0x13,0xC4, 0xF3,0x85, 0x35,0x28, 0xF7,0x05,
-0x35,0x28, 0xE0,0x00, 0x12,0xE8, 0x05,0x28, 0x00,0x01, 0x20,0x36, 0x00,0x00, 0xE6,0x00,
-0x14,0x29, 0xF6,0x86, 0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0xF0,0x05, 0x35,0x24, 0x06,0x38,
-0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF3,0x82, 0x00,0x0D, 0x20,0x32,
-0x00,0x44, 0xE6,0x00, 0x14,0x28, 0xB3,0xBA, 0x68,0x02, 0xE0,0x00, 0x14,0x28, 0xF0,0x05,
-0x2D,0x38, 0xF7,0x04, 0xE0,0x10, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x14,0x29, 0xF7,0x02, 0x00,0x00, 0xF7,0x05, 0xE0,0x10, 0x07,0x88, 0x00,0x08, 0xE0,0x01,
-0x02,0x98, 0x97,0x93, 0xFF,0xFC, 0xF4,0x84, 0x2D,0x38, 0xF7,0x04, 0x2D,0x3C, 0x00,0x00,
-0x00,0x01, 0xC0,0x3A, 0x4A,0x00, 0xE6,0x00, 0x0C,0x09, 0xF6,0x86, 0x2C,0x28, 0x77,0x39,
-0x00,0x02, 0xA5,0x3A, 0x68,0x02, 0x00,0x00, 0x00,0x01, 0x20,0x2A, 0x00,0x14, 0xE6,0x00,
-0x14,0x91, 0x27,0x28, 0x00,0x15, 0x20,0x3A, 0x00,0x01, 0xE2,0x00, 0x14,0x91, 0xF7,0x06,
-0x2D,0xCC, 0xF6,0x84, 0x2E,0xCC, 0x86,0x02, 0xFF,0x34, 0x75,0xB5, 0x00,0x02, 0xB5,0x2E,
-0x70,0x02, 0x06,0xB4, 0x00,0x01, 0xF6,0x85, 0x2E,0xCC, 0xF7,0x06, 0x2E,0x4C, 0x20,0x36,
-0x00,0x1F, 0xE2,0x00, 0x14,0x91, 0xB6,0x2E, 0x70,0x02, 0xF0,0x05, 0x2E,0xCC, 0xF7,0x06,
-0x2D,0x44, 0x76,0xA9, 0x00,0x02, 0xA7,0x36, 0x70,0x02, 0x00,0x00, 0x00,0x01, 0x87,0x3A,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0xC6,0xB4, 0x70,0x00, 0x87,0x36, 0x00,0x04, 0x94,0x96,
-0xFF,0xEC, 0x07,0x88, 0x00,0x08, 0xC1,0x38, 0x00,0x00, 0x97,0x93, 0xFF,0xFC, 0xF7,0x04,
-0x2D,0x3C, 0x84,0x96, 0xFF,0xEC, 0x07,0x38, 0x00,0x01, 0x20,0x3A, 0x00,0x44, 0xE6,0x00,
-0x14,0x2C, 0xF7,0x05, 0x2D,0x3C, 0xE0,0x00, 0x14,0x2C, 0xF0,0x05, 0x2D,0x3C, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x84,0x16, 0x00,0x00, 0xF7,0x02,
-0x00,0x00, 0x85,0x96, 0x00,0x04, 0x20,0x3A, 0x00,0x21, 0xEE,0x00, 0x15,0x34, 0x95,0xA2,
-0x00,0x00, 0xF6,0x06, 0x23,0x38, 0x07,0x20, 0x00,0x84, 0xC6,0xA0, 0x00,0x00, 0x96,0x3A,
-0x00,0x04, 0x27,0x38, 0x00,0x04, 0xC0,0x3A, 0x6A,0x00, 0xEC,0x00, 0x15,0x20, 0x00,0x00,
-0x00,0x01, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x08, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x86,0x96,
-0x00,0x00, 0x87,0x16, 0x00,0x04, 0xF6,0x04, 0x2D,0x40, 0x97,0x36, 0x00,0x00, 0x97,0x36,
-0x00,0x04, 0x07,0x30, 0x00,0x01, 0xF7,0x05, 0x2D,0x40, 0x96,0x36, 0x00,0x08, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x08, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x85,0x16, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x20,0x2A, 0x00,0x14, 0xE6,0x00, 0x15,0xD9, 0x27,0x28, 0x00,0x15, 0x20,0x3A,
-0x00,0x01, 0xE2,0x00, 0x15,0xD9, 0xF7,0x06, 0x2D,0xCC, 0xF6,0x84, 0x2E,0xCC, 0x86,0x02,
-0xFF,0x34, 0x75,0xB5, 0x00,0x02, 0xB5,0x2E, 0x70,0x02, 0x06,0xB4, 0x00,0x01, 0xF6,0x85,
-0x2E,0xCC, 0xF7,0x06, 0x2E,0x4C, 0x20,0x36, 0x00,0x1F, 0xE2,0x00, 0x15,0xD9, 0xB6,0x2E,
-0x70,0x02, 0xF0,0x05, 0x2E,0xCC, 0xF6,0x86, 0x2D,0x44, 0x77,0x29, 0x00,0x02, 0xA6,0xBA,
-0x68,0x02, 0x00,0x00, 0x00,0x01, 0x86,0xB6, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0xC7,0x38,
-0x68,0x00, 0x87,0x3A, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0x07,0x88, 0x00,0x08, 0xC1,0x38,
-0x00,0x00, 0x97,0x93, 0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x04, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0x87,0x16, 0x00,0x00, 0x86,0x96, 0x00,0x04, 0xF6,0x06, 0x2D,0x44, 0x76,0xB5,
-0x00,0x02, 0x85,0xBA, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0xB5,0xB6, 0x60,0x02, 0xC6,0xB4,
-0x70,0x00, 0x85,0x96, 0x00,0x08, 0x00,0x00, 0x00,0x01, 0x95,0xB6, 0x00,0x04, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x0C, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x86,0x16, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x87,0x32, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x0F, 0x86,0xB2,
-0x00,0x00, 0xC5,0x38, 0x00,0x00, 0xEE,0x00, 0x16,0xB4, 0xC5,0xB4, 0x00,0x00, 0x20,0x36,
-0x00,0x0F, 0xEE,0x00, 0x16,0xB4, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xEC,0x00,
-0x16,0xB5, 0x00,0x00, 0x00,0x01, 0x20,0x36, 0x00,0x00, 0xEC,0x00, 0x16,0xD0, 0x00,0x00,
-0x00,0x01, 0x87,0x32, 0x00,0x0C, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x32,
-0x00,0x0C, 0x87,0x32, 0x00,0x0C, 0xE0,0x00, 0x16,0xD8, 0xF4,0x02, 0x00,0x00, 0xC0,0x2A,
-0x5A,0x00, 0x44,0x0C, 0x00,0x01, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x04, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x00,0x00, 0x00,0x00, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF7,0x06, 0x2E,0xE0, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06,
-0x32,0xD4, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x15,0x48, 0x97,0x93,
-0xFF,0xFC, 0xF7,0x02, 0x18,0x2C, 0x97,0x13, 0xFF,0xFC, 0xF7,0x82, 0x00,0x09, 0x97,0x93,
-0xFF,0xFC, 0xF7,0x06, 0x2E,0xE0, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF7,0x02, 0x34,0x58, 0x97,0x13, 0xFF,0xFC, 0xF7,0x02,
-0x00,0x0C, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06, 0x2F,0x6C, 0x97,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF7,0x02, 0x3F,0x94, 0x97,0x13,
-0xFF,0xFC, 0xF7,0x82, 0x00,0x0B, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06, 0x2F,0xF8, 0x97,0x13,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF7,0x02,
-0x3B,0x84, 0x97,0x13, 0xFF,0xFC, 0xF7,0x82, 0x00,0x0B, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06,
-0x32,0x28, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93,
-0xFF,0xFC, 0xF7,0x02, 0x26,0xE4, 0x97,0x13, 0xFF,0xFC, 0xF7,0x02, 0x00,0x13, 0x97,0x13,
-0xFF,0xFC, 0xF7,0x06, 0x30,0x84, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF7,0x02, 0x26,0xA0, 0x97,0x13, 0xFF,0xFC, 0xF7,0x02,
-0x00,0x11, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06, 0x31,0x10, 0x97,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF7,0x02, 0x18,0x2C, 0x97,0x13,
-0xFF,0xFC, 0xF7,0x82, 0x00,0x09, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06, 0x31,0x9C, 0x97,0x13,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF0,0x05,
-0x7A,0x78, 0xF0,0x05, 0x32,0xE8, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0x22,0x10, 0x00,0x50, 0xF7,0x04, 0x71,0xC8, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x18,0x55, 0xF6,0x86, 0x71,0xC4, 0xE0,0x00, 0x18,0x6C, 0xF6,0x02,
-0x00,0x00, 0xF7,0x04, 0x71,0xD4, 0x00,0x00, 0x00,0x01, 0x77,0x39, 0x00,0x02, 0xC7,0x38,
-0x68,0x00, 0x86,0x3A, 0x00,0x18, 0x00,0x00, 0x00,0x01, 0xF6,0x05, 0x32,0xC4, 0x86,0xB2,
-0x00,0x08, 0x07,0x01, 0x80,0x00, 0xC5,0xB4, 0x74,0x00, 0xF5,0x85, 0x32,0xD0, 0x87,0x32,
-0x00,0x18, 0xF6,0x86, 0x6F,0x44, 0x77,0x39, 0x00,0x02, 0xA7,0x3A, 0x68,0x02, 0x20,0x2E,
-0x00,0x00, 0xF7,0x05, 0x32,0xC0, 0x07,0x38, 0x09,0xD8, 0x86,0xB2, 0x00,0x04, 0xF7,0x05,
-0x32,0xCC, 0xE6,0x00, 0x19,0x41, 0xF6,0x85, 0x32,0xC8, 0xF7,0x04, 0x71,0x98, 0xF6,0x84,
-0x7A,0x78, 0x27,0x38, 0x00,0x01, 0x20,0x36, 0x00,0x00, 0xE6,0x00, 0x19,0x10, 0xF7,0x05,
-0x71,0x98, 0xF7,0x04, 0x76,0xFC, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x18,0xE8, 0xF3,0x02, 0x00,0x11, 0xF3,0x06, 0x32,0xD4, 0xF3,0x05, 0x76,0xFC, 0xE0,0x00,
-0x18,0xF8, 0xF7,0x02, 0x00,0x01, 0xF3,0x05, 0x76,0xF8, 0xF3,0x06, 0x32,0xD4, 0xF3,0x05,
-0x77,0x00, 0xF7,0x02, 0x00,0x00, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x19,0x14, 0xF3,0x02,
-0x00,0x01, 0xF3,0x06, 0x31,0x10, 0xE0,0x00, 0x26,0x8C, 0xF3,0x05, 0x32,0xD4, 0xF3,0x02,
-0x00,0x01, 0xF3,0x05, 0x7A,0x78, 0xF3,0x06, 0x30,0x84, 0xF3,0x05, 0x32,0xD4, 0xF3,0x04,
-0x32,0xC4, 0x00,0x00, 0x00,0x01, 0x93,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x06,0x10, 0x97,0x93, 0xFF,0xFC, 0xE0,0x00, 0x26,0x8C, 0x00,0x00, 0x00,0x01, 0xF3,0x02,
-0x00,0x00, 0x20,0x2E, 0x00,0x00, 0xE6,0x00, 0x1C,0xB9, 0x93,0x16, 0xFF,0xE4, 0x87,0x32,
-0x00,0x08, 0x86,0x96, 0xFF,0xE4, 0xC3,0x04, 0x00,0x00, 0xC0,0x3A, 0x32,0x00, 0xE6,0x00,
-0x19,0x84, 0x20,0x36, 0x00,0x00, 0x87,0x32, 0x00,0x0C, 0x00,0x00, 0x00,0x01, 0xC0,0x3A,
-0x32,0x00, 0xE6,0x00, 0x19,0x84, 0x20,0x36, 0x00,0x00, 0xF6,0x82, 0x00,0x01, 0x20,0x36,
-0x00,0x00, 0xE6,0x00, 0x1C,0xB8, 0xF3,0x02, 0x00,0x00, 0xF7,0x04, 0x32,0xC0, 0x93,0x16,
-0xFF,0xAC, 0xF5,0x84, 0x32,0xC4, 0x86,0x3A, 0x14,0x28, 0x03,0xB8, 0x14,0x20, 0x04,0x2C,
-0x00,0x08, 0x86,0xBA, 0x14,0x24, 0x00,0x00, 0x00,0x01, 0xC0,0x32, 0x6A,0x00, 0xEC,0x00,
-0x1A,0x70, 0x96,0x16, 0xFF,0xEC, 0x77,0x31, 0x00,0x01, 0xC7,0x38, 0x60,0x00, 0x77,0x39,
-0x00,0x02, 0xC6,0x38, 0x38,0x00, 0x06,0x30, 0x00,0x0C, 0x86,0xB2, 0x00,0x00, 0x87,0x2E,
-0x00,0x08, 0x85,0x16, 0xFF,0xAC, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0x1A,0x00, 0xC4,0x84,
-0x00,0x00, 0x86,0xB2, 0x00,0x04, 0x87,0x2E, 0x00,0x0C, 0x00,0x00, 0x00,0x01, 0xC0,0x36,
-0x72,0x00, 0xE6,0x00, 0x1A,0x04, 0x20,0x2A, 0x00,0x00, 0xF5,0x02, 0x00,0x01, 0x20,0x2A,
-0x00,0x00, 0xE6,0x00, 0x1A,0x11, 0x00,0x00, 0x00,0x01, 0xF4,0x82, 0x00,0x00, 0x86,0xB2,
-0x00,0x00, 0x87,0x22, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE2,0x00,
-0x1A,0x4C, 0xF5,0x82, 0x00,0x00, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0x1A,0x54, 0x20,0x2E,
-0x00,0x00, 0x86,0xB2, 0x00,0x04, 0x87,0x22, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0xC0,0x36,
-0x72,0x00, 0xE2,0x00, 0x1A,0x55, 0x20,0x2E, 0x00,0x00, 0xF5,0x82, 0x00,0x01, 0x20,0x2E,
-0x00,0x00, 0xE6,0x00, 0x1A,0x65, 0x20,0x26, 0x00,0x00, 0xF4,0x82, 0x00,0x01, 0x20,0x26,
-0x00,0x00, 0xE6,0x00, 0x1A,0x70, 0xF3,0x02, 0x00,0x01, 0x93,0x16, 0xFF,0xAC, 0x83,0x16,
-0xFF,0xAC, 0x00,0x00, 0x00,0x01, 0x20,0x1A, 0x00,0x00, 0xE6,0x00, 0x1A,0xB1, 0xF6,0x02,
-0x00,0x01, 0x87,0x16, 0xFF,0xEC, 0x00,0x00, 0x00,0x01, 0x76,0xB9, 0x00,0x01, 0xC6,0xB4,
-0x70,0x00, 0x76,0xB5, 0x00,0x02, 0xC6,0xB4, 0x38,0x00, 0x06,0xB4, 0x00,0x14, 0x86,0xB6,
-0x00,0x00, 0x97,0x16, 0xFF,0xF0, 0xE0,0x00, 0x1B,0x18, 0x96,0x96, 0xFF,0xF4, 0x27,0x14,
-0x00,0x14, 0x97,0x13, 0xFF,0xFC, 0x94,0x13, 0xFF,0xFC, 0x93,0x93, 0xFF,0xFC, 0x93,0x96,
-0xFF,0xBC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x25,0x68, 0x97,0x93, 0xFF,0xFC, 0x83,0x96,
-0xFF,0xBC, 0x20,0x22, 0x00,0x00, 0xE6,0x00, 0x1B,0x15, 0xF6,0x02, 0x00,0x01, 0x87,0x16,
-0xFF,0xEC, 0x00,0x00, 0x00,0x01, 0x76,0xB9, 0x00,0x01, 0xC6,0xB4, 0x70,0x00, 0x76,0xB5,
-0x00,0x02, 0xC6,0xB4, 0x38,0x00, 0x06,0xB4, 0x00,0x14, 0x86,0xB6, 0x00,0x00, 0x97,0x16,
-0xFF,0xF0, 0x96,0x96, 0xFF,0xF4, 0x97,0x1E, 0x00,0x08, 0xE0,0x00, 0x1B,0x1C, 0x20,0x32,
-0x00,0x00, 0xF6,0x02, 0x00,0x00, 0x20,0x32, 0x00,0x00, 0xE6,0x00, 0x1C,0xB8, 0xF3,0x02,
-0x00,0x00, 0xF6,0x04, 0x32,0xC0, 0x93,0x16, 0xFF,0xAC, 0x86,0xB2, 0x14,0x28, 0x03,0xB0,
-0x14,0x20, 0x04,0x30, 0x14,0x8C, 0x87,0x32, 0x14,0x24, 0x00,0x00, 0x00,0x01, 0xC0,0x36,
-0x72,0x00, 0xEC,0x00, 0x1C,0x04, 0x96,0x96, 0xFF,0xEC, 0x77,0x35, 0x00,0x01, 0xC7,0x38,
-0x68,0x00, 0x77,0x39, 0x00,0x02, 0xC5,0xB8, 0x38,0x00, 0x05,0xAC, 0x00,0x0C, 0x86,0xAE,
-0x00,0x00, 0x87,0x32, 0x14,0x8C, 0x85,0x16, 0xFF,0xAC, 0xC0,0x36, 0x72,0x00, 0xE6,0x00,
-0x1B,0x94, 0xC4,0x84, 0x00,0x00, 0x86,0xAE, 0x00,0x04, 0x87,0x32, 0x14,0x90, 0x00,0x00,
-0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0x1B,0x98, 0x20,0x2A, 0x00,0x00, 0xF5,0x02,
-0x00,0x01, 0x20,0x2A, 0x00,0x00, 0xE6,0x00, 0x1B,0xA5, 0x00,0x00, 0x00,0x01, 0xF4,0x82,
-0x00,0x00, 0x86,0xAE, 0x00,0x00, 0x87,0x22, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0xC0,0x36,
-0x72,0x00, 0xE2,0x00, 0x1B,0xE0, 0xF6,0x02, 0x00,0x00, 0xC0,0x36, 0x72,0x00, 0xE6,0x00,
-0x1B,0xE8, 0x20,0x32, 0x00,0x00, 0x86,0xAE, 0x00,0x04, 0x87,0x22, 0x00,0x04, 0x00,0x00,
-0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE2,0x00, 0x1B,0xE9, 0x20,0x32, 0x00,0x00, 0xF6,0x02,
-0x00,0x01, 0x20,0x32, 0x00,0x00, 0xE6,0x00, 0x1B,0xF9, 0x20,0x26, 0x00,0x00, 0xF4,0x82,
-0x00,0x01, 0x20,0x26, 0x00,0x00, 0xE6,0x00, 0x1C,0x04, 0xF3,0x02, 0x00,0x01, 0x93,0x16,
-0xFF,0xAC, 0x83,0x16, 0xFF,0xAC, 0x00,0x00, 0x00,0x01, 0x20,0x1A, 0x00,0x00, 0xE6,0x00,
-0x1C,0x45, 0xF6,0x02, 0x00,0x01, 0x87,0x16, 0xFF,0xEC, 0x00,0x00, 0x00,0x01, 0x76,0xB9,
-0x00,0x01, 0xC6,0xB4, 0x70,0x00, 0x76,0xB5, 0x00,0x02, 0xC6,0xB4, 0x38,0x00, 0x06,0xB4,
-0x00,0x14, 0x86,0xB6, 0x00,0x00, 0x97,0x16, 0xFF,0xF0, 0xE0,0x00, 0x1C,0xAC, 0x96,0x96,
-0xFF,0xF4, 0x27,0x14, 0x00,0x14, 0x97,0x13, 0xFF,0xFC, 0x94,0x13, 0xFF,0xFC, 0x93,0x93,
-0xFF,0xFC, 0x93,0x96, 0xFF,0xBC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x25,0x68, 0x97,0x93,
-0xFF,0xFC, 0x83,0x96, 0xFF,0xBC, 0x20,0x22, 0x00,0x00, 0xE6,0x00, 0x1C,0xA9, 0xF6,0x02,
-0x00,0x01, 0x87,0x16, 0xFF,0xEC, 0x00,0x00, 0x00,0x01, 0x76,0xB9, 0x00,0x01, 0xC6,0xB4,
-0x70,0x00, 0x76,0xB5, 0x00,0x02, 0xC6,0xB4, 0x38,0x00, 0x06,0xB4, 0x00,0x14, 0x86,0xB6,
-0x00,0x00, 0x97,0x16, 0xFF,0xF0, 0x96,0x96, 0xFF,0xF4, 0x97,0x1E, 0x00,0x08, 0xE0,0x00,
-0x1C,0xB0, 0x20,0x32, 0x00,0x00, 0xF6,0x02, 0x00,0x00, 0x20,0x32, 0x00,0x00, 0xE6,0x00,
-0x1E,0x15, 0xF3,0x02, 0x00,0x01, 0xF6,0x84, 0x32,0xC0, 0x00,0x00, 0x00,0x01, 0x85,0xB6,
-0x0E,0xF4, 0x86,0x36, 0x0E,0xF8, 0x20,0x2E, 0x00,0x10, 0xE2,0x00, 0x1C,0xDC, 0x20,0x32,
-0x00,0x10, 0xE2,0x00, 0x1C,0xF9, 0x00,0x00, 0x00,0x01, 0x87,0x36, 0x0F,0x00, 0x00,0x00,
-0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x36, 0x0F,0x00, 0x87,0x36, 0x0F,0x00, 0xE0,0x00,
-0x1D,0x24, 0xF7,0x02, 0x00,0x00, 0x07,0x30, 0x00,0x01, 0xC0,0x3A, 0x5A,0x00, 0xE6,0x00,
-0x1D,0x1D, 0xF6,0x82, 0x00,0x00, 0x20,0x32, 0x00,0x10, 0xE6,0x00, 0x1D,0x20, 0x20,0x2E,
-0x00,0x00, 0xE6,0x00, 0x1D,0x24, 0xC7,0x34, 0x00,0x00, 0xF6,0x82, 0x00,0x01, 0xC7,0x34,
-0x00,0x00, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x1E,0x14, 0xF3,0x02, 0x00,0x01, 0xF3,0x04,
-0x32,0xCC, 0x00,0x00, 0x00,0x01, 0x93,0x16, 0xFF,0xDC, 0x93,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x43,0x68, 0x97,0x93, 0xFF,0xFC, 0x20,0x22, 0x00,0x00, 0xE6,0x00,
-0x1D,0xFC, 0xF3,0x02, 0x00,0x00, 0x83,0x16, 0xFF,0xDC, 0x00,0x00, 0x00,0x01, 0x86,0x1A,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x20,0x32, 0x00,0x10, 0xE2,0x00, 0x1D,0x91, 0x76,0xB1,
-0x00,0x02, 0x87,0x1A, 0x00,0x0C, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x1A,
-0x00,0x0C, 0x87,0x1A, 0x00,0x0C, 0xE0,0x00, 0x1D,0xFC, 0xF3,0x02, 0x00,0x00, 0xF3,0x02,
-0x00,0x4C, 0x93,0x13, 0xFF,0xFC, 0xC6,0xB4, 0x60,0x00, 0x77,0x35, 0x00,0x04, 0xC7,0x38,
-0x6A,0x00, 0x83,0x16, 0xFF,0xDC, 0xC7,0x38, 0x60,0x00, 0xC7,0x38, 0x30,0x00, 0x07,0x38,
-0x00,0x10, 0x97,0x13, 0xFF,0xFC, 0xF3,0x06, 0x7A,0x28, 0x93,0x13, 0xFF,0xFC, 0x96,0x16,
-0xFF,0xB4, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x26,0xF8, 0x97,0x93, 0xFF,0xFC, 0x86,0x16,
-0xFF,0xB4, 0x00,0x00, 0x00,0x01, 0x06,0x30, 0x00,0x01, 0x20,0x32, 0x00,0x11, 0xE6,0x00,
-0x1D,0xEC, 0x00,0x00, 0x00,0x01, 0xF6,0x02, 0x00,0x00, 0x83,0x16, 0xFF,0xDC, 0x00,0x00,
-0x00,0x01, 0x96,0x1A, 0x00,0x00, 0xF3,0x02, 0x00,0x01, 0x93,0x16, 0xFF,0xD4, 0x83,0x16,
-0xFF,0xD4, 0x00,0x00, 0x00,0x01, 0x20,0x1A, 0x00,0x00, 0xE6,0x00, 0x1E,0x18, 0xF3,0x02,
-0x00,0x01, 0x93,0x16, 0xFF,0xE4, 0x83,0x16, 0xFF,0xE4, 0x00,0x00, 0x00,0x01, 0x20,0x1A,
-0x00,0x00, 0xE6,0x00, 0x1F,0x35, 0xF6,0x82, 0x0C,0xAB, 0xF7,0x04, 0x32,0xB4, 0x83,0x16,
-0xFF,0xD4, 0x07,0x38, 0x00,0x01, 0xF7,0x05, 0x32,0xB4, 0xF7,0x04, 0x32,0xB4, 0x20,0x1A,
-0x00,0x00, 0xE6,0x00, 0x1E,0x70, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x32,0xC0, 0xF3,0x06,
-0xE0,0x30, 0xC0,0x3A, 0x32,0x00, 0xE6,0x00, 0x1E,0x70, 0x00,0x00, 0x00,0x01, 0xF7,0x04,
-0x32,0xE8, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0xF7,0x05, 0x32,0xE8, 0xF7,0x04,
-0x71,0xC4, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x1E,0xAD, 0xF6,0x86,
-0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38, 0x00,0x01, 0xF6,0x05,
-0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF3,0x02, 0x00,0x0A, 0x20,0x32, 0x00,0x44, 0xE6,0x00,
-0x1E,0xAC, 0xB3,0x3A, 0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF7,0x04, 0x71,0xD4, 0xF6,0x84,
-0x71,0xCC, 0x07,0x38, 0x00,0x01, 0xC0,0x3A, 0x6A,0x00, 0xE6,0x00, 0x1E,0xC8, 0xF7,0x05,
-0x71,0xD4, 0xF0,0x05, 0x71,0xD4, 0xF6,0x84, 0x71,0xD4, 0xF7,0x04, 0x71,0xD0, 0xF0,0x05,
-0x71,0xC4, 0xC0,0x36, 0x72,0x00, 0x47,0x0C, 0x00,0x01, 0xF6,0x84, 0x32,0xD0, 0x00,0x00,
-0x00,0x01, 0x20,0x36, 0x00,0x00, 0xE6,0x00, 0x25,0xD9, 0xF7,0x05, 0x71,0xC8, 0xF7,0x04,
-0x71,0x98, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x25,0x79, 0x00,0x00,
-0x00,0x01, 0xF7,0x04, 0x75,0xEC, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x25,0x78, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x75,0xF0, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x25,0x78, 0x00,0x00, 0x00,0x01, 0xE0,0x00, 0x25,0xDC, 0xF3,0x06,
-0x31,0x9C, 0xF0,0x05, 0x32,0xE8, 0xF7,0x04, 0x32,0xC0, 0xF6,0x04, 0x6F,0x54, 0x96,0xBA,
-0x00,0x04, 0x20,0x32, 0x00,0x00, 0xE6,0x00, 0x1F,0x60, 0xF3,0x02, 0x00,0x0C, 0xF3,0x02,
-0x00,0x01, 0xF3,0x05, 0x6F,0x54, 0xE0,0x00, 0x1F,0x68, 0xF7,0x02, 0x00,0x01, 0xF3,0x05,
-0x6F,0x58, 0xF7,0x02, 0x00,0x00, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x1F,0x7C, 0xF3,0x06,
-0x2F,0x6C, 0xE0,0x00, 0x26,0x8C, 0xF3,0x05, 0x32,0xD4, 0xF5,0x84, 0x7A,0x70, 0x24,0x94,
-0x00,0x10, 0x20,0x2E, 0x00,0x01, 0xE6,0x00, 0x22,0x84, 0xF5,0x85, 0x7A,0xA0, 0xF7,0x02,
-0x00,0x01, 0xF6,0x04, 0x32,0xC8, 0xF7,0x05, 0x7A,0x70, 0xF7,0x04, 0x32,0xC4, 0xF6,0x84,
-0x32,0xC0, 0xF6,0x05, 0x7A,0x2C, 0x90,0x02, 0xFF,0x80, 0x90,0x02, 0xFF,0x38, 0xF5,0x84,
-0x7A,0x28, 0x07,0x38, 0x00,0x24, 0x95,0x82, 0xFF,0x3C, 0x97,0x02, 0xFF,0x40, 0x96,0x02,
-0xFF,0x44, 0x87,0x36, 0x14,0x10, 0x00,0x00, 0x00,0x01, 0xC7,0x38, 0x60,0x00, 0x97,0x36,
-0x14,0x10, 0x87,0x36, 0x14,0x18, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x36,
-0x14,0x18, 0x87,0x36, 0x14,0x18, 0xF0,0x05, 0x6F,0x50, 0xF7,0x04, 0x32,0xB8, 0x95,0x96,
-0xFF,0xEC, 0xC7,0x38, 0x60,0x00, 0xF7,0x05, 0x32,0xB8, 0xF7,0x04, 0x32,0xBC, 0xF3,0x06,
-0x2F,0xF8, 0x07,0x38, 0x00,0x01, 0xF7,0x05, 0x32,0xBC, 0xF7,0x04, 0x32,0xBC, 0xF3,0x05,
-0x32,0xD4, 0xF7,0x06, 0x0C,0x3E, 0xC0,0x7E, 0x74,0x00, 0xE6,0x00, 0x20,0x34, 0x00,0x00,
-0x00,0x01, 0xC0,0x7E, 0x74,0x00, 0xE6,0x00, 0x20,0x25, 0x00,0x00, 0x00,0x01, 0xF7,0x06,
-0x0C,0x3E, 0xC7,0x7C, 0x74,0x00, 0x20,0x3A, 0x00,0x10, 0xE6,0x00, 0x26,0x8C, 0x00,0x00,
-0x00,0x01, 0xF7,0x04, 0x32,0xE4, 0xFF,0x82, 0x00,0x10, 0xF5,0x84, 0x6F,0x58, 0x07,0x38,
-0x00,0x01, 0x20,0x2E, 0x00,0x21, 0xE2,0x00, 0x20,0x90, 0xF7,0x05, 0x32,0xE4, 0xF7,0x04,
-0x2D,0x38, 0xF6,0x86, 0x2C,0x28, 0x06,0x38, 0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39,
-0x00,0x02, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0x20,0x84, 0xB5,0xBA, 0x68,0x02, 0xF0,0x05,
-0x2D,0x38, 0xF3,0x02, 0x00,0x22, 0xE0,0x00, 0x20,0x94, 0xF3,0x05, 0x6F,0x58, 0xF0,0x05,
-0x6F,0x54, 0xF5,0x84, 0x32,0xC0, 0x00,0x00, 0x00,0x01, 0x90,0x2E, 0x00,0x04, 0x87,0x2E,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x02, 0xE6,0x00, 0x21,0xC0, 0x00,0x00,
-0x00,0x01, 0x87,0x02, 0xFF,0x38, 0x03,0x2C, 0x0E,0xF4, 0x93,0x16, 0xFF,0xCC, 0xF7,0x05,
-0x7A,0x68, 0x93,0x13, 0xFF,0xFC, 0x95,0x96, 0xFF,0xB8, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x43,0xA0, 0x97,0x93, 0xFF,0xFC, 0x85,0x96, 0xFF,0xB8, 0x20,0x22, 0x00,0x00, 0xE6,0x00,
-0x21,0x7C, 0x00,0x00, 0x00,0x01, 0x86,0x2E, 0x0E,0xF8, 0x00,0x00, 0x00,0x01, 0x20,0x32,
-0x00,0x10, 0xE2,0x00, 0x21,0x19, 0xF3,0x02, 0x00,0x4C, 0x87,0x2E, 0x0F,0x00, 0x00,0x00,
-0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x2E, 0x0F,0x00, 0x87,0x2E, 0x0F,0x00, 0xE0,0x00,
-0x21,0x7C, 0x00,0x00, 0x00,0x01, 0x93,0x13, 0xFF,0xFC, 0xF3,0x06, 0x7A,0x28, 0x93,0x13,
-0xFF,0xFC, 0x76,0xB1, 0x00,0x02, 0xC6,0xB4, 0x60,0x00, 0x77,0x35, 0x00,0x04, 0xC7,0x38,
-0x6A,0x00, 0x83,0x16, 0xFF,0xCC, 0xC7,0x38, 0x60,0x00, 0xC7,0x38, 0x30,0x00, 0x07,0x38,
-0x00,0x10, 0x97,0x13, 0xFF,0xFC, 0x95,0x96, 0xFF,0xB8, 0x96,0x16, 0xFF,0xB4, 0x07,0x88,
-0x00,0x08, 0xE0,0x01, 0x26,0xF8, 0x97,0x93, 0xFF,0xFC, 0x86,0x16, 0xFF,0xB4, 0x85,0x96,
-0xFF,0xB8, 0x06,0x30, 0x00,0x01, 0x20,0x32, 0x00,0x11, 0xE6,0x00, 0x21,0x78, 0x00,0x00,
-0x00,0x01, 0xF6,0x02, 0x00,0x00, 0x96,0x2E, 0x0E,0xF8, 0xF7,0x04, 0x32,0xC0, 0xF3,0x06,
-0xE0,0x30, 0xC0,0x3A, 0x32,0x00, 0xE6,0x00, 0x21,0xC0, 0x00,0x00, 0x00,0x01, 0xF7,0x04,
-0xE0,0x18, 0x00,0x00, 0x00,0x01, 0x77,0xB8, 0x00,0x1E, 0x70,0x3E, 0xFF,0xE1, 0xE6,0x00,
-0x21,0xC1, 0x00,0x00, 0x00,0x01, 0x0F,0x81, 0x40,0x00, 0xF7,0x04, 0x79,0xC8, 0x00,0x00,
-0x00,0x01, 0x07,0x38, 0x00,0x01, 0xF7,0x05, 0x79,0xC8, 0xF7,0x04, 0x79,0xC8, 0xF7,0x04,
-0x71,0xC4, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x21,0xFD, 0xF6,0x86,
-0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38, 0x00,0x01, 0xF6,0x05,
-0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF3,0x02, 0x00,0x0A, 0x20,0x32, 0x00,0x44, 0xE6,0x00,
-0x21,0xFC, 0xB3,0x3A, 0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF7,0x04, 0x71,0xD4, 0xF6,0x84,
-0x71,0xCC, 0x07,0x38, 0x00,0x01, 0xC0,0x3A, 0x6A,0x00, 0xE6,0x00, 0x22,0x18, 0xF7,0x05,
-0x71,0xD4, 0xF0,0x05, 0x71,0xD4, 0xF6,0x84, 0x71,0xD4, 0xF7,0x04, 0x71,0xD0, 0xF0,0x05,
-0x71,0xC4, 0xC0,0x36, 0x72,0x00, 0x47,0x0C, 0x00,0x01, 0xF6,0x84, 0x32,0xD0, 0x00,0x00,
-0x00,0x01, 0x20,0x36, 0x00,0x00, 0xE6,0x00, 0x25,0xD9, 0xF7,0x05, 0x71,0xC8, 0xF7,0x04,
-0x71,0x98, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x25,0x79, 0x00,0x00,
-0x00,0x01, 0xF7,0x04, 0x75,0xEC, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x25,0x78, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x75,0xF0, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x25,0x78, 0x00,0x00, 0x00,0x01, 0xE0,0x00, 0x25,0xDC, 0xF3,0x06,
-0x31,0x9C, 0xF0,0x05, 0x7A,0x88, 0x90,0x02, 0xFF,0x38, 0xF0,0x05, 0x6F,0x50, 0x90,0x02,
-0xFF,0x80, 0xF7,0x04, 0x32,0xC4, 0xF3,0x06, 0x32,0x28, 0xF3,0x05, 0x32,0xD4, 0xF6,0x04,
-0x32,0xC8, 0xF6,0x84, 0x7A,0x2C, 0xF5,0x02, 0x00,0x00, 0x07,0x38, 0x00,0x24, 0xF7,0x05,
-0x7A,0x98, 0x20,0x32, 0x00,0x00, 0xE6,0x00, 0x22,0xD5, 0xF6,0x05, 0x7A,0x90, 0xC0,0x2A,
-0x5A,0x00, 0xE6,0x00, 0x26,0x20, 0xC0,0x32, 0x6A,0x00, 0xEE,0x00, 0x26,0x21, 0x00,0x00,
-0x00,0x01, 0xF6,0x84, 0x32,0xC0, 0x00,0x00, 0x00,0x01, 0x87,0x36, 0x14,0x10, 0x00,0x00,
-0x00,0x01, 0xC7,0x38, 0x60,0x00, 0x97,0x36, 0x14,0x10, 0x87,0x36, 0x14,0x18, 0x00,0x00,
-0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x36, 0x14,0x18, 0x87,0x36, 0x14,0x18, 0xF7,0x04,
-0x32,0xB8, 0x00,0x00, 0x00,0x01, 0xC7,0x38, 0x60,0x00, 0xF7,0x05, 0x32,0xB8, 0xF7,0x04,
-0x32,0xBC, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0xF7,0x05, 0x32,0xBC, 0xF7,0x04,
-0x32,0xBC, 0x20,0x32, 0x00,0x00, 0xE6,0x00, 0x23,0x45, 0x00,0x00, 0x00,0x01, 0xF7,0x04,
-0x32,0xE0, 0xF5,0x05, 0x7A,0x70, 0x07,0x38, 0x00,0x01, 0xE0,0x00, 0x23,0x48, 0xF7,0x05,
-0x32,0xE0, 0xF5,0x05, 0x7A,0x70, 0xF5,0x84, 0x6F,0x58, 0x00,0x00, 0x00,0x01, 0x20,0x2E,
-0x00,0x21, 0xE2,0x00, 0x23,0x8C, 0xF6,0x86, 0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00,
-0x00,0x01, 0x06,0x38, 0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0x20,0x32,
-0x00,0x44, 0xE6,0x00, 0x23,0x80, 0xB5,0xBA, 0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF3,0x02,
-0x00,0x22, 0xE0,0x00, 0x23,0x90, 0xF3,0x05, 0x6F,0x58, 0xF0,0x05, 0x6F,0x54, 0xF5,0x84,
-0x32,0xC0, 0x00,0x00, 0x00,0x01, 0x90,0x2E, 0x00,0x04, 0x87,0x2E, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x20,0x3A, 0x00,0x02, 0xE6,0x00, 0x24,0xBC, 0x00,0x00, 0x00,0x01, 0x87,0x02,
-0xFF,0x38, 0x03,0x2C, 0x0E,0xF4, 0x93,0x16, 0xFF,0xC4, 0xF7,0x05, 0x7A,0x68, 0x93,0x13,
-0xFF,0xFC, 0x95,0x96, 0xFF,0xB8, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x43,0xA0, 0x97,0x93,
-0xFF,0xFC, 0x85,0x96, 0xFF,0xB8, 0x20,0x22, 0x00,0x00, 0xE6,0x00, 0x24,0x78, 0x00,0x00,
-0x00,0x01, 0x86,0x2E, 0x0E,0xF8, 0x00,0x00, 0x00,0x01, 0x20,0x32, 0x00,0x10, 0xE2,0x00,
-0x24,0x15, 0xF3,0x02, 0x00,0x4C, 0x87,0x2E, 0x0F,0x00, 0x00,0x00, 0x00,0x01, 0x07,0x38,
-0x00,0x01, 0x97,0x2E, 0x0F,0x00, 0x87,0x2E, 0x0F,0x00, 0xE0,0x00, 0x24,0x78, 0x00,0x00,
-0x00,0x01, 0x93,0x13, 0xFF,0xFC, 0xF3,0x06, 0x7A,0x28, 0x93,0x13, 0xFF,0xFC, 0x76,0xB1,
-0x00,0x02, 0xC6,0xB4, 0x60,0x00, 0x77,0x35, 0x00,0x04, 0xC7,0x38, 0x6A,0x00, 0x83,0x16,
-0xFF,0xC4, 0xC7,0x38, 0x60,0x00, 0xC7,0x38, 0x30,0x00, 0x07,0x38, 0x00,0x10, 0x97,0x13,
-0xFF,0xFC, 0x95,0x96, 0xFF,0xB8, 0x96,0x16, 0xFF,0xB4, 0x07,0x88, 0x00,0x08, 0xE0,0x01,
-0x26,0xF8, 0x97,0x93, 0xFF,0xFC, 0x86,0x16, 0xFF,0xB4, 0x85,0x96, 0xFF,0xB8, 0x06,0x30,
-0x00,0x01, 0x20,0x32, 0x00,0x11, 0xE6,0x00, 0x24,0x74, 0x00,0x00, 0x00,0x01, 0xF6,0x02,
-0x00,0x00, 0x96,0x2E, 0x0E,0xF8, 0xF7,0x04, 0x32,0xC0, 0xF3,0x06, 0xE0,0x30, 0xC0,0x3A,
-0x32,0x00, 0xE6,0x00, 0x24,0xBC, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0xE0,0x18, 0x00,0x00,
-0x00,0x01, 0x77,0xB8, 0x00,0x1E, 0x70,0x3E, 0xFF,0xE1, 0xE6,0x00, 0x24,0xBD, 0x00,0x00,
-0x00,0x01, 0x0F,0x81, 0x40,0x00, 0xF7,0x04, 0x79,0xC8, 0x00,0x00, 0x00,0x01, 0x07,0x38,
-0x00,0x01, 0xF7,0x05, 0x79,0xC8, 0xF7,0x04, 0x79,0xC8, 0xF7,0x04, 0x71,0xC4, 0x00,0x00,
-0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x24,0xF9, 0xF6,0x86, 0x2C,0x28, 0xF7,0x04,
-0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38, 0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39,
-0x00,0x02, 0xF3,0x02, 0x00,0x0A, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0x24,0xF8, 0xB3,0x3A,
-0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF7,0x04, 0x71,0xD4, 0xF6,0x84, 0x71,0xCC, 0x07,0x38,
-0x00,0x01, 0xC0,0x3A, 0x6A,0x00, 0xE6,0x00, 0x25,0x14, 0xF7,0x05, 0x71,0xD4, 0xF0,0x05,
-0x71,0xD4, 0xF6,0x84, 0x71,0xD4, 0xF7,0x04, 0x71,0xD0, 0xF0,0x05, 0x71,0xC4, 0xC0,0x36,
-0x72,0x00, 0x47,0x0C, 0x00,0x01, 0xF6,0x84, 0x32,0xD0, 0x00,0x00, 0x00,0x01, 0x20,0x36,
-0x00,0x00, 0xE6,0x00, 0x25,0xD9, 0xF7,0x05, 0x71,0xC8, 0xF7,0x04, 0x71,0x98, 0x00,0x00,
-0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x25,0x79, 0x00,0x00, 0x00,0x01, 0xF7,0x04,
-0x75,0xEC, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x25,0x78, 0x00,0x00,
-0x00,0x01, 0xF7,0x04, 0x75,0xF0, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x25,0xD1, 0x00,0x00, 0x00,0x01, 0xF5,0x84, 0x76,0xF8, 0x00,0x00, 0x00,0x01, 0x20,0x2E,
-0x00,0x21, 0xE2,0x00, 0x25,0xC4, 0xF6,0x86, 0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00,
-0x00,0x01, 0x06,0x38, 0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0x20,0x32,
-0x00,0x44, 0xE6,0x00, 0x25,0xB0, 0xB5,0xBA, 0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF3,0x02,
-0x00,0x22, 0xF3,0x05, 0x76,0xF8, 0xF3,0x04, 0x77,0x00, 0xE0,0x00, 0x25,0xC8, 0xF3,0x05,
-0x76,0xFC, 0xF0,0x05, 0x76,0xFC, 0xE0,0x00, 0x25,0xD8, 0xF0,0x05, 0x7A,0x78, 0xE0,0x00,
-0x25,0xDC, 0xF3,0x06, 0x31,0x9C, 0xF3,0x06, 0x2E,0xE0, 0xF3,0x05, 0x32,0xD4, 0xF7,0x04,
-0x71,0xC8, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x26,0x8C, 0xF6,0x86,
-0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38, 0x00,0x01, 0xF6,0x05,
-0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF3,0x02, 0x00,0x09, 0x20,0x32, 0x00,0x44, 0xE6,0x00,
-0x26,0x8C, 0xB3,0x3A, 0x68,0x02, 0xE0,0x00, 0x26,0x8C, 0xF0,0x05, 0x2D,0x38, 0xF7,0x04,
-0x7A,0x90, 0x00,0x00, 0x00,0x01, 0xC0,0x3A, 0x6A,0x00, 0xEE,0x00, 0x26,0x41, 0xC5,0xB4,
-0x00,0x00, 0xC7,0x38, 0x5A,0x00, 0xE0,0x00, 0x26,0x48, 0xF7,0x05, 0x7A,0x90, 0xC5,0xB8,
-0x00,0x00, 0xF0,0x05, 0x7A,0x90, 0xF6,0x84, 0x7A,0x88, 0xF7,0x06, 0x7A,0x28, 0x76,0x35,
-0x00,0x03, 0xA7,0x32, 0x70,0x02, 0x06,0xB4, 0x00,0x01, 0x97,0x16, 0xFF,0xEC, 0x84,0xA6,
-0xFF,0xFC, 0xF7,0x06, 0x7A,0x2C, 0xF3,0x04, 0x7A,0x98, 0x94,0x82, 0xFF,0x3C, 0x93,0x02,
-0xFF,0x40, 0x95,0x82, 0xFF,0x44, 0xB5,0xB2, 0x70,0x02, 0xF7,0x04, 0x7A,0x98, 0xF6,0x85,
-0x7A,0x88, 0xC7,0x38, 0x58,0x00, 0xF7,0x05, 0x7A,0x98, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF7,0x02, 0x00,0x01, 0xF7,0x05, 0x7A,0x78, 0xF7,0x06,
-0x30,0x84, 0xF7,0x05, 0x32,0xD4, 0xF7,0x04, 0x32,0xC4, 0x00,0x00, 0x00,0x01, 0x97,0x13,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x06,0x10, 0x97,0x93, 0xFF,0xFC, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0x50, 0xF7,0x04,
-0x32,0xD0, 0xF3,0x02, 0x00,0x00, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x2A,0x71, 0x93,0x16,
-0xFF,0xE4, 0xF6,0x84, 0x32,0xC4, 0x86,0x16, 0xFF,0xE4, 0x87,0x36, 0x00,0x08, 0xC3,0x04,
-0x00,0x00, 0xC0,0x3A, 0x32,0x00, 0xE6,0x00, 0x27,0x3C, 0x20,0x32, 0x00,0x00, 0x87,0x36,
-0x00,0x0C, 0x00,0x00, 0x00,0x01, 0xC0,0x3A, 0x32,0x00, 0xE6,0x00, 0x27,0x3C, 0x20,0x32,
-0x00,0x00, 0xF6,0x02, 0x00,0x01, 0x20,0x32, 0x00,0x00, 0xE6,0x00, 0x2A,0x70, 0xF3,0x02,
-0x00,0x00, 0xF7,0x04, 0x32,0xC0, 0x93,0x16, 0xFF,0xAC, 0xF5,0x84, 0x32,0xC4, 0x86,0x3A,
-0x14,0x28, 0x03,0xB8, 0x14,0x20, 0x04,0x2C, 0x00,0x08, 0x86,0xBA, 0x14,0x24, 0x00,0x00,
-0x00,0x01, 0xC0,0x32, 0x6A,0x00, 0xEC,0x00, 0x28,0x28, 0x96,0x16, 0xFF,0xEC, 0x77,0x31,
-0x00,0x01, 0xC7,0x38, 0x60,0x00, 0x77,0x39, 0x00,0x02, 0xC6,0x38, 0x38,0x00, 0x06,0x30,
-0x00,0x0C, 0x86,0xB2, 0x00,0x00, 0x87,0x2E, 0x00,0x08, 0x85,0x16, 0xFF,0xAC, 0xC0,0x36,
-0x72,0x00, 0xE6,0x00, 0x27,0xB8, 0xC4,0x84, 0x00,0x00, 0x86,0xB2, 0x00,0x04, 0x87,0x2E,
-0x00,0x0C, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0x27,0xBC, 0x20,0x2A,
-0x00,0x00, 0xF5,0x02, 0x00,0x01, 0x20,0x2A, 0x00,0x00, 0xE6,0x00, 0x27,0xC9, 0x00,0x00,
-0x00,0x01, 0xF4,0x82, 0x00,0x00, 0x86,0xB2, 0x00,0x00, 0x87,0x22, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE2,0x00, 0x28,0x04, 0xF5,0x82, 0x00,0x00, 0xC0,0x36,
-0x72,0x00, 0xE6,0x00, 0x28,0x0C, 0x20,0x2E, 0x00,0x00, 0x86,0xB2, 0x00,0x04, 0x87,0x22,
-0x00,0x04, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE2,0x00, 0x28,0x0D, 0x20,0x2E,
-0x00,0x00, 0xF5,0x82, 0x00,0x01, 0x20,0x2E, 0x00,0x00, 0xE6,0x00, 0x28,0x1D, 0x20,0x26,
-0x00,0x00, 0xF4,0x82, 0x00,0x01, 0x20,0x26, 0x00,0x00, 0xE6,0x00, 0x28,0x28, 0xF3,0x02,
-0x00,0x01, 0x93,0x16, 0xFF,0xAC, 0x83,0x16, 0xFF,0xAC, 0x00,0x00, 0x00,0x01, 0x20,0x1A,
-0x00,0x00, 0xE6,0x00, 0x28,0x69, 0xF6,0x02, 0x00,0x01, 0x87,0x16, 0xFF,0xEC, 0x00,0x00,
-0x00,0x01, 0x76,0xB9, 0x00,0x01, 0xC6,0xB4, 0x70,0x00, 0x76,0xB5, 0x00,0x02, 0xC6,0xB4,
-0x38,0x00, 0x06,0xB4, 0x00,0x14, 0x86,0xB6, 0x00,0x00, 0x97,0x16, 0xFF,0xF0, 0xE0,0x00,
-0x28,0xD0, 0x96,0x96, 0xFF,0xF4, 0x27,0x14, 0x00,0x14, 0x97,0x13, 0xFF,0xFC, 0x94,0x13,
-0xFF,0xFC, 0x93,0x93, 0xFF,0xFC, 0x93,0x96, 0xFF,0xBC, 0x07,0x88, 0x00,0x08, 0xE0,0x01,
-0x25,0x68, 0x97,0x93, 0xFF,0xFC, 0x83,0x96, 0xFF,0xBC, 0x20,0x22, 0x00,0x00, 0xE6,0x00,
-0x28,0xCD, 0xF6,0x02, 0x00,0x01, 0x87,0x16, 0xFF,0xEC, 0x00,0x00, 0x00,0x01, 0x76,0xB9,
-0x00,0x01, 0xC6,0xB4, 0x70,0x00, 0x76,0xB5, 0x00,0x02, 0xC6,0xB4, 0x38,0x00, 0x06,0xB4,
-0x00,0x14, 0x86,0xB6, 0x00,0x00, 0x97,0x16, 0xFF,0xF0, 0x96,0x96, 0xFF,0xF4, 0x97,0x1E,
-0x00,0x08, 0xE0,0x00, 0x28,0xD4, 0x20,0x32, 0x00,0x00, 0xF6,0x02, 0x00,0x00, 0x20,0x32,
-0x00,0x00, 0xE6,0x00, 0x2A,0x70, 0xF3,0x02, 0x00,0x00, 0xF6,0x04, 0x32,0xC0, 0x93,0x16,
-0xFF,0xAC, 0x86,0xB2, 0x14,0x28, 0x03,0xB0, 0x14,0x20, 0x04,0x30, 0x14,0x8C, 0x87,0x32,
-0x14,0x24, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xEC,0x00, 0x29,0xBC, 0x96,0x96,
-0xFF,0xEC, 0x77,0x35, 0x00,0x01, 0xC7,0x38, 0x68,0x00, 0x77,0x39, 0x00,0x02, 0xC5,0xB8,
-0x38,0x00, 0x05,0xAC, 0x00,0x0C, 0x86,0xAE, 0x00,0x00, 0x87,0x32, 0x14,0x8C, 0x85,0x16,
-0xFF,0xAC, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0x29,0x4C, 0xC4,0x84, 0x00,0x00, 0x86,0xAE,
-0x00,0x04, 0x87,0x32, 0x14,0x90, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE6,0x00,
-0x29,0x50, 0x20,0x2A, 0x00,0x00, 0xF5,0x02, 0x00,0x01, 0x20,0x2A, 0x00,0x00, 0xE6,0x00,
-0x29,0x5D, 0x00,0x00, 0x00,0x01, 0xF4,0x82, 0x00,0x00, 0x86,0xAE, 0x00,0x00, 0x87,0x22,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE2,0x00, 0x29,0x98, 0xF6,0x02,
-0x00,0x00, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0x29,0xA0, 0x20,0x32, 0x00,0x00, 0x86,0xAE,
-0x00,0x04, 0x87,0x22, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE2,0x00,
-0x29,0xA1, 0x20,0x32, 0x00,0x00, 0xF6,0x02, 0x00,0x01, 0x20,0x32, 0x00,0x00, 0xE6,0x00,
-0x29,0xB1, 0x20,0x26, 0x00,0x00, 0xF4,0x82, 0x00,0x01, 0x20,0x26, 0x00,0x00, 0xE6,0x00,
-0x29,0xBC, 0xF3,0x02, 0x00,0x01, 0x93,0x16, 0xFF,0xAC, 0x83,0x16, 0xFF,0xAC, 0x00,0x00,
-0x00,0x01, 0x20,0x1A, 0x00,0x00, 0xE6,0x00, 0x29,0xFD, 0xF6,0x02, 0x00,0x01, 0x87,0x16,
-0xFF,0xEC, 0x00,0x00, 0x00,0x01, 0x76,0xB9, 0x00,0x01, 0xC6,0xB4, 0x70,0x00, 0x76,0xB5,
-0x00,0x02, 0xC6,0xB4, 0x38,0x00, 0x06,0xB4, 0x00,0x14, 0x86,0xB6, 0x00,0x00, 0x97,0x16,
-0xFF,0xF0, 0xE0,0x00, 0x2A,0x64, 0x96,0x96, 0xFF,0xF4, 0x27,0x14, 0x00,0x14, 0x97,0x13,
-0xFF,0xFC, 0x94,0x13, 0xFF,0xFC, 0x93,0x93, 0xFF,0xFC, 0x93,0x96, 0xFF,0xBC, 0x07,0x88,
-0x00,0x08, 0xE0,0x01, 0x25,0x68, 0x97,0x93, 0xFF,0xFC, 0x83,0x96, 0xFF,0xBC, 0x20,0x22,
-0x00,0x00, 0xE6,0x00, 0x2A,0x61, 0xF6,0x02, 0x00,0x01, 0x87,0x16, 0xFF,0xEC, 0x00,0x00,
-0x00,0x01, 0x76,0xB9, 0x00,0x01, 0xC6,0xB4, 0x70,0x00, 0x76,0xB5, 0x00,0x02, 0xC6,0xB4,
-0x38,0x00, 0x06,0xB4, 0x00,0x14, 0x86,0xB6, 0x00,0x00, 0x97,0x16, 0xFF,0xF0, 0x96,0x96,
-0xFF,0xF4, 0x97,0x1E, 0x00,0x08, 0xE0,0x00, 0x2A,0x68, 0x20,0x32, 0x00,0x00, 0xF6,0x02,
-0x00,0x00, 0x20,0x32, 0x00,0x00, 0xE6,0x00, 0x2B,0xCD, 0xF3,0x02, 0x00,0x01, 0xF6,0x84,
-0x32,0xC0, 0x00,0x00, 0x00,0x01, 0x85,0xB6, 0x0E,0xF4, 0x86,0x36, 0x0E,0xF8, 0x20,0x2E,
-0x00,0x10, 0xE2,0x00, 0x2A,0x94, 0x20,0x32, 0x00,0x10, 0xE2,0x00, 0x2A,0xB1, 0x00,0x00,
-0x00,0x01, 0x87,0x36, 0x0F,0x00, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x36,
-0x0F,0x00, 0x87,0x36, 0x0F,0x00, 0xE0,0x00, 0x2A,0xDC, 0xF7,0x02, 0x00,0x00, 0x07,0x30,
-0x00,0x01, 0xC0,0x3A, 0x5A,0x00, 0xE6,0x00, 0x2A,0xD5, 0xF6,0x82, 0x00,0x00, 0x20,0x32,
-0x00,0x10, 0xE6,0x00, 0x2A,0xD8, 0x20,0x2E, 0x00,0x00, 0xE6,0x00, 0x2A,0xDC, 0xC7,0x34,
-0x00,0x00, 0xF6,0x82, 0x00,0x01, 0xC7,0x34, 0x00,0x00, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x2B,0xCC, 0xF3,0x02, 0x00,0x01, 0xF3,0x04, 0x32,0xCC, 0x00,0x00, 0x00,0x01, 0x93,0x16,
-0xFF,0xDC, 0x93,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x43,0x68, 0x97,0x93,
-0xFF,0xFC, 0x20,0x22, 0x00,0x00, 0xE6,0x00, 0x2B,0xB4, 0xF3,0x02, 0x00,0x00, 0x83,0x16,
-0xFF,0xDC, 0x00,0x00, 0x00,0x01, 0x86,0x1A, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x20,0x32,
-0x00,0x10, 0xE2,0x00, 0x2B,0x49, 0x76,0xB1, 0x00,0x02, 0x87,0x1A, 0x00,0x0C, 0x00,0x00,
-0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x1A, 0x00,0x0C, 0x87,0x1A, 0x00,0x0C, 0xE0,0x00,
-0x2B,0xB4, 0xF3,0x02, 0x00,0x00, 0xF3,0x02, 0x00,0x4C, 0x93,0x13, 0xFF,0xFC, 0xC6,0xB4,
-0x60,0x00, 0x77,0x35, 0x00,0x04, 0xC7,0x38, 0x6A,0x00, 0x83,0x16, 0xFF,0xDC, 0xC7,0x38,
-0x60,0x00, 0xC7,0x38, 0x30,0x00, 0x07,0x38, 0x00,0x10, 0x97,0x13, 0xFF,0xFC, 0xF3,0x06,
-0x7A,0x28, 0x93,0x13, 0xFF,0xFC, 0x96,0x16, 0xFF,0xB4, 0x07,0x88, 0x00,0x08, 0xE0,0x01,
-0x26,0xF8, 0x97,0x93, 0xFF,0xFC, 0x86,0x16, 0xFF,0xB4, 0x00,0x00, 0x00,0x01, 0x06,0x30,
-0x00,0x01, 0x20,0x32, 0x00,0x11, 0xE6,0x00, 0x2B,0xA4, 0x00,0x00, 0x00,0x01, 0xF6,0x02,
-0x00,0x00, 0x83,0x16, 0xFF,0xDC, 0x00,0x00, 0x00,0x01, 0x96,0x1A, 0x00,0x00, 0xF3,0x02,
-0x00,0x01, 0x93,0x16, 0xFF,0xD4, 0x83,0x16, 0xFF,0xD4, 0x00,0x00, 0x00,0x01, 0x20,0x1A,
-0x00,0x00, 0xE6,0x00, 0x2B,0xD0, 0xF3,0x02, 0x00,0x01, 0x93,0x16, 0xFF,0xE4, 0x83,0x16,
-0xFF,0xE4, 0x00,0x00, 0x00,0x01, 0x20,0x1A, 0x00,0x00, 0xE6,0x00, 0x2C,0xED, 0xF6,0x82,
-0x0C,0xAB, 0xF7,0x04, 0x32,0xB4, 0x83,0x16, 0xFF,0xD4, 0x07,0x38, 0x00,0x01, 0xF7,0x05,
-0x32,0xB4, 0xF7,0x04, 0x32,0xB4, 0x20,0x1A, 0x00,0x00, 0xE6,0x00, 0x2C,0x28, 0x00,0x00,
-0x00,0x01, 0xF7,0x04, 0x32,0xC0, 0xF3,0x06, 0xE0,0x30, 0xC0,0x3A, 0x32,0x00, 0xE6,0x00,
-0x2C,0x28, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x32,0xE8, 0x00,0x00, 0x00,0x01, 0x07,0x38,
-0x00,0x01, 0xF7,0x05, 0x32,0xE8, 0xF7,0x04, 0x71,0xC4, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x2C,0x65, 0xF6,0x86, 0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00,
-0x00,0x01, 0x06,0x38, 0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF3,0x02,
-0x00,0x0A, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0x2C,0x64, 0xB3,0x3A, 0x68,0x02, 0xF0,0x05,
-0x2D,0x38, 0xF7,0x04, 0x71,0xD4, 0xF6,0x84, 0x71,0xCC, 0x07,0x38, 0x00,0x01, 0xC0,0x3A,
-0x6A,0x00, 0xE6,0x00, 0x2C,0x80, 0xF7,0x05, 0x71,0xD4, 0xF0,0x05, 0x71,0xD4, 0xF6,0x84,
-0x71,0xD4, 0xF7,0x04, 0x71,0xD0, 0xF0,0x05, 0x71,0xC4, 0xC0,0x36, 0x72,0x00, 0x47,0x0C,
-0x00,0x01, 0xF6,0x84, 0x32,0xD0, 0x00,0x00, 0x00,0x01, 0x20,0x36, 0x00,0x00, 0xE6,0x00,
-0x33,0x91, 0xF7,0x05, 0x71,0xC8, 0xF7,0x04, 0x71,0x98, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x33,0x31, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x75,0xEC, 0x00,0x00,
-0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x33,0x30, 0x00,0x00, 0x00,0x01, 0xF7,0x04,
-0x75,0xF0, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x33,0x30, 0x00,0x00,
-0x00,0x01, 0xE0,0x00, 0x33,0x94, 0xF3,0x06, 0x31,0x9C, 0xF0,0x05, 0x32,0xE8, 0xF7,0x04,
-0x32,0xC0, 0xF6,0x04, 0x6F,0x54, 0x96,0xBA, 0x00,0x04, 0x20,0x32, 0x00,0x00, 0xE6,0x00,
-0x2D,0x18, 0xF3,0x02, 0x00,0x0C, 0xF3,0x02, 0x00,0x01, 0xF3,0x05, 0x6F,0x54, 0xE0,0x00,
-0x2D,0x20, 0xF7,0x02, 0x00,0x01, 0xF3,0x05, 0x6F,0x58, 0xF7,0x02, 0x00,0x00, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x2D,0x34, 0xF3,0x06, 0x2F,0x6C, 0xE0,0x00, 0x34,0x44, 0xF3,0x05,
-0x32,0xD4, 0xF5,0x84, 0x7A,0x70, 0x24,0x94, 0x00,0x10, 0x20,0x2E, 0x00,0x01, 0xE6,0x00,
-0x30,0x3C, 0xF5,0x85, 0x7A,0xA0, 0xF7,0x02, 0x00,0x01, 0xF6,0x04, 0x32,0xC8, 0xF7,0x05,
-0x7A,0x70, 0xF7,0x04, 0x32,0xC4, 0xF6,0x84, 0x32,0xC0, 0xF6,0x05, 0x7A,0x2C, 0x90,0x02,
-0xFF,0x80, 0x90,0x02, 0xFF,0x38, 0xF5,0x84, 0x7A,0x28, 0x07,0x38, 0x00,0x24, 0x95,0x82,
-0xFF,0x3C, 0x97,0x02, 0xFF,0x40, 0x96,0x02, 0xFF,0x44, 0x87,0x36, 0x14,0x10, 0x00,0x00,
-0x00,0x01, 0xC7,0x38, 0x60,0x00, 0x97,0x36, 0x14,0x10, 0x87,0x36, 0x14,0x18, 0x00,0x00,
-0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x36, 0x14,0x18, 0x87,0x36, 0x14,0x18, 0xF0,0x05,
-0x6F,0x50, 0xF7,0x04, 0x32,0xB8, 0x95,0x96, 0xFF,0xEC, 0xC7,0x38, 0x60,0x00, 0xF7,0x05,
-0x32,0xB8, 0xF7,0x04, 0x32,0xBC, 0xF3,0x06, 0x2F,0xF8, 0x07,0x38, 0x00,0x01, 0xF7,0x05,
-0x32,0xBC, 0xF7,0x04, 0x32,0xBC, 0xF3,0x05, 0x32,0xD4, 0xF7,0x06, 0x0C,0x3E, 0xC0,0x7E,
-0x74,0x00, 0xE6,0x00, 0x2D,0xEC, 0x00,0x00, 0x00,0x01, 0xC0,0x7E, 0x74,0x00, 0xE6,0x00,
-0x2D,0xDD, 0x00,0x00, 0x00,0x01, 0xF7,0x06, 0x0C,0x3E, 0xC7,0x7C, 0x74,0x00, 0x20,0x3A,
-0x00,0x10, 0xE6,0x00, 0x34,0x44, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x32,0xE4, 0xFF,0x82,
-0x00,0x10, 0xF5,0x84, 0x6F,0x58, 0x07,0x38, 0x00,0x01, 0x20,0x2E, 0x00,0x21, 0xE2,0x00,
-0x2E,0x48, 0xF7,0x05, 0x32,0xE4, 0xF7,0x04, 0x2D,0x38, 0xF6,0x86, 0x2C,0x28, 0x06,0x38,
-0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0x20,0x32, 0x00,0x44, 0xE6,0x00,
-0x2E,0x3C, 0xB5,0xBA, 0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF3,0x02, 0x00,0x22, 0xE0,0x00,
-0x2E,0x4C, 0xF3,0x05, 0x6F,0x58, 0xF0,0x05, 0x6F,0x54, 0xF5,0x84, 0x32,0xC0, 0x00,0x00,
-0x00,0x01, 0x90,0x2E, 0x00,0x04, 0x87,0x2E, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x02, 0xE6,0x00, 0x2F,0x78, 0x00,0x00, 0x00,0x01, 0x87,0x02, 0xFF,0x38, 0x03,0x2C,
-0x0E,0xF4, 0x93,0x16, 0xFF,0xCC, 0xF7,0x05, 0x7A,0x68, 0x93,0x13, 0xFF,0xFC, 0x95,0x96,
-0xFF,0xB8, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x43,0xA0, 0x97,0x93, 0xFF,0xFC, 0x85,0x96,
-0xFF,0xB8, 0x20,0x22, 0x00,0x00, 0xE6,0x00, 0x2F,0x34, 0x00,0x00, 0x00,0x01, 0x86,0x2E,
-0x0E,0xF8, 0x00,0x00, 0x00,0x01, 0x20,0x32, 0x00,0x10, 0xE2,0x00, 0x2E,0xD1, 0xF3,0x02,
-0x00,0x4C, 0x87,0x2E, 0x0F,0x00, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x2E,
-0x0F,0x00, 0x87,0x2E, 0x0F,0x00, 0xE0,0x00, 0x2F,0x34, 0x00,0x00, 0x00,0x01, 0x93,0x13,
-0xFF,0xFC, 0xF3,0x06, 0x7A,0x28, 0x93,0x13, 0xFF,0xFC, 0x76,0xB1, 0x00,0x02, 0xC6,0xB4,
-0x60,0x00, 0x77,0x35, 0x00,0x04, 0xC7,0x38, 0x6A,0x00, 0x83,0x16, 0xFF,0xCC, 0xC7,0x38,
-0x60,0x00, 0xC7,0x38, 0x30,0x00, 0x07,0x38, 0x00,0x10, 0x97,0x13, 0xFF,0xFC, 0x95,0x96,
-0xFF,0xB8, 0x96,0x16, 0xFF,0xB4, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x26,0xF8, 0x97,0x93,
-0xFF,0xFC, 0x86,0x16, 0xFF,0xB4, 0x85,0x96, 0xFF,0xB8, 0x06,0x30, 0x00,0x01, 0x20,0x32,
-0x00,0x11, 0xE6,0x00, 0x2F,0x30, 0x00,0x00, 0x00,0x01, 0xF6,0x02, 0x00,0x00, 0x96,0x2E,
-0x0E,0xF8, 0xF7,0x04, 0x32,0xC0, 0xF3,0x06, 0xE0,0x30, 0xC0,0x3A, 0x32,0x00, 0xE6,0x00,
-0x2F,0x78, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0xE0,0x18, 0x00,0x00, 0x00,0x01, 0x77,0xB8,
-0x00,0x1E, 0x70,0x3E, 0xFF,0xE1, 0xE6,0x00, 0x2F,0x79, 0x00,0x00, 0x00,0x01, 0x0F,0x81,
-0x40,0x00, 0xF7,0x04, 0x79,0xC8, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0xF7,0x05,
-0x79,0xC8, 0xF7,0x04, 0x79,0xC8, 0xF7,0x04, 0x71,0xC4, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x2F,0xB5, 0xF6,0x86, 0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00,
-0x00,0x01, 0x06,0x38, 0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF3,0x02,
-0x00,0x0A, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0x2F,0xB4, 0xB3,0x3A, 0x68,0x02, 0xF0,0x05,
-0x2D,0x38, 0xF7,0x04, 0x71,0xD4, 0xF6,0x84, 0x71,0xCC, 0x07,0x38, 0x00,0x01, 0xC0,0x3A,
-0x6A,0x00, 0xE6,0x00, 0x2F,0xD0, 0xF7,0x05, 0x71,0xD4, 0xF0,0x05, 0x71,0xD4, 0xF6,0x84,
-0x71,0xD4, 0xF7,0x04, 0x71,0xD0, 0xF0,0x05, 0x71,0xC4, 0xC0,0x36, 0x72,0x00, 0x47,0x0C,
-0x00,0x01, 0xF6,0x84, 0x32,0xD0, 0x00,0x00, 0x00,0x01, 0x20,0x36, 0x00,0x00, 0xE6,0x00,
-0x33,0x91, 0xF7,0x05, 0x71,0xC8, 0xF7,0x04, 0x71,0x98, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x33,0x31, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x75,0xEC, 0x00,0x00,
-0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x33,0x30, 0x00,0x00, 0x00,0x01, 0xF7,0x04,
-0x75,0xF0, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x33,0x30, 0x00,0x00,
-0x00,0x01, 0xE0,0x00, 0x33,0x94, 0xF3,0x06, 0x31,0x9C, 0xF0,0x05, 0x7A,0x88, 0x90,0x02,
-0xFF,0x38, 0xF0,0x05, 0x6F,0x50, 0x90,0x02, 0xFF,0x80, 0xF7,0x04, 0x32,0xC4, 0xF3,0x06,
-0x32,0x28, 0xF3,0x05, 0x32,0xD4, 0xF6,0x04, 0x32,0xC8, 0xF6,0x84, 0x7A,0x2C, 0xF5,0x02,
-0x00,0x00, 0x07,0x38, 0x00,0x24, 0xF7,0x05, 0x7A,0x98, 0x20,0x32, 0x00,0x00, 0xE6,0x00,
-0x30,0x8D, 0xF6,0x05, 0x7A,0x90, 0xC0,0x2A, 0x5A,0x00, 0xE6,0x00, 0x33,0xD8, 0xC0,0x32,
-0x6A,0x00, 0xEE,0x00, 0x33,0xD9, 0x00,0x00, 0x00,0x01, 0xF6,0x84, 0x32,0xC0, 0x00,0x00,
-0x00,0x01, 0x87,0x36, 0x14,0x10, 0x00,0x00, 0x00,0x01, 0xC7,0x38, 0x60,0x00, 0x97,0x36,
-0x14,0x10, 0x87,0x36, 0x14,0x18, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x36,
-0x14,0x18, 0x87,0x36, 0x14,0x18, 0xF7,0x04, 0x32,0xB8, 0x00,0x00, 0x00,0x01, 0xC7,0x38,
-0x60,0x00, 0xF7,0x05, 0x32,0xB8, 0xF7,0x04, 0x32,0xBC, 0x00,0x00, 0x00,0x01, 0x07,0x38,
-0x00,0x01, 0xF7,0x05, 0x32,0xBC, 0xF7,0x04, 0x32,0xBC, 0x20,0x32, 0x00,0x00, 0xE6,0x00,
-0x30,0xFD, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x32,0xE0, 0xF5,0x05, 0x7A,0x70, 0x07,0x38,
-0x00,0x01, 0xE0,0x00, 0x31,0x00, 0xF7,0x05, 0x32,0xE0, 0xF5,0x05, 0x7A,0x70, 0xF5,0x84,
-0x6F,0x58, 0x00,0x00, 0x00,0x01, 0x20,0x2E, 0x00,0x21, 0xE2,0x00, 0x31,0x44, 0xF6,0x86,
-0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38, 0x00,0x01, 0xF6,0x05,
-0x2D,0x38, 0x77,0x39, 0x00,0x02, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0x31,0x38, 0xB5,0xBA,
-0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF3,0x02, 0x00,0x22, 0xE0,0x00, 0x31,0x48, 0xF3,0x05,
-0x6F,0x58, 0xF0,0x05, 0x6F,0x54, 0xF5,0x84, 0x32,0xC0, 0x00,0x00, 0x00,0x01, 0x90,0x2E,
-0x00,0x04, 0x87,0x2E, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x02, 0xE6,0x00,
-0x32,0x74, 0x00,0x00, 0x00,0x01, 0x87,0x02, 0xFF,0x38, 0x03,0x2C, 0x0E,0xF4, 0x93,0x16,
-0xFF,0xC4, 0xF7,0x05, 0x7A,0x68, 0x93,0x13, 0xFF,0xFC, 0x95,0x96, 0xFF,0xB8, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x43,0xA0, 0x97,0x93, 0xFF,0xFC, 0x85,0x96, 0xFF,0xB8, 0x20,0x22,
-0x00,0x00, 0xE6,0x00, 0x32,0x30, 0x00,0x00, 0x00,0x01, 0x86,0x2E, 0x0E,0xF8, 0x00,0x00,
-0x00,0x01, 0x20,0x32, 0x00,0x10, 0xE2,0x00, 0x31,0xCD, 0xF3,0x02, 0x00,0x4C, 0x87,0x2E,
-0x0F,0x00, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x2E, 0x0F,0x00, 0x87,0x2E,
-0x0F,0x00, 0xE0,0x00, 0x32,0x30, 0x00,0x00, 0x00,0x01, 0x93,0x13, 0xFF,0xFC, 0xF3,0x06,
-0x7A,0x28, 0x93,0x13, 0xFF,0xFC, 0x76,0xB1, 0x00,0x02, 0xC6,0xB4, 0x60,0x00, 0x77,0x35,
-0x00,0x04, 0xC7,0x38, 0x6A,0x00, 0x83,0x16, 0xFF,0xC4, 0xC7,0x38, 0x60,0x00, 0xC7,0x38,
-0x30,0x00, 0x07,0x38, 0x00,0x10, 0x97,0x13, 0xFF,0xFC, 0x95,0x96, 0xFF,0xB8, 0x96,0x16,
-0xFF,0xB4, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x26,0xF8, 0x97,0x93, 0xFF,0xFC, 0x86,0x16,
-0xFF,0xB4, 0x85,0x96, 0xFF,0xB8, 0x06,0x30, 0x00,0x01, 0x20,0x32, 0x00,0x11, 0xE6,0x00,
-0x32,0x2C, 0x00,0x00, 0x00,0x01, 0xF6,0x02, 0x00,0x00, 0x96,0x2E, 0x0E,0xF8, 0xF7,0x04,
-0x32,0xC0, 0xF3,0x06, 0xE0,0x30, 0xC0,0x3A, 0x32,0x00, 0xE6,0x00, 0x32,0x74, 0x00,0x00,
-0x00,0x01, 0xF7,0x04, 0xE0,0x18, 0x00,0x00, 0x00,0x01, 0x77,0xB8, 0x00,0x1E, 0x70,0x3E,
-0xFF,0xE1, 0xE6,0x00, 0x32,0x75, 0x00,0x00, 0x00,0x01, 0x0F,0x81, 0x40,0x00, 0xF7,0x04,
-0x79,0xC8, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0xF7,0x05, 0x79,0xC8, 0xF7,0x04,
-0x79,0xC8, 0xF7,0x04, 0x71,0xC4, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x32,0xB1, 0xF6,0x86, 0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38,
-0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF3,0x02, 0x00,0x0A, 0x20,0x32,
-0x00,0x44, 0xE6,0x00, 0x32,0xB0, 0xB3,0x3A, 0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF7,0x04,
-0x71,0xD4, 0xF6,0x84, 0x71,0xCC, 0x07,0x38, 0x00,0x01, 0xC0,0x3A, 0x6A,0x00, 0xE6,0x00,
-0x32,0xCC, 0xF7,0x05, 0x71,0xD4, 0xF0,0x05, 0x71,0xD4, 0xF6,0x84, 0x71,0xD4, 0xF7,0x04,
-0x71,0xD0, 0xF0,0x05, 0x71,0xC4, 0xC0,0x36, 0x72,0x00, 0x47,0x0C, 0x00,0x01, 0xF6,0x84,
-0x32,0xD0, 0x00,0x00, 0x00,0x01, 0x20,0x36, 0x00,0x00, 0xE6,0x00, 0x33,0x91, 0xF7,0x05,
-0x71,0xC8, 0xF7,0x04, 0x71,0x98, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x33,0x31, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x75,0xEC, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x33,0x30, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x75,0xF0, 0x00,0x00,
-0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x33,0x89, 0x00,0x00, 0x00,0x01, 0xF5,0x84,
-0x76,0xF8, 0x00,0x00, 0x00,0x01, 0x20,0x2E, 0x00,0x21, 0xE2,0x00, 0x33,0x7C, 0xF6,0x86,
-0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38, 0x00,0x01, 0xF6,0x05,
-0x2D,0x38, 0x77,0x39, 0x00,0x02, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0x33,0x68, 0xB5,0xBA,
-0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF3,0x02, 0x00,0x22, 0xF3,0x05, 0x76,0xF8, 0xF3,0x04,
-0x77,0x00, 0xE0,0x00, 0x33,0x80, 0xF3,0x05, 0x76,0xFC, 0xF0,0x05, 0x76,0xFC, 0xE0,0x00,
-0x33,0x90, 0xF0,0x05, 0x7A,0x78, 0xE0,0x00, 0x33,0x94, 0xF3,0x06, 0x31,0x9C, 0xF3,0x06,
-0x2E,0xE0, 0xF3,0x05, 0x32,0xD4, 0xF7,0x04, 0x71,0xC8, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x34,0x44, 0xF6,0x86, 0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00,
-0x00,0x01, 0x06,0x38, 0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF3,0x02,
-0x00,0x09, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0x34,0x44, 0xB3,0x3A, 0x68,0x02, 0xE0,0x00,
-0x34,0x44, 0xF0,0x05, 0x2D,0x38, 0xF7,0x04, 0x7A,0x90, 0x00,0x00, 0x00,0x01, 0xC0,0x3A,
-0x6A,0x00, 0xEE,0x00, 0x33,0xF9, 0xC5,0xB4, 0x00,0x00, 0xC7,0x38, 0x5A,0x00, 0xE0,0x00,
-0x34,0x00, 0xF7,0x05, 0x7A,0x90, 0xC5,0xB8, 0x00,0x00, 0xF0,0x05, 0x7A,0x90, 0xF6,0x84,
-0x7A,0x88, 0xF7,0x06, 0x7A,0x28, 0x76,0x35, 0x00,0x03, 0xA7,0x32, 0x70,0x02, 0x06,0xB4,
-0x00,0x01, 0x97,0x16, 0xFF,0xEC, 0x84,0xA6, 0xFF,0xFC, 0xF7,0x06, 0x7A,0x2C, 0xF3,0x04,
-0x7A,0x98, 0x94,0x82, 0xFF,0x3C, 0x93,0x02, 0xFF,0x40, 0x95,0x82, 0xFF,0x44, 0xB5,0xB2,
-0x70,0x02, 0xF7,0x04, 0x7A,0x98, 0xF6,0x85, 0x7A,0x88, 0xC7,0x38, 0x58,0x00, 0xF7,0x05,
-0x7A,0x98, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10,
-0x00,0x20, 0xF5,0x84, 0x7A,0x70, 0x00,0x00, 0x00,0x01, 0x20,0x2E, 0x00,0x01, 0xE6,0x00,
-0x37,0x6C, 0xF5,0x85, 0x7A,0xA0, 0xF7,0x02, 0x00,0x01, 0xF6,0x04, 0x32,0xC8, 0xF7,0x05,
-0x7A,0x70, 0xF7,0x04, 0x32,0xC4, 0xF6,0x84, 0x32,0xC0, 0xF6,0x05, 0x7A,0x2C, 0x90,0x02,
-0xFF,0x80, 0x90,0x02, 0xFF,0x38, 0xF5,0x84, 0x7A,0x28, 0x07,0x38, 0x00,0x24, 0x95,0x82,
-0xFF,0x3C, 0x97,0x02, 0xFF,0x40, 0x96,0x02, 0xFF,0x44, 0x87,0x36, 0x14,0x10, 0x00,0x00,
-0x00,0x01, 0xC7,0x38, 0x60,0x00, 0x97,0x36, 0x14,0x10, 0x87,0x36, 0x14,0x18, 0x00,0x00,
-0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x36, 0x14,0x18, 0x87,0x36, 0x14,0x18, 0xF0,0x05,
-0x6F,0x50, 0xF7,0x04, 0x32,0xB8, 0x95,0x96, 0xFF,0xF4, 0xC7,0x38, 0x60,0x00, 0xF7,0x05,
-0x32,0xB8, 0xF7,0x04, 0x32,0xBC, 0xF4,0x86, 0x2F,0xF8, 0x07,0x38, 0x00,0x01, 0xF7,0x05,
-0x32,0xBC, 0xF7,0x04, 0x32,0xBC, 0xF4,0x85, 0x32,0xD4, 0xF7,0x06, 0x0C,0x3E, 0xC0,0x7E,
-0x74,0x00, 0xE6,0x00, 0x35,0x1C, 0x00,0x00, 0x00,0x01, 0xC0,0x7E, 0x74,0x00, 0xE6,0x00,
-0x35,0x0D, 0x00,0x00, 0x00,0x01, 0xF7,0x06, 0x0C,0x3E, 0xC7,0x7C, 0x74,0x00, 0x20,0x3A,
-0x00,0x10, 0xE6,0x00, 0x3B,0x70, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x32,0xE4, 0xFF,0x82,
-0x00,0x10, 0xF5,0x84, 0x6F,0x58, 0x07,0x38, 0x00,0x01, 0x20,0x2E, 0x00,0x21, 0xE2,0x00,
-0x35,0x78, 0xF7,0x05, 0x32,0xE4, 0xF7,0x04, 0x2D,0x38, 0xF6,0x86, 0x2C,0x28, 0x06,0x38,
-0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0x20,0x32, 0x00,0x44, 0xE6,0x00,
-0x35,0x6C, 0xB5,0xBA, 0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF4,0x82, 0x00,0x22, 0xE0,0x00,
-0x35,0x7C, 0xF4,0x85, 0x6F,0x58, 0xF0,0x05, 0x6F,0x54, 0xF5,0x84, 0x32,0xC0, 0x00,0x00,
-0x00,0x01, 0x90,0x2E, 0x00,0x04, 0x87,0x2E, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x02, 0xE6,0x00, 0x36,0xA8, 0x00,0x00, 0x00,0x01, 0x87,0x02, 0xFF,0x38, 0x04,0xAC,
-0x0E,0xF4, 0x94,0x96, 0xFF,0xEC, 0xF7,0x05, 0x7A,0x68, 0x94,0x93, 0xFF,0xFC, 0x95,0x96,
-0xFF,0xDC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x43,0xA0, 0x97,0x93, 0xFF,0xFC, 0x85,0x96,
-0xFF,0xDC, 0x20,0x22, 0x00,0x00, 0xE6,0x00, 0x36,0x64, 0x00,0x00, 0x00,0x01, 0x86,0x2E,
-0x0E,0xF8, 0x00,0x00, 0x00,0x01, 0x20,0x32, 0x00,0x10, 0xE2,0x00, 0x36,0x01, 0xF4,0x82,
-0x00,0x4C, 0x87,0x2E, 0x0F,0x00, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x2E,
-0x0F,0x00, 0x87,0x2E, 0x0F,0x00, 0xE0,0x00, 0x36,0x64, 0x00,0x00, 0x00,0x01, 0x94,0x93,
-0xFF,0xFC, 0xF4,0x86, 0x7A,0x28, 0x94,0x93, 0xFF,0xFC, 0x76,0xB1, 0x00,0x02, 0xC6,0xB4,
-0x60,0x00, 0x77,0x35, 0x00,0x04, 0xC7,0x38, 0x6A,0x00, 0x84,0x96, 0xFF,0xEC, 0xC7,0x38,
-0x60,0x00, 0xC7,0x38, 0x48,0x00, 0x07,0x38, 0x00,0x10, 0x97,0x13, 0xFF,0xFC, 0x95,0x96,
-0xFF,0xDC, 0x96,0x16, 0xFF,0xD8, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x26,0xF8, 0x97,0x93,
-0xFF,0xFC, 0x86,0x16, 0xFF,0xD8, 0x85,0x96, 0xFF,0xDC, 0x06,0x30, 0x00,0x01, 0x20,0x32,
-0x00,0x11, 0xE6,0x00, 0x36,0x60, 0x00,0x00, 0x00,0x01, 0xF6,0x02, 0x00,0x00, 0x96,0x2E,
-0x0E,0xF8, 0xF7,0x04, 0x32,0xC0, 0xF4,0x86, 0xE0,0x30, 0xC0,0x3A, 0x4A,0x00, 0xE6,0x00,
-0x36,0xA8, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0xE0,0x18, 0x00,0x00, 0x00,0x01, 0x77,0xB8,
-0x00,0x1E, 0x70,0x3E, 0xFF,0xE1, 0xE6,0x00, 0x36,0xA9, 0x00,0x00, 0x00,0x01, 0x0F,0x81,
-0x40,0x00, 0xF7,0x04, 0x79,0xC8, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0xF7,0x05,
-0x79,0xC8, 0xF7,0x04, 0x79,0xC8, 0xF7,0x04, 0x71,0xC4, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x36,0xE5, 0xF6,0x86, 0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00,
-0x00,0x01, 0x06,0x38, 0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF4,0x82,
-0x00,0x0A, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0x36,0xE4, 0xB4,0xBA, 0x68,0x02, 0xF0,0x05,
-0x2D,0x38, 0xF7,0x04, 0x71,0xD4, 0xF6,0x84, 0x71,0xCC, 0x07,0x38, 0x00,0x01, 0xC0,0x3A,
-0x6A,0x00, 0xE6,0x00, 0x37,0x00, 0xF7,0x05, 0x71,0xD4, 0xF0,0x05, 0x71,0xD4, 0xF6,0x84,
-0x71,0xD4, 0xF7,0x04, 0x71,0xD0, 0xF0,0x05, 0x71,0xC4, 0xC0,0x36, 0x72,0x00, 0x47,0x0C,
-0x00,0x01, 0xF6,0x84, 0x32,0xD0, 0x00,0x00, 0x00,0x01, 0x20,0x36, 0x00,0x00, 0xE6,0x00,
-0x3A,0xC1, 0xF7,0x05, 0x71,0xC8, 0xF7,0x04, 0x71,0x98, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x3A,0x61, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x75,0xEC, 0x00,0x00,
-0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x3A,0x60, 0x00,0x00, 0x00,0x01, 0xF7,0x04,
-0x75,0xF0, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x3A,0x60, 0x00,0x00,
-0x00,0x01, 0xE0,0x00, 0x3A,0xC4, 0xF4,0x86, 0x31,0x9C, 0xF0,0x05, 0x7A,0x88, 0x90,0x02,
-0xFF,0x38, 0xF0,0x05, 0x6F,0x50, 0x90,0x02, 0xFF,0x80, 0xF7,0x04, 0x32,0xC4, 0xF4,0x86,
-0x32,0x28, 0xF4,0x85, 0x32,0xD4, 0xF6,0x04, 0x32,0xC8, 0xF6,0x84, 0x7A,0x2C, 0xF5,0x02,
-0x00,0x00, 0x07,0x38, 0x00,0x24, 0xF7,0x05, 0x7A,0x98, 0x20,0x32, 0x00,0x00, 0xE6,0x00,
-0x37,0xBD, 0xF6,0x05, 0x7A,0x90, 0xC0,0x2A, 0x5A,0x00, 0xE6,0x00, 0x3B,0x08, 0xC0,0x32,
-0x6A,0x00, 0xEE,0x00, 0x3B,0x09, 0x00,0x00, 0x00,0x01, 0xF6,0x84, 0x32,0xC0, 0x00,0x00,
-0x00,0x01, 0x87,0x36, 0x14,0x10, 0x00,0x00, 0x00,0x01, 0xC7,0x38, 0x60,0x00, 0x97,0x36,
-0x14,0x10, 0x87,0x36, 0x14,0x18, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x36,
-0x14,0x18, 0x87,0x36, 0x14,0x18, 0xF7,0x04, 0x32,0xB8, 0x00,0x00, 0x00,0x01, 0xC7,0x38,
-0x60,0x00, 0xF7,0x05, 0x32,0xB8, 0xF7,0x04, 0x32,0xBC, 0x00,0x00, 0x00,0x01, 0x07,0x38,
-0x00,0x01, 0xF7,0x05, 0x32,0xBC, 0xF7,0x04, 0x32,0xBC, 0x20,0x32, 0x00,0x00, 0xE6,0x00,
-0x38,0x2D, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x32,0xE0, 0xF5,0x05, 0x7A,0x70, 0x07,0x38,
-0x00,0x01, 0xE0,0x00, 0x38,0x30, 0xF7,0x05, 0x32,0xE0, 0xF5,0x05, 0x7A,0x70, 0xF5,0x84,
-0x6F,0x58, 0x00,0x00, 0x00,0x01, 0x20,0x2E, 0x00,0x21, 0xE2,0x00, 0x38,0x74, 0xF6,0x86,
-0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38, 0x00,0x01, 0xF6,0x05,
-0x2D,0x38, 0x77,0x39, 0x00,0x02, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0x38,0x68, 0xB5,0xBA,
-0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF4,0x82, 0x00,0x22, 0xE0,0x00, 0x38,0x78, 0xF4,0x85,
-0x6F,0x58, 0xF0,0x05, 0x6F,0x54, 0xF5,0x84, 0x32,0xC0, 0x00,0x00, 0x00,0x01, 0x90,0x2E,
-0x00,0x04, 0x87,0x2E, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x02, 0xE6,0x00,
-0x39,0xA4, 0x00,0x00, 0x00,0x01, 0x87,0x02, 0xFF,0x38, 0x04,0xAC, 0x0E,0xF4, 0x94,0x96,
-0xFF,0xE4, 0xF7,0x05, 0x7A,0x68, 0x94,0x93, 0xFF,0xFC, 0x95,0x96, 0xFF,0xDC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x43,0xA0, 0x97,0x93, 0xFF,0xFC, 0x85,0x96, 0xFF,0xDC, 0x20,0x22,
-0x00,0x00, 0xE6,0x00, 0x39,0x60, 0x00,0x00, 0x00,0x01, 0x86,0x2E, 0x0E,0xF8, 0x00,0x00,
-0x00,0x01, 0x20,0x32, 0x00,0x10, 0xE2,0x00, 0x38,0xFD, 0xF4,0x82, 0x00,0x4C, 0x87,0x2E,
-0x0F,0x00, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x2E, 0x0F,0x00, 0x87,0x2E,
-0x0F,0x00, 0xE0,0x00, 0x39,0x60, 0x00,0x00, 0x00,0x01, 0x94,0x93, 0xFF,0xFC, 0xF4,0x86,
-0x7A,0x28, 0x94,0x93, 0xFF,0xFC, 0x76,0xB1, 0x00,0x02, 0xC6,0xB4, 0x60,0x00, 0x77,0x35,
-0x00,0x04, 0xC7,0x38, 0x6A,0x00, 0x84,0x96, 0xFF,0xE4, 0xC7,0x38, 0x60,0x00, 0xC7,0x38,
-0x48,0x00, 0x07,0x38, 0x00,0x10, 0x97,0x13, 0xFF,0xFC, 0x95,0x96, 0xFF,0xDC, 0x96,0x16,
-0xFF,0xD8, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x26,0xF8, 0x97,0x93, 0xFF,0xFC, 0x86,0x16,
-0xFF,0xD8, 0x85,0x96, 0xFF,0xDC, 0x06,0x30, 0x00,0x01, 0x20,0x32, 0x00,0x11, 0xE6,0x00,
-0x39,0x5C, 0x00,0x00, 0x00,0x01, 0xF6,0x02, 0x00,0x00, 0x96,0x2E, 0x0E,0xF8, 0xF7,0x04,
-0x32,0xC0, 0xF4,0x86, 0xE0,0x30, 0xC0,0x3A, 0x4A,0x00, 0xE6,0x00, 0x39,0xA4, 0x00,0x00,
-0x00,0x01, 0xF7,0x04, 0xE0,0x18, 0x00,0x00, 0x00,0x01, 0x77,0xB8, 0x00,0x1E, 0x70,0x3E,
-0xFF,0xE1, 0xE6,0x00, 0x39,0xA5, 0x00,0x00, 0x00,0x01, 0x0F,0x81, 0x40,0x00, 0xF7,0x04,
-0x79,0xC8, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0xF7,0x05, 0x79,0xC8, 0xF7,0x04,
-0x79,0xC8, 0xF7,0x04, 0x71,0xC4, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x39,0xE1, 0xF6,0x86, 0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38,
-0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF4,0x82, 0x00,0x0A, 0x20,0x32,
-0x00,0x44, 0xE6,0x00, 0x39,0xE0, 0xB4,0xBA, 0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF7,0x04,
-0x71,0xD4, 0xF6,0x84, 0x71,0xCC, 0x07,0x38, 0x00,0x01, 0xC0,0x3A, 0x6A,0x00, 0xE6,0x00,
-0x39,0xFC, 0xF7,0x05, 0x71,0xD4, 0xF0,0x05, 0x71,0xD4, 0xF6,0x84, 0x71,0xD4, 0xF7,0x04,
-0x71,0xD0, 0xF0,0x05, 0x71,0xC4, 0xC0,0x36, 0x72,0x00, 0x47,0x0C, 0x00,0x01, 0xF6,0x84,
-0x32,0xD0, 0x00,0x00, 0x00,0x01, 0x20,0x36, 0x00,0x00, 0xE6,0x00, 0x3A,0xC1, 0xF7,0x05,
-0x71,0xC8, 0xF7,0x04, 0x71,0x98, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x3A,0x61, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x75,0xEC, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x3A,0x60, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x75,0xF0, 0x00,0x00,
-0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x3A,0xB9, 0x00,0x00, 0x00,0x01, 0xF5,0x84,
-0x76,0xF8, 0x00,0x00, 0x00,0x01, 0x20,0x2E, 0x00,0x21, 0xE2,0x00, 0x3A,0xAC, 0xF6,0x86,
-0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38, 0x00,0x01, 0xF6,0x05,
-0x2D,0x38, 0x77,0x39, 0x00,0x02, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0x3A,0x98, 0xB5,0xBA,
-0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF4,0x82, 0x00,0x22, 0xF4,0x85, 0x76,0xF8, 0xF4,0x84,
-0x77,0x00, 0xE0,0x00, 0x3A,0xB0, 0xF4,0x85, 0x76,0xFC, 0xF0,0x05, 0x76,0xFC, 0xE0,0x00,
-0x3A,0xC0, 0xF0,0x05, 0x7A,0x78, 0xE0,0x00, 0x3A,0xC4, 0xF4,0x86, 0x31,0x9C, 0xF4,0x86,
-0x2E,0xE0, 0xF4,0x85, 0x32,0xD4, 0xF7,0x04, 0x71,0xC8, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x3B,0x70, 0xF6,0x86, 0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00,
-0x00,0x01, 0x06,0x38, 0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF4,0x82,
-0x00,0x09, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0x3B,0x70, 0xB4,0xBA, 0x68,0x02, 0xE0,0x00,
-0x3B,0x70, 0xF0,0x05, 0x2D,0x38, 0xF7,0x04, 0x7A,0x90, 0x00,0x00, 0x00,0x01, 0xC0,0x3A,
-0x6A,0x00, 0xEE,0x00, 0x3B,0x29, 0xC5,0xB4, 0x00,0x00, 0xC7,0x38, 0x5A,0x00, 0xE0,0x00,
-0x3B,0x30, 0xF7,0x05, 0x7A,0x90, 0xC5,0xB8, 0x00,0x00, 0xF0,0x05, 0x7A,0x90, 0xF7,0x04,
-0x7A,0x88, 0xF6,0x86, 0x7A,0x28, 0x76,0x39, 0x00,0x03, 0xA6,0xB2, 0x68,0x02, 0x07,0x38,
-0x00,0x01, 0xF7,0x05, 0x7A,0x88, 0xF7,0x04, 0x7A,0x98, 0x96,0x96, 0xFF,0xF4, 0x96,0x82,
-0xFF,0x3C, 0xF4,0x84, 0x7A,0x98, 0xF6,0x86, 0x7A,0x2C, 0xC7,0x38, 0x58,0x00, 0x94,0x82,
-0xFF,0x40, 0x95,0x82, 0xFF,0x44, 0xB5,0xB2, 0x68,0x02, 0xF7,0x05, 0x7A,0x98, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0x18, 0xF5,0x04,
-0x7A,0x88, 0xF7,0x06, 0x7A,0x2C, 0xF5,0x84, 0x7A,0x90, 0x76,0xA9, 0x00,0x03, 0xA6,0xB6,
-0x70,0x02, 0x20,0x2E, 0x00,0x00, 0xE6,0x00, 0x3B,0xCD, 0x00,0x00, 0x00,0x01, 0xF7,0x04,
-0x7A,0xA0, 0x00,0x00, 0x00,0x01, 0xC0,0x2A, 0x72,0x00, 0xE6,0x00, 0x3F,0x18, 0xC0,0x2E,
-0x6A,0x00, 0xEE,0x00, 0x3F,0x19, 0x00,0x00, 0x00,0x01, 0xF6,0x84, 0x32,0xC0, 0xF6,0x04,
-0x32,0xC8, 0x87,0x36, 0x14,0x10, 0x00,0x00, 0x00,0x01, 0xC7,0x38, 0x60,0x00, 0x97,0x36,
-0x14,0x10, 0x87,0x36, 0x14,0x18, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x36,
-0x14,0x18, 0x87,0x36, 0x14,0x18, 0xF7,0x04, 0x32,0xB8, 0x00,0x00, 0x00,0x01, 0xC7,0x38,
-0x60,0x00, 0xF7,0x05, 0x32,0xB8, 0xF7,0x04, 0x32,0xBC, 0x00,0x00, 0x00,0x01, 0x07,0x38,
-0x00,0x01, 0xF7,0x05, 0x32,0xBC, 0xF7,0x04, 0x32,0xBC, 0x20,0x2E, 0x00,0x00, 0xE6,0x00,
-0x3C,0x3D, 0xF6,0x82, 0x00,0x00, 0xF7,0x04, 0x32,0xE0, 0xF6,0x85, 0x7A,0x70, 0x07,0x38,
-0x00,0x01, 0xE0,0x00, 0x3C,0x40, 0xF7,0x05, 0x32,0xE0, 0xF5,0x05, 0x7A,0x70, 0xF5,0x84,
-0x6F,0x58, 0x00,0x00, 0x00,0x01, 0x20,0x2E, 0x00,0x21, 0xE2,0x00, 0x3C,0x84, 0xF6,0x86,
-0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38, 0x00,0x01, 0xF6,0x05,
-0x2D,0x38, 0x77,0x39, 0x00,0x02, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0x3C,0x78, 0xB5,0xBA,
-0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF4,0x82, 0x00,0x22, 0xE0,0x00, 0x3C,0x88, 0xF4,0x85,
-0x6F,0x58, 0xF0,0x05, 0x6F,0x54, 0xF5,0x84, 0x32,0xC0, 0x00,0x00, 0x00,0x01, 0x90,0x2E,
-0x00,0x04, 0x87,0x2E, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x02, 0xE6,0x00,
-0x3D,0xB4, 0x00,0x00, 0x00,0x01, 0x87,0x02, 0xFF,0x38, 0x04,0xAC, 0x0E,0xF4, 0x94,0x96,
-0xFF,0xEC, 0xF7,0x05, 0x7A,0x68, 0x94,0x93, 0xFF,0xFC, 0x95,0x96, 0xFF,0xE4, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x43,0xA0, 0x97,0x93, 0xFF,0xFC, 0x85,0x96, 0xFF,0xE4, 0x20,0x22,
-0x00,0x00, 0xE6,0x00, 0x3D,0x70, 0x00,0x00, 0x00,0x01, 0x86,0x2E, 0x0E,0xF8, 0x00,0x00,
-0x00,0x01, 0x20,0x32, 0x00,0x10, 0xE2,0x00, 0x3D,0x0D, 0xF4,0x82, 0x00,0x4C, 0x87,0x2E,
-0x0F,0x00, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x2E, 0x0F,0x00, 0x87,0x2E,
-0x0F,0x00, 0xE0,0x00, 0x3D,0x70, 0x00,0x00, 0x00,0x01, 0x94,0x93, 0xFF,0xFC, 0xF4,0x86,
-0x7A,0x28, 0x94,0x93, 0xFF,0xFC, 0x76,0xB1, 0x00,0x02, 0xC6,0xB4, 0x60,0x00, 0x77,0x35,
-0x00,0x04, 0xC7,0x38, 0x6A,0x00, 0x84,0x96, 0xFF,0xEC, 0xC7,0x38, 0x60,0x00, 0xC7,0x38,
-0x48,0x00, 0x07,0x38, 0x00,0x10, 0x97,0x13, 0xFF,0xFC, 0x95,0x96, 0xFF,0xE4, 0x96,0x16,
-0xFF,0xE0, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x26,0xF8, 0x97,0x93, 0xFF,0xFC, 0x86,0x16,
-0xFF,0xE0, 0x85,0x96, 0xFF,0xE4, 0x06,0x30, 0x00,0x01, 0x20,0x32, 0x00,0x11, 0xE6,0x00,
-0x3D,0x6C, 0x00,0x00, 0x00,0x01, 0xF6,0x02, 0x00,0x00, 0x96,0x2E, 0x0E,0xF8, 0xF7,0x04,
-0x32,0xC0, 0xF4,0x86, 0xE0,0x30, 0xC0,0x3A, 0x4A,0x00, 0xE6,0x00, 0x3D,0xB4, 0x00,0x00,
-0x00,0x01, 0xF7,0x04, 0xE0,0x18, 0x00,0x00, 0x00,0x01, 0x77,0xB8, 0x00,0x1E, 0x70,0x3E,
-0xFF,0xE1, 0xE6,0x00, 0x3D,0xB5, 0x00,0x00, 0x00,0x01, 0x0F,0x81, 0x40,0x00, 0xF7,0x04,
-0x79,0xC8, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0xF7,0x05, 0x79,0xC8, 0xF7,0x04,
-0x79,0xC8, 0xF7,0x04, 0x71,0xC4, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x3D,0xF1, 0xF6,0x86, 0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38,
-0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF4,0x82, 0x00,0x0A, 0x20,0x32,
-0x00,0x44, 0xE6,0x00, 0x3D,0xF0, 0xB4,0xBA, 0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF7,0x04,
-0x71,0xD4, 0xF6,0x84, 0x71,0xCC, 0x07,0x38, 0x00,0x01, 0xC0,0x3A, 0x6A,0x00, 0xE6,0x00,
-0x3E,0x0C, 0xF7,0x05, 0x71,0xD4, 0xF0,0x05, 0x71,0xD4, 0xF6,0x84, 0x71,0xD4, 0xF7,0x04,
-0x71,0xD0, 0xF0,0x05, 0x71,0xC4, 0xC0,0x36, 0x72,0x00, 0x47,0x0C, 0x00,0x01, 0xF6,0x84,
-0x32,0xD0, 0x00,0x00, 0x00,0x01, 0x20,0x36, 0x00,0x00, 0xE6,0x00, 0x3E,0xD1, 0xF7,0x05,
-0x71,0xC8, 0xF7,0x04, 0x71,0x98, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x3E,0x71, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x75,0xEC, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x3E,0x70, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x75,0xF0, 0x00,0x00,
-0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x3E,0xC9, 0x00,0x00, 0x00,0x01, 0xF5,0x84,
-0x76,0xF8, 0x00,0x00, 0x00,0x01, 0x20,0x2E, 0x00,0x21, 0xE2,0x00, 0x3E,0xBC, 0xF6,0x86,
-0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38, 0x00,0x01, 0xF6,0x05,
-0x2D,0x38, 0x77,0x39, 0x00,0x02, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0x3E,0xA8, 0xB5,0xBA,
-0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF4,0x82, 0x00,0x22, 0xF4,0x85, 0x76,0xF8, 0xF4,0x84,
-0x77,0x00, 0xE0,0x00, 0x3E,0xC0, 0xF4,0x85, 0x76,0xFC, 0xF0,0x05, 0x76,0xFC, 0xE0,0x00,
-0x3E,0xD0, 0xF0,0x05, 0x7A,0x78, 0xE0,0x00, 0x3E,0xD4, 0xF4,0x86, 0x31,0x9C, 0xF4,0x86,
-0x2E,0xE0, 0xF4,0x85, 0x32,0xD4, 0xF7,0x04, 0x71,0xC8, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x3F,0x80, 0xF6,0x86, 0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00,
-0x00,0x01, 0x06,0x38, 0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF4,0x82,
-0x00,0x09, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0x3F,0x80, 0xB4,0xBA, 0x68,0x02, 0xE0,0x00,
-0x3F,0x80, 0xF0,0x05, 0x2D,0x38, 0xF7,0x04, 0x7A,0x90, 0x00,0x00, 0x00,0x01, 0xC0,0x3A,
-0x6A,0x00, 0xEE,0x00, 0x3F,0x39, 0xC5,0xB4, 0x00,0x00, 0xC7,0x38, 0x5A,0x00, 0xE0,0x00,
-0x3F,0x40, 0xF7,0x05, 0x7A,0x90, 0xC5,0xB8, 0x00,0x00, 0xF0,0x05, 0x7A,0x90, 0xF7,0x04,
-0x7A,0x88, 0xF6,0x86, 0x7A,0x28, 0x76,0x39, 0x00,0x03, 0xA6,0xB2, 0x68,0x02, 0x07,0x38,
-0x00,0x01, 0xF7,0x05, 0x7A,0x88, 0xF7,0x04, 0x7A,0x98, 0x96,0x96, 0xFF,0xF4, 0x96,0x82,
-0xFF,0x3C, 0xF4,0x84, 0x7A,0x98, 0xF6,0x86, 0x7A,0x2C, 0xC7,0x38, 0x58,0x00, 0x94,0x82,
-0xFF,0x40, 0x95,0x82, 0xFF,0x44, 0xB5,0xB2, 0x68,0x02, 0xF7,0x05, 0x7A,0x98, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0x10, 0xF5,0x84,
-0x6F,0x58, 0x00,0x00, 0x00,0x01, 0x20,0x2E, 0x00,0x21, 0xE2,0x00, 0x3F,0xE4, 0xF6,0x86,
-0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38, 0x00,0x01, 0xF6,0x05,
-0x2D,0x38, 0x77,0x39, 0x00,0x02, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0x3F,0xD8, 0xB5,0xBA,
-0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF5,0x02, 0x00,0x22, 0xE0,0x00, 0x3F,0xE8, 0xF5,0x05,
-0x6F,0x58, 0xF0,0x05, 0x6F,0x54, 0xF5,0x84, 0x32,0xC0, 0x00,0x00, 0x00,0x01, 0x90,0x2E,
-0x00,0x04, 0x87,0x2E, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x02, 0xE6,0x00,
-0x41,0x14, 0x00,0x00, 0x00,0x01, 0x87,0x02, 0xFF,0x38, 0x05,0x2C, 0x0E,0xF4, 0x95,0x16,
-0xFF,0xF4, 0xF7,0x05, 0x7A,0x68, 0x95,0x13, 0xFF,0xFC, 0x95,0x96, 0xFF,0xEC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x43,0xA0, 0x97,0x93, 0xFF,0xFC, 0x85,0x96, 0xFF,0xEC, 0x20,0x22,
-0x00,0x00, 0xE6,0x00, 0x40,0xD0, 0x00,0x00, 0x00,0x01, 0x86,0x2E, 0x0E,0xF8, 0x00,0x00,
-0x00,0x01, 0x20,0x32, 0x00,0x10, 0xE2,0x00, 0x40,0x6D, 0xF5,0x02, 0x00,0x4C, 0x87,0x2E,
-0x0F,0x00, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x2E, 0x0F,0x00, 0x87,0x2E,
-0x0F,0x00, 0xE0,0x00, 0x40,0xD0, 0x00,0x00, 0x00,0x01, 0x95,0x13, 0xFF,0xFC, 0xF5,0x06,
-0x7A,0x28, 0x95,0x13, 0xFF,0xFC, 0x76,0xB1, 0x00,0x02, 0xC6,0xB4, 0x60,0x00, 0x77,0x35,
-0x00,0x04, 0xC7,0x38, 0x6A,0x00, 0x85,0x16, 0xFF,0xF4, 0xC7,0x38, 0x60,0x00, 0xC7,0x38,
-0x50,0x00, 0x07,0x38, 0x00,0x10, 0x97,0x13, 0xFF,0xFC, 0x95,0x96, 0xFF,0xEC, 0x96,0x16,
-0xFF,0xE8, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x26,0xF8, 0x97,0x93, 0xFF,0xFC, 0x86,0x16,
-0xFF,0xE8, 0x85,0x96, 0xFF,0xEC, 0x06,0x30, 0x00,0x01, 0x20,0x32, 0x00,0x11, 0xE6,0x00,
-0x40,0xCC, 0x00,0x00, 0x00,0x01, 0xF6,0x02, 0x00,0x00, 0x96,0x2E, 0x0E,0xF8, 0xF7,0x04,
-0x32,0xC0, 0xF5,0x06, 0xE0,0x30, 0xC0,0x3A, 0x52,0x00, 0xE6,0x00, 0x41,0x14, 0x00,0x00,
-0x00,0x01, 0xF7,0x04, 0xE0,0x18, 0x00,0x00, 0x00,0x01, 0x77,0xB8, 0x00,0x1E, 0x70,0x3E,
-0xFF,0xE1, 0xE6,0x00, 0x41,0x15, 0x00,0x00, 0x00,0x01, 0x0F,0x81, 0x40,0x00, 0xF7,0x04,
-0x79,0xC8, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0xF7,0x05, 0x79,0xC8, 0xF7,0x04,
-0x79,0xC8, 0xF7,0x04, 0x71,0xC4, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x41,0x51, 0xF6,0x86, 0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38,
-0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF5,0x02, 0x00,0x0A, 0x20,0x32,
-0x00,0x44, 0xE6,0x00, 0x41,0x50, 0xB5,0x3A, 0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF7,0x04,
-0x71,0xD4, 0xF6,0x84, 0x71,0xCC, 0x07,0x38, 0x00,0x01, 0xC0,0x3A, 0x6A,0x00, 0xE6,0x00,
-0x41,0x6C, 0xF7,0x05, 0x71,0xD4, 0xF0,0x05, 0x71,0xD4, 0xF6,0x84, 0x71,0xD4, 0xF7,0x04,
-0x71,0xD0, 0xF0,0x05, 0x71,0xC4, 0xC0,0x36, 0x72,0x00, 0x47,0x0C, 0x00,0x01, 0xF6,0x84,
-0x32,0xD0, 0x00,0x00, 0x00,0x01, 0x20,0x36, 0x00,0x00, 0xE6,0x00, 0x42,0x31, 0xF7,0x05,
-0x71,0xC8, 0xF7,0x04, 0x71,0x98, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x41,0xD1, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x75,0xEC, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x41,0xD0, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x75,0xF0, 0x00,0x00,
-0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x42,0x29, 0x00,0x00, 0x00,0x01, 0xF5,0x84,
-0x76,0xF8, 0x00,0x00, 0x00,0x01, 0x20,0x2E, 0x00,0x21, 0xE2,0x00, 0x42,0x1C, 0xF6,0x86,
-0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38, 0x00,0x01, 0xF6,0x05,
-0x2D,0x38, 0x77,0x39, 0x00,0x02, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0x42,0x08, 0xB5,0xBA,
-0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF5,0x02, 0x00,0x22, 0xF5,0x05, 0x76,0xF8, 0xF5,0x04,
-0x77,0x00, 0xE0,0x00, 0x42,0x20, 0xF5,0x05, 0x76,0xFC, 0xF0,0x05, 0x76,0xFC, 0xE0,0x00,
-0x42,0x30, 0xF0,0x05, 0x7A,0x78, 0xE0,0x00, 0x42,0x34, 0xF5,0x06, 0x31,0x9C, 0xF5,0x06,
-0x2E,0xE0, 0xF5,0x05, 0x32,0xD4, 0xF7,0x04, 0x71,0xC8, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x42,0x74, 0xF6,0x86, 0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00,
-0x00,0x01, 0x06,0x38, 0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF5,0x02,
-0x00,0x09, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0x42,0x74, 0xB5,0x3A, 0x68,0x02, 0xF0,0x05,
-0x2D,0x38, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF7,0x06,
-0x32,0xD4, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06, 0x2E,0xE0, 0x97,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x14,0xF4, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06, 0x32,0xD4, 0x97,0x13,
-0xFF,0xFC, 0xF7,0x06, 0x2F,0x6C, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x14,0xF4, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06, 0x32,0xD4, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06,
-0x2F,0xF8, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x14,0xF4, 0x97,0x93,
-0xFF,0xFC, 0xF7,0x06, 0x32,0xD4, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06, 0x30,0x84, 0x97,0x13,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x14,0xF4, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06,
-0x32,0xD4, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06, 0x31,0x10, 0x97,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x14,0xF4, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06, 0x32,0xD4, 0x97,0x13,
-0xFF,0xFC, 0xF7,0x06, 0x31,0x9C, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x14,0xF4, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06, 0x32,0xD4, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06,
-0x32,0x28, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x14,0xF4, 0x97,0x93,
-0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x87,0x16,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x86,0xBA, 0x00,0x00, 0x87,0x3A, 0x00,0x04, 0x00,0x00,
-0x00,0x01, 0xC0,0x36, 0x72,0x00, 0x44,0x0C, 0x00,0x01, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x04, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x85,0x96, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x86,0x2E,
-0x00,0x00, 0x86,0xAE, 0x00,0x04, 0x20,0x32, 0x00,0x10, 0xE2,0x00, 0x43,0xD0, 0x00,0x00,
-0x00,0x01, 0x20,0x36, 0x00,0x10, 0xE2,0x00, 0x43,0xED, 0x07,0x34, 0x00,0x01, 0x87,0x2E,
-0x00,0x0C, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x2E, 0x00,0x0C, 0x87,0x2E,
-0x00,0x0C, 0xE0,0x00, 0x44,0x14, 0xF4,0x02, 0x00,0x00, 0xC0,0x3A, 0x62,0x00, 0xE6,0x00,
-0x44,0x11, 0xF4,0x02, 0x00,0x00, 0x20,0x36, 0x00,0x10, 0xE6,0x00, 0x44,0x14, 0x00,0x00,
-0x00,0x01, 0x20,0x32, 0x00,0x00, 0xE6,0x00, 0x44,0x14, 0x00,0x00, 0x00,0x01, 0xF4,0x02,
-0x00,0x01, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x04, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF7,0x02,
-0x00,0x01, 0xF7,0x05, 0x35,0x24, 0xF7,0x04, 0x6F,0x44, 0x00,0x00, 0x00,0x01, 0xF7,0x05,
-0x35,0x28, 0xF7,0x06, 0x32,0xF4, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06, 0x35,0x30, 0x97,0x13,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x15,0x48, 0x97,0x93, 0xFF,0xFC, 0xF7,0x02,
-0x45,0x04, 0x97,0x13, 0xFF,0xFC, 0xF7,0x02, 0x00,0x0D, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06,
-0x32,0xF4, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93,
-0xFF,0xFC, 0xF7,0x02, 0x4A,0x04, 0x97,0x13, 0xFF,0xFC, 0xF7,0x02, 0x00,0x0F, 0x97,0x13,
-0xFF,0xFC, 0xF7,0x06, 0x33,0x80, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF7,0x02, 0x4E,0xEC, 0x97,0x13, 0xFF,0xFC, 0xF7,0x02,
-0x00,0x08, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06, 0x34,0x0C, 0x97,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF7,0x02, 0x57,0x64, 0x97,0x13,
-0xFF,0xFC, 0xF7,0x02, 0x00,0x07, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06, 0x34,0x98, 0x97,0x13,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0x14, 0xF7,0x04,
-0x75,0xF8, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x45,0x2D, 0xF6,0x86,
-0x75,0xF8, 0xE0,0x00, 0x45,0x44, 0xF7,0x02, 0x00,0x00, 0xF7,0x04, 0x76,0x04, 0x00,0x00,
-0x00,0x01, 0x77,0x39, 0x00,0x02, 0xC7,0x38, 0x68,0x00, 0x87,0x3A, 0x00,0x18, 0x00,0x00,
-0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x45,0x5C, 0xF7,0x05, 0x35,0x48, 0xF4,0x86,
-0x33,0x80, 0xE0,0x00, 0x49,0xF0, 0xF4,0x85, 0x35,0x30, 0xF7,0x04, 0x6F,0x54, 0x00,0x00,
-0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x45,0x80, 0xF4,0x82, 0x00,0x08, 0xF4,0x82,
-0x00,0x01, 0xF4,0x85, 0x6F,0x54, 0xE0,0x00, 0x45,0x88, 0xF7,0x02, 0x00,0x01, 0xF4,0x85,
-0x6F,0x58, 0xF7,0x02, 0x00,0x00, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x45,0xA0, 0xF4,0x82,
-0x00,0x04, 0xF4,0x86, 0x34,0x0C, 0xE0,0x00, 0x49,0xF0, 0xF4,0x85, 0x35,0x30, 0xF6,0x84,
-0x35,0x48, 0xF6,0x04, 0x35,0x2C, 0xF4,0xB7, 0x28,0x00, 0x07,0x34, 0x00,0x02, 0xF4,0x82,
-0x00,0x01, 0xF4,0xBB, 0x28,0x00, 0x87,0x32, 0x00,0x8C, 0xF4,0x82, 0x00,0x01, 0x97,0x36,
-0x00,0x18, 0x87,0x32, 0x00,0x90, 0xF4,0x85, 0x6F,0x50, 0x97,0x36, 0x00,0x04, 0x84,0xB2,
-0x00,0x84, 0x00,0x00, 0x00,0x01, 0x94,0xB6, 0x00,0x10, 0x84,0xB2, 0x00,0x88, 0x00,0x00,
-0x00,0x01, 0x94,0xB6, 0x00,0x14, 0x84,0xB6, 0x00,0x10, 0x00,0x00, 0x00,0x01, 0x94,0xB6,
-0x00,0x08, 0x84,0xB6, 0x00,0x14, 0x00,0x00, 0x00,0x01, 0x94,0xB6, 0x00,0x0C, 0x84,0xB2,
-0x00,0x98, 0x00,0x00, 0x00,0x01, 0xF4,0x85, 0x35,0x54, 0xF4,0x82, 0x00,0x01, 0x94,0x82,
-0xFF,0x80, 0xF5,0x04, 0x35,0x54, 0xF4,0x86, 0x34,0x98, 0xF4,0x85, 0x35,0x30, 0x95,0x02,
-0xFF,0x38, 0x85,0xB2, 0x00,0x00, 0x06,0xB4, 0x00,0x24, 0x95,0x82, 0xFF,0x3C, 0x96,0x82,
-0xFF,0x40, 0x87,0x32, 0x00,0x04, 0xF6,0x85, 0x35,0x50, 0x97,0x02, 0xFF,0x44, 0x86,0xB2,
-0x00,0x04, 0xF0,0x05, 0x35,0x4C, 0xF7,0x04, 0x35,0x40, 0x95,0x16, 0xFF,0xF4, 0x95,0x96,
-0xFF,0xF4, 0xC7,0x38, 0x68,0x00, 0xF7,0x05, 0x35,0x40, 0xF5,0x84, 0x35,0x28, 0x86,0xB2,
-0x00,0x04, 0x87,0x2E, 0x14,0x14, 0x00,0x00, 0x00,0x01, 0xC7,0x38, 0x68,0x00, 0x97,0x2E,
-0x14,0x14, 0x87,0x32, 0x00,0x80, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x01, 0xEE,0x00,
-0x49,0xF0, 0xF7,0x06, 0x0C,0x3E, 0xC0,0x7E, 0x74,0x00, 0xE6,0x00, 0x46,0xA4, 0x00,0x00,
-0x00,0x01, 0xC0,0x7E, 0x74,0x00, 0xE6,0x00, 0x46,0x95, 0x00,0x00, 0x00,0x01, 0xF7,0x06,
-0x0C,0x3E, 0xC7,0x7C, 0x74,0x00, 0x20,0x3A, 0x00,0x10, 0xE6,0x00, 0x49,0xF0, 0x00,0x00,
-0x00,0x01, 0xFF,0x82, 0x00,0x10, 0x86,0x82, 0xFF,0x38, 0xF7,0x04, 0x35,0x58, 0xF5,0x84,
-0x6F,0x58, 0xF6,0x85, 0x35,0x54, 0x07,0x38, 0x00,0x01, 0x20,0x2E, 0x00,0x21, 0xE2,0x00,
-0x47,0x08, 0xF7,0x05, 0x35,0x58, 0xF7,0x04, 0x2D,0x38, 0xF6,0x86, 0x2C,0x28, 0x06,0x38,
-0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0x20,0x32, 0x00,0x44, 0xE6,0x00,
-0x46,0xFC, 0xB5,0xBA, 0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF4,0x82, 0x00,0x22, 0xE0,0x00,
-0x47,0x0C, 0xF4,0x85, 0x6F,0x58, 0xF0,0x05, 0x6F,0x54, 0xF6,0x84, 0x35,0x2C, 0x00,0x00,
-0x00,0x01, 0x87,0x36, 0x00,0x94, 0xC4,0x84, 0x00,0x00, 0xC0,0x3A, 0x4A,0x00, 0xE6,0x00,
-0x47,0x71, 0x00,0x00, 0x00,0x01, 0x86,0x36, 0x00,0x94, 0xF6,0x84, 0x35,0x54, 0x00,0x00,
-0x00,0x01, 0x76,0xB4, 0xFF,0xF0, 0xF7,0x04, 0x35,0x54, 0x96,0x96, 0xFF,0xF4, 0x47,0x39,
-0x00,0x00, 0x97,0x16, 0xFF,0xF0, 0xC6,0xB4, 0x70,0x00, 0xF7,0x04, 0x35,0x48, 0x77,0xB4,
-0x00,0x0F, 0x70,0x3E, 0xFF,0xE1, 0x07,0x38, 0x00,0x24, 0xE6,0x00, 0x47,0x69, 0xC6,0x38,
-0x60,0x00, 0x06,0xB4, 0x00,0x01, 0xC7,0x04, 0x6E,0x00, 0xF7,0x33, 0x28,0x00, 0xF6,0x84,
-0x35,0x44, 0x00,0x00, 0x00,0x01, 0x87,0x36, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x0F, 0xE2,0x00, 0x47,0xBD, 0x07,0x38, 0x00,0x01, 0x87,0x36, 0x00,0x0C, 0x00,0x00,
-0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x36, 0x00,0x0C, 0x87,0x36, 0x00,0x0C, 0xE0,0x00,
-0x47,0xD0, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x35,0x28, 0xF6,0x82, 0x00,0x01, 0x07,0x38,
-0x00,0x08, 0xE0,0x00, 0x49,0x68, 0xF7,0x05, 0x35,0x44, 0x20,0x3A, 0x00,0x10, 0xE6,0x00,
-0x47,0xCC, 0x00,0x00, 0x00,0x01, 0xF7,0x02, 0x00,0x00, 0x97,0x36, 0x00,0x04, 0xF7,0x04,
-0x35,0x3C, 0xF6,0x84, 0x35,0x28, 0x07,0x38, 0x00,0x01, 0xF7,0x05, 0x35,0x3C, 0xF7,0x04,
-0x35,0x3C, 0x87,0x36, 0x14,0x1C, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x36,
-0x14,0x1C, 0xF7,0x04, 0x76,0x04, 0x86,0xB6, 0x14,0x1C, 0xF6,0x04, 0x75,0xFC, 0x07,0x38,
-0x00,0x01, 0xF6,0x84, 0x76,0x00, 0x00,0x00, 0x00,0x01, 0xC0,0x3A, 0x6A,0x00, 0xE6,0x00,
-0x48,0x1C, 0xF7,0x05, 0x76,0x04, 0xF0,0x05, 0x76,0x04, 0xF6,0x84, 0x76,0x04, 0xF7,0x04,
-0x76,0x08, 0xF0,0x05, 0x75,0xFC, 0xC0,0x36, 0x72,0x00, 0x47,0x0C, 0x00,0x01, 0x20,0x32,
-0x00,0x00, 0xE6,0x00, 0x48,0x81, 0xF7,0x05, 0x75,0xF8, 0xF7,0x04, 0x76,0x48, 0xF4,0x86,
-0x72,0x18, 0xC0,0x3A, 0x4A,0x00, 0x47,0x0C, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x48,0x81, 0xF6,0x86, 0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38,
-0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF4,0x82, 0x00,0x0E, 0x20,0x32,
-0x00,0x44, 0xE6,0x00, 0x48,0x80, 0xB4,0xBA, 0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF5,0x02,
-0x00,0x00, 0x20,0x2A, 0x00,0x02, 0xEE,0x00, 0x49,0x68, 0xF6,0x82, 0x00,0x00, 0xF6,0x84,
-0x35,0x28, 0x00,0x00, 0x00,0x01, 0x87,0x36, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x02, 0xE6,0x00, 0x49,0x3C, 0x05,0xB4, 0x00,0x08, 0x95,0x93, 0xFF,0xFC, 0x95,0x16,
-0xFF,0xEC, 0x95,0x96, 0xFF,0xE8, 0x96,0x96, 0xFF,0xE4, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x5E,0xDC, 0x97,0x93, 0xFF,0xFC, 0x85,0x16, 0xFF,0xEC, 0x85,0x96, 0xFF,0xE8, 0x86,0x96,
-0xFF,0xE4, 0x20,0x22, 0x00,0x00, 0xE6,0x00, 0x49,0x2C, 0xF7,0x02, 0x00,0x00, 0x86,0x36,
-0x00,0x0C, 0x00,0x00, 0x00,0x01, 0x20,0x32, 0x00,0x0F, 0xE2,0x00, 0x49,0x11, 0x00,0x00,
-0x00,0x01, 0x87,0x36, 0x00,0x14, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x36,
-0x00,0x14, 0x87,0x36, 0x00,0x14, 0xE0,0x00, 0x49,0x2C, 0xF7,0x02, 0x00,0x00, 0x76,0xB1,
-0x00,0x02, 0xC6,0xB4, 0x60,0x00, 0x77,0x35, 0x00,0x05, 0xC7,0x38, 0x6A,0x00, 0xC7,0x38,
-0x60,0x00, 0x07,0x38, 0x00,0x10, 0xC7,0x2C, 0x70,0x00, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x47,0xA8, 0xF7,0x05, 0x35,0x2C, 0xF6,0x84, 0x35,0x28, 0xF7,0x04, 0x6F,0x4C, 0x00,0x00,
-0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0x49,0x5C, 0x07,0x34, 0x14,0x94, 0xF4,0x84,
-0x6F,0x44, 0xE0,0x00, 0x49,0x60, 0xF4,0x85, 0x35,0x28, 0xF7,0x05, 0x35,0x28, 0xE0,0x00,
-0x48,0x84, 0x05,0x28, 0x00,0x01, 0x20,0x36, 0x00,0x00, 0xE6,0x00, 0x49,0xA1, 0xF6,0x86,
-0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38, 0x00,0x01, 0xF6,0x05,
-0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF4,0x82, 0x00,0x0D, 0x20,0x32, 0x00,0x44, 0xE6,0x00,
-0x49,0xA8, 0xB4,0xBA, 0x68,0x02, 0xE0,0x00, 0x49,0xA8, 0xF0,0x05, 0x2D,0x38, 0xF4,0x82,
-0x00,0x01, 0xF4,0x85, 0x35,0x24, 0xF6,0x84, 0x35,0x28, 0xF7,0x04, 0x6F,0x44, 0xF4,0x86,
-0x32,0xF4, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0x49,0xF0, 0xF4,0x85, 0x35,0x30, 0xF7,0x04,
-0xE0,0x18, 0x00,0x00, 0x00,0x01, 0x77,0xB8, 0x00,0x1F, 0x70,0x3E, 0xFF,0xE1, 0xE6,0x00,
-0x49,0xF1, 0x00,0x00, 0x00,0x01, 0x0F,0x81, 0x40,0x00, 0xF7,0x04, 0x79,0xC8, 0x00,0x00,
-0x00,0x01, 0x07,0x38, 0x00,0x01, 0xF7,0x05, 0x79,0xC8, 0xF7,0x04, 0x79,0xC8, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0x14, 0xF7,0x04,
-0x75,0xF8, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x4A,0x2D, 0xF6,0x86,
-0x75,0xF8, 0xE0,0x00, 0x4A,0x40, 0xF6,0x82, 0x00,0x00, 0xF7,0x04, 0x76,0x04, 0x00,0x00,
-0x00,0x01, 0x77,0x39, 0x00,0x02, 0xC7,0x38, 0x68,0x00, 0x86,0xBA, 0x00,0x18, 0xF7,0x04,
-0x6F,0x54, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x4A,0x64, 0xF6,0x85,
-0x35,0x48, 0xF4,0x82, 0x00,0x01, 0xF4,0x85, 0x6F,0x54, 0xE0,0x00, 0x4A,0x70, 0xF7,0x02,
-0x00,0x01, 0xF4,0x82, 0x00,0x08, 0xF4,0x85, 0x6F,0x58, 0xF7,0x02, 0x00,0x00, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x4A,0x88, 0xF4,0x82, 0x00,0x04, 0xF4,0x86, 0x34,0x0C, 0xE0,0x00,
-0x4E,0xD8, 0xF4,0x85, 0x35,0x30, 0xF6,0x84, 0x35,0x48, 0xF6,0x04, 0x35,0x2C, 0xF4,0xB7,
-0x28,0x00, 0x07,0x34, 0x00,0x02, 0xF4,0x82, 0x00,0x01, 0xF4,0xBB, 0x28,0x00, 0x87,0x32,
-0x00,0x8C, 0xF4,0x82, 0x00,0x01, 0x97,0x36, 0x00,0x18, 0x87,0x32, 0x00,0x90, 0xF4,0x85,
-0x6F,0x50, 0x97,0x36, 0x00,0x04, 0x84,0xB2, 0x00,0x84, 0x00,0x00, 0x00,0x01, 0x94,0xB6,
-0x00,0x10, 0x84,0xB2, 0x00,0x88, 0x00,0x00, 0x00,0x01, 0x94,0xB6, 0x00,0x14, 0x84,0xB6,
-0x00,0x10, 0x00,0x00, 0x00,0x01, 0x94,0xB6, 0x00,0x08, 0x84,0xB6, 0x00,0x14, 0x00,0x00,
-0x00,0x01, 0x94,0xB6, 0x00,0x0C, 0x84,0xB2, 0x00,0x98, 0x00,0x00, 0x00,0x01, 0xF4,0x85,
-0x35,0x54, 0xF4,0x82, 0x00,0x01, 0x94,0x82, 0xFF,0x80, 0xF5,0x04, 0x35,0x54, 0xF4,0x86,
-0x34,0x98, 0xF4,0x85, 0x35,0x30, 0x95,0x02, 0xFF,0x38, 0x85,0xB2, 0x00,0x00, 0x06,0xB4,
-0x00,0x24, 0x95,0x82, 0xFF,0x3C, 0x96,0x82, 0xFF,0x40, 0x87,0x32, 0x00,0x04, 0xF6,0x85,
-0x35,0x50, 0x97,0x02, 0xFF,0x44, 0x86,0xB2, 0x00,0x04, 0xF0,0x05, 0x35,0x4C, 0xF7,0x04,
-0x35,0x40, 0x95,0x16, 0xFF,0xF4, 0x95,0x96, 0xFF,0xF4, 0xC7,0x38, 0x68,0x00, 0xF7,0x05,
-0x35,0x40, 0xF5,0x84, 0x35,0x28, 0x86,0xB2, 0x00,0x04, 0x87,0x2E, 0x14,0x14, 0x00,0x00,
-0x00,0x01, 0xC7,0x38, 0x68,0x00, 0x97,0x2E, 0x14,0x14, 0x87,0x32, 0x00,0x80, 0x00,0x00,
-0x00,0x01, 0x20,0x3A, 0x00,0x01, 0xEE,0x00, 0x4E,0xD8, 0xF7,0x06, 0x0C,0x3E, 0xC0,0x7E,
-0x74,0x00, 0xE6,0x00, 0x4B,0x8C, 0x00,0x00, 0x00,0x01, 0xC0,0x7E, 0x74,0x00, 0xE6,0x00,
-0x4B,0x7D, 0x00,0x00, 0x00,0x01, 0xF7,0x06, 0x0C,0x3E, 0xC7,0x7C, 0x74,0x00, 0x20,0x3A,
-0x00,0x10, 0xE6,0x00, 0x4E,0xD8, 0x00,0x00, 0x00,0x01, 0xFF,0x82, 0x00,0x10, 0x86,0x82,
-0xFF,0x38, 0xF7,0x04, 0x35,0x58, 0xF5,0x84, 0x6F,0x58, 0xF6,0x85, 0x35,0x54, 0x07,0x38,
-0x00,0x01, 0x20,0x2E, 0x00,0x21, 0xE2,0x00, 0x4B,0xF0, 0xF7,0x05, 0x35,0x58, 0xF7,0x04,
-0x2D,0x38, 0xF6,0x86, 0x2C,0x28, 0x06,0x38, 0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39,
-0x00,0x02, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0x4B,0xE4, 0xB5,0xBA, 0x68,0x02, 0xF0,0x05,
-0x2D,0x38, 0xF4,0x82, 0x00,0x22, 0xE0,0x00, 0x4B,0xF4, 0xF4,0x85, 0x6F,0x58, 0xF0,0x05,
-0x6F,0x54, 0xF6,0x84, 0x35,0x2C, 0x00,0x00, 0x00,0x01, 0x87,0x36, 0x00,0x94, 0xC4,0x84,
-0x00,0x00, 0xC0,0x3A, 0x4A,0x00, 0xE6,0x00, 0x4C,0x59, 0x00,0x00, 0x00,0x01, 0x86,0x36,
-0x00,0x94, 0xF6,0x84, 0x35,0x54, 0x00,0x00, 0x00,0x01, 0x76,0xB4, 0xFF,0xF0, 0xF7,0x04,
-0x35,0x54, 0x96,0x96, 0xFF,0xF4, 0x47,0x39, 0x00,0x00, 0x97,0x16, 0xFF,0xF0, 0xC6,0xB4,
-0x70,0x00, 0xF7,0x04, 0x35,0x48, 0x77,0xB4, 0x00,0x0F, 0x70,0x3E, 0xFF,0xE1, 0x07,0x38,
-0x00,0x24, 0xE6,0x00, 0x4C,0x51, 0xC6,0x38, 0x60,0x00, 0x06,0xB4, 0x00,0x01, 0xC7,0x04,
-0x6E,0x00, 0xF7,0x33, 0x28,0x00, 0xF6,0x84, 0x35,0x44, 0x00,0x00, 0x00,0x01, 0x87,0x36,
-0x00,0x04, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x0F, 0xE2,0x00, 0x4C,0xA5, 0x07,0x38,
-0x00,0x01, 0x87,0x36, 0x00,0x0C, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x36,
-0x00,0x0C, 0x87,0x36, 0x00,0x0C, 0xE0,0x00, 0x4C,0xB8, 0x00,0x00, 0x00,0x01, 0xF7,0x04,
-0x35,0x28, 0xF6,0x82, 0x00,0x01, 0x07,0x38, 0x00,0x08, 0xE0,0x00, 0x4E,0x50, 0xF7,0x05,
-0x35,0x44, 0x20,0x3A, 0x00,0x10, 0xE6,0x00, 0x4C,0xB4, 0x00,0x00, 0x00,0x01, 0xF7,0x02,
-0x00,0x00, 0x97,0x36, 0x00,0x04, 0xF7,0x04, 0x35,0x3C, 0xF6,0x84, 0x35,0x28, 0x07,0x38,
-0x00,0x01, 0xF7,0x05, 0x35,0x3C, 0xF7,0x04, 0x35,0x3C, 0x87,0x36, 0x14,0x1C, 0x00,0x00,
-0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x36, 0x14,0x1C, 0xF7,0x04, 0x76,0x04, 0x86,0xB6,
-0x14,0x1C, 0xF6,0x04, 0x75,0xFC, 0x07,0x38, 0x00,0x01, 0xF6,0x84, 0x76,0x00, 0x00,0x00,
-0x00,0x01, 0xC0,0x3A, 0x6A,0x00, 0xE6,0x00, 0x4D,0x04, 0xF7,0x05, 0x76,0x04, 0xF0,0x05,
-0x76,0x04, 0xF6,0x84, 0x76,0x04, 0xF7,0x04, 0x76,0x08, 0xF0,0x05, 0x75,0xFC, 0xC0,0x36,
-0x72,0x00, 0x47,0x0C, 0x00,0x01, 0x20,0x32, 0x00,0x00, 0xE6,0x00, 0x4D,0x69, 0xF7,0x05,
-0x75,0xF8, 0xF7,0x04, 0x76,0x48, 0xF4,0x86, 0x72,0x18, 0xC0,0x3A, 0x4A,0x00, 0x47,0x0C,
-0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x4D,0x69, 0xF6,0x86, 0x2C,0x28, 0xF7,0x04,
-0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38, 0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39,
-0x00,0x02, 0xF4,0x82, 0x00,0x0E, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0x4D,0x68, 0xB4,0xBA,
-0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF5,0x02, 0x00,0x00, 0x20,0x2A, 0x00,0x02, 0xEE,0x00,
-0x4E,0x50, 0xF6,0x82, 0x00,0x00, 0xF6,0x84, 0x35,0x28, 0x00,0x00, 0x00,0x01, 0x87,0x36,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x02, 0xE6,0x00, 0x4E,0x24, 0x05,0xB4,
-0x00,0x08, 0x95,0x93, 0xFF,0xFC, 0x95,0x16, 0xFF,0xEC, 0x95,0x96, 0xFF,0xE8, 0x96,0x96,
-0xFF,0xE4, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x5E,0xDC, 0x97,0x93, 0xFF,0xFC, 0x85,0x16,
-0xFF,0xEC, 0x85,0x96, 0xFF,0xE8, 0x86,0x96, 0xFF,0xE4, 0x20,0x22, 0x00,0x00, 0xE6,0x00,
-0x4E,0x14, 0xF7,0x02, 0x00,0x00, 0x86,0x36, 0x00,0x0C, 0x00,0x00, 0x00,0x01, 0x20,0x32,
-0x00,0x0F, 0xE2,0x00, 0x4D,0xF9, 0x00,0x00, 0x00,0x01, 0x87,0x36, 0x00,0x14, 0x00,0x00,
-0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x36, 0x00,0x14, 0x87,0x36, 0x00,0x14, 0xE0,0x00,
-0x4E,0x14, 0xF7,0x02, 0x00,0x00, 0x76,0xB1, 0x00,0x02, 0xC6,0xB4, 0x60,0x00, 0x77,0x35,
-0x00,0x05, 0xC7,0x38, 0x6A,0x00, 0xC7,0x38, 0x60,0x00, 0x07,0x38, 0x00,0x10, 0xC7,0x2C,
-0x70,0x00, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x4C,0x90, 0xF7,0x05, 0x35,0x2C, 0xF6,0x84,
-0x35,0x28, 0xF7,0x04, 0x6F,0x4C, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE6,0x00,
-0x4E,0x44, 0x07,0x34, 0x14,0x94, 0xF4,0x84, 0x6F,0x44, 0xE0,0x00, 0x4E,0x48, 0xF4,0x85,
-0x35,0x28, 0xF7,0x05, 0x35,0x28, 0xE0,0x00, 0x4D,0x6C, 0x05,0x28, 0x00,0x01, 0x20,0x36,
-0x00,0x00, 0xE6,0x00, 0x4E,0x89, 0xF6,0x86, 0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00,
-0x00,0x01, 0x06,0x38, 0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF4,0x82,
-0x00,0x0D, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0x4E,0x90, 0xB4,0xBA, 0x68,0x02, 0xE0,0x00,
-0x4E,0x90, 0xF0,0x05, 0x2D,0x38, 0xF4,0x82, 0x00,0x01, 0xF4,0x85, 0x35,0x24, 0xF6,0x84,
-0x35,0x28, 0xF7,0x04, 0x6F,0x44, 0xF4,0x86, 0x32,0xF4, 0xC0,0x36, 0x72,0x00, 0xE6,0x00,
-0x4E,0xD8, 0xF4,0x85, 0x35,0x30, 0xF7,0x04, 0xE0,0x18, 0x00,0x00, 0x00,0x01, 0x77,0xB8,
-0x00,0x1F, 0x70,0x3E, 0xFF,0xE1, 0xE6,0x00, 0x4E,0xD9, 0x00,0x00, 0x00,0x01, 0x0F,0x81,
-0x40,0x00, 0xF7,0x04, 0x79,0xC8, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0xF7,0x05,
-0x79,0xC8, 0xF7,0x04, 0x79,0xC8, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0x22,0x10, 0x00,0x14, 0xF6,0x84, 0x35,0x48, 0xF6,0x04, 0x35,0x2C, 0xF4,0x82,
-0x00,0x04, 0xF4,0xB7, 0x28,0x00, 0x07,0x34, 0x00,0x02, 0xF4,0x82, 0x00,0x01, 0xF4,0xBB,
-0x28,0x00, 0x87,0x32, 0x00,0x8C, 0xF4,0x82, 0x00,0x01, 0x97,0x36, 0x00,0x18, 0x87,0x32,
-0x00,0x90, 0xF4,0x85, 0x6F,0x50, 0x97,0x36, 0x00,0x04, 0x84,0xB2, 0x00,0x84, 0x00,0x00,
-0x00,0x01, 0x94,0xB6, 0x00,0x10, 0x84,0xB2, 0x00,0x88, 0x00,0x00, 0x00,0x01, 0x94,0xB6,
-0x00,0x14, 0x84,0xB6, 0x00,0x10, 0x00,0x00, 0x00,0x01, 0x94,0xB6, 0x00,0x08, 0x84,0xB6,
-0x00,0x14, 0x00,0x00, 0x00,0x01, 0x94,0xB6, 0x00,0x0C, 0x84,0xB2, 0x00,0x98, 0x00,0x00,
-0x00,0x01, 0xF4,0x85, 0x35,0x54, 0xF4,0x82, 0x00,0x01, 0x94,0x82, 0xFF,0x80, 0xF5,0x04,
-0x35,0x54, 0xF4,0x86, 0x34,0x98, 0xF4,0x85, 0x35,0x30, 0x95,0x02, 0xFF,0x38, 0x85,0xB2,
-0x00,0x00, 0x06,0xB4, 0x00,0x24, 0x95,0x82, 0xFF,0x3C, 0x96,0x82, 0xFF,0x40, 0x87,0x32,
-0x00,0x04, 0xF6,0x85, 0x35,0x50, 0x97,0x02, 0xFF,0x44, 0x86,0xB2, 0x00,0x04, 0xF0,0x05,
-0x35,0x4C, 0xF7,0x04, 0x35,0x40, 0x95,0x16, 0xFF,0xF4, 0x95,0x96, 0xFF,0xF4, 0xC7,0x38,
-0x68,0x00, 0xF7,0x05, 0x35,0x40, 0xF5,0x84, 0x35,0x28, 0x86,0xB2, 0x00,0x04, 0x87,0x2E,
-0x14,0x14, 0x00,0x00, 0x00,0x01, 0xC7,0x38, 0x68,0x00, 0x97,0x2E, 0x14,0x14, 0x87,0x32,
-0x00,0x80, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x01, 0xEE,0x00, 0x53,0x4C, 0xF7,0x06,
-0x0C,0x3E, 0xC0,0x7E, 0x74,0x00, 0xE6,0x00, 0x50,0x00, 0x00,0x00, 0x00,0x01, 0xC0,0x7E,
-0x74,0x00, 0xE6,0x00, 0x4F,0xF1, 0x00,0x00, 0x00,0x01, 0xF7,0x06, 0x0C,0x3E, 0xC7,0x7C,
-0x74,0x00, 0x20,0x3A, 0x00,0x10, 0xE6,0x00, 0x53,0x4C, 0x00,0x00, 0x00,0x01, 0xFF,0x82,
-0x00,0x10, 0x86,0x82, 0xFF,0x38, 0xF7,0x04, 0x35,0x58, 0xF5,0x84, 0x6F,0x58, 0xF6,0x85,
-0x35,0x54, 0x07,0x38, 0x00,0x01, 0x20,0x2E, 0x00,0x21, 0xE2,0x00, 0x50,0x64, 0xF7,0x05,
-0x35,0x58, 0xF7,0x04, 0x2D,0x38, 0xF6,0x86, 0x2C,0x28, 0x06,0x38, 0x00,0x01, 0xF6,0x05,
-0x2D,0x38, 0x77,0x39, 0x00,0x02, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0x50,0x58, 0xB5,0xBA,
-0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF4,0x82, 0x00,0x22, 0xE0,0x00, 0x50,0x68, 0xF4,0x85,
-0x6F,0x58, 0xF0,0x05, 0x6F,0x54, 0xF6,0x84, 0x35,0x2C, 0x00,0x00, 0x00,0x01, 0x87,0x36,
-0x00,0x94, 0xC4,0x84, 0x00,0x00, 0xC0,0x3A, 0x4A,0x00, 0xE6,0x00, 0x50,0xCD, 0x00,0x00,
-0x00,0x01, 0x86,0x36, 0x00,0x94, 0xF6,0x84, 0x35,0x54, 0x00,0x00, 0x00,0x01, 0x76,0xB4,
-0xFF,0xF0, 0xF7,0x04, 0x35,0x54, 0x96,0x96, 0xFF,0xF4, 0x47,0x39, 0x00,0x00, 0x97,0x16,
-0xFF,0xF0, 0xC6,0xB4, 0x70,0x00, 0xF7,0x04, 0x35,0x48, 0x77,0xB4, 0x00,0x0F, 0x70,0x3E,
-0xFF,0xE1, 0x07,0x38, 0x00,0x24, 0xE6,0x00, 0x50,0xC5, 0xC6,0x38, 0x60,0x00, 0x06,0xB4,
-0x00,0x01, 0xC7,0x04, 0x6E,0x00, 0xF7,0x33, 0x28,0x00, 0xF6,0x84, 0x35,0x44, 0x00,0x00,
-0x00,0x01, 0x87,0x36, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x0F, 0xE2,0x00,
-0x51,0x19, 0x07,0x38, 0x00,0x01, 0x87,0x36, 0x00,0x0C, 0x00,0x00, 0x00,0x01, 0x07,0x38,
-0x00,0x01, 0x97,0x36, 0x00,0x0C, 0x87,0x36, 0x00,0x0C, 0xE0,0x00, 0x51,0x2C, 0x00,0x00,
-0x00,0x01, 0xF7,0x04, 0x35,0x28, 0xF6,0x82, 0x00,0x01, 0x07,0x38, 0x00,0x08, 0xE0,0x00,
-0x52,0xC4, 0xF7,0x05, 0x35,0x44, 0x20,0x3A, 0x00,0x10, 0xE6,0x00, 0x51,0x28, 0x00,0x00,
-0x00,0x01, 0xF7,0x02, 0x00,0x00, 0x97,0x36, 0x00,0x04, 0xF7,0x04, 0x35,0x3C, 0xF6,0x84,
-0x35,0x28, 0x07,0x38, 0x00,0x01, 0xF7,0x05, 0x35,0x3C, 0xF7,0x04, 0x35,0x3C, 0x87,0x36,
-0x14,0x1C, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x36, 0x14,0x1C, 0xF7,0x04,
-0x76,0x04, 0x86,0xB6, 0x14,0x1C, 0xF6,0x04, 0x75,0xFC, 0x07,0x38, 0x00,0x01, 0xF6,0x84,
-0x76,0x00, 0x00,0x00, 0x00,0x01, 0xC0,0x3A, 0x6A,0x00, 0xE6,0x00, 0x51,0x78, 0xF7,0x05,
-0x76,0x04, 0xF0,0x05, 0x76,0x04, 0xF6,0x84, 0x76,0x04, 0xF7,0x04, 0x76,0x08, 0xF0,0x05,
-0x75,0xFC, 0xC0,0x36, 0x72,0x00, 0x47,0x0C, 0x00,0x01, 0x20,0x32, 0x00,0x00, 0xE6,0x00,
-0x51,0xDD, 0xF7,0x05, 0x75,0xF8, 0xF7,0x04, 0x76,0x48, 0xF4,0x86, 0x72,0x18, 0xC0,0x3A,
-0x4A,0x00, 0x47,0x0C, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x51,0xDD, 0xF6,0x86,
-0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38, 0x00,0x01, 0xF6,0x05,
-0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF4,0x82, 0x00,0x0E, 0x20,0x32, 0x00,0x44, 0xE6,0x00,
-0x51,0xDC, 0xB4,0xBA, 0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF5,0x02, 0x00,0x00, 0x20,0x2A,
-0x00,0x02, 0xEE,0x00, 0x52,0xC4, 0xF6,0x82, 0x00,0x00, 0xF6,0x84, 0x35,0x28, 0x00,0x00,
-0x00,0x01, 0x87,0x36, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x02, 0xE6,0x00,
-0x52,0x98, 0x05,0xB4, 0x00,0x08, 0x95,0x93, 0xFF,0xFC, 0x95,0x16, 0xFF,0xEC, 0x95,0x96,
-0xFF,0xE8, 0x96,0x96, 0xFF,0xE4, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x5E,0xDC, 0x97,0x93,
-0xFF,0xFC, 0x85,0x16, 0xFF,0xEC, 0x85,0x96, 0xFF,0xE8, 0x86,0x96, 0xFF,0xE4, 0x20,0x22,
-0x00,0x00, 0xE6,0x00, 0x52,0x88, 0xF7,0x02, 0x00,0x00, 0x86,0x36, 0x00,0x0C, 0x00,0x00,
-0x00,0x01, 0x20,0x32, 0x00,0x0F, 0xE2,0x00, 0x52,0x6D, 0x00,0x00, 0x00,0x01, 0x87,0x36,
-0x00,0x14, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x36, 0x00,0x14, 0x87,0x36,
-0x00,0x14, 0xE0,0x00, 0x52,0x88, 0xF7,0x02, 0x00,0x00, 0x76,0xB1, 0x00,0x02, 0xC6,0xB4,
-0x60,0x00, 0x77,0x35, 0x00,0x05, 0xC7,0x38, 0x6A,0x00, 0xC7,0x38, 0x60,0x00, 0x07,0x38,
-0x00,0x10, 0xC7,0x2C, 0x70,0x00, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x51,0x04, 0xF7,0x05,
-0x35,0x2C, 0xF6,0x84, 0x35,0x28, 0xF7,0x04, 0x6F,0x4C, 0x00,0x00, 0x00,0x01, 0xC0,0x36,
-0x72,0x00, 0xE6,0x00, 0x52,0xB8, 0x07,0x34, 0x14,0x94, 0xF4,0x84, 0x6F,0x44, 0xE0,0x00,
-0x52,0xBC, 0xF4,0x85, 0x35,0x28, 0xF7,0x05, 0x35,0x28, 0xE0,0x00, 0x51,0xE0, 0x05,0x28,
-0x00,0x01, 0x20,0x36, 0x00,0x00, 0xE6,0x00, 0x52,0xFD, 0xF6,0x86, 0x2C,0x28, 0xF7,0x04,
-0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38, 0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39,
-0x00,0x02, 0xF4,0x82, 0x00,0x0D, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0x53,0x04, 0xB4,0xBA,
-0x68,0x02, 0xE0,0x00, 0x53,0x04, 0xF0,0x05, 0x2D,0x38, 0xF4,0x82, 0x00,0x01, 0xF4,0x85,
-0x35,0x24, 0xF6,0x84, 0x35,0x28, 0xF7,0x04, 0x6F,0x44, 0xF4,0x86, 0x32,0xF4, 0xC0,0x36,
-0x72,0x00, 0xE6,0x00, 0x53,0x4C, 0xF4,0x85, 0x35,0x30, 0xF7,0x04, 0xE0,0x18, 0x00,0x00,
-0x00,0x01, 0x77,0xB8, 0x00,0x1F, 0x70,0x3E, 0xFF,0xE1, 0xE6,0x00, 0x53,0x4D, 0x00,0x00,
-0x00,0x01, 0x0F,0x81, 0x40,0x00, 0xF7,0x04, 0x79,0xC8, 0x00,0x00, 0x00,0x01, 0x07,0x38,
-0x00,0x01, 0xF7,0x05, 0x79,0xC8, 0xF7,0x04, 0x79,0xC8, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0x14, 0xF4,0x84, 0x35,0x54, 0xF6,0x84,
-0x35,0x4C, 0xF5,0x84, 0x35,0x2C, 0x94,0x82, 0xFF,0x38, 0x76,0xB5, 0x00,0x03, 0xA5,0x2E,
-0x68,0x02, 0x00,0x00, 0x00,0x01, 0x95,0x02, 0xFF,0x3C, 0xF3,0x84, 0x35,0x50, 0xC6,0xAC,
-0x68,0x00, 0x93,0x82, 0xFF,0x40, 0x87,0x36, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0x97,0x02,
-0xFF,0x44, 0x86,0x36, 0x00,0x04, 0xF7,0x04, 0x35,0x40, 0x00,0x00, 0x00,0x01, 0xC7,0x38,
-0x60,0x00, 0xF7,0x05, 0x35,0x40, 0xF6,0x04, 0x35,0x28, 0x86,0xB6, 0x00,0x04, 0x87,0x32,
-0x14,0x14, 0x94,0x96, 0xFF,0xF4, 0xC7,0x38, 0x68,0x00, 0x97,0x32, 0x14,0x14, 0x87,0x2E,
-0x00,0x80, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x01, 0xEE,0x00, 0x57,0x50, 0x95,0x16,
-0xFF,0xF4, 0xF7,0x06, 0x0C,0x3E, 0xC0,0x7E, 0x74,0x00, 0xE6,0x00, 0x54,0x04, 0x00,0x00,
-0x00,0x01, 0xC0,0x7E, 0x74,0x00, 0xE6,0x00, 0x53,0xF5, 0x00,0x00, 0x00,0x01, 0xF7,0x06,
-0x0C,0x3E, 0xC7,0x7C, 0x74,0x00, 0x20,0x3A, 0x00,0x10, 0xE6,0x00, 0x57,0x50, 0x00,0x00,
-0x00,0x01, 0xFF,0x82, 0x00,0x10, 0x86,0x82, 0xFF,0x38, 0xF7,0x04, 0x35,0x58, 0xF5,0x84,
-0x6F,0x58, 0xF6,0x85, 0x35,0x54, 0x07,0x38, 0x00,0x01, 0x20,0x2E, 0x00,0x21, 0xE2,0x00,
-0x54,0x68, 0xF7,0x05, 0x35,0x58, 0xF7,0x04, 0x2D,0x38, 0xF6,0x86, 0x2C,0x28, 0x06,0x38,
-0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0x20,0x32, 0x00,0x44, 0xE6,0x00,
-0x54,0x5C, 0xB5,0xBA, 0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF3,0x82, 0x00,0x22, 0xE0,0x00,
-0x54,0x6C, 0xF3,0x85, 0x6F,0x58, 0xF0,0x05, 0x6F,0x54, 0xF6,0x84, 0x35,0x2C, 0x00,0x00,
-0x00,0x01, 0x87,0x36, 0x00,0x94, 0xC3,0x84, 0x00,0x00, 0xC0,0x3A, 0x3A,0x00, 0xE6,0x00,
-0x54,0xD1, 0x00,0x00, 0x00,0x01, 0x86,0x36, 0x00,0x94, 0xF6,0x84, 0x35,0x54, 0x00,0x00,
-0x00,0x01, 0x76,0xB4, 0xFF,0xF0, 0xF7,0x04, 0x35,0x54, 0x96,0x96, 0xFF,0xF4, 0x47,0x39,
-0x00,0x00, 0x97,0x16, 0xFF,0xF0, 0xC6,0xB4, 0x70,0x00, 0xF7,0x04, 0x35,0x48, 0x77,0xB4,
-0x00,0x0F, 0x70,0x3E, 0xFF,0xE1, 0x07,0x38, 0x00,0x24, 0xE6,0x00, 0x54,0xC9, 0xC6,0x38,
-0x60,0x00, 0x06,0xB4, 0x00,0x01, 0xC7,0x04, 0x6E,0x00, 0xF7,0x33, 0x28,0x00, 0xF6,0x84,
-0x35,0x44, 0x00,0x00, 0x00,0x01, 0x87,0x36, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x0F, 0xE2,0x00, 0x55,0x1D, 0x07,0x38, 0x00,0x01, 0x87,0x36, 0x00,0x0C, 0x00,0x00,
-0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x36, 0x00,0x0C, 0x87,0x36, 0x00,0x0C, 0xE0,0x00,
-0x55,0x30, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x35,0x28, 0xF6,0x82, 0x00,0x01, 0x07,0x38,
-0x00,0x08, 0xE0,0x00, 0x56,0xC8, 0xF7,0x05, 0x35,0x44, 0x20,0x3A, 0x00,0x10, 0xE6,0x00,
-0x55,0x2C, 0x00,0x00, 0x00,0x01, 0xF7,0x02, 0x00,0x00, 0x97,0x36, 0x00,0x04, 0xF7,0x04,
-0x35,0x3C, 0xF6,0x84, 0x35,0x28, 0x07,0x38, 0x00,0x01, 0xF7,0x05, 0x35,0x3C, 0xF7,0x04,
-0x35,0x3C, 0x87,0x36, 0x14,0x1C, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x36,
-0x14,0x1C, 0xF7,0x04, 0x76,0x04, 0x86,0xB6, 0x14,0x1C, 0xF6,0x04, 0x75,0xFC, 0x07,0x38,
-0x00,0x01, 0xF6,0x84, 0x76,0x00, 0x00,0x00, 0x00,0x01, 0xC0,0x3A, 0x6A,0x00, 0xE6,0x00,
-0x55,0x7C, 0xF7,0x05, 0x76,0x04, 0xF0,0x05, 0x76,0x04, 0xF6,0x84, 0x76,0x04, 0xF7,0x04,
-0x76,0x08, 0xF0,0x05, 0x75,0xFC, 0xC0,0x36, 0x72,0x00, 0x47,0x0C, 0x00,0x01, 0x20,0x32,
-0x00,0x00, 0xE6,0x00, 0x55,0xE1, 0xF7,0x05, 0x75,0xF8, 0xF7,0x04, 0x76,0x48, 0xF3,0x86,
-0x72,0x18, 0xC0,0x3A, 0x3A,0x00, 0x47,0x0C, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x55,0xE1, 0xF6,0x86, 0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38,
-0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF3,0x82, 0x00,0x0E, 0x20,0x32,
-0x00,0x44, 0xE6,0x00, 0x55,0xE0, 0xB3,0xBA, 0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF5,0x02,
-0x00,0x00, 0x20,0x2A, 0x00,0x02, 0xEE,0x00, 0x56,0xC8, 0xF6,0x82, 0x00,0x00, 0xF6,0x84,
-0x35,0x28, 0x00,0x00, 0x00,0x01, 0x87,0x36, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x02, 0xE6,0x00, 0x56,0x9C, 0x05,0xB4, 0x00,0x08, 0x95,0x93, 0xFF,0xFC, 0x95,0x16,
-0xFF,0xEC, 0x95,0x96, 0xFF,0xE8, 0x96,0x96, 0xFF,0xE4, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x5E,0xDC, 0x97,0x93, 0xFF,0xFC, 0x85,0x16, 0xFF,0xEC, 0x85,0x96, 0xFF,0xE8, 0x86,0x96,
-0xFF,0xE4, 0x20,0x22, 0x00,0x00, 0xE6,0x00, 0x56,0x8C, 0xF7,0x02, 0x00,0x00, 0x86,0x36,
-0x00,0x0C, 0x00,0x00, 0x00,0x01, 0x20,0x32, 0x00,0x0F, 0xE2,0x00, 0x56,0x71, 0x00,0x00,
-0x00,0x01, 0x87,0x36, 0x00,0x14, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x36,
-0x00,0x14, 0x87,0x36, 0x00,0x14, 0xE0,0x00, 0x56,0x8C, 0xF7,0x02, 0x00,0x00, 0x76,0xB1,
-0x00,0x02, 0xC6,0xB4, 0x60,0x00, 0x77,0x35, 0x00,0x05, 0xC7,0x38, 0x6A,0x00, 0xC7,0x38,
-0x60,0x00, 0x07,0x38, 0x00,0x10, 0xC7,0x2C, 0x70,0x00, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x55,0x08, 0xF7,0x05, 0x35,0x2C, 0xF6,0x84, 0x35,0x28, 0xF7,0x04, 0x6F,0x4C, 0x00,0x00,
-0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0x56,0xBC, 0x07,0x34, 0x14,0x94, 0xF3,0x84,
-0x6F,0x44, 0xE0,0x00, 0x56,0xC0, 0xF3,0x85, 0x35,0x28, 0xF7,0x05, 0x35,0x28, 0xE0,0x00,
-0x55,0xE4, 0x05,0x28, 0x00,0x01, 0x20,0x36, 0x00,0x00, 0xE6,0x00, 0x57,0x01, 0xF6,0x86,
-0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38, 0x00,0x01, 0xF6,0x05,
-0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF3,0x82, 0x00,0x0D, 0x20,0x32, 0x00,0x44, 0xE6,0x00,
-0x57,0x08, 0xB3,0xBA, 0x68,0x02, 0xE0,0x00, 0x57,0x08, 0xF0,0x05, 0x2D,0x38, 0xF3,0x82,
-0x00,0x01, 0xF3,0x85, 0x35,0x24, 0xF6,0x84, 0x35,0x28, 0xF7,0x04, 0x6F,0x44, 0xF3,0x86,
-0x32,0xF4, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0x57,0x50, 0xF3,0x85, 0x35,0x30, 0xF7,0x04,
-0xE0,0x18, 0x00,0x00, 0x00,0x01, 0x77,0xB8, 0x00,0x1F, 0x70,0x3E, 0xFF,0xE1, 0xE6,0x00,
-0x57,0x51, 0x00,0x00, 0x00,0x01, 0x0F,0x81, 0x40,0x00, 0xF7,0x04, 0x79,0xC8, 0x00,0x00,
-0x00,0x01, 0x07,0x38, 0x00,0x01, 0xF7,0x05, 0x79,0xC8, 0xF7,0x04, 0x79,0xC8, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0x14, 0x87,0x02,
-0xFF,0x38, 0xF3,0x84, 0x35,0x2C, 0xF7,0x05, 0x35,0x54, 0x87,0x1E, 0x00,0x80, 0xF5,0x04,
-0x35,0x4C, 0x27,0x38, 0x00,0x01, 0xC0,0x2A, 0x72,0x00, 0xE6,0x00, 0x5A,0x4C, 0x00,0x00,
-0x00,0x01, 0xF5,0x84, 0x6F,0x58, 0x00,0x00, 0x00,0x01, 0x20,0x2E, 0x00,0x21, 0xE2,0x00,
-0x57,0xD8, 0xF6,0x86, 0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38,
-0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0x20,0x32, 0x00,0x44, 0xE6,0x00,
-0x57,0xCC, 0xB5,0xBA, 0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF3,0x02, 0x00,0x22, 0xE0,0x00,
-0x57,0xDC, 0xF3,0x05, 0x6F,0x58, 0xF0,0x05, 0x6F,0x54, 0xF6,0x84, 0x35,0x2C, 0x00,0x00,
-0x00,0x01, 0x87,0x36, 0x00,0x94, 0xC3,0x04, 0x00,0x00, 0xC0,0x3A, 0x32,0x00, 0xE6,0x00,
-0x58,0x41, 0x00,0x00, 0x00,0x01, 0x86,0x36, 0x00,0x94, 0xF6,0x84, 0x35,0x54, 0x00,0x00,
-0x00,0x01, 0x76,0xB4, 0xFF,0xF0, 0xF7,0x04, 0x35,0x54, 0x96,0x96, 0xFF,0xF4, 0x47,0x39,
-0x00,0x00, 0x97,0x16, 0xFF,0xF0, 0xC6,0xB4, 0x70,0x00, 0xF7,0x04, 0x35,0x48, 0x77,0xB4,
-0x00,0x0F, 0x70,0x3E, 0xFF,0xE1, 0x07,0x38, 0x00,0x24, 0xE6,0x00, 0x58,0x39, 0xC6,0x38,
-0x60,0x00, 0x06,0xB4, 0x00,0x01, 0xC7,0x04, 0x6E,0x00, 0xF7,0x33, 0x28,0x00, 0xF6,0x84,
-0x35,0x44, 0x00,0x00, 0x00,0x01, 0x87,0x36, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x0F, 0xE2,0x00, 0x58,0x8D, 0x07,0x38, 0x00,0x01, 0x87,0x36, 0x00,0x0C, 0x00,0x00,
-0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x36, 0x00,0x0C, 0x87,0x36, 0x00,0x0C, 0xE0,0x00,
-0x58,0xA0, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x35,0x28, 0xF6,0x82, 0x00,0x01, 0x07,0x38,
-0x00,0x08, 0xE0,0x00, 0x5A,0x38, 0xF7,0x05, 0x35,0x44, 0x20,0x3A, 0x00,0x10, 0xE6,0x00,
-0x58,0x9C, 0x00,0x00, 0x00,0x01, 0xF7,0x02, 0x00,0x00, 0x97,0x36, 0x00,0x04, 0xF7,0x04,
-0x35,0x3C, 0xF6,0x84, 0x35,0x28, 0x07,0x38, 0x00,0x01, 0xF7,0x05, 0x35,0x3C, 0xF7,0x04,
-0x35,0x3C, 0x87,0x36, 0x14,0x1C, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x36,
-0x14,0x1C, 0xF7,0x04, 0x76,0x04, 0x86,0xB6, 0x14,0x1C, 0xF6,0x04, 0x75,0xFC, 0x07,0x38,
-0x00,0x01, 0xF6,0x84, 0x76,0x00, 0x00,0x00, 0x00,0x01, 0xC0,0x3A, 0x6A,0x00, 0xE6,0x00,
-0x58,0xEC, 0xF7,0x05, 0x76,0x04, 0xF0,0x05, 0x76,0x04, 0xF6,0x84, 0x76,0x04, 0xF7,0x04,
-0x76,0x08, 0xF0,0x05, 0x75,0xFC, 0xC0,0x36, 0x72,0x00, 0x47,0x0C, 0x00,0x01, 0x20,0x32,
-0x00,0x00, 0xE6,0x00, 0x59,0x51, 0xF7,0x05, 0x75,0xF8, 0xF7,0x04, 0x76,0x48, 0xF3,0x06,
-0x72,0x18, 0xC0,0x3A, 0x32,0x00, 0x47,0x0C, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x59,0x51, 0xF6,0x86, 0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38,
-0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF3,0x02, 0x00,0x0E, 0x20,0x32,
-0x00,0x44, 0xE6,0x00, 0x59,0x50, 0xB3,0x3A, 0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF5,0x02,
-0x00,0x00, 0x20,0x2A, 0x00,0x02, 0xEE,0x00, 0x5A,0x38, 0xF6,0x82, 0x00,0x00, 0xF6,0x84,
-0x35,0x28, 0x00,0x00, 0x00,0x01, 0x87,0x36, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x02, 0xE6,0x00, 0x5A,0x0C, 0x05,0xB4, 0x00,0x08, 0x95,0x93, 0xFF,0xFC, 0x95,0x16,
-0xFF,0xEC, 0x95,0x96, 0xFF,0xE8, 0x96,0x96, 0xFF,0xE4, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x5E,0xDC, 0x97,0x93, 0xFF,0xFC, 0x85,0x16, 0xFF,0xEC, 0x85,0x96, 0xFF,0xE8, 0x86,0x96,
-0xFF,0xE4, 0x20,0x22, 0x00,0x00, 0xE6,0x00, 0x59,0xFC, 0xF7,0x02, 0x00,0x00, 0x86,0x36,
-0x00,0x0C, 0x00,0x00, 0x00,0x01, 0x20,0x32, 0x00,0x0F, 0xE2,0x00, 0x59,0xE1, 0x00,0x00,
-0x00,0x01, 0x87,0x36, 0x00,0x14, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x36,
-0x00,0x14, 0x87,0x36, 0x00,0x14, 0xE0,0x00, 0x59,0xFC, 0xF7,0x02, 0x00,0x00, 0x76,0xB1,
-0x00,0x02, 0xC6,0xB4, 0x60,0x00, 0x77,0x35, 0x00,0x05, 0xC7,0x38, 0x6A,0x00, 0xC7,0x38,
-0x60,0x00, 0x07,0x38, 0x00,0x10, 0xC7,0x2C, 0x70,0x00, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x58,0x78, 0xF7,0x05, 0x35,0x2C, 0xF6,0x84, 0x35,0x28, 0xF7,0x04, 0x6F,0x4C, 0x00,0x00,
-0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0x5A,0x2C, 0x07,0x34, 0x14,0x94, 0xF3,0x04,
-0x6F,0x44, 0xE0,0x00, 0x5A,0x30, 0xF3,0x05, 0x35,0x28, 0xF7,0x05, 0x35,0x28, 0xE0,0x00,
-0x59,0x54, 0x05,0x28, 0x00,0x01, 0x20,0x36, 0x00,0x00, 0xE6,0x00, 0x5D,0xC4, 0xF3,0x02,
-0x00,0x01, 0xE0,0x00, 0x5D,0xF0, 0x00,0x00, 0x00,0x01, 0x77,0x29, 0x00,0x03, 0xC7,0x1C,
-0x70,0x00, 0x87,0x3A, 0x00,0x04, 0x05,0x28, 0x00,0x01, 0x76,0xA9, 0x00,0x03, 0xF4,0x84,
-0x35,0x54, 0xF6,0x04, 0x35,0x50, 0x94,0x82, 0xFF,0x38, 0xA4,0x1E, 0x68,0x02, 0xC6,0x30,
-0x70,0x00, 0x94,0x02, 0xFF,0x3C, 0x96,0x02, 0xFF,0x40, 0xC6,0x9C, 0x68,0x00, 0x87,0x36,
-0x00,0x04, 0x00,0x00, 0x00,0x01, 0x97,0x02, 0xFF,0x44, 0x85,0xB6, 0x00,0x04, 0xF7,0x04,
-0x35,0x40, 0x00,0x00, 0x00,0x01, 0xC7,0x38, 0x58,0x00, 0xF7,0x05, 0x35,0x40, 0x85,0xB6,
-0x00,0x04, 0xF5,0x05, 0x35,0x4C, 0xF6,0x84, 0x35,0x28, 0xF6,0x05, 0x35,0x50, 0x87,0x36,
-0x14,0x14, 0x94,0x96, 0xFF,0xF4, 0xC7,0x38, 0x58,0x00, 0x97,0x36, 0x14,0x14, 0x87,0x1E,
-0x00,0x80, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x01, 0xEE,0x00, 0x5E,0x3C, 0x94,0x16,
-0xFF,0xF4, 0xF7,0x06, 0x0C,0x3E, 0xC0,0x7E, 0x74,0x00, 0xE6,0x00, 0x5A,0xF4, 0x00,0x00,
-0x00,0x01, 0xC0,0x7E, 0x74,0x00, 0xE6,0x00, 0x5A,0xE5, 0x00,0x00, 0x00,0x01, 0xF7,0x06,
-0x0C,0x3E, 0xC7,0x7C, 0x74,0x00, 0x20,0x3A, 0x00,0x10, 0xE6,0x00, 0x5E,0x3C, 0x00,0x00,
-0x00,0x01, 0xFF,0x82, 0x00,0x10, 0x86,0x82, 0xFF,0x38, 0xF7,0x04, 0x35,0x58, 0xF5,0x84,
-0x6F,0x58, 0xF6,0x85, 0x35,0x54, 0x07,0x38, 0x00,0x01, 0x20,0x2E, 0x00,0x21, 0xE2,0x00,
-0x5B,0x58, 0xF7,0x05, 0x35,0x58, 0xF7,0x04, 0x2D,0x38, 0xF6,0x86, 0x2C,0x28, 0x06,0x38,
-0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0x20,0x32, 0x00,0x44, 0xE6,0x00,
-0x5B,0x4C, 0xB5,0xBA, 0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF3,0x02, 0x00,0x22, 0xE0,0x00,
-0x5B,0x5C, 0xF3,0x05, 0x6F,0x58, 0xF0,0x05, 0x6F,0x54, 0xF6,0x84, 0x35,0x2C, 0x00,0x00,
-0x00,0x01, 0x87,0x36, 0x00,0x94, 0xC3,0x04, 0x00,0x00, 0xC0,0x3A, 0x32,0x00, 0xE6,0x00,
-0x5B,0xC1, 0x00,0x00, 0x00,0x01, 0x86,0x36, 0x00,0x94, 0xF6,0x84, 0x35,0x54, 0x00,0x00,
-0x00,0x01, 0x76,0xB4, 0xFF,0xF0, 0xF7,0x04, 0x35,0x54, 0x96,0x96, 0xFF,0xF4, 0x47,0x39,
-0x00,0x00, 0x97,0x16, 0xFF,0xF0, 0xC6,0xB4, 0x70,0x00, 0xF7,0x04, 0x35,0x48, 0x77,0xB4,
-0x00,0x0F, 0x70,0x3E, 0xFF,0xE1, 0x07,0x38, 0x00,0x24, 0xE6,0x00, 0x5B,0xB9, 0xC6,0x38,
-0x60,0x00, 0x06,0xB4, 0x00,0x01, 0xC7,0x04, 0x6E,0x00, 0xF7,0x33, 0x28,0x00, 0xF6,0x84,
-0x35,0x44, 0x00,0x00, 0x00,0x01, 0x87,0x36, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x0F, 0xE2,0x00, 0x5C,0x0D, 0x07,0x38, 0x00,0x01, 0x87,0x36, 0x00,0x0C, 0x00,0x00,
-0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x36, 0x00,0x0C, 0x87,0x36, 0x00,0x0C, 0xE0,0x00,
-0x5C,0x20, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x35,0x28, 0xF6,0x82, 0x00,0x01, 0x07,0x38,
-0x00,0x08, 0xE0,0x00, 0x5D,0xB8, 0xF7,0x05, 0x35,0x44, 0x20,0x3A, 0x00,0x10, 0xE6,0x00,
-0x5C,0x1C, 0x00,0x00, 0x00,0x01, 0xF7,0x02, 0x00,0x00, 0x97,0x36, 0x00,0x04, 0xF7,0x04,
-0x35,0x3C, 0xF6,0x84, 0x35,0x28, 0x07,0x38, 0x00,0x01, 0xF7,0x05, 0x35,0x3C, 0xF7,0x04,
-0x35,0x3C, 0x87,0x36, 0x14,0x1C, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x36,
-0x14,0x1C, 0xF7,0x04, 0x76,0x04, 0x86,0xB6, 0x14,0x1C, 0xF6,0x04, 0x75,0xFC, 0x07,0x38,
-0x00,0x01, 0xF6,0x84, 0x76,0x00, 0x00,0x00, 0x00,0x01, 0xC0,0x3A, 0x6A,0x00, 0xE6,0x00,
-0x5C,0x6C, 0xF7,0x05, 0x76,0x04, 0xF0,0x05, 0x76,0x04, 0xF6,0x84, 0x76,0x04, 0xF7,0x04,
-0x76,0x08, 0xF0,0x05, 0x75,0xFC, 0xC0,0x36, 0x72,0x00, 0x47,0x0C, 0x00,0x01, 0x20,0x32,
-0x00,0x00, 0xE6,0x00, 0x5C,0xD1, 0xF7,0x05, 0x75,0xF8, 0xF7,0x04, 0x76,0x48, 0xF3,0x06,
-0x72,0x18, 0xC0,0x3A, 0x32,0x00, 0x47,0x0C, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x5C,0xD1, 0xF6,0x86, 0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38,
-0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF3,0x02, 0x00,0x0E, 0x20,0x32,
-0x00,0x44, 0xE6,0x00, 0x5C,0xD0, 0xB3,0x3A, 0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF5,0x02,
-0x00,0x00, 0x20,0x2A, 0x00,0x02, 0xEE,0x00, 0x5D,0xB8, 0xF6,0x82, 0x00,0x00, 0xF6,0x84,
-0x35,0x28, 0x00,0x00, 0x00,0x01, 0x87,0x36, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x02, 0xE6,0x00, 0x5D,0x8C, 0x05,0xB4, 0x00,0x08, 0x95,0x93, 0xFF,0xFC, 0x95,0x16,
-0xFF,0xEC, 0x95,0x96, 0xFF,0xE8, 0x96,0x96, 0xFF,0xE4, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x5E,0xDC, 0x97,0x93, 0xFF,0xFC, 0x85,0x16, 0xFF,0xEC, 0x85,0x96, 0xFF,0xE8, 0x86,0x96,
-0xFF,0xE4, 0x20,0x22, 0x00,0x00, 0xE6,0x00, 0x5D,0x7C, 0xF7,0x02, 0x00,0x00, 0x86,0x36,
-0x00,0x0C, 0x00,0x00, 0x00,0x01, 0x20,0x32, 0x00,0x0F, 0xE2,0x00, 0x5D,0x61, 0x00,0x00,
-0x00,0x01, 0x87,0x36, 0x00,0x14, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x36,
-0x00,0x14, 0x87,0x36, 0x00,0x14, 0xE0,0x00, 0x5D,0x7C, 0xF7,0x02, 0x00,0x00, 0x76,0xB1,
-0x00,0x02, 0xC6,0xB4, 0x60,0x00, 0x77,0x35, 0x00,0x05, 0xC7,0x38, 0x6A,0x00, 0xC7,0x38,
-0x60,0x00, 0x07,0x38, 0x00,0x10, 0xC7,0x2C, 0x70,0x00, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x5B,0xF8, 0xF7,0x05, 0x35,0x2C, 0xF6,0x84, 0x35,0x28, 0xF7,0x04, 0x6F,0x4C, 0x00,0x00,
-0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0x5D,0xAC, 0x07,0x34, 0x14,0x94, 0xF3,0x04,
-0x6F,0x44, 0xE0,0x00, 0x5D,0xB0, 0xF3,0x05, 0x35,0x28, 0xF7,0x05, 0x35,0x28, 0xE0,0x00,
-0x5C,0xD4, 0x05,0x28, 0x00,0x01, 0x20,0x36, 0x00,0x00, 0xE6,0x00, 0x5D,0xF1, 0xF3,0x02,
-0x00,0x01, 0xF7,0x04, 0x2D,0x38, 0xF6,0x86, 0x2C,0x28, 0x06,0x38, 0x00,0x01, 0xF6,0x05,
-0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF3,0x02, 0x00,0x0D, 0x20,0x32, 0x00,0x44, 0xE6,0x00,
-0x5D,0xF4, 0xB3,0x3A, 0x68,0x02, 0xE0,0x00, 0x5D,0xF4, 0xF0,0x05, 0x2D,0x38, 0xF3,0x05,
-0x35,0x24, 0xF6,0x84, 0x35,0x28, 0xF7,0x04, 0x6F,0x44, 0xF3,0x06, 0x32,0xF4, 0xC0,0x36,
-0x72,0x00, 0xE6,0x00, 0x5E,0x3C, 0xF3,0x05, 0x35,0x30, 0xF7,0x04, 0xE0,0x18, 0x00,0x00,
-0x00,0x01, 0x77,0xB8, 0x00,0x1F, 0x70,0x3E, 0xFF,0xE1, 0xE6,0x00, 0x5E,0x3D, 0x00,0x00,
-0x00,0x01, 0x0F,0x81, 0x40,0x00, 0xF7,0x04, 0x79,0xC8, 0x00,0x00, 0x00,0x01, 0x07,0x38,
-0x00,0x01, 0xF7,0x05, 0x79,0xC8, 0xF7,0x04, 0x79,0xC8, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF7,0x06, 0x35,0x30, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06,
-0x32,0xF4, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x14,0xF4, 0x97,0x93,
-0xFF,0xFC, 0xF7,0x06, 0x35,0x30, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06, 0x33,0x80, 0x97,0x13,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x14,0xF4, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06,
-0x35,0x30, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06, 0x34,0x0C, 0x97,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x14,0xF4, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06, 0x35,0x30, 0x97,0x13,
-0xFF,0xFC, 0xF7,0x06, 0x34,0x98, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x14,0xF4, 0x97,0x93, 0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0x86,0x16, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x87,0x32, 0x00,0x04, 0x00,0x00,
-0x00,0x01, 0x20,0x3A, 0x00,0x0F, 0x86,0xB2, 0x00,0x00, 0xC5,0x38, 0x00,0x00, 0xEE,0x00,
-0x5F,0x2C, 0xC5,0xB4, 0x00,0x00, 0x20,0x36, 0x00,0x0F, 0xEE,0x00, 0x5F,0x2C, 0x00,0x00,
-0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xEC,0x00, 0x5F,0x2D, 0x00,0x00, 0x00,0x01, 0x20,0x36,
-0x00,0x00, 0xEC,0x00, 0x5F,0x48, 0x00,0x00, 0x00,0x01, 0x87,0x32, 0x00,0x0C, 0x00,0x00,
-0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x32, 0x00,0x0C, 0x87,0x32, 0x00,0x0C, 0xE0,0x00,
-0x5F,0x50, 0xF4,0x02, 0x00,0x00, 0xC0,0x2A, 0x5A,0x00, 0x44,0x0C, 0x00,0x01, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x04, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x00,0x00, 0x00,0x00, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF6,0x86,
-0x35,0x60, 0x96,0x93, 0xFF,0xFC, 0xF6,0x86, 0x42,0x30, 0x96,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x15,0x48, 0x97,0x93, 0xFF,0xFC, 0xF6,0x82, 0x66,0xF8, 0x96,0x93,
-0xFF,0xFC, 0xF7,0x82, 0x00,0x17, 0x97,0x93, 0xFF,0xFC, 0xF6,0x86, 0x35,0x60, 0x96,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF6,0x82,
-0x69,0x80, 0x96,0x93, 0xFF,0xFC, 0xF7,0x82, 0x00,0x18, 0x97,0x93, 0xFF,0xFC, 0xF6,0x86,
-0x35,0x60, 0x96,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93,
-0xFF,0xFC, 0xF6,0x82, 0x6B,0x50, 0x96,0x93, 0xFF,0xFC, 0xF7,0x82, 0x00,0x16, 0x97,0x93,
-0xFF,0xFC, 0xF6,0x86, 0x35,0x60, 0x96,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF6,0x82, 0x61,0x78, 0x96,0x93, 0xFF,0xFC, 0xF7,0x82,
-0x00,0x1F, 0x97,0x93, 0xFF,0xFC, 0xF6,0x86, 0x35,0x60, 0x96,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF6,0x82, 0x62,0x7C, 0x96,0x93,
-0xFF,0xFC, 0xF7,0x82, 0x00,0x20, 0x97,0x93, 0xFF,0xFC, 0xF6,0x86, 0x35,0x60, 0x96,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF6,0x82,
-0x66,0xF8, 0x96,0x93, 0xFF,0xFC, 0xF7,0x82, 0x00,0x17, 0x97,0x93, 0xFF,0xFC, 0xF6,0x86,
-0x35,0xEC, 0x96,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93,
-0xFF,0xFC, 0xF6,0x82, 0x69,0x80, 0x96,0x93, 0xFF,0xFC, 0xF7,0x82, 0x00,0x18, 0x97,0x93,
-0xFF,0xFC, 0xF6,0x86, 0x35,0xEC, 0x96,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF6,0x82, 0x6B,0x50, 0x96,0x93, 0xFF,0xFC, 0xF7,0x82,
-0x00,0x16, 0x97,0x93, 0xFF,0xFC, 0xF6,0x86, 0x35,0xEC, 0x96,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF6,0x82, 0x61,0x78, 0x96,0x93,
-0xFF,0xFC, 0xF7,0x82, 0x00,0x1F, 0x97,0x93, 0xFF,0xFC, 0xF6,0x86, 0x35,0xEC, 0x96,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF6,0x82,
-0x62,0x7C, 0x96,0x93, 0xFF,0xFC, 0xF7,0x82, 0x00,0x20, 0x97,0x93, 0xFF,0xFC, 0xF6,0x86,
-0x35,0xEC, 0x96,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93,
-0xFF,0xFC, 0xF7,0x04, 0xE0,0x28, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x61,0x15, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0xE0,0x28, 0xE0,0x00, 0x61,0x18, 0x77,0x39,
-0x00,0x02, 0xF7,0x02, 0x00,0xF0, 0xF7,0x05, 0x42,0x28, 0xF7,0x06, 0x40,0x8A, 0xF0,0x3B,
-0x28,0x00, 0xF7,0x06, 0x40,0x8C, 0xF0,0x3B, 0x28,0x00, 0xF7,0x02, 0x00,0x00, 0xF7,0x05,
-0x7A,0xC0, 0xF7,0x05, 0x7A,0xB8, 0xF7,0x05, 0x7A,0xB0, 0xF7,0x05, 0x7A,0xC8, 0xF6,0x82,
-0xC3,0x50, 0x96,0x93, 0xFF,0xFC, 0xF6,0x82, 0x00,0x16, 0x96,0x93, 0xFF,0xFC, 0xF6,0x86,
-0x42,0x30, 0x96,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x1E,0xC0, 0x97,0x93,
-0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF6,0x04,
-0x6F,0x34, 0x00,0x00, 0x00,0x01, 0x20,0x32, 0x00,0x00, 0xE6,0x00, 0x61,0xED, 0x76,0xB1,
-0x00,0x1E, 0x87,0x32, 0x00,0x00, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39,
-0xFF,0xF0, 0x20,0x3A, 0x00,0x07, 0xE6,0x00, 0x61,0xEC, 0x06,0xB0, 0x00,0x02, 0x87,0x36,
-0x00,0x00, 0x76,0xB5, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39,
-0xFF,0xF0, 0x20,0x3A, 0x00,0x01, 0xE6,0x00, 0x61,0xEC, 0xF5,0x06, 0x35,0xEC, 0xF7,0x04,
-0x42,0x30, 0x00,0x00, 0x00,0x01, 0xC0,0x3A, 0x52,0x00, 0x47,0x0C, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x62,0x11, 0xF5,0x82, 0x00,0x00, 0xF7,0x04, 0x42,0xA0, 0xF6,0x06,
-0x42,0xA2, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39,
-0xFF,0xF0, 0x07,0x38, 0x00,0x01, 0xE0,0x00, 0x62,0x68, 0xF7,0x33, 0x28,0x00, 0x87,0x32,
-0x00,0x04, 0x00,0x00, 0x00,0x01, 0xF7,0x05, 0xE0,0x00, 0x86,0xB2, 0x00,0x08, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x62,0x3C, 0xF6,0x85, 0xE0,0x04, 0x20,0x36, 0x00,0x00, 0xE6,0x00,
-0x62,0x40, 0x20,0x2E, 0x00,0x00, 0xF5,0x82, 0x00,0x01, 0x20,0x2E, 0x00,0x00, 0xE6,0x00,
-0x62,0x65, 0xF6,0x06, 0x42,0xA2, 0xF7,0x04, 0x42,0xA0, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38, 0x00,0x01, 0xF7,0x33,
-0x28,0x00, 0xF0,0x05, 0x42,0x28, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0xF7,0x04, 0x42,0x3C, 0xF6,0x84, 0x6F,0x34, 0x07,0x38, 0x00,0x01, 0x20,0x36,
-0x00,0x00, 0xE6,0x00, 0x62,0xB1, 0xF7,0x05, 0x42,0x3C, 0x87,0x36, 0x00,0x00, 0xF5,0x9E,
-0x00,0x02, 0xC0,0x3A, 0x5A,0x00, 0xE6,0x00, 0x62,0xBD, 0xF5,0x86, 0x35,0xEC, 0xF7,0x04,
-0x42,0xA0, 0xE0,0x00, 0x62,0xDC, 0xF6,0x06, 0x42,0xA2, 0xF7,0x04, 0x42,0x30, 0x00,0x00,
-0x00,0x01, 0xC0,0x3A, 0x5A,0x00, 0x47,0x0C, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x62,0xF9, 0xF6,0x06, 0x42,0xA4, 0xF7,0x04, 0x42,0xA4, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38, 0x00,0x01, 0xE0,0x00,
-0x63,0x0C, 0xF7,0x33, 0x28,0x00, 0x96,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x63,0x20, 0x97,0x93, 0xFF,0xFC, 0xF0,0x05, 0x42,0x28, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0x20, 0x83,0x16, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x87,0x1A, 0x00,0x18, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x63,0x6C, 0xF7,0x02, 0x00,0x00, 0x83,0x9A, 0x00,0x1C, 0x00,0x00, 0x00,0x01, 0xF3,0x85,
-0x7A,0xC0, 0x84,0x9A, 0x00,0x14, 0xF7,0x05, 0x7A,0xC8, 0xF4,0x85, 0x7A,0xB0, 0xF7,0x05,
-0x7A,0xB8, 0x83,0x16, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x86,0x9A, 0x00,0x14, 0xF7,0x04,
-0x7A,0xB0, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0x63,0xD0, 0xF6,0x02,
-0x00,0x00, 0x86,0x9A, 0x00,0x1C, 0xF7,0x04, 0x7A,0xC0, 0x00,0x00, 0x00,0x01, 0xC0,0x36,
-0x72,0x00, 0xE6,0x00, 0x63,0xD0, 0x00,0x00, 0x00,0x01, 0x86,0x9A, 0x00,0x18, 0xF7,0x04,
-0x7A,0xB8, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0x63,0xD0, 0x00,0x00,
-0x00,0x01, 0x86,0x9A, 0x00,0x20, 0xF7,0x04, 0x7A,0xC8, 0x00,0x00, 0x00,0x01, 0xC7,0x38,
-0x68,0x00, 0x20,0x3A, 0x00,0x64, 0xEE,0x00, 0x63,0xD9, 0x20,0x32, 0x00,0x00, 0xF6,0x02,
-0x00,0x01, 0x20,0x32, 0x00,0x00, 0xE6,0x00, 0x64,0x58, 0x00,0x00, 0x00,0x01, 0x83,0x96,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x87,0x1E, 0x00,0x18, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x64,0x3C, 0xF7,0x02, 0x00,0x00, 0xF7,0x05, 0x40,0x80, 0xF7,0x05,
-0x40,0x84, 0xF6,0x84, 0x6E,0x50, 0xF4,0x82, 0xFF,0xFF, 0x83,0x1E, 0x00,0x0C, 0xF4,0x85,
-0x4F,0x54, 0x93,0x36, 0x00,0x10, 0x83,0x9E, 0x00,0x10, 0x84,0x96, 0x00,0x00, 0x93,0xB6,
-0x00,0x14, 0x84,0xA6, 0x00,0x08, 0x00,0x00, 0x00,0x01, 0x94,0xB6, 0x1D,0xDC, 0xF6,0x82,
-0x00,0x64, 0xF6,0x85, 0x4A,0x98, 0xF7,0x05, 0x4A,0x9C, 0x83,0x16, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x87,0x1A, 0x00,0x20, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xEE,0x00,
-0x64,0x7C, 0xF3,0x82, 0x00,0x00, 0xF7,0x04, 0x42,0xA4, 0xF6,0x06, 0x42,0xA6, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38,
-0x00,0x01, 0xE0,0x00, 0x66,0xE4, 0xF7,0x33, 0x28,0x00, 0x93,0x96, 0xFF,0xF4, 0x84,0x16,
-0x00,0x00, 0xF4,0x86, 0x42,0xC8, 0x94,0x96, 0xFF,0xEC, 0xF3,0x02, 0x00,0x0C, 0x93,0x16,
-0xFF,0xE4, 0x83,0x96, 0x00,0x00, 0x84,0x96, 0xFF,0xF4, 0x87,0x1E, 0x00,0x20, 0x00,0x00,
-0x00,0x01, 0xC0,0x26, 0x72,0x00, 0xEC,0x00, 0x66,0x48, 0xF3,0x86, 0x4A,0x98, 0x84,0xA2,
-0x00,0x24, 0x83,0x16, 0xFF,0xE4, 0xC5,0x04, 0x00,0x00, 0xB4,0x9A, 0x38,0x02, 0xC7,0x18,
-0x38,0x00, 0x83,0x22, 0x00,0x28, 0x83,0x96, 0xFF,0xF4, 0x84,0x96, 0xFF,0xE4, 0x93,0x3A,
-0x00,0x04, 0x93,0xBA, 0x00,0x08, 0xF6,0x04, 0xE0,0x00, 0xF3,0x06, 0x4A,0x98, 0xA6,0xA6,
-0x30,0x02, 0xF5,0x82, 0x00,0x00, 0xC0,0x32, 0x6A,0x00, 0xE6,0x00, 0x65,0x10, 0xC6,0x38,
-0x00,0x00, 0xF6,0x84, 0xE0,0x04, 0x87,0x32, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0xC0,0x36,
-0x72,0x00, 0xE6,0x00, 0x65,0x14, 0x20,0x2E, 0x00,0x00, 0xF5,0x82, 0x00,0x01, 0x20,0x2E,
-0x00,0x00, 0xE6,0x00, 0x65,0x21, 0x00,0x00, 0x00,0x01, 0xF5,0x02, 0x00,0x00, 0xF6,0x84,
-0xE0,0x00, 0x87,0x32, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE2,0x00,
-0x65,0x5C, 0xF5,0x82, 0x00,0x00, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0x65,0x64, 0x20,0x2E,
-0x00,0x00, 0xF6,0x84, 0xE0,0x04, 0x87,0x32, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0xC0,0x36,
-0x72,0x00, 0xE2,0x00, 0x65,0x65, 0x20,0x2E, 0x00,0x00, 0xF5,0x82, 0x00,0x01, 0x20,0x2E,
-0x00,0x00, 0xE6,0x00, 0x65,0x75, 0x20,0x2A, 0x00,0x00, 0xF5,0x02, 0x00,0x01, 0x20,0x2A,
-0x00,0x00, 0xE6,0x00, 0x65,0x88, 0x00,0x00, 0x00,0x01, 0x83,0x96, 0xFF,0xF4, 0x00,0x00,
-0x00,0x01, 0xF3,0x85, 0x4F,0x54, 0x87,0x22, 0x00,0x2C, 0x76,0xA1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0x05,0xA0, 0x00,0x2E, 0x76,0x2D, 0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xF4,0x82,
-0x00,0x00, 0x94,0x96, 0xFF,0xDC, 0x83,0x16, 0xFF,0xEC, 0x20,0x26, 0x00,0x07, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1B, 0x28,0x00, 0x87,0x2E, 0x00,0x00, 0x06,0x98,
-0x00,0x02, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xE2,0x00, 0x66,0x1C, 0xF7,0x37,
-0x28,0x00, 0x85,0x16, 0xFF,0xEC, 0x85,0x96, 0xFF,0xDC, 0x00,0x00, 0x00,0x01, 0xC7,0x2C,
-0x40,0x00, 0x86,0xBA, 0x00,0x30, 0x06,0x28, 0x00,0x04, 0x05,0x28, 0x00,0x02, 0x05,0xAC,
-0x00,0x02, 0x83,0x96, 0xFF,0xDC, 0x77,0x39, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0x03,0x9C,
-0x00,0x01, 0x93,0x96, 0xFF,0xDC, 0x20,0x1E, 0x00,0x07, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB4,
-0xFF,0xF0, 0xE2,0x00, 0x65,0xE1, 0xF6,0xB3, 0x28,0x00, 0x04,0x20, 0x00,0x1C, 0x84,0x96,
-0xFF,0xEC, 0x83,0x16, 0xFF,0xE4, 0x83,0x96, 0xFF,0xF4, 0x04,0xA4, 0x00,0x14, 0x94,0x96,
-0xFF,0xEC, 0x03,0x18, 0x00,0x0C, 0x93,0x16, 0xFF,0xE4, 0x03,0x9C, 0x00,0x01, 0xE0,0x00,
-0x64,0x94, 0x93,0x96, 0xFF,0xF4, 0x84,0x96, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x87,0x26,
-0x00,0x20, 0x00,0x00, 0x00,0x01, 0xF7,0x05, 0x4A,0x9C, 0x85,0xA6, 0x00,0x20, 0xF7,0x04,
-0x7A,0xB8, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0xF7,0x05, 0x7A,0xB8, 0xF7,0x04,
-0x7A,0xB8, 0xF6,0x84, 0x7A,0xC8, 0x86,0x26, 0x00,0x18, 0xC6,0xB4, 0x58,0x00, 0x87,0x26,
-0x00,0x1C, 0x00,0x00, 0x00,0x01, 0x27,0x38, 0x00,0x01, 0xC0,0x32, 0x72,0x00, 0x47,0x0C,
-0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x66,0xE5, 0xF6,0x85, 0x7A,0xC8, 0x83,0x26,
-0x00,0x08, 0xF7,0x04, 0x6E,0x50, 0xF3,0x05, 0x3B,0x64, 0x83,0xA6, 0x00,0x08, 0xF6,0x82,
-0x00,0x00, 0x93,0xBA, 0x1D,0xDC, 0x84,0xA6, 0x00,0x0C, 0x83,0x16, 0x00,0x00, 0x94,0xBA,
-0x00,0x10, 0x83,0x1A, 0x00,0x10, 0xF6,0x85, 0x7A,0xC8, 0x93,0x3A, 0x00,0x14, 0xF7,0x02,
-0x00,0x01, 0xF7,0x05, 0x40,0x84, 0xF6,0x85, 0x7A,0xC0, 0xF6,0x85, 0x7A,0xB8, 0xF6,0x85,
-0x7A,0xB0, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x04, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10,
-0x00,0x08, 0xF3,0x84, 0x6F,0x34, 0x00,0x00, 0x00,0x01, 0x87,0x1E, 0x00,0x18, 0xF6,0x84,
-0xE0,0x1C, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xEC,0x00, 0x67,0x29, 0xF7,0x02,
-0x00,0x01, 0xF7,0x02, 0x00,0x00, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x67,0xE8, 0xF5,0x82,
-0x00,0x01, 0xF7,0x04, 0xE0,0x1C, 0x86,0x9E, 0x00,0x18, 0x00,0x00, 0x00,0x01, 0xC0,0x3A,
-0x6A,0x00, 0x47,0x0C, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x67,0xE9, 0xC5,0x84,
-0x00,0x00, 0x86,0x9E, 0x00,0x10, 0xF7,0x04, 0xE0,0x00, 0xF6,0x02, 0x00,0x00, 0xC0,0x36,
-0x72,0x00, 0xE6,0x00, 0x67,0x88, 0x05,0x1C, 0x00,0x10, 0x86,0x9E, 0x00,0x14, 0xF7,0x04,
-0xE0,0x04, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0x67,0x8C, 0x20,0x32,
-0x00,0x00, 0xF6,0x02, 0x00,0x01, 0x20,0x32, 0x00,0x00, 0xE6,0x00, 0x67,0x99, 0x00,0x00,
-0x00,0x01, 0xF5,0x82, 0x00,0x00, 0x86,0xAA, 0x00,0x00, 0xF7,0x04, 0xE0,0x00, 0x00,0x00,
-0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE2,0x00, 0x67,0xD4, 0xF6,0x02, 0x00,0x00, 0xC0,0x36,
-0x72,0x00, 0xE6,0x00, 0x67,0xDC, 0x20,0x32, 0x00,0x00, 0x86,0xAA, 0x00,0x04, 0xF7,0x04,
-0xE0,0x04, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE2,0x00, 0x67,0xDD, 0x20,0x32,
-0x00,0x00, 0xF6,0x02, 0x00,0x01, 0x20,0x32, 0x00,0x00, 0xE6,0x00, 0x67,0xED, 0x20,0x2E,
-0x00,0x00, 0xF5,0x82, 0x00,0x01, 0x20,0x2E, 0x00,0x00, 0xE6,0x00, 0x68,0x10, 0xF6,0x06,
-0x42,0x9C, 0xF7,0x04, 0x42,0x9C, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38, 0x00,0x01, 0xF7,0x33, 0x28,0x00, 0xF7,0x04,
-0x75,0xF4, 0x75,0xAC, 0xFF,0xE1, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x68,0x45, 0x95,0x96,
-0xFF,0xF4, 0xF7,0x04, 0x42,0x98, 0xF6,0x06, 0x42,0x98, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38, 0x00,0x01, 0xF7,0x33,
-0x28,0x00, 0x87,0x1E, 0x00,0x20, 0x04,0x1C, 0x00,0x20, 0x76,0xA1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x20,0x3A, 0x00,0x08, 0xEE,0x00,
-0x68,0xC4, 0xF3,0x06, 0x15,0x54, 0xF5,0x02, 0x00,0x00, 0x05,0x9C, 0x00,0x22, 0xC4,0xAC,
-0x00,0x00, 0xF6,0x02, 0x00,0x01, 0x87,0x22, 0x00,0x00, 0x76,0xA1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0xC0,0x2A, 0x72,0x00, 0xEC,0x00,
-0x68,0xC0, 0xC6,0xA4, 0x60,0x00, 0xA7,0x26, 0x60,0x02, 0x76,0xB5, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0x05,0x28, 0x00,0x01, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xE8, 0xF7,0x2F,
-0x68,0x00, 0x05,0xAC, 0x00,0x01, 0xE0,0x00, 0x68,0x78, 0x06,0x30, 0x00,0x02, 0xF3,0x06,
-0x15,0x54, 0x93,0x13, 0xFF,0xFC, 0xF7,0x04, 0xE0,0x24, 0x00,0x00, 0x00,0x01, 0x97,0x13,
-0xFF,0xFC, 0xF7,0x04, 0xE0,0x1C, 0x00,0x00, 0x00,0x01, 0x97,0x13, 0xFF,0xFC, 0xF3,0x06,
-0xE0,0x00, 0x93,0x13, 0xFF,0xFC, 0x93,0x93, 0xFF,0xFC, 0xF3,0x02, 0x00,0x01, 0x93,0x13,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xEE,0x64, 0x97,0x93, 0xFF,0xFC, 0x20,0x22,
-0x00,0x00, 0xE6,0x00, 0x69,0x28, 0xF6,0x06, 0x42,0x9E, 0xF7,0x04, 0x42,0x9C, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38,
-0x00,0x01, 0xF7,0x33, 0x28,0x00, 0x83,0x16, 0xFF,0xF4, 0x00,0x00, 0x00,0x01, 0x20,0x1A,
-0x00,0x00, 0xE6,0x00, 0x69,0x6C, 0xF3,0x06, 0x35,0xEC, 0xF7,0x04, 0x42,0x30, 0x00,0x00,
-0x00,0x01, 0xC0,0x3A, 0x32,0x00, 0x47,0x0C, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x69,0x6D, 0xF0,0x05, 0x42,0x28, 0xF3,0x06, 0x35,0x60, 0xF3,0x05, 0x42,0x30, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x78,0x9C, 0x97,0x93, 0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0x04, 0xF5,0x04, 0x6F,0x34, 0xF7,0x04,
-0x42,0x40, 0x86,0x2A, 0x00,0x18, 0x07,0x38, 0x00,0x01, 0xF6,0x84, 0xE0,0x1C, 0xF7,0x05,
-0x42,0x40, 0xC0,0x36, 0x62,0x00, 0xEC,0x00, 0x69,0xB5, 0xF7,0x02, 0x00,0x01, 0xF7,0x02,
-0x00,0x00, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x6A,0x80, 0xF7,0x02, 0x00,0x01, 0xF7,0x04,
-0xE0,0x1C, 0x86,0xAA, 0x00,0x18, 0x00,0x00, 0x00,0x01, 0xC0,0x3A, 0x6A,0x00, 0x47,0x0C,
-0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x6A,0x7D, 0xC5,0x84, 0x00,0x00, 0x86,0xAA,
-0x00,0x10, 0xF7,0x04, 0xE0,0x00, 0xF6,0x02, 0x00,0x00, 0xC0,0x36, 0x72,0x00, 0xE6,0x00,
-0x6A,0x14, 0x04,0xA8, 0x00,0x10, 0x86,0xAA, 0x00,0x14, 0xF7,0x04, 0xE0,0x04, 0x00,0x00,
-0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0x6A,0x18, 0x20,0x32, 0x00,0x00, 0xF6,0x02,
-0x00,0x01, 0x20,0x32, 0x00,0x00, 0xE6,0x00, 0x6A,0x25, 0x00,0x00, 0x00,0x01, 0xF5,0x82,
-0x00,0x00, 0x86,0xA6, 0x00,0x00, 0xF7,0x04, 0xE0,0x00, 0x00,0x00, 0x00,0x01, 0xC0,0x36,
-0x72,0x00, 0xE2,0x00, 0x6A,0x60, 0xF6,0x02, 0x00,0x00, 0xC0,0x36, 0x72,0x00, 0xE6,0x00,
-0x6A,0x68, 0x20,0x32, 0x00,0x00, 0x86,0xA6, 0x00,0x04, 0xF7,0x04, 0xE0,0x04, 0x00,0x00,
-0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE2,0x00, 0x6A,0x69, 0x20,0x32, 0x00,0x00, 0xF6,0x02,
-0x00,0x01, 0x20,0x32, 0x00,0x00, 0xE6,0x00, 0x6A,0x81, 0xC7,0x2C, 0x00,0x00, 0xF5,0x82,
-0x00,0x01, 0xE0,0x00, 0x6A,0x80, 0xC7,0x2C, 0x00,0x00, 0xC7,0x04, 0x00,0x00, 0x20,0x3A,
-0x00,0x00, 0xEE,0x00, 0x6B,0x3D, 0xF6,0x86, 0x40,0x8A, 0xF7,0x04, 0x40,0x88, 0x76,0xB5,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x6B,0x3C, 0xF6,0x82, 0x00,0x00, 0xF6,0x85, 0x40,0x80, 0xF6,0x85,
-0x40,0x84, 0x96,0x93, 0xFF,0xFC, 0x96,0x93, 0xFF,0xFC, 0xF7,0x04, 0xE0,0x1C, 0x00,0x00,
-0x00,0x01, 0x97,0x13, 0xFF,0xFC, 0xF3,0x86, 0xE0,0x00, 0x93,0x93, 0xFF,0xFC, 0x95,0x13,
-0xFF,0xFC, 0xF3,0x82, 0x00,0x02, 0x93,0x93, 0xFF,0xFC, 0x96,0x96, 0xFF,0xF4, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0xEE,0x64, 0x97,0x93, 0xFF,0xFC, 0xF4,0x05, 0x40,0x84, 0x86,0x96,
-0xFF,0xF4, 0xF7,0x04, 0x6E,0x50, 0xF3,0x86, 0x35,0xEC, 0xF6,0x85, 0x40,0x90, 0xF6,0x85,
-0x40,0x94, 0x87,0x3A, 0x1D,0xDC, 0xF6,0x85, 0x42,0x28, 0xF7,0x05, 0x3B,0x64, 0xF7,0x04,
-0x42,0x30, 0xF4,0x05, 0x40,0x80, 0xC0,0x3A, 0x3A,0x00, 0x47,0x0C, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x6B,0x3D, 0xF3,0x86, 0x35,0x60, 0xF3,0x85, 0x42,0x30, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x78,0x9C, 0x97,0x93, 0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF4,0x86, 0x42,0x30, 0x94,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x01, 0x20,0xE4, 0x97,0x93, 0xFF,0xFC, 0x20,0x22, 0x00,0x00, 0xE6,0x00,
-0x6D,0xD9, 0xF5,0x82, 0x00,0x00, 0xF7,0x04, 0x40,0x8C, 0xF6,0x06, 0x40,0x8C, 0x76,0x31,
-0x00,0x1E, 0xF6,0x84, 0x42,0x28, 0x76,0x30, 0xFF,0xE5, 0x06,0xB4, 0x00,0x01, 0xC7,0x38,
-0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x6B,0xC8, 0xF6,0x85,
-0x42,0x28, 0xF7,0x04, 0x40,0x88, 0xF6,0x86, 0x40,0x8A, 0x76,0xB5, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x6D,0x0D, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x40,0x8C, 0xF6,0x86, 0x40,0x8C, 0x76,0xB5,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x6C,0x35, 0xF6,0x06, 0x40,0x8A, 0xF7,0x04, 0x40,0x88, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x6C,0x34, 0xF4,0x86, 0x36,0x78, 0xF7,0x04, 0x42,0x44, 0x00,0x00,
-0x00,0x01, 0xC0,0x3A, 0x4A,0x00, 0x47,0x0C, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x6C,0x35, 0xF4,0x82, 0x00,0x01, 0xF4,0xB3, 0x28,0x00, 0xE0,0x00, 0x6D,0x10, 0xF0,0x05,
-0x42,0x2C, 0xF7,0x04, 0x40,0x8C, 0xF5,0x06, 0x40,0x8C, 0x76,0xA9, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x6C,0xC1, 0xF6,0x06, 0x40,0x8A, 0xF7,0x04, 0x40,0x88, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x6C,0xC1, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x42,0x2C, 0x00,0x00, 0x00,0x01, 0x07,0x38,
-0x00,0x01, 0x20,0x3A, 0x00,0x09, 0xEE,0x00, 0x6D,0x11, 0xF7,0x05, 0x42,0x2C, 0xF0,0x2B,
-0x28,0x00, 0xF0,0x33, 0x28,0x00, 0xF5,0x82, 0x00,0x01, 0xF7,0x04, 0x42,0x94, 0xF6,0x06,
-0x42,0x94, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39,
-0xFF,0xF0, 0x07,0x38, 0x00,0x01, 0xE0,0x00, 0x6D,0x10, 0xF7,0x33, 0x28,0x00, 0xF7,0x04,
-0x40,0x8C, 0xF6,0x86, 0x40,0x8C, 0x76,0xB5, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x6D,0x14, 0x20,0x2E,
-0x00,0x00, 0xF7,0x04, 0x40,0x88, 0xF6,0x06, 0x40,0x8A, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x6D,0x15, 0x20,0x2E, 0x00,0x00, 0xF0,0x33, 0x28,0x00, 0xF5,0x82, 0x00,0x01, 0x20,0x2E,
-0x00,0x00, 0xE6,0x00, 0x6D,0xB5, 0xF4,0x86, 0x35,0xEC, 0xF7,0x04, 0x42,0x30, 0x00,0x00,
-0x00,0x01, 0xC0,0x3A, 0x4A,0x00, 0x47,0x0C, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x6D,0x59, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0xE0,0x28, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x6D,0x79, 0xF6,0x82, 0x00,0x3C, 0xF6,0x84, 0xE0,0x28, 0xE0,0x00,
-0x6D,0x78, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0xE0,0x28, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x6D,0x79, 0xF6,0x82, 0x00,0xF0, 0xF7,0x04, 0xE0,0x28, 0x00,0x00,
-0x00,0x01, 0x76,0xB9, 0x00,0x02, 0xF7,0x04, 0x42,0x28, 0x00,0x00, 0x00,0x01, 0xC0,0x3A,
-0x6A,0x00, 0xEC,0x00, 0x6D,0xB5, 0xF6,0x86, 0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0xF0,0x05,
-0x42,0x28, 0x06,0x38, 0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF4,0x82,
-0x00,0x19, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0x6D,0xB4, 0xB4,0xBA, 0x68,0x02, 0xF0,0x05,
-0x2D,0x38, 0xF4,0x82, 0xC3,0x50, 0x94,0x93, 0xFF,0xFC, 0xF4,0x82, 0x00,0x16, 0x94,0x93,
-0xFF,0xFC, 0xF4,0x86, 0x42,0x30, 0x94,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01,
-0x1E,0xC0, 0x97,0x93, 0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0x22,0x10, 0x00,0x04, 0xF5,0x86, 0x36,0x78, 0x95,0x93, 0xFF,0xFC, 0xF5,0x86,
-0x42,0x44, 0x95,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x15,0x48, 0x97,0x93,
-0xFF,0xFC, 0xF5,0x82, 0x74,0x18, 0x95,0x93, 0xFF,0xFC, 0xF5,0x82, 0x00,0x19, 0x95,0x93,
-0xFF,0xFC, 0xF5,0x86, 0x36,0x78, 0x95,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF5,0x82, 0x74,0xAC, 0x95,0x93, 0xFF,0xFC, 0xF7,0x82,
-0x00,0x1D, 0x97,0x93, 0xFF,0xFC, 0xF5,0x86, 0x37,0x04, 0x95,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF5,0x82, 0x78,0x00, 0x95,0x93,
-0xFF,0xFC, 0xF7,0x82, 0x00,0x1B, 0x97,0x93, 0xFF,0xFC, 0xF5,0x86, 0x37,0x04, 0x95,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF5,0x82,
-0x78,0xFC, 0x95,0x93, 0xFF,0xFC, 0xF7,0x82, 0x00,0x1A, 0x97,0x93, 0xFF,0xFC, 0xF5,0x86,
-0x37,0x90, 0x95,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93,
-0xFF,0xFC, 0xF5,0x82, 0x80,0xD8, 0x95,0x93, 0xFF,0xFC, 0xF7,0x82, 0x00,0x1B, 0x97,0x93,
-0xFF,0xFC, 0xF5,0x86, 0x37,0x90, 0x95,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF5,0x82, 0x81,0x74, 0x95,0x93, 0xFF,0xFC, 0xF7,0x82,
-0x00,0x1D, 0x97,0x93, 0xFF,0xFC, 0xF5,0x86, 0x38,0x1C, 0x95,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF5,0x82, 0x87,0x74, 0x95,0x93,
-0xFF,0xFC, 0xF7,0x82, 0x00,0x1B, 0x97,0x93, 0xFF,0xFC, 0xF5,0x86, 0x38,0x1C, 0x95,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF5,0x82,
-0x94,0xF8, 0x95,0x93, 0xFF,0xFC, 0xF7,0x82, 0x00,0x1B, 0x97,0x93, 0xFF,0xFC, 0xF5,0x86,
-0x39,0x34, 0x95,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93,
-0xFF,0xFC, 0xF5,0x82, 0x8A,0x00, 0x95,0x93, 0xFF,0xFC, 0xF7,0x82, 0x00,0x1C, 0x97,0x93,
-0xFF,0xFC, 0xF5,0x86, 0x39,0x34, 0x95,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF5,0x82, 0x8E,0x08, 0x95,0x93, 0xFF,0xFC, 0xF7,0x82,
-0x00,0x1A, 0x97,0x93, 0xFF,0xFC, 0xF5,0x86, 0x39,0x34, 0x95,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF5,0x82, 0x96,0x9C, 0x95,0x93,
-0xFF,0xFC, 0xF7,0x82, 0x00,0x1E, 0x97,0x93, 0xFF,0xFC, 0xF5,0x86, 0x38,0xA8, 0x95,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF5,0x82,
-0x9B,0x2C, 0x95,0x93, 0xFF,0xFC, 0xF7,0x82, 0x00,0x1B, 0x97,0x93, 0xFF,0xFC, 0xF5,0x86,
-0x38,0xA8, 0x95,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93,
-0xFF,0xFC, 0xF5,0x82, 0xA2,0xDC, 0x95,0x93, 0xFF,0xFC, 0xF7,0x82, 0x00,0x1E, 0x97,0x93,
-0xFF,0xFC, 0xF5,0x86, 0x3A,0xD8, 0x95,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF5,0x82, 0x9E,0x54, 0x95,0x93, 0xFF,0xFC, 0xF7,0x82,
-0x00,0x1B, 0x97,0x93, 0xFF,0xFC, 0xF5,0x86, 0x3A,0xD8, 0x95,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF5,0x82, 0xA3,0xC0, 0x95,0x93,
-0xFF,0xFC, 0xF7,0x82, 0x00,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF5,0x86, 0x39,0xC0, 0x95,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF5,0x82,
-0xA7,0x64, 0x95,0x93, 0xFF,0xFC, 0xF7,0x82, 0x00,0x1E, 0x97,0x93, 0xFF,0xFC, 0xF5,0x86,
-0x39,0xC0, 0x95,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93,
-0xFF,0xFC, 0xF5,0x82, 0xAA,0x04, 0x95,0x93, 0xFF,0xFC, 0xF7,0x82, 0x00,0x1B, 0x97,0x93,
-0xFF,0xFC, 0xF5,0x86, 0x39,0xC0, 0x95,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF5,0x82, 0xAE,0xF8, 0x95,0x93, 0xFF,0xFC, 0xF7,0x82,
-0x00,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF5,0x86, 0x3A,0x4C, 0x95,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06, 0x42,0x50, 0xF0,0x3B,
-0x28,0x00, 0xF7,0x06, 0x40,0x88, 0xF0,0x3B, 0x28,0x00, 0xF6,0x02, 0x00,0x00, 0xF6,0x05,
-0x40,0x80, 0xF6,0x05, 0x40,0x84, 0xF7,0x06, 0x3B,0x70, 0xF6,0x3B, 0x28,0x00, 0xF7,0x06,
-0x3B,0x72, 0xF0,0xBB, 0x28,0x00, 0xF5,0x82, 0xCA,0x20, 0xF5,0x85, 0x3B,0x74, 0xF7,0x06,
-0x3B,0x78, 0xF0,0x3B, 0x28,0x00, 0xF7,0x06, 0x3B,0x7A, 0xF0,0xBB, 0x28,0x00, 0xF5,0x82,
-0xB1,0x94, 0xF5,0x85, 0x3B,0x7C, 0xF7,0x06, 0x3B,0x80, 0xF0,0x3B, 0x28,0x00, 0xF7,0x06,
-0x3B,0x82, 0xF0,0xBB, 0x28,0x00, 0xF5,0x82, 0xC7,0x54, 0xF5,0x85, 0x3B,0x84, 0xF7,0x06,
-0x3B,0x88, 0xF0,0x3B, 0x28,0x00, 0xF7,0x06, 0x3B,0x8A, 0xF0,0xBB, 0x28,0x00, 0xF5,0x82,
-0xBE,0xF8, 0xF5,0x85, 0x3B,0x8C, 0xF7,0x06, 0x3B,0x90, 0xF0,0x3B, 0x28,0x00, 0xF7,0x06,
-0x3B,0x92, 0xF0,0xBB, 0x28,0x00, 0xF5,0x82, 0xC8,0xF8, 0xF5,0x85, 0x3B,0x94, 0xF7,0x06,
-0x3B,0x98, 0xF0,0x3B, 0x28,0x00, 0xF7,0x06, 0x3B,0x9A, 0xF0,0xBB, 0x28,0x00, 0xF5,0x82,
-0xC5,0xD8, 0xF5,0x85, 0x3B,0x9C, 0xF7,0x06, 0x3B,0xA0, 0xF0,0x3B, 0x28,0x00, 0xF7,0x06,
-0x3B,0xA2, 0xF0,0xBB, 0x28,0x00, 0xF5,0x82, 0xC7,0x70, 0xF5,0x85, 0x3B,0xA4, 0xF7,0x06,
-0x3B,0xA8, 0xF0,0x3B, 0x28,0x00, 0xF7,0x06, 0x3B,0xAA, 0xF0,0xBB, 0x28,0x00, 0xF5,0x82,
-0xC1,0xB4, 0xF5,0x85, 0x3B,0xAC, 0x96,0x16, 0xFF,0xF4, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0xD5,0x40, 0x97,0x93, 0xFF,0xFC, 0xF6,0x84, 0x6E,0x50, 0x86,0x16, 0xFF,0xF4, 0x00,0x00,
-0x00,0x01, 0x96,0x36, 0x1D,0xDC, 0xF6,0x05, 0x3B,0x64, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0x30, 0x25,0x94, 0x00,0x20, 0xF0,0x2F,
-0x28,0x00, 0x26,0x14, 0x00,0x38, 0xF0,0x33, 0x28,0x00, 0x90,0x13, 0xFF,0xFC, 0xF7,0x04,
-0x42,0x50, 0xF6,0x86, 0x42,0x50, 0x76,0xB5, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x97,0x13, 0xFF,0xFC, 0x96,0x13, 0xFF,0xFC, 0x95,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xF5,0xF4, 0x97,0x93, 0xFF,0xFC, 0x20,0x22,
-0x00,0x00, 0xE6,0x00, 0x72,0x1D, 0xF5,0x02, 0x17,0x70, 0xF7,0x04, 0x42,0x54, 0x00,0x00,
-0x00,0x01, 0x27,0x38, 0x00,0x01, 0xF7,0x05, 0x42,0x54, 0x95,0x13, 0xFF,0xFC, 0xF5,0x02,
-0x00,0x1B, 0x95,0x13, 0xFF,0xFC, 0xF5,0x06, 0x42,0x44, 0x95,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x01, 0x1E,0xC0, 0x97,0x93, 0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF7,0x04, 0xE0,0x04, 0x86,0x16, 0x00,0x00, 0xF6,0x82,
-0x00,0xFF, 0x77,0x39, 0xFF,0xF0, 0xC7,0x38, 0x6C,0x00, 0xF7,0x33, 0x28,0x00, 0xF7,0x06,
-0xE0,0x06, 0x87,0x3A, 0x00,0x00, 0x06,0xB0, 0x00,0x02, 0xF7,0x37, 0x28,0x00, 0xF6,0x84,
-0x3B,0x64, 0x07,0x30, 0x00,0x04, 0xF6,0xBB, 0x28,0x00, 0x87,0x02, 0xFF,0x34, 0x06,0x30,
-0x00,0x06, 0xF7,0x33, 0x28,0x00, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x04, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0x22,0x10, 0x00,0x30, 0x26,0x14, 0x00,0x20, 0xF0,0x33, 0x28,0x00, 0x27,0x14,
-0x00,0x38, 0xF0,0x3B, 0x28,0x00, 0x97,0x13, 0xFF,0xFC, 0x90,0x93, 0xFF,0xFC, 0xF7,0x04,
-0x42,0x50, 0xF6,0x86, 0x42,0x50, 0x76,0xB5, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x97,0x13, 0xFF,0xFC, 0x96,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0xF3,0x38, 0x97,0x93, 0xFF,0xFC, 0x20,0x22, 0x00,0x00, 0xE6,0x00,
-0x73,0x19, 0xF5,0x82, 0x17,0x70, 0xF7,0x04, 0x42,0x54, 0x00,0x00, 0x00,0x01, 0x27,0x38,
-0x00,0x01, 0xF7,0x05, 0x42,0x54, 0x95,0x93, 0xFF,0xFC, 0xF5,0x82, 0x00,0x1B, 0x95,0x93,
-0xFF,0xFC, 0xF5,0x86, 0x42,0x44, 0x95,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01,
-0x1E,0xC0, 0x97,0x93, 0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0x22,0x10, 0x00,0x40, 0x26,0x14, 0x00,0x20, 0x96,0x16, 0xFF,0xC4, 0xF0,0x33,
-0x28,0x00, 0x90,0x13, 0xFF,0xFC, 0x96,0x13, 0xFF,0xFC, 0x26,0x14, 0x00,0x38, 0x96,0x16,
-0xFF,0xBC, 0x96,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xD0,0xDC, 0x97,0x93,
-0xFF,0xFC, 0x90,0x13, 0xFF,0xFC, 0xF7,0x04, 0x42,0x50, 0xF6,0x86, 0x42,0x50, 0x76,0xB5,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x97,0x13,
-0xFF,0xFC, 0x86,0x16, 0xFF,0xBC, 0x00,0x00, 0x00,0x01, 0x96,0x13, 0xFF,0xFC, 0x86,0x16,
-0xFF,0xC4, 0x00,0x00, 0x00,0x01, 0x96,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0xF5,0xF4, 0x97,0x93, 0xFF,0xFC, 0x20,0x22, 0x00,0x00, 0xE6,0x00, 0x73,0xE5, 0xF6,0x02,
-0x17,0x70, 0xF7,0x04, 0x42,0x54, 0x00,0x00, 0x00,0x01, 0x27,0x38, 0x00,0x01, 0xF7,0x05,
-0x42,0x54, 0x96,0x13, 0xFF,0xFC, 0xF6,0x02, 0x00,0x1B, 0x96,0x13, 0xFF,0xFC, 0xF6,0x06,
-0x42,0x44, 0x96,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x1E,0xC0, 0x97,0x93,
-0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10,
-0x00,0x04, 0xF5,0x82, 0x00,0x00, 0xF5,0x85, 0x40,0x80, 0x95,0x96, 0xFF,0xF4, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0xCB,0x50, 0x97,0x93, 0xFF,0xFC, 0x85,0x96, 0xFF,0xF4, 0xF5,0x02,
-0x00,0x64, 0xF5,0x05, 0x3B,0xB4, 0xF7,0x04, 0x42,0x50, 0xF4,0x86, 0x42,0x50, 0x76,0xA5,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xF6,0x04, 0x4F,0x5C, 0xF4,0x02, 0x00,0x06, 0xF4,0x05,
-0x42,0x54, 0xF5,0x85, 0x3B,0x6C, 0xF5,0x85, 0x3B,0xB8, 0x95,0x32, 0x00,0x00, 0x95,0xB2,
-0x00,0x04, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38, 0x00,0x01, 0xF7,0x27,
-0x28,0x00, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x71,0xB0, 0x97,0x93, 0xFF,0xFC, 0xF4,0x06,
-0x37,0x04, 0xF4,0x05, 0x42,0x44, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0x22,0x10, 0x00,0x50, 0xF7,0x04, 0x42,0x50, 0xF6,0x86, 0x42,0x50, 0x76,0xB5,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xF6,0x04, 0x6F,0x34, 0xC7,0x38, 0x6F,0xC0, 0x86,0xB2,
-0x00,0x0C, 0x77,0x39, 0xFF,0xF0, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0x77,0xEC, 0xC5,0x04,
-0x00,0x00, 0x86,0xB2, 0x00,0x10, 0xF7,0x04, 0xE0,0x00, 0xF3,0x02, 0x00,0x00, 0xC0,0x36,
-0x72,0x00, 0xE6,0x00, 0x75,0x18, 0x04,0xB0, 0x00,0x10, 0x86,0xB2, 0x00,0x14, 0xF7,0x04,
-0xE0,0x04, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0x75,0x1C, 0x20,0x1A,
-0x00,0x00, 0xF3,0x02, 0x00,0x01, 0x20,0x1A, 0x00,0x00, 0xE6,0x00, 0x75,0x29, 0x00,0x00,
-0x00,0x01, 0xF5,0x02, 0x00,0x00, 0x86,0xA6, 0x00,0x00, 0xF7,0x04, 0xE0,0x00, 0x00,0x00,
-0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE2,0x00, 0x75,0x64, 0xF6,0x02, 0x00,0x00, 0xC0,0x36,
-0x72,0x00, 0xE6,0x00, 0x75,0x6C, 0x20,0x32, 0x00,0x00, 0x86,0xA6, 0x00,0x04, 0xF7,0x04,
-0xE0,0x04, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE2,0x00, 0x75,0x6D, 0x20,0x32,
-0x00,0x00, 0xF6,0x02, 0x00,0x01, 0x20,0x32, 0x00,0x00, 0xE6,0x00, 0x75,0x7D, 0x20,0x2A,
-0x00,0x00, 0xF5,0x02, 0x00,0x01, 0x20,0x2A, 0x00,0x00, 0xE6,0x00, 0x77,0xEC, 0x00,0x00,
-0x00,0x01, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xCB,0xCC, 0x97,0x93, 0xFF,0xFC, 0x26,0x14,
-0x00,0x20, 0xF0,0x33, 0x28,0x00, 0x04,0xA0, 0x00,0x02, 0xF0,0x27, 0x28,0x00, 0xF5,0x82,
-0x00,0x00, 0x23,0x94, 0x00,0x22, 0xF5,0x9F, 0x28,0x00, 0x03,0xA0, 0x00,0x1A, 0x93,0x96,
-0xFF,0xD4, 0x25,0x94, 0x00,0x22, 0x85,0xAE, 0x00,0x00, 0x77,0xAD, 0x00,0x1E, 0x77,0xBC,
-0xFF,0xE5, 0xC5,0xAC, 0x7F,0xC0, 0x75,0xAD, 0xFF,0xF0, 0x76,0x31, 0x00,0x1E, 0x76,0x30,
-0xFF,0xE5, 0x06,0xA4, 0x00,0x02, 0x23,0x14, 0x00,0x1E, 0x75,0x15, 0x00,0x1E, 0xF5,0x9F,
-0x28,0x00, 0xF3,0x84, 0xE0,0x00, 0x75,0x28, 0xFF,0xE5, 0x93,0xA2, 0x00,0x1C, 0xF5,0x84,
-0xE0,0x04, 0x73,0x99, 0x00,0x1E, 0x73,0x9C, 0xFF,0xE5, 0x93,0x96, 0xFF,0xAC, 0x73,0x95,
-0x00,0x1E, 0x73,0x9C, 0xFF,0xE5, 0x93,0x96, 0xFF,0xCC, 0x23,0x94, 0x00,0x42, 0x95,0xA2,
-0x00,0x20, 0x87,0x16, 0xFF,0xE0, 0x75,0x95, 0x00,0x1E, 0x75,0xAC, 0xFF,0xE5, 0x95,0x96,
-0xFF,0xB4, 0x75,0x95, 0x00,0x1E, 0x75,0xAC, 0xFF,0xE5, 0x95,0x96, 0xFF,0xC4, 0xC7,0x38,
-0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0xF4,0x84, 0x4F,0x58, 0x87,0x1A,
-0x00,0x00, 0xC4,0xA0, 0x4A,0x00, 0x74,0xA4, 0xFF,0xFA, 0xC5,0xA4, 0x00,0x00, 0xF5,0x9F,
-0x28,0x00, 0x83,0x96, 0xFF,0xAC, 0x23,0x14, 0x00,0x1A, 0x76,0x19, 0x00,0x1E, 0x76,0x30,
-0xFF,0xE5, 0x85,0x96, 0xFF,0xB4, 0xC7,0x38, 0x3F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37,
-0x28,0x00, 0x06,0xB4, 0x00,0x02, 0x87,0x16, 0xFF,0xE4, 0x83,0x96, 0xFF,0xCC, 0xC7,0x38,
-0x57,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x87,0x1A, 0x00,0x00, 0x06,0xB4,
-0x00,0x02, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x06,0xB4,
-0x00,0x02, 0x87,0x16, 0xFF,0xE8, 0x23,0x14, 0x00,0x16, 0x76,0x19, 0x00,0x1E, 0x76,0x30,
-0xFF,0xE5, 0xC7,0x38, 0x5F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x87,0x1A,
-0x00,0x00, 0x06,0xB4, 0x00,0x02, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37,
-0x28,0x00, 0x06,0xB4, 0x00,0x02, 0x87,0x16, 0xFF,0xEC, 0x23,0x14, 0x00,0x12, 0x76,0x19,
-0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38, 0x3F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37,
-0x28,0x00, 0x87,0x1A, 0x00,0x00, 0x06,0xB4, 0x00,0x02, 0x85,0x96, 0xFF,0xC4, 0xC7,0x38,
-0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x87,0x16, 0xFF,0xF0, 0x06,0xB4,
-0x00,0x02, 0xC7,0x38, 0x5F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0xF3,0x82,
-0x00,0x02, 0xF3,0xA3, 0x28,0x00, 0x04,0x20, 0x00,0x18, 0x25,0x94, 0x00,0x22, 0x85,0xAE,
-0x00,0x00, 0x77,0xAD, 0x00,0x1E, 0x77,0xBC, 0xFF,0xE5, 0xC5,0xAC, 0x7F,0xC0, 0x75,0xAD,
-0xFF,0xF0, 0x83,0x96, 0xFF,0xD4, 0xF5,0xA3, 0x28,0x00, 0xF4,0x9F, 0x28,0x00, 0x25,0x94,
-0x00,0x42, 0x85,0xAE, 0x00,0x00, 0x77,0xAD, 0x00,0x1E, 0x77,0xBC, 0xFF,0xE5, 0xC5,0xAC,
-0x7F,0xC0, 0x75,0xAD, 0xFF,0xF0, 0x44,0xAD, 0x00,0x00, 0x94,0x93, 0xFF,0xFC, 0xF7,0x86,
-0xE0,0x00, 0x97,0x93, 0xFF,0xFC, 0xF3,0x84, 0x4F,0x5C, 0x00,0x00, 0x00,0x01, 0x93,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x23,0x40, 0x97,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x78,0xD8, 0x97,0x93, 0xFF,0xFC, 0xF0,0x05, 0x40,0x84, 0xF7,0x86,
-0xE0,0x00, 0x97,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xD5,0xA0, 0x97,0x93,
-0xFF,0xFC, 0xF7,0x04, 0x6E,0x50, 0xF4,0x05, 0x40,0x84, 0x87,0x3A, 0x1D,0xDC, 0x00,0x00,
-0x00,0x01, 0xF7,0x05, 0x3B,0x64, 0xF5,0x86, 0x36,0x78, 0xF5,0x85, 0x42,0x44, 0xF3,0x86,
-0x35,0x60, 0xF3,0x85, 0x42,0x30, 0xF5,0x86, 0x42,0x44, 0x95,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x01, 0x1F,0x48, 0x97,0x93, 0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF5,0x86, 0x42,0x44, 0x95,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x01, 0x20,0xE4, 0x97,0x93, 0xFF,0xFC, 0x20,0x22, 0x00,0x00, 0xE6,0x00,
-0x78,0x89, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x42,0x54, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xEE,0x00, 0x78,0x51, 0xF6,0x06, 0x42,0x50, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x71,0xB0, 0x97,0x93, 0xFF,0xFC, 0xE0,0x00, 0x78,0x88, 0x00,0x00, 0x00,0x01, 0xF7,0x04,
-0x42,0x50, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xF5,0x82, 0x00,0x06, 0xF5,0x85,
-0x42,0x54, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38, 0x00,0x01, 0xF7,0x33,
-0x28,0x00, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x72,0xAC, 0x97,0x93, 0xFF,0xFC, 0xF5,0x86,
-0x37,0x90, 0xF5,0x85, 0x42,0x44, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0xF6,0x06, 0x36,0x78, 0xF6,0x05, 0x42,0x44, 0xF7,0x02, 0x00,0x00, 0xF7,0x05,
-0x40,0x80, 0xF7,0x05, 0x40,0x94, 0xF6,0x84, 0x6E,0x50, 0xF7,0x05, 0x40,0x90, 0x97,0x36,
-0x1D,0xDC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF7,0x02,
-0x00,0x01, 0xF7,0x05, 0x40,0x80, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0x22,0x10, 0x00,0xA8, 0xF7,0x04, 0x42,0x50, 0xF5,0x86, 0x42,0x50, 0x76,0xAD,
-0x00,0x1E, 0xF4,0x84, 0x6F,0x34, 0x76,0xB4, 0xFF,0xE5, 0x94,0x96, 0xFF,0xC4, 0xC7,0x38,
-0x6F,0xC0, 0x86,0xA6, 0x00,0x0C, 0x77,0x39, 0xFF,0xF0, 0xC0,0x36, 0x72,0x00, 0xE6,0x00,
-0x79,0x55, 0xF6,0x06, 0x42,0x9A, 0xF7,0x04, 0x42,0x98, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38, 0x00,0x01, 0xF7,0x33,
-0x28,0x00, 0xF7,0x04, 0x42,0x50, 0x76,0xAD, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0x85,0x16,
-0xFF,0xC4, 0xC7,0x38, 0x6F,0xC0, 0x86,0xAA, 0x00,0x0C, 0x77,0x39, 0xFF,0xF0, 0xC0,0x36,
-0x72,0x00, 0xE6,0x00, 0x80,0xA8, 0xF6,0x06, 0x42,0x9A, 0x87,0x2A, 0x00,0x10, 0x86,0x2A,
-0x00,0x1C, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x79,0xA8, 0xF6,0x82, 0x00,0x00, 0x87,0x2A,
-0x00,0x14, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x79,0xAC, 0x20,0x36,
-0x00,0x00, 0xF6,0x82, 0x00,0x01, 0x20,0x36, 0x00,0x00, 0xE6,0x00, 0x7A,0x05, 0x24,0x94,
-0x00,0x20, 0x94,0x96, 0xFF,0xBC, 0x85,0x16, 0xFF,0xC4, 0xF0,0x27, 0x28,0x00, 0x05,0x28,
-0x00,0x10, 0x95,0x16, 0xFF,0xB4, 0x95,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x72,0x50, 0x97,0x93, 0xFF,0xFC, 0x84,0x96, 0xFF,0xB4, 0x00,0x00, 0x00,0x01, 0x94,0x93,
-0xFF,0xFC, 0x85,0x16, 0xFF,0xBC, 0x00,0x00, 0x00,0x01, 0x95,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0xF9,0x34, 0x97,0x93, 0xFF,0xFC, 0xE0,0x00, 0x80,0xC4, 0x00,0x00,
-0x00,0x01, 0x20,0x32, 0x00,0x00, 0xE6,0x00, 0x80,0x6C, 0x00,0x00, 0x00,0x01, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0xCB,0xCC, 0x97,0x93, 0xFF,0xFC, 0x25,0x94, 0x00,0x20, 0xF0,0x2F,
-0x28,0x00, 0x04,0xA0, 0x00,0x02, 0x94,0x96, 0xFF,0x5C, 0xF0,0x27, 0x28,0x00, 0xF4,0x82,
-0x00,0x00, 0x25,0x14, 0x00,0x5A, 0xF4,0xAB, 0x28,0x00, 0x07,0x20, 0x00,0x1A, 0x25,0x14,
-0x00,0x5A, 0x85,0x2A, 0x00,0x00, 0x77,0xA9, 0x00,0x1E, 0x77,0xBC, 0xFF,0xE5, 0xC5,0x28,
-0x7F,0xC0, 0x75,0x29, 0xFF,0xF0, 0x75,0xAD, 0x00,0x1E, 0x75,0xAC, 0xFF,0xE5, 0x23,0x14,
-0x00,0x1E, 0x76,0x19, 0x00,0x1E, 0xF5,0x3B, 0x28,0x00, 0xF4,0x84, 0xE0,0x00, 0x76,0x30,
-0xFF,0xE5, 0x94,0xA2, 0x00,0x1C, 0xF5,0x04, 0xE0,0x04, 0x84,0x96, 0xFF,0x5C, 0x95,0x22,
-0x00,0x20, 0x87,0x16, 0xFF,0xE0, 0x06,0xA4, 0x00,0x02, 0x75,0x15, 0x00,0x1E, 0x75,0x28,
-0xFF,0xE5, 0x95,0x16, 0xFF,0x54, 0x74,0x95, 0x00,0x1E, 0x74,0xA4, 0xFF,0xE5, 0x94,0x96,
-0xFF,0x9C, 0x75,0x15, 0x00,0x1E, 0x75,0x28, 0xFF,0xE5, 0x95,0x16, 0xFF,0x94, 0x74,0x95,
-0x00,0x1E, 0x85,0x16, 0xFF,0x5C, 0x74,0xA4, 0xFF,0xE5, 0x94,0x96, 0xFF,0x8C, 0x84,0x96,
-0xFF,0x54, 0xC7,0x38, 0x5F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x87,0x1A,
-0x00,0x00, 0x85,0x16, 0xFF,0x9C, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37,
-0x28,0x00, 0x06,0xB4, 0x00,0x02, 0x87,0x16, 0xFF,0xE4, 0x23,0x14, 0x00,0x1A, 0x76,0x19,
-0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38, 0x4F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37,
-0x28,0x00, 0x87,0x1A, 0x00,0x00, 0x06,0xB4, 0x00,0x02, 0x84,0x96, 0xFF,0x94, 0xC7,0x38,
-0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x06,0xB4, 0x00,0x02, 0x87,0x16,
-0xFF,0xE8, 0x23,0x14, 0x00,0x16, 0x76,0x19, 0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38,
-0x57,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x87,0x1A, 0x00,0x00, 0x06,0xB4,
-0x00,0x02, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x06,0xB4,
-0x00,0x02, 0x87,0x16, 0xFF,0xEC, 0x23,0x14, 0x00,0x12, 0x76,0x19, 0x00,0x1E, 0x76,0x30,
-0xFF,0xE5, 0xC7,0x38, 0x4F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x87,0x1A,
-0x00,0x00, 0x06,0xB4, 0x00,0x02, 0x85,0x16, 0xFF,0x8C, 0xC7,0x38, 0x67,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x87,0x16, 0xFF,0xF0, 0x06,0xB4, 0x00,0x02, 0xC7,0x38,
-0x57,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0xF4,0x82, 0x00,0x02, 0xF4,0xA3,
-0x28,0x00, 0x25,0x14, 0x00,0x5A, 0x85,0x2A, 0x00,0x00, 0x77,0xA9, 0x00,0x1E, 0x77,0xBC,
-0xFF,0xE5, 0xC5,0x28, 0x7F,0xC0, 0x75,0x29, 0xFF,0xF0, 0x07,0x20, 0x00,0x18, 0xF5,0x3B,
-0x28,0x00, 0x94,0x16, 0xFF,0xAC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xCB,0xCC, 0x97,0x93,
-0xFF,0xFC, 0x26,0x14, 0x00,0x38, 0x24,0x94, 0x00,0x5A, 0x84,0xA6, 0x00,0x00, 0x77,0xA5,
-0x00,0x1E, 0x77,0xBC, 0xFF,0xE5, 0xC4,0xA4, 0x7F,0xC0, 0x74,0xA5, 0xFF,0xF0, 0x05,0xA0,
-0x00,0x02, 0x06,0xAC, 0x00,0x02, 0x23,0x94, 0x00,0x36, 0x75,0x1D, 0x00,0x1E, 0x75,0x28,
-0xFF,0xE5, 0x07,0x20, 0x00,0x1A, 0xF4,0xB3, 0x28,0x00, 0x76,0x31, 0x00,0x1E, 0x76,0x30,
-0xFF,0xE5, 0x95,0x16, 0xFF,0x54, 0x74,0x95, 0x00,0x1E, 0x74,0xA4, 0xFF,0xE5, 0x94,0x96,
-0xFF,0x5C, 0x75,0x15, 0x00,0x1E, 0x75,0x28, 0xFF,0xE5, 0x95,0x16, 0xFF,0x7C, 0x74,0x95,
-0x00,0x1E, 0x85,0x16, 0xFF,0xC4, 0x74,0xA4, 0xFF,0xE5, 0x94,0x96, 0xFF,0x74, 0x85,0x2A,
-0x00,0x34, 0x24,0x94, 0x00,0x5A, 0x95,0x16, 0xFF,0x84, 0x84,0xA6, 0x00,0x00, 0x77,0xA5,
-0x00,0x1E, 0x77,0xBC, 0xFF,0xE5, 0xC4,0xA4, 0x7F,0xC0, 0x74,0xA5, 0xFF,0xF0, 0x25,0x14,
-0x00,0x5A, 0xF4,0xAF, 0x28,0x00, 0x85,0x2A, 0x00,0x00, 0x77,0xA9, 0x00,0x1E, 0x77,0xBC,
-0xFF,0xE5, 0xC5,0x28, 0x7F,0xC0, 0x75,0x29, 0xFF,0xF0, 0x84,0x96, 0xFF,0xC4, 0xF5,0x3B,
-0x28,0x00, 0x84,0xA6, 0x00,0x10, 0x85,0x16, 0xFF,0xC4, 0x94,0xA2, 0x00,0x1C, 0x85,0x2A,
-0x00,0x14, 0x74,0x95, 0x00,0x1E, 0x74,0xA4, 0xFF,0xE5, 0x94,0x96, 0xFF,0x6C, 0x95,0x22,
-0x00,0x20, 0x87,0x16, 0xFF,0xC8, 0x85,0x16, 0xFF,0x54, 0xC7,0x38, 0x67,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x2F, 0x28,0x00, 0x87,0x1E, 0x00,0x00, 0x84,0x96, 0xFF,0x5C, 0xC7,0x38,
-0x57,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x06,0xB4, 0x00,0x02, 0x87,0x16,
-0xFF,0xCC, 0x23,0x94, 0x00,0x32, 0x76,0x1D, 0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0x85,0x16,
-0xFF,0x7C, 0xC7,0x38, 0x4F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x87,0x1E,
-0x00,0x00, 0x06,0xB4, 0x00,0x02, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37,
-0x28,0x00, 0x06,0xB4, 0x00,0x02, 0x87,0x16, 0xFF,0xD0, 0x23,0x94, 0x00,0x2E, 0x76,0x1D,
-0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38, 0x57,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37,
-0x28,0x00, 0x87,0x1E, 0x00,0x00, 0x06,0xB4, 0x00,0x02, 0x84,0x96, 0xFF,0x74, 0x85,0x16,
-0xFF,0x6C, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x06,0xB4,
-0x00,0x02, 0x87,0x16, 0xFF,0xD4, 0x23,0x94, 0x00,0x2A, 0x76,0x1D, 0x00,0x1E, 0x76,0x30,
-0xFF,0xE5, 0xC7,0x38, 0x4F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x87,0x1E,
-0x00,0x00, 0x06,0xB4, 0x00,0x02, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37,
-0x28,0x00, 0x87,0x16, 0xFF,0xD8, 0x06,0xB4, 0x00,0x02, 0xC7,0x38, 0x57,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0xF4,0x82, 0x00,0x02, 0xF4,0xA3, 0x28,0x00, 0x07,0x20,
-0x00,0x18, 0x25,0x14, 0x00,0x7A, 0x85,0x2A, 0x00,0x00, 0x77,0xA9, 0x00,0x1E, 0x77,0xBC,
-0xFF,0xE5, 0xC5,0x28, 0x7F,0xC0, 0x75,0x29, 0xFF,0xF0, 0x84,0x96, 0xFF,0xC4, 0xF5,0x3B,
-0x28,0x00, 0x87,0x26, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x24, 0xF7,0x04,
-0x4F,0x58, 0xE6,0x00, 0x7E,0xF9, 0x94,0x16, 0xFF,0x54, 0xC7,0x20, 0x72,0x00, 0xF6,0x84,
-0x6E,0x50, 0x86,0x26, 0x00,0x2C, 0x77,0x38, 0xFF,0xFA, 0x25,0x14, 0x00,0x5A, 0x84,0x2A,
-0x00,0x00, 0x77,0xA9, 0x00,0x1E, 0x77,0xBC, 0xFF,0xE5, 0xC4,0x20, 0x7F,0xC0, 0x74,0x21,
-0xFF,0xF0, 0x47,0x39, 0x00,0x00, 0x86,0xB6, 0x1D,0xDC, 0x77,0x39, 0x00,0x02, 0xC0,0x32,
-0x6A,0x00, 0x46,0x8C, 0x00,0x01, 0xD6,0x80, 0x0A,0x68, 0x20,0x36, 0x00,0x00, 0xF6,0x86,
-0x40,0x98, 0xE6,0x00, 0x7E,0xC0, 0xC3,0xB8, 0x68,0x00, 0xC5,0x84, 0x00,0x00, 0x86,0xA6,
-0x00,0x24, 0xF7,0x04, 0xE0,0x00, 0xF6,0x02, 0x00,0x00, 0xC0,0x36, 0x72,0x00, 0xE6,0x00,
-0x7E,0x54, 0x03,0x24, 0x00,0x24, 0x86,0xA6, 0x00,0x28, 0xF7,0x04, 0xE0,0x04, 0x00,0x00,
-0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0x7E,0x58, 0x20,0x32, 0x00,0x00, 0xF6,0x02,
-0x00,0x01, 0x20,0x32, 0x00,0x00, 0xE6,0x00, 0x7E,0x65, 0x00,0x00, 0x00,0x01, 0xF5,0x82,
-0x00,0x00, 0x86,0x9A, 0x00,0x00, 0xF7,0x04, 0xE0,0x00, 0x00,0x00, 0x00,0x01, 0xC0,0x36,
-0x72,0x00, 0xE2,0x00, 0x7E,0xA0, 0xF6,0x02, 0x00,0x00, 0xC0,0x36, 0x72,0x00, 0xE6,0x00,
-0x7E,0xA8, 0x20,0x32, 0x00,0x00, 0x86,0x9A, 0x00,0x04, 0xF7,0x04, 0xE0,0x04, 0x00,0x00,
-0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE2,0x00, 0x7E,0xA9, 0x20,0x32, 0x00,0x00, 0xF6,0x02,
-0x00,0x01, 0x20,0x32, 0x00,0x00, 0xE6,0x00, 0x7E,0xB9, 0x20,0x2E, 0x00,0x00, 0xF5,0x82,
-0x00,0x01, 0x20,0x2E, 0x00,0x00, 0xE6,0x00, 0x7E,0xC5, 0x00,0x00, 0x00,0x01, 0xF4,0x02,
-0x00,0x01, 0xF7,0x04, 0x4F,0x58, 0xF4,0x1F, 0x28,0x00, 0x84,0x96, 0xFF,0x54, 0x85,0x16,
-0xFF,0xC4, 0xF6,0x86, 0x40,0x9A, 0xC7,0x24, 0x72,0x00, 0x77,0x38, 0xFF,0xFA, 0x86,0x2A,
-0x00,0x30, 0x47,0x39, 0x00,0x00, 0x77,0x39, 0x00,0x02, 0xC7,0x38, 0x68,0x00, 0xE0,0x00,
-0x7F,0x4C, 0xF6,0x3B, 0x28,0x00, 0x84,0x96, 0xFF,0x54, 0xF6,0x06, 0x40,0x98, 0xC7,0x24,
-0x72,0x00, 0x77,0x38, 0xFF,0xFA, 0xC6,0xB8, 0x00,0x00, 0x46,0xB5, 0x00,0x00, 0x76,0xB5,
-0x00,0x02, 0xC6,0xB4, 0x60,0x00, 0xF5,0x02, 0x00,0x01, 0xF5,0x37, 0x28,0x00, 0x47,0x39,
-0x00,0x00, 0x77,0x39, 0x00,0x02, 0xC7,0x38, 0x60,0x00, 0x24,0x94, 0x00,0x5A, 0x84,0xA6,
-0x00,0x00, 0x77,0xA5, 0x00,0x1E, 0x77,0xBC, 0xFF,0xE5, 0xC4,0xA4, 0x7F,0xC0, 0x74,0xA5,
-0xFF,0xF0, 0x07,0x38, 0x00,0x02, 0xF4,0xBB, 0x28,0x00, 0xF7,0x04, 0x4F,0x58, 0x85,0x16,
-0xFF,0x54, 0x84,0x96, 0xFF,0xAC, 0xC6,0xA8, 0x72,0x00, 0x76,0xB4, 0xFF,0xFA, 0x06,0x24,
-0x00,0x1A, 0xF6,0xB3, 0x28,0x00, 0xC7,0x24, 0x72,0x00, 0x77,0x38, 0xFF,0xFA, 0x06,0xA8,
-0x00,0x1A, 0xF7,0x37, 0x28,0x00, 0x47,0x39, 0x00,0x00, 0x97,0x13, 0xFF,0xFC, 0x07,0x24,
-0x00,0x1C, 0x97,0x13, 0xFF,0xFC, 0xF5,0x04, 0x4F,0x5C, 0x00,0x00, 0x00,0x01, 0x95,0x13,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x23,0x40, 0x97,0x93, 0xFF,0xFC, 0xF7,0x04,
-0x4F,0x58, 0x84,0x96, 0xFF,0x54, 0x00,0x00, 0x00,0x01, 0xC7,0x24, 0x72,0x00, 0x77,0x38,
-0xFF,0xFA, 0x47,0x39, 0x00,0x00, 0x97,0x13, 0xFF,0xFC, 0x07,0x24, 0x00,0x1C, 0x97,0x13,
-0xFF,0xFC, 0xF5,0x04, 0x4F,0x5C, 0x00,0x00, 0x00,0x01, 0x95,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x01, 0x23,0x40, 0x97,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x78,0xD8, 0x97,0x93, 0xFF,0xFC, 0xF6,0x84, 0x6E,0x50, 0x00,0x00, 0x00,0x01, 0x87,0x36,
-0x1D,0xDC, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x36, 0x1D,0xDC, 0x87,0x36,
-0x1D,0xDC, 0xF0,0x05, 0x40,0x84, 0xF4,0x86, 0xE0,0x00, 0x94,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0xD5,0xA0, 0x97,0x93, 0xFF,0xFC, 0xF4,0x05, 0x40,0x84, 0xF7,0x04,
-0x6E,0x50, 0xF0,0x05, 0x42,0x5C, 0x87,0x3A, 0x1D,0xDC, 0xF6,0x86, 0x2C,0x28, 0xF7,0x05,
-0x3B,0x64, 0xF7,0x04, 0x2D,0x38, 0xF5,0x06, 0x3A,0x4C, 0xF5,0x05, 0x42,0x44, 0x06,0x38,
-0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF4,0x82, 0x00,0x1C, 0x20,0x32,
-0x00,0x44, 0xE6,0x00, 0x80,0x60, 0xB4,0xBA, 0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF5,0x06,
-0x35,0xEC, 0xE0,0x00, 0x80,0x8C, 0xF5,0x05, 0x42,0x30, 0x20,0x32, 0x00,0x01, 0xE6,0x00,
-0x80,0xC4, 0x00,0x00, 0x00,0x01, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x78,0x9C, 0x97,0x93,
-0xFF,0xFC, 0xF4,0x86, 0x35,0x60, 0xF4,0x85, 0x42,0x30, 0xF5,0x06, 0x42,0x44, 0x95,0x13,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x1F,0x48, 0x97,0x93, 0xFF,0xFC, 0xE0,0x00,
-0x80,0xC4, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x42,0x98, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38, 0x00,0x01, 0xF7,0x33,
-0x28,0x00, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF5,0x86,
-0x42,0x44, 0x95,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x20,0xE4, 0x97,0x93,
-0xFF,0xFC, 0x20,0x22, 0x00,0x00, 0xE6,0x00, 0x81,0x61, 0x00,0x00, 0x00,0x01, 0xF7,0x04,
-0x42,0x54, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xEE,0x00, 0x81,0x29, 0xF6,0x06,
-0x42,0x50, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x72,0xAC, 0x97,0x93, 0xFF,0xFC, 0xE0,0x00,
-0x81,0x60, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x42,0x50, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xF5,0x82, 0x00,0x06, 0xF5,0x85, 0x42,0x54, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39,
-0xFF,0xF0, 0x07,0x38, 0x00,0x01, 0xF7,0x33, 0x28,0x00, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x73,0x4C, 0x97,0x93, 0xFF,0xFC, 0xF5,0x86, 0x38,0x1C, 0xF5,0x85, 0x42,0x44, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0x58, 0xF7,0x04,
-0x42,0x50, 0xF6,0x86, 0x42,0x50, 0x76,0xB5, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xF6,0x04,
-0x6F,0x34, 0xC7,0x38, 0x6F,0xC0, 0x86,0xB2, 0x00,0x0C, 0x77,0x39, 0xFF,0xF0, 0xC0,0x36,
-0x72,0x00, 0xE6,0x00, 0x82,0x50, 0xF4,0x82, 0x00,0x00, 0xC5,0x04, 0x00,0x00, 0x86,0xB2,
-0x00,0x10, 0xF7,0x04, 0xE0,0x00, 0xC5,0xA4, 0x00,0x00, 0xC0,0x36, 0x72,0x00, 0xE6,0x00,
-0x81,0xE4, 0x04,0x30, 0x00,0x10, 0x86,0xB2, 0x00,0x14, 0xF7,0x04, 0xE0,0x04, 0x00,0x00,
-0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0x81,0xE8, 0x20,0x2E, 0x00,0x00, 0xF5,0x82,
-0x00,0x01, 0x20,0x2E, 0x00,0x00, 0xE6,0x00, 0x81,0xF5, 0x00,0x00, 0x00,0x01, 0xF5,0x02,
-0x00,0x00, 0x86,0xA2, 0x00,0x00, 0xF7,0x04, 0xE0,0x00, 0x00,0x00, 0x00,0x01, 0xC0,0x36,
-0x72,0x00, 0xE2,0x00, 0x82,0x30, 0xF6,0x02, 0x00,0x00, 0xC0,0x36, 0x72,0x00, 0xE6,0x00,
-0x82,0x38, 0x20,0x32, 0x00,0x00, 0x86,0xA2, 0x00,0x04, 0xF7,0x04, 0xE0,0x04, 0x00,0x00,
-0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE2,0x00, 0x82,0x39, 0x20,0x32, 0x00,0x00, 0xF6,0x02,
-0x00,0x01, 0x20,0x32, 0x00,0x00, 0xE6,0x00, 0x82,0x49, 0x20,0x2A, 0x00,0x00, 0xF5,0x02,
-0x00,0x01, 0x20,0x2A, 0x00,0x00, 0xE6,0x00, 0x82,0x59, 0x20,0x26, 0x00,0x00, 0xF4,0x82,
-0x00,0x01, 0x20,0x26, 0x00,0x00, 0xE6,0x00, 0x87,0x60, 0x00,0x00, 0x00,0x01, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0xCB,0xCC, 0x97,0x93, 0xFF,0xFC, 0x07,0x20, 0x00,0x02, 0xF0,0x3B,
-0x28,0x00, 0xF7,0x04, 0x4F,0x58, 0xF4,0x05, 0x3B,0xB0, 0x06,0xA0, 0x00,0x14, 0xC7,0x20,
-0x72,0x00, 0x77,0x38, 0xFF,0xFA, 0xF7,0x37, 0x28,0x00, 0x06,0xA0, 0x00,0x16, 0xF7,0x37,
-0x28,0x00, 0xF3,0x02, 0x00,0x01, 0xF3,0x23, 0x28,0x00, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0xCB,0xCC, 0x97,0x93, 0xFF,0xFC, 0x26,0x14, 0x00,0x20, 0xF0,0x33, 0x28,0x00, 0x04,0xA0,
-0x00,0x02, 0xF0,0x27, 0x28,0x00, 0xF3,0x02, 0x00,0x00, 0x23,0x94, 0x00,0x2A, 0xF3,0x1F,
-0x28,0x00, 0x07,0x20, 0x00,0x1A, 0x23,0x94, 0x00,0x2A, 0x83,0x9E, 0x00,0x00, 0x77,0x9D,
-0x00,0x1E, 0x77,0xBC, 0xFF,0xE5, 0xC3,0x9C, 0x7F,0xC0, 0x73,0x9D, 0xFF,0xF0, 0x76,0x31,
-0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0x06,0xA4, 0x00,0x02, 0x75,0x15, 0x00,0x1E, 0xF3,0xBB,
-0x28,0x00, 0xF3,0x04, 0xE0,0x00, 0x75,0x28, 0xFF,0xE5, 0x93,0x22, 0x00,0x1C, 0xF3,0x84,
-0xE0,0x04, 0x23,0x14, 0x00,0x1E, 0x93,0x16, 0xFF,0xA4, 0x75,0x99, 0x00,0x1E, 0x75,0xAC,
-0xFF,0xE5, 0x73,0x15, 0x00,0x1E, 0x73,0x18, 0xFF,0xE5, 0x93,0x16, 0xFF,0xCC, 0x83,0x16,
-0xFF,0xA4, 0x93,0xA2, 0x00,0x20, 0x87,0x16, 0xFF,0xE0, 0x73,0x95, 0x00,0x1E, 0x73,0x9C,
-0xFF,0xE5, 0x93,0x96, 0xFF,0xAC, 0x73,0x95, 0x00,0x1E, 0x73,0x9C, 0xFF,0xE5, 0xC7,0x38,
-0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x87,0x1A, 0x00,0x00, 0x93,0x96,
-0xFF,0xC4, 0xC7,0x38, 0x5F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x06,0xB4,
-0x00,0x02, 0x87,0x16, 0xFF,0xE4, 0x23,0x94, 0x00,0x1A, 0x93,0x96, 0xFF,0xA4, 0x76,0x1D,
-0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38, 0x57,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37,
-0x28,0x00, 0x87,0x1E, 0x00,0x00, 0x06,0xB4, 0x00,0x02, 0xC7,0x38, 0x67,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x06,0xB4, 0x00,0x02, 0x87,0x16, 0xFF,0xE8, 0x23,0x14,
-0x00,0x16, 0x93,0x16, 0xFF,0xA4, 0x76,0x19, 0x00,0x1E, 0x83,0x96, 0xFF,0xAC, 0x76,0x30,
-0xFF,0xE5, 0xC7,0x38, 0x3F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x87,0x1A,
-0x00,0x00, 0x06,0xB4, 0x00,0x02, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37,
-0x28,0x00, 0x06,0xB4, 0x00,0x02, 0x87,0x16, 0xFF,0xEC, 0x23,0x14, 0x00,0x12, 0x93,0x16,
-0xFF,0xA4, 0x76,0x19, 0x00,0x1E, 0x83,0x96, 0xFF,0xCC, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38,
-0x3F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x87,0x1A, 0x00,0x00, 0x06,0xB4,
-0x00,0x02, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x87,0x16,
-0xFF,0xF0, 0x83,0x16, 0xFF,0xC4, 0x06,0xB4, 0x00,0x02, 0xC7,0x38, 0x37,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0xF3,0x82, 0x00,0x02, 0xF3,0xA3, 0x28,0x00, 0x23,0x14,
-0x00,0x2A, 0x83,0x1A, 0x00,0x00, 0x77,0x99, 0x00,0x1E, 0x77,0xBC, 0xFF,0xE5, 0xC3,0x18,
-0x7F,0xC0, 0x73,0x19, 0xFF,0xF0, 0x07,0x20, 0x00,0x18, 0xF3,0x3B, 0x28,0x00, 0x94,0x16,
-0xFF,0xDC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xCB,0xCC, 0x97,0x93, 0xFF,0xFC, 0x07,0x20,
-0x00,0x02, 0x23,0x94, 0x00,0x2A, 0x83,0x9E, 0x00,0x00, 0x77,0x9D, 0x00,0x1E, 0x77,0xBC,
-0xFF,0xE5, 0xC3,0x9C, 0x7F,0xC0, 0x73,0x9D, 0xFF,0xF0, 0x24,0x80, 0x00,0x07, 0x05,0x20,
-0x00,0x0A, 0xF3,0xBB, 0x28,0x00, 0x20,0x26, 0x00,0x07, 0xEE,0x00, 0x84,0xE0, 0x06,0x28,
-0x00,0x0E, 0x86,0xB2, 0x00,0x00, 0x77,0x31, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0x75,0xB1,
-0x00,0x1E, 0x75,0xAC, 0xFF,0xE5, 0x05,0x28, 0x00,0x02, 0x04,0xA4, 0x00,0x01, 0xC6,0xB4,
-0x77,0xC0, 0x76,0xB5, 0xFF,0xF0, 0xF7,0x02, 0xFF,0x00, 0xC6,0xB4, 0x74,0x00, 0xF6,0xB3,
-0x28,0x00, 0x87,0x32, 0x00,0x00, 0xF3,0x02, 0x00,0xFF, 0xC7,0x38, 0x5F,0xC0, 0x77,0x39,
-0xFF,0xF0, 0xC7,0x38, 0x34,0x00, 0xE0,0x00, 0x84,0x88, 0xF7,0x33, 0x28,0x00, 0x05,0x20,
-0x00,0x26, 0x86,0x2A, 0x00,0x00, 0x76,0xA9, 0x00,0x1E, 0xF5,0x84, 0x4F,0x58, 0x76,0xB4,
-0xFF,0xE5, 0x83,0x96, 0xFF,0xDC, 0xF3,0x02, 0x00,0xFF, 0x94,0x16, 0xFF,0xBC, 0xC7,0x1C,
-0x5A,0x00, 0x77,0x38, 0xFF,0xFA, 0xC6,0x30, 0x6F,0xC0, 0x76,0x31, 0xFF,0xF0, 0x47,0x39,
-0x00,0x00, 0xC7,0x38, 0x34,0x00, 0xF6,0x82, 0xFF,0x00, 0xC6,0x30, 0x6C,0x00, 0xC7,0x38,
-0x60,0x00, 0xF6,0x84, 0x3B,0x6C, 0xF7,0x2B, 0x28,0x00, 0xC5,0xA0, 0x5A,0x00, 0x75,0xAC,
-0xFF,0xFA, 0x83,0x16, 0xFF,0xDC, 0x07,0x34, 0x00,0x01, 0xF7,0x05, 0x3B,0x6C, 0x07,0x20,
-0x00,0x3A, 0xF6,0xBB, 0x28,0x00, 0x07,0x20, 0x00,0x36, 0xF0,0x3B, 0x28,0x00, 0xF3,0x82,
-0x00,0x03, 0xF3,0xA3, 0x28,0x00, 0x07,0x18, 0x00,0x1A, 0xF5,0xBB, 0x28,0x00, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0xCB,0xCC, 0x97,0x93, 0xFF,0xFC, 0x07,0x20, 0x00,0x02, 0xF0,0x3B,
-0x28,0x00, 0x24,0x80, 0x00,0x07, 0x05,0x20, 0x00,0x0A, 0x20,0x26, 0x00,0x07, 0xEE,0x00,
-0x85,0xD4, 0x06,0x28, 0x00,0x0E, 0x86,0xB2, 0x00,0x00, 0x77,0x31, 0x00,0x1E, 0x77,0x38,
-0xFF,0xE5, 0x75,0xB1, 0x00,0x1E, 0x75,0xAC, 0xFF,0xE5, 0x05,0x28, 0x00,0x02, 0x04,0xA4,
-0x00,0x01, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB5, 0xFF,0xF0, 0xF7,0x02, 0xFF,0x00, 0xC6,0xB4,
-0x74,0x00, 0xF6,0xB3, 0x28,0x00, 0x87,0x32, 0x00,0x00, 0xF3,0x82, 0x00,0xFF, 0xC7,0x38,
-0x5F,0xC0, 0x77,0x39, 0xFF,0xF0, 0xC7,0x38, 0x3C,0x00, 0xE0,0x00, 0x85,0x7C, 0xF7,0x33,
-0x28,0x00, 0x05,0xA0, 0x00,0x26, 0x86,0x2E, 0x00,0x00, 0x76,0xAD, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC5,0x20, 0x00,0x00, 0x24,0x00, 0x00,0x07, 0xF3,0x02, 0x00,0x01, 0x93,0x16,
-0xFF,0xA4, 0xF7,0x04, 0x4F,0x58, 0x83,0x96, 0xFF,0xBC, 0x24,0x80, 0x00,0x0E, 0xC7,0x1C,
-0x72,0x00, 0x77,0x38, 0xFF,0xFA, 0xC6,0x30, 0x6F,0xC0, 0x76,0x31, 0xFF,0xF0, 0x47,0x39,
-0x00,0x00, 0xF6,0x82, 0x00,0xFF, 0xC7,0x38, 0x6C,0x00, 0xF6,0x82, 0xFF,0x00, 0xC6,0x30,
-0x6C,0x00, 0xC7,0x38, 0x60,0x00, 0xF6,0x84, 0x3B,0x6C, 0xF7,0x2F, 0x28,0x00, 0x07,0x34,
-0x00,0x01, 0xF7,0x05, 0x3B,0x6C, 0x07,0x28, 0x00,0x3A, 0xF6,0xBB, 0x28,0x00, 0x07,0x28,
-0x00,0x36, 0xF0,0x3B, 0x28,0x00, 0xF3,0x02, 0x00,0x03, 0xF3,0x2B, 0x28,0x00, 0x20,0x22,
-0x00,0x07, 0xEE,0x00, 0x86,0x94, 0xC6,0x28, 0x48,0x00, 0x06,0x30, 0x00,0x26, 0x87,0x32,
-0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0x04,0xA4, 0x00,0x02, 0x04,0x20,
-0x00,0x01, 0x83,0x96, 0xFF,0xA4, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0xF6,0x82,
-0xFF,0x00, 0xC7,0x38, 0x6C,0x00, 0xC7,0x1C, 0x70,0x00, 0xE0,0x00, 0x86,0x50, 0xF7,0x33,
-0x28,0x00, 0x06,0x28, 0x00,0x26, 0x86,0xB2, 0x00,0x00, 0x77,0x31, 0x00,0x1E, 0x77,0x38,
-0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB5, 0xFF,0xF0, 0xF7,0x02, 0xFF,0x00, 0xC6,0xB4,
-0x74,0x00, 0xF6,0xB3, 0x28,0x00, 0x95,0x13, 0xFF,0xFC, 0xF3,0x04, 0x3B,0xB0, 0x00,0x00,
-0x00,0x01, 0x93,0x13, 0xFF,0xFC, 0x95,0x16, 0xFF,0xB4, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0xD4,0x2C, 0x97,0x93, 0xFF,0xFC, 0x85,0x16, 0xFF,0xB4, 0xF0,0x05, 0x40,0x7C, 0x83,0x96,
-0xFF,0xBC, 0x23,0x00, 0x00,0x07, 0xF3,0x05, 0x42,0x58, 0xF7,0x04, 0x42,0x50, 0xF6,0x06,
-0x42,0x50, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xF3,0x06, 0x39,0x34, 0xF3,0x05,
-0x42,0x44, 0xF5,0x05, 0x40,0x74, 0xF3,0x85, 0x42,0x60, 0xF3,0x82, 0x00,0x06, 0xF3,0x85,
-0x42,0x54, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0xF6,0x84, 0x2D,0x38, 0x07,0x38,
-0x00,0x01, 0xF7,0x33, 0x28,0x00, 0x06,0x34, 0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0xF7,0x06,
-0x2C,0x28, 0x76,0xB5, 0x00,0x02, 0xF3,0x82, 0x00,0x1C, 0x20,0x32, 0x00,0x44, 0xE6,0x00,
-0x87,0x4C, 0xB3,0xB6, 0x70,0x02, 0xF0,0x05, 0x2D,0x38, 0xF3,0x06, 0x42,0x44, 0x93,0x13,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x1F,0x48, 0x97,0x93, 0xFF,0xFC, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0x48, 0xF3,0x86,
-0x42,0x44, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x20,0xE4, 0x97,0x93,
-0xFF,0xFC, 0x20,0x22, 0x00,0x00, 0xE6,0x00, 0x89,0xED, 0x00,0x00, 0x00,0x01, 0xF7,0x04,
-0x42,0x54, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xEE,0x00, 0x87,0xC9, 0x00,0x00,
-0x00,0x01, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x73,0x4C, 0x97,0x93, 0xFF,0xFC, 0xE0,0x00,
-0x89,0xEC, 0x00,0x00, 0x00,0x01, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xCB,0xCC, 0x97,0x93,
-0xFF,0xFC, 0x26,0x14, 0x00,0x20, 0xF0,0x33, 0x28,0x00, 0x05,0xA0, 0x00,0x02, 0xF0,0x2F,
-0x28,0x00, 0xF3,0x82, 0x00,0x00, 0x24,0x94, 0x00,0x22, 0xF3,0xA7, 0x28,0x00, 0x04,0xA0,
-0x00,0x1A, 0x94,0x96, 0xFF,0xD4, 0x23,0x94, 0x00,0x22, 0x83,0x9E, 0x00,0x00, 0x77,0x9D,
-0x00,0x1E, 0x77,0xBC, 0xFF,0xE5, 0xC3,0x9C, 0x7F,0xC0, 0x73,0x9D, 0xFF,0xF0, 0x76,0x31,
-0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0x06,0xAC, 0x00,0x02, 0x23,0x14, 0x00,0x1E, 0x75,0x19,
-0x00,0x1E, 0xF3,0xA7, 0x28,0x00, 0xF4,0x84, 0xE0,0x00, 0x75,0x28, 0xFF,0xE5, 0x94,0xA2,
-0x00,0x1C, 0xF3,0x84, 0xE0,0x04, 0x74,0x95, 0x00,0x1E, 0x74,0xA4, 0xFF,0xE5, 0x94,0x96,
-0xFF,0xB4, 0x74,0x95, 0x00,0x1E, 0x74,0xA4, 0xFF,0xE5, 0x94,0x96, 0xFF,0xCC, 0x84,0x96,
-0xFF,0xB4, 0x93,0xA2, 0x00,0x20, 0x87,0x16, 0xFF,0xE0, 0x73,0x95, 0x00,0x1E, 0x73,0x9C,
-0xFF,0xE5, 0x93,0x96, 0xFF,0xBC, 0x73,0x95, 0x00,0x1E, 0x73,0x9C, 0xFF,0xE5, 0x93,0x96,
-0xFF,0xC4, 0x83,0x96, 0xFF,0xBC, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2F,
-0x28,0x00, 0xF5,0x84, 0x4F,0x58, 0x87,0x1A, 0x00,0x00, 0xC5,0xA0, 0x5A,0x00, 0x75,0xAC,
-0xFF,0xFA, 0xC7,0x38, 0x57,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x06,0xB4,
-0x00,0x02, 0x87,0x16, 0xFF,0xE4, 0x23,0x14, 0x00,0x1A, 0x76,0x19, 0x00,0x1E, 0x76,0x30,
-0xFF,0xE5, 0x45,0xAD, 0x00,0x00, 0xC7,0x38, 0x4F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37,
-0x28,0x00, 0x87,0x1A, 0x00,0x00, 0x06,0xB4, 0x00,0x02, 0x84,0x96, 0xFF,0xCC, 0xC7,0x38,
-0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x06,0xB4, 0x00,0x02, 0x87,0x16,
-0xFF,0xE8, 0x23,0x14, 0x00,0x16, 0x76,0x19, 0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38,
-0x3F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x87,0x1A, 0x00,0x00, 0x06,0xB4,
-0x00,0x02, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x06,0xB4,
-0x00,0x02, 0x87,0x16, 0xFF,0xEC, 0x23,0x14, 0x00,0x12, 0x76,0x19, 0x00,0x1E, 0x76,0x30,
-0xFF,0xE5, 0xC7,0x38, 0x4F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x87,0x1A,
-0x00,0x00, 0x06,0xB4, 0x00,0x02, 0x83,0x96, 0xFF,0xC4, 0xC7,0x38, 0x67,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x87,0x16, 0xFF,0xF0, 0x06,0xB4, 0x00,0x02, 0xC7,0x38,
-0x3F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0xF4,0x82, 0x00,0x02, 0xF4,0xA3,
-0x28,0x00, 0x04,0x20, 0x00,0x18, 0x23,0x94, 0x00,0x22, 0x83,0x9E, 0x00,0x00, 0x77,0x9D,
-0x00,0x1E, 0x77,0xBC, 0xFF,0xE5, 0xC3,0x9C, 0x7F,0xC0, 0x73,0x9D, 0xFF,0xF0, 0x84,0x96,
-0xFF,0xD4, 0xF3,0xA3, 0x28,0x00, 0xF3,0x82, 0x00,0x01, 0xF3,0xA7, 0x28,0x00, 0x95,0x93,
-0xFF,0xFC, 0xF4,0x86, 0xE0,0x00, 0x94,0x93, 0xFF,0xFC, 0xF3,0x84, 0x4F,0x5C, 0x00,0x00,
-0x00,0x01, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x23,0x40, 0x97,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x78,0xD8, 0x97,0x93, 0xFF,0xFC, 0xF4,0x86,
-0x36,0x78, 0xF4,0x85, 0x42,0x44, 0xF0,0x05, 0x40,0x84, 0xF6,0x84, 0x4F,0x5C, 0xF7,0x02,
-0x00,0x64, 0x97,0x36, 0x00,0x00, 0x90,0x36, 0x00,0x04, 0xF7,0x02, 0x00,0x01, 0xF7,0x05,
-0x40,0x84, 0xF3,0x86, 0x35,0xEC, 0xF3,0x85, 0x42,0x30, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0x90, 0xF7,0x04, 0x42,0x60, 0xF5,0x02,
-0x00,0x00, 0x05,0xB8, 0x00,0x18, 0xF6,0x04, 0x42,0x58, 0x00,0x00, 0x00,0x01, 0x20,0x32,
-0x00,0x07, 0xEE,0x00, 0x8A,0x70, 0xC7,0x30, 0x60,0x00, 0xC7,0x38, 0x58,0x00, 0x07,0x38,
-0x00,0x0E, 0x86,0xBA, 0x00,0x00, 0x77,0x39, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4,
-0x77,0xC0, 0x76,0xB5, 0xFF,0xF0, 0xF7,0x02, 0x00,0xFF, 0xC6,0xB4, 0x74,0x00, 0xC0,0x36,
-0x52,0x00, 0x47,0x0C, 0x00,0x01, 0xD7,0x00, 0x0A,0x70, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x8A,0x71, 0x07,0x30, 0x00,0x01, 0xE0,0x00, 0x8A,0x18, 0xF7,0x05, 0x42,0x58, 0xF4,0x04,
-0x42,0x58, 0x00,0x00, 0x00,0x01, 0x20,0x22, 0x00,0x07, 0xEE,0x00, 0x8D,0x94, 0x24,0x94,
-0x00,0x36, 0xF6,0x04, 0x42,0x60, 0x25,0x14, 0x00,0x38, 0x23,0x94, 0x00,0x20, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0x06,0x30,
-0x00,0x02, 0x75,0xB1, 0x00,0x1E, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B,
-0x28,0x00, 0x87,0x32, 0x00,0x00, 0x75,0xAC, 0xFF,0xE5, 0xC7,0x38, 0x5F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94, 0x00,0x34, 0x06,0x30, 0x00,0x02, 0x87,0x32,
-0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94, 0x00,0x32, 0x06,0x30, 0x00,0x02, 0x87,0x32,
-0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94, 0x00,0x30, 0x06,0x30, 0x00,0x02, 0x87,0x32,
-0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94, 0x00,0x2E, 0x06,0x30, 0x00,0x02, 0x87,0x32,
-0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94, 0x00,0x2C, 0x06,0x30, 0x00,0x02, 0x87,0x32,
-0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94, 0x00,0x2A, 0x06,0x30, 0x00,0x02, 0x87,0x32,
-0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x24,0x94,
-0x00,0x28, 0x76,0x31, 0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38, 0x67,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x94,0x13, 0xFF,0xFC, 0x95,0x13, 0xFF,0xFC, 0x93,0x96,
-0xFF,0x7C, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xD0,0xDC, 0x97,0x93,
-0xFF,0xFC, 0xF6,0x04, 0x42,0x60, 0x24,0x94, 0x00,0x7E, 0x25,0x14, 0x00,0x80, 0x23,0x94,
-0x00,0x68, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0x06,0x30, 0x00,0x02, 0x75,0xB1, 0x00,0x1E, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x87,0x32, 0x00,0x00, 0x75,0xAC, 0xFF,0xE5, 0xC7,0x38,
-0x5F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94, 0x00,0x7C, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94, 0x00,0x7A, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94, 0x00,0x78, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94, 0x00,0x76, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94, 0x00,0x74, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94, 0x00,0x72, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x06,0x30, 0x00,0x02, 0x87,0x32,
-0x00,0x00, 0x24,0x94, 0x00,0x70, 0x76,0x31, 0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38,
-0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x95,0x13, 0xFF,0xFC, 0x93,0x96,
-0xFF,0x74, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xD2,0x58, 0x97,0x93,
-0xFF,0xFC, 0x83,0x96, 0xFF,0x74, 0x00,0x00, 0x00,0x01, 0x93,0x93, 0xFF,0xFC, 0xF7,0x04,
-0x42,0x58, 0x23,0x94, 0x00,0x50, 0xC7,0x00, 0x72,0x00, 0x97,0x13, 0xFF,0xFC, 0x93,0x96,
-0xFF,0x6C, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xCF,0x24, 0x97,0x93,
-0xFF,0xFC, 0x83,0x96, 0xFF,0x6C, 0xF6,0x86, 0x42,0x50, 0x93,0x93, 0xFF,0xFC, 0xF3,0x84,
-0x42,0x58, 0x76,0xB5, 0x00,0x1E, 0x93,0x93, 0xFF,0xFC, 0xF7,0x04, 0x42,0x50, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x97,0x13, 0xFF,0xFC, 0x83,0x96,
-0xFF,0x7C, 0x00,0x00, 0x00,0x01, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0xF3,0x38, 0x97,0x93, 0xFF,0xFC, 0x20,0x22, 0x00,0x00, 0xE6,0x00, 0x8D,0x95, 0x00,0x00,
-0x00,0x01, 0xF7,0x04, 0x42,0x58, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0xF7,0x05,
-0x42,0x58, 0xF7,0x04, 0x42,0x58, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x07, 0xEE,0x00,
-0x8D,0xD4, 0xF3,0x82, 0x17,0x70, 0xF7,0x04, 0x2D,0x38, 0xF6,0x86, 0x2C,0x28, 0x06,0x38,
-0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF3,0x82, 0x00,0x1C, 0x20,0x32,
-0x00,0x44, 0xE6,0x00, 0x8D,0xF4, 0xB3,0xBA, 0x68,0x02, 0xE0,0x00, 0x8D,0xF4, 0xF0,0x05,
-0x2D,0x38, 0x93,0x93, 0xFF,0xFC, 0xF3,0x82, 0x00,0x1B, 0x93,0x93, 0xFF,0xFC, 0xF3,0x86,
-0x42,0x44, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x1E,0xC0, 0x97,0x93,
-0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10,
-0x00,0x88, 0xF7,0x04, 0x42,0x50, 0xF6,0x86, 0x42,0x50, 0x76,0xB5, 0x00,0x1E, 0xF3,0x84,
-0x6F,0x34, 0x76,0xB4, 0xFF,0xE5, 0x93,0x96, 0xFF,0xC4, 0xC7,0x38, 0x6F,0xC0, 0x86,0x9E,
-0x00,0x0C, 0x77,0x39, 0xFF,0xF0, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0x8E,0x65, 0xF6,0x06,
-0x42,0xA0, 0xF7,0x04, 0x42,0xA0, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38, 0x00,0x01, 0xE0,0x00, 0x94,0xE4, 0xF7,0x33,
-0x28,0x00, 0xF6,0x04, 0x42,0x60, 0x24,0x94, 0x00,0x36, 0x85,0x16, 0xFF,0xC4, 0x23,0x94,
-0x00,0x38, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0x85,0x2A, 0x00,0x1C, 0x06,0x30, 0x00,0x02, 0x75,0xB1, 0x00,0x1E, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0x95,0x16, 0xFF,0xBC, 0xF7,0x1F, 0x28,0x00, 0x87,0x32,
-0x00,0x00, 0x75,0xAC, 0xFF,0xE5, 0x85,0x16, 0xFF,0xC4, 0xC7,0x38, 0x5F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94, 0x00,0x34, 0x06,0x30, 0x00,0x02, 0x87,0x32,
-0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94, 0x00,0x32, 0x06,0x30, 0x00,0x02, 0x87,0x32,
-0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94, 0x00,0x30, 0x06,0x30, 0x00,0x02, 0x87,0x32,
-0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94, 0x00,0x2E, 0x06,0x30, 0x00,0x02, 0x87,0x32,
-0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94, 0x00,0x2C, 0x06,0x30, 0x00,0x02, 0x87,0x32,
-0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94, 0x00,0x2A, 0x06,0x30, 0x00,0x02, 0x87,0x32,
-0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x24,0x94,
-0x00,0x28, 0x76,0x31, 0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38, 0x67,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x87,0x2A, 0x00,0x20, 0x00,0x00, 0x00,0x01, 0x97,0x13,
-0xFF,0xFC, 0x93,0x93, 0xFF,0xFC, 0x27,0x14, 0x00,0x20, 0x97,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0xD0,0xDC, 0x97,0x93, 0xFF,0xFC, 0x83,0x96, 0xFF,0xC4, 0x00,0x00,
-0x00,0x01, 0x87,0x1E, 0x00,0x10, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0x8F,0xF0, 0xF6,0x82, 0x00,0x00, 0x87,0x1E, 0x00,0x14, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0x8F,0xF4, 0x20,0x36, 0x00,0x00, 0xF6,0x82, 0x00,0x01, 0x20,0x36,
-0x00,0x00, 0xE6,0x00, 0x90,0x41, 0x00,0x00, 0x00,0x01, 0x85,0x16, 0xFF,0xC4, 0x00,0x00,
-0x00,0x01, 0x05,0x28, 0x00,0x10, 0x95,0x16, 0xFF,0xB4, 0x95,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x72,0x50, 0x97,0x93, 0xFF,0xFC, 0x83,0x96, 0xFF,0xB4, 0x27,0x14,
-0x00,0x20, 0x93,0x93, 0xFF,0xFC, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0xF9,0x34, 0x97,0x93, 0xFF,0xFC, 0xE0,0x00, 0x94,0xE4, 0x00,0x00, 0x00,0x01, 0x85,0x16,
-0xFF,0xBC, 0x00,0x00, 0x00,0x01, 0x20,0x2A, 0x00,0x00, 0xE6,0x00, 0x94,0xBC, 0x00,0x00,
-0x00,0x01, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xCB,0xCC, 0x97,0x93, 0xFF,0xFC, 0xF5,0x02,
-0x00,0x00, 0x23,0x94, 0x00,0x62, 0xF5,0x1F, 0x28,0x00, 0x75,0x95, 0x00,0x1E, 0x75,0xAC,
-0xFF,0xE5, 0x06,0x20, 0x00,0x02, 0x06,0xB0, 0x00,0x02, 0x23,0x14, 0x00,0x1E, 0x73,0x99,
-0x00,0x1E, 0x73,0x9C, 0xFF,0xE5, 0x93,0x96, 0xFF,0x74, 0x75,0x15, 0x00,0x1E, 0x75,0x28,
-0xFF,0xE5, 0x95,0x16, 0xFF,0x7C, 0x73,0x95, 0x00,0x1E, 0x73,0x9C, 0xFF,0xE5, 0x93,0x96,
-0xFF,0x8C, 0x85,0x16, 0xFF,0xC4, 0x73,0x95, 0x00,0x1E, 0x93,0x96, 0xFF,0x84, 0x85,0x2A,
-0x00,0x34, 0x23,0x94, 0x00,0x62, 0x95,0x16, 0xFF,0xAC, 0xF0,0x33, 0x28,0x00, 0x05,0x20,
-0x00,0x1A, 0x95,0x16, 0xFF,0x94, 0x83,0x9E, 0x00,0x00, 0x77,0x9D, 0x00,0x1E, 0x77,0xBC,
-0xFF,0xE5, 0xC3,0x9C, 0x7F,0xC0, 0x73,0x9D, 0xFF,0xF0, 0x74,0x95, 0x00,0x1E, 0xF3,0xAB,
-0x28,0x00, 0x85,0x16, 0xFF,0xC4, 0x74,0xA4, 0xFF,0xE5, 0x85,0x2A, 0x00,0x10, 0x83,0x96,
-0xFF,0xC4, 0x95,0x22, 0x00,0x1C, 0x83,0x9E, 0x00,0x14, 0x85,0x16, 0xFF,0x84, 0x93,0xA2,
-0x00,0x20, 0x87,0x16, 0xFF,0xE0, 0x75,0x28, 0xFF,0xE5, 0x95,0x16, 0xFF,0x84, 0xF3,0x84,
-0x4F,0x58, 0x85,0x16, 0xFF,0x74, 0xC7,0x38, 0x5F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x33,
-0x28,0x00, 0x87,0x1A, 0x00,0x00, 0x93,0x96, 0xFF,0xA4, 0xC0,0x22, 0x3A,0x00, 0x83,0x96,
-0xFF,0x7C, 0xC7,0x38, 0x57,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x06,0xB4,
-0x00,0x02, 0x87,0x16, 0xFF,0xE4, 0x23,0x14, 0x00,0x1A, 0x76,0x19, 0x00,0x1E, 0x76,0x30,
-0xFF,0xE5, 0xC7,0x38, 0x4F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x87,0x1A,
-0x00,0x00, 0x06,0xB4, 0x00,0x02, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37,
-0x28,0x00, 0x06,0xB4, 0x00,0x02, 0x87,0x16, 0xFF,0xE8, 0x23,0x14, 0x00,0x16, 0x76,0x19,
-0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38, 0x3F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37,
-0x28,0x00, 0x87,0x1A, 0x00,0x00, 0x06,0xB4, 0x00,0x02, 0x85,0x16, 0xFF,0x8C, 0x83,0x96,
-0xFF,0x84, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x06,0xB4,
-0x00,0x02, 0x87,0x16, 0xFF,0xEC, 0x23,0x14, 0x00,0x12, 0x76,0x19, 0x00,0x1E, 0x76,0x30,
-0xFF,0xE5, 0xC7,0x38, 0x57,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x87,0x1A,
-0x00,0x00, 0x06,0xB4, 0x00,0x02, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37,
-0x28,0x00, 0x87,0x16, 0xFF,0xF0, 0x06,0xB4, 0x00,0x02, 0xC7,0x38, 0x3F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0xF5,0x02, 0x00,0x02, 0xF5,0x23, 0x28,0x00, 0x23,0x94,
-0x00,0x52, 0x83,0x9E, 0x00,0x00, 0x77,0x9D, 0x00,0x1E, 0x77,0xBC, 0xFF,0xE5, 0xC3,0x9C,
-0x7F,0xC0, 0x73,0x9D, 0xFF,0xF0, 0x03,0x20, 0x00,0x18, 0xE6,0x00, 0x92,0x30, 0xF3,0x9B,
-0x28,0x00, 0xF7,0x04, 0x42,0x70, 0xE0,0x00, 0x92,0x9C, 0xF6,0x06, 0x42,0x72, 0x85,0x16,
-0xFF,0xC4, 0x00,0x00, 0x00,0x01, 0x86,0xAA, 0x00,0x20, 0x00,0x00, 0x00,0x01, 0x07,0x34,
-0x00,0x07, 0x20,0x3A, 0x00,0x0E, 0xE2,0x00, 0x92,0x94, 0xC7,0x34, 0x68,0x00, 0xF5,0x84,
-0x42,0x60, 0xF3,0x82, 0x00,0xFF, 0xC7,0x2C, 0x70,0x00, 0x07,0x38, 0x00,0x26, 0x86,0xBA,
-0x00,0x00, 0x97,0x16, 0xFF,0x74, 0x77,0x39, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4,
-0x77,0xC0, 0x76,0xB5, 0xFF,0xF0, 0xC6,0xB4, 0x3C,0x00, 0x20,0x36, 0x00,0x00, 0x47,0x0C,
-0x00,0x01, 0xD7,0x00, 0x0A,0x70, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0x92,0xC9, 0x00,0x00,
-0x00,0x01, 0xF7,0x04, 0x42,0x74, 0xF6,0x06, 0x42,0x74, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38, 0x00,0x01, 0xF7,0x33,
-0x28,0x00, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x78,0x9C, 0x97,0x93, 0xFF,0xFC, 0xE0,0x00,
-0x94,0xE4, 0x00,0x00, 0x00,0x01, 0x85,0x16, 0xFF,0xA4, 0x83,0x96, 0xFF,0x74, 0xC7,0x20,
-0x52,0x00, 0x74,0xB8, 0xFF,0xFA, 0xC6,0x24, 0x00,0x00, 0x87,0x1E, 0x00,0x00, 0x76,0x9D,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC5,0xAC, 0x52,0x00, 0x75,0xAC, 0xFF,0xFA, 0x46,0x31,
-0x00,0x00, 0xF5,0x02, 0x00,0xFF, 0xC6,0x30, 0x54,0x00, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39,
-0xFF,0xF0, 0xF6,0x82, 0xFF,0x00, 0xC7,0x38, 0x6C,0x00, 0xC6,0x30, 0x70,0x00, 0xF6,0x1F,
-0x28,0x00, 0x83,0x96, 0xFF,0x94, 0x85,0x16, 0xFF,0xC4, 0xF5,0x9F, 0x28,0x00, 0x87,0x2A,
-0x00,0x04, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x24, 0xE6,0x00, 0x94,0x69, 0xF6,0x86,
-0x40,0x98, 0xF7,0x04, 0x6E,0x50, 0x86,0x2A, 0x00,0x2C, 0xC6,0xA4, 0x00,0x00, 0x23,0x94,
-0x00,0x62, 0x84,0x9E, 0x00,0x00, 0x77,0x9D, 0x00,0x1E, 0x77,0xBC, 0xFF,0xE5, 0xC4,0xA4,
-0x7F,0xC0, 0x74,0xA5, 0xFF,0xF0, 0x46,0xB5, 0x00,0x00, 0x87,0x3A, 0x1D,0xDC, 0x76,0xB5,
-0x00,0x02, 0xC0,0x32, 0x72,0x00, 0x47,0x0C, 0x00,0x01, 0xD7,0x00, 0x0A,0x70, 0x20,0x3A,
-0x00,0x00, 0xF7,0x06, 0x40,0x98, 0xE6,0x00, 0x94,0x34, 0xC3,0x34, 0x70,0x00, 0xC5,0x84,
-0x00,0x00, 0x86,0xAA, 0x00,0x24, 0xF7,0x04, 0xE0,0x00, 0xF6,0x02, 0x00,0x00, 0xC0,0x36,
-0x72,0x00, 0x05,0x28, 0x00,0x24, 0xE6,0x00, 0x93,0xC4, 0x95,0x16, 0xFF,0x74, 0x83,0x96,
-0xFF,0xC4, 0x00,0x00, 0x00,0x01, 0x86,0x9E, 0x00,0x28, 0xF7,0x04, 0xE0,0x04, 0x00,0x00,
-0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0x93,0xC8, 0x20,0x32, 0x00,0x00, 0xF6,0x02,
-0x00,0x01, 0x20,0x32, 0x00,0x00, 0xE6,0x00, 0x93,0xD5, 0x00,0x00, 0x00,0x01, 0xF5,0x82,
-0x00,0x00, 0x85,0x16, 0xFF,0x74, 0xF7,0x04, 0xE0,0x00, 0x86,0xAA, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE2,0x00, 0x94,0x14, 0xF6,0x02, 0x00,0x00, 0xC0,0x36,
-0x72,0x00, 0xE6,0x00, 0x94,0x1C, 0x20,0x32, 0x00,0x00, 0x86,0xAA, 0x00,0x04, 0xF7,0x04,
-0xE0,0x04, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE2,0x00, 0x94,0x1D, 0x20,0x32,
-0x00,0x00, 0xF6,0x02, 0x00,0x01, 0x20,0x32, 0x00,0x00, 0xE6,0x00, 0x94,0x2D, 0x20,0x2E,
-0x00,0x00, 0xF5,0x82, 0x00,0x01, 0x20,0x2E, 0x00,0x00, 0xE6,0x00, 0x94,0x39, 0x00,0x00,
-0x00,0x01, 0xF4,0x82, 0x00,0x01, 0xF7,0x04, 0x4F,0x58, 0xF4,0x9B, 0x28,0x00, 0x83,0x96,
-0xFF,0xC4, 0xF6,0x86, 0x40,0x9A, 0xC7,0x20, 0x72,0x00, 0x77,0x38, 0xFF,0xFA, 0x86,0x1E,
-0x00,0x30, 0x47,0x39, 0x00,0x00, 0x77,0x39, 0x00,0x02, 0xC7,0x38, 0x68,0x00, 0xE0,0x00,
-0x94,0xE4, 0xF6,0x3B, 0x28,0x00, 0x47,0x25, 0x00,0x00, 0x77,0x39, 0x00,0x02, 0xC7,0x38,
-0x68,0x00, 0xF5,0x02, 0x00,0x01, 0xF5,0x3B, 0x28,0x00, 0x07,0x38, 0x00,0x02, 0x23,0x94,
-0x00,0x62, 0x83,0x9E, 0x00,0x00, 0x77,0x9D, 0x00,0x1E, 0x77,0xBC, 0xFF,0xE5, 0xC3,0x9C,
-0x7F,0xC0, 0x73,0x9D, 0xFF,0xF0, 0x25,0x14, 0x00,0x62, 0xF3,0xBB, 0x28,0x00, 0x85,0x2A,
-0x00,0x00, 0x77,0xA9, 0x00,0x1E, 0x77,0xBC, 0xFF,0xE5, 0xC5,0x28, 0x7F,0xC0, 0x75,0x29,
-0xFF,0xF0, 0xE0,0x00, 0x94,0xE4, 0xF5,0x1B, 0x28,0x00, 0x83,0x96, 0xFF,0xBC, 0x00,0x00,
-0x00,0x01, 0x20,0x1E, 0x00,0x01, 0xE6,0x00, 0x94,0xE4, 0x00,0x00, 0x00,0x01, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x78,0x9C, 0x97,0x93, 0xFF,0xFC, 0xF5,0x06, 0x35,0x60, 0xF5,0x05,
-0x42,0x30, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF5,0x06,
-0x42,0x44, 0x95,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x20,0xE4, 0x97,0x93,
-0xFF,0xFC, 0x20,0x22, 0x00,0x00, 0xE6,0x00, 0x96,0x89, 0x00,0x00, 0x00,0x01, 0xF6,0x84,
-0x42,0x54, 0x00,0x00, 0x00,0x01, 0x20,0x36, 0x00,0x00, 0xEE,0x00, 0x95,0x8D, 0xF5,0x86,
-0x42,0x50, 0xF7,0x04, 0x42,0x50, 0x76,0x2D, 0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0x26,0xB4,
-0x00,0x01, 0xF6,0x85, 0x42,0x54, 0x25,0x00, 0x00,0x07, 0xF5,0x05, 0x42,0x58, 0xF6,0x84,
-0x2D,0x38, 0xC7,0x38, 0x67,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38, 0x00,0x01, 0xF7,0x2F,
-0x28,0x00, 0x06,0x34, 0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0xF7,0x06, 0x2C,0x28, 0x76,0xB5,
-0x00,0x02, 0xF5,0x02, 0x00,0x1C, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0x96,0x88, 0xB5,0x36,
-0x70,0x02, 0xE0,0x00, 0x96,0x88, 0xF0,0x05, 0x2D,0x38, 0xF5,0x04, 0x42,0x60, 0x00,0x00,
-0x00,0x01, 0x95,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xB2,0x84, 0x97,0x93,
-0xFF,0xFC, 0xF6,0x84, 0x4F,0x58, 0x00,0x00, 0x00,0x01, 0x07,0x34, 0x00,0x40, 0xC0,0x22,
-0x72,0x00, 0xE6,0x00, 0x95,0xEC, 0xF6,0x06, 0x42,0x76, 0xF7,0x04, 0x42,0x74, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38,
-0x00,0x01, 0xF7,0x33, 0x28,0x00, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x78,0x9C, 0x97,0x93,
-0xFF,0xFC, 0xE0,0x00, 0x96,0x88, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x42,0x60, 0x00,0x00,
-0x00,0x01, 0xC0,0x22, 0x72,0x00, 0xE6,0x00, 0x96,0x24, 0x00,0x00, 0x00,0x01, 0x97,0x13,
-0xFF,0xFC, 0xF5,0x04, 0x3B,0xB0, 0x00,0x00, 0x00,0x01, 0x95,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0xD4,0x2C, 0x97,0x93, 0xFF,0xFC, 0xE0,0x00, 0x96,0x40, 0x00,0x00,
-0x00,0x01, 0xC0,0x22, 0x6A,0x00, 0xE6,0x00, 0x96,0x71, 0x00,0x00, 0x00,0x01, 0x97,0x13,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xCC,0x60, 0x97,0x93, 0xFF,0xFC, 0xF7,0x04,
-0x40,0x7C, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x13, 0xFF,0xFC, 0xF5,0x04,
-0x40,0x74, 0x00,0x00, 0x00,0x01, 0x95,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0xBE,0xF8, 0x97,0x93, 0xFF,0xFC, 0xE0,0x00, 0x96,0x88, 0x00,0x00, 0x00,0x01, 0xF5,0x04,
-0x40,0x74, 0x00,0x00, 0x00,0x01, 0x95,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0xC1,0xB4, 0x97,0x93, 0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0x22,0x10, 0x00,0x70, 0xF6,0x04, 0x6F,0x34, 0xF7,0x04, 0x42,0x64, 0x86,0xB2,
-0x00,0x04, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0x9B,0x18, 0x06,0xB0,
-0x00,0x02, 0x87,0x36, 0x00,0x00, 0xF4,0x04, 0x40,0x7C, 0x76,0xB5, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0xC0,0x3A, 0x42,0x00, 0xE6,0x00,
-0x9B,0x18, 0x24,0x94, 0x00,0x36, 0xF6,0x04, 0x40,0x74, 0x23,0x94, 0x00,0x38, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0x06,0x30,
-0x00,0x02, 0x75,0xB1, 0x00,0x1E, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1F,
-0x28,0x00, 0x87,0x32, 0x00,0x00, 0x75,0xAC, 0xFF,0xE5, 0xC7,0x38, 0x5F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94, 0x00,0x34, 0x06,0x30, 0x00,0x02, 0x87,0x32,
-0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94, 0x00,0x32, 0x06,0x30, 0x00,0x02, 0x87,0x32,
-0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94, 0x00,0x30, 0x06,0x30, 0x00,0x02, 0x87,0x32,
-0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94, 0x00,0x2E, 0x06,0x30, 0x00,0x02, 0x87,0x32,
-0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94, 0x00,0x2C, 0x06,0x30, 0x00,0x02, 0x87,0x32,
-0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94, 0x00,0x2A, 0x06,0x30, 0x00,0x02, 0x87,0x32,
-0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x24,0x94,
-0x00,0x28, 0x76,0x31, 0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38, 0x67,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x94,0x13, 0xFF,0xFC, 0x93,0x93, 0xFF,0xFC, 0x27,0x14,
-0x00,0x20, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xD0,0xDC, 0x97,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xCB,0xCC, 0x97,0x93, 0xFF,0xFC, 0xF5,0x04,
-0x40,0x74, 0x94,0x16, 0xFF,0xC4, 0x07,0x20, 0x00,0x02, 0xF0,0x3B, 0x28,0x00, 0x24,0x80,
-0x00,0x07, 0xF4,0x02, 0x00,0xFF, 0x83,0x96, 0xFF,0xC4, 0x95,0x16, 0xFF,0xBC, 0x03,0x1C,
-0x00,0x0A, 0x20,0x26, 0x00,0x07, 0xEE,0x00, 0x98,0xA8, 0x06,0x18, 0x00,0x0E, 0x86,0xB2,
-0x00,0x00, 0x77,0x31, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0x75,0xB1, 0x00,0x1E, 0x75,0xAC,
-0xFF,0xE5, 0x03,0x18, 0x00,0x02, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB5, 0xFF,0xF0, 0xF7,0x02,
-0xFF,0x00, 0xC6,0xB4, 0x74,0x00, 0xF6,0xB3, 0x28,0x00, 0x87,0x32, 0x00,0x00, 0x04,0xA4,
-0x00,0x01, 0xC7,0x38, 0x5F,0xC0, 0x77,0x39, 0xFF,0xF0, 0xC7,0x38, 0x44,0x00, 0xE0,0x00,
-0x98,0x54, 0xF7,0x33, 0x28,0x00, 0x85,0x16, 0xFF,0xC4, 0x74,0x95, 0x00,0x1E, 0x74,0xA4,
-0xFF,0xE5, 0x83,0x96, 0xFF,0xC4, 0x23,0x14, 0x00,0x1E, 0x74,0x19, 0x00,0x1E, 0x74,0x20,
-0xFF,0xE5, 0x05,0x28, 0x00,0x26, 0x95,0x16, 0xFF,0x8C, 0x85,0xAA, 0x00,0x00, 0x76,0xA9,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0x03,0x9C, 0x00,0x02, 0x93,0x96, 0xFF,0xB4, 0x06,0x1C,
-0x00,0x02, 0x73,0x95, 0x00,0x1E, 0x73,0x9C, 0xFF,0xE5, 0x93,0x96, 0xFF,0xAC, 0x73,0x95,
-0x00,0x1E, 0x73,0x9C, 0xFF,0xE5, 0x93,0x96, 0xFF,0x9C, 0x83,0x96, 0xFF,0xBC, 0x75,0x15,
-0x00,0x1E, 0x75,0x28, 0xFF,0xE5, 0x95,0x16, 0xFF,0x94, 0x75,0x15, 0x00,0x1E, 0x75,0x28,
-0xFF,0xE5, 0x95,0x16, 0xFF,0xA4, 0x85,0x16, 0xFF,0xC4, 0xC5,0xAC, 0x6F,0xC0, 0x75,0xAD,
-0xFF,0xF0, 0xF5,0x05, 0x42,0x60, 0xF5,0x04, 0x4F,0x58, 0xF6,0x82, 0x00,0xFF, 0xC7,0x1C,
-0x52,0x00, 0x77,0x38, 0xFF,0xFA, 0x47,0x39, 0x00,0x00, 0xC7,0x38, 0x6C,0x00, 0xF6,0x82,
-0xFF,0x00, 0xC5,0xAC, 0x6C,0x00, 0xC7,0x38, 0x58,0x00, 0x83,0x96, 0xFF,0x8C, 0xF5,0x84,
-0x3B,0x6C, 0x85,0x16, 0xFF,0xB4, 0xF7,0x1F, 0x28,0x00, 0x87,0x16, 0xFF,0xE0, 0x06,0xAC,
-0x00,0x01, 0xF6,0x85, 0x3B,0x6C, 0x83,0x96, 0xFF,0xC4, 0xC7,0x38, 0x4F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0xF5,0x04, 0x4F,0x58, 0x87,0x1A, 0x00,0x00, 0xC0,0x1E,
-0x52,0x00, 0xC7,0x38, 0x47,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x33, 0x28,0x00, 0x06,0x30,
-0x00,0x02, 0x87,0x16, 0xFF,0xE4, 0x23,0x14, 0x00,0x1A, 0x76,0x99, 0x00,0x1E, 0x83,0x96,
-0xFF,0x94, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x3F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x33,
-0x28,0x00, 0x87,0x1A, 0x00,0x00, 0x06,0x30, 0x00,0x02, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x33, 0x28,0x00, 0x06,0x30, 0x00,0x02, 0x87,0x16, 0xFF,0xE8, 0x23,0x14,
-0x00,0x16, 0x76,0x99, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0x85,0x16, 0xFF,0xAC, 0x83,0x96,
-0xFF,0xA4, 0xC7,0x38, 0x57,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x33, 0x28,0x00, 0x87,0x1A,
-0x00,0x00, 0x06,0x30, 0x00,0x02, 0x85,0x16, 0xFF,0x9C, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x33, 0x28,0x00, 0x06,0x30, 0x00,0x02, 0x87,0x16, 0xFF,0xEC, 0x23,0x14,
-0x00,0x12, 0x76,0x99, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x3F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x33, 0x28,0x00, 0x87,0x1A, 0x00,0x00, 0x06,0x30, 0x00,0x02, 0x83,0x96,
-0xFF,0xC4, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x33, 0x28,0x00, 0x87,0x16,
-0xFF,0xF0, 0x06,0x30, 0x00,0x02, 0xC7,0x38, 0x57,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x33,
-0x28,0x00, 0x07,0x1C, 0x00,0x3A, 0xF5,0xBB, 0x28,0x00, 0x07,0x1C, 0x00,0x36, 0xF0,0x3B,
-0x28,0x00, 0xF5,0x02, 0x00,0x03, 0xE6,0x00, 0x9A,0xA4, 0xF5,0x1F, 0x28,0x00, 0xF7,0x04,
-0x42,0x78, 0xF6,0x06, 0x42,0x78, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38, 0x00,0x01, 0xF7,0x33, 0x28,0x00, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x78,0x9C, 0x97,0x93, 0xFF,0xFC, 0xE0,0x00, 0x9B,0x18, 0x00,0x00,
-0x00,0x01, 0xF3,0x86, 0x42,0x44, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01,
-0x1F,0x48, 0x97,0x93, 0xFF,0xFC, 0x25,0x00, 0x00,0x07, 0xF5,0x05, 0x42,0x58, 0xF7,0x04,
-0x42,0x50, 0xF6,0x06, 0x42,0x50, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xF3,0x82,
-0x00,0x06, 0xF3,0x85, 0x42,0x54, 0xF5,0x06, 0x39,0x34, 0xF5,0x05, 0x42,0x44, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0xF6,0x84, 0x2D,0x38, 0x07,0x38, 0x00,0x01, 0xF7,0x33,
-0x28,0x00, 0x06,0x34, 0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0xF7,0x06, 0x2C,0x28, 0x76,0xB5,
-0x00,0x02, 0xF3,0x82, 0x00,0x1C, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0x9B,0x18, 0xB3,0xB6,
-0x70,0x02, 0xF0,0x05, 0x2D,0x38, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0x22,0x10, 0x00,0x78, 0xF3,0x86, 0x42,0x44, 0x93,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x01, 0x20,0xE4, 0x97,0x93, 0xFF,0xFC, 0x20,0x22, 0x00,0x00, 0xE6,0x00,
-0x9E,0x41, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x42,0x54, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xEE,0x00, 0x9D,0x85, 0x24,0x94, 0x00,0x36, 0xF6,0x04, 0x40,0x74, 0x25,0x14,
-0x00,0x38, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0x06,0x30, 0x00,0x02, 0x75,0xB1, 0x00,0x1E, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x87,0x32, 0x00,0x00, 0x75,0xAC, 0xFF,0xE5, 0xC7,0x38,
-0x5F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94, 0x00,0x34, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94, 0x00,0x32, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94, 0x00,0x30, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94, 0x00,0x2E, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94, 0x00,0x2C, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94, 0x00,0x2A, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x06,0x30, 0x00,0x02, 0x87,0x32,
-0x00,0x00, 0x24,0x94, 0x00,0x28, 0x76,0x31, 0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38,
-0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0xF3,0x84, 0x40,0x7C, 0x00,0x00,
-0x00,0x01, 0x93,0x93, 0xFF,0xFC, 0x95,0x13, 0xFF,0xFC, 0x23,0x94, 0x00,0x20, 0x93,0x96,
-0xFF,0x94, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xD0,0xDC, 0x97,0x93,
-0xFF,0xFC, 0x83,0x96, 0xFF,0x94, 0x00,0x00, 0x00,0x01, 0x93,0x93, 0xFF,0xFC, 0x23,0x94,
-0x00,0x68, 0x93,0x96, 0xFF,0x8C, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0xD2,0x58, 0x97,0x93, 0xFF,0xFC, 0x83,0x96, 0xFF,0x8C, 0x00,0x00, 0x00,0x01, 0x93,0x93,
-0xFF,0xFC, 0x90,0x13, 0xFF,0xFC, 0x23,0x94, 0x00,0x50, 0x93,0x96, 0xFF,0x84, 0x93,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xCF,0x24, 0x97,0x93, 0xFF,0xFC, 0x87,0x02,
-0xFF,0x34, 0x00,0x00, 0x00,0x01, 0xF7,0x05, 0x42,0x64, 0xF3,0x84, 0x40,0x7C, 0x00,0x00,
-0x00,0x01, 0x93,0x93, 0xFF,0xFC, 0x97,0x13, 0xFF,0xFC, 0x83,0x96, 0xFF,0x84, 0x00,0x00,
-0x00,0x01, 0x93,0x93, 0xFF,0xFC, 0x83,0x96, 0xFF,0x94, 0x00,0x00, 0x00,0x01, 0x93,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xF7,0xC8, 0x97,0x93, 0xFF,0xFC, 0x20,0x22,
-0x00,0x00, 0xE6,0x00, 0x9D,0x5D, 0xF3,0x82, 0x17,0x70, 0xF7,0x04, 0x42,0x54, 0x00,0x00,
-0x00,0x01, 0x27,0x38, 0x00,0x01, 0xF7,0x05, 0x42,0x54, 0x93,0x93, 0xFF,0xFC, 0xF3,0x82,
-0x00,0x1B, 0x93,0x93, 0xFF,0xFC, 0xF3,0x86, 0x42,0x44, 0x93,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x01, 0x1E,0xC0, 0x97,0x93, 0xFF,0xFC, 0xE0,0x00, 0x9E,0x40, 0x00,0x00,
-0x00,0x01, 0xF5,0x04, 0x40,0x7C, 0xF4,0x84, 0x40,0x74, 0xC7,0x28, 0x50,0x00, 0xC7,0x24,
-0x70,0x00, 0x05,0xB8, 0x00,0x26, 0x86,0xAE, 0x00,0x00, 0x77,0x2D, 0x00,0x1E, 0x77,0x38,
-0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x77,0xB4, 0x00,0x08, 0x70,0x3E, 0xFF,0xE8, 0x47,0x0C,
-0x00,0x01, 0xD7,0x00, 0x0A,0x70, 0x20,0x3A, 0x00,0x00, 0xF7,0x04, 0x4F,0x58, 0xE6,0x00,
-0x9D,0xFD, 0xF6,0x02, 0x00,0xFF, 0xF7,0x04, 0x42,0x78, 0xF6,0x06, 0x42,0x7A, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38,
-0x00,0x01, 0xF7,0x33, 0x28,0x00, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x78,0x9C, 0x97,0x93,
-0xFF,0xFC, 0xE0,0x00, 0x9E,0x40, 0x00,0x00, 0x00,0x01, 0x86,0xAE, 0x00,0x00, 0x77,0x2D,
-0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB5, 0xFF,0xF0, 0xF7,0x02,
-0x00,0x01, 0xC7,0x38, 0x64,0x00, 0xF6,0x02, 0xFF,0x00, 0xC6,0xB4, 0x64,0x00, 0xC7,0x38,
-0x68,0x00, 0xF7,0x2F, 0x28,0x00, 0x07,0x28, 0x00,0x01, 0x97,0x13, 0xFF,0xFC, 0x94,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xBE,0xF8, 0x97,0x93, 0xFF,0xFC, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0xD8, 0xF3,0x86,
-0x42,0x44, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x20,0xE4, 0x97,0x93,
-0xFF,0xFC, 0x20,0x22, 0x00,0x00, 0xE6,0x00, 0xA2,0xC9, 0x00,0x00, 0x00,0x01, 0xF7,0x04,
-0x42,0x54, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xEE,0x00, 0xA0,0x35, 0x24,0x94,
-0x00,0x36, 0xF6,0x04, 0x40,0x74, 0x25,0x14, 0x00,0x38, 0x06,0x30, 0x00,0x02, 0x87,0x32,
-0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0x06,0x30, 0x00,0x02, 0x75,0xB1,
-0x00,0x1E, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x87,0x32,
-0x00,0x00, 0x75,0xAC, 0xFF,0xE5, 0xC7,0x38, 0x5F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27,
-0x28,0x00, 0x24,0x94, 0x00,0x34, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27,
-0x28,0x00, 0x24,0x94, 0x00,0x32, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27,
-0x28,0x00, 0x24,0x94, 0x00,0x30, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27,
-0x28,0x00, 0x24,0x94, 0x00,0x2E, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27,
-0x28,0x00, 0x24,0x94, 0x00,0x2C, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27,
-0x28,0x00, 0x24,0x94, 0x00,0x2A, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27,
-0x28,0x00, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x24,0x94, 0x00,0x28, 0x76,0x31,
-0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27,
-0x28,0x00, 0xF3,0x84, 0x40,0x7C, 0x00,0x00, 0x00,0x01, 0x93,0x93, 0xFF,0xFC, 0x95,0x13,
-0xFF,0xFC, 0x23,0x94, 0x00,0x20, 0x93,0x96, 0xFF,0x4C, 0x93,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0xD0,0xDC, 0x97,0x93, 0xFF,0xFC, 0x83,0x96, 0xFF,0x4C, 0x00,0x00,
-0x00,0x01, 0x93,0x93, 0xFF,0xFC, 0x23,0x94, 0x00,0x50, 0x93,0x96, 0xFF,0x44, 0x93,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xD2,0x58, 0x97,0x93, 0xFF,0xFC, 0x87,0x02,
-0xFF,0x34, 0x00,0x00, 0x00,0x01, 0xF7,0x05, 0x42,0x64, 0xF3,0x84, 0x40,0x7C, 0x00,0x00,
-0x00,0x01, 0x93,0x93, 0xFF,0xFC, 0x97,0x13, 0xFF,0xFC, 0x83,0x96, 0xFF,0x44, 0x00,0x00,
-0x00,0x01, 0x93,0x93, 0xFF,0xFC, 0x83,0x96, 0xFF,0x4C, 0xE0,0x00, 0xA2,0x80, 0x93,0x93,
-0xFF,0xFC, 0xF4,0x04, 0x40,0x7C, 0xF6,0x04, 0x40,0x74, 0xF3,0x82, 0x00,0x00, 0xC7,0x20,
-0x40,0x00, 0xC7,0x30, 0x70,0x00, 0x07,0x38, 0x00,0x26, 0x86,0xBA, 0x00,0x00, 0x77,0x39,
-0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x77,0xB4, 0x00,0x08, 0x70,0x3E,
-0xFF,0xE8, 0x47,0x0C, 0x00,0x01, 0xD7,0x00, 0x0A,0x70, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0xA0,0xAD, 0x93,0x96, 0xFF,0x3C, 0xF7,0x04, 0x42,0xA0, 0xF6,0x06, 0x42,0xA0, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38,
-0x00,0x01, 0xF7,0x33, 0x28,0x00, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x78,0x9C, 0x97,0x93,
-0xFF,0xFC, 0xE0,0x00, 0xA2,0xC8, 0x00,0x00, 0x00,0x01, 0x06,0x30, 0x00,0x02, 0x87,0x32,
-0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0x24,0x94, 0x00,0x7E, 0x25,0x14,
-0x00,0x80, 0x23,0x94, 0x00,0x68, 0x06,0x30, 0x00,0x02, 0x75,0xB1, 0x00,0x1E, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x87,0x32, 0x00,0x00, 0x75,0xAC,
-0xFF,0xE5, 0xC7,0x38, 0x5F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94,
-0x00,0x7C, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94,
-0x00,0x7A, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94,
-0x00,0x78, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94,
-0x00,0x76, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94,
-0x00,0x74, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x24,0x94,
-0x00,0x72, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x24,0x94, 0x00,0x70, 0x76,0x31, 0x00,0x1E, 0x76,0x30,
-0xFF,0xE5, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x94,0x13,
-0xFF,0xFC, 0x95,0x13, 0xFF,0xFC, 0x93,0x96, 0xFF,0x34, 0x93,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0xD0,0xDC, 0x97,0x93, 0xFF,0xFC, 0x83,0x96, 0xFF,0x34, 0x00,0x00,
-0x00,0x01, 0x93,0x93, 0xFF,0xFC, 0x23,0x94, 0x00,0xB0, 0x93,0x96, 0xFF,0x2C, 0x93,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xD2,0x58, 0x97,0x93, 0xFF,0xFC, 0x83,0x96,
-0xFF,0x2C, 0x00,0x00, 0x00,0x01, 0x93,0x93, 0xFF,0xFC, 0x83,0x96, 0xFF,0x3C, 0x00,0x00,
-0x00,0x01, 0x93,0x93, 0xFF,0xFC, 0x23,0x94, 0x00,0x98, 0x93,0x96, 0xFF,0x24, 0x93,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xCF,0x24, 0x97,0x93, 0xFF,0xFC, 0xF3,0x82,
-0x00,0x06, 0xF3,0x85, 0x42,0x54, 0x87,0x02, 0xFF,0x34, 0xF3,0x86, 0x38,0xA8, 0xF3,0x85,
-0x42,0x44, 0xF7,0x05, 0x42,0x64, 0xF3,0x84, 0x40,0x7C, 0x00,0x00, 0x00,0x01, 0x93,0x93,
-0xFF,0xFC, 0x97,0x13, 0xFF,0xFC, 0x83,0x96, 0xFF,0x24, 0x00,0x00, 0x00,0x01, 0x93,0x93,
-0xFF,0xFC, 0x83,0x96, 0xFF,0x34, 0x00,0x00, 0x00,0x01, 0x93,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0xF7,0xC8, 0x97,0x93, 0xFF,0xFC, 0x20,0x22, 0x00,0x00, 0xE6,0x00,
-0xA2,0xA9, 0xF3,0x82, 0x17,0x70, 0xF7,0x04, 0x42,0x54, 0x00,0x00, 0x00,0x01, 0x27,0x38,
-0x00,0x01, 0xF7,0x05, 0x42,0x54, 0x93,0x93, 0xFF,0xFC, 0xF3,0x82, 0x00,0x1B, 0x93,0x93,
-0xFF,0xFC, 0xF3,0x86, 0x42,0x44, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01,
-0x1E,0xC0, 0x97,0x93, 0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0xF6,0x04, 0x6F,0x34, 0xF7,0x04, 0x42,0x64, 0x86,0xB2, 0x00,0x04, 0x00,0x00,
-0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0xA3,0xAC, 0x06,0xB0, 0x00,0x02, 0x87,0x36,
-0x00,0x00, 0x76,0xB5, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0xF6,0x84,
-0x40,0x7C, 0x77,0x39, 0xFF,0xF0, 0xC0,0x3A, 0x6A,0x00, 0xE6,0x00, 0xA3,0xAC, 0xC7,0x34,
-0x68,0x00, 0xF5,0x84, 0x40,0x74, 0xF6,0x04, 0x4F,0x58, 0x00,0x00, 0x00,0x01, 0xC6,0x2C,
-0x62,0x00, 0x76,0x30, 0xFF,0xFA, 0xC5,0xAC, 0x70,0x00, 0x05,0xAC, 0x00,0x26, 0x86,0xAE,
-0x00,0x00, 0x77,0x2D, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0x46,0x31, 0x00,0x00, 0xC6,0xB4,
-0x77,0xC0, 0x76,0xB5, 0xFF,0xF0, 0xF7,0x02, 0x00,0xFF, 0xC6,0x30, 0x74,0x00, 0xF7,0x02,
-0xFF,0x00, 0xC6,0xB4, 0x74,0x00, 0xC6,0x30, 0x68,0x00, 0xF6,0x2F, 0x28,0x00, 0xF5,0x06,
-0x42,0x44, 0x95,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x1F,0x48, 0x97,0x93,
-0xFF,0xFC, 0xF7,0x04, 0x40,0x7C, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x13,
-0xFF,0xFC, 0xF5,0x04, 0x40,0x74, 0x00,0x00, 0x00,0x01, 0x95,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0xBE,0xF8, 0x97,0x93, 0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0x80, 0xF7,0x04, 0x42,0x58, 0x00,0x00,
-0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0xA3,0xF4, 0x20,0x3A, 0x00,0x07, 0xF5,0x02,
-0x00,0x01, 0xF5,0x05, 0x42,0x58, 0xF7,0x04, 0x42,0x58, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x07, 0xEE,0x00, 0xA6,0xF0, 0x23,0x94, 0x00,0x1E, 0xF6,0x04, 0x42,0x60, 0x23,0x14,
-0x00,0x66, 0xF4,0x84, 0x40,0x78, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0x04,0xA4, 0x00,0x02, 0x74,0x25, 0x00,0x1E, 0x74,0x20,
-0xFF,0xE5, 0x06,0x30, 0x00,0x02, 0x75,0x31, 0x00,0x1E, 0x75,0x28, 0xFF,0xE5, 0x95,0x16,
-0xFF,0x7C, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0x25,0x14, 0x00,0x20, 0x95,0x16,
-0xFF,0x94, 0xF7,0x2B, 0x28,0x00, 0x87,0x32, 0x00,0x00, 0x85,0x16, 0xFF,0x7C, 0x05,0xA4,
-0x00,0x02, 0xC7,0x38, 0x57,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1F, 0x28,0x00, 0x23,0x94,
-0x00,0x1C, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0x25,0x14, 0x00,0x50, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1F,
-0x28,0x00, 0x23,0x94, 0x00,0x1A, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1F,
-0x28,0x00, 0x23,0x94, 0x00,0x18, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1F,
-0x28,0x00, 0x23,0x94, 0x00,0x16, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1F,
-0x28,0x00, 0x23,0x94, 0x00,0x14, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1F,
-0x28,0x00, 0x23,0x94, 0x00,0x12, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1F,
-0x28,0x00, 0x23,0x94, 0x00,0x10, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xAD,
-0x00,0x1E, 0x76,0x31, 0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38, 0x67,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x1F, 0x28,0x00, 0x87,0x26, 0x00,0x00, 0x26,0x14, 0x00,0x68, 0xC7,0x38,
-0x47,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x33, 0x28,0x00, 0x87,0x2E, 0x00,0x00, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1B, 0x28,0x00, 0x23,0x14,
-0x00,0x64, 0x05,0xAC, 0x00,0x02, 0x87,0x2E, 0x00,0x00, 0x76,0xAD, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1B, 0x28,0x00, 0x23,0x14,
-0x00,0x62, 0x05,0xAC, 0x00,0x02, 0x87,0x2E, 0x00,0x00, 0x76,0xAD, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1B, 0x28,0x00, 0x23,0x14,
-0x00,0x60, 0x05,0xAC, 0x00,0x02, 0x87,0x2E, 0x00,0x00, 0x76,0xAD, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1B, 0x28,0x00, 0x23,0x14,
-0x00,0x5E, 0x05,0xAC, 0x00,0x02, 0x87,0x2E, 0x00,0x00, 0x76,0xAD, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1B, 0x28,0x00, 0x23,0x14,
-0x00,0x5C, 0x05,0xAC, 0x00,0x02, 0x87,0x2E, 0x00,0x00, 0x76,0xAD, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1B, 0x28,0x00, 0x23,0x14,
-0x00,0x5A, 0x05,0xAC, 0x00,0x02, 0x87,0x2E, 0x00,0x00, 0x76,0xAD, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1B, 0x28,0x00, 0x05,0xAC,
-0x00,0x02, 0x87,0x2E, 0x00,0x00, 0x23,0x14, 0x00,0x58, 0x75,0xAD, 0x00,0x1E, 0x75,0xAC,
-0xFF,0xE5, 0xC7,0x38, 0x5F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1B, 0x28,0x00, 0x96,0x13,
-0xFF,0xFC, 0x95,0x16, 0xFF,0x8C, 0x95,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0xD2,0x58, 0x97,0x93, 0xFF,0xFC, 0x85,0x16, 0xFF,0x8C, 0x00,0x00, 0x00,0x01, 0x95,0x13,
-0xFF,0xFC, 0xF5,0x04, 0x42,0x58, 0x00,0x00, 0x00,0x01, 0x95,0x13, 0xFF,0xFC, 0x25,0x14,
-0x00,0x38, 0x95,0x16, 0xFF,0x84, 0x95,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0xCF,0x24, 0x97,0x93, 0xFF,0xFC, 0xF5,0x04, 0x42,0x58, 0x00,0x00, 0x00,0x01, 0x95,0x13,
-0xFF,0xFC, 0xF5,0x04, 0x42,0x64, 0x00,0x00, 0x00,0x01, 0x95,0x13, 0xFF,0xFC, 0x85,0x16,
-0xFF,0x84, 0x00,0x00, 0x00,0x01, 0x95,0x13, 0xFF,0xFC, 0x85,0x16, 0xFF,0x94, 0x00,0x00,
-0x00,0x01, 0x95,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xF7,0xC8, 0x97,0x93,
-0xFF,0xFC, 0x20,0x22, 0x00,0x00, 0xE6,0x00, 0xA6,0xF1, 0x00,0x00, 0x00,0x01, 0xF7,0x04,
-0x42,0x58, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0xF7,0x05, 0x42,0x58, 0xF7,0x04,
-0x42,0x58, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x07, 0xEE,0x00, 0xA7,0x30, 0xF5,0x02,
-0x17,0x70, 0xF7,0x04, 0x2D,0x38, 0xF6,0x86, 0x2C,0x28, 0x06,0x38, 0x00,0x01, 0xF6,0x05,
-0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF5,0x02, 0x00,0x1C, 0x20,0x32, 0x00,0x44, 0xE6,0x00,
-0xA7,0x50, 0xB5,0x3A, 0x68,0x02, 0xE0,0x00, 0xA7,0x50, 0xF0,0x05, 0x2D,0x38, 0x95,0x13,
-0xFF,0xFC, 0xF5,0x02, 0x00,0x1B, 0x95,0x13, 0xFF,0xFC, 0xF5,0x06, 0x42,0x44, 0x95,0x13,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x1E,0xC0, 0x97,0x93, 0xFF,0xFC, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0x30, 0xF6,0x04,
-0x6F,0x34, 0xF7,0x04, 0x42,0x64, 0x86,0xB2, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0xC0,0x36,
-0x72,0x00, 0xE6,0x00, 0xA9,0xF0, 0x07,0x30, 0x00,0x02, 0x86,0x3A, 0x00,0x00, 0xF5,0x82,
-0x00,0x00, 0xF6,0x84, 0x40,0x7C, 0x77,0x39, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0x30,
-0x77,0xC0, 0xF7,0x04, 0x40,0x74, 0xC6,0xB4, 0x68,0x00, 0x76,0x31, 0xFF,0xF0, 0xC6,0x00,
-0x62,0x00, 0x96,0x16, 0xFF,0xF4, 0xC7,0x38, 0x68,0x00, 0x07,0x38, 0x00,0x26, 0x86,0xBA,
-0x00,0x00, 0x77,0x39, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x77,0xB4,
-0x00,0x08, 0x70,0x3E, 0xFF,0xE8, 0x47,0x0C, 0x00,0x01, 0xD7,0x00, 0x0A,0x70, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0xA8,0x34, 0xF6,0x02, 0x00,0xFF, 0x83,0x16, 0xFF,0xF4, 0x83,0x96,
-0xFF,0xF4, 0xF7,0x04, 0x40,0x78, 0xC6,0x98, 0x38,0x00, 0xC7,0x38, 0x68,0x00, 0x07,0x38,
-0x00,0x26, 0x86,0xBA, 0x00,0x00, 0x77,0x39, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4,
-0x77,0xC0, 0x76,0xB5, 0xFF,0xF0, 0xC6,0xB4, 0x64,0x00, 0xC0,0x36, 0x5A,0x00, 0x47,0x0C,
-0x00,0x01, 0xD7,0x00, 0x0A,0x70, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0xA8,0x3D, 0x20,0x2E,
-0x00,0x00, 0xF5,0x82, 0x00,0x01, 0x20,0x2E, 0x00,0x00, 0xE6,0x00, 0xA8,0x75, 0xF6,0x06,
-0x42,0x7C, 0xF7,0x04, 0x42,0x7C, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38, 0x00,0x01, 0xF7,0x33, 0x28,0x00, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x78,0x9C, 0x97,0x93, 0xFF,0xFC, 0xE0,0x00, 0xA9,0xF0, 0x00,0x00,
-0x00,0x01, 0xF3,0x04, 0x42,0x60, 0x00,0x00, 0x00,0x01, 0x93,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0xCC,0x60, 0x97,0x93, 0xFF,0xFC, 0xF4,0x04, 0x40,0x78, 0xF7,0x04,
-0x4F,0x58, 0xF5,0x04, 0x40,0x74, 0xF3,0x84, 0x40,0x7C, 0xF3,0x04, 0x40,0x7C, 0xC6,0x20,
-0x72,0x00, 0x76,0x30, 0xFF,0xFA, 0xC5,0x9C, 0x30,0x00, 0xC5,0xA8, 0x58,0x00, 0x05,0xAC,
-0x00,0x26, 0x86,0xAE, 0x00,0x00, 0x74,0xAD, 0x00,0x1E, 0x74,0xA4, 0xFF,0xE5, 0x73,0xAD,
-0x00,0x1E, 0x73,0x9C, 0xFF,0xE5, 0x93,0x96, 0xFF,0xD4, 0xC5,0x28, 0x72,0x00, 0x75,0x28,
-0xFF,0xFA, 0x83,0x16, 0xFF,0xF4, 0x83,0x96, 0xFF,0xF4, 0x46,0x31, 0x00,0x00, 0x45,0x29,
-0x00,0x00, 0xC7,0x18, 0x38,0x00, 0xC4,0x20, 0x70,0x00, 0x04,0x20, 0x00,0x26, 0x73,0x21,
-0x00,0x1E, 0xC6,0xB4, 0x4F,0xC0, 0x76,0xB5, 0xFF,0xF0, 0xF4,0x82, 0x00,0xFF, 0xC6,0x30,
-0x4C,0x00, 0xF3,0x82, 0xFF,0x00, 0xC6,0xB4, 0x3C,0x00, 0xC6,0x30, 0x68,0x00, 0xF6,0x2F,
-0x28,0x00, 0x87,0x2E, 0x00,0x00, 0x73,0x18, 0xFF,0xE5, 0x93,0x16, 0xFF,0xCC, 0x83,0x16,
-0xFF,0xD4, 0x83,0x96, 0xFF,0xF4, 0xC5,0x28, 0x4C,0x00, 0xC7,0x38, 0x37,0xC0, 0x77,0x39,
-0xFF,0xF0, 0x76,0x9D, 0x00,0x10, 0x76,0xB5, 0xFF,0xF8, 0xC7,0x38, 0x4C,0x00, 0xC6,0xB4,
-0x70,0x00, 0xF6,0xAF, 0x28,0x00, 0x87,0x22, 0x00,0x00, 0x76,0xA1, 0x00,0x1E, 0x83,0x16,
-0xFF,0xCC, 0xF3,0x82, 0xFF,0x00, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x37,0xC0, 0x77,0x39,
-0xFF,0xF0, 0xC7,0x38, 0x3C,0x00, 0xC5,0x28, 0x70,0x00, 0xF5,0x23, 0x28,0x00, 0x87,0x22,
-0x00,0x00, 0xF3,0x04, 0x40,0x7C, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x73,0x19,
-0x00,0x10, 0x93,0x16, 0xFF,0xEC, 0x73,0x99, 0xFF,0xF8, 0xC7,0x38, 0x4C,0x00, 0xC7,0x1C,
-0x70,0x00, 0x97,0x16, 0xFF,0xDC, 0x23,0x14, 0x00,0x22, 0x83,0x1A, 0x00,0x00, 0x77,0x99,
-0x00,0x1E, 0x77,0xBC, 0xFF,0xE5, 0xC3,0x18, 0x7F,0xC0, 0x73,0x19, 0xFF,0xF0, 0xF3,0x23,
-0x28,0x00, 0xF3,0x86, 0x42,0x44, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01,
-0x1F,0x48, 0x97,0x93, 0xFF,0xFC, 0xF7,0x04, 0x40,0x7C, 0x00,0x00, 0x00,0x01, 0x07,0x38,
-0x00,0x01, 0x97,0x13, 0xFF,0xFC, 0xF3,0x04, 0x40,0x74, 0x00,0x00, 0x00,0x01, 0x93,0x13,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xBE,0xF8, 0x97,0x93, 0xFF,0xFC, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0x98, 0xF3,0x06,
-0x42,0x44, 0x93,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x20,0xE4, 0x97,0x93,
-0xFF,0xFC, 0x20,0x22, 0x00,0x00, 0xE6,0x00, 0xAE,0xE5, 0x00,0x00, 0x00,0x01, 0xF7,0x04,
-0x42,0x54, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xEE,0x00, 0xAD,0x89, 0x27,0x38,
-0x00,0x01, 0xF7,0x05, 0x42,0x54, 0x23,0x94, 0x00,0x1E, 0xF6,0x04, 0x42,0x60, 0x24,0x94,
-0x00,0x66, 0x94,0x96, 0xFF,0x64, 0xF3,0x04, 0x40,0x78, 0x24,0x94, 0x00,0x20, 0x94,0x96,
-0xFF,0x94, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0x03,0x18, 0x00,0x02, 0x93,0x16, 0xFF,0x74, 0x74,0x19, 0x00,0x1E, 0x74,0x20,
-0xFF,0xE5, 0x05,0x98, 0x00,0x02, 0x06,0x30, 0x00,0x02, 0x75,0x31, 0x00,0x1E, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x87,0x32, 0x00,0x00, 0x75,0x28,
-0xFF,0xE5, 0xC7,0x38, 0x57,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1F, 0x28,0x00, 0x23,0x94,
-0x00,0x1C, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0x85,0x16, 0xFF,0x64, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1F,
-0x28,0x00, 0x23,0x94, 0x00,0x1A, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1F,
-0x28,0x00, 0x23,0x94, 0x00,0x18, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1F,
-0x28,0x00, 0x23,0x94, 0x00,0x16, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1F,
-0x28,0x00, 0x23,0x94, 0x00,0x14, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1F,
-0x28,0x00, 0x23,0x94, 0x00,0x12, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1F,
-0x28,0x00, 0x23,0x94, 0x00,0x10, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xAD,
-0x00,0x1E, 0x76,0x31, 0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38, 0x67,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x1F, 0x28,0x00, 0x87,0x1A, 0x00,0x00, 0x26,0x14, 0x00,0x68, 0xC7,0x38,
-0x47,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x33, 0x28,0x00, 0x87,0x2E, 0x00,0x00, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x23,0x14,
-0x00,0x64, 0x93,0x16, 0xFF,0x64, 0x05,0xAC, 0x00,0x02, 0x87,0x2E, 0x00,0x00, 0x76,0xAD,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1B,
-0x28,0x00, 0x24,0x94, 0x00,0x62, 0x94,0x96, 0xFF,0x64, 0x05,0xAC, 0x00,0x02, 0x87,0x2E,
-0x00,0x00, 0x76,0xAD, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x25,0x14, 0x00,0x60, 0x95,0x16, 0xFF,0x64, 0x05,0xAC,
-0x00,0x02, 0x87,0x2E, 0x00,0x00, 0x76,0xAD, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x23,0x14, 0x00,0x5E, 0x93,0x16,
-0xFF,0x64, 0x05,0xAC, 0x00,0x02, 0x87,0x2E, 0x00,0x00, 0x76,0xAD, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1B, 0x28,0x00, 0x24,0x94,
-0x00,0x5C, 0x94,0x96, 0xFF,0x64, 0x05,0xAC, 0x00,0x02, 0x87,0x2E, 0x00,0x00, 0x76,0xAD,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27,
-0x28,0x00, 0x25,0x14, 0x00,0x5A, 0x95,0x16, 0xFF,0x64, 0x05,0xAC, 0x00,0x02, 0x87,0x2E,
-0x00,0x00, 0x76,0xAD, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0x24,0x94, 0x00,0x50, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x23,0x14, 0x00,0x58, 0x05,0xAC,
-0x00,0x02, 0x87,0x2E, 0x00,0x00, 0x93,0x16, 0xFF,0x64, 0x75,0xAD, 0x00,0x1E, 0x75,0xAC,
-0xFF,0xE5, 0xC7,0x38, 0x5F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1B, 0x28,0x00, 0x96,0x13,
-0xFF,0xFC, 0x94,0x96, 0xFF,0x8C, 0x94,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0xD2,0x58, 0x97,0x93, 0xFF,0xFC, 0x85,0x16, 0xFF,0x8C, 0x23,0x14, 0x00,0x38, 0x95,0x13,
-0xFF,0xFC, 0x27,0x80, 0x00,0x07, 0x97,0x93, 0xFF,0xFC, 0x93,0x16, 0xFF,0x84, 0x93,0x13,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xCF,0x24, 0x97,0x93, 0xFF,0xFC, 0x27,0x80,
-0x00,0x07, 0xF7,0x85, 0x42,0x58, 0x27,0x80, 0x00,0x07, 0x97,0x93, 0xFF,0xFC, 0xF4,0x84,
-0x42,0x64, 0x00,0x00, 0x00,0x01, 0x94,0x93, 0xFF,0xFC, 0x85,0x16, 0xFF,0x84, 0x00,0x00,
-0x00,0x01, 0x95,0x13, 0xFF,0xFC, 0x83,0x16, 0xFF,0x94, 0x00,0x00, 0x00,0x01, 0x93,0x13,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xF7,0xC8, 0x97,0x93, 0xFF,0xFC, 0x20,0x22,
-0x00,0x00, 0xE6,0x00, 0xAD,0x5D, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x42,0x58, 0x00,0x00,
-0x00,0x01, 0x07,0x38, 0x00,0x01, 0xF7,0x05, 0x42,0x58, 0xF7,0x04, 0x2D,0x38, 0xF6,0x86,
-0x2C,0x28, 0x06,0x38, 0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF4,0x82,
-0x00,0x1C, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0xAE,0xE4, 0xB4,0xBA, 0x68,0x02, 0xE0,0x00,
-0xAE,0xE4, 0xF0,0x05, 0x2D,0x38, 0xF7,0x04, 0x40,0x78, 0xF5,0x84, 0x4F,0x58, 0x07,0x38,
-0x00,0x16, 0x86,0xBA, 0x00,0x00, 0xF4,0x06, 0x3B,0x90, 0x77,0x39, 0x00,0x1E, 0x77,0x38,
-0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB4, 0xFF,0xF0, 0x76,0x35, 0x00,0x06, 0xA7,0x2E,
-0x60,0x02, 0xC5,0x2C, 0x60,0x00, 0x76,0xA9, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x77,0x39, 0x00,0x03, 0xC7,0x38, 0x40,0x00, 0x07,0x38,
-0x00,0x02, 0x86,0xBA, 0x00,0x00, 0x77,0x39, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4,
-0x77,0xC0, 0x73,0xB7, 0xFF,0xF0, 0xEE,0x00, 0xAE,0x55, 0x95,0x16, 0xFF,0x64, 0xA7,0x2E,
-0x60,0x02, 0x76,0xA9, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39,
-0xFF,0xF0, 0x77,0x39, 0x00,0x03, 0xC7,0x38, 0x40,0x00, 0x86,0xBA, 0x00,0x04, 0x23,0x14,
-0x00,0x88, 0x77,0x39, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB5,
-0xFF,0xF0, 0xA6,0xAA, 0x68,0x02, 0x77,0x1D, 0x00,0x03, 0xC7,0x38, 0x68,0x00, 0x27,0x38,
-0x00,0x08, 0x85,0x3A, 0x00,0x04, 0x84,0xBA, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x95,0x1A,
-0x00,0x04, 0x94,0x9A, 0x00,0x00, 0x85,0x96, 0xFF,0x7C, 0xE0,0x00, 0xAE,0x78, 0x00,0x00,
-0x00,0x01, 0x84,0x96, 0xFF,0x64, 0xA7,0x2E, 0x60,0x02, 0x76,0xA5, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x77,0x39, 0x00,0x03, 0xC7,0x38,
-0x40,0x00, 0x85,0xBA, 0x00,0x04, 0x85,0x16, 0xFF,0x64, 0xF6,0x06, 0x3B,0x90, 0x87,0x2A,
-0x00,0x00, 0x76,0xA9, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39,
-0xFF,0xF0, 0x77,0x39, 0x00,0x03, 0xA6,0xBA, 0x60,0x02, 0x20,0x1E, 0x00,0x00, 0xC7,0x38,
-0x60,0x00, 0x77,0x39, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0xEE,0x00,
-0xAE,0xC9, 0x76,0xB5, 0xFF,0xF0, 0x83,0x16, 0xFF,0x78, 0x00,0x00, 0x00,0x01, 0x77,0x19,
-0xFF,0xF0, 0xC6,0xB8, 0x68,0x00, 0x84,0x96, 0xFF,0x64, 0x00,0x00, 0x00,0x01, 0xC7,0x24,
-0x68,0x00, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xC1,0x2C, 0x00,0x00, 0x97,0x93,
-0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10,
-0x00,0x10, 0xF7,0x04, 0x40,0x84, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0xAF,0x3C, 0xF6,0x06, 0x42,0xB8, 0xF7,0x04, 0x42,0xB8, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xF3,0x06, 0x36,0x78, 0xF3,0x05, 0x42,0x44, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39,
-0xFF,0xF0, 0x07,0x38, 0x00,0x01, 0xF7,0x33, 0x28,0x00, 0xF7,0x04, 0x4F,0x5C, 0xF3,0x84,
-0x42,0x5C, 0x83,0x3A, 0x00,0x04, 0xC4,0x38, 0x00,0x00, 0x93,0x16, 0xFF,0xEC, 0x77,0x1D,
-0x00,0x01, 0xC7,0x38, 0x38,0x00, 0x77,0x39, 0x00,0x02, 0x04,0xB8, 0x00,0x0C, 0x83,0x16,
-0xFF,0xEC, 0x00,0x00, 0x00,0x01, 0xC0,0x1E, 0x32,0x00, 0xEC,0x00, 0xB0,0x70, 0xC5,0x04,
-0x00,0x00, 0xA6,0xA2, 0x48,0x02, 0xF7,0x04, 0xE0,0x00, 0xF5,0x82, 0x00,0x00, 0xC0,0x36,
-0x72,0x00, 0xE6,0x00, 0xAF,0xA8, 0xC6,0x20, 0x48,0x00, 0x86,0xB2, 0x00,0x04, 0xF7,0x04,
-0xE0,0x04, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0xAF,0xAC, 0x20,0x2E,
-0x00,0x00, 0xF5,0x82, 0x00,0x01, 0x20,0x2E, 0x00,0x00, 0xE6,0x00, 0xAF,0xB9, 0x00,0x00,
-0x00,0x01, 0xF5,0x02, 0x00,0x00, 0x86,0xB2, 0x00,0x00, 0xF7,0x04, 0xE0,0x00, 0x00,0x00,
-0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE2,0x00, 0xAF,0xF4, 0xF5,0x82, 0x00,0x00, 0xC0,0x36,
-0x72,0x00, 0xE6,0x00, 0xAF,0xFC, 0x20,0x2E, 0x00,0x00, 0x86,0xB2, 0x00,0x04, 0xF7,0x04,
-0xE0,0x04, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE2,0x00, 0xAF,0xFD, 0x20,0x2E,
-0x00,0x00, 0xF5,0x82, 0x00,0x01, 0x20,0x2E, 0x00,0x00, 0xE6,0x00, 0xB0,0x0D, 0x20,0x2A,
-0x00,0x00, 0xF5,0x02, 0x00,0x01, 0x20,0x2A, 0x00,0x00, 0xE6,0x00, 0xB0,0x59, 0x00,0x00,
-0x00,0x01, 0xF7,0x04, 0x7A,0xD0, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0xB0,0x64, 0xC7,0x20, 0x48,0x00, 0x87,0x3A, 0x00,0x08, 0xF6,0x06, 0x40,0x98, 0x77,0x39,
-0x00,0x02, 0xA6,0xBA, 0x60,0x02, 0xC7,0x38, 0x60,0x00, 0x77,0x39, 0x00,0x1E, 0x77,0x38,
-0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB5, 0xFF,0xF0, 0x20,0x36, 0x00,0x00, 0xE6,0x00,
-0xB0,0x64, 0x00,0x00, 0x00,0x01, 0x04,0xA4, 0x00,0x0C, 0xE0,0x00, 0xAF,0x60, 0x03,0x9C,
-0x00,0x01, 0x83,0x16, 0xFF,0xEC, 0x00,0x00, 0x00,0x01, 0xC0,0x1E, 0x32,0x00, 0xEC,0x00,
-0xB1,0x04, 0xF3,0x06, 0x36,0x78, 0xF6,0x84, 0x4F,0x5C, 0x77,0x1D, 0x00,0x01, 0xC7,0x38,
-0x38,0x00, 0x77,0x39, 0x00,0x02, 0x07,0x38, 0x00,0x0C, 0xC6,0xB4, 0x70,0x00, 0x87,0x36,
-0x00,0x08, 0xF6,0x84, 0x4F,0x58, 0x77,0x39, 0x00,0x06, 0xC6,0xB4, 0x70,0x00, 0x96,0x93,
-0xFF,0xFC, 0x93,0x96, 0xFF,0xF4, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xFA,0x98, 0x97,0x93,
-0xFF,0xFC, 0x20,0x22, 0x00,0x00, 0xF6,0x84, 0x42,0x6C, 0x83,0x96, 0xFF,0xF4, 0x47,0x0C,
-0x00,0x01, 0xD7,0x00, 0x0A,0x70, 0xC7,0x1C, 0x70,0x00, 0xF7,0x05, 0x42,0x5C, 0x06,0xB4,
-0x00,0x01, 0xF7,0x04, 0x2D,0x38, 0xF6,0x85, 0x42,0x6C, 0xF6,0x86, 0x2C,0x28, 0x06,0x38,
-0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF3,0x02, 0x00,0x1C, 0x20,0x32,
-0x00,0x44, 0xE6,0x00, 0xB1,0x08, 0xB3,0x3A, 0x68,0x02, 0xE0,0x00, 0xB1,0x08, 0xF0,0x05,
-0x2D,0x38, 0xF3,0x05, 0x42,0x44, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0xF4,0x02, 0x00,0x00, 0xC5,0xA0, 0x00,0x00, 0xF6,0x82, 0x07,0x70, 0xF7,0x04,
-0x6E,0x50, 0x20,0x36, 0x00,0x00, 0xE6,0x00, 0xB1,0x6D, 0x06,0x38, 0x00,0x1C, 0x87,0x32,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0xC4,0x20, 0x70,0x00, 0xC0,0x22, 0x72,0x00, 0xE4,0x00,
-0xB1,0x5D, 0x00,0x00, 0x00,0x01, 0x05,0xAC, 0x00,0x01, 0x26,0xB4, 0x00,0x01, 0x20,0x36,
-0x00,0x00, 0xE6,0x00, 0xB1,0x40, 0x06,0x30, 0x00,0x04, 0xC4,0x20, 0x58,0x00, 0xC0,0x22,
-0x5A,0x00, 0xE4,0x00, 0xB1,0x81, 0x00,0x00, 0x00,0x01, 0x04,0x20, 0x00,0x01, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x78,0xD8, 0x97,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xB1,0x1C, 0x97,0x93,
-0xFF,0xFC, 0xF7,0x04, 0x40,0x94, 0x00,0x00, 0x00,0x01, 0xC0,0x22, 0x72,0x00, 0xE6,0x00,
-0xB1,0xED, 0xF4,0x05, 0x40,0x90, 0xF7,0x04, 0x6E,0x50, 0x00,0x00, 0x00,0x01, 0x86,0xBA,
-0x1D,0xDC, 0xF5,0x82, 0x00,0x01, 0x06,0xB4, 0x00,0x01, 0x96,0xBA, 0x1D,0xDC, 0x87,0x3A,
-0x1D,0xDC, 0xE0,0x00, 0xB1,0xF0, 0xF5,0x85, 0x7A,0xD0, 0xF0,0x05, 0x7A,0xD0, 0xF5,0x84,
-0x40,0x90, 0xF0,0x05, 0x40,0x84, 0xF5,0x85, 0x40,0x94, 0xF5,0x86, 0xE0,0x00, 0x95,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xD5,0xA0, 0x97,0x93, 0xFF,0xFC, 0xF7,0x04,
-0x6E,0x50, 0xF4,0x05, 0x40,0x84, 0x85,0xBA, 0x1D,0xDC, 0x00,0x00, 0x00,0x01, 0xF5,0x85,
-0x3B,0x64, 0xF5,0x84, 0xE0,0x00, 0xF0,0x05, 0x42,0x5C, 0x95,0xBA, 0x00,0x10, 0xF5,0x84,
-0xE0,0x04, 0xF6,0x86, 0x2C,0x28, 0x95,0xBA, 0x00,0x14, 0xF7,0x04, 0x2D,0x38, 0xF5,0x86,
-0x3A,0x4C, 0xF5,0x85, 0x42,0x44, 0x06,0x38, 0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39,
-0x00,0x02, 0xF5,0x82, 0x00,0x1C, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0xB2,0x68, 0xB5,0xBA,
-0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF5,0x86, 0x35,0xEC, 0xF5,0x85, 0x42,0x30, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x08, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0xC8, 0xF3,0x02,
-0x00,0x00, 0x93,0x16, 0xFF,0x94, 0x24,0x80, 0x00,0x08, 0x94,0x96, 0xFF,0x84, 0x23,0x80,
-0x00,0x07, 0x83,0x16, 0xFF,0x94, 0x00,0x00, 0x00,0x01, 0x93,0x16, 0xFF,0x54, 0x20,0x1E,
-0x00,0x07, 0xEE,0x00, 0xB5,0x64, 0xC7,0x1C, 0x38,0x00, 0x84,0x96, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0xC7,0x24, 0x70,0x00, 0x07,0x38, 0x00,0x26, 0x86,0xBA, 0x00,0x00, 0xF5,0x84,
-0x4F,0x58, 0x77,0x39, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB5,
-0xFF,0xF0, 0xF7,0x02, 0x00,0xFF, 0xC6,0xB6, 0x74,0x00, 0xE6,0x00, 0xB3,0x2D, 0x20,0x36,
-0x00,0x01, 0xE6,0x00, 0xB3,0x2D, 0x77,0x35, 0x00,0x06, 0xA6,0xBA, 0x58,0x02, 0xC7,0x38,
-0x58,0x00, 0x76,0x39, 0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC6,0xB4, 0x67,0xC0, 0x76,0xB5,
-0xFF,0xF0, 0x20,0x36, 0x00,0x02, 0xE6,0x00, 0xB3,0x31, 0xC6,0xB8, 0x00,0x00, 0xC7,0x2C,
-0x00,0x00, 0xE0,0x00, 0xB3,0x30, 0xC6,0xB8, 0x00,0x00, 0xF6,0x84, 0x4F,0x58, 0xF7,0x04,
-0x4F,0x58, 0xC5,0x34, 0x00,0x00, 0xC0,0x2A, 0x72,0x00, 0xE6,0x00, 0xB5,0x5D, 0x00,0x00,
-0x00,0x01, 0xF6,0x84, 0x3B,0xBC, 0xF3,0x02, 0x00,0x00, 0x93,0x16, 0xFF,0x3C, 0x04,0x28,
-0x00,0x1C, 0xF7,0x04, 0x3B,0xB8, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xEC,0x00,
-0xB4,0x40, 0x96,0x96, 0xFF,0xAC, 0x77,0x35, 0x00,0x01, 0xC7,0x38, 0x68,0x00, 0x77,0x39,
-0x00,0x02, 0xF4,0x86, 0x3B,0xB4, 0xC6,0x38, 0x48,0x00, 0x06,0x30, 0x00,0x0C, 0xC3,0x04,
-0x00,0x00, 0x93,0x16, 0xFF,0x34, 0x86,0xB2, 0x00,0x00, 0x87,0x2A, 0x00,0x1C, 0x85,0x96,
-0xFF,0x3C, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0xB3,0xC0, 0x20,0x2E, 0x00,0x00, 0x86,0xB2,
-0x00,0x04, 0x87,0x2A, 0x00,0x20, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE6,0x00,
-0xB3,0xC0, 0x20,0x2E, 0x00,0x00, 0xF5,0x82, 0x00,0x01, 0x20,0x2E, 0x00,0x00, 0xE6,0x00,
-0xB3,0xD1, 0x00,0x00, 0x00,0x01, 0xF4,0x82, 0x00,0x00, 0x94,0x96, 0xFF,0x34, 0x86,0xB2,
-0x00,0x00, 0x87,0x22, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE2,0x00,
-0xB4,0x0C, 0xF5,0x82, 0x00,0x00, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0xB4,0x14, 0x20,0x2E,
-0x00,0x00, 0x86,0xB2, 0x00,0x04, 0x87,0x22, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0xC0,0x36,
-0x72,0x00, 0xE2,0x00, 0xB4,0x15, 0x20,0x2E, 0x00,0x00, 0xF5,0x82, 0x00,0x01, 0x20,0x2E,
-0x00,0x00, 0xE6,0x00, 0xB4,0x25, 0x00,0x00, 0x00,0x01, 0xF3,0x02, 0x00,0x01, 0x93,0x16,
-0xFF,0x34, 0x84,0x96, 0xFF,0x34, 0x00,0x00, 0x00,0x01, 0x20,0x26, 0x00,0x00, 0xE6,0x00,
-0xB4,0x40, 0x00,0x00, 0x00,0x01, 0xF3,0x02, 0x00,0x01, 0x93,0x16, 0xFF,0x3C, 0x84,0x96,
-0xFF,0x3C, 0x00,0x00, 0x00,0x01, 0x20,0x26, 0x00,0x00, 0xE6,0x00, 0xB4,0x81, 0xF6,0x02,
-0x00,0x01, 0x87,0x16, 0xFF,0xAC, 0xF3,0x06, 0x3B,0xB4, 0x76,0xB9, 0x00,0x01, 0xC6,0xB4,
-0x70,0x00, 0x76,0xB5, 0x00,0x02, 0xC6,0xB4, 0x30,0x00, 0x06,0xB4, 0x00,0x14, 0x86,0xB6,
-0x00,0x00, 0x97,0x16, 0xFF,0xB0, 0xE0,0x00, 0xB4,0xF4, 0x96,0x96, 0xFF,0xB4, 0x27,0x14,
-0x00,0x54, 0x97,0x13, 0xFF,0xFC, 0x94,0x13, 0xFF,0xFC, 0xF4,0x86, 0x3B,0xB4, 0x94,0x93,
-0xFF,0xFC, 0x93,0x96, 0xFF,0x4C, 0x95,0x16, 0xFF,0x44, 0x07,0x88, 0x00,0x08, 0xE0,0x01,
-0x25,0x68, 0x97,0x93, 0xFF,0xFC, 0x83,0x96, 0xFF,0x4C, 0x85,0x16, 0xFF,0x44, 0x20,0x22,
-0x00,0x00, 0xE6,0x00, 0xB4,0xF1, 0xF6,0x02, 0x00,0x01, 0x87,0x16, 0xFF,0xAC, 0xF3,0x06,
-0x3B,0xB4, 0x76,0xB9, 0x00,0x01, 0xC6,0xB4, 0x70,0x00, 0x76,0xB5, 0x00,0x02, 0xC6,0xB4,
-0x30,0x00, 0x06,0xB4, 0x00,0x14, 0x86,0xB6, 0x00,0x00, 0x97,0x16, 0xFF,0xB0, 0x96,0x96,
-0xFF,0xB4, 0xF7,0x05, 0x3B,0xBC, 0xE0,0x00, 0xB4,0xF8, 0x20,0x32, 0x00,0x00, 0xF6,0x02,
-0x00,0x00, 0x20,0x32, 0x00,0x00, 0xE6,0x00, 0xB5,0x2D, 0x27,0x14, 0x00,0x08, 0x84,0x96,
-0xFF,0x54, 0x00,0x00, 0x00,0x01, 0xC7,0x24, 0x70,0x00, 0x83,0x16, 0xFF,0xB4, 0x04,0xA4,
-0x00,0x04, 0x94,0x96, 0xFF,0x54, 0x84,0x96, 0xFF,0x94, 0x93,0x3A, 0xFF,0xC0, 0x04,0xA4,
-0x00,0x01, 0xE0,0x00, 0xB5,0x54, 0x94,0x96, 0xFF,0x94, 0x83,0x16, 0xFF,0x54, 0x00,0x00,
-0x00,0x01, 0xC7,0x18, 0x70,0x00, 0xF4,0x84, 0x4F,0x58, 0x03,0x18, 0x00,0x04, 0x93,0x16,
-0xFF,0x54, 0x83,0x16, 0xFF,0x94, 0x94,0xBA, 0xFF,0xC0, 0x03,0x18, 0x00,0x01, 0x93,0x16,
-0xFF,0x94, 0x95,0x16, 0xFF,0x3C, 0x93,0x96, 0xFF,0x8C, 0xE0,0x00, 0xB2,0xB0, 0x03,0x9C,
-0x00,0x01, 0x84,0x96, 0xFF,0x94, 0x00,0x00, 0x00,0x01, 0x20,0x26, 0x00,0x00, 0xE6,0x00,
-0xB5,0x84, 0xF3,0x82, 0x00,0x01, 0xF4,0x04, 0x4F,0x58, 0xE0,0x00, 0xBE,0xE4, 0x00,0x00,
-0x00,0x01, 0x83,0x16, 0xFF,0xB8, 0x84,0x96, 0xFF,0x94, 0x00,0x00, 0x00,0x01, 0xC0,0x1E,
-0x4A,0x00, 0xEC,0x00, 0xB5,0xCC, 0x93,0x16, 0xFF,0x7C, 0x26,0x94, 0x00,0x04, 0x87,0x36,
-0xFF,0xC0, 0x83,0x16, 0xFF,0x7C, 0x00,0x00, 0x00,0x01, 0xC0,0x3A, 0x32,0x00, 0xE6,0x00,
-0xBB,0x98, 0x03,0x9C, 0x00,0x01, 0x84,0x96, 0xFF,0x94, 0x00,0x00, 0x00,0x01, 0xC0,0x1E,
-0x4A,0x00, 0xEC,0x00, 0xB5,0xA1, 0x06,0xB4, 0x00,0x04, 0xF4,0x04, 0x4F,0x58, 0x83,0x16,
-0xFF,0x7C, 0x00,0x00, 0x00,0x01, 0xC0,0x1A, 0x42,0x00, 0xE6,0x00, 0xBA,0x2D, 0xF4,0x82,
-0x00,0x00, 0x94,0x96, 0xFF,0x74, 0x23,0x80, 0x00,0x07, 0x20,0x1E, 0x00,0x07, 0xEE,0x00,
-0xB7,0x48, 0xC7,0x1C, 0x38,0x00, 0x83,0x16, 0xFF,0x7C, 0x00,0x00, 0x00,0x01, 0xC7,0x18,
-0x70,0x00, 0x07,0x38, 0x00,0x26, 0x86,0xBA, 0x00,0x00, 0xF5,0x84, 0x4F,0x58, 0x77,0x39,
-0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB5, 0xFF,0xF0, 0xF7,0x02,
-0x00,0xFF, 0xC6,0xB6, 0x74,0x00, 0xE6,0x00, 0xB6,0x69, 0x20,0x36, 0x00,0x01, 0xE6,0x00,
-0xB6,0x69, 0x77,0x35, 0x00,0x06, 0xA6,0xBA, 0x58,0x02, 0xC7,0x38, 0x58,0x00, 0x76,0x39,
-0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC6,0xB4, 0x67,0xC0, 0x76,0xB5, 0xFF,0xF0, 0x20,0x36,
-0x00,0x02, 0xE6,0x00, 0xB6,0x6D, 0xC6,0xB8, 0x00,0x00, 0xC7,0x2C, 0x00,0x00, 0xE0,0x00,
-0xB6,0x6C, 0xC6,0xB8, 0x00,0x00, 0xF6,0x84, 0x4F,0x58, 0xF7,0x04, 0x4F,0x58, 0xC5,0x34,
-0x00,0x00, 0xC0,0x2A, 0x72,0x00, 0xE6,0x00, 0xB7,0x41, 0xC5,0x84, 0x00,0x00, 0x84,0x96,
-0xFF,0x74, 0x86,0xAA, 0x00,0x1C, 0x83,0x16, 0xFF,0x3C, 0xF6,0x02, 0x00,0x00, 0x04,0xA4,
-0x00,0x01, 0x94,0x96, 0xFF,0x74, 0x87,0x1A, 0x00,0x1C, 0x04,0xA8, 0x00,0x1C, 0x94,0x96,
-0xFF,0x34, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0xB6,0xCC, 0x04,0x18, 0x00,0x1C, 0x86,0xAA,
-0x00,0x20, 0x87,0x1A, 0x00,0x20, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE6,0x00,
-0xB6,0xD0, 0x20,0x32, 0x00,0x00, 0xF6,0x02, 0x00,0x01, 0x20,0x32, 0x00,0x00, 0xE6,0x00,
-0xB6,0xDD, 0x00,0x00, 0x00,0x01, 0xF5,0x82, 0x00,0x00, 0x83,0x16, 0xFF,0x34, 0x87,0x22,
-0x00,0x00, 0x86,0x9A, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE2,0x00,
-0xB7,0x1C, 0xF6,0x02, 0x00,0x00, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0xB7,0x24, 0x20,0x32,
-0x00,0x00, 0x86,0x9A, 0x00,0x04, 0x87,0x22, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0xC0,0x36,
-0x72,0x00, 0xE2,0x00, 0xB7,0x25, 0x20,0x32, 0x00,0x00, 0xF6,0x02, 0x00,0x01, 0x20,0x32,
-0x00,0x00, 0xE6,0x00, 0xB7,0x35, 0x20,0x2E, 0x00,0x00, 0xF5,0x82, 0x00,0x01, 0x20,0x2E,
-0x00,0x00, 0xE6,0x00, 0xB7,0x40, 0x00,0x00, 0x00,0x01, 0x93,0x96, 0xFF,0x84, 0xE0,0x00,
-0xB5,0xEC, 0x03,0x9C, 0x00,0x01, 0x84,0x96, 0xFF,0x74, 0x83,0x16, 0xFF,0x94, 0x00,0x00,
-0x00,0x01, 0xC0,0x26, 0x32,0x00, 0xE6,0x00, 0xBB,0x98, 0x23,0x00, 0x00,0x08, 0x84,0x96,
-0xFF,0x84, 0x00,0x00, 0x00,0x01, 0xC0,0x26, 0x32,0x00, 0xE6,0x00, 0xBB,0x99, 0xF6,0x02,
-0x00,0x00, 0xF6,0x84, 0x40,0x7C, 0xF7,0x04, 0x40,0x74, 0xC6,0xB4, 0x68,0x00, 0xC7,0x38,
-0x68,0x00, 0x07,0x38, 0x00,0x26, 0x86,0xBA, 0x00,0x00, 0x77,0x39, 0x00,0x1E, 0x77,0x38,
-0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x77,0xB4, 0x00,0x08, 0x70,0x3E, 0xFF,0xE8, 0x47,0x0C,
-0x00,0x01, 0xD7,0x00, 0x0A,0x70, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0xB8,0x04, 0xF5,0x82,
-0x00,0xFF, 0x84,0x96, 0xFF,0x84, 0x83,0x16, 0xFF,0x8C, 0x00,0x00, 0x00,0x01, 0xC7,0x24,
-0x32,0x00, 0x84,0x96, 0xFF,0x7C, 0xC7,0x38, 0x70,0x00, 0xC7,0x24, 0x70,0x00, 0x07,0x38,
-0x00,0x26, 0x86,0xBA, 0x00,0x00, 0x77,0x39, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4,
-0x77,0xC0, 0x76,0xB5, 0xFF,0xF0, 0xC6,0xB4, 0x5C,0x00, 0xC0,0x36, 0x62,0x00, 0x47,0x0C,
-0x00,0x01, 0xD7,0x00, 0x0A,0x70, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0xB8,0x0D, 0x20,0x32,
-0x00,0x00, 0xF6,0x02, 0x00,0x01, 0x20,0x32, 0x00,0x00, 0xE6,0x00, 0xBB,0x98, 0x23,0x80,
-0x00,0x07, 0x20,0x1E, 0x00,0x07, 0xEE,0x00, 0xB8,0xC8, 0xC7,0x1C, 0x38,0x00, 0x83,0x16,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0xC7,0x18, 0x70,0x00, 0x07,0x38, 0x00,0x26, 0x86,0xBA,
-0x00,0x00, 0xF5,0x84, 0x4F,0x58, 0x77,0x39, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4,
-0x77,0xC0, 0x76,0xB5, 0xFF,0xF0, 0xF7,0x02, 0x00,0xFF, 0xC6,0xB6, 0x74,0x00, 0xE6,0x00,
-0xB8,0x91, 0x20,0x36, 0x00,0x01, 0xE6,0x00, 0xB8,0x91, 0x77,0x35, 0x00,0x06, 0xA6,0xBA,
-0x58,0x02, 0xC7,0x38, 0x58,0x00, 0x76,0x39, 0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC6,0xB4,
-0x67,0xC0, 0x76,0xB5, 0xFF,0xF0, 0x20,0x36, 0x00,0x02, 0xE6,0x00, 0xB8,0x95, 0xC6,0xB8,
-0x00,0x00, 0xC7,0x2C, 0x00,0x00, 0xE0,0x00, 0xB8,0x94, 0xC6,0xB8, 0x00,0x00, 0xF6,0x84,
-0x4F,0x58, 0xF7,0x04, 0x4F,0x58, 0xC5,0x34, 0x00,0x00, 0xC0,0x2A, 0x72,0x00, 0xE6,0x00,
-0xB8,0xC1, 0x00,0x00, 0x00,0x01, 0x95,0x13, 0xFF,0xFC, 0x93,0x96, 0xFF,0x4C, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0xCC,0x60, 0x97,0x93, 0xFF,0xFC, 0x83,0x96, 0xFF,0x4C, 0xE0,0x00,
-0xB8,0x14, 0x03,0x9C, 0x00,0x01, 0x84,0x96, 0xFF,0x84, 0x83,0x16, 0xFF,0x8C, 0xF3,0x84,
-0x40,0x7C, 0xF5,0x04, 0x40,0x74, 0xC4,0xA4, 0x32,0x00, 0x94,0x96, 0xFF,0x34, 0x83,0x16,
-0xFF,0x34, 0xC5,0x9C, 0x38,0x00, 0xC5,0xA8, 0x58,0x00, 0x05,0xAC, 0x00,0x26, 0x86,0xAE,
-0x00,0x00, 0x77,0x2D, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0x74,0x2D, 0x00,0x1E, 0x74,0x20,
-0xFF,0xE5, 0x73,0x9D, 0x00,0x10, 0x73,0x9D, 0xFF,0xF8, 0xC4,0xA4, 0x30,0x00, 0x94,0x96,
-0xFF,0x3C, 0x83,0x16, 0xFF,0x7C, 0xC6,0xB4, 0x77,0xC0, 0xC4,0x98, 0x48,0x00, 0x94,0x96,
-0xFF,0x3C, 0x04,0xA4, 0x00,0x26, 0x94,0x96, 0xFF,0x3C, 0x73,0x25, 0x00,0x1E, 0x73,0x18,
-0xFF,0xE5, 0x93,0x16, 0xFF,0x6C, 0x74,0xA5, 0x00,0x1E, 0x94,0x96, 0xFF,0x64, 0x74,0xA4,
-0xFF,0xE5, 0x94,0x96, 0xFF,0x64, 0x83,0x16, 0xFF,0x7C, 0xF4,0x84, 0x4F,0x58, 0x76,0xB5,
-0xFF,0xF0, 0xC6,0x18, 0x4A,0x00, 0x76,0x30, 0xFF,0xFA, 0x46,0x31, 0x00,0x00, 0xF3,0x02,
-0x00,0xFF, 0xC6,0x30, 0x34,0x00, 0xF4,0x82, 0xFF,0x00, 0xC6,0xB4, 0x4C,0x00, 0xC6,0x30,
-0x68,0x00, 0xF6,0x2F, 0x28,0x00, 0x87,0x2E, 0x00,0x00, 0x83,0x16, 0xFF,0x34, 0xC7,0x38,
-0x47,0xC0, 0x77,0x39, 0xFF,0xF0, 0x73,0x19, 0x00,0x10, 0x93,0x16, 0xFF,0x34, 0x74,0x99,
-0xFF,0xF8, 0xF3,0x02, 0x00,0xFF, 0xC7,0x38, 0x34,0x00, 0xC7,0x24, 0x70,0x00, 0x97,0x16,
-0xFF,0x34, 0x24,0x94, 0x00,0xCA, 0x84,0xA6, 0x00,0x00, 0x77,0xA5, 0x00,0x1E, 0x77,0xBC,
-0xFF,0xE5, 0xC4,0xA4, 0x7F,0xC0, 0x74,0xA5, 0xFF,0xF0, 0x83,0x16, 0xFF,0x3C, 0xF4,0xAF,
-0x28,0x00, 0xF4,0x84, 0x4F,0x58, 0x87,0x1A, 0x00,0x00, 0xC5,0x28, 0x4A,0x00, 0x75,0x28,
-0xFF,0xFA, 0x83,0x16, 0xFF,0x6C, 0x45,0x29, 0x00,0x00, 0xF4,0x82, 0x00,0xFF, 0xC5,0x28,
-0x4C,0x00, 0x84,0x96, 0xFF,0x3C, 0xC7,0x38, 0x37,0xC0, 0x77,0x39, 0xFF,0xF0, 0xF3,0x02,
-0xFF,0x00, 0xC7,0x38, 0x34,0x00, 0xC5,0x28, 0x70,0x00, 0xF5,0x27, 0x28,0x00, 0x87,0x26,
-0x00,0x00, 0x83,0x16, 0xFF,0x64, 0x84,0x16, 0xFF,0x7C, 0xC7,0x38, 0x37,0xC0, 0x77,0x39,
-0xFF,0xF0, 0xF4,0x82, 0x00,0xFF, 0xC7,0x38, 0x4C,0x00, 0x83,0x16, 0xFF,0x3C, 0xC3,0x9C,
-0x70,0x00, 0xE0,0x00, 0xBE,0xE4, 0xF3,0x9B, 0x28,0x00, 0xF7,0x04, 0x40,0x7C, 0xF6,0x04,
-0x40,0x74, 0xC7,0x38, 0x70,0x00, 0xC7,0x30, 0x70,0x00, 0x07,0x38, 0x00,0x26, 0x86,0xBA,
-0x00,0x00, 0x77,0x39, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x77,0xB4,
-0x00,0x08, 0x70,0x3E, 0xFF,0xE8, 0x47,0x0C, 0x00,0x01, 0xD7,0x00, 0x0A,0x70, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0xBA,0x7D, 0x25,0x80, 0x00,0x07, 0xE0,0x00, 0xBE,0xE4, 0x04,0x20,
-0x00,0x40, 0xE0,0x00, 0xBA,0xD8, 0xC4,0x2C, 0x00,0x00, 0xC7,0x30, 0x42,0x00, 0x84,0x96,
-0x00,0x00, 0x75,0x38, 0xFF,0xFA, 0x06,0x24, 0x00,0x0A, 0x20,0x2E, 0x00,0x07, 0xEE,0x00,
-0xBA,0xD4, 0x07,0x30, 0x00,0x0E, 0x86,0xBA, 0x00,0x00, 0x77,0x39, 0x00,0x1E, 0x77,0x38,
-0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB5, 0xFF,0xF0, 0xF7,0x02, 0x00,0xFF, 0xC6,0xB4,
-0x74,0x00, 0x47,0x29, 0x00,0x00, 0xC0,0x36, 0x72,0x00, 0x47,0x0C, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0xBA,0x74, 0x06,0x30, 0x00,0x02, 0xE0,0x00, 0xBA,0x8C, 0x05,0xAC,
-0x00,0x01, 0xF4,0x02, 0x00,0x08, 0x07,0x20, 0x00,0x07, 0x20,0x3A, 0x00,0x0E, 0xE2,0x00,
-0xBB,0xA4, 0xC5,0xA0, 0x40,0x00, 0x83,0x16, 0x00,0x00, 0xF5,0x04, 0x40,0x7C, 0xF4,0x82,
-0x00,0xFF, 0xF6,0x04, 0x4F,0x58, 0xC5,0x98, 0x58,0x00, 0x05,0xAC, 0x00,0x26, 0x86,0xAE,
-0x00,0x00, 0x77,0x2D, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0x18, 0x62,0x00, 0x76,0x30,
-0xFF,0xFA, 0x46,0x31, 0x00,0x00, 0xC6,0x30, 0x4C,0x00, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB5,
-0xFF,0xF0, 0x77,0x29, 0x00,0x10, 0x77,0x39, 0xFF,0xF8, 0xC6,0xB4, 0x4C,0x00, 0xC7,0x38,
-0x68,0x00, 0xF7,0x2F, 0x28,0x00, 0xF5,0x84, 0x40,0x74, 0xC5,0x28, 0x50,0x00, 0xC5,0xAC,
-0x50,0x00, 0x05,0xAC, 0x00,0x26, 0x86,0xAE, 0x00,0x00, 0x77,0x2D, 0x00,0x1E, 0x77,0x38,
-0xFF,0xE5, 0x75,0x2D, 0x00,0x1E, 0x75,0x28, 0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB5,
-0xFF,0xF0, 0xF7,0x02, 0xFF,0x00, 0xC6,0xB4, 0x74,0x00, 0xC6,0x30, 0x68,0x00, 0xF6,0x2F,
-0x28,0x00, 0x87,0x2E, 0x00,0x00, 0x76,0xA1, 0x00,0x10, 0x76,0xB5, 0xFF,0xF8, 0xC7,0x38,
-0x57,0xC0, 0x77,0x39, 0xFF,0xF0, 0xC7,0x38, 0x4C,0x00, 0xC6,0xB4, 0x70,0x00, 0xE0,0x00,
-0xBB,0xF8, 0xF6,0xAF, 0x28,0x00, 0xF4,0x04, 0x4F,0x58, 0xE0,0x00, 0xBE,0xE4, 0x04,0x20,
-0x00,0x40, 0xF6,0x04, 0x4F,0x58, 0x83,0x16, 0x00,0x00, 0xF7,0x04, 0x40,0x7C, 0xF5,0x84,
-0x40,0x74, 0xC6,0x18, 0x62,0x00, 0x76,0x30, 0xFF,0xFA, 0xC7,0x38, 0x70,0x00, 0xC5,0xAC,
-0x70,0x00, 0x05,0xAC, 0x00,0x26, 0x86,0xAE, 0x00,0x00, 0x77,0x2D, 0x00,0x1E, 0x77,0x38,
-0xFF,0xE5, 0x46,0x31, 0x00,0x00, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB5, 0xFF,0xF0, 0xF7,0x02,
-0x00,0xFF, 0xC6,0x30, 0x74,0x00, 0xF7,0x02, 0xFF,0x00, 0xC6,0xB4, 0x74,0x00, 0xC6,0x30,
-0x68,0x00, 0xF6,0x2F, 0x28,0x00, 0x23,0x80, 0x00,0x07, 0x20,0x1E, 0x00,0x07, 0xEE,0x00,
-0xBE,0xE0, 0xC7,0x1C, 0x38,0x00, 0x84,0x96, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0xC7,0x24,
-0x70,0x00, 0x07,0x38, 0x00,0x26, 0x86,0xBA, 0x00,0x00, 0xF5,0x84, 0x4F,0x58, 0x77,0x39,
-0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB5, 0xFF,0xF0, 0xF7,0x02,
-0x00,0xFF, 0xC6,0xB6, 0x74,0x00, 0xE6,0x00, 0xBC,0x79, 0x20,0x36, 0x00,0x01, 0xE6,0x00,
-0xBC,0x79, 0x77,0x35, 0x00,0x06, 0xA6,0xBA, 0x58,0x02, 0xC7,0x38, 0x58,0x00, 0x76,0x39,
-0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC6,0xB4, 0x67,0xC0, 0x76,0xB5, 0xFF,0xF0, 0x20,0x36,
-0x00,0x02, 0xE6,0x00, 0xBC,0x7D, 0xC6,0xB8, 0x00,0x00, 0xC7,0x2C, 0x00,0x00, 0xE0,0x00,
-0xBC,0x7C, 0xC6,0xB8, 0x00,0x00, 0xF6,0x84, 0x4F,0x58, 0xF7,0x04, 0x4F,0x58, 0xC5,0x34,
-0x00,0x00, 0xC0,0x2A, 0x72,0x00, 0xE6,0x00, 0xBE,0xD9, 0x06,0xA8, 0x00,0x1C, 0x83,0x16,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x93,0x13, 0xFF,0xFC, 0x96,0x93, 0xFF,0xFC, 0xF4,0x86,
-0x3B,0xB4, 0x94,0x93, 0xFF,0xFC, 0x93,0x96, 0xFF,0x4C, 0x95,0x16, 0xFF,0x44, 0x96,0x96,
-0xFF,0x40, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x23,0x40, 0x97,0x93, 0xFF,0xFC, 0xF3,0x04,
-0x4F,0x5C, 0xF4,0x82, 0x00,0x00, 0x94,0x96, 0xFF,0x5C, 0x86,0x96, 0xFF,0x40, 0x83,0x96,
-0xFF,0x4C, 0x85,0x16, 0xFF,0x44, 0x93,0x16, 0xFF,0x34, 0x86,0x1A, 0x00,0x08, 0x96,0x96,
-0xFF,0x3C, 0x87,0x1A, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0xC0,0x32, 0x72,0x00, 0xEC,0x00,
-0xBD,0xB8, 0x96,0x16, 0xFF,0x9C, 0x77,0x31, 0x00,0x01, 0xC7,0x38, 0x60,0x00, 0x77,0x39,
-0x00,0x02, 0xC6,0x38, 0x30,0x00, 0x06,0x30, 0x00,0x0C, 0x86,0xB2, 0x00,0x00, 0x87,0x2A,
-0x00,0x1C, 0x85,0x96, 0xFF,0x5C, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0xBD,0x40, 0xC4,0x04,
-0x00,0x00, 0x86,0xB2, 0x00,0x04, 0x87,0x2A, 0x00,0x20, 0x00,0x00, 0x00,0x01, 0xC0,0x36,
-0x72,0x00, 0xE6,0x00, 0xBD,0x44, 0x20,0x2E, 0x00,0x00, 0xF5,0x82, 0x00,0x01, 0x20,0x2E,
-0x00,0x00, 0xE6,0x00, 0xBD,0x51, 0x00,0x00, 0x00,0x01, 0xF4,0x02, 0x00,0x00, 0x83,0x16,
-0xFF,0x3C, 0x86,0xB2, 0x00,0x00, 0x87,0x1A, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0xC0,0x36,
-0x72,0x00, 0xE2,0x00, 0xBD,0x90, 0xF5,0x82, 0x00,0x00, 0xC0,0x36, 0x72,0x00, 0xE6,0x00,
-0xBD,0x98, 0x20,0x2E, 0x00,0x00, 0x86,0xB2, 0x00,0x04, 0x87,0x1A, 0x00,0x04, 0x00,0x00,
-0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE2,0x00, 0xBD,0x99, 0x20,0x2E, 0x00,0x00, 0xF5,0x82,
-0x00,0x01, 0x20,0x2E, 0x00,0x00, 0xE6,0x00, 0xBD,0xA9, 0x20,0x22, 0x00,0x00, 0xF4,0x02,
-0x00,0x01, 0x20,0x22, 0x00,0x00, 0xE6,0x00, 0xBD,0xB8, 0x00,0x00, 0x00,0x01, 0xF4,0x82,
-0x00,0x01, 0x94,0x96, 0xFF,0x5C, 0x83,0x16, 0xFF,0x5C, 0x00,0x00, 0x00,0x01, 0x20,0x1A,
-0x00,0x00, 0xE6,0x00, 0xBD,0xF9, 0xF6,0x02, 0x00,0x01, 0x87,0x16, 0xFF,0x9C, 0x84,0x96,
-0xFF,0x34, 0x76,0xB9, 0x00,0x01, 0xC6,0xB4, 0x70,0x00, 0x76,0xB5, 0x00,0x02, 0xC6,0xB4,
-0x48,0x00, 0x06,0xB4, 0x00,0x14, 0x86,0xB6, 0x00,0x00, 0x97,0x16, 0xFF,0xA0, 0xE0,0x00,
-0xBE,0x70, 0x96,0x96, 0xFF,0xA4, 0x27,0x14, 0x00,0x64, 0x97,0x13, 0xFF,0xFC, 0x83,0x16,
-0xFF,0x3C, 0x00,0x00, 0x00,0x01, 0x93,0x13, 0xFF,0xFC, 0x84,0x96, 0xFF,0x34, 0x00,0x00,
-0x00,0x01, 0x94,0x93, 0xFF,0xFC, 0x93,0x96, 0xFF,0x4C, 0x95,0x16, 0xFF,0x44, 0x07,0x88,
-0x00,0x08, 0xE0,0x01, 0x25,0x68, 0x97,0x93, 0xFF,0xFC, 0x83,0x96, 0xFF,0x4C, 0x85,0x16,
-0xFF,0x44, 0x20,0x22, 0x00,0x00, 0xE6,0x00, 0xBE,0x71, 0xF6,0x02, 0x00,0x00, 0x87,0x16,
-0xFF,0x9C, 0x83,0x16, 0xFF,0x34, 0x76,0xB9, 0x00,0x01, 0xC6,0xB4, 0x70,0x00, 0x76,0xB5,
-0x00,0x02, 0xC6,0xB4, 0x30,0x00, 0x06,0xB4, 0x00,0x14, 0x86,0xB6, 0x00,0x00, 0x97,0x16,
-0xFF,0xA0, 0x96,0x96, 0xFF,0xA4, 0x97,0x1A, 0x00,0x08, 0xF6,0x02, 0x00,0x01, 0x20,0x32,
-0x00,0x00, 0xE6,0x00, 0xBE,0x99, 0xF6,0x06, 0x42,0x9C, 0xF7,0x04, 0x42,0x9C, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38,
-0x00,0x01, 0xF7,0x33, 0x28,0x00, 0xF7,0x04, 0x4F,0x58, 0x00,0x00, 0x00,0x01, 0xC7,0x28,
-0x72,0x00, 0x77,0x38, 0xFF,0xFA, 0x47,0x39, 0x00,0x00, 0x97,0x13, 0xFF,0xFC, 0x07,0x28,
-0x00,0x1C, 0x97,0x13, 0xFF,0xFC, 0xF4,0x84, 0x4F,0x5C, 0x00,0x00, 0x00,0x01, 0x94,0x93,
-0xFF,0xFC, 0x93,0x96, 0xFF,0x4C, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x23,0x40, 0x97,0x93,
-0xFF,0xFC, 0x83,0x96, 0xFF,0x4C, 0xE0,0x00, 0xBB,0xFC, 0x03,0x9C, 0x00,0x01, 0x84,0x16,
-0x00,0x00, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x04, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10,
-0x00,0x60, 0x85,0x16, 0x00,0x00, 0x86,0x16, 0x00,0x04, 0x06,0xA8, 0x00,0x18, 0xC7,0x30,
-0x60,0x00, 0xC5,0xB8, 0x68,0x00, 0x20,0x32, 0x00,0x07, 0xEE,0x00, 0xBF,0x64, 0x07,0x2C,
-0x00,0x0E, 0x86,0xBA, 0x00,0x00, 0x77,0x39, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4,
-0x77,0xC0, 0x76,0xB5, 0xFF,0xF0, 0xF7,0x02, 0x00,0xFF, 0xC6,0xB4, 0x74,0x00, 0x20,0x36,
-0x00,0x00, 0x47,0x0C, 0x00,0x01, 0xD7,0x00, 0x0A,0x70, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0xBF,0x61, 0x05,0xAC, 0x00,0x02, 0xE0,0x00, 0xBF,0x18, 0x06,0x30, 0x00,0x01, 0x20,0x32,
-0x00,0x07, 0xEE,0x00, 0xC0,0x4C, 0x06,0xA8, 0x00,0x16, 0xF5,0x05, 0x40,0x74, 0xF6,0x05,
-0x40,0x7C, 0xF3,0x02, 0x00,0x06, 0xF3,0x05, 0x42,0x54, 0x96,0x13, 0xFF,0xFC, 0x05,0x28,
-0x00,0x02, 0x95,0x16, 0xFF,0xC4, 0x95,0x13, 0xFF,0xFC, 0x23,0x94, 0x00,0x20, 0x93,0x96,
-0xFF,0xBC, 0x93,0x93, 0xFF,0xFC, 0x96,0x16, 0xFF,0xAC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0xD0,0xDC, 0x97,0x93, 0xFF,0xFC, 0x84,0x96, 0xFF,0xC4, 0x23,0x14, 0x00,0x38, 0x94,0x93,
-0xFF,0xFC, 0x93,0x16, 0xFF,0xB4, 0x93,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0xD2,0x58, 0x97,0x93, 0xFF,0xFC, 0x87,0x02, 0xFF,0x34, 0x86,0x16, 0xFF,0xAC, 0xF7,0x05,
-0x42,0x64, 0x96,0x13, 0xFF,0xFC, 0x97,0x13, 0xFF,0xFC, 0x83,0x96, 0xFF,0xB4, 0x00,0x00,
-0x00,0x01, 0x93,0x93, 0xFF,0xFC, 0x84,0x96, 0xFF,0xBC, 0x00,0x00, 0x00,0x01, 0x94,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xF7,0xC8, 0x97,0x93, 0xFF,0xFC, 0x20,0x22,
-0x00,0x00, 0xE6,0x00, 0xC0,0x1D, 0xF3,0x06, 0x3A,0xD8, 0xF7,0x04, 0x42,0x54, 0x00,0x00,
-0x00,0x01, 0x27,0x38, 0x00,0x01, 0xF7,0x05, 0x42,0x54, 0xF3,0x05, 0x42,0x44, 0xF3,0x82,
-0x17,0x70, 0x93,0x93, 0xFF,0xFC, 0xF4,0x82, 0x00,0x1B, 0x94,0x93, 0xFF,0xFC, 0xF3,0x06,
-0x42,0x44, 0x93,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x1E,0xC0, 0x97,0x93,
-0xFF,0xFC, 0xE0,0x00, 0xC1,0xA0, 0x00,0x00, 0x00,0x01, 0x87,0x36, 0x00,0x00, 0xF5,0x84,
-0x4F,0x58, 0xF4,0x06, 0x3B,0x70, 0x76,0xB5, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0x76,0x39, 0x00,0x06, 0xA7,0x2E, 0x60,0x02, 0xC5,0x2C,
-0x60,0x00, 0x76,0xA9, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39,
-0xFF,0xF0, 0x77,0x39, 0x00,0x03, 0xC7,0x38, 0x40,0x00, 0x07,0x38, 0x00,0x02, 0x86,0xBA,
-0x00,0x00, 0x77,0x39, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB7,
-0xFF,0xF0, 0xEE,0x00, 0xC1,0x15, 0x96,0x96, 0xFF,0x9C, 0xA7,0x2E, 0x60,0x02, 0x76,0xA9,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0x83,0x96, 0xFF,0x9C, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39,
-0xFF,0xF0, 0x77,0x39, 0x00,0x03, 0xC7,0x38, 0x40,0x00, 0x86,0xBA, 0x00,0x04, 0x24,0x94,
-0x00,0x60, 0x77,0x39, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB5,
-0xFF,0xF0, 0xA6,0xAA, 0x68,0x02, 0x77,0x1D, 0x00,0x03, 0xC7,0x38, 0x68,0x00, 0x27,0x38,
-0x00,0x08, 0x83,0xBA, 0x00,0x04, 0x83,0x3A, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x93,0xA6,
-0x00,0x04, 0x93,0x26, 0x00,0x00, 0x85,0x96, 0xFF,0xA4, 0xE0,0x00, 0xC1,0x38, 0x23,0x00,
-0x00,0x07, 0xA7,0x2E, 0x60,0x02, 0x76,0xA9, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x77,0x39, 0x00,0x03, 0xC7,0x38, 0x40,0x00, 0x85,0xBA,
-0x00,0x04, 0x23,0x00, 0x00,0x07, 0x93,0x13, 0xFF,0xFC, 0x87,0x2A, 0x00,0x00, 0x76,0xA9,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0x83,0x96, 0xFF,0x9C, 0xF6,0x06, 0x3B,0x70, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x77,0x39, 0x00,0x03, 0xA6,0xBA, 0x60,0x02, 0x20,0x1E,
-0x00,0x00, 0xC7,0x38, 0x60,0x00, 0x77,0x39, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4,
-0x77,0xC0, 0xEE,0x00, 0xC1,0x8D, 0x76,0xB5, 0xFF,0xF0, 0x84,0x96, 0xFF,0xA0, 0x00,0x00,
-0x00,0x01, 0x77,0x25, 0xFF,0xF0, 0xC6,0xB8, 0x68,0x00, 0xC7,0x28, 0x68,0x00, 0x97,0x13,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xC1,0x2C, 0x00,0x00, 0x97,0x93, 0xFF,0xFC, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x08, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0x70, 0x25,0x00,
-0x00,0x07, 0x20,0x2A, 0x00,0x07, 0xEE,0x00, 0xC3,0xB8, 0xC7,0x28, 0x50,0x00, 0x83,0x16,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0xC7,0x18, 0x70,0x00, 0x07,0x38, 0x00,0x26, 0x86,0xBA,
-0x00,0x00, 0xF5,0x84, 0x4F,0x58, 0x77,0x39, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4,
-0x77,0xC0, 0x76,0xB5, 0xFF,0xF0, 0xF7,0x02, 0x00,0xFF, 0xC6,0xB6, 0x74,0x00, 0xE6,0x00,
-0xC2,0x3D, 0x20,0x36, 0x00,0x01, 0xE6,0x00, 0xC2,0x3D, 0x77,0x35, 0x00,0x06, 0xA6,0xBA,
-0x58,0x02, 0xC7,0x38, 0x58,0x00, 0x76,0x39, 0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC6,0xB4,
-0x67,0xC0, 0x76,0xB5, 0xFF,0xF0, 0x20,0x36, 0x00,0x02, 0xE6,0x00, 0xC2,0x4D, 0xC0,0x3A,
-0x5A,0x00, 0xE0,0x00, 0xC2,0x48, 0xC7,0x2C, 0x00,0x00, 0xF7,0x04, 0x4F,0x58, 0xF5,0x84,
-0x4F,0x58, 0x00,0x00, 0x00,0x01, 0xC0,0x3A, 0x5A,0x00, 0xE6,0x00, 0xC3,0xB1, 0xF4,0x86,
-0x3B,0x90, 0x83,0x96, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x06,0x9C, 0x00,0x16, 0x87,0x36,
-0x00,0x00, 0x76,0xB5, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0x76,0x39, 0x00,0x06, 0xA7,0x2E, 0x60,0x02, 0xC5,0x2C, 0x60,0x00, 0x76,0xA9,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x77,0x39,
-0x00,0x03, 0xC7,0x38, 0x48,0x00, 0x07,0x38, 0x00,0x02, 0x86,0xBA, 0x00,0x00, 0x77,0x39,
-0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB7, 0xFF,0xF0, 0xEE,0x00,
-0xC3,0x21, 0x96,0x96, 0xFF,0x8C, 0xA7,0x2E, 0x60,0x02, 0x76,0xA9, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0x83,0x16, 0xFF,0x8C, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x77,0x39,
-0x00,0x03, 0xC7,0x38, 0x48,0x00, 0x86,0xBA, 0x00,0x04, 0x24,0x94, 0x00,0x70, 0x77,0x39,
-0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB5, 0xFF,0xF0, 0xA6,0xAA,
-0x68,0x02, 0x77,0x19, 0x00,0x03, 0xC7,0x38, 0x68,0x00, 0x27,0x38, 0x00,0x08, 0x83,0xBA,
-0x00,0x04, 0x83,0x3A, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x93,0xA6, 0x00,0x04, 0x93,0x26,
-0x00,0x00, 0x86,0x16, 0xFF,0x94, 0xE0,0x00, 0xC3,0x44, 0x00,0x00, 0x00,0x01, 0xA7,0x2E,
-0x60,0x02, 0x76,0xA9, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xF3,0x06, 0x3B,0x90, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x77,0x39, 0x00,0x03, 0xC7,0x38, 0x30,0x00, 0x86,0x3A,
-0x00,0x04, 0x87,0x2A, 0x00,0x00, 0x76,0xA9, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0x83,0x96,
-0xFF,0x8C, 0xF4,0x86, 0x3B,0x90, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x77,0x39,
-0x00,0x03, 0xA6,0xBA, 0x48,0x02, 0x20,0x1E, 0x00,0x00, 0xC7,0x38, 0x48,0x00, 0x77,0x39,
-0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0xEE,0x00, 0xC3,0x95, 0x76,0xB5,
-0xFF,0xF0, 0x83,0x16, 0xFF,0x90, 0x00,0x00, 0x00,0x01, 0x77,0x19, 0xFF,0xF0, 0xC6,0xB8,
-0x68,0x00, 0xC7,0x28, 0x68,0x00, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xC1,0x30,
-0x00,0x00, 0x97,0x93, 0xFF,0xFC, 0xE0,0x00, 0xC5,0xC4, 0x00,0x00, 0x00,0x01, 0xE0,0x00,
-0xC1,0xC4, 0x05,0x28, 0x00,0x01, 0x83,0x96, 0x00,0x00, 0xF4,0x82, 0x00,0x06, 0xF4,0x85,
-0x42,0x54, 0xF6,0x04, 0x42,0x60, 0x25,0x14, 0x00,0x1E, 0x23,0x14, 0x00,0x20, 0x93,0x16,
-0xFF,0xAC, 0xF3,0x85, 0x40,0x78, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0x06,0x30, 0x00,0x02, 0x75,0xB1, 0x00,0x1E, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1B, 0x28,0x00, 0x87,0x32, 0x00,0x00, 0x75,0xAC,
-0xFF,0xE5, 0xC7,0x38, 0x5F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x25,0x14,
-0x00,0x1C, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x25,0x14,
-0x00,0x1A, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x25,0x14,
-0x00,0x18, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x25,0x14,
-0x00,0x16, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x25,0x14,
-0x00,0x14, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x25,0x14,
-0x00,0x12, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x25,0x14, 0x00,0x10, 0x76,0x31, 0x00,0x1E, 0x76,0x30,
-0xFF,0xE5, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x07,0x1C,
-0x00,0x02, 0x97,0x13, 0xFF,0xFC, 0x23,0x94, 0x00,0x50, 0x93,0x96, 0xFF,0xA4, 0x93,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xD2,0x58, 0x97,0x93, 0xFF,0xFC, 0x84,0x96,
-0xFF,0xA4, 0x23,0x14, 0x00,0x38, 0x94,0x93, 0xFF,0xFC, 0x27,0x80, 0x00,0x07, 0x97,0x93,
-0xFF,0xFC, 0x93,0x16, 0xFF,0x9C, 0x93,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0xCF,0x24, 0x97,0x93, 0xFF,0xFC, 0x87,0x02, 0xFF,0x34, 0x27,0x80, 0x00,0x07, 0xF7,0x85,
-0x42,0x58, 0xF7,0x05, 0x42,0x64, 0x27,0x80, 0x00,0x07, 0x97,0x93, 0xFF,0xFC, 0x97,0x13,
-0xFF,0xFC, 0x83,0x96, 0xFF,0x9C, 0x00,0x00, 0x00,0x01, 0x93,0x93, 0xFF,0xFC, 0x84,0x96,
-0xFF,0xAC, 0x00,0x00, 0x00,0x01, 0x94,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0xF5,0xF4, 0x97,0x93, 0xFF,0xFC, 0x20,0x22, 0x00,0x00, 0xE6,0x00, 0xC5,0x95, 0x00,0x00,
-0x00,0x01, 0xF7,0x04, 0x42,0x58, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0xF7,0x05,
-0x42,0x58, 0xF7,0x04, 0x2D,0x38, 0xF3,0x06, 0x39,0xC0, 0xF3,0x05, 0x42,0x44, 0xF6,0x86,
-0x2C,0x28, 0x06,0x38, 0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF3,0x82,
-0x00,0x1C, 0x20,0x32, 0x00,0x44, 0xE6,0x00, 0xC5,0xC4, 0xB3,0xBA, 0x68,0x02, 0xF0,0x05,
-0x2D,0x38, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x04, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x25,0x00,
-0x00,0x07, 0xF7,0x04, 0x40,0x74, 0xF6,0x84, 0x4F,0x58, 0xF6,0x04, 0x42,0x60, 0xC7,0x38,
-0x6A,0x00, 0x75,0xB8, 0xFF,0xFA, 0x06,0x30, 0x00,0x0A, 0x20,0x2A, 0x00,0x07, 0xEE,0x00,
-0xC6,0x48, 0x07,0x30, 0x00,0x0E, 0x86,0xBA, 0x00,0x00, 0x77,0x39, 0x00,0x1E, 0x77,0x38,
-0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB5, 0xFF,0xF0, 0xF7,0x02, 0x00,0xFF, 0xC6,0xB4,
-0x74,0x00, 0x47,0x2D, 0x00,0x00, 0xC0,0x36, 0x72,0x00, 0x47,0x0C, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0xC6,0x4C, 0xC3,0x28, 0x00,0x00, 0x06,0x30, 0x00,0x02, 0xE0,0x00,
-0xC5,0xFC, 0x05,0x28, 0x00,0x01, 0xF3,0x02, 0x00,0x08, 0xC5,0x18, 0x30,0x00, 0xF3,0x84,
-0x42,0x60, 0xF6,0x04, 0x4F,0x58, 0xF7,0x04, 0x40,0x7C, 0xF4,0x84, 0x40,0x74, 0xC5,0x1C,
-0x50,0x00, 0x05,0x28, 0x00,0x26, 0x85,0xAA, 0x00,0x00, 0x74,0x29, 0x00,0x1E, 0x74,0x20,
-0xFF,0xE5, 0xC6,0x1C, 0x62,0x00, 0x76,0x30, 0xFF,0xFA, 0xC6,0xB8, 0x70,0x00, 0xC4,0xA4,
-0x68,0x00, 0x04,0xA4, 0x00,0x26, 0x76,0xA5, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0x77,0x39,
-0x00,0x10, 0x77,0x39, 0xFF,0xF8, 0x46,0x31, 0x00,0x00, 0xC5,0xAC, 0x47,0xC0, 0x75,0xAD,
-0xFF,0xF0, 0xF4,0x02, 0x00,0xFF, 0xC5,0xAC, 0x44,0x00, 0xC7,0x38, 0x58,0x00, 0xF7,0x2B,
-0x28,0x00, 0x87,0x26, 0x00,0x00, 0x75,0xA5, 0x00,0x1E, 0xC6,0x30, 0x44,0x00, 0x75,0xAC,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0xF6,0x82, 0xFF,0x00, 0xC7,0x38,
-0x6C,0x00, 0xC6,0x30, 0x70,0x00, 0xF6,0x27, 0x28,0x00, 0x87,0x26, 0x00,0x00, 0x76,0x99,
-0x00,0x10, 0x76,0xB5, 0xFF,0xF8, 0xC7,0x38, 0x5F,0xC0, 0x77,0x39, 0xFF,0xF0, 0xC7,0x38,
-0x44,0x00, 0xC6,0xB4, 0x70,0x00, 0xF6,0xA7, 0x28,0x00, 0x93,0x93, 0xFF,0xFC, 0xF3,0x84,
-0x3B,0xB0, 0x00,0x00, 0x00,0x01, 0x93,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0xD4,0x2C, 0x97,0x93, 0xFF,0xFC, 0xF7,0x04, 0x40,0x7C, 0x00,0x00, 0x00,0x01, 0x07,0x38,
-0x00,0x01, 0x97,0x13, 0xFF,0xFC, 0xF3,0x84, 0x40,0x74, 0x00,0x00, 0x00,0x01, 0x93,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xBE,0xF8, 0x97,0x93, 0xFF,0xFC, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x04, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x08, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x04, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF7,0x06,
-0x42,0x30, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06, 0x35,0x60, 0x97,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x14,0xF4, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06, 0x42,0x30, 0x97,0x13,
-0xFF,0xFC, 0xF7,0x06, 0x35,0xEC, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x14,0xF4, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06, 0x42,0x44, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06,
-0x36,0x78, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x14,0xF4, 0x97,0x93,
-0xFF,0xFC, 0xF7,0x06, 0x42,0x44, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06, 0x37,0x04, 0x97,0x13,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x14,0xF4, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06,
-0x42,0x44, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06, 0x37,0x90, 0x97,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x14,0xF4, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06, 0x42,0x44, 0x97,0x13,
-0xFF,0xFC, 0xF7,0x06, 0x38,0x1C, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x14,0xF4, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06, 0x42,0x44, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06,
-0x38,0xA8, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x14,0xF4, 0x97,0x93,
-0xFF,0xFC, 0xF7,0x06, 0x42,0x44, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06, 0x39,0x34, 0x97,0x13,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x14,0xF4, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06,
-0x42,0x44, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06, 0x39,0xC0, 0x97,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x14,0xF4, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06, 0x42,0x44, 0x97,0x13,
-0xFF,0xFC, 0xF7,0x06, 0x3A,0x4C, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x14,0xF4, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06, 0x42,0x44, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06,
-0x3A,0xD8, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x14,0xF4, 0x97,0x93,
-0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x85,0x96,
-0x00,0x00, 0xF5,0x06, 0x3B,0x90, 0x87,0x2E, 0x00,0x00, 0x76,0xAD, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x77,0x39, 0x00,0x03, 0xC7,0x38,
-0x50,0x00, 0x07,0x38, 0x00,0x02, 0x86,0xBA, 0x00,0x00, 0x77,0x39, 0x00,0x1E, 0x77,0x38,
-0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0x37, 0xFF,0xF0, 0xEE,0x00, 0xC9,0x95, 0x00,0x00,
-0x00,0x01, 0x87,0x2E, 0x00,0x00, 0x76,0xAD, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x77,0x39, 0x00,0x03, 0xC7,0x38, 0x50,0x00, 0x86,0xBA,
-0x00,0x04, 0x77,0x39, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB5,
-0xFF,0xF0, 0xA6,0xAE, 0x68,0x02, 0x77,0x31, 0x00,0x03, 0xC7,0x38, 0x68,0x00, 0x27,0x38,
-0x00,0x08, 0x84,0xBA, 0x00,0x04, 0x84,0x3A, 0x00,0x00, 0xE0,0x00, 0xC9,0xB4, 0xC5,0x24,
-0x00,0x00, 0x87,0x2E, 0x00,0x00, 0x76,0xAD, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x77,0x39, 0x00,0x03, 0xC7,0x38, 0x50,0x00, 0x85,0x3A,
-0x00,0x04, 0x87,0x2E, 0x00,0x00, 0x76,0xAD, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0x20,0x32,
-0x00,0x00, 0xF6,0x06, 0x3B,0x90, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x77,0x39,
-0x00,0x03, 0xA6,0xBA, 0x60,0x02, 0xC7,0x38, 0x60,0x00, 0x77,0x39, 0x00,0x1E, 0x77,0x38,
-0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0xEE,0x00, 0xC9,0xF9, 0x76,0xB5, 0xFF,0xF0, 0x77,0x21,
-0xFF,0xF0, 0xC6,0xB8, 0x68,0x00, 0xC7,0x2C, 0x68,0x00, 0x97,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xC1,0x28, 0x00,0x00, 0x97,0x93, 0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x04, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x85,0x96, 0x00,0x00, 0xF5,0x06, 0x3B,0x70, 0x87,0x2E,
-0x00,0x00, 0x76,0xAD, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39,
-0xFF,0xF0, 0x77,0x39, 0x00,0x03, 0xC7,0x38, 0x50,0x00, 0x07,0x38, 0x00,0x02, 0x86,0xBA,
-0x00,0x00, 0x77,0x39, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0x37,
-0xFF,0xF0, 0xEE,0x00, 0xCA,0xBD, 0x00,0x00, 0x00,0x01, 0x87,0x2E, 0x00,0x00, 0x76,0xAD,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x77,0x39,
-0x00,0x03, 0xC7,0x38, 0x50,0x00, 0x86,0xBA, 0x00,0x04, 0x77,0x39, 0x00,0x1E, 0x77,0x38,
-0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB5, 0xFF,0xF0, 0xA6,0xAE, 0x68,0x02, 0x77,0x31,
-0x00,0x03, 0xC7,0x38, 0x68,0x00, 0x27,0x38, 0x00,0x08, 0x84,0xBA, 0x00,0x04, 0x84,0x3A,
-0x00,0x00, 0xE0,0x00, 0xCA,0xDC, 0xC5,0x24, 0x00,0x00, 0x87,0x2E, 0x00,0x00, 0x76,0xAD,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x77,0x39,
-0x00,0x03, 0xC7,0x38, 0x50,0x00, 0x85,0x3A, 0x00,0x04, 0x83,0x96, 0x00,0x04, 0x76,0xAD,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0x20,0x32, 0x00,0x00, 0x93,0x93, 0xFF,0xFC, 0x87,0x2E,
-0x00,0x00, 0xF6,0x06, 0x3B,0x70, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x77,0x39,
-0x00,0x03, 0xA6,0xBA, 0x60,0x02, 0xC7,0x38, 0x60,0x00, 0x77,0x39, 0x00,0x1E, 0x77,0x38,
-0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0xEE,0x00, 0xCB,0x29, 0x76,0xB5, 0xFF,0xF0, 0x77,0x21,
-0xFF,0xF0, 0xC6,0xB8, 0x68,0x00, 0xC7,0x2C, 0x68,0x00, 0x97,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xC1,0x28, 0x00,0x00, 0x97,0x93, 0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x08, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF5,0x04, 0x4F,0x58, 0xF5,0x82, 0x00,0x02, 0x06,0x28,
-0x00,0x80, 0x20,0x2E, 0x00,0x62, 0xEE,0x00, 0xCB,0x90, 0x07,0x30, 0x00,0x40, 0xF0,0x33,
-0x28,0x00, 0xC6,0xB8, 0x52,0x00, 0x76,0xB4, 0xFF,0xFA, 0x06,0x30, 0x00,0x14, 0xF6,0xB3,
-0x28,0x00, 0xC6,0x38, 0x00,0x00, 0xE0,0x00, 0xCB,0x64, 0x05,0xAC, 0x00,0x01, 0xF7,0x04,
-0x4F,0x58, 0x00,0x00, 0x00,0x01, 0x06,0xB8, 0x18,0xD4, 0xF4,0x82, 0x00,0x01, 0xF4,0xB7,
-0x28,0x00, 0x07,0x38, 0x18,0xC0, 0xF0,0x3B, 0x28,0x00, 0xF7,0x06, 0x42,0xC0, 0xF4,0x82,
-0x00,0x02, 0xF4,0xBB, 0x28,0x00, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0xF6,0x84, 0x42,0xC0, 0xF6,0x06, 0x42,0xC0, 0x77,0x31, 0x00,0x1E, 0x77,0x38,
-0xFF,0xE5, 0x75,0xB1, 0x00,0x1E, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB4, 0xFF,0xF0, 0xF7,0x04,
-0x4F,0x58, 0x76,0xB5, 0x00,0x06, 0xC4,0x38, 0x68,0x00, 0x87,0x22, 0x00,0x14, 0x76,0xA1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x33,
-0x28,0x00, 0xF7,0x04, 0x42,0xC0, 0x75,0xAC, 0xFF,0xE5, 0xC7,0x38, 0x5F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0x20,0x3A, 0x00,0x01, 0xE6,0x00, 0xCC,0x4C, 0xF6,0x06, 0x42,0x90, 0xF7,0x04,
-0x42,0x90, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39,
-0xFF,0xF0, 0x07,0x38, 0x00,0x01, 0xF7,0x33, 0x28,0x00, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0x04, 0x85,0x16, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x95,0x13, 0xFF,0xFC, 0x95,0x16, 0xFF,0xF4, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0xCD,0x00, 0x97,0x93, 0xFF,0xFC, 0x85,0x16, 0xFF,0xF4, 0x20,0x22, 0x00,0x00, 0xE6,0x00,
-0xCC,0xBC, 0xF5,0x86, 0x42,0xC0, 0xF7,0x04, 0x42,0x90, 0xF6,0x06, 0x42,0x92, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38,
-0x00,0x01, 0xE0,0x00, 0xCC,0xEC, 0xF7,0x33, 0x28,0x00, 0xF0,0x2B, 0x28,0x00, 0xF6,0x84,
-0x42,0xC0, 0x77,0x2D, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0x06,0x28, 0x00,0x14, 0xC6,0xB4,
-0x77,0xC0, 0x76,0xB4, 0xFF,0xF0, 0xF7,0x04, 0x4F,0x58, 0xF6,0xB3, 0x28,0x00, 0xC7,0x28,
-0x72,0x00, 0x77,0x38, 0xFF,0xFA, 0xF7,0x2F, 0x28,0x00, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x04, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x86,0x96, 0x00,0x00, 0xF7,0x04, 0x4F,0x58, 0xF4,0x02,
-0x00,0x00, 0xC6,0xB4, 0x72,0x00, 0x77,0x34, 0xFF,0xFA, 0x27,0x38, 0x00,0x02, 0x20,0x3A,
-0x00,0x61, 0xF7,0x02, 0x00,0x3F, 0xE2,0x00, 0xCD,0x40, 0xC6,0xB4, 0x74,0x00, 0x20,0x36,
-0x00,0x00, 0xE6,0x00, 0xCD,0x40, 0x00,0x00, 0x00,0x01, 0xF4,0x02, 0x00,0x01, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x04, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x86,0x16, 0x00,0x00, 0x87,0x16,
-0x00,0x08, 0x85,0x96, 0x00,0x04, 0xC5,0x30, 0x70,0x00, 0xC0,0x32, 0x52,0x00, 0xE6,0x00,
-0xCD,0xA1, 0x00,0x00, 0x00,0x01, 0x86,0xB2, 0x00,0x00, 0x77,0x31, 0x00,0x1E, 0x77,0x38,
-0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB5, 0xFF,0xE8, 0xF6,0xAF, 0x68,0x00, 0x06,0x30,
-0x00,0x01, 0xC0,0x32, 0x52,0x00, 0xE6,0x00, 0xCD,0x78, 0x05,0xAC, 0x00,0x01, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x0C, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x00,0x00, 0x00,0x00, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x84,0x96,
-0x00,0x00, 0x84,0x16, 0x00,0x04, 0x85,0x96, 0x00,0x08, 0x86,0xA6, 0x00,0x00, 0x77,0x25,
-0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x75,0x35, 0xFF,0xF0, 0x20,0x2A,
-0x00,0x10, 0xE2,0x00, 0xCE,0x0D, 0xF6,0x06, 0x42,0x8E, 0xF5,0x02, 0x00,0x10, 0xF7,0x04,
-0x42,0x8C, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39,
-0xFF,0xF0, 0x07,0x38, 0x00,0x01, 0xF7,0x33, 0x28,0x00, 0x20,0x2E, 0x00,0x01, 0xE6,0x00,
-0xCE,0x70, 0x20,0x2A, 0x00,0x00, 0xEE,0x00, 0xCE,0x71, 0x07,0x24, 0x00,0x02, 0x25,0x28,
-0x00,0x01, 0xA5,0xBA, 0x50,0x02, 0x86,0x22, 0x00,0x00, 0x76,0xA1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x50,0x00, 0x77,0x39, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC5,0xAC,
-0x77,0xC0, 0xC6,0x30, 0x6F,0xC0, 0x76,0x31, 0xFF,0xF0, 0x75,0xAD, 0xFF,0xE8, 0xF6,0x82,
-0x00,0xFF, 0xF7,0x02, 0xF1,0x54, 0x75,0xAD, 0x00,0x02, 0xA7,0x2E, 0x70,0x02, 0xC6,0x30,
-0x6C,0x00, 0xC6,0x30, 0x75,0x80, 0xF6,0x23, 0x28,0x00, 0x24,0x20, 0x00,0x02, 0x25,0xA8,
-0x00,0x01, 0xF3,0x02, 0xF2,0x46, 0x03,0xA4, 0x00,0x02, 0xC4,0xAC, 0x38,0x00, 0x25,0x2C,
-0x00,0x01, 0x20,0x2E, 0x00,0x00, 0xEC,0x00, 0xCF,0x11, 0x00,0x00, 0x00,0x01, 0xE6,0x00,
-0xCE,0xA0, 0xC7,0x1C, 0x50,0x00, 0xE0,0x00, 0xCE,0xB4, 0xF6,0x02, 0x00,0x00, 0xA6,0x9E,
-0x50,0x02, 0x77,0x39, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0x35,
-0xFF,0xE8, 0x86,0xA6, 0x00,0x00, 0x77,0x25, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0x25,0x28,
-0x00,0x02, 0x25,0xAC, 0x00,0x02, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB5, 0xFF,0xE8, 0x77,0x31,
-0x00,0x04, 0xC7,0x38, 0x62,0x00, 0x77,0x39, 0x00,0x01, 0xC7,0x38, 0x30,0x00, 0xC6,0xB4,
-0x68,0x00, 0xC6,0xB4, 0x70,0x00, 0x06,0xB4, 0x00,0x0E, 0x87,0x36, 0x00,0x00, 0x24,0xA4,
-0x00,0x02, 0x76,0xB5, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x23, 0x28,0x00, 0xE0,0x00, 0xCE,0x84, 0x24,0x20, 0x00,0x02, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x0C, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x86,0x16, 0x00,0x08, 0x83,0x16,
-0x00,0x04, 0x83,0x96, 0x00,0x00, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0x05,0x9C, 0x00,0x02, 0x74,0x9D, 0x00,0x1E, 0x74,0xA4, 0xFF,0xE5, 0x74,0x1D,
-0x00,0x1E, 0x06,0x30, 0x00,0x02, 0x75,0x31, 0x00,0x1E, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x1F, 0x28,0x00, 0x87,0x32, 0x00,0x00, 0x75,0x28, 0xFF,0xE5, 0xC7,0x38,
-0x57,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2F, 0x28,0x00, 0x05,0xAC, 0x00,0x02, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2F, 0x28,0x00, 0x05,0xAC, 0x00,0x02, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2F, 0x28,0x00, 0x05,0xAC, 0x00,0x02, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2F, 0x28,0x00, 0x05,0xAC, 0x00,0x02, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2F, 0x28,0x00, 0x05,0xAC, 0x00,0x02, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2F, 0x28,0x00, 0x05,0xAC, 0x00,0x02, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2F, 0x28,0x00, 0x06,0x30, 0x00,0x02, 0x87,0x32,
-0x00,0x00, 0x05,0xAC, 0x00,0x02, 0x76,0x31, 0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38,
-0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2F, 0x28,0x00, 0x87,0x1E, 0x00,0x00, 0x74,0x20,
-0xFF,0xE5, 0xC7,0x38, 0x4F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38, 0x00,0x01, 0xF7,0x1F,
-0x28,0x00, 0x87,0x1E, 0x00,0x00, 0x04,0x9C, 0x00,0x02, 0xC7,0x38, 0x47,0xC0, 0x77,0x39,
-0xFF,0xF0, 0x25,0x38, 0x00,0x01, 0x20,0x2A, 0x00,0x00, 0xEE,0x00, 0xD0,0xBD, 0x26,0x28,
-0x00,0x01, 0xA7,0x26, 0x60,0x02, 0xC6,0xA4, 0x60,0x00, 0x76,0xB5, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC5,0xA4, 0x50,0x00, 0xC5,0x30, 0x00,0x00, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39,
-0xFF,0xE8, 0xE0,0x00, 0xD0,0x88, 0xF7,0x2F, 0x68,0x00, 0x07,0x1C, 0x00,0x02, 0xF3,0x3B,
-0x68,0x00, 0xC4,0x1C, 0x00,0x00, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x0C, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0x86,0x16, 0x00,0x04, 0x84,0x16, 0x00,0x00, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0x05,0xA0, 0x00,0x02, 0x74,0xA1, 0x00,0x1E, 0x74,0xA4,
-0xFF,0xE5, 0x06,0x30, 0x00,0x02, 0x75,0x31, 0x00,0x1E, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x23, 0x28,0x00, 0x87,0x32, 0x00,0x00, 0x75,0x28, 0xFF,0xE5, 0xC7,0x38,
-0x57,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2F, 0x28,0x00, 0x05,0xAC, 0x00,0x02, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2F, 0x28,0x00, 0x05,0xAC, 0x00,0x02, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2F, 0x28,0x00, 0x05,0xAC, 0x00,0x02, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2F, 0x28,0x00, 0x05,0xAC, 0x00,0x02, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2F, 0x28,0x00, 0x05,0xAC, 0x00,0x02, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2F, 0x28,0x00, 0x05,0xAC, 0x00,0x02, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2F, 0x28,0x00, 0x05,0xAC, 0x00,0x02, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x06,0xA0, 0x00,0x02, 0x76,0x31, 0x00,0x1E, 0x76,0x30,
-0xFF,0xE5, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2F, 0x28,0x00, 0x87,0x22,
-0x00,0x00, 0x76,0x21, 0x00,0x1E, 0x85,0x96, 0x00,0x08, 0xC7,0x38, 0x4F,0xC0, 0x77,0x39,
-0xFF,0xF0, 0xC6,0xB4, 0x70,0x00, 0xF5,0xB7, 0x68,0x00, 0x87,0x22, 0x00,0x00, 0x76,0x30,
-0xFF,0xE5, 0xC7,0x38, 0x67,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38, 0x00,0x01, 0xF7,0x23,
-0x28,0x00, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x0C, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10,
-0x00,0x20, 0x27,0x14, 0x00,0x20, 0xF0,0x3B, 0x28,0x00, 0x84,0x96, 0x00,0x04, 0xF5,0x02,
-0x00,0x00, 0x86,0xA6, 0x00,0x00, 0x76,0x25, 0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0x04,0x24,
-0x00,0x02, 0xC6,0xB4, 0x67,0xC0, 0x76,0xB4, 0xFF,0xF0, 0xF6,0xBB, 0x28,0x00, 0x87,0x26,
-0x00,0x00, 0x76,0xA5, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39,
-0xFF,0xF0, 0xC0,0x2A, 0x72,0x00, 0xEC,0x00, 0xD2,0xF8, 0x76,0xA5, 0x00,0x1E, 0x87,0x26,
-0x00,0x00, 0x76,0xB4, 0xFF,0xE5, 0x06,0x28, 0x00,0x01, 0x25,0x94, 0x00,0x1E, 0xC5,0xAC,
-0x50,0x00, 0xC5,0x30, 0x00,0x00, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0xC7,0x38,
-0x52,0x00, 0xA6,0xA2, 0x70,0x02, 0xC7,0x20, 0x70,0x00, 0x77,0x39, 0x00,0x1E, 0x77,0x38,
-0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB5, 0xFF,0xE8, 0xC6,0x80, 0x6A,0x00, 0xE0,0x00,
-0xD2,0x90, 0xF6,0xAF, 0x68,0x00, 0x87,0x16, 0xFF,0xE0, 0x76,0x15, 0x00,0x1E, 0x76,0x30,
-0xFF,0xE5, 0x83,0x96, 0x00,0x00, 0x23,0x14, 0x00,0x1E, 0x75,0x99, 0x00,0x1E, 0x75,0xAC,
-0xFF,0xE5, 0x75,0x15, 0x00,0x1E, 0x75,0x28, 0xFF,0xE5, 0x74,0x95, 0x00,0x1E, 0x74,0xA4,
-0xFF,0xE5, 0x74,0x15, 0x00,0x1E, 0x74,0x20, 0xFF,0xE5, 0x06,0x9C, 0x00,0x02, 0x73,0x95,
-0x00,0x1E, 0x93,0x96, 0xFF,0xDC, 0xC7,0x38, 0x67,0xC0, 0x83,0x96, 0x00,0x00, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x1F, 0x28,0x00, 0x83,0x96, 0xFF,0xDC, 0x87,0x1A, 0x00,0x00, 0x73,0x9C,
-0xFF,0xE5, 0x93,0x96, 0xFF,0xDC, 0xC7,0x38, 0x5F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37,
-0x28,0x00, 0x06,0xB4, 0x00,0x02, 0x87,0x16, 0xFF,0xE4, 0x23,0x14, 0x00,0x1A, 0x76,0x19,
-0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38, 0x57,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37,
-0x28,0x00, 0x87,0x1A, 0x00,0x00, 0x06,0xB4, 0x00,0x02, 0xC7,0x38, 0x67,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x06,0xB4, 0x00,0x02, 0x87,0x16, 0xFF,0xE8, 0x23,0x14,
-0x00,0x16, 0x76,0x19, 0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38, 0x4F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x87,0x1A, 0x00,0x00, 0x06,0xB4, 0x00,0x02, 0xC7,0x38,
-0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x06,0xB4, 0x00,0x02, 0x87,0x16,
-0xFF,0xEC, 0x23,0x14, 0x00,0x12, 0x76,0x19, 0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38,
-0x47,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x87,0x1A, 0x00,0x00, 0x06,0xB4,
-0x00,0x02, 0x84,0x16, 0x00,0x00, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37,
-0x28,0x00, 0x87,0x16, 0xFF,0xF0, 0x06,0xB4, 0x00,0x02, 0xC7,0x38, 0x3F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x08, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0x86,0x16, 0x00,0x00, 0x84,0x16, 0x00,0x04, 0xF6,0x84, 0x4F,0x58, 0x87,0x32,
-0x00,0x14, 0x03,0x30, 0x00,0x14, 0x75,0x19, 0x00,0x1E, 0x75,0x28, 0xFF,0xE5, 0xC3,0xA0,
-0x6A,0x00, 0x73,0x9C, 0xFF,0xFA, 0x04,0xA0, 0x00,0x14, 0x75,0xA5, 0x00,0x1E, 0xC6,0x30,
-0x6A,0x00, 0x76,0x30, 0xFF,0xFA, 0xC7,0x38, 0x57,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27,
-0x28,0x00, 0xF3,0x9B, 0x28,0x00, 0x07,0x20, 0x00,0x16, 0xF6,0x3B, 0x28,0x00, 0x87,0x22,
-0x00,0x14, 0x75,0xAC, 0xFF,0xE5, 0xC7,0x38, 0x5F,0xC0, 0x77,0x38, 0xFF,0xF0, 0x77,0x39,
-0x00,0x06, 0xC6,0xB4, 0x70,0x00, 0x06,0xB4, 0x00,0x16, 0xF3,0xB7, 0x28,0x00, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x08, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x86,0x16, 0x00,0x00, 0xF5,0x84,
-0x4F,0x58, 0x05,0x30, 0x00,0x16, 0x87,0x2A, 0x00,0x00, 0x76,0xA9, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0x77,0x39, 0x00,0x06, 0xC4,0x2C,
-0x70,0x00, 0xC0,0x22, 0x62,0x00, 0xE6,0x00, 0xD5,0x29, 0x06,0xA0, 0x00,0x16, 0x87,0x36,
-0x00,0x00, 0xC6,0x30, 0x5A,0x00, 0x76,0x30, 0xFF,0xFA, 0x76,0xB5, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0x77,0x39, 0x00,0x06, 0x76,0xB8,
-0xFF,0xFA, 0xF6,0xAB, 0x28,0x00, 0xC7,0x2C, 0x70,0x00, 0x07,0x38, 0x00,0x14, 0xE0,0x00,
-0xD5,0x2C, 0xF6,0x3B, 0x28,0x00, 0xC4,0x2C, 0x00,0x00, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x04, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF7,0x06, 0x4F,0x84, 0x47,0x38, 0xFF,0xFC, 0xF7,0x05,
-0x6F,0x30, 0xF6,0x86, 0x50,0x5C, 0x46,0xB4, 0xFF,0xFC, 0xF6,0x85, 0x6E,0x50, 0xF7,0x06,
-0x6E,0x7C, 0x47,0x38, 0xFF,0xFC, 0xF7,0x05, 0x6E,0x54, 0x07,0x34, 0x19,0x1C, 0xF7,0x05,
-0x4F,0x5C, 0xF7,0x02, 0x00,0x64, 0x97,0x36, 0x19,0x1C, 0xF7,0x02, 0x00,0x00, 0x97,0x36,
-0x19,0x20, 0x06,0xB4, 0x00,0x1C, 0xF6,0x85, 0x4F,0x58, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0x90, 0xF3,0x02, 0xFF,0xFF, 0xF3,0x05,
-0x4F,0x54, 0xF3,0x82, 0x00,0x00, 0x93,0x96, 0xFF,0xAC, 0x23,0x14, 0x00,0x20, 0x93,0x16,
-0xFF,0x9C, 0x23,0x94, 0x00,0x38, 0x93,0x96, 0xFF,0x94, 0x83,0x16, 0xFF,0xAC, 0xF7,0x04,
-0x4F,0x5C, 0xF3,0x82, 0x00,0x0C, 0x93,0x96, 0xFF,0x74, 0x93,0x16, 0xFF,0x8C, 0x87,0x3A,
-0x00,0x04, 0x00,0x00, 0x00,0x01, 0x97,0x16, 0xFF,0xA4, 0x83,0x16, 0xFF,0xAC, 0x83,0x96,
-0xFF,0xA4, 0x00,0x00, 0x00,0x01, 0xC0,0x1A, 0x3A,0x00, 0xEC,0x00, 0xDB,0x78, 0xF3,0x02,
-0x04,0xBC, 0xF7,0x04, 0x4F,0x5C, 0x83,0x16, 0xFF,0x74, 0x00,0x00, 0x00,0x01, 0xC7,0x38,
-0x30,0x00, 0x87,0x3A, 0x00,0x08, 0xF6,0x84, 0x4F,0x58, 0x77,0x39, 0x00,0x06, 0xC4,0xB4,
-0x70,0x00, 0x94,0x93, 0xFF,0xFC, 0x94,0x96, 0xFF,0x7C, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0xCD,0x00, 0x97,0x93, 0xFF,0xFC, 0x84,0x96, 0xFF,0x7C, 0x20,0x22, 0x00,0x00, 0xE6,0x00,
-0xD6,0x54, 0xC5,0x04, 0x00,0x00, 0xF7,0x04, 0x42,0x88, 0xE0,0x00, 0xD8,0x7C, 0xF6,0x06,
-0x42,0x88, 0xF6,0x04, 0x4F,0x5C, 0x83,0x96, 0x00,0x00, 0x83,0x16, 0xFF,0x74, 0x86,0x9E,
-0x00,0x00, 0xA7,0x32, 0x30,0x02, 0xF5,0x82, 0x00,0x00, 0xC0,0x36, 0x72,0x00, 0xE6,0x00,
-0xD6,0x94, 0xC6,0x30, 0x30,0x00, 0x86,0x9E, 0x00,0x04, 0x87,0x32, 0x00,0x04, 0x00,0x00,
-0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0xD6,0x98, 0x20,0x2E, 0x00,0x00, 0xF5,0x82,
-0x00,0x01, 0x20,0x2E, 0x00,0x00, 0xE6,0x00, 0xD6,0xA5, 0x00,0x00, 0x00,0x01, 0xF5,0x02,
-0x00,0x00, 0x83,0x96, 0x00,0x00, 0x87,0x32, 0x00,0x00, 0x86,0x9E, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE2,0x00, 0xD6,0xE4, 0xF5,0x82, 0x00,0x00, 0xC0,0x36,
-0x72,0x00, 0xE6,0x00, 0xD6,0xEC, 0x20,0x2E, 0x00,0x00, 0x86,0x9E, 0x00,0x04, 0x87,0x32,
-0x00,0x04, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE2,0x00, 0xD6,0xED, 0x20,0x2E,
-0x00,0x00, 0xF5,0x82, 0x00,0x01, 0x20,0x2E, 0x00,0x00, 0xE6,0x00, 0xD6,0xFD, 0x20,0x2A,
-0x00,0x00, 0xF5,0x02, 0x00,0x01, 0x20,0x2A, 0x00,0x00, 0xE6,0x00, 0xD7,0x28, 0x04,0xA4,
-0x00,0x02, 0x83,0x16, 0xFF,0xAC, 0xF7,0x06, 0x42,0xC8, 0x83,0x96, 0xFF,0x8C, 0xF3,0x05,
-0x4F,0x54, 0xC7,0x1C, 0x70,0x00, 0xF0,0x3B, 0x28,0x00, 0x07,0x38, 0x00,0x02, 0xE0,0x00,
-0xDB,0x50, 0xF0,0x3B, 0x28,0x00, 0x94,0x96, 0xFF,0x6C, 0x87,0x26, 0x00,0x00, 0x76,0xA5,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0x83,0x16, 0xFF,0x6C, 0x83,0x96, 0xFF,0x9C, 0x24,0x94,
-0x00,0x1E, 0x06,0x18, 0x00,0x02, 0x75,0xB1, 0x00,0x1E, 0x75,0xAC, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1F, 0x28,0x00, 0x87,0x32, 0x00,0x00, 0x75,0x1D,
-0x00,0x1E, 0x75,0x28, 0xFF,0xE5, 0xC7,0x38, 0x5F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27,
-0x28,0x00, 0x24,0x94, 0x00,0x1C, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27,
-0x28,0x00, 0x24,0x94, 0x00,0x1A, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27,
-0x28,0x00, 0x24,0x94, 0x00,0x18, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27,
-0x28,0x00, 0x24,0x94, 0x00,0x16, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27,
-0x28,0x00, 0x24,0x94, 0x00,0x14, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27,
-0x28,0x00, 0x24,0x94, 0x00,0x12, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27,
-0x28,0x00, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x24,0x94, 0x00,0x10, 0x76,0x31,
-0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27,
-0x28,0x00, 0x87,0x16, 0xFF,0xE0, 0xF6,0x82, 0xFF,0xFC, 0xC7,0x38, 0x57,0xC0, 0x77,0x39,
-0xFF,0xF0, 0x07,0x38, 0x00,0x03, 0xC4,0xB8, 0x6C,0x00, 0x20,0x26, 0x00,0x10, 0xE2,0x00,
-0xD8,0x9D, 0xF6,0x06, 0x42,0x8A, 0xF7,0x04, 0x42,0x88, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xF4,0x02, 0x00,0x00, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38,
-0x00,0x01, 0xE0,0x00, 0xDB,0xA0, 0xF7,0x33, 0x28,0x00, 0x83,0x16, 0xFF,0x6C, 0x25,0x14,
-0x00,0x36, 0x83,0x96, 0xFF,0x94, 0x87,0x1A, 0x00,0x00, 0x76,0x99, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0x06,0x18, 0x00,0x02, 0x75,0xB1, 0x00,0x1E, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x1F, 0x28,0x00, 0x87,0x32, 0x00,0x00, 0x75,0xAC, 0xFF,0xE5, 0xC7,0x38,
-0x5F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x25,0x14, 0x00,0x34, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x25,0x14, 0x00,0x32, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x25,0x14, 0x00,0x30, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x25,0x14, 0x00,0x2E, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x25,0x14, 0x00,0x2C, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x25,0x14, 0x00,0x2A, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x25,0x14, 0x00,0x28, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x26,0xA4, 0x00,0x02, 0x74,0xA4, 0xFF,0xFF, 0x76,0x31,
-0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B,
-0x28,0x00, 0x90,0x13, 0xFF,0xFC, 0x83,0x16, 0xFF,0x8C, 0xF7,0x06, 0x42,0xCC, 0xC7,0x18,
-0x70,0x00, 0xC7,0x38, 0x68,0x00, 0x97,0x13, 0xFF,0xFC, 0x93,0x93, 0xFF,0xFC, 0x94,0x96,
-0xFF,0x7C, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xCD,0xB8, 0x97,0x93, 0xFF,0xFC, 0x83,0x96,
-0xFF,0x6C, 0x24,0x14, 0x00,0x4E, 0x25,0x14, 0x00,0x50, 0x83,0x16, 0xFF,0x8C, 0x84,0x96,
-0xFF,0x7C, 0x87,0x1E, 0x00,0x00, 0x76,0x9D, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0x06,0x1C,
-0x00,0x02, 0x75,0xB1, 0x00,0x1E, 0x75,0xAC, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x87,0x32, 0x00,0x00, 0x75,0x29, 0x00,0x1E, 0x75,0x28,
-0xFF,0xE5, 0xC7,0x38, 0x5F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x23, 0x28,0x00, 0x24,0x14,
-0x00,0x4C, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x23, 0x28,0x00, 0x24,0x14,
-0x00,0x4A, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x23, 0x28,0x00, 0x24,0x14,
-0x00,0x48, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x23, 0x28,0x00, 0x24,0x14,
-0x00,0x46, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x23, 0x28,0x00, 0x24,0x14,
-0x00,0x44, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x23, 0x28,0x00, 0x24,0x14,
-0x00,0x42, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x23, 0x28,0x00, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x24,0x14, 0x00,0x40, 0x76,0x31, 0x00,0x1E, 0x76,0x30,
-0xFF,0xE5, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x23, 0x28,0x00, 0x86,0x96,
-0xFF,0xB0, 0xF6,0x06, 0x42,0xC8, 0xC6,0x18, 0x60,0x00, 0xF7,0x02, 0x00,0x03, 0xC6,0xB4,
-0x57,0xC0, 0x76,0xB5, 0xFF,0xF0, 0xC6,0xB4, 0x74,0x00, 0xF7,0x02, 0x00,0x04, 0xC7,0x38,
-0x6A,0x00, 0xF7,0x33, 0x28,0x00, 0x06,0x30, 0x00,0x02, 0xF4,0xB3, 0x28,0x00, 0x83,0x96,
-0xFF,0x8C, 0x83,0x16, 0xFF,0x74, 0x03,0x9C, 0x00,0x14, 0x93,0x96, 0xFF,0x8C, 0x03,0x18,
-0x00,0x0C, 0x83,0x96, 0xFF,0xAC, 0x93,0x16, 0xFF,0x74, 0x03,0x9C, 0x00,0x01, 0xE0,0x00,
-0xD5,0xEC, 0x93,0x96, 0xFF,0xAC, 0x93,0x13, 0xFF,0xFC, 0xF3,0x84, 0x4F,0x5C, 0x00,0x00,
-0x00,0x01, 0x93,0x93, 0xFF,0xFC, 0xF3,0x06, 0x4A,0x98, 0x93,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x01, 0x26,0xF8, 0x97,0x93, 0xFF,0xFC, 0xF4,0x02, 0x00,0x01, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x04, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x01,0xA0, 0xF5,0x02,
-0x00,0x00, 0xF3,0x84, 0x6E,0x50, 0xF6,0x02, 0x00,0x1C, 0x20,0x2A, 0x00,0x63, 0xEE,0x00,
-0xDC,0x08, 0xC5,0x9C, 0x60,0x00, 0xA6,0x9E, 0x60,0x02, 0x77,0x2D, 0x00,0x1E, 0x77,0x38,
-0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB5, 0xFF,0xF0, 0x20,0x36, 0x00,0x03, 0xE6,0x00,
-0xDB,0xFC, 0x07,0x2C, 0x00,0x36, 0xF0,0x3B, 0x28,0x00, 0x06,0x30, 0x00,0x40, 0xE0,0x00,
-0xDB,0xCC, 0x05,0x28, 0x00,0x01, 0xF5,0x84, 0x4F,0x5C, 0x00,0x00, 0x00,0x01, 0x86,0xAE,
-0x00,0x08, 0xF4,0x02, 0x00,0x00, 0x87,0x2E, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0xC0,0x36,
-0x72,0x00, 0xEC,0x00, 0xDC,0xF0, 0x96,0x96, 0xFF,0xEC, 0x77,0x35, 0x00,0x01, 0xC7,0x38,
-0x68,0x00, 0x77,0x39, 0x00,0x02, 0xC6,0x38, 0x58,0x00, 0x06,0x30, 0x00,0x0C, 0xC3,0x84,
-0x00,0x00, 0x83,0x16, 0x00,0x00, 0x86,0xB2, 0x00,0x00, 0x87,0x1A, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0xDC,0x7C, 0xC5,0x20, 0x00,0x00, 0x86,0xB2,
-0x00,0x04, 0x87,0x1A, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE6,0x00,
-0xDC,0x80, 0x20,0x2A, 0x00,0x00, 0xF5,0x02, 0x00,0x01, 0x20,0x2A, 0x00,0x00, 0xE6,0x00,
-0xDC,0x8D, 0x00,0x00, 0x00,0x01, 0xF3,0x82, 0x00,0x00, 0x84,0x96, 0x00,0x00, 0x86,0xB2,
-0x00,0x00, 0x87,0x26, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE2,0x00,
-0xDC,0xCC, 0xF5,0x02, 0x00,0x00, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0xDC,0xD4, 0x20,0x2A,
-0x00,0x00, 0x86,0xB2, 0x00,0x04, 0x87,0x26, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0xC0,0x36,
-0x72,0x00, 0xE2,0x00, 0xDC,0xD5, 0x20,0x2A, 0x00,0x00, 0xF5,0x02, 0x00,0x01, 0x20,0x2A,
-0x00,0x00, 0xE6,0x00, 0xDC,0xE5, 0x20,0x1E, 0x00,0x00, 0xF3,0x82, 0x00,0x01, 0x20,0x1E,
-0x00,0x00, 0xE6,0x00, 0xDC,0xF4, 0x20,0x22, 0x00,0x00, 0xF4,0x02, 0x00,0x01, 0x20,0x22,
-0x00,0x00, 0xE6,0x00, 0xDD,0x29, 0xF6,0x02, 0x00,0x01, 0x87,0x16, 0xFF,0xEC, 0x00,0x00,
-0x00,0x01, 0x76,0xB9, 0x00,0x01, 0xC6,0xB4, 0x70,0x00, 0x76,0xB5, 0x00,0x02, 0xC6,0xB4,
-0x58,0x00, 0x06,0xB4, 0x00,0x14, 0x86,0xB6, 0x00,0x00, 0x97,0x16, 0xFF,0xF0, 0xE0,0x00,
-0xDD,0x98, 0x96,0x96, 0xFF,0xF4, 0x27,0x14, 0x00,0x14, 0x97,0x13, 0xFF,0xFC, 0x83,0x16,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x93,0x13, 0xFF,0xFC, 0x95,0x93, 0xFF,0xFC, 0x95,0x96,
-0xFE,0x70, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x25,0x68, 0x97,0x93, 0xFF,0xFC, 0x85,0x96,
-0xFE,0x70, 0x20,0x22, 0x00,0x00, 0xE6,0x00, 0xDD,0x95, 0xF6,0x02, 0x00,0x01, 0x87,0x16,
-0xFF,0xEC, 0x00,0x00, 0x00,0x01, 0x76,0xB9, 0x00,0x01, 0xC6,0xB4, 0x70,0x00, 0x76,0xB5,
-0x00,0x02, 0xC6,0xB4, 0x58,0x00, 0x06,0xB4, 0x00,0x14, 0x86,0xB6, 0x00,0x00, 0x97,0x16,
-0xFF,0xF0, 0x96,0x96, 0xFF,0xF4, 0x97,0x2E, 0x00,0x08, 0xE0,0x00, 0xDD,0x9C, 0x20,0x32,
-0x00,0x00, 0xF6,0x02, 0x00,0x00, 0x20,0x32, 0x00,0x00, 0xE6,0x00, 0xDD,0xB0, 0xF4,0x82,
-0x00,0x00, 0xF7,0x04, 0x42,0x7C, 0xE0,0x00, 0xE0,0x9C, 0xF6,0x06, 0x42,0x7E, 0x94,0x96,
-0xFF,0x44, 0x87,0x16, 0xFF,0xF4, 0xF6,0x04, 0x4F,0x58, 0x77,0x39, 0x00,0x06, 0xC7,0x30,
-0x70,0x00, 0x97,0x16, 0xFF,0x54, 0x06,0xB8, 0x00,0x1A, 0x87,0x36, 0x00,0x00, 0x83,0x16,
-0xFF,0x54, 0x76,0xB5, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x93,0x13,
-0xFF,0xFC, 0x77,0x38, 0xFF,0xF0, 0x77,0x39, 0x00,0x06, 0xC6,0x30, 0x70,0x00, 0x96,0x16,
-0xFF,0x4C, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xCD,0x00, 0x97,0x93, 0xFF,0xFC, 0x20,0x22,
-0x00,0x00, 0xE6,0x00, 0xDE,0x35, 0xF3,0x02, 0x00,0x01, 0x84,0x96, 0xFF,0x4C, 0x00,0x00,
-0x00,0x01, 0x94,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xCD,0x00, 0x97,0x93,
-0xFF,0xFC, 0x20,0x22, 0x00,0x00, 0xE6,0x00, 0xDE,0x38, 0x00,0x00, 0x00,0x01, 0xF3,0x02,
-0x00,0x01, 0x93,0x16, 0xFF,0x44, 0x84,0x96, 0xFF,0x44, 0x00,0x00, 0x00,0x01, 0x20,0x26,
-0x00,0x00, 0xE6,0x00, 0xDE,0x59, 0xF6,0x06, 0x42,0xA4, 0xF7,0x04, 0x42,0xA4, 0xE0,0x00,
-0xE0,0xA0, 0x76,0xB1, 0x00,0x1E, 0x83,0x16, 0xFF,0x4C, 0x86,0x16, 0xFF,0x4C, 0x87,0x1A,
-0x00,0x00, 0x76,0x99, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39,
-0xFF,0xF0, 0x20,0x3A, 0x00,0x02, 0xE6,0x00, 0xDE,0x85, 0x00,0x00, 0x00,0x01, 0xF6,0x04,
-0x4F,0x58, 0xF5,0x84, 0x4F,0x58, 0x00,0x00, 0x00,0x01, 0xC0,0x32, 0x5A,0x00, 0xE6,0x00,
-0xE0,0x25, 0x00,0x00, 0x00,0x01, 0x84,0x96, 0xFF,0x4C, 0x00,0x00, 0x00,0x01, 0x06,0xA4,
-0x00,0x1A, 0x87,0x36, 0x00,0x00, 0x83,0x16, 0xFF,0x54, 0x76,0xB5, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0x77,0x39, 0x00,0x06, 0xC7,0x2C,
-0x70,0x00, 0xC0,0x3A, 0x32,0x00, 0xE6,0x00, 0xDE,0xDD, 0xF6,0x06, 0x42,0x80, 0xF7,0x04,
-0x42,0x80, 0xE0,0x00, 0xE0,0xA0, 0x76,0xB1, 0x00,0x1E, 0x26,0x14, 0x00,0x30, 0xF0,0x33,
-0x28,0x00, 0x87,0x16, 0xFF,0xD0, 0x76,0x31, 0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0x84,0x96,
-0xFF,0x4C, 0x23,0x14, 0x00,0x2E, 0x93,0x16, 0xFE,0x64, 0x75,0x99, 0x00,0x1E, 0x75,0xAC,
-0xFF,0xE5, 0x75,0x15, 0x00,0x1E, 0x75,0x28, 0xFF,0xE5, 0x73,0x15, 0x00,0x1E, 0x73,0x18,
-0xFF,0xE5, 0x93,0x16, 0xFF,0x34, 0x83,0x16, 0xFE,0x64, 0x04,0x24, 0x00,0x02, 0x06,0xA0,
-0x00,0x02, 0x74,0x95, 0x00,0x1E, 0x74,0xA4, 0xFF,0xE5, 0x94,0x96, 0xFF,0x3C, 0x74,0x95,
-0x00,0x1E, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x23, 0x28,0x00, 0x87,0x1A,
-0x00,0x00, 0x74,0xA4, 0xFF,0xE5, 0x94,0x96, 0xFF,0x2C, 0xC7,0x38, 0x5F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x06,0xB4, 0x00,0x02, 0x87,0x16, 0xFF,0xD4, 0x24,0x94,
-0x00,0x2A, 0x94,0x96, 0xFE,0x64, 0x76,0x25, 0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38,
-0x57,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x87,0x26, 0x00,0x00, 0x06,0xB4,
-0x00,0x02, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x06,0xB4,
-0x00,0x02, 0x87,0x16, 0xFF,0xD8, 0x23,0x14, 0x00,0x26, 0x93,0x16, 0xFE,0x64, 0x76,0x19,
-0x00,0x1E, 0x84,0x96, 0xFF,0x3C, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38, 0x4F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x87,0x1A, 0x00,0x00, 0x06,0xB4, 0x00,0x02, 0x84,0x96,
-0xFF,0x34, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x06,0xB4,
-0x00,0x02, 0x87,0x16, 0xFF,0xDC, 0x23,0x14, 0x00,0x22, 0x93,0x16, 0xFE,0x64, 0x76,0x19,
-0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38, 0x4F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37,
-0x28,0x00, 0x87,0x1A, 0x00,0x00, 0x06,0xB4, 0x00,0x02, 0xC7,0x38, 0x67,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x87,0x16, 0xFF,0xE0, 0x83,0x16, 0xFF,0x2C, 0x06,0xB4,
-0x00,0x02, 0xC7,0x38, 0x37,0xC0, 0x77,0x38, 0xFF,0xF0, 0xE0,0x00, 0xEA,0xA0, 0xF7,0x37,
-0x28,0x00, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xCB,0xCC, 0x97,0x93, 0xFF,0xFC, 0x06,0xA0,
-0x00,0x02, 0xF7,0x04, 0x4F,0x58, 0xF0,0x37, 0x28,0x00, 0x06,0xA0, 0x00,0x14, 0x94,0x16,
-0xFF,0x24, 0xC7,0x20, 0x72,0x00, 0x77,0x38, 0xFF,0xFA, 0xF7,0x37, 0x28,0x00, 0x06,0xA0,
-0x00,0x16, 0xF7,0x37, 0x28,0x00, 0xF4,0x82, 0x00,0x01, 0xF4,0xA3, 0x28,0x00, 0x94,0x13,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xCD,0x00, 0x97,0x93, 0xFF,0xFC, 0x20,0x22,
-0x00,0x00, 0xE6,0x00, 0xE0,0xBC, 0x26,0x94, 0x00,0x48, 0xF7,0x04, 0x42,0x80, 0xE0,0x00,
-0xE0,0x9C, 0xF6,0x06, 0x42,0x82, 0x86,0x96, 0xFE,0xF4, 0xE0,0x00, 0xE2,0x94, 0x00,0x00,
-0x00,0x01, 0xF7,0x04, 0x42,0x84, 0xF6,0x06, 0x42,0x84, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xF4,0x02, 0x00,0x00, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38,
-0x00,0x01, 0xE0,0x00, 0xEA,0xA4, 0xF7,0x33, 0x28,0x00, 0x83,0x16, 0xFF,0x4C, 0x75,0x15,
-0x00,0x1E, 0x75,0x28, 0xFF,0xE5, 0x93,0x16, 0xFF,0x1C, 0x07,0x18, 0x00,0x36, 0xF4,0x82,
-0x00,0x01, 0xF4,0xBB, 0x28,0x00, 0xF0,0x37, 0x28,0x00, 0x87,0x16, 0xFF,0xB8, 0x76,0xB5,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0x04,0x18, 0x00,0x02, 0x06,0x20, 0x00,0x02, 0x23,0x14,
-0x00,0x46, 0x93,0x16, 0xFF,0x14, 0x75,0x99, 0x00,0x1E, 0x75,0xAC, 0xFF,0xE5, 0x74,0x95,
-0x00,0x1E, 0x74,0xA4, 0xFF,0xE5, 0x94,0x96, 0xFF,0x0C, 0x73,0x15, 0x00,0x1E, 0x73,0x18,
-0xFF,0xE5, 0x93,0x16, 0xFF,0x04, 0x74,0x95, 0x00,0x1E, 0x74,0xA4, 0xFF,0xE5, 0x94,0x96,
-0xFE,0xFC, 0x23,0x00, 0x00,0x07, 0x93,0x16, 0xFE,0xF4, 0x84,0x96, 0xFF,0x1C, 0x83,0x16,
-0xFF,0x14, 0x04,0xA4, 0x00,0x0A, 0x94,0x96, 0xFE,0x7C, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x23, 0x28,0x00, 0xF6,0x84, 0x4F,0x58, 0x84,0x96, 0xFF,0x54, 0x87,0x1A,
-0x00,0x00, 0xC6,0xA4, 0x6A,0x00, 0x74,0x34, 0xFF,0xFA, 0xC7,0x38, 0x5F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x33, 0x28,0x00, 0x06,0x30, 0x00,0x02, 0x87,0x16, 0xFF,0xBC, 0x23,0x14,
-0x00,0x42, 0x93,0x16, 0xFF,0x14, 0x76,0x99, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x57,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x33, 0x28,0x00, 0x87,0x1A, 0x00,0x00, 0x06,0x30,
-0x00,0x02, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x33, 0x28,0x00, 0x06,0x30,
-0x00,0x02, 0x87,0x16, 0xFF,0xC0, 0x24,0x94, 0x00,0x3E, 0x94,0x96, 0xFF,0x14, 0x76,0xA5,
-0x00,0x1E, 0x83,0x16, 0xFF,0x0C, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x37,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x33, 0x28,0x00, 0x87,0x26, 0x00,0x00, 0x06,0x30, 0x00,0x02, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x33, 0x28,0x00, 0x06,0x30, 0x00,0x02, 0x87,0x16,
-0xFF,0xC4, 0x24,0x94, 0x00,0x3A, 0x94,0x96, 0xFF,0x14, 0x76,0xA5, 0x00,0x1E, 0x83,0x16,
-0xFF,0x04, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x37,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x33,
-0x28,0x00, 0x87,0x26, 0x00,0x00, 0x06,0x30, 0x00,0x02, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x33, 0x28,0x00, 0x87,0x16, 0xFF,0xC8, 0x84,0x96, 0xFE,0xFC, 0x06,0x30,
-0x00,0x02, 0xC7,0x38, 0x4F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x33, 0x28,0x00, 0x83,0x16,
-0xFE,0xF4, 0x00,0x00, 0x00,0x01, 0x20,0x1A, 0x00,0x07, 0xEE,0x00, 0xE2,0x94, 0xF6,0x82,
-0x00,0x08, 0x84,0x96, 0xFE,0x7C, 0x00,0x00, 0x00,0x01, 0x07,0x24, 0x00,0x0E, 0x86,0xBA,
-0x00,0x00, 0x77,0x39, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB5,
-0xFF,0xF0, 0xF7,0x02, 0x00,0xFF, 0xC6,0xB4, 0x74,0x00, 0x47,0x21, 0x00,0x00, 0xC0,0x36,
-0x72,0x00, 0x47,0x0C, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0xE0,0x88, 0x04,0xA4,
-0x00,0x02, 0x94,0x96, 0xFE,0x7C, 0x03,0x18, 0x00,0x01, 0xE0,0x00, 0xE2,0x30, 0x93,0x16,
-0xFE,0xF4, 0x83,0x16, 0xFF,0x1C, 0x00,0x00, 0x00,0x01, 0x07,0x18, 0x00,0x38, 0xF6,0xBB,
-0x28,0x00, 0x93,0x13, 0xFF,0xFC, 0x84,0x96, 0xFF,0x24, 0x00,0x00, 0x00,0x01, 0x94,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xD4,0x2C, 0x97,0x93, 0xFF,0xFC, 0x23,0x14,
-0x00,0x78, 0x93,0x16, 0xFE,0xBC, 0x84,0x96, 0x00,0x00, 0x23,0x14, 0x00,0xA8, 0x86,0xA6,
-0x00,0x04, 0x87,0x26, 0x00,0x00, 0x93,0x16, 0xFE,0x9C, 0xC6,0xB4, 0x70,0x00, 0x96,0x96,
-0xFE,0xEC, 0xF7,0x02, 0x00,0x01, 0xC7,0x34, 0x74,0x00, 0x97,0x16, 0xFE,0xE4, 0x84,0x96,
-0xFF,0x24, 0x00,0x00, 0x00,0x01, 0x94,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0xD4,0xB4, 0x97,0x93, 0xFF,0xFC, 0xF7,0x04, 0x4F,0x58, 0x00,0x00, 0x00,0x01, 0xC0,0x22,
-0x72,0x00, 0xE6,0x00, 0xEA,0xA1, 0x94,0x16, 0xFF,0x1C, 0x86,0xA2, 0x00,0x38, 0x77,0x21,
-0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xF3,0x02, 0x00,0x00, 0x93,0x16, 0xFE,0xD4, 0xC6,0xB4,
-0x77,0xC0, 0x76,0xB5, 0xFF,0xF0, 0x96,0x96, 0xFE,0xDC, 0x84,0x96, 0xFE,0xD4, 0x00,0x00,
-0x00,0x01, 0x20,0x26, 0x00,0x0E, 0xEE,0x00, 0xE2,0xF0, 0xF3,0x02, 0x00,0x0F, 0x93,0x13,
-0xFF,0xFC, 0x83,0x16, 0xFE,0xEC, 0x00,0x00, 0x00,0x01, 0xC7,0x18, 0x48,0x00, 0x97,0x13,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x27,0xE8, 0x97,0x93, 0xFF,0xFC, 0xC3,0xA0,
-0x00,0x00, 0x84,0x96, 0xFE,0xE4, 0x00,0x00, 0x00,0x01, 0x20,0x26, 0x00,0x00, 0xE6,0x00,
-0xE3,0x8D, 0x23,0x9C, 0x00,0x07, 0xC3,0x80, 0x3A,0x00, 0xC7,0x1C, 0x38,0x00, 0x83,0x16,
-0xFF,0x1C, 0xF4,0x82, 0x00,0xFF, 0xF6,0x04, 0x4F,0x58, 0xC7,0x18, 0x70,0x00, 0x07,0x38,
-0x00,0x26, 0x86,0xBA, 0x00,0x00, 0x97,0x16, 0xFE,0xC4, 0x77,0x39, 0x00,0x1E, 0x77,0x38,
-0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB5, 0xFF,0xF0, 0xC6,0xB4, 0x4C,0x00, 0x76,0xB5,
-0x00,0x06, 0xC3,0x30, 0x68,0x00, 0x07,0x30, 0x00,0x40, 0xC0,0x1A, 0x72,0x00, 0xE6,0x00,
-0xE4,0x0D, 0x93,0x16, 0xFE,0xCC, 0x93,0x13, 0xFF,0xFC, 0x93,0x96, 0xFE,0x74, 0x96,0x16,
-0xFE,0x6C, 0x96,0x96, 0xFE,0x68, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xCD,0x00, 0x97,0x93,
-0xFF,0xFC, 0x83,0x96, 0xFE,0x74, 0x86,0x16, 0xFE,0x6C, 0x86,0x96, 0xFE,0x68, 0x20,0x22,
-0x00,0x00, 0xE6,0x00, 0xE0,0x95, 0x00,0x00, 0x00,0x01, 0xF5,0x84, 0x4F,0x58, 0x84,0x96,
-0xFE,0xCC, 0x07,0x2C, 0x00,0x40, 0xC0,0x26, 0x72,0x00, 0xE6,0x00, 0xEA,0x8D, 0x00,0x00,
-0x00,0x01, 0xA7,0x32, 0x68,0x02, 0x76,0xA5, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0x86,0x16,
-0xFE,0xCC, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x20,0x3A, 0x00,0x02, 0xE6,0x00,
-0xE4,0x51, 0xC0,0x32, 0x5A,0x00, 0xC6,0x2C, 0x00,0x00, 0xC0,0x32, 0x5A,0x00, 0xE6,0x00,
-0xE6,0xE5, 0x25,0x14, 0x00,0x76, 0x83,0x16, 0xFF,0x1C, 0x84,0x96, 0xFE,0xBC, 0x06,0x18,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0x83,0x16,
-0xFE,0xDC, 0x06,0x30, 0x00,0x02, 0x75,0xB1, 0x00,0x1E, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x87,0x32, 0x00,0x00, 0x75,0xAC, 0xFF,0xE5, 0xC7,0x38,
-0x5F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x25,0x14, 0x00,0x74, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x25,0x14, 0x00,0x72, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x25,0x14, 0x00,0x70, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x25,0x14, 0x00,0x6E, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x25,0x14, 0x00,0x6C, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x25,0x14, 0x00,0x6A, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x06,0x30, 0x00,0x02, 0x87,0x32,
-0x00,0x00, 0x25,0x14, 0x00,0x68, 0x76,0x31, 0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38,
-0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0xC7,0x1C, 0x32,0x00, 0x97,0x13,
-0xFF,0xFC, 0x94,0x93, 0xFF,0xFC, 0x26,0x14, 0x00,0x60, 0x96,0x13, 0xFF,0xFC, 0x96,0x16,
-0xFE,0x6C, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xD0,0xDC, 0x97,0x93, 0xFF,0xFC, 0x87,0x16,
-0xFF,0xA0, 0x86,0x16, 0xFE,0x6C, 0x84,0x96, 0xFE,0xCC, 0x23,0x14, 0x00,0x5E, 0x93,0x16,
-0xFE,0x5C, 0x75,0x99, 0x00,0x1E, 0x75,0xAC, 0xFF,0xE5, 0x74,0x15, 0x00,0x1E, 0x74,0x20,
-0xFF,0xE5, 0x73,0x15, 0x00,0x1E, 0x73,0x18, 0xFF,0xE5, 0x93,0x16, 0xFE,0xAC, 0x83,0x16,
-0xFE,0x5C, 0x76,0x31, 0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0x05,0x24, 0x00,0x02, 0x06,0xA8,
-0x00,0x02, 0x74,0x95, 0x00,0x1E, 0x74,0xA4, 0xFF,0xE5, 0x94,0x96, 0xFE,0xB4, 0x74,0x95,
-0x00,0x1E, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x87,0x1A,
-0x00,0x00, 0x74,0xA4, 0xFF,0xE5, 0x94,0x96, 0xFE,0xA4, 0xC7,0x38, 0x5F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x06,0xB4, 0x00,0x02, 0x87,0x16, 0xFF,0xA4, 0x24,0x94,
-0x00,0x5A, 0x94,0x96, 0xFE,0x5C, 0x76,0x25, 0x00,0x1E, 0x83,0x16, 0xFE,0xB4, 0x76,0x30,
-0xFF,0xE5, 0xC7,0x38, 0x37,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x87,0x26,
-0x00,0x00, 0x06,0xB4, 0x00,0x02, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37,
-0x28,0x00, 0x06,0xB4, 0x00,0x02, 0x87,0x16, 0xFF,0xA8, 0x24,0x94, 0x00,0x56, 0x94,0x96,
-0xFE,0x5C, 0x76,0x25, 0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38, 0x47,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x87,0x26, 0x00,0x00, 0x06,0xB4, 0x00,0x02, 0xC7,0x38,
-0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x06,0xB4, 0x00,0x02, 0x87,0x16,
-0xFF,0xAC, 0x23,0x14, 0x00,0x52, 0x93,0x16, 0xFE,0x5C, 0x76,0x19, 0x00,0x1E, 0x84,0x96,
-0xFE,0xAC, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38, 0x4F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37,
-0x28,0x00, 0x87,0x1A, 0x00,0x00, 0x06,0xB4, 0x00,0x02, 0xC7,0x38, 0x67,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x87,0x16, 0xFF,0xB0, 0x83,0x16, 0xFE,0xA4, 0x06,0xB4,
-0x00,0x02, 0xC7,0x38, 0x37,0xC0, 0x77,0x38, 0xFF,0xF0, 0xE0,0x00, 0xEA,0x8C, 0xF7,0x37,
-0x28,0x00, 0x84,0x96, 0xFE,0xCC, 0x00,0x00, 0x00,0x01, 0x04,0xA4, 0x00,0x36, 0x94,0x96,
-0xFE,0x5C, 0x87,0x26, 0x00,0x00, 0x76,0xA5, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x20,0x3A, 0x00,0x00, 0x47,0x0C, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0xEA,0x8D, 0x00,0x00, 0x00,0x01, 0x83,0x16, 0xFE,0xCC, 0x84,0x96,
-0xFF,0x1C, 0x06,0x18, 0x00,0x3A, 0x85,0xB2, 0x00,0x00, 0x07,0x24, 0x00,0x3A, 0x86,0xBA,
-0x00,0x00, 0x76,0x31, 0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0x77,0x39, 0x00,0x1E, 0x77,0x38,
-0xFF,0xE5, 0xC5,0xAC, 0x67,0xC0, 0xC6,0xB4, 0x77,0xC0, 0x75,0xAD, 0xFF,0xF0, 0x76,0xB5,
-0xFF,0xF0, 0xC0,0x2E, 0x6A,0x00, 0xEC,0x00, 0xE7,0x64, 0xF5,0x02, 0x00,0x02, 0xF5,0x02,
-0x00,0x01, 0x83,0x16, 0xFF,0x1C, 0x00,0x00, 0x00,0x01, 0x07,0x18, 0x00,0x36, 0x86,0xBA,
-0x00,0x00, 0x77,0x39, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB5,
-0xFF,0xF0, 0x20,0x36, 0x00,0x02, 0xE6,0x00, 0xE7,0x9C, 0x00,0x00, 0x00,0x01, 0x20,0x2A,
-0x00,0x01, 0xE6,0x00, 0xEA,0x8D, 0x00,0x00, 0x00,0x01, 0x84,0x96, 0xFE,0x5C, 0x83,0x16,
-0xFF,0x1C, 0xF5,0x27, 0x28,0x00, 0x06,0x18, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0x25,0x14, 0x00,0xA6, 0x84,0x96, 0xFE,0x9C, 0x83,0x16,
-0xFE,0xDC, 0x06,0x30, 0x00,0x02, 0x75,0xB1, 0x00,0x1E, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x87,0x32, 0x00,0x00, 0x75,0xAC, 0xFF,0xE5, 0xC7,0x38,
-0x5F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x25,0x14, 0x00,0xA4, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x25,0x14, 0x00,0xA2, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x25,0x14, 0x00,0xA0, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x25,0x14, 0x00,0x9E, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x25,0x14, 0x00,0x9C, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x25,0x14, 0x00,0x9A, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0x06,0x30, 0x00,0x02, 0x87,0x32,
-0x00,0x00, 0x25,0x14, 0x00,0x98, 0x76,0x31, 0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38,
-0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B, 0x28,0x00, 0xC7,0x1C, 0x32,0x00, 0x97,0x13,
-0xFF,0xFC, 0x94,0x93, 0xFF,0xFC, 0x26,0x14, 0x00,0x90, 0x96,0x13, 0xFF,0xFC, 0x96,0x16,
-0xFE,0x6C, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xD0,0xDC, 0x97,0x93, 0xFF,0xFC, 0x87,0x16,
-0xFF,0x70, 0x86,0x16, 0xFE,0x6C, 0x84,0x96, 0xFE,0xCC, 0x23,0x94, 0x00,0x8E, 0x75,0x9D,
-0x00,0x1E, 0x75,0xAC, 0xFF,0xE5, 0x73,0x15, 0x00,0x1E, 0x73,0x18, 0xFF,0xE5, 0x93,0x16,
-0xFE,0x94, 0x74,0x15, 0x00,0x1E, 0x74,0x20, 0xFF,0xE5, 0x73,0x15, 0x00,0x1E, 0x73,0x18,
-0xFF,0xE5, 0x93,0x16, 0xFE,0x84, 0x83,0x16, 0xFE,0x94, 0x76,0x31, 0x00,0x1E, 0x76,0x30,
-0xFF,0xE5, 0x05,0x24, 0x00,0x02, 0x06,0xA8, 0x00,0x02, 0x74,0x95, 0x00,0x1E, 0x74,0xA4,
-0xFF,0xE5, 0x94,0x96, 0xFE,0x8C, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x2B,
-0x28,0x00, 0x84,0x96, 0xFE,0xC4, 0x87,0x1E, 0x00,0x00, 0x75,0x25, 0x00,0x1E, 0xC7,0x38,
-0x5F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x06,0xB4, 0x00,0x02, 0x87,0x16,
-0xFF,0x74, 0x23,0x94, 0x00,0x8A, 0x76,0x1D, 0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0x84,0x96,
-0xFE,0x8C, 0x75,0x28, 0xFF,0xE5, 0xC7,0x38, 0x37,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37,
-0x28,0x00, 0x87,0x1E, 0x00,0x00, 0x06,0xB4, 0x00,0x02, 0x83,0x16, 0xFE,0x84, 0xC7,0x38,
-0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x06,0xB4, 0x00,0x02, 0x87,0x16,
-0xFF,0x78, 0x23,0x94, 0x00,0x86, 0x76,0x1D, 0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38,
-0x47,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x87,0x1E, 0x00,0x00, 0x06,0xB4,
-0x00,0x02, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x06,0xB4,
-0x00,0x02, 0x87,0x16, 0xFF,0x7C, 0x23,0x94, 0x00,0x82, 0x76,0x1D, 0x00,0x1E, 0x76,0x30,
-0xFF,0xE5, 0xC7,0x38, 0x4F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x87,0x1E,
-0x00,0x00, 0x06,0xB4, 0x00,0x02, 0x84,0x96, 0xFE,0xC4, 0xC7,0x38, 0x67,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x87,0x16, 0xFF,0x80, 0x06,0xB4, 0x00,0x02, 0xC7,0x38,
-0x37,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x87,0x26, 0x00,0x00, 0xF3,0x02,
-0x00,0xFF, 0xC7,0x38, 0x57,0xC0, 0x77,0x38, 0xFF,0xE8, 0xC6,0xB8, 0x34,0x00, 0xF7,0x02,
-0x00,0x80, 0xC7,0x34, 0x74,0x00, 0x77,0x39, 0x00,0x10, 0x77,0x39, 0xFF,0xF0, 0x20,0x3A,
-0x00,0x00, 0xE6,0x00, 0xEA,0x61, 0x27,0x00, 0x01,0x00, 0xC6,0xB4, 0x75,0x80, 0x84,0x96,
-0xFE,0xCC, 0x00,0x00, 0x00,0x01, 0x07,0x24, 0x00,0x38, 0xF6,0xBB, 0x28,0x00, 0x94,0x93,
-0xFF,0xFC, 0x83,0x16, 0xFF,0x24, 0x00,0x00, 0x00,0x01, 0x93,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0xD4,0x2C, 0x97,0x93, 0xFF,0xFC, 0x84,0x96, 0xFE,0xD4, 0x00,0x00,
-0x00,0x01, 0x04,0xA4, 0x00,0x01, 0xE0,0x00, 0xE3,0x3C, 0x94,0x96, 0xFE,0xD4, 0xF4,0x02,
-0x00,0x01, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x04, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x86,0x16,
-0x00,0x08, 0x86,0x96, 0x00,0x0C, 0xF5,0x02, 0xFF,0xFC, 0x85,0x96, 0x00,0x04, 0x84,0x16,
-0x00,0x10, 0xF4,0x84, 0xE0,0x00, 0x07,0x30, 0x00,0x02, 0x94,0xB2, 0x00,0x10, 0xF4,0x84,
-0xE0,0x04, 0x06,0xB4, 0x00,0x03, 0x94,0xB2, 0x00,0x14, 0xF4,0x84, 0xE0,0x1C, 0xC6,0xB4,
-0x54,0x00, 0x94,0xB2, 0x00,0x18, 0xF4,0x82, 0x00,0x05, 0xF4,0xB3, 0x28,0x00, 0xF4,0x82,
-0x00,0x01, 0xF4,0xBB, 0x28,0x00, 0x27,0x34, 0x00,0x08, 0x97,0x32, 0x00,0x04, 0x86,0x16,
-0x00,0x00, 0x07,0x2C, 0x00,0x03, 0xC7,0x38, 0x54,0x00, 0xC6,0xB8, 0x68,0x00, 0x96,0x93,
-0xFF,0xFC, 0xC6,0x30, 0x72,0x00, 0x96,0x13, 0xFF,0xFC, 0xF7,0x02, 0x00,0x03, 0xC5,0xAC,
-0x74,0x00, 0xF7,0x02, 0x00,0x04, 0xC7,0x38, 0x5A,0x00, 0x97,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xC1,0x20, 0x00,0x00, 0x97,0x93, 0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x14, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0x18, 0x87,0x16, 0x00,0x04, 0x00,0x00,
-0x00,0x01, 0x83,0xBA, 0x00,0x00, 0x84,0x96, 0x00,0x00, 0x93,0x96, 0xFF,0xF0, 0xF3,0x84,
-0x6E,0x54, 0x87,0x3A, 0x00,0x04, 0x93,0x96, 0xFF,0xEC, 0x97,0x16, 0xFF,0xF4, 0x90,0x13,
-0xFF,0xFC, 0x27,0x1C, 0x00,0x02, 0x97,0x13, 0xFF,0xFC, 0x07,0x24, 0x00,0x20, 0x97,0x13,
-0xFF,0xFC, 0x94,0x96, 0xFF,0xE4, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xCD,0xB8, 0x97,0x93,
-0xFF,0xFC, 0x84,0x96, 0xFF,0xE4, 0x83,0x96, 0x00,0x08, 0x87,0x26, 0x00,0x18, 0x85,0x16,
-0xFF,0xEC, 0xC0,0x3A, 0x3A,0x00, 0xEE,0x00, 0xEC,0x7C, 0xF5,0x82, 0x00,0x01, 0x87,0x26,
-0x00,0x18, 0x83,0x96, 0x00,0x08, 0x00,0x00, 0x00,0x01, 0xC0,0x1E, 0x72,0x00, 0xE6,0x00,
-0xEC,0x7C, 0xC5,0x84, 0x00,0x00, 0x86,0xA6, 0x00,0x10, 0x87,0x16, 0xFF,0xF0, 0xF6,0x02,
-0x00,0x00, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0xEC,0x1C, 0x04,0x24, 0x00,0x10, 0x86,0xA6,
-0x00,0x14, 0x87,0x16, 0xFF,0xF4, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE6,0x00,
-0xEC,0x20, 0x20,0x32, 0x00,0x00, 0xF6,0x02, 0x00,0x01, 0x20,0x32, 0x00,0x00, 0xE6,0x00,
-0xEC,0x2D, 0x00,0x00, 0x00,0x01, 0xF5,0x82, 0x00,0x00, 0x86,0xA2, 0x00,0x00, 0x87,0x16,
-0xFF,0xF0, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE2,0x00, 0xEC,0x68, 0xF6,0x02,
-0x00,0x00, 0xC0,0x36, 0x72,0x00, 0xE6,0x00, 0xEC,0x70, 0x20,0x32, 0x00,0x00, 0x86,0xA2,
-0x00,0x04, 0x87,0x16, 0xFF,0xF4, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE2,0x00,
-0xEC,0x71, 0x20,0x32, 0x00,0x00, 0xF6,0x02, 0x00,0x01, 0x20,0x32, 0x00,0x00, 0xE6,0x00,
-0xEC,0x81, 0x20,0x2E, 0x00,0x00, 0xF5,0x82, 0x00,0x01, 0x20,0x2E, 0x00,0x00, 0xE6,0x00,
-0xEC,0xAC, 0xF7,0x02, 0x00,0x01, 0xF7,0x04, 0x42,0x9C, 0xF6,0x06, 0x42,0x9C, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38,
-0x00,0x01, 0xF7,0x33, 0x28,0x00, 0xF7,0x02, 0x00,0x01, 0x97,0x2A, 0x00,0x08, 0x83,0xA6,
-0x00,0x0C, 0x77,0x2C, 0xFF,0xE1, 0x93,0xAA, 0x00,0x0C, 0x97,0x2A, 0x00,0x1C, 0x83,0xA6,
-0x00,0x1C, 0xF7,0x04, 0x6E,0x50, 0x93,0xAA, 0x00,0x20, 0x83,0xBA, 0x1D,0xDC, 0xF6,0x82,
-0x00,0x00, 0x93,0xAA, 0x00,0x2C, 0x83,0x96, 0x00,0x0C, 0xC5,0xB4, 0x00,0x00, 0x93,0xAA,
-0x00,0x30, 0x83,0xBA, 0x00,0x10, 0xC6,0x34, 0x00,0x00, 0x93,0xAA, 0x00,0x24, 0x87,0x3A,
-0x00,0x14, 0x00,0x00, 0x00,0x01, 0x97,0x2A, 0x00,0x28, 0x20,0x36, 0x00,0x1F, 0xEE,0x00,
-0xED,0x1C, 0xC7,0x30, 0x50,0x00, 0x07,0x38, 0x00,0x34, 0x95,0xBA, 0x00,0x00, 0x06,0x30,
-0x00,0x04, 0xE0,0x00, 0xEC,0xFC, 0x06,0xB4, 0x00,0x01, 0x83,0x96, 0x00,0x10, 0x76,0xA5,
-0x00,0x1E, 0x93,0x93, 0xFF,0xFC, 0xF3,0x82, 0x00,0xB4, 0x93,0x93, 0xFF,0xFC, 0x95,0x13,
-0xFF,0xFC, 0x87,0x26, 0x00,0x20, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39,
-0xFF,0xF0, 0x97,0x13, 0xFF,0xFC, 0x83,0x96, 0xFF,0xEC, 0x00,0x00, 0x00,0x01, 0x93,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xEA,0xB8, 0x97,0x93, 0xFF,0xFC, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x14, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0x18, 0x87,0x16,
-0x00,0x04, 0x00,0x00, 0x00,0x01, 0x86,0x3A, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x96,0x16,
-0xFF,0xF0, 0x87,0x3A, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0x97,0x16, 0xFF,0xF4, 0xF6,0x02,
-0x1D,0xE0, 0x96,0x13, 0xFF,0xFC, 0x86,0x16, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x96,0x13,
-0xFF,0xFC, 0xF6,0x04, 0x6E,0x50, 0x00,0x00, 0x00,0x01, 0x96,0x13, 0xFF,0xFC, 0x26,0x14,
-0x00,0x10, 0x96,0x16, 0xFF,0xEC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x26,0xF8, 0x97,0x93,
-0xFF,0xFC, 0xF6,0x84, 0x6E,0x50, 0xF6,0x02, 0x00,0x00, 0x87,0x36, 0x1D,0xD8, 0x96,0x16,
-0xFF,0xE4, 0x76,0xB5, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF6,0x86, 0x42,0xC0, 0xF7,0x37, 0x28,0x00, 0x86,0x16, 0xFF,0xEC, 0x00,0x00,
-0x00,0x01, 0x96,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xDB,0xB4, 0x97,0x93,
-0xFF,0xFC, 0x20,0x22, 0x00,0x00, 0xE6,0x00, 0xEE,0x4D, 0x00,0x00, 0x00,0x01, 0x86,0x16,
-0xFF,0xEC, 0x00,0x00, 0x00,0x01, 0x96,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0xD5,0xA0, 0x97,0x93, 0xFF,0xFC, 0x20,0x22, 0x00,0x00, 0xE6,0x00, 0xEE,0x4D, 0x00,0x00,
-0x00,0x01, 0xF6,0x02, 0x00,0x01, 0x96,0x16, 0xFF,0xE4, 0x84,0x16, 0xFF,0xE4, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x08, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x86,0x96, 0x00,0x04, 0x86,0x16,
-0x00,0x00, 0x87,0x36, 0x00,0x08, 0x85,0x96, 0x00,0x08, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0xEE,0x99, 0x20,0x3A, 0x00,0x03, 0xE6,0x00, 0xEE,0xE9, 0xF4,0x02, 0x00,0x00, 0xE0,0x00,
-0xEF,0x0C, 0x00,0x00, 0x00,0x01, 0x77,0xB0, 0x00,0x1F, 0x70,0x3E, 0xFF,0xE1, 0xE6,0x00,
-0xEF,0x0D, 0xF4,0x02, 0x00,0x00, 0x85,0x16, 0x00,0x14, 0x00,0x00, 0x00,0x01, 0x95,0x13,
-0xFF,0xFC, 0x85,0x16, 0x00,0x10, 0x00,0x00, 0x00,0x01, 0x95,0x13, 0xFF,0xFC, 0x85,0x16,
-0x00,0x0C, 0x00,0x00, 0x00,0x01, 0x95,0x13, 0xFF,0xFC, 0x95,0x93, 0xFF,0xFC, 0x96,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xEB,0x60, 0x97,0x93, 0xFF,0xFC, 0xE0,0x00,
-0xEF,0x0C, 0x00,0x00, 0x00,0x01, 0x77,0xB0, 0x00,0x1E, 0x70,0x3E, 0xFF,0xE1, 0xE6,0x00,
-0xEF,0x0D, 0x00,0x00, 0x00,0x01, 0x95,0x93, 0xFF,0xFC, 0x96,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0xED,0x74, 0x97,0x93, 0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x18, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0x18, 0xF4,0x82, 0x00,0x00, 0x86,0x96,
-0x00,0x00, 0xF6,0x04, 0x4A,0xA0, 0x23,0x94, 0x00,0x10, 0x84,0x36, 0x00,0x00, 0x96,0x16,
-0xFF,0xE4, 0xF7,0x04, 0x4A,0x9C, 0x94,0x16, 0xFF,0xF0, 0x85,0x36, 0x00,0x04, 0xC0,0x32,
-0x72,0x00, 0xEC,0x00, 0xF0,0x14, 0x95,0x16, 0xFF,0xF4, 0x77,0x31, 0x00,0x01, 0xC7,0x38,
-0x60,0x00, 0x77,0x39, 0x00,0x02, 0xF3,0x06, 0x4A,0x98, 0xC6,0xB8, 0x30,0x00, 0x06,0xB4,
-0x00,0x0C, 0xC5,0x84, 0x00,0x00, 0x87,0x36, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0xC0,0x3A,
-0x42,0x00, 0xE6,0x00, 0xEF,0xA4, 0xC6,0x24, 0x00,0x00, 0x87,0x36, 0x00,0x04, 0x00,0x00,
-0x00,0x01, 0xC0,0x3A, 0x52,0x00, 0xE6,0x00, 0xEF,0xA8, 0x20,0x32, 0x00,0x00, 0xF6,0x02,
-0x00,0x01, 0x20,0x32, 0x00,0x00, 0xE6,0x00, 0xEF,0xB5, 0x00,0x00, 0x00,0x01, 0xF5,0x82,
-0x00,0x00, 0x86,0x36, 0x00,0x00, 0x87,0x16, 0xFF,0xF0, 0x00,0x00, 0x00,0x01, 0xC0,0x32,
-0x72,0x00, 0xE2,0x00, 0xEF,0xF0, 0xF5,0x02, 0x00,0x00, 0xC0,0x32, 0x72,0x00, 0xE6,0x00,
-0xEF,0xF8, 0x20,0x2A, 0x00,0x00, 0x86,0xB6, 0x00,0x04, 0x87,0x16, 0xFF,0xF4, 0x00,0x00,
-0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE2,0x00, 0xEF,0xF9, 0x20,0x2A, 0x00,0x00, 0xF5,0x02,
-0x00,0x01, 0x20,0x2A, 0x00,0x00, 0xE6,0x00, 0xF0,0x09, 0x20,0x2E, 0x00,0x00, 0xF5,0x82,
-0x00,0x01, 0x20,0x2E, 0x00,0x00, 0xE6,0x00, 0xF0,0x18, 0x20,0x26, 0x00,0x00, 0xF4,0x82,
-0x00,0x01, 0x20,0x26, 0x00,0x00, 0xE6,0x00, 0xF0,0x4D, 0xF6,0x02, 0x00,0x01, 0x87,0x16,
-0xFF,0xE4, 0xF3,0x06, 0x4A,0x98, 0x76,0xB9, 0x00,0x01, 0xC6,0xB4, 0x70,0x00, 0x76,0xB5,
-0x00,0x02, 0xC6,0xB4, 0x30,0x00, 0x06,0xB4, 0x00,0x14, 0x86,0xB6, 0x00,0x00, 0x97,0x16,
-0xFF,0xE8, 0xE0,0x00, 0xF0,0xB0, 0x96,0x96, 0xFF,0xEC, 0x27,0x14, 0x00,0x1C, 0x97,0x13,
-0xFF,0xFC, 0x93,0x93, 0xFF,0xFC, 0xF3,0x06, 0x4A,0x98, 0x93,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x01, 0x25,0x68, 0x97,0x93, 0xFF,0xFC, 0x20,0x22, 0x00,0x00, 0xE6,0x00,
-0xF0,0xAD, 0xF6,0x02, 0x00,0x01, 0x87,0x16, 0xFF,0xE4, 0xF3,0x06, 0x4A,0x98, 0x76,0xB9,
-0x00,0x01, 0xC6,0xB4, 0x70,0x00, 0x76,0xB5, 0x00,0x02, 0xC6,0xB4, 0x30,0x00, 0x06,0xB4,
-0x00,0x14, 0x86,0xB6, 0x00,0x00, 0x97,0x16, 0xFF,0xE8, 0x96,0x96, 0xFF,0xEC, 0xF7,0x05,
-0x4A,0xA0, 0xE0,0x00, 0xF0,0xB4, 0x20,0x32, 0x00,0x00, 0xF6,0x02, 0x00,0x00, 0x20,0x32,
-0x00,0x00, 0xE6,0x00, 0xF1,0x21, 0xF4,0x02, 0x00,0x01, 0x87,0x16, 0xFF,0xE8, 0xF6,0x06,
-0x42,0xC8, 0x76,0xB9, 0x00,0x02, 0xC6,0xB4, 0x70,0x00, 0x76,0xB5, 0x00,0x02, 0xA7,0x36,
-0x60,0x02, 0x83,0x16, 0x00,0x04, 0xC6,0xB4, 0x60,0x00, 0x76,0x35, 0x00,0x1E, 0x76,0x30,
-0xFF,0xE5, 0x05,0x34, 0x00,0x02, 0x75,0xA9, 0x00,0x1E, 0xC7,0x38, 0x67,0xC0, 0x77,0x38,
-0xFF,0xF0, 0x97,0x1A, 0x00,0x00, 0x87,0x2A, 0x00,0x00, 0x75,0xAC, 0xFF,0xE5, 0x83,0x16,
-0x00,0x08, 0xC7,0x38, 0x5F,0xC0, 0x77,0x38, 0xFF,0xF0, 0x97,0x1A, 0x00,0x00, 0x83,0x16,
-0x00,0x0C, 0x06,0xB4, 0x00,0x04, 0xE0,0x00, 0xF1,0x24, 0x96,0x9A, 0x00,0x00, 0xF4,0x02,
-0x00,0x00, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x10, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x00,0x00, 0xB9,0x00, 0x00,0x00, 0xBA,0x00, 0x00,0x00,
-0xBB,0x00, 0x00,0x00, 0xBC,0x00, 0x00,0x00, 0xBD,0x00, 0x00,0x00, 0xBE,0x00, 0x00,0x00,
-0xBF,0x00, 0x00,0x00, 0x80,0x00, 0x00,0x00, 0x81,0x00, 0x00,0x00, 0x82,0x00, 0x00,0x00,
-0x83,0x00, 0x00,0x00, 0x84,0x00, 0x00,0x00, 0x85,0x00, 0x00,0x00, 0x86,0x00, 0x00,0x00,
-0x87,0x00, 0xB9,0xB9, 0xB9,0xBA, 0xB9,0xBB, 0xB9,0xBC, 0xB9,0xBD, 0xB9,0xBE, 0xB9,0xBF,
-0xB9,0x80, 0xB9,0x81, 0xB9,0x82, 0xB9,0x83, 0xB9,0x84, 0xB9,0x85, 0xB9,0x86, 0xB9,0x87,
-0xBA,0xB9, 0xBA,0xBA, 0xBA,0xBB, 0xBA,0xBC, 0xBA,0xBD, 0xBA,0xBE, 0xBA,0xBF, 0xBA,0x80,
-0xBA,0x81, 0xBA,0x82, 0xBA,0x83, 0xBA,0x84, 0xBA,0x85, 0xBA,0x86, 0xBA,0x87, 0xBB,0xB9,
-0xBB,0xBA, 0xBB,0xBB, 0xBB,0xBC, 0xBB,0xBD, 0xBB,0xBE, 0xBB,0xBF, 0xBB,0x80, 0xBB,0x81,
-0xBB,0x82, 0xBB,0x83, 0xBB,0x84, 0xBB,0x85, 0xBB,0x86, 0xBB,0x87, 0xBC,0xB9, 0xBC,0xBA,
-0xBC,0xBB, 0xBC,0xBC, 0xBC,0xBD, 0xBC,0xBE, 0xBC,0xBF, 0xBC,0x80, 0xBC,0x81, 0xBC,0x82,
-0xBC,0x83, 0xBC,0x84, 0xBC,0x85, 0xBC,0x86, 0xBC,0x87, 0xBD,0xB9, 0xBD,0xBA, 0xBD,0xBB,
-0xBD,0xBC, 0xBD,0xBD, 0xBD,0xBE, 0xBD,0xBF, 0xBD,0x80, 0xBD,0x81, 0xBD,0x82, 0xBD,0x83,
-0xBD,0x84, 0xBD,0x85, 0xBD,0x86, 0xBD,0x87, 0xBE,0xB9, 0xBE,0xBA, 0xBE,0xBB, 0xBE,0xBC,
-0xBE,0xBD, 0xBE,0xBE, 0xBE,0xBF, 0xBE,0x80, 0xBE,0x81, 0xBE,0x82, 0xBE,0x83, 0xBE,0x84,
-0xBE,0x85, 0xBE,0x86, 0xBE,0x87, 0xBF,0xB9, 0xBF,0xBA, 0xBF,0xBB, 0xBF,0xBC, 0xBF,0xBD,
-0xBF,0xBE, 0xBF,0xBF, 0xBF,0x80, 0xBF,0x81, 0xBF,0x82, 0xBF,0x83, 0xBF,0x84, 0xBF,0x85,
-0xBF,0x86, 0xBF,0x87, 0x80,0xB9, 0x80,0xBA, 0x80,0xBB, 0x80,0xBC, 0x80,0xBD, 0x80,0xBE,
-0x80,0xBF, 0x80,0x80, 0x80,0x81, 0x80,0x82, 0x80,0x83, 0x80,0x84, 0x80,0x85, 0x80,0x86,
-0x80,0x87, 0x81,0xB9, 0x81,0xBA, 0x81,0xBB, 0x81,0xBC, 0x81,0xBD, 0x81,0xBE, 0x81,0xBF,
-0x81,0x80, 0x81,0x81, 0x81,0x82, 0x81,0x83, 0x81,0x84, 0x81,0x85, 0x81,0x86, 0x81,0x87,
-0x82,0xB9, 0x82,0xBA, 0x82,0xBB, 0x82,0xBC, 0x82,0xBD, 0x82,0xBE, 0x82,0xBF, 0x82,0x80,
-0x82,0x81, 0x82,0x82, 0x82,0x83, 0x82,0x84, 0x82,0x85, 0x82,0x86, 0x82,0x87, 0x83,0xB9,
-0x83,0xBA, 0x83,0xBB, 0x83,0xBC, 0x83,0xBD, 0x83,0xBE, 0x83,0xBF, 0x83,0x80, 0x83,0x81,
-0x83,0x82, 0x83,0x83, 0x83,0x84, 0x83,0x85, 0x83,0x86, 0x83,0x87, 0x84,0xB9, 0x84,0xBA,
-0x84,0xBB, 0x84,0xBC, 0x84,0xBD, 0x84,0xBE, 0x84,0xBF, 0x84,0x80, 0x84,0x81, 0x84,0x82,
-0x84,0x83, 0x84,0x84, 0x84,0x85, 0x84,0x86, 0x84,0x87, 0x85,0xB9, 0x85,0xBA, 0x85,0xBB,
-0x85,0xBC, 0x85,0xBD, 0x85,0xBE, 0x85,0xBF, 0x85,0x80, 0x85,0x81, 0x85,0x82, 0x85,0x83,
-0x85,0x84, 0x85,0x85, 0x85,0x86, 0x85,0x87, 0x86,0xB9, 0x86,0xBA, 0x86,0xBB, 0x86,0xBC,
-0x86,0xBD, 0x86,0xBE, 0x86,0xBF, 0x86,0x80, 0x86,0x81, 0x86,0x82, 0x86,0x83, 0x86,0x84,
-0x86,0x85, 0x86,0x86, 0x86,0x87, 0x87,0xB9, 0x87,0xBA, 0x87,0xBB, 0x87,0xBC, 0x87,0xBD,
-0x87,0xBE, 0x87,0xBF, 0x87,0x80, 0x87,0x81, 0x87,0x82, 0x87,0x83, 0x87,0x84, 0x87,0x85,
-0x87,0x86, 0x87,0x87, 0x00,0x00, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10,
-0x00,0x18, 0xF7,0x04, 0x75,0xEC, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0xF3,0x7D, 0xF6,0x06, 0x42,0x96, 0xF7,0x04, 0x42,0x94, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xF4,0x02, 0x00,0x00, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38,
-0x00,0x01, 0xE0,0x00, 0xF5,0xE0, 0xF7,0x33, 0x28,0x00, 0xF3,0x84, 0x6F,0x30, 0x90,0x13,
-0xFF,0xFC, 0x27,0x1C, 0x00,0x02, 0x97,0x13, 0xFF,0xFC, 0x83,0x16, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x93,0x13, 0xFF,0xFC, 0x93,0x96, 0xFF,0xEC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0xCD,0xB8, 0x97,0x93, 0xFF,0xFC, 0x83,0x96, 0xFF,0xEC, 0xF7,0x02, 0x00,0x00, 0x97,0x1E,
-0x00,0x08, 0x83,0x16, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0x93,0x1E, 0x00,0x0C, 0x83,0x16,
-0x00,0x08, 0x04,0x9C, 0x00,0x22, 0x93,0x1E, 0x00,0x1C, 0x83,0x16, 0x00,0x0C, 0x93,0x96,
-0xFF,0xF4, 0x87,0x1A, 0x00,0x00, 0x76,0x99, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0x06,0x18,
-0x00,0x02, 0x75,0xB1, 0x00,0x1E, 0x75,0xAC, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0x06,0x9C, 0x00,0x20, 0xF7,0x37, 0x28,0x00, 0x87,0x32, 0x00,0x00, 0x96,0x96,
-0xFF,0xE4, 0x75,0x35, 0x00,0x1E, 0xC7,0x38, 0x5F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27,
-0x28,0x00, 0x04,0x9C, 0x00,0x24, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27,
-0x28,0x00, 0x04,0x9C, 0x00,0x26, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27,
-0x28,0x00, 0x04,0x9C, 0x00,0x28, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27,
-0x28,0x00, 0x04,0x9C, 0x00,0x2A, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27,
-0x28,0x00, 0x04,0x9C, 0x00,0x2C, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27,
-0x28,0x00, 0x04,0x9C, 0x00,0x2E, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27,
-0x28,0x00, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x04,0x9C, 0x00,0x30, 0x76,0x31,
-0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27,
-0x28,0x00, 0x87,0x1E, 0x00,0x20, 0x75,0x28, 0xFF,0xE5, 0xC7,0x38, 0x57,0xC0, 0x77,0x39,
-0xFF,0xF0, 0x20,0x3A, 0x00,0x08, 0xEE,0x00, 0xF5,0x98, 0xF3,0x06, 0x14,0xD8, 0x83,0x16,
-0xFF,0xE4, 0x87,0x1E, 0x00,0x20, 0x76,0x99, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x25,0xB8, 0x00,0x01, 0xC4,0xAC, 0x58,0x00, 0x04,0x24,
-0x00,0x01, 0x20,0x2E, 0x00,0x00, 0xEC,0x00, 0xF5,0x95, 0xF5,0x02, 0x00,0x00, 0x83,0x16,
-0xFF,0xE4, 0x00,0x00, 0x00,0x01, 0x06,0x18, 0x00,0x02, 0xA7,0x32, 0x58,0x02, 0xC6,0xB0,
-0x58,0x00, 0x76,0xB5, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39,
-0xFF,0xE8, 0xC6,0xB0, 0x40,0x00, 0x77,0xB8, 0x00,0x18, 0x70,0x3E, 0xFF,0xE1, 0xE6,0x00,
-0xF5,0x7D, 0xF7,0x37, 0x68,0x00, 0xF5,0x02, 0xFF,0xFF, 0xC7,0x30, 0x48,0x00, 0xF5,0x3B,
-0x68,0x00, 0x24,0xA4, 0x00,0x02, 0x24,0x20, 0x00,0x02, 0xE0,0x00, 0xF5,0x34, 0x25,0xAC,
-0x00,0x01, 0xF3,0x06, 0x14,0xD8, 0x93,0x13, 0xFF,0xFC, 0xF3,0x02, 0x00,0x34, 0x93,0x13,
-0xFF,0xFC, 0x83,0x16, 0xFF,0xF4, 0x00,0x00, 0x00,0x01, 0x93,0x13, 0xFF,0xFC, 0x83,0x16,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x87,0x1A, 0x00,0x00, 0x76,0x99, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x97,0x13, 0xFF,0xFC, 0x93,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xEA,0xB8, 0x97,0x93, 0xFF,0xFC, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x10, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0x10, 0xF7,0x04,
-0x75,0xEC, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0xF6,0x39, 0xF6,0x06,
-0x42,0x96, 0xF7,0x04, 0x42,0x94, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xF4,0x02,
-0x00,0x00, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38, 0x00,0x01, 0xE0,0x00,
-0xF7,0x48, 0xF7,0x33, 0x28,0x00, 0xF5,0x04, 0x6F,0x30, 0x00,0x00, 0x00,0x01, 0x95,0x16,
-0xFF,0xF4, 0x90,0x13, 0xFF,0xFC, 0x27,0x28, 0x00,0x02, 0x97,0x13, 0xFF,0xFC, 0x85,0x96,
-0x00,0x04, 0x00,0x00, 0x00,0x01, 0x95,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0xCD,0xB8, 0x97,0x93, 0xFF,0xFC, 0x85,0x16, 0x00,0x04, 0xF6,0x02, 0x00,0x00, 0x86,0xAA,
-0x00,0x00, 0x77,0x29, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB5,
-0xFF,0xF0, 0xF7,0x02, 0x00,0x01, 0xC0,0x36, 0x74,0x00, 0xE6,0x00, 0xF6,0x99, 0x96,0x96,
-0xFF,0xEC, 0xC6,0x38, 0x00,0x00, 0x96,0x13, 0xFF,0xFC, 0x85,0x96, 0xFF,0xEC, 0x85,0x16,
-0xFF,0xF4, 0x47,0x2C, 0xFF,0xFE, 0x07,0x38, 0x00,0x02, 0xC7,0x28, 0x72,0x00, 0x97,0x13,
-0xFF,0xFC, 0x85,0x96, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x95,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0xCD,0xB8, 0x97,0x93, 0xFF,0xFC, 0x85,0x16, 0xFF,0xF4, 0xF7,0x02,
-0x00,0x02, 0x97,0x2A, 0x00,0x08, 0x85,0x96, 0x00,0x08, 0x00,0x00, 0x00,0x01, 0x95,0xAA,
-0x00,0x0C, 0x85,0x96, 0x00,0x0C, 0x00,0x00, 0x00,0x01, 0x95,0xAA, 0x00,0x1C, 0xF5,0x06,
-0x14,0xD8, 0x95,0x13, 0xFF,0xFC, 0xF5,0x82, 0x00,0x20, 0x95,0x93, 0xFF,0xFC, 0x85,0x16,
-0xFF,0xF4, 0x00,0x00, 0x00,0x01, 0x95,0x13, 0xFF,0xFC, 0x85,0x96, 0x00,0x00, 0x85,0x16,
-0xFF,0xEC, 0x87,0x2E, 0x00,0x00, 0x76,0xAD, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0xC7,0x38, 0x50,0x00, 0x97,0x13, 0xFF,0xFC, 0x85,0x96,
-0xFF,0xF4, 0x00,0x00, 0x00,0x01, 0x95,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0xEA,0xB8, 0x97,0x93, 0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x10, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0x85,0x96, 0x00,0x00, 0x85,0x16, 0x00,0x04, 0x87,0x16, 0x00,0x08, 0xF6,0x02,
-0xFF,0xFC, 0x06,0xA8, 0x00,0x03, 0xC6,0xB4, 0x64,0x00, 0x07,0x38, 0x00,0x03, 0xC7,0x38,
-0x64,0x00, 0xC7,0x34, 0x70,0x00, 0x97,0x13, 0xFF,0xFC, 0xC5,0xAC, 0x6A,0x00, 0x95,0x93,
-0xFF,0xFC, 0xF7,0x02, 0x00,0x03, 0xC5,0x28, 0x74,0x00, 0xF7,0x02, 0x00,0x04, 0xC7,0x38,
-0x52,0x00, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x14,0xD8, 0x97,0x93,
-0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x10, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10,
-0x00,0x10, 0xF7,0x04, 0x75,0xEC, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0xF8,0x0D, 0xF6,0x06, 0x42,0x96, 0xF7,0x04, 0x42,0x94, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xF4,0x02, 0x00,0x00, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38,
-0x00,0x01, 0xE0,0x00, 0xF9,0x20, 0xF7,0x33, 0x28,0x00, 0xF5,0x04, 0x6F,0x30, 0x00,0x00,
-0x00,0x01, 0x95,0x16, 0xFF,0xF4, 0x90,0x13, 0xFF,0xFC, 0x27,0x28, 0x00,0x02, 0x97,0x13,
-0xFF,0xFC, 0x85,0x96, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0x95,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0xCD,0xB8, 0x97,0x93, 0xFF,0xFC, 0x85,0x16, 0x00,0x04, 0xF6,0x02,
-0x00,0x00, 0x86,0xAA, 0x00,0x00, 0x77,0x29, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4,
-0x77,0xC0, 0x76,0xB5, 0xFF,0xF0, 0xF7,0x02, 0x00,0x01, 0xC0,0x36, 0x74,0x00, 0xE6,0x00,
-0xF8,0x6D, 0x96,0x96, 0xFF,0xEC, 0xC6,0x38, 0x00,0x00, 0x96,0x13, 0xFF,0xFC, 0x85,0x96,
-0xFF,0xEC, 0x85,0x16, 0xFF,0xF4, 0x47,0x2C, 0xFF,0xFE, 0x07,0x38, 0x00,0x02, 0xC7,0x28,
-0x72,0x00, 0x97,0x13, 0xFF,0xFC, 0x85,0x96, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x95,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xCD,0xB8, 0x97,0x93, 0xFF,0xFC, 0x85,0x16,
-0xFF,0xF4, 0xF5,0x82, 0x00,0x06, 0xF5,0xAB, 0x28,0x00, 0x85,0x96, 0x00,0x08, 0x07,0x28,
-0x00,0x02, 0x95,0xAA, 0x00,0x04, 0x05,0x14, 0x00,0x0E, 0x85,0x2A, 0x00,0x00, 0x77,0xA9,
-0x00,0x1E, 0x77,0xBC, 0xFF,0xE5, 0xC5,0x28, 0x7F,0xC0, 0x75,0x29, 0xFF,0xF0, 0xF5,0x3B,
-0x28,0x00, 0xF5,0x86, 0x14,0xD8, 0x95,0x93, 0xFF,0xFC, 0xF5,0x02, 0x00,0x08, 0x95,0x13,
-0xFF,0xFC, 0x85,0x96, 0x00,0x00, 0x85,0x16, 0xFF,0xEC, 0x87,0x2E, 0x00,0x00, 0x76,0xAD,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0xC7,0x38,
-0x50,0x00, 0x97,0x13, 0xFF,0xFC, 0x85,0x96, 0xFF,0xF4, 0x00,0x00, 0x00,0x01, 0x95,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xF7,0x5C, 0x97,0x93, 0xFF,0xFC, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x10, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0x08, 0xF7,0x04,
-0x75,0xEC, 0x83,0x96, 0x00,0x04, 0x20,0x3A, 0x00,0x00, 0xE6,0x00, 0xFA,0x64, 0xF6,0x06,
-0x42,0x96, 0xF5,0x04, 0x6F,0x30, 0x90,0x13, 0xFF,0xFC, 0x27,0x28, 0x00,0x02, 0x97,0x13,
-0xFF,0xFC, 0x83,0x16, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x93,0x13, 0xFF,0xFC, 0x93,0x96,
-0xFF,0xF4, 0x95,0x16, 0xFF,0xF0, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xCD,0xB8, 0x97,0x93,
-0xFF,0xFC, 0x85,0x16, 0xFF,0xF0, 0xF3,0x02, 0x00,0x07, 0x83,0x96, 0xFF,0xF4, 0xF3,0x2B,
-0x28,0x00, 0x07,0x28, 0x00,0x02, 0xF3,0x02, 0x00,0x01, 0xF3,0x3B, 0x28,0x00, 0x87,0x1E,
-0x00,0x00, 0x76,0x9D, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0x05,0x9C, 0x00,0x02, 0x76,0x2D,
-0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0x74,0x9D, 0x00,0x1E, 0x74,0xA4, 0xFF,0xE5, 0x04,0x1C,
-0x00,0x06, 0x83,0x16, 0x00,0x00, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0x06,0xA8,
-0x00,0x04, 0xF7,0x37, 0x28,0x00, 0x87,0x2E, 0x00,0x00, 0x06,0xA8, 0x00,0x06, 0x75,0xA1,
-0x00,0x1E, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x87,0x1E,
-0x00,0x04, 0x75,0xAC, 0xFF,0xE5, 0x06,0xA8, 0x00,0x08, 0x76,0x19, 0x00,0x1E, 0xC7,0x38,
-0x4F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0x87,0x22, 0x00,0x00, 0x06,0xA8,
-0x00,0x0A, 0xC7,0x38, 0x5F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x37, 0x28,0x00, 0xF3,0x06,
-0x14,0xD8, 0x93,0x13, 0xFF,0xFC, 0xF3,0x02, 0x00,0x0C, 0x93,0x13, 0xFF,0xFC, 0x83,0x16,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x87,0x1A, 0x00,0x00, 0x76,0x30, 0xFF,0xE5, 0xC7,0x38,
-0x67,0xC0, 0x77,0x39, 0xFF,0xF0, 0x97,0x13, 0xFF,0xFC, 0x95,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0xF7,0x5C, 0x97,0x93, 0xFF,0xFC, 0xE0,0x00, 0xFA,0x84, 0x00,0x00,
-0x00,0x01, 0xF7,0x04, 0x42,0x94, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xF4,0x02,
-0x00,0x00, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38, 0x00,0x01, 0xF7,0x33,
-0x28,0x00, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x08, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10,
-0x00,0x48, 0xF7,0x04, 0x75,0xEC, 0x85,0x96, 0x00,0x00, 0x20,0x3A, 0x00,0x00, 0xE6,0x00,
-0xFD,0x98, 0xF6,0x06, 0x42,0x96, 0x05,0xAC, 0x00,0x02, 0x87,0x2E, 0x00,0x00, 0x76,0xAD,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0x24,0x14, 0x00,0x1E, 0x06,0x2C, 0x00,0x02, 0x75,0x31,
-0x00,0x1E, 0x24,0x94, 0x00,0x20, 0x75,0x28, 0xFF,0xE5, 0xF3,0x84, 0x6E,0x50, 0xC7,0x38,
-0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x87,0x32, 0x00,0x00, 0x93,0x96,
-0xFF,0xC4, 0xC7,0x38, 0x57,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x23, 0x28,0x00, 0x24,0x14,
-0x00,0x1C, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x23, 0x28,0x00, 0x24,0x14,
-0x00,0x1A, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x23, 0x28,0x00, 0x24,0x14,
-0x00,0x18, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x23, 0x28,0x00, 0x24,0x14,
-0x00,0x16, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x23, 0x28,0x00, 0x24,0x14,
-0x00,0x14, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x23, 0x28,0x00, 0x24,0x14,
-0x00,0x12, 0x06,0x30, 0x00,0x02, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x23, 0x28,0x00, 0x06,0x30,
-0x00,0x02, 0x87,0x32, 0x00,0x00, 0x24,0x14, 0x00,0x10, 0x76,0x31, 0x00,0x1E, 0x76,0x30,
-0xFF,0xE5, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x23, 0x28,0x00, 0x90,0x13,
-0xFF,0xFC, 0x27,0x1C, 0x00,0x02, 0x97,0x13, 0xFF,0xFC, 0x94,0x93, 0xFF,0xFC, 0x95,0x96,
-0xFF,0xBC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xCD,0xB8, 0x97,0x93, 0xFF,0xFC, 0x85,0x96,
-0xFF,0xBC, 0x23,0x14, 0x00,0x36, 0x24,0x94, 0x00,0x38, 0x73,0xA5, 0x00,0x1E, 0x73,0x9C,
-0xFF,0xE5, 0xF4,0x04, 0x42,0xC0, 0xF6,0x86, 0x42,0xC0, 0x76,0xB5, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0x87,0x2E, 0x00,0x00, 0x76,0x2D, 0x00,0x1E, 0x76,0x30, 0xFF,0xE5, 0xC4,0x20,
-0x6F,0xC0, 0x74,0x20, 0xFF,0xF0, 0x05,0xAC, 0x00,0x02, 0x75,0x2D, 0x00,0x1E, 0x75,0x28,
-0xFF,0xE5, 0xC7,0x38, 0x67,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x27, 0x28,0x00, 0x87,0x2E,
-0x00,0x00, 0xF6,0x04, 0x6E,0x50, 0xC7,0x38, 0x57,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1B,
-0x28,0x00, 0x23,0x14, 0x00,0x34, 0x05,0xAC, 0x00,0x02, 0x87,0x2E, 0x00,0x00, 0x76,0xAD,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1B,
-0x28,0x00, 0x23,0x14, 0x00,0x32, 0x05,0xAC, 0x00,0x02, 0x87,0x2E, 0x00,0x00, 0x76,0xAD,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1B,
-0x28,0x00, 0x23,0x14, 0x00,0x30, 0x05,0xAC, 0x00,0x02, 0x87,0x2E, 0x00,0x00, 0x76,0xAD,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1B,
-0x28,0x00, 0x23,0x14, 0x00,0x2E, 0x05,0xAC, 0x00,0x02, 0x87,0x2E, 0x00,0x00, 0x76,0xAD,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1B,
-0x28,0x00, 0x23,0x14, 0x00,0x2C, 0x05,0xAC, 0x00,0x02, 0x87,0x2E, 0x00,0x00, 0x76,0xAD,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1B,
-0x28,0x00, 0x23,0x14, 0x00,0x2A, 0x05,0xAC, 0x00,0x02, 0x87,0x2E, 0x00,0x00, 0x76,0xAD,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1B,
-0x28,0x00, 0x05,0xAC, 0x00,0x02, 0x87,0x2E, 0x00,0x00, 0x23,0x14, 0x00,0x28, 0x75,0xAD,
-0x00,0x1E, 0x75,0xAC, 0xFF,0xE5, 0xC7,0x38, 0x5F,0xC0, 0x77,0x38, 0xFF,0xF0, 0xF7,0x1B,
-0x28,0x00, 0x87,0x16, 0xFF,0xC8, 0xF6,0x82, 0x00,0x03, 0xC7,0x38, 0x3F,0xC0, 0x96,0xB2,
-0x00,0x08, 0x06,0xB0, 0x1D,0xD8, 0xF4,0x37, 0x28,0x00, 0xF3,0x86, 0x14,0xD8, 0x93,0x93,
-0xFF,0xFC, 0xF3,0x82, 0x1D,0xE0, 0x93,0x93, 0xFF,0xFC, 0x96,0x13, 0xFF,0xFC, 0x77,0x39,
-0xFF,0xF0, 0x97,0x13, 0xFF,0xFC, 0x83,0x96, 0xFF,0xC4, 0x00,0x00, 0x00,0x01, 0x93,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xEA,0xB8, 0x97,0x93, 0xFF,0xFC, 0xE0,0x00,
-0xFD,0xB8, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x42,0x94, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xF4,0x02, 0x00,0x00, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38,
-0x00,0x01, 0xF7,0x33, 0x28,0x00, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x04, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0x86,0x16, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x87,0x32, 0x00,0x00, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x20,0x3A,
-0x00,0x06, 0xE6,0x00, 0xFE,0x21, 0xF5,0x82, 0x00,0x1E, 0xF7,0x04, 0x42,0xA8, 0xF6,0x06,
-0x42,0xA8, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39,
-0xFF,0xF0, 0x07,0x38, 0x00,0x01, 0xE0,0x00, 0xFE,0x34, 0xF7,0x33, 0x28,0x00, 0xF6,0x05,
-0x6F,0x34, 0x95,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x15,0x84, 0x97,0x93,
-0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x04, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x86,0x16,
-0x00,0x00, 0x85,0x96, 0x00,0x04, 0x87,0x32, 0x00,0x00, 0x76,0xB1, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x20,0x3A, 0x00,0x07, 0xE6,0x00,
-0xFE,0x9D, 0xF4,0x02, 0x00,0x00, 0xF7,0x04, 0x42,0xA8, 0xF6,0x06, 0x42,0xAA, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38,
-0x00,0x01, 0xE0,0x00, 0xFF,0x1C, 0xF7,0x33, 0x28,0x00, 0x07,0x30, 0x00,0x02, 0x86,0xBA,
-0x00,0x00, 0x77,0x39, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB5,
-0xFF,0xF0, 0x20,0x36, 0x00,0x01, 0xE6,0x00, 0xFE,0xD5, 0xF6,0x05, 0x6F,0x34, 0x20,0x36,
-0x00,0x02, 0xE6,0x00, 0xFE,0xE5, 0xF5,0x02, 0x00,0x20, 0xE0,0x00, 0xFE,0xFC, 0xF6,0x06,
-0x42,0xAC, 0x20,0x2E, 0x00,0x0C, 0xE6,0x00, 0xFF,0x1C, 0xF4,0x02, 0x00,0x00, 0xF5,0x02,
-0x00,0x1F, 0x95,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x15,0x84, 0x97,0x93,
-0xFF,0xFC, 0xE0,0x00, 0xFF,0x1C, 0xF4,0x02, 0x00,0x01, 0xF7,0x04, 0x42,0xAC, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38,
-0x00,0x01, 0xF7,0x33, 0x28,0x00, 0xF4,0x02, 0x00,0x01, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x08, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x86,0x96, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x87,0x36,
-0x00,0x04, 0xF6,0x02, 0x00,0x00, 0x07,0x38, 0x00,0x08, 0x97,0x36, 0x00,0x04, 0x87,0x36,
-0x00,0x08, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xEC,0x00, 0xFF,0x7D, 0xF6,0x85,
-0x6F,0x34, 0x87,0x36, 0x00,0x08, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x03, 0xEE,0x00,
-0xFF,0x80, 0x20,0x32, 0x00,0x00, 0xF6,0x02, 0x00,0x01, 0x20,0x32, 0x00,0x00, 0xE6,0x00,
-0xFF,0xBD, 0xF6,0x06, 0x42,0xAE, 0xF7,0x04, 0x6F,0x34, 0x00,0x00, 0x00,0x01, 0x87,0x3A,
-0x00,0x08, 0xF6,0x82, 0xFF,0xEC, 0x77,0x39, 0x00,0x02, 0xA7,0x3A, 0x68,0x02, 0x00,0x00,
-0x00,0x01, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x15,0x84, 0x97,0x93,
-0xFF,0xFC, 0xE0,0x00, 0xFF,0xD8, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x42,0xAC, 0x76,0xB1,
-0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x07,0x38,
-0x00,0x01, 0xF7,0x33, 0x28,0x00, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x04, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x00,0x00, 0x00,0x17, 0x00,0x00,
-0x00,0x1A, 0x00,0x00, 0x00,0x1D, 0x00,0x00, 0x00,0x18, 0x00,0x00, 0x00,0x00, 0x56,0x65,
-0x72,0x73, 0x69,0x6F, 0x6E,0x53, 0x74,0x72, 0x69,0x6E, 0x67,0x3A, 0x20,0x6D, 0x63,0x70,
-0x2D,0x6C, 0x34,0x76, 0x33,0x20, 0x33,0x2E, 0x30,0x38, 0x63,0x20, 0x44,0x65, 0x63,0x20,
-0x31,0x31, 0x20,0x31, 0x39,0x39, 0x36,0x20, 0x31,0x33, 0x3A,0x30, 0x36,0x3A, 0x31,0x36,
-0x00,0x00, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF7,0x04, 0xE0,0x0C, 0xFF,0x02,
-0x00,0x00, 0x97,0x02, 0xFF,0x84, 0xF7,0x06, 0x0C,0x3E, 0xCF,0xFC, 0x75,0x80, 0xF6,0x02,
-0x00,0x02, 0x96,0x02, 0xFF,0x8C, 0x90,0x02, 0xFF,0x88, 0xF7,0x04, 0xE0,0x20, 0x00,0x00,
-0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x01, 0x00,0x74, 0xF6,0x82, 0x00,0x00, 0xF6,0x82,
-0x00,0x03, 0x96,0x82, 0xFF,0x98, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0x22,0x10, 0x00,0x0C, 0xF5,0x02, 0x14,0x94, 0xF5,0x05, 0x7B,0x00, 0xF5,0x0E,
-0xF0,0x14, 0xF5,0x05, 0x7B,0x08, 0xF7,0x06, 0xE0,0x00, 0xF6,0x86, 0x7B,0x68, 0xC7,0x38,
-0x6A,0x00, 0xF7,0x05, 0x7A,0xF0, 0xF5,0x02, 0x00,0x4C, 0xF6,0x82, 0x00,0x00, 0x20,0x36,
-0x00,0x02, 0xEE,0x01, 0x01,0x24, 0xF5,0x05, 0x7A,0xF8, 0xC5,0xB4, 0x00,0x00, 0xC6,0x34,
-0x00,0x00, 0xF7,0x06, 0xE0,0x30, 0xC7,0x2C, 0x70,0x00, 0xF5,0x06, 0x6F,0x44, 0xB7,0x32,
-0x50,0x02, 0x90,0x13, 0xFF,0xFC, 0x97,0x13, 0xFF,0xFC, 0x95,0x96, 0xFF,0xF4, 0x96,0x16,
-0xFF,0xF0, 0x96,0x96, 0xFF,0xEC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x03,0x1C, 0x97,0x93,
-0xFF,0xFC, 0x85,0x96, 0xFF,0xF4, 0x86,0x16, 0xFF,0xF0, 0x86,0x96, 0xFF,0xEC, 0x05,0xAC,
-0x14,0x94, 0x06,0xB4, 0x00,0x01, 0x20,0x36, 0x00,0x02, 0xEE,0x01, 0x00,0xD5, 0x06,0x30,
-0x00,0x04, 0xF5,0x02, 0x00,0x22, 0xF5,0x05, 0x6F,0x58, 0xF0,0x05, 0x6F,0x54, 0xF0,0x05,
-0x6F,0x50, 0xF0,0x05, 0x2D,0x40, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x29,0x58, 0x97,0x93, 0xFF,0xFC, 0xF7,0x02,
-0x00,0x03, 0xF7,0x05, 0xE0,0x08, 0xF7,0x04, 0x7A,0xD8, 0xF6,0x02, 0x00,0x01, 0x96,0x02,
-0xFF,0x94, 0x20,0x3A, 0x00,0x00, 0xE6,0x01, 0x01,0x91, 0xF7,0x06, 0x7A,0xE8, 0x07,0x88,
-0x00,0x08, 0xE0,0x01, 0x03,0xDC, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06, 0x7A,0xE8, 0xF6,0x02,
-0x00,0x05, 0xF6,0x3B, 0x28,0x00, 0xF7,0x06, 0x7A,0xE0, 0x86,0x82, 0xFF,0x44, 0xF6,0x02,
-0x00,0x03, 0x20,0x36, 0x00,0x00, 0xE6,0x01, 0x01,0xC9, 0xF6,0x3B, 0x28,0x00, 0xF7,0x04,
-0x6F,0x64, 0x86,0x82, 0xFF,0x44, 0x07,0x38, 0x00,0x01, 0x20,0x36, 0x00,0x00, 0xE6,0x01,
-0x01,0xB0, 0xF7,0x05, 0x6F,0x64, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x00,0x34, 0x97,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x00,0x8C, 0x97,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x44,0x28, 0x97,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x16,0xF0, 0x97,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x0C,0x60, 0x97,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x04,0x08, 0x97,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x00,0x20, 0x97,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x0B,0xD8, 0x97,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x1D,0x68, 0x97,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x1E,0x50, 0x97,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x5F,0x68, 0x97,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x6D,0xEC, 0x97,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x21,0xD0, 0x97,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x22,0x2C, 0x97,0x93, 0xFF,0xFC, 0x90,0x02,
-0xFF,0x94, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x0B,0xFC, 0x97,0x93, 0xFF,0xFC, 0xF4,0x02,
-0x00,0x00, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10,
-0x00,0x08, 0xF6,0x02, 0x00,0x00, 0xC5,0xB0, 0x00,0x00, 0x20,0x32, 0x00,0x02, 0xEE,0x01,
-0x03,0x08, 0xF5,0x06, 0x6F,0x44, 0xA6,0xAE, 0x50,0x02, 0x00,0x00, 0x00,0x01, 0x87,0x36,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x01, 0xE6,0x01, 0x02,0xFC, 0xF5,0x02,
-0x00,0x02, 0x95,0x13, 0xFF,0xFC, 0x96,0x93, 0xFF,0xFC, 0x95,0x96, 0xFF,0xF4, 0x96,0x16,
-0xFF,0xF0, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x03,0x1C, 0x97,0x93, 0xFF,0xFC, 0x86,0x16,
-0xFF,0xF0, 0x85,0x96, 0xFF,0xF4, 0x00,0x00, 0x00,0x01, 0x05,0xAC, 0x00,0x04, 0xE0,0x01,
-0x02,0xAC, 0x06,0x30, 0x00,0x01, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0x87,0x16, 0x00,0x00, 0xF6,0x02, 0x00,0x00, 0xF6,0x82, 0x00,0x08, 0x96,0x3A,
-0x00,0x08, 0x96,0x3A, 0x00,0x0C, 0x96,0x3A, 0x09,0xD8, 0x96,0x3A, 0x09,0xDC, 0x96,0x3A,
-0x0E,0xF4, 0x96,0x3A, 0x0E,0xF8, 0x96,0xBA, 0x14,0x20, 0x96,0x3A, 0x14,0x24, 0x90,0xBA,
-0x14,0x8C, 0x86,0x96, 0x00,0x04, 0x90,0xBA, 0x14,0x90, 0x96,0xBA, 0x00,0x00, 0x96,0x3A,
-0x00,0x04, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x08, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x85,0x96,
-0x00,0x00, 0x87,0x16, 0x00,0x08, 0x86,0x16, 0x00,0x04, 0x77,0x38, 0xFF,0xFF, 0xC5,0x30,
-0x70,0x00, 0xC0,0x32, 0x52,0x00, 0xE4,0x01, 0x03,0xC9, 0x00,0x00, 0x00,0x01, 0x87,0x2E,
-0x00,0x00, 0x76,0xAD, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x33, 0x28,0x00, 0x06,0x30, 0x00,0x02, 0xC0,0x32, 0x52,0x00, 0xE4,0x01,
-0x03,0xA0, 0x05,0xAC, 0x00,0x02, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x0C, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0xF7,0x02, 0x00,0x01, 0xE0,0x01, 0x03,0xE8, 0xF7,0x05, 0x7A,0xD8, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x00,0x00, 0x00,0x00, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF5,0x02,
-0x00,0x0A, 0xF5,0x05, 0x71,0xCC, 0xF0,0x05, 0x71,0xD4, 0xF0,0x05, 0x71,0xD0, 0xF0,0x05,
-0x71,0xC4, 0xF5,0x02, 0x00,0x01, 0xF6,0x82, 0x00,0x00, 0x20,0x36, 0x00,0x0A, 0xEC,0x01,
-0x04,0x64, 0xF5,0x05, 0x71,0xC8, 0xF5,0x8A, 0x1E,0x00, 0xF6,0x06, 0x71,0xC4, 0x47,0x2C,
-0xFF,0xFC, 0x97,0x32, 0x00,0x18, 0x06,0x30, 0x00,0x04, 0x06,0xB4, 0x00,0x01, 0xF7,0x04,
-0x71,0xCC, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xEC,0x01, 0x04,0x41, 0x05,0xAC,
-0x21,0x4C, 0xF0,0x05, 0x71,0x98, 0xF5,0x06, 0x6F,0x68, 0x95,0x13, 0xFF,0xFC, 0xF5,0x06,
-0x7B,0x18, 0x95,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x15,0x48, 0x97,0x93,
-0xFF,0xFC, 0xF5,0x06, 0x05,0xD4, 0x95,0x13, 0xFF,0xFC, 0xF7,0x82, 0x00,0x05, 0x97,0x93,
-0xFF,0xFC, 0xF5,0x06, 0x6F,0x68, 0x95,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF5,0x06, 0x0B,0x70, 0x95,0x13, 0xFF,0xFC, 0xF7,0x82,
-0x00,0x06, 0x97,0x93, 0xFF,0xFC, 0xF5,0x06, 0x6F,0x68, 0x95,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF5,0x06, 0x0B,0xA0, 0x95,0x13,
-0xFF,0xFC, 0xF7,0x82, 0x00,0x05, 0x97,0x93, 0xFF,0xFC, 0xF5,0x06, 0x70,0x80, 0x95,0x13,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF5,0x06,
-0x0B,0x70, 0x95,0x13, 0xFF,0xFC, 0xF7,0x82, 0x00,0x06, 0x97,0x93, 0xFF,0xFC, 0xF5,0x06,
-0x70,0x80, 0x95,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93,
-0xFF,0xFC, 0xF5,0x06, 0x05,0x58, 0x95,0x13, 0xFF,0xFC, 0xF5,0x02, 0x00,0x0A, 0x95,0x13,
-0xFF,0xFC, 0xF5,0x06, 0x71,0x0C, 0x95,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x05,0x58, 0x97,0x93,
-0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF7,0x04,
-0x71,0xC4, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x01, 0x05,0x7D, 0xF6,0x86,
-0x71,0xC4, 0xE0,0x01, 0x05,0x94, 0xF7,0x02, 0x00,0x00, 0xF7,0x04, 0x71,0xD0, 0x00,0x00,
-0x00,0x01, 0x77,0x39, 0x00,0x02, 0xC7,0x38, 0x68,0x00, 0x87,0x3A, 0x00,0x18, 0x00,0x00,
-0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x01, 0x05,0xAC, 0xF7,0x05, 0x7B,0x10, 0xF6,0x06,
-0x71,0x0C, 0xE0,0x01, 0x05,0xC0, 0xF6,0x05, 0x7B,0x18, 0xF6,0x06, 0x6F,0x68, 0xF6,0x05,
-0x7B,0x18, 0x97,0x02, 0xFF,0x48, 0x07,0x38, 0x21,0x28, 0x97,0x02, 0xFF,0x4C, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0x10, 0x86,0x82,
-0xFF,0x48, 0xF4,0x86, 0x6F,0x68, 0xF4,0x85, 0x7B,0x18, 0xF5,0x04, 0x7B,0x10, 0x26,0xB4,
-0x00,0x02, 0x85,0xB6, 0x00,0x00, 0x87,0x2A, 0x00,0x00, 0x76,0x29, 0x00,0x1E, 0x76,0x30,
-0xFF,0xE5, 0x76,0xB5, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC5,0xAC, 0x6F,0xC0, 0xC7,0x38,
-0x67,0xC0, 0x77,0x39, 0xFF,0xF0, 0x77,0xB8, 0x00,0x10, 0x70,0x3E, 0xFF,0xE1, 0xE6,0x01,
-0x06,0x45, 0x75,0xAC, 0xFF,0xF0, 0xF7,0x04, 0x71,0xAC, 0x00,0x00, 0x00,0x01, 0x07,0x38,
-0x00,0x01, 0xF7,0x05, 0x71,0xAC, 0xF7,0x04, 0x71,0xAC, 0xE0,0x01, 0x08,0xC4, 0xF7,0x02,
-0x00,0x01, 0x77,0x2C, 0xFF,0xF8, 0x20,0x3A, 0x00,0x00, 0xE6,0x01, 0x06,0x71, 0x76,0xA9,
-0x00,0x1E, 0xF7,0x04, 0x71,0xA8, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0xF7,0x05,
-0x71,0xA8, 0xF7,0x04, 0x71,0xA8, 0xE0,0x01, 0x08,0xC4, 0xF7,0x02, 0x00,0x01, 0x87,0x2A,
-0x00,0x00, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x27,0x38,
-0x00,0x04, 0x20,0x3A, 0x00,0x03, 0xE2,0x01, 0x08,0xA4, 0x00,0x00, 0x00,0x01, 0x77,0x39,
-0x00,0x02, 0xF6,0x86, 0x06,0xA4, 0xA6,0xB6, 0x70,0x02, 0x00,0x00, 0x00,0x01, 0xC1,0x34,
-0x00,0x00, 0x00,0x01, 0x06,0xB4, 0x00,0x01, 0x07,0x7C, 0x00,0x01, 0x07,0xEC, 0x00,0x01,
-0x08,0x44, 0x87,0x2A, 0x00,0x04, 0xC4,0x84, 0x00,0x00, 0xC0,0x3A, 0x4A,0x00, 0xE6,0x01,
-0x06,0xD8, 0x00,0x00, 0x00,0x01, 0x87,0x02, 0xFF,0x48, 0x00,0x00, 0x00,0x01, 0xC7,0x38,
-0x52,0x00, 0x97,0x2A, 0x00,0x04, 0x87,0x2A, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x21,0x00, 0xEE,0x01, 0x07,0x3C, 0xF6,0x02, 0x00,0x00, 0x86,0xAA, 0x00,0x04, 0x87,0x02,
-0xFF,0x48, 0x00,0x00, 0x00,0x01, 0xC7,0x38, 0x52,0x00, 0x27,0x38, 0x00,0x28, 0xC0,0x36,
-0x72,0x00, 0xE6,0x01, 0x07,0x3C, 0x00,0x00, 0x00,0x01, 0x77,0xFC, 0x00,0x1D, 0x70,0x3E,
-0xFF,0xE1, 0xE6,0x01, 0x07,0x3C, 0x00,0x00, 0x00,0x01, 0x77,0xFC, 0x00,0x17, 0x70,0x3E,
-0xFF,0xE1, 0xE6,0x01, 0x07,0x3D, 0x00,0x00, 0x00,0x01, 0x77,0xFC, 0x00,0x16, 0x70,0x3E,
-0xFF,0xE1, 0xE6,0x01, 0x07,0x44, 0x20,0x32, 0x00,0x00, 0xF6,0x02, 0x00,0x01, 0x20,0x32,
-0x00,0x00, 0xE6,0x01, 0x08,0x88, 0x00,0x00, 0x00,0x01, 0x87,0x2A, 0x00,0x18, 0x00,0x00,
-0x00,0x01, 0x20,0x3A, 0x00,0x02, 0xEE,0x01, 0x08,0xC1, 0x00,0x00, 0x00,0x01, 0xF7,0x04,
-0x71,0xA4, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0xF7,0x05, 0x71,0xA4, 0xF7,0x04,
-0x71,0xA4, 0xE0,0x01, 0x08,0xC4, 0xF7,0x02, 0x00,0x01, 0x87,0x2A, 0x00,0x04, 0x00,0x00,
-0x00,0x01, 0x20,0x3A, 0x21,0x00, 0xEE,0x01, 0x07,0xE0, 0xF6,0x02, 0x00,0x00, 0x86,0xAA,
-0x00,0x04, 0x87,0x02, 0xFF,0x48, 0x00,0x00, 0x00,0x01, 0xC7,0x38, 0x52,0x00, 0x27,0x38,
-0x00,0x0C, 0xC0,0x36, 0x72,0x00, 0xE6,0x01, 0x07,0xE0, 0x00,0x00, 0x00,0x01, 0x77,0xFC,
-0x00,0x1D, 0x70,0x3E, 0xFF,0xE1, 0xE6,0x01, 0x07,0xE0, 0x00,0x00, 0x00,0x01, 0x77,0xFC,
-0x00,0x17, 0x70,0x3E, 0xFF,0xE1, 0xE6,0x01, 0x07,0xE1, 0x00,0x00, 0x00,0x01, 0x77,0xFC,
-0x00,0x16, 0x70,0x3E, 0xFF,0xE1, 0xE6,0x01, 0x08,0x80, 0x20,0x32, 0x00,0x00, 0xF6,0x02,
-0x00,0x01, 0xE0,0x01, 0x08,0x80, 0x20,0x32, 0x00,0x00, 0x87,0x02, 0xFF,0x48, 0x00,0x00,
-0x00,0x01, 0xC7,0x38, 0x52,0x00, 0x27,0x38, 0x00,0x04, 0x20,0x3A, 0x00,0x08, 0xE6,0x01,
-0x08,0x38, 0xF6,0x82, 0x00,0x00, 0x77,0xFC, 0x00,0x1D, 0x70,0x3E, 0xFF,0xE1, 0xE6,0x01,
-0x08,0x38, 0x00,0x00, 0x00,0x01, 0x77,0xFC, 0x00,0x17, 0x70,0x3E, 0xFF,0xE1, 0xE6,0x01,
-0x08,0x39, 0x00,0x00, 0x00,0x01, 0x77,0xFC, 0x00,0x16, 0x70,0x3E, 0xFF,0xE1, 0xE6,0x01,
-0x08,0x80, 0x20,0x36, 0x00,0x00, 0xF6,0x82, 0x00,0x01, 0xE0,0x01, 0x08,0x80, 0x20,0x36,
-0x00,0x00, 0xF7,0x02, 0x00,0x00, 0x77,0xFC, 0x00,0x1D, 0x70,0x3E, 0xFF,0xE1, 0xE6,0x01,
-0x08,0x78, 0x00,0x00, 0x00,0x01, 0x77,0xFC, 0x00,0x17, 0x70,0x3E, 0xFF,0xE1, 0xE6,0x01,
-0x08,0x79, 0x00,0x00, 0x00,0x01, 0x77,0xFC, 0x00,0x16, 0x70,0x3E, 0xFF,0xE1, 0xE6,0x01,
-0x08,0x80, 0x20,0x3A, 0x00,0x00, 0xF7,0x02, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x01,
-0x08,0xC1, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x71,0xA0, 0x00,0x00, 0x00,0x01, 0x07,0x38,
-0x00,0x01, 0xF7,0x05, 0x71,0xA0, 0xF7,0x04, 0x71,0xA0, 0xE0,0x01, 0x08,0xC4, 0xF7,0x02,
-0x00,0x01, 0xF7,0x04, 0x71,0x9C, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0xF7,0x05,
-0x71,0x9C, 0xF7,0x04, 0x71,0x9C, 0xE0,0x01, 0x08,0xC4, 0xF7,0x02, 0x00,0x01, 0xF7,0x02,
-0x00,0x00, 0x20,0x3A, 0x00,0x00, 0xE6,0x01, 0x09,0x68, 0x00,0x00, 0x00,0x01, 0xF6,0x84,
-0x7B,0x10, 0x00,0x00, 0x00,0x01, 0x87,0x36, 0x00,0x00, 0x76,0xB5, 0x00,0x1E, 0x76,0xB4,
-0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x39, 0xFF,0xF0, 0x27,0x38, 0x00,0x04, 0x20,0x3A,
-0x00,0x03, 0xE2,0x01, 0x0B,0x50, 0x77,0x39, 0x00,0x02, 0xF6,0x86, 0x09,0x0C, 0xA6,0xB6,
-0x70,0x02, 0x00,0x00, 0x00,0x01, 0xC1,0x34, 0x00,0x00, 0x00,0x01, 0x09,0x1C, 0x00,0x01,
-0x0A,0xE0, 0x00,0x01, 0x0A,0xAC, 0x00,0x01, 0x0B,0x14, 0xF7,0x04, 0x71,0xD0, 0xF6,0x04,
-0x71,0xCC, 0x06,0xB8, 0x00,0x01, 0xC0,0x36, 0x62,0x00, 0xE6,0x01, 0x09,0x38, 0xC7,0x34,
-0x00,0x00, 0xF7,0x02, 0x00,0x00, 0xF5,0x84, 0x71,0xD4, 0x00,0x00, 0x00,0x01, 0xC0,0x3A,
-0x5A,0x00, 0x47,0x0C, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x01, 0x09,0x85, 0x00,0x00,
-0x00,0x01, 0xF7,0x04, 0x71,0xB0, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0xF7,0x05,
-0x71,0xB0, 0xF7,0x04, 0x71,0xB0, 0xF7,0x04, 0x71,0xB4, 0x00,0x00, 0x00,0x01, 0x07,0x38,
-0x00,0x01, 0xF7,0x05, 0x71,0xB4, 0xF7,0x04, 0x71,0xB4, 0xE0,0x01, 0x0B,0x50, 0x00,0x00,
-0x00,0x01, 0xF4,0x84, 0x71,0xC8, 0xF6,0x85, 0x71,0xD0, 0x94,0x96, 0xFF,0xF4, 0xF4,0x84,
-0x7B,0x10, 0xC0,0x36, 0x62,0x00, 0xE6,0x01, 0x09,0xA4, 0x94,0x96, 0xFF,0xEC, 0xF0,0x05,
-0x71,0xD0, 0xF7,0x04, 0x71,0xD0, 0xF0,0x05, 0x71,0xC8, 0x84,0x96, 0xFF,0xEC, 0xC0,0x3A,
-0x5A,0x00, 0x47,0x0C, 0x00,0x01, 0xF7,0x05, 0x71,0xC4, 0x87,0x26, 0x00,0x08, 0x00,0x00,
-0x00,0x01, 0x70,0x3A, 0xFF,0xE1, 0xE6,0x01, 0x09,0xE1, 0x00,0x00, 0x00,0x01, 0xF7,0x04,
-0x71,0x98, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0xF7,0x05, 0x71,0x98, 0x84,0x96,
-0xFF,0xF4, 0x00,0x00, 0x00,0x01, 0x20,0x26, 0x00,0x00, 0xE6,0x01, 0x0A,0x71, 0x00,0x00,
-0x00,0x01, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x05,0x58, 0x97,0x93, 0xFF,0xFC, 0xF6,0x02,
-0x00,0x09, 0x20,0x32, 0x00,0x14, 0xE6,0x01, 0x0A,0x4D, 0x27,0x00, 0x00,0x0C, 0x20,0x3A,
-0x00,0x01, 0xE2,0x01, 0x0A,0x4D, 0xF7,0x06, 0x2D,0xCC, 0xF6,0x84, 0x2E,0xCC, 0x00,0x00,
-0x00,0x01, 0x75,0xB5, 0x00,0x02, 0xB6,0x2E, 0x70,0x02, 0x06,0xB4, 0x00,0x01, 0xF6,0x85,
-0x2E,0xCC, 0x86,0x02, 0xFF,0x34, 0xF7,0x06, 0x2E,0x4C, 0x20,0x36, 0x00,0x1F, 0xE2,0x01,
-0x0A,0x4D, 0xB6,0x2E, 0x70,0x02, 0xF0,0x05, 0x2E,0xCC, 0xF7,0x04, 0x2D,0x68, 0x00,0x00,
-0x00,0x01, 0x87,0x3A, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x87,0x3A, 0x00,0x28, 0x00,0x00,
-0x00,0x01, 0x07,0x88, 0x00,0x08, 0xC1,0x38, 0x00,0x00, 0x97,0x93, 0xFF,0xFC, 0xF7,0x04,
-0x71,0xBC, 0x84,0x96, 0xFF,0xEC, 0x07,0x38, 0x00,0x01, 0xF7,0x05, 0x71,0xBC, 0xF7,0x04,
-0x71,0xBC, 0x86,0xA6, 0x00,0x04, 0x84,0x96, 0xFF,0xF4, 0xF7,0x04, 0x71,0xB8, 0x20,0x26,
-0x00,0x00, 0xC7,0x38, 0x68,0x00, 0xF7,0x05, 0x71,0xB8, 0xE6,0x01, 0x0B,0x51, 0x00,0x00,
-0x00,0x01, 0xE0,0x01, 0x0B,0x5C, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x71,0xC0, 0x00,0x00,
-0x00,0x01, 0x07,0x38, 0x00,0x01, 0xF7,0x05, 0x71,0xC0, 0xF7,0x04, 0x71,0xC0, 0xF4,0x84,
-0x7B,0x10, 0x00,0x00, 0x00,0x01, 0x94,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0xFD,0xCC, 0x97,0x93, 0xFF,0xFC, 0xE0,0x01, 0x0B,0x50, 0x00,0x00, 0x00,0x01, 0xF7,0x04,
-0x71,0xC0, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0xF7,0x05, 0x71,0xC0, 0xF7,0x04,
-0x71,0xC0, 0xF4,0x84, 0x7B,0x10, 0x00,0x00, 0x00,0x01, 0x94,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0xFF,0x30, 0x97,0x93, 0xFF,0xFC, 0xE0,0x01, 0x0B,0x50, 0x00,0x00,
-0x00,0x01, 0xF7,0x04, 0x71,0xC0, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0xF7,0x05,
-0x71,0xC0, 0xF7,0x04, 0x71,0xC0, 0xF6,0x84, 0x7B,0x10, 0x87,0x02, 0xFF,0x48, 0x00,0x00,
-0x00,0x01, 0xC7,0x38, 0x6A,0x00, 0x27,0x38, 0x00,0x04, 0x97,0x13, 0xFF,0xFC, 0x96,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0xFE,0x48, 0x97,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x01, 0x05,0x58, 0x97,0x93, 0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF7,0x06, 0x70,0x80, 0xF7,0x05, 0x7B,0x18, 0x07,0x88,
-0x00,0x08, 0xE0,0x01, 0x05,0x58, 0x97,0x93, 0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF7,0x06, 0x6F,0x68, 0xF7,0x05, 0x7B,0x18, 0x07,0x88,
-0x00,0x08, 0xE0,0x01, 0x05,0x58, 0x97,0x93, 0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF7,0x06, 0x7B,0x18, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06,
-0x6F,0x68, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x14,0xF4, 0x97,0x93,
-0xFF,0xFC, 0xF7,0x06, 0x7B,0x18, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06, 0x6F,0xF4, 0x97,0x13,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x14,0xF4, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06,
-0x7B,0x18, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06, 0x70,0x80, 0x97,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x14,0xF4, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06, 0x7B,0x18, 0x97,0x13,
-0xFF,0xFC, 0xF7,0x06, 0x71,0x0C, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x14,0xF4, 0x97,0x93, 0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x00,0x00, 0x00,0x00, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF5,0x02, 0x00,0x04, 0xF5,0x05, 0x76,0x00, 0xF0,0x05,
-0x76,0x08, 0xF0,0x05, 0x76,0x04, 0xF0,0x05, 0x75,0xF8, 0xF5,0x02, 0x00,0x01, 0xF6,0x82,
-0x00,0x00, 0x20,0x36, 0x00,0x04, 0xEC,0x01, 0x0C,0xBC, 0xF5,0x05, 0x75,0xFC, 0xF5,0x8E,
-0x6A,0xF8, 0xF6,0x06, 0x75,0xF8, 0x47,0x2C, 0xFF,0xFC, 0x97,0x32, 0x00,0x18, 0x06,0x30,
-0x00,0x04, 0x06,0xB4, 0x00,0x01, 0xF7,0x04, 0x76,0x00, 0x00,0x00, 0x00,0x01, 0xC0,0x36,
-0x72,0x00, 0xEC,0x01, 0x0C,0x99, 0x05,0xAC, 0x21,0x4C, 0xF5,0x06, 0x72,0x18, 0x95,0x13,
-0xFF,0xFC, 0xF5,0x06, 0x76,0x48, 0x95,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x15,0x48, 0x97,0x93, 0xFF,0xFC, 0xF5,0x06, 0x0D,0xF4, 0x95,0x13, 0xFF,0xFC, 0xF7,0x82,
-0x00,0x0E, 0x97,0x93, 0xFF,0xFC, 0xF5,0x06, 0x72,0x18, 0x95,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF5,0x06, 0x0D,0xF4, 0x95,0x13,
-0xFF,0xFC, 0xF7,0x82, 0x00,0x0E, 0x97,0x93, 0xFF,0xFC, 0xF5,0x06, 0x72,0xA4, 0x95,0x13,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF5,0x06,
-0x13,0x2C, 0x95,0x13, 0xFF,0xFC, 0xF7,0x82, 0x00,0x01, 0x97,0x93, 0xFF,0xFC, 0xF5,0x06,
-0x73,0x30, 0x95,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93,
-0xFF,0xFC, 0xF5,0x06, 0x16,0xC8, 0x95,0x13, 0xFF,0xFC, 0xF7,0x82, 0x00,0x01, 0x97,0x93,
-0xFF,0xFC, 0xF5,0x06, 0x73,0xBC, 0x95,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF5,0x06, 0x18,0x00, 0x95,0x13, 0xFF,0xFC, 0xF7,0x82,
-0x00,0x10, 0x97,0x93, 0xFF,0xFC, 0xF5,0x06, 0x74,0x48, 0x95,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF5,0x06, 0x16,0x40, 0x95,0x13,
-0xFF,0xFC, 0xF7,0x82, 0x00,0x10, 0x97,0x93, 0xFF,0xFC, 0xF5,0x06, 0x74,0xD4, 0x95,0x13,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF5,0x06,
-0x13,0x2C, 0x95,0x13, 0xFF,0xFC, 0xF5,0x02, 0x00,0x12, 0x95,0x13, 0xFF,0xFC, 0xF5,0x06,
-0x75,0x60, 0x95,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93,
-0xFF,0xFC, 0xF0,0x05, 0x75,0xF0, 0xF0,0x05, 0x75,0xEC, 0xF0,0x05, 0x75,0xF4, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0x38, 0xF7,0x04,
-0x75,0xEC, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x01, 0x0E,0x28, 0x00,0x00,
-0x00,0x01, 0xF7,0x04, 0x75,0xF0, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x01,
-0x0E,0x3D, 0x00,0x00, 0x00,0x01, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x15,0xD0, 0x97,0x93,
-0xFF,0xFC, 0xE0,0x01, 0x13,0x18, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x75,0xFC, 0x00,0x00,
-0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x01, 0x0E,0x59, 0xF6,0x86, 0x75,0xF8, 0xE0,0x01,
-0x0E,0x6C, 0xF6,0x82, 0x00,0x00, 0xF7,0x04, 0x76,0x08, 0x00,0x00, 0x00,0x01, 0x77,0x39,
-0x00,0x02, 0xC7,0x38, 0x68,0x00, 0x86,0xBA, 0x00,0x18, 0xF7,0x04, 0x76,0xFC, 0x00,0x00,
-0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x01, 0x0E,0x90, 0xF6,0x85, 0x76,0x60, 0xF3,0x06,
-0x76,0x48, 0xF3,0x05, 0x76,0xFC, 0xE0,0x01, 0x0E,0xA4, 0xF7,0x02, 0x00,0x01, 0xF3,0x02,
-0x00,0x10, 0xF3,0x05, 0x76,0xF8, 0xF3,0x06, 0x76,0x48, 0xF3,0x05, 0x77,0x00, 0xF7,0x02,
-0x00,0x00, 0x20,0x3A, 0x00,0x00, 0xE6,0x01, 0x13,0x15, 0xF3,0x06, 0x74,0x48, 0xF7,0x04,
-0x75,0xEC, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x01, 0x0E,0xD8, 0x00,0x00,
-0x00,0x01, 0xF7,0x04, 0x75,0xF0, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x01,
-0x0E,0xED, 0x00,0x00, 0x00,0x01, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x16,0x40, 0x97,0x93,
-0xFF,0xFC, 0xE0,0x01, 0x13,0x18, 0x00,0x00, 0x00,0x01, 0xF6,0x84, 0x76,0x60, 0x00,0x00,
-0x00,0x01, 0x87,0x36, 0x00,0x08, 0x00,0x00, 0x00,0x01, 0x70,0x3A, 0xFF,0xE1, 0xE6,0x01,
-0x0F,0x21, 0xF4,0x82, 0x00,0x00, 0x96,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x00,0xBC, 0x97,0x93, 0xFF,0xFC, 0xE0,0x01, 0x13,0x14, 0xF3,0x06, 0x75,0x60, 0xC3,0xB4,
-0x00,0x00, 0x84,0x1E, 0x00,0x10, 0xF6,0x84, 0x4A,0xA0, 0x23,0x14, 0x00,0x20, 0x93,0x16,
-0xFF,0xC4, 0x94,0x16, 0xFF,0xE0, 0x96,0x96, 0xFF,0xD4, 0x85,0x1E, 0x00,0x14, 0xF7,0x04,
-0x4A,0x9C, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xEC,0x01, 0x10,0x0C, 0x95,0x16,
-0xFF,0xE4, 0x77,0x35, 0x00,0x01, 0xC7,0x38, 0x68,0x00, 0x77,0x39, 0x00,0x02, 0xF3,0x06,
-0x4A,0x98, 0xC6,0xB8, 0x30,0x00, 0x06,0xB4, 0x00,0x0C, 0xC5,0x84, 0x00,0x00, 0x87,0x36,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0xC0,0x3A, 0x42,0x00, 0xE6,0x01, 0x0F,0x9C, 0xC6,0x24,
-0x00,0x00, 0x87,0x36, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0xC0,0x3A, 0x52,0x00, 0xE6,0x01,
-0x0F,0xA0, 0x20,0x32, 0x00,0x00, 0xF6,0x02, 0x00,0x01, 0x20,0x32, 0x00,0x00, 0xE6,0x01,
-0x0F,0xAD, 0x00,0x00, 0x00,0x01, 0xF5,0x82, 0x00,0x00, 0x86,0x36, 0x00,0x00, 0x87,0x16,
-0xFF,0xE0, 0x00,0x00, 0x00,0x01, 0xC0,0x32, 0x72,0x00, 0xE2,0x01, 0x0F,0xE8, 0xF5,0x02,
-0x00,0x00, 0xC0,0x32, 0x72,0x00, 0xE6,0x01, 0x0F,0xF0, 0x20,0x2A, 0x00,0x00, 0x86,0xB6,
-0x00,0x04, 0x87,0x16, 0xFF,0xE4, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE2,0x01,
-0x0F,0xF1, 0x20,0x2A, 0x00,0x00, 0xF5,0x02, 0x00,0x01, 0x20,0x2A, 0x00,0x00, 0xE6,0x01,
-0x10,0x01, 0x20,0x2E, 0x00,0x00, 0xF5,0x82, 0x00,0x01, 0x20,0x2E, 0x00,0x00, 0xE6,0x01,
-0x10,0x10, 0x20,0x26, 0x00,0x00, 0xF4,0x82, 0x00,0x01, 0x20,0x26, 0x00,0x00, 0xE6,0x01,
-0x10,0x45, 0xF6,0x02, 0x00,0x01, 0x87,0x16, 0xFF,0xD4, 0xF3,0x06, 0x4A,0x98, 0x76,0xB9,
-0x00,0x01, 0xC6,0xB4, 0x70,0x00, 0x76,0xB5, 0x00,0x02, 0xC6,0xB4, 0x30,0x00, 0x06,0xB4,
-0x00,0x14, 0x86,0xB6, 0x00,0x00, 0x97,0x16, 0xFF,0xD8, 0xE0,0x01, 0x10,0xB8, 0x96,0x96,
-0xFF,0xDC, 0x27,0x14, 0x00,0x2C, 0x97,0x13, 0xFF,0xFC, 0x83,0x16, 0xFF,0xC4, 0x00,0x00,
-0x00,0x01, 0x93,0x13, 0xFF,0xFC, 0xF3,0x06, 0x4A,0x98, 0x93,0x13, 0xFF,0xFC, 0x93,0x96,
-0xFF,0xCC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x25,0x68, 0x97,0x93, 0xFF,0xFC, 0x83,0x96,
-0xFF,0xCC, 0x20,0x22, 0x00,0x00, 0xE6,0x01, 0x10,0xB5, 0xF6,0x02, 0x00,0x01, 0x87,0x16,
-0xFF,0xD4, 0xF3,0x06, 0x4A,0x98, 0x76,0xB9, 0x00,0x01, 0xC6,0xB4, 0x70,0x00, 0x76,0xB5,
-0x00,0x02, 0xC6,0xB4, 0x30,0x00, 0x06,0xB4, 0x00,0x14, 0x86,0xB6, 0x00,0x00, 0x97,0x16,
-0xFF,0xD8, 0x96,0x96, 0xFF,0xDC, 0xF7,0x05, 0x4A,0xA0, 0xE0,0x01, 0x10,0xBC, 0x20,0x32,
-0x00,0x00, 0xF6,0x02, 0x00,0x00, 0x20,0x32, 0x00,0x00, 0xE6,0x01, 0x10,0xCC, 0xF4,0x82,
-0x00,0x01, 0xE0,0x01, 0x11,0x24, 0xF4,0x82, 0x00,0x00, 0x86,0x96, 0xFF,0xD8, 0x00,0x00,
-0x00,0x01, 0x77,0x35, 0x00,0x02, 0xC7,0x38, 0x68,0x00, 0x77,0x39, 0x00,0x02, 0xF6,0x86,
-0x42,0xC8, 0xA6,0x3A, 0x68,0x02, 0xC7,0x38, 0x68,0x00, 0x75,0x39, 0x00,0x1E, 0x75,0x28,
-0xFF,0xE5, 0x05,0xB8, 0x00,0x02, 0x86,0xAE, 0x00,0x00, 0x07,0x38, 0x00,0x04, 0x97,0x16,
-0xFF,0xEC, 0xC6,0x30, 0x57,0xC0, 0x76,0x30, 0xFF,0xF0, 0x96,0x16, 0xFF,0xF4, 0x75,0xAD,
-0x00,0x1E, 0x75,0xAC, 0xFF,0xE5, 0xC6,0xB4, 0x5F,0xC0, 0x76,0xB4, 0xFF,0xF0, 0x96,0x96,
-0xFF,0xF0, 0x20,0x26, 0x00,0x00, 0xE6,0x01, 0x11,0x38, 0xF5,0x82, 0x00,0x00, 0xE0,0x01,
-0x11,0xCC, 0xF6,0x02, 0x00,0x00, 0x86,0x96, 0xFF,0xF0, 0x00,0x00, 0x00,0x01, 0xC7,0x34,
-0x68,0x00, 0xC4,0x9C, 0x72,0x00, 0xC0,0x2E, 0x6A,0x00, 0xEC,0x01, 0x11,0x98, 0xC5,0x24,
-0x00,0x00, 0xC6,0x2C, 0x00,0x00, 0x87,0x16, 0xFF,0xEC, 0x00,0x00, 0x00,0x01, 0xA6,0xB2,
-0x70,0x02, 0x05,0xAC, 0x00,0x01, 0xC7,0x30, 0x70,0x00, 0x77,0x39, 0x00,0x1E, 0x77,0x38,
-0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB4, 0xFF,0xF0, 0xF6,0xAB, 0x28,0x00, 0x05,0x28,
-0x00,0x02, 0x87,0x16, 0xFF,0xF0, 0x00,0x00, 0x00,0x01, 0xC0,0x2E, 0x72,0x00, 0xEC,0x01,
-0x11,0x59, 0x06,0x30, 0x00,0x02, 0xF3,0x02, 0x00,0x01, 0xF3,0x05, 0x76,0xF4, 0xF6,0x02,
-0x00,0x01, 0x87,0x16, 0xFF,0xF0, 0x86,0x9E, 0x00,0x04, 0xC7,0x38, 0x70,0x00, 0xC7,0x38,
-0x48,0x00, 0xC6,0xB4, 0x70,0x00, 0x87,0x16, 0xFF,0xF4, 0x06,0xB4, 0x00,0x20, 0x97,0x02,
-0xFF,0x6C, 0x94,0x82, 0xFF,0x50, 0x96,0x82, 0xFF,0x58, 0x20,0x32, 0x00,0x00, 0xE6,0x01,
-0x13,0x10, 0x00,0x00, 0x00,0x01, 0xF7,0x04, 0x76,0x5C, 0xF5,0x84, 0x76,0xF8, 0x07,0x38,
-0x00,0x01, 0xF7,0x05, 0x76,0x5C, 0xF7,0x04, 0x76,0x5C, 0x20,0x2E, 0x00,0x21, 0xE2,0x01,
-0x12,0x30, 0xF6,0x86, 0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38,
-0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0x20,0x32, 0x00,0x44, 0xE6,0x01,
-0x12,0x1C, 0xB5,0xBA, 0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF3,0x02, 0x00,0x22, 0xF3,0x05,
-0x76,0xF8, 0xF3,0x04, 0x77,0x00, 0xE0,0x01, 0x12,0x34, 0xF3,0x05, 0x76,0xFC, 0xF0,0x05,
-0x76,0xFC, 0xF7,0x04, 0x75,0xF8, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x01,
-0x12,0x71, 0xF6,0x86, 0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38,
-0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF3,0x02, 0x00,0x0F, 0x20,0x32,
-0x00,0x44, 0xE6,0x01, 0x12,0x70, 0xB3,0x3A, 0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF7,0x04,
-0x76,0x08, 0xF6,0x84, 0x76,0x00, 0x07,0x38, 0x00,0x01, 0xC0,0x3A, 0x6A,0x00, 0xE6,0x01,
-0x12,0x8C, 0xF7,0x05, 0x76,0x08, 0xF0,0x05, 0x76,0x08, 0xF6,0x84, 0x76,0x08, 0xF7,0x04,
-0x76,0x04, 0xF0,0x05, 0x75,0xF8, 0xF6,0x06, 0x75,0xF8, 0xC0,0x36, 0x72,0x00, 0x47,0x0C,
-0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x01, 0x12,0xB9, 0xF7,0x05, 0x75,0xFC, 0xE0,0x01,
-0x12,0xC8, 0xF7,0x02, 0x00,0x00, 0x77,0x35, 0x00,0x02, 0xC7,0x38, 0x60,0x00, 0x87,0x3A,
-0x00,0x18, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x01, 0x13,0x09, 0xF7,0x05,
-0x76,0x60, 0xF7,0x04, 0x2D,0x38, 0xF3,0x06, 0x72,0xA4, 0xF3,0x05, 0x76,0x48, 0xF6,0x86,
-0x2C,0x28, 0x06,0x38, 0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF3,0x02,
-0x00,0x0E, 0x20,0x32, 0x00,0x44, 0xE6,0x01, 0x13,0x18, 0xB3,0x3A, 0x68,0x02, 0xE0,0x01,
-0x13,0x18, 0xF0,0x05, 0x2D,0x38, 0xE0,0x01, 0x13,0x14, 0xF3,0x06, 0x72,0x18, 0xF3,0x06,
-0x73,0x30, 0xF3,0x05, 0x76,0x48, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0xF7,0x04, 0x76,0x60, 0x00,0x00, 0x00,0x01, 0x86,0xBA, 0x00,0x04, 0xF7,0x04,
-0x76,0x54, 0x00,0x00, 0x00,0x01, 0xC7,0x38, 0x68,0x00, 0xF7,0x05, 0x76,0x54, 0xF7,0x04,
-0x76,0x58, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0xF7,0x05, 0x76,0x58, 0xF7,0x04,
-0x75,0xF8, 0xF6,0x84, 0x76,0x58, 0x20,0x3A, 0x00,0x00, 0xE6,0x01, 0x13,0x9D, 0xF6,0x86,
-0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38, 0x00,0x01, 0xF6,0x05,
-0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF5,0x02, 0x00,0x0F, 0x20,0x32, 0x00,0x44, 0xE6,0x01,
-0x13,0x9C, 0xB5,0x3A, 0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF7,0x04, 0x76,0x08, 0xF6,0x84,
-0x76,0x00, 0x07,0x38, 0x00,0x01, 0xC0,0x3A, 0x6A,0x00, 0xE6,0x01, 0x13,0xB8, 0xF7,0x05,
-0x76,0x08, 0xF0,0x05, 0x76,0x08, 0xF7,0x04, 0x76,0x08, 0xF6,0x84, 0x76,0x04, 0xF0,0x05,
-0x75,0xF8, 0xF5,0x84, 0x76,0xF8, 0xC0,0x3A, 0x6A,0x00, 0x47,0x0C, 0x00,0x01, 0x20,0x2E,
-0x00,0x21, 0xE2,0x01, 0x14,0x14, 0xF7,0x05, 0x75,0xFC, 0xF7,0x04, 0x2D,0x38, 0xF6,0x86,
-0x2C,0x28, 0x06,0x38, 0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0x20,0x32,
-0x00,0x44, 0xE6,0x01, 0x14,0x00, 0xB5,0xBA, 0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF5,0x02,
-0x00,0x22, 0xF5,0x05, 0x76,0xF8, 0xF5,0x04, 0x77,0x00, 0xE0,0x01, 0x14,0x18, 0xF5,0x05,
-0x76,0xFC, 0xF0,0x05, 0x76,0xFC, 0xF7,0x04, 0x75,0xEC, 0xF5,0x06, 0x72,0x18, 0x20,0x3A,
-0x00,0x00, 0xE6,0x01, 0x14,0x40, 0xF5,0x05, 0x76,0x48, 0xF7,0x04, 0x75,0xF0, 0x00,0x00,
-0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x01, 0x14,0x55, 0x00,0x00, 0x00,0x01, 0x07,0x88,
-0x00,0x08, 0xE0,0x01, 0x15,0xD0, 0x97,0x93, 0xFF,0xFC, 0xE0,0x01, 0x14,0xC4, 0x00,0x00,
-0x00,0x01, 0xF7,0x04, 0x75,0xFC, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x01,
-0x14,0x71, 0xF6,0x86, 0x75,0xF8, 0xE0,0x01, 0x14,0x88, 0xF7,0x02, 0x00,0x00, 0xF7,0x04,
-0x76,0x08, 0x00,0x00, 0x00,0x01, 0x77,0x39, 0x00,0x02, 0xC7,0x38, 0x68,0x00, 0x87,0x3A,
-0x00,0x18, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x01, 0x14,0xC5, 0xF7,0x05,
-0x76,0x60, 0xF7,0x04, 0x2D,0x38, 0xF6,0x86, 0x2C,0x28, 0x06,0x38, 0x00,0x01, 0xF6,0x05,
-0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF5,0x02, 0x00,0x0E, 0x20,0x32, 0x00,0x44, 0xE6,0x01,
-0x14,0xBC, 0xB5,0x3A, 0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF5,0x06, 0x72,0xA4, 0xF5,0x05,
-0x76,0x48, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF7,0x04,
-0x75,0xEC, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x01, 0x15,0x40, 0xF4,0x02,
-0x00,0x00, 0x86,0x96, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0xF6,0x85, 0x75,0xEC, 0x86,0x96,
-0x00,0x08, 0x00,0x00, 0x00,0x01, 0xF6,0x85, 0x7B,0x38, 0x86,0x96, 0x00,0x00, 0xF7,0x04,
-0x76,0x48, 0xF6,0x85, 0x7B,0x30, 0xF6,0x86, 0x72,0x18, 0xC0,0x3A, 0x6A,0x00, 0x47,0x0C,
-0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x01, 0x15,0x41, 0xF4,0x02, 0x00,0x01, 0x07,0x88,
-0x00,0x08, 0xE0,0x01, 0x15,0xD0, 0x97,0x93, 0xFF,0xFC, 0xF4,0x02, 0x00,0x01, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x0C, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF7,0x04, 0x75,0xF4, 0x00,0x00,
-0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x01, 0x15,0xBC, 0xF4,0x02, 0x00,0x00, 0x86,0x96,
-0x00,0x04, 0x00,0x00, 0x00,0x01, 0xF6,0x85, 0x75,0xF0, 0x86,0x96, 0x00,0x08, 0x00,0x00,
-0x00,0x01, 0xF6,0x85, 0x7B,0x48, 0x86,0x96, 0x00,0x00, 0xF7,0x04, 0x76,0x48, 0xF6,0x85,
-0x7B,0x40, 0xF6,0x86, 0x72,0x18, 0xC0,0x3A, 0x6A,0x00, 0x47,0x0C, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x01, 0x15,0xBD, 0xF4,0x02, 0x00,0x01, 0x07,0x88, 0x00,0x08, 0xE0,0x01,
-0x15,0xD0, 0x97,0x93, 0xFF,0xFC, 0xF4,0x02, 0x00,0x01, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x0C, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF7,0x04, 0x76,0xFC, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x01, 0x15,0xFC, 0xF6,0x82, 0x00,0x10, 0xF6,0x86, 0x76,0x48, 0xF6,0x85,
-0x76,0xFC, 0xE0,0x01, 0x16,0x0C, 0xF7,0x02, 0x00,0x01, 0xF6,0x85, 0x76,0xF8, 0xF6,0x86,
-0x76,0x48, 0xF6,0x85, 0x77,0x00, 0xF7,0x02, 0x00,0x00, 0x20,0x3A, 0x00,0x00, 0xE6,0x01,
-0x16,0x20, 0xF6,0x86, 0x74,0xD4, 0xE0,0x01, 0x16,0x2C, 0xF6,0x85, 0x76,0x48, 0x07,0x88,
-0x00,0x08, 0xE0,0x01, 0x16,0x40, 0x97,0x93, 0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF6,0x04, 0x75,0xF0, 0x00,0x00, 0x00,0x01, 0x20,0x32,
-0x00,0x00, 0xE6,0x01, 0x16,0x85, 0xF7,0x02, 0x00,0x01, 0xF7,0x05, 0x75,0xF4, 0xF6,0x84,
-0x7B,0x48, 0xF7,0x05, 0x76,0xF4, 0xF7,0x04, 0x7B,0x40, 0xC6,0xB0, 0x68,0x00, 0x26,0xB4,
-0x00,0x04, 0x97,0x02, 0xFF,0x6C, 0x96,0x02, 0xFF,0x50, 0xE0,0x01, 0x16,0xA8, 0x00,0x00,
-0x00,0x01, 0xF7,0x04, 0x75,0xEC, 0xF6,0x84, 0x7B,0x38, 0xF5,0x82, 0x00,0x01, 0xF5,0x85,
-0x76,0xF4, 0xF6,0x04, 0x7B,0x30, 0xC6,0xB8, 0x68,0x00, 0x26,0xB4, 0x00,0x04, 0x96,0x02,
-0xFF,0x6C, 0x97,0x02, 0xFF,0x50, 0x96,0x82, 0xFF,0x58, 0xF5,0x86, 0x73,0xBC, 0xF5,0x85,
-0x76,0x48, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF7,0x04,
-0x7B,0x28, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0xF7,0x05, 0x7B,0x28, 0xF7,0x04,
-0x75,0xF4, 0xF6,0x84, 0x7B,0x28, 0x20,0x3A, 0x00,0x00, 0xE6,0x01, 0x17,0x21, 0x00,0x00,
-0x00,0x01, 0xF0,0x05, 0x75,0xF4, 0xF7,0x04, 0x75,0xEC, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x01, 0x17,0x25, 0xF0,0x05, 0x75,0xF0, 0x07,0x88, 0x00,0x08, 0xE0,0x01,
-0x16,0x40, 0x97,0x93, 0xFF,0xFC, 0xE0,0x01, 0x17,0xEC, 0x00,0x00, 0x00,0x01, 0xF0,0x05,
-0x75,0xEC, 0xF7,0x04, 0x75,0xFC, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x01,
-0x17,0x41, 0xF6,0x86, 0x75,0xF8, 0xE0,0x01, 0x17,0x58, 0xF7,0x02, 0x00,0x00, 0xF7,0x04,
-0x76,0x08, 0x00,0x00, 0x00,0x01, 0x77,0x39, 0x00,0x02, 0xC7,0x38, 0x68,0x00, 0x87,0x3A,
-0x00,0x18, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x01, 0x17,0x95, 0xF7,0x05,
-0x76,0x60, 0xF7,0x04, 0x2D,0x38, 0xF6,0x86, 0x2C,0x28, 0x06,0x38, 0x00,0x01, 0xF6,0x05,
-0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF5,0x02, 0x00,0x0E, 0x20,0x32, 0x00,0x44, 0xE6,0x01,
-0x17,0x8C, 0xB5,0x3A, 0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xE0,0x01, 0x17,0x98, 0xF5,0x06,
-0x72,0xA4, 0xF5,0x06, 0x72,0x18, 0xF5,0x05, 0x76,0x48, 0xF5,0x84, 0x76,0xF8, 0x00,0x00,
-0x00,0x01, 0x20,0x2E, 0x00,0x21, 0xE2,0x01, 0x17,0xE8, 0xF6,0x86, 0x2C,0x28, 0xF7,0x04,
-0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38, 0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39,
-0x00,0x02, 0x20,0x32, 0x00,0x44, 0xE6,0x01, 0x17,0xD4, 0xB5,0xBA, 0x68,0x02, 0xF0,0x05,
-0x2D,0x38, 0xF5,0x02, 0x00,0x22, 0xF5,0x05, 0x76,0xF8, 0xF5,0x04, 0x77,0x00, 0xE0,0x01,
-0x17,0xEC, 0xF5,0x05, 0x76,0xFC, 0xF0,0x05, 0x76,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0x38, 0xF7,0x04, 0x75,0xEC, 0x00,0x00,
-0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x01, 0x18,0x34, 0x00,0x00, 0x00,0x01, 0xF7,0x04,
-0x75,0xF0, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x01, 0x18,0x49, 0x00,0x00,
-0x00,0x01, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x16,0x40, 0x97,0x93, 0xFF,0xFC, 0xE0,0x01,
-0x1C,0x74, 0x00,0x00, 0x00,0x01, 0xF6,0x84, 0x76,0x60, 0x00,0x00, 0x00,0x01, 0x87,0x36,
-0x00,0x08, 0x00,0x00, 0x00,0x01, 0x70,0x3A, 0xFF,0xE1, 0xE6,0x01, 0x18,0x7D, 0xF4,0x82,
-0x00,0x00, 0x96,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x00,0xBC, 0x97,0x93,
-0xFF,0xFC, 0xE0,0x01, 0x1C,0x70, 0xF3,0x06, 0x75,0x60, 0xC3,0xB4, 0x00,0x00, 0x84,0x1E,
-0x00,0x10, 0xF6,0x84, 0x4A,0xA0, 0x23,0x14, 0x00,0x20, 0x93,0x16, 0xFF,0xC4, 0x94,0x16,
-0xFF,0xE0, 0x96,0x96, 0xFF,0xD4, 0x85,0x1E, 0x00,0x14, 0xF7,0x04, 0x4A,0x9C, 0x00,0x00,
-0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xEC,0x01, 0x19,0x68, 0x95,0x16, 0xFF,0xE4, 0x77,0x35,
-0x00,0x01, 0xC7,0x38, 0x68,0x00, 0x77,0x39, 0x00,0x02, 0xF3,0x06, 0x4A,0x98, 0xC6,0xB8,
-0x30,0x00, 0x06,0xB4, 0x00,0x0C, 0xC5,0x84, 0x00,0x00, 0x87,0x36, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0xC0,0x3A, 0x42,0x00, 0xE6,0x01, 0x18,0xF8, 0xC6,0x24, 0x00,0x00, 0x87,0x36,
-0x00,0x04, 0x00,0x00, 0x00,0x01, 0xC0,0x3A, 0x52,0x00, 0xE6,0x01, 0x18,0xFC, 0x20,0x32,
-0x00,0x00, 0xF6,0x02, 0x00,0x01, 0x20,0x32, 0x00,0x00, 0xE6,0x01, 0x19,0x09, 0x00,0x00,
-0x00,0x01, 0xF5,0x82, 0x00,0x00, 0x86,0x36, 0x00,0x00, 0x87,0x16, 0xFF,0xE0, 0x00,0x00,
-0x00,0x01, 0xC0,0x32, 0x72,0x00, 0xE2,0x01, 0x19,0x44, 0xF5,0x02, 0x00,0x00, 0xC0,0x32,
-0x72,0x00, 0xE6,0x01, 0x19,0x4C, 0x20,0x2A, 0x00,0x00, 0x86,0xB6, 0x00,0x04, 0x87,0x16,
-0xFF,0xE4, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE2,0x01, 0x19,0x4D, 0x20,0x2A,
-0x00,0x00, 0xF5,0x02, 0x00,0x01, 0x20,0x2A, 0x00,0x00, 0xE6,0x01, 0x19,0x5D, 0x20,0x2E,
-0x00,0x00, 0xF5,0x82, 0x00,0x01, 0x20,0x2E, 0x00,0x00, 0xE6,0x01, 0x19,0x6C, 0x20,0x26,
-0x00,0x00, 0xF4,0x82, 0x00,0x01, 0x20,0x26, 0x00,0x00, 0xE6,0x01, 0x19,0xA1, 0xF6,0x02,
-0x00,0x01, 0x87,0x16, 0xFF,0xD4, 0xF3,0x06, 0x4A,0x98, 0x76,0xB9, 0x00,0x01, 0xC6,0xB4,
-0x70,0x00, 0x76,0xB5, 0x00,0x02, 0xC6,0xB4, 0x30,0x00, 0x06,0xB4, 0x00,0x14, 0x86,0xB6,
-0x00,0x00, 0x97,0x16, 0xFF,0xD8, 0xE0,0x01, 0x1A,0x14, 0x96,0x96, 0xFF,0xDC, 0x27,0x14,
-0x00,0x2C, 0x97,0x13, 0xFF,0xFC, 0x83,0x16, 0xFF,0xC4, 0x00,0x00, 0x00,0x01, 0x93,0x13,
-0xFF,0xFC, 0xF3,0x06, 0x4A,0x98, 0x93,0x13, 0xFF,0xFC, 0x93,0x96, 0xFF,0xCC, 0x07,0x88,
-0x00,0x08, 0xE0,0x01, 0x25,0x68, 0x97,0x93, 0xFF,0xFC, 0x83,0x96, 0xFF,0xCC, 0x20,0x22,
-0x00,0x00, 0xE6,0x01, 0x1A,0x11, 0xF6,0x02, 0x00,0x01, 0x87,0x16, 0xFF,0xD4, 0xF3,0x06,
-0x4A,0x98, 0x76,0xB9, 0x00,0x01, 0xC6,0xB4, 0x70,0x00, 0x76,0xB5, 0x00,0x02, 0xC6,0xB4,
-0x30,0x00, 0x06,0xB4, 0x00,0x14, 0x86,0xB6, 0x00,0x00, 0x97,0x16, 0xFF,0xD8, 0x96,0x96,
-0xFF,0xDC, 0xF7,0x05, 0x4A,0xA0, 0xE0,0x01, 0x1A,0x18, 0x20,0x32, 0x00,0x00, 0xF6,0x02,
-0x00,0x00, 0x20,0x32, 0x00,0x00, 0xE6,0x01, 0x1A,0x28, 0xF4,0x82, 0x00,0x01, 0xE0,0x01,
-0x1A,0x80, 0xF4,0x82, 0x00,0x00, 0x86,0x96, 0xFF,0xD8, 0x00,0x00, 0x00,0x01, 0x77,0x35,
-0x00,0x02, 0xC7,0x38, 0x68,0x00, 0x77,0x39, 0x00,0x02, 0xF6,0x86, 0x42,0xC8, 0xA6,0x3A,
-0x68,0x02, 0xC7,0x38, 0x68,0x00, 0x75,0x39, 0x00,0x1E, 0x75,0x28, 0xFF,0xE5, 0x05,0xB8,
-0x00,0x02, 0x86,0xAE, 0x00,0x00, 0x07,0x38, 0x00,0x04, 0x97,0x16, 0xFF,0xEC, 0xC6,0x30,
-0x57,0xC0, 0x76,0x30, 0xFF,0xF0, 0x96,0x16, 0xFF,0xF4, 0x75,0xAD, 0x00,0x1E, 0x75,0xAC,
-0xFF,0xE5, 0xC6,0xB4, 0x5F,0xC0, 0x76,0xB4, 0xFF,0xF0, 0x96,0x96, 0xFF,0xF0, 0x20,0x26,
-0x00,0x00, 0xE6,0x01, 0x1A,0x94, 0xF5,0x82, 0x00,0x00, 0xE0,0x01, 0x1B,0x28, 0xF6,0x02,
-0x00,0x00, 0x86,0x96, 0xFF,0xF0, 0x00,0x00, 0x00,0x01, 0xC7,0x34, 0x68,0x00, 0xC4,0x9C,
-0x72,0x00, 0xC0,0x2E, 0x6A,0x00, 0xEC,0x01, 0x1A,0xF4, 0xC5,0x24, 0x00,0x00, 0xC6,0x2C,
-0x00,0x00, 0x87,0x16, 0xFF,0xEC, 0x00,0x00, 0x00,0x01, 0xA6,0xB2, 0x70,0x02, 0x05,0xAC,
-0x00,0x01, 0xC7,0x30, 0x70,0x00, 0x77,0x39, 0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4,
-0x77,0xC0, 0x76,0xB4, 0xFF,0xF0, 0xF6,0xAB, 0x28,0x00, 0x05,0x28, 0x00,0x02, 0x87,0x16,
-0xFF,0xF0, 0x00,0x00, 0x00,0x01, 0xC0,0x2E, 0x72,0x00, 0xEC,0x01, 0x1A,0xB5, 0x06,0x30,
-0x00,0x02, 0xF3,0x02, 0x00,0x01, 0xF3,0x05, 0x76,0xF4, 0xF6,0x02, 0x00,0x01, 0x87,0x16,
-0xFF,0xF0, 0x86,0x9E, 0x00,0x04, 0xC7,0x38, 0x70,0x00, 0xC7,0x38, 0x48,0x00, 0xC6,0xB4,
-0x70,0x00, 0x87,0x16, 0xFF,0xF4, 0x06,0xB4, 0x00,0x20, 0x97,0x02, 0xFF,0x6C, 0x94,0x82,
-0xFF,0x50, 0x96,0x82, 0xFF,0x58, 0x20,0x32, 0x00,0x00, 0xE6,0x01, 0x1C,0x6C, 0x00,0x00,
-0x00,0x01, 0xF7,0x04, 0x76,0x5C, 0xF5,0x84, 0x76,0xF8, 0x07,0x38, 0x00,0x01, 0xF7,0x05,
-0x76,0x5C, 0xF7,0x04, 0x76,0x5C, 0x20,0x2E, 0x00,0x21, 0xE2,0x01, 0x1B,0x8C, 0xF6,0x86,
-0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38, 0x00,0x01, 0xF6,0x05,
-0x2D,0x38, 0x77,0x39, 0x00,0x02, 0x20,0x32, 0x00,0x44, 0xE6,0x01, 0x1B,0x78, 0xB5,0xBA,
-0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF3,0x02, 0x00,0x22, 0xF3,0x05, 0x76,0xF8, 0xF3,0x04,
-0x77,0x00, 0xE0,0x01, 0x1B,0x90, 0xF3,0x05, 0x76,0xFC, 0xF0,0x05, 0x76,0xFC, 0xF7,0x04,
-0x75,0xF8, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x01, 0x1B,0xCD, 0xF6,0x86,
-0x2C,0x28, 0xF7,0x04, 0x2D,0x38, 0x00,0x00, 0x00,0x01, 0x06,0x38, 0x00,0x01, 0xF6,0x05,
-0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF3,0x02, 0x00,0x0F, 0x20,0x32, 0x00,0x44, 0xE6,0x01,
-0x1B,0xCC, 0xB3,0x3A, 0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0xF7,0x04, 0x76,0x08, 0xF6,0x84,
-0x76,0x00, 0x07,0x38, 0x00,0x01, 0xC0,0x3A, 0x6A,0x00, 0xE6,0x01, 0x1B,0xE8, 0xF7,0x05,
-0x76,0x08, 0xF0,0x05, 0x76,0x08, 0xF6,0x84, 0x76,0x08, 0xF7,0x04, 0x76,0x04, 0xF0,0x05,
-0x75,0xF8, 0xF6,0x06, 0x75,0xF8, 0xC0,0x36, 0x72,0x00, 0x47,0x0C, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x01, 0x1C,0x15, 0xF7,0x05, 0x75,0xFC, 0xE0,0x01, 0x1C,0x24, 0xF7,0x02,
-0x00,0x00, 0x77,0x35, 0x00,0x02, 0xC7,0x38, 0x60,0x00, 0x87,0x3A, 0x00,0x18, 0x00,0x00,
-0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x01, 0x1C,0x65, 0xF7,0x05, 0x76,0x60, 0xF7,0x04,
-0x2D,0x38, 0xF3,0x06, 0x72,0xA4, 0xF3,0x05, 0x76,0x48, 0xF6,0x86, 0x2C,0x28, 0x06,0x38,
-0x00,0x01, 0xF6,0x05, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0xF3,0x02, 0x00,0x0E, 0x20,0x32,
-0x00,0x44, 0xE6,0x01, 0x1C,0x74, 0xB3,0x3A, 0x68,0x02, 0xE0,0x01, 0x1C,0x74, 0xF0,0x05,
-0x2D,0x38, 0xE0,0x01, 0x1C,0x70, 0xF3,0x06, 0x72,0x18, 0xF3,0x06, 0x73,0x30, 0xF3,0x05,
-0x76,0x48, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF7,0x06,
-0x76,0x48, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06, 0x72,0x18, 0x97,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x14,0xF4, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06, 0x76,0x48, 0x97,0x13,
-0xFF,0xFC, 0xF7,0x06, 0x72,0xA4, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x14,0xF4, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06, 0x76,0x48, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06,
-0x73,0x30, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x14,0xF4, 0x97,0x93,
-0xFF,0xFC, 0xF7,0x06, 0x76,0x48, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06, 0x73,0xBC, 0x97,0x13,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x14,0xF4, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06,
-0x76,0x48, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06, 0x74,0x48, 0x97,0x13, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x14,0xF4, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06, 0x76,0x48, 0x97,0x13,
-0xFF,0xFC, 0xF7,0x06, 0x74,0xD4, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x14,0xF4, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06, 0x76,0x48, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06,
-0x75,0x60, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x14,0xF4, 0x97,0x93,
-0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF6,0x86,
-0x76,0x68, 0x96,0x93, 0xFF,0xFC, 0xF6,0x86, 0x77,0x04, 0x96,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x15,0x48, 0x97,0x93, 0xFF,0xFC, 0xF6,0x86, 0x1D,0xD4, 0x96,0x93,
-0xFF,0xFC, 0x90,0x13, 0xFF,0xFC, 0xF6,0x86, 0x76,0x68, 0x96,0x93, 0xFF,0xFC, 0x07,0x88,
-0x00,0x08, 0xE0,0x00, 0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF7,0x02, 0x00,0x22, 0xF7,0x05,
-0x76,0xF4, 0xF7,0x05, 0x76,0xF8, 0xF0,0x05, 0x76,0xFC, 0xF0,0x05, 0x77,0x00, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF7,0x04, 0x76,0xF4, 0x00,0x00,
-0x00,0x01, 0x20,0x3A, 0x00,0x22, 0xE6,0x01, 0x1E,0x01, 0x00,0x00, 0x00,0x01, 0x97,0x13,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x15,0x84, 0x97,0x93, 0xFF,0xFC, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF7,0x06, 0x77,0x04, 0x97,0x13,
-0xFF,0xFC, 0xF7,0x06, 0x76,0x68, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x14,0xF4, 0x97,0x93, 0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x00,0x00, 0x00,0x00, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF6,0x86, 0x78,0x10, 0x96,0x93, 0xFF,0xFC, 0xF6,0x86,
-0x78,0xA4, 0x96,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x15,0x48, 0x97,0x93,
-0xFF,0xFC, 0xF6,0x86, 0x1F,0xBC, 0x96,0x93, 0xFF,0xFC, 0xF6,0x82, 0x00,0x14, 0x96,0x93,
-0xFF,0xFC, 0xF6,0x86, 0x78,0x10, 0x96,0x93, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0xF0,0x05, 0x78,0x9C, 0x90,0x02, 0xFF,0x34, 0xF7,0x02,
-0x7F,0xFF, 0xF7,0x05, 0x78,0xA0, 0x97,0x02, 0xFF,0x30, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF6,0x04, 0x78,0x9C, 0x87,0x16, 0x00,0x00, 0x84,0x96,
-0x00,0x08, 0xF5,0x86, 0x77,0x10, 0x87,0x3A, 0x00,0x08, 0xF6,0x86, 0x21,0x8C, 0x75,0x39,
-0x00,0x04, 0x77,0x39, 0x00,0x02, 0xA7,0x3A, 0x68,0x02, 0x20,0x32, 0x00,0x00, 0xC6,0xA8,
-0x58,0x00, 0x84,0x16, 0x00,0x04, 0xC6,0x30, 0x75,0x80, 0x94,0x36, 0x00,0x04, 0xB4,0xAA,
-0x58,0x02, 0x87,0x36, 0x00,0x08, 0xF6,0x05, 0x78,0x9C, 0x07,0x38, 0x00,0x01, 0xE6,0x01,
-0x1F,0x2D, 0x97,0x36, 0x00,0x08, 0x87,0x02, 0xFF,0x30, 0x00,0x00, 0x00,0x01, 0xC0,0x3A,
-0x4A,0x00, 0xEE,0x01, 0x1F,0x35, 0x00,0x00, 0x00,0x01, 0xF4,0x85, 0x78,0xA0, 0x94,0x82,
-0xFF,0x30, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x0C, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x85,0x96,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x87,0x2E, 0x00,0x08, 0xF6,0x86, 0x21,0x8C, 0x77,0x39,
-0x00,0x02, 0xA7,0x3A, 0x68,0x02, 0xF6,0x04, 0x78,0x9C, 0xC7,0x04, 0x76,0x00, 0x86,0xAE,
-0x00,0x08, 0xC6,0x30, 0x74,0x00, 0xF7,0x06, 0x77,0x10, 0xF6,0x05, 0x78,0x9C, 0x76,0xB5,
-0x00,0x04, 0xC6,0xB4, 0x70,0x00, 0x87,0x36, 0x00,0x08, 0x20,0x32, 0x00,0x00, 0x07,0x38,
-0x00,0x01, 0xE6,0x01, 0x1F,0xA8, 0x97,0x36, 0x00,0x08, 0xF7,0x02, 0x7F,0xFF, 0xF7,0x05,
-0x78,0xA0, 0x97,0x02, 0xFF,0x30, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x04, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0x22,0x10, 0x00,0x08, 0xF7,0x04, 0x78,0x9C, 0x00,0x00, 0x00,0x01, 0x20,0x3A,
-0x00,0x00, 0xE6,0x01, 0x20,0xD1, 0xF6,0x02, 0x7F,0xFF, 0x96,0x16, 0xFF,0xF4, 0xF6,0x84,
-0x2D,0x40, 0xF6,0x06, 0x77,0x10, 0x26,0xB4, 0x00,0x01, 0x77,0x35, 0x00,0x04, 0xC4,0xB8,
-0x60,0x00, 0xC3,0x38, 0x00,0x00, 0x74,0x35, 0x00,0x02, 0xF6,0x06, 0x77,0x10, 0xC0,0x26,
-0x62,0x00, 0xEC,0x01, 0x20,0xC1, 0xF6,0x06, 0x21,0x8C, 0xF3,0x84, 0x78,0x9C, 0xA7,0x22,
-0x60,0x02, 0x00,0x00, 0x00,0x01, 0xC0,0x1E, 0x74,0x00, 0xE6,0x01, 0x20,0xB1, 0x00,0x00,
-0x00,0x01, 0x86,0xA6, 0x00,0x00, 0xF7,0x04, 0x78,0xA0, 0x00,0x00, 0x00,0x01, 0xC6,0xB4,
-0x72,0x00, 0x20,0x36, 0x00,0x00, 0xEE,0x01, 0x20,0x98, 0x96,0xA6, 0x00,0x00, 0xF7,0x04,
-0x2D,0x38, 0xF6,0x06, 0x77,0x10, 0xC5,0x18, 0x60,0x00, 0xF6,0x86, 0x2C,0x28, 0x86,0x2A,
-0x00,0x04, 0x05,0xB8, 0x00,0x01, 0xF5,0x85, 0x2D,0x38, 0x77,0x39, 0x00,0x02, 0x20,0x2E,
-0x00,0x44, 0xE6,0x01, 0x20,0x70, 0xB6,0x3A, 0x68,0x02, 0xF0,0x05, 0x2D,0x38, 0x86,0x2A,
-0x00,0x08, 0x00,0x00, 0x00,0x01, 0x96,0x2A, 0x00,0x0C, 0xF6,0x06, 0x21,0x8C, 0xA7,0x22,
-0x60,0x02, 0x00,0x00, 0x00,0x01, 0xC7,0x04, 0x76,0x00, 0xC7,0x1C, 0x74,0x00, 0xE0,0x01,
-0x20,0xB0, 0xF7,0x05, 0x78,0x9C, 0x86,0x16, 0xFF,0xF4, 0x00,0x00, 0x00,0x01, 0xC0,0x36,
-0x62,0x00, 0xEC,0x01, 0x20,0xB0, 0x00,0x00, 0x00,0x01, 0x96,0x96, 0xFF,0xF4, 0x24,0xA4,
-0x00,0x10, 0x23,0x18, 0x00,0x10, 0xE0,0x01, 0x1F,0xFC, 0x24,0x20, 0x00,0x04, 0x86,0x16,
-0xFF,0xF4, 0x00,0x00, 0x00,0x01, 0xF6,0x05, 0x78,0xA0, 0x96,0x02, 0xFF,0x30, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x87,0x16, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x87,0x3A, 0x00,0x08, 0xF6,0x86, 0x77,0x10, 0x77,0x39, 0x00,0x04, 0xC7,0x38,
-0x68,0x00, 0x86,0xBA, 0x00,0x0C, 0x87,0x3A, 0x00,0x08, 0x00,0x00, 0x00,0x01, 0xC0,0x36,
-0x72,0x00, 0x44,0x0C, 0x00,0x01, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x04, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0xF7,0x02, 0x00,0x0F, 0x20,0x3A, 0x00,0x00, 0xEC,0x01, 0x21,0x5D, 0xF6,0x86,
-0x77,0x18, 0x90,0x36, 0x00,0x00, 0x27,0x38, 0x00,0x01, 0xC6,0x04, 0x00,0x00, 0xC0,0x3A,
-0x62,0x00, 0xE6,0x01, 0x21,0x44, 0x06,0xB4, 0x00,0x10, 0xF6,0x06, 0x78,0xA4, 0x96,0x13,
-0xFF,0xFC, 0xF6,0x06, 0x78,0x10, 0x96,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x14,0xF4, 0x97,0x93, 0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x00,0x00, 0x00,0x01, 0x00,0x00,
-0x00,0x02, 0x00,0x00, 0x00,0x04, 0x00,0x00, 0x00,0x08, 0x00,0x00, 0x00,0x10, 0x00,0x00,
-0x00,0x20, 0x00,0x00, 0x00,0x40, 0x00,0x00, 0x00,0x80, 0x00,0x00, 0x01,0x00, 0x00,0x00,
-0x02,0x00, 0x00,0x00, 0x04,0x00, 0x00,0x00, 0x08,0x00, 0x00,0x00, 0x10,0x00, 0x00,0x00,
-0x20,0x00, 0x00,0x00, 0x40,0x00, 0x00,0x00, 0x80,0x00, 0x00,0x00, 0x00,0x00, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF7,0x06, 0x78,0xB0, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06,
-0x79,0xCC, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x15,0x48, 0x97,0x93,
-0xFF,0xFC, 0xF7,0x06, 0x22,0x2C, 0x97,0x13, 0xFF,0xFC, 0xF7,0x02, 0x00,0x15, 0x97,0x13,
-0xFF,0xFC, 0xF7,0x06, 0x78,0xB0, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x16,0x1C, 0x97,0x93, 0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14,
-0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90,
-0x00,0x08, 0xF6,0x84, 0x6F,0x44, 0x00,0x00, 0x00,0x01, 0x87,0x36, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x20,0x3A, 0x00,0x02, 0xE6,0x01, 0x22,0x70, 0xF6,0x02, 0x00,0x00, 0x87,0x36,
-0x0E,0xF4, 0x86,0xB6, 0x0E,0xF8, 0x00,0x00, 0x00,0x01, 0xC0,0x3A, 0x6A,0x00, 0x47,0x0C,
-0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x01, 0x22,0x78, 0x20,0x32, 0x00,0x00, 0xF6,0x02,
-0x00,0x01, 0x20,0x32, 0x00,0x00, 0xE6,0x01, 0x22,0x94, 0x00,0x00, 0x00,0x01, 0xF7,0x04,
-0x32,0xE8, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x01, 0x22,0xB1, 0xF5,0x82,
-0x03,0xE8, 0x0F,0x81, 0x40,0x00, 0xF7,0x04, 0x79,0xC8, 0x00,0x00, 0x00,0x01, 0x07,0x38,
-0x00,0x01, 0xF7,0x05, 0x79,0xC8, 0xF7,0x04, 0x79,0xC8, 0xF5,0x82, 0x03,0xE8, 0x95,0x93,
-0xFF,0xFC, 0xF5,0x82, 0x00,0x15, 0x95,0x93, 0xFF,0xFC, 0xF5,0x86, 0x79,0xCC, 0x95,0x93,
-0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x1E,0xC0, 0x97,0x93, 0xFF,0xFC, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF7,0x06, 0x79,0xCC, 0x97,0x13,
-0xFF,0xFC, 0xF7,0x06, 0x78,0xB0, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00,
-0x14,0xF4, 0x97,0x93, 0xFF,0xFC, 0xF7,0x06, 0x79,0xCC, 0x97,0x13, 0xFF,0xFC, 0xF7,0x06,
-0x79,0x3C, 0x97,0x13, 0xFF,0xFC, 0x07,0x88, 0x00,0x08, 0xE0,0x00, 0x14,0xF4, 0x97,0x93,
-0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0xC1,0x3C, 0x00,0x00, 0x02,0x10, 0x00,0x04, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0x0C, 0x85,0x96, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x86,0xAE, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0x20,0x36, 0x00,0x00, 0xE6,0x01,
-0x23,0x84, 0x27,0x14, 0x00,0x0C, 0x87,0x2E, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0x07,0x38,
-0x00,0x01, 0x97,0x2E, 0x00,0x04, 0x87,0x2E, 0x00,0x04, 0xE0,0x01, 0x24,0x34, 0x96,0x96,
-0xFF,0xF4, 0x97,0x13, 0xFF,0xFC, 0x85,0x16, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0x95,0x13,
-0xFF,0xFC, 0x95,0x93, 0xFF,0xFC, 0x95,0x96, 0xFF,0xEC, 0x07,0x88, 0x00,0x08, 0xE0,0x01,
-0x25,0x68, 0x97,0x93, 0xFF,0xFC, 0x85,0x96, 0xFF,0xEC, 0x20,0x22, 0x00,0x00, 0xE6,0x01,
-0x24,0x34, 0x00,0x00, 0x00,0x01, 0x86,0xAE, 0x00,0x04, 0x86,0x16, 0xFF,0xF4, 0x00,0x00,
-0x00,0x01, 0xC0,0x36, 0x62,0x00, 0xEE,0x01, 0x24,0x21, 0x77,0x35, 0x00,0x01, 0xC7,0x38,
-0x68,0x00, 0x77,0x39, 0x00,0x02, 0xC6,0xB8, 0x58,0x00, 0x77,0x31, 0x00,0x01, 0xC7,0x38,
-0x60,0x00, 0x77,0x39, 0x00,0x02, 0xC7,0x38, 0x58,0x00, 0x85,0x36, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x95,0x36, 0x00,0x0C, 0x85,0x36, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0x95,0x36,
-0x00,0x10, 0x85,0x36, 0x00,0x08, 0x00,0x00, 0x00,0x01, 0x95,0x36, 0x00,0x14, 0x26,0xB4,
-0x00,0x0C, 0xC0,0x36, 0x72,0x00, 0xEE,0x01, 0x23,0xEC, 0x00,0x00, 0x00,0x01, 0x87,0x2E,
-0x00,0x04, 0x00,0x00, 0x00,0x01, 0x07,0x38, 0x00,0x01, 0x97,0x2E, 0x00,0x04, 0x87,0x2E,
-0x00,0x04, 0x86,0x96, 0xFF,0xF4, 0x85,0x16, 0x00,0x04, 0x77,0x35, 0x00,0x01, 0xC7,0x38,
-0x68,0x00, 0x77,0x39, 0x00,0x02, 0xC7,0x2C, 0x70,0x00, 0x85,0x2A, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x95,0x3A, 0x00,0x0C, 0x85,0x16, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0x85,0x2A,
-0x00,0x04, 0x00,0x00, 0x00,0x01, 0x95,0x3A, 0x00,0x10, 0x85,0x16, 0x00,0x08, 0xF4,0x02,
-0x00,0x01, 0x95,0x3A, 0x00,0x14, 0x96,0xAE, 0x00,0x08, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x0C, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0x0C, 0x85,0x96, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x84,0x2E, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0x20,0x22, 0x00,0x00, 0xE6,0x01,
-0x25,0x55, 0x27,0x14, 0x00,0x0C, 0x97,0x13, 0xFF,0xFC, 0x85,0x16, 0x00,0x04, 0x00,0x00,
-0x00,0x01, 0x95,0x13, 0xFF,0xFC, 0x95,0x93, 0xFF,0xFC, 0x95,0x96, 0xFF,0xEC, 0x07,0x88,
-0x00,0x08, 0xE0,0x01, 0x25,0x68, 0x97,0x93, 0xFF,0xFC, 0x85,0x96, 0xFF,0xEC, 0x20,0x22,
-0x00,0x00, 0xE6,0x01, 0x25,0x55, 0x00,0x00, 0x00,0x01, 0x86,0x16, 0xFF,0xF4, 0x00,0x00,
-0x00,0x01, 0x20,0x32, 0x00,0x00, 0xEE,0x01, 0x25,0x45, 0x77,0x31, 0x00,0x01, 0xC6,0xAC,
-0x00,0x00, 0xC7,0x38, 0x60,0x00, 0x77,0x39, 0x00,0x02, 0xC7,0x38, 0x58,0x00, 0x85,0x36,
-0x00,0x18, 0x00,0x00, 0x00,0x01, 0x95,0x36, 0x00,0x0C, 0x85,0x36, 0x00,0x1C, 0x00,0x00,
-0x00,0x01, 0x95,0x36, 0x00,0x10, 0x85,0x36, 0x00,0x20, 0x00,0x00, 0x00,0x01, 0x95,0x36,
-0x00,0x14, 0x06,0xB4, 0x00,0x0C, 0xC0,0x36, 0x72,0x00, 0xEC,0x01, 0x25,0x11, 0x00,0x00,
-0x00,0x01, 0x87,0x2E, 0x00,0x04, 0xF4,0x02, 0x00,0x01, 0x27,0x38, 0x00,0x01, 0x97,0x2E,
-0x00,0x04, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x08, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10,
-0x00,0x08, 0x83,0x96, 0x00,0x04, 0x83,0x16, 0x00,0x00, 0xC5,0x00, 0x00,0x00, 0x84,0x1A,
-0x00,0x04, 0xC4,0xA8, 0x00,0x00, 0x94,0x16, 0xFF,0xF4, 0xC0,0x26, 0x42,0x00, 0xE6,0x01,
-0x26,0xD1, 0x00,0x00, 0x00,0x01, 0x83,0x16, 0xFF,0xF4, 0x00,0x00, 0x00,0x01, 0xC0,0x2A,
-0x32,0x00, 0xE6,0x01, 0x26,0xD1, 0xC7,0x20, 0x4A,0x00, 0x95,0x16, 0xFF,0xF4, 0x76,0xB8,
-0xFF,0xE1, 0xC7,0x38, 0x68,0x00, 0x77,0x39, 0xFF,0xFF, 0xC5,0x24, 0x70,0x00, 0x77,0x29,
-0x00,0x01, 0xC7,0x38, 0x50,0x00, 0x77,0x39, 0x00,0x02, 0x83,0x16, 0x00,0x00, 0x86,0x9E,
-0x00,0x00, 0xC5,0xB8, 0x30,0x00, 0x05,0xAC, 0x00,0x0C, 0x87,0x2E, 0x00,0x00, 0xC6,0x00,
-0x00,0x00, 0xC0,0x36, 0x72,0x00, 0xE6,0x01, 0x26,0x10, 0x20,0x32, 0x00,0x00, 0x86,0x9E,
-0x00,0x04, 0x87,0x2E, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0xC0,0x36, 0x72,0x00, 0xE6,0x01,
-0x26,0x10, 0x20,0x32, 0x00,0x00, 0xF6,0x02, 0x00,0x01, 0x20,0x32, 0x00,0x00, 0xE6,0x01,
-0x26,0x25, 0x00,0x00, 0x00,0x01, 0xC7,0x00, 0x00,0x00, 0xE0,0x01, 0x26,0x78, 0x20,0x3A,
-0x00,0x00, 0x86,0x9E, 0x00,0x00, 0x87,0x2E, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0xC0,0x36,
-0x72,0x00, 0xE2,0x01, 0x26,0x5C, 0x00,0x00, 0x00,0x01, 0xE6,0x01, 0x26,0x64, 0x20,0x32,
-0x00,0x00, 0x86,0x9E, 0x00,0x04, 0x87,0x2E, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0xC0,0x36,
-0x72,0x00, 0xE2,0x01, 0x26,0x65, 0x20,0x32, 0x00,0x00, 0xF6,0x02, 0x00,0x01, 0x20,0x32,
-0x00,0x00, 0x47,0x04, 0xFF,0xFF, 0xE6,0x01, 0x26,0x79, 0x20,0x3A, 0x00,0x00, 0xF7,0x02,
-0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x01, 0x26,0xB1, 0x20,0x3A, 0x00,0x00, 0xEE,0x01,
-0x26,0xA0, 0x20,0x3A, 0x00,0x01, 0x43,0x04, 0xFF,0xFF, 0xC0,0x3A, 0x32,0x00, 0xE6,0x01,
-0x26,0xC9, 0xC0,0x26, 0x42,0x00, 0xE0,0x01, 0x25,0x90, 0x00,0x00, 0x00,0x01, 0xE6,0x01,
-0x26,0xC1, 0xC0,0x26, 0x42,0x00, 0xE0,0x01, 0x25,0x90, 0x00,0x00, 0x00,0x01, 0x83,0x16,
-0x00,0x08, 0xF4,0x02, 0x00,0x01, 0xE0,0x01, 0x26,0xE0, 0x95,0x1A, 0x00,0x00, 0xE0,0x01,
-0x25,0x8C, 0xC4,0xA8, 0x00,0x00, 0xE0,0x01, 0x25,0x8C, 0xC4,0x28, 0x00,0x00, 0x83,0x16,
-0x00,0x08, 0x00,0x00, 0x00,0x01, 0x94,0x1A, 0x00,0x00, 0xC4,0x00, 0x00,0x00, 0x87,0x96,
-0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x0C, 0x01,0x3C, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x00,0x00, 0x00,0x00, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x85,0x96,
-0x00,0x04, 0x84,0x16, 0x00,0x00, 0x84,0x96, 0x00,0x08, 0xF7,0x02, 0x00,0x03, 0xC6,0xA0,
-0x4D,0x80, 0xC6,0xB6, 0x74,0x00, 0xE6,0x01, 0x27,0x71, 0xC6,0x20, 0x00,0x00, 0x20,0x36,
-0x00,0x02, 0xE6,0x01, 0x27,0xA0, 0xC5,0x20, 0x48,0x00, 0xC7,0x20, 0x48,0x00, 0x27,0x38,
-0x00,0x02, 0xC0,0x22, 0x72,0x00, 0xE2,0x01, 0x27,0x9C, 0xC5,0x38, 0x00,0x00, 0x87,0x2E,
-0x00,0x00, 0x76,0xAD, 0x00,0x1E, 0x76,0xB4, 0xFF,0xE5, 0xC7,0x38, 0x6F,0xC0, 0x77,0x38,
-0xFF,0xF0, 0xF7,0x33, 0x28,0x00, 0x06,0x30, 0x00,0x02, 0xC0,0x32, 0x52,0x00, 0xE2,0x01,
-0x27,0x41, 0x05,0xAC, 0x00,0x02, 0xE0,0x01, 0x27,0xA0, 0xC5,0x20, 0x48,0x00, 0xC7,0x20,
-0x48,0x00, 0x27,0x38, 0x00,0x04, 0xC0,0x22, 0x72,0x00, 0xE2,0x01, 0x27,0xA0, 0xC5,0x20,
-0x48,0x00, 0x83,0xAD, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0x93,0xB1, 0x00,0x04, 0xC0,0x32,
-0x72,0x00, 0xE2,0x01, 0x27,0x85, 0x00,0x00, 0x00,0x01, 0xC5,0x20, 0x48,0x00, 0xC0,0x32,
-0x52,0x00, 0xE4,0x01, 0x27,0xD5, 0x00,0x00, 0x00,0x01, 0x86,0xAE, 0x00,0x00, 0x77,0x2D,
-0x00,0x1E, 0x77,0x38, 0xFF,0xE5, 0xC6,0xB4, 0x77,0xC0, 0x76,0xB5, 0xFF,0xE8, 0xF6,0xB3,
-0x68,0x00, 0x06,0x30, 0x00,0x01, 0xC0,0x32, 0x52,0x00, 0xE4,0x01, 0x27,0xAC, 0x05,0xAC,
-0x00,0x01, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x0C, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x84,0x16,
-0x00,0x00, 0x86,0x96, 0x00,0x04, 0x00,0x00, 0x00,0x01, 0xC7,0x22, 0x6D,0x80, 0xE6,0x01,
-0x28,0x10, 0x20,0x36, 0x00,0x00, 0xE0,0x01, 0x28,0x74, 0xC4,0x38, 0x00,0x00, 0xF7,0x02,
-0x00,0x01, 0xEE,0x01, 0x28,0x41, 0xF6,0x02, 0x00,0x00, 0x76,0xB5, 0x00,0x01, 0x20,0x36,
-0x00,0x00, 0xEE,0x01, 0x28,0x1C, 0x77,0x39, 0x00,0x01, 0xE0,0x01, 0x28,0x44, 0x20,0x22,
-0x00,0x00, 0x74,0x21, 0x00,0x01, 0x77,0x38, 0xFF,0xFF, 0x06,0x30, 0x00,0x01, 0x20,0x22,
-0x00,0x00, 0xEE,0x01, 0x28,0x34, 0x20,0x3A, 0x00,0x00, 0xE6,0x01, 0x28,0x71, 0x00,0x00,
-0x00,0x01, 0xC0,0x22, 0x6A,0x00, 0xE4,0x01, 0x28,0x64, 0x00,0x00, 0x00,0x01, 0xC4,0x20,
-0x6A,0x00, 0x77,0x3A, 0xFF,0xFF, 0xE6,0x01, 0x28,0x54, 0x76,0xB4, 0xFF,0xFF, 0xD4,0x20,
-0x07,0x62, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x08, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10,
-0x00,0x04, 0xE0,0x01, 0x28,0xCC, 0xF7,0x06, 0x29,0xDC, 0x86,0xBA, 0x00,0x00, 0x00,0x00,
-0x00,0x01, 0x20,0x36, 0x00,0x00, 0xE6,0x01, 0x28,0xC9, 0x00,0x00, 0x00,0x01, 0x97,0x16,
-0xFF,0xF4, 0x07,0x88, 0x00,0x08, 0xC1,0x34, 0x00,0x00, 0x97,0x93, 0xFF,0xFC, 0x87,0x16,
-0xFF,0xF4, 0x00,0x00, 0x00,0x01, 0x27,0x38, 0x00,0x04, 0xF6,0x06, 0x29,0xE0, 0xC0,0x3A,
-0x62,0x00, 0xE4,0x01, 0x28,0x9D, 0x00,0x00, 0x00,0x01, 0x87,0x96, 0xFF,0xFC, 0x82,0x96,
-0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93,
-0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0x22,0x10, 0x00,0x04, 0xE0,0x01, 0x29,0x34, 0xF7,0x06,
-0x29,0x98, 0x86,0xBA, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x20,0x36, 0x00,0x00, 0xE6,0x01,
-0x29,0x31, 0x00,0x00, 0x00,0x01, 0x97,0x16, 0xFF,0xF4, 0x07,0x88, 0x00,0x08, 0xC1,0x34,
-0x00,0x00, 0x97,0x93, 0xFF,0xFC, 0x87,0x16, 0xFF,0xF4, 0x00,0x00, 0x00,0x01, 0x07,0x38,
-0x00,0x04, 0xF6,0x06, 0x29,0xE0, 0xC0,0x3A, 0x62,0x00, 0xE4,0x01, 0x29,0x04, 0x00,0x00,
-0x00,0x01, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x92,0x93, 0xFF,0xFC, 0x02,0x90, 0x00,0x08, 0xF7,0x04,
-0x7B,0x50, 0x00,0x00, 0x00,0x01, 0x20,0x3A, 0x00,0x00, 0xE6,0x01, 0x29,0x84, 0xF6,0x82,
-0x00,0x01, 0xF6,0x85, 0x7B,0x50, 0x07,0x88, 0x00,0x08, 0xE0,0x01, 0x28,0xF0, 0x97,0x93,
-0xFF,0xFC, 0x87,0x96, 0xFF,0xFC, 0x82,0x96, 0xFF,0xF8, 0x02,0x14, 0x00,0x00, 0x01,0x3C,
-0x00,0x00, 0x00,0x00, 0x00,0x01, 0x00,0x00, 0x0B,0x4C, 0x00,0x00, 0x00,0x00, 0x00,0x00,
-0x42,0x88, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x5E,0x50, 0x00,0x00, 0x00,0x00, 0x00,0x00,
-0xC7,0xA8, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x0B,0xD0, 0x00,0x00, 0x00,0x00, 0x00,0x01,
-0x1C,0x88, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x1E,0x14, 0x00,0x00, 0x00,0x00, 0x00,0x01,
-0x21,0x2C, 0x00,0x00, 0x00,0x00, 0x00,0x01, 0x22,0xE4, 0x00,0x00, 0x00,0x00, } ;
-
-
-/* This is the LANai data */
-
-static unsigned int __devinitdata lanai4_data_off = 0x94F0; /* half-word offset */
-static unsigned char __devinitdata lanai4_data[20472];
-
-
-#ifdef SYMBOL_DEFINES_COMPILED
-/* These are half-word addresses - NOT byte offsets */
-#define MYRI_GenerateMapVersion      0xBD08
-#define MYRI_MoreToGenerate          0xBD0C
-#define MYRI_GenerateMessage         0xBCEC
-#define MYRI_RelayMapVersion         0xBD04
-#define MYRI_RelayStart              0xBD00
-#define MYRI_RelayDirection          0xBCFC
-#define MYRI_RelayIndex              0xBCF4
-#define MYRI_RelayStop               0xBCF8
-#define MYRI_RelayMessage            0xBCF0
-#define MYRI_BroadcastRelayMessagesSent 0xBD10
-#define MYRI_SendMultiplexGrabbed    0xBD3C
-#define MYRI_HostReceiveItem         0xBD14
-#define MYRI_HostReceiveNumScatters  0xBD50
-#define MYRI_HostReceiveScatterIndex 0xBD44
-#define MYRI_HostReceiveScatterPointer 0xBD4C
-#define MYRI_HostReceiveScatterLength 0xBD48
-#define MYRI_HostReceiveChecksum     0xBD40
-#define MYRI_RouteNumFragments       0xBD60
-#define MYRI_RouteFragment           0xBD5C
-#define MYRI_RouteStamp              0xBD58
-#define MYRI_RoutesSoFar             0xBD64
-#define MYRI_MapVersionChanged       0xBD68
-#define MYRI_map_c                   0xBD54
-#define MYRI_pack_list               0x789C
-#define MYRI_pack_table              0x78BA
-#define MYRI_msg2event               0x7FF6
-#define MYRI_VersionString           0xB7A0
-#define MYRI_SizeofChannel           0xBD80
-#define MYRI_EndOfQueueSpace         0xBD84
-#define MYRI_FreeCode                0xBD78
-#define MYRI_FreeData                0xBD7C
-#define MYRI_Asserting               0xBD6C
-#define MYRI_Version                 0xBD74
-#define MYRI_Processor               0xBD70
-#define MYRI_NetReceive              0xBD8C
-#define MYRI_NetReceiveBuffer        0xBD88
-#define MYRI_MapLength               0xBD9C
-#define MYRI_MapSendAlignment        0xBD98
-#define MYRI_HostReplyLength         0xBDA4
-#define MYRI_HostReplySendAlignment  0xBDA0
-#define MYRI_MapSendMessages         0xBD94
-#define MYRI_bitmask                 0x90C6
-#define MYRI_HostSendFull            0x99C0
-#define MYRI_HostReplies             0xA04C
-#define MYRI_Interrupts              0xBCE4
-#define MYRI_NetReceiveDrops         0xB8DA
-#define MYRI_SendMultiplexDoneEvent  0xBB7A
-#define MYRI_bEvents                 0x96E6
-#define MYRI_bHostReceiveShortcuts   0x9972
-#define MYRI_the_map                 0xB728
-#define MYRI_Channels                0xB7A2
-#define MYRI_bEventIndex             0x9766
-#define MYRI_NoBuffersChannel0       0x9974
-#define MYRI_bShakes                 0x976A
-#define MYRI_MAPPER                  0xA122
-#define MYRI_CORE_timeout_counter    0xA114
-#define MYRI_the_map_is_valid        0xA040
-#define MYRI_bBadScatters            0x9970
-#define MYRI_HostReceiveChannel      0x9960
-#define MYRI_send_space              0xA7B0
-#define MYRI_MapReceiveMessages      0xB8E0
-#define MYRI_wakeup_mask             0xBC4E
-#define MYRI_NetSendBuffer           0xBB30
-#define MYRI_HostReceiveMulticast    0x9968
-#define MYRI_HostSendChannel         0x9A94
-#define MYRI_NetReceiveDmaDone       0xB7FA
-#define MYRI_HostSendChecksum        0x9AAA
-#define MYRI_HostReceiveScatter      0x9914
-#define MYRI_compares                0x9DC8
-#define MYRI_NetSendQueue            0xBAFC
-#define MYRI_HostTable               0xA54C
-#define MYRI_map_h                   0x9DB4
-#define MYRI_HostSendBytes           0x9AA0
-#define MYRI_L3_end_loaded_memory    0xBDB4
-#define MYRI_NetSendBytes            0xBB2A
-#define MYRI_map_space               0xA81C
-#define MYRI_MAP_ACK                 0xA045
-#define MYRI_NetReceiveMisroutes     0xB8D6
-#define MYRI_HostReceiveBytes        0x995C
-#define MYRI_BroadcastRelayIdle      0x95C2
-#define MYRI_HostReceiveIdle         0x9770
-#define MYRI_timing                  0xBC08
-#define MYRI_HostReceive             0x996A
-#define MYRI_routeHandleMessage      0x7732
-#define MYRI_Freses                  0xB7AE
-#define MYRI_NextToPut               0x969C
-#define MYRI_HostSendIdle            0x997A
-#define MYRIedata                    0xBCEC
-#define MYRI_SendingHostReply        0xBAFA
-#define MYRI_timing_period           0xBC50
-#define MYRI_debug                   0xA138
-#define MYRI_NetSendBusy             0xB998
-#define MYRI_routeInitialize         0x6AA0
-#define MYRI_HostReceiveQueue        0x9966
-#define MYRI_bWakes                  0x9768
-#define MYRI_NetReceiveBadLengths    0xB8D0
-#define MYRI_NetReceiveQueue         0xB8E2
-#define MYRI_MapBuffer               0xBAF6
-#define MYRI_MapChecksum             0xA048
-#define MYRI_the_routes_are_valid    0xA042
-#define MYRI_MAPPER_probe_stamp      0xA132
-#define MYRI_memory                  0xA7AC
-#define MYRI_Events                  0x9614
-#define MYRI_switches                0x9DB6
-#define MYRI_Hosts                   0xA7AE
-#define MYRI_HostReceiveGoingToBroadcast 0x98CE
-#define MYRI_NetSendIdle             0xB90C
-#define MYRI_host_reply_space        0xB72C
-#define MYRI_HostReceiveWaitingToBroadcast 0x9888
-#define MYRI_bSetRoutes              0xA11E
-#define MYRI_bSends                  0x976C
-#define MYRI_BroadcastGenerateIdle   0x9536
-#define MYRI_WatchdogOff             0xBC9E
-#define MYRI_TIMER                   0xBC52
-#define MYRI_SendMultiplex           0xBB82
-#define MYRI_HostReplyBuffer         0xBAF8
-#define MYRI_the_new_switch          0xA130
-#define MYRI_current_switch          0xA03A
-#define MYRI_memcpy                  0x937C
-#define MYRI_server                  0x9AF6
-#define MYRI_WatchdogOn              0xBC58
-#define MYRI_NetSendContinuing       0xB952
-#define MYRI_NetReceiveBadChannels   0xB8D2
-#define MYRI_SendMultiplexFreeMachine 0xBB80
-#define MYRI_NetReceiveFlush         0xB840
-#define MYRI_NetSendBroadcasting     0xBAB0
-#define MYRI_looking_for_a_loopback  0x9D6C
-#define MYRI_HostSendGatherPointer   0x9AA8
-#define MYRI_HostSendItem            0x9A96
-#define MYRI_MAP_REQ                 0xA046
-#define MYRI_memory_free_list        0xA160
-#define MYRIend                      0xBDB4
-#define MYRI_MapVersion              0x9DB2
-#define MYRI_client                  0x9AB0
-#define MYRI_HostReceiveBroadcasting 0x9842
-#define MYRIetext                    0x94F0
-#define MYRI_NetSendMapBusy          0xB9DE
-#define MYRI_bRouteMessages          0xA134
-#define MYRI_DmaDirection            0xB7A8
-#define MYRI_SendMultiplexFreeEvent  0xBB7C
-#define MYRI_idle_mapper             0x9B3C
-#define MYRI_NetSend                 0xBB24
-#define MYRI_current_port            0xA03E
-#define MYRI_HostConnectedSwitches   0x9DDA
-#define MYRI_try_loopback            0x9B82
-#define MYRI_the_host_reply_message  0xB72A
-#define MYRI_MAPPER_queue            0x9DD8
-#define MYRI_bHostSendShortcuts      0x9AAC
-#define MYRI_BroadcastGenerate       0x9608
-#define MYRI_DmaFreeEvent            0xB7AC
-#define MYRI_host_timeout_counter    0xA116
-#define MYRI_NetReceiveDma           0xB7B4
-#define MYRI_MAPPER_try_port         0xA12C
-#define MYRI_bcopy                   0x66AA
-#define MYRI_queue_h                 0xBB32
-#define MYRI_bUpdates                0xA120
-#define MYRI_SendMultiplexMachine    0xBB7E
-#define MYRI_MAPPER_repeat           0xA12A
-#define MYRI_the_return_port         0xA038
-#define MYRI_NetReceiveFull          0xB886
-#define MYRI_MyHostTableIndex        0xA7AA
-#define MYRI_CORE                    0xA118
-#define MYRI_I_have_a_map            0xA044
-#define MYRI_bWaiting                0xB7B0
-#define MYRI_NetReceiveOverflows     0xB8D8
-#define MYRI_NumMachines             0x96A0
-#define MYRI_MapMessagesSentCounter  0xB79C
-#define MYRI_HostReceiveBuffer       0x9962
-#define MYRI_HostSendDma             0x9A4C
-#define MYRI_NextToGet               0x969E
-#define MYRI_HostReceiveDmaBusy      0x97B6
-#define MYRI_bUpdateMessages         0xA136
-#define MYRI_try_the_switch          0x9C0E
-#define MYRI_BroadcastRelay          0x960E
-#define MYRI_the_msg                 0xB798
-#define MYRI_bEventsRTC              0x9726
-#define MYRI_HostReceiveMessages     0x995E
-#define MYRI_CURRENT_MSG             0xB79A
-#define MYRI_MAPPER_phase            0xA128
-#define MYRI_HostReceiveDma          0x97FC
-#define MYRI_Watchdog                0xBCE6
-#define MYRI_HostSendEmpty           0x9A92
-#define MYRI_abort                   0x63C6
-#define MYRI_SendMultiplexIdle       0xBB34
-#define MYRI_looking_for_a_switch    0x9C54
-#define MYRI_NetSendMessages         0xBB2C
-#define MYRI_updating                0x9D26
-#define MYRI_BroadcastGenerateSending 0x94F0
-#define MYRI_HostSendBuffer          0x9AA4
-#define MYRI_HostSendMessages        0x9A9E
-#define MYRI_BroadcastRelaySending   0x957C
-#define MYRI_HostSendDmaBusy         0x9A06
-#define MYRI_BroadcastsPending       0xB8CC
-#define MYRI_NetSendMapWaiting       0xBA6A
-#define MYRI_NetReceiveBadTypes      0xB8CE
-#define MYRI_looking_for_hosts       0x9C9A
-#define MYRI_bBadHeader              0x9978
-#define MYRI_HostSendGatherIndex     0x9AA6
-#define MYRI_routeLookup             0x7790
-#define MYRI_NetReceiveMessages      0xB8DE
-#define MYRI_DmaInUse                0xB7AA
-#define MYRI_explores                0x9DB8
-#define MYRI_HostSend                0x9A98
-#define MYRI_DmaResetSpin            0xB7B2
-#define MYRIstart                    0x0000
-#define MYRI_RouteTable              0xA164
-#define MYRI_Machines                0x96A2
-#define MYRI_try_the_host            0x9BC8
-#define MYRI_isr_record              0x976E
-#define MYRI_HostReceiveDrops        0x995A
-#define MYRI_HostReceiveLength       0x9964
-#define MYRI_timers                  0xBB88
-#define MYRI_NetSendWaiting          0xBA24
-#define MYRI_NetSendDrops            0xBB2E
-#define MYRI_comparing_a_switch      0x9CE0
-#define MYRI_OldMapChecksum          0xA04A
-#define MYRI_HostSendQueue           0x9AA2
-#define MYRI_MAPPER_host             0xA12E
-#define MYRI_compare_switch          0xA03C
-#define MYRI_main                    0x80A6
-#define MYRI_NetReceiveBadCrcs       0xB8D4
-#define MYRI_NetReceiveBytes         0xB8DC
-
-#endif /* SYMBOL_DEFINES_COMPILED */
index 08534c0..9a802ad 100644 (file)
@@ -25,6 +25,7 @@ static char version[] =
 #include <linux/dma-mapping.h>
 #include <linux/of.h>
 #include <linux/of_device.h>
+#include <linux/firmware.h>
 
 #include <net/dst.h>
 #include <net/arp.h>
@@ -43,7 +44,6 @@ static char version[] =
 #include <asm/irq.h>
 
 #include "myri_sbus.h"
-#include "myri_code.h"
 
 /* #define DEBUG_DETECT */
 /* #define DEBUG_IRQ */
@@ -81,6 +81,9 @@ static char version[] =
 #define DHDR(x)
 #endif
 
+/* Firmware name */
+#define FWNAME         "myricom/lanai.bin"
+
 static void myri_reset_off(void __iomem *lp, void __iomem *cregs)
 {
        /* Clear IRQ mask. */
@@ -171,10 +174,11 @@ static int myri_do_handshake(struct myri_eth *mp)
 
 static int __devinit myri_load_lanai(struct myri_eth *mp)
 {
+       const struct firmware   *fw;
        struct net_device       *dev = mp->dev;
        struct myri_shmem __iomem *shmem = mp->shmem;
        void __iomem            *rptr;
-       int                     i;
+       int                     i, lanai4_data_size;
 
        myri_disable_irq(mp->lregs, mp->cregs);
        myri_reset_on(mp->cregs);
@@ -186,13 +190,27 @@ static int __devinit myri_load_lanai(struct myri_eth *mp)
        if (mp->eeprom.cpuvers >= CPUVERS_3_0)
                sbus_writel(mp->eeprom.cval, mp->lregs + LANAI_CVAL);
 
+       i = request_firmware(&fw, FWNAME, &mp->myri_op->dev);
+       if (i) {
+               printk(KERN_ERR "Failed to load image \"%s\" err %d\n",
+                      FWNAME, i);
+               return i;
+       }
+       if (fw->size < 2) {
+               printk(KERN_ERR "Bogus length %zu in image \"%s\"\n",
+                      fw->size, FWNAME);
+               release_firmware(fw);
+               return -EINVAL;
+       }
+       lanai4_data_size = fw->data[0] << 8 | fw->data[1];
+
        /* Load executable code. */
-       for (i = 0; i < sizeof(lanai4_code); i++)
-               sbus_writeb(lanai4_code[i], rptr + (lanai4_code_off * 2) + i);
+       for (i = 2; i < fw->size; i++)
+               sbus_writeb(fw->data[i], rptr++);
 
        /* Load data segment. */
-       for (i = 0; i < sizeof(lanai4_data); i++)
-               sbus_writeb(lanai4_data[i], rptr + (lanai4_data_off * 2) + i);
+       for (i = 0; i < lanai4_data_size; i++)
+               sbus_writeb(0, rptr++);
 
        /* Set device address. */
        sbus_writeb(0, &shmem->addr[0]);
@@ -228,6 +246,7 @@ static int __devinit myri_load_lanai(struct myri_eth *mp)
        if (mp->eeprom.cpuvers == CPUVERS_4_0)
                sbus_writel(0, mp->lregs + LANAI_VERS);
 
+       release_firmware(fw);
        return i;
 }
 
@@ -1078,7 +1097,10 @@ static int __devinit myri_sbus_probe(struct of_device *op, const struct of_devic
 
        /* Load code onto the LANai. */
        DET(("Loading LANAI firmware\n"));
-       myri_load_lanai(mp);
+       if (myri_load_lanai(mp)) {
+               printk(KERN_ERR "MyriCOM: Cannot Load LANAI firmware.\n");
+               goto err_free_irq;
+       }
 
        if (register_netdev(dev)) {
                printk("MyriCOM: Cannot register device.\n");
@@ -1159,3 +1181,4 @@ module_init(myri_sbus_init);
 module_exit(myri_sbus_exit);
 
 MODULE_LICENSE("GPL");
+MODULE_FIRMWARE(FWNAME);
index 501a8d7..15b8fe6 100644 (file)
@@ -339,7 +339,7 @@ static int axnet_config(struct pcmcia_device *link)
 {
     struct net_device *dev = link->priv;
     axnet_dev_t *info = PRIV(dev);
-    int i, j, last_ret, last_fn;
+    int i, j, j2, last_ret, last_fn;
 
     DEBUG(0, "axnet_config(0x%p)\n", link);
 
@@ -388,6 +388,8 @@ static int axnet_config(struct pcmcia_device *link)
 
     for (i = 0; i < 32; i++) {
        j = mdio_read(dev->base_addr + AXNET_MII_EEP, i, 1);
+       j2 = mdio_read(dev->base_addr + AXNET_MII_EEP, i, 2);
+       if (j == j2) continue;
        if ((j != 0) && (j != 0xffff)) break;
     }
 
@@ -398,6 +400,8 @@ static int axnet_config(struct pcmcia_device *link)
        pcmcia_access_configuration_register(link, &reg);
        for (i = 0; i < 32; i++) {
            j = mdio_read(dev->base_addr + AXNET_MII_EEP, i, 1);
+           j2 = mdio_read(dev->base_addr + AXNET_MII_EEP, i, 2);
+           if (j == j2) continue;
            if ((j != 0) && (j != 0xffff)) break;
        }
     }
@@ -1767,6 +1771,9 @@ static void AX88190_init(struct net_device *dev, int startp)
        ei_local->tx1 = ei_local->tx2 = 0;
        ei_local->txing = 0;
 
+       if (info->flags & IS_AX88790)   /* select Internal PHY */
+               outb(0x10, e8390_base + AXNET_GPIO);
+
        if (startp) 
        {
                outb_p(0xff,  e8390_base + EN0_ISR);
index af8f60c..6da6781 100644 (file)
@@ -43,7 +43,6 @@
 #include <linux/sched.h>
 #include <linux/slab.h>
 #include <linux/timer.h>
-#include <linux/version.h>
 #include <linux/bug.h>
 #include <linux/bitops.h>
 #include <linux/irq.h>
index a6f1e19..9c82a39 100644 (file)
@@ -575,8 +575,9 @@ static int virtnet_set_mac_address(struct net_device *dev, void *p)
        if (ret)
                return ret;
 
-       vdev->config->set(vdev, offsetof(struct virtio_net_config, mac),
-                         dev->dev_addr, dev->addr_len);
+       if (virtio_has_feature(vdev, VIRTIO_NET_F_MAC))
+               vdev->config->set(vdev, offsetof(struct virtio_net_config, mac),
+                                 dev->dev_addr, dev->addr_len);
 
        return 0;
 }
@@ -876,11 +877,8 @@ static int virtnet_probe(struct virtio_device *vdev)
                vdev->config->get(vdev,
                                  offsetof(struct virtio_net_config, mac),
                                  dev->dev_addr, dev->addr_len);
-       } else {
+       } else
                random_ether_addr(dev->dev_addr);
-               vdev->config->set(vdev, offsetof(struct virtio_net_config, mac),
-                                 dev->dev_addr, dev->addr_len);
-       }
 
        /* Set up our device-specific information */
        vi = netdev_priv(dev);
index 61ef161..b7f08f3 100644 (file)
@@ -43,6 +43,7 @@
 
 #include <linux/if_vlan.h>
 #include <linux/pci.h>
+#include <linux/tcp.h>
 #include <net/ip.h>
 #include <linux/netdevice.h>
 #include <linux/etherdevice.h>
index 5c6ef51..f8df068 100644 (file)
@@ -1106,6 +1106,10 @@ static int cpm_uart_init_port(struct device_node *np,
        for (i = 0; i < NUM_GPIOS; i++)
                pinfo->gpios[i] = of_get_gpio(np, i);
 
+#ifdef CONFIG_PPC_EARLY_DEBUG_CPM
+       udbg_putc = NULL;
+#endif
+
        return cpm_uart_request_port(&pinfo->port);
 
 out_pram:
@@ -1255,10 +1259,6 @@ static int __init cpm_uart_console_setup(struct console *co, char *options)
                        baud = 9600;
        }
 
-#ifdef CONFIG_PPC_EARLY_DEBUG_CPM
-       udbg_putc = NULL;
-#endif
-
        if (IS_SMC(pinfo)) {
                out_be16(&pinfo->smcup->smc_brkcr, 0);
                cpm_line_cr_cmd(pinfo, CPM_CR_STOP_TX);
@@ -1339,13 +1339,13 @@ static int __devinit cpm_uart_probe(struct of_device *ofdev,
 
        dev_set_drvdata(&ofdev->dev, pinfo);
 
+       /* initialize the device pointer for the port */
+       pinfo->port.dev = &ofdev->dev;
+
        ret = cpm_uart_init_port(ofdev->node, pinfo);
        if (ret)
                return ret;
 
-       /* initialize the device pointer for the port */
-       pinfo->port.dev = &ofdev->dev;
-
        return uart_add_one_port(&cpm_reg, &pinfo->port);
 }
 
index ad34885..9c1243f 100644 (file)
@@ -1538,6 +1538,21 @@ no_dma:
        uap->port.type = PORT_PMAC_ZILOG;
        uap->port.flags = 0;
 
+       /*
+        * Fixup for the port on Gatwick for which the device-tree has
+        * missing interrupts. Normally, the macio_dev would contain
+        * fixed up interrupt info, but we use the device-tree directly
+        * here due to early probing so we need the fixup too.
+        */
+       if (uap->port.irq == NO_IRQ &&
+           np->parent && np->parent->parent &&
+           of_device_is_compatible(np->parent->parent, "gatwick")) {
+               /* IRQs on gatwick are offset by 64 */
+               uap->port.irq = irq_create_mapping(NULL, 64 + 15);
+               uap->tx_dma_irq = irq_create_mapping(NULL, 64 + 4);
+               uap->rx_dma_irq = irq_create_mapping(NULL, 64 + 5);
+       }
+
        /* Setup some valid baud rate information in the register
         * shadows so we don't write crap there before baud rate is
         * first initialized.
index fb51197..f153c58 100644 (file)
@@ -1352,14 +1352,15 @@ static int fsl_diu_resume(struct of_device *ofdev)
 #endif                         /* CONFIG_PM */
 
 /* Align to 64-bit(8-byte), 32-byte, etc. */
-static int allocate_buf(struct diu_addr *buf, u32 size, u32 bytes_align)
+static int allocate_buf(struct device *dev, struct diu_addr *buf, u32 size,
+                       u32 bytes_align)
 {
        u32 offset, ssize;
        u32 mask;
        dma_addr_t paddr = 0;
 
        ssize = size + bytes_align;
-       buf->vaddr = dma_alloc_coherent(NULL, ssize, &paddr, GFP_DMA |
+       buf->vaddr = dma_alloc_coherent(dev, ssize, &paddr, GFP_DMA |
                                                             __GFP_ZERO);
        if (!buf->vaddr)
                return -ENOMEM;
@@ -1376,9 +1377,10 @@ static int allocate_buf(struct diu_addr *buf, u32 size, u32 bytes_align)
        return 0;
 }
 
-static void free_buf(struct diu_addr *buf, u32 size, u32 bytes_align)
+static void free_buf(struct device *dev, struct diu_addr *buf, u32 size,
+                    u32 bytes_align)
 {
-       dma_free_coherent(NULL, size + bytes_align,
+       dma_free_coherent(dev, size + bytes_align,
                                buf->vaddr, (buf->paddr - buf->offset));
        return;
 }
@@ -1476,17 +1478,19 @@ static int __devinit fsl_diu_probe(struct of_device *ofdev,
        machine_data->monitor_port = monitor_port;
 
        /* Area descriptor memory pool aligns to 64-bit boundary */
-       if (allocate_buf(&pool.ad, sizeof(struct diu_ad) * FSL_AOI_NUM, 8))
+       if (allocate_buf(&ofdev->dev, &pool.ad,
+                        sizeof(struct diu_ad) * FSL_AOI_NUM, 8))
                return -ENOMEM;
 
        /* Get memory for Gamma Table  - 32-byte aligned memory */
-       if (allocate_buf(&pool.gamma, 768, 32)) {
+       if (allocate_buf(&ofdev->dev, &pool.gamma, 768, 32)) {
                ret = -ENOMEM;
                goto error;
        }
 
        /* For performance, cursor bitmap buffer aligns to 32-byte boundary */
-       if (allocate_buf(&pool.cursor, MAX_CURS * MAX_CURS * 2, 32)) {
+       if (allocate_buf(&ofdev->dev, &pool.cursor, MAX_CURS * MAX_CURS * 2,
+                        32)) {
                ret = -ENOMEM;
                goto error;
        }
@@ -1554,11 +1558,13 @@ error:
                i > 0; i--)
                uninstall_fb(machine_data->fsl_diu_info[i - 1]);
        if (pool.ad.vaddr)
-               free_buf(&pool.ad, sizeof(struct diu_ad) * FSL_AOI_NUM, 8);
+               free_buf(&ofdev->dev, &pool.ad,
+                        sizeof(struct diu_ad) * FSL_AOI_NUM, 8);
        if (pool.gamma.vaddr)
-               free_buf(&pool.gamma, 768, 32);
+               free_buf(&ofdev->dev, &pool.gamma, 768, 32);
        if (pool.cursor.vaddr)
-               free_buf(&pool.cursor, MAX_CURS * MAX_CURS * 2, 32);
+               free_buf(&ofdev->dev, &pool.cursor, MAX_CURS * MAX_CURS * 2,
+                        32);
        if (machine_data->dummy_aoi_virt)
                fsl_diu_free(machine_data->dummy_aoi_virt, 64);
        iounmap(dr.diu_reg);
@@ -1584,11 +1590,13 @@ static int fsl_diu_remove(struct of_device *ofdev)
        for (i = ARRAY_SIZE(machine_data->fsl_diu_info); i > 0; i--)
                uninstall_fb(machine_data->fsl_diu_info[i - 1]);
        if (pool.ad.vaddr)
-               free_buf(&pool.ad, sizeof(struct diu_ad) * FSL_AOI_NUM, 8);
+               free_buf(&ofdev->dev, &pool.ad,
+                        sizeof(struct diu_ad) * FSL_AOI_NUM, 8);
        if (pool.gamma.vaddr)
-               free_buf(&pool.gamma, 768, 32);
+               free_buf(&ofdev->dev, &pool.gamma, 768, 32);
        if (pool.cursor.vaddr)
-               free_buf(&pool.cursor, MAX_CURS * MAX_CURS * 2, 32);
+               free_buf(&ofdev->dev, &pool.cursor, MAX_CURS * MAX_CURS * 2,
+                        32);
        if (machine_data->dummy_aoi_virt)
                fsl_diu_free(machine_data->dummy_aoi_virt, 64);
        iounmap(dr.diu_reg);
index 5d3b1a8..a38fa49 100644 (file)
@@ -106,6 +106,8 @@ static int wdrtas_set_interval(int interval)
        return result;
 }
 
+#define WDRTAS_SP_SPI_LEN 4
+
 /**
  * wdrtas_get_interval - returns the current watchdog interval
  * @fallback_value: value (in seconds) to use, if the RTAS call fails
@@ -119,10 +121,17 @@ static int wdrtas_set_interval(int interval)
 static int wdrtas_get_interval(int fallback_value)
 {
        long result;
-       char value[4];
+       char value[WDRTAS_SP_SPI_LEN];
 
+       spin_lock(&rtas_data_buf_lock);
+       memset(rtas_data_buf, 0, WDRTAS_SP_SPI_LEN);
        result = rtas_call(wdrtas_token_get_sp, 3, 1, NULL,
-                          WDRTAS_SP_SPI, (void *)__pa(&value), 4);
+                          WDRTAS_SP_SPI, __pa(rtas_data_buf),
+                          WDRTAS_SP_SPI_LEN);
+
+       memcpy(value, rtas_data_buf, WDRTAS_SP_SPI_LEN);
+       spin_unlock(&rtas_data_buf_lock);
+
        if (value[0] != 0 || value[1] != 2 || value[3] != 0 || result < 0) {
                printk(KERN_WARNING "wdrtas: could not get sp_spi watchdog "
                       "timeout (%li). Continuing\n", result);
index 14fdd07..1e7fd4d 100644 (file)
@@ -32,6 +32,10 @@ fw-shipped-$(CONFIG_ADAPTEC_STARFIRE) += adaptec/starfire_rx.bin \
                                         adaptec/starfire_tx.bin
 fw-shipped-$(CONFIG_ATARI_DSP56K) += dsp56k/bootstrap.bin
 fw-shipped-$(CONFIG_ATM_AMBASSADOR) += atmsar11.fw
+fw-shipped-$(CONFIG_BNX2) += bnx2/bnx2-mips-09-4.6.17.fw \
+                            bnx2/bnx2-rv2p-09-4.6.15.fw \
+                            bnx2/bnx2-mips-06-4.6.16.fw \
+                            bnx2/bnx2-rv2p-06-4.6.16.fw
 fw-shipped-$(CONFIG_CASSINI) += sun/cassini.bin
 fw-shipped-$(CONFIG_COMPUTONE) += intelliport2.bin
 fw-shipped-$(CONFIG_CHELSIO_T3) += cxgb3/t3b_psram-1.1.0.bin \
@@ -40,6 +44,7 @@ fw-shipped-$(CONFIG_CHELSIO_T3) += cxgb3/t3b_psram-1.1.0.bin \
 fw-shipped-$(CONFIG_DVB_TTUSB_BUDGET) += ttusb-budget/dspbootcode.bin
 fw-shipped-$(CONFIG_E100) += e100/d101m_ucode.bin e100/d101s_ucode.bin \
                             e100/d102e_ucode.bin
+fw-shipped-$(CONFIG_MYRI_SBUS) += myricom/lanai.bin
 fw-shipped-$(CONFIG_PCMCIA_SMC91C92) += ositech/Xilinx7OD.bin
 fw-shipped-$(CONFIG_SCSI_ADVANSYS) += advansys/mcode.bin advansys/38C1600.bin \
                                      advansys/3550.bin advansys/38C0800.bin
index c006af8..e4deb51 100644 (file)
@@ -632,3 +632,33 @@ Licence: Unknown
 Found in hex form in kernel source.
 
 --------------------------------------------------------------------------
+
+Driver: MYRI_SBUS - MyriCOM Gigabit Ethernet
+
+File: myricom/lanai.bin
+
+Licence: Unknown
+
+Found in hex form in kernel source.
+
+--------------------------------------------------------------------------
+
+Driver: BNX2 - Broadcom NetXtremeII
+
+File: bnx2/bnx2-mips-06-4.6.16.fw
+File: bnx2/bnx2-rv2p-06-4.6.16.fw
+File: bnx2/bnx2-mips-09-4.6.17.fw
+File: bnx2/bnx2-rv2p-09-4.6.15.fw
+
+Licence:
+
+ This file contains firmware data derived from proprietary unpublished
+ source code, Copyright (c) 2004 - 2009 Broadcom Corporation.
+
+ Permission is hereby granted for the distribution of this firmware data
+ in hexadecimal or equivalent format, provided this copyright notice is
+ accompanying it.
+
+Found in hex form in kernel source.
+
+--------------------------------------------------------------------------
diff --git a/firmware/bnx2/bnx2-mips-06-4.6.16.fw.ihex b/firmware/bnx2/bnx2-mips-06-4.6.16.fw.ihex
new file mode 100644 (file)
index 0000000..0df10b5
--- /dev/null
@@ -0,0 +1,5805 @@
+:10000000080000F80800000000004DA4000000C82F
+:1000100000000000000000000000000008004DA4E7
+:100020000000001400004E6C080000800800000072
+:10003000000056CC00004E800800582000000084CC
+:100040000000A54C080056CC000001340000A5D0EB
+:10005000080031D808000000000070DC0000A70490
+:10006000000000000000000000000000080070DC3C
+:1000700000000024000117E00800048808000400C4
+:100080000000175C000118040000000000000000E0
+:100090000000000000000000000000000000000060
+:1000A000080000980800000000003A7400012F606A
+:1000B0000000000000000000000000000000000040
+:0800C000000000000000000038
+:0800C8000A00003E00000000E8
+:1000D000000000000000000D636F6D342E362E31DD
+:1000E00036000000040610020000000000000003BB
+:1000F00000000014000000320000000300000000B7
+:1001000000000000000000000000000000000000EF
+:1001100000000010000001360000EA60000000014D
+:1001200000000000000000000000000000000008C7
+:1001300000000000000000000000000000000000BF
+:1001400000000000000000000000000000000000AF
+:10015000000000000000000000000000000000009F
+:10016000000000020000000000000000000000008D
+:10017000000000000000000000000000000000007F
+:10018000000000000000000000000010000000005F
+:10019000000000000000000000000000000000005F
+:1001A000000000000000000000000000000000004F
+:1001B000000000000000000000000000000000003F
+:1001C0000000000010000003000000000000000D0F
+:1001D0000000000D3C02080024424DE03C030800F2
+:1001E00024634ED4AC4000000043202B1480FFFD5C
+:1001F000244200043C1D080037BD7FFC03A0F02111
+:100200003C100800261000F83C1C0800279C4DE01C
+:100210000E0002AA000000000000000D3C03601068
+:100220008C6450002402FF7F3C1A8000008220244E
+:100230003484380C24020037AC645000AF4200080C
+:1002400024020C80AF4200243C1B80083C060800BE
+:1002500024C6079C3C02080024424E182404001BBC
+:100260002484FFFFAC4600000481FFFD244200040B
+:100270003C020800244203803C010800AC224E20CE
+:100280003C020800244206803C010800AC224E24B7
+:100290003C02080024420D803C010800AC224E6064
+:1002A0003C02080024420A103C03080024630908A9
+:1002B0003C040800248409443C05080024A53C248F
+:1002C0003C010800AC224E683C0208002442057044
+:1002D0003C010800AC264E643C010800AC254E747D
+:1002E0003C010800AC234E7C3C010800AC224E804F
+:1002F0003C010800AC244E843C010800AC234E1C99
+:100300003C010800AC204E283C010800AC204E2CDB
+:100310003C010800AC204E303C010800AC204E34BB
+:100320003C010800AC204E383C010800AC204E3C9B
+:100330003C010800AC204E403C010800AC244E4477
+:100340003C010800AC204E483C010800AC204E4C5B
+:100350003C010800AC204E503C010800AC204E543B
+:100360003C010800AC204E583C010800AC264E5C15
+:100370003C010800AC204E6C3C010800AC254E70DE
+:100380003C010800AC234E780A0006F4000000008F
+:100390003C0308008C6300208F8200081043000398
+:1003A000000000000A00052CAF83000803E00008ED
+:1003B0000000000027BDFFE8AFB00010AFBF001481
+:1003C00027500100920200091040001A2403000186
+:1003D0003C0208008C42002010400016000018214A
+:1003E0000E00056400000000960300083C060800AB
+:1003F00094C64E968E0400188F8200209605000C3D
+:1004000000031C0000661825AC440000AC45000445
+:1004100024040001AC400008AC40000CAC400010CB
+:10042000AC400014AC4000180E000589AC43001C21
+:10043000000018218FBF00148FB000100060102141
+:1004400003E0000827BD001827BDFFE8AFBF00107C
+:100450009742010830437000240220001062000A15
+:1004600028642001548000128FBF00102402400035
+:1004700010620008240260001062000A8FBF0010A2
+:100480000A0000FB000010218FBF00100A0000BB13
+:1004900027BD00180E0003F6000000000A0000FA55
+:1004A0008FBF00100E000FB6000000008FBF0010BD
+:1004B0000000102103E0000827BD00183C020800DE
+:1004C0008C42002027BDFFE810400027AFBF00107E
+:1004D0000E00056400000000974201089743010CDC
+:1004E0008F8500203042003E3063FFFF0002140081
+:1004F00000431025ACA200008F4201003C0608001A
+:1005000094C64E968FBF0010ACA20004974301160C
+:100510009744010E3C02200000031C003084FFFFC2
+:1005200000641825ACA3000800C2302597420110D2
+:100530009743011224040001000214003063FFFFFE
+:1005400000431025ACA2000C9742011427BD0018EF
+:100550003042FFFFACA20010ACA00014ACA0001809
+:100560000A000589ACA6001C8FBF001003E000083C
+:1005700027BD00183C0208008C42002027BDFFE880
+:100580001040002AAFBF00100E00056400000000FC
+:10059000974201089743010C8F8500203042003EAE
+:1005A0003063FFFF0002140000431025ACA20000DE
+:1005B0008F4201003C06080094C64E968FBF001083
+:1005C000ACA20004974301169744010E3C022000A0
+:1005D00000031C003084FFFF00641825ACA3000852
+:1005E00000C23025974201109743011224040001F4
+:1005F000000214003063FFFF00431025ACA2000C82
+:100600009742011427BD00183042FFFFACA2001032
+:100610008F420118ACA200149342010B304200FF3C
+:10062000ACA200180A000589ACA6001C8FBF001000
+:1006300003E0000827BD001827BDFFE0AFB00010A1
+:10064000AFBF0018AFB10014275001009203000B98
+:100650002402001A961100081462003500002021BF
+:100660003222000110400009000000008E0200004C
+:1006700096030014000211C200021040005A10211B
+:10068000A44300800A000179322200020E00012BEF
+:10069000000000003C0208008C420040244200019F
+:1006A0003C010800AC220040322200020002202B54
+:1006B0003C0208008C420044322300042442000122
+:1006C0003C010800AC2200441060001A8FBF0018E3
+:1006D0008F4202B804410008240400013C020800D3
+:1006E0008C420060244200013C010800AC22006002
+:1006F0000A00019C8FB100148E02002096030016A0
+:1007000000002021AF4202808E020004A743028431
+:10071000AF4202883C021000AF4202B83C0208001F
+:100720008C42005C244200013C010800AC22005CC9
+:100730008FBF00188FB100148FB0001000801021FF
+:1007400003E0000827BD002027BDFFE0AFB0001088
+:10075000AFBF0018AFB10014275001009203000B87
+:1007600024020003961100081462003500002021C5
+:100770003222000110400009000000008E0200003B
+:1007800096030014000211C200021040005A10210A
+:10079000A44300800A0001BD322200020E0000FDC9
+:1007A000000000003C0208008C420040244200018E
+:1007B0003C010800AC220040322200020002202B43
+:1007C0003C0208008C420044322300042442000111
+:1007D0003C010800AC2200441060001A8FBF0018D2
+:1007E0008F4202B804410008240400013C020800C2
+:1007F0008C420060244200013C010800AC220060F1
+:100800000A0001E08FB100148E020020960300164A
+:1008100000002021AF4202808E020004A743028420
+:10082000AF4202883C021000AF4202B83C0208000E
+:100830008C42005C244200013C010800AC22005CB8
+:100840008FBF00188FB100148FB0001000801021EE
+:1008500003E0000827BD00209362000003E00008C9
+:10086000AF80000403E000080000102127BDFFE86E
+:10087000AFBF0014AFB000108F420100AF420020A4
+:100880008F420104AF4200A89350010B0E0001E417
+:10089000321000FF3C02080024424E18001018805D
+:1008A0002E10001C16000004006210210E0001E74B
+:1008B0000A0001FF000000008C4200000040F8091F
+:1008C00000000000104000053C0240008F4301047E
+:1008D0003C026020AC4300143C024000AF420138AF
+:1008E0003C0208008C4200348FBF00148FB000100F
+:1008F000244200013C010800AC22003403E000085F
+:1009000027BD001827BDFFE8AFBF00108F42014090
+:100910000E0001E4AF4200200E0003800000000042
+:100920003C024000AF4201783C03080024630038D9
+:100930008C6200008FBF001027BD00182442000108
+:1009400003E00008AC62000027BDFFE8AFBF001065
+:100950008F4201800E0001E4AF4200208F430180EE
+:1009600024020F0014620005000000008F4201887D
+:10097000A742009C0A0002393C024000936200003A
+:1009800024030050304200FF144300083C024000A2
+:100990000E00036400000000144000043C0240000C
+:1009A0000E000E42000000003C024000AF4201B8C1
+:1009B0003C0208008C42003C8FBF00102442000122
+:1009C0003C010800AC22003C03E0000827BD0018F1
+:1009D00003E00008000010218F4301048F82001003
+:1009E00010430008000000003C0208008C42008414
+:1009F000244200013C010800AC2200848F42010423
+:100A0000AF82001003E000080000000027BDFFE8EF
+:100A1000AFBF001027440100948200083043000259
+:100A2000304200041040001B000000008F4202B85A
+:100A300004410008240500013C0208008C420060CB
+:100A4000244200013C010800AC2200600A0002813F
+:100A50008FBF00108C820020948300160000282194
+:100A6000AF4202808C820004A7430284AF42028816
+:100A70003C021000AF4202B83C0208008C42005C0D
+:100A8000244200013C010800AC22005C0A00028103
+:100A90008FBF001010600008240500013C02080010
+:100AA0008C420084244200013C010800AC220084F6
+:100AB0000A0002818FBF00108F4401000E00024423
+:100AC00000000000000028218FBF001000A01021AE
+:100AD00003E0000827BD00183C0208008C42008893
+:100AE000274301009465000C244200013C010800EA
+:100AF000AC2200888C64001803451021904540000A
+:100B0000AF4400388C62001C2403FFF800052E005F
+:100B10000043102434420004AF42003C3C02000574
+:100B2000AF420030000000000000000000000000A4
+:100B3000AF450404000000000000000000000000B9
+:100B40003C02000634420001AF42003000000000C9
+:100B500000000000000000008F4200003042001042
+:100B60001040FFFD0000102103E00008000000001D
+:100B700027BDFFE0AFBF0018AFB100140E00005555
+:100B8000AFB000103C028000344200708C42000084
+:100B9000AF8200140E0000B2000000003C02800092
+:100BA000344600703C0308008C6300A03C0208003F
+:100BB0008C4200A4104300048F8400143C01080000
+:100BC000AC2300A4A743009E8CCA00003C0308008D
+:100BD0008C6300BC3C0208008C4200B80144202316
+:100BE00000641821000040210064202B00481021DF
+:100BF000004410213C010800AC2300BC3C0108006B
+:100C0000AC2200B88F510000322200071040FFE1F3
+:100C1000AF8A00148CC600003C0508008CA500BCFF
+:100C20003C0408008C8400B800CA302300A62821A8
+:100C30000000102100A6302B0082202100862021F8
+:100C4000322700013C010800AC2500BC3C01080033
+:100C5000AC2400B810E00021322200028F420100D3
+:100C6000AF4200208F420104AF4200A89342010B23
+:100C70000E0001E4305000FF2E02001C544000041E
+:100C8000001010800E0001E70A0002F800000000CA
+:100C90003C03080024634E18004310218C420000DE
+:100CA0000040F80900000000104000053C02400030
+:100CB0008F4301043C026020AC4300143C0240001E
+:100CC000AF4201383C0208008C420034244200014B
+:100CD0003C010800AC220034322200021040000E19
+:100CE000322200048F4201400E0001E4AF42002096
+:100CF0000E000380000000003C024000AF4201787B
+:100D00003C0208008C420038244200013C010800EB
+:100D1000AC220038322200041040FF9B3C028000CD
+:100D20008F4201800E0001E4AF4200208F4301801A
+:100D300024020F0014620005000000008F420188A9
+:100D4000A742009C0A00032D3C0240009362000071
+:100D500024030050304200FF144300083C024000CE
+:100D60000E00036400000000544000043C024000F8
+:100D70000E000E42000000003C024000AF4201B8ED
+:100D80003C0208008C42003C244200013C01080067
+:100D9000AC22003C0A0002B03C0280003C02900001
+:100DA0003442000100822025AF4400208F42002001
+:100DB0000440FFFE0000000003E000080000000007
+:100DC0003C028000344200010082202503E000083C
+:100DD000AF44002027BDFFE0AFB10014AFB000105A
+:100DE00000808821AFBF00180E00033530B000FF2F
+:100DF0009362007D0220202102028025A370007DE5
+:100E00008F7000743C0280000E00033E02028024BA
+:100E1000160000098FBF00188F4201F80440FFFE42
+:100E200024020002AF5101C0A34201C43C021000E1
+:100E3000AF4201F88FBF00188FB100148FB00010BF
+:100E400003E0000827BD002027BDFFD000001021CF
+:100E500003E0000827BD003027BDFFE8AFBF00104A
+:100E6000974201843042020010400005000020211A
+:100E70000E001079000000000A000378240400012D
+:100E80008F420188044000098FBF00108F42018803
+:100E90003C03FF00004310243C0304001443000300
+:100EA000240400019362003E8FBF001000801021D7
+:100EB00003E0000827BD0018A36000228F44014012
+:100EC0000A0003432405000127BDFFE8AFBF00145B
+:100ED000AFB000109362000024030020304200FFF6
+:100EE0001043000B00000000936200002403003058
+:100EF000304200FF10430006000000009362000033
+:100F000024030050304200FF144300628FBF0014DE
+:100F100093420148304200FF2443FFFF2C6200054A
+:100F20001040005C8FBF0014000310803C030800D9
+:100F300024634DA4004310218C42000000400008AF
+:100F4000000000000E0003358F4401408F70000C3C
+:100F50008F4201441602000224020001AF62000C1D
+:100F60000E00033E8F4401408F42014414500004A0
+:100F70008FBF00148FB000100A000FED27BD0018BE
+:100F80008F62000C0A0003EC000000009762001062
+:100F90008F4301443042FFFF14620009000000004B
+:100FA00024020001A76200108F420140AF420200FC
+:100FB0003C021000AF4202380A0003F38FBF001456
+:100FC000976200100A0003EC000000000E000335D9
+:100FD0008F440140976200128F4301443050FFFF5D
+:100FE0001603000224020001A76200120E00033E55
+:100FF0008F4401408F420144160200048FBF001449
+:101000008FB000100A00037C27BD00189762001201
+:101010000A0003EC00000000976200148F430144B3
+:101020003042FFFF146200068FBF0014240200014B
+:101030008FB00010A76200140A00131927BD001812
+:10104000976200140A0003EC00000000976200168B
+:101050008F4301443042FFFF146200062402000166
+:101060008FBF00148FB00010A76200160A000BE0BB
+:1010700027BD001897620016144000068FBF0014A9
+:101080003C0208008C420070244200013C01080030
+:10109000AC2200708FB0001003E0000827BD0018DC
+:1010A00027BDFFE8AFBF0014AFB0001093430109A4
+:1010B0002402001F8F500100106200A5286200204A
+:1010C00010400018240200382862000A1040000C6A
+:1010D0002402000B286200081040002C00000000D1
+:1010E000046000E728620002144000282402000681
+:1010F000106200268FBF00140A0004F08FB00010A9
+:101100001062005E2862000B144000DE8FBF0014E6
+:101110002402000E106200738FB000100A0004F069
+:1011200000000000106200C2286200391040000A6E
+:101130002402008024020036106200CC28620037AE
+:10114000104000B624020035106200C38FBF0014A7
+:101150000A0004F08FB000101062002B286200819A
+:1011600010400006240200C824020039106200B6B4
+:101170008FBF00140A0004F08FB0001010620099B5
+:101180008FBF00140A0004F08FB000103C0208006A
+:101190008C420020104000BB8FBF00140E0005647D
+:1011A000000000008F4201008F8300209745010C52
+:1011B00097460108AC6200008F4201043C0408001D
+:1011C00094844E9600052C00AC6200048F420118F6
+:1011D0000006340000C43025AC6200088F42011CB8
+:1011E00024040001AC62000C9342010A00A22825ED
+:1011F000AC650010AC600014AC600018AC66001C5C
+:101200000A0004C48FBF00143C0208008C42002076
+:101210001040009C8FBF00140E0005640000000009
+:10122000974401083C03080094634E969745010CCF
+:10123000000422029746010E8F820020000426003F
+:101240000083202500052C003C03008000A62825F3
+:1012500000832025AC400000AC400004AC400008F6
+:10126000AC40000CAC450010AC400014AC40001881
+:10127000AC44001C0A0004C3240400019742010C82
+:101280001440001500000000936200053042001079
+:1012900014400011000000000E0003350200202160
+:1012A0009362000502002021344200100E00033E2C
+:1012B000A36200059362000024030020304200FF77
+:1012C0001043006F020020218FBF00148FB0001068
+:1012D0000A00108F27BD00180000000D0A0004EF5F
+:1012E0008FBF00143C0208008C42002010400065B3
+:1012F0008FBF00140E000564000000008F4201043F
+:101300008F8300209744010C3C05080094A54E965D
+:10131000AC6200009762002C000424003042FFFF02
+:10132000008220253C02400E00A22825AC64000467
+:10133000AC600008AC60000CAC600010AC60001445
+:10134000AC600018AC65001C0A0004C32404000152
+:101350000E00033502002021A76000080E00033EA6
+:1013600002002021020020210E0003432405000179
+:101370003C0208008C420020104000428FBF001445
+:101380000E000564000000009742010C8F830020CE
+:101390003C05080094A54E9600021400AC700000B5
+:1013A000AC620004AC6000088F64004C3C02401F3B
+:1013B00000A22825AC64000C8F62005024040001B8
+:1013C000AC6200108F620054AC620014AC60001874
+:1013D000AC65001C8FBF00148FB000100A00058997
+:1013E00027BD00189362000024030020304200FF54
+:1013F000104300248FBF00140E000FD702002021DD
+:10140000104000208FBF0014020020218FB0001078
+:10141000000028210A00034327BD001802002021F4
+:101420008FBF00148FB000100A00065127BD0018AE
+:101430009745010C020020218FBF00148FB00010CF
+:101440000A00067127BD0018020020218FB000108D
+:101450000A00069627BD00189345010D02002021C1
+:101460008FB000100A0006E027BD001802002021FE
+:101470008FBF00148FB000100A0006BC27BD0018F3
+:101480008FBF00148FB0001003E0000827BD0018C4
+:101490008F4202780440FFFE34820080AF42024057
+:1014A00024020002A34202443C02100003E00008B0
+:1014B000AF4202783C04080094844EA23C0208002B
+:1014C0008C424EAC3083FFFF000318C00043102154
+:1014D000AF42003C3C0208008C424EA8AF420038AC
+:1014E0003C02005034420008AF42003000000000CF
+:1014F00000000000000000008F4200003042002089
+:101500001040FFFD000000008F4204003C01080075
+:10151000AC224E988F4204043C010800AC224E9C41
+:101520003C020020AF420030000000003C020800F6
+:1015300094424EA03C03080094634EA43C0508006E
+:1015400094A54EA624840001004310213083FFFFA0
+:101550003C010800A4224EA03C010800A4244EA295
+:1015600014650003000000003C010800A4204EA206
+:1015700003E00008000000003C05000A27BDFFE86A
+:10158000034528213C04080024844E88AFBF001086
+:101590000E0005EE2406000A3C02080094424E8A22
+:1015A0003C03080094634EA63042000F244200031F
+:1015B0000043180424027FFF0043102B1040000258
+:1015C000AF83001C0000000D0E0004FB00000000B3
+:1015D0003C02080094424E928FBF001027BD0018B5
+:1015E00003E00008A74200A23C02000A03421021C7
+:1015F000944300063C02080094424E923C010800CD
+:10160000A4234E8E004310238F83001C000214007D
+:10161000000214030043102B03E0000838420001CD
+:1016200027BDFFE8AFBF00103C02000A03421021B3
+:10163000944200063C010800A4224E8E0E0005488C
+:10164000000000005440FFF93C02000A8FBF001068
+:1016500003E0000827BD001827BDFFE8AFBF00105A
+:101660000E000548000000001040000300000000CC
+:101670000E000556000000003C0208008C424E9807
+:101680008FBF001027430400AF4200383C0208001F
+:101690008C424E9C27BD0018AF830020AF42003C17
+:1016A0003C020005AF42003003E00008AF800018A4
+:1016B0008F8200183C0300060002114000431025F1
+:1016C000AF420030000000000000000000000000F9
+:1016D0008F420000304200101040FFFD27420400FE
+:1016E000AF82002003E00008AF8000183C0608002D
+:1016F0008CC64E9C8F8500188F8300203C0208000A
+:1017000094424E9227BDFFE024A5000124630020EF
+:101710002442000124C70020AFB10014AFB0001074
+:10172000AFBF0018AF850018AF8300203C01080050
+:10173000A4224E92309000FF3C010800AC274E9C42
+:1017400004C100080000882104E000060000000039
+:101750003C0208008C424E98244200013C010800E3
+:10176000AC224E983C02080094424E923C03080082
+:1017700094634EA00010202B004310262C42000141
+:1017800000441025144000048F8300182402001028
+:101790001462000F000000000E00057A2411000101
+:1017A0003C03080094634E923C02080094424EA011
+:1017B00014620003000000000E0004FB00000000A3
+:1017C00016000003000000000E0005640000000089
+:1017D0003C03080094634E963C02080094424E94E9
+:1017E000246300013064FFFF3C010800A4234E96EF
+:1017F00014820003000000003C010800A4204E9663
+:1018000012000006000000003C02080094424E92C4
+:10181000A74200A20A0005DC022010210E000548A4
+:101820000000000010400004022010210E000556A8
+:1018300000000000022010218FBF00188FB100149B
+:101840008FB0001003E0000827BD00203084FFFFA8
+:1018500030A5FFFF000018211080000700000000E5
+:10186000308200011040000200042042006518216F
+:101870000A0005E40005284003E00008006010218C
+:1018800010C0000624C6FFFF8CA2000024A500049F
+:10189000AC8200000A0005EE2484000403E0000886
+:1018A0000000000010A0000824A3FFFFAC86000089
+:1018B00000000000000000002402FFFF2463FFFF7F
+:1018C0001462FFFA2484000403E000080000000012
+:1018D00024020001AF62000CA7620010A762001290
+:1018E000A762001403E00008A76200163082007FA0
+:1018F000034210213C08000E004818213C02080059
+:101900008C42002027BDFFD82407FF80AFB3001C06
+:10191000AFB20018AFB10014AFB00010AFBF0020DD
+:101920000080802130B100FF0087202430D200FFEA
+:101930001040002F00009821AF44002C906200005E
+:1019400024030050304200FF1443000E000000004A
+:101950003C0208008C4200E00202102100471024E3
+:10196000AF42002C3C0208008C4200E00202102131
+:101970003042007F0342102100481021944200D4DD
+:101980003053FFFF0E000564000000003C02080019
+:1019900094424E968F8300200011340000C23025FF
+:1019A00000122C003C02400000C2302534A500018A
+:1019B000AC7000008FBF0020AC6000048FB2001834
+:1019C000AC7300088FB10014AC60000C8FB3001C26
+:1019D000AC6500108FB00010AC600014240400014E
+:1019E000AC60001827BD00280A000589AC66001C01
+:1019F0008FBF00208FB3001C8FB200188FB100146E
+:101A00008FB0001003E0000827BD00289343010FAA
+:101A1000240200101062000E2865001110A00007BB
+:101A200024020012240200082405003A1062000675
+:101A30000000302103E0000800000000240500350C
+:101A40001462FFFC000030210A00060900000000BB
+:101A50008F42007424420FA003E00008AF62000C24
+:101A600027BDFFE8AFBF00100E00034324050001AF
+:101A70008FBF001024020001A762001227BD0018CA
+:101A80002402000103E00008A360002227BDFFE05C
+:101A9000AFB10014AFB00010AFBF001830B1FFFFFE
+:101AA0000E000335008080219362003F2403000470
+:101AB000304200FF1443000C0200202112200008D5
+:101AC0002402000A0E0006020000000093620005D6
+:101AD0002403FFFE00431024A36200052402001229
+:101AE000A362003F020020210E00033EA36000819C
+:101AF00016200003020020210E00066600000000F0
+:101B000002002021322600FF8FBF00188FB1001481
+:101B10008FB00010240500380A00060927BD0020F8
+:101B200027BDFFE0AFBF001CAFB20018AFB100147B
+:101B3000AFB000100E000335008080210E000602B9
+:101B4000000000009362003F24120018305100FF93
+:101B5000123200030200202124020012A362003F7F
+:101B6000936200052403FFFE004310240E00033E91
+:101B7000A362000502002021240500201632000780
+:101B8000000030218FBF001C8FB200188FB10014ED
+:101B90008FB000100A00034327BD00208FBF001C38
+:101BA0008FB200188FB100148FB0001024050039D7
+:101BB0000A00060927BD002027BDFFE8AFB00010CE
+:101BC000AFBF00149742010C24050036008080212D
+:101BD00014400010304600FF0E00033500000000E6
+:101BE00024020012A362003F9362000534420010F9
+:101BF0000E000602A36200050E00033E0200202133
+:101C0000020020210E000343240500200A0006D50F
+:101C1000000000000E000609000000000E00033561
+:101C200002002021936200232403FF9F0200202151
+:101C3000004310248FBF00148FB00010A362002354
+:101C40000A00033E27BD001827BDFFE0AFBF001804
+:101C5000AFB10014AFB0001030B100FF0E0003357B
+:101C600000808021240200120E000602A362003FC1
+:101C70000E00033E0200202102002021022030211C
+:101C80008FBF00188FB100148FB0001024050035ED
+:101C90000A00060927BD0020A380002C03E00008ED
+:101CA000A380002D8F4202780440FFFE8F82003413
+:101CB000AF42024024020002A34202443C02100050
+:101CC00003E00008AF4202783C0360008C625400DD
+:101CD000304200081440FFFD000000008C625408F0
+:101CE000AF82000024020052AC605408AC6454304F
+:101CF000AC6254342402000803E00008AC625400D3
+:101D00003C0260008C425400304200081040000544
+:101D10003C0360008C625400304200081440FFFD18
+:101D2000000000008F8300003C02600003E0000818
+:101D3000AC43540890A30000240200050080402119
+:101D40003063003F0000482114620005000050216C
+:101D500090A2001C94A3001E304900FF306AFFFFD0
+:101D6000AD00000CAD000010AD0000249502001481
+:101D70008D05001C8D0400183042FFFF0049102320
+:101D800000021100000237C30040382100862023E2
+:101D900000A2102B0082202300A72823AD05001CE1
+:101DA000AD040018A5090014A5090020A50A001615
+:101DB00003E00008A50A00228F4201F80440FFFE5C
+:101DC00024020002AF4401C0A34201C43C0210003F
+:101DD00003E00008AF4201F83C0208008C4200B466
+:101DE00027BDFFE8AFBF001424420001AFB00010D0
+:101DF0003C010800AC2200B48F4300243C02001FC9
+:101E000030AA00FF3442FF8030D800FF00628024F7
+:101E10000080F82130EF00FF1158003B01405821AD
+:101E2000240CFF803C19000A3163007F000310C0BE
+:101E300000031940006218213C0208008C4200DCBB
+:101E400025680001310D007F03E2102100431021BD
+:101E50003043007F03431821004C102400794821AF
+:101E6000AF4200248D220024016C1824006C7026DF
+:101E7000AD22000C8D220024310800FFAD2200109D
+:101E800095220014952300208D27001C3042FFFF6F
+:101E90003063FFFF8D26001800431023000211005D
+:101EA000000227C30040282100C4302300E2102B89
+:101EB00000C2302300E53823AD27001CAD260018F2
+:101EC00095220020A522001495220022154B000A1D
+:101ED000A52200168D2300248D220008254600012E
+:101EE000314500801462000430C4007F108F00026E
+:101EF00038AA008000C0502151AF000131C800FF56
+:101F00001518FFC9010058218F8400343082007FEA
+:101F1000034218213C02000A006218212402FF80BB
+:101F200000822024AF440024A06A0079A06A0083C4
+:101F30008C6200508F840034AC6200708C65007439
+:101F40003C027FFF3442FFFF00A228240E00073C22
+:101F5000AC650074AF5000248FBF00148FB0001028
+:101F600003E0000827BD001827BDFFC0AFBE003842
+:101F7000AFB70034AFB5002CAFB20020AFB1001C3A
+:101F8000AFB00018AFBF003CAFB60030AFB4002810
+:101F9000AFB300248F4500248F4600288F43002CC8
+:101FA0003C02001F3442FF800062182400C230242B
+:101FB0000080A821AFA3001400A2F0240E000700A7
+:101FC000AFA600103C0208008C4200E02410FF8005
+:101FD0000360882102A2102100501024AF42002487
+:101FE0003C0208008C4200E002A210213042007F37
+:101FF000034218213C02000A00629021924200D262
+:1020000093630084305700FF306300FF2402000117
+:1020100010620034036020212402000214620036A2
+:10202000000000000E0012E50240282192230083E8
+:10203000922200833063007F3042007F000210C094
+:1020400000031940006218213C0208008C4200DCA9
+:1020500002A210210043382100F01024AF420028D2
+:10206000922500789224008330E2007F03421821F9
+:102070003C02000C14850007006280212402FFFF4F
+:10208000A24200F12402FFFFA64200F20A0007F874
+:102090002402FFFF96020020A24200F196020022D5
+:1020A000A64200F28E020024AE4200F49222008387
+:1020B000A24200F08E4200C8AE4200FC8E4200C434
+:1020C000AE4200F88E220050AE4201008E4200CC9B
+:1020D000AE420104922200853042003F0A000853BC
+:1020E000344200400E00130802402821922200854D
+:1020F0000A0008533042003F936200852403FFDF4B
+:102100003042003FA36200859362008500431024A3
+:10211000A36200859363008393620078307400FFAC
+:10212000304200FF10540036240AFF803C0C000CA3
+:102130003283007F000310C00003194000621821A1
+:102140003C0208008C4200DC268800013109007F37
+:1021500002A210210043382130E2007F03421821FF
+:1021600000EA1024AF420028006C80218E02002477
+:10217000028A1824006A5826AE02000C8E0200243F
+:10218000310800FFAE0200109602001496030020F2
+:102190008E07001C3042FFFF3063FFFF8E060018E1
+:1021A0000043102300021100000227C30040282131
+:1021B00000C4302300E2102B00C2302300E5382396
+:1021C000AE07001CAE06001896020020A6020014FE
+:1021D00096020022A602001692220079304200FFE9
+:1021E000105400070000000051370001316800FF63
+:1021F00092220078304200FF1448FFCD0100A02158
+:1022000092220083A22200798E2200500A0008B395
+:10221000AE220070A22200858E22004C2405FF8091
+:10222000AE42010C9222008534420020A222008599
+:10223000924200D13C0308008C6300DC305400FF64
+:102240003C0208008C4200E400143140001420C01D
+:1022500002A3182100C4202102A210210064382109
+:10226000004610210045182400E52824AF45002829
+:10227000AF43002C3042007F924400D030E3007F17
+:1022800003422821034318213C02000C00628021F4
+:102290003C02000E309600FF00A298211296002A00
+:1022A000000000008E02000C0200202102602821A4
+:1022B00010400025261000280E00071B000000001B
+:1022C0009262000D26830001307400FF3042007FCF
+:1022D000A262000D2404FF801697FFF026730020F1
+:1022E0003C0208008C4200DC0000A02102A2102168
+:1022F00000441024AF4200283C0208008C4200E455
+:102300003C0308008C6300DC02A21021004410246E
+:10231000AF42002C3C0208008C4200E402A31821CA
+:102320003063007F02A210213042007F034220214F
+:10233000034318213C02000C006280213C02000E85
+:102340000A000875008298218E4200D8AE22005003
+:102350008E4200D8AE22007092250083924600D1B2
+:1023600092230083924400D12402FF8000A22824FB
+:102370003063007F308400FF00A628250064182AFF
+:102380001060000230A500FF38A50080A225008360
+:10239000A22500790E00070E000000009222007EA8
+:1023A00002A02021A222007A8E2300743C027FFF2B
+:1023B0003442FFFF006218240E00073CAE23007475
+:1023C0008FA20010AF5E00248FBF003CAF420028F8
+:1023D0008FBE00388FA200148FB700348FB6003044
+:1023E0008FB5002C8FB400288FB300248FB200204B
+:1023F0008FB1001C8FB0001827BD004003E000081B
+:10240000AF42002C90A2000024420001A0A20000D4
+:102410003C0308008C6300F4304200FF1443000FBB
+:1024200000803021A0A000003C0208008C4200E4A3
+:102430008F840034008220213082007F03421821E3
+:102440003C02000C006218212402FF80008220243C
+:10245000ACC3000003E00008AF4400288C820000F9
+:102460002442002003E00008AC82000094C2000077
+:102470003C080800950800CA30E7FFFF00804821AB
+:1024800001021021A4C2000094C200003042FFFFEC
+:1024900000E2102B54400001A4C7000094A20000E9
+:1024A0003C0308008C6300CC24420001A4A200007D
+:1024B00094A200003042FFFF544300078F8600289B
+:1024C0000107102BA4A00000544000010100382196
+:1024D000A4C700008F8600288CC4001CAF44003CB9
+:1024E00094A200008F43003C3042FFFF000210C066
+:1024F00000621821AF43003C8F42003C0082202341
+:1025000018800004000000008CC200180A000914A2
+:10251000244200018CC20018AF4200383C02005037
+:1025200034420010AF420030000000000000000004
+:10253000000000008F420000304200201040FFFDEC
+:10254000000000008F420404AD2200048F4204000A
+:10255000AD2200003C020020AF42003003E0000842
+:102560000000000027BDFFE0AFB20018AFB10014BB
+:10257000AFB00010AFBF001C94C2000000C08021AB
+:102580003C120800965200C624420001A602000038
+:102590009603000094E2000000E03021144300059F
+:1025A0008FB100300E0008E9024038210A000946C8
+:1025B000000000008C8300048C8200042442004050
+:1025C00004610007AC8200048C8200040440000413
+:1025D000000000008C82000024420001AC82000058
+:1025E000960200003042FFFF50520001A60000009A
+:1025F0009622000024420001A62200008F820028BB
+:102600009623000094420016144300048FBF001C60
+:1026100024020001A62200008FBF001C8FB2001808
+:102620008FB100148FB0001003E0000827BD002018
+:102630008F89002827BDFFE0AFBF00188D2200283A
+:102640002748040030E700FFAF4200388D22002CFD
+:10265000AF880030AF42003C3C020005AF42003082
+:10266000000000000000000000000000000000006A
+:1026700000000000000000008C82000C8C82000C26
+:10268000AD0200008C820010AD0200048C820018A4
+:10269000AD0200088C82001CAD02000C8CA200145C
+:1026A000AD0200108C820020AD0200149082000563
+:1026B000304200FF00021200AD0200188CA2001888
+:1026C000AD02001C8CA2000CAD0200208CA20010F8
+:1026D000AD0200248CA2001CAD0200288CA20020B8
+:1026E000AD02002CAD060030AD000034978300260B
+:1026F0003402FFFF14620002006020213404FFFF57
+:1027000010E00011AD040038952300369524003602
+:10271000240200013063FFFF000318C20069182182
+:1027200090650040308400070082100400451025A9
+:10273000A06200408F820028944200563042FFFF82
+:102740000A0009ADAD02003C952300369524003601
+:10275000240200013063FFFF000318C20069182142
+:1027600090650040308400070082100400021027AA
+:1027700000451024A0620040AD00003C00000000B5
+:1027800000000000000000003C020006344200404F
+:10279000AF42003000000000000000000000000018
+:1027A0008F420000304200101040FFFD8F8600284D
+:1027B000AF88003024C2005624C7003C24C400283F
+:1027C00024C5003224C600360E000927AFA200102F
+:1027D0008FBF001803E0000827BD00208F8300246E
+:1027E0003C0508008CA500E88F82003430633FFF71
+:1027F0000003198000451021004310212403FF80AD
+:102800003045007F00431024AF42002803451821C3
+:102810003C02000C0062302190C2000D0000382103
+:1028200034420010A0C2000D8F8900288F8A002436
+:1028300095230036000A1382304800032402000169
+:10284000A4C3000E1102000B290200021040000573
+:10285000240200021100000C240300010A0009F008
+:102860000000182111020006000000000A0009F013
+:10287000000018218CC2002C0A0009F0244300013A
+:102880008CC20014244300018CC200180043102B9A
+:1028900014400003000000000A0009F924070001A9
+:1028A0009522003E24420001A522003E000A138228
+:1028B000304300032C6200021040000900802821F0
+:1028C000146000040000000094C200360A000A09E7
+:1028D0003046FFFF8CC600380A000A090080282114
+:1028E000000030213C04080024844EB00A00095A3C
+:1028F00000000000274901008D22000C95230006EE
+:1029000001202021000216023045003F3063FFFF06
+:102910002402002728A6002810A2000EAF8300245E
+:1029200010C00008240200312402002110A2000976
+:102930002402002510A200079382002D0A000A2716
+:102940000000000010A200059382002D0A000A2753
+:10295000000000000A0009C5000000000A0006F798
+:102960000000000095230006912400058D25000C31
+:102970008D2600108D2700188D28001C8D29002021
+:10298000244200013C010800A4234EB63C0108008B
+:10299000A0244EB53C010800AC254EBC3C0108000B
+:1029A000AC264EC03C010800AC274EC83C010800D4
+:1029B000AC284ECC3C010800AC294ED003E0000806
+:1029C000A382002D8F87002827BDFFC0AFB300343E
+:1029D000AFB20030AFB1002CAFB00028AFBF0038AD
+:1029E0003C0208008C4200D094E3003030B0FFFF7E
+:1029F000005010073045FFFF3063FFFF00C09821F3
+:102A0000A7A200103C110800963100C614A30006CE
+:102A10003092FFFF8CE2002424420030AF42003CA1
+:102A20000A000A608CE2002094E200323042FFFF8C
+:102A300054A2000827A400188CE2002C2442003085
+:102A4000AF42003C8CE20028AF4200380A000A6E18
+:102A50008F84002827A5001027A6002002203821F7
+:102A60000E0008E9A7A000208FA200182442003021
+:102A7000AF4200388FA2001CAF42003C8F84002878
+:102A80003C020005AF42003094820034274304002A
+:102A90003042FFFF0202102B14400007AF830030CA
+:102AA00094820054948300340202102100431023C6
+:102AB0000A000A823043FFFF94830054948200345A
+:102AC0000223182100501023006218233063FFFFF7
+:102AD000948200163042FFFF144300030000000000
+:102AE0000A000A9024030001948200163042FFFF7E
+:102AF0000043102B104000058F8200309482001696
+:102B0000006210233043FFFF8F820030AC5300007F
+:102B1000AC400004AC520008AC43000C3C02000680
+:102B200034420010AF4200300000000000000000FE
+:102B3000000000008F420000304200101040FFFDF6
+:102B4000001018C20064182190650040320400078C
+:102B5000240200018FBF00388FB300348FB20030E1
+:102B60008FB1002C8FB00028008210040045102582
+:102B700027BD004003E00008A062004027BDFFA879
+:102B8000AFB60050AFB5004CAFB40048AFB300448F
+:102B9000AFB1003CAFBF0054AFB20040AFB000389F
+:102BA0008C9000003C0208008C4200E88F860034C4
+:102BB000960300022413FF8000C2302130633FFFE0
+:102BC0000003198000C3382100F3102490B20000E4
+:102BD000AF42002C9203000230E2007F034230211A
+:102BE0003C02000E00C28821306300C02402004075
+:102BF0000080A82100A0B021146200260000A021BE
+:102C00008E3400388E220018144000022402000185
+:102C1000AE2200189202000D304200201440001530
+:102C20008F8200343C0308008C6300DC001238C043
+:102C3000001231400043102100C7302100463821E6
+:102C400030E300073C02008030E6007800C2302507
+:102C50000343182100F31024AF4208002463090045
+:102C6000AF4608108E2200188C6300080043102124
+:102C7000AE2200188E22002C8E2300182442000160
+:102C80000062182B1060003D000000000A000B4499
+:102C900000000000920300022402FFC00043102441
+:102CA000304200FF1440000524020001AE2200184B
+:102CB000962200360A000B2D3054FFFF8E2200149E
+:102CC00024420001AE220018920200000002160009
+:102CD00000021603044100290000000096020002D1
+:102CE00027A4001000802821A7A200169602000247
+:102CF00024070001000030213042FFFFAF82002492
+:102D00000E00095AAFA0001C960300023C04080004
+:102D10008C8400E88F82003430633FFF0003198009
+:102D200000441021004310213043007F3C05000C7B
+:102D30000053102403431821AF42002800651821D6
+:102D40009062000D001221403042007FA062000D11
+:102D50003C0308008C6300E48F82003400431021A0
+:102D60000044382130E2007F034210210045102149
+:102D700000F31824AF430028AEA200009222000DF9
+:102D8000304200101040001302A020218F83002841
+:102D90008EA40000028030219462003E2442FFFF96
+:102DA000A462003E948400029625000E3084FFFF4A
+:102DB0000E000A3F30A5FFFF8F82002894430034A5
+:102DC0009622000E1443000302A0202124020001D9
+:102DD000A382002C02C028210E0008CF00000000B2
+:102DE0008FBF00548FB600508FB5004C8FB4004891
+:102DF0008FB300448FB200408FB1003C8FB00038D9
+:102E000003E0000827BD00588F85002827BDFFD0AC
+:102E1000AFB40028AFB20020AFBF002CAFB3002486
+:102E2000AFB1001CAFB0001890A800D090A600D1A0
+:102E30003C0208008C4200E48F83003430C700FF5E
+:102E4000A3A600100062182100071140006218219B
+:102E50003062007F034220213C02000C00822021CE
+:102E60002402FF8000621824311200FF8CB100D8C8
+:102E7000AFA400148CB300DC0000A021AF430028F5
+:102E800010F2001F240200018FA6001427A40014D2
+:102E900027A500108CC2000402228021027010239A
+:102EA000044000172402000190C3000D2402FF809B
+:102EB00000431024304200FF144000070200882124
+:102EC00090C2000D344200400E0008CFA0C2000D99
+:102ED0000A000B8B93A200100E000AAD241400010F
+:102EE0008F830028AC7000D893A20010A06200D19C
+:102EF00093A200101452FFE58FA6001424020001D3
+:102F0000168200048FBF002C0E0006F700000000A0
+:102F10008FBF002C8FB400288FB300248FB2002005
+:102F20008FB1001C8FB0001803E0000827BD0030EF
+:102F300027BDFFD8AFB3001CAFB20018AFB100146B
+:102F4000AFB00010AFBF00200080982100E08021CA
+:102F500030B1FFFF0E00056430D200FF000000001A
+:102F600000000000000000008F820020AC51000033
+:102F7000AC520004AC530008AC40000CAC40001054
+:102F8000AC400014AC4000183C03080094634E961B
+:102F900002038025AC50001C00000000000000006F
+:102FA00000000000240400018FBF00208FB3001C2C
+:102FB0008FB200188FB100148FB000100A0005897D
+:102FC00027BD002827BDFFE8AFB00010AFBF001439
+:102FD00030A5FFFF30C600FF0080802124020C8056
+:102FE000AF420024000000000000000000000000CC
+:102FF00000000000000000000E000B9A000000001E
+:103000003C040800248400E08C8200002403FF803C
+:103010008FBF00140202102100431024AF4200248D
+:103020008C8200003C03000A020280213210007FE3
+:10303000035010218FB000100043102127BD00184D
+:1030400003E00008AF82002827BDFFE8AFBF0010F3
+:103050008F4401403C0308008C6300E02402FF80A1
+:10306000AF8400340083182100621024AF42002492
+:103070003C02000803424021950500023063007FB6
+:103080003C02000A034318210062182130A5FFFF0B
+:103090003402FFFF000030213C07602010A2000630
+:1030A000AF8300282402FFFFA5020002946500D42C
+:1030B0000E000BBF30A5FFFF8FBF001024020C8055
+:1030C00027BD001803E00008AF4200243C020008BE
+:1030D00003424021950200023C0A0800954A00C6BE
+:1030E0003046FFFF14C000073402FFFF8F82002824
+:1030F0008F8400343C076020944500D40A000C28DB
+:1031000030A5FFFF10C200248F87002894E20054EE
+:1031100094E400163045FFFF00A6102300A6182BEC
+:103120003089FFFF106000043044FFFF00C510230A
+:10313000012210233044FFFF008A102B1040000CA6
+:10314000012A102324020001A50200162402FFFF19
+:10315000A502000294E500D48F84003400003021E1
+:1031600030A5FFFF3C0760200A000BBF00000000F5
+:103170000044102A104000080000000095020016CC
+:103180003042000110400004000000009742007E21
+:1031900024420014A502001603E00008000000000D
+:1031A0008F84002827BDFFE0AFBF00189482003451
+:1031B0009483003E1060001A3048FFFF9383002C78
+:1031C00024020001146200278FBF00188F8200289C
+:1031D000000818C231080007006218212447003A8D
+:1031E000244900542444002024450030244600345F
+:1031F00090620040304200FF01021007304200019F
+:10320000104000168FBF00180E000927AFA900104C
+:103210008F820028944200340A000C413048FFFF9E
+:1032200094830036948200341043000E8FBF001840
+:1032300094820036A482003494820056A482005402
+:103240008C82002CAC82002494820032A482003054
+:103250009482003CA482003A8FBF00180A000C013F
+:1032600027BD002003E0000827BD002027BDFFE8A0
+:10327000AFBF00108F4A01003C0508008CA500E09C
+:103280003C02080090424EBC3C0C0800958C4EB6A7
+:1032900001452821304B003F30A2007F03424021EE
+:1032A000396900323C02000A3963003F2C63000197
+:1032B000010240212D2900012402FF8000A22824C0
+:1032C00001234825AF8A003400801821AF4500242F
+:1032D000000030210080282124070001AF88002849
+:1032E0003C04080024844EB0AF8C00241520000656
+:1032F000A380002D240200201562000E3402FFFF7F
+:103300001582000C00000000240200201562000558
+:10331000000000008C6300142402FFFF106200070D
+:10332000000000000E00095A000000000A000C9D79
+:10333000000000000E0009C5006020210E000C36C0
+:10334000000000008FBF001024020C8027BD001871
+:1033500003E00008AF4200243C0208008C4200E079
+:1033600027BDFFA0AFB1003C008210212411FF80D7
+:10337000AFBE0058AFB70054AFB20040AFB0003896
+:10338000AFBF005CAFB60050AFB5004CAFB4004863
+:10339000AFB30044005110248F4800248F49002807
+:1033A0008F470028AF4200243C0208008C4200E016
+:1033B0000080902124060006008210213042007F08
+:1033C000034218213C02000A006280213C02001FD7
+:1033D0003442FF8000E2382427A40010260500F0C4
+:1033E0000122F0240102B8240E0005EEAFA7003040
+:1033F0008FA20018AE0200C48FA2001CAE0200C84B
+:103400008FA20024AE0200CC93A40010920300D13E
+:103410002402FF800082102400431025304900FF61
+:103420003083007F3122007F0062102A10400004A8
+:10343000000310C001311026304900FF000310C006
+:1034400000031940006218213C0208008C4200DC95
+:10345000920400D202421021004310210051102496
+:10346000AF42002893A300103063007F000310C018
+:1034700000031940006218213C0208008C4200DC65
+:1034800002421021004310213042007F03421821E4
+:103490003C02000C006240218FA300142402FFFFB5
+:1034A00010620030309500FF93A2001195030014C4
+:1034B000304400FF3063FFFF0064182B1060000DE4
+:1034C00000000000950400148D07001C8D060018F4
+:1034D0003084FFFF0044202300042100000010215D
+:1034E00000E4382100E4202B00C230210A000D172F
+:1034F00000C43021950400148D07001C8D060018AF
+:103500003084FFFF008220230004210000001021EE
+:103510000080182100C2302300E4202B00C4302397
+:1035200000E33823AD07001CAD06001893A200117C
+:10353000A502001497A20012A50200168FA2001483
+:10354000AD0200108FA20014AD02000C93A2001176
+:10355000A502002097A20012A50200228FA200144B
+:10356000AD0200242406FF80024610243256007F5C
+:10357000AF420024035618213C02000A0062802159
+:103580008E02004C8FA200203124007F000428C04E
+:10359000AE0200508FA200200004214000852821A7
+:1035A000AE02007093A2001001208821A2020083C5
+:1035B00093A20010A2020079920200853042003FDF
+:1035C000A20200853C0208008C4200DC024210216D
+:1035D0000045102100461024AF42002C3C02080098
+:1035E0008C4200E43C0308008C6300DC02421021A2
+:1035F0000044102100461024AF4200283C0208007D
+:103600008C4200E402431821006518210242102177
+:10361000004410213042007F3063007F93A50010EA
+:1036200003422021034318213C02000E0062402186
+:103630003C02000C10B1008C008248213233007F24
+:10364000166000192404FF803C0208008C4200DC54
+:103650000242102100441024AF42002C3C0208001A
+:103660008C4200E43C0308008C6300DC0242102121
+:1036700000441024AF4200283C0208008C4200E4C1
+:10368000024318213063007F024210213042007F44
+:1036900003422021034318213C02000E0062402116
+:1036A0003C02000C008248219124000D2414FF806C
+:1036B0000000102100942025A124000D9504000293
+:1036C000950500148D07001C3084FFFF30A5FFFF17
+:1036D0008D060018008520230004210000E4382115
+:1036E00000C2302100E4202B00C43021AD07001CB3
+:1036F000AD06001895020002A5020014A5000016F0
+:103700008D020008AD0200108D020008AD02000C11
+:1037100095020002A5020020A50000228D020008EB
+:10372000AD0200249122000D3042004010400042C2
+:10373000262200013C0208008C4200E0A3B30028CE
+:103740003C10000A0242102100541024AF42002411
+:103750003C0208008C4200E0A380002C27A4002C2F
+:10376000024210213042007F0342182100701821CC
+:103770008C6200D88D26000427A50028AFA9002C54
+:1037800000461021AC6200D80E000AADAF830028BD
+:1037900093A300288F8200280E0006F7A04300D1D3
+:1037A0000E000C360000000002541024AF4200242A
+:1037B0003C0208008C4200DC00132940001320C0AA
+:1037C00000A42021024210210044102100541024A2
+:1037D000AF42002C3C0208008C4200E43C0308008D
+:1037E0008C6300DC03563021024210210045102179
+:1037F00000541024AF4200283C0208008C4200E430
+:1038000002431821006418210242102100451021B2
+:103810003042007F3063007F0342202103431821A0
+:103820003C02000E006240213C02000C00D08021CE
+:1038300000824821262200013043007F14750005D4
+:10384000304400FF2403FF8002231024004310268D
+:10385000304400FF93A20010008088212508002832
+:103860001444FF762529002093A400108FA3001490
+:103870002402FFFF1062000A308900FF2482000149
+:10388000248300013042007F14550005306900FF99
+:103890002403FF800083102400431026304900FFDA
+:1038A00092020078305300FF11330032012088214A
+:1038B0003C0208008C4200DC3225007F000520C05D
+:1038C0000005294000A42021024210212406FF8087
+:1038D0000044102100461024AF42002C3C03080095
+:1038E0008C6300DC3C0208008C4200E40243182197
+:1038F00002421021004510210064182100461024C6
+:103900003063007FAF420028034318213C02000EC1
+:10391000006240213C0208008C4200E48D06000C4D
+:103920000100202102421021004510213042007F79
+:10393000034218213C02000C0062482110C0000D17
+:10394000012028210E00071B000000002402FF8038
+:103950000222182426240001006228263082007FDB
+:1039600014550002308300FF30A300FF1473FFD012
+:10397000006088218E0300743C027FFF3442FFFF09
+:1039800000621824AE0300740E00073C02402021A0
+:10399000AF5700248FA20030AF5E00288FBF005CBD
+:1039A0008FBE00588FB700548FB600508FB5004CB3
+:1039B0008FB400488FB300448FB200408FB1003CF9
+:1039C0008FB0003827BD006003E00008AF42002C34
+:1039D00027BDFFD8AFB1001CAFBF0020AFB00018AB
+:1039E00027510188922200032408FF803C03000A2B
+:1039F0003047007FA3A700108F4601803C020800DB
+:103A00008C4200E0AF86003400C2282100A81024B8
+:103A1000AF4200249224000030A2007F0342102114
+:103A200000431021AF8200283084007F240200026E
+:103A300014820025000719403C0208008C4200E473
+:103A400000C210210043282130A2007F0342182128
+:103A500000A81024AF4200283C02000C006218218C
+:103A60009062000DAFA3001400481025A062000D65
+:103A70008FA300149062000D304200405040006A55
+:103A80008FBF00208F860028A380002C27A400145D
+:103A90008CC200D88C63000427A5001000431021BD
+:103AA0000E000AADACC200D893A300108F8200288C
+:103AB0000E0006F7A04300D10E000C3600000000F7
+:103AC0000A000ED88FBF00200E00070000C0202182
+:103AD0000E00070E000000003C0200080342802197
+:103AE000922300019202007B1443004F8FBF0020FD
+:103AF000922200003044007F24020004108200174C
+:103B0000288200051040000624020005240200035C
+:103B1000108200078FB1001C0A000ED900000000BF
+:103B2000108200128FBF00200A000ED98FB1001C36
+:103B300092050083920600788E0700748F8400340B
+:103B400030A500FF00073E0230C600FF0E0007440C
+:103B500030E7007F0A000ED88FBF00200E000CA4B3
+:103B60008F8400340A000ED88FBF002024020C80FE
+:103B7000AF4200249202003E30420040104000203C
+:103B8000000000009202003E000216000002160330
+:103B900004410006000000008F8400340E0006710E
+:103BA000240500930A000ED88FBF00209202003F28
+:103BB00024030018304200FF1443000C8F840034AB
+:103BC000240500390E000609000030210E000335DF
+:103BD0008F84003424020012A202003F0E00033E34
+:103BE0008F8400340A000ED88FBF002024050036D1
+:103BF0000E000609000030210A000ED88FBF0020F9
+:103C00000E0003358F8400349202000534420020F8
+:103C1000A20200050E00033E8F8400340E00108FB8
+:103C20008F8400348FBF00208FB1001C8FB000182C
+:103C300024020C8027BD002803E00008AF420024C6
+:103C400027BDFFE8AFB00010AFBF0014274301004D
+:103C500094620008000214000002140304410002F0
+:103C6000000080212410000194620008304200808E
+:103C70001040001A02001021946200083042200017
+:103C800010400016020010218C6300183C021C2D0D
+:103C9000344219ED240600061062000F3C07602133
+:103CA0003C0208008C4200D4104000078F8200289C
+:103CB0008F830028906200623042000F344200403F
+:103CC000A06200628F8200288F840034944500D463
+:103CD0000E000BBF30A5FFFF020010218FBF0014A4
+:103CE0008FB0001003E0000827BD001827BDFFE0DB
+:103CF000AFB10014AFB00010A380002CAFBF00180C
+:103D00008F4501003C0308008C6300E02402FF8023
+:103D1000AF85003400A318213064007F03442021C4
+:103D2000006218243C02000A00822021AF430024D4
+:103D3000275001008E0200148C8300DCAF84002821
+:103D40000043102318400004000088218E02001454
+:103D50000E000B50AC8200DC9202000B2403000228
+:103D6000304200FF1443002F0000000096020008BC
+:103D7000304300FF24020082146200052402008404
+:103D80000E000A0B000000000A000F640000000093
+:103D900014620009240200818F8200288F8400347D
+:103DA0003C076021944500D49206000530A5FFFF32
+:103DB0000A000F5330C600FF146200270000000005
+:103DC0009202000A304300FF3062002010400004DD
+:103DD000306200408F8400340A000F4F24060040F8
+:103DE00010400004000316008F8400340A000F4FB7
+:103DF0002406004100021603044100178F8400349A
+:103E0000240600428F8200283C076019944500D4A4
+:103E100030A5FFFF0E000BBF000000000A000F647A
+:103E2000000000009202000B24030016304200FF45
+:103E300010430006000000009202000B240300174C
+:103E4000304200FF14430004000000000E000EDEAC
+:103E500000000000004088210E000C360000000029
+:103E60009202000A304200081040000624020C8032
+:103E70008F8500283C0400080E0012BD0344202159
+:103E800024020C80AF4200248FBF001802201021B2
+:103E90008FB000108FB1001403E0000827BD002090
+:103EA00027BDFFE8AFBF0014AFB000108F50002453
+:103EB0003C0308008C6300E08F4501002402FF8072
+:103EC00000A318213064007F0344202100621824DD
+:103ED0003C02000A00822021AF850034AF43002459
+:103EE00090820062AF8400283042000F34420050BC
+:103EF000A08200623C02001F3442FF800E0006F7E1
+:103F000002028024AF5000248FBF00148FB0001035
+:103F100003E0000827BD00183C0208008C42002086
+:103F20001040001D2745010090A300093C02000835
+:103F30000342202124020018546200033C020008BE
+:103F40000A000FA5240200080342202124020016C3
+:103F5000146200052402001724020012A082003F10
+:103F60000A000FAF94A700085462000694A7000847
+:103F7000936200052403FFFE00431024A3620005A2
+:103F800094A7000890A6001B8CA4000094A500062E
+:103F90000A000B9A00073C0003E000080000000044
+:103FA0002744010094820008304500FF38A30082B6
+:103FB00038A200842C6300012C4200010062182505
+:103FC00010600006240200839382002D1040000D33
+:103FD000000000000A000C690000000014A20005A7
+:103FE00024A2FF808F4301043C02602003E000080C
+:103FF000AC430014304200FF2C420002104000038A
+:10400000240200220A000F090000000014A200038D
+:10401000000000000A000F76000000000A000F9464
+:10402000000000009363007E9362007A144300094D
+:10403000000020219362000024030050304200FF62
+:1040400014430004240400019362007E2442000112
+:10405000A362007E03E00008008010218F4201F877
+:104060000440FFFE24020002AF4401C0A34201C489
+:104070003C02100003E00008AF4201F827BDFFE852
+:10408000AFBF00109362003F2403000A304200FFDC
+:1040900014430046000000008F6300548F62004C00
+:1040A0001062007F036030219362000024030050FF
+:1040B000304200FF1443002F000000008F440140F5
+:1040C0003C0208008C4200E02403FF8000821021A3
+:1040D00000431024AF4200243C0208008C4200E060
+:1040E0008F6500543C03000A008220213084007F49
+:1040F0000344102100431021AC4501089762003CA5
+:104100008F63004C3042FFFF000210400062182114
+:10411000AF63005C8F6300548F64004C9762003C77
+:10412000006418233042FFFF0003184300021040D0
+:104130000043102A10400006000000008F62005467
+:104140008F63004C004310230A0010250002104327
+:104150009762003C3042FFFF00021040ACC2006496
+:1041600024020001A0C0007CA0C2008424020C80B4
+:10417000AF4200240E000FD78F4401401040004989
+:104180008FBF00108F4301408F4201F80440FFFEB3
+:1041900024020002AF4301C0A34201C43C0210004C
+:1041A000AF4201F80A0010778FBF00109362003F02
+:1041B00024030010304200FF1443000400000000FC
+:1041C0008F4401400A001063000028219362003FE1
+:1041D00024030016304200FF14430004240200149C
+:1041E000A362003F0A001071000000008F62004CC3
+:1041F0008F630050004310230441002A8FBF00103A
+:104200009362008124420001A362008193620081D5
+:104210003C0308008C6300C0304200FF14430010D0
+:10422000000000009362003F24030004304200FFBE
+:1042300014430006000000008F4401408FBF0010AF
+:10424000240500930A00067127BD00188F44014021
+:10425000240500938FBF00100A0006E027BD001858
+:104260008F4401400E000335000000008F620054AF
+:104270002442FFFFAF6200548F6200502442FFFFD0
+:10428000AF6200500E00033E8F4401408F44014056
+:104290008FBF0010240500040A00034327BD001847
+:1042A0008FBF001003E0000827BD00188F4201886F
+:1042B0009363007E00021402304400FF306300FF6D
+:1042C0001464000D0000000093620080304200FF83
+:1042D0001044000900000000A36400809362000005
+:1042E00024030050304200FF14430004000000008B
+:1042F0000A0007A88F440180A364008003E000083F
+:104300000000000027BDFFE8AFB00010AFBF0014F1
+:1043100093620005240300303042003014430089CA
+:10432000008080213C0208008C4200201040008068
+:10433000020020210E000564000000008F8500208F
+:10434000ACB000009362003E9363003F304200FF38
+:1043500000021200306300FF00431025ACA20004ED
+:104360009362008200021600000216030441000559
+:10437000000000003C0308008C6300480A0010B5F0
+:10438000000000009362003E3042004014400003F1
+:104390000000182193620081304300FF9362008285
+:1043A00000031E00304200FF0002140000621825C6
+:1043B000ACA300088F620040ACA2000C8F620048E2
+:1043C000ACA200108F62004CACA200148F620050AF
+:1043D0008F63004C004310230441000300000000E1
+:1043E0000A0010C98F62004C8F620050ACA2001806
+:1043F0003C02080094424E963C03C00B0000202172
+:10440000004310250E000589ACA2001C8F620054E9
+:104410008F840020AC8200008F620058AC820004C0
+:104420008F62005CAC8200088F6200608F43007472
+:1044300000431021AC82000C8F620064AC8200103B
+:10444000976300689762006A00031C003042FFFF18
+:1044500000621825AC83001493620082240300805C
+:10446000304200FF14430003000000000A0010FD6A
+:10447000AC8000188F63000C240200011062000E53
+:104480002402FFFF9362003E304200401440000AC5
+:104490002402FFFF8F63000C8F4200740062182318
+:1044A0003C02080000621024144000020000282191
+:1044B0000060282100051043AC8200183C0208006F
+:1044C00094424E963C03C00C00002021004310256E
+:1044D0008F8300200E000589AC62001C8F620018DB
+:1044E0008F8300203C05080094A54E96240400010B
+:1044F000AC620000AC6000048F66006C3C02400DB2
+:1045000000A22825AC6600088F6200DCAC62000CBB
+:10451000AC6000109362000500021600AC6200144B
+:10452000AC6000180E000589AC65001C020020215B
+:104530008FBF00148FB00010A36000050A0004F2C2
+:1045400027BD00188FBF00148FB0001003E00008D3
+:1045500027BD00189742007C30C600FFA08600846B
+:104560003047FFFF2402000514C2000B24E346502D
+:1045700090A201122C4200071040000724E30A0019
+:1045800090A30112240200140062100400E2102122
+:104590000A0011353047FFFF3067FFFF03E00008D6
+:1045A000A4870014AC87004C8CA201080080402135
+:1045B00000A0482100E2102330C600FF184000038D
+:1045C00093AA001324E2FFFCACA2010830C2000150
+:1045D00010400008000000008D02005000E210238F
+:1045E00004410013240600058D02005410E200105F
+:1045F000000000008D02005414E2001A00000000C8
+:104600003C0208008C4200D8304200201040000AD2
+:1046100024020001910300789102008314430006F4
+:104620002402000101002021012028212406000489
+:104630000A00112300000000A100008411400009BD
+:10464000A50200148F4301008F4201F80440FFFED1
+:1046500024020002AF4301C0A34201C43C02100087
+:10466000AF4201F803E000080000000027BDFFE8AA
+:104670008FA90028AFBF00100080402100E9182357
+:104680001860007330C600FFA080007CA08000810D
+:104690008CA2010800E210230440004D000000003D
+:1046A0008C8200509483003C8C8400640047482333
+:1046B0003063FFFF012318210083202B10800004AA
+:1046C000000000008D0200640A00118600E2102143
+:1046D0009502003C3042FFFF0122102100E2102130
+:1046E000AD02005C9502003C8D03005C3042FFFF90
+:1046F0000002104000E210210043102B1040000384
+:10470000000000000A0011958D02005C9502003C3B
+:104710003042FFFF0002104000E21021AD02005CB9
+:10472000A1000084AD07004C8CA2010800E2102318
+:104730001840000224E2FFFCACA2010830C20001D4
+:104740001040000A000000008D02005000E210231B
+:1047500004410004010020218D02005414E20003F2
+:10476000000000000A0011B7240600058D02005465
+:1047700014E200478FBF00103C0208008C4200D8B2
+:10478000304200201040000A24020001910300780A
+:10479000910200831443000624020001010020213D
+:1047A000240600048FBF00100A00112327BD001843
+:1047B000A1000084A50200148F4301008F4201F87C
+:1047C0000440FFFE240200020A0011DC0000000089
+:1047D0008C82005C004910230043102B54400001E0
+:1047E000AC87005C9502003C3042FFFF0062102B5A
+:1047F00014400007240200029502003C8D03005C77
+:104800003042FFFF00621821AD03005C2402000269
+:10481000AD07004CA10200840E000FD78F440100A9
+:104820001040001B8FBF00108F4301008F4201F822
+:104830000440FFFE24020002AF4301C0A34201C4B2
+:104840003C021000AF4201F80A0011F28FBF0010C5
+:1048500030C200101040000E8FBF00108C83005C2F
+:104860009482003C006918233042FFFF0062182147
+:104870003C023FFF3444FFFF0083102B54400001F3
+:104880000080182101231021AD02005C8FBF0010B1
+:1048900003E0000827BD001827BDFFE88FAA002805
+:1048A000AFBF00100080402100EA482319200021FA
+:1048B00030C600FF8C83005C8C820064006A182381
+:1048C0000043102B504000100069182194A20110E1
+:1048D00001221021A4A2011094A201103042FFFF76
+:1048E0000043102B1440000A3C023FFF94A2011029
+:1048F00000431023A4A201109482003C3042FFFF29
+:104900000A00121100621821A4A001103C023FFF0E
+:104910003444FFFF0083102B544000010080182115
+:1049200000671021AD02005CA100007C0A00125952
+:10493000A100008130C200101040003C00000000C7
+:104940008C820050004A10231840003800000000FC
+:104950009082007C24420001A082007C9082007C36
+:104960003C0308008C630024304200FF0043102BFE
+:104970001440005C8FBF00108CA2010800E21023DD
+:1049800018400058000000008C8300549482003CC2
+:10499000006A18233042FFFF000318430002104052
+:1049A0000043102A10400005000000008C820054D3
+:1049B000004A10230A001240000210439482003C77
+:1049C0003042FFFF00021040AD0200649502003C3F
+:1049D0008D0400649503003C3042FFFF000210404C
+:1049E000008220213063FFFF008318210143102142
+:1049F000AD02005C8D020054ACA20108240200024A
+:104A0000A10200840E000FD78F4401001040003532
+:104A10008FBF00108F4301008F4201F80440FFFE5A
+:104A2000240200020A00128200000000AD07004CC0
+:104A30008CA2010800E210231840000224E2FFFCCF
+:104A4000ACA2010830C200011040000A00000000C2
+:104A50008D02005000E210230441000401002021D7
+:104A60008D02005414E20003000000000A001279D5
+:104A7000240600058D02005414E2001A8FBF0010B6
+:104A80003C0208008C4200D8304200201040000A4E
+:104A90002402000191030078910200831443000670
+:104AA0002402000101002021240600048FBF001011
+:104AB0000A00112327BD0018A1000084A5020014DC
+:104AC0008F4301008F4201F80440FFFE24020002E0
+:104AD000AF4301C0A34201C43C021000AF4201F841
+:104AE0008FBF001003E0000827BD00188FAA001038
+:104AF0008C8200500080402130C600FF004A102305
+:104B000000A048211840000700E0182124020001FD
+:104B1000A0800084A0A00112A48200140A0011F455
+:104B2000AFAA0010A0800081AD07004C8CA2010844
+:104B300000E210231840000224E2FFFCACA20108AE
+:104B400030C2000110400008000000008D0200503B
+:104B50000062102304410013240600058D02005456
+:104B600010620010000000008D0200541462001159
+:104B7000000000003C0208008C4200D830420020B7
+:104B80001040000A24020001910300789102008382
+:104B900014430006240200010100202101202821E5
+:104BA000240600040A00112300000000A100008474
+:104BB000A502001403E000080000000027BDFFE08C
+:104BC000AFBF0018274201009046000A8C4800142D
+:104BD0008C8B004C9082008430C900FF0168182340
+:104BE000304A00FF1C60001A2D4600062402000116
+:104BF0000142100410C00016304300030120302190
+:104C00000100382114600007304C000C15800009A9
+:104C1000304200301440000B8FBF00180A0012E32E
+:104C2000000000000E0011F4AFAB00100A0012E308
+:104C30008FBF00180E001169AFAB00100A0012E31D
+:104C40008FBF0018AFAB00100E001289AFAA00147E
+:104C50008FBF001803E0000827BD002024020003D6
+:104C6000A08200848C82005403E00008ACA20108FA
+:104C70003C02000803421821906200812406004390
+:104C80003C07601924420001A0620081906300810A
+:104C90003C0208008C4200C0306300FF1462001028
+:104CA0002403FF803C0208008C4200E000821021B7
+:104CB00000431024AF4200243C0208008C4200E074
+:104CC0003C03000A008210213042007F0342102181
+:104CD00000431021944500D40A000BBF30A5FFFF0C
+:104CE00003E000080000000027BDFFE0AFBF001890
+:104CF000AFB10014AFB000108F420180008080215E
+:104D000000A088210E0012EA00402021A2000084A9
+:104D10008E0200548FBF00188FB00010AE22010821
+:104D20008FB1001403E0000827BD002027BDFFE07D
+:104D30003C020008AFB00010AFBF0018AFB10014C4
+:104D4000034280218F510140920300848E04005061
+:104D50008E02004C14820040306600FF3C020800C6
+:104D60008C4200E02403FF80022210210043102423
+:104D7000AF4200243C0208008C4200E09744007CD3
+:104D800092050081022210213042007F0342182147
+:104D90003C02000A0062182114A0000B3084FFFFBF
+:104DA0002402000554C20014248205DC9062011222
+:104DB00024420001A062011224020C80AF420024B0
+:104DC0000A00134224020005A0600112240200051B
+:104DD00014C20009248205DC920200812C420007E3
+:104DE0005040000524820A0092030081240200142E
+:104DF00000621004008210213044FFFFA60400145A
+:104E00000E0012EA022020219602003C8E03004C84
+:104E1000022020213042FFFF0002104000621821D2
+:104E20000E000335AE03005C9202007D02202021BB
+:104E3000344200400E00033EA202007D8F4201F882
+:104E40000440FFFE24020002AF5101C0A34201C48E
+:104E50003C021000AF4201F88FBF00188FB1001460
+:0C4E60008FB0001003E0000827BD002008
+:044E6C0008000E7CB0
+:104E700008000EC408000F0408000F5008000F843B
+:104E80000A00002000000000000000000000000DEB
+:104E90006370342E362E31360000000004061004F4
+:104EA0000000000000000000000000000000000002
+:104EB00000000000000000000000000000000000F2
+:104EC00000000000000000000000002000000000C2
+:104ED00000000000000000000000000000000000D2
+:104EE00000000000000000000000000000000000C2
+:104EF0000000000000000000000000010000002B86
+:104F00000000000010000003000000000000000D81
+:104F10000000000D3C020800244258A43C03080095
+:104F200024635F70AC4000000043202B1480FFFD21
+:104F3000244200043C1D080037BD7FFC03A0F02183
+:104F40003C100800261000803C1C0800279C58A438
+:104F50000E00019C000000000000000D27BDFFE8CE
+:104F60003C096018AFBF00108D2C5000240DFF7F4E
+:104F700024080031018D5824356A380C24070C00B0
+:104F80003C1A8000AD2A50003C04800AAF4800085B
+:104F90003C1B8008AF4700240E000924AF8400109A
+:104FA0000E0008E7000000000E00083400000000BA
+:104FB0000E00125E000000003C0460168C850000AC
+:104FC0003C06FFFF3C02535300A618241062003F2A
+:104FD00034867C0094C201F2A780002C10400003AC
+:104FE000A78000CC38581E1EA798002C94C201F848
+:104FF00010400004978300CC38591E1EA79900CC9E
+:10500000978300CC2C7F006753E0000124030066E7
+:105010009784002C2C820401144000020060282197
+:10502000240404003C0760008CE904382403103C8D
+:105030003128FFFF1103001730B9FFFF5720000C84
+:10504000A38000CE24020050A38200CE939F00CE06
+:1050500013E0000A8FBF001027BD0018A78000CC06
+:10506000A780002CA780003403E00008A78000E69A
+:10507000939F00CE17E0FFF88FBF001027BD0018E8
+:10508000A78500CCA784002CA780003403E000088B
+:10509000A78000E6A38000CE8CCB003C316A0001E3
+:1050A0001140000E0000000030A7FFFF10E0FFE6F7
+:1050B000240200508CCC00C83186000114C0FFE4EB
+:1050C000939F00CE0A000072240200518C8F0004CE
+:1050D0003C0E60000A00005501EE30218CEF0808FC
+:1050E000240D5708000F740211CD000430B8FFFFE3
+:1050F000240500660A000073240404001700FFD48E
+:10510000939F00CE0A000072240200508F86001088
+:105110003089FFFF000939408CC300103C08005063
+:1051200000E82025AF4300388CC500142742040056
+:10513000AF82001CAF45003CAF44003000000000CF
+:10514000000000000000000000000000000000005F
+:105150000000000000000000000000008F4B000075
+:10516000316A00201140FFFD0000000003E000084C
+:10517000000000008F840010948A001A8C8700249D
+:105180003149FFFF000940C000E83021AF46003C34
+:105190008C8500248F43003C00A310231840002975
+:1051A000000000008C8B0020256200013C0D0050A7
+:1051B00035AC0008AF420038AF4C003000000000B2
+:1051C00000000000000000000000000000000000DF
+:1051D0000000000000000000000000008F4F0000F1
+:1051E00031EE002011C0FFFD000000008F4A0400D6
+:1051F0003C080020AC8A00108F490404AC890014DC
+:10520000AF48003000000000948600189487001C0E
+:1052100000C71821A48300189485001A24A2000155
+:10522000A482001A9498001A9499001E133800035F
+:105230000000000003E000080000000003E0000898
+:10524000A480001A8C8200200A0000CC3C0D005083
+:105250000A0000BD000000003C0308008C63002031
+:105260008F82001827BDFFE810620008AFBF001052
+:105270000E0000F4AF8300183C0308008C6300208C
+:1052800024040001106400048F8900108FBF0010F7
+:1052900003E0000827BD00188FBF00103C07601214
+:1052A000A520000A9528000A34E5001027BD001843
+:1052B0003106FFFF03E00008ACA600903C020800A6
+:1052C0008C42002027BDFFC8AFBF0034AFBE003006
+:1052D000AFB7002CAFB60028AFB50024AFB40020A4
+:1052E000AFB3001CAFB20018AFB1001410400050B3
+:1052F000AFB000108F840010948600069483000ADB
+:1053000000C3282330B6FFFF12C0004A8FBF00340D
+:1053100094890018948A000A012A40233102FFFF71
+:1053200002C2382B14E0000202C0202100402021DC
+:105330002C8C0005158000020080A021241400049C
+:105340000E0000A3028020218F8700100280982188
+:10535000AF80001494ED000A028088211280004E74
+:1053600031B2FFFF3C1770003C1540003C1E60004E
+:105370008F8F001C8DEE000001D71824507500504F
+:105380000220202102A3802B160000353C182000AB
+:105390005078004702202021241000018F83001440
+:1053A00014600039029158230230F8230250C821BA
+:1053B00033F1FFFF1620FFEE3332FFFF8F8700101F
+:1053C0003C110020AF5100300000000094E6000ABC
+:1053D0003C1E601237D5001002662821A4E5000AA1
+:1053E00094E2000A94F2000A94F400183057FFFF88
+:1053F0001292003BAEB700908CED00148CE40010CC
+:105400000013714001AE4021000E5FC3010E502B0E
+:10541000008B4821012A1821ACE80014ACE30010ED
+:1054200002D3382330F6FFFF16C0FFB98F84001077
+:105430008FBF00348FBE00308FB7002C8FB600288E
+:105440008FB500248FB400208FB3001C8FB20018DA
+:105450008FB100148FB0001003E0000827BD0038A2
+:10546000107E001B000000001477FFCC2410000108
+:105470000E0015A9000000008F8300141060FFCB00
+:105480000230F823029158238F87001001702021E9
+:105490000A0001873093FFFF8F8300141460FFCB55
+:1054A0003C110020AF5100300A0001530000000001
+:1054B0000E00079B024028210A000147004080217E
+:1054C0000E000341024028210A00014700408021CC
+:1054D0000E001471022020210A00014700408021A3
+:1054E0000E0000BD000000000A00016902D338234D
+:1054F00027BDFFE8AFB00010AFBF00140E000037AB
+:10550000000000003C028000345000700A0001AA34
+:105510008E0600008F4F000039EE000131C20001FD
+:10552000104000248F8600A88E0700003C0C080065
+:105530008D8C003C3C0908008D29003800E668236A
+:10554000018D28210000502100AD302B012A40217F
+:10555000010620213C010800AC25003CAF8700A8D3
+:105560003C010800AC2400380E0000F600000000EA
+:105570003C0308008C6300701060FFE6006020218F
+:105580003C0508008CA500683C0608008CC6006C31
+:105590000E001538000000003C010800AC2000702F
+:1055A0008F4F000039EE000131C200011440FFDED0
+:1055B0008F8600A88E0A00008F8B00A83C0508008B
+:1055C0008CA5003C3C0408008C840038014B482327
+:1055D00000A938210082182100E9402B0068102121
+:1055E0003C010800AC27003C3C010800AC2200381C
+:1055F0008F5F01002419FF0024180C0003F92024F8
+:1056000010980012AF840000AF440020936D00009A
+:10561000240C002031A600FF10CC0012240E0050F4
+:1056200010CE00043C194000AF5901380A0001A314
+:10563000000000000E0011D4000000003C194000E2
+:10564000AF5901380A0001A3000000000E00010F4D
+:10565000000000003C194000AF5901380A0001A3C6
+:10566000000000008F58010000802821330F00FF48
+:1056700001E020210E0002EEAF8F00043C19400033
+:10568000AF5901380A0001A30000000000A4102B4C
+:1056900024030001104000090000302100052840CB
+:1056A00000A4102B04A00003000318405440FFFC8A
+:1056B000000528405060000A0004182B0085382B94
+:1056C00054E000040003184200C330250085202365
+:1056D000000318421460FFF9000528420004182B4B
+:1056E00003E0000800C310213084FFFF30A5FFFF56
+:1056F0008F4201B80440FFFE3C0740800087302500
+:105700003C031000AF400180AF450184AF460188E3
+:1057100003E00008AF4301B83084FFFF8F4201B8B7
+:105720000440FFFE3C0740388CA600000087282577
+:105730003C031000AF460180AF45018803E000083C
+:10574000AF4301B88F8300388F8600301066000B9E
+:10575000008040213C07080024E75A18000328C0B5
+:1057600000A710218C44000024630001108800056C
+:105770003063000F5466FFFA000328C003E00008FE
+:10578000000010213C07080024E75A1C00A7302124
+:1057900003E000088CC200003C039000346200016A
+:1057A00000822025AF4400208F45002004A0FFFE8A
+:1057B0000000000003E00008000000003C0380003F
+:1057C000346200010082202503E00008AF4400207D
+:1057D00027BDFFE0AFB100143091FFFFAFB0001064
+:1057E000AFBF00181220001500A080218CA500007A
+:1057F00010A00013240400020E000C6B24060140CC
+:10580000AE0000008F4201B80440000D00002821C6
+:105810003C064000022620258FBF00188FB10014DF
+:105820008FB000103C03100027BD0020AF45018061
+:10583000AF44018803E00008AF4301B88CA5000025
+:105840008F4201B80440FFFE3C064000022620259E
+:105850008FBF00188FB100148FB000103C031000F0
+:1058600027BD0020AF450180AF44018803E0000858
+:10587000AF4301B83086FFFF8F4201B80440FFFEFE
+:105880003C0940068CA8000000C93825AF480180BB
+:105890008CA400043C031000AF440184AF4701888E
+:1058A00003E00008AF4301B827BDFFE0AFB0001030
+:1058B000AFBF0018AFB100149363003E0080802199
+:1058C0000080282130620040000020211040000F9D
+:1058D0008E1100000E000860022020219367000056
+:1058E0002404005030E500FF50A400128E0F000089
+:1058F000022020218FBF00188FB100148FB000103C
+:10590000A762013C0A00092027BD00200E00027D8D
+:10591000000000000E0008600220202193670000B4
+:105920002404005030E500FF14A4FFF202202021DF
+:105930008E0F00003C1008008E1000503C0D000C33
+:10594000240BFF8001F05021314E007F01DA6021ED
+:10595000018D4021014B4824AF490028022020211D
+:105960008FBF00188FB100148FB00010A50200D6B1
+:1059700027BD00200A000920AF8800D027BDFFE026
+:10598000AFBF0018AFB10014AFB0001093660001B4
+:10599000008080210E00024630D10004936400058F
+:1059A000001029C2A765000034830040A3630005EE
+:1059B0000E00024F020020210E00092202002021C9
+:1059C00024020001AF62000C02002821A76200102F
+:1059D00024040002A762001224060140A7620014FA
+:1059E0000E000C6BA76200161620000F8FBF001868
+:1059F000978C00343C0B08008D6B00782588FFFFE6
+:105A00003109FFFF256A0001012A382B10E000064A
+:105A1000A78800343C0F6006240E001635ED0010F8
+:105A2000ADAE00508FBF00188FB100148FB00010C2
+:105A300003E0000827BD002027BDFFE0AFB1001440
+:105A4000AFBF0018AFB0001000A088211080000A7E
+:105A50003C0360002402008010820012000000005D
+:105A60000000000D8FBF00188FB100148FB0001020
+:105A700003E0000827BD00208C682BF80500FFFE1E
+:105A800000000000AC712BC08FBF00188FB1001454
+:105A90008FB000103C09100027BD002003E0000873
+:105AA000AC692BF80E00024600A02021936500058A
+:105AB000022020210E00024F30B000FF2403003EE0
+:105AC0001603FFE7000000008F4401780480FFFE0A
+:105AD000240700073C061000AF510140022020219E
+:105AE000A34701448FBF00188FB100148FB000107E
+:105AF000AF4601780A0002BF27BD002027BDFFE89E
+:105B0000AFBF0014AFB000108F50002000000000A5
+:105B10000E000922AF440020AF5000208FBF0014B8
+:105B20008FB0001003E0000827BD00183084FFFF8D
+:105B30008F4201B80440FFFE3C0740350087302506
+:105B40003C031000AF450180AF400184AF4601889F
+:105B500003E00008AF4301B83084FFFF8F4201B873
+:105B60000440FFFE3C074036008730253C03100010
+:105B7000AF450180AF400184AF46018803E00008D3
+:105B8000AF4301B827BDFFD0AFB3001C3093FFFF78
+:105B9000AFB50024AFB20018AFBF0028AFB40020EB
+:105BA000AFB10014AFB0001030B5FFFF1260002796
+:105BB000000090218F90001C8E0300003C068000A6
+:105BC0002402004000033E0200032C0230E4007F68
+:105BD000006688241482001D30A500FF8F830028F2
+:105BE0002C68000A510000108F91001400035880A7
+:105BF0003C0C0800258C56CC016C50218D490000CE
+:105C0000012000080000000002B218213065FFFFEB
+:105C10000E00021A24040084162000028F90001C3B
+:105C2000AF8000288F910014260C0020264B000125
+:105C3000018080213172FFFF16200004AF8C001C10
+:105C40000253402B1500FFDC000000000240102131
+:105C50008FBF00288FB500248FB400208FB3001CA5
+:105C60008FB200188FB100148FB0001003E000084D
+:105C700027BD0030240D003414AD00F600000000F4
+:105C8000920B000E240A16803C07000CA36B002127
+:105C90009203000D0347F8213C066000A363002037
+:105CA000961100123C087FFF350CFFFFA771003CE6
+:105CB00096020010240B00053054FFFFAF740084DF
+:105CC0008E19001CAF4A00288FF800008CCF444882
+:105CD0000319702601EE3021AF66004C8F69004C2D
+:105CE00024CD00013C197F00AF6900508F64005043
+:105CF000AF640054AF660070AF6D00588F650058F8
+:105D000024040050AF65005CA3600023AF6C006406
+:105D1000A36B00378E030014AF6300488F710048F7
+:105D2000AF7100248E020018AF62006C9214000C58
+:105D3000A3740036936A003E355F0020A37F003EC7
+:105D40008F7800740319782435EE4000AF6E00742C
+:105D500093700000320900FF112402332418FF80E1
+:105D60003C04080024845A980E00028A00000000B7
+:105D700024060004240700013C0408008C845A987F
+:105D8000A366007DA36700058F4A01780540FFFEEA
+:105D900024020002AF440140A34201448F90001C42
+:105DA0003C141000AF5401780A000369AF8000284A
+:105DB0002CAD003751A0FF9C8F9100140005A080EE
+:105DC0003C180800271856F4029878218DEE000040
+:105DD00001C00008000000002406000614A60011FF
+:105DE000000000003C1F08008FFF5A9824040005A3
+:105DF000AF5F00208E190018AF7900188F78004C23
+:105E0000AF78001C8F6F0050122000C2AF6F00707F
+:105E10000A000369AF840028240A000710AA00843E
+:105E2000240300063C05080024A55A980E000254DD
+:105E3000240400818F90001C0011102B0A000369BC
+:105E4000AF820028240A000414AAFFF6240300509D
+:105E50003C0E08008DCE5A98AF4E00208E090008E7
+:105E6000AF6900408E060008AF6600448E07000C44
+:105E7000AF6700488E040010AF64004C8E0D001018
+:105E8000AF6D00848E080014AF6800508E050018B6
+:105E9000AF6500548E0C001CAF6C0058936B000073
+:105EA000317400FF128301F5000000008F64004888
+:105EB0008F6600400086382304E000042404008C30
+:105EC0001620FFDE24020003240400823C050800A3
+:105ED00024A55A980E00027D000000008F90001C3F
+:105EE000000010210A000369AF8200282409000580
+:105EF00014A9FFCC240520003C0A08008D4A5A98BA
+:105F0000AF4A00208E1F0004AF7F005C921900088A
+:105F100024100008A37900218F98001C930F00091A
+:105F2000A36F00208F86001C90CE000A31C400FFB2
+:105F300010900010288300091460006C24020002F5
+:105F4000240800201088000B3405800028850021DB
+:105F500014A0000824054000240D0040108D000509
+:105F60003C05000124070080108700023C05000268
+:105F7000240540008F6E00743C0FFF0001CF802489
+:105F800002054825AF69007490C4000BA36400812A
+:105F90008F84001C9486000C10C0019B0000000040
+:105FA000948E000C241FFFBF24060004A76E003C43
+:105FB0009090000EA370003E8F89001C9124000F6A
+:105FC000A364003F8F94001C8E8D00108F470074D7
+:105FD00001A72823AF6500608E880014AF680064B5
+:105FE000968C0018A76C0068968B001AA76B006A45
+:105FF0008E82001CAF62006C96830002A763013E94
+:10600000928A000EA36A003E9379003E033FC024AB
+:106010001220016AA378003E8F90001C0A000369D9
+:10602000AF8600282414002214B4FF7E2403000746
+:106030003C0208008C425A981220000CAF4200200B
+:106040000A000369AF830028240C003310AC00144D
+:10605000240800283C05080024A55A980E000226B2
+:10606000240400810A0003EE8F90001C3C04080009
+:1060700024845A980E00028A00000000936B0000EE
+:1060800024110050316300FF107101540000000022
+:106090008F90001C000018210A000369AF830028BC
+:1060A0003C0508008CA55A9824040081AF450020C7
+:1060B000A36800343C05080024A55A980E00022667
+:1060C000000000008F90001C240200090A000369F0
+:1060D000AF82002802B288213225FFFF0E00021A8B
+:1060E000240400840A0003698F90001C1082FFA121
+:1060F000240504002894000312800176240C000477
+:10610000240B0001548BFF9B240540000A00043D32
+:10611000240501003C04080024845A988F62004C36
+:106120000E00028A8F6300508F90001C0000202117
+:106130000A000369AF8400288E1000042404008A3A
+:10614000AF500020936E000531C900021520016593
+:10615000020028219378002302002821330F002019
+:1061600015E001602404008D9362003F24190012A1
+:10617000305F00FF13F9015B240400810E0002462A
+:106180000200202193740023240A0004020020212D
+:1061900036830042A36300230E00024FA36A007DF2
+:1061A0008F4B01780560FFFE24050002AF500140CF
+:1061B000A34501448F90001C3C0C1000AF4C0178AB
+:1061C0000A0003EF0011102B8E1000042404008A33
+:1061D000AF500020936D000531A800021500001992
+:1061E000020028219367003F2414001230E400FFCE
+:1061F0001094010100000000936E003F240600048B
+:1062000031C900FF112600FC000000000E0002460C
+:1062100002002021936200232419FFFE02002021A6
+:10622000345F0020A37F0023A374003F9378000510
+:10623000031978240E00024FA36F000502002821E5
+:10624000000020210E000336000000000A0003EECB
+:106250008F90001C8E0500043C0F0008034F402166
+:10626000AF450020910E00002406005031C900FF08
+:106270001126017A240400888F5901B80720FFFEF7
+:106280003C0C400E008C58253C031000AF450180AB
+:10629000AF400184AF4B0188AF4301B891020000C9
+:1062A000240AFF8024040004004AF825A11F0000EE
+:1062B0000E000C6B240600300A0003EE8F90001CC9
+:1062C0008E04001C0E000231000000001040014C42
+:1062D000004048218F90001C240500898F4D01B893
+:1062E00005A0FFFE00000000AF4901808E0F001CDA
+:1062F0003C1440010011702B00B448253C111000E3
+:10630000AF4F0184AF8E0028AF490188AF5101B86B
+:106310000A00036A8F910014961900023C140800C9
+:1063200026945A9833380004130000F23C026000AF
+:106330008E1F001C3C010800AC3F5A98AF5F002044
+:10634000920C0010240B0014318400FF148B011CEC
+:106350000000000096090002312D000115A001B2D5
+:10636000000000008E020004AE8200083C0E08000F
+:106370008DCE5AA011C001A8000000008F690074E2
+:106380003C0E800024040001012E6825AF6D0074CE
+:10639000A3600005AF64000C3C0C08008D8C5AA073
+:1063A0008F88001CA7640010000C59C2A76400125B
+:1063B000A7640014A7640016A76B00088D030008EB
+:1063C00024040002AF63002C8D0A000CAF6A003079
+:1063D00091070010A36700348F82001C90450011C4
+:1063E000A36500358F86001C90D00012A370003684
+:1063F0008F9F001C93F90013A37900378F90001C26
+:1064000096180014A778003896140016A774003A5E
+:106410008E0F0018AF6F00245620FE02AF840028B4
+:106420003C05080024A55A980E00025400002021C3
+:106430008F90001C0A0004AC000020218E0F000485
+:106440003C14080026945A983C010800AC2F5A9836
+:10645000AF4F0020920E000331C90004112000024A
+:106460002402001224020006A362003F9203001BD4
+:10647000240AFFC03062003F004AF825A37F003E97
+:106480009219000333380001170000C1000000001A
+:106490008E020008AE8200083C0208008C425AA01E
+:1064A000104000C000000000000221C2A7640008E4
+:1064B0008E0D000C240B000124140014AF6D002C71
+:1064C0008E080010AF68003096050016A7650038EA
+:1064D000960C0014A76C003AAF6B000CA76B001071
+:1064E000A76B0012A76B0014A76B0016122000EB1D
+:1064F000A37400349206000330C700022CF00001A0
+:10650000260200088F90001C0A000369AF82002851
+:106510008E14000424030081AF54002093680023EC
+:106520003105001010A000AC000000008F4401B83D
+:106530000480FFFE3C06401F0011382B006610252A
+:106540003C111000AF540180AF870028AF40018498
+:10655000AF420188AF5101B80A00036A8F9100145D
+:106560008E0600043C19000803592021AF46002084
+:106570008E07000890980000240F0050331400FF8D
+:10658000128F00A7240500888F4401B80480FFFE05
+:106590003C0D40090011602B00AD10253C1110008E
+:1065A000AF460180AF8C0028AF470184AF4201881D
+:1065B000AF5101B80A00036A8F9100143C0508002E
+:1065C00024A55A980E00027D240400828F90001C9E
+:1065D000000030210A000369AF8600283C0408004F
+:1065E0008C845A980E0014F6000000008F90001C56
+:1065F0000A000486000018210E00033624040081DE
+:106600000A0003EE8F90001C3C05080024A55A9850
+:106610000E00027D2404008B8F90001C0011302B93
+:106620000A000369AF8600283C1908008F395A9880
+:106630003C1F08008FFF005024CCFFFE033F782151
+:1066400001F87024AF4E00283C0408008C845A984E
+:106650003C0908008D2900500089682131A5007F80
+:1066600000BA402101078021AE0600D8AF9000D0CB
+:10667000AE0000DC0A0003B8AE0C0108AF60008475
+:106680003C0808008D085A983C0D08008DAD00505C
+:106690002405FF803C02000C010D58210165602497
+:1066A000AF4C00288E0A00143174007F029A182122
+:1066B00000627821ADEA00D88E1F0014AF8F00D0A1
+:1066C000ADFF00DC8E1900102738FFFE0A00040B16
+:1066D000ADF80108548CFE27240540000A00043D53
+:1066E000240510000E00032B000000000A0003EE3A
+:1066F0008F90001C8C46442C3C056C6234B0797041
+:106700003C010800AC205A9814D000082404000270
+:1067100097880034978A002C02802821010A382BA0
+:1067200010E0001124040092240400020E000C89E1
+:10673000240501403C010800AC225A98AF420020D9
+:106740003C0308008C635A98106000052404008301
+:106750000E000854000000001040000924040083CB
+:106760003C05080024A55A980E00025400000000C1
+:106770008F90001C0011202B0A000369AF840028B1
+:106780000E000858000000000A0005308F90001C21
+:106790008E0400080E000231000000000A00058689
+:1067A000AE8200083C05080024A55A980E00022677
+:1067B000240400878F90001C0A0005A20011102BF2
+:1067C0000E00085C000000003C05080024A55A9853
+:1067D0000A00063A2404008B0E00024602802021A3
+:1067E0009370002302802021360D00100E00024F0E
+:1067F000A36D00238F90001C0A0005AB0000182138
+:10680000240400040E000C89240500301440002AE2
+:10681000004048218F90001C0A00051724050083C2
+:106820009205000C30BF000113E0000300000000DF
+:106830009602000EA482002C920A000C314800023D
+:106840001100FF5100002821960B00128E03001446
+:10685000A48B001A0A0005C2AC83001C8F83003889
+:106860008F8700301067FE84000020213C0908005B
+:1068700025295A1C000320C0008930218CD4000037
+:106880001285005E247800013303000F5467FFFA7D
+:10689000000320C00A0004FE000020213C0508007F
+:1068A00024A55A980E00027D240400828F90001CBB
+:1068B0000A0005A2000010213C0B0008034B202118
+:1068C00024030050240A0001AF420020A0830000EE
+:1068D000A08A00018F88001C91070004A08700187F
+:1068E0008F82001C90450005A08500198F86001C32
+:1068F00090DF0006A09F001A8F99001C93380007B4
+:10690000A098001B8F94001C928F0008A08F001C81
+:106910008F90001C920E0009A08E001D8F8D001C10
+:1069200091AC000AA08C001E8F8B001C3C0C080050
+:10693000258C5A1C9163000B3C0B0800256B5A18E0
+:10694000A083001F8F8A001C9148000CA0880020A3
+:106950008F87001C90E5000DA08500218F82001C10
+:10696000240546469046000EA08600228F9F001CFC
+:1069700093F9000FA09900238F98001C9314001026
+:10698000A09400248F8F001C91F00011A09000258E
+:106990008F90001C8F8E00308F990038960D001458
+:1069A000000E18C025C80001A48D0028960A001604
+:1069B000006C3021006BF821A48A002A9607001889
+:1069C0003108000FA487002CA485002E8E02001C25
+:1069D000ACC90000AF88003011190003AFE200001D
+:1069E0000A00051700002821250C00013184000F42
+:1069F000000028210A000517AF8400383C07080072
+:106A000024E75A180087802100002021ACC0000034
+:106A10000A0004FEAE0000003C05080024A55A98B8
+:106A20000A00063A240400878E0400040E00023196
+:106A3000000000000A00053BAE8200083084FFFF22
+:106A400030C600FF8F4201B80440FFFE000644003C
+:106A5000010430253C07200000C720253C0310001E
+:106A6000AF400180AF450184AF44018803E00008D6
+:106A7000AF4301B827BDFFE8AFB00010AFBF0014AF
+:106A80003C076000240600021080000600A0802160
+:106A90000010102B8FBF00148FB0001003E000080F
+:106AA00027BD00183C09600EAD2000348CE5201C89
+:106AB0008F82001C2408FFFC00A81824ACE3201CD3
+:106AC0000E0006EF8C45000C0010102B8FBF001439
+:106AD0008FB0001003E0000827BD00183C02600ED4
+:106AE0003447010024090018274A04000000000070
+:106AF00000000000000000003C06005034C302000B
+:106B0000AF440038AF45003CAF430030014018218E
+:106B10008F4B0000316800201100FFFD2406007F2C
+:106B20002408FFFF8C6C000024C6FFFF24630004D0
+:106B3000ACEC000014C8FFFB24E7000400000000D8
+:106B400000000000000000003C0F0020AF4F0030AC
+:106B50000000000024AD020001A5702B2529FFFFD5
+:106B6000008E20211520FFE101A0282103E000086C
+:106B70000000000027BDFFE0AFB10014AFBF001858
+:106B8000AFB000103C05600E8CA20034008088215C
+:106B9000144000063C0460008C87201C2408FFFC85
+:106BA00000E8302434C30001AC83201C8F8B001C10
+:106BB00024090001ACA90034956900028D65001418
+:106BC0008D70000C2D2400818D6700048D660008F7
+:106BD000108000078D6A00102D2C00041580000E17
+:106BE00030CE0007312D000311A0000B0000000083
+:106BF0002404008B020028210E0006EF2406000367
+:106C00000011102B8FBF00188FB100148FB000102F
+:106C100003E0000827BD002015C0FFF62404008B08
+:106C20003C030020AF4300300000000024020001BC
+:106C3000AF8200140000000000000000000000000F
+:106C40003C1F0150013FC825253800033C0F600E52
+:106C5000AF47003800181882AF46003C35E8003CCA
+:106C6000AF590030274704008F44000030860020D1
+:106C700010C0FFFD00000000106000082466FFFF48
+:106C80002403FFFF8CEB000024C6FFFF24E7000471
+:106C9000AD0B000014C3FFFB250800043C08600E88
+:106CA000AD090038000000000000000000000000F6
+:106CB0003C070020AF470030000000000E0007171F
+:106CC0000140202102002821000020210E0006EFB3
+:106CD000240600030011102B8FBF00188FB1001481
+:106CE0008FB0001003E0000827BD002027BDFFD8AB
+:106CF000AFB200183092FFFFAFB10014AFBF002059
+:106D0000AFB3001CAFB000101240002C000088216F
+:106D10000A0007AF2413000150B3003C8CE5000CBF
+:106D20000000000D262D000131B1FFFF24EC0020F2
+:106D30000232382B10E00021AF8C001C8F8200142F
+:106D40001440001E8F87001C3C0670003C0320008E
+:106D50008CE400000086282414A300188F85003CD2
+:106D6000000444023C0980000089802414A0FFEA4A
+:106D7000310600FF2404000210C4001F28CA0003CB
+:106D800011400016240B000314D3FFE7262D000149
+:106D9000020028210E0006FD240400018F87001C3C
+:106DA000AF82003C262D000131B1FFFF24EC002012
+:106DB0000232382B14E0FFE1AF8C001C02201021BE
+:106DC0008FBF00208FB3001C8FB200188FB100144A
+:106DD0008FB0001003E0000827BD002814CBFFD2BD
+:106DE000262D00010E00073D020020218F87001C88
+:106DF0000A0007C9AF82003C020028210E0006FDF0
+:106E0000000020210A0007C88F87001C0E0006EF33
+:106E1000240400841600FFC38F87001C0A0007A902
+:106E2000AF80003C3082FFFF1440000300001821B7
+:106E30000004240224030010308500FF14A0000584
+:106E40003087000F246600080004220230C300FFD0
+:106E50003087000F14E00005308900032468000427
+:106E600000042102310300FF3089000315200005D2
+:106E7000388B0001246A000200042082314300FFA5
+:106E8000388B00013164000110800002246C000185
+:106E9000318300FF03E0000800601021308BFFFF0A
+:106EA000000B394230E600FF3C09080025295998BB
+:106EB00000064080010960218D8700003164001FB9
+:106EC000240A0001008A180430A500FF00E32025F1
+:106ED00014A000020003102700E22024240F000168
+:106EE00000CF700401096821000E282714800005D6
+:106EF000ADA400008F86000C00A6102403E000085B
+:106F0000AF82000C8F88000C01C8102503E0000838
+:106F1000AF82000C3C06001F3C0360003084FFFF82
+:106F200034C5FF8024020020AC602008AC60200C37
+:106F3000AC602010AC652014AC642018AC6220005A
+:106F4000000000000000000003E000080000000056
+:106F500027BDFFE82402FFFFAFBF0010AF82000C87
+:106F6000000020213C06080024C659982405FFFF94
+:106F700024890001000440803124FFFF010618210C
+:106F80002C87002014E0FFFAAC6500000E000825F5
+:106F900000002021240200013C04600024050020A0
+:106FA000AC822018AC85200000000000000000002A
+:106FB00000000000244A00013142FFFF2C4604007B
+:106FC00014C0FFF78FBF001003E0000827BD0018B2
+:106FD0008F8300082C62040003E00008384200019F
+:106FE0008F8300082462000103E00008AF820008DC
+:106FF0008F8300082462FFFF03E00008AF820008CF
+:1070000027BDFFE0AFB10014AFBF0018AFB0001054
+:107010008F6B00303C06600000808821ACCB2008DC
+:107020008F6A002C3C02800024030008ACCA200CAC
+:107030009769003A9768003800092C003107FFFF74
+:1070400000A72025ACC42010ACC22014ACC3200083
+:107050000000000000000000000000003C03600091
+:107060008C6D200031AC00081580FFF90000000095
+:107070008C6E201405C00020000000000E0007E9FF
+:107080008F84000C000240803C0908002529599893
+:10709000010938218CE400000E0007E9000281405C
+:1070A000020220213090FFFF020020210E0008077D
+:1070B000000028213C0C8000022C58253210FFFFD4
+:1070C0003C116000240A0020AE2B2014AE302018A2
+:1070D000AE2A2000000000000000000000000000B8
+:1070E000020010218FBF00188FB100148FB0001064
+:1070F00003E0000827BD00208C6620143C02001F1E
+:107100003443FF803C1FFFE800C3C02437F9080068
+:1071100003198021001079C23C0C8000022C5825F4
+:1071200031F0FFFF3C116000240A0020AE2B201438
+:10713000AE302018AE2A2000000000000000000041
+:1071400000000000020010218FBF00188FB1001452
+:107150008FB0001003E0000827BD002027BDFFE826
+:10716000AFB000103402FFFF3090FFFFAFBF00143C
+:1071700012020006020020210E0008250000000077
+:10718000020020210E000807240500018F8400085A
+:107190008FBF00148FB000102483FFFF27BD00189D
+:1071A00003E00008AF830008000439C230E6003F66
+:1071B00000043B4200071840240210002CC40020A9
+:1071C00024C8FFE0AF42002C2463000114800003B8
+:1071D00030A900FF00071840310600FF000360805F
+:1071E00024080001019A58213C0A000E00C8280416
+:1071F000016A382111200005000530278CE90000C4
+:107200000125302503E00008ACE600008CEE00000C
+:1072100001C6682403E00008ACED000027BDFFE8CC
+:10722000AFBF0014AFB000103C0460008C850808AC
+:107230003403F00030A2F0005043000624020001A5
+:107240008C8708083404E00030E6F00010C4001E0B
+:1072500024020002AF8200403C1060003C0A0200A1
+:10726000AE0A0814240910003C08000E8E034400E6
+:1072700003482021AF49002C240501200E000CCF2B
+:10728000000030218F830040106000043C02169102
+:10729000240B0001106B000E3C023D6C344F00903B
+:1072A000AE0F44088FBF00148FB000103C0C60007C
+:1072B000240E10003C0D020027BD0018AD8E4420A6
+:1072C00003E00008AD8D08100A0008F6AF8000400A
+:1072D0003C0218DA344F0090AE0F44088FBF001400
+:1072E0008FB000103C0C6000240E10003C0D02001A
+:1072F00027BD0018AD8E442003E00008AD8D0810B6
+:107300000A0008CA240500010A0008CA0000282152
+:107310003C08080025085DA42404FFFF0100182193
+:107320002402001E2442FFFFAC6400000441FFFD64
+:10733000246300043C07080024E75E208CE5FFFC82
+:107340002404001C24060001308A001F0146480462
+:1073500024840001000910272C8300201460FFFA08
+:1073600000A22824ACE5FFFC3C05666634A4616EEF
+:107370003C06080024C65EE0AF840058AF88009C3D
+:107380002404FFFF00C018212402001F2442FFFF35
+:10739000AC6400000441FFFD246300043C07666602
+:1073A0003C05080024A55EA0AF86004834E6616E67
+:1073B000AF8600982404FFFF00A018212402000FCC
+:1073C0002442FFFFAC6400000441FFFD246300047D
+:1073D0003C0B66663C06080024C65E203568616E7C
+:1073E000AF8500A4AF8800702404FFFF00C01821FF
+:1073F0002402001F2442FFFFAC6400000441FFFD93
+:10740000246300043C0D66663C0A0800254A5F6060
+:1074100035AC616EAF860090AF8C005C2404FFFF3A
+:1074200001401821240200032442FFFFAC64000045
+:107430000441FFFD246300043C09080025295F7016
+:107440008D27FFFC24040006240500013099001F4D
+:107450000325C00424840001001878272C8E002006
+:1074600015C0FFFA00EF3824AD27FFFC3C09666623
+:1074700024030400240403DC24050200240600661F
+:107480003522616E3C08080025085AA4AF820074BA
+:10749000AF830044AF83006CAF830050AF830084A0
+:1074A000AF8A008CAF840064AF85004CAF86005477
+:1074B000AF840078AF850060AF860080010018219E
+:1074C000240200022442FFFFAC6000000441FFFDE3
+:1074D00024630004240400032403000C3C0A080075
+:1074E000254A5AB0AF8A00680A00099D2405FFFFAB
+:1074F0000004188024840001006858212C8700C0F3
+:1075000014E0FFFBAD6500003C0E666635CD616E94
+:10751000240C17A024081800AF8D0088AF8C0094AD
+:1075200003E00008AF88007C2484007F000421C2AF
+:1075300000004021000030210000382100002821F7
+:107540000A0009B4AF8400A01060000624E700011F
+:1075500000C4302124A500012CC20BF51440FFFA11
+:107560002CA300663C09080025295F600120182132
+:10757000240200032442FFFFAC6000000441FFFD31
+:107580002463000410E0001A24E3FFFF00032942F3
+:1075900010A0000A000020212406FFFF3C03080081
+:1075A00024635F60248400010085502BAC660000DA
+:1075B000250800011540FFFB2463000430E2001F92
+:1075C0001040000800086880240C0001004C3804BA
+:1075D000000858800169282124E6FFFF03E0000825
+:1075E000ACA6000001A940212409FFFFAD0900005D
+:1075F00003E0000800000000AF4400283C04000C39
+:1076000003442021000528820A000CCF000030210D
+:10761000000421803C036000AC64100800000000FE
+:1076200000052980AC65100C0000000003E0000894
+:107630008C62100C27BDFFE800802821240400384C
+:10764000AFBF00140E0009E4AFB0001024040E0018
+:10765000AF4400283C10000C0350202124050010EA
+:107660000E000CCF0000302103501021AC40000070
+:10767000AC400004240400388FBF00148FB0001009
+:1076800024053FFF27BD00180A0009E48C430000D1
+:10769000000421803C036000AC641008000000007E
+:1076A0008C62100C03E000080002118227BDFFC8A5
+:1076B000AFB400208F940068AFBE0030AFB7002C8D
+:1076C000AFB600280000B8210080B021241E00C001
+:1076D000AFBF0034AFB50024AFB3001CAFB2001889
+:1076E000AFB10014AFB000100A000A21AFA5003CF2
+:1076F000504000018F94006827DEFFFF13C0002870
+:10770000269400048E9200003C03080024635DA0D0
+:107710001240FFF70283102B3C04080024845AA473
+:10772000028410230002A8C0000098210A000A3039
+:1077300024110001001188401220002600000000E2
+:1077400002B38021025128240200202110A0FFF959
+:10775000267300010E0009ED0000000000166840CD
+:1077600032EC000101AC20210E0009E402002821C6
+:107770008F89009426F700018FA6003C3AEB0001A8
+:10778000316A00012528FFFF0011382702CAB02105
+:10779000AF88009416E6FFE702479024AE920000FF
+:1077A00002E010218FBF00348FBE00308FB7002C55
+:1077B0008FB600288FB500248FB400208FB3001C33
+:1077C0008FB200188FB100148FB0001003E00008D2
+:1077D00027BD00383C0E080025CE5DA0028E102B80
+:1077E0000A000A1CAE92000027BDFFD8AFB10014FA
+:1077F000AFB00010AFBF0020AFB3001CAFB2001895
+:1078000000A0882110A0001F000480403C13080045
+:1078100026735AA40A000A692412000112200019D2
+:10782000261000010E000A0402002021000231424D
+:107830002444FFA0000618803045001F2C8217A1A9
+:10784000007318212631FFFF1040FFF400B230040E
+:107850008C6900000200202124053FFF01264024FE
+:107860001500FFEE012638250E0009E4AC67000084
+:107870008F8A009426100001254700011620FFE999
+:10788000AF8700948FBF00208FB3001C8FB2001809
+:107890008FB100148FB0001003E0000827BD00284E
+:1078A0008F85009C00805821000040210000482165
+:1078B000240A001F3C0C0800258C5E1C3C0D0800AF
+:1078C00025AD5DA48CA6000050C00014000040212E
+:1078D00000AD1023000238C0240300010A000AA2F0
+:1078E000000020211500000300E41021244820247A
+:1078F0000000482125290001512B00132506DFDC5B
+:10790000106000062484000100C3702415C0FFF538
+:10791000000318400A000AA00000402110AC002615
+:1079200024A3000400602821254AFFFF1540FFE53D
+:10793000AF85009C512B00042506DFDC00004021B0
+:1079400003E00008010010210006614230C5001F5D
+:10795000000C50803C07080024E75DA424040001CB
+:10796000014730211120000F00A420043C0508002D
+:1079700024A55E20148000052529FFFF24C60004ED
+:1079800010C5001100000000240400018CCF00008D
+:107990000004C0270004204001F868241520FFF5EA
+:1079A000ACCD00008F99007801001021032B4823F3
+:1079B00003E00008AF8900783C05080024A55DA419
+:1079C0000A000AAA000040213C06080024C65DA463
+:1079D0000A000AC324040001308800FF24020002C8
+:1079E0001102000A240300031103005C8F8900A424
+:1079F000240400041104005F24050005110500673C
+:107A00000000182103E00008006010218F89004861
+:107A10003C0C0800258C5EE03C04080024845F6078
+:107A2000240300201060000F00005821240D0002E4
+:107A3000240E00033C0F080025EF5EE08D270000B8
+:107A400014E0000B30F9FFFF252900040124C02BAE
+:107A500053000001018048212463FFFF5460FFF8B8
+:107A60008D2700000160182103E00008006010214C
+:107A7000132000323C0500FF30E200FF00403021BF
+:107A80001040004200005021240500010000202188
+:107A90000005C84000A6C02417000003332500FFDE
+:107AA00014A0FFFB24840001012CC023001828C06F
+:107AB00000AA6021008C50213144001F240C0001D9
+:107AC000008C18040003102700E23024110D00413F
+:107AD000AD260000110E004C000A1840110D0036B2
+:107AE0008F87006C510E00568F8C0060240D0004AF
+:107AF000110D005A8F8E0084240E0005150EFFDA3A
+:107B000001601821240B14301140000600001821D8
+:107B10008F8400A024630001006A402B1500FFFD44
+:107B2000016458218F8A0080AF89008C0160182180
+:107B30002549FFFF0A000AFAAF89008000E52024EA
+:107B4000000736021080FFD0240A001800075402F4
+:107B5000314600FF0A000B02240A00103C0C08000A
+:107B6000258C5EA03C04080024845EE00A000AE93B
+:107B7000240300103C0C0800258C5E203C04080007
+:107B800024845EA00A000AE88F89009000071A0288
+:107B9000306600FF0A000B02240A00088F89008C5F
+:107BA0003C0C0800258C5F603C04080024845F7056
+:107BB0000A000AE924030004000A4080250B003073
+:107BC00024E6FFFF01601821AF8900480A000AFA85
+:107BD000AF86006C000AC982001978803C07080053
+:107BE00024E75EA001E72021000A18428C8F0000E4
+:107BF0003079001F032C38040007C02701F86024E7
+:107C00000A000B17AC8C00000003314200062880EC
+:107C100000AF28213062001F8CB8000024630001EF
+:107C2000004CC804000321420019382700041080CA
+:107C300003073024004F20210A000B5BACA6000094
+:107C4000000A68C025AB0032258AFFFF01601821B9
+:107C5000AF8900A40A000AFAAF8A0060254B1030F1
+:107C6000AF8900900160182125C9FFFF0A000AFAB8
+:107C7000AF890084308600072CC200061040001433
+:107C800000000000000640803C030800246357D039
+:107C9000010338218CE4000000800008000000008F
+:107CA0002409000310A9000E00000000240A0005AA
+:107CB00010AA000B00000000240B000110AB00080C
+:107CC000000000008F8C00A010AC00050000000038
+:107CD00003E00008000010210A000A8800A020210B
+:107CE0000A000AD600C0202127BDFFE8308400FF2B
+:107CF000240300021083000BAFBF00102406000312
+:107D00001086003A2408000410880068240E00053C
+:107D1000108E007F2CAF14308FBF001003E00008DE
+:107D200027BD00182CA200301440FFFC8FBF0010AC
+:107D300024A5FFD0000531C2000668803C0708007A
+:107D400024E75EE001A730218CC9000000052882ED
+:107D500030AC001F240B0001018B50048F840048BD
+:107D6000012A4025ACC800008C830000506000014F
+:107D7000AF8600488F98006C30AE000124A6FFFF4C
+:107D8000270F000115C00002AF8F006C24A6000170
+:107D90000006414200082080008718218C790000ED
+:107DA00030C2001F240600010046F804033F3824B7
+:107DB00010E0FFDA8FBF00100005C182001870804C
+:107DC0003C0F080025EF5EA001CF48218D2B00005D
+:107DD0000005684231A5001F00A66004016C502513
+:107DE00027BD001803E00008AD2A00002CA70030D2
+:107DF00014E0FFCA8FBF001030B900071723FFC778
+:107E000024A8FFCE00086A02000D60803C0B080029
+:107E1000256B5EA0018B30218CC40000000828C2B5
+:107E200030AA001F24080001014848048F8200A4E2
+:107E300000891825ACC300008C5F000053E00001EE
+:107E4000AF8600A400057040000E7942000F288024
+:107E50003C04080024845EE000A418218C6B000020
+:107E600025DF000131CD001F001F514201A8600431
+:107E7000016C4825000A1080AC69000000442821EC
+:107E80008CA600008F98006033F9001F8FBF001090
+:107E90000328380400C77825270E000127BD0018E5
+:107EA000ACAF000003E00008AF8E006024A5EFD067
+:107EB0002CB804001300FF998FBF00100005314259
+:107EC000000658803C0A0800254A5E20016A3021DD
+:107ED0008CC4000030A3001F2409000100691004B5
+:107EE0008F9900900082F825ACDF00008F270000FA
+:107EF00050E00001AF8600908F8D00848FBF00108E
+:107F000027BD001825AC000103E00008AF8C0084F9
+:107F100015E0FF828FBF00108F8600A00006104082
+:107F20000046F821001F210003E4C8210019384051
+:107F300024F8143000B8402B1100FF788FBF0010D8
+:107F400024A4EBD00E00020300C0282100027942D5
+:107F5000000F70803C0D080025AD5F6001CD202131
+:107F60008C8B0000304C001F240600010186180491
+:107F70008F89008C01635025AC8A00008D2500009C
+:107F800050A00001AF84008C8F9800808FBF00103C
+:107F900027BD00182708000103E00008AF88008013
+:107FA00030A500072403000310A3001028A200043A
+:107FB00014400008240700022403000410A3001545
+:107FC0002408000510A8000F8F8500A003E000081A
+:107FD0000000000014A7FFFD0080282114C3FFFB50
+:107FE000240400020A000B9A000000002409000586
+:107FF0000080282110C9FFFB2404000303E00008CF
+:108000000000000014C5FFF1008028210A000B9A2F
+:1080100024040005240A00010080282110CAFFF171
+:108020002404000403E000080000000027BDFFE076
+:10803000AFB00010000581C22603FFD024C5003F69
+:108040002C6223D024C6007FAFB20018AFB1001459
+:10805000AFBF001C309100FF000691C200052982CD
+:1080600002002021104000082403FFFF0E000A5ADE
+:108070000000000002002021022028210E000C48F0
+:1080800002403021000018218FBF001C8FB2001861
+:108090008FB100148FB000100060102103E00008C1
+:1080A00027BD002027BDFFD824A2007FAFB3001C4E
+:1080B000AFB20018000299C2309200FF24A3003F23
+:1080C0000240202102602821AFB10014AFB000109F
+:1080D000AFBF00200E000B7D00038982004080218D
+:1080E000004020210220282114400009000018210E
+:1080F0008FBF00208FB3001C8FB200188FB1001407
+:108100008FB000100060102103E0000827BD002898
+:108110000E000A0B00000000004028210200202170
+:108120001051FFF3001019C00E000A5A00000000A1
+:1081300002002021024028210E000C48026030215C
+:108140008FBF00208FB3001C8FB200188FB10014B6
+:108150008FB00010000018210060102103E000081B
+:1081600027BD00283084FFFF30A5FFFF10800007E7
+:10817000000018213082000110400002000420425B
+:10818000006518211480FFFB0005284003E000086B
+:108190000060102110C00007000000008CA2000049
+:1081A00024C6FFFF24A50004AC82000014C0FFFB1E
+:1081B0002484000403E000080000000010A0000870
+:1081C00024A3FFFFAC8600000000000000000000B8
+:1081D0002402FFFF2463FFFF1462FFFA24840004DB
+:1081E00003E000080000000030A5FFFF8F4201B847
+:1081F0000440FFFE3C07601500A730253C0310003B
+:10820000AF440180AF400184AF46018803E000081D
+:10821000AF4301B88F8500D02C8640000080182124
+:108220008CA700840087102B144000100000000071
+:108230008CA800842D06400050C0000F240340008D
+:108240008CAA0084008A482B512000018CA3008452
+:1082500000035A42000B20803C05080024A558204A
+:108260000085182103E000088C62000014C0FFF4B0
+:10827000000000002403400000035A42000B20804D
+:108280003C05080024A558200085182103E00008BB
+:108290008C6200008F8300D0906600D024C500015E
+:1082A000A06500D08F8500D0906400D090A200D24D
+:1082B0001044001700000000936C00788F8B00BC06
+:1082C000318A00FFA16A000C25490001938700C490
+:1082D000312200FF3048007F1107000B00026827A1
+:1082E000A36200788F4E017805C0FFFE8F9900B021
+:1082F000241800023C0F1000AF590140A35801445C
+:1083000003E00008AF4F01780A000D1831A2008089
+:10831000A0A000D00A000D0E000000008F8700D042
+:1083200027BDFFC8AFBF0030AFB7002CAFB60028E5
+:10833000AFB50024AFB40020AFB3001CAFB200183B
+:10834000AFB10014AFB0001094E300E094E200E29B
+:10835000104300D72405FFFF3C047FFF3497FFFF45
+:108360002415FF800A000DFF3C16000E108A00D174
+:108370008FBF00308F9100B03C1808008F18005C50
+:10838000001230C0001291400311702101D57824F1
+:10839000AF4F002C94EC00E231CD007F01BA5821A0
+:1083A000318A7FFF01764821000A804002091021AE
+:1083B000945300003C0808008D0800580246C02174
+:1083C00032733FFF0013198001032021022428216A
+:1083D00030BF007F03FAC82100B5A024AF54002CA1
+:1083E0000336A0218E8700108E8F0030037858212D
+:1083F000256D008800EF7023240C0002AE8E001063
+:10840000AF8D00ACA16C0088976A003C8E84003070
+:108410008F9100AC0E000CE53150FFFF00024B8045
+:10842000020940253C02420001022025AE2400043E
+:108430008E8300048F8D00AC8E860000240E000811
+:10844000ADA3001CADA60018ADA0000CADA000109F
+:10845000929F000A33F900FFA5B900149685000821
+:108460003C1F000CA5A500169298000A331100FFCE
+:10847000A5B100209690000824180005A5B00022A0
+:10848000ADA00024928F000B2410C00031E700FF44
+:10849000A5A70002A1AE00018E8C00308F8B00AC2E
+:1084A0008F8400B0AD6C00083C0A08008D4A00546F
+:1084B0000144482101354024AF4800283C0208000F
+:1084C0008C4200540044302130C3007F007AC82120
+:1084D000033F282102458821AF9100BCAF8500C031
+:1084E000A23800008F8A00BC2403FFBF2418FFDFDE
+:1084F000954F000201F0382400F37025A54E0002CC
+:10850000914D000231AC003F358B0040A14B000281
+:108510008F8600BC8F8900D0ACC000048D28007C01
+:108520003C098000ACC8000890C4000D3082007F78
+:10853000A0C2000D8F8500BC90BF000D03E3C824CE
+:10854000A0B9000D8F9100BC9233000D02789024E9
+:10855000A232000D8E9000348F8B00BCAD700010E5
+:108560008E87002C8E8F003000EF7023AD6E0014CC
+:10857000916D001831AC007FA16C00188F9F00BC7A
+:108580008E8A00308FE8001801572024010930241A
+:1085900000C41025AFE200189283000AA3E3001C78
+:1085A000969900088F8500BC8F9800D0A4B9001E52
+:1085B0008E9000308E8400300E0002038F05008400
+:1085C0008F8500D0000291400002990090AF00BC5E
+:1085D000025388210040302131E7000210E00003FF
+:1085E00002118021000290800212802190B900BC0B
+:1085F0003327000410E000020006F880021F8021EB
+:108600008E9800308F8B00BC24068000330F00034F
+:10861000000F702331CD0003020D6021AD6C00040A
+:1086200094A400E294AA00E294B000E231497FFFF2
+:108630002522000130537FFF0206182400734025D5
+:10864000A4A800E294A400E23C1408008E94006008
+:1086500030917FFF12340022000000000E000D0553
+:10866000000000008F8700D00000282194F300E074
+:1086700094F000E21213000F8FBF003090E900D099
+:1086800090E800D1313200FF310400FF0244302B6A
+:1086900014C0FF36264A000190EE00D2264B00019E
+:1086A00031CD00FF008D6021158BFF338F9100B01D
+:1086B0008FBF00308FB7002C8FB600288FB50024F5
+:1086C0008FB400208FB3001C8FB200188FB100143C
+:1086D0008FB0001000A0102103E0000827BD003873
+:1086E00094A300E200664024A4A800E290A400E263
+:1086F00090B900E2309100FF0011A1C20014F827E8
+:10870000001F39C03332007F024730250A000DF7C1
+:10871000A0A600E23084FFFF30A5FFFFAF440018A1
+:10872000AF45001C03E000088F42001427BDFFB8CE
+:10873000AFB000208F9000D03084FFFFAFA40010B6
+:10874000AFBF0044AFBE0040AFB7003CAFB600388B
+:10875000AFB50034AFB40030AFB3002CAFB20028D7
+:10876000AFB10024A7A00018920600D1920500D056
+:1087700030C400FF30A300FF0064102B1040012222
+:10878000AFA00014920900D08FB50010312800FF6F
+:108790000088382324F4FFFF0014882B0015982B41
+:1087A00002339024524001268FB40014961E00120A
+:1087B000961F00108FB7001003DFC82300171400A6
+:1087C0000019C400000224030018140302E2B02AB6
+:1087D00052C00001004020210284282B10A000027A
+:1087E000008018210280182100033C0000071C03B0
+:1087F0003064FFFF2C86000914C000020060B8211D
+:10880000241700088E0A0008001769808E09000CE2
+:1088100031ABFFFF3C0C0010016C402527520400D7
+:10882000AF4A0038AF9200B8AF49003CAF480030C3
+:108830000000000000000000000000000000000038
+:108840000000000000000000000000000000000028
+:108850008F4F000031EE002011C0FFFD0017982A55
+:10886000027110240A000E920000B02155E00101AF
+:108870009258000131130080126001CF01202021A5
+:108880009655001232A5FFFF0E000CDAA7B50018AE
+:108890008F9000D00291A02326C800018F9100B8CC
+:1088A0000008B4000016B403262C004002D7782A32
+:1088B0000014882B240B00010180902101F1102469
+:1088C000AF8C00B8AFAB0014104001BC8F8900B072
+:1088D0003C0C08008D8C0054240BFF80921E00D0AD
+:1088E00001895021014B2824921900D0AF4500285E
+:1088F0008E4700103C0808008D0800583C180800FE
+:108900008F18005430E33FFF000321800104302121
+:10891000012658212402FF800162F824920C00D025
+:10892000AF5F002C9248000033D100FF333500FFC9
+:108930000309982100117140001578C0326D007F45
+:1089400001CF382101BA2821318300FF3164007F33
+:108950003C0A000C00AA88210367F0210003314083
+:10896000009A10213108003F3C1F000E00D1C021A9
+:10897000005F982127D900882D150008AF9100C00D
+:10898000AF9900ACAF9800BCAF9300B412A0018ABD
+:1089900000008821240E0001010E4004310D005D0D
+:1089A00011A0FFB2310F00028E4A00283C03008064
+:1089B0003C04FFEFAE6A00008E450024A260000A6E
+:1089C0003488FFFFAE6500049247002C3C1FFF9FD8
+:1089D00037FEFFFFA267000C8E62000C3C180040BF
+:1089E000A267000B0043302500C8C824033E88243A
+:1089F0000238A825AE75000C8E490004AE60001840
+:108A00003C0F00FFAE6900148E4D002C35EEFFFFC9
+:108A10008F8B00B001AE6024AE6C00108E47000852
+:108A2000A660000896450012AE6700208E42000C3A
+:108A300030B03FFF00105180AE6200248E5E001403
+:108A4000014B182130A40001AE7E00288E59001879
+:108A5000000331C200044380AE79002C8E51001C0B
+:108A600000C8F821A67F001CAE71003096580002A5
+:108A70008E550020A678001EAE7500349249003352
+:108A80003130000456000005925000008F8C00D059
+:108A90008D8B007CAE6B0030925000008F8F00BC3D
+:108AA000A1F00000924E003331CD000251A000072A
+:108AB000925E00018F8900BC2418FF809131000074
+:108AC0000311A825A1350000925E00018F9900BC1A
+:108AD0002409FFBF240BFFDFA33E00018F9500BCDC
+:108AE00092B8000D3311007FA2B1000D8F8E00BC33
+:108AF00091D0000D02097824A1CF000D8F8800BC11
+:108B00008E6D0014910A000D2DAC0001000C29405F
+:108B1000014B382400E51825A103000D96420012F0
+:108B20008F8800BC8F8700D0A50200028E4500040C
+:108B300090FF00BC30A400030004302330DE0003AB
+:108B400000BE102133F90002172000022444003433
+:108B50002444003090E200BC00A2302430DF000446
+:108B600017E0000224830004008018218F8F00ACDE
+:108B700024090002AD030004A1E90000924E003F69
+:108B80008F8D00ACA1AE00018F9500AC924C003FE0
+:108B90008E440004A6AC0002976B003C0E000CE56E
+:108BA0003170FFFF00025380020A38253C05420065
+:108BB00000E51825AEA300048F8600AC8E4800386F
+:108BC000ACC800188E440034ACC4001CACC0000C0F
+:108BD000ACC00010A4C00014A4C00016A4C00020A3
+:108BE000A4C00022ACC000248E6400145080000198
+:108BF00024040001ACC400080E000D05241100017E
+:108C00000A000E858F9000D0920F00D2920E00D0F5
+:108C10008FB5001031EB00FF31CD00FF008D6023D8
+:108C2000016C50212554FFFF0014882B0015982B50
+:108C3000023390241640FEDD000000008FB40014C3
+:108C40008FBF00448FBE00403A8200018FB7003CC6
+:108C50008FB600388FB500348FB400308FB3002C3E
+:108C60008FB200288FB100248FB0002003E00008ED
+:108C700027BD004833110020122000EE241500010A
+:108C8000921E00BC241F00010000A82133D900015E
+:108C90001320000DAFBF001C8E4400148E0800840A
+:108CA0000088102B14400002008030218E060084C2
+:108CB0008E03006400C3A82B16A0000200C0202170
+:108CC0008E0400640080A8218E4700148E05006485
+:108CD00000E5302B14C0000200E020218E04006467
+:108CE0000095F02313C000048FAC001C240A00027E
+:108CF000AFAA001C8FAC001C028C582B156000A87A
+:108D0000000018218E4F00388E6D000C3C0E008044
+:108D1000AE6F00008E4A00343C10FF9F01AE582514
+:108D2000AE6A00049246003F360CFFFF016C382407
+:108D30003C0500203C03FFEFA266000B00E5102578
+:108D40003468FFFF8F8700B80048F8243C0400080F
+:108D500003E4C825AE79000C8CF80014AE6000184E
+:108D600002BE7821AE7800148CF10018AE71001CA0
+:108D70008CE90008AE6900248CEE000CAE6F002C6C
+:108D8000AE600028AE6E0020A6600038A660003AF3
+:108D90008CED001401B58023021E902312400011B7
+:108DA000AE72001090EA003D8E6500048E640000F3
+:108DB000000A310000A6C821000010210326402B24
+:108DC0000082F82103E8C021AE790004AE780000EB
+:108DD00090F1003DA271000A8F8900B8953200061B
+:108DE000A67200088F9800AC2419000202A020216E
+:108DF000A31900009769003C8F9200AC0E000CE5AF
+:108E00003131FFFF00027B808F8500B8022F68257B
+:108E10003C0E420001AE8025AE5000048F8400ACB1
+:108E20008CAC0038AC8C00188CAB0034AC8B001CC4
+:108E3000AC80000CAC800010A4800014A48000164C
+:108E4000A4800020A4800022AC80002490A7003FD2
+:108E5000A487000212A001342403000153C00002C1
+:108E600090A2003D90A2003E24480001A08800018D
+:108E70008F9F00ACAFF500088F8300D0240700342B
+:108E8000906600BC30C5000250A0000124070030ED
+:108E90008F9200B88F8A00BC906D00BC924B00008E
+:108EA0002412C00032A50003A14B00008F8600B839
+:108EB0008F8800BC2402000490C4000100451823E0
+:108EC00030790003A10400018F8A00BC8F9F00B895
+:108ED00000F538219558000297E9001200F9382171
+:108EE00003128824312F3FFF022F7025A54E000268
+:108EF0009150000231A80004320C003F358B004035
+:108F0000A14B000212A000028F8500BC00E83821AE
+:108F10008F8E00D0ACA70004240BFFBF8DCD007C4A
+:108F20002EA400012403FFDFACAD000890B0000DBB
+:108F300000044140320C007FA0AC000D8F8600BCC5
+:108F400090CA000D014B1024A0C2000D8F8700BCF9
+:108F500090E5000D00A3F82403E8C825A0F9000D52
+:108F60008F9100B88F8D00BC8E380020ADB80010F6
+:108F70008E290024ADA900148E2F0028ADAF001853
+:108F80008E2E002C0E000D05ADAE001C8FB0001C07
+:108F9000240C0002120C00ED8F9000D08FA3001C57
+:108FA00000608821146000020060A8210000A02158
+:108FB00056A0FE390291A0230014882B8FAE00101A
+:108FC000960700103C0A002001D6F02302C7C021FA
+:108FD00033D2FFFFA6180010AFB20010AF4A003026
+:108FE0000000000096170010961300121277008EF2
+:108FF000001641808E16000C8E0F0008000817C363
+:1090000002C8282100A8582B01E2A82102AB182190
+:10901000AE05000CAE0300088FB300100013B82B90
+:10902000023780241200FF058F9000D00A000E4BFB
+:10903000000000008E480038A6600008240F0003DE
+:10904000AE6800008E4C0034A260000A8F9000B819
+:10905000AE6C00043C050080920B003FA26F000C38
+:109060008E62000C3C11FF9FA26B000B004568252F
+:109070003623FFFF3C04FFEF8F8C00B801A33024A0
+:10908000349FFFFF00DFC824AE79000C8D890014E7
+:10909000959E00128F9800B0AE6900108D8E00145E
+:1090A000AE600018AE600020AE6E0014AE6000240A
+:1090B0008D87001833CE3FFF000E5180AE67002829
+:1090C0008D8800080158902133D00001AE6800302F
+:1090D0008D91000C8F8D00AC001259C200107B8066
+:1090E000016F282124020002A665001CA66000363C
+:1090F000AE71002CA1A200009763003C8F9800ACD9
+:109100003C044200307FFFFF03E43025AF0600043B
+:109110008F9900B824070001240BC0008F3300385A
+:1091200024060034AF1300188F290034AF09001C47
+:10913000AF00000CAF000010A7000014A70000163D
+:10914000A7000020A7000022AF000024A7150002FE
+:10915000A30700018F8A00AC8F9E00B88F8C00BCE3
+:10916000AD55000893C80000A18800008F9200B898
+:109170008F8F00BC92500001A1F000018F8400BCD1
+:1091800094910002022B282400AE1025A482000234
+:10919000908D000231A3003FA08300028F8300D096
+:1091A0008F8400BC907F00BC33F30002526000014A
+:1091B00024060030AC8600048C65007C240DFFBFC3
+:1091C00002A08821AC8500089082000D3043007F0A
+:1091D000A083000D8F8600BC90C4000D008DF82484
+:1091E000A0DF000D8F8E00BC91D9000D3729002023
+:1091F000A1C9000D8F9E00B88F9300BC8FC70020BF
+:10920000AE6700108FD80024AE7800148FCA0028F3
+:10921000AE6A00188FD2002C0E000D05AE72001C35
+:109220000A00104C8F9000D0960200148E040004A7
+:109230003043FFFF000368C0008DF821AF5F003CA2
+:109240008E1900048F46003C032648231920003C59
+:10925000000000008E05000024A200013C0B00105D
+:1092600035750008AF420038AF55003000000000EF
+:1092700000000000000000000000000000000000EE
+:109280000000000000000000000000008F4C000003
+:10929000318F002011E0FFFD000000008F5304001B
+:1092A0003C080020AE1300088F570404AE17000CD2
+:1092B000AF480030000000003C0608008CC60044A7
+:1092C0002416000110D600BB000000009619001201
+:1092D0003C0508008CA5004000B94821A6090012F1
+:1092E000960E001425C70001A60700149618001456
+:1092F0003304FFFF5486FF498FB30010A60000140B
+:109300000E000E2530A5FFFF3C0408008C840024CD
+:10931000961F00120044682303ED3023A6060012B6
+:109320000A0010678FB30010A08300018F8200AC89
+:1093300024040001AC4400080A000FFF8F8300D012
+:109340008E0200000A0010F83C0B00108F9F00C036
+:109350008FB8001C920F00D0920B00D0920D00D05D
+:1093600031F100FF316E00FF000E28C000111140E6
+:109370000045182131A600FF036350210006C940B3
+:10938000033F382125490088AF8900ACAF8700BC76
+:10939000A15800889768003C03C020218F9100AC41
+:1093A0000E000CE53110FFFF00026380020C7825EF
+:1093B0003C0442008F8C00B801E45825AE2B000419
+:1093C0008D9100388F8B00AC00006821000D1100DA
+:1093D000AD7100188D8E00343C087FFF3504FFFF0F
+:1093E000AD6E001C9183003E8D65001C8D790018C8
+:1093F000000331000003870200A6C0210050F825B9
+:109400000306482B033F382100E95021AD78001CAA
+:10941000AD6A0018AD60000CAD600010918F003E89
+:109420002405000503C45024A56F00149591000481
+:1094300003C02021A5710016918E003EA56E00206C
+:10944000958D0004A56D0022AD6000249190003F31
+:10945000A57000029182003D24430001A163000138
+:109460008F8600AC8F9F00BCACDE0008A3E5000037
+:109470008F9000BC8F9900B82405FFBF96070002AB
+:10948000973800120247782433093FFF01E9882505
+:10949000A6110002921200022418FFDF324E003F94
+:1094A00035CD0040A20D00028F8600BC8F8C00D00D
+:1094B0002412FFFFACC000048D8B007C3C0C8000AC
+:1094C000ACCB000890C2000D3043007FA0C3000D5C
+:1094D0008F8700BC90FF000D03E5C824A0F9000DA4
+:1094E0008F9100BC9229000D01387824A22F000D25
+:1094F0008F9000BCAE120010AE150014920E001832
+:109500002415FF8002AE6825A20D00188F8500BCCF
+:109510008F8300B88CAB0018016C1024004A3025F2
+:10952000ACA600189068003EA0A8001C8F9F00B851
+:109530008F8700BC8F9800D097F90004A4F9001E13
+:109540000E0002038F0500848F8600D00002794050
+:109550000002490090D200BC01E988210040282186
+:109560003255000212A0000303D120210002A8807E
+:109570000095202190CC00BC3192000412400003E1
+:1095800033C900030005408000882021241900040D
+:109590008F9E00BC0329382330F800030098502127
+:1095A000AFCA00040E000D05A66500380A0010477A
+:1095B0008F9000D0960A00123C1E08008FDE002417
+:1095C00003CA9021A61200120A0010678FB3001080
+:1095D00027BDFFE03C1808008F180050AFB0001006
+:1095E000AFBF0018AFB10014AF8400B09371007426
+:1095F000030478212410FF8031EE007F3225007FA4
+:1096000001F0582401DA68213C0C000AA38500C44B
+:1096100001AC2821AF4B002494A9001097680006E4
+:1096200090A6006200803821240200300109202326
+:1096300030C300F0AF8500D0106200193090FFFFFA
+:1096400090AE0062240DFFF0240A005001AE6024A9
+:10965000318B00FF116A002F000000001600000788
+:10966000241F0C00AF5F00248FB100148FBF0018BF
+:109670008FB0001003E0000827BD00200E000E2B65
+:1096800002002021241F0C00AF5F00248FB10014C2
+:109690008FBF00188FB0001003E0000827BD002026
+:1096A00094A200E094A400E290BF01130082182667
+:1096B0003079FFFF33E700C014E000092F310001CB
+:1096C00016000038000000005620FFE6241F0C00A2
+:1096D0000E000D27000000000A0011F9241F0C00E5
+:1096E0001620FFDE000000000E000D270000000025
+:1096F0001440FFDC241F0C00160000228F8300D0D2
+:10970000906901133122003FA06201130A0011F990
+:10971000241F0C0094AF00D48F8600D400E02821D1
+:10972000240400050E000C6B31F0FFFF144000050F
+:1097300024030003979100E6000018212625FFFF6F
+:10974000A78500E68F5801B80700FFFE3C1960139B
+:10975000AF400180241F0C00AF50018400793825F0
+:109760003C101000AF4701888FB10014AF5001B812
+:10977000AF5F00248FB000108FBF001803E0000817
+:1097800027BD00200E000E2B020020215040FFB507
+:10979000241F0C008F8300D0906901130A0012224D
+:1097A0003122003F0E000E2B020020211440FFAD9D
+:1097B000241F0C00122000078F8300D09068011333
+:1097C0003106003F34C20040A06201130A0011F9C3
+:1097D000241F0C000E000D27000000005040FFA1C8
+:1097E000241F0C008F8300D0906801133106003FC6
+:1097F0000A00125234C20040AF9B00C803E00008C8
+:10980000AF8000EC3089FFFF000940422D0200418B
+:10981000000929801440000200095040240800403B
+:10982000000879400008C0C001F85821256701A848
+:1098300000EF702125CC007F240DFF80018D1824BE
+:109840000065302100CA282125640088240A008888
+:109850003C010800AC2A004C3C010800AC2400503C
+:10986000AF8500D43C010800AC2900603C01080031
+:10987000AC2800643C010800AC2700543C010800FF
+:10988000AC2300583C010800AC26005C03E0000853
+:1098900000000000308300FF30C6FFFF30E400FF0F
+:1098A0008F4201B80440FFFE00034C00012438251C
+:1098B0003C08600000E820253C031000AF45018013
+:1098C000AF460184AF44018803E00008AF4301B80C
+:1098D0008F86001C3C096012352700108CCB0004D9
+:1098E0003C0C600E35850010316A00062D480001E1
+:1098F000ACE800C48CC40004ACA431808CC2000865
+:1099000094C30002ACA2318403E00008A78300E402
+:109910003C0308008C6300508F8400E88F86001C95
+:109920002402FF800064C0210302C824AF5900282C
+:109930008CCD00043305007F00BA78213C0E000C6A
+:1099400001EE2821ACAD00588CC80008AF8500D0CE
+:109950003C076012ACA8005C8CCC001034E800100E
+:10996000ACAC000C8CCB000CACAB000894AA00147F
+:109970003C0208008C42004425490001A4A90014BF
+:1099800094A400143083FFFF106200178F8400D06E
+:109990003C0A08008D4A0040A4AA00128CCE001890
+:1099A000AC8E00248CCD0014AC8D00208CC7001828
+:1099B000AC87002C8CCC001424060001AC8C002851
+:1099C0008D0B00BC5166001A8D0200B48D0200B8E8
+:1099D000A482003A948F003AA48F003C948800D46B
+:1099E00003E000083102FFFF3C0908008D29002434
+:1099F000A4A000148F8400D0A4A900128CCE00185B
+:109A0000AC8E00248CCD0014AC8D00208CC70018C7
+:109A1000AC87002C8CCC001424060001AC8C0028F0
+:109A20008D0B00BC5566FFEA8D0200B88D0200B4B4
+:109A3000A482003A948F003AA48F003C948800D40A
+:109A400003E000083102FFFF8F86001C3C0C080079
+:109A50008D8C0050240BFF808CCD00083C03000C43
+:109A6000000D51C0018A4021010B4824AF8A00E853
+:109A7000AF49002890C700073105007F00BA1021C8
+:109A80000043282130E400041080002FAF8500D06F
+:109A900090CF000731EE000811C0003C000000002C
+:109AA0008CD9000C8CC400140324C02B1300002696
+:109AB000000000008CC2000CACA200648CCD001829
+:109AC0002402FFF8ACAD00688CCC0010ACAC008078
+:109AD0008CCB000CACAB00848CCA001CACAA007C04
+:109AE00090A900BC01224024A0A800BC90C300079C
+:109AF0003067000810E000048F8500D090AF00BCF4
+:109B000035EE0001A0AE00BC90D90007333800014B
+:109B10001300000F8F8400D024070020908200BC27
+:109B200034490002A08900BC8F8400D09088006274
+:109B3000310300F014670006240A0034AC8A00C028
+:109B40000A001334000000000A00130E8CC2001437
+:109B500090CB00073166000210C000050000000035
+:109B6000908D00BC35AC0004A08C00BC8F8400D06C
+:109B700090980113330F003FA08F01138F8E00D0F8
+:109B800095C500D403E0000830A2FFFFACA000643C
+:109B90000A00130F0000000027BDFFD8AFB000106F
+:109BA0008F90001CAFBF0024AFB40020AFB20018EC
+:109BB000AFB10014AFB3001C9613000E3C07600A4F
+:109BC0003C1460063264FFFF369300100E001261F1
+:109BD00034F404108F8400D43C11600E0E0009AAE6
+:109BE00036310010920E00153C0708008CE700602B
+:109BF0003C12601231CD000FA38D00F08E0E0004D8
+:109C00008E0D000896080012961F00109619001A73
+:109C10009618001E960F001C310CFFFF33EBFFFF60
+:109C2000332AFFFF3309FFFF31E6FFFF3C01080045
+:109C3000AC2B00403C010800AC2C00243C01080087
+:109C4000AC2A0044AE293178AE26317C9202001550
+:109C50009603001636520010304400FF3065FFFFB7
+:109C60003C0608008CC60064AE243188AE4500B4C2
+:109C70009208001496190018241F0001011FC00447
+:109C8000332FFFFF3C0508008CA50058AE5800B8E4
+:109C9000AE4F00BC920C0014AF8E00D8AF8D00DC2C
+:109CA000318B00FFAE4B00C0920A0015AE67004832
+:109CB000AE66004C314900FFAE4900C8AE65007C7D
+:109CC0003C0308008C6300503C0408008C84004C6A
+:109CD0003C0808008D0800543C0208008C42005CDF
+:109CE0008FBF0024AE6300808FB00010AE8300747D
+:109CF0008FB3001CAE22319CAE4200DCAE2731A0F7
+:109D0000AE2631A4AE24318CAE233190AE283194EE
+:109D1000AE253198AE870050AE860054AE850070F7
+:109D20008FB10014AE4700E0AE4600E4AE4400CC74
+:109D3000AE4300D0AE4800D4AE4500D88FB400206A
+:109D40008FB2001803E0000827BD002827BDFFE000
+:109D5000AFB10014AFBF0018241100010E00085469
+:109D6000AFB0001010510005978400E6978300CC37
+:109D70000083102B144000088F8500D424070002B4
+:109D80008FBF00188FB100148FB0001000E01021B9
+:109D900003E0000827BD00200E000C892404000504
+:109DA000AF8200E81040FFF6240700020E000858BA
+:109DB0008F90001C979F00E68F9900E88F8D00C858
+:109DC00027EF0001240E0050AF590020A78F00E6B6
+:109DD000A1AE00003C0C08008D8C00648F8600C88A
+:109DE000240A8000000C5E00ACCB0074A4C0000606
+:109DF00094C9000A241FFF803C0D000C012AC024D6
+:109E0000A4D8000A90C8000A24182000011F1825B1
+:109E1000A0C3000A8F8700C8A0E000788F8500C823
+:109E200000003821A0A000833C0208008C420050B2
+:109E30008F8400E80044782101FFC824AF5900282E
+:109E4000960B000231EE007F01DA6021018D302196
+:109E5000A4CB00D4960A0002AF8600D03C0E0004CA
+:109E600025492401A4C900E68E080004ACC80004FA
+:109E70008E030008ACC30000A4C00010A4C00014EE
+:109E8000A0C000D08F8500D02403FFBFA0A000D1C8
+:109E90003C0408008C8400648F8200D0A04400D26F
+:109EA0008E1F000C8F8A00D0978F00E4AD5F001CDE
+:109EB0008E19001024100030AD590018A540003054
+:109EC000A5510054A5510056A54F0016AD4E00688F
+:109ED000AD580080AD580084914D006231AC000F48
+:109EE000358B0010A14B00628F8600D090C90063B3
+:109EF0003128007FA0C800638F8400D02406FFFFB4
+:109F00009085006300A31024A08200638F9100D08D
+:109F100000E01021923F00BC37F90001A23900BCDB
+:109F20008F8A00D0938F00F0AD580064AD5000C010
+:109F3000914E00D3000F690031CC000F018D5825E0
+:109F4000A14B00D38F8500D08F8900DCACA900E83D
+:109F50008F8800D88FBF00188FB100148FB0001009
+:109F600027BD0020ACA800ECA4A600D6A4A000E069
+:109F7000A4A000E203E000080000000027BDFFE00D
+:109F8000AFB000108F90001CAFB10014AFBF00182D
+:109F90008E1900043C1808008F180050240FFF8011
+:109FA000001989C00238702131CD007F01CF6024B3
+:109FB00001BA50213C0B000CAF4C0028014B402152
+:109FC000950900D4950400D68E0700043131FFFFB7
+:109FD000AF8800D00E000922000721C08E060004C1
+:109FE0008F8300C8000629C0AF4500209064003E62
+:109FF00030820040144000068F8400D0341FFFFFE1
+:10A00000948300D63062FFFF145F0004000000005C
+:10A01000948400D60E0008B73084FFFF8E0500043C
+:10A02000022030218FBF00188FB100148FB00010B4
+:10A030002404002200003821000529C00A001285EE
+:10A0400027BD002027BDFFE0AFB100143091FFFF16
+:10A05000AFB00010AFBF00181220001D000080211B
+:10A060008F86001C8CC500002403000600053F02FB
+:10A070000005140230E4000714830015304500FF8A
+:10A080002CA800061100004D000558803C0C08006B
+:10A09000258C57E8016C50218D49000001200008F3
+:10A0A000000000008F8E00EC240D000111CD00593E
+:10A0B00000000000260B00013170FFFF24CA0020C1
+:10A0C0000211202B014030211480FFE6AF8A001CD2
+:10A0D000020010218FBF00188FB100148FB0001044
+:10A0E00003E0000827BD0020938700CE14E000386D
+:10A0F000240400140E001346000000008F86001C8C
+:10A10000240200010A00148DAF8200EC8F8900EC5C
+:10A11000240800021128003B240400130000282119
+:10A1200000003021240700010E001285000000000D
+:10A130000A00148D8F86001C8F8700EC2405000216
+:10A1400014E5FFF6240400120E0012F200000000D5
+:10A150008F8500E800403021240400120E00128593
+:10A16000000038210A00148D8F86001C8F8300ECBC
+:10A17000241F0003147FFFD0260B00010E0012A441
+:10A18000000000008F8500E800403021240200021A
+:10A190002404001000003821AF8200EC0E0012856C
+:10A1A000000000000A00148D8F86001C8F8F00ECC9
+:10A1B0002406000211E6000B000000002404001039
+:10A1C00000002821000030210A0014AA2407000101
+:10A1D000000028210E001285000030210A00148D95
+:10A1E0008F86001C0E0013B3000000001440001204
+:10A1F0008F99001C8F86001C240200030A00148D16
+:10A20000AF8200EC0E00143F000000000A00148D25
+:10A210008F86001C0E001294000000002402000231
+:10A2200024040014000028210000302100003821FF
+:10A230000A0014C7AF8200EC00403821240400104B
+:10A2400097380002000028210E0012853306FFFF18
+:10A250000A00148D8F86001C8F8400C83C077FFF86
+:10A2600034E6FFFF8C8500742402000100A6182448
+:10A27000AC83007403E00008A082000510A0003643
+:10A280002CA20080274A04003C0B00052409008012
+:10A29000104000072408008030A6000F00C54021B0
+:10A2A0002D0300811460000200A0482124080080D2
+:10A2B000AF4B003000000000000000000000000074
+:10A2C0001100000900003821014030218C8D000070
+:10A2D00024E7000400E8602BACCD000024840004D7
+:10A2E0001580FFFA24C600040000000000000000F2
+:10A2F000000000003C0E0006010E3825AF4700307C
+:10A300000000000000000000000000008F4F00006F
+:10A3100031E800101100FFFD000000008F42003CFA
+:10A320008F43003C0049C8210323C02B13000004C5
+:10A33000000000008F4C003825860001AF46003831
+:10A340008F47003C00A9282300E96821AF4D003C5D
+:10A3500014A0FFCE2CA2008003E000080000000043
+:10A3600027BDFFD03C020002AFB100143C11000C2D
+:10A37000AF450038AFB3001CAF46003C00809821C9
+:10A38000AF42003024050088AF440028035120214B
+:10A39000AFBF0028AFB50024AFB40020AFB20018A3
+:10A3A0000E0014FFAFB000103C1F08008FFF004CE0
+:10A3B0003C1808008F1800642410FF8003F3A821C4
+:10A3C00032B9007F02B078240018A0C0033A70218F
+:10A3D0000018914001D12021AF4F00280E0014FF3A
+:10A3E000025428213C0D08008DAD005024050120A9
+:10A3F00001B35821316C007F01705024019A48212B
+:10A40000013120210E0014FFAF4A00283C0808004B
+:10A410008D0800543C0508008CA500640113382108
+:10A4200030E6007F00F0182400DA2021009120217E
+:10A43000AF4300280E0014FF000529403C0208002D
+:10A440008C4200583C1008008E1000601200001C66
+:10A45000005388212415FF800A0015823C14000C4B
+:10A460003226007F0235182400DA202102402821FC
+:10A47000AF430028009420210E0014FF2610FFC0D7
+:10A480001200000F023288212E05004110A0FFF4B7
+:10A49000241210003226007F00109180023518240B
+:10A4A00000DA202102402821AF4300280094202117
+:10A4B0000E0014FF000080211600FFF302328821F5
+:10A4C0003C0B08008D6B005C240AFF802405000211
+:10A4D00001734021010A4824AF4900283C040800C8
+:10A4E000948400623110007F021A88213C07000C1E
+:10A4F0000E000CB90227982100402821026020217B
+:10A500008FBF00288FB500248FB400208FB3001CAC
+:10A510008FB200188FB100148FB000100A0014FF22
+:10A5200027BD00308F83001C8C62000410400003A4
+:10A530000000000003E00008000000008C64001030
+:0CA540008C6500080A0015388C66000CC1
+:04A54C00000000000B
+:10A550000000001B0000000F0000000A00000008BF
+:10A5600000000006000000050000000500000004D7
+:10A5700000000004000000030000000300000003CE
+:10A5800000000003000000030000000200000002C1
+:10A5900000000002000000020000000200000002B3
+:10A5A00000000002000000020000000200000002A3
+:10A5B0000000000200000002000000020000000293
+:10A5C0000000000200000001000000010000000186
+:10A5D00008000F3008000D8808000FC40800106C38
+:10A5E00008000F5808000F98080011A408000DA4D7
+:10A5F000080011C808000DF4080014980800144061
+:10A6000008000DA408000DA408000DA408001254B1
+:10A610000800125408000DA408000DA4080016E05C
+:10A6200008000DA408000DA408000DA408000DA446
+:10A63000080013D408000DA408000DA408000DA400
+:10A6400008000DA408000DA408000DA408000DA426
+:10A6500008000DA408000DA408000DA408000DA416
+:10A6600008000DA408000DA408000DA408000FB8F0
+:10A6700008000DA408000DA40800169008000DA401
+:10A6800008000DA408000DA408000DA408000DA4E6
+:10A6900008000DA408000DA408000DA408000DA4D6
+:10A6A00008000DA408000DA408000DA408000DA4C6
+:10A6B00008000DA408000DA408000DA408000DA4B6
+:10A6C000080015BC08000DA408000DA408001348DC
+:10A6D000080012B808002E5008002E5808002E203E
+:10A6E00008002E2C08002E3808002E440800532C99
+:10A6F000080052EC080052B80800528C080052685A
+:04A7000008005224D7
+:0CA704000A000C760000000000000000BD
+:10A710000000000D727870342E362E3136000000A5
+:10A72000040610030000000000000001000000000B
+:10A730000000000000000000000000000000000019
+:10A740000000000000000000000000000000000009
+:10A7500000000000000000000000000000000000F9
+:10A7600000000000000000000000000000000000E9
+:10A7700000000000000000000000000000000000D9
+:10A7800000000000000000000000000000000000C9
+:10A7900000000000000000000000000000000000B9
+:10A7A00000000000000000000000000000000000A9
+:10A7B0000000000000000000000000000000000099
+:10A7C0000000000000000000000000000000000089
+:10A7D0000000000000000000000000000000000079
+:10A7E0000000000000000000000000000000000069
+:10A7F0000000000000000000000000000000000059
+:10A800000000000000000000000000000000000048
+:10A810000000000000000000000000000000000038
+:10A820000000000000000000000000000000000028
+:10A830000000000000000000000000000000000018
+:10A840000000000000000000000000000000000008
+:10A8500000000000000000000000000000000000F8
+:10A8600000000000000000000000000000000000E8
+:10A8700000000000000000000000000000000000D8
+:10A8800000000000000000000000000000000000C8
+:10A8900000000000000000000000000000000000B8
+:10A8A00000000000000000000000000000000000A8
+:10A8B0000000000000000000000000000000000098
+:10A8C0000000000000000000000000000000000088
+:10A8D0000000000000000000000000000000000078
+:10A8E0000000000000000000000000000000000068
+:10A8F0000000000000000000000000000000000058
+:10A900000000000000000000000000000000000047
+:10A910000000000000000000000000000000000037
+:10A920000000000000000000000000000000000027
+:10A930000000000000000000000000000000000017
+:10A940000000000000000000000000000000000007
+:10A9500000000000000000000000000000000000F7
+:10A9600000000000000000000000000000000000E7
+:10A9700000000000000000000000000000000000D7
+:10A9800000000000000000000000000000000000C7
+:10A9900000000000000000000000000000000000B7
+:10A9A00000000000000000000000000000000000A7
+:10A9B0000000000000000000000000000000000097
+:10A9C0000000000000000000000000000000000087
+:10A9D0000000000000000000000000000000000077
+:10A9E0000000000000000000000000000000000067
+:10A9F0000000000000000000000000000000000057
+:10AA00000000000000000000000000000000000046
+:10AA10000000000000000000000000000000000036
+:10AA20000000000000000000000000000000000026
+:10AA30000000000000000000000000000000000016
+:10AA40000000000000000000000000000000000006
+:10AA500000000000000000000000000000000000F6
+:10AA600000000000000000000000000000000000E6
+:10AA700000000000000000000000000000000000D6
+:10AA800000000000000000000000000000000000C6
+:10AA900000000000000000000000000000000000B6
+:10AAA00000000000000000000000000000000000A6
+:10AAB0000000000000000000000000000000000096
+:10AAC0000000000000000000000000000000000086
+:10AAD0000000000000000000000000000000000076
+:10AAE0000000000000000000000000000000000066
+:10AAF0000000000000000000000000000000000056
+:10AB00000000000000000000000000000000000045
+:10AB10000000000000000000000000000000000035
+:10AB20000000000000000000000000000000000025
+:10AB30000000000000000000000000000000000015
+:10AB40000000000000000000000000000000000005
+:10AB500000000000000000000000000000000000F5
+:10AB600000000000000000000000000000000000E5
+:10AB700000000000000000000000000000000000D5
+:10AB800000000000000000000000000000000000C5
+:10AB900000000000000000000000000000000000B5
+:10ABA00000000000000000000000000000000000A5
+:10ABB0000000000000000000000000000000000095
+:10ABC0000000000000000000000000000000000085
+:10ABD0000000000000000000000000000000000075
+:10ABE0000000000000000000000000000000000065
+:10ABF0000000000000000000000000000000000055
+:10AC00000000000000000000000000000000000044
+:10AC10000000000000000000000000000000000034
+:10AC20000000000000000000000000000000000024
+:10AC30000000000000000000000000000000000014
+:10AC40000000000000000000000000000000000004
+:10AC500000000000000000000000000000000000F4
+:10AC600000000000000000000000000000000000E4
+:10AC700000000000000000000000000000000000D4
+:10AC800000000000000000000000000000000000C4
+:10AC900000000000000000000000000000000000B4
+:10ACA00000000000000000000000000000000000A4
+:10ACB0000000000000000000000000000000000094
+:10ACC0000000000000000000000000000000000084
+:10ACD0000000000000000000000000000000000074
+:10ACE0000000000000000000000000000000000064
+:10ACF0000000000000000000000000000000000054
+:10AD00000000000000000000000000000000000043
+:10AD10000000000000000000000000000000000033
+:10AD20000000000000000000000000000000000023
+:10AD30000000000000000000000000000000000013
+:10AD40000000000000000000000000000000000003
+:10AD500000000000000000000000000000000000F3
+:10AD600000000000000000000000000000000000E3
+:10AD700000000000000000000000000000000000D3
+:10AD800000000000000000000000000000000000C3
+:10AD900000000000000000000000000000000000B3
+:10ADA00000000000000000000000000000000000A3
+:10ADB0000000000000000000000000000000000093
+:10ADC0000000000000000000000000000000000083
+:10ADD0000000000000000000000000000000000073
+:10ADE0000000000000000000000000000000000063
+:10ADF0000000000000000000000000000000000053
+:10AE00000000000000000000000000000000000042
+:10AE10000000000000000000000000000000000032
+:10AE20000000000000000000000000000000000022
+:10AE30000000000000000000000000000000000012
+:10AE40000000000000000000000000000000000002
+:10AE500000000000000000000000000000000000F2
+:10AE600000000000000000000000000000000000E2
+:10AE700000000000000000000000000000000000D2
+:10AE800000000000000000000000000000000000C2
+:10AE900000000000000000000000000000000000B2
+:10AEA00000000000000000000000000000000000A2
+:10AEB0000000000000000000000000000000000092
+:10AEC0000000000000000000000000000000000082
+:10AED0000000000000000000000000000000000072
+:10AEE0000000000000000000000000000000000062
+:10AEF0000000000000000000000000000000000052
+:10AF00000000000000000000000000000000000041
+:10AF10000000000000000000000000000000000031
+:10AF20000000000000000000000000000000000021
+:10AF30000000000000000000000000000000000011
+:10AF40000000000000000000000000000000000001
+:10AF500000000000000000000000000000000000F1
+:10AF600000000000000000000000000000000000E1
+:10AF700000000000000000000000000000000000D1
+:10AF800000000000000000000000000000000000C1
+:10AF900000000000000000000000000000000000B1
+:10AFA00000000000000000000000000000000000A1
+:10AFB0000000000000000000000000000000000091
+:10AFC0000000000000000000000000000000000081
+:10AFD0000000000000000000000000000000000071
+:10AFE0000000000000000000000000000000000061
+:10AFF0000000000000000000000000000000000051
+:10B000000000000000000000000000000000000040
+:10B010000000000000000000000000000000000030
+:10B020000000000000000000000000000000000020
+:10B030000000000000000000000000000000000010
+:10B040000000000000000000000000000000000000
+:10B0500000000000000000000000000000000000F0
+:10B0600000000000000000000000000000000000E0
+:10B0700000000000000000000000000000000000D0
+:10B0800000000000000000000000000000000000C0
+:10B0900000000000000000000000000000000000B0
+:10B0A00000000000000000000000000000000000A0
+:10B0B0000000000000000000000000000000000090
+:10B0C0000000000000000000000000000000000080
+:10B0D0000000000000000000000000000000000070
+:10B0E0000000000000000000000000000000000060
+:10B0F0000000000000000000000000000000000050
+:10B10000000000000000000000000000000000003F
+:10B11000000000000000000000000000000000002F
+:10B12000000000000000000000000000000000001F
+:10B13000000000000000000000000000000000000F
+:10B1400000000000000000000000000000000000FF
+:10B1500000000000000000000000000000000000EF
+:10B1600000000000000000000000000000000000DF
+:10B1700000000000000000000000000000000000CF
+:10B1800000000000000000000000000000000000BF
+:10B1900000000000000000000000000000000000AF
+:10B1A000000000000000000000000000000000009F
+:10B1B000000000000000000000000000000000008F
+:10B1C000000000000000000000000000000000007F
+:10B1D000000000000000000000000000000000006F
+:10B1E000000000000000000000000000000000005F
+:10B1F000000000000000000000000000000000004F
+:10B20000000000000000000000000000000000003E
+:10B21000000000000000000000000000000000002E
+:10B22000000000000000000000000000000000001E
+:10B23000000000000000000000000000000000000E
+:10B2400000000000000000000000000000000000FE
+:10B2500000000000000000000000000000000000EE
+:10B2600000000000000000000000000000000000DE
+:10B2700000000000000000000000000000000000CE
+:10B2800000000000000000000000000000000000BE
+:10B2900000000000000000000000000000000000AE
+:10B2A000000000000000000000000000000000009E
+:10B2B000000000000000000000000000000000008E
+:10B2C000000000000000000000000000000000007E
+:10B2D000000000000000000000000000000000006E
+:10B2E000000000000000000000000000000000005E
+:10B2F000000000000000000000000000000000004E
+:10B30000000000000000000000000000000000003D
+:10B31000000000000000000000000000000000002D
+:10B32000000000000000000000000000000000001D
+:10B33000000000000000000000000000000000000D
+:10B3400000000000000000000000000000000000FD
+:10B3500000000000000000000000000000000000ED
+:10B3600000000000000000000000000000000000DD
+:10B3700000000000000000000000000000000000CD
+:10B3800000000000000000000000000000000000BD
+:10B3900000000000000000000000000000000000AD
+:10B3A000000000000000000000000000000000009D
+:10B3B000000000000000000000000000000000008D
+:10B3C000000000000000000000000000000000007D
+:10B3D000000000000000000000000000000000006D
+:10B3E000000000000000000000000000000000005D
+:10B3F000000000000000000000000000000000004D
+:10B40000000000000000000000000000000000003C
+:10B41000000000000000000000000000000000002C
+:10B42000000000000000000000000000000000001C
+:10B43000000000000000000000000000000000000C
+:10B4400000000000000000000000000000000000FC
+:10B4500000000000000000000000000000000000EC
+:10B4600000000000000000000000000000000000DC
+:10B4700000000000000000000000000000000000CC
+:10B4800000000000000000000000000000000000BC
+:10B4900000000000000000000000000000000000AC
+:10B4A000000000000000000000000000000000009C
+:10B4B000000000000000000000000000000000008C
+:10B4C000000000000000000000000000000000007C
+:10B4D000000000000000000000000000000000006C
+:10B4E000000000000000000000000000000000005C
+:10B4F000000000000000000000000000000000004C
+:10B50000000000000000000000000000000000003B
+:10B51000000000000000000000000000000000002B
+:10B52000000000000000000000000000000000001B
+:10B53000000000000000000000000000000000000B
+:10B5400000000000000000000000000000000000FB
+:10B5500000000000000000000000000000000000EB
+:10B5600000000000000000000000000000000000DB
+:10B5700000000000000000000000000000000000CB
+:10B5800000000000000000000000000000000000BB
+:10B5900000000000000000000000000000000000AB
+:10B5A000000000000000000000000000000000009B
+:10B5B000000000000000000000000000000000008B
+:10B5C000000000000000000000000000000000007B
+:10B5D000000000000000000000000000000000006B
+:10B5E000000000000000000000000000000000005B
+:10B5F000000000000000000000000000000000004B
+:10B60000000000000000000000000000000000003A
+:10B61000000000000000000000000000000000002A
+:10B62000000000000000000000000000000000001A
+:10B63000000000000000000000000000000000000A
+:10B6400000000000000000000000000000000000FA
+:10B6500000000000000000000000000000000000EA
+:10B6600000000000000000000000000000000000DA
+:10B6700000000000000000000000000000000000CA
+:10B6800000000000000000000000000000000000BA
+:10B6900000000000000000000000000000000000AA
+:10B6A000000000000000000000000000000000009A
+:10B6B000000000000000000000000000000000008A
+:10B6C000000000000000000000000000000000007A
+:10B6D000000000000000000000000000000000006A
+:10B6E000000000000000000000000000000000005A
+:10B6F000000000000000000000000000000000004A
+:10B700000000000000000000000000000000000039
+:10B710000000000000000000000000000000000029
+:10B720000000000000000000000000000000000019
+:10B730000000000000000000000000000000000009
+:10B7400000000000000000000000000000000000F9
+:10B7500000000000000000000000000000000000E9
+:10B7600000000000000000000000000000000000D9
+:10B7700000000000000000000000000000000000C9
+:10B7800000000000000000000000000000000000B9
+:10B7900000000000000000000000000000000000A9
+:10B7A0000000000000000000000000000000000099
+:10B7B0000000000000000000000000000000000089
+:10B7C0000000000000000000000000000000000079
+:10B7D0000000000000000000000000000000000069
+:10B7E0000000000000000000000000000000000059
+:10B7F0000000000000000000000000000000000049
+:10B800000000000000000000000000000000000038
+:10B810000000000000000000000000000000000028
+:10B820000000000000000000000000000000000018
+:10B830000000000000000000000000000000000008
+:10B8400000000000000000000000000000000000F8
+:10B8500000000000000000000000000000000000E8
+:10B8600000000000000000000000000000000000D8
+:10B8700000000000000000000000000000000000C8
+:10B8800000000000000000000000000000000000B8
+:10B8900000000000000000000000000000000000A8
+:10B8A0000000000000000000000000000000000098
+:10B8B0000000000000000000000000000000000088
+:10B8C0000000000000000000000000000000000078
+:10B8D0000000000000000000000000000000000068
+:10B8E0000000000000000000000000000000000058
+:10B8F0000000000000000000000000000000000048
+:10B900000000000000000000000000000000000037
+:10B910000000000000000000000000000000000027
+:10B920000000000000000000000000000000000017
+:10B930000000000000000000000000000000000007
+:10B9400000000000000000000000000000000000F7
+:10B9500000000000000000000000000000000000E7
+:10B9600000000000000000000000000000000000D7
+:10B9700000000000000000000000000000000000C7
+:10B9800000000000000000000000000000000000B7
+:10B9900000000000000000000000000000000000A7
+:10B9A0000000000000000000000000000000000097
+:10B9B0000000000000000000000000000000000087
+:10B9C0000000000000000000000000000000000077
+:10B9D0000000000000000000000000000000000067
+:10B9E0000000000000000000000000000000000057
+:10B9F0000000000000000000000000000000000047
+:10BA00000000000000000000000000000000000036
+:10BA10000000000000000000000000000000000026
+:10BA20000000000000000000000000000000000016
+:10BA30000000000000000000000000000000000006
+:10BA400000000000000000000000000000000000F6
+:10BA500000000000000000000000000000000000E6
+:10BA600000000000000000000000000000000000D6
+:10BA700000000000000000000000000000000000C6
+:10BA800000000000000000000000000000000000B6
+:10BA900000000000000000000000000000000000A6
+:10BAA0000000000000000000000000000000000096
+:10BAB0000000000000000000000000000000000086
+:10BAC0000000000000000000000000000000000076
+:10BAD0000000000000000000000000000000000066
+:10BAE0000000000000000000000000000000000056
+:10BAF0000000000000000000000000000000000046
+:10BB00000000000000000000000000000000000035
+:10BB10000000000000000000000000000000000025
+:10BB20000000000000000000000000000000000015
+:10BB30000000000000000000000000000000000005
+:10BB400000000000000000000000000000000000F5
+:10BB500000000000000000000000000000000000E5
+:10BB600000000000000000000000000000000000D5
+:10BB700000000000000000000000000000000000C5
+:10BB800000000000000000000000000000000000B5
+:10BB900000000000000000000000000000000000A5
+:10BBA0000000000000000000000000000000000095
+:10BBB0000000000000000000000000000000000085
+:10BBC0000000000000000000000000000000000075
+:10BBD0000000000000000000000000000000000065
+:10BBE0000000000000000000000000000000000055
+:10BBF0000000000000000000000000000000000045
+:10BC00000000000000000000000000000000000034
+:10BC10000000000000000000000000000000000024
+:10BC20000000000000000000000000000000000014
+:10BC30000000000000000000000000000000000004
+:10BC400000000000000000000000000000000000F4
+:10BC500000000000000000000000000000000000E4
+:10BC600000000000000000000000000000000000D4
+:10BC700000000000000000000000000000000000C4
+:10BC800000000000000000000000000000000000B4
+:10BC900000000000000000000000000000000000A4
+:10BCA0000000000000000000000000000000000094
+:10BCB0000000000000000000000000000000000084
+:10BCC0000000000000000000000000000000000074
+:10BCD0000000000000000000000000000000000064
+:10BCE0000000000000000000000000000000000054
+:10BCF0000000000000000000000000000000000044
+:10BD00000000000000000000000000000000000033
+:10BD10000000000000000000000000000000000023
+:10BD20000000000000000000000000000000000013
+:10BD30000000000000000000000000000000000003
+:10BD400000000000000000000000000000000000F3
+:10BD500000000000000000000000000000000000E3
+:10BD600000000000000000000000000000000000D3
+:10BD700000000000000000000000000000000000C3
+:10BD800000000000000000000000000000000000B3
+:10BD900000000000000000000000000000000000A3
+:10BDA0000000000000000000000000000000000093
+:10BDB0000000000000000000000000000000000083
+:10BDC0000000000000000000000000000000000073
+:10BDD0000000000000000000000000000000000063
+:10BDE0000000000000000000000000000000000053
+:10BDF0000000000000000000000000000000000043
+:10BE00000000000000000000000000000000000032
+:10BE10000000000000000000000000000000000022
+:10BE20000000000000000000000000000000000012
+:10BE30000000000000000000000000000000000002
+:10BE400000000000000000000000000000000000F2
+:10BE500000000000000000000000000000000000E2
+:10BE600000000000000000000000000000000000D2
+:10BE700000000000000000000000000000000000C2
+:10BE800000000000000000000000000000000000B2
+:10BE900000000000000000000000000000000000A2
+:10BEA0000000000000000000000000000000000092
+:10BEB0000000000000000000000000000000000082
+:10BEC0000000000000000000000000000000000072
+:10BED0000000000000000000000000000000000062
+:10BEE0000000000000000000000000000000000052
+:10BEF0000000000000000000000000000000000042
+:10BF00000000000000000000000000000000000031
+:10BF10000000000000000000000000000000000021
+:10BF20000000000000000000000000000000000011
+:10BF30000000000000000000000000000000000001
+:10BF400000000000000000000000000000000000F1
+:10BF500000000000000000000000000000000000E1
+:10BF600000000000000000000000000000000000D1
+:10BF700000000000000000000000000000000000C1
+:10BF800000000000000000000000000000000000B1
+:10BF900000000000000000000000000000000000A1
+:10BFA0000000000000000000000000000000000091
+:10BFB0000000000000000000000000000000000081
+:10BFC0000000000000000000000000000000000071
+:10BFD0000000000000000000000000000000000061
+:10BFE0000000000000000000000000000000000051
+:10BFF0000000000000000000000000000000000041
+:10C000000000000000000000000000000000000030
+:10C010000000000000000000000000000000000020
+:10C020000000000000000000000000000000000010
+:10C030000000000000000000000000000000000000
+:10C0400000000000000000000000000000000000F0
+:10C0500000000000000000000000000000000000E0
+:10C0600000000000000000000000000000000000D0
+:10C0700000000000000000000000000000000000C0
+:10C0800000000000000000000000000000000000B0
+:10C0900000000000000000000000000000000000A0
+:10C0A0000000000000000000000000000000000090
+:10C0B0000000000000000000000000000000000080
+:10C0C0000000000000000000000000000000000070
+:10C0D0000000000000000000000000000000000060
+:10C0E0000000000000000000000000000000000050
+:10C0F0000000000000000000000000000000000040
+:10C10000000000000000000000000000000000002F
+:10C11000000000000000000000000000000000001F
+:10C12000000000000000000000000000000000000F
+:10C1300000000000000000000000000000000000FF
+:10C1400000000000000000000000000000000000EF
+:10C1500000000000000000000000000000000000DF
+:10C1600000000000000000000000000000000000CF
+:10C1700000000000000000000000000000000000BF
+:10C1800000000000000000000000000000000000AF
+:10C19000000000000000000000000000000000009F
+:10C1A000000000000000000000000000000000008F
+:10C1B000000000000000000000000000000000007F
+:10C1C000000000000000000000000000000000006F
+:10C1D000000000000000000000000000000000005F
+:10C1E000000000000000000000000000000000004F
+:10C1F000000000000000000000000000000000003F
+:10C20000000000000000000000000000000000002E
+:10C21000000000000000000000000000000000001E
+:10C22000000000000000000000000000000000000E
+:10C2300000000000000000000000000000000000FE
+:10C2400000000000000000000000000000000000EE
+:10C2500000000000000000000000000000000000DE
+:10C2600000000000000000000000000000000000CE
+:10C2700000000000000000000000000000000000BE
+:10C2800000000000000000000000000000000000AE
+:10C29000000000000000000000000000000000009E
+:10C2A000000000000000000000000000000000008E
+:10C2B000000000000000000000000000000000007E
+:10C2C000000000000000000000000000000000006E
+:10C2D000000000000000000000000000000000005E
+:10C2E000000000000000000000000000000000004E
+:10C2F000000000000000000000000000000000003E
+:10C30000000000000000000000000000000000002D
+:10C31000000000000000000000000000000000001D
+:10C32000000000000000000000000000000000000D
+:10C3300000000000000000000000000000000000FD
+:10C3400000000000000000000000000000000000ED
+:10C3500000000000000000000000000000000000DD
+:10C3600000000000000000000000000000000000CD
+:10C3700000000000000000000000000000000000BD
+:10C3800000000000000000000000000000000000AD
+:10C39000000000000000000000000000000000009D
+:10C3A000000000000000000000000000000000008D
+:10C3B000000000000000000000000000000000007D
+:10C3C000000000000000000000000000000000006D
+:10C3D000000000000000000000000000000000005D
+:10C3E000000000000000000000000000000000004D
+:10C3F000000000000000000000000000000000003D
+:10C40000000000000000000000000000000000002C
+:10C41000000000000000000000000000000000001C
+:10C42000000000000000000000000000000000000C
+:10C4300000000000000000000000000000000000FC
+:10C4400000000000000000000000000000000000EC
+:10C4500000000000000000000000000000000000DC
+:10C4600000000000000000000000000000000000CC
+:10C4700000000000000000000000000000000000BC
+:10C4800000000000000000000000000000000000AC
+:10C49000000000000000000000000000000000009C
+:10C4A000000000000000000000000000000000008C
+:10C4B000000000000000000000000000000000007C
+:10C4C000000000000000000000000000000000006C
+:10C4D000000000000000000000000000000000005C
+:10C4E000000000000000000000000000000000004C
+:10C4F000000000000000000000000000000000003C
+:10C50000000000000000000000000000000000002B
+:10C51000000000000000000000000000000000001B
+:10C52000000000000000000000000000000000000B
+:10C5300000000000000000000000000000000000FB
+:10C5400000000000000000000000000000000000EB
+:10C5500000000000000000000000000000000000DB
+:10C5600000000000000000000000000000000000CB
+:10C5700000000000000000000000000000000000BB
+:10C5800000000000000000000000000000000000AB
+:10C59000000000000000000000000000000000009B
+:10C5A000000000000000000000000000000000008B
+:10C5B000000000000000000000000000000000007B
+:10C5C000000000000000000000000000000000006B
+:10C5D000000000000000000000000000000000005B
+:10C5E000000000000000000000000000000000004B
+:10C5F000000000000000000000000000000000003B
+:10C60000000000000000000000000000000000002A
+:10C61000000000000000000000000000000000001A
+:10C62000000000000000000000000000000000000A
+:10C6300000000000000000000000000000000000FA
+:10C6400000000000000000000000000000000000EA
+:10C6500000000000000000000000000000000000DA
+:10C6600000000000000000000000000000000000CA
+:10C6700000000000000000000000000000000000BA
+:10C6800000000000000000000000000000000000AA
+:10C69000000000000000000000000000000000009A
+:10C6A000000000000000000000000000000000008A
+:10C6B000000000000000000000000000000000007A
+:10C6C000000000000000000000000000000000006A
+:10C6D000000000000000000000000000000000005A
+:10C6E000000000000000000000000000000000004A
+:10C6F000000000000000000000000000000000003A
+:10C700000000000000000000000000000000000029
+:10C710000000000000000000000000000000000019
+:10C720000000000000000000000000000000000009
+:10C7300000000000000000000000000000000000F9
+:10C7400000000000000000000000000000000000E9
+:10C7500000000000000000000000000000000000D9
+:10C7600000000000000000000000000000000000C9
+:10C7700000000000000000000000000000000000B9
+:10C7800000000000000000000000000000000000A9
+:10C790000000000000000000000000000000000099
+:10C7A0000000000000000000000000000000000089
+:10C7B0000000000000000000000000000000000079
+:10C7C0000000000000000000000000000000000069
+:10C7D0000000000000000000000000000000000059
+:10C7E0000000000000000000000000000000000049
+:10C7F0000000000000000000000000000000000039
+:10C800000000000000000000000000000000000028
+:10C810000000000000000000000000000000000018
+:10C820000000000000000000000000000000000008
+:10C8300000000000000000000000000000000000F8
+:10C8400000000000000000000000000000000000E8
+:10C8500000000000000000000000000000000000D8
+:10C8600000000000000000000000000000000000C8
+:10C8700000000000000000000000000000000000B8
+:10C8800000000000000000000000000000000000A8
+:10C890000000000000000000000000000000000098
+:10C8A0000000000000000000000000000000000088
+:10C8B0000000000000000000000000000000000078
+:10C8C0000000000000000000000000000000000068
+:10C8D0000000000000000000000000000000000058
+:10C8E0000000000000000000000000000000000048
+:10C8F0000000000000000000000000000000000038
+:10C900000000000000000000000000000000000027
+:10C910000000000000000000000000000000000017
+:10C920000000000000000000000000000000000007
+:10C9300000000000000000000000000000000000F7
+:10C9400000000000000000000000000000000000E7
+:10C9500000000000000000000000000000000000D7
+:10C9600000000000000000000000000000000000C7
+:10C9700000000000000000000000000000000000B7
+:10C9800000000000000000000000000000000000A7
+:10C990000000000000000000000000000000000097
+:10C9A0000000000000000000000000000000000087
+:10C9B0000000000000000000000000000000000077
+:10C9C0000000000000000000000000000000000067
+:10C9D0000000000000000000000000000000000057
+:10C9E0000000000000000000000000000000000047
+:10C9F0000000000000000000000000000000000037
+:10CA00000000000000000000000000000000000026
+:10CA10000000000000000000000000000000000016
+:10CA20000000000000000000000000000000000006
+:10CA300000000000000000000000000000000000F6
+:10CA400000000000000000000000000000000000E6
+:10CA500000000000000000000000000000000000D6
+:10CA600000000000000000000000000000000000C6
+:10CA700000000000000000000000000000000000B6
+:10CA800000000000000000000000000000000000A6
+:10CA90000000000000000000000000000000000096
+:10CAA0000000000000000000000000000000000086
+:10CAB0000000000000000000000000000000000076
+:10CAC0000000000000000000000000000000000066
+:10CAD0000000000000000000000000000000000056
+:10CAE0000000000000000000000000000000000046
+:10CAF0000000000000000000000000000000000036
+:10CB00000000000000000000000000000000000025
+:10CB10000000000000000000000000000000000015
+:10CB20000000000000000000000000000000000005
+:10CB300000000000000000000000000000000000F5
+:10CB400000000000000000000000000000000000E5
+:10CB500000000000000000000000000000000000D5
+:10CB600000000000000000000000000000000000C5
+:10CB700000000000000000000000000000000000B5
+:10CB800000000000000000000000000000000000A5
+:10CB90000000000000000000000000000000000095
+:10CBA0000000000000000000000000000000000085
+:10CBB0000000000000000000000000000000000075
+:10CBC0000000000000000000000000000000000065
+:10CBD0000000000000000000000000000000000055
+:10CBE0000000000000000000000000000000000045
+:10CBF0000000000000000000000000000000000035
+:10CC00000000000000000000000000000000000024
+:10CC10000000000000000000000000000000000014
+:10CC20000000000000000000000000000000000004
+:10CC300000000000000000000000000000000000F4
+:10CC400000000000000000000000000000000000E4
+:10CC500000000000000000000000000000000000D4
+:10CC600000000000000000000000000000000000C4
+:10CC700000000000000000000000000000000000B4
+:10CC800000000000000000000000000000000000A4
+:10CC90000000000000000000000000000000000094
+:10CCA0000000000000000000000000000000000084
+:10CCB0000000000000000000000000000000000074
+:10CCC0000000000000000000000000000000000064
+:10CCD0000000000000000000000000000000000054
+:10CCE0000000000000000000000000000000000044
+:10CCF0000000000000000000000000000000000034
+:10CD00000000000000000000000000000000000023
+:10CD10000000000000000000000000000000000013
+:10CD20000000000000000000000000000000000003
+:10CD300000000000000000000000000000000000F3
+:10CD400000000000000000000000000000000000E3
+:10CD500000000000000000000000000000000000D3
+:10CD600000000000000000000000000000000000C3
+:10CD700000000000000000000000000000000000B3
+:10CD800000000000000000000000000000000000A3
+:10CD90000000000000000000000000000000000093
+:10CDA0000000000000000000000000000000000083
+:10CDB0000000000000000000000000000000000073
+:10CDC0000000000000000000000000000000000063
+:10CDD0000000000000000000000000000000000053
+:10CDE0000000000000000000000000000000000043
+:10CDF0000000000000000000000000000000000033
+:10CE00000000000000000000000000000000000022
+:10CE10000000000000000000000000000000000012
+:10CE20000000000000000000000000000000000002
+:10CE300000000000000000000000000000000000F2
+:10CE400000000000000000000000000000000000E2
+:10CE500000000000000000000000000000000000D2
+:10CE600000000000000000000000000000000000C2
+:10CE700000000000000000000000000000000000B2
+:10CE800000000000000000000000000000000000A2
+:10CE90000000000000000000000000000000000092
+:10CEA0000000000000000000000000000000000082
+:10CEB0000000000000000000000000000000000072
+:10CEC0000000000000000000000000000000000062
+:10CED0000000000000000000000000000000000052
+:10CEE0000000000000000000000000000000000042
+:10CEF0000000000000000000000000000000000032
+:10CF00000000000000000000000000000000000021
+:10CF10000000000000000000000000000000000011
+:10CF20000000000000000000000000000000000001
+:10CF300000000000000000000000000000000000F1
+:10CF400000000000000000000000000000000000E1
+:10CF500000000000000000000000000000000000D1
+:10CF600000000000000000000000000000000000C1
+:10CF700000000000000000000000000000000000B1
+:10CF800000000000000000000000000000000000A1
+:10CF90000000000000000000000000000000000091
+:10CFA0000000000000000000000000000000000081
+:10CFB0000000000000000000000000000000000071
+:10CFC0000000000000000000000000000000000061
+:10CFD0000000000000000000000000000000000051
+:10CFE0000000000000000000000000000000000041
+:10CFF0000000000000000000000000000000000031
+:10D000000000000000000000000000000000000020
+:10D010000000000000000000000000000000000010
+:10D020000000000000000000000000000000000000
+:10D0300000000000000000000000000000000000F0
+:10D0400000000000000000000000000000000000E0
+:10D0500000000000000000000000000000000000D0
+:10D0600000000000000000000000000000000000C0
+:10D0700000000000000000000000000000000000B0
+:10D0800000000000000000000000000000000000A0
+:10D090000000000000000000000000000000000090
+:10D0A0000000000000000000000000000000000080
+:10D0B0000000000000000000000000000000000070
+:10D0C0000000000000000000000000000000000060
+:10D0D0000000000000000000000000000000000050
+:10D0E0000000000000000000000000000000000040
+:10D0F0000000000000000000000000000000000030
+:10D10000000000000000000000000000000000001F
+:10D11000000000000000000000000000000000000F
+:10D1200000000000000000000000000000000000FF
+:10D1300000000000000000000000000000000000EF
+:10D1400000000000000000000000000000000000DF
+:10D1500000000000000000000000000000000000CF
+:10D1600000000000000000000000000000000000BF
+:10D1700000000000000000000000000000000000AF
+:10D18000000000000000000000000000000000009F
+:10D19000000000000000000000000000000000008F
+:10D1A000000000000000000000000000000000007F
+:10D1B000000000000000000000000000000000006F
+:10D1C000000000000000000000000000000000005F
+:10D1D000000000000000000000000000000000004F
+:10D1E000000000000000000000000000000000003F
+:10D1F000000000000000000000000000000000002F
+:10D20000000000000000000000000000000000001E
+:10D21000000000000000000000000000000000000E
+:10D2200000000000000000000000000000000000FE
+:10D2300000000000000000000000000000000000EE
+:10D2400000000000000000000000000000000000DE
+:10D2500000000000000000000000000000000000CE
+:10D2600000000000000000000000000000000000BE
+:10D2700000000000000000000000000000000000AE
+:10D28000000000000000000000000000000000009E
+:10D29000000000000000000000000000000000008E
+:10D2A000000000000000000000000000000000007E
+:10D2B000000000000000000000000000000000006E
+:10D2C000000000000000000000000000000000005E
+:10D2D000000000000000000000000000000000004E
+:10D2E000000000000000000000000000000000003E
+:10D2F000000000000000000000000000000000002E
+:10D30000000000000000000000000000000000001D
+:10D31000000000000000000000000000000000000D
+:10D3200000000000000000000000000000000000FD
+:10D3300000000000000000000000000000000000ED
+:10D3400000000000000000000000000000000000DD
+:10D3500000000000000000000000000000000000CD
+:10D3600000000000000000000000000000000000BD
+:10D3700000000000000000000000000000000000AD
+:10D38000000000000000000000000000000000009D
+:10D39000000000000000000000000000000000008D
+:10D3A000000000000000000000000000000000007D
+:10D3B000000000000000000000000000000000006D
+:10D3C000000000000000000000000000000000005D
+:10D3D000000000000000000000000000000000004D
+:10D3E000000000000000000000000000000000003D
+:10D3F000000000000000000000000000000000002D
+:10D40000000000000000000000000000000000001C
+:10D41000000000000000000000000000000000000C
+:10D4200000000000000000000000000000000000FC
+:10D4300000000000000000000000000000000000EC
+:10D4400000000000000000000000000000000000DC
+:10D4500000000000000000000000000000000000CC
+:10D4600000000000000000000000000000000000BC
+:10D4700000000000000000000000000000000000AC
+:10D48000000000000000000000000000000000009C
+:10D49000000000000000000000000000000000008C
+:10D4A000000000000000000000000000000000007C
+:10D4B000000000000000000000000000000000006C
+:10D4C000000000000000000000000000000000005C
+:10D4D000000000000000000000000000000000004C
+:10D4E000000000000000000000000000000000003C
+:10D4F000000000000000000000000000000000002C
+:10D50000000000000000000000000000000000001B
+:10D51000000000000000000000000000000000000B
+:10D5200000000000000000000000000000000000FB
+:10D5300000000000000000000000000000000000EB
+:10D5400000000000000000000000000000000000DB
+:10D5500000000000000000000000000000000000CB
+:10D5600000000000000000000000000000000000BB
+:10D5700000000000000000000000000000000000AB
+:10D58000000000000000000000000000000000009B
+:10D59000000000000000000000000000000000008B
+:10D5A000000000000000000000000000000000007B
+:10D5B000000000000000000000000000000000006B
+:10D5C000000000000000000000000000000000005B
+:10D5D000000000000000000000000000000000004B
+:10D5E000000000000000000000000000000000003B
+:10D5F000000000000000000000000000000000002B
+:10D60000000000000000000000000000000000001A
+:10D61000000000000000000000000000000000000A
+:10D6200000000000000000000000000000000000FA
+:10D6300000000000000000000000000000000000EA
+:10D6400000000000000000000000000000000000DA
+:10D6500000000000000000000000000000000000CA
+:10D6600000000000000000000000000000000000BA
+:10D6700000000000000000000000000000000000AA
+:10D68000000000000000000000000000000000009A
+:10D69000000000000000000000000000000000008A
+:10D6A000000000000000000000000000000000007A
+:10D6B000000000000000000000000000000000006A
+:10D6C000000000000000000000000000000000005A
+:10D6D000000000000000000000000000000000004A
+:10D6E000000000000000000000000000000000003A
+:10D6F000000000000000000000000000000000002A
+:10D700000000000000000000000000000000000019
+:10D710000000000000000000000000000000000009
+:10D7200000000000000000000000000000000000F9
+:10D7300000000000000000000000000000000000E9
+:10D7400000000000000000000000000000000000D9
+:10D7500000000000000000000000000000000000C9
+:10D7600000000000000000000000000000000000B9
+:10D7700000000000000000000000000000000000A9
+:10D780000000000000000000000000000000000099
+:10D790000000000000000000000000000000000089
+:10D7A0000000000000000000000000000000000079
+:10D7B0000000000000000000000000000000000069
+:10D7C0000000000000000000000000000000000059
+:10D7D0000000000000000000000000000000000049
+:10D7E0000000000000000000000000000000000039
+:10D7F0000000000000000000000000000000000029
+:10D800000000000000000000000000000000000018
+:10D810000000000000000000000000000000000008
+:10D8200000000000000000000000000000000000F8
+:10D8300000000000000000000000000000000000E8
+:10D8400000000000000000000000000000000000D8
+:10D8500000000000000000000000000000000000C8
+:10D8600000000000000000000000000000000000B8
+:10D8700000000000000000000000000000000000A8
+:10D880000000000000000000000000000000000098
+:10D890000000000000000000000000000000000088
+:10D8A0000000000000000000000000000000000078
+:10D8B0000000000000000000000000000000000068
+:10D8C0000000000000000000000000000000000058
+:10D8D0000000000000000000000000000000000048
+:10D8E00010000003000000000000000D0000000D0B
+:10D8F0003C020800244271203C030800246375C8E0
+:10D90000AC4000000043202B1480FFFD24420004A3
+:10D910003C1D080037BD7FFC03A0F0213C1008002F
+:10D92000261031D83C1C0800279C71200E00116481
+:10D93000000000000000000D30A5FFFF30C600FF12
+:10D94000274301808F4201B80440FFFE24020002F9
+:10D95000AC640000A4650008A066000AA062000B89
+:10D960003C021000AC67001803E00008AF4201B8A9
+:10D970003C0360008C624FF80440FFFE3C02020052
+:10D98000AC644FC0AC624FC43C02100003E000081E
+:10D99000AC624FF827BDFFE8AFBF0014AFB0001076
+:10D9A0000E0011B300808021936200052403FFFE66
+:10D9B00002002021004310248FBF00148FB00010FC
+:10D9C000A36200050A0011BC27BD001827BDFFE8AF
+:10D9D000AFB00010AFBF00140E000EA40080802175
+:10D9E0009362000024030050304200FF14430004FF
+:10D9F00024020100AF4201800A000CC10200202174
+:10DA0000AF400180020020218FBF00148FB00010B2
+:10DA10000A000F7D27BD001827BDFF98AFBE00602C
+:10DA2000AFB7005CAFB20048AFBF0064AFB60058FC
+:10DA3000AFB50054AFB40050AFB3004CAFB1004429
+:10DA4000AFB000408F5001289363003F9362000500
+:10DA50000000F021307200FF000210273042000168
+:10DA60000000B82114400066AFA0003893420116B0
+:10DA700093430112304200FF306300FF0342202134
+:10DA800003431021244540008F82000010400018FD
+:10DA9000248840008F4201043C030001004310240D
+:10DAA00010400013000000008CA3000C8F620030B7
+:10DAB000146201A2240200018CA300108F62002CCA
+:10DAC0001462019E240200019762003A9483400090
+:10DAD0003042FFFF1462019924020001976200386E
+:10DAE000950300023042FFFF1462019424020001FA
+:10DAF00093620000304300FF240200201062000502
+:10DB00002402005010620006000000000A000D0B05
+:10DB1000000000000000000D0A000D14AFA000304E
+:10DB20003C1E080027DE71880A000D14AFA00030EB
+:10DB30003C0208008C4200DC244200013C01080049
+:10DB4000AC2200DC0E00127D000000000A000E8FE7
+:10DB50008FBF00648F4201043C0300209113000D2D
+:10DB6000004310240002202B00042140AFA4003009
+:10DB70008F4301043C02004000621824146000023C
+:10DB8000348700400080382132620020AFA7003087
+:10DB90001440000234E6008000E0302110C0000B89
+:10DBA000AFA6003093C500088F67004C020020210B
+:10DBB00000052B0034A5008130A5F0810E000C8DEE
+:10DBC00030C600FF0A000E8C000000009362003E89
+:10DBD000304200401040000E24020004564200066D
+:10DBE00024020012020020210E0013DA010030216D
+:10DBF0000A000E8F8FBF006416420005000000006F
+:10DC00000E000CB2000020210A000E8F8FBF0064AE
+:10DC10009742011A9504000E9363003532650004A3
+:10DC20003055FFFF00642004AFA4003C8D110004B8
+:10DC300010A000158D1400089362003E3042004091
+:10DC400010400007000000000E00133B02202021BE
+:10DC50001040000D000000000A000E8C00000000C3
+:10DC60008F620044022210230440013200000000B1
+:10DC70008F620048022210230441012E2404001662
+:10DC80000A000DA28FC200048F62004802221023F6
+:10DC900004400008000000003C0208008C423100F3
+:10DCA000244200013C010800AC2231000A000E8130
+:10DCB000000000008F62004002221023184000097B
+:10DCC0002402000C3C0208008C423100327300FC3C
+:10DCD0000000A821244200013C010800AC223100D0
+:10DCE0002402000CAFA200308F62004000511823C4
+:10DCF0001860000D02A3102A144001030000000068
+:10DD00001475000602A310233A620001304200019C
+:10DD1000144000FD0000000002A31023022388210C
+:10DD20000A000D8A3055FFFF000018213262000200
+:10DD30001040001A326200109362003E30420040F0
+:10DD4000504000118FC200040E0011B302002021C8
+:10DD500024020018A362003F936200052403FFFE23
+:10DD600002002021004310240E0011BCA362000514
+:10DD700024040039000028210E0013242406001872
+:10DD80000A000E8E24020001240400170040F80946
+:10DD9000000000000A000E8E24020001104000E581
+:10DDA000000000008F64004C8F6200540282102338
+:10DDB0001C4000E002841023044200010080A021E6
+:10DDC000AFA30018AFB10010AFB50014934201200B
+:10DDD0008F6600409764003C304200FF03422821D8
+:10DDE0008FA2003C00A328218FA300303084FFFFC6
+:10DDF0000044202B8FC200000064182524A5400099
+:10DE0000AFA50020AFA60028AFA30030AFA6002426
+:10DE1000AFA0002CAFB400340040F80927A40010D4
+:10DE20008FA200303042000254400001327300FEE5
+:10DE30009362003E30420040104000378FA3001430
+:10DE40008F6200541682001A32620001240200140C
+:10DE5000124200102A42001510400006240200164B
+:10DE60002402000C12420007326200010A000DEB8E
+:10DE70000000000012420005326200010A000DEBB2
+:10DE8000000000000A000DE62417000E0A000DE64F
+:10DE9000241700100A000DEA2417001293620023D1
+:10DEA0002403FFBD00431024A3620023326200015B
+:10DEB000104000198FA300142402000C1242000E1F
+:10DEC0002A42000D104000062402000E2402000A1F
+:10DED000124200078FA200240A000E032442000110
+:10DEE000124200088FA200240A000E0324420001FF
+:10DEF0000A000E01241700082402000E16E2000298
+:10DF000024170016241700108FA2002424420001B9
+:10DF1000AFA200248FA300148FA200248F760040AC
+:10DF200000431021AF6200408FA2003C9364003692
+:10DF30008F630040028290213402FFFF00821004B0
+:10DF400000621821AF6300488FA6003030C200087D
+:10DF50001040000E000000008F62005816420004BE
+:10DF600030C600FF9742011A5040000134C600102D
+:10DF700093C500088FA700340200202100052B0064
+:10DF800034A500800E000C8D30A5F0808F6200401B
+:10DF900000561023184000178FA200183C020800FA
+:10DFA0008C423198304200101040000924020001D8
+:10DFB000976200681440000624020001A76200680E
+:10DFC0009742007A2442000A0A000E47A762001214
+:10DFD000A76200120E0011B3020020219362007D9F
+:10DFE0002403000102002021344200010A000E45F2
+:10DFF000AFA300381840000A000000000E0011B363
+:10E00000020020219362007D2403000102002021F0
+:10E01000AFA30038344200040E0011BCA362007D9F
+:10E020009362003E304200401440000C3262000116
+:10E030001040000A000000008F6300408FC20004FF
+:10E0400024040018246300010040F809AF63004075
+:10E050008FA200300A000E8E304200048F620058FA
+:10E0600010520010000000008F62001802221023DE
+:10E070001C400008240200018F62001816220009CB
+:10E08000000000008F62001C028210230440000583
+:10E0900024020001AF720058AFA20038AF7100181F
+:10E0A000AF74001C12E0000B8FA300380E0011B3F8
+:10E0B00002002021A377003F0E0011BC02002021A6
+:10E0C00002E03021240400370E0013240000282130
+:10E0D0008FA3003810600003000000000E000C9BAE
+:10E0E0000200202112A00005000018218FA200309C
+:10E0F0003042000450400011006010212403000150
+:10E100000A000E8E006010210E0011B302002021C3
+:10E110009362007D02002021344200040E0011BCF5
+:10E12000A362007D0E000C9B020020210A000E8ECF
+:10E1300024020001AF400044240200018FBF0064AC
+:10E140008FBE00608FB7005C8FB600588FB500544B
+:10E150008FB400508FB3004C8FB200488FB1004491
+:10E160008FB0004003E0000827BD00688C870004E2
+:10E170008C8600000000102100E5382100E5282BE6
+:10E1800000C2302100C53021AC87000403E0000844
+:10E19000AC8600008F4201B80440FFFE2402080054
+:10E1A000AF4201B803E00008000000003C02000894
+:10E1B0000342282194A200483084FFFF1040001B36
+:10E1C0002484001294A200483042FFFF0044102A29
+:10E1D00010400017240200032402001A9343012078
+:10E1E000A342018B8F820008306300FF3042400061
+:10E1F000104000092463FFFE94A200483042FFFF54
+:10E200000043102B144000058F820014A743019493
+:10E210000A000EC8344200018F8200142403FFFE5E
+:10E220000043102403E00008AF820014240200031E
+:10E2300003E00008A342018B27BDFFE0AFB2001846
+:10E24000AFB10014AFB00010AFBF001C30B1FFFF82
+:10E2500030D0FFFF30F2FFFF8F4201B80440FFFED5
+:10E2600000000000AF440180AF4400200E000EAA61
+:10E27000020020218F8300088F840014A751018C95
+:10E28000A750018EA74301908F8300043082800045
+:10E29000AF4301A8A75201881040000E8F820014DE
+:10E2A00093420116304200FC24420004005A10211F
+:10E2B0008C4240003042FFFF144000068F82001461
+:10E2C0003C02FFFF34427FFF00821024AF82001423
+:10E2D0008F8200142403BFFF00431024A74201A62D
+:10E2E0009743010C8F42010400031C003042FFFFE2
+:10E2F00000621825AF4301AC3C021000AF4201B8E8
+:10E300008FBF001C8FB200188FB100148FB00010A7
+:10E3100003E0000827BD002027BDFFE0AFB20018D2
+:10E3200030D2FFFFAF440180AF44002002402021E3
+:10E33000AFB10014AFB0001030F1FFFFAFBF001C51
+:10E340000E000EAA30B0FFFF8F8300142402BFFF1F
+:10E35000A750018C006218248F820008A752018EFA
+:10E36000A7510188A74301A6A74201903C021000D3
+:10E37000AF4201B88FBF001C8FB200188FB10014DC
+:10E380008FB0001003E0000827BD00202743018064
+:10E390008F4201B80440FFFE24022000A46200085E
+:10E3A00024020002A062000BA46000103C021000D6
+:10E3B000AF4201B803E00008000000008F47007082
+:10E3C000934201128F83000827BDFFF0304200FF07
+:10E3D000000228823062010000003021104000431A
+:10E3E00024A400033062400010400010306220007E
+:10E3F00000041080005A10218C43400024A4000423
+:10E4000000041080AFA30000005A10218C4240008D
+:10E41000AFA2000493420116304200FC005A1021C2
+:10E420008C4240000A000F56AFA200081040002F97
+:10E430000000302100041080005A10218C4340005D
+:10E4400024A4000400041080AFA30000005A10218F
+:10E450008C424000AFA00008AFA200048FA80008C3
+:10E460000000302100002021240A00083C09080097
+:10E470002529010003A41021148A000300042A00A6
+:10E480001100000A000000009042000024840001F6
+:10E490002C83000C00A210210002108000491021E2
+:10E4A0008C4200001460FFF300C230263C040800D8
+:10E4B0008C8431048F4200702C830020106000098E
+:10E4C000004738233C03080024633108000410800F
+:10E4D0000043102124830001AC4700003C010800E8
+:10E4E000AC233104AF8600042406000100C01021D3
+:10E4F00003E0000827BD00103C0208008C420038F1
+:10E5000027BDFFD0AFB50024AFB3001CAFBF0028BC
+:10E51000AFB40020AFB20018AFB10014AFB000101C
+:10E520003C15080026B50038144000022453FFFFB4
+:10E53000000098218F840008308240001040000ABB
+:10E54000308280003C0200200082102450400006EF
+:10E55000308280008F8200142403BFFF00831824C0
+:10E560000A000FA2344210001040000A3C020020B2
+:10E5700000821024104000078F8200143C03FFFF2C
+:10E5800034637FFF0083182434428000AF8200147C
+:10E59000AF8300080E000F2E00000000144000089A
+:10E5A0008F8400089743011E9742011C3063FFFFD0
+:10E5B0000002140000621825AF8300048F84000855
+:10E5C0009742010C30831000106000113046FFFFAD
+:10E5D000308200201440000F241200053C0210007D
+:10E5E000008210241040000B241200013C030E0096
+:10E5F0003C020DFF008318243442FFFF0043102B20
+:10E6000010400004000000000A000FC4241200059E
+:10E61000241200013C0508008CA5003454A0001908
+:10E620008F8400088F82001C544000168F840008DD
+:10E630008F82001430424000544000128F84000842
+:10E640003C021F01008210243C0310001443000D03
+:10E650008F84000830C202001440000B3C0200010D
+:10E660009746010E364700020000202124C6000410
+:10E6700030C6FFFF0E000F05240500020A00108DB2
+:10E680008FBF00283C020001008210241040000CC3
+:10E690008F8300143C0208008C4200D89746010E7C
+:10E6A000240400802442000130C6FFFF240500023C
+:10E6B0003C010800AC2200D80A00108A240700039D
+:10E6C00030624000104000063C0210003C020F0087
+:10E6D0000082102450400001934201163C021000B9
+:10E6E0000082102410400044000000003C0208009A
+:10E6F0008C4200301040000C306240001040000A94
+:10E700003C030F00008318243C0201000043102B3F
+:10E7100014400005000000009746010E3647000235
+:10E720000A0010872404008010A0000D3082010030
+:10E730001040000B3C020F00008210243C0302003A
+:10E74000104300078F82000400531024005510214D
+:10E7500090420004244200040A00103A000221C042
+:10E76000000000008F8600083C0508008CA500D042
+:10E77000000616023050000F38A200012C420001A2
+:10E780002E03000C0043102414400018001021C078
+:10E790002602FFFC2C4200045440001400002021FB
+:10E7A00038A200022C420001004310241040000354
+:10E7B000000612420A00103A000020210010182B17
+:10E7C0000043102450400009001021C09746010E5C
+:10E7D000000020212405000224C6000430C6FFFFEB
+:10E7E0000E000ECD3247FFFB001021C09746010EF0
+:10E7F0000A001087364700028F4240003C11080093
+:10E800008E310024304201001040004032220001CD
+:10E810000220802110A00017325400043082010031
+:10E8200010400015240200013C020F000082102459
+:10E830003C0302001043000F8F8200049746010E34
+:10E840000240382100531024005510219044000448
+:10E8500024C6000430C6FFFF24840004000421C045
+:10E860000E000ECD240500022402FFFE02228024A9
+:10E870003252FFFB2402000116020007320200019F
+:10E880003242000450400001365200029746010E09
+:10E890000A001086024038211040000A32020004AB
+:10E8A0009746010E024038210000202124C60004B2
+:10E8B00030C6FFFF0E000ECD240500023252FFFBD2
+:10E8C000320200041040000B8F8200083042080022
+:10E8D00010400008000000009746010E0240382159
+:10E8E0002404010024C6000430C6FFFF0E000ECD34
+:10E8F00024050002568000108FBF00280E000F2252
+:10E90000000000000A00108D8FBF00281040000A90
+:10E910008FBF00289746010E3647000200002021D5
+:10E9200024C6000430C6FFFF240500020E000ECDF1
+:10E93000000000008FBF00288FB500248FB4002096
+:10E940008FB3001C8FB200188FB100148FB000106D
+:10E950000000102103E0000827BD0030274301809C
+:10E960008F4201B80440FFFE000000008F420148C2
+:10E9700000021402A462000824020002A062000B3C
+:10E980008F420148A46200108F420144AC6200240F
+:10E990003C02100003E00008AF4201B827BDFFE8C9
+:10E9A000AFB000103C04600CAFBF00148C8250006C
+:10E9B0002403FF7F3C1A8000004310243442380CAB
+:10E9C000AC825000240200033C106000AF420008FB
+:10E9D0008E0208083C1B80083C010800AC20002087
+:10E9E0003042FFF0384200102C4200010E001B396B
+:10E9F000AF8200003C04FFFF3C02040034830806A1
+:10EA00003442000CAE021948AE03194C3C056016A6
+:10EA10008E0219808CA30000344202000064182486
+:10EA2000AE0219803C0253531462000334A47C00EC
+:10EA30008CA20004005020218C82007C8C83007802
+:10EA40008FBF00148FB0001027BD0018AF820018D0
+:10EA500003E00008AF83001027BDFFE8AFBF001040
+:10EA60008F4340003402FFFF3C040800248400F080
+:10EA700010620007000000008F4240003C040800C4
+:10EA8000248400E83042010010400009000000002A
+:10EA90009745010E0E000E9A30A5FFFF9745010E17
+:10EAA0003C040800248431C80A0010FC8FBF001009
+:10EAB0008F4340008F8200103C040800248400E053
+:10EAC0001462000A000000008F4340048F82001887
+:10EAD00014620006000000009745010E3C04080087
+:10EAE000248431B80A0010FC8FBF00109745010E36
+:10EAF0008FBF001030A5FFFF0A000E9A27BD001837
+:10EB000027BDFFE8AFBF00108F420128AF420020B1
+:10EB10008F4201048F430100AF8200080E000EA453
+:10EB2000AF8300140E0010D5000000003C02080066
+:10EB30008C4200C0104000088F8400083C0208008E
+:10EB40008C4200C4244200013C010800AC2200C4F5
+:10EB50000A001135000000003C0200100082102461
+:10EB60001440000A8F8300143C0208008C420020ED
+:10EB7000244200013C010800AC2200200E000F7D61
+:10EB8000000020210A001133000000002402BFFF12
+:10EB9000006210241040000800000000240287FFDB
+:10EBA00000621024144000083C020060008210241F
+:10EBB00010400005000000000E000CC50000000021
+:10EBC0000A001133000000000E00119D000000003B
+:10EBD000104000063C0240008F4301243C026020AC
+:10EBE000AC430014000000003C024000AF4201387A
+:10EBF000000000008FBF001003E0000827BD0018D0
+:10EC000027BDFFE8AFBF00108F4201403C04400029
+:10EC1000AF4200208F4301483C027000006218247C
+:10EC2000106400100083102B144000063C026000AA
+:10EC30003C02200010620007000000000A00115F83
+:10EC40003C0240001062000B3C0240000A00115FD1
+:10EC5000000000000E001096000000000A00115F86
+:10EC60003C0240000E0011C1000000000A00115FCC
+:10EC70003C0240000E001B46000000003C02400029
+:10EC8000AF420178000000008FBF001003E00008D1
+:10EC900027BD001827BDFFE8AFBF00140E0010A667
+:10ECA000AFB000103C028000344200708C43000082
+:10ECB00000403821AF830020006030218CE8000044
+:10ECC0003C0508008CA500FC3C0408008C8400F87E
+:10ECD000010630230000102100A6282100A6302BB9
+:10ECE00000822021008620213C010800AC2500FC88
+:10ECF0003C010800AC2400F88F50000032020003F1
+:10ED00001040FFEE010030218CE600003C050800B9
+:10ED10008CA500FC3C0408008C8400F800C830235B
+:10ED200000A628210000102100A6302B00822021FF
+:10ED300000862021320700013C010800AC2500FCC0
+:10ED4000AF8800203C010800AC2400F810E000046B
+:10ED5000320200020E0010FF00000000320200022A
+:10ED60005040FFD13C0280000E00113F0000000027
+:10ED70000A0011693C0280008F4201003042003ECF
+:10ED80001440001124020001AF4000488F420100EE
+:10ED9000304207C01040000500000000AF40004CAA
+:10EDA000AF40005003E0000824020001AF400054CF
+:10EDB000AF4000408F420100304238005440000113
+:10EDC000AF4000442402000103E0000800000000FE
+:10EDD0003C0290003442000100822025AF44002014
+:10EDE0008F4200200440FFFE0000000003E0000806
+:10EDF000000000003C028000344200010082202517
+:10EE000003E00008AF44002027BDFFE0AFB20018C8
+:10EE1000AFBF001CAFB10014AFB000108F50014065
+:10EE20008F5101483C0280000011940202222024EC
+:10EE3000324300FF2402000E1062008A2862000F95
+:10EE40001040001228620037240200061062003BC6
+:10EE50002862000710400007240200091060001A11
+:10EE60002402000110620025000000000A00127652
+:10EE7000000000001062007B2402000B1062005BA7
+:10EE80003222FFFF0A001276000000001040000846
+:10EE90002402003828620035104000802402001F40
+:10EEA0001062007E000000000A00127600000000E0
+:10EEB0001062007A2402008010620042000000000C
+:10EEC0000A001276000000008F4201B80440FFFEE5
+:10EED00024020001AF500180AF400184A752018895
+:10EEE000A342018A24020002A342018BA751019090
+:10EEF0008F4201440A001271AF4201A41080000A3F
+:10EF0000240200023C010800A02271783C010800A4
+:10EF1000AC3071808F4201443C010800AC22717C0E
+:10EF20000A0012788FBF001C8F4201B80440FFFE18
+:10EF3000240200020A00125B000000008F4201B8A8
+:10EF40000440FFFE00000000AF5001803C020800BA
+:10EF50009042717810400003000018213C03080023
+:10EF60008C637180AF430184A75201883C02080082
+:10EF7000904271780000182134420001A342018AB6
+:10EF800024020002A342018BA75101908F42014449
+:10EF9000AF4201A43C020800904271781040000387
+:10EFA0003C0210003C0308008C63717CAF4301A855
+:10EFB000AF4201B83C010800A02071780A00127825
+:10EFC0008FBF001C8F4201B80440FFFE24020002E4
+:10EFD000A342018BA7520188A75101908F4201449F
+:10EFE000A74201920A0012733C0210001440001D57
+:10EFF0000000000093620005304200041440003716
+:10F00000000000000E0011B30200202193620005F1
+:10F0100002002021344200040E0011BCA36200054E
+:10F02000936200053042000414400002000000001A
+:10F030000000000D9362000024030020304200FF16
+:10F0400014430008000000008F4201B80440FFFE96
+:10F0500024020005AF500180A342018B3C02100046
+:10F06000AF4201B88F4201B80440FFFE2402000203
+:10F07000AF400180AF500184A7520188A342018AAA
+:10F08000A342018BA7510190AF4001A48F420144DC
+:10F09000AF4201A80A0012733C0210008F4201B86F
+:10F0A0000440FFFE24020001AF500180AF40018404
+:10F0B000A7520188A342018A24020002A342018BC5
+:10F0C000A7510190AF4001A4AF4001A83C0210003D
+:10F0D000AF4201B80A0012788FBF001C0000000D7B
+:10F0E0008FBF001C8FB200188FB100148FB00010BA
+:10F0F00003E0000827BD002027BDFFE8AFBF0010D8
+:10F100000E000EA400000000AF4001808FBF001071
+:10F11000000020210A000F7D27BD00183084FFFF6A
+:10F1200030A5FFFF0000182110800007000000003C
+:10F1300030820001104000020004204200651821C6
+:10F140000A0012890005284003E000080060102131
+:10F1500010C0000624C6FFFF8CA2000024A50004F6
+:10F16000AC8200000A0012932484000403E000082B
+:10F170000000000010A0000824A3FFFFAC860000E0
+:10F1800000000000000000002402FFFF2463FFFFD6
+:10F190001462FFFA2484000403E000080000000069
+:10F1A00027BDFFE0AFB20018AFB10014AFB0001040
+:10F1B000AFBF001C9482000C00A088212490001492
+:10F1C0000002130200021080008290210000302112
+:10F1D00000A020210E00129C240500050212102B15
+:10F1E0001040005700001021920300002C6200091B
+:10F1F0005040005192020001000310803C030800BF
+:10F20000246370DC004310218C42000000400008A1
+:10F2100000000000920300012402000C1462004868
+:10F2200024020001025010232C42000A1440003630
+:10F23000261000028E22000034420100AE2200009F
+:10F240009202000092030001920400029205000362
+:10F2500000031C00000216000043102500042200D9
+:10F26000004410250045102526100004AE2200049D
+:10F270009202000092030001920400029205000332
+:10F280000002160000031C000043102500042200A9
+:10F290000044102500451025261000040A0012B66F
+:10F2A000AE2200089203000124020004146200163A
+:10F2B0002610000292020000920400018E2300003A
+:10F2C00000021200004410253463000426100002DE
+:10F2D000AE22000C0A0012B6AE2300009203000119
+:10F2E0002402000314620008261000028E2200008F
+:10F2F000920300002610000134420008A2230010EF
+:10F300000A0012B6AE2200000A00130F2402000108
+:10F31000920300012402000210620002260400028F
+:10F32000024020210A0012B6008080210A0012B695
+:10F3300026100001920200010A0012B6020280218A
+:10F340008FBF001C8FB200188FB100148FB0001057
+:10F3500003E0000827BD002027BDFFE8AFBF001471
+:10F36000AFB000100E0011B3008080219362007DC9
+:10F3700002002021344200200E0011BCA362007D57
+:10F38000020020218FBF00148FB000100A000C9BD8
+:10F3900027BD0018308300FF30A500FF30C600FFF6
+:10F3A000274701808F4201B80440FFFE00000000A3
+:10F3B0008F42012834634000ACE2000024020001C7
+:10F3C000ACE00004A4E30008A0E2000A240200026A
+:10F3D000A0E2000B3C021000A4E50010ACE0002409
+:10F3E000ACE00028A4E6001203E00008AF4201B838
+:10F3F00027BDFFE8AFBF00109362003F2403001257
+:10F40000304200FF1043000D008030218F62004425
+:10F41000008210230440000A8FBF00108F62004852
+:10F42000240400390000282100C2102304410004F4
+:10F43000240600120E001324000000008FBF0010ED
+:10F440002402000103E0000827BD001827BDFFC803
+:10F45000AFB1002C00A08821AFB2003027A500106A
+:10F460000080902102202021AFBF00340E0012A79F
+:10F47000AFB0002810400009024020218E22000871
+:10F48000AF6200840E001315AF6000402404003802
+:10F490002405008D0A0013D1240600129362003463
+:10F4A000936300378F640084304200FF306300FFB5
+:10F4B0000043282100A4202B1080000B0000000036
+:10F4C0009763003C8F6200843063FFFF0045102388
+:10F4D0000062182B14600004000000008F6200849A
+:10F4E0000A00137B004580239762003C3050FFFFE9
+:10F4F0008FA3001030620004504000032E02021857
+:10F500008FA2001C0202102B1440000502002021D3
+:10F510003062000410400002240402188FA4001C72
+:10F520002C82008010400002008080212410008086
+:10F530000E0011B30240202124020001AF62000C32
+:10F540009362003E001020403042007FA362003EE4
+:10F550008E22000424420001AF620040A770003CEC
+:10F560008F6200509623000E00431021AF620058B6
+:10F570008F62005000441021AF62005C8E220004B4
+:10F58000AF6200188E220008AF62001C8FA200102C
+:10F59000304200085440000A93A20020A3600036C5
+:10F5A000936200362403FFDFA36200359362003EBE
+:10F5B00000431024A362003E0A0013B18E2200080B
+:10F5C000A36200358E220008AF62004C8F620024D7
+:10F5D0008F63004000431021AF6200489362000037
+:10F5E00024030050304200FF144300122403FF8024
+:10F5F0003C0208008C4231A002421021004310243A
+:10F60000AF4200283C0208008C4231A08E24000842
+:10F610003C03000C024210213042007F03421021C3
+:10F6200000431021AC4400D88E230008AF8200288C
+:10F63000AC4300DC0E0011BC024020212404003841
+:10F64000000028212406000A0E00132400000000F8
+:10F650008FBF00348FB200308FB1002C8FB00028E4
+:10F660002402000103E0000827BD003827BDFFE8A1
+:10F67000AFBF001090C7000D00C0282130E6001079
+:10F6800010C0000A30E200048CA300088F6200540E
+:10F690001062000630E20004144000178FBF001013
+:10F6A000000020210A000CB227BD00181040000DF8
+:10F6B00030E3001210C000108FBF00108CA30008B0
+:10F6C0008F6200541462000D2402000124040038EB
+:10F6D0002405008D0E001324240600120A0013FDD9
+:10F6E0008FBF001024020012146200038FBF0010AD
+:10F6F0000A00135227BD00182402000103E000088D
+:10F7000027BD001827BDFFF827420180AFA20000E7
+:10F71000308A00FF8F4201B80440FFFE0000000065
+:10F720008F4601283C0208008C4231A02403FF8050
+:10F73000AF86005000C2102100431024AF420024C5
+:10F740003C0208008C4231A08FA900008FA8000065
+:10F7500000C210213042007F034218213C02000AFF
+:10F7600000621821946400D48FA700008FA50000C8
+:10F7700024020002AF830028A0A2000B8FA3000088
+:10F78000354260003084FFFFA4E200083C02100014
+:10F79000AD260000AD040004AC60002427BD0008C5
+:10F7A000AF4201B803E00008240200018C8200048B
+:10F7B0008F83002800451023AC8200049062006310
+:10F7C0003042007FA06200638C820020938300306F
+:10F7D0008F85002834420002AF830044A780004296
+:10F7E000AC820020A4A000E490A200632403FFBF29
+:10F7F0000043102403E00008A0A200632743018017
+:10F800008F4201B80440FFFE8F820050AC620000BE
+:10F810008F420124AC62000424026083A4620008C9
+:10F8200024020002A062000B3C02100003E000086A
+:10F83000AF4201B88F880044938200308F83002844
+:10F840003C07080024E7759400481023304200FF6D
+:10F85000304900FC246500888F860048304A000348
+:10F860001120000900002021248200048CA3000044
+:10F87000304400FF0089102AACE3000024A50004F6
+:10F880001440FFF924E70004114000090000202182
+:10F890002482000190A30000304400FF008A102B56
+:10F8A000A0E3000024A500011440FFF924E70001B3
+:10F8B00030C20003144000048F850044310200036D
+:10F8C0001040000D0000000010A0000900002021E1
+:10F8D0002482000190C30000304400FF0085102BFB
+:10F8E000A0E3000024C600011440FFF924E7000152
+:10F8F00003E00008000000001100FFFD00002021CF
+:10F90000248200048CC30000304400FF0088102BC8
+:10F91000ACE3000024C600041440FFF924E700040F
+:10F9200003E00008000000008F8300449382003051
+:10F9300030C600FF30A500FF00431023304300FF16
+:10F940008F820028008038210043102114C000025B
+:10F95000244800880083382130E200031440000569
+:10F9600030A2000314400003306200031040000D79
+:10F970000000000010A000090000202124820001E6
+:10F9800090E30000304400FF0085102BA10300002D
+:10F9900024E700011440FFF92508000103E00008F6
+:10F9A0000000000010A0FFFD0000202124820004C0
+:10F9B0008CE30000304400FF0085102BAD030000F5
+:10F9C00024E700041440FFF92508000403E00008C0
+:10F9D0000000000027BDFFF82402FFFFAFA20000D7
+:10F9E000008038212405002F3C0908002529719446
+:10F9F000240800FF2406FFFF90E2000024A3FFFF7D
+:10FA00000006220200C21026304200FF00021080D1
+:10FA1000004910218C420000306500FF24E70001FE
+:10FA200014A8FFF50082302600061027AFA20004BC
+:10FA3000AFA200000000282127A6000400C5102363
+:10FA40009044000324A2000100BD1821304500FFAE
+:10FA50002CA200041440FFF9A06400008FA2000053
+:10FA600003E0000827BD00080080482130AAFFFFFE
+:10FA700030C600FF30E7FFFF274801808F4201B802
+:10FA80000440FFFE8F820050AD0200008F4201242F
+:10FA9000AD0200048D220020A5070008A102000A83
+:10FAA00024020016A102000B934301208D220008BE
+:10FAB0008D240004306300FF00431021978300422F
+:10FAC000004410218D250024004310233C0308002E
+:10FAD0008C6331A08F840028A502000C246300E809
+:10FAE0002402FFFFA50A000EA5030010A5060012C0
+:10FAF000AD050018AD020024948201142403FFF721
+:10FB00003042FFFFAD0200288C820118AD02002CAC
+:10FB10003C021000AD000030AF4201B88D22002041
+:10FB20000043102403E00008AD2200208F8200284B
+:10FB300030E7FFFF00804821904200D330A5FFFF4F
+:10FB400030C600FF0002110030420F0000E23825ED
+:10FB5000274801808F4201B80440FFFE8F82005089
+:10FB6000AD0200008F420124AD0200048D2200206E
+:10FB7000A5070008A102000A24020017A102000B39
+:10FB8000934301208D2200088D240004306300FF80
+:10FB90000043102197830042004410218F840028E5
+:10FBA000004310233C0308008C6331A0A502000C25
+:10FBB000A505000E246300E8A5030010A5060012A9
+:10FBC000AD0000148D220024AD0200188C82005C70
+:10FBD000AD02001C8C820058AD0200202402FFFF01
+:10FBE000AD020024948200E63042FFFFAD020028FF
+:10FBF00094820060948300BE30427FFF3063FFFF39
+:10FC00000002120000431021AD02002C3C02100043
+:10FC1000AD000030AF4201B8948200BE2403FFF76C
+:10FC200000A21021A48200BE8D22002000431024D7
+:10FC300003E00008AD220020274301808F4201B875
+:10FC40000440FFFE24020018AC640000A062000B18
+:10FC50008F820028944200E6A46200103C0210004B
+:10FC6000AC60003003E00008AF4201B827430180D8
+:10FC70008F4201B80440FFFE8F82002C9442001C8A
+:10FC80003042FFFF000211C0AC62000024020019E4
+:10FC9000A062000B3C021000AC60003003E00008E2
+:10FCA000AF4201B88F87003430C300FF8F4201B8E4
+:10FCB0000440FFFE8F82005034636000ACA200005D
+:10FCC0009382004CA0A200058CE20010A4A20006C2
+:10FCD000A4A300088C8200202403FFF7A0A2000A3E
+:10FCE00024020002A0A2000B8CE20000ACA20010D3
+:10FCF0008CE20004ACA200148CE2001CACA2002434
+:10FD00008CE20020ACA200288CE2002CACA2002CDB
+:10FD10008C820024ACA200183C021000AF4201B853
+:10FD20008C8200200043102403E00008AC820020F5
+:10FD30009382004C2403000127BDFFE800433004F8
+:10FD40002C420020AFB00010AFBF00142410FFFE03
+:10FD500010400005274501803C0208008C4231908C
+:10FD60000A00159C004610243C0208008C42319485
+:10FD70000046102414400007240600848F830028C6
+:10FD80002410FFFF906200623042000F34420040B6
+:10FD9000A06200620E001568000000000200102141
+:10FDA0008FBF00148FB0001003E0000827BD0018BB
+:10FDB0008F83002C27BDFFE0AFB20018AFB1001455
+:10FDC000AFB00010AFBF001C9062000D00A09021EA
+:10FDD00030D100FF3042007FA062000D8F850028E7
+:10FDE0008E430018008080218CA2007C14620005E4
+:10FDF0002402000E90A20063344200200A0015C5C0
+:10FE0000A0A200630E00158BA382004C2403FFFF09
+:10FE1000104300472404FFFF52200045000020212A
+:10FE20008E4300003C020010006210245040000489
+:10FE30003C020008020020210A0015D4240200150B
+:10FE400000621024504000098E450000020020216D
+:10FE5000240200140E00158BA382004C2403FFFF24
+:10FE6000104300332404FFFF8E4500003C020002D3
+:10FE700000A21024104000163C0200048F86002CC3
+:10FE80008CC200148CC300108CC4001400431023D7
+:10FE90000044102B50400005020020218E43002C0E
+:10FEA0008CC2001010620003020020210A00160517
+:10FEB000240200123C02000400A210245040001C46
+:10FEC00000002021020020210A0016052402001350
+:10FED00000A21024104000068F83002C8C620010BA
+:10FEE00050400013000020210A0015FF02002021CD
+:10FEF0008C620010504000048E42002C0200202131
+:10FF00000A001605240200115040000900002021BB
+:10FF100002002021240200170E00158BA382004C42
+:10FF20002403FFFF104300022404FFFF00002021F0
+:10FF30008FBF001C8FB200188FB100148FB000105B
+:10FF40000080102103E0000827BD002093830030CB
+:10FF500027BDFFE024020034AFB20018AFB1001497
+:10FF6000AFBF001CAFB00010008088211462000CED
+:10FF700000A090218F8400340E0014B48C900030C7
+:10FF80001202000724020005022020210E00158B1A
+:10FF9000A382004C2403FFFF1043005F2404FFFFF3
+:10FFA00092420004104000098F8200280220202184
+:10FFB0002402000C0E00158BA382004C2403FFFFCB
+:10FFC000104300552404FFFF8F820028A3800024E3
+:10FFD0008E4300048C4400803C0200FF3442FFFF4B
+:10FFE000006218240083202B10800008AF83003C9F
+:10FFF00002202021240200190E00158BA382004C40
+:020000040001F9
+:100000002403FFFF104300442404FFFF97820042B3
+:100010008F8700448F88003C00471023110000396F
+:10002000A78200428F8600283045FFFF8F84005052
+:1000300090C300BC3C0208008C4231A0000318822F
+:100040003070000100822021001010800102102178
+:1000500000A2282B10A00010248200888F84003476
+:100060001082000D3C033F018E420000004310242B
+:100070003C0325001443000630E500FF8C8200009D
+:10008000ACC200888C8200100A001665ACC20098D1
+:100090000E001489000030218F85003C93830024DA
+:1000A0008F86002830A20003000210233042000394
+:1000B00000433821A387002494C400E400A228212F
+:1000C0008F8300448F82004834841000A4C400E46D
+:1000D00000431021AF8200481200000EAF8500449B
+:1000E00024E20004A382002494C200E424A30004B8
+:1000F000AF83004434422000A4C200E40A00168505
+:10010000000020218F820048AF800044004710216A
+:10011000AF820048000020218FBF001C8FB2001862
+:100120008FB100148FB000100080102103E0000890
+:1001300027BD00208F86002827BDFFE8AFBF001431
+:10014000AFB0001090C200633042002010400008A1
+:1001500030A500FF8CC2007C2403FFDF2442000195
+:10016000ACC2007C90C2006300431024A0C20063B4
+:1001700010A000238F83002827500180020028212F
+:100180000E001568240600828F82002890420063CA
+:100190003042004050400019A380004C8F8300344F
+:1001A0008F4201B80440FFFE8F820050AE02000073
+:1001B00024026082A602000824020002A202000BB0
+:1001C0008C620008AE0200108C62000CAE020014BB
+:1001D0008C620014AE0200188C620018AE0200247B
+:1001E0008C620024AE0200288C620028AE02002C33
+:1001F0003C021000AF4201B8A380004C8F8300285E
+:100200008FBF00148FB000109062006327BD0018EC
+:100210003042007FA0620063978200428F860044D4
+:100220008F8500289383003000461023A782004268
+:10023000A4A000E490A400638F820048AF83004430
+:100240002403FFBF0046102100832024AF82004812
+:10025000A0A400638F820028A04000BD8F820028E8
+:1002600003E00008A44000BE8F8A002827BDFFE0FD
+:10027000AFB10014AFB000108F880044AFBF0018BA
+:1002800093890024954200E430D100FF0109182B26
+:100290000080802130AC00FF3047FFFF0000582174
+:1002A00014600003310600FF0120302101095823AA
+:1002B000978300420068102B1440003200000000B9
+:1002C00014680007240200018E0200202403FFFBB3
+:1002D00034E7800000431024AE0200202402000115
+:1002E00034E70880158200053165FFFF0E0014D940
+:1002F000020020210A00171A020020210E00150A10
+:10030000020020210E00154D8F8400508F8400289C
+:100310009482006024420001A48200609482006004
+:100320003C0308008C63318830427FFF5443000F48
+:1003300002002021948200602403800000431024E6
+:10034000A48200609082006090830060304200FFD1
+:10035000000211C200021027000211C03063007FAA
+:1003600000621825A08300600200202102202821BD
+:100370008FBF00188FB100148FB000100A00168CC8
+:1003800027BD0020914200632403FF800043102515
+:10039000A1420063978200423048FFFF1100002015
+:1003A000938300248F840028004B1023304600FFE5
+:1003B000948300E42402EFFF0168282B00621824D4
+:1003C000A48300E414A000038E0200200100582141
+:1003D000000030212403FFFB34E780000043102499
+:1003E000AE02002024020001158200053165FFFFE6
+:1003F0000E0014D9020020210A0017429783004200
+:100400000E00150A02002021978300428F820044CB
+:10041000A780004200431023AF820044938300244E
+:100420008F8200288FBF00188FB100148FB000108A
+:1004300027BD002003E00008A04300BD8F820028F4
+:1004400090430088904500BD244900883063003FF8
+:100450002463FFE024020001006238042C630020C2
+:1004600030E80019A385002410600010AF89003423
+:100470003C028000344200022405000124060001F1
+:100480001500000800E2182400002821146000056F
+:1004900030E20020104000052405000191260001F3
+:1004A00030C600010A0016D90000000003E0000871
+:1004B0000000000027BDFFD8AFB000108F900034BF
+:1004C000AFB40020AFB10014AFBF0024AFB3001C25
+:1004D000AFB200188E0500103C0208008C4231B00B
+:1004E0008F86003830A33FFF0062182B8CD3001496
+:1004F000008088218CD20020106000780000A021AC
+:1005000090C3000D2402FF8000431024304200FFFE
+:100510005040007302202021000513823042000366
+:100520005440006F0220202194C3001C8F820028B9
+:100530008E050028A44301148CC200100262182307
+:10054000146500072402001F8F82003C0062102106
+:100550000262102B104000088F83002C2402001828
+:100560000E00158BA382004C2403FFFF1043006F85
+:100570002404FFFF8F83002C8F84003C8C620010CA
+:100580000244902100441023AC6200108F820028A6
+:10059000AC7200208C4200680052102B1040000901
+:1005A0008F830038022020212402001D0E00158BAD
+:1005B000A382004C2403FFFF1043005C2404FFFFD0
+:1005C0008F8300388E0200248C63002410430007C0
+:1005D000022020212402001C0E00158BA382004C57
+:1005E0002403FFFF104300512404FFFF8F84002CDD
+:1005F0008C82002424420001AC82002412530004A7
+:100600008F8200288C4200685642000E8E02000045
+:100610008E0200003C030080004310241440000DB3
+:100620002402001A022020210E00158BA382004C08
+:100630002403FFFF1043003D2404FFFF0A0017D6E8
+:100640008E0200143C03008000431024504000033D
+:100650008E020014AC8000208E0200142412FFFFD2
+:10066000105200062402001B022020210E00158BD0
+:10067000A382004C1052002D2404FFFF8E030000C3
+:100680003C020001006210241040001F3C02008068
+:100690000062102414400008022020212402001AC5
+:1006A0000E00158BA382004C2403FFFF1043001F94
+:1006B0002404FFFF02202021020028210E0015AB98
+:1006C000240600012403FFFF2404FFFF1443000E4F
+:1006D000241400010A00180B8FBF002402202021DF
+:1006E0002402000D8FBF00248FB400208FB3001CA4
+:1006F0008FB200188FB100148FB0001027BD0028F2
+:100700000A00158BA382004C8F83002C022020212D
+:100710000280302194620036240500012442000149
+:100720000E0016D9A4620036000020218FBF0024DD
+:100730008FB400208FB3001C8FB200188FB100144B
+:100740008FB000100080102103E0000827BD0028B2
+:100750008F83002827BDFFD8AFB40020AFB3001CA3
+:10076000AFB20018AFB10014AFB00010AFBF00249B
+:10077000906200638F9100342412FFFF34420040E6
+:1007800092250000A06200638E2200100080982154
+:1007900030B0003F105200060360A0212402000D7B
+:1007A0000E00158BA382004C105200522404FFFF50
+:1007B0008F8300288E2200188C63007C1043000772
+:1007C000026020212402000E0E00158BA382004C33
+:1007D0002403FFFF104300472404FFFF24040020EC
+:1007E000120400048F8300289062006334420020CA
+:1007F000A06200638F85003C10A0001E0000000076
+:10080000560400048F820028026020210A00185537
+:100810002402000A9683000A2404FFFD944200602B
+:100820003042FFFF104300348FBF00243C02080019
+:100830008C42318C0045102B1440000602602021B0
+:10084000000028210E0016D9240600010A00187C99
+:10085000000020212402002D0E00158BA382004CE5
+:100860002403FFFF104300232404FFFF0A00187C29
+:1008700000002021160400058F8400288E23001418
+:100880002402FFFF50620018026020219482006061
+:1008900024420001A4820060948200603C030800AE
+:1008A0008C63318830427FFF5443000F0260202167
+:1008B000948200602403800000431024A48200601E
+:1008C0009082006090830060304200FF000211C2FD
+:1008D00000021027000211C03063007F006218255B
+:1008E000A0830060026020210E00168C2405000108
+:1008F000000020218FBF00248FB400208FB3001C84
+:100900008FB200188FB100148FB00010008010213A
+:1009100003E0000827BD00288F83002827BDFFE8DB
+:10092000AFB00010AFBF0014906200638F87003437
+:1009300000808021344200408CE60010A0620063F9
+:100940003C0308008C6331B030C23FFF0043102BE2
+:100950001040004E8F8500382402FF8090A3000DC8
+:1009600000431024304200FF504000490200202183
+:10097000000613823048000324020002550200449E
+:100980000200202194A2001C8F850028240300234C
+:10099000A4A201148CE60000000616023042003FBB
+:1009A000104300103C0300838CE300188CA2007CF1
+:1009B000106200062402000E0E00158BA382004C6C
+:1009C0002403FFFF104300382404FFFF8F83002817
+:1009D0009062006334420020A06200630A0018C1E4
+:1009E0008F83002C00C31024144300078F83002C36
+:1009F00090A200623042000F34420020A0A20062A8
+:100A0000A38800408F83002C9062000D3042007F4D
+:100A1000A062000D8F83003C1060001802002021AE
+:100A20008F8400388C8200100043102B1040000986
+:100A300024020018020020210E00158BA382004C16
+:100A40002403FFFF104300182404FFFF0A0018E9E5
+:100A5000000020218C8200102405000102002021CA
+:100A6000004310238F83002C240600010E0016D9AA
+:100A7000AC6200100A0018E9000020210E00168C5C
+:100A8000240500010A0018E90000202102002021AD
+:100A90002402000D8FBF00148FB0001027BD001876
+:100AA0000A00158BA382004C8FBF00148FB000107A
+:100AB0000080102103E0000827BD001827BDFFD8E3
+:100AC000AFB000108F900034AFB3001CAFBF002058
+:100AD000AFB20018AFB100148E1200103C03080032
+:100AE0008C6331B032423FFF0043102B1040007C3A
+:100AF000008098218F8500382402FF8090A3000D8C
+:100B000000431024304200FF504000760260202154
+:100B10000012138230420003240300015443007189
+:100B20000260202190A2000D3042000854400003D2
+:100B30008F82003C0A00191924020024504000034F
+:100B40008E03000C0A001919240200278CA2002031
+:100B500014620005240200208E0300088CA20024E9
+:100B600010620008240200200E00158BA382004CA6
+:100B70002403FFFF1043006A2404FFFF0A00194406
+:100B80008F84002C8E0200142411FFFF14510003E7
+:100B90008F8700280A00193F240200258E030018C1
+:100BA0008CE2007C146200162402000E8E030024E6
+:100BB0008CA2002814620012240200218E06002854
+:100BC0008CA2002C14C2000E2402001F8E03002CE5
+:100BD0001060000B240200238CE200680043102BFD
+:100BE00014400007240200268CA20014006618217D
+:100BF0000043102B504000078F84002C2402002259
+:100C00000E00158BA382004C105100452404FFFFF9
+:100C10008F84002C2403FFF79082000D00431024E2
+:100C2000A082000D8F8600283C0308008C6331AC45
+:100C30008F82005094C400E08F85002C0043102167
+:100C400030847FFF00042040004410213043007FA7
+:100C5000034320213C03000E008320212403FF8056
+:100C600000431024AF42002CA49200008CA2002864
+:100C700024420001ACA200288CA2002C8E03002C80
+:100C800000431021ACA2002C8E02002CACA200303C
+:100C90008E020014ACA2003494A2003A2442000157
+:100CA000A4A2003A94C600E03C0208008C4231B095
+:100CB00024C4000130837FFF1462001300803021C0
+:100CC000240280000082302430C2FFFF000213C2E1
+:100CD000304200FF000210270A001981000233C0D1
+:100CE000026020212402000D8FBF00208FB3001C62
+:100CF0008FB200188FB100148FB0001027BD0028EC
+:100D00000A00158BA382004C8F82002802602021EC
+:100D1000240500010E00168CA44600E000002021EE
+:100D20008FBF00208FB3001C8FB200188FB100144A
+:100D30008FB000100080102103E0000827BD0028BC
+:100D400027BDFFE0AFB100148F910034AFB00010A9
+:100D5000AFBF00188E2600103C0308008C6331B032
+:100D600030C23FFF0043102B1040005E0080802106
+:100D70008F8500382402FF8090A3000D00431024CB
+:100D8000304200FF50400058020020218F82003C7A
+:100D900010400008000613828F8200289763000A23
+:100DA0002404FFFD944200603042FFFF10430055D1
+:100DB00000061382304200031440000E00000000C1
+:100DC00092220002104000058E230024506000157E
+:100DD000922300030A0019BA020020218CA20024E9
+:100DE0005062001092230003020020210A0019C261
+:100DF0002402000F90A2000D304200085440000968
+:100E00009223000302002021240200100E00158B03
+:100E1000A382004C2403FFFF1043003A2404FFFF89
+:100E200092230003240200025462000C9222000369
+:100E30008F82003C544000099222000302002021CE
+:100E40002402002C0E00158BA382004C2403FFFF0C
+:100E50001043002C2404FFFF9222000302202821CB
+:100E600002002021384600102CC600012C4200014F
+:100E70000E0015AB004630252411FFFF1051002154
+:100E80002404FFFF8F83003C106000120200202129
+:100E90003C0208008C42318C0043102B14400006A9
+:100EA00000000000000028210E0016D924060001D1
+:100EB0000A001A00000020212402002D0E00158BCC
+:100EC000A382004C1051000F2404FFFF0A001A00F7
+:100ED000000020210E00168C240500010A001A00D3
+:100EE00000002021020020212402000D8FBF0018E5
+:100EF0008FB100148FB0001027BD00200A00158BA1
+:100F0000A382004C8FBF00188FB100148FB0001067
+:100F10000080102103E0000827BD002093830040DB
+:100F200027BDFFE024020002AFB10014AFB00010F3
+:100F300000808821AFBF0018000080211062008C63
+:100F40002404FFFD978500428F83004430A2FFFFF9
+:100F50000043102B5440007D8F8400480E00144C39
+:100F6000000000003C020800244275940220202169
+:100F7000004028210E001612AF8200342409FFFF22
+:100F80001049007B2404FFFF3C0808008D0875A46D
+:100F90003C0208008C4231B03C0308009063759419
+:100FA00031043FFF0082102B1040001B3067003FD0
+:100FB0003C0208008C4231A88F830050000421803D
+:100FC00000621821006418213062007F034228214A
+:100FD0003C02000C00A228213C02008034420001A7
+:100FE0003066007800C230252402FF8000621024A1
+:100FF000AF42002830640007AF4208048F82002807
+:101000000344202124840940AF460814AF85002CF6
+:10101000AF840038AC4301189383004024020003DE
+:101020001462003B240200012402002610E2003D6D
+:1010300028E200271040001324020032240200227C
+:1010400010E2003828E200231040000824020024A7
+:101050002402002010E200242402002110E2001EDD
+:10106000022020210A001A7F2402000B10E2002D2A
+:101070002402002510E20010022020210A001A7F1D
+:101080002402000B10E2001A28E200331040000690
+:101090002402003F2402003110E2000B0220202134
+:1010A0000A001A7F2402000B10E200110220202106
+:1010B0000A001A7F2402000B0E00176C0220202168
+:1010C0000A001A9A004080210E0018EE022020210A
+:1010D0000A001A9A004080210E00198F0220202158
+:1010E0000A001A9A004080211509000E0000000035
+:1010F0000E001813022020210A001A9A00408021B5
+:101100000E00158BA382004C0A001A9A0040802121
+:1011100014620017020020212402002314E20005BB
+:101120002402000B0E001885022020210A001A9AC2
+:101130000040802102202021A382004C0E00158B4C
+:101140002410FFFF0A001A9B0200202130A500FF97
+:101150000E00148924060001978300428F82004408
+:10116000A780004200431023AF82004402002021E8
+:101170008FBF00188FB100148FB0001000801021B5
+:1011800003E0000827BD002027BDFFE0AFB1001439
+:10119000AFBF0018AFB000108F4601283C03080015
+:1011A0008C6331A02402FF80AF86005000C3182159
+:1011B0003065007F03452821006218243C02000AA4
+:1011C000AF43002400A2282190A200620080882161
+:1011D000AF850028304200FF00021102A3820040C8
+:1011E00090A200BC304200021440000224030034EC
+:1011F000240300308F820028A383003093830040B3
+:101200008C4200C0A380004CAF8200442402000442
+:10121000106200308F8400448E2400045080002D22
+:101220008F8400448E2200103083FFFFA784004289
+:101230001060001FAF8200488F8300282405FF80C4
+:10124000022020219062006300A21024304200FF9F
+:101250001440000D000000000E001A069790004296
+:1012600010400010004018212402FFFD54620011BC
+:101270008E230020020028210E00142A02202021A3
+:101280000A001AEC8E2300209062006300A2102452
+:10129000304200FF10400003022020210E00174EB4
+:1012A00000000000978200421440FFE48F83002872
+:1012B0008E23002030620004104000068F8400441A
+:1012C0002402FFFB006210240E00143EAE22002018
+:1012D0008F8400448F8300288FBF00188FB10014C3
+:1012E0008FB000102402000127BD002003E0000899
+:1012F000AC6400C030A500FF2403000124A9000154
+:101300000069102B1040000C00004021240A00014D
+:1013100000A31023004A3804246300013082000136
+:101320000069302B104000020004204201074025D4
+:1013300054C0FFF800A3102303E0000801001021AF
+:1013400027BDFFE03C021EDCAFB20018AFB10014B5
+:10135000AFBF001CAFB0001034526F4100008821B5
+:10136000240500080E001AFC0220202100118080B4
+:101370003C07080024E771940002160002071821B8
+:10138000AC6200000000282124A200013045FFFFCC
+:101390008C6200002CA600080441000200022040DC
+:1013A0000092202614C0FFF8AC64000002078021E0
+:1013B0008E0400000E001AFC2405002026230001E4
+:1013C0003071FFFF2E2301001460FFE5AE02000024
+:1013D0008FBF001C8FB200188FB100148FB00010A7
+:1013E00003E0000827BD00203C02080024426A8474
+:1013F0003C010800AC2271883C02080024425000E5
+:101400003C010800AC22718C240200063C0108005B
+:10141000A02271900A001B0F0000000027BDFFD81A
+:10142000AFB3001CAFB20018AFBF0020AFB10014C3
+:10143000AFB000108F5101408F480148000894025E
+:10144000324300FF311300FF8F4201B80440FFFE1A
+:1014500027500180AE1100008F420144AE0200040B
+:1014600024020002A6120008A202000B24020014AB
+:10147000AE130024106200252862001510400008F9
+:101480002402001524020010106200302402001211
+:10149000106200098FBF00200A001C308FB3001CAF
+:1014A0001062006724020022106200378FBF002004
+:1014B0000A001C308FB3001C3C0208008C4231A093
+:1014C0002403FF800222102100431024AF42002495
+:1014D0003C0208008C4231A0022210213042007FE1
+:1014E000034218213C02000A00621821166000B372
+:1014F000AF830028906200623042000F3442003017
+:10150000A06200620A001C2F8FBF00203C04600014
+:101510008C832C083C02F0033442FFFF0062182445
+:10152000AC832C083C0208008C4231A08C832C0830
+:101530002442007400021082000214800062182508
+:10154000AC832C080A001C2F8FBF00203C0208002F
+:101550008C4231A02403FF8002221021004310247A
+:10156000AF4200243C0208008C4231A03C03000A38
+:10157000022210213042007F03421021004310213B
+:101580000A001C2EAF8200283C0208008C4231A0C9
+:101590002404FF800222102100441024AF420024C2
+:1015A0003C0208008C4231A0022210213042007F10
+:1015B000034218213C02000A006218219062006375
+:1015C00000821024304200FF1040007CAF830028CE
+:1015D00024620088944300123C0208008C4231A827
+:1015E00030633FFF000319800222102100431021C5
+:1015F0003043007F03431821004410243C04000CB6
+:1016000000641821AF4200280E00155AAF83002C49
+:101610008F4201B80440FFFE00000000AE11000040
+:101620008F420144AE02000424020002A612000808
+:10163000A202000BAE1300240A001C2F8FBF002053
+:101640002406FF8002261024AF4200203C0208003E
+:101650008C4231A031043FFF00042180022210217E
+:1016600000461024AF4200243C0308008C6331A8DC
+:101670003C0208008C4231A03227007F022318214F
+:1016800002221021006418213042007F3064007F64
+:10169000034228213C02000A0066182400A22821E7
+:1016A000034420213C02000C00822021AF4300288B
+:1016B0003C0200080347182100629021AF850028F2
+:1016C000AF84002C0E00155A010080218F4201B812
+:1016D0000440FFFE8F82002C8F8400282745018064
+:1016E0009042000DACB10000A4B00006000216004C
+:1016F0000002160300021027000237C214C00016B1
+:10170000248200889442001232033FFF30423FFFA0
+:101710001443001224026082908300632402FF803D
+:1017200000431024304200FF5040000C240260822D
+:10173000908200623042000F34420040A08200627A
+:1017400024026084A4A200082402000DA0A20005C7
+:101750000A001C193C02270024026082A4A200088F
+:10176000A0A000053C02270000061C00006218250E
+:1017700024020002A0A2000BACA30010ACA0001435
+:10178000ACA00024ACA00028ACA0002C8E42004CE1
+:101790008F84002CACA200189083000D2402FF80DF
+:1017A00000431024304200FF104000058FBF00208E
+:1017B0009082000D3042007FA082000D8FBF00207C
+:1017C0008FB3001C8FB200188FB100148FB00010BF
+:1017D0003C02100027BD002803E00008AF4201B81A
+:1017E00008004C2808004C2808004BA008004BD8E3
+:1017F00008004C0C08004C3008004C3008004C30FD
+:0418000008004B1081
+:0C1804000A0001220000000000000000AB
+:101810000000000D747061342E362E313600000049
+:10182000040610010000000000000000000000009D
+:1018300000000000000000000000000000000000A8
+:101840000000000000000000000000000000000098
+:101850000000000000000000000000000000000088
+:101860000000000000000000000000000000000078
+:101870000000000000000000000000000000000068
+:101880000000000000000000000000000000000058
+:1018900010000003000000000000000D0000000D1B
+:1018A0003C02080024421B803C03080024632014EF
+:1018B000AC4000000043202B1480FFFD24420004B4
+:1018C0003C1D080037BD2FFC03A0F0213C10080090
+:1018D000261004883C1C0800279C1B800E00015A1F
+:1018E000000000000000000D3084FFFF3082000780
+:1018F0008F85001810400002248300073064FFF831
+:101900000085302130C41FFF03441821247B400090
+:10191000AF85001CAF84001803E00008AF440084CA
+:101920003084FFFF308200078F8500208F860028DB
+:1019300010400002248300073064FFF80085202156
+:101940000086182B14600002AF8500240086202337
+:101950000344282134068000AF840020AF44008077
+:1019600000A6202103E00008AF84003827BDFFD87F
+:10197000AFB3001CAFB20018AFB00010AFBF00246F
+:10198000AFB40020AFB100143C0860088D145000C3
+:101990002418FF7F3C1A8000029898243672380C75
+:1019A000AD1250008F5100083C07601C3C086000DD
+:1019B00036300001AF500008AF800018AF40008003
+:1019C000AF4000848CE600088D0F08083C076016C5
+:1019D0008CEC000031EEFFF039CA00103C0DFFFF27
+:1019E000340B80003C030080034B48212D44000150
+:1019F000018D28243C0253533C010800AC230420F1
+:101A0000AF890038AF860028AF840010275B400004
+:101A100014A2000334E37C008CF90004032818218D
+:101A20008C7F007C8C6500783C0280003452007012
+:101A3000AF85003CAF9F00403C13080026731BC4D9
+:101A40000240A0218E4800008F46000038C30001EC
+:101A50003064000110800017AF88003402804821F4
+:101A60008D2D00003C1908008F39045C3C110800E2
+:101A70008E31045801A8F823033F7821000040214B
+:101A80000228382101FF802B00F070213C01080062
+:101A9000AC2F045C3C010800AC2E04588F4C0000B5
+:101AA000398B0001316A00011540FFED01A0402192
+:101AB000AF8D00348E4E00003C0C08008D8C045C11
+:101AC0003C0A08008D4A045801C86823018D28216A
+:101AD0000000582100AD302B014B20210086102141
+:101AE0003C010800AC25045C3C010800AC22045811
+:101AF0008F4501088F44010030A92000AF85000008
+:101B0000AF84000C1120000A00A030213C0708001F
+:101B10008CE7042C24EF00013C010800AC2F042CBE
+:101B20003C104000AF5001380A0001900000000056
+:101B300030B002001600001424110F0010910012A2
+:101B400024070D001087023330B000065200FFF565
+:101B50003C104000936D0000240C001031A600F0F2
+:101B600010CC0269240E007010CE02DD8F8B0014A1
+:101B700025670001AF8700143C104000AF500138CA
+:101B80000A00019000000000974801041100FFE5E1
+:101B90003C10400030B84000170000A200000000D8
+:101BA0008F5901780720FFFE8F870038240900082D
+:101BB000240508008CE30008AF450178A7490140DF
+:101BC000A7400142974201048F8600003049FFFF81
+:101BD00030DF000113E002D5012040212524FFFE63
+:101BE000240A0002A74A01463088FFFFA7440148A3
+:101BF0003C0B08008D6B043C156002C48F8F000CF9
+:101C000030C30020146000022404000924040001F1
+:101C100030CD0C00240C040051AC000134840004CD
+:101C2000A744014A3C0508008CA504203C0200485A
+:101C30003C19000100A2F82530D8000203F928253C
+:101C400013000004000018213C04010000A4282512
+:101C50002403000130CA000451400005AF8300088E
+:101C60003C06001000A6282524030001AF830008CD
+:101C7000AF45100000000000000000000000000060
+:101C8000000000008F8300081060002300000000A7
+:101C90008F4B10000561FFFE000000001060001E69
+:101CA000000000008F4D10003C03002001A36024C1
+:101CB000118000198F8F000031EE000211C0001654
+:101CC00000000000975010141600001300000000E0
+:101CD0009745100830BFFFFF27F800060018C8829C
+:101CE0000019308000C7282133110001330300039D
+:101CF000122003208CA200000000000D00C7F82174
+:101D0000AFE200003C1908008F390430272600019B
+:101D10003C010800AC2604308F6A00003405FFFF48
+:101D2000AF8A00048CE200001045029A00002021D6
+:101D30008CE5000030BF010013E0027E010020218D
+:101D40003C0708008CE704743C1008008E10044C1B
+:101D500000E858213C1808008F1804700168882B8F
+:101D60003C0808008D080448000078210204602126
+:101D7000030F18210184702B010F6821007150217D
+:101D800001AE10213C010800AC2C044C3C010800C1
+:101D9000AC2204483C010800AC2B04743C01080050
+:101DA000AC2A04708F8D00180120302131290007E2
+:101DB00025AE000831C21FFF03426021AF8D001C19
+:101DC000AF820018259B4000AF4200841120000321
+:101DD0008F90002024C800073106FFF88F84002868
+:101DE00000D0282100A4782B15E00002AF90002439
+:101DF00000A4282303452021340380000083102100
+:101E00003C061000AF850020AF820038AF4500804F
+:101E1000AF4601788F8B0014256700010A0001DDB1
+:101E2000AF8700148F6200088F6700002411003014
+:101E30000007C602330300F0107100A2241900400D
+:101E40001479FF4B8F8B00148F4A01780540FFFEF9
+:101E500030A7020014E00003000512820000000D0C
+:101E6000000512823050000300104900013070213B
+:101E7000000E688001B06021000C58800173802141
+:101E80008E08000015000002000000000000000D98
+:101E90008F6F000405E202B192030006920700056D
+:101EA000920F00043C0200010007288000B060216E
+:101EB0008D8900182771000825EE00050122682190
+:101EC000000E3082AD8D0018022020210E0005800A
+:101ED00026050014920B00068F7F00043C087FFF4C
+:101EE000000B2080009130218CC30004350AFFFFD5
+:101EF00003EAC8240079C021ACD800049207000589
+:101F000092090004960D00080007288000B1F8210E
+:101F10008FEF0000974201043C07FFFF01E75024C8
+:101F2000304EFFFF01C96021018D58233168FFFF4A
+:101F300001482025AFE400009203000724190001A6
+:101F4000107902692406000310660279000000007F
+:101F50008E190010241F000AA75F0140A7590142F3
+:101F6000920300048F86000024070001A743014468
+:101F7000A74001469758010430D100023C050041BA
+:101F8000A758014800001821A747014A1220000362
+:101F900030CA00043C050141240300015140000502
+:101FA000AF8300083C08001000A828252403000186
+:101FB000AF830008AF4510000000000000000000E3
+:101FC00000000000000000008F8B0008116000047A
+:101FD000000000008F4410000481FFFE000000009C
+:101FE0008F6A0000920700043C0508008CA5044499
+:101FF000AF8A0004975F01043C0F08008DEF044096
+:1020000030E300FF33F9FFFF0079C02100B86821F9
+:102010000000102124E6000A30C8FFFF01B8482B59
+:1020200001E2702101C96021311000073C01080064
+:10203000AC2D04443C010800AC2C04401200000309
+:102040008F8D0018250B00073168FFF8010D7021F6
+:1020500031CC1FFFAF8D001CAF8C0018AF4C00843B
+:1020600097440104034C80213084FFFF308800072F
+:1020700011000003261B4000248900073124FFF8CB
+:102080008F8200208F850028008220210085782BF8
+:1020900015E00002AF82002400852023034488213C
+:1020A00034058000022510213C061000AF8400207A
+:1020B000AF820038AF440080AF4601780A00028545
+:1020C0008F8B00148F5F017807E0FFFE30AA0200BB
+:1020D00015400003000542820000000D0005428209
+:1020E000310200030002710001C26821000D60800E
+:1020F000018248210009288000B380218E0B000056
+:1021000011600002000000000000000D8F6F000C45
+:1021100005E001F38F87003824190001AE19000093
+:102120008CE30008A20000078F78000400181C024E
+:10213000306600FF24D10005001130832CC400411B
+:1021400014800002A20300040000000D8F6B000445
+:102150003C0EFFFF00E028213164FFFF248F000BBD
+:10216000000F408200081080004748218D2D00009C
+:1021700026040014A60B000801AE60240E000580A2
+:10218000AD2C00008F5F01083C0A100003EA3824E0
+:1021900010E001A30000000097460104920300072D
+:1021A00024D1FFEC346500023224FFFFA2050007B2
+:1021B000960600082CC7001354E0000592030007A0
+:1021C000920A0007355F0001A21F00079203000773
+:1021D000240B0001106B01BA24090003106901CD22
+:1021E0008F88003830CFFFFF25E400020004C88349
+:1021F000333F00FF001F2880A219000500A85821C6
+:102200008D780000975101043C03FFFF0303602415
+:102210003222FFFF004F702325CDFFFE018D4825A0
+:10222000AD690000920600053C02FFF6344EFFFF48
+:1022300030CA00FF000A388000F020219099001475
+:102240003C1FFF7F37E7FFFF3323000F0066782135
+:1022500031F800FF0018288000B088218E2D002062
+:1022600000A86021A20F000601AE4824AE0D000CAC
+:10227000AD89000C920B00068E04000C0127F82497
+:10228000000B50800150C821972600260148C0212C
+:1022900000874024AF260024AE08000CAF3F00208A
+:1022A000AF0600108F860000240C001024090002E5
+:1022B000A74C0140A7400142A7400144A74901465D
+:1022C000974B01042407000130C80002256AFFFE75
+:1022D000A74A01483C050009A747014A110000032D
+:1022E000000018213C0501092403000130CD000441
+:1022F00051A00005AF8300083C06001000A6282569
+:1023000024030001AF830008AF4510000000000067
+:10231000000000000000000000000000921800040F
+:1023200027110002322F0007000F1023304E000744
+:10233000AE0E00108F900008120000040000000094
+:102340008F4310000461FFFE000000008F78000042
+:102350008F8F00183C1008008E100444AF980004C2
+:102360009751010425E6001030CA1FFF3222FFFFFB
+:10237000AF8F001CAF8A0018AF4A00842449FFFECB
+:102380003C0B08008D6B0440974E0104012068212E
+:10239000000967C3020D282131C9FFFF00AD402BA2
+:1023A000016C382100E82021034AF8213139000767
+:1023B0003C010800AC2504443C010800AC24044066
+:1023C0001320000327FB4000252300073069FFF896
+:1023D0008F9F00208F840028013F382100E4C82B04
+:1023E00017200002AF9F002400E438230347202178
+:1023F00034058000008510213C061000AF870020C6
+:10240000AF820038AF470080AF4601780A000285EE
+:102410008F8B0014975801041300FDC23C1040003C
+:102420008F4301780460FFFE30B9400013200003A1
+:102430003C0400080000000D3C040008AF440140CB
+:1024400024080800AF4801788F8B0000974A0104E8
+:10245000317F000113E000E93146FFFF24D0FFFE89
+:10246000240C0002A74C0146A75001488F8F00188A
+:102470002405000DA745014A8F71000025E20008E0
+:1024800030491FFF0349702130CD0007AF91000490
+:10249000AF8F001CAF89001800C03821AF490084FD
+:1024A00011A0000325DB400024C6000730C7FFF859
+:1024B0008F9800208F84002800F8302100C4382B2A
+:1024C00014E00002AF98002400C430238F8A001467
+:1024D00003465821340880000168F821255900017D
+:1024E0003C0310003C104000AF860020AF9F003836
+:1024F000AF460080AF430178AF990014AF50013868
+:102500000A000190000000008F6900009744010458
+:102510003127FFFF3088FFFF8F4F017805E0FFFE76
+:1025200030FF0007001F18233078000724E6FFFE65
+:102530002419000AA7590140A7580142A74601449F
+:10254000A7400146A74801488F42010830510020AA
+:1025500016200002240300092403000130AA00020F
+:10256000A743014A3C040041114000030000182128
+:102570003C0401412403000130AB0004516000051C
+:10258000AF8300083C0500100085202524030001CE
+:10259000AF830008AF4410000000000000000000FE
+:1025A00000000000000000008F90000812000004EE
+:1025B000000000008F4C10000581FFFE00000000AD
+:1025C0008F780000276200088F8D003CAF980004D0
+:1025D000944600089451000A944F000C30CEFFFF3F
+:1025E0000011240031E9FFFF11CD00A20089202550
+:1025F0003C0308008C6304443C1808008F18044016
+:1026000000E85021255FFFFE007F782100001021A7
+:1026100001FF302B03028821022648213C010800DB
+:10262000AC2F04443C010800AC29044024EB000812
+:102630003162FFFF3047000710E000038F8500186C
+:10264000245000073202FFF83106FFFF30C80007B0
+:102650000045702131CD1FFF034D6021AF85001C67
+:10266000AF8D0018259B4000AF4D00841100000382
+:102670008F8F002024C400073086FFF88F84002845
+:1026800000CF282100A4482B15200002AF8F002482
+:1026900000A42823AF850020AF4500803C1108002E
+:1026A0008E3104340345C0213402800003023021FE
+:1026B00012200005AF860038938300172419000EFE
+:1026C0001079000D241F043F3C0A1000AF4A017826
+:1026D0008F8B0014256700010A0001DDAF8700140D
+:1026E0000E0005A63C1040008F8B001425670001EA
+:1026F0000A0001DEAF8700143C0A1000A75F014802
+:10270000AF4A01780A0004B48F8B0014240E0F0026
+:1027100011EE003D30D100201620000224030009F4
+:10272000240300010A000208A743014A0A0001FB32
+:10273000A740014694E5000894E2000A94EB000CDF
+:102740008F86003C0002FC00316AFFFF30B9FFFFBA
+:102750001326003703EA20253C0508008CA5044415
+:102760003C1F08008FFF04400000502100A83821C2
+:1027700000E8302B03EAC8210326C0213C010800F1
+:10278000AC2704443C010800AC3804400A0002694C
+:102790008F8D00183C1908008F39047C3C03080019
+:1027A0008C6304543C0608008CC604783C0F080077
+:1027B0008DEF0450032838210068682100E8C02B01
+:1027C00000C4882101A8402B01E47021023858215F
+:1027D00001C860213C010800AC2D04543C010800F4
+:1027E000AC2C04503C010800AC27047C3C010800E0
+:1027F000AC2B04780A0002698F8D0018A7400146AF
+:102800000A00041B8F8F001830D000201600FFC56F
+:102810002403000D240300050A000208A743014A0F
+:10282000975901042738FFF00A00036B3304FFFFB8
+:102830008F8C0040148CFFC8000080213C110800E0
+:102840008E31046C3C0408008C84046802287021DA
+:1028500001C8782B00904021010F68213C0108003D
+:10286000AC2E046C3C010800AC2D04680A0002691F
+:102870008F8D00188F9900401499FF5D0000602132
+:102880003C0508008CA5046C3C1008008E10046800
+:1028900000E82021248EFFFE00AEF82103EE582B25
+:1028A000020C5021014B18213C010800AC3F046C84
+:1028B0003C010800AC2304680A00048B24EB0008E8
+:1028C0008F8800383C02FFFF8D0E000C01C2682487
+:1028D00001A46025AD0C000C0A00037930CFFFFF86
+:1028E0000A0003A9AE000000974B01049204000403
+:1028F0008E2A000C01644021251FFFF20147182495
+:1029000033F9FFFF0079C025AE38000C0A0002D46D
+:102910008E1900103C03FFFF8D11001002232824A4
+:1029200000A47825AD0F00100A00037930CFFFFF17
+:1029300097450104920600048E2F001000A6102176
+:102940002449FFEE01E76824312EFFFF01AE602528
+:10295000AE2C00100A0002D48E1900108E06000C56
+:10296000AE0000000003C080031088210A0002A608
+:10297000AE2600201460000D3050FFFF3C04FFFF26
+:102980000044602401846826000D582B000C502B55
+:10299000014B102410400002000000000000000D58
+:1029A0008CA300000A00023E006410253A11FFFFCC
+:1029B0000011782B0010702B01CF20241080000212
+:1029C000000000000000000D8CB800000A00023E6C
+:1029D0003702FFFF3084FFFF30A5FFFF10800007A4
+:1029E0000000182130820001104000020004204243
+:1029F000006518211480FFFB0005284003E0000853
+:102A00000060102110C00007000000008CA2000030
+:102A100024C6FFFF24A50004AC82000014C0FFFB05
+:102A20002484000403E000080000000010A0000857
+:102A300024A3FFFFAC86000000000000000000009F
+:102A40002402FFFF2463FFFF1462FFFA24840004C2
+:102A500003E0000800000000308EFFFF30D8FFFFC9
+:102A600000057C0001F8602539CDFFFF01AC502145
+:102A7000014C582B014B4821000944023127FFFF2C
+:102A800000E830210006240230C5FFFF00A4182111
+:102A90003862FFFF03E000083042FFFF3C0C0800F3
+:102AA0008D8C0484240BFF8027BDFFD0018450212E
+:102AB000014B4824AF4900203C0808008D080484DD
+:102AC000AFB20020AFB00018AFBF0028AFB30024F2
+:102AD000AFB1001C936600040104382130E4007F8C
+:102AE000009A10213C0300080043902130C50020CB
+:102AF000036080213C080111277B000814A000021C
+:102B0000264600702646006C92130004975101047B
+:102B1000920F00043267000F322EFFFF31ED0040AC
+:102B200001C7282311A0000500004821925900BCCC
+:102B3000333800041700009000000000924300BCEE
+:102B4000307F000413E0000F0000000010A0000D13
+:102B500000000000960E0002240AFF8000A76021FA
+:102B600025CDFFFEA74D1016920B0004014B20242B
+:102B7000308200FF10400085010C40253C0F04000E
+:102B8000010F40258F5301780660FFFE2404000AE0
+:102B9000A7440140960D00022404000931AC00074F
+:102BA000000C5823316A0007A74A0142960200022E
+:102BB0002443FFFEA7430144A7400146975F010459
+:102BC000A75F01488F5901083338002053000001E6
+:102BD00024040001920F000431EE001015C0000221
+:102BE0003483001000801821A743014A0000000030
+:102BF000000000000000000000000000AF481000CE
+:102C000000000000000000000000000000000000C4
+:102C10008F5110000621FFFE3113FFFF12600003E9
+:102C2000000000008F481018ACC800009603000692
+:102C3000307FFFFF27F90002001998820013888077
+:102C4000023B30218CD800001520005700183402B8
+:102C5000920300042405FF8000A3F82433F100FF51
+:102C60001220002C00000000924700BC30F200024D
+:102C70001240002800000000974B100C2562FFFE58
+:102C8000A7421016000000003C0A0400354900303D
+:102C9000AF4910000000000000000000000000002C
+:102CA000000000008F4C10000581FFFE00000000B6
+:102CB0009749100C8F51101C00C020213127FFFFB5
+:102CC00024F20030001218820003288000BBF82193
+:102CD0003226FFFFAFF100000E00059500112C0217
+:102CE0000013C880033B98218E7800000002740016
+:102CF000AFB800108FA80010310FFFFFAFAF00106A
+:102D00008FA4001001C46825AFAD00108FA600107D
+:102D1000AE66000097730008976D000A9766000C76
+:102D20008F8A003C000D5C0030CCFFFF3262FFFF59
+:102D3000104A0036016C2025960600023C10100057
+:102D400024D300080E0001393264FFFF974C0104C0
+:102D50000E0001473184FFFFAF5001788FBF00287C
+:102D60008FB300248FB200208FB1001C8FB00018E9
+:102D700003E0000827BD003010A0FF700000000035
+:102D800024A5FFFC0A0005CE240900048CD1000014
+:102D9000AF5110188F5301780660FF7A2404000A9F
+:102DA0000A0005E30000000000A7C8218F88003852
+:102DB0008F4E101C0019C0820018788001E8202175
+:102DC000AC8E0000000E2C0200C020210E000595E4
+:102DD00031C6FFFF023B28218CAD000000025400E9
+:102DE00000403021AFAD00108FAC0010318BFFFFE1
+:102DF000AFAB00108FA2001001424825AFA9001010
+:102E00008FA700100A000613ACA700008F8F0040A8
+:102E1000148FFFC90000000097420104960B0002C6
+:102E20003C0508008CA5046C3049FFFF316AFFFFA8
+:102E30003C1108008E310468012A382124F2FFFE7B
+:102E400000B240210012FFC30112C82B023FC02173
+:102E5000031920213C010800AC28046C3C01080047
+:102E6000AC2404680A00064D0000000000A4102BEA
+:102E700010400009240300010005284000A4102B85
+:102E800004A00003000318405440FFFC0005284044
+:102E900010600007000000000085302B14C0000205
+:102EA00000031842008520231460FFFB0005284220
+:102EB00003E00008008010218F85002C27BDFFE86B
+:102EC000000530272CC300012CA40002008310252C
+:102ED00010400003AFBF00102405007FAF85002C19
+:102EE0000005282730A5FFFF0E000574240426F5F1
+:102EF0008F830030240402BD004030210083382B32
+:102F000010E0000924050001000420400083102B7C
+:102F100004800003000528405440FFFC00042040CA
+:102F200010A0000800C350210064402B15000002CF
+:102F3000000528420064182314A0FFFB000420426F
+:102F400000C350218FBF0010000A4C02312200FF45
+:102F500027BD0018AF8A002C03E00008AF890030BD
+:102F60000A00002600000000000000000000000D24
+:102F7000747870342E362E313600000004061000AE
+:102F80000000000A000001360000EA6000000000B6
+:102F90000000000000000000000000000000000031
+:102FA0000000000000000000000000000000000021
+:102FB0000000000000000000000000000000000011
+:102FC0000000001D000000000000000000000000E4
+:102FD00000000000000000000000000000000000F1
+:102FE00000000000000000000000000000000000E1
+:102FF00000000000000000000000000010000003BE
+:10300000000000000000000D0000000D3C02080060
+:1030100024423AA03C03080024633C54AC40000026
+:103020000043202B1480FFFD244200043C1D0800B7
+:1030300037BD7FFC03A0F0213C100800261000984B
+:103040003C1C0800279C3AA00E000305000000006D
+:103050000000000D8F8300383C08800035070070A9
+:103060008CE50000008330253C02900000C2202542
+:10307000AF850030AF4400208F4900200520FFFEBF
+:103080003C038000346200708C4500008F86003065
+:103090003C1908008F39007C3C0E08008DCE00786A
+:1030A00000A6202303245821000078210164682B06
+:1030B00001CF6021018D50213C010800AC2B007C28
+:1030C0003C010800AC2A007803E000080000000082
+:1030D0000A00003D240400018F8400383C05800074
+:1030E00034A200010082182503E00008AF4300204D
+:1030F00003E00008000010213084FFFF30A5FFFF2F
+:1031000010800007000018213082000110400002EA
+:1031100000042042006518211480FFFB00052840B0
+:1031200003E000080060102110C00007000000004C
+:103130008CA2000024C6FFFF24A50004AC8200007E
+:1031400014C0FFFB2484000403E00008000000001A
+:1031500010A0000824A3FFFFAC86000000000000C0
+:10316000000000002402FFFF2463FFFF1462FFFA47
+:103170002484000403E0000800000000308AFFFF00
+:1031800093A80013A74A014497490E1630C600FFC2
+:103190003C021000A7490146AF450148A346015231
+:1031A000A748015AAF4701608FA400188FA30014ED
+:1031B000A7440158AF43015403E00008AF4201782F
+:1031C00003E00008000000003C038000346200704F
+:1031D0008C4900008F88003C2484000727BDFFF83D
+:1031E0003084FFF8AF890030974D008A31ACFFFF83
+:1031F000AFAC00008FAB0000016850232547FFFFF4
+:1032000030E61FFF00C4282B14A0FFF73C0C800001
+:10321000358B00708D6A00003C0708008CE7008445
+:103220003C0608008CC60080000810820149182363
+:103230000002788000E370210000202101C3C82B28
+:1032400000C4C02101FA4021031948212502400091
+:1032500027BD00083C010800AC2E00843C0108009A
+:10326000AC29008003E00008000000008F82003CD1
+:103270002486000730C5FFF800A2182130641FFF24
+:1032800003E00008AF84003C3C0E20FF27BDFFE0B8
+:103290003C1A80003C0F800835CDFFFDAFBF001801
+:1032A000AFB10014AFB00010AF8F0044AF4D0E00AF
+:1032B000000000000000000000000000000000000E
+:1032C000000000003C0C00FF358BFFFDAF4B0E00F3
+:1032D0003C0660048CC95000240AFF7F3C1160004A
+:1032E000012A40243507380CACC750008E2404381E
+:1032F00024050009AF4500083083FFFF38622F71B5
+:103300002450C0B3AF80004C0E000064AF80003C7E
+:1033100052000001AE20442C0E00046000000000AA
+:103320008FBF00188FB100148FB000100A000E7705
+:1033300027BD002027BDFFD0AFB20028AFB10024C9
+:10334000AFBF002CAFB00020936200080080902136
+:1033500000A088211440002D240400100E00009AC3
+:10336000000000008F8E004C3C10320031C600FF80
+:1033700000067C0001F0602525CD0001AF8D004CDA
+:10338000AC4C0000936B00099369000A316A00FF9E
+:10339000000A3C00312800FF00E82025AC4400046E
+:1033A0008F83004C06400043AC430008AC40000C47
+:1033B000979800403305000814A000022628000654
+:1033C0002628000297420E148F450E1C8F670004BA
+:1033D000937F00023044FFFF33F900FFAFB90010C4
+:1033E0008F710014AFA800180E000087AFB1001451
+:1033F0008FBF002C8FB200288FB100248FB0002027
+:10340000240400100A0000C327BD0030936900099E
+:103410009368000B312300FF310200FF006280211E
+:10342000261F000A33F0FFFF0E00009A0200202141
+:103430008F86004C3C0D410024D90001AF99004C0F
+:103440009378000930C600FF00067400330500FFC2
+:1034500024AF000201CF6025018D5825AC4B000040
+:103460008F6A000C97440E1401523825AC470004B3
+:103470008F450E1C8F670004936900023084FFFFA4
+:10348000312800FFAFA800108F630014AFB10018FF
+:103490000E000087AFA30014020020218FBF002C74
+:1034A0008FB200288FB100248FB000200A0000C323
+:1034B00027BD00303C1280000A000114AC52000C01
+:1034C00027BDFFD8AFB3001CAFBF0020AFB20018BC
+:1034D000AFB10014AFB00010936200081440008137
+:1034E00000809821AF60000C9785004030A4400018
+:1034F0001080008B2403001624104007A363000AE9
+:10350000AF700014938F00428F6C001431EE0007EF
+:10351000000E6A40018D5825AF6B0014978A004059
+:103520008F6800143149001001093825AF67001475
+:103530009786004030C300085060008D00002821AD
+:103540008F6600143C0310003C02810000C3282554
+:10355000AF65001497440E0A2418000E3405FFFCD2
+:10356000309FFFFF03E2C825AF790004A378000273
+:103570009372000A26510004A371000A9783004049
+:103580009364000A30661F00000611830044F8218E
+:1035900027F90028A379000997580E0CA778001086
+:1035A0009372000926510002323000070010782380
+:1035B00031EE0007A36E000B936D0009976C0010AD
+:1035C0008F9000349789004031AB00FF016C50218F
+:1035D000014540213127004010E000053105FFFF83
+:1035E00000B0382B3C06800010E000140000882159
+:1035F0000205402B15000033000020218F4A0E14D5
+:10360000AF4A0E108F490E1CAF490E18AF450E0081
+:103610008F4C0000318B00081160FFFD000000009E
+:10362000974D0E0800A0802100003021A78D00409A
+:103630008F450E0424110001AF850034976E0010F1
+:1036400031D2FFFF8E640000009010231440000967
+:10365000AE6200008F6A00148F8700483549004031
+:10366000AF6900148F480E10ACE800208F430E188D
+:10367000ACE3002400C020210E0000F50200282148
+:103680008E66000014C00005000000008F6B00145F
+:10369000240CFFBF016C9824AF7300148F6D000CD5
+:1036A00001B22821AF65000C937200081640000398
+:1036B000000000001620003100000000A371000887
+:1036C000020020218FBF00208FB3001C8FB2001892
+:1036D0008FB100148FB000100080102103E00008AB
+:1036E00027BD00288F900034979100403C06800051
+:1036F00002009021322F004015E0FFD20000882107
+:10370000977F00108F98003433F9FFFF1738FFEDD3
+:1037100000002021000030210A0001B9241100011D
+:103720002403000E24104007A363000AAF700014A6
+:10373000938F00428F6C001431EE0007000E6A4038
+:10374000018D5825AF6B0014978A00408F680014D4
+:103750003149001001093825AF67001497860040F1
+:1037600030C300081460FF7600000000000028212C
+:10377000AF6000040A000187A36000028F6F00148D
+:103780003C19EFFF3738FFFE01F870240A0001D71B
+:10379000AF6E00148F8700388F8A004427BDFFE08A
+:1037A0008F860048AFB00018AFBF001C8F450104E2
+:1037B0008D4900ACAF4700808CC8002000A9382399
+:1037C00000008021AF480E108F440E1000004821E9
+:1037D000AF440E148CC20024AF420E188F430E1853
+:1037E000AF430E1C10E000362D390001936B00082A
+:1037F0001160004F00000000976E001031CDFFFFF8
+:1038000000ED602B1580004A000000009778001042
+:10381000330FFFFFAF4F0E008F5F000033F900083A
+:103820001320FFFD0000000097420E088F460E0493
+:103830003045FFFF30A300011060008A0000000047
+:103840000000000D30A8A040240400401104003BFB
+:1038500030A9A0001120008500000000936C000832
+:103860005180000927A40010976F001031EEFFFF70
+:1038700000CE682B11A0000427A4001030B800402F
+:103880001300007A00000000AFA70010A7850040D9
+:10389000AF8600340E0001580000000000404821AF
+:1038A0001440FFD08FA700108F420E148F84004861
+:1038B000AC8200208F470E1CAC8700242D390001FC
+:1038C0000330302510C000178FBF001C8F840038D4
+:1038D00024100F0010900085000000008F4F017829
+:1038E00005E0FFFE24180F001098006F0000000094
+:1038F0008F470E14240202403C101000AF470144D1
+:103900008F490E1CAF490148A3400152A740015AFC
+:10391000AF400160A7400158AF420154AF50017859
+:103920008FBF001C8FB0001803E0000827BD0020E7
+:10393000AF470E000A00022E000000008F490178F8
+:103940000520FFFE240A08008F84003CAF4A01785E
+:103950009758008A330FFFFF01E4702325CDFFFF46
+:1039600031AC1FFF2D8B00081560FFF9000000002F
+:103970008F83004C8F9F003800C0482103442021D2
+:103980002466000124190F00AF86004C306A00FF46
+:1039900000E938232486400013F9000524080001BB
+:1039A000938B004231680007000812403448000140
+:1039B000000A7C003C18010001F87025AC8E400024
+:1039C0008F8D004C30AC003630A40008ACCD000424
+:1039D0001080002E010C3025974D0E0A8F8C003C74
+:1039E0003C02810031A4FFFF258B000800824025A6
+:1039F0003C03100031651FFF25390006241F000E0F
+:103A0000AF48016000C33025A75F015AAF85003C75
+:103A1000A759015814E0000A8F9F003824050F00B1
+:103A200053E500022410000134C600408F430E10FD
+:103A30008F880048AD0300208F4B0E18AD0B00247B
+:103A40008F420E14AF4201448F440E1CAF44014814
+:103A5000A34A01523C0A1000AF4601540A00022159
+:103A6000AF4A017814C0FF7830A8A0408F420E14EE
+:103A70008F84004800004821AC8200208F470E1C34
+:103A8000AC8700240A0002582D3900018F98003CB1
+:103A900025390002A7590158270F000831EE1FFFF2
+:103AA0000A0002ADAF8E003CAF40014C1120002C4B
+:103AB000000000008F460E10AF4601448F430E18E1
+:103AC000240200403C101000AF430148A3400152C3
+:103AD000A740015AAF400160A7400158AF420154CE
+:103AE000AF5001780A0002718FBF001C1120000640
+:103AF00000000000975F0E0833E5004014A00002AC
+:103B0000000000000000000D8F4801780500FFFE56
+:103B100000000000974E0E103C0D0500240320000D
+:103B200031CCFFFF018D1025AF42014C8F440E14A4
+:103B30003C0B1000AF4401448F4A0E1CAF4A0148B1
+:103B4000A34001528F840038A740015AAF40016062
+:103B5000A7400158AF4301540A00025FAF4B017800
+:103B60008F590E14AF5901448F430E1C0A0002D91D
+:103B70002402004027BDFFE0AFB20018AFB100142F
+:103B8000AFB00010AFBF001C0E0000CA0000000064
+:103B90003C0280008F8A0044345000703C120800C0
+:103BA00026523B70020088218E0800008F450000DD
+:103BB00038A400013083000110600017AF88003086
+:103BC000022048218D2C00003C0208008C42006C31
+:103BD0003C1808008F1800680188182300436821EA
+:103BE0000000C82101A3782B0319702101CF4021C7
+:103BF0003C010800AC2D006C3C010800AC280068BA
+:103C00008F4B00003967000130E6000114C0FFED62
+:103C100001804021AF8C00308E1800003C0E08005F
+:103C20008DCE006C3C0C08008D8C00680308782356
+:103C300001CF28210000402100AF302B01885821FE
+:103C4000016620213C010800AC25006C3C01080005
+:103C5000AC2400688F49010025470088AF870048E1
+:103C6000AF890038AF4900208E070000AF870030D1
+:103C70008F5901780720FFFE000000008E0F000022
+:103C80003C0D08008DAD00743C0C08008D8C00705C
+:103C900001E7702301AE28210000302100AE582B2F
+:103CA00001862021008B3821240908003C010800EE
+:103CB000AC2500743C010800AC270070AF490178C6
+:103CC00093430108A383004293820042305F0001C6
+:103CD00017E000158F830038241F0D00107F001996
+:103CE00024020F001062001D000000009147000038
+:103CF0002403005030E900FF112300043C0540007C
+:103D0000AF4501380A000312000000000E0008DA77
+:103D1000000000008F8A00443C054000AF45013898
+:103D20000A00031200000000939900423338000695
+:103D3000001851000E00020D0152D8210A00036E36
+:103D40008F8A00443C1B0800277B3BF00E00020DCD
+:103D5000000000000A00036E8F8A00443C1B08002C
+:103D6000277B3C100E00020D000000000A00036ECD
+:103D70008F8A004490AA00018FAB00108CAC001019
+:103D80003C0300FF8D680004AD6C00208CAD001476
+:103D900000E060213462FFFFAD6D00248CA70018A5
+:103DA0003C09FF000109C024AD6700288CAE001C4F
+:103DB0000182C82403197825AD6F0004AD6E002C74
+:103DC0008CAD0008314A00FFAD6D001C94A90002C3
+:103DD0003128FFFFAD68001090A70000A560000229
+:103DE000A1600004A167000090A30002306200FF00
+:103DF0000002198210600005240500011065000E04
+:103E00000000000003E00008A16A00018CD800282F
+:103E1000354A0080AD7800188CCF0014AD6F0014C7
+:103E20008CCE0030AD6E00088CC4002CA16A00015D
+:103E300003E00008AD64000C8CCD001CAD6D0018D3
+:103E40008CC90014AD6900148CC80024AD6800084A
+:103E50008CC70020AD67000C8CC200148C830064FA
+:103E60000043C82B13200007000000008CC2001480
+:103E7000144CFFE400000000354A008003E0000815
+:103E8000A16A00018C8200640A0003C400000000E3
+:103E900090AA000027BDFFF88FA9001CA3AA00006C
+:103EA0008FAE00003C0FFF808FA8001835E2FFFFA7
+:103EB0008CCD002C01C26024AFAC0000A120000416
+:103EC00000E06021A7A000028FB800008D27000449
+:103ED0000188182100A0582100C05021006D28261B
+:103EE0003C06FF7F3C0F00FF2CAD000135EEFFFFCD
+:103EF00034D9FFFF3C02FF0003193024000D1DC020
+:103F0000010EC82400E2C02400C3702503197825DF
+:103F1000AD2E0000AD2F00048D450024AFAE000093
+:103F2000AD2500088D4D00202405FFFFAD2D000CB0
+:103F3000956800023107FFFFAD2700109166001859
+:103F400030C200FF000219C2506000018D450034EC
+:103F5000AD2500148D67000827BD0008AD27001CA3
+:103F60008C8B00CCAD2C0028AD20002CAD2B002478
+:103F7000AD20001803E00008AD20002027BDFFE0C1
+:103F8000AFB20018AFB10014AFB00010AFBF001C4B
+:103F90009098000000C088213C0D00FF330F007F87
+:103FA000A0CF0000908E000135ACFFFF3C0AFF005F
+:103FB000A0CE000194A6001EA22000048CAB001429
+:103FC0008E29000400A08021016C2824012A4024AD
+:103FD0000080902101052025A6260002AE240004C1
+:103FE00026050020262400080E0000722406000288
+:103FF00092470000260500282624001400071E0012
+:104000000003160324060004044000032403FFFFFA
+:10401000965900023323FFFF0E000072AE230010FA
+:10402000262400248FBF001C8FB200188FB100140B
+:104030008FB0001024050003000030210A00007C2E
+:1040400027BD002027BDFFD8AFB1001CAFB00018BE
+:10405000AFBF002090A80000240200018FB0003CF8
+:104060003103003F00808821106200148FAA0038BD
+:10407000240B0005506B0016AFAA001000A02021F1
+:1040800000C028210E00040702003021922400BC49
+:10409000308300021060000326060030ACC0000030
+:1040A00024C600048FBF00208FB1001C8FB0001801
+:1040B00000C0102103E0000827BD0028014038217E
+:1040C0000E000385AFB000100A00044B0000000092
+:1040D0000E0003CCAFB000140A00044B0000000037
+:1040E0003C02000A034218213C04080024843B08D7
+:1040F0002405001A000030210A00007CAF83002C48
+:104100003C038000346200708C48000000A05821FD
+:1041100000C04821308A00FFAF8800308F4401780A
+:104120000480FFFE3C0C8000358600708CC50000CA
+:104130003C0308008C6300743C1808008F18007062
+:1041400000A82023006468210000C82101A4782B66
+:104150000319702101CF60213C010800AC2D0074CF
+:104160003C010800AC2C00708F480E14AF4801448D
+:10417000AF47014CA34A0152A74B0158934601088F
+:1041800030C5000854A0000135291000934B0900E8
+:1041900024070050316A00FF1147000700000000AB
+:1041A0008F450E1CAF450148AF4901543C09100032
+:1041B00003E00008AF490178934D010831A80008D9
+:1041C0001100001000000000934F010831EE0010B4
+:1041D00051C00001352900083C04080090843B6C64
+:1041E000A34401508F4309A4AF4301488F4209A063
+:1041F000AF420144AF4901543C09100003E00008FC
+:10420000AF4901783C1908008F393B283338000842
+:104210005700FFF1352900080A00049E0000000045
+:1042200024070040AF470814AF4008108F420944EC
+:104230008F4309508F4409548F45095C8F46094CC0
+:10424000AF820064AF830054AF840050AF85005C40
+:1042500003E00008AF8600609346010930C5007F87
+:10426000000518C0000521400083102103E000086C
+:10427000244200883C0A0800914A3B2D3C09080072
+:1042800095293B263C051100000A3C002528000228
+:1042900000E8302500C5182524820008AC83000002
+:1042A00003E00008AC8000048F4A002C974D0908F9
+:1042B0003C0E000E034E382131ACFFFF000C41C014
+:1042C000AF48002C9743090894EB001A0080402166
+:1042D000240200013169FFFFAC8900008CE6001C5C
+:1042E00000A05821AC8600048CE40020AD04000836
+:1042F00090E30019306300031062003E00000000EC
+:104300002865000214A00071240F0002106F004CF9
+:104310000000000024180003107800550000000081
+:104320003C09080095293B1C93430934934F09210C
+:104330003C05080094A53B22306400FF94EE002A5F
+:104340000004688231EC00FF978F0058000DC60012
+:10435000000CCC003127FFFF0319102500A73021E6
+:104360000046202501CF68213C03400000836025E2
+:10437000000D4C00AD090004AD0C0000935909205C
+:104380003C1800062509001400193E0000F82825F5
+:10439000AD0500088F4E092C25E6000130C27FFFD5
+:1043A000AD0E000C8F440930A7820058250200286A
+:1043B000AD0400108F4D0938AD0D0014AD2B000475
+:1043C0008F4C0940AD2C0008934309373C19080075
+:1043D00093393B2CAD200010000347000019C400A6
+:1043E000011858253567FFFFAD27000C03E00008D2
+:1043F000AF4A002C3C09080095293B1C3C0D0800E5
+:1044000095AD3B263C0C0800958C3B1894E40024A9
+:10441000312EFFFF01AE302100CC18230004CC0068
+:104420002462FFF20322C025240F0800AD18000CFF
+:10443000AD0F0014AD0000100A0004F225080018AA
+:1044400094E5002494EE00283C09080095293B1CC3
+:1044500000056C00000E640035A68100358408005C
+:10446000AD06000CAD0400100A0004F2250800148B
+:104470003C09080095293B1C3C0F080095EF3B26A2
+:104480003C06080094C63B1894E400243125FFFF45
+:1044900094ED002801E5702101C660230004CC00E2
+:1044A000000D1C002582FFEE006278253738810060
+:1044B00024050800AD18000CAD0F0010AD05001864
+:1044C000AD0000140A0004F22508001C1460FF94DB
+:1044D0000000000094E300243C09080095293B1CDF
+:1044E0000003140034590800AD19000C0A0004F24E
+:1044F0002508001003E00008240201F427BDFFE8AE
+:10450000AFB00010AFBF00140E00005C008080212F
+:1045100024050040AF4508148F8300548F84005059
+:104520008F85005C0070182100641023184000047F
+:10453000AF830054AF6300548F660054AF860050C1
+:104540001200000C000000008F440074936800818A
+:104550003409FA002D07000710E00005008910213A
+:10456000936C0081240B01F4018B50040144102151
+:10457000AF62000C8F4E095C01C5682319A00004CE
+:104580008FBF00148F4F095CAF8F005C8FBF00148A
+:104590008FB000100A00005E27BD00188F840064F1
+:1045A0008F8300548F820050AF640044AF6300508B
+:1045B00003E00008AF6200543C03800034620070E6
+:1045C0008C43000027BDFFF8308700FF30A900FFB3
+:1045D00030C800FFAF8300308F4401780480FFFEB5
+:1045E0003C028000345900708F380000A3A70003FC
+:1045F0003C0708008CE700748FAC00003C06080004
+:104600008CC60070030378233C0E7FFF00EFC821A7
+:1046100035CDFFFF00005021018D282400CA18214C
+:10462000000847C0032F202B00A810250064C021DC
+:10463000AFA200003C010800AC3900743C01080046
+:10464000AC380070934F010AA3A000023C0E80FF1B
+:10465000A3AF00018FAC0000312B007F35CDFFFFF1
+:10466000018D4824000B5600012A40252407300004
+:104670002406FF803C05100027BD0008AF48014C10
+:10468000AF470154A7400158A346015203E0000878
+:10469000AF45017827BDFFE8AFBF0014AFB00010F1
+:1046A0008F6500743C068000309000FF00A6202536
+:1046B0000E00005CAF640074936300053462000870
+:1046C0000E00005EA3620005020020218FBF0014CF
+:1046D0008FB0001024050005240600010A0005968D
+:1046E00027BD001827BDFFE03C038000AFB00010DD
+:1046F000AFBF0018AFB10014346200708C470000E7
+:10470000309000FF30A800FFAF8700308F44017861
+:104710000480FFFE3C188000371100708E2F0000CF
+:104720003C0D08008DAD00743C0A08008D4A0070F5
+:1047300001E7702301AE28210000582100AE302B84
+:10474000014B4821012638213C010800AC250074AA
+:10475000000088213C010800AC2700701100000F08
+:10476000000000008F6200742619FFFF3208007FEE
+:104770000002FE0233E5007F15000006332200FF31
+:104780002407FF800207202624A3FFFF0083802543
+:10479000320200FF00408021241110080E00005C4E
+:1047A000000000008F4908183125000414A0FFFD07
+:1047B0003218007F001878C00018714001CF6821BE
+:1047C00025AC0088AF4C0818274A09808D4B002083
+:1047D000AF4B01448D460024AF460148A350015021
+:1047E0000E00005EA7400158022010218FBF001864
+:1047F0008FB100148FB0001003E0000827BD002027
+:1048000027BDFFE8308400FFAFBF00100E0005E1B8
+:1048100030A500FF8F8300548FBF00103445004047
+:104820002404FF903C02100027BD0018AF43014C48
+:10483000A3440152AF45015403E00008AF420178A0
+:1048400027BDFFE8AFBF0014AFB000109345093F8C
+:10485000240200063C08080095083B2230A300FF14
+:104860002487FFD8240500041062003624060002C5
+:10487000974E093C3C0D02040006340031CCFFFF8A
+:10488000018D5825AC8B0000934A093E3149002028
+:104890001120000800000000935F09363C19010355
+:1048A0003738030033F000FF02187825240500088C
+:1048B000AC8F000493580934934D09213C104000FB
+:1048C000330E00FF000E608231AB00FF000C56007B
+:1048D000000B1400014218250068F82503F0C825D4
+:1048E000AC99FFD8935809378F4C09488F4D094030
+:1048F00000057882330E00FF01CF5821018D282357
+:10490000000B57000146102530A3FFFF0043402550
+:10491000000F488001273021ACE800200E00005C29
+:1049200024D00028240400040E00005EA364003F8D
+:10493000020010218FBF00148FB0001003E00008A8
+:1049400027BD00180A0006442406001227BDFFD028
+:1049500024090010AFB50024AFB40020AFB3001C91
+:10496000AFB10014AFB000103C010800A0293B2CEF
+:10497000AFBF0028AFB2001897480908309400FF75
+:104980003C02000E3107FFFF000731C0AF46002C8C
+:10499000974409089344010B30B300FF0342802180
+:1049A000308300300000A821106000E4000088215E
+:1049B000240C00043C010800A02C3B2C934B093E26
+:1049C000000B5600000A2E0304A001310000000075
+:1049D000AF4000489352010B324F002011E0000617
+:1049E00000000000935F093E001FCE000019C603BF
+:1049F00007000148000000009346010B30C2004050
+:104A0000104000038F9200548F87005424F2FFFF60
+:104A1000960A002C9345093493490937A78A005810
+:104A200030A600FF312700FF00071080004620213C
+:104A30000091F8213C010800A43F3B22920300189A
+:104A40003C010800A4203B1C3C010800A4203B18AA
+:104A5000307000FF03F04021250B000A3170FFFF8A
+:104A60003C010800A4283B243C010800A4283B2664
+:104A70000E00009A020020210E0004C500402021F3
+:104A80008F4B002C975809083C19000E0359402100
+:104A9000330FFFFF000F71C0AF4E002C9743090882
+:104AA000950D001A241100010040382131ACFFFFA0
+:104AB000AC4C00008D0A001CAC4A00048D0500209F
+:104AC000AC4500089109001931230003107100BDA5
+:104AD0002871000216200103240C0002106C00F55E
+:104AE000240D0003106D00CA000000003C090800FE
+:104AF00095293B1C93430934935809213C0A08002B
+:104B0000954A3B22306400FF950C002A0004F8828D
+:104B1000331900FF97980058001F760000197C0099
+:104B20003126FFFF01CF402501466821010D882570
+:104B3000019828213C0840000228102500054C005F
+:104B4000ACE90004ACE20000934309203C040006F9
+:104B500024E900140003FE0003E4C825ACF90008B2
+:104B60008F4E092C270F000131E67FFFACEE000CC1
+:104B70008F4D0930A786005824E60028ACED0010C0
+:104B80008F4C0938ACEC0014AD3200048F51094051
+:104B9000AD310008934209373C05080090A53B2C35
+:104BA000AD2000100002270000051C000083F8253E
+:104BB00037F2FFFFAD32000CAF4B002C12A00033D8
+:104BC000000000009352093F24150006240500044C
+:104BD000324B00FF117500CD24090002974F093CAC
+:104BE0003C0E020431EDFFFF01AE6025ACEC002865
+:104BF0009351093E322200201040000800000000BE
+:104C0000934409363C180103371F0300309900FF15
+:104C1000033F2825ACC5000424050008935209343D
+:104C20009343092100056082324B00FF000BA882EC
+:104C3000306400FF0015FE000004C40003F8C8251E
+:104C4000032A782501E87025ACCEFFD8934D0937AB
+:104C50008F5209488F42094031B100FF022C582180
+:104C600002423023000B1F000009AC0000754825EC
+:104C700030C8FFFF012850250E00005CACEA002080
+:104C8000240700040E00005EA367003F0E0000C36F
+:104C9000020020213C05080090A53B2C30B0000309
+:104CA0001200000F028020218F8800542509000186
+:104CB000AF890054AF6900508F6A0054014938230E
+:104CC00018E00002012020218F640054AF640054DA
+:104CD0008F420074244601F4AF66000C028020214C
+:104CE00002602821A76000680E0005E13C13100057
+:104CF0008F8E005434540006AF4E014C8F8D004C03
+:104D00008FBF00288FB5002431B100FF25AC000112
+:104D1000AF8C004C8FB20018A35101528FB000101D
+:104D2000AF5401548FB10014AF5301788FB40020F9
+:104D30008FB3001C03E0000827BD00309359093EE3
+:104D40000019C6000018960306420048241100020C
+:104D500093420923304400021080FF1E8F870060B9
+:104D60008F86005414E6FF1B000000000E00005C5C
+:104D7000000000009365003F2408001630A900FFE2
+:104D80001128000C240A00083C0D080091AD3B2CB2
+:104D900035AC00013C010800A02C3B2C936B003F7C
+:104DA000316300FF106A0065240E000A106E005E79
+:104DB0002402000C0E00005E000000000A00069DA8
+:104DC000000000003C09080095293B1C3C19080024
+:104DD00097393B263C18080097183B18950E00247D
+:104DE000313FFFFF033F782101F86823000E8C005C
+:104DF00025ACFFF2022C502524050800244700189A
+:104E0000AC4A000CAC4500140A0006E5AC400010AA
+:104E10003C09080095293B1C3C18080097183B26C4
+:104E20003C0F080095EF3B18950D00243139FFFF2A
+:104E3000950C00280319702101CF8823000D2C0048
+:104E4000000C54002622FFEE0142302534A48100DC
+:104E500024030800ACE4000CACE60010ACE300183E
+:104E6000ACE000140A0006E524E7001C3C01080041
+:104E7000A0313B2C9343093E24150001307F0020D4
+:104E800017E0FED4241100080A00069D2411000436
+:104E90008F6E00848F4D094011A0FECDAF8E00545F
+:104EA000240F00143C010800A02F3B2C0A00069C94
+:104EB0000000000095020024950600283C09080027
+:104EC00095293B1C0002240000061C00349F810031
+:104ED00034790800ACFF000CACF900100A0006E5BC
+:104EE00024E700141460FF0100000000951800245E
+:104EF0003C09080095293B1C2447001000187C0041
+:104F000035EE08000A0006E5AC4E000C0A00071F4B
+:104F1000240900128F64004CAF6400548F63005466
+:104F20000A0006A6AF630050A362003F0E00005EB9
+:104F3000000000000A00069D00000000240200148A
+:104F40000A0007F3A362003F27BDFFE8308400FF9B
+:104F5000AFBF00100E0005E130A500FF9378007E82
+:104F60009379007F936E00809368007A332F00FF5F
+:104F700000186600000F6C0031CB00FF018D482542
+:104F8000000B52008FBF0010012A3825310600FFA8
+:104F90003444700000E628252402FF813C03100001
+:104FA00027BD0018AF45014CAF440154A342015244
+:104FB00003E00008AF43017827BDFFD8AFB2001867
+:104FC000AFB10014AFB00010AFBF0020AFB3001CF2
+:104FD00093420109308600FF30B000FF000618C27E
+:104FE000320400023071000114800005305200FFCD
+:104FF0009367000530E5000810A0000D30C80010D0
+:10500000024020210E0005CD0220282124040001A9
+:105010008FBF00208FB3001C8FB200188FB1001417
+:105020008FB000100080102103E0000827BD002889
+:105030001500003200000000934301090000282100
+:105040003062007F000220C00002F94003E4982192
+:1050500026790088033B98218E7800248E6F000803
+:10506000130F0046000000008F6400842418000223
+:105070000004FD8233F900031338007C00000000B7
+:1050800093660083934A0109514600043205007C6F
+:1050900010A00060000000003205007C14A0005346
+:1050A0000240202116200006320400018E7F0024D9
+:1050B0008F59010417F9FFD60000202132040001A6
+:1050C0001080000A024020218F4209408F93006423
+:1050D00010530006000000000E00067B022028216D
+:1050E0008F430940AF630044024020210E00062890
+:1050F000022028210A00082C240400013C09080091
+:105100008D290064252600013C010800AC260064BE
+:1051100016000012000000008F6D00843C0E00C0DD
+:1051200001AE602415800005024020210E0007FA20
+:10513000022028210A00082C240400012405000470
+:105140000E00059624060001024020210E0007FAF9
+:10515000022028210A00082C240400010E00003D32
+:1051600024040001936B007D020B50250E00005EAD
+:10517000A36A007D0A00086F8F6D00848F6600743B
+:105180008F4801048E67002400064E021507FFB603
+:105190003126007F936B008326440001308A007F14
+:1051A00011460043316300FF5464FFB08F640084F4
+:1051B0002645000130B1007F30A200FF1226000416
+:1051C00024050001004090210A000842241100013A
+:1051D000240FFF80024F702401CF9026324200FF3F
+:1051E000004090210A000842241100010E00067BB5
+:1051F00002202821321800301300FFAA321000824A
+:10520000024020210E0005CD022028210A00082C92
+:10521000240400018F6E00743C0F800024050003FD
+:1052200001CF9025AF7200749371008324060001B2
+:105230000E000596322400FF0E00003D24040001FC
+:10524000936D007D020D60250E00005EA36C007D55
+:105250003C0B08008D6B0054257000013C010800D8
+:10526000AC3000540A00082C240400018F6800743C
+:105270003C0980002405000401093825AF6700744B
+:1052800093630083240600010E000596306400FF3E
+:105290000E00003D240400019362007D0202982567
+:1052A0000E00005EA373007D0A00082C2404000198
+:1052B000324D008039AC0080546CFF6C8F640084E8
+:1052C0000A0008952645000127BDFFD03C0A0008CA
+:1052D000AFBF002CAFB40028AFB30024AFB20020A2
+:1052E000AFB1001CAFB00018034AD8212409004018
+:1052F000AF490814AF4008108F4209448F4309504A
+:105300008F4609548F47095C8F48094C9344010824
+:105310009345010BAF820064308400FF30A500FF8D
+:10532000AF830054AF860050AF87005C0E000816B4
+:10533000AF8800601440015A8FBF002CA76000683E
+:10534000934D0900240B00503C14080026943C3077
+:1053500031AC00FF3C12080026523C40118B000388
+:10536000000000000000A02100009021934F0109DF
+:105370008F8800542402001031F1007F001170C0AA
+:105380000011694001AE282124B80088AF580818E0
+:105390008F4A01048F4B09A43C0C000E034CC8211A
+:1053A000014B48233C010800AC293B088F440958B5
+:1053B0003C010800A0223B2C9746090800881823CE
+:1053C0003C010800AC233B0C30C7FFFF0007F9C0CD
+:1053D0003C010800AC283B30AF5F002C9742090825
+:1053E0009730002C8E910000932F0018037898219D
+:1053F000A7900058AF9300480220F80931F000FF51
+:10540000304E000215C0018E30530001126001427F
+:10541000000000008F4F09A4241300013C01080084
+:10542000AC2F3B3493510934934E0937322500FF9A
+:1054300031CD00FF000D60800185502101505821C1
+:105440003C010800A42B3B243C010800A42A3B2279
+:1054500093490934312200FF0202202124900010D8
+:105460003C010800A4303B20240800068F9900541A
+:105470003C010800AC283B288F9F005C8F580958DE
+:105480000000802103F9282304A0013C03192023F4
+:105490000480013A00A4382B10E0013C0000000019
+:1054A0003C010800AC253B0C8E4200000040F8098E
+:1054B000000000003046000214C000DD00408821DA
+:1054C00030430001546000108E4200043C04080088
+:1054D0008C843B103C09C00000898025AF500E0031
+:1054E0008F4B0000316A00081140FFFD00000000F2
+:1054F00097450E0824100001A78500408F4C0E042C
+:10550000AF8C00348E4200040040F8090000000017
+:1055100002228825322D000215A00159000000004A
+:105520003C09080095293B183C06080094C63B241A
+:105530003C04080094843B1A3C1908008F393B1046
+:10554000012658213C1808008F183B343C1F0800E6
+:1055500097FF3B2E016418218F4E09400329282113
+:10556000246F00020319682100BF60213C0108007C
+:10557000A42B3B26AF8E00643C010800AC2D3B34CD
+:105580003C010800A42C3B1C0E00009A31E4FFFFF4
+:105590008F87004C004020213C010800A0273B2DB4
+:1055A0008E42000824E80001AF88004C0040F80952
+:1055B000000000008F4B002C974909083C0A000EA0
+:1055C000034A38213124FFFF000419C08F8A005498
+:1055D000AF43002C9743090894E6001A004040218D
+:1055E00030DFFFFFAC5F00008CF9001CAC590004F9
+:1055F0008CF80020AC58000890EF001931E300034C
+:10560000107300E60000000028620002144001024E
+:10561000240C0002106C00F4240D0003106D00A790
+:10562000000000003C09080095293B1C9345093403
+:10563000934C09213C0F080095EF3B2230BF00FF3F
+:1056400094EE002A001F6882319900FF978C005861
+:10565000000D16000019C4003124FFFF01E43021C1
+:10566000005848250126382501CC28213C0340005C
+:1056700000E3F82500056C00AD0D0004AD1F00002F
+:10568000935909203C180006250D001400197E00CE
+:1056900001F87025AD0E00088F42092C2586000107
+:1056A0008E4C000CAD02000C8F44093030C97FFFD6
+:1056B000A7890058AD0400108F4709382504002839
+:1056C000AD070014ADAA00048F450940ADA5000840
+:1056D000934309373C1F080093FF3B2CADA00010FB
+:1056E0000003C700001FCC000319782535EEFFFF2B
+:1056F000ADAE000CAF4B002C0180F809000000009B
+:105700003C06080094C63B263C02080094423B1A23
+:1057100000C24821252B00020E0000C33164FFFFA8
+:105720003C0808008D083B083C0708008CE73B104C
+:10573000010750233C010800AC2A3B081540000635
+:10574000000000003C0808008D083B28350A004096
+:105750003C010800AC2A3B28120000848F830048DB
+:105760008F470E108F900048AE0700208F4B0E1809
+:10577000AE0B00243C10080096103B1C0E00005C91
+:1057800000000000240F0040AF4F08148F86005423
+:105790008F89005000D018210069702319C00004BF
+:1057A000AF830054AF6300548F640054AF84005043
+:1057B0001200000C000000008F44007493780081F8
+:1057C0003419FA002F020007104000050099182133
+:1057D000937F0081240C01F403EC680401A41821D8
+:1057E000AF63000C8F4A095C8F88005C0148282356
+:1057F00018A00003000000008F50095CAF90005C0F
+:105800000E00005E000000008F8300548E470010E1
+:105810003C010800AC233B3000E0F8090000000028
+:105820003C0B08008D6B3B081560FF102408000638
+:105830008F590024975F09088F8900648F8E005468
+:105840003C0C001F978400588F8F002C8F930050C2
+:1058500033F8FFFF358DFF80032D3024001811C071
+:1058600032320010AF420024A5E4002CAF460024E1
+:10587000AF690044AF6E0050AF7300545640007CD7
+:105880008E850004322A0040554000318E91000878
+:105890008E88000C0100F809000000008FBF002C6A
+:1058A0008FB400288FB300248FB200208FB1001C6A
+:1058B0008FB0001803E0000827BD00303C09080045
+:1058C00095293B1C3C03080094633B263C040800DC
+:1058D00094843B1894F900243125FFFF94F80028A4
+:1058E0000065F82103E478230019640000186C00B7
+:1058F00025EEFFEE01AE302535828100240308003D
+:10590000AD02000CAD060010AD030018AD00001490
+:105910000A0009B32508001C934301098F8600384B
+:1059200000033E0000E64025AF4800808F5F09A0DD
+:105930008F5809A4AFBF0010AF5F0E148FB90010CD
+:10594000AF590E10AF580E1C0A00092DAF580E1893
+:105950000220F809000000008E88000C0100F80900
+:10596000000000000A000A508FBF002CA460002035
+:10597000A47300220A000A05AC7300243C0108004D
+:10598000AC203B0C0A0009538E4200003C01080089
+:10599000AC243B0C0A0009538E4200003C0908006D
+:1059A00095293B1C3C1F080097FF3B263C0508003F
+:1059B00094A53B1894F800243124FFFF03E4C82188
+:1059C0000325782300186C0025EEFFF201AE602558
+:1059D000AC4C000C24020800AD020014AD00001015
+:1059E0000A0009B32508001894E6002494E300286F
+:1059F0003C09080095293B1C000624000003FC001C
+:105A00003485810037F90800AD05000CAD19001090
+:105A10000A0009B3250800141460FF02000000000A
+:105A200094F800243C09080095293B1C00187C00D0
+:105A300035EE0800AD0E000C0A0009B32508001071
+:105A400093520109000028210E000628324400FF6D
+:105A50008FBF002C8FB400288FB300248FB200209A
+:105A60008FB1001C8FB0001803E0000827BD003084
+:105A700000A0F809000000000A000A4A322A00408B
+:105A80001200FF6B000000008F4E0E148F92004832
+:105A9000AE4E00208F530E1C0A000A34AE53002471
+:105AA0008F820018008040213C040100904700854F
+:105AB00030E3002010600009000000003C070800EF
+:105AC0008CE73B308F83001400E320230480000820
+:105AD0009389000014E300030100202103E0000883
+:105AE000008010213C04010003E000080080102128
+:105AF0001120000B006738238F8C001C2409003410
+:105B0000918B00BC316A0002514000012409003031
+:105B100000E9682B15A0FFF10100202100E93823DE
+:105B20002419FFFC00B9C02400F9782400F8702B78
+:105B300015C0FFEA01E8202130C20003000218234B
+:105B400014C00012306900030000302100A9702148
+:105B500001C6682100ED602B1180FFE03C040100CC
+:105B60002D2F00010006482B0105382101E93024C2
+:105B700014C0FFDA24E4FFFC2419FFFC00B9C024A0
+:105B80000308202103E00008008010218F8B001CF7
+:105B900024060004916A00BC314400041480FFEC28
+:105BA00000A970210A000AFC0000302127BDFFE88F
+:105BB000AFBF00108F460100934A01093C1F080047
+:105BC0008FFF00902407FF80314F00FF31E8007FF6
+:105BD0000008614003E6C821032CC02127090120E9
+:105BE000012770243C010800A02F3B6CAF4E080C2D
+:105BF0003C0D08008DAD00903C0400803482000311
+:105C000001A65821016C18212465012030AA0078D2
+:105C100001424025AF48081C3C1F08008FFF009040
+:105C20008F88004403E6C021331900070307482486
+:105C3000033A7821AF49002825E909C0952E0002D2
+:105C40003C0D08008DAD008C3C0A08008D4A009088
+:105C500031CC3FFF01A61821000C5980006B282190
+:105C600000A72024AF44002C952200023C1F08000E
+:105C70008FFF008C9107008530593FFF03E67821A4
+:105C80000019C1800146702101F8682131CC007FE4
+:105C900031AB007F019A2821017A50213C03000C8E
+:105CA0003C04000E00A328210144102130E600200E
+:105CB00027470980AF820028AF880018AF890020ED
+:105CC000AF85001C10C00006AF8700248D02005075
+:105CD0008CA4010C0044302318C0007700000000A1
+:105CE000910C0085240DFFDF018D3824A10700856C
+:105CF0008F8B00188F8900208F8700248D65004CC2
+:105D0000AF850014912F000D31EE002011C0001757
+:105D10000000000024090001A3890000AF800008F2
+:105D20008CE400248F850008240A0008AF8000045A
+:105D3000AF80000C3C010800A42A3B1A3C0108007B
+:105D4000A4203B2E0E000AD0000030218F850020B9
+:105D50008FBF0010AF82001090A8000D27BD001863
+:105D60000008394203E0000830E20001913F0002E0
+:105D70002418000133F900FF00192182109800391E
+:105D8000240800021088005B8F8600288CE5002420
+:105D900014A0001B8F9F001C91220000240A000504
+:105DA0003046003F10CA0047240400018F860004DB
+:105DB000A3840000AF86000CAF8600088CE40024AA
+:105DC0008F850008240A00083C010800A42A3B1A19
+:105DD0003C010800A4203B2E0E000AD00000000069
+:105DE0008F8500208FBF0010AF82001090A8000D9B
+:105DF00027BD00180008394203E0000830E2000126
+:105E00008CF800088CF900248FEE00C4A3800000F9
+:105E10008CE40024AF8E00088F8500088F86000474
+:105E200003197823240A0008AF8F000C3C010800F6
+:105E3000A42A3B1A3C010800A4203B2E0E000AD0E5
+:105E4000000000008F8500208FBF0010AF8200107F
+:105E500090A8000D27BD00180008394203E0000893
+:105E600030E20001912300003062003F104400271F
+:105E70008F85001C8CE400241480002100000000A9
+:105E80008D2E00183C187FFF8F85001C370FFFFFF9
+:105E900001CF1824AF8300048F9F00048CA80084D6
+:105EA00003E8C82B1720000203E020218CA4008403
+:105EB0000A000B8BAF8400048CA3010C0A000B6951
+:105EC000AF8300148D2C00188F8600043C0D7FFFDB
+:105ED0008F89001C35A3FFFF01835824240400018F
+:105EE000AF8B000CAD2000CCA38400000A000B9700
+:105EF000AF8600088CCA00140A000B8BAF8A00041E
+:105F00008CA300C80A000BCEAF8300048F84002846
+:105F10008CAC00648C8D0014018D582B1160000432
+:105F2000000000008CA200640A000BCEAF820004C7
+:105F30008C8200140A000BCEAF8200048F8500080B
+:105F400027BDFFE0AFBF0018AFB1001414A00007D9
+:105F5000AFB000108F8600202402000590C400001E
+:105F60003083003F106200B68F84001C8F910004C4
+:105F700000A080218F8C00243C0508008CA53B0CE0
+:105F80008D8B000431663FFF00C5502B554000014A
+:105F900000C02821938D000011A0007300B0F82BE1
+:105FA0008F98001C24040034930F00BC31EE0002D3
+:105FB00051C000012404003000A4C82B172000D1D8
+:105FC0000000000000A4282300B0F82B3C010800CA
+:105FD000A4243B1817E00068020020213C030800BD
+:105FE0008C633B080083102B544000010080182173
+:105FF0008F8800203C010800AC233B1000004821A2
+:106000009104000D30830020506000018F490E186C
+:106010008F8300100123382B10E00059000000008E
+:106020003C0408008C843B1000895821006B502BE5
+:10603000114000560090602B0069302300C02021E1
+:106040003C010800AC263B1012000003241FFFFC9B
+:106050001090008A32270003009FC8243C010800EA
+:10606000AC393B103C010800A4203B2E8F84000873
+:10607000120400078F83001CAF910004020020214E
+:106080008C7100CCAF90000826300001AC7000CCC1
+:106090003C0208008C423B108F8A000C2407001839
+:1060A0000082202301422823AF84000810800002D0
+:1060B000AF85000C240700108F8600183C010800F3
+:1060C000A0273B2C2407004090CC0085318B00C0DA
+:1060D000116700408F8D001014A0001500002021D2
+:1060E000934A01098F420974314500FF00022602DC
+:1060F00024A300013090007F3071007F1230007ABD
+:106100002407FF80A0C300833C0908008D293B2899
+:106110008F880020240D0002352C00083C01080067
+:10612000A02D3B6D3C010800AC2C3B282404001042
+:10613000910E000D31C6002010C00005008018210E
+:10614000240800013C010800AC283B103483000106
+:106150008FBF00188FB100148FB0001000601021A5
+:1061600003E0000827BD00203C010800A4203B18E4
+:1061700013E0FF9A020020210A000C1F00A020213A
+:106180003C0408008C843B100090602B1180FFAE13
+:10619000000000003C0F080095EF3B1801E470215F
+:1061A00001C6682B11A000072C8200043C1F600070
+:1061B0008FF954043338003F1700FFE524030042F1
+:1061C0002C8200041040FFA0240300420A000C7D32
+:1061D0008FBF0018152DFFC0000000008CDF007479
+:1061E0003C0380002405FF8003E3C825ACD900747C
+:1061F00090D80085240E000424040010330F003FC3
+:1062000001E54025A0C800858F8800203C010800DA
+:10621000A02E3B6D240300019106000D30C9002023
+:1062200015200003000000003C0308008C633B10B5
+:106230003C010800AC233B080A000C74000000007D
+:106240008F87000C8C88008400E8282B14A00002A3
+:1062500000E088218C91008424090001A3890000BA
+:106260008F440E18022028210E000AD0022030216F
+:10627000022080210A000C05AF82001000071823BD
+:10628000306600033C010800A4263B2E12200005C6
+:106290008F8C001C918B00BC316A000415400015E6
+:1062A00024CD00043C0F080095EF3B2E01E4702143
+:1062B00000AE302B50C0FF6E8F8400082C85000587
+:1062C00014A0FFA32403004230980003170000022B
+:1062D000009818232483FFFC3C010800AC233B10EA
+:1062E0000A000C410000000000A758240A000C69B5
+:1062F000016718263C010800A42D3B2E0A000CD192
+:10630000000000003C010800AC203B100A000C7C9F
+:10631000240300428F83000C14600007000010214A
+:106320008F880020240500059106000030C400FF7E
+:10633000108500030000000003E0000800000000DA
+:10634000910A0018314900FF000939C214E0FFFA30
+:106350008F8500183C04080094843B183C03080017
+:106360008C633B303C1908008F393B103C0F080010
+:1063700095EF3B2E0064C0218CAD005403197021B1
+:1063800001CF6021018D58231960001D000000001D
+:10639000910E001C8F8C0028974B0E1031CD00FF02
+:1063A0008D850004016D30238D88000030CEFFFF05
+:1063B000000E510000AAC821000038210107202149
+:1063C000032A182B0083C021AD990004AD9800006A
+:1063D000918F000A01CF6821A18D000A8F880028C3
+:1063E000974B0E12A50B0008950A003825490001AD
+:1063F000A50900389107000D34E60008A106000D3C
+:1064000003E000080000000027BDFFE093870000C4
+:106410008F8F00208FAD00143C0E7FFF8F89000806
+:1064200035C8FFFFAFBF001CAFB0001801A818248B
+:1064300091EA000D000717C03C1FBFFF00625825FE
+:106440002D2E00018F90001437F9FFFF3C18080033
+:106450008F183B303C0F080095EF3B2601796824EC
+:10646000000E47803C07EFFF3C05F0FF01A8182510
+:106470003149002034E2FFFF34ACFFFF0310582302
+:1064800027A500102406000225EA00020062182455
+:106490000080802115200002000040218F480E1C42
+:1064A000A7AA0012056000372407000030FF00FF94
+:1064B000001FCF008F8B001800793825AFA700147C
+:1064C000916F00853C08080091083B2D3C18DFFFC8
+:1064D00031EE00C0370AFFFF000E182B3C1F0800EA
+:1064E00097FF3B2000EA6824A3A80011000317408F
+:1064F00001A248258FB90010AFA900143C0A08007A
+:10650000914A3B2FA7BF00168FA80014032CC0246C
+:106510003C0B01003C0F0FFF030B18253147000314
+:1065200035EEFFFF010C682400071600006EF8240A
+:106530003C09700001A2C82503E95825AFB9001431
+:10654000AFAB00100E000072A3A000158F8C0020CE
+:10655000260200089186000D30C40020108000063D
+:106560008FBF001C3C05080094A53B1C24B0FFFF16
+:106570003C010800A4303B1C8FB0001803E0000869
+:1065800027BD00208F9800100118502B5540FFC7E1
+:10659000240700010A000D5430FF00FF9382000021
+:1065A00027BDFFE0AFBF00181040000F0080502152
+:1065B0008F880020240B00058F89000491070000BC
+:1065C0008F84001C0100282130E3003F8F860028C3
+:1065D000106B000800003821AFA900100E0004392C
+:1065E000AFAA0014A38000008FBF001803E00008CA
+:1065F00027BD00208D1900183C0F08008DEF3B10BF
+:106600008F98000C3C027FFF8D080014345FFFFF61
+:10661000033F682401F8702101AE6023018838210E
+:10662000AFA900100E000439AFAA00140A000DA291
+:10663000A38000008F8700203C05080094A53B2E16
+:106640003C0208008C423B2890E6000D0005240027
+:1066500030C300201060002C004440258F850018B6
+:1066600000006021240B000190A300850000482158
+:10667000240A00013C0F800035EE00708DC7000039
+:10668000AF8700308F5801780700FFFE3C03800081
+:10669000347900708F3800003C0508008CA5007428
+:1066A0003C0D08008DAD00700307782300AF382142
+:1066B0000000102100EF302B01A2202100861821BC
+:1066C0003C010800AC2700743C010800AC230070BA
+:1066D000AF4B01483C1908008F393B30A7490144B2
+:1066E000A74A0146AF59014C3C0B0800916B3B2D6A
+:1066F000A34B0152AF4801543C081000A74C01586D
+:1067000003E00008AF4801788F4B0E1C3C0A0800DC
+:106710008D4A3B1097490E16974D0E140145602186
+:10672000312AFFFF0A000DC531A9FFFF8F8300202A
+:106730009064000D3082002010400029000000000D
+:106740000000482100005021000040213C0780004B
+:1067500034EB00708D670000AF8700308F4C0178FC
+:106760000580FFFE3C0D800035AC00708D8B000075
+:106770003C0508008CA500743C0408008C84007063
+:106780000167302300A678210000102101E6C82B04
+:106790000082C021031970213C010800AC2F007455
+:1067A0003C010800AC2E0070AF4901483C0D0800C8
+:1067B0008DAD3B30A748014424090040A74A01465B
+:1067C0003C081000240AFF91AF4D014CA34A01522E
+:1067D000AF490154A740015803E00008AF480178D1
+:1067E0008F490E1897460E1297450E1030CAFFFFBC
+:1067F0000A000DFB30A8FFFF8F83002027BDFFF8A4
+:106800009064000D308200201040003A000000002B
+:10681000240B000100004821240A00013C088000EC
+:10682000350700708CE30000AF8300308F4C017897
+:106830000580FFFE3C0E80003C04080090843B6C09
+:1068400035C700708CEC00003C0508008CA5007476
+:10685000A3A400033C1908008F3900708FAD00001D
+:106860000183302300A63821000010210322782163
+:1068700000E6C02B01F8602101AE4025AFA8000062
+:106880003C010800AC2700743C010800AC2C0070EF
+:106890009346010A3C04080090843B6DA3A00002CB
+:1068A000A3A600018FA300003C0580FF3099007F64
+:1068B00034A2FFFF006278240019C60001F8702599
+:1068C000240D3000AF4E014C27BD0008AF4D0154E0
+:1068D000A7400158AF4B0148A7490144A74A0146C8
+:1068E0003C091000240AFF80A34A015203E000087B
+:1068F000AF4901788F4B0E1897460E1297450E1030
+:1069000030CAFFFF0A000E2F30A9FFFF8F85001845
+:106910002402008090A40085308300C0106200052E
+:106920008F86001C8F8800048F870008ACC800C8C1
+:10693000ACC700C403E00008000000003C0A0800E7
+:10694000254A37CC3C090800252938983C0808001E
+:1069500025082C4C3C07080024E739AC3C0608000D
+:1069600024C6363C3C05080024A533B43C0408008A
+:1069700024842FDC3C030800246336D43C02080046
+:10698000244234A83C010800AC2A3C383C010800F1
+:10699000AC293C343C010800AC283C303C010800E8
+:1069A000AC273C3C3C010800AC263C4C3C010800B8
+:1069B000AC253C443C010800AC243C403C010800B0
+:1069C000AC233C503C010800AC223C4803E00008EA
+:0469D00000000000C3
+:00000001FF
+/*
+ * This file contains firmware data derived from proprietary unpublished
+ * source code, Copyright (c) 2004 - 2009 Broadcom Corporation.
+ *
+ * Permission is hereby granted for the distribution of this firmware data
+ * in hexadecimal or equivalent format, provided this copyright notice is
+ * accompanying it.
+ */
diff --git a/firmware/bnx2/bnx2-mips-09-4.6.17.fw.ihex b/firmware/bnx2/bnx2-mips-09-4.6.17.fw.ihex
new file mode 100644 (file)
index 0000000..7667c66
--- /dev/null
@@ -0,0 +1,5816 @@
+:10000000080000F80800000000004AC8000000C80E
+:1000100000000000000000000000000008004AC8C6
+:100020000000003000004B90080000800800000035
+:10003000000053A800004BC0080055400000008499
+:1000400000009F68080053A80000016C00009FECAE
+:10005000080031D808000000000079080000A1580D
+:100060000000000000000000000000000800790807
+:100070000000012400011A60080004880800040040
+:10008000000013A400011B84000000000000000019
+:1000900000000000080017A40000000400012F2841
+:1000A000080000980800000000003AFC00012F2C16
+:1000B00000000000000000000000000008003AFC02
+:0800C0000000003000016A2875
+:0800C8000A00003E00000000E8
+:1000D000000000000000000D636F6D342E362E31DD
+:1000E00036000000040610020000000000000003BB
+:1000F00000000014000000320000000300000000B7
+:1001000000000000000000000000000000000000EF
+:1001100000000010000001360000EA60000000014D
+:1001200000000000000000000000000000000008C7
+:1001300000000000000000000000000000000000BF
+:1001400000000000000000000000000000000000AF
+:10015000000000000000000000000000000000009F
+:10016000000000020000000000000000000000008D
+:10017000000000000000000000000000000000007F
+:10018000000000000000000000000010000000005F
+:10019000000000000000000000000000000000005F
+:1001A000000000000000000000000000000000004F
+:1001B000000000000000000000000000000000003F
+:1001C0000000000010000003000000000000000D0F
+:1001D0000000000D3C02080024424B203C030800B4
+:1001E00024634C18AC4000000043202B1480FFFD1A
+:1001F000244200043C1D080037BD9FFC03A0F021F1
+:100200003C100800261000F83C1C0800279C4B20DE
+:100210000E000273000000000000000D27BDFFE883
+:100220003C028000AFB00010AFBF0014345001009A
+:10023000920200091040001A240300013C02080049
+:100240008C42002010400016000018210E000D7195
+:1002500000000000960300083C06080094C64BFE10
+:100260008E0400188F82002C9605000C00031C00E1
+:1002700000661825AC440000AC45000424040001CD
+:10028000AC400008AC40000CAC400010AC40001486
+:10029000AC4000180E000D98AC43001C0000182163
+:1002A0008FBF00148FB000100060102103E0000821
+:1002B00027BD001827BDFFE8AFBF00103C0280003B
+:1002C0009442010830437000240220001062000AAA
+:1002D00028642001548000128FBF001024024000C7
+:1002E00010620008240260001062000A8FBF001034
+:1002F0000A000097000010218FBF00100A0000556F
+:1003000027BD00180E000433000000000A0000960C
+:100310008FBF00100E000C81000000008FBF001086
+:100320000000102103E0000827BD00183C0208006F
+:100330008C42002027BDFFE810400028AFBF00100E
+:100340000E000D71000000003C05800094A2010821
+:1003500094A3010C8F86002C3042003E3063FFFFD7
+:100360000002140000431025ACC200008CA2010062
+:100370003C07080094E74BFE8FBF0010ACC200049E
+:1003800094A3011694A4010E3C02200000031C005B
+:100390003084FFFF00641825ACC3000800E2382554
+:1003A00094A2011094A3011224040001000214007D
+:1003B0003063FFFF00431025ACC2000C94A201146F
+:1003C00027BD00183042FFFFACC20010ACC00014C3
+:1003D000ACC000180A000D98ACC7001C8FBF0010FD
+:1003E00003E0000827BD00183C0680008CC202B85C
+:1003F0002403000104410008008028213C02080079
+:100400008C420060244200013C010800AC220060E4
+:1004100003E00008006010218C8300209482001605
+:10042000ACC302802442FFFCA4C202843C02080048
+:100430008C42005C8C84000494A3000E24420001D2
+:100440003C010800AC22005C3C021000A4C3028600
+:10045000ACC4028800001821ACC202B803E0000856
+:10046000006010213C0208008C42002027BDFFE8FC
+:100470001040002BAFBF00100E000D7100000000F7
+:100480003C05800094A2010894A3010C8F86002CE7
+:100490003042003E3063FFFF00021400004310258D
+:1004A000ACC200008CA201003C07080094E74BFEA0
+:1004B0008FBF0010ACC2000494A3011694A4010ED7
+:1004C0003C02200000031C003084FFFF006418255C
+:1004D000ACC3000800E2382594A2011094A30112D5
+:1004E00024040001000214003063FFFF00431025C4
+:1004F000ACC2000C94A2011427BD00183042FFFFCB
+:10050000ACC200108CA20118ACC2001490A2010B66
+:10051000304200FFACC200180A000D98ACC7001CA6
+:100520008FBF001003E0000827BD001827BDFFE0C3
+:10053000AFB000103C108000AFB20018AFBF001C7D
+:10054000AFB10014361201009243000B2402001ACE
+:10055000965100081462005B00002821322200013D
+:1005600010400018000000008E42000000022340EE
+:100570003C02003F3442FFFF0044102B10400004B7
+:100580003C030040964200140A00013B00832021F6
+:100590008E030100240201005462000696420014FA
+:1005A0003C028008944200043042000F0002250003
+:1005B0009642001400821025AE0200800A00016FEE
+:1005C000000000003C0208008C420020104000287F
+:1005D000000000000E000D710000000096020108EE
+:1005E0009603010C8F85002C3042003E3063FFFFE4
+:1005F0000002140000431025ACA200008E0201008E
+:100600003C06080094C64BFEACA2000496030116FB
+:100610009604010E3C02200000031C003084FFFF02
+:1006200000641825ACA3000800C230259602011012
+:100630009603011224040001000214003063FFFF3E
+:1006400000431025ACA2000C960201143042FFFFBB
+:10065000ACA200108E020118ACA200149202010B91
+:10066000304200FFACA200180E000D98ACA6001C92
+:100670003C0208008C420040244200013C0108007A
+:10068000AC2200403C0308008C630044322200028C
+:1006900032240004246300013C010800AC23004420
+:1006A000108000080002282B024020218FBF001C70
+:1006B0008FB200188FB100148FB000100A0000C86C
+:1006C00027BD00208FBF001C8FB200188FB100140F
+:1006D0008FB0001000A0102103E0000827BD00200B
+:1006E00027BDFFE03C058000AFB10014AFBF00188C
+:1006F000AFB0001034B101009223000B24020003BC
+:1007000014620043963000083202000110400016C7
+:100710003C02003F8E2300003442FFFF00032340D1
+:100720000044102B504000052402010096220014C2
+:100730003C0300400A0001A400832021546200060B
+:10074000962200143C028008944200043042000FBC
+:10075000000225009622001400821025ACA2008021
+:100760000A0001AF000000000E0000990000000028
+:100770003C0208008C420040244200013C01080079
+:10078000AC2200403C0208008C42004432030004CA
+:10079000244200013C010800AC2200441060000724
+:1007A00032020002022020218FBF00188FB10014F6
+:1007B0008FB000100A0000C827BD002010400015AF
+:1007C0008FBF00183C0480008C8301043C02602031
+:1007D000AC4300148C420004240301FE304203FFAA
+:1007E0001443000C8FBF00188C820100000219C254
+:1007F0002462FFFC2C420008104000032404000285
+:100800002462FFFD004420043C026000AC446914F3
+:100810008FBF00188FB100148FB00010000010219E
+:1008200003E0000827BD00203C0480008C83010009
+:1008300024020100506200033C0280080000000D09
+:100840003C02800894430004000010213063000F34
+:1008500000031D0003E00008AC8300803C02800818
+:10086000344200809042000003E00008AF800000A6
+:1008700003E000080000102127BDFFE83C028000D3
+:10088000AFBF0014AFB000108C430100AC43002098
+:100890008C430104AC4300A89050010B0E0001E50D
+:1008A000321000FF3C02080024424B580010188010
+:1008B0002E10001D16000005006210210E0001EA36
+:1008C000004018210A000205000000008C420000D0
+:1008D0000040F80900000000004018213C02080018
+:1008E0008C42003410600005244400013C0280006A
+:1008F0008C4301043C026020AC4300148FBF001401
+:100900008FB000103C0340003C02800027BD00185F
+:10091000AC4301383C010800AC24003403E000087B
+:100920000000000027BDFFE8AFBF0014AFB000100B
+:100930003C1080008E0201400E0001E5AE02002056
+:100940000E000399000000003C04080024840038D5
+:100950008C8200003C034000AE0301788FBF00147E
+:100960008FB000102442000127BD001803E00008EA
+:10097000AC82000027BDFFE8AFB00010AFBF00148D
+:100980003C1080008E0201800E0001E5AE020020C6
+:100990008E03018024020F00546200083C0280088C
+:1009A0008E0201883C0300E03042FFFF0043102527
+:1009B000AE0200800A00024A3C02800034420080FD
+:1009C0009042000024030050304200FF144300080E
+:1009D0003C0280000E000379000000001440000477
+:1009E0003C0280000E000967000000003C0280000D
+:1009F0003C034000AC4301B83C0208008C42003C80
+:100A00008FBF00148FB00010244200013C01080089
+:100A1000AC22003C03E0000827BD001803E00008FA
+:100A2000000010213C05800034A4010094820008DD
+:100A30003043000230420004104000030000000078
+:100A40000A0000C800000000106000052404000136
+:100A50003C0208008C4200840A00026F244200011C
+:100A60008CA301048F82000C104300080000202199
+:100A70008CA301043C0208008C420084AF83000C6C
+:100A8000244200013C010800AC22008403E000087D
+:100A90000080102127BDFFE83C036010AFBF0014A9
+:100AA000AFB000108C6550002402FF7F3C04800032
+:100AB00000A2282434A5380C24020037AC6550006D
+:100AC000AC82000824020C80AC8200243C060800A2
+:100AD00024C607A83C02080024424B582405001CE9
+:100AE00024A5FFFFAC46000004A1FFFD2442000442
+:100AF0003C020800244201EC3C010800AC224B609F
+:100B00003C020800244206183C010800AC224B6459
+:100B10003C02080024420D103C010800AC224BA00E
+:100B20003C020800244204643C0308002463095486
+:100B30003C0408002484095C3C05080024A52C948E
+:100B40003C010800AC224BC03C0208002442076074
+:100B50003C010800AC264BA83C010800AC254BB476
+:100B60003C010800AC234BBC3C010800AC244BC446
+:100B70003C010800AC224BC83C010800AC234B5C94
+:100B80003C010800AC204B683C010800AC204B6CD9
+:100B90003C010800AC204B703C010800AC204B74B9
+:100BA0003C010800AC204B783C010800AC204B7C99
+:100BB0003C010800AC204B803C010800AC244B8475
+:100BC0003C010800AC204B883C010800AC204B8C59
+:100BD0003C010800AC204B903C010800AC204B9439
+:100BE0003C010800AC204B983C010800AC264B9C13
+:100BF0003C010800AC264BA43C010800AC204BACE7
+:100C00003C010800AC254BB03C010800AC234BB8BC
+:100C10000E00055A000000003C02800034420070C3
+:100C20008C420000AF8200103C0308008C6300205F
+:100C30008F820004104300043C0580000E000D3735
+:100C4000AF8300043C05800034A900708D280000AB
+:100C50008F8400103C0708008CE700BC3C060800AD
+:100C60008CC600B8010420230000102100E43821C4
+:100C700000C2302100E4202B00C430213C010800D8
+:100C8000AC2700BC3C010800AC2600B88CB00000CA
+:100C9000320200071040FFE4AF8800108D260000EC
+:100CA0003C0508008CA500BC3C0408008C8400B8FE
+:100CB00000C8302300A628210000102100A6302BF8
+:100CC0000082202100862021320700013C0108001B
+:100CD000AC2500BC3C010800AC2400B810E00004C6
+:100CE000320200020E0001EC00000000320200029D
+:100CF00010400004320200040E0002170000000041
+:100D0000320200045040FFC53C0280000E00022B5E
+:100D1000000000000A0002D53C0280003C02900066
+:100D200034420001008220253C028000AC440020B7
+:100D30003C0380008C6200200440FFFE00000000A5
+:100D400003E00008000000003C0280003443000182
+:100D50000083202503E00008AC44002027BDFFE00D
+:100D6000AFB10014AFB0001000808821AFBF0018F1
+:100D70000E00031530B000FF8F83FFAC022020214E
+:100D80009062002502028025A07000258C7000185A
+:100D90003C0280000E000320020280241600000A9C
+:100DA0008FBF00183C0380008C6201F80440FFFEF6
+:100DB00024020002AC7101C0A06201C43C02100018
+:100DC000AC6201F88FBF00188FB100148FB0001013
+:100DD00003E0000827BD002027BDFFB8AFBF0044D7
+:100DE000AFB000403C0780008CE601048F82FFA872
+:100DF000AFA600288C450020AFA5002C8C44003CF9
+:100E0000AFA400308C430040AFA300348C42004CB0
+:100E1000AFA60010AFA50014AFA20020AFA200380B
+:100E20003C0208008C420020AFA40018AFA3001CB5
+:100E30008CF00100104000198FBF00440E000D71AE
+:100E4000000000008F83002C3C05080094A54BFE99
+:100E50003C024018AC70000000A228258FA20010B0
+:100E600024040001AC6200048FA20014AC620008EC
+:100E70008FA20018AC62000C8FA2001CAC620010A4
+:100E80008FA20020AC6200148FA20024AC62001874
+:100E90000E000D98AC65001C8FBF00448FB0004061
+:100EA0000000102103E0000827BD004827BDFFE82F
+:100EB000AFBF00103C038000946201843042020006
+:100EC00010400005000020210E000FE3000000008C
+:100ED0000A00038F240400018C6201880440000A88
+:100EE0008FBF00108C6201883C03FF000043102478
+:100EF0003C03040014430004240400018F82FFAC6F
+:100F0000904200088FBF00100080102103E000080D
+:100F100027BD00188F82FFB024050001A040001AF1
+:100F20003C0280000A0003258C44014027BDFFE0FD
+:100F3000AFB100148F91FFACAFBF001CAFB200186F
+:100F4000AFB000109222000024030020304200FFC6
+:100F50001043000C3C028000922200002403003069
+:100F6000304200FF104300073C0280009222000044
+:100F700024030050304200FF144300818FBF001C47
+:100F80003C02800090420148304200FF2443FFFFB2
+:100F90002C6200051040007A8FBF001C00031080F7
+:100FA0003C03080024634AD8004310218C4200000F
+:100FB00000400008000000003C1180008E24014029
+:100FC0000E0003158F92FFAC8E50000C8E22014450
+:100FD0001602000224020001AE42000C0E000320A3
+:100FE0008E2401408E220144145000068FBF001C45
+:100FF0008FB200188FB100148FB000100A000F518B
+:1010000027BD00208E42000C0A00042700000000CB
+:10101000962200103C0480008C8301443042FFFF84
+:10102000146200090000000024020001A622001042
+:101030008C820140AC8202003C021000AC8202387B
+:101040000A00042E8FBF001C962200100A000427FD
+:10105000000000009222000024030020304200FF24
+:101060001443000B3C128000962200123C038000C7
+:101070008C6301443042FFFF14620018000000003E
+:1010800024020001A62200120A0004008FBF001CE7
+:101090008E4401400E00031500000000962200124D
+:1010A0008E4301443050FFFF16030002240200016A
+:1010B000A62200120E0003208E4401408E420144FD
+:1010C000160200068FBF001C8FB200188FB10014EB
+:1010D0008FB000100A00039327BD00209622001253
+:1010E0000A00042700000000962200143C03800040
+:1010F0008C6301443042FFFF1462000900000000CD
+:1011000024020001A62200148FBF001C8FB2001819
+:101110008FB100148FB000100A00126827BD0020A4
+:10112000962200140A0004270000000096220016F0
+:101130003C0380008C6301443042FFFF14620008CE
+:1011400024020001A62200168FBF001C8FB20018D7
+:101150008FB100148FB000100A000B0B27BD0020C8
+:1011600096220016144000068FBF001C3C020800A7
+:101170008C420070244200013C010800AC22007047
+:101180008FB200188FB100148FB0001003E0000878
+:1011900027BD002027BDFFE03C028000AFB1001456
+:1011A000AFBF001CAFB20018AFB000103451010047
+:1011B000922300098C5001002402001F106200AA33
+:1011C0002862002010400018240200382862000A1B
+:1011D0001040000C2402000B286200081040002C74
+:1011E0000000000004600100286200021440002892
+:1011F00024020006106200268FBF001C0A00054A68
+:101200008FB20018106200602862000B144000F7D3
+:101210008FBF001C2402000E106200778FB20018EE
+:101220000A00054A00000000106200D3286200395D
+:101230001040000A2402008024020036106200E3FD
+:1012400028620037104000C524020035106200D823
+:101250008FBF001C0A00054A8FB200181062002DD3
+:101260002862008110400006240200C824020039D0
+:10127000106200C98FBF001C0A00054A8FB2001817
+:10128000106200A28FBF001C0A00054A8FB200182E
+:101290003C0208008C420020104000D48FBF001C8C
+:1012A0000E000D71000000003C028000344201007D
+:1012B0008C4400008F83002C944700083C050800F4
+:1012C00094A54BFEAC6400008C44000400073C0075
+:1012D00000E53825AC6400048C4400189446000CEA
+:1012E000AC6400088C45001C000634002404000196
+:1012F000AC65000C9042000A00C23025AC660010BC
+:10130000AC600014AC600018AC67001C0A00050C4F
+:101310008FBF001C3C0208008C420020104000B32C
+:101320008FBF001C0E000D71000000009624000805
+:101330003C03080094634BFE9625000C0004220237
+:101340009626000E8F82002C0004260000832025A4
+:1013500000052C003C03008000A6282500832025E2
+:10136000AC400000AC400004AC400008AC40000CB5
+:10137000AC450010AC400014AC400018AC44001C5C
+:101380000A00050B240400019622000C14400017EB
+:101390008F91FFAC922200053042001014400013E0
+:1013A000000000000E00031502002021922200051B
+:1013B00002002021344200100E000320A22200056A
+:1013C0009222000024030020304200FF10430086D8
+:1013D000020020218FBF001C8FB200188FB10014B3
+:1013E0008FB000100A00104C27BD00200000000D37
+:1013F0000A0005498FBF001C3C0208008C420020F7
+:101400001040007A8FBF001C0E000D71000000001C
+:101410008E2200048F83002C9624000C3C050800CB
+:1014200094A54BFEAC6200003C0280089442002C64
+:10143000000424003042FFFF008220253C02400EC1
+:1014400000A22825AC640004AC600008AC60000C6D
+:10145000AC600010AC600014AC600018AC65001CFF
+:101460000A00050B240400010E00031502002021D0
+:101470008F92FFB0020020210E000320A640000C36
+:10148000020020210E000325240500013C02080073
+:101490008C420020104000558FBF001C0E000D71C3
+:1014A000000000009622000C8F83002C8F84FFAC7C
+:1014B00000021400AC700000AC620004AC600008D4
+:1014C0008C8200383C05080094A54BFEAC62000CF1
+:1014D0008C86003C3C02401F00A22825AC66001010
+:1014E0008E42000424040001AC620014AC600018B9
+:1014F000AC65001C8FBF001C8FB200188FB10014A8
+:101500008FB000100A000D9827BD00208F82FFAC1D
+:101510002403002090420000304200FF10430033BB
+:101520008FBF001C0E000F37000000001040002F7E
+:101530008FBF001C3C0380008C6201F80440FFFE5A
+:1015400024020002AC7001C0A06201C43C02100081
+:10155000AC6201F80A0005498FBF001C020020217F
+:101560008FBF001C8FB200188FB100148FB0001015
+:101570000A000E8027BD00209625000C02002021C5
+:101580008FBF001C8FB200188FB100148FB00010F5
+:101590000A000EA527BD0020020020218FB20018EE
+:1015A0008FB100148FB000100A000ED027BD0020AC
+:1015B0009225000D020020218FB200188FB1001477
+:1015C0008FB000100A000F2127BD0020020020214B
+:1015D0008FBF001C8FB200188FB100148FB00010A5
+:1015E0000A000EF827BD00208FBF001C8FB2001824
+:1015F0008FB100148FB0001003E0000827BD002059
+:101600003C0380008C6202780440FFFE240200024A
+:10161000AC640240A06202443C02100003E00008F7
+:10162000AC620278000411C003E0000824420240CA
+:10163000A380001803E00008A38000193C03800089
+:101640008C6202780440FFFE8F82001CAC62024074
+:1016500024020002A06202443C02100003E00008E1
+:10166000AC62027803E000080000000090830030C4
+:1016700024020005008040213063003F0000482123
+:1016800014620005000050219082004C9483004EAB
+:10169000304900FF306AFFFFAD00000CAD000010C4
+:1016A000AD000024950200148D05001C8D04001867
+:1016B0003042FFFF0049102300021100000237C32F
+:1016C000004038210086202300A2102B0082202316
+:1016D00000A72823AD05001CAD040018A5090014BF
+:1016E000A5090020A50A001603E00008A50A0022AB
+:1016F00003E000080000000027BDFFD8AFB20018CB
+:101700003C128008AFB40020AFB3001CAFB100148E
+:10171000AFBF0024AFB00010365101009222000C80
+:101720003C140800929400F7304300FF24020001AB
+:1017300010620031008098212402000214620034FB
+:10174000365000800E001242000000009204004C4F
+:101750000E0005573084007F026210212403FF80B1
+:10176000004318243C048000AC8300949245000898
+:101770009204004C3042007F3C0380061485000731
+:10178000004380212402FFFFA22200112402FFFF58
+:10179000A62200120A0005BA2402FFFF96020020CA
+:1017A000A222001196020022A62200128E0200241C
+:1017B0003C048008AE2200143485008090A2004CC6
+:1017C00034830100A06200108CA2003CAC620018BF
+:1017D0008C820068AC6200E48C820064AC6200E041
+:1017E0008C82006CAC6200E824020001A0A20068B8
+:1017F0000A0005D63C0480080E00125B00000000C1
+:1018000036420080A04000680A0005D63C048008EB
+:10181000A2000068A20000690A0006123C028008CB
+:10182000348300808C62003834850100AC62006C27
+:1018300024020001A062006990A200C59083000804
+:10184000305100FF3072007F1232001B3C088008CC
+:101850000E00055702202021026210212403FF8080
+:10186000004318243C048000AC8300943042007F85
+:101870003C038006004380218E02000C1040000DC6
+:10188000020020210E000569000000002622000150
+:10189000305100FF9203003C023410260002102B4E
+:1018A000000210233063007F022288240A0005E032
+:1018B000A203003C3C088008350401008C8200D063
+:1018C00035070080ACE2003C8C8200D0AD02000005
+:1018D00090E5004C908600C590E3004C908400C5D4
+:1018E0002402FF8000A228243063007F308400FFA0
+:1018F00000A628250064182A1060000230A500FF09
+:1019000038A50080A0E5004CA10500093C02800834
+:101910009043000E344400803C058000A043000A40
+:101920008C8300183C027FFF3442FFFF00621824C2
+:10193000AC8300188CA201F80440FFFE00000000F8
+:10194000ACB301C08FBF00248FB400208FB3001C44
+:101950008FB200188FB100148FB000102402000263
+:10196000A0A201C427BD00283C02100003E000082B
+:10197000ACA201F890A2000027BDFFE0AFB20018B2
+:1019800024420001A0A200003C0308008C6300F484
+:10199000304200FFAFB10014AFBF001CAFB0001069
+:1019A00000A088211443000200809021A0A0000024
+:1019B0000E000557922400008F90001C2403FF8026
+:1019C00002021021004310243C038000AC6200247A
+:1019D0000E00055792240000020280213210007F81
+:1019E0003C02800A02028021AE5000008FBF001C22
+:1019F0008FB200188FB100148FB0001003E0000800
+:101A000027BD002094820006908300058C85000C81
+:101A10008C8600108C8700188C88001C8C84002019
+:101A20003C010800A4224BD23C010800A0234BD16A
+:101A30003C010800AC254BD83C010800AC264BDC2F
+:101A40003C010800AC274BE43C010800AC284BE803
+:101A50003C010800AC244BEC03E00008000000004F
+:101A60003C028008344201008C4400343C03800076
+:101A700034650400AC6400388C420038AF85003017
+:101A8000AC62003C3C020005AC620030000000008B
+:101A90000000000003E00008000000003C02000617
+:101AA000308400FF008220253C028000AC440030DE
+:101AB0000000000000000000000000003C03800067
+:101AC0008C620000304200101040FFFD34620400C0
+:101AD00003E00008AF82003094C200003C08080018
+:101AE000950800CA30E7FFFF00804821010210215D
+:101AF000A4C2000094C200003042FFFF00E2102B9D
+:101B000054400001A4C7000094A200003C03080058
+:101B10008C6300CC24420001A4A2000094A2000027
+:101B20003042FFFF144300073C0280080107102BDE
+:101B3000A4A000005440000101003821A4C7000007
+:101B40003C028008344601008CC3002894A20000A7
+:101B50003C0480003042FFFE000210C000621021F1
+:101B6000AC82003C8C82003C0062182318600004A8
+:101B7000000000008CC200240A0006AF24420001CD
+:101B80008CC20024AC8200383C0200503442001069
+:101B90003C038000AC620030000000000000000048
+:101BA000000000008C620000304200201040FFFD69
+:101BB0000000000094A200003C04800030420001BC
+:101BC000000210C0004410218C430400AD2300002B
+:101BD0008C420404AD2200043C02002003E0000813
+:101BE000AC82003027BDFFE0AFB20018AFB10014E7
+:101BF000AFB00010AFBF001C94C2000000C0802135
+:101C00003C120800965200C624420001A6020000C1
+:101C10009603000094E2000000E030211443000528
+:101C20008FB100300E000684024038210A0006E61B
+:101C3000000000008C8300048C82000424420040D9
+:101C400004610007AC8200048C820004044000049C
+:101C5000000000008C82000024420001AC820000E1
+:101C6000960200003042FFFF50520001A600000023
+:101C70009622000024420001A62200003C028008B7
+:101C800034420100962300009442003C14430004B7
+:101C90008FBF001C24020001A62200008FBF001C81
+:101CA0008FB200188FB100148FB0001003E000084D
+:101CB00027BD002027BDFFE03C028008AFBF001811
+:101CC000344201008C4800343C0380003469040035
+:101CD000AC6800388C42003830E700FFAF89003034
+:101CE000AC62003C3C020005AC6200300000000029
+:101CF00000000000000000000000000000000000E4
+:101D0000000000008C82000C8C82000C978300166F
+:101D1000AD2200008C82001000604021AD22000442
+:101D20008C820018AD2200088C82001CAD22000CB1
+:101D30008CA20014AD2200108C820020AD22001471
+:101D400090820005304200FF00021200AD22001810
+:101D50008CA20018AD22001C8CA2000CAD22002029
+:101D60008CA20010AD2200248CA2001CAD22002801
+:101D70008CA20020AD22002C3402FFFFAD260030E3
+:101D8000AD200034506200013408FFFFAD28003858
+:101D900050E000113C0280083C04800834840100BB
+:101DA000948200503042FFFFAD22003C94830044F7
+:101DB00094850044240200013063FFFF000318C231
+:101DC000006418219064005430A5000700A210049C
+:101DD0000A0007510044102534420100AD20003CA8
+:101DE00094430044944400443063FFFF000318C24E
+:101DF000006218213084000790650054240200011D
+:101E0000008210040002102700451024A062005434
+:101E10000000000000000000000000003C0200067E
+:101E2000344200403C038000AC62003000000000FF
+:101E300000000000000000008C6200003042001032
+:101E40001040FFFD3C06800834C20150346304009A
+:101E500034C7014A34C4013434C5014034C6014496
+:101E6000AFA200100E0006C7AF8300308FBF00186E
+:101E700003E0000827BD00208F8300143C05080004
+:101E80008CA500E88F82001C30633FFF000319809F
+:101E900000451021004310212403FF800043182433
+:101EA0003C058000ACA300283042007F3C03800C3E
+:101EB0000043302190C2000D000038213442001050
+:101EC000A0C2000D8F8900143C028008344201003A
+:101ED00094430044000913823048000324020001A7
+:101EE000A4C3000E1102000B2902000210400005DD
+:101EF000240200021100000C240300010A000798CC
+:101F00000000182111020006000000000A000798D6
+:101F1000000018218CC2002C0A00079824430001FD
+:101F20008CC20014244300018CC200180043102B03
+:101F3000144000033C0380080A0007A224070001A4
+:101F4000346301009462004C24420001A462004CFE
+:101F500000091382304300032C6200021040000984
+:101F600000802821146000040000000094C20034A6
+:101F70000A0007B23046FFFF8CC600380A0007B2DD
+:101F800000802821000030213C04080024844BCC30
+:101F90000A0006FB0000000027BDFF90AFB60068F6
+:101FA000AFB50064AFB40060AFB3005CAFB200582F
+:101FB000AFB10054AFBF006CAFB000508C900000C8
+:101FC0000080B0213C0208008C4200E896040032F8
+:101FD0008F83001C2414FF8030843FFF006218218F
+:101FE0000004218000641821007410243C13800038
+:101FF00000A0902190A50000AE620028920400325B
+:102000003C02800C3063007F00628821308400C075
+:10201000240200401482002D0000A8218E350038D3
+:102020008E2200181440000224020001AE22001883
+:102030009202003C304200201440000F00000000DB
+:102040000E00055700A020218F83001C006218217C
+:10205000306400783C02008000822025007418243F
+:10206000AE630800AE6408108E2200188E030008CC
+:1020700000431021AE2200188E22002C8E2300185F
+:10208000244200010062182B1060003D0000000097
+:102090009242000024420001A24200003C030800DA
+:1020A0008C6300F4304200FF50430001A240000066
+:1020B0000E000557924400008F90001C0202102170
+:1020C000005410240A0008B8AE62002492030032C3
+:1020D0002402FFC000431024304200FF14400005DA
+:1020E00024020001AE220018962200340A00082EB5
+:1020F0003055FFFF8E22001424420001AE2200184A
+:102100009202003000021600000216030441001C77
+:10211000000000009602003227A400100080282151
+:10212000A7A2001696020032000030212407000109
+:102130003042FFFFAF8200140E0006FBAFA0001C70
+:10214000960200328F83001C3C0408008C8400E857
+:1021500030423FFF00021180006418210062182104
+:1021600000741024AE62002C3063007F3C02800EAD
+:10217000006218219062000D3042007FA062000DC5
+:102180009222000D30420010504000789242000030
+:102190003C028008344401009482004C8EC300004D
+:1021A0003C130800967300C62442FFFFA482004C33
+:1021B000946200329623000E3054FFFF3070FFFF10
+:1021C0003C0308008C6300D000701807A7A30038F8
+:1021D0009482003E3063FFFF3042FFFF146200072D
+:1021E000000000008C8200303C038000244200305C
+:1021F000AC62003C0A0008568C82002C948200409D
+:102200003042FFFF5462000927A400408C8200384E
+:102210003C03800024420030AC62003C8C820034DD
+:10222000AC6200380A0008653C03800027A500382E
+:1022300027A60048026038210E000684A7A00048A7
+:102240008FA300403C02800024630030AC43003880
+:102250008FA30044AC43003C3C0380003C020005DB
+:10226000AC6200303C028008344401009482004299
+:10227000346304003042FFFF0202102B14400007B9
+:10228000AF8300309482004E9483004202021021FA
+:10229000004310230A00087B3043FFFF9483004E65
+:1022A0009482004202631821005010230062182318
+:1022B0003063FFFF3C028008344401009482003CFC
+:1022C0003042FFFF14430003000000000A00088BA7
+:1022D000240300019482003C3042FFFF0062102B77
+:1022E000144000058F8200309482003C006210236D
+:1022F0003043FFFF8F820030AC550000AC4000043B
+:10230000AC540008AC43000C3C0200063442001000
+:102310003C038000AC6200300000000000000000C0
+:10232000000000008C620000304200101040FFFDF1
+:102330003C04800834840100001018C20064182195
+:102340009065005432020007240600010046100484
+:1023500000451025A0620054948300429622000E8E
+:1023600050430001A386001892420000244200015D
+:10237000A24200003C0308008C6300F4304200FFDE
+:1023800050430001A24000000E0005579244000097
+:102390008F90001C2403FF800202102100431024B0
+:1023A0003C038000AC6200240E00055792440000FC
+:1023B000020280213210007F3C02800A020280214A
+:1023C000AED000008FBF006C8FB600688FB5006480
+:1023D0008FB400608FB3005C8FB200588FB100548F
+:1023E0008FB0005003E0000827BD007027BDFFD864
+:1023F000AFB3001CAFB20018AFB10014AFB0001003
+:10240000AFBF00200080982100E0802130B1FFFFA5
+:102410000E000D7130D200FF00000000000000002F
+:10242000000000008F82002CAC510000AC52000470
+:10243000AC530008AC40000CAC400010AC400014A1
+:10244000AC4000183C03080094634BFE0203802557
+:10245000AC50001C00000000000000000000000064
+:10246000240400018FBF00208FB3001C8FB200181E
+:102470008FB100148FB000100A000D9827BD0028FE
+:1024800030A5FFFF30C600FF24030C803C02800013
+:10249000AC43002400000000000000000000000029
+:1024A00000000000000000000A0008C90000000051
+:1024B0003C028008344301009462000E3C0808008E
+:1024C000950800C63046FFFF14C000043402FFFF29
+:1024D000946500DA0A00091F8F84001C10C20027CF
+:1024E000000000009462004E9464003C3045FFFF01
+:1024F00000A6102300A6182B3087FFFF10600004F1
+:102500003044FFFF00C5102300E210233044FFFFDA
+:102510000088102B1040000E00E810233C028008B9
+:10252000344401002403000134420080A443001617
+:102530002402FFFFA482000E948500DA8F84001C21
+:102540000000302130A5FFFF0A0008EE3C076020A4
+:102550000044102A104000093C02800834430080E7
+:102560009462001630420001104000043C028000DA
+:102570009442007E24420014A462001603E0000886
+:102580000000000027BDFFE03C028008AFBF001C38
+:10259000AFB0001834420100944300429442004C12
+:1025A000104000193068FFFF9383001824020001D7
+:1025B000146200298FBF001C3C06800834D0010043
+:1025C000000810C20050102190420054310300074F
+:1025D00034C70148304200FF00621007304200015A
+:1025E00034C9014E34C4012C34C5013E10400016DC
+:1025F00034C601420E0006C7AFA900109602004281
+:102600000A00093C3048FFFF3C02800834440100C6
+:1026100094830044948200421043000F8FBF001C3B
+:1026200094820044A482004294820050A482004E0E
+:102630008C820038AC82003094820040A482003E3C
+:102640009482004AA48200488FBF001C8FB00018FB
+:102650000A0008FA27BD00208FB0001803E0000828
+:1026600027BD002027BDFFA0AFB1004C3C1180006A
+:10267000AFBF0058AFB30054AFB20050AFB0004886
+:102680003626018890C200033044007FA3A40010C6
+:102690008E32018090C200003043007F240200038C
+:1026A0001062003BAF92001C28620004104000063C
+:1026B0002402000424020002106200098FBF0058A7
+:1026C0000A000B038FB300541062004B2402000574
+:1026D0001062014C8FBF00580A000B038FB30054E7
+:1026E000000411C0024210212404FF802442024051
+:1026F0000044102426430040AE2200243063007FB3
+:102700003C02800A006218219062003CAFA3003CAA
+:1027100000441025A062003C8FA3003C9062003C66
+:10272000304200401040016A8FBF00583C108008C2
+:10273000A3800018361001008E0200D08C63003494
+:1027400027A4003C27A50010004310210E0007B469
+:10275000AE0200D093A200103C038000A20200C58C
+:102760008C6202780440FFFE8F82001CAC62024043
+:1027700024020002A06202443C021000AC62027813
+:102780000E00092F000000000A000B028FBF005846
+:102790003C05800890C3000190A2000B1443014C3B
+:1027A0008FBF005834A400808C8200189082004CA7
+:1027B00090A200088C8300183C027FFF3442FFFF88
+:1027C000006218243C0208008C4200B4AC8300185C
+:1027D0003C038000244200013C010800AC2200B40C
+:1027E0008C6201F80440FFFE8F82001CAC6201C0C5
+:1027F0000A000ACA240200023C10800890C30001AB
+:102800009202000B144301328FBF005836050110AD
+:1028100027A400180E000E202406000327A4002879
+:10282000360501E00E000E20240600038FA20028CA
+:1028300036030100AE0200648FA2002CAE020068D5
+:102840008FA20030AE02006C93A40018906300C504
+:102850002402FF800082102400431025305000FF26
+:102860003084007F3202007F0082102A5440000131
+:102870003A1000800E0005570000000002421021AF
+:102880002403FF8000431024AE22009493A4001878
+:102890003C130800927300F70E0005573084007F48
+:1028A000024210213042007F3C0380060043402159
+:1028B0008FA3001C2402FFFF10620034AFA8004069
+:1028C00093A2001995030014304400FF3063FFFF0A
+:1028D0000064182B10600010000000009504001424
+:1028E0008D07001C8D0600183084FFFF0044202354
+:1028F0000004210000E438210000102100E4202B16
+:1029000000C2302100C43021AD07001CAD06001804
+:102910000A000A2393A20019950400148D07001CD5
+:102920008D0600183084FFFF008220230004210060
+:10293000000010210080182100C2302300E4202B69
+:1029400000C4302300E33823AD07001CAD06001897
+:1029500093A200198FA30040A462001497A2001A4A
+:10296000A46200168FA2001CAC6200108FA2001C93
+:10297000AC62000C93A20019A462002097A2001A76
+:10298000A46200228FA2001CAC6200243C048008D8
+:10299000348300808C6200388FA2002002008821DE
+:1029A000AC62003C8FA20020AC82000093A2001811
+:1029B000A062004C93A20018A0820009A0600068E9
+:1029C00093A200181051005293A400183230007FD7
+:1029D0000E00055702002021024210212407FF802B
+:1029E0003046007F3C03800000471024AC62009416
+:1029F0003C02800600C2302190C2003CAFA60040DD
+:102A00000000202100471025A0C2003C8FA80040F4
+:102A100095020002950300148D07001C3042FFFF51
+:102A20003063FFFF8D0600180043102300021100E1
+:102A300000E2382100E2102B00C4302100C2302116
+:102A4000AD07001CAD06001895020002A502001497
+:102A5000A50000168D020008AD0200108D020008CE
+:102A6000AD02000C95020002A5020020A500002284
+:102A70008D020008AD0200249102003C304200406B
+:102A80001040001A26220001A3B000383C10800834
+:102A9000A3800018361001008E0200D08D03003490
+:102AA00027A4004027A50038004310210E0007B4DA
+:102AB000AE0200D093A200383C038000A20200C501
+:102AC0008C6202780440FFFE8F82001CAC620240E0
+:102AD00024020002A06202443C021000AC620278B0
+:102AE0000E00092F00000000262200013043007F65
+:102AF00014730004004020212403FF8002231024CB
+:102B00000043202693A200180A000A3F309100FFDC
+:102B10008FA3001C2402FFFF1062000A309000FF08
+:102B200024820001248300013042007F14530005F9
+:102B3000307000FF2403FF80008310240043102620
+:102B4000305000FF3C0280089042000802008821BB
+:102B5000305000FF123000193222007F000211C0F5
+:102B600002421021244202402403FF800043182423
+:102B70003C048000AC8300943042007F3C0380061C
+:102B8000004310218C43000C004020211060000BFA
+:102B9000AFA200400E0005690000000026230001DE
+:102BA0002405FF803062007F145300020225202498
+:102BB000008518260A000AA3307100FF3C04800833
+:102BC000348400808C8300183C027FFF3442FFFF76
+:102BD00000621824AC8300183C0380008C6201F86A
+:102BE0000440FFFE00000000AC7201C0240200029D
+:102BF000A06201C43C021000AC6201F80A000B02A2
+:102C00008FBF00583C04800890C300019082000BE5
+:102C10001443002F8FBF00583490008092020008A8
+:102C200030420040104000200000000092020008E6
+:102C30000002160000021603044100050240202194
+:102C40000E000EA5240500930A000B028FBF00584A
+:102C50009202000924030018304200FF1443000DC3
+:102C600002402021240500390E000E3D00003021D5
+:102C70000E0003158F84001C8F82FFAC240300120A
+:102C8000A04300090E0003208F84001C0A000B02E1
+:102C90008FBF0058240500360E000E3D0000302185
+:102CA0000A000B028FBF00580E00031502402021BE
+:102CB000920200058F84001C344200200E00032085
+:102CC000A20200050E00104C8F84001C8FBF00581C
+:102CD0008FB300548FB200508FB1004C8FB00048BA
+:102CE00024030C803C02800027BD006003E0000844
+:102CF000AC43002427BDFFE83C028008AFB00010C1
+:102D0000AFBF0014344501003C1080008E0201402A
+:102D100094A3000E0000302100402021AF82001C4F
+:102D20003063FFFF3402FFFF106200063C076020A3
+:102D30002402FFFFA4A2000E94A500DA0E0008EE04
+:102D400030A5FFFF24020C80AE0200248FBF0014C8
+:102D50008FB0001003E0000827BD001827BDFFC09A
+:102D60003C0980003C058008AFB70034AFB20020BA
+:102D7000AFBF0038AFB60030AFB5002CAFB40028FD
+:102D8000AFB30024AFB1001CAFB000183532010062
+:102D900034A801008D2701008E4200148D0300D459
+:102DA0000000B821A38000180043102318400055EC
+:102DB000AF87001C8E4200142403FF8024E40040EF
+:102DC000AD0200D490A60008910500C53084007FB4
+:102DD00030D3007F30A200FF000211C000E21021BA
+:102DE00024420240A3A50010004310248D1400D0FB
+:102DF0008D1500D4AD22002493A300103C02800A5C
+:102E000000822021AFA40014107300330000B02111
+:102E10008FA3001427A4001427A500108C6200348F
+:102E20000282802102B010230440002B2411FF8075
+:102E30009062003C02221024304200FF1440001B2C
+:102E40000200A0219062003C34420040A062003C9D
+:102E500093A2001024420001304300FFA3A20010FF
+:102E60003C0208008C4200F450620001A3A0001054
+:102E70000E00055793A400108F90001C3C038000A7
+:102E80000202102100511024AC6200240E000557EC
+:102E900093A40010020280213210007F3C02800ABD
+:102EA000020280210A000B81AFB000140E0007B4AB
+:102EB000000000003C02800834420100AC5000D009
+:102EC00093A3001024160001A04300C593A2001094
+:102ED0001453FFD08FA300142402000116C200096E
+:102EE0003C0380008C6202780440FFFE8F82001C4D
+:102EF000AC62024024020002A06202443C021000C4
+:102F0000AC6202789242000B24030002304200FFC0
+:102F1000144300720000000096420008304300FF96
+:102F20002402008214620040240200843C028000DB
+:102F3000344901008D22000C952300060002160280
+:102F40003063FFFF3044003F240200271082000F4F
+:102F5000AF830014288200281040000824020031AA
+:102F6000240200211082000924020025108200079B
+:102F7000938200190A000BC00000000010820007B5
+:102F8000938200190A000BC0000000000E00076CBD
+:102F9000012020210A000C40000000003C038000BA
+:102FA0008C6202780440FFFE8F82001CAC620240FB
+:102FB00024020002A06202443C021000AC620278CB
+:102FC0000A000C4000000000952300069124000533
+:102FD0008D25000C8D2600108D2700188D28001CD3
+:102FE0008D290020244200013C010800A4234BD27B
+:102FF0003C010800A0244BD13C010800AC254BD873
+:103000003C010800AC264BDC3C010800AC274BE43B
+:103010003C010800AC284BE83C010800AC294BEC13
+:103020000A000C40A38200191462000A24020081E5
+:103030003C02800834420100944500DA92460005C3
+:103040008F84001C30A5FFFF30C600FF0A000C0172
+:103050003C0760211462005C000000009242000AFC
+:10306000304300FF30620020104000073062004013
+:103070003C02800834420100944500DA8F84001C31
+:103080000A000BFF24060040104000070003160052
+:103090003C02800834420100944500DA8F84001C11
+:1030A0000A000BFF240600410002160304410046FB
+:1030B0003C02800834420100944500DA8F84001CF1
+:1030C0002406004230A5FFFF3C0760190E0008EE01
+:1030D000000000000A000C40000000009242000BBB
+:1030E00024040016304200FF104400063C06800015
+:1030F0009242000B24030017304200FF14430032B9
+:103100000000000034C5010090A2000B304200FF17
+:103110001444000B000080218CA200208CA400200D
+:103120002403FF8000431024000211403084007FFC
+:10313000004410253C03200000431025ACC2083099
+:1031400094A20008000214000002140304420001CB
+:103150002410000194A20008304200805040001A60
+:103160000200B82194A2000830422000504000160E
+:103170000200B8218CA300183C021C2D344219ED2A
+:10318000106200110200B8213C0208008C4200D4F9
+:10319000104000053C028008240300043442010072
+:1031A000A04300EC3C02800834420100944500DA60
+:1031B0008F84001C2406000630A5FFFF0E0008EED9
+:1031C0003C0760210200B8210E00092F000000001A
+:1031D0009242000A30420008104000043C02800085
+:1031E0000E00121F000000003C02800024030C802F
+:1031F000AC4300248FBF003802E010218FB60030AE
+:103200008FB700348FB5002C8FB400288FB3002403
+:103210008FB200208FB1001C8FB0001803E00008AF
+:1032200027BD00402402FF80008220243C02900041
+:1032300034420007008220253C028000AC4400207C
+:103240003C0380008C6200200440FFFE0000000070
+:1032500003E00008000000003C0380002402FF801F
+:10326000008220243462000700822025AC64002004
+:103270008C6200200440FFFE0000000003E0000814
+:10328000000000003C0280082403000534420100D5
+:10329000A04300EC3C0280008C4201003C03800013
+:1032A000AF82001C8C6202780440FFFE8F82001CFB
+:1032B000AC62024024020002A06202443C02100000
+:1032C000AC62027803E000080000000027BDFFE8C0
+:1032D0003C068000AFBF001034C5010094A2000876
+:1032E000304400FF38830082388200842C63000160
+:1032F0002C42000100621825106000302402008377
+:1033000093820019504000398FBF00103C02080022
+:1033100090424BD88CC401003C07080094E74BD284
+:103320003046003F38C3003238C2003F2C630001F2
+:103330002C42000100621825AF84001CAF870014E6
+:10334000A38000191460000600A0202124020020A0
+:1033500014C200113402FFFF14E2000F000000004D
+:103360002402002014C20005000000008CA30014F9
+:103370002402FFFF1062000A000000003C04080065
+:1033800024844BCC000030210E0006FB24070001F2
+:103390000A000CB6000000000E00076C00000000E0
+:1033A0000E00092F0000000024030C803C02800066
+:1033B000AC4300240A000CEF8FBF001014820006FB
+:1033C0002482FF808CC301043C026020AC430014C3
+:1033D0000A000CEF8FBF0010304200FF2C420002A9
+:1033E00010400004240200228FBF00100A000B25A9
+:1033F00027BD0018148200038FBF00100A000C6F55
+:1034000027BD00183C0208008C4200201040001D1F
+:103410002402001890A3000914620003240200167D
+:103420000A000CDB240300081462000724020017C2
+:10343000240300123C02800834420080A0430009AB
+:103440000A000CE894A700085462000794A700083B
+:103450008F82FFAC2404FFFE904300050064182413
+:10346000A043000594A7000890A6001B8CA40000B0
+:1034700094A500068FBF001000073C000A0008C991
+:1034800027BD001803E0000827BD00183C05080010
+:1034900094A54C0A3C0308008C634C143C04800047
+:1034A00030A2FFFF000230C02402FFF000C210244F
+:1034B00000621821AC83003C3C0208008C424C1096
+:1034C0003C038000AC8200383C02005034420010C3
+:1034D000AC620030000000000000000000000000AE
+:1034E0008C620000304200201040FFFD30C2000816
+:1034F000104000093C0280008C6204088C63040CBC
+:103500003C010800AC224C003C010800AC234C04F8
+:103510000A000D1B3C0300208C4304008C42040471
+:103520003C010800AC234C003C010800AC224C04D8
+:103530003C0300203C028000AC4300303C0780008C
+:103540008CE20030004310241440FFFD0000000016
+:103550003C03080094634C083C02080094424C0C65
+:103560003C06080094C64C0E24A5000100621821F8
+:1035700030A4FFFF3C020040ACE200303C010800F8
+:10358000A4234C083C010800A4254C0A148600031F
+:10359000000000003C010800A4204C0A03E00008E1
+:1035A0000000000027BDFFE83C04080024844BF025
+:1035B0003C05800AAFBF00100E000E202406000A52
+:1035C0003C02080094424BF23C03080094634C0E0A
+:1035D0003042000F244200030043180424027FFFFE
+:1035E0000043102B10400002AF8300280000000DA4
+:1035F0000E000CF1000000003C02080094424BF465
+:103600003C03080094634BFA8FBF00103042000F58
+:10361000000215000062182527BD00183C0280003A
+:1036200003E00008AC4300A03C02800A944300067B
+:103630003C02080094424BFA3C010800A4234BF6DC
+:10364000004310238F8300283042FFFF0043102BDC
+:1036500003E000083842000127BDFFE8AFBF0010BB
+:103660003C02800A944200063C010800A4224BF66A
+:103670000E000D58000000005440FFFA3C02800A82
+:103680008FBF001003E0000827BD001827BDFFE82A
+:10369000AFBF00100E000D580000000010400003E6
+:1036A000000000000E000D64000000003C02080055
+:1036B0008C424C003C0380008FBF0010AC6200388D
+:1036C0003C0208008C424C043464040027BD0018FE
+:1036D000AC62003C3C020005AC620030AF84002CC0
+:1036E00003E00008AF8000248F8200243C03000622
+:1036F00000021140004310253C038000AC62003002
+:103700000000000000000000000000008C620000CB
+:10371000304200101040FFFD34620400AF82002CE4
+:1037200003E00008AF8000243C0608008CC64C046F
+:103730008F8500248F83002C3C02080094424BFAB2
+:1037400027BDFFE024A500012463002024420001DE
+:1037500024C70020AFB10014AFB00010AFBF0018F5
+:10376000AF850024AF83002C3C010800A4224BFA53
+:10377000309000FF3C010800AC274C0404C1000855
+:103780000000882104E00006000000003C02080060
+:103790008C424C00244200013C010800AC224C0049
+:1037A0003C04080094844C083C02080094424BFA04
+:1037B0002E030001004410262C440001008318242D
+:1037C000106000040010102B24020001AF820020C2
+:1037D0000010102B00821025144000068F8200205C
+:1037E000144000048F830024240200101462000F90
+:1037F000000000000E000D88241100013C030800A9
+:1038000094634BFA3C02080094424C081462000393
+:10381000000000000E000CF1000000001600000384
+:10382000000000000E000D71000000003C030800C5
+:1038300094634BFE3C02080094424BFC246300015D
+:103840003064FFFF3C010800A4234BFE14820003F8
+:10385000000000003C010800A4204BFE1200000BF9
+:10386000000000003C02080094424BF43C030800B6
+:1038700094634BFA00021500006218253C02800098
+:10388000AC4300A00A000DF7AF8000200E000D58D9
+:103890000000000010400004022010210E000D6402
+:1038A00000000000022010218FBF00188FB100140B
+:1038B0008FB0001003E0000827BD002003E00008DF
+:1038C000000000008F8200343C030006000211401B
+:1038D000004310253C038000AC6200300000000073
+:1038E00000000000000000008C6200003042001068
+:1038F0001040FFFD34620400AF82003003E0000896
+:10390000AF80003403E000080000102103E000084D
+:10391000000000003084FFFF30A5FFFF00001821E9
+:1039200010800007000000003082000110400002FB
+:1039300000042042006518210A000E1600052840E8
+:1039400003E000080060102110C0000624C6FFFF3D
+:103950008CA2000024A50004AC8200000A000E2006
+:103960002484000403E000080000000010A0000808
+:1039700024A3FFFFAC860000000000000000000050
+:103980002402FFFF2463FFFF1462FFFA2484000473
+:1039900003E00008000000003C0280083442008080
+:1039A00024030001AC43000CA4430010A443001204
+:1039B000A443001403E00008A443001627BDFFD869
+:1039C000248200802407FF803043007FAFB00010C6
+:1039D00000808021004720243C0208008C42002007
+:1039E0003C08800EAFB3001CAFB20018AFB100149A
+:1039F000AFBF00203C0980000068182130B100FFF3
+:103A000030D200FF1040002900009821260201005A
+:103A1000AD24002C004728243042007F004820219C
+:103A20009062000024030050304200FF1443000461
+:103A300000000000AD25002C948200DA3053FFFF17
+:103A40000E000D71000000003C03080094634BFE63
+:103A50008F82002C00112C0000A3282500122400C6
+:103A60003C0340003484000100A32825AC50000032
+:103A70008FBF0020AC4000048FB20018AC53000888
+:103A80008FB10014AC40000C8FB3001CAC4400108C
+:103A90008FB00010AC40001424040001AC400018AA
+:103AA00027BD00280A000D98AC45001C8FBF0020E0
+:103AB0008FB3001C8FB200188FB100148FB00010AC
+:103AC00003E0000827BD00283C06800034C2010046
+:103AD0009043000F240200101062000E28650011B0
+:103AE00010A0000724020012240200082405003A56
+:103AF000106200060000302103E000080000000012
+:103B0000240500351462FFFC000030210A000E3D40
+:103B1000000000008CC200748F83FFAC24420FA011
+:103B200003E00008AC62000C27BDFFE8AFBF001047
+:103B30000E000325240500013C0480088FBF0010FF
+:103B40002402000134830080A462001227BD001803
+:103B50002402000103E00008A080001A27BDFFE056
+:103B6000AFB20018AFB10014AFB00010AFBF001C6F
+:103B700030B2FFFF0E000315008088213C02800850
+:103B8000345000809202000924030004304200FFF8
+:103B90001443000C3C028008124000082402000A72
+:103BA0000E000E3400000000920200052403FFFE08
+:103BB00000431024A202000524020012A202000900
+:103BC0003C02800834420080022020210E000320A5
+:103BD000A040002716400003022020210E000E986E
+:103BE0000000000002202021324600FF8FBF001C91
+:103BF0008FB200188FB100148FB000102405003868
+:103C00000A000E3D27BD002027BDFFE0AFBF001C0E
+:103C1000AFB20018AFB10014AFB000100E00031522
+:103C2000008080210E000E34000000003C0280085D
+:103C30003445008090A2000924120018305100FF82
+:103C4000123200030200202124020012A0A2000967
+:103C500090A200052403FFFE004310240E00032061
+:103C6000A0A2000502002021240500201632000732
+:103C7000000030218FBF001C8FB200188FB10014DC
+:103C80008FB000100A00032527BD00208FBF001C45
+:103C90008FB200188FB100148FB0001024050039C6
+:103CA0000A000E3D27BD002027BDFFE83C02800032
+:103CB000AFB00010AFBF0014344201009442000CBA
+:103CC000240500360080802114400012304600FF99
+:103CD0000E000315000000003C0280083442008002
+:103CE00024030012A0430009904300053463001030
+:103CF0000E000E34A04300050E0003200200202118
+:103D0000020020210E000325240500200A000F15C3
+:103D1000000000000E000E3D000000000E00031524
+:103D2000020020213C0280089043001B2405FF9FD5
+:103D300002002021006518248FBF00148FB00010EE
+:103D4000A043001B0A00032027BD001827BDFFE089
+:103D5000AFBF0018AFB10014AFB0001030B100FF1A
+:103D60000E000315008080213C028008240300120D
+:103D7000344200800E000E34A04300090E000320E0
+:103D80000200202102002021022030218FBF0018D4
+:103D90008FB100148FB00010240500350A000E3DCD
+:103DA00027BD00203C0480089083000E9082000A0A
+:103DB0001443000B000028218F82FFAC2403005025
+:103DC0002405000190420000304200FF144300042B
+:103DD000000000009082000E24420001A082000E2C
+:103DE00003E0000800A010213C0380008C6201F871
+:103DF0000440FFFE24020002AC6401C0A06201C4C2
+:103E00003C02100003E00008AC6201F827BDFFE0AF
+:103E1000AFB200183C128008AFB10014AFBF001C55
+:103E2000AFB0001036510080922200092403000A2E
+:103E3000304200FF1443003A000000008E430004AB
+:103E40008E2200385062007E8FBF001C922200003C
+:103E500024030050304200FF144300253C02800040
+:103E60008C4201408E43000436420100022028218A
+:103E7000AC43001C9622005C8E2300383042FFFFCA
+:103E80000002104000621821AE23001C8E43000483
+:103E90008E2400389622005C006418233042FFFF15
+:103EA00000031843000210400043102A104000068F
+:103EB000000000008E4200048E23003800431023CF
+:103EC0000A000F83000220439622005C3042FFFF6D
+:103ED000000220403C02800834430100344200804C
+:103EE000ACA4002CA040002424020001A062000C1D
+:103EF0000E000F3700000000104000518FBF001C63
+:103F00003C0280008C4401408FBF001C8FB200181F
+:103F10008FB100148FB000100A000F4827BD002099
+:103F20009222000924030010304200FF14430004D1
+:103F30003C0280008C4401400A000FC5000028218B
+:103F40009222000924030016304200FF14430006A9
+:103F500024020014A22200093C0280008C4401408B
+:103F60000A000FD88FBF001C8E2200388E23003C21
+:103F700000431023044100328FBF001C922200270F
+:103F800024420001A2220027922200273C030800BD
+:103F90008C630048304200FF144300163C10800040
+:103FA0009222000924030004304200FF1443000958
+:103FB0003C0280008C4401408FBF001C8FB200186F
+:103FC0008FB100148FB00010240500930A000EA5D5
+:103FD00027BD00208C440140240500938FBF001CA6
+:103FE0008FB200188FB100148FB000100A000F219B
+:103FF00027BD00208E0401400E00031500000000C4
+:104000008E4200042442FFFFAE4200048E22003C98
+:104010002442FFFFAE22003C0E0003208E0401402C
+:104020008E0401408FBF001C8FB200188FB10014A6
+:104030008FB00010240500040A00032527BD0020CE
+:104040008FB200188FB100148FB0001003E0000889
+:1040500027BD00203C0680008CC201883C038008FC
+:10406000346500809063000E00021402304400FFAB
+:10407000306300FF1464000E3C02800890A200260A
+:10408000304200FF104400098F82FFACA0A400263C
+:104090002403005090420000304200FF1443000609
+:1040A000000000000A00058C8CC401803C028008DE
+:1040B00034420080A044002603E000080000000015
+:1040C00027BDFFE030E700FFAFB20018AFBF001C14
+:1040D000AFB10014AFB000100080902114E00006D2
+:1040E00030C600FF000000000000000D00000000CE
+:1040F0000A001037240001173C0380089062000E6C
+:10410000304200FF144600233462008090420026B3
+:10411000304200FF1446001F000000009062000FB4
+:10412000304200FF1446001B000000009062000AAD
+:10413000304200FF144600038F90FFAC0000000DDA
+:104140008F90FFAC8F82FFB03C118000AE05003C29
+:10415000AC450000A066000A0E0003158E24010085
+:10416000A20000240E0003208E2401003C038000E6
+:104170008C6201F80440FFFE24020002AC7201C010
+:10418000A06201C43C021000AC6201F80A001038C1
+:104190008FBF001C000000000000000D00000000A8
+:1041A000240001408FBF001C8FB200188FB1001493
+:1041B0008FB0001003E0000827BD00208F83FFAC04
+:1041C0003C0280008C440100344201008C65003CBC
+:1041D0009046001B0A000FFE240700013C028008E5
+:1041E0009043000E9042000A00431026304200FF28
+:1041F00003E000080002102B27BDFFE03C0280080E
+:10420000AFB10014AFB00010AFBF00183450008041
+:104210009202000524030030304200301443008431
+:10422000008088213C0208008C4200201040008160
+:104230008FBF00180E000D71000000008F86002C4B
+:10424000ACD100009202000892030009304200FF46
+:1042500000021200306300FF00431025ACC20004CE
+:104260009202004D000216000002160304410005F0
+:10427000000000003C0308008C6300480A00107630
+:104280003C108008920200083042004014400003B5
+:104290000000182192020027304300FF3C108008E4
+:1042A000361100809222004D00031E003C050800DC
+:1042B00094A54BFE304200FF000214000062182556
+:1042C000ACC300088E2300303C02C00B00A228259E
+:1042D000ACC3000C8E22003400002021ACC20010C0
+:1042E0008E220038ACC200148E22003CACC20018F2
+:1042F0000E000D98ACC5001C8E0200048F84002CAB
+:104300003C058000AC8200008E220020AC820004BC
+:104310008E22001CAC8200088E2200588CA30074F0
+:1043200000431021AC82000C8E22002CAC820010C5
+:104330008E2200408E23004400021400004310250A
+:10434000AC8200149222004D24030080304200FF12
+:1043500014430003000000000A0010B8AC800018ED
+:104360008E23000C240200011062000E2402FFFFC5
+:1043700092220008304200401440000A2402FFFF4D
+:104380008E23000C8CA20074006218233C020800EB
+:10439000006210241440000200002821006028213F
+:1043A00000051043AC8200183C02080094424BFE0A
+:1043B0003C03C00C00002021004310258F83002CFB
+:1043C0000E000D98AC62001C3C0480083482010091
+:1043D0008C4200008F83002C348400803C0608004F
+:1043E00094C64BFEAC620000AC6000048C850048B3
+:1043F0003C02400D00C23025AC650008AC60000CEA
+:10440000AC600010908200058FBF00188FB10014BF
+:1044100000021600AC6200148FB00010AC600018EF
+:1044200024040001AC66001C0A000D9827BD002082
+:104430008FBF00188FB100148FB0001003E0000888
+:1044400027BD00203C0280009443007C3C02800891
+:1044500034460100308400FF3065FFFF2402000570
+:1044600024A34650A0C4000C5482000C3065FFFF0A
+:1044700090C2000D2C4200071040000724A30A0040
+:1044800090C3000D240200140062100400A2102149
+:104490000A0010F53045FFFF3065FFFF3C02800841
+:1044A0003442008003E00008A44500143C03800867
+:1044B00034680080AD050038346701008CE2001CD0
+:1044C000308400FF00A210231840000330C600FF14
+:1044D00024A2FFFCACE2001C308200015040000826
+:1044E0003C0380088D02003C00A21023044100120E
+:1044F000240400058C62000410A2000F3C03800815
+:104500008C62000414A20018000000003C020800A5
+:104510008C4200D830420020104000093C02800844
+:1045200034620080906300089042004C1443000401
+:104530003C028008240400040A0010DF0000000090
+:104540003443008034420100A040000C24020001EA
+:10455000A462001410C000043C0280008C440100DE
+:104560000A000F480000000003E0000800000000FF
+:1045700027BDFFE800A61823AFBF00101860004E4B
+:10458000308800FF3C02800834470080A0E000240F
+:1045900034440100A0E000278C82001C00A21023FC
+:1045A0000440002B000000008CE2003C94E3005C1F
+:1045B0008CE4002C004530233063FFFF00C318213A
+:1045C0000083202B1080000400E018218CE2002CD6
+:1045D0000A00114800A2102194E2005C3042FFFF63
+:1045E00000C2102100A21021AC62001C3C02800815
+:1045F0003447008094E2005C8CE3001C3042FFFFF3
+:104600000002104000A210210043102B10400003B4
+:10461000000000000A0011598CE2001C94E2005CCA
+:104620003042FFFF0002104000A21021ACE2001C4B
+:104630003C028008344201008FBF0010010020219D
+:1046400024060001A040000C0A0010F927BD001844
+:104650008CE2001C004610230043102B5440000144
+:10466000ACE5001C94E2005C3042FFFF0062102BBE
+:10467000144000072402000294E2005C8CE3001C5A
+:104680003042FFFF00621821ACE3001C240200024C
+:10469000ACE500380E000F37A082000C1040001867
+:1046A0008FBF00103C0280008C4401008FBF0010BF
+:1046B0000A000F4827BD00183102001010400010FA
+:1046C0008FBF00103C028008344500808CA3001C82
+:1046D00094A2005C006618233042FFFF006218219C
+:1046E0003C023FFF3444FFFF0083102B5440000185
+:1046F0000080182100C31021ACA2001C8FBF001045
+:1047000003E0000827BD001827BDFFE800C04021D6
+:1047100000A63023AFBF001018C00026308A00FF6B
+:104720003C028008344900808D24001C8D23002C1D
+:10473000008820230064182B1060000F344701000C
+:104740008CE2002000461021ACE200208CE2002028
+:104750000044102B1440000B3C023FFF8CE2002071
+:1047600000441023ACE200209522005C3042FFFFA1
+:104770000A0011AE00822021ACE00020008620213A
+:104780003C023FFF3443FFFF0064102B5440000104
+:10479000006020213C0280083442008000851821FE
+:1047A000AC43001CA0400024A04000270A0011FDDB
+:1047B0008FBF001031420010104000408FBF00102A
+:1047C0003C06800834C400808C82003C00481023E2
+:1047D0005840003B014020219082002424420001E7
+:1047E000A0820024908200243C0308008C630024F3
+:1047F000304200FF0043102B544000348FBF0010A4
+:1048000034C201008C42001C00A210231840002F6B
+:104810008FBF00108CC300049482005C00681823D2
+:104820003042FFFF00031843000210400043102AEB
+:1048300010400005000000008CC200040048102356
+:104840000A0011E3000210439482005C3042FFFF33
+:10485000000210403C068008AC82002C34C5008069
+:1048600094A2005C8CA4002C94A3005C3042FFFF57
+:1048700000021040008220213063FFFF00832021CE
+:1048800001041021ACA2001C8CC2000434C601003B
+:10489000ACC2001C240200020E000F37A0C2000CA4
+:1048A0001040000A8FBF00103C0280008C440100C1
+:1048B0008FBF00100A000F4827BD001801402021BB
+:1048C000240600010A0010F927BD001803E00008C3
+:1048D00027BD00183C098008352A00808D42003C25
+:1048E000308300FF352B01000046102330E700FF26
+:1048F000184000060060202124020001A160000C85
+:10490000A160000D0A001190A542001424020005C8
+:10491000352901000000302114E20008A1400027E1
+:104920009122000D2C4200061040000400000000FF
+:104930009122000D24420001A122000D0A0010F96D
+:10494000000000003C0380083C028000344201006B
+:1049500034640080346301009045000A8C480014E0
+:104960008C8900389062000C30AA00FF01281823BF
+:10497000304700FF1C60000E2CE4000624020001FA
+:1049800000E210041080000A30430003014020219F
+:10499000010028210120302114600007304B000C59
+:1049A000156000073042003014400007000000008E
+:1049B00003E00008000000000A0011900000000061
+:1049C0000A00112A000000000A0012030000000083
+:1049D0003C0380083464010024020003A082000C20
+:1049E0008C62000403E00008AC82001C3C058008D7
+:1049F00034A300809062002734A501002406004300
+:104A000024420001A0620027906300273C020800B6
+:104A10008C420048306300FF146200043C076021B0
+:104A200094A500DA0A0008EE30A5FFFF03E00008B5
+:104A30000000000027BDFFE8AFBF00103C0280006F
+:104A40000E0012498C4401803C028008344301006E
+:104A5000A060000C8C4200048FBF001027BD00181E
+:104A600003E00008AC62001C27BDFFE03C028008A8
+:104A7000AFBF0018AFB10014AFB0001034450080D4
+:104A8000344601003C0880008D09014090C3000CB1
+:104A90008CA4003C8CA2003814820038306700FFE0
+:104AA0009502007C90A30027146000093045FFFFA9
+:104AB0002402000554E200083C04800890C2000D66
+:104AC00024420001A0C2000D0A0012843C048008A8
+:104AD000A0C0000D3C048008348201009042000C0C
+:104AE00024030005304200FF1443000A24A205DC21
+:104AF00034830080906200272C420007504000055C
+:104B000024A20A009063002724020014006210040B
+:104B100000A210213C108008361000803045FFFFB5
+:104B2000012020210E001249A60500149602005C07
+:104B30008E0300383C1180003042FFFF000210401D
+:104B400000621821AE03001C0E0003158E240140E4
+:104B50009202002534420040A20200250E000320EC
+:104B60008E2401408E2401408FBF00188FB10014A5
+:104B70008FB000100A000F4827BD00208FBF00181B
+:104B80008FB100148FB0001003E0000827BD002093
+:104B90008008010080080080800800008008024032
+:104BA00008000EF008000F4808000F8C08001020C5
+:104BB0000800106480080100800800808008000060
+:104BC0000A00002000000000000000000000000DAE
+:104BD0006370342E362E31370000000004061104B5
+:104BE00000000000000000000000000000000000C5
+:104BF0000000000038003C00000000000000000041
+:104C00000000000000000000000000200000000084
+:104C10000000000000000000000000000000000094
+:104C20000000000000000000000000000000000084
+:104C30000000000021003800000000010000002BEF
+:104C40000000000010000003000000000000000D44
+:104C50000000000D3C020800244255C43C0308003B
+:104C6000246357F4AC4000000043202B1480FFFD68
+:104C7000244200043C1D080037BD9FFC03A0F02126
+:104C80003C100800261000803C1C0800279C55C4DE
+:104C90000E00026A000000000000000D00A01821B4
+:104CA00000801021008028213C0460003C07600047
+:104CB0002406000810600006348420788C4200002E
+:104CC000ACE220088C63000003E00008ACE3200C99
+:104CD0000A000E1C00000000240300403C0260009B
+:104CE00003E00008AC4320003C0760008F86000012
+:104CF0008CE520740086102100A2182B1460000798
+:104D0000000028218F8AFDEC24050001A144001336
+:104D10008F89000001244021AF88000003E00008D3
+:104D200000A010218F84FDEC8F8500009086001379
+:104D300030C300FF00A31023AF82000003E000088F
+:104D4000A08000138F84FDEC27BDFFE8AFB00010FA
+:104D5000AFBF001490890011908700112402002831
+:104D6000312800FF3906002830E300FF2485002C9D
+:104D70002CD00001106200162484001C0E000037A5
+:104D8000000000008F8FFDEC3C056000240202044F
+:104D900095EE003E95ED003C000E5C0031ACFFFF4F
+:104DA000016C5025ACAA201052000001240200041E
+:104DB000ACA2200000000000000000000000000085
+:104DC0008FBF00148FB0001003E0000827BD00184B
+:104DD0000A00006F000028218F85FDEC27BDFFD859
+:104DE000AFBF0020AFB3001CAFB20018AFB10014CA
+:104DF000AFB000100080982190A4001124B0001CD6
+:104E000024B1002C308300FF386200280E000059C6
+:104E10002C5200010E000061000000000200202161
+:104E20001240000202202821000028210E00003735
+:104E3000000000008F8DFDEC3C0880003C05600008
+:104E400095AC003E95AB003C02683025000C4C0050
+:104E5000316AFFFF012A3825ACA720102402020284
+:104E6000ACA6201452400001240200028FBF002093
+:104E70008FB3001C8FB200188FB100148FB00010D8
+:104E800027BD002803E00008ACA2200027BDFFE0FA
+:104E9000AFB20018AFB10014AFB00010AFBF001C2C
+:104EA0003C1160008E2320748F82000030D0FFFF01
+:104EB00030F2FFFF1062000C2406008F0E00003756
+:104EC000000000003C06801F0010440034C5FF00B5
+:104ED0000112382524040002AE27201000003021E2
+:104EE000AE252014AE2420008FBF001C8FB2001806
+:104EF0008FB100148FB0001000C0102103E0000833
+:104F000027BD002027BDFFE0AFB0001030D0FFFF6D
+:104F1000AFBF0018AFB100140E00003730F1FFFF33
+:104F200000102400009180253C036000AC7020102C
+:104F30008FBF00188FB100148FB00010240200043E
+:104F4000AC62200027BD002003E000080000102113
+:104F500027BDFFE83C0C6018AFBF00108D985000D3
+:104F60002419FF7F3C0880000319782435EE380CA3
+:104F7000340D8071240A003124090C00AD8E5000DC
+:104F80003C0B800AAD8D53BCAD0A0008AD0900246E
+:104F90000E00048DAF8B002C0E00044B00000000AF
+:104FA0000E000046000000003C0760008CE5080889
+:104FB0002406FFF03C03570900A620243462F000C9
+:104FC00010820048241F0001AF8000380E000BAE95
+:104FD000000000003C0660168CC700003C0860140E
+:104FE0008D0500A03C03FFFF00E320243C02535347
+:104FF00000051FC21082003534C57C0094A201F266
+:10500000A780005010400003A7800060384C1E1E8F
+:10501000A78C005094A201F8104000048F8E003835
+:10502000384D1E1EA78D00608F8E003811C0000401
+:1050300097840060240F0020A78F005097840060A1
+:105040002C980081530000012404008097850050B3
+:105050002CB9040153200001240504003C03600026
+:105060008C670438241F103C30E2FFFF105F000300
+:105070003088FFFF5100000B24060050A38000621F
+:10508000938900621120000B8FBF001027BD00180C
+:10509000A7800060A7800050A780005803E00008A8
+:1050A000A7800076A3860062938900621520FFF72F
+:1050B0008FBF001027BD0018A7840060A78500508F
+:1050C000A780005803E00008A780007600035880FE
+:1050D000016650218D4900043C0660000A00010F62
+:1050E000012628210A000103AF9F00383083FFFF0B
+:1050F0008F88002C8F870028000321403C0580000A
+:105100003C020050008248253C0660003C0A010039
+:1051100034AC04008CCD08E001AA582411600005CD
+:10512000000000008CCF08E024E7000101EA7025B0
+:10513000ACCE08E08D19001001805821ACB90038C0
+:105140008D180014ACB8003CACA900300000000081
+:10515000000000000000000000000000000000004F
+:105160000000000000000000000000003C03800080
+:105170008C640000308200201040FFFD3C0F600076
+:105180008DED08E03C0E010001AE18241460FFE133
+:1051900000000000AF87002803E00008AF8B003C50
+:1051A0008F85002C240BFFF03C06800094A7001A8A
+:1051B0008CA9002430ECFFFF000C38C000EB502419
+:1051C000012A4021ACC8003C8CA400248CC3003CC4
+:1051D0000083102318400033000000008CAD002035
+:1051E00025A200013C0F0050ACC2003835EE001083
+:1051F0003C068000ACCE0030000000000000000043
+:10520000000000000000000000000000000000009E
+:1052100000000000000000003C0480008C990000A9
+:10522000333800201300FFFD30E200081040001763
+:105230003C0980008C880408ACA800108C83040C06
+:10524000ACA300143C1900203C188000AF190030BA
+:1052500094AE001894AF001C01CF3021A4A6001812
+:1052600094AD001A25A70001A4A7001A94AB001A58
+:1052700094AC001E118B00030000000003E0000846
+:105280000000000003E00008A4A0001A8D2A04001A
+:10529000ACAA00108D240404ACA400140A0001A2DE
+:1052A0003C1900208CA200200A00018A3C0F00500B
+:1052B0000A000178000000003C0308008C63002015
+:1052C0008F82003427BDFFE810620008AFBF0010D6
+:1052D0000E0001BCAF8300343C0308008C63002047
+:1052E00024040001106400048F8C002C8FBF001078
+:1052F00003E0000827BD00188FBF00103C058000A8
+:10530000A580000A958B000A958A000427BD001825
+:105310003167FFFF3149000F0009450000E83025E3
+:1053200003E00008ACA600803C0208008C4200208C
+:1053300027BDFFC8AFBF0034AFBE0030AFB7002CF1
+:10534000AFB60028AFB50024AFB40020AFB3001C47
+:10535000AFB20018AFB1001410400053AFB000104E
+:105360008F84002C948600069483000A00C32823AF
+:1053700030B6FFFF12C0004D8FBF00349489001873
+:10538000948A000A012A40233102FFFF02C2382B0F
+:1053900014E0000202C02021004020212C8C0005D6
+:1053A000158000020080A021241400040E00014B8F
+:1053B000028020218F87002C02809821AF8000304E
+:1053C00094ED000A028088211280005131B2FFFF63
+:1053D0003C1770003C1540003C1E60008F8F003C65
+:1053E0008DEE000001D718245075005302202021B3
+:1053F00002A3802B160000383C1820001078004AC9
+:1054000000000000241000018F8300301460003C75
+:10541000029158230230F8230250C82133F1FFFFD4
+:105420001620FFEE3332FFFF8F87002C3C12002046
+:105430003C118000AE32003094EA000A3C17800034
+:10544000026A4821A4E9000A94E3000A94E80004EF
+:105450003065FFFF3106000F0006150000A2F025A1
+:10546000AEFE008094F4000A94F5001812B4003ADD
+:105470000013C9408CF800148CEE00100319582159
+:10548000000078210179682B01CF6021018D202156
+:10549000ACEB0014ACE4001002D3382330F6FFFF6D
+:1054A00016C0FFB68F84002C8FBF00348FBE003033
+:1054B0008FB7002C8FB600288FB500248FB4002042
+:1054C0008FB3001C8FB200188FB100148FB0001082
+:1054D00003E0000827BD0038107E001B000000001C
+:1054E0001477FFC9241000010E0014E00000000032
+:1054F0008F8300301060FFC80230F82302915823D8
+:105500008F87002C017020210A0002553093FFFF85
+:105510008F8300301460FFC83C1200203C118000D3
+:105520000A00021EAE3200300E0003CE02202021FF
+:105530000A000212004080210E0007C60240282106
+:105540000A000212004080210E000D7D0220202161
+:105550000A000212004080210E00017800000000C5
+:105560000A00023702D3382327BDFFD0AFB500248D
+:10557000AFB40020AFB3001CAFB20018AFB100143D
+:10558000AFB00010AFBF00280E0000E43C14800054
+:105590003C0280083C0320003C010800AC20007065
+:1055A00034550080347200032413000136900070DB
+:1055B0002411FF800A0002858E0600003C1980003D
+:1055C0008F3800003B0F000131E200011040002540
+:1055D0008F8600848E0700003C0D08008DAD003CD6
+:1055E0003C0A08008D4A003800E6702301AE4021D5
+:1055F00000005821010E302B014B482101262021AB
+:105600003C010800AC28003CAF8700843C01080046
+:10561000AC2400380E0001BE000000003C0508006C
+:105620008CA5007010A0FFE500A020213C0508001B
+:105630008CA500683C0608008CC6006C0E00148324
+:10564000000000003C010800AC2000703C19800004
+:105650008F3800003B0F000131E200011440FFDDF4
+:105660008F8600848E0C00008F8D00843C0708001C
+:105670008CE7003C3C0608008CC60038018D58239E
+:1056800000EB282100AB202B00C24821012410216F
+:105690003C010800AC25003C3C0880003C010800AF
+:1056A000AC2200388D030100241F0C00107F00265F
+:1056B000000000008D180100240E0020AD1800200D
+:1056C00092AF000031E300FF106E00232419005058
+:1056D00010790026000000003C0480008C88010046
+:1056E0001500000300000000566000143C04400058
+:1056F0008C9901008C8F0100000098210331C02497
+:105700000018694031EE007F01AE602501925825F6
+:10571000AC8B08308C8701008C89010024EA0100E1
+:1057200001513024000629403123007F00A31025B9
+:105730000052F825AC9F08303C044000AE8401388C
+:105740000A00027D000000000E0001DA00000000E7
+:105750000A0002C73C0480008D0401000E00077F90
+:10576000000000000A0002C73C0480008D04010014
+:105770000E00139B000000000A0002C73C048000DA
+:1057800000A4102B24030001104000090000302168
+:105790000005284000A4102B04A0000300031840BB
+:1057A0005440FFFC000528405060000A0004182BFC
+:1057B0000085382B54E000040003184200C3302554
+:1057C00000852023000318421460FFF900052842D9
+:1057D0000004182B03E0000800C310213084FFFFF1
+:1057E00030C600FF3C0780008CE201B80440FFFE99
+:1057F00000064C00012430253C08200000C820256C
+:105800003C031000ACE00180ACE50184ACE401880D
+:1058100003E00008ACE301B83C0660008CC5201C26
+:105820002402FFF030830200308601001060000E79
+:1058300000A2282434A500013087300010E00005C4
+:1058400030830C0034A500043C04600003E0000831
+:10585000AC85201C1060FFFD3C04600034A50008EE
+:1058600003E00008AC85201C54C0FFF334A50002FF
+:105870000A00031F3087300027BDFFE8AFB00010DB
+:10588000AFBF00143C076000240600021080001126
+:1058900000A080218F83003C0E0003168C6400184A
+:1058A0008F82003C00002021240600018C45000C62
+:1058B0000E0003070000000016000002240200038F
+:1058C000000010218FBF00148FB0001003E000080B
+:1058D00027BD00188CE8201C2409FFF001092824AA
+:1058E000ACE5201C8F87003C0A00033C8CE5000CD3
+:1058F0003C02600E0080402134460100240900185B
+:105900000000000000000000000000003C0A005001
+:105910003C03800035470200AC6800383464040062
+:10592000AC65003CAC6700308C6C0000318B002013
+:105930001160FFFD2407FFFF2403007F8C8D000012
+:105940002463FFFF24840004ACCD00001467FFFB38
+:1059500024C6000400000000000000000000000059
+:1059600024A402000085282B3C0300203C0E80006C
+:105970002529FFFF01054021ADC300301520FFE0C0
+:105980000080282103E00008000000008F82003C16
+:1059900027BDFFD8AFB3001CAFBF0020AFB20018C7
+:1059A000AFB10014AFB000109446000200809821FF
+:1059B0008C5200182CC300818C4800048C470008CE
+:1059C0008C51000C8C490010106000078C4A0014A8
+:1059D0002CC400041480001330EB000730C5000312
+:1059E00010A00010000000002410008B02002021F5
+:1059F000022028210E00030724060003166000027F
+:105A000024020003000010218FBF00208FB3001C70
+:105A10008FB200188FB100148FB0001003E000089F
+:105A200027BD00281560FFF12410008B3C0C80007E
+:105A30003C030020241F0001AD830030AF9F0030E5
+:105A40000000000000000000000000002419FFF02A
+:105A500024D8000F031978243C1000D0AD880038FA
+:105A600001F0702524CD00033C08600EAD87003C9A
+:105A700035850400AD8E0030000D38823504003CC1
+:105A80003C0380008C6B0000316200201040FFFD61
+:105A90000000000010E0000824E3FFFF2407FFFFE0
+:105AA0008CA800002463FFFF24A50004AC8800003C
+:105AB0001467FFFB248400043C04600EAC860038AD
+:105AC0000000000000000000000000003C07002073
+:105AD0003C0680000120202101402821ACC7003075
+:105AE0000E00034C000080210E000316024020210E
+:105AF0000A00038C0200202127BDFFD8AFB2001896
+:105B00003092FFFFAFB10014AFBF0020AFB3001C55
+:105B1000AFB000101240002D000088210A0003E2FF
+:105B20002413000350B300428CE5000C0000000D6C
+:105B3000263900013331FFFF24F800200232382BD0
+:105B400010E00022AF98003C8F8200301440001F0C
+:105B50008F87003C3C0670003C0320008CE4000072
+:105B60000086282414A300198F85004400044402F1
+:105B70003C0980000089802414A0FFEA310600FF60
+:105B8000240A000210CA003028CB0003116000175D
+:105B9000000000002404000114C4FFE626390001BF
+:105BA000020028210E00032E240400018F87003CF0
+:105BB000AF820044263900013331FFFF24F8002072
+:105BC0000232382B14E0FFE0AF98003C0220102195
+:105BD0008FBF00208FB3001C8FB200188FB100144C
+:105BE0008FB0001003E0000827BD002810D3001B71
+:105BF000240C000414CCFFCF26390001308DFFFFA8
+:105C0000000D19C03C0480008C8E01B805C0FFFE59
+:105C10003C0F10003C102004AC830180AC80018458
+:105C2000AC900188AC8F01B80A0003DD2639000171
+:105C30000E000307240400841600FFBD8F87003C7C
+:105C40000A0003DCAF800044020028210E00032E6E
+:105C5000000020210A0003FC8F87003C0E00037324
+:105C6000020020218F87003C0A0003FDAF82004420
+:105C7000000449C23127003F000443423C02800037
+:105C800000082040240316802CE60020AC43002CA2
+:105C900024EAFFE02482000114C0000330A900FFC1
+:105CA00000801021314700FF000260803C0D800021
+:105CB000240A0001018D20213C0B000E00EA28047B
+:105CC000008B302111200005000538278CCE000004
+:105CD00001C5382503E00008ACC700008CD80000DF
+:105CE0000307782403E00008ACCF000027BDFFE0E5
+:105CF000AFB10014AFB00010AFBF00183C07600098
+:105D00008CE408083402F0003C1160003083F0009D
+:105D1000240501C03C04800E000030211062000602
+:105D2000241000018CEA08083149F0003928E0000D
+:105D30000008382B000780403C0D0200AE2D0814EF
+:105D4000240C16803C0B80008E2744000E000E268B
+:105D5000AD6C002C120000043C02169124050001D9
+:105D6000120500103C023D6C345800E0AE38440887
+:105D70003C1108008E31007C8FBF00183C0660008B
+:105D800000118540360F16808FB100148FB00010BF
+:105D90003C0E020027BD0020ACCF442003E00008E9
+:105DA000ACCE08103C0218DA345800E0AE38440893
+:105DB0003C1108008E31007C8FBF00183C0660004B
+:105DC00000118540360F16808FB100148FB000107F
+:105DD0003C0E020027BD0020ACCF442003E00008A9
+:105DE000ACCE08100A00042C240500010A00042C83
+:105DF0000000282124020400A782000CA7800004D0
+:105E0000000020213C06080024C656582405FFFF48
+:105E100024890001000440803124FFFF010618217D
+:105E20002C87002014E0FFFAAC6500002404040075
+:105E3000A784000EA7800006000020213C06080071
+:105E400024C656D82405FFFF248D0001000460807D
+:105E500031A4FFFF018658212C8A00201540FFFA4B
+:105E6000AD650000A7800010A7800008A780000A89
+:105E7000000020213C06080024C657582405FFFFD7
+:105E8000249900010004C0803324FFFF0306782119
+:105E90002C8E000415C0FFFAADE500003C05600043
+:105EA0008CA73D002403E08F00E31024344601401A
+:105EB00003E00008ACA63D002487007F000731C244
+:105EC00024C5FFFF000518C2246400013082FFFFD3
+:105ED000000238C0A78400183C010800AC2700303D
+:105EE000AF80001400002821000020210000302194
+:105EF0002489000100A728213124FFFF2CA81701C5
+:105F0000110000032C8300801460FFF924C60001F7
+:105F100000C02821AF86001410C0001DA786001203
+:105F200024CAFFFF000A11423C0808002508575800
+:105F30001040000A00002021004030212407FFFF0C
+:105F4000248E00010004688031C4FFFF01A8602195
+:105F50000086582B1560FFFAAD87000030A2001FA5
+:105F60005040000800043080240300010043C804AE
+:105F700000041080004878212738FFFF03E0000864
+:105F8000ADF8000000C820212405FFFFAC8500000B
+:105F900003E000080000000030A5FFFF30C6FFFF4F
+:105FA00030A8001F0080602130E700FF0005294273
+:105FB0000000502110C0001D24090001240B000125
+:105FC00025180001010B2004330800FF0126782664
+:105FD000390E00202DED00012DC2000101A218256F
+:105FE0001060000D014450250005C880032C40219D
+:105FF0000100182110E0000F000A20278D04000086
+:10600000008A1825AD03000024AD000100004021E6
+:106010000000502131A5FFFF252E000131C9FFFFEF
+:1060200000C9102B1040FFE72518000103E000080D
+:10603000000000008D0A0000014440240A000512FF
+:10604000AC68000027BDFFE830A5FFFF30C6FFFFAA
+:10605000AFB00010AFBF001430E7FFFF00005021C9
+:106060003410FFFF0000602124AF001F00C0482152
+:10607000241800012419002005E0001601E0102179
+:106080000002F943019F682A0009702B01AE4024E9
+:1060900011000017000C18800064102110E00005AA
+:1060A0008C4B000000F84004000838230167582496
+:1060B00000003821154000410000402155600016C5
+:1060C0003169FFFF258B0001316CFFFF05E1FFEC1B
+:1060D00001E0102124A2003E0002F943019F682A3A
+:1060E0000009702B01AE40241500FFEB000C188056
+:1060F000154600053402FFFF020028210E0004F6B9
+:1061000000003821020010218FBF00148FB0001052
+:1061100003E0000827BD00181520000301601821C6
+:10612000000B1C0224080010306A00FF1540000517
+:10613000306E000F250D000800031A0231A800FF81
+:10614000306E000F15C00005307F000325100004DD
+:1061500000031902320800FF307F000317E000053A
+:10616000386900012502000200031882304800FF50
+:10617000386900013123000110600004310300FF81
+:10618000250A0001314800FF310300FF000C69407F
+:1061900001A34021240A000110CAFFD53110FFFFDE
+:1061A000246E000131C800FF1119FFC638C9000173
+:1061B0002D1F002053E0001C258B0001240D000141
+:1061C0000A000589240E002051460017258B000186
+:1061D00025090001312800FF2D090020512000125F
+:1061E000258B000125430001010D5004014B1024B3
+:1061F000250900011440FFF4306AFFFF3127FFFF3B
+:1062000010EE000C2582FFFF304CFFFF00005021F4
+:106210003410FFFF312800FF2D0900205520FFF228
+:1062200025430001258B0001014648260A0005434D
+:10623000316CFFFF00003821000050210A00059555
+:106240003410FFFF27BDFFD8AFB0001030F0FFFFC4
+:10625000AFB10014001039423211FFE00007108086
+:10626000AFB3001C00B1282330D3FFFFAFB200183A
+:1062700030A5FFFF008090210260302100442021E2
+:10628000AFBF00200E0005213207001F0222882127
+:106290003403FFFF02402021020028210260302148
+:1062A00000003821104300093231FFFF0220102185
+:1062B0008FBF00208FB3001C8FB200188FB1001465
+:1062C0008FB0001003E0000827BD00280E00052154
+:1062D0000000000000408821022010218FBF002014
+:1062E0008FB3001C8FB200188FB100148FB0001054
+:1062F00003E0000827BD0028000424003C036000E0
+:10630000AC603D0810A000023482100634821016E2
+:1063100003E00008AC623D0427BDFFE0AFB0001011
+:10632000309000FF2E020006AFBF0018104000089A
+:10633000AFB10014001030803C030800246353B454
+:1063400000C328218CA40000008000080000000089
+:10635000000020218FBF00188FB100148FB00010F3
+:106360000080102103E0000827BD00209791001253
+:1063700016200051000020213C020800904200330A
+:106380000A0005FC00000000978D000E15A00031EA
+:10639000000020210A0005FC240200089787000C59
+:1063A00014E0001A000018210060202124020001DE
+:1063B0001080FFE98FBF0018000429C2004530217A
+:1063C00000A6582B1160FFE43C0880003C07200029
+:1063D000000569C001A76025AD0C00203C038008C2
+:1063E0002402001F2442FFFFAC6000000441FFFDB7
+:1063F0002463000424A5000100A6702B15C0FFF53E
+:10640000000569C00A0005E68FBF001897870004E1
+:106410003C04080024845658240504000E0005A1FD
+:1064200024060001978B000C24440001308AFFFFF2
+:106430002569FFFF2D480400004028211500004079
+:10644000A789000C24AC3800000C19C00A0005FA1A
+:10645000A7800004978700063C040800248456D8CF
+:10646000240504000E0005A1240600019799000EE2
+:10647000244400013098FFFF272FFFFF2F0E040058
+:106480000040882115C0002CA78F000EA7800006B1
+:106490003A020003262401003084FFFF0E0005CEDF
+:1064A0002C4500010011F8C027F00100001021C0A8
+:1064B0000A0005FC24020008978500169787000A49
+:1064C0003C040800248457580E0005A1240600014E
+:1064D000978700128F8900142445000130A8FFFF20
+:1064E00024E3FFFF0109302B0040802114C0001875
+:1064F000A7830012A780000A978500180E000E10CF
+:1065000002002021244A05003144FFFF0E0005CE81
+:10651000240500013C05080094A500320E000E1071
+:1065200002002021244521003C0208009042003353
+:106530000A0005FC000521C00A000634A7840006F5
+:1065400024AC3800000C19C00A0005FAA784000426
+:106550000A00064EA785000A308400FF27BDFFE829
+:106560002C820006AFBF0014AFB000101040001521
+:1065700000A03821000440803C030800246353CC71
+:10658000010328218CA40000008000080000000006
+:1065900024CC007F000751C2000C59C23170FFFFAC
+:1065A0002547C40030E5FFFF2784000402003021A6
+:1065B0000E0004F624070001978600100206202131
+:1065C000A78400108FBF00148FB0001003E00008F4
+:1065D00027BD00183C0508008CA50030000779C2D3
+:1065E0000E0002F025E4DF003045FFFF3C04080008
+:1065F00024845758240600010E0004F624070001E5
+:10660000978E00128FBF00148FB0001025CD0001AF
+:1066100027BD001803E00008A78D00120007C9C2BB
+:106620002738FF00001878C231F0FFFF3C04080053
+:10663000248456D802002821240600010E0004F606
+:1066400024070001978D000E260E0100000E840025
+:1066500025AC00013C0B6000A78C000EAD603D082E
+:1066600036040006000030213C0760008CE23D0447
+:10667000305F000617E0FFFD24C9000100061B0083
+:10668000312600FF006440252CC50004ACE83D0421
+:1066900014A0FFF68FBF00148FB0001003E00008B5
+:1066A00027BD0018000751C22549C8002406000173
+:1066B000240700013C040800248456580E0004F608
+:1066C0003125FFFF9787000C8FBF00148FB000109B
+:1066D00024E6000127BD001803E00008A786000C8F
+:1066E0003084FFFF30A5FFFF3C0680008CC201B85C
+:1066F0000440FFFE3C084080008838253C03100021
+:10670000ACC00180ACC50184ACC7018803E00008BF
+:10671000ACC301B83084FFFF3C0680008CC201B8D6
+:106720000440FFFE3C0840388CA700000088282564
+:106730003C031000ACC70180ACC5018803E0000831
+:10674000ACC301B88F83005C8F8600541066000BC9
+:10675000008040213C07080024E75768000328C058
+:1067600000A710218C44000024630001108800055C
+:106770003063000F5466FFFA000328C003E00008EE
+:10678000000010213C07080024E7576C00A73021C7
+:1067900003E000088CC200003C039000346200015A
+:1067A000008220253C038000AC6400208C65002022
+:1067B00004A0FFFE0000000003E00008000000004D
+:1067C0003C028000344300010083202503E00008E0
+:1067D000AC44002027BDFFE0AFB100143091FFFFB3
+:1067E000AFB00010AFBF00181220001200A080212F
+:1067F0008CA5000014A00011240400023C068000B7
+:106800008CC201B80440FFFE3C074000022720254F
+:106810008FBF00188FB100148FB000103C03100020
+:1068200027BD0020ACC50180ACC4018803E000088E
+:10683000ACC301B80A00070F8CA500000E00066665
+:1068400024060200000028210A00070FAE00000005
+:106850003087FFFF3C0680008CC201B80440FFFE79
+:106860003C0A40068CA9000000EA4025ACC9018022
+:106870008CA400043C031000ACC40184ACC80188A3
+:1068800003E00008ACC301B88F83FDE827BDFFE833
+:10689000AFBF0014AFB00010906700080080102157
+:1068A0000080282130E600400000202110C00008B0
+:1068B0008C5000000E0000860200202102002021E2
+:1068C0008FBF00148FB000100A00048927BD001884
+:1068D0000E000724000000000E00008602002021A8
+:1068E000020020218FBF00148FB000100A0004891D
+:1068F00027BD001827BDFFE0AFB000108F90FDE866
+:10690000AFBF001CAFB20018AFB100149206000177
+:10691000008088210E0006F630D2000492040005A3
+:10692000001129C2A605000034830040A20300051F
+:106930000E000700022020210E00048B02202021DF
+:1069400024020001AE02000C02202821A602001041
+:1069500024040002A602001224060200A60200146B
+:106960000E000666A60200161640000F8FBF001C20
+:10697000978C00583C0B08008D6B00782588FFFF32
+:106980003109FFFF256A0001012A382B10E00006BB
+:10699000A78800583C0F6006240E001635ED001045
+:1069A000ADAE00508FBF001C8FB200188FB1001425
+:1069B0008FB0001003E0000827BD002027BDFFE0D6
+:1069C000AFBF0018AFB10014AFB000100E0006F654
+:1069D000008088218F85FDE80220202190A30005FA
+:1069E0000E000700307000FF2402003E1202000576
+:1069F0008FBF00188FB100148FB0001003E00008A3
+:106A000027BD00203C0580008CA401780480FFFE97
+:106A1000240700073C061000ACB1014002202021F1
+:106A2000A0A701448FBF00188FB100148FB00010D1
+:106A3000ACA601780A00074D27BD002027BDFFE066
+:106A4000AFB00010AFBF0018AFB100143C10800011
+:106A50008E110020000000000E00048BAE04002008
+:106A6000AE1100208FBF00188FB100148FB000103E
+:106A700003E0000827BD00203084FFFF3C068000B3
+:106A80008CC201B80440FFFE3C0840350088382520
+:106A90003C031000ACC50180ACC00184ACC70188C8
+:106AA00003E00008ACC301B83084FFFF3C0680005F
+:106AB0008CC201B80440FFFE3C08403600883825EF
+:106AC0003C031000ACC50180ACC00184ACC7018898
+:106AD00003E00008ACC301B827BDFFD0AFB5002468
+:106AE0003095FFFFAFB60028AFB40020AFBF002C39
+:106AF000AFB3001CAFB20018AFB10014AFB00010BC
+:106B000030B6FFFF12A000270000A0218F92003CAA
+:106B10008E4300003C0680002402004000033E0239
+:106B200000032C0230E4007F006698241482001DCC
+:106B300030A500FF8F83004C2C68000A5100001024
+:106B40008F860030000358803C0C0800258C53E8E9
+:106B5000016C50218D490000012000080000000058
+:106B600002D448213125FFFF0E0006C8240400840A
+:106B7000166000028F92003CAF80004C8F86003080
+:106B800026580020268F00010300902131F4FFFFDA
+:106B900014C00004AF98003C0295282B14A0FFDC21
+:106BA00000000000028010218FBF002C8FB600284B
+:106BB0008FB500248FB400208FB3001C8FB2001853
+:106BC0008FB100148FB0001003E0000827BD003023
+:106BD0002407003414A70146000000009247000E6D
+:106BE0008F99FDEC8F90FDE824181600A32700195B
+:106BF000924A000D3C0880003C07800CA32A001834
+:106C0000964400123C0F60003C117FFFA604005C1C
+:106C1000965F00103622FFFF240A000533E5FFFFD0
+:106C2000AE0500548E46001CAD1800288CE900000B
+:106C30008DEE44480126682601CD3021AE0600388D
+:106C40008E03003824CB00013C0E7F00AE03003CD5
+:106C50008E0C003CAF2C0004AE0B00208E130020E5
+:106C6000AE13001CA320001BAE02002CA32A0012AE
+:106C70008E44001424130050AE0400348E1F0034E0
+:106C8000AF3F00148E450018AE0500489258000C26
+:106C9000A218004E920F000835E90020A209000852
+:106CA0008E0D001801AE1824346C4000AE0C001894
+:106CB000920B0000317200FF125302AD2413FF80CB
+:106CC0003C040800248457E80E000732000000004E
+:106CD00024030004240800013C0508008CA557E8A3
+:106CE0003C048000A2030025A20800058C900178D6
+:106CF0000600FFFE8F92003C240E00023C0D1000A7
+:106D0000AC850140A08E0144AC8D01780A0007EFEC
+:106D1000AF80004C2CAD003711A0FF998F8600305A
+:106D2000000580803C1108002631541002117821A2
+:106D30008DEE000001C000080000000024100004D7
+:106D400014B0008E3C0780003C0C08008D8C57E886
+:106D50008F86FDE8ACEC00208E4B00088F98FDEC90
+:106D600024090050ACCB00308E430008ACC3005067
+:106D70008E42000CACC200348E4A0010ACCA0038FF
+:106D80008E440010ACC400548E5F0014ACDF003C95
+:106D90008E590018AF1900048E4F001CACCF002094
+:106DA00090D10000322500FF10A9027D00000000F4
+:106DB0008CD100348CCF0030022F302304C000F37C
+:106DC0002404008C126000F0240200030A0007EF84
+:106DD000AF82004C2418000514B800683C0B8000FA
+:106DE0003C0C08008D8C57E88F86FDE8AD6C0020C8
+:106DF0008E4300048F9FFDEC24072000ACC3001CD1
+:106E00009242000824120008A3E200198F8A003C75
+:106E100091440009A3E400188F85003C90B9000A52
+:106E2000332400FF1092001028880009150000BCD0
+:106E3000240D0002240900201089000B3407800073
+:106E4000289100211620000824074000240F00404C
+:106E5000108F00053C0700012418008010980002E4
+:106E60003C070002240740008CC400183C0AFF00C5
+:106E7000008AF82403E7C825ACD9001890B2000BAB
+:106E8000A0D200278F83003C9465000C10A0023133
+:106E9000000000009467000C3C1F8000A4C7005C49
+:106EA0009062000E2403FFBF24070004A0C2000864
+:106EB0008F8A003C9144000FA0C400098F88003CD9
+:106EC0008D1200108FF9007402592823ACC50058A8
+:106ED0008D180014ACD8002C950F001831F1FFFF6D
+:106EE000ACD100409509001A3130FFFFACD000440E
+:106EF0008D0E001CACCE0048950D0002A4CD00788C
+:106F0000910C000EA0CC000890CB00080163102467
+:106F1000126001D7A0C200088F92003C0A0007EF60
+:106F2000AF87004C2406000614A600143C0E800017
+:106F30003C1008008E1057E88F8CFDE4ADD0002087
+:106F40008E4D00188F86FDE88F8BFDECAD8D000017
+:106F50008CC8003824040005AD8800048CC3003CB4
+:106F600012600081AD6300000A0007EFAF84004C9F
+:106F70002409000710A9004B240400063C05080062
+:106F800024A557E80E000705240400818F92003CD9
+:106F90000013102B0A0007EFAF82004C241F0023C0
+:106FA00014BFFFF63C0C80003C0308008C6357E8DC
+:106FB0008F8BFDECAD8300208F91FDE88E460004A1
+:106FC0002564002026450014AE2600282406000370
+:106FD0000E000E1C257000308F87003C020020211F
+:106FE000240600030E000E1C24E500083C040800E3
+:106FF000248457E80E0007320000000092220000AF
+:1070000024040050304A00FF5544FFE18F92003CB9
+:107010000E000E07000000000A0008F48F92003CEA
+:107020002408003314A800323C0280003C11080000
+:107030008E3157E88F89FDECAC5100208E4A000854
+:10704000240F00288F8DFDE8AD2A00308E44000CFF
+:1070500024060009AD2400348E5F0010AD3F0038D7
+:107060008E590014AD3900208E450018AD2500243E
+:107070008E58001CAD380028A12F00118E4E000440
+:1070800012600031ADAE00288F92003C0A0007EF7D
+:10709000AF86004C2411002214B1FFB8000000009C
+:1070A000240400073C1808008F1857E83C0F8000A4
+:1070B000ADF800205660FEB1AF84004C3C040800DF
+:1070C000248457E80E000732241300508F99FDE8FE
+:1070D00093320000324500FF10B3016C0000000045
+:1070E0008F92003C000020210A0007EFAF84004C83
+:1070F0003C05080024A557E80E0006D524040081AD
+:107100000A0008F48F92003C02D498213265FFFFF8
+:107110000E0006C8240400840A0007EF8F92003C8A
+:10712000108DFF51240704002887000310E001AAF6
+:1071300024100004240E0001548EFF4B240740004D
+:107140000A0008AA240701003C05080024A557E806
+:107150000E000724240400828F92003C000030219E
+:107160000A0007EFAF86004C3C040800248457E86F
+:107170008CC200380E0007328CC3003C8F92003C5A
+:107180000A00094A00002021240400823C0508006E
+:1071900024A557E80E000724000000008F92003C51
+:1071A000000010210A0007EFAF82004C8E5000044F
+:1071B0008F91FDE83C0A8000AD500020922200052E
+:1071C000020028213046000214C001872404008AEE
+:1071D0008F92FDEC020028212404008D924B001BAD
+:1071E000316300201460018000000000922D00092E
+:1071F000240C001231A800FF110C017B2404008133
+:107200000E0006F6020020219245001B240E000409
+:107210000200202134A90042A249001B0E000700F1
+:10722000A22E00253C0480008C9101780620FFFEF0
+:1072300024180002AC900140A09801448F92003CB9
+:107240003C0F1000AC8F01780A0008F50013102BDA
+:107250008E5000048F91FDE83C1F8000AFF00020AD
+:1072600092390005020028213327000214E0001A99
+:107270002404008A922600092412001230C400FF60
+:10728000109201110000000092230009240A00045A
+:10729000306200FF104A010C000000000E0006F6EC
+:1072A000020020218F88FDEC240CFFFE020020212B
+:1072B000910E001B35CD0020A10D001BA23200094C
+:1072C000922B0005016C90240E000700A2320005ED
+:1072D00002002821000020210E0007BA0000000053
+:1072E0000A0008F48F92003C8E5100043C0280009A
+:1072F0003C100800261057E8AC5100203C01080063
+:10730000AC3157E89246000330C400041080016994
+:107310008F84FDE824020006A0820009924D001B24
+:107320002408FFC031AC003F01885825A08B00081D
+:1073300092430003306A0001154001600000000024
+:107340008E420008AE0200083C0208008C4257F052
+:107350001040015F8F8EFDEC000281C28F85FDE839
+:10736000A5D0000C8E5F000C240F0001240900142E
+:10737000ADDF002C8E590010ADD9001C96470016C9
+:10738000A5C7003C96580014A5D8003EACAF000C31
+:10739000A4AF0010A4AF0012A4AF0014A4AF001655
+:1073A00012600163A1C900119244000330920002EF
+:1073B0002E5300018F92003C266200080A0007EF5E
+:1073C000AF82004C8E4600043C0580003C048008DF
+:1073D000ACA600208E4700089089000024110050C0
+:1073E000312200FF105100BC240500883C048000BD
+:1073F0008C8F01B805E0FFFE0013802B3C1840097C
+:1074000000B81025AF90004C3C101000AC860180F5
+:10741000AC870184AC820188AC9001B80A0007F007
+:107420008F8600308E4500043C0680003C098008B1
+:10743000ACC50020913F00002404005033F900FF48
+:10744000132400B4240600883C0480008C8A01B810
+:107450000540FFFE3C0E400E00CE68253C081000A3
+:10746000AC850180AC800184AC8D0188AC8801B80A
+:10747000912B0000240CFF8024040004016C1825CB
+:10748000240600300E000666A12300000A0008F45E
+:107490008F92003C8E5000048F91FDEC3C0F8000D9
+:1074A000ADF000209225001B30A900101120007CB7
+:1074B000240300813C0480008C8701B804E0FFFEB7
+:1074C0003C1F401FAC900180007F10250013C82B8B
+:1074D0003C101000AC800184AF99004CAC82018854
+:1074E000AC9001B80A0007F08F8600308E44001C73
+:1074F0000E0006E100000000104000FC00403821B2
+:107500008F92003C240600893C0580008CAE01B8B7
+:1075100005C0FFFE00000000ACA701808E50001CDB
+:107520003C1140010013782B00D138253C1310008A
+:10753000ACB00184AF8F004CACA70188ACB301B8EC
+:107540000A0007F08F860030965900023C100800B0
+:10755000261057E833380004130000A73C046000ED
+:107560008E5F001C3C068000ACDF00203C01080060
+:10757000AC3F57E8964F000231E7000114E000E706
+:10758000000000008E420004AE0200083C1008001B
+:107590008E1057F0120000DD3C0680008F85FDE85C
+:1075A000241000018CBF00188F91FDEC8F89FDE441
+:1075B00003E6C825ACB90018A0A00005ACB0000CCB
+:1075C0003C1808008F1857F08F87003CA4B00010BB
+:1075D000001879C2A4B00012A4B00014A4B0001620
+:1075E000A62F000C8CEE00088F8D003C8F8C003C89
+:1075F000AE2E002C8DA8000C24070002AE28001C23
+:10760000918B0010A22B00118F83003C906A001117
+:10761000A12A00088F82003C90440012A0A4004ED2
+:107620008F92003C92460013A22600128F92003CDB
+:10763000965F0014A63F003C96590016A639003EFE
+:107640008E580018AE3800145660FD4CAF87004CC1
+:107650003C05080024A557E80E000705000020217E
+:107660008F92003C000038210A0007EFAF87004CE2
+:107670003C05080024A557E80E00072424040082D6
+:107680008F92003C0A0008D7000038210E000E0738
+:10769000000000008F92003C0A00094A00002021EF
+:1076A0000E0006F6020020219232001B020020216B
+:1076B000365800100E000700A238001B8F92003CC5
+:1076C0000A000A3D000018210E0007BA24040081B8
+:1076D0000A0008F48F92003C9243000C306A0001CB
+:1076E0001140000300000000964B000EA48B002CFC
+:1076F0009248000C310C00021180FF3C0000282150
+:10770000964E00128E4D0014A48E001A0A000A0B29
+:10771000AC8D001C8F83005C8F8700541067FF4A7C
+:10772000000030213C0808002508576C000320C0E9
+:10773000008830218CD10000122500C8246200018D
+:107740003043000F1467FFFA000320C00A000A222A
+:10775000000030213C05080024A557E80E0007244E
+:107760002404008B8F92003C0A0008D70013382BAA
+:107770003C0C08008D8C57E824D9FFFE25910100B0
+:10778000322B007F0167902102331024AD020028C4
+:10779000AE4600D0AE4000D40A000840AE59001CEE
+:1077A000ACC000543C0908008D2957E83C05800C0A
+:1077B00034A80100ACE900288E500014AD1000D0B0
+:1077C0008E4E0014AD0E00D48E4D001025A7FFFE86
+:1077D0000A00087CAD07001C5490FDA3240740005C
+:1077E0000A0008AA240710000E0007AE00000000DF
+:1077F0000A0008F48F92003C8C83442C3C05DEADDB
+:1078000034B2BEEF3C010800AC2057E81072004FC4
+:10781000000000003C046C6234827970146200083D
+:1078200024040002978A0058978300500200282100
+:107830000143482B11200019240400922404000263
+:107840000E0005D6240502003C0B8000AD6200202E
+:107850003C010800AC2257E81040000D8F8E003C20
+:10786000240C00282404000391CD001031A800FF4F
+:10787000550C0001240400010E00004A0000000025
+:1078800010400004240400830A000A6D8F92003C1B
+:10789000240400833C05080024A557E80E000705D2
+:1078A000000000008F92003C0013382B0A0007EF05
+:1078B000AF87004C0A0009D6240200128E4400084B
+:1078C0000E0006E1000000000A0009E2AE02000816
+:1078D0003C05080024A557E80E0006D524040087BF
+:1078E0008F92003C0A0009FF0013102B24040004AF
+:1078F0000E0005D624050030144000170040382142
+:107900008F92003C0A000A52240600833C050800BE
+:1079100024A557E80A000B37240400878E4400048E
+:107920000E0006E1000000000A000A73AE02000823
+:107930003C05080024A557E80E0007242404008213
+:107940008F92003C0A0009FF000010218C83442C18
+:107950000A000B163C046C628F92003C3C088008C5
+:107960003C0C8000240B0050240A0001AD82002052
+:10797000A10B0000A10A000192490004A10900180E
+:1079800092440005A1040019924300063C0408003B
+:107990002484576CA103001A924200073C0308009C
+:1079A00024635768A102001B92450008A105001C32
+:1079B00092460009A106001D925F000AA11F001E49
+:1079C0009259000BA119001F9258000CA118002019
+:1079D0009251000DA11100219250000EA110002221
+:1079E000924F000FA10F0023924E0010A10E002411
+:1079F000924D0011A10D0025964C0014A50C0028F5
+:107A0000964B00168F8A00548F98005CA50B002AB5
+:107A100096490018000A10C025450001A509002C50
+:107A20008E46001C0044C8210043F82130A5000FF9
+:107A3000AFE60000AF27000010B80003AF85005488
+:107A40000A000A520000302124AD000131A8000FC5
+:107A5000000030210A000A52AF88005C3C07080091
+:107A600024E7576800879021ACC000000000302157
+:107A70000A000A22AE4000003C0482013C03600080
+:107A800034820E02AC603D68AF80007C03E00008E9
+:107A9000AC623D6C27BDFFE8AFB000103090FFFF37
+:107AA000001018422C620041AFBF001414400002C5
+:107AB00024040080240300403C010800AC30006036
+:107AC0003C010800AC2300640E000E100060282169
+:107AD000244802BF2409FF800109282400103980AE
+:107AE000001030408FBF00148FB0001000A720217D
+:107AF00000861821AF8300643C010800AC250058C3
+:107B00003C010800AC24005C03E0000827BD00181D
+:107B1000308300FF30C6FFFF30E400FF3C088000E8
+:107B20008D0201B80440FFFE0003540001443825D3
+:107B30003C09600000E920253C031000AD050180F0
+:107B4000AD060184AD04018803E00008AD0301B86F
+:107B50008F86003C3C096012352700108CCB000456
+:107B60003C0C600E35850010316A00062D4800017E
+:107B7000ACE800C48CC40004ACA431808CC2000802
+:107B800094C30002ACA2318403E00008A783007410
+:107B90008F85003C8F87FF408F86FF488CAE0004A6
+:107BA0003C0F601235E80010ACEE00688CAD0008A8
+:107BB000ACED006C8CAC0010ACCC004C8CAB000C71
+:107BC000ACCB004894CA00543C0208008C420044EC
+:107BD00025490001A4C9005494C400543083FFFF18
+:107BE00010620017000000003C0208008C420040B8
+:107BF000A4C200528CA30018ACE300308CA2001485
+:107C0000ACE2002C8CB90018ACF900388CB8001428
+:107C100024050001ACF800348D0600BC50C50019E5
+:107C20008D0200B48D0200B8A4E2004894E400483C
+:107C3000A4E4004A94E800DA03E000083102FFFF00
+:107C40003C0208008C420024A4C00054A4C200528C
+:107C50008CA30018ACE300308CA20014ACE2002C22
+:107C60008CB90018ACF900388CB800142405000158
+:107C7000ACF800348D0600BC54C5FFEB8D0200B893
+:107C80008D0200B4A4E2004894E40048A4E4004A51
+:107C900094E800DA03E000083102FFFF8F86003C21
+:107CA0003C0480008CC900088CC80008000929C069
+:107CB000000839C0AC87002090C300073062000480
+:107CC0001040003AAF85007890CB0007316A000879
+:107CD000114000398F87FF448CCD000C8CCE0014EE
+:107CE00001AE602B11800032000000008CC2000C3D
+:107CF000ACE200708CCB00188F85FF408F88FF4866
+:107D0000ACEB00748CCA00102402FFF8ACAA00C8C7
+:107D10008CC9000CAD0900608CC4001CACA400C070
+:107D200090E3007C0062C824A0F9007C90D8000792
+:107D3000330F000811E000040000000090ED007C0B
+:107D400035AC0001A0EC007C90CF000731EE0001C3
+:107D500011C000090000000090E4007C241800021B
+:107D600034820002A0E2007C90A300EC307900FF96
+:107D7000133800132408003490C90007312600028C
+:107D800010C000040000000090EB007C356A000485
+:107D9000A0EA007C90ED007D31AC003FA0EC007DBE
+:107DA00094A700DA03E0000830E2FFFF8F87FF446A
+:107DB0000A000C4C8CC200140A000C4DACE00070A0
+:107DC0000A000C6EACA800CC8F8C003C27BDFFD8FD
+:107DD000AFB3001CAFB20018AFB00010AFBF0020AF
+:107DE000AFB10014918F00153C13600E3673001074
+:107DF00031EB000FA38B00808D8F00048D8B00086A
+:107E0000959F0012959900109584001A9598001E70
+:107E1000958E001C33EDFFFF332AFFFF3089FFFFF3
+:107E20003308FFFF31C7FFFF3C010800AC2D0024E1
+:107E30003C010800AC2900443C010800AC2A004089
+:107E4000AE683178AE67317C91850015959100164A
+:107E50003C1260123652001030A200FF3230FFFF99
+:107E6000AE623188AE5000B491830014959F001823
+:107E7000240600010066C80433F8FFFFAE5900B8BD
+:107E8000AE5800BC918E0014AF8F00683C086006AD
+:107E900031CD00FFAE4D00C0918A00159584000ED3
+:107EA0003C07600A314900FFAF8B006C3084FFFF54
+:107EB000AE4900C8351100100E000BB534F00410A7
+:107EC0003C0208008C4200603C0308008C630064A4
+:107ED0003C0608008CC600583C0508008CA5005CD8
+:107EE0008F8400648FBF0020AE23004CAE65319CB0
+:107EF000AE030054AE4500DCAE6231A0AE6331A4E7
+:107F0000AE663198AE2200488FB3001CAE0200501E
+:107F10008FB10014AE4200E0AE4300E4AE4600D89C
+:107F20008FB000108FB200180A0004BE27BD0028D1
+:107F3000978500769783006027BDFFE8AFB00010FB
+:107F400000A3102BAFBF0014240400058F90003C49
+:107F500010400055240900020E0005D68F850064EC
+:107F6000AF820078240400031040004F240900026F
+:107F70003C0680000E00004AACC20020240700012D
+:107F8000240820001040004D24040005978E007640
+:107F90008F8AFF442409005025C50001A78500767B
+:107FA000A14900003C0D08008DAD00642403800051
+:107FB0008F84FF40000D6600AD4C0018A540000600
+:107FC000954B000A8F85FF482402FF80016330240F
+:107FD000A546000A915F000A0000482103E2C82577
+:107FE000A159000AA0A00008A140004CA08000C533
+:107FF00096180002978300743C020004A49800DAEB
+:10800000960F00022418FFBF25EE2401A48E00AEB7
+:108010008E0D0004ACAD00448E0C0008ACAC0040EA
+:10802000A4A00050A4A000548E0B000C240C00301F
+:10803000AC8B00288E060010AC860024A480003E85
+:10804000A487004EA4870050A483003CAD42007476
+:10805000AC8800C8ACA80060A08700EC909F00C46A
+:1080600033F9007FA09900C4909000C402187824CE
+:10807000A08F00C4914E007C35CD0001A14D007C45
+:10808000938B0080AD480070AC8C00CCA08B00C6F8
+:108090008F88006C8F870068AC8800B4AC8700B80C
+:1080A000A5400078A540007A8FBF00148FB0001063
+:1080B0000120102103E0000827BD00188F850078FB
+:1080C0000E0006668F8600640A000D3A240900023D
+:1080D00027BDFFE0AFB000108F90003CAFB100149F
+:1080E000AFBF00188E0900040E00048B000921C0E8
+:1080F0008E0800048F84FF408F82FF48000839C03B
+:108100003C068000ACC70020948500DA9043001341
+:108110001460001C30B1FFFF8F8CFF44918B00086E
+:10812000316A00401540000B000000008E0D000475
+:10813000022030218FBF00188FB100148FB00010C3
+:108140002404002200003821000D29C00A000BD4AD
+:1081500027BD00200E000061000000008E0D00040D
+:10816000022030218FBF00188FB100148FB0001093
+:108170002404002200003821000D29C00A000BD47D
+:1081800027BD00200E000059000000008E0D0004E5
+:10819000022030218FBF00188FB100148FB0001063
+:1081A0002404002200003821000D29C00A000BD44D
+:1081B00027BD002027BDFFE0AFB200183092FFFFBF
+:1081C000AFB00010AFBF001CAFB100141240001ED2
+:1081D000000080218F86003C8CC50000240300062F
+:1081E00000053F020005140230E400071483001666
+:1081F000304500FF2CA80006110000400005588003
+:108200003C0C0800258C54EC016C50218D49000079
+:1082100001200008000000008F8E007C240D00016A
+:1082200011CD005024020002AF82007C260900011B
+:108230003130FFFF24C800200212202B0100302122
+:108240001480FFE5AF88003C020010218FBF001CA6
+:108250008FB200188FB100148FB0001003E0000837
+:1082600027BD00209387006254E0003400003021D5
+:108270000E000C82000000008F86003C0A000D9A60
+:10828000240200018F87007C2405000210E50031E4
+:1082900024040013000028210000302124070001DD
+:1082A0000E000BD4000000000A000D9B8F86003CDE
+:1082B0008F83007C240200021462FFF62404001263
+:1082C0000E000C37000000008F8500780040302140
+:1082D000240400120E000BD4000038210A000D9B6C
+:1082E0008F86003C8F83007C2411000310710029CD
+:1082F000241F0002107FFFCE260900012404001075
+:1083000000002821000030210A000DB824070001D8
+:108310008F91007C240600021626FFF92404001029
+:108320000E000CDC00000000144000238F98003C7D
+:108330008F86003C0A000D9A2402000324040014D6
+:108340000E000BD4000028218F86003C0A000D9AF5
+:10835000240200020E000D44000000000A000D9BE4
+:108360008F86003C0E000BE4000000002419000280
+:1083700024040014000028210000302100003821CE
+:10838000AF99007C0E000BD4000000000A000D9B8A
+:108390008F86003C0E000BF4000000008F850078F3
+:1083A000241900020040302124040010000038216C
+:1083B0000A000DF1AF99007C004038212404001020
+:1083C000970F0002000028210E000BD431E6FFFFBA
+:1083D0008F86003C0A000D9BAF91007C8F84FF4488
+:1083E0003C077FFF34E6FFFF8C8500182402000164
+:1083F00000A61824AC83001803E00008A082000542
+:108400003084FFFF30A5FFFF108000070000182117
+:108410003082000110400002000420420065182153
+:108420001480FFFB0005284003E0000800601021D5
+:1084300010C00007000000008CA2000024C6FFFF4F
+:1084400024A50004AC82000014C0FFFB24840004B7
+:1084500003E000080000000010A0000824A3FFFFB4
+:10846000AC86000000000000000000002402FFFFB6
+:108470002463FFFF1462FFFA2484000403E0000871
+:1084800000000000000411C003E000082442024084
+:1084900027BDFFE8AFB0001000808021AFBF0014FF
+:1084A0000E000E3100A0202100504821240AFF8038
+:1084B0008FBF00148FB00010012A30243127007FB5
+:1084C0003C08800A3C04210000E8102100C4282553
+:1084D0003C03800027BD0018AC650024AF8200205B
+:1084E000AC400000AC65002403E00008AC40004054
+:1084F0003C0D08008DAD005800056180240AFF8006
+:1085000001A45821016C4821012A30243127007F21
+:108510003C08800C3C04210000E8102100C4282500
+:108520003C038000AC650028AF82001C03E000081B
+:10853000AC40002430A5FFFF3C0680008CC201B88F
+:108540000440FFFE3C08601500A838253C031000DD
+:10855000ACC40180ACC00184ACC7018803E0000852
+:10856000ACC301B83C0D08008DAD0058000561801A
+:10857000240AFF8001A45821016C4021010A4824EB
+:10858000000931403107007F00C728253C04200046
+:1085900000A418253C028000AC43083003E000082A
+:1085A000AF80001C27BDFFE8AFB000100080802125
+:1085B000AFBF00140E000E3100A020210050482152
+:1085C000240BFF80012B5024000A39403128007F02
+:1085D0003C0620008FBF00148FB0001000E8282553
+:1085E00034C2000100A218253C04800027BD0018F9
+:1085F000AC83083003E00008AF8000203C05800811
+:108600008CA700603C0680080087102B14400011E6
+:108610002C8340008CA800602D0340001060000FE8
+:10862000240340008CC900600089282B14A000029C
+:10863000008018218CC3006000035A42000B308078
+:108640003C0A0800254A554000CA202103E00008E2
+:108650008C8200001460FFF32403400000035A42A0
+:10866000000B30803C0A0800254A554000CA2021F2
+:1086700003E000088C8200003C05800890A60008FA
+:108680009384009024C20001304200FF3043007FF9
+:108690001064000C00023827A0A200083C048000EF
+:1086A0008C85017804A0FFFE8F8A008824090002CF
+:1086B0003C081000AC8A0140A089014403E0000896
+:1086C000AC8801780A000EB630E2008027BDFFC8F2
+:1086D0003C05800834A40080AFBF0034AFBE00303A
+:1086E000AFB7002CAFB60028AFB50024AFB4002060
+:1086F000AFB3001CAFB20018AFB10014AFB00010A0
+:10870000948300789482007A104300CD2405FFFF03
+:108710003C1E80080080B8210A000F923C168000A1
+:10872000108A00C88FBF00348F8400883C0B08007B
+:108730008D6B005C240AFF803C07800E01644021A1
+:10874000010A4824AEC9002C96E6007A3102007F67
+:108750000047182130C57FFF000580400203A82193
+:1087600096BF00003C1908008F390058240FFF8085
+:1087700033F53FFF032488210015C1800238902182
+:10878000024F58243C0C0100016C5025324E007FF2
+:108790003C0D800C01CD9021028028210E000E346A
+:1087A000AECA00288E4800108E4900308F86002007
+:1087B0002402000201093823AE470010A0C20000C5
+:1087C00096E3005C8E4400308F9100200E000E8FE7
+:1087D0003070FFFF00022B800205C8253C1F4200BD
+:1087E000033FC025AE3800048E5100048F8700205F
+:1087F0008E4F000024080008ACF1001CACEF0018FC
+:10880000ACE0000CACE000109250000A2406000519
+:108810002405C000320E00FFA4EE0014964D00089F
+:1088200002E09821A4ED0016924C000A3C0D80084D
+:10883000318B00FFA4EB00209644000835AC01000A
+:10884000A4E40022ACE00024924A000B314900FF6E
+:10885000A4E90002A0E800018E4200308F830020CE
+:108860002408FFBFAC620008A06600308F8E002095
+:108870002403FFDF95DF003203E5C8240335C0255C
+:10888000A5D8003291D10032322F003F35F00040A0
+:10889000A1D000328F890020AD2000348D8B00C024
+:1088A000AD2B00389124003C3C0B7FFF308A007FC9
+:1088B000A12A003C8F8600203564FFFF90C7003C52
+:1088C00000E81024A0C2003C8F9900209325003CB2
+:1088D00000A3F824A33F003C8E5800348F8C002066
+:1088E000AD9800408E4F002C8E51003001F1802356
+:1088F000AD900044918E004831CD007FA18D00489D
+:108900008F8500208E4A00308CA900480144402405
+:108910000136382400E83025ACA600489242000A0F
+:10892000A0A2004C964300088F9F0020A7E3004EB2
+:108930008E5000308E4400300E0002F08FC5006073
+:1089400092F1007C0002C1400002C90003197821A5
+:10895000322E00020040282111C00003020F8021A6
+:108960000002208002048021926D007C31AC000462
+:108970001180000200057080020E80218E440030BC
+:108980008F87002024058000308B0003000B5023CC
+:108990003149000302094021ACE800349664007AB2
+:1089A0009662007A9670007A30467FFF24C30001F9
+:1089B000307F7FFF0205C824033FC025A678007AD8
+:1089C0009671007A3C1208008E520060322F7FFFB1
+:1089D00011F20028000000008F8400880E000E694C
+:1089E00002A028218F8400880E000E7902802821A1
+:1089F0000E000EAE0000000096F3007896F4007AA8
+:108A00001293000F000028213C0980083524010042
+:108A100093C80008908700C53114007F30E400FF40
+:108A20000284302B14C0FF3E268A0001938D0090F3
+:108A3000268B0001008D6021158BFF3C8F84008800
+:108A40008FBF00348FBE00308FB7002C8FB6002848
+:108A50008FB500248FB400208FB3001C8FB2001894
+:108A60008FB100148FB0001000A0102103E00008A7
+:108A700027BD0038967F007A03E5C824A679007ADE
+:108A80009278007A926E007A331100FF001179C259
+:108A9000000F9027001269C031CC007F018D28257E
+:108AA000A265007A0A000F878F8400883C0380004B
+:108AB0003084FFFF30A5FFFFAC640018AC65001CDC
+:108AC00003E000088C62001427BDFFA83C06800864
+:108AD000AFBF0054AFBE0050AFB7004CAFB60048B8
+:108AE000AFB50044AFB40040AFB3003CAFB2003804
+:108AF000AFB10034AFB0003034C80100910500C5FB
+:108B000090C700083084FFFF30A500FF30E2007FEF
+:108B10000045182AAFA40010A7A000181060009C00
+:108B2000AFA0001490CA00083149007F00A930238B
+:108B300024D4FFFF0014882B8FB300100013902B58
+:108B400002328024520000858FB400143C03800858
+:108B500094790052947E00508FB60010033EC023DB
+:108B60000018BC00001714030016FC0002C2A82A5B
+:108B700016A00002001F2C030040282100143C0016
+:108B80000007240300A4102A5440000100A0202163
+:108B90002885000914A000020080B02124160008D6
+:108BA0003C0C80088D860048001659808D88004C4A
+:108BB0003C0380003169FFFF3C0A0010012A202598
+:108BC00034700400AC660038AF90008CAC68003C98
+:108BD000AC64003000000000000000000000000055
+:108BE0000000000000000000000000000000000085
+:108BF000000000008C6E000031CD002011A0FFFDB0
+:108C00000016902A0251782411E000360000B821A5
+:108C10003C1580003C118008922200088EA40100BF
+:108C200000008821305E007F0E000E3403C0282132
+:108C30008E1F00108EA4010033F93FFF032028216E
+:108C40000E000E4CAFB9001C921800003302003F1A
+:108C50002C5300085260000D000080212405000103
+:108C6000004518043067005D14E000B18F92008C5D
+:108C7000306400021480014D8F86008C30680080C3
+:108C80005500004A96180012000080218EA40100B1
+:108C90000E000E698FA5001C8EA401000E000E7937
+:108CA00003C028211200004F3C07800826E4000181
+:108CB0008F8C008C0004BC000291A0230017BC0321
+:108CC00002F6302A0014882B259F00402412000150
+:108CD00000D1F02403E08021AF9F008C17C0FFCDAE
+:108CE000AFB200143C07800894E800508FB3001026
+:108CF0003C05800002E810213C0D0020A4E2005059
+:108D0000ACAD003094F5005094F600520277502339
+:108D10003149FFFF12D50041AFA900108CF6004C7D
+:108D2000001749808CF7004802C9F8210000202173
+:108D300003E9302B02E4602101868021ACFF004C66
+:108D4000ACF000488FB300100013902B0232802447
+:108D50001600FF7F3C0380088FB400148FBF0054BF
+:108D60008FBE00503A8200018FB7004C8FB600488A
+:108D70008FB500448FB400408FB3003C8FB20038F1
+:108D80008FB100348FB0003003E0000827BD0058D9
+:108D900090CF0008938C009031EE007F00AE6823E6
+:108DA000018D58210A000FDD2574FFFF8F84008894
+:108DB00024100001A7B800180E000E5D97A500183A
+:108DC0008EA401000E000E698FA5001C8EA4010068
+:108DD0000E000E7903C028211600FFB526E400011D
+:108DE0003C07800894E800508FB300103C058000D9
+:108DF00002E810213C0D0020A4E20050ACAD003090
+:108E000094F5005094F60052027750233149FFFF49
+:108E10000014882B16D5FFC1AFA9001094FE005492
+:108E20008CF0004433D8FFFE001878C0020F702188
+:108E3000ACAE003C8CF900448CA3003C03235823C7
+:108E4000196002EA000000008CF200402642000196
+:108E5000ACA200383C05005034A700103C03800051
+:108E6000AC670030000000000000000000000000BF
+:108E700000000000000000000000000000000000F2
+:108E8000000000008C7F000033E6002010C0FFFDD2
+:108E90003C108008960D00543C1780003C0680086A
+:108EA00031B30001001350C00157B0218EC9040036
+:108EB0003C0708008CE700443C040020ACC9004893
+:108EC0008ED50404240C0001ACD5004C10EC02D06B
+:108ED000AEE40030961800523C0508008CA5004016
+:108EE00000B87821A60F0052960E005425C3000149
+:108EF000A6030054961900543324FFFF5487FF0F34
+:108F00008FB3001030A5FFFF0E000FBBA60000546A
+:108F10003C0508008CA50024961200520045382319
+:108F20000247F023A61E00520A000FDF8FB3001085
+:108F30008F93001C3C0700808E4400283C1FFFEFED
+:108F400037F9FFFFAE6400008E420024A260000AE1
+:108F50003C0FFF9FAE6200049245002C35EEFFFFF0
+:108F60003C0C0040A265000C8E71000CA265000B49
+:108F70003C0600FF0227C0250319682401AE5824CF
+:108F8000016C5025AE6A000C8E490004AE600018DA
+:108F900034D0FFFFAE6900148E48002C8F82008809
+:108FA000A660000801102024AE6400108E51000855
+:108FB00096470012AE7100208E58000C30E33FFF40
+:108FC00000032980AE7800248E4C001400A2F82102
+:108FD00030F90001AE6C00288E4B0018001F71C2E2
+:108FE00000197B80AE6B002C8E49001C01CF6821DC
+:108FF000A66D001CAE690030964A00028E46002025
+:10900000A66A001EAE66003492430033307000043E
+:1090100056000006924B00003C06800834D0010048
+:109020008E0800C0AE680030924B00008F8A00208E
+:10903000A14B0030924900333123000250600007F9
+:10904000924400018F8C0020240FFF80918E00300D
+:1090500001CF6825A18D0030924400018F8200204D
+:109060002418FFBF240AFFDFA04400318F9900209D
+:109070003C088008350400809331003C323F007F7B
+:10908000A33F003C8F8D002091AF003C01F870247D
+:10909000A1AE003C8F8700208E6C001490E3003C52
+:1090A0002D8B0001000B4940006A302400C9802547
+:1090B000A0F0003C964500128F870020A4E5003206
+:1090C0008E450004909F007C30A20003000288239C
+:1090D0003239000300B9102133F8000217000002F2
+:1090E00024440034244400303C038008346600806B
+:1090F00090C9007C00A980243208000415000002F9
+:1091000024830004008018218F840020240800029A
+:10911000ACE30034A08800009242003F8F9F002003
+:109120003C188008370F0080A3E200018F910020D7
+:109130009259003F8E440004A639000295EE005C6F
+:109140000E000E8F31D0FFFF00026B80020D5825FC
+:109150003C0C4200016C2825AE2500048E4A0038E4
+:109160008F850020ACAA00188E470034ACA7001CE5
+:10917000ACA0000CACA00010A4A00014A4A0001689
+:10918000A4A00020A4A00022ACA000248E620014A1
+:109190005040000124020001ACA200080E000EAEF7
+:1091A000241100010A0010332410000190D30001A3
+:1091B000327200201240018A241000013C0A80080B
+:1091C0003547008090E3007C8F93001CAFA0002403
+:1091D0003069000111200011AFB000203C0580086B
+:1091E0008CCB00148CAC0060016C882B1620000323
+:1091F000016028213C1080088E0500603C0F80082B
+:1092000035E300808C6E007000AE682B15A0000264
+:1092100000A020218C640070AFA400248F82FF4C3A
+:109220008CC400148C5900700099C02B53000001AD
+:109230008C4400708FA200240082F82313E0000306
+:10924000AFBF002824040002AFA400208FB200208A
+:109250000292402B1500015B000018218CC50038DC
+:109260008E6B000C3C0C0080AE6500008CC9003495
+:109270003C11FF9F016C5025AE69000490C8003F6F
+:109280003623FFFF014310243C1200203C04FFEF73
+:10929000A268000B00523825349FFFFF00FFC02456
+:1092A0003C1900088F87008C03197825AE6F000CDD
+:1092B0008CED0014AE6000188FB10024AE6D001468
+:1092C0008CF000188FAE0028AE70001C8CE50008F2
+:1092D000022E6021AE6500248CEB000CA6600038E5
+:1092E000A660003AAE6C002CAE600028AE6B002089
+:1092F0008CEA00148FA30028015148230123302356
+:1093000010C00011AE66001090E9003D8E620004AE
+:109310008E7F00000009910000527821000020217A
+:1093200001F2C82B03E4C02103197021AE6F0004C1
+:10933000AE6E000090ED003DA26D000A8F90008C93
+:1093400096060006A66600088F98002024190002E1
+:109350003C0F80088FA4002435EE0080A319000084
+:1093600095CD005C8F9200200E000E8F31B0FFFF74
+:1093700000022B80020560253C0642008F85008C90
+:1093800001865825AE4B00048F8400208CB1003834
+:10939000AC9100188CA30034AC83001CAC80000C92
+:1093A000AC800010A4800014A4800016A4800020CB
+:1093B000A4800022AC80002490AA003F8FA7002444
+:1093C000A48A000210E0000C240900018FBF0028CD
+:1093D00053E0018890A2003D90A2003E2448000185
+:1093E000A08800018F8500208FA40024ACA4000871
+:1093F0000A0012133C118008A08900018F8500200B
+:1094000024020001ACA200083C1180083623008031
+:10941000906A007C3147000214E000022406003408
+:10942000240600308F8D008C3C0F800835EE0080C4
+:1094300091AC000091C8007C8FB00024A0AC00303B
+:109440008F91008C8F8200208FAA00249227000128
+:1094500032120003240B0004A047003101721823CC
+:109460008F84008C8F8B0020241FC00094980012E2
+:109470009579003230690003330F3FFF033F7024BA
+:1094800001CF6825A56D00329165003200CA3021F8
+:1094900000C9302130B0003F360C0040A16C0032D2
+:1094A0008FB2002431070004124000028F85002093
+:1094B00000C730213C048008ACA600343488010089
+:1094C0008D1900C08FBF0024240DFFBFACB9003838
+:1094D00090AF003C2FF800012412FFDF31EE007F37
+:1094E000A0AE003C8F8B0020001889409170003C9A
+:1094F000020D6024A16C003C8F87002090E3003CAB
+:109500000072502401511025A0E2003C8F88008C8D
+:109510008F9900208D090020AF2900408D0600247E
+:10952000AF2600448D040028AF2400488D1F002C76
+:10953000AF3F004C0E000EAE000000008FB80020C0
+:10954000240500025705009F8FA300203C1F8000C8
+:109550003C1280088FE40100925800088F92FF4C63
+:109560000E000E343305007F8F8E00208FAF002059
+:109570008FA40028A1CF00009659005C8F91002095
+:109580000E000E8F3330FFFF00025B80020B682558
+:109590003C0842008F8B008C01A83025AE260004C9
+:1095A0008D7000388F8600200000282100051100F2
+:1095B000ACD000188D6C00343C047FFF3488FFFF72
+:1095C000ACCC001C9171003E8CCA001C8CDF0018D2
+:1095D0000011390000111F02014770210043482586
+:1095E00001C7C02B03E9782101F8C821ACCE001CCB
+:1095F000ACD90018ACC0000CACC00010916D003E9E
+:109600008FAA002824070005A4CD0014957000043B
+:109610002418C0000148C824A4D00016916C003E54
+:1096200001402021A4CC002095650004A4C500229F
+:10963000ACC000249163003FA4C300029171003DBF
+:1096400026220001A0C200018F8900203C02800870
+:1096500034460100AD2A0008A12700308F91002078
+:109660008F9F008C2402FF80962F003297EE00120D
+:10967000030F802431CD3FFF020D6025A62C003260
+:10968000922500322418FFBF2410FFDF30AB003FCB
+:1096900035630040A22300328F9F00202403FFFF88
+:1096A000AFE000348CCA00C0AFEA003893E7003C5A
+:1096B00030E9007FA3E9003C8F8D00203C09800049
+:1096C00091AF003C01F87024A1AE003C8F8B0020CC
+:1096D000916C003C01902824A165003C8F870020FC
+:1096E000ACE300408FB100243C038008ACF100449F
+:1096F00090EA004801423025A0E600488F90002003
+:109700008F8E008C8E1F004803E9C0240319782532
+:10971000AE0F004891CD003EA20D004C8F8C008C06
+:109720008F8B002095850004A565004E0E0002F089
+:109730008C650060924A007C004028218FA600289A
+:109740000002114000058900005138213149000212
+:109750001120000300C71821000520800064182193
+:109760003C028008344A00809147007C30E90004C4
+:10977000112000038FB9002800056080006C1821BB
+:10978000240B00048F91002033300003017040232C
+:10979000310D0003006D3021AE2600343C038008FB
+:1097A000A66500383C0580008CA401009073000879
+:1097B0000E000E793265007F0E000EAE0000000034
+:1097C0008FA300200003782B000F80230290A02499
+:1097D00000608021006088210A0010330010802B77
+:1097E0008F91001C8CD8003824190003A620000893
+:1097F000AE3800008CCF0034A220000A8F8E008C7F
+:10980000AE2F00043C05008091CB003FA239000C34
+:109810008E28000C3C0DFF9FA22B000B010510258C
+:1098200035A3FFFF3C13FFEF8F8E008C00433824DD
+:10983000366AFFFF00EA4824AE29000C8DC40014EC
+:1098400095D800128F860088AE2400108DCC0014AD
+:10985000AE200018AE200020AE2C0014AE20002454
+:109860008DDF0018330C3FFF000C9180AE3F0028C5
+:109870008DCF00080246C821330B0001AE2F003007
+:109880008DC3000C8F930020001941C2000B2B8068
+:1098900001056821240200023C0A8008A62D001C54
+:1098A000A6200034AE23002C35470080A2620000C1
+:1098B00094E9005C8F9900203C044200313FFFFF97
+:1098C00003E43025AF2600048F98008C240E00019D
+:1098D0002402C0008F12003824060034AF32001872
+:1098E0008F0F00343C12800836580080AF2F001CC8
+:1098F000AF20000CAF200010A7200014A7200016F6
+:10990000A7200020A7200022AF200024A7300002BB
+:10991000A32E00018F8D00208F8B008CADB000082E
+:1099200091680000A1A800308F91008C8F830020E7
+:1099300092250001A06500318F9F002097F300322F
+:1099400002625024014C3825A7E7003293E9003227
+:109950003124003FA3E40032930F007C31EE00027B
+:1099600015C000028F840020240600303C0E8008C1
+:10997000AC86003435D101008E3900C02403FFBF0E
+:1099800002008821AC990038908B003C0010802B9D
+:109990003165007FA085003C8F8D002091A8003CA0
+:1099A00001031024A1A2003C8F87002090F3003C0B
+:1099B000366A0020A0EA003C8F9F008C8F92002026
+:1099C0008FE90020AE4900408FE40024AE440044FB
+:1099D0008FEC0028AE4C00488FE6002C0E000EAE37
+:1099E000AE46004C0A001033000000000A0010A42C
+:1099F0008CE2004024480001A08800018F850020EF
+:109A00008FA40024ACA400080A0012133C118008A3
+:109A100094CB00523C0808008D080024010B102153
+:109A2000A4C200520A000FDF8FB3001027BDFFE071
+:109A30003C0D8008AFB20018AFB00010AFBF001CE3
+:109A4000AFB1001435B200808E4C001835A801006B
+:109A5000964B000695A70050910900EC000C5602A9
+:109A6000016728233143007F312600FF24020003D1
+:109A7000A3830090AF84008810C2001B30B0FFFFAA
+:109A8000910600EC2412000530C200FF1052003392
+:109A900000000000160000098FBF001C8FB20018E4
+:109AA0008FB100148FB00010240D0C003C0C80000E
+:109AB00027BD002003E00008AD8D00240E000FC27A
+:109AC000020020218FBF001C8FB200188FB100143C
+:109AD0008FB00010240D0C003C0C800027BD00202E
+:109AE00003E00008AD8D0024965800789651007A66
+:109AF000924E007D0238782631E8FFFF31C400C065
+:109B0000148000092D11000116000037000000002C
+:109B10005620FFE28FBF001C0E000EC300000000A5
+:109B20000A0013B78FBF001C1620FFDA00000000E8
+:109B30000E000EC3000000001440FFD88FBF001CB1
+:109B40001600002200000000925F007D33E2003F1B
+:109B5000A242007D0A0013B78FBF001C950900DAEE
+:109B60008F86006400802821240400050E0006660C
+:109B70003130FFFF978300763C0480002465FFFFAF
+:109B8000A78500768C8A01B80540FFFE0000000022
+:109B9000AC8001808FBF001CAC9001848FB2001894
+:109BA0008FB100148FB000103C0760133C0B100005
+:109BB000240D0C003C0C800027BD0020AC870188E0
+:109BC000AC8B01B803E00008AD8D00240E000FC27D
+:109BD000020020215040FFB18FBF001C925F007D2A
+:109BE0000A0013E433E2003F0E000FC202002021FE
+:109BF0001440FFAA8FBF001C1220000700000000C5
+:109C00009259007D3330003F36020040A242007D71
+:109C10000A0013B78FBF001C0E000EC30000000027
+:109C20005040FF9E8FBF001C9259007D3330003F93
+:109C30000A00141336020040000411C003E00008BB
+:109C4000244202403C050006008510253C038000AC
+:109C5000AC620030000000000000000000000000C6
+:109C60003C0580008CA7000030E6001010C0FFFD0E
+:109C7000000000008CAB003C8CAA003C0164482131
+:109C8000012A402B110000043C0680008CAD0038F6
+:109C900025AC0001ACAC00388CCF003C01E4702155
+:109CA00003E00008ACCE003C27BDFFD0AFB20018E7
+:109CB000AFB00010AFBF0028AFB50024AFB4002094
+:109CC000AFB3001CAFB1001400A0902114A000128B
+:109CD000008080218F8200240002188014600037E9
+:109CE000240400100E001421000000008FBF002883
+:109CF0008FB500248FB400208FB3001C8FB20018E2
+:109D00008FB100148FB000100000102127BD00306B
+:109D100003E00008AF80002410A0001E000088218E
+:109D20003C138000241400200A0014603C15000538
+:109D3000263100040232502B11400017024010213E
+:109D40008F8800248E0700002404008000084880CB
+:109D50000133182125060001AC6704002610000419
+:109D600014D4FFF3AF8600240E001421000000007D
+:109D7000AE75003000000000000000000000000090
+:109D800000000000263100040232502B1540FFEC89
+:109D9000AF800024024010218FBF00288FB500241F
+:109DA0008FB400208FB3001C8FB200188FB1001445
+:109DB0008FB0001003E0000827BD0030000320230F
+:109DC0003085000F0A0014490065202127BDFFD807
+:109DD0003C03800000A03821AC670038AFB100140C
+:109DE000AC66003C008088213C060022AC66003056
+:109DF000AFB00010AC7100283C10800C3C04800C0B
+:109E000024050070AFBF0024AFB40020AFB3001C26
+:109E10000E00143AAFB20018260400800E00143A67
+:109E200024050080260401000E00143A240500F0E9
+:109E30003C0208008C4200641040001300008021A6
+:109E40003C1480002413FF803C12800C0E00141E72
+:109E50000200202100514821312A007F0133402493
+:109E60000152202124050050AE8800280E00143A2B
+:109E7000261000013C0508008CA500640205202B7B
+:109E80001480FFF2000000003C0608008CC6006051
+:109E900010C00015000080213C1480002413FF80B6
+:109EA0003C12800C3C1908008F3900580010C1800A
+:109EB000240500400331782101F8682131AE007F8C
+:109EC00001B3602401D22021AE8C00280E00143A88
+:109ED000261000013C0608008CC600600206582BC4
+:109EE0001560FFF0000000003C1008008E10005CC0
+:109EF0002414FF803C1F800C0211982102749024CE
+:109F00003262007F3C118000005F2021AE320028C9
+:109F10000E00143A000628408FBF00248FB40020A2
+:109F20008FB3001C8FB200188FB100148FB00010D7
+:109F300000002021000028210A00143A27BD002833
+:109F40008F83003C8C62000410400003000000007E
+:109F500003E00008000000008C6400108C6500081D
+:089F60000A0014838C66000C5A
+:089F6800000000000000001BD6
+:109F70000000000F0000000A0000000800000006BA
+:109F800000000005000000050000000400000004BF
+:109F900000000003000000030000000300000003B5
+:109FA00000000003000000020000000200000002A8
+:109FB0000000000200000002000000020000000299
+:109FC0000000000200000002000000020000000289
+:109FD0000000000200000002000000020000000279
+:0C9FE00000000001000000010000000172
+:049FEC0080080100E8
+:109FF0008008008080080000080017900800179073
+:10A00000080017C8080017C8080017DC080017ACBC
+:10A0100008001A04080019D008001A5C08001A5C2D
+:10A0200008001AE408001A148008024008002154AD
+:10A0300008001FA00800217C0800221408002364E7
+:10A04000080023B0080024D4080023DC08002460A2
+:10A0500008002010080029880800292C08001FBCCF
+:10A0600008001FBC08001FBC080025480800254840
+:10A0700008001FBC08001FBC0800280408001FBC03
+:10A0800008001FBC08001FBC08001FBC0800286493
+:10A0900008001FBC08001FBC08001FBC08001FBC34
+:10A0A00008001FBC08001FBC08001FBC08001FBC24
+:10A0B00008001FBC08001FBC08001FBC08001FBC14
+:10A0C00008001FBC08001FBC080023D008001FBCEC
+:10A0D00008001FBC080028D408001FBC08001FBCD3
+:10A0E00008001FBC08001FBC08001FBC08001FBCE4
+:10A0F00008001FBC08001FBC08001FBC08001FBCD4
+:10A1000008001FBC08001FBC08001FBC08001FBCC3
+:10A1100008001FBC08001FBC08001FBC080027283F
+:10A1200008001FBC08001FBC08002690080025EC92
+:10A130000800375008003724080036F0080036C4FD
+:10A14000080036A408003658800801008008008006
+:08A15000800800008008008077
+:08A158000A000C760000000073
+:10A16000000000000000000D727870342E362E3191
+:10A17000360000000406100300000000000000018B
+:10A1800000000000000000000000000000000000CF
+:10A1900000000000000000000000000000000000BF
+:10A1A00000000000000000000000000000000000AF
+:10A1B000000000000000000000000000000000009F
+:10A1C000000000000000000000000000000000008F
+:10A1D000000000000000000000000000000000007F
+:10A1E000000000000000000000000000000000006F
+:10A1F000000000000000000000000000000000005F
+:10A20000000000000000000000000000000000004E
+:10A21000000000000000000000000000000000003E
+:10A22000000000000000000000000000000000002E
+:10A23000000000000000000000000000000000001E
+:10A24000000000000000000000000000000000000E
+:10A2500000000000000000000000000000000000FE
+:10A2600000000000000000000000000000000000EE
+:10A2700000000000000000000000000000000000DE
+:10A2800000000000000000000000000000000000CE
+:10A2900000000000000000000000000000000000BE
+:10A2A00000000000000000000000000000000000AE
+:10A2B000000000000000000000000000000000009E
+:10A2C000000000000000000000000000000000008E
+:10A2D000000000000000000000000000000000007E
+:10A2E000000000000000000000000000000000006E
+:10A2F000000000000000000000000000000000005E
+:10A30000000000000000000000000000000000004D
+:10A31000000000000000000000000000000000003D
+:10A32000000000000000000000000000000000002D
+:10A33000000000000000000000000000000000001D
+:10A34000000000000000000000000000000000000D
+:10A3500000000000000000000000000000000000FD
+:10A3600000000000000000000000000000000000ED
+:10A3700000000000000000000000000000000000DD
+:10A3800000000000000000000000000000000000CD
+:10A3900000000000000000000000000000000000BD
+:10A3A00000000000000000000000000000000000AD
+:10A3B000000000000000000000000000000000009D
+:10A3C000000000000000000000000000000000008D
+:10A3D000000000000000000000000000000000007D
+:10A3E000000000000000000000000000000000006D
+:10A3F000000000000000000000000000000000005D
+:10A40000000000000000000000000000000000004C
+:10A41000000000000000000000000000000000003C
+:10A42000000000000000000000000000000000002C
+:10A43000000000000000000000000000000000001C
+:10A44000000000000000000000000000000000000C
+:10A4500000000000000000000000000000000000FC
+:10A4600000000000000000000000000000000000EC
+:10A4700000000000000000000000000000000000DC
+:10A4800000000000000000000000000000000000CC
+:10A4900000000000000000000000000000000000BC
+:10A4A00000000000000000000000000000000000AC
+:10A4B000000000000000000000000000000000009C
+:10A4C000000000000000000000000000000000008C
+:10A4D000000000000000000000000000000000007C
+:10A4E000000000000000000000000000000000006C
+:10A4F000000000000000000000000000000000005C
+:10A50000000000000000000000000000000000004B
+:10A51000000000000000000000000000000000003B
+:10A52000000000000000000000000000000000002B
+:10A53000000000000000000000000000000000001B
+:10A54000000000000000000000000000000000000B
+:10A5500000000000000000000000000000000000FB
+:10A5600000000000000000000000000000000000EB
+:10A5700000000000000000000000000000000000DB
+:10A5800000000000000000000000000000000000CB
+:10A5900000000000000000000000000000000000BB
+:10A5A00000000000000000000000000000000000AB
+:10A5B000000000000000000000000000000000009B
+:10A5C000000000000000000000000000000000008B
+:10A5D000000000000000000000000000000000007B
+:10A5E000000000000000000000000000000000006B
+:10A5F000000000000000000000000000000000005B
+:10A60000000000000000000000000000000000004A
+:10A61000000000000000000000000000000000003A
+:10A62000000000000000000000000000000000002A
+:10A63000000000000000000000000000000000001A
+:10A64000000000000000000000000000000000000A
+:10A6500000000000000000000000000000000000FA
+:10A6600000000000000000000000000000000000EA
+:10A6700000000000000000000000000000000000DA
+:10A6800000000000000000000000000000000000CA
+:10A6900000000000000000000000000000000000BA
+:10A6A00000000000000000000000000000000000AA
+:10A6B000000000000000000000000000000000009A
+:10A6C000000000000000000000000000000000008A
+:10A6D000000000000000000000000000000000007A
+:10A6E000000000000000000000000000000000006A
+:10A6F000000000000000000000000000000000005A
+:10A700000000000000000000000000000000000049
+:10A710000000000000000000000000000000000039
+:10A720000000000000000000000000000000000029
+:10A730000000000000000000000000000000000019
+:10A740000000000000000000000000000000000009
+:10A7500000000000000000000000000000000000F9
+:10A7600000000000000000000000000000000000E9
+:10A7700000000000000000000000000000000000D9
+:10A7800000000000000000000000000000000000C9
+:10A7900000000000000000000000000000000000B9
+:10A7A00000000000000000000000000000000000A9
+:10A7B0000000000000000000000000000000000099
+:10A7C0000000000000000000000000000000000089
+:10A7D0000000000000000000000000000000000079
+:10A7E0000000000000000000000000000000000069
+:10A7F0000000000000000000000000000000000059
+:10A800000000000000000000000000000000000048
+:10A810000000000000000000000000000000000038
+:10A820000000000000000000000000000000000028
+:10A830000000000000000000000000000000000018
+:10A840000000000000000000000000000000000008
+:10A8500000000000000000000000000000000000F8
+:10A8600000000000000000000000000000000000E8
+:10A8700000000000000000000000000000000000D8
+:10A8800000000000000000000000000000000000C8
+:10A8900000000000000000000000000000000000B8
+:10A8A00000000000000000000000000000000000A8
+:10A8B0000000000000000000000000000000000098
+:10A8C0000000000000000000000000000000000088
+:10A8D0000000000000000000000000000000000078
+:10A8E0000000000000000000000000000000000068
+:10A8F0000000000000000000000000000000000058
+:10A900000000000000000000000000000000000047
+:10A910000000000000000000000000000000000037
+:10A920000000000000000000000000000000000027
+:10A930000000000000000000000000000000000017
+:10A940000000000000000000000000000000000007
+:10A9500000000000000000000000000000000000F7
+:10A9600000000000000000000000000000000000E7
+:10A9700000000000000000000000000000000000D7
+:10A9800000000000000000000000000000000000C7
+:10A9900000000000000000000000000000000000B7
+:10A9A00000000000000000000000000000000000A7
+:10A9B0000000000000000000000000000000000097
+:10A9C0000000000000000000000000000000000087
+:10A9D0000000000000000000000000000000000077
+:10A9E0000000000000000000000000000000000067
+:10A9F0000000000000000000000000000000000057
+:10AA00000000000000000000000000000000000046
+:10AA10000000000000000000000000000000000036
+:10AA20000000000000000000000000000000000026
+:10AA30000000000000000000000000000000000016
+:10AA40000000000000000000000000000000000006
+:10AA500000000000000000000000000000000000F6
+:10AA600000000000000000000000000000000000E6
+:10AA700000000000000000000000000000000000D6
+:10AA800000000000000000000000000000000000C6
+:10AA900000000000000000000000000000000000B6
+:10AAA00000000000000000000000000000000000A6
+:10AAB0000000000000000000000000000000000096
+:10AAC0000000000000000000000000000000000086
+:10AAD0000000000000000000000000000000000076
+:10AAE0000000000000000000000000000000000066
+:10AAF0000000000000000000000000000000000056
+:10AB00000000000000000000000000000000000045
+:10AB10000000000000000000000000000000000035
+:10AB20000000000000000000000000000000000025
+:10AB30000000000000000000000000000000000015
+:10AB40000000000000000000000000000000000005
+:10AB500000000000000000000000000000000000F5
+:10AB600000000000000000000000000000000000E5
+:10AB700000000000000000000000000000000000D5
+:10AB800000000000000000000000000000000000C5
+:10AB900000000000000000000000000000000000B5
+:10ABA00000000000000000000000000000000000A5
+:10ABB0000000000000000000000000000000000095
+:10ABC0000000000000000000000000000000000085
+:10ABD0000000000000000000000000000000000075
+:10ABE0000000000000000000000000000000000065
+:10ABF0000000000000000000000000000000000055
+:10AC00000000000000000000000000000000000044
+:10AC10000000000000000000000000000000000034
+:10AC20000000000000000000000000000000000024
+:10AC30000000000000000000000000000000000014
+:10AC40000000000000000000000000000000000004
+:10AC500000000000000000000000000000000000F4
+:10AC600000000000000000000000000000000000E4
+:10AC700000000000000000000000000000000000D4
+:10AC800000000000000000000000000000000000C4
+:10AC900000000000000000000000000000000000B4
+:10ACA00000000000000000000000000000000000A4
+:10ACB0000000000000000000000000000000000094
+:10ACC0000000000000000000000000000000000084
+:10ACD0000000000000000000000000000000000074
+:10ACE0000000000000000000000000000000000064
+:10ACF0000000000000000000000000000000000054
+:10AD00000000000000000000000000000000000043
+:10AD10000000000000000000000000000000000033
+:10AD20000000000000000000000000000000000023
+:10AD30000000000000000000000000000000000013
+:10AD40000000000000000000000000000000000003
+:10AD500000000000000000000000000000000000F3
+:10AD600000000000000000000000000000000000E3
+:10AD700000000000000000000000000000000000D3
+:10AD800000000000000000000000000000000000C3
+:10AD900000000000000000000000000000000000B3
+:10ADA00000000000000000000000000000000000A3
+:10ADB0000000000000000000000000000000000093
+:10ADC0000000000000000000000000000000000083
+:10ADD0000000000000000000000000000000000073
+:10ADE0000000000000000000000000000000000063
+:10ADF0000000000000000000000000000000000053
+:10AE00000000000000000000000000000000000042
+:10AE10000000000000000000000000000000000032
+:10AE20000000000000000000000000000000000022
+:10AE30000000000000000000000000000000000012
+:10AE40000000000000000000000000000000000002
+:10AE500000000000000000000000000000000000F2
+:10AE600000000000000000000000000000000000E2
+:10AE700000000000000000000000000000000000D2
+:10AE800000000000000000000000000000000000C2
+:10AE900000000000000000000000000000000000B2
+:10AEA00000000000000000000000000000000000A2
+:10AEB0000000000000000000000000000000000092
+:10AEC0000000000000000000000000000000000082
+:10AED0000000000000000000000000000000000072
+:10AEE0000000000000000000000000000000000062
+:10AEF0000000000000000000000000000000000052
+:10AF00000000000000000000000000000000000041
+:10AF10000000000000000000000000000000000031
+:10AF20000000000000000000000000000000000021
+:10AF30000000000000000000000000000000000011
+:10AF40000000000000000000000000000000000001
+:10AF500000000000000000000000000000000000F1
+:10AF600000000000000000000000000000000000E1
+:10AF700000000000000000000000000000000000D1
+:10AF800000000000000000000000000000000000C1
+:10AF900000000000000000000000000000000000B1
+:10AFA00000000000000000000000000000000000A1
+:10AFB0000000000000000000000000000000000091
+:10AFC0000000000000000000000000000000000081
+:10AFD0000000000000000000000000000000000071
+:10AFE0000000000000000000000000000000000061
+:10AFF0000000000000000000000000000000000051
+:10B000000000000000000000000000000000000040
+:10B010000000000000000000000000000000000030
+:10B020000000000000000000000000000000000020
+:10B030000000000000000000000000000000000010
+:10B040000000000000000000000000000000000000
+:10B0500000000000000000000000000000000000F0
+:10B0600000000000000000000000000000000000E0
+:10B0700000000000000000000000000000000000D0
+:10B0800000000000000000000000000000000000C0
+:10B0900000000000000000000000000000000000B0
+:10B0A00000000000000000000000000000000000A0
+:10B0B0000000000000000000000000000000000090
+:10B0C0000000000000000000000000000000000080
+:10B0D0000000000000000000000000000000000070
+:10B0E0000000000000000000000000000000000060
+:10B0F0000000000000000000000000000000000050
+:10B10000000000000000000000000000000000003F
+:10B11000000000000000000000000000000000002F
+:10B12000000000000000000000000000000000001F
+:10B13000000000000000000000000000000000000F
+:10B1400000000000000000000000000000000000FF
+:10B1500000000000000000000000000000000000EF
+:10B1600000000000000000000000000000000000DF
+:10B1700000000000000000000000000000000000CF
+:10B1800000000000000000000000000000000000BF
+:10B1900000000000000000000000000000000000AF
+:10B1A000000000000000000000000000000000009F
+:10B1B000000000000000000000000000000000008F
+:10B1C000000000000000000000000000000000007F
+:10B1D000000000000000000000000000000000006F
+:10B1E000000000000000000000000000000000005F
+:10B1F000000000000000000000000000000000004F
+:10B20000000000000000000000000000000000003E
+:10B21000000000000000000000000000000000002E
+:10B22000000000000000000000000000000000001E
+:10B23000000000000000000000000000000000000E
+:10B2400000000000000000000000000000000000FE
+:10B2500000000000000000000000000000000000EE
+:10B2600000000000000000000000000000000000DE
+:10B2700000000000000000000000000000000000CE
+:10B2800000000000000000000000000000000000BE
+:10B2900000000000000000000000000000000000AE
+:10B2A000000000000000000000000000000000009E
+:10B2B000000000000000000000000000000000008E
+:10B2C000000000000000000000000000000000007E
+:10B2D000000000000000000000000000000000006E
+:10B2E000000000000000000000000000000000005E
+:10B2F000000000000000000000000000000000004E
+:10B30000000000000000000000000000000000003D
+:10B31000000000000000000000000000000000002D
+:10B32000000000000000000000000000000000001D
+:10B33000000000000000000000000000000000000D
+:10B3400000000000000000000000000000000000FD
+:10B3500000000000000000000000000000000000ED
+:10B3600000000000000000000000000000000000DD
+:10B3700000000000000000000000000000000000CD
+:10B3800000000000000000000000000000000000BD
+:10B3900000000000000000000000000000000000AD
+:10B3A000000000000000000000000000000000009D
+:10B3B000000000000000000000000000000000008D
+:10B3C000000000000000000000000000000000007D
+:10B3D000000000000000000000000000000000006D
+:10B3E000000000000000000000000000000000005D
+:10B3F000000000000000000000000000000000004D
+:10B40000000000000000000000000000000000003C
+:10B41000000000000000000000000000000000002C
+:10B42000000000000000000000000000000000001C
+:10B43000000000000000000000000000000000000C
+:10B4400000000000000000000000000000000000FC
+:10B4500000000000000000000000000000000000EC
+:10B4600000000000000000000000000000000000DC
+:10B4700000000000000000000000000000000000CC
+:10B4800000000000000000000000000000000000BC
+:10B4900000000000000000000000000000000000AC
+:10B4A000000000000000000000000000000000009C
+:10B4B000000000000000000000000000000000008C
+:10B4C000000000000000000000000000000000007C
+:10B4D000000000000000000000000000000000006C
+:10B4E000000000000000000000000000000000005C
+:10B4F000000000000000000000000000000000004C
+:10B50000000000000000000000000000000000003B
+:10B51000000000000000000000000000000000002B
+:10B52000000000000000000000000000000000001B
+:10B53000000000000000000000000000000000000B
+:10B5400000000000000000000000000000000000FB
+:10B5500000000000000000000000000000000000EB
+:10B5600000000000000000000000000000000000DB
+:10B5700000000000000000000000000000000000CB
+:10B5800000000000000000000000000000000000BB
+:10B5900000000000000000000000000000000000AB
+:10B5A000000000000000000000000000000000009B
+:10B5B000000000000000000000000000000000008B
+:10B5C000000000000000000000000000000000007B
+:10B5D000000000000000000000000000000000006B
+:10B5E000000000000000000000000000000000005B
+:10B5F000000000000000000000000000000000004B
+:10B60000000000000000000000000000000000003A
+:10B61000000000000000000000000000000000002A
+:10B62000000000000000000000000000000000001A
+:10B63000000000000000000000000000000000000A
+:10B6400000000000000000000000000000000000FA
+:10B6500000000000000000000000000000000000EA
+:10B6600000000000000000000000000000000000DA
+:10B6700000000000000000000000000000000000CA
+:10B6800000000000000000000000000000000000BA
+:10B6900000000000000000000000000000000000AA
+:10B6A000000000000000000000000000000000009A
+:10B6B000000000000000000000000000000000008A
+:10B6C000000000000000000000000000000000007A
+:10B6D000000000000000000000000000000000006A
+:10B6E000000000000000000000000000000000005A
+:10B6F000000000000000000000000000000000004A
+:10B700000000000000000000000000000000000039
+:10B710000000000000000000000000000000000029
+:10B720000000000000000000000000000000000019
+:10B730000000000000000000000000000000000009
+:10B7400000000000000000000000000000000000F9
+:10B7500000000000000000000000000000000000E9
+:10B7600000000000000000000000000000000000D9
+:10B7700000000000000000000000000000000000C9
+:10B7800000000000000000000000000000000000B9
+:10B7900000000000000000000000000000000000A9
+:10B7A0000000000000000000000000000000000099
+:10B7B0000000000000000000000000000000000089
+:10B7C0000000000000000000000000000000000079
+:10B7D0000000000000000000000000000000000069
+:10B7E0000000000000000000000000000000000059
+:10B7F0000000000000000000000000000000000049
+:10B800000000000000000000000000000000000038
+:10B810000000000000000000000000000000000028
+:10B820000000000000000000000000000000000018
+:10B830000000000000000000000000000000000008
+:10B8400000000000000000000000000000000000F8
+:10B8500000000000000000000000000000000000E8
+:10B8600000000000000000000000000000000000D8
+:10B8700000000000000000000000000000000000C8
+:10B8800000000000000000000000000000000000B8
+:10B8900000000000000000000000000000000000A8
+:10B8A0000000000000000000000000000000000098
+:10B8B0000000000000000000000000000000000088
+:10B8C0000000000000000000000000000000000078
+:10B8D0000000000000000000000000000000000068
+:10B8E0000000000000000000000000000000000058
+:10B8F0000000000000000000000000000000000048
+:10B900000000000000000000000000000000000037
+:10B910000000000000000000000000000000000027
+:10B920000000000000000000000000000000000017
+:10B930000000000000000000000000000000000007
+:10B9400000000000000000000000000000000000F7
+:10B9500000000000000000000000000000000000E7
+:10B9600000000000000000000000000000000000D7
+:10B9700000000000000000000000000000000000C7
+:10B9800000000000000000000000000000000000B7
+:10B9900000000000000000000000000000000000A7
+:10B9A0000000000000000000000000000000000097
+:10B9B0000000000000000000000000000000000087
+:10B9C0000000000000000000000000000000000077
+:10B9D0000000000000000000000000000000000067
+:10B9E0000000000000000000000000000000000057
+:10B9F0000000000000000000000000000000000047
+:10BA00000000000000000000000000000000000036
+:10BA10000000000000000000000000000000000026
+:10BA20000000000000000000000000000000000016
+:10BA30000000000000000000000000000000000006
+:10BA400000000000000000000000000000000000F6
+:10BA500000000000000000000000000000000000E6
+:10BA600000000000000000000000000000000000D6
+:10BA700000000000000000000000000000000000C6
+:10BA800000000000000000000000000000000000B6
+:10BA900000000000000000000000000000000000A6
+:10BAA0000000000000000000000000000000000096
+:10BAB0000000000000000000000000000000000086
+:10BAC0000000000000000000000000000000000076
+:10BAD0000000000000000000000000000000000066
+:10BAE0000000000000000000000000000000000056
+:10BAF0000000000000000000000000000000000046
+:10BB00000000000000000000000000000000000035
+:10BB10000000000000000000000000000000000025
+:10BB20000000000000000000000000000000000015
+:10BB30000000000000000000000000000000000005
+:10BB400000000000000000000000000000000000F5
+:10BB500000000000000000000000000000000000E5
+:10BB600000000000000000000000000000000000D5
+:10BB700000000000000000000000000000000000C5
+:10BB800000000000000000000000000000000000B5
+:10BB900000000000000000000000000000000000A5
+:10BBA0000000000000000000000000000000000095
+:10BBB0000000000000000000000000000000000085
+:10BBC0000000000000000000000000000000000075
+:10BBD0000000000000000000000000000000000065
+:10BBE0000000000000000000000000000000000055
+:10BBF0000000000000000000000000000000000045
+:10BC00000000000000000000000000000000000034
+:10BC10000000000000000000000000000000000024
+:10BC20000000000000000000000000000000000014
+:10BC30000000000000000000000000000000000004
+:10BC400000000000000000000000000000000000F4
+:10BC500000000000000000000000000000000000E4
+:10BC600000000000000000000000000000000000D4
+:10BC700000000000000000000000000000000000C4
+:10BC800000000000000000000000000000000000B4
+:10BC900000000000000000000000000000000000A4
+:10BCA0000000000000000000000000000000000094
+:10BCB0000000000000000000000000000000000084
+:10BCC0000000000000000000000000000000000074
+:10BCD0000000000000000000000000000000000064
+:10BCE0000000000000000000000000000000000054
+:10BCF0000000000000000000000000000000000044
+:10BD00000000000000000000000000000000000033
+:10BD10000000000000000000000000000000000023
+:10BD20000000000000000000000000000000000013
+:10BD30000000000000000000000000000000000003
+:10BD400000000000000000000000000000000000F3
+:10BD500000000000000000000000000000000000E3
+:10BD600000000000000000000000000000000000D3
+:10BD700000000000000000000000000000000000C3
+:10BD800000000000000000000000000000000000B3
+:10BD900000000000000000000000000000000000A3
+:10BDA0000000000000000000000000000000000093
+:10BDB0000000000000000000000000000000000083
+:10BDC0000000000000000000000000000000000073
+:10BDD0000000000000000000000000000000000063
+:10BDE0000000000000000000000000000000000053
+:10BDF0000000000000000000000000000000000043
+:10BE00000000000000000000000000000000000032
+:10BE10000000000000000000000000000000000022
+:10BE20000000000000000000000000000000000012
+:10BE30000000000000000000000000000000000002
+:10BE400000000000000000000000000000000000F2
+:10BE500000000000000000000000000000000000E2
+:10BE600000000000000000000000000000000000D2
+:10BE700000000000000000000000000000000000C2
+:10BE800000000000000000000000000000000000B2
+:10BE900000000000000000000000000000000000A2
+:10BEA0000000000000000000000000000000000092
+:10BEB0000000000000000000000000000000000082
+:10BEC0000000000000000000000000000000000072
+:10BED0000000000000000000000000000000000062
+:10BEE0000000000000000000000000000000000052
+:10BEF0000000000000000000000000000000000042
+:10BF00000000000000000000000000000000000031
+:10BF10000000000000000000000000000000000021
+:10BF20000000000000000000000000000000000011
+:10BF30000000000000000000000000000000000001
+:10BF400000000000000000000000000000000000F1
+:10BF500000000000000000000000000000000000E1
+:10BF600000000000000000000000000000000000D1
+:10BF700000000000000000000000000000000000C1
+:10BF800000000000000000000000000000000000B1
+:10BF900000000000000000000000000000000000A1
+:10BFA0000000000000000000000000000000000091
+:10BFB0000000000000000000000000000000000081
+:10BFC0000000000000000000000000000000000071
+:10BFD0000000000000000000000000000000000061
+:10BFE0000000000000000000000000000000000051
+:10BFF0000000000000000000000000000000000041
+:10C000000000000000000000000000000000000030
+:10C010000000000000000000000000000000000020
+:10C020000000000000000000000000000000000010
+:10C030000000000000000000000000000000000000
+:10C0400000000000000000000000000000000000F0
+:10C0500000000000000000000000000000000000E0
+:10C0600000000000000000000000000000000000D0
+:10C0700000000000000000000000000000000000C0
+:10C0800000000000000000000000000000000000B0
+:10C0900000000000000000000000000000000000A0
+:10C0A0000000000000000000000000000000000090
+:10C0B0000000000000000000000000000000000080
+:10C0C0000000000000000000000000000000000070
+:10C0D0000000000000000000000000000000000060
+:10C0E0000000000000000000000000000000000050
+:10C0F0000000000000000000000000000000000040
+:10C10000000000000000000000000000000000002F
+:10C11000000000000000000000000000000000001F
+:10C12000000000000000000000000000000000000F
+:10C1300000000000000000000000000000000000FF
+:10C1400000000000000000000000000000000000EF
+:10C1500000000000000000000000000000000000DF
+:10C1600000000000000000000000000000000000CF
+:10C1700000000000000000000000000000000000BF
+:10C1800000000000000000000000000000000000AF
+:10C19000000000000000000000000000000000009F
+:10C1A000000000000000000000000000000000008F
+:10C1B000000000000000000000000000000000007F
+:10C1C000000000000000000000000000000000006F
+:10C1D000000000000000000000000000000000005F
+:10C1E000000000000000000000000000000000004F
+:10C1F000000000000000000000000000000000003F
+:10C20000000000000000000000000000000000002E
+:10C21000000000000000000000000000000000001E
+:10C22000000000000000000000000000000000000E
+:10C2300000000000000000000000000000000000FE
+:10C2400000000000000000000000000000000000EE
+:10C2500000000000000000000000000000000000DE
+:10C2600000000000000000000000000000000000CE
+:10C2700000000000000000000000000000000000BE
+:10C2800000000000000000000000000000000000AE
+:10C29000000000000000000000000000000000009E
+:10C2A000000000000000000000000000000000008E
+:10C2B000000000000000000000000000000000007E
+:10C2C000000000000000000000000000000000006E
+:10C2D000000000000000000000000000000000005E
+:10C2E000000000000000000000000000000000004E
+:10C2F000000000000000000000000000000000003E
+:10C30000000000000000000000000000000000002D
+:10C31000000000000000000000000000000000001D
+:10C32000000000000000000000000000000000000D
+:10C3300000000000000000000000000000000000FD
+:10C3400000000000000000000000000000000000ED
+:10C3500000000000000000000000000000000000DD
+:10C3600000000000000000000000000000000000CD
+:10C3700000000000000000000000000000000000BD
+:10C3800000000000000000000000000000000000AD
+:10C39000000000000000000000000000000000009D
+:10C3A000000000000000000000000000000000008D
+:10C3B000000000000000000000000000000000007D
+:10C3C000000000000000000000000000000000006D
+:10C3D000000000000000000000000000000000005D
+:10C3E000000000000000000000000000000000004D
+:10C3F000000000000000000000000000000000003D
+:10C40000000000000000000000000000000000002C
+:10C41000000000000000000000000000000000001C
+:10C42000000000000000000000000000000000000C
+:10C4300000000000000000000000000000000000FC
+:10C4400000000000000000000000000000000000EC
+:10C4500000000000000000000000000000000000DC
+:10C4600000000000000000000000000000000000CC
+:10C4700000000000000000000000000000000000BC
+:10C4800000000000000000000000000000000000AC
+:10C49000000000000000000000000000000000009C
+:10C4A000000000000000000000000000000000008C
+:10C4B000000000000000000000000000000000007C
+:10C4C000000000000000000000000000000000006C
+:10C4D000000000000000000000000000000000005C
+:10C4E000000000000000000000000000000000004C
+:10C4F000000000000000000000000000000000003C
+:10C50000000000000000000000000000000000002B
+:10C51000000000000000000000000000000000001B
+:10C52000000000000000000000000000000000000B
+:10C5300000000000000000000000000000000000FB
+:10C5400000000000000000000000000000000000EB
+:10C5500000000000000000000000000000000000DB
+:10C5600000000000000000000000000000000000CB
+:10C5700000000000000000000000000000000000BB
+:10C5800000000000000000000000000000000000AB
+:10C59000000000000000000000000000000000009B
+:10C5A000000000000000000000000000000000008B
+:10C5B000000000000000000000000000000000007B
+:10C5C000000000000000000000000000000000006B
+:10C5D000000000000000000000000000000000005B
+:10C5E000000000000000000000000000000000004B
+:10C5F000000000000000000000000000000000003B
+:10C60000000000000000000000000000000000002A
+:10C61000000000000000000000000000000000001A
+:10C62000000000000000000000000000000000000A
+:10C6300000000000000000000000000000000000FA
+:10C6400000000000000000000000000000000000EA
+:10C6500000000000000000000000000000000000DA
+:10C6600000000000000000000000000000000000CA
+:10C6700000000000000000000000000000000000BA
+:10C6800000000000000000000000000000000000AA
+:10C69000000000000000000000000000000000009A
+:10C6A000000000000000000000000000000000008A
+:10C6B000000000000000000000000000000000007A
+:10C6C000000000000000000000000000000000006A
+:10C6D000000000000000000000000000000000005A
+:10C6E000000000000000000000000000000000004A
+:10C6F000000000000000000000000000000000003A
+:10C700000000000000000000000000000000000029
+:10C710000000000000000000000000000000000019
+:10C720000000000000000000000000000000000009
+:10C7300000000000000000000000000000000000F9
+:10C7400000000000000000000000000000000000E9
+:10C7500000000000000000000000000000000000D9
+:10C7600000000000000000000000000000000000C9
+:10C7700000000000000000000000000000000000B9
+:10C7800000000000000000000000000000000000A9
+:10C790000000000000000000000000000000000099
+:10C7A0000000000000000000000000000000000089
+:10C7B0000000000000000000000000000000000079
+:10C7C0000000000000000000000000000000000069
+:10C7D0000000000000000000000000000000000059
+:10C7E0000000000000000000000000000000000049
+:10C7F0000000000000000000000000000000000039
+:10C800000000000000000000000000000000000028
+:10C810000000000000000000000000000000000018
+:10C820000000000000000000000000000000000008
+:10C8300000000000000000000000000000000000F8
+:10C8400000000000000000000000000000000000E8
+:10C8500000000000000000000000000000000000D8
+:10C8600000000000000000000000000000000000C8
+:10C8700000000000000000000000000000000000B8
+:10C8800000000000000000000000000000000000A8
+:10C890000000000000000000000000000000000098
+:10C8A0000000000000000000000000000000000088
+:10C8B0000000000000000000000000000000000078
+:10C8C0000000000000000000000000000000000068
+:10C8D0000000000000000000000000000000000058
+:10C8E0000000000000000000000000000000000048
+:10C8F0000000000000000000000000000000000038
+:10C900000000000000000000000000000000000027
+:10C910000000000000000000000000000000000017
+:10C920000000000000000000000000000000000007
+:10C9300000000000000000000000000000000000F7
+:10C9400000000000000000000000000000000000E7
+:10C9500000000000000000000000000000000000D7
+:10C9600000000000000000000000000000000000C7
+:10C9700000000000000000000000000000000000B7
+:10C9800000000000000000000000000000000000A7
+:10C990000000000000000000000000000000000097
+:10C9A0000000000000000000000000000000000087
+:10C9B0000000000000000000000000000000000077
+:10C9C0000000000000000000000000000000000067
+:10C9D0000000000000000000000000000000000057
+:10C9E0000000000000000000000000000000000047
+:10C9F0000000000000000000000000000000000037
+:10CA00000000000000000000000000000000000026
+:10CA10000000000000000000000000000000000016
+:10CA20000000000000000000000000000000000006
+:10CA300000000000000000000000000000000000F6
+:10CA400000000000000000000000000000000000E6
+:10CA500000000000000000000000000000000000D6
+:10CA600000000000000000000000000000000000C6
+:10CA700000000000000000000000000000000000B6
+:10CA800000000000000000000000000000000000A6
+:10CA90000000000000000000000000000000000096
+:10CAA0000000000000000000000000000000000086
+:10CAB0000000000000000000000000000000000076
+:10CAC0000000000000000000000000000000000066
+:10CAD0000000000000000000000000000000000056
+:10CAE0000000000000000000000000000000000046
+:10CAF0000000000000000000000000000000000036
+:10CB00000000000000000000000000000000000025
+:10CB10000000000000000000000000000000000015
+:10CB20000000000000000000000000000000000005
+:10CB300000000000000000000000000000000000F5
+:10CB400000000000000000000000000000000000E5
+:10CB500000000000000000000000000000000000D5
+:10CB600000000000000000000000000000000000C5
+:10CB700000000000000000000000000000000000B5
+:10CB800000000000000000000000000000000000A5
+:10CB90000000000000000000000000000000000095
+:10CBA0000000000000000000000000000000000085
+:10CBB0000000000000000000000000000000000075
+:10CBC0000000000000000000000000000000000065
+:10CBD0000000000000000000000000000000000055
+:10CBE0000000000000000000000000000000000045
+:10CBF0000000000000000000000000000000000035
+:10CC00000000000000000000000000000000000024
+:10CC10000000000000000000000000000000000014
+:10CC20000000000000000000000000000000000004
+:10CC300000000000000000000000000000000000F4
+:10CC400000000000000000000000000000000000E4
+:10CC500000000000000000000000000000000000D4
+:10CC600000000000000000000000000000000000C4
+:10CC700000000000000000000000000000000000B4
+:10CC800000000000000000000000000000000000A4
+:10CC90000000000000000000000000000000000094
+:10CCA0000000000000000000000000000000000084
+:10CCB0000000000000000000000000000000000074
+:10CCC0000000000000000000000000000000000064
+:10CCD0000000000000000000000000000000000054
+:10CCE0000000000000000000000000000000000044
+:10CCF0000000000000000000000000000000000034
+:10CD00000000000000000000000000000000000023
+:10CD10000000000000000000000000000000000013
+:10CD20000000000000000000000000000000000003
+:10CD300000000000000000000000000000000000F3
+:10CD400000000000000000000000000000000000E3
+:10CD500000000000000000000000000000000000D3
+:10CD600000000000000000000000000000000000C3
+:10CD700000000000000000000000000000000000B3
+:10CD800000000000000000000000000000000000A3
+:10CD90000000000000000000000000000000000093
+:10CDA0000000000000000000000000000000000083
+:10CDB0000000000000000000000000000000000073
+:10CDC0000000000000000000000000000000000063
+:10CDD0000000000000000000000000000000000053
+:10CDE0000000000000000000000000000000000043
+:10CDF0000000000000000000000000000000000033
+:10CE00000000000000000000000000000000000022
+:10CE10000000000000000000000000000000000012
+:10CE20000000000000000000000000000000000002
+:10CE300000000000000000000000000000000000F2
+:10CE400000000000000000000000000000000000E2
+:10CE500000000000000000000000000000000000D2
+:10CE600000000000000000000000000000000000C2
+:10CE700000000000000000000000000000000000B2
+:10CE800000000000000000000000000000000000A2
+:10CE90000000000000000000000000000000000092
+:10CEA0000000000000000000000000000000000082
+:10CEB0000000000000000000000000000000000072
+:10CEC0000000000000000000000000000000000062
+:10CED0000000000000000000000000000000000052
+:10CEE0000000000000000000000000000000000042
+:10CEF0000000000000000000000000000000000032
+:10CF00000000000000000000000000000000000021
+:10CF10000000000000000000000000000000000011
+:10CF20000000000000000000000000000000000001
+:10CF300000000000000000000000000000000000F1
+:10CF400000000000000000000000000000000000E1
+:10CF500000000000000000000000000000000000D1
+:10CF600000000000000000000000000000000000C1
+:10CF700000000000000000000000000000000000B1
+:10CF800000000000000000000000000000000000A1
+:10CF90000000000000000000000000000000000091
+:10CFA0000000000000000000000000000000000081
+:10CFB0000000000000000000000000000000000071
+:10CFC0000000000000000000000000000000000061
+:10CFD0000000000000000000000000000000000051
+:10CFE0000000000000000000000000000000000041
+:10CFF0000000000000000000000000000000000031
+:10D000000000000000000000000000000000000020
+:10D010000000000000000000000000000000000010
+:10D020000000000000000000000000000000000000
+:10D0300000000000000000000000000000000000F0
+:10D0400000000000000000000000000000000000E0
+:10D0500000000000000000000000000000000000D0
+:10D0600000000000000000000000000000000000C0
+:10D0700000000000000000000000000000000000B0
+:10D0800000000000000000000000000000000000A0
+:10D090000000000000000000000000000000000090
+:10D0A0000000000000000000000000000000000080
+:10D0B0000000000000000000000000000000000070
+:10D0C0000000000000000000000000000000000060
+:10D0D0000000000000000000000000000000000050
+:10D0E0000000000000000000000000000000000040
+:10D0F0000000000000000000000000000000000030
+:10D10000000000000000000000000000000000001F
+:10D11000000000000000000000000000000000000F
+:10D1200000000000000000000000000000000000FF
+:10D1300000000000000000000000000000000000EF
+:10D1400000000000000000000000000000000000DF
+:10D1500000000000000000000000000000000000CF
+:10D1600000000000000000000000000000000000BF
+:10D1700000000000000000000000000000000000AF
+:10D18000000000000000000000000000000000009F
+:10D19000000000000000000000000000000000008F
+:10D1A000000000000000000000000000000000007F
+:10D1B000000000000000000000000000000000006F
+:10D1C000000000000000000000000000000000005F
+:10D1D000000000000000000000000000000000004F
+:10D1E000000000000000000000000000000000003F
+:10D1F000000000000000000000000000000000002F
+:10D20000000000000000000000000000000000001E
+:10D21000000000000000000000000000000000000E
+:10D2200000000000000000000000000000000000FE
+:10D2300000000000000000000000000000000000EE
+:10D2400000000000000000000000000000000000DE
+:10D2500000000000000000000000000000000000CE
+:10D2600000000000000000000000000000000000BE
+:10D2700000000000000000000000000000000000AE
+:10D28000000000000000000000000000000000009E
+:10D29000000000000000000000000000000000008E
+:10D2A000000000000000000000000000000000007E
+:10D2B000000000000000000000000000000000006E
+:10D2C000000000000000000000000000000000005E
+:10D2D000000000000000000000000000000000004E
+:10D2E000000000000000000000000000000000003E
+:10D2F000000000000000000000000000000000002E
+:10D30000000000000000000000000000000000001D
+:10D31000000000000000000000000000000000000D
+:10D3200000000000000000000000000000000000FD
+:10D330000000000010000003000000000000000DCD
+:10D340000000000D3C02080024427A603C03080003
+:10D3500024637AD8AC4000000043202B1480FFFDEA
+:10D36000244200043C1D080037BD9FFC03A0F021AF
+:10D370003C100800261031D83C1C0800279C7A601D
+:10D380000E001253000000000000000D3C0280005F
+:10D3900030A5FFFF30C600FF344301803C08800009
+:10D3A0008D0901B80520FFFE00000000AC640000FC
+:10D3B00024040002A4650008A066000AA064000B13
+:10D3C000AC6700183C03100003E00008AD0301B88F
+:10D3D0003C0560008CA24FF80440FFFE00000000F6
+:10D3E000ACA44FC03C0310003C040200ACA44FC4EA
+:10D3F00003E00008ACA34FF827BDFFE8AFBF00145F
+:10D40000AFB000100E0012A5008080213C048008FF
+:10D410003485008090A600052403FFFE0200202131
+:10D4200000C310248FBF00148FB00010A0A200050D
+:10D430000A0012AF27BD001827BDFFE8AFB00010EB
+:10D44000AFBF00140E000ED6008080213C0680087D
+:10D4500034C5008090A4000024020050308300FFF7
+:10D46000106200073C098000020020218FBF0014D9
+:10D470008FB00010AD2001800A000FC527BD001835
+:10D48000240801003C078000020020218FBF001407
+:10D490008FB00010ACE801800A000FC527BD00184E
+:10D4A00027BDFF883C088008AFBE0070AFB600689B
+:10D4B000AFB40060AFB00050AFBF0074AFB7006C46
+:10D4C000AFB50064AFB3005CAFB20058AFB1005469
+:10D4D000350500803C0780008CF1012890A40009EC
+:10D4E000ACE0008490A60005309000FF0000A02171
+:10D4F00000061827306200010000B02114400067C8
+:10D500000000F02190A9000024050020312400FF34
+:10D5100010850016240A0050108A008D00000000BB
+:10D520003C0C08008D8C00DC258B00013C010800C0
+:10D53000AC2B00DC0E00139B000000008FBF0074BA
+:10D540008FBE00708FB7006C8FB600688FB5006417
+:10D550008FB400608FB3005C8FB200588FB100545D
+:10D560008FB0005003E0000827BD00780000000DD8
+:10D570003C158000AFA0003096A201168EB90104C0
+:10D580003C1F002036B20C00033FC0240018B82B0B
+:10D5900000173140AFA600308EAE01043053FFFFBC
+:10D5A0003C0F00400272382101CF682490F2000D38
+:10D5B00011A0004834C4004032430020146000022F
+:10D5C000348600800080302114C00094AFA6003063
+:10D5D0003C0980083525008090A8000831060040ED
+:10D5E00050C000063C088008240A0004120A00A368
+:10D5F000240B0012120B00293C088008351501008D
+:10D600003C17800096F3011A94EE000E92AF0008CA
+:10D61000324C00043275FFFF01EE6804AFAD003CF0
+:10D620008CF30004118000318CF700083503008072
+:10D63000907800083307004014E000280000000044
+:10D640008C72005002728823062000063C0680007F
+:10D650008C7F0034027FC823072200848E8200085A
+:10D660003C068000ACC00044240200018FBF00745F
+:10D670008FBE00708FB7006C8FB600688FB50064E6
+:10D680008FB400608FB3005C8FB200588FB100542C
+:10D690008FB0005003E0000827BD00780E000CB8E2
+:10D6A000000020218FBF00748FBE00708FB7006C08
+:10D6B0008FB600688FB500648FB400608FB3005CD4
+:10D6C0008FB200588FB100548FB0005003E00008B3
+:10D6D00027BD00780A000D1800C020210E00146C30
+:10D6E000026020211440FFDF3C0680003C038008DC
+:10D6F000346300808C6400340264102304400018FA
+:10D70000000000003C1408008E94310026900001B7
+:10D710003C010800AC3031000E0012A5022020218F
+:10D720003C048008349F008093FE002502202021C5
+:10D7300037C90004A3E900250E0012AF0000000065
+:10D740000E000C9E022020210A000D45240200013B
+:10D750003C14080026947AC80A000D073C15800086
+:10D760008C6800300268302318C00008240B000CBD
+:10D770003C0908008D293100325200FC0000A8212C
+:10D78000252500013C010800AC253100AFAB00307D
+:10D790008C6A003001534023190000E002A8602A7F
+:10D7A0001580FFDD0000000012A8002A02A87823DF
+:10D7B0000268982131F5FFFF3247000210E0003483
+:10D7C000325900103C13800836700080921E000809
+:10D7D00033D6004052C000D38E82000802202021A0
+:10D7E0000E0012A524120018A212000992170005BB
+:10D7F0002418FFFE0220202102F8A8240E0012AFF8
+:10D80000A215000524040039000028210E00144749
+:10D81000240600180A000D45240200019296000C0F
+:10D820003C048008349E00808FC700380016A30097
+:10D830003690008130C600FF022020210E000C8DA2
+:10D840003205F0813C068000ACC000440A000D4562
+:10D85000240200013A4E000131CD000115A0FFAEB7
+:10D86000026898210A000D97000000000040F809A6
+:10D87000240400160A000D45240200010220202184
+:10D880000E00152900E028210A000CFA8FBF007451
+:10D890001320FF733C048008348900808D230038F6
+:10D8A0008C82000402E2F8231FE0FF6E3C06800039
+:10D8B00002E3302304C200010060B821AFA80018C1
+:10D8C0003C198000AFB30010AFB5001497260120BB
+:10D8D0008D2A00309524005C8FB8003C8FAD00305D
+:10D8E0003087FFFF30DFFFFF03E87021372F400054
+:10D8F0000307282B8E82000401CF602101A5582543
+:10D90000AFA90048AFAC0020AFAA0028AFAB0030F1
+:10D91000AFAA0024AFA0002CAFB700340040F80934
+:10D9200027A400108FA8003031030002106000020D
+:10D930008FA90048325200FE912300083069004050
+:10D94000512000138FA400243C0280088C4800045E
+:10D95000111700A4240A0014325800015300000CCF
+:10D960008FA400242419000C121900C02A1F000DD6
+:10D9700013E000BA2406000E2404000A5204000139
+:10D98000241600088FA9002425240001AFA4002438
+:10D990003C188008370500808FA700148CAF00303A
+:10D9A000340CFFFF00877021ACAE0030AFAF003801
+:10D9B00090AD004E8CAB00308FA8003C01AC100441
+:10D9C00001625021ACAA00348FA6003002E8202169
+:10D9D00030C300081060000BAFA400408CB90020D9
+:10D9E0001324008F30C600FF9289000C8FA70034EB
+:10D9F00000098300360400803085F0800E000C8D15
+:10DA0000022020213C0A8008355000808E0300301F
+:10DA10008FA800380068302318C00065262F0080CA
+:10DA20003C0E08008DCE31982407FF8001E7682462
+:10DA300031EC007F3C0680003C02800431CB0010BA
+:10DA4000ACCD00901160003B0182282190B8006BA2
+:10DA5000570000393C048008241F0001A0BF006B60
+:10DA600094C5007A24B9000AA61900123C0A80085D
+:10DA70003545008090A800083110004016000004D1
+:10DA80003C038008324B00011560006B0000000071
+:10DA9000346400808C8C00208FB200401192000909
+:10DAA000346301008C6D0000026D102318400012D9
+:10DAB0008FB80040241E0001AC980020AC73000019
+:10DAC000AC77000416C0002D0000000017C000272E
+:10DAD0000000000012A00005000018218FA50030F2
+:10DAE00030B5000452A0FE9500601021240300010F
+:10DAF0000A000CF9006010218C6E000015D3FFF1B4
+:10DB0000000000008C67000402E7782305E1FFE9CC
+:10DB10008FB800400A000E5B000000000A000D985C
+:10DB2000000040210040F809240400170A000D45B8
+:10DB3000240200013C04800834900080241E00016F
+:10DB4000022020210E0012A5A61E00129209002517
+:10DB500002202021241E0001352200010E0012AFF8
+:10DB6000A20200250A000E463C0A80080E000C9E08
+:10DB7000022020210A000E5F000000000E0012A506
+:10DB8000022020213C198008373700800220202104
+:10DB90000E0012AFA2F6000902C0302124040037A3
+:10DBA0000E001447000028210A000E5D000000004E
+:10DBB0008FA6001858C0FFAE3C0A80080E0012A5C0
+:10DBC000022020219203002502202021241E000192
+:10DBD000346200040E0012AFA20200250A000E46B5
+:10DBE0003C0A8008120A00302A0B0015116000243C
+:10DBF000240D0016240C000C560CFF58325800015E
+:10DC00003C05800890AF001B2407FFBD2416000EC2
+:10DC100001E77024A0AE001B0A000E01325800017B
+:10DC20003C1F800097E5011A50A0FF6F34C600101A
+:10DC30000A000E259289000C8CB300308E960008E5
+:10DC4000240400182674000102C0F809ACB40030A6
+:10DC50008FB100300A000CF9322200041606FF4A88
+:10DC60008FA900240A000E0C241600102410000EA8
+:10DC700052D0FF44241600100A000E0B2416001682
+:10DC8000560DFF36325800013C05800890AF001B4E
+:10DC90002407FFBD2416001001E77024A0AE001B6E
+:10DCA0000A000E01325800010A000E00241600126C
+:10DCB0003C0380008C6201B80440FFFE240408008D
+:10DCC000AC6401B803E00008000000003C058008D7
+:10DCD00094A200483084FFFF1040001924840012F1
+:10DCE00094A900483C0380003128FFFF0104382A32
+:10DCF00010E0001334660180946D01208F8C0004C5
+:10DD0000240B001A31AAFFFF31834000A0CB000B87
+:10DD1000106000102544FFFE94AF004831EEFFFF75
+:10DD200001C4282B14A0000C8F98000CA4C400146C
+:10DD30008F86000C34C2000103E00008AF82000CA3
+:10DD40003C0780002404000334E2018003E0000863
+:10DD5000A044000B8F98000C2419FFFE0319102417
+:10DD600003E00008AF82000C27BDFFD8AFB400204D
+:10DD7000AFB3001CAFB20018AFB10014AFBF0024A6
+:10DD8000AFB000100080182130B3FFFF30D2FFFF8A
+:10DD900030F4FFFF3C1180008E2201B80440FFFEEA
+:10DDA00036300180AE030000024020210E000EDD5F
+:10DDB000AE2300208F86000C8F8500048F83000027
+:10DDC00030C48000A613000CA612000EA605001099
+:10DDD000AE030028A61400081080000E3C0F80003F
+:10DDE000962C0116318BFFFC256A00040151482155
+:10DDF0008D2840003107FFFF14E000072414BFFF07
+:10DE00003C0EFFFF35CD7FFF00CD3024AF86000CE8
+:10DE10003C0F80002414BFFF35F1018000D498240A
+:10DE2000A63300268DF20104AE32002C3C06100011
+:10DE3000ADE601B88FBF00248FB400208FB3001C63
+:10DE40008FB200188FB100148FB0001003E00008EB
+:10DE500027BD002827BDFFD8AFB100143C118000BA
+:10DE600000804021AFB40020AFB0001030D4FFFFDD
+:10DE70003630018002802021AE080000AE2800204C
+:10DE8000AFB3001CAFB2001830F3FFFFAFBF0024E8
+:10DE90000E000EDD30B2FFFF8F85000C8F83000473
+:10DEA0002406BFFF00A62024A612000CA614000E14
+:10DEB000A6130008A6040026A60300103C021000CA
+:10DEC000AE2201B88FBF00248FB400208FB3001C96
+:10DED0008FB200188FB100148FB0001003E000085B
+:10DEE00027BD00283C028000344501803C048000AE
+:10DEF0008C8301B80460FFFE240720002406000282
+:10DF0000A4A70008A0A6000BA4A000103C051000C8
+:10DF1000AC8501B803E00008000000003C0580006B
+:10DF200034A400708C8A000090A601128F84000433
+:10DF300027BDFFF030C300FF0003188230820100CC
+:10DF4000000038211040003924660003308740006B
+:10DF500050E0003930882000000610800045C821BC
+:10DF60008F2F40002478000400187080AFAF0000AD
+:10DF700001C568218DAC4000AFAC000494AB011624
+:10DF80003169FFFC012540218D054000AFA5000847
+:10DF90008FA9000800003021000028213C0708005C
+:10DFA00024E701000A000F9E2408000890420000A8
+:10DFB00024A500012CAD000C0062C8210019C0800E
+:10DFC000030778218DEE000011A0000600CE302658
+:10DFD00003A5102114A8FFF500051A005520FFF431
+:10DFE000904200003C048000348700703C0508002B
+:10DFF0008CA531048CE300002CA80020110000093E
+:10E00000006A3823000558803C0C0800258C310834
+:10E01000016C482124AA0001AD2700003C01080042
+:10E02000AC2A3104AF8600002407000100E0102173
+:10E0300003E0000827BD00101100FFFC000038219C
+:10E0400000066080018558218D6440002469000429
+:10E0500000093880AFA4000000E518218C6640005C
+:10E06000AFA000080A000F8EAFA600043C02080013
+:10E070008C42003827BDFFD8AFB40020AFB20018E3
+:10E08000AFBF0024AFB3001CAFB10014AFB000109D
+:10E090003C14080026940038144000022452FFFF6C
+:10E0A000000090218F85000430A340001060000F15
+:10E0B00030A980003C06002000A620241080000B20
+:10E0C0008F87000C2408BFFF00A8282434E3100029
+:10E0D000AF85000430AF200015E0000A3C110004B9
+:10E0E0002413FFBF0A000FEF0073102415200062F5
+:10E0F0003C0B002030AF200011E0FFF98F83000CB3
+:10E100003C11000400B180241200FFF62413FFBF6D
+:10E110003462004030B801001300000FAF82000CE1
+:10E120003C1F002000BFC824132000053C0A8000CB
+:10E130003C03000400A31024104000C800000000AD
+:10E140009549011E9548011C3126FFFF00083C003F
+:10E1500000C72025AF8400003C0D800095AC010C69
+:10E1600030AB1000116000083186FFFF30AE002098
+:10E1700015C00006241100053C10100000B07824E2
+:10E1800015E000733C1F0C002411000130A20100B7
+:10E19000544000093C0C00018F83001454600006B9
+:10E1A0003C0C00018F87000C30E440001080009A86
+:10E1B0003C0A1F013C0C000100AC302414C0006C70
+:10E1C0003C1080008F84000C3093400012600006E9
+:10E1D0003C0310003C190F0000B9C0241300008B51
+:10E1E0003C1F80003C03100000A310241040002CB2
+:10E1F0003C0680003C0708008CE7003014E0007308
+:10E200003088400030A6010010C000983C0E0F007E
+:10E2100000AE68243C0C020011AC00948F93000007
+:10E22000027280240214782191F4000426920004E2
+:10E23000001221C03C0E800095C6010E3627000258
+:10E2400024D400043286FFFF240500020E000F04D0
+:10E25000000000008FBF00248FB400208FB3001C8B
+:10E260008FB200188FB100148FB000100000102181
+:10E2700003E0000827BD002800AB50241140FF9E9A
+:10E2800030AF20008F8C000C3C0EFFFF35CD7FFFA0
+:10E2900000AD2824358380000A000FDFAF8500041D
+:10E2A0008CD04000320F010011E0003C30B801007A
+:10E2B0003C1008008E1000241300001432330004B8
+:10E2C0003C020F0000A2F8243C19020013F9000FD1
+:10E2D0008F83000094C9010E022038210072582457
+:10E2E0000174502191480004252400043086FFFF6A
+:10E2F00025140004001421C0240500020E000F04A0
+:10E300002412FFFE021280243231FFFB2407000199
+:10E310001207006F3206000114C000903C0E80000E
+:10E32000320F000411E000048F980004331008003D
+:10E33000160000783C1F80005660FFC78FBF002486
+:10E340000E000F63000000000A0010408FBF002481
+:10E350003C190BFF00BFC0243733FFFF0278882B26
+:10E360005220FF8A241100010A00100D241100051B
+:10E370003C0E08008DCE00D8960F010E24040080BC
+:10E3800025CD000131E6FFFF240500023C01080015
+:10E39000AC2D00D80A00103D240700033C120800F1
+:10E3A0008E520024324200011040FFAB8FBF002488
+:10E3B00094C6010E362700020000202124D4000458
+:10E3C0003286FFFF0A00103D240500021100FF8E77
+:10E3D00030A601003C0B0F0000AB50243C090100AB
+:10E3E000012A202B1480FF88000000003C058000DB
+:10E3F00094A6010E362700022404008024D40004D1
+:10E400003286FFFF0A00103D2405000297E3011643
+:10E410000A0010243C03100000AA48243C08100005
+:10E420001528FF653C0C000130CB02001560FF632E
+:10E4300000AC30243C1480009692010E3627000276
+:10E44000000020212645000430A6FFFF0E000F3FEC
+:10E45000240500020A0010408FBF00240E000F7137
+:10E46000000000000A0010008F850004000000007A
+:10E470003C0608008CC600D0000516023050000F84
+:10E4800038DF00012FF900012E03000C0323C02404
+:10E490001700FF68001021C02608FFFC2D070004AC
+:10E4A00014E000073C0E800038CA00022D4900012C
+:10E4B000012320245080000E000532423C0E8000D3
+:10E4C00095C6010E000020210A00103A36270002EE
+:10E4D0003233000452600001363100023C0C8000EF
+:10E4E0009586010E022038210A0010990000202193
+:10E4F0000010182B00C358241560000F3C05800045
+:10E50000001021C03C0E800095C6010E0A00103A92
+:10E510003627000297F9010E022038212404010059
+:10E52000273100043226FFFF0E000F0424050002ED
+:10E530000A0010780000000094AD010E00002021B8
+:10E540002405000225AC00043186FFFF0E000F04F5
+:10E550003227FFFB0A0010EB001021C095C5010E09
+:10E56000022038210000202124AD000431A6FFFF45
+:10E570000E000F04240500020A0010723231FFFB66
+:10E580003C0580008CA701482403000434A60180C8
+:10E5900000072402308200FF104300103C0480007A
+:10E5A0008C8901B80520FFFE000000008C8F014817
+:10E5B000240D00023C0A1000000F7402A4CE0008D3
+:10E5C000A0CD000B8C8C0148A4CC00108C8B014496
+:10E5D000ACCB002403E00008AC8A01B88CA4014055
+:10E5E0003C03800000C028218C6601B804C0FFFEF7
+:10E5F0002408001CACA40000A0A8000B3C051000DF
+:10E60000AC6501B803E000080000000027BDFFE88A
+:10E61000AFB00010AFBF00143C10600C8E0D500066
+:10E62000240EFF7F2406000301AE60243588380CD9
+:10E630003C058000AE085000ACA600083C01080074
+:10E64000AC2000200E001555000000003C086016AC
+:10E650008D0A00003C0BFFFF3C0900103523805160
+:10E660003C046000014B38243C025353AE03537CFE
+:10E67000348420203C05080024A579082406000ADB
+:10E6800010E2000935037C008C7F007C8C790078D7
+:10E690008FB00010AF9F00108FBF001427BD00186F
+:10E6A0000A0013B1AF9900088D0F00043C186000F8
+:10E6B0008FB0001001F818218C7F007C8C790078D5
+:10E6C000AF9F00108FBF001427BD00180A0013B1C0
+:10E6D000AF9900083C0480008C8340003402FFFFA7
+:10E6E0001062003A000000008C87400030E5010015
+:10E6F00010A00021000000009487010E3C020800D9
+:10E700008C4200EC9485010E3C0D08008DAD31CC9F
+:10E7100030E3FFFF3C1808008F1800E83C090800B0
+:10E720008D2931C80043602130ABFFFF0183782B76
+:10E730000000C82101AB18210000502103197021ED
+:10E74000006B302B012A402101CF2021010610212E
+:10E750003C010800AC2C00EC3C010800AC2400E8B3
+:10E760003C010800AC2331CC3C010800AC2231C88C
+:10E7700003E00008000000008C8840008F8C000837
+:10E78000110C00323C0D800095AB010E3C0A0800D4
+:10E790008D4A00E43C0808008D0800E03169FFFF65
+:10E7A000014928210000302100A9602B01063821F1
+:10E7B00000EC10213C010800AC2500E43C010800FD
+:10E7C000AC2200E003E00008000000009483010E8A
+:10E7D0009482010E3C1908008F3900F43C090800AE
+:10E7E0008D2931CC3C0E08008DCE00F03C0808008D
+:10E7F0008D0831C83078FFFF304BFFFF03382821E8
+:10E80000012B1821000078210000502100B8682B4E
+:10E8100001CF6021006B302B010A3821018D2021AE
+:10E8200000E610213C010800AC2500F43C01080082
+:10E83000AC2400F03C010800AC2331CC3C010800C2
+:10E84000AC2231C803E00008000000008C894004BD
+:10E850008F8600101526FFCC3C0D80009483010E9E
+:10E860003C1908008F3931BC3C0E08008DCE31B800
+:10E870003078FFFF03385821000078210178202BE1
+:10E8800001CF682101A450213C010800AC2B31BC10
+:10E890003C010800AC2A31B803E000080000000089
+:10E8A00027BDFFE83C058000AFBF0014AFB00010EB
+:10E8B0008CB00128ACB000208CA301048CA4010012
+:10E8C000AF8300040E000ED6AF84000C0E00115F63
+:10E8D000000000003C0208008C4200C010400026EE
+:10E8E0008F8400043C0708008CE700C424E6000184
+:10E8F0003C010800AC2600C43C0280008C4401248A
+:10E900003C1F6020AFE40014000000003C068000C3
+:10E910003C034000ACC301380000000012000013AB
+:10E920008FBF0014260F0140261900802404FF80A9
+:10E9300001E4C0240324F824001F6940332E007F23
+:10E940000018594031EC007F3C0A20003548000295
+:10E9500001AE3825016C48250128802500E82825CE
+:10E96000ACC50830ACD008308FBF00148FB0001099
+:10E9700003E0000827BD00183C090010008940246E
+:10E980001100000F8F83000C240DBFFF006D602469
+:10E9900011800007240F87FF006F702415C000133B
+:10E9A0003C1900600099C024130000100000000012
+:10E9B0000E000CD2000000000A001221000000002E
+:10E9C0003C0B08008D6B0020256A00013C0108000B
+:10E9D000AC2A00200E000FC5000020211040FFCC03
+:10E9E0003C0680000A0011E93C0280000E00128EF5
+:10E9F000000000000A0012210000000027BDFFE80F
+:10EA00003C028000AFBF00108C4601403C03700008
+:10EA10003C054000AC4600208C4401480083202483
+:10EA20001085001300A4102B1040000B3C072000A1
+:10EA30003C08600010880017000000003C0A4000FD
+:10EA40003C098000AD2A0178000000008FBF001053
+:10EA500003E0000827BD00185487FFF93C0A400076
+:10EA60000E00110A000000000A00123A3C0A4000A1
+:10EA70000E0012B4000000003C0A40003C09800077
+:10EA8000AD2A0178000000008FBF001003E00008ED
+:10EA900027BD00180E001D6F000000000A00123A8A
+:10EAA0003C0A400027BDFFE0AFB200183C128000D6
+:10EAB000AFB10014AFBF001CAFB000100E00112D9D
+:10EAC000365100708E260000AF8600188E28000098
+:10EAD0003C0B08008D6B00FC3C0708008CE700F83D
+:10EAE00001066023016C28210000482100AC302B76
+:10EAF00000E91821006620213C010800AC2500FC3B
+:10EB00003C010800AC2400F88E50000032020003E3
+:10EB10001040FFEE010030218E2600003C05080069
+:10EB20008CA500FC3C1F08008FFF00F800C81823CC
+:10EB300000A378210000102101E3C82B03E2C021CB
+:10EB400003197021320D00013C010800AC2F00FCBC
+:10EB5000AF8800183C010800AC2E00F815A0000892
+:10EB600000000000320800021100FFD60000000083
+:10EB70000E001229000000000A00125B00000000D5
+:10EB80000E0011D2000000000A00128432080002B8
+:10EB90003C0380008C6401003082003E1440000879
+:10EBA00000000000AC6000488C66010030C507C062
+:10EBB00010A0000500000000AC60004CAC600050EC
+:10EBC00003E0000824020001AC600054AC60004087
+:10EBD0008C6801003107380010E0FFF900000000E8
+:10EBE0002402000103E00008AC6000443C039000F4
+:10EBF00034620001008220253C038000AC640020C8
+:10EC00008C65002004A0FFFE0000000003E0000867
+:10EC1000000000003C0280003443000100832025F6
+:10EC200003E00008AC44002027BDFFD8AFB10014BA
+:10EC30003C048000AFBF0020AFB3001CAFB200188F
+:10EC4000AFB000108C9201408C9001482402000E5D
+:10EC500000108C02322300FF1062005902042824A5
+:10EC60002866000F10C00013286A0037240700062A
+:10EC70001067008E286800075100002D2404000949
+:10EC8000106000783C06800024090001106900B083
+:10EC9000000000000000000D8FBF00208FB3001C9B
+:10ECA0008FB200188FB100148FB0001003E000087D
+:10ECB00027BD002811400059240D0038286B00356D
+:10ECC000116000053C058000240C001F146CFFF14E
+:10ECD000000000003C0580008CB801B80700FFFE72
+:10ECE00034B90180AF320000241F00012412000259
+:10ECF0003C021000AF200004A7310008A33F000A27
+:10ED0000A332000BA7300010AF200024AF20002852
+:10ED1000ACA201B88FBF00208FB3001C8FB20018C7
+:10ED20008FB100148FB0001003E0000827BD002849
+:10ED3000106400232405000B1465FFD63218FFFF72
+:10ED4000170000203C0580008F93FED4927F0005C1
+:10ED500033F900041720FFCF000000000E0012A5B9
+:10ED6000024020219269000502402021352800043C
+:10ED70000E0012AFA26800059267000530E20004A1
+:10ED800014400002000000000000000D926B000023
+:10ED900024060020316A00FF1546000A3C05800069
+:10EDA0008CA401B80480FFFE34AD0180240E000560
+:10EDB0003C0C1000ADB20000A1AE000BACAC01B831
+:10EDC0003C0580008CA301B80460FFFE34AF0180D5
+:10EDD00024130002ADE00000ADF20004A5F100082C
+:10EDE000A1F3000AA1F3000BA5F00010ADE0002490
+:10EDF0008CB101443C101000ADF10028ACB001B85A
+:10EE00008FBF00208FB3001C8FB200188FB1001489
+:10EE10008FB0001003E0000827BD0028106DFFAD83
+:10EE2000240E0080146EFF9B000000003C05800053
+:10EE30008CA301B80460FFFE34AF018024120002ED
+:10EE4000A1F2000BA5F10008A5F000108CB301445D
+:10EE50003C021000A5F30012ACA201B80A0012F0A7
+:10EE60008FBF00208CC301B80460FFFE34D3018043
+:10EE7000AE720000AE60000424120001A67100080A
+:10EE800024110002A272000AA271000BA6700010E9
+:10EE90008CD001443C0F1000AE700024AE600028FE
+:10EEA000ACCF01B80A00132B8FBF00203C038000B9
+:10EEB0008C6601B804C0FFFE346201803C06080085
+:10EEC00090C67AB8AC52000010C000030000382190
+:10EED0003C0708008CE77AC03C05800034AA01801A
+:10EEE0002404000234CC0001AC470004A551000802
+:10EEF000A14C000AA144000BA55000108CAB0144AA
+:10EF00000000202101402821AD4B002410C0000347
+:10EF10008FBF00203C0408008C847ABC8FB3001C97
+:10EF20008FB200188FB100148FB000103C0E10008B
+:10EF30003C0D800027BD0028ACA40028ADAE01B870
+:10EF40003C010800A0207AB803E00008000000009F
+:10EF500010A0000B3C0680008C980144241900028C
+:10EF60003C010800A0397AB83C010800AC327AC0F4
+:10EF70003C010800AC387ABC0A00132B8FBF00207C
+:10EF80008CDF01B807E0FFFE34C7018024090002CE
+:10EF9000ACE00000ACF20004A4F10008A0E9000A13
+:10EFA000A0E9000BA4F00010ACE000248CC80144E0
+:10EFB0003C021000ACE80028ACC201B80A00132BD8
+:10EFC0008FBF002027BDFFE8AFBF00100E000ED698
+:10EFD000000000003C0280008FBF001000002021D4
+:10EFE000AC4001800A000FC527BD00183084FFFF28
+:10EFF00030A5FFFF108000070000182130820001BB
+:10F000001040000200042042006518211480FFFB1C
+:10F010000005284003E000080060102110C0000730
+:10F02000000000008CA2000024C6FFFF24A50004FD
+:10F03000AC82000014C0FFFB2484000403E000083D
+:10F040000000000010A0000824A3FFFFAC86000011
+:10F0500000000000000000002402FFFF2463FFFF07
+:10F060001462FFFA2484000403E00008000000009A
+:10F0700027BDFFE0AFB20018AFB10014AFB0001071
+:10F08000AFBF001C9486000C00A0902124900014B7
+:10F0900000061B020003108000448821000030217C
+:10F0A00000A020210E0013BB240500050211202B17
+:10F0B0001080001200001021920300002C6500094E
+:10F0C00050A0000992020001000348803C0A080099
+:10F0D000254A793C012A40218D07000000E0000804
+:10F0E0000000000092020001020280210211202B88
+:10F0F0005480FFF292030000000010218FBF001C1B
+:10F100008FB200188FB100148FB0001003E0000818
+:10F1100027BD00200A0013D526100001920C000123
+:10F12000240B000C158B0040023070232DCD000AFB
+:10F1300015A0003D260800068E43000026020002AE
+:10F1400034640100AE440000921F00029059000197
+:10F15000904E0002904B0003001F7E000019C40077
+:10F1600001F86025000E6A00018D5025014B4825ED
+:10F17000AE490004920700069105000191040002C7
+:10F180009119000300071E00000534000066F825F1
+:10F190000004120003E2C025031978252610000A96
+:10F1A0000A0013D5AE4F0008921F0001260400028A
+:10F1B0002410000257F00001022020210A0013D57C
+:10F1C00000808021920E0001240D000315CDFFCB9D
+:10F1D000240200018E59000092180002261000033C
+:10F1E000372F0008A25800100A0013D5AE4F0000B8
+:10F1F000920500012406000414A6FFC024020001A9
+:10F20000920C0002920B00038E490000000C520089
+:10F21000014B40253527000426100004AE48000CA1
+:10F220000A0013D5AE4700000A0013E924020001CA
+:10F2300027BDFFE8AFBF0014AFB000100E0012A54D
+:10F24000008080213C048008348300809065002584
+:10F250000200202134A200200E0012AFA06200257F
+:10F26000020020218FBF00148FB000100A000C9EF6
+:10F2700027BD00183C03800027BDFFF834620180E1
+:10F28000AFA20000308C00FF30AD00FF30CE00FF99
+:10F290003C0B80008D6401B80480FFFE000000007C
+:10F2A0008FA900008D6801288FAA00008FA7000099
+:10F2B0008FA400002405000124020002A085000A9A
+:10F2C0008FA30000359940003C051000A062000BA0
+:10F2D0008FB800008FAC00008FA600008FAF000039
+:10F2E00027BD0008AD280000AD400004AD8000241B
+:10F2F000ACC00028A4F90008A70D0010A5EE00126C
+:10F3000003E00008AD6501B83C06800827BDFFE8B2
+:10F3100034C50080AFBF001090A70009240200127E
+:10F3200030E300FF1062000B008030218CA80050F9
+:10F3300000882023048000088FBF00108CAA0034AE
+:10F34000240400390000282100CA482305200005B4
+:10F35000240600128FBF00102402000103E0000801
+:10F3600027BD00180E001447000000008FBF0010DA
+:10F370002402000103E0000827BD001827BDFFC8D4
+:10F38000AFB1002C00A08821AFB2003027A500103B
+:10F390000080902102202021AFBF00340E0013C650
+:10F3A000AFB00028144000813C0C8008918B001104
+:10F3B000918A0012358600808CC80054316500FFA8
+:10F3C000314900FF00A9282100A8382B14E0004F84
+:10F3D0008FA3001094DF005C3066000410C000565C
+:10F3E00033E4FFFF8FA2001C0082102B5440000565
+:10F3F0002C8300803067000414E0007E240402188F
+:10F400002C83008010600002008080212410008086
+:10F410000E0012A5024020213C03800834660080C3
+:10F4200024070001ACC7000C90C200080010604027
+:10F4300034670100305F007FA0DF00088E390004D0
+:10F4400027380001ACD80030A4D0005C8CCE003C42
+:10F45000962F000E01CF6821ACCD00208CCB003C54
+:10F46000016C5021ACCA001C8E290004ACE90000DC
+:10F470008E250008ACE500048FA8001031040008B8
+:10F480005480002F93A60020A0C0004E90C5004ECF
+:10F490002408FFDF3C188008A0E5000890C400089D
+:10F4A000370C00802409005000888024A0D0000878
+:10F4B0008E390008AD9900388F0E00148D8F003002
+:10F4C00001CF6821AD8D0034918B0000316A00FFBF
+:10F4D00011490029264801000E0012AF02402021E8
+:10F4E00024040038000028210E0014472406000AD6
+:10F4F0008FBF00348FB200308FB1002C8FB0002846
+:10F500002402000103E0000827BD003894D8005C05
+:10F510008CD00054330EFFFF0205782301CF682BF7
+:10F5200015A0FFAC8FA300108CD9005430660004E6
+:10F5300014C0FFAC032520230A0014A52C82021856
+:10F540003C188008370C0080A0E600088E390008BF
+:10F5500024090050AD9900388F0E00148D8F0030B3
+:10F5600001CF6821AD8D0034918B0000316A00FF1E
+:10F570001549FFD9264801002406FF8001062824EA
+:10F580003C048000AC8500288E2700083103007FF2
+:10F590003C10800C0070F821AFE700D08E220008EC
+:10F5A000AF9F00240A0014E0AFE200D48E230008CD
+:10F5B0003C04800834820080AC4300540240202187
+:10F5C0000E001436AC400030240400382405008DB1
+:10F5D0000E001447240600128FBF00348FB2003093
+:10F5E0008FB1002C8FB000282402000103E0000836
+:10F5F00027BD00380A0014AA8FA4001C27BDFFE80D
+:10F60000AFBF001090A6000D30C7001010E0000C36
+:10F61000008040213C0280088C4400048CA3000838
+:10F620001064000830C9000430C5000410A0001C9C
+:10F630008FBF00102402000103E0000827BD00185E
+:10F6400030C900041120001030CB001210E0FFF987
+:10F650008FBF00103C0880088CA700088D060004AE
+:10F6600014E6FFF524020001240400382405008D6F
+:10F670000E001447240600128FBF00102402000160
+:10F6800003E0000827BD0018240A0012156AFFE9EC
+:10F690008FBF0010010020210A00148927BD001827
+:10F6A000000020210A000CB827BD00183C05080006
+:10F6B00024A555983C040800248473583C02080093
+:10F6C000244255A0240300063C010800AC257AC85A
+:10F6D0003C010800AC247ACC3C010800AC227AD072
+:10F6E0003C010800A0237AD403E0000800000000D9
+:10F6F00003E00008240200013C028000308800FF83
+:10F70000344701803C0680008CC301B80460FFFED2
+:10F71000000000008CC501282418FF803C0D800AE1
+:10F7200024AF010001F8702431EC007FACCE00243E
+:10F73000018D2021ACE50000948B00DA35096000D2
+:10F7400024080002316AFFFFACEA00042402000131
+:10F75000A4E90008A0E8000BACE000243C0710007E
+:10F76000ACC701B8AF84002403E00008AF850054A3
+:10F770008C9900048F8D00242409FFBF0325C0232A
+:10F78000AC98000491AF00C42403FFEF31EE007F7A
+:10F79000A1AE00C48C8C0020938B00308F86002497
+:10F7A000358A0002AF8B0048A7800044AC8A002055
+:10F7B000A4C000AC90C800C401093824A0C700C48C
+:10F7C0008F840024AC8000DC908500C400A310244A
+:10F7D00003E00008A08200C43C02800034450180A0
+:10F7E0003C0480008C8301B80460FFFE8F890054C4
+:10F7F0002407608324060002ACA900008C88012441
+:10F80000ACA80004A4A70008A0A6000B3C051000AB
+:10F8100003E00008AC8501B8938800308F89004868
+:10F820008F82002430C600FF0109382330E900FF31
+:10F830000122182130A500FF2468007810C00002C2
+:10F84000012438210080382130E4000314800003B3
+:10F8500030AA00031140000D312B000310A0000955
+:10F860000000102190ED0000244E000131C200FF85
+:10F870000045602BA10D000024E700011580FFF971
+:10F880002508000103E00008000000001560FFF3F8
+:10F890000000000010A0FFFB000010218CF8000009
+:10F8A00024590004332200FF0045782BAD180000D6
+:10F8B00024E7000415E0FFF92508000403E0000830
+:10F8C0000000000093850030938800408F87004837
+:10F8D000000432003103007F00E5102B30C47F00AC
+:10F8E0001040000F006428258F8400243C0980000C
+:10F8F0008C8A00DCAD2A00A43C03800000A35825BC
+:10F90000AC6B00A08C6C00A00580FFFE0000000026
+:10F910008C6D00ACAC8D00DC03E000088C6200A8AC
+:10F920000A0015E88F840024938800413C0280007F
+:10F9300000805021310300FEA383004130ABFFFF64
+:10F9400030CC00FF30E7FFFF344801803C098000E5
+:10F950008D2401B80480FFFE8F8D005424180016FA
+:10F96000AD0D00008D2201248F8D0024AD02000416
+:10F970008D590020A5070008240201B4A119000A2E
+:10F98000A118000B952F01208D4E00088D47000413
+:10F99000978300448D59002401CF302100C72821CE
+:10F9A00000A320232418FFFFA504000CA50B000EC4
+:10F9B000A5020010A50C0012AD190018AD18002406
+:10F9C00095AF00D83C0B10002407FFF731EEFFFF86
+:10F9D000AD0E00288DAC0074AD0C002CAD2B01B821
+:10F9E0008D46002000C7282403E00008AD45002014
+:10F9F0008F8800240080582130E7FFFF910900C65E
+:10FA00003C02800030A5FFFF312400FF00041A00F3
+:10FA10000067502530C600FF344701803C09800054
+:10FA20008D2C01B80580FFFE8F820054240F001733
+:10FA3000ACE200008D390124ACF900048D7800207F
+:10FA4000A4EA0008241901B4A0F8000AA0EF000BF2
+:10FA5000952301208D6E00088D6D0004978400446D
+:10FA600001C35021014D602101841023A4E2000C48
+:10FA7000A4E5000EA4F90010A4E60012ACE0001406
+:10FA80008D780024240DFFFFACF800188D0F006C5A
+:10FA9000ACEF001C8D0E00683C0F1000ACEE002097
+:10FAA000ACED0024950A00AE240DFFF73146FFFFB0
+:10FAB000ACE60028950C00709504007231837FFF3E
+:10FAC0000003CA003082FFFF0322C021ACF8002CE3
+:10FAD000AD2F01B8950E00728D6A002000AE302166
+:10FAE000014D2824A506007203E00008AD65002042
+:10FAF0003C028000344601803C0580008CA301B8A4
+:10FB00000460FFFE24090018ACC40000A0C9000B6B
+:10FB10008F8800243C041000950700AEA4C7001095
+:10FB2000ACC0003003E00008ACA401B83C02800087
+:10FB3000344501803C0480008C8301B80460FFFEE2
+:10FB40008F8A002C240600199549001C3128FFFFDC
+:10FB5000000839C0ACA70000A0A6000B3C051000AF
+:10FB600003E00008AC8501B88F8700340080402195
+:10FB700030C400FF3C0680008CC201B80440FFFE88
+:10FB80008F8900549383005034996000ACA9000021
+:10FB9000A0A300058CE20010240F00022403FFF74D
+:10FBA000A4A20006A4B900088D180020A0B8000A7D
+:10FBB000A0AF000B8CEE0000ACAE00108CED00048A
+:10FBC000ACAD00148CEC001CACAC00248CEB002021
+:10FBD000ACAB00288CEA002C3C071000ACAA002C2F
+:10FBE0008D090024ACA90018ACC701B88D05002010
+:10FBF00000A3202403E00008AD04002093850050FA
+:10FC00002403000127BDFFE800A330042CA200203C
+:10FC1000AFB00010AFBF001400C018211040001397
+:10FC20002410FFFE3C0708008CE7319000E610240A
+:10FC30003C0880003505018014400005240600843E
+:10FC40008F890024240A00042410FFFFA12A00EC5D
+:10FC50000E00168400000000020010218FBF001467
+:10FC60008FB0001003E0000827BD00183C06080014
+:10FC70008CC631940A0016B600C310248F87002C5E
+:10FC800027BDFFE0AFB20018AFB10014AFB0001055
+:10FC9000AFBF001C30D000FF90E6000D00A088210F
+:10FCA0000080902130C5007FA0E5000D8F850024E5
+:10FCB0008E2300188CA200C01062002E240A000EB1
+:10FCC0000E0016A9A38A00502409FFFF1049002244
+:10FCD0002404FFFF52000020000020218E26000097
+:10FCE0003C0C001000CC5824156000393C0E000874
+:10FCF00000CE682455A0003F024020213C1800029D
+:10FD000000D880241200001F3C0A00048F87002CBA
+:10FD10008CE200148CE300108CE500140043F823FF
+:10FD200003E5C82B13200005024020218E24002C5F
+:10FD30008CF10010109100310240202124020012A9
+:10FD4000A38200500E0016A92412FFFF10520002D9
+:10FD50002404FFFF000020218FBF001C8FB2001879
+:10FD60008FB100148FB000100080102103E0000854
+:10FD700027BD002090A800C4350400200A0016DF2B
+:10FD8000A0A400C400CA48241520000B8F8B002CAF
+:10FD90008F8D002C8DAC00101580000B02402021AF
+:10FDA0008E2E002C51C0FFEC0000202102402021AB
+:10FDB0000A0016FA240200178D66001050C0FFE6F4
+:10FDC00000002021024020210A0016FA240200111E
+:10FDD00002402021240200150E0016A9A382005023
+:10FDE000240FFFFF104FFFDC2404FFFF0A0016E979
+:10FDF0008E2600000A001720240200143C0800048C
+:10FE000000C8382450E0FFD4000020210240202107
+:10FE10000A0016FA240200138F86002427BDFFE093
+:10FE2000AFB10014AFBF0018AFB0001090C300C452
+:10FE300030A500FF306200201040000800808821BB
+:10FE40008CCB00C02409FFDF256A0001ACCA00C0CA
+:10FE500090C800C401093824A0C700C414A0004001
+:10FE60003C0C80008F840024908700C42418FFBFBE
+:10FE70002406FFEF30E3007FA08300C4979F004477
+:10FE80008F8200488F8D002403E2C823A799004485
+:10FE9000A5A000AC91AF00C401F87024A1AE00C4CD
+:10FEA0008F8C0024A18000C78F8A0024A540007297
+:10FEB000AD4000DC914500C400A65824A14B00C40D
+:10FEC0008F9000208F8400489786004402042821E8
+:10FED00010C0000FAF850020A38000403C078000C9
+:10FEE0008E2C000894ED01208E2B0004018D5021F2
+:10FEF000014B8021020620233086FFFF30C8000F0F
+:10FF0000390900013131000116200009A3880040A1
+:10FF1000938600308FBF00188FB100148FB000108F
+:10FF200027BD0020AF85004C03E00008AF860048E5
+:10FF300000C870238FBF0018938600308FB1001463
+:10FF40008FB0001034EF0C00010F282127BD0020D6
+:10FF5000ACEE0084AF85004C03E00008AF8600489B
+:10FF600035900180020028210E00168424060082AC
+:10FF70008F840024908600C430C5004050A0FFBA92
+:10FF8000A38000508F8500343C0680008CCD01B8E2
+:10FF900005A0FFFE8F890054240860822407000218
+:10FFA000AE090000A6080008A207000B8CA30008F9
+:10FFB0003C0E1000AE0300108CA2000CAE02001428
+:10FFC0008CBF0014AE1F00188CB90018AE190024A5
+:10FFD0008CB80024AE1800288CAF0028AE0F002C7F
+:10FFE000ACCE01B80A001744A38000508F8A0024C9
+:10FFF00027BDFFE0AFB10014AFB000108F880048FC
+:020000040001F9
+:10000000AFBF001893890028954200AC30D100FFA3
+:100010000109182B0080802130AC00FF3047FFFF22
+:100020000000582114600003310600FF0120302138
+:1000300001095823978300440068202B1480001B7B
+:100040000000000010680043240A0001118A0048E3
+:1000500034E708803165FFFF0E00162602002021DC
+:100060000E0016668F8400548F840024948D0070D7
+:1000700025AC0001A48C0070948B00703C06080035
+:100080008CC6318831677FFF10E6004F000000000A
+:1000900002002021022028218FBF00188FB10014F8
+:1000A0008FB000100A00173027BD0020914400C413
+:1000B0002406FF8000868825A15100C4978400444F
+:1000C0003088FFFF1100001C938900288F8E0024C8
+:1000D0002419EFFF008BF82395D800AC0168682B3A
+:1000E00033E900FF03197824A5CF00AC51A0002A02
+:1000F000010058218E0500202408FFFB2403000185
+:1001000000A81024AE0200201183002534E78000EF
+:10011000020020213165FFFF0E001626012030214C
+:10012000978B00448F870048A780004400EB802312
+:10013000AF900048938900288F8C00248FBF00184F
+:100140008FB100148FB0001027BD002003E000081D
+:10015000A18900C78E0800202409FFFB34E7800036
+:1001600001092824AE050020158AFFBA34E708806B
+:10017000020020210E0015F43165FFFF020020214E
+:10018000022028218FBF00188FB100148FB00010FB
+:100190000A00173027BD00200A0017E70000482199
+:1001A000020020213165FFFF0E0015F401203021EF
+:1001B000978B00448F870048A780004400EB802382
+:1001C0000A0017F7AF90004894890070240A800055
+:1001D000012A4024A48800709085007090990070D6
+:1001E00030A200FF000219C20003F827001FC1C09F
+:1001F000332F007F01F87025A08E00700A0017CF02
+:10020000020020218F88002424030001910A007835
+:10021000910500C7250900783147003F24E6FFE03B
+:1002200000C318042CC2002030670019A3850028E1
+:100230001040001AAF8900343C0A8000354B0002A0
+:10024000240500012406000114E00016006B1024B0
+:10025000000028211440000F306300201060000FC0
+:10026000240500018D0600748D1900742403FF809D
+:1002700000C31024000279403338007F01F868255C
+:100280003C0E100001AE6025AD4C083091280001F5
+:10029000310600010A0017A50000000003E0000875
+:1002A000000000008D0F00748D0D00742418FF8075
+:1002B00001F87024000E414031AC007F010C502544
+:1002C0003C0B1000014B38253C0980000A0017A5A3
+:1002D000AD27083027BDFFD8AFB000108F90003495
+:1002E000AFB40020AFB10014AFBF0024AFB3001C07
+:1002F000AFB200188E0500103C0208008C4231B0ED
+:100300008F86003830A73FFF00E2182B8CD20014F4
+:10031000008088218CD30020106000070000A021FD
+:1003200090CB000D240AFF80014B4824312800FFA8
+:100330001500000C00056382022020212411000D0D
+:10034000A39100508FBF00248FB400208FB3001CF6
+:100350008FB200188FB100148FB000100A0016A9D8
+:1003600027BD00283185000354A0FFF4022020217E
+:1003700094CF001C8F8E00248E070028A5CF00D8B4
+:100380008CCD0010024D302310E6005C2402001FCB
+:100390000E0016A9A3820050241FFFFF105F004E1D
+:1003A0002404FFFF8F83003C8F88002C0263982178
+:1003B0008D090010012310238F83001CAD02001053
+:1003C000AD1300208C67007400F3202B14800062B2
+:1003D000022020218F8600388E0C00248CC500243A
+:1003E0001185000702202021240E001C0E0016A9F2
+:1003F000A38E0050240DFFFF104D00372404FFFF93
+:100400008F84002C8C980024270F0001AC8F0024CF
+:10041000127200448F99001C8F32007412530041F5
+:100420003C0A00808E090000012A10241440003A82
+:10043000000000008E0400142412FFFF109200063A
+:10044000240B001B022020210E0016A9A38B0050B4
+:10045000105200212404FFFF8E0300003C0C000119
+:10046000006C282410A000133C0600800066A02425
+:10047000168000090200282102202021240E001AE3
+:100480000E0016A9A38E0050240DFFFF104D001280
+:100490002404FFFF02002821022020210E0016C99B
+:1004A000240600012410FFFF2404FFFF1050000A5F
+:1004B000241400018F8F002C022020210280302183
+:1004C00095F2003424050001265800010E0017A5FE
+:1004D000A5F80034000020218FBF00248FB4002035
+:1004E0008FB3001C8FB200188FB100148FB00010B2
+:1004F0000080102103E0000827BD00288F83003C06
+:1005000000E3C8210259C02B1300FFA88F88002CDC
+:100510000A00188E24020018AC8000200A0018B8C7
+:100520008E0400148E1F00003C07008003E798240F
+:100530001660FFF92408001A022020210E0016A9D7
+:10054000A38800502403FFFF1443FFBA2404FFFFD5
+:100550000A0018E18FBF0024240B001D0E0016A90D
+:10056000A38B0050240AFFFF144AFF9A2404FFFFC4
+:100570000A0018E18FBF00248F85002427BDFFD813
+:10058000AFB3001CAFB20018AFB10014AFB0001091
+:10059000AFBF002090A700C48F9000342412FFFF4B
+:1005A00034E2004092060000A0A200C48E030010B6
+:1005B000008098211072000630D1003F2408000D01
+:1005C0000E0016A9A3880050105200262406FFFF33
+:1005D0008F8A00248E0900188D4400C01124000762
+:1005E000240C000E026020210E0016A9A38C0050DE
+:1005F000240BFFFF104B001B2406FFFF24040020E8
+:10060000122400048F8D002491AF00C435EE002029
+:10061000A1AE00C48F85003C10A0001A00000000AD
+:100620001224004B8F9800248F92FED42406FFFDE5
+:10063000971000709651000A1230000B8FBF0020F7
+:100640003C1F08008FFF318C03E5C82B1720001ECC
+:1006500002602021000028210E0017A524060001B9
+:10066000000030218FBF00208FB3001C8FB2001814
+:100670008FB100148FB0001000C0102103E00008FB
+:1006800027BD00285224002A8E0300148F840024E2
+:100690009489007025280001A48800709487007058
+:1006A0003C0508008CA5318830E27FFF1045000E24
+:1006B00000000000026020210E0017302405000118
+:1006C0000A001943000030212402002DA3820050AB
+:1006D0000E0016A92413FFFF1453FFE12406FFFFA9
+:1006E0000A0019448FBF00209498007024198000DC
+:1006F0002405000103199024A492007090910070C9
+:10070000908D0070323000FF001079C2000F70270A
+:10071000000E61C031AB007F016C5025A08A0070D3
+:100720000E001730026020210A001943000030211A
+:100730002406FFFF1466FFD68F8400240260202168
+:100740000E001730240500010A0019430000302173
+:10075000026020210A00195D2402000A8F8800240B
+:1007600027BDFFE8AFB00010AFBF0014910A00C46E
+:100770008F87003400808021354900408CE60010CE
+:10078000A10900C43C0208008C4231B030C53FFFD3
+:1007900000A2182B106000078F850038240DFF8001
+:1007A00090AE000D01AE6024318B00FF1560000893
+:1007B0000006C382020020212403000D8FBF001415
+:1007C0008FB0001027BD00180A0016A9A38300509F
+:1007D00033060003240F000254CFFFF7020020214C
+:1007E00094A2001C8F85002424190023A4A200D801
+:1007F0008CE8000000081E02307F003F13F900352E
+:100800003C0A00838CE800188CA600C01106000882
+:10081000000000002405000E0E0016A9A38500505C
+:100820002407FFFF104700182404FFFF8F850024D2
+:1008300090A900C435240020A0A400C48F8C002CF3
+:10084000918E000D31CD007FA18D000D8F83003C76
+:100850001060001C020020218F8400388C9800104A
+:100860000303782B11E0000D241900180200202149
+:10087000A39900500E0016A92410FFFF105000028B
+:100880002404FFFF000020218FBF00148FB0001050
+:100890000080102103E0000827BD00188C8600109E
+:1008A0008F9F002C0200202100C31023AFE2001014
+:1008B000240500010E0017A5240600010A0019CC2A
+:1008C000000020210E001730240500010A0019CC79
+:1008D00000002021010A5824156AFFD98F8C002CB2
+:1008E000A0A600EC0A0019B9A386004227BDFFD8D4
+:1008F000AFB000108F900034AFB20018AFBF00202F
+:10090000AFB3001CAFB100148E1100103C030800FF
+:100910008C6331B032253FFF00A3102B104000083C
+:10092000008090218F8600382409FF8090CA000D36
+:10093000012A4024310700FF14E0000B00116B82F4
+:10094000024020212412000DA39200508FBF0020EE
+:100950008FB3001C8FB200188FB100148FB000103D
+:100960000A0016A927BD002831AC0003240B0001A2
+:10097000558BFFF40240202190CF000D31EE00088E
+:1009800011C000608F93003C16600009240200270C
+:100990008E19000C8CD80020173800052402002086
+:1009A0008E0200088CDF0024105F0040240200202B
+:1009B0000E0016A9A38200502406FFFF1046003344
+:1009C0002404FFFF8F99002C240AFFF73C13800EAC
+:1009D0009329000D2404FF803C0D8000012AF82497
+:1009E000A33F000D8F99001C3C0808008D0831AC16
+:1009F0008F830054972700788F9F002C01031021CC
+:100A000030E57FFF000530400046782131F8007F57
+:100A10000313602101E47024ADAE002CA591000009
+:100A20008FEB0028256A0001AFEA00288FE3002C35
+:100A30008E09002C00694021AFE8002C8E07002CA5
+:100A4000AFE700308E050014AFE5003497E6003ABA
+:100A500024C20001A7E2003A973300783C10080056
+:100A60008E1031B02663000130717FFF12300027F5
+:100A7000006030218F8F001C0240202124050001DE
+:100A80000E001730A5E60078000020218FBF00205F
+:100A90008FB3001C8FB200188FB100148FB00010FC
+:100AA0000080102103E0000827BD00288E050014F7
+:100AB0002413FFFF10B3001D8F8300248E0800183D
+:100AC0008C6700C0150700092402000E8E0A00245E
+:100AD0008CC9002815490005240200218E07002832
+:100AE0008CCB002C10EB00132402001F0E0016A963
+:100AF000A38200501453FFB32404FFFF0A001A4ED0
+:100B00008FBF00200A001A1624020024240E800041
+:100B1000006E682431ACFFFF000C5BC2317100FF36
+:100B2000001180270A001A47001033C00A001A6516
+:100B3000240200258E05002C10A0FFEC24020023C7
+:100B40008F8E001C8DCD007401A5602B1580FFE7F2
+:100B5000240200268CCF001400A7C02101F8202B0E
+:100B60001080FF998F99002C024020210A001A65FD
+:100B70002402002227BDFFE0AFB000108F900034A8
+:100B8000AFB10014AFBF00188E0500103C03080081
+:100B90008C6331B00080882130A43FFF0083102B8C
+:100BA000104000078F8600382409FF8090CA000D8E
+:100BB000012A4024310700FF14E000098F8B003C1C
+:100BC0002410000D02202021A39000508FBF001898
+:100BD0008FB100148FB000100A0016A927BD0020A5
+:100BE000116000080005C3828F8F00248F8EFED411
+:100BF0002407FFFD95EC007095CD000A11AC00387C
+:100C00008FBF00183305000314A00010000000007F
+:100C10009219000213200041000000008E060024FB
+:100C200050C0000F92040003022020212402000F74
+:100C30000E0016A9A38200502408FFFF14480007E5
+:100C40002407FFFF0A001AE28FBF001890C3000DAF
+:100C50003064000810800037022020219204000335
+:100C600024070002308900FF15270005308F00FFA0
+:100C70008F8A003C11400031240C002C308F00FF83
+:100C800039E500102CAD00012DEE000102002821F5
+:100C900001CD30250E0016C9022020212410FFFFAF
+:100CA0001050000E2407FFFF8F83003C10600017D8
+:100CB000022020213C1908008F39318C0323C02BDE
+:100CC0005700000C2411002D0220202100002821B3
+:100CD0000E0017A524060001000038218FBF001860
+:100CE0008FB100148FB0001000E0102103E0000865
+:100CF00027BD00200E0016A9A39100501450FFF646
+:100D00002407FFFF0A001AE28FBF00180E001730F9
+:100D1000240500010A001AE1000038218CDF0024BC
+:100D20008E020024545FFFC1022020210A001AC253
+:100D3000920400030A001AB62402001002202021A7
+:100D40000E0016A9A38C0050240BFFFF104BFFE3ED
+:100D50002407FFFF0A001AC99204000330A500FF10
+:100D60002406000124A9000100C9102B1040000C2A
+:100D700000004021240A000100A61823308B000146
+:100D800024C60001006A38040004204211600002F9
+:100D900000C9182B010740251460FFF800A618238E
+:100DA00003E000080100102127BDFFD8AFB00018F4
+:100DB0008F900034AFB1001CAFBF00202403FFFFB1
+:100DC0002411002FAFA30010920600002405000894
+:100DD00026100001006620260E001B01308400FF53
+:100DE00000021E003C021EDC34466F410A001B2933
+:100DF0000000102110A000090080182124450001E6
+:100E000030A2FFFF2C4500080461FFFA00032040D8
+:100E10000086202614A0FFF9008018210E001B0177
+:100E2000240500208FA300102629FFFF313100FF89
+:100E300000034202240700FF1627FFE201021826E2
+:100E400000035027AFAA0014AFAA00100000302101
+:100E500027A8001027A7001400E6782391ED0003CF
+:100E600024CE000100C8602131C600FF2CCB000455
+:100E70001560FFF9A18D00008FA200108FBF002028
+:100E80008FB1001C8FB0001803E0000827BD0028B8
+:100E90009383003027BDFFE024020034AFB100147B
+:100EA000AFB00010AFBF001CAFB2001800808821A7
+:100EB0001062006200A080219204000414800045AA
+:100EC0008F880024A38000288E0500048D0600C8AA
+:100ED0003C0700FF34E3FFFF00A3282400C5102BCC
+:100EE0001440004DAF85003C978A00448F8700482E
+:100EF0000147102310A00032A78200448F98001CE5
+:100F0000304CFFFF9312007C0012788231F1000117
+:100F10000011708001C56821018D582B116000619E
+:100F20008F8600248F8900208F84004C1089005EFA
+:100F30003C023F018E1F00003C10250003E2C82444
+:100F40001730007A8F8400348F8700348F86002416
+:100F50008CE30000ACC300788CE50010ACC50088C1
+:100F60008F8700488F85003C938D002830AE0003AA
+:100F7000000E4023310A0003014D4021A3880028C0
+:100F800094CB00AC01276021AF8C002035691000A4
+:100F9000A4C900AC1620005101452021AF840048AF
+:100FA000000020218FBF001C8FB200188FB10014E9
+:100FB0008FB000100080102103E0000827BD002042
+:100FC0008F840020AF800048008730210A001B92E8
+:100FD000AF860020241F000CA39F00500E0016A90E
+:100FE000022020212419FFFF1059FFEE2404FFFFE7
+:100FF0008F880024A38000288E0500048D0600C879
+:101000003C0700FF34E3FFFF00A3282400C5102B9A
+:101010001040FFB5AF85003C0220202124090019B3
+:10102000A38900500E0016A92411FFFF1051FFDD07
+:101030002404FFFF0A001B648F85003C8F8400247A
+:101040008F8700348CF20030908600C430C50010C9
+:1010500014A000108F8300482C680005150000289C
+:1010600000000000908A00C4246BFFFC314900108E
+:1010700015200008316400FF8F8D004C8F8C0020FC
+:1010800011AC0004388F000131EE000115C0002FB3
+:10109000000000000E001B14000000000A001BEB03
+:1010A000000000008F890020938D002830AE0003DF
+:1010B000000E4023310A0003014D4021A38800287F
+:1010C00094CB00AC01276021AF8C00203569100063
+:1010D000A4C900AC1220FFB101452021251800044D
+:1010E000A398002894CF00AC24920004AF9200484B
+:1010F00035F12000A4D100AC0A001B930000202190
+:101100008C8200DC1242FF6C022020212418000592
+:10111000A39800500E0016A92412FFFF1452FF6678
+:101120002404FFFF0A001B948FBF001C30E500FF62
+:101130000E0015B0000030218F8600248F870048F4
+:101140008F8900200A001B848F85003C0E0015DB70
+:10115000000000000A001BEB000000009383004227
+:1011600027BDFFE024020002AFB20018AFB10014A7
+:10117000AFBF001C00808821AFB00010000090219C
+:10118000106200552404FFFD978300448F850048BA
+:101190003066FFFF00C5202B1480005B9387003072
+:1011A0003C0880009504012010E500528F8A002041
+:1011B0008F84004C30A500FF0E0015B024060001FE
+:1011C0008F9F00543C0580003C19408027ED01783A
+:1011D00031B00078240EFF800219582534AF090081
+:1011E00031B8000701AE6024ACAC0800030F8021C9
+:1011F000ACAB081002202021020028210E001B4E5B
+:10120000AF9000342403FFFF104300332404FFFF9A
+:101210008E0C00103C0708008CE731B092060000ED
+:1012200031843FFF0087102B1040002330CD003F5A
+:101230008F980054000471803C0408008C8431A80D
+:101240002409FF809390004100984021010E202145
+:1012500000897024000E51403C0980003099007FC5
+:101260003C0F00808F8800243525094035E20001BD
+:1012700001593825308B0078308600073C03100078
+:101280003C1F800C00C5C0210162582500E3502599
+:10129000033F782136050001AD2E0804AF980038D1
+:1012A000AD2B0814AF8F002CAD2E0028AD040074B8
+:1012B000AD2A0830A3850041938300422410000327
+:1012C0005070002725A3FFE0240C0001106C001CC7
+:1012D00024060023024020218FBF001C8FB200187B
+:1012E0008FB100148FB000100080102103E00008BF
+:1012F00027BD0020314900035520FFAE8F84004CEC
+:101300000A001C278F90004C8F84004C306500FF32
+:101310000E0015B024060001938B00302405003424
+:1013200011650018978300448F8500483062FFFFE5
+:1013300000A25823AF8B00480A001C5FA78000441E
+:1013400011A6003700000000022020212411000B0C
+:101350000E0016A9A39100500A001C5F00409021C6
+:101360002C7200201240FFF80003F8803C070800B0
+:1013700024E7796003E7C8218F2D000001A0000851
+:10138000000000008F8500482CA200055440001D7D
+:10139000A7800044978A00443148FFFF00A84823F3
+:1013A0002D2F000511E00003314400FF24AEFFFCA7
+:1013B00031C400FF8F90004C8F9800201218000459
+:1013C00038990001332D000115A00029000000000C
+:1013D0008F910024922500C434A30010A22300C4DE
+:1013E000978300448F8500488F8400243062FFFF7C
+:1013F00000A25823AC8000DCA78000440A001C5FD8
+:10140000AF8B00483062FFFF00A258230A001C5F28
+:10141000AF8B00482403FFFF11830005000000008C
+:101420000E001981022020210A001C5F004090213B
+:101430000E001908022020210A001C5F00409021A4
+:101440000E0019E5022020210A001C5F00409021B7
+:101450000E00185F022020210A001C5F004090212E
+:101460000E001A87022020210A001C5F00409021F4
+:101470000E0015DB00000000978300448F850048B4
+:10148000306CFFFF00AC38232CFF000553E0FFA8B1
+:101490003062FFFF8F860024A7800044ACC200DCCE
+:1014A0003062FFFF00A258230A001C5FAF8B004888
+:1014B00027BDFFD0AFB20018AFB00010AFBF0028FB
+:1014C000AFB50024AFB40020AFB3001CAFB100141F
+:1014D0003C0C80008D880128240FFF803C07800A87
+:1014E00025100100250B0080020F68243205007FC3
+:1014F000016F7024AD8E009000A72821AD8D0024CF
+:1015000090A700EC3169007F3C0A8004012A182171
+:10151000A38700429066007C00809021AF83001C6E
+:1015200030C20002AF880054AF85002400A018210B
+:10153000144000022404003424040030A38400304A
+:101540008C6600CC30F100FF24040004AF86004814
+:1015500012240004A38000508E5300041660001D66
+:101560003C0880009387004130F200011240000FD8
+:101570008FBF00288CB800748CA400742419FF80DD
+:101580000319882400117140308F007F01CF60253E
+:101590003C0D2000018D582530F500FE3C0A8000EE
+:1015A000AD4B0830A39500418FBF00288FB50024B4
+:1015B0008FB400208FB3001C8FB200188FB10014BD
+:1015C0008FB000102402000127BD003003E00008A6
+:1015D000ACA600CC8E590008951F01208E46001045
+:1015E000033FC0213307FFFF30F5000F32B4000185
+:1015F000AF8600201680003BA395004035060C0006
+:1016000002A6102100F51823AD030084AF82004C20
+:101610008E4900043128FFFF1100002BA7890044E8
+:101620002410FF803C1580003C1420000A001D4D52
+:101630002413FFFE90AE00C4020E682431AC00FFFC
+:101640001580002A0240202193840041978600449F
+:10165000308F000111E0000B026428248F890024E0
+:101660008D2300748D280074A38500410070102420
+:101670000002C940311F007F033FC02503148825A5
+:10168000AEB1083010C000108F85002490A700C4B0
+:1016900002075824316A00FF1540FFE6024020216E
+:1016A0000E001C01979100441040FFE89384004114
+:1016B0002405FFFD544500058E430020022028210B
+:1016C0000E001586024020218E4300203070000459
+:1016D0001600000A2414FFFB8F8500240A001D0356
+:1016E0008F8600480A001D2EAF86004C0E00182B76
+:1016F000000000000A001D3D9384004100749824FE
+:101700000E0015A0AE5300208F8500240A001D0393
+:101710008F86004827BDFFD8AFB3001CAFB10014BF
+:10172000AFBF0020AFB20018AFB000103C02800085
+:101730008C5201408C4B01483C048000000B8C0211
+:10174000322300FF317300FF8C8501B804A0FFFE37
+:1017500034900180AE1200008C8701442464FFF0B5
+:10176000240600022C830013AE070004A611000813
+:10177000A206000BAE1300241060004F8FBF0020A4
+:10178000000448803C0A0800254A79E0012A4021EB
+:101790008D04000000800008000000003C100800DC
+:1017A0008E1031A831733FFF001389800212282167
+:1017B000240CFF8000B12021264D01002647008027
+:1017C0003C0F80003C03800431A8007F30E9007F9B
+:1017D000308A007F3C0E800A3C02800C008CC024C2
+:1017E00001AC302400ECC82401239821014280215F
+:1017F000ADE60024010EF821ADF90090ADF8002807
+:10180000AF90002CAF9F0024AF93001C0E00167504
+:10181000016080213C0380008C6B01B80560FFFEF5
+:101820008F87002C8F8600243465018090F9000D8D
+:10183000ACB2000024C200780019C60000187E0374
+:10184000000F9027001227C2A4B00006108000707D
+:10185000240E6082A4AE0008A0A00005240F0002A0
+:10186000A0AF000B0004C4008F8B001C3C192700A4
+:1018700003199025ACB20010ACA00014ACA0002459
+:10188000ACA00028ACA0002C8D7300382411FF8080
+:10189000ACB3001890F0000D0230282430A400FFF3
+:1018A000108000058FBF002090EC000D319F007F5D
+:1018B000A0FF000D8FBF00208FB3001C8FB2001857
+:1018C0008FB100148FB000103C0A10003C0D800056
+:1018D00027BD002803E00008ADAA01B8265F01007B
+:1018E0002405FF8033F8007F3C06800003E5782460
+:1018F0003C19800A03192021ACCF0024908E00C42B
+:1019000000AE682431AC00FF1180FFEAAF840024F0
+:10191000248E007895CD00123C0C08008D8C31A8E7
+:101920003C03800C31AB3FFF01924821000B5180FA
+:10193000012A40213104007F010510240083382151
+:10194000ACC200280E001675AF87002C3C03800047
+:101950008C6501B804A0FFFE00000000AE1200007C
+:101960008C720144AE120004A6110008241100027A
+:10197000A211000BAE1300240A001DD88FBF002057
+:101980003C1260008E452C083C03F0033462FFFFDC
+:1019900000A2F824AE5F2C088E582C083C1901B028
+:1019A00003199825AE532C080A001DD88FBF0020BC
+:1019B000264D010031AF007F3C10800A240EFF80CD
+:1019C00001F0282101AE60243C0B8000AD6C0024A6
+:1019D0001660FFB8AF85002424110003A0B100EC0D
+:1019E0000A001DD88FBF002026480100310A007F61
+:1019F0003C0B800A2409FF80014B3021010920247F
+:101A00003C078000ACE400240A001DD7AF86002408
+:101A1000944D0012321F3FFF31AC3FFF159FFF8DE9
+:101A2000240E608290C300C42409FF800123102487
+:101A3000304A00FF1140FF87000000002407000427
+:101A4000A0C700EC8F87002C240860842406000DBA
+:101A5000A4A80008A0A600050A001DC2240F0002C9
+:101A60005F865437E4AC62CC50103A453662198533
+:101A7000BF14C0E81BC27A1E84F4B556094EA6FEF8
+:101A80007DDA01E7C04D7481800801008008008084
+:101A90008008000008004FBC08004FBC08005098A8
+:101AA0000800506C0800505008004F8C08004F8C04
+:101AB00008004F8C08004FC4080072BC080073086F
+:101AC000080072C8080071F0080072C8080072F8B7
+:101AD000080072C8080071F0080071F0080071F089
+:101AE000080071F0080071F0080071F0080071F052
+:101AF000080071F0080071F0080071F0080072E849
+:101B0000080072D8080071F0080071F0080071F048
+:101B1000080071F0080071F0080071F0080071F021
+:101B2000080071F0080071F0080071F0080071F011
+:101B3000080071F0080072D8080078900800775CFF
+:101B4000080078580800775C080078280800764478
+:101B50000800775C0800775C0800775C0800775C19
+:101B60000800775C0800775C0800775C0800775C09
+:101B70000800775C0800775C0800775C0800775CF9
+:041B8000080077845E
+:0C1B84000A000122000000000000000028
+:101B90000000000D747061342E362E3135000000C7
+:101BA00004060F010000000000000000000000001B
+:101BB0000000000000000000000000000000000025
+:101BC0000000000000000000000000000000000015
+:101BD0000000000000000000000000000000000005
+:101BE00000000000000000000000000000000000F5
+:101BF00000000000000000000000000000000000E5
+:101C000000000000000000000000000000000000D4
+:101C100010000003000000000000000D0000000D97
+:101C20003C020800244217C03C03080024632AB485
+:101C3000AC4000000043202B1480FFFD2442000430
+:101C40003C1D080037BD2FFC03A0F0213C1008000C
+:101C5000261004883C1C0800279C17C00E00025E5A
+:101C6000000000000000000D2402FF8027BDFFE0FF
+:101C700000821024AFB00010AF420020AFBF0018A8
+:101C8000AFB10014936500043084007F0344182131
+:101C90003C0200080062182130A50020036080216A
+:101CA0003C080111277B000814A000022466005C98
+:101CB0002466005892020004974301049204000431
+:101CC0003047000F3063FFFF308400400067282357
+:101CD00010800009000048219202000530420004F3
+:101CE000104000050000000010A0000300000000EC
+:101CF00024A5FFFC240900049202000530420004E0
+:101D0000104000120000000010A0001000000000B1
+:101D10009602000200A72021010440252442FFFE74
+:101D2000A7421016920300042402FF8000431024EF
+:101D3000304200FF104000033C0204000A00017220
+:101D4000010240258CC20000AF4210188F4201787A
+:101D50000440FFFE2402000AA7420140960200024E
+:101D6000240400093042000700021023304200071B
+:101D7000A7420142960200022442FFFEA74201440C
+:101D8000A740014697420104A74201488F4201083B
+:101D9000304200205040000124040001920200045F
+:101DA00030420010144000023483001000801821DB
+:101DB000A743014A000000000000000000000000EE
+:101DC00000000000AF48100000000000000000000C
+:101DD00000000000000000008F4210000441FFFEE0
+:101DE0003102FFFF104000070000000092020004D3
+:101DF0003042004014400003000000008F421018E1
+:101E0000ACC20000960200063042FFFF24420002EE
+:101E10000002104300021040036288219622000055
+:101E20001120000D3044FFFF00A710218F83003CDC
+:101E30008F45101C00021082000210800043102108
+:101E4000AC45000030A6FFFF0E0005B700052C02D0
+:101E500000402021A6220000920300042402FF80FB
+:101E600000431024304200FF1040001F000000001B
+:101E700092020005304200021040001B00000000EA
+:101E80009742100C2442FFFEA742101600000000EB
+:101E90003C02040034420030AF4210000000000059
+:101EA0000000000000000000000000008F42100051
+:101EB0000441FFFE000000009742100C8F45101CEB
+:101EC0003042FFFF244200300002108200021080E6
+:101ED000005B1021AC45000030A6FFFF0E0005B7E7
+:101EE00000052C02A62200009604000224840008AB
+:101EF0000E0001E73084FFFF974401040E0001F556
+:101F00003084FFFF8FBF00188FB100148FB0001016
+:101F10003C02100027BD002003E00008AF4201781A
+:101F20003084FFFF308200078F85002410400002BC
+:101F3000248300073064FFF800A4102130421FFF03
+:101F400003421821247B4000AF850028AF82002483
+:101F500003E00008AF4200843084FFFF3082000FAE
+:101F60008F85002C8F860034104000022483000FE0
+:101F70003064FFF000A410210046182BAF8500301C
+:101F80000046202314600002AF82002CAF84002C96
+:101F90008F82002C34048000034218210064182131
+:101FA000AF83003C03E00008AF4200808F82001442
+:101FB000104000088F8200048F82FFE41440000567
+:101FC0008F8200043C02FFBF3442FFFF00822024C6
+:101FD0008F82000430430006240200021062000FCA
+:101FE0003C0201012C620003504000052402000461
+:101FF0001060000F3C0200010A00022E00000000E9
+:1020000010620005240200061462000C3C0201115B
+:102010000A000227008210253C02001100821025D0
+:10202000AF421000240200010A00022EAF82000C11
+:1020300000821025AF421000AF80000C00000000AD
+:10204000000000000000000003E0000800000000A5
+:102050008F82000C10400004000000008F4210002E
+:102060000441FFFE0000000003E000080000000043
+:102070008F820010000229C224A3FFF0000318423F
+:102080002444F80000031140004310210002108096
+:1020900000431021000210803C0308002463180054
+:1020A0002C84030114800013004330218F84001816
+:1020B00000A4102B1440000F0000302100A41023B6
+:1020C00000021940006218210003188000621821E4
+:1020D0008F82001C008210212442FFFF0045102B3C
+:1020E00014400004000318803C02080024421A1423
+:1020F0000062302103E0000800C0102127BDFFE08E
+:10210000AFBF0018AFB10014AFB000103C046008BE
+:102110008C8250002403FF7F3C06600000431024A3
+:102120003442380CAC8250008CC24C1C3C1A8000EB
+:10213000000216023042000F10400007AF82001C60
+:102140008CC34C1C3C02001F3442FC00006218246B
+:10215000000319C2AF8300188F420008275B4000BC
+:1021600034420001AF420008AF8000243C02601CF2
+:10217000AF400080AF4000848C4500088CC3080845
+:1021800034028000034220212402FFF00062182460
+:102190003C0200803C010800AC2204203C025709AC
+:1021A000AF84003C14620004AF85003424020001B7
+:1021B0000A00028EAF820014AF8000143C0280003F
+:1021C000344400708C8300008F42000038420001CC
+:1021D0003042000110400018AF83003800804021D9
+:1021E000006030218D0700003C0508008CA5045CD0
+:1021F0003C0408008C84045800E6302300001021C1
+:1022000000A6282100A6302B008220210086202154
+:102210003C010800AC25045C3C010800AC240458D7
+:102220008F42000038420001304200011440FFEDAF
+:1022300000E03021AF8700383C028000344200705B
+:102240008C4700008F8600383C0508008CA5045C94
+:102250003C0408008C84045800E638230000102158
+:1022600000A72821008220218F82001400A7302B94
+:10227000008620213C010800AC25045C3C010800DC
+:10228000AC240458104000160000000097420104DE
+:10229000104000058F830000146000072462FFFFD8
+:1022A0000A0002D02C62000A2C6200105040000488
+:1022B0008F83000024620001AF8200008F83000042
+:1022C0002C62000A144000032C6200070A0002D7A7
+:1022D000AF80FFE41040000224020001AF82FFE45F
+:1022E0008F4301088F44010030622000AF83000457
+:1022F00010400008AF8400103C0208008C42042CFF
+:10230000244200013C010800AC22042C0A0005B361
+:102310003C0240003065020014A0000324020F00BC
+:102320001482026024020D0097420104104002C88A
+:102330003C02400030624000144000AD8F82003CFF
+:102340008C4400088F4201780440FFFE24020800FC
+:10235000AF42017824020008A7420140A740014291
+:10236000974201048F8400043051FFFF3082000146
+:1023700010400007022080212623FFFE24020002D5
+:102380003070FFFFA74201460A000304A74301483B
+:10239000A74001463C0208008C42043C1440000D5A
+:1023A0008F830010308200201440000224030009B3
+:1023B00024030001006020218F8300102402090003
+:1023C0005062000134840004A744014A0A00031F3C
+:1023D0000000000024020F0014620005308200207B
+:1023E000144000062403000D0A00031E2403000508
+:1023F000144000022403000924030001A743014AFA
+:102400003C0208008C4204203C0400480E00020AF2
+:10241000004420250E000233000000008F82000CD3
+:102420001040003E000000008F4210003C030020DE
+:1024300000431024104000398F8200043042000213
+:102440001040003600000000974210141440003382
+:1024500000000000974210088F88003C3042FFFFC8
+:1024600024420006000218820003388000E8302170
+:10247000304300018CC400001060000430420003AF
+:102480000000000D0A00036000E810215440001015
+:102490003084FFFF3C05FFFF0085202400851826BF
+:1024A0000003182B0004102B0043102410400005DB
+:1024B00000000000000000000000000D000000000F
+:1024C000240001CB8CC200000A00035F00452025D8
+:1024D0003883FFFF0003182B0004102B0043102447
+:1024E0001040000500000000000000000000000D8A
+:1024F00000000000240001D48CC200003444FFFF1F
+:1025000000E81021AC4400003C0208008C4204307A
+:10251000244200013C010800AC2204308F6200001C
+:102520008F84003CAF8200088C8300003402FFFFE0
+:102530001462000F000010213C0508008CA5045413
+:102540003C0408008C84045000B0282100B0302BDB
+:1025500000822021008620213C010800AC25045483
+:102560003C010800AC2404500A0005A9240400081A
+:102570008C820000304201001040000F000010214A
+:102580003C0508008CA5044C3C0408008C840448DD
+:1025900000B0282100B0302B0082202100862021AD
+:1025A0003C010800AC25044C3C010800AC24044864
+:1025B0000A0005A9240400083C0508008CA5044471
+:1025C0003C0408008C84044000B0282100B0302B6B
+:1025D00000822021008620213C010800AC25044413
+:1025E0003C010800AC2404400A0005A924040008AA
+:1025F0008F6200088F62000000021602304300F074
+:10260000240200301062000524020040106200E045
+:102610008F8200200A0005B12442000114A00005A9
+:1026200000000000000000000000000D000000009D
+:10263000240001FE8F4201780440FFFE00000000EC
+:102640000E00023B00000000144000050040802105
+:10265000000000000000000D000000002400020542
+:102660008E02000010400005000000000000000085
+:102670000000000D00000000240002088F62000C22
+:1026800004430003240200010A000457AE000000C6
+:10269000AE0200008F82003C8C480008A2000007B8
+:1026A0008F65000C8F64000430A3FFFF0004240238
+:1026B00000852023308200FF0043102124420005C2
+:1026C000000230832CC20081A605000A14400005D8
+:1026D000A2040004000000000000000D0000000043
+:1026E000240002208F85003C0E0005D5260400142E
+:1026F0008F6200048F430108A60200083C0210000C
+:1027000000621824106000080000000097420104D5
+:10271000920300072442FFEC346300023045FFFFC0
+:102720000A0003ECA2030007974201042442FFF0D1
+:102730003045FFFF960600082CC2001354400005E8
+:10274000920300079202000734420001A202000730
+:102750009203000724020001106200052402000316
+:102760001062000B8F82003C0A00040930C6FFFF94
+:102770008F82003C3C04FFFF8C43000C0064182453
+:1027800000651825AC43000C0A00040930C6FFFFA1
+:102790003C04FFFF8C4300100064182400651825DA
+:1027A000AC43001030C6FFFF24C2000200021083B9
+:1027B000A20200058F83003C304200FF000210801F
+:1027C000004328218CA800008CA2000024030004F0
+:1027D0000002170214430012000000009742010497
+:1027E0003C03FFFF010318243042FFFF0046102383
+:1027F0002442FFFE00624025ACA8000092030005C1
+:10280000306200FF0002108000501021904200143E
+:102810003042000F004310210A00043EA2020006CD
+:102820008CA40004974201049603000A3088FFFF3D
+:102830003042FFFF004610232442FFD6000214005E
+:1028400001024025ACA80004920200079204000592
+:102850002463002800031883006418213442000414
+:10286000A2030006A20200078F8200042403FFFBDC
+:102870003442000200431024AF8200049203000699
+:102880008F87003C00031880007010218C440020CA
+:102890003C02FFF63442FFFF00824024006718210B
+:1028A000AE04000CAC68000C920500063C03FF7FF0
+:1028B0008E02000C0005288000B020213463FFFF49
+:1028C000010330249488002600A728210043102407
+:1028D000AE02000CAC860020AC880024ACA800102E
+:1028E00024020010A742014024020002A740014236
+:1028F000A7400144A7420146974201043C04000856
+:102900002442FFFEA7420148240200010E00020AF1
+:10291000A742014A9603000A9202000400431021D4
+:102920002442000230420007000210233042000718
+:102930000E000233AE0200108F6200003C0308005C
+:102940008C63044424040010AF8200089742010401
+:102950003042FFFF2442FFFE00403821000237C30F
+:102960003C0208008C420440006718210067282BB5
+:1029700000461021004510213C010800AC2304440E
+:102980003C010800AC2204400A00053E00000000A3
+:1029900014A0000500000000000000000000000D71
+:1029A000000000002400029E8F4201780440FFFED8
+:1029B000000000000E00023B000000001440000573
+:1029C00000408021000000000000000D0000000019
+:1029D000240002A58E020000544000069202000767
+:1029E000000000000000000D00000000240002A80C
+:1029F0009202000730420004104000058F8200045C
+:102A00002403FFFB3442000200431024AF82000481
+:102A10008F6200040443000892020007920200063D
+:102A20008E03000CAE000000000210800050102148
+:102A3000AC430020920200073042000454400009D9
+:102A40009602000A920200053C0300010002108079
+:102A5000005010218C46001800C33021AC460018ED
+:102A60009602000A92060004277100080220202125
+:102A700000C2302124C60005260500140E0005D52D
+:102A800000063082920400068F6500043C027FFF3E
+:102A900000042080009120218C8300043442FFFF39
+:102AA00000A2282400651821AC83000492020007CC
+:102AB0009204000592030004304200041040001408
+:102AC00096070008308400FF000420800091202138
+:102AD0008C860004974201049605000A306300FFCB
+:102AE0003042FFFF004310210045102130E3FFFF7B
+:102AF000004310232442FFD830C6FFFF0002140019
+:102B000000C23025AC8600040A0004F292030007DC
+:102B1000308500FF0005288000B128218CA400002A
+:102B200097420104306300FF3042FFFF0043102151
+:102B3000004710233C03FFFF008320243042FFFFA7
+:102B400000822025ACA400009203000724020001AB
+:102B50001062000600000000240200031062001151
+:102B6000000000000A0005158E03001097420104C2
+:102B7000920300049605000A8E24000C00431021E5
+:102B8000004510212442FFF23C03FFFF0083202474
+:102B90003042FFFF00822025AE24000C0A000515FC
+:102BA0008E03001097420104920300049605000A68
+:102BB0008E24001000431021004510212442FFEE16
+:102BC0003C03FFFF008320243042FFFF00822025CA
+:102BD000AE2400108E0300102402000AA742014018
+:102BE000A74301429603000A920200043C040040FD
+:102BF00000431021A7420144A74001469742010427
+:102C0000A7420148240200010E00020AA742014A1D
+:102C10000E000233000000008F62000092030004E7
+:102C200000002021AF820008974201049606000AA6
+:102C30003042FFFF00621821006028213C03080099
+:102C40008C6304443C0208008C4204400065182157
+:102C5000004410210065382B004710213C0108007A
+:102C6000AC2304443C010800AC220440920400045C
+:102C7000008620212484000A3084FFFF0E0001E733
+:102C800000000000974401043084FFFF0E0001F5AE
+:102C9000000000003C021000AF4201780A0005B0BD
+:102CA0008F820020148200273062000697420104C0
+:102CB000104000673C0240003062400010400005B8
+:102CC00000000000000000000000000D00000000F7
+:102CD000240003968F4201780440FFFE240208007E
+:102CE000AF42017824020008A7420140A7400142F8
+:102CF0008F82000497430104304200011040000716
+:102D00003070FFFF2603FFFE24020002A7420146A7
+:102D1000A74301480A0005682402000DA7400146A8
+:102D20002402000DA742014A8F620000240400081B
+:102D3000AF8200080E0001E7000000000A00054213
+:102D400002002021104000423C024000936200003B
+:102D5000304300F0240200101062000524020070CD
+:102D600010620035000000000A0005B08F820020CC
+:102D70008F620000974301043050FFFF3071FFFF66
+:102D80008F4201780440FFFE320200070002102348
+:102D9000304200072403000A2604FFFEA743014037
+:102DA000A7420142A7440144A7400146A751014858
+:102DB0008F42010830420020144000022403000921
+:102DC00024030001A743014A0E00020A3C0400400C
+:102DD0000E000233000000003C0708008CE70444AA
+:102DE000021110212442FFFE3C0608008CC604405C
+:102DF0000040182100E33821000010218F650000F9
+:102E000000E3402B00C230212604000800C8302116
+:102E10003084FFFFAF8500083C010800AC27044464
+:102E20003C010800AC2604400E0001E70000000051
+:102E30000A000542022020210E0001390000000096
+:102E40008F82002024420001AF8200203C0240001B
+:102E5000AF420138000000000A00028F3C028000EF
+:102E60003084FFFF30C6FFFF00052C0000A6282598
+:102E70003882FFFF004510210045282B0045102116
+:102E800000021C023042FFFF0043102100021C021E
+:102E90003042FFFF004310213842FFFF03E00008EB
+:102EA0003042FFFF3084FFFF30A5FFFF00001821F4
+:102EB0001080000700000000308200011040000276
+:102EC00000042042006518210A0005CB00052840B7
+:102ED00003E000080060102110C0000624C6FFFFB8
+:102EE0008CA2000024A50004AC8200000A0005D5D5
+:102EF0002484000403E000080000000010A0000883
+:102F000024A3FFFFAC8600000000000000000000CA
+:102F10002402FFFF2463FFFF1462FFFA24840004ED
+:082F200003E0000800000000BE
+:042F280000000001A4
+:042F2C000A00002671
+:102F300000000000000000000000000D74787034F4
+:102F40002E362E3136000000040610000000000A64
+:102F5000000001360000EA600000000000000000F0
+:102F60000000000000000000000000000000000061
+:102F70000000000000000000000000000000000051
+:102F80000000000000000000000000000000001D24
+:102F90000000000000000000000000000000000031
+:102FA0000000000000000000000000000000000021
+:102FB0000000000000000000000000000000000011
+:102FC00000000000000000001000000300000000EE
+:102FD0000000000D0000000D3C02080024423B6090
+:102FE0003C03080024633E18AC4000000043202B43
+:102FF0001480FFFD244200043C1D080037BD7FFC07
+:1030000003A0F0213C100800261000983C1C08008A
+:10301000279C3B600E0004AE000000000000000D85
+:103020003C0580008F83003034A800708D070000BD
+:10303000008330253C02900000C22025ACA4002073
+:10304000AF8700243C0480008C8900200520FFFE0F
+:1030500000000000348400708C8500003C180800DB
+:103060008F18007C3C0D08008DAD007800A7C823A8
+:1030700003195021000070210159602B01AE582125
+:10308000016C38213C010800AC2A007C3C0108009E
+:10309000AC27007803E00008000000000A00003DB3
+:1030A000240400018F8500303C048000348300013B
+:1030B00000A3102503E00008AC82002003E0000814
+:1030C000000010213084FFFF30A5FFFF10800007B3
+:1030D000000018213082000110400002000420424C
+:1030E000006518211480FFFB0005284003E000085C
+:1030F0000060102110C00007000000008CA200003A
+:1031000024C6FFFF24A50004AC82000014C0FFFB0E
+:103110002484000403E000080000000010A0000860
+:1031200024A3FFFFAC8600000000000000000000A8
+:103130002402FFFF2463FFFF1462FFFA24840004CB
+:1031400003E000080000000090AA00318FAB0010DF
+:103150008CAC00403C0300FF8D680004AD6C002087
+:103160008CAD004400E060213462FFFFAD6D0024AF
+:103170008CA700483C09FF000109C024AD67002866
+:103180008CAE004C0182C82403197825AD6F000471
+:10319000AD6E002C8CAD0038314A00FFAD6D001CC7
+:1031A00094A900323128FFFFAD68001090A70030CD
+:1031B000A5600002A1600004A167000090A3003296
+:1031C000306200FF00021982106000052405000132
+:1031D0001065000E0000000003E00008A16A000175
+:1031E0008CD80028354A0080AD7800188CCF0014A8
+:1031F000AD6F00148CCE0030AD6E00088CC4002C76
+:10320000A16A000103E00008AD64000C8CCD001C35
+:10321000AD6D00188CC90014AD6900148CC8002471
+:10322000AD6800088CC70020AD67000C8CC200148C
+:103230008C8300700043C82B13200007000000009F
+:103240008CC20014144CFFE400000000354A0080DA
+:1032500003E00008A16A00018C8200700A0000C629
+:10326000000000009089003027BDFFF88FA8001CE7
+:10327000A3A900008FA300003C0DFF8035A2FFFF33
+:103280008CAC002C00625824AFAB0000A1000004FD
+:1032900000C05821A7A000028D06000400A048210C
+:1032A0000167C8218FA50000008050213C18FF7FD6
+:1032B000032C20263C0E00FF2C8C0001370FFFFF53
+:1032C00035CDFFFF3C02FF0000AFC82400EDC02455
+:1032D00000C27824000C1DC00323682501F8702566
+:1032E000AD0D0000AD0E00048D240024AFAD000034
+:1032F000AD0400088D2C00202404FFFFAD0C000C51
+:103300009547003230E6FFFFAD06001091450048BA
+:1033100030A200FF000219C2506000018D24003469
+:10332000AD0400148D4700388FAA001827BD00088F
+:10333000AD0B0028AD0A0024AD07001CAD00002C29
+:10334000AD00001803E00008AD00002027BDFFE03D
+:10335000AFB20018AFB10014AFB00010AFBF001C87
+:103360009098003000C088213C0D00FF330F007F93
+:10337000A0CF0000908E003135ACFFFF3C0AFF006B
+:10338000A0CE000194A6001EA22000048CAB001465
+:103390008E29000400A08021016C2824012A4024E9
+:1033A0000080902101052025A6260002AE240004FD
+:1033B00026050020262400080E00007224060002C4
+:1033C00092470030260500282624001400071E001E
+:1033D0000003160324060004044000032403FFFF37
+:1033E000965900323323FFFF0E000072AE23001007
+:1033F000262400248FBF001C8FB200188FB1001448
+:103400008FB0001024050003000030210A00007C6A
+:1034100027BD002027BDFFD8AFB1001CAFB00018FA
+:10342000AFBF002090A900302402000100E050212D
+:103430003123003F00A040218FB000400080882150
+:1034400000C04821106200148FA70038240B00052B
+:1034500000A0202100C02821106B001302003021A1
+:103460000E000108000000009225007C30A400023C
+:103470001080000326030030AE0000302603003425
+:103480008FBF00208FB1001C8FB00018006010218A
+:1034900003E0000827BD00280E000087AFB0001031
+:1034A0000A00014F000000008FA3003C0100202112
+:1034B0000120282101403021AFA300100E0000CED2
+:1034C000AFB000140A00014F000000008F820050CE
+:1034D00024430001304200FFAF83005003E00008A6
+:1034E000000000003C0580008CA30E108F84004477
+:1034F000AC8300208CA20E1803E00008AC820024EC
+:103500003C0580008CA30E148F840044AC83002003
+:103510008CA20E1C03E00008AC82002493820038C9
+:103520001040001B2483000F2404FFF000643824A3
+:1035300010E00019978B002C9784004C9389002E83
+:103540003C0A601C0A0001900164402301037021C1
+:10355000006428231126000231C2FFFF30A2FFFFC2
+:103560000047302B50C0000E00E448218D4D000C68
+:1035700031A3FFFF00036400000C2C0304A1FFF340
+:103580000000302130637FFF0A000188240600011B
+:1035900003E00008000000009784004C00E448218C
+:1035A0003123FFFF3168FFFF0068382B54E0FFF83C
+:1035B000A783004C938A002E11400005240F0001C0
+:1035C000006BC023A380002E03E00008A798004CE6
+:1035D000006BC023A38F002E03E00008A798004CC7
+:1035E00003E000080000000027BDFFE8AFB00010B6
+:1035F0003084FFFF3C10800093A8002BAFBF001465
+:10360000A6040144960A0E1630C600FF8FA90030AA
+:10361000A60A0146AE050148A2060152A608015AB3
+:10362000AE0701608FA3002CA609015801202021BC
+:103630000E00017CAE0301543C021000AE02017882
+:103640008FBF00148FB0001003E0000827BD0018E2
+:103650003C038000346200708C4900008F87003C7E
+:103660002484000727BDFFF83084FFF8AF890024C9
+:103670003C088000950E008A31CDFFFFAFAD000001
+:103680008FAC000001875823256AFFFF31461FFFDA
+:1036900000C4282B14A0FFF7350D00708DAC00007E
+:1036A0003C0508008CA500843C0A08008D4A008077
+:1036B000018958230000102100ABC0210007C882F7
+:1036C00001422021030B302B0019388035094000BE
+:1036D0000086782100E9102127BD00083C01080080
+:1036E000AC3800843C010800AC2F008003E00008E7
+:1036F000000000008F82003C2486000730C5FFF8E0
+:1037000000A2182130641FFF03E00008AF84003CD2
+:103710003C0320FF27BDFFE83C0760003C08800019
+:10372000240500103464FFFDACE53008AFBF001085
+:10373000AD040E00000000000000000000000000CA
+:1037400000000000000000003C0200FF345FFFFDAD
+:10375000AD1F0E003C0B60048D7850002419FF7FD4
+:103760003C0E00020319782435EC380C35CD0109E4
+:10377000ACED4C1824060009AD6C50008CEA0438FE
+:10378000AD060008AD0000148CE94C1C3145FFFF6C
+:103790003C06570900091E0238A42F713062000F41
+:1037A00034C80010AF820048104000072485C0B321
+:1037B0008CEB4C1C3C0D001F35ACFC00016C502404
+:1037C000000A49C2AF8900348CF90808241FF000B0
+:1037D000033FC02403087026030678262DE8000165
+:1037E0002DC600010106382550E00009A3800038ED
+:1037F0003C09601C8D24000824030001A3830038C9
+:1038000030827C00A780004CA380002EA782002C71
+:10381000AF80005014A00003AF80003C3C05600066
+:10382000ACA0442C0E000559000000008FBF001012
+:103830000A000E9927BD001827BDFFC8AFB3002CA2
+:10384000AFB20028AFBF0030AFB10024AFB000204E
+:10385000936200080080982100A090211440003558
+:10386000240400100E0001C9000000000E000168D1
+:10387000004080210002C4003C1932000319882551
+:10388000AE110000936F0009976E0012936A000A50
+:1038900031EC00FF31CDFFFF018D5821000B4400BA
+:1038A000314900FF01093825AE0700048F8500501B
+:1038B0009784004000403021308320001460004D88
+:1038C000AE050008AE00000C3C0580009784004067
+:1038D0000662004F8E03000C3090000816000002B4
+:1038E000264800062648000294A40E148CA50E1C3F
+:1038F0008F670004936A00023084FFFF314900FFA4
+:10390000AFA900108F720014AFA800180E0001AF0D
+:10391000AFB200148FBF00308FB3002C8FB20028DD
+:103920008FB100248FB00020240400100A0001F29F
+:1039300027BD00389365000997710012936C000B46
+:1039400030AD00FF01B13021318B00FF00CB802171
+:103950002602000A3050FFFF0E0001C9020020219C
+:103960000E000168004088219368000997640012E6
+:103970000002FC00310900FF308AFFFF012A3821D4
+:1039800024E3000203E3C0253C1941000319782514
+:10399000AE2F00008F6E000C3C0D800095AC0E1415
+:1039A00001D32825AE2500048DA50E1C8F670004C9
+:1039B000936B00023184FFFF316600FFAFA6001059
+:1039C0008F68001400403021AFB200180E0001AF24
+:1039D000AFA80014020020218FBF00308FB3002C4D
+:1039E0008FB200288FB100248FB000200A0001F2AE
+:1039F00027BD0038976200123C0580009784004084
+:103A0000305FFFFF0661FFB4AE1F000C8E03000C99
+:103A10003C078000006798250A00026BAE13000C7B
+:103A200027BDFFD8AFB40020AFBF0024AFB3001C48
+:103A3000AFB20018AFB10014AFB00010936200082D
+:103A4000144000940080A021AF60000C97850040D6
+:103A500030A440001080009E24030016241040076C
+:103A6000A363000AAF700014938F00428F6C0014A0
+:103A700031EE0001000E6A40018D5825AF6B001435
+:103A8000978A00408F6800143149001001093825D9
+:103A9000AF6700149786004030C300081060009F95
+:103AA000000000008F6600143C0310003C048000FE
+:103AB00000C32825AF65001494820E0A3C1F8100C4
+:103AC0002413000E3059FFFF033FC025AF780004D8
+:103AD000A37300029372000A3406FFFC265100040F
+:103AE000A371000A978800403107200010E0009180
+:103AF000000000003C0B80009789004095680E0C88
+:103B000097840040000918423107C0003065000367
+:103B100000071303309F100000A2C025001FCA0336
+:103B200003199825001390C0A772001297910040C6
+:103B3000936F000A00118182320E003C01CF682190
+:103B400025AC003CA36C0009956A0E0C31493FFF7F
+:103B5000A7690010976D0012936C0009018D582120
+:103B6000256A00023149000700094023310300079C
+:103B7000A363000B93670009976400129765001018
+:103B800030E200FF8F900028979800400044F82111
+:103B900003E5C82103269821331200401240000596
+:103BA0003266FFFF00D0702B3C11800011C0001660
+:103BB000000090210206782B15E0002D0000202146
+:103BC0003C1080008E120E143C058000AE120E10C8
+:103BD0008E110E1CAE110E18AE060E008CB8000031
+:103BE000331300081260FFFD0000000094B90E08B6
+:103BF00000C0802100008821A79900408CA60E04F7
+:103C000024120001AF860028977F001033F3FFFFD6
+:103C10008E8900000130202310800058AE840000FF
+:103C2000022020210E000243020028218E8C000079
+:103C300015800005000000008F6D0014240EFFBFEA
+:103C400001AEA024AF7400148F78000C03138821F8
+:103C5000AF71000C936F000815E000030000000036
+:103C60001640004000000000A3720008020020215E
+:103C70008FBF00248FB400208FB3001C8FB20018B8
+:103C80008FB100148FB000100080102103E00008F5
+:103C900027BD00288F900028978200403C118000AB
+:103CA000020098213045004014A0FFD90000902167
+:103CB000976800108F8700283103FFFF1467FFEC1F
+:103CC00000002021000088210A000339241200018D
+:103CD0002403000E24104007A363000AAF700014F1
+:103CE000938F00428F6C001431EE0001000E6A4089
+:103CF000018D5825AF6B0014978A00408F6800141F
+:103D00003149001001093825AF670014978600403B
+:103D100030C300081460FF6300000000AF600004BF
+:103D2000A3600002978800403107200014E0FF7173
+:103D300000003021A760001297910040936F000AA5
+:103D40003C0B800032301F000010718301CF6821CE
+:103D500025AC0028A36C0009956A0E0C0A00030A22
+:103D6000A76A00108F6600143C1FEFFF37F9FFFEB3
+:103D700000D998240A00034FAF7300148F6B00140E
+:103D8000356A00400E00016EAF6A00140A00033E5F
+:103D9000022020218F8500448F8A003027BDFFC07C
+:103DA0003C048000AFB70034AFB40028AFB1001CB2
+:103DB000AFBF0038AFB60030AFB5002CAFB30024B2
+:103DC000AFB20020AFB000188C8701048CA900248A
+:103DD000AC8A00808CA8002000E988230000B8216C
+:103DE000AC880E108CA600240000A021AC860E1812
+:103DF0008C820E10AC820E148C830E18AC830E1CB9
+:103E0000122000333C168000936B000811600054B0
+:103E100000000000976E001031CDFFFF022D602BD7
+:103E20001580004F0000000097700010320FFFFF58
+:103E3000AECF0E003C0580008CB30000327200084B
+:103E40001240FFFD0000000094B50E088CA50E0482
+:103E500032B0FFFF32140001128000440000000065
+:103E60000000000D3219A04024180040133800450E
+:103E70003214A0001280003F00000000937300087D
+:103E80001260000927A4001097620010305FFFFF46
+:103E900000BFC82B53200005AFB10010320800400E
+:103EA0001100003400000000AFB10010A7900040E6
+:103EB000AF8500280E0002BD000000000040A021D8
+:103EC000104000BE8FB100101620FFCF0000000090
+:103ED0002E96000102D78825122000178FBF0038C8
+:103EE0008F85003024170F0010B700713C0480004C
+:103EF0008C8F017805E0FFFE24180F0050B8008F6A
+:103F00003C0480008C990E14241402403C051000DF
+:103F1000AC9901448C930E1CAC930148A0800152D3
+:103F2000A480015AAC800160A4800158AC94015473
+:103F3000AC8501788FBF00388FB700348FB6003062
+:103F40008FB5002C8FB400288FB300248FB20020CF
+:103F50008FB1001C8FB0001803E0000827BD00409F
+:103F6000AED10E000A0003C33C05800014A0FFBEC2
+:103F70003219A0400E0001750000A0210A0003EADA
+:103F80002E9600013C0380008C7F017807E0FFFE45
+:103F9000240208008F84003CAC6201783C0380005E
+:103FA000946B008A316AFFFF0144382324E9FFFF44
+:103FB00031281FFF2D06000814C0FFF9346C4000A3
+:103FC00000A0A0210E000168008C90218F8300309A
+:103FD00024040F000040A821023488233C068000FE
+:103FE0001064000524050001938E004231C50001D4
+:103FF00000056A4035A500010015FC003C020100E7
+:1040000003E2C825AE5900008F93005032180036E5
+:10401000320F0008AE53000411E0004100B89825AB
+:1040200094C30E0A8F84003C3C0B8100306AFFFF72
+:104030002492000832481FFF014B48253C0710001E
+:10404000269200062410000EACC901600267982574
+:10405000A4D0015AAF88003CA4D201581620000811
+:104060003C1080008F8E003024050F0051C50002E7
+:1040700024170001367300400E00016E3C108000D2
+:104080008E180E1402402021AE1801448E0F0E1C13
+:10409000AE0F0148A2150152AE1301540E00017C6F
+:1040A0003C151000AE1501780A0003E7000000007F
+:1040B000128000053C07800094F20E08324900404F
+:1040C00011200042000000008C8A01780540FFFEAC
+:1040D0000000000094950E103C1005002403200001
+:1040E00032AEFFFF01D06825AC8D014C8C8C0E14D4
+:1040F0003C0B1000AC8C01448C860E1CAC86014835
+:10410000A0800152A480015AAC800160A4800158B3
+:10411000AC830154AC8B01780A0003F13C048000AD
+:104120008F8D003C26920002A4D2015825AC0008D5
+:1041300031861FFF0A00044CAF86003CAC80014C66
+:1041400012800019000000008C9F0E10AC9F0144EB
+:104150008C830E183C08800024110040AC83014879
+:104160008FBF0038A10001528FB70034A500015A5B
+:104170008FB60030AD0001608FB5002CA50001584E
+:104180008FB40028AD1101548FB300248FB20020EA
+:104190008FB1001C8FB000183C04100027BD0040F8
+:1041A00003E00008AD0401788C820E14AC82014457
+:1041B0008C830E1C0A00048B3C0880000E000175E5
+:1041C0002E9600010A0003EB02D7882500000000AC
+:1041D0000000000D000000002400033A0A000467FC
+:1041E0003C04800027BDFFD8AFB100143C11800013
+:1041F000AFB00010AFB40020AFB3001CAFB20018D6
+:10420000AFBF00243C13080026733C340E0001F9B4
+:10421000363000703C14080026943CB40200902113
+:104220008E0800008E2400003883000130620001F7
+:10423000104000163C0A8000024048218D270000F3
+:104240003C1F08008FFF006C3C0F08008DEF0068DA
+:1042500000E8102303E260210000C0210182702BDE
+:1042600001F8682101AE40213C010800AC2C006C33
+:104270003C010800AC2800688D4B00003966000145
+:1042800030C5000114A0FFED00E040218E1F0000AA
+:104290003C1808008F18006C3C0D08008DAD0068BC
+:1042A00003E8C823031938210000702100F9602BAE
+:1042B00001AE4021010C58213C010800AC27006CE4
+:1042C0003C010800AC2B00688E2801002406FF800A
+:1042D0003C04800A2505024000A64824AE280020A0
+:1042E000AE2900248E09000030A3007F0064502115
+:1042F0003C078000AF8A0044AF880030AF890024BB
+:104300008CE201780440FFFE000000008E1F0000D8
+:104310003C1808008F1800743C0D08008DAD00702B
+:1043200003E9C82303195821000070210179302BBB
+:1043300001AE602101864821240508003C010800E7
+:10434000AC2B00743C010800AC290070ACE501788E
+:1043500090E40108A384004293830042306A000184
+:104360001140000F240E0D002502F8002C47030118
+:1043700010E0001C000819C22464FFF00004504241
+:10438000000A41400E00039A0113D8213C0A400064
+:104390003C088000AD0A01380A0004BD000000009E
+:1043A000110E0026240F0F00110F002A3C02800876
+:1043B0003447008090FF00002418005033F900FFBC
+:1043C0001738FFF33C0A40000E0009A3000000006C
+:1043D0003C0A40003C088000AD0A01380A0004BDD8
+:1043E000000000008F8400340064282B14A0000B10
+:1043F0008F86004800866021258BFFFF0163482BD4
+:104400001520000600646823000D19400E00039A71
+:104410000074D8210A0005193C0A40000000000081
+:104420000000000D00000000240003AD0E00039A00
+:10443000000000000A0005193C0A40003C1B08006F
+:10444000277B3DB40E00039A000000000A00051906
+:104450003C0A40003C1B0800277B3DD40E00039A19
+:10446000000000000A0005193C0A40008F8200503D
+:1044700024430001304200FFAF83005003E00008F6
+:1044800000000000000411C003E0000824420240C4
+:104490003C04080024843BCC2405001A0A00007C5C
+:1044A0000000302127BDFFE0AFBF001CAFB20018F5
+:1044B000AFB10014AFB000103C108000920B0109A6
+:1044C0002412FF800E0005563164007F8F9100306A
+:1044D0000051502101524024AE08002492030109EA
+:1044E0000E0005563064007F24060080240700C0BB
+:1044F00024040040AE000810AE040814AE060818EC
+:10450000AE07081C920C01090051F82133F8007F16
+:104510003C19800A031910213184007F0E000556D2
+:10452000AF8200448E1101003C0C008035850001F3
+:104530000222782101F24824AE0908048E0E0100FF
+:10454000359800023609090001C2682131AB0078B4
+:1045500001655025AE0A08208E0501008E08010075
+:10456000360509800102182124640040009230249D
+:10457000AE0608088E07010000E2F82127F9004086
+:104580003332007802588825AE1108248E040100C9
+:10459000952F000C8FBF001C8FB2001831EEFFFF6B
+:1045A000000E69C0AE0D0800AE0C0828952B000C5B
+:1045B0008FB10014316AFFFF000A41C0AE08002C21
+:1045C0008CA300508FB000108CA2003C8D240004FE
+:1045D0008CA6001C8CA7003827BD0020AF83006884
+:1045E000AF820058AF840054AF86006003E000083B
+:1045F000AF8700643C0A0800914A3BF13C0908007F
+:1046000095293BEA3C051100000A3C0025280002E0
+:1046100000E8302500C5182524820008AC8300007E
+:1046200003E00008AC8000043C0880003507090066
+:1046300090E60011240200280080502130C300FFC2
+:1046400000A0602110620002340B86DD240B0800FC
+:104650003C07800034E20A9A9459000034EF0A9C27
+:1046600034ED0AA03338FFFFAD5800008DEE000096
+:1046700034E80A8024040001AD4E00048DA9000036
+:10468000AD4900089105001930A3000310640043F0
+:104690002866000214C000B0240400021064008BDD
+:1046A000240500031065009634E60AA43C090800BE
+:1046B00095293BE0240208005162004D3C0E800029
+:1046C0003C0E800035C5090090A6001290B9001973
+:1046D00035CB09808D68002830C700FF000778803F
+:1046E0003138FFFF332300FF01F8102100032500BC
+:1046F0000088702500025C003C0D600001CD302573
+:10470000356906FFAD490004AD4600008CA7002CBA
+:1047100025490028AD4700088CB90030AD59000C80
+:104720008CB80034AD5800108CAF0038AD4F001479
+:104730008CA3001CAD4300188CA800203C03800013
+:104740003462093CAD48001C8CA40024346F09007D
+:10475000AD4400208CAD0028AD4D00248C590000E4
+:10476000AD2C000425220014AD3900008C78010C1A
+:10477000AD38000891E800123C04080090843BF03A
+:10478000AD20001000082F0000046C0000AD602573
+:10479000358AFFFF03E00008AD2A000C3C09080041
+:1047A00095293BE03C0F080095EF3BEA34F90AA459
+:1047B0003C0E080095CE3BDC972800003138FFFF07
+:1047C00001F8682101AE382300082C0024E3FFF231
+:1047D00000A3202524020800AD44000CAD400010C9
+:1047E000AD4B00141562FFB6254A00183C0E800040
+:1047F00035CD090091A2001191A700193C050800D0
+:1048000094A53BE6304600FF35CB0A80956E002A22
+:104810000006C88230F800FF9787005C00191E0070
+:1048200000187C003128FFFF00A82021006F4825D8
+:104830000124102501C730213C0B4000004BC82546
+:104840000006C400AD590000AD58000491AF001837
+:104850003C03000624E90001000F46000103702517
+:10486000AD4E00088DA5002C3C0380003462093C4D
+:10487000AD45000C8DAB001C31247FFF2549001491
+:10488000AD4B00108C590000AD2C0004346F0900B2
+:10489000AD3900008C78010CA784005C252200143F
+:1048A000AD38000891E800123C04080090843BF009
+:1048B000AD20001000082F0000046C0000AD602542
+:1048C000358AFFFF03E00008AD2A000C34E20AA499
+:1048D00094460000951900283C09080095293BE002
+:1048E0000006C40000197C00370E810001EB68252A
+:1048F000AD4E000CAD4D00100A0005E2254A001433
+:104900003C09080095293BE03C18080097183BEA51
+:104910003C0F080095EF3BDC94CE00003139FFFFDF
+:10492000950D002803194021010F3823000E2400A3
+:10493000000D2C0024E3FFEE00A33025348281001B
+:10494000AD42000CAD460010AD400014AD4B001858
+:104950000A0005E2254A001C1460FF5434E90AA449
+:10496000952800003C09080095293BE000083C0020
+:1049700000EB1825AD43000C0A0005E2254A0010A3
+:1049800003E00008240207D027BDFFE0AFB2001803
+:10499000AFB10014AFB00010AFBF001C0E00005C40
+:1049A000008088218F8800588F8700543C0580083C
+:1049B00034B20080011128213C10800024020080C4
+:1049C000240300C000A72023AE0208183C0680087C
+:1049D000AE03081C18800004AF850058ACC5000465
+:1049E0008CC90004AF8900541220000936040980E4
+:1049F0000E00069500000000924C00278E0B0074FC
+:104A000001825004014B3021AE46000C360409806F
+:104A10008C8E001C8F8F006001CF682319A00004CA
+:104A20008FBF001C8C90001CAF9000608FBF001CDB
+:104A30008FB200188FB100148FB000100A00005E12
+:104A400027BD00208F8600688F8300588F82005416
+:104A50003C05800834A40080AC860050AC83003C48
+:104A600003E00008ACA200043C038000346700703F
+:104A70008CE30000308700FF3C0408008C84005465
+:104A800027BDFFF830AA00FF248200013C01080086
+:104A9000AC22005430C800FFAF8300243C098000E2
+:104AA0008D25017804A0FFFE352B00708D65000078
+:104AB000A3A700033C1808008F1800748FB90000EA
+:104AC0003C0D08008DAD007000A338233C047FFF2F
+:104AD00000E078213482FFFF0307382100007021B5
+:104AE0000322582401AE302100EF602B000847C09C
+:104AF00000CC182101682825AFA500003C01080062
+:104B0000AC2700743C010800AC2300709124010A1A
+:104B1000A3A000023C0280FFA3A400018FB8000004
+:104B2000314F007F3459FFFF03196824000F7600CE
+:104B30003C0B002001AE6025356A20002408FF8070
+:104B40003C06100027BD0008AD2C014CAD2A0154D5
+:104B5000A5200158A128015203E00008AD260178E4
+:104B60003C038000346200708C480000308A00FFF3
+:104B700030A900FFAF8800243C0480008C850178B8
+:104B800004A0FFFE348700708CEB00003C05080099
+:104B90008CA500743C1908008F390070016820232F
+:104BA00000A470210000102101C4C02B0322782131
+:104BB0003C07800001F868213C010800AC2E00741D
+:104BC00034E60A003C010800AC2D00708CCC0020BB
+:104BD0000009582B34E80980ACEC01448CC900244E
+:104BE000000B1540ACE90148A0EA01509104004CCB
+:104BF000A0E4016D03E00008A4E0015827BDFFE830
+:104C0000308400FFAFBF00100E00070D30A500FF7D
+:104C10008F8300588FBF00103C0580003446004051
+:104C20002404FF903C02100027BD0018ACA3014CE7
+:104C3000A0A40152ACA6015403E00008ACA2017884
+:104C400027BDFFE03C088008AFBF001CAFB20018D2
+:104C5000AFB10014AFB00010351000808E06001800
+:104C60003C078000309200FF00C72025AE040018EA
+:104C70000E00005C30B100FF9203000534620008B2
+:104C80000E00005EA2020005024020210E00073443
+:104C900002202821024020218FBF001C8FB2001863
+:104CA0008FB100148FB00010240500052406000108
+:104CB0000A0006CF27BD00203C08800027BDFFE882
+:104CC000AFB0001035050980AFBF001490A70009F0
+:104CD000240200063506090030E300FF241000041A
+:104CE000106200722408000294AE005C3C0D0204C5
+:104CF00031CCFFFF018D5825AC8B000090AA000835
+:104D000031490020112000080000000090BF004E33
+:104D10003C1901033738030033EF00FF01F8282561
+:104D200024100008AC85000490CC001190C900113B
+:104D3000318A00FF000A5882312700FF256A0005EA
+:104D4000000A108038E300281460002900824823FC
+:104D500090CF00123C1980003722090031E500FF96
+:104D60000005708001D06821000D340034C406FFB6
+:104D7000AD240004904C001190580012373F098078
+:104D80008FE400348F2F010C00105882330500FF90
+:104D900000AB702100083400008F1823000E6F0054
+:104DA00001A61025319F00FC3067FFFF03E9C021F9
+:104DB0000047C825014B7821000F2880AF19000C4F
+:104DC0000E00005C012580213C0A800824090004B3
+:104DD000354800800E00005EA10900090200102184
+:104DE0008FBF00148FB0001003E0000827BD00182B
+:104DF00090CE001190CD00193C07080094E73BE6E7
+:104E000031C600FF0006208231AC00FF00045E00C6
+:104E1000000C1C00016310250047C8253C1F400002
+:104E2000033FC0253C198000AD380000372209003F
+:104E3000904C001190580012373F09808FE40034E5
+:104E40008F2F010C00105882330500FF00AB70213A
+:104E500000083400008F1823000E6F0001A61025F3
+:104E6000319F00FC3067FFFF03E9C0210047C825E0
+:104E7000014B7821000F2880AF19000C0E00005C58
+:104E8000012580213C0A800824090004354800805F
+:104E90000E00005EA1090009020010218FBF00145E
+:104EA0008FB0001003E0000827BD00180A00076F4C
+:104EB0002408001227BDFFD8AFB40020AFB3001CF8
+:104EC000AFB20018AFB10014AFBF0024AFB00010F4
+:104ED0003C06800090C3010B309200FF30B300FF0E
+:104EE000306200300000A0211040007000008821D6
+:104EF00034C409809088000800083E0000072E0393
+:104F000004A00097240400048F8800583C01080086
+:104F1000A0243BF03C0C8000AD8000483C038000A6
+:104F2000906E010B31C5002010A000073C028000EC
+:104F300034790980933800080018860000107E0339
+:104F400005E2009C3C0280083450090034470A8086
+:104F5000904D010B94EB002C92030011921F001254
+:104F600090E50018307800FF33F900FF00197880D1
+:104F700001F8702101D1502130B100FF01514821C9
+:104F80002524000A31AC00403091FFFF000C302B8B
+:104F900002202021A78B005C3C010800A42A3BE6EC
+:104FA0003C010800A4293BE83C010800A4293BEA95
+:104FB0003C010800A4203BE03C010800A4203BDCAD
+:104FC0000E0001C9010680230E0005B20040202119
+:104FD000004020210E0005BF020028211680005C41
+:104FE000000000000E0001F2022020213C08080011
+:104FF00091083BF031140003128000163C1F80081A
+:105000008F8400583C0C800835860080248B00017A
+:10501000ACCB003C3C0580088CAA00040160202138
+:10502000014B482319200002AF8B00588CA40004C8
+:105030000E000695ACA400043C0F80008DEE0074B9
+:105040003C05800834AD0080004E8821ADB1000CD5
+:105050003C1F800837F9008002402021026028218F
+:10506000A320006B0E00070D3C1280008F980058A3
+:1050700034500006AE58014C0E0005503C13100091
+:10508000A24201528FBF0024AE5001548FB40020C1
+:10509000AE5301788FB100148FB3001C8FB200188B
+:1050A0008FB0001003E0000827BD002834C309803A
+:1050B000906F0008000F7600000E6E0305A000330D
+:1050C00034C209009059001B241F00103C01080045
+:1050D000A03F3BF0333800021300FF908F88005848
+:1050E0008F8300641468FF8E3C0380000E00005C18
+:1050F000000000003C0980083525008090A40009CC
+:1051000024070016308800FF1107000D0000000082
+:1051100090A600093C0C0800918C3BF0240A000882
+:1051200030C400FF358B00013C010800A02B3BF090
+:10513000108A002F240D000A108D00282402000C74
+:105140000E00005E000000000A0007FC8F88005877
+:105150000E000763004020210A00082E0000000016
+:105160003C0B8008356A00808D4800548CC9010CC6
+:105170001120FF66AF880058240600143C01080087
+:10518000A0263BF00A0007FB3C0C80009071000851
+:10519000241400023C010800A0343BF0323000200F
+:1051A0001200000B241400018F8800580A0007FC2D
+:1051B00024110008345F00808FE70038AC470004FA
+:1051C0008C430004AFE3003C0A0008073C02800067
+:1051D0008F8800580A0007FC24110004A0A20009CF
+:1051E0000E00005E000000000A0007FC8F880058D7
+:1051F000240200140A0008ADA0A2000927BDFFE8A0
+:10520000AFBF0014AFB000103C1080009202010943
+:10521000240500010E00070D304400FF3C1F8008EC
+:1052200093F8000E37E3008093F9000F906E00268C
+:1052300093E9000A332F00FF00186600000F6C008E
+:1052400031CB00FF018D5025000B3200014638257F
+:10525000312800FF3445600000E820252402FF814A
+:105260003C031000AE04014C8FBF0014AE05015486
+:10527000A2020152AE0301788FB0001003E00008D3
+:1052800027BD001827BDFFE8308400FFAFBF001026
+:105290000E00070D30A500FF344600403C0480009E
+:1052A0002405FF92AC860154A08501528F830058DB
+:1052B0008FBF00103C02100027BD0018AC83014CCA
+:1052C00003E00008AC82017827BDFFD8AFB2001818
+:1052D000AFB10014AFB00010AFBF0020AFB3001CDF
+:1052E0003C07800090E20109308600FF30B000FFEB
+:1052F000000618C232040002307100011480000759
+:10530000305200FF3C098008353300809268000568
+:105310003105000810A0000C30CA00100240202106
+:105320000E00074502202821240200018FBF002023
+:105330008FB3001C8FB200188FB100148FB0001013
+:1053400003E0000827BD00281540003034E50A00BE
+:105350008CB900248CB800081338004700004021A5
+:105360003C0E800835D30080926D0068240B00024B
+:1053700031AC00FF118B00803C068000927F004C16
+:1053800090C40109509F00043213007C1100006793
+:10539000000000003213007C1660005A02402021F9
+:1053A00016200008320C00013C07800034EB0A0094
+:1053B0008D6500248CE8010414A8FFDC0000102196
+:1053C000320C00011180000D024020213C108000B1
+:1053D0008E0E010C8F8D006811CD000800000000BA
+:1053E0000E0007E2022028218E0F010C3C188008D5
+:1053F00037100080AE0F0050024020210E0007340D
+:10540000022028210A000900240200013C070800AC
+:105410008CE7006424E600013C010800AC2600642F
+:105420001600000D00000000022028210E000734A5
+:1054300002402021926F0068240D000231EE00FF2F
+:1054400011CD0022024020210E0008B4000000000F
+:105450000A000900240200010E00003D240400019E
+:10546000926C0025020C58250E00005EA26B0025F0
+:105470000A000940022028218E6300188CE40104F0
+:105480008CBF002400031602149FFFB53045007F37
+:105490009269004C264400013093007F1265004061
+:1054A000312300FF1464FFAF3C0E80082648000142
+:1054B0003111007F310200FF1225000B240800018A
+:1054C000004090210A00090D241100012405000468
+:1054D0000E0006CF240600010E0008B400000000F4
+:1054E0000A000900240200012407FF800247282443
+:1054F00000A79026324200FF004090210A00090DCB
+:10550000241100010E0007E202202821320600309B
+:1055100010C0FFA332100082024020210E00074578
+:10552000022028210A000900240200018E630018CD
+:105530000240202102202821006610250E0008D6F6
+:10554000AE6200189264004C24050003240600019A
+:105550000E0006CF308400FF0E00003D2404000141
+:10556000926A0025020A48250E00005EA269002505
+:105570000A000900240200018E7800183C198000FE
+:105580000240202103197825022028210E0007342B
+:10559000AE6F00189264004C0A00098824050004CC
+:1055A0003246008038CA0080146AFF6E3C0E8008C4
+:1055B0000A0009612648000127BDFFC0AFB00018EE
+:1055C0003C108000AFBF0038AFB70034AFB600303A
+:1055D000AFB5002CAFB40028AFB30024AFB20020A9
+:1055E0000E00055EAFB1001C920401089205010B8C
+:1055F000308400FF0E0008E730A500FF144000D6FD
+:105600008FBF00383C09800835280080A100006B5E
+:105610003607098090E60000240200503C1708007D
+:1056200026F73DF430C300FF3C14080026943E04E6
+:10563000106200033C1080000000B8210000A0218F
+:10564000241F001036110A00361309808E1601043B
+:105650008F8D00588E38002436190A808E720020F3
+:105660003C010800A03F3BF0972C002C8EF5000079
+:10567000932B0018024D702302D878233C010800B8
+:10568000AC2F3BCC3C010800AC2E3BD03C010800C9
+:10569000AC2D3BF4A78C005C02A0F809317200FF2E
+:1056A000304A0002154000DA3045000110A000B475
+:1056B00000000000360509008E2B002490BF001169
+:1056C00090B9001290B6001133EF00FF333800FF9D
+:1056D00032CD00FF0018708001CF8021024D602183
+:1056E0000212A821258A00103C010800A4353BE8DD
+:1056F0003C010800AC2B3BF83C010800A42A3BE429
+:105700003C010800A4303BE60260B0213C1580005B
+:105710008F9200588F8400608ED3002024110006E1
+:1057200000923023027228233C010800AC313BEC8C
+:1057300004C000AF0000982104A000AD00C5102BEC
+:10574000104000AF000000003C010800AC263BD038
+:105750008E9000000200F8090000000030430002B3
+:105760001460006F004088213046000154C00011D1
+:105770008E9200043C0808008D083BD43C09C00010
+:105780003C04800001093825AEA70E008C8B000078
+:10579000316A00081140FFFD00000000948D0E08E2
+:1057A00024130001A78D00408C8C0E04AF8C0028C0
+:1057B0008E9200040240F8090000000002228825B1
+:1057C000322E000215C000A5000000003C180800A1
+:1057D00097183BDC3C12080096523BE83C19080045
+:1057E00097393BDE3C0708008CE73BD4031240218D
+:1057F0003C0B08008D6B3BF83C0E080095CE3BF24D
+:105800003C128000011978218E46010C00F86821B5
+:1058100025EC000201AE482101675021AF860068E7
+:105820003C010800AC2A3BF83C010800A4293BE0FD
+:105830003C010800A4283BEA0E0001C93184FFFFA7
+:105840000E000550004080213C010800A0223BF1E1
+:105850008E8200080040F809020020218F85005840
+:105860000E0005BF004020218E90000C0200F809B8
+:10587000004020213C03080094633BEA3C020800FE
+:1058800094423BDE00622021248500020E0001F2DA
+:1058900030A4FFFF3C1908008F393BCC3C1F0800A7
+:1058A0008FFF3BD4033FC0233C010800AC383BCC06
+:1058B00017000006000000003C0508008CA53BEC2A
+:1058C00034BF00403C010800AC3F3BEC126000429A
+:1058D0008F8200448E430E108F930044AE630020ED
+:1058E0008E440E18AE6400243C04080094843BE00F
+:1058F0000E000697000000008F8600588E8A001068
+:105900003C010800AC263BF40140F809000000000F
+:105910003C0908008D293BCC1520FF7E8F92005852
+:105920009796005C3C14800E323500100E0006C6BF
+:10593000A696002C56A000458EEB000432270040AE
+:1059400054E0001E8EF100088EEC000C0180F80976
+:10595000000000008FBF00388FB700348FB60030D2
+:105960008FB5002C8FB400288FB300248FB2002095
+:105970008FB1001C8FB0001803E0000827BD004065
+:10598000920901098F88003000093E0000E83025A7
+:10599000AE0600808E2300208E240024AFA30010CA
+:1059A000AE030E148FA20010AE020E10AE040E1C39
+:1059B000AE040E180A0009E3360509000220F809B2
+:1059C000000000008EEC000C0180F80900000000CF
+:1059D0000A000A8B8FBF0038240800012410000140
+:1059E000A4400020A44800220A000A6FAC50002402
+:1059F0003C010800AC203BD00A000A0A8E9000004F
+:105A00003C010800AC253BD00A000A0A8E90000039
+:105A100092110109000028210E000734322400FFF2
+:105A20008FBF00388FB700348FB600308FB5002C91
+:105A30008FB400288FB300248FB200208FB1001CD8
+:105A40008FB0001803E0000827BD00400160F8098E
+:105A5000000000000A000A85322700405260FFB1B2
+:105A60009796005C8EB60E148F940044AE9600207C
+:105A70008EAF0E1CAE8F00240A000A7E9796005C43
+:105A80008F8200000004218003E0000800821021C2
+:105A90003C07800834E20080904300690080402188
+:105AA000106000093C0401003C0708008CE73BF44F
+:105AB0008F83001C00E320230480000893890008E2
+:105AC00014E300030100202103E0000800801021FE
+:105AD0003C04010003E00008008010211120000BAD
+:105AE000006738233C0D800035AC0980918B007C29
+:105AF000316A0002114000202409003400E9702BB3
+:105B000015C0FFF10100202100E938232403FFFC28
+:105B100000A3C82400E3C02400F9782B15E0FFEAB5
+:105B20000308202130C400030004102314C0001413
+:105B3000304900030000302100A9782101E67021DE
+:105B400000EE682B11A0FFE03C0401002D3800019D
+:105B50000006C82B010548210319382414E0FFDA98
+:105B60002524FFFC2402FFFC00A218240068202149
+:105B700003E00008008010210A000AF42409003024
+:105B80003C0C80003586098090CB007C316A000493
+:105B90001540FFE9240600040A000B030000302131
+:105BA0003C0308008C63005C8F82000427BDFFE883
+:105BB000AFBF001410620005AFB00010000329C091
+:105BC00024A40280AF840000AF8300043C10800056
+:105BD00036030A00946500320E000AD530A43FFF58
+:105BE0008E0401003C180080370F00030082C8219A
+:105BF0002402FF80032260243329007F000CF94037
+:105C000003E94025332E00783C0D1000010D50258E
+:105C100001CF5825AE0C002836080980AE0C080CC0
+:105C2000AE0B082CAE0A0830910300693C06800CCC
+:105C30000126382110600006AF8700208D09003C46
+:105C40008D06006C0126382318E0007F000000005C
+:105C50003C0C8008358B00803C0A8000A160006904
+:105C6000355009808E0200383C06800034C50A0099
+:105C700090AD003C31A8002011000019AF82001C3B
+:105C8000240E00013C19800037300A00A38E000862
+:105C9000AF8000108E0400248F85001024180008A7
+:105CA000AF80000CAF8000143C010800A4383BDE3C
+:105CB0003C010800A4203BF20E000AD9000030216C
+:105CC000920F003C8FBF00148FB00010000F714284
+:105CD000AF82001827BD001803E0000831C20001A0
+:105CE00090B90032240F0001333800FF00182182E0
+:105CF000108F003F241F0002109F006234C20AC0B0
+:105D00003C03800034640A008C9900241720001D95
+:105D10003466090090830030241F00053062003F84
+:105D2000105F004C240500018F86000CA38500083D
+:105D3000AF860014AF8600103C19800037300A008F
+:105D40008E0400248F850010241800083C010800F0
+:105D5000A4383BDE3C010800A4203BF20E000AD927
+:105D600000000000920F003C8FBF00148FB00010A5
+:105D7000000F7142AF82001827BD001803E0000831
+:105D800031C200018C8800088C8D00248CCB00640B
+:105D90003C19800037300A00AF8B0010A380000848
+:105DA0008E0400248F86000C8F850010010D602367
+:105DB00024180008AF8C00143C010800A4383BDE16
+:105DC0003C010800A4203BF20E000AD900000000AC
+:105DD000920F003C8FBF00148FB00010000F714273
+:105DE000AF82001827BD001803E0000831C200018F
+:105DF00090A7003030E3003F5064002834C50AC04B
+:105E00008CAA00241540002234C809008CAB00483D
+:105E10003C0C7FFF3585FFFF016510243C18800096
+:105E2000AF82000C370509008F8E000C8CAF00602C
+:105E300001CF682B15A0000201C020218CA40060B6
+:105E40000A000B75AF84000C8D02006C0A000B5029
+:105E50003C0680008C8900488F86000C3C0A7FFF3E
+:105E60003550FFFF013038243C0480082405000130
+:105E7000AF870014AC80006CA38500080A000B8378
+:105E8000AF8600108C4400140A000B75AF84000C20
+:105E90008D0200680A000BBD3C18800034C40980E4
+:105EA0008C8600708CB0001400D0482B11200004A8
+:105EB000000000008C8200700A000BBD3C188000BE
+:105EC0008CA200140A000BBD3C1880008F850010C6
+:105ED00027BDFFE0AFBF0018AFB1001414A0000849
+:105EE000AFB000103C04800034870A0090E6003018
+:105EF0002402000530C3003F106200B7348409005B
+:105F00008F91000C00A080213C048000348E0A0098
+:105F10008DCD00043C0608008CC63BD031A73FFF66
+:105F200000E6602B5580000100E03021938F0008CF
+:105F300011E0007600D0102B349909809338007C52
+:105F400033040002108000772403003400C3F82BD0
+:105F500017E000D600C3302300D0102B3C0108000E
+:105F6000A4233BDC1440006D020018213C0408000F
+:105F70008C843BCC0064282B54A0000100602021BD
+:105F80003C05800034A90A009128003C3C0108002F
+:105F9000AC243BD4310300201460000200004821EF
+:105FA0008CA90E188F8800180128502B1140005F13
+:105FB000000000003C0508008CA53BD400A960212E
+:105FC000010C582B1160005C00B0682B01093823CC
+:105FD00000E028213C010800AC273BD4120000035C
+:105FE0002402FFFC10B0008C322A000300A2F82427
+:105FF0003C010800A4203BF23C010800AC3F3BD42C
+:1060000003E028218F840010120400063C0380085E
+:106010008C6A006C02002021AF91000C2550000119
+:10602000AC70006C8F8B001400858823AF9100103A
+:1060300001652023AF8400141220000224070018F9
+:10604000240700103C0E800835C6008090CD006803
+:10605000240C00013C010800A0273BF031A700FF01
+:1060600010EC0047000000001480001800002821F8
+:106070003C0B800091650109357109808E23001861
+:1060800030A500FF0003560224A300013146007F23
+:106090003070007F1206007E240CFF803C0F8008C9
+:1060A00035E90080A123004C3C0808008D083BEC3A
+:1060B000240E00023C010800A02E3C31350D0008E2
+:1060C0003C010800AC2D3BEC240500103C1F800077
+:1060D00037E40A009099003C333800201300000593
+:1060E00000A02021240200013C010800AC223BD486
+:1060F00034A400018FBF00188FB100148FB00010BE
+:106100000080102103E0000827BD00203C010800AA
+:10611000A4203BDC1040FF95020018210A000C105F
+:1061200000C018210A000C08240300303C050800B8
+:106130008CA53BD400B0682B11A0FFA80000000084
+:106140003C04080094843BDC0085782101E7702B37
+:1061500011C000072CA200043C1F60008FF95404FA
+:106160003338003F1700FFE3240400422CA2000450
+:106170001040FF9A240400420A000C738FBF0018DD
+:106180001528FFB9000000008CC200183C188000E0
+:10619000241900020058F825ACDF001837040A0063
+:1061A000A0D900689089003C240F000400A01021B1
+:1061B000312800203C010800A02F3C3111000002D2
+:1061C00024050010240200013C010800AC223BCC55
+:1061D0000A000C693C1F80008F8800148C890060C5
+:1061E0000109282B14A00002010088218C91006075
+:1061F0003C0B80008D640E18240A00010220282127
+:1062000002203021A38A00080E000AD90220802132
+:106210000A000BF7AF820018000A182312200007AB
+:10622000306400033C0D800035A7098090EC007CB1
+:10623000318B000415600019248E00043C01080015
+:10624000A4243BF23C18080097183BF203052021D8
+:1062500000C4782B11E0FF6C8F8400102CA6000581
+:1062600014C0FFA42404004230B900031720000228
+:1062700000B9182324A3FFFC3C010800AC233BD445
+:106280003C010800A4203BF20A000C3600602821E3
+:1062900000AC38240A000C5C00EC18263C01080015
+:1062A000A42E3BF20A000CC6000000003C010800CE
+:1062B000AC203BD40A000C72240400428F830014EB
+:1062C0003C0B8000356A0A001460000600001021B3
+:1062D000914600302405000530C400FF10850003FE
+:1062E0000000000003E000080000000091490048A1
+:1062F000312800FF000839C214E0FFFA3C0480088E
+:106300003C06080094C63BDC3C0308008C633BF46D
+:106310003C0508008CA53BD43C18080097183BF2BC
+:106320000066C8218C8E00040325782101F86821BD
+:1063300001AE60231980001D000000009158004C40
+:106340008F8D0020956E0E10330F00FF8DA9000475
+:1063500001CF30238DAA000030CFFFFF000F610076
+:10636000012C2821000038210147202100AC182BE6
+:106370000083C821ADA50004ADB9000091B8000AA2
+:1063800001F87021A1AE000A956C0E128F8A0020D0
+:10639000A54C00089549003825280001A54800387B
+:1063A0009147000D34EB0008A14B000D03E00008FD
+:1063B0000000000027BDFFD8AFB00018938F000881
+:1063C0008FB000143C087FFF8F8700103C0C8000CA
+:1063D0003518FFFFAFBF0020AFB1001C35990A0090
+:1063E00002181824932A003C000F5FC03C02BFFF34
+:1063F0002CF000013449FFFF006BF8253C08080031
+:106400008D083BF48F99001C3C18080097183BEA54
+:1064100003E9582400107F803C07EFFF3C05F0FFA4
+:10642000016F18253C1180003149002034E2FFFF44
+:1064300034ADFFFF362E098027A500102406000288
+:1064400001194023270A00020062182400808021DD
+:1064500015200002000058218D8B0E1CA7AA0012E7
+:106460000500003A2407000030EF00FF000F3F0056
+:10647000006740253C028008AFA80014344B008020
+:10648000916A00683C0F080091EF3BF13C09DFFF87
+:10649000353FFFFF000A602B3C02080094423BE4BA
+:1064A000A3AF0011011FC024000CCF400319182511
+:1064B0008FA70010AFA300143C1F080093FF3BF30D
+:1064C000A7A200168FA8001400ED48243C0B010081
+:1064D0003C0A0FFF012BC82533F80003354CFFFFA2
+:1064E000010D78243C027000032C382400181E0093
+:1064F00000E2482501E35825AFAB0014AFA9001016
+:1065000091DF007CA3BF00150E00007200000000A8
+:10651000362D0A0091A6003C30C4002010800006F1
+:10652000260200083C11080096313BE0262EFFFFB2
+:106530003C010800A42E3BE08FBF00208FB1001C5F
+:106540008FB0001803E0000827BD00288F8A0018CC
+:10655000016A602B5580FFC4240700010A000D501A
+:1065600030EF00FF938300083C02800027BDFFD876
+:1065700034480A0000805021AFBF002034460AC0D2
+:10658000010028211060000E34440980910700307A
+:10659000240B00058F89000C30EC003F118B000BA1
+:1065A00000003821AFA900103C0B80088D69006CF9
+:1065B000AFAA00180E00013AAFA90014A38000088A
+:1065C0008FBF002003E0000827BD00288D1F004872
+:1065D0003C1808008F183BD48F9900143C027FFFB1
+:1065E0008D0800443443FFFFAFA900103C0B800826
+:1065F0008D69006C03E370240319782101CF6823AF
+:1066000001A83821AFAA00180E00013AAFA9001462
+:106610000A000DA5A38000083C05800034A60A00EE
+:1066200090C7003C3C06080094C63BF23C020800C0
+:106630008C423BEC30E30020000624001060003167
+:10664000004448253C0880083505008090A3006878
+:1066500000006821240C000100005021240B0001DF
+:106660003C188000370F00708DE800003C07800068
+:10667000AF8800248CF901780720FFFE34E5007014
+:106680008CA200003C0308008C6300743C0F0800DF
+:106690008DEF007000482023006428210000C021F5
+:1066A00000A4302B01F8702101C640213C010800F4
+:1066B000AC2500743C010800AC280070ACEC01482B
+:1066C0003C0208008C423BF4A4EA0144A4EB0146DE
+:1066D000ACE2014C3C04080090843BF13C03800890
+:1066E000A0E40152ACE90154A4ED0158346D0080DE
+:1066F00091AC004C3C091000A0EC016D03E00008D7
+:10670000ACE901788CAC0E1C3C0B08008D6B3BD4C3
+:1067100094AA0E1694AE0E1401666821314BFFFF49
+:106720000A000DCD31CAFFFF3C04800034830A000B
+:106730009065003C30A200201040002B00000000BB
+:106740000000582100005021000048213C08800032
+:10675000350400708C8800003C078000AF8800245E
+:106760008CEC01780580FFFE34EE00708DCD0000CA
+:106770003C0508008CA500743C0408008C84007063
+:1067800001A8602300ACC02100001021030C302BB5
+:106790000082C821032678213C010800AC3800742F
+:1067A0003C010800AC2F0070ACEB01483C0E080027
+:1067B0008DCE3BF4240DFF91240B0040A4E901444D
+:1067C000A4EA0146ACEE014CA0ED0152ACEB015441
+:1067D000A4E0015890EA01093C091000A0EA016D0B
+:1067E00003E00008ACE901788C8B0E1894870E1238
+:1067F00094860E1030EAFFFF0A000E0830C9FFFF32
+:106800003C04800034830A009065003C30A20020E4
+:106810001040003927BDFFF8240C00010000502172
+:10682000240B00013C088000350400708C890000B6
+:106830003C088000AF8900248D0D017805A0FFFE83
+:10684000350E00708DC700003C0508008CA5007453
+:106850003C0408008C84007000E9682300ADC0216E
+:1068600000001021030D302B0082C821032678215F
+:106870003C010800AC3800743C010800AC2F0070EB
+:10688000910901093C0E080091CE3C313C0380FF88
+:10689000A3A900038FAD000031C7007F3462FFFF62
+:1068A00001A82025AFA400009106010AA3A00002C0
+:1068B0000007CE00A3A600018FA50000240E300023
+:1068C0003C09100000A2C02403197825AD0F014C2B
+:1068D00027BD0008AD0E0154A5000158AD0C0148BC
+:1068E000A50A0144240AFF80A50B0146A10A015212
+:1068F00003E00008AD0901788C8C0E1894870E1205
+:1069000094860E1030EBFFFF0A000E3E30CAFFFFE8
+:1069100027BDFFE8AFB000103C108000AFBF0014EF
+:1069200036180A00970F00320E000AD531E43FFFF7
+:106930008E0E0100240DFF803C04200001C258216E
+:10694000016D6024000C4940316A007F012A402516
+:10695000010438253C048008AE07083034860080E6
+:1069600090C500682403000230A200FF1043000419
+:106970008F9F000C8F990010AC9F0068AC99006449
+:106980008FBF00148FB0001003E0000827BD00186F
+:106990003C0A0800254A37FC3C090800252938D460
+:1069A0003C08080025082C743C07080024E739E45B
+:1069B0003C06080024C636383C05080024A5339060
+:1069C0003C04080024842FA03C030800246336EC18
+:1069D0003C020800244234883C010800AC2A3DFCFB
+:1069E0003C010800AC293DF83C010800AC283DF40E
+:1069F0003C010800AC273E003C010800AC263E10DC
+:106A00003C010800AC253E083C010800AC243E04D3
+:106A10003C010800AC233E143C010800AC223E0CB3
+:086A200003E000080000000083
+:086A2800800009408000090014
+:106A3000800801008008008080080000800E0000AF
+:106A4000800800808008000080000A8080000A0022
+:086A50008000098080000900AC
+:00000001FF
+/*
+ * This file contains firmware data derived from proprietary unpublished
+ * source code, Copyright (c) 2004 - 2009 Broadcom Corporation.
+ *
+ * Permission is hereby granted for the distribution of this firmware data
+ * in hexadecimal or equivalent format, provided this copyright notice is
+ * accompanying it.
+ */
diff --git a/firmware/bnx2/bnx2-rv2p-06-4.6.16.fw.ihex b/firmware/bnx2/bnx2-rv2p-06-4.6.16.fw.ihex
new file mode 100644 (file)
index 0000000..871de9e
--- /dev/null
@@ -0,0 +1,441 @@
+:100000000000000000000CA00000005800000000EC
+:1000100000000000000000000000000000000000E0
+:1000200000000000000000000000000000000000D0
+:1000300000000DE000000CF80000000500000000CA
+:1000400000000000000000000000000000000000B0
+:080050000000000000000000A8
+:0800580000000010B18000025D
+:100060000000001F0103010000000008AC000001B7
+:1000700000000000050000000000000C2F800001BF
+:10008000000000002B000000000000002B8000009A
+:1000900000000010203F006300000010213F00031B
+:1000A0000000001020BF0032000000188000FFFD9B
+:1000B00000000010B1B8B00D0000000B2FDF0002EF
+:1000C0000000000003D80000000000002C380000F1
+:1000D0000000001091D400000000000806005555F3
+:1000E0000000001880000075000000188000010B5F
+:1000F00000000008020000020000000F42E0001CA7
+:100100000000001091840A11000000102C62000B06
+:10011000000000188000001E00000008020000021D
+:100120000000000F42E0001C0000001091840A183B
+:10013000000000082C8000B1000000082D0000091C
+:100140000000001091D40000000000082D8001077D
+:10015000000000188000006F0000001880000015EB
+:1001600000000008B1000001000000082C8000B071
+:10017000000000082D000008000000082D8000018C
+:1001800000000018800000690000000B2FDF000253
+:100190000000000C1F800002000000002C0700007F
+:1001A0000000001091DE00000000000005000000CB
+:1001B000000000188000FFDC0000000B2FDF0002B1
+:1001C0000000000C1F800000000000002C07000051
+:1001D0000000001091DE000000000000050000009B
+:1001E000000000188000FFD60000000C1F800002F5
+:1001F0000000000005000000000000188000FFD390
+:100200000000000C298000020000000C1F8000028A
+:10021000000000002ADF0000000000082A0000059E
+:100220000000000805005555000000188000FFCDB3
+:10023000000000080224003C000000180004000038
+:10024000000000188000001C000000188000001E44
+:100250000000001880000052000000188000009E7E
+:10026000000000188000009D0000001880000000C1
+:10027000000000188000000000000018800000004E
+:10028000000000188000000000000018800000003E
+:10029000000000188000000000000018800000002E
+:1002A000000000188000000000000018800000DF3F
+:1002B000000000188000000000000018800000000E
+:1002C0000000001880000015000000188000001BCE
+:1002D000000000188000000000000018800000B43A
+:1002E000000000188000002E00000018800000DFD1
+:1002F000000000188000010A00000018800000D5EE
+:10030000000000188000012E000000188000003B53
+:10031000000000188000000000000018800000713C
+:100320000000000C1F80000100000000050000001C
+:10033000000000188000FFAC0000001091D4000005
+:100340000000000C298000010000000C1F8000014B
+:10035000000000082A000002000000000500000064
+:10036000000000188000FFA60000001091D40000DB
+:100370000000000C298000010000000C1F8000011B
+:100380000000000029420000000000082A000002CE
+:100390000000000005000000000000188000FF9F22
+:1003A000000000188000FF9E00000010B1BCB00AE1
+:1003B0000000000B2FDF00020000000003D8000047
+:1003C000000000002C3C00000000001091D4000050
+:1003D00000000008060055550000001880000016B7
+:1003E00000000018800000AC000000102C6201BA70
+:1003F0000000001880000005000000082C8000B1FB
+:10040000000000082D0000090000001091D4000039
+:10041000000000082D8001070000000C298000006A
+:100420000000000C1F8000000000001091DE0000A2
+:10043000000000002ADF0000000000082A0000067B
+:100440000000000805005555000000188000FF89D5
+:100450000000001091D400000000000C2980000171
+:100460000000000C1F800001000000082A00000BA3
+:100470000000000005000000000000188000FF835D
+:1004800000000018000200000000000006820000CA
+:1004900000000010B18A000600000000860C140065
+:1004A00000000010B18C00040000000005000000F6
+:1004B000000000082A0000010000001091D4000094
+:1004C00000000018000D0000000000000502000000
+:1004D0000000001091DE000000000018000A00007B
+:1004E00000000010B1A0B0130000000B2FDF0002CD
+:1004F000000000002C200000000000082C800000FC
+:10050000000000082D0000000000001091D4000041
+:100510000000000806005555000000188000FFEE9E
+:10052000000000082D80011C00000010001F0000CA
+:100530000000001091DE00000000000F476000087E
+:100540000000000F060E0001000000000F58000020
+:10055000000000000A640000000000000AE500003E
+:10056000000000090B66FFFF000000000D610000A5
+:1005700000000018800000130000000F4760000812
+:100580000000000B2FDF0002000000082C8000009C
+:10059000000000082D0000000000001091D40000B1
+:1005A000000000082D80011C0000000F060E000155
+:1005B00000000010001F0000000000000F580000A5
+:1005C0000000001091DE0000000000000A6400003E
+:1005D000000000000AE50000000000090B66FFFFB4
+:1005E000000000000D610000000000000262000039
+:1005F0000000000B2FDF00020000000031040000AB
+:1006000000000000309A0000000000000C96180066
+:10061000000000090C99FFFF00000004CC99340091
+:1006200000000010B1963202000000080F800000A8
+:100630000000000C298000010000001000220002D0
+:100640000000000C295200010000000C295200009B
+:10065000000000080200000E000000080280001ADE
+:1006600000000010B1C40A020000000802000003EC
+:1006700000000008220000010000000C1F800001A3
+:10068000000000002ADF0000000000002A0008002F
+:100690000000000805005555000000188000FF3FCD
+:1006A0000000000B2FDF00020000001091D40000BA
+:1006B000000000082A000001000000002C200000BB
+:1006C000000000082C800000000000082D00000041
+:1006D000000000082D80011C0000001091D40000D3
+:1006E0000000001091DE0000000000082C800006D1
+:1006F000000000082D00000600000000308000000F
+:100700000000000031000000000000082D800006FD
+:100710000000000C298000010000000C1F80000177
+:100720000000001091DE0000000000002ADF000041
+:10073000000000082A000010000000000500000072
+:10074000000000188000FF2A0000001091A0B009EE
+:10075000000000082C8000B1000000082D000009F6
+:100760000000001091D40000000000082D80010757
+:10077000000000188000FFAB00000018800000108F
+:1007800000000008AC000001000000188000000B11
+:10079000000000000380B0000000000B2FDF00020B
+:1007A000000000002C0040000000001091D4000068
+:1007B0000000000806005555000000188000FF9A50
+:1007C00000000018800000300000001880000006C3
+:1007D0000000000B2FDF0002000000002C000E00C4
+:1007E000000000082A000007000000080500555519
+:1007F000000000188000FF140000000006820000C6
+:100800000000000C298000010000000C1F80000186
+:10081000000000100CE70007000000090562FFFF60
+:1008200000000010BA6C1405000000002ADF000070
+:100830000000000021000000000000082A00000560
+:100840000000001091D40000000000082C8000B0CF
+:10085000000000082D0000080000000C31620018A4
+:10086000000000082D800001000000188000FF8CAF
+:1008700000000018000D000000000010B1A0B00E34
+:100880000000000B2FDF00020000000003D8000072
+:10089000000000002C2000000000001091D4000097
+:1008A0000000001880000014000000102C620002FC
+:1008B000000000188000000B0000000B2FDF00027A
+:1008C000000000002C0700000000000C1F80000149
+:1008D0000000001091DE0000000000000500000094
+:1008E000000000188000FEF6000000082C8000B117
+:1008F000000000082D0000090000001091D4000045
+:10090000000000082D8001070000000C2980000174
+:100910000000000C1F8000010000001091DE0000AC
+:10092000000000002ADF0000000000082A00000A82
+:100930000000000005000000000000188000FEEB31
+:100940000000000005020000000000082C8000B03C
+:10095000000000082D000008000000082D80015054
+:10096000000000000000000000000010205F0000F8
+:10097000000000082C800000000000082D0000008E
+:10098000000000082D8001080000000000000000A9
+:100990000000001091DE000000000018000A0000B6
+:1009A0000000001091D40000000000080600AAAA70
+:1009B000000000188000FF5B0000000C298000018F
+:1009C0000000000C1F800001000000082A00000940
+:1009D000000000080500AAAA000000188000FED749
+:1009E0000000001091D400000000000806005555DA
+:1009F000000000188000FF530000001091A03C028E
+:100A000000000010B1E662070000000B2FDF0002BB
+:100A1000000000002C310000000000092CB1007F14
+:100A2000000000082CD90000000000082D00000084
+:100A3000000000082D80010D00000010B1A8000684
+:100A400000000010205F0000000000002C200000CB
+:100A5000000000002CA70000000000082D0000107E
+:100A6000000000082D800108000000188000FF4CE5
+:100A700000000010B1A6001000000010001F0000D0
+:100A80000000000F0F300007000000000A600000A7
+:100A9000000000000AE100000000000F4B620008A7
+:100AA000000000090B1600FF000000000D620000AE
+:100AB000000000090D1A00FF0000001007300003BD
+:100AC0000000000C0D1A00080000000C0B160008B6
+:100AD0000000000F4CE30018000000000C992C00EF
+:100AE00000000004CC993400000000080F800000D2
+:100AF0000000000C298000010000000033310000DC
+:100B00000000000822000016000000002ADF00009C
+:100B1000000000082A00000C00000010009F0000E8
+:100B2000000000000F2000000000000C1F800001EA
+:100B30000000000805005555000000188000FEABBD
+:100B40000000001091D40000000000080600AAAACE
+:100B5000000000188000FF270000000F4722000857
+:100B600000000009070E000F00000008070E000833
+:100B700000000008028000010000000702851C0040
+:100B800000000008828500010000000002854C0082
+:100B90000000000742851C0000000003C3AA5200A9
+:100BA0000000000003B10E00000000074B071C000E
+:100BB0000000000F0F3000070000000F0A9600032E
+:100BC000000000000A955C00000000004A005A0086
+:100BD000000000000C960A00000000090C99FFFFBD
+:100BE000000000080D00FFFF00000010B196320267
+:100BF000000000080F80000500000010B1A80008E8
+:100C000000000010205F00000000000B2FDF00023A
+:100C1000000000002C200000000000002CA70000B5
+:100C2000000000082D000010000000082D800108C1
+:100C3000000000188000FF130000000C2980000154
+:100C400000000010001F00000000000C1F800001C9
+:100C5000000000002ADF0000000000082A00000D4C
+:100C6000000000080500AAAA000000188000FE8508
+:100C70000000001091D40000000000080600555547
+:100C8000000000188000FF010000000C2980000116
+:100C90000000000C1F800001000000082A0000076F
+:100CA0000000000805005555000000188000FE7D7A
+:100CB00000000008030500040000000683040C0087
+:100CC00000000008028502000000000086050C00FC
+:100CD00000000001860C0E00000000080204000461
+:100CE00000000000020418000000000083871800C4
+:080CF0000000001800020000E2
+:080CF80000000010B1800004AF
+:100D00000000001F0103010000000008050000FFB3
+:100D10000000001800020000000000002A0000008F
+:100D200000000010B1D400000000000C2980000178
+:100D30000000000802540008000000180004000031
+:100D40000000001880000010000000188000001152
+:100D5000000000188000003A000000188000010424
+:100D6000000000188000010300000018800001024C
+:100D70000000001880000102000000188000000040
+:100D8000000000188000011400000018800000FE20
+:100D9000000000188000000C0000001880000118FE
+:100DA000000000188000016A000000188000006741
+:100DB00000000018800000DA00000018800000E742
+:100DC000000000002A000000000000188000FFEB77
+:100DD000000000002A0000000000000C2980000034
+:100DE0000000001020530000000000188000FFE702
+:100DF000000000002A000000000000188000FFE54D
+:100E000000000018000200000000000005020000C1
+:100E1000000000109196342100000010205F0000B7
+:100E2000000000002C1E0000000000082C800006BE
+:100E3000000000082D000006000000082D800102BF
+:100E400000000000000000000000001091DE000023
+:100E5000000000000D61000000000018000A000002
+:100E600000000000050200000000001091963416FA
+:100E700000000010205F00000000000009D8000002
+:100E8000000000002C1E0000000000082C8000B2B2
+:100E9000000000082D00000A000000082D8001025B
+:100EA00000000000000000000000001091DE0000C3
+:100EB000000000000D620000000000002C13000084
+:100EC00000000018000A00000000000005020000F9
+:100ED000000000109196340900000010205F00000F
+:100EE000000000002C1E0000000000082C800006FE
+:100EF000000000082D00006A000000082D8001029B
+:100F000000000000000000000000001091DE000062
+:100F1000000000000D7A000000000018000A000028
+:100F20000000001091DE000000000010001F000013
+:100F3000000000002F80AA00000000002A0000002E
+:100F4000000000000D6100000000000003620000CE
+:100F5000000000002C4000000000000002638C0034
+:100F600000000000264600000000000802040012F5
+:100F700000000010B9060827000000000F5800000C
+:100F8000000000000A640000000000000AE5000004
+:100F9000000000090B66FFFF000000000C000000CD
+:100FA000000000000B800000000000080CC60012CA
+:100FB000000000188000FFCB000000080F80000335
+:100FC000000000000000000000000010009F000072
+:100FD00000000008271100120000000066900000C9
+:100FE00000000008A31B001200000010B1980003CD
+:100FF00000000010001F0000000000080F80000427
+:101000000000000822000003000000082C80000CF3
+:10101000000000082D00000C00000010009F0000E0
+:1010200000000000259600000000000C2980000050
+:101030000000000006660000000000008661180045
+:10104000000000090260000F0000000F020400020F
+:1010500000000010B60C08030000000C1FBF0000C9
+:101060000000000C33660010000000003214000085
+:1010700000000000329500000000000573662C009F
+:101080000000000031E32E00000000082D80001059
+:1010900000000010205300000000001091DE00004E
+:1010A000000000188000FF900000000023000000F6
+:1010B0000000000925E6FFFF000000082200000BE9
+:1010C0000000000C695200000000000C29800000A4
+:1010D0000000001020530000000000188000FF896D
+:1010E0000000001091DE000000000010001F000052
+:1010F000000000002F80AA00000000002A0000006D
+:10110000000000002C400000000000082C8000407F
+:10111000000000082D000020000000082D80011CA8
+:1011200000000000000000000000001091DE000040
+:101130000000000F42EA001000000010004F000401
+:1011400000000010B746920000000008024900129B
+:1011500000000010B5840A00000000000D610000CE
+:1011600000000010BA66345A00000000036200005C
+:1011700000000010B8630C5800000008830500123E
+:1011800000000010004F00020000000003490000B2
+:101190000000000183068C000000000083C60C00E4
+:1011A00000000010B1870010000000000B6E00006E
+:1011B000000000188000FF6B0000000106691400A9
+:1011C00000000010918C000200000008B4E900014A
+:1011D00000000010B1E92C4C0000000086692C00D2
+:1011E00000000000020000000000000902EAFFFF0A
+:1011F00000000010000C00020000000002040A00C1
+:101200000000000F460C00010000000F02850001E5
+:1012100000000010918C01FC00000010B7040E4388
+:10122000000000002C400000000000000F40000003
+:10123000000000000D610000000000000A640000D2
+:10124000000000000AE50000000000090B66FFFF37
+:10125000000000000C000000000000000B800000F7
+:10126000000000080C860012000000080F80000338
+:101270000000000C2952000000000010009F000038
+:101280000000000827110012000000006690000016
+:1012900000000000264600000000000023060000B9
+:1012A00000000010B198000500000010001F0000B1
+:1012B000000000080F800004000000000000000093
+:1012C00000000010001F00000000000032140000A9
+:1012D00000000000329500000000000031E32E0005
+:1012E0000000000573662C00000000002596000039
+:1012F00000000010B18700160000000C29800000DB
+:101300000000000F0F6B0007000000000D690000D7
+:10131000000000000A6C0000000000000AED000060
+:10132000000000000B6E0000000000000B800000B9
+:10133000000000000C870000000000080F80000380
+:1013400000000010205300000000000C6952000152
+:1013500000000010001F00000000000022C58C00EB
+:1013600000000000231B0000000000002711000007
+:10137000000000002690000000000010B8170E03C7
+:101380000000000C29800000000000188000FFF61B
+:1013900000000010B1980002000000080F80000457
+:1013A000000000082200001A000000082C80000C39
+:1013B000000000082D00000C000000082D80001027
+:1013C00000000010001F0000000000000D6E000073
+:1013D00000000003E7CF34000000000C298000006B
+:1013E0000000001091DE000000000010B18700072F
+:1013F00000000000361400000000000036950000D8
+:101400000000000037160000000000082C8000508B
+:10141000000000082D000030000000082D80000CA6
+:101420000000001020530000000000188000FF1F83
+:10143000000000002646000000000000230000001D
+:101440000000000925E6FFFF000000000B6E000011
+:1014500000000003E7CF2C00000000082200001B62
+:101460000000000C695200000000000C2980000000
+:101470000000001020530000000000188000FF153D
+:10148000000000002FD50000000000002A0000002E
+:1014900000000010003F000B000000000666000086
+:1014A000000000008661180000000009026000F0E2
+:1014B00000000010B70C08070000000C7366001055
+:1014C000000000082C800018000000082D00001803
+:1014D000000000082D8000020000000C5FBF00002B
+:1014E0000000001091DE0000000000188000FF07DF
+:1014F000000000002FD50000000000002A000000BE
+:10150000000000002C4000000000000C29800000BA
+:101510000000001091DE0000000000082C80001A7E
+:10152000000000082D00001A000000003300000039
+:10153000000000082D800002000000003180000043
+:101540000000001091DE0000000000082C80000C5C
+:10155000000000082D00000C000000082D80000491
+:1015600000000010205300000000001091DE000079
+:10157000000000188000FEF6000000188000FEF554
+:10158000000000002A00000000000010001F000002
+:10159000000000000F008000000000080F8000071E
+:1015A0000000001880000014000000000502000088
+:1015B000000000082200000900000000286D000063
+:1015C00000000000290000000000000F6568001006
+:1015D00000000003F66C940000000010B972A00433
+:1015E0000000000C73E700190000000C2142000409
+:1015F000000000003BF600000000000C2980000005
+:101600000000001020530000000000082200000825
+:101610000000000C6142000400000018000A0000F5
+:10162000000000002A00000000000010001F000061
+:101630000000000F0F470007000000080F8000089F
+:101640000000000C29800000000000102053000062
+:10165000000000188000FEDA0000001091DE00009B
+:10166000000000002FD5000000000010001F000047
+:101670000000000033510000000000002A000000BC
+:1016800000000010B1C600230000000F0F5000073B
+:10169000000000000A600000000000000AE10000F5
+:1016A0000000000F4B620008000000090B1600FF4D
+:1016B0000000000F4C620010000000000D620000EE
+:1016C000000000090D1A00FF000000100750000381
+:1016D0000000000C0D1A00080000000C0B1600089A
+:1016E000000000000CC60000000000000B8000009D
+:1016F0000000000006980000000000080F800003B2
+:101700000000001006C200040000000C29000002C6
+:1017100000000010264200020000000C29520003C5
+:10172000000000082200000100000010009F0000DF
+:1017300000000000231B00000000000027111A0019
+:1017400000000000669000000000000C295200001C
+:1017500000000010B19732090000000C2980000041
+:101760000000000006980000000000102053000058
+:101770000000000C295200030000000022C58C006C
+:1017800000000010001F0000000000080F80000390
+:10179000000000188000FFF300000010B1C8001323
+:1017A00000000010B1C600030000000C29800000FA
+:1017B00000000010205300000000000C295200001F
+:1017C0000000000C295200030000001006C20002B5
+:1017D0000000000C295200020000000022C58C000D
+:1017E00000000000276500000000000026E4000063
+:1017F000000000082200001600000010B1C600031F
+:10180000000000002348000000000010B180000527
+:1018100000000000234800000000000C29800000A8
+:101820000000000F0F500007000000188000001299
+:1018300000000008220000160000000C29800000B3
+:10184000000000003014000000000000309500008F
+:101850000000001007500003000000090B1600FFF5
+:10186000000000090D1A00FF0000000F31160008EB
+:10187000000000003162340000000003F16230001B
+:1018800000000010205F0000000000002C5100004C
+:10189000000000092CD1007F000000082CD90000B6
+:1018A000000000082D000000000000082D80000C42
+:1018B00000000000000000000000001091DE0000A9
+:1018C0000000001005C2000300000000330000000B
+:1018D000000000080F8000070000001020530000E7
+:1018E00000000010009F0000000000188000FE872C
+:1018F000000000002FD50000000000002A000000BA
+:101900000000000F0F50000700000010B1C6002DAE
+:101910000000000F4742000800000009070E000FFA
+:1019200000000008070E000800000010001F000063
+:1019300000000008090000010000000709121C0057
+:1019400000000003CBCA9200000000000B97A20029
+:101950000000000742171C00000000000B040000FC
+:101960000000000F0A840003000000000A959C009C
+:10197000000000004A009A000000000882120001E6
+:10198000000000010C170800000000000C978C00FC
+:101990000000000002180000000000080D00FFFF1A
+:1019A000000000080F8000060000000C2900000065
+:1019B0000000001006C200040000000C29520002C2
+:1019C00000000010264200020000000C2952000313
+:1019D000000000082200000100000010009F00002D
+:1019E00000000010B197320C00000000231B000023
+:1019F00000000000271108000000000066900000B1
+:101A00000000000C29800000000000000218000007
+:101A100000000010205300000000000C29520003B9
+:101A20000000000022C5360000000010001F00006A
+:101A3000000000080F800006000000188000FFF47E
+:101A400000000000231B0000000000002711080018
+:101A5000000000006690000000000010B1C8000BFC
+:101A60000000000C2980000000000010205300003E
+:101A70000000000C295200000000000C2952000355
+:101A80000000001006C200020000000C29520002F3
+:101A90000000000022C58C00000000002765000047
+:101AA0000000000026E400000000000023480000C1
+:101AB00000000008220000170000000C2980000030
+:101AC00000000010001F0000000000102053000064
+:081AD000000000188000FE4A2E
+:00000001FF
+/*
+ * This file contains firmware data derived from proprietary unpublished
+ * source code, Copyright (c) 2004 - 2009 Broadcom Corporation.
+ *
+ * Permission is hereby granted for the distribution of this firmware data
+ * in hexadecimal or equivalent format, provided this copyright notice is
+ * accompanying it.
+ */
diff --git a/firmware/bnx2/bnx2-rv2p-09-4.6.15.fw.ihex b/firmware/bnx2/bnx2-rv2p-09-4.6.15.fw.ihex
new file mode 100644 (file)
index 0000000..63995bb
--- /dev/null
@@ -0,0 +1,490 @@
+:100000000000000000000D88000000580000000003
+:1000100000000000000000000000000000000000E0
+:1000200000000000000000000000000000000000D0
+:100030000000101800000DE00000000500000000A6
+:1000400000000000000000000000000000000000B0
+:080050000000000000000000A8
+:0800580000000010B18000025D
+:100060000000001F0303010000000008AC000001B5
+:1000700000000000050000000000000C2F800001BF
+:10008000000000002B000000000000002B8000009A
+:1000900000000010203F006C00000010213F000312
+:1000A0000000001020BF003B000000188000FFFD92
+:1000B00000000010B1B8B0150000000B2FDF0002E7
+:1000C0000000000003D80000000000002C380000F1
+:1000D000000000082C800000000000082D00000037
+:1000E0000000001091D400000000000806005555E3
+:1000F000000000188000008F000000082D80011C07
+:1001000000000008020000010000001091DE000065
+:100110000000000F42E0001C0000001091840A174C
+:1001200000000010086600160000000C2980000284
+:100130000000000C1F800002000000002ADF000009
+:10014000000000082A00000F0000000805005555B7
+:10015000000000188000FFE8000000080200000115
+:100160000000000F42E0001C0000001091840A19FA
+:10017000000000082C800006000000082D0000068A
+:100180000000001091D40000000000082D8001063E
+:1001900000000018800000830000001008660013B3
+:1001A000000000188000FFF100000008B10000010D
+:1001B000000000082C80010C000000082D00000841
+:1001C000000000082D800001000000188000007C65
+:1001D0000000000B2FDF00020000000C1F80000257
+:1001E000000000002C0700000000001091DE00005D
+:1001F0000000000005000000000000188000FFD390
+:100200000000000B2FDF00020000000C1F80000028
+:10021000000000002C0700000000001091DE00002C
+:100220000000000005000000000000188000FFCD65
+:100230000000000C1F80000200000000050000000C
+:10024000000000188000FFCA0000000C2980000296
+:100250000000000C1F800002000000002ADF0000E8
+:10026000000000082A0000050000000805005555A0
+:10027000000000188000FFC40000000802240045B0
+:100280000000001800040000000000188000001C9E
+:10029000000000188000001E0000001880000065AB
+:1002A00000000018800000AD00000018800000ACC5
+:1002B000000000188000000000000018800000000E
+:1002C00000000018800000000000001880000000FE
+:1002D00000000018800000000000001880000000EE
+:1002E00000000018800000000000001880000000DE
+:1002F00000000018800000F30000001880000000DB
+:1003000000000018800000000000001880000015A8
+:10031000000000188000001B000000188000000092
+:1003200000000018800000C3000000188000002EAC
+:1003300000000018800000F3000000188000011E7B
+:1003400000000018800000E9000000188000014251
+:10035000000000188000004E00000018800000001F
+:1003600000000018800000800000000C1F800001C9
+:100370000000000005000000000000188000FFA33E
+:100380000000001091D400000000000C2980000142
+:100390000000000C1F800001000000082A0000027D
+:1003A0000000000005000000000000188000FF9D14
+:1003B0000000001091D400000000000C2980000112
+:1003C0000000000C1F800001000000002942000016
+:1003D000000000082A0000020000000005000000E4
+:1003E000000000188000FF96000000188000FF95B4
+:1003F00000000010B1BCB00A0000000B2FDF0002AB
+:100400000000000003D80000000000002C3C0000A9
+:100410000000001091D400000000000806005555AF
+:10042000000000188000002900000018800000BBB8
+:10043000000000102C6201BA0000001880000005C6
+:10044000000000082C80010D000000082D000009AC
+:100450000000001091D40000000000082D8001076A
+:100460000000000C298000000000000C1F8000002C
+:100470000000001091DE0000000000002ADF0000F4
+:10048000000000082A00000600000008050055557D
+:10049000000000188000FF800000001091D40000D0
+:1004A0000000000C298000010000000C1F800001EA
+:1004B000000000082A00000B0000000005000000FA
+:1004C000000000188000FF7A000000000202000017
+:1004D00000000000029A000000000000060C2C0042
+:1004E00000000004C60C340000000010001F0000D3
+:1004F00000000010B196180C0000000806960004D9
+:1005000000000009068DFFFC00000004CD051A0064
+:1005100000000004CC9A18000000001020D7000052
+:100520000000000C2B56000000000000000000003E
+:1005300000000000000000000000001020D70000B4
+:10054000000000080F80000100000010B18001F4DD
+:1005500000000010001F00000000000C6B5600009F
+:1005600000000018000400000000000006820000E7
+:1005700000000010B18A000600000000860C140084
+:1005800000000010B18C0004000000000500000015
+:10059000000000082A0000010000001091D40000B3
+:1005A00000000018000D000000000000050200001F
+:1005B0000000001091DE000000000018000A00009A
+:1005C00000000010B1A0B0130000000B2FDF0002EC
+:1005D000000000002C200000000000082C8000001B
+:1005E000000000082D0000000000001091D4000061
+:1005F0000000000806005555000000188000FFEEBE
+:10060000000000082D80011C00000010001F0000E9
+:100610000000001091DE00000000000F476000089D
+:100620000000000F060E0001000000000F5800003F
+:10063000000000000A640000000000000AE500005D
+:10064000000000090B66FFFF000000000D610000C4
+:1006500000000018800000130000000F4760000831
+:100660000000000B2FDF0002000000082C800000BB
+:10067000000000082D0000000000001091D40000D0
+:10068000000000082D80011C0000000F060E000174
+:1006900000000010001F0000000000000F580000C4
+:1006A0000000001091DE0000000000000A6400005D
+:1006B000000000000AE50000000000090B66FFFFD3
+:1006C000000000000D610000000000000262000058
+:1006D0000000000B2FDF00020000000031040000CA
+:1006E00000000000309A0000000000188000FFBCED
+:1006F0000000000C29800001000000100022000210
+:100700000000000C295200010000000C29520000DA
+:10071000000000080200000E000000080280001A1D
+:1007200000000010B1C40A0200000008020000032B
+:1007300000000008220000010000000C1F800001E2
+:10074000000000002ADF0000000000002A0008006E
+:100750000000000805005555000000188000FF2724
+:100760000000000B2FDF00020000001091D40000F9
+:10077000000000082A000001000000002C200000FA
+:10078000000000082C800000000000082D00000080
+:10079000000000082D80011C0000001091D4000012
+:1007A0000000001091DE0000000000082C80000610
+:1007B000000000082D00000600000000308000004E
+:1007C0000000000031000000000000082D8000063D
+:1007D0000000000C298000010000000C1F800001B7
+:1007E0000000001091DE0000000000002ADF000081
+:1007F000000000082A0000100000000005000000B2
+:10080000000000188000FF120000001091A0B00945
+:10081000000000082C80010D000000082D000009D8
+:100820000000001091D40000000000082D80010796
+:10083000000000188000FFAF0000001880000010CA
+:1008400000000008AC000001000000188000000B50
+:10085000000000000380B0000000000B2FDF00024A
+:10086000000000002C0040000000001091D40000A7
+:100870000000000806005555000000188000FF9E8B
+:100880000000001880000030000000188000000602
+:100890000000000B2FDF0002000000002C000E0003
+:1008A000000000082A000007000000080500555558
+:1008B000000000188000FEFC00000000068200001E
+:1008C0000000000C298000010000000C1F800001C6
+:1008D000000000100CE70007000000090562FFFFA0
+:1008E00000000010BA6C1405000000002ADF0000B0
+:1008F0000000000021000000000000082A000005A0
+:100900000000001091D40000000000082C80010CB1
+:10091000000000082D0000080000000C31620018E3
+:10092000000000082D800001000000188000FF90EA
+:1009300000000018000D000000000010B1A0B00E73
+:100940000000000B2FDF00020000000003D80000B1
+:10095000000000002C2000000000001091D40000D6
+:100960000000001880000014000000102C6200023B
+:10097000000000188000000B0000000B2FDF0002B9
+:10098000000000002C0700000000000C1F80000188
+:100990000000001091DE00000000000005000000D3
+:1009A000000000188000FEDE000000082C80010D11
+:1009B000000000082D0000090000001091D4000084
+:1009C000000000082D8001070000000C29800001B4
+:1009D0000000000C1F8000010000001091DE0000EC
+:1009E000000000002ADF0000000000082A00000AC2
+:1009F0000000000005000000000000188000FED389
+:100A00000000000005020000000000082C80010C1E
+:100A1000000000082D000008000000082D800134AF
+:100A2000000000000000000000000010205F000037
+:100A3000000000082C800140000000082D00003C50
+:100A4000000000082D80011C0000000000000000D4
+:100A500000000010205F0000000000082C800080D3
+:100A6000000000082D000000000000082D80010893
+:100A700000000000000000000000001091DE0000F7
+:100A800000000018000A00000000001091D40000CF
+:100A9000000000080600AAAA000000188000FF5A03
+:100AA0000000000C298000010000000C1F800001E4
+:100AB000000000082A000009000000080500AAAA9A
+:100AC000000000188000FEBA0000001091D4000061
+:100AD0000000000806005555000000188000FF5275
+:100AE0000000001091A03C0200000010B1E6620777
+:100AF0000000000B2FDF0002000000002C3100007E
+:100B0000000000092CB1007F000000082CD9000073
+:100B1000000000082D000000000000082D80010DDD
+:100B200000000010B1A8000600000010205F0000C7
+:100B3000000000002C200000000000002CA7000096
+:100B4000000000082D000010000000082D800108A2
+:100B5000000000188000FF4B00000010B1A600103C
+:100B600000000010001F00000000000F0F30000701
+:100B7000000000000A600000000000000AE1000020
+:100B80000000000F4B620008000000090B1600FF78
+:100B9000000000000D620000000000090D1A00FFB7
+:100BA00000000010073000030000000C0D1A0008C0
+:100BB0000000000C0B1600080000000F4CE30018AA
+:100BC000000000000C992C0000000004CC993400B7
+:100BD000000000080F8000000000000C29800001C8
+:100BE0000000000033310000000000082200001661
+:100BF000000000002ADF0000000000082A00000CAE
+:100C000000000010009F0000000000000F20000006
+:100C10000000000C1F800001000000080500555571
+:100C2000000000188000FE8E0000001091D400002B
+:100C3000000000080600AAAA000000188000FF2695
+:100C40000000000F4722000800000009070E000FF7
+:100C500000000008070E00080000000802800001E4
+:100C60000000000702851C000000000882850001CA
+:100C70000000000002854C000000000742851C00B7
+:100C800000000003C3AA52000000000003B10E00E0
+:100C9000000000074B071C000000000F0F3000078A
+:100CA0000000000F0A960003000000000A955C0097
+:100CB000000000004A005A00000000000C960A00E4
+:100CC000000000090C99FFFF000000080D00FFFF65
+:100CD00000000010B1963202000000080F800005ED
+:100CE00000000010B1A8000800000010205F000004
+:100CF0000000000B2FDF0002000000002C2000008D
+:100D0000000000002CA70000000000082D000010CB
+:100D1000000000082D800108000000188000FF126C
+:100D20000000000C2980000100000010001F0000DE
+:100D30000000000C1F800001000000002ADF0000FE
+:100D4000000000082A00000D000000080500AAAA03
+:100D5000000000188000FE680000001091D4000020
+:100D60000000000806005555000000188000FF0034
+:100D70000000000C298000010000000C1F80000111
+:100D8000000000082A000007000000080500555573
+:100D9000000000188000FE60000000080305000449
+:100DA0000000000683040C00000000080285020019
+:100DB0000000000086050C0000000001860C0E00FB
+:100DC00000000008020400040000000002041800F3
+:100DD00000000000838718000000001800020000D7
+:100DE00000000010B18000040000001F0303010098
+:100DF00000000008050000FF0000001800020000CD
+:100E0000000000002A00000000000010B1D4000023
+:100E10000000000C298000010000000802540009B5
+:100E2000000000092952003F0000001800040000E3
+:100E30000000001880000010000000188000001161
+:100E4000000000188000004B000000188000013CEA
+:100E5000000000188000013B000000188000013AEB
+:100E6000000000188000013A000000188000000017
+:100E7000000000188000014D0000001880000136BD
+:100E8000000000188000000C0000001880000152D3
+:100E900000000018800001AC0000001880000080F5
+:100EA00000000018800001070000001880000115F4
+:100EB000000000002A000000000000188000FFEA87
+:100EC000000000002A0000000000000C2980000043
+:100ED0000000001020530000000000188000FFE612
+:100EE000000000002A000000000000188000FFE45D
+:100EF0000000000003820000000000188000FFDFF7
+:100F0000000000010C161400000000008C181400F2
+:100F10000000001091980003000000080C960002E9
+:100F200000000010B1800003000000080C960001D2
+:100F3000000000000C000000000000000D1900007F
+:100F400000000010205600000000000C2BD700010C
+:100F5000000000080F8000010000000000000000F9
+:100F600000000010001F00000000000C6BD7000103
+:100F700000000010011301F100000018000700003C
+:100F800000000000050200000000001091963421CE
+:100F900000000010205F0000000000002C1E000078
+:100FA000000000082C800006000000082D0000064C
+:100FB000000000082D800102000000000000000079
+:100FC0000000001091DE0000000000000D61000034
+:100FD00000000018000A00000000000005020000E8
+:100FE000000000109196341600000010205F0000F1
+:100FF0000000000009D80000000000002C1E0000C6
+:10100000000000082C80010E000000082D00000ADE
+:10101000000000082D800102000000000000000018
+:101020000000001091DE0000000000000D620000D2
+:10103000000000002C13000000000018000A00004F
+:101040000000000005020000000000109196340925
+:1010500000000010205F0000000000002C1E0000B7
+:10106000000000082C800006000000082D00006A27
+:10107000000000082D8001020000000000000000B8
+:101080000000001091DE0000000000000D7A00005A
+:1010900000000018000A00000000001091DE0000AF
+:1010A00000000010001F00000000000C6BD70001C2
+:1010B000000000002F80AA00000000002A000000AD
+:1010C000000000000D61000000000000036200004D
+:1010D000000000002C4000000000000002638C00B3
+:1010E0000000000026460000000000080204001274
+:1010F00000000010B906082E000000000F58000084
+:10110000000000000A640000000000000AE5000082
+:10111000000000090B66FFFF000000000C0000004B
+:10112000000000000B800000000000080CC6001248
+:10113000000000188000FFCA0000001020560000C8
+:101140000000000C2BD70001000000080F800003F6
+:10115000000000000000000000000010001F000060
+:101160000000000C6BD700010000000827110012DE
+:10117000000000006690000000000008A31B0012A1
+:1011800000000010B198000600000010001F0000D1
+:101190000000000C6BD7000100000010205600007A
+:1011A0000000000C2BD70001000000080F80000495
+:1011B0000000000822000003000000082C80000C42
+:1011C000000000082D00000C00000010001F0000AF
+:1011D0000000000C6BD70001000000002596000005
+:1011E0000000000C298000000000000006660000DE
+:1011F0000000000086611800000000090260000F76
+:101200000000000F0204000200000010B60C0803EA
+:101210000000000C1FBF00000000000C336600102F
+:1012200000000000321400000000000032950000B1
+:101230000000000573662C000000000031E32E0062
+:10124000000000082D800010000000102053000056
+:101250000000001091DE0000000000188000FF7602
+:1012600000000000230000000000000925E6FFFF49
+:10127000000000082200000B0000000C6952000072
+:101280000000000C29800000000000102053000026
+:10129000000000188000FF6F0000001091DE0000C9
+:1012A00000000010001F00000000000C6BD70001C0
+:1012B000000000002F80AA00000000002A000000AB
+:1012C000000000002C400000000000082C800040BE
+:1012D000000000082D000020000000082D80011CE7
+:1012E00000000000000000000000001091DE00007F
+:1012F0000000000F42EA001000000010004F000440
+:1013000000000010B74692000000000802490012D9
+:1013100000000010B5840A00000000000D6100000C
+:1013200000000010BA66346D000000000362000087
+:1013300000000010B8630C6B000000088305001269
+:1013400000000010004F00020000000003490000F0
+:101350000000000183068C000000000083C60C0022
+:1013600000000010B1870010000000000B6E0000AC
+:10137000000000188000FF50000000010669140002
+:1013800000000010918C000200000008B4E9000188
+:1013900000000010B1E92C5F0000000086692C00FD
+:1013A00000000000020000000000000902EAFFFF48
+:1013B00000000010000C00020000000002040A00FF
+:1013C0000000000F460C00010000000F0285000124
+:1013D00000000010918C01FC00000010B7040E56B4
+:1013E000000000002C400000000000000F40000042
+:1013F000000000000D610000000000000A64000011
+:10140000000000000AE50000000000090B66FFFF75
+:10141000000000000C000000000000000B80000035
+:10142000000000080C86001200000010205600008A
+:101430000000000C2BD70001000000080F80000303
+:101440000000000C2952000000000010001F0000E6
+:101450000000000C6BD700010000000827110012EB
+:10146000000000006690000000000000264600001A
+:10147000000000002306000000000010B1980009E1
+:1014800000000010001F00000000000C6BD70001DE
+:1014900000000010205600000000000C2BD70001B7
+:1014A000000000080F8000040000000000000000A1
+:1014B00000000010001F00000000000C6BD70001AE
+:1014C000000000003214000000000000329500000F
+:1014D0000000000031E32E000000000573662C00C0
+:1014E000000000002596000000000010B1870021D8
+:1014F0000000000C298000000000000F0F6B0007A7
+:10150000000000000D690000000000000A6C0000EF
+:10151000000000000AED0000000000000B6E00005B
+:10152000000000000B800000000000000C8700009D
+:10153000000000188000FF18000000010C161400C5
+:10154000000000008C181400000000080C96000138
+:101550000000001091980002000000080C990001A2
+:10156000000000000D190000000000000C00000049
+:1015700000000010205600000000000C2BD70001D6
+:10158000000000080F800001000000102053000040
+:101590000000000C6952000100000010001F000054
+:1015A0000000000C6BD700010000000022C58C0079
+:1015B00000000000231200000000000027110000BE
+:1015C000000000002690000000000010B8170E0375
+:1015D0000000000C29800000000000188000FFEBD4
+:1015E0000000000082970E0000000000A3120A0015
+:1015F000000000082200001A000000082C80000CE7
+:10160000000000082D00000C000000082D800010D4
+:1016100000000010001F00000000000C6BD700014C
+:10162000000000000D6E000000000003E7CF340052
+:101630000000000C298000000000001091DE000076
+:1016400000000010B1870007000000003614000001
+:101650000000000036950000000000003716000072
+:10166000000000082C800050000000082D00003011
+:10167000000000082D80000C000000102053000026
+:10168000000000188000FEF1000000002646000067
+:1016900000000000230000000000000925E6FFFF15
+:1016A000000000000B6E000000000003E7CF2C00DC
+:1016B000000000082200001B0000000C695200001E
+:1016C0000000000C298000000000001020530000E2
+:1016D000000000188000FEE7000000002FD5000089
+:1016E000000000002A00000000000010003F000C75
+:1016F000000000000666000000000000866118007F
+:1017000000000009026000F000000010B70C08089B
+:10171000000000002C4000000000000C7366001068
+:10172000000000082C800018000000082D000018A0
+:10173000000000082D8000020000000C5FBF0000C8
+:101740000000001091DE0000000000188000FED8AC
+:10175000000000002FD50000000000002A0000005B
+:10176000000000002C4000000000000C7366001018
+:10177000000000082C800018000000082D00001850
+:10178000000000082D8000020000000C5FBF000078
+:101790000000001091DE0000000000082C80000313
+:1017A000000000082D000003000000093060FFF079
+:1017B000000000082D8000010000000C29800000BE
+:1017C0000000001091DE0000000000082C80001ACC
+:1017D000000000082D00001A000000003300000087
+:1017E000000000082D800002000000003180000091
+:1017F0000000001091DE0000000000082C80000CAA
+:10180000000000082D00000C000000082D800004DE
+:1018100000000010205300000000001091DE0000C6
+:10182000000000188000FEBD000000188000FEBC13
+:10183000000000002A00000000000010001F00004F
+:101840000000000C6BD70001000000000F008000BA
+:10185000000000080F80000700000018800000153D
+:10186000000000000502000000000008220000093E
+:1018700000000000286D00000000000029000000AA
+:101880000000000F6568001000000003F66C940073
+:1018900000000010B972A0040000000C73E70019EA
+:1018A0000000000C21420004000000003BF6000094
+:1018B0000000000C298000000000001020530000F0
+:1018C00000000008220000080000000C6142000433
+:1018D00000000018000A0000000000002A000000BC
+:1018E00000000010001F00000000000C6BD700017A
+:1018F0000000000F0F470007000000080F800008DD
+:101900000000000C2980000000000010205300009F
+:10191000000000188000FE9F0000001091DE000013
+:10192000000000002FD5000000000010001F000084
+:101930000000000C6BD700010000000033510000D4
+:10194000000000002A00000000000010B1C60029BD
+:101950000000000F0F500007000000000A600000A8
+:10196000000000000AE100000000000F4B620008C8
+:10197000000000090B1600FF0000000F4C62001071
+:10198000000000000D620000000000090D1A00FFB9
+:1019900000000010075000030000000C0D1A0008A2
+:1019A0000000000C0B160008000000000CC6000030
+:1019B000000000000B8000000000000006980000FE
+:1019C00000000010205600000000000C2BD7000182
+:1019D000000000080F8000030000001006C2000491
+:1019E0000000000C29000002000000102642000246
+:1019F0000000000C29520003000000082200000132
+:101A000000000010001F00000000000C6BD7000158
+:101A100000000000231B00000000000027111A0036
+:101A200000000000669000000000000C2952000039
+:101A300000000010B197320C0000000C298000005B
+:101A40000000000006980000000000102053000075
+:101A50000000000C295200030000000022C58C0089
+:101A600000000010001F00000000000C6BD70001F8
+:101A700000000010205600000000000C2BD70001D1
+:101A8000000000080F800003000000188000FFEF36
+:101A900000000010B1C8001300000010B1C6000320
+:101AA0000000000C298000000000001020530000FE
+:101AB0000000000C295200000000000C2952000315
+:101AC0000000001006C200020000000C29520002B3
+:101AD0000000000022C58C00000000002765000007
+:101AE0000000000026E400000000000822000016AC
+:101AF00000000010B1C600030000000023480000F1
+:101B000000000010B1800005000000002348000024
+:101B10000000000C298000000000000F0F5000079B
+:101B200000000018800000120000000822000016CB
+:101B30000000000C298000000000000030140000AC
+:101B40000000000030950000000000100750000366
+:101B5000000000090B1600FF000000090D1A00FF2D
+:101B60000000000F31160008000000003162340050
+:101B700000000003F162300000000010205F000050
+:101B8000000000002C510000000000092CD1007F53
+:101B9000000000082CD90000000000082D00000003
+:101BA000000000082D80000C000000000000000074
+:101BB0000000001091DE00000000001005C20003CC
+:101BC0000000000033000000000000080F80000744
+:101BD000000000102053000000000010001F000053
+:101BE0000000000C6BD70001000000188000FE44CC
+:101BF000000000002FD50000000000002A000000B7
+:101C00000000000F0F50000700000010B1C60030A8
+:101C10000000000F4742000800000009070E000FF7
+:101C200000000008070E000800000010001F000060
+:101C30000000000C6BD70001000000080900000143
+:101C40000000000709121C0000000003CBCA92002C
+:101C5000000000000B97A2000000000742171C00C4
+:101C6000000000000B0400000000000F0A840003C5
+:101C7000000000000A959C00000000004A009A0045
+:101C80000000000882120001000000010C1708008B
+:101C9000000000000C978C000000000002180000FB
+:101CA000000000080D00FFFF000000080F80000684
+:101CB0000000000C290000000000001006C2000413
+:101CC0000000000C29520002000000102642000211
+:101CD0000000000C2952000300000008220000014F
+:101CE00000000010001F00000000000C6BD7000176
+:101CF00000000010B197320D00000000231B00000F
+:101D0000000000002711080000000000669000009D
+:101D10000000000C298000000000000002180000F4
+:101D200000000010205300000000000C29520003A6
+:101D30000000000022C5360000000010001F000057
+:101D40000000000C6BD70001000000080F800006A7
+:101D5000000000188000FFF200000000231B0000BC
+:101D6000000000002711080000000000669000003D
+:101D700000000010B1C8000B0000000C298000001A
+:101D800000000010205300000000000C2952000049
+:101D90000000000C295200030000001006C20002DF
+:101DA0000000000C295200020000000022C58C0037
+:101DB00000000000276500000000000026E400008D
+:101DC0000000000023480000000000082200001767
+:101DD0000000000C2980000000000010001F00001F
+:101DE0000000000C6BD70001000000102053000021
+:081DF000000000188000FE0352
+:00000001FF
+/*
+ * This file contains firmware data derived from proprietary unpublished
+ * source code, Copyright (c) 2004 - 2009 Broadcom Corporation.
+ *
+ * Permission is hereby granted for the distribution of this firmware data
+ * in hexadecimal or equivalent format, provided this copyright notice is
+ * accompanying it.
+ */
diff --git a/firmware/myricom/lanai.bin.ihex b/firmware/myricom/lanai.bin.ihex
new file mode 100644 (file)
index 0000000..bf47f4c
--- /dev/null
@@ -0,0 +1,4771 @@
+:100000004FF8F20EFE00C290000007880008E001E1
+:10001000014C9793FFFCE000001400000001000079
+:1000200000009293FFFC02900008F7062A6C9713D9
+:10003000FFFCF7062C109713FFFC07880008E00070
+:1000400015489793FFFCF702053C9713FFFCF70256
+:1000500000039713FFFCF70629E09713FFFC0788BE
+:100060000008E000161C9793FFFCF7062B849713FB
+:10007000FFFCF7062C1C9713FFFC07880008E00024
+:1000800015489793FFFCF7020ABC9713FFFCF70291
+:1000900000029713FFFCF7062AF89713FFFC078866
+:1000A0000008E000161C9793FFFC8796FFFC8296E1
+:1000B000FFF802140000013C0000000000019293D0
+:1000C000FFFC02900008F7044A9C85160000203AC5
+:1000D0000001EE00010100000001F70475EC0000D2
+:1000E0000001203A0000E600010000000001F704D2
+:1000F00075F000000001203A0000E600012D00002C
+:100100000001F7042D38F6862C2806380001F60584
+:100110002D3877390002F482001220320044E600C4
+:1001200001E0B4BA6802E00001E0F0052D38F70400
+:100130003B64F5844F54F7057A10202E0000E6004A
+:100140000199972A002095AA001CF6064A9826AC29
+:10015000000177350001C738680077390002073899
+:10016000000CA4BA60020000000194AA0010C73875
+:100170006000873A000400000001972A0014F70489
+:100180004A9C0000000127380001C02E7200D700F1
+:100190000A01E00001D0F7057A1895AA001CF606BE
+:1001A0004A9806AC000177350001C73868007739F6
+:1001B00000020738000CA4BA60020000000194AAF3
+:1001C0000010C7386000873A0004F0057A18972AB3
+:1001D0000014F50579D807880008E00001F497932A
+:1001E000FFFC8796FFFC8296FFF802140004013C96
+:1001F0000000000000019293FFFC02900008221012
+:100200000038F7047A10F6843B6400000001C03A1D
+:100210006A00470C0001D7000A70203A0000E6008F
+:10022000024C00000001F70475EC00000001203AC8
+:100230000000E600024C00000001F70475F0000029
+:100240000001203A0000E6000285F4820000F70475
+:100250002D38F6862C2806380001F6052D3877391A
+:100260000002F302001220320044E6000274B33AA6
+:100270006802F0052D38F3062A6CF3052C10E00017
+:100280000528F0057A18F38479D8F6844AA0231457
+:1002900000209316FFC4841E00109696FFD4F70426
+:1002A0004A9C9416FFE0851E0014C0367200EC00D4
+:1002B000036C9516FFE477350001C738680077397D
+:1002C0000002F3064A98C6B8300006B4000CC58494
+:1002D00000008736000000000001C03A4200E6003E
+:1002E00002FCC62400008736000400000001C03A6A
+:1002F0005200E600030020320000F6020001203226
+:100300000000E600030D00000001F58200008636C3
+:1003100000008716FFE000000001C0327200E2001A
+:100320000348F5020000C0327200E6000350202AA4
+:10033000000086B600048716FFE400000001C03606
+:100340007200E2000351202A0000F5020001202A79
+:100350000000E6000361202E0000F5820001202E3F
+:100360000000E600037020260000F4820001202631
+:100370000000E60003A5F60200018716FFD4F3068D
+:100380004A9876B90001C6B4700076B50002C6B4CA
+:10039000300006B4001486B600009716FFD8E000BF
+:1003A00004189696FFDC2714002C9713FFFC831685
+:1003B000FFC4000000019313FFFCF3064A98931357
+:1003C000FFFC9396FFCC07880008E001256897930F
+:1003D000FFFC8396FFCC20220000E6000415F60205
+:1003E00000018716FFD4F3064A9876B90001C6B417
+:1003F000700076B50002C6B4300006B4001486B6AC
+:1004000000009716FFD89696FFDCF7054AA0E0009B
+:10041000041C20320000F602000020320000E6003A
+:10042000042CF4820001E0000484F482000086962B
+:10043000FFD80000000177350002C738680077391F
+:100440000002F68642C8A63A6802C73868007539C5
+:10045000001E7528FFE505B8000286AE00000738CB
+:1004600000049716FFECC63057C07630FFF09616A2
+:10047000FFF475AD001E75ACFFE5C6B45FC076B481
+:10048000FFF09696FFF020260000E6000525F30613
+:1004900029E08696FFF0F5820000C7346800C49C0E
+:1004A0007200C02E6A00EC0004F0C5240000C62CC7
+:1004B00000008716FFEC00000001A6B2700205AC38
+:1004C0000001C73070007739001E7738FFE5C6B4E9
+:1004D00077C076B4FFF0F6AB280005280002871637
+:1004E000FFF000000001C02E7200EC0004B10630E5
+:1004F0000002F3020003F30576F48716FFF0869EF0
+:100500000004C7387000C7384800C6B470008716AA
+:10051000FFF406B400209702FF6C9482FF5096828D
+:10052000FF58F30629E0F3052C108796FFFC82960E
+:10053000FFF802140000013C00000000000192934B
+:10054000FFFC02900008F7047A1800000001203A2E
+:100550000000E60005CD00000001F7047A10F684E3
+:100560003B6400000001C03A6A00470C0001203AD9
+:100570000000E60005CDF5864A98F60479D8F684A1
+:100580004F540000000196B2001C06B400017735FC
+:100590000001C7386800773900020738000CA53A17
+:1005A00058020000000195320010C7385800873A01
+:1005B0000004F0057A189732001407880008E0005C
+:1005C00001F49793FFFCE00005FC00000001F70434
+:1005D0002D38F6862C2806380001F6052D38773997
+:1005E0000002F502001220320044E60005F4B53A9C
+:1005F0006802F0052D38F5062A6CF5052C10879653
+:10060000FFFC8296FFF802140000013C000000008D
+:1006100000019293FFFC0290000885960000F70409
+:1006200075EC852E0020203A0000E60006CCF5058A
+:100630007A08F70475F000000001203A0000E60097
+:1006400006CC00000001F7047A08F6843B64000041
+:100650000001C03A6A00470C0001D7000A70203A36
+:100660000000E60006CC00000001872E001CF68486
+:100670004F54F7057A00C7347200203A0000EE00AC
+:10068000068DF5020001E0000690F50579F8F08589
+:1006900079F8F6847A00C7387000C6B47000F704A1
+:1006A00079F8F68579E8C7387000C6347000F70429
+:1006B0004A9C00000001C0367200EC0006CCF60532
+:1006C00079F020360000EC0006F800000001F70485
+:1006D0002D38F6862C2806380001F6052D38773996
+:1006E0000002F502001320320044E6000738B53A54
+:1006F0006802E0000738F0052D38F7044A9C000036
+:100700000001C0327200EE00071900000001F7047A
+:100710004A9CE0000728F70579F020320000EC0041
+:10072000072800000001F08579F0F58579E0078859
+:100730000008E000074C9793FFFC8796FFFC829629
+:10074000FFF802140004013C000000000001929335
+:10075000FFFC0290000822100038F70475EC00003E
+:100760000001203A0000E60007A400000001F704A1
+:1007700075F000000001203A0000E60007A4000028
+:100780000001F7047A08F6843B6400000001C03AD7
+:100790006A00470C0001D7000A70203A0000E6000A
+:1007A00007D5F4020000F7042D38F6862C28063809
+:1007B0000001F6052D3877390002F30200132032CC
+:1007C0000044E60007CCB33A6802F0052D38E0009B
+:1007D0000AA4F3062B84F68479E8F6064A9877355E
+:1007E0000001C738680077390002F68479E00738DD
+:1007F000000CA33A6002C3B4000093360010C7385F
+:100800006000873A0004231400209316FFC4973633
+:100810000014849E0010F6844AA09496FFE09696F9
+:10082000FFD4851E0014F7044A9C00000001C03666
+:100830007200EC0008EC9516FFE477350001C7382C
+:10084000680077390002C6B8600006B4000CC584A1
+:1008500000008736000000000001C03A4A00E600B0
+:10086000087CC62000008736000400000001C03A62
+:100870005200E600088020320000F602000120321B
+:100880000000E600088D00000001F58200008636B9
+:1008900000008716FFE000000001C0327200E20095
+:1008A00008C8F5020000C0327200E60008D0202A15
+:1008B000000086B600048716FFE400000001C03681
+:1008C0007200E20008D1202A0000F5020001202A6F
+:1008D0000000E60008E1202E0000F5820001202E35
+:1008E0000000E60008F020220000F40200012022AF
+:1008F0000000E6000925F60200018716FFD4F30682
+:100900004A9876B90001C6B4700076B50002C6B444
+:10091000300006B4001486B600009716FFD8E00039
+:1009200009989696FFDC2714002C9713FFFC83167A
+:10093000FFC4000000019313FFFCF3064A989313D1
+:10094000FFFC9396FFCC07880008E0012568979389
+:10095000FFFC8396FFCC20220000E6000995F602FA
+:1009600000018716FFD4F3064A9876B90001C6B491
+:10097000700076B50002C6B4300006B4001486B626
+:1009800000009716FFD89696FFDCF7054AA0E00016
+:10099000099C20320000F602000020320000E60030
+:1009A00009ACF4820001E0000A04F482000086969B
+:1009B000FFD80000000177350002C738680077399A
+:1009C0000002F68642C8A63A6802C7386800753940
+:1009D000001E7528FFE505B8000286AE0000073846
+:1009E00000049716FFECC63057C07630FFF096161D
+:1009F000FFF475AD001E75ACFFE5C6B45FC076B4FC
+:100A0000FFF09696FFF020260000E6000AA5F30608
+:100A10002AF88696FFF0F5820000C7346800C49C6F
+:100A20007200C02E6A00EC000A70C5240000C62CBB
+:100A300000008716FFEC00000001A6B2700205ACB2
+:100A40000001C73070007739001E7738FFE5C6B463
+:100A500077C076B4FFF0F6AB2800052800028716B1
+:100A6000FFF000000001C02E7200EC000A310630D9
+:100A70000002F3020002F30576F48716FFF0869E6B
+:100A80000004C7387000C7384800C6B47000871625
+:100A9000FFF406B400209702FF6C9482FF50968208
+:100AA000FF58F3062AF8F3052C1C8796FFFC829664
+:100AB000FFF802140000013C0000000000019293C6
+:100AC000FFFC02900008F68479E8F70479F800004A
+:100AD0000001C6B47000F7047A20F68579E807387B
+:100AE0000001F7057A20F70479F0F6047A20C03681
+:100AF0007200E6000B2CF6862C28F7042D38000037
+:100B0000000106380001F6052D3877390002F5821C
+:100B1000001320320044E6000B20B5BA6802F0054D
+:100B20002D38F5862B84E0000B38F5852C1C0788C2
+:100B30000008E000074C9793FFFC8796FFFC829625
+:100B4000FFF802140000013C000000000001929335
+:100B5000FFFC02900008F7062C109713FFFCF70625
+:100B600029E09713FFFC07880008E00014F497932E
+:100B7000FFFCF7062C109713FFFCF7062A6C97135F
+:100B8000FFFC07880008E00014F49793FFFCF706C9
+:100B90002C1C9713FFFCF7062AF89713FFFC078815
+:100BA0000008E00014F49793FFFCF7062C1C971341
+:100BB000FFFCF7062B849713FFFC07880008E00072
+:100BC00014F49793FFFC8796FFFC8296FFF80214BB
+:100BD0000000013C0000000000019293FFFC029025
+:100BE0000008F0052D38F0052D3C8796FFFC829615
+:100BF000FFF802140000013C000000000001929385
+:100C0000FFFC0290000822100018FF852EDCF7067A
+:100C10000C3EC77C7400203A0000E60014299716A9
+:100C2000FFF44738FFFBF6846F50CFB8000083967F
+:100C3000FFF4F702003FC39C6D80C71C7400203A8C
+:100C4000003FE20012609396FFF477390002F682CB
+:100C50000C5CA6B6700200000001C1340000000068
+:100C600012600000126000000D6800000D680000B6
+:100C70000D5C00000D5C00000D6800000D680000B8
+:100C80001250000012500000123C0000123C000004
+:100C90000DE000000DE00000123C0000123C0000DE
+:100CA0000DE800000DF400000E0000000E20000012
+:100CB0000E4000000E6000000E8000000EA000003C
+:100CC0000EC000000EC800000ED000001228000068
+:100CD0000ED800000EF400000F10000012280000D3
+:100CE0000F1800000F1800000F2400000F24000050
+:100CF0000F4400000F4400000F6400000F64000068
+:100D00000F8400000F8400000F8C00000F8C000087
+:100D10000F9400000F9400000FB000000FB000000F
+:100D20000FB800000FD800000FF80000102C0000D2
+:100D3000106000001094000010C8000010FC0000BB
+:100D400011300000114C0000116800001214000066
+:100D50001184000011B4000011E400001214F382A9
+:100D60000006E00012549393FFFCF60200052032C7
+:100D70000014E6000DB527000010203A0001E20043
+:100D80000DB5F7062DCCF6842ECC0000000175B50C
+:100D90000002B62E700206B40001F6852ECC860243
+:100DA000FF34F7062E4C2036001FE2000DB5B62E9C
+:100DB0007002F0052ECCF7042D5800000001873A90
+:100DC000000000000001873A0018000000010788B9
+:100DD0000008C13800009793FFFCE000126000009B
+:100DE0000001E0001240F3820006F382000BE000F5
+:100DF00012549393FFFCF3820007E0001254939384
+:100E0000FFFCF382000B9393FFFC07880008E000CF
+:100E100015849793FFFCF3820005E000125493932E
+:100E2000FFFCF38200079393FFFC07880008E000B3
+:100E300015849793FFFCF3820005E000125493930E
+:100E4000FFFCF382000B9393FFFC07880008E0008F
+:100E500015849793FFFCF3820006E00012549393ED
+:100E6000FFFCF38200079393FFFC07880008E00073
+:100E700015849793FFFCF3820006E00012549393CD
+:100E8000FFFCF382000B9393FFFC07880008E0004F
+:100E900015849793FFFCF3820005E00012549393AE
+:100EA000FFFCF38200079393FFFC07880008E00033
+:100EB00015849793FFFCF3820005E000125493938E
+:100EC000FFFCE0001240F382000BE0001240F382CE
+:100ED0000007E000122CF382000BF382000B9393C7
+:100EE000FFFC07880008E00015849793FFFCE000F2
+:100EF0001240F3820006F38200079393FFFC0788F9
+:100F00000008E00015849793FFFCE0001240F38294
+:100F10000006E000122CF382000BF3820014E000C4
+:100F200012549393FFFCF38200149393FFFC078801
+:100F30000008E00015849793FFFCF3820005E000B1
+:100F400012549393FFFCF38200149393FFFC0788E1
+:100F50000008E00015849793FFFCF3820006E00090
+:100F600012549393FFFCF38200149393FFFC0788C1
+:100F70000008E00015849793FFFCF3820005E00071
+:100F800012549393FFFCE0001240F3820014E0003F
+:100F9000122CF3820014F38200149393FFFC078851
+:100FA0000008E00015849793FFFCE0001240F382F4
+:100FB0000006E000122CF3820014F38200149393D5
+:100FC000FFFC07880008E00015849793FFFCF3827C
+:100FD000000BE00012549393FFFCF38200149393F0
+:100FE000FFFC07880008E00015849793FFFCF3825C
+:100FF0000007E00012549393FFFCF38200149393D4
+:10100000FFFC07880008E00015849793FFFCF3823B
+:10101000000B9393FFFC07880008E000158497936A
+:10102000FFFCF3820005E00012549393FFFCF3826F
+:1010300000149393FFFC07880008E0001584979341
+:10104000FFFCF38200079393FFFC07880008E00091
+:1010500015849793FFFCF3820005E00012549393EC
+:10106000FFFCF38200149393FFFC07880008E00064
+:1010700015849793FFFCF382000B9393FFFC078882
+:101080000008E00015849793FFFCF3820006E0005F
+:1010900012549393FFFCF38200149393FFFC078890
+:1010A0000008E00015849793FFFCF38200079393F8
+:1010B000FFFC07880008E00015849793FFFCF3828B
+:1010C0000006E00012549393FFFCF3820014939304
+:1010D000FFFC07880008E00015849793FFFCF3826B
+:1010E000000B9393FFFC07880008E000158497939A
+:1010F000FFFCF3820005E00012549393FFFCF3829F
+:1011000000149393FFFC07880008E0001584979370
+:10111000FFFCF38200079393FFFC07880008E000C0
+:1011200015849793FFFCF3820005E000125493931B
+:10113000FFFCF38200149393FFFC07880008E00093
+:1011400015849793FFFCE0001240F382000BF382BA
+:1011500000149393FFFC07880008E0001584979320
+:10116000FFFCE0001240F3820007F3820014939327
+:10117000FFFC07880008E00015849793FFFCE0005F
+:10118000122CF382000BF38200149393FFFC078868
+:101190000008E00015849793FFFCF382000B939303
+:1011A000FFFC07880008E00015849793FFFCE0002F
+:1011B0001240F3820006F38200149393FFFC078829
+:1011C0000008E00015849793FFFCF38200079393D7
+:1011D000FFFC07880008E00015849793FFFCE000FF
+:1011E0001240F3820006F38200149393FFFC0788F9
+:1011F0000008E00015849793FFFCE000122CF382B6
+:10120000000BF7043528F682000107380008E000DB
+:1012100013CCF7053544F38200149393FFFC078841
+:101220000008E00015849793FFFCF3820007939376
+:10123000FFFC07880008E00015849793FFFCF38209
+:1012400000059393FFFC07880008E000158497933E
+:10125000FFFC9013FFFC07880008E00015849793BB
+:10126000FFFC8396FFF400000001779C0014703EA1
+:10127000FFE1E600129DF7060400F7046F5C000032
+:10128000000107380001F7056F5CF7046F5CE000B0
+:101290000000000000018396FFF4F7060400C01E62
+:1012A0007400E600142900000001F7042ED0F68433
+:1012B00035240738000120360000E6001405F70544
+:1012C0002ED0F704E01400000001203A0000E600F0
+:1012D0001405F6820000F685E014F7042ED8C53414
+:1012E000000007380001F7052ED8202A0002EE0082
+:1012F00013CCF6820000F684352800000001873602
+:10130000000000000001203A0002E60013A005B42E
+:1013100000089593FFFC9516FFE89596FFE49696D6
+:10132000FFE007880008E00016649793FFFC85162D
+:10133000FFE88596FFE48696FFE020220000E600A5
+:101340001390F70200008636000C000000012032E6
+:10135000000FE20013750000000187360014000042
+:101360000001073800019736001487360014E000AA
+:101370001390F702000076B10002C6B46000773522
+:101380000005C7386A00C738600007380010C72C4E
+:101390007000203A0000E6001200F705352CF684B4
+:1013A0003528F7046F4C00000001C0367200E600DB
+:1013B00013C007341494F3846F44E00013C4F3851E
+:1013C0003528F7053528E00012E805280001203609
+:1013D0000000E6001429F6862C28F7042D38F005C5
+:1013E000352406380001F6052D3877390002F382DE
+:1013F000000D20320044E6001428B3BA6802E00071
+:101400001428F0052D38F704E01000000001203A00
+:101410000000E6001429F7020000F705E010078835
+:101420000008E00102989793FFFCF4842D38F7043C
+:101430002D3C00000001C03A4A00E6000C09F68687
+:101440002C2877390002A53A680200000001202A02
+:101450000014E600149127280015203A0001E2004C
+:101460001491F7062DCCF6842ECC8602FF3475B588
+:101470000002B52E700206B40001F6852ECCF706E8
+:101480002E4C2036001FE2001491B62E7002F0059B
+:101490002ECCF7062D4476A90002A7367002000074
+:1014A0000001873A000000000001C6B470008736D2
+:1014B00000049496FFEC07880008C1380000979359
+:1014C000FFFCF7042D3C8496FFEC07380001203A1E
+:1014D0000044E600142CF7052D3CE000142CF00528
+:1014E0002D3C8796FFFC8296FFF802140000013C19
+:1014F0000000000000019293FFFC02900008841697
+:101500000000F702000085960004203A0021EE005A
+:10151000153495A20000F606233807200084C6A0E3
+:101520000000963A000427380004C03A6A00EC0034
+:101530001520000000018796FFFC8296FFF8021438
+:101540000008013C0000000000019293FFFC0290A3
+:1015500000088696000087160004F6042D40973692
+:1015600000009736000407300001F7052D4096363D
+:1015700000088796FFFC8296FFF802140008013CE1
+:101580000000000000019293FFFC02900008851605
+:10159000000000000001202A0014E60015D92728C9
+:1015A0000015203A0001E20015D9F7062DCCF6848B
+:1015B0002ECC8602FF3475B50002B52E700206B43B
+:1015C0000001F6852ECCF7062E4C2036001FE200D7
+:1015D00015D9B62E7002F0052ECCF6862D4477294B
+:1015E0000002A6BA68020000000186B600000000F2
+:1015F0000001C7386800873A00040000000107882E
+:101600000008C13800009793FFFC8796FFFC829684
+:10161000FFF802140004013C000000000001929356
+:10162000FFFC029000088716000086960004F6066C
+:101630002D4476B5000285BA000000000001B5B661
+:101640006002C6B47000859600080000000195B6DF
+:1016500000048796FFFC8296FFF80214000C013C00
+:101660000000000000019293FFFC02900008861623
+:101670000000000000018732000400000001203A51
+:10168000000F86B20000C5380000EE0016B4C5B4E5
+:1016900000002036000FEE0016B400000001203AD2
+:1016A0000000EC0016B50000000120360000EC0040
+:1016B00016D0000000018732000C0000000107383E
+:1016C00000019732000C8732000CE00016D8F402BB
+:1016D0000000C02A5A00440C00018796FFFC829645
+:1016E000FFF802140004013C0000000000010000AB
+:1016F00000009293FFFC02900008F7062EE097137B
+:10170000FFFCF70632D49713FFFC07880008E000BF
+:1017100015489793FFFCF702182C9713FFFCF782EC
+:1017200000099793FFFCF7062EE09713FFFC07884C
+:101730000008E000161C9793FFFCF702345897133B
+:10174000FFFCF702000C9713FFFCF7062F6C9713B2
+:10175000FFFC07880008E000161C9793FFFCF702C7
+:101760003F949713FFFCF782000B9793FFFCF7065B
+:101770002FF89713FFFC07880008E000161C9793CA
+:10178000FFFCF7023B849713FFFCF782000B979353
+:10179000FFFCF70632289713FFFC07880008E000DB
+:1017A000161C9793FFFCF70226E49713FFFCF70241
+:1017B00000139713FFFCF70630849713FFFC07888C
+:1017C0000008E000161C9793FFFCF70226A0971371
+:1017D000FFFCF70200119713FFFCF7063110971377
+:1017E000FFFC07880008E000161C9793FFFCF70237
+:1017F000182C9713FFFCF78200099793FFFCF7065C
+:10180000319C9713FFFC07880008E000161C979393
+:10181000FFFCF0057A78F00532E88796FFFC8296A7
+:10182000FFF802140000013C000000000001929348
+:10183000FFFC0290000822100050F70471C800005D
+:101840000001203A0000E6001855F68671C4E00059
+:10185000186CF6020000F70471D40000000177391B
+:101860000002C7386800863A001800000001F6053B
+:1018700032C486B2000807018000C5B47400F58543
+:1018800032D087320018F6866F4477390002A73AC3
+:101890006802202E0000F70532C0073809D886B24A
+:1018A0000004F70532CCE6001941F68532C8F7048A
+:1018B0007198F6847A782738000120360000E60017
+:1018C0001910F7057198F70476FC00000001203A22
+:1018D0000000E60018E8F3020011F30632D4F30525
+:1018E00076FCE00018F8F7020001F30576F8F3063D
+:1018F00032D4F3057700F7020000203A0000E6003A
+:101900001914F3020001F3063110E000268CF305F0
+:1019100032D4F3020001F3057A78F3063084F3053C
+:1019200032D4F30432C4000000019313FFFC078893
+:101930000008E00006109793FFFCE000268C0000F2
+:101940000001F3020000202E0000E6001CB99316EF
+:10195000FFE4873200088696FFE4C3040000C03A23
+:101960003200E6001984203600008732000C0000A7
+:101970000001C03A3200E600198420360000F682E9
+:10198000000120360000E6001CB8F3020000F70456
+:1019900032C09316FFACF58432C4863A142803B8DB
+:1019A0001420042C000886BA142400000001C03260
+:1019B0006A00EC001A709616FFEC77310001C73808
+:1019C000600077390002C63838000630000C86B255
+:1019D0000000872E00088516FFACC0367200E600B6
+:1019E0001A00C484000086B20004872E000C000098
+:1019F0000001C0367200E6001A04202A0000F50239
+:101A00000001202A0000E6001A1100000001F48203
+:101A1000000086B200008722000000000001C036EE
+:101A20007200E2001A4CF5820000C0367200E60037
+:101A30001A54202E000086B2000487220004000001
+:101A40000001C0367200E2001A55202E0000F58217
+:101A50000001202E0000E6001A6520260000F48216
+:101A6000000120260000E6001A70F3020001931620
+:101A7000FFAC8316FFAC00000001201A0000E60056
+:101A80001AB1F60200018716FFEC0000000176B9DA
+:101A90000001C6B4700076B50002C6B4380006B4C2
+:101AA000001486B600009716FFF0E0001B1896960B
+:101AB000FFF4271400149713FFFC9413FFFC939377
+:101AC000FFFC9396FFBC07880008E0012568979308
+:101AD000FFFC8396FFBC20220000E6001B15F602E7
+:101AE00000018716FFEC0000000176B90001C6B4C2
+:101AF000700076B50002C6B4380006B4001486B68D
+:101B000000009716FFF09696FFF4971E0008E0007D
+:101B10001B1C20320000F602000020320000E6000C
+:101B20001CB8F3020000F60432C09316FFAC86B274
+:101B3000142803B014200430148C873214240000BD
+:101B40000001C0367200EC001C049696FFEC77355D
+:101B50000001C738680077390002C5B8380005AC05
+:101B6000000C86AE00008732148C8516FFACC036A0
+:101B70007200E6001B94C484000086AE0004873225
+:101B8000149000000001C0367200E6001B98202A65
+:101B90000000F5020001202A0000E6001BA500005D
+:101BA0000001F482000086AE0000872200000000E1
+:101BB0000001C0367200E2001BE0F6020000C036F1
+:101BC0007200E6001BE82032000086AE0004872287
+:101BD000000400000001C0367200E2001BE9203260
+:101BE0000000F602000120320000E6001BF920266A
+:101BF0000000F482000120260000E6001C04F3022D
+:101C000000019316FFAC8316FFAC00000001201A00
+:101C10000000E6001C45F60200018716FFEC0000FC
+:101C2000000176B90001C6B4700076B50002C6B4F2
+:101C3000380006B4001486B600009716FFF0E000E6
+:101C40001CAC9696FFF4271400149713FFFC941312
+:101C5000FFFC9393FFFC9396FFBC07880008E0010C
+:101C600025689793FFFC8396FFBC20220000E600C6
+:101C70001CA9F60200018716FFEC0000000176B9EE
+:101C80000001C6B4700076B50002C6B4380006B4D0
+:101C9000001486B600009716FFF09696FFF4971E84
+:101CA0000008E0001CB020320000F60200002032E4
+:101CB0000000E6001E15F3020001F68432C00000A9
+:101CC000000185B60EF486360EF8202E0010E200D4
+:101CD0001CDC20320010E2001CF9000000018736F5
+:101CE0000F00000000010738000197360F0087360B
+:101CF0000F00E0001D24F702000007300001C03A89
+:101D00005A00E6001D1DF682000020320010E60099
+:101D10001D20202E0000E6001D24C7340000F6829E
+:101D20000001C7340000203A0000E6001E14F30250
+:101D30000001F30432CC000000019316FFDC931382
+:101D4000FFFC07880008E00043689793FFFC20220F
+:101D50000000E6001DFCF30200008316FFDC00001B
+:101D60000001861A00000000000120320010E2008D
+:101D70001D9176B10002871A000C0000000107389F
+:101D80000001971A000C871A000CE0001DFCF302FA
+:101D90000000F302004C9313FFFCC6B460007735DB
+:101DA0000004C7386A008316FFDCC7386000C738F4
+:101DB0003000073800109713FFFCF3067A289313BE
+:101DC000FFFC9616FFB407880008E00126F89793F9
+:101DD000FFFC8616FFB4000000010630000120322F
+:101DE0000011E6001DEC00000001F6020000831661
+:101DF000FFDC00000001961A0000F30200019316B8
+:101E0000FFD48316FFD400000001201A0000E60072
+:101E10001E18F30200019316FFE48316FFE400008E
+:101E20000001201A0000E6001F35F6820CABF70413
+:101E300032B48316FFD407380001F70532B4F70433
+:101E400032B4201A0000E6001E7000000001F70402
+:101E500032C0F306E030C03A3200E6001E700000E7
+:101E60000001F70432E80000000107380001F7051F
+:101E700032E8F70471C400000001203A0000E600D7
+:101E80001EADF6862C28F7042D3800000001063818
+:101E90000001F6052D3877390002F302000A2032DE
+:101EA0000044E6001EACB33A6802F0052D38F70492
+:101EB00071D4F68471CC07380001C03A6A00E6009C
+:101EC0001EC8F70571D4F00571D4F68471D4F704F7
+:101ED00071D0F00571C4C0367200470C0001F68461
+:101EE00032D00000000120360000E60025D9F705B9
+:101EF00071C8F704719800000001203A0000E60064
+:101F0000257900000001F70475EC00000001203A7B
+:101F10000000E600257800000001F70475F00000DD
+:101F20000001203A0000E600257800000001E000F2
+:101F300025DCF306319CF00532E8F70432C0F604E4
+:101F40006F5496BA000420320000E6001F60F302CE
+:101F5000000CF3020001F3056F54E0001F68F70264
+:101F60000001F3056F58F7020000203A0000E60078
+:101F70001F7CF3062F6CE000268CF30532D4F58429
+:101F80007A7024940010202E0001E6002284F5854A
+:101F90007AA0F7020001F60432C8F7057A70F70458
+:101FA00032C4F68432C0F6057A2C9002FF8090028B
+:101FB000FF38F5847A28073800249582FF3C970281
+:101FC000FF409602FF448736141000000001C73816
+:101FD0006000973614108736141800000001073887
+:101FE00000019736141887361418F0056F50F7045F
+:101FF00032B89596FFECC7386000F70532B8F704A1
+:1020000032BCF3062FF807380001F70532BCF7049D
+:1020100032BCF30532D4F7060C3EC07E7400E600F5
+:10202000203400000001C07E7400E600202500007E
+:102030000001F7060C3EC77C7400203A0010E60051
+:10204000268C00000001F70432E4FF820010F584C2
+:102050006F5807380001202E0021E2002090F7057C
+:1020600032E4F7042D38F6862C2806380001F605F0
+:102070002D387739000220320044E6002084B5BABA
+:102080006802F0052D38F3020022E0002094F305E9
+:102090006F58F0056F54F58432C000000001902E97
+:1020A0000004872E000000000001203A0002E60034
+:1020B00021C0000000018702FF38032C0EF49316A4
+:1020C000FFCCF7057A689313FFFC9596FFB8078855
+:1020D0000008E00043A09793FFFC8596FFB82022FC
+:1020E0000000E600217C00000001862E0EF80000B2
+:1020F000000120320010E2002119F302004C872E6B
+:102100000F000000000107380001972E0F00872EF6
+:102110000F00E000217C000000019313FFFCF30698
+:102120007A289313FFFC76B10002C6B460007735BD
+:102130000004C7386A008316FFCCC7386000C73870
+:102140003000073800109713FFFC9596FFB89616DD
+:10215000FFB407880008E00126F89793FFFC861675
+:10216000FFB48596FFB80630000120320011E6006A
+:10217000217800000001F6020000962E0EF8F70408
+:1021800032C0F306E030C03A3200E60021C0000061
+:102190000001F704E0180000000177B8001E703E4F
+:1021A000FFE1E60021C1000000010F814000F704BB
+:1021B00079C80000000107380001F70579C8F70465
+:1021C00079C8F70471C400000001203A0000E6005D
+:1021D00021FDF6862C28F7042D3800000001063872
+:1021E0000001F6052D3877390002F302000A20328B
+:1021F0000044E60021FCB33A6802F0052D38F704EC
+:1022000071D4F68471CC07380001C03A6A00E60048
+:102210002218F70571D4F00571D4F68471D4F7044F
+:1022200071D0F00571C4C0367200470C0001F6840D
+:1022300032D00000000120360000E60025D9F70565
+:1022400071C8F704719800000001203A0000E60010
+:10225000257900000001F70475EC00000001203A28
+:102260000000E600257800000001F70475F000008A
+:102270000001203A0000E600257800000001E0009F
+:1022800025DCF306319CF0057A889002FF38F005D2
+:102290006F509002FF80F70432C4F3063228F30532
+:1022A00032D4F60432C8F6847A2CF50200000738DE
+:1022B0000024F7057A9820320000E60022D5F605C2
+:1022C0007A90C02A5A00E6002620C0326A00EE004A
+:1022D000262100000001F68432C00000000187368C
+:1022E000141000000001C7386000973614108736BC
+:1022F00014180000000107380001973614188736BB
+:102300001418F70432B800000001C7386000F70560
+:1023100032B8F70432BC0000000107380001F705AD
+:1023200032BCF70432BC20320000E6002345000036
+:102330000001F70432E0F5057A7007380001E0008B
+:102340002348F70532E0F5057A70F5846F580000F0
+:102350000001202E0021E200238CF6862C28F704B1
+:102360002D380000000106380001F6052D387739B8
+:10237000000220320044E6002380B5BA6802F0056E
+:102380002D38F3020022E0002390F3056F58F0058A
+:102390006F54F58432C000000001902E0004872E97
+:1023A000000000000001203A0002E60024BC00000A
+:1023B00000018702FF38032C0EF49316FFC4F705C3
+:1023C0007A689313FFFC9596FFB807880008E00031
+:1023D00043A09793FFFC8596FFB820220000E600FB
+:1023E000247800000001862E0EF800000001203243
+:1023F0000010E2002415F302004C872E0F000000AD
+:10240000000107380001972E0F00872E0F00E00013
+:102410002478000000019313FFFCF3067A2893133D
+:10242000FFFC76B10002C6B4600077350004C738FF
+:102430006A008316FFC4C7386000C7383000073809
+:1024400000109713FFFC9596FFB89616FFB4078807
+:102450000008E00126F89793FFFC8616FFB48596E6
+:10246000FFB80630000120320011E600247400009D
+:102470000001F6020000962E0EF8F70432C0F306B3
+:10248000E030C03A3200E60024BC00000001F7044E
+:10249000E0180000000177B8001E703EFFE1E60082
+:1024A00024BD000000010F814000F70479C800003E
+:1024B000000107380001F70579C8F70479C8F70467
+:1024C00071C400000001203A0000E60024F9F686FD
+:1024D0002C28F7042D380000000106380001F6050D
+:1024E0002D3877390002F302000A20320044E6005A
+:1024F00024F8B33A6802F0052D38F70471D4F68455
+:1025000071CC07380001C03A6A00E6002514F705CF
+:1025100071D4F00571D4F68471D4F70471D0F0054C
+:1025200071C4C0367200470C0001F68432D000003E
+:10253000000120360000E60025D9F70571C8F70430
+:10254000719800000001203A0000E60025790000A3
+:102550000001F70475EC00000001203A0000E600DD
+:10256000257800000001F70475F000000001203A12
+:102570000000E60025D100000001F58476F8000097
+:102580000001202E0021E20025C4F6862C28F70445
+:102590002D380000000106380001F6052D38773986
+:1025A000000220320044E60025B0B5BA6802F0050A
+:1025B0002D38F3020022F30576F8F3047700E000EB
+:1025C00025C8F30576FCF00576FCE00025D8F0057B
+:1025D0007A78E00025DCF306319CF3062EE0F30563
+:1025E00032D4F70471C800000001203A0000E60070
+:1025F000268CF6862C28F7042D38000000010638BA
+:102600000001F6052D3877390002F3020009203267
+:102610000044E600268CB33A6802E000268CF00500
+:102620002D38F7047A9000000001C03A6A00EE00ED
+:102630002641C5B40000C7385A00E0002648F70517
+:102640007A90C5B80000F0057A90F6847A88F7068B
+:102650007A2876350003A732700206B40001971677
+:10266000FFEC84A6FFFCF7067A2CF3047A98948298
+:10267000FF3C9302FF409582FF44B5B27002F7041D
+:102680007A98F6857A88C7385800F7057A98879639
+:10269000FFFC8296FFF802140000013C00000000DD
+:1026A00000019293FFFC02900008F7020001F70579
+:1026B0007A78F7063084F70532D4F70432C4000084
+:1026C00000019713FFFC07880008E00006109793AD
+:1026D000FFFC8796FFFC8296FFF802140000013C85
+:1026E0000000000000019293FFFC029000082210FD
+:1026F0000050F70432D0F3020000203A0000E60058
+:102700002A719316FFE4F68432C48616FFE48736F6
+:102710000008C3040000C03A3200E600273C203223
+:1027200000008736000C00000001C03A3200E600CD
+:10273000273C20320000F602000120320000E600B3
+:102740002A70F3020000F70432C09316FFACF58440
+:1027500032C4863A142803B81420042C000886BA20
+:10276000142400000001C0326A00EC0028289616EC
+:10277000FFEC77310001C738600077390002C638B6
+:1027800038000630000C86B20000872E000885163F
+:10279000FFACC0367200E60027B8C484000086B2E1
+:1027A0000004872E000C00000001C0367200E60015
+:1027B00027BC202A0000F5020001202A0000E600C4
+:1027C00027C900000001F482000086B200008722C1
+:1027D000000000000001C0367200E2002804F5820B
+:1027E0000000C0367200E600280C202E000086B2E1
+:1027F00000048722000400000001C0367200E200DD
+:10280000280D202E0000F5820001202E0000E60099
+:10281000281D20260000F482000120260000E6008A
+:102820002828F30200019316FFAC8316FFAC0000CA
+:102830000001201A0000E6002869F6020001871650
+:10284000FFEC0000000176B90001C6B4700076B557
+:102850000002C6B4380006B4001486B6000097160D
+:10286000FFF0E00028D09696FFF427140014971389
+:10287000FFFC9413FFFC9393FFFC9396FFBC078827
+:102880000008E00125689793FFFC8396FFBC202297
+:102890000000E60028CDF60200018716FFEC0000DC
+:1028A000000176B90001C6B4700076B50002C6B466
+:1028B000380006B4001486B600009716FFF096960E
+:1028C000FFF4971E0008E00028D420320000F60232
+:1028D000000020320000E6002A70F3020000F60437
+:1028E00032C09316FFAC86B2142803B01420043013
+:1028F000148C8732142400000001C0367200EC00F2
+:1029000029BC9696FFEC77350001C7386800773907
+:102910000002C5B8380005AC000C86AE0000873256
+:10292000148C8516FFACC0367200E600294CC484B6
+:10293000000086AE00048732149000000001C0360B
+:102940007200E6002950202A0000F5020001202A2A
+:102950000000E600295D00000001F482000086AE60
+:1029600000008722000000000001C0367200E20073
+:102970002998F6020000C0367200E60029A0203235
+:10298000000086AE00048722000400000001C0366B
+:102990007200E20029A120320000F602000120327C
+:1029A0000000E60029B120260000F4820001202664
+:1029B0000000E60029BCF30200019316FFAC831669
+:1029C000FFAC00000001201A0000E60029FDF6021D
+:1029D00000018716FFEC0000000176B90001C6B4C3
+:1029E000700076B50002C6B4380006B4001486B68E
+:1029F00000009716FFF0E0002A649696FFF4271473
+:102A000000149713FFFC9413FFFC9393FFFC939621
+:102A1000FFBC07880008E00125689793FFFC8396B8
+:102A2000FFBC20220000E6002A61F60200018716A2
+:102A3000FFEC0000000176B90001C6B4700076B565
+:102A40000002C6B4380006B4001486B6000097161B
+:102A5000FFF09696FFF4971E0008E0002A682032E7
+:102A60000000F602000020320000E6002BCDF30249
+:102A70000001F68432C00000000185B60EF48636EF
+:102A80000EF8202E0010E2002A9420320010E200FE
+:102A90002AB10000000187360F000000000107384E
+:102AA000000197360F0087360F00E0002ADCF7029E
+:102AB000000007300001C03A5A00E6002AD5F6822D
+:102AC000000020320010E6002AD8202E0000E60088
+:102AD0002ADCC7340000F6820001C7340000203A27
+:102AE0000000E6002BCCF3020001F30432CC00001E
+:102AF00000019316FFDC9313FFFC07880008E00039
+:102B000043689793FFFC20220000E6002BB4F302F9
+:102B100000008316FFDC00000001861A00000000A0
+:102B2000000120320010E2002B4976B10002871A22
+:102B3000000C0000000107380001971A000C871AEA
+:102B4000000CE0002BB4F3020000F302004C9313DE
+:102B5000FFFCC6B4600077350004C7386A008316EE
+:102B6000FFDCC7386000C738300007380010971303
+:102B7000FFFCF3067A289313FFFC9616FFB4078830
+:102B80000008E00126F89793FFFC8616FFB40000CA
+:102B900000010630000120320011E6002BA40000E5
+:102BA0000001F60200008316FFDC00000001961A07
+:102BB0000000F30200019316FFD48316FFD4000037
+:102BC0000001201A0000E6002BD0F302000193164A
+:102BD000FFE48316FFE400000001201A0000E60075
+:102BE0002CEDF6820CABF70432B48316FFD4073811
+:102BF0000001F70532B4F70432B4201A0000E600F1
+:102C00002C2800000001F70432C0F306E030C03A7F
+:102C10003200E6002C2800000001F70432E8000032
+:102C2000000107380001F70532E8F70471C400001D
+:102C30000001203A0000E6002C65F6862C28F704F7
+:102C40002D380000000106380001F6052D387739CF
+:102C50000002F302000A20320044E6002C64B33A7A
+:102C60006802F0052D38F70471D4F68471CC07386A
+:102C70000001C03A6A00E6002C80F70571D4F00527
+:102C800071D4F68471D4F70471D0F00571C4C036E4
+:102C90007200470C0001F68432D00000000120369B
+:102CA0000000E6003391F70571C8F7047198000041
+:102CB0000001203A0000E600333100000001F70473
+:102CC00075EC00000001203A0000E60033300000FF
+:102CD0000001F70475F000000001203A0000E60052
+:102CE000333000000001E0003394F306319CF0051E
+:102CF00032E8F70432C0F6046F5496BA000420326A
+:102D00000000E6002D18F302000CF3020001F305A9
+:102D10006F54E0002D20F7020001F3056F58F70211
+:102D20000000203A0000E6002D34F3062F6CE0008E
+:102D30003444F30532D4F5847A7024940010202EA4
+:102D40000001E600303CF5857AA0F7020001F604A8
+:102D500032C8F7057A70F70432C4F68432C0F6053B
+:102D60007A2C9002FF809002FF38F5847A28073889
+:102D700000249582FF3C9702FF409602FF4487366D
+:102D8000141000000001C738600097361410873611
+:102D90001418000000010738000197361418873610
+:102DA0001418F0056F50F70432B89596FFECC73849
+:102DB0006000F70532B8F70432BCF3062FF8073885
+:102DC0000001F70532BCF70432BCF30532D4F70634
+:102DD0000C3EC07E7400E6002DEC00000001C07EB9
+:102DE0007400E6002DDD00000001F7060C3EC77CF4
+:102DF0007400203A0010E600344400000001F7049B
+:102E000032E4FF820010F5846F5807380001202E4D
+:102E10000021E2002E48F70532E4F7042D38F6864B
+:102E20002C2806380001F6052D38773900022032AB
+:102E30000044E6002E3CB5BA6802F0052D38F302D6
+:102E40000022E0002E4CF3056F58F0056F54F58416
+:102E500032C000000001902E0004872E0000000008
+:102E60000001203A0002E6002F78000000018702EE
+:102E7000FF38032C0EF49316FFCCF7057A689313F2
+:102E8000FFFC9596FFB807880008E00043A09793E1
+:102E9000FFFC8596FFB820220000E6002F340000DA
+:102EA0000001862E0EF80000000120320010E20022
+:102EB0002ED1F302004C872E0F00000000010738CE
+:102EC0000001972E0F00872E0F00E0002F34000026
+:102ED00000019313FFFCF3067A289313FFFC76B1ED
+:102EE0000002C6B4600077350004C7386A00831654
+:102EF000FFCCC7386000C738300007380010971380
+:102F0000FFFC9596FFB89616FFB407880008E0010D
+:102F100026F89793FFFC8616FFB48596FFB8063017
+:102F2000000120320011E6002F3000000001F602FF
+:102F30000000962E0EF8F70432C0F306E030C03AD7
+:102F40003200E6002F7800000001F704E0180000CE
+:102F5000000177B8001E703EFFE1E6002F79000007
+:102F600000010F814000F70479C800000001073814
+:102F70000001F70579C8F70479C8F70471C40000A7
+:102F80000001203A0000E6002FB5F6862C28F70451
+:102F90002D380000000106380001F6052D3877397C
+:102FA0000002F302000A20320044E6002FB4B33AD4
+:102FB0006802F0052D38F70471D4F68471CC073817
+:102FC0000001C03A6A00E6002FD0F70571D4F00581
+:102FD00071D4F68471D4F70471D0F00571C4C03691
+:102FE0007200470C0001F68432D000000001203648
+:102FF0000000E6003391F70571C8F70471980000EE
+:103000000001203A0000E600333100000001F7041F
+:1030100075EC00000001203A0000E60033300000AB
+:103020000001F70475F000000001203A0000E600FE
+:10303000333000000001E0003394F306319CF005CA
+:103040007A889002FF38F0056F509002FF80F704F5
+:1030500032C4F3063228F30532D4F60432C8F684BB
+:103060007A2CF502000007380024F7057A98203200
+:103070000000E600308DF6057A90C02A5A00E6007E
+:1030800033D8C0326A00EE0033D900000001F68464
+:1030900032C0000000018736141000000001C7385C
+:1030A00060009736141087361418000000010738A6
+:1030B00000019736141887361418F70432B8000048
+:1030C0000001C7386000F70532B8F70432BC0000D1
+:1030D000000107380001F70532BCF70432BC20328A
+:1030E0000000E60030FD00000001F70432E0F505C5
+:1030F0007A7007380001E0003100F70532E0F5058D
+:103100007A70F5846F5800000001202E0021E20043
+:103110003144F6862C28F7042D38000000010638CB
+:103120000001F6052D387739000220320044E60010
+:103130003138B5BA6802F0052D38F3020022E000FC
+:103140003148F3056F58F0056F54F58432C0000024
+:103150000001902E0004872E000000000001203A9C
+:103160000002E6003274000000018702FF38032CE1
+:103170000EF49316FFC4F7057A689313FFFC959637
+:10318000FFB807880008E00043A09793FFFC8596EE
+:10319000FFB820220000E600323000000001862E39
+:1031A0000EF80000000120320010E20031CDF302E1
+:1031B000004C872E0F000000000107380001972EF9
+:1031C0000F00872E0F00E000323000000001931343
+:1031D000FFFCF3067A289313FFFC76B10002C6B415
+:1031E000600077350004C7386A008316FFC4C7380B
+:1031F0006000C7383000073800109713FFFC959621
+:10320000FFB89616FFB407880008E00126F89793E8
+:10321000FFFC8616FFB48596FFB806300001203209
+:103220000011E600322C00000001F6020000962E8C
+:103230000EF8F70432C0F306E030C03A3200E60080
+:10324000327400000001F704E0180000000177B8B4
+:10325000001E703EFFE1E6003275000000010F81A4
+:103260004000F70479C80000000107380001F705A5
+:1032700079C8F70479C8F70471C400000001203A46
+:103280000000E60032B1F6862C28F7042D38000045
+:10329000000106380001F6052D3877390002F302E7
+:1032A000000A20320044E60032B0B33A6802F0056A
+:1032B0002D38F70471D4F68471CC07380001C03A78
+:1032C0006A00E60032CCF70571D4F00571D4F684BB
+:1032D00071D4F70471D0F00571C4C0367200470C88
+:1032E0000001F68432D00000000120360000E60024
+:1032F0003391F70571C8F704719800000001203A76
+:103300000000E600333100000001F70475EC000016
+:103310000001203A0000E600333000000001F7040D
+:1033200075F000000001203A0000E600338900003B
+:103330000001F58476F800000001202E0021E20053
+:10334000337CF6862C28F7042D380000000106385F
+:103350000001F6052D387739000220320044E600DE
+:103360003368B5BA6802F0052D38F3020022F30580
+:1033700076F8F3047700E0003380F30576FCF0057F
+:1033800076FCE0003390F0057A78E0003394F306A1
+:10339000319CF3062EE0F30532D4F70471C8000027
+:1033A0000001203A0000E6003444F6862C28F70499
+:1033B0002D380000000106380001F6052D38773958
+:1033C0000002F302000920320044E6003444B33A1C
+:1033D0006802E0003444F0052D38F7047A900000CC
+:1033E0000001C03A6A00EE0033F9C5B40000C738E6
+:1033F0005A00E0003400F7057A90C5B80000F005E7
+:103400007A90F6847A88F7067A2876350003A73210
+:10341000700206B400019716FFEC84A6FFFCF706C5
+:103420007A2CF3047A989482FF3C9302FF409582B1
+:10343000FF44B5B27002F7047A98F6857A88C738E7
+:103440005800F7057A988796FFFC8296FFF80214D9
+:103450000000013C0000000000019293FFFC02907C
+:10346000000822100020F5847A7000000001202E50
+:103470000001E600376CF5857AA0F7020001F6043A
+:1034800032C8F7057A70F70432C4F68432C0F60504
+:103490007A2C9002FF809002FF38F5847A28073852
+:1034A00000249582FF3C9702FF409602FF44873636
+:1034B000141000000001C7386000973614108736DA
+:1034C00014180000000107380001973614188736D9
+:1034D0001418F0056F50F70432B89596FFF4C7380A
+:1034E0006000F70532B8F70432BCF4862FF80738CD
+:1034F0000001F70532BCF70432BCF48532D4F7067C
+:103500000C3EC07E7400E600351C00000001C07E49
+:103510007400E600350D00000001F7060C3EC77C84
+:103520007400203A0010E6003B7000000001F70430
+:1035300032E4FF820010F5846F5807380001202E16
+:103540000021E2003578F70532E4F7042D38F686DD
+:103550002C2806380001F6052D3877390002203274
+:103560000044E600356CB5BA6802F0052D38F482E7
+:103570000022E000357CF4856F58F0056F54F58427
+:1035800032C000000001902E0004872E00000000D1
+:103590000001203A0002E60036A800000001870280
+:1035A000FF3804AC0EF49496FFECF7057A68949318
+:1035B000FFFC9596FFDC07880008E00043A0979386
+:1035C000FFFC8596FFDC20220000E6003664000048
+:1035D0000001862E0EF80000000120320010E200EB
+:1035E0003601F482004C872E0F00000000010738DE
+:1035F0000001972E0F00872E0F00E00036640000B8
+:1036000000019493FFFCF4867A289493FFFC76B132
+:103610000002C6B4600077350004C7386A0084969B
+:10362000FFECC7386000C738480007380010971310
+:10363000FFFC9596FFDC9616FFD807880008E0018E
+:1036400026F89793FFFC8616FFD88596FFDC063098
+:10365000000120320011E600366000000001F60291
+:103660000000962E0EF8F70432C0F486E030C03A1F
+:103670004A00E60036A800000001F704E018000048
+:10368000000177B8001E703EFFE1E60036A9000099
+:1036900000010F814000F70479C8000000010738DD
+:1036A0000001F70579C8F70479C8F70471C4000070
+:1036B0000001203A0000E60036E5F6862C28F704E3
+:1036C0002D380000000106380001F6052D38773945
+:1036D0000002F482000A20320044E60036E4B4BA64
+:1036E0006802F0052D38F70471D4F68471CC0738E0
+:1036F0000001C03A6A00E6003700F70571D4F00512
+:1037000071D4F68471D4F70471D0F00571C4C03659
+:103710007200470C0001F68432D000000001203610
+:103720000000E6003AC1F70571C8F704719800007F
+:103730000001203A0000E6003A6100000001F704B1
+:1037400075EC00000001203A0000E6003A6000003D
+:103750000001F70475F000000001203A0000E600C7
+:103760003A6000000001E0003AC4F486319CF005A4
+:103770007A889002FF38F0056F509002FF80F704BE
+:1037800032C4F4863228F48532D4F60432C8F68482
+:103790007A2CF502000007380024F7057A982032C9
+:1037A0000000E60037BDF6057A90C02A5A00E60010
+:1037B0003B08C0326A00EE003B0900000001F684BD
+:1037C00032C0000000018736141000000001C73825
+:1037D000600097361410873614180000000107386F
+:1037E00000019736141887361418F70432B8000011
+:1037F0000001C7386000F70532B8F70432BC00009A
+:10380000000107380001F70532BCF70432BC203252
+:103810000000E600382D00000001F70432E0F50555
+:103820007A7007380001E0003830F70532E0F5051E
+:103830007A70F5846F5800000001202E0021E2000C
+:103840003874F6862C28F7042D380000000106385D
+:103850000001F6052D387739000220320044E600D9
+:103860003868B5BA6802F0052D38F4820022E0000D
+:103870003878F4856F58F0056F54F58432C0000035
+:103880000001902E0004872E000000000001203A65
+:103890000002E60039A4000000018702FF3804ACF2
+:1038A0000EF49496FFE4F7057A689493FFFC9596DE
+:1038B000FFDC07880008E00043A09793FFFC859693
+:1038C000FFDC20220000E600396000000001862EA7
+:1038D0000EF80000000120320010E20038FDF482F2
+:1038E000004C872E0F000000000107380001972EC2
+:1038F0000F00872E0F00E000396000000001949354
+:10390000FFFCF4867A289493FFFC76B10002C6B4DB
+:10391000600077350004C7386A008496FFE4C73832
+:103920006000C7384800073800109713FFFC9596D1
+:10393000FFDC9616FFD807880008E00126F8979369
+:10394000FFFC8616FFD88596FFDC0630000120328A
+:103950000011E600395C00000001F6020000962E1E
+:103960000EF8F70432C0F486E030C03A4A00E600B0
+:1039700039A400000001F704E0180000000177B846
+:10398000001E703EFFE1E60039A5000000010F8136
+:103990004000F70479C80000000107380001F7056E
+:1039A00079C8F70479C8F70471C400000001203A0F
+:1039B0000000E60039E1F6862C28F7042D380000D7
+:1039C000000106380001F6052D3877390002F4822F
+:1039D000000A20320044E60039E0B4BA6802F0057B
+:1039E0002D38F70471D4F68471CC07380001C03A41
+:1039F0006A00E60039FCF70571D4F00571D4F6844D
+:103A000071D4F70471D0F00571C4C0367200470C50
+:103A10000001F68432D00000000120360000E600EC
+:103A20003AC1F70571C8F704719800000001203A07
+:103A30000000E6003A6100000001F70475EC0000A8
+:103A40000001203A0000E6003A6000000001F7049F
+:103A500075F000000001203A0000E6003AB90000CD
+:103A60000001F58476F800000001202E0021E2001C
+:103A70003AACF6862C28F7042D38000000010638F1
+:103A80000001F6052D387739000220320044E600A7
+:103A90003A98B5BA6802F0052D38F4820022F48510
+:103AA00076F8F4847700E0003AB0F48576FCF0050F
+:103AB00076FCE0003AC0F0057A78E0003AC4F4867B
+:103AC000319CF4862EE0F48532D4F70471C80000EE
+:103AD0000001203A0000E6003B70F6862C28F7042F
+:103AE0002D380000000106380001F6052D38773921
+:103AF0000002F482000920320044E6003B70B4BAB0
+:103B00006802E0003B70F0052D38F7047A90000061
+:103B10000001C03A6A00EE003B29C5B40000C73876
+:103B20005A00E0003B30F7057A90C5B80000F00578
+:103B30007A90F7047A88F6867A2876390003A6B256
+:103B4000680207380001F7057A88F7047A98969694
+:103B5000FFF49682FF3CF4847A98F6867A2CC73874
+:103B600058009482FF409582FF44B5B26802F70581
+:103B70007A988796FFFC8296FFF802140000013CB9
+:103B80000000000000019293FFFC02900008221048
+:103B90000018F5047A88F7067A2CF5847A9076A9CD
+:103BA0000003A6B67002202E0000E6003BCD000008
+:103BB0000001F7047AA000000001C02A7200E600AC
+:103BC0003F18C02E6A00EE003F1900000001F68485
+:103BD00032C0F60432C88736141000000001C7381E
+:103BE000600097361410873614180000000107385B
+:103BF00000019736141887361418F70432B80000FD
+:103C00000001C7386000F70532B8F70432BC000085
+:103C1000000107380001F70532BCF70432BC202E42
+:103C20000000E6003C3DF6820000F70432E0F68535
+:103C30007A7007380001E0003C40F70532E0F505F6
+:103C40007A70F5846F5800000001202E0021E200F8
+:103C50003C84F6862C28F7042D3800000001063835
+:103C60000001F6052D387739000220320044E600C5
+:103C70003C78B5BA6802F0052D38F4820022E000E5
+:103C80003C88F4856F58F0056F54F58432C000000D
+:103C90000001902E0004872E000000000001203A51
+:103CA0000002E6003DB4000000018702FF3804ACCA
+:103CB0000EF49496FFECF7057A689493FFFC9596C2
+:103CC000FFE407880008E00043A09793FFFC859677
+:103CD000FFE420220000E6003D7000000001862E77
+:103CE0000EF80000000120320010E2003D0DF482C9
+:103CF000004C872E0F000000000107380001972EAE
+:103D00000F00872E0F00E0003D700000000194932B
+:103D1000FFFCF4867A289493FFFC76B10002C6B4C7
+:103D2000600077350004C7386A008496FFECC73816
+:103D30006000C7384800073800109713FFFC9596BD
+:103D4000FFE49616FFE007880008E00126F8979345
+:103D5000FFFC8616FFE08596FFE406300001203266
+:103D60000011E6003D6C00000001F6020000962EF6
+:103D70000EF8F70432C0F486E030C03A4A00E6009C
+:103D80003DB400000001F704E0180000000177B81E
+:103D9000001E703EFFE1E6003DB5000000010F810E
+:103DA0004000F70479C80000000107380001F7055A
+:103DB00079C8F70479C8F70471C400000001203AFB
+:103DC0000000E6003DF1F6862C28F7042D380000AF
+:103DD000000106380001F6052D3877390002F4821B
+:103DE000000A20320044E6003DF0B4BA6802F00553
+:103DF0002D38F70471D4F68471CC07380001C03A2D
+:103E00006A00E6003E0CF70571D4F00571D4F68423
+:103E100071D4F70471D0F00571C4C0367200470C3C
+:103E20000001F68432D00000000120360000E600D8
+:103E30003ED1F70571C8F704719800000001203ADF
+:103E40000000E6003E7100000001F70475EC000080
+:103E50000001203A0000E6003E7000000001F70477
+:103E600075F000000001203A0000E6003EC90000A5
+:103E70000001F58476F800000001202E0021E20008
+:103E80003EBCF6862C28F7042D38000000010638C9
+:103E90000001F6052D387739000220320044E60093
+:103EA0003EA8B5BA6802F0052D38F4820022F485E8
+:103EB00076F8F4847700E0003EC0F48576FCF005E7
+:103EC00076FCE0003ED0F0057A78E0003ED4F4863F
+:103ED000319CF4862EE0F48532D4F70471C80000DA
+:103EE0000001203A0000E6003F80F6862C28F70407
+:103EF0002D380000000106380001F6052D3877390D
+:103F00000002F482000920320044E6003F80B4BA87
+:103F10006802E0003F80F0052D38F7047A90000039
+:103F20000001C03A6A00EE003F39C5B40000C7384E
+:103F30005A00E0003F40F7057A90C5B80000F00550
+:103F40007A90F7047A88F6867A2876390003A6B242
+:103F5000680207380001F7057A88F7047A98969680
+:103F6000FFF49682FF3CF4847A98F6867A2CC73860
+:103F700058009482FF409582FF44B5B26802F7056D
+:103F80007A988796FFFC8296FFF802140000013CA5
+:103F90000000000000019293FFFC02900008221034
+:103FA0000010F5846F5800000001202E0021E2006F
+:103FB0003FE4F6862C28F7042D380000000106386F
+:103FC0000001F6052D387739000220320044E60062
+:103FD0003FD8B5BA6802F0052D38F5020022E0009E
+:103FE0003FE8F5056F58F0056F54F58432C00000C6
+:103FF0000001902E0004872E000000000001203AEE
+:104000000002E6004114000000018702FF38052C81
+:104010000EF49516FFF4F7057A689513FFFC959654
+:10402000FFEC07880008E00043A09793FFFC85960B
+:10403000FFEC20220000E60040D000000001862EA8
+:104040000EF80000000120320010E200406DF50281
+:10405000004C872E0F000000000107380001972E4A
+:104060000F00872E0F00E00040D0000000019513E4
+:10407000FFFCF5067A289513FFFC76B10002C6B462
+:10408000600077350004C7386A008516FFF4C7382A
+:104090006000C7385000073800109713FFFC959652
+:1040A000FFEC9616FFE807880008E00126F89793D2
+:1040B000FFFC8616FFE88596FFEC063000012032F3
+:1040C0000011E60040CC00000001F6020000962E30
+:1040D0000EF8F70432C0F506E030C03A5200E600B0
+:1040E000411400000001F704E0180000000177B857
+:1040F000001E703EFFE1E6004115000000010F8147
+:104100004000F70479C80000000107380001F705F6
+:1041100079C8F70479C8F70471C400000001203A97
+:104120000000E6004151F6862C28F7042D380000E7
+:10413000000106380001F6052D3877390002F50236
+:10414000000A20320044E6004150B53A6802F0050A
+:104150002D38F70471D4F68471CC07380001C03AC9
+:104160006A00E600416CF70571D4F00571D4F6845D
+:1041700071D4F70471D0F00571C4C0367200470CD9
+:104180000001F68432D00000000120360000E60075
+:104190004231F70571C8F704719800000001203A18
+:1041A0000000E60041D100000001F70475EC0000BA
+:1041B0000001203A0000E60041D000000001F704B1
+:1041C00075F000000001203A0000E60042290000DE
+:1041D0000001F58476F800000001202E0021E200A5
+:1041E000421CF6862C28F7042D3800000001063802
+:1041F0000001F6052D387739000220320044E60030
+:104200004208B5BA6802F0052D38F5020022F5051E
+:1042100076F8F5047700E0004220F50576FCF0051D
+:1042200076FCE0004230F0057A78E0004234F50692
+:10423000319CF5062EE0F50532D4F70471C8000074
+:104240000001203A0000E6004274F6862C28F704AC
+:104250002D380000000106380001F6052D387739A9
+:104260000002F502000920320044E6004274B53A2B
+:104270006802F0052D388796FFFC8296FFF802143D
+:104280000000013C0000000000019293FFFC02903E
+:104290000008F70632D49713FFFCF7062EE09713B9
+:1042A000FFFC07880008E00014F49793FFFCF70672
+:1042B00032D49713FFFCF7062F6C9713FFFC078887
+:1042C0000008E00014F49793FFFCF70632D497132C
+:1042D000FFFCF7062FF89713FFFC07880008E000A3
+:1042E00014F49793FFFCF70632D49713FFFCF706FC
+:1042F00030849713FFFC07880008E00014F49793BC
+:10430000FFFCF70632D49713FFFCF7063110971322
+:10431000FFFC07880008E00014F49793FFFCF70601
+:1043200032D49713FFFCF706319C9713FFFC0788E4
+:104330000008E00014F49793FFFCF70632D49713BB
+:10434000FFFCF70632289713FFFC07880008E000FF
+:1043500014F49793FFFC8796FFFC8296FFF80214F3
+:104360000000013C0000000000019293FFFC02905D
+:104370000008871600000000000186BA0000873A96
+:10438000000400000001C0367200440C0001879652
+:10439000FFFC8296FFF802140004013C00000000BC
+:1043A00000019293FFFC0290000885960000000037
+:1043B0000001862E000086AE000420320010E200CC
+:1043C00043D00000000120360010E20043ED073426
+:1043D0000001872E000C0000000107380001972E15
+:1043E000000C872E000CE0004414F4020000C03AD8
+:1043F0006200E6004411F402000020360010E600DE
+:1044000044140000000120320000E60044140000C3
+:104410000001F40200018796FFFC8296FFF8021467
+:104420000004013C0000000000019293FFFC029098
+:104430000008F7020001F7053524F7046F44000077
+:104440000001F7053528F70632F49713FFFCF7064D
+:1044500035309713FFFC07880008E0001548979354
+:10446000FFFCF70245049713FFFCF702000D9713BA
+:10447000FFFCF70632F49713FFFC07880008E00002
+:10448000161C9793FFFCF7024A049713FFFCF702F0
+:10449000000F9713FFFCF70633809713FFFC078884
+:1044A0000008E000161C9793FFFCF7024EEC9713F0
+:1044B000FFFCF70200089713FFFCF706340C971374
+:1044C000FFFC07880008E000161C9793FFFCF7022A
+:1044D00057649713FFFCF70200079713FFFCF706DA
+:1044E00034989713FFFC07880008E000161C979388
+:1044F000FFFC8796FFFC8296FFF802140000013C47
+:104500000000000000019293FFFC029000082210BE
+:104510000014F70475F800000001203A0000E600DE
+:10452000452DF68675F8E0004544F7020000F704D3
+:1045300076040000000177390002C7386800873A26
+:10454000001800000001203A0000E600455CF70575
+:104550003548F4863380E00049F0F4853530F704BF
+:104560006F5400000001203A0000E6004580F4820C
+:104570000008F4820001F4856F54E0004588F702DA
+:104580000001F4856F58F7020000203A0000E600B1
+:1045900045A0F4820004F486340CE00049F0F48570
+:1045A0003530F6843548F604352CF4B72800073446
+:1045B0000002F4820001F4BB28008732008CF482F0
+:1045C00000019736001887320090F4856F509736B7
+:1045D000000484B200840000000194B6001084B28C
+:1045E00000880000000194B6001484B6001000009A
+:1045F000000194B6000884B600140000000194B6CF
+:10460000000C84B2009800000001F4853554F48257
+:1046100000019482FF80F5043554F4863498F485C3
+:1046200035309502FF3885B2000006B4002495822B
+:10463000FF3C9682FF4087320004F6853550970292
+:10464000FF4486B20004F005354CF704354095165A
+:10465000FFF49596FFF4C7386800F7053540F584F8
+:10466000352886B20004872E141400000001C738D4
+:104670006800972E14148732008000000001203A51
+:104680000001EE0049F0F7060C3EC07E7400E60023
+:1046900046A400000001C07E7400E60046950000BC
+:1046A0000001F7060C3EC77C7400203A0010E600BB
+:1046B00049F000000001FF8200108682FF38F704F5
+:1046C0003558F5846F58F685355407380001202E8B
+:1046D0000021E2004708F7053558F7042D38F68623
+:1046E0002C2806380001F6052D38773900022032D3
+:1046F0000044E60046FCB5BA6802F0052D38F482A5
+:104700000022E000470CF4856F58F0056F54F684E2
+:10471000352C0000000187360094C4840000C03AA4
+:104720004A00E60047710000000186360094F684D6
+:1047300035540000000176B4FFF0F7043554969626
+:10474000FFF4473900009716FFF0C6B47000F70475
+:10475000354877B4000F703EFFE107380024E600CB
+:104760004769C638600006B40001C7046E00F7331D
+:104770002800F6843544000000018736000400005C
+:104780000001203A000FE20047BD073800018736DC
+:10479000000C00000001073800019736000C873636
+:1047A000000CE00047D000000001F7043528F68235
+:1047B000000107380008E0004968F7053544203A51
+:1047C0000010E60047CC00000001F7020000973619
+:1047D0000004F704353CF684352807380001F70556
+:1047E000353CF704353C8736141C000000010738BF
+:1047F00000019736141CF704760486B6141CF604E0
+:1048000075FC07380001F684760000000001C03A0C
+:104810006A00E600481CF7057604F0057604F68485
+:104820007604F7047608F00575FCC0367200470C74
+:10483000000120320000E6004881F70575F8F70412
+:104840007648F4867218C03A4A00470C0001203AB4
+:104850000000E6004881F6862C28F7042D38000079
+:10486000000106380001F6052D3877390002F48280
+:10487000000E20320044E6004880B4BA6802F00519
+:104880002D38F5020000202A0002EE004968F68269
+:104890000000F68435280000000187360000000083
+:1048A0000001203A0002E600493C05B40008959357
+:1048B000FFFC9516FFEC9596FFE89696FFE40788B7
+:1048C0000008E0005EDC9793FFFC8516FFEC859600
+:1048D000FFE88696FFE420220000E600492CF7025C
+:1048E00000008636000C000000012032000FE200BC
+:1048F000491100000001873600140000000107384C
+:1049000000019736001487360014E000492CF702A6
+:10491000000076B10002C6B4600077350005C738E4
+:104920006A00C738600007380010C72C7000203AB2
+:104930000000E60047A8F705352CF6843528F70473
+:104940006F4C00000001C0367200E600495C07347D
+:104950001494F4846F44E0004960F4853528F70529
+:104960003528E00048840528000120360000E600D4
+:1049700049A1F6862C28F7042D38000000010638DE
+:104980000001F6052D3877390002F482000D20323F
+:104990000044E60049A8B4BA6802E00049A8F0055E
+:1049A0002D38F4820001F4853524F6843528F70487
+:1049B0006F44F48632F4C0367200E60049F0F485A4
+:1049C0003530F704E0180000000177B8001F703E92
+:1049D000FFE1E60049F1000000010F814000F7040B
+:1049E00079C80000000107380001F70579C8F7040D
+:1049F00079C88796FFFC8296FFF802140000013CFC
+:104A00000000000000019293FFFC029000082210B9
+:104A10000014F70475F800000001203A0000E600D9
+:104A20004A2DF68675F8E0004A40F6820000F70449
+:104A300076040000000177390002C738680086BAA2
+:104A40000018F7046F5400000001203A0000E6004F
+:104A50004A64F6853548F4820001F4856F54E0001D
+:104A60004A70F7020001F4820008F4856F58F702DB
+:104A70000000203A0000E6004A88F4820004F48630
+:104A8000340CE0004ED8F4853530F6843548F60411
+:104A9000352CF4B7280007340002F4820001F4BB7F
+:104AA00028008732008CF482000197360018873284
+:104AB0000090F4856F509736000484B200840000A3
+:104AC000000194B6001084B200880000000194B682
+:104AD000001484B600100000000194B6000884B6EB
+:104AE00000140000000194B6000C84B2009800008D
+:104AF0000001F4853554F48200019482FF80F504AE
+:104B00003554F4863498F48535309502FF3885B2F3
+:104B1000000006B400249582FF3C9682FF40873255
+:104B20000004F68535509702FF4486B20004F00574
+:104B3000354CF70435409516FFF49596FFF4C738C9
+:104B40006800F7053540F584352886B20004872EC5
+:104B5000141400000001C7386800972E141487321F
+:104B6000008000000001203A0001EE004ED8F70658
+:104B70000C3EC07E7400E6004B8C00000001C07E3D
+:104B80007400E6004B7D00000001F7060C3EC77C78
+:104B90007400203A0010E6004ED800000001FF82A9
+:104BA00000108682FF38F7043558F5846F58F68573
+:104BB000355407380001202E0021E2004BF0F705A4
+:104BC0003558F7042D38F6862C2806380001F605EE
+:104BD0002D387739000220320044E6004BE4B5BAA4
+:104BE0006802F0052D38F4820022E0004BF4F485D1
+:104BF0006F58F0056F54F684352C0000000187369D
+:104C00000094C4840000C03A4A00E6004C590000F9
+:104C1000000186360094F68435540000000176B415
+:104C2000FFF0F70435549696FFF4473900009716C5
+:104C3000FFF0C6B47000F704354877B4000F703E3B
+:104C4000FFE107380024E6004C51C638600006B486
+:104C50000001C7046E00F7332800F68435440000D5
+:104C600000018736000400000001203A000FE20036
+:104C70004CA5073800018736000C000000010738FA
+:104C800000019736000C8736000CE0004CB800009D
+:104C90000001F7043528F682000107380008E0001B
+:104CA0004E50F7053544203A0010E6004CB40000A1
+:104CB0000001F702000097360004F704353CF68443
+:104CC000352807380001F705353CF704353C8736B1
+:104CD000141C00000001073800019736141CF7046B
+:104CE000760486B6141CF60475FC07380001F684B9
+:104CF000760000000001C03A6A00E6004D04F705A6
+:104D00007604F0057604F6847604F7047608F00558
+:104D100075FCC0367200470C000120320000E6002E
+:104D20004D69F70575F8F7047648F4867218C03AAD
+:104D30004A00470C0001203A0000E6004D69F68663
+:104D40002C28F7042D380000000106380001F60574
+:104D50002D3877390002F482000E20320044E6003C
+:104D60004D68B4BA6802F0052D38F5020000202A1B
+:104D70000002EE004E50F6820000F6843528000056
+:104D800000018736000000000001203A0002E60022
+:104D90004E2405B400089593FFFC9516FFEC9596FC
+:104DA000FFE89696FFE407880008E0005EDC979332
+:104DB000FFFC8516FFEC8596FFE88696FFE420222F
+:104DC0000000E6004E14F70200008636000C0000DA
+:104DD00000012032000FE2004DF90000000187368B
+:104DE00000140000000107380001973600148736D0
+:104DF0000014E0004E14F702000076B10002C6B4C1
+:104E0000600077350005C7386A00C738600007388A
+:104E10000010C72C7000203A0000E6004C90F70507
+:104E2000352CF6843528F7046F4C00000001C0369D
+:104E30007200E6004E4407341494F4846F44E0009A
+:104E40004E48F4853528F7053528E0004D6C0528D7
+:104E5000000120360000E6004E89F6862C28F70473
+:104E60002D380000000106380001F6052D3877398D
+:104E70000002F482000D20320044E6004E90B4BAE5
+:104E80006802E0004E90F0052D38F4820001F485B0
+:104E90003524F6843528F7046F44F48632F4C0369E
+:104EA0007200E6004ED8F4853530F704E0180000B3
+:104EB000000177B8001F703EFFE1E6004ED9000008
+:104EC00000010F814000F70479C800000001073895
+:104ED0000001F70579C8F70479C88796FFFC829628
+:104EE000FFF802140000013C000000000001929352
+:104EF000FFFC0290000822100014F6843548F604E6
+:104F0000352CF4820004F4B7280007340002F48240
+:104F10000001F4BB28008732008CF4820001973630
+:104F2000001887320090F4856F509736000484B2E1
+:104F300000840000000194B6001084B200880000D4
+:104F4000000194B6001484B600100000000194B66D
+:104F5000000884B600140000000194B6000C84B26E
+:104F6000009800000001F4853554F4820001948219
+:104F7000FF80F5043554F4863498F4853530950275
+:104F8000FF3885B2000006B400249582FF3C96826B
+:104F9000FF4087320004F68535509702FF4486B201
+:104FA0000004F005354CF70435409516FFF495964E
+:104FB000FFF4C7386800F7053540F584352886B218
+:104FC0000004872E141400000001C7386800972ED3
+:104FD00014148732008000000001203A0001EE0026
+:104FE000534CF7060C3EC07E7400E60050000000F3
+:104FF0000001C07E7400E6004FF100000001F706DA
+:105000000C3EC77C7400203A0010E600534C0000B0
+:105010000001FF8200108682FF38F7043558F584BE
+:105020006F58F685355407380001202E0021E20024
+:105030005064F7053558F7042D38F6862C280638C5
+:105040000001F6052D387739000220320044E600D1
+:105050005058B5BA6802F0052D38F4820022E000FD
+:105060005068F4856F58F0056F54F684352C0000B5
+:10507000000187360094C4840000C03A4A00E6006C
+:1050800050CD0000000186360094F68435540000AF
+:10509000000176B4FFF0F70435549696FFF44739D3
+:1050A00000009716FFF0C6B47000F704354877B4D7
+:1050B000000F703EFFE107380024E60050C5C638F7
+:1050C000600006B40001C7046E00F7332800F684C0
+:1050D0003544000000018736000400000001203A3A
+:1050E000000FE2005119073800018736000C00005C
+:1050F0000001073800019736000C8736000CE000ED
+:10510000512C00000001F7043528F6820001073811
+:105110000008E00052C4F7053544203A0010E600CC
+:10512000512800000001F702000097360004F70440
+:10513000353CF684352807380001F705353CF7047F
+:10514000353C8736141C00000001073800019736F3
+:10515000141CF704760486B6141CF60475FC073894
+:105160000001F684760000000001C03A6A00E60003
+:105170005178F7057604F0057604F6847604F70492
+:105180007608F00575FCC0367200470C000120322D
+:105190000000E60051DDF70575F8F7047648F4865F
+:1051A0007218C03A4A00470C0001203A0000E6009D
+:1051B00051DDF6862C28F7042D3800000001063852
+:1051C0000001F6052D3877390002F482000E2032F6
+:1051D0000044E60051DCB4BA6802F0052D38F5024F
+:1051E0000000202A0002EE0052C4F6820000F6847D
+:1051F0003528000000018736000000000001203A39
+:105200000002E600529805B400089593FFFC95163D
+:10521000FFEC9596FFE89696FFE407880008E0000B
+:105220005EDC9793FFFC8516FFEC8596FFE886967B
+:10523000FFE420220000E6005288F70200008636D4
+:10524000000C000000012032000FE200526D00004F
+:10525000000187360014000000010738000197366E
+:10526000001487360014E0005288F702000076B17F
+:105270000002C6B4600077350005C7386A00C73839
+:10528000600007380010C72C7000203A0000E600CC
+:105290005104F705352CF6843528F7046F4C0000CF
+:1052A0000001C0367200E60052B807341494F4844A
+:1052B0006F44E00052BCF4853528F7053528E0003E
+:1052C00051E00528000120360000E60052FDF68678
+:1052D0002C28F7042D380000000106380001F605DF
+:1052E0002D3877390002F482000D20320044E600A8
+:1052F0005304B4BA6802E0005304F0052D38F48278
+:105300000001F4853524F6843528F7046F44F486CB
+:1053100032F4C0367200E600534CF4853530F704A1
+:10532000E0180000000177B8001F703EFFE1E600C2
+:10533000534D000000010F814000F70479C80000C0
+:10534000000107380001F70579C8F70479C8879686
+:10535000FFFC8296FFF802140000013C00000000F0
+:1053600000019293FFFC0290000822100014F484C4
+:105370003554F684354CF584352C9482FF3876B557
+:105380000003A52E6802000000019502FF3CF38493
+:105390003550C6AC68009382FF4087360004000099
+:1053A00000019702FF4486360004F70435400000F0
+:1053B0000001C7386000F7053540F604352886B689
+:1053C0000004873214149496FFF4C73868009732AB
+:1053D0001414872E008000000001203A0001EE0026
+:1053E00057509516FFF4F7060C3EC07E7400E60099
+:1053F000540400000001C07E7400E60053F5000074
+:105400000001F7060C3EC77C7400203A0010E6004D
+:10541000575000000001FF8200108682FF38F70419
+:105420003558F5846F58F685355407380001202E1D
+:105430000021E2005468F7053558F7042D38F68648
+:105440002C2806380001F6052D3877390002203265
+:105450000044E600545CB5BA6802F0052D38F382CA
+:105460000022E000546CF3856F58F0056F54F68409
+:10547000352C0000000187360094C3840000C03A38
+:105480003A00E60054D10000000186360094F6840C
+:1054900035540000000176B4FFF0F70435549696B9
+:1054A000FFF4473900009716FFF0C6B47000F70408
+:1054B000354877B4000F703EFFE107380024E6005E
+:1054C00054C9C638600006B40001C7046E00F73343
+:1054D0002800F684354400000001873600040000EF
+:1054E0000001203A000FE200551D07380001873601
+:1054F000000C00000001073800019736000C8736C9
+:10550000000CE000553000000001F7043528F68259
+:10551000000107380008E00056C8F7053544203A76
+:105520000010E600552C00000001F702000097363D
+:105530000004F704353CF684352807380001F705E8
+:10554000353CF704353C8736141C00000001073851
+:1055500000019736141CF704760486B6141CF60472
+:1055600075FC07380001F684760000000001C03A9F
+:105570006A00E600557CF7057604F0057604F684AB
+:105580007604F7047608F00575FCC0367200470C07
+:10559000000120320000E60055E1F70575F8F70438
+:1055A0007648F3867218C03A3A00470C0001203A58
+:1055B0000000E60055E1F6862C28F7042D3800009F
+:1055C000000106380001F6052D3877390002F38214
+:1055D000000E20320044E60055E0B3BA6802F00540
+:1055E0002D38F5020000202A0002EE0056C8F6828F
+:1055F0000000F68435280000000187360000000016
+:105600000001203A0002E600569C05B4000895937C
+:10561000FFFC9516FFEC9596FFE89696FFE4078849
+:105620000008E0005EDC9793FFFC8516FFEC859692
+:10563000FFE88696FFE420220000E600568CF70281
+:1056400000008636000C000000012032000FE2004E
+:105650005671000000018736001400000001073871
+:1056600000019736001487360014E000568CF702CC
+:10567000000076B10002C6B4600077350005C73877
+:105680006A00C738600007380010C72C7000203A45
+:105690000000E6005508F705352CF6843528F70498
+:1056A0006F4C00000001C0367200E60056BC0734A3
+:1056B0001494F3846F44E00056C0F3853528F70551
+:1056C0003528E00055E40528000120360000E600FA
+:1056D0005701F6862C28F7042D3800000001063803
+:1056E0000001F6052D3877390002F382000D2032D3
+:1056F0000044E6005708B3BA6802E0005708F00516
+:105700002D38F3820001F3853524F6843528F7041B
+:105710006F44F38632F4C0367200E6005750F385CA
+:105720003530F704E0180000000177B8001F703E24
+:10573000FFE1E6005751000000010F814000F7042F
+:1057400079C80000000107380001F70579C8F7049F
+:1057500079C88796FFFC8296FFF802140000013C8E
+:105760000000000000019293FFFC0290000822104C
+:1057700000148702FF38F384352CF7053554871E53
+:105780000080F504354C27380001C02A7200E6007D
+:105790005A4C00000001F5846F5800000001202ED3
+:1057A0000021E20057D8F6862C28F7042D38000097
+:1057B000000106380001F6052D3877390002203245
+:1057C0000044E60057CCB5BA6802F0052D38F30264
+:1057D0000022E00057DCF3056F58F0056F54F684A3
+:1057E000352C0000000187360094C3040000C03A45
+:1057F0003200E60058410000000186360094F6842D
+:1058000035540000000176B4FFF0F7043554969645
+:10581000FFF4473900009716FFF0C6B47000F70494
+:10582000354877B4000F703EFFE107380024E600EA
+:105830005839C638600006B40001C7046E00F7335B
+:105840002800F6843544000000018736000400007B
+:105850000001203A000FE200588D0738000187361A
+:10586000000C00000001073800019736000C873655
+:10587000000CE00058A000000001F7043528F68273
+:10588000000107380008E0005A38F7053544203A8F
+:105890000010E600589C00000001F7020000973657
+:1058A0000004F704353CF684352807380001F70575
+:1058B000353CF704353C8736141C000000010738DE
+:1058C00000019736141CF704760486B6141CF604FF
+:1058D00075FC07380001F684760000000001C03A2C
+:1058E0006A00E60058ECF7057604F0057604F684C5
+:1058F0007604F7047608F00575FCC0367200470C94
+:10590000000120320000E6005951F70575F8F70450
+:105910007648F3067218C03A3200470C0001203A6C
+:105920000000E6005951F6862C28F7042D380000B7
+:10593000000106380001F6052D3877390002F30220
+:10594000000E20320044E6005950B33A6802F005D8
+:105950002D38F5020000202A0002EE005A38F682A7
+:105960000000F684352800000001873600000000A2
+:105970000001203A0002E6005A0C05B40008959395
+:10598000FFFC9516FFEC9596FFE89696FFE40788D6
+:105990000008E0005EDC9793FFFC8516FFEC85961F
+:1059A000FFE88696FFE420220000E60059FCF7029B
+:1059B00000008636000C000000012032000FE200DB
+:1059C00059E100000001873600140000000107388B
+:1059D00000019736001487360014E00059FCF702E6
+:1059E000000076B10002C6B4600077350005C73804
+:1059F0006A00C738600007380010C72C7000203AD2
+:105A00000000E6005878F705352CF6843528F704B1
+:105A10006F4C00000001C0367200E6005A2C0734BB
+:105A20001494F3046F44E0005A30F3053528F70569
+:105A30003528E00059540528000120360000E60012
+:105A40005DC4F3020001E0005DF000000001772971
+:105A50000003C71C7000873A00040528000176A9DE
+:105A60000003F4843554F60435509482FF38A41EA4
+:105A70006802C63070009402FF3C9602FF40C69C4C
+:105A8000680087360004000000019702FF4485B6D5
+:105A90000004F704354000000001C7385800F7053E
+:105AA000354085B60004F505354CF6843528F605F5
+:105AB0003550873614149496FFF4C738580097363B
+:105AC0001414871E008000000001203A0001EE003F
+:105AD0005E3C9416FFF4F7060C3EC07E7400E600B0
+:105AE0005AF400000001C07E7400E6005AE5000090
+:105AF0000001F7060C3EC77C7400203A0010E60057
+:105B00005E3C00000001FF8200108682FF38F7042F
+:105B10003558F5846F58F685355407380001202E26
+:105B20000021E2005B58F7053558F7042D38F6865A
+:105B30002C2806380001F6052D387739000220326E
+:105B40000044E6005B4CB5BA6802F0052D38F3025C
+:105B50000022E0005B5CF3056F58F0056F54F6849B
+:105B6000352C0000000187360094C3040000C03AC1
+:105B70003200E6005BC10000000186360094F68426
+:105B800035540000000176B4FFF0F70435549696C2
+:105B9000FFF4473900009716FFF0C6B47000F70411
+:105BA000354877B4000F703EFFE107380024E60067
+:105BB0005BB9C638600006B40001C7046E00F73355
+:105BC0002800F684354400000001873600040000F8
+:105BD0000001203A000FE2005C0D07380001873613
+:105BE000000C00000001073800019736000C8736D2
+:105BF000000CE0005C2000000001F7043528F6826C
+:105C0000000107380008E0005DB8F7053544203A88
+:105C10000010E6005C1C00000001F702000097364F
+:105C20000004F704353CF684352807380001F705F1
+:105C3000353CF704353C8736141C0000000107385A
+:105C400000019736141CF704760486B6141CF6047B
+:105C500075FC07380001F684760000000001C03AA8
+:105C60006A00E6005C6CF7057604F0057604F684BD
+:105C70007604F7047608F00575FCC0367200470C10
+:105C8000000120320000E6005CD1F70575F8F7044A
+:105C90007648F3067218C03A3200470C0001203AE9
+:105CA0000000E6005CD1F6862C28F7042D380000B1
+:105CB000000106380001F6052D3877390002F3029D
+:105CC000000E20320044E6005CD0B33A6802F005D2
+:105CD0002D38F5020000202A0002EE005DB8F682A1
+:105CE0000000F6843528000000018736000000001F
+:105CF0000001203A0002E6005D8C05B4000895938F
+:105D0000FFFC9516FFEC9596FFE89696FFE4078852
+:105D10000008E0005EDC9793FFFC8516FFEC85969B
+:105D2000FFE88696FFE420220000E6005D7CF70293
+:105D300000008636000C000000012032000FE20057
+:105D40005D61000000018736001400000001073883
+:105D500000019736001487360014E0005D7CF702DE
+:105D6000000076B10002C6B4600077350005C73880
+:105D70006A00C738600007380010C72C7000203A4E
+:105D80000000E6005BF8F705352CF6843528F704AB
+:105D90006F4C00000001C0367200E6005DAC0734B5
+:105DA0001494F3046F44E0005DB0F3053528F70563
+:105DB0003528E0005CD40528000120360000E6000C
+:105DC0005DF1F3020001F7042D38F6862C28063821
+:105DD0000001F6052D3877390002F302000D20325C
+:105DE0000044E6005DF4B33A6802E0005DF4F005BB
+:105DF0002D38F3053524F6843528F7046F44F3066F
+:105E000032F4C0367200E6005E3CF3053530F7042C
+:105E1000E0180000000177B8001F703EFFE1E600C7
+:105E20005E3D000000010F814000F70479C80000CA
+:105E3000000107380001F70579C8F70479C887968B
+:105E4000FFFC8296FFF802140000013C00000000F5
+:105E500000019293FFFC02900008F706353097137B
+:105E6000FFFCF70632F49713FFFC07880008E000F8
+:105E700014F49793FFFCF70635309713FFFCF706F1
+:105E800033809713FFFC07880008E00014F4979311
+:105E9000FFFCF70635309713FFFCF706340C971319
+:105EA000FFFC07880008E00014F49793FFFCF70656
+:105EB00035309713FFFCF70634989713FFFC0788DB
+:105EC0000008E00014F49793FFFC8796FFFC82968D
+:105ED000FFF802140000013C000000000001929352
+:105EE000FFFC0290000886160000000000018732C7
+:105EF000000400000001203A000F86B20000C538FF
+:105F00000000EE005F2CC5B400002036000FEE004C
+:105F10005F2C00000001203A0000EC005F2D000023
+:105F2000000120360000EC005F48000000018732CD
+:105F3000000C00000001073800019732000C873286
+:105F4000000CE0005F50F4020000C02A5A00440C2C
+:105F500000018796FFFC8296FFF802140004013CC2
+:105F6000000000000001000000009293FFFC02907E
+:105F70000008F68635609693FFFCF68642309693CD
+:105F8000FFFC07880008E00015489793FFFCF682A5
+:105F900066F89693FFFCF78200179793FFFCF6864E
+:105FA00035609693FFFC07880008E000161C979365
+:105FB000FFFCF68269809693FFFCF78200189793A6
+:105FC000FFFCF68635609693FFFC07880008E0002A
+:105FD000161C9793FFFCF6826B509693FFFCF7829A
+:105FE00000169793FFFCF68635609693FFFC0788B2
+:105FF0000008E000161C9793FFFCF68261789693E8
+:10600000FFFCF782001F9793FFFCF686356096939E
+:10601000FFFC07880008E000161C9793FFFCF6823F
+:10602000627C9693FFFCF78200209793FFFCF68634
+:1060300035609693FFFC07880008E000161C9793D4
+:10604000FFFCF68266F89693FFFCF78200179793A1
+:10605000FFFCF68635EC9693FFFC07880008E0000D
+:10606000161C9793FFFCF68269809693FFFCF782DB
+:1060700000189793FFFCF68635EC9693FFFC078893
+:106080000008E000161C9793FFFCF6826B50969375
+:10609000FFFCF78200169793FFFCF68635EC96938B
+:1060A000FFFC07880008E000161C9793FFFCF682AF
+:1060B00061789693FFFCF782001F9793FFFCF686AA
+:1060C00035EC9693FFFC07880008E000161C9793B8
+:1060D000FFFCF682627C9693FFFCF7820020979388
+:1060E000FFFCF68635EC9693FFFC07880008E0007D
+:1060F000161C9793FFFCF704E02800000001203AEB
+:106100000000E600611500000001F704E028E0004F
+:10611000611877390002F70200F0F7054228F70608
+:10612000408AF03B2800F706408CF03B2800F7023D
+:106130000000F7057AC0F7057AB8F7057AB0F705D9
+:106140007AC8F682C3509693FFFCF68200169693A7
+:10615000FFFCF68642309693FFFC07880008E001BA
+:106160001EC09793FFFC8796FFFC8296FFF80214EF
+:106170000000013C0000000000019293FFFC02902F
+:106180000008F6046F340000000120320000E60031
+:1061900061ED76B1001E8732000076B4FFE5C738A6
+:1061A0006FC07739FFF0203A0007E60061EC06B0D7
+:1061B00000028736000076B5001E76B4FFE5C738CA
+:1061C0006FC07739FFF0203A0001E60061ECF50678
+:1061D00035ECF704423000000001C03A5200470C91
+:1061E0000001203A0000E6006211F5820000F70489
+:1061F00042A0F60642A276B1001E76B4FFE5C7388B
+:106200006FC07739FFF007380001E0006268F733AC
+:1062100028008732000400000001F705E00086B284
+:106220000008203A0000E600623CF685E0042036D3
+:106230000000E6006240202E0000F5820001202EC2
+:106240000000E6006265F60642A2F70442A076B1BD
+:10625000001E76B4FFE5C7386FC07739FFF0073806
+:106260000001F7332800F00542288796FFFC82964C
+:10627000FFF802140000013C0000000000019293AE
+:10628000FFFC02900008F704423CF6846F340738A4
+:10629000000120360000E60062B1F705423C873677
+:1062A0000000F59E0002C03A5A00E60062BDF58685
+:1062B00035ECF70442A0E00062DCF60642A2F704E7
+:1062C000423000000001C03A5A00470C0001203A59
+:1062D0000000E60062F9F60642A4F70442A476B193
+:1062E000001E76B4FFE5C7386FC07739FFF0073876
+:1062F0000001E000630CF73328009693FFFC078849
+:106300000008E00063209793FFFCF0054228879681
+:10631000FFFC8296FFF802140000013C0000000020
+:1063200000019293FFFC02900008221000208316C7
+:10633000000000000001871A001800000001203A48
+:106340000000E600636CF7020000839A001C000066
+:106350000001F3857AC0849A0014F7057AC8F485A1
+:106360007AB0F7057AB88316000000000001869A1B
+:106370000014F7047AB000000001C0367200E60095
+:1063800063D0F6020000869A001CF7047AC0000071
+:106390000001C0367200E60063D000000001869A5A
+:1063A0000018F7047AB800000001C0367200E60059
+:1063B00063D000000001869A0020F7047AC800002C
+:1063C0000001C7386800203A0064EE0063D920322B
+:1063D0000000F602000120320000E60064580000D0
+:1063E00000018396000000000001871E00180000D5
+:1063F0000001203A0000E600643CF7020000F705C7
+:106400004080F7054084F6846E50F482FFFF831EBF
+:10641000000CF4854F5493360010839E0010849630
+:10642000000093B6001484A600080000000194B692
+:106430001DDCF6820064F6854A98F7054A9C8316AF
+:10644000000000000001871A002000000001203A2F
+:106450000000EE00647CF3820000F70442A4F6061C
+:1064600042A676B1001E76B4FFE5C7386FC0773913
+:10647000FFF007380001E00066E4F7332800939648
+:10648000FFF484160000F48642C89496FFECF302F1
+:10649000000C9316FFE4839600008496FFF4871E99
+:1064A000002000000001C0267200EC006648F38660
+:1064B0004A9884A200248316FFE4C5040000B49A1D
+:1064C0003802C7183800832200288396FFF4849688
+:1064D000FFE4933A000493BA0008F604E000F306E0
+:1064E0004A98A6A63002F5820000C0326A00E60093
+:1064F0006510C6380000F684E0048732000400000E
+:106500000001C0367200E6006514202E0000F582FE
+:106510000001202E0000E600652100000001F502C8
+:106520000000F684E0008732000000000001C03661
+:106530007200E200655CF5820000C0367200E60081
+:106540006564202E0000F684E00487320004000019
+:106550000001C0367200E2006565202E0000F58261
+:106560000001202E0000E6006575202A0000F502DB
+:106570000001202A0000E6006588000000018396E3
+:10658000FFF400000001F3854F548722002C76A110
+:10659000001E76B4FFE505A0002E762D001E763095
+:1065A000FFE5F48200009496FFDC8316FFEC2026C2
+:1065B0000007C7386FC07738FFF0F71B2800872E19
+:1065C000000006980002C73867C07738FFF0E20085
+:1065D000661CF73728008516FFEC8596FFDC000067
+:1065E0000001C72C400086BA0030062800040528A8
+:1065F000000205AC00028396FFDC7739001E773875
+:10660000FFE5039C00019396FFDC201E0007C6B443
+:1066100077C076B4FFF0E20065E1F6B3280004200D
+:10662000001C8496FFEC8316FFE48396FFF404A419
+:1066300000149496FFEC0318000C9316FFE4039CDF
+:106640000001E00064949396FFF48496000000003B
+:1066500000018726002000000001F7054A9C85A65E
+:106660000020F7047AB80000000107380001F705A0
+:106670007AB8F7047AB8F6847AC886260018C6B4C1
+:1066800058008726001C0000000127380001C03296
+:106690007200470C0001203A0000E60066E5F6852E
+:1066A0007AC883260008F7046E50F3053B6483A67E
+:1066B0000008F682000093BA1DDC84A6000C831645
+:1066C000000094BA0010831A0010F6857AC8933A35
+:1066D0000014F7020001F7054084F6857AC0F685BC
+:1066E0007AB8F6857AB08796FFFC8296FFF8021496
+:1066F0000004013C0000000000019293FFFC0290A6
+:10670000000822100008F3846F3400000001871E87
+:106710000018F684E01C00000001C0367200EC0096
+:106720006729F7020001F7020000203A0000E600A6
+:1067300067E8F5820001F704E01C869E001800005F
+:106740000001C03A6A00470C0001203A0000E60050
+:1067500067E9C5840000869E0010F704E000F60299
+:106760000000C0367200E6006788051C0010869E97
+:106770000014F704E00400000001C0367200E600D7
+:10678000678C20320000F602000120320000E60093
+:10679000679900000001F582000086AA0000F70456
+:1067A000E00000000001C0367200E20067D4F6028B
+:1067B0000000C0367200E60067DC2032000086AAC6
+:1067C0000004F704E00400000001C0367200E2009B
+:1067D00067DD20320000F602000120320000E600F2
+:1067E00067ED202E0000F5820001202E0000E6005B
+:1067F0006810F606429CF704429C76B1001E76B4FF
+:10680000FFE5C7386FC07739FFF007380001F7336D
+:106810002800F70475F475ACFFE1203A0000E600AB
+:1068200068459596FFF4F7044298F606429876B1CB
+:10683000001E76B4FFE5C7386FC07739FFF0073820
+:106840000001F7332800871E0020041C002076A1D9
+:10685000001E76B4FFE5C7386FC07739FFF0203AE5
+:106860000008EE0068C4F3061554F5020000059C0C
+:106870000022C4AC0000F60200018722000076A1CD
+:10688000001E76B4FFE5C7386FC07739FFF0C02A25
+:106890007200EC0068C0C6A46000A726600276B54E
+:1068A000001E76B4FFE505280001C7386FC07739B0
+:1068B000FFE8F72F680005AC0001E00068780630BB
+:1068C0000002F30615549313FFFCF704E0240000C4
+:1068D00000019713FFFCF704E01C00000001971370
+:1068E000FFFCF306E0009313FFFC9393FFFCF3021D
+:1068F00000019313FFFC07880008E000EE64979303
+:10690000FFFC20220000E6006928F606429EF704FC
+:10691000429C76B1001E76B4FFE5C7386FC0773968
+:10692000FFF007380001F73328008316FFF400005A
+:106930000001201A0000E600696CF30635ECF7044C
+:10694000423000000001C03A3200470C0001203AFA
+:106950000000E600696DF0054228F3063560F30596
+:10696000423007880008E000789C9793FFFC8796E8
+:10697000FFFC8296FFF802140000013C00000000BA
+:1069800000019293FFFC0290000822100004F5041D
+:106990006F34F7044240862A001807380001F68455
+:1069A000E01CF7054240C0366200EC0069B5F70212
+:1069B0000001F7020000203A0000E6006A80F702BA
+:1069C0000001F704E01C86AA001800000001C03A8C
+:1069D0006A00470C0001203A0000E6006A7DC58489
+:1069E000000086AA0010F704E000F6020000C0369E
+:1069F0007200E6006A1404A8001086AA0014F704C6
+:106A0000E00400000001C0367200E6006A1820327F
+:106A10000000F602000120320000E6006A250000B6
+:106A20000001F582000086A60000F704E0000000E7
+:106A30000001C0367200E2006A60F6020000C03653
+:106A40007200E6006A682032000086A60004F7049F
+:106A5000E00400000001C0367200E2006A692032E2
+:106A60000000F602000120320000E6006A81C72C17
+:106A70000000F5820001E0006A80C72C0000C70416
+:106A80000000203A0000EE006B3DF686408AF704D5
+:106A9000408876B5001E76B4FFE5C7386FC07738FA
+:106AA000FFF0203A0000E6006B3CF6820000F6851D
+:106AB0004080F68540849693FFFC9693FFFCF70494
+:106AC000E01C000000019713FFFCF386E0009393A5
+:106AD000FFFC9513FFFCF38200029393FFFC969654
+:106AE000FFF407880008E000EE649793FFFCF405CC
+:106AF00040848696FFF4F7046E50F38635ECF685F5
+:106B00004090F6854094873A1DDCF6854228F705CB
+:106B10003B64F7044230F4054080C03A3A00470C29
+:106B20000001203A0000E6006B3DF3863560F385F6
+:106B3000423007880008E000789C9793FFFC879616
+:106B4000FFFC8296FFF802140000013C00000000E8
+:106B500000019293FFFC02900008F4864230949367
+:106B6000FFFC07880008E00120E49793FFFC202247
+:106B70000000E6006DD9F5820000F704408CF606AF
+:106B8000408C7631001EF68442287630FFE506B44C
+:106B90000001C73867C07738FFF0203A0000E600F0
+:106BA0006BC8F6854228F7044088F686408A76B599
+:106BB000001E76B4FFE5C7386FC07738FFF0203A83
+:106BC0000000E6006D0D00000001F704408CF68621
+:106BD000408C76B5001E76B4FFE5C7386FC07738B5
+:106BE000FFF0203A0000E6006C35F606408AF70414
+:106BF000408876B1001E76B4FFE5C7386FC077389D
+:106C0000FFF0203A0000E6006C34F4863678F70492
+:106C1000424400000001C03A4A00470C0001203AFB
+:106C20000000E6006C35F4820001F4B32800E000B7
+:106C30006D10F005422CF704408CF506408C76A9C7
+:106C4000001E76B4FFE5C7386FC07738FFF0203AF2
+:106C50000000E6006CC1F606408AF704408876B171
+:106C6000001E76B4FFE5C7386FC07738FFF0203AD2
+:106C70000000E6006CC100000001F704422C000097
+:106C8000000107380001203A0009EE006D11F705F8
+:106C9000422CF02B2800F0332800F5820001F70485
+:106CA0004294F606429476B1001E76B4FFE5C738EA
+:106CB0006FC07739FFF007380001E0006D10F7333F
+:106CC0002800F704408CF686408C76B5001E76B41A
+:106CD000FFE5C7386FC07738FFF0203A0000E600C4
+:106CE0006D14202E0000F7044088F606408A76B125
+:106CF000001E76B4FFE5C7386FC07738FFF0203A42
+:106D00000000E6006D15202E0000F0332800F5820B
+:106D10000001202E0000E6006DB5F48635ECF70486
+:106D2000423000000001C03A4A00470C0001203AFE
+:106D30000000E6006D5900000001F704E0280000A3
+:106D40000001203A0000E6006D79F682003CF684EE
+:106D5000E028E0006D7800000001F704E028000062
+:106D60000001203A0000E6006D79F68200F0F70499
+:106D7000E0280000000176B90002F7044228000074
+:106D80000001C03A6A00EC006DB5F6862C28F704C5
+:106D90002D38F005422806380001F6052D387739E0
+:106DA0000002F482001920320044E6006DB4B4BA47
+:106DB0006802F0052D38F482C3509493FFFCF482EE
+:106DC00000169493FFFCF48642309493FFFC0788EE
+:106DD0000008E0011EC09793FFFC8796FFFC829697
+:106DE000FFF802140000013C000000000001929333
+:106DF000FFFC0290000822100004F5863678959377
+:106E0000FFFCF58642449593FFFC07880008E000EC
+:106E100015489793FFFCF58274189593FFFCF58253
+:106E200000199593FFFCF58636789593FFFC07884B
+:106E30000008E000161C9793FFFCF58274AC959354
+:106E4000FFFCF782001D9793FFFCF58637049593AE
+:106E5000FFFC07880008E000161C9793FFFCF582F2
+:106E600078009593FFFCF782001B9793FFFCF58653
+:106E700037049593FFFC07880008E000161C9793E1
+:106E8000FFFCF58278FC9593FFFCF782001A97933C
+:106E9000FFFCF58637909593FFFC07880008E0001B
+:106EA000161C9793FFFCF58280D89593FFFCF78220
+:106EB000001B9793FFFCF58637909593FFFC07889E
+:106EC0000008E000161C9793FFFCF58281749593EF
+:106ED000FFFCF782001D9793FFFCF586381C959305
+:106EE000FFFC07880008E000161C9793FFFCF58262
+:106EF00087749593FFFCF782001B9793FFFCF58640
+:106F0000381C9593FFFC07880008E000161C979337
+:106F1000FFFCF58294F89593FFFCF782001B979392
+:106F2000FFFCF58639349593FFFC07880008E000E4
+:106F3000161C9793FFFCF5828A009593FFFCF7825D
+:106F4000001C9793FFFCF58639349593FFFC078866
+:106F50000008E000161C9793FFFCF5828E089593BD
+:106F6000FFFCF782001A9793FFFCF586393495935E
+:106F7000FFFC07880008E000161C9793FFFCF582D1
+:106F8000969C9593FFFCF782001E9793FFFCF58675
+:106F900038A89593FFFC07880008E000161C97931B
+:106FA000FFFCF5829B2C9593FFFCF782001B9793C7
+:106FB000FFFCF58638A89593FFFC07880008E000E1
+:106FC000161C9793FFFCF582A2DC9593FFFCF782D9
+:106FD000001E9793FFFCF5863AD89593FFFC07882F
+:106FE0000008E000161C9793FFFCF5829E549593D1
+:106FF000FFFCF782001B9793FFFCF5863AD8959328
+:10700000FFFC07880008E000161C9793FFFCF58240
+:10701000A3C09593FFFCF782001C9793FFFCF586B5
+:1070200039C09593FFFC07880008E000161C979371
+:10703000FFFCF582A7649593FFFCF782001E9793EF
+:10704000FFFCF58639C09593FFFC07880008E00037
+:10705000161C9793FFFCF582AA049593FFFCF78218
+:10706000001B9793FFFCF58639C09593FFFC0788BA
+:107070000008E000161C9793FFFCF582AEF895938C
+:10708000FFFCF782001C9793FFFCF5863A4C959322
+:10709000FFFC07880008E000161C9793FFFCF7062A
+:1070A0004250F03B2800F7064088F03B2800F602EB
+:1070B0000000F6054080F6054084F7063B70F63B7D
+:1070C0002800F7063B72F0BB2800F582CA20F58540
+:1070D0003B74F7063B78F03B2800F7063B7AF0BBA1
+:1070E0002800F582B194F5853B7CF7063B80F03BA8
+:1070F0002800F7063B82F0BB2800F582C754F585CF
+:107100003B84F7063B88F03B2800F7063B8AF0BB40
+:107110002800F582BEF8F5853B8CF7063B90F03BE6
+:107120002800F7063B92F0BB2800F582C8F8F585E9
+:107130003B94F7063B98F03B2800F7063B9AF0BBE0
+:107140002800F582C5D8F5853B9CF7063BA0F03BAF
+:107150002800F7063BA2F0BB2800F582C770F58532
+:107160003BA4F7063BA8F03B2800F7063BAAF0BB80
+:107170002800F582C1B4F5853BAC9616FFF407886C
+:107180000008E000D5409793FFFCF6846E50861609
+:10719000FFF40000000196361DDCF6053B6487967F
+:1071A000FFFC8296FFF802140000013C0000000082
+:1071B00000019293FFFC02900008221000302594F9
+:1071C0000020F02F280026140038F03328009013F8
+:1071D000FFFCF7044250F686425076B5001E76B4A6
+:1071E000FFE5C7386FC07739FFF09713FFFC9613A0
+:1071F000FFFC9593FFFC07880008E000F5F49793E7
+:10720000FFFC20220000E600721DF5021770F70453
+:1072100042540000000127380001F705425495133D
+:10722000FFFCF502001B9513FFFCF5064244951385
+:10723000FFFC07880008E0011EC09793FFFC8796BB
+:10724000FFFC8296FFF802140000013C00000000E1
+:1072500000019293FFFC02900008F704E0048616F8
+:107260000000F68200FF7739FFF0C7386C00F73373
+:107270002800F706E006873A000006B00002F7375C
+:107280002800F6843B6407300004F6BB2800870220
+:10729000FF3406300006F73328008796FFFC8296FD
+:1072A000FFF802140004013C00000000000192936A
+:1072B000FFFC029000082210003026140020F0335A
+:1072C000280027140038F03B28009713FFFC909308
+:1072D000FFFCF7044250F686425076B5001E76B4A5
+:1072E000FFE5C7386FC07739FFF09713FFFC96139F
+:1072F000FFFC07880008E000F3389793FFFC20228A
+:107300000000E6007319F5821770F704425400007C
+:10731000000127380001F70542549593FFFCF582E0
+:10732000001B9593FFFCF58642449593FFFC07886C
+:107330000008E0011EC09793FFFC8796FFFC829631
+:10734000FFF802140000013C0000000000019293CD
+:10735000FFFC029000082210004026140020961620
+:10736000FFC4F03328009013FFFC9613FFFC261493
+:1073700000389616FFBC9613FFFC07880008E00053
+:10738000D0DC9793FFFC9013FFFCF7044250F68685
+:10739000425076B5001E76B4FFE5C7386FC0773926
+:1073A000FFF09713FFFC8616FFBC00000001961348
+:1073B000FFFC8616FFC4000000019613FFFC07883F
+:1073C0000008E000F5F49793FFFC20220000E6009F
+:1073D00073E5F6021770F7044254000000012738E5
+:1073E0000001F70542549613FFFCF602001B9613AA
+:1073F000FFFCF60642449613FFFC07880008E001F4
+:107400001EC09793FFFC8796FFFC8296FFF802143C
+:107410000000013C0000000000019293FFFC02907C
+:10742000000822100004F5820000F5854080959642
+:10743000FFF407880008E000CB509793FFFC859687
+:10744000FFF4F5020064F5053BB4F7044250F486FE
+:10745000425076A5001E76B4FFE5F6044F5CF402B8
+:107460000006F4054254F5853B6CF5853BB8953232
+:10747000000095B20004C7386FC07739FFF00738B5
+:107480000001F727280007880008E00071B09793F3
+:10749000FFFCF4063704F40542448796FFFC82960D
+:1074A000FFF802140000013C00000000000192936C
+:1074B000FFFC0290000822100050F7044250F686AC
+:1074C000425076B5001E76B4FFE5F6046F34C73837
+:1074D0006FC086B2000C7739FFF0C0367200E6004C
+:1074E00077ECC504000086B20010F704E000F30258
+:1074F0000000C0367200E600751804B0001086B2B5
+:107500000014F704E00400000001C0367200E60039
+:10751000751C201A0000F3020001201A0000E6008A
+:10752000752900000001F502000086A60000F7049E
+:10753000E00000000001C0367200E2007564F6024F
+:107540000000C0367200E600756C2032000086A68E
+:107550000004F704E00400000001C0367200E200FD
+:10756000756D20320000F602000120320000E600B6
+:10757000757D202A0000F5020001202A0000E600A7
+:1075800077EC0000000107880008E000CBCC97935F
+:10759000FFFC26140020F033280004A00002F0278E
+:1075A0002800F582000023940022F59F280003A004
+:1075B000001A9396FFD42594002285AE000077AD83
+:1075C000001E77BCFFE5C5AC7FC075ADFFF076311E
+:1075D000001E7630FFE506A400022314001E751578
+:1075E000001EF59F2800F384E0007528FFE593A2B4
+:1075F000001CF584E0047399001E739CFFE59396CC
+:10760000FFAC7395001E739CFFE59396FFCC23940B
+:10761000004295A200208716FFE07595001E75AC0C
+:10762000FFE59596FFB47595001E75ACFFE5959640
+:10763000FFC4C73867C07738FFF0F7272800F48405
+:107640004F58871A0000C4A04A0074A4FFFAC5A4CA
+:107650000000F59F28008396FFAC2314001A7619CA
+:10766000001E7630FFE58596FFB4C7383FC07738F7
+:10767000FFF0F737280006B400028716FFE4839670
+:10768000FFCCC73857C07738FFF0F7372800871A84
+:10769000000006B40002C73867C07738FFF0F7373C
+:1076A000280006B400028716FFE823140016761996
+:1076B000001E7630FFE5C7385FC07738FFF0F73738
+:1076C0002800871A000006B40002C73867C0773860
+:1076D000FFF0F737280006B400028716FFEC2314EA
+:1076E00000127619001E7630FFE5C7383FC07738A4
+:1076F000FFF0F7372800871A000006B400028596CD
+:10770000FFC4C73867C07738FFF0F73728008716FF
+:10771000FFF006B40002C7385FC07738FFF0F737D4
+:107720002800F3820002F3A3280004200018259407
+:10773000002285AE000077AD001E77BCFFE5C5AC2A
+:107740007FC075ADFFF08396FFD4F5A32800F49FAA
+:1077500028002594004285AE000077AD001E77BC5E
+:10776000FFE5C5AC7FC075ADFFF044AD000094935C
+:10777000FFFCF786E0009793FFFCF3844F5C00006A
+:1077800000019393FFFC07880008E00123409793D2
+:10779000FFFC07880008E00078D89793FFFCF0050D
+:1077A0004084F786E0009793FFFC07880008E0001C
+:1077B000D5A09793FFFCF7046E50F4054084873AF8
+:1077C0001DDC00000001F7053B64F5863678F58581
+:1077D0004244F3863560F3854230F5864244959302
+:1077E000FFFC07880008E0011F489793FFFC87967D
+:1077F000FFFC8296FFF802140000013C000000002C
+:1078000000019293FFFC02900008F5864244959394
+:10781000FFFC07880008E00120E49793FFFC20228A
+:107820000000E600788900000001F70442540000DF
+:107830000001203A0000EE007851F6064250078819
+:107840000008E00071B09793FFFCE000788800002A
+:107850000001F704425076B1001E76B4FFE5F582D0
+:107860000006F5854254C7386FC07739FFF00738F6
+:107870000001F733280007880008E00072AC9793F6
+:10788000FFFCF5863790F58542448796FFFC82968B
+:10789000FFF802140000013C000000000001929378
+:1078A000FFFC02900008F6063678F6054244F7021F
+:1078B0000000F7054080F7054094F6846E50F70508
+:1078C000409097361DDC8796FFFC8296FFF80214E5
+:1078D0000000013C0000000000019293FFFC0290B8
+:1078E0000008F7020001F70540808796FFFC8296AA
+:1078F000FFF802140000013C000000000001929318
+:10790000FFFC02900008221000A8F7044250F58600
+:10791000425076AD001EF4846F3476B4FFE5949641
+:10792000FFC4C7386FC086A6000C7739FFF0C03699
+:107930007200E6007955F606429AF704429876B14D
+:10794000001E76B4FFE5C7386FC07739FFF00738FF
+:107950000001F7332800F704425076AD001E76B4DC
+:10796000FFE58516FFC4C7386FC086AA000C7739BB
+:10797000FFF0C0367200E60080A8F606429A872A19
+:107980000010862A001C203A0000E60079A8F68242
+:107990000000872A001400000001203A0000E600E1
+:1079A00079AC20360000F682000120360000E600A7
+:1079B0007A05249400209496FFBC8516FFC4F02716
+:1079C0002800052800109516FFB49513FFFC0788C2
+:1079D0000008E00072509793FFFC8496FFB400000B
+:1079E00000019493FFFC8516FFBC00000001951375
+:1079F000FFFC07880008E000F9349793FFFCE000E3
+:107A000080C40000000120320000E600806C00000D
+:107A1000000107880008E000CBCC9793FFFC259479
+:107A20000020F02F280004A000029496FF5CF027AD
+:107A30002800F48200002514005AF4AB2800072027
+:107A4000001A2514005A852A000077A9001E77BC69
+:107A5000FFE5C5287FC07529FFF075AD001E75AC28
+:107A6000FFE52314001E7619001EF53B2800F48460
+:107A7000E0007630FFE594A2001CF504E004849653
+:107A8000FF5C952200208716FFE006A40002751512
+:107A9000001E7528FFE59516FF547495001E74A40A
+:107AA000FFE59496FF9C7515001E7528FFE5951659
+:107AB000FF947495001E8516FF5C74A4FFE59496F0
+:107AC000FF8C8496FF54C7385FC07738FFF0F72BE0
+:107AD0002800871A00008516FF9CC73867C07738D2
+:107AE000FFF0F737280006B400028716FFE42314DE
+:107AF000001A7619001E7630FFE5C7384FC0773878
+:107B0000FFF0F7372800871A000006B400028496B9
+:107B1000FF94C73867C07738FFF0F737280006B4FE
+:107B200000028716FFE8231400167619001E76302F
+:107B3000FFE5C73857C07738FFF0F7372800871AB6
+:107B4000000006B40002C73867C07738FFF0F73787
+:107B5000280006B400028716FFEC231400127619E1
+:107B6000001E7630FFE5C7384FC07738FFF0F73793
+:107B70002800871A000006B400028516FF8CC7385B
+:107B800067C07738FFF0F73728008716FFF006B494
+:107B90000002C73857C07738FFF0F7372800F48263
+:107BA0000002F4A328002514005A852A000077A9B2
+:107BB000001E77BCFFE5C5287FC07529FFF00720B0
+:107BC0000018F53B28009416FFAC07880008E00079
+:107BD000CBCC9793FFFC261400382494005A84A63B
+:107BE000000077A5001E77BCFFE5C4A47FC074A584
+:107BF000FFF005A0000206AC000223940036751DBC
+:107C0000001E7528FFE50720001AF4B3280076311E
+:107C1000001E7630FFE59516FF547495001E74A47F
+:107C2000FFE59496FF5C7515001E7528FFE5951617
+:107C3000FF7C7495001E8516FFC474A4FFE594961E
+:107C4000FF74852A00342494005A9516FF8484A674
+:107C5000000077A5001E77BCFFE5C4A47FC074A513
+:107C6000FFF02514005AF4AF2800852A000077A9F8
+:107C7000001E77BCFFE5C5287FC07529FFF08496FC
+:107C8000FFC4F53B280084A600108516FFC494A20B
+:107C9000001C852A00147495001E74A4FFE59496B8
+:107CA000FF6C952200208716FFC88516FF54C73841
+:107CB00067C07738FFF0F72F2800871E00008496F2
+:107CC000FF5CC73857C07738FFF0F737280006B495
+:107CD00000028716FFCC23940032761D001E7630FA
+:107CE000FFE58516FF7CC7384FC07738FFF0F737C0
+:107CF0002800871E000006B40002C73867C0773826
+:107D0000FFF0F737280006B400028716FFD023944F
+:107D1000002E761D001E7630FFE5C73857C0773835
+:107D2000FFF0F7372800871E000006B40002849693
+:107D3000FF748516FF6CC73867C07738FFF0F737D8
+:107D4000280006B400028716FFD42394002A761D6B
+:107D5000001E7630FFE5C7384FC07738FFF0F737A1
+:107D60002800871E000006B40002C73867C07738B5
+:107D7000FFF0F73728008716FFD806B40002C7388F
+:107D800057C07738FFF0F7372800F4820002F4A3D9
+:107D90002800072000182514007A852A000077A9FA
+:107DA000001E77BCFFE5C5287FC07529FFF08496CB
+:107DB000FFC4F53B28008726000400000001203A9C
+:107DC0000024F7044F58E6007EF99416FF54C720AC
+:107DD0007200F6846E508626002C7738FFFA251440
+:107DE000005A842A000077A9001E77BCFFE5C42052
+:107DF0007FC07421FFF04739000086B61DDC77395B
+:107E00000002C0326A00468C0001D6800A68203623
+:107E10000000F6864098E6007EC0C3B86800C584BE
+:107E2000000086A60024F704E000F6020000C03639
+:107E30007200E6007E540324002486A60028F7047E
+:107E4000E00400000001C0367200E6007E582032D7
+:107E50000000F602000120320000E6007E6500000E
+:107E60000001F5820000869A0000F704E00000009F
+:107E70000001C0367200E2007EA0F6020000C036AB
+:107E80007200E6007EA820320000869A0004F70403
+:107E9000E00400000001C0367200E2007EA920323A
+:107EA0000000F602000120320000E6007EB9202E1C
+:107EB0000000F5820001202E0000E6007EC50000D3
+:107EC0000001F4020001F7044F58F41F28008496C3
+:107ED000FF548516FFC4F686409AC724720077388F
+:107EE000FFFA862A00304739000077390002C73888
+:107EF0006800E0007F4CF63B28008496FF54F606AD
+:107F00004098C72472007738FFFAC6B8000046B51B
+:107F1000000076B50002C6B46000F5020001F53736
+:107F200028004739000077390002C73860002494E0
+:107F3000005A84A6000077A5001E77BCFFE5C4A404
+:107F40007FC074A5FFF007380002F4BB2800F704D7
+:107F50004F588516FF548496FFACC6A8720076B4BD
+:107F6000FFFA0624001AF6B32800C72472007738F7
+:107F7000FFFA06A8001AF7372800473900009713C0
+:107F8000FFFC0724001C9713FFFCF5044F5C000066
+:107F900000019513FFFC07880008E0012340979338
+:107FA000FFFCF7044F588496FF5400000001C724DB
+:107FB00072007738FFFA473900009713FFFC072457
+:107FC000001C9713FFFCF5044F5C000000019513A3
+:107FD000FFFC07880008E00123409793FFFC078817
+:107FE0000008E00078D89793FFFCF6846E500000FC
+:107FF000000187361DDC00000001073800019736BC
+:108000001DDC87361DDCF0054084F486E000949387
+:10801000FFFC07880008E000D5A09793FFFCF4055B
+:108020004084F7046E50F005425C873A1DDCF6860A
+:108030002C28F7053B64F7042D38F5063A4CF50576
+:10804000424406380001F6052D3877390002F482E3
+:10805000001C20320044E6008060B4BA6802F005DB
+:108060002D38F50635ECE000808CF50542302032E5
+:108070000001E60080C40000000107880008E0005D
+:10808000789C9793FFFCF4863560F4854230F506C2
+:1080900042449513FFFC07880008E0011F489793AE
+:1080A000FFFCE00080C400000001F704429876B1B4
+:1080B000001E76B4FFE5C7386FC07739FFF0073888
+:1080C0000001F73328008796FFFC8296FFF8021420
+:1080D0000000013C0000000000019293FFFC0290B0
+:1080E0000008F58642449593FFFC07880008E001EC
+:1080F00020E49793FFFC20220000E600816100004D
+:108100000001F704425400000001203A0000EE0094
+:108110008129F606425007880008E00072AC979368
+:10812000FFFCE000816000000001F704425076B1DE
+:10813000001E76B4FFE5F5820006F5854254C73887
+:108140006FC07739FFF007380001F7332800078840
+:108150000008E000734C9793FFFCF586381CF5850A
+:1081600042448796FFFC8296FFF802140000013C0F
+:108170000000000000019293FFFC02900008221012
+:108180000058F7044250F686425076B5001E76B489
+:10819000FFE5F6046F34C7386FC086B2000C77393C
+:1081A000FFF0C0367200E6008250F4820000C50481
+:1081B000000086B20010F704E000C5A40000C0363D
+:1081C0007200E60081E40430001086B20014F70467
+:1081D000E00400000001C0367200E60081E8202EB5
+:1081E0000000F5820001202E0000E60081F500006D
+:1081F0000001F502000086A20000F704E000000084
+:108200000001C0367200E2008230F6020000C03683
+:108210007200E60082382032000086A20004F704D3
+:10822000E00400000001C0367200E2008239203212
+:108230000000F602000120320000E6008249202AF8
+:108240000000F5020001202A0000E60082592026E5
+:108250000000F482000120260000E6008760000094
+:10826000000107880008E000CBCC9793FFFC0720B3
+:108270000002F03B2800F7044F58F4053BB006A07D
+:108280000014C72072007738FFFAF737280006A0DD
+:108290000016F7372800F3020001F32328000788AF
+:1082A0000008E000CBCC9793FFFC26140020F033AD
+:1082B000280004A00002F0272800F3020000239405
+:1082C000002AF31F28000720001A2394002A839E07
+:1082D0000000779D001E77BCFFE5C39C7FC0739DA7
+:1082E000FFF07631001E7630FFE506A4000275151A
+:1082F000001EF3BB2800F304E0007528FFE593227D
+:10830000001CF384E0042314001E9316FFA4759947
+:10831000001E75ACFFE57315001E7318FFE593167C
+:10832000FFCC8316FFA493A200208716FFE073956D
+:10833000001E739CFFE59396FFAC7395001E739C23
+:10834000FFE5C73867C07738FFF0F7272800871A9E
+:1083500000009396FFC4C7385FC07738FFF0F73747
+:10836000280006B400028716FFE42394001A9396AF
+:10837000FFA4761D001E7630FFE5C73857C077385A
+:10838000FFF0F7372800871E000006B40002C73848
+:1083900067C07738FFF0F737280006B40002871669
+:1083A000FFE8231400169316FFA47619001E839687
+:1083B000FFAC7630FFE5C7383FC07738FFF0F737BE
+:1083C0002800871A000006B40002C73867C0773853
+:1083D000FFF0F737280006B400028716FFEC2314DD
+:1083E00000129316FFA47619001E8396FFCC7630F8
+:1083F000FFE5C7383FC07738FFF0F7372800871A06
+:10840000000006B40002C73867C07738FFF0F737BE
+:1084100028008716FFF08316FFC406B40002C73891
+:1084200037C07738FFF0F7372800F3820002F3A354
+:1084300028002314002A831A00007799001E77BCB5
+:10844000FFE5C3187FC07319FFF007200018F33B46
+:1084500028009416FFDC07880008E000CBCC979337
+:10846000FFFC072000022394002A839E0000779DD2
+:10847000001E77BCFFE5C39C7FC0739DFFF0248086
+:1084800000070520000AF3BB280020260007EE00A5
+:1084900084E00628000E86B200007731001E77388F
+:1084A000FFE575B1001E75ACFFE50528000204A4C8
+:1084B0000001C6B477C076B5FFF0F702FF00C6B47E
+:1084C0007400F6B3280087320000F30200FFC738BB
+:1084D0005FC07739FFF0C7383400E0008488F73395
+:1084E000280005200026862A000076A9001EF584B3
+:1084F0004F5876B4FFE58396FFDCF30200FF941635
+:10850000FFBCC71C5A007738FFFAC6306FC07631FF
+:10851000FFF047390000C7383400F682FF00C6304C
+:108520006C00C7386000F6843B6CF72B2800C5A0B0
+:108530005A0075ACFFFA8316FFDC07340001F7051B
+:108540003B6C0720003AF6BB280007200036F03BC2
+:108550002800F3820003F3A328000718001AF5BBD4
+:10856000280007880008E000CBCC9793FFFC072089
+:108570000002F03B2800248000070520000A202686
+:108580000007EE0085D40628000E86B20000773181
+:10859000001E7738FFE575B1001E75ACFFE50528B4
+:1085A000000204A40001C6B477C076B5FFF0F7025C
+:1085B000FF00C6B47400F6B3280087320000F382CF
+:1085C00000FFC7385FC07739FFF0C7383C00E000D4
+:1085D000857CF733280005A00026862E000076ADA6
+:1085E000001E76B4FFE5C520000024000007F3025A
+:1085F00000019316FFA4F7044F588396FFBC248014
+:10860000000EC71C72007738FFFAC6306FC0763193
+:10861000FFF047390000F68200FFC7386C00F68291
+:10862000FF00C6306C00C7386000F6843B6CF72F43
+:10863000280007340001F7053B6C0728003AF6BB19
+:10864000280007280036F03B2800F3020003F32B34
+:10865000280020220007EE008694C6284800063035
+:1086600000268732000076B1001E76B4FFE504A430
+:108670000002042000018396FFA4C7386FC0773939
+:10868000FFF0F682FF00C7386C00C71C7000E000E6
+:108690008650F73328000628002686B2000077317E
+:1086A000001E7738FFE5C6B477C076B5FFF0F70255
+:1086B000FF00C6B47400F6B328009513FFFCF30462
+:1086C0003BB0000000019313FFFC9516FFB4078830
+:1086D0000008E000D42C9793FFFC8516FFB4F0054A
+:1086E000407C8396FFBC23000007F3054258F70443
+:1086F0004250F606425076B1001E76B4FFE5F3060E
+:108700003934F3054244F5054074F3854260F38241
+:108710000006F3854254C7386FC07739FFF0F684FE
+:108720002D3807380001F733280006340001F6051C
+:108730002D38F7062C2876B50002F382001C203273
+:108740000044E600874CB3B67002F0052D38F306FE
+:1087500042449313FFFC07880008E0011F489793E9
+:10876000FFFC8796FFFC8296FFF802140000013C94
+:108770000000000000019293FFFC0290000822100C
+:108780000048F38642449393FFFC07880008E00109
+:1087900020E49793FFFC20220000E60089ED000012
+:1087A0000001F704425400000001203A0000EE00EE
+:1087B00087C90000000107880008E000734C979308
+:1087C000FFFCE00089EC0000000107880008E000E1
+:1087D000CBCC9793FFFC26140020F033280005A093
+:1087E0000002F02F2800F382000024940022F3A757
+:1087F000280004A0001A9496FFD423940022839E9C
+:108800000000779D001E77BCFFE5C39C7FC0739D71
+:10881000FFF07631001E7630FFE506AC000223142F
+:10882000001E7519001EF3A72800F484E0007528C7
+:10883000FFE594A2001CF384E0047495001E74A468
+:10884000FFE59496FFB47495001E74A4FFE594961A
+:10885000FFCC8496FFB493A200208716FFE07395A7
+:10886000001E739CFFE59396FFBC7395001E739CDE
+:10887000FFE59396FFC48396FFBCC73867C077387F
+:10888000FFF0F72F2800F5844F58871A0000C5A085
+:108890005A0075ACFFFAC73857C07738FFF0F73782
+:1088A000280006B400028716FFE42314001A761984
+:1088B000001E7630FFE545AD0000C7384FC0773861
+:1088C000FFF0F7372800871A000006B400028496EC
+:1088D000FFCCC73867C07738FFF0F737280006B4F9
+:1088E00000028716FFE8231400167619001E763062
+:1088F000FFE5C7383FC07738FFF0F7372800871A01
+:10890000000006B40002C73867C07738FFF0F737B9
+:10891000280006B400028716FFEC23140012761913
+:10892000001E7630FFE5C7384FC07738FFF0F737C5
+:108930002800871A000006B400028396FFC4C738D7
+:1089400067C07738FFF0F73728008716FFF006B4C6
+:108950000002C7383FC07738FFF0F7372800F482AD
+:108960000002F4A328000420001823940022839E10
+:108970000000779D001E77BCFFE5C39C7FC0739D00
+:10898000FFF08496FFD4F3A32800F3820001F3A73D
+:1089900028009593FFFCF486E0009493FFFCF38499
+:1089A0004F5C000000019393FFFC07880008E00182
+:1089B00023409793FFFC07880008E00078D897933E
+:1089C000FFFCF4863678F4854244F0054084F68452
+:1089D0004F5CF70200649736000090360004F702FF
+:1089E0000001F7054084F38635ECF3854230879625
+:1089F000FFFC8296FFF802140000013C000000001A
+:108A000000019293FFFC0290000822100090F704EE
+:108A10004260F502000005B80018F6044258000054
+:108A2000000120320007EE008A70C7306000C738AE
+:108A300058000738000E86BA00007739001E7738D4
+:108A4000FFE5C6B477C076B5FFF0F70200FFC6B405
+:108A50007400C0365200470C0001D7000A70203A5B
+:108A60000000E6008A7107300001E0008A18F7056F
+:108A70004258F40442580000000120220007EE0092
+:108A80008D9424940036F604426025140038239413
+:108A90000020063000028732000076B1001E76B456
+:108AA000FFE50630000275B1001EC7386FC0773889
+:108AB000FFF0F72B28008732000075ACFFE5C738C0
+:108AC0005FC07738FFF0F727280024940034063081
+:108AD00000028732000076B1001E76B4FFE5C73889
+:108AE0006FC07738FFF0F727280024940032063053
+:108AF00000028732000076B1001E76B4FFE5C73869
+:108B00006FC07738FFF0F727280024940030063034
+:108B100000028732000076B1001E76B4FFE5C73848
+:108B20006FC07738FFF0F72728002494002E063016
+:108B300000028732000076B1001E76B4FFE5C73828
+:108B40006FC07738FFF0F72728002494002C0630F8
+:108B500000028732000076B1001E76B4FFE5C73808
+:108B60006FC07738FFF0F72728002494002A0630DA
+:108B700000028732000076B1001E76B4FFE5C738E8
+:108B80006FC07738FFF0F7272800063000028732E1
+:108B90000000249400287631001E7630FFE5C738A7
+:108BA00067C07738FFF0F72728009413FFFC951370
+:108BB000FFFC9396FF7C9393FFFC07880008E0007E
+:108BC000D0DC9793FFFCF60442602494007E2514C9
+:108BD000008023940068063000028732000076B1DE
+:108BE000001E76B4FFE50630000275B1001EC738DE
+:108BF0006FC07738FFF0F72B28008732000075AC84
+:108C0000FFE5C7385FC07738FFF0F72728002494C6
+:108C1000007C063000028732000076B1001E76B478
+:108C2000FFE5C7386FC07738FFF0F7272800249496
+:108C3000007A063000028732000076B1001E76B45A
+:108C4000FFE5C7386FC07738FFF0F7272800249476
+:108C50000078063000028732000076B1001E76B43C
+:108C6000FFE5C7386FC07738FFF0F7272800249456
+:108C70000076063000028732000076B1001E76B41E
+:108C8000FFE5C7386FC07738FFF0F7272800249436
+:108C90000074063000028732000076B1001E76B400
+:108CA000FFE5C7386FC07738FFF0F7272800249416
+:108CB0000072063000028732000076B1001E76B4E2
+:108CC000FFE5C7386FC07738FFF0F7272800063078
+:108CD000000287320000249400707631001E763046
+:108CE000FFE5C73867C07738FFF0F72728009513EE
+:108CF000FFFC9396FF749393FFFC07880008E00045
+:108D0000D2589793FFFC8396FF7400000001939361
+:108D1000FFFCF704425823940050C70072009713D9
+:108D2000FFFC9396FF6C9393FFFC07880008E0001C
+:108D3000CF249793FFFC8396FF6CF6864250939363
+:108D4000FFFCF384425876B5001E9393FFFCF704B2
+:108D5000425076B4FFE5C7386FC07739FFF09713FC
+:108D6000FFFC8396FF7C000000019393FFFC0788C3
+:108D70000008E000F3389793FFFC20220000E60093
+:108D80008D9500000001F7044258000000010738EB
+:108D90000001F7054258F704425800000001203A4C
+:108DA0000007EE008DD4F3821770F7042D38F68695
+:108DB0002C2806380001F6052D3877390002F38299
+:108DC000001C20320044E6008DF4B3BA6802E000D3
+:108DD0008DF4F0052D389393FFFCF382001B9393E1
+:108DE000FFFCF38642449393FFFC07880008E001F0
+:108DF0001EC09793FFFC8796FFFC8296FFF8021433
+:108E00000000013C0000000000019293FFFC029072
+:108E1000000822100088F7044250F686425076B5CA
+:108E2000001EF3846F3476B4FFE59396FFC4C73811
+:108E30006FC0869E000C7739FFF0C0367200E600E6
+:108E40008E65F60642A0F70442A076B1001E76B405
+:108E5000FFE5C7386FC07739FFF007380001E00041
+:108E600094E4F7332800F604426024940036851613
+:108E7000FFC423940038063000028732000076B128
+:108E8000001E76B4FFE5852A001C0630000275B18D
+:108E9000001EC7386FC07738FFF09516FFBCF71F6C
+:108EA00028008732000075ACFFE58516FFC4C7387F
+:108EB0005FC07738FFF0F72728002494003406308D
+:108EC00000028732000076B1001E76B4FFE5C73895
+:108ED0006FC07738FFF0F72728002494003206305F
+:108EE00000028732000076B1001E76B4FFE5C73875
+:108EF0006FC07738FFF0F727280024940030063041
+:108F000000028732000076B1001E76B4FFE5C73854
+:108F10006FC07738FFF0F72728002494002E063022
+:108F200000028732000076B1001E76B4FFE5C73834
+:108F30006FC07738FFF0F72728002494002C063004
+:108F400000028732000076B1001E76B4FFE5C73814
+:108F50006FC07738FFF0F72728002494002A0630E6
+:108F600000028732000076B1001E76B4FFE5C738F4
+:108F70006FC07738FFF0F7272800063000028732ED
+:108F80000000249400287631001E7630FFE5C738B3
+:108F900067C07738FFF0F7272800872A00200000F5
+:108FA00000019713FFFC9393FFFC271400209713F5
+:108FB000FFFC07880008E000D0DC9793FFFC839655
+:108FC000FFC400000001871E001000000001203ACD
+:108FD0000000E6008FF0F6820000871E00140000FB
+:108FE0000001203A0000E6008FF420360000F682EF
+:108FF000000120360000E6009041000000018516C7
+:10900000FFC400000001052800109516FFB4951359
+:10901000FFFC07880008E00072509793FFFC8396DE
+:10902000FFB4271400209393FFFC9713FFFC0788DD
+:109030000008E000F9349793FFFCE00094E400009E
+:1090400000018516FFBC00000001202A0000E60098
+:1090500094BC0000000107880008E000CBCC979387
+:10906000FFFCF502000023940062F51F28007595AF
+:10907000001E75ACFFE50620000206B000022314B6
+:10908000001E7399001E739CFFE59396FF7475157F
+:10909000001E7528FFE59516FF7C7395001E739CD6
+:1090A000FFE59396FF8C8516FFC47395001E93967B
+:1090B000FF84852A0034239400629516FFACF033B8
+:1090C00028000520001A9516FF94839E0000779DC6
+:1090D000001E77BCFFE5C39C7FC0739DFFF07495B5
+:1090E000001EF3AB28008516FFC474A4FFE5852A93
+:1090F00000108396FFC49522001C839E00148516E1
+:10910000FF8493A200208716FFE07528FFE59516DF
+:10911000FF84F3844F588516FF74C7385FC07738D3
+:10912000FFF0F7332800871A00009396FFA4C022AF
+:109130003A008396FF7CC73857C07738FFF0F7377F
+:10914000280006B400028716FFE42314001A7619DB
+:10915000001E7630FFE5C7384FC07738FFF0F7378D
+:109160002800871A000006B40002C73867C07738A5
+:10917000FFF0F737280006B400028716FFE8231433
+:1091800000167619001E7630FFE5C7383FC07738E5
+:10919000FFF0F7372800871A000006B40002851692
+:1091A000FF8C8396FF84C73867C07738FFF0F737A6
+:1091B000280006B400028716FFEC2314001276196B
+:1091C000001E7630FFE5C73857C07738FFF0F73715
+:1091D0002800871A000006B40002C73867C0773835
+:1091E000FFF0F73728008716FFF006B40002C738F3
+:1091F0003FC07738FFF0F7372800F5020002F5236B
+:10920000280023940052839E0000779D001E77BCA7
+:10921000FFE5C39C7FC0739DFFF003200018E600AC
+:109220009230F39B2800F7044270E000929CF6060F
+:1092300042728516FFC40000000186AA00200000CB
+:10924000000107340007203A000EE2009294C73470
+:109250006800F5844260F38200FFC72C7000073875
+:10926000002686BA00009716FF747739001E7738FB
+:10927000FFE5C6B477C076B5FFF0C6B43C00203633
+:109280000000470C0001D7000A70203A0000E600F9
+:1092900092C900000001F7044274F606427476B1E8
+:1092A000001E76B4FFE5C7386FC07739FFF0073886
+:1092B0000001F733280007880008E000789C9793A6
+:1092C000FFFCE00094E4000000018516FFA48396F3
+:1092D000FF74C720520074B8FFFAC6240000871E2E
+:1092E0000000769D001E76B4FFE5C5AC520075AC5B
+:1092F000FFFA46310000F50200FFC6305400C738BF
+:109300006FC07739FFF0F682FF00C7386C00C630B7
+:109310007000F61F28008396FF948516FFC4F59F02
+:109320002800872A000400000001203A0024E600FB
+:109330009469F6864098F7046E50862A002CC6A4DD
+:10934000000023940062849E0000779D001E77BC7D
+:10935000FFE5C4A47FC074A5FFF046B50000873ABE
+:109360001DDC76B50002C0327200470C0001D70048
+:109370000A70203A0000F7064098E6009434C3349F
+:109380007000C584000086AA0024F704E000F602FD
+:109390000000C036720005280024E60093C495162C
+:1093A000FF748396FFC400000001869E0028F70426
+:1093B000E00400000001C0367200E60093C82032CD
+:1093C0000000F602000120320000E60093D5000004
+:1093D0000001F58200008516FF74F704E00086AAFC
+:1093E000000000000001C0367200E2009414F60292
+:1093F0000000C0367200E600941C2032000086AAED
+:109400000004F704E00400000001C0367200E2002E
+:10941000941D20320000F602000120320000E60018
+:10942000942D202E0000F5820001202E0000E60081
+:10943000943900000001F4820001F7044F58F49BB6
+:1094400028008396FFC4F686409AC72072007738BA
+:10945000FFFA861E00304739000077390002C7380E
+:109460006800E00094E4F63B2800472500007739C7
+:109470000002C7386800F5020001F53B28000738F4
+:10948000000223940062839E0000779D001E77BC3B
+:10949000FFE5C39C7FC0739DFFF025140062F3BB02
+:1094A0002800852A000077A9001E77BCFFE5C528A3
+:1094B0007FC07529FFF0E00094E4F51B2800839637
+:1094C000FFBC00000001201E0001E60094E4000043
+:1094D000000107880008E000789C9793FFFCF506E0
+:1094E0003560F50542308796FFFC8296FFF802143E
+:1094F0000000013C0000000000019293FFFC02907C
+:109500000008F50642449513FFFC07880008E001B7
+:1095100020E49793FFFC20220000E60096890000DB
+:109520000001F68442540000000120360000EE00E5
+:10953000958DF5864250F7044250762D001E763008
+:10954000FFE526B40001F685425425000007F50525
+:109550004258F6842D38C73867C07739FFF007388E
+:109560000001F72F280006340001F6052D38F70614
+:109570002C2876B50002F502001C20320044E600DB
+:109580009688B5367002E0009688F0052D38F5040F
+:109590004260000000019513FFFC07880008E0000E
+:1095A000B2849793FFFCF6844F5800000001073403
+:1095B0000040C0227200E60095ECF6064276F70401
+:1095C000427476B1001E76B4FFE5C7386FC07739B4
+:1095D000FFF007380001F733280007880008E00093
+:1095E000789C9793FFFCE000968800000001F70448
+:1095F000426000000001C0227200E60096240000D4
+:1096000000019713FFFCF5043BB000000001951327
+:10961000FFFC07880008E000D42C9793FFFCE000D3
+:10962000964000000001C0226A00E600967100002A
+:1096300000019713FFFC07880008E000CC609793B7
+:10964000FFFCF704407C000000010738000197137D
+:10965000FFFCF5044074000000019513FFFC07882F
+:109660000008E000BEF89793FFFCE0009688000039
+:109670000001F5044074000000019513FFFC078809
+:109680000008E000C1B49793FFFC8796FFFC829628
+:10969000FFF802140000013C00000000000192935A
+:1096A000FFFC0290000822100070F6046F34F704EB
+:1096B000426486B2000400000001C0367200E60079
+:1096C0009B1806B0000287360000F404407C76B593
+:1096D000001E76B4FFE5C7386FC07739FFF0C03A97
+:1096E0004200E6009B1824940036F604407423944C
+:1096F0000038063000028732000076B1001E76B4D2
+:10970000FFE50630000275B1001EC7386FC077381C
+:10971000FFF0F71F28008732000075ACFFE5C7385F
+:109720005FC07738FFF0F727280024940034063014
+:1097300000028732000076B1001E76B4FFE5C7381C
+:109740006FC07738FFF0F7272800249400320630E6
+:1097500000028732000076B1001E76B4FFE5C738FC
+:109760006FC07738FFF0F7272800249400300630C8
+:1097700000028732000076B1001E76B4FFE5C738DC
+:109780006FC07738FFF0F72728002494002E0630AA
+:1097900000028732000076B1001E76B4FFE5C738BC
+:1097A0006FC07738FFF0F72728002494002C06308C
+:1097B00000028732000076B1001E76B4FFE5C7389C
+:1097C0006FC07738FFF0F72728002494002A06306E
+:1097D00000028732000076B1001E76B4FFE5C7387C
+:1097E0006FC07738FFF0F727280006300002873275
+:1097F0000000249400287631001E7630FFE5C7383B
+:1098000067C07738FFF0F72728009413FFFC939385
+:10981000FFFC271400209713FFFC07880008E000D6
+:10982000D0DC9793FFFC07880008E000CBCC97932F
+:10983000FFFCF50440749416FFC407200002F03BBF
+:10984000280024800007F40200FF8396FFC49516C9
+:10985000FFBC031C000A20260007EE0098A806188B
+:10986000000E86B200007731001E7738FFE575B133
+:10987000001E75ACFFE503180002C6B477C076B5CC
+:10988000FFF0F702FF00C6B47400F6B32800873279
+:10989000000004A40001C7385FC07739FFF0C73863
+:1098A0004400E0009854F73328008516FFC47495EF
+:1098B000001E74A4FFE58396FFC42314001E7419D0
+:1098C000001E7420FFE5052800269516FF8C85AA4A
+:1098D000000076A9001E76B4FFE5039C0002939673
+:1098E000FFB4061C00027395001E739CFFE593965F
+:1098F000FFAC7395001E739CFFE59396FF9C8396C7
+:10990000FFBC7515001E7528FFE59516FF947515AB
+:10991000001E7528FFE59516FFA48516FFC4C5AC8B
+:109920006FC075ADFFF0F5054260F5044F58F68243
+:1099300000FFC71C52007738FFFA47390000C738CC
+:109940006C00F682FF00C5AC6C00C73858008396E7
+:10995000FF8CF5843B6C8516FFB4F71F2800871633
+:10996000FFE006AC0001F6853B6C8396FFC4C73868
+:109970004FC07738FFF0F72B2800F5044F58871AAF
+:109980000000C01E5200C73847C07738FFF0F733D9
+:109990002800063000028716FFE42314001A769987
+:1099A000001E8396FF9476B4FFE5C7383FC0773832
+:1099B000FFF0F7332800871A000006300002C7388E
+:1099C0006FC07738FFF0F7332800063000028716A3
+:1099D000FFE8231400167699001E76B4FFE585167D
+:1099E000FFAC8396FFA4C73857C07738FFF0F73332
+:1099F0002800871A0000063000028516FF9CC73831
+:109A00006FC07738FFF0F733280006300002871662
+:109A1000FFEC231400127699001E76B4FFE5C738D8
+:109A20003FC07738FFF0F7332800871A0000063070
+:109A300000028396FFC4C7386FC07738FFF0F73352
+:109A400028008716FFF006300002C73857C0773865
+:109A5000FFF0F7332800071C003AF5BB2800071C6D
+:109A60000036F03B2800F5020003E6009AA4F51F3B
+:109A70002800F7044278F606427876B1001E76B4E4
+:109A8000FFE5C7386FC07739FFF007380001F733BB
+:109A9000280007880008E000789C9793FFFCE0000E
+:109AA0009B1800000001F38642449393FFFC078853
+:109AB0000008E0011F489793FFFC25000007F5050B
+:109AC0004258F7044250F606425076B1001E76B472
+:109AD000FFE5F3820006F3854254F5063934F505B7
+:109AE0004244C7386FC07739FFF0F6842D38073805
+:109AF0000001F733280006340001F6052D38F7067B
+:109B00002C2876B50002F382001C20320044E600C7
+:109B10009B18B3B67002F0052D388796FFFC82962D
+:109B2000FFF802140000013C0000000000019293C5
+:109B3000FFFC0290000822100078F38642449393C1
+:109B4000FFFC07880008E00120E49793FFFC202237
+:109B50000000E6009E4100000001F70442540000AE
+:109B60000001203A0000EE009D8524940036F604A2
+:109B7000407425140038063000028732000076B1A8
+:109B8000001E76B4FFE50630000275B1001EC7382E
+:109B90006FC07738FFF0F72B28008732000075ACD4
+:109BA000FFE5C7385FC07738FFF0F7272800249417
+:109BB0000034063000028732000076B1001E76B411
+:109BC000FFE5C7386FC07738FFF0F72728002494E7
+:109BD0000032063000028732000076B1001E76B4F3
+:109BE000FFE5C7386FC07738FFF0F72728002494C7
+:109BF0000030063000028732000076B1001E76B4D5
+:109C0000FFE5C7386FC07738FFF0F72728002494A6
+:109C1000002E063000028732000076B1001E76B4B6
+:109C2000FFE5C7386FC07738FFF0F7272800249486
+:109C3000002C063000028732000076B1001E76B498
+:109C4000FFE5C7386FC07738FFF0F7272800249466
+:109C5000002A063000028732000076B1001E76B47A
+:109C6000FFE5C7386FC07738FFF0F72728000630C8
+:109C7000000287320000249400287631001E7630DE
+:109C8000FFE5C73867C07738FFF0F7272800F3846F
+:109C9000407C000000019393FFFC9513FFFC23948C
+:109CA00000209396FF949393FFFC07880008E00040
+:109CB000D0DC9793FFFC8396FF9400000001939300
+:109CC000FFFC239400689396FF8C9393FFFC078816
+:109CD0000008E000D2589793FFFC8396FF8C0000A9
+:109CE00000019393FFFC9013FFFC23940050939684
+:109CF000FF849393FFFC07880008E000CF2497932C
+:109D0000FFFC8702FF3400000001F7054264F38482
+:109D1000407C000000019393FFFC9713FFFC8396A7
+:109D2000FF84000000019393FFFC8396FF940000E2
+:109D300000019393FFFC07880008E000F7C89793A1
+:109D4000FFFC20220000E6009D5DF3821770F704FF
+:109D500042540000000127380001F7054254939354
+:109D6000FFFCF382001B9393FFFCF3864244939322
+:109D7000FFFC07880008E0011EC09793FFFCE0008D
+:109D80009E4000000001F504407CF4844074C72824
+:109D90005000C724700005B8002686AE0000772D5D
+:109DA000001E7738FFE5C6B477C077B40008703E70
+:109DB000FFE8470C0001D7000A70203A0000F704C2
+:109DC0004F58E6009DFDF60200FFF7044278F606C4
+:109DD000427A76B1001E76B4FFE5C7386FC0773996
+:109DE000FFF007380001F733280007880008E0007B
+:109DF000789C9793FFFCE0009E400000000186AE37
+:109E00000000772D001E7738FFE5C6B477C076B521
+:109E1000FFF0F7020001C7386400F602FF00C6B485
+:109E20006400C7386800F72F28000728000197133F
+:109E3000FFFC9493FFFC07880008E000BEF89793AE
+:109E4000FFFC8796FFFC8296FFF802140000013C9D
+:109E50000000000000019293FFFC02900008221015
+:109E600000D8F38642449393FFFC07880008E00182
+:109E700020E49793FFFC20220000E600A2C9000026
+:109E80000001F704425400000001203A0000EE00F7
+:109E9000A03524940036F6044074251400380630AA
+:109EA00000028732000076B1001E76B4FFE506306E
+:109EB000000275B1001EC7386FC07738FFF0F72B6E
+:109EC00028008732000075ACFFE5C7385FC07738DF
+:109ED000FFF0F72728002494003406300002873270
+:109EE000000076B1001E76B4FFE5C7386FC0773842
+:109EF000FFF0F72728002494003206300002873252
+:109F0000000076B1001E76B4FFE5C7386FC0773821
+:109F1000FFF0F72728002494003006300002873233
+:109F2000000076B1001E76B4FFE5C7386FC0773801
+:109F3000FFF0F72728002494002E06300002873215
+:109F4000000076B1001E76B4FFE5C7386FC07738E1
+:109F5000FFF0F72728002494002C063000028732F7
+:109F6000000076B1001E76B4FFE5C7386FC07738C1
+:109F7000FFF0F72728002494002A063000028732D9
+:109F8000000076B1001E76B4FFE5C7386FC07738A1
+:109F9000FFF0F727280006300002873200002494E3
+:109FA00000287631001E7630FFE5C73867C0773865
+:109FB000FFF0F7272800F384407C00000001939312
+:109FC000FFFC9513FFFC239400209396FF4C939382
+:109FD000FFFC07880008E000D0DC9793FFFC839625
+:109FE000FF4C000000019393FFFC239400509396D4
+:109FF000FF449393FFFC07880008E000D258979332
+:10A00000FFFC8702FF3400000001F7054264F3847F
+:10A01000407C000000019393FFFC9713FFFC8396A4
+:10A02000FF44000000019393FFFC8396FF4CE00087
+:10A03000A2809393FFFCF404407CF6044074F38206
+:10A040000000C7204000C73070000738002686BADD
+:10A0500000007739001E7738FFE5C6B477C077B4C3
+:10A060000008703EFFE8470C0001D7000A70203A54
+:10A070000000E600A0AD9396FF3CF70442A0F60670
+:10A0800042A076B1001E76B4FFE5C7386FC07739BD
+:10A09000FFF007380001F733280007880008E000C8
+:10A0A000789C9793FFFCE000A2C8000000010630F6
+:10A0B00000028732000076B1001E76B4FFE52494DA
+:10A0C000007E25140080239400680630000275B1DC
+:10A0D000001EC7386FC07738FFF0F72B2800873293
+:10A0E000000075ACFFE5C7385FC07738FFF0F72791
+:10A0F00028002494007C063000028732000076B1EC
+:10A10000001E76B4FFE5C7386FC07738FFF0F72739
+:10A1100028002494007A063000028732000076B1CD
+:10A12000001E76B4FFE5C7386FC07738FFF0F72719
+:10A13000280024940078063000028732000076B1AF
+:10A14000001E76B4FFE5C7386FC07738FFF0F727F9
+:10A15000280024940076063000028732000076B191
+:10A16000001E76B4FFE5C7386FC07738FFF0F727D9
+:10A17000280024940074063000028732000076B173
+:10A18000001E76B4FFE5C7386FC07738FFF0F727B9
+:10A19000280024940072063000028732000076B155
+:10A1A000001E76B4FFE5C7386FC07738FFF0F72799
+:10A1B00028000630000287320000249400707631B7
+:10A1C000001E7630FFE5C73867C07738FFF0F72705
+:10A1D00028009413FFFC9513FFFC9396FF34939390
+:10A1E000FFFC07880008E000D0DC9793FFFC839613
+:10A1F000FF34000000019393FFFC239400B093967A
+:10A20000FF2C9393FFFC07880008E000D258979337
+:10A21000FFFC8396FF2C000000019393FFFC8396C4
+:10A22000FF3C000000019393FFFC23940098939659
+:10A23000FF249393FFFC07880008E000CF24979346
+:10A24000FFFCF3820006F38542548702FF34F38655
+:10A2500038A8F3854244F7054264F384407C00004B
+:10A2600000019393FFFC9713FFFC8396FF240000EB
+:10A2700000019393FFFC8396FF3400000001939349
+:10A28000FFFC07880008E000F7C89793FFFC202236
+:10A290000000E600A2A9F3821770F7044254000000
+:10A2A000000127380001F70542549393FFFCF38225
+:10A2B000001B9393FFFCF38642449393FFFC0788B3
+:10A2C0000008E0011EC09793FFFC8796FFFC829672
+:10A2D000FFF802140000013C00000000000192930E
+:10A2E000FFFC02900008F6046F34F704426486B263
+:10A2F000000400000001C0367200E600A3AC06B006
+:10A3000000028736000076B5001E76B4FFE5C73838
+:10A310006FC0F684407C7739FFF0C03A6A00E600EF
+:10A32000A3ACC7346800F5844074F6044F580000AD
+:10A330000001C62C62007630FFFAC5AC700005AC97
+:10A34000002686AE0000772D001E7738FFE54631E7
+:10A350000000C6B477C076B5FFF0F70200FFC63044
+:10A360007400F702FF00C6B47400C6306800F62F10
+:10A370002800F50642449513FFFC07880008E00119
+:10A380001F489793FFFCF704407C0000000107384A
+:10A3900000019713FFFCF5044074000000019513C1
+:10A3A000FFFC07880008E000BEF89793FFFC879643
+:10A3B000FFFC8296FFF802140000013C0000000040
+:10A3C00000019293FFFC0290000822100080F70425
+:10A3D000425800000001203A0000E600A3F4203AB1
+:10A3E0000007F5020001F5054258F7044258000045
+:10A3F0000001203A0007EE00A6F02394001EF604A8
+:10A40000426023140066F4844078063000028732EC
+:10A41000000076B1001E76B4FFE504A400027425A6
+:10A42000001E7420FFE5063000027531001E7528FD
+:10A43000FFE59516FF7CC7386FC07738FFF025140D
+:10A4400000209516FF94F72B280087320000851610
+:10A45000FF7C05A40002C73857C07738FFF0F71F0C
+:10A4600028002394001C063000028732000076B1D9
+:10A47000001E76B4FFE525140050C7386FC077384A
+:10A48000FFF0F71F28002394001A063000028732DD
+:10A49000000076B1001E76B4FFE5C7386FC077388C
+:10A4A000FFF0F71F280023940018063000028732BF
+:10A4B000000076B1001E76B4FFE5C7386FC077386C
+:10A4C000FFF0F71F280023940016063000028732A1
+:10A4D000000076B1001E76B4FFE5C7386FC077384C
+:10A4E000FFF0F71F28002394001406300002873283
+:10A4F000000076B1001E76B4FFE5C7386FC077382C
+:10A50000FFF0F71F28002394001206300002873264
+:10A51000000076B1001E76B4FFE5C7386FC077380B
+:10A52000FFF0F71F28002394001006300002873246
+:10A53000000076AD001E7631001E7630FFE5C7388C
+:10A5400067C07738FFF0F71F280087260000261421
+:10A550000068C73847C07738FFF0F7332800872EE8
+:10A56000000076B4FFE5C7386FC07738FFF0F71BFF
+:10A5700028002314006405AC0002872E000076AD8D
+:10A58000001E76B4FFE5C7386FC07738FFF0F71BC1
+:10A5900028002314006205AC0002872E000076AD6F
+:10A5A000001E76B4FFE5C7386FC07738FFF0F71BA1
+:10A5B00028002314006005AC0002872E000076AD51
+:10A5C000001E76B4FFE5C7386FC07738FFF0F71B81
+:10A5D00028002314005E05AC0002872E000076AD33
+:10A5E000001E76B4FFE5C7386FC07738FFF0F71B61
+:10A5F00028002314005C05AC0002872E000076AD15
+:10A60000001E76B4FFE5C7386FC07738FFF0F71B40
+:10A6100028002314005A05AC0002872E000076ADF6
+:10A62000001E76B4FFE5C7386FC07738FFF0F71B20
+:10A63000280005AC0002872E00002314005875ADD9
+:10A64000001E75ACFFE5C7385FC07738FFF0F71B19
+:10A6500028009613FFFC9516FF8C9513FFFC0788C6
+:10A660000008E000D2589793FFFC8516FF8C00008D
+:10A6700000019513FFFCF5044258000000019513FA
+:10A68000FFFC251400389516FF849513FFFC0788FE
+:10A690000008E000CF249793FFFCF5044258000027
+:10A6A00000019513FFFCF5044264000000019513BE
+:10A6B000FFFC8516FF84000000019513FFFC851642
+:10A6C000FF94000000019513FFFC07880008E000DC
+:10A6D000F7C89793FFFC20220000E600A6F10000D7
+:10A6E0000001F70442580000000107380001F70597
+:10A6F0004258F704425800000001203A0007EE00DB
+:10A70000A730F5021770F7042D38F6862C28063886
+:10A710000001F6052D3877390002F502001C2032C1
+:10A720000044E600A750B53A6802E000A750F005E3
+:10A730002D389513FFFCF502001B9513FFFCF50661
+:10A7400042449513FFFC07880008E0011EC0979360
+:10A75000FFFC8796FFFC8296FFF802140000013C84
+:10A760000000000000019293FFFC029000082210FC
+:10A770000030F6046F34F704426486B2000400002F
+:10A780000001C0367200E600A9F007300002863AE8
+:10A790000000F5820000F684407C7739001E77388F
+:10A7A000FFE5C63077C0F7044074C6B46800763160
+:10A7B000FFF0C60062009616FFF4C738680007383D
+:10A7C000002686BA00007739001E7738FFE5C6B448
+:10A7D00077C077B40008703EFFE8470C0001D7004F
+:10A7E0000A70203A0000E600A834F60200FF831643
+:10A7F000FFF48396FFF4F7044078C6983800C73812
+:10A8000068000738002686BA00007739001E7738BE
+:10A81000FFE5C6B477C076B5FFF0C6B46400C036B5
+:10A820005A00470C0001D7000A70203A0000E600E9
+:10A83000A83D202E0000F5820001202E0000E60039
+:10A84000A875F606427CF704427C76B1001E76B409
+:10A85000FFE5C7386FC07739FFF007380001F733DD
+:10A86000280007880008E000789C9793FFFCE00030
+:10A87000A9F000000001F3044260000000019313FE
+:10A88000FFFC07880008E000CC609793FFFCF4040D
+:10A890004078F7044F58F5044074F384407CF30487
+:10A8A000407CC62072007630FFFAC59C3000C5A8F7
+:10A8B000580005AC002686AE000074AD001E74A4DE
+:10A8C000FFE573AD001E739CFFE59396FFD4C5288A
+:10A8D00072007528FFFA8316FFF48396FFF4463161
+:10A8E000000045290000C7183800C420700004206B
+:10A8F00000267321001EC6B44FC076B5FFF0F48267
+:10A9000000FFC6304C00F382FF00C6B43C00C630E6
+:10A910006800F62F2800872E00007318FFE59316B5
+:10A92000FFCC8316FFD48396FFF4C5284C00C738AC
+:10A9300037C07739FFF0769D001076B5FFF8C7383D
+:10A940004C00C6B47000F6AF28008722000076A144
+:10A95000001E8316FFCCF382FF0076B4FFE5C738F4
+:10A9600037C07739FFF0C7383C00C5287000F523A1
+:10A97000280087220000F304407CC7386FC0773975
+:10A98000FFF0731900109316FFEC7399FFF8C738A6
+:10A990004C00C71C70009716FFDC23140022831A9A
+:10A9A00000007799001E77BCFFE5C3187FC07319BC
+:10A9B000FFF0F3232800F38642449393FFFC0788BB
+:10A9C0000008E0011F489793FFFCF704407C00005B
+:10A9D0000001073800019713FFFCF30440740000E6
+:10A9E00000019313FFFC07880008E000BEF897936E
+:10A9F000FFFC8796FFFC8296FFF802140000013CE2
+:10AA00000000000000019293FFFC02900008221059
+:10AA10000098F30642449313FFFC07880008E00106
+:10AA200020E49793FFFC20220000E600AEE5000042
+:10AA30000001F704425400000001203A0000EE003B
+:10AA4000AD8927380001F70542542394001EF6040F
+:10AA50004260249400669496FF64F3044078249442
+:10AA600000209496FF94063000028732000076B1F1
+:10AA7000001E76B4FFE5031800029316FF747419E4
+:10AA8000001E7420FFE505980002063000027531B3
+:10AA9000001EC7386FC07738FFF0F72728008732CD
+:10AAA00000007528FFE5C73857C07738FFF0F71F5B
+:10AAB00028002394001C063000028732000076B183
+:10AAC000001E76B4FFE58516FF64C7386FC077387F
+:10AAD000FFF0F71F28002394001A06300002873287
+:10AAE000000076B1001E76B4FFE5C7386FC0773836
+:10AAF000FFF0F71F28002394001806300002873269
+:10AB0000000076B1001E76B4FFE5C7386FC0773815
+:10AB1000FFF0F71F2800239400160630000287324A
+:10AB2000000076B1001E76B4FFE5C7386FC07738F5
+:10AB3000FFF0F71F2800239400140630000287322C
+:10AB4000000076B1001E76B4FFE5C7386FC07738D5
+:10AB5000FFF0F71F2800239400120630000287320E
+:10AB6000000076B1001E76B4FFE5C7386FC07738B5
+:10AB7000FFF0F71F280023940010063000028732F0
+:10AB8000000076AD001E7631001E7630FFE5C73836
+:10AB900067C07738FFF0F71F2800871A00002614D7
+:10ABA0000068C73847C07738FFF0F7332800872E92
+:10ABB000000076B4FFE5C7386FC07738FFF0F72B99
+:10ABC0002800231400649316FF6405AC0002872E4E
+:10ABD000000076AD001E76B4FFE5C7386FC0773849
+:10ABE000FFF0F71B2800249400629496FF6405ACE4
+:10ABF0000002872E000076AD001E76B4FFE5C73850
+:10AC00006FC07738FFF0F7272800251400609516ED
+:10AC1000FF6405AC0002872E000076AD001E76B4FE
+:10AC2000FFE5C7386FC07738FFF0F72B28002314F3
+:10AC3000005E9316FF6405AC0002872E000076AD1F
+:10AC4000001E76B4FFE5C7386FC07738FFF0F71BFA
+:10AC500028002494005C9496FF6405AC0002872EC3
+:10AC6000000076AD001E76B4FFE5C7386FC07738B8
+:10AC7000FFF0F72728002514005A9516FF6405AC4D
+:10AC80000002872E000076AD001E76B4FFE5249406
+:10AC90000050C7386FC07738FFF0F72B2800231417
+:10ACA000005805AC0002872E00009316FF6475ADB6
+:10ACB000001E75ACFFE5C7385FC07738FFF0F71BA3
+:10ACC00028009613FFFC9496FF8C9493FFFC078852
+:10ACD0000008E000D2589793FFFC8516FF8C2314E0
+:10ACE00000389513FFFC278000079793FFFC93160D
+:10ACF000FF849313FFFC07880008E000CF2497939C
+:10AD0000FFFC27800007F7854258278000079793AC
+:10AD1000FFFCF4844264000000019493FFFC85165C
+:10AD2000FF84000000019513FFFC8316FF940000D0
+:10AD300000019313FFFC07880008E000F7C8979311
+:10AD4000FFFC20220000E600AD5D00000001F704DA
+:10AD500042580000000107380001F7054258F70487
+:10AD60002D38F6862C2806380001F6052D3877395F
+:10AD70000002F482001C20320044E600AEE4B4BAC3
+:10AD80006802E000AEE4F0052D38F7044078F58461
+:10AD90004F580738001686BA0000F4063B90773902
+:10ADA000001E7738FFE5C6B477C076B4FFF076357D
+:10ADB0000006A72E6002C52C600076A9001E76B49E
+:10ADC000FFE5C7386FC07739FFF077390003C73820
+:10ADD00040000738000286BA00007739001E773835
+:10ADE000FFE5C6B477C073B7FFF0EE00AE55951619
+:10ADF000FF64A72E600276A9001E76B4FFE5C7386F
+:10AE00006FC07739FFF077390003C738400086BA42
+:10AE10000004231400887739001E7738FFE5C6B494
+:10AE200077C076B5FFF0A6AA6802771D0003C73881
+:10AE3000680027380008853A000484BA0000000042
+:10AE40000001951A0004949A00008596FF7CE000AA
+:10AE5000AE78000000018496FF64A72E600276A5FC
+:10AE6000001E76B4FFE5C7386FC07739FFF0773939
+:10AE70000003C738400085BA00048516FF64F60653
+:10AE80003B90872A000076A9001E76B4FFE5C738FC
+:10AE90006FC07739FFF077390003A6BA6002201E31
+:10AEA0000000C73860007739001E7738FFE5C6B468
+:10AEB00077C0EE00AEC976B5FFF08316FF780000CC
+:10AEC00000017719FFF0C6B868008496FF6400009F
+:10AED0000001C72468009713FFFC07880008C12CF5
+:10AEE00000009793FFFC8796FFFC8296FFF8021400
+:10AEF0000000013C0000000000019293FFFC029062
+:10AF0000000822100010F704408400000001203ADD
+:10AF10000000E600AF3CF60642B8F70442B876B14E
+:10AF2000001E76B4FFE5F3063678F3054244C738D1
+:10AF30006FC07739FFF007380001F7332800F704B6
+:10AF40004F5CF384425C833A0004C43800009316DB
+:10AF5000FFEC771D0001C73838007739000204B8CC
+:10AF6000000C8316FFEC00000001C01E3200EC0054
+:10AF7000B070C5040000A6A24802F704E000F58204
+:10AF80000000C0367200E600AFA8C620480086B2B6
+:10AF90000004F704E00400000001C0367200E6007F
+:10AFA000AFAC202E0000F5820001202E0000E6004C
+:10AFB000AFB900000001F502000086B20000F704FE
+:10AFC000E00000000001C0367200E200AFF4F5823C
+:10AFD0000000C0367200E600AFFC202E000086B2F2
+:10AFE0000004F704E00400000001C0367200E20033
+:10AFF000AFFD202E0000F5820001202E0000E600AB
+:10B00000B00D202A0000F5020001202A0000E60011
+:10B01000B05900000001F7047AD000000001203A86
+:10B020000000E600B064C7204800873A0008F60632
+:10B03000409877390002A6BA6002C73860007739B5
+:10B04000001E7738FFE5C6B477C076B5FFF020362E
+:10B050000000E600B0640000000104A4000CE00061
+:10B06000AF60039C00018316FFEC00000001C01ECE
+:10B070003200EC00B104F3063678F6844F5C771D9D
+:10B080000001C7383800773900020738000CC6B411
+:10B09000700087360008F6844F5877390006C6B42A
+:10B0A00070009693FFFC9396FFF407880008E00079
+:10B0B000FA989793FFFC20220000F684426C839656
+:10B0C000FFF4470C0001D7000A70C71C7000F70599
+:10B0D000425C06B40001F7042D38F685426CF68612
+:10B0E0002C2806380001F6052D3877390002F302C6
+:10B0F000001C20320044E600B108B33A6802E000C8
+:10B10000B108F0052D38F30542448796FFFC82967E
+:10B11000FFF802140000013C0000000000019293BF
+:10B12000FFFC02900008F4020000C5A00000F682B7
+:10B130000770F7046E5020360000E600B16D063847
+:10B14000001C8732000000000001C4207000C022F3
+:10B150007200E400B15D0000000105AC000126B4FE
+:10B16000000120360000E600B14006300004C42093
+:10B170005800C0225A00E400B18100000001042000
+:10B1800000018796FFFC8296FFF802140000013C44
+:10B190000000000000019293FFFC02900008078865
+:10B1A0000008E00078D89793FFFC07880008E000CB
+:10B1B000B11C9793FFFCF704409400000001C022EB
+:10B1C0007200E600B1EDF4054090F7046E50000007
+:10B1D000000186BA1DDCF582000106B4000196BAB2
+:10B1E0001DDC873A1DDCE000B1F0F5857AD0F00572
+:10B1F0007AD0F5844090F0054084F5854094F5863A
+:10B20000E0009593FFFC07880008E000D5A0979325
+:10B21000FFFCF7046E50F405408485BA1DDC000085
+:10B220000001F5853B64F584E000F005425C95BAC9
+:10B230000010F584E004F6862C2895BA0014F70473
+:10B240002D38F5863A4CF585424406380001F6055E
+:10B250002D3877390002F582001C20320044E600C8
+:10B26000B268B5BA6802F0052D38F58635ECF5857B
+:10B2700042308796FFFC8296FFF802140008013CDA
+:10B280000000000000019293FFFC029000082210D1
+:10B2900000C8F30200009316FF94248000089496DF
+:10B2A000FF84238000078316FF940000000193169B
+:10B2B000FF54201E0007EE00B564C71C38008496BA
+:10B2C000000000000001C72470000738002686BA7D
+:10B2D0000000F5844F587739001E7738FFE5C6B473
+:10B2E00077C076B5FFF0F70200FFC6B67400E6003F
+:10B2F000B32D20360001E600B32D77350006A6BA3F
+:10B300005802C73858007639001E7630FFE5C6B4BB
+:10B3100067C076B5FFF020360002E600B331C6B84C
+:10B320000000C72C0000E000B330C6B80000F6846F
+:10B330004F58F7044F58C5340000C02A7200E60089
+:10B34000B55D00000001F6843BBCF30200009316DB
+:10B35000FF3C0428001CF7043BB800000001C03685
+:10B360007200EC00B4409696FFAC77350001C73808
+:10B37000680077390002F4863BB4C63848000630CE
+:10B38000000CC30400009316FF3486B20000872A25
+:10B39000001C8596FF3CC0367200E600B3C0202E2C
+:10B3A000000086B20004872A002000000001C03699
+:10B3B0007200E600B3C0202E0000F5820001202EAE
+:10B3C0000000E600B3D100000001F4820000949672
+:10B3D000FF3486B200008722000000000001C03662
+:10B3E0007200E200B40CF5820000C0367200E60084
+:10B3F000B414202E000086B200048722000400004E
+:10B400000001C0367200E200B415202E0000F58263
+:10B410000001202E0000E600B42500000001F30228
+:10B4200000019316FF348496FF34000000012026AB
+:10B430000000E600B44000000001F3020001931692
+:10B44000FF3C8496FF3C0000000120260000E6003F
+:10B45000B481F60200018716FFACF3063BB476B95F
+:10B460000001C6B4700076B50002C6B4300006B460
+:10B47000001486B600009716FFB0E000B4F496966C
+:10B48000FFB4271400549713FFFC9413FFFCF486B9
+:10B490003BB49493FFFC9396FF4C9516FF440788AA
+:10B4A0000008E00125689793FFFC8396FF4C851602
+:10B4B000FF4420220000E600B4F1F60200018716E6
+:10B4C000FFACF3063BB476B90001C6B4700076B5A4
+:10B4D0000002C6B4300006B4001486B60000971609
+:10B4E000FFB09696FFB4F7053BBCE000B4F82032FD
+:10B4F0000000F602000020320000E600B52D2714FF
+:10B5000000088496FF5400000001C72470008316D1
+:10B51000FFB404A400049496FF548496FF94933AD5
+:10B52000FFC004A40001E000B5549496FF94831674
+:10B53000FF5400000001C7187000F4844F5803182E
+:10B5400000049316FF548316FF9494BAFFC00318A7
+:10B5500000019316FF949516FF3C9396FF8CE00034
+:10B56000B2B0039C00018496FF94000000012026E5
+:10B570000000E600B584F3820001F4044F58E000B7
+:10B58000BEE4000000018316FFB88496FF9400001B
+:10B590000001C01E4A00EC00B5CC9316FF7C269437
+:10B5A00000048736FFC08316FF7C00000001C03A0C
+:10B5B0003200E600BB98039C00018496FF940000D3
+:10B5C0000001C01E4A00EC00B5A106B40004F4045A
+:10B5D0004F588316FF7C00000001C01A4200E600AD
+:10B5E000BA2DF48200009496FF7423800007201E79
+:10B5F0000007EE00B748C71C38008316FF7C000028
+:10B600000001C71870000738002686BA0000F584CC
+:10B610004F587739001E7738FFE5C6B477C076B546
+:10B62000FFF0F70200FFC6B67400E600B6692036E8
+:10B630000001E600B66977350006A6BA5802C73899
+:10B6400058007639001E7630FFE5C6B467C076B57F
+:10B65000FFF020360002E600B66DC6B80000C72C29
+:10B660000000E000B66CC6B80000F6844F58F7043E
+:10B670004F58C5340000C02A7200E600B741C584A7
+:10B6800000008496FF7486AA001C8316FF3CF60215
+:10B69000000004A400019496FF74871A001C04A8FB
+:10B6A000001C9496FF34C0367200E600B6CC041835
+:10B6B000001C86AA0020871A002000000001C03666
+:10B6C0007200E600B6D020320000F60200012032FF
+:10B6D0000000E600B6DD00000001F58200008316E0
+:10B6E000FF3487220000869A000000000001C03667
+:10B6F0007200E200B71CF6020000C0367200E600DD
+:10B70000B72420320000869A00048722000400003B
+:10B710000001C0367200E200B72520320000F602B8
+:10B72000000120320000E600B735202E0000F5822F
+:10B730000001202E0000E600B740000000019396B3
+:10B74000FF84E000B5EC039C00018496FF7483162F
+:10B75000FF9400000001C0263200E600BB982300E1
+:10B7600000088496FF8400000001C0263200E60035
+:10B77000BB99F6020000F684407CF7044074C6B41E
+:10B780006800C73868000738002686BA0000773995
+:10B79000001E7738FFE5C6B477C077B40008703E66
+:10B7A000FFE8470C0001D7000A70203A0000E600CD
+:10B7B000B804F58200FF8496FF848316FF8C000096
+:10B7C0000001C72432008496FF7CC7387000C7246C
+:10B7D00070000738002686BA00007739001E7738D7
+:10B7E000FFE5C6B477C076B5FFF0C6B45C00C036DE
+:10B7F0006200470C0001D7000A70203A0000E60002
+:10B80000B80D20320000F602000120320000E600F0
+:10B81000BB9823800007201E0007EE00B8C8C71C95
+:10B8200038008316000000000001C71870000738B8
+:10B83000002686BA0000F5844F587739001E773805
+:10B84000FFE5C6B477C076B5FFF0F70200FFC6B6D5
+:10B850007400E600B89120360001E600B891773513
+:10B860000006A6BA5802C73858007639001E76304E
+:10B87000FFE5C6B467C076B5FFF020360002E600EB
+:10B88000B895C6B80000C72C0000E000B894C6B850
+:10B890000000F6844F58F7044F58C5340000C02A02
+:10B8A0007200E600B8C1000000019513FFFC9396FA
+:10B8B000FF4C07880008E000CC609793FFFC83965C
+:10B8C000FF4CE000B814039C00018496FF848316AB
+:10B8D000FF8CF384407CF5044074C4A43200949639
+:10B8E000FF348316FF34C59C3800C5A8580005AC4A
+:10B8F000002686AE0000772D001E7738FFE5742DF8
+:10B90000001E7420FFE5739D0010739DFFF8C4A412
+:10B9100030009496FF3C8316FF7CC6B477C0C49871
+:10B9200048009496FF3C04A400269496FF3C73259F
+:10B93000001E7318FFE59316FF6C74A5001E949605
+:10B94000FF6474A4FFE59496FF648316FF7CF4847F
+:10B950004F5876B5FFF0C6184A007630FFFA4631E8
+:10B960000000F30200FFC6303400F482FF00C6B4CA
+:10B970004C00C6306800F62F2800872E0000831682
+:10B98000FF34C73847C07739FFF07319001093169A
+:10B99000FF347499FFF8F30200FFC7383400C7245E
+:10B9A00070009716FF34249400CA84A6000077A57F
+:10B9B000001E77BCFFE5C4A47FC074A5FFF083160A
+:10B9C000FF3CF4AF2800F4844F58871A0000C528C4
+:10B9D0004A007528FFFA8316FF6C45290000F4829F
+:10B9E00000FFC5284C008496FF3CC73837C0773924
+:10B9F000FFF0F302FF00C7383400C5287000F527B8
+:10BA00002800872600008316FF648416FF7CC73851
+:10BA100037C07739FFF0F48200FFC7384C00831637
+:10BA2000FF3CC39C7000E000BEE4F39B2800F704D9
+:10BA3000407CF6044074C7387000C7307000073887
+:10BA4000002686BA00007739001E7738FFE5C6B4B5
+:10BA500077C077B40008703EFFE8470C0001D700BC
+:10BA60000A70203A0000E600BA7D25800007E00059
+:10BA7000BEE404200040E000BAD8C42C0000C73067
+:10BA80004200849600007538FFFA0624000A202E32
+:10BA90000007EE00BAD40730000E86BA00007739EE
+:10BAA000001E7738FFE5C6B477C076B5FFF0F70221
+:10BAB00000FFC6B4740047290000C0367200470C6E
+:10BAC0000001203A0000E600BA7406300002E000EF
+:10BAD000BA8C05AC0001F402000807200007203AE8
+:10BAE000000EE200BBA4C5A0400083160000F504D0
+:10BAF000407CF48200FFF6044F58C598580005AC0E
+:10BB0000002686AE0000772D001E7738FFE5C618A8
+:10BB100062007630FFFA46310000C6304C00C6B4F1
+:10BB200077C076B5FFF0772900107739FFF8C6B4F3
+:10BB30004C00C7386800F72F2800F5844074C528EA
+:10BB40005000C5AC500005AC002686AE0000772D35
+:10BB5000001E7738FFE5752D001E7528FFE5C6B479
+:10BB600077C076B5FFF0F702FF00C6B47400C630A8
+:10BB70006800F62F2800872E000076A1001076B509
+:10BB8000FFF8C73857C07739FFF0C7384C00C6B444
+:10BB90007000E000BBF8F6AF2800F4044F58E00056
+:10BBA000BEE404200040F6044F5883160000F7045A
+:10BBB000407CF5844074C61862007630FFFAC738BE
+:10BBC0007000C5AC700005AC002686AE0000772D75
+:10BBD000001E7738FFE546310000C6B477C076B561
+:10BBE000FFF0F70200FFC6307400F702FF00C6B492
+:10BBF0007400C6306800F62F280023800007201E3E
+:10BC00000007EE00BEE0C71C38008496000000006C
+:10BC10000001C72470000738002686BA0000F584AA
+:10BC20004F587739001E7738FFE5C6B477C076B530
+:10BC3000FFF0F70200FFC6B67400E600BC792036BC
+:10BC40000001E600BC7977350006A6BA5802C7386D
+:10BC500058007639001E7630FFE5C6B467C076B569
+:10BC6000FFF020360002E600BC7DC6B80000C72CFD
+:10BC70000000E000BC7CC6B80000F6844F58F70412
+:10BC80004F58C5340000C02A7200E600BED906A88D
+:10BC9000001C83160000000000019313FFFC969324
+:10BCA000FFFCF4863BB49493FFFC9396FF4C9516EF
+:10BCB000FF449696FF4007880008E00123409793D1
+:10BCC000FFFCF3044F5CF48200009496FF5C8696C0
+:10BCD000FF408396FF4C8516FF449316FF34861A67
+:10BCE00000089696FF3C871A000400000001C0324D
+:10BCF0007200EC00BDB89616FF9C77310001C73882
+:10BD0000600077390002C63830000630000C86B279
+:10BD10000000872A001C8596FF5CC0367200E60092
+:10BD2000BD40C404000086B20004872A0020000041
+:10BD30000001C0367200E600BD44202E0000F582EE
+:10BD40000001202E0000E600BD5100000001F402B9
+:10BD500000008316FF3C86B20000871A0000000036
+:10BD60000001C0367200E200BD90F5820000C036CE
+:10BD70007200E600BD98202E000086B20004871AEB
+:10BD8000000400000001C0367200E200BD99202EC0
+:10BD90000000F5820001202E0000E600BDA920224F
+:10BDA0000000F402000120220000E600BDB80000FF
+:10BDB0000001F48200019496FF5C8316FF5C000092
+:10BDC0000001201A0000E600BDF9F6020001871606
+:10BDD000FF9C8496FF3476B90001C6B4700076B536
+:10BDE0000002C6B4480006B4001486B600009716D8
+:10BDF000FFA0E000BE709696FFA42714006497137E
+:10BE0000FFFC8316FF3C000000019313FFFC8496A7
+:10BE1000FF34000000019493FFFC9396FF4C9516AD
+:10BE2000FF4407880008E00125689793FFFC83968C
+:10BE3000FF4C8516FF4420220000E600BE71F6028A
+:10BE400000008716FF9C8316FF3476B90001C6B444
+:10BE5000700076B50002C6B4300006B4001486B691
+:10BE600000009716FFA09696FFA4971A0008F60206
+:10BE7000000120320000E600BE99F606429CF7045D
+:10BE8000429C76B1001E76B4FFE5C7386FC07739A3
+:10BE9000FFF007380001F7332800F7044F5800007F
+:10BEA0000001C72872007738FFFA4739000097135E
+:10BEB000FFFC0728001C9713FFFCF4844F5C000074
+:10BEC00000019493FFFC9396FF4C07880008E00163
+:10BED00023409793FFFC8396FF4CE000BBFC039C40
+:10BEE0000001841600008796FFFC8296FFF802147A
+:10BEF0000004013C0000000000019293FFFC02904E
+:10BF0000000822100060851600008616000406A8AE
+:10BF10000018C7306000C5B8680020320007EE0086
+:10BF2000BF64072C000E86BA00007739001E7738F0
+:10BF3000FFE5C6B477C076B5FFF0F70200FFC6B4E0
+:10BF4000740020360000470C0001D7000A70203A28
+:10BF50000000E600BF6105AC0002E000BF1806303B
+:10BF6000000120320007EE00C04C06A80016F505BF
+:10BF70004074F605407CF3020006F3054254961324
+:10BF8000FFFC052800029516FFC49513FFFC2394BF
+:10BF900000209396FFBC9393FFFC9616FFAC078896
+:10BFA0000008E000D0DC9793FFFC8496FFC42314C4
+:10BFB00000389493FFFC9316FFB49313FFFC07889B
+:10BFC0000008E000D2589793FFFC8702FF348616E2
+:10BFD000FFACF70542649613FFFC9713FFFC8396B2
+:10BFE000FFB4000000019393FFFC8496FFBC0000A7
+:10BFF00000019493FFFC07880008E000F7C89793BE
+:10C00000FFFC20220000E600C01DF3063AD8F7042A
+:10C0100042540000000127380001F7054254F3059F
+:10C020004244F38217709393FFFCF482001B9493B5
+:10C03000FFFCF30642449313FFFC07880008E0016D
+:10C040001EC09793FFFCE000C1A0000000018736EE
+:10C050000000F5844F58F4063B7076B5001E76B4A8
+:10C06000FFE5C7386FC07738FFF076390006A72E96
+:10C070006002C52C600076A9001E76B4FFE5C738C3
+:10C080006FC07739FFF077390003C73840000738B1
+:10C09000000286BA00007739001E7738FFE5C6B483
+:10C0A00077C076B7FFF0EE00C1159696FF9CA72EDD
+:10C0B000600276A9001E76B4FFE58396FF9CC73820
+:10C0C0006FC07739FFF077390003C738400086BA70
+:10C0D0000004249400607739001E7738FFE5C6B469
+:10C0E00077C076B5FFF0A6AA6802771D0003C738AF
+:10C0F00068002738000883BA0004833A0000000073
+:10C10000000193A60004932600008596FFA4E0009A
+:10C11000C13823000007A72E600276A9001E76B45E
+:10C12000FFE5C7386FC07739FFF077390003C738AC
+:10C13000400085BA0004230000079313FFFC872A00
+:10C14000000076A9001E76B4FFE58396FF9CF606F4
+:10C150003B70C7386FC07739FFF077390003A6BA54
+:10C160006002201E0000C73860007739001E773853
+:10C17000FFE5C6B477C0EE00C18D76B5FFF08496BA
+:10C18000FFA0000000017725FFF0C6B86800C728AF
+:10C1900068009713FFFC07880008C12C00009793E4
+:10C1A000FFFC8796FFFC8296FFF802140008013C12
+:10C1B0000000000000019293FFFC02900008221092
+:10C1C000007025000007202A0007EE00C3B8C7282A
+:10C1D00050008316000000000001C71870000738E7
+:10C1E000002686BA0000F5844F587739001E77384C
+:10C1F000FFE5C6B477C076B5FFF0F70200FFC6B61C
+:10C200007400E600C23D20360001E600C23D7735ED
+:10C210000006A6BA5802C73858007639001E763094
+:10C22000FFE5C6B467C076B5FFF020360002E60031
+:10C23000C24DC03A5A00E000C248C72C0000F704C3
+:10C240004F58F5844F5800000001C03A5A00E600EC
+:10C25000C3B1F4863B908396000000000001069C69
+:10C2600000168736000076B5001E76B4FFE5C738A5
+:10C270006FC07738FFF076390006A72E6002C52C14
+:10C28000600076A9001E76B4FFE5C7386FC0773925
+:10C29000FFF077390003C73848000738000286BA34
+:10C2A00000007739001E7738FFE5C6B477C076B74F
+:10C2B000FFF0EE00C3219696FF8CA72E600276A9B0
+:10C2C000001E76B4FFE58316FF8CC7386FC0773940
+:10C2D000FFF077390003C738480086BA0004249479
+:10C2E00000707739001E7738FFE5C6B477C076B5A1
+:10C2F000FFF0A6AA680277190003C738680027383C
+:10C30000000883BA0004833A00000000000193A6ED
+:10C310000004932600008616FF94E000C34400004A
+:10C320000001A72E600276A9001E76B4FFE5F30691
+:10C330003B90C7386FC07739FFF077390003C738B3
+:10C340003000863A0004872A000076A9001E76B4E1
+:10C35000FFE58396FF8CF4863B90C7386FC0773932
+:10C36000FFF077390003A6BA4802201E0000C73844
+:10C3700048007739001E7738FFE5C6B477C0EE0075
+:10C38000C39576B5FFF08316FF9000000001771982
+:10C39000FFF0C6B86800C72868009713FFFC07883D
+:10C3A0000008C13000009793FFFCE000C5C4000006
+:10C3B0000001E000C1C40528000183960000F4825A
+:10C3C0000006F4854254F60442602514001E23142E
+:10C3D00000209316FFACF3854078063000028732C8
+:10C3E000000076B1001E76B4FFE50630000275B19C
+:10C3F000001EC7386FC07738FFF0F71B2800873260
+:10C40000000075ACFFE5C7385FC07738FFF0F72B49
+:10C4100028002514001C063000028732000076B187
+:10C42000001E76B4FFE5C7386FC07738FFF0F72BF2
+:10C4300028002514001A063000028732000076B169
+:10C44000001E76B4FFE5C7386FC07738FFF0F72BD2
+:10C45000280025140018063000028732000076B14B
+:10C46000001E76B4FFE5C7386FC07738FFF0F72BB2
+:10C47000280025140016063000028732000076B12D
+:10C48000001E76B4FFE5C7386FC07738FFF0F72B92
+:10C49000280025140014063000028732000076B10F
+:10C4A000001E76B4FFE5C7386FC07738FFF0F72B72
+:10C4B000280025140012063000028732000076B1F1
+:10C4C000001E76B4FFE5C7386FC07738FFF0F72B52
+:10C4D0002800063000028732000025140010763153
+:10C4E000001E7630FFE5C73867C07738FFF0F72BBE
+:10C4F0002800071C00029713FFFC2394005093961A
+:10C50000FFA49393FFFC07880008E000D25897939C
+:10C51000FFFC8496FFA4231400389493FFFC27802B
+:10C5200000079793FFFC9316FF9C9313FFFC07886B
+:10C530000008E000CF249793FFFC8702FF34278098
+:10C540000007F7854258F705426427800007979354
+:10C55000FFFC9713FFFC8396FF9C00000001939360
+:10C56000FFFC8496FFAC000000019493FFFC078859
+:10C570000008E000F5F49793FFFC20220000E6009D
+:10C58000C59500000001F70442580000000107387B
+:10C590000001F7054258F7042D38F30639C0F305BA
+:10C5A0004244F6862C2806380001F6052D387739E6
+:10C5B0000002F382001C20320044E600C5C4B3BA76
+:10C5C0006802F0052D388796FFFC8296FFF802146A
+:10C5D0000004013C0000000000019293FFFC029067
+:10C5E000000825000007F7044074F6844F58F6044D
+:10C5F0004260C7386A0075B8FFFA0630000A202A80
+:10C600000007EE00C6480730000E86BA00007739F2
+:10C61000001E7738FFE5C6B477C076B5FFF0F702A5
+:10C6200000FFC6B47400472D0000C0367200470CEE
+:10C630000001203A0000E600C64CC3280000063086
+:10C640000002E000C5FC05280001F3020008C5183F
+:10C650003000F3844260F6044F58F704407CF484C1
+:10C660004074C51C50000528002685AA00007429C6
+:10C67000001E7420FFE5C61C62007630FFFAC6B8C3
+:10C680007000C4A4680004A4002676A5001E76B439
+:10C69000FFE5773900107739FFF846310000C5AC67
+:10C6A00047C075ADFFF0F40200FFC5AC4400C738C9
+:10C6B0005800F72B28008726000075A5001EC630FD
+:10C6C000440075ACFFE5C7386FC07739FFF0F682DC
+:10C6D000FF00C7386C00C6307000F6272800872698
+:10C6E00000007699001076B5FFF8C7385FC077393B
+:10C6F000FFF0C7384400C6B47000F6A72800939333
+:10C70000FFFCF3843BB0000000019393FFFC07881B
+:10C710000008E000D42C9793FFFCF704407C000055
+:10C720000001073800019713FFFCF38440740000F8
+:10C7300000019393FFFC07880008E000BEF8979380
+:10C74000FFFC8796FFFC8296FFF802140004013C70
+:10C750000000000000019293FFFC02900008879601
+:10C76000FFFC8296FFF802140008013C0000000064
+:10C7700000019293FFFC029000088796FFFC8296CE
+:10C78000FFF802140004013C000000000001929335
+:10C79000FFFC029000088796FFFC8296FFF80214C7
+:10C7A0000000013C0000000000019293FFFC029099
+:10C7B0000008F70642309713FFFCF7063560971321
+:10C7C000FFFC07880008E00014F49793FFFCF706CD
+:10C7D00042309713FFFCF70635EC9713FFFC0788F0
+:10C7E0000008E00014F49793FFFCF7064244971307
+:10C7F000FFFCF70636789713FFFC07880008E00077
+:10C8000014F49793FFFCF70642449713FFFCF706D6
+:10C8100037049713FFFC07880008E00014F497938F
+:10C82000FFFCF70642449713FFFCF7063790971377
+:10C83000FFFC07880008E00014F49793FFFCF7065C
+:10C8400042449713FFFCF706381C9713FFFC078838
+:10C850000008E00014F49793FFFCF7064244971396
+:10C86000FFFCF70638A89713FFFC07880008E000D4
+:10C8700014F49793FFFCF70642449713FFFCF70666
+:10C8800039349713FFFC07880008E00014F49793ED
+:10C89000FFFCF70642449713FFFCF70639C09713D5
+:10C8A000FFFC07880008E00014F49793FFFCF706EC
+:10C8B00042449713FFFCF7063A4C9713FFFC078896
+:10C8C0000008E00014F49793FFFCF7064244971326
+:10C8D000FFFCF7063AD89713FFFC07880008E00032
+:10C8E00014F49793FFFC8796FFFC8296FFF80214DE
+:10C8F0000000013C0000000000019293FFFC029048
+:10C90000000885960000F5063B90872E000076AD66
+:10C91000001E76B4FFE5C7386FC07739FFF077396E
+:10C920000003C73850000738000286BA0000773984
+:10C93000001E7738FFE5C6B477C07637FFF0EE000B
+:10C94000C99500000001872E000076AD001E76B468
+:10C95000FFE5C7386FC07739FFF077390003C73874
+:10C96000500086BA00047739001E7738FFE5C6B458
+:10C9700077C076B5FFF0A6AE680277310003C738FE
+:10C9800068002738000884BA0004843A0000E000F8
+:10C99000C9B4C5240000872E000076AD001E76B411
+:10C9A000FFE5C7386FC07739FFF077390003C73824
+:10C9B0005000853A0004872E000076AD001E76B444
+:10C9C000FFE520320000F6063B90C7386FC077398C
+:10C9D000FFF077390003A6BA6002C73860007739E4
+:10C9E000001E7738FFE5C6B477C0EE00C9F976B50A
+:10C9F000FFF07721FFF0C6B86800C72C68009713D6
+:10CA0000FFFC07880008C12800009793FFFC879669
+:10CA1000FFFC8296FFF802140004013C00000000B5
+:10CA200000019293FFFC0290000885960000F50635
+:10CA30003B70872E000076AD001E76B4FFE5C73848
+:10CA40006FC07739FFF077390003C73850000738D7
+:10CA5000000286BA00007739001E7738FFE5C6B4B9
+:10CA600077C07637FFF0EE00CABD00000001872EC8
+:10CA7000000076AD001E76B4FFE5C7386FC0773989
+:10CA8000FFF077390003C738500086BA00047739C1
+:10CA9000001E7738FFE5C6B477C076B5FFF0A6AEC6
+:10CAA000680277310003C73868002738000884BA65
+:10CAB0000004843A0000E000CADCC5240000872E90
+:10CAC000000076AD001E76B4FFE5C7386FC0773939
+:10CAD000FFF077390003C7385000853A0004839689
+:10CAE000000476AD001E76B4FFE52032000093937B
+:10CAF000FFFC872E0000F6063B70C7386FC0773901
+:10CB0000FFF077390003A6BA6002C73860007739B2
+:10CB1000001E7738FFE5C6B477C0EE00CB2976B5A6
+:10CB2000FFF07721FFF0C6B86800C72C68009713A4
+:10CB3000FFFC07880008C12800009793FFFC879638
+:10CB4000FFFC8296FFF802140008013C0000000080
+:10CB500000019293FFFC02900008F5044F58F58203
+:10CB6000000206280080202E0062EE00CB900730E5
+:10CB70000040F0332800C6B8520076B4FFFA063001
+:10CB80000014F6B32800C6380000E000CB6405AC02
+:10CB90000001F7044F580000000106B818D4F482D1
+:10CBA0000001F4B72800073818C0F03B2800F7064A
+:10CBB00042C0F4820002F4BB28008796FFFC8296F4
+:10CBC000FFF802140000013C0000000000019293F5
+:10CBD000FFFC02900008F68442C0F60642C077319E
+:10CBE000001E7738FFE575B1001EC6B477C076B475
+:10CBF000FFF0F7044F5876B50006C4386800872266
+:10CC0000001476A1001E76B4FFE5C7386FC07738F0
+:10CC1000FFF0F7332800F70442C075ACFFE5C738D2
+:10CC20005FC07738FFF0203A0001E600CC4CF606F2
+:10CC30004290F704429076B1001E76B4FFE5C73803
+:10CC40006FC07739FFF007380001F7332800879667
+:10CC5000FFFC8296FFF802140000013C0000000077
+:10CC600000019293FFFC0290000822100004851638
+:10CC70000000000000019513FFFC9516FFF40788E3
+:10CC80000008E000CD009793FFFC8516FFF42022FA
+:10CC90000000E600CCBCF58642C0F7044290F606E0
+:10CCA000429276B1001E76B4FFE5C7386FC077397F
+:10CCB000FFF007380001E000CCECF7332800F02B40
+:10CCC0002800F68442C0772D001E7738FFE506283D
+:10CCD0000014C6B477C076B4FFF0F7044F58F6B32B
+:10CCE0002800C72872007738FFFAF72F28008796A8
+:10CCF000FFFC8296FFF802140004013C00000000D3
+:10CD000000019293FFFC0290000886960000F70451
+:10CD10004F58F4020000C6B472007734FFFA273887
+:10CD20000002203A0061F702003FE200CD40C6B4A5
+:10CD3000740020360000E600CD4000000001F4023F
+:10CD400000018796FFFC8296FFF802140004013C64
+:10CD50000000000000019293FFFC0290000886167C
+:10CD600000008716000885960004C5307000C032A8
+:10CD70005200E600CDA10000000186B2000077312C
+:10CD8000001E7738FFE5C6B477C076B5FFE8F6AF8A
+:10CD9000680006300001C0325200E600CD7805ACD4
+:10CDA00000018796FFFC8296FFF80214000C013CFC
+:10CDB000000000000001000000009293FFFC0290C0
+:10CDC000000884960000841600048596000886A654
+:10CDD00000007725001E7738FFE5C6B477C07535AB
+:10CDE000FFF0202A0010E200CE0DF606428EF5027A
+:10CDF0000010F704428C76B1001E76B4FFE5C73808
+:10CE00006FC07739FFF007380001F7332800202E74
+:10CE10000001E600CE70202A0000EE00CE7107244B
+:10CE2000000225280001A5BA50028622000076A142
+:10CE3000001E76B4FFE5C73850007739001E7738FA
+:10CE4000FFE5C5AC77C0C6306FC07631FFF075AD79
+:10CE5000FFE8F68200FFF702F15475AD0002A72E3D
+:10CE60007002C6306C00C6307580F623280024207E
+:10CE7000000225A80001F302F24603A40002C4AC9C
+:10CE80003800252C0001202E0000EC00CF110000FE
+:10CE90000001E600CEA0C71C5000E000CEB4F602B0
+:10CEA0000000A69E50027739001E7738FFE5C6B411
+:10CEB00077C07635FFE886A600007725001E773814
+:10CEC000FFE52528000225AC0002C6B477C076B580
+:10CED000FFE877310004C738620077390001C738AE
+:10CEE0003000C6B46800C6B4700006B4000E8736C1
+:10CEF000000024A4000276B5001E76B4FFE5C73812
+:10CF00006FC07738FFF0F7232800E000CE8424209C
+:10CF100000028796FFFC8296FFF80214000C013C89
+:10CF20000000000000019293FFFC029000088616AA
+:10CF3000000883160004839600008732000076B153
+:10CF4000001E76B4FFE5059C0002749D001E74A4CB
+:10CF5000FFE5741D001E063000027531001EC73843
+:10CF60006FC07738FFF0F71F280087320000752860
+:10CF7000FFE5C73857C07738FFF0F72F280005AC1A
+:10CF80000002063000028732000076B1001E76B43F
+:10CF9000FFE5C7386FC07738FFF0F72F280005ACE2
+:10CFA0000002063000028732000076B1001E76B41F
+:10CFB000FFE5C7386FC07738FFF0F72F280005ACC2
+:10CFC0000002063000028732000076B1001E76B4FF
+:10CFD000FFE5C7386FC07738FFF0F72F280005ACA2
+:10CFE0000002063000028732000076B1001E76B4DF
+:10CFF000FFE5C7386FC07738FFF0F72F280005AC82
+:10D000000002063000028732000076B1001E76B4BE
+:10D01000FFE5C7386FC07738FFF0F72F280005AC61
+:10D020000002063000028732000076B1001E76B49E
+:10D03000FFE5C7386FC07738FFF0F72F28000630BC
+:10D0400000028732000005AC00027631001E763007
+:10D05000FFE5C73867C07738FFF0F72F2800871E35
+:10D0600000007420FFE5C7384FC07739FFF007385C
+:10D070000001F71F2800871E0000049C0002C7382B
+:10D0800047C07739FFF025380001202A0000EE0064
+:10D09000D0BD26280001A7266002C6A4600076B590
+:10D0A000001E76B4FFE5C5A45000C5300000C738A7
+:10D0B0006FC07739FFE8E000D088F72F6800071CC1
+:10D0C0000002F33B6800C41C00008796FFFC8296B8
+:10D0D000FFF80214000C013C0000000000019293D4
+:10D0E000FFFC0290000886160004841600008732B8
+:10D0F000000076B1001E76B4FFE505A0000274A121
+:10D10000001E74A4FFE5063000027531001EC7380A
+:10D110006FC07738FFF0F7232800873200007528AA
+:10D12000FFE5C73857C07738FFF0F72F280005AC68
+:10D130000002063000028732000076B1001E76B48D
+:10D14000FFE5C7386FC07738FFF0F72F280005AC30
+:10D150000002063000028732000076B1001E76B46D
+:10D16000FFE5C7386FC07738FFF0F72F280005AC10
+:10D170000002063000028732000076B1001E76B44D
+:10D18000FFE5C7386FC07738FFF0F72F280005ACF0
+:10D190000002063000028732000076B1001E76B42D
+:10D1A000FFE5C7386FC07738FFF0F72F280005ACD0
+:10D1B0000002063000028732000076B1001E76B40D
+:10D1C000FFE5C7386FC07738FFF0F72F280005ACB0
+:10D1D0000002063000028732000076B1001E76B4ED
+:10D1E000FFE5C7386FC07738FFF0F72F280005AC90
+:10D1F0000002063000028732000006A000027631ED
+:10D20000001E7630FFE5C73867C07738FFF0F72F8C
+:10D210002800872200007621001E85960008C73866
+:10D220004FC07739FFF0C6B47000F5B768008722A9
+:10D2300000007630FFE5C73867C07739FFF0073860
+:10D240000001F72328008796FFFC8296FFF802145E
+:10D25000000C013C0000000000019293FFFC0290D2
+:10D2600000082210002027140020F03B280084969C
+:10D270000004F502000086A600007625001E763028
+:10D28000FFE504240002C6B467C076B4FFF0F6BB25
+:10D2900028008726000076A5001E76B4FFE5C73873
+:10D2A0006FC07739FFF0C02A7200EC00D2F876A583
+:10D2B000001E8726000076B4FFE5062800012594AD
+:10D2C000001EC5AC5000C5300000C7386FC07739AC
+:10D2D000FFF0C7385200A6A27002C720700077394D
+:10D2E000001E7738FFE5C6B477C076B5FFE8C68084
+:10D2F0006A00E000D290F6AF68008716FFE076156E
+:10D30000001E7630FFE5839600002314001E7599F9
+:10D31000001E75ACFFE57515001E7528FFE57495B8
+:10D32000001E74A4FFE57415001E7420FFE5069C22
+:10D3300000027395001E9396FFDCC73867C0839682
+:10D3400000007738FFF0F71F28008396FFDC871A6C
+:10D350000000739CFFE59396FFDCC7385FC0773809
+:10D36000FFF0F737280006B400028716FFE4231405
+:10D37000001A7619001E7630FFE5C73857C0773897
+:10D38000FFF0F7372800871A000006B40002C738FC
+:10D3900067C07738FFF0F737280006B40002871619
+:10D3A000FFE8231400167619001E7630FFE5C73813
+:10D3B0004FC07738FFF0F7372800871A000006B40F
+:10D3C0000002C73867C07738FFF0F737280006B487
+:10D3D00000028716FFEC231400127619001E763027
+:10D3E000FFE5C73847C07738FFF0F7372800871ABE
+:10D3F000000006B4000284160000C73867C0773802
+:10D40000FFF0F73728008716FFF006B40002C73890
+:10D410003FC07738FFF0F73728008796FFFC8296E9
+:10D42000FFF802140008013C000000000001929384
+:10D43000FFFC029000088616000084160004F684A3
+:10D440004F5887320014033000147519001E7528D8
+:10D45000FFE5C3A06A00739CFFFA04A0001475A541
+:10D46000001EC6306A007630FFFAC73857C07738DA
+:10D47000FFF0F7272800F39B280007200016F63B53
+:10D4800028008722001475ACFFE5C7385FC07738E5
+:10D49000FFF077390006C6B4700006B40016F3B783
+:10D4A00028008796FFFC8296FFF802140008013CD2
+:10D4B0000000000000019293FFFC02900008861615
+:10D4C0000000F5844F5805300016872A000076A921
+:10D4D000001E76B4FFE5C7386FC07738FFF07739A4
+:10D4E0000006C42C7000C0226200E600D52906A008
+:10D4F000001687360000C6305A007630FFFA76B53F
+:10D50000001E76B4FFE5C7386FC07738FFF0773973
+:10D51000000676B8FFFAF6AB2800C72C7000073873
+:10D520000014E000D52CF63B2800C42C00008796A0
+:10D53000FFFC8296FFF802140004013C000000008A
+:10D5400000019293FFFC02900008F7064F844738D1
+:10D55000FFFCF7056F30F686505C46B4FFFCF6859D
+:10D560006E50F7066E7C4738FFFCF7056E540734A3
+:10D57000191CF7054F5CF70200649736191CF70277
+:10D5800000009736192006B4001CF6854F58879680
+:10D59000FFFC8296FFF802140000013C000000002E
+:10D5A00000019293FFFC0290000822100090F30209
+:10D5B000FFFFF3054F54F38200009396FFAC231452
+:10D5C00000209316FF9C239400389396FF948316B3
+:10D5D000FFACF7044F5CF382000C9396FF74931634
+:10D5E000FF8C873A0004000000019716FFA4831601
+:10D5F000FFAC8396FFA400000001C01A3A00EC00C3
+:10D60000DB78F30204BCF7044F5C8316FF74000060
+:10D610000001C7383000873A0008F6844F58773940
+:10D620000006C4B470009493FFFC9496FF7C0788B6
+:10D630000008E000CD009793FFFC8496FF7C202239
+:10D640000000E600D654C5040000F7044288E0005C
+:10D65000D87CF6064288F6044F5C83960000831659
+:10D66000FF74869E0000A7323002F5820000C036AB
+:10D670007200E600D694C6303000869E00048732E1
+:10D68000000400000001C0367200E600D698202E8B
+:10D690000000F5820001202E0000E600D6A5000063
+:10D6A0000001F50200008396000087320000869E8C
+:10D6B000000000000001C0367200E200D6E4F582EE
+:10D6C0000000C0367200E600D6EC202E0000869ED8
+:10D6D00000048732000400000001C0367200E2003E
+:10D6E000D6ED202E0000F5820001202E0000E6007D
+:10D6F000D6FD202A0000F5020001202A0000E600E5
+:10D70000D72804A400028316FFACF70642C883960C
+:10D71000FF8CF3054F54C71C7000F03B28000738FE
+:10D720000002E000DB50F03B28009496FF6C872657
+:10D73000000076A5001E76B4FFE58316FF6C839685
+:10D74000FF9C2494001E0618000275B1001E75ACE3
+:10D75000FFE5C7386FC07738FFF0F71F2800873222
+:10D760000000751D001E7528FFE5C7385FC07738BB
+:10D77000FFF0F72728002494001C063000028732AF
+:10D78000000076B1001E76B4FFE5C7386FC0773869
+:10D79000FFF0F72728002494001A06300002873291
+:10D7A000000076B1001E76B4FFE5C7386FC0773849
+:10D7B000FFF0F72728002494001806300002873273
+:10D7C000000076B1001E76B4FFE5C7386FC0773829
+:10D7D000FFF0F72728002494001606300002873255
+:10D7E000000076B1001E76B4FFE5C7386FC0773809
+:10D7F000FFF0F72728002494001406300002873237
+:10D80000000076B1001E76B4FFE5C7386FC07738E8
+:10D81000FFF0F72728002494001206300002873218
+:10D82000000076B1001E76B4FFE5C7386FC07738C8
+:10D83000FFF0F7272800063000028732000024940A
+:10D8400000107631001E7630FFE5C73867C07738A4
+:10D85000FFF0F72728008716FFE0F682FFFCC738A5
+:10D8600057C07739FFF007380003C4B86C00202692
+:10D870000010E200D89DF606428AF704428876B18D
+:10D88000001E76B4FFE5F4020000C7386FC0773998
+:10D89000FFF007380001E000DBA0F7332800831613
+:10D8A000FF6C251400368396FF94871A0000769942
+:10D8B000001E76B4FFE50618000275B1001EC738D9
+:10D8C0006FC07738FFF0F71F28008732000075AC73
+:10D8D000FFE5C7385FC07738FFF0F72B2800251425
+:10D8E0000034063000028732000076B1001E76B4A4
+:10D8F000FFE5C7386FC07738FFF0F72B28002514F5
+:10D900000032063000028732000076B1001E76B485
+:10D91000FFE5C7386FC07738FFF0F72B28002514D4
+:10D920000030063000028732000076B1001E76B467
+:10D93000FFE5C7386FC07738FFF0F72B28002514B4
+:10D94000002E063000028732000076B1001E76B449
+:10D95000FFE5C7386FC07738FFF0F72B2800251494
+:10D96000002C063000028732000076B1001E76B42B
+:10D97000FFE5C7386FC07738FFF0F72B2800251474
+:10D98000002A063000028732000076B1001E76B40D
+:10D99000FFE5C7386FC07738FFF0F72B2800251454
+:10D9A0000028063000028732000026A4000274A47A
+:10D9B000FFFF7631001E7630FFE5C73867C0773845
+:10D9C000FFF0F72B28009013FFFC8316FF8CF7065F
+:10D9D00042CCC7187000C73868009713FFFC9393B8
+:10D9E000FFFC9496FF7C07880008E000CDB8979371
+:10D9F000FFFC8396FF6C2414004E25140050831600
+:10DA0000FF8C8496FF7C871E0000769D001E76B4F6
+:10DA1000FFE5061C000275B1001E75ACFFE5C738B6
+:10DA20006FC07738FFF0F72B280087320000752988
+:10DA3000001E7528FFE5C7385FC07738FFF0F72371
+:10DA400028002414004C063000028732000076B112
+:10DA5000001E76B4FFE5C7386FC07738FFF0F723B4
+:10DA600028002414004A063000028732000076B1F4
+:10DA7000001E76B4FFE5C7386FC07738FFF0F72394
+:10DA8000280024140048063000028732000076B1D6
+:10DA9000001E76B4FFE5C7386FC07738FFF0F72374
+:10DAA000280024140046063000028732000076B1B8
+:10DAB000001E76B4FFE5C7386FC07738FFF0F72354
+:10DAC000280024140044063000028732000076B19A
+:10DAD000001E76B4FFE5C7386FC07738FFF0F72334
+:10DAE000280024140042063000028732000076B17C
+:10DAF000001E76B4FFE5C7386FC07738FFF0F72314
+:10DB000028000630000287320000241400407631DD
+:10DB1000001E7630FFE5C73867C07738FFF0F7237F
+:10DB200028008696FFB0F60642C8C6186000F702C5
+:10DB30000003C6B457C076B5FFF0C6B47400F70250
+:10DB40000004C7386A00F733280006300002F4B337
+:10DB500028008396FF8C8316FF74039C0014939611
+:10DB6000FF8C0318000C8396FFAC9316FF74039C84
+:10DB70000001E000D5EC9396FFAC9313FFFCF38417
+:10DB80004F5C000000019393FFFCF3064A98931347
+:10DB9000FFFC07880008E00126F89793FFFCF402D9
+:10DBA00000018796FFFC8296FFF802140004013CF6
+:10DBB0000000000000019293FFFC02900008221078
+:10DBC00001A0F5020000F3846E50F602001C202A2A
+:10DBD0000063EE00DC08C59C6000A69E6002772D05
+:10DBE000001E7738FFE5C6B477C076B5FFF0203663
+:10DBF0000003E600DBFC072C0036F03B2800063073
+:10DC00000040E000DBCC05280001F5844F5C0000FB
+:10DC1000000186AE0008F4020000872E0004000018
+:10DC20000001C0367200EC00DCF09696FFEC773510
+:10DC30000001C738680077390002C638580006303E
+:10DC4000000CC38400008316000086B20000871A0F
+:10DC5000000000000001C0367200E600DC7CC52038
+:10DC6000000086B20004871A000400000001C036DC
+:10DC70007200E600DC80202A0000F5020001202A64
+:10DC80000000E600DC8D00000001F38200008496B5
+:10DC9000000086B200008726000000000001C036A8
+:10DCA0007200E200DCCCF5020000C0367200E60033
+:10DCB000DCD4202A000086B200048726000400007D
+:10DCC0000001C0367200E200DCD5202A0000F50217
+:10DCD0000001202A0000E600DCE5201E0000F3829F
+:10DCE0000001201E0000E600DCF420220000F40207
+:10DCF000000120220000E600DD29F602000187165F
+:10DD0000FFEC0000000176B90001C6B4700076B5E2
+:10DD10000002C6B4580006B4001486B60000971678
+:10DD2000FFF0E000DD989696FFF427140014971397
+:10DD3000FFFC83160000000000019313FFFC959385
+:10DD4000FFFC9596FE7007880008E0012568979310
+:10DD5000FFFC8596FE7020220000E600DD95F602AD
+:10DD600000018716FFEC0000000176B90001C6B47F
+:10DD7000700076B50002C6B4580006B4001486B62A
+:10DD800000009716FFF09696FFF4972E0008E0002B
+:10DD9000DD9C20320000F602000020320000E60088
+:10DDA000DDB0F4820000F704427CE000E09CF6065F
+:10DDB000427E9496FF448716FFF4F6044F58773955
+:10DDC0000006C73070009716FF5406B8001A873651
+:10DDD00000008316FF5476B5001E76B4FFE5C73801
+:10DDE0006FC09313FFFC7738FFF077390006C63019
+:10DDF00070009616FF4C07880008E000CD0097934E
+:10DE0000FFFC20220000E600DE35F30200018496CC
+:10DE1000FF4C000000019493FFFC07880008E0001D
+:10DE2000CD009793FFFC20220000E600DE380000C2
+:10DE30000001F30200019316FF448496FF440000A2
+:10DE4000000120260000E600DE59F60642A4F70491
+:10DE500042A4E000E0A076B1001E8316FF4C8616B7
+:10DE6000FF4C871A00007699001E76B4FFE5C7388C
+:10DE70006FC07739FFF0203A0002E600DE8500002F
+:10DE80000001F6044F58F5844F5800000001C032DD
+:10DE90005A00E600E025000000018496FF4C0000D7
+:10DEA000000106A4001A873600008316FF5476B5D9
+:10DEB000001E76B4FFE5C7386FC07738FFF07739BA
+:10DEC0000006C72C7000C03A3200E600DEDDF60620
+:10DED0004280F7044280E000E0A076B1001E2614E4
+:10DEE0000030F03328008716FFD07631001E7630E0
+:10DEF000FFE58496FF4C2314002E9316FE6475995B
+:10DF0000001E75ACFFE57515001E7528FFE573153D
+:10DF1000001E7318FFE59316FF348316FE64042475
+:10DF2000000206A000027495001E74A4FFE59496FA
+:10DF3000FF3C7495001EC73867C07738FFF0F723A1
+:10DF40002800871A000074A4FFE59496FF2CC738B8
+:10DF50005FC07738FFF0F737280006B40002871655
+:10DF6000FFD42494002A9496FE647625001E763011
+:10DF7000FFE5C73857C07738FFF0F7372800872606
+:10DF8000000006B40002C73867C07738FFF0F737E3
+:10DF9000280006B400028716FFD823140026931623
+:10DFA000FE647619001E8496FF3C7630FFE5C73884
+:10DFB0004FC07738FFF0F7372800871A000006B403
+:10DFC00000028496FF34C73867C07738FFF0F73710
+:10DFD000280006B400028716FFDC231400229316E3
+:10DFE000FE647619001E7630FFE5C7384FC07738DB
+:10DFF000FFF0F7372800871A000006B40002C73880
+:10E0000067C07738FFF0F73728008716FFE08316E0
+:10E01000FF2C06B40002C73837C07738FFF0E000A5
+:10E02000EAA0F737280007880008E000CBCC9793D8
+:10E03000FFFC06A00002F7044F58F037280006A0A6
+:10E0400000149416FF24C72072007738FFFAF737C0
+:10E05000280006A00016F7372800F4820001F4A378
+:10E0600028009413FFFC07880008E000CD00979378
+:10E07000FFFC20220000E600E0BC26940048F704E4
+:10E080004280E000E09CF60642828696FEF4E000C4
+:10E09000E29400000001F7044284F606428476B15F
+:10E0A000001E76B4FFE5F4020000C7386FC0773970
+:10E0B000FFF007380001E000EAA4F73328008316D8
+:10E0C000FF4C7515001E7528FFE59316FF1C0718F9
+:10E0D0000036F4820001F4BB2800F03728008716D0
+:10E0E000FFB876B5001E76B4FFE5041800020620DE
+:10E0F0000002231400469316FF147599001E75AC98
+:10E10000FFE57495001E74A4FFE59496FF0C73154B
+:10E11000001E7318FFE59316FF047495001E74A487
+:10E12000FFE59496FEFC230000079316FEF4849608
+:10E13000FF1C8316FF1404A4000A9496FE7CC738C3
+:10E140006FC07738FFF0F7232800F6844F58849685
+:10E15000FF54871A0000C6A46A007434FFFAC73857
+:10E160005FC07738FFF0F7332800063000028716CB
+:10E17000FFBC231400429316FF147699001E76B458
+:10E18000FFE5C73857C07738FFF0F7332800871A04
+:10E19000000006300002C7386FC07738FFF0F73351
+:10E1A0002800063000028716FFC02494003E949693
+:10E1B000FF1476A5001E8316FF0C76B4FFE5C73862
+:10E1C00037C07738FFF0F733280087260000063085
+:10E1D0000002C7386FC07738FFF0F73328000630E9
+:10E1E00000028716FFC42494003A9496FF1476A583
+:10E1F000001E8316FF0476B4FFE5C73837C07738B2
+:10E20000FFF0F73328008726000006300002C738E9
+:10E210006FC07738FFF0F73328008716FFC8849661
+:10E22000FEFC06300002C7384FC07738FFF0F733E6
+:10E2300028008316FEF400000001201A0007EE00FB
+:10E24000E294F68200088496FE7C00000001072418
+:10E25000000E86BA00007739001E7738FFE5C6B495
+:10E2600077C076B5FFF0F70200FFC6B4740047210F
+:10E270000000C0367200470C0001203A0000E600A2
+:10E28000E08804A400029496FE7C03180001E000DC
+:10E29000E2309316FEF48316FF1C000000010718FD
+:10E2A0000038F6BB28009313FFFC8496FF2400007F
+:10E2B00000019493FFFC07880008E000D42C97939A
+:10E2C000FFFC231400789316FEBC849600002314F0
+:10E2D00000A886A60004872600009316FE9CC6B4FC
+:10E2E00070009696FEECF7020001C7347400971692
+:10E2F000FEE48496FF24000000019493FFFC07884D
+:10E300000008E000D4B49793FFFCF7044F580000D6
+:10E310000001C0227200E600EAA19416FF1C86A24A
+:10E3200000387721001E7738FFE5F30200009316CE
+:10E33000FED4C6B477C076B5FFF09696FEDC849620
+:10E34000FED4000000012026000EEE00E2F0F302F1
+:10E35000000F9313FFFC8316FEEC00000001C718AA
+:10E3600048009713FFFC07880008E00127E897930F
+:10E37000FFFCC3A000008496FEE4000000012026FC
+:10E380000000E600E38D239C0007C3803A00C71C11
+:10E3900038008316FF1CF48200FFF6044F58C7189C
+:10E3A00070000738002686BA00009716FEC4773939
+:10E3B000001E7738FFE5C6B477C076B5FFF0C6B467
+:10E3C0004C0076B50006C330680007300040C01A24
+:10E3D0007200E600E40D9316FECC9313FFFC9396B7
+:10E3E000FE749616FE6C9696FE6807880008E0009C
+:10E3F000CD009793FFFC8396FE748616FE6C86967E
+:10E40000FE6820220000E600E09500000001F5848F
+:10E410004F588496FECC072C0040C0267200E600C0
+:10E42000EA8D00000001A732680276A5001E76B4CE
+:10E43000FFE58616FECCC7386FC07739FFF0203A6B
+:10E440000002E600E451C0325A00C62C0000C0327F
+:10E450005A00E600E6E5251400768316FF1C849634
+:10E46000FEBC061800028732000076B1001E76B4AA
+:10E47000FFE58316FEDC0630000275B1001EC738CA
+:10E480006FC07738FFF0F72728008732000075AC9F
+:10E49000FFE5C7385FC07738FFF0F72B2800251459
+:10E4A0000074063000028732000076B1001E76B498
+:10E4B000FFE5C7386FC07738FFF0F72B2800251429
+:10E4C0000072063000028732000076B1001E76B47A
+:10E4D000FFE5C7386FC07738FFF0F72B2800251409
+:10E4E0000070063000028732000076B1001E76B45C
+:10E4F000FFE5C7386FC07738FFF0F72B28002514E9
+:10E50000006E063000028732000076B1001E76B43D
+:10E51000FFE5C7386FC07738FFF0F72B28002514C8
+:10E52000006C063000028732000076B1001E76B41F
+:10E53000FFE5C7386FC07738FFF0F72B28002514A8
+:10E54000006A063000028732000076B1001E76B401
+:10E55000FFE5C7386FC07738FFF0F72B280006308B
+:10E56000000287320000251400687631001E7630E4
+:10E57000FFE5C73867C07738FFF0F72B2800C71CC6
+:10E5800032009713FFFC9493FFFC2614006096134F
+:10E59000FFFC9616FE6C07880008E000D0DC97931D
+:10E5A000FFFC8716FFA08616FE6C8496FECC231413
+:10E5B000005E9316FE5C7599001E75ACFFE5741540
+:10E5C000001E7420FFE57315001E7318FFE59316F7
+:10E5D000FEAC8316FE5C7631001E7630FFE5052426
+:10E5E000000206A800027495001E74A4FFE594962C
+:10E5F000FEB47495001EC73867C07738FFF0F72B5C
+:10E600002800871A000074A4FFE59496FEA4C7387A
+:10E610005FC07738FFF0F737280006B4000287168E
+:10E62000FFA42494005A9496FE5C7625001E83165F
+:10E63000FEB47630FFE5C73837C07738FFF0F737DC
+:10E6400028008726000006B40002C73867C0773864
+:10E65000FFF0F737280006B400028716FFA82494BD
+:10E6600000569496FE5C7625001E7630FFE5C7388E
+:10E6700047C07738FFF0F73728008726000006B438
+:10E680000002C73867C07738FFF0F737280006B4B4
+:10E6900000028716FFAC231400529316FE5C761915
+:10E6A000001E8496FEAC7630FFE5C7384FC0773841
+:10E6B000FFF0F7372800871A000006B40002C738B9
+:10E6C00067C07738FFF0F73728008716FFB083164A
+:10E6D000FEA406B40002C73837C07738FFF0E00068
+:10E6E000EA8CF73728008496FECC0000000104A4D1
+:10E6F00000369496FE5C8726000076A5001E76B450
+:10E70000FFE5C7386FC07739FFF0203A0000470CAB
+:10E710000001203A0000E600EA8D000000018316A7
+:10E72000FECC8496FF1C0618003A85B20000072430
+:10E73000003A86BA00007631001E7630FFE5773960
+:10E74000001E7738FFE5C5AC67C0C6B477C075ADAD
+:10E75000FFF076B5FFF0C02E6A00EC00E764F5022A
+:10E760000002F50200018316FF1C000000010718DB
+:10E77000003686BA00007739001E7738FFE5C6B448
+:10E7800077C076B5FFF020360002E600E79C000077
+:10E790000001202A0001E600EA8D000000018496B5
+:10E7A000FE5C8316FF1CF52728000618000287323E
+:10E7B000000076B1001E76B4FFE5251400A684960D
+:10E7C000FE9C8316FEDC0630000275B1001EC738C1
+:10E7D0006FC07738FFF0F72728008732000075AC4C
+:10E7E000FFE5C7385FC07738FFF0F72B2800251406
+:10E7F00000A4063000028732000076B1001E76B415
+:10E80000FFE5C7386FC07738FFF0F72B28002514D5
+:10E8100000A2063000028732000076B1001E76B4F6
+:10E82000FFE5C7386FC07738FFF0F72B28002514B5
+:10E8300000A0063000028732000076B1001E76B4D8
+:10E84000FFE5C7386FC07738FFF0F72B2800251495
+:10E85000009E063000028732000076B1001E76B4BA
+:10E86000FFE5C7386FC07738FFF0F72B2800251475
+:10E87000009C063000028732000076B1001E76B49C
+:10E88000FFE5C7386FC07738FFF0F72B2800251455
+:10E89000009A063000028732000076B1001E76B47E
+:10E8A000FFE5C7386FC07738FFF0F72B2800063038
+:10E8B000000287320000251400987631001E763061
+:10E8C000FFE5C73867C07738FFF0F72B2800C71C73
+:10E8D00032009713FFFC9493FFFC261400909613CC
+:10E8E000FFFC9616FE6C07880008E000D0DC9793CA
+:10E8F000FFFC8716FF708616FE6C8496FECC239470
+:10E90000008E759D001E75ACFFE57315001E731813
+:10E91000FFE59316FE947415001E7420FFE5731531
+:10E92000001E7318FFE59316FE848316FE9476315D
+:10E93000001E7630FFE50524000206A8000274954B
+:10E94000001E74A4FFE59496FE8CC73867C0773824
+:10E95000FFF0F72B28008496FEC4871E0000752563
+:10E96000001EC7385FC07738FFF0F737280006B4BD
+:10E9700000028716FF742394008A761D001E7630ED
+:10E98000FFE58496FE8C7528FFE5C73837C07738D9
+:10E99000FFF0F7372800871E000006B40002831638
+:10E9A000FE84C73867C07738FFF0F737280006B411
+:10E9B00000028716FF7823940086761D001E7630AD
+:10E9C000FFE5C73847C07738FFF0F7372800871EC4
+:10E9D000000006B40002C73867C07738FFF0F73789
+:10E9E000280006B400028716FF7C23940082761D5F
+:10E9F000001E7630FFE5C7384FC07738FFF0F73795
+:10EA00002800871E000006B400028496FEC4C738A2
+:10EA100067C07738FFF0F73728008716FF8006B405
+:10EA20000002C73837C07738FFF0F737280087264D
+:10EA30000000F30200FFC73857C07738FFE8C6B8B8
+:10EA40003400F7020080C73474007739001077393A
+:10EA5000FFF0203A0000E600EA6127000100C6B49A
+:10EA600075808496FECC0000000107240038F6BBB8
+:10EA700028009493FFFC8316FF24000000019313E9
+:10EA8000FFFC07880008E000D42C9793FFFC8496D5
+:10EA9000FED40000000104A40001E000E33C9496D1
+:10EAA000FED4F40200018796FFFC8296FFF8021460
+:10EAB0000004013C0000000000019293FFFC029062
+:10EAC0000008861600088696000CF502FFFC859665
+:10EAD000000484160010F484E0000730000294B2B1
+:10EAE0000010F484E00406B4000394B20014F4842B
+:10EAF000E01CC6B4540094B20018F4820005F4B3CC
+:10EB00002800F4820001F4BB280027340008973263
+:10EB1000000486160000072C0003C7385400C6B84E
+:10EB200068009693FFFCC63072009613FFFCF70254
+:10EB30000003C5AC7400F7020004C7385A009713ED
+:10EB4000FFFC07880008C12000009793FFFC879610
+:10EB5000FFFC8296FFF802140014013C0000000044
+:10EB600000019293FFFC0290000822100018871603
+:10EB700000040000000183BA000084960000939610
+:10EB8000FFF0F3846E54873A00049396FFEC9716D7
+:10EB9000FFF49013FFFC271C00029713FFFC0724CF
+:10EBA00000209713FFFC9496FFE407880008E0001C
+:10EBB000CDB89793FFFC8496FFE4839600088726E0
+:10EBC00000188516FFECC03A3A00EE00EC7CF582A6
+:10EBD0000001872600188396000800000001C01E6F
+:10EBE0007200E600EC7CC584000086A60010871643
+:10EBF000FFF0F6020000C0367200E600EC1C0424B0
+:10EC0000001086A600148716FFF400000001C0362D
+:10EC10007200E600EC2020320000F60200012032F3
+:10EC20000000E600EC2D00000001F582000086A245
+:10EC300000008716FFF000000001C0367200E200FD
+:10EC4000EC68F6020000C0367200E600EC7020327C
+:10EC5000000086A200048716FFF400000001C03601
+:10EC60007200E200EC7120320000F6020001203256
+:10EC70000000E600EC81202E0000F5820001202E2D
+:10EC80000000E600ECACF7020001F704429CF60637
+:10EC9000429C76B1001E76B4FFE5C7386FC0773965
+:10ECA000FFF007380001F7332800F7020001972A28
+:10ECB000000883A6000C772CFFE193AA000C972A8A
+:10ECC000001C83A6001CF7046E5093AA002083BA90
+:10ECD0001DDCF682000093AA002C8396000CC5B4BC
+:10ECE000000093AA003083BA0010C634000093AA33
+:10ECF0000024873A001400000001972A00282036DB
+:10ED0000001FEE00ED1CC73050000738003495BAE4
+:10ED1000000006300004E000ECFC06B4000183961D
+:10ED2000001076A5001E9393FFFCF38200B493932A
+:10ED3000FFFC9513FFFC8726002076B4FFE5C7385B
+:10ED40006FC07739FFF09713FFFC8396FFEC00004C
+:10ED500000019393FFFC07880008E000EAB897934E
+:10ED6000FFFC8796FFFC8296FFF802140014013C1A
+:10ED70000000000000019293FFFC029000082210A6
+:10ED800000188716000400000001863A0000000009
+:10ED900000019616FFF0873A000400000001971664
+:10EDA000FFF4F6021DE09613FFFC8616000000003B
+:10EDB00000019613FFFCF6046E500000000196134C
+:10EDC000FFFC261400109616FFEC07880008E001EF
+:10EDD00026F89793FFFCF6846E50F6020000873603
+:10EDE0001DD89616FFE476B5001E76B4FFE5C73849
+:10EDF0006FC07738FFF0F68642C0F73728008616D6
+:10EE0000FFEC000000019613FFFC07880008E000FB
+:10EE1000DBB49793FFFC20220000E600EE4D0000DB
+:10EE200000018616FFEC000000019613FFFC078826
+:10EE30000008E000D5A09793FFFC20220000E60028
+:10EE4000EE4D00000001F60200019616FFE4841664
+:10EE5000FFE48796FFFC8296FFF802140008013C4D
+:10EE60000000000000019293FFFC029000088696CB
+:10EE70000004861600008736000885960008203AB0
+:10EE80000000E600EE99203A0003E600EEE9F40205
+:10EE90000000E000EF0C0000000177B0001F703EA2
+:10EEA000FFE1E600EF0DF4020000851600140000FB
+:10EEB00000019513FFFC851600100000000195135A
+:10EEC000FFFC8516000C000000019513FFFC9593D4
+:10EED000FFFC9693FFFC07880008E000EB60979327
+:10EEE000FFFCE000EF0C0000000177B0001E703E58
+:10EEF000FFE1E600EF0D000000019593FFFC969303
+:10EF0000FFFC07880008E000ED749793FFFC8796EC
+:10EF1000FFFC8296FFF802140018013C000000007C
+:10EF200000019293FFFC0290000822100018F48266
+:10EF3000000086960000F6044AA023940010843650
+:10EF400000009616FFE4F7044A9C9416FFF08536FD
+:10EF50000004C0327200EC00F0149516FFF4773113
+:10EF60000001C738600077390002F3064A98C6B836
+:10EF7000300006B4000CC584000087360000000095
+:10EF80000001C03A4200E600EFA4C6240000873624
+:10EF9000000400000001C03A5200E600EFA8203251
+:10EFA0000000F602000120320000E600EFB500008C
+:10EFB0000001F5820000863600008716FFF0000091
+:10EFC0000001C0327200E200EFF0F5020000C03232
+:10EFD0007200E600EFF8202A000086B600048716CB
+:10EFE000FFF400000001C0367200E200EFF9202AB1
+:10EFF0000000F5020001202A0000E600F009202EA2
+:10F000000000F5820001202E0000E600F018202606
+:10F010000000F482000120260000E600F04DF60218
+:10F0200000018716FFE4F3064A9876B90001C6B4DA
+:10F03000700076B50002C6B4300006B4001486B67F
+:10F0400000009716FFE8E000F0B09696FFEC27145A
+:10F05000001C9713FFFC9393FFFCF3064A9893134D
+:10F06000FFFC07880008E00125689793FFFC202239
+:10F070000000E600F0ADF60200018716FFE4F3069B
+:10F080004A9876B90001C6B4700076B50002C6B4DD
+:10F09000300006B4001486B600009716FFE8969676
+:10F0A000FFECF7054AA0E000F0B420320000F602C1
+:10F0B000000020320000E600F121F4020001871672
+:10F0C000FFE8F60642C876B90002C6B4700076B50D
+:10F0D0000002A736600283160004C6B460007635CD
+:10F0E000001E7630FFE50534000275A9001EC73802
+:10F0F00067C07738FFF0971A0000872A000075ACC8
+:10F10000FFE583160008C7385FC07738FFF0971A0D
+:10F1100000008316000C06B40004E000F124969A67
+:10F120000000F40200008796FFFC8296FFF80214AC
+:10F130000010013C0000000000010000B9000000C8
+:10F14000BA000000BB000000BC000000BD000000D1
+:10F15000BE000000BF000000800000008100000031
+:10F160008200000083000000840000008500000091
+:10F17000860000008700B9B9B9BAB9BBB9BCB9BD3E
+:10F18000B9BEB9BFB980B981B982B983B984B9852B
+:10F19000B986B987BAB9BABABABBBABCBABDBABE2F
+:10F1A000BABFBA80BA81BA82BA83BA84BA85BA863B
+:10F1B000BA87BBB9BBBABBBBBBBCBBBDBBBEBBBFCD
+:10F1C000BB80BB81BB82BB83BB84BB85BB86BB874B
+:10F1D000BCB9BCBABCBBBCBCBCBDBCBEBCBFBC80AB
+:10F1E000BC81BC82BC83BC84BC85BC86BC87BDB9E9
+:10F1F000BDBABDBBBDBCBDBDBDBEBDBFBD80BD81BB
+:10F20000BD82BD83BD84BD85BD86BD87BEB9BEBA86
+:10F21000BEBBBEBCBEBDBEBEBEBFBE80BE81BE82CA
+:10F22000BE83BE84BE85BE86BE87BFB9BFBABFBB24
+:10F23000BFBCBFBDBFBEBFBFBF80BF81BF82BF83DA
+:10F24000BF84BF85BF86BF8780B980BA80BB80BCC2
+:10F2500080BD80BE80BF80808081808280838084EA
+:10F2600080858086808781B981BA81BB81BC81BD60
+:10F2700081BE81BF818081818182818381848185FA
+:10F280008186818782B982BA82BB82BC82BD82BEFE
+:10F2900082BF82808281828282838284828582860A
+:10F2A000828783B983BA83BB83BC83BD83BE83BF9C
+:10F2B000838083818382838383848385838683871A
+:10F2C00084B984BA84BB84BC84BD84BE84BF84807A
+:10F2D000848184828483848484858486848785B9B8
+:10F2E00085BA85BB85BC85BD85BE85BF858085818A
+:10F2F00085828583858485858586858786B986BA56
+:10F3000086BB86BC86BD86BE86BF86808681868299
+:10F310008683868486858686868787B987BA87BBF3
+:10F3200087BC87BD87BE87BF8780878187828783A9
+:10F33000878487858786878700009293FFFC0290E9
+:10F34000000822100018F70475EC00000001203AB4
+:10F350000000E600F37DF6064296F704429476B18B
+:10F36000001E76B4FFE5F4020000C7386FC077399D
+:10F37000FFF007380001E000F5E0F7332800F384E0
+:10F380006F309013FFFC271C00029713FFFC8316BD
+:10F390000000000000019313FFFC9396FFEC078828
+:10F3A0000008E000CDB89793FFFC8396FFECF702CE
+:10F3B0000000971E00088316000400000001931E41
+:10F3C000000C83160008049C0022931E001C831668
+:10F3D000000C9396FFF4871A00007699001E76B40D
+:10F3E000FFE50618000275B1001E75ACFFE5C738D1
+:10F3F0006FC07738FFF0069C0020F737280087326F
+:10F4000000009696FFE47535001EC7385FC0773858
+:10F41000FFF0F7272800049C002406300002873202
+:10F42000000076B1001E76B4FFE5C7386FC07738AC
+:10F43000FFF0F7272800049C0026063000028732E0
+:10F44000000076B1001E76B4FFE5C7386FC077388C
+:10F45000FFF0F7272800049C0028063000028732BE
+:10F46000000076B1001E76B4FFE5C7386FC077386C
+:10F47000FFF0F7272800049C002A0630000287329C
+:10F48000000076B1001E76B4FFE5C7386FC077384C
+:10F49000FFF0F7272800049C002C0630000287327A
+:10F4A000000076B1001E76B4FFE5C7386FC077382C
+:10F4B000FFF0F7272800049C002E06300002873258
+:10F4C000000076B1001E76B4FFE5C7386FC077380C
+:10F4D000FFF0F72728000630000287320000049C66
+:10F4E00000307631001E7630FFE5C73867C07738C8
+:10F4F000FFF0F7272800871E00207528FFE5C73892
+:10F5000057C07739FFF0203A0008EE00F598F3066F
+:10F5100014D88316FFE4871E00207699001E76B467
+:10F52000FFE5C7386FC07739FFF025B80001C4ACDC
+:10F53000580004240001202E0000EC00F595F5028F
+:10F5400000008316FFE40000000106180002A73245
+:10F550005802C6B0580076B5001E76B4FFE5C7382D
+:10F560006FC07739FFE8C6B0400077B80018703E2A
+:10F57000FFE1E600F57DF7376800F502FFFFC730D1
+:10F580004800F53B680024A4000224200002E000AB
+:10F59000F53425AC0001F30614D89313FFFCF302F5
+:10F5A00000349313FFFC8316FFF400000001931353
+:10F5B000FFFC8316000000000001871A0000769906
+:10F5C000001E76B4FFE5C7386FC07739FFF0971398
+:10F5D000FFFC9393FFFC07880008E000EAB89793CC
+:10F5E000FFFC8796FFFC8296FFF802140010013C96
+:10F5F0000000000000019293FFFC0290000822101E
+:10F600000010F70475EC00000001203A0000E6004D
+:10F61000F639F6064296F704429476B1001E76B4A7
+:10F62000FFE5F4020000C7386FC07739FFF00738F4
+:10F630000001E000F748F7332800F5046F300000C0
+:10F6400000019516FFF49013FFFC27280002971382
+:10F65000FFFC85960004000000019593FFFC0788DD
+:10F660000008E000CDB89793FFFC85160004F60271
+:10F67000000086AA00007729001E7738FFE5C6B48F
+:10F6800077C076B5FFF0F7020001C0367400E600DF
+:10F69000F6999696FFECC63800009613FFFC859607
+:10F6A000FFEC8516FFF4472CFFFE07380002C72841
+:10F6B00072009713FFFC85960000000000019593EF
+:10F6C000FFFC07880008E000CDB89793FFFC851683
+:10F6D000FFF4F7020002972A000885960008000050
+:10F6E000000195AA000C8596000C0000000195AA67
+:10F6F000001CF50614D89513FFFCF58200209593A5
+:10F70000FFFC8516FFF4000000019513FFFC8596B1
+:10F7100000008516FFEC872E000076AD001E76B443
+:10F72000FFE5C7386FC07739FFF0C738500097132F
+:10F73000FFFC8596FFF4000000019593FFFC07880D
+:10F740000008E000EAB89793FFFC8796FFFC8296DA
+:10F75000FFF802140010013C000000000001929329
+:10F76000FFFC0290000885960000851600048716AD
+:10F770000008F602FFFC06A80003C6B464000738C0
+:10F780000003C7386400C73470009713FFFCC5AC92
+:10F790006A009593FFFCF7020003C5287400F70286
+:10F7A0000004C73852009713FFFC07880008E001E7
+:10F7B00014D89793FFFC8796FFFC8296FFF80214FB
+:10F7C0000010013C0000000000019293FFFC029039
+:10F7D000000822100010F70475EC00000001203A28
+:10F7E0000000E600F80DF6064296F704429476B162
+:10F7F000001E76B4FFE5F4020000C7386FC0773909
+:10F80000FFF007380001E000F920F7332800F50485
+:10F810006F30000000019516FFF49013FFFC2728BD
+:10F8200000029713FFFC85960004000000019593E9
+:10F83000FFFC07880008E000CDB89793FFFC851611
+:10F840000004F602000086AA00007729001E77381F
+:10F85000FFE5C6B477C076B5FFF0F7020001C03609
+:10F860007400E600F86D9696FFECC638000096131B
+:10F87000FFFC8596FFEC8516FFF4472CFFFE07384A
+:10F880000002C72872009713FFFC85960000000055
+:10F8900000019593FFFC07880008E000CDB897931E
+:10F8A000FFFC8516FFF4F5820006F5AB280085966F
+:10F8B00000080728000295AA00040514000E852AF6
+:10F8C000000077A9001E77BCFFE5C5287FC0752919
+:10F8D000FFF0F53B2800F58614D89593FFFCF50260
+:10F8E00000089513FFFC859600008516FFEC872E17
+:10F8F000000076AD001E76B4FFE5C7386FC07739DB
+:10F90000FFF0C73850009713FFFC8596FFF4000006
+:10F9100000019593FFFC07880008E000F75C9793CF
+:10F92000FFFC8796FFFC8296FFF802140010013C52
+:10F930000000000000019293FFFC029000082210DA
+:10F940000008F70475EC83960004203A0000E600F6
+:10F95000FA64F6064296F5046F309013FFFC2728F0
+:10F9600000029713FFFC83160000000000019313B0
+:10F97000FFFC9396FFF49516FFF007880008E0005F
+:10F98000CDB89793FFFC8516FFF0F302000783962E
+:10F99000FFF4F32B280007280002F3020001F33BD9
+:10F9A0002800871E0000769D001E76B4FFE5059CAA
+:10F9B0000002762D001E7630FFE5749D001E74A4B3
+:10F9C000FFE5041C000683160000C7386FC07738B7
+:10F9D000FFF006A80004F7372800872E000006A8CD
+:10F9E000000675A1001EC73867C07738FFF0F737EB
+:10F9F0002800871E000475ACFFE506A800087619EC
+:10FA0000001EC7384FC07738FFF0F737280087222D
+:10FA1000000006A8000AC7385FC07738FFF0F73744
+:10FA20002800F30614D89313FFFCF302000C931381
+:10FA3000FFFC8316000000000001871A00007630EA
+:10FA4000FFE5C73867C07739FFF09713FFFC9513C0
+:10FA5000FFFC07880008E000F75C9793FFFCE000DC
+:10FA6000FA8400000001F704429476B1001E76B4D7
+:10FA7000FFE5F4020000C7386FC07739FFF00738A0
+:10FA80000001F73328008796FFFC8296FFF80214E6
+:10FA90000008013C0000000000019293FFFC02906E
+:10FAA000000822100048F70475EC85960000203A03
+:10FAB0000000E600FD98F606429605AC0002872E8F
+:10FAC000000076AD001E76B4FFE52414001E062C5F
+:10FAD00000027531001E249400207528FFE5F38490
+:10FAE0006E50C7386FC07738FFF0F727280087328D
+:10FAF00000009396FFC4C73857C07738FFF0F7234C
+:10FB000028002414001C063000028732000076B161
+:10FB1000001E76B4FFE5C7386FC07738FFF0F723D3
+:10FB200028002414001A063000028732000076B143
+:10FB3000001E76B4FFE5C7386FC07738FFF0F723B3
+:10FB4000280024140018063000028732000076B125
+:10FB5000001E76B4FFE5C7386FC07738FFF0F72393
+:10FB6000280024140016063000028732000076B107
+:10FB7000001E76B4FFE5C7386FC07738FFF0F72373
+:10FB8000280024140014063000028732000076B1E9
+:10FB9000001E76B4FFE5C7386FC07738FFF0F72353
+:10FBA000280024140012063000028732000076B1CB
+:10FBB000001E76B4FFE5C7386FC07738FFF0F72333
+:10FBC000280006300002873200002414001076312D
+:10FBD000001E7630FFE5C73867C07738FFF0F7239F
+:10FBE00028009013FFFC271C00029713FFFC94933E
+:10FBF000FFFC9596FFBC07880008E000CDB89793FE
+:10FC0000FFFC8596FFBC231400362494003873A5AE
+:10FC1000001E739CFFE5F40442C0F68642C076B530
+:10FC2000001E76B4FFE5872E0000762D001E76308C
+:10FC3000FFE5C4206FC07420FFF005AC0002752DF5
+:10FC4000001E7528FFE5C73867C07738FFF0F72733
+:10FC50002800872E0000F6046E50C73857C077384A
+:10FC6000FFF0F71B28002314003405AC0002872E98
+:10FC7000000076AD001E76B4FFE5C7386FC0773858
+:10FC8000FFF0F71B28002314003205AC0002872E7A
+:10FC9000000076AD001E76B4FFE5C7386FC0773838
+:10FCA000FFF0F71B28002314003005AC0002872E5C
+:10FCB000000076AD001E76B4FFE5C7386FC0773818
+:10FCC000FFF0F71B28002314002E05AC0002872E3E
+:10FCD000000076AD001E76B4FFE5C7386FC07738F8
+:10FCE000FFF0F71B28002314002C05AC0002872E20
+:10FCF000000076AD001E76B4FFE5C7386FC07738D8
+:10FD0000FFF0F71B28002314002A05AC0002872E01
+:10FD1000000076AD001E76B4FFE5C7386FC07738B7
+:10FD2000FFF0F71B280005AC0002872E000023140B
+:10FD3000002875AD001E75ACFFE5C7385FC0773889
+:10FD4000FFF0F71B28008716FFC8F6820003C738AC
+:10FD50003FC096B2000806B01DD8F4372800F386DD
+:10FD600014D89393FFFCF3821DE09393FFFC96134A
+:10FD7000FFFC7739FFF09713FFFC8396FFC4000068
+:10FD800000019393FFFC07880008E000EAB897930E
+:10FD9000FFFCE000FDB800000001F704429476B1DA
+:10FDA000001E76B4FFE5F4020000C7386FC0773953
+:10FDB000FFF007380001F73328008796FFFC829692
+:10FDC000FFF802140004013C0000000000019293BF
+:10FDD000FFFC029000088616000000000001873238
+:10FDE000000076B1001E76B4FFE5C7386FC07739E2
+:10FDF000FFF0203A0006E600FE21F582001EF7041F
+:10FE000042A8F60642A876B1001E76B4FFE5C738D0
+:10FE10006FC07739FFF007380001E000FE34F73398
+:10FE20002800F6056F349593FFFC07880008E00072
+:10FE300015849793FFFC8796FFFC8296FFF80214C7
+:10FE40000004013C0000000000019293FFFC0290BE
+:10FE5000000886160000859600048732000076B1FF
+:10FE6000001E76B4FFE5C7386FC07739FFF0203A3F
+:10FE70000007E600FE9DF4020000F70442A8F60623
+:10FE800042AA76B1001E76B4FFE5C7386FC0773955
+:10FE9000FFF007380001E000FF1CF73328000730AF
+:10FEA000000286BA00007739001E7738FFE5C6B435
+:10FEB00077C076B5FFF020360001E600FED5F605E6
+:10FEC0006F3420360002E600FEE5F5020020E00077
+:10FED000FEFCF60642AC202E000CE600FF1CF402ED
+:10FEE0000000F502001F9513FFFC07880008E000E2
+:10FEF00015849793FFFCE000FF1CF4020001F70457
+:10FF000042AC76B1001E76B4FFE5C7386FC07739D2
+:10FF1000FFF007380001F7332800F402000187964C
+:10FF2000FFFC8296FFF802140008013C000000006C
+:10FF300000019293FFFC02900008869600000000EA
+:10FF4000000187360004F6020000073800089736E3
+:10FF500000048736000800000001203A0000EC0091
+:10FF6000FF7DF6856F348736000800000001203AD7
+:10FF70000003EE00FF8020320000F6020001203274
+:10FF80000000E600FFBDF60642AEF7046F34000045
+:10FF90000001873A0008F682FFEC77390002A73AA1
+:10FFA0006802000000019713FFFC07880008E000CA
+:10FFB00015849793FFFCE000FFD800000001F704D0
+:10FFC00042AC76B1001E76B4FFE5C7386FC0773912
+:10FFD000FFF007380001F73328008796FFFC829670
+:10FFE000FFF802140004013C0000000000010000C2
+:10FFF00000170000001A0000001D0000001800009B
+:020000021000EC
+:10000000000056657273696F6E537472696E673A59
+:10001000206D63702D6C34763320332E303863209E
+:1000200044656320313120313939362031333A305B
+:10003000363A313600009293FFFC02900008F70434
+:10004000E00CFF0200009702FF84F7060C3ECFFC95
+:100050007580F60200029602FF8C9002FF88F7047A
+:10006000E02000000001203A0000E6010074F68262
+:100070000000F68200039682FF988796FFFC829626
+:10008000FFF802140000013C000000000001929300
+:10009000FFFC029000082210000CF5021494F505F4
+:1000A0007B00F50EF014F5057B08F706E000F686F8
+:1000B0007B68C7386A00F7057AF0F502004CF682D3
+:1000C000000020360002EE010124F5057AF8C5B4DF
+:1000D0000000C6340000F706E030C72C7000F506BB
+:1000E0006F44B73250029013FFFC9713FFFC9596B4
+:1000F000FFF49616FFF09696FFEC07880008E001E3
+:10010000031C9793FFFC8596FFF48616FFF08696F6
+:10011000FFEC05AC149406B4000120360002EE0199
+:1001200000D506300004F5020022F5056F58F005F1
+:100130006F54F0056F50F0052D408796FFFC8296B6
+:10014000FFF802140000013C00000000000192933F
+:10015000FFFC0290000807880008E00129589793E7
+:10016000FFFCF7020003F705E008F7047AD8F6026F
+:1001700000019602FF94203A0000E6010191F70683
+:100180007AE807880008E00103DC9793FFFCF70694
+:100190007AE8F6020005F63B2800F7067AE0868248
+:1001A000FF44F602000320360000E60101C9F63BD9
+:1001B0002800F7046F648682FF4407380001203668
+:1001C0000000E60101B0F7056F6407880008E00150
+:1001D00000349793FFFC07880008E001008C979398
+:1001E000FFFC07880008E00044289793FFFC07887D
+:1001F0000008E00016F09793FFFC07880008E00174
+:100200000C609793FFFC07880008E00104089793AF
+:10021000FFFC07880008E00000209793FFFC078898
+:100220000008E0000BD89793FFFC07880008E00166
+:100230001D689793FFFC07880008E0011E50979304
+:10024000FFFC07880008E0005F689793FFFC0788C1
+:100250000008E0006DEC9793FFFC07880008E001C0
+:1002600021D09793FFFC07880008E001222C979388
+:10027000FFFC9002FF9407880008E0000BFC9793B6
+:10028000FFFCF40200008796FFFC8296FFF8021440
+:100290000000013C0000000000019293FFFC02906E
+:1002A000000822100008F6020000C5B0000020324D
+:1002B0000002EE010308F5066F44A6AE50020000EE
+:1002C00000018736000000000001203A0001E6012D
+:1002D00002FCF50200029513FFFC9693FFFC959635
+:1002E000FFF49616FFF007880008E001031C9793BF
+:1002F000FFFC8616FFF08596FFF40000000105ACB8
+:100300000004E00102AC063000018796FFFC8296F3
+:10031000FFF802140000013C00000000000192936D
+:10032000FFFC0290000887160000F6020000F6822B
+:100330000008963A0008963A000C963A09D8963A80
+:1003400009DC963A0EF4963A0EF896BA1420963ACC
+:10035000142490BA148C8696000490BA149096BA1D
+:100360000000963A00048796FFFC8296FFF802147C
+:100370000008013C0000000000019293FFFC029085
+:100380000008859600008716000886160004773856
+:10039000FFFFC5307000C0325200E40103C9000005
+:1003A0000001872E000076AD001E76B4FFE5C73849
+:1003B0006FC07738FFF0F733280006300002C032F4
+:1003C0005200E40103A005AC00028796FFFC829670
+:1003D000FFF80214000C013C0000000000019293A1
+:1003E000FFFC02900008F7020001E00103E8F705B6
+:1003F0007AD88796FFFC8296FFF802140000013C31
+:10040000000000000001000000009293FFFC029039
+:100410000008F502000AF50571CCF00571D4F0056D
+:1004200071D0F00571C4F5020001F682000020369B
+:10043000000AEC010464F50571C8F58A1E00F60691
+:1004400071C4472CFFFC973200180630000406B434
+:100450000001F70471CC00000001C0367200EC010D
+:10046000044105AC214CF0057198F5066F689513B1
+:10047000FFFCF5067B189513FFFC07880008E000D9
+:1004800015489793FFFCF50605D49513FFFCF782FA
+:1004900000059793FFFCF5066F689513FFFC07882E
+:1004A0000008E000161C9793FFFCF5060B709513EF
+:1004B000FFFCF78200069793FFFCF5066F68951323
+:1004C000FFFC07880008E000161C9793FFFCF50668
+:1004D0000BA09513FFFCF78200059793FFFCF50630
+:1004E00070809513FFFC07880008E000161C9793A6
+:1004F000FFFCF5060B709513FFFCF782000697933F
+:10050000FFFCF50670809513FFFC07880008E000EB
+:10051000161C9793FFFCF50605589513FFFCF50292
+:10052000000A9513FFFCF506710C9513FFFC078874
+:100530000008E000161C9793FFFC07880008E00104
+:1005400005589793FFFC8796FFFC8296FFF80214EC
+:100550000000013C0000000000019293FFFC0290AB
+:100560000008F70471C400000001203A0000E60111
+:10057000057DF68671C4E0010594F7020000F704DA
+:1005800071D00000000177390002C7386800873A4F
+:10059000001800000001203A0000E60105ACF70554
+:1005A0007B10F606710CE00105C0F6057B18F60617
+:1005B0006F68F6057B189702FF48073821289702D5
+:1005C000FF4C8796FFFC8296FFF802140000013C66
+:1005D0000000000000019293FFFC0290000822102E
+:1005E00000108682FF48F4866F68F4857B18F50456
+:1005F0007B1026B4000285B60000872A0000762909
+:10060000001E7630FFE576B5001E76B4FFE5C5AC7A
+:100610006FC0C73867C07739FFF077B80010703EF9
+:10062000FFE1E601064575ACFFF0F70471AC000090
+:10063000000107380001F70571ACF70471ACE00167
+:1006400008C4F7020001772CFFF8203A0000E60109
+:10065000067176A9001EF70471A800000001073892
+:100660000001F70571A8F70471A8E00108C4F702BA
+:100670000001872A000076B4FFE5C7386FC07739DC
+:10068000FFF027380004203A0003E20108A400002C
+:10069000000177390002F68606A4A6B670020000B3
+:1006A0000001C1340000000106B40001077C000114
+:1006B00007EC00010844872A0004C4840000C03A03
+:1006C0004A00E60106D8000000018702FF4800004A
+:1006D0000001C7385200972A0004872A000400004E
+:1006E0000001203A2100EE01073CF602000086AA34
+:1006F00000048702FF4800000001C7385200273875
+:100700000028C0367200E601073C0000000177FCBB
+:10071000001D703EFFE1E601073C0000000177FC90
+:100720000017703EFFE1E601073D0000000177FC85
+:100730000016703EFFE1E601074420320000F60299
+:10074000000120320000E601088800000001872A2D
+:10075000001800000001203A0002EE0108C100006C
+:100760000001F70471A40000000107380001F7053B
+:1007700071A4F70471A4E00108C4F7020001872AFC
+:10078000000400000001203A2100EE0107E0F6021B
+:10079000000086AA00048702FF4800000001C73855
+:1007A00052002738000CC0367200E60107E0000056
+:1007B000000177FC001D703EFFE1E60107E000004C
+:1007C000000177FC0017703EFFE1E60107E1000041
+:1007D000000177FC0016703EFFE1E6010880203240
+:1007E0000000F6020001E0010880203200008702CC
+:1007F000FF4800000001C738520027380004203AA3
+:100800000008E6010838F682000077FC001D703E03
+:10081000FFE1E60108380000000177FC0017703E98
+:10082000FFE1E60108390000000177FC0016703E88
+:10083000FFE1E601088020360000F6820001E001B9
+:10084000088020360000F702000077FC001D703E93
+:10085000FFE1E60108780000000177FC0017703E18
+:10086000FFE1E60108790000000177FC0016703E08
+:10087000FFE1E6010880203A0000F7020001203A7B
+:100880000000E60108C100000001F70471A00000AB
+:10089000000107380001F70571A0F70471A0E0011D
+:1008A00008C4F7020001F704719C0000000107383A
+:1008B0000001F705719CF704719CE00108C4F70280
+:1008C0000001F7020000203A0000E601096800007C
+:1008D0000001F6847B10000000018736000076B529
+:1008E000001E76B4FFE5C7386FC07739FFF02738B0
+:1008F0000004203A0003E2010B5077390002F6862B
+:10090000090CA6B6700200000001C134000000010D
+:10091000091C00010AE000010AAC00010B14F704F5
+:1009200071D0F60471CC06B80001C0366200E60151
+:100930000938C7340000F7020000F58471D40000C4
+:100940000001C03A5A00470C0001203A0000E601BD
+:10095000098500000001F70471B0000000010738AC
+:100960000001F70571B0F70471B0F70471B400002D
+:10097000000107380001F70571B4F70471B4E00114
+:100980000B5000000001F48471C8F68571D0949674
+:10099000FFF4F4847B10C0366200E60109A494964B
+:1009A000FFECF00571D0F70471D0F00571C88496A2
+:1009B000FFECC03A5A00470C0001F70571C48726C6
+:1009C000000800000001703AFFE1E60109E10000C3
+:1009D0000001F70471980000000107380001F705D5
+:1009E00071988496FFF40000000120260000E601C3
+:1009F0000A710000000107880008E001055897937C
+:100A0000FFFCF602000920320014E6010A4D27001F
+:100A1000000C203A0001E2010A4DF7062DCCF684C5
+:100A20002ECC0000000175B50002B62E700206B48F
+:100A30000001F6852ECC8602FF34F7062E4C2036B8
+:100A4000001FE2010A4DB62E7002F0052ECCF7040D
+:100A50002D6800000001873A000000000001873A7D
+:100A600000280000000107880008C13800009793A3
+:100A7000FFFCF70471BC8496FFEC07380001F70512
+:100A800071BCF70471BC86A600048496FFF4F704D9
+:100A900071B820260000C7386800F70571B8E60174
+:100AA0000B5100000001E0010B5C00000001F704A5
+:100AB00071C00000000107380001F70571C0F7049C
+:100AC00071C0F4847B10000000019493FFFC078840
+:100AD0000008E000FDCC9793FFFCE0010B50000004
+:100AE0000001F70471C00000000107380001F7059C
+:100AF00071C0F70471C0F4847B100000000194936E
+:100B0000FFFC07880008E000FF309793FFFCE0013E
+:100B10000B5000000001F70471C00000000107380D
+:100B20000001F70571C0F70471C0F6847B108702DD
+:100B3000FF4800000001C7386A00273800049713F7
+:100B4000FFFC9693FFFC07880008E000FE4897939F
+:100B5000FFFC07880008E00105589793FFFC879683
+:100B6000FFFC8296FFF802140000013C0000000028
+:100B700000019293FFFC02900008F7067080F705D1
+:100B80007B1807880008E00105589793FFFC8796BB
+:100B9000FFFC8296FFF802140000013C00000000F8
+:100BA00000019293FFFC02900008F7066F68F705BA
+:100BB0007B1807880008E00105589793FFFC87968B
+:100BC000FFFC8296FFF802140000013C00000000C8
+:100BD00000019293FFFC02900008F7067B18971320
+:100BE000FFFCF7066F689713FFFC07880008E0001A
+:100BF00014F49793FFFCF7067B189713FFFCF70696
+:100C00006FF49713FFFC07880008E00014F4979333
+:100C1000FFFCF7067B189713FFFCF706708097130D
+:100C2000FFFC07880008E00014F49793FFFCF70628
+:100C30007B189713FFFCF706710C9713FFFC0788CE
+:100C40000008E00014F49793FFFC8796FFFC82965F
+:100C5000FFF802140000013C000000000001000049
+:100C600000009293FFFC02900008F5020004F505D5
+:100C70007600F0057608F0057604F00575F8F502C3
+:100C80000001F682000020360004EC010CBCF505E2
+:100C900075FCF58E6AF8F60675F8472CFFFC97325E
+:100CA00000180630000406B40001F70476000000C6
+:100CB0000001C0367200EC010C9905AC214CF50620
+:100CC00072189513FFFCF50676489513FFFC07880C
+:100CD0000008E00015489793FFFCF5060DF4951306
+:100CE000FFFCF782000E9793FFFCF5067218951330
+:100CF000FFFC07880008E000161C9793FFFCF50630
+:100D00000DF49513FFFCF782000E9793FFFCF50698
+:100D100072A49513FFFC07880008E000161C979347
+:100D2000FFFCF506132C9513FFFCF7820001979347
+:100D3000FFFCF50673309513FFFC07880008E00000
+:100D4000161C9793FFFCF50616C89513FFFCF78257
+:100D500000019793FFFCF50673BC9513FFFC078811
+:100D60000008E000161C9793FFFCF5061800951389
+:100D7000FFFCF78200109793FFFCF506744895136B
+:100D8000FFFC07880008E000161C9793FFFCF5069F
+:100D900016409513FFFCF78200109793FFFCF506B1
+:100DA00074D49513FFFC07880008E000161C979385
+:100DB000FFFCF506132C9513FFFCF50200129513AA
+:100DC000FFFCF50675609513FFFC07880008E0003E
+:100DD000161C9793FFFCF00575F0F00575ECF00517
+:100DE00075F48796FFFC8296FFF802140000013C20
+:100DF0000000000000019293FFFC02900008221006
+:100E00000038F70475EC00000001203A0000E6010C
+:100E10000E2800000001F70475F000000001203AE0
+:100E20000000E6010E3D0000000107880008E00117
+:100E300015D09793FFFCE001131800000001F704A0
+:100E400075FC00000001203A0000E6010E59F6860C
+:100E500075F8E0010E6CF6820000F70476080000D9
+:100E6000000177390002C738680086BA0018F70415
+:100E700076FC00000001203A0000E6010E90F685A5
+:100E80007660F3067648F30576FCE0010EA4F702DF
+:100E90000001F3020010F30576F8F3067648F30537
+:100EA0007700F7020000203A0000E6011315F30670
+:100EB0007448F70475EC00000001203A0000E601D8
+:100EC0000ED800000001F70475F000000001203A80
+:100ED0000000E6010EED0000000107880008E001B7
+:100EE00016409793FFFCE001131800000001F68400
+:100EF0007660000000018736000800000001703AAB
+:100F0000FFE1E6010F21F48200009693FFFC0788C1
+:100F10000008E00000BC9793FFFCE0011314F30607
+:100F20007560C3B40000841E0010F6844AA0231428
+:100F300000209316FFC49416FFE09696FFD4851EFA
+:100F40000014F7044A9C00000001C0367200EC0156
+:100F5000100C9516FFE477350001C7386800773923
+:100F60000002F3064A98C6B8300006B4000CC584E7
+:100F700000008736000000000001C03A4200E60190
+:100F80000F9CC62400008736000400000001C03A10
+:100F90005200E6010FA020320000F60200012032CC
+:100FA0000000E6010FAD00000001F582000086366A
+:100FB00000008716FFE000000001C0327200E2016D
+:100FC0000FE8F5020000C0327200E6010FF0202A9F
+:100FD000000086B600048716FFE400000001C0365A
+:100FE0007200E2010FF1202A0000F5020001202A20
+:100FF0000000E6011001202E0000F5820001202EE5
+:101000000000E601101020260000F48200012026D6
+:101010000000E6011045F60200018716FFD4F30632
+:101020004A9876B90001C6B4700076B50002C6B41D
+:10103000300006B4001486B600009716FFD8E00111
+:1010400010B89696FFDC2714002C9713FFFC83162C
+:10105000FFC4000000019313FFFCF3064A989313AA
+:10106000FFFC9396FFCC07880008E0012568979362
+:10107000FFFC8396FFCC20220000E60110B5F602AB
+:1010800000018716FFD4F3064A9876B90001C6B46A
+:10109000700076B50002C6B4300006B4001486B6FF
+:1010A00000009716FFD89696FFDCF7054AA0E001EE
+:1010B00010BC20320000F602000020320000E601E1
+:1010C00010CCF4820001E0011124F4820000869625
+:1010D000FFD80000000177350002C7386800773973
+:1010E0000002F68642C8A63A6802C7386800753919
+:1010F000001E7528FFE505B8000286AE000007381F
+:1011000000049716FFECC63057C07630FFF09616F5
+:10111000FFF475AD001E75ACFFE5C6B45FC076B4D4
+:10112000FFF09696FFF020260000E6011138F582C8
+:101130000000E00111CCF60200008696FFF00000EE
+:101140000001C7346800C49C7200C02E6A00EC0124
+:101150001198C5240000C62C00008716FFEC000083
+:101160000001A6B2700205AC0001C73070007739EB
+:10117000001E7738FFE5C6B477C076B4FFF0F6AB53
+:101180002800052800028716FFF000000001C02E8D
+:101190007200EC01115906300002F3020001F30560
+:1011A00076F4F60200018716FFF0869E0004C73829
+:1011B0007000C7384800C6B470008716FFF406B444
+:1011C00000209702FF6C9482FF509682FF582032D5
+:1011D0000000E601131000000001F704765CF584BE
+:1011E00076F807380001F705765CF704765C202E68
+:1011F0000021E2011230F6862C28F7042D38000079
+:10120000000106380001F6052D387739000220323A
+:101210000044E601121CB5BA6802F0052D38F3024D
+:101220000022F30576F8F3047700E0011234F305A9
+:1012300076FCF00576FCF70475F800000001203A12
+:101240000000E6011271F6862C28F7042D38000004
+:10125000000106380001F6052D3877390002F30247
+:10126000000F20320044E6011270B33A6802F00524
+:101270002D38F7047608F684760007380001C03A66
+:101280006A00E601128CF7057608F0057608F68408
+:101290007608F7047604F00575F8F60675F8C0369A
+:1012A0007200470C0001203A0000E60112B9F70570
+:1012B00075FCE00112C8F702000077350002C7385C
+:1012C0006000873A001800000001203A0000E601A3
+:1012D0001309F7057660F7042D38F30672A4F305B9
+:1012E0007648F6862C2806380001F6052D38773921
+:1012F0000002F302000E20320044E6011318B33A54
+:101300006802E0011318F0052D38E0011314F3060C
+:101310007218F3067330F30576488796FFFC8296C1
+:10132000FFF802140000013C00000000000192934D
+:10133000FFFC02900008F70476600000000186BA06
+:101340000004F704765400000001C7386800F70570
+:101350007654F70476580000000107380001F705BD
+:101360007658F70475F8F6847658203A0000E601BE
+:10137000139DF6862C28F7042D380000000106384E
+:101380000001F6052D3877390002F502000F2032F2
+:101390000044E601139CB53A6802F0052D38F704C5
+:1013A0007608F684760007380001C03A6A00E60144
+:1013B00013B8F7057608F0057608F7047608F68482
+:1013C0007604F00575F8F58476F8C03A6A00470CA3
+:1013D0000001202E0021E2011414F70575FCF7042A
+:1013E0002D38F6862C2806380001F6052D38773979
+:1013F000000220320044E6011400B5BA6802F0058C
+:101400002D38F5020022F50576F8F5047700E001A5
+:101410001418F50576FCF00576FCF70475ECF50676
+:101420007218203A0000E6011440F5057648F704EA
+:1014300075F000000001203A0000E601145500009C
+:10144000000107880008E00115D09793FFFCE00138
+:1014500014C400000001F70475FC00000001203AEC
+:101460000000E6011471F68675F8E0011488F702B1
+:101470000000F70476080000000177390002C73841
+:101480006800873A001800000001203A0000E601D9
+:1014900014C5F7057660F7042D38F6862C28063833
+:1014A0000001F6052D3877390002F502000E2032D2
+:1014B0000044E60114BCB53A6802F0052D38F50683
+:1014C00072A4F50576488796FFFC8296FFF8021411
+:1014D0000000013C0000000000019293FFFC02901C
+:1014E0000008F70475EC00000001203A0000E60156
+:1014F0001540F40200008696000400000001F68505
+:1015000075EC8696000800000001F6857B3886960B
+:101510000000F7047648F6857B30F6867218C03AEC
+:101520006A00470C0001203A0000E6011541F40270
+:10153000000107880008E00115D09793FFFCF40232
+:1015400000018796FFFC8296FFF80214000C013C14
+:101550000000000000019293FFFC02900008F704D5
+:1015600075F400000001203A0000E60115BCF40209
+:1015700000008696000400000001F68575F086964E
+:10158000000800000001F6857B4886960000F704FD
+:101590007648F6857B40F6867218C03A6A00470C9A
+:1015A0000001203A0000E60115BDF40200010788A1
+:1015B0000008E00115D09793FFFCF4020001879624
+:1015C000FFFC8296FFF80214000C013C00000000B2
+:1015D00000019293FFFC02900008F70476FC0000E3
+:1015E0000001203A0000E60115FCF6820010F686A4
+:1015F0007648F68576FCE001160CF7020001F685C8
+:1016000076F8F6867648F6857700F7020000203AED
+:101610000000E6011620F68674D4E001162CF6854B
+:10162000764807880008E00116409793FFFC8796EC
+:10163000FFFC8296FFF802140000013C000000004D
+:1016400000019293FFFC02900008F60475F0000080
+:10165000000120320000E6011685F7020001F705BF
+:1016600075F4F6847B48F70576F4F7047B40C6B042
+:10167000680026B400049702FF6C9602FF50E00158
+:1016800016A800000001F70475ECF6847B38F5829B
+:101690000001F58576F4F6047B30C6B8680026B400
+:1016A00000049602FF6C9702FF509682FF58F58661
+:1016B00073BCF58576488796FFFC8296FFF8021486
+:1016C0000000013C0000000000019293FFFC02902A
+:1016D0000008F7047B280000000107380001F70527
+:1016E0007B28F70475F4F6847B28203A0000E60195
+:1016F000172100000001F00575F4F70475EC0000F7
+:101700000001203A0000E6011725F00575F0078872
+:101710000008E00116409793FFFCE00117EC000081
+:101720000001F00575ECF70475FC00000001203A9B
+:101730000000E6011741F68675F8E0011758F70238
+:101740000000F70476080000000177390002C7386E
+:101750006800873A001800000001203A0000E60106
+:101760001795F7057660F7042D38F6862C2806388D
+:101770000001F6052D3877390002F502000E2032FF
+:101780000044E601178CB53A6802F0052D38E001F7
+:101790001798F50672A4F5067218F5057648F584D3
+:1017A00076F800000001202E0021E20117E8F686FD
+:1017B0002C28F7042D380000000106380001F6053A
+:1017C0002D387739000220320044E60117D4B5BA2B
+:1017D0006802F0052D38F5020022F50576F8F504CB
+:1017E0007700E00117ECF50576FCF00576FC8796AE
+:1017F000FFFC8296FFF802140000013C000000008C
+:1018000000019293FFFC0290000822100038F704B8
+:1018100075EC00000001203A0000E60118340000D9
+:101820000001F70475F000000001203A0000E60115
+:1018300018490000000107880008E001164097934E
+:10184000FFFCE0011C7400000001F68476600000DB
+:1018500000018736000800000001703AFFE1E60150
+:10186000187DF48200009693FFFC07880008E000D2
+:1018700000BC9793FFFCE0011C70F3067560C3B4D5
+:101880000000841E0010F6844AA023140020931642
+:10189000FFC49416FFE09696FFD4851E0014F7044B
+:1018A0004A9C00000001C0367200EC0119689516D0
+:1018B000FFE477350001C738680077390002F30686
+:1018C0004A98C6B8300006B4000CC58400008736BC
+:1018D000000000000001C03A4200E60118F8C624EA
+:1018E00000008736000400000001C03A5200E60103
+:1018F00018FC20320000F602000120320000E60150
+:10190000190900000001F5820000863600008716E4
+:10191000FFE000000001C0327200E2011944F5024C
+:101920000000C0327200E601194C202A000086B681
+:1019300000048716FFE400000001C0367200E201D7
+:10194000194D202A0000F5020001202A0000E601BE
+:10195000195D202E0000F5820001202E0000E60116
+:10196000196C20260000F482000120260000E60108
+:1019700019A1F60200018716FFD4F3064A9876B93A
+:101980000001C6B4700076B50002C6B4300006B4DB
+:10199000001486B600009716FFD8E0011A14969638
+:1019A000FFDC2714002C9713FFFC8316FFC40000F4
+:1019B00000019313FFFCF3064A989313FFFC9396E0
+:1019C000FFCC07880008E00125689793FFFC839609
+:1019D000FFCC20220000E6011A11F6020001871652
+:1019E000FFD4F3064A9876B90001C6B4700076B504
+:1019F0000002C6B4300006B4001486B60000971684
+:101A0000FFD89696FFDCF7054AA0E0011A182032AD
+:101A10000000F602000020320000E6011A28F482DD
+:101A20000001E0011A80F48200008696FFD80000D1
+:101A3000000177350002C738680077390002F68662
+:101A400042C8A63A6802C73868007539001E752872
+:101A5000FFE505B8000286AE0000073800049716BF
+:101A6000FFECC63057C07630FFF09616FFF475AD28
+:101A7000001E75ACFFE5C6B45FC076B4FFF0969665
+:101A8000FFF020260000E6011A94F5820000E00134
+:101A90001B28F60200008696FFF000000001C73404
+:101AA0006800C49C7200C02E6A00EC011AF4C524C0
+:101AB0000000C62C00008716FFEC00000001A6B253
+:101AC000700205AC0001C73070007739001E77380E
+:101AD000FFE5C6B477C076B4FFF0F6AB2800052862
+:101AE00000028716FFF000000001C02E7200EC011A
+:101AF0001AB506300002F3020001F30576F4F6028F
+:101B000000018716FFF0869E0004C7387000C738B2
+:101B10004800C6B470008716FFF406B40020970290
+:101B2000FF6C9482FF509682FF5820320000E6013D
+:101B30001C6C00000001F704765CF58476F8073829
+:101B40000001F705765CF704765C202E0021E201A7
+:101B50001B8CF6862C28F7042D380000000106386F
+:101B60000001F6052D387739000220320044E601E5
+:101B70001B78B5BA6802F0052D38F3020022F30590
+:101B800076F8F3047700E0011B90F30576FCF0058E
+:101B900076FCF70475F800000001203A0000E60129
+:101BA0001BCDF6862C28F7042D38000000010638DE
+:101BB0000001F6052D3877390002F302000F2032BC
+:101BC0000044E6011BCCB33A6802F0052D38F70457
+:101BD0007608F684760007380001C03A6A00E6010C
+:101BE0001BE8F7057608F0057608F6847608F70412
+:101BF0007604F00575F8F60675F8C0367200470CE5
+:101C00000001203A0000E6011C15F70575FCE00113
+:101C10001C24F702000077350002C7386000873ABD
+:101C2000001800000001203A0000E6011C65F705DD
+:101C30007660F7042D38F30672A4F3057648F6862D
+:101C40002C2806380001F6052D3877390002F302FA
+:101C5000000E20320044E6011C74B33A6802E00131
+:101C60001C74F0052D38E0011C70F3067218F306A1
+:101C70007330F30576488796FFFC8296FFF80214CE
+:101C80000000013C0000000000019293FFFC029064
+:101C90000008F70676489713FFFCF70672189713AB
+:101CA000FFFC07880008E00014F49793FFFCF70698
+:101CB00076489713FFFCF70672A49713FFFC07887A
+:101CC0000008E00014F49793FFFCF706764897139A
+:101CD000FFFCF70673309713FFFC07880008E0004D
+:101CE00014F49793FFFCF70676489713FFFCF7066A
+:101CF00073BC9713FFFC07880008E00014F4979367
+:101D0000FFFCF70676489713FFFCF7067448971315
+:101D1000FFFC07880008E00014F49793FFFCF70627
+:101D200076489713FFFCF70674D49713FFFC0788D7
+:101D30000008E00014F49793FFFCF7067648971329
+:101D4000FFFCF70675609713FFFC07880008E000AA
+:101D500014F49793FFFC8796FFFC8296FFF8021419
+:101D60000000013C0000000000019293FFFC029083
+:101D70000008F68676689693FFFCF68677049693BD
+:101D8000FFFC07880008E00015489793FFFCF686E3
+:101D90001DD49693FFFC9013FFFCF686766896930D
+:101DA000FFFC07880008E000161C9793FFFCF70271
+:101DB0000022F70576F4F70576F8F00576FCF005D5
+:101DC00077008796FFFC8296FFF802140000013C22
+:101DD0000000000000019293FFFC02900008F7044D
+:101DE00076F400000001203A0022E6011E01000006
+:101DF00000019713FFFC07880008E0001584979303
+:101E0000FFFC8796FFFC8296FFF802140000013C5D
+:101E10000000000000019293FFFC02900008F7060A
+:101E200077049713FFFCF70676689713FFFC078883
+:101E30000008E00014F49793FFFC8796FFFC82965D
+:101E4000FFF802140000013C000000000001000047
+:101E500000009293FFFC02900008F686781096939B
+:101E6000FFFCF68678A49693FFFC07880008E00044
+:101E700015489793FFFCF6861FBC9693FFFCF682ED
+:101E800000149693FFFCF68678109693FFFC078863
+:101E90000008E000161C9793FFFCF005789C900268
+:101EA000FF34F7027FFFF70578A09702FF3087968F
+:101EB000FFFC8296FFF802140000013C00000000C5
+:101EC00000019293FFFC02900008F604789C8716AC
+:101ED000000084960008F5867710873A0008F68699
+:101EE000218C7539000477390002A73A6802203244
+:101EF0000000C6A8580084160004C63075809436C9
+:101F00000004B4AA580287360008F605789C073802
+:101F10000001E6011F2D973600088702FF30000000
+:101F20000001C03A4A00EE011F3500000001F485AF
+:101F300078A09482FF308796FFFC8296FFF8021407
+:101F4000000C013C0000000000019293FFFC029095
+:101F500000088596000000000001872E0008F68624
+:101F6000218C77390002A73A6802F604789CC704EE
+:101F7000760086AE0008C6307400F7067710F605C6
+:101F8000789C76B50004C6B470008736000820320D
+:101F9000000007380001E6011FA897360008F70285
+:101FA0007FFFF70578A09702FF308796FFFC8296A7
+:101FB000FFF802140004013C0000000000019293AD
+:101FC000FFFC0290000822100008F704789C000033
+:101FD0000001203A0000E60120D1F6027FFF9616AC
+:101FE000FFF4F6842D40F606771026B4000177350D
+:101FF0000004C4B86000C338000074350002F6065F
+:102000007710C0266200EC0120C1F606218CF38413
+:10201000789CA722600200000001C01E7400E60147
+:1020200020B10000000186A60000F70478A000009F
+:102030000001C6B4720020360000EE01209896A67A
+:102040000000F7042D38F6067710C5186000F686F4
+:102050002C28862A000405B80001F5852D3877392B
+:102060000002202E0044E6012070B63A6802F00516
+:102070002D38862A000800000001962A000CF6067A
+:10208000218CA722600200000001C7047600C71C53
+:102090007400E00120B0F705789C8616FFF400007C
+:1020A0000001C0366200EC0120B0000000019696ED
+:1020B000FFF424A4001023180010E0011FFC2420CA
+:1020C00000048616FFF400000001F60578A09602D1
+:1020D000FF308796FFFC8296FFF802140000013C57
+:1020E0000000000000019293FFFC02900008871698
+:1020F000000000000001873A0008F6867710773963
+:102100000004C738680086BA000C873A000800004F
+:102110000001C0367200440C00018796FFFC8296D5
+:10212000FFF802140004013C00000000000192933B
+:10213000FFFC02900008F702000F203A0000EC01BB
+:10214000215DF68677189036000027380001C60416
+:102150000000C03A6200E601214406B40010F60611
+:1021600078A49613FFFCF60678109613FFFC0788F8
+:102170000008E00014F49793FFFC8796FFFC82961A
+:10218000FFF802140000013C000000000001000004
+:102190000001000000020000000400000008000030
+:1021A000001000000020000000400000008000003F
+:1021B0000100000002000000040000000800000010
+:1021C000100000002000000040000000800000001F
+:1021D00000009293FFFC02900008F70678B0971376
+:1021E000FFFCF70679CC9713FFFC07880008E00096
+:1021F00015489793FFFCF706222C9713FFFCF70274
+:1022000000159713FFFCF70678B09713FFFC0788BB
+:102210000008E000161C9793FFFC8796FFFC82964F
+:10222000FFF802140000013C00000000000192933E
+:10223000FFFC02900008F6846F440000000187361E
+:10224000000000000001203A0002E6012270F602C0
+:10225000000087360EF486B60EF800000001C03A82
+:102260006A00470C0001203A0000E6012278203283
+:102270000000F602000120320000E6012294000076
+:102280000001F70432E800000001203A0000E601F6
+:1022900022B1F58203E80F814000F70479C80000FD
+:1022A000000107380001F70579C8F70479C8F582FD
+:1022B00003E89593FFFCF58200159593FFFCF586E6
+:1022C00079CC9593FFFC07880008E0011EC0979326
+:1022D000FFFC8796FFFC8296FFF802140000013C89
+:1022E0000000000000019293FFFC02900008F70636
+:1022F00079CC9713FFFCF70678B09713FFFC07889B
+:102300000008E00014F49793FFFCF70679CC9713CC
+:10231000FFFCF706793C9713FFFC07880008E000F4
+:1023200014F49793FFFC8796FFFC8296FFF8021443
+:102330000000013C000000000001C13C0000021050
+:1023400000049293FFFC029000082210000C859676
+:1023500000000000000186AE0004000000012036ED
+:102360000000E60123842714000C872E00040000DF
+:10237000000107380001972E0004872E0004E001B9
+:1023800024349696FFF49713FFFC85160004000092
+:1023900000019513FFFC9593FFFC9596FFEC0788D1
+:1023A0000008E00125689793FFFC8596FFEC20224A
+:1023B0000000E60124340000000186AE0004861609
+:1023C000FFF400000001C0366200EE0124217735E1
+:1023D0000001C738680077390002C6B85800773165
+:1023E0000001C738600077390002C73858008536C9
+:1023F0000000000000019536000C85360004000046
+:102400000001953600108536000800000001953661
+:10241000001426B4000CC0367200EE0123EC00005C
+:102420000001872E00040000000107380001972EEC
+:102430000004872E00048696FFF485160004773585
+:102440000001C738680077390002C72C7000852A60
+:10245000000000000001953A000C85160004000001
+:102460000001852A000400000001953A001085163D
+:102470000008F4020001953A001496AE0008879611
+:10248000FFFC8296FFF80214000C013C00000000E3
+:1024900000019293FFFC029000082210000C859628
+:1024A000000000000001842E000400000001202232
+:1024B0000000E60125552714000C9713FFFC851634
+:1024C0000004000000019513FFFC9593FFFC959616
+:1024D000FFEC07880008E00125689793FFFC8596CC
+:1024E000FFEC20220000E6012555000000018616C1
+:1024F000FFF40000000120320000EE012545773195
+:102500000001C6AC0000C738600077390002C73848
+:10251000580085360018000000019536000C8536FD
+:10252000001C0000000195360010853600200000D8
+:1025300000019536001406B4000CC0367200EC01A0
+:10254000251100000001872E0004F4020001273845
+:102550000001972E00048796FFFC8296FFF8021474
+:102560000008013C0000000000019293FFFC029073
+:102570000008221000088396000483160000C5009E
+:102580000000841A0004C4A800009416FFF4C026BA
+:102590004200E60126D1000000018316FFF400008E
+:1025A0000001C02A3200E60126D1C7204A00951654
+:1025B000FFF476B8FFE1C73868007739FFFFC5241C
+:1025C000700077290001C738500077390002831660
+:1025D0000000869E0000C5B8300005AC000C872EB8
+:1025E0000000C6000000C0367200E601261020324E
+:1025F0000000869E0004872E000400000001C03603
+:102600007200E601261020320000F602000120329E
+:102610000000E601262500000001C7000000E001DF
+:102620002678203A0000869E0000872E00000000D9
+:102630000001C0367200E201265C00000001E601E4
+:10264000266420320000869E0004872E00040000CD
+:102650000001C0367200E201266520320000F60259
+:102660000001203200004704FFFFE6012679203AEE
+:102670000000F7020001203A0000E60126B1203AEE
+:102680000000EE0126A0203A00014304FFFFC03AFB
+:102690003200E60126C9C0264200E0012590000074
+:1026A0000001E60126C1C0264200E001259000009D
+:1026B000000183160008F4020001E00126E0951AEB
+:1026C0000000E001258CC4A80000E001258CC4288E
+:1026D00000008316000800000001941A0000C400E6
+:1026E00000008796FFFC8296FFF80214000C013C64
+:1026F000000000000001000000009293FFFC029027
+:102700000008859600048416000084960008F702ED
+:102710000003C6A04D80C6B67400E6012771C6202E
+:10272000000020360002E60127A0C5204800C7208F
+:10273000480027380002C0227200E201279CC538F9
+:102740000000872E000076AD001E76B4FFE5C73886
+:102750006FC07738FFF0F733280006300002C03230
+:102760005200E201274105AC0002E00127A0C5208C
+:102770004800C720480027380004C0227200E20148
+:1027800027A0C520480083AD00040000000193B1DC
+:102790000004C0327200E201278500000001C5205C
+:1027A0004800C0325200E40127D50000000186AE87
+:1027B0000000772D001E7738FFE5C6B477C076B5E8
+:1027C000FFE8F6B3680006300001C0325200E401B1
+:1027D00027AC05AC00018796FFFC8296FFF8021437
+:1027E000000C013C0000000000019293FFFC0290ED
+:1027F0000008841600008696000400000001C7222D
+:102800006D80E601281020360000E0012874C438ED
+:102810000000F7020001EE012841F602000076B543
+:10282000000120360000EE01281C77390001E0018C
+:10283000284420220000742100017738FFFF063071
+:10284000000120220000EE012834203A0000E601B9
+:10285000287100000001C0226A00E4012864000021
+:102860000001C4206A00773AFFFFE601285476B4DD
+:10287000FFFFD42007628796FFFC8296FFF80214C0
+:102880000008013C0000000000019293FFFC029050
+:10289000000822100004E00128CCF70629DC86BAE3
+:1028A00000000000000120360000E60128C90000F9
+:1028B00000019716FFF407880008C13400009793C1
+:1028C000FFFC8716FFF40000000127380004F6061D
+:1028D00029E0C03A6200E401289D000000018796CB
+:1028E000FFFC8296FFF802140000013C000000008B
+:1028F00000019293FFFC0290000822100004E00106
+:102900002934F706299886BA000000000001203615
+:102910000000E6012931000000019716FFF4078846
+:102920000008C13400009793FFFC8716FFF40000F5
+:10293000000107380004F60629E0C03A6200E4010D
+:102940002904000000018796FFFC8296FFF802141C
+:102950000000013C0000000000019293FFFC029087
+:102960000008F7047B5000000001203A0000E60157
+:102970002984F6820001F6857B5007880008E00173
+:1029800028F09793FFFC8796FFFC8296FFF80214CD
+:102990000000013C00000000000100000B4C0000A2
+:1029A0000000000042880000000000005E500000AF
+:1029B00000000000C7A80000000000010BD00000CC
+:1029C000000000011C880000000000011E1400002F
+:1029D00000000001212C00000000000122E40000A2
+:0229E0000000F5
+:00000001FF
+/* This is the Myrinet MCP code for LANai4.x */
+/* Generated by  cat $MYRI_HOME/lib/lanai/mcp4.dat > myri_code4.h */
index a404fb8..3a6b193 100644 (file)
@@ -221,22 +221,23 @@ static int ramfs_fill_super(struct super_block * sb, void * data, int silent)
        save_mount_options(sb, data);
 
        fsi = kzalloc(sizeof(struct ramfs_fs_info), GFP_KERNEL);
+       sb->s_fs_info = fsi;
        if (!fsi) {
                err = -ENOMEM;
                goto fail;
        }
-       sb->s_fs_info = fsi;
 
        err = ramfs_parse_options(data, &fsi->mount_opts);
        if (err)
                goto fail;
 
-       sb->s_maxbytes = MAX_LFS_FILESIZE;
-       sb->s_blocksize = PAGE_CACHE_SIZE;
-       sb->s_blocksize_bits = PAGE_CACHE_SHIFT;
-       sb->s_magic = RAMFS_MAGIC;
-       sb->s_op = &ramfs_ops;
-       sb->s_time_gran = 1;
+       sb->s_maxbytes          = MAX_LFS_FILESIZE;
+       sb->s_blocksize         = PAGE_CACHE_SIZE;
+       sb->s_blocksize_bits    = PAGE_CACHE_SHIFT;
+       sb->s_magic             = RAMFS_MAGIC;
+       sb->s_op                = &ramfs_ops;
+       sb->s_time_gran         = 1;
+
        inode = ramfs_get_inode(sb, S_IFDIR | fsi->mount_opts.mode, 0);
        if (!inode) {
                err = -ENOMEM;
@@ -244,14 +245,16 @@ static int ramfs_fill_super(struct super_block * sb, void * data, int silent)
        }
 
        root = d_alloc_root(inode);
+       sb->s_root = root;
        if (!root) {
                err = -ENOMEM;
                goto fail;
        }
-       sb->s_root = root;
+
        return 0;
 fail:
        kfree(fsi);
+       sb->s_fs_info = NULL;
        iput(inode);
        return err;
 }
index 7ef1caf..f2a78b5 100644 (file)
@@ -18,7 +18,6 @@
 #define _FSL_DEVICE_H_
 
 #include <linux/types.h>
-#include <linux/phy.h>
 
 /*
  * Some conventions on how we handle peripherals on Freescale chips
  *
  */
 
-struct gianfar_platform_data {
-       /* device specific information */
-       u32     device_flags;
-       char    bus_id[BUS_ID_SIZE];
-       phy_interface_t interface;
-};
-
-struct gianfar_mdio_data {
-       /* board specific information */
-       int     irq[32];
-};
-
-/* Flags in gianfar_platform_data */
-#define FSL_GIANFAR_BRD_HAS_PHY_INTR   0x00000001 /* set or use a timer */
-#define FSL_GIANFAR_BRD_IS_REDUCED     0x00000002 /* Set if RGMII, RMII */
-
-struct fsl_i2c_platform_data {
-       /* device specific information */
-       u32     device_flags;
-};
-
 /* Flags related to I2C device features */
 #define FSL_I2C_DEV_SEPARATE_DFSRR     0x00000001
 #define FSL_I2C_DEV_CLOCK_5200         0x00000002
index ee9fbc1..c9087de 100644 (file)
@@ -51,6 +51,7 @@
 #define I2C_HW_B_CX2341X       0x010020 /* Conexant CX2341X MPEG encoder cards */
 #define I2C_HW_B_CX23885       0x010022 /* conexant 23885 based tv cards (bus1) */
 #define I2C_HW_B_AU0828                0x010023 /* auvitek au0828 usb bridge */
+#define I2C_HW_B_CX231XX       0x010024 /* Conexant CX231XX USB based cards */
 #define I2C_HW_B_HDPVR         0x010025 /* Hauppauge HD PVR */
 
 /* --- SGI adapters                                                    */
index 139d234..ebb2ea6 100644 (file)
@@ -737,6 +737,11 @@ struct v4l2_input {
 #define V4L2_IN_ST_NO_SIGNAL   0x00000002
 #define V4L2_IN_ST_NO_COLOR    0x00000004
 
+/* field 'status' - sensor orientation */
+/* If sensor is mounted upside down set both bits */
+#define V4L2_IN_ST_HFLIP       0x00000010 /* Frames are flipped horizontally */
+#define V4L2_IN_ST_VFLIP       0x00000020 /* Frames are flipped vertically */
+
 /* field 'status' - analog */
 #define V4L2_IN_ST_NO_H_LOCK   0x00000100  /* No horizontal sync lock */
 #define V4L2_IN_ST_COLOR_KILL  0x00000200  /* Color killer is active */
index 6ab8549..90cf22a 100644 (file)
    =======
 
    So to specify a complete routing scheme for the msp3400 you will have to
-   specify in the 'input' field of the v4l2_routing struct:
+   specify in the 'input' arg of the s_routing function:
 
    1) which tuner input to use
    2) which SCART input to use
    3) which DSP input to use for each DSP output
 
-   And in the 'output' field of the v4l2_routing struct you specify:
+   And in the 'output' arg of the s_routing function you specify:
 
    1) which SCART input to use for each SCART output
 
index 57db48d..30d9629 100644 (file)
 #define OV772X_FLAG_VFLIP     0x00000001 /* Vertical flip image */
 #define OV772X_FLAG_HFLIP     0x00000002 /* Horizontal flip image */
 
+/*
+ * for Edge ctrl
+ *
+ * strength also control Auto or Manual Edge Control Mode
+ * see also OV772X_MANUAL_EDGE_CTRL
+ */
+struct ov772x_edge_ctrl {
+       unsigned char strength;
+       unsigned char threshold;
+       unsigned char upper;
+       unsigned char lower;
+};
+
+#define OV772X_MANUAL_EDGE_CTRL        0x80 /* un-used bit of strength */
+#define EDGE_STRENGTH_MASK     0x1F
+#define EDGE_THRESHOLD_MASK    0x0F
+#define EDGE_UPPER_MASK                0xFF
+#define EDGE_LOWER_MASK                0xFF
+
+#define OV772X_AUTO_EDGECTRL(u, l)     \
+{                                      \
+       .upper = (u & EDGE_UPPER_MASK), \
+       .lower = (l & EDGE_LOWER_MASK), \
+}
+
+#define OV772X_MANUAL_EDGECTRL(s, t)                                   \
+{                                                                      \
+       .strength  = (s & EDGE_STRENGTH_MASK) | OV772X_MANUAL_EDGE_CTRL,\
+       .threshold = (t & EDGE_THRESHOLD_MASK),                         \
+}
+
+/*
+ * ov772x camera info
+ */
 struct ov772x_camera_info {
        unsigned long          buswidth;
        unsigned long          flags;
        struct soc_camera_link link;
+       struct ov772x_edge_ctrl edgectrl;
 };
 
 #endif /* __OV772X_H__ */
index fff4235..7a9f76e 100644 (file)
@@ -18,7 +18,7 @@
 #include <linux/vmalloc.h>     /* for vmalloc() */
 #include <linux/mm.h>          /* for vmalloc_to_page() */
 
-#define SAA7146_VERSION_CODE 0x000500  /* 0.5.0 */
+#define SAA7146_VERSION_CODE 0x000600  /* 0.6.0 */
 
 #define saa7146_write(sxy,adr,dat)    writel((dat),(sxy->mem+(adr)))
 #define saa7146_read(sxy,adr)         readl(sxy->mem+(adr))
index 6915aaf..1ac8184 100644 (file)
 #ifndef _TVAUDIO_H
 #define _TVAUDIO_H
 
+#include <media/i2c-addr.h>
+
 /* The tvaudio module accepts the following inputs: */
 #define TVAUDIO_INPUT_TUNER  0
 #define TVAUDIO_INPUT_RADIO  1
 #define TVAUDIO_INPUT_EXTERN 2
 #define TVAUDIO_INPUT_INTERN 3
 
+static inline const unsigned short *tvaudio_addrs(void)
+{
+       static const unsigned short addrs[] = {
+               I2C_ADDR_TDA8425   >> 1,
+               I2C_ADDR_TEA6300   >> 1,
+               I2C_ADDR_TEA6420   >> 1,
+               I2C_ADDR_TDA9840   >> 1,
+               I2C_ADDR_TDA985x_L >> 1,
+               I2C_ADDR_TDA985x_H >> 1,
+               I2C_ADDR_TDA9874   >> 1,
+               I2C_ADDR_PIC16C54  >> 1,
+               I2C_CLIENT_END
+       };
+
+       return addrs;
+}
+
 #endif
index 3a69056..c48c24e 100644 (file)
@@ -125,7 +125,7 @@ int v4l2_chip_match_host(const struct v4l2_dbg_match *match);
 
 /* ------------------------------------------------------------------------- */
 
-/* Helper function for I2C legacy drivers */
+/* I2C Helper functions */
 
 struct i2c_driver;
 struct i2c_adapter;
@@ -135,21 +135,24 @@ struct v4l2_device;
 struct v4l2_subdev;
 struct v4l2_subdev_ops;
 
-int v4l2_i2c_attach(struct i2c_adapter *adapter, int address, struct i2c_driver *driver,
-               const char *name,
-               int (*probe)(struct i2c_client *, const struct i2c_device_id *));
 
 /* Load an i2c module and return an initialized v4l2_subdev struct.
    Only call request_module if module_name != NULL.
    The client_type argument is the name of the chip that's on the adapter. */
-struct v4l2_subdev *v4l2_i2c_new_subdev(struct i2c_adapter *adapter,
+struct v4l2_subdev *v4l2_i2c_new_subdev(struct v4l2_device *v4l2_dev,
+               struct i2c_adapter *adapter,
                const char *module_name, const char *client_type, u8 addr);
 /* Probe and load an i2c module and return an initialized v4l2_subdev struct.
    Only call request_module if module_name != NULL.
    The client_type argument is the name of the chip that's on the adapter. */
-struct v4l2_subdev *v4l2_i2c_new_probed_subdev(struct i2c_adapter *adapter,
+struct v4l2_subdev *v4l2_i2c_new_probed_subdev(struct v4l2_device *v4l2_dev,
+               struct i2c_adapter *adapter,
                const char *module_name, const char *client_type,
                const unsigned short *addrs);
+/* Like v4l2_i2c_new_probed_subdev, except probe for a single address. */
+struct v4l2_subdev *v4l2_i2c_new_probed_subdev_addr(struct v4l2_device *v4l2_dev,
+               struct i2c_adapter *adapter,
+               const char *module_name, const char *client_type, u8 addr);
 /* Initialize an v4l2_subdev with data from an i2c_client struct */
 void v4l2_i2c_subdev_init(struct v4l2_subdev *sd, struct i2c_client *client,
                const struct v4l2_subdev_ops *ops);
@@ -171,139 +174,23 @@ const unsigned short *v4l2_i2c_tuner_addrs(enum v4l2_i2c_tuner_type type);
 
 /* ------------------------------------------------------------------------- */
 
-/* Internal ioctls */
-
-/* VIDIOC_INT_DECODE_VBI_LINE */
-struct v4l2_decode_vbi_line {
-       u32 is_second_field;    /* Set to 0 for the first (odd) field,
-                                  set to 1 for the second (even) field. */
-       u8 *p;                  /* Pointer to the sliced VBI data from the decoder.
-                                  On exit points to the start of the payload. */
-       u32 line;               /* Line number of the sliced VBI data (1-23) */
-       u32 type;               /* VBI service type (V4L2_SLICED_*). 0 if no service found */
-};
+/* Note: these remaining ioctls/structs should be removed as well, but they are
+   still used in tuner-simple.c (TUNER_SET_CONFIG), cx18/ivtv (RESET) and
+   v4l2-int-device.h (v4l2_routing). To remove these ioctls some more cleanup
+   is needed in those modules. */
 
+/* s_config */
 struct v4l2_priv_tun_config {
        int tuner;
        void *priv;
 };
-
-/* audio ioctls */
-
-/* v4l device was opened in Radio mode, to be replaced by VIDIOC_INT_S_TUNER_MODE */
-#define AUDC_SET_RADIO        _IO('d',88)
-
-/* tuner ioctls */
-
-/* Sets tuner type and its I2C addr */
-#define TUNER_SET_TYPE_ADDR          _IOW('d', 90, int)
-
-/* Puts tuner on powersaving state, disabling it, except for i2c. To be replaced
-   by VIDIOC_INT_S_STANDBY. */
-#define TUNER_SET_STANDBY            _IOW('d', 91, int)
-
-/* Sets tda9887 specific stuff, like port1, port2 and qss */
 #define TUNER_SET_CONFIG           _IOW('d', 92, struct v4l2_priv_tun_config)
 
-/* Switch the tuner to a specific tuner mode. Replacement of AUDC_SET_RADIO */
-#define VIDIOC_INT_S_TUNER_MODE             _IOW('d', 93, enum v4l2_tuner_type)
-
-/* Generic standby command. Passing -1 (all bits set to 1) will put the whole
-   chip into standby mode, value 0 will make the chip fully active. Specific
-   bits can be used by certain chips to enable/disable specific subsystems.
-   Replacement of TUNER_SET_STANDBY. */
-#define VIDIOC_INT_S_STANDBY        _IOW('d', 94, u32)
-
-/* 100, 101 used by  VIDIOC_DBG_[SG]_REGISTER */
-
-/* Generic reset command. The argument selects which subsystems to reset.
-   Passing 0 will always reset the whole chip. */
 #define VIDIOC_INT_RESET               _IOW ('d', 102, u32)
 
-/* Set the frequency (in Hz) of the audio clock output.
-   Used to slave an audio processor to the video decoder, ensuring that audio
-   and video remain synchronized.
-   Usual values for the frequency are 48000, 44100 or 32000 Hz.
-   If the frequency is not supported, then -EINVAL is returned. */
-#define VIDIOC_INT_AUDIO_CLOCK_FREQ    _IOW ('d', 103, u32)
-
-/* Video decoders that support sliced VBI need to implement this ioctl.
-   Field p of the v4l2_sliced_vbi_line struct is set to the start of the VBI
-   data that was generated by the decoder. The driver then parses the sliced
-   VBI data and sets the other fields in the struct accordingly. The pointer p
-   is updated to point to the start of the payload which can be copied
-   verbatim into the data field of the v4l2_sliced_vbi_data struct. If no
-   valid VBI data was found, then the type field is set to 0 on return. */
-#define VIDIOC_INT_DECODE_VBI_LINE     _IOWR('d', 104, struct v4l2_decode_vbi_line)
-
-/* Used to generate VBI signals on a video signal. v4l2_sliced_vbi_data is
-   filled with the data packets that should be output. Note that if you set
-   the line field to 0, then that VBI signal is disabled. If no
-   valid VBI data was found, then the type field is set to 0 on return. */
-#define VIDIOC_INT_S_VBI_DATA          _IOW ('d', 105, struct v4l2_sliced_vbi_data)
-
-/* Used to obtain the sliced VBI packet from a readback register. Not all
-   video decoders support this. If no data is available because the readback
-   register contains invalid or erroneous data -EIO is returned. Note that
-   you must fill in the 'id' member and the 'field' member (to determine
-   whether CC data from the first or second field should be obtained). */
-#define VIDIOC_INT_G_VBI_DATA          _IOWR('d', 106, struct v4l2_sliced_vbi_data)
-
-/* Sets I2S speed in bps. This is used to provide a standard way to select I2S
-   clock used by driving digital audio streams at some board designs.
-   Usual values for the frequency are 1024000 and 2048000.
-   If the frequency is not supported, then -EINVAL is returned. */
-#define VIDIOC_INT_I2S_CLOCK_FREQ      _IOW ('d', 108, u32)
-
-/* Routing definition, device dependent. It specifies which inputs (if any)
-   should be routed to which outputs (if any). */
 struct v4l2_routing {
        u32 input;
        u32 output;
 };
 
-/* These internal commands should be used to define the inputs and outputs
-   of an audio/video chip. They will replace the v4l2 API commands
-   VIDIOC_S/G_INPUT, VIDIOC_S/G_OUTPUT, VIDIOC_S/G_AUDIO and VIDIOC_S/G_AUDOUT
-   that are meant to be used by the user.
-   The internal commands should be used to switch inputs/outputs
-   because only the driver knows how to map a 'Television' input to the precise
-   input/output routing of an A/D converter, or a DSP, or a video digitizer.
-   These four commands should only be sent directly to an i2c device, they
-   should not be broadcast as the routing is very device specific. */
-#define        VIDIOC_INT_S_AUDIO_ROUTING      _IOW ('d', 109, struct v4l2_routing)
-#define        VIDIOC_INT_G_AUDIO_ROUTING      _IOR ('d', 110, struct v4l2_routing)
-#define        VIDIOC_INT_S_VIDEO_ROUTING      _IOW ('d', 111, struct v4l2_routing)
-#define        VIDIOC_INT_G_VIDEO_ROUTING      _IOR ('d', 112, struct v4l2_routing)
-
-struct v4l2_crystal_freq {
-       u32 freq;       /* frequency in Hz of the crystal */
-       u32 flags;      /* device specific flags */
-};
-
-/* Sets the frequency of the crystal used to generate the clocks.
-   An extra flags field allows device specific configuration regarding
-   clock frequency dividers, etc. If not used, then set flags to 0.
-   If the frequency is not supported, then -EINVAL is returned. */
-#define VIDIOC_INT_S_CRYSTAL_FREQ      _IOW('d', 113, struct v4l2_crystal_freq)
-
-/* Initialize the sensor registors to some sort of reasonable
-   default values. */
-#define VIDIOC_INT_INIT                        _IOW('d', 114, u32)
-
-/* Set v4l2_std_id for video OUTPUT devices. This is ignored by
-   video input devices. */
-#define VIDIOC_INT_S_STD_OUTPUT                _IOW('d', 115, v4l2_std_id)
-
-/* Get v4l2_std_id for video OUTPUT devices. This is ignored by
-   video input devices. */
-#define VIDIOC_INT_G_STD_OUTPUT                _IOW('d', 116, v4l2_std_id)
-
-/* Set GPIO pins. Very simple right now, might need to be extended with
-   a v4l2_gpio struct if a direction is also needed. */
-#define VIDIOC_INT_S_GPIO              _IOW('d', 117, u32)
-
-/* Get input status. Same as the status field in the v4l2_input struct. */
-#define VIDIOC_INT_G_INPUT_STATUS      _IOR('d', 118, u32)
-
 #endif /* V4L2_COMMON_H_ */
diff --git a/include/media/v4l2-i2c-drv-legacy.h b/include/media/v4l2-i2c-drv-legacy.h
deleted file mode 100644 (file)
index e65dd9d..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * v4l2-i2c-drv-legacy.h - contains I2C handling code that's identical
- *                 for all V4L2 I2C drivers. Use this header if the
- *                 I2C driver is used by both legacy drivers and
- *                 drivers converted to the bus-based I2C API.
- *
- * Copyright (C) 2007 Hans Verkuil <hverkuil@xs4all.nl>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/* NOTE: the full version of this header is in the v4l-dvb repository
- * and allows v4l i2c drivers to be compiled on older kernels as well.
- * The version of this header as it appears in the kernel is a stripped
- * version (without all the backwards compatibility stuff) and so it
- * looks a bit odd.
- *
- * If you look at the full version then you will understand the reason
- * for introducing this header since you really don't want to have all
- * the tricky backwards compatibility code in each and every i2c driver.
- */
-
-struct v4l2_i2c_driver_data {
-       const char * const name;
-       int driverid;
-       int (*command)(struct i2c_client *client, unsigned int cmd, void *arg);
-       int (*probe)(struct i2c_client *client, const struct i2c_device_id *id);
-       int (*remove)(struct i2c_client *client);
-       int (*suspend)(struct i2c_client *client, pm_message_t state);
-       int (*resume)(struct i2c_client *client);
-       int (*legacy_probe)(struct i2c_adapter *adapter);
-       int legacy_class;
-       const struct i2c_device_id *id_table;
-};
-
-static struct v4l2_i2c_driver_data v4l2_i2c_data;
-static const struct i2c_client_address_data addr_data;
-static struct i2c_driver v4l2_i2c_driver_legacy;
-static char v4l2_i2c_drv_name_legacy[32];
-
-static int v4l2_i2c_drv_attach_legacy(struct i2c_adapter *adapter, int address, int kind)
-{
-       return v4l2_i2c_attach(adapter, address, &v4l2_i2c_driver_legacy,
-                       v4l2_i2c_drv_name_legacy, v4l2_i2c_data.probe);
-}
-
-static int v4l2_i2c_drv_probe_legacy(struct i2c_adapter *adapter)
-{
-       if (v4l2_i2c_data.legacy_probe) {
-               if (v4l2_i2c_data.legacy_probe(adapter))
-                       return i2c_probe(adapter, &addr_data, v4l2_i2c_drv_attach_legacy);
-               return 0;
-       }
-       if (adapter->class & v4l2_i2c_data.legacy_class)
-               return i2c_probe(adapter, &addr_data, v4l2_i2c_drv_attach_legacy);
-       return 0;
-}
-
-static int v4l2_i2c_drv_detach_legacy(struct i2c_client *client)
-{
-       int err;
-
-       if (v4l2_i2c_data.remove)
-               v4l2_i2c_data.remove(client);
-
-       err = i2c_detach_client(client);
-       if (err)
-               return err;
-       kfree(client);
-       return 0;
-}
-
-static int v4l2_i2c_drv_suspend_helper(struct i2c_client *client, pm_message_t state)
-{
-       return v4l2_i2c_data.suspend ? v4l2_i2c_data.suspend(client, state) : 0;
-}
-
-static int v4l2_i2c_drv_resume_helper(struct i2c_client *client)
-{
-       return v4l2_i2c_data.resume ? v4l2_i2c_data.resume(client) : 0;
-}
-
-/* ----------------------------------------------------------------------- */
-
-/* i2c implementation */
-static struct i2c_driver v4l2_i2c_driver_legacy = {
-       .driver = {
-               .owner = THIS_MODULE,
-       },
-       .attach_adapter = v4l2_i2c_drv_probe_legacy,
-       .detach_client = v4l2_i2c_drv_detach_legacy,
-       .suspend = v4l2_i2c_drv_suspend_helper,
-       .resume  = v4l2_i2c_drv_resume_helper,
-};
-
-/* ----------------------------------------------------------------------- */
-
-/* i2c implementation */
-static struct i2c_driver v4l2_i2c_driver = {
-       .suspend        = v4l2_i2c_drv_suspend_helper,
-       .resume         = v4l2_i2c_drv_resume_helper,
-};
-
-static int __init v4l2_i2c_drv_init(void)
-{
-       int err;
-
-       strlcpy(v4l2_i2c_drv_name_legacy, v4l2_i2c_data.name, sizeof(v4l2_i2c_drv_name_legacy));
-       strlcat(v4l2_i2c_drv_name_legacy, "'", sizeof(v4l2_i2c_drv_name_legacy));
-
-       if (v4l2_i2c_data.legacy_class == 0)
-               v4l2_i2c_data.legacy_class = I2C_CLASS_TV_ANALOG;
-
-       v4l2_i2c_driver_legacy.driver.name = v4l2_i2c_drv_name_legacy;
-       v4l2_i2c_driver_legacy.id = v4l2_i2c_data.driverid;
-       v4l2_i2c_driver_legacy.command = v4l2_i2c_data.command;
-       err = i2c_add_driver(&v4l2_i2c_driver_legacy);
-
-       if (err)
-               return err;
-       v4l2_i2c_driver.driver.name = v4l2_i2c_data.name;
-       v4l2_i2c_driver.id = v4l2_i2c_data.driverid;
-       v4l2_i2c_driver.command = v4l2_i2c_data.command;
-       v4l2_i2c_driver.probe = v4l2_i2c_data.probe;
-       v4l2_i2c_driver.remove = v4l2_i2c_data.remove;
-       v4l2_i2c_driver.id_table = v4l2_i2c_data.id_table;
-       err = i2c_add_driver(&v4l2_i2c_driver);
-       if (err)
-               i2c_del_driver(&v4l2_i2c_driver_legacy);
-       return err;
-}
-
-static void __exit v4l2_i2c_drv_cleanup(void)
-{
-       i2c_del_driver(&v4l2_i2c_driver_legacy);
-       i2c_del_driver(&v4l2_i2c_driver);
-}
-
-module_init(v4l2_i2c_drv_init);
-module_exit(v4l2_i2c_drv_cleanup);
index efdc8bf..10a2882 100644 (file)
 
 struct v4l2_i2c_driver_data {
        const char * const name;
-       int driverid;
        int (*command)(struct i2c_client *client, unsigned int cmd, void *arg);
        int (*probe)(struct i2c_client *client, const struct i2c_device_id *id);
        int (*remove)(struct i2c_client *client);
        int (*suspend)(struct i2c_client *client, pm_message_t state);
        int (*resume)(struct i2c_client *client);
-       int (*legacy_probe)(struct i2c_adapter *adapter);
-       int legacy_class;
        const struct i2c_device_id *id_table;
 };
 
@@ -54,12 +51,11 @@ static struct v4l2_i2c_driver_data v4l2_i2c_data;
 static struct i2c_driver v4l2_i2c_driver;
 
 
-/* Bus-based I2C implementation for kernels >= 2.6.22 */
+/* Bus-based I2C implementation for kernels >= 2.6.26 */
 
 static int __init v4l2_i2c_drv_init(void)
 {
        v4l2_i2c_driver.driver.name = v4l2_i2c_data.name;
-       v4l2_i2c_driver.id = v4l2_i2c_data.driverid;
        v4l2_i2c_driver.command = v4l2_i2c_data.command;
        v4l2_i2c_driver.probe = v4l2_i2c_data.probe;
        v4l2_i2c_driver.remove = v4l2_i2c_data.remove;
index 1d181b4..1785608 100644 (file)
@@ -27,6 +27,16 @@ struct v4l2_device;
 struct v4l2_subdev;
 struct tuner_setup;
 
+/* decode_vbi_line */
+struct v4l2_decode_vbi_line {
+       u32 is_second_field;    /* Set to 0 for the first (odd) field,
+                                  set to 1 for the second (even) field. */
+       u8 *p;                  /* Pointer to the sliced VBI data from the decoder.
+                                  On exit points to the start of the payload. */
+       u32 line;               /* Line number of the sliced VBI data (1-23) */
+       u32 type;               /* VBI service type (V4L2_SLICED_*). 0 if no service found */
+};
+
 /* Sub-devices are devices that are connected somehow to the main bridge
    device. These devices are usually audio/video muxers/encoders/decoders or
    sensors and webcam controllers.
@@ -68,11 +78,26 @@ struct tuner_setup;
    the use-case it might be better to use subdev-specific ops (currently
    not yet implemented) since ops provide proper type-checking.
  */
+
+/* init: initialize the sensor registors to some sort of reasonable default
+       values. Do not use for new drivers and should be removed in existing
+       drivers.
+
+   load_fw: load firmware.
+
+   reset: generic reset command. The argument selects which subsystems to
+       reset. Passing 0 will always reset the whole chip. Do not use for new
+       drivers without discussing this first on the linux-media mailinglist.
+       There should be no reason normally to reset a device.
+
+   s_gpio: set GPIO pins. Very simple right now, might need to be extended with
+       a direction argument if needed.
+ */
 struct v4l2_subdev_core_ops {
        int (*g_chip_ident)(struct v4l2_subdev *sd, struct v4l2_dbg_chip_ident *chip);
        int (*log_status)(struct v4l2_subdev *sd);
        int (*init)(struct v4l2_subdev *sd, u32 val);
-       int (*s_standby)(struct v4l2_subdev *sd, u32 standby);
+       int (*load_fw)(struct v4l2_subdev *sd);
        int (*reset)(struct v4l2_subdev *sd, u32 val);
        int (*s_gpio)(struct v4l2_subdev *sd, u32 val);
        int (*queryctrl)(struct v4l2_subdev *sd, struct v4l2_queryctrl *qc);
@@ -82,6 +107,7 @@ struct v4l2_subdev_core_ops {
        int (*s_ext_ctrls)(struct v4l2_subdev *sd, struct v4l2_ext_controls *ctrls);
        int (*try_ext_ctrls)(struct v4l2_subdev *sd, struct v4l2_ext_controls *ctrls);
        int (*querymenu)(struct v4l2_subdev *sd, struct v4l2_querymenu *qm);
+       int (*s_std)(struct v4l2_subdev *sd, v4l2_std_id norm);
        long (*ioctl)(struct v4l2_subdev *sd, unsigned int cmd, void *arg);
 #ifdef CONFIG_VIDEO_ADV_DEBUG
        int (*g_register)(struct v4l2_subdev *sd, struct v4l2_dbg_register *reg);
@@ -89,6 +115,16 @@ struct v4l2_subdev_core_ops {
 #endif
 };
 
+/* s_mode: switch the tuner to a specific tuner mode. Replacement of s_radio.
+
+   s_radio: v4l device was opened in Radio mode, to be replaced by s_mode.
+
+   s_type_addr: sets tuner type and its I2C addr.
+
+   s_config: sets tda9887 specific stuff, like port1, port2 and qss
+
+   s_standby: puts tuner on powersaving state, disabling it, except for i2c.
+ */
 struct v4l2_subdev_tuner_ops {
        int (*s_mode)(struct v4l2_subdev *sd, enum v4l2_tuner_type);
        int (*s_radio)(struct v4l2_subdev *sd);
@@ -96,20 +132,77 @@ struct v4l2_subdev_tuner_ops {
        int (*g_frequency)(struct v4l2_subdev *sd, struct v4l2_frequency *freq);
        int (*g_tuner)(struct v4l2_subdev *sd, struct v4l2_tuner *vt);
        int (*s_tuner)(struct v4l2_subdev *sd, struct v4l2_tuner *vt);
-       int (*s_std)(struct v4l2_subdev *sd, v4l2_std_id norm);
        int (*s_type_addr)(struct v4l2_subdev *sd, struct tuner_setup *type);
        int (*s_config)(struct v4l2_subdev *sd, const struct v4l2_priv_tun_config *config);
+       int (*s_standby)(struct v4l2_subdev *sd);
 };
 
+/* s_clock_freq: set the frequency (in Hz) of the audio clock output.
+       Used to slave an audio processor to the video decoder, ensuring that
+       audio and video remain synchronized. Usual values for the frequency
+       are 48000, 44100 or 32000 Hz. If the frequency is not supported, then
+       -EINVAL is returned.
+
+   s_i2s_clock_freq: sets I2S speed in bps. This is used to provide a standard
+       way to select I2S clock used by driving digital audio streams at some
+       board designs. Usual values for the frequency are 1024000 and 2048000.
+       If the frequency is not supported, then -EINVAL is returned.
+
+   s_routing: used to define the input and/or output pins of an audio chip,
+       and any additional configuration data.
+       Never attempt to use user-level input IDs (e.g. Composite, S-Video,
+       Tuner) at this level. An i2c device shouldn't know about whether an
+       input pin is connected to a Composite connector, become on another
+       board or platform it might be connected to something else entirely.
+       The calling driver is responsible for mapping a user-level input to
+       the right pins on the i2c device.
+ */
 struct v4l2_subdev_audio_ops {
        int (*s_clock_freq)(struct v4l2_subdev *sd, u32 freq);
        int (*s_i2s_clock_freq)(struct v4l2_subdev *sd, u32 freq);
-       int (*s_routing)(struct v4l2_subdev *sd, const struct v4l2_routing *route);
+       int (*s_routing)(struct v4l2_subdev *sd, u32 input, u32 output, u32 config);
 };
 
+/*
+   decode_vbi_line: video decoders that support sliced VBI need to implement
+       this ioctl. Field p of the v4l2_sliced_vbi_line struct is set to the
+       start of the VBI data that was generated by the decoder. The driver
+       then parses the sliced VBI data and sets the other fields in the
+       struct accordingly. The pointer p is updated to point to the start of
+       the payload which can be copied verbatim into the data field of the
+       v4l2_sliced_vbi_data struct. If no valid VBI data was found, then the
+       type field is set to 0 on return.
+
+   s_vbi_data: used to generate VBI signals on a video signal.
+       v4l2_sliced_vbi_data is filled with the data packets that should be
+       output. Note that if you set the line field to 0, then that VBI signal
+       is disabled. If no valid VBI data was found, then the type field is
+       set to 0 on return.
+
+   g_vbi_data: used to obtain the sliced VBI packet from a readback register.
+       Not all video decoders support this. If no data is available because
+       the readback register contains invalid or erroneous data -EIO is
+       returned. Note that you must fill in the 'id' member and the 'field'
+       member (to determine whether CC data from the first or second field
+       should be obtained).
+
+   s_std_output: set v4l2_std_id for video OUTPUT devices. This is ignored by
+       video input devices.
+
+  s_crystal_freq: sets the frequency of the crystal used to generate the
+       clocks in Hz. An extra flags field allows device specific configuration
+       regarding clock frequency dividers, etc. If not used, then set flags
+       to 0. If the frequency is not supported, then -EINVAL is returned.
+
+   g_input_status: get input status. Same as the status field in the v4l2_input
+       struct.
+
+   s_routing: see s_routing in audio_ops, except this version is for video
+       devices.
+ */
 struct v4l2_subdev_video_ops {
-       int (*s_routing)(struct v4l2_subdev *sd, const struct v4l2_routing *route);
-       int (*s_crystal_freq)(struct v4l2_subdev *sd, struct v4l2_crystal_freq *freq);
+       int (*s_routing)(struct v4l2_subdev *sd, u32 input, u32 output, u32 config);
+       int (*s_crystal_freq)(struct v4l2_subdev *sd, u32 freq, u32 flags);
        int (*decode_vbi_line)(struct v4l2_subdev *sd, struct v4l2_decode_vbi_line *vbi_line);
        int (*s_vbi_data)(struct v4l2_subdev *sd, const struct v4l2_sliced_vbi_data *vbi_data);
        int (*g_vbi_data)(struct v4l2_subdev *sd, struct v4l2_sliced_vbi_data *vbi_data);
@@ -163,18 +256,6 @@ static inline void *v4l2_get_subdevdata(const struct v4l2_subdev *sd)
        return sd->priv;
 }
 
-/* Convert an ioctl-type command to the proper v4l2_subdev_ops function call.
-   This is used by subdev modules that can be called by both old-style ioctl
-   commands and through the v4l2_subdev_ops.
-
-   The ioctl API of the subdev driver can call this function to call the
-   right ops based on the ioctl cmd and arg.
-
-   Once all subdev drivers have been converted and all drivers no longer
-   use the ioctl interface, then this function can be removed.
- */
-int v4l2_subdev_command(struct v4l2_subdev *sd, unsigned cmd, void *arg);
-
 static inline void v4l2_subdev_init(struct v4l2_subdev *sd,
                                        const struct v4l2_subdev_ops *ops)
 {
index f1611a1..539e606 100644 (file)
@@ -215,3 +215,5 @@ struct net_device *alloc_fddidev(int sizeof_priv)
        return alloc_netdev(sizeof_priv, "fddi%d", fddi_setup);
 }
 EXPORT_SYMBOL(alloc_fddidev);
+
+MODULE_LICENSE("GPL");
index 0af823c..5ee5a03 100644 (file)
@@ -72,6 +72,7 @@ int xfrm6_prepare_output(struct xfrm_state *x, struct sk_buff *skb)
 #endif
 
        skb->protocol = htons(ETH_P_IPV6);
+       skb->local_df = 1;
 
        return x->outer_mode->output2(x, skb);
 }
index 91d0c02..791d71a 100644 (file)
@@ -493,8 +493,7 @@ static struct socket *sock_alloc(void)
        inode->i_uid = current_fsuid();
        inode->i_gid = current_fsgid();
 
-       get_cpu_var(sockets_in_use)++;
-       put_cpu_var(sockets_in_use);
+       percpu_add(sockets_in_use, 1);
        return sock;
 }
 
@@ -536,8 +535,7 @@ void sock_release(struct socket *sock)
        if (sock->fasync_list)
                printk(KERN_ERR "sock_release: fasync list not empty!\n");
 
-       get_cpu_var(sockets_in_use)--;
-       put_cpu_var(sockets_in_use);
+       percpu_sub(sockets_in_use, 1);
        if (!sock->file) {
                iput(SOCK_INODE(sock));
                return;